diff --git a/.github/ISSUE_TEMPLATE/bug.md b/.github/ISSUE_TEMPLATE/bug.md index 444463e9ded..bf3b5bf2c0a 100644 --- a/.github/ISSUE_TEMPLATE/bug.md +++ b/.github/ISSUE_TEMPLATE/bug.md @@ -16,9 +16,9 @@ Commit hash: Erigon Command (with flags/config): -Concensus Layer: +Consensus Layer: -Concensus Layer Command (with flags/config): +Consensus Layer Command (with flags/config): Chain/Network: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2470c3099f6..82267c6fc31 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,12 +4,12 @@ on: branches: - devel - alpha - - stable + - 'release/**' pull_request: branches: - devel - alpha - - stable + - 'release/**' types: - opened - reopened @@ -25,14 +25,14 @@ jobs: if: ${{ github.event_name == 'push' || !github.event.pull_request.draft }} strategy: matrix: - os: [ ubuntu-20.04, macos-11 ] # list of os: https://github.com/actions/virtual-environments + os: [ ubuntu-22.04, macos-13-xlarge ] # list of os: https://github.com/actions/virtual-environments runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: '1.20' - name: Install dependencies on Linux if: runner.os == 'Linux' run: sudo apt update && sudo apt install build-essential @@ -50,11 +50,21 @@ jobs: echo >&2 "Reproducible build broken"; cat erigon1.sha256; cat erigon2.sha256; exit 1 fi - - name: Lint + - name: Install golangci-lint if: runner.os == 'Linux' uses: golangci/golangci-lint-action@v3 with: - version: v1.52 + version: v1.55.2 + skip-build-cache: true + args: --help + + - name: Install go-licenses + if: runner.os == 'Linux' + run: cd erigon-lib && make lint-licenses-deps + + - name: Lint + if: runner.os == 'Linux' + run: make lint - name: Test run: make test @@ -67,10 +77,14 @@ jobs: runs-on: ${{ matrix.os }} steps: + - name: configure Pagefile + uses: al-cheb/configure-pagefile-action@v1.3 + with: + minimum-size: 8GB - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: '1.20' - uses: actions/cache@v3 with: @@ -80,8 +94,8 @@ jobs: key: chocolatey-${{ matrix.os }} - name: Install dependencies run: | - choco upgrade mingw -y --no-progress --version 11.2.0.07112021 - choco install cmake -y --no-progress --version 3.23.1 + choco upgrade mingw -y --no-progress --version 13.2.0 + choco install cmake -y --no-progress --version 3.27.8 - name: Build run: .\wmake.ps1 all @@ -89,10 +103,13 @@ jobs: - name: Test run: .\wmake.ps1 test + - name: Test erigon-lib + run: cd erigon-lib && make test-no-fuzz + docker-build-check: # don't run this on devel - the PR must have run it to be merged and it misleads that this pushes the docker image if: (${{ github.event_name == 'push' || !github.event.pull_request.draft }}) && ${{ github.ref != 'refs/heads/devel' }} - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: AutoModality/action-clean@v1 - uses: actions/checkout@v3 @@ -108,7 +125,7 @@ jobs: # automated-tests: # runs-on: -# ubuntu-20.04 +# ubuntu-22.04 # if: ${{ github.event_name == 'push' || !github.event.pull_request.draft }} # steps: # - uses: actions/checkout@v3 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 474d71e6126..3982becbc53 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: '1.20' - name: install dependencies on Linux if: runner.os == 'Linux' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ece2667dcae..e3e0d0e2499 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -19,6 +19,13 @@ jobs: goreleaser: runs-on: ubuntu-latest steps: + - name: Maximize build space + uses: AdityaGarg8/remove-unwanted-software@v1 + with: + remove-dotnet: 'true' + remove-android: 'true' + remove-haskell: 'true' + - name: Checkout uses: actions/checkout@v3 with: diff --git a/.github/workflows/stale-issues.yml b/.github/workflows/stale-issues.yml deleted file mode 100644 index 98ae6d4716c..00000000000 --- a/.github/workflows/stale-issues.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: 'Close stale issues and PRs' -on: - schedule: - - cron: '30 1 * * *' - -permissions: - issues: write - pull-requests: write - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v7 - with: # core team are exempt - exempt-issue-assignees: 'AskAlexSharov,realLedgerwatch,AndreaLanfranchi,yperbasis,vorot93,b00ris,JekaMas,mandrigin,Giulio2002,tjayrush,revitteth,hexoscott,nanevardanyan' - exempt-pr-assignees: 'AskAlexSharov,realLedgerwatch,AndreaLanfranchi,yperbasis,vorot93,b00ris,JekaMas,mandrigin,Giulio2002,tjayrush,revitteth,hexoscott,nanevardanyan' - stale-issue-message: 'This issue is stale because it has been open for 40 days with no activity. Remove stale label or comment, or this will be closed in 7 days.' - stale-pr-message: 'This PR is stale because it has been open for 40 days with no activity.' - close-issue-message: 'This issue was closed because it has been stalled for 7 days with no activity.' - days-before-stale: 40 - days-before-close: 7 - days-before-pr-close: -1 # don't close PRs diff --git a/.github/workflows/test-integration-caplin.yml b/.github/workflows/test-integration-caplin.yml new file mode 100644 index 00000000000..ca687f6df70 --- /dev/null +++ b/.github/workflows/test-integration-caplin.yml @@ -0,0 +1,63 @@ +name: Consensus specification tests +on: + push: + branches: + - devel + - alpha + - 'release/**' + pull_request: + branches: + - devel + - alpha + - 'release/**' + types: + - opened + - reopened + - synchronize + - ready_for_review + +jobs: + tests: + strategy: + matrix: +# disable macos-11 until https://github.com/ledgerwatch/erigon/issues/8789 + os: [ ubuntu-22.04 ] # list of os: https://github.com/actions/virtual-environments + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-go@v4 + with: + go-version: '1.20' + - name: Install dependencies on Linux + if: runner.os == 'Linux' + run: sudo apt update && sudo apt install build-essential + + - name: test-integration-caplin + run: cd cl/spectest && make tests && make mainnet + + tests-windows: + strategy: + matrix: + os: [ windows-2022 ] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-go@v4 + with: + go-version: '1.20' + + - uses: actions/cache@v3 + with: + path: | + C:\ProgramData\chocolatey\lib\mingw + C:\ProgramData\chocolatey\lib\cmake + key: chocolatey-${{ matrix.os }} + - name: Install dependencies + run: | + choco upgrade mingw -y --no-progress --version 13.2.0 + choco install cmake -y --no-progress --version 3.27.8 + + - name: test-integration-caplin + run: cd ./cl/spectest/ && .\wmake.ps1 Tests Mainnet diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index e2afd1a3d76..22e68e3fa0f 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -4,7 +4,7 @@ on: branches: - devel - alpha - - stable + - 'release/**' schedule: - cron: '20 16 * * *' # daily at 16:20 UTC workflow_dispatch: @@ -13,7 +13,7 @@ jobs: tests: strategy: matrix: - os: [ ubuntu-20.04, macos-11 ] # list of os: https://github.com/actions/virtual-environments + os: [ ubuntu-22.04, macos-13-xlarge ] # list of os: https://github.com/actions/virtual-environments runs-on: ${{ matrix.os }} steps: @@ -21,7 +21,7 @@ jobs: - run: git submodule update --init --recursive --force - uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: '1.20' - name: Install dependencies on Linux if: runner.os == 'Linux' run: sudo apt update && sudo apt install build-essential @@ -29,8 +29,13 @@ jobs: - name: test-integration run: make test-integration - - name: history-v3-test-integration - run: make test3-integration + - name: Test erigon as a library + env: + GIT_COMMIT: ${{ github.event.pull_request.head.sha || github.sha }} + run: make test-erigon-ext GIT_COMMIT=$GIT_COMMIT + + # name: history-v3-test-integration + # run: make test3-integration tests-windows: strategy: @@ -43,7 +48,7 @@ jobs: - run: git submodule update --init --recursive --force - uses: actions/setup-go@v4 with: - go-version: '1.19' + go-version: '1.20' - uses: actions/cache@v3 with: @@ -53,8 +58,8 @@ jobs: key: chocolatey-${{ matrix.os }} - name: Install dependencies run: | - choco upgrade mingw -y --no-progress --version 11.2.0.07112021 - choco install cmake -y --no-progress --version 3.23.1 + choco upgrade mingw -y --no-progress --version 13.2.0 + choco install cmake -y --no-progress --version 3.27.8 - name: test-integration run: .\wmake.ps1 test-integration diff --git a/.gitignore b/.gitignore index 5df094e3162..3ce4eeca701 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ profile.cov # VS Code .vscode +*.code-workspace # dashboard /dashboard/assets/flow-typed @@ -70,9 +71,7 @@ __pycache__ libmdbx/build/* tests/testdata/* -go.work -go.work.sum -erigon-lib/ +go.work* /goerli @@ -82,7 +81,20 @@ coverage.out dist __debug_bin +*.exe *.log -caplin-recordings \ No newline at end of file +caplin-recordings + +jwt.hex + +.tool-versions + +*__debug_bin* +yarn.lock +node_modules + +/config.toml +/config.yaml +/config.yml diff --git a/.golangci.yml b/.golangci.yml index e32d7f45c09..ea4a442c1de 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,5 +1,9 @@ run: deadline: 10m + build-tags: + - nosqlite + - noboltdb + - integration linters: presets: @@ -8,6 +12,7 @@ linters: - unused - performance disable: + - gosec # enable it after 1-2 weeks. it failing CI withoutt enough info to fix: https://github.com/ledgerwatch/erigon/actions/runs/5928644129/job/16074701625 - exhaustive - musttag - contextcheck @@ -20,7 +25,10 @@ linters: - errorlint #TODO: enable me - errchkjson #TODO: enable me - unused #TODO: enable me + - testifylint #TODO: enable me + - perfsprint #TODO: enable me - gocheckcompilerdirectives + - protogetter enable: - unconvert # - predeclared #TODO: enable me @@ -119,6 +127,7 @@ issues: - unused - deadcode - gocritic + - perfsprint - path: hack\.go linters: - gosec diff --git a/.goreleaser.yml b/.goreleaser.yml index a6cda699d66..47f44d303a1 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -14,7 +14,7 @@ builds: env: - CC=o64-clang - CXX=o64-clang++ - tags: [ nosqlite, noboltdb ] + tags: [ nosqlite, noboltdb, nosilkworm ] ldflags: -s -w - id: darwin-arm64 @@ -25,7 +25,7 @@ builds: env: - CC=oa64-clang - CXX=oa64-clang++ - tags: [ nosqlite, noboltdb ] + tags: [ nosqlite, noboltdb, nosilkworm ] ldflags: -s -w - id: linux-amd64 @@ -36,7 +36,7 @@ builds: env: - CC=x86_64-linux-gnu-gcc - CXX=x86_64-linux-gnu-g++ - tags: [ nosqlite, noboltdb ] + tags: [ nosqlite, noboltdb, nosilkworm ] ldflags: -s -w -extldflags "-static" # We need to build a static binary because we are building in a glibc based system and running in a musl container - id: linux-arm64 @@ -47,7 +47,7 @@ builds: env: - CC=aarch64-linux-gnu-gcc - CXX=aarch64-linux-gnu-g++ - tags: [ nosqlite, noboltdb ] + tags: [ nosqlite, noboltdb, nosilkworm ] ldflags: -s -w -extldflags "-static" # We need to build a static binary because we are building in a glibc based system and running in a musl container - id: windows-amd64 @@ -58,7 +58,7 @@ builds: env: - CC=x86_64-w64-mingw32-gcc - CXX=x86_64-w64-mingw32-g++ - tags: [ nosqlite, noboltdb ] + tags: [ nosqlite, noboltdb, nosilkworm ] ldflags: -s -w diff --git a/Dockerfile b/Dockerfile index 8c5ffc9fe96..e9850144a85 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,6 +6,8 @@ RUN apk --no-cache add build-base linux-headers git bash ca-certificates libstdc WORKDIR /app ADD go.mod go.mod ADD go.sum go.sum +ADD erigon-lib/go.mod erigon-lib/go.mod +ADD erigon-lib/go.sum erigon-lib/go.sum RUN go mod download ADD . . @@ -13,7 +15,7 @@ ADD . . RUN --mount=type=cache,target=/root/.cache \ --mount=type=cache,target=/tmp/go-build \ --mount=type=cache,target=/go/pkg/mod \ - make all + make BUILD_TAGS=nosqlite,noboltdb,nosilkworm all FROM docker.io/library/golang:1.20-alpine3.17 AS tools-builder @@ -24,6 +26,8 @@ ADD Makefile Makefile ADD tools.go tools.go ADD go.mod go.mod ADD go.sum go.sum +ADD erigon-lib/go.mod erigon-lib/go.mod +ADD erigon-lib/go.sum erigon-lib/go.sum RUN mkdir -p /app/build/bin @@ -74,7 +78,7 @@ COPY --from=builder /app/build/bin/sentry /usr/local/bin/sentry COPY --from=builder /app/build/bin/state /usr/local/bin/state COPY --from=builder /app/build/bin/txpool /usr/local/bin/txpool COPY --from=builder /app/build/bin/verkle /usr/local/bin/verkle -COPY --from=builder /app/build/bin/caplin-phase1 /usr/local/bin/caplin-phase1 +COPY --from=builder /app/build/bin/caplin /usr/local/bin/caplin COPY --from=builder /app/build/bin/caplin-regression /usr/local/bin/caplin-regression diff --git a/Dockerfile.debian b/Dockerfile.debian index 5d7d4e54968..e3e8c9d5d89 100644 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -1,5 +1,5 @@ # syntax = docker/dockerfile:1.2 -FROM docker.io/library/golang:1.19-bullseye AS builder +FROM docker.io/library/golang:1.20-bullseye AS builder RUN apt update RUN apt install -y build-essential git bash ca-certificates libstdc++6 @@ -17,7 +17,7 @@ RUN --mount=type=cache,target=/root/.cache \ make all -FROM docker.io/library/golang:1.19-alpine3.16 AS tools-builder +FROM docker.io/library/golang:1.20-alpine3.17 AS tools-builder RUN apk --no-cache add build-base linux-headers git bash ca-certificates libstdc++ WORKDIR /app @@ -74,7 +74,7 @@ COPY --from=builder /app/build/bin/sentry /usr/local/bin/sentry COPY --from=builder /app/build/bin/state /usr/local/bin/state COPY --from=builder /app/build/bin/txpool /usr/local/bin/txpool COPY --from=builder /app/build/bin/verkle /usr/local/bin/verkle -COPY --from=builder /app/build/bin/caplin-phase1 /usr/local/bin/caplin-phase1 +COPY --from=builder /app/build/bin/caplin /usr/local/bin/caplin COPY --from=builder /app/build/bin/caplin-regression /usr/local/bin/caplin-regression EXPOSE 8545 \ diff --git a/Makefile b/Makefile index d9746ce0d73..8890d6c1dc7 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -GO = go # if using docker, should not need to be installed/linked +GO ?= go # if using docker, should not need to be installed/linked GOBIN = $(CURDIR)/build/bin UNAME = $(shell uname) # Supported: Darwin, Linux DOCKER := $(shell command -v docker 2> /dev/null) @@ -24,25 +24,37 @@ CGO_CFLAGS += -DMDBX_FORCE_ASSERTIONS=0 # Enable MDBX's asserts by default in 'd #CGO_CFLAGS += -DMDBX_ENV_CHECKPID=0 # Erigon doesn't do fork() syscall CGO_CFLAGS += -O CGO_CFLAGS += -D__BLST_PORTABLE__ -CGO_CFLAGS += -Wno-error=strict-prototypes # for Clang15, remove it when can https://github.com/ledgerwatch/erigon/issues/6113#issuecomment-1359526277 +CGO_CFLAGS += -Wno-unknown-warning-option -Wno-enum-int-mismatch -Wno-strict-prototypes -Wno-unused-but-set-variable + +CGO_LDFLAGS := $(shell $(GO) env CGO_LDFLAGS 2> /dev/null) +ifeq ($(shell uname -s), Darwin) + ifeq ($(filter-out 13.%,$(shell sw_vers --productVersion)),) + CGO_LDFLAGS += -mmacosx-version-min=13.3 + endif +endif # about netgo see: https://github.com/golang/go/issues/30310#issuecomment-471669125 and https://github.com/golang/go/issues/57757 BUILD_TAGS = nosqlite,noboltdb + +ifneq ($(shell "$(CURDIR)/turbo/silkworm/silkworm_compat_check.sh"),) + BUILD_TAGS := $(BUILD_TAGS),nosilkworm +endif + PACKAGE = github.com/ledgerwatch/erigon GO_FLAGS += -trimpath -tags $(BUILD_TAGS) -buildvcs=false GO_FLAGS += -ldflags "-X ${PACKAGE}/params.GitCommit=${GIT_COMMIT} -X ${PACKAGE}/params.GitBranch=${GIT_BRANCH} -X ${PACKAGE}/params.GitTag=${GIT_TAG}" -GOBUILD = CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) build $(GO_FLAGS) -GO_DBG_BUILD = CGO_CFLAGS="$(CGO_CFLAGS) -DMDBX_DEBUG=1" $(GO) build -tags $(BUILD_TAGS),debug -gcflags=all="-N -l" # see delve docs -GOTEST = CGO_CFLAGS="$(CGO_CFLAGS)" GODEBUG=cgocheck=0 $(GO) test $(GO_FLAGS) ./... -p 2 +GOBUILD = CGO_CFLAGS="$(CGO_CFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" $(GO) build $(GO_FLAGS) +GO_DBG_BUILD = CGO_CFLAGS="$(CGO_CFLAGS) -DMDBX_DEBUG=1" CGO_LDFLAGS="$(CGO_LDFLAGS)" $(GO) build -tags $(BUILD_TAGS),debug -gcflags=all="-N -l" # see delve docs +GOTEST = CGO_CFLAGS="$(CGO_CFLAGS)" CGO_LDFLAGS="$(CGO_LDFLAGS)" GODEBUG=cgocheck=0 $(GO) test $(GO_FLAGS) ./... -p 2 default: all ## go-version: print and verify go version go-version: - @if [ $(shell $(GO) version | cut -c 16-17) -lt 19 ]; then \ - echo "minimum required Golang version is 1.19"; \ + @if [ $(shell $(GO) version | cut -c 16-17) -lt 20 ]; then \ + echo "minimum required Golang version is 1.20"; \ exit 1 ;\ fi @@ -105,7 +117,7 @@ erigon: go-version erigon.cmd @rm -f $(GOBIN)/tg # Remove old binary to prevent confusion where users still use it because of the scripts COMMANDS += devnet -COMMANDS += erigon-el-mock +COMMANDS += capcli COMMANDS += downloader COMMANDS += hack COMMANDS += integration @@ -119,8 +131,10 @@ COMMANDS += txpool COMMANDS += verkle COMMANDS += evm COMMANDS += sentinel -COMMANDS += caplin-phase1 +COMMANDS += caplin COMMANDS += caplin-regression +COMMANDS += tooling + # build each command using %.cmd rule @@ -134,39 +148,46 @@ db-tools: @echo "Building db-tools" go mod vendor - cd vendor/github.com/torquem-ch/mdbx-go && MDBX_BUILD_TIMESTAMP=unknown make tools + cd vendor/github.com/erigontech/mdbx-go && MDBX_BUILD_TIMESTAMP=unknown make tools mkdir -p $(GOBIN) - cd vendor/github.com/torquem-ch/mdbx-go/mdbxdist && cp mdbx_chk $(GOBIN) && cp mdbx_copy $(GOBIN) && cp mdbx_dump $(GOBIN) && cp mdbx_drop $(GOBIN) && cp mdbx_load $(GOBIN) && cp mdbx_stat $(GOBIN) + cd vendor/github.com/erigontech/mdbx-go/mdbxdist && cp mdbx_chk $(GOBIN) && cp mdbx_copy $(GOBIN) && cp mdbx_dump $(GOBIN) && cp mdbx_drop $(GOBIN) && cp mdbx_load $(GOBIN) && cp mdbx_stat $(GOBIN) rm -rf vendor @echo "Run \"$(GOBIN)/mdbx_stat -h\" to get info about mdbx db file." +test-erigon-lib: + @cd erigon-lib && $(MAKE) test + +test-erigon-ext: + @cd tests/erigon-ext-test && ./test.sh $(GIT_COMMIT) + ## test: run unit tests with a 100s timeout -test: - $(GOTEST) --timeout 100s +test: test-erigon-lib + $(GOTEST) --timeout 10m -test3: - $(GOTEST) --timeout 100s -tags $(BUILD_TAGS),e3 +test3: test-erigon-lib + $(GOTEST) --timeout 10m -tags $(BUILD_TAGS),e3 ## test-integration: run integration tests with a 30m timeout -test-integration: - $(GOTEST) --timeout 30m -tags $(BUILD_TAGS),integration +test-integration: test-erigon-lib + $(GOTEST) --timeout 240m -tags $(BUILD_TAGS),integration -test3-integration: - $(GOTEST) --timeout 30m -tags $(BUILD_TAGS),integration,e3 +test3-integration: test-erigon-lib + $(GOTEST) --timeout 240m -tags $(BUILD_TAGS),integration,e3 -## lint: run golangci-lint with .golangci.yml config file -lint: - @./build/bin/golangci-lint run --config ./.golangci.yml +## lint-deps: install lint dependencies +lint-deps: + @cd erigon-lib && $(MAKE) lint-deps -## lintci: run golangci-lint (additionally outputs message before run) +## lintci: run golangci-lint linters lintci: - @echo "--> Running linter for code" - @./build/bin/golangci-lint run --config ./.golangci.yml + @cd erigon-lib && $(MAKE) lintci + @./erigon-lib/tools/golangci_lint.sh -## lintci-deps: (re)installs golangci-lint to build/bin/golangci-lint -lintci-deps: - rm -f ./build/bin/golangci-lint - curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./build/bin v1.53.3 +## lint: run all linters +lint: + @cd erigon-lib && $(MAKE) lint + @./erigon-lib/tools/golangci_lint.sh + @./erigon-lib/tools/mod_tidy_check.sh ## clean: cleans the go cache, build dir, libmdbx db dir clean: @@ -213,8 +234,18 @@ git-submodules: @git submodule sync --quiet --recursive || true @git submodule update --quiet --init --recursive --force || true +## install: copies binaries and libraries to DIST +DIST ?= $(CURDIR)/build/dist +.PHONY: install +install: + mkdir -p "$(DIST)" + cp -f "$$($(CURDIR)/turbo/silkworm/silkworm_lib_path.sh)" "$(DIST)" + cp -f "$(GOBIN)/"* "$(DIST)" + @echo "Copied files to $(DIST):" + @ls -al "$(DIST)" + PACKAGE_NAME := github.com/ledgerwatch/erigon -GOLANG_CROSS_VERSION ?= v1.20.5 +GOLANG_CROSS_VERSION ?= v1.20.7 .PHONY: release-dry-run release-dry-run: git-submodules @@ -253,7 +284,6 @@ release: git-submodules # we need separate envvars to facilitate creation of the erigon user on the host OS. ERIGON_USER_UID ?= 3473 ERIGON_USER_GID ?= 3473 -ERIGON_USER_XDG_DATA_HOME ?= ~$(ERIGON_USER)/.local/share ## user_linux: create "erigon" user (Linux) user_linux: @@ -267,7 +297,7 @@ endif ifdef DOCKER sudo usermod -aG docker $(ERIGON_USER) endif - sudo -u $(ERIGON_USER) mkdir -p $(ERIGON_USER_XDG_DATA_HOME) + sudo -u $(ERIGON_USER) mkdir -p /home/$(ERIGON_USER)/.local/share ## user_macos: create "erigon" user (MacOS) user_macos: @@ -277,7 +307,7 @@ user_macos: sudo dscl . -create /Users/$(ERIGON_USER) PrimaryGroupID $(ERIGON_USER_GID) sudo dscl . -create /Users/$(ERIGON_USER) NFSHomeDirectory /Users/$(ERIGON_USER) sudo dscl . -append /Groups/admin GroupMembership $(ERIGON_USER) - sudo -u $(ERIGON_USER) mkdir -p $(ERIGON_USER_XDG_DATA_HOME) + sudo -u $(ERIGON_USER) mkdir -p /Users/$(ERIGON_USER)/.local/share ## coverage: run code coverage report and output total coverage % .PHONY: coverage diff --git a/README.md b/README.md index 1687b7fbce9..7ada8d94f97 100644 --- a/README.md +++ b/README.md @@ -55,16 +55,17 @@ System Requirements * Goerli Full node (see `--prune*` flags): 189GB on Beta, 114GB on Alpha (April 2022). -* Gnosis Chain Archive: 370GB (January 2023). +* Gnosis Chain Archive: 600GB (October 2023). -* Polygon Mainnet Archive: 5TB. Polygon Mumbai Archive: 1TB. (April 2022). +* Polygon Mainnet Archive: 5TB. (April 2022). `--prune.*.older 15768000`: 5.1Tb (Sept 2023). Polygon Mumbai Archive: + 1TB. (April 2022). SSD or NVMe. Do not recommend HDD - on HDD Erigon will always stay N blocks behind chain tip, but not fall behind. Bear in mind that SSD performance deteriorates when close to capacity. RAM: >=16GB, 64-bit architecture. -[Golang version >= 1.19](https://golang.org/doc/install); GCC 10+ or Clang; On Linux: kernel > v4 +[Golang version >= 1.20](https://golang.org/doc/install); GCC 10+ or Clang; On Linux: kernel > v4 🔬 more details on disk storage [here](https://erigon.substack.com/p/disk-footprint-changes-in-new-erigon?s=r) and [here](https://ledgerwatch.github.io/turbo_geth_release.html#Disk-space). @@ -74,10 +75,10 @@ Usage ### Getting Started -For building the latest stable release (this will be suitable for most users just wanting to run a node): +For building the latest release (this will be suitable for most users just wanting to run a node): ```sh -git clone --branch stable --single-branch https://github.com/ledgerwatch/erigon.git +git clone --branch release/ --single-branch https://github.com/ledgerwatch/erigon.git cd erigon make erigon ./build/bin/erigon @@ -101,8 +102,8 @@ download speed by flag `--torrent.download.rate=20mb`. 🔬 See [Downloade Use `--datadir` to choose where to store data. -Use `--chain=gnosis` for [Gnosis Chain](https://www.gnosis.io/), `--chain=bor-mainnet` for Polygon Mainnet, -and `--chain=mumbai` for Polygon Mumbai. +Use `--chain=gnosis` for [Gnosis Chain](https://www.gnosis.io/), `--chain=bor-mainnet` for Polygon Mainnet, +`--chain=mumbai` for Polygon Mumbai and `--chain=amoy` for Polygon Amoy. For Gnosis Chain you need a [Consensus Layer](#beacon-chain-consensus-layer) client alongside Erigon (https://docs.gnosischain.com/node/guide/beacon). @@ -111,7 +112,8 @@ Running `make help` will list and describe the convenience commands available in ### Datadir structure - chaindata: recent blocks, state, recent state history. low-latency disk recommended. -- snapshots: old blocks, old state history. can symlink/mount it to cheaper disk. mostly immutable. must have ~100gb free space (for merge recent files to bigger one). +- snapshots: old blocks, old state history. can symlink/mount it to cheaper disk. mostly immutable. must have ~100gb + free space (for merge recent files to bigger one). - temp: can grow to ~100gb, but usually empty. can symlink/mount it to cheaper disk. - txpool: pending transactions. safe to remove. - nodes: p2p peers. safe to remove. @@ -141,7 +143,9 @@ int value specifying the highest output log level: LvlTrace = 5 ``` -To set an output dir for logs to be collected on disk, please set `--log.dir.path` If you want to change the filename prodiced from `erigon` you should also set the `--log.dir.prefix` flag to an alternate name. The flag `--log.dir.verbosity` is +To set an output dir for logs to be collected on disk, please set `--log.dir.path` If you want to change the filename +produced from `erigon` you should also set the `--log.dir.prefix` flag to an alternate name. The +flag `--log.dir.verbosity` is also available to control the verbosity of this logging, with the same int value as above, or the string value e.g. ' debug' or 'info'. Default verbosity is 'debug' (4), for disk logging. @@ -190,13 +194,7 @@ Support only remote-miners. , `--miner.gastarget` * JSON-RPC supports methods: eth_coinbase , eth_hashrate, eth_mining, eth_getWork, eth_submitWork, eth_submitHashrate * JSON-RPC supports websocket methods: newPendingTransaction -* TODO: - + we don't broadcast mined blocks to p2p-network - yet, [but it's easy to accomplish](https://github.com/ledgerwatch/erigon/blob/9b8cdc0f2289a7cef78218a15043de5bdff4465e/eth/downloader/downloader.go#L673) - + eth_newPendingTransactionFilter - + eth_newBlockFilter - + eth_newFilter - + websocket Logs + 🔬 Detailed explanation is [here](/docs/mining.md). @@ -210,8 +208,8 @@ Windows users may run erigon in 3 possible ways: build on windows : * [Git](https://git-scm.com/downloads) for Windows must be installed. If you're cloning this repository is very likely you already have it - * [GO Programming Language](https://golang.org/dl/) must be installed. Minimum required version is 1.19 - * GNU CC Compiler at least version 10 (is highly suggested that you install `chocolatey` package manager - see + * [GO Programming Language](https://golang.org/dl/) must be installed. Minimum required version is 1.20 + * GNU CC Compiler at least version 13 (is highly suggested that you install `chocolatey` package manager - see following point) * If you need to build MDBX tools (i.e. `.\wmake.ps1 db-tools`) then [Chocolatey package manager](https://chocolatey.org/) for Windows must be installed. By Chocolatey you need @@ -260,7 +258,7 @@ of the yaml configuration file and sets the chain to goerli Example of setting up TOML config file ``` -`datadir = 'your datadir' +datadir = 'your datadir' port = 1111 chain = "mainnet" http = true @@ -501,7 +499,7 @@ Windows support for docker-compose is not ready yet. Please help us with .ps1 po `docker compose up prometheus grafana`, [detailed docs](./cmd/prometheus/Readme.md). -### +### old data @@ -532,58 +530,51 @@ Detailed explanation: [./docs/programmers_guide/db_faq.md](./docs/programmers_gu #### `erigon` ports -| Port | Protocol | Purpose | Expose | -|:-----:|:---------:|:----------------------:|:-------:| -| 30303 | TCP & UDP | eth/66 peering | Public | -| 30304 | TCP & UDP | eth/67 peering | Public | -| 9090 | TCP | gRPC Connections | Private | -| 42069 | TCP & UDP | Snap sync (Bittorrent) | Public | -| 6060 | TCP | Metrics or Pprof | Private | -| 8551 | TCP | Engine API (JWT auth) | Private | +| Component | Port | Protocol | Purpose | Should Expose | +|-----------|-------|-----------|-----------------------------|---------------| +| engine | 9090 | TCP | gRPC Server | Private | +| engine | 42069 | TCP & UDP | Snap sync (Bittorrent) | Public | +| engine | 8551 | TCP | Engine API (JWT auth) | Private | +| sentry | 30303 | TCP & UDP | eth/68 peering | Public | +| sentry | 30304 | TCP & UDP | eth/67 peering | Public | +| sentry | 9091 | TCP | incoming gRPC Connections | Private | +| rpcdaemon | 8545 | TCP | HTTP & WebSockets & GraphQL | Private | Typically, 30303 and 30304 are exposed to the internet to allow incoming peering connections. 9090 is exposed only internally for rpcdaemon or other connections, (e.g. rpcdaemon -> erigon). Port 8551 (JWT authenticated) is exposed only internally for [Engine API] JSON-RPC queries from the Consensus Layer node. -#### `RPC` ports - -| Port | Protocol | Purpose | Expose | -|:----:|:--------:|:---------------------------:|:-------:| -| 8545 | TCP | HTTP & WebSockets & GraphQL | Private | - -Typically, 8545 is exposed only internally for JSON-RPC queries. Both HTTP and WebSocket and GraphQL are on the same -port. +#### `caplin` ports -#### `sentry` ports +| Component | Port | Protocol | Purpose | Should Expose | +|-----------|------|----------|------------------|---------------| +| sentinel | 4000 | UDP | Peering | Public | +| sentinel | 4001 | TCP | Peering | Public | -| Port | Protocol | Purpose | Expose | -|:-----:|:---------:|:----------------:|:-------:| -| 30303 | TCP & UDP | Peering | Public | -| 9091 | TCP | gRPC Connections | Private | +If you are using `--internalcl` aka `caplin` as your consensus client, then also look at the chart above -Typically, a sentry process will run one eth/xx protocol (e.g. eth/66) and will be exposed to the internet on 30303. -Port -9091 is for internal gRCP connections (e.g erigon -> sentry). +#### `beaconAPI` ports -#### `sentinel` ports +| Component | Port | Protocol | Purpose | Should Expose | +|-----------|------|----------|------------------|---------------| +| REST | 5555 | TCP | REST | Public | -| Port | Protocol | Purpose | Expose | -|:----:|:--------:|:----------------:|:-------:| -| 4000 | UDP | Peering | Public | -| 4001 | TCP | Peering | Public | -| 7777 | TCP | gRPC Connections | Private | +If you are using `--internalcl` aka `caplin` as your consensus client and `--beacon.api` then also look at the chart above -#### Other ports +#### `shared` ports -| Port | Protocol | Purpose | Expose | -|:----:|:--------:|:-------:|:-------:| -| 6060 | TCP | pprof | Private | -| 6060 | TCP | metrics | Private | +| Component | Port | Protocol | Purpose | Should Expose | +|-----------|------|----------|---------|---------------| +| all | 6060 | TCP | pprof | Private | +| all | 6060 | TCP | metrics | Private | Optional flags can be enabled that enable pprof or metrics (or both) - however, they both run on 6060 by default, so + you'll have to change one if you want to run both at the same time. use `--help` with the binary for more info. +#### `other` ports + Reserved for future use: **gRPC ports**: `9092` consensus engine, `9093` snapshot downloader, `9094` TxPool #### Hetzner expecting strict firewall rules @@ -592,7 +583,7 @@ Reserved for future use: **gRPC ports**: `9092` consensus engine, `9093` snapsho 0.0.0.0/8 "This" Network RFC 1122, Section 3.2.1.3 10.0.0.0/8 Private-Use Networks RFC 1918 100.64.0.0/10 Carrier-Grade NAT (CGN) RFC 6598, Section 7 -127.16.0.0/12 Private-Use Networks RFC 1918 +127.16.0.0/12 Private-Use Networks RFC 1918 169.254.0.0/16 Link Local RFC 3927 172.16.0.0/12 Private-Use Networks RFC 1918 192.0.0.0/24 IETF Protocol Assignments RFC 5736 @@ -600,16 +591,17 @@ Reserved for future use: **gRPC ports**: `9092` consensus engine, `9093` snapsho 192.88.99.0/24 6to4 Relay Anycast RFC 3068 192.168.0.0/16 Private-Use Networks RFC 1918 198.18.0.0/15 Network Interconnect - Device Benchmark Testing RFC 2544 +Device Benchmark Testing RFC 2544 198.51.100.0/24 TEST-NET-2 RFC 5737 203.0.113.0/24 TEST-NET-3 RFC 5737 224.0.0.0/4 Multicast RFC 3171 240.0.0.0/4 Reserved for Future Use RFC 1112, Section 4 255.255.255.255/32 Limited Broadcast RFC 919, Section 7 - RFC 922, Section 7 +RFC 922, Section 7 ``` -Same in [IpTables syntax](https://ethereum.stackexchange.com/questions/6386/how-to-prevent-being-blacklisted-for-running-an-ethereum-client/13068#13068) +Same +in [IpTables syntax](https://ethereum.stackexchange.com/questions/6386/how-to-prevent-being-blacklisted-for-running-an-ethereum-client/13068#13068) ### How to get diagnostic for bug report? @@ -631,16 +623,29 @@ UID/GID (1000). More details in [post](https://www.fullstaq.com/knowledge-hub/blogs/docker-and-the-host-filesystem-owner-matching-problem) +### How to run public RPC api + +- `--txpool.nolocals=true` +- don't add `admin` in `--http.api` list +- to increase throughput may need + increase/decrease: `--db.read.concurrency`, `--rpc.batch.concurrency`, `--rpc.batch.limit` + ### Run RaspberyPI https://github.com/mathMakesArt/Erigon-on-RPi-4 +### How to change db pagesize + +[post](https://github.com/ledgerwatch/erigon/blob/devel/cmd/integration/Readme.md#copy-data-to-another-db) + + Getting in touch ================ ### Erigon Discord Server -The main discussions are happening on our Discord server. To get an invite, send an email to `bloxster [at] proton.me` with +The main discussions are happening on our Discord server. To get an invite, send an email to `bloxster [at] proton.me` +with your name, occupation, a brief explanation of why you want to join the Discord, and how you heard about Erigon. ### Reporting security issues/concerns @@ -672,15 +677,17 @@ Next tools show correct memory usage of Erigon: browser `localhost:3000`, credentials `admin/admin`) - `cat /proc//smaps` -Erigon uses ~4Gb of RAM during genesis sync and ~1Gb during normal work. OS pages cache can utilize unlimited amount of -memory. - -**Warning:** Multiple instances of Erigon on same machine will touch Disk concurrently, it impacts performance - one of -main Erigon optimisations: "reduce Disk random access". -"Blocks Execution stage" still does many random reads - this is reason why it's slowest stage. We do not recommend -running -multiple genesis syncs on same Disk. If genesis sync passed, then it's fine to run multiple Erigon instances on same -Disk. + Erigon uses ~4Gb of RAM during genesis sync and ~1Gb during normal work. OS pages cache can utilize unlimited amount + of + memory. + + **Warning:** Multiple instances of Erigon on same machine will touch Disk concurrently, it impacts performance - one + of + main Erigon optimisations: "reduce Disk random access". + "Blocks Execution stage" still does many random reads - this is reason why it's slowest stage. We do not recommend + running + multiple genesis syncs on same Disk. If genesis sync passed, then it's fine to run multiple Erigon instances on same + Disk. ### Blocks Execution is slow on cloud-network-drives diff --git a/TESTING.md b/TESTING.md index e57163f5473..9302b7772d1 100644 --- a/TESTING.md +++ b/TESTING.md @@ -2,7 +2,7 @@ Testing of new releases of Erigon should ideally include these checks. ## Incremental Sync -This check requires having the Erigon database synced previously. Lets assume (for command line examples) it is in the +This check requires having the Erigon database synced previously. Let's assume (for command line examples) it is in the directory `~/mainnet/erigon/chaindata`. Using `git pull` or `git checkout`, update the code to the version that is to be released (or very close to it). Then, build erigon executable: @@ -306,7 +306,7 @@ Example of recording command: ./build/bin/rpctest bench8 --erigonUrl http://192.168.1.2:8545 --gethUrl http://192.168.1.1:8545 --needCompare --blockFrom 9000000 --blockTo 9000100 --recordFile req.txt ``` -The file format is plain text, with requests and responses are written in separate lines, and delimited by the tripple +The file format is plain text, with requests and responses are written in separate lines, and delimited by the triple line breaks, like this: ``` diff --git a/accounts/abi/abi_test.go b/accounts/abi/abi_test.go index 56414a88050..2ca829d7759 100644 --- a/accounts/abi/abi_test.go +++ b/accounts/abi/abi_test.go @@ -1137,7 +1137,7 @@ func TestUnpackRevert(t *testing.T) { } for index, c := range cases { t.Run(fmt.Sprintf("case %d", index), func(t *testing.T) { - got, err := UnpackRevert(common.Hex2Bytes(c.input)) + got, err := UnpackRevert(libcommon.Hex2Bytes(c.input)) if c.expectErr != nil { if err == nil { t.Fatalf("Expected non-nil error") diff --git a/accounts/abi/bind/backends/simulated.go b/accounts/abi/bind/backends/simulated.go index 9ec89a6fb63..e1b8a639036 100644 --- a/accounts/abi/bind/backends/simulated.go +++ b/accounts/abi/bind/backends/simulated.go @@ -30,7 +30,6 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/fixedgas" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/kv" state2 "github.com/ledgerwatch/erigon-lib/state" @@ -148,7 +147,7 @@ func (b *SimulatedBackend) Commit() { Headers: []*types.Header{b.pendingHeader}, Blocks: []*types.Block{b.pendingBlock}, TopBlock: b.pendingBlock, - }, nil); err != nil { + }); err != nil { panic(err) } //nolint:prealloc @@ -174,11 +173,11 @@ func (b *SimulatedBackend) emptyPendingBlock() { b.pendingBlock = blockChain.Blocks[0] b.pendingReceipts = blockChain.Receipts[0] b.pendingHeader = blockChain.Headers[0] - b.gasPool = new(core.GasPool).AddGas(b.pendingHeader.GasLimit).AddBlobGas(fixedgas.MaxBlobGasPerBlock) + b.gasPool = new(core.GasPool).AddGas(b.pendingHeader.GasLimit).AddBlobGas(b.m.ChainConfig.GetMaxBlobGasPerBlock()) if b.pendingReaderTx != nil { b.pendingReaderTx.Rollback() } - tx, err := b.m.DB.BeginRo(context.Background()) + tx, err := b.m.DB.BeginRo(context.Background()) //nolint:gocritic if err != nil { panic(err) } diff --git a/accounts/abi/bind/backends/simulated_test.go b/accounts/abi/bind/backends/simulated_test.go index 0d33ca281b9..0f14ad4703a 100644 --- a/accounts/abi/bind/backends/simulated_test.go +++ b/accounts/abi/bind/backends/simulated_test.go @@ -467,7 +467,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 0, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("d8b98391"), + Data: libcommon.Hex2Bytes("d8b98391"), }, 0, errors.New("execution reverted: revert reason"), "0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000d72657665727420726561736f6e00000000000000000000000000000000000000"}, {"PureRevert", ethereum.CallMsg{ @@ -476,7 +476,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 0, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("aa8b1d30"), + Data: libcommon.Hex2Bytes("aa8b1d30"), }, 0, errors.New("execution reverted"), nil}, {"OOG", ethereum.CallMsg{ @@ -485,7 +485,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 100000, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("50f6fe34"), + Data: libcommon.Hex2Bytes("50f6fe34"), }, 0, errors.New("gas required exceeds allowance (100000)"), nil}, {"Assert", ethereum.CallMsg{ @@ -494,7 +494,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 100000, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("b9b046f9"), + Data: libcommon.Hex2Bytes("b9b046f9"), }, 0, errors.New("invalid opcode: INVALID"), nil}, {"Valid", ethereum.CallMsg{ @@ -503,7 +503,7 @@ func TestSimulatedBackend_EstimateGas(t *testing.T) { Gas: 100000, GasPrice: u256.Num0, Value: nil, - Data: common.Hex2Bytes("e09fface"), + Data: libcommon.Hex2Bytes("e09fface"), }, 21275, nil, nil}, } for _, c := range cases { diff --git a/accounts/abi/bind/base_test.go b/accounts/abi/bind/base_test.go index ca2d4e19e31..e16c4ad0485 100644 --- a/accounts/abi/bind/base_test.go +++ b/accounts/abi/bind/base_test.go @@ -18,6 +18,7 @@ package bind_test import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "reflect" "strings" @@ -28,7 +29,6 @@ import ( ethereum "github.com/ledgerwatch/erigon" "github.com/ledgerwatch/erigon/accounts/abi" "github.com/ledgerwatch/erigon/accounts/abi/bind" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" diff --git a/accounts/abi/pack_test.go b/accounts/abi/pack_test.go index 0c745016f9e..49f576137c4 100644 --- a/accounts/abi/pack_test.go +++ b/accounts/abi/pack_test.go @@ -185,25 +185,25 @@ func TestPackNumber(t *testing.T) { packed []byte }{ // Protocol limits - {reflect.ValueOf(0), common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")}, - {reflect.ValueOf(1), common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")}, - {reflect.ValueOf(-1), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")}, + {reflect.ValueOf(0), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")}, + {reflect.ValueOf(1), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")}, + {reflect.ValueOf(-1), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")}, // Type corner cases - {reflect.ValueOf(uint8(math.MaxUint8)), common.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000ff")}, - {reflect.ValueOf(uint16(math.MaxUint16)), common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000ffff")}, - {reflect.ValueOf(uint32(math.MaxUint32)), common.Hex2Bytes("00000000000000000000000000000000000000000000000000000000ffffffff")}, - {reflect.ValueOf(uint64(math.MaxUint64)), common.Hex2Bytes("000000000000000000000000000000000000000000000000ffffffffffffffff")}, - - {reflect.ValueOf(int8(math.MaxInt8)), common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000007f")}, - {reflect.ValueOf(int16(math.MaxInt16)), common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000007fff")}, - {reflect.ValueOf(int32(math.MaxInt32)), common.Hex2Bytes("000000000000000000000000000000000000000000000000000000007fffffff")}, - {reflect.ValueOf(int64(math.MaxInt64)), common.Hex2Bytes("0000000000000000000000000000000000000000000000007fffffffffffffff")}, - - {reflect.ValueOf(int8(math.MinInt8)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80")}, - {reflect.ValueOf(int16(math.MinInt16)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000")}, - {reflect.ValueOf(int32(math.MinInt32)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000")}, - {reflect.ValueOf(int64(math.MinInt64)), common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000")}, + {reflect.ValueOf(uint8(math.MaxUint8)), libcommon.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000ff")}, + {reflect.ValueOf(uint16(math.MaxUint16)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000ffff")}, + {reflect.ValueOf(uint32(math.MaxUint32)), libcommon.Hex2Bytes("00000000000000000000000000000000000000000000000000000000ffffffff")}, + {reflect.ValueOf(uint64(math.MaxUint64)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000ffffffffffffffff")}, + + {reflect.ValueOf(int8(math.MaxInt8)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000007f")}, + {reflect.ValueOf(int16(math.MaxInt16)), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000007fff")}, + {reflect.ValueOf(int32(math.MaxInt32)), libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000007fffffff")}, + {reflect.ValueOf(int64(math.MaxInt64)), libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000007fffffffffffffff")}, + + {reflect.ValueOf(int8(math.MinInt8)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80")}, + {reflect.ValueOf(int16(math.MinInt16)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000")}, + {reflect.ValueOf(int32(math.MinInt32)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000")}, + {reflect.ValueOf(int64(math.MinInt64)), libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000")}, } for i, tt := range tests { packed := packNum(tt.value) diff --git a/accounts/abi/packing_test.go b/accounts/abi/packing_test.go index d960223f897..4248596079f 100644 --- a/accounts/abi/packing_test.go +++ b/accounts/abi/packing_test.go @@ -20,8 +20,6 @@ import ( "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" - - "github.com/ledgerwatch/erigon/common" ) type packUnpackTest struct { @@ -378,7 +376,7 @@ var packUnpackTests = []packUnpackTest{ packed: "0000000000000000000000000000000000000000000000000000000000000020" + "0000000000000000000000000000000000000000000000000000000000000020" + "0100000000000000000000000000000000000000000000000000000000000000", - unpacked: common.Hex2Bytes("0100000000000000000000000000000000000000000000000000000000000000"), + unpacked: libcommon.Hex2Bytes("0100000000000000000000000000000000000000000000000000000000000000"), }, { def: `[{"type": "bytes32"}]`, diff --git a/accounts/abi/unpack_test.go b/accounts/abi/unpack_test.go index 880fb589335..083f329b75e 100644 --- a/accounts/abi/unpack_test.go +++ b/accounts/abi/unpack_test.go @@ -258,8 +258,8 @@ func TestUnpackIntoInterfaceSetDynamicArrayOutput(t *testing.T) { } var ( - marshalledReturn32 = common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783132333435363738393000000000000000000000000000000000000000003078303938373635343332310000000000000000000000000000000000000000") - marshalledReturn15 = common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783031323334350000000000000000000000000000000000000000000000003078393837363534000000000000000000000000000000000000000000000000") + marshalledReturn32 = libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783132333435363738393000000000000000000000000000000000000000003078303938373635343332310000000000000000000000000000000000000000") + marshalledReturn15 = libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000230783031323334350000000000000000000000000000000000000000000000003078393837363534000000000000000000000000000000000000000000000000") out32 [][32]byte out15 [][15]byte @@ -273,11 +273,11 @@ func TestUnpackIntoInterfaceSetDynamicArrayOutput(t *testing.T) { if len(out32) != 2 { t.Fatalf("expected array with 2 values, got %d", len(out32)) } - expected := common.Hex2Bytes("3078313233343536373839300000000000000000000000000000000000000000") + expected := libcommon.Hex2Bytes("3078313233343536373839300000000000000000000000000000000000000000") if !bytes.Equal(out32[0][:], expected) { t.Errorf("expected %x, got %x\n", expected, out32[0]) } - expected = common.Hex2Bytes("3078303938373635343332310000000000000000000000000000000000000000") + expected = libcommon.Hex2Bytes("3078303938373635343332310000000000000000000000000000000000000000") if !bytes.Equal(out32[1][:], expected) { t.Errorf("expected %x, got %x\n", expected, out32[1]) } @@ -290,11 +290,11 @@ func TestUnpackIntoInterfaceSetDynamicArrayOutput(t *testing.T) { if len(out15) != 2 { t.Fatalf("expected array with 2 values, got %d", len(out15)) } - expected = common.Hex2Bytes("307830313233343500000000000000") + expected = libcommon.Hex2Bytes("307830313233343500000000000000") if !bytes.Equal(out15[0][:], expected) { t.Errorf("expected %x, got %x\n", expected, out15[0]) } - expected = common.Hex2Bytes("307839383736353400000000000000") + expected = libcommon.Hex2Bytes("307839383736353400000000000000") if !bytes.Equal(out15[1][:], expected) { t.Errorf("expected %x, got %x\n", expected, out15[1]) } @@ -314,9 +314,9 @@ func methodMultiReturn(require *require.Assertions) (ABI, []byte, methodMultiOut require.NoError(err) // using buff to make the code readable buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005")) buff.Write(common.RightPadBytes([]byte(expected.String), 32)) return abi, buff.Bytes(), expected } @@ -402,8 +402,8 @@ func TestMultiReturnWithArray(t *testing.T) { t.Fatal(err) } buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000009")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) ret1, ret1Exp := new([3]uint64), [3]uint64{9, 9, 9} ret2, ret2Exp := new(uint64), uint64(8) @@ -425,7 +425,7 @@ func TestMultiReturnWithStringArray(t *testing.T) { t.Fatal(err) } buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000005c1b78ea0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000001a055690d9db80000000000000000000000000000ab1257528b3782fb40d7ed5f72e624b744dffb2f00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000008457468657265756d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001048656c6c6f2c20457468657265756d2100000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000005c1b78ea0000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000001a055690d9db80000000000000000000000000000ab1257528b3782fb40d7ed5f72e624b744dffb2f00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000008457468657265756d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001048656c6c6f2c20457468657265756d2100000000000000000000000000000000")) temp, _ := big.NewInt(0).SetString("30000000000000000000", 10) ret1, ret1Exp := new([3]*big.Int), [3]*big.Int{big.NewInt(1545304298), big.NewInt(6), temp} ret2, ret2Exp := new(libcommon.Address), libcommon.HexToAddress("ab1257528b3782fb40d7ed5f72e624b744dffb2f") @@ -455,18 +455,18 @@ func TestMultiReturnWithStringSlice(t *testing.T) { t.Fatal(err) } buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0] offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000120")) // output[1] offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[0] length - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0][0] offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // output[0][1] offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) // output[0][0] length - buff.Write(common.Hex2Bytes("657468657265756d000000000000000000000000000000000000000000000000")) // output[0][0] value - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000b")) // output[0][1] length - buff.Write(common.Hex2Bytes("676f2d657468657265756d000000000000000000000000000000000000000000")) // output[0][1] value - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[1] length - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000064")) // output[1][0] value - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000065")) // output[1][1] value + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0] offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000120")) // output[1] offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[0] length + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // output[0][0] offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // output[0][1] offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000008")) // output[0][0] length + buff.Write(libcommon.Hex2Bytes("657468657265756d000000000000000000000000000000000000000000000000")) // output[0][0] value + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000b")) // output[0][1] length + buff.Write(libcommon.Hex2Bytes("676f2d657468657265756d000000000000000000000000000000000000000000")) // output[0][1] value + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // output[1] length + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000064")) // output[1][0] value + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000065")) // output[1][1] value ret1, ret1Exp := new([]string), []string{"ethereum", "go-ethereum"} ret2, ret2Exp := new([]*big.Int), []*big.Int{big.NewInt(100), big.NewInt(101)} if err := abi.UnpackIntoInterface(&[]interface{}{ret1, ret2}, "multi", buff.Bytes()); err != nil { @@ -493,14 +493,14 @@ func TestMultiReturnWithDeeplyNestedArray(t *testing.T) { buff := new(bytes.Buffer) // construct the test array, each 3 char element is joined with 61 '0' chars, // to from the ((3 + 61) * 0.5) = 32 byte elements in the array. - buff.Write(common.Hex2Bytes(strings.Join([]string{ + buff.Write(libcommon.Hex2Bytes(strings.Join([]string{ "", //empty, to apply the 61-char separator to the first element as well. "111", "112", "113", "121", "122", "123", "211", "212", "213", "221", "222", "223", "311", "312", "313", "321", "322", "323", "411", "412", "413", "421", "422", "423", }, "0000000000000000000000000000000000000000000000000000000000000"))) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000009876")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000009876")) ret1, ret1Exp := new([4][2][3]uint64), [4][2][3]uint64{ {{0x111, 0x112, 0x113}, {0x121, 0x122, 0x123}}, @@ -539,14 +539,14 @@ func TestUnmarshal(t *testing.T) { buff := new(bytes.Buffer) // marshall mixed bytes (mixedBytes) - p0, p0Exp := []byte{}, common.Hex2Bytes("01020000000000000000") - p1, p1Exp := [32]byte{}, common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff") + p0, p0Exp := []byte{}, libcommon.Hex2Bytes("01020000000000000000") + p1, p1Exp := [32]byte{}, libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff") mixedBytes := []interface{}{&p0, &p1} - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff")) - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000a")) - buff.Write(common.Hex2Bytes("0102000000000000000000000000000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000ddeeff")) + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000a")) + buff.Write(libcommon.Hex2Bytes("0102000000000000000000000000000000000000000000000000000000000000")) err = abi.UnpackIntoInterface(&mixedBytes, "mixedBytes", buff.Bytes()) if err != nil { @@ -563,7 +563,7 @@ func TestUnmarshal(t *testing.T) { // marshal int var Int *big.Int - err = abi.UnpackIntoInterface(&Int, "int", common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) + err = abi.UnpackIntoInterface(&Int, "int", libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) if err != nil { t.Error(err) } @@ -574,7 +574,7 @@ func TestUnmarshal(t *testing.T) { // marshal bool var Bool bool - err = abi.UnpackIntoInterface(&Bool, "bool", common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) + err = abi.UnpackIntoInterface(&Bool, "bool", libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) if err != nil { t.Error(err) } @@ -585,8 +585,8 @@ func TestUnmarshal(t *testing.T) { // marshal dynamic bytes max length 32 buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) bytesOut := common.RightPadBytes([]byte("hello"), 32) buff.Write(bytesOut) @@ -602,8 +602,8 @@ func TestUnmarshal(t *testing.T) { // marshall dynamic bytes max length 64 buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) bytesOut = common.RightPadBytes([]byte("hello"), 64) buff.Write(bytesOut) @@ -618,8 +618,8 @@ func TestUnmarshal(t *testing.T) { // marshall dynamic bytes max length 64 buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) - buff.Write(common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000003f")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000003f")) bytesOut = common.RightPadBytes([]byte("hello"), 64) buff.Write(bytesOut) @@ -640,8 +640,8 @@ func TestUnmarshal(t *testing.T) { // marshal dynamic bytes length 5 buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000005")) buff.Write(common.RightPadBytes([]byte("hello"), 32)) err = abi.UnpackIntoInterface(&Bytes, "bytes", buff.Bytes()) @@ -670,7 +670,7 @@ func TestUnmarshal(t *testing.T) { // marshal error buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) err = abi.UnpackIntoInterface(&Bytes, "bytes", buff.Bytes()) if err == nil { t.Error("expected error") @@ -682,9 +682,9 @@ func TestUnmarshal(t *testing.T) { } buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000003")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000003")) // marshal int array var intArray [3]*big.Int err = abi.UnpackIntoInterface(&intArray, "intArraySingle", buff.Bytes()) @@ -703,9 +703,9 @@ func TestUnmarshal(t *testing.T) { } // marshal address slice buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) // offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size - buff.Write(common.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000020")) // offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000")) var outAddr []libcommon.Address err = abi.UnpackIntoInterface(&outAddr, "addressSliceSingle", buff.Bytes()) @@ -723,13 +723,13 @@ func TestUnmarshal(t *testing.T) { // marshal multiple address slice buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size - buff.Write(common.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000")) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // size - buff.Write(common.Hex2Bytes("0000000000000000000000000200000000000000000000000000000000000000")) - buff.Write(common.Hex2Bytes("0000000000000000000000000300000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000040")) // offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // size + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000100000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // size + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000200000000000000000000000000000000000000")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000300000000000000000000000000000000000000")) var outAddrStruct struct { A []libcommon.Address @@ -761,7 +761,7 @@ func TestUnmarshal(t *testing.T) { // marshal invalid address slice buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000100")) + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000100")) err = abi.UnpackIntoInterface(&outAddr, "addressSliceSingle", buff.Bytes()) if err == nil { @@ -777,8 +777,8 @@ func TestUnpackTuple(t *testing.T) { } buff := new(bytes.Buffer) - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // ret[a] = 1 - buff.Write(common.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")) // ret[b] = -1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // ret[a] = 1 + buff.Write(libcommon.Hex2Bytes("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")) // ret[b] = -1 // If the result is single tuple, use struct as return value container directly. v := struct { @@ -810,21 +810,21 @@ func TestUnpackTuple(t *testing.T) { t.Fatal(err) } buff.Reset() - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // s offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")) // t.X = 0 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // t.Y = 1 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // a = 1 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.A = 1 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000060")) // s.B offset - buff.Write(common.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000c0")) // s.C offset - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B length - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.B[0] = 1 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B[0] = 2 - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C length - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[0].X - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[0].Y - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[1].X - buff.Write(common.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[1].Y + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000080")) // s offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000000")) // t.X = 0 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // t.Y = 1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // a = 1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.A = 1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000060")) // s.B offset + buff.Write(libcommon.Hex2Bytes("00000000000000000000000000000000000000000000000000000000000000c0")) // s.C offset + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B length + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.B[0] = 1 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.B[0] = 2 + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C length + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[0].X + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[0].Y + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000002")) // s.C[1].X + buff.Write(libcommon.Hex2Bytes("0000000000000000000000000000000000000000000000000000000000000001")) // s.C[1].Y type T struct { X *big.Int `abi:"x"` diff --git a/cl/abstract/beacon_state.go b/cl/abstract/beacon_state.go index da949eed384..a4d098e3206 100644 --- a/cl/abstract/beacon_state.go +++ b/cl/abstract/beacon_state.go @@ -32,7 +32,7 @@ type BeaconStateExtension interface { BaseReward(index uint64) (uint64, error) SyncRewards() (proposerReward, participantReward uint64, err error) CommitteeCount(epoch uint64) uint64 - GetAttestationParticipationFlagIndicies(data solid.AttestationData, inclusionDelay uint64) ([]uint8, error) + GetAttestationParticipationFlagIndicies(data solid.AttestationData, inclusionDelay uint64, skipAssert bool) ([]uint8, error) GetBeaconCommitee(slot, committeeIndex uint64) ([]uint64, error) ComputeNextSyncCommittee() (*solid.SyncCommittee, error) GetAttestingIndicies(attestation solid.AttestationData, aggregationBits []byte, checkBitsLength bool) ([]uint64, error) @@ -43,6 +43,24 @@ type BeaconStateExtension interface { } type BeaconStateBasic interface { + BeaconStateMinimal + BeaconStateExtra + BeaconStateMutator + BeaconStateSSZ + + Clone() clonable.Clonable + DebugPrint(prefix string) +} + +type BeaconStateSSZ interface { + BlockRoot() ([32]byte, error) + EncodeSSZ(buf []byte) ([]byte, error) + DecodeSSZ(buf []byte, version int) error + EncodingSizeSSZ() (size int) + HashSSZ() (out [32]byte, err error) +} + +type BeaconStateMutator interface { SetVersion(version clparams.StateVersion) SetSlot(slot uint64) SetFork(fork *cltypes.Fork) @@ -56,8 +74,6 @@ type BeaconStateBasic interface { SetActivationEpochForValidatorAtIndex(index int, epoch uint64) SetActivationEligibilityEpochForValidatorAtIndex(index int, epoch uint64) SetEth1Data(eth1Data *cltypes.Eth1Data) - AddEth1DataVote(vote *cltypes.Eth1Data) - ResetEth1DataVotes() SetEth1DepositIndex(eth1DepositIndex uint64) SetValidatorSlashed(index int, slashed bool) error SetValidatorMinCurrentInclusionDelayAttestation(index int, value *solid.PendingAttestation) error @@ -69,13 +85,11 @@ type BeaconStateBasic interface { SetValidatorIsPreviousMatchingTargetAttester(index int, value bool) error SetValidatorIsPreviousMatchingHeadAttester(index int, value bool) error SetValidatorBalance(index int, balance uint64) error - AddValidator(validator solid.Validator, balance uint64) SetRandaoMixAt(index int, mix common.Hash) SetSlashingSegmentAt(index int, segment uint64) - IncrementSlashingSegmentAt(index int, delta uint64) SetEpochParticipationForValidatorIndex(isCurrentEpoch bool, index int, flags cltypes.ParticipationFlags) SetValidatorAtIndex(index int, validator solid.Validator) - ResetEpochParticipation() + SetJustificationBits(justificationBits cltypes.JustificationBits) SetPreviousJustifiedCheckpoint(previousJustifiedCheckpoint solid.Checkpoint) SetCurrentJustifiedCheckpoint(currentJustifiedCheckpoint solid.Checkpoint) @@ -85,41 +99,37 @@ type BeaconStateBasic interface { SetLatestExecutionPayloadHeader(header *cltypes.Eth1Header) SetNextWithdrawalIndex(index uint64) SetNextWithdrawalValidatorIndex(index uint64) - ResetHistoricalSummaries() - AddHistoricalSummary(summary *cltypes.HistoricalSummary) - AddHistoricalRoot(root common.Hash) SetInactivityScores(scores []uint64) - AddInactivityScore(score uint64) SetValidatorInactivityScore(index int, score uint64) error SetCurrentEpochParticipationFlags(flags []cltypes.ParticipationFlags) SetPreviousEpochParticipationFlags(flags []cltypes.ParticipationFlags) + SetPreviousEpochAttestations(attestations *solid.ListSSZ[*solid.PendingAttestation]) + + AddEth1DataVote(vote *cltypes.Eth1Data) + AddValidator(validator solid.Validator, balance uint64) + AddHistoricalSummary(summary *cltypes.HistoricalSummary) + AddHistoricalRoot(root common.Hash) + AddInactivityScore(score uint64) AddCurrentEpochParticipationFlags(flags cltypes.ParticipationFlags) AddPreviousEpochParticipationFlags(flags cltypes.ParticipationFlags) AddPreviousEpochParticipationAt(index int, delta byte) AddCurrentEpochAtteastation(attestation *solid.PendingAttestation) AddPreviousEpochAttestation(attestation *solid.PendingAttestation) + + AppendValidator(in solid.Validator) + + ResetEth1DataVotes() + ResetEpochParticipation() + ResetHistoricalSummaries() ResetCurrentEpochAttestations() - SetPreviousEpochAttestations(attestations *solid.ListSSZ[*solid.PendingAttestation]) ResetPreviousEpochAttestations() - BeaconConfig() *clparams.BeaconChainConfig - Version() clparams.StateVersion - GenesisTime() uint64 - GenesisValidatorsRoot() common.Hash - Slot() uint64 - PreviousSlot() uint64 - Fork() *cltypes.Fork - LatestBlockHeader() cltypes.BeaconBlockHeader - BlockRoots() solid.HashVectorSSZ - StateRoots() solid.HashVectorSSZ - Eth1Data() *cltypes.Eth1Data - Eth1DataVotes() *solid.ListSSZ[*cltypes.Eth1Data] - Eth1DepositIndex() uint64 +} + +type BeaconStateExtra interface { ValidatorLength() int - AppendValidator(in solid.Validator) - ForEachValidator(fn func(v solid.Validator, idx int, total int) bool) - ValidatorForValidatorIndex(index int) (solid.Validator, error) - ForEachBalance(fn func(v uint64, idx int, total int) bool) ValidatorBalance(index int) (uint64, error) + RandaoMixes() solid.HashVectorSSZ + ForEachBalance(fn func(v uint64, idx int, total int) bool) ValidatorExitEpoch(index int) (uint64, error) ValidatorWithdrawableEpoch(index int) (uint64, error) ValidatorEffectiveBalance(index int) (uint64, error) @@ -131,36 +141,52 @@ type BeaconStateBasic interface { ValidatorIsPreviousMatchingSourceAttester(idx int) (bool, error) ValidatorIsPreviousMatchingTargetAttester(idx int) (bool, error) ValidatorIsPreviousMatchingHeadAttester(idx int) (bool, error) - RandaoMixes() solid.HashVectorSSZ GetRandaoMixes(epoch uint64) [32]byte GetRandaoMix(index int) [32]byte + EpochParticipationForValidatorIndex(isCurrentEpoch bool, index int) cltypes.ParticipationFlags + GetBlockRootAtSlot(slot uint64) (common.Hash, error) + GetDomain(domainType [4]byte, epoch uint64) ([]byte, error) +} + +type BeaconStateMinimal interface { + BeaconConfig() *clparams.BeaconChainConfig + Version() clparams.StateVersion + GenesisTime() uint64 + GenesisValidatorsRoot() common.Hash + Slot() uint64 + PreviousSlot() uint64 + Fork() *cltypes.Fork + LatestBlockHeader() cltypes.BeaconBlockHeader + BlockRoots() solid.HashVectorSSZ + StateRoots() solid.HashVectorSSZ + Eth1Data() *cltypes.Eth1Data + Eth1DataVotes() *solid.ListSSZ[*cltypes.Eth1Data] + Eth1DepositIndex() uint64 + + ForEachValidator(fn func(v solid.Validator, idx int, total int) bool) + ValidatorForValidatorIndex(index int) (solid.Validator, error) + ForEachSlashingSegment(fn func(idx int, v uint64, total int) bool) SlashingSegmentAt(pos int) uint64 + EpochParticipation(currentEpoch bool) *solid.BitList JustificationBits() cltypes.JustificationBits - EpochParticipationForValidatorIndex(isCurrentEpoch bool, index int) cltypes.ParticipationFlags + PreviousJustifiedCheckpoint() solid.Checkpoint CurrentJustifiedCheckpoint() solid.Checkpoint - ValidatorInactivityScore(index int) (uint64, error) FinalizedCheckpoint() solid.Checkpoint + ValidatorInactivityScore(index int) (uint64, error) CurrentSyncCommittee() *solid.SyncCommittee NextSyncCommittee() *solid.SyncCommittee LatestExecutionPayloadHeader() *cltypes.Eth1Header NextWithdrawalIndex() uint64 + NextWithdrawalValidatorIndex() uint64 + // HistoricalSummary has no accessor yet. + CurrentEpochAttestations() *solid.ListSSZ[*solid.PendingAttestation] CurrentEpochAttestationsLength() int PreviousEpochAttestations() *solid.ListSSZ[*solid.PendingAttestation] PreviousEpochAttestationsLength() int - NextWithdrawalValidatorIndex() uint64 - GetBlockRootAtSlot(slot uint64) (common.Hash, error) - GetDomain(domainType [4]byte, epoch uint64) ([]byte, error) - DebugPrint(prefix string) - BlockRoot() ([32]byte, error) - EncodeSSZ(buf []byte) ([]byte, error) - DecodeSSZ(buf []byte, version int) error - EncodingSizeSSZ() (size int) - Clone() clonable.Clonable - HashSSZ() (out [32]byte, err error) } // TODO figure this out diff --git a/cl/antiquary/antiquary.go b/cl/antiquary/antiquary.go new file mode 100644 index 00000000000..2042d78b5ca --- /dev/null +++ b/cl/antiquary/antiquary.go @@ -0,0 +1,269 @@ +package antiquary + +import ( + "context" + "sync/atomic" + "time" + + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + proto_downloader "github.com/ledgerwatch/erigon-lib/gointerfaces/downloader" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + state_accessors "github.com/ledgerwatch/erigon/cl/persistence/state" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/utils" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + "github.com/ledgerwatch/log/v3" + "github.com/spf13/afero" +) + +const safetyMargin = 10_000 // We retire snapshots 10k blocks after the finalized head + +// Antiquary is where the snapshots go, aka old history, it is what keep track of the oldest records. +type Antiquary struct { + mainDB kv.RwDB // this is the main DB + dirs datadir.Dirs + downloader proto_downloader.DownloaderClient + logger log.Logger + sn *freezeblocks.CaplinSnapshots + snReader freezeblocks.BeaconSnapshotReader + ctx context.Context + beaconDB persistence.BlockSource + backfilled *atomic.Bool + cfg *clparams.BeaconChainConfig + states bool + fs afero.Fs + validatorsTable *state_accessors.StaticValidatorTable + genesisState *state.CachingBeaconState + // set to nil + currentState *state.CachingBeaconState + balances32 []byte +} + +func NewAntiquary(ctx context.Context, genesisState *state.CachingBeaconState, validatorsTable *state_accessors.StaticValidatorTable, cfg *clparams.BeaconChainConfig, dirs datadir.Dirs, downloader proto_downloader.DownloaderClient, mainDB kv.RwDB, sn *freezeblocks.CaplinSnapshots, reader freezeblocks.BeaconSnapshotReader, beaconDB persistence.BlockSource, logger log.Logger, states bool, fs afero.Fs) *Antiquary { + backfilled := &atomic.Bool{} + backfilled.Store(false) + return &Antiquary{ + mainDB: mainDB, + dirs: dirs, + downloader: downloader, + logger: logger, + sn: sn, + beaconDB: beaconDB, + ctx: ctx, + backfilled: backfilled, + cfg: cfg, + states: states, + snReader: reader, + fs: fs, + validatorsTable: validatorsTable, + genesisState: genesisState, + } +} + +// Antiquate is the function that starts transactions seeding and shit, very cool but very shit too as a name. +func (a *Antiquary) Loop() error { + if a.downloader == nil { + return nil // Just skip if we don't have a downloader + } + // Skip if we dont support backfilling for the current network + if !clparams.SupportBackfilling(a.cfg.DepositNetworkID) { + return nil + } + statsReply, err := a.downloader.Stats(a.ctx, &proto_downloader.StatsRequest{}) + if err != nil { + return err + } + reCheckTicker := time.NewTicker(3 * time.Second) + defer reCheckTicker.Stop() + // Fist part of the antiquate is to download caplin snapshots + for !statsReply.Completed { + select { + case <-reCheckTicker.C: + statsReply, err = a.downloader.Stats(a.ctx, &proto_downloader.StatsRequest{}) + if err != nil { + return err + } + case <-a.ctx.Done(): + } + } + if err := a.sn.BuildMissingIndices(a.ctx, a.logger, log.LvlDebug); err != nil { + return err + } + // Here we need to start mdbx transaction and lock the thread + log.Info("[Antiquary]: Stopping Caplin to process historical indicies") + tx, err := a.mainDB.BeginRw(a.ctx) + if err != nil { + return err + } + defer tx.Rollback() + // read the last beacon snapshots + from, err := beacon_indicies.ReadLastBeaconSnapshot(tx) + if err != nil { + return err + } + logInterval := time.NewTicker(30 * time.Second) + if err := a.sn.ReopenFolder(); err != nil { + return err + } + defer logInterval.Stop() + + // Now write the snapshots as indicies + for i := from; i < a.sn.BlocksAvailable(); i++ { + // read the snapshot + header, elBlockNumber, elBlockHash, err := a.sn.ReadHeader(i) + if err != nil { + return err + } + if header == nil { + continue + } + blockRoot, err := header.Header.HashSSZ() + if err != nil { + return err + } + if err := beacon_indicies.MarkRootCanonical(a.ctx, tx, header.Header.Slot, blockRoot); err != nil { + return err + } + if err := beacon_indicies.WriteHeaderSlot(tx, blockRoot, header.Header.Slot); err != nil { + return err + } + if err := beacon_indicies.WriteStateRoot(tx, blockRoot, header.Header.Root); err != nil { + return err + } + if err := beacon_indicies.WriteParentBlockRoot(a.ctx, tx, blockRoot, header.Header.ParentRoot); err != nil { + return err + } + if err := beacon_indicies.WriteExecutionBlockNumber(tx, blockRoot, elBlockNumber); err != nil { + return err + } + if err := beacon_indicies.WriteExecutionBlockHash(tx, blockRoot, elBlockHash); err != nil { + return err + } + select { + case <-logInterval.C: + log.Info("[Antiquary]: Processed snapshots", "progress", i, "target", a.sn.BlocksAvailable()) + case <-a.ctx.Done(): + default: + } + } + + frozenSlots := a.sn.BlocksAvailable() + if frozenSlots != 0 { + if err := a.beaconDB.PurgeRange(a.ctx, tx, 0, frozenSlots); err != nil { + return err + } + } + + if a.states { + go a.loopStates(a.ctx) + } + + // write the indicies + if err := beacon_indicies.WriteLastBeaconSnapshot(tx, frozenSlots); err != nil { + return err + } + log.Info("[Antiquary]: Restarting Caplin") + if err := tx.Commit(); err != nil { + return err + } + // Check for snapshots retirement every 3 minutes + retirementTicker := time.NewTicker(3 * time.Minute) + defer retirementTicker.Stop() + for { + select { + case <-retirementTicker.C: + if !a.backfilled.Load() { + continue + } + var ( + from uint64 + to uint64 + ) + if err := a.mainDB.View(a.ctx, func(roTx kv.Tx) error { + // read the last beacon snapshots + from, err = beacon_indicies.ReadLastBeaconSnapshot(roTx) + if err != nil { + return err + } + from += 1 + // read the finalized head + to, err = beacon_indicies.ReadHighestFinalized(roTx) + if err != nil { + return err + } + return nil + }); err != nil { + return err + } + // Sanity checks just to be safe. + if from >= to { + continue + } + to = utils.Min64(to, to-safetyMargin) // We don't want to retire snapshots that are too close to the finalized head + to = (to / snaptype.Erigon2RecentMergeLimit) * snaptype.Erigon2RecentMergeLimit + if to-from < snaptype.Erigon2RecentMergeLimit { + continue + } + if err := a.antiquate(from, to); err != nil { + return err + } + case <-a.ctx.Done(): + } + } +} + +// Antiquate will antiquate a specific block range (aka. retire snapshots), this should be ran in the background. +func (a *Antiquary) antiquate(from, to uint64) error { + if a.downloader == nil { + return nil // Just skip if we don't have a downloader + } + log.Info("[Antiquary]: Antiquating", "from", from, "to", to) + if err := freezeblocks.DumpBeaconBlocks(a.ctx, a.mainDB, a.beaconDB, from, to, snaptype.Erigon2RecentMergeLimit, a.dirs.Tmp, a.dirs.Snap, 1, log.LvlDebug, a.logger); err != nil { + return err + } + + roTx, err := a.mainDB.BeginRo(a.ctx) + if err != nil { + return err + } + defer roTx.Rollback() + if err := a.beaconDB.PurgeRange(a.ctx, roTx, from, to-from-1); err != nil { + return err + } + roTx.Rollback() + if err := a.sn.ReopenFolder(); err != nil { + return err + } + + paths := a.sn.SegFilePaths(from, to) + downloadItems := make([]*proto_downloader.AddItem, len(paths)) + for i, path := range paths { + downloadItems[i] = &proto_downloader.AddItem{ + Path: path, + } + } + // Notify bittorent to seed the new snapshots + if _, err := a.downloader.Add(a.ctx, &proto_downloader.AddRequest{Items: downloadItems}); err != nil { + return err + } + + tx, err := a.mainDB.BeginRw(a.ctx) + if err != nil { + return err + } + defer tx.Rollback() + a.validatorsTable.SetSlot(to) + if err := beacon_indicies.WriteLastBeaconSnapshot(tx, to-1); err != nil { + return err + } + return tx.Commit() +} + +func (a *Antiquary) NotifyBackfilled() { + // we set up the range for [lowestRawSlot, finalized] + a.backfilled.Store(true) // this is the lowest slot not in snapshots +} diff --git a/cl/antiquary/state_antiquary.go b/cl/antiquary/state_antiquary.go new file mode 100644 index 00000000000..3ae2a1dd3dc --- /dev/null +++ b/cl/antiquary/state_antiquary.go @@ -0,0 +1,804 @@ +package antiquary + +import ( + "bytes" + "context" + "crypto/sha256" + "encoding/binary" + "fmt" + "io" + "os" + "sync" + "time" + + "github.com/klauspost/compress/zstd" + "github.com/ledgerwatch/erigon-lib/common" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/etl" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/clparams/initial_state" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/persistence/base_encoding" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + state_accessors "github.com/ledgerwatch/erigon/cl/persistence/state" + "github.com/ledgerwatch/erigon/cl/persistence/state/historical_states_reader" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/phase1/core/state/raw" + "github.com/ledgerwatch/erigon/cl/phase1/core/state/shuffling" + "github.com/ledgerwatch/erigon/cl/transition" + "github.com/ledgerwatch/log/v3" +) + +// pool for buffers +var bufferPool = sync.Pool{ + New: func() interface{} { + return &bytes.Buffer{} + }, +} + +func excludeDuplicatesIdentity() etl.LoadFunc { + var prevKey, prevValue []byte + prevValue = []byte{} + return func(k, v []byte, table etl.CurrentTableReader, next etl.LoadNextFunc) error { + if len(prevKey) == 0 { + prevKey = common.Copy(k) + prevValue = common.Copy(v) + return nil + } + if bytes.Equal(k, prevKey) { + prevValue = common.Copy(v) + return nil + } + if err := next(prevKey, prevKey, prevValue); err != nil { + return err + } + prevKey = common.Copy(k) + prevValue = common.Copy(v) + return nil + } +} + +func (s *Antiquary) loopStates(ctx context.Context) { + // Execute this each second + reqRetryTimer := time.NewTicker(100 * time.Millisecond) + defer reqRetryTimer.Stop() + if !initial_state.IsGenesisStateSupported(clparams.NetworkType(s.cfg.DepositNetworkID)) { + s.logger.Warn("Genesis state is not supported for this network, no historical states data will be available") + return + } + + for { + select { + // Check if we are behind finalized + case <-reqRetryTimer.C: + if !s.backfilled.Load() { + continue + } + // Check if we are behind finalized + progress, finalized, err := s.readHistoricalProcessingProgress(ctx) + if err != nil { + s.logger.Error("Failed to read historical processing progress", "err", err) + continue + } + // Stay behind a little bit we rely on forkchoice up until (finalized - 2*slotsPerEpoch) + if progress+s.cfg.SlotsPerEpoch/2 >= finalized { + continue + } + if err := s.IncrementBeaconState(ctx, finalized); err != nil { + slot := uint64(0) + if s.currentState != nil { + slot = s.currentState.Slot() + } + s.logger.Error("Failed to increment beacon state", "err", err, "slot", slot) + return + } + + case <-ctx.Done(): + return + } + } +} + +func (s *Antiquary) readHistoricalProcessingProgress(ctx context.Context) (progress, finalized uint64, err error) { + var tx kv.Tx + tx, err = s.mainDB.BeginRo(ctx) + if err != nil { + return + } + defer tx.Rollback() + progress, err = state_accessors.GetStateProcessingProgress(tx) + if err != nil { + return + } + + finalized, err = beacon_indicies.ReadHighestFinalized(tx) + if err != nil { + return + } + return +} + +func uint64BalancesList(s *state.CachingBeaconState, out []uint64) []uint64 { + if len(out) < s.ValidatorLength() { + out = make([]uint64, s.ValidatorLength()) + } + out = out[:s.ValidatorLength()] + + s.ForEachBalance(func(v uint64, index int, total int) bool { + out[index] = v + return true + }) + return out +} + +func (s *Antiquary) IncrementBeaconState(ctx context.Context, to uint64) error { + var tx kv.Tx + + tx, err := s.mainDB.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + // maps which validators changes + changedValidators := make(map[uint64]struct{}) + + loadfunc := func(k, v []byte, table etl.CurrentTableReader, next etl.LoadNextFunc) error { + return next(k, k, v) + } + + effectiveBalance := etl.NewCollector(kv.ValidatorEffectiveBalance, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer effectiveBalance.Close() + balances := etl.NewCollector(kv.ValidatorBalance, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer balances.Close() + randaoMixes := etl.NewCollector(kv.RandaoMixes, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer randaoMixes.Close() + intraRandaoMixes := etl.NewCollector(kv.IntraRandaoMixes, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer intraRandaoMixes.Close() + proposers := etl.NewCollector(kv.Proposers, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer proposers.Close() + slashings := etl.NewCollector(kv.ValidatorSlashings, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer slashings.Close() + blockRoots := etl.NewCollector(kv.BlockRoot, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer blockRoots.Close() + stateRoots := etl.NewCollector(kv.StateRoot, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer stateRoots.Close() + minimalBeaconStates := etl.NewCollector(kv.MinimalBeaconState, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer minimalBeaconStates.Close() + inactivityScoresC := etl.NewCollector(kv.InactivityScores, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer inactivityScoresC.Close() + checkpoints := etl.NewCollector(kv.Checkpoints, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer checkpoints.Close() + nextSyncCommittee := etl.NewCollector(kv.NextSyncCommittee, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer nextSyncCommittee.Close() + currentSyncCommittee := etl.NewCollector(kv.CurrentSyncCommittee, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer currentSyncCommittee.Close() + currentEpochAttestations := etl.NewCollector(kv.CurrentEpochAttestations, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer currentEpochAttestations.Close() + previousEpochAttestations := etl.NewCollector(kv.PreviousEpochAttestations, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer previousEpochAttestations.Close() + eth1DataVotes := etl.NewCollector(kv.Eth1DataVotes, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer eth1DataVotes.Close() + stateEvents := etl.NewCollector(kv.StateEvents, s.dirs.Tmp, etl.NewSortableBuffer(etl.BufferOptimalSize), s.logger) + defer stateEvents.Close() + + progress, err := state_accessors.GetStateProcessingProgress(tx) + if err != nil { + return err + } + // Go back a little bit + if progress > s.cfg.SlotsPerEpoch*2 { + progress -= s.cfg.SlotsPerEpoch * 2 + } else { + progress = 0 + } + progress, err = findNearestSlotBackwards(tx, s.cfg, progress) // Maybe the guess was a missed slot. + if err != nil { + return err + } + // buffers + commonBuffer := &bytes.Buffer{} + compressedWriter, err := zstd.NewWriter(commonBuffer, zstd.WithEncoderLevel(zstd.SpeedBetterCompression)) + if err != nil { + return err + } + defer compressedWriter.Close() + // TODO(Giulio2002): also store genesis information and resume from state. + if s.currentState == nil { + // progress is 0 when we are at genesis + if progress == 0 { + s.currentState, err = s.genesisState.Copy() + if err != nil { + return err + } + // Collect genesis state if we are at genesis + if err := s.collectGenesisState(ctx, compressedWriter, s.currentState, slashings, inactivityScoresC, proposers, minimalBeaconStates, stateEvents, changedValidators); err != nil { + return err + } + s.balances32 = append(s.balances32, s.currentState.RawBalances()...) + } else { + start := time.Now() + // progress not 0? we need to load the state from the DB + historicalReader := historical_states_reader.NewHistoricalStatesReader(s.cfg, s.snReader, s.validatorsTable, s.fs, s.genesisState) + s.currentState, err = historicalReader.ReadHistoricalState(ctx, tx, progress) + if err != nil { + return fmt.Errorf("failed to read historical state at slot %d: %w", progress, err) + } + end := time.Since(start) + hashRoot, err := s.currentState.HashSSZ() + if err != nil { + return err + } + log.Info("Recovered Beacon State", "slot", s.currentState.Slot(), "elapsed", end, "root", libcommon.Hash(hashRoot).String()) + s.balances32 = append(s.balances32, s.currentState.RawBalances()...) + } + } + + logLvl := log.LvlInfo + if to-s.currentState.Slot() < 96 { + logLvl = log.LvlDebug + } + start := time.Now() + + // Use this as the event slot (it will be incremented by 1 each time we process a block) + slot := s.currentState.Slot() + 1 + + var prevBalances, prevValSet []byte + events := state_accessors.NewStateEvents() + slashingOccured := false + // var validatorStaticState + // var validatorStaticState map[uint64]*state.ValidatorStatic + // Setup state events handlers + s.currentState.SetEvents(raw.Events{ + OnNewSlashingSegment: func(index int, segment uint64) error { + slashingOccured = true + return nil + }, + OnRandaoMixChange: func(index int, mix [32]byte) error { + return intraRandaoMixes.Collect(base_encoding.Encode64ToBytes4(slot), mix[:]) + }, + OnNewValidator: func(index int, v solid.Validator, balance uint64) error { + changedValidators[uint64(index)] = struct{}{} + events.AddValidator(uint64(index), v) + return s.validatorsTable.AddValidator(v, uint64(index), slot) + }, + OnNewValidatorActivationEpoch: func(index int, epoch uint64) error { + changedValidators[uint64(index)] = struct{}{} + events.ChangeActivationEpoch(uint64(index), epoch) + return s.validatorsTable.AddActivationEpoch(uint64(index), slot, epoch) + }, + OnNewValidatorExitEpoch: func(index int, epoch uint64) error { + changedValidators[uint64(index)] = struct{}{} + events.ChangeExitEpoch(uint64(index), epoch) + return s.validatorsTable.AddExitEpoch(uint64(index), slot, epoch) + }, + OnNewValidatorWithdrawableEpoch: func(index int, epoch uint64) error { + changedValidators[uint64(index)] = struct{}{} + events.ChangeWithdrawableEpoch(uint64(index), epoch) + return s.validatorsTable.AddWithdrawableEpoch(uint64(index), slot, epoch) + }, + OnNewValidatorSlashed: func(index int, newSlashed bool) error { + changedValidators[uint64(index)] = struct{}{} + events.ChangeSlashed(uint64(index), newSlashed) + return s.validatorsTable.AddSlashed(uint64(index), slot, newSlashed) + }, + OnNewValidatorActivationEligibilityEpoch: func(index int, epoch uint64) error { + changedValidators[uint64(index)] = struct{}{} + events.ChangeActivationEligibilityEpoch(uint64(index), epoch) + return s.validatorsTable.AddActivationEligibility(uint64(index), slot, epoch) + }, + OnNewValidatorWithdrawalCredentials: func(index int, wc []byte) error { + changedValidators[uint64(index)] = struct{}{} + events.ChangeWithdrawalCredentials(uint64(index), libcommon.BytesToHash(wc)) + return s.validatorsTable.AddWithdrawalCredentials(uint64(index), slot, libcommon.BytesToHash(wc)) + }, + OnEpochBoundary: func(epoch uint64) error { + k := base_encoding.Encode64ToBytes4(s.cfg.RoundSlotToEpoch(slot)) + v := make([]byte, solid.CheckpointSize*3) + copy(v, s.currentState.CurrentJustifiedCheckpoint()) + copy(v[solid.CheckpointSize:], s.currentState.PreviousJustifiedCheckpoint()) + copy(v[solid.CheckpointSize*2:], s.currentState.FinalizedCheckpoint()) + if err := checkpoints.Collect(k, v); err != nil { + return err + } + prevEpoch := epoch - 1 + mix := s.currentState.GetRandaoMixes(prevEpoch) + if err := randaoMixes.Collect(base_encoding.Encode64ToBytes4(prevEpoch*s.cfg.SlotsPerEpoch), mix[:]); err != nil { + return err + } + // truncate the file + return proposers.Collect(base_encoding.Encode64ToBytes4(epoch), getProposerDutiesValue(s.currentState)) + }, + OnNewBlockRoot: func(index int, root common.Hash) error { + return blockRoots.Collect(base_encoding.Encode64ToBytes4(s.currentState.Slot()), root[:]) + }, + OnNewStateRoot: func(index int, root common.Hash) error { + return stateRoots.Collect(base_encoding.Encode64ToBytes4(s.currentState.Slot()), root[:]) + }, + OnNewNextSyncCommittee: func(committee *solid.SyncCommittee) error { + roundedSlot := s.cfg.RoundSlotToSyncCommitteePeriod(slot) + return nextSyncCommittee.Collect(base_encoding.Encode64ToBytes4(roundedSlot), committee[:]) + }, + OnNewCurrentSyncCommittee: func(committee *solid.SyncCommittee) error { + roundedSlot := s.cfg.RoundSlotToSyncCommitteePeriod(slot) + return currentSyncCommittee.Collect(base_encoding.Encode64ToBytes4(roundedSlot), committee[:]) + }, + OnAppendEth1Data: func(data *cltypes.Eth1Data) error { + vote, err := data.EncodeSSZ(nil) + if err != nil { + return err + } + return eth1DataVotes.Collect(base_encoding.Encode64ToBytes4(slot), vote) + }, + }) + log.Log(logLvl, "Starting state processing", "from", slot, "to", to) + // Set up a timer to log progress + progressTimer := time.NewTicker(1 * time.Minute) + defer progressTimer.Stop() + prevSlot := slot + first := false + // This tells us that transition and operations do not happen concurrently and access is safe, so we can optimize for GC. + // there is optimized custom cache to recycle big GC overhead. + for ; slot < to; slot++ { + slashingOccured = false // Set this to false at the beginning of each slot. + key := base_encoding.Encode64ToBytes4(slot) + + isDumpSlot := slot%clparams.SlotsPerDump == 0 + block, err := s.snReader.ReadBlockBySlot(ctx, tx, slot) + if err != nil { + return err + } + prevValidatorSetLength := s.currentState.ValidatorLength() + prevEpoch := state.Epoch(s.currentState) + + if slot%s.cfg.SlotsPerEpoch == 0 && s.currentState.Version() == clparams.Phase0Version { + encoded, err := s.currentState.CurrentEpochAttestations().EncodeSSZ(nil) + if err != nil { + return err + } + if err := s.dumpPayload(base_encoding.Encode64ToBytes4(s.cfg.RoundSlotToEpoch(slot-1)), encoded, currentEpochAttestations, commonBuffer, compressedWriter); err != nil { + return err + } + encoded, err = s.currentState.PreviousEpochAttestations().EncodeSSZ(nil) + if err != nil { + return err + } + if err := s.dumpPayload(base_encoding.Encode64ToBytes4(s.cfg.RoundSlotToEpoch(slot-1)), encoded, previousEpochAttestations, commonBuffer, compressedWriter); err != nil { + return err + } + } + + // If we have a missed block, we just skip it. + if block == nil { + if isDumpSlot { + if err := s.antiquateField(ctx, slot, s.currentState.RawBalances(), compressedWriter, "balances"); err != nil { + return err + } + if err := s.antiquateEffectiveBalances(ctx, slot, s.currentState.RawValidatorSet(), compressedWriter); err != nil { + return err + } + } else if slot%s.cfg.SlotsPerEpoch == 0 { + if err := s.antiquateBytesListDiff(ctx, key, s.balances32, s.currentState.RawBalances(), balances, base_encoding.ComputeCompressedSerializedUint64ListDiff); err != nil { + return err + } + s.balances32 = s.balances32[:0] + s.balances32 = append(s.balances32, s.currentState.RawBalances()...) + } + + continue + } + // We now compute the difference between the two balances. + prevBalances = prevBalances[:0] + prevBalances = append(prevBalances, s.currentState.RawBalances()...) + prevValSet = prevValSet[:0] + prevValSet = append(prevValSet, s.currentState.RawValidatorSet()...) + + fullValidation := slot%100_000 == 0 || first + // We sanity check the state every 100k slots or when we start. + if err := transition.TransitionState(s.currentState, block, fullValidation); err != nil { + return err + } + first = false + + // dump the whole sla + if slashingOccured { + if err := s.antiquateFullUint64List(slashings, slot, s.currentState.RawSlashings(), commonBuffer, compressedWriter); err != nil { + return err + } + } + + if err := s.storeMinimalState(commonBuffer, s.currentState, minimalBeaconStates); err != nil { + return err + } + if err := stateEvents.Collect(base_encoding.Encode64ToBytes4(slot), events.CopyBytes()); err != nil { + return err + } + events.Reset() + + if isDumpSlot { + if err := s.antiquateField(ctx, slot, s.currentState.RawBalances(), compressedWriter, "balances"); err != nil { + return err + } + if err := s.antiquateEffectiveBalances(ctx, slot, s.currentState.RawValidatorSet(), compressedWriter); err != nil { + return err + } + continue + } + + // antiquate diffs + isEpochCrossed := prevEpoch != state.Epoch(s.currentState) + if slot%s.cfg.SlotsPerEpoch == 0 { + if err := s.antiquateBytesListDiff(ctx, key, s.balances32, s.currentState.RawBalances(), balances, base_encoding.ComputeCompressedSerializedUint64ListDiff); err != nil { + return err + } + s.balances32 = s.balances32[:0] + s.balances32 = append(s.balances32, s.currentState.RawBalances()...) + } else if err := s.antiquateBytesListDiff(ctx, key, prevBalances, s.currentState.RawBalances(), balances, base_encoding.ComputeCompressedSerializedUint64ListDiff); err != nil { + return err + } + if prevValidatorSetLength != s.currentState.ValidatorLength() || isEpochCrossed { + if err := s.antiquateBytesListDiff(ctx, key, prevValSet, s.currentState.RawValidatorSet(), effectiveBalance, base_encoding.ComputeCompressedSerializedEffectiveBalancesDiff); err != nil { + return err + } + if s.currentState.Version() >= clparams.AltairVersion { + if err := s.antiquateFullUint64List(inactivityScoresC, slot, s.currentState.RawInactivityScores(), commonBuffer, compressedWriter); err != nil { + return err + } + } + } + // We now do some post-processing on the state. + select { + case <-progressTimer.C: + log.Log(logLvl, "State processing progress", "slot", slot, "blk/sec", fmt.Sprintf("%.2f", float64(slot-prevSlot)/60)) + prevSlot = slot + default: + } + } + tx.Rollback() + + log.Debug("Finished beacon state iteration", "elapsed", time.Since(start)) + + rwTx, err := s.mainDB.BeginRw(ctx) + if err != nil { + return err + } + defer rwTx.Rollback() + start = time.Now() + log.Log(logLvl, "Stopped Caplin to load states") + // Now load. + if err := effectiveBalance.Load(rwTx, kv.ValidatorEffectiveBalance, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := randaoMixes.Load(rwTx, kv.RandaoMixes, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := balances.Load(rwTx, kv.ValidatorBalance, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := proposers.Load(rwTx, kv.Proposers, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := slashings.Load(rwTx, kv.ValidatorSlashings, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := blockRoots.Load(rwTx, kv.BlockRoot, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := stateRoots.Load(rwTx, kv.StateRoot, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := minimalBeaconStates.Load(rwTx, kv.MinimalBeaconState, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := inactivityScoresC.Load(rwTx, kv.InactivityScores, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := intraRandaoMixes.Load(rwTx, kv.IntraRandaoMixes, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := checkpoints.Load(rwTx, kv.Checkpoints, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := nextSyncCommittee.Load(rwTx, kv.NextSyncCommittee, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := currentSyncCommittee.Load(rwTx, kv.CurrentSyncCommittee, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := currentEpochAttestations.Load(rwTx, kv.CurrentEpochAttestations, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := previousEpochAttestations.Load(rwTx, kv.PreviousEpochAttestations, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + + if err := eth1DataVotes.Load(rwTx, kv.Eth1DataVotes, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + if err := stateEvents.Load(rwTx, kv.StateEvents, loadfunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + if err := state_accessors.SetStateProcessingProgress(rwTx, s.currentState.Slot()); err != nil { + return err + } + s.validatorsTable.SetSlot(s.currentState.Slot()) + + s.validatorsTable.ForEach(func(validatorIndex uint64, validator *state_accessors.StaticValidator) bool { + if _, ok := changedValidators[validatorIndex]; !ok { + return true + } + commonBuffer.Reset() + if err = validator.WriteTo(commonBuffer); err != nil { + return false + } + if err = rwTx.Put(kv.StaticValidators, base_encoding.Encode64ToBytes4(validatorIndex), common.Copy(commonBuffer.Bytes())); err != nil { + return false + } + return true + }) + if err != nil { + return err + } + if err := rwTx.Commit(); err != nil { + return err + } + endTime := time.Since(start) + stateRoot, err := s.currentState.HashSSZ() + if err != nil { + return err + } + log.Info("Historical states antiquated", "slot", s.currentState.Slot(), "root", libcommon.Hash(stateRoot), "latency", endTime) + return nil +} + +func (s *Antiquary) antiquateField(ctx context.Context, slot uint64, uncompressed []byte, compressor *zstd.Encoder, name string) error { + folderPath, filePath := clparams.EpochToPaths(slot, s.cfg, name) + _ = s.fs.MkdirAll(folderPath, 0o755) + + balancesFile, err := s.fs.OpenFile(filePath, os.O_TRUNC|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + return err + } + defer balancesFile.Close() + compressor.Reset(balancesFile) + + if err := binary.Write(balancesFile, binary.LittleEndian, uint64(len(uncompressed))); err != nil { + return err + } + + if _, err := compressor.Write(uncompressed); err != nil { + return err + } + + if err := compressor.Close(); err != nil { + return err + } + return balancesFile.Sync() +} + +func (s *Antiquary) antiquateEffectiveBalances(ctx context.Context, slot uint64, uncompressed []byte, compressor *zstd.Encoder) error { + folderPath, filePath := clparams.EpochToPaths(slot, s.cfg, "effective_balances") + _ = s.fs.MkdirAll(folderPath, 0o755) + + balancesFile, err := s.fs.OpenFile(filePath, os.O_TRUNC|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + return err + } + defer balancesFile.Close() + compressor.Reset(balancesFile) + validatorSetSize := 121 + + if err := binary.Write(balancesFile, binary.LittleEndian, uint64((len(uncompressed)/validatorSetSize)*8)); err != nil { + return err + } + + for i := 0; i < len(uncompressed)/validatorSetSize; i++ { + // 80:88 + if _, err := compressor.Write(uncompressed[i*validatorSetSize+80 : i*validatorSetSize+88]); err != nil { + return err + } + } + + if err := compressor.Close(); err != nil { + return err + } + return balancesFile.Sync() +} + +func (s *Antiquary) antiquateBytesListDiff(ctx context.Context, key []byte, old, new []byte, collector *etl.Collector, diffFn func(w io.Writer, old, new []byte) error) error { + // create a diff + diffBuffer := bufferPool.Get().(*bytes.Buffer) + defer bufferPool.Put(diffBuffer) + diffBuffer.Reset() + + if err := diffFn(diffBuffer, old, new); err != nil { + return err + } + + return collector.Collect(key, common.Copy(diffBuffer.Bytes())) +} + +func getProposerDutiesValue(s *state.CachingBeaconState) []byte { + epoch := state.Epoch(s) + var wg sync.WaitGroup + list := make([]byte, s.BeaconConfig().SlotsPerEpoch*4) + for slot := s.Slot(); slot < s.Slot()+s.BeaconConfig().SlotsPerEpoch; slot++ { + var proposerIndex uint64 + // Lets do proposer index computation + mixPosition := (epoch + s.BeaconConfig().EpochsPerHistoricalVector - s.BeaconConfig().MinSeedLookahead - 1) % + s.BeaconConfig().EpochsPerHistoricalVector + // Input for the seed hash. + mix := s.GetRandaoMix(int(mixPosition)) + input := shuffling.GetSeed(s.BeaconConfig(), mix, epoch, s.BeaconConfig().DomainBeaconProposer) + slotByteArray := make([]byte, 8) + binary.LittleEndian.PutUint64(slotByteArray, slot) + + // Add slot to the end of the input. + inputWithSlot := append(input[:], slotByteArray...) + hash := sha256.New() + + // Calculate the hash. + hash.Write(inputWithSlot) + seed := hash.Sum(nil) + + indices := s.GetActiveValidatorsIndices(epoch) + + // Write the seed to an array. + seedArray := [32]byte{} + copy(seedArray[:], seed) + wg.Add(1) + + // Do it in parallel + go func(i, slot uint64, indicies []uint64, seedArray [32]byte) { + defer wg.Done() + var err error + proposerIndex, err = shuffling.ComputeProposerIndex(s.BeaconState, indices, seedArray) + if err != nil { + panic(err) + } + binary.BigEndian.PutUint32(list[i*4:(i+1)*4], uint32(proposerIndex)) + }(slot-s.Slot(), slot, indices, seedArray) + } + wg.Wait() + return list +} + +func (s *Antiquary) collectGenesisState(ctx context.Context, compressor *zstd.Encoder, state *state.CachingBeaconState, slashings, inactivities, proposersCollector, minimalBeaconStateCollector, stateEvents *etl.Collector, changedValidators map[uint64]struct{}) error { + var err error + slot := state.Slot() + epoch := slot / s.cfg.SlotsPerEpoch + // Setup state events handlers + if err := proposersCollector.Collect(base_encoding.Encode64ToBytes4(epoch), getProposerDutiesValue(s.currentState)); err != nil { + return err + } + + events := state_accessors.NewStateEvents() + + state.ForEachValidator(func(v solid.Validator, index, total int) bool { + changedValidators[uint64(index)] = struct{}{} + if err = s.validatorsTable.AddValidator(v, uint64(index), 0); err != nil { + return false + } + events.AddValidator(uint64(index), v) + return true + }) + if err != nil { + return err + } + roundedSlotToDump := slot - (slot % clparams.SlotsPerDump) + if err := s.antiquateField(ctx, roundedSlotToDump, s.currentState.RawBalances(), compressor, "balances"); err != nil { + return err + } + if err := s.antiquateEffectiveBalances(ctx, roundedSlotToDump, s.currentState.RawValidatorSet(), compressor); err != nil { + return err + } + var commonBuffer bytes.Buffer + if err := s.antiquateFullUint64List(slashings, roundedSlotToDump, s.currentState.RawSlashings(), &commonBuffer, compressor); err != nil { + return err + } + + if state.Version() >= clparams.AltairVersion { + // dump inactivity scores + if err := s.antiquateFullUint64List(inactivities, slot, state.RawInactivityScores(), &commonBuffer, compressor); err != nil { + return err + } + } + + var b bytes.Buffer + if err := s.storeMinimalState(&b, state, minimalBeaconStateCollector); err != nil { + return err + } + + return stateEvents.Collect(base_encoding.Encode64ToBytes4(slot), events.CopyBytes()) +} + +func (s *Antiquary) storeMinimalState(buffer *bytes.Buffer, st *state.CachingBeaconState, collector *etl.Collector) error { + buffer.Reset() + minimalBeaconState := state_accessors.MinimalBeaconStateFromBeaconState(st.BeaconState) + + if err := minimalBeaconState.WriteTo(buffer); err != nil { + return err + } + return collector.Collect(base_encoding.Encode64ToBytes4(st.Slot()), buffer.Bytes()) +} + +func (s *Antiquary) dumpPayload(k []byte, v []byte, c *etl.Collector, b *bytes.Buffer, compressor *zstd.Encoder) error { + if compressor == nil { + return c.Collect(k, v) + } + b.Reset() + compressor.Reset(b) + + if _, err := compressor.Write(v); err != nil { + return err + } + if err := compressor.Close(); err != nil { + return err + } + return c.Collect(k, common.Copy(b.Bytes())) +} + +// func (s *Antiquary) dumpFullBeaconState() { +// b, err := s.currentState.EncodeSSZ(nil) +// if err != nil { +// s.logger.Error("Failed to encode full beacon state", "err", err) +// return +// } +// // just dump it in a.txt like an idiot without afero +// if err := os.WriteFile("b.txt", b, 0644); err != nil { +// s.logger.Error("Failed to write full beacon state", "err", err) +// } + +// } + +func flattenRandaoMixes(hashes []libcommon.Hash) []byte { + out := make([]byte, len(hashes)*32) + for i, h := range hashes { + copy(out[i*32:(i+1)*32], h[:]) + } + return out +} + +// antiquateFullSlashings goes on mdbx as it is full of common repeated patter always and thus fits with 16KB pages. +func (s *Antiquary) antiquateFullUint64List(collector *etl.Collector, slot uint64, raw []byte, buffer *bytes.Buffer, compressor *zstd.Encoder) error { + buffer.Reset() + compressor.Reset(buffer) + if _, err := compressor.Write(raw); err != nil { + return err + } + if err := compressor.Close(); err != nil { + return err + } + return collector.Collect(base_encoding.Encode64ToBytes4(slot), common.Copy(buffer.Bytes())) +} + +func findNearestSlotBackwards(tx kv.Tx, cfg *clparams.BeaconChainConfig, slot uint64) (uint64, error) { + canonicalRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, slot) + if err != nil { + return 0, err + } + for (canonicalRoot == (common.Hash{}) && slot > 0) || slot%cfg.SlotsPerEpoch != 0 { + slot-- + canonicalRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, slot) + if err != nil { + return 0, err + } + } + return slot, nil +} diff --git a/cl/antiquary/state_antiquary_test.go b/cl/antiquary/state_antiquary_test.go new file mode 100644 index 00000000000..52805c12fe2 --- /dev/null +++ b/cl/antiquary/state_antiquary_test.go @@ -0,0 +1,50 @@ +package antiquary + +import ( + "context" + _ "embed" + "fmt" + "testing" + + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon/cl/antiquary/tests" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + state_accessors "github.com/ledgerwatch/erigon/cl/persistence/state" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/log/v3" + "github.com/spf13/afero" + "github.com/stretchr/testify/require" +) + +func runTest(t *testing.T, blocks []*cltypes.SignedBeaconBlock, preState, postState *state.CachingBeaconState) { + db := memdb.NewTestDB(t) + reader := tests.LoadChain(blocks, db) + + ctx := context.Background() + vt := state_accessors.NewStaticValidatorTable() + f := afero.NewMemMapFs() + a := NewAntiquary(ctx, preState, vt, &clparams.MainnetBeaconConfig, datadir.New("/tmp"), nil, db, nil, reader, nil, log.New(), true, f) + require.NoError(t, a.IncrementBeaconState(ctx, blocks[len(blocks)-1].Block.Slot+33)) + // TODO: add more meaning here, like checking db values, will do so once i see some bugs +} + +func TestStateAntiquaryCapella(t *testing.T) { + t.Skip() + blocks, preState, postState := tests.GetCapellaRandom() + runTest(t, blocks, preState, postState) +} + +func TestStateAntiquaryBellatrix(t *testing.T) { + t.Skip() + blocks, preState, postState := tests.GetBellatrixRandom() + fmt.Println(len(blocks)) + runTest(t, blocks, preState, postState) +} + +func TestStateAntiquaryPhase0(t *testing.T) { + t.Skip() + blocks, preState, postState := tests.GetPhase0Random() + runTest(t, blocks, preState, postState) +} diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_0.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_0.ssz_snappy new file mode 100644 index 00000000000..ddb86265417 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_0.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_1.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_1.ssz_snappy new file mode 100644 index 00000000000..338d0aa9f5c Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_1.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_10.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_10.ssz_snappy new file mode 100644 index 00000000000..f15263647c4 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_10.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_11.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_11.ssz_snappy new file mode 100644 index 00000000000..2480b5d7ed3 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_11.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_12.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_12.ssz_snappy new file mode 100644 index 00000000000..0ff0fabc2ad Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_12.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_13.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_13.ssz_snappy new file mode 100644 index 00000000000..802619428d7 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_13.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_14.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_14.ssz_snappy new file mode 100644 index 00000000000..e7f70750845 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_14.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_15.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_15.ssz_snappy new file mode 100644 index 00000000000..b9d5ef35308 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_15.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_16.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_16.ssz_snappy new file mode 100644 index 00000000000..29d509c9a61 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_16.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_17.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_17.ssz_snappy new file mode 100644 index 00000000000..3f976bd89e9 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_17.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_18.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_18.ssz_snappy new file mode 100644 index 00000000000..39f66b4d87f Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_18.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_19.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_19.ssz_snappy new file mode 100644 index 00000000000..5ee1b7ae12b Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_19.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_2.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_2.ssz_snappy new file mode 100644 index 00000000000..e5d9c477572 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_2.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_20.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_20.ssz_snappy new file mode 100644 index 00000000000..09979630358 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_20.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_21.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_21.ssz_snappy new file mode 100644 index 00000000000..b611fe260ee Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_21.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_22.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_22.ssz_snappy new file mode 100644 index 00000000000..7f97dafd851 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_22.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_23.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_23.ssz_snappy new file mode 100644 index 00000000000..74f348df968 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_23.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_24.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_24.ssz_snappy new file mode 100644 index 00000000000..c0a4e649b1c Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_24.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_25.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_25.ssz_snappy new file mode 100644 index 00000000000..83ec1717069 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_25.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_26.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_26.ssz_snappy new file mode 100644 index 00000000000..4299bb3cd17 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_26.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_27.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_27.ssz_snappy new file mode 100644 index 00000000000..6635bb8ae6d Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_27.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_28.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_28.ssz_snappy new file mode 100644 index 00000000000..5b31157fd7b Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_28.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_29.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_29.ssz_snappy new file mode 100644 index 00000000000..b9cb2b91feb Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_29.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_3.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_3.ssz_snappy new file mode 100644 index 00000000000..93448ab0b95 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_3.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_30.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_30.ssz_snappy new file mode 100644 index 00000000000..ef1c4a4f625 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_30.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_31.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_31.ssz_snappy new file mode 100644 index 00000000000..aaf877bb3ec Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_31.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_32.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_32.ssz_snappy new file mode 100644 index 00000000000..ee19e4ef320 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_32.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_33.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_33.ssz_snappy new file mode 100644 index 00000000000..cb6b0514d2f Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_33.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_34.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_34.ssz_snappy new file mode 100644 index 00000000000..9f7d82de01f Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_34.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_35.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_35.ssz_snappy new file mode 100644 index 00000000000..942d790bcab Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_35.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_36.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_36.ssz_snappy new file mode 100644 index 00000000000..fe7bfd23487 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_36.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_37.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_37.ssz_snappy new file mode 100644 index 00000000000..3de6efbf78e Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_37.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_38.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_38.ssz_snappy new file mode 100644 index 00000000000..b79724bba01 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_38.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_39.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_39.ssz_snappy new file mode 100644 index 00000000000..9cbebe9fef2 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_39.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_4.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_4.ssz_snappy new file mode 100644 index 00000000000..ff1c6ebb6a9 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_4.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_40.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_40.ssz_snappy new file mode 100644 index 00000000000..7a63b458fa0 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_40.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_41.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_41.ssz_snappy new file mode 100644 index 00000000000..77fc5a1f5b9 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_41.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_42.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_42.ssz_snappy new file mode 100644 index 00000000000..7231136bb3b Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_42.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_43.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_43.ssz_snappy new file mode 100644 index 00000000000..3e8eb3d2aea Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_43.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_44.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_44.ssz_snappy new file mode 100644 index 00000000000..fb6af616f2e Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_44.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_45.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_45.ssz_snappy new file mode 100644 index 00000000000..fe544a77ae1 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_45.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_46.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_46.ssz_snappy new file mode 100644 index 00000000000..9455c0c00bc Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_46.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_47.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_47.ssz_snappy new file mode 100644 index 00000000000..998b1cdd4ab Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_47.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_48.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_48.ssz_snappy new file mode 100644 index 00000000000..95dc1add11a Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_48.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_49.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_49.ssz_snappy new file mode 100644 index 00000000000..b1b9f4a5320 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_49.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_5.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_5.ssz_snappy new file mode 100644 index 00000000000..70322b97f8f Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_5.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_50.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_50.ssz_snappy new file mode 100644 index 00000000000..d1878140277 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_50.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_51.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_51.ssz_snappy new file mode 100644 index 00000000000..bb247b4edcc Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_51.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_52.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_52.ssz_snappy new file mode 100644 index 00000000000..4591a85f7ca Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_52.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_53.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_53.ssz_snappy new file mode 100644 index 00000000000..16ae7cf07e6 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_53.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_54.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_54.ssz_snappy new file mode 100644 index 00000000000..ce039121c6d Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_54.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_55.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_55.ssz_snappy new file mode 100644 index 00000000000..cfd569604fb Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_55.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_56.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_56.ssz_snappy new file mode 100644 index 00000000000..c3ff7830aae Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_56.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_57.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_57.ssz_snappy new file mode 100644 index 00000000000..a96e3bc83d5 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_57.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_58.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_58.ssz_snappy new file mode 100644 index 00000000000..e377414e3f8 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_58.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_59.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_59.ssz_snappy new file mode 100644 index 00000000000..30eb999215f Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_59.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_6.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_6.ssz_snappy new file mode 100644 index 00000000000..443eb6f6852 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_6.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_60.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_60.ssz_snappy new file mode 100644 index 00000000000..c5abd4e7052 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_60.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_61.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_61.ssz_snappy new file mode 100644 index 00000000000..15f0c0eba5e Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_61.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_62.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_62.ssz_snappy new file mode 100644 index 00000000000..6329d0b0b7f Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_62.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_63.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_63.ssz_snappy new file mode 100644 index 00000000000..9a788865bc8 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_63.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_64.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_64.ssz_snappy new file mode 100644 index 00000000000..6211aef59c9 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_64.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_65.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_65.ssz_snappy new file mode 100644 index 00000000000..9f9fe354302 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_65.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_66.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_66.ssz_snappy new file mode 100644 index 00000000000..2d8d6410aa1 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_66.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_67.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_67.ssz_snappy new file mode 100644 index 00000000000..a7d59ebd37d Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_67.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_68.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_68.ssz_snappy new file mode 100644 index 00000000000..ba24c242ba0 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_68.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_69.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_69.ssz_snappy new file mode 100644 index 00000000000..d0ee1bd34d3 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_69.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_7.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_7.ssz_snappy new file mode 100644 index 00000000000..d0270aab04d Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_7.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_70.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_70.ssz_snappy new file mode 100644 index 00000000000..589aaa2bbe3 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_70.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_71.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_71.ssz_snappy new file mode 100644 index 00000000000..0c0c3dac0c3 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_71.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_72.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_72.ssz_snappy new file mode 100644 index 00000000000..31600d4849b Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_72.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_73.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_73.ssz_snappy new file mode 100644 index 00000000000..5e2b0eea6af Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_73.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_74.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_74.ssz_snappy new file mode 100644 index 00000000000..08404e98615 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_74.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_75.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_75.ssz_snappy new file mode 100644 index 00000000000..31260532e91 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_75.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_76.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_76.ssz_snappy new file mode 100644 index 00000000000..6f8e00d1a53 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_76.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_77.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_77.ssz_snappy new file mode 100644 index 00000000000..cc9c4c6f043 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_77.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_78.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_78.ssz_snappy new file mode 100644 index 00000000000..ab1a71ce711 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_78.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_79.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_79.ssz_snappy new file mode 100644 index 00000000000..5c0aa21445d Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_79.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_8.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_8.ssz_snappy new file mode 100644 index 00000000000..13fa263a79f Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_8.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_80.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_80.ssz_snappy new file mode 100644 index 00000000000..12f4c18084c Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_80.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_81.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_81.ssz_snappy new file mode 100644 index 00000000000..0625f98e73c Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_81.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_82.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_82.ssz_snappy new file mode 100644 index 00000000000..a73e8ba3abb Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_82.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_83.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_83.ssz_snappy new file mode 100644 index 00000000000..c85e4aa1598 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_83.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_84.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_84.ssz_snappy new file mode 100644 index 00000000000..a476b0929b6 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_84.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_85.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_85.ssz_snappy new file mode 100644 index 00000000000..f097123ef54 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_85.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_86.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_86.ssz_snappy new file mode 100644 index 00000000000..7b3eddf3f8c Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_86.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_87.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_87.ssz_snappy new file mode 100644 index 00000000000..638bafe5d61 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_87.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_88.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_88.ssz_snappy new file mode 100644 index 00000000000..ef553a34db2 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_88.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_89.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_89.ssz_snappy new file mode 100644 index 00000000000..1591667ac26 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_89.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_9.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_9.ssz_snappy new file mode 100644 index 00000000000..b4c3dcfd693 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_9.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_90.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_90.ssz_snappy new file mode 100644 index 00000000000..373746aa808 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_90.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_91.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_91.ssz_snappy new file mode 100644 index 00000000000..fc01404a9c6 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_91.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_92.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_92.ssz_snappy new file mode 100644 index 00000000000..cd851715494 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_92.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_93.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_93.ssz_snappy new file mode 100644 index 00000000000..636ade4791f Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_93.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_94.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_94.ssz_snappy new file mode 100644 index 00000000000..b07de428a13 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_94.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/blocks_95.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/blocks_95.ssz_snappy new file mode 100644 index 00000000000..7cbf6df9079 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/blocks_95.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/meta.yaml b/cl/antiquary/tests/test_data/bellatrix/meta.yaml new file mode 100644 index 00000000000..46caff2710c --- /dev/null +++ b/cl/antiquary/tests/test_data/bellatrix/meta.yaml @@ -0,0 +1 @@ +{blocks_count: 96} diff --git a/cl/antiquary/tests/test_data/bellatrix/post.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/post.ssz_snappy new file mode 100644 index 00000000000..b3bc26c91c2 Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/post.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/bellatrix/pre.ssz_snappy b/cl/antiquary/tests/test_data/bellatrix/pre.ssz_snappy new file mode 100644 index 00000000000..ee9a847b53f Binary files /dev/null and b/cl/antiquary/tests/test_data/bellatrix/pre.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/capella/blocks_0.ssz_snappy b/cl/antiquary/tests/test_data/capella/blocks_0.ssz_snappy new file mode 100644 index 00000000000..15640e26fa4 Binary files /dev/null and b/cl/antiquary/tests/test_data/capella/blocks_0.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/capella/blocks_1.ssz_snappy b/cl/antiquary/tests/test_data/capella/blocks_1.ssz_snappy new file mode 100644 index 00000000000..8d3683ef56a Binary files /dev/null and b/cl/antiquary/tests/test_data/capella/blocks_1.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/capella/meta.yaml b/cl/antiquary/tests/test_data/capella/meta.yaml new file mode 100644 index 00000000000..330980a92b8 --- /dev/null +++ b/cl/antiquary/tests/test_data/capella/meta.yaml @@ -0,0 +1 @@ +{blocks_count: 2, bls_setting: 1} diff --git a/cl/antiquary/tests/test_data/capella/post.ssz_snappy b/cl/antiquary/tests/test_data/capella/post.ssz_snappy new file mode 100644 index 00000000000..c51c8d06f28 Binary files /dev/null and b/cl/antiquary/tests/test_data/capella/post.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/capella/pre.ssz_snappy b/cl/antiquary/tests/test_data/capella/pre.ssz_snappy new file mode 100644 index 00000000000..04b981bd0d8 Binary files /dev/null and b/cl/antiquary/tests/test_data/capella/pre.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/phase0/blocks_0.ssz_snappy b/cl/antiquary/tests/test_data/phase0/blocks_0.ssz_snappy new file mode 100644 index 00000000000..716790ea589 Binary files /dev/null and b/cl/antiquary/tests/test_data/phase0/blocks_0.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/phase0/blocks_1.ssz_snappy b/cl/antiquary/tests/test_data/phase0/blocks_1.ssz_snappy new file mode 100644 index 00000000000..f846f036879 Binary files /dev/null and b/cl/antiquary/tests/test_data/phase0/blocks_1.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/phase0/meta.yaml b/cl/antiquary/tests/test_data/phase0/meta.yaml new file mode 100644 index 00000000000..330980a92b8 --- /dev/null +++ b/cl/antiquary/tests/test_data/phase0/meta.yaml @@ -0,0 +1 @@ +{blocks_count: 2, bls_setting: 1} diff --git a/cl/antiquary/tests/test_data/phase0/post.ssz_snappy b/cl/antiquary/tests/test_data/phase0/post.ssz_snappy new file mode 100644 index 00000000000..45758ffae1d Binary files /dev/null and b/cl/antiquary/tests/test_data/phase0/post.ssz_snappy differ diff --git a/cl/antiquary/tests/test_data/phase0/pre.ssz_snappy b/cl/antiquary/tests/test_data/phase0/pre.ssz_snappy new file mode 100644 index 00000000000..ceb98ad7b34 Binary files /dev/null and b/cl/antiquary/tests/test_data/phase0/pre.ssz_snappy differ diff --git a/cl/antiquary/tests/tests.go b/cl/antiquary/tests/tests.go new file mode 100644 index 00000000000..1596e16d05b --- /dev/null +++ b/cl/antiquary/tests/tests.go @@ -0,0 +1,174 @@ +package tests + +import ( + "context" + "embed" + _ "embed" + "strconv" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/utils" +) + +//go:embed test_data/capella/blocks_0.ssz_snappy +var capella_blocks_0_ssz_snappy []byte + +//go:embed test_data/capella/blocks_1.ssz_snappy +var capella_blocks_1_ssz_snappy []byte + +//go:embed test_data/capella/pre.ssz_snappy +var capella_pre_state_ssz_snappy []byte + +//go:embed test_data/capella/post.ssz_snappy +var capella_post_state_ssz_snappy []byte + +//go:embed test_data/phase0/blocks_0.ssz_snappy +var phase0_blocks_0_ssz_snappy []byte + +//go:embed test_data/phase0/blocks_1.ssz_snappy +var phase0_blocks_1_ssz_snappy []byte + +//go:embed test_data/phase0/pre.ssz_snappy +var phase0_pre_state_ssz_snappy []byte + +//go:embed test_data/phase0/post.ssz_snappy +var phase0_post_state_ssz_snappy []byte + +// bellatrix is long + +//go:embed test_data/bellatrix +var bellatrixFS embed.FS + +type MockBlockReader struct { + u map[uint64]*cltypes.SignedBeaconBlock +} + +func NewMockBlockReader() *MockBlockReader { + return &MockBlockReader{u: make(map[uint64]*cltypes.SignedBeaconBlock)} +} + +func (m *MockBlockReader) ReadBlockBySlot(ctx context.Context, tx kv.Tx, slot uint64) (*cltypes.SignedBeaconBlock, error) { + return m.u[slot], nil +} + +func (m *MockBlockReader) ReadBlockByRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlock, error) { + panic("implement me") +} +func (m *MockBlockReader) ReadHeaderByRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, error) { + panic("implement me") +} + +func (m *MockBlockReader) FrozenSlots() uint64 { + panic("implement me") +} + +func LoadChain(blocks []*cltypes.SignedBeaconBlock, db kv.RwDB) *MockBlockReader { + tx, err := db.BeginRw(context.Background()) + if err != nil { + panic(err) + } + defer tx.Rollback() + + m := NewMockBlockReader() + for _, block := range blocks { + m.u[block.Block.Slot] = block + h := block.SignedBeaconBlockHeader() + if err := beacon_indicies.WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, h, true); err != nil { + panic(err) + } + if err := beacon_indicies.WriteHighestFinalized(tx, block.Block.Slot+64); err != nil { + panic(err) + } + } + if err := tx.Commit(); err != nil { + panic(err) + } + return m +} + +func GetCapellaRandom() ([]*cltypes.SignedBeaconBlock, *state.CachingBeaconState, *state.CachingBeaconState) { + block1 := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + block2 := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + + // Lets do te + if err := utils.DecodeSSZSnappy(block1, capella_blocks_0_ssz_snappy, int(clparams.CapellaVersion)); err != nil { + panic(err) + } + if err := utils.DecodeSSZSnappy(block2, capella_blocks_1_ssz_snappy, int(clparams.CapellaVersion)); err != nil { + panic(err) + } + + preState := state.New(&clparams.MainnetBeaconConfig) + if err := utils.DecodeSSZSnappy(preState, capella_pre_state_ssz_snappy, int(clparams.CapellaVersion)); err != nil { + panic(err) + + } + postState := state.New(&clparams.MainnetBeaconConfig) + if err := utils.DecodeSSZSnappy(postState, capella_post_state_ssz_snappy, int(clparams.CapellaVersion)); err != nil { + panic(err) + } + return []*cltypes.SignedBeaconBlock{block1, block2}, preState, postState +} + +func GetPhase0Random() ([]*cltypes.SignedBeaconBlock, *state.CachingBeaconState, *state.CachingBeaconState) { + block1 := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + block2 := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + + // Lets do te + if err := utils.DecodeSSZSnappy(block1, phase0_blocks_0_ssz_snappy, int(clparams.Phase0Version)); err != nil { + panic(err) + } + if err := utils.DecodeSSZSnappy(block2, phase0_blocks_1_ssz_snappy, int(clparams.Phase0Version)); err != nil { + panic(err) + } + + preState := state.New(&clparams.MainnetBeaconConfig) + if err := utils.DecodeSSZSnappy(preState, phase0_pre_state_ssz_snappy, int(clparams.Phase0Version)); err != nil { + panic(err) + } + postState := state.New(&clparams.MainnetBeaconConfig) + if err := utils.DecodeSSZSnappy(postState, phase0_post_state_ssz_snappy, int(clparams.Phase0Version)); err != nil { + panic(err) + } + return []*cltypes.SignedBeaconBlock{block1, block2}, preState, postState +} + +func GetBellatrixRandom() ([]*cltypes.SignedBeaconBlock, *state.CachingBeaconState, *state.CachingBeaconState) { + ret := make([]*cltypes.SignedBeaconBlock, 0, 96) + // format for blocks is blocks_{i}.ssz_snappy where i is the index of the block, starting from 0 to 95 included. + for i := 0; i < 96; i++ { + block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + // Lets do te + b, err := bellatrixFS.ReadFile("test_data/bellatrix/blocks_" + strconv.FormatInt(int64(i), 10) + ".ssz_snappy") + if err != nil { + panic(err) + } + if err := utils.DecodeSSZSnappy(block, b, int(clparams.BellatrixVersion)); err != nil { + panic(err) + } + ret = append(ret, block) + } + preState := state.New(&clparams.MainnetBeaconConfig) + b, err := bellatrixFS.ReadFile("test_data/bellatrix/pre.ssz_snappy") + if err != nil { + panic(err) + } + if err := utils.DecodeSSZSnappy(preState, b, int(clparams.BellatrixVersion)); err != nil { + panic(err) + } + postState := state.New(&clparams.MainnetBeaconConfig) + b, err = bellatrixFS.ReadFile("test_data/bellatrix/post.ssz_snappy") + if err != nil { + panic(err) + } + if err := utils.DecodeSSZSnappy(postState, b, int(clparams.BellatrixVersion)); err != nil { + panic(err) + } + return ret, preState, postState + +} diff --git a/cl/beacon/beacon_router_configuration/cfg.go b/cl/beacon/beacon_router_configuration/cfg.go new file mode 100644 index 00000000000..1a3307b0a1f --- /dev/null +++ b/cl/beacon/beacon_router_configuration/cfg.go @@ -0,0 +1,14 @@ +package beacon_router_configuration + +import "time" + +// TODO(enriavil1): Make this configurable via flags +type RouterConfiguration struct { + Active bool + Protocol string + Address string + + ReadTimeTimeout time.Duration + IdleTimeout time.Duration + WriteTimeout time.Duration +} diff --git a/cl/beacon/beaconhttp/api.go b/cl/beacon/beaconhttp/api.go new file mode 100644 index 00000000000..b0c3d94c385 --- /dev/null +++ b/cl/beacon/beaconhttp/api.go @@ -0,0 +1,105 @@ +package beaconhttp + +import ( + "encoding/json" + "errors" + "fmt" + "net/http" + "reflect" + + "github.com/ledgerwatch/erigon-lib/types/ssz" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" + "github.com/ledgerwatch/log/v3" +) + +var _ error = EndpointError{} +var _ error = (*EndpointError)(nil) + +type EndpointError struct { + Code int `json:"code"` + Message string `json:"message"` +} + +func WrapEndpointError(err error) *EndpointError { + e := &EndpointError{} + if errors.As(err, e) { + return e + } + if errors.Is(err, fork_graph.ErrStateNotFound) { + return NewEndpointError(http.StatusNotFound, "Could not find beacon state") + } + return NewEndpointError(http.StatusInternalServerError, err.Error()) +} + +func NewEndpointError(code int, message string) *EndpointError { + return &EndpointError{ + Code: code, + Message: message, + } +} + +func (e EndpointError) Error() string { + return fmt.Sprintf("Code %d: %s", e.Code, e.Message) +} + +func (e *EndpointError) WriteTo(w http.ResponseWriter) { + w.WriteHeader(e.Code) + encErr := json.NewEncoder(w).Encode(e) + if encErr != nil { + log.Error("beaconapi failed to write json error", "err", encErr) + } +} + +type EndpointHandler[T any] interface { + Handle(r *http.Request) (T, error) +} + +type EndpointHandlerFunc[T any] func(r *http.Request) (T, error) + +func (e EndpointHandlerFunc[T]) Handle(r *http.Request) (T, error) { + return e(r) +} + +func HandleEndpointFunc[T any](h EndpointHandlerFunc[T]) http.HandlerFunc { + return HandleEndpoint[T](h) +} + +func HandleEndpoint[T any](h EndpointHandler[T]) http.HandlerFunc { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + ans, err := h.Handle(r) + if err != nil { + log.Error("beacon api request error", "err", err) + endpointError := WrapEndpointError(err) + endpointError.WriteTo(w) + return + } + // TODO: ssz handler + // TODO: potentially add a context option to buffer these + contentType := r.Header.Get("Accept") + switch contentType { + case "application/octet-stream": + sszMarshaler, ok := any(ans).(ssz.Marshaler) + if !ok { + NewEndpointError(http.StatusBadRequest, "This endpoint does not support SSZ response").WriteTo(w) + return + } + // TODO: we should probably figure out some way to stream this in the future :) + encoded, err := sszMarshaler.EncodeSSZ(nil) + if err != nil { + WrapEndpointError(err).WriteTo(w) + return + } + w.Write(encoded) + case "application/json", "": + w.Header().Add("content-type", "application/json") + err := json.NewEncoder(w).Encode(ans) + if err != nil { + // this error is fatal, log to console + log.Error("beaconapi failed to encode json", "type", reflect.TypeOf(ans), "err", err) + } + default: + http.Error(w, "content type must be application/json or application/octet-stream", http.StatusBadRequest) + + } + }) +} diff --git a/cl/beacon/handler/blocks.go b/cl/beacon/handler/blocks.go new file mode 100644 index 00000000000..cabe88addca --- /dev/null +++ b/cl/beacon/handler/blocks.go @@ -0,0 +1,158 @@ +package handler + +import ( + "context" + "fmt" + "net/http" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" +) + +type headerResponse struct { + Root libcommon.Hash `json:"root"` + Canonical bool `json:"canonical"` + Header *cltypes.SignedBeaconBlockHeader `json:"header"` +} + +type getHeadersRequest struct { + Slot *uint64 `json:"slot,omitempty"` + ParentRoot *libcommon.Hash `json:"root,omitempty"` +} + +func (a *ApiHandler) rootFromBlockId(ctx context.Context, tx kv.Tx, blockId *segmentID) (root libcommon.Hash, err error) { + switch { + case blockId.head(): + root, _, err = a.forkchoiceStore.GetHead() + if err != nil { + return libcommon.Hash{}, err + } + case blockId.finalized(): + root = a.forkchoiceStore.FinalizedCheckpoint().BlockRoot() + case blockId.justified(): + root = a.forkchoiceStore.JustifiedCheckpoint().BlockRoot() + case blockId.genesis(): + root, err = beacon_indicies.ReadCanonicalBlockRoot(tx, 0) + if err != nil { + return libcommon.Hash{}, err + } + if root == (libcommon.Hash{}) { + return libcommon.Hash{}, beaconhttp.NewEndpointError(http.StatusNotFound, "genesis block not found") + } + case blockId.getSlot() != nil: + root, err = beacon_indicies.ReadCanonicalBlockRoot(tx, *blockId.getSlot()) + if err != nil { + return libcommon.Hash{}, err + } + if root == (libcommon.Hash{}) { + return libcommon.Hash{}, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("block not found %d", *blockId.getSlot())) + } + case blockId.getRoot() != nil: + // first check if it exists + root = *blockId.getRoot() + default: + return libcommon.Hash{}, beaconhttp.NewEndpointError(http.StatusInternalServerError, "cannot parse block id") + } + return +} + +func (a *ApiHandler) getBlock(r *http.Request) (*beaconResponse, error) { + ctx := r.Context() + tx, err := a.indiciesDB.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + + blockId, err := blockIdFromRequest(r) + if err != nil { + return nil, err + } + root, err := a.rootFromBlockId(ctx, tx, blockId) + if err != nil { + return nil, err + } + + blk, err := a.blockReader.ReadBlockByRoot(ctx, tx, root) + if err != nil { + return nil, err + } + if blk == nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("block not found %x", root)) + } + // Check if the block is canonical + var canonicalRoot libcommon.Hash + canonicalRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, blk.Block.Slot) + if err != nil { + return nil, beaconhttp.WrapEndpointError(err) + } + return newBeaconResponse(blk). + withFinalized(root == canonicalRoot && blk.Block.Slot <= a.forkchoiceStore.FinalizedSlot()). + withVersion(blk.Version()), nil +} + +func (a *ApiHandler) getBlockAttestations(r *http.Request) (*beaconResponse, error) { + ctx := r.Context() + tx, err := a.indiciesDB.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + blockId, err := blockIdFromRequest(r) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + root, err := a.rootFromBlockId(ctx, tx, blockId) + if err != nil { + return nil, err + } + blk, err := a.blockReader.ReadBlockByRoot(ctx, tx, root) + if err != nil { + return nil, err + } + if blk == nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("block not found %x", root)) + } + // Check if the block is canonical + canonicalRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, blk.Block.Slot) + if err != nil { + return nil, err + } + return newBeaconResponse(blk.Block.Body.Attestations).withFinalized(root == canonicalRoot && blk.Block.Slot <= a.forkchoiceStore.FinalizedSlot()). + withVersion(blk.Version()), nil +} + +func (a *ApiHandler) getBlockRoot(r *http.Request) (*beaconResponse, error) { + ctx := r.Context() + tx, err := a.indiciesDB.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + blockId, err := blockIdFromRequest(r) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + root, err := a.rootFromBlockId(ctx, tx, blockId) + if err != nil { + return nil, err + } + // check if the root exist + slot, err := beacon_indicies.ReadBlockSlotByBlockRoot(tx, root) + if err != nil { + return nil, err + } + if slot == nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("block not found %x", root)) + } + // Check if the block is canonical + var canonicalRoot libcommon.Hash + canonicalRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, *slot) + if err != nil { + return nil, err + } + return newBeaconResponse(struct{ Root libcommon.Hash }{Root: root}).withFinalized(canonicalRoot == root && *slot <= a.forkchoiceStore.FinalizedSlot()), nil +} diff --git a/cl/beacon/handler/config.go b/cl/beacon/handler/config.go new file mode 100644 index 00000000000..b0e8972c2d8 --- /dev/null +++ b/cl/beacon/handler/config.go @@ -0,0 +1,47 @@ +package handler + +import ( + "bytes" + "net/http" + "sort" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes" +) + +func (a *ApiHandler) getSpec(r *http.Request) (*beaconResponse, error) { + return newBeaconResponse(a.beaconChainCfg), nil +} + +func (a *ApiHandler) getDepositContract(r *http.Request) (*beaconResponse, error) { + + return newBeaconResponse(struct { + ChainId uint64 `json:"chain_id"` + DepositContract string `json:"address"` + }{ChainId: a.beaconChainCfg.DepositChainID, DepositContract: a.beaconChainCfg.DepositContractAddress}), nil + +} + +func (a *ApiHandler) getForkSchedule(r *http.Request) (*beaconResponse, error) { + response := []cltypes.Fork{} + // create first response (unordered and incomplete) + for currentVersion, epoch := range a.beaconChainCfg.ForkVersionSchedule { + response = append(response, cltypes.Fork{ + CurrentVersion: currentVersion, + Epoch: epoch, + }) + } + // Sort the respnses by epoch + sort.Slice(response, func(i, j int) bool { + if response[i].Epoch == response[j].Epoch { + return bytes.Compare(response[i].CurrentVersion[:], response[j].CurrentVersion[:]) < 0 + } + return response[i].Epoch < response[j].Epoch + }) + var previousVersion libcommon.Bytes4 + for i := range response { + response[i].PreviousVersion = previousVersion + previousVersion = response[i].CurrentVersion + } + return newBeaconResponse(response), nil +} diff --git a/cl/beacon/handler/duties_proposer.go b/cl/beacon/handler/duties_proposer.go new file mode 100644 index 00000000000..609a8292c41 --- /dev/null +++ b/cl/beacon/handler/duties_proposer.go @@ -0,0 +1,94 @@ +package handler + +import ( + "crypto/sha256" + "encoding/binary" + "net/http" + "sync" + + "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" + shuffling2 "github.com/ledgerwatch/erigon/cl/phase1/core/state/shuffling" + + libcommon "github.com/ledgerwatch/erigon-lib/common" +) + +type proposerDuties struct { + Pubkey libcommon.Bytes48 `json:"pubkey"` + ValidatorIndex uint64 `json:"validator_index"` + Slot uint64 `json:"slot"` +} + +func (a *ApiHandler) getDutiesProposer(r *http.Request) (*beaconResponse, error) { + + epoch, err := epochFromRequest(r) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + + if epoch < a.forkchoiceStore.FinalizedCheckpoint().Epoch() { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, "invalid epoch") + } + + // We need to compute our duties + state, cancel := a.syncedData.HeadState() + defer cancel() + if state == nil { + return nil, beaconhttp.NewEndpointError(http.StatusInternalServerError, "beacon node is syncing") + + } + + expectedSlot := epoch * a.beaconChainCfg.SlotsPerEpoch + + duties := make([]proposerDuties, a.beaconChainCfg.SlotsPerEpoch) + wg := sync.WaitGroup{} + + for slot := expectedSlot; slot < expectedSlot+a.beaconChainCfg.SlotsPerEpoch; slot++ { + var proposerIndex uint64 + // Lets do proposer index computation + mixPosition := (epoch + a.beaconChainCfg.EpochsPerHistoricalVector - a.beaconChainCfg.MinSeedLookahead - 1) % + a.beaconChainCfg.EpochsPerHistoricalVector + // Input for the seed hash. + mix := state.GetRandaoMix(int(mixPosition)) + input := shuffling2.GetSeed(a.beaconChainCfg, mix, epoch, a.beaconChainCfg.DomainBeaconProposer) + slotByteArray := make([]byte, 8) + binary.LittleEndian.PutUint64(slotByteArray, slot) + + // Add slot to the end of the input. + inputWithSlot := append(input[:], slotByteArray...) + hash := sha256.New() + + // Calculate the hash. + hash.Write(inputWithSlot) + seed := hash.Sum(nil) + + indices := state.GetActiveValidatorsIndices(epoch) + + // Write the seed to an array. + seedArray := [32]byte{} + copy(seedArray[:], seed) + wg.Add(1) + + // Do it in parallel + go func(i, slot uint64, indicies []uint64, seedArray [32]byte) { + defer wg.Done() + proposerIndex, err = shuffling2.ComputeProposerIndex(state.BeaconState, indices, seedArray) + if err != nil { + panic(err) + } + var pk libcommon.Bytes48 + pk, err = state.ValidatorPublicKey(int(proposerIndex)) + if err != nil { + panic(err) + } + duties[i] = proposerDuties{ + Pubkey: pk, + ValidatorIndex: proposerIndex, + Slot: slot, + } + }(slot-expectedSlot, slot, indices, seedArray) + } + wg.Wait() + + return newBeaconResponse(duties).withFinalized(false).withVersion(a.beaconChainCfg.GetCurrentStateVersion(epoch)), nil + +} diff --git a/cl/beacon/handler/format.go b/cl/beacon/handler/format.go new file mode 100644 index 00000000000..f2ea28495cb --- /dev/null +++ b/cl/beacon/handler/format.go @@ -0,0 +1,262 @@ +package handler + +import ( + "fmt" + "net/http" + "regexp" + "strconv" + + "github.com/go-chi/chi/v5" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/types/ssz" + "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" + "github.com/ledgerwatch/erigon/cl/clparams" +) + +type apiError struct { + code int + err error +} + +type beaconResponse struct { + Data any `json:"data,omitempty"` + Finalized *bool `json:"finalized,omitempty"` + Version *clparams.StateVersion `json:"version,omitempty"` + ExecutionOptimistic *bool `json:"execution_optimistic,omitempty"` +} + +func (b *beaconResponse) EncodeSSZ(xs []byte) ([]byte, error) { + marshaler, ok := b.Data.(ssz.Marshaler) + if !ok { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, "This endpoint does not support SSZ response") + } + encoded, err := marshaler.EncodeSSZ(nil) + if err != nil { + return nil, err + } + return encoded, nil +} + +func (b *beaconResponse) EncodingSizeSSZ() int { + marshaler, ok := b.Data.(ssz.Marshaler) + if !ok { + return 9 + } + return marshaler.EncodingSizeSSZ() +} + +func newBeaconResponse(data any) *beaconResponse { + return &beaconResponse{ + Data: data, + } +} + +func (r *beaconResponse) withFinalized(finalized bool) (out *beaconResponse) { + out = new(beaconResponse) + *out = *r + out.Finalized = new(bool) + out.ExecutionOptimistic = new(bool) + out.Finalized = &finalized + return r +} + +func (r *beaconResponse) withVersion(version clparams.StateVersion) (out *beaconResponse) { + out = new(beaconResponse) + *out = *r + out.Version = new(clparams.StateVersion) + out.Version = &version + return r +} + +//// In case of it being a json we need to also expose finalization, version, etc... +//type beaconHandlerFn func(r *http.Request) *beaconResponse +// +//func beaconHandlerWrapper(fn beaconHandlerFn, supportSSZ bool) func(w http.ResponseWriter, r *http.Request) { +// return func(w http.ResponseWriter, r *http.Request) { +// accept := r.Header.Get("Accept") +// isSSZ := !strings.Contains(accept, "application/json") && strings.Contains(accept, "application/stream-octect") +// start := time.Now() +// defer func() { +// log.Debug("[Beacon API] finished", "method", r.Method, "path", r.URL.Path, "duration", time.Since(start)) +// }() +// +// resp := fn(r) +// if resp.internalError != nil { +// http.Error(w, resp.internalError.Error(), http.StatusInternalServerError) +// log.Debug("[Beacon API] failed", "method", r.Method, "err", resp.internalError.Error(), "ssz", isSSZ) +// return +// } +// +// if resp.apiError != nil { +// http.Error(w, resp.apiError.err.Error(), resp.apiError.code) +// log.Debug("[Beacon API] failed", "method", r.Method, "err", resp.apiError.err.Error(), "ssz", isSSZ) +// return +// } +// +// if isSSZ && supportSSZ { +// data := resp.Data +// // SSZ encoding +// encoded, err := data.(ssz.Marshaler).EncodeSSZ(nil) +// if err != nil { +// http.Error(w, err.Error(), http.StatusInternalServerError) +// log.Debug("[Beacon API] failed", "method", r.Method, "err", err, "accepted", accept) +// return +// } +// w.Header().Set("Content-Type", "application/octet-stream") +// w.Write(encoded) +// return +// } +// w.Header().Set("Content-Type", "application/json") +// if err := json.NewEncoder(w).Encode(resp); err != nil { +// log.Warn("[Beacon API] failed", "method", r.Method, "err", err, "ssz", isSSZ) +// } +// } +//} + +type chainTag int + +var ( + Head chainTag = 0 + Finalized chainTag = 1 + Justified chainTag = 2 + Genesis chainTag = 3 +) + +// Represent either state id or block id +type segmentID struct { + tag chainTag + slot *uint64 + root *libcommon.Hash +} + +func (c *segmentID) head() bool { + return c.tag == Head && c.slot == nil && c.root == nil +} + +func (c *segmentID) finalized() bool { + return c.tag == Finalized +} + +func (c *segmentID) justified() bool { + return c.tag == Justified +} + +func (c *segmentID) genesis() bool { + return c.tag == Genesis +} + +func (c *segmentID) getSlot() *uint64 { + return c.slot +} + +func (c *segmentID) getRoot() *libcommon.Hash { + return c.root +} + +func epochFromRequest(r *http.Request) (uint64, error) { + // Must only be a number + regex := regexp.MustCompile(`^\d+$`) + epoch := chi.URLParam(r, "epoch") + if !regex.MatchString(epoch) { + return 0, fmt.Errorf("invalid path variable: {epoch}") + } + epochMaybe, err := strconv.ParseUint(epoch, 10, 64) + if err != nil { + return 0, err + } + return epochMaybe, nil +} + +func blockIdFromRequest(r *http.Request) (*segmentID, error) { + regex := regexp.MustCompile(`^(?:0x[0-9a-fA-F]{64}|head|finalized|genesis|\d+)$`) + + blockId := chi.URLParam(r, "block_id") + if !regex.MatchString(blockId) { + return nil, fmt.Errorf("invalid path variable: {block_id}") + } + + if blockId == "head" { + return &segmentID{tag: Head}, nil + } + if blockId == "finalized" { + return &segmentID{tag: Finalized}, nil + } + if blockId == "genesis" { + return &segmentID{tag: Genesis}, nil + } + slotMaybe, err := strconv.ParseUint(blockId, 10, 64) + if err == nil { + return &segmentID{slot: &slotMaybe}, nil + } + root := libcommon.HexToHash(blockId) + return &segmentID{ + root: &root, + }, nil +} + +func stateIdFromRequest(r *http.Request) (*segmentID, error) { + regex := regexp.MustCompile(`^(?:0x[0-9a-fA-F]{64}|head|finalized|genesis|justified|\d+)$`) + + stateId := chi.URLParam(r, "state_id") + if !regex.MatchString(stateId) { + return nil, fmt.Errorf("invalid path variable: {block_id}") + } + + if stateId == "head" { + return &segmentID{tag: Head}, nil + } + if stateId == "finalized" { + return &segmentID{tag: Finalized}, nil + } + if stateId == "genesis" { + return &segmentID{tag: Genesis}, nil + } + if stateId == "justified" { + return &segmentID{tag: Justified}, nil + } + slotMaybe, err := strconv.ParseUint(stateId, 10, 64) + if err == nil { + return &segmentID{slot: &slotMaybe}, nil + } + root := libcommon.HexToHash(stateId) + return &segmentID{ + root: &root, + }, nil +} + +func hashFromQueryParams(r *http.Request, name string) (*libcommon.Hash, error) { + hashStr := r.URL.Query().Get(name) + if hashStr == "" { + return nil, nil + } + // check if hashstr is an hex string + if len(hashStr) != 2+2*32 { + return nil, fmt.Errorf("invalid hash length") + } + if hashStr[:2] != "0x" { + return nil, fmt.Errorf("invalid hash prefix") + } + notHex, err := regexp.MatchString("[^0-9A-Fa-f]", hashStr[2:]) + if err != nil { + return nil, err + } + if notHex { + return nil, fmt.Errorf("invalid hash characters") + } + + hash := libcommon.HexToHash(hashStr) + return &hash, nil +} + +// uint64FromQueryParams retrieves a number from the query params, in base 10. +func uint64FromQueryParams(r *http.Request, name string) (*uint64, error) { + str := r.URL.Query().Get(name) + if str == "" { + return nil, nil + } + num, err := strconv.ParseUint(str, 10, 64) + if err != nil { + return nil, err + } + return &num, nil +} diff --git a/cl/beacon/handler/genesis.go b/cl/beacon/handler/genesis.go index 0e4bf61deb2..05af01dd8b5 100644 --- a/cl/beacon/handler/genesis.go +++ b/cl/beacon/handler/genesis.go @@ -1,42 +1,33 @@ package handler import ( - "encoding/json" - "io" "net/http" "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/cl/beacon/types" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" "github.com/ledgerwatch/erigon/cl/fork" - "github.com/ledgerwatch/log/v3" ) -type genesisReponse struct { - GenesisTime uint64 `json:"genesis_time,omitempty"` - GenesisValidatorRoot common.Hash `json:"genesis_validator_root,omitempty"` - GenesisForkVersion types.Bytes4 `json:"genesis_fork_version,omitempty"` +type genesisResponse struct { + GenesisTime uint64 `json:"genesis_time,omitempty"` + GenesisValidatorRoot common.Hash `json:"genesis_validator_root,omitempty"` + GenesisForkVersion libcommon.Bytes4 `json:"genesis_fork_version,omitempty"` } -func (a *ApiHandler) getGenesis(w http.ResponseWriter, _ *http.Request) { +func (a *ApiHandler) getGenesis(r *http.Request) (*beaconResponse, error) { if a.genesisCfg == nil { - w.WriteHeader(http.StatusNotFound) - io.WriteString(w, "Genesis Config is missing") - return + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, "Genesis Config is missing") } digest, err := fork.ComputeForkDigest(a.beaconChainCfg, a.genesisCfg) if err != nil { - w.WriteHeader(http.StatusInternalServerError) - io.WriteString(w, "Failed to compute fork digest") - log.Error("[Beacon API] genesis handler failed", err) - return + return nil, err } - w.Header().Set("Content-Type", "Application/json") - w.WriteHeader(http.StatusAccepted) - json.NewEncoder(w).Encode(genesisReponse{ + return newBeaconResponse(&genesisResponse{ GenesisTime: a.genesisCfg.GenesisTime, GenesisValidatorRoot: a.genesisCfg.GenesisValidatorRoot, - GenesisForkVersion: types.Bytes4(digest), - }) + GenesisForkVersion: digest, + }), nil } diff --git a/cl/beacon/handler/handler.go b/cl/beacon/handler/handler.go index 4a4012b557a..b6703bb7b88 100644 --- a/cl/beacon/handler/handler.go +++ b/cl/beacon/handler/handler.go @@ -5,18 +5,31 @@ import ( "sync" "github.com/go-chi/chi/v5" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" + "github.com/ledgerwatch/erigon/cl/beacon/synced_data" "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/pool" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" ) type ApiHandler struct { - o sync.Once - mux chi.Router - genesisCfg *clparams.GenesisConfig - beaconChainCfg *clparams.BeaconChainConfig + o sync.Once + mux chi.Router + + blockReader freezeblocks.BeaconSnapshotReader + indiciesDB kv.RoDB + genesisCfg *clparams.GenesisConfig + beaconChainCfg *clparams.BeaconChainConfig + forkchoiceStore forkchoice.ForkChoiceStorage + operationsPool pool.OperationsPool + syncedData *synced_data.SyncedDataManager } -func NewApiHandler(genesisConfig *clparams.GenesisConfig, beaconChainConfig *clparams.BeaconChainConfig) *ApiHandler { - return &ApiHandler{o: sync.Once{}, genesisCfg: genesisConfig, beaconChainCfg: beaconChainConfig} +func NewApiHandler(genesisConfig *clparams.GenesisConfig, beaconChainConfig *clparams.BeaconChainConfig, source persistence.RawBeaconBlockChain, indiciesDB kv.RoDB, forkchoiceStore forkchoice.ForkChoiceStorage, operationsPool pool.OperationsPool, rcsn freezeblocks.BeaconSnapshotReader, syncedData *synced_data.SyncedDataManager) *ApiHandler { + return &ApiHandler{o: sync.Once{}, genesisCfg: genesisConfig, beaconChainCfg: beaconChainConfig, indiciesDB: indiciesDB, forkchoiceStore: forkchoiceStore, operationsPool: operationsPool, blockReader: rcsn, syncedData: syncedData} } func (a *ApiHandler) init() { @@ -26,52 +39,74 @@ func (a *ApiHandler) init() { // otterscn specific ones are commented as such r.Route("/eth", func(r chi.Router) { r.Route("/v1", func(r chi.Router) { - r.Get("/events", nil) + r.Get("/events", http.NotFound) + r.Route("/config", func(r chi.Router) { + r.Get("/spec", beaconhttp.HandleEndpointFunc(a.getSpec)) + r.Get("/deposit_contract", beaconhttp.HandleEndpointFunc(a.getDepositContract)) + r.Get("/fork_schedule", beaconhttp.HandleEndpointFunc(a.getForkSchedule)) + }) r.Route("/beacon", func(r chi.Router) { - r.Get("/headers/{tag}", nil) // otterscan - r.Get("/blocks/{slot}/root", nil) //otterscan - r.Get("/genesis", a.getGenesis) - r.Post("/binded_blocks", nil) - r.Post("/blocks", nil) + r.Route("/headers", func(r chi.Router) { + r.Get("/", beaconhttp.HandleEndpointFunc(a.getHeaders)) + r.Get("/{block_id}", beaconhttp.HandleEndpointFunc(a.getHeader)) + }) + r.Route("/blocks", func(r chi.Router) { + r.Post("/", http.NotFound) + r.Get("/{block_id}", beaconhttp.HandleEndpointFunc(a.getBlock)) + r.Get("/{block_id}/attestations", beaconhttp.HandleEndpointFunc(a.getBlockAttestations)) + r.Get("/{block_id}/root", beaconhttp.HandleEndpointFunc(a.getBlockRoot)) + }) + r.Get("/genesis", beaconhttp.HandleEndpointFunc(a.getGenesis)) + r.Post("/binded_blocks", http.NotFound) r.Route("/pool", func(r chi.Router) { - r.Post("/attestations", nil) - r.Post("/sync_committees", nil) + r.Post("/attestations", http.NotFound) + r.Get("/voluntary_exits", beaconhttp.HandleEndpointFunc(a.poolVoluntaryExits)) + r.Get("/attester_slashings", beaconhttp.HandleEndpointFunc(a.poolAttesterSlashings)) + r.Get("/proposer_slashings", beaconhttp.HandleEndpointFunc(a.poolProposerSlashings)) + r.Get("/bls_to_execution_changes", beaconhttp.HandleEndpointFunc(a.poolBlsToExecutionChanges)) + r.Get("/attestations", beaconhttp.HandleEndpointFunc(a.poolAttestations)) + r.Post("/sync_committees", http.NotFound) }) - r.Get("/node/syncing", nil) - r.Get("/config/spec", nil) + r.Get("/node/syncing", http.NotFound) r.Route("/states", func(r chi.Router) { - r.Get("/head/validators/{index}", nil) // otterscan - r.Get("/head/committees", nil) // otterscan + r.Get("/head/validators/{index}", http.NotFound) // otterscan + r.Get("/head/committees", http.NotFound) // otterscan r.Route("/{state_id}", func(r chi.Router) { - r.Get("/validators", nil) - r.Get("/fork", nil) - r.Get("/validators/{id}", nil) + r.Get("/validators", http.NotFound) + r.Get("/root", beaconhttp.HandleEndpointFunc(a.getStateRoot)) + r.Get("/fork", beaconhttp.HandleEndpointFunc(a.getStateFork)) + r.Get("/validators/{id}", http.NotFound) }) }) }) r.Route("/validator", func(r chi.Router) { r.Route("/duties", func(r chi.Router) { - r.Post("/attester/{epoch}", nil) - r.Get("/proposer/{epoch}", nil) - r.Post("/sync/{epoch}", nil) + r.Post("/attester/{epoch}", http.NotFound) + r.Get("/proposer/{epoch}", beaconhttp.HandleEndpointFunc(a.getDutiesProposer)) + r.Post("/sync/{epoch}", http.NotFound) }) - r.Get("/blinded_blocks/{slot}", nil) - r.Get("/attestation_data", nil) - r.Get("/aggregate_attestation", nil) - r.Post("/aggregate_and_proofs", nil) - r.Post("/beacon_committee_subscriptions", nil) - r.Post("/sync_committee_subscriptions", nil) - r.Get("/sync_committee_contribution", nil) - r.Post("/contribution_and_proofs", nil) - r.Post("/prepare_beacon_proposer", nil) + r.Get("/blinded_blocks/{slot}", http.NotFound) + r.Get("/attestation_data", http.NotFound) + r.Get("/aggregate_attestation", http.NotFound) + r.Post("/aggregate_and_proofs", http.NotFound) + r.Post("/beacon_committee_subscriptions", http.NotFound) + r.Post("/sync_committee_subscriptions", http.NotFound) + r.Get("/sync_committee_contribution", http.NotFound) + r.Post("/contribution_and_proofs", http.NotFound) + r.Post("/prepare_beacon_proposer", http.NotFound) }) }) r.Route("/v2", func(r chi.Router) { + r.Route("/debug", func(r chi.Router) { + r.Route("/beacon", func(r chi.Router) { + r.Get("/states/{state_id}", beaconhttp.HandleEndpointFunc(a.getFullState)) + }) + }) r.Route("/beacon", func(r chi.Router) { - r.Post("/blocks/{slot}", nil) //otterscan + r.Get("/blocks/{block_id}", beaconhttp.HandleEndpointFunc(a.getBlock)) //otterscan }) r.Route("/validator", func(r chi.Router) { - r.Post("/blocks/{slot}", nil) + r.Post("/blocks/{slot}", http.NotFound) }) }) }) diff --git a/cl/beacon/handler/headers.go b/cl/beacon/handler/headers.go new file mode 100644 index 00000000000..e6b18607115 --- /dev/null +++ b/cl/beacon/handler/headers.go @@ -0,0 +1,129 @@ +package handler + +import ( + "fmt" + "net/http" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" +) + +func (a *ApiHandler) getHeaders(r *http.Request) (*beaconResponse, error) { + ctx := r.Context() + + querySlot, err := uint64FromQueryParams(r, "slot") + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + queryParentHash, err := hashFromQueryParams(r, "parent_root") + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + + tx, err := a.indiciesDB.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + var candidates []libcommon.Hash + var slot *uint64 + var potentialRoot libcommon.Hash + // First lets find some good candidates for the query. TODO(Giulio2002): this does not give all the headers. + switch { + case queryParentHash != nil && querySlot != nil: + // get all blocks with this parent + slot, err = beacon_indicies.ReadBlockSlotByBlockRoot(tx, *queryParentHash) + if err != nil { + return nil, err + } + if slot == nil { + break + } + if *slot+1 != *querySlot { + break + } + potentialRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, *slot+1) + if err != nil { + return nil, err + } + candidates = append(candidates, potentialRoot) + case queryParentHash == nil && querySlot != nil: + potentialRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, *querySlot) + if err != nil { + return nil, err + } + candidates = append(candidates, potentialRoot) + case queryParentHash == nil && querySlot == nil: + headSlot := a.syncedData.HeadSlot() + if headSlot == 0 { + break + } + potentialRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, headSlot) + if err != nil { + return nil, err + } + candidates = append(candidates, potentialRoot) + } + // Now we assemble the response + headers := make([]*headerResponse, 0, len(candidates)) + for _, root := range candidates { + signedHeader, err := a.blockReader.ReadHeaderByRoot(ctx, tx, root) + if err != nil { + return nil, err + } + if signedHeader == nil || (queryParentHash != nil && signedHeader.Header.ParentRoot != *queryParentHash) || (querySlot != nil && signedHeader.Header.Slot != *querySlot) { + continue + } + + canonicalRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, signedHeader.Header.Slot) + if err != nil { + return nil, err + } + headers = append(headers, &headerResponse{ + Root: root, + Canonical: canonicalRoot == root, + Header: signedHeader, + }) + } + return newBeaconResponse(headers), nil +} + +func (a *ApiHandler) getHeader(r *http.Request) (*beaconResponse, error) { + ctx := r.Context() + tx, err := a.indiciesDB.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + blockId, err := blockIdFromRequest(r) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + root, err := a.rootFromBlockId(ctx, tx, blockId) + if err != nil { + return nil, err + } + + signedHeader, err := a.blockReader.ReadHeaderByRoot(ctx, tx, root) + if err != nil { + return nil, err + } + + if signedHeader == nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("block not found %x", root)) + } + var canonicalRoot libcommon.Hash + canonicalRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, signedHeader.Header.Slot) + if err != nil { + return nil, err + } + + version := a.beaconChainCfg.GetCurrentStateVersion(signedHeader.Header.Slot / a.beaconChainCfg.SlotsPerEpoch) + + return newBeaconResponse(&headerResponse{ + Root: root, + Canonical: canonicalRoot == root, + Header: signedHeader, + }).withFinalized(canonicalRoot == root && signedHeader.Header.Slot <= a.forkchoiceStore.FinalizedSlot()).withVersion(version), nil +} diff --git a/cl/beacon/handler/pool.go b/cl/beacon/handler/pool.go new file mode 100644 index 00000000000..66614f904f2 --- /dev/null +++ b/cl/beacon/handler/pool.go @@ -0,0 +1,25 @@ +package handler + +import ( + "net/http" +) + +func (a *ApiHandler) poolVoluntaryExits(r *http.Request) (*beaconResponse, error) { + return newBeaconResponse(a.operationsPool.VoluntaryExistsPool.Raw()), nil +} + +func (a *ApiHandler) poolAttesterSlashings(r *http.Request) (*beaconResponse, error) { + return newBeaconResponse(a.operationsPool.AttesterSlashingsPool.Raw()), nil +} + +func (a *ApiHandler) poolProposerSlashings(r *http.Request) (*beaconResponse, error) { + return newBeaconResponse(a.operationsPool.ProposerSlashingsPool.Raw()), nil +} + +func (a *ApiHandler) poolBlsToExecutionChanges(r *http.Request) (*beaconResponse, error) { + return newBeaconResponse(a.operationsPool.BLSToExecutionChangesPool.Raw()), nil +} + +func (a *ApiHandler) poolAttestations(r *http.Request) (*beaconResponse, error) { + return newBeaconResponse(a.operationsPool.AttestationsPool.Raw()), nil +} diff --git a/cl/beacon/handler/states.go b/cl/beacon/handler/states.go new file mode 100644 index 00000000000..0d0c75d9573 --- /dev/null +++ b/cl/beacon/handler/states.go @@ -0,0 +1,182 @@ +package handler + +import ( + "context" + "fmt" + "net/http" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + "github.com/ledgerwatch/erigon/cl/utils" +) + +func (a *ApiHandler) rootFromStateId(ctx context.Context, tx kv.Tx, stateId *segmentID) (root libcommon.Hash, httpStatusErr int, err error) { + var blockRoot libcommon.Hash + switch { + case stateId.head(): + blockRoot, _, err = a.forkchoiceStore.GetHead() + if err != nil { + return libcommon.Hash{}, http.StatusInternalServerError, err + } + case stateId.finalized(): + blockRoot = a.forkchoiceStore.FinalizedCheckpoint().BlockRoot() + case stateId.justified(): + blockRoot = a.forkchoiceStore.JustifiedCheckpoint().BlockRoot() + case stateId.genesis(): + blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, 0) + if err != nil { + return libcommon.Hash{}, http.StatusInternalServerError, err + } + if blockRoot == (libcommon.Hash{}) { + return libcommon.Hash{}, http.StatusNotFound, fmt.Errorf("genesis block not found") + } + case stateId.getSlot() != nil: + blockRoot, err = beacon_indicies.ReadCanonicalBlockRoot(tx, *stateId.getSlot()) + if err != nil { + return libcommon.Hash{}, http.StatusInternalServerError, err + } + if blockRoot == (libcommon.Hash{}) { + return libcommon.Hash{}, http.StatusNotFound, fmt.Errorf("block not found %d", *stateId.getSlot()) + } + case stateId.getRoot() != nil: + root = *stateId.getRoot() + return + default: + return libcommon.Hash{}, http.StatusInternalServerError, fmt.Errorf("cannot parse state id") + } + root, err = beacon_indicies.ReadStateRootByBlockRoot(ctx, tx, blockRoot) + if err != nil { + return libcommon.Hash{}, http.StatusInternalServerError, err + } + if root == (libcommon.Hash{}) { + return libcommon.Hash{}, http.StatusNotFound, fmt.Errorf("block not found") + } + return +} + +type rootResponse struct { + Root libcommon.Hash `json:"root"` +} + +func previousVersion(v clparams.StateVersion) clparams.StateVersion { + if v == clparams.Phase0Version { + return clparams.Phase0Version + } + return v - 1 +} + +func (a *ApiHandler) getStateFork(r *http.Request) (*beaconResponse, error) { + ctx := r.Context() + + tx, err := a.indiciesDB.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + + blockId, err := stateIdFromRequest(r) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + root, httpStatus, err := a.rootFromStateId(ctx, tx, blockId) + if err != nil { + return nil, beaconhttp.NewEndpointError(httpStatus, err.Error()) + } + + slot, err := beacon_indicies.ReadBlockSlotByBlockRoot(tx, root) + if err != nil { + return nil, err + } + if slot == nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, err.Error()) + } + epoch := *slot / a.beaconChainCfg.SlotsPerEpoch + + stateVersion := a.beaconChainCfg.GetCurrentStateVersion(epoch) + forkEpoch := a.beaconChainCfg.GetForkEpochByVersion(stateVersion) + currentVersion := a.beaconChainCfg.GetForkVersionByVersion(stateVersion) + previousVersion := a.beaconChainCfg.GetForkVersionByVersion(previousVersion(stateVersion)) + + return newBeaconResponse(&cltypes.Fork{ + PreviousVersion: utils.Uint32ToBytes4(previousVersion), + CurrentVersion: utils.Uint32ToBytes4(currentVersion), + Epoch: forkEpoch, + }), nil +} + +func (a *ApiHandler) getStateRoot(r *http.Request) (*beaconResponse, error) { + ctx := r.Context() + + tx, err := a.indiciesDB.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + + blockId, err := stateIdFromRequest(r) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + root, httpStatus, err := a.rootFromStateId(ctx, tx, blockId) + if err != nil { + return nil, beaconhttp.NewEndpointError(httpStatus, err.Error()) + } + + stateRoot, err := beacon_indicies.ReadStateRootByBlockRoot(ctx, tx, root) + if err != nil { + return nil, err + } + if stateRoot == (libcommon.Hash{}) { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("could not read block header: %x", root)) + } + + slot, err := beacon_indicies.ReadBlockSlotByBlockRoot(tx, root) + if err != nil { + return nil, err + } + if slot == nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("could not read block header: %x", root)) + } + canonicalRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, *slot) + if err != nil { + return nil, err + } + + return newBeaconResponse(&rootResponse{Root: stateRoot}).withFinalized(canonicalRoot == root && *slot <= a.forkchoiceStore.FinalizedSlot()), nil +} + +func (a *ApiHandler) getFullState(r *http.Request) (*beaconResponse, error) { + ctx := r.Context() + + tx, err := a.indiciesDB.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + + blockId, err := stateIdFromRequest(r) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + + root, httpStatus, err := a.rootFromStateId(ctx, tx, blockId) + if err != nil { + return nil, beaconhttp.NewEndpointError(httpStatus, err.Error()) + } + + blockRoot, err := beacon_indicies.ReadBlockRootByStateRoot(tx, root) + if err != nil { + return nil, err + } + + state, err := a.forkchoiceStore.GetStateAtBlockRoot(blockRoot, true) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, err.Error()) + } + + return newBeaconResponse(state).withFinalized(false).withVersion(state.Version()), nil +} diff --git a/cl/beacon/middleware.go b/cl/beacon/middleware.go new file mode 100644 index 00000000000..519aebf0527 --- /dev/null +++ b/cl/beacon/middleware.go @@ -0,0 +1 @@ +package beacon diff --git a/cl/beacon/router.go b/cl/beacon/router.go index 5d87b248643..3fb927f0d33 100644 --- a/cl/beacon/router.go +++ b/cl/beacon/router.go @@ -3,26 +3,54 @@ package beacon import ( "net" "net/http" - "time" + "strings" + "github.com/go-chi/chi/v5" + "github.com/ledgerwatch/erigon/cl/beacon/beacon_router_configuration" "github.com/ledgerwatch/erigon/cl/beacon/handler" + "github.com/ledgerwatch/erigon/cl/beacon/validatorapi" "github.com/ledgerwatch/log/v3" ) -// TODO(enriavil1): Make this configurable via flags -type RouterConfiguration struct { - Protocol string - Address string - - ReadTimeTimeout time.Duration - IdleTimeout time.Duration - WriteTimeout time.Duration +type LayeredBeaconHandler struct { + ValidatorApi *validatorapi.ValidatorApiHandler + ArchiveApi *handler.ApiHandler } -func ListenAndServe(api *handler.ApiHandler, routerCfg *RouterConfiguration) { +func ListenAndServe(beaconHandler *LayeredBeaconHandler, routerCfg beacon_router_configuration.RouterConfiguration) error { listener, err := net.Listen(routerCfg.Protocol, routerCfg.Address) + if err != nil { + return err + } + defer listener.Close() + mux := chi.NewRouter() + // enforce json content type + mux.Use(func(h http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + contentType := r.Header.Get("Content-Type") + if len(contentType) > 0 && !strings.EqualFold(contentType, "application/json") { + http.Error(w, "Content-Type header must be application/json", http.StatusUnsupportedMediaType) + return + } + h.ServeHTTP(w, r) + }) + }) + // layered handling - 404 on first handler falls back to the second + mux.HandleFunc("/eth/*", func(w http.ResponseWriter, r *http.Request) { + nfw := ¬FoundNoWriter{rw: w} + beaconHandler.ValidatorApi.ServeHTTP(nfw, r) + if nfw.code == 404 || nfw.code == 0 { + beaconHandler.ArchiveApi.ServeHTTP(w, r) + } + }) + mux.HandleFunc("/validator/*", func(w http.ResponseWriter, r *http.Request) { + http.StripPrefix("/validator", beaconHandler.ValidatorApi).ServeHTTP(w, r) + }) + mux.HandleFunc("/archive/*", func(w http.ResponseWriter, r *http.Request) { + http.StripPrefix("/archive", beaconHandler.ArchiveApi).ServeHTTP(w, r) + }) server := &http.Server{ - Handler: api, + Handler: mux, ReadTimeout: routerCfg.ReadTimeTimeout, IdleTimeout: routerCfg.IdleTimeout, WriteTimeout: routerCfg.IdleTimeout, @@ -33,5 +61,18 @@ func ListenAndServe(api *handler.ApiHandler, routerCfg *RouterConfiguration) { if err := server.Serve(listener); err != nil { log.Warn("[Beacon API] failed to start serving", "addr", routerCfg.Address, "err", err) + return err } + return nil +} + +func newBeaconMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + contentType := r.Header.Get("Content-Type") + if contentType != "application/json" && contentType != "" { + http.Error(w, "Content-Type header must be application/json", http.StatusUnsupportedMediaType) + return + } + next.ServeHTTP(w, r) + }) } diff --git a/cl/beacon/rw.go b/cl/beacon/rw.go new file mode 100644 index 00000000000..33a74b2fb7e --- /dev/null +++ b/cl/beacon/rw.go @@ -0,0 +1,42 @@ +package beacon + +import ( + "net/http" +) + +type notFoundNoWriter struct { + rw http.ResponseWriter + + code int + headers http.Header +} + +func (f *notFoundNoWriter) Header() http.Header { + if f.code == 404 { + return make(http.Header) + } + return f.rw.Header() +} + +func (f *notFoundNoWriter) Write(xs []byte) (int, error) { + // write code 200 if code not written yet + if f.code == 0 { + f.WriteHeader(200) + } + if f.code == 404 { + return 0, nil + } + // pass on the write + return f.rw.Write(xs) +} + +func (f *notFoundNoWriter) WriteHeader(statusCode int) { + if f.code != 0 { + return + } + if f.code != 404 { + f.rw.WriteHeader(statusCode) + } + // if it's a 404 and we are not at our last handler, set the target to an io.Discard + f.code = statusCode +} diff --git a/cl/beacon/synced_data/synced_data.go b/cl/beacon/synced_data/synced_data.go new file mode 100644 index 00000000000..abc04251670 --- /dev/null +++ b/cl/beacon/synced_data/synced_data.go @@ -0,0 +1,81 @@ +package synced_data + +import ( + "sync" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/utils" + "github.com/ledgerwatch/log/v3" +) + +type SyncedDataManager struct { + enabled bool + cfg *clparams.BeaconChainConfig + headState *state.CachingBeaconState + + mu sync.RWMutex +} + +func NewSyncedDataManager(enabled bool, cfg *clparams.BeaconChainConfig) *SyncedDataManager { + return &SyncedDataManager{ + enabled: enabled, + cfg: cfg, + } +} + +func (s *SyncedDataManager) OnHeadState(newState *state.CachingBeaconState) (err error) { + if !s.enabled { + return + } + // Schedule update. + go func() { + s.mu.Lock() + defer s.mu.Unlock() + if s.headState == nil { + s.headState, err = newState.Copy() + } + err = newState.CopyInto(s.headState) + if err != nil { + log.Error("failed to copy head state", "err", err) + } + }() + + return +} + +func (s *SyncedDataManager) HeadState() (state *state.CachingBeaconState, cancel func()) { + if !s.enabled { + return nil, func() {} + } + s.mu.RLock() + return s.headState, s.mu.RUnlock +} + +func (s *SyncedDataManager) Syncing() bool { + if !s.enabled { + return false + } + s.mu.RLock() + defer s.mu.RUnlock() + if s.headState == nil { + return false + } + + headEpoch := utils.GetCurrentEpoch(s.headState.GenesisTime(), s.cfg.SecondsPerSlot, s.cfg.SlotsPerEpoch) + // surplusMargin, give it a go if we are within 2 epochs of the head + surplusMargin := s.cfg.SlotsPerEpoch * 2 + return s.headState.Slot()+surplusMargin < headEpoch +} + +func (s *SyncedDataManager) HeadSlot() uint64 { + if !s.enabled { + return 0 + } + s.mu.RLock() + defer s.mu.RUnlock() + if s.headState == nil { + return 0 + } + return s.headState.Slot() +} diff --git a/cl/beacon/types/primitives.go b/cl/beacon/types/primitives.go deleted file mode 100644 index 2e4681d0885..00000000000 --- a/cl/beacon/types/primitives.go +++ /dev/null @@ -1,12 +0,0 @@ -package types - -import ( - "encoding/hex" - "encoding/json" -) - -type Bytes4 [4]byte - -func (b Bytes4) MarshalJSON() ([]byte, error) { - return json.Marshal("0x" + hex.EncodeToString(b[:])) -} diff --git a/cl/beacon/validatorapi/endpoints.go b/cl/beacon/validatorapi/endpoints.go new file mode 100644 index 00000000000..ed06d471a2f --- /dev/null +++ b/cl/beacon/validatorapi/endpoints.go @@ -0,0 +1,249 @@ +package validatorapi + +import ( + "fmt" + "net/http" + "strconv" + "strings" + "unicode" + + "github.com/go-chi/chi/v5" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/fork" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/utils" +) + +func (v *ValidatorApiHandler) GetEthV1NodeSyncing(r *http.Request) (any, error) { + _, slot, err := v.FC.GetHead() + if err != nil { + return nil, err + } + + realHead := utils.GetCurrentSlot(v.GenesisCfg.GenesisTime, v.BeaconChainCfg.SecondsPerSlot) + + isSyncing := realHead > slot + + syncDistance := 0 + if isSyncing { + syncDistance = int(realHead) - int(slot) + } + + elOffline := true + if v.FC.Engine() != nil { + val, err := v.FC.Engine().Ready() + if err == nil { + elOffline = !val + } + } + + return map[string]any{ + "head_slot": strconv.FormatUint(slot, 10), + "sync_distance": syncDistance, + "is_syncing": isSyncing, + "el_offline": elOffline, + // TODO: figure out how to populat this field + "is_optimistic": true, + }, nil +} + +func (v *ValidatorApiHandler) EventSourceGetV1Events(w http.ResponseWriter, r *http.Request) { +} + +func (v *ValidatorApiHandler) GetEthV1ConfigSpec(r *http.Request) (*clparams.BeaconChainConfig, error) { + if v.BeaconChainCfg == nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, "beacon config not found") + } + return v.BeaconChainCfg, nil +} + +func (v *ValidatorApiHandler) GetEthV1BeaconGenesis(r *http.Request) (any, error) { + if v.GenesisCfg == nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, "genesis config not found") + } + digest, err := fork.ComputeForkDigest(v.BeaconChainCfg, v.GenesisCfg) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusInternalServerError, err.Error()) + } + return map[string]any{ + "genesis_time": v.GenesisCfg.GenesisTime, + "genesis_validator_root": v.GenesisCfg.GenesisValidatorRoot, + "genesis_fork_version": hexutility.Bytes(digest[:]), + }, nil +} + +func (v *ValidatorApiHandler) GetEthV1BeaconStatesStateIdFork(r *http.Request) (any, error) { + stateId := chi.URLParam(r, "state_id") + state, err := v.privateGetStateFromStateId(stateId) + if err != nil { + return nil, err + } + isFinalized := state.Slot() <= v.FC.FinalizedSlot() + forkData := state.BeaconState.Fork() + return map[string]any{ + // TODO: this "True if the response references an unverified execution payload. " + // figure out the condition where this happens + "execution_optimistic": false, + "finalized": isFinalized, + "data": map[string]any{ + "previous_version": hexutility.Bytes(forkData.PreviousVersion[:]), + "current_version": hexutility.Bytes(forkData.CurrentVersion[:]), + "epoch": strconv.Itoa(int(forkData.Epoch)), + }, + }, nil +} +func (v *ValidatorApiHandler) GetEthV1BeaconStatesStateIdValidatorsValidatorId(r *http.Request) (any, error) { + stateId := chi.URLParam(r, "state_id") + // grab the correct state for the given state id + beaconState, err := v.privateGetStateFromStateId(stateId) + if err != nil { + return nil, err + } + + var validatorIndex uint64 + validatorId := chi.URLParam(r, "validator_id") + switch { + case strings.HasPrefix(validatorId, "0x"): + // assume is hex has, so try to parse + hsh := common.Bytes48{} + err := hsh.UnmarshalText([]byte(stateId)) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, fmt.Sprintf("Invalid validator ID: %s", validatorId)) + } + val, ok := beaconState.ValidatorIndexByPubkey(hsh) + if !ok { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("validator not found: %s", validatorId)) + } + validatorIndex = val + case isInt(validatorId): + val, err := strconv.ParseUint(validatorId, 10, 64) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, fmt.Sprintf("Invalid validator ID: %s", validatorId)) + } + validatorIndex = val + default: + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, fmt.Sprintf("Invalid validator ID: %s", validatorId)) + } + // at this point validatorIndex is neccesarily assigned, so we can trust the zero value + validator, err := beaconState.ValidatorForValidatorIndex(int(validatorIndex)) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("validator not found at %s: %s ", stateId, validatorId)) + } + validatorBalance, err := beaconState.ValidatorBalance(int(validatorIndex)) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, fmt.Sprintf("balance not found at %s: %s ", stateId, validatorId)) + } + + //pending_initialized - When the first deposit is processed, but not enough funds are available (or not yet the end of the first epoch) to get validator into the activation queue. + //pending_queued - When validator is waiting to get activated, and have enough funds etc. while in the queue, validator activation epoch keeps changing until it gets to the front and make it through (finalization is a requirement here too). + //active_ongoing - When validator must be attesting, and have not initiated any exit. + //active_exiting - When validator is still active, but filed a voluntary request to exit. + //active_slashed - When validator is still active, but have a slashed status and is scheduled to exit. + //exited_unslashed - When validator has reached regular exit epoch, not being slashed, and doesn't have to attest any more, but cannot withdraw yet. + //exited_slashed - When validator has reached regular exit epoch, but was slashed, have to wait for a longer withdrawal period. + //withdrawal_possible - After validator has exited, a while later is permitted to move funds, and is truly out of the system. + //withdrawal_done - (not possible in phase0, except slashing full balance) - actually having moved funds away + + epoch := state.GetEpochAtSlot(v.BeaconChainCfg, beaconState.Slot()) + // TODO: figure out what is wrong and missing here + validator_status := func() string { + // see if validator has exited + if validator.ExitEpoch() >= epoch { + if validator.WithdrawableEpoch() >= epoch { + // TODO: is this right? not sure if correct way to check for withdrawal_done + if validatorBalance == 0 { + return "withdrawal_done" + } + return "withdrawal_possible" + } + if validator.Slashed() { + return "exited_slashed" + } + return "exited_unslashed" + } + // at this point we know they have not exited, so they are either active or pending + if validator.Active(epoch) { + // if active, figure out if they are slashed + if validator.Slashed() { + return "active_slashed" + } + if validator.ExitEpoch() != v.BeaconChainCfg.FarFutureEpoch { + return "active_exiting" + } + return "active_ongoing" + } + // check if enough funds (TODO: or end of first epoch??) + if validatorBalance >= v.BeaconChainCfg.MinDepositAmount { + return "pending_initialized" + } + return "pending_queued" + }() + + isFinalized := beaconState.Slot() <= v.FC.FinalizedSlot() + return map[string]any{ + // TODO: this "True if the response references an unverified execution payload. " + // figure out the condition where this happens + "execution_optimistic": false, + "finalized": isFinalized, + "data": map[string]any{ + "index": strconv.FormatUint(validatorIndex, 10), + "balance": strconv.FormatUint(validatorBalance, 10), + "status": validator_status, + "data": map[string]any{ + "pubkey": hexutility.Bytes(validator.PublicKeyBytes()), + "withdraw_credentials": hexutility.Bytes(validator.WithdrawalCredentials().Bytes()), + "effective_balance": strconv.FormatUint(validator.EffectiveBalance(), 10), + "slashed": validator.Slashed(), + "activation_eligibility_epoch": strconv.FormatUint(validator.ActivationEligibilityEpoch(), 10), + "activation_epoch": strconv.FormatUint(validator.ActivationEpoch(), 10), + "exit_epoch": strconv.FormatUint(validator.ActivationEpoch(), 10), + "withdrawable_epoch": strconv.FormatUint(validator.WithdrawableEpoch(), 10), + }, + }, + }, nil +} + +func (v *ValidatorApiHandler) privateGetStateFromStateId(stateId string) (*state.CachingBeaconState, error) { + switch { + case stateId == "head": + // Now check the head + headRoot, _, err := v.FC.GetHead() + if err != nil { + return nil, err + } + return v.FC.GetStateAtBlockRoot(headRoot, true) + case stateId == "genesis": + // not supported + return nil, beaconhttp.NewEndpointError(http.StatusNotFound, "genesis block not found") + case stateId == "finalized": + return v.FC.GetStateAtBlockRoot(v.FC.FinalizedCheckpoint().BlockRoot(), true) + case stateId == "justified": + return v.FC.GetStateAtBlockRoot(v.FC.JustifiedCheckpoint().BlockRoot(), true) + case strings.HasPrefix(stateId, "0x"): + // assume is hex has, so try to parse + hsh := common.Hash{} + err := hsh.UnmarshalText([]byte(stateId)) + if err != nil { + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, fmt.Sprintf("Invalid state ID: %s", stateId)) + } + return v.FC.GetStateAtStateRoot(hsh, true) + case isInt(stateId): + // ignore the error bc isInt check succeeded. yes this doesn't protect for overflow, they will request slot 0 and it will fail. good + val, _ := strconv.ParseUint(stateId, 10, 64) + return v.FC.GetStateAtSlot(val, true) + default: + return nil, beaconhttp.NewEndpointError(http.StatusBadRequest, fmt.Sprintf("Invalid state ID: %s", stateId)) + } +} + +func isInt(s string) bool { + for _, c := range s { + if !unicode.IsDigit(c) { + return false + } + } + return true +} diff --git a/cl/beacon/validatorapi/handler.go b/cl/beacon/validatorapi/handler.go new file mode 100644 index 00000000000..838ef398240 --- /dev/null +++ b/cl/beacon/validatorapi/handler.go @@ -0,0 +1,89 @@ +package validatorapi + +import ( + "net/http" + "sync" + + "github.com/go-chi/chi/v5" + "github.com/ledgerwatch/erigon/cl/beacon/beaconhttp" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" +) + +type ValidatorApiHandler struct { + FC forkchoice.ForkChoiceStorage + + BeaconChainCfg *clparams.BeaconChainConfig + GenesisCfg *clparams.GenesisConfig + + o sync.Once + mux chi.Router +} + +func (v *ValidatorApiHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + v.o.Do(func() { + v.mux = chi.NewRouter() + v.init(v.mux) + }) + v.mux.ServeHTTP(w, r) +} + +func (v *ValidatorApiHandler) init(r chi.Router) { + r.Route("/eth", func(r chi.Router) { + r.Route("/v1", func(r chi.Router) { + r.Route("/beacon", func(r chi.Router) { + r.Get("/genesis", beaconhttp.HandleEndpointFunc(v.GetEthV1BeaconGenesis)) + r.Route("/states", func(r chi.Router) { + r.Route("/{state_id}", func(r chi.Router) { + r.Get("/fork", beaconhttp.HandleEndpointFunc(v.GetEthV1BeaconStatesStateIdFork)) + r.Get("/validators/{validator_id}", beaconhttp.HandleEndpointFunc(v.GetEthV1BeaconStatesStateIdValidatorsValidatorId)) + }) + }) + r.Post("/binded_blocks", http.NotFound) + r.Post("/blocks", http.NotFound) + r.Route("/pool", func(r chi.Router) { + r.Post("/attestations", http.NotFound) + r.Post("/sync_committees", http.NotFound) + }) + r.Get("/node/syncing", beaconhttp.HandleEndpointFunc(v.GetEthV1NodeSyncing)) + }) + r.Get("/config/spec", beaconhttp.HandleEndpointFunc(v.GetEthV1ConfigSpec)) + r.Get("/events", http.NotFound) + r.Route("/validator", func(r chi.Router) { + r.Route("/duties", func(r chi.Router) { + r.Post("/attester/{epoch}", http.NotFound) + r.Get("/proposer/{epoch}", http.NotFound) + r.Post("/sync/{epoch}", http.NotFound) + }) + // r.Get("/blinded_blocks/{slot}", http.NotFound) - deprecated + r.Get("/attestation_data", http.NotFound) + r.Get("/aggregate_attestation", http.NotFound) + r.Post("/aggregate_and_proofs", http.NotFound) + r.Post("/beacon_committee_subscriptions", http.NotFound) + r.Post("/sync_committee_subscriptions", http.NotFound) + r.Get("/sync_committee_contribution", http.NotFound) + r.Post("/contribution_and_proofs", http.NotFound) + r.Post("/prepare_beacon_proposer", http.NotFound) + }) + }) + r.Route("/v2", func(r chi.Router) { + r.Route("/debug", func(r chi.Router) { + r.Route("/beacon", func(r chi.Router) { + r.Get("/states/{state_id}", http.NotFound) + }) + }) + r.Route("/beacon", func(r chi.Router) { + r.Post("/blocks/{block_id}", http.NotFound) + }) + r.Route("/validator", func(r chi.Router) { + r.Post("/blocks/{slot}", http.NotFound) + }) + }) + r.Route("/v3", func(r chi.Router) { + r.Route("/beacon", func(r chi.Router) { + r.Get("/blocks/{block_id}", http.NotFound) + }) + }) + }) + +} diff --git a/cl/clparams/config.go b/cl/clparams/config.go index 67b64ee4c0d..8b58db47b3d 100644 --- a/cl/clparams/config.go +++ b/cl/clparams/config.go @@ -19,16 +19,22 @@ import ( "math" "math/big" "os" + "path" "time" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/types/ssz" "gopkg.in/yaml.v2" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/params/networkname" ) +type CaplinConfig struct { + Backfilling bool + Archive bool +} + type NetworkType int const ( @@ -47,6 +53,11 @@ const ( RespTimeout time.Duration = 15 * time.Second ) +const ( + SubDivisionFolderSize = 10_000 + SlotsPerDump = 1024 +) + var ( MainnetBootstrapNodes = []string{ // Teku team's bootnode @@ -68,6 +79,11 @@ var ( "enr:-LK4QA8FfhaAjlb_BXsXxSfiysR7R52Nhi9JBt4F8SPssu8hdE1BXQQEtVDC3qStCW60LSO7hEsVHv5zm8_6Vnjhcn0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAN4aBKJc2VjcDI1NmsxoQJerDhsJ-KxZ8sHySMOCmTO6sHM3iCFQ6VMvLTe948MyYN0Y3CCI4yDdWRwgiOM", "enr:-LK4QKWrXTpV9T78hNG6s8AM6IO4XH9kFT91uZtFg1GcsJ6dKovDOr1jtAAFPnS2lvNltkOGA9k29BUN7lFh_sjuc9QBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhANAdd-Jc2VjcDI1NmsxoQLQa6ai7y9PMN5hpLe5HmiJSlYzMuzP7ZhwRiwHvqNXdoN0Y3CCI4yDdWRwgiOM", } + SepoliaBootstrapNodes = append(MainnetBootstrapNodes, + "enr:-Iq4QMCTfIMXnow27baRUb35Q8iiFHSIDBJh6hQM5Axohhf4b6Kr_cOCu0htQ5WvVqKvFgY28893DHAg8gnBAXsAVqmGAX53x8JggmlkgnY0gmlwhLKAlv6Jc2VjcDI1NmsxoQK6S-Cii_KmfFdUJL2TANL3ksaKUnNXvTCv1tLwXs0QgIN1ZHCCIyk", + "enr:-Ly4QFoZTWR8ulxGVsWydTNGdwEESueIdj-wB6UmmjUcm-AOPxnQi7wprzwcdo7-1jBW_JxELlUKJdJES8TDsbl1EdNlh2F0dG5ldHOI__78_v2bsV-EZXRoMpA2-lATkAAAcf__________gmlkgnY0gmlwhBLYJjGJc2VjcDI1NmsxoQI0gujXac9rMAb48NtMqtSTyHIeNYlpjkbYpWJw46PmYYhzeW5jbmV0cw-DdGNwgiMog3VkcIIjKA", + "enr:-KG4QE5OIg5ThTjkzrlVF32WT_-XT14WeJtIz2zoTqLLjQhYAmJlnk4ItSoH41_2x0RX0wTFIe5GgjRzU2u7Q1fN4vADhGV0aDKQqP7o7pAAAHAyAAAAAAAAAIJpZIJ2NIJpcISlFsStiXNlY3AyNTZrMaEC-Rrd_bBZwhKpXzFCrStKp1q_HmGOewxY3KwM8ofAj_ODdGNwgiMog3VkcIIjKA", + "enr:-L64QC9Hhov4DhQ7mRukTOz4_jHm4DHlGL726NWH4ojH1wFgEwSin_6H95Gs6nW2fktTWbPachHJ6rUFu0iJNgA0SB2CARqHYXR0bmV0c4j__________4RldGgykDb6UBOQAABx__________-CaWSCdjSCaXCEA-2vzolzZWNwMjU2azGhA17lsUg60R776rauYMdrAz383UUgESoaHEzMkvm4K6k6iHN5bmNuZXRzD4N0Y3CCIyiDdWRwgiMo") GnosisBootstrapNodes = append(MainnetBootstrapNodes, []string{ "enr:-Ly4QMU1y81COwm1VZgxGF4_eZ21ub9-GHF6dXZ29aEJ0oZpcV2Rysw-viaEKfpcpu9ZarILJLxFZjcKOjE0Sybs3MQBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpCCS-QxAgAAZP__________gmlkgnY0gmlwhANLnx-Jc2VjcDI1NmsxoQKoaYT8I-wf2I_f_ii6EgoSSXj5T3bhiDyW-7ZLsY3T64hzeW5jbmV0cwCDdGNwgiMog3VkcIIjKA", @@ -95,7 +111,6 @@ type NetworkConfig struct { GossipMaxSize uint64 `json:"gossip_max_size"` // The maximum allowed size of uncompressed gossip messages. GossipMaxSizeBellatrix uint64 `json:"gossip_max_size_bellatrix"` // The maximum allowed size of bellatrix uncompressed gossip messages. MaxRequestBlocks uint64 `json:"max_request_blocks"` // Maximum number of blocks in a single request - MinEpochsForBlockRequests uint64 `json:"min_epochs_for_block_requests"` // The minimum epoch range over which a node must serve blocks MaxChunkSize uint64 `json:"max_chunk_size"` // The maximum allowed size of uncompressed req/resp chunked responses. AttestationSubnetCount uint64 `json:"attestation_subnet_count"` // The number of attestation subnets used in the gossipsub protocol. TtfbTimeout time.Duration `json:"ttfbt_timeout"` // The maximum time to wait for first byte of request response (time-to-first-byte). @@ -159,7 +174,7 @@ var NetworkConfigs map[NetworkType]NetworkConfig = map[NetworkType]NetworkConfig SyncCommsSubnetKey: "syncnets", MinimumPeersInSubnetSearch: 20, ContractDeploymentBlock: 1273020, - BootNodes: MainnetBootstrapNodes, + BootNodes: SepoliaBootstrapNodes, }, GoerliNetwork: { @@ -262,9 +277,9 @@ var CheckpointSyncEndpoints = map[NetworkType][]string{ "https://prater-checkpoint-sync.stakely.io/eth/v2/debug/beacon/states/finalized", }, SepoliaNetwork: { - "https://beaconstate-sepolia.chainsafe.io/eth/v2/debug/beacon/states/finalized", - // "https://sepolia.beaconstate.info/eth/v2/debug/beacon/states/finalized", - // "https://checkpoint-sync.sepolia.ethpandaops.io/eth/v2/debug/beacon/states/finalized", + //"https://beaconstate-sepolia.chainsafe.io/eth/v2/debug/beacon/states/finalized", + "https://sepolia.beaconstate.info/eth/v2/debug/beacon/states/finalized", + "https://checkpoint-sync.sepolia.ethpandaops.io/eth/v2/debug/beacon/states/finalized", }, GnosisNetwork: { "https://checkpoint.gnosis.gateway.fm/eth/v2/debug/beacon/states/finalized", @@ -275,6 +290,12 @@ var CheckpointSyncEndpoints = map[NetworkType][]string{ }, } +// MinEpochsForBlockRequests equal to MIN_VALIDATOR_WITHDRAWABILITY_DELAY + CHURN_LIMIT_QUOTIENT / 2 +func (b *BeaconChainConfig) MinEpochsForBlockRequests() uint64 { + return b.MinValidatorWithdrawabilityDelay + (b.ChurnLimitQuotient)/2 + +} + // BeaconChainConfig contains constant configs for node to participate in beacon chain. type BeaconChainConfig struct { // Constants (non-configurable) @@ -309,9 +330,9 @@ type BeaconChainConfig struct { EffectiveBalanceIncrement uint64 `yaml:"EFFECTIVE_BALANCE_INCREMENT" spec:"true"` // EffectiveBalanceIncrement is used for converting the high balance into the low balance for validators. // Initial value constants. - BLSWithdrawalPrefixByte byte `yaml:"BLS_WITHDRAWAL_PREFIX" spec:"true"` // BLSWithdrawalPrefixByte is used for BLS withdrawal and it's the first byte. - ETH1AddressWithdrawalPrefixByte byte `yaml:"ETH1_ADDRESS_WITHDRAWAL_PREFIX" spec:"true"` // ETH1AddressWithdrawalPrefixByte is used for withdrawals and it's the first byte. - ZeroHash [32]byte // ZeroHash is used to represent a zeroed out 32 byte array. + BLSWithdrawalPrefixByte byte `yaml:"BLS_WITHDRAWAL_PREFIX" spec:"true"` // BLSWithdrawalPrefixByte is used for BLS withdrawal and it's the first byte. + ETH1AddressWithdrawalPrefixByte byte `yaml:"ETH1_ADDRESS_WITHDRAWAL_PREFIX" spec:"true"` // ETH1AddressWithdrawalPrefixByte is used for withdrawals and it's the first byte. + ZeroHash libcommon.Hash // ZeroHash is used to represent a zeroed out 32 byte array. // Time parameters constants. GenesisDelay uint64 `yaml:"GENESIS_DELAY" spec:"true"` // GenesisDelay is the minimum number of seconds to delay starting the Ethereum Beacon Chain genesis. Must be at least 1 second. @@ -369,37 +390,37 @@ type BeaconChainConfig struct { MaxValidatorsPerWithdrawalsSweep uint64 `yaml:"MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP" spec:"true"` //MaxValidatorsPerWithdrawalsSweep bounds the size of the sweep searching for withdrawals per slot. // BLS domain values. - DomainBeaconProposer [4]byte `yaml:"DOMAIN_BEACON_PROPOSER" spec:"true"` // DomainBeaconProposer defines the BLS signature domain for beacon proposal verification. - DomainRandao [4]byte `yaml:"DOMAIN_RANDAO" spec:"true"` // DomainRandao defines the BLS signature domain for randao verification. - DomainBeaconAttester [4]byte `yaml:"DOMAIN_BEACON_ATTESTER" spec:"true"` // DomainBeaconAttester defines the BLS signature domain for attestation verification. - DomainDeposit [4]byte `yaml:"DOMAIN_DEPOSIT" spec:"true"` // DomainDeposit defines the BLS signature domain for deposit verification. - DomainVoluntaryExit [4]byte `yaml:"DOMAIN_VOLUNTARY_EXIT" spec:"true"` // DomainVoluntaryExit defines the BLS signature domain for exit verification. - DomainSelectionProof [4]byte `yaml:"DOMAIN_SELECTION_PROOF" spec:"true"` // DomainSelectionProof defines the BLS signature domain for selection proof. - DomainAggregateAndProof [4]byte `yaml:"DOMAIN_AGGREGATE_AND_PROOF" spec:"true"` // DomainAggregateAndProof defines the BLS signature domain for aggregate and proof. - DomainSyncCommittee [4]byte `yaml:"DOMAIN_SYNC_COMMITTEE" spec:"true"` // DomainVoluntaryExit defines the BLS signature domain for sync committee. - DomainSyncCommitteeSelectionProof [4]byte `yaml:"DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF" spec:"true"` // DomainSelectionProof defines the BLS signature domain for sync committee selection proof. - DomainContributionAndProof [4]byte `yaml:"DOMAIN_CONTRIBUTION_AND_PROOF" spec:"true"` // DomainAggregateAndProof defines the BLS signature domain for contribution and proof. - DomainApplicationMask [4]byte `yaml:"DOMAIN_APPLICATION_MASK" spec:"true"` // DomainApplicationMask defines the BLS signature domain for application mask. - DomainApplicationBuilder [4]byte // DomainApplicationBuilder defines the BLS signature domain for application builder. - DomainBLSToExecutionChange [4]byte // DomainBLSToExecutionChange defines the BLS signature domain to change withdrawal addresses to ETH1 prefix - DomainBlobSideCar [4]byte `yaml:"DOMAIN_BLOB_SIDECAR" spec:"true"` // DomainBlobSideCar defines the BLS signature domain for blob sidecar verification + DomainBeaconProposer libcommon.Bytes4 `yaml:"DOMAIN_BEACON_PROPOSER" spec:"true"` // DomainBeaconProposer defines the BLS signature domain for beacon proposal verification. + DomainRandao libcommon.Bytes4 `yaml:"DOMAIN_RANDAO" spec:"true"` // DomainRandao defines the BLS signature domain for randao verification. + DomainBeaconAttester libcommon.Bytes4 `yaml:"DOMAIN_BEACON_ATTESTER" spec:"true"` // DomainBeaconAttester defines the BLS signature domain for attestation verification. + DomainDeposit libcommon.Bytes4 `yaml:"DOMAIN_DEPOSIT" spec:"true"` // DomainDeposit defines the BLS signature domain for deposit verification. + DomainVoluntaryExit libcommon.Bytes4 `yaml:"DOMAIN_VOLUNTARY_EXIT" spec:"true"` // DomainVoluntaryExit defines the BLS signature domain for exit verification. + DomainSelectionProof libcommon.Bytes4 `yaml:"DOMAIN_SELECTION_PROOF" spec:"true"` // DomainSelectionProof defines the BLS signature domain for selection proof. + DomainAggregateAndProof libcommon.Bytes4 `yaml:"DOMAIN_AGGREGATE_AND_PROOF" spec:"true"` // DomainAggregateAndProof defines the BLS signature domain for aggregate and proof. + DomainSyncCommittee libcommon.Bytes4 `yaml:"DOMAIN_SYNC_COMMITTEE" spec:"true"` // DomainVoluntaryExit defines the BLS signature domain for sync committee. + DomainSyncCommitteeSelectionProof libcommon.Bytes4 `yaml:"DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF" spec:"true"` // DomainSelectionProof defines the BLS signature domain for sync committee selection proof. + DomainContributionAndProof libcommon.Bytes4 `yaml:"DOMAIN_CONTRIBUTION_AND_PROOF" spec:"true"` // DomainAggregateAndProof defines the BLS signature domain for contribution and proof. + DomainApplicationMask libcommon.Bytes4 `yaml:"DOMAIN_APPLICATION_MASK" spec:"true"` // DomainApplicationMask defines the BLS signature domain for application mask. + DomainApplicationBuilder libcommon.Bytes4 // DomainApplicationBuilder defines the BLS signature domain for application builder. + DomainBLSToExecutionChange libcommon.Bytes4 // DomainBLSToExecutionChange defines the BLS signature domain to change withdrawal addresses to ETH1 prefix + DomainBlobSideCar libcommon.Bytes4 `yaml:"DOMAIN_BLOB_SIDECAR" spec:"true"` // DomainBlobSideCar defines the BLS signature domain for blob sidecar verification // Prysm constants. - GweiPerEth uint64 // GweiPerEth is the amount of gwei corresponding to 1 eth. - BLSSecretKeyLength int // BLSSecretKeyLength defines the expected length of BLS secret keys in bytes. - BLSPubkeyLength int // BLSPubkeyLength defines the expected length of BLS public keys in bytes. - DefaultBufferSize int // DefaultBufferSize for channels across the Prysm repository. - ValidatorPrivkeyFileName string // ValidatorPrivKeyFileName specifies the string name of a validator private key file. - WithdrawalPrivkeyFileName string // WithdrawalPrivKeyFileName specifies the string name of a withdrawal private key file. - RPCSyncCheck time.Duration // Number of seconds to query the sync service, to find out if the node is synced or not. - EmptySignature [96]byte // EmptySignature is used to represent a zeroed out BLS Signature. - DefaultPageSize int // DefaultPageSize defines the default page size for RPC server request. - MaxPeersToSync int // MaxPeersToSync describes the limit for number of peers in round robin sync. - SlotsPerArchivedPoint uint64 // SlotsPerArchivedPoint defines the number of slots per one archived point. - GenesisCountdownInterval time.Duration // How often to log the countdown until the genesis time is reached. - BeaconStateFieldCount int // BeaconStateFieldCount defines how many fields are in beacon state. - BeaconStateAltairFieldCount int // BeaconStateAltairFieldCount defines how many fields are in beacon state hard fork 1. - BeaconStateBellatrixFieldCount int // BeaconStateBellatrixFieldCount defines how many fields are in beacon state post upgrade to the Bellatrix. + GweiPerEth uint64 // GweiPerEth is the amount of gwei corresponding to 1 eth. + BLSSecretKeyLength int // BLSSecretKeyLength defines the expected length of BLS secret keys in bytes. + BLSPubkeyLength int // BLSPubkeyLength defines the expected length of BLS public keys in bytes. + DefaultBufferSize int // DefaultBufferSize for channels across the Prysm repository. + ValidatorPrivkeyFileName string // ValidatorPrivKeyFileName specifies the string name of a validator private key file. + WithdrawalPrivkeyFileName string // WithdrawalPrivKeyFileName specifies the string name of a withdrawal private key file. + RPCSyncCheck time.Duration // Number of seconds to query the sync service, to find out if the node is synced or not. + EmptySignature libcommon.Bytes96 // EmptySignature is used to represent a zeroed out BLS Signature. + DefaultPageSize int // DefaultPageSize defines the default page size for RPC server request. + MaxPeersToSync int // MaxPeersToSync describes the limit for number of peers in round robin sync. + SlotsPerArchivedPoint uint64 // SlotsPerArchivedPoint defines the number of slots per one archived point. + GenesisCountdownInterval time.Duration // How often to log the countdown until the genesis time is reached. + BeaconStateFieldCount int // BeaconStateFieldCount defines how many fields are in beacon state. + BeaconStateAltairFieldCount int // BeaconStateAltairFieldCount defines how many fields are in beacon state hard fork 1. + BeaconStateBellatrixFieldCount int // BeaconStateBellatrixFieldCount defines how many fields are in beacon state post upgrade to the Bellatrix. // Slasher constants. WeakSubjectivityPeriod uint64 // WeakSubjectivityPeriod defines the time period expressed in number of epochs were proof of stake network should validate block headers and attestations for slashable events. @@ -419,8 +440,8 @@ type BeaconChainConfig struct { DenebForkVersion uint32 `yaml:"DENEB_FORK_VERSION" spec:"true"` // DenebForkVersion is used to represent the fork version for Deneb. DenebForkEpoch uint64 `yaml:"DENEB_FORK_EPOCH" spec:"true"` // DenebForkEpoch is used to represent the assigned fork epoch for Deneb. - ForkVersionSchedule map[[VersionLength]byte]uint64 // Schedule of fork epochs by version. - ForkVersionNames map[[VersionLength]byte]string // Human-readable names of fork versions. + ForkVersionSchedule map[libcommon.Bytes4]uint64 // Schedule of fork epochs by version. + ForkVersionNames map[libcommon.Bytes4]string // Human-readable names of fork versions. // Weak subjectivity values. SafetyDecay uint64 // SafetyDecay is defined as the loss in the 1/3 consensus safety margin of the casper FFG mechanism. @@ -474,6 +495,20 @@ type BeaconChainConfig struct { MaxBuilderEpochMissedSlots uint64 // MaxBuilderEpochMissedSlots is defines the number of total skip slot (per epoch rolling windows) to fallback from using relay/builder to local execution engine for block construction. } +func (b *BeaconChainConfig) RoundSlotToEpoch(slot uint64) uint64 { + return slot - (slot % b.SlotsPerEpoch) +} + +func (b *BeaconChainConfig) RoundSlotToSyncCommitteePeriod(slot uint64) uint64 { + slotsPerSyncCommitteePeriod := b.SlotsPerEpoch * b.EpochsPerSyncCommitteePeriod + return slot - (slot % slotsPerSyncCommitteePeriod) +} + +func (b *BeaconChainConfig) RoundSlotToVotePeriod(slot uint64) uint64 { + p := b.SlotsPerEpoch * b.EpochsPerEth1VotingPeriod + return slot - (slot % p) +} + func (b *BeaconChainConfig) GetCurrentStateVersion(epoch uint64) StateVersion { forkEpochList := []uint64{b.AltairForkEpoch, b.BellatrixForkEpoch, b.CapellaForkEpoch, b.DenebForkEpoch} stateVersion := Phase0Version @@ -497,8 +532,8 @@ func toBytes4(in []byte) (ret [4]byte) { return } -func configForkSchedule(b *BeaconChainConfig) map[[VersionLength]byte]uint64 { - fvs := map[[VersionLength]byte]uint64{} +func configForkSchedule(b *BeaconChainConfig) map[libcommon.Bytes4]uint64 { + fvs := map[libcommon.Bytes4]uint64{} fvs[utils.Uint32ToBytes4(b.GenesisForkVersion)] = 0 fvs[utils.Uint32ToBytes4(b.AltairForkVersion)] = b.AltairForkEpoch fvs[utils.Uint32ToBytes4(b.BellatrixForkVersion)] = b.BellatrixForkEpoch @@ -507,8 +542,8 @@ func configForkSchedule(b *BeaconChainConfig) map[[VersionLength]byte]uint64 { return fvs } -func configForkNames(b *BeaconChainConfig) map[[VersionLength]byte]string { - fvn := map[[VersionLength]byte]string{} +func configForkNames(b *BeaconChainConfig) map[libcommon.Bytes4]string { + fvn := map[libcommon.Bytes4]string{} fvn[utils.Uint32ToBytes4(b.GenesisForkVersion)] = "phase0" fvn[utils.Uint32ToBytes4(b.AltairForkVersion)] = "altair" fvn[utils.Uint32ToBytes4(b.BellatrixForkVersion)] = "bellatrix" @@ -809,14 +844,17 @@ func gnosisConfig() BeaconChainConfig { cfg.AltairForkVersion = 0x01000064 cfg.BellatrixForkEpoch = 385536 cfg.BellatrixForkVersion = 0x02000064 + cfg.CapellaForkEpoch = 648704 + cfg.CapellaForkVersion = 0x03000064 cfg.TerminalTotalDifficulty = "8626000000000000000000058750000000000000000000" cfg.DepositContractAddress = "0x0B98057eA310F4d31F2a452B414647007d1645d9" cfg.BaseRewardFactor = 25 cfg.SlotsPerEpoch = 16 cfg.EpochsPerSyncCommitteePeriod = 512 - cfg.CapellaForkEpoch = 648704 - cfg.CapellaForkVersion = 0x03000064 cfg.DenebForkEpoch = math.MaxUint64 + cfg.InactivityScoreRecoveryRate = 16 + cfg.InactivityScoreBias = 4 + cfg.MaxWithdrawalsPerPayload = 8 cfg.InitializeForkSchedule() return cfg } @@ -912,6 +950,38 @@ func (b *BeaconChainConfig) CurrentEpochAttestationsLength() uint64 { return b.SlotsPerEpoch * b.MaxAttestations } +func (b *BeaconChainConfig) GetForkVersionByVersion(v StateVersion) uint32 { + switch v { + case Phase0Version: + return b.GenesisForkVersion + case AltairVersion: + return b.AltairForkVersion + case BellatrixVersion: + return b.BellatrixForkVersion + case CapellaVersion: + return b.CapellaForkVersion + case DenebVersion: + return b.DenebForkVersion + } + panic("invalid version") +} + +func (b *BeaconChainConfig) GetForkEpochByVersion(v StateVersion) uint64 { + switch v { + case Phase0Version: + return 0 + case AltairVersion: + return b.AltairForkEpoch + case BellatrixVersion: + return b.BellatrixForkEpoch + case CapellaVersion: + return b.CapellaForkEpoch + case DenebVersion: + return b.DenebForkEpoch + } + panic("invalid version") +} + func GetConfigsByNetwork(net NetworkType) (*GenesisConfig, *NetworkConfig, *BeaconChainConfig) { networkConfig := NetworkConfigs[net] genesisConfig := GenesisConfigs[net] @@ -940,6 +1010,7 @@ func GetConfigsByNetworkName(net string) (*GenesisConfig, *NetworkConfig, *Beaco return nil, nil, nil, MainnetNetwork, fmt.Errorf("chain not found") } } + func GetCheckpointSyncEndpoint(net NetworkType) string { checkpoints, ok := CheckpointSyncEndpoints[net] if !ok { @@ -974,3 +1045,12 @@ func EmbeddedSupported(id uint64) bool { func EmbeddedEnabledByDefault(id uint64) bool { return id == 1 || id == 5 || id == 11155111 } + +func SupportBackfilling(networkId uint64) bool { + return networkId == uint64(MainnetNetwork) || networkId == uint64(SepoliaNetwork) +} + +func EpochToPaths(slot uint64, config *BeaconChainConfig, suffix string) (string, string) { + folderPath := path.Clean(fmt.Sprintf("%d", slot/SubDivisionFolderSize)) + return folderPath, path.Clean(fmt.Sprintf("%s/%d.%s.sz", folderPath, slot, suffix)) +} diff --git a/cl/clparams/initial_state/goerli.state.ssz b/cl/clparams/initial_state/goerli.state.ssz deleted file mode 100644 index 3f0386727f3..00000000000 Binary files a/cl/clparams/initial_state/goerli.state.ssz and /dev/null differ diff --git a/cl/clparams/initial_state/initial_state.go b/cl/clparams/initial_state/initial_state.go index 4ceaf6de9f9..3f15c23dc1f 100644 --- a/cl/clparams/initial_state/initial_state.go +++ b/cl/clparams/initial_state/initial_state.go @@ -2,7 +2,6 @@ package initial_state import ( _ "embed" - "fmt" "github.com/ledgerwatch/erigon/cl/phase1/core/state" @@ -15,9 +14,6 @@ var mainnetStateSSZ []byte //go:embed sepolia.state.ssz var sepoliaStateSSZ []byte -//go:embed goerli.state.ssz -var goerliStateSSZ []byte - // Return genesis state func GetGenesisState(network clparams.NetworkType) (*state.CachingBeaconState, error) { _, _, config := clparams.GetConfigsByNetwork(network) @@ -28,16 +24,23 @@ func GetGenesisState(network clparams.NetworkType) (*state.CachingBeaconState, e if err := returnState.DecodeSSZ(mainnetStateSSZ, int(clparams.Phase0Version)); err != nil { return nil, err } - case clparams.GoerliNetwork: - if err := returnState.DecodeSSZ(goerliStateSSZ, int(clparams.Phase0Version)); err != nil { - return nil, err - } case clparams.SepoliaNetwork: if err := returnState.DecodeSSZ(sepoliaStateSSZ, int(clparams.Phase0Version)); err != nil { return nil, err } - default: - return nil, fmt.Errorf("unsupported network for genesis fetching") + case clparams.GoerliNetwork: + return nil, nil } return returnState, nil } + +func IsGenesisStateSupported(network clparams.NetworkType) bool { + switch network { + case clparams.MainnetNetwork: + return true + case clparams.SepoliaNetwork: + return true + default: + return false + } +} diff --git a/cl/clparams/initial_state/initial_state_test.go b/cl/clparams/initial_state/initial_state_test.go index e6ccef9c792..46714b2a305 100644 --- a/cl/clparams/initial_state/initial_state_test.go +++ b/cl/clparams/initial_state/initial_state_test.go @@ -17,14 +17,6 @@ func TestMainnet(t *testing.T) { assert.Equal(t, libcommon.Hash(root), libcommon.HexToHash("7e76880eb67bbdc86250aa578958e9d0675e64e714337855204fb5abaaf82c2b")) } -func TestGoerli(t *testing.T) { - state, err := initial_state.GetGenesisState(clparams.GoerliNetwork) - assert.NoError(t, err) - root, err := state.HashSSZ() - assert.NoError(t, err) - assert.Equal(t, libcommon.Hash(root), libcommon.HexToHash("895390e92edc03df7096e9f51e51896e8dbe6e7e838180dadbfd869fdd77a659")) -} - func TestSepolia(t *testing.T) { state, err := initial_state.GetGenesisState(clparams.SepoliaNetwork) assert.NoError(t, err) diff --git a/cl/clparams/version.go b/cl/clparams/version.go index 6a1e33b74c8..72884406fdd 100644 --- a/cl/clparams/version.go +++ b/cl/clparams/version.go @@ -27,3 +27,20 @@ func StringToClVersion(s string) StateVersion { panic("unsupported fork version: " + s) } } + +func ClVersionToString(s StateVersion) string { + switch s { + case Phase0Version: + return "phase0" + case AltairVersion: + return "altair" + case BellatrixVersion: + return "bellatrix" + case CapellaVersion: + return "capella" + case DenebVersion: + return "deneb" + default: + panic("unsupported fork version") + } +} diff --git a/cl/clstages/clstages.go b/cl/clstages/clstages.go new file mode 100644 index 00000000000..543de4b038d --- /dev/null +++ b/cl/clstages/clstages.go @@ -0,0 +1,64 @@ +package clstages + +import ( + "context" + "errors" + "fmt" + "time" + + "github.com/ledgerwatch/log/v3" +) + +type StageGraph[CONFIG any, ARGUMENTS any] struct { + ArgsFunc func(ctx context.Context, cfg CONFIG) (args ARGUMENTS) + Stages map[string]Stage[CONFIG, ARGUMENTS] +} + +type Stage[CONFIG any, ARGUMENTS any] struct { + Description string + ActionFunc func(ctx context.Context, logger log.Logger, cfg CONFIG, args ARGUMENTS) error + TransitionFunc func(cfg CONFIG, args ARGUMENTS, err error) string +} + +func (s *StageGraph[CONFIG, ARGUMENTS]) StartWithStage(ctx context.Context, startStage string, logger log.Logger, cfg CONFIG) error { + stageName := startStage + args := s.ArgsFunc(ctx, cfg) + for { + currentStage, ok := s.Stages[stageName] + if !ok { + return fmt.Errorf("attempted to transition to unknown stage: %s", stageName) + } + lg := logger.New("stage", stageName) + errch := make(chan error) + start := time.Now() + go func() { + sctx, cn := context.WithCancel(ctx) + defer cn() + // we run this is a goroutine so that the process can exit in the middle of a stage + // since caplin is designed to always be able to recover regardless of db state, this should be safe + select { + case errch <- currentStage.ActionFunc(sctx, lg, cfg, args): + case <-sctx.Done(): + errch <- sctx.Err() + } + }() + err := <-errch + dur := time.Since(start) + if err != nil { + if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) { + lg.Debug("error executing clstage", "err", err) + } else { + lg.Warn("error executing clstage", "err", err) + } + } + select { + case <-ctx.Done(): + return ctx.Err() + default: + args = s.ArgsFunc(ctx, cfg) + nextStage := currentStage.TransitionFunc(cfg, args, err) + logger.Debug("clstage finish", "stage", stageName, "in", dur, "next", nextStage) + stageName = nextStage + } + } +} diff --git a/cl/cltypes/aggregate.go b/cl/cltypes/aggregate.go index 6f8d724a0cd..a21ade55f6a 100644 --- a/cl/cltypes/aggregate.go +++ b/cl/cltypes/aggregate.go @@ -1,6 +1,7 @@ package cltypes import ( + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/merkle_tree" ssz2 "github.com/ledgerwatch/erigon/cl/ssz" @@ -13,13 +14,17 @@ import ( type AggregateAndProof struct { AggregatorIndex uint64 Aggregate *solid.Attestation - SelectionProof [96]byte + SelectionProof libcommon.Bytes96 } func (a *AggregateAndProof) EncodeSSZ(dst []byte) ([]byte, error) { return ssz2.MarshalSSZ(dst, a.AggregatorIndex, a.Aggregate, a.SelectionProof[:]) } +func (a *AggregateAndProof) Static() bool { + return false +} + func (a *AggregateAndProof) DecodeSSZ(buf []byte, version int) error { a.Aggregate = new(solid.Attestation) return ssz2.UnmarshalSSZ(buf, version, &a.AggregatorIndex, a.Aggregate, a.SelectionProof[:]) @@ -35,7 +40,7 @@ func (a *AggregateAndProof) HashSSZ() ([32]byte, error) { type SignedAggregateAndProof struct { Message *AggregateAndProof - Signature [96]byte + Signature libcommon.Bytes96 } func (a *SignedAggregateAndProof) EncodeSSZ(dst []byte) ([]byte, error) { @@ -51,13 +56,17 @@ func (a *SignedAggregateAndProof) EncodingSizeSSZ() int { return 100 + a.Message.EncodingSizeSSZ() } +func (a *SignedAggregateAndProof) HashSSZ() ([32]byte, error) { + return merkle_tree.HashTreeRoot(a.Message, a.Signature[:]) +} + /* * SyncAggregate, Determines successfull committee, bits shows active participants, * and signature is the aggregate BLS signature of the committee. */ type SyncAggregate struct { - SyncCommiteeBits [64]byte - SyncCommiteeSignature [96]byte + SyncCommiteeBits libcommon.Bytes64 `json:"sync_commitee_bits"` + SyncCommiteeSignature libcommon.Bytes96 `json:"signature"` } // return sum of the committee bits diff --git a/cl/cltypes/beacon_block.go b/cl/cltypes/beacon_block.go index 344cfec5c40..8125342241c 100644 --- a/cl/cltypes/beacon_block.go +++ b/cl/cltypes/beacon_block.go @@ -23,50 +23,82 @@ const ( ) type SignedBeaconBlock struct { - Signature [96]byte - Block *BeaconBlock + Signature libcommon.Bytes96 `json:"signature"` + Block *BeaconBlock `json:"message"` } type BeaconBlock struct { - Slot uint64 - ProposerIndex uint64 - ParentRoot libcommon.Hash - StateRoot libcommon.Hash - Body *BeaconBody + Slot uint64 `json:"slot"` + ProposerIndex uint64 `json:"proposer_index"` + ParentRoot libcommon.Hash `json:"parent_root"` + StateRoot libcommon.Hash `json:"state_root"` + Body *BeaconBody `json:"body"` } type BeaconBody struct { // A byte array used for randomness in the beacon chain - RandaoReveal [96]byte + RandaoReveal libcommon.Bytes96 `json:"randao_reveal"` // Data related to the Ethereum 1.0 chain - Eth1Data *Eth1Data + Eth1Data *Eth1Data `json:"eth1_data"` // A byte array used to customize validators' behavior - Graffiti [32]byte + Graffiti libcommon.Hash `json:"graffit"` // A list of slashing events for validators who included invalid blocks in the chain - ProposerSlashings *solid.ListSSZ[*ProposerSlashing] + ProposerSlashings *solid.ListSSZ[*ProposerSlashing] `json:"proposer_slashings"` // A list of slashing events for validators who included invalid attestations in the chain - AttesterSlashings *solid.ListSSZ[*AttesterSlashing] + AttesterSlashings *solid.ListSSZ[*AttesterSlashing] `json:"attester_slashings"` // A list of attestations included in the block - Attestations *solid.ListSSZ[*solid.Attestation] + Attestations *solid.ListSSZ[*solid.Attestation] `json:"attestations"` // A list of deposits made to the Ethereum 1.0 chain - Deposits *solid.ListSSZ[*Deposit] + Deposits *solid.ListSSZ[*Deposit] `json:"deposits"` // A list of validators who have voluntarily exited the beacon chain - VoluntaryExits *solid.ListSSZ[*SignedVoluntaryExit] + VoluntaryExits *solid.ListSSZ[*SignedVoluntaryExit] `json:"voluntary_exits"` // A summary of the current state of the beacon chain - SyncAggregate *SyncAggregate + SyncAggregate *SyncAggregate `json:"sync_aggregate,omitempty"` // Data related to crosslink records and executing operations on the Ethereum 2.0 chain - ExecutionPayload *Eth1Block + ExecutionPayload *Eth1Block `json:"execution_payload,omitempty"` // Withdrawals Diffs for Execution Layer - ExecutionChanges *solid.ListSSZ[*SignedBLSToExecutionChange] + ExecutionChanges *solid.ListSSZ[*SignedBLSToExecutionChange] `json:"execution_changes,omitempty"` // The commitments for beacon chain blobs // With a max of 4 per block - BlobKzgCommitments *solid.ListSSZ[*KZGCommitment] + BlobKzgCommitments *solid.ListSSZ[*KZGCommitment] `json:"blob_kzg_commitments,omitempty"` // The version of the beacon chain - Version clparams.StateVersion + Version clparams.StateVersion `json:"-"` + beaconCfg *clparams.BeaconChainConfig } // Getters +func NewSignedBeaconBlock(beaconCfg *clparams.BeaconChainConfig) *SignedBeaconBlock { + return &SignedBeaconBlock{Block: NewBeaconBlock(beaconCfg)} +} + +func (s *SignedBeaconBlock) SignedBeaconBlockHeader() *SignedBeaconBlockHeader { + bodyRoot, err := s.Block.Body.HashSSZ() + if err != nil { + panic(err) + } + return &SignedBeaconBlockHeader{ + Signature: s.Signature, + Header: &BeaconBlockHeader{ + Slot: s.Block.Slot, + ProposerIndex: s.Block.ProposerIndex, + ParentRoot: s.Block.ParentRoot, + Root: s.Block.StateRoot, + BodyRoot: bodyRoot, + }, + } +} + +func NewBeaconBlock(beaconCfg *clparams.BeaconChainConfig) *BeaconBlock { + return &BeaconBlock{Body: NewBeaconBody(beaconCfg)} +} + +func NewBeaconBody(beaconCfg *clparams.BeaconChainConfig) *BeaconBody { + return &BeaconBody{ + beaconCfg: beaconCfg, + } +} + // Version returns beacon block version. func (b *SignedBeaconBlock) Version() clparams.StateVersion { return b.Block.Body.Version @@ -78,7 +110,7 @@ func (b *BeaconBlock) Version() clparams.StateVersion { } func (b *BeaconBody) EncodeSSZ(dst []byte) ([]byte, error) { - return ssz2.MarshalSSZ(dst, b.getSchema()...) + return ssz2.MarshalSSZ(dst, b.getSchema(false)...) } func (b *BeaconBody) EncodingSizeSSZ() (size int) { @@ -90,7 +122,7 @@ func (b *BeaconBody) EncodingSizeSSZ() (size int) { b.SyncAggregate = &SyncAggregate{} } if b.ExecutionPayload == nil { - b.ExecutionPayload = &Eth1Block{} + b.ExecutionPayload = NewEth1Block(b.Version, b.beaconCfg) } if b.ProposerSlashings == nil { b.ProposerSlashings = solid.NewStaticListSSZ[*ProposerSlashing](MaxProposerSlashings, 416) @@ -108,7 +140,7 @@ func (b *BeaconBody) EncodingSizeSSZ() (size int) { b.VoluntaryExits = solid.NewStaticListSSZ[*SignedVoluntaryExit](MaxVoluntaryExits, 112) } if b.ExecutionPayload == nil { - b.ExecutionPayload = new(Eth1Block) + b.ExecutionPayload = NewEth1Block(b.Version, b.beaconCfg) } if b.ExecutionChanges == nil { b.ExecutionChanges = solid.NewStaticListSSZ[*SignedBLSToExecutionChange](MaxExecutionChanges, 172) @@ -142,20 +174,22 @@ func (b *BeaconBody) DecodeSSZ(buf []byte, version int) error { return fmt.Errorf("[BeaconBody] err: %s", ssz.ErrLowBufferSize) } - err := ssz2.UnmarshalSSZ(buf, version, b.getSchema()...) + b.ExecutionPayload = NewEth1Block(b.Version, b.beaconCfg) + + err := ssz2.UnmarshalSSZ(buf, version, b.getSchema(false)...) return err } func (b *BeaconBody) HashSSZ() ([32]byte, error) { - return merkle_tree.HashTreeRoot(b.getSchema()...) + return merkle_tree.HashTreeRoot(b.getSchema(false)...) } -func (b *BeaconBody) getSchema() []interface{} { +func (b *BeaconBody) getSchema(storage bool) []interface{} { s := []interface{}{b.RandaoReveal[:], b.Eth1Data, b.Graffiti[:], b.ProposerSlashings, b.AttesterSlashings, b.Attestations, b.Deposits, b.VoluntaryExits} if b.Version >= clparams.AltairVersion { s = append(s, b.SyncAggregate) } - if b.Version >= clparams.BellatrixVersion { + if b.Version >= clparams.BellatrixVersion && !storage { s = append(s, b.ExecutionPayload) } if b.Version >= clparams.CapellaVersion { @@ -173,13 +207,12 @@ func (b *BeaconBlock) EncodeSSZ(buf []byte) (dst []byte, err error) { func (b *BeaconBlock) EncodingSizeSSZ() int { if b.Body == nil { - b.Body = new(BeaconBody) + return 80 } return 80 + b.Body.EncodingSizeSSZ() } func (b *BeaconBlock) DecodeSSZ(buf []byte, version int) error { - b.Body = new(BeaconBody) return ssz2.UnmarshalSSZ(buf, version, &b.Slot, &b.ProposerIndex, b.ParentRoot[:], b.StateRoot[:], b.Body) } @@ -193,13 +226,12 @@ func (b *SignedBeaconBlock) EncodeSSZ(buf []byte) ([]byte, error) { func (b *SignedBeaconBlock) EncodingSizeSSZ() int { if b.Block == nil { - b.Block = new(BeaconBlock) + return 100 } return 100 + b.Block.EncodingSizeSSZ() } func (b *SignedBeaconBlock) DecodeSSZ(buf []byte, s int) error { - b.Block = new(BeaconBlock) return ssz2.UnmarshalSSZ(buf, s, b.Block, b.Signature[:]) } diff --git a/cl/cltypes/beacon_block_test.go b/cl/cltypes/beacon_block_test.go index a07cd560e31..e032454800e 100644 --- a/cl/cltypes/beacon_block_test.go +++ b/cl/cltypes/beacon_block_test.go @@ -43,10 +43,11 @@ func TestBeaconBody(t *testing.T) { Deposits: deposits, VoluntaryExits: voluntaryExits, SyncAggregate: syncAggregate, - ExecutionPayload: NewEth1BlockFromHeaderAndBody(block.Header(), block.RawBody()), + ExecutionPayload: NewEth1BlockFromHeaderAndBody(block.Header(), block.RawBody(), &clparams.MainnetBeaconConfig), ExecutionChanges: executionChanges, BlobKzgCommitments: blobKzgCommitments, Version: version, + beaconCfg: &clparams.MainnetBeaconConfig, } // Test EncodeSSZ and DecodeSSZ diff --git a/cl/cltypes/beacon_header.go b/cl/cltypes/beacon_header.go index bef37a913b7..94064339d23 100644 --- a/cl/cltypes/beacon_header.go +++ b/cl/cltypes/beacon_header.go @@ -13,11 +13,11 @@ import ( * It contains the hash of the block body, and state root data. */ type BeaconBlockHeader struct { - Slot uint64 - ProposerIndex uint64 - ParentRoot libcommon.Hash - Root libcommon.Hash - BodyRoot libcommon.Hash + Slot uint64 `json:"slot"` + ProposerIndex uint64 `json:"proposer_index"` + ParentRoot libcommon.Hash `json:"parent_root"` + Root libcommon.Hash `json:"state_root"` + BodyRoot libcommon.Hash `json:"body_root"` } func (b *BeaconBlockHeader) Copy() *BeaconBlockHeader { @@ -49,8 +49,8 @@ func (*BeaconBlockHeader) Static() bool { * SignedBeaconBlockHeader is a beacon block header + validator signature. */ type SignedBeaconBlockHeader struct { - Header *BeaconBlockHeader - Signature [96]byte + Header *BeaconBlockHeader `json:"message"` + Signature libcommon.Bytes96 `json:"signature"` } func (b *SignedBeaconBlockHeader) Static() bool { diff --git a/cl/cltypes/beacon_kzgcommitment.go b/cl/cltypes/beacon_kzgcommitment.go index 7b42d0b3b17..f6a5d5f38f1 100644 --- a/cl/cltypes/beacon_kzgcommitment.go +++ b/cl/cltypes/beacon_kzgcommitment.go @@ -1,7 +1,10 @@ package cltypes import ( + "encoding/json" + gokzg4844 "github.com/crate-crypto/go-kzg-4844" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/merkle_tree" ssz2 "github.com/ledgerwatch/erigon/cl/ssz" ) @@ -16,6 +19,14 @@ const BYTES_PER_BLOB = uint64(BYTES_PER_FIELD_ELEMENT * FIELD_ELEMENTS_PER_BLOB) type KZGCommitment gokzg4844.KZGCommitment +func (b KZGCommitment) MarshalJSON() ([]byte, error) { + return json.Marshal(libcommon.Bytes48(b)) +} + +func (b *KZGCommitment) UnmarshalJSON(data []byte) error { + return json.Unmarshal(data, (*libcommon.Bytes48)(b)) +} + func (b *KZGCommitment) Copy() *KZGCommitment { copy := *b return © diff --git a/cl/cltypes/bls_to_execution_change.go b/cl/cltypes/bls_to_execution_change.go index 7ecb2ce4230..676154f15fc 100644 --- a/cl/cltypes/bls_to_execution_change.go +++ b/cl/cltypes/bls_to_execution_change.go @@ -11,9 +11,9 @@ import ( // Change to EL engine type BLSToExecutionChange struct { - ValidatorIndex uint64 - From [48]byte - To libcommon.Address + ValidatorIndex uint64 `json:"validator_index"` + From libcommon.Bytes48 `json:"from"` + To libcommon.Address `json:"to"` } func (b *BLSToExecutionChange) EncodeSSZ(buf []byte) ([]byte, error) { @@ -43,8 +43,8 @@ func (*BLSToExecutionChange) Static() bool { } type SignedBLSToExecutionChange struct { - Message *BLSToExecutionChange - Signature [96]byte + Message *BLSToExecutionChange `json:"message"` + Signature libcommon.Bytes96 `json:"signature"` } func (s *SignedBLSToExecutionChange) EncodeSSZ(buf []byte) ([]byte, error) { diff --git a/cl/cltypes/bls_to_execution_test.go b/cl/cltypes/bls_to_execution_test.go index c5065e85e8f..2aca0a33956 100644 --- a/cl/cltypes/bls_to_execution_test.go +++ b/cl/cltypes/bls_to_execution_test.go @@ -1,11 +1,11 @@ package cltypes_test import ( + "github.com/ledgerwatch/erigon-lib/common" "testing" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" "github.com/stretchr/testify/require" ) diff --git a/cl/cltypes/clone.go b/cl/cltypes/clone.go index 9fb73cc4b95..4b6da3b71b9 100644 --- a/cl/cltypes/clone.go +++ b/cl/cltypes/clone.go @@ -4,20 +4,20 @@ import ( "github.com/ledgerwatch/erigon-lib/types/clonable" ) -func (*SignedBeaconBlock) Clone() clonable.Clonable { - return &SignedBeaconBlock{} +func (s *SignedBeaconBlock) Clone() clonable.Clonable { + return NewSignedBeaconBlock(s.Block.Body.beaconCfg) } func (*IndexedAttestation) Clone() clonable.Clonable { return &IndexedAttestation{} } -func (*BeaconBody) Clone() clonable.Clonable { - return &BeaconBody{} +func (b *BeaconBody) Clone() clonable.Clonable { + return NewBeaconBody(b.beaconCfg) } -func (*Eth1Block) Clone() clonable.Clonable { - return &Eth1Block{} +func (e *Eth1Block) Clone() clonable.Clonable { + return NewEth1Block(e.version, e.beaconCfg) } func (*Eth1Data) Clone() clonable.Clonable { @@ -72,8 +72,8 @@ func (*Deposit) Clone() clonable.Clonable { return &Deposit{} } -func (*BeaconBlock) Clone() clonable.Clonable { - return &BeaconBlock{} +func (b *BeaconBlock) Clone() clonable.Clonable { + return NewBeaconBlock(b.Body.beaconCfg) } func (*AggregateAndProof) Clone() clonable.Clonable { @@ -103,3 +103,7 @@ func (*KZGCommitment) Clone() clonable.Clonable { func (*Eth1Header) Clone() clonable.Clonable { return &Eth1Header{} } + +func (*Withdrawal) Clone() clonable.Clonable { + return &Withdrawal{} +} diff --git a/cl/cltypes/eth1_block.go b/cl/cltypes/eth1_block.go index 253ec50949a..3d92938f7ee 100644 --- a/cl/cltypes/eth1_block.go +++ b/cl/cltypes/eth1_block.go @@ -16,35 +16,36 @@ import ( // ETH1Block represents a block structure CL-side. type Eth1Block struct { - ParentHash libcommon.Hash - FeeRecipient libcommon.Address - StateRoot libcommon.Hash - ReceiptsRoot libcommon.Hash - LogsBloom types.Bloom - PrevRandao libcommon.Hash - BlockNumber uint64 - GasLimit uint64 - GasUsed uint64 - Time uint64 - Extra *solid.ExtraData - BaseFeePerGas [32]byte + ParentHash libcommon.Hash `json:"parent_hash"` + FeeRecipient libcommon.Address `json:"fee_recipient"` + StateRoot libcommon.Hash `json:"state_root"` + ReceiptsRoot libcommon.Hash `json:"receipts_root"` + LogsBloom types.Bloom `json:"logs_bloom"` + PrevRandao libcommon.Hash `json:"prev_randao"` + BlockNumber uint64 `json:"block_number"` + GasLimit uint64 `json:"gas_limit"` + GasUsed uint64 `json:"gas_used"` + Time uint64 `json:"timestamp"` + Extra *solid.ExtraData `json:"extra_data"` + BaseFeePerGas libcommon.Hash `json:"base_fee_per_gas"` // Extra fields - BlockHash libcommon.Hash - Transactions *solid.TransactionsSSZ - Withdrawals *solid.ListSSZ[*types.Withdrawal] - BlobGasUsed uint64 - ExcessBlobGas uint64 + BlockHash libcommon.Hash `json:"block_hash"` + Transactions *solid.TransactionsSSZ `json:"transactions"` + Withdrawals *solid.ListSSZ[*Withdrawal] `json:"withdrawals,omitempty"` + BlobGasUsed uint64 `json:"blob_gas_used,omitempty"` + ExcessBlobGas uint64 `json:"excess_blob_gas,omitempty"` // internals - version clparams.StateVersion + version clparams.StateVersion + beaconCfg *clparams.BeaconChainConfig } // NewEth1Block creates a new Eth1Block. -func NewEth1Block(version clparams.StateVersion) *Eth1Block { - return &Eth1Block{version: version} +func NewEth1Block(version clparams.StateVersion, beaconCfg *clparams.BeaconChainConfig) *Eth1Block { + return &Eth1Block{version: version, beaconCfg: beaconCfg} } // NewEth1BlockFromHeaderAndBody with given header/body. -func NewEth1BlockFromHeaderAndBody(header *types.Header, body *types.RawBody) *Eth1Block { +func NewEth1BlockFromHeaderAndBody(header *types.Header, body *types.RawBody, beaconCfg *clparams.BeaconChainConfig) *Eth1Block { baseFeeBytes := header.BaseFee.Bytes() for i, j := 0, len(baseFeeBytes)-1; i < j; i, j = i+1, j-1 { baseFeeBytes[i], baseFeeBytes[j] = baseFeeBytes[j], baseFeeBytes[i] @@ -69,7 +70,8 @@ func NewEth1BlockFromHeaderAndBody(header *types.Header, body *types.RawBody) *E BaseFeePerGas: baseFee32, BlockHash: header.Hash(), Transactions: solid.NewTransactionsSSZFromTransactions(body.Transactions), - Withdrawals: solid.NewStaticListSSZFromList(body.Withdrawals, 16, 44), + Withdrawals: solid.NewStaticListSSZFromList(convertExecutionWithdrawalsToConsensusWithdrawals(body.Withdrawals), int(beaconCfg.MaxWithdrawalsPerPayload), 44), + beaconCfg: beaconCfg, } if header.BlobGasUsed != nil && header.ExcessBlobGas != nil { @@ -92,8 +94,11 @@ func (*Eth1Block) Static() bool { func (b *Eth1Block) PayloadHeader() (*Eth1Header, error) { var err error var transactionsRoot, withdrawalsRoot libcommon.Hash - if transactionsRoot, err = b.Transactions.HashSSZ(); err != nil { - return nil, err + // Corner case: before TTD this is 0, since all fields are 0, a 0 hash check will suffice. + if b.BlockHash != (libcommon.Hash{}) { + if transactionsRoot, err = b.Transactions.HashSSZ(); err != nil { + return nil, err + } } if b.version >= clparams.CapellaVersion { withdrawalsRoot, err = b.Withdrawals.HashSSZ() @@ -143,7 +148,7 @@ func (b *Eth1Block) EncodingSizeSSZ() (size int) { if b.version >= clparams.CapellaVersion { if b.Withdrawals == nil { - b.Withdrawals = solid.NewStaticListSSZ[*types.Withdrawal](16, 44) + b.Withdrawals = solid.NewStaticListSSZ[*Withdrawal](int(b.beaconCfg.MaxWithdrawalsPerPayload), 44) } size += b.Withdrawals.EncodingSizeSSZ() + 4 } @@ -159,7 +164,7 @@ func (b *Eth1Block) EncodingSizeSSZ() (size int) { func (b *Eth1Block) DecodeSSZ(buf []byte, version int) error { b.Extra = solid.NewExtraData() b.Transactions = &solid.TransactionsSSZ{} - b.Withdrawals = solid.NewStaticListSSZ[*types.Withdrawal](16, 44) + b.Withdrawals = solid.NewStaticListSSZ[*Withdrawal](int(b.beaconCfg.MaxWithdrawalsPerPayload), 44) b.version = clparams.StateVersion(version) return ssz2.UnmarshalSSZ(buf, version, b.getSchema()...) } @@ -200,8 +205,8 @@ func (b *Eth1Block) RlpHeader() (*types.Header, error) { withdrawalsHash = new(libcommon.Hash) // extract all withdrawals from itearable list withdrawals := make([]*types.Withdrawal, b.Withdrawals.Len()) - b.Withdrawals.Range(func(idx int, w *types.Withdrawal, _ int) bool { - withdrawals[idx] = w + b.Withdrawals.Range(func(idx int, w *Withdrawal, _ int) bool { + withdrawals[idx] = convertConsensusWithdrawalToExecutionWithdrawal(w) return true }) *withdrawalsHash = types.DeriveSha(types.Withdrawals(withdrawals)) @@ -236,7 +241,7 @@ func (b *Eth1Block) RlpHeader() (*types.Header, error) { // If the header hash does not match the block hash, return an error. if header.Hash() != b.BlockHash { - return nil, fmt.Errorf("cannot derive rlp header: mismatching hash") + return nil, fmt.Errorf("cannot derive rlp header: mismatching hash: %s != %s", header.Hash(), b.BlockHash) } return header, nil @@ -249,8 +254,8 @@ func (b *Eth1Block) Version() clparams.StateVersion { // Body returns the equivalent raw body (only eth1 body section). func (b *Eth1Block) Body() *types.RawBody { withdrawals := make([]*types.Withdrawal, b.Withdrawals.Len()) - b.Withdrawals.Range(func(idx int, w *types.Withdrawal, _ int) bool { - withdrawals[idx] = w + b.Withdrawals.Range(func(idx int, w *Withdrawal, _ int) bool { + withdrawals[idx] = convertConsensusWithdrawalToExecutionWithdrawal(w) return true }) return &types.RawBody{ diff --git a/cl/cltypes/eth1_data.go b/cl/cltypes/eth1_data.go index 165560f8bcd..716105dee89 100644 --- a/cl/cltypes/eth1_data.go +++ b/cl/cltypes/eth1_data.go @@ -6,13 +6,12 @@ import ( "github.com/ledgerwatch/erigon/cl/merkle_tree" ssz2 "github.com/ledgerwatch/erigon/cl/ssz" - "github.com/ledgerwatch/erigon/common" ) type Eth1Data struct { - Root libcommon.Hash - DepositCount uint64 - BlockHash libcommon.Hash + Root libcommon.Hash `json:"deposit_root"` + DepositCount uint64 `json:"deposit_count"` + BlockHash libcommon.Hash `json:"block_hash"` } func (e *Eth1Data) Copy() *Eth1Data { @@ -36,7 +35,7 @@ func (e *Eth1Data) DecodeSSZ(buf []byte, _ int) error { // EncodingSizeSSZ returns the ssz encoded size in bytes for the Eth1Data object func (e *Eth1Data) EncodingSizeSSZ() int { - return common.BlockNumberLength + length.Hash*2 + return 8 + length.Hash*2 } // HashSSZ ssz hashes the Eth1Data object diff --git a/cl/cltypes/eth1_data_test.go b/cl/cltypes/eth1_data_test.go index 9d363e9fb0e..9a15b92f3e6 100644 --- a/cl/cltypes/eth1_data_test.go +++ b/cl/cltypes/eth1_data_test.go @@ -8,7 +8,6 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/common" ) var testEth1Data = &cltypes.Eth1Data{ @@ -17,8 +16,8 @@ var testEth1Data = &cltypes.Eth1Data{ DepositCount: 69, } -var expectedTestEth1DataMarshalled = common.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000245000000000000000000000000000000000000000000000000000000000000000000000000000003") -var expectedTestEth1DataRoot = common.Hex2Bytes("adbafa10f1d6046b59cb720371c5e70ce2c6c3067b0e87985f5cd0899a515886") +var expectedTestEth1DataMarshalled = libcommon.Hex2Bytes("000000000000000000000000000000000000000000000000000000000000000245000000000000000000000000000000000000000000000000000000000000000000000000000003") +var expectedTestEth1DataRoot = libcommon.Hex2Bytes("adbafa10f1d6046b59cb720371c5e70ce2c6c3067b0e87985f5cd0899a515886") func TestEth1DataMarshalUnmarmashal(t *testing.T) { marshalled, _ := testEth1Data.EncodeSSZ(nil) diff --git a/cl/cltypes/eth1_header.go b/cl/cltypes/eth1_header.go index 574cb95d019..32794c2ebdd 100644 --- a/cl/cltypes/eth1_header.go +++ b/cl/cltypes/eth1_header.go @@ -25,7 +25,7 @@ type Eth1Header struct { GasUsed uint64 Time uint64 Extra *solid.ExtraData - BaseFeePerGas [32]byte + BaseFeePerGas libcommon.Hash // Extra fields BlockHash libcommon.Hash TransactionsRoot libcommon.Hash diff --git a/cl/cltypes/fork.go b/cl/cltypes/fork.go index 2699baefa36..9059a927112 100644 --- a/cl/cltypes/fork.go +++ b/cl/cltypes/fork.go @@ -1,15 +1,16 @@ package cltypes import ( + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/merkle_tree" ssz2 "github.com/ledgerwatch/erigon/cl/ssz" ) // Fork data, contains if we were on bellatrix/alteir/phase0 and transition epoch. type Fork struct { - PreviousVersion [4]byte - CurrentVersion [4]byte - Epoch uint64 + PreviousVersion libcommon.Bytes4 `json:"previous_version"` + CurrentVersion libcommon.Bytes4 `json:"current_version"` + Epoch uint64 `json:"epoch"` } func (*Fork) Static() bool { diff --git a/cl/cltypes/historical_summary.go b/cl/cltypes/historical_summary.go index d67e90a98b3..f4abf293f8e 100644 --- a/cl/cltypes/historical_summary.go +++ b/cl/cltypes/historical_summary.go @@ -9,8 +9,8 @@ import ( ) type HistoricalSummary struct { - BlockSummaryRoot libcommon.Hash - StateSummaryRoot libcommon.Hash + BlockSummaryRoot libcommon.Hash `json:"block_summary_root"` + StateSummaryRoot libcommon.Hash `json:"state_summary_root"` } func (h *HistoricalSummary) EncodeSSZ(buf []byte) ([]byte, error) { diff --git a/cl/cltypes/historical_summary_test.go b/cl/cltypes/historical_summary_test.go index f99b5bd9132..89a716c11a2 100644 --- a/cl/cltypes/historical_summary_test.go +++ b/cl/cltypes/historical_summary_test.go @@ -1,11 +1,11 @@ package cltypes_test import ( + "github.com/ledgerwatch/erigon-lib/common" "testing" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" "github.com/stretchr/testify/require" ) diff --git a/cl/cltypes/indexed_attestation.go b/cl/cltypes/indexed_attestation.go index e0905168577..4173429d8a0 100644 --- a/cl/cltypes/indexed_attestation.go +++ b/cl/cltypes/indexed_attestation.go @@ -1,6 +1,7 @@ package cltypes import ( + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/merkle_tree" ssz2 "github.com/ledgerwatch/erigon/cl/ssz" @@ -10,9 +11,9 @@ import ( * IndexedAttestation are attestantions sets to prove that someone misbehaved. */ type IndexedAttestation struct { - AttestingIndices solid.Uint64ListSSZ - Data solid.AttestationData - Signature [96]byte + AttestingIndices *solid.RawUint64List `json:"attesting_indicies"` + Data solid.AttestationData `json:"data"` + Signature libcommon.Bytes96 `json:"signature"` } func (i *IndexedAttestation) Static() bool { @@ -26,7 +27,7 @@ func (i *IndexedAttestation) EncodeSSZ(buf []byte) (dst []byte, err error) { // DecodeSSZ ssz unmarshals the IndexedAttestation object func (i *IndexedAttestation) DecodeSSZ(buf []byte, version int) error { i.Data = solid.NewAttestationData() - i.AttestingIndices = solid.NewUint64ListSSZ(2048) + i.AttestingIndices = solid.NewRawUint64List(2048, nil) return ssz2.UnmarshalSSZ(buf, version, i.AttestingIndices, i.Data, i.Signature[:]) } diff --git a/cl/cltypes/justification_bits.go b/cl/cltypes/justification_bits.go index 060844a6693..61b337054ae 100644 --- a/cl/cltypes/justification_bits.go +++ b/cl/cltypes/justification_bits.go @@ -1,6 +1,9 @@ package cltypes import ( + "encoding/json" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon/cl/utils" ) @@ -9,6 +12,9 @@ const JustificationBitsLength = 4 type JustificationBits [JustificationBitsLength]bool // Bit vector of size 4 +func (j JustificationBits) Clone() clonable.Clonable { + return JustificationBits{} +} func (j JustificationBits) Byte() (out byte) { for i, bit := range j { if !bit { @@ -27,19 +33,15 @@ func (j *JustificationBits) DecodeSSZ(b []byte, _ int) error { return nil } -func (j *JustificationBits) EncodeSSZ(buf []byte) ([]byte, error) { +func (j JustificationBits) EncodeSSZ(buf []byte) ([]byte, error) { return append(buf, j.Byte()), nil } -func (j *JustificationBits) Clone() clonable.Clonable { - return &JustificationBits{} -} - -func (*JustificationBits) EncodingSizeSSZ() int { +func (JustificationBits) EncodingSizeSSZ() int { return 1 } -func (*JustificationBits) Static() bool { +func (JustificationBits) Static() bool { return true } @@ -62,3 +64,19 @@ func (j JustificationBits) CheckRange(start int, end int) bool { func (j JustificationBits) Copy() JustificationBits { return JustificationBits{j[0], j[1], j[2], j[3]} } + +func (j JustificationBits) MarshalJSON() ([]byte, error) { + enc, err := j.EncodeSSZ(nil) + if err != nil { + return nil, err + } + return json.Marshal(hexutility.Bytes(enc)) +} + +func (j *JustificationBits) UnmarshalJSON(input []byte) error { + var hex hexutility.Bytes + if err := json.Unmarshal(input, &hex); err != nil { + return err + } + return j.DecodeSSZ(hex, 0) +} diff --git a/cl/cltypes/network.go b/cl/cltypes/network.go index 45f51acfaee..af8d1a3ee26 100644 --- a/cl/cltypes/network.go +++ b/cl/cltypes/network.go @@ -5,7 +5,6 @@ import ( "github.com/ledgerwatch/erigon-lib/types/ssz" ssz2 "github.com/ledgerwatch/erigon/cl/ssz" - "github.com/ledgerwatch/erigon/common" ) type Metadata struct { @@ -22,7 +21,7 @@ func (m *Metadata) EncodeSSZ(buf []byte) ([]byte, error) { } func (m *Metadata) EncodingSizeSSZ() (ret int) { - ret = common.BlockNumberLength * 2 + ret = 8 * 2 if m.Syncnets != nil { ret += 8 } @@ -50,7 +49,7 @@ func (p *Ping) EncodeSSZ(buf []byte) ([]byte, error) { } func (p *Ping) EncodingSizeSSZ() int { - return common.BlockNumberLength + return 8 } func (p *Ping) DecodeSSZ(buf []byte, _ int) error { @@ -76,7 +75,7 @@ func (b *BeaconBlocksByRangeRequest) DecodeSSZ(buf []byte, v int) error { } func (b *BeaconBlocksByRangeRequest) EncodingSizeSSZ() int { - return 3 * common.BlockNumberLength + return 3 * 8 } func (*BeaconBlocksByRangeRequest) Clone() clonable.Clonable { diff --git a/cl/cltypes/slashings.go b/cl/cltypes/slashings.go index 8a74b071a09..f849b7b50ee 100644 --- a/cl/cltypes/slashings.go +++ b/cl/cltypes/slashings.go @@ -6,8 +6,8 @@ import ( ) type ProposerSlashing struct { - Header1 *SignedBeaconBlockHeader - Header2 *SignedBeaconBlockHeader + Header1 *SignedBeaconBlockHeader `json:"signed_header_1"` + Header2 *SignedBeaconBlockHeader `json:"signed_header_2"` } func (p *ProposerSlashing) EncodeSSZ(dst []byte) ([]byte, error) { @@ -29,8 +29,8 @@ func (p *ProposerSlashing) HashSSZ() ([32]byte, error) { } type AttesterSlashing struct { - Attestation_1 *IndexedAttestation - Attestation_2 *IndexedAttestation + Attestation_1 *IndexedAttestation `json:"attestation_1"` + Attestation_2 *IndexedAttestation `json:"attestation_2"` } func (a *AttesterSlashing) EncodeSSZ(dst []byte) ([]byte, error) { diff --git a/cl/cltypes/slashings_test.go b/cl/cltypes/slashings_test.go index 51e355844b8..3f13f34b8a2 100644 --- a/cl/cltypes/slashings_test.go +++ b/cl/cltypes/slashings_test.go @@ -48,12 +48,12 @@ func TestProposerSlashing(t *testing.T) { func TestAttesterSlashing(t *testing.T) { // Create sample data attestation1 := &IndexedAttestation{ - AttestingIndices: solid.NewUint64ListSSZ(9192), + AttestingIndices: solid.NewRawUint64List(9192, nil), Data: solid.NewAttestationData(), } // Create an IndexedAttestation object attestation2 := &IndexedAttestation{ - AttestingIndices: solid.NewUint64ListSSZ(9192), + AttestingIndices: solid.NewRawUint64List(9192, nil), Data: solid.NewAttestationData(), } // Create AttesterSlashing diff --git a/cl/cltypes/solid/attestation.go b/cl/cltypes/solid/attestation.go index baf2354b3bd..68e9e131e39 100644 --- a/cl/cltypes/solid/attestation.go +++ b/cl/cltypes/solid/attestation.go @@ -1,18 +1,21 @@ package solid import ( + "encoding/json" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon-lib/types/ssz" "github.com/ledgerwatch/erigon/cl/merkle_tree" - "github.com/ledgerwatch/erigon/common" ) const ( // agg bits offset: 4 bytes // attestationData: 128 // Signature: 96 bytes - attestationStaticBufferSize = 4 + attestationDataBufferSize + 96 + attestationStaticBufferSize = 4 + AttestationDataBufferSize + 96 // offset is usually always the same aggregationBitsOffset = 228 @@ -44,6 +47,33 @@ func NewAttestionFromParameters( return a } +func (a Attestation) MarshalJSON() ([]byte, error) { + return json.Marshal(struct { + AggregationBits hexutility.Bytes `json:"aggregation_bits"` + Signature libcommon.Bytes96 `json:"signature"` + Data AttestationData `json:"data"` + }{ + AggregationBits: a.aggregationBitsBuffer, + Signature: a.Signature(), + Data: a.AttestantionData(), + }) +} + +func (a *Attestation) UnmarshalJSON(buf []byte) error { + var tmp struct { + AggregationBits hexutility.Bytes `json:"aggregation_bits"` + Signature libcommon.Bytes96 `json:"signature"` + Data AttestationData `json:"data"` + } + if err := json.Unmarshal(buf, &tmp); err != nil { + return err + } + a.SetAggregationBits(tmp.AggregationBits) + a.SetSignature(tmp.Signature) + a.SetAttestationData(tmp.Data) + return nil +} + // AggregationBits returns the aggregation bits buffer of the Attestation instance. func (a *Attestation) AggregationBits() []byte { return a.aggregationBitsBuffer @@ -90,7 +120,7 @@ func (a *Attestation) DecodeSSZ(buf []byte, _ int) error { return ssz.ErrLowBufferSize } copy(a.staticBuffer[:], buf) - a.aggregationBitsBuffer = common.CopyBytes(buf[aggregationBitsOffset:]) + a.aggregationBitsBuffer = libcommon.CopyBytes(buf[aggregationBitsOffset:]) return nil } diff --git a/cl/cltypes/solid/attestation_data.go b/cl/cltypes/solid/attestation_data.go index 65cad27b79e..6c505f58105 100644 --- a/cl/cltypes/solid/attestation_data.go +++ b/cl/cltypes/solid/attestation_data.go @@ -3,6 +3,7 @@ package solid import ( "bytes" "encoding/binary" + "encoding/json" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" @@ -16,7 +17,7 @@ import ( // beaconBlockHash: 32 bytes // source: 40 bytes // target: 40 bytes -const attestationDataBufferSize = 8 + 8 + 32 + 40*2 +const AttestationDataBufferSize = 8 + 8 + 32 + 40*2 // AttestantionData contains information about attestantion, including finalized/attested checkpoints. type AttestationData []byte @@ -37,8 +38,43 @@ func NewAttestionDataFromParameters( return a } +func (a AttestationData) MarshalJSON() ([]byte, error) { + return json.Marshal(struct { + Slot uint64 `json:"slot"` + Index uint64 `json:"index"` + BeaconBlockRoot libcommon.Hash `json:"beacon_block_root"` + Source Checkpoint `json:"source"` + Target Checkpoint `json:"target"` + }{ + Slot: a.Slot(), + BeaconBlockRoot: a.BeaconBlockRoot(), + Index: a.ValidatorIndex(), + Source: a.Source(), + Target: a.Target(), + }) +} + +func (a AttestationData) UnmarshalJSON(buf []byte) error { + var tmp struct { + Slot uint64 `json:"slot"` + Index uint64 `json:"index"` + BeaconBlockRoot libcommon.Hash `json:"beacon_block_root"` + Source Checkpoint `json:"source"` + Target Checkpoint `json:"target"` + } + if err := json.Unmarshal(buf, &tmp); err != nil { + return err + } + a.SetSlot(tmp.Slot) + a.SetValidatorIndex(tmp.Index) + a.SetBeaconBlockRoot(tmp.BeaconBlockRoot) + a.SetSource(tmp.Source) + a.SetTarget(tmp.Target) + return nil +} + func NewAttestationData() AttestationData { - return make([]byte, attestationDataBufferSize) + return make([]byte, AttestationDataBufferSize) } func (a AttestationData) Static() bool { @@ -78,6 +114,31 @@ func (a AttestationData) SetBeaconBlockRoot(beaconBlockRoot libcommon.Hash) { copy(a[16:], beaconBlockRoot[:]) } +func (a AttestationData) SetSlotWithRawBytes(b []byte) { + copy(a[:8], b) +} + +func (a AttestationData) SetValidatorIndexWithRawBytes(b []byte) { + copy(a[8:16], b) + +} + +func (a AttestationData) RawSlot() []byte { + return a[:8] +} + +func (a AttestationData) RawValidatorIndex() []byte { + return a[8:16] +} + +func (a AttestationData) RawBeaconBlockRoot() []byte { + return a[16:48] +} + +func (a AttestationData) SetBeaconBlockRootWithRawBytes(b []byte) { + copy(a[16:48], b) +} + func (a AttestationData) SetSource(c Checkpoint) { copy(a[48:88], c) } diff --git a/cl/cltypes/solid/bitlist.go b/cl/cltypes/solid/bitlist.go index f93a47ef786..cf14cf0644c 100644 --- a/cl/cltypes/solid/bitlist.go +++ b/cl/cltypes/solid/bitlist.go @@ -1,12 +1,13 @@ package solid import ( + "encoding/json" "math/bits" + "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon/cl/merkle_tree" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" ) // BitList is like a dynamic binary string. It's like a flipbook of 1s and 0s! @@ -41,6 +42,10 @@ func BitlistFromBytes(xs []byte, c int) *BitList { } } +func (u *BitList) Bytes() []byte { + return u.u[:u.l] +} + // Clear wipes the BitList clean, just like the memory wipe spell from a particularly forgetful wizard. func (u *BitList) Clear() { u.u = u.u[:0] @@ -115,7 +120,7 @@ func (u *BitList) HashSSZ() ([32]byte, error) { } } lengthRoot := merkle_tree.Uint64Root(uint64(u.l)) - return utils.Keccak256(baseRoot[:], lengthRoot[:]), nil + return utils.Sha256(baseRoot[:], lengthRoot[:]), nil } func (arr *BitList) getBaseHash(xs []byte, depth uint8) error { @@ -151,7 +156,8 @@ func (u *BitList) EncodeSSZ(dst []byte) ([]byte, error) { // DecodeSSZ replaces the underlying byte slice of the BitList with a copy of the input byte slice. // It then updates the length of the BitList to match the length of the new byte slice. func (u *BitList) DecodeSSZ(dst []byte, _ int) error { - u.u = common.CopyBytes(dst) + u.u = make([]byte, len(dst)) + copy(u.u, dst) u.l = len(dst) return nil } @@ -187,3 +193,19 @@ func (u *BitList) Bits() int { // bit. Subtract this value by 1 to determine the length of the bitlist. return 8*(u.l-1) + msb - 1 } + +func (u *BitList) MarshalJSON() ([]byte, error) { + enc, err := u.EncodeSSZ(nil) + if err != nil { + return nil, err + } + return json.Marshal(hexutility.Bytes(enc)) +} + +func (u *BitList) UnmarshalJSON(input []byte) error { + var hex hexutility.Bytes + if err := json.Unmarshal(input, &hex); err != nil { + return err + } + return u.DecodeSSZ(hex, 0) +} diff --git a/cl/cltypes/solid/checkpoint.go b/cl/cltypes/solid/checkpoint.go index aa17c60197a..87ce50436aa 100644 --- a/cl/cltypes/solid/checkpoint.go +++ b/cl/cltypes/solid/checkpoint.go @@ -3,6 +3,7 @@ package solid import ( "bytes" "encoding/binary" + "encoding/json" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" @@ -12,7 +13,7 @@ import ( ) // Constants to represent the size and layout of a Checkpoint -const checkpointSize = 32 + 8 // BlockRoot(32 bytes) + Epoch(8 bytes) +const CheckpointSize = 32 + 8 // BlockRoot(32 bytes) + Epoch(8 bytes) type Checkpoint []byte // Define Checkpoint as a byte slice @@ -21,7 +22,7 @@ func NewCheckpointFromParameters( blockRoot libcommon.Hash, // A hash representing the block root epoch uint64, // An unsigned 64-bit integer representing the epoch ) Checkpoint { - var c Checkpoint = make([]byte, checkpointSize) + var c Checkpoint = make([]byte, CheckpointSize) c.SetBlockRoot(blockRoot) c.SetEpoch(epoch) return c @@ -29,7 +30,43 @@ func NewCheckpointFromParameters( // NewCheckpoint returns a new Checkpoint with the underlying byte slice initialized to zeros func NewCheckpoint() Checkpoint { - return make([]byte, checkpointSize) + return make([]byte, CheckpointSize) +} + +func (c Checkpoint) MarshalJSON() ([]byte, error) { + return json.Marshal(struct { + Epoch uint64 `json:"epoch"` + Root libcommon.Hash `json:"root"` + }{Epoch: c.Epoch(), Root: c.BlockRoot()}) +} + +func (c Checkpoint) UnmarshalJSON(buf []byte) error { + var tmp struct { + Epoch uint64 `json:"epoch"` + Root libcommon.Hash `json:"root"` + } + if err := json.Unmarshal(buf, &tmp); err != nil { + return err + } + c.SetEpoch(tmp.Epoch) + c.SetBlockRoot(tmp.Root) + return nil +} + +func (c Checkpoint) SetRawEpoch(b []byte) { + copy(c[:8], b[:8]) +} + +func (c Checkpoint) SetRawBlockRoot(b []byte) { + copy(c[8:40], b[:32]) +} + +func (c Checkpoint) RawEpoch() []byte { + return c[:8] +} + +func (c Checkpoint) RawBlockRoot() []byte { + return c[8:40] } // SetBlockRoot copies the given blockRoot into the correct location within the Checkpoint @@ -55,7 +92,7 @@ func (c Checkpoint) BlockRoot() (o libcommon.Hash) { // EncodingSizeSSZ returns the size of the Checkpoint object when encoded as SSZ. func (Checkpoint) EncodingSizeSSZ() int { - return checkpointSize + return CheckpointSize } // DecodeSSZ decodes the Checkpoint object from SSZ-encoded data. diff --git a/cl/cltypes/solid/checkpoint_test.go b/cl/cltypes/solid/checkpoint_test.go index de41bd3e9f9..e6598028e4a 100644 --- a/cl/cltypes/solid/checkpoint_test.go +++ b/cl/cltypes/solid/checkpoint_test.go @@ -8,13 +8,12 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/common" ) var testCheckpoint = solid.NewCheckpointFromParameters(libcommon.HexToHash("0x3"), 69) -var expectedTestCheckpointMarshalled = common.Hex2Bytes("45000000000000000000000000000000000000000000000000000000000000000000000000000003") -var expectedTestCheckpointRoot = common.Hex2Bytes("be8567f9fdae831b10720823dbcf0e3680e61d6a2a27d85ca00f6c15a7bbb1ea") +var expectedTestCheckpointMarshalled = libcommon.Hex2Bytes("45000000000000000000000000000000000000000000000000000000000000000000000000000003") +var expectedTestCheckpointRoot = libcommon.Hex2Bytes("be8567f9fdae831b10720823dbcf0e3680e61d6a2a27d85ca00f6c15a7bbb1ea") func TestCheckpointMarshalUnmarmashal(t *testing.T) { marshalled, err := testCheckpoint.EncodeSSZ(nil) diff --git a/cl/cltypes/solid/extra_data.go b/cl/cltypes/solid/extra_data.go index abaa040753c..4ef2c78ec31 100644 --- a/cl/cltypes/solid/extra_data.go +++ b/cl/cltypes/solid/extra_data.go @@ -2,8 +2,10 @@ package solid import ( "encoding/binary" + "encoding/json" "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon/cl/merkle_tree" @@ -22,6 +24,18 @@ func NewExtraData() *ExtraData { } } +func (e *ExtraData) UnmarshalJSON(buf []byte) error { + if err := json.Unmarshal(buf, (*hexutility.Bytes)(&e.data)); err != nil { + return err + } + e.l = len(e.data) + return nil +} + +func (e ExtraData) MarshalJSON() ([]byte, error) { + return json.Marshal(hexutility.Bytes(e.data[:e.l])) +} + // Clone creates a new instance of ExtraData. func (*ExtraData) Clone() clonable.Clonable { return NewExtraData() diff --git a/cl/cltypes/solid/hash_list.go b/cl/cltypes/solid/hash_list.go index bc67267847a..9c4ba66dd9c 100644 --- a/cl/cltypes/solid/hash_list.go +++ b/cl/cltypes/solid/hash_list.go @@ -1,6 +1,8 @@ package solid import ( + "encoding/json" + "github.com/ledgerwatch/erigon-lib/common" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" @@ -23,6 +25,32 @@ func NewHashList(c int) HashListSSZ { } } +func (arr *hashList) Bytes() []byte { + return arr.u[:arr.l*length.Hash] +} + +func (arr *hashList) MarshalJSON() ([]byte, error) { + list := make([]libcommon.Hash, arr.l) + for i := 0; i < arr.l; i++ { + list[0] = arr.Get(i) + } + return json.Marshal(list) +} + +func (arr *hashList) UnmarshalJSON(buf []byte) error { + var list []libcommon.Hash + + if err := json.Unmarshal(buf, &list); err != nil { + return err + } + arr.Clear() + arr.l = len(list) + for _, elem := range list { + arr.Append(elem) + } + return nil +} + func (h *hashList) Append(val libcommon.Hash) { offset := h.l * length.Hash if offset == len(h.u) { @@ -129,7 +157,7 @@ func (h *hashList) HashSSZ() ([32]byte, error) { } } lengthRoot := merkle_tree.Uint64Root(uint64(h.l)) - return utils.Keccak256(baseRoot[:], lengthRoot[:]), nil + return utils.Sha256(baseRoot[:], lengthRoot[:]), nil } func (h *hashList) Range(fn func(int, libcommon.Hash, int) bool) { diff --git a/cl/cltypes/solid/hash_vector.go b/cl/cltypes/solid/hash_vector.go index 95f5fc3eb06..01a971cda9f 100644 --- a/cl/cltypes/solid/hash_vector.go +++ b/cl/cltypes/solid/hash_vector.go @@ -1,6 +1,8 @@ package solid import ( + "encoding/json" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/types/clonable" @@ -22,10 +24,22 @@ func NewHashVector(s int) HashVectorSSZ { } } +func (arr *hashVector) Bytes() []byte { + return arr.u.u[:arr.u.l*length.Hash] +} + func (h *hashVector) Append(val libcommon.Hash) { panic("not implmented") } +func (h hashVector) MarshalJSON() ([]byte, error) { + return json.Marshal(h.u) +} + +func (h *hashVector) UnmarshalJSON(buf []byte) error { + return json.Unmarshal(buf, h.u) +} + func (h *hashVector) Cap() int { return h.u.l } diff --git a/cl/cltypes/solid/interfaces.go b/cl/cltypes/solid/interfaces.go index b5373e20a2b..31e73723148 100644 --- a/cl/cltypes/solid/interfaces.go +++ b/cl/cltypes/solid/interfaces.go @@ -1,6 +1,8 @@ package solid import ( + "encoding/json" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/types/ssz" ssz2 "github.com/ledgerwatch/erigon/cl/ssz" @@ -14,7 +16,7 @@ type IterableSSZ[T any] interface { Set(index int, v T) Length() int Cap() int - + Bytes() []byte Pop() T Append(v T) @@ -23,7 +25,26 @@ type IterableSSZ[T any] interface { ssz.HashableSSZ } -type Uint64VectorSSZ IterableSSZ[uint64] -type Uint64ListSSZ IterableSSZ[uint64] -type HashListSSZ IterableSSZ[common.Hash] -type HashVectorSSZ IterableSSZ[common.Hash] +type Uint64ListSSZ interface { + IterableSSZ[uint64] + json.Marshaler + json.Unmarshaler +} + +type Uint64VectorSSZ interface { + IterableSSZ[uint64] + json.Marshaler + json.Unmarshaler +} + +type HashListSSZ interface { + IterableSSZ[common.Hash] + json.Marshaler + json.Unmarshaler +} + +type HashVectorSSZ interface { + IterableSSZ[common.Hash] + json.Marshaler + json.Unmarshaler +} diff --git a/cl/cltypes/solid/list_ssz.go b/cl/cltypes/solid/list_ssz.go index 11450d8f997..cf2de25ff1b 100644 --- a/cl/cltypes/solid/list_ssz.go +++ b/cl/cltypes/solid/list_ssz.go @@ -1,6 +1,8 @@ package solid import ( + "encoding/json" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon-lib/types/ssz" @@ -43,6 +45,14 @@ func NewStaticListSSZ[T encodableHashableSSZ](limit int, bytesPerElement int) *L } } +func (l ListSSZ[T]) MarshalJSON() ([]byte, error) { + return json.Marshal(l.list) +} + +func (l *ListSSZ[T]) UnmarshalJSON(data []byte) error { + return json.Unmarshal(data, &l.list) +} + func NewDynamicListSSZFromList[T encodableHashableSSZ](list []T, limit int) *ListSSZ[T] { return &ListSSZ[T]{ list: list, @@ -149,3 +159,8 @@ func (l *ListSSZ[T]) Clear() { l.list = nil l.root = libcommon.Hash{} } + +func (l *ListSSZ[T]) Truncate(length int) { + l.list = l.list[:length] + l.root = libcommon.Hash{} +} diff --git a/cl/cltypes/solid/pending_attestation.go b/cl/cltypes/solid/pending_attestation.go index 3ea621f6979..e17b48b07ad 100644 --- a/cl/cltypes/solid/pending_attestation.go +++ b/cl/cltypes/solid/pending_attestation.go @@ -2,11 +2,14 @@ package solid import ( "encoding/binary" + "encoding/json" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon-lib/types/ssz" "github.com/ledgerwatch/erigon/cl/merkle_tree" - "github.com/ledgerwatch/erigon/common" ) const ( @@ -14,7 +17,7 @@ const ( // attestationData: 128 // InclusionDelay: 8 bytes // ProposerIndex: 8 bytes - pendingAttestationStaticBufferSize = 4 + attestationDataBufferSize + 8 + 8 + pendingAttestationStaticBufferSize = 4 + AttestationDataBufferSize + 8 + 8 // offset is usually always the same pendingAggregationBitsOffset = 148 @@ -107,3 +110,35 @@ func (a *PendingAttestation) HashSSZ() (o [32]byte, err error) { func (*PendingAttestation) Clone() clonable.Clonable { return &PendingAttestation{} } + +func (a *PendingAttestation) MarshalJSON() ([]byte, error) { + return json.Marshal(struct { + AggregationBits hexutility.Bytes `json:"aggregation_bits"` + AttestationData AttestationData `json:"attestation_data"` + InclusionDelay uint64 `json:"inclusion_delay"` + ProposerIndex uint64 `json:"proposer_index"` + }{ + AggregationBits: a.AggregationBits(), + AttestationData: a.AttestantionData(), + InclusionDelay: a.InclusionDelay(), + ProposerIndex: a.ProposerIndex(), + }) +} + +func (a *PendingAttestation) UnmarshalJSON(input []byte) error { + var err error + var tmp struct { + AggregationBits hexutility.Bytes `json:"aggregation_bits"` + AttestationData AttestationData `json:"attestation_data"` + InclusionDelay uint64 `json:"inclusion_delay"` + ProposerIndex uint64 `json:"proposer_index"` + } + if err = json.Unmarshal(input, &tmp); err != nil { + return err + } + a.SetAggregationBits(tmp.AggregationBits) + a.SetAttestationData(tmp.AttestationData) + a.SetInclusionDelay(tmp.InclusionDelay) + a.SetProposerIndex(tmp.ProposerIndex) + return nil +} diff --git a/cl/cltypes/solid/sync_committee.go b/cl/cltypes/solid/sync_committee.go index 95a7b4a97ca..58d07e6f780 100644 --- a/cl/cltypes/solid/sync_committee.go +++ b/cl/cltypes/solid/sync_committee.go @@ -1,6 +1,9 @@ package solid import ( + "encoding/json" + + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon-lib/types/ssz" "github.com/ledgerwatch/erigon/cl/merkle_tree" @@ -12,8 +15,8 @@ const syncCommitteeSize = 48 * 513 type SyncCommittee [syncCommitteeSize]byte func NewSyncCommitteeFromParameters( - committee [][48]byte, - aggregatePublicKey [48]byte, + committee []libcommon.Bytes48, + aggregatePublicKey libcommon.Bytes48, ) *SyncCommittee { s := &SyncCommittee{} s.SetAggregatePublicKey(aggregatePublicKey) @@ -21,26 +24,26 @@ func NewSyncCommitteeFromParameters( return s } -func (s *SyncCommittee) GetCommittee() [][48]byte { - committee := make([][48]byte, 512) +func (s *SyncCommittee) GetCommittee() []libcommon.Bytes48 { + committee := make([]libcommon.Bytes48, 512) for i := range committee { copy(committee[i][:], s[i*48:]) } return committee } -func (s *SyncCommittee) AggregatePublicKey() (out [48]byte) { +func (s *SyncCommittee) AggregatePublicKey() (out libcommon.Bytes48) { copy(out[:], s[syncCommitteeSize-48:]) return } -func (s *SyncCommittee) SetCommittee(committee [][48]byte) { +func (s *SyncCommittee) SetCommittee(committee []libcommon.Bytes48) { for i := range committee { copy(s[i*48:], committee[i][:]) } } -func (s *SyncCommittee) SetAggregatePublicKey(k [48]byte) { +func (s *SyncCommittee) SetAggregatePublicKey(k libcommon.Bytes48) { copy(s[syncCommitteeSize-48:], k[:]) } @@ -89,3 +92,27 @@ func (s *SyncCommittee) HashSSZ() ([32]byte, error) { func (s *SyncCommittee) Static() bool { return true } + +func (s *SyncCommittee) MarshalJSON() ([]byte, error) { + return json.Marshal(struct { + Committee []libcommon.Bytes48 `json:"committee"` + AggregatePublicKey libcommon.Bytes48 `json:"aggregate_public_key"` + }{ + Committee: s.GetCommittee(), + AggregatePublicKey: s.AggregatePublicKey(), + }) +} + +func (s *SyncCommittee) UnmarshalJSON(input []byte) error { + var err error + var tmp struct { + Committee []libcommon.Bytes48 `json:"committee"` + AggregatePublicKey libcommon.Bytes48 `json:"aggregate_public_key"` + } + if err = json.Unmarshal(input, &tmp); err != nil { + return err + } + s.SetAggregatePublicKey(tmp.AggregatePublicKey) + s.SetCommittee(tmp.Committee) + return nil +} diff --git a/cl/cltypes/solid/sync_committee_test.go b/cl/cltypes/solid/sync_committee_test.go index 4c004f3941a..1a12bd4a0ca 100644 --- a/cl/cltypes/solid/sync_committee_test.go +++ b/cl/cltypes/solid/sync_committee_test.go @@ -10,7 +10,7 @@ import ( func TestSyncCommittee(t *testing.T) { // Test NewSyncCommitteeFromParameters - committee := make([][48]byte, 512) + committee := make([]libcommon.Bytes48, 512) aggregatePublicKey := [48]byte{1, 2, 3} // Example aggregate public key syncCommittee := NewSyncCommitteeFromParameters(committee, aggregatePublicKey) assert.NotNil(t, syncCommittee) @@ -20,7 +20,7 @@ func TestSyncCommittee(t *testing.T) { assert.Equal(t, committee, gotCommittee) // Test SetCommittee - newCommittee := make([][48]byte, 512) + newCommittee := make([]libcommon.Bytes48, 512) for i := 0; i < 512; i++ { copy(newCommittee[i][:], []byte{byte(i)}) } @@ -30,13 +30,13 @@ func TestSyncCommittee(t *testing.T) { // Test AggregatePublicKey gotAggregatePublicKey := syncCommittee.AggregatePublicKey() - assert.Equal(t, aggregatePublicKey, gotAggregatePublicKey) + assert.Equal(t, libcommon.Bytes48(aggregatePublicKey), gotAggregatePublicKey) // Test SetAggregatePublicKey newAggregatePublicKey := [48]byte{4, 5, 6} // Example new aggregate public key syncCommittee.SetAggregatePublicKey(newAggregatePublicKey) updatedAggregatePublicKey := syncCommittee.AggregatePublicKey() - assert.Equal(t, newAggregatePublicKey, updatedAggregatePublicKey) + assert.Equal(t, libcommon.Bytes48(newAggregatePublicKey), updatedAggregatePublicKey) // Test EncodingSizeSSZ expectedEncodingSize := syncCommitteeSize @@ -73,3 +73,19 @@ func TestSyncCommittee(t *testing.T) { // Test Static assert.True(t, syncCommittee.Static()) } + +func TestSyncCommitteeJson(t *testing.T) { + // Test MarshalJSON and UnmarshalJSON + committee := make([]libcommon.Bytes48, 512) + for i := 0; i < 512; i++ { + copy(committee[i][:], []byte{byte(i)}) + } + aggregatePublicKey := [48]byte{1, 2, 3} // Example aggregate public key + syncCommittee := NewSyncCommitteeFromParameters(committee, aggregatePublicKey) + encodedData, err := syncCommittee.MarshalJSON() + assert.NoError(t, err) + decodedSyncCommittee := &SyncCommittee{} + err = decodedSyncCommittee.UnmarshalJSON(encodedData) + assert.NoError(t, err) + assert.Equal(t, syncCommittee, decodedSyncCommittee) +} diff --git a/cl/cltypes/solid/transactions.go b/cl/cltypes/solid/transactions.go index 73ba6c81a99..40651ac85fd 100644 --- a/cl/cltypes/solid/transactions.go +++ b/cl/cltypes/solid/transactions.go @@ -1,7 +1,10 @@ package solid import ( + "encoding/json" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon-lib/types/ssz" "github.com/ledgerwatch/erigon/cl/merkle_tree" @@ -12,6 +15,27 @@ type TransactionsSSZ struct { root libcommon.Hash // root } +func (t *TransactionsSSZ) UnmarshalJSON(buf []byte) error { + tmp := []hexutility.Bytes{} + t.root = libcommon.Hash{} + if err := json.Unmarshal(buf, &tmp); err != nil { + return err + } + t.underlying = nil + for _, tx := range tmp { + t.underlying = append(t.underlying, tx) + } + return nil +} + +func (t TransactionsSSZ) MarshalJSON() ([]byte, error) { + tmp := []hexutility.Bytes{} + for _, tx := range t.underlying { + tmp = append(tmp, tx) + } + return json.Marshal(tmp) +} + func (*TransactionsSSZ) Clone() clonable.Clonable { return &TransactionsSSZ{} } diff --git a/cl/cltypes/solid/uint64_list.go b/cl/cltypes/solid/uint64_list.go index b57b5ae0dde..2678cf0e212 100644 --- a/cl/cltypes/solid/uint64_list.go +++ b/cl/cltypes/solid/uint64_list.go @@ -1,6 +1,8 @@ package solid import ( + "encoding/json" + "github.com/ledgerwatch/erigon-lib/types/clonable" ) @@ -14,6 +16,14 @@ func NewUint64ListSSZ(limit int) Uint64ListSSZ { } } +func (h uint64ListSSZ) MarshalJSON() ([]byte, error) { + return json.Marshal(h.u) +} + +func (h uint64ListSSZ) UnmarshalJSON(buf []byte) error { + return json.Unmarshal(buf, h.u) +} + func (h *uint64ListSSZ) Static() bool { return false } @@ -32,6 +42,10 @@ func (arr *uint64ListSSZ) Clear() { arr.u.Clear() } +func (arr *uint64ListSSZ) Bytes() []byte { + return arr.u.u[:arr.u.l*8] +} + func (arr *uint64ListSSZ) CopyTo(target IterableSSZ[uint64]) { if c, ok := target.(*uint64ListSSZ); ok { arr.u.CopyTo(c.u) diff --git a/cl/cltypes/solid/uint64_raw_list.go b/cl/cltypes/solid/uint64_raw_list.go new file mode 100644 index 00000000000..b520700bfd8 --- /dev/null +++ b/cl/cltypes/solid/uint64_raw_list.go @@ -0,0 +1,167 @@ +package solid + +import ( + "encoding/binary" + "encoding/json" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/types/clonable" + "github.com/ledgerwatch/erigon/cl/merkle_tree" + "github.com/ledgerwatch/erigon/cl/utils" +) + +type RawUint64List struct { + u []uint64 + c int + + hahsBuffer []byte + cachedHash libcommon.Hash +} + +func NewRawUint64List(limit int, u []uint64) *RawUint64List { + return &RawUint64List{ + c: limit, + u: u, + } +} + +func (arr *RawUint64List) Clear() { + arr.cachedHash = libcommon.Hash{} + arr.u = arr.u[:0] +} + +func (arr *RawUint64List) Append(value uint64) { + arr.cachedHash = libcommon.Hash{} + arr.u = append(arr.u, value) +} + +func (arr *RawUint64List) Get(index int) uint64 { + return arr.u[index] +} + +func (arr *RawUint64List) Set(index int, v uint64) { + arr.u[index] = v +} + +func (arr *RawUint64List) CopyTo(target IterableSSZ[uint64]) { + if c, ok := target.(*RawUint64List); ok { + c.u = append(c.u[:0], arr.u...) + c.cachedHash = arr.cachedHash + return + } + panic("incompatible type") +} + +func (arr *RawUint64List) Range(fn func(index int, value uint64, length int) bool) { + for i, v := range arr.u { + cont := fn(i, v, len(arr.u)) + if !cont { + break + } + } +} + +func (arr *RawUint64List) Static() bool { + return false +} + +func (arr *RawUint64List) Bytes() []byte { + out, _ := arr.EncodeSSZ(nil) + return out +} + +func (arr *RawUint64List) EncodeSSZ(buf []byte) (dst []byte, err error) { + dst = buf + for _, v := range arr.u { + dst = binary.LittleEndian.AppendUint64(dst, v) + } + return dst, nil +} + +func (arr *RawUint64List) DecodeSSZ(buf []byte, _ int) error { + arr.cachedHash = libcommon.Hash{} + arr.u = make([]uint64, len(buf)/8) + for i := range arr.u { + arr.u[i] = binary.LittleEndian.Uint64(buf[i*8:]) + } + return nil +} + +func (arr *RawUint64List) Length() int { + return len(arr.u) +} + +func (arr *RawUint64List) Cap() int { + return arr.c +} + +func (arr *RawUint64List) Clone() clonable.Clonable { + return &RawUint64List{} +} + +func (arr *RawUint64List) EncodingSizeSSZ() int { + return len(arr.u) * 8 +} + +func (arr *RawUint64List) SetReusableHashBuffer(buf []byte) { + arr.hahsBuffer = buf +} + +func (arr *RawUint64List) hashBufLength() int { + return (((len(arr.u) * 4) + 3) / 4) * length.Hash +} + +func (arr *RawUint64List) HashSSZ() ([32]byte, error) { + if arr.cachedHash != (libcommon.Hash{}) { + return arr.cachedHash, nil + } + if cap(arr.hahsBuffer) < arr.hashBufLength() { + arr.hahsBuffer = make([]byte, 0, arr.hashBufLength()) + } + depth := GetDepth((uint64(arr.c)*8 + 31) / 32) + + lnRoot := merkle_tree.Uint64Root(uint64(len(arr.u))) + if len(arr.u) == 0 { + arr.cachedHash = utils.Sha256(merkle_tree.ZeroHashes[depth][:], lnRoot[:]) + return arr.cachedHash, nil + } + + arr.hahsBuffer = arr.hahsBuffer[:arr.hashBufLength()] + for i, v := range arr.u { + binary.LittleEndian.PutUint64(arr.hahsBuffer[i*8:], v) + } + + elements := arr.hahsBuffer + for i := 0; i < int(depth); i++ { + layerLen := len(elements) + if layerLen%64 == 32 { + elements = append(elements, merkle_tree.ZeroHashes[i][:]...) + } + outputLen := len(elements) / 2 + if err := merkle_tree.HashByteSlice(elements, elements); err != nil { + return [32]byte{}, err + } + elements = elements[:outputLen] + } + + arr.cachedHash = utils.Sha256(elements[:32], lnRoot[:]) + return arr.cachedHash, nil +} + +func (arr *RawUint64List) Pop() uint64 { + panic("k") +} + +func (arr *RawUint64List) MarshalJSON() ([]byte, error) { + return json.Marshal(arr.u) +} + +func (arr *RawUint64List) UnmarshalJSON(data []byte) error { + arr.cachedHash = libcommon.Hash{} + if err := json.Unmarshal(data, &arr.u); err != nil { + return err + } + arr.c = len(arr.u) + return nil +} diff --git a/cl/cltypes/solid/uint64_vector.go b/cl/cltypes/solid/uint64_vector.go index 446d6cdbfe9..f5ba39817f6 100644 --- a/cl/cltypes/solid/uint64_vector.go +++ b/cl/cltypes/solid/uint64_vector.go @@ -1,6 +1,9 @@ package solid import ( + "encoding/json" + + "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/types/clonable" ) @@ -10,15 +13,24 @@ type uint64VectorSSZ struct { func NewUint64VectorSSZ(size int) Uint64VectorSSZ { o := &byteBasedUint64Slice{ - c: size, - l: size, - u: make([]byte, size*8), + c: size, + l: size, + u: make([]byte, size*8), + treeCacheBuffer: make([]byte, getTreeCacheSize((size+3)/4, treeCacheDepthUint64Slice)*length.Hash), } return &uint64VectorSSZ{ u: o, } } +func (h uint64VectorSSZ) MarshalJSON() ([]byte, error) { + return json.Marshal(h.u) +} + +func (h *uint64VectorSSZ) UnmarshalJSON(buf []byte) error { + return json.Unmarshal(buf, h.u) +} + func (arr *uint64VectorSSZ) Clear() { arr.u.Clear() } @@ -32,6 +44,10 @@ func (arr *uint64VectorSSZ) CopyTo(target IterableSSZ[uint64]) { arr.u.CopyTo(c.u) } +func (arr *uint64VectorSSZ) Bytes() []byte { + return arr.u.u[:arr.u.l*8] +} + func (arr *uint64VectorSSZ) Range(fn func(index int, value uint64, length int) bool) { arr.u.Range(fn) } diff --git a/cl/cltypes/solid/uint64slice_byte.go b/cl/cltypes/solid/uint64slice_byte.go index 5b5e85d5d90..a642c6278c1 100644 --- a/cl/cltypes/solid/uint64slice_byte.go +++ b/cl/cltypes/solid/uint64slice_byte.go @@ -1,7 +1,9 @@ package solid import ( + "bytes" "encoding/binary" + "encoding/json" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" @@ -10,12 +12,25 @@ import ( "github.com/ledgerwatch/erigon/cl/utils" ) +const treeCacheDepthUint64Slice = 0 + +func convertDepthToChunkSize(d int) int { + return (1 << d) // just power of 2 +} + +func getTreeCacheSize(listLen int, cacheDepth int) int { + treeChunks := convertDepthToChunkSize(cacheDepth) + return (listLen + treeChunks - 1) / treeChunks + +} + // byteBasedUint64Slice represents a dynamic Uint64Slice data type that is byte-backed. // The underlying storage for the slice is a byte array. This approach allows for efficient // memory usage, especially when dealing with large slices. type byteBasedUint64Slice struct { // The bytes that back the slice - u []byte + u []byte + treeCacheBuffer []byte // Length of the slice l int @@ -31,7 +46,6 @@ func NewUint64Slice(limit int) *byteBasedUint64Slice { o := &byteBasedUint64Slice{ c: limit, } - o.u = make([]byte, 0) return o } @@ -41,6 +55,9 @@ func (arr *byteBasedUint64Slice) Clear() { for i := range arr.u { arr.u[i] = 0 } + for i := range arr.treeCacheBuffer { + arr.treeCacheBuffer[i] = 0 + } } // CopyTo copies the slice to a target slice. @@ -52,13 +69,35 @@ func (arr *byteBasedUint64Slice) CopyTo(target *byteBasedUint64Slice) { if len(target.u) < len(arr.u) { target.u = make([]byte, len(arr.u)) } + if len(target.treeCacheBuffer) < len(arr.treeCacheBuffer) { + target.treeCacheBuffer = make([]byte, len(arr.treeCacheBuffer)) + } + target.treeCacheBuffer = target.treeCacheBuffer[:len(arr.treeCacheBuffer)] target.u = target.u[:len(arr.u)] copy(target.u, arr.u) + copy(target.treeCacheBuffer, arr.treeCacheBuffer) +} + +func (arr *byteBasedUint64Slice) MarshalJSON() ([]byte, error) { + list := make([]uint64, arr.l) + for i := 0; i < arr.l; i++ { + list[i] = arr.Get(i) + } + return json.Marshal(list) } -// depth returns the depth of the Merkle tree representing the slice. -func (arr *byteBasedUint64Slice) depth() int { - return int(GetDepth(uint64(arr.c) / 4)) +func (arr *byteBasedUint64Slice) UnmarshalJSON(buf []byte) error { + var list []uint64 + + if err := json.Unmarshal(buf, &list); err != nil { + return err + } + arr.Clear() + arr.l = len(list) + for _, elem := range list { + arr.Append(elem) + } + return nil } // Range iterates over the slice and applies a provided function to each element. @@ -77,6 +116,7 @@ func (arr *byteBasedUint64Slice) Pop() uint64 { val := binary.LittleEndian.Uint64(arr.u[offset : offset+8]) binary.LittleEndian.PutUint64(arr.u[offset:offset+8], 0) arr.l = arr.l - 1 + arr.treeCacheBuffer = arr.treeCacheBuffer[:getTreeCacheSize((arr.l+3)/4, treeCacheDepthUint64Slice)*length.Hash] return val } @@ -85,9 +125,18 @@ func (arr *byteBasedUint64Slice) Append(v uint64) { if len(arr.u) <= arr.l*8 { arr.u = append(arr.u, make([]byte, 32)...) } + offset := arr.l * 8 binary.LittleEndian.PutUint64(arr.u[offset:offset+8], v) arr.l = arr.l + 1 + treeBufferExpectCache := getTreeCacheSize((arr.l+3)/4, treeCacheDepthUint64Slice) * length.Hash + if len(arr.treeCacheBuffer) < treeBufferExpectCache { + arr.treeCacheBuffer = append(arr.treeCacheBuffer, make([]byte, treeBufferExpectCache-len(arr.treeCacheBuffer))...) + } + ihIdx := (((arr.l - 1) / 4) / convertDepthToChunkSize(treeCacheDepthUint64Slice)) * length.Hash + for i := ihIdx; i < ihIdx+length.Hash; i++ { + arr.treeCacheBuffer[i] = 0 + } } // Get returns the element at the given index. @@ -101,10 +150,11 @@ func (arr *byteBasedUint64Slice) Get(index int) uint64 { // Set replaces the element at the given index with a new value. func (arr *byteBasedUint64Slice) Set(index int, v uint64) { - if index >= arr.l { - panic("index out of range") - } offset := index * 8 + ihIdx := ((index / 4) / convertDepthToChunkSize(treeCacheDepthUint64Slice)) * length.Hash + for i := ihIdx; i < ihIdx+length.Hash; i++ { + arr.treeCacheBuffer[i] = 0 + } binary.LittleEndian.PutUint64(arr.u[offset:offset+8], v) } @@ -132,15 +182,41 @@ func (arr *byteBasedUint64Slice) HashListSSZ() ([32]byte, error) { } } lengthRoot := merkle_tree.Uint64Root(uint64(arr.l)) - return utils.Keccak256(baseRoot[:], lengthRoot[:]), nil + return utils.Sha256(baseRoot[:], lengthRoot[:]), nil } // HashVectorSSZ computes the SSZ hash of the slice as a vector. It returns the hash and any error encountered. func (arr *byteBasedUint64Slice) HashVectorSSZ() ([32]byte, error) { - depth := GetDepth((uint64(arr.c)*8 + 31) / 32) - offset := 32*((arr.l-1)/4) + 32 - elements := arr.u[:offset] - for i := uint8(0); i < depth; i++ { + chunkSize := convertDepthToChunkSize(treeCacheDepthUint64Slice) * length.Hash + depth := GetDepth((uint64(arr.c)*8 + length.Hash - 1) / length.Hash) + emptyHashBytes := make([]byte, length.Hash) + + layerBuffer := make([]byte, chunkSize) + maxTo := length.Hash*((arr.l-1)/4) + length.Hash + + offset := 0 + for i := 0; i < maxTo; i += chunkSize { + offset = (i / chunkSize) * length.Hash + from := i + to := int(utils.Min64(uint64(from+chunkSize), uint64(maxTo))) + + if !bytes.Equal(arr.treeCacheBuffer[offset:offset+length.Hash], emptyHashBytes) { + continue + } + layerBuffer = layerBuffer[:to-from] + copy(layerBuffer, arr.u[from:to]) + if err := computeFlatRootsToBuffer(uint8(utils.Min64(treeCacheDepthUint64Slice, uint64(depth))), layerBuffer, arr.treeCacheBuffer[offset:]); err != nil { + return [32]byte{}, err + } + } + if treeCacheDepthUint64Slice >= depth { + return common.BytesToHash(arr.treeCacheBuffer[:32]), nil + } + + arr.makeBuf(offset + length.Hash) + copy(arr.buf, arr.treeCacheBuffer[:offset+length.Hash]) + elements := arr.buf + for i := uint8(treeCacheDepthUint64Slice); i < depth; i++ { layerLen := len(elements) if layerLen%64 == 32 { elements = append(elements, merkle_tree.ZeroHashes[i][:]...) @@ -166,10 +242,11 @@ func (arr *byteBasedUint64Slice) DecodeSSZ(buf []byte, _ int) error { if len(buf)%8 > 0 { return ssz.ErrBadDynamicLength } - bufferLength := len(buf) + (length.Hash - (len(buf) % length.Hash)) + arr.l = len(buf) / 8 + bufferLength := length.Hash*((arr.l-1)/4) + length.Hash arr.u = make([]byte, bufferLength) copy(arr.u, buf) - arr.l = len(buf) / 8 + arr.treeCacheBuffer = make([]byte, getTreeCacheSize((arr.l+3)/4, treeCacheDepthUint64Slice)*length.Hash) return nil } diff --git a/cl/cltypes/solid/uint64slice_byte_test.go b/cl/cltypes/solid/uint64slice_byte_test.go index f185712004a..973866df9fc 100644 --- a/cl/cltypes/solid/uint64slice_byte_test.go +++ b/cl/cltypes/solid/uint64slice_byte_test.go @@ -25,3 +25,21 @@ func TestUint64SliceBasic(t *testing.T) { require.EqualValues(t, common.HexToHash("eb8cec5eaec74a32e8b9b56cc42f7627cef722f81081ead786c97a4df1c8be5d"), out) } + +func TestUint64SliceCopyTo(t *testing.T) { + num := 1000 + set := solid.NewUint64ListSSZ(100_000) + set2 := solid.NewUint64ListSSZ(100_000) + for i := 0; i < num; i++ { + set.Append(uint64(i)) + set.HashSSZ() + } + firstHash, err := set.HashSSZ() + require.NoError(t, err) + + set.CopyTo(set2) + secondHash, err := set2.HashSSZ() + require.NoError(t, err) + + require.Equal(t, firstHash, secondHash) +} diff --git a/cl/cltypes/solid/validator.go b/cl/cltypes/solid/validator.go index 025b74d6b1c..63353e1ee66 100644 --- a/cl/cltypes/solid/validator.go +++ b/cl/cltypes/solid/validator.go @@ -2,6 +2,7 @@ package solid import ( "encoding/binary" + "encoding/json" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" @@ -153,6 +154,11 @@ func (v Validator) SetWithdrawalCredentials(o common.Hash) { func (v Validator) SetEffectiveBalance(i uint64) { binary.LittleEndian.PutUint64(v[80:88], i) } + +func (v Validator) SetEffectiveBalanceFromBytes(b []byte) { + copy(v[80:88], b) +} + func (v Validator) SetSlashed(b bool) { if b { v[88] = 1 @@ -177,10 +183,51 @@ func (v Validator) SetWithdrawableEpoch(i uint64) { } // Active returns if validator is active for given epoch -func (v *Validator) Active(epoch uint64) bool { +func (v Validator) Active(epoch uint64) bool { return v.ActivationEpoch() <= epoch && epoch < v.ExitEpoch() } -func (v *Validator) IsSlashable(epoch uint64) bool { +func (v Validator) IsSlashable(epoch uint64) bool { return !v.Slashed() && (v.ActivationEpoch() <= epoch) && (epoch < v.WithdrawableEpoch()) } + +func (v Validator) MarshalJSON() ([]byte, error) { + return json.Marshal(struct { + PublicKey common.Bytes48 `json:"public_key"` + WithdrawalCredentials common.Hash `json:"withdrawal_credentials"` + EffectiveBalance uint64 `json:"effective_balance"` + Slashed bool `json:"slashed"` + ActivationEligibilityEpoch uint64 `json:"activation_eligibility_epoch"` + ActivationEpoch uint64 `json:"activation_epoch"` + ExitEpoch uint64 `json:"exit_epoch"` + WithdrawableEpoch uint64 `json:"withdrawable_epoch"` + }{ + PublicKey: v.PublicKey(), + WithdrawalCredentials: v.WithdrawalCredentials(), + EffectiveBalance: v.EffectiveBalance(), + Slashed: v.Slashed(), + ActivationEligibilityEpoch: v.ActivationEligibilityEpoch(), + ActivationEpoch: v.ActivationEpoch(), + ExitEpoch: v.ExitEpoch(), + WithdrawableEpoch: v.WithdrawableEpoch(), + }) +} + +func (v *Validator) UnmarshalJSON(input []byte) error { + var err error + var tmp struct { + PublicKey common.Bytes48 `json:"public_key"` + WithdrawalCredentials common.Hash `json:"withdrawal_credentials"` + EffectiveBalance uint64 `json:"effective_balance"` + Slashed bool `json:"slashed"` + ActivationEligibilityEpoch uint64 `json:"activation_eligibility_epoch"` + ActivationEpoch uint64 `json:"activation_epoch"` + ExitEpoch uint64 `json:"exit_epoch"` + WithdrawableEpoch uint64 `json:"withdrawable_epoch"` + } + if err = json.Unmarshal(input, &tmp); err != nil { + return err + } + *v = NewValidatorFromParameters(tmp.PublicKey, tmp.WithdrawalCredentials, tmp.EffectiveBalance, tmp.Slashed, tmp.ActivationEligibilityEpoch, tmp.ActivationEpoch, tmp.ExitEpoch, tmp.WithdrawableEpoch) + return nil +} diff --git a/cl/cltypes/solid/validator_set.go b/cl/cltypes/solid/validator_set.go index 31b51809cd0..eb5b6e170d1 100644 --- a/cl/cltypes/solid/validator_set.go +++ b/cl/cltypes/solid/validator_set.go @@ -1,7 +1,10 @@ package solid import ( - "github.com/ledgerwatch/erigon-lib/common" + "bytes" + "encoding/json" + + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/types/clonable" "github.com/ledgerwatch/erigon-lib/types/ssz" @@ -18,7 +21,10 @@ const ( IsPreviousMatchingHeadAttesterBit = 0x5 ) -const validatorSetCapacityMultiplier = 1.05 // allocate 5% to the validator set when re-allocation is needed. +const ( + validatorSetCapacityMultiplier = 1.01 // allocate 20% to the validator set when re-allocation is needed. + validatorTreeCacheGroupLayer = 3 // It will cache group validatorTreeCacheGroupLayer^2 accordingly +) // This is all stuff used by phase0 state transition. It makes many operations faster. type Phase0Data struct { @@ -28,8 +34,10 @@ type Phase0Data struct { } type ValidatorSet struct { - buffer []byte - l, c int + buffer []byte + treeCacheBuffer []byte + + l, c int // We have phase0 data below phase0Data []Phase0Data @@ -44,13 +52,36 @@ func NewValidatorSet(c int) *ValidatorSet { } } -func (v *ValidatorSet) expandBuffer(size int) { +func NewValidatorSetWithLength(c int, l int) *ValidatorSet { + return &ValidatorSet{ + c: c, + l: l, + buffer: make([]byte, l*validatorSize), + treeCacheBuffer: make([]byte, getTreeCacheSize(l, validatorTreeCacheGroupLayer)*length.Hash), + phase0Data: make([]Phase0Data, l), + attesterBits: make([]byte, l), + } +} + +func (v *ValidatorSet) Bytes() []byte { + return v.buffer[:v.l*validatorSize] +} + +func (v *ValidatorSet) expandBuffer(newValidatorSetLength int) { + size := newValidatorSetLength * validatorSize + treeCacheSize := getTreeCacheSize(newValidatorSetLength, validatorTreeCacheGroupLayer) * length.Hash + if size <= cap(v.buffer) { + v.treeCacheBuffer = v.treeCacheBuffer[:treeCacheSize] v.buffer = v.buffer[:size] return } - buffer := make([]byte, size, int(float64(size)*validatorSetCapacityMultiplier)) + increasedValidatorsCapacity := uint64(float64(newValidatorSetLength)*validatorSetCapacityMultiplier) + 1 + buffer := make([]byte, size, increasedValidatorsCapacity*validatorSize) + cacheBuffer := make([]byte, treeCacheSize, increasedValidatorsCapacity*length.Hash) copy(buffer, v.buffer) + copy(cacheBuffer, v.treeCacheBuffer) + v.treeCacheBuffer = cacheBuffer v.buffer = buffer } @@ -58,9 +89,10 @@ func (v *ValidatorSet) Append(val Validator) { offset := v.EncodingSizeSSZ() // we are overflowing the buffer? append. if offset >= len(v.buffer) { - v.expandBuffer(offset + validatorSize) + v.expandBuffer(v.l + 1) v.phase0Data = append(v.phase0Data, Phase0Data{}) } + v.zeroTreeHash(v.l) copy(v.buffer[offset:], val) v.phase0Data[v.l] = Phase0Data{} // initialize to empty. v.attesterBits = append(v.attesterBits, 0x0) @@ -88,19 +120,18 @@ func (v *ValidatorSet) Clone() clonable.Clonable { return NewValidatorSet(v.c) } -func (v *ValidatorSet) CopyTo(set2 IterableSSZ[Validator]) { - t := set2.(*ValidatorSet) +func (v *ValidatorSet) CopyTo(t *ValidatorSet) { t.l = v.l t.c = v.c offset := v.EncodingSizeSSZ() if offset > len(t.buffer) { - t.expandBuffer(offset) - t.buffer = append(t.buffer, make([]byte, len(v.buffer)-len(t.buffer))...) + t.expandBuffer(v.l) t.attesterBits = make([]byte, len(v.attesterBits)) } // skip copying (unsupported for phase0) t.phase0Data = make([]Phase0Data, t.l) copy(t.buffer, v.buffer) + copy(t.treeCacheBuffer, v.treeCacheBuffer) copy(t.attesterBits, v.attesterBits) t.attesterBits = t.attesterBits[:v.l] } @@ -109,7 +140,7 @@ func (v *ValidatorSet) DecodeSSZ(buf []byte, _ int) error { if len(buf)%validatorSize > 0 { return ssz.ErrBufferNotRounded } - v.expandBuffer(len(buf)) + v.expandBuffer(len(buf) / validatorSize) copy(v.buffer, buf) v.l = len(buf) / validatorSize v.phase0Data = make([]Phase0Data, v.l) @@ -136,45 +167,82 @@ func (v *ValidatorSet) Get(idx int) Validator { if idx >= v.l { panic("ValidatorSet -- Get: out of bounds") } - return v.buffer[idx*validatorSize : (idx*validatorSize)+validatorSize] + + return Validator(v.buffer[idx*validatorSize : (idx*validatorSize)+validatorSize]) } func (v *ValidatorSet) HashSSZ() ([32]byte, error) { // generate root list - v.makeBuf(v.l * length.Hash) - validatorLeaves := v.buf + validatorsLeafChunkSize := convertDepthToChunkSize(validatorTreeCacheGroupLayer) hashBuffer := make([]byte, 8*32) depth := GetDepth(uint64(v.c)) lengthRoot := merkle_tree.Uint64Root(uint64(v.l)) if v.l == 0 { - return utils.Keccak256(merkle_tree.ZeroHashes[depth][:], lengthRoot[:]), nil + return utils.Sha256(merkle_tree.ZeroHashes[depth][:], lengthRoot[:]), nil } - for i := 0; i < v.l; i++ { - validator := v.Get(i) - if err := validator.CopyHashBufferTo(hashBuffer); err != nil { - return [32]byte{}, err + + emptyHashBytes := make([]byte, length.Hash) + + layerBuffer := make([]byte, validatorsLeafChunkSize*length.Hash) + for i := 0; i < v.l; i += validatorsLeafChunkSize { + from := uint64(i) + to := utils.Min64(from+uint64(validatorsLeafChunkSize), uint64(v.l)) + offset := (i / validatorsLeafChunkSize) * length.Hash + + if !bytes.Equal(v.treeCacheBuffer[offset:offset+length.Hash], emptyHashBytes) { + continue } - hashBuffer = hashBuffer[:(8 * 32)] - if err := merkle_tree.MerkleRootFromFlatLeaves(hashBuffer, validatorLeaves[i*length.Hash:]); err != nil { + for i := from; i < to; i++ { + validator := v.Get(int(i)) + if err := validator.CopyHashBufferTo(hashBuffer); err != nil { + return [32]byte{}, err + } + hashBuffer = hashBuffer[:(8 * 32)] + if err := merkle_tree.MerkleRootFromFlatLeaves(hashBuffer, layerBuffer[(i-from)*length.Hash:]); err != nil { + return [32]byte{}, err + } + } + endOffset := (to - from) * length.Hash + if err := computeFlatRootsToBuffer(validatorTreeCacheGroupLayer, layerBuffer[:endOffset], v.treeCacheBuffer[offset:]); err != nil { return [32]byte{}, err } + } - offset := length.Hash * v.l - elements := common.Copy(validatorLeaves[:offset]) - for i := uint8(0); i < depth; i++ { + + offset := length.Hash * ((v.l + validatorsLeafChunkSize - 1) / validatorsLeafChunkSize) + v.makeBuf(offset) + copy(v.buf, v.treeCacheBuffer[:offset]) + elements := v.buf + for i := uint8(validatorTreeCacheGroupLayer); i < depth; i++ { // Sequential if len(elements)%64 != 0 { elements = append(elements, merkle_tree.ZeroHashes[i][:]...) } outputLen := len(elements) / 2 - v.makeBuf(outputLen) - if err := merkle_tree.HashByteSlice(v.buf, elements); err != nil { + if err := merkle_tree.HashByteSlice(elements, elements); err != nil { return [32]byte{}, err } - elements = v.buf + elements = elements[:outputLen] } - return utils.Keccak256(elements[:length.Hash], lengthRoot[:]), nil + + return utils.Sha256(elements[:length.Hash], lengthRoot[:]), nil +} + +func computeFlatRootsToBuffer(depth uint8, layerBuffer, output []byte) error { + for i := uint8(0); i < depth; i++ { + // Sequential + if len(layerBuffer)%64 != 0 { + layerBuffer = append(layerBuffer, merkle_tree.ZeroHashes[i][:]...) + } + if err := merkle_tree.HashByteSlice(layerBuffer, layerBuffer); err != nil { + return err + } + layerBuffer = layerBuffer[:len(layerBuffer)/2] + } + + copy(output, layerBuffer[:length.Hash]) + return nil } func (v *ValidatorSet) Set(idx int, val Validator) { @@ -217,6 +285,13 @@ func (v *ValidatorSet) Range(fn func(int, Validator, int) bool) { } } +func (v *ValidatorSet) zeroTreeHash(idx int) { + iNodeIdx := (idx / (1 << validatorTreeCacheGroupLayer)) * length.Hash + for i := iNodeIdx; i < iNodeIdx+length.Hash; i++ { + v.treeCacheBuffer[i] = 0 + } +} + func (v *ValidatorSet) IsCurrentMatchingSourceAttester(idx int) bool { return v.getAttesterBit(idx, IsCurrentMatchingSourceAttesterBit) } @@ -280,3 +355,58 @@ func (v *ValidatorSet) SetMinCurrentInclusionDelayAttestation(idx int, val *Pend func (v *ValidatorSet) SetMinPreviousInclusionDelayAttestation(idx int, val *PendingAttestation) { v.getPhase0(idx).MinPreviousInclusionDelayAttestation = val } + +func (v *ValidatorSet) SetWithdrawalCredentialForValidatorAtIndex(index int, creds libcommon.Hash) { + v.zeroTreeHash(index) + v.Get(index).SetWithdrawalCredentials(creds) +} + +func (v *ValidatorSet) SetExitEpochForValidatorAtIndex(index int, epoch uint64) { + v.zeroTreeHash(index) + v.Get(index).SetExitEpoch(epoch) +} + +func (v *ValidatorSet) SetWithdrawableEpochForValidatorAtIndex(index int, epoch uint64) { + v.zeroTreeHash(index) + v.Get(index).SetWithdrawableEpoch(epoch) +} + +func (v *ValidatorSet) SetEffectiveBalanceForValidatorAtIndex(index int, balance uint64) { + v.zeroTreeHash(index) + v.Get(index).SetEffectiveBalance(balance) +} + +func (v *ValidatorSet) SetActivationEpochForValidatorAtIndex(index int, epoch uint64) { + v.zeroTreeHash(index) + v.Get(index).SetActivationEpoch(epoch) +} + +func (v *ValidatorSet) SetActivationEligibilityEpochForValidatorAtIndex(index int, epoch uint64) { + v.zeroTreeHash(index) + v.Get(index).SetActivationEligibilityEpoch(epoch) +} + +func (v *ValidatorSet) SetValidatorSlashed(index int, slashed bool) { + v.zeroTreeHash(index) + v.Get(index).SetSlashed(slashed) +} + +func (v *ValidatorSet) MarshalJSON() ([]byte, error) { + validators := make([]Validator, v.l) + for i := 0; i < v.l; i++ { + validators[i] = v.Get(i) + } + return json.Marshal(validators) +} + +func (v *ValidatorSet) UnmarshalJSON(data []byte) error { + var validators []Validator + if err := json.Unmarshal(data, &validators); err != nil { + return err + } + v.Clear() + for _, val := range validators { + v.Append(val) + } + return nil +} diff --git a/cl/cltypes/solid/validator_test.go b/cl/cltypes/solid/validator_test.go index b270ccdbbba..9e3debd19dc 100644 --- a/cl/cltypes/solid/validator_test.go +++ b/cl/cltypes/solid/validator_test.go @@ -1,10 +1,12 @@ package solid import ( + "encoding/binary" "testing" "github.com/ledgerwatch/erigon-lib/common" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestValidator(t *testing.T) { @@ -49,3 +51,39 @@ func TestValidator(t *testing.T) { validator.CopyTo(copiedValidator) assert.Equal(t, validator, copiedValidator) } + +func TestValidatorSetTest(t *testing.T) { + num := 1000 + vset := NewValidatorSet(1000000) + vset2 := NewValidatorSet(1000000) + for i := 0; i < num; i++ { + var pk [48]byte + var wk [32]byte + binary.BigEndian.PutUint32(pk[:], uint32(i)) + binary.BigEndian.PutUint32(wk[:], uint32(i)) + vset.Append(NewValidatorFromParameters( + pk, wk, uint64(1), true, uint64(1), uint64(1), uint64(1), uint64(1), + )) + vset.HashSSZ() + } + firstHash, err := vset.HashSSZ() + require.NoError(t, err) + + vset.CopyTo(vset2) + secondHash, err := vset2.HashSSZ() + require.NoError(t, err) + + require.Equal(t, firstHash, secondHash) +} + +func TestMarshalUnmarshalJson(t *testing.T) { + validator := NewValidatorFromParameters( + [48]byte{1, 2, 3}, [32]byte{4, 5, 6}, 7, true, 8, 9, 10, 11, + ) + encoded, err := validator.MarshalJSON() + require.NoError(t, err) + decoded := NewValidator() + err = decoded.UnmarshalJSON(encoded) + require.NoError(t, err) + assert.Equal(t, validator, decoded) +} diff --git a/cl/cltypes/validator.go b/cl/cltypes/validator.go index 3f4f3f8a288..7d328bf21cf 100644 --- a/cl/cltypes/validator.go +++ b/cl/cltypes/validator.go @@ -16,11 +16,10 @@ const ( ) type DepositData struct { - PubKey [48]byte - WithdrawalCredentials [32]byte // 32 byte - Amount uint64 - Signature [96]byte - Root libcommon.Hash // Ignored if not for hashing + PubKey libcommon.Bytes48 `json:"pubkey"` + WithdrawalCredentials libcommon.Hash `json:"withdrawal_credentials"` + Amount uint64 `json:"amount"` + Signature libcommon.Bytes96 `json:"signature"` } func (d *DepositData) EncodeSSZ(dst []byte) ([]byte, error) { @@ -49,8 +48,8 @@ func (*DepositData) Static() bool { type Deposit struct { // Merkle proof is used for deposits - Proof solid.HashVectorSSZ // 33 X 32 size. - Data *DepositData + Proof solid.HashVectorSSZ `json:"proof"` // 33 X 32 size. + Data *DepositData `json:"data"` } func (d *Deposit) EncodeSSZ(dst []byte) ([]byte, error) { @@ -73,8 +72,8 @@ func (d *Deposit) HashSSZ() ([32]byte, error) { } type VoluntaryExit struct { - Epoch uint64 - ValidatorIndex uint64 + Epoch uint64 `json:"epoch"` + ValidatorIndex uint64 `json:"validator_index"` } func (e *VoluntaryExit) EncodeSSZ(buf []byte) ([]byte, error) { @@ -102,23 +101,23 @@ func (*VoluntaryExit) EncodingSizeSSZ() int { } type SignedVoluntaryExit struct { - VolunaryExit *VoluntaryExit - Signature [96]byte + VoluntaryExit *VoluntaryExit `json:"message"` + Signature libcommon.Bytes96 `json:"signature"` } func (e *SignedVoluntaryExit) EncodeSSZ(dst []byte) ([]byte, error) { - return ssz2.MarshalSSZ(dst, e.VolunaryExit, e.Signature[:]) + return ssz2.MarshalSSZ(dst, e.VoluntaryExit, e.Signature[:]) } func (e *SignedVoluntaryExit) DecodeSSZ(buf []byte, version int) error { - e.VolunaryExit = new(VoluntaryExit) - return ssz2.UnmarshalSSZ(buf, version, e.VolunaryExit, e.Signature[:]) + e.VoluntaryExit = new(VoluntaryExit) + return ssz2.UnmarshalSSZ(buf, version, e.VoluntaryExit, e.Signature[:]) } func (e *SignedVoluntaryExit) HashSSZ() ([32]byte, error) { - return merkle_tree.HashTreeRoot(e.VolunaryExit, e.Signature[:]) + return merkle_tree.HashTreeRoot(e.VoluntaryExit, e.Signature[:]) } func (e *SignedVoluntaryExit) EncodingSizeSSZ() int { - return 96 + e.VolunaryExit.EncodingSizeSSZ() + return 96 + e.VoluntaryExit.EncodingSizeSSZ() } diff --git a/cl/cltypes/validator_test.go b/cl/cltypes/validator_test.go index c798a19c824..db96632c84a 100644 --- a/cl/cltypes/validator_test.go +++ b/cl/cltypes/validator_test.go @@ -21,8 +21,8 @@ func TestSignedVoluntaryExit(t *testing.T) { signature := [96]byte{1, 2, 3} signedExit := &cltypes.SignedVoluntaryExit{ - VolunaryExit: voluntaryExit, - Signature: signature, + VoluntaryExit: voluntaryExit, + Signature: signature, } // Encode SignedVoluntaryExit to SSZ @@ -35,8 +35,8 @@ func TestSignedVoluntaryExit(t *testing.T) { assert.NoError(t, err, "Failed to decode SSZ to SignedVoluntaryExit") // Compare the original and decoded SignedVoluntaryExit - assert.Equal(t, signedExit.VolunaryExit.Epoch, decodedExit.VolunaryExit.Epoch, "Decoded SignedVoluntaryExit has incorrect epoch") - assert.Equal(t, signedExit.VolunaryExit.ValidatorIndex, decodedExit.VolunaryExit.ValidatorIndex, "Decoded SignedVoluntaryExit has incorrect validator index") + assert.Equal(t, signedExit.VoluntaryExit.Epoch, decodedExit.VoluntaryExit.Epoch, "Decoded SignedVoluntaryExit has incorrect epoch") + assert.Equal(t, signedExit.VoluntaryExit.ValidatorIndex, decodedExit.VoluntaryExit.ValidatorIndex, "Decoded SignedVoluntaryExit has incorrect validator index") assert.Equal(t, signedExit.Signature, decodedExit.Signature, "Decoded SignedVoluntaryExit has incorrect signature") } @@ -47,7 +47,6 @@ func TestDepositData(t *testing.T) { WithdrawalCredentials: [32]byte{4, 5, 6}, Amount: 100, Signature: [96]byte{7, 8, 9}, - Root: [32]byte{10, 11, 12}, } // Encode DepositData to SSZ diff --git a/cl/cltypes/withdrawal.go b/cl/cltypes/withdrawal.go new file mode 100644 index 00000000000..8923820b243 --- /dev/null +++ b/cl/cltypes/withdrawal.go @@ -0,0 +1,72 @@ +package cltypes + +import ( + "fmt" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/types/ssz" + "github.com/ledgerwatch/erigon/cl/merkle_tree" + "github.com/ledgerwatch/erigon/core/types" +) + +type Withdrawal struct { + Index uint64 `json:"index"` // monotonically increasing identifier issued by consensus layer + Validator uint64 `json:"validatorIndex"` // index of validator associated with withdrawal + Address libcommon.Address `json:"address"` // target address for withdrawn ether + Amount uint64 `json:"amount"` // value of withdrawal in GWei +} + +func (obj *Withdrawal) EncodeSSZ(buf []byte) ([]byte, error) { + buf = append(buf, ssz.Uint64SSZ(obj.Index)...) + buf = append(buf, ssz.Uint64SSZ(obj.Validator)...) + buf = append(buf, obj.Address[:]...) + buf = append(buf, ssz.Uint64SSZ(obj.Amount)...) + return buf, nil +} + +func (obj *Withdrawal) DecodeSSZ(buf []byte, _ int) error { + if len(buf) < obj.EncodingSizeSSZ() { + return fmt.Errorf("[Withdrawal] err: %s", ssz.ErrLowBufferSize) + } + obj.Index = ssz.UnmarshalUint64SSZ(buf) + obj.Validator = ssz.UnmarshalUint64SSZ(buf[8:]) + copy(obj.Address[:], buf[16:]) + obj.Amount = ssz.UnmarshalUint64SSZ(buf[36:]) + return nil +} + +func (obj *Withdrawal) EncodingSizeSSZ() int { + // Validator Index (8 bytes) + Index (8 bytes) + Amount (8 bytes) + address length + return 24 + length.Addr +} + +func (obj *Withdrawal) HashSSZ() ([32]byte, error) { // the [32]byte is temporary + return merkle_tree.HashTreeRoot(obj.Index, obj.Validator, obj.Address[:], obj.Amount) +} + +func convertExecutionWithdrawalToConsensusWithdrawal(executionWithdrawal *types.Withdrawal) *Withdrawal { + return &Withdrawal{ + Index: executionWithdrawal.Index, + Validator: executionWithdrawal.Validator, + Address: executionWithdrawal.Address, + Amount: executionWithdrawal.Amount, + } +} + +func convertConsensusWithdrawalToExecutionWithdrawal(consensusWithdrawal *Withdrawal) *types.Withdrawal { + return &types.Withdrawal{ + Index: consensusWithdrawal.Index, + Validator: consensusWithdrawal.Validator, + Address: consensusWithdrawal.Address, + Amount: consensusWithdrawal.Amount, + } +} + +func convertExecutionWithdrawalsToConsensusWithdrawals(executionWithdrawal []*types.Withdrawal) []*Withdrawal { + ret := make([]*Withdrawal, len(executionWithdrawal)) + for i, w := range executionWithdrawal { + ret[i] = convertExecutionWithdrawalToConsensusWithdrawal(w) + } + return ret +} diff --git a/cl/domino/cases/binaryblob/case.go b/cl/domino/cases/binaryblob/case.go index 35df5bafb3f..c088b94e94f 100644 --- a/cl/domino/cases/binaryblob/case.go +++ b/cl/domino/cases/binaryblob/case.go @@ -75,7 +75,7 @@ func (c *Case) Domino(ctx context.Context, slot uint64) (*cltypes.SignedBeaconBl return nil, err } _, version := c.EpochAndVersion() - blk := &cltypes.SignedBeaconBlock{} + blk := cltypes.NewSignedBeaconBlock(c.BeaconConfig) err = blk.DecodeSSZ(bts, version) if err != nil { return nil, err diff --git a/cl/fork/fork.go b/cl/fork/fork.go index 7b2d4effd56..9121b768853 100644 --- a/cl/fork/fork.go +++ b/cl/fork/fork.go @@ -130,7 +130,6 @@ func ComputeNextForkDigest( // Retrieve next fork version. nextForkIndex := 0 forkList := forkList(beaconConfig.ForkVersionSchedule) - fmt.Println(forkList, beaconConfig.ForkVersionSchedule) for _, fork := range forkList { if currentEpoch >= fork.epoch { nextForkIndex++ @@ -143,7 +142,6 @@ func ComputeNextForkDigest( return [4]byte{}, nil } nextForkIndex++ - fmt.Println(forkList[nextForkIndex].version) return ComputeForkDigestForVersion(forkList[nextForkIndex].version, genesisConfig.GenesisValidatorRoot) } @@ -152,7 +150,7 @@ type fork struct { version [4]byte } -func forkList(schedule map[[4]byte]uint64) (f []fork) { +func forkList(schedule map[libcommon.Bytes4]uint64) (f []fork) { for version, epoch := range schedule { f = append(f, fork{epoch: epoch, version: version}) } @@ -165,7 +163,7 @@ func forkList(schedule map[[4]byte]uint64) (f []fork) { func ComputeForkDigestForVersion(currentVersion [4]byte, genesisValidatorsRoot [32]byte) (digest [4]byte, err error) { var currentVersion32 libcommon.Hash copy(currentVersion32[:], currentVersion[:]) - dataRoot := utils.Keccak256(currentVersion32[:], genesisValidatorsRoot[:]) + dataRoot := utils.Sha256(currentVersion32[:], genesisValidatorsRoot[:]) // copy first four bytes to output copy(digest[:], dataRoot[:4]) return @@ -229,7 +227,7 @@ func ComputeDomain( ) ([]byte, error) { var currentVersion32 libcommon.Hash copy(currentVersion32[:], currentVersion[:]) - forkDataRoot := utils.Keccak256(currentVersion32[:], genesisValidatorsRoot[:]) + forkDataRoot := utils.Sha256(currentVersion32[:], genesisValidatorsRoot[:]) return append(domainType, forkDataRoot[:28]...), nil } @@ -241,7 +239,7 @@ func ComputeSigningRoot( if err != nil { return [32]byte{}, err } - return utils.Keccak256(objRoot[:], domain), nil + return utils.Sha256(objRoot[:], domain), nil } func Domain(fork *cltypes.Fork, epoch uint64, domainType [4]byte, genesisRoot libcommon.Hash) ([]byte, error) { diff --git a/cl/fork/fork_test.go b/cl/fork/fork_test.go index 65bf3b30b0a..8e272facf2f 100644 --- a/cl/fork/fork_test.go +++ b/cl/fork/fork_test.go @@ -124,7 +124,7 @@ func TestMainnetForkDigestDenebVersion(t *testing.T) { func TestMainnetComputeForkNextDigest(t *testing.T) { beaconCfg := clparams.BeaconConfigs[clparams.MainnetNetwork] genesisCfg := clparams.GenesisConfigs[clparams.MainnetNetwork] - beaconCfg.ForkVersionSchedule = make(map[[4]byte]uint64) + beaconCfg.ForkVersionSchedule = make(map[common.Bytes4]uint64) beaconCfg.ForkVersionSchedule[utils.Uint32ToBytes4(uint32(clparams.Phase0Version))] = 0 beaconCfg.ForkVersionSchedule[utils.Uint32ToBytes4(uint32(clparams.BellatrixVersion))] = 210010230210301201 digest, err := ComputeNextForkDigest(&beaconCfg, &genesisCfg) diff --git a/cl/freezer/utils.go b/cl/freezer/utils.go index 4d2cb25ca8b..d7b2052186e 100644 --- a/cl/freezer/utils.go +++ b/cl/freezer/utils.go @@ -3,9 +3,9 @@ package freezer import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" "github.com/ledgerwatch/erigon-lib/types/ssz" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" ) type marshalerHashable interface { diff --git a/cl/merkle_tree/hasher.go b/cl/merkle_tree/hasher.go index dafb4fbab2f..6129e09d311 100644 --- a/cl/merkle_tree/hasher.go +++ b/cl/merkle_tree/hasher.go @@ -86,7 +86,7 @@ func (m *merkleHasher) transactionsListRoot(transactions [][]byte) ([32]byte, er } lengthRoot := Uint64Root(transactionLength) - leaves[i] = utils.Keccak256(transactionsBaseRoot[:], lengthRoot[:]) + leaves[i] = utils.Sha256(transactionsBaseRoot[:], lengthRoot[:]) } transactionsBaseRoot, err := MerkleizeVector(leaves, 1048576) if err != nil { @@ -95,5 +95,5 @@ func (m *merkleHasher) transactionsListRoot(transactions [][]byte) ([32]byte, er countRoot := Uint64Root(txCount) - return utils.Keccak256(transactionsBaseRoot[:], countRoot[:]), nil + return utils.Sha256(transactionsBaseRoot[:], countRoot[:]), nil } diff --git a/cl/merkle_tree/list.go b/cl/merkle_tree/list.go index 791b6a2ab59..c039d1a5691 100644 --- a/cl/merkle_tree/list.go +++ b/cl/merkle_tree/list.go @@ -71,7 +71,7 @@ func BitlistRootWithLimit(bits []byte, limit uint64) ([32]byte, error) { } lengthRoot := Uint64Root(size) - return utils.Keccak256(base[:], lengthRoot[:]), nil + return utils.Sha256(base[:], lengthRoot[:]), nil } func packBits(bytes []byte) [][32]byte { @@ -123,5 +123,5 @@ func ListObjectSSZRoot[T ssz.HashableSSZ](list []T, limit uint64) ([32]byte, err return [32]byte{}, err } lenLeaf := Uint64Root(uint64(len(list))) - return utils.Keccak256(vectorLeaf[:], lenLeaf[:]), nil + return utils.Sha256(vectorLeaf[:], lenLeaf[:]), nil } diff --git a/cl/merkle_tree/merkle_root.go b/cl/merkle_tree/merkle_root.go index a67a29b9683..ba231d4853f 100644 --- a/cl/merkle_tree/merkle_root.go +++ b/cl/merkle_tree/merkle_root.go @@ -52,7 +52,7 @@ func HashTreeRoot(schema ...interface{}) ([32]byte, error) { copy(leaves[pos:], root[:]) default: // If the element does not match any supported types, panic with an error message - panic(fmt.Sprintf("get it out of my face, u put a bad component in the schema. index %d", i)) + panic(fmt.Sprintf("Can't create TreeRoot: unsported type %T at index %d", i, obj)) } // Move the position pointer to the next leaf diff --git a/cl/persistence/base_encoding/primitives.go b/cl/persistence/base_encoding/primitives.go new file mode 100644 index 00000000000..8fdf2f3b5ac --- /dev/null +++ b/cl/persistence/base_encoding/primitives.go @@ -0,0 +1,55 @@ +package base_encoding + +import ( + "encoding/binary" + + libcommon "github.com/ledgerwatch/erigon-lib/common" +) + +func Encode64ToBytes4(x uint64) (out []byte) { + // little endian + out = make([]byte, 4) + binary.BigEndian.PutUint32(out, uint32(x)) + return +} + +func Decode64FromBytes4(buf []byte) (x uint64) { + // little endian + return uint64(binary.BigEndian.Uint32(buf)) +} + +// IndexAndPeriodKey encodes index and period (can be epoch/slot/epoch period) into 8 bytes +func IndexAndPeriodKey(index, timeframe uint64) (out []byte) { + out = make([]byte, 8) + binary.BigEndian.PutUint32(out[:4], uint32(index)) + binary.BigEndian.PutUint32(out[4:], uint32(timeframe)) + return +} + +// Encode a number with least amount of bytes +func EncodeCompactUint64(x uint64) (out []byte) { + for x >= 0x80 { + out = append(out, byte(x)|0x80) + x >>= 7 + } + out = append(out, byte(x)) + return +} + +// DecodeCompactUint64 decodes a number encoded with EncodeCompactUint64 +func DecodeCompactUint64(buf []byte) (x uint64) { + for i := 0; i < len(buf); i++ { + x |= uint64(buf[i]&0x7f) << (7 * uint(i)) + if buf[i]&0x80 == 0 { + return + } + } + return +} + +func EncodePeriodAndRoot(period uint32, root libcommon.Hash) []byte { + out := make([]byte, 36) + binary.BigEndian.PutUint32(out[:4], period) + copy(out[4:], root[:]) + return out +} diff --git a/cl/persistence/base_encoding/primitives_test.go b/cl/persistence/base_encoding/primitives_test.go new file mode 100644 index 00000000000..11c80684ecf --- /dev/null +++ b/cl/persistence/base_encoding/primitives_test.go @@ -0,0 +1,76 @@ +package base_encoding + +import ( + "bytes" + "encoding/binary" + "fmt" + "testing" + + "github.com/stretchr/testify/require" +) + +func Test64(t *testing.T) { + number := uint64(9992) + + out := Encode64ToBytes4(number) + require.Equal(t, Decode64FromBytes4(out), number) + + out = EncodeCompactUint64(number) + require.Equal(t, DecodeCompactUint64(out), number) +} + +func TestDiff64(t *testing.T) { + old := make([]byte, 800000) + new := make([]byte, 800008) + inc := 1 + for i := 0; i < 80; i++ { + if i%9 == 0 { + inc++ + } + old[i] = byte(i) + new[i] = byte(i + inc) + } + + var b bytes.Buffer + + err := ComputeCompressedSerializedUint64ListDiff(&b, old, new) + require.NoError(t, err) + + out := b.Bytes() + new2, err := ApplyCompressedSerializedUint64ListDiff(old, nil, out) + require.NoError(t, err) + + require.Equal(t, new, new2) +} + +func TestDiff64Effective(t *testing.T) { + sizeOld := 800 + sizeNew := 816 + old := make([]byte, sizeOld*121) + new := make([]byte, sizeNew*121) + previous := make([]byte, sizeOld*8) + expected := make([]byte, sizeNew*8) + for i := 0; i < sizeNew; i++ { + validatorOffset := i * 121 + newNum := i + 32 + oldNum := i + 12 + binary.BigEndian.PutUint64(expected[i*8:], uint64(newNum)) + binary.BigEndian.PutUint64(new[validatorOffset+80:], uint64(newNum)) + if i < len(old)/121 { + binary.BigEndian.PutUint64(previous[i*8:], uint64(oldNum)) + binary.BigEndian.PutUint64(old[validatorOffset+80:], uint64(oldNum)) + } + } + + var b bytes.Buffer + + err := ComputeCompressedSerializedEffectiveBalancesDiff(&b, old, new) + require.NoError(t, err) + + out := b.Bytes() + new2, err := ApplyCompressedSerializedUint64ListDiff(previous, nil, out) + require.NoError(t, err) + fmt.Println(previous) + + require.Equal(t, new2, expected) +} diff --git a/cl/persistence/base_encoding/uint64_diff.go b/cl/persistence/base_encoding/uint64_diff.go new file mode 100644 index 00000000000..1e3496082e9 --- /dev/null +++ b/cl/persistence/base_encoding/uint64_diff.go @@ -0,0 +1,245 @@ +package base_encoding + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "sync" + + "github.com/klauspost/compress/zstd" + "github.com/ledgerwatch/erigon/cl/utils" +) + +// make a sync.pool of compressors (zstd) +var compressorPool = sync.Pool{ + New: func() interface{} { + compressor, err := zstd.NewWriter(nil, zstd.WithEncoderLevel(zstd.SpeedFastest)) + if err != nil { + panic(err) + } + return compressor + }, +} + +var bufferPool = sync.Pool{ + New: func() interface{} { + return &bytes.Buffer{} + }, +} + +var plainUint64BufferPool = sync.Pool{ + New: func() interface{} { + b := make([]uint64, 1028) + return &b + }, +} + +var plainBytesBufferPool = sync.Pool{ + New: func() interface{} { + b := make([]byte, 1028) + return &b + }, +} + +var repeatedPatternBufferPool = sync.Pool{ + New: func() interface{} { + b := make([]repeatedPatternEntry, 1028) + return &b + }, +} + +type repeatedPatternEntry struct { + val uint64 + count uint32 +} + +func ComputeCompressedSerializedUint64ListDiff(w io.Writer, old, new []byte) error { + if len(old) > len(new) { + return fmt.Errorf("old list is longer than new list") + } + + compressor := compressorPool.Get().(*zstd.Encoder) + defer compressorPool.Put(compressor) + compressor.Reset(w) + + // Get one plain buffer from the pool + plainBufferPtr := plainUint64BufferPool.Get().(*[]uint64) + defer plainUint64BufferPool.Put(plainBufferPtr) + plainBuffer := *plainBufferPtr + plainBuffer = plainBuffer[:0] + + // Get one repeated pattern buffer from the pool + repeatedPatternPtr := repeatedPatternBufferPool.Get().(*[]repeatedPatternEntry) + defer repeatedPatternBufferPool.Put(repeatedPatternPtr) + repeatedPattern := *repeatedPatternPtr + repeatedPattern = repeatedPattern[:0] + + for i := 0; i < len(new); i += 8 { + if i+8 > len(old) { + // Append the remaining new bytes that were not in the old slice + plainBuffer = append(plainBuffer, binary.LittleEndian.Uint64(new[i:])) + continue + } + plainBuffer = append(plainBuffer, binary.LittleEndian.Uint64(new[i:i+8])-binary.LittleEndian.Uint64(old[i:i+8])) + } + // Find the repeated pattern + prevVal := plainBuffer[0] + count := uint32(1) + for i := 1; i < len(plainBuffer); i++ { + if plainBuffer[i] == prevVal { + count++ + continue + } + repeatedPattern = append(repeatedPattern, repeatedPatternEntry{prevVal, count}) + prevVal = plainBuffer[i] + count = 1 + } + repeatedPattern = append(repeatedPattern, repeatedPatternEntry{prevVal, count}) + if err := binary.Write(w, binary.BigEndian, uint32(len(repeatedPattern))); err != nil { + return err + } + temp := make([]byte, 8) + + // Write the repeated pattern + for _, entry := range repeatedPattern { + binary.BigEndian.PutUint32(temp[:4], entry.count) + if _, err := compressor.Write(temp[:4]); err != nil { + return err + } + binary.BigEndian.PutUint64(temp, entry.val) + if _, err := compressor.Write(temp); err != nil { + return err + } + } + *repeatedPatternPtr = repeatedPattern[:0] + *plainBufferPtr = plainBuffer[:0] + + return compressor.Close() +} + +func ComputeCompressedSerializedEffectiveBalancesDiff(w io.Writer, old, new []byte) error { + if len(old) > len(new) { + return fmt.Errorf("old list is longer than new list") + } + + compressor := compressorPool.Get().(*zstd.Encoder) + defer compressorPool.Put(compressor) + compressor.Reset(w) + + // Get one plain buffer from the pool + plainBufferPtr := plainUint64BufferPool.Get().(*[]uint64) + defer plainUint64BufferPool.Put(plainBufferPtr) + plainBuffer := *plainBufferPtr + plainBuffer = plainBuffer[:0] + + // Get one repeated pattern buffer from the pool + repeatedPatternPtr := repeatedPatternBufferPool.Get().(*[]repeatedPatternEntry) + defer repeatedPatternBufferPool.Put(repeatedPatternPtr) + repeatedPattern := *repeatedPatternPtr + repeatedPattern = repeatedPattern[:0] + + validatorSize := 121 + for i := 0; i < len(new); i += validatorSize { + // 80:88 + if i+88 > len(old) { + // Append the remaining new bytes that were not in the old slice + plainBuffer = append(plainBuffer, binary.LittleEndian.Uint64(new[i+80:i+88])) + continue + } + plainBuffer = append(plainBuffer, binary.LittleEndian.Uint64(new[i+80:i+88])-binary.LittleEndian.Uint64(old[i+80:i+88])) + } + // Find the repeated pattern + prevVal := plainBuffer[0] + count := uint32(1) + for i := 1; i < len(plainBuffer); i++ { + if plainBuffer[i] == prevVal { + count++ + continue + } + repeatedPattern = append(repeatedPattern, repeatedPatternEntry{prevVal, count}) + prevVal = plainBuffer[i] + count = 1 + } + repeatedPattern = append(repeatedPattern, repeatedPatternEntry{prevVal, count}) + if err := binary.Write(w, binary.BigEndian, uint32(len(repeatedPattern))); err != nil { + return err + } + temp := make([]byte, 8) + + // Write the repeated pattern + for _, entry := range repeatedPattern { + binary.BigEndian.PutUint32(temp[:4], entry.count) + if _, err := compressor.Write(temp[:4]); err != nil { + return err + } + binary.BigEndian.PutUint64(temp, entry.val) + if _, err := compressor.Write(temp); err != nil { + return err + } + } + *repeatedPatternPtr = repeatedPattern[:0] + *plainBufferPtr = plainBuffer[:0] + + return compressor.Close() + +} + +func ApplyCompressedSerializedUint64ListDiff(old, out []byte, diff []byte) ([]byte, error) { + out = out[:0] + + buffer := bufferPool.Get().(*bytes.Buffer) + defer bufferPool.Put(buffer) + buffer.Reset() + + if _, err := buffer.Write(diff); err != nil { + return nil, err + } + + var length uint32 + if err := binary.Read(buffer, binary.BigEndian, &length); err != nil { + return nil, err + } + var entry repeatedPatternEntry + + decompressor, err := zstd.NewReader(buffer) + if err != nil { + return nil, err + } + defer decompressor.Close() + + temp := make([]byte, 8) + currIndex := 0 + for i := 0; i < int(length); i++ { + n, err := utils.ReadZSTD(decompressor, temp[:4]) + if err != nil && !errors.Is(err, io.EOF) { + return nil, err + } + if n != 4 { + return nil, io.EOF + } + entry.count = binary.BigEndian.Uint32(temp[:4]) + + n, err = utils.ReadZSTD(decompressor, temp) + if err != nil && !errors.Is(err, io.EOF) { + return nil, err + } + if n != 8 { + return nil, io.EOF + } + entry.val = binary.BigEndian.Uint64(temp) + for j := 0; j < int(entry.count); j++ { + if currIndex+8 > len(old) { + // Append the remaining new bytes that were not in the old slice + out = binary.LittleEndian.AppendUint64(out, entry.val) + currIndex += 8 + continue + } + out = binary.LittleEndian.AppendUint64(out, binary.LittleEndian.Uint64(old[currIndex:currIndex+8])+entry.val) + currIndex += 8 + } + } + + return out, nil +} diff --git a/cl/persistence/beacon_indicies/indicies.go b/cl/persistence/beacon_indicies/indicies.go new file mode 100644 index 00000000000..a58b0de8c96 --- /dev/null +++ b/cl/persistence/beacon_indicies/indicies.go @@ -0,0 +1,275 @@ +package beacon_indicies + +import ( + "context" + "fmt" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/base_encoding" + _ "modernc.org/sqlite" +) + +func WriteHighestFinalized(tx kv.RwTx, slot uint64) error { + return tx.Put(kv.HighestFinalized, kv.HighestFinalizedKey, base_encoding.Encode64ToBytes4(slot)) +} + +func ReadHighestFinalized(tx kv.Tx) (uint64, error) { + val, err := tx.GetOne(kv.HighestFinalized, kv.HighestFinalizedKey) + if err != nil { + return 0, err + } + if len(val) == 0 { + return 0, nil + } + return base_encoding.Decode64FromBytes4(val), nil +} + +// WriteBlockRootSlot writes the slot associated with a block root. +func WriteHeaderSlot(tx kv.RwTx, blockRoot libcommon.Hash, slot uint64) error { + return tx.Put(kv.BlockRootToSlot, blockRoot[:], base_encoding.Encode64ToBytes4(slot)) +} + +func ReadBlockSlotByBlockRoot(tx kv.Tx, blockRoot libcommon.Hash) (*uint64, error) { + slotBytes, err := tx.GetOne(kv.BlockRootToSlot, blockRoot[:]) + if err != nil { + return nil, err + } + if len(slotBytes) == 0 { + return nil, nil + } + slot := new(uint64) + *slot = base_encoding.Decode64FromBytes4(slotBytes) + return slot, nil +} + +// WriteBlockRootSlot writes the slot associated with a block root. +func WriteStateRoot(tx kv.RwTx, blockRoot libcommon.Hash, stateRoot libcommon.Hash) error { + if err := tx.Put(kv.BlockRootToStateRoot, blockRoot[:], stateRoot[:]); err != nil { + return err + } + return tx.Put(kv.StateRootToBlockRoot, stateRoot[:], blockRoot[:]) +} + +func ReadStateRootByBlockRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (libcommon.Hash, error) { + var stateRoot libcommon.Hash + + sRoot, err := tx.GetOne(kv.BlockRootToStateRoot, blockRoot[:]) + if err != nil { + return libcommon.Hash{}, err + } + + copy(stateRoot[:], sRoot) + + return stateRoot, nil +} + +func ReadBlockRootByStateRoot(tx kv.Tx, stateRoot libcommon.Hash) (libcommon.Hash, error) { + var blockRoot libcommon.Hash + + bRoot, err := tx.GetOne(kv.StateRootToBlockRoot, stateRoot[:]) + if err != nil { + return libcommon.Hash{}, err + } + + copy(blockRoot[:], bRoot) + + return blockRoot, nil +} + +func ReadCanonicalBlockRoot(tx kv.Tx, slot uint64) (libcommon.Hash, error) { + var blockRoot libcommon.Hash + + bRoot, err := tx.GetOne(kv.CanonicalBlockRoots, base_encoding.Encode64ToBytes4(slot)) + if err != nil { + return libcommon.Hash{}, err + } + + copy(blockRoot[:], bRoot) + return blockRoot, nil +} + +func WriteLastBeaconSnapshot(tx kv.RwTx, slot uint64) error { + return tx.Put(kv.LastBeaconSnapshot, []byte(kv.LastBeaconSnapshotKey), base_encoding.Encode64ToBytes4(slot)) +} + +func ReadLastBeaconSnapshot(tx kv.Tx) (uint64, error) { + val, err := tx.GetOne(kv.LastBeaconSnapshot, []byte(kv.LastBeaconSnapshotKey)) + if err != nil { + return 0, err + } + if len(val) == 0 { + return 0, nil + } + return base_encoding.Decode64FromBytes4(val), nil +} + +func MarkRootCanonical(ctx context.Context, tx kv.RwTx, slot uint64, blockRoot libcommon.Hash) error { + return tx.Put(kv.CanonicalBlockRoots, base_encoding.Encode64ToBytes4(slot), blockRoot[:]) +} + +func WriteExecutionBlockNumber(tx kv.RwTx, blockRoot libcommon.Hash, blockNumber uint64) error { + return tx.Put(kv.BlockRootToBlockNumber, blockRoot[:], base_encoding.Encode64ToBytes4(blockNumber)) +} + +func WriteExecutionBlockHash(tx kv.RwTx, blockRoot, blockHash libcommon.Hash) error { + return tx.Put(kv.BlockRootToBlockHash, blockRoot[:], blockHash[:]) +} + +func ReadExecutionBlockNumber(tx kv.Tx, blockRoot libcommon.Hash) (*uint64, error) { + val, err := tx.GetOne(kv.BlockRootToBlockNumber, blockRoot[:]) + if err != nil { + return nil, err + } + if len(val) == 0 { + return nil, nil + } + ret := new(uint64) + *ret = base_encoding.Decode64FromBytes4(val) + return ret, nil +} + +func ReadExecutionBlockHash(tx kv.Tx, blockRoot libcommon.Hash) (libcommon.Hash, error) { + val, err := tx.GetOne(kv.BlockRootToBlockHash, blockRoot[:]) + if err != nil { + return libcommon.Hash{}, err + } + if len(val) == 0 { + return libcommon.Hash{}, nil + } + return libcommon.BytesToHash(val), nil +} + +func WriteBeaconBlockHeader(ctx context.Context, tx kv.RwTx, signedHeader *cltypes.SignedBeaconBlockHeader) error { + headersBytes, err := signedHeader.EncodeSSZ(nil) + if err != nil { + return err + } + blockRoot, err := signedHeader.Header.HashSSZ() + if err != nil { + return err + } + return tx.Put(kv.BeaconBlockHeaders, blockRoot[:], headersBytes) +} + +func WriteBeaconBlockHeaderAndIndicies(ctx context.Context, tx kv.RwTx, signedHeader *cltypes.SignedBeaconBlockHeader, forceCanonical bool) error { + blockRoot, err := signedHeader.Header.HashSSZ() + if err != nil { + return err + } + if err := WriteBeaconBlockHeader(ctx, tx, signedHeader); err != nil { + return err + } + if err := WriteHeaderSlot(tx, blockRoot, signedHeader.Header.Slot); err != nil { + return err + } + if err := WriteStateRoot(tx, blockRoot, signedHeader.Header.Root); err != nil { + return err + } + if err := WriteParentBlockRoot(ctx, tx, blockRoot, signedHeader.Header.ParentRoot); err != nil { + return err + } + if forceCanonical { + if err := MarkRootCanonical(ctx, tx, signedHeader.Header.Slot, blockRoot); err != nil { + return err + } + } + + return nil +} + +func ReadParentBlockRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (libcommon.Hash, error) { + var parentRoot libcommon.Hash + + pRoot, err := tx.GetOne(kv.BlockRootToParentRoot, blockRoot[:]) + if err != nil { + return libcommon.Hash{}, err + } + + copy(parentRoot[:], pRoot) + + return parentRoot, nil +} + +func WriteParentBlockRoot(ctx context.Context, tx kv.RwTx, blockRoot, parentRoot libcommon.Hash) error { + return tx.Put(kv.BlockRootToParentRoot, blockRoot[:], parentRoot[:]) +} + +func TruncateCanonicalChain(ctx context.Context, tx kv.RwTx, slot uint64) error { + return tx.ForEach(kv.CanonicalBlockRoots, base_encoding.Encode64ToBytes4(slot), func(k, _ []byte) error { + return tx.Delete(kv.CanonicalBlockRoots, k) + }) +} + +func PruneSignedHeaders(tx kv.RwTx, from uint64) error { + cursor, err := tx.RwCursor(kv.BeaconBlockHeaders) + if err != nil { + return err + } + for k, _, err := cursor.Seek(base_encoding.Encode64ToBytes4(from)); err == nil && k != nil; k, _, err = cursor.Prev() { + if err != nil { + return err + } + if err := cursor.DeleteCurrent(); err != nil { + return err + } + } + return nil +} + +func RangeBlockRoots(ctx context.Context, tx kv.Tx, fromSlot, toSlot uint64, fn func(slot uint64, beaconBlockRoot libcommon.Hash) bool) error { + cursor, err := tx.Cursor(kv.CanonicalBlockRoots) + if err != nil { + return err + } + for k, v, err := cursor.Seek(base_encoding.Encode64ToBytes4(fromSlot)); err == nil && k != nil && base_encoding.Decode64FromBytes4(k) <= toSlot; k, v, err = cursor.Next() { + if !fn(base_encoding.Decode64FromBytes4(k), libcommon.BytesToHash(v)) { + break + } + } + return err +} + +func PruneBlockRoots(ctx context.Context, tx kv.RwTx, fromSlot, toSlot uint64) error { + cursor, err := tx.RwCursor(kv.CanonicalBlockRoots) + if err != nil { + return err + } + for k, _, err := cursor.Seek(base_encoding.Encode64ToBytes4(fromSlot)); err == nil && k != nil && base_encoding.Decode64FromBytes4(k) <= toSlot; k, _, err = cursor.Next() { + if err := cursor.DeleteCurrent(); err != nil { + return err + } + } + return err +} + +func ReadBeaconBlockRootsInSlotRange(ctx context.Context, tx kv.Tx, fromSlot, count uint64) ([]libcommon.Hash, []uint64, error) { + blockRoots := make([]libcommon.Hash, 0, count) + slots := make([]uint64, 0, count) + err := RangeBlockRoots(ctx, tx, fromSlot, fromSlot+count, func(slot uint64, beaconBlockRoot libcommon.Hash) bool { + blockRoots = append(blockRoots, beaconBlockRoot) + slots = append(slots, slot) + return true + }) + return blockRoots, slots, err +} + +func ReadSignedHeaderByBlockRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, bool, error) { + h := &cltypes.SignedBeaconBlockHeader{Header: &cltypes.BeaconBlockHeader{}} + headerBytes, err := tx.GetOne(kv.BeaconBlockHeaders, blockRoot[:]) + if err != nil { + return nil, false, err + } + if len(headerBytes) == 0 { + return nil, false, nil + } + if err := h.DecodeSSZ(headerBytes, 0); err != nil { + return nil, false, fmt.Errorf("failed to decode BeaconHeader: %v", err) + } + canonical, err := ReadCanonicalBlockRoot(tx, h.Header.Slot) + if err != nil { + return nil, false, err + } + return h, canonical == blockRoot, nil +} diff --git a/cl/persistence/beacon_indicies/indicies_test.go b/cl/persistence/beacon_indicies/indicies_test.go new file mode 100644 index 00000000000..3db10d48eca --- /dev/null +++ b/cl/persistence/beacon_indicies/indicies_test.go @@ -0,0 +1,174 @@ +package beacon_indicies + +import ( + "context" + "testing" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/stretchr/testify/require" +) + +func setupTestDB(t *testing.T) kv.RwDB { + // Create an in-memory SQLite DB for testing purposes + db := memdb.NewTestDB(t) + return db +} + +func TestWriteBlockRoot(t *testing.T) { + db := setupTestDB(t) + defer db.Close() + tx, _ := db.BeginRw(context.Background()) + defer tx.Rollback() + + // Mock a block + block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + block.Block.Slot = 56 + block.EncodingSizeSSZ() + + require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), false)) + + // Try to retrieve the block's slot by its blockRoot and verify + blockRoot, err := block.Block.HashSSZ() + require.NoError(t, err) + + retrievedSlot, err := ReadBlockSlotByBlockRoot(tx, blockRoot) + require.NoError(t, err) + require.Equal(t, block.Block.Slot, *retrievedSlot) + + canonicalRoot, err := ReadCanonicalBlockRoot(tx, *retrievedSlot) + require.NoError(t, err) + require.Equal(t, libcommon.Hash{}, canonicalRoot) + + err = MarkRootCanonical(context.Background(), tx, *retrievedSlot, blockRoot) + require.NoError(t, err) + + canonicalRoot, err = ReadCanonicalBlockRoot(tx, *retrievedSlot) + require.NoError(t, err) + require.Equal(t, libcommon.Hash(blockRoot), canonicalRoot) +} + +func TestReadParentBlockRoot(t *testing.T) { + db := setupTestDB(t) + defer db.Close() + tx, _ := db.BeginRw(context.Background()) + defer tx.Rollback() + + mockParentRoot := libcommon.Hash{1} + // Mock a block + block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + block.Block.Slot = 56 + block.Block.ParentRoot = mockParentRoot + block.EncodingSizeSSZ() + + require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), false)) + + // Try to retrieve the block's slot by its blockRoot and verify + blockRoot, err := block.Block.HashSSZ() + require.NoError(t, err) + + retrieveParentRoot, err := ReadParentBlockRoot(context.Background(), tx, blockRoot) + require.NoError(t, err) + require.Equal(t, mockParentRoot, retrieveParentRoot) +} + +func TestTruncateCanonicalChain(t *testing.T) { + db := setupTestDB(t) + defer db.Close() + tx, _ := db.BeginRw(context.Background()) + defer tx.Rollback() + + mockParentRoot := libcommon.Hash{1} + // Mock a block + block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + block.Block.Slot = 56 + block.Block.ParentRoot = mockParentRoot + block.EncodingSizeSSZ() + + require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), true)) + + // Try to retrieve the block's slot by its blockRoot and verify + blockRoot, err := block.Block.HashSSZ() + require.NoError(t, err) + + canonicalRoot, err := ReadCanonicalBlockRoot(tx, block.Block.Slot) + require.NoError(t, err) + require.Equal(t, libcommon.Hash(blockRoot), canonicalRoot) + + require.NoError(t, TruncateCanonicalChain(context.Background(), tx, 0)) + + canonicalRoot, err = ReadCanonicalBlockRoot(tx, block.Block.Slot) + require.NoError(t, err) + require.Equal(t, canonicalRoot, libcommon.Hash{}) +} + +func TestReadBeaconBlockHeader(t *testing.T) { + db := setupTestDB(t) + defer db.Close() + tx, _ := db.BeginRw(context.Background()) + defer tx.Rollback() + + mockParentRoot := libcommon.Hash{1} + mockSignature := [96]byte{23} + + // Mock a block + block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + block.Block.Slot = 56 + block.Block.ParentRoot = mockParentRoot + block.Signature = mockSignature + + canonical := true + block.EncodingSizeSSZ() + + require.NoError(t, WriteBeaconBlockHeaderAndIndicies(context.Background(), tx, block.SignedBeaconBlockHeader(), canonical)) + + // Try to retrieve the block's slot by its blockRoot and verify + blockRoot, err := block.Block.HashSSZ() + require.NoError(t, err) + + header, isCanonical, err := ReadSignedHeaderByBlockRoot(context.Background(), tx, blockRoot) + require.NoError(t, err) + require.Equal(t, isCanonical, canonical) + require.NotNil(t, header) + + headerRoot, err := header.Header.HashSSZ() + require.NoError(t, err) + + require.Equal(t, headerRoot, blockRoot) + +} + +func TestWriteExecutionBlockNumber(t *testing.T) { + db := setupTestDB(t) + defer db.Close() + tx, _ := db.BeginRw(context.Background()) + defer tx.Rollback() + + tHash := libcommon.HexToHash("0x2") + require.NoError(t, WriteExecutionBlockNumber(tx, tHash, 1)) + require.NoError(t, WriteExecutionBlockNumber(tx, tHash, 2)) + require.NoError(t, WriteExecutionBlockNumber(tx, tHash, 3)) + + // Try to retrieve the block's slot by its blockRoot and verify + blockNumber, err := ReadExecutionBlockNumber(tx, tHash) + require.NoError(t, err) + require.Equal(t, uint64(3), *blockNumber) +} + +func TestWriteExecutionBlockHash(t *testing.T) { + db := setupTestDB(t) + defer db.Close() + tx, _ := db.BeginRw(context.Background()) + defer tx.Rollback() + + tHash := libcommon.HexToHash("0x2") + tHash2 := libcommon.HexToHash("0x3") + require.NoError(t, WriteExecutionBlockHash(tx, tHash, tHash2)) + // Try to retrieve the block's slot by its blockRoot and verify + tHash3, err := ReadExecutionBlockHash(tx, tHash) + require.NoError(t, err) + require.Equal(t, tHash2, tHash3) +} diff --git a/cl/persistence/block_saver.go b/cl/persistence/block_saver.go new file mode 100644 index 00000000000..d2497e335f7 --- /dev/null +++ b/cl/persistence/block_saver.go @@ -0,0 +1,185 @@ +package persistence + +import ( + "context" + "errors" + "fmt" + "io" + "strings" + + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" + "go.uber.org/zap/buffer" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" + "github.com/spf13/afero" +) + +const subDivisionFolderSize = 10_000 + +type beaconChainDatabaseFilesystem struct { + rawDB RawBeaconBlockChain + cfg *clparams.BeaconChainConfig + + executionEngine execution_client.ExecutionEngine +} + +func NewBeaconChainDatabaseFilesystem(rawDB RawBeaconBlockChain, executionEngine execution_client.ExecutionEngine, cfg *clparams.BeaconChainConfig) BeaconChainDatabase { + return beaconChainDatabaseFilesystem{ + rawDB: rawDB, + cfg: cfg, + executionEngine: executionEngine, + } +} + +func (b beaconChainDatabaseFilesystem) GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) { + blockRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, slot) + if err != nil { + return nil, err + } + if blockRoot == (libcommon.Hash{}) { + return nil, nil + } + + r, err := b.rawDB.BlockReader(ctx, slot, blockRoot) + if err != nil { + return nil, err + } + defer r.Close() + + block := cltypes.NewSignedBeaconBlock(b.cfg) + version := b.cfg.GetCurrentStateVersion(slot / b.cfg.SlotsPerEpoch) + if err := ssz_snappy.DecodeAndReadNoForkDigest(r, block, version); err != nil { + return nil, err + } + + return &peers.PeeredObject[*cltypes.SignedBeaconBlock]{Data: block}, nil +} + +func (b beaconChainDatabaseFilesystem) GetRange(ctx context.Context, tx kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) { + // Retrieve block roots for each ranged slot + beaconBlockRooots, slots, err := beacon_indicies.ReadBeaconBlockRootsInSlotRange(ctx, tx, from, count) + if err != nil { + return nil, err + } + + if len(beaconBlockRooots) == 0 { + return &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{}, nil + } + + blocks := []*cltypes.SignedBeaconBlock{} + for idx, blockRoot := range beaconBlockRooots { + slot := slots[idx] + + r, err := b.rawDB.BlockReader(ctx, slot, blockRoot) + if errors.Is(err, afero.ErrFileNotFound) { + continue + } + if err != nil { + return nil, err + } + defer r.Close() + + block := cltypes.NewSignedBeaconBlock(b.cfg) + version := b.cfg.GetCurrentStateVersion(slot / b.cfg.SlotsPerEpoch) + if err := ssz_snappy.DecodeAndReadNoForkDigest(r, block, version); err != nil { + return nil, err + } + + blocks = append(blocks, block) + } + return &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{Data: blocks}, nil + +} + +func (b beaconChainDatabaseFilesystem) PurgeRange(ctx context.Context, tx kv.Tx, from uint64, count uint64) error { + if err := beacon_indicies.RangeBlockRoots(ctx, tx, from, from+count, func(slot uint64, beaconBlockRoot libcommon.Hash) bool { + b.rawDB.DeleteBlock(ctx, slot, beaconBlockRoot) + return true + }); err != nil { + return err + } + + return nil +} + +func (b beaconChainDatabaseFilesystem) WriteBlock(ctx context.Context, tx kv.RwTx, block *cltypes.SignedBeaconBlock, canonical bool) error { + blockRoot, err := block.Block.HashSSZ() + if err != nil { + return err + } + + w, err := b.rawDB.BlockWriter(ctx, block.Block.Slot, blockRoot) + if err != nil { + return err + } + defer w.Close() + + if fp, ok := w.(afero.File); ok { + err = fp.Truncate(0) + if err != nil { + return err + } + _, err = fp.Seek(0, io.SeekStart) + if err != nil { + return err + } + } + + err = ssz_snappy.EncodeAndWrite(w, block) + if err != nil { + return err + } + + if fp, ok := w.(afero.File); ok { + err = fp.Sync() + if err != nil { + return err + } + } + bodyRoot, err := block.Block.Body.HashSSZ() + if err != nil { + return err + } + if block.Version() >= clparams.BellatrixVersion { + if err := beacon_indicies.WriteExecutionBlockNumber(tx, blockRoot, block.Block.Body.ExecutionPayload.BlockNumber); err != nil { + return err + } + if err := beacon_indicies.WriteExecutionBlockHash(tx, blockRoot, block.Block.Body.ExecutionPayload.BlockHash); err != nil { + return err + } + } + + if err := beacon_indicies.WriteBeaconBlockHeaderAndIndicies(ctx, tx, &cltypes.SignedBeaconBlockHeader{ + Signature: block.Signature, + Header: &cltypes.BeaconBlockHeader{ + Slot: block.Block.Slot, + ParentRoot: block.Block.ParentRoot, + ProposerIndex: block.Block.ProposerIndex, + Root: block.Block.StateRoot, + BodyRoot: bodyRoot, + }, + }, canonical); err != nil { + return err + } + return nil +} + +// SlotToPaths define the file structure to store a block +// +// "/signedBeaconBlock/{slot/10_000}/{root}.ssz_snappy" +func rootToPaths(slot uint64, root libcommon.Hash, config *clparams.BeaconChainConfig) (folderPath string, filePath string) { + // bufio + buffer := bPool.Get().(*buffer.Buffer) + defer bPool.Put(buffer) + buffer.Reset() + + fmt.Fprintf(buffer, "%d/%x.sz", slot/subDivisionFolderSize, root) + split := strings.Split(buffer.String(), "/") + return split[0], buffer.String() +} diff --git a/cl/persistence/block_saver_test.go b/cl/persistence/block_saver_test.go new file mode 100644 index 00000000000..c49e593feba --- /dev/null +++ b/cl/persistence/block_saver_test.go @@ -0,0 +1,138 @@ +package persistence + +import ( + "context" + "testing" + + _ "embed" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + "github.com/ledgerwatch/erigon/cl/utils" + "github.com/ledgerwatch/erigon/core/types" + "github.com/spf13/afero" + "github.com/stretchr/testify/require" +) + +type mockEngine struct { + blocks map[uint64]*types.Block +} + +func newMockEngine() execution_client.ExecutionEngine { + return &mockEngine{ + blocks: make(map[uint64]*types.Block), + } +} + +func (m *mockEngine) ForkChoiceUpdate(finalized libcommon.Hash, head libcommon.Hash) error { + panic("unimplemented") +} + +func (m *mockEngine) FrozenBlocks() uint64 { + panic("unimplemented") +} + +func (m *mockEngine) NewPayload(payload *cltypes.Eth1Block, beaconParentRoot *libcommon.Hash) (bool, error) { + panic("unimplemented") +} + +func (m *mockEngine) SupportInsertion() bool { + return true +} + +func (m *mockEngine) InsertBlocks([]*types.Block) error { + panic("unimplemented") +} + +func (m *mockEngine) IsCanonicalHash(libcommon.Hash) (bool, error) { + panic("unimplemented") +} + +func (m *mockEngine) Ready() (bool, error) { + return true, nil +} + +func (m *mockEngine) InsertBlock(b *types.Block) error { + m.blocks[b.NumberU64()] = b + return nil +} + +func (m *mockEngine) GetBodiesByRange(start, count uint64) ([]*types.RawBody, error) { + bds := []*types.RawBody{} + for i := start; i < start+count; i++ { + + blk, ok := m.blocks[i] + if !ok { + break + } + bds = append(bds, blk.RawBody()) + } + return bds, nil +} + +func (m *mockEngine) GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error) { + panic("unimplemented") +} + +//go:embed test_data/test_block.ssz_snappy +var testBlock []byte + +func getTestBlock() *cltypes.SignedBeaconBlock { + enc, err := utils.DecompressSnappy(testBlock) + if err != nil { + panic(err) + } + bcBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + if err := bcBlock.DecodeSSZ(enc, int(clparams.CapellaVersion)); err != nil { + panic(err) + } + bcBlock.Block.Slot = (clparams.MainnetBeaconConfig.CapellaForkEpoch + 1) * 32 + bcBlock.Block.Body.ExecutionPayload.Transactions = solid.NewTransactionsSSZFromTransactions(nil) + bcBlock.Block.Body.ExecutionPayload.BlockNumber = 100 + bcBlock.Block.Body.ExecutionPayload.BlockHash = libcommon.HexToHash("0x78e6ce0d5a80c7416138af475d20c0a0a22124ae67b6dc5a0d0d0fe6f95e365d") + return bcBlock +} + +func setupStore(t *testing.T, full bool) (BeaconChainDatabase, kv.RwDB, execution_client.ExecutionEngine) { + // Open an in-memory SQLite database for testing + db := memdb.NewTestDB(t) + // Create an in-memory filesystem + fs := afero.NewMemMapFs() + engine := newMockEngine() + return NewBeaconChainDatabaseFilesystem(NewAferoRawBlockSaver(fs, &clparams.MainnetBeaconConfig), engine, &clparams.MainnetBeaconConfig), db, engine +} + +func TestBlockSaverStoreLoadPurgeFull(t *testing.T) { + store, db, _ := setupStore(t, true) + defer db.Close() + + tx, _ := db.BeginRw(context.Background()) + defer tx.Rollback() + + ctx := context.Background() + block := getTestBlock() + require.NoError(t, store.WriteBlock(ctx, tx, block, true)) + + blks, err := store.GetRange(context.Background(), tx, block.Block.Slot, 1) + require.NoError(t, err) + require.Equal(t, len(blks.Data), 1) + + expectedRoot, err := block.HashSSZ() + require.NoError(t, err) + + haveRoot, err := blks.Data[0].HashSSZ() + require.NoError(t, err) + + require.Equal(t, expectedRoot, haveRoot) + + require.NoError(t, store.PurgeRange(ctx, tx, 0, 99999999999)) // THE PUURGE + + newBlks, err := store.GetRange(context.Background(), tx, block.Block.Slot, 1) + require.NoError(t, err) + require.Equal(t, len(newBlks.Data), 0) +} diff --git a/cl/persistence/block_store.go b/cl/persistence/block_store.go new file mode 100644 index 00000000000..c3ad0492497 --- /dev/null +++ b/cl/persistence/block_store.go @@ -0,0 +1,161 @@ +package persistence + +import ( + "context" + "sync" + "time" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/phase1/network" + "github.com/ledgerwatch/erigon/cl/rpc" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" + "github.com/tidwall/btree" +) + +var _ BlockSource = (*BeaconRpcSource)(nil) + +type BeaconRpcSource struct { + rpc *rpc.BeaconRpcP2P +} + +func (b *BeaconRpcSource) SaveBlocks(ctx context.Context, blocks *peers.PeeredObject[*cltypes.SignedBeaconBlock]) error { + // it is a no-op because there is no need to do this + return nil +} + +func NewBeaconRpcSource(rpc *rpc.BeaconRpcP2P) *BeaconRpcSource { + return &BeaconRpcSource{ + rpc: rpc, + } +} + +func (*BeaconRpcSource) GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) { + panic("unimplemented") +} + +func (b *BeaconRpcSource) GetRange(ctx context.Context, _ kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) { + if count == 0 { + return nil, nil + } + var responses *peers.PeeredObject[[]*cltypes.SignedBeaconBlock] + reqInterval := time.NewTicker(200 * time.Millisecond) + doneRespCh := make(chan *peers.PeeredObject[[]*cltypes.SignedBeaconBlock], 1) + defer reqInterval.Stop() + + for { + select { + case <-reqInterval.C: + go func() { + responses, pid, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, from, count) + if err != nil { + return + } + select { + case doneRespCh <- &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{Data: responses, Peer: pid}: + default: + } + }() + case <-ctx.Done(): + return nil, ctx.Err() + case responses = <-doneRespCh: + return responses, nil + } + } +} + +// a noop for rpc source since we always return new data +func (b *BeaconRpcSource) PurgeRange(ctx context.Context, _ kv.Tx, from uint64, count uint64) error { + return nil +} + +var _ BlockSource = (*GossipSource)(nil) + +type GossipSource struct { + gossip *network.GossipManager + gossipBlocks <-chan *peers.PeeredObject[*cltypes.SignedBeaconBlock] + + mu sync.Mutex + blocks *btree.Map[uint64, chan *peers.PeeredObject[*cltypes.SignedBeaconBlock]] +} + +func (*GossipSource) GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) { + panic("unimplemented") +} + +func NewGossipSource(ctx context.Context, gossip *network.GossipManager) *GossipSource { + g := &GossipSource{ + gossip: gossip, + gossipBlocks: gossip.SubscribeSignedBeaconBlocks(ctx), + blocks: btree.NewMap[uint64, chan *peers.PeeredObject[*cltypes.SignedBeaconBlock]](32), + } + go func() { + for { + select { + case <-ctx.Done(): + return + case recv := <-g.gossipBlocks: + ch := g.grabOrCreate(ctx, recv.Data.Block.Slot) + select { + case ch <- recv: + default: + } + } + } + }() + return g +} + +func (b *GossipSource) grabOrCreate(ctx context.Context, id uint64) chan *peers.PeeredObject[*cltypes.SignedBeaconBlock] { + b.mu.Lock() + defer b.mu.Unlock() + ch, ok := b.blocks.Get(id) + if !ok { + ch = make(chan *peers.PeeredObject[*cltypes.SignedBeaconBlock], 3) + b.blocks.Set(id, ch) + } + // if there are ever more than 512 blocks, clear the last 256 blocks + if b.blocks.Len() > 512 { + b.purgeRange(ctx, nil, 0, id-256) + } + return ch +} +func (b *GossipSource) GetRange(ctx context.Context, _ kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) { + out := &peers.PeeredObject[[]*cltypes.SignedBeaconBlock]{} + for i := from; i < from+count; i++ { + ch := b.grabOrCreate(ctx, i) + select { + case <-ctx.Done(): + return nil, ctx.Err() + case item := <-ch: + out.Data = append(out.Data, item.Data) + out.Peer = item.Peer + } + } + return out, nil +} + +func (b *GossipSource) PurgeRange(ctx context.Context, tx kv.Tx, from uint64, count uint64) error { + b.mu.Lock() + defer b.mu.Unlock() + return b.purgeRange(ctx, tx, from, count) +} + +func (b *GossipSource) purgeRange(ctx context.Context, _ kv.Tx, from uint64, count uint64) error { + initSize := count + if initSize > 256 { + initSize = 256 + } + xs := make([]uint64, 0, initSize) + b.blocks.Ascend(from, func(key uint64, value chan *peers.PeeredObject[*cltypes.SignedBeaconBlock]) bool { + if key >= from+count { + return false + } + xs = append(xs, key) + return true + }) + for _, v := range xs { + b.blocks.Delete(v) + } + return nil +} diff --git a/cl/persistence/db_config/db_config.go b/cl/persistence/db_config/db_config.go new file mode 100644 index 00000000000..8845fa4a20a --- /dev/null +++ b/cl/persistence/db_config/db_config.go @@ -0,0 +1,36 @@ +package db_config + +import ( + "bytes" + "context" + "math" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/ethdb/cbor" +) + +type DatabaseConfiguration struct{ PruneDepth uint64 } + +var DefaultDatabaseConfiguration = DatabaseConfiguration{PruneDepth: math.MaxUint64} + +func WriteConfigurationIfNotExist(ctx context.Context, tx kv.RwTx, cfg DatabaseConfiguration) error { + var b bytes.Buffer + if err := cbor.Encoder(&b).Encode(cfg); err != nil { + return err + } + + return tx.Put(kv.DatabaseInfo, []byte("config"), b.Bytes()) +} + +func ReadConfiguration(ctx context.Context, tx kv.Tx) (DatabaseConfiguration, error) { + var cfg DatabaseConfiguration + + cfgEncoded, err := tx.GetOne(kv.DatabaseInfo, []byte("config")) + if err != nil { + return cfg, err + } + if err := cbor.Decoder(bytes.NewReader(cfgEncoded)).Decode(&cfg); err != nil { + return cfg, err + } + return cfg, err +} diff --git a/cl/persistence/db_config/db_config_test.go b/cl/persistence/db_config/db_config_test.go new file mode 100644 index 00000000000..0133f4862a5 --- /dev/null +++ b/cl/persistence/db_config/db_config_test.go @@ -0,0 +1,24 @@ +package db_config + +import ( + "context" + "testing" + + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/stretchr/testify/require" + _ "modernc.org/sqlite" +) + +func TestDBConfig(t *testing.T) { + db := memdb.NewTestDB(t) + defer db.Close() + tx, err := db.BeginRw(context.Background()) + defer tx.Rollback() + require.NoError(t, err) + + c := DatabaseConfiguration{PruneDepth: 69} + require.NoError(t, WriteConfigurationIfNotExist(context.Background(), tx, c)) + cfg, err := ReadConfiguration(context.Background(), tx) + require.NoError(t, err) + require.Equal(t, cfg, c) +} diff --git a/cl/persistence/format/chunk_encoding/chunks.go b/cl/persistence/format/chunk_encoding/chunks.go new file mode 100644 index 00000000000..28afb2008d9 --- /dev/null +++ b/cl/persistence/format/chunk_encoding/chunks.go @@ -0,0 +1,68 @@ +package chunk_encoding + +import ( + "encoding/binary" + "io" +) + +type DataType int + +const ( + ChunkDataType DataType = 0 + PointerDataType DataType = 1 +) + +// writeChunk writes a chunk to the writer. +func WriteChunk(w io.Writer, buf []byte, t DataType) error { + + // prefix is type of chunk + length of chunk + prefix := make([]byte, 8) + binary.BigEndian.PutUint64(prefix, uint64(len(buf))) + prefix[0] = byte(t) + if _, err := w.Write(prefix); err != nil { + return err + } + if _, err := w.Write(buf); err != nil { + return err + } + return nil +} + +func ReadChunk(r io.Reader, out io.Writer) (t DataType, err error) { + prefix := make([]byte, 8) + if _, err := r.Read(prefix); err != nil { + return DataType(0), err + } + t = DataType(prefix[0]) + prefix[0] = 0 + + bufLen := binary.BigEndian.Uint64(prefix) + if bufLen == 0 { + return + } + + if _, err = io.CopyN(out, r, int64(bufLen)); err != nil { + return + } + return +} + +func ReadChunkToBytes(r io.Reader) (b []byte, t DataType, err error) { + prefix := make([]byte, 8) + if _, err := r.Read(prefix); err != nil { + return nil, DataType(0), err + } + t = DataType(prefix[0]) + prefix[0] = 0 + + bufLen := binary.BigEndian.Uint64(prefix) + if bufLen == 0 { + return + } + b = make([]byte, bufLen) + + if _, err = r.Read(b); err != nil { + return + } + return +} diff --git a/cl/persistence/format/snapshot_format/blocks.go b/cl/persistence/format/snapshot_format/blocks.go new file mode 100644 index 00000000000..f392bee27c5 --- /dev/null +++ b/cl/persistence/format/snapshot_format/blocks.go @@ -0,0 +1,229 @@ +package snapshot_format + +import ( + "bytes" + "encoding/binary" + "fmt" + "io" + "sync" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/format/chunk_encoding" +) + +type ExecutionBlockReaderByNumber interface { + TransactionsSSZ(w io.Writer, number uint64, hash libcommon.Hash) error + WithdrawalsSZZ(w io.Writer, number uint64, hash libcommon.Hash) error +} + +var buffersPool = sync.Pool{ + New: func() interface{} { return &bytes.Buffer{} }, +} + +const ( + blockBaseOffset = 100 /* Signature + Block Offset */ + + 84 /* Slot + ProposerIndex + ParentRoot + StateRoot + Body Offset */ + + 96 /*Signature*/ + 72 /*Eth1Data*/ + 32 /*Graffiti*/ + 4 /*ProposerSlashings Offset*/ + 4 /*AttesterSlashings Offset*/ + 4 /*Attestations*/ + + 4 /*Deposits Offset*/ + 4 /*VoluntaryExits Offset*/ + + altairBlockAdditionalBaseOffset = 160 /*SyncAggregate*/ + bellatrixBlockAdditionalBaseOffset = 4 /*ExecutionPayload Offset*/ + capellaBlockAdditionalBaseOffset = 4 /*ExecutionChanges Offset*/ + denebBlockAdditionalBaseOffset = 4 /*BlobKzgCommitments Offset*/ +) + +func writeExecutionBlockPtr(w io.Writer, p *cltypes.Eth1Block) error { + temp := make([]byte, 40) + binary.BigEndian.PutUint64(temp, p.BlockNumber) + copy(temp[8:], p.BlockHash[:]) + + return chunk_encoding.WriteChunk(w, temp, chunk_encoding.PointerDataType) +} + +func readExecutionBlockPtr(r io.Reader) (uint64, libcommon.Hash, error) { + b, dT, err := chunk_encoding.ReadChunkToBytes(r) + if err != nil { + return 0, libcommon.Hash{}, err + } + if dT != chunk_encoding.PointerDataType { + return 0, libcommon.Hash{}, fmt.Errorf("malformed beacon block, invalid block pointer type %d, expected: %d", dT, chunk_encoding.ChunkDataType) + } + return binary.BigEndian.Uint64(b[:8]), libcommon.BytesToHash(b[8:]), nil +} + +func computeInitialOffset(version clparams.StateVersion) uint64 { + ret := uint64(blockBaseOffset) + if version >= clparams.AltairVersion { + ret += altairBlockAdditionalBaseOffset + } + if version >= clparams.BellatrixVersion { + ret += bellatrixBlockAdditionalBaseOffset + } + if version >= clparams.CapellaVersion { + ret += capellaBlockAdditionalBaseOffset + } + if version >= clparams.DenebVersion { + ret += denebBlockAdditionalBaseOffset + } + return ret +} + +// WriteBlockForSnapshot writes a block to the given writer in the format expected by the snapshot. +// buf is just a reusable buffer. if it had to grow it will be returned back as grown. +func WriteBlockForSnapshot(w io.Writer, block *cltypes.SignedBeaconBlock, reusable []byte) ([]byte, error) { + bodyRoot, err := block.Block.Body.HashSSZ() + if err != nil { + return reusable, err + } + reusable = reusable[:0] + // Maybe reuse the buffer? + encoded, err := block.EncodeSSZ(reusable) + if err != nil { + return reusable, err + } + reusable = encoded + version := block.Version() + if _, err := w.Write([]byte{byte(version)}); err != nil { + return reusable, err + } + if _, err := w.Write(bodyRoot[:]); err != nil { + return reusable, err + } + currentChunkLength := computeInitialOffset(version) + + body := block.Block.Body + // count in body for phase0 fields + currentChunkLength += uint64(body.ProposerSlashings.EncodingSizeSSZ()) + currentChunkLength += uint64(body.AttesterSlashings.EncodingSizeSSZ()) + currentChunkLength += uint64(body.Attestations.EncodingSizeSSZ()) + currentChunkLength += uint64(body.Deposits.EncodingSizeSSZ()) + currentChunkLength += uint64(body.VoluntaryExits.EncodingSizeSSZ()) + // Write the chunk and chunk attestations + if err := chunk_encoding.WriteChunk(w, encoded[:currentChunkLength], chunk_encoding.ChunkDataType); err != nil { + return reusable, err + } + // we are done if we are before altair + if version <= clparams.AltairVersion { + return reusable, nil + } + encoded = encoded[currentChunkLength:] + if err := writeEth1BlockForSnapshot(w, encoded[:body.ExecutionPayload.EncodingSizeSSZ()], body.ExecutionPayload); err != nil { + return reusable, err + } + encoded = encoded[body.ExecutionPayload.EncodingSizeSSZ():] + if version <= clparams.BellatrixVersion { + return reusable, nil + } + return reusable, chunk_encoding.WriteChunk(w, encoded, chunk_encoding.ChunkDataType) +} + +func readMetadataForBlock(r io.Reader, b []byte) (clparams.StateVersion, libcommon.Hash, error) { + if _, err := r.Read(b); err != nil { + return 0, libcommon.Hash{}, err + } + return clparams.StateVersion(b[0]), libcommon.BytesToHash(b[1:]), nil +} + +func ReadBlockFromSnapshot(r io.Reader, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (*cltypes.SignedBeaconBlock, error) { + block := cltypes.NewSignedBeaconBlock(cfg) + buffer := buffersPool.Get().(*bytes.Buffer) + defer buffersPool.Put(buffer) + buffer.Reset() + + v, err := ReadRawBlockFromSnapshot(r, buffer, executionReader, cfg) + if err != nil { + return nil, err + } + return block, block.DecodeSSZ(buffer.Bytes(), int(v)) +} + +// ReadBlockHeaderFromSnapshotWithExecutionData reads the beacon block header and the EL block number and block hash. +func ReadBlockHeaderFromSnapshotWithExecutionData(r io.Reader) (*cltypes.SignedBeaconBlockHeader, uint64, libcommon.Hash, error) { + buffer := buffersPool.Get().(*bytes.Buffer) + defer buffersPool.Put(buffer) + buffer.Reset() + + metadataSlab := make([]byte, 33) + v, bodyRoot, err := readMetadataForBlock(r, metadataSlab) + if err != nil { + return nil, 0, libcommon.Hash{}, err + } + chunk1, dT1, err := chunk_encoding.ReadChunkToBytes(r) + if err != nil { + return nil, 0, libcommon.Hash{}, err + } + if dT1 != chunk_encoding.ChunkDataType { + return nil, 0, libcommon.Hash{}, fmt.Errorf("malformed beacon block, invalid chunk 1 type %d, expected: %d", dT1, chunk_encoding.ChunkDataType) + } + + var signature libcommon.Bytes96 + copy(signature[:], chunk1[4:100]) + header := &cltypes.SignedBeaconBlockHeader{ + Signature: signature, + Header: &cltypes.BeaconBlockHeader{ + Slot: binary.LittleEndian.Uint64(chunk1[100:108]), + ProposerIndex: binary.LittleEndian.Uint64(chunk1[108:116]), + ParentRoot: libcommon.BytesToHash(chunk1[116:148]), + Root: libcommon.BytesToHash(chunk1[148:180]), + BodyRoot: bodyRoot, + }} + if v <= clparams.AltairVersion { + return header, 0, libcommon.Hash{}, nil + } + if _, err := r.Read(make([]byte, 1)); err != nil { + return header, 0, libcommon.Hash{}, nil + } + // Read the first eth 1 block chunk + _, err = chunk_encoding.ReadChunk(r, io.Discard) + if err != nil { + return nil, 0, libcommon.Hash{}, err + } + // lastly read the executionBlock ptr + blockNumber, blockHash, err := readExecutionBlockPtr(r) + if err != nil { + return nil, 0, libcommon.Hash{}, err + } + return header, blockNumber, blockHash, nil +} + +func ReadRawBlockFromSnapshot(r io.Reader, out io.Writer, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (clparams.StateVersion, error) { + metadataSlab := make([]byte, 33) + // Metadata section is just the current hardfork of the block. + v, _, err := readMetadataForBlock(r, metadataSlab) + if err != nil { + return v, err + } + + // Read the first chunk + dT1, err := chunk_encoding.ReadChunk(r, out) + if err != nil { + return v, err + } + if dT1 != chunk_encoding.ChunkDataType { + return v, fmt.Errorf("malformed beacon block, invalid chunk 1 type %d, expected: %d", dT1, chunk_encoding.ChunkDataType) + } + + if v <= clparams.AltairVersion { + return v, nil + } + // Read the block pointer and retrieve chunk4 from the execution reader + if _, err := readEth1BlockFromSnapshot(r, out, executionReader, cfg); err != nil { + return v, err + } + if v <= clparams.BellatrixVersion { + return v, nil + } + + // Read the 5h chunk + dT2, err := chunk_encoding.ReadChunk(r, out) + if err != nil { + return v, err + } + if dT2 != chunk_encoding.ChunkDataType { + return v, fmt.Errorf("malformed beacon block, invalid chunk 5 type %d, expected: %d", dT2, chunk_encoding.ChunkDataType) + } + return v, nil +} diff --git a/cl/persistence/format/snapshot_format/blocks_test.go b/cl/persistence/format/snapshot_format/blocks_test.go new file mode 100644 index 00000000000..b5d0815fc98 --- /dev/null +++ b/cl/persistence/format/snapshot_format/blocks_test.go @@ -0,0 +1,89 @@ +package snapshot_format_test + +import ( + "bytes" + _ "embed" + "testing" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" + "github.com/ledgerwatch/erigon/cl/utils" + "github.com/stretchr/testify/require" +) + +//go:embed test_data/phase0.ssz_snappy +var phase0BlockSSZSnappy []byte + +//go:embed test_data/altair.ssz_snappy +var altairBlockSSZSnappy []byte + +//go:embed test_data/bellatrix.ssz_snappy +var bellatrixBlockSSZSnappy []byte + +//go:embed test_data/capella.ssz_snappy +var capellaBlockSSZSnappy []byte + +//go:embed test_data/deneb.ssz_snappy +var denebBlockSSZSnappy []byte + +var emptyBlock = cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + +// obtain the test blocks +func getTestBlocks(t *testing.T) []*cltypes.SignedBeaconBlock { + var emptyBlockCapella = cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + emptyBlockCapella.Block.Slot = clparams.MainnetBeaconConfig.CapellaForkEpoch * 32 + + emptyBlock.EncodingSizeSSZ() + emptyBlockCapella.EncodingSizeSSZ() + denebBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + capellaBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + bellatrixBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + altairBlock := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + phase0Block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) + + require.NoError(t, utils.DecodeSSZSnappy(denebBlock, denebBlockSSZSnappy, int(clparams.DenebVersion))) + require.NoError(t, utils.DecodeSSZSnappy(capellaBlock, capellaBlockSSZSnappy, int(clparams.CapellaVersion))) + require.NoError(t, utils.DecodeSSZSnappy(bellatrixBlock, bellatrixBlockSSZSnappy, int(clparams.BellatrixVersion))) + require.NoError(t, utils.DecodeSSZSnappy(altairBlock, altairBlockSSZSnappy, int(clparams.AltairVersion))) + require.NoError(t, utils.DecodeSSZSnappy(phase0Block, phase0BlockSSZSnappy, int(clparams.Phase0Version))) + return []*cltypes.SignedBeaconBlock{phase0Block, altairBlock, bellatrixBlock, capellaBlock, denebBlock, emptyBlock, emptyBlockCapella} +} + +func TestBlockSnapshotEncoding(t *testing.T) { + for _, blk := range getTestBlocks(t) { + var br snapshot_format.MockBlockReader + if blk.Version() >= clparams.BellatrixVersion { + br = snapshot_format.MockBlockReader{Block: blk.Block.Body.ExecutionPayload} + } + var b bytes.Buffer + _, err := snapshot_format.WriteBlockForSnapshot(&b, blk, nil) + require.NoError(t, err) + blk2, err := snapshot_format.ReadBlockFromSnapshot(&b, &br, &clparams.MainnetBeaconConfig) + require.NoError(t, err) + + hash1, err := blk.HashSSZ() + require.NoError(t, err) + hash2, err := blk2.HashSSZ() + require.NoError(t, err) + // Rewrite for header test + b.Reset() + _, err = snapshot_format.WriteBlockForSnapshot(&b, blk, nil) + require.NoError(t, err) + header, bn, bHash, err := snapshot_format.ReadBlockHeaderFromSnapshotWithExecutionData(&b) + require.NoError(t, err) + hash3, err := header.HashSSZ() + require.NoError(t, err) + + require.Equal(t, hash1, hash2) + + require.Equal(t, header.Signature, blk.Signature) + require.Equal(t, header.Header.Slot, blk.Block.Slot) + + if blk.Version() >= clparams.BellatrixVersion { + require.Equal(t, bn, blk.Block.Body.ExecutionPayload.BlockNumber) + require.Equal(t, bHash, blk.Block.Body.ExecutionPayload.BlockHash) + } + require.Equal(t, hash3, hash2) + } +} diff --git a/cl/persistence/format/snapshot_format/eth1_blocks.go b/cl/persistence/format/snapshot_format/eth1_blocks.go new file mode 100644 index 00000000000..053c075aa22 --- /dev/null +++ b/cl/persistence/format/snapshot_format/eth1_blocks.go @@ -0,0 +1,92 @@ +package snapshot_format + +import ( + "fmt" + "io" + + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/format/chunk_encoding" + "github.com/ledgerwatch/erigon/core/types" +) + +// WriteEth1BlockForSnapshot writes an execution block to the given writer in the format expected by the snapshot. +func writeEth1BlockForSnapshot(w io.Writer, encoded []byte, block *cltypes.Eth1Block) error { + pos := (length.Hash /*ParentHash*/ + length.Addr /*Miner*/ + length.Hash /*StateRoot*/ + length.Hash /*ReceiptsRoot*/ + types.BloomByteLength /*Bloom*/ + + length.Hash /*PrevRandao*/ + 32 /*BlockNumber + Timestamp + GasLimit + GasUsed */ + 4 /*ExtraDataOffset*/ + length.Hash /*BaseFee*/ + + length.Hash /*BlockHash*/ + 4 /*TransactionOffset*/) + + if block.Version() >= clparams.CapellaVersion { + pos += 4 /*WithdrawalsOffset*/ + } + if block.Version() >= clparams.DenebVersion { + pos += 16 /*BlobGasUsed + ExcessBlobGas*/ + } + // Add metadata first for Eth1Block, aka. version + if _, err := w.Write([]byte{byte(block.Version())}); err != nil { + return err + } + + // Maybe reuse the buffer? + pos += block.Extra.EncodingSizeSSZ() + if err := chunk_encoding.WriteChunk(w, encoded[:pos], chunk_encoding.ChunkDataType); err != nil { + return err + } + pos += block.Withdrawals.EncodingSizeSSZ() + pos += block.Transactions.EncodingSizeSSZ() + encoded = encoded[pos:] + //pos = 0 + // write the block pointer + if err := writeExecutionBlockPtr(w, block); err != nil { + return err + } + // From now on here, just finish up + return chunk_encoding.WriteChunk(w, encoded, chunk_encoding.ChunkDataType) +} + +func readEth1BlockFromSnapshot(r io.Reader, out io.Writer, executionReader ExecutionBlockReaderByNumber, cfg *clparams.BeaconChainConfig) (clparams.StateVersion, error) { + // Metadata section is just the current hardfork of the block. + vArr := make([]byte, 1) + if _, err := r.Read(vArr); err != nil { + return 0, err + } + v := clparams.StateVersion(vArr[0]) + + // Read the first chunk + dT1, err := chunk_encoding.ReadChunk(r, out) + if err != nil { + return v, err + } + if dT1 != chunk_encoding.ChunkDataType { + return v, fmt.Errorf("malformed beacon block, invalid chunk 1 type %d, expected: %d", dT1, chunk_encoding.ChunkDataType) + } + // Read the block pointer and retrieve chunk4 from the execution reader + blockNumber, blockHash, err := readExecutionBlockPtr(r) + if err != nil { + return v, err + } + err = executionReader.TransactionsSSZ(out, blockNumber, blockHash) + if err != nil { + return v, err + } + + if v < clparams.CapellaVersion { + return v, nil + } + err = executionReader.WithdrawalsSZZ(out, blockNumber, blockHash) + if err != nil { + return v, err + } + + // Read the 5h chunk + dT2, err := chunk_encoding.ReadChunk(r, out) + if err != nil { + return v, err + } + if dT2 != chunk_encoding.ChunkDataType { + return v, fmt.Errorf("malformed beacon block, invalid chunk 5 type %d, expected: %d", dT2, chunk_encoding.ChunkDataType) + } + + return v, nil +} diff --git a/cl/persistence/format/snapshot_format/getters/execution_snapshot.go b/cl/persistence/format/snapshot_format/getters/execution_snapshot.go new file mode 100644 index 00000000000..d201a63ea86 --- /dev/null +++ b/cl/persistence/format/snapshot_format/getters/execution_snapshot.go @@ -0,0 +1,166 @@ +package getters + +import ( + "context" + "encoding/binary" + "fmt" + "io" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/types/ssz" + "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/turbo/services" +) + +type cacheEntry struct { + number uint64 + hash libcommon.Hash +} +type ExecutionSnapshotReader struct { + ctx context.Context + + blockReader services.FullBlockReader + + db kv.RoDB + txsCache *lru.Cache[cacheEntry, []byte] + withdrawalsCache *lru.Cache[cacheEntry, []byte] +} + +func NewExecutionSnapshotReader(ctx context.Context, blockReader services.FullBlockReader, db kv.RoDB) *ExecutionSnapshotReader { + txsCache, err := lru.New[cacheEntry, []byte]("txsCache", 96) + if err != nil { + panic(err) + } + withdrawalsCache, err := lru.New[cacheEntry, []byte]("wsCache", 96) + if err != nil { + panic(err) + } + return &ExecutionSnapshotReader{ctx: ctx, blockReader: blockReader, withdrawalsCache: withdrawalsCache, txsCache: txsCache, db: db} +} + +func (r *ExecutionSnapshotReader) TransactionsSSZ(w io.Writer, number uint64, hash libcommon.Hash) error { + ok, err := r.lookupTransactionsInCache(w, number, hash) + if err != nil { + return err + } + if ok { + return nil + } + + tx, err := r.db.BeginRo(r.ctx) + if err != nil { + return err + } + defer tx.Rollback() + // Get the body and fill both caches + body, err := r.blockReader.BodyWithTransactions(r.ctx, tx, hash, number) + if err != nil { + return err + } + if body == nil { + return fmt.Errorf("transactions not found for block %d", number) + } + // compute txs flats + txs, err := types.MarshalTransactionsBinary(body.Transactions) + if err != nil { + return err + } + flattenedTxs := convertTxsToBytesSSZ(txs) + r.txsCache.Add(cacheEntry{number: number, hash: hash}, flattenedTxs) + // compute withdrawals flat + ws := body.Withdrawals + flattenedWs := convertWithdrawalsToBytesSSZ(ws) + + r.withdrawalsCache.Add(cacheEntry{number: number, hash: hash}, flattenedWs) + _, err = w.Write(flattenedTxs) + return err +} + +func convertTxsToBytesSSZ(txs [][]byte) []byte { + sumLenTxs := 0 + for _, tx := range txs { + sumLenTxs += len(tx) + } + flat := make([]byte, 0, 4*len(txs)+sumLenTxs) + offset := len(txs) * 4 + for _, tx := range txs { + flat = append(flat, ssz.OffsetSSZ(uint32(offset))...) + offset += len(tx) + } + for _, tx := range txs { + flat = append(flat, tx...) + } + return flat +} + +func convertWithdrawalsToBytesSSZ(ws []*types.Withdrawal) []byte { + ret := make([]byte, 44*len(ws)) + for i, w := range ws { + currentPos := i * 44 + binary.LittleEndian.PutUint64(ret[currentPos:currentPos+8], w.Index) + binary.LittleEndian.PutUint64(ret[currentPos+8:currentPos+16], w.Validator) + copy(ret[currentPos+16:currentPos+36], w.Address[:]) + binary.LittleEndian.PutUint64(ret[currentPos+36:currentPos+44], w.Amount) + } + return ret +} + +func (r *ExecutionSnapshotReader) WithdrawalsSZZ(w io.Writer, number uint64, hash libcommon.Hash) error { + ok, err := r.lookupWithdrawalsInCache(w, number, hash) + if err != nil { + return err + } + if ok { + return nil + } + tx, err := r.db.BeginRo(r.ctx) + if err != nil { + return err + } + defer tx.Rollback() + // Get the body and fill both caches + body, err := r.blockReader.BodyWithTransactions(r.ctx, tx, hash, number) + if err != nil { + return err + } + if body == nil { + return fmt.Errorf("transactions not found for block %d", number) + } + // compute txs flats + txs, err := types.MarshalTransactionsBinary(body.Transactions) + if err != nil { + return err + } + flattenedTxs := convertTxsToBytesSSZ(txs) + r.txsCache.Add(cacheEntry{number: number, hash: hash}, flattenedTxs) + // compute withdrawals flat + ws := body.Withdrawals + flattenedWs := convertWithdrawalsToBytesSSZ(ws) + + r.withdrawalsCache.Add(cacheEntry{number: number, hash: hash}, flattenedWs) + _, err = w.Write(flattenedWs) + + return err +} + +func (r *ExecutionSnapshotReader) lookupWithdrawalsInCache(w io.Writer, number uint64, hash libcommon.Hash) (bool, error) { + var wsBytes []byte + var ok bool + if wsBytes, ok = r.withdrawalsCache.Get(cacheEntry{number: number, hash: hash}); !ok { + return false, nil + } + _, err := w.Write(wsBytes) + return true, err +} + +func (r *ExecutionSnapshotReader) lookupTransactionsInCache(w io.Writer, number uint64, hash libcommon.Hash) (bool, error) { + var wsBytes []byte + var ok bool + if wsBytes, ok = r.txsCache.Get(cacheEntry{number: number, hash: hash}); !ok { + return false, nil + } + _, err := w.Write(wsBytes) + return true, err +} diff --git a/cl/persistence/format/snapshot_format/test_data/altair.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/altair.ssz_snappy new file mode 100644 index 00000000000..6a68fb0428b Binary files /dev/null and b/cl/persistence/format/snapshot_format/test_data/altair.ssz_snappy differ diff --git a/cl/persistence/format/snapshot_format/test_data/bellatrix.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/bellatrix.ssz_snappy new file mode 100644 index 00000000000..4ea51c0359f Binary files /dev/null and b/cl/persistence/format/snapshot_format/test_data/bellatrix.ssz_snappy differ diff --git a/cl/persistence/format/snapshot_format/test_data/capella.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/capella.ssz_snappy new file mode 100644 index 00000000000..f3301a23195 Binary files /dev/null and b/cl/persistence/format/snapshot_format/test_data/capella.ssz_snappy differ diff --git a/cl/persistence/format/snapshot_format/test_data/deneb.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/deneb.ssz_snappy new file mode 100644 index 00000000000..abdebc30b65 Binary files /dev/null and b/cl/persistence/format/snapshot_format/test_data/deneb.ssz_snappy differ diff --git a/cl/persistence/format/snapshot_format/test_data/phase0.ssz_snappy b/cl/persistence/format/snapshot_format/test_data/phase0.ssz_snappy new file mode 100644 index 00000000000..dfa9c18707a Binary files /dev/null and b/cl/persistence/format/snapshot_format/test_data/phase0.ssz_snappy differ diff --git a/cl/persistence/format/snapshot_format/test_util.go b/cl/persistence/format/snapshot_format/test_util.go new file mode 100644 index 00000000000..1bf45999522 --- /dev/null +++ b/cl/persistence/format/snapshot_format/test_util.go @@ -0,0 +1,30 @@ +package snapshot_format + +import ( + "io" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes" +) + +type MockBlockReader struct { + Block *cltypes.Eth1Block +} + +func (t *MockBlockReader) WithdrawalsSZZ(out io.Writer, number uint64, hash libcommon.Hash) error { + l, err := t.Block.Withdrawals.EncodeSSZ(nil) + if err != nil { + return err + } + _, err = out.Write(l) + return err +} + +func (t *MockBlockReader) TransactionsSSZ(out io.Writer, number uint64, hash libcommon.Hash) error { + l, err := t.Block.Transactions.EncodeSSZ(nil) + if err != nil { + return err + } + _, err = out.Write(l) + return err +} diff --git a/cl/persistence/interface.go b/cl/persistence/interface.go new file mode 100644 index 00000000000..985b50a728a --- /dev/null +++ b/cl/persistence/interface.go @@ -0,0 +1,32 @@ +package persistence + +import ( + "context" + "io" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" +) + +type BlockSource interface { + GetRange(ctx context.Context, tx kv.Tx, from uint64, count uint64) (*peers.PeeredObject[[]*cltypes.SignedBeaconBlock], error) + PurgeRange(ctx context.Context, tx kv.Tx, from uint64, count uint64) error + GetBlock(ctx context.Context, tx kv.Tx, slot uint64) (*peers.PeeredObject[*cltypes.SignedBeaconBlock], error) +} + +type BeaconChainWriter interface { + WriteBlock(ctx context.Context, tx kv.RwTx, block *cltypes.SignedBeaconBlock, canonical bool) error +} + +type RawBeaconBlockChain interface { + BlockWriter(ctx context.Context, slot uint64, blockRoot libcommon.Hash) (io.WriteCloser, error) + BlockReader(ctx context.Context, slot uint64, blockRoot libcommon.Hash) (io.ReadCloser, error) + DeleteBlock(ctx context.Context, slot uint64, blockRoot libcommon.Hash) error +} + +type BeaconChainDatabase interface { + BlockSource + BeaconChainWriter +} diff --git a/cl/persistence/raw_block_saver.go b/cl/persistence/raw_block_saver.go new file mode 100644 index 00000000000..6d41f4d8cd0 --- /dev/null +++ b/cl/persistence/raw_block_saver.go @@ -0,0 +1,52 @@ +package persistence + +import ( + "context" + "io" + "os" + "sync" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/spf13/afero" + "go.uber.org/zap/buffer" +) + +var bPool = sync.Pool{ + New: func() interface{} { + return &buffer.Buffer{} + }, +} + +type aferoRawBeaconBlockChain struct { + fs afero.Fs + cfg *clparams.BeaconChainConfig +} + +func NewAferoRawBlockSaver(fs afero.Fs, cfg *clparams.BeaconChainConfig) RawBeaconBlockChain { + return aferoRawBeaconBlockChain{ + fs: fs, + cfg: cfg, + } +} + +func AferoRawBeaconBlockChainFromOsPath(cfg *clparams.BeaconChainConfig, path string) (RawBeaconBlockChain, afero.Fs) { + dataDirFs := afero.NewBasePathFs(afero.NewOsFs(), path) + return NewAferoRawBlockSaver(dataDirFs, cfg), dataDirFs +} + +func (a aferoRawBeaconBlockChain) BlockWriter(ctx context.Context, slot uint64, blockRoot libcommon.Hash) (io.WriteCloser, error) { + folderPath, path := rootToPaths(slot, blockRoot, a.cfg) + _ = a.fs.MkdirAll(folderPath, 0o755) + return a.fs.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0o755) +} + +func (a aferoRawBeaconBlockChain) BlockReader(ctx context.Context, slot uint64, blockRoot libcommon.Hash) (io.ReadCloser, error) { + _, path := rootToPaths(slot, blockRoot, a.cfg) + return a.fs.OpenFile(path, os.O_RDONLY, 0o755) +} + +func (a aferoRawBeaconBlockChain) DeleteBlock(ctx context.Context, slot uint64, blockRoot libcommon.Hash) error { + _, path := rootToPaths(slot, blockRoot, a.cfg) + return a.fs.Remove(path) +} diff --git a/cl/persistence/state/historical_states_reader/attesting_indicies.go b/cl/persistence/state/historical_states_reader/attesting_indicies.go new file mode 100644 index 00000000000..e3d5f717b59 --- /dev/null +++ b/cl/persistence/state/historical_states_reader/attesting_indicies.go @@ -0,0 +1,77 @@ +package historical_states_reader + +import ( + "fmt" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/phase1/core/state/shuffling" + "github.com/ledgerwatch/erigon/cl/utils" +) + +func (r *HistoricalStatesReader) attestingIndicies(attestation solid.AttestationData, aggregationBits []byte, checkBitsLength bool, randaoMixes solid.HashVectorSSZ, idxs []uint64) ([]uint64, error) { + slot := attestation.Slot() + committeesPerSlot := committeeCount(r.cfg, slot/r.cfg.SlotsPerEpoch, idxs) + committeeIndex := attestation.ValidatorIndex() + index := (slot%r.cfg.SlotsPerEpoch)*committeesPerSlot + committeeIndex + count := committeesPerSlot * r.cfg.SlotsPerEpoch + + committee, err := r.computeCommittee(randaoMixes, idxs, attestation.Slot(), count, index) + if err != nil { + return nil, err + } + aggregationBitsLen := utils.GetBitlistLength(aggregationBits) + if checkBitsLength && utils.GetBitlistLength(aggregationBits) != len(committee) { + return nil, fmt.Errorf("GetAttestingIndicies: invalid aggregation bits. agg bits size: %d, expect: %d", aggregationBitsLen, len(committee)) + } + + attestingIndices := []uint64{} + for i, member := range committee { + bitIndex := i % 8 + sliceIndex := i / 8 + if sliceIndex >= len(aggregationBits) { + return nil, fmt.Errorf("GetAttestingIndicies: committee is too big") + } + if (aggregationBits[sliceIndex] & (1 << bitIndex)) > 0 { + attestingIndices = append(attestingIndices, member) + } + } + return attestingIndices, nil +} + +// computeCommittee uses cache to compute compittee +func (r *HistoricalStatesReader) computeCommittee(randaoMixes solid.HashVectorSSZ, indicies []uint64, slot uint64, count, index uint64) ([]uint64, error) { + cfg := r.cfg + lenIndicies := uint64(len(indicies)) + + start := (lenIndicies * index) / count + end := (lenIndicies * (index + 1)) / count + var shuffledIndicies []uint64 + epoch := slot / cfg.SlotsPerEpoch + + mixPosition := (epoch + cfg.EpochsPerHistoricalVector - cfg.MinSeedLookahead - 1) % + cfg.EpochsPerHistoricalVector + // Input for the seed hash. + mix := randaoMixes.Get(int(mixPosition)) + + if shuffledIndicesInterface, ok := r.shuffledSetsCache.Get(epoch); ok { + shuffledIndicies = shuffledIndicesInterface + } else { + shuffledIndicies = make([]uint64, lenIndicies) + shuffledIndicies = shuffling.ComputeShuffledIndicies(cfg, mix, shuffledIndicies, indicies, slot) + r.shuffledSetsCache.Add(epoch, shuffledIndicies) + } + + return shuffledIndicies[start:end], nil +} + +func committeeCount(cfg *clparams.BeaconChainConfig, epoch uint64, idxs []uint64) uint64 { + committeCount := uint64(len(idxs)) / cfg.SlotsPerEpoch / cfg.TargetCommitteeSize + if cfg.MaxCommitteesPerSlot < committeCount { + committeCount = cfg.MaxCommitteesPerSlot + } + if committeCount < 1 { + committeCount = 1 + } + return committeCount +} diff --git a/cl/persistence/state/historical_states_reader/historical_states_reader.go b/cl/persistence/state/historical_states_reader/historical_states_reader.go new file mode 100644 index 00000000000..fe804024ee7 --- /dev/null +++ b/cl/persistence/state/historical_states_reader/historical_states_reader.go @@ -0,0 +1,695 @@ +package historical_states_reader + +import ( + "bytes" + "context" + "encoding/binary" + "errors" + "fmt" + "io" + "sync" + "time" + + "github.com/klauspost/compress/zstd" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/persistence/base_encoding" + state_accessors "github.com/ledgerwatch/erigon/cl/persistence/state" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" + "github.com/ledgerwatch/erigon/cl/utils" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + "github.com/spf13/afero" + "golang.org/x/exp/slices" +) + +type HistoricalStatesReader struct { + cfg *clparams.BeaconChainConfig + fs afero.Fs // some data is on filesystem to avoid database fragmentation + validatorTable *state_accessors.StaticValidatorTable // We can save 80% of the I/O by caching the validator table + blockReader freezeblocks.BeaconSnapshotReader + genesisState *state.CachingBeaconState + + // cache for shuffled sets + shuffledSetsCache *lru.Cache[uint64, []uint64] +} + +func NewHistoricalStatesReader(cfg *clparams.BeaconChainConfig, blockReader freezeblocks.BeaconSnapshotReader, validatorTable *state_accessors.StaticValidatorTable, fs afero.Fs, genesisState *state.CachingBeaconState) *HistoricalStatesReader { + + cache, err := lru.New[uint64, []uint64]("shuffledSetsCache_reader", 125) + if err != nil { + panic(err) + } + + return &HistoricalStatesReader{ + cfg: cfg, + fs: fs, + blockReader: blockReader, + genesisState: genesisState, + validatorTable: validatorTable, + shuffledSetsCache: cache, + } +} + +func (r *HistoricalStatesReader) ReadHistoricalState(ctx context.Context, tx kv.Tx, slot uint64) (*state.CachingBeaconState, error) { + ret := state.New(r.cfg) + latestProcessedState, err := state_accessors.GetStateProcessingProgress(tx) + if err != nil { + return nil, err + } + + // If this happens, we need to update our static tables + if slot > latestProcessedState || slot > r.validatorTable.Slot() { + return nil, fmt.Errorf("slot %d is greater than latest processed state %d", slot, latestProcessedState) + } + + if slot == 0 { + return r.genesisState.Copy() + } + // Read the current block (we need the block header) + other stuff + block, err := r.blockReader.ReadBlockBySlot(ctx, tx, slot) + if err != nil { + return nil, err + } + if block == nil { + return nil, fmt.Errorf("block at slot %d not found", slot) + } + blockHeader := block.SignedBeaconBlockHeader().Header + blockHeader.Root = common.Hash{} + // Read the minimal beacon state which have the small fields. + minimalBeaconState, err := state_accessors.ReadMinimalBeaconState(tx, slot) + if err != nil { + return nil, err + } + // State not found + if minimalBeaconState == nil { + return nil, nil + } + + // Versioning + ret.SetVersion(minimalBeaconState.Version) + ret.SetGenesisTime(r.genesisState.GenesisTime()) + ret.SetGenesisValidatorsRoot(r.genesisState.GenesisValidatorsRoot()) + ret.SetSlot(slot) + ret.SetFork(minimalBeaconState.Fork) + // History + stateRoots, blockRoots := solid.NewHashVector(int(r.cfg.SlotsPerHistoricalRoot)), solid.NewHashVector(int(r.cfg.SlotsPerHistoricalRoot)) + ret.SetLatestBlockHeader(blockHeader) + + if err := r.readHistoryHashVector(tx, r.genesisState.BlockRoots(), slot, r.cfg.SlotsPerHistoricalRoot, kv.BlockRoot, blockRoots); err != nil { + return nil, fmt.Errorf("failed to read block roots: %w", err) + } + ret.SetBlockRoots(blockRoots) + + if err := r.readHistoryHashVector(tx, r.genesisState.StateRoots(), slot, r.cfg.SlotsPerHistoricalRoot, kv.StateRoot, stateRoots); err != nil { + return nil, fmt.Errorf("failed to read state roots: %w", err) + } + ret.SetStateRoots(stateRoots) + + historicalRoots := solid.NewHashList(int(r.cfg.HistoricalRootsLimit)) + if err := state_accessors.ReadHistoricalRoots(tx, minimalBeaconState.HistoricalRootsLength, func(idx int, root common.Hash) error { + historicalRoots.Append(root) + return nil + }); err != nil { + return nil, fmt.Errorf("failed to read historical roots: %w", err) + } + ret.SetHistoricalRoots(historicalRoots) + + // Eth1 + eth1DataVotes := solid.NewStaticListSSZ[*cltypes.Eth1Data](int(r.cfg.Eth1DataVotesLength()), 72) + if err := r.readEth1DataVotes(tx, minimalBeaconState.Eth1DataLength, slot, eth1DataVotes); err != nil { + return nil, err + } + ret.SetEth1DataVotes(eth1DataVotes) + ret.SetEth1Data(minimalBeaconState.Eth1Data) + ret.SetEth1DepositIndex(minimalBeaconState.Eth1DepositIndex) + // Registry (Validators + Balances) + balancesBytes, err := r.reconstructBalances(tx, slot, kv.ValidatorBalance) + if err != nil { + return nil, fmt.Errorf("failed to read validator balances: %w", err) + } + balances := solid.NewUint64ListSSZ(int(r.cfg.ValidatorRegistryLimit)) + if err := balances.DecodeSSZ(balancesBytes, 0); err != nil { + return nil, fmt.Errorf("failed to decode validator balances: %w", err) + } + ret.SetBalances(balances) + + validatorSet, currActiveIdxs, prevActiveIdxs, err := r.readValidatorsForHistoricalState(tx, slot, minimalBeaconState.ValidatorLength) + if err != nil { + return nil, fmt.Errorf("failed to read validators: %w", err) + } + ret.SetValidators(validatorSet) + // Randomness + randaoMixes := solid.NewHashVector(int(r.cfg.EpochsPerHistoricalVector)) + if err := r.readRandaoMixes(tx, slot, randaoMixes); err != nil { + return nil, fmt.Errorf("failed to read randao mixes: %w", err) + } + ret.SetRandaoMixes(randaoMixes) + slashingsVector := solid.NewUint64VectorSSZ(int(r.cfg.EpochsPerSlashingsVector)) + // Slashings + err = r.reconstructUint64ListDump(tx, slot, kv.ValidatorSlashings, int(r.cfg.EpochsPerSlashingsVector), slashingsVector) + if err != nil { + return nil, fmt.Errorf("failed to read slashings: %w", err) + } + ret.SetSlashings(slashingsVector) + + // Finality + currentCheckpoint, previousCheckpoint, finalizedCheckpoint, err := state_accessors.ReadCheckpoints(tx, r.cfg.RoundSlotToEpoch(slot)) + if err != nil { + return nil, err + } + if currentCheckpoint == nil { + currentCheckpoint = r.genesisState.CurrentJustifiedCheckpoint() + } + if previousCheckpoint == nil { + previousCheckpoint = r.genesisState.PreviousJustifiedCheckpoint() + } + if finalizedCheckpoint == nil { + finalizedCheckpoint = r.genesisState.FinalizedCheckpoint() + } + ret.SetJustificationBits(*minimalBeaconState.JustificationBits) + ret.SetPreviousJustifiedCheckpoint(previousCheckpoint) + ret.SetCurrentJustifiedCheckpoint(currentCheckpoint) + ret.SetFinalizedCheckpoint(finalizedCheckpoint) + // Participation + if ret.Version() == clparams.Phase0Version { + currentAtts, previousAtts, err := r.readPendingEpochs(tx, slot, minimalBeaconState.CurrentEpochAttestationsLength, minimalBeaconState.PreviousEpochAttestationsLength) + if err != nil { + return nil, fmt.Errorf("failed to read pending attestations: %w", err) + } + ret.SetCurrentEpochAttestations(currentAtts) + ret.SetPreviousEpochAttestations(previousAtts) + } else { + currentIdxs, previousIdxs, err := r.readPartecipations(tx, slot, minimalBeaconState.ValidatorLength, currActiveIdxs, prevActiveIdxs, ret, currentCheckpoint, previousCheckpoint) + if err != nil { + return nil, fmt.Errorf("failed to read participations: %w", err) + } + ret.SetCurrentEpochParticipation(currentIdxs) + ret.SetPreviousEpochParticipation(previousIdxs) + } + + if ret.Version() < clparams.AltairVersion { + return ret, ret.InitBeaconState() + } + inactivityScores := solid.NewUint64ListSSZ(int(r.cfg.ValidatorRegistryLimit)) + // Inactivity + err = r.reconstructUint64ListDump(tx, slot, kv.InactivityScores, int(minimalBeaconState.ValidatorLength), inactivityScores) + if err != nil { + return nil, fmt.Errorf("failed to read inactivity scores: %w", err) + } + + ret.SetInactivityScoresRaw(inactivityScores) + // Sync + syncCommitteeSlot := r.cfg.RoundSlotToSyncCommitteePeriod(slot) + currentSyncCommittee, err := state_accessors.ReadCurrentSyncCommittee(tx, syncCommitteeSlot) + if err != nil { + return nil, fmt.Errorf("failed to read current sync committee: %w", err) + } + if currentSyncCommittee == nil { + currentSyncCommittee = r.genesisState.CurrentSyncCommittee() + } + + nextSyncCommittee, err := state_accessors.ReadNextSyncCommittee(tx, syncCommitteeSlot) + if err != nil { + return nil, fmt.Errorf("failed to read next sync committee: %w", err) + } + if nextSyncCommittee == nil { + nextSyncCommittee = r.genesisState.NextSyncCommittee() + } + ret.SetCurrentSyncCommittee(currentSyncCommittee) + ret.SetNextSyncCommittee(nextSyncCommittee) + // Execution + if ret.Version() < clparams.BellatrixVersion { + return ret, ret.InitBeaconState() + } + payloadHeader, err := block.Block.Body.ExecutionPayload.PayloadHeader() + if err != nil { + return nil, fmt.Errorf("failed to read payload header: %w", err) + } + ret.SetLatestExecutionPayloadHeader(payloadHeader) + if ret.Version() < clparams.CapellaVersion { + return ret, ret.InitBeaconState() + } + + // Withdrawals + ret.SetNextWithdrawalIndex(minimalBeaconState.NextWithdrawalIndex) + ret.SetNextWithdrawalValidatorIndex(minimalBeaconState.NextWithdrawalValidatorIndex) + // Deep history valid from Capella onwards + historicalSummaries := solid.NewStaticListSSZ[*cltypes.HistoricalSummary](int(r.cfg.HistoricalRootsLimit), 64) + if err := state_accessors.ReadHistoricalSummaries(tx, minimalBeaconState.HistoricalSummariesLength, func(idx int, historicalSummary *cltypes.HistoricalSummary) error { + historicalSummaries.Append(historicalSummary) + return nil + }); err != nil { + return nil, fmt.Errorf("failed to read historical summaries: %w", err) + } + ret.SetHistoricalSummaries(historicalSummaries) + return ret, ret.InitBeaconState() +} + +func (r *HistoricalStatesReader) readHistoryHashVector(tx kv.Tx, genesisVector solid.HashVectorSSZ, slot, size uint64, table string, out solid.HashVectorSSZ) (err error) { + var needFromGenesis, inserted uint64 + if size > slot || slot-size <= r.genesisState.Slot() { + needFromGenesis = size - (slot - r.genesisState.Slot()) + } + + needFromDB := size - needFromGenesis + cursor, err := tx.Cursor(table) + if err != nil { + return err + } + defer cursor.Close() + var currKeySlot uint64 + for k, v, err := cursor.Seek(base_encoding.Encode64ToBytes4(slot - needFromDB)); err == nil && k != nil; k, v, err = cursor.Next() { + if len(v) != 32 { + return fmt.Errorf("invalid key %x", k) + } + currKeySlot = base_encoding.Decode64FromBytes4(k) + out.Set(int(currKeySlot%size), common.BytesToHash(v)) + inserted++ + if inserted == needFromDB { + break + } + } + for i := 0; i < int(needFromGenesis); i++ { + currKeySlot++ + out.Set(int(currKeySlot%size), genesisVector.Get(int(currKeySlot%size))) + } + return nil +} + +func (r *HistoricalStatesReader) readEth1DataVotes(tx kv.Tx, eth1DataVotesLength, slot uint64, out *solid.ListSSZ[*cltypes.Eth1Data]) error { + initialSlot := r.cfg.RoundSlotToVotePeriod(slot) + initialKey := base_encoding.Encode64ToBytes4(initialSlot) + cursor, err := tx.Cursor(kv.Eth1DataVotes) + if err != nil { + return err + } + defer cursor.Close() + k, v, err := cursor.Seek(initialKey) + if err != nil { + return err + } + if initialSlot <= r.genesisState.Slot() { + // We need to prepend the genesis votes + for i := 0; i < r.genesisState.Eth1DataVotes().Len(); i++ { + out.Append(r.genesisState.Eth1DataVotes().Get(i)) + } + } + + endSlot := r.cfg.RoundSlotToVotePeriod(slot + r.cfg.SlotsPerEpoch*r.cfg.EpochsPerEth1VotingPeriod) + + for k != nil && base_encoding.Decode64FromBytes4(k) < endSlot { + if out.Len() >= int(eth1DataVotesLength) { + break + } + eth1Data := &cltypes.Eth1Data{} + if err := eth1Data.DecodeSSZ(v, 0); err != nil { + return err + } + out.Append(eth1Data) + k, v, err = cursor.Next() + if err != nil { + return err + } + } + return nil +} + +func (r *HistoricalStatesReader) readRandaoMixes(tx kv.Tx, slot uint64, out solid.HashVectorSSZ) error { + size := r.cfg.EpochsPerHistoricalVector + genesisVector := r.genesisState.RandaoMixes() + var needFromGenesis, inserted uint64 + roundedSlot := r.cfg.RoundSlotToEpoch(slot) + epoch := slot / r.cfg.SlotsPerEpoch + genesisEpoch := r.genesisState.Slot() / r.cfg.SlotsPerEpoch + if size > epoch || epoch-size <= genesisEpoch { + needFromGenesis = size - (epoch - genesisEpoch) + } + + needFromDB := size - needFromGenesis + cursor, err := tx.Cursor(kv.RandaoMixes) + if err != nil { + return err + } + defer cursor.Close() + var currKeyEpoch uint64 + for k, v, err := cursor.Seek(base_encoding.Encode64ToBytes4(roundedSlot - (needFromDB)*r.cfg.SlotsPerEpoch)); err == nil && k != nil; k, v, err = cursor.Next() { + if len(v) != 32 { + return fmt.Errorf("invalid key %x", k) + } + currKeyEpoch = base_encoding.Decode64FromBytes4(k) / r.cfg.SlotsPerEpoch + out.Set(int(currKeyEpoch%size), common.BytesToHash(v)) + inserted++ + if inserted == needFromDB { + break + } + } + for i := 0; i < int(needFromGenesis); i++ { + currKeyEpoch++ + out.Set(int(currKeyEpoch%size), genesisVector.Get(int(currKeyEpoch%size))) + } + // Now we need to read the intra epoch randao mix. + intraRandaoMix, err := tx.GetOne(kv.IntraRandaoMixes, base_encoding.Encode64ToBytes4(slot)) + if err != nil { + return err + } + if len(intraRandaoMix) != 32 { + return fmt.Errorf("invalid intra randao mix length %d", len(intraRandaoMix)) + } + out.Set(int(epoch%r.cfg.EpochsPerHistoricalVector), common.BytesToHash(intraRandaoMix)) + return nil +} + +func (r *HistoricalStatesReader) reconstructDiffedUint64List(tx kv.Tx, slot uint64, diffBucket string, fileSuffix string) ([]byte, error) { + // Read the file + freshDumpSlot := slot - slot%clparams.SlotsPerDump + _, filePath := clparams.EpochToPaths(freshDumpSlot, r.cfg, fileSuffix) + file, err := r.fs.Open(filePath) + if err != nil { + return nil, err + } + defer file.Close() + + // Read the diff file + zstdReader, err := zstd.NewReader(file) + if err != nil { + return nil, err + } + defer zstdReader.Close() + + lenRaw := uint64(0) + if err := binary.Read(file, binary.LittleEndian, &lenRaw); err != nil { + return nil, err + } + currentList := make([]byte, lenRaw) + + if _, err = utils.ReadZSTD(zstdReader, currentList); err != nil { + return nil, err + } + + // now start diffing + diffCursor, err := tx.Cursor(diffBucket) + if err != nil { + return nil, err + } + defer diffCursor.Close() + + for k, v, err := diffCursor.Seek(base_encoding.Encode64ToBytes4(freshDumpSlot)); err == nil && k != nil && base_encoding.Decode64FromBytes4(k) <= slot; k, v, err = diffCursor.Next() { + if err != nil { + return nil, err + } + if len(k) != 4 { + return nil, fmt.Errorf("invalid key %x", k) + } + if base_encoding.Decode64FromBytes4(k) > slot { + return nil, fmt.Errorf("diff not found for slot %d", slot) + } + s := time.Now() + currentList, err = base_encoding.ApplyCompressedSerializedUint64ListDiff(currentList, currentList, v) + if err != nil { + return nil, err + } + fmt.Println("diffing", time.Since(s)) + } + + return currentList, err +} + +func (r *HistoricalStatesReader) reconstructBalances(tx kv.Tx, slot uint64, diffBucket string) ([]byte, error) { + // Read the file + freshDumpSlot := slot - slot%clparams.SlotsPerDump + _, filePath := clparams.EpochToPaths(freshDumpSlot, r.cfg, "balances") + file, err := r.fs.Open(filePath) + if err != nil { + return nil, err + } + defer file.Close() + + // Read the diff file + zstdReader, err := zstd.NewReader(file) + if err != nil { + return nil, err + } + defer zstdReader.Close() + + lenRaw := uint64(0) + if err := binary.Read(file, binary.LittleEndian, &lenRaw); err != nil { + return nil, err + } + currentList := make([]byte, lenRaw) + + if _, err = utils.ReadZSTD(zstdReader, currentList); err != nil { + return nil, err + } + roundedSlot := r.cfg.RoundSlotToEpoch(slot) + fmt.Println(roundedSlot, freshDumpSlot) + for i := freshDumpSlot; i < roundedSlot; i += r.cfg.SlotsPerEpoch { + diff, err := tx.GetOne(diffBucket, base_encoding.Encode64ToBytes4(i)) + if err != nil { + return nil, err + } + if len(diff) == 0 { + continue + } + fmt.Println(i) + currentList, err = base_encoding.ApplyCompressedSerializedUint64ListDiff(currentList, currentList, diff) + if err != nil { + return nil, err + } + } + + // now start diffing + diffCursor, err := tx.Cursor(diffBucket) + if err != nil { + return nil, err + } + defer diffCursor.Close() + + for k, v, err := diffCursor.Seek(base_encoding.Encode64ToBytes4(roundedSlot)); err == nil && k != nil && base_encoding.Decode64FromBytes4(k) <= slot; k, v, err = diffCursor.Next() { + if err != nil { + return nil, err + } + if len(k) != 4 { + return nil, fmt.Errorf("invalid key %x", k) + } + if base_encoding.Decode64FromBytes4(k) > slot { + return nil, fmt.Errorf("diff not found for slot %d", slot) + } + s := time.Now() + currentList, err = base_encoding.ApplyCompressedSerializedUint64ListDiff(currentList, currentList, v) + if err != nil { + return nil, err + } + fmt.Println("diffing", time.Since(s)) + } + + return currentList, err +} + +func (r *HistoricalStatesReader) reconstructUint64ListDump(tx kv.Tx, slot uint64, bkt string, size int, out solid.Uint64ListSSZ) error { + diffCursor, err := tx.Cursor(bkt) + if err != nil { + return err + } + defer diffCursor.Close() + + k, v, err := diffCursor.Seek(base_encoding.Encode64ToBytes4(slot)) + if err != nil { + return err + } + if k == nil { + return fmt.Errorf("diff not found for slot %d", slot) + } + keySlot := base_encoding.Decode64FromBytes4(k) + if keySlot > slot { + _, v, err = diffCursor.Prev() + if err != nil { + return err + } + } + var b bytes.Buffer + if _, err := b.Write(v); err != nil { + return err + } + // Read the diff file + zstdReader, err := zstd.NewReader(&b) + if err != nil { + return err + } + defer zstdReader.Close() + currentList := make([]byte, size*8) + + if _, err = utils.ReadZSTD(zstdReader, currentList); err != nil && !errors.Is(err, io.EOF) { + return fmt.Errorf("failed to read dump: %w, len: %d", err, len(v)) + } + + return out.DecodeSSZ(currentList, 0) +} + +func (r *HistoricalStatesReader) readValidatorsForHistoricalState(tx kv.Tx, slot, validatorSetLength uint64) (*solid.ValidatorSet, []uint64, []uint64, error) { + out := solid.NewValidatorSetWithLength(int(r.cfg.ValidatorRegistryLimit), int(validatorSetLength)) + // Read the static validator field which are hot in memory (this is > 70% of the whole beacon state) + activeIds := make([]uint64, 0, validatorSetLength) + epoch := slot / r.cfg.SlotsPerEpoch + + prevActiveIds := make([]uint64, 0, validatorSetLength) + if epoch == 0 { + prevActiveIds = activeIds + } + r.validatorTable.ForEach(func(validatorIndex uint64, validator *state_accessors.StaticValidator) bool { + if validatorIndex >= validatorSetLength { + return false + } + currValidator := out.Get(int(validatorIndex)) + validator.ToValidator(currValidator, slot) + if currValidator.Active(epoch) { + activeIds = append(activeIds, validatorIndex) + } + if epoch == 0 { + return true + } + if currValidator.Active(epoch - 1) { + prevActiveIds = append(prevActiveIds, validatorIndex) + } + return true + }) + // Read the balances + + bytesEffectiveBalances, err := r.reconstructDiffedUint64List(tx, slot, kv.ValidatorEffectiveBalance, "effective_balances") + if err != nil { + return nil, nil, nil, err + } + for i := 0; i < int(validatorSetLength); i++ { + out.Get(i). + SetEffectiveBalanceFromBytes(bytesEffectiveBalances[(i * 8) : (i*8)+8]) + } + return out, activeIds, prevActiveIds, nil +} + +func (r *HistoricalStatesReader) readPendingEpochs(tx kv.Tx, slot uint64, currentEpochAttestationsLength, previousEpochAttestationsLength uint64) (*solid.ListSSZ[*solid.PendingAttestation], *solid.ListSSZ[*solid.PendingAttestation], error) { + if slot < r.cfg.SlotsPerEpoch { + return r.genesisState.CurrentEpochAttestations(), r.genesisState.PreviousEpochAttestations(), nil + } + roundedSlot := r.cfg.RoundSlotToEpoch(slot) + // Read the current epoch attestations + currentEpochAttestations, err := state_accessors.ReadCurrentEpochAttestations(tx, roundedSlot, int(r.cfg.CurrentEpochAttestationsLength())) + if err != nil { + return nil, nil, err + } + previousEpochAttestations, err := state_accessors.ReadPreviousEpochAttestations(tx, roundedSlot, int(r.cfg.PreviousEpochAttestationsLength())) + if err != nil { + return nil, nil, err + } + previousEpochAttestations.Truncate(int(previousEpochAttestationsLength)) + currentEpochAttestations.Truncate(int(currentEpochAttestationsLength)) + return currentEpochAttestations, previousEpochAttestations, nil +} + +// readParticipations shuffles active indicies and returns the participation flags for the given epoch. +func (r *HistoricalStatesReader) readPartecipations(tx kv.Tx, slot uint64, validatorLength uint64, + currentActiveIndicies, previousActiveIndicies []uint64, ret *state.CachingBeaconState, + currentJustifiedCheckpoint, previousJustifiedCheckpoint solid.Checkpoint) (*solid.BitList, *solid.BitList, error) { + randaoMixes := ret.RandaoMixes() + var beginSlot uint64 + epoch, prevEpoch := r.computeRelevantEpochs(slot) + beginSlot = prevEpoch * r.cfg.SlotsPerEpoch + + currentIdxs := solid.NewBitList(int(validatorLength), int(r.cfg.ValidatorRegistryLimit)) + previousIdxs := solid.NewBitList(int(validatorLength), int(r.cfg.ValidatorRegistryLimit)) + // trigger the cache for shuffled sets in parallel + s := time.Now() + r.tryCachingEpochsInParallell(randaoMixes, [][]uint64{currentActiveIndicies, previousActiveIndicies}, []uint64{epoch, prevEpoch}) + fmt.Println("parallel", time.Since(s)) + // Read the previous idxs + for i := beginSlot; i <= slot; i++ { + // Read the block + block, err := r.blockReader.ReadBlockBySlot(context.Background(), tx, i) + if err != nil { + return nil, nil, err + } + if block == nil { + continue + } + ret.SetSlot(i) + currentEpoch := i / r.cfg.SlotsPerEpoch + + // Read the participation flags + block.Block.Body.Attestations.Range(func(index int, attestation *solid.Attestation, length int) bool { + data := attestation.AttestantionData() + isCurrentEpoch := data.Target().Epoch() == currentEpoch + var activeIndicies []uint64 + // This looks horrible + if isCurrentEpoch { + if currentEpoch == prevEpoch { + activeIndicies = previousActiveIndicies + } else { + activeIndicies = currentActiveIndicies + } + } else { + if currentEpoch == prevEpoch { + return true + } + activeIndicies = previousActiveIndicies + } + + var attestingIndicies []uint64 + attestingIndicies, err = r.attestingIndicies(attestation.AttestantionData(), attestation.AggregationBits(), true, randaoMixes, activeIndicies) + if err != nil { + return false + } + var participationFlagsIndicies []uint8 + participationFlagsIndicies, err = ret.GetAttestationParticipationFlagIndicies(data, ret.Slot()-data.Slot(), true) + if err != nil { + return false + } + // apply the flags + for _, idx := range attestingIndicies { + for flagIndex := range r.cfg.ParticipationWeights() { + var flagParticipation cltypes.ParticipationFlags + if isCurrentEpoch && currentEpoch != prevEpoch { + flagParticipation = cltypes.ParticipationFlags(currentIdxs.Get(int(idx))) + } else { + flagParticipation = cltypes.ParticipationFlags(previousIdxs.Get(int(idx))) + } + if !slices.Contains(participationFlagsIndicies, uint8(flagIndex)) || flagParticipation.HasFlag(flagIndex) { + continue + } + if isCurrentEpoch && currentEpoch != prevEpoch { + currentIdxs.Set(int(idx), byte(flagParticipation.Add(flagIndex))) + } else { + previousIdxs.Set(int(idx), byte(flagParticipation.Add(flagIndex))) + } + } + } + return true + }) + if err != nil { + return nil, nil, err + } + } + return currentIdxs, previousIdxs, nil +} + +func (r *HistoricalStatesReader) computeRelevantEpochs(slot uint64) (uint64, uint64) { + epoch := slot / r.cfg.SlotsPerEpoch + if epoch <= r.cfg.AltairForkEpoch && r.genesisState.Version() < clparams.AltairVersion { + return epoch, epoch + } + return epoch, epoch - 1 +} + +func (r *HistoricalStatesReader) tryCachingEpochsInParallell(randaoMixes solid.HashVectorSSZ, activeIdxs [][]uint64, epochs []uint64) { + var wg sync.WaitGroup + wg.Add(len(epochs)) + for i, epoch := range epochs { + go func(epoch uint64, idxs []uint64) { + defer wg.Done() + _, _ = r.computeCommittee(randaoMixes, idxs, epoch*r.cfg.SlotsPerEpoch, r.cfg.TargetCommitteeSize, 0) + }(epoch, activeIdxs[i]) + } + wg.Wait() + +} diff --git a/cl/persistence/state/historical_states_reader/historical_states_reader_test.go b/cl/persistence/state/historical_states_reader/historical_states_reader_test.go new file mode 100644 index 00000000000..fb641c730b6 --- /dev/null +++ b/cl/persistence/state/historical_states_reader/historical_states_reader_test.go @@ -0,0 +1,65 @@ +package historical_states_reader_test + +import ( + "context" + "testing" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon/cl/antiquary" + "github.com/ledgerwatch/erigon/cl/antiquary/tests" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + state_accessors "github.com/ledgerwatch/erigon/cl/persistence/state" + "github.com/ledgerwatch/erigon/cl/persistence/state/historical_states_reader" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/log/v3" + "github.com/spf13/afero" + "github.com/stretchr/testify/require" +) + +func runTest(t *testing.T, blocks []*cltypes.SignedBeaconBlock, preState, postState *state.CachingBeaconState) { + db := memdb.NewTestDB(t) + reader := tests.LoadChain(blocks, db) + + ctx := context.Background() + vt := state_accessors.NewStaticValidatorTable() + f := afero.NewMemMapFs() + a := antiquary.NewAntiquary(ctx, preState, vt, &clparams.MainnetBeaconConfig, datadir.New("/tmp"), nil, db, nil, reader, nil, log.New(), true, f) + require.NoError(t, a.IncrementBeaconState(ctx, blocks[len(blocks)-1].Block.Slot+33)) + // Now lets test it against the reader + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + + vt = state_accessors.NewStaticValidatorTable() + require.NoError(t, state_accessors.ReadValidatorsTable(tx, vt)) + hr := historical_states_reader.NewHistoricalStatesReader(&clparams.MainnetBeaconConfig, reader, vt, f, preState) + s, err := hr.ReadHistoricalState(ctx, tx, blocks[len(blocks)-1].Block.Slot) + require.NoError(t, err) + + postHash, err := s.HashSSZ() + require.NoError(t, err) + postHash2, err := postState.HashSSZ() + require.NoError(t, err) + require.Equal(t, libcommon.Hash(postHash2), libcommon.Hash(postHash)) +} + +func TestStateAntiquaryCapella(t *testing.T) { + //t.Skip() + blocks, preState, postState := tests.GetCapellaRandom() + runTest(t, blocks, preState, postState) +} + +func TestStateAntiquaryPhase0(t *testing.T) { + // t.Skip() + blocks, preState, postState := tests.GetPhase0Random() + runTest(t, blocks, preState, postState) +} + +func TestStateAntiquaryBellatrix(t *testing.T) { + // t.Skip() + blocks, preState, postState := tests.GetBellatrixRandom() + runTest(t, blocks, preState, postState) +} diff --git a/cl/persistence/state/minimal_state.go b/cl/persistence/state/minimal_state.go new file mode 100644 index 00000000000..b22923767b2 --- /dev/null +++ b/cl/persistence/state/minimal_state.go @@ -0,0 +1,114 @@ +package state_accessors + +import ( + "encoding/binary" + "errors" + "io" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/phase1/core/state/raw" + ssz2 "github.com/ledgerwatch/erigon/cl/ssz" +) + +type MinimalBeaconState struct { + // Block Header and Execution Headers can be retrieved from block snapshots + Version clparams.StateVersion + // Lengths + ValidatorLength uint64 + Eth1DataLength uint64 + PreviousEpochAttestationsLength uint64 + CurrentEpochAttestationsLength uint64 + HistoricalSummariesLength uint64 + HistoricalRootsLength uint64 + // Phase0 + Eth1Data *cltypes.Eth1Data + Eth1DepositIndex uint64 + JustificationBits *cltypes.JustificationBits + Fork *cltypes.Fork + // Capella + NextWithdrawalIndex uint64 + NextWithdrawalValidatorIndex uint64 +} + +func MinimalBeaconStateFromBeaconState(s *raw.BeaconState) *MinimalBeaconState { + justificationCopy := &cltypes.JustificationBits{} + jj := s.JustificationBits() + copy(justificationCopy[:], jj[:]) + return &MinimalBeaconState{ + Fork: s.Fork(), + ValidatorLength: uint64(s.ValidatorLength()), + Eth1DataLength: uint64(s.Eth1DataVotes().Len()), + PreviousEpochAttestationsLength: uint64(s.PreviousEpochAttestations().Len()), + CurrentEpochAttestationsLength: uint64(s.CurrentEpochAttestations().Len()), + HistoricalSummariesLength: s.HistoricalSummariesLength(), + HistoricalRootsLength: s.HistoricalRootsLength(), + Version: s.Version(), + Eth1Data: s.Eth1Data(), + Eth1DepositIndex: s.Eth1DepositIndex(), + JustificationBits: justificationCopy, + NextWithdrawalIndex: s.NextWithdrawalIndex(), + NextWithdrawalValidatorIndex: s.NextWithdrawalValidatorIndex(), + } + +} + +// Serialize serializes the state into a byte slice with zstd compression. +func (m *MinimalBeaconState) WriteTo(w io.Writer) error { + buf, err := ssz2.MarshalSSZ(nil, m.getSchema()...) + if err != nil { + return err + } + lenB := make([]byte, 8) + binary.BigEndian.PutUint64(lenB, uint64(len(buf))) + if _, err = w.Write([]byte{byte(m.Version)}); err != nil { + return err + } + if _, err = w.Write(lenB); err != nil { + return err + } + _, err = w.Write(buf) + if err != nil { + return err + } + return nil +} + +// Deserialize deserializes the state from a byte slice with zstd compression. +func (m *MinimalBeaconState) ReadFrom(r io.Reader) error { + m.Eth1Data = &cltypes.Eth1Data{} + m.JustificationBits = &cltypes.JustificationBits{} + m.Fork = &cltypes.Fork{} + var err error + + versionByte := make([]byte, 1) + if _, err = r.Read(versionByte); err != nil { + return err + } + m.Version = clparams.StateVersion(versionByte[0]) + + lenB := make([]byte, 8) + if _, err = r.Read(lenB); err != nil { + return err + } + + buf := make([]byte, binary.BigEndian.Uint64(lenB)) + var n int + + n, err = r.Read(buf) + if err != nil && !errors.Is(err, io.ErrUnexpectedEOF) { + return err + } + if n != len(buf) { + return io.ErrUnexpectedEOF + } + return ssz2.UnmarshalSSZ(buf, int(m.Version), m.getSchema()...) +} + +func (m *MinimalBeaconState) getSchema() []interface{} { + schema := []interface{}{m.Eth1Data, m.Fork, &m.Eth1DepositIndex, m.JustificationBits, &m.ValidatorLength, &m.Eth1DataLength, &m.PreviousEpochAttestationsLength, &m.CurrentEpochAttestationsLength, &m.HistoricalSummariesLength, &m.HistoricalRootsLength} + if m.Version >= clparams.CapellaVersion { + schema = append(schema, &m.NextWithdrawalIndex, &m.NextWithdrawalValidatorIndex) + } + return schema +} diff --git a/cl/persistence/state/minimal_state_test.go b/cl/persistence/state/minimal_state_test.go new file mode 100644 index 00000000000..acfb7c22f07 --- /dev/null +++ b/cl/persistence/state/minimal_state_test.go @@ -0,0 +1,32 @@ +package state_accessors + +import ( + "bytes" + "testing" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/stretchr/testify/require" +) + +func TestMinimalState(t *testing.T) { + m := &MinimalBeaconState{ + Version: clparams.CapellaVersion, + Eth1Data: &cltypes.Eth1Data{}, + Fork: &cltypes.Fork{}, + Eth1DepositIndex: 0, + JustificationBits: &cltypes.JustificationBits{}, + NextWithdrawalIndex: 0, + NextWithdrawalValidatorIndex: 0, + } + var b bytes.Buffer + if err := m.WriteTo(&b); err != nil { + t.Fatal(err) + } + m2 := &MinimalBeaconState{} + if err := m2.ReadFrom(&b); err != nil { + t.Fatal(err) + } + + require.Equal(t, m, m2) +} diff --git a/cl/persistence/state/state_accessors.go b/cl/persistence/state/state_accessors.go new file mode 100644 index 00000000000..6155bde3371 --- /dev/null +++ b/cl/persistence/state/state_accessors.go @@ -0,0 +1,298 @@ +package state_accessors + +import ( + "bytes" + "io" + + "github.com/klauspost/compress/zstd" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/persistence/base_encoding" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + + libcommon "github.com/ledgerwatch/erigon-lib/common" +) + +// InitializeValidatorTable initializes the validator table in the database. +func InitializeStaticTables(tx kv.RwTx, state *state.CachingBeaconState) error { + var err error + if err = tx.ClearBucket(kv.ValidatorPublicKeys); err != nil { + return err + } + if err = tx.ClearBucket(kv.HistoricalRoots); err != nil { + return err + } + if err = tx.ClearBucket(kv.HistoricalSummaries); err != nil { + return err + } + state.ForEachValidator(func(v solid.Validator, idx, total int) bool { + key := base_encoding.Encode64ToBytes4(uint64(idx)) + if err = tx.Append(kv.ValidatorPublicKeys, key, v.PublicKeyBytes()); err != nil { + return false + } + return true + }) + if err != nil { + return err + } + for i := 0; i < int(state.HistoricalRootsLength()); i++ { + key := base_encoding.Encode64ToBytes4(uint64(i)) + root := state.HistoricalRoot(i) + if err = tx.Append(kv.HistoricalRoots, key, root[:]); err != nil { + return err + } + } + var temp []byte + for i := 0; i < int(state.HistoricalSummariesLength()); i++ { + temp = temp[:0] + key := base_encoding.Encode64ToBytes4(uint64(i)) + summary := state.HistoricalSummary(i) + temp, err = summary.EncodeSSZ(temp) + if err != nil { + return err + } + if err = tx.Append(kv.HistoricalSummaries, key, temp); err != nil { + return err + } + } + return err +} + +// IncrementValidatorTable increments the validator table in the database, by ignoring all the preverified indices. +func IncrementPublicKeyTable(tx kv.RwTx, state *state.CachingBeaconState, preverifiedIndicies uint64) error { + valLength := state.ValidatorLength() + for i := preverifiedIndicies; i < uint64(valLength); i++ { + key := base_encoding.Encode64ToBytes4(i) + pubKey, err := state.ValidatorPublicKey(int(i)) + if err != nil { + return err + } + // We put as there could be reorgs and thus some of overwriting + if err := tx.Put(kv.ValidatorPublicKeys, key, pubKey[:]); err != nil { + return err + } + } + return nil +} + +func IncrementHistoricalRootsTable(tx kv.RwTx, state *state.CachingBeaconState, preverifiedIndicies uint64) error { + for i := preverifiedIndicies; i < state.HistoricalRootsLength(); i++ { + key := base_encoding.Encode64ToBytes4(i) + root := state.HistoricalRoot(int(i)) + if err := tx.Put(kv.HistoricalRoots, key, root[:]); err != nil { + return err + } + } + return nil +} + +func IncrementHistoricalSummariesTable(tx kv.RwTx, state *state.CachingBeaconState, preverifiedIndicies uint64) error { + var temp []byte + var err error + for i := preverifiedIndicies; i < state.HistoricalSummariesLength(); i++ { + temp = temp[:0] + key := base_encoding.Encode64ToBytes4(i) + summary := state.HistoricalSummary(int(i)) + temp, err = summary.EncodeSSZ(temp) + if err != nil { + return err + } + if err = tx.Put(kv.HistoricalSummaries, key, temp); err != nil { + return err + } + } + return nil +} + +func ReadPublicKeyByIndex(tx kv.Tx, index uint64) (libcommon.Bytes48, error) { + var pks []byte + var err error + key := base_encoding.Encode64ToBytes4(index) + if pks, err = tx.GetOne(kv.ValidatorPublicKeys, key); err != nil { + return libcommon.Bytes48{}, err + } + var ret libcommon.Bytes48 + copy(ret[:], pks) + return ret, err +} + +func GetStateProcessingProgress(tx kv.Tx) (uint64, error) { + progressByytes, err := tx.GetOne(kv.StatesProcessingProgress, kv.StatesProcessingKey) + if err != nil { + return 0, err + } + if len(progressByytes) == 0 { + return 0, nil + } + return base_encoding.Decode64FromBytes4(progressByytes), nil +} + +func SetStateProcessingProgress(tx kv.RwTx, progress uint64) error { + return tx.Put(kv.StatesProcessingProgress, kv.StatesProcessingKey, base_encoding.Encode64ToBytes4(progress)) +} + +func ReadMinimalBeaconState(tx kv.Tx, slot uint64) (*MinimalBeaconState, error) { + minimalState := &MinimalBeaconState{} + v, err := tx.GetOne(kv.MinimalBeaconState, base_encoding.Encode64ToBytes4(slot)) + if err != nil { + return nil, err + } + if len(v) == 0 { + return nil, nil + } + buf := bytes.NewBuffer(v) + + return minimalState, minimalState.ReadFrom(buf) +} + +// ReadCheckpoints reads the checkpoints from the database, Current, Previous and Finalized +func ReadCheckpoints(tx kv.Tx, slot uint64) (current solid.Checkpoint, previous solid.Checkpoint, finalized solid.Checkpoint, err error) { + v, err := tx.GetOne(kv.Checkpoints, base_encoding.Encode64ToBytes4(slot)) + if err != nil { + return nil, nil, nil, err + } + if len(v) == 0 { + return nil, nil, nil, nil + } + // Current, Pre + return solid.Checkpoint(v[0:40]), solid.Checkpoint(v[40:80]), solid.Checkpoint(v[80:120]), nil +} + +// ReadCheckpoints reads the checkpoints from the database, Current, Previous and Finalized +func ReadNextSyncCommittee(tx kv.Tx, slot uint64) (committee *solid.SyncCommittee, err error) { + v, err := tx.GetOne(kv.NextSyncCommittee, base_encoding.Encode64ToBytes4(slot)) + if err != nil { + return nil, err + } + if len(v) == 0 { + return nil, nil + } + committee = &solid.SyncCommittee{} + copy(committee[:], v) + return +} + +// ReadCheckpoints reads the checkpoints from the database, Current, Previous and Finalized +func ReadCurrentSyncCommittee(tx kv.Tx, slot uint64) (committee *solid.SyncCommittee, err error) { + v, err := tx.GetOne(kv.CurrentSyncCommittee, base_encoding.Encode64ToBytes4(slot)) + if err != nil { + return nil, err + } + if len(v) == 0 { + return nil, nil + } + committee = &solid.SyncCommittee{} + copy(committee[:], v) + return +} + +func ReadHistoricalRoots(tx kv.Tx, l uint64, fn func(idx int, root libcommon.Hash) error) error { + for i := 0; i < int(l); i++ { + key := base_encoding.Encode64ToBytes4(uint64(i)) + v, err := tx.GetOne(kv.HistoricalRoots, key) + if err != nil { + return err + } + if err := fn(i, libcommon.BytesToHash(v)); err != nil { + return err + } + } + return nil +} + +func ReadHistoricalSummaries(tx kv.Tx, l uint64, fn func(idx int, historicalSummary *cltypes.HistoricalSummary) error) error { + for i := 0; i < int(l); i++ { + key := base_encoding.Encode64ToBytes4(uint64(i)) + v, err := tx.GetOne(kv.HistoricalSummaries, key) + if err != nil { + return err + } + historicalSummary := &cltypes.HistoricalSummary{} + if err := historicalSummary.DecodeSSZ(v, 0); err != nil { + return err + } + if err := fn(i, historicalSummary); err != nil { + return err + } + } + return nil +} + +func ReadCurrentEpochAttestations(tx kv.Tx, slot uint64, limit int) (*solid.ListSSZ[*solid.PendingAttestation], error) { + v, err := tx.GetOne(kv.CurrentEpochAttestations, base_encoding.Encode64ToBytes4(slot)) + if err != nil { + return nil, err + } + if len(v) == 0 { + return nil, nil + } + attestations := solid.NewDynamicListSSZ[*solid.PendingAttestation](limit) + reader, err := zstd.NewReader(bytes.NewReader(v)) + if err != nil { + return nil, err + } + + fullSZZ, err := io.ReadAll(reader) + if err != nil { + return nil, err + } + if err := attestations.DecodeSSZ(fullSZZ, 0); err != nil { + return nil, err + } + return attestations, nil +} + +func ReadPreviousEpochAttestations(tx kv.Tx, slot uint64, limit int) (*solid.ListSSZ[*solid.PendingAttestation], error) { + v, err := tx.GetOne(kv.PreviousEpochAttestations, base_encoding.Encode64ToBytes4(slot)) + if err != nil { + return nil, err + } + if len(v) == 0 { + return nil, nil + } + attestations := solid.NewDynamicListSSZ[*solid.PendingAttestation](limit) + reader, err := zstd.NewReader(bytes.NewReader(v)) + if err != nil { + return nil, err + } + fullSZZ, err := io.ReadAll(reader) + if err != nil { + return nil, err + } + if err := attestations.DecodeSSZ(fullSZZ, 0); err != nil { + return nil, err + } + return attestations, nil +} + +func ReadValidatorsTable(tx kv.Tx, out *StaticValidatorTable) error { + cursor, err := tx.Cursor(kv.StaticValidators) + if err != nil { + return err + } + defer cursor.Close() + + var buf bytes.Buffer + for k, v, err := cursor.First(); err == nil && k != nil; k, v, err = cursor.Next() { + staticValidator := &StaticValidator{} + buf.Reset() + if _, err := buf.Write(v); err != nil { + return err + } + if err := staticValidator.ReadFrom(&buf); err != nil { + return err + } + out.validatorTable = append(out.validatorTable, staticValidator) + } + if err != nil { + return err + } + slot, err := GetStateProcessingProgress(tx) + if err != nil { + return err + } + out.slot = slot + return err + +} diff --git a/cl/persistence/state/static_validator_table.go b/cl/persistence/state/static_validator_table.go new file mode 100644 index 00000000000..5e32b890e2a --- /dev/null +++ b/cl/persistence/state/static_validator_table.go @@ -0,0 +1,389 @@ +package state_accessors + +import ( + "fmt" + "io" + "sync" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/ethdb/cbor" +) + +// class Validator(Container): +// +// pubkey: BLSPubkey +// withdrawal_credentials: Bytes32 # Commitment to pubkey for withdrawals +// effective_balance: Gwei # Balance at stake +// slashed: boolean +// # Status epochs +// activation_eligibility_epoch: Epoch # When criteria for activation were met +// activation_epoch: Epoch +// exit_epoch: Epoch +// withdrawable_epoch: Epoch # When validator can withdraw funds +// +// StaticValidator is designed to track changes in a validator's attributes over time. +// It keeps track of attributes such as withdrawal credentials, slashed status, and various epochs +// that typically change at most twice during the validator's lifespan. +type StaticValidator struct { + publicKeys []staticValidatorField[libcommon.Bytes48] // Tracks changes in public keys. + withdrawalCredentials []staticValidatorField[libcommon.Hash] // Tracks changes in withdrawal credentials. + slashed []staticValidatorField[bool] // Tracks changes in slashed status. + activationEligibility []staticValidatorField[uint64] // Tracks changes in activation eligibility epoch. + activationEpoch []staticValidatorField[uint64] // Tracks changes in activation epoch. + exitEpoch []staticValidatorField[uint64] // Tracks changes in exit epoch. + withdrawableEpoch []staticValidatorField[uint64] // Tracks changes in withdrawable epoch. +} + +// NewStaticValidatorFromValidator creates a new StaticValidator from a given Validator and Slot, +// initializing the fields with the current state of the Validator at the given Slot. +func NewStaticValidatorFromValidator(v solid.Validator, slot uint64) *StaticValidator { + return &StaticValidator{ + // Initializes each field with the current state of the validator. + publicKeys: []staticValidatorField[libcommon.Bytes48]{{slot, v.PublicKey()}}, + withdrawalCredentials: []staticValidatorField[libcommon.Hash]{{slot, v.WithdrawalCredentials()}}, + slashed: []staticValidatorField[bool]{{slot, v.Slashed()}}, + activationEligibility: []staticValidatorField[uint64]{{slot, v.ActivationEligibilityEpoch()}}, + activationEpoch: []staticValidatorField[uint64]{{slot, v.ActivationEpoch()}}, + exitEpoch: []staticValidatorField[uint64]{{slot, v.ExitEpoch()}}, + withdrawableEpoch: []staticValidatorField[uint64]{{slot, v.WithdrawableEpoch()}}, + } +} + +// AddWithdrawalCredentials adds a new withdrawal credential entry to the validator. +// This method is used to track changes in withdrawal credentials over time. +func (s *StaticValidator) AddWithdrawalCredentials(slot uint64, withdrawalCredentials libcommon.Hash) { + s.withdrawalCredentials = append(s.withdrawalCredentials, staticValidatorField[libcommon.Hash]{slot, withdrawalCredentials}) +} + +// cborStaticValidator is a struct used for CBOR serialization of StaticValidator data. +type cborStaticValidator struct { + PublicKeys []staticValidatorField[libcommon.Bytes48] + WithdrawalCredentials []staticValidatorField[libcommon.Hash] + Slashed []staticValidatorField[bool] + ActivationEligibility []staticValidatorField[uint64] + ActivationEpoch []staticValidatorField[uint64] + ExitEpoch []staticValidatorField[uint64] + WithdrawableEpoch []staticValidatorField[uint64] +} + +// Serialize encodes the StaticValidator data into CBOR format and writes it to the given writer. +func (s *StaticValidator) WriteTo(w io.Writer) error { + return cbor.Marshal(w, cborStaticValidator{ + PublicKeys: s.publicKeys, + WithdrawalCredentials: s.withdrawalCredentials, + Slashed: s.slashed, + ActivationEligibility: s.activationEligibility, + ActivationEpoch: s.activationEpoch, + ExitEpoch: s.exitEpoch, + WithdrawableEpoch: s.withdrawableEpoch, + }) +} + +// Deserialize decodes CBOR data from the given reader and updates the StaticValidator fields. +func (s *StaticValidator) ReadFrom(r io.Reader) error { + tmp := &cborStaticValidator{} + if err := cbor.Unmarshal(&tmp, r); err != nil { + return err + } + s.withdrawalCredentials = tmp.WithdrawalCredentials + s.slashed = tmp.Slashed + s.activationEligibility = tmp.ActivationEligibility + s.activationEpoch = tmp.ActivationEpoch + s.exitEpoch = tmp.ExitEpoch + s.withdrawableEpoch = tmp.WithdrawableEpoch + s.publicKeys = tmp.PublicKeys + return nil +} + +func (s *StaticValidator) AddSlashed(slot uint64, slashed bool) { + s.slashed = append(s.slashed, staticValidatorField[bool]{slot, slashed}) +} + +func (s *StaticValidator) AddActivationEligibility(slot uint64, activationEligibility uint64) { + s.activationEligibility = append(s.activationEligibility, staticValidatorField[uint64]{slot, activationEligibility}) +} + +func (s *StaticValidator) AddActivationEpoch(slot uint64, activationEpoch uint64) { + s.activationEpoch = append(s.activationEpoch, staticValidatorField[uint64]{slot, activationEpoch}) +} + +func (s *StaticValidator) AddExitEpoch(slot uint64, exitEpoch uint64) { + s.exitEpoch = append(s.exitEpoch, staticValidatorField[uint64]{slot, exitEpoch}) +} + +func (s *StaticValidator) AddWithdrawableEpoch(slot uint64, withdrawableEpoch uint64) { + s.withdrawableEpoch = append(s.withdrawableEpoch, staticValidatorField[uint64]{slot, withdrawableEpoch}) +} + +func (s *StaticValidator) WithdrawalCredentials(slot uint64) libcommon.Hash { + currIndex := 0 + for i, v := range s.withdrawalCredentials { + if v.Slot > slot { + break + } + currIndex = i + } + return s.withdrawalCredentials[currIndex].Field +} + +func (s *StaticValidator) Slashed(slot uint64) bool { + currIndex := 0 + for i, v := range s.slashed { + if v.Slot > slot { + break + } + currIndex = i + } + return s.slashed[currIndex].Field +} + +func (s *StaticValidator) ActivationEligibilityEpoch(slot uint64) uint64 { + currIndex := 0 + for i, v := range s.activationEligibility { + if v.Slot > slot { + break + } + currIndex = i + } + return s.activationEligibility[currIndex].Field +} + +func (s *StaticValidator) ActivationEpoch(slot uint64) uint64 { + currIndex := 0 + for i, v := range s.activationEpoch { + if v.Slot > slot { + break + } + currIndex = i + } + return s.activationEpoch[currIndex].Field +} + +func (s *StaticValidator) ExitEpoch(slot uint64) uint64 { + currIndex := 0 + for i, v := range s.exitEpoch { + if v.Slot > slot { + break + } + currIndex = i + } + return s.exitEpoch[currIndex].Field +} + +func (s *StaticValidator) WithdrawableEpoch(slot uint64) uint64 { + currIndex := 0 + for i, v := range s.withdrawableEpoch { + if v.Slot > slot { + break + } + currIndex = i + } + return s.withdrawableEpoch[currIndex].Field +} + +func (s *StaticValidator) PublicKey(slot uint64) libcommon.Bytes48 { + currIndex := 0 + for i, v := range s.publicKeys { + if v.Slot > slot { + break + } + currIndex = i + } + return s.publicKeys[currIndex].Field +} + +func (s *StaticValidator) ToValidator(v solid.Validator, slot uint64) { + v.SetPublicKey(s.PublicKey(slot)) + v.SetWithdrawalCredentials(s.WithdrawalCredentials(slot)) + v.SetSlashed(s.Slashed(slot)) + v.SetActivationEligibilityEpoch(s.ActivationEligibilityEpoch(slot)) + v.SetActivationEpoch(s.ActivationEpoch(slot)) + v.SetExitEpoch(s.ExitEpoch(slot)) + v.SetWithdrawableEpoch(s.WithdrawableEpoch(slot)) +} + +type staticValidatorField[V any] struct { + Slot uint64 + Field V +} + +// StaticValidatorTable is a structure to manage a collection of StaticValidators. +// It is used for tracking multiple validators and their state changes. +type StaticValidatorTable struct { + validatorTable []*StaticValidator + slot uint64 + sync sync.RWMutex // Mutex for safe concurrent access. +} + +// NewStaticValidatorTable creates a new instance of StaticValidatorTable. +func NewStaticValidatorTable() *StaticValidatorTable { + return &StaticValidatorTable{ + validatorTable: make([]*StaticValidator, 0, 2400), // Preallocating memory for efficiency. + } +} + +func (s *StaticValidatorTable) AddValidator(v solid.Validator, validatorIndex, slot uint64) error { + s.sync.Lock() + defer s.sync.Unlock() + if slot <= s.slot && s.slot != 0 { + return nil + } + s.validatorTable = append(s.validatorTable, NewStaticValidatorFromValidator(v, slot)) + if validatorIndex >= uint64(len(s.validatorTable)) { + return fmt.Errorf("validator index mismatch") + } + return nil +} + +func (s *StaticValidatorTable) AddWithdrawalCredentials(validatorIndex, slot uint64, withdrawalCredentials libcommon.Hash) error { + s.sync.Lock() + defer s.sync.Unlock() + if slot <= s.slot && s.slot != 0 { + return nil + } + if validatorIndex >= uint64(len(s.validatorTable)) { + return fmt.Errorf("validator index mismatch") + } + s.validatorTable[validatorIndex].AddWithdrawalCredentials(slot, withdrawalCredentials) + return nil +} + +func (s *StaticValidatorTable) AddSlashed(validatorIndex, slot uint64, slashed bool) error { + s.sync.Lock() + defer s.sync.Unlock() + if slot <= s.slot && s.slot != 0 { + return nil + } + if validatorIndex >= uint64(len(s.validatorTable)) { + return fmt.Errorf("validator index mismatch") + } + s.validatorTable[validatorIndex].AddSlashed(slot, slashed) + return nil +} + +func (s *StaticValidatorTable) AddActivationEligibility(validatorIndex, slot uint64, activationEligibility uint64) error { + s.sync.Lock() + defer s.sync.Unlock() + if slot <= s.slot && s.slot != 0 { + return nil + } + if validatorIndex >= uint64(len(s.validatorTable)) { + return fmt.Errorf("validator index mismatch") + } + s.validatorTable[validatorIndex].AddActivationEligibility(slot, activationEligibility) + return nil +} + +func (s *StaticValidatorTable) AddActivationEpoch(validatorIndex, slot uint64, activationEpoch uint64) error { + s.sync.Lock() + defer s.sync.Unlock() + if slot <= s.slot && s.slot != 0 { + return nil + } + if validatorIndex >= uint64(len(s.validatorTable)) { + return fmt.Errorf("validator index mismatch") + } + s.validatorTable[validatorIndex].AddActivationEpoch(slot, activationEpoch) + return nil +} + +func (s *StaticValidatorTable) AddExitEpoch(validatorIndex, slot uint64, exitEpoch uint64) error { + s.sync.Lock() + defer s.sync.Unlock() + if slot <= s.slot && s.slot != 0 { + return nil + } + if validatorIndex >= uint64(len(s.validatorTable)) { + return fmt.Errorf("validator index mismatch") + } + s.validatorTable[validatorIndex].AddExitEpoch(slot, exitEpoch) + return nil +} + +func (s *StaticValidatorTable) AddWithdrawableEpoch(validatorIndex, slot uint64, withdrawableEpoch uint64) error { + s.sync.Lock() + defer s.sync.Unlock() + if slot <= s.slot && s.slot != 0 { + return nil + } + if validatorIndex >= uint64(len(s.validatorTable)) { + return fmt.Errorf("validator index mismatch") + } + s.validatorTable[validatorIndex].AddWithdrawableEpoch(slot, withdrawableEpoch) + return nil +} + +func (s *StaticValidatorTable) GetInPlace(validatorIndex uint64, slot uint64, v solid.Validator) { + s.sync.RLock() + defer s.sync.RUnlock() + s.validatorTable[validatorIndex].ToValidator(v, slot) +} + +func (s *StaticValidatorTable) ForEach(fn func(validatorIndex uint64, validator *StaticValidator) bool) { + s.sync.RLock() + defer s.sync.RUnlock() + for i, v := range s.validatorTable { + if !fn(uint64(i), v) { + break + } + } +} + +func (s *StaticValidatorTable) WithdrawalCredentials(validatorIndex uint64, slot uint64) libcommon.Hash { + s.sync.RLock() + defer s.sync.RUnlock() + return s.validatorTable[validatorIndex].WithdrawalCredentials(slot) +} + +func (s *StaticValidatorTable) Slashed(validatorIndex uint64, slot uint64) bool { + s.sync.RLock() + defer s.sync.RUnlock() + return s.validatorTable[validatorIndex].Slashed(slot) +} + +func (s *StaticValidatorTable) ActivationEligibilityEpoch(validatorIndex uint64, slot uint64) uint64 { + s.sync.RLock() + defer s.sync.RUnlock() + return s.validatorTable[validatorIndex].ActivationEligibilityEpoch(slot) +} + +func (s *StaticValidatorTable) ActivationEpoch(validatorIndex uint64, slot uint64) uint64 { + s.sync.RLock() + defer s.sync.RUnlock() + return s.validatorTable[validatorIndex].ActivationEpoch(slot) +} + +func (s *StaticValidatorTable) ExitEpoch(validatorIndex uint64, slot uint64) uint64 { + s.sync.RLock() + defer s.sync.RUnlock() + return s.validatorTable[validatorIndex].ExitEpoch(slot) +} + +func (s *StaticValidatorTable) WithdrawableEpoch(validatorIndex uint64, slot uint64) uint64 { + s.sync.RLock() + defer s.sync.RUnlock() + return s.validatorTable[validatorIndex].WithdrawableEpoch(slot) +} + +func (s *StaticValidatorTable) GetStaticValidator(validatorIndex uint64) *StaticValidator { + s.sync.RLock() + defer s.sync.RUnlock() + return s.validatorTable[validatorIndex] +} + +// This is for versioning +func (s *StaticValidatorTable) SetSlot(slot uint64) { + s.sync.Lock() + defer s.sync.Unlock() + if slot <= s.slot && s.slot != 0 { + return + } + s.slot = slot +} + +func (s *StaticValidatorTable) Slot() uint64 { + s.sync.RLock() + defer s.sync.RUnlock() + return s.slot +} diff --git a/cl/persistence/state/static_validator_table_test.go b/cl/persistence/state/static_validator_table_test.go new file mode 100644 index 00000000000..37b7f38af39 --- /dev/null +++ b/cl/persistence/state/static_validator_table_test.go @@ -0,0 +1,67 @@ +package state_accessors + +import ( + "bytes" + "testing" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/stretchr/testify/require" +) + +func TestStaticValidatorTable(t *testing.T) { + // Make 5 validators. + vals := []solid.Validator{solid.NewValidator(), solid.NewValidator(), solid.NewValidator(), solid.NewValidator(), solid.NewValidator()} + + table := NewStaticValidatorTable() + for i := range vals { + require.NoError(t, table.AddValidator(vals[i], uint64(i), 0)) + } + // Now let us play with this + require.NoError(t, table.AddExitEpoch(1, 32, 34)) + require.NoError(t, table.AddExitEpoch(1, 38, 35)) + require.NoError(t, table.AddExitEpoch(1, 2000, 500)) + + require.Equal(t, table.ExitEpoch(1, 31), uint64(0)) + require.Equal(t, table.ExitEpoch(1, 32), uint64(34)) + require.Equal(t, table.ExitEpoch(1, 37), uint64(34)) + require.Equal(t, table.ExitEpoch(1, 38), uint64(35)) + require.Equal(t, table.ExitEpoch(1, 450), uint64(35)) + require.Equal(t, table.ExitEpoch(1, 1_000_000), uint64(500)) + // do the same for withdrawable epoch + require.NoError(t, table.AddWithdrawableEpoch(1, 32, 34)) + require.NoError(t, table.AddWithdrawableEpoch(1, 38, 35)) + require.NoError(t, table.AddWithdrawableEpoch(1, 2000, 500)) + + require.Equal(t, table.WithdrawableEpoch(1, 31), uint64(0)) + require.Equal(t, table.WithdrawableEpoch(1, 32), uint64(34)) + require.Equal(t, table.WithdrawableEpoch(1, 37), uint64(34)) + require.Equal(t, table.WithdrawableEpoch(1, 38), uint64(35)) + require.Equal(t, table.WithdrawableEpoch(1, 450), uint64(35)) + require.Equal(t, table.WithdrawableEpoch(1, 1_000_000), uint64(500)) + // now for withdrawal credentials + require.NoError(t, table.AddWithdrawalCredentials(1, 32, common.HexToHash("0x2"))) + require.NoError(t, table.AddWithdrawalCredentials(1, 38, common.HexToHash("0x3"))) + require.NoError(t, table.AddWithdrawalCredentials(1, 2000, common.HexToHash("0x40"))) + require.Equal(t, table.WithdrawalCredentials(1, 31), common.Hash{}) + require.Equal(t, table.WithdrawalCredentials(1, 32), common.HexToHash("0x2")) + require.Equal(t, table.WithdrawalCredentials(1, 37), common.HexToHash("0x2")) + require.Equal(t, table.WithdrawalCredentials(1, 38), common.HexToHash("0x3")) + require.Equal(t, table.WithdrawalCredentials(1, 450), common.HexToHash("0x3")) + require.Equal(t, table.WithdrawalCredentials(1, 1_000_000), common.HexToHash("0x40")) + // Now lets try to get the validator at a specific epoch + new := solid.NewValidator() + table.GetInPlace(1, 38, new) + require.Equal(t, new.WithdrawableEpoch(), uint64(35)) + require.Equal(t, new.ExitEpoch(), uint64(35)) + require.Equal(t, new.WithdrawalCredentials(), common.HexToHash("0x3")) + // Lastly serialize and deserialization + table.ForEach(func(validatorIndex uint64, validator *StaticValidator) bool { + var b bytes.Buffer + require.NoError(t, validator.WriteTo(&b)) + tmp := &StaticValidator{} + require.NoError(t, tmp.ReadFrom(&b)) + require.Equal(t, validator, tmp) + return true + }) +} diff --git a/cl/persistence/state/validator_events.go b/cl/persistence/state/validator_events.go new file mode 100644 index 00000000000..e1117b52459 --- /dev/null +++ b/cl/persistence/state/validator_events.go @@ -0,0 +1,164 @@ +package state_accessors + +import ( + "encoding/binary" + "errors" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" +) + +// THIS IS EXPERMIENTAL, IT MAY CHANGE + +var ErrUnknownEvent = errors.New("unknown event") + +type stateEvent int64 + +const ( + addValidator stateEvent = iota + changeExitEpoch + changeWithdrawableEpoch + changeWithdrawalCredentials + changeActivationEpoch + changeActivationEligibilityEpoch + changeSlashed +) + +type StateEvents struct { + buf []byte +} + +func NewStateEvents() *StateEvents { + return &StateEvents{} +} + +func (se *StateEvents) AddValidator(validatorIndex uint64, validator solid.Validator) { + se.buf = append(se.buf, byte(addValidator)) + se.buf = binary.BigEndian.AppendUint64(se.buf, validatorIndex) + se.buf = append(se.buf, validator...) +} + +func (se *StateEvents) ChangeExitEpoch(validatorIndex uint64, exitEpoch uint64) { + se.buf = append(se.buf, byte(changeExitEpoch)) + se.buf = binary.BigEndian.AppendUint64(se.buf, validatorIndex) + se.buf = binary.BigEndian.AppendUint64(se.buf, exitEpoch) +} + +func (se *StateEvents) ChangeWithdrawableEpoch(validatorIndex uint64, withdrawableEpoch uint64) { + se.buf = append(se.buf, byte(changeWithdrawableEpoch)) + se.buf = binary.BigEndian.AppendUint64(se.buf, validatorIndex) + se.buf = binary.BigEndian.AppendUint64(se.buf, withdrawableEpoch) +} + +func (se *StateEvents) ChangeWithdrawalCredentials(validatorIndex uint64, withdrawalCredentials libcommon.Hash) { + se.buf = append(se.buf, byte(changeWithdrawalCredentials)) + se.buf = binary.BigEndian.AppendUint64(se.buf, validatorIndex) + se.buf = append(se.buf, withdrawalCredentials[:]...) +} + +func (se *StateEvents) ChangeActivationEpoch(validatorIndex uint64, activationEpoch uint64) { + se.buf = append(se.buf, byte(changeActivationEpoch)) + se.buf = binary.BigEndian.AppendUint64(se.buf, validatorIndex) + se.buf = binary.BigEndian.AppendUint64(se.buf, activationEpoch) +} + +func (se *StateEvents) ChangeActivationEligibilityEpoch(validatorIndex uint64, activationEligibilityEpoch uint64) { + se.buf = append(se.buf, byte(changeActivationEligibilityEpoch)) + se.buf = binary.BigEndian.AppendUint64(se.buf, validatorIndex) + se.buf = binary.BigEndian.AppendUint64(se.buf, activationEligibilityEpoch) +} + +func (se *StateEvents) ChangeSlashed(validatorIndex uint64, slashed bool) { + se.buf = append(se.buf, byte(changeSlashed)) + se.buf = binary.BigEndian.AppendUint64(se.buf, validatorIndex) + se.buf = append(se.buf, byte(0)) + if slashed { + se.buf[len(se.buf)-1] = byte(1) + } +} + +func (se *StateEvents) CopyBytes() []byte { + return libcommon.Copy(se.buf) +} + +func (se *StateEvents) Reset() { + se.buf = se.buf[:0] +} + +// ReplayEvents replays the events in the buffer and will return the err on handler failure +func ReplayEvents(onAddValidator func(validatorIndex uint64, validator solid.Validator) error, + onChangeExitEpoch func(validatorIndex uint64, exitEpoch uint64) error, + onChangeWithdrawableEpoch func(validatorIndex uint64, withdrawableEpoch uint64) error, + onChangeWithdrawalCredentials func(validatorIndex uint64, withdrawalCredentials libcommon.Hash) error, + onChangeActivationEpoch func(validatorIndex uint64, activationEpoch uint64) error, + onChangeActivationEligibilityEpoch func(validatorIndex uint64, activationEligibilityEpoch uint64) error, + onChangeSlashed func(validatorIndex uint64, slashed bool) error, + e *StateEvents) error { + buf := e.buf + for len(buf) > 0 { + event := stateEvent(buf[0]) + buf = buf[1:] + switch event { + case addValidator: + validatorIndex := binary.BigEndian.Uint64(buf) + buf = buf[8:] + validator := solid.Validator(buf[:121]) + buf = buf[121:] + if err := onAddValidator(validatorIndex, validator); err != nil { + return err + } + case changeExitEpoch: + validatorIndex := binary.BigEndian.Uint64(buf) + buf = buf[8:] + exitEpoch := binary.BigEndian.Uint64(buf) + buf = buf[8:] + if err := onChangeExitEpoch(validatorIndex, exitEpoch); err != nil { + return err + } + case changeWithdrawableEpoch: + validatorIndex := binary.BigEndian.Uint64(buf) + buf = buf[8:] + withdrawableEpoch := binary.BigEndian.Uint64(buf) + buf = buf[8:] + if err := onChangeWithdrawableEpoch(validatorIndex, withdrawableEpoch); err != nil { + return err + } + case changeWithdrawalCredentials: + validatorIndex := binary.BigEndian.Uint64(buf) + buf = buf[8:] + var withdrawalCredentials [32]byte + copy(withdrawalCredentials[:], buf) + buf = buf[32:] + if err := onChangeWithdrawalCredentials(validatorIndex, withdrawalCredentials); err != nil { + return err + } + case changeActivationEpoch: + validatorIndex := binary.BigEndian.Uint64(buf) + buf = buf[8:] + activationEpoch := binary.BigEndian.Uint64(buf) + buf = buf[8:] + if err := onChangeActivationEpoch(validatorIndex, activationEpoch); err != nil { + return err + } + case changeActivationEligibilityEpoch: + validatorIndex := binary.BigEndian.Uint64(buf) + buf = buf[8:] + activationEligibilityEpoch := binary.BigEndian.Uint64(buf) + buf = buf[8:] + if err := onChangeActivationEligibilityEpoch(validatorIndex, activationEligibilityEpoch); err != nil { + return err + } + case changeSlashed: + validatorIndex := binary.BigEndian.Uint64(buf) + buf = buf[8:] + slashed := buf[0] == 1 + buf = buf[1:] + if err := onChangeSlashed(validatorIndex, slashed); err != nil { + return err + } + default: + return ErrUnknownEvent + } + } + return nil +} diff --git a/cl/persistence/state/validator_events_test.go b/cl/persistence/state/validator_events_test.go new file mode 100644 index 00000000000..b36be719f5a --- /dev/null +++ b/cl/persistence/state/validator_events_test.go @@ -0,0 +1,72 @@ +package state_accessors + +import ( + "testing" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/stretchr/testify/require" +) + +func TestStateEvents(t *testing.T) { + events := NewStateEvents() + events.AddValidator(0, solid.NewValidator()) + events.ChangeExitEpoch(1, 3) + events.ChangeWithdrawableEpoch(1, 4) + events.ChangeWithdrawalCredentials(1, [32]byte{2}) + events.ChangeActivationEpoch(1, 5) + events.ChangeActivationEligibilityEpoch(1, 6) + events.ChangeSlashed(1, true) + // Make one for index 2 + events.AddValidator(2, solid.NewValidator()) + events.ChangeExitEpoch(2, 2) + events.ChangeWithdrawableEpoch(2, 3) + events.ChangeWithdrawalCredentials(2, [32]byte{1}) + events.ChangeActivationEpoch(2, 4) + events.ChangeActivationEligibilityEpoch(2, 5) + events.ChangeSlashed(2, true) + // Ok now lets replay it. + ReplayEvents(func(validatorIndex uint64, validator solid.Validator) error { + require.Equal(t, validator, solid.NewValidator()) + return nil + }, func(validatorIndex, exitEpoch uint64) error { + if validatorIndex == 1 { + require.Equal(t, exitEpoch, uint64(3)) + } else { + require.Equal(t, exitEpoch, uint64(2)) + } + return nil + }, func(validatorIndex, withdrawableEpoch uint64) error { + if validatorIndex == 1 { + require.Equal(t, withdrawableEpoch, uint64(4)) + } else { + require.Equal(t, withdrawableEpoch, uint64(3)) + } + return nil + }, func(validatorIndex uint64, withdrawalCredentials libcommon.Hash) error { + if validatorIndex == 1 { + require.Equal(t, withdrawalCredentials, libcommon.Hash([32]byte{2})) + } else { + require.Equal(t, withdrawalCredentials, libcommon.Hash([32]byte{1})) + } + return nil + }, func(validatorIndex, activationEpoch uint64) error { + if validatorIndex == 1 { + require.Equal(t, activationEpoch, uint64(5)) + } else { + require.Equal(t, activationEpoch, uint64(4)) + } + return nil + }, func(validatorIndex, activationEligibilityEpoch uint64) error { + if validatorIndex == 1 { + require.Equal(t, activationEligibilityEpoch, uint64(6)) + } else { + require.Equal(t, activationEligibilityEpoch, uint64(5)) + } + return nil + }, func(validatorIndex uint64, slashed bool) error { + require.Equal(t, slashed, true) + return nil + }, events) + +} diff --git a/cl/persistence/test_data/test_block.ssz_snappy b/cl/persistence/test_data/test_block.ssz_snappy new file mode 100644 index 00000000000..f3301a23195 Binary files /dev/null and b/cl/persistence/test_data/test_block.ssz_snappy differ diff --git a/cl/phase1/cache/attestation_indicies_cache.go b/cl/phase1/cache/attestation_indicies_cache.go index 36c3b83e366..00a0fa36c4c 100644 --- a/cl/phase1/cache/attestation_indicies_cache.go +++ b/cl/phase1/cache/attestation_indicies_cache.go @@ -9,22 +9,22 @@ import ( var attestationIndiciesCache *lru.Cache[common.Hash, []uint64] -const attestationIndiciesCacheSize = 256 +const attestationIndiciesCacheSize = 1024 func LoadAttestatingIndicies(attestation *solid.AttestationData, aggregationBits []byte) ([]uint64, bool) { - bitsHash := utils.Keccak256(aggregationBits) + bitsHash := utils.Sha256(aggregationBits) hash, err := attestation.HashSSZ() if err != nil { return nil, false } - return attestationIndiciesCache.Get(utils.Keccak256(hash[:], bitsHash[:])) + return attestationIndiciesCache.Get(utils.Sha256(hash[:], bitsHash[:])) } func StoreAttestation(attestation *solid.AttestationData, aggregationBits []byte, indicies []uint64) { - bitsHash := utils.Keccak256(aggregationBits) + bitsHash := utils.Sha256(aggregationBits) hash, err := attestation.HashSSZ() if err != nil { return } - attestationIndiciesCache.Add(utils.Keccak256(hash[:], bitsHash[:]), indicies) + attestationIndiciesCache.Add(utils.Sha256(hash[:], bitsHash[:]), indicies) } diff --git a/cl/phase1/core/rawdb/accessors.go b/cl/phase1/core/rawdb/accessors.go deleted file mode 100644 index 2aa57a8ba5f..00000000000 --- a/cl/phase1/core/rawdb/accessors.go +++ /dev/null @@ -1,101 +0,0 @@ -package rawdb - -import ( - "encoding/binary" - "fmt" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon-lib/kv" - - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/utils" -) - -func EncodeNumber(n uint64) []byte { - ret := make([]byte, 4) - binary.BigEndian.PutUint32(ret, uint32(n)) - return ret -} - -// WriteBeaconState writes beacon state for specific block to database. -func WriteBeaconState(tx kv.Putter, state *state.CachingBeaconState) error { - data, err := utils.EncodeSSZSnappy(state) - if err != nil { - return err - } - - return tx.Put(kv.BeaconState, EncodeNumber(state.Slot()), data) -} - -func WriteBeaconBlock(tx kv.RwTx, signedBlock *cltypes.SignedBeaconBlock) error { - block := signedBlock.Block - - blockRoot, err := block.HashSSZ() - if err != nil { - return err - } - // database key is is [slot + block root] - slotBytes := EncodeNumber(block.Slot) - key := append(slotBytes, blockRoot[:]...) - value, err := signedBlock.EncodeSSZ(nil) - if err != nil { - return err - } - - // Write block hashes - // We write the block indexing - if err := tx.Put(kv.RootSlotIndex, blockRoot[:], slotBytes); err != nil { - return err - } - if err := tx.Put(kv.RootSlotIndex, block.StateRoot[:], key); err != nil { - return err - } - // Finally write the beacon block - return tx.Put(kv.BeaconBlocks, key, utils.CompressSnappy(value)) -} - -func ReadBeaconBlock(tx kv.RwTx, blockRoot libcommon.Hash, slot uint64, version clparams.StateVersion) (*cltypes.SignedBeaconBlock, uint64, libcommon.Hash, error) { - encodedBeaconBlock, err := tx.GetOne(kv.BeaconBlocks, append(EncodeNumber(slot), blockRoot[:]...)) - if err != nil { - return nil, 0, libcommon.Hash{}, err - } - if len(encodedBeaconBlock) == 0 { - return nil, 0, libcommon.Hash{}, nil - } - if encodedBeaconBlock, err = utils.DecompressSnappy(encodedBeaconBlock); err != nil { - return nil, 0, libcommon.Hash{}, err - } - signedBlock := new(cltypes.SignedBeaconBlock) - if err := signedBlock.DecodeSSZ(encodedBeaconBlock, int(version)); err != nil { - return nil, 0, libcommon.Hash{}, err - } - var eth1Number uint64 - var eth1Hash libcommon.Hash - if signedBlock.Block.Body.ExecutionPayload != nil { - eth1Number = signedBlock.Block.Body.ExecutionPayload.BlockNumber - eth1Hash = signedBlock.Block.Body.ExecutionPayload.BlockHash - } - return signedBlock, eth1Number, eth1Hash, err -} - -func WriteFinalizedBlockRoot(tx kv.Putter, slot uint64, blockRoot libcommon.Hash) error { - return tx.Put(kv.FinalizedBlockRoots, EncodeNumber(slot), blockRoot[:]) -} - -func ReadFinalizedBlockRoot(tx kv.Getter, slot uint64) (libcommon.Hash, error) { - root, err := tx.GetOne(kv.FinalizedBlockRoots, EncodeNumber(slot)) - if err != nil { - return libcommon.Hash{}, err - } - if len(root) == 0 { - return libcommon.Hash{}, nil - } - if len(root) != length.Hash { - return libcommon.Hash{}, fmt.Errorf("read block root with mismatching length") - } - return libcommon.BytesToHash(root), nil -} diff --git a/cl/phase1/core/rawdb/accessors_test.go b/cl/phase1/core/rawdb/accessors_test.go deleted file mode 100644 index 3478e0f7bf5..00000000000 --- a/cl/phase1/core/rawdb/accessors_test.go +++ /dev/null @@ -1,46 +0,0 @@ -package rawdb_test - -import ( - "testing" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb" - - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/stretchr/testify/require" -) - -func TestBeaconBlock(t *testing.T) { - _, tx := memdb.NewTestTx(t) - signedBeaconBlock := new(cltypes.SignedBeaconBlock) - require.NoError(t, signedBeaconBlock.DecodeSSZ(rawdb.SSZTestBeaconBlock, int(clparams.BellatrixVersion))) - - root, err := signedBeaconBlock.Block.HashSSZ() - require.NoError(t, err) - - require.NoError(t, rawdb.WriteBeaconBlock(tx, signedBeaconBlock)) - newBlock, _, _, err := rawdb.ReadBeaconBlock(tx, root, signedBeaconBlock.Block.Slot, clparams.BellatrixVersion) - require.NoError(t, err) - newRoot, err := newBlock.HashSSZ() - require.NoError(t, err) - root, err = signedBeaconBlock.HashSSZ() - require.NoError(t, err) - - require.Equal(t, root, newRoot) -} - -func TestFinalizedBlockRoot(t *testing.T) { - _, tx := memdb.NewTestTx(t) - signedBeaconBlock := new(cltypes.SignedBeaconBlock) - require.NoError(t, signedBeaconBlock.DecodeSSZ(rawdb.SSZTestBeaconBlock, int(clparams.BellatrixVersion))) - - root, err := signedBeaconBlock.Block.HashSSZ() - require.NoError(t, err) - - require.NoError(t, rawdb.WriteFinalizedBlockRoot(tx, signedBeaconBlock.Block.Slot, root)) - newRoot, err := rawdb.ReadFinalizedBlockRoot(tx, signedBeaconBlock.Block.Slot) - require.NoError(t, err) - require.Equal(t, libcommon.BytesToHash(root[:]), newRoot) -} diff --git a/cl/phase1/core/rawdb/config.go b/cl/phase1/core/rawdb/config.go index 4346c81ce85..9c5389f22c5 100644 --- a/cl/phase1/core/rawdb/config.go +++ b/cl/phase1/core/rawdb/config.go @@ -2,9 +2,9 @@ package rawdb import ( "encoding/json" + "math" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/math" ) type BeaconDataConfig struct { diff --git a/cl/phase1/core/rawdb/config_test.go b/cl/phase1/core/rawdb/config_test.go deleted file mode 100644 index 53b733d2e10..00000000000 --- a/cl/phase1/core/rawdb/config_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package rawdb_test - -import ( - "testing" - - "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb" - "github.com/stretchr/testify/require" -) - -func TestBeaconDataConfig(t *testing.T) { - _, tx := memdb.NewTestTx(t) - cfg := new(rawdb.BeaconDataConfig) - require.NoError(t, rawdb.WriteBeaconDataConfig(tx, cfg)) - - newCfg, err := rawdb.ReadBeaconDataConfig(tx) - require.NoError(t, err) - require.Equal(t, cfg, newCfg) -} diff --git a/cl/phase1/core/rawdb/test_utils.go b/cl/phase1/core/rawdb/test_utils.go deleted file mode 100644 index a07b7d2ad64..00000000000 --- a/cl/phase1/core/rawdb/test_utils.go +++ /dev/null @@ -1,5 +0,0 @@ -package rawdb - -import "encoding/hex" - -var SSZTestBeaconBlock, _ = hex.DecodeString("640000008997ec6da35c366e19412d96edbab8db862634d849f95bd57ad25e3faa292a8aebfad0d21291dfbcee6178ec3b684748177e04993b43ff95876e4c35370993aec8a20d10c4de8e8ca070baa2772ea60ac1097100f2bdab45dc7fbf1102965f24a1a64f00000000006a300400000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a6abe003b99a9be225b53dc3bff875315b2688b7e0c28fadfe98569e2fd6cc2c54000000b598bdc18bf593e4a2ad7431abfea5af242b3f890d06bafeb059594ed517bdb4e26cc2e81b840593ed1f9a382fcc730d18875f91387224d28a7a6ce0759ac02de90466b8e4cc6f992685cb3c181c348d4847458d2f91d9c8804d01d7abc32aa360e416dc4227ae2f4635a924d331972550d7c2f5d0897ef4f6bee0b1a390e94bff7b070000000000a4aa98e1c809da071f818e57153481270d5aa048a19be4b6c9d4050bad9bdaee00000000000000000000000000000000000000000000000000000000000000008001000080010000800100008084000080840000fff7ffff7ffeffffefffff7ffffffffffffffffffdffffffffffffffffffffffdffffffff7ffffbdffffff7ffeffffffff7ffffffffffffdfffffffcffff7fffac27369b928b90b18264905a3e2c0468dafb620020273f1c2f6553cdbc3feced2c972f9d72bafe0dbcc396e1e87eb4e70f574cd95ff0dcbab8d2b5fc7645c1bed06df6b17a9fc8123450540905c16ed62b54769c906189a16d8275961b937b808084000000020000020300000404000006050000080600000a0700000c0800000e090000100a0000120b0000140c0000160d0000180e00001a0f00001c1000001e11000020120000221300002414000026150000281600002a1700002c1800002e190000301a0000321b0000341c0000361d0000381e00003a1f00003c2000003e21000040220000422300004424000046250000482600004a2700004c2800004e290000502a0000522b0000542c0000562d0000582e00005a2f00005c3000005e31000060320000623300006434000066350000683600006a3700006c3800006e390000703a0000723b0000743c0000763d0000783e00007a3f00007c4000007e41000080420000824300008444000086450000884600008a4700008c4800008e490000904a0000924b0000944c0000964d0000984e00009a4f00009c5000009e510000a0520000a2530000a4540000a6550000a8560000aa570000ac580000ae590000b05a0000b25b0000b45c0000b65d0000b85e0000ba5f0000bc600000be610000c0620000c2630000c4640000c6650000c8660000ca670000cc680000ce690000d06a0000d26b0000d46c0000d66d0000d86e0000da6f0000dc700000de710000e0720000e2730000e4740000e6750000e8760000ea770000ec780000ee790000f07a0000f27b0000f47c0000f67d0000f87e0000fa7f0000fc800000fe810000e4000000a0a64f000000000000000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95875df8719ed61f0200308a7311fce34ef538be482af723159dcca5890e5f9a5bb945440c73b0525ce7a729536b2f922314438d6df8dfd0f634c6a143957f16f0052f11fbe72c1d07afa46dcfa9dd03cb6d3b724ee4e0daad46cf30b18f8b9afc000000000800000000000000000000000000000000000000000000000002e4000000a0a64f00000000001a000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b573262f6cb537f37a314b640afd41d1083107b5a7b78fde6079855895756fd1351d6b2642290cd195339cfbc00f903d0467287786535adf2eb46124f5e413c5b052b140ff6fa1c7e260a2b9937df3c5be1e69166644f3821794ad0c890b62ad000000000000000000000000000000400000000000000000000000000004e4000000a0a64f000000000028000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958a4af5d4876a6b953405acdaa59032be3fd497554b639b84c568209caa31e167c450cfcc14afbbc6fe5a319fcabf6dc617bc4bf5eb1fa2b8a873d00322eb3985cfcad1a8be168ce289ca18f528228a2170dce8a367c9e199869b33661c453d09000000000200000004000000000000000000000008000020000000000004e4000000a0a64f000000000005000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b7eb4904203273879633c0bb35371be4d7eb0a281d45fb1cfbbd9aa81ebabda909abf8776a3eb36984de66b943d530fd0779b80313f2bc6c62c74b4317a4018a09f45037d614720c49525b702fa669049c0c88f4ff121a53f42e5f71a84b9876000000040000000000000000000000000000000000000000000400000004e4000000a0a64f00000000000200000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d020000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea46889c0eeae804d10a5c5c521175575559e9543b5afff3d1986c79a78b1cbf0af4638ce1a7ab8bbef2871664cb69a79b6bd189b528884c14fe125318376989f033655b7329cdd817a8ae67fdf8e4f58f8496b27df726acc60d5f06c975d4a0cf9a9000000000000000020000000000000000000000000000000000000000004e4000000a0a64f000000000026000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b23be2e6c71204f845b977c8125c8902812d4641eb2f7b57feff7c6104bf96d7957d3d230fb174bb8ef694784479b3450f97ee7c8c4178a3803ade1cbd03884ab969da4f5bab4c3040021a1c82cbdafe93e1e51aa5e3d457e5f27f22dbb694c5000000000000000000000000000000080000000000000000000000000002e4000000a0a64f000000000009000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a023f084ebbea1eb12727826526571e6d218c3a01224522c6810aa9ceba369313c2380fa8d4dad6cdba3b9d62b87518b0ef8790f6db880631441d77209e8a6273c29e0916c6522e7e94d0dcac906ca88a038bd196daae3378609b7cc2557755f000000000000000000000000000000000000000000000000000020000004e4000000a0a64f00000000003e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95abe85979700c10a96d494ed3acb8172315b8acd178eaf89ed25ab5794df87214847b4d4e6aa0f56e51d570044e607d7f134064d2c207b56bf6caab51f56d33b471ec38caa9a16c3fc884c1edcb6beb22668b163e26296e7e1e6ca67ae6ea2dcf000000000000000400000000000000000000000000000000000000000004e4000000a0a64f00000000002a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a3a1d96721d35071f312ab92b72c1adbe121cfcd428c994f2ce18c4282daf20bd503343084ace6c82e27e4767e58eb6d15dfecf57c2f362e15574d9dc924845bac401b5631793e41b6d904f125848a60a6893e1c6f1f28918ee4b3c3ca06df7dffffffffffffffffffffffffffffffffffffffffbfffffffbffffbffff03e4000000a0a64f00000000001c000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b959795c634dc6de7b742ee91abf7d62ecd03fc3d3baf2f0d7bc556c2aac3f034e4a0f5c17f51121cd7c1466526fdd3b642091f2549325ce20ace30b1ad07ec12ad2c460c9e47ffedb1d70e9329e84764204fd761d99f7526ae4f366f3612dc3276000000000000000000000000000000000000000000000000000000000404e4000000a0a64f000000000003000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a79a807e5f799bb4b03c108824a2b0a1af7aa79a3a58e42d0bd4201212892303225452f7c756c632ddd47c77f6503411185ba3d5c42483e2c0420e734efd61e8322c49e086beb113e7021f8551463eb26666e19f60b4e691d23d80d3d9cc8883ffffffffffffffffffffffffffffffffffffffffffffffffffdfffffff07e4000000a0a64f00000000000d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250509650be875d135eaa553cffe50339d9acd5f2b6172d76e0f8432a31d9b0960fa531c91bf2753428fdb3269750a49cc6350ccacc3ff64ec263dc0c560bb42806ddbc70bd4b4e0e3de23c4ffc4cac333603900571d8e07bbc724c57a649f86a3073fffffffffffffffffffffffffffffffffffffffffffffffffff7ffffff07e4000000a0a64f00000000002e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505088a03032a53c1f459820e2a083a5eb97eb9b488bfe4314cc93f38f5916f1b4bb8f46149dc2fadf35a60998534f859e7310380287bc9726b5a34e573732870d264fe8f4e68095118facfbdf8482700dc4ee5131b61ed6981977483119561eb67effffffffffffffffffffffff7fffffffffefffffffffffffffffffffff03e4000000a0a64f00000000000c000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95838222efebbc42680175d7dc36167a2eba30fa6787805c15d11e5bbad5e9c70bcc2267a64af891d41586dbfe245af7300eed0f945dc35b87a46400628f207edfa28122400d9cd86cf3c2b90fb61534f18a4a681a6c52d0a3d0c01edefbf27435000000000000000000000000080000000080000000000000000000000002e4000000a0a64f000000000007000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508ace36bcdfaa188584e4203280d40e1712459de543c1ac23753a001b2223764e3fe0ea9d92f077af959627750752df4a1052544b89063bbb77c4b03f9c6b24f7e145fcb5d491d2ce75f6ee890dc87187a8e4e87c5644e172d3c6d13c2f57a9a2fffffffffffffffffffffffffffffffffffffffffdffffffffffffffff07e4000000a0a64f000000000015000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95959f6691705effb2699d934a38fe6e1cd128ed424180af8cbf2a526b8837ae6bc40d283df56b6c3dcfed0d7c948801d61281187cf186b8c01398b1e45bd2ab7b1b73a0d852e5e5c9ff81413e08865c2676bdb5df952eb7f8c2a7c475646c88c1000000000000000000400000000000000200000000000000000000000002e4000000a0a64f000000000012000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508483d231734cb64ebbe0bd06598ac78176498ad400e39695f6fd82529d2f60c45a6628cce1453b10674802851ed009c418999ebf96d52bbb8dc646c462f587c7b5656defef9da4023a4485f08c7a9c812e95d86a6aa953d580b9a1207ee2e875ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000024000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958dfadf268ec42892891bc9c5ab4a7611841370361c93b53e56820dd921e8c673f53053c36163b292fc2a8f0d93870e420aab6631fe4b32a9e77a3738e43f1decc3d8e60134650912ef945e57cb4edb71e1a4e52e365445d1b1ba916d2344d513000040000000000000000000000100000000000000000000000000000004e4000000a0a64f000000000020000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958bd9dee96f63649e83426243d04753fbe8aa2200b8a4e1e9e3700a358372d7473c0bc0276f307304cd7a4988a2ddbafa05f7518bfa4cb9aaecb1f0a5af0ff0496d537d285b089b3a8daa486ad7feb0e155bb2b5abd2b3c83fff764e1ad2f7fa3000008000000000000000000000004000000000000000000000000000004e4000000a0a64f00000000002d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a1ce830db27b65b020e10687b068159c07fe4eb5a6de0759e8c4c1f1e6356aa4d12a7b17c3c2d24f3d1ac7aec1561676104144512f898601fcfa2c7dc950396abdc451d961cd3ac525251c678c70b5a4e42bf1a10a9c84e0181679cc041d52baefffffffffffffffffffffefffffffffffffffffffffffffffffeffeff07e4000000a0a64f00000000003e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050979b55315793213c50288893b4f68f75b5b5626b2796bc63aefeb76d498b97386415d6a34921cf44994dedd94ca666ee1367be1137fe5173a965126a25600114e45dccb763bdfc7eaf170143362e5f15fae2aeeae31e8a0c221ac03426f32e14fffffffffffffffbffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000026000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b532477a111d0650968d8bb8020774a8486c4a99c06a6c21d1d4659e448f49e7f9d8e34c2642949f14d9a91886838b80134d543d84afdcc75aac5dad20543adac6bd1af522c5edbd0753633f490405f4764edd2a14c82f306b7de714ebac592cfffffffffffff7fffffffffffffffff7ffffffffffffffffffffffffff03e4000000a0a64f000000000010000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95aadb78375a1d0d427e9a46ee455e2da7097767772dbf000fea5318464642bfa0d46ede7f12b0319140f2a85cdf0aa18a0c7e1f10fbff90627e067647da226005c0ae30199d1b3c06618d10e072dfacbb8221c6f8779dcd5560515332f5ef0e56000004000000000000100001000000000000000000000000000000000004e4000000a0a64f000000000031000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b17c936471f41bfbd9e0cdbe404a8cadb68238b5af5fe1b8cd779584f2246577bbcb4b9357f54f6298ed50c7901c010a0db0a08620bafaa17bfa4c4fed3f2f31ec76930382ac0652ace40ca5e639626d77ede515140f960ce89590da2efb7b01fffffffbfffffffff7ffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000037000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b58fc6b7c31287f87d5d7775cd5c11802ec4a06b9eac20ac20bdbf00acaa2202376f65fa43f463c846655f5d60e2c0a808bde1cfaf35b752798c375d727310b164cd0650c12ae76645c083042ca5f41622b187f722c88f1757ef368fc6ec8b38000000000000000000000000000000000000000000000000000000004002e4000000a0a64f000000000021000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958634cf61889c95553dce98e137f2ca77b164d74ba8dd762e635ada921387feebac5952688e45295f066cdc1ab8da825a080849eaf7eabc0e15a96db7421ff3831094d6e3dacbacb33a227f9c8c7b71250f110a81d0d9ca3152480ba8bbbe3765000000000000000000001000000000000100000000000000000000000004e4000000a0a64f00000000001f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b4bfda9580bdb187e0d9ac26a2a2f1d8e6f4377f31677fd19412ac851f06c8fc73349a4128f95567d6d6f1684663b232101407bd418b5b406a05441acb482555714bf2781a7e13e083070a77e637ddd6b6afb7ae6d5d1ace7e7aafdd1d3e9e45ffffffffffffffffffffff7fffffffffffffffffffffffffffffefffff07e4000000a0a64f000000000016000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508dae08c7aeaa1dc30fe61b200784bc1ad48069639401ec41e0008e72932cf1087c1cb72d1bf94dc7a1bf75e251fbfdcb19e9750648bd8318381b41f12709871160e04ca1d68d5021bd001f70914e310cb819e84e37da3810b12e5bd008d44d46ffffffffffffffffffdfffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000032000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050adf0f48de53445bf20a2dc1076eedbae1de3d99163e21ea0cf42af68e854a1a1feee4ebc92c50869b219cef1ae740fec01319713fd85b3ab98d786da66ffef49178a4c3241bb8bfb3fb99818cd4032d48b7ba35ccdecd3d712d2f547e91b28f2fffdfffffffffffff7ffffffffffffffffffffffffffffffffffffffef07e4000000a0a64f000000000021000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505086a1ec2580636363b8379c1e8980593557a6d198e06c21686242ca4d1f4f505afd3827a043fe8e882eb09ef8aa9dd8560dfa4d8f79d64f4af5ce02bcb47e36e67a7e8118fe39411089b986bf1b60b848d053f17d888f56ee0a307693382c33d2ffffffffffffffffffffeffffffffffffefff7ffffffffffffffffffff07e4000000a0a64f00000000001f000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b5a98c9d787279dac92315d997ab18d604c15fa45fcaec2ccacc20251af7de99eb2bfece9e5cb9b1dbab76c853c7544e177f436887dc42641941ebd110e65899455b0ebdc908bcea147e7bc574bb4f88f9399d6b1ddc311dbb4facf0c884c765000000000000000000000080000000000000000000000000000010000004e4000000a0a64f00000000000a000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a12b8e8640dc40e219454db4ba9b0dd8902ae9cd452a6abe20eb641b6a4b2918c78e4f5790acceefe8f964bb190b3da6171ab9c9a885886d791eb926219aadf9b81b6776440673fb1e0f0f2b369c0896bbc72ebfc1cd4a1785716b96d9d1861d000000000000000000000000000000000000000000002000000080000004e4000000a0a64f00000000000e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508171f1987fc4c2efb0fe8fbbab5fabfef44e51daea2cc486a844b0bdf3e027f0470d473d67baea25663c6f4447e3cf4100bb1c832e992e0bd9f79e008ce37062e1bbb74502494a3190610c4dd7048b23bc525031e5543a6b269a1bf9e1eae057ffffffffffffffffffffffffefffffffffffffffffffffffffffffffff07e4000000a0a64f000000000035000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958d893f9b6956345b2fa647157e39ddb72d6ddb74339c045bd6f611c7331d95da0382cd0e0bea2f15cfb7b5f947f41e9905166b917c41623d2e244b8a451c03ade812846f91fd126ccd24524cdc98385d4cf32fed34937dd416629c90f752d8c4000000000000000000000000000000000200000000000000004000000004e4000000a0a64f000000000034000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050825eedd37f5631b1e9bd9fa43115e139cd4a49d87ecded6799dba1bef7c37380dc4b1b4e51c58c4dbbf4dbf4c8071fa6055256945dfd8c7af4cc073336ff4f24bbd573894baabf3ee5c8e13ab84a4341f79aefccaeb6cac00026e7251d3cea91fffffffffffffffffffffbfffffffbffefffffffffffffffffffffffff07e4000000a0a64f00000000000e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b50036908796974cf031b00c2333685ea6a83cb045174add9c27834778d8daec2bbfb7cd9b9ac132e2f02f51ecc0c67916385e2e494ec6958c7d2e5224dad771a9cb8fafef85e504357919f3cce3cef804b38bdc80085cc1869011c66b52ae0f000000000000000000000000100000000000000000000000000000000004e4000000a0a64f00000000001e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a57c511cfa01a350fd0c3d5aa490eca2a398d1190f9d2b081e2cdd6ebedfa03f95aa35f503d4d0f4cbac3a4c1e3251a106c1ec4c57a35ee7b7eda40c6445a347b7f5f24c291b7fa8fd16724a614cc13f85cfa764bc49a02188d63b566c4a2f6e000000000000000000000000000020000000000000000000000000000004e4000000a0a64f000000000029000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9589933d9d9374e1d5ea9c0d146606491d110e85e2d48ca69089e312533d36dc9f7ef99beb21a62221edaf62714bddef210363477f25aabb24b41565e283f6ed5175a661382a950e4761b59ea5821391b5007eadfb64e9f4e03b2a4bc062f440ea000000000000200000000000000000000000000000000000000000000005e4000000a0a64f000000000017000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505089ec7867a679aa96c850f5d966343835689c894ee5e233769f48931b1cf1d1833a9c433bc49ce2bfa93137d8fa09029911c142b3067deb751947d3185b4d5021594e20c549373241d917c21faa9d467825d77a75484d8ba031d01a294ae5ae6cfffffffffffffbfffffefffffffffffffff7ffffffffffffffbfffffff07e4000000a0a64f00000000002b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b103737a916be450cdba6c4663910cc717b779e5e0e76a09515768ff910176a2368a86a228609c9615961eb647b1c3690b3f64f5e3e61adcc4ab0b031d5f267f768df2e133a500eff0d2b3f33decfd58b9fb33f28d943cb6098d3044d1d37905100000004000000000000000000000000000000000000000080000000004e4000000a0a64f00000000001a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a25f5f85c9e7903585a5dbc4eefaf42880ca8b64d64f1e13c5c50d9ab44481cc2ea21535f8c869555ec57771aec53e01162f9cc901e76335fa5cc79c0473a5c93f2bacea42963b11aa50c965af41deaf5e78cf471464969118174945addf347affffffffffffffffffffffffffffedbfffffffffffffffbdffffffffff07e4000000a0a64f000000000000000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505096c0109a2a6f5a46229df912a122e39844feb7e3d864083fb51b3192283c21fc87e2a1271ae01292eeaa0686ca0a2570074e301217c7622373149233097c4ef77c2d12752048750da3375f944af7eb4f6235181529e7640144bfa3d795fc998efffffffff7ffffffffffffffffbfffffffffffffffffffffffffffffff03e4000000a0a64f00000000001b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b359bc97259aa32a3b5293ffc65fc9c97e38ad07edb1293e556059a5698562b18b9c494276e531f8b6aa5c38817397b90b8e43e6911bb078d6a6dec70b0f32f1e5be7bb3a339edc4a5b1f1de33428a406fbb914ad79a20238bf806f675958e27000000000000000000000000008000000000000000000000000000000804e4000000a0a64f000000000017000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95add4cf6397f8aceea0bffcc81e71b196f0509c0641c965eb0e036abb2837f66071ea443f24675ef0409143f616c5e24009e87c737d6a58b675dedb1507b1618cacc96f8e541c46cb239aa07592e65546f9a06ed6da52d4702c1d65d9a4de7863000000000000000000010000000000000000000000000000000000000004e4000000a0a64f00000000003f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050afc03bbda16a4596e429369e3b4d341f89b361fb0a06f4da0d7737f4f766e826290c5119012384bb7a9404b1efa8a0310beecc203e85cc8f340e02b10be081522c3f89688503519a7cd28bf942731d5b4c90f0a28dbf19106a43e9f5498a4841fffffffffffffffbffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000036000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9590794a40c53169fa1e79c80d49f2842edf1befdf025812df90a2fc2d9fb9e97a4f53f30633cd9c6ae20d615f6132419314167949f258f90e95b302867716e1aceee4f80eec9d2762fc7e41251717635b5e5c3b40b71a639271bad80f6c89f2e8000000000000000000000000000000000000004000000000100000000004e4000000a0a64f000000000011000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a470ad345faf967200cb92ab305e0f91ebb52ad47edb1050cf8b4e5224eb739b1437e9e9a9f3fe3d08388c0bd838307f1345a4170cad4b4a408f2ea37fcf94f1a87bb0f4b473fe47c18a66a6b9aceeec14a7375702556223f860b192e4adb78800000c00000000a000000000000000000000000000000000100000000002e4000000a0a64f000000000015000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505094ca5596a9036df656ce91e2157706c484957a996f48bf988687142505bd1651e3372c5517cb38660defcd6b082c7d8d003688d9b73520411de0640369855766b6271dadd1b20d79949004f8edd0a7d3d36a4450952bcdc11d93e0eb4d3941a9ffffffffffffffffffbfffffffffffeffdffffffffffffffffffffffff03e4000000a0a64f000000000013000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505084a9d3f569756a0283c53f5c47b9a49b868e7bea97ccc22311578e25b626f90071389f73aa49733c1971de614358886b009dad0818c845393c75d64d280d0efad41f7d3a9c191b1047328cd4aa661b548415ed63c23aa5e128a11ec2a0864d12ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f00000000001d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508d5c4c8ace02aebca2c8905f072edd1365d3e00b714d068de4ed355c391646e9badfba377e1edf40546ed4d5231520a800880a548fe9629de999f81032f854d273449c0d6306c17dc8b12073ebcd09c17e4e748f774a2e33b4a2e2209ec886dafffffffffffffffff7fffffffffbffbffffbffffdfffdfffffffdfffff03e4000000a0a64f00000000000c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b1bf16391c81ced969b9b633744815204ce1d7d5694a76997faaa9abc9d64754f692f0929fa55965ebd4883c89cf5468078e46a58ae6680d5b6692c2c4736c9045279427e991cd6122d9bedcda9a41fc8c71ed6e70cbfec65bc5b91232636e63fffffffffffffffffffffffff7ffffffff7fffffffffffffffffffffff03e4000000a0a64f000000000004000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b99dd7152d7b3ecabd4d505c1287b4804fc31269f401abf1aa09c3af3800a954ee44a8f8a000a7c618d7b6a0fff6966f09648a102c29c7c0f7fc35e7a4dc7b9da945d22e51485dab1c618a59f14e91a644e0f2792570ec023f554450f2cc5b37000001000000000000000000000000000000000000000000020000000002e4000000a0a64f000000000025000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9580b06d8ca3902b4c80e5ea1bb7a1e9f4bf20415060afbbe3542fa7abf332e8d702846b1053ee00624860323f2ca60e0e09a50fb4e5479caaaec05072b5cdd89b47c50f741a117d3089211c3c38f255d3ac93234259149497b4a1f167d4e0ab06000000000000000001000000000000000000000000100000000000000004e4000000a0a64f000000000028000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508f6155e7e300ee555ca12ebc7b1b6d3b3ec9a6de6d4e49cf57367e8c596c495776a15b80086eed2c328e8e69a89c5257055d912b8e1243c1ac03d87ab91af643d8d594b5378dfe56fec6782f6546b2c3586987e8dbdd7de459cafb10ddbd3067fffffffffdfffffffbfdfffffffffffffffffffff7ffffdfffffffffff07e4000000a0a64f000000000035000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050ae18e8931a8e5661b49f5881f4b6da28f7fa268ebe0f8bb1cc09dc35de296b825d5c76b8cf350641c4c5b4bbd395297d199cda60410d8c6ecaf08c525d15c4e3beaccd3b9e496b0be5c9624bb771883ecbb34ef1ad819c25d3caff59b4b5baf6ffffffffffffffffffffffffffff7ffffdffffffffffffffffbfffffff07e4000000a0a64f00000000003b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250509661ad630cd8f5a0d301fa54816c6861a587cd7c38ad3b1466f4fb75976824e805bee51a6eb2636a3a2660f74c5f6c1f1914d97b1fd5e253537224957377509447db017274ebc6487ec36106052e1693c01379608525ffa18322241b1a270297fffffffffffbffffffffffffffffffff7fffffffffffffffffffffffff03e4000000a0a64f000000000010000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b3e094893413b3bc4352a277deea82e275348114d1f29c928a1db7a437bb4cbeb040422376e4226b306e4f9d6c45aed509c05dcc29947bcf8b2c6f57be05b258aa41c333c1320ca1ab8cb33ade449bcd7ed19529c5ddc7149b2a0386a22b1337fffffbffffffffffffeffffeffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000030000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505097a7f82a9d282da2a73ac8812045acbc4136d076c3282dc65114866bd6e4f19b8bb888a99b60192b95ba97ddcd65015d028212c24466f09d8dc0f026186ad9dbe94a6970ddd7d91215e54c0827097349dfd8a502cf8cec678d6cb6ddf12581e9fffffffffffffffffffffffefffffffffffffffffff7ffffffffffffff07e4000000a0a64f00000000002c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b88aa81dcf7e23d08b350425eece22d588dfedc40c9f90702a9d375960b80a7e20dc67d46d7b7d14cd24c80540f0309216893f33dbb28c95a4622da9baf7a9cb23abdf31e3cf5159a6e0e2053113f194fa842e4f0753f524e7a3b6b91fd6627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000025000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508413946477ff7360dc70e56f20a937f80e9d673be133c25bae1550f3d633bc63568cb900ca949c7e99609c7c37ab3cd0188a64f0a90ad86c1880f3d2a94ef03825abb4dad47925ce03033fb6906f14c2cc5398e3e8faab0b47b1df9cccfc88b0fffffffffffffffffeffffffffffffffffffffffffeffffffffffbffff07e4000000a0a64f000000000019000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9593022ef6995ae413564bd7e21a570e4576f48b9ec7079bc621061f1e55aa5a1486bed3447b2f6a408ddfafb7229d8a930f28d0c0a872b699db6fff68cf9706ee91968d646929ccd2a93c2e8e4a7dbe72a14ab073f8b8eed64491cda007b4f202000000000001000000000000000000000000000000000000000080000002e4000000a0a64f000000000039000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508fa8252f9a3842efba8d54def51e598bcb6a2d87956e41402ec025f65e64df44fbed80afb1bd6eb99c35160cd3518a3a065bc17aecc5ac0b680cf128985deda309f0207bd3fd30b7c28526496db30ff41cc17a8c376bcb53ae5505bb2adf53c5fffffffffffffffeffffffffffffffbfffeffffffffffffffeffffffff07e4000000a0a64f00000000001c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050ae1d7c505d438e890697647e9623061aee9762fca0d24423f24b172e2316ac44e7ec91d888616958277b87541a46fb2014cbc25ced4e0be8082d85bb1cbe67f6b2d7b899f2dd62225fe6d695626def79421114c1ff01bb3b586c003e580a08d1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffb07e4000000a0a64f000000000024000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050909f2c2e1b3f1643feb47e0de16e6a40f4ee63d279d899b38914aafab3969c0cf72e6cff96f2a1025824e0dd088fa662049f1294e30864ae8a3219da1996a4e5736ff3736aee218991afaed4bb0f16172c89ef1bd3a14dd0a743a2f569b8790cffbfbffffffffffffffffffffffeffffffffffffffffffffffffffffff07e4000000a0a64f000000000029000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b213c11c3ff69b84d620661f3702fe602ad715a372047778659d85d96df5d7a042fa030691745cae261dfd4bbdbaf19710c56c0bdc6efbdd56bf031d56984042a1fb7a2d11a67f8e5b1a7b4f062ab13568c0828bdeeb30846757d91cfd225b6dffffffffffffdfffffffffffffffffffffffffffffffffffffffffffff06e4000000a0a64f000000000033000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a6e5e9adabebbffbd747c4828c9a4d800ada5814f69cfaf675411c8f3ce0a6ce5b1369b06e27d373405f3987e4f407470fad87ce3cc43f5fda3d9a1ae37d47f060c389569f6cc795a67b63a4d8bc3bca5a698726877d073ad2cb2d6f82c9417effffffffffffffffffffffffffffffffffffffffffffffffffffffffff03e4000000a0a64f00000000002f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b00f6371afa3fcff69e30225b778fae19424deceedb9ab488ced3e81be5ab3a95ae3afdab077bb19c34c8b5ffa48c0c115cd84b0265b8e924aeed58ef592fb411b02d4b53db3db377096ad8827029edd707c44360ad4c3717b53672238ab7813fffffffffffffffffffffffffffffffffffffffffffdffffffffffffff07e4000000a0a64f000000000039000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a8311f17fd26db895a97b5f6615a4000ebd9db01433f49e8b361752f9fb09880d6ba36276071fd8313768595fb1243870c941754ba1efd5509e7acd683815c7b0e8fbcc4e621f15762f3aa3f589a34357cbdb4707a55769e4ff6d3592f46c16d000000000000000100000000000000000010000000000000010000000004e4000000a0a64f00000000003d000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a684b915940cf205e29d243c5e91efd63698e0797727ab5c3a821645d60cab94df689331133fdad14a1ac63bb6e6c71e107e0bf963bf9ef097b185ac4e75d94e586835aaf3c0b5e0cabfdfb700f52300a15279bf26224baa00a119cb389021a8ffffffffffffffffffffffffffffffffffffffffffffffffdfffffffff07e4000000a0a64f00000000002b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050939e76066b90a401176f65111822dd7721e902582c15d9921f19b0adfff884cad480f3f7408b06676a8e2fa53631448814ba91b46a5dc735121c044f68da4b8a3ccba5ab5eec028feb6fa1ff4a27a06eaf9729a2003d4c5934c3958a483ce431efffffffbfffffffffffffffffffeffffffffffffffffffff7fff7ffff07e4000000a0a64f00000000003a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508f4adab0d7d62008b34750d4294f59e2cb68a798159d9e7843aa32eccf8118b359a60a398e4b64c39502f4f0a285284e0b9a3230a0a997f2fc5b891957fe9056a8929135a15828afec0e8f65d23e8fdb9c58d140090ca6260009433ed893a07effffffffffffffffffffffffffffffffffffffffffffffffffffffffbf07e4000000a0a64f000000000027000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050845df1086264fba3e2e5cebeb8da3fd238cc986bf215ef9142a42c1dd940f23e6c8dcbdcfd99e4b767bd722299f24fd80339fb53c767f857514e667ab10725b17399389fcc25c35d674ffd042d12a4d05d254a67320a3e929ade8bf297be0ba2fffffffffffffffffdffffffffffffffffffffffffffefffffffffffff07e4000000a0a64f00000000000f000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250509018410244b5eb0aee7df1c9aee88db7a0f88e754ff638793121e3067c1b2a3c0100774d9272c7bfd441b604c61f34470a3e07ea454681bcba6fd02e8f65e4731125a9fc9e1cfdca25face5b23c1b6093c5d5e4584c240fe7c4bf037b4631915ffffffffdfffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f00000000003f000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95ac482c3bff7dbbd03af8b0ab74b5c227f8ed475240bd4124f2f9b8df21c571c50d0b98828adef6d48cc3ada1e24c9c850c52b5c335945d18a49835b1411262103292f4bf1191f64da967b3f2d926a0f1d8c9f383fdd2d68f96ef93357987fa86000000000000000400000000000000000000000000000000000000000004e4000000a0a64f00000000001b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a74484652505099368856c419207930720ef6e8d9fdc96455d7d524872cfd3ba467e0e6d9b293764e1195ff317a6831b51c8630691936013c0f32bd8492cf9888f9005851bdd68e0c49be73477857c1e135837e97bde62e94ec326ec1003435e576bf9daf02fbffffffffffffffffffffffffff7ffffffffffffffffffffffffffffff707e4000000a0a64f000000000002000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a6599532681aff03d8da0eedbe65ac91353958231f8b9456c7dffa3ff5ac3698465a1c92441c74be06c8e395a4072c0a168a61d6a8185db4bec1280fc4f46357cae7eeecad55c6830c9bf658bf41a8ed8b751bc8db3c058bb276a9fa180c3185000000000000000000000000000000000000000000000020000000000004e4000000a0a64f00000000003200000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d020000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468aaa360f430a8da44ffa88d30c8b782bd902ee423154ff9c924e6f16a24728568ade677a1f87ab3d512304ceb017718a10e6271a49ec3d31e7fbb51a6e50140a08740de9e9e734c1a8c2960718b9e8f5a7c551e4061f2e293752fd3d7e285220d000200000000000000000000000000000000000000000000000000000004e4000000a0a64f000000000008000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a68ae5d07525ddede46b508ad1eef1ed12dfdc385ecfd0ea1ca0fd0aad01f069c244d5f483e1ea1b02b24ba3ca3b54c910e6a3284116a81e3ab9e19cc5d7f4a39ac9aa373203de2338257d578074915af7c7509c169b7bb95d77539f630bcf68ff7fffffffffffffdffffffffffffffffffffffff7ffffffffffffffff03e4000000a0a64f00000000000b000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050ac2fe7471d289a3d38a59fa1b836b35eb87d9073a9e1e7fcdfb730db8284043ee969f9a9f003609b51701a2beb71fb950f5ec5c74be9efcf5c8b824ec3ebb66ebbad2719d75faa9abf59f11778889dda02841e5af57fe5cc56f227833dcecf84ffffffffffffffffffffdffffffffffffffffeff7fffffffffffffffff07e4000000a0a64f000000000030000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958a7e43fb0587d37fd57be5bab9cf0a50e0fa6236ca0a58b7b2b01cda3d47639168710697d966c8055d7bca2e798f891f0d2e7c0b55ea3ee5a2ce1d01ca3ecc63f8fd121131f402fa3c2db65f96ac8a1650c92f0baa0c8d9e9e03f7b744274c70000000000000000000000001000000000000000000080000000000000004e4000000a0a64f000000000001000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050979b7b5572a7ad1d9259144a5ec6c34172fc2bf6b9f6a182036bb8fe51180fb35add42a5a669376032d1461ef346a78709002d6baf692192a71756f4d3f14c9e1fb4a4a3bcb4af795755af21369d97ee4e76c8b79611374cb3c00482bf74362bffffbfffffffffffffffffffffffffffffffffffffffffffdfffffffff07e4000000a0a64f000000000038000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b959641a3f77e612482737c009ddc06b79265f72a64c74a84e265d3f09c9d8c44f2516e235d279858246e2332d91529c76f149689a28c4b43960a790fd8a9c0fa07cf984591c6ae053becd2ec92f5bb86cc4c025d14fd5415a1f090ed01a55b5e92000000000000000000000000000000000000000000000000000004000004e4000000a0a64f00000000000a000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050940d2a76059d3cc0adbc2abf69219880c5091e2d588550f954dc07ad8c2cea3f494ba2a4334e88be5778f730b2312dfa096c2756eca50d07e16001872b88f6bcd8de78fd870b060e9a159745807b37ca34382ebdf98c54d1aa780e085f9bb43fffffffffffffffdffffffffffffffffffffffffffff7dfffffff7fffff07e4000000a0a64f000000000018000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508572e438455a1155889c32956bb32896efe0e4fa9b2fb3774166288035e2bf1db574cc3d0a1429fc8c12a7c89d2a655b02819779c9ca45763389a8333bebfa0d8d42258df324844af7e1e193543f4473908cfdd4dc53ea7a9b2f602778aaacd7fffffffffeffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f00000000000b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958877824f66a3e630d3995381f0de9b4a1025007c2f82d98295b7d22dbb452552cb8ed5e9252ec14e5c75a54f2aa744fc0eb92dcfb82eeabac5fda6f6b541bbff29082c7257aa1b8b8ac983a085f6b89657580d2ec56c1937283d22430ff323d2000000000000000000002000000000000000010000000000000000000004e4000000a0a64f00000000002f000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958ebac609c304c9847d1a986746548ad7af3333c9716f0bc09f085f42026e6cb6cb515b4fbfa4410effc6f2f92a3ac9a215d3dda42a03a9846eb00aaa34cd8868dc66f77e15da87df735b9f54e0f683eb51f872fa873c7c6a80cd6b18d3cca1b6000000000000000000000000000000000000000000020000000000000004e4000000a0a64f000000000027000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9593b00a6334211b5f1baa5c07b6086a90e701cab4fc9f4c21b12ab97292d91286e24a01c7bfdb061918ae5cee56de56bc09674500ab0c517611477dd5fcb815eb9c9ea9fc1f36160675bbe6e1d80618c6b1a812d0d6711bb4ad1a7336208291f8000000000000000000000000000000000000000000001000000000000004e4000000a0a64f000000000023000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050871bf1ae5be9c4ae727d01ff54d14afd4877d7c57ca33e2509675fba88ef79af56d55f8eb94b9bc9578d46262dba46a705f12a28fcce071a38f4cd2c0615707629a0603a560e7b9a48466bbe23f4964c5ad882e2982b639f8fcb09f846ce6752ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07e4000000a0a64f000000000037000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050834b88302c23f7fc8f41f26c08283fbb698839cedfe7f4b4aba2e4dec16d1bd97e4df8c364b287b92f7d7efe39099458058b78286f4b24d0978b781b3a3bae833d94ac9185429dda9ba70c6e72e55d725aa168c2c1b7d2ca2e83d4963775ed5effffffffffffffffffffffffffffffffffffefffffffffffffffffffbf03e4000000a0a64f000000000032000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95847262c64b37e5013c580aaad847c14da4679d6eae31c3b6b1b4c1f082317706e9a3053aecebbe3619b8de3eeffc700707ed267f2c154f6b1a2ba4c17747f438e9f9b367f8e634361ce0439a443f0ba34ea078b00ee9398950c388c7161e0992000000000000000008000000000000000000000000000000000000000004e4000000a0a64f000000000004000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a2600043331a9308cb6c7ad72f51c25bfd662823d6f1e3abdc44a9cd4b547068ed822555daa575c55de53786279773770a74adec794187c4e6e94d6870a8f8b2085cedfb0a8ae6c8dc808be72d9bf6a843a5ceabe5802c0d88dae2f153d120cafffffeffff7fbffffffffffffffffffffffffffffffffffffdffffffff03e4000000a0a64f000000000006000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95a3b0e1dee28e8a92c02bf1b43a524d997e11a1b40a4ff2f090928308b581f9753c66d21f7b84bd6e24c9ded8645407790e5a11cd2adfc3fd32cf9f8299a370782814044a74398d19adac073431b8b16bc0068127d228e16e3d273b3977389691000000000000000000000000000008000000000000000000000000000004e4000000a0a64f00000000002d000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9586817c9c1445b97614fcf8df49f38471176dc903f4cc0bb6d77fd79f70eeb5824745172f723fe1191f8e1fed23613bb9137ebb9e53c026637929e137eba71e10af51769607c24a4a9491a98d8d621a822d18dd36260722858bf9ef1d734b6d4c000000000000000000000010000000000000000000000000000010000004e4000000a0a64f000000000006000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050adc5589942f05df34d32860774a5356eaddf18ebdd92c30e30576c944ea2235b3aae30fe24459fecf13433fcf0ff79030652e6a7f56b15b6ec88893ee5a4072329999843a08762e0b6fbed785c780e1b65f1d1d7fefd4f144d581b8b14235f4ffffffffffffffffffffffffffffff7ffffffffffffffffffffffffffff07e4000000a0a64f00000000003b000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9590828c0deccab5ea4ffa658a41e9ec7bc92fb4d1904d75c14bce3cb8a03aa08cc56f6ba65ce8ae7f819e0ebceba58b3904d28b40d9d97486387bf1e5adf4812010cd72aff188d2274e16e2b7130894d72300825d781baed2205c9a90c73f9415000000000004000000000000000000008000000000000000000000000002e4000000a0a64f00000000003c000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b9283c8d1d5f826ef8994f2469e2de5be890cf2b6648916648ec92c1fb42dc2ae37203106781a3b8e0f4715ce8afb54612dcf98ba2f614874544b0395b79138f432fc53829649f090b1cbfb7a6392bbc00659bf4253b9e981d5d110d1f45f996000200000010000000000000000000208000000000000000000000000004e4000000a0a64f000000000002000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508888211d73d260706921a5dec1367d92ba50f153e32aed7f974847ee298308a7d02f2d708c774a758ebbd8787e12e8d618601f5f2402452b399662317515dc86e9718f974484de661e6d64061a2c72a5c0624a421be939898980393a57163e0fffffffffffffffffdfffffffffffffffffffffffffffffdfffffffffff07e4000000a0a64f000000000005000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508d8755ba11e06e502b4e3df4ef9c9bda1f6eb707c7c864fcbe559d2de51d983ccd770605dd89a45059efed838d79142d0f46b8c520ad5c19d841c0d0bbf96a00384e3d057e41526ab1ae10d80fb80fa0a34f1d48f8932b48fbebb5da9603a198fffffffbfffffffffffffffffffffffffffffffffffffffffffbffffff07e4000000a0a64f000000000008000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b9583c597823bcbfe3c7a60bbc9af421ba0e2183056284a88bc6e72e69f78a5711f129653cec5ef30b2c224d04bf3eccfa703ebacf97b99354c543f06f7189f07ae6b7b71bbc05514d53ad3e3438f86b87573adab5c40bbff8125419733fc5a13db000000000000000020000000000000000000000000000000000000000002e4000000a0a64f000000000001000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958c80e9e80f7be9ff227d0e0a1f616e834d110caba0515123873172d5ac5d8cfbdb6966f709aee2452e32018cc0305d890e2a48eacc52b97e1eca29352d144b26f689ed7f779eab93e0c989afb3eefebb44cc9ef458b0177330616e69d3988986000000000000000000000000000000000000000000000000200000000004e4000000a0a64f000000000003000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958918749d0a67f1824b3ae728bab026fff4cbaa44b14b1132e52cd9a10403e87ffc24e06c2d799be7435c1faee388157d1568fd438543250f580db75a27302c818ede1cf5d2229a54184a144e536d855e67c00274ab57d4eccf52045572e6b1e6000000000000000000000000000000000000000000000000002000000004e4000000a0a64f000000000034000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958a43e0a71b2f4d27ccb8ebadf4d72bd4859008100b74d6b5b873b0623437fd299c06d769e17dbdafcd102dbde497cecb18fd3c7cd5b82b2bf31a8a633391ff2cbf68f33611585b417bdbe11b2ea91903ec9ecf5b67f4b18c7d0fe5ef61f19c45000000000000000000000400000004000000000000000000000000000004e4000000a0a64f000000000020000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b7f04b645c48ba674c4ddcff138be61ccb36215e9d98f9726480fdfce56144438e64d2f509861a2ccb01e39f95db603e11b85923c1af01a9b9020cbc180ff1b0d0ff1185a9c1612bdc83f09efdb44a8dd703d92fe944a15d87e6470e14faea48fffff7fffffffffffffffffffffffbffffffffffffffffffffffffffff07e4000000a0a64f000000000011000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508b1b4d69682f6697df4890e01ef9bd4acf3413f9afdea9731b43dadcf807e791094b9068f16e68ec719f2d401a9ef46513028894f122f1ef7d894d3156a56b161b5dcb4dbc92d19a7590a4aac2f981a31d7f9d2481463c59b9aa69eafc52d5b3fffff3ffffffff5fffffffffffffffffffffefffffffffffefffffffff03e4000000a0a64f00000000002e000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b958e1d240cc40dc66d285974b23b0dea4ddc2a8770ef9cad60ae08ff4590776de635dbfd7e648b008335c69f6b1fc369100bd0a9c789c6198ba481f8b1ea117df28e5d5d4f8cbfb64ba385eba51e16324bbe1e4e503630490d764a3a32ebe210c1000000000000000000000000800000000010000000000000000000000002e4000000a0a64f00000000001e000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508f4baebdb2af01422e6941f241ae4b10a0a61f9d4b14231a5b39ea478908fb7ac2ba8b75a8678ab65a041581722b2f33069c5517da86df502a3d9881681188e52eadde50733191478a81c67938adfb3dfce5cd2d68f394a30dd5093764370633ffffffffffbfffffffffffffffffdfffffffffffffffffffffffffffff07e4000000a0a64f00000000003c000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a7448465250508eb8d8fe010b644ace5b8b7e5a644e72dce76b3936a37403c2cbdf8afeb017f65d3929fc8a17274467f164dd343a8fe71791906b688af4e2d1c73f99a8e048af35e03f79ffb447110953e632b114bec82311faa55ff3d6fd8662719e7eb4b8d0fffdffffffefffffffffffffffffffdf7fffffbfffffffffffffffffff07e4000000a0a64f000000000036000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b236af8892d13c5bacc321d3d1945989ebc1314421d23de5a322dad76501eb0b674024a2ca637116234a7e53829c3d8119a726378e9debc55d8884ad3294127f92c0d3ae1ce622cd925a670687539098356c127c5cfae50c837528a1ae6423f8ffffffffffffffffffffffffffffffffffffffbfffffffffefffffffff07e4000000a0a64f00000000001700000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d020000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468a5f55804539553c435ef88091184a25ad34c5bfe952b1a8c0b7b18614cc4ee681010864e73677f8cf2fae4541cadfa4c0d3f778e103ed5a480a1246367db5798c7e3b29dc1c525016bd7642f75ec4dc7f00abee679498610ccf3fa571aa4a928000000000000040000000000000000000000000000000000000000000004e4000000a0a64f000000000009000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050b62b508c665fa3d2ec44e53ac6771b5780a1ba2389ff57e9e6bdc29493fa9619ff9fa438ea2b3e4c2484c939787fde531106642c8024caa808310d3c7a8cc60ef55f04e92f05d4aa5a14ae21cd90a62f23037ca2ac878161fd9a551ca348ad4cffffffffffffffffffffffffffffffffffffffffffffffffffffdfffff07e4000000a0a64f00000000000d000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95aa2b59355af9d1e9c7119226f0aaec11651059d4e3a04c4a2102981dce58bc4097ef3ea383b2746737d256881b3840e50fe55e1410e6f2e48aac534e72e2df6892a035d86a88c2005177d5ee759a2da51fb7fa9a65a4e3ecf303742d011cfd70000000000000000000000000000000000000000000000000000800000004e4000000a0a64f000000000031000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95aa4300a3d7c4c06501d1006f9a69a55b8fc3f9bddd0b122a9b068e1631d9e8872f4cdbc200852c5a64f6f5e01c77c59012639bb319727bae566a8ef876321ef9f09c5d3bad4c5422b53b3a3450ca8a9ce4c0bf24f171144cc4cfed67874a833b000000040000000008000000000000000000000000000000000000000004e4000000a0a64f000000000022000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050962ef72d96cefabb14bf9b11e9212eb6eac9b5eb5e342b6470f8258acee337b03e810900c18f94f8fd66524ccf528bb610f650da4b850048c79a1db8e9553e709b01eab5d09b1a2a22bb036ebacc33b8f7a0fbef3a2eadcbf2e587c8f28dbd97ffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff03e4000000a0a64f000000000014000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050862ec5425b1252c76a15929ed6e6337318170900831ec9697cc3d16e5130694a79480a0a6133ff6ab74c1c1a98a7a91203a6125780c65e2324955942ce0880b3c5af99d1438cbbcf6bc998634792d5000d8a7a906e59fa9bdc836883dd21221cffffffffffffffffffffffffffbffffffffffffffeffffffffffffffff07e4000000a0a64f000000000038000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050afeac07b398936e4b0b682bca6830ded2e1bd5b84cf009f8ff3ea489c90b1381aac623fe0124894eef4717abab3ce7120a7933c3bc1c9ba9abe502cb9b04db7ff4917c039cd5534d957078ccc2bbc5dd3e5a6cc49a137ac036387a7202298a31fff7fffffffffffffffffffffffffffffffffffffffffffffffffbffff07e4000000a0a64f00000000001d000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b4019b0c790a08cef9ae2690a5d76d1918ce5c306634f80912e91a99ad3d04faae42fa629c166036185047b500154c2910a0d33d9bda0183f2d065dd925444d242a5464fa663aba381fff358b11601faa6dbe8d9300add27790c17adf6a44e7f000000000000000000000000000000400004000020000000000000000002e4000000a0a64f000000000014000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95b7561860aeff0548786e7d68742744fc041e8ce49cfb9c2fef49d47dc7a91e386b8ed3280e7db654bb9147574af643f910934b0c74888fe37351517a06a71cbc274954bbf40c5c33a6d82e8969c5b3d63c965f8eda00b55069163962d257d13a000000000000000000000000004000000000000001000000000000000004e4000000a0a64f000000000019000000000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0357d0200000000005ae25d65dac2098a3b72649c16948f6f1e5b3cd100c14d02969a744846525050a61472d1df1491a94ce1abaee1caee39f752013f309a6d29a3229ee4be459e70e980f9edaf41a9e40d2535f0fccd37dc18da2673cc44473476918bd640da871048ddf800408e835c6b88e1d03a1f159df57d9a94e185ec80f2dd774093347956fffffffffffefeffffffffff7fffffffffffffffffffffffffff7fffff03e40000009fa64f00000000001c00000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0ad2d1d07e13ca622798a27b2731ca0da1b42b4089e62e42f163260e24b9818b4d1f6d3bc8a415012749dfd0388078f2902145a97c365b8641d0689736c5bba0eb443117eb14e9d437e798dc06ca5dcab5bf663792fe66289f6a6227493a635ee000000000000000000000000000200000000000000000000000000000004e40000009fa64f00000000002400000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0a78825fa9f9d9ec1c6b5d0d8143fd67374f35f4436698fa787ea6301419b744ffaa72fe5a3ae43e756e3d599d3c5547800b6d1838d0111274dd992f07ddf46cc371dc96cf3c2cbbfeb10b9faaf78d830b9d1d559c02f54e3fb1b1ff2b720559c000000000080000000000000000000000000200000000000000000000004e40000009fa64f00000000000200000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b01444e342bb37a449ea7b8042bd31163f5a8cbdecab2c9be06cdee288b555c192b1274c16f18f6f236ac00d90d737d3151175b1f8b32c4768b254cddbc82998e88abaccf1706779f2d24dee3b2ad7a05dfdeaf03a9e4b794ba04ea4d8d51c7a000000000000000000000000000000000204000000000000000000000004e40000009fa64f00000000003700000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0ac00218c05636e3ac74f47fe83e37462a633dafe30a8acd222dc31b7370572b792cf6e0bd5d4178753ee38ef82ce1a890de18c1b290db6285b4827e381d43afbf35cd041b453d60c933366d54f8ccdeb2ad436892cbc88675c2cb0f607e84cd6000000000000020000000000000000008000000000000000000000000002e40000009fa64f00000000000000000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b15df1b0c7db9d568e39dfaa5ca6cc2e373b5a9310fae735334b7f1257cb37372486e45ca23999fee5f1d6158f8a58b2176ecf0fbfc5d502bfb75ed8b91dd9212f01c09df99593c1872941c4306c1c0972ee7f93730e5b4fa21d4e2b9ddd2304000000000000000000000100000000000000000000000000000000000002e40000009fa64f000000000038000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0a2a92dfe7471d555b792260b90840c5f4d634821831681a8b9130e4a12d7633c9a719d51be13a029f35271b3838cc3c009018bcf00c10320e684deec39c2a100aa08ef13fa6849473918c686ff241d7cfe8cbab655b5e9f640a1cd5c7bd4e492000400000000000000000000000000000000000000000000000000000004e40000009fa64f000000000023000000000000009079269211ccc5ec2425ee0f13f6ef5348fd84c4d2edc41ea4b4f3a2ecb23d10337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0976385c1579867feb28929fd6271daa860638548a72b5cda8ab486c2fa40b9030413860306d91471b1bb9cf31f4d57d107466295d1904418bd0f53fb4ce18d43a7fd5fa87b9378ebaaf448d2a4d6857302abfe9e83df40a141180322ae711e9c000000000000000000000000000800000000000000000000000000000004e40000009fa64f00000000000d00000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b65a077a725f76b5a763f889573455515b7c0dc4bb079a4a86952029882c704d8d29ab2246412c46547ce15e0b581f5e0f130504d711c40f9a74439baf019d2ce37d53f8f9263814d42ae30e8541b1c7afc15afcacf984eeb9a8dba5f60009c4402000000000000800000000000000000000100000000000000000000002e40000009fa64f000000000035000000000000006c5cf67f4818d595c06db93fd7d953dbcab09b01dc9fa6af8500f29c0b072b95337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd095368892968815215f0923f29b2d56f65783693b682145554a877fa51594603e1b832f7402843aa1fca921860aee73831993d970bf64402673ad1a15440ae953adb4002395d63095e8e39d413a64380ec7d191b149daa69b44394120200fc431000000200000000000000000000000000000000000000000000000000004e40000009fa64f00000000000500000000000000ba6dfce86e1ed5ac4afc1651c66497f4e31b5f471090232f00ba7d3a761ea468337d0200000000003b8a1ffd36f06dc7f79f2ee8530899210d04fccd513d987a17d8f29c7385d039347d0200000000004be95d8c41e94645879b69b38898d7125cb21d5ce0b1e428ac9dfd3b7fcffbd0b25d443a8c0074a028397d8e7117a130f229bdc16902d29e0b79147c51dc74e2762796bcb2010a803e5eb62d23cc6f720365735f23ff1e0c4b5959a9150991b0c1f5efe19d85ac41d14098a4417d5a0561ce13842b5566066941cbbc7b9c7250000000000000000000000000000000000000000200000000000000000002bf8b0da0e13574fe3f57498203f86a34b0ade70bcf13856c6975e86b416b7880dafea492d9c6733ae3d56b7ed1adb60692c98bc549d61fcaee7a2c6d9d0c3f3e58cb578c6ae97a08fe59a62a4b7c32688c753faa204cdcf91b8f6c0413e49094d9bda7351e8b20768fe5dc29a17bb60cdd966258ba384f4ffde04d7425e86eb8dd14b39ac9f6631005c4277b5399f3080f851317cdef5ce2cf73f0283395a71b537945156a2846a45b2d9716369b8c8d40742fa92a626cd9a21a746d48a524eb213852eff7c97e22d440caeda621adb507dffef7aacfb734f2b9c9fad5b58d3e92648faf2915a955b5acbc62a3b4c1f85feb9f2e7620ee65f7346259364db7592d98ba62909f39a6f1ab60d9d10de84e23c3701c76275cf3c9316656cb0449c6aa99c1bc240be3542d3d47fdf3e85039e311409d9349dcea46f38b2047ec7cff119ad2f33575db8a7d6c93193b9eb6eef26326eb29fdf90311c8f9652f2c4d7b6c96d774a888eccd1c0a1abf8b99e83535588cede719b68c59b9501ee8952f779ce282ba52406984e13d246115f4278484520e9108f7f4000000000080c3c90100000000cd82c90100000000e3ff816300000000fc010000220387ae02000000000000000000000000000000000000000000000000000000a9d8a06f036c9d02cf8d1ccd7a6d2e3672c74b400122980bde94b4f5874821e41b020000496c6c756d696e61746520446d6f63726174697a65204473747269627574650c0400004b06000089080000c70a0000e60c0000260f000066110000a4130000e415000022180000611a0000961c0000d41e00000921000049230000b9230000f7250000362800006b2a0000a02c0000d52e00000a3100003f33000074350000a9370000de3900001b3c00005a3e00009a400000d8420000164500005647000094490000d24b0000124e0000495000006952000087540000ee57000085590000815c0000c05e0000f56000003363000071650000b1670000e4680000036b0000216d0000576f00005571000075730000b5750000d377000045780000647a0000b07b0000217c0000207e0000578000006c82000098850000b8870000cf880000848a0000f68a0000a18b0000e08d00001f900000d5900000f3920000109500004e970000869a0000bc9c0000689d00009f9f0000dea100001ba4000058a6000096a8000005a9000043ab000081ad0000beaf0000fbb1000038b4000075b60000b4b80000f1ba000064bb0000a2bd00009fbf00001dc200001ac4000058c6000095c80000b2ca0000eecc00002dcf00004ad1000088d30000fcd3000071d40000b0d60000edd800002adb000067dd000064df0000a1e10000dfe300001ee600005be80000cfe800000ceb00004bed0000c8ef000006f2000045f4000082f60000c1f800003ffb00007efd0000fcff00003b0201005a04010097060100b4080100d20a0100100d01008e0f0100cb110100081401004716010084180100c11a0100bf1c0100fe1e01003b21010078230100952501009427010007280100452a0100842c0100c12e01003f3101007d330100ba35010037380100343a0100713c0100af3e0100ec4001000b430100484501008647010083490100f6490100334c0100a64c0100a34e0100e05001001e5301005b5501007a57010097590100965b0100d35d0100f05f01002d6201006c640100aa660100e7680100056b0100436d0100626f010080710100bf730100fc75010039780100b67a0100f37c0100327f01006f8101006c830100aa850100e7870100048a0100b88a0100f58c0100348f010071910100b0930100ef9501002e9801006b9a0100a89c0100e79e010004a1010077a10100f7a3010034a6010031a801006eaa01008bac0100caae010007b1010044b3010061b501009eb70100dcb9010019bc010056be010073c00100b0c20100eec401002bc70100c0c701003dca01007acc010099ce010016d1010054d3010091d501008fd701008cd9010001da010040dc01007dde0100bbe001002ee101006ce3010069e50100a8e7010045e9010083eb0100c1ed0100deef010051f001008ef2010001f3010040f501007ef70100bbf90100f9fb010037fe0100b4000200f2020200300502006d0702006a090200a90b0200e60d02004310020059110200ce11020081120200f612020002f9023b0181c78545d964b8008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7ada863bdd3e62fa72dd5ddf8ee40baa53bce4a43bd7505061dc979879ccce079c9a790faa3e44001937b64c4884560a28b4b46d1881b661a0fdc94c23bc00d8650e243a3c7b0648d96d7a658e388b6563e75d6dfddd7d50464a94ca8a4386a2e89ffe0713dea32d760fb4a5b5a7a168d815ab1f7bdb96228dc91cbf03501d08f64ad079f9b914d3b18d1ccbf9d36bc01b0aa22b1fc63b73832d5c38bba2acd65549830ec99dcc2b6df63619d785251c172ebed1665f42fef02ebf9f4a7b13d926f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a005b8fdeb0a45bac5ed0e97479bf31a2f65f32f00be64873f1ad81334935322efa0532d99fb665e41ee33174166ff4eb014a07b644b4ebbd019a13acfe885aee77802f9023a011e85430e2340008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfbe7927bf19ef7ecc2ace97306ed1df2cdf384af21e6f40b698ebed41fbe510ee0ff1fd72a9762056337353d4bbd942552debc9c8521657a3376741400909106ec6f6441183ab8c4e16606cf71724f5d7f5c71ba2ea062970a049baff8062e4917dee97fd71544b579d0e99e75a8b69a821f0c85f31f1fe9f53b917a39204b4029ad17b746a0b4b16be231b3a092e26643753bab08a40a56f9604f670ca9b3bffbc12253fa56745c0a5f7e73beaf53bf238359d2c52dc51d299cec72f9d40a9526f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a02d1c91069624054ea7df697cbfc8d14913db3461b04e8e9c3e41de233e48a7bca06f4cdc5b2b7d99c2e92df679efe3742640ebab7b8dc49824678061861b7fc84c02f9023a010785363fe1da0085363fe1da008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6ff1573e21ad3467bd1f27362f68e6422babd4a590b42701b18b11d620cce84bc562eb0ed149621683b98fbf43b7acddfaa6ccfb08561f0d87366ee9deff2db080a6ffb522c66617d386c26196f40502fa1bf8ce24610ac8782984830c7ebdabaa88ab3d24f5b359e6a658d76c9d657e35b81cf9449c5c8991555d169b106a23c53f3986960c7f7938ec0bf7de012fc0420cb69a2eb1f6c17481638874e58b1bfbc12253fa56745c0a5f7e73beaf53bf238359d2c52dc51d299cec72f9d40a9526f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e06c4509494b26d3a160a8b7a06d42b78c72b883594ff3c58a8c6a778f265eb0a046f86be246cf8621815dd11e5f7efb828cace32f52b3cbadb6951517edac704002f9021b0181e68533b03b2c008533b03b2c008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a2aca32f0103edecc196249ac8af079c8d169c2fc57e414302e045bf7fb0e8cc665370e3a2f2ccd5f3a0f3997e69b11f83c8478e55cb1c8d3f95c45a3d637ffa19d0265eb06769abbd208d33de7824b7cdfa8bcb79f5177a48c89ade65675ecee4c4ba7919a4b80aa96144769154f17280574a628b6dab84092ca0dd4bef852cdc228998f83c3b0943263f8ae8c204a222eadf53e2e3e2cedbce275343bca06ada448110f2091d7638e548db2fb79d2a7a3856581d873bbacda0c0517f9390bb1edbf73ba52d75dafc0dba73303b8cc428ca1329021edc3675720c12464219f17ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a09ee5c64a0d41c1074cac3b9451858fa1624a14b4d45e4f94ff008430096a7493a060e9e22a701464be9c76bb6e5a9f9bc9cd103f1173bd36d4f85e600995216d0102f9023c0182047b8530e4f9b40085975704e4008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000baedbbb5e3e1ec3668e12f7298be3488aa603c69fd0b3aa9d4d4263983456327378d63743735425a0732c41a76734bd22d154be4f6bc1d917ea4ba5eff83d690c12f65eecf6cab5396bd75fa085e4d89a90fdfba24dff38753897d97bb79b795ac0c7dc6e84432959d8e88803edc5529acc63827aa479a7b01237ae1fc8084425f64ad079f9b914d3b18d1ccbf9d36bc01b0aa22b1fc63b73832d5c38bba2acd65549830ec99dcc2b6df63619d785251c172ebed1665f42fef02ebf9f4a7b13d926f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a5a1d6a860d997bfde9ed4cd3df6d76b9846556c7d6e3dfe6be1b017bcd5c69aa065bab9e06536a004795f263e64a50c4d4045f9ce723a8e99729baf88148f977d02f9023c0182028c852ecc889a00853a70c40e008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b97bd938fab694f8b4e7171c8cb159d7188e6df42a3ead0434d486c8baedafb81bf2329259b92531d207a1e635195497274af3a3fe412492b6b6a875155ca87429b126a2500b457e371942565bac84f20ec3930bb5f39892c66eb7dbe6b72ca1170cf70f58796ea5b9a880640d898874fdad0dadb6402f8086ed3c671fcef825aa24241628467a8526d652b04a046db8e7a86bb28fcfe2b13054ecf29a2cf302f4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0e75fc55033bea663e4393052bfee398612fe9ae4c3d5a7ea462964b098616e71a0178610324407069afa0840b6133516423bb7fbeee9f663b7703e0e54b33e7de702f9023a0124852e90edd000852e90edd0008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5e444f6781da644a6170beb65b6cbe1e0cf95d25dbdb7b9b09d13933e383977604b5ece411789638b9b6f00604c2b89c3814d2e8cd5a79f36ac57f3bbc45bc2b1b89aa1737388b6f6f2be9a8a2ef9a59f919ffb39681ac95d9723fbf343e463e386a828a1c3c46306e25eb68b1e9af5159e9d9a98a1ecceaa9782b0247d4ed5ca9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05c59bf2ddefe2fe992df40782c9f10d884c2539be8225f48406b3549c083f384a03d4bd20db6f4f64d86eda7aaa386d40b970db4e06da331352582ce766a17380302f9023c01820202852bc5ac5800854d8858c2008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc45abc0b4e641ed0fb2798970e3ed8674642538adf5faee6f1f522761974cc278f3c6e8f6f1cd8cb0c13b67c961ba501b3ecc6fe6206ea1ddfa13581f7543650fb68cd63979a654ff6ac4eb4e711b5a56d6174888279c1c76ea66a60fd47e6ea56a4522b0b271ed881d57ecff1485715e33b013c664476eea266dacfc35aa5b976ae7090546b9b900712031e17f61e88b2e890601fca5cf23e4f2cca9a8bff62a4a8f898ead64765bb8edb3ec5b20f1b11b97dda9335cffd26f8bdcb63b46bb50a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d62caa5ab1919e633b9db7885b52bda32c0359f81669f24895087fcae7ec2119a05a77188895c5194db8354fd06d0f759912cf991985920bd43a4456eafdb3a23102f9023a0122851ca35f0e00851ca35f0e0083061a8094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb241325ef06772e471b8abfe5a46e7cd632b6a0a7c33971b181d33c7293a51b4db89038ed2e4be4ff0a7bd5b26a8d6b9442e2f0cea03340a59ab725fda6a0002887ff3b26b70081e49de2b25e88b46087ecc29920eca9d892993071629981a113c0305a9a15f0a9def183e235512e7809d095ba5b9ba9f206885ca77a34e9a139c145f1a961634e373c2ac40dd183321dd17dbcb7435a0f7ba5c37f58120731c368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0231c36930ea393e43efab0005a68e6d2120f73d9803aa18aa0dc33d058ea9362a04e6cfa85c0e82b61582871e01f7723c323dcff7e9b5a1f746636350ad7604cac02f9023b0181c0851a13b86000851a13b860008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0fd6e7377f8b3df6becf6ca02309488dbb329a570e5bbcf4f1e226588d2bb0f4cc9fe9f96910c267cc1ecdc02a2964570c66ff0eb25ae87f31a45dfc2760b04189a501e10f41998613944814f1240003f513ac41249daf812dc19c5726bc637d3725ffdc3de47ceefe163f13df54cfa7b398c9171b53598ebf0596009bfb0cfceed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a04dc20e678667e8ae41df71ad27e7528f2b9efe802b95c2719c1777d60f12b4d4a0738fd12f4f484a1deb7e4b3a44f58563ae7b2d38fcd04022993f7e02e302b45af902326e85178411b2008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc8150a14b21d624f4923bf8170388b57e122db7fa8cac145381cb3f7a5705a543f428acb1ea72ec37418e32016759e0a2c877a4df6369ed9cf096f55e064b0ccb8ea5a39b4b2625778970f411c384de0c2a9c2f7a9d7b829b2823bb140cc0d723ce6d75bdc1a4523d71af2fcf4f4fd5247cf3f5db3bee2b52e4852739aaf94c80c7c4e431d837e63c6d425b93e9d17e49ec9524d5772718c2440a49047d8b5a959534ee891dc7b31c689f26da2d42c9d5169363891bad63efa35390a39433d4a1e43257fca161d36bc6af6f7c08e0a55f2644a631163b9c16f0d890de7f223cb367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0e703e54c50639e6873e66d6754370d943e0ea05c4c44ae9dee929b4ad2f48bdea033d3c22f2706d776c0266a0b6775cc70301bd3f37ab948516838bb58a6e625d202f9023a015385174876e80085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b70e7ce9f0e228f6dd69284870852c38805c822f3be3fbb741fc3c28b04b594e28e36ca6f30237257d8f944ff0b0afa7202334f57cf154c0bbb126176623a47042669c73cc0792fa6ad5e7778485c9b746c7a62c21a018425e02ffe9f75c017b2af135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0b91a9496db45457f1086dcde624ca1dc1feab1184df31c8e8514563abae80e2aa055737b76836f5f5ae81acc67d029373e87e9efc8b5f15054e9339dcd51fe320ff902327285174876e80083084e4894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7408df52cd9413b226445b90f49ccf05016c5571025d3d4cafc32dbe1bfdaf2b3e5847e739d3da6a6ffc7c373ed672b312d1222dff9221ff99a8fca51045ad04cde5d7cf8d0f97a545193629fff084cff06a29796df3366067e7f587a5d88920731f92acec4e3eaf71375d589208e38f700b752a8295ff4a6c47f6a8120d0f0ed57d1c816b23d9e33e8a635ab9df8a95f1c394a9e44b4dad0095db5096d1639b2ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a07e1ef14a9f56969ed818b8f80a5fa9cc18f9ac1a6a80d0682f7b2bf268baca18a04c9d85f30a2f59740a3640df0d9536190469c3f06fdeaff81be18d044162f21a02f9023c0182014485174876e80085174876e8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bce03ecb0c99e7cf1997e620edc307ccd9a523c9d02ae27107d6e6c63a89b21bc08e85c5f4a1f99f05a6cedbcd0e52acf2e55cffe432c02200d2c26b6bccec1cee52180099a30a501cfe898da153068e42ea4c76d92c1cbee8dfa699c20f1a6db0db86768464f964263b4d04fdcb22dc7fa92617721a737a16f279f245402f172ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03f7a48121bf117170e1993a4c64d308cb099d7196b1d3783f5f7844b4cc052e9a055e9f9fbe0d434d1a9ed64064cf1e742dbd40f061f890c10a5b3fd5dbdbd987bf86e82048485174876e8008252089456d8c99fd3ef0405a02f95191573778e10420b158872d03b8962fa1025801ba082cfbc2893da534174e4e4716c1b495a7a1d327415deef7f6c53dca1c7a57cc0a03113b13ad036147f3ebc2fb499b60a2c35c3c2d6074f93170344925c3bcb84bb02f9023a011785174876e80085174876e8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b442a8423291fb8880d8266aab50d0a5fbd31d2b1aa3be4e965dc92c1e7bd2126945fe5c7fd722f596b09dde8367bba29f9956716e0d6a0179f918051a09319b7fc84c1e044f04daf8758a708abda0cebffaa9cef1a4ffd990a9db30e8bfde31e0e3f9ff8fe75329deb87f104175beb3ed4b66bc012c401d52bb97b16679f9872b5519ca5ce8fdb54347e86127447cd1be7aed6e72f53e763ea703a78c9fa1df6ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a09f6406bce0ff816f3734d86c08fac482176a9830f931a913a2f5b88d50f4bc47a0680824be611207d186fa280dca9437b5e7fc45c14f3671db7e23b32ac4c0268602f9023b0181e585174876e80085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1be40e85049ce6eeaa87dc62cb979a76d483e08b2b800bdec008f244f7757b32bb9ba9978239582f12105fe667e8dc777e2ebb48f6bf93fe7dca76e8dd3a55e167e03b27d10aa470988c22cd968e1bd4a9fcad75afb7cc48d589be0949b2b3b7116a56e0a9b1719b7de2653bcde0fa2f2b9a29368b85d3c8a4cb76b1f067cc2ae638493b504c4955b832bc4cd7aa2f05208f6a8480eddb8dad4d67b6bced37a8ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07311513ab68655f76bf4e47db59c6acadae2b891e0dff05ddaf38c5ff6181412a04284da41cce0b7a93deff5729f8cb63d6117067b21a65bae853213deb301a811f902323185174876e80083084ef894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be6de229f32267f5040e54c266fc3eaa65b70e7bef1358147ec1c4d39b0a3150b4d801216662b5412357c2b6dcf8132de69ba5a1390db4432d91010d508980f1b3faace2870383cc411a32d81d273b70b1234741e5d34ccb587aa76a3f5ca0996be4d8eb489952ada4af205161cdc6be7994f2a8d5b598428e55f356485482cdbde7773b4b8f3d83ccef36bf1845e47781d828cd6d607e5b5b290c0e0947c4644eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a05024dcab343e5385d02994c4f869f27962b5516d068da17c1ceeac7216884cbda02594c6bef248ea3a5f63890c52c5bb52911bae6f31d4996fd9fba1983ff6509cf9023221851176592e008302957894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be3e84dbdf82bd1725462380067ae4b4a5b1e2a4da937f5e0be85d39e6ce3ceaaa3b785082f1158d9ff4cd75b69aa8596052dc62f1ff25a11c69d90120f5499820f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0bb8d2dda4f0e3be952a1e0e5a0f618ff4e28c18b7bc51f78cbb28f859fdd7d81a03ed0601e3df1a63af7809a6dcee18ff48545fdc9ebad0e7a59632885b33e84eaf902321e851176592e008302957b94998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1e91b3db5a2d320e40e7c1ae9babf238a71f67c4045e0f054b0f7316b862524158f35eb988ee5dd493f271bba36795a7f949f378449e339e8041b73b2b09b9bc356173b6a8f7b32c0bb689ecbddbaf35f49219267426a92f825b963f578624cb8a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a08443fdec0a50c7d45503c183e70e5d9c03f570678ccaa484661f75b9af47a998a026dad5e34a3d0178dd343ed866e0851772c122d3453d88dc925854ff94e99ac5f9023225851176592e008302959394998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b816d79c386a9b7094d75866d7e30603afdc2e56d9fa01c9c51fb93e25ffac99f3edba76b7e8d78e371a8e11c61dd0e1f2d4a13ce175af5fb334ffa2e07dbfef00f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a08dcf3cbd4002a90fa556942d45cbd34cb3db8d8c1a820e5cfb4427b64500aee4a033008d28e8ddea6b033423497901559447f15ace9194dde2dd01fa679726ae9ff9023223851176592e008302956f94998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bda7fb60b2dc781069eb2266115f758e8f3738858d63fbbb321c964ac10795b0c58f35eb988ee5dd493f271bba36795a7f949f378449e339e8041b73b2b09b9bc356173b6a8f7b32c0bb689ecbddbaf35f49219267426a92f825b963f578624cb8a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a01a3a5cc3852a047a4bafb64f8a668623a3dae3ef358747ce2acabf6c53a20bf7a0649bfc0fe6dc1863c050380b8950a9e3bd16f6d96cdbd6c509d9fcfe52626caff9023237851176592e008302956894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b09c68584b63fe0c2b09973e9318570e835f4251485cd35275c950e3f6126cb382fb47cfa56a91a5902b356788509ef27402a02c808bf819fd5e330e7dbdf0dcb18a22af3358533beb27e666daa1e23ad2f463991e85100e2e5a9cf83c1f4092c001eec81d4e5eb47f135bba800c40b6097f54d508e5bee8ee40902f5214c2f9d4d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0441414faee5f59d61df4a8d41d79ad80eef81c2f8431a24c87b9bac17fc0b6e1a06efec9286389c2f08b81fa3bc96d13df4aad4a63472d9db6e312024c9461cc7cf9023227851176592e008302956c94998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfb04bc90f99e584494713e04d885770e7cacef7fd3000299f67d5eb7b31223d4a3b785082f1158d9ff4cd75b69aa8596052dc62f1ff25a11c69d90120f5499820f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a03edf1ec5515d24cd6ae48fb7cf7bf71bb8471155f3d1104792c37b05e6edd8aca009013b9615e9fb3fce68811d58ff915d6cbecb8e1516b74742c4051c252c1847f9023228851176592e008302958794998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb9a8676205e95ae90a5724b2caabc4efd961ddc62e3487920c14c9411d61b2283edba76b7e8d78e371a8e11c61dd0e1f2d4a13ce175af5fb334ffa2e07dbfef00f30eefe6fed58cf9ccfac0a88d7496af93edf3ba56aa775cafd5c5b961e58e18a5eada59b99aa155ddd1664fcb4bd275afe83d92a5d278298b81c9e7bf5979d361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a0522d309cae353a7be299d363c1266eaf01c0af8fccea6bc077df8c0290e35f26a02f9b656d300083aee207fa4fe5a106e6ec8a9aee4461384b457b394380d335f002f90239017f850df84758008512a05f20008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b731757965ed46fc36d68054a97c619a03f0a00720cc10a03dc3c52a38b23330ee48d2187ba0d7673db0b3ae258af1544bc57799f53c7e00d3d4307deb0f28b599012c5df556034a8971588cb55eed2a1ee7a2f7e37e6692714f6d1e69b393893666dce4fcf2dce3d119683aadeb1ea17923ba5b074391c1491f124cadfe4b30ca443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc0019fc9728b1c20ba7feebe866fe46d8cf1a57395dee82124f47857c4a9c11ef0f0a04d5f1dad7f137b2e53a75e79534ca65159687e9d656b697b9e11137a8982238802f9023b018196850df84758008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7bcb053dc9008f8eddc1e917251784f38889b1906ad94f22329bc4d8f823f76ae942adee59f8324d03ee7151ca9f97b30e8035c503f7b1c343e5c60cf121a7d3b74ffd93a9b87839b9f21bba96a3420c2c0b969d223e76c6945b874ed152f4f7001eec81d4e5eb47f135bba800c40b6097f54d508e5bee8ee40902f5214c2f9d4d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a04b8bf40783f7a6b0fe88ad16ae1fb5d9cbce6bcb18d9c83757111601e2380e54a048a3a37188500b99394211f56f9462b6f8fa0f275fc3b1709a21ebe972cfbde602f9023c018201b6850ba43b740085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b264544abc566124db9e88c858ea8a166518e8ec26a482178cb4d485215c75a8f9bd0fb10f44d92b01a0f120d3d43c06cadf844c9b3cfc3f76054bd1363bb7b921a5188d028e80691e16958566ce420fa9e4acd11bab6b0c075dce32253f03ddbff0586c654c72f961025bfaa62fef509077af2d646ccb51f70f8d002a6f80bc74f248a910747a8e9eb820a3e41030a74a5c855ecf46f86dc3c7a59e806e65db57195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a032239dd7ae7d672dbee9ef4591f5d2a083ae4cc1baa2aa980deb514884df7a81a06055b133c2a7e3b70e0c8ca8e4e2149137e3929e57f1f6a635dd6a82343cfbd602f9023a0116850ba43b74008545d964b8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b80e84cbfc5c079943ee19b564c7cb1c0904212a33adced3bf09f5ecbfdbc0c5d28528082db6586b8e30032025ff7d517fe8b486b905a158faf32a3886b3ca7cd296055fc571146d9ddf3c739821c98b71536584de28b5c9fefff32e8937edb6cd2f8e9cb25a0c039f4213639428ec514dccfd49c1ff6caca559f9af4f948e89ee04a0a4e50daa4141cbfb0658f625b72ddfbc600881b4257e454b0cdbfcd45a402dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a01c795ee7dd575cf201c7ca3e32b9cff09248dc257aa168a1368900ed82e02ecfa02e50bb03de1a07da9abc191a6f0cf8c8f0174ee0a8a3773c173c39ef1b678d5a02f9023a0154850ba43b74008512a05f20008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6b8be841ea377404c041938ad8fb2d801de46ed30c4247027093780e68b8701bcc9fe9f96910c267cc1ecdc02a2964570c66ff0eb25ae87f31a45dfc2760b04189a501e10f41998613944814f1240003f513ac41249daf812dc19c5726bc637d3725ffdc3de47ceefe163f13df54cfa7b398c9171b53598ebf0596009bfb0cfceed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a04c7d8db89c5422dc65adb097c8f5ab6c011f82d28987543d562543edfd945b42a00503fcb3cbf24d27f8794a7c8401c1eaedbb04205db278e76d0f120312bfa3d402f9023c0182026e850ba43b7400850df84758008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd62826cdb86f5058750f8d583c145dbfd97729b6e142350b41589ba5ce9e7dd95d3e9b05910872a0b4153757a71464074df8cc0e2e758d8a1907dbec49477a13b2f49b7711b17e3585f9a0c620248969cc357d908a08801d1a1b217dc02c7d62d25255a0452b6ed48bec4cc84769d72a360366c827346026346457ab537629ecc082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d78ec7fc21f54daf83cac0ee10369958e6e7e9b2c5e95616409bdc7d759ead0fa001585b308d574104aa68976981e34b0a1bbe43003b6c54a82f166dd1aab4122e02f9023a012f8509502f900085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8176349314eea35c3bfbb03e9ef01ecc9713f46cd379a745dc747218d6a053f5926fe3503555945ef5d6e47e55b7b2a636ae7694d84611b4ab80c22fe3cc7b753e47e067aa2ac79bbc2890e81edb81b943b1e7594f3161a7576757af6b5454e25c21c7bf72845ec58b465183e9bc1d605c870975b3347b8d75184d1ef2ce99053bb3c4fe085120402b6902790224fd459e47fa185d821e298e45366306a5b3bc4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0bbc723489e542abd9206adcb0ff6b6b9efe3f10fc7b118600d07b3220781934ea0117ab64a01a74bd53e6bb86989bbb6f945b71b1edaf93159cd3a3c866a59e08702f9023a0132850ba43b7400850ba43b74008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1871e752854c0a22563c3a15ef68225d2b5290fd0bc4fd2947953a819bb357325e0fcc51c50d3377baa26bd217d5a64409351d16f2a4da5684ec1b0293466ebd64da476bb44d716ad470b26b162a0e8bd5712c18b4252332643b04aeaecf01b95fdf04e0e639d8cd931bced7b63973c735f3660262ab7b674b3670c146bafc32a9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d9eaa4b3e05116b039bc7987e3fc8446a7f95f9abc74cfe1a945dd16abba7ee4a040e73630cbeadc2da1198c67277588b0992b8bbf85e95f53bd469cf0fdec59c302f9023c018201448507aef40a008519d81d96008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b52814b7ca8bcbaa05eb480332276777b395e28aaac9d712fef9aea9df0667fd27e0d1034c1eaae3eecda57a5551daccbda1f253b5430e896289f29620cd2a047ac5945151e9f5337e7353af3325bba2817681b87786e085a549abcd405c8412770ac02216ffa06b83b127b6c3cc19ac4e4e79e6584305fd3b1a3c966de678a1db5519ca5ce8fdb54347e86127447cd1be7aed6e72f53e763ea703a78c9fa1df6ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a054a17f03bb5cbbb641f678f0057881014147c73a837768b7ede3a125532bdf1da0236c667979c3e131a6ac9cf99218bb668a212f0e1587e4f3f1bb2c422059faa9f90234820255850a3e9ab80083084e2094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4a07b4959191a1d9b9f1b9d7b2d81f27ac5d0bbf295a0fa6e711ade9e888d169ab0c85f7941c383d79bc5fa6e0d23df85a39240727552803d176690519414b2bafe9d4cf2cc3ba077075f652873df1968adaedf5fe80d9786f0413fa516854f370cf70f58796ea5b9a880640d898874fdad0dadb6402f8086ed3c671fcef825aa24241628467a8526d652b04a046db8e7a86bb28fcfe2b13054ecf29a2cf302f4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a00b495ab6333f98f467599b047e4448fb952fdfa1d1044d7ac66b97a0d5332c2ea050054dfbe471cd95278b0d4cf9c7afdcb9be216ed79413df83907cae64b8e4f302f9021c0182061e8507558bdb008513580673048308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a42f26e2c7f40cfcd6d1d3e0cab9b9bbf98a5d4e47cb114110b770c3c854f59e4f687315e5f218f1b48986a3e80f5b10b86079ef914d0673c9f98f19fe4c206898951400eaf551dda3ba916dccba7742f8634a39335b7db03a5c8988508c33c6ca4b09b3f6f27ceb5ccd8b90b73ce2ef6199907132ee96c2e518ff9a3f14ff0e4e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a009dd9e55f0c99d34b5fe21297f7dc6b02a5629aebda2314c8bb9624942b09cf8a054c8a8af6878eb36605944cb50145c9c1009ee19ba27b01432768098845094c802f9021a017a8506fc23ac00850ba43b74008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000aa6939c52c86a280bd6554c4bdd9c01018a686b2338ea6c69650e86ecd39711e068295d691f18dd00307230424c0ce98759eee2b172613fb27b76a1061752c4ece8e63c8a5b994d2a2f50bace168e2305472e12c8d87fbac40a913f00a235b4825d88d7fd2b74ccea50449ad3d5dd2baa127ad9c2a856eb50e33387d689fc2d4978f72220d7b7561b7edac075fc4b95c418f9cbba0c5cbfb7332333436cd3a6866c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0f408fca6e722261ccb898055570cfe208079371d88973a6673f6f7912d2081afa052286c2908e634d2c2ccda2a3bc3e0e174a373a80f107a657c57ecfb20edb88902f90363018278b0808502ae870323830f42409400000000500e2fece27a7600435d0c48d64e0c00852331b855609b98a469d741ffe634154cd2f94dff4b8be907940340a4267f000000f902d7f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0245d32d2da911ebe35956892a50b3686a5bbeb9c3bc6e8bd766cbdeada720e9ea072f864fb980cc162d5448982ebea90aa29973299e5f61bebdc7eff18a3287e68f8dd94a469d741ffe634154cd2f94dff4b8be907940340f8c6a0000000000000000000000000000000000000000000000000000000000000000aa0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009f9018394ed40834a13129509a89be39a9be9c0e96a0ddd71f9016ba02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a8b25aa022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca7128ba022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca712b3a03df697e29dcbc9356a8d5ef9669e344918fc2193fda97fb5e7316bd981ab393aa02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a861dba02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a8b259a00000000000000000000000000000000000000000000000000000000000000000a0124e578617cded055fba15fa5032dc1dbf226beaa65fec9860c9705f4b2b1ecca022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca712b4a0000000000000000000000000000000000000000000000000000000000000000ba00000000000000000000000000000000000000000000000000000000000000006d69403e2b9a4a88c27c996bae7a2f1ff62faec3ce795c001a0f8be51833e401f9dabf20a4270e652c50a02c52d7a615ea86ef7ada47cb43225a025f2cdbfae4d0671f2f29fea5adf361f6778582980d4c4c95de603bca0e546c302f9019301258506c088e2008506c088e2008304b7ab9425553828f22bdd19a20e4f12f052903cb474a33580b9012438ed173900000000000000000000000000000000000000000000000000000000b2d05e0000000000000000000000000000000000000000000000000981cb2bea70c71c8e00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000fb088f3ce393b4e1cd98a1a0c9aef18bb0a5cf4100000000000000000000000000000000000000000000000000000000638206af0000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2000000000000000000000000ed40834a13129509a89be39a9be9c0e96a0ddd71c001a0baf3a0cb192f158f8962e2acceeda750edeb4f51f8d5649fdcdfe7077e4c4f94a04859ba8de92e6216a2c5651bdf7099fbe7475ed9d39860d0eaf2083d10c30eea02f902f8018278b185141f29ef378516cdb0f25a83030c589400000000500e2fece27a7600435d0c48d64e0c008525c5500000af9da469d741ffe634154cd2f94dff4b8be907940340ed40834a13129509a89be39a9be9c0e96a0ddd71a4267e000000f90253d69403e2b9a4a88c27c996bae7a2f1ff62faec3ce795c0f89b94a469d741ffe634154cd2f94dff4b8be907940340f884a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000008a00000000000000000000000000000000000000000000000000000000000000006a00000000000000000000000000000000000000000000000000000000000000007f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a0245d32d2da911ebe35956892a50b3686a5bbeb9c3bc6e8bd766cbdeada720e9ea072f864fb980cc162d5448982ebea90aa29973299e5f61bebdc7eff18a3287e68f9014194ed40834a13129509a89be39a9be9c0e96a0ddd71f90129a0000000000000000000000000000000000000000000000000000000000000000ba00000000000000000000000000000000000000000000000000000000000000006a022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca7128ba022ff43878c220263a2daa80473e974df3291a72e1d33f4cf35c3c71c3ca712b4a03df697e29dcbc9356a8d5ef9669e344918fc2193fda97fb5e7316bd981ab393aa02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a8b25aa0124e578617cded055fba15fa5032dc1dbf226beaa65fec9860c9705f4b2b1ecca00000000000000000000000000000000000000000000000000000000000000000a02ab79181f575ccb084db8099a1242a3810b6ef62d770127264e3fa8299a861db01a0788ddd7a8f3630b9d657366222942980cbed3178b411ab43b42ba2874486c9a7a078de7befe356d9cec73e10e645e3f8c121ff74588d56789b732317d1eb006bca02f9023b01819a8505d21dba00850ba43b74008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bdb089c4a656f5e2cc441099febcbdaa0adbf04c1791cea41884f251c26adb64a4285cc45db4703ef6943852b9b73a249def3d0bf34824ea9f06b6340bf7aaa23d9a756c2f06b203e5ad8a1892b512b5b9bc840f76bf41177cad761a965b188f9eebc50061c39d54d33c09952f6cee90bc1270e81539ca4fd7d58f3dc006d547b72b23902eff9f9f3eff1f8031299f27d86f44118fa4a7341e7549c672dd27d5870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07691df199e0dbfc09370bd5d82e8241703def1f94b2203bb6139b1fa568d7942a03a1bd708e1912d1840234db943ab293787d70472241f8d25cffe83ce1487aa79f902322e850861c4680083084fc094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7b3ec7d8dbf6360e35253d0a2ab71b23d616fff30d1e13eee340eff21aa6b55c6acb89d205f74564d979747596f4f7bcc2a43ab54eb107cc5df90591644fa4f26f1b1c964c50f29a2310a3864059850ae92f1344be7b4f6d7c62e882a29d822e6d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a0a59c7fb968ce3b9daf3dc5e0603c1072f2119727996d133ed83781bd52cc0d30a042c644a19ca2d62d98d9255c8e631b5b2963343c4d8b34c8785c809ba46974e902f9023a01758504a817c800850826299e008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b7855d214a101f80ee54d7056597b37e2b014a03debda3886f4698d394f3552c3bc2ba24e3723731d7db0cf4ce9667cf68d10940be9af37c798d98b96cc861cac54927259b6daad949ba933e3899d4752e9e6566e49b1e59e606ec64ef07f5d115c65052bff0e03c51fb48f6717821b42be97e6c2633cb2c1ae2597f7c5386db89a2b74895c93e64a7dae5947f6115b4caeda7b2c7bc103692f628e1fd1986b3d6efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a08b68eeb9cc88d3397c5effa1da10b89de247e470b58d3aa5d47bd40ddbfd683ca02ada6bcced6fa0de8445a4cd8c79e1ebe094179656abeabdd6ccf27482752a9002f9023a01518504a817c8008509502f90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000baef8297e0d30d40d87353484af0c205d1fc9f09cfe216985fbbeb22750cd5575a427e76751a3c54bb1abc4f31f63e5f3d98367d17e683e6ad61e879bf793209f8aba446591ae08855364c9d460ceafdd8d340fe95f8a6ff333be53b1201272cbbe4d8eb489952ada4af205161cdc6be7994f2a8d5b598428e55f356485482cdbde7773b4b8f3d83ccef36bf1845e47781d828cd6d607e5b5b290c0e0947c4644eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e597f2507eb32d615709a8096729f8e93d76f3b2e282b024665ac3c8849aef6ea022a873597a912acb0dc4c3c1f4525210c2d7f9fcdc6c788e5e1a2d9e505e5e8002f9023c0182025b8504a817c8008545d964b8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b50bea470a810b9a44e8edd5e07855a9e7bb32f001eba392b9d97afc8908a145366e2de2f555044ab55217e36030826d5fec0bd4f57f4d2546db7d1c06aaa5aaa4e958362f8f11d2af8a2e7ab4e350bfb1cc304d930767af5e1f72a64d8d709887b8e382938307571430d6f237192da325989241fa10faa873d51224408ad85cf3888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07d73dddd32ecf6466811400c5aa7030d62c0fcfe2357f5978d886eb186bdc002a040dadd94d33b5c9525dba7d771632733fe8268dd50ee0f7a53e81147a13afb97f901308208cd850700bf1b088303e418941111111254eeb25477b68fb85ed929f73a96058280b8c80502b1c5000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000021f92658262f80fd0000000000000000000000000000000000000000000000098b7d7ea849276a6c0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000003b6d0340a469d741ffe634154cd2f94dff4b8be907940340e26b997725a0bf3a8076a4cd912dc3f191159d32edc47f0d3f9c36af302326079457e4b91067a030e86082aa7281f4856f03620f1407abcd6a712d6be7be0b5a5df7c01a92ec0302f9021b0181b085037e11d600852e90edd0008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a6bdffb558ab93d40337f1f86b6a78c339ee8e701a993e3423b6895f45cc2bedecfa6f8e3cc6e275bccb95a387c3bc7a65cbd9ba18489786dc692efab9a77cd7e71f8352e1629f66a21631954386c7f1ded22b3c71a6e48d806dc96a0517fffd01c6b0ee43294536b92a2737ed589fec94d21534859ac21eb9e279ec06504f50778f72220d7b7561b7edac075fc4b95c418f9cbba0c5cbfb7332333436cd3a6866c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d070296f8b13ebc10af77e8699518d46201d01876a40d0ddbd4beeb92253df0ca03754c9d50429dfbe617cab7b78291c16929b3360d352ae878d4da9d00ff998c302f9021a012485037e11d6008522ecb25c008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a25f3433e6eb797b90010bd66d802c9db7193bdfbca289e7f932b686a28319b95eb346740d7597ed6f0aca39af7747a82ccd9658984165d043832a183d1fc56fe6a045915cb59702356344e05a76d75eba1bcf7889618de851c8fe5bcf4193012e51d4f4c182e17e6c50e69bf305527680e005a6abe3b367aad091acda0238374ba63c0fdcdf7e22d3e03dd751a495249339c2dababf333a1bc91f55cf6fe5c84f2b47b4054697932573645ed95fecb78e83ad418cbe402f3f956712ce9a9e4f7129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a06371597b3055660334ce263ab9891ab48ccd3c4c48b3f6d2d625b184592f198ea04fc4de8ab5d0da976d509082230bddbadf7f25d4d5e7bf9903c78cc4a71ddf89f9023381fc8505d21dba0083084f7094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba7a541c0eca0980a2c25b4059c582fc738acd2f479b9494094fefce702d02c0bd1eaa743b35b207e29f0fbcf3e4aaa4203c32064b790ee1f0dfc99bde414980cc0f2dba35615ac2592dc1d6b8fb26e39b7246c16d96ad15a12809678a0e37ed76d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a06ddea7e5dda69089993cd62547d6ffa126fc6a397614a14e407165e81f2e7c64a03c6cc4943a2e4273664fe7d8e75eabd6ca2dbd6ef359b5fa7960aa7a838b70c002f901fa01778504a817c8008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009ee287a183ca622f382bf36dfdcc878ac46aa29c1238d3b9aa630313df095e93f599751c430d0af9c83aaa893ef9d7e869ca37017b78645ba4746547866d2a36b4d074d7c288e87c7c83ac94218e37c893dfb593f959781d38ab7da5c144a1b24379c68415c9beac8697de0b6e09ecdeb979ed4dd950db7cea20f0ec251cc3c7fed220f04e94ab022c296ae9584d24eb79a4ba3b814090b8de476fac2b8526ce49e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0f5b49d95fac7dd470c39506397158b594cad98bfbbe123d8a728f67f71373db3a0488f5f9086d999ec87c7a6449588d4dcf6b3b0438408037d34ba4172c14ef87c02f9021c0182048d8502540be40085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a9562b24de5bfeac371352355f1b24decb9b37b60e6bb3a046028f86ee3efbd1a75447b2be82ae84ce6b0094e2e4f6603a46fcd561d8ad08e2b2fe2e8be0f5f88a96e11e066144d909529bc0bea1c8695d0e320b4112ff498ab9c2b5d6b7bfb5b57ac235ea98aaf9d6bbb661759f4850633cddea79fdb818c183e27aff75856c4e68e16c59423e104367604622139af9cf090e61899f48cb546f5cb2d14d6d55a6036917a0c38e9bc8a8e5fae1bc68edda5ea467d98ad83bed995feed0ecfd3e1129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a08e24d843c05ea20580c18281480d2b36ba81cf9ab52ed54401413ca47d1a4a28a0498e98b5d2ed154ed8b31905e044887a09ac1085850aa3800b38302d4f3b597902f9023c0182016b8502540be40085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc2d133850b3825def8ede3bf0cda4590448bf2df5faf5118f9ceb9200594f9c448bb34023acc41b666d1dd5a39ab7e056199d0b66d6cf2e493b184451b2b68c5be1bbcf99123ded8e17d7134e061d3acff95ff2448f48fd5ace24e0fb165bf34f77ba808002882f5ad3e4a3d593212291dc1adb4a2c2883826fa2eab7487e13e9a2b74895c93e64a7dae5947f6115b4caeda7b2c7bc103692f628e1fd1986b3d6efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a052733887f1dcb848a42de5c674c4830b8eb8ca354e3d046f67d31515fda8a66ca0083e22a0ef2651e140cec5727b5ffad9531cf40798fc8bd4f9a859b5b84f09f902f9021a01028502363e7f008505584dc0fc8308ed2894998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000aa3c773be8bc1382183378836a223aab62bb0d6889d8b6dc25adc67868a433a11d37ffcc260fd63ceb43d101e45663ecd0e42b3de784f5938c73b9c11998d844b7963118588116a64dedbeec0dc33397f366921c0e35f19c0ae4412ee11e114c29467c640a6e37406a471a0963268dad95dd69341812624eff05606d06e436423785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a09b8b42b8b5c85276785f49f5b32d494b6448e3f1d8c06eb1373550a51af9392da0631d70f1cb6cf4d29ce86571e24ddf6a2971773ecd371d4639319c6d6907281a02f86f01825971850218711a00850bc0adbf6483061a80946b9aa8ba525bcbfaf010aaf92e0f8da98c76959f8080c001a06a727b1c2484c9a4882be69b9ac801071c3fc610c7c68808fe63b67cfb7a0413a040a12120c89ae04faf7e20f3c7ddb232b74cb31c3a4337bd8e4287af34860e1702f9021b0181a78504a817c8008504a817c8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a256dda8920dcd4a5c04490050b9478e6c166c9b974f89eb56a10e8a7d473cc04f5c5f82bab15721606b38b333df1cabe5f1c0b8da4449a32a1388cef0d65ebcb7750ad06f7c3255aba180fc177d12975f243bb1211dd0ba2baf214e2a5509d4cd0fd9cf2238c6694f8c18daf5cb0b5a49d03c42f312bded35f8e663d340669fc7d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d18a7711df9da7d112c0ac2bb544461f82ce9271583443985a1640d4b3e05d8ca01e799c8df62b788d90a1442b259ee6d706d7150cf3391383440c8298758af728f90149128504a817c80082d6d894c36cf0cfcb5d905b8b513860db0cfe63f6cf9f5c80b8e43db0f8ab0000000000000000000000005ab8ca7e7984fd8e9e9e5ca7b5b77b98214f611d000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000005bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000126a0b71d4d454b7ad08d99b7522c947ceccad2796c255c07e7a9e2b07eae2ca0ca90a023ce5af9a30e842fd15f04ababae0b7654d06ae32de14e9a0d11282be2b4b732f86f8304f2a78504a817c80083015f9094d181e690799612e9b22a413e78a5609359e9ca9b87d60298ba4d68008026a0a5b28026eb44ec9b32d35926ba20093ed8f032a598693d69fba30742cc08b11aa05a826604a03b9b3f07bfccb4cb8b96dd42d429db73f8a927d5895ca2c17691f002f901fb0181a78501dcd650008513ca6512008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000093d196ef281f0478c9c0814d7b553dc7fd38181ffa297ec326ee030adf5d63b6f5f2f7f8cb5a7c02b54825b233f25f811802148be2635373df49081047ef63cb538f942b721541a3415a609d0abfef271e5fe02dc284cfb677a1bc4f039506ce1e73a79fbc577fae7de1955e0e18d0e94cc3e2be4fd63f9f856f72365c04724d47aff8cfbd92504b0719548d30b0853109a0defcf494e1d8995abfef7a4f90e269e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0f2e18e1ed2b27aafb928ef8e64bbdde2fe52fd042ae1d060ff8dc8b52278433ca0652534270329e1e53ac219de55a4fc1324545b6c920d9162e80892eefc4b0226f902348201108503e95ba8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1c5f3bc9ed581ffe9dfb22ae8a5a95332ed3188f295c1814b1aaed40e59e8381edf363f0ada6ffe81b08e543271d02e6137102a89ab110acc1a88d49b3cb7ebe4e958362f8f11d2af8a2e7ab4e350bfb1cc304d930767af5e1f72a64d8d709887b8e382938307571430d6f237192da325989241fa10faa873d51224408ad85cf3888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a04c0a20ac0a13fb6d90097e18a71c80736bb2b1415a66e6c350499e404e6ab756a06353aec70426b13b474509ec5605da6267cdc151b8e5bdf79e10b3cc70a260d4f902127e8503e95ba8008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a7fe8b2f119009b4f4e6ec368feb9699385f99787aa69e5cdf273a8f3f8780968b288fef321ccbbe17946428e2336ab9df34af4a903a6d6e898e75732572d7e51b2b75453e3fc733f9241681faace1633ff6252989ade7ab7b10e10cc367fc2a2e8e6a9ec934b7159150528e2eaf915105561956da23ade19970cebf849b88211f0c2dafa306040fa2e8a7543fb78dc27bef039464182c5d4ef0f4932f43d03826c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e6226a0732b217d86cdd192e18e0eadc0504119311e3fe10b1b2d5d454cf5de612cc3b4a05087d2e9d5e7c2beff0f03bc2aea8a3c2afd173a4ac517cddbb8b8564c063d4502f9032801828ee5808504ec65d5e0830493e09487d9da48db6e1f925cb67d3b7d2a292846c24cf780b901042b81bc8700000000000000000000000000000000000000000000000004b73fcfe157caae00000000000000000000000000000000000000000000039d5c1a27d6bb200000000000000000000000000000c09bf2b1bc8725903c509e8caeef9190857215a8000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000063820025000000000000000000000000abd69d0fac4b0851dafe100979df808eb7fb81a90000000000000000000000000000000000000000000000000002367c6036204ef901b6f8dd94c09bf2b1bc8725903c509e8caeef9190857215a8f8c6a00000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000009a0000000000000000000000000000000000000000000000000000000000000000aa00000000000000000000000000000000000000000000000000000000000000008a0000000000000000000000000000000000000000000000000000000000000000ca00000000000000000000000000000000000000000000000000000000000000006f85994c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2f842a07bfd1e1b28458bb4f5f19c57111a67018995cb84791030d95e1961bcdc99e256a0113d4cfc2eb9a0e7c9f48ec60bfd3dc70eaed8580af1972f589aa41c044429d1f87a9473d7c860998ca3c01ce8c808f5577d94d545d1b4f863a00000000000000000000000000000000000000000000000000000000000000008a0113d4cfc2eb9a0e7c9f48ec60bfd3dc70eaed8580af1972f589aa41c044429d1a061619f4ff8176f9002dd5ab3523e6aa4aa7eea503fc92d6effaf2faab13e801680a012b6ff41736eec4147c38559a9dc5190b5af57265e01af5ff53b6cc83ee42dbea002e956bb005a76e38f2bff34cbd33c155a5465ee4c1bd06d2215b31c3c215f1502f9021c018201ca85012a05f20085174876e8008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a0e91f725d2c0dd31115587561ef336ca683c624974d1a713641a7268f2a2c3dc39548c4e34f0ae652449696fb706bc8e258a3f8d4e6e849e39e5584b0e9ad1bca33837566fb054d78a3870d660451d5a9c6bf3b841e52769087e1104a9587f0392c41e6f679c59d57c7581eef926e696483ec17096750a2c3afa8ab7710596637d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a043c8ef4602f79f5435c592fedd10e4bd0f15743d3b203bd16f9205804ca99f75a0068ed0cab060dc76e7f86b22a21263347094c33d85263c8572f604af6e88616f02f90113018206a584ee6b28008505d21dba00830231e794ca6d7604ae55ba1ba864c26692a91979f25cdb9680b8a4962cb60200000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000041fa8dbfc7cc1b59cad19b93fb8ae3030314c083724f98befa2c8c7bfe210faf4f4f3c3770797758755ae9f2ec2a512e2fe32e41f3a6f406e33e108dbe32e318dc1b00000000000000000000000000000000000000000000000000000000000000c001a093e7b7a2209132d8d00503609823e0a483546a56f7962cdd080b202fd973fde9a00ed98119678c03e644bc850600a22ffbce9856ecbcbf27c8581e87bd7fc7760df901b28085039bdf3b0082dea894ede26ccc85ae521d06b5ef2604952a421c9124b68817207a9b6760cc00b90144f1e03d67a555c465a2c6494d9520364b884667aa00000000000000000000000000000000000000000000000000000000464e54188ae628be286496d7bc0b21a6cd4aad0a00000000000000000000000028d1b3793be15f0edbd404292a9cc10c2e08722800000000000000000000000000000000000000000000000017207a9b6760cc0000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000ad2000000000000000000000000000000000000000000000000000000006382a89e000000000000000000000000000000000000000000000000000000000000001ca5584fbb7c4603a0f43ffdd7befeed0d1561525d93ca20006ecc6220097317261497d89bb07d061ffa08da6247bf46b8bb57172a4d34faa369e0dd89cc9d406825a04a70c813f4858109d648374110334897e59d410d7d5b65de8c0de6344628d1baa0545157e6397ee7e0532f04235c42947c8ae84ad821be11dcbcd89d76e55b9f6bf8708373acaa85039ba41a1d8305573094456046280bb4dfd5afe340ad269abbea772370d8881bb3376cbbae00008026a0bd29d90317faf93dfd7b1f9e17198585de820f3d9eda8b99859537e04b4c494ba06002b8d82dd30015d9fed2ee3303ab1bb14f7080003fd46f5db1d49afcdfe543f8a90285037e11d5ff82ea609405237e2bd2dfab39a135d254cabae94b183c8bad80b844a9059cbb000000000000000000000000d947e806c01ae61dea449458ff8464c62714cff00000000000000000000000000000000000000000000000000000078369f8720025a08d692b3b4d483c8b20a3b1d92d607e0ee2e4aec43b4d38f9cf9a46a70ef0bd09a01072efc98bd4ab359402ad8640e2eb370537996950efe02d1c670162d4b8ca1602f9023b0182010584b2d05e008504e3b292008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bceb1191c091b11dc0bdd60703d510d82d6f6819420e96cca481d81090835f8a005ab6a01a4f0f0e3e5ded83648b79190602395df2ef89318f456ac3a2e63145f676e88cb89dc6a5c7cb54eef906f4e55947e60f19cb82945e83baae54f9f0bd1a65e3b79cdf73a12bf37ce442a6cc3a9c2cbab7ad1046373fac1a0041fb8b75f228b2bb2d8a4db141f93f7373bfeb3ada6c15c980958d2bf5fab8a12e721de77041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0efc39d27a223cb3082672e357286b2b05f27fb7157e703dee77d1fa4c9cfa851a060cd3104bcab99d366bf4d5251d93f2531723c6bfc8f56b2c165c9b20658db4302f9023b018203cb84b2d05e00850b2d05e0008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b34f98320a73532059fae6178e188f4eee471e157968fe99a90e1323fd0e5edab60276167e5b01e5f631b47561a7ec0886e58751b7081772c8409ab854b28c4a31edec07336bc39fdea2bcc2b55aca9df43ca5f8f5b2dbb1e5e64299e93e840ed5fdf04e0e639d8cd931bced7b63973c735f3660262ab7b674b3670c146bafc32a9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0bcbc0aeedd8e8b6e5a9b766a19e3d2eb57001cfb937fb76378a039388fedfce3a06a24e6f824e411a2acea833374df0241b3c039f092b8b37d1750819924a7080002f8b30182073484b2d05e008506fc23ac008307a1209476c5449f4950f6338a393f53cda8b53b0cd3ca3a80b844095ea7b30000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a0179e95faf9d4759795cd8c6645decd9758999b383e565df0224669d716b2aa68a03188edd85ae37513c0194d847be0783cad646df7a197d7a745a8663ecbd8041102f9021a0181dc84b2d05e0085104c533c008304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ae9d225d9e05cf7ce1dc63a73601a7c8d2e7942b4143b6b37693faf946649a1d4789cd0960ea44bc6f0305ad872961a21cb28dbac7626136aa45f502eccc01523b4bfbfa4674225ba36f33c355a3eb6b375c4be7ab56dee23c3ef91477f82925710ae82141d13083170fa2d6d3036716f418d71ea863aad029f828eac4bf857c932e3276095e5232ac252337a3d6a4fec51886748206434b7dcceeea368a3c00bf2b47b4054697932573645ed95fecb78e83ad418cbe402f3f956712ce9a9e4f7129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0e5e37a347b8517a312843127e6c3cc4c9cdd304434e9200e47f90a2bff93d07ea040bf99603dcec702aa7308a19eb45ca3520aab5442ee93d5ab34a40063287ada02f90219012484b2d05e0085181b2c03e48304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ac1677c2d8aebe3c74d31d59ee170413bd3582f9ad62828460d74566a6a18bb3da2a4231c4d3d627ad779f60cf612b5edb53c7804d11552df07248bd30625a4a69ddd7f66185fc195af8fef05ffc4b5fbfe060ef55c3af75df4e9f043bf8754e4decf5e4e1131c590645de42305afd041f1b15fbb4e5c53fca066d72efc15d863e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a07e462ce311a1e635888a945b6c045963cc4ccf36cb9eaf96a97b347d3987b9d6a0102dbea1eb1255d9d508b7ff34cd3134159e6bf2d175d97074ae1eccc0ce826202f9023a01818384b2d05e008509502f90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be727e46ed97d93bd4cd30332f8fd13ca0e6f96ee39dca9197eed23b36662b802bc2ba24e3723731d7db0cf4ce9667cf68d10940be9af37c798d98b96cc861cac54927259b6daad949ba933e3899d4752e9e6566e49b1e59e606ec64ef07f5d115c65052bff0e03c51fb48f6717821b42be97e6c2633cb2c1ae2597f7c5386db89a2b74895c93e64a7dae5947f6115b4caeda7b2c7bc103692f628e1fd1986b3d6efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0567c52127a208a82d2b6f1b685ba8f09915af71069718d05338cf644ae6fd04aa0529e78f32790e920dbfb932c8b078ec180f1746e8c496bdc0a1d578b90a99ea502f9033401824ac284b2d05e008503cb5a933083181959943caca7b48d0573d793d3b0279b5f0029180e83b680b902c4b87b0b4c000000000000000000000000b3f5503f93d5ef84b06993a1975b9d21b962892f0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000224ad558ab90000000000000000000000001a5309f208f161a393e8b5a253de8ab894a6718800000000000000000000000027e606fdb5c922f8213dc588a434bf7583697866000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000018bdb3eee6151a000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c7d393100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0308813996e157e91eed63c6eafa2633194ed1bec848dae1dd0cb4a24b41fccdca07086d13de05e62a3d9ee6878bd8329f4885cddeec2a97adae810ef66a393205ff90233819e85035a4e90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba8b5a6374a8061a364bad98aad8a7dbb29dd5a328c682c2b344a1a8203446b320010df544c65e4545e421ba5c6f6462a012285fcf2761648d5f9ef424a82865ce52180099a30a501cfe898da153068e42ea4c76d92c1cbee8dfa699c20f1a6db0db86768464f964263b4d04fdcb22dc7fa92617721a737a16f279f245402f172ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec26a0d445578f2b90dcf950b9743dd196057c291bb50eae79995655f59c284e0a9edba05e96cbde366c65bf207827aea9316d1eb1baa0b759197d69ff476c9aa6eb7102f8aa0185035a4e90008301027f94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844a9059cbb0000000000000000000000009994690f3cbd70d977467db0c0b6141b76a96b4c00000000000000000000000000000000000000000000000000000002d049574326a079c738fe2ac2a31db664c41c104f3403a0cd74d0f99dc7023b034353c50d6de5a06e38151af6e93d32708f944ce06cc7c359793f754eca0514c98f10fe12a7374ef9023482015085035a4e90008308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3870d0649e85c7431ee92925bcb82c42c353a6b3ae7087f812305a64e1f5cc35052c458154c09049dd11bed37a131553ab46d1ef3bb157980b111fb69d796783ed2cf250786a0c103b31b1af72c40e34cba68e463879df224a173c19bb493713116a56e0a9b1719b7de2653bcde0fa2f2b9a29368b85d3c8a4cb76b1f067cc2ae638493b504c4955b832bc4cd7aa2f05208f6a8480eddb8dad4d67b6bced37a8ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ec25a012d90904c1df9bc0560cdcf1081cba7d5571a1906593292f2be437286afc911aa047e4159ba406e113314094c2af0279290cc43c5f0711fe2ce3115a8e0ed3be4502f9023b0182018e84a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc6379e4707c378a1b48f59ae328130adedeeee2be01e6897877205763d7320a4b100c46ab99a80b5930df4ac91e21ceb7677f81c185ef23e53d94e44ca86798e4b99cc1dbfeb7777d48b5728fe8e73e597158c2d3542e22c2bef2027211c070e05af0660f0c3354b734e06a9427e13e840a916b5cbdd5eda4e40c2d60dd21a57a24241628467a8526d652b04a046db8e7a86bb28fcfe2b13054ecf29a2cf302f4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0f3a64da686d1e20581ef1d813d67c27058259a968824db27cca858b82f4a936da04b28765ac7cdee137aaf54134e06c913db895888a42979cbd794d54f66cf9ce502f90239012084a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be6674ebbfbc519d5958c8d943967b369ca7fd39e41fa5dcdc74b9e819dece2d9d1eaa743b35b207e29f0fbcf3e4aaa4203c32064b790ee1f0dfc99bde414980cc0f2dba35615ac2592dc1d6b8fb26e39b7246c16d96ad15a12809678a0e37ed76d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a02b75240daa730b4ad9257ab25234f9eff07da7d95dac9a47e8a9bb8d071b0711a03fe8064f1675ca9e6b31f1e4e8fe6d0a1be0d4b8bf64a8dc15aa93d033990eba02f90239010684a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b21635d6387d997b93425b3637984411332620af98f38631f937fe97a8ca68d5a92463a1b9f155e20d4cbd385ec7fb1718d47d213f9ffc0c309f4a7f7bfeeb608cf4648c423447fb310378a6cf3392d3796ff1bc240d37fadfbcadedf2440324a6667e37f619c7a26f38bfea08235d5cc8404ff299b8033493682b2d73fe24d7a9c145f1a961634e373c2ac40dd183321dd17dbcb7435a0f7ba5c37f58120731c368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a04f9baff53981a3816b217e3b7f37943f79d73ff9375e5b602f99d8a9bd49406fa04fca136a718378b52eeb3ffafc50fd46d8a33dd8277751bc57684c358c31a8be02f9023a01818184a3e9ab808505e12254488308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b99497bc6c8e20939efcf81d0cd34182cdc3435e2a7d94154b162236b840f2a3630f1857e06949437fc37d922f5a3d8f9eb505c85b17bfdb4dae50834af0f5af52c63114896df964394ce28735228db04db1fb7d9e53b4cbca4ccb2f0f1af530ebfae2cc4a04753549155cda73390e77a0898157e5da2ae4acd9089f1539067351c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a070de19bc55e9e30f14306471958642a137d7f5f79832005418cff36ccfa6bfe7a0214f222945ccde51a1477885cbaf79708e304309f64bc2ce9e04d8dc19434b51f86d82770b850346dd16ca82520894fbf083f0d2a9092fdca9aee7430a44bef152d369876379da05b60000801ca086fb17125c8be899ddd314d63cb36a72326c6e51c632ffb4bfbf73e22029044aa017dee11923750fb5ddde0bff31dc1a3e5ec85dce5dac19fb3bc6c480c8010b5702f9023a018192849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb39e62ba9fa90a052eb76bc81c9422b13c8ca59eeecb796afc9f8fb4c78c3b2ae8c7585e43abf49d73247799cdb2af950d77bb044a7660ee30bfe3a227ffcd8dab138c9d5b45c6ece7a9a2ffc869ca8d60dd94ea9dec8b19c668a98875b772105bcda5c06911aeb660abba38421c0ff56a426281f61fb53eb000f147f02d9a151c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00ebdc320e421e4d10200a88989abba6a2755790bb51621eaa6c7cd734b87f8aaa01d663cf6ec10c685dea6972d563af56d47b1f3e86b7dfb386c7688efd76c5f5c02f9023a018195849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3c2351fb8c1decd56b42811597216a1731798475e8b823a51bddafaceb2cf3f80f947e2920086274197649c1092b26a22c06af8b85f5e79b93f5752e77e1eb7ced833eb1d944639dac5d6576acac9527fd5e50b3be3a5f0bdffac713d622b81ca8c9ce932c51b7569e70fad2b348efbfded890dfaf8a8b43f9ef9780c40e47316f8ee6aca360d4cc0b79651c7c4294544080e7c14c28b91bdf155de019bdec5663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a056bfc62c17131dbe50300e6ddc1a939c2e95b879a82908dab033452750ea2f20a0077f99b9fad50d032dda80ca029039fe6b8780fd4427622f5a4c9291bfd6708002f90239011d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000beef5923d4fefe8473ee7de7ffe7fa26c8faf668dc19a2149658ed3e21fdf0ce2efa95f210be598d32974c5a17a399c1d07d1595e60614a5e9a2c988b90decf04aa503d2e2fc07673bac6f0c192da6899a662e13280a43ab0a76502689fac8f382e85b023c706bb0694762973ec8ba6a13e907b6894e00898fd3444968f555bfdeed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0ae53e6725660dffb80c9dc44bcc4f968a3eaa69ca2f9d83f0c15eb28859b4fd9a051ad3368ff606f106758a7162d11d34ee36e6da8579d2eb087524b48f496d59102f902390173849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b18493c5471a4c5a91733120f4fa4d0b5ee1943b317b44f0f942e04c44b29a5f8b0b2dc5bd3ffa19c420efa98da6c333272819beebadd2ae840de658a5a4b4a5016e447315ace9c41b1861774b36838281e6cf85d9dd53ae8ca8823f9d216f129dc1fca82427e68dd7b52eeb8ac01ee60a2a8fc84a7a68efbbd1a0e30ebabd02bca2fac698de5d0738c7811fd3124aebc22e52367beb65d084d958cc9cb9eba252ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0fdedba0fc90dc5e79861b3dc6cb8f3270778fee5443ec1a9d24a3f7489938b8fa01cc3ef3adc1f59d1810c94c3ca431f9255de7cea078cae8496f0a3a058e2583602f902390149849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4bc07f8765b668852601d284d246dbd67c023bc1da388d731271faef33263656fcd1fe2a802b05783945d4c36fe9c1c71752f86d8c885234d61f4b52fae327704e7077818f1d7d89fa63fc0832b1ac7d0d983b7e8f9e7e2b8f1a7aa4c276bdee8c476bb69dcbe9a4af4cd65265b53a8a1c5df99123653e583ae510e81341fefcad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0ee26138b2c626e50eb95d85043c2eedab9a51e429fe03fa7f1ee2956fa05593ca07ccab12aee24d902b64735a09087aea4059f7dc438a34a6759976d527a76d1aa02f902390153849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bae968bdbb6945b789b93803da45a62ea16920f45fb69a3c0f91dbd9c35f10aa8fa0c956d059f3f9cbec5b04253f00f73060de3e9b18b8f5646fd8ad61dd19aa96c86c2577bd18956cfa3d48129259a335b791f89c04f972380e60dab571b82d28da992e0e4bddf6c591952171335ccbc862d64ea0db7ec6c4a3b5873c74107c1ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a066369605683b3d99e90fb7be670a7ae76c0890e1170665b726739f5489e175f3a066c9dde909ff63f6c60364c3b42ce9e7f160da600ec71072f7a20a92a7598c8002f9023b0182010e849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b480273f77d83ecdfbfec5b57cf43c69c82ae5725a3c98940331ff61582e6e71a4cea9dc6c2e8975fc0679486c80cfbb363afd3bb163cb0f845bb065b802d3a5a67213571b553445b9a52f7cc984e7c586c0daab4dc9acffe9c3fa975c8dbfc443c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a064e9877e59512565130384dc762eba575f0247d2414c8aabee3ffc805720802fa06a5e262396ec79b96fd3075994bb3ae433f682ce86b9216a595cd75f075852db02f90239015d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b268af0d6d315ea9c0d5c6382fc2678e91bd74cbb19f75c972c34c6987c7eabcc4cea9dc6c2e8975fc0679486c80cfbb363afd3bb163cb0f845bb065b802d3a5a67213571b553445b9a52f7cc984e7c586c0daab4dc9acffe9c3fa975c8dbfc443c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00db24ab17fced436faa46067a737c1d9e1bf627e6b300431788736984e5133daa05ce898f66c9f0758f45562dc5b30f3233b8da1edc5eeaaf5e59f0707d1b86b3002f8700136849502f9008504dc3b2a048307741094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0e4434142219f93de767bc20bb10004a17f411a28620daf16d8d02dba9bd25364a07a85ac2afdd34f36dd581789b6b39a2051f3baf0dcec3a23d13e8b2a5635eb1e02f9023a018187849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b253745fe74841d4e4ac09a0eed34aad0ba7063d50297a7ac47eb8be585eea20db98f849432cbf66b111e8394825ed2b837ecb7f41d1646f1eff21736b5334162036c70f758b841956492bc4af99d8efbd1d353b0c3fee9024829a2e590099869c4f25e0ba4cef2cea3b6ec94959895c35959601869ae03e3958a91f1c03550258dd36fcbc5833f2116232785f8359d2334dab78eaaf7968a293cd28690e1a457713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a011fa61982e2b6f68317022639803d34b77246f55edb312a16a3f306903906e71a020e0f379c6afd1ce89c72a018077c6b7055b546eaf0c9f694854c53457c4ccfb02f901f90102849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009ec5651812086878c3de7814746c26d8e3332ff4a9d154bdfb6455735a940a336dfe4989c3323bf53d08ac7450d979fc0a92f54dcbe3cdd51df8c6f66359bd94c0d3669e0708e9542665e4396247ba04d243c81b4479355ce2df33888c9e0b50504b5e992379c4d3ee343745728e612df3e9676a94c905a59be7b1f3beba3241d2fae1249bd417a9e9c0f5c8c8b276c9574b7637e276eaa4c8b23d4cba87debdd718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0fa1d65fd081a92db254aa12ad3da3735f6a5d5fbdbb4d088478302312e520eb5a023ab66e8c699073a0e98602ad3c591d69f45e183ee6a18e9b5cf641b06e6858802f9027a0168849502f9008505584dc0fc830f700994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88025bf6196bd10000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b3fb64426b13305463a1e7a926399dcf62a972d906ddfd227039fd904059a84ef41f58390de847d8c359cf9bc0958c2dbcf36bbb7c3b7449cca8aef7a09e7d470c58392730cd2fdaa42c05cb894af03cdb84aea7f4a35c29424107fd76ae911c51a000bd0b2081757b50ed135366091621048c5fca2e33c7c55aa995176b4a3ce9d69e2074a60ca8082feca2cf790323dcaee36ca7d5bd5a5eff1c785118da0e6eb4e297c388289f40331a599c712a7b67b756f84b98b0cb207da5231d4d3d29b273f11011a9233ef1fd6c504fc555bce333eceb3d1e4e8f69874b75f6d856d531aff4e550b5383b62ece606f193a21eb2ea67c3d75bb0768790978af2b6773f0f834887345df96f4d60b5070d09e1a56b26f122a3ae81b1c3c2a06b6a29f64ff580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a07a64532afeca0bfe9affbbf65600ee754f80faf79f13b42dcd845cfd041f3bb0a075f8cae904b99f5b12bebc153bdf0c5edcb3d5fca4de86873258301129d4be7a02f901f90154849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000097bf5a6885b2d7429c455eaf29234153bcda6c9c913ca79940b5e3e0807ebfa7ba16dab20521d795fe8776a851828db6d1bbe36d4a4b9d5733dacbc3d8fed57104fa671ec4975cb553cae2b81c79d8f9eb70cf1b92f092b041cfa4c3fbeafbeb33df3d1bbaeba880bb2bc076be02a1f7fa95773e25bad6614a5e98eab106fe498d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0111c7e84859964baa2edc06b6fa6f9defa1a5b8cb4e75e9d9d17fb38a79582aca07cc3430b9a84bf3319a23e686e76ed1f16f16cd00a8179865ec3c7e3930cbcad02f9023a0181a1849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba9760e4c602dd27940a9e99dc6845e89b0da73b91a8d7d220c324e7ba5a5f6a71ca26df9e94975bc73fc213764ddc22622e039696c7e0c2b3175f1165580121b6c86c2577bd18956cfa3d48129259a335b791f89c04f972380e60dab571b82d28da992e0e4bddf6c591952171335ccbc862d64ea0db7ec6c4a3b5873c74107c1ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e49f7d431939d4121ade2c2d5c5305c92f233e5781a47e65f9b4c31b8e38c895a03ddd2dc7c4630f82d65292fe4e7a05c4a9015d0ab51477052b61e185e895e7ce02f902390134849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b9e195179ff8e95bc06232f4eab3a9922f9c9c159c617da70bcb1b8221df8c486a4e87da5f3cd6439c63304850ddc26ff8cccc529a66e950970caf825b9326a8e7e29d4406d11c42cf40059c11370050cd6a659e89a8d65ffbba46e8fde16f1c71e7e34397d88cddc049bc1c2deae4beb1f6daf6338d1f7aadb51269915be934dc2430025cf245b31b5c66f6eda28c3ea590926d25dfa31ae73b28855b3df709ce488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a04103cc62adc5906a5d18cbfb8982a327284b20426191c23e3db72e952f8f842fa0526dcf1f8463a6875680c4517e22f4b1ec3cd562c55114bd9efa55a112d740ce02f90219012c849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a144807997d6584b6db9d3906f3d8bf3ebb6e93cf62e2cc07768c72c054bac120bd5a9c7dd84d0729e06026bfc52156f2ff4c688d0772c189d0bb8130b6def69ce88ab91b9770265f314ca683a03bf93419fcd8923b5ce4c54c9b15825f1298efc8d7aa842f3c81ccb061b9d9632b65f1deea4736433ef39a978e12dacffc938f23975ade81aeb4467ee3d0584113a70343f675b0adc969dca2878343fe459c854e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0196504386e10f44541112713f28995c40ea74f541b6c9927313b4883e975559fa043391279b8dee99edf06dbee66429dbbb307579f2b6578690edb9ffde96b20d802f90238016d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd30b9bf48329cceda119dea3f01831bb46dfe652efb3a3a501e05b463670bac484c3612208a9287153c12a75652aae497d5869b9da4bc47cebc6281444352404f9675072b423cc404548873e99867b92451d173905857a768fbf970e6cba68da9d1a33d161c334d6e7df7d8adf86043cbd67cd85a9388bfa83278f5c59fedc020f157a3d5a8bafe568e0c270de02c72665df09162a5e9547ccac29b07e651a10cba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc0809fd49f5fdfd69de6d4c2cb9cdfb20975bfc3d92f06806b355984bbb83a99ac31a01ea36756d656fc6fda4b54fdec59854f3c8b9d4e77100ec45252ca171ede9eae02f9023b018201be849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be25ce5b536a10b9e486afdb7cca97b1a921a3ea54b5817b9fbd8a536b45eb47cbab1dd0ad0d08b855d05aacbacd947e55edfb7d15ca60fbb7a30bfa624b089b0a1245429ffb23db20d43d22d8434d8742d14972cd2d17aed427b80ae5de6603beb6a4d068fa1b355e107c9fe663b0b9ad4b8969b10015a663d3a7a1b28f5861205fc71e2a4dbc946baaa9c64de51e4a875f07d87aff0de8dfff4952e38844850276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0cd27da49876e8a7298803f75e679e931bf9cda7ecc296df9151577d5ff4da639a0440bd3675dd656dc0370b7221a70fe45464d14b562176c59bac5fc916988aa2b02f902190113849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a5bbf41a9b4e1e503a6b53639234ba2264b99c9376fac9b6d918af00a0d8a87171342eb4740c8ea34e3b16a7a539f40f960d2dde26312394459fd4f587b8fbe2258455ca6cc651f761854d33956ca947cfd79685afac2be6ae32a4ff488575c8dda2e154e736467bb805327a0d140d616f3ebb696172c0154db5c3258de5d90e5785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d0f5f5a0d6221c7e65de0a505bb4fae7d7a2cad2f9398889bad687dda6326a3ca02074726a54f228a9154ee0e33da41d170214f4f33ec809a990a2d87d5380167b02f9023a0181ca849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5b242e7609999d8767f55676cec40c89ea85b422dd7599b3c7122f8cd5d4b1533d03e0ac80904a0ad91ebc41879494e7e9b567e99214e2c9a8a11805b76648ef07cd927a8dd897d3afb0b2167f0d2e1de9f0d47fba857dda85be2db1dacd336884cb32035c62f3227097b2e8fa05af5711bf7bbaa756b24b9e4ca95852a216e0886dbe84053c9654ee909e5116cd040a38429581726d6d2334965bad30c3a657de5344c7ec1b2dcf94654052e24c8a40a725a9eab591376c8142f4dc6e5e7874286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0021a1c76ac35e3ff5396d5af9f461b674fc0ab8a42f273260e481338c8fc6776a00a3000b3486441540b09bac00ecce1be324d4eb90f9de9ddfb4a5cbbf5afd48b02f871018183849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0e5c17dd0a22eb6bd4376cc26b2247c405e7bd8e0ccc7b7b3f0609e4d0fb57203a00306e3f7f733db17dbe5120d6617198257a50f9d1ee8acdba2155db111c164c902f8720182055f849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a00ec323c8e02ffa1c9662c9c95b3df3958600bf9e67bfbbecdd2cd46e13cc46c6a004c46d07cc33e41323d2fb37696c378b4f170b326ce75bf09ce64e0b2c98daef02f9023b01820200849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b87a39c8b7e5f9dc10afdc2c67e5257c43758017dae7c460d5daf57a7f6276c51c5065487e269107a966aa5e469d591ab9e888cd204059453a104ac2b99a55f110b2674d4bb65fd9b5b6199ac72e23eb70f63792e7d2fdaa0bf4b3e31c2ce8758f2ec770485d1e71d2dc41e25ac2456b254fde26eee6dcf840088fcee5fe4436e10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c04fbc0a30a02d0bcbab88d417b383f426ff1c84c55fc0d7073f0de3313638c9a01f7a083e503b89146d894206acfcf18a3cb88c16a5fd4cee6d80c5743532006102f902390108849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b80c569c46b856131b126382ba6e030f7b3f759b87f720a674456d6755d1f5a24b6468af925b2394a35e2e3e1ee54816800e9d592fe1f45068baf0a2f2228422ec6d7a20354f4eeb6b73bdd7e8cabb1dee44801633fae171c51fd7f40c077df116a333744a55fbb0f40b95162d3c365b4afbb957fe0e95b6cdbd17d9ff3b3e76c72b23902eff9f9f3eff1f8031299f27d86f44118fa4a7341e7549c672dd27d5870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a006750235c1714758eaa5f92ac1c46a5e6eeac6b5744934fd1cfa9d4cd3cf9d64a00ae579f278757158137146e5f4374ca9929ee9d340a54e1881ef1f213208ec1d02f90239014a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfb3c2e9eeaaec41ae904aa3bc9d0d5b49eb063b20b3187ceb6297e37656abff1cf55d08484af822b9b13848571d27d615cd7ef5037b95394921ffb1358a730ec484774ff0d8e87f19daa4e351b6e2bbfc88e6c68633249b16ef63a48f262ba5d54101d8dd11bae84ddf0839e76b76987033ee3fc08b57f2a13e7358d9b5e48edd2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a079cf53b59af1bde296fdddd433dd7d8d10ce09a85691adde7c42ee7b79b8eb1fa03ec30a1d8af3787eb69b5f878002735f0a2f6ba81e7e1ea10991f47a25db66cc02f90239015e849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b445d9a8cdb60a5caa4fe1dfc012f339629f07313d4e1ef95511689da854b7d7fd28313a6cdada003c686f06769c868b2cdb91f87f1b82830e08688c06b5331b9b0505508a5c122df8bf221be2783edbb4ebdc48e50673ab0458e7daeecd3b68f93a5a2d61e1cc7af7e696d76a991d10d12d6b72995581c4a123acad70f715acfee087bfa77dd89688e6401f01d9e5ccd1bb547078d1439c8f63831b6d037c2ac7195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a033b39680231187756758bfce5d51b30455c0ada11c099351001f2dae10a8fd5ca06d7505099177ede1c824bb28ce841963a1765f7cf2ef7c7ffb2da45682372d0602f901f9016e849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000093e072547a5b4aba5cf10024062301bf2d85f5af06a86209355e7571168dc6f2f0408a04220411b5661403391c91d92d9cc01e9ff51a0a0590936f69bf61b09b2d6116199a876e0f6d79d285e590c7d49af25080d3baab95ec1be3822804a2304145d0284bbb5ff2ece72fdd4f2b20d42592616380af3ff67a5447f3efea78e537aff8cfbd92504b0719548d30b0853109a0defcf494e1d8995abfef7a4f90e269e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a049288147adc66f9bf053dad49cc659a94b3395f33424722aa27ebc8f78247faea01d92f00518c8cd8bfc8d68bafe76dc19d6ab622eeb0e273d4d248a7d7c56fc6702f90239013a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b121c5cf848e027dc4cc22baf95c86e160ee1ea9e490540d179cdf7468b8d6e334947192f9142dce43243f17b43b28dd9a392d834c0b5baa715164776cb53b2c1a5ed327e5b0d2f0c92a617b1e4a3dc03a39eb466d58aebe8780063d1f3681cc4610a1669643bd11695c4fca06549f7317186c0d289ae01671ba762c9fe5a2b179ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03b44ed94d2cc0f76919d88a47ff45b09da7dbd9459c613e73ca67b5266ab2679a0422de4b36bd07e286a830bd994648df9ebf83225307648d7127465ca86fa182b02f9023a0181a8849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bdf96c03502ac2021b76c4fac9c82d85c0d6cca4aa2fabfdc51c807e4216cd51663c72e95718f1f25037a78765bcc4ff89971f8088664e1c42337f305f36ebdafb74ffd93a9b87839b9f21bba96a3420c2c0b969d223e76c6945b874ed152f4f7001eec81d4e5eb47f135bba800c40b6097f54d508e5bee8ee40902f5214c2f9d4d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a017da238e7e078dea7ddbdc976d270f817a00a3f8418a7a315f533f1d9f12b46da040de95b0622ddb1b53d8dac977a5a3b9676a73bb7bf4dd09e852c5ee96a2d2af02f9023b01820127849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b07ed1d2191bb7a3ed64e9a7bf1d97c797e8831671f088561a8b9df63639933bf0ab5ce7f3fb0eedc0e8a8b19ba15a4a4a473bf444c0152bdac13f8d607c3ae23d9f8497304a240064cbc015bd4e60ef746c9d8c811123971b71fad55fa7ac59a22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0958f185c93c78720e376d511ecf23ad677bb69f8af47acc5af1a4e6ff4817fe5a057e677ea9a0ead3bb99716545976c4a5805b179b2571b1199512c7269a4fe19502f90239012d849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b182adc6a199c54c9ae1953e1d7f94b71f14e4a6cca6f8d2e2724024427b440bec479557d300f98e5daf459e6edacc62c9b85fbd9393c6bc8fbdfedb4f346f3b46aa8cb13e381a1d357d13fb1ec724f0deeb2e1d2f919d681564370c76af3a8b5372755e99db10d981dc9ae18b6f26f5dc24451a8e9565c4ae7cdb4570a55ac4506ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07eeb31bedfeef057b45995886bcb8ec80a68e0ce9a195bc856719c7d4061683aa023d7a0cd41e78ac6fd1dc9075e518766681624305125fc61b601bd7ce35bc4aa02f8710181f5849502f9008504dc3b2a048307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0f5d783d2977e1a821ba8adff950a422a55c98999caa6600acc83631643df57fba003c29d02b81d86e1ac994402a27bcd7fa076345eb247a04848a151755846632402f90239011d849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b903c2f2eb04f87377c2ed1f36718548dcd779ae9eb8433560b246852ca4561625f5b251b1df35be913df44f06cfecf7323958074f1eb17f7905fcd80abc1f63054ba1434b8454e7240ae22bd2eb2f94ad43111ccd1e4a927be2c401b015e4c714e0056a69af46278ad2d07d86497fc282f38fddd53b343af77f221e2bb6dc660d82b8b3ec70cf0d4f465a96e1bc01553d96a727f5e0b70713858f708c2be46a39ca69f0224e93fb3d36e599453e3cc8205528fec829600637c27b4c7093ec8600815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0b36b32b2bb9d50b8f0c6909bce13c2432443a2da1eb82549ebd5b8bb9a8075dba003643bd8f21235959e80fcd5abff1748b7eda7caedb89b1ea3fc99f347ebee2702f9023b01820297849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2f338c5d28e1561b5bfb18a55148735cc872d0659dbae842279876a05cccc647e6529ea5b0f07bb7369308d36d1525498b2c2bf2d0564ddce4c4080591389f5654d46cc8b368dcc4f62d1f9bc2f3d0e03e99c1f46974016e4495000b7b1d7d4a1c57f0d9a8a8c22575d9fabf4d02c345b6bd68689b09c0197c9be4aa8f1a239a10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a050bf305663e7d2add233ceaadc88a5b8d435ac52181a1605dfe77d36065f64c4a022afb2213deb9e8cf5e610529da6fed4a7816f494cf6fa22fb04aab406d6c02b02f902790119849502f9008505584dc0fc830661bf94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8778cad1e25d0000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bbfe0abbb6503ab9e7400b0e1d9de0cbc33573d8a75ed072cf8ef9e0fa457f6782e0ee19cdfd5d4aa2c43ae69617c5140d67c8a436e386a772665b3c8c645b8f9d6f3feccd53c36fdbad0f38877a3259633fcc7285f953ac34435d1891ad0ec0b7e8d1df7f43df2f18a71a9423fc8aae1d97ed63074e05600d58035407c78f776b783ed18591168ee2066e2263ed0aa999d8866ae3bb471d016b1dc974ea79021026c00d73f71e6c9fc7f99bef90d8e88819f37570ab36cc1b459abb88b7eabdd0e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0149bc403ea4d7f45a9fcbdec9de8af93729a51ae6916674e0e1b1cd67dc2b79ea076573c5932f1fc7c38a87397e37d1aea8521a8a92114c01707c3fb2079302dd802f9023a0181a5849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bbc449c7f482ef82b60c6199326bc233264f7f61dc3ddfe7551644443cc120f06d69c380e8d324476f552f9186aa830fdd9b68115969aaf77ae986bc1788bed470fcaf63cb0ebb1f9309c24c6272b532256e7aab111beadecfc1be208875540b483457c9fdd59bf72e5a8498937baa8ddf6b5ee96f52a4bf5501a41bf841b2bf18dd36fcbc5833f2116232785f8359d2334dab78eaaf7968a293cd28690e1a457713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a06a55fffd626565d28c2b4d87b6e4fc20d67a18503c3eadb024688ff67d9c0f77a043e28d618ba114eeb3d17cb74818329d7c685513b66ad8cfc9e72c95d9c8342d02f9023b01820156849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b349a4cb6c7b7d13a09cb085ad411debc49e232955ce48341b5bf53880d7b284ee4369aedef96cb9e4bcd9ce8c25fa6ac0defdef4768bc27f10219326463f0bf208efedfce135b509d1544040fbd8ad348cfa31a309529c40ad4a63a36d89b5e0de660bbf169d37cf7a3bdd83d271cd20b2c421392a7637935935b099529f9bd532c3f251efba7755180cc77acc723082ba28ae0b8b8ebce06803c6af580fcf3870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0ccba7d31b17978f14c2db12715df3f8683887e7bea899ad91a27bf340c63aa11a03d1160421ef0ea7fcb04a792fd37855ce9ba54f0304e6b73fa8999bfd5ad85d002f90239010e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b906d2171853279c054680adb0b51f6eb7acbc322b770468f9893d89258e8d95ba817ae6b33c2ebff43503a6454463819e1cb790458fe2e2e1a3dc279b9c0a8ad763586ceb8a84db50636ac9e3378d9878a11b8cff4cecb6b9f77db2ca06065ec1b7b68d483e594b2b049a510108e8384fca4a98b0c9a65d353db714f1b624b53d2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a045bbd761da9478a5d76c6b39c22a17b9eae74c4d1570b3ebe2bc2ebb8164c4d4a06d58bbe87a425167aef39bcb91e2082ea8566bb172a198da777fd126712e0d1702f9023b01820106849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ba6c70f43acc6c77c6d1c8c345547474284cd18961c4a95598ffa397576a4ea527610130a406b6a70b336fe19c1a4ce2cd310b55fe5ff19a78fbe1d2b704307cf3cbb7597f785b6f0c91497ef907416efcaf5b490aa7f12240f77717abadbd7207f8689d4bc597cc9887d741dc8e640862294a68415d5a2641dbf00759a40bb1611d6828e7a5c6f653304a5dee69fdd27a099b0c728730fada01b02c727025310eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a08fa45af8d2f0e9dddeabfe8d81ffced0380cbe15cdd3e7ba8ddd59927d95b3f7a03883786120c155db5094be77e541b2fc8f0da6085bb3450b31adb0646c4d473202f9027a014e849502f9008505584dc0fc830d2c5194f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8801e32b4789740000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b02a6cb215e33e1ace2bf5fefb357cafec198261c800d0de79b03f3a9016fe0f71e8167db33748d73426a91f80336d1543be592d7ce5686ed10aea58c47e6ae7850f2a721c2fbd607e79faeca33c529e6b4f03a4afb8c9b03c5a94cd5e80bd0d6fc29ff3bc9ae3fba105e1a9d95f944928acadd6f9e512c4257e5a5107540b0104fb71290dcb90e62e0ff51648a36d91bab3e797e7b2309c7138af733769be539026c00d73f71e6c9fc7f99bef90d8e88819f37570ab36cc1b459abb88b7eabdd0e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0f0974eb37bea7c578f65e0ace146885edb83a78f7f5ae95e72a8194085a84ba0a06ebb98f53dd851411042fbaa7e3890c408eb02646f875b8e344a088f182028c202f9023b0182028f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b192be21af03104f15f698f408b92e792e97ac423bbc02e155eabb9e57f7ef5e777e86856ddec6369e6ac57dd3c7f9a3036a68642a2806f383ce9e773e79bdfe72effb8e3ad39dd45b385949aaf317896b146f8b2611470623acf370ef5634258ff0586c654c72f961025bfaa62fef509077af2d646ccb51f70f8d002a6f80bc74f248a910747a8e9eb820a3e41030a74a5c855ecf46f86dc3c7a59e806e65db57195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a082d10bf9ad048e149f86b40d651716dc575c6e432dd33d65b0827288ade32b12a02008c069232d0f367e5d4f3fa64c5191029cc0a169107fef70331b552225283902f9027a0137849502f9008504dc3b2a048309c71194f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88012dfb0cb5e88000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b77da39b06700604f523119bd39f568578f77ccc72088e81bc722cae56ce8cd74c5f21cd8516cae6f90935772532a1a0e8ff6e33be48caafd42d1099c75d4a1cc01f61c56d5e9b2b79da5bf140fc55961d3461d111d360b7cecc4ccd0f9e3049f483339e45ab04599c7014877befcb5ee8e104dbed25ade1f8f3fb5d4f30d8845a2a5aad360a307d5930a4ee4c6439586eb0878524380d9f92982536e1531b5059a79ca6f5b4a75edcc3eb4f5e0cd734ae0b06dca6f0e4b95ee9076cb4028b634807945d7130a37d08e2f6c812321d3c7b9b9196c153b32a4653efd3e98b99a8cc49b7ac174619d63a74f86cc044e6d9556ec1756f43a328339e0259ca88389d559fdebc1c39ad3128408e4db0d31128419114442f0a4b7310299e7265e628d02580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a084802fa9028a9ffda1c04ef8ea5785c9a555f5e98ed9e066595dffeac84e2f11a04c1d0aeb6ff3363cea419045fd34954e5ec9a3333f9dc7bccf61c76ccf99d6b302f9023b01820120849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3bc11602583ea1e8bce07d80cef2263c106604925949cfff4d34905370b679bcc0ee7e9ca63710a4e4f7c23dd3a253bdb7a947f63f3dca5c2bcfe2e92c76a2ef84ab0613cb4f41e87211826ec6c92e1b737a990b879c6647c1035cb76ea886cbdd0ab522f6aedfcbc363c0e3286f3994b4b479a42c313e1c18da47923608bd8a06ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0bc321e25f8cb3642f452c856e381d2c812e52e8eaafa363ab076205c254a3467a015d3a1e7d44b818fe33fc73c2c683ff3ffd3fc24dbdc77863da5a304973832bf02f9021b01820242849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ac59f4f2995f6d588b90f13e540db16b42e3b076cd9adf48fdb8db2032b3cd072d09efe4697ab684e6f23c9b25256c888b6361ae132a870919c84b8f8159fd37658455ca6cc651f761854d33956ca947cfd79685afac2be6ae32a4ff488575c8dda2e154e736467bb805327a0d140d616f3ebb696172c0154db5c3258de5d90e5785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a075138cfc203596c94dd977ed1908c4f3212850541c8e9a2aae75424705a16e50a062cc6a08137356a9b2fa5e395121ef0311992d3b00e02185b9f5728003806a9702f902390108849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1e0effbeaaf8ba98a40ac381d452166279b828ff7b90308ac4fa2ad457997ab82f505b7ddedbf41636e46b5d284b4c2d74e8144df42f051e57ecdd4d7f76c5fa43d9140cb52d57bbdca10e423ec665012fd616959311e3f04e7db9acff9a9677a339276aa6533a11ba146862d6531fc5eabf801db09512a75f91a040303b5ec89ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a060184085bdaa3a53f80bfb450e4db8440febe9e4db096d09364506a2e0ac332ea01f0340a8e64668e837b9773ce1fc587aa9e3eb51108575c63d07cd7797c4851602f902190151849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a8f95379893e1e544874c9af7352ab8d23a4a613d1328f0952f87aa00685e08385995dc38d81db6576107b1165a2c9ec54e45da5b959ffcfa0345c288bb826605e8e63c8a5b994d2a2f50bace168e2305472e12c8d87fbac40a913f00a235b4825d88d7fd2b74ccea50449ad3d5dd2baa127ad9c2a856eb50e33387d689fc2d4978f72220d7b7561b7edac075fc4b95c418f9cbba0c5cbfb7332333436cd3a6866c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0404336da3e63daba9642c41a2d26d955067746a9778520da4487359aa3b799e4a05a57c7292c534b7b8a222bc7052fd96a686ea79ca419b792c6a412aa853bfe0602f9021a018197849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ab21226e3c37482fe1f91559edff3baae40232e8bc83e135fbcbd176b3f009711139dea2b6989b59d211ba65a8211521e49cc87c2eaffa6910bc5e904291c43050ec2ecaa5b4decfc7e9a38ebec4a393a8f65201cec3eae362fba0443cc6ef3b892c41e6f679c59d57c7581eef926e696483ec17096750a2c3afa8ab7710596637d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a03bc093607adf861fedf9b1aca5a5fc7e9861d417fe4d78f59b949c3fb8d0db26a01d67d8ffd86d8815cab990f5815ed8a602e7f95ce434686b0ac98d989cc7bd6302f9023a0181f0849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd2b7fb55765a501a4710680a4795eb8a01c24982b604bdab082ff5c02ea70897b7f73103a1adbb8f5bab0cc68cba212dd9813caf38481af11cb574b92a9ebe0898ace2a74d0456126d1ad502c2de95af6b8eab564e6559fe8e9f3d1de106d6297cfd35718e2c586ff9a3fee7bead78c979e84815e678e9f0833f8782898c03fc228b2bb2d8a4db141f93f7373bfeb3ada6c15c980958d2bf5fab8a12e721de77041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0150a03b0516b4d0ad0dec2741983111bb5fd62844695a486317e992f3af29754a06f849d344f59948770db4eada4792f4bad0446033d2a0426d88a0b1c0f10af1002f9027a010c849502f9008504dc3b2a04830c1b1e94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8801a6c5de98458000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bdd093885259c841906b374ab78dc35c8df0f79421494be35cb4f8bcc7166f4c03eccf109238d61e8c7a56af992a4fec84a8cad548e0cb781e6725635d6ae72c46515dbb867f6bd1be0f59b01c41c07885ea470503a55947c6fd33acd464df0f7efcd1056603d54d8d6c2c5b6aa2cdabb33a647aa45f6124f591e9229c6bcf6fcf259d00079dcafd62312e89d4a187eef89e7a1524f6dd0a0f56cc4389285cec3f97f469d19b96fe2d0a5a376f0c301d6ad73e09f0cb231b8e651a000542f655a99b39153d3a57af32bc15af4a9877513615fd178d4fd13c7f10b37e9e7f19cad2fe2469d715f1ebb609042d032d33b50954dacf341820702a87e360fb2f411c3b82cc07d0dfe58215e406ad5d7f66358ed9f78cb30a738d01574d8a1eb14f63c0b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a0b6829e905230aca49215aa176ff1b92cc6d7ba84f1800fa829ed26cc3b81e905a034e9ab04fc705c9d1526e50db43c25f21fcee00bdb44c1c76e39952ffa9e3aad02f90239012e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b9d9738ac6120e944eac178a41fab5b252b344476c6fcca672ec855d87f1f42395ada051bd4e2d99dc71b21c0a2665805d75e2ad9204c59542b65ab8a1ca71aa0a131e56abc67a32704e81a98b22d65a6276d2f9a8a03e325a0023c567bdd37cfc4c24f71a01124f80059778e0bd53eca71672f38ad5fb96a5b7c204d7497eff44f248a910747a8e9eb820a3e41030a74a5c855ecf46f86dc3c7a59e806e65db57195d111bb22b6eae6d7433f44fd3ea2e2c4e9695bf742d66309e25cb78c1de5c71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a071f8a808f043b3656740549cdab840623112a13661dedeadca10bd4eb8b8491ca015a2ab03256714732ed844a83febc459a5a2311cabb8488fc606bbddc25c98e202f902390110849502f9008505584dc0fc830536d494f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b873c6568f12e8000b901c4666c00aa00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009ed7bc36201af9831e4109b2e6ce7e1493ce77aff577696c33d8ffff15f9dcf8842028f4240045105605fbb13aa15f5f947efcde8bdea0344e203e3398428b88e12db2312bad4e1522b05ee87376c7d0423514c01d596d9fc711bbda3820948b86095f09fac1750a1299afd7756276b3c80164724261e191a286646bb11e788c487ed5aea3957d1025ab4bc6e0ad39d08c682797bd722f06c23d4bb7b7c572243ae1a9cca5c30e523b9d83f240dd6a0998bdda129161fd1ad97116058c11333295ee729d1fbc588c4c7c999c4766ad87c8480fe07dc39896712ab7d96a8917c1ff5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a0c4a3012666544725c75a2f7448c808c786c488d7ec9ee571422dbf08eab37253a0503cb918fb568a42ddf25f07566d7d82f1aa45c587e16752d92819149152324c02f9023b01820191849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb934d3848746045f8eb77f7f2fa5a85a26fe5ee3b85c3f390dd6020bf9d880d2a9eeaf286a1b3c42854a642ed1b42d38f6d5c47d5e3ca5d9d1a83eef4edc5d01562f0398d9622d9871ca546c9bc04fd3e0284fbf1d3e94e23b25d33908a3763b22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0fe4d1ac3270a64e8209aed0225c974b3f43cd355f5450b347e9ce74ff0d1c80fa04af09b96678fa3bde5ea22eff7976847b07d35b16ec7a9742c827ef03901328002f902390181c7849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5319209db727a8495daf464b1b815b6fc4123d4bc203777eb7f69000eca2ff6ce9b9dec06f69dfbd8e4d0fb4f2de4337ac0959520b4fc922594291cc6bd4d8f85488786bf24a5c5d65828f0e06053bbc0996b736deb973aeeb23128bb88a104cf2ec770485d1e71d2dc41e25ac2456b254fde26eee6dcf840088fcee5fe4436e10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc0809fc9dbc9ebb3452f1532532188a80b0da1466fce6e55faef3fc7fc3e6859648ca0393acc8e46da3886c3d8ab6e3d93d98e107ab4ec8bf26b5c43c9f3ad0ed3bcd702f902390140849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf68b9be164945a666fe9793d30608f8ee3b7682d0f682e315e79bb9bd3df1713b6fa8af49a6e6a212f713126b5d571d8bb1329725f4ad32b9cfe44c591c68edfa4ec0a46ff472ddbb9141ac68bf1c628d9e46b79e1c4d6127710ab0b4aae94f2ed0b910363c1cb92eb8bef7ab5a06b234ad901e11395512d06a6f436276a2fbbd52ddb6ab5cb993ec2fa6565b6acb4a3b2be53c89889879b842a760e955428b1713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0cda9c23e9d7f3de188c87c56244fb9c6a6eff4fd080eeca282136b978aff0e22a0232b40efe9022f87e91c1ebbbcdf55ab154f2d34370c3ff488efe7292290a2b002f901fa0181e7849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009351c5292de890b0facc5fa47f9938926f413801f89aa99b6f5f59a74efe64a0b59706ce824bdc1e4eac690978c3d7d3e1c3e634f0619768fbc5c74c3fb9ef9efae950b037ec9cc2893a196a0c810ad707bd7c9c8e864d9c2106f2df0fd83998299f9964d85040a17ce86723df848a5d64c69a5125c129da9f5b6a2660d8ffb24c2ddb7742c518e54f59cb8da916bfb3a1dc82106a1494f7342262c6011ef8bc7b4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a07a0cd0ee4cbb596d86e0afab290833e5a2fba1cb87602ee19403b1dfe5e1571ea04f7be63df987dbd8ff75ab5904428546b1f435e5d74d3bad73f0fca8c5aec26e02f9023b01820189849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfbf0ad04c6fccb6a29b0738584ed3e6ea1663a7bbe8aa00c508a63f8f279d49a727b3eada6738b17c9859fb57e105bda160625bd5cc7b2cb16f9190fd90a0d61b8c2d912ca68c1667a783dea6a8b6f663a83e7de3a5141c90624c3d78bb674c23c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07ac8fba7fa155cede49fd2363e1079770cd98f140376c293bcdec38a2409eeeda034aeed13a0268a6772d056d7f2b66ffea08a4d1aea9478d39090f0ee465a22cd02f902390122849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bccb917dab0143e188980116c7a05385e7ccf1eff9950d1b6776155473e896d8010627d473a34792965a02c9e7c4c5712bd1d0a44045ded264f8bfe09d661ed6bb68fa861bb27e3c3399c8619ee1a6f852d98931285684283e2aeefe7797b2eaf0e3f9ff8fe75329deb87f104175beb3ed4b66bc012c401d52bb97b16679f9872b5519ca5ce8fdb54347e86127447cd1be7aed6e72f53e763ea703a78c9fa1df6ad846c4b85e9b0b88abfec7daf9b81d6d43d2fddd1fb323e1d8ab86d248a15a70a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a01c4900962deec1aec84926817e8f8493ab6164de562bfb576584b538e66c3a31a0604dc7da2bb010db10bd1175889c413aa02774c3c0cf463993f92699d94c9cdb02f902390156849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfc90e0f154815f8a29b179473b6d316b83162c600e0bcf697c8ae0b007705a204be1af990f7da72d6d4c11d2120eaae40397087c5b38e9dadedd8eb81c2727b69012c5df556034a8971588cb55eed2a1ee7a2f7e37e6692714f6d1e69b393893666dce4fcf2dce3d119683aadeb1ea17923ba5b074391c1491f124cadfe4b30ca443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0948fd52b3bb4082ed696bb68b36743496939723fdfca99da14fa78a37eb5c1c3a02f2dc0198ccaff741861c4ed494de5137f37f1c0dccf80c9dc0086bfb971014a02f902190118849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a8f8c55c60f1465e17cf0dac288a4ddee932c230befba393a6674d981c7fd809f920f8327edcf720fcd5044e0d802f6d5b0195deb3c23fe4c56eb007c601c074a61feec1dfa208108f700f4ceea1a55701ad87f2f8acb3a2d3d79143df7b1539bff5788af8ab01098f2cc2e8b1892fa4d883cfb0933cdaf370293de3706cda345ba63c0fdcdf7e22d3e03dd751a495249339c2dababf333a1bc91f55cf6fe5c84f2b47b4054697932573645ed95fecb78e83ad418cbe402f3f956712ce9a9e4f7129106175d04ef2a2bc0df351e0cb830acfd4971f7d420775d642efed0aca938ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0a5982f188c00f6fe238ca124447787cec83059eb5dc457d67034b85a0680cefca05306e8cef3b1e361b586c12d5a5d9b7b0d437f47a1c16419c4f9f99e1c37429402f901fb01820150849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009d81502470ff9c963887cb3ccea7b5acfad742c83e857c7e311063e7da391d9bebdab5e17a0b1bf73cdd6810a02572433be3297e1cca118d50b0578edcf8750864d074d7c288e87c7c83ac94218e37c893dfb593f959781d38ab7da5c144a1b24379c68415c9beac8697de0b6e09ecdeb979ed4dd950db7cea20f0ec251cc3c7fed220f04e94ab022c296ae9584d24eb79a4ba3b814090b8de476fac2b8526ce49e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a051ddf4512ca6ac4eefeeb4371fc6e22ecaaae0568bf5299d46234b271f5cf6e9a01e76ee6ff7cbf9955d26ec76f3c11f13c40db49f3b8db6f7888446abdb4e643502f870011c849502f9008504dc3b2a048305201494f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a027402e479c09139aa643cf629030dca513341df7f8aed926a4671a94305be9e3a01d0efe795b4f363453a17010972b1dc989af4595253f47764312ec92306ae65402f9023a0181c2849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5ea3874fe4f38f62b587b6a387ba3ac7e5a8459c1eef220a048b114fe536a3fb7ecd4f21d4d14a5495dadb3013699abc4b23cc362804c9b0768006aca4fbabd2c9987d969ed01cd8dd7208d69278752fae3eba6623cf0c331b9bdea857ade7ffc60dee45982f80139634eb48ef29ed510cef4194d126df3067e2e592b00ef4b381187fe6585a6e1ed377fa861ed2d0615b0fbe526edcdc9bed9e83a78efbf9664f3c100a34a9d04f39f150dc0c7a2479e84bc1da4d18e2bf86793f4743a11ed3990b76c3caa38cc2e3686d9b8a1e17a60d7bcb6b1cdbcbe95aacb3a51c6ee097ac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a2d046417875b58e1e8e4018f746e2da1ccaa98ce6ff56a487f0ab617efd444fa04133041d67cd4e556610d0bf0ad31ec857084fdb332d942275edca83bc0b6d8c02f9023b018201d0849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b736dbcfa20cdb2287a9808ec7657b2829ba11837922d92cc4d9cf449ad132d52257a4b7defb1f68025d64911aba996240913d51dd59424fff1a9b5ff940fccaf8668f21a2b234d57bbba47e5900dff795a5171ad8b749533061769f9c69115d47eebf675830bd5eef572fdcc127dea194ac442b769290c529437c64309b792d220995c00279da55b3a30d1c36e178eabd25d8d11a07f7712acf5ff67bf8286d56efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0494d8fdb50d1d6db5c0106668bd8b3c679803c8022b8b5397fbfb535d88751e2a04f72f64424dba8d610462aebef88df50f53be5f0a1ba2b53ab7e71317807abd302f90239014e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf6c4ae558ea247e2d39c65d9504d2be857558c9e65a60d85e0669d3eabfb7fb6d6a068bc71fd59a0cc303c5361a41df57cd13288543fdcef1a77afeb8efb3b8e43d9140cb52d57bbdca10e423ec665012fd616959311e3f04e7db9acff9a9677a339276aa6533a11ba146862d6531fc5eabf801db09512a75f91a040303b5ec89ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a008fdd77e6a8de0efa8572e06c22b4d752bdfa1d570ceddecd2e3b04f75740402a04d4b87f2fbd7d9d82a9e6643f312bb442b021b242f4196414104c1221c3a862302f9027a0127849502f9008505584dc0fc831ad24c94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8804b7ec32d7a20000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b524e6ac95d0f43dc896b4d4f29f6ff526a499658c0cf540957ae214378a346de08f74729278eb26028e28268641bbbe48d5a9f972ce14b57ceccd9853dfaddf8e75340e2d70f4554b36e06e8005e03e95923b326b6637618c83855fecb80f93b3e765426b5d9fec869098c107879201cfcf9b46b720c5e85a5900ca1cf34a08fd2b863cd9579699eb73ffe847b0b0ee2413ad8c50cf5aeb80ba2bc8d6ac6de5824f2c26fb0812e410cbe97f2a38f9ccdf5ab072620536597f08b6359d4eb25200e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0862aa3a25af69faa7f8aaf4fca6b5649d326616ffa20063e63d5db19d7c31826a06d1354c38f2ae3ad87dd2ce1299ddd7f5b0dac27d9e1b97e2fdb71b7a9071ad302f9023a0181bd849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6450ed43c962b62f21882083dc083ea34129b53516895cc878e9abb8f4c7f995726803b18ca30fae8c6d31f025acbc2ac026907d60b7bbd183337fe4c58a2a0309671924bd7d9303eb8d90875a726aa2335f1a0f5100e828c9fbd284ee480fe39ba171c6b404809e29f17bbded432e8fa50ed36a8081333b1061d9de19be10aeb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03b614bb2ab9d417dda8626399e8383e0d2ddcaf1c1e1508d4c8bbb6f90a35659a02977592eb5d9e77e00a80e74cf0947c71489d1fe0808aec5e9f4be49bfd2c57902f902390129849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b509c479da1cfdf235cae03cb0b0d3f65eb4f0b81e9d5f9bf176e89ddfe0205fb71afccf5859da1ec66ed180067d01b1bff1b37177ca54c76134ef14358c3b2b20e7d13802b59b72ff9369a97c88269d8dce4974e7410ee6abc7b6ed84f3d711c84325a1d81ae2f3fd2bdf0229e3a0dd50c1d144af422ec4a8d45fff39dd25e503bb3c4fe085120402b6902790224fd459e47fa185d821e298e45366306a5b3bc4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0a411715b0310d63c2e2015955c50beddd02bb63a71bd95cb381bddcb42103eeaa03822d93e3a67994ce143e1acdffa1692610f2c497c8b5fd891d93e8f796e5a9002f902790108849502f9008505584dc0fc8307942c94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b87b5303ad38b8000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b3fc4ec8ed26a4da806635e13034c02e58eded96abb996b9c378bbd12dfe85885b899b30633e5a59c79eaec9be41238fd5938fedb5b26643c5a08504f3142d6511f65c1cda86ab20ac16bff32bfc16a23bd568ded29eea98811c181003a7183b1ebf64a9cc708236f9ffbb791461ca7d77ffa935b24505182f93c7e67f8713d70f6e010e4b636435cfd1e5b081a8db33357d2961259e7cca951e9cdaf9f907c98ebfce73347b9c0d0ed797e0607094760566e323866eed59825e458446db87d96807945d7130a37d08e2f6c812321d3c7b9b9196c153b32a4653efd3e98b99a8cc49b7ac174619d63a74f86cc044e6d9556ec1756f43a328339e0259ca88389d559fdebc1c39ad3128408e4db0d31128419114442f0a4b7310299e7265e628d02580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0acda7974f1255551b94a6edbb072026a139576fb988acb7f76c1ff62b4229933a02c244fc0bdc72164dfe43293d23e3908689dd3bf54af36936282a44fe6177f4302f901f9015a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009bab7ed09844354aaf2b5ecefc5b3fed83b28aabdab55b1dad2b333719b0753f4bbb4fc83a32450c0927d7845a17aee2da2b07a8d2fe5a8695e4615ddcf64202dfd536448de02a1fee53b81a5318442e9f21ed98a1618941e4ae9a5136a70d0e33df3d1bbaeba880bb2bc076be02a1f7fa95773e25bad6614a5e98eab106fe498d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0eb134968f04e38acda7583516443b4b3ce49d5fc59461ffda78ce403c4bbfbf7a0438230355f83ca37c2bb20dd210a7c879f48b2d934110c88bb46c8683efe0f9502f902390156849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0be536cca05d0ec8beea5909b8db5534336be4b122f8ae2d7dee8ca651eb86afb6fa8af49a6e6a212f713126b5d571d8bb1329725f4ad32b9cfe44c591c68edfa4ec0a46ff472ddbb9141ac68bf1c628d9e46b79e1c4d6127710ab0b4aae94f2ed0b910363c1cb92eb8bef7ab5a06b234ad901e11395512d06a6f436276a2fbbd52ddb6ab5cb993ec2fa6565b6acb4a3b2be53c89889879b842a760e955428b1713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a026e25f11ea30f8a5c29eb876eeac9627f4a5778341a1205bc0f652850d6cec42a008abe8404931508e96ee78d5c366a2eccbfff587afa41470eb1c7dd72110bd9602f9023a018188849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b59761a3fc7b062d7e4d0bb51ce3851ce409009fe6f3e76f00783444bd32d9fc1b63d4d4ae6f08bc5d0c6101a7f3e2f56cadebc9ad4e5922c98389e43a1b93cc3266492525f26594a7c067520bbabf46f290b737fab684e8225ae40285821205eeb4fe1a9535342be73740c26220f0516ad12b3493db131b40a035c35e1cd14867bdd4f986da04a30804d517d664066aba62bbdb168a98dd71cd421edac215be7699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05f1de1956f80dab0d9a895ef0470bd5a39c9c72a69b8abe82fbf6514a8490ab5a070b548005ad200d8d01b845ae2fedf6a7065f7e50a5b785b8cab66212cfbe22702f902390172849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf778df556336aa96bf90cd0bcc1db5b782067c734acdbb00baefe0be0c4436dadb89038ed2e4be4ff0a7bd5b26a8d6b9442e2f0cea03340a59ab725fda6a0002887ff3b26b70081e49de2b25e88b46087ecc29920eca9d892993071629981a113c0305a9a15f0a9def183e235512e7809d095ba5b9ba9f206885ca77a34e9a139c145f1a961634e373c2ac40dd183321dd17dbcb7435a0f7ba5c37f58120731c368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0edfc55aa8960aa6b3b74a27c7d75eadbb8fafce5f2ea32f99a22195dc69911a6a05bd8278b7f3de581348aceb5b80f6913dbf6076c1c3fb15b0c727592eccb202e02f9021b01820166849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000adee82f3eca686a45deb0428e255230b88713436d28f81bc58cc564de8024f7f8a4afb97385d60be26fb20508b005b79f196600e207dd8020fee2b3e4800cd9d95aa826e3c73d97b88e2619248158f4a463d2464bb5fe08f8d6b8f1f7e3e42b2e9467c640a6e37406a471a0963268dad95dd69341812624eff05606d06e436423785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a06fc35001132e137c9fdb90a709d08a3cfad8a9443c857d4c1eccae93c21a7a0da07b29f07ada192801b1d8657cea7c2a5d2cd90dd5427a206171c203f78f8335bd02f902390140849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1311c79574584689df4b57ec9745e80a6febfc9ff45e46fd69737674759e7b66cbea32e7ceec669130e2b000490e0c91a766d3f479ae3b93aedb7360b405a9178189793f50123fdf85a781a87903dc36d53afb3eeb845913b10b17a98f3db77db18d55a2a32b5da789825058e61e42ce64907345e80c9f43440992add1ca403fc2430025cf245b31b5c66f6eda28c3ea590926d25dfa31ae73b28855b3df709ce488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07f629eecbbc38fe541fa28c7e531f4d463d3c7bea79e50c80bc171e17c9144daa0099090aa3eaabff4a0fde909502146b9a1599dba4fcddc82c7d41fd8707582bd02f9023a010c849502f9008505584dc0fc83261b0e94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b880713e24c43730000b901c4666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000098f171a2febf7c27179dcc6cf3fe755d18455bcad44bbe255826427abf25a2c15a68a6d65c9a80a9e55912568c7361a0789af1a8614b2ec305d26598939d3d0ffca00a0336a48f0e9cfb42452bd8e4883bbf35daff3eacbf183f457d435a9b440881b41ac98715932fed6bb536e9fecce2b6fd626f2eb40b528f87877c61ea4f187ed5aea3957d1025ab4bc6e0ad39d08c682797bd722f06c23d4bb7b7c572243ae1a9cca5c30e523b9d83f240dd6a0998bdda129161fd1ad97116058c11333295ee729d1fbc588c4c7c999c4766ad87c8480fe07dc39896712ab7d96a8917c1ff5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a050fb1adb94abeca0024eb9ba778f1d916403cf2b6365ed2c3c960a02e2c52e77a05588ca7c5664e33c92695919fb514471cbf408bd58384262f1ab98adf0504c8102f901f90101849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000923f490eb23ddd66f6862187a400e492e7bba2ff805244aefd7b8e3e56784c34125af9e96b06640036ddd78c1e6d0ec30f3a763623ac343ea983b20871627af317ae4e6b3a1bb53f784c63e3a58c743e1f18732bedfe56436c1e38885759ba26642bdba744a1341265247401d61b2042a3bc73c956865e4d79d5dc88ad3d4bc40d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a049472a60cc620cd7957b1a7e94985d16bec210815e6c94d9b7cd944b71e6bfcfa04a925123d4b79586b61cc5bbd1a8c520224f8217c5992fd6145da251e603185602f8700104849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a0d08259f90ed8b8699e39371303d62780104b2ab36186619d8c99b04e1c841b44a0694e444813402c3b1e23f1b9e3c9740741436c774e5f635a30a521339902b3bd02f902390118849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc52ade6b9ebf3f6ad99e8d215306e1c1f532e0322e4eb0cd5538305c024641dd4482189726d71797dc557529bc10b64e528d3ec056810223c968ba2e13c982e8afd03d070cef8f63156e3eac534f80d289a839519b83dee0cff57b1de6cfc17eb8585a5c614171d8d03e5e60e70694ef9790951848c59c2a758c9853c82996c60f157a3d5a8bafe568e0c270de02c72665df09162a5e9547ccac29b07e651a10cba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a00f1c773eeafdfa5972430c97f2e87e83f34cf99ce7b8c731467c15911593b2dfa020e575db1ca446556ca5d043aabab6e1ce2b9d20213fa4feabc1c8886a3ec6ee02f8700101849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a0e333f05c7bf6e3b07395d349f3c715b2323f6c14b1efb04d24c665ea10cc7cfca02413561e3cba534f48194c8fa21f96ac0c7698f1ec5277c3539b5b90ca2a7ee502f901f9014c849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000095967323982be49005b549d1db469f9b7f7f119a804ab53e6b8cfa32484ad604cea070676e81dbecfae1b4b1b57206e52e05df07fe86ad9c0e15cf2d21b4810c1b8c4aad4c362f530de98c8a9526ab71fed8ae6275787d36194afc71c9b119b2898866891ba30af5abbf95d3d9260bd7855e4c709dbbd89aa411cc91ccf95840a26a7da6f0e1172722ee464d05c66168d366100b630a9d7cd0476a6cfac2dd7d0f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a02238008da3f678e80737a79f64868be874c25bc8c3727c158ec443901f58573ba002b22c22b3f57e84b5cde2afc320166749b0006fdd2d3f55fd06252a17afa1d202f902390151849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4ed34f87037caff8506338cb74a5f49c70e74a51639a928ac147877ca27f3e64d4c5c0a26c55742d2f032abddbc0279611b8e7ccf187f092394bb11119105873be206a9ea50adff84152710d16ee2d0d89c690b6fbe4ce3638addf8988bfc8bf778cf8aa1828d5886bc232489c6bccb860d46a5104d76fefc2d676960131e50fb1e942ea83388a599e38673067c354f8610912cea7ce976c11d48ca902a8212cde5344c7ec1b2dcf94654052e24c8a40a725a9eab591376c8142f4dc6e5e7874286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0f1fb52f9fba5c236f495b00a4b1c2b9ef8445cb4e7698f98a0f26befd0a6a4a9a01a036f90da4836edd3d3268e74a26d6f2e365dbb98c7524d6bda3efd056ccb3f02f9023a018186849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bf248ce01cfa487aa5848e5ac064e27a9d0203e54164b21c39070cd8d82a382848340e1645a4d5e2e8fae3b55bb7779a6b8ea7e2348ea2ac567eba50d46a282e17d98660ee87c3eb44feed09be1f249cc11b94e2a31f0652f08d6b068be37e65f00f893cc4f4ed5b32f6bfad609c8f060048194d408d07223fa4b17ba45d4e6b76f8ee6aca360d4cc0b79651c7c4294544080e7c14c28b91bdf155de019bdec5663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07a49e3b934dc406d33377b002f52e12e40346cf81db66e2ed7d5a4dfa9eafad9a06215be7d0fd5a4a8c55c68aad1bd29f82cd85e45e077d1231c86b38ca35082b702f90239011b849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b839b9ebd68fdd6e736780b1774867958d8d4d2eac0a207cc267e729d59976c8bc28040eb79a7c307f694cfdb4661dbd401b6b9a462e3ae36c6a198309b08cd4b9012a7f8e1bd49fda7f0f6c51d886769e22a185e2eb931f7abc6957aae2c796338034969baf1d1e8c9c022fffc490fb3802d1d1ea679f5f37649c1c224097616ad65cd20966275313620654e2c8f63b64a7b93a9e40ef5c911085942e32b31b8e488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0a28e65feb1183956f468144553fee27e3f0f57a3c742884e81bd4bbdab894184a01d9dded94c9e9769e9bcca78da0fbb862eae6b07d52a7e1133d86a4178bf4e8d02f9021b01820128849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a9a509b4f18edde75a26e0a8d7f9094c20dc29c12676068ab89bd95b12ed9f23e524bb2fe6dab20647015103bc58f58d5df9086495531f44b9cb12f5173b59b4fcf355d0cc68998dec60b8edb06d3c0ffac9c02616aa3fb323b39643a927960b7e8e6a9ec934b7159150528e2eaf915105561956da23ade19970cebf849b88211f0c2dafa306040fa2e8a7543fb78dc27bef039464182c5d4ef0f4932f43d03826c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0f5a72316e5706fb06bde178c0d5712e3bef8101a6b1b5a5f239f2f854fb0311ca06f3c0d6f988422bece5d273268309780b324475398e94c50523f0d190cc7a68902f902190136849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ae959ecee197642ea7d471c5ac06803dec1e3fe484506d7acf10edba51764146870d2c8c5930027dba224208ebd8187d460213302b63a1ad36bf4305744d5bfb4fe1aecf0628fe674ae6fe488996ea79cfabc606fb2ac788bf8a76ddbd479935172140766b6043d87467ef1106f42e726a9705a4f0c3448ded17ab9c2e090733523975ade81aeb4467ee3d0584113a70343f675b0adc969dca2878343fe459c854e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a092750f96c4ce786f36e871b18d0fa06c6e025ecda9af809da6e9c43bef9457c8a06d52576daf3a8b7c8cb74cde25dab367238f9a93cbe2c63c5552cbb3c1d1d3d502f901fb01820195849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009896f2f3a7674dcaff25ce15c5a6ede8afd0346fb77359c897e97f9e162743013ef248224f56d6fb586a53cc88c48937c4c7d1c99178795ec7a2a33270d6a2708ab096e3484ee818fdc65b9622c337185264097284b3ce8fa4ded216075d017b2145d0284bbb5ff2ece72fdd4f2b20d42592616380af3ff67a5447f3efea78e537aff8cfbd92504b0719548d30b0853109a0defcf494e1d8995abfef7a4f90e269e0e6d9f8276753500114d8a5af3b36b875e5bc835dfa3671f71155bf7574694f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0d8c845cd0cecddd93cad2f277903912291b62b47efaccf1ec973e1910eb35fe7a00f6dbf31efce1ab33723dc9f5896e0d027cd41843918b06a570ae095ff01941802f902390146849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8661e6c57cf13a2b0f83b6f9d7bdde779f5bb071016d5339cdf51f83000f57e29fd3d94b10a0ff4867faa4003b189a34c85d92c35e28c63ef271ed42c8f679058c96706067d9a7b04ce7142497de5963519f45cf93c9fc25fd27444aefbdf0d9dd0ab522f6aedfcbc363c0e3286f3994b4b479a42c313e1c18da47923608bd8a06ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a08a29b1df1b1f4d47f437ba897062bed50dbfb8713ac54981869e67f34830caf3a034ffdf248d1cf4c2d549dcbc12a540041a5e626b581a4119ab07faa475384f2902f90219010a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000aed1526130c37fe1d9386713b7b114d4150d2a040342512ec9ccfbed80b9bd7a0849c7ae8ce68c47c684e8620b0337ca930c0701f18c3f11ed4ab61d2e2ef3ed20919477d74c1d7550eeff3a99ff35bd10fd7765d7adabf1cbaff7d82c75a9ff0931124e7b4fb045211ec89ee9447aeccbfd85801214fc4467ff39d2fe586259cc228998f83c3b0943263f8ae8c204a222eadf53e2e3e2cedbce275343bca06ada448110f2091d7638e548db2fb79d2a7a3856581d873bbacda0c0517f9390bb1edbf73ba52d75dafc0dba73303b8cc428ca1329021edc3675720c12464219f17ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a09e8984485d8904be29cecf30966a2c7872937a76588afd5ea460680b49dae733a07250bff4edc0f516246ecdbcee0814002844a20cc47df7bca9286cca6974a1d302f90239017b849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4bc96c18e934d3b37b5cf20a2aa0f5cd624b76d48f3fcc1775b749ee4cf89f8861f64cd100cc7daae1b2de215970a40cdfa7ac34cf7ceff6220d1b34530daa8ba28b26e71464a3fbf0ca71a9d56c70e2ca6e230c5262e48154ba316f9449de8700b3cb6f3a3085d5ebdd919fb066b157039c7007696fbd595624218ab6b8559fe0b04471e38d438279becf0fc1aab239877a95f1629f992c2dc289eac8dc4760a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0b41a2768fb045f150c391d42de3dbbebe78806caf1fbda684d4c35417f25c32ba03c93fb91a8851f17397497c45eecb2c5afa8b4623378dc53206f696ff68a1c1c02f9023b01820154849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b05e5958385315e92e380504f4917331ac6728b96ecb59bccfeaea853fdedbeb009dc977e1819e9ad7b51a017ec0920a9e2762990705d31ffa0f1a534358ff00ae89ae0bcdcf8e426103f8b533c61f518bab94c603cf5405f48fbbe733cb7c3e3ffda629977354c31eec661b208d7ae2dfe36a7eed146ab62f714fa519ac2fa9f20995c00279da55b3a30d1c36e178eabd25d8d11a07f7712acf5ff67bf8286d56efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a072ee954f1fbd5c9eec75d5439e9e26b244a5c2d1e6602f0437bab551383dec24a021784554b0572865a93b1ce36ce7f0036e6e84e5196134fb06ff9794a85865ea02f9023a018195849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b188382a0f8b8a26665ee117e2068f7a4b8e4db005232fa66debfdbedea2e91f3013bb8eb3e5a9968f8ac6119e72e8241b900a9b19f621ddc2a185b85cecf462d7081e2de01d1009b4f9f059e4962e25a24345d826781ff49fb66bb37c92408a5cc27ab0f6a33b96dafacd306bd846cedb44ed82f83c88e936c0e0b57c9ac6e4676ae7090546b9b900712031e17f61e88b2e890601fca5cf23e4f2cca9a8bff62a4a8f898ead64765bb8edb3ec5b20f1b11b97dda9335cffd26f8bdcb63b46bb50a26c2c2ea9612e28d0aa9296f80336adcd076167b3fc1705448942052a9852eac5912b920cfe151d881ecdfbd81e708a6fc74fa4215f00e3511a5ac0f229adafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0a88da5c2f4f5fdd154dbee033eaa526ca777c2d117af3aae5c90407fa1cc839ca02322b6c900df5573e528c3fee52bfb4cb3568fb3abcf80733e7a98d5d7f5e75c02f902390168849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0d08828da3b451ff48506bec0aa56083b7ae8d434df628582028e91b73e7f34a5b85bd0a8dc95e34b5a4d2dc272933cfa8a678202754716b9eca267e9ebb19604c8d914b9a598c3dc8e3319ed0cd63cb12dd82ec33e72d493a5b12ac4e9f18817eebf675830bd5eef572fdcc127dea194ac442b769290c529437c64309b792d220995c00279da55b3a30d1c36e178eabd25d8d11a07f7712acf5ff67bf8286d56efbea7d2d2578bae5493b49fb41af08c91de3e9cf196bf50d3b51a49e36aefe0815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0eb7e3f0ebf5d62518954a69228f3037a798923642e87b11bd53a4da98f691e3ba052b8cd41feecc347f2c20889faf4b5cc897e92233c1dc5e891335d33d0d917dd02f9021a018195849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ad207893211540d533608d502859464056f84adba1d44014fd11b4b6e649a40c4f642adfdfbcaac1ff4cc2cf39c7764cbba46f08a95dfab60e494cccdb1f63fdc8951400eaf551dda3ba916dccba7742f8634a39335b7db03a5c8988508c33c6ca4b09b3f6f27ceb5ccd8b90b73ce2ef6199907132ee96c2e518ff9a3f14ff0e4e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a023661fdfe8d72ef21339e31eefc462086922e37af9384267d45162cc45642985a0427ef02a363a2585e59a42cf9069bf0b26b5c07719245d615a99e76a3b93bbf402f9023a01819f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1edd981d61540d1900849710dce55ef7ad964107f1ea19cea3fa844d99270044a79e5653eefc8300c47758bdc1a74f1a8b1fbbf93b282ec0c8ed62331e6b91f46f1b1c964c50f29a2310a3864059850ae92f1344be7b4f6d7c62e882a29d822e6d4d9af745f27cf211a19fa48b97871fb09b98ecdc5bb9c1f417a44549b5aa973888260316e2ba5dd17da490f9c83b1a213b971b71d6f7032c601e799cf3c3e1a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0df163ad87d1b58587e5944a3f2733e7210b6c791d5d17467df92a4f1c1c5d3f0a06d801bbae254dc33fa4eeca7cfbeefa31ee436f6826d194abcaacc7313adb51c02f9021b018205bb849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a518bb2d6072ff208e712c84d1c296739e7f794118db976a9e1d425b63419c6c165d46e8fe50622b8da5171e53087706f2dae4bebc9d268fb3538527c9669e3eb90247a5d13af88db5834bcc5393da74a52b72162ba8e1d66fbf5bd86b97b4836da2e154e736467bb805327a0d140d616f3ebb696172c0154db5c3258de5d90e5785172ed95a0482469ac7a2e8f9ca7401e3e0c0a071191f2fc3014def9f2d0a84e8d984320f8a4ac96d98628cad8909074f97538c2fbaed8c12d0a045e7424af04d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a06d7a4c596869ae9ce3a4cd8de61b2228626b9156c53049f3123c5b3261516c01a07ca600df6570d17cf87cb90ab6a97e03e3af94653b73db92857e5f03aff0226302f9021a0181c4849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a4dd43a382bd01e7698278e33a3c6d2c3d41b4cf41c2084725f510b58b3f7b937b0bf5d1eca343426b7e040243d921e7a1e825c6a683cb7898bfc0222aadc8356cfc1efdcdd0a0c19a30dd4a7d006be80f6d35fa5366c85c786359fb59355b014d0fd9cf2238c6694f8c18daf5cb0b5a49d03c42f312bded35f8e663d340669fc7d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a02d2f2a1cbd1156d1a312410e423d96e472f62cfaf7820c5bcb2a6e50e848c2cba01998d1a97ca259e91c4ccad70289427a6c9b44ab657fd6259d45b801918155d402f9023b01820297849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6047f226e7be513c4cd5a36d9dd1f2d9616734f386bbd4d11528d62dc058268c2de506fbf7cfcf4061218f14d6de2fccc409aecdf4a627d96adac11060187ecd9e1869e7f0bb66f8dd85cf4cc76296db012afa883787b984d97a5a7b96c63669b5c0d57981397e009f796ac78aa78f15703ccf1873c532fe560eadc8ddeda6de886dbe84053c9654ee909e5116cd040a38429581726d6d2334965bad30c3a657de5344c7ec1b2dcf94654052e24c8a40a725a9eab591376c8142f4dc6e5e7874286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0cd6785a6c3493515b0cce9979deb195ba332289d40e7569d6af7f7581af3b52ea04ced26a87e5b56c9d0f53bea69303c4030b02ca28cb2f71c7edabb1a58c5316102f902390161849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b6aeb584d45a4f012d704a7caee8e613ebecb8a097fc9a49af8a2bf5f4e5b5d961f55e799e95ac031a40a304009e31de78a36d8cf452508634abe7588c369c118cb382107536f84e832ca9e4ff206d001d0b2b1ed702bd7f4c29f0aab421b771f8ba0acf0e93da5d52b1b6f30b27ac7664995047d613e83565c05305f2cdce8007bdd4f986da04a30804d517d664066aba62bbdb168a98dd71cd421edac215be7699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c7dd85766e71faf1aba9438dccc3da35d039193b0fff6a514f9dc8e13ac4ca36a040ffd2637724b944c7a1dd9f478f0ec5ce527fa68ce8336d7370b78b0bc606e702f902390127849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bcd1ee71aabef82c553d2ac785ca7de18f10dbab36e30ac5ee98f344d2754e4d115c0667cf0b5ad79923cda38a2ba9dcda84b34eff778bb3d389149a8cba5e1981d6521e32daf5ae7924960a4ffd182371c3d38f508eb32a58613e3c7fbfee374c8bdb39ad6528fdd7ad571f514664b9f2dab9990abed698d88ee18f9799c681232c3f251efba7755180cc77acc723082ba28ae0b8b8ebce06803c6af580fcf3870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a018fb03af5b92221d6764c2be7528635c9603b262bb7a867a7a2bf116a53eb50fa0608ecbdee61129bccbfd0fb2afc28da771204c2d46ee1234ec70654979a515db02f90279010e849502f9008505584dc0fc830661dd94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8778cad1e25d0000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bdfaa115f7a1e4cd2ef96829f5f86bae1718722e834dc65e92a33d366ae217d343b1976018f89407c59f519bf0ac219ffd8dce400eaab1410f982fcf297a26dd947daa3dc28186504ec4753e556518f0788ccd68bf4f8d5d3de3e0dc455f82f9383d8bb2f45e6a685545cf0164a5a14d7e95ae5f34e87bfb20784e8586e8fd300f16c0f0d955335c82a267dd53ae3de98131a2549b7c01b83efbfd839fcbe7bdddf33050c843ba4e57566a12338065848ca80675399ae46265650d472bd5ee3e6c10096c71c7e35f393ef615a134ee1ee5a18adc0fbd607ea21cd7e98a493beb00bd4d2fdc72bde8f269e91b18b74fc4dbcc35f4b182127e8bfc1fd7dd5678140f834887345df96f4d60b5070d09e1a56b26f122a3ae81b1c3c2a06b6a29f64ff580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a07a4063f1efaa189828c9f3ffb6b70023e557c283300c0cf5be4f3c3eb6efeeffa0790e0491e2cf968ad813e6053b2a71645d57268d319b624b7f4fbab9dd8bfd3702f902390156849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be36a12959c5046b9c240180cd56d6d636ec93be85fcd5f9e34c42ced450114cd01e90a628ec97d4193d8f11f75ed1356179d660af0b336f19c09ffea003329ff8f06948d9a3cd6c79ac5e38b4610a9a17c0662f02223defe332a483155a68f0baf135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c96a61cec59ff3e46d1569dd338cb3ddace483e446db6d5dbc9d367bb550471ca0025400ece2dcf0cbf03b0604d7b4846f3e7778019d8d297620cd23e279fc9c9102f9023b018201d5849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000beff1576922656b11e3cd4d5eccf7d925112698b84a2d3ae0bb208e1496112c0bc84b88390c160f9ed43ece70a743f5b27286a4a2b78ec486cb5d6c3380ff841b813af59b6419dd7b38a65e138e25281630740551ec83fe7f967bcc78dcd5b59d93900c311c2a6c6186367f2cbef3f47e86101f96cb9acbbb1f40f84db9ca84a8b06980f95496918ab0dd23927efec5665be9ddc0bf707cd004a6319845cafacf9ca69f0224e93fb3d36e599453e3cc8205528fec829600637c27b4c7093ec8600815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a082bb4e35ebd37fc05014a8104003f63b8163a1e749825561f2533722b730227fa0320bca9df318fa3148648ae2d865c5c2bf36e491dfdca6503f677101054761fb02f902390120849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc591bdb99854bffa605089251aa11f1580606bc948a4619a0bb1d7f416c09fd6b1f365eabbb5196338309a2d30ee0e03f05f13ab1cec1f92bd43e4e870f49f5f8189793f50123fdf85a781a87903dc36d53afb3eeb845913b10b17a98f3db77db18d55a2a32b5da789825058e61e42ce64907345e80c9f43440992add1ca403fc2430025cf245b31b5c66f6eda28c3ea590926d25dfa31ae73b28855b3df709ce488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05a2573fcd83754fb5eeac75c701a5e3116f1c758afb4d1e0b4fbad170458c531a0185efed498ccc93ef4bd24de9f48e6d7769a515557a830f0cfe1dfdf3343f09002f901f9016d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000920bf62ff97907c25fcbdb84a450718c8e7e5c6f7c8e541cdb24b5348d2f7864c81ea3c62d00c564802083bb1fdef5fa435e276e4780d543bf0cd3f21825282d2b8c4aad4c362f530de98c8a9526ab71fed8ae6275787d36194afc71c9b119b2898866891ba30af5abbf95d3d9260bd7855e4c709dbbd89aa411cc91ccf95840a26a7da6f0e1172722ee464d05c66168d366100b630a9d7cd0476a6cfac2dd7d0f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0ea048e55174cb0d1a65210ae13f5fe3114709ebed9381dd0f86d398f9f83e04ca01c83ea62f3aaf0c9f3f7073137b48ee8351ea77cbd560780be22d0c739872b8e02f9023a0181bc849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5f0547d10854fbb95dd3d2e6fff5fbe5e73838af7016f090ff4a99cdd5ad4a7324e93441c761cf8775c4802619ceb01d51d8d635c866447cab66fa5127880a253dcbe248a07bc8251b951cd4b3b6faa63cab80808d456c6b71ff7db1a87af0433ac73431e9c2315f4a9e75c67b1d4a5214ae452ef8227b0c7cf5364e6747ac4fad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0d01717709e2097a0db9dd5fc790789df9334717084aed5057b8c5f74217fe2cda037d35e90f2ab813f31cc4b43909ca88e04e308fd5403f7d6f23aa20d2b2c7d0002f90239012f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bda149a3e36e5dab90e69c65eb92eae622b6fa99f596370fedbb7dd786db9a7a562792a9ce6f3d3bec916b3659de1bc3a4ef6eda7fbac672cdb2272d7ae41edcb8aba446591ae08855364c9d460ceafdd8d340fe95f8a6ff333be53b1201272cbbe4d8eb489952ada4af205161cdc6be7994f2a8d5b598428e55f356485482cdbde7773b4b8f3d83ccef36bf1845e47781d828cd6d607e5b5b290c0e0947c4644eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a05b4c101bfe26c92485a646a5a98354ed5bba19e280b5b75ae938764d804392aca04e5699e95b77bb71a524626b27c4e85f7d08916050e100ba9983f27963b8875302f902190116849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ab38b88c468fa35276be986980608d830e1a4f0929d2dc01ed0a8aa544f4b9ad9d369ee813d019c4fdfed10231c8a352216c732923c1b80a7dff155cfa6e45bf17750ad06f7c3255aba180fc177d12975f243bb1211dd0ba2baf214e2a5509d4cd0fd9cf2238c6694f8c18daf5cb0b5a49d03c42f312bded35f8e663d340669fc7d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0c27f283508879af2bfa2b3223a2fc05aa162753011248dc5d1823e37b06ad894a0454a8d2bd6acedf67ece33b8bebd17593e51ad2d1fe147a6974231b26dd4cdd802f8b1011a849502f9008505584dc0fc8301620c94a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4880b844095ea7b3000000000000000000000000c8871267e07408b89aa5aecc58adca5e574557f80000000000000000000000000000000000000000000000000000000165a0bc00c001a044054675cbb65c0357136b7279b81146608b672e47f59c2e6bbae38957bcf7d1a07c1657f96629f2637ef363f9801c2bf94beaa6e8f06ab392188b0be4bd650e6c02f90239014b849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b92afc7c5636e754cb271223071cb919b889df32a98cb1c88a939f2f92fc165f1fdd3bd202c862e82486dbb36d4b351ec71a058691026f1e242217e6323cb05fe0fcaf63cb0ebb1f9309c24c6272b532256e7aab111beadecfc1be208875540b483457c9fdd59bf72e5a8498937baa8ddf6b5ee96f52a4bf5501a41bf841b2bf18dd36fcbc5833f2116232785f8359d2334dab78eaaf7968a293cd28690e1a457713086cb817451ad27927dcb997da99d54ccef967bb535cbdc21c283e71b2810b3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a092781076d98a5fcbaddceef505f2b8f1e9ab3f87fd657678b7e477531e732feda055609d6a1a3084698c6b541867e40a27c0d842ba39f90292e175baaaa092032d02f9023b0182010d849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2a9bead16570655876cf3c319f997826ce0b82cdc68d43de21d3f7bcb9bc0d5715ad696d366a123ef5f1dd04239926fd01038f864cb3aa77f5c098c09de011b3a96382f1ee45d142fec35455c2e50aec5fd7db9ccc9b46106ca2ac37179489c037058c9696528f3eaa5609367ac44d72a2cc100eb104eee1f2ab7cbe3bbcc0517bdbeb05da7d57e84e50bf7e5dafd47934ba427f12621d440dcbaf391c39dba26164a4a24b1402a57e8a1204a10b73460677f293ee7bde90d60a0533387d3a96e1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0828955a823a88729f1aa9140562a0826ae78c6755fc7e5cfff1628e7b0fef1d1a00a2d86518baef3953a8fa11d54ebe61f740b94dc03c4157138e458f61aced54d02f90239013d849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bec2c811d5daf80dfb8d8e7ddfae60369316ed6d9e539e17dbca2b9414c4a290f7a3474f1fc569aa3fb5454ec294e3bce7555ffcd6b4dcd69293a7b8fab75ddebb34fe61434f36bfb4d8c3d1d20d5ef0d908fdb51aee91e8514e07a65e0f27e391c57f0d9a8a8c22575d9fabf4d02c345b6bd68689b09c0197c9be4aa8f1a239a10369baffb808ab0ec10de3cb51ade4c7287c1fbcc49a59aa8bf99ac5332ccab699e64a1e835523b3c4155d0fd43d55d2385dd269e9b1e1bde75322dade668d366c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a06d6d370c586cffbb981cf2860ab71ed6d393d81fb4e3134eeeaeee54a26efc18a060e281d112a8e39b7cb7652a5f17b43d5cf298468ed760bc8d02b2b7f21e89f902f9023b01820132849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b27fdfec8b13c31e435f70fdd44a37dfba8adb384c484a4b686acd44e1e8d47e4bdc81bb1053c1554ac47d48ad474a3b2f400b7f875d2b03cd75b189093bc716fa2471078d689ac7f53bdba4a182b884d6c58284a7328073b21df8f2283b7c570d2f8e9cb25a0c039f4213639428ec514dccfd49c1ff6caca559f9af4f948e89ee04a0a4e50daa4141cbfb0658f625b72ddfbc600881b4257e454b0cdbfcd45a402dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a5d63110b57789243f7302a7ac1b3abaf905cbc876bf2d6cc00d6904af7a4d37a06ab07133bca91f898fedc1aacd4054d33c5d1d9c592a865df7dc3a3bac9d0d7f02f9023b01820164849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b146ce1b74d5e687513365cb8bc73789ed6a337d93edfa894e8e8781c7b426d86800554800128bdcdf583001c83d4b61c480484c305e27fb7fa59731ffc5c1207b8c2d912ca68c1667a783dea6a8b6f663a83e7de3a5141c90624c3d78bb674c23c5048ea9e29bc7acdd607d3ad8b52911abcbc85db3d3fd35bf96610f634fea8c082e8d3b33f23ead586b0c03120973438415a1548113ccdba2873096f347582a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0860fd950c509638ec6fec84d4ee58f7ef339e5bed865d6d24e8a1a0c788871e5a01db4bf617925466e453cdc93c370bf28a0575a321edf1e26d885a862db2ea7da02f9023b0182015b849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0700d96cf9a04621383af3bb03403e17bed823b7700c64e4687ba0bdca9d8590a660a4e2adc5c5ae150851e30af78b7bdc2497f46d488b5f556352310824088c0e7d13802b59b72ff9369a97c88269d8dce4974e7410ee6abc7b6ed84f3d711c84325a1d81ae2f3fd2bdf0229e3a0dd50c1d144af422ec4a8d45fff39dd25e503bb3c4fe085120402b6902790224fd459e47fa185d821e298e45366306a5b3bc4a357aa0e28aed6f9b0ead588f38d4a27d852dbb4b90ccbf35d7d49dc3bfed3c7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a81693ec5857aabfde7fff9cd3f6e69d6f6150c54989b4d52b714ab3ecf2c02ba06cdb14b08c4ba30ca67a3ebfad20c06d7e67443066fd290046682e77d24b7bc902f902390114849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1886509080dd056af6b391145a577ae1bd4dee6d2fe96a00c312aef25c142b77f92946d9223739432576035c4c2b4a9e99d558ab24faf94ac0f12ffe74a23830813af59b6419dd7b38a65e138e25281630740551ec83fe7f967bcc78dcd5b59d93900c311c2a6c6186367f2cbef3f47e86101f96cb9acbbb1f40f84db9ca84a8b06980f95496918ab0dd23927efec5665be9ddc0bf707cd004a6319845cafacf9ca69f0224e93fb3d36e599453e3cc8205528fec829600637c27b4c7093ec8600815bcf88bffbf15080bc98a4d89ff43e0a6f9cecdd7c0745f45210fad4a5f1073bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a011020bbea96a331f4f0d8b5b8e78617e48dab82fea9ff554a5da0537c6e2644ea0771e968b3669e8c13a5260c2fe06759d0c9ba6678d45542051c12c0e3ae4e70202f90239016a849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfada20644b14e3288edcd7f2f4a3b7c0b95bca3d6fce1421b8c9518c66dda735f8ba877a6bfbce30c4ce611502a1ccff9f19be6a492ef7046816fc9fd0b39a182c63114896df964394ce28735228db04db1fb7d9e53b4cbca4ccb2f0f1af530ebfae2cc4a04753549155cda73390e77a0898157e5da2ae4acd9089f1539067351c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0860258b9d4abb9c1e8c76cf001b69c6be91685af87b76f8c3856f5135901c70da02a6e1208457ec2eb4fc74cef0135030913ae902f73745cebc26a0c9c608f231902f9023b0182010e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bccee4eb9a2218470e55110440a1fd07d36ad7e04812d2f63ba183ac4b36b2642b5c9fb285b5f48ede753c8bd3e039f5cb6f9bd3ef96c3d5c1ffc73f2169a1eeba29b4b3faf8626e616209d7eae7e34a343f547c39a97765395c3c0aca891d42299b0a0a6c94eddb43658e0025e02c677d57337ea13820b6f06b08b3008a6e2a0ad65cd20966275313620654e2c8f63b64a7b93a9e40ef5c911085942e32b31b8e488754043fd18689e005d87631fdc5d396ed24155d873270a8c3afb2177c2487710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a06eb9dfb62d53253a002672fddf71869b82bba33db76395d212acf8a3bdeef011a076455ff2fc72a7d6a186b4e84a9eb12151a7db58480b037e8598d044e054ff8602f902190174849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a28e531cb1c1eb28e91d0ce1cb181d4ab263060332debbec80f528c932545d5fe9de0e64b74342b482e8e73cff64f3363fa8371cada91802c2fe4b235000e65c6f50ad5527e97b35406314cb872ad6f064e957b9f8312a5f07d86eb96f9e0a6a6decf5e4e1131c590645de42305afd041f1b15fbb4e5c53fca066d72efc15d863e873e09ef631ec01f39cef9854e7433f9774f38b3edcf74463e36a28b36d6dc4cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a06e2fd4da92dd2c50590a83e7020398d82504b156c64a087ae588b033e64e29b5a046a193d11d234ff20d1421f7d20e5de181a51237f8752ef9d0ccf917271c6f1602f8700109849502f9008505584dc0fc8307741094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc080a0c86c17b0872cb1eac219028976612898fdc66a596e1c3f7388f5663af6aa234da07d00b7ad6841e3149a5b8eeaa4e00f7e35a919f94a2a33b8f2dc1df20996526302f9027c01820108849502f9008505584dc0fc830e4e3894f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88021f90b07aa28000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b6eea621a31d557f53864c5cd1c2f64f0497844f8a54c7d0c82421040f5264fb92138918e4848c0aea1d9aaca364bdc2f08a20b26555adc2fd70f795a2dfe910a6357d8b5536718d263d0ae705227a389d3a0e5db2fca320f8ea349a5b612b468645d80d34963f6c5f03cc8dd1ac1e74c9f5f2c8da158e3aedba2f8aeb4aa131e2b20ce259ab0cb0632330ecd89e8624683f7b669061b4de775a47178f576b9a19eeee8887e94b31146d1cc79ec0149374366bc57dd45786582687a85bdc4bffc46aff3c63caf1d6db3458d94251408fabe4dc4d385e5fa102e82c426963b69ec2fe2469d715f1ebb609042d032d33b50954dacf341820702a87e360fb2f411c3b82cc07d0dfe58215e406ad5d7f66358ed9f78cb30a738d01574d8a1eb14f63c0b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a063cf25040c2c43a549220a750c6c70b66286f1bafd95b0b7b41caeb14554f9e8a02a698cb2dadb1183f508ddf9d6fb3083269f1969b3f064bb3aa43ecb99c0127602f902390141849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8c1d3e8c1eb8bf453bf677cc88089499c627a067b0828f8145b1a1fa56d3416c886f8dc29c7254cdfe8e97e03bd7f7fffa6008bbd628b77d98b397201ae9f5a252b748b5bfe02a654f4f1f9904f6c73536a61eacd016e09cff9dc6f4dba5cb3be29ab2b0e017d31537acd9944de544d6b03768af1443851845043fe36e79e06611d6828e7a5c6f653304a5dee69fdd27a099b0c728730fada01b02c727025310eae5aca00e946d9dca1871117bf328bd20f5f7bc1f5a7e9e3e497e42d3ace8080f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a01170ad236e39c7e34b8a68119a35a0eca91aeeaed22b64c0081efee708cece8da06b5207f70150737b129845a553340d2f98ea2066bf3522d4f258451329e1571602f901f9015e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000980163a563f9d648e1a4ccf691620acef51be250c487ddc38a70a75b14c977a2d4746fff53fff88abee3d2159b14f641b7213978e824c33cd24e99421f98a142e2e9f6dc48afacfdd8cb7719e559a73484a1b4c7f4228aeeb62ce93c6d65b21a698866891ba30af5abbf95d3d9260bd7855e4c709dbbd89aa411cc91ccf95840a26a7da6f0e1172722ee464d05c66168d366100b630a9d7cd0476a6cfac2dd7d0f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0386d8be98ed5d98cdc1c8e4007a5d22bcbf66550e520fa309e1030b9e2b2da3da07e4101c847748438885a3d3d1233d64403c7aa5fb0c1977f491140265bedaadb02f90239011e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bef9226c68acfb69b32f87393453e9a62b37165e87df9740041729ff5d658dd07385a27eb74af451c905108c255a3fbea5ba430d1c898028c18f862a4dd2d97208c96706067d9a7b04ce7142497de5963519f45cf93c9fc25fd27444aefbdf0d9dd0ab522f6aedfcbc363c0e3286f3994b4b479a42c313e1c18da47923608bd8a06ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03e6338014436686a4b4751668fe534a468810b6803b4a06dbf8c9fbbb6ce3e30a04d70e94009a5f7307c1099b8090d4ba69bac5f1ca517c0fbe0f4264e4abaeb1202f902190160849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a632a01f7aca4110af985d1110c5b158f8fcb7c921e3d143e92475029f609c81d18c50f0f9c5c959daa06bd028be0bb7a0bb332062dd0f9c8f4f611b2fa1d16bdad2eef155d5d80d8b962acc037e2743e5c76027144b1f707e2b4ab94e67946c00c23e9299fe55bc6d288074093fa5edec958df0a758b364a52ba1938aae54e8d8b241b25901d96ff75624149cf8483acc852d4680d915625802016f2f8600296181ef6e8b3dd65904baaf7e994510197d8c197f50381e40c345d598f9cc7344e2e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0ba702b0a92ac0a3fe80ad733bf239150b57c8135cc550a3778cb9dc2509a08c8a0315de20c244085680f3ca860b2d276b5c84b2f9e9deac67cd5212cd59f1ccf3b02f9023b0182010b849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc2b4f6a4e941b0436a01ba81bf28d112cf8386ed1ab9ab3ca964bfaf53a721feb03b9d74944f5b3dad3ebc9fda919ed203510246a6616b58397305f87d6b8215362ea5b975c3fd8e5a1c4fa997855cd1d8dbb377b9005630b0e8d8971abca64256ff198866201a39698895f89da74571687399f4d0e805cd7475289b2b151386a4f398452c98223a824d143041a0f7d210b0da1200d216838ebfe8383cb2b59c9262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a096c8ba294c3b20de69a51e020313d1aa8240af62c89933239f31248f61bee13ca008531e0347a1b559666d25aa2cd0e0ecfc848de41cf7d915bdb1cc14fd411a4e02f902390138849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b8b853dea75c281dcea2cc230c6cbdecbd98824a39363bdb3ed1835c759d5bbd099031f6b04528465c381b6227794bc4e908cd10ee940bb016b7bcc1e4a3b76b21d6521e32daf5ae7924960a4ffd182371c3d38f508eb32a58613e3c7fbfee374c8bdb39ad6528fdd7ad571f514664b9f2dab9990abed698d88ee18f9799c681232c3f251efba7755180cc77acc723082ba28ae0b8b8ebce06803c6af580fcf3870f42c97662bb0ff7f0ecd7778cc5f0e1d56b8231ca6676e0d6e65f3c9525fbf66c3d0ec215d48641dc722bbc1415fc0d471cb99d87e39fedfb1e15ef24a4b92e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00e18dea71ae0d94685e4dcbe5cb46ec2d3654288d9fd2f56c69594eef69e5f58a07f43e6324cc8843635e034b43a6d8bd8f7d211bc707a05d7b5bd7367cf541aee02f90239011e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b64563f20d6035f86632ae11ab42f4975d4d17db44e6e4fcbe9d9e252738b3c23338430f7b29410907b75a3c79aac55c5c28b36abbe267691ef4208971881fbb014d3ea2e1a96c637b30cd1ee39102afc6a8f2ee38e4b2cc0d01e14f44c1758507cfd35718e2c586ff9a3fee7bead78c979e84815e678e9f0833f8782898c03fc228b2bb2d8a4db141f93f7373bfeb3ada6c15c980958d2bf5fab8a12e721de77041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0fb72db308d2d3ca53ae6d2e451f48ec0b15ed1dc3a1c2c1f68604ad59ba599a4a0679d4a59cb92e99375ff3c7b3af14deea0f2dcbd725efe36b3f6f89004771bd802f902190167849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a3e11e16283f5f9fd0b8df967931363efa6321acde24be4a52a9c1ead5cca4cfa3267a88a754e7c7dff4b7f7d2c1d9a64ceee4c781888f4c5d56ed96c5d9d3755d688cbe37e98361e903ea9470e44477b88189da0f86c8f48df88f722df1699afb63095b985d501ad553dd01dac2096522e38b834a23b0d6aa7565dfd02e9aa4c16d440f5ac5df0a14514f2cf5bd0ff41a17eaf0518b6d90f3b3a564e1d82c3aca448110f2091d7638e548db2fb79d2a7a3856581d873bbacda0c0517f9390bb1edbf73ba52d75dafc0dba73303b8cc428ca1329021edc3675720c12464219f17ffaed7b71e17931c50b3e99ec666f5a3bc118c101dc25a2118045b917db2f8ef46007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a032f6c3c033b7901bc58a9e39f18dac220090ed2cad9702f1218b704df007ea45a00250f1477542d44babb037b7de1816244f0b74a99ab41282385e9c94e52c16e202f902390109849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b422f0f67b1941909ea2b9e6d7f55a3e8c84ddebe05c4b2eb10e325a5f3f29140e3058cda09d4654bea424891deaa42aeb3658df3043ace4436b4424864de9193515b39bb6f3dbe4591751f072fb568ce7f686b0bf3739fab2a73a5d2258beb0f8c476bb69dcbe9a4af4cd65265b53a8a1c5df99123653e583ae510e81341fefcad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e001f2abf794fd823b6a64ab5729dd28029b6e833eada8b40a0f5fe397c7a413a06025c034c3a485302602ab9d571f8796f54c759be241c47a8fd1d48f5bc17a1b02f9023a0113849502f9008505584dc0fc830e557e94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b88021f90b07aa28000b901c4666c00aa000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000094faeb91a513f418161f43a1b41bb72f9706bbcd57fa4d592828c0eabcde5e349676b4ff882887c4420b3f334d279e718b62e4eecde831686ff2b85d4079fca90156269608ac8c9801c6276132dc79e7459f44ac599021990c2b51c034e02511b9a391c1b6622c3c04974261af13eaa64e458eb496069baba7e01f721f11332900db90eaf1bbb910e4ba48fd7f57af014f9c40d87a622629259ac5467f43a4998a0d041a10b45c160b9c53664871c7b10a02f343590dc45fe288099d4fca2d3678dcfbe23f194f8364b9e34635ecd5b474ed7836af67dd6cc5a39dc59202e3aacf5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a0300434a93ca5c057cc54740a0e7f448e673fe7e93f936d3f42141083933c53bba07953419109feb2869d1e131f9a29251f889542724bbe657fd4cd45900d54b4f902f90239014a849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000be4354598d645950bf6c63fc0373b02841d214e092ff05d592577bb4e23c4c9484fe8e5eea18c084228f6fd61334ae61f0198944c267f57a1303ff796a88d51c71dbe194217f3123519b79844a57567bef96f842a6cd8e42f05ce9524f2b2ff306ff849b380ebca34b170fa318f2b395b3c270eb9d9a44bba9dc4619411563d354d0c10637c2bd2e82fa5c75b6df67103185e90efa5109adda52320fc643f5bbb340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a08604a5bc03df8d223f942159f9a46c623706a6a00aaaa64f8740fc4fd4cdc31fa032468176fc3184bc843103cf8ca2f423cdeede7c8c2290d457ca1d54da284b7302f902390158849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b259e81e4e86ff30d27e4fca7f0fa26ecb3f60bb4e84ce1361e8df9a79cb76bbacf55d08484af822b9b13848571d27d615cd7ef5037b95394921ffb1358a730ec484774ff0d8e87f19daa4e351b6e2bbfc88e6c68633249b16ef63a48f262ba5d54101d8dd11bae84ddf0839e76b76987033ee3fc08b57f2a13e7358d9b5e48edd2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a003fd3dfaefc712046b00c564d74f6185c54abaeb786332466cc6bc9024839735a0407dd57c84462f70e23ba3ef69b089eb9b4627246b7342d86f8040a423d6978c02f902190170849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a3ecae468c94e6be0bacc16f7d5984f25924b9a2d0abea2cc300f7eb744c7b394106e9e3d586a4a880e27dbf6a71074131ef244df4e544d424d77d4cb2535ee35923ecbf9ead1801b891c8a634852c5ec2ab3b4e6e4b7d1cd7a1c9e4722154d039dfa13d077a86e730de6b5eeec072cc8791d5c39427b1ee4e804f1472d6439256985f69b584dbfd1dd4767d34614eb1fe52f627bd020b850ab86a00c7d95e0a8181ef6e8b3dd65904baaf7e994510197d8c197f50381e40c345d598f9cc7344e2e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0c88b0e4e2bad08ba9d88487ae4d470e66ec6039ffbb7ba6344d19699504e7561a0148638279b9510e51307faae40fdf4a5f4c7a41e26ad4a6afab4e59977dc630702f90239015f849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bcd9ff59d96ea9cb4c7b360d162b9cd49dedd2f30abb7d166fb01d732207fe8cff62e41169f954e875f18e4061ecf546b3ada32def88ecb0c50effb3cddbe98b2b9cfee1bfe1fd33ea4b6e0da93c059e23e4a85c6fbc9cece1c16184f090f4537a959c361794f5a19aa16f439e5da49cec5cdb477cbef871e7f4008c9c369841aca2fac698de5d0738c7811fd3124aebc22e52367beb65d084d958cc9cb9eba252ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0560b7e01c6a6b46ddc68b8e73db2f0c8e7b4d8957d4df6171b47fc2649ac11b9a002a997f48c3c78f65f015dccd6472110c88e7b487451ed56aaf0b75a97289bf502f9023a01818e849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bfac421bc3130c7fe9c8c33eab3d0f65395a12d2f5dce6043ea2964468ec33e63e8c7585e43abf49d73247799cdb2af950d77bb044a7660ee30bfe3a227ffcd8dab138c9d5b45c6ece7a9a2ffc869ca8d60dd94ea9dec8b19c668a98875b772105bcda5c06911aeb660abba38421c0ff56a426281f61fb53eb000f147f02d9a151c343328645fb4d3145cc0675f6c7e3777aec91f5b1c338fe6fa0795041809d780eccfd9aa7d59e9987455ceee93c47cf30839c9e2242c79288ac5e451a96d567710182dc92f72c8293f10e2a921bc970f5bbc836aa36868eac1ddc8a894c17b9ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0df5f22de3a9ead188267fd8ee5d1dbc947c790aaf9cc2c63d53e5ac452067a9fa00f81cea80752b64b4d9d0e7b3fb4b6f46d2d14b2b9152de9c4f5f92b1a6d2e3c02f902390133849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b1af8ca38ba541fb0427eb306db622f0b04701fdd9da4ae87722b15123dde084a6c80b72f7fac6ef27baca35481bb77740c893e5ae83d6827614bcd2c1b949712f8a7476b2279bf091e119d53faad7aa724d6994f74495da46dd5825c59727fd20d56bbc4d044d270179d1803b85650d8d5fa97d9ca10a80270ce6f2db93219aad57d1c816b23d9e33e8a635ab9df8a95f1c394a9e44b4dad0095db5096d1639b2ac86ebd96f96f7eab60daea44eba5a2a551436123ec6af1858d6c9c9e421d98b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a07716794d74eee6ba6553939624596f8cd3e39ddd3fa4f15dfdfd1eedc4c29ea7a029ec2cf3aeba1fb828c3870ce9172ec2955d7e9467a7aba64fbe91528277caf502f89201820327849502f9008505598d0c648301241394c1eb766366e3c0916eca6b6160a372c742971cd480a4755edd17000000000000000000000000ed5c00132ae1ec02a4efae1b4dd8fb84e969e347c080a06ab8edb04b3f5424c8eb9769985622178e9b3b1a5a1edbe2579136396febf4bfa03285ae1622b1369010c209c4984a0ee369509eea58d39be288dfa5c98edb5b8502f902790146849502f9008505584dc0fc8305405b94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b873c6568f12e8000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000ba09eb53fe4a4d546b0f877bafc40acdecc5e42351a81edd95ebf6f52ce6e392c8bbc00dd4dd9cf53a31a6fd7c8393224e2e29e04a0b1b990120c4a64236eecab94ac6002d224952cd98a693f73b8dfe9c397ee3956485c32a751bd32538c05c0992b37cce9d1cfc962441ad7c330e89fd0a4b8d30d5de12b30ff16653661cdd8f47d4d2983175b9545d55cd7942df7234050884b3c91b4b1a3ea473f8a5a08dff3a4e6c30dee90ccb3d334795ce9bc9ee201691020e87c7a25e3177a40d4089bc345577c6cb0a8cd1251c96094cbc4337e4a67344fa6993838e43abc3f60586e1aff4e550b5383b62ece606f193a21eb2ea67c3d75bb0768790978af2b6773f0f834887345df96f4d60b5070d09e1a56b26f122a3ae81b1c3c2a06b6a29f64ff580156337097fc727277780dfea1f31e0683a283836f3d0b2f2f7411b3140ac82c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a054b89e51ca65462c1bafb2ae64b1faca06ef4640510781f1f9fd8518f97e3e24a013eaac50a8a9dbb8ef34131df297e19da4d6734313daa68023c7656b6199e26f02f902390123849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bb47903ecdbfb9c2379fca96ebaf5d1924edfde83c422d90e43e5d836d79e85380f947e2920086274197649c1092b26a22c06af8b85f5e79b93f5752e77e1eb7ced833eb1d944639dac5d6576acac9527fd5e50b3be3a5f0bdffac713d622b81ca8c9ce932c51b7569e70fad2b348efbfded890dfaf8a8b43f9ef9780c40e47316f8ee6aca360d4cc0b79651c7c4294544080e7c14c28b91bdf155de019bdec5663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0c800a7af45c6f3811235299a770e407088f1146d89e81e7aca762f857b7fc09ea04e77c20303f3501167f173e3d577b495bb194a49169de73a4f3f330ad8583ff802f9021b01820267849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000a870cb2539958325415d2d00e75ae260ccdcf25a05512fe371d96e687dd6f6fce5b9b7de407d3dadb41f5c6c3de92244961cc0f322bd71456c76d643876f6c1d2a33837566fb054d78a3870d660451d5a9c6bf3b841e52769087e1104a9587f0392c41e6f679c59d57c7581eef926e696483ec17096750a2c3afa8ab7710596637d5e5d9de9a0bc0b6593d1b691e70105216de2cbc5e8dae6e4bc358c4c0c6951cf2c918cfd27b5174f472afde4336532960910721cd7680ab2a8634341ec8cd62e80a0dde9daae04d4d607589027b4a67ac9ce47b5db4026e967ccd38695dcec4c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a05896498421d289d051b7740013e122c2b0db1e4f365dca0232fef07aa3ee0c1ba06d88b20b1ac4720ad30cf935b399982c96d8921baad8da360c953d52ec7c6af102f902790115849502f9008505584dc0fc8307940894f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b87b5303ad38b8000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b87f28d450469ca40d68b214a8107ed9b3edd18d115298001ada5baf1ea0a296f7e951212cb74c893b0ff0091745eb8a73127077fe4de80d9c4fedd01653dba00e796087c9034e87201e8b11ba62a935b6417af09120707df2a72486c49e1aaec8e976b37a00984b38ad93aa0f8e3d5d4887415ae96a95a544acfac9077b262e3e1a5af6305d5ace328c07ff321f9b2f7788e0633950c49099f4828f06a005a984e5367de50b41d4429acb810b3d1a3aca860c1b8bffce92eb491adbccd8d96238e6a5ca93fe49390189db8a219f9cf7a18df3aa68c0f80ac67a4a6a1d2d7fe72ac29f282a4a0a93f7e72ebbefd663d620e6691c6b6b9917b89722b1a8cdc4226b82cc07d0dfe58215e406ad5d7f66358ed9f78cb30a738d01574d8a1eb14f63c0b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c080a0d4faf69b48527bdeac694d47b7107565b04aa9e74ae4363025e3c1757d96df8ba0308ae86b7d46e3796985d907afd25e4ac2162736e3c4bda7e844f56d95288f9202f9023a018199849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2828f7c9fd939b43c663236267fe6783d7bd5730ded7608d1a52acf9df083e6f8d400102777d6ca3e525d68cdd475f80393d932e84eaab89632565a1fdfa7ad48f06948d9a3cd6c79ac5e38b4610a9a17c0662f02223defe332a483155a68f0baf135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a068385999581b69256bd531cef665e98fd47c9298884471edca9fd711a812f9e9a067c0fd0c8315a541df6f194538eab93243b4ebdf8425e2facbd44acd794107a602f90239017d849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bbcbf6577a0ad813b1dda2ef03abe024cc5ef43157a51e3e1ec05041db63acfa8d6a068bc71fd59a0cc303c5361a41df57cd13288543fdcef1a77afeb8efb3b8e43d9140cb52d57bbdca10e423ec665012fd616959311e3f04e7db9acff9a9677a339276aa6533a11ba146862d6531fc5eabf801db09512a75f91a040303b5ec89ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a028699f5393b159a057fe050280fcb59ebc13887280b78128e9bb020755d3d64ba0369139a0294796ae56c241c8d1a48655e61514c9c8cec15e4b58bb5d25978eda02f901fa01818c849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000996ed02fa98825bc71a294397b5540893321cd914757817689cf750555985a03a78d4213308735bfc5cedc3dbe9ff4f8152438f79c153ec156fffa56403d9b348a6120707845473c21df36c848a6a1093c83e798b52b8d8fab8f21dade91f642d698de7bc58de4b95086202361c53dbf05d3d523768f78dac4f6ee41ad9da78dff94d209e5c9915122dedd3d314363cdd949dd6b4ed2a6eaa201ec16f081bbaad718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0e1a92a4d813816fac36a60e7f1bc4b182070049d20cccfe52fbecbab91294feaa018877cf51e75bed52b242ad79d7f234413f47eeceef8c17eb9528c11674670fb02f901f90106849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009cdd9221a6aee417e5aaf62d27c1f7334392a8e9ffd6b44404f2c5863524d706ddfe4989c3323bf53d08ac7450d979fc0a92f54dcbe3cdd51df8c6f66359bd94c0d3669e0708e9542665e4396247ba04d243c81b4479355ce2df33888c9e0b50504b5e992379c4d3ee343745728e612df3e9676a94c905a59be7b1f3beba3241d2fae1249bd417a9e9c0f5c8c8b276c9574b7637e276eaa4c8b23d4cba87debdd718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c080a0dc3dd58a4c48357a6a13df8609b5b9bcf483e0065a7b085e3545daadf9878802a025ba78f1bd74bf057acb403721d552c4b8717ee637a42c6ba88ed2b384ef020902f8720182014f849502f9008505584dc0fc8307639994f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a035951660be9d05c721d1c7fb207885a9fb4919b89988b7c26e4046a6cbafa53aa01cacb266ad889dd48d1d96cd975212be94e78fd3e27514b5e34534e1bddf01a402f9023b0182013f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b2dabbc492dd7b3ab54579785a50425fa520aabe52876de05f02e245d907717519cc9fef179ac2697fb16da35800f6e3c2d1e694adbf0ab496b1ee7ef9f41fed3d1d2e3656c8917a08f03cd7fc624737d71ef72e1a9c878f6d2b8c14120dd01db1b7b68d483e594b2b049a510108e8384fca4a98b0c9a65d353db714f1b624b53d2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0e141f6cfb4bdc4b6a6baa937a08db6154a0db1793bfa431b39254fd1cf7dfb46a01ad32a03bd09e0a31430773e16b19a00b3e1d65d35fe14aef7ef32ae1bfbada702f90239016c849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bafb20f5c1395a42f8d3143cbeef9c3e19e40efaa68f06513d63773e3f123db231b730f2eafafd79af940ee7bcce5c87a49c3b7f84aee2602d39ab50477116731b7b14df794dcbd96f536f2b970303a27eb5ba2f35971c3e746fc8acaa750b4a4610a1669643bd11695c4fca06549f7317186c0d289ae01671ba762c9fe5a2b179ec43392ff7d810d670be3bc309602b40ba4f105c85f591fc1e59193a6595ea88f4dac38243fcd265b82a58d8be3b0802d037e437f0b91942e1337467b6d2f2f11686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0e1d90897bdafd53bfeedee54db0a06b92249f971c5cb3e43b1339350a97d2cbea070f825b54920d4d228a70c4d66b54d7b918439aa06cf86a64bfc524caffd162402f9023a0181ad849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b5ee211edd36beb0ed1627ab99989bd9654d3d854f7f9473e56c2a94e8aa5c116c21bcb4f9ecbd8391fd7a9118ce480ddaad6d67e15f7e14884072844c88fe9d609671924bd7d9303eb8d90875a726aa2335f1a0f5100e828c9fbd284ee480fe39ba171c6b404809e29f17bbded432e8fa50ed36a8081333b1061d9de19be10aeb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0f6ced6e990458ba89c88059ee542f270ebfa721595180bcc47f778a78a20def6a006022a2268cae4133cdaf8ae64bd8230701cd9e24851fec19b329e934afd685002f870012e849502f9008504e63b75708307741094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a019f2ec1a1471a52e79438163b026c545cb0a933823023893c5f7828b89e02546a05123043e9f4470e5635e095b9f3a23112a6e5db01f82a4141244db4d04f7c2bd02f9023a0181a8849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b3fe2b1c261b23c6db8d041dce4a6054c03d31f7f372d903397f62ed35d17132c9cc9fef179ac2697fb16da35800f6e3c2d1e694adbf0ab496b1ee7ef9f41fed3d1d2e3656c8917a08f03cd7fc624737d71ef72e1a9c878f6d2b8c14120dd01db1b7b68d483e594b2b049a510108e8384fca4a98b0c9a65d353db714f1b624b53d2608d423a97ead4a46eb0ad82db90b76ece811cd6ef62d5395c941d88881a33368fce61468f4a0753b448f8ce82ddcdf2fd716375a1fb922d174d111abd5fc40f91a6423dba6a49f6944b28d8c41eb2a0acc874bd9cf07636081f448771b2f66ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a084b33cd09962caca06ed38a42ee5c2231fc4e1b89647770ebac1ccdeb7189a13a07510d86e07061fe1f5813bafa0064f53cb0d489fd2421cfcd724a526b804b39c02f901f9011f849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90184d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000009559dad900cc3ad4d01e7f191095e1ce31b2956edf367fae9f54995c596e4a5ab8bee5cb9a81d63d0d7c34a1d93554ef5401aad078404b80cc823916ba299c3e5fd536448de02a1fee53b81a5318442e9f21ed98a1618941e4ae9a5136a70d0e33df3d1bbaeba880bb2bc076be02a1f7fa95773e25bad6614a5e98eab106fe498d33d04bcfa9df33b6b428b996bb338b17cf32cca2a3da2fc4b93b0db7860ddffb4e8f769bd74b61d12bab3416ebc55d41ddd709a109e5844c90d0b781d913615f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a024bcf783994f58587c1df76ce7f6b21a83d1329735f69e26dde59802d6ea3949a068581d4abafccc2da42c05c67694be27d532b06171cbeadc13b04936c46dbc0802f9023b018201f0849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bedea750191b0cfad53b645cc98ac996d3208b576fb528db3d7f62b214850c758167bce595700e5b2c974044ca0255281e8d7a4b169b44bf5146cb6b6bd38bc89d9f8497304a240064cbc015bd4e60ef746c9d8c811123971b71fad55fa7ac59a22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a03beb94d8969544fc794fd1601257a17016f743f0c454fab409aafa7ab9ce9841a06b2ab554d706bb7d96cc410cad6402d76160279013fb45086a3e02f9566fd6a102f901990133849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b90124d2cab056000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000006877f8605a46ebe8a5b2e643a1dc49c6621647363a64caadf4e8c4a9d2c03f097f94d209e5c9915122dedd3d314363cdd949dd6b4ed2a6eaa201ec16f081bbaad718652425e447279755764eaaf850248e059ef4df20260a4cfbfa72ca14c8fc9f6be2e818d23222100f5a2543c3e0133f0dcf5dc686d4918328b86adeb6d38594a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0fd8bcd687dbbc437d0e95b7b62909cd2613c43823425200f1e6989252fccbfc6a016ebaf9558a6ac3cd7707c32352668dcb5cfc7abdab163fbf12650e8974a266002f9023a0181bd849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b28c2441231191a521621fae6b54b06211b381f4f11ca019e2c3c0814929ed78fa9eeaf286a1b3c42854a642ed1b42d38f6d5c47d5e3ca5d9d1a83eef4edc5d01562f0398d9622d9871ca546c9bc04fd3e0284fbf1d3e94e23b25d33908a3763b22c21be9e8ec837d6b51c0241688250fdcb57bdd0a6c733f0d3e562e841affcfb2f94beea3333b68d58665b81219090d402da83803917a75e14745a56542d87e041322757cc78e51497468c963c098e84ae8e960e15f8345672c6d16f97f9cad7d510e7bd2727bec626207f433b8ee3cb02172d7e3d463087da63edb1aa1e51173bb78fd28784e7e398a646408ffcbe410c7c3aa32abe694422aa038737ab8e1960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a0e9aece63cc4761ff65a3409e186d8aadd16d9242706cca6095a8c7aa42ea4257a053e1f08d68493d93e7c6b7b5a535155a62b676097127b8b98754cabbec6aae7202f9023a015e849502f9008505584dc0fc83261b1194f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b880713e24c43730000b901c4666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009f1bfd2e804e37b157fec5f2beb37277786a21e94fba1e1ae209cae9b285a78ef9cb91b54428bb28230c788dc6428c9d09124390fbb232076c46049386ae81a43172bda82613d8daf5b7b091d0949f9e2c58e9b189343484e395b4dbe8e9deb74a26807b00bfe996ea4517a9b7d1cbbb82d23f99487d7a362b5dda38fc611fb589418cf0aa125bb90b1b6e29a65436f8c87fe17f014c8f38fc1f8ff16609b834ea0d041a10b45c160b9c53664871c7b10a02f343590dc45fe288099d4fca2d3678dcfbe23f194f8364b9e34635ecd5b474ed7836af67dd6cc5a39dc59202e3aacf5059536d5011814734520e7d1edbeee0f311d266f22cc441348ccee2ab53f080442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc001a0363aa457d18ffaeed29b608301e59ec2a25a763bf78ea07361ebaf355d3eee33a01e6765b34d8c09ab4979df081c92090b726c25083c08e48a4039571e8d1b9e9902f90219011e849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901a4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000ae085cdf73d637ea3f73699d9bdbf81fc9dc55f10d8c5e09eb811f5ffe9bd455fa060fbe0f5f49580bd235aa4c61a66ef8dafd2f661320122b5bc83dfcab63a725df56dec48daab045ac60c8897583b114d20f0705a155f40935e7628d2a66cf60d14b0fb6ba649284d60ca4d5fd018f80ac8d8bc3108362d3522aa5768049b6bf0c2dafa306040fa2e8a7543fb78dc27bef039464182c5d4ef0f4932f43d03826c6b4d327b382242e1b3d577ebb1f93bd3d4012fd971b348f0128322b993929904d2d3a1c94affb7c27d59d54a29768078ad34fe118e46fde6b86664dc8fe3a84c8ab6db31ab033d06beea33dd8498047eb5289f8070b67317d0ab84be9cd2e146007c73e4c61c23a0372aa51067443d1dd9c56727c361acc833cff4e81be4d797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a09091ababe9d0f3c9667ac9faf36b4a10fcb88dec054002539eb8afaf2005c15ea04fbc7ca665c123a9065dd3618c5bc19d54250c7fe354019b749f057e640b4ce702f8700113849502f9008505584dc0fc8306ff6794f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a02830be0700c4eb240dcf8aacfb2d49ad5c6cfa525bb336b9b369aa2292975839a028789b6be45c3a514b3a0461dcc298b2871102e3eaedec9f0b2780af5c8f091402f90239010c849502f9008505584dc0fc830536ef94f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b873c6568f12e8000b901c4666c00aa00000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000009d978ba13bebdd0420e808733923129d2e9197f382a25e3e61e17f1e1e46f2334de30cd3388d1a773d9f5fb4b333ce98a39458e4bfdfe81ee6bc9ff9d3bbf42f35787958f37f09e017ae48de338e391323eb3817a09fcd2f084d782df532ef768ae58c0659cecf668d4c1616de550c04e7dface8b951552580a4b77f0c3e70a87b742dd0b61e086f3e5aef31170384d31ccc1ca8fb75f2913a6abf4f697440622293fc46b92e942d8a1028494f50020d102f9dcc6bb705418fd2e8988337c3fddebd0bc0b8740df88074b3a73716023fc3e52ac02392e091a51f18872732a9c2d47af97052ed8026631afaf913ba92ead0f95804b5afbda8ac5f3e10f5d27fb240442ba98e5c54c5b145def40caf6cd211fc48522e8496808d921817efe59c2ddc080a04f7accfa0658d70c7bfc91e2f6f51387929e70f90802e49f762e15afcc0384eda0690f1971a83e3c7b456cbe62f9cab8dbab58a6fad6e1199b834233555f8eabcf02f8700108849502f9008505584dc0fc8305201494f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b8084118aa48bc001a023de1824fa281e2bacdea39955e4addeaa6525d9b9cf995358c65fe00996bc89a04d28b03452ce2f2a00c59cc68b7267fa6d67341a6be08a86292ced61c6e9d38a02f9023b01820107849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b03550d7e417ebc11f274e7ba4d9a1df4351fb264416ae7a230103bcde0396cf4185b06f0c0178b1756f08470c4f1e29b4d692383a7dd5d508ccd24aaa2dc4b17ba3d9ee7ad6b914ef0c6ce0fd3f76ea8f318b169143e0d2aa47d2ec5e9c3c3db1cda86aca26bbb0c88b68d60cc2dbfeee0ee5e5568e40c2485ca4c0979f0a798361792b864ec7193e05e2902dbb5c1a1dc97b11e6ba2425cd85fc70bfef0ed26340bd88da4d4ad7f678cdfacab3a163c4495be773b266761f072b5775a65c45e6cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a07cf5f24567f7d7f2adb3b3468ac43dc3c4b1ae1e82dc966eb0c98737f181f49ca05b07fe8da9b9a78f5fc5f0c7a3a27d9ae2156a707049cf64d4f6b0dd6505c16002f9023a0181de849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bc1731cdaa718634fa805240267f2c7440a5eeec4bbba1ae2f3b8291c67e5ddc124e93441c761cf8775c4802619ceb01d51d8d635c866447cab66fa5127880a253dcbe248a07bc8251b951cd4b3b6faa63cab80808d456c6b71ff7db1a87af0433ac73431e9c2315f4a9e75c67b1d4a5214ae452ef8227b0c7cf5364e6747ac4fad79cc52adfec7aa2fea4409beed20fb4253bb683a7cf772aa821178dd4e4b64a27e7fe6f5688081767d606e6a17c36d1a8271eab6b7fc2ef47c2306091e40a611686f88b4b1efb63f3d02102a0bd8872ab8be325fef22fb6b35d9cf8ea8d81a6ed352b50d8fdd21d343f34aa3f2d0fcff433113ec491b8bb01dffc7c66ed40c36eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a03624d5079f9fac64143cbf62369da65a7402eae7995e79234ed0cb71a86ed78ba027cad9bc4b671c5d439d0f6e115d98535c34416698d65ac2b167d4cbc0b904ad02f90239014c849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bdfe2b215ed990fd933ff40aa6b470585f712e79735a97ef89b9c8ecf2415e27c2aa4f180d6dc6ed3c2ed9e30994fa6bca520f657ada9277d5887af4e541f56e964da476bb44d716ad470b26b162a0e8bd5712c18b4252332643b04aeaecf01b95fdf04e0e639d8cd931bced7b63973c735f3660262ab7b674b3670c146bafc32a9fc4c9d4861258f42a4bedb4d17e6a531f66b6a3818b42c08d1a89d1b58222002dc47c65737484bd364c502208fde3574be9e39776789488a862806ea233907b7db17258af1aa1618665bc04645d5b0c2a5bc6c16c7285a4c645fc0aa5dd222e09090a4240cef86f6c4a7c1c98ca76ce47f9feec130fb3dae8c9442a3806c505160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a033d7f0c877c912f7edac349de00d14e03233fd9a21d2d5c5bd4ddb421ada9bd6a055fa14e1fd2f39023eae7367a9ec771a3bdb1a1ae6d1b2e99525b5d79e78d24c02f9023a018195849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bab7e481a825814e1d99b6d0bd7692187dab1917ae407c716b4638f4d4e562738840be20d182aa21dfd006d26115b64992ee21d17170be77ffea4f0da024e64f93f995517d9918c997427f568372b554c650a64996ca538fd6ae05a40e3b8db54c0c7dc6e84432959d8e88803edc5529acc63827aa479a7b01237ae1fc8084425f64ad079f9b914d3b18d1ccbf9d36bc01b0aa22b1fc63b73832d5c38bba2acd65549830ec99dcc2b6df63619d785251c172ebed1665f42fef02ebf9f4a7b13d926f0f301aede479d9f73194da3e2012a164881fb2915f20b57a4dd7e29f06928367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a09d39e25ae8fe84578b32809cf3c1925f92292147d95d3676a2d5b466d8530de3a05bc65c01d1dc7881d77bc81ca6ad3d9a075eecb8a3b1dcb3e643fb076d677eba02f9023a0181ad849502f9008505584dc0fc8308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b4e03a29942868b08ab540dac1c97e5de3281dd97e72f236cdc6ad209fbd0341bdb0b46751528d1967c5f486d1f5b4fe2da99316bcf738158c3fd8835473af580cb5980f67eb63cb64d3144878c512fe3214732c45dc44006369691eca9adffda3a90319b36295833e302342943d4433a8373940bf96835db19a51a35071046dbe0b04471e38d438279becf0fc1aab239877a95f1629f992c2dc289eac8dc4760a5bcf21393057e42dff5aa97a7f8618fa048885409eee239831ea4875d50215eb3d774843f2f704d4b9b833718e9a22df645e4ff2dae134c84af306237fba47b5d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a00bd9c1947f7649852eaf4032b0afbe77da99cf0dc6c18957a72eab83845f249fa02a419c78bade4eb153716c44d95f5de13025e801418d3447abdc13d48d494ca402f90279011a849502f9008505584dc0fc8308b5d094f776e9a9642dbeb9ee7de20c25224e4a0bfcc03b87f195a3c4ba0000b90204666c00aa0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000bb3f22ad8ea9e70b75e62c8c7adc4b3aa1c542e94606d7d02c75da23272fb5ecc82dd8cac11e3d7bc1d01e1640731e11b861a49146ab9cb959da31e932927e3fd5f93669e431fa3c499b9b5c25e2f72e6ad64574690362a7ee400fdbf00d0f846205af47fcd96dc251a27724191a73b720f71687f53dd2bb8a9dc98f8c370b56147260205584b26bcdf5dd2d486db74ab07f8c095d5106db78bede89a7b4acb6124f2c26fb0812e410cbe97f2a38f9ccdf5ab072620536597f08b6359d4eb25200e6c4248e722c42676cad5ee5a7c6bbcb02e787ea071ed40a7fa79765f9586ad39a965869d76c3a71d2c74451314f38fe0dfbaf382298368bccd25fec916d3c2a9926dfba95a258d32f0f4201888a0c5a15dc50be540b6d7a523548b99777c040b3111eaf415427ac74f8b8b68fc93df5caeb67ec32d8e4105883e2869c067a52c305353be4f2b4e862d9e60a89fb2a46014d041bd09a0460049099bbedbc290c001a0c08adc09c4b97ffb7e6a118baffaf79ceee1af1795fe5c1ae2c039c57d04436ea008cbe599f7a2d07927394f448114dc63aeba9e7aae59b9deb30dac7c5f3a050402f9023a0181fc849502f9008505598d0c648308b29094998715a4ed2c41bbf4c9181120bb5857627816aa87d529ae9e860000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000bd959aa18190ca73b6f20946e6c39526535466345af139cc486b23a54e635eda0e6d9017ce4be3ac29eb61a31ff9bc35ae8f20c08b5d811769f885068a4c1ca91b41573e21ef2fcec436d0b504aecea78583bbec5bb6873a250be7412e598b4f09401bb360c3100175b46dd722a8088d82e60b0c71a59d301b81d7bb7cf7e87c7dd7082d9a12cd7326d3355e6cec5fcf4ffe87221a5341f03a3238bf4e741432b59534ee891dc7b31c689f26da2d42c9d5169363891bad63efa35390a39433d4a1e43257fca161d36bc6af6f7c08e0a55f2644a631163b9c16f0d890de7f223cb367afe706187da4fe6bf16d387642c381960f3653635af3e01da5990a7715edafc56676746ed65e7e0cb2e85384b58a35f638c6fefa696d8c6ee519b7fcaaa602c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc080a085829d1f49cf4cb058f60744bd9d7fcc2b10d38f86aa8879f6cf9a051d16b88ba037a29c86225563115070f41835ac3b1e2cfed81fd19ee15d125a456c619cf25002f9023a0181d8849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b9626291ccde3e734b4679c678b26cba8551f1f92f84f44963f65d3a9608e9598be5f50e28b64e7927c627ceaa2925c95a594888586ab6257d68b64d898034b0c7c5122a241bb52d7f8b94632b4dcc7641e7f1ecaa157628d50ace2d436554028372755e99db10d981dc9ae18b6f26f5dc24451a8e9565c4ae7cdb4570a55ac4506ef85f770c00923b222c953cd33151eb48190d06044fd1d00edbb3a835da2699262acbd5671bdafcc4346e225a5eb7e7f6ee95e8f415b78be64ea5425a447a46cb6b274fbc933d5161d201b57d1968b3e548233d94e0918b29e3246db24af10874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0ddf7b3d4bae285aff45140358532c0caa833bd6cbc22af7319c3b032d4e79690a052d967da6febb2f71da8fecb3779db1c737d870f13275982f5fd58fed1bd6b5202f90239014c849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b22b7d1d09123f187b961e90452aba6b711c5cb2ac6f3bddf1c721519ac4757c701e90a628ec97d4193d8f11f75ed1356179d660af0b336f19c09ffea003329ff8f06948d9a3cd6c79ac5e38b4610a9a17c0662f02223defe332a483155a68f0baf135b77dee36d2d1080cc1fbb2750151cb9c68c226f7a142efbd04241071b55a443a479748450adaee230a98fae2a7f7e83ae41978a4a06a7e255ba23e5c90663e97180e1ab3461725b593d992b80fe8cdbc1939562c814a2ca5d174874eb00286b4cf4b050097d14205264d5de8efa790b96fbc3b6ba991b67d2becd1cb8d3874004b0d4dbf1a5628989d6ced262a681f9ec8f3b8621cefd1321156f3ff6f15160bf7b0fa952413adb2f439cfe5d870e2233e79d654ac0bd3c3328ed6955a3cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a091c47b1d5a8628fd66e9bcadf2ee9a36d5d4b5d0c9cfd61196181166e3a6d843a077198438f7ef8165dbbda66042502c3c08316c3178039618337214f2780a1b4502f901f90140849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b90184d2cab0560000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000094be7351f4a14055d843b16ae7fcc27c3496667e7367ab20bdccbdb1e95bfd96ee1c70ab57dcc574ca41295e85942c1febe38801a116c77e84fcf248815400feb842c9280afc0eb24b286473dc6ec60d11dc9d669bcb9bd45d7cb86000d354cdffadfa13b13e721ec7ad89696360858786b5cda930ad671e871f67f2811dc4b08e2fb2c969a8ab4ad0920f0ef7558bd32d4685bb0fbe1121fbe8988e7774d7162f91aa3f0d43e208a12792ddcafece2badc6ceba90ece955620c9da8009eef264f86865b103c0cf0b5920cf393a4fac1135bb0bf631f329af77a883162d3c97dd4a82199b3530ac248b1c97de1e8cd1c656efab7035d8bca80a6e135c4bcb077797c2b088717282e29e95f0b8a3b1aecec6dd3de61e189d8657b0d4ab4cf53e62c001a0a2c51935413a14c1516e7da63eae5907d2c8a0270ae04e9c7c76731615c27c31a0477b14756d724bce01b3a812bc50a805c5dd1698236d35c851ea99f3056da27d02f9023b01820152849502f9008505598d0c648304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b635d6ce272c67784b2a789dba352d1091ae1848c2627562e6e109435868c9bf29d441e8cf9a8de7fdba6fe0d5bf524a3e125737e2c92c22a4cfb684fe3ab61e1a10c20800d2e62bcba930bb7d7249c1811fd1c97a3bd8c0415649adb3ca013433725ffdc3de47ceefe163f13df54cfa7b398c9171b53598ebf0596009bfb0cfceed0bdf6114248d7bb901fb3d726a53ea3ed244bf39c5029b03d6828cc96f37ccba6d2ef29cccca4fa453062395770480d56588111f94b9615f951fec3a4c57be1c095839abad83fbb732382ce6110e4767327b558f173562c36e0250ac9f3e15d2432a83ea939195e27b727120240cc6fa83ed6cf36a74616a2e8b2e72d5f4736eacb4ee9de81df876b4907dee3e9d520891b93054fc527c8a1c10df1e63b492c67ecbdb1864004b58ffe6434d304ee0d107818a7df2fc160d72a5842ecfb8d517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a0a93f711a68db52306b540c14e254585fb97554533d8b33eec198a3c8456b9d2ba0425143660da44f3f923f50fd9e76b3b8ab1c64e8276d7f10f745f31fe91b6c5302f902390132849502f9008505584dc0fc8304594894998715a4ed2c41bbf4c9181120bb5857627816aa876a94d74f430000b901c4d2cab05600000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000b0605f27dbbe18355420e4129e59bfc8797ed2cfaf7a3953455ee4ec8d2df9c82ddc04e9555712c5218211a6e2a3aac3de33748c82e25d5e27125132b171fdc57095ef874f8e9a4a0502b188a1ae9ccf6adfb75c4395db8eb64ca83a9666502a68da992e0e4bddf6c591952171335ccbc862d64ea0db7ec6c4a3b5873c74107c1ebf7682281fdde94de5d590f2a34b1a7e7b5c33e28eb1990fdd48d066f3818d1276ba5cfa6cacebec4c356545aabbfebd9579bede1231b857e2baa7c83e7f22cc71f093cbc8098834ba48fe552a93d701ec4d36b6a097a496858db8cdcd208379ac0c400cb6837182b745f26fac1e87ff6eded4c92365a9807bb2150ecbc7121960103dbfb3f007c1cd34801920b74b6caaf25e675db113b857d3a4f48e79a04cbc5a45ec0e2417bc5723c92647fa7527040f47a4e5cb2b0ab564200dc455242517dde32034f4ae3e7ee6590c33db7c94f0834eb80f436f51a6462d41c4374ecc001a06abb0d828df4d875ca00ac844ea72a8ab4ae05d88ef7ddcfeba9934f3f9c8acda074137e3ce2e0802e52e851f662832449a9d536053440fc7c60883506a3090e9902f902590115849502f9008505584dc0fc830262d294c25eafabd9946abeabe1c9452da046b40f19e39a8738d7ea4c680000b901e4642d4214000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000b8faba8b4774687858ca53f09ff6fd09bdad48ab731f767f73bf9535c7b16bbc68585d1cd2e4cf3a290b99b0fa866029bb020cb02b9b3b4f38ee5927e00b368db18cc69da7ef11b054756d2d0dba25fdbf269d2ad737eedb6851329a1ca122cb3e359f2767acff23f4ac5b11a89695789ff9f98ae2bccd02b43dcf8f50f03302dd7025e76856698c2ee9b1ba2e95cb2cb3b765ce2313865a342fd8558d62175d9a32778ef89742118439766b311ef4cf5a4d328b7344f327ae67a32f9afb6a940e05cc2e7b9f793229b8317ef221cbf7465640e0d6e3c5f1ec209c037b10ec8420f1bc8161156421a1c19b9a708112433f6cb4942a2cecb9b36f438ccafc359d9605bc8da2b6c8af52a524e946d908add61fae75d500db43f777b5bcd16606d9e883a7f36377aca34b243adbfd004defb867d541a7c419d1aa74c1239a30b1660cd373cb958eada7a64fd9d464606bdb8bf66011af70051e2d352eb416396163ac001a07856e71d865715d934eb14d62c5472ac3ec70f9ca91221427aa20a55968fdc5ca05ae37f7629482234d1bd23a0d7f738fe4a9bb446ff8a7e81fc039a33e787a98e02f90112016b8502887fb6dc85033cae1ce3830151f594485d17a6f1b8780392d53d64751824253011a26080b8a44000aea00000000000000000000000003b198e26e473b8fab2085b37978e36c9de5d7f6800000000000000000000000000000000000000000000000000000001dc63df20000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000038c001a09bf7ac9e214e9430d9652aeb310db34e28ce2eaabb2786976ba1d92e04328824a04b40c7315d265588aeeef4b27aaa52311477284fd7da7571aca243a267d5843702f87201058477359400850342770c00825208942c35f9a466d1cae63d46174120b1d9edd648648687fd7e3b419a96b280c080a0220d14ab163184e70a277e133db3945bebccc2d14e0983b1b02255eaab030046a03de8350f06c5505bd81fae05a46e6a347f2b0b14541fa9f247fda4fb3fa65eeb02f8b00114847735940085041a25574482b62394da4dd9586d27202a338843dd6b9824d26700678380b844095ea7b3000000000000000000000000881d40237659c251811cec9c364ef91dc08d300cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001a0f7066f9fa30c3104a9ca1f3710625dc4165214d6b799eb1e677de212691addeaa050a85e0730ef42da12278ae6f0c332c5de60a433b02d05f786be0acbfb6d9e0602f87201808477359400850342770c008252089461b260db23f294330adadcc9f7b25e23496bfa89870f867de9ab200080c080a0a704102fb39810e0dc1d8bf7e116cd6868961c9e7b2de57f6f123f2b644fb53ba019defcebbb78d4b7fbf033b8bb42dc91b0814746fe154d07869a224badebe08802f872018301a53e808502ae870322825208944675c7e5baafbffbca748158becba61ef3b0a2638807d04a00cfc7c3f180c080a01584761166d6fea147f4dcf8e544319c8d664dd394ccd66f47a2fb691081a974a04b7a4d9552d1a224aa2abad57a422e96c059c195e5b71498c20e0be4ea31b15c") diff --git a/cl/phase1/core/state/accessors.go b/cl/phase1/core/state/accessors.go index 0833437e734..e5faa8e2eb8 100644 --- a/cl/phase1/core/state/accessors.go +++ b/cl/phase1/core/state/accessors.go @@ -2,16 +2,16 @@ package state import ( "fmt" - "github.com/ledgerwatch/erigon/cl/abstract" "github.com/Giulio2002/bls" libcommon "github.com/ledgerwatch/erigon-lib/common" + + "github.com/ledgerwatch/erigon/cl/abstract" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/fork" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/core/types" ) const PreAllocatedRewardsAndPenalties = 8192 @@ -191,7 +191,7 @@ func ComputeTimestampAtSlot(b abstract.BeaconState, slot uint64) uint64 { } // ExpectedWithdrawals calculates the expected withdrawals that can be made by validators in the current epoch -func ExpectedWithdrawals(b abstract.BeaconState) []*types.Withdrawal { +func ExpectedWithdrawals(b abstract.BeaconState) []*cltypes.Withdrawal { // Get the current epoch, the next withdrawal index, and the next withdrawal validator index currentEpoch := Epoch(b) nextWithdrawalIndex := b.NextWithdrawalIndex() @@ -201,7 +201,7 @@ func ExpectedWithdrawals(b abstract.BeaconState) []*types.Withdrawal { maxValidators := uint64(b.ValidatorLength()) maxValidatorsPerWithdrawalsSweep := b.BeaconConfig().MaxValidatorsPerWithdrawalsSweep bound := utils.Min64(maxValidators, maxValidatorsPerWithdrawalsSweep) - withdrawals := make([]*types.Withdrawal, 0, bound) + withdrawals := make([]*cltypes.Withdrawal, 0, bound) // Loop through the validators to calculate expected withdrawals for validatorCount := uint64(0); validatorCount < bound && len(withdrawals) != int(b.BeaconConfig().MaxWithdrawalsPerPayload); validatorCount++ { @@ -213,7 +213,7 @@ func ExpectedWithdrawals(b abstract.BeaconState) []*types.Withdrawal { // Check if the validator is fully withdrawable if isFullyWithdrawableValidator(b.BeaconConfig(), currentValidator, currentBalance, currentEpoch) { // Add a new withdrawal with the validator's withdrawal credentials and balance - newWithdrawal := &types.Withdrawal{ + newWithdrawal := &cltypes.Withdrawal{ Index: nextWithdrawalIndex, Validator: nextWithdrawalValidatorIndex, Address: libcommon.BytesToAddress(wd[12:]), @@ -223,7 +223,7 @@ func ExpectedWithdrawals(b abstract.BeaconState) []*types.Withdrawal { nextWithdrawalIndex++ } else if isPartiallyWithdrawableValidator(b.BeaconConfig(), currentValidator, currentBalance) { // Check if the validator is partially withdrawable // Add a new withdrawal with the validator's withdrawal credentials and balance minus the maximum effective balance - newWithdrawal := &types.Withdrawal{ + newWithdrawal := &cltypes.Withdrawal{ Index: nextWithdrawalIndex, Validator: nextWithdrawalValidatorIndex, Address: libcommon.BytesToAddress(wd[12:]), diff --git a/cl/phase1/core/state/cache.go b/cl/phase1/core/state/cache.go index 791d2b0a0c7..fcd410f080d 100644 --- a/cl/phase1/core/state/cache.go +++ b/cl/phase1/core/state/cache.go @@ -3,6 +3,9 @@ package state import ( "crypto/sha256" "encoding/binary" + "io" + "math" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" "github.com/ledgerwatch/erigon/cl/phase1/core/state/raw" @@ -14,6 +17,11 @@ import ( "github.com/ledgerwatch/erigon/cl/utils" ) +const ( + shuffledSetsCacheSize = 5 + activeValidatorsCacheSize = 5 +) + type HashFunc func([]byte) ([32]byte, error) // CachingBeaconState is a cached wrapper around a raw CachingBeaconState provider @@ -24,20 +32,20 @@ type CachingBeaconState struct { // Internals publicKeyIndicies map[[48]byte]uint64 // Caches - activeValidatorsCache *lru.Cache[uint64, []uint64] - shuffledSetsCache *lru.Cache[common.Hash, []uint64] + activeValidatorsCache *lru.Cache[uint64, []uint64] + shuffledSetsCache *lru.Cache[common.Hash, []uint64] + totalActiveBalanceCache *uint64 totalActiveBalanceRootCache uint64 proposerIndex *uint64 previousStateRoot common.Hash - // Configs } func New(cfg *clparams.BeaconChainConfig) *CachingBeaconState { state := &CachingBeaconState{ BeaconState: raw.New(cfg), } - state.initBeaconState() + state.InitBeaconState() return state } @@ -45,7 +53,7 @@ func NewFromRaw(r *raw.BeaconState) *CachingBeaconState { state := &CachingBeaconState{ BeaconState: r, } - state.initBeaconState() + state.InitBeaconState() return state } @@ -74,7 +82,6 @@ func (b *CachingBeaconState) _updateProposerIndex() (err error) { seed := hash.Sum(nil) indices := b.GetActiveValidatorsIndices(epoch) - // Write the seed to an array. seedArray := [32]byte{} copy(seedArray[:], seed) @@ -199,22 +206,24 @@ func (b *CachingBeaconState) _refreshActiveBalances() { func (b *CachingBeaconState) initCaches() error { var err error - if b.activeValidatorsCache, err = lru.New[uint64, []uint64]("beacon_active_validators_cache", 5); err != nil { + if b.activeValidatorsCache, err = lru.New[uint64, []uint64]("beacon_active_validators_cache", activeValidatorsCacheSize); err != nil { return err } - if b.shuffledSetsCache, err = lru.New[common.Hash, []uint64]("beacon_shuffled_sets_cache", 5); err != nil { + if b.shuffledSetsCache, err = lru.New[common.Hash, []uint64]("beacon_shuffled_sets_cache", shuffledSetsCacheSize); err != nil { return err } + return nil } -func (b *CachingBeaconState) initBeaconState() error { +func (b *CachingBeaconState) InitBeaconState() error { b._refreshActiveBalances() b.publicKeyIndicies = make(map[[48]byte]uint64) b.ForEachValidator(func(validator solid.Validator, i, total int) bool { b.publicKeyIndicies[validator.PublicKey()] = uint64(i) + return true }) @@ -229,3 +238,218 @@ func (b *CachingBeaconState) initBeaconState() error { return nil } + +// EncodeCaches, encodes the beacon state caches into a byte slice +func (b *CachingBeaconState) EncodeCaches(w io.Writer) error { + num := make([]byte, 8) + // activeValidatorsCaches + if err := b.encodeActiveValidatorsCache(w, num); err != nil { + return err + } + // shuffledSetsCache + if err := b.encodeShuffledSetsCache(w, num); err != nil { + return err + } + // Now do the extra caches + if b.totalActiveBalanceCache == nil { + if err := binary.Write(w, binary.BigEndian, uint64(math.MaxUint64)); err != nil { + return err + } + } else { + if err := binary.Write(w, binary.BigEndian, *b.totalActiveBalanceCache); err != nil { + return err + } + } + if err := binary.Write(w, binary.BigEndian, b.totalActiveBalanceRootCache); err != nil { + return err + } + if b.proposerIndex == nil { + if err := binary.Write(w, binary.BigEndian, uint64(math.MaxUint64)); err != nil { + return err + } + } else { + if err := binary.Write(w, binary.BigEndian, *b.proposerIndex); err != nil { + return err + } + } + if _, err := w.Write(b.previousStateRoot[:]); err != nil { + return err + } + return nil +} + +func (b *CachingBeaconState) DecodeCaches(r io.Reader) error { + num := make([]byte, 8) + // activeValidatorsCaches + if err := b.decodeActiveValidatorsCache(r, num); err != nil { + return err + } + // shuffledSetsCache + if err := b.decodeShuffledSetsCache(r, num); err != nil { + return err + } + // Now do the extra caches + var totalActiveBalanceCache uint64 + if err := binary.Read(r, binary.BigEndian, &totalActiveBalanceCache); err != nil { + return err + } + if totalActiveBalanceCache == math.MaxUint64 { + b.totalActiveBalanceCache = nil + } else { + b.totalActiveBalanceCache = &totalActiveBalanceCache + } + if err := binary.Read(r, binary.BigEndian, &b.totalActiveBalanceRootCache); err != nil { + return err + } + var proposerIndex uint64 + if err := binary.Read(r, binary.BigEndian, &proposerIndex); err != nil { + return err + } + if proposerIndex == math.MaxUint64 { + b.proposerIndex = nil + } else { + b.proposerIndex = &proposerIndex + } + if _, err := r.Read(b.previousStateRoot[:]); err != nil { + return err + } + return nil +} + +func writeUint64WithBuffer(w io.Writer, num uint64, buf []byte) error { + binary.BigEndian.PutUint64(buf, num) + if _, err := w.Write(buf); err != nil { + return err + } + return nil +} + +func readUint64WithBuffer(r io.Reader, buf []byte, out *uint64) error { + if _, err := r.Read(buf); err != nil { + return err + } + *out = binary.BigEndian.Uint64(buf) + return nil +} + +// internal encoding/decoding algos +func (b *CachingBeaconState) encodeActiveValidatorsCache(w io.Writer, num []byte) error { + keys := b.activeValidatorsCache.Keys() + lists := make([][]uint64, len(keys)) + + for i, key := range keys { + lists[i], _ = b.activeValidatorsCache.Get(key) + } + // Write the total length + if err := writeUint64WithBuffer(w, uint64(len(keys)), num); err != nil { + return err + } + + for i, key := range keys { + if err := writeUint64WithBuffer(w, uint64(len(lists[i])), num); err != nil { + return err + } + if err := writeUint64WithBuffer(w, key, num); err != nil { + return err + } + for _, v := range lists[i] { + if err := writeUint64WithBuffer(w, v, num); err != nil { + return err + } + } + } + + return nil +} + +func (b *CachingBeaconState) decodeActiveValidatorsCache(r io.Reader, num []byte) error { + var err error + b.activeValidatorsCache, err = lru.New[uint64, []uint64]("beacon_active_validators_cache", activeValidatorsCacheSize) + if err != nil { + return err + } + var l uint64 + + if err := readUint64WithBuffer(r, num, &l); err != nil { + return err + } + for i := 0; i < int(l); i++ { + var l uint64 + + if err := readUint64WithBuffer(r, num, &l); err != nil { + return err + } + var key uint64 + if err := readUint64WithBuffer(r, num, &key); err != nil { + return err + } + list := make([]uint64, l) + for i := 0; i < int(l); i++ { + if err := readUint64WithBuffer(r, num, &list[i]); err != nil { + return err + } + } + b.activeValidatorsCache.Add(key, list) + } + return nil +} + +// internal encoding/decoding algos +func (b *CachingBeaconState) encodeShuffledSetsCache(w io.Writer, num []byte) error { + keys := b.shuffledSetsCache.Keys() + lists := make([][]uint64, len(keys)) + + for i, key := range keys { + lists[i], _ = b.shuffledSetsCache.Get(key) + } + // Write the total length + if err := writeUint64WithBuffer(w, uint64(len(keys)), num); err != nil { + return err + } + for i, key := range keys { + if err := writeUint64WithBuffer(w, uint64(len(lists[i])), num); err != nil { + return err + } + if _, err := w.Write(key[:]); err != nil { + return err + } + for _, v := range lists[i] { + if err := writeUint64WithBuffer(w, v, num); err != nil { + return err + } + } + } + return nil +} + +func (b *CachingBeaconState) decodeShuffledSetsCache(r io.Reader, num []byte) error { + var err error + b.shuffledSetsCache, err = lru.New[common.Hash, []uint64]("beacon_shuffled_sets_cache", shuffledSetsCacheSize) + if err != nil { + return err + } + + var l uint64 + if err := readUint64WithBuffer(r, num, &l); err != nil { + return err + } + for i := 0; i < int(l); i++ { + var l uint64 + if err := readUint64WithBuffer(r, num, &l); err != nil { + return err + } + var key common.Hash + if _, err := r.Read(key[:]); err != nil { + return err + } + list := make([]uint64, l) + for i := 0; i < int(l); i++ { + if err := readUint64WithBuffer(r, num, &list[i]); err != nil { + return err + } + } + b.shuffledSetsCache.Add(key, list) + } + + return nil +} diff --git a/cl/phase1/core/state/cache_accessors.go b/cl/phase1/core/state/cache_accessors.go index 38834689206..99f2f17a9bb 100644 --- a/cl/phase1/core/state/cache_accessors.go +++ b/cl/phase1/core/state/cache_accessors.go @@ -6,10 +6,10 @@ import ( "math" "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/cl/phase1/cache" "github.com/ledgerwatch/erigon/cl/phase1/core/state/shuffling" "github.com/Giulio2002/bls" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" @@ -18,19 +18,24 @@ import ( // these are view functions for the beacon state cache // GetActiveValidatorsIndices returns the list of validator indices active for the given epoch. -func (b *CachingBeaconState) GetActiveValidatorsIndices(epoch uint64) (indicies []uint64) { +func (b *CachingBeaconState) GetActiveValidatorsIndices(epoch uint64) []uint64 { + var indicies []uint64 if cachedIndicies, ok := b.activeValidatorsCache.Get(epoch); ok && len(cachedIndicies) > 0 { return cachedIndicies } + + size := 0 b.ForEachValidator(func(v solid.Validator, i, total int) bool { if !v.Active(epoch) { return true } + size++ indicies = append(indicies, uint64(i)) return true }) b.activeValidatorsCache.Add(epoch, indicies) - return + + return indicies[:size] } // GetTotalActiveBalance return the sum of all balances within active validators. @@ -55,12 +60,15 @@ func (b *CachingBeaconState) ComputeCommittee(indicies []uint64, slot uint64, in // Input for the seed hash. mix := b.GetRandaoMix(int(mixPosition)) seed := shuffling.GetSeed(b.BeaconConfig(), mix, epoch, b.BeaconConfig().DomainBeaconAttester) + if shuffledIndicesInterface, ok := b.shuffledSetsCache.Get(seed); ok { shuffledIndicies = shuffledIndicesInterface } else { - shuffledIndicies = shuffling.ComputeShuffledIndicies(b.BeaconConfig(), mix, indicies, slot) + shuffledIndicies = make([]uint64, lenIndicies) + shuffledIndicies = shuffling.ComputeShuffledIndicies(b.BeaconConfig(), mix, shuffledIndicies, indicies, slot) b.shuffledSetsCache.Add(seed, shuffledIndicies) } + return shuffledIndicies[start:end], nil } @@ -127,7 +135,8 @@ func (b *CachingBeaconState) CommitteeCount(epoch uint64) uint64 { return committeCount } -func (b *CachingBeaconState) GetAttestationParticipationFlagIndicies(data solid.AttestationData, inclusionDelay uint64) ([]uint8, error) { +func (b *CachingBeaconState) GetAttestationParticipationFlagIndicies(data solid.AttestationData, inclusionDelay uint64, skipAssert bool) ([]uint8, error) { + var justifiedCheckpoint solid.Checkpoint // get checkpoint from epoch if data.Target().Epoch() == Epoch(b) { @@ -136,8 +145,17 @@ func (b *CachingBeaconState) GetAttestationParticipationFlagIndicies(data solid. justifiedCheckpoint = b.PreviousJustifiedCheckpoint() } // Matching roots - if !data.Source().Equal(justifiedCheckpoint) { - return nil, fmt.Errorf("GetAttestationParticipationFlagIndicies: source does not match") + if !data.Source().Equal(justifiedCheckpoint) && !skipAssert { + // jsonify the data.Source and justifiedCheckpoint + jsonSource, err := data.Source().MarshalJSON() + if err != nil { + return nil, err + } + jsonJustifiedCheckpoint, err := justifiedCheckpoint.MarshalJSON() + if err != nil { + return nil, err + } + return nil, fmt.Errorf("GetAttestationParticipationFlagIndicies: source does not match. source: %s, justifiedCheckpoint: %s", jsonSource, jsonJustifiedCheckpoint) } targetRoot, err := GetBlockRoot(b, data.Target().Epoch()) if err != nil { @@ -164,14 +182,15 @@ func (b *CachingBeaconState) GetAttestationParticipationFlagIndicies(data solid. // GetBeaconCommitee grabs beacon committee using cache first func (b *CachingBeaconState) GetBeaconCommitee(slot, committeeIndex uint64) ([]uint64, error) { - var cacheKey [16]byte - binary.BigEndian.PutUint64(cacheKey[:], slot) - binary.BigEndian.PutUint64(cacheKey[8:], committeeIndex) + // var cacheKey [16]byte + // binary.BigEndian.PutUint64(cacheKey[:], slot) + // binary.BigEndian.PutUint64(cacheKey[8:], committeeIndex) epoch := GetEpochAtSlot(b.BeaconConfig(), slot) committeesPerSlot := b.CommitteeCount(epoch) + indicies := b.GetActiveValidatorsIndices(epoch) committee, err := b.ComputeCommittee( - b.GetActiveValidatorsIndices(epoch), + indicies, slot, (slot%b.BeaconConfig().SlotsPerEpoch)*committeesPerSlot+committeeIndex, committeesPerSlot*b.BeaconConfig().SlotsPerEpoch, @@ -184,7 +203,7 @@ func (b *CachingBeaconState) GetBeaconCommitee(slot, committeeIndex uint64) ([]u func (b *CachingBeaconState) ComputeNextSyncCommittee() (*solid.SyncCommittee, error) { beaconConfig := b.BeaconConfig() - optimizedHashFunc := utils.OptimizedKeccak256NotThreadSafe() + optimizedHashFunc := utils.OptimizedSha256NotThreadSafe() epoch := Epoch(b) + 1 //math.MaxUint8 activeValidatorIndicies := b.GetActiveValidatorsIndices(epoch) @@ -195,7 +214,7 @@ func (b *CachingBeaconState) ComputeNextSyncCommittee() (*solid.SyncCommittee, e mix := b.GetRandaoMix(int(mixPosition)) seed := shuffling.GetSeed(b.BeaconConfig(), mix, epoch, beaconConfig.DomainSyncCommittee) i := uint64(0) - syncCommitteePubKeys := make([][48]byte, 0, cltypes.SyncCommitteeSize) + syncCommitteePubKeys := make([]libcommon.Bytes48, 0, cltypes.SyncCommitteeSize) preInputs := shuffling.ComputeShuffledIndexPreInputs(b.BeaconConfig(), seed) for len(syncCommitteePubKeys) < cltypes.SyncCommitteeSize { shuffledIndex, err := shuffling.ComputeShuffledIndex( @@ -214,7 +233,7 @@ func (b *CachingBeaconState) ComputeNextSyncCommittee() (*solid.SyncCommittee, e buf := make([]byte, 8) binary.LittleEndian.PutUint64(buf, i/32) input := append(seed[:], buf...) - randomByte := uint64(utils.Keccak256(input)[i%32]) + randomByte := uint64(utils.Sha256(input)[i%32]) // retrieve validator. validator, err := b.ValidatorForValidatorIndex(int(candidateIndex)) if err != nil { @@ -235,7 +254,7 @@ func (b *CachingBeaconState) ComputeNextSyncCommittee() (*solid.SyncCommittee, e if err != nil { return nil, err } - var aggregate [48]byte + var aggregate libcommon.Bytes48 copy(aggregate[:], aggregatePublicKeyBytes) return solid.NewSyncCommitteeFromParameters(syncCommitteePubKeys, aggregate), nil @@ -244,9 +263,9 @@ func (b *CachingBeaconState) ComputeNextSyncCommittee() (*solid.SyncCommittee, e // GetAttestingIndicies retrieves attesting indicies for a specific attestation. however some tests will not expect the aggregation bits check. // thus, it is a flag now. func (b *CachingBeaconState) GetAttestingIndicies(attestation solid.AttestationData, aggregationBits []byte, checkBitsLength bool) ([]uint64, error) { - if cached, ok := cache.LoadAttestatingIndicies(&attestation, aggregationBits); ok { - return cached, nil - } + // if cached, ok := cache.LoadAttestatingIndicies(&attestation, aggregationBits); ok { + // return cached, nil + // } committee, err := b.GetBeaconCommitee(attestation.Slot(), attestation.ValidatorIndex()) if err != nil { return nil, err @@ -267,7 +286,7 @@ func (b *CachingBeaconState) GetAttestingIndicies(attestation solid.AttestationD attestingIndices = append(attestingIndices, member) } } - cache.StoreAttestation(&attestation, aggregationBits, attestingIndices) + // cache.StoreAttestation(&attestation, aggregationBits, attestingIndices) return attestingIndices, nil } diff --git a/cl/phase1/core/state/cache_mutators.go b/cl/phase1/core/state/cache_mutators.go index 8d4f8a1f9ed..05f9080c91a 100644 --- a/cl/phase1/core/state/cache_mutators.go +++ b/cl/phase1/core/state/cache_mutators.go @@ -44,7 +44,8 @@ func (b *CachingBeaconState) SlashValidator(slashedInd uint64, whistleblowerInd if err != nil { return err } - b.IncrementSlashingSegmentAt(slashingsIndex, currentEffectiveBalance) + + b.SetSlashingSegmentAt(slashingsIndex, b.SlashingSegmentAt(slashingsIndex)+currentEffectiveBalance) newEffectiveBalance, err := b.ValidatorEffectiveBalance(int(slashedInd)) if err != nil { return err diff --git a/cl/phase1/core/state/copy.go b/cl/phase1/core/state/copy.go index ebf0a111b53..de4ecd63538 100644 --- a/cl/phase1/core/state/copy.go +++ b/cl/phase1/core/state/copy.go @@ -22,7 +22,7 @@ func (b *CachingBeaconState) CopyInto(bs *CachingBeaconState) (err error) { func (b *CachingBeaconState) copyCachesInto(bs *CachingBeaconState) error { if b.Version() == clparams.Phase0Version { - return bs.initBeaconState() + return bs.InitBeaconState() } if bs.publicKeyIndicies == nil { bs.publicKeyIndicies = make(map[[48]byte]uint64) diff --git a/cl/phase1/core/state/lru/lru.go b/cl/phase1/core/state/lru/lru.go index 7784c2ddd35..b1da5285616 100644 --- a/cl/phase1/core/state/lru/lru.go +++ b/cl/phase1/core/state/lru/lru.go @@ -3,8 +3,8 @@ package lru import ( "fmt" - "github.com/VictoriaMetrics/metrics" lru "github.com/hashicorp/golang-lru/v2" + "github.com/ledgerwatch/erigon-lib/metrics" ) // Cache is a wrapper around hashicorp lru but with metric for Get diff --git a/cl/phase1/core/state/raw/copy.go b/cl/phase1/core/state/raw/copy.go index 4e547c71763..86aa9e5e75a 100644 --- a/cl/phase1/core/state/raw/copy.go +++ b/cl/phase1/core/state/raw/copy.go @@ -1,8 +1,6 @@ package raw import ( - "fmt" - "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/cltypes/solid" @@ -18,12 +16,11 @@ func (b *BeaconState) CopyInto(dst *BeaconState) error { b.stateRoots.CopyTo(dst.stateRoots) b.historicalRoots.CopyTo(dst.historicalRoots) dst.eth1Data = b.eth1Data.Copy() - dst.eth1DataVotes = solid.NewDynamicListSSZ[*cltypes.Eth1Data](int(b.beaconConfig.Eth1DataVotesLength())) + dst.eth1DataVotes = solid.NewStaticListSSZ[*cltypes.Eth1Data](int(b.beaconConfig.Eth1DataVotesLength()), 72) b.eth1DataVotes.Range(func(index int, value *cltypes.Eth1Data, length int) bool { dst.eth1DataVotes.Append(value.Copy()) return true }) - dst.eth1DepositIndex = b.eth1DepositIndex b.validators.CopyTo(dst.validators) b.balances.CopyTo(dst.balances) @@ -31,9 +28,20 @@ func (b *BeaconState) CopyInto(dst *BeaconState) error { b.slashings.CopyTo(dst.slashings) b.previousEpochParticipation.CopyTo(dst.previousEpochParticipation) b.currentEpochParticipation.CopyTo(dst.currentEpochParticipation) + dst.currentEpochAttestations.Clear() + dst.previousEpochAttestations.Clear() + b.currentEpochAttestations.Range(func(index int, value *solid.PendingAttestation, length int) bool { + dst.currentEpochAttestations.Append(value) + return true + }) + b.previousEpochAttestations.Range(func(index int, value *solid.PendingAttestation, length int) bool { + dst.previousEpochAttestations.Append(value) + return true + }) dst.finalizedCheckpoint = b.finalizedCheckpoint.Copy() dst.currentJustifiedCheckpoint = b.currentJustifiedCheckpoint.Copy() dst.previousJustifiedCheckpoint = b.previousJustifiedCheckpoint.Copy() + dst.justificationBits = b.justificationBits.Copy() if b.version == clparams.Phase0Version { dst.init() return nil @@ -41,7 +49,6 @@ func (b *BeaconState) CopyInto(dst *BeaconState) error { dst.currentSyncCommittee = b.currentSyncCommittee.Copy() dst.nextSyncCommittee = b.nextSyncCommittee.Copy() b.inactivityScores.CopyTo(dst.inactivityScores) - dst.justificationBits = b.justificationBits.Copy() if b.version >= clparams.BellatrixVersion { dst.latestExecutionPayloadHeader = b.latestExecutionPayloadHeader.Copy() @@ -65,6 +72,5 @@ func (b *BeaconState) CopyInto(dst *BeaconState) error { func (b *BeaconState) Copy() (*BeaconState, error) { copied := New(b.BeaconConfig()) - fmt.Println(copied.slashings) return copied, b.CopyInto(copied) } diff --git a/cl/phase1/core/state/raw/events.go b/cl/phase1/core/state/raw/events.go new file mode 100644 index 00000000000..ba63353d59f --- /dev/null +++ b/cl/phase1/core/state/raw/events.go @@ -0,0 +1,28 @@ +package raw + +import ( + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" +) + +type Events struct { + OnNewBlockRoot func(index int, root libcommon.Hash) error + OnNewStateRoot func(index int, root libcommon.Hash) error + OnRandaoMixChange func(index int, mix [32]byte) error + OnNewValidator func(index int, v solid.Validator, balance uint64) error + OnNewValidatorBalance func(index int, balance uint64) error + OnNewValidatorEffectiveBalance func(index int, balance uint64) error + OnNewValidatorActivationEpoch func(index int, epoch uint64) error + OnNewValidatorExitEpoch func(index int, epoch uint64) error + OnNewValidatorWithdrawableEpoch func(index int, epoch uint64) error + OnNewValidatorSlashed func(index int, slashed bool) error + OnNewValidatorActivationEligibilityEpoch func(index int, epoch uint64) error + OnNewValidatorWithdrawalCredentials func(index int, wc []byte) error + OnNewSlashingSegment func(index int, segment uint64) error + OnEpochBoundary func(epoch uint64) error + OnNewNextSyncCommittee func(committee *solid.SyncCommittee) error + OnNewCurrentSyncCommittee func(committee *solid.SyncCommittee) error + OnAppendEth1Data func(data *cltypes.Eth1Data) error + OnResetParticipation func(previousParticipation *solid.BitList) error +} diff --git a/cl/phase1/core/state/raw/getters.go b/cl/phase1/core/state/raw/getters.go index 9d1d512025b..a1676714b28 100644 --- a/cl/phase1/core/state/raw/getters.go +++ b/cl/phase1/core/state/raw/getters.go @@ -68,6 +68,18 @@ func (b *BeaconState) Eth1DataVotes() *solid.ListSSZ[*cltypes.Eth1Data] { return b.eth1DataVotes } +func (b *BeaconState) Slashings() solid.Uint64VectorSSZ { + return b.slashings +} + +func (b *BeaconState) Balances() solid.Uint64ListSSZ { + return b.balances +} + +func (b *BeaconState) InactivityScores() solid.Uint64ListSSZ { + return b.inactivityScores +} + func (b *BeaconState) Eth1DepositIndex() uint64 { return b.eth1DepositIndex } @@ -106,6 +118,13 @@ func (b *BeaconState) ValidatorBalance(index int) (uint64, error) { return b.balances.Get(index), nil } +func (b *BeaconState) ValidatorPublicKey(index int) (libcommon.Bytes48, error) { + if index >= b.balances.Length() { + return libcommon.Bytes48{}, ErrInvalidValidatorIndex + } + return b.validators.Get(index).PublicKey(), nil +} + func (b *BeaconState) ValidatorExitEpoch(index int) (uint64, error) { if index >= b.validators.Length() { return 0, ErrInvalidValidatorIndex diff --git a/cl/phase1/core/state/raw/hashing.go b/cl/phase1/core/state/raw/hashing.go index 6ae869bf53f..72c840fbf35 100644 --- a/cl/phase1/core/state/raw/hashing.go +++ b/cl/phase1/core/state/raw/hashing.go @@ -1,10 +1,13 @@ package raw import ( + "time" + "github.com/ledgerwatch/erigon-lib/common" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/merkle_tree" + "github.com/ledgerwatch/log/v3" ) func (b *BeaconState) HashSSZ() (out [32]byte, err error) { @@ -82,6 +85,8 @@ func (b *BeaconState) computeDirtyLeaves() error { b.updateLeaf(StateRootsLeafIndex, root) } + begin := time.Now() + // Field(7): HistoricalRoots if b.isLeafDirty(HistoricalRootsLeafIndex) { root, err := b.historicalRoots.HashSSZ() @@ -90,6 +95,7 @@ func (b *BeaconState) computeDirtyLeaves() error { } b.updateLeaf(HistoricalRootsLeafIndex, root) } + log.Trace("HistoricalRoots hashing", "elapsed", time.Since(begin)) // Field(8): Eth1Data if b.isLeafDirty(Eth1DataLeafIndex) { @@ -114,6 +120,8 @@ func (b *BeaconState) computeDirtyLeaves() error { b.updateLeaf(Eth1DepositIndexLeafIndex, merkle_tree.Uint64Root(b.eth1DepositIndex)) } + begin = time.Now() + // Field(11): Validators if b.isLeafDirty(ValidatorsLeafIndex) { root, err := b.validators.HashSSZ() @@ -123,7 +131,9 @@ func (b *BeaconState) computeDirtyLeaves() error { b.updateLeaf(ValidatorsLeafIndex, root) } + log.Trace("ValidatorSet hashing", "elapsed", time.Since(begin)) + begin = time.Now() // Field(12): Balances if b.isLeafDirty(BalancesLeafIndex) { root, err := b.balances.HashSSZ() @@ -132,7 +142,9 @@ func (b *BeaconState) computeDirtyLeaves() error { } b.updateLeaf(BalancesLeafIndex, root) } + log.Trace("Balances hashing", "elapsed", time.Since(begin)) + begin = time.Now() // Field(13): RandaoMixes if b.isLeafDirty(RandaoMixesLeafIndex) { root, err := b.randaoMixes.HashSSZ() @@ -141,7 +153,9 @@ func (b *BeaconState) computeDirtyLeaves() error { } b.updateLeaf(RandaoMixesLeafIndex, root) } + log.Trace("RandaoMixes hashing", "elapsed", time.Since(begin)) + begin = time.Now() // Field(14): Slashings if b.isLeafDirty(SlashingsLeafIndex) { root, err := b.slashings.HashSSZ() @@ -150,8 +164,10 @@ func (b *BeaconState) computeDirtyLeaves() error { } b.updateLeaf(SlashingsLeafIndex, root) } + log.Trace("Slashings hashing", "elapsed", time.Since(begin)) // Field(15) and Field(16) are special due to the fact that they have different format in Phase0. + begin = time.Now() // Field(15): PreviousEpochParticipation if b.isLeafDirty(PreviousEpochParticipationLeafIndex) { var root libcommon.Hash @@ -167,6 +183,9 @@ func (b *BeaconState) computeDirtyLeaves() error { b.updateLeaf(PreviousEpochParticipationLeafIndex, root) } + log.Trace("PreviousEpochParticipation hashing", "elapsed", time.Since(begin)) + + begin = time.Now() // Field(16): CurrentEpochParticipation if b.isLeafDirty(CurrentEpochParticipationLeafIndex) { @@ -182,6 +201,7 @@ func (b *BeaconState) computeDirtyLeaves() error { } b.updateLeaf(CurrentEpochParticipationLeafIndex, root) } + log.Trace("CurrentEpochParticipation hashing", "elapsed", time.Since(begin)) // Field(17): JustificationBits if b.isLeafDirty(JustificationBitsLeafIndex) { @@ -218,6 +238,7 @@ func (b *BeaconState) computeDirtyLeaves() error { if b.version == clparams.Phase0Version { return nil } + begin = time.Now() // Field(21): Inactivity Scores if b.isLeafDirty(InactivityScoresLeafIndex) { root, err := b.inactivityScores.HashSSZ() @@ -226,6 +247,7 @@ func (b *BeaconState) computeDirtyLeaves() error { } b.updateLeaf(InactivityScoresLeafIndex, root) } + log.Trace("InactivityScores hashing", "elapsed", time.Since(begin)) // Field(22): CurrentSyncCommitte if b.isLeafDirty(CurrentSyncCommitteeLeafIndex) { @@ -271,6 +293,7 @@ func (b *BeaconState) computeDirtyLeaves() error { b.updateLeaf(NextWithdrawalValidatorIndexLeafIndex, merkle_tree.Uint64Root(b.nextWithdrawalValidatorIndex)) } + begin = time.Now() // Field(27): HistoricalSummaries if b.isLeafDirty(HistoricalSummariesLeafIndex) { root, err := b.historicalSummaries.HashSSZ() @@ -279,6 +302,7 @@ func (b *BeaconState) computeDirtyLeaves() error { } b.updateLeaf(HistoricalSummariesLeafIndex, root) } + log.Trace("HistoricalSummaries hashing", "elapsed", time.Since(begin)) return nil } diff --git a/cl/phase1/core/state/raw/setters.go b/cl/phase1/core/state/raw/setters.go index 8753b816948..5abb514333f 100644 --- a/cl/phase1/core/state/raw/setters.go +++ b/cl/phase1/core/state/raw/setters.go @@ -13,6 +13,10 @@ func (b *BeaconState) SetVersion(version clparams.StateVersion) { func (b *BeaconState) SetSlot(slot uint64) { b.slot = slot + if b.events.OnEpochBoundary != nil && b.slot%b.beaconConfig.SlotsPerEpoch == 0 { + b.events.OnEpochBoundary(b.slot / b.beaconConfig.SlotsPerEpoch) + } + b.markLeaf(SlotLeafIndex) } @@ -27,47 +31,74 @@ func (b *BeaconState) SetLatestBlockHeader(header *cltypes.BeaconBlockHeader) { } func (b *BeaconState) SetBlockRootAt(index int, root libcommon.Hash) { + if b.events.OnNewBlockRoot != nil { + b.events.OnNewBlockRoot(index, root) + } b.markLeaf(BlockRootsLeafIndex) b.blockRoots.Set(index, root) } func (b *BeaconState) SetStateRootAt(index int, root libcommon.Hash) { + if b.events.OnNewStateRoot != nil { + b.events.OnNewStateRoot(index, root) + } b.markLeaf(StateRootsLeafIndex) b.stateRoots.Set(index, root) } func (b *BeaconState) SetWithdrawalCredentialForValidatorAtIndex(index int, creds libcommon.Hash) { b.markLeaf(ValidatorsLeafIndex) - b.validators.Get(index).SetWithdrawalCredentials(creds) + if b.events.OnNewValidatorWithdrawalCredentials != nil { + b.events.OnNewValidatorWithdrawalCredentials(index, creds[:]) + } + b.validators.SetWithdrawalCredentialForValidatorAtIndex(index, creds) } func (b *BeaconState) SetExitEpochForValidatorAtIndex(index int, epoch uint64) { b.markLeaf(ValidatorsLeafIndex) - b.validators.Get(index).SetExitEpoch(epoch) + if b.events.OnNewValidatorExitEpoch != nil { + b.events.OnNewValidatorExitEpoch(index, epoch) + } + b.validators.SetExitEpochForValidatorAtIndex(index, epoch) } func (b *BeaconState) SetWithdrawableEpochForValidatorAtIndex(index int, epoch uint64) error { if index >= b.balances.Length() { return ErrInvalidValidatorIndex } + if b.events.OnNewValidatorWithdrawableEpoch != nil { + b.events.OnNewValidatorWithdrawableEpoch(index, epoch) + } + b.markLeaf(ValidatorsLeafIndex) - b.validators.Get(index).SetWithdrawableEpoch(epoch) + b.validators.SetWithdrawableEpochForValidatorAtIndex(index, epoch) return nil } func (b *BeaconState) SetEffectiveBalanceForValidatorAtIndex(index int, balance uint64) { b.markLeaf(ValidatorsLeafIndex) - b.validators.Get(index).SetEffectiveBalance(balance) + if b.events.OnNewValidatorEffectiveBalance != nil { + b.events.OnNewValidatorEffectiveBalance(index, balance) + } + b.validators.SetEffectiveBalanceForValidatorAtIndex(index, balance) } func (b *BeaconState) SetActivationEpochForValidatorAtIndex(index int, epoch uint64) { b.markLeaf(ValidatorsLeafIndex) - b.validators.Get(index).SetActivationEpoch(epoch) + if b.events.OnNewValidatorActivationEpoch != nil { + b.events.OnNewValidatorActivationEpoch(index, epoch) + } + + b.validators.SetActivationEpochForValidatorAtIndex(index, epoch) } func (b *BeaconState) SetActivationEligibilityEpochForValidatorAtIndex(index int, epoch uint64) { b.markLeaf(ValidatorsLeafIndex) - b.validators.Get(index).SetActivationEligibilityEpoch(epoch) + if b.events.OnNewValidatorActivationEligibilityEpoch != nil { + b.events.OnNewValidatorActivationEligibilityEpoch(index, epoch) + } + + b.validators.SetActivationEligibilityEpochForValidatorAtIndex(index, epoch) } func (b *BeaconState) SetEth1Data(eth1Data *cltypes.Eth1Data) { @@ -75,7 +106,15 @@ func (b *BeaconState) SetEth1Data(eth1Data *cltypes.Eth1Data) { b.eth1Data = eth1Data } +func (b *BeaconState) SetEth1DataVotes(votes *solid.ListSSZ[*cltypes.Eth1Data]) { + b.markLeaf(Eth1DataVotesLeafIndex) + b.eth1DataVotes = votes +} + func (b *BeaconState) AddEth1DataVote(vote *cltypes.Eth1Data) { + if b.events.OnAppendEth1Data != nil { + b.events.OnAppendEth1Data(vote) + } b.markLeaf(Eth1DataVotesLeafIndex) b.eth1DataVotes.Append(vote) } @@ -90,12 +129,33 @@ func (b *BeaconState) SetEth1DepositIndex(eth1DepositIndex uint64) { b.eth1DepositIndex = eth1DepositIndex } +func (b *BeaconState) SetValidators(validators *solid.ValidatorSet) { + b.markLeaf(ValidatorsLeafIndex) + b.validators = validators +} + +func (b *BeaconState) SetRandaoMixes(mixes solid.HashVectorSSZ) { + b.markLeaf(RandaoMixesLeafIndex) + b.randaoMixes = mixes +} + +func (b *BeaconState) SetHistoricalRoots(hRoots solid.HashListSSZ) { + b.markLeaf(HistoricalRootsLeafIndex) + b.historicalRoots = hRoots +} + func (b *BeaconState) SetValidatorSlashed(index int, slashed bool) error { if index >= b.balances.Length() { return ErrInvalidValidatorIndex } b.markLeaf(ValidatorsLeafIndex) - b.validators.Get(index).SetSlashed(slashed) + if b.events.OnNewValidatorSlashed != nil { + if err := b.events.OnNewValidatorSlashed(index, slashed); err != nil { + return err + } + } + + b.validators.SetValidatorSlashed(index, slashed) return nil } @@ -170,12 +230,20 @@ func (b *BeaconState) SetValidatorBalance(index int, balance uint64) error { if index >= b.balances.Length() { return ErrInvalidValidatorIndex } + if b.events.OnNewValidatorBalance != nil { + if err := b.events.OnNewValidatorBalance(index, balance); err != nil { + return err + } + } b.markLeaf(BalancesLeafIndex) b.balances.Set(index, balance) return nil } func (b *BeaconState) AddValidator(validator solid.Validator, balance uint64) { + if b.events.OnNewValidator != nil { + b.events.OnNewValidator(b.validators.Length(), validator, balance) + } b.validators.Append(validator) b.balances.Append(balance) @@ -184,18 +252,20 @@ func (b *BeaconState) AddValidator(validator solid.Validator, balance uint64) { } func (b *BeaconState) SetRandaoMixAt(index int, mix libcommon.Hash) { + if b.events.OnRandaoMixChange != nil { + b.events.OnRandaoMixChange(index, mix) + } b.markLeaf(RandaoMixesLeafIndex) b.randaoMixes.Set(index, mix) } func (b *BeaconState) SetSlashingSegmentAt(index int, segment uint64) { + if b.events.OnNewSlashingSegment != nil { + b.events.OnNewSlashingSegment(index, segment) + } b.markLeaf(SlashingsLeafIndex) b.slashings.Set(index, segment) } -func (b *BeaconState) IncrementSlashingSegmentAt(index int, delta uint64) { - b.markLeaf(SlashingsLeafIndex) - b.slashings.Set(index, b.SlashingSegmentAt(index)+delta) -} func (b *BeaconState) SetEpochParticipationForValidatorIndex(isCurrentEpoch bool, index int, flags cltypes.ParticipationFlags) { if isCurrentEpoch { @@ -214,6 +284,9 @@ func (b *BeaconState) SetValidatorAtIndex(index int, validator solid.Validator) func (b *BeaconState) ResetEpochParticipation() { b.previousEpochParticipation = b.currentEpochParticipation + if b.events.OnResetParticipation != nil { + b.events.OnResetParticipation(b.previousEpochParticipation) + } b.currentEpochParticipation = solid.NewBitList(b.validators.Length(), int(b.beaconConfig.ValidatorRegistryLimit)) b.markLeaf(CurrentEpochParticipationLeafIndex) b.markLeaf(PreviousEpochParticipationLeafIndex) @@ -240,11 +313,17 @@ func (b *BeaconState) SetFinalizedCheckpoint(finalizedCheckpoint solid.Checkpoin } func (b *BeaconState) SetCurrentSyncCommittee(currentSyncCommittee *solid.SyncCommittee) { + if b.events.OnNewCurrentSyncCommittee != nil { + b.events.OnNewCurrentSyncCommittee(currentSyncCommittee) + } b.currentSyncCommittee = currentSyncCommittee b.markLeaf(CurrentSyncCommitteeLeafIndex) } func (b *BeaconState) SetNextSyncCommittee(nextSyncCommittee *solid.SyncCommittee) { + if b.events.OnNewNextSyncCommittee != nil { + b.events.OnNewNextSyncCommittee(nextSyncCommittee) + } b.nextSyncCommittee = nextSyncCommittee b.markLeaf(NextSyncCommitteeLeafIndex) } @@ -269,6 +348,11 @@ func (b *BeaconState) ResetHistoricalSummaries() { b.markLeaf(HistoricalSummariesLeafIndex) } +func (b *BeaconState) SetHistoricalSummaries(l *solid.ListSSZ[*cltypes.HistoricalSummary]) { + b.historicalSummaries = l + b.markLeaf(HistoricalSummariesLeafIndex) +} + func (b *BeaconState) AddHistoricalSummary(summary *cltypes.HistoricalSummary) { b.historicalSummaries.Append(summary) b.markLeaf(HistoricalSummariesLeafIndex) @@ -287,6 +371,11 @@ func (b *BeaconState) SetInactivityScores(scores []uint64) { b.markLeaf(InactivityScoresLeafIndex) } +func (b *BeaconState) SetInactivityScoresRaw(scores solid.Uint64VectorSSZ) { + b.inactivityScores = scores + b.markLeaf(InactivityScoresLeafIndex) +} + func (b *BeaconState) AddInactivityScore(score uint64) { b.inactivityScores.Append(score) b.markLeaf(InactivityScoresLeafIndex) @@ -349,12 +438,62 @@ func (b *BeaconState) ResetCurrentEpochAttestations() { b.currentEpochAttestations = solid.NewDynamicListSSZ[*solid.PendingAttestation](int(b.beaconConfig.PreviousEpochAttestationsLength())) } +func (b *BeaconState) SetCurrentEpochAttestations(attestations *solid.ListSSZ[*solid.PendingAttestation]) { + b.markLeaf(CurrentEpochParticipationLeafIndex) + b.currentEpochAttestations = attestations +} + func (b *BeaconState) SetPreviousEpochAttestations(attestations *solid.ListSSZ[*solid.PendingAttestation]) { b.markLeaf(PreviousEpochParticipationLeafIndex) b.previousEpochAttestations = attestations } +func (b *BeaconState) SetCurrentEpochParticipation(participation *solid.BitList) { + b.markLeaf(CurrentEpochParticipationLeafIndex) + b.currentEpochParticipation = participation +} + +func (b *BeaconState) SetPreviousEpochParticipation(participation *solid.BitList) { + b.markLeaf(PreviousEpochParticipationLeafIndex) + b.previousEpochParticipation = participation +} + func (b *BeaconState) ResetPreviousEpochAttestations() { b.markLeaf(PreviousEpochParticipationLeafIndex) b.previousEpochAttestations = solid.NewDynamicListSSZ[*solid.PendingAttestation](int(b.beaconConfig.PreviousEpochAttestationsLength())) } + +// SetGenesisTime sets the genesis time of the BeaconState. +func (b *BeaconState) SetGenesisTime(time uint64) { + b.markLeaf(GenesisTimeLeafIndex) + b.genesisTime = time +} + +// SetGenesisValidatorsRoot sets the genesis validators root of the BeaconState. +func (b *BeaconState) SetGenesisValidatorsRoot(root libcommon.Hash) { + b.markLeaf(GenesisValidatorsRootLeafIndex) + b.genesisValidatorsRoot = root +} + +// SetBlockRoots sets the block roots of the BeaconState. +func (b *BeaconState) SetBlockRoots(roots solid.HashVectorSSZ) { + b.markLeaf(BlockRootsLeafIndex) + b.blockRoots = roots +} + +// SetStateRoots sets the state roots of the BeaconState. +func (b *BeaconState) SetStateRoots(roots solid.HashVectorSSZ) { + b.markLeaf(StateRootsLeafIndex) + b.stateRoots = roots +} + +// SetBlockRoots sets the block roots of the BeaconState. +func (b *BeaconState) SetBalances(balances solid.Uint64VectorSSZ) { + b.markLeaf(BalancesLeafIndex) + b.balances = balances +} + +func (b *BeaconState) SetSlashings(slashings solid.Uint64VectorSSZ) { + b.markLeaf(SlashingsLeafIndex) + b.slashings = slashings +} diff --git a/cl/phase1/core/state/raw/setters_test.go b/cl/phase1/core/state/raw/setters_test.go index 98ea9fcf7e7..166e5d10ce6 100644 --- a/cl/phase1/core/state/raw/setters_test.go +++ b/cl/phase1/core/state/raw/setters_test.go @@ -330,15 +330,6 @@ func TestBeaconState_SetSlashingSegmentAt(t *testing.T) { assert.Equal(t, segment, state.slashings.Get(index)) } -func TestBeaconState_IncrementSlashingSegmentAt(t *testing.T) { - state := GetTestState() - index := 0 - delta := uint64(10) - state.SetSlashingSegmentAt(index, 100) - state.IncrementSlashingSegmentAt(index, delta) - assert.Equal(t, uint64(110), state.slashings.Get(index)) -} - func TestBeaconState_SetEpochParticipationForValidatorIndex(t *testing.T) { state := GetTestState() isCurrentEpoch := true diff --git a/cl/phase1/core/state/raw/state.go b/cl/phase1/core/state/raw/state.go index dc8c92b849a..3f6533e4e92 100644 --- a/cl/phase1/core/state/raw/state.go +++ b/cl/phase1/core/state/raw/state.go @@ -1,6 +1,8 @@ package raw import ( + "encoding/json" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" @@ -8,10 +10,10 @@ import ( ) const ( - blockRootsLength = 8192 - stateRootsLength = 8192 - randoMixesLength = 65536 - slashingsLength = 8192 + BlockRootsLength = 8192 + StateRootsLength = 8192 + RandoMixesLength = 65536 + SlashingsLength = 8192 ) type BeaconState struct { @@ -58,6 +60,7 @@ type BeaconState struct { // cl version version clparams.StateVersion // State version beaconConfig *clparams.BeaconChainConfig + events Events } func New(cfg *clparams.BeaconChainConfig) *BeaconState { @@ -76,7 +79,7 @@ func New(cfg *clparams.BeaconChainConfig) *BeaconState { balances: solid.NewUint64ListSSZ(int(cfg.ValidatorRegistryLimit)), previousEpochParticipation: solid.NewBitList(0, int(cfg.ValidatorRegistryLimit)), currentEpochParticipation: solid.NewBitList(0, int(cfg.ValidatorRegistryLimit)), - slashings: solid.NewUint64VectorSSZ(slashingsLength), + slashings: solid.NewUint64VectorSSZ(SlashingsLength), currentEpochAttestations: solid.NewDynamicListSSZ[*solid.PendingAttestation](int(cfg.CurrentEpochAttestationsLength())), previousEpochAttestations: solid.NewDynamicListSSZ[*solid.PendingAttestation](int(cfg.PreviousEpochAttestationsLength())), historicalRoots: solid.NewHashList(int(cfg.HistoricalRootsLimit)), @@ -99,3 +102,98 @@ func (b *BeaconState) init() error { } return nil } + +func (b *BeaconState) MarshalJSON() ([]byte, error) { + obj := map[string]interface{}{ + "genesis_time": b.genesisTime, + "genesis_validators_root": b.genesisValidatorsRoot, + "slot": b.slot, + "fork": b.fork, + "latest_block_header": b.latestBlockHeader, + "block_roots": b.blockRoots, + "state_roots": b.stateRoots, + "historical_roots": b.historicalRoots, + "eth1_data": b.eth1Data, + "eth1_data_votes": b.eth1DataVotes, + "eth1_deposit_index": b.eth1DepositIndex, + "validators": b.validators, + "balances": b.balances, + "randao_mixes": b.randaoMixes, + "slashings": b.slashings, + "previous_epoch_participation": b.previousEpochParticipation, + "current_epoch_participation": b.currentEpochParticipation, + "justification_bits": b.justificationBits, + "previous_justified_checkpoint": b.previousJustifiedCheckpoint, + "current_justified_checkpoint": b.currentJustifiedCheckpoint, + "finalized_checkpoint": b.finalizedCheckpoint, + } + if b.version == clparams.Phase0Version { + obj["previous_epoch_attestations"] = b.previousEpochAttestations + obj["current_epoch_attestations"] = b.currentEpochAttestations + } + + if b.version >= clparams.AltairVersion { + obj["inactivity_scores"] = b.inactivityScores + obj["current_sync_committee"] = b.currentSyncCommittee + obj["next_sync_committee"] = b.nextSyncCommittee + } + if b.version >= clparams.BellatrixVersion { + obj["latest_execution_payload_header"] = b.latestExecutionPayloadHeader + } + if b.version >= clparams.CapellaVersion { + obj["next_withdrawal_index"] = b.nextWithdrawalIndex + obj["next_withdrawal_validator_index"] = b.nextWithdrawalValidatorIndex + obj["historical_summaries"] = b.historicalSummaries + } + return json.Marshal(obj) +} + +// Get validators field +func (b *BeaconState) Validators() *solid.ValidatorSet { + return b.validators +} + +func (b *BeaconState) SetEvents(events Events) { + b.events = events +} + +func (b *BeaconState) HistoricalSummariesLength() uint64 { + return uint64(b.historicalSummaries.Len()) +} + +func (b *BeaconState) HistoricalRootsLength() uint64 { + return uint64(b.historicalRoots.Length()) +} + +// Dangerous +func (b *BeaconState) RawInactivityScores() []byte { + return b.inactivityScores.Bytes() +} + +func (b *BeaconState) RawBalances() []byte { + return b.balances.Bytes() +} + +func (b *BeaconState) RawValidatorSet() []byte { + return b.validators.Bytes() +} + +func (b *BeaconState) RawPreviousEpochParticipation() []byte { + return b.previousEpochParticipation.Bytes() +} + +func (b *BeaconState) RawCurrentEpochParticipation() []byte { + return b.currentEpochParticipation.Bytes() +} + +func (b *BeaconState) HistoricalRoot(index int) common.Hash { + return b.historicalRoots.Get(index) +} + +func (b *BeaconState) HistoricalSummary(index int) *cltypes.HistoricalSummary { + return b.historicalSummaries.Get(index) +} + +func (b *BeaconState) RawSlashings() []byte { + return b.slashings.Bytes() +} diff --git a/cl/phase1/core/state/shuffling/shuffling.go b/cl/phase1/core/state/shuffling/shuffling.go index 4bec3242a4b..ed7d7322d80 100644 --- a/cl/phase1/core/state/shuffling/shuffling.go +++ b/cl/phase1/core/state/shuffling/shuffling.go @@ -19,7 +19,7 @@ func ComputeProposerIndex(b *raw.BeaconState, indices []uint64, seed [32]byte) ( input := make([]byte, 40) preInputs := ComputeShuffledIndexPreInputs(b.BeaconConfig(), seed) for { - shuffled, err := ComputeShuffledIndex(b.BeaconConfig(), i%total, total, seed, preInputs, utils.Keccak256) + shuffled, err := ComputeShuffledIndex(b.BeaconConfig(), i%total, total, seed, preInputs, utils.Sha256) if err != nil { return 0, err } @@ -29,7 +29,7 @@ func ComputeProposerIndex(b *raw.BeaconState, indices []uint64, seed [32]byte) ( } copy(input, seed[:]) binary.LittleEndian.PutUint64(input[32:], i/32) - randomByte := uint64(utils.Keccak256(input)[i%32]) + randomByte := uint64(utils.Sha256(input)[i%32]) validator, err := b.ValidatorForValidatorIndex(int(candidateIndex)) if err != nil { return 0, err diff --git a/cl/phase1/core/state/shuffling/shuffling_test.go b/cl/phase1/core/state/shuffling/shuffling_test.go index 2a80c1295b1..a664e929095 100644 --- a/cl/phase1/core/state/shuffling/shuffling_test.go +++ b/cl/phase1/core/state/shuffling/shuffling_test.go @@ -4,10 +4,11 @@ import ( _ "embed" "testing" + "github.com/ledgerwatch/erigon-lib/common/eth2shuffle" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/phase1/core/state/raw" "github.com/ledgerwatch/erigon/cl/phase1/core/state/shuffling" - "github.com/ledgerwatch/erigon/common/eth2shuffle" "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/cl/clparams" @@ -15,7 +16,7 @@ import ( ) func BenchmarkLambdaShuffledIndex(b *testing.B) { - keccakOptimized := utils.OptimizedKeccak256() + keccakOptimized := utils.OptimizedSha256NotThreadSafe() eth2ShuffleHash := func(data []byte) []byte { hashed := keccakOptimized(data) return hashed[:] @@ -30,7 +31,7 @@ func BenchmarkLambdaShuffledIndex(b *testing.B) { // Faster by ~40%, the effects of it will be felt mostly on computation of the proposer index. func BenchmarkErigonShuffledIndex(b *testing.B) { s := state.New(&clparams.MainnetBeaconConfig) - keccakOptimized := utils.OptimizedKeccak256NotThreadSafe() + keccakOptimized := utils.OptimizedSha256NotThreadSafe() seed := [32]byte{2, 35, 6} preInputs := shuffling.ComputeShuffledIndexPreInputs(s.BeaconConfig(), seed) diff --git a/cl/phase1/core/state/shuffling/util.go b/cl/phase1/core/state/shuffling/util.go index 0eb6e9e67ce..afd16e67c47 100644 --- a/cl/phase1/core/state/shuffling/util.go +++ b/cl/phase1/core/state/shuffling/util.go @@ -4,10 +4,11 @@ import ( "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/common/eth2shuffle" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common/eth2shuffle" ) func ComputeShuffledIndex(conf *clparams.BeaconChainConfig, ind, ind_count uint64, seed [32]byte, preInputs [][32]byte, hashFunc utils.HashFunc) (uint64, error) { @@ -49,7 +50,7 @@ func ComputeShuffledIndex(conf *clparams.BeaconChainConfig, ind, ind_count uint6 func ComputeShuffledIndexPreInputs(conf *clparams.BeaconChainConfig, seed [32]byte) [][32]byte { ret := make([][32]byte, conf.ShuffleRoundCount) for i := range ret { - ret[i] = utils.Keccak256(append(seed[:], byte(i))) + ret[i] = utils.Sha256(append(seed[:], byte(i))) } return ret } @@ -59,19 +60,18 @@ func GetSeed(beaconConfig *clparams.BeaconChainConfig, mix common.Hash, epoch ui binary.LittleEndian.PutUint64(epochByteArray, epoch) input := append(domain[:], epochByteArray...) input = append(input, mix[:]...) - return utils.Keccak256(input) + return utils.Sha256(input) } -func ComputeShuffledIndicies(beaconConfig *clparams.BeaconChainConfig, mix common.Hash, indicies []uint64, slot uint64) []uint64 { - shuffledIndicies := make([]uint64, len(indicies)) - copy(shuffledIndicies, indicies) - hashFunc := utils.OptimizedKeccak256NotThreadSafe() +func ComputeShuffledIndicies(beaconConfig *clparams.BeaconChainConfig, mix common.Hash, out, indicies []uint64, slot uint64) []uint64 { + copy(out, indicies) + hashFunc := utils.OptimizedSha256NotThreadSafe() epoch := slot / beaconConfig.SlotsPerEpoch seed := GetSeed(beaconConfig, mix, epoch, beaconConfig.DomainBeaconAttester) eth2ShuffleHashFunc := func(data []byte) []byte { hashed := hashFunc(data) return hashed[:] } - eth2shuffle.UnshuffleList(eth2ShuffleHashFunc, shuffledIndicies, uint8(beaconConfig.ShuffleRoundCount), seed) - return shuffledIndicies + eth2shuffle.UnshuffleList(eth2ShuffleHashFunc, out, uint8(beaconConfig.ShuffleRoundCount), seed) + return out } diff --git a/cl/phase1/core/state/ssz.go b/cl/phase1/core/state/ssz.go index 12c817c570b..057666abfa9 100644 --- a/cl/phase1/core/state/ssz.go +++ b/cl/phase1/core/state/ssz.go @@ -1,32 +1,31 @@ package state import ( - "github.com/ledgerwatch/erigon/metrics/methelp" - + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon-lib/types/clonable" ) func (b *CachingBeaconState) EncodeSSZ(buf []byte) ([]byte, error) { - h := methelp.NewHistTimer("encode_ssz_beacon_state_dur") + h := metrics.NewHistTimer("encode_ssz_beacon_state_dur") bts, err := b.BeaconState.EncodeSSZ(buf) if err != nil { return nil, err } h.PutSince() - sz := methelp.NewHistTimer("encode_ssz_beacon_state_size") - sz.Update(float64(len(bts))) + sz := metrics.NewHistTimer("encode_ssz_beacon_state_size") + sz.Observe(float64(len(bts))) return bts, err } func (b *CachingBeaconState) DecodeSSZ(buf []byte, version int) error { - h := methelp.NewHistTimer("decode_ssz_beacon_state_dur") + h := metrics.NewHistTimer("decode_ssz_beacon_state_dur") if err := b.BeaconState.DecodeSSZ(buf, version); err != nil { return err } - sz := methelp.NewHistTimer("decode_ssz_beacon_state_size") - sz.Update(float64(len(buf))) + sz := metrics.NewHistTimer("decode_ssz_beacon_state_size") + sz.Observe(float64(len(buf))) h.PutSince() - return b.initBeaconState() + return b.InitBeaconState() } // SSZ size of the Beacon State diff --git a/cl/phase1/core/state/ssz_test.go b/cl/phase1/core/state/ssz_test.go index 9327d357e7a..1bfffa37173 100644 --- a/cl/phase1/core/state/ssz_test.go +++ b/cl/phase1/core/state/ssz_test.go @@ -1,11 +1,10 @@ -package state_test +package state import ( + "bytes" _ "embed" "testing" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/clparams" @@ -20,21 +19,35 @@ var capellaBeaconSnappyTest []byte var phase0BeaconSnappyTest []byte func TestBeaconStateCapellaEncodingDecoding(t *testing.T) { - state := state.New(&clparams.MainnetBeaconConfig) + state := New(&clparams.MainnetBeaconConfig) decodedSSZ, err := utils.DecompressSnappy(capellaBeaconSnappyTest) require.NoError(t, err) require.NoError(t, state.DecodeSSZ(decodedSSZ, int(clparams.CapellaVersion))) root, err := state.HashSSZ() require.NoError(t, err) require.Equal(t, libcommon.Hash(root), libcommon.HexToHash("0xb3012b73c02ab66b2779d996f9d33d36e58bf71ffc8f3e12e07024606617a9c0")) + } func TestBeaconStatePhase0EncodingDecoding(t *testing.T) { - state := state.New(&clparams.MainnetBeaconConfig) + state := New(&clparams.MainnetBeaconConfig) decodedSSZ, err := utils.DecompressSnappy(phase0BeaconSnappyTest) require.NoError(t, err) state.DecodeSSZ(decodedSSZ, int(clparams.Phase0Version)) root, err := state.HashSSZ() require.NoError(t, err) require.Equal(t, libcommon.Hash(root), libcommon.HexToHash("0xf23b6266af40567516afeee250c1f8c06e9800f34a990a210604c380b506e053")) + // Lets test the caches too + var w bytes.Buffer + require.NoError(t, state.EncodeCaches(&w)) + values1 := state.activeValidatorsCache.Values() + keys1 := state.activeValidatorsCache.Keys() + values2 := state.shuffledSetsCache.Values() + keys2 := state.shuffledSetsCache.Keys() + + require.NoError(t, state.DecodeCaches(&w)) + require.Equal(t, values1, state.activeValidatorsCache.Values()) + require.Equal(t, keys1, state.activeValidatorsCache.Keys()) + require.Equal(t, values2, state.shuffledSetsCache.Values()) + require.Equal(t, keys2, state.shuffledSetsCache.Keys()) } diff --git a/cl/phase1/core/state/upgrade.go b/cl/phase1/core/state/upgrade.go index 2270fe37113..caa12f7ead3 100644 --- a/cl/phase1/core/state/upgrade.go +++ b/cl/phase1/core/state/upgrade.go @@ -25,7 +25,7 @@ func (b *CachingBeaconState) UpgradeToAltair() error { // Fill in previous epoch participation from the pre state's pending attestations if err := solid.RangeErr[*solid.PendingAttestation](b.PreviousEpochAttestations(), func(i1 int, pa *solid.PendingAttestation, i2 int) error { attestationData := pa.AttestantionData() - flags, err := b.GetAttestationParticipationFlagIndicies(attestationData, pa.InclusionDelay()) + flags, err := b.GetAttestationParticipationFlagIndicies(attestationData, pa.InclusionDelay(), false) if err != nil { return err } diff --git a/cl/phase1/core/state/util.go b/cl/phase1/core/state/util.go index ba34e86a66c..3706283ec6b 100644 --- a/cl/phase1/core/state/util.go +++ b/cl/phase1/core/state/util.go @@ -29,7 +29,7 @@ func GetIndexedAttestation(attestation *solid.Attestation, attestingIndicies []u return attestingIndicies[i] < attestingIndicies[j] }) return &cltypes.IndexedAttestation{ - AttestingIndices: solid.NewUint64ListSSZFromSlice(2048, attestingIndicies), + AttestingIndices: solid.NewRawUint64List(2048, attestingIndicies), Data: attestation.AttestantionData(), Signature: attestation.Signature(), } diff --git a/cl/phase1/execution_client/execution_client.go b/cl/phase1/execution_client/execution_client.go deleted file mode 100644 index fdfbb3aa6c3..00000000000 --- a/cl/phase1/execution_client/execution_client.go +++ /dev/null @@ -1,251 +0,0 @@ -package execution_client - -import ( - "context" - "encoding/binary" - "fmt" - "math/big" - "time" - - "github.com/c2h5oh/datasize" - "github.com/holiman/uint256" - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/gointerfaces" - "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" - types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types" - "github.com/ledgerwatch/log/v3" - - "google.golang.org/grpc" - "google.golang.org/grpc/credentials/insecure" - "google.golang.org/grpc/keepalive" - - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/phase1/execution_client/rpc_helper" - "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/turbo/engineapi/engine_types" -) - -const fcuTimeout = 12 * time.Second - -// ExecutionClient interfaces with the Erigon-EL component consensus side. -type ExecutionClient struct { - client execution.ExecutionClient - ctx context.Context -} - -func HeaderRpcToHeader(header *execution.Header) (*types.Header, error) { - var blockNonce types.BlockNonce - binary.BigEndian.PutUint64(blockNonce[:], header.Nonce) - h := &types.Header{ - ParentHash: gointerfaces.ConvertH256ToHash(header.ParentHash), - UncleHash: gointerfaces.ConvertH256ToHash(header.OmmerHash), - Coinbase: gointerfaces.ConvertH160toAddress(header.Coinbase), - Root: gointerfaces.ConvertH256ToHash(header.StateRoot), - TxHash: gointerfaces.ConvertH256ToHash(header.TransactionHash), - ReceiptHash: gointerfaces.ConvertH256ToHash(header.ReceiptRoot), - Bloom: gointerfaces.ConvertH2048ToBloom(header.LogsBloom), - Difficulty: gointerfaces.ConvertH256ToUint256Int(header.Difficulty).ToBig(), - Number: big.NewInt(int64(header.BlockNumber)), - GasLimit: header.GasLimit, - GasUsed: header.GasUsed, - Time: header.Timestamp, - Extra: header.ExtraData, - MixDigest: gointerfaces.ConvertH256ToHash(header.PrevRandao), - Nonce: blockNonce, - } - if header.BaseFeePerGas != nil { - h.BaseFee = gointerfaces.ConvertH256ToUint256Int(header.BaseFeePerGas).ToBig() - } - if header.WithdrawalHash != nil { - h.WithdrawalsHash = new(libcommon.Hash) - *h.WithdrawalsHash = gointerfaces.ConvertH256ToHash(header.WithdrawalHash) - } - blockHash := gointerfaces.ConvertH256ToHash(header.BlockHash) - if blockHash != h.Hash() { - return nil, fmt.Errorf("block %d, %x has invalid hash. expected: %x", header.BlockNumber, h.Hash(), blockHash) - } - return h, nil -} - -func HeaderToHeaderRPC(header *types.Header) *execution.Header { - difficulty := new(uint256.Int) - difficulty.SetFromBig(header.Difficulty) - - var baseFeeReply *types2.H256 - if header.BaseFee != nil { - var baseFee uint256.Int - baseFee.SetFromBig(header.BaseFee) - baseFeeReply = gointerfaces.ConvertUint256IntToH256(&baseFee) - } - var withdrawalHashReply *types2.H256 - if header.WithdrawalsHash != nil { - withdrawalHashReply = gointerfaces.ConvertHashToH256(*header.WithdrawalsHash) - } - return &execution.Header{ - ParentHash: gointerfaces.ConvertHashToH256(header.ParentHash), - Coinbase: gointerfaces.ConvertAddressToH160(header.Coinbase), - StateRoot: gointerfaces.ConvertHashToH256(header.Root), - TransactionHash: gointerfaces.ConvertHashToH256(header.TxHash), - LogsBloom: gointerfaces.ConvertBytesToH2048(header.Bloom[:]), - ReceiptRoot: gointerfaces.ConvertHashToH256(header.ReceiptHash), - PrevRandao: gointerfaces.ConvertHashToH256(header.MixDigest), - BlockNumber: header.Number.Uint64(), - Nonce: header.Nonce.Uint64(), - GasLimit: header.GasLimit, - GasUsed: header.GasUsed, - Timestamp: header.Time, - ExtraData: header.Extra, - Difficulty: gointerfaces.ConvertUint256IntToH256(difficulty), - BlockHash: gointerfaces.ConvertHashToH256(header.Hash()), - OmmerHash: gointerfaces.ConvertHashToH256(header.UncleHash), - BaseFeePerGas: baseFeeReply, - WithdrawalHash: withdrawalHashReply, - } - -} - -// NewExecutionClient establishes a client-side connection with Erigon-EL -func NewExecutionClient(ctx context.Context, addr string) (*ExecutionClient, error) { - // Set up dial options for the gRPC client connection - var dialOpts []grpc.DialOption - dialOpts = []grpc.DialOption{ - grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(int(16 * datasize.MB))), - grpc.WithKeepaliveParams(keepalive.ClientParameters{ - Time: 5 * time.Minute, - Timeout: 10 * time.Minute, - PermitWithoutStream: true, - }), - } - - // Add transport credentials to the dial options - dialOpts = append(dialOpts, grpc.WithTransportCredentials(insecure.NewCredentials())) - - // Create the gRPC client connection - conn, err := grpc.DialContext(ctx, addr, dialOpts...) - if err != nil { - // Return an error if the connection fails - return nil, fmt.Errorf("creating client connection to execution client: %w", err) - } - - // Return a new ExecutionClient struct with the gRPC client and context set as fields - return &ExecutionClient{ - client: execution.NewExecutionClient(conn), - ctx: ctx, - }, nil -} - -// InsertHeaders will send block bodies to execution client -func (ec *ExecutionClient) InsertHeaders(headers []*types.Header) error { - grpcHeaders := make([]*execution.Header, 0, len(headers)) - for _, header := range headers { - grpcHeaders = append(grpcHeaders, HeaderToHeaderRPC(header)) - } - _, err := ec.client.InsertHeaders(ec.ctx, &execution.InsertHeadersRequest{Headers: grpcHeaders}) - return err -} - -// InsertBodies will send block bodies to execution client -func (ec *ExecutionClient) InsertBodies(bodies []*types.RawBody, blockHashes []libcommon.Hash, blockNumbers []uint64) error { - if len(bodies) != len(blockHashes) || len(bodies) != len(blockNumbers) { - return fmt.Errorf("unbalanced inputs") - } - grpcBodies := make([]*execution.BlockBody, 0, len(bodies)) - for i, body := range bodies { - grpcBodies = append(grpcBodies, &execution.BlockBody{ - BlockHash: gointerfaces.ConvertHashToH256(blockHashes[i]), - BlockNumber: blockNumbers[i], - Transactions: body.Transactions, - Withdrawals: engine_types.ConvertWithdrawalsToRpc(body.Withdrawals), - }) - } - _, err := ec.client.InsertBodies(ec.ctx, &execution.InsertBodiesRequest{Bodies: grpcBodies}) - return err -} - -// InsertExecutionPayloads insert a segment of execution payloads -func (ec *ExecutionClient) InsertExecutionPayloads(payloads []*cltypes.Eth1Block) error { - headers := make([]*types.Header, 0, len(payloads)) - bodies := make([]*types.RawBody, 0, len(payloads)) - blockHashes := make([]libcommon.Hash, 0, len(payloads)) - blockNumbers := make([]uint64, 0, len(payloads)) - - for _, payload := range payloads { - rlpHeader, err := payload.RlpHeader() - if err != nil { - return err - } - headers = append(headers, rlpHeader) - bodies = append(bodies, payload.Body()) - blockHashes = append(blockHashes, payload.BlockHash) - blockNumbers = append(blockNumbers, payload.BlockNumber) - } - - if err := ec.InsertHeaders(headers); err != nil { - return err - } - return ec.InsertBodies(bodies, blockHashes, blockNumbers) -} - -func (ec *ExecutionClient) ForkChoiceUpdate(headHash libcommon.Hash) (*execution.ForkChoiceReceipt, error) { - log.Debug("[ExecutionClientRpc] Calling EL", "method", rpc_helper.ForkChoiceUpdatedV1) - - return ec.client.UpdateForkChoice(ec.ctx, &execution.ForkChoice{ - HeadBlockHash: gointerfaces.ConvertHashToH256(headHash), - Timeout: uint64(fcuTimeout.Milliseconds()), - }) -} - -func (ec *ExecutionClient) IsCanonical(hash libcommon.Hash) (bool, error) { - resp, err := ec.client.IsCanonicalHash(ec.ctx, gointerfaces.ConvertHashToH256(hash)) - if err != nil { - return false, err - } - return resp.Canonical, nil -} - -func (ec *ExecutionClient) ReadHeader(number uint64, blockHash libcommon.Hash) (*types.Header, error) { - resp, err := ec.client.GetHeader(ec.ctx, &execution.GetSegmentRequest{ - BlockNumber: &number, - BlockHash: gointerfaces.ConvertHashToH256(blockHash), - }) - if err != nil { - return nil, err - } - - return HeaderRpcToHeader(resp.Header) -} - -func (ec *ExecutionClient) ReadExecutionPayload(number uint64, blockHash libcommon.Hash) (*cltypes.Eth1Block, error) { - header, err := ec.ReadHeader(number, blockHash) - if err != nil { - return nil, err - } - body, err := ec.ReadBody(number, blockHash) - if err != nil { - return nil, err - } - return cltypes.NewEth1BlockFromHeaderAndBody(header, body), nil -} - -func (ec *ExecutionClient) ReadBody(number uint64, blockHash libcommon.Hash) (*types.RawBody, error) { - resp, err := ec.client.GetBody(ec.ctx, &execution.GetSegmentRequest{ - BlockNumber: &number, - BlockHash: gointerfaces.ConvertHashToH256(blockHash), - }) - if err != nil { - return nil, err - } - uncles := make([]*types.Header, 0, len(resp.Body.Uncles)) - for _, uncle := range resp.Body.Uncles { - h, err := HeaderRpcToHeader(uncle) - if err != nil { - return nil, err - } - uncles = append(uncles, h) - } - return &types.RawBody{ - Transactions: resp.Body.Transactions, - Uncles: uncles, - Withdrawals: engine_types.ConvertWithdrawalsFromRpc(resp.Body.Withdrawals), - }, nil -} diff --git a/cl/phase1/execution_client/execution_client_direct.go b/cl/phase1/execution_client/execution_client_direct.go index da21fdf3d2b..9f8eb1f50a7 100644 --- a/cl/phase1/execution_client/execution_client_direct.go +++ b/cl/phase1/execution_client/execution_client_direct.go @@ -3,26 +3,23 @@ package execution_client import ( "context" "fmt" - "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/common/hexutil" - "github.com/ledgerwatch/erigon/turbo/engineapi" - "github.com/ledgerwatch/erigon/turbo/engineapi/engine_types" - "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/turbo/execution/eth1/eth1_chain_reader.go" ) type ExecutionClientDirect struct { - api engineapi.EngineAPI - ctx context.Context + chainRW eth1_chain_reader.ChainReaderWriterEth1 + ctx context.Context } -func NewExecutionClientDirect(ctx context.Context, api engineapi.EngineAPI) (*ExecutionClientDirect, error) { +func NewExecutionClientDirect(ctx context.Context, chainRW eth1_chain_reader.ChainReaderWriterEth1) (*ExecutionClientDirect, error) { return &ExecutionClientDirect{ - api: api, - ctx: ctx, + chainRW: chainRW, + ctx: ctx, }, nil } @@ -31,81 +28,74 @@ func (cc *ExecutionClientDirect) NewPayload(payload *cltypes.Eth1Block, beaconPa return } - reversedBaseFeePerGas := libcommon.Copy(payload.BaseFeePerGas[:]) - for i, j := 0, len(reversedBaseFeePerGas)-1; i < j; i, j = i+1, j-1 { - reversedBaseFeePerGas[i], reversedBaseFeePerGas[j] = reversedBaseFeePerGas[j], reversedBaseFeePerGas[i] - } - baseFee := new(big.Int).SetBytes(reversedBaseFeePerGas) - - request := engine_types.ExecutionPayload{ - ParentHash: payload.ParentHash, - FeeRecipient: payload.FeeRecipient, - StateRoot: payload.StateRoot, - ReceiptsRoot: payload.ReceiptsRoot, - LogsBloom: payload.LogsBloom[:], - PrevRandao: payload.PrevRandao, - BlockNumber: hexutil.Uint64(payload.BlockNumber), - GasLimit: hexutil.Uint64(payload.GasLimit), - GasUsed: hexutil.Uint64(payload.GasUsed), - Timestamp: hexutil.Uint64(payload.Time), - ExtraData: payload.Extra.Bytes(), - BlockHash: payload.BlockHash, + header, err := payload.RlpHeader() + if err != nil { + return true, err } - request.BaseFeePerGas = new(hexutil.Big) - *request.BaseFeePerGas = hexutil.Big(*baseFee) - payloadBody := payload.Body() - // Setup transactionbody - request.Withdrawals = payloadBody.Withdrawals - - for _, bytesTransaction := range payloadBody.Transactions { - request.Transactions = append(request.Transactions, bytesTransaction) - } - // Process Deneb - if payload.Version() >= clparams.DenebVersion { - request.BlobGasUsed = new(hexutil.Uint64) - request.ExcessBlobGas = new(hexutil.Uint64) - *request.BlobGasUsed = hexutil.Uint64(payload.BlobGasUsed) - *request.ExcessBlobGas = hexutil.Uint64(payload.ExcessBlobGas) + body := payload.Body() + txs, err := types.DecodeTransactions(body.Transactions) + if err != nil { + return true, err } - payloadStatus := &engine_types.PayloadStatus{} // As it is done in the rpcdaemon - - // determine the engine method - switch payload.Version() { - case clparams.BellatrixVersion: - payloadStatus, err = cc.api.NewPayloadV1(cc.ctx, &request) - case clparams.CapellaVersion: - payloadStatus, err = cc.api.NewPayloadV2(cc.ctx, &request) - case clparams.DenebVersion: - //TODO: Add 4844 and 4788 fields correctly - payloadStatus, err = cc.api.NewPayloadV3(cc.ctx, &request, nil, beaconParentRoot) - default: - err = fmt.Errorf("invalid payload version") + if err := cc.chainRW.InsertBlockAndWait(types.NewBlockFromStorage(payload.BlockHash, header, txs, nil, body.Withdrawals)); err != nil { + return false, err } + + status, _, err := cc.chainRW.ValidateChain(payload.BlockHash, payload.BlockNumber) if err != nil { - err = fmt.Errorf("execution Client RPC failed to retrieve the NewPayload status response, err: %w", err) - return + return false, err } + invalid = status == execution.ExecutionStatus_BadBlock - invalid = payloadStatus.Status == engine_types.InvalidStatus || payloadStatus.Status == engine_types.InvalidBlockHashStatus - err = checkPayloadStatus(payloadStatus) - if payloadStatus.Status == engine_types.AcceptedStatus { - log.Info("[ExecutionClientRpc] New block accepted") - } return } func (cc *ExecutionClientDirect) ForkChoiceUpdate(finalized libcommon.Hash, head libcommon.Hash) error { - forkChoiceRequest := engine_types.ForkChoiceState{ - HeadHash: head, - SafeBlockHash: head, - FinalizedBlockHash: finalized, - } - - forkChoiceResp, err := cc.api.ForkchoiceUpdatedV2(cc.ctx, &forkChoiceRequest, nil) + status, _, err := cc.chainRW.UpdateForkChoice(head, head, finalized) if err != nil { return fmt.Errorf("execution Client RPC failed to retrieve ForkChoiceUpdate response, err: %w", err) } - return checkPayloadStatus(forkChoiceResp.PayloadStatus) + if status == execution.ExecutionStatus_InvalidForkchoice { + return fmt.Errorf("forkchoice was invalid") + } + if status == execution.ExecutionStatus_BadBlock { + return fmt.Errorf("bad block as forkchoice") + } + return nil +} + +func (cc *ExecutionClientDirect) SupportInsertion() bool { + return true +} + +func (cc *ExecutionClientDirect) InsertBlocks(blks []*types.Block) error { + return cc.chainRW.InsertBlocksAndWait(blks) +} + +func (cc *ExecutionClientDirect) InsertBlock(blk *types.Block) error { + return cc.chainRW.InsertBlockAndWait(blk) +} + +func (cc *ExecutionClientDirect) IsCanonicalHash(hash libcommon.Hash) (bool, error) { + return cc.chainRW.IsCanonicalHash(hash) +} + +func (cc *ExecutionClientDirect) Ready() (bool, error) { + return cc.chainRW.Ready() +} + +// GetBodiesByRange gets block bodies in given block range +func (cc *ExecutionClientDirect) GetBodiesByRange(start, count uint64) ([]*types.RawBody, error) { + return cc.chainRW.GetBodiesByRange(start, count) +} + +// GetBodiesByHashes gets block bodies with given hashes +func (cc *ExecutionClientDirect) GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error) { + return cc.chainRW.GetBodiesByHashes(hashes) +} + +func (cc *ExecutionClientDirect) FrozenBlocks() uint64 { + return cc.chainRW.FrozenBlocks() } diff --git a/cl/phase1/execution_client/execution_client_rpc.go b/cl/phase1/execution_client/execution_client_rpc.go index 87a488fb1ef..82515a2f5fb 100644 --- a/cl/phase1/execution_client/execution_client_rpc.go +++ b/cl/phase1/execution_client/execution_client_rpc.go @@ -3,6 +3,7 @@ package execution_client import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "net/http" "strings" @@ -12,7 +13,7 @@ import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/phase1/execution_client/rpc_helper" - "github.com/ledgerwatch/erigon/common/hexutil" + "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_types" "github.com/ledgerwatch/log/v3" @@ -163,3 +164,67 @@ func checkPayloadStatus(payloadStatus *engine_types.PayloadStatus) error { } return nil } + +func (cc *ExecutionClientRpc) SupportInsertion() bool { + return false +} + +func (cc *ExecutionClientRpc) InsertBlocks([]*types.Block) error { + panic("unimplemented") +} + +func (cc *ExecutionClientRpc) InsertBlock(*types.Block) error { + panic("unimplemented") +} + +func (cc *ExecutionClientRpc) IsCanonicalHash(libcommon.Hash) (bool, error) { + panic("unimplemented") +} + +func (cc *ExecutionClientRpc) Ready() (bool, error) { + return true, nil // Engine API is always ready +} + +// Range methods + +// GetBodiesByRange gets block bodies in given block range +func (cc *ExecutionClientRpc) GetBodiesByRange(start, count uint64) ([]*types.RawBody, error) { + result := []*engine_types.ExecutionPayloadBodyV1{} + + if err := cc.client.CallContext(cc.ctx, &result, rpc_helper.GetPayloadBodiesByRangeV1, hexutil.Uint64(start), hexutil.Uint64(count)); err != nil { + return nil, err + } + ret := make([]*types.RawBody, len(result)) + for i := range result { + ret[i] = &types.RawBody{ + Withdrawals: result[i].Withdrawals, + } + for _, txn := range result[i].Transactions { + ret[i].Transactions = append(ret[i].Transactions, txn) + } + } + return ret, nil +} + +// GetBodiesByHashes gets block bodies with given hashes +func (cc *ExecutionClientRpc) GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error) { + result := []*engine_types.ExecutionPayloadBodyV1{} + + if err := cc.client.CallContext(cc.ctx, &result, rpc_helper.GetPayloadBodiesByHashV1, hashes); err != nil { + return nil, err + } + ret := make([]*types.RawBody, len(result)) + for i := range result { + ret[i] = &types.RawBody{ + Withdrawals: result[i].Withdrawals, + } + for _, txn := range result[i].Transactions { + ret[i].Transactions = append(ret[i].Transactions, txn) + } + } + return ret, nil +} + +func (cc *ExecutionClientRpc) FrozenBlocks() uint64 { + panic("unimplemented") +} diff --git a/cl/phase1/execution_client/insert_batch.go b/cl/phase1/execution_client/insert_batch.go deleted file mode 100644 index 5f75096757a..00000000000 --- a/cl/phase1/execution_client/insert_batch.go +++ /dev/null @@ -1,54 +0,0 @@ -package execution_client - -import ( - "sync" - - "github.com/ledgerwatch/erigon/cl/cltypes" -) - -const batchSize = 10000 - -// InsertBatch is a struct for batching and inserting execution payloads. -type InsertBatch struct { - ec *ExecutionClient // The execution client to use for inserting payloads. - payloadBuf []*cltypes.Eth1Block // A buffer for storing execution payloads before they are inserted. - mu sync.Mutex // A mutex for synchronizing access to the payload buffer. -} - -// NewInsertBatch creates a new InsertBatch struct with the given execution client. -func NewInsertBatch(ec *ExecutionClient) *InsertBatch { - return &InsertBatch{ - ec: ec, - payloadBuf: make([]*cltypes.Eth1Block, 0, batchSize), - } -} - -// WriteExecutionPayload adds an execution payload to the payload buffer. If the buffer -// has reached the batch size, the payloads in the buffer are inserted using the -// execution client. -func (b *InsertBatch) WriteExecutionPayload(payload *cltypes.Eth1Block) error { - b.mu.Lock() - defer b.mu.Unlock() - - b.payloadBuf = append(b.payloadBuf, payload) - if len(b.payloadBuf) >= batchSize { - if err := b.Flush(); err != nil { - return err - } - } - return nil -} - -// Flush inserts the execution payloads in the payload buffer using the execution client. -func (b *InsertBatch) Flush() error { - b.mu.Lock() - defer b.mu.Unlock() - if len(b.payloadBuf) == 0 { - return nil - } - if err := b.ec.InsertExecutionPayloads(b.payloadBuf); err != nil { - return err - } - b.payloadBuf = b.payloadBuf[:0] // Clear the payload buffer. - return nil -} diff --git a/cl/phase1/execution_client/interface.go b/cl/phase1/execution_client/interface.go index e896b29f722..a83c60c9489 100644 --- a/cl/phase1/execution_client/interface.go +++ b/cl/phase1/execution_client/interface.go @@ -4,6 +4,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/core/types" ) var errContextExceeded = "rpc error: code = DeadlineExceeded desc = context deadline exceeded" @@ -13,4 +14,14 @@ var errContextExceeded = "rpc error: code = DeadlineExceeded desc = context dead type ExecutionEngine interface { NewPayload(payload *cltypes.Eth1Block, beaconParentRoot *libcommon.Hash) (bool, error) ForkChoiceUpdate(finalized libcommon.Hash, head libcommon.Hash) error + SupportInsertion() bool + InsertBlocks([]*types.Block) error + InsertBlock(*types.Block) error + IsCanonicalHash(libcommon.Hash) (bool, error) + Ready() (bool, error) + // Range methods + GetBodiesByRange(start, count uint64) ([]*types.RawBody, error) + GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error) + // Snapshots + FrozenBlocks() uint64 } diff --git a/cl/phase1/execution_client/rpc_helper/methods.go b/cl/phase1/execution_client/rpc_helper/methods.go index 68f039729e0..558dd6f0117 100644 --- a/cl/phase1/execution_client/rpc_helper/methods.go +++ b/cl/phase1/execution_client/rpc_helper/methods.go @@ -7,3 +7,6 @@ const EngineNewPayloadV3 = "engine_newPayloadV3" const ForkChoiceUpdatedV1 = "engine_forkchoiceUpdatedV1" const ForkChoiceUpdatedV2 = "engine_forkchoiceUpdatedV2" const ForkChoiceUpdatedV3 = "engine_forkchoiceUpdatedV3" + +const GetPayloadBodiesByHashV1 = "engine_getPayloadBodiesByHashV1" +const GetPayloadBodiesByRangeV1 = "engine_getPayloadBodiesByRangeV1" diff --git a/cl/phase1/forkchoice/checkpoint_state.go b/cl/phase1/forkchoice/checkpoint_state.go index 14a5ad90493..e5937fc3cc5 100644 --- a/cl/phase1/forkchoice/checkpoint_state.go +++ b/cl/phase1/forkchoice/checkpoint_state.go @@ -8,6 +8,7 @@ import ( "github.com/Giulio2002/bls" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" @@ -16,61 +17,86 @@ import ( const randaoMixesLength = 65536 -// Active returns if validator is active for given epoch -func (cv *checkpointValidator) active(epoch uint64) bool { - return cv.activationEpoch <= epoch && epoch < cv.exitEpoch -} - -type checkpointValidator struct { - publicKey [48]byte - activationEpoch uint64 - exitEpoch uint64 - balance uint64 - slashed bool -} - -type shuffledSet struct { - set []uint64 - lenActive uint64 -} - -// We only keep in memory a fraction of the beacon state +// We only keep in memory a fraction of the beacon state when it comes to checkpoint. type checkpointState struct { - beaconConfig *clparams.BeaconChainConfig - randaoMixes solid.HashVectorSSZ - shuffledSetsCache map[uint64]*shuffledSet // Map each epoch to its shuffled index - // public keys list - validators []*checkpointValidator + beaconConfig *clparams.BeaconChainConfig + randaoMixes solid.HashVectorSSZ + shuffledSet []uint64 // shuffled set of active validators + // validator data + balances []uint64 + // These are flattened to save memory and anchor public keys are static and shared. + anchorPublicKeys []byte // flattened base public keys + publicKeys []byte // flattened public keys + actives []byte + slasheds []byte + + validatorSetSize int // fork data genesisValidatorsRoot libcommon.Hash fork *cltypes.Fork activeBalance, epoch uint64 // current active balance and epoch } -func newCheckpointState(beaconConfig *clparams.BeaconChainConfig, validatorSet []solid.Validator, randaoMixes solid.HashVectorSSZ, +func writeToBitset(bitset []byte, i int, value bool) { + bitIndex := i % 8 + sliceIndex := i / 8 + if value { + bitset[sliceIndex] = ((1 << bitIndex) | bitset[sliceIndex]) + } else { + bitset[sliceIndex] &= ^(1 << uint(bitIndex)) + } +} + +func readFromBitset(bitset []byte, i int) bool { + bitIndex := i % 8 + sliceIndex := i / 8 + return (bitset[sliceIndex] & (1 << uint(bitIndex))) > 0 +} + +func newCheckpointState(beaconConfig *clparams.BeaconChainConfig, anchorPublicKeys []byte, validatorSet []solid.Validator, randaoMixes solid.HashVectorSSZ, genesisValidatorsRoot libcommon.Hash, fork *cltypes.Fork, activeBalance, epoch uint64) *checkpointState { - validators := make([]*checkpointValidator, len(validatorSet)) + publicKeys := make([]byte, (len(validatorSet)-(len(anchorPublicKeys)/length.Bytes48))*length.Bytes48) + balances := make([]uint64, len(validatorSet)) + + bitsetSize := (len(validatorSet) + 7) / 8 + actives := make([]byte, bitsetSize) + slasheds := make([]byte, bitsetSize) for i := range validatorSet { - validators[i] = &checkpointValidator{ - publicKey: validatorSet[i].PublicKey(), - activationEpoch: validatorSet[i].ActivationEpoch(), - exitEpoch: validatorSet[i].ExitEpoch(), - balance: validatorSet[i].EffectiveBalance(), - slashed: validatorSet[i].Slashed(), - } + balances[i] = validatorSet[i].EffectiveBalance() + writeToBitset(actives, i, validatorSet[i].Active(epoch)) + writeToBitset(slasheds, i, validatorSet[i].Slashed()) } + // Add the post-anchor public keys as surplus + for i := len(anchorPublicKeys) / length.Bytes48; i < len(validatorSet); i++ { + pos := i - len(anchorPublicKeys)/length.Bytes48 + copy(publicKeys[pos*length.Bytes48:], validatorSet[i].PublicKeyBytes()) + } + mixes := solid.NewHashVector(randaoMixesLength) randaoMixes.CopyTo(mixes) - return &checkpointState{ + + // bitsets size + c := &checkpointState{ beaconConfig: beaconConfig, randaoMixes: mixes, - validators: validators, + balances: balances, + anchorPublicKeys: anchorPublicKeys, + publicKeys: publicKeys, genesisValidatorsRoot: genesisValidatorsRoot, fork: fork, - shuffledSetsCache: map[uint64]*shuffledSet{}, activeBalance: activeBalance, - epoch: epoch, + slasheds: slasheds, + actives: actives, + validatorSetSize: len(validatorSet), + + epoch: epoch, } + mixPosition := (epoch + beaconConfig.EpochsPerHistoricalVector - beaconConfig.MinSeedLookahead - 1) % + beaconConfig.EpochsPerHistoricalVector + activeIndicies := c.getActiveIndicies(epoch) + c.shuffledSet = make([]uint64, len(activeIndicies)) + c.shuffledSet = shuffling.ComputeShuffledIndicies(c.beaconConfig, c.randaoMixes.Get(int(mixPosition)), c.shuffledSet, activeIndicies, epoch*beaconConfig.SlotsPerEpoch) + return c } // getAttestingIndicies retrieves the beacon committee. @@ -79,30 +105,14 @@ func (c *checkpointState) getAttestingIndicies(attestation *solid.AttestationDat slot := attestation.Slot() epoch := c.epochAtSlot(slot) // Compute shuffled indicies - var shuffledIndicies []uint64 - var lenIndicies uint64 - - beaconConfig := c.beaconConfig - mixPosition := (epoch + beaconConfig.EpochsPerHistoricalVector - beaconConfig.MinSeedLookahead - 1) % - beaconConfig.EpochsPerHistoricalVector - // Input for the seed hash. - - if shuffledIndicesCached, ok := c.shuffledSetsCache[epoch]; ok { - shuffledIndicies = shuffledIndicesCached.set - lenIndicies = shuffledIndicesCached.lenActive - } else { - activeIndicies := c.getActiveIndicies(epoch) - lenIndicies = uint64(len(activeIndicies)) - shuffledIndicies = shuffling.ComputeShuffledIndicies(c.beaconConfig, c.randaoMixes.Get(int(mixPosition)), activeIndicies, slot) - c.shuffledSetsCache[epoch] = &shuffledSet{set: shuffledIndicies, lenActive: uint64(len(activeIndicies))} - } + lenIndicies := uint64(len(c.shuffledSet)) committeesPerSlot := c.committeeCount(epoch, lenIndicies) count := committeesPerSlot * c.beaconConfig.SlotsPerEpoch index := (slot%c.beaconConfig.SlotsPerEpoch)*committeesPerSlot + attestation.ValidatorIndex() start := (lenIndicies * index) / count end := (lenIndicies * (index + 1)) / count - committee := shuffledIndicies[start:end] + committee := c.shuffledSet[start:end] attestingIndices := []uint64{} for i, member := range committee { @@ -119,8 +129,8 @@ func (c *checkpointState) getAttestingIndicies(attestation *solid.AttestationDat } func (c *checkpointState) getActiveIndicies(epoch uint64) (activeIndicies []uint64) { - for i, validator := range c.validators { - if !validator.active(epoch) { + for i := 0; i < c.validatorSetSize; i++ { + if !readFromBitset(c.actives, i) { continue } activeIndicies = append(activeIndicies, uint64(i)) @@ -156,8 +166,12 @@ func (c *checkpointState) isValidIndexedAttestation(att *cltypes.IndexedAttestat pks := [][]byte{} inds.Range(func(_ int, v uint64, _ int) bool { - publicKey := c.validators[v].publicKey - pks = append(pks, publicKey[:]) + if v < uint64(len(c.anchorPublicKeys)) { + pks = append(pks, c.anchorPublicKeys[v*length.Bytes48:(v+1)*length.Bytes48]) + } else { + offset := uint64(len(c.anchorPublicKeys) / length.Bytes48) + pks = append(pks, c.publicKeys[(v-offset)*length.Bytes48:]) + } return true }) diff --git a/cl/phase1/forkchoice/fork_choice_test.go b/cl/phase1/forkchoice/fork_choice_test.go index 76f2153faac..4b5c5d81975 100644 --- a/cl/phase1/forkchoice/fork_choice_test.go +++ b/cl/phase1/forkchoice/fork_choice_test.go @@ -1,12 +1,16 @@ package forkchoice_test import ( + "context" _ "embed" "testing" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" + "github.com/ledgerwatch/erigon/cl/pool" + "github.com/spf13/afero" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -36,7 +40,7 @@ func TestForkChoiceBasic(t *testing.T) { expectedCheckpoint := solid.NewCheckpointFromParameters(libcommon.HexToHash("0x564d76d91f66c1fb2977484a6184efda2e1c26dd01992e048353230e10f83201"), 0) // Decode test blocks - block0x3a, block0xc2, block0xd4 := &cltypes.SignedBeaconBlock{}, &cltypes.SignedBeaconBlock{}, &cltypes.SignedBeaconBlock{} + block0x3a, block0xc2, block0xd4 := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig), cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig), cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) require.NoError(t, utils.DecodeSSZSnappy(block0x3a, block3aEncoded, int(clparams.AltairVersion))) require.NoError(t, utils.DecodeSSZSnappy(block0xc2, blockc2Encoded, int(clparams.AltairVersion))) require.NoError(t, utils.DecodeSSZSnappy(block0xd4, blockd4Encoded, int(clparams.AltairVersion))) @@ -46,7 +50,8 @@ func TestForkChoiceBasic(t *testing.T) { // Initialize forkchoice store anchorState := state.New(&clparams.MainnetBeaconConfig) require.NoError(t, utils.DecodeSSZSnappy(anchorState, anchorStateEncoded, int(clparams.AltairVersion))) - store, err := forkchoice.NewForkChoiceStore(anchorState, nil, nil, false) + pool := pool.NewOperationsPool(&clparams.MainnetBeaconConfig) + store, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool, fork_graph.NewForkGraphDisk(anchorState, afero.NewMemMapFs())) require.NoError(t, err) // first steps store.OnTick(0) @@ -85,4 +90,20 @@ func TestForkChoiceBasic(t *testing.T) { require.Equal(t, headRoot, libcommon.HexToHash("0x744cc484f6503462f0f3a5981d956bf4fcb3e57ab8687ed006467e05049ee033")) // lastly do attestation require.NoError(t, store.OnAttestation(testAttestation, false)) + // Try processing a voluntary exit + err = store.OnVoluntaryExit(&cltypes.SignedVoluntaryExit{ + VoluntaryExit: &cltypes.VoluntaryExit{ + Epoch: 0, + ValidatorIndex: 0, + }, + }, true) + require.NoError(t, err) + // Try processing a bls execution change exit + err = store.OnBlsToExecutionChange(&cltypes.SignedBLSToExecutionChange{ + Message: &cltypes.BLSToExecutionChange{ + ValidatorIndex: 0, + }, + }, true) + require.NoError(t, err) + require.Equal(t, len(pool.VoluntaryExistsPool.Raw()), 1) } diff --git a/cl/phase1/forkchoice/fork_graph/fork_graph.go b/cl/phase1/forkchoice/fork_graph/fork_graph.go deleted file mode 100644 index 5c957b63406..00000000000 --- a/cl/phase1/forkchoice/fork_graph/fork_graph.go +++ /dev/null @@ -1,335 +0,0 @@ -package fork_graph - -import ( - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/transition" - "github.com/ledgerwatch/log/v3" - "golang.org/x/exp/slices" -) - -type ChainSegmentInsertionResult uint - -const ( - Success ChainSegmentInsertionResult = 0 - InvalidBlock ChainSegmentInsertionResult = 1 - MissingSegment ChainSegmentInsertionResult = 2 - BelowAnchor ChainSegmentInsertionResult = 3 - LogisticError ChainSegmentInsertionResult = 4 - PreValidated ChainSegmentInsertionResult = 5 -) - -const snapshotStateEverySlot = 64 - -/* -* The state store process is related to graph theory in the sense that the Ethereum blockchain can be thought of as a directed graph, -* where each block represents a node and the links between blocks represent directed edges. -* In this context, rolling back the state of Ethereum to a previous state can be thought of as traversing the graph in reverse, -* from the current state to a previous state. -* The process of reverting the state involves undoing the changes made in the blocks that have been added to the blockchain since the previous state. -* This can be thought of as "reversing the edges" in the graph, effectively undoing the changes made to the state of Ethereum. -* By thinking of the Ethereum blockchain as a graph, we can use graph theory concepts, such as traversal algorithms, -* to analyze and manipulate the state of the blockchain. - */ - -// ForkGraph is our graph for ETH 2.0 consensus forkchoice. Each node is a (block root, changes) pair and -// each edge is the path described as (prevBlockRoot, currBlockRoot). if we want to go forward we use blocks. -type ForkGraph struct { - // Alternate beacon states - currentReferenceState *state.CachingBeaconState - nextReferenceState *state.CachingBeaconState - blocks map[libcommon.Hash]*cltypes.SignedBeaconBlock // set of blocks - headers map[libcommon.Hash]*cltypes.BeaconBlockHeader // set of headers - badBlocks map[libcommon.Hash]struct{} // blocks that are invalid and that leads to automatic fail of extension. - // current state data - currentState *state.CachingBeaconState - currentStateBlockRoot libcommon.Hash - // childrens maps each block roots to its children block roots - childrens map[libcommon.Hash][]libcommon.Hash - // for each block root we also keep track of te equivalent current justified and finalized checkpoints for faster head retrieval. - currentJustifiedCheckpoints map[libcommon.Hash]solid.Checkpoint - finalizedCheckpoints map[libcommon.Hash]solid.Checkpoint - // Disable for tests - enabledPruning bool - // configurations - beaconCfg *clparams.BeaconChainConfig - genesisTime uint64 - // highest block seen - highestSeen uint64 -} - -func (f *ForkGraph) AnchorSlot() uint64 { - return f.currentReferenceState.Slot() -} - -// Initialize fork graph with a new state -func New(anchorState *state.CachingBeaconState, enabledPruning bool) *ForkGraph { - farthestExtendingPath := make(map[libcommon.Hash]bool) - anchorRoot, err := anchorState.BlockRoot() - if err != nil { - panic(err) - } - headers := make(map[libcommon.Hash]*cltypes.BeaconBlockHeader) - anchorHeader := anchorState.LatestBlockHeader() - if anchorHeader.Root, err = anchorState.HashSSZ(); err != nil { - panic(err) - } - headers[anchorRoot] = &anchorHeader - - farthestExtendingPath[anchorRoot] = true - currentStateReference, err := anchorState.Copy() - if err != nil { - panic(err) - } - nextStateReference, err := anchorState.Copy() - if err != nil { - panic(err) - } - return &ForkGraph{ - currentReferenceState: currentStateReference, - nextReferenceState: nextStateReference, - // storage - blocks: make(map[libcommon.Hash]*cltypes.SignedBeaconBlock), - headers: headers, - badBlocks: make(map[libcommon.Hash]struct{}), - // current state data - currentState: anchorState, - currentStateBlockRoot: anchorRoot, - // childrens - childrens: make(map[libcommon.Hash][]libcommon.Hash), - // checkpoints trackers - currentJustifiedCheckpoints: make(map[libcommon.Hash]solid.Checkpoint), - finalizedCheckpoints: make(map[libcommon.Hash]solid.Checkpoint), - enabledPruning: enabledPruning, - // configuration - beaconCfg: anchorState.BeaconConfig(), - genesisTime: anchorState.GenesisTime(), - } -} - -// Add a new node and edge to the graph -func (f *ForkGraph) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, fullValidation bool) (*state.CachingBeaconState, ChainSegmentInsertionResult, error) { - block := signedBlock.Block - blockRoot, err := block.HashSSZ() - if err != nil { - return nil, LogisticError, err - } - - if _, ok := f.headers[blockRoot]; ok { - return nil, PreValidated, nil - } - // Blocks below anchors are invalid. - if block.Slot <= f.currentReferenceState.Slot() { - log.Debug("block below anchor slot", "slot", block.Slot, "hash", libcommon.Hash(blockRoot)) - f.badBlocks[blockRoot] = struct{}{} - return nil, BelowAnchor, nil - } - // Check if block being process right now was marked as invalid. - if _, ok := f.badBlocks[blockRoot]; ok { - log.Debug("block has invalid parent", "slot", block.Slot, "hash", libcommon.Hash(blockRoot)) - f.badBlocks[blockRoot] = struct{}{} - return nil, InvalidBlock, nil - } - - newState, didLongRecconnection, err := f.GetState(block.ParentRoot, false) - if err != nil { - return nil, InvalidBlock, err - } - if newState == nil { - log.Debug("AddChainSegment: missing segment", "block", libcommon.Hash(blockRoot)) - return nil, MissingSegment, nil - } - // if we did so by long recconection, i am afraid we need to discard the current state. - if didLongRecconnection { - log.Debug("AddChainSegment: Resetting state reference as it was orphaned") - f.currentReferenceState.CopyInto(f.nextReferenceState) - } - - // Execute the state - if invalidBlockErr := transition.TransitionState(newState, signedBlock, fullValidation); invalidBlockErr != nil { - // Add block to list of invalid blocks - log.Debug("Invalid beacon block", "reason", invalidBlockErr) - f.badBlocks[blockRoot] = struct{}{} - f.nextReferenceState.CopyInto(f.currentState) - f.currentStateBlockRoot, err = f.nextReferenceState.BlockRoot() - if err != nil { - log.Error("[Caplin] Could not recover from invalid block") - } - return nil, InvalidBlock, invalidBlockErr - } - - f.blocks[blockRoot] = signedBlock - bodyRoot, err := signedBlock.Block.Body.HashSSZ() - if err != nil { - return nil, LogisticError, err - } - f.headers[blockRoot] = &cltypes.BeaconBlockHeader{ - Slot: block.Slot, - ProposerIndex: block.ProposerIndex, - ParentRoot: block.ParentRoot, - Root: block.StateRoot, - BodyRoot: bodyRoot, - } - // Update the children of the parent - f.updateChildren(block.ParentRoot, blockRoot) - // Lastly add checkpoints to caches as well. - f.currentJustifiedCheckpoints[blockRoot] = newState.CurrentJustifiedCheckpoint().Copy() - f.finalizedCheckpoints[blockRoot] = newState.FinalizedCheckpoint().Copy() - if newState.Slot() > f.highestSeen { - f.highestSeen = newState.Slot() - f.currentState = newState - f.currentStateBlockRoot = blockRoot - if newState.Slot()%snapshotStateEverySlot == 0 && f.nextReferenceState.Slot() > f.beaconCfg.SlotsPerEpoch && f.enabledPruning { - if err := f.removeOldData(); err != nil { - return nil, LogisticError, err - } - } - } - return newState, Success, nil -} - -func (f *ForkGraph) GenesisTime() uint64 { - return f.genesisTime -} - -func (f *ForkGraph) Config() *clparams.BeaconChainConfig { - return f.beaconCfg -} - -func (f *ForkGraph) GetHeader(blockRoot libcommon.Hash) (*cltypes.BeaconBlockHeader, bool) { - obj, has := f.headers[blockRoot] - return obj, has -} - -func (f *ForkGraph) getBlock(blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlock, bool) { - obj, has := f.blocks[blockRoot] - return obj, has -} - -func (f *ForkGraph) GetState(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, bool, error) { - // collect all blocks beetwen greatest extending node path and block. - blocksInTheWay := []*cltypes.SignedBeaconBlock{} - // Use the parent root as a reverse iterator. - currentIteratorRoot := blockRoot - // use the current reference state root as reconnectio - reconnectionRootLong, err := f.currentReferenceState.BlockRoot() - if err != nil { - return nil, false, err - } - reconnectionRootShort, err := f.nextReferenceState.BlockRoot() - if err != nil { - return nil, false, err - } - // try and find the point of recconection - for currentIteratorRoot != reconnectionRootLong && currentIteratorRoot != reconnectionRootShort { - block, isSegmentPresent := f.getBlock(currentIteratorRoot) - if !isSegmentPresent { - log.Debug("Could not retrieve state: Missing header", "missing", currentIteratorRoot, - "longRecconection", libcommon.Hash(reconnectionRootLong), "shortRecconection", libcommon.Hash(reconnectionRootShort)) - return nil, false, nil - } - blocksInTheWay = append(blocksInTheWay, block) - currentIteratorRoot = block.Block.ParentRoot - } - - var copyReferencedState *state.CachingBeaconState - didLongRecconnection := currentIteratorRoot == reconnectionRootLong && reconnectionRootLong != reconnectionRootShort - if f.currentStateBlockRoot == blockRoot { - if alwaysCopy { - s, err := f.currentState.Copy() - return s, didLongRecconnection, err - } - return f.currentState, didLongRecconnection, nil - } - // Take a copy to the reference state. - if currentIteratorRoot == reconnectionRootLong { - copyReferencedState, err = f.currentReferenceState.Copy() - if err != nil { - return nil, true, err - } - } else { - copyReferencedState, err = f.nextReferenceState.Copy() - if err != nil { - return nil, false, err - } - } - - // Traverse the blocks from top to bottom. - for i := len(blocksInTheWay) - 1; i >= 0; i-- { - if err := transition.TransitionState(copyReferencedState, blocksInTheWay[i], false); err != nil { - return nil, didLongRecconnection, err - } - } - return copyReferencedState, didLongRecconnection, nil -} - -// updateChildren adds a new child to the parent node hash. -func (f *ForkGraph) updateChildren(parent, child libcommon.Hash) { - childrens := f.childrens[parent] - if slices.Contains(childrens, child) { - return - } - childrens = append(childrens, child) - f.childrens[parent] = childrens -} - -// GetChildren retrieves the children block root of the given block root. -func (f *ForkGraph) GetChildren(parent libcommon.Hash) []libcommon.Hash { - return f.childrens[parent] -} - -func (f *ForkGraph) GetCurrentJustifiedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) { - obj, has := f.currentJustifiedCheckpoints[blockRoot] - return obj, has -} - -func (f *ForkGraph) GetFinalizedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) { - obj, has := f.finalizedCheckpoints[blockRoot] - return obj, has -} - -func (f *ForkGraph) MarkHeaderAsInvalid(blockRoot libcommon.Hash) { - f.badBlocks[blockRoot] = struct{}{} -} - -func (f *ForkGraph) removeOldData() (err error) { - pruneSlot := f.nextReferenceState.Slot() - f.beaconCfg.SlotsPerEpoch - oldRoots := make([]libcommon.Hash, 0, len(f.blocks)) - for hash, signedBlock := range f.blocks { - if signedBlock.Block.Slot >= pruneSlot { - continue - } - oldRoots = append(oldRoots, hash) - } - for _, root := range oldRoots { - delete(f.badBlocks, root) - delete(f.blocks, root) - delete(f.childrens, root) - delete(f.currentJustifiedCheckpoints, root) - delete(f.finalizedCheckpoints, root) - delete(f.headers, root) - } - // Lastly snapshot the state - err = f.nextReferenceState.CopyInto(f.currentReferenceState) - if err != nil { - panic(err) // dead at this point - } - err = f.currentState.CopyInto(f.nextReferenceState) - if err != nil { - panic(err) // dead at this point - } - // use the current reference state root as reconnectio - reconnectionRootLong, err := f.currentReferenceState.BlockRoot() - if err != nil { - panic(err) - } - reconnectionRootShort, err := f.nextReferenceState.BlockRoot() - if err != nil { - panic(err) - } - log.Debug("Pruned old blocks", "pruneSlot", pruneSlot, "longRecconection", libcommon.Hash(reconnectionRootLong), "shortRecconection", libcommon.Hash(reconnectionRootShort)) - return -} diff --git a/cl/phase1/forkchoice/fork_graph/fork_graph_disk.go b/cl/phase1/forkchoice/fork_graph/fork_graph_disk.go new file mode 100644 index 00000000000..d22d99905f3 --- /dev/null +++ b/cl/phase1/forkchoice/fork_graph/fork_graph_disk.go @@ -0,0 +1,390 @@ +package fork_graph + +import ( + "bytes" + "errors" + "sync" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/transition" + "github.com/ledgerwatch/log/v3" + "github.com/pierrec/lz4" + "github.com/spf13/afero" + "golang.org/x/exp/slices" +) + +var lz4PoolWriterPool = sync.Pool{ + New: func() interface{} { + return lz4.NewWriter(nil) + }, +} + +var lz4PoolReaderPool = sync.Pool{ + New: func() interface{} { + return lz4.NewReader(nil) + }, +} + +var ErrStateNotFound = errors.New("state not found") + +type ChainSegmentInsertionResult uint + +const ( + Success ChainSegmentInsertionResult = 0 + InvalidBlock ChainSegmentInsertionResult = 1 + MissingSegment ChainSegmentInsertionResult = 2 + BelowAnchor ChainSegmentInsertionResult = 3 + LogisticError ChainSegmentInsertionResult = 4 + PreValidated ChainSegmentInsertionResult = 5 +) + +type savedStateRecord struct { + slot uint64 +} + +// ForkGraph is our graph for ETH 2.0 consensus forkchoice. Each node is a (block root, changes) pair and +// each edge is the path described as (prevBlockRoot, currBlockRoot). if we want to go forward we use blocks. +type forkGraphDisk struct { + // Alternate beacon states + fs afero.Fs + blocks map[libcommon.Hash]*cltypes.SignedBeaconBlock // set of blocks + headers map[libcommon.Hash]*cltypes.BeaconBlockHeader // set of headers + badBlocks map[libcommon.Hash]struct{} // blocks that are invalid and that leads to automatic fail of extension. + + // TODO: this leaks, but it isn't a big deal since it's only ~24 bytes per block. + // the dirty solution is to just make it an LRU with max size of like 128 epochs or something probably? + stateRoots map[libcommon.Hash]libcommon.Hash // set of stateHash -> blockHash + + // current state data + currentState *state.CachingBeaconState + currentStateBlockRoot libcommon.Hash + + // saveStates are indexed by block index + saveStates map[libcommon.Hash]savedStateRecord + + // for each block root we also keep track of te equivalent current justified and finalized checkpoints for faster head retrieval. + currentJustifiedCheckpoints map[libcommon.Hash]solid.Checkpoint + finalizedCheckpoints map[libcommon.Hash]solid.Checkpoint + + // configurations + beaconCfg *clparams.BeaconChainConfig + genesisTime uint64 + // highest block seen + highestSeen, anchorSlot uint64 + + // reusable buffers + sszBuffer bytes.Buffer + sszSnappyBuffer bytes.Buffer +} + +// Initialize fork graph with a new state +func NewForkGraphDisk(anchorState *state.CachingBeaconState, aferoFs afero.Fs) ForkGraph { + farthestExtendingPath := make(map[libcommon.Hash]bool) + anchorRoot, err := anchorState.BlockRoot() + if err != nil { + panic(err) + } + headers := make(map[libcommon.Hash]*cltypes.BeaconBlockHeader) + anchorHeader := anchorState.LatestBlockHeader() + if anchorHeader.Root, err = anchorState.HashSSZ(); err != nil { + panic(err) + } + headers[anchorRoot] = &anchorHeader + + farthestExtendingPath[anchorRoot] = true + + f := &forkGraphDisk{ + fs: aferoFs, + // storage + blocks: make(map[libcommon.Hash]*cltypes.SignedBeaconBlock), + headers: headers, + badBlocks: make(map[libcommon.Hash]struct{}), + stateRoots: make(map[libcommon.Hash]libcommon.Hash), + // current state data + currentState: anchorState, + currentStateBlockRoot: anchorRoot, + saveStates: make(map[libcommon.Hash]savedStateRecord), + // checkpoints trackers + currentJustifiedCheckpoints: make(map[libcommon.Hash]solid.Checkpoint), + finalizedCheckpoints: make(map[libcommon.Hash]solid.Checkpoint), + // configuration + beaconCfg: anchorState.BeaconConfig(), + genesisTime: anchorState.GenesisTime(), + anchorSlot: anchorState.Slot(), + } + f.dumpBeaconStateOnDisk(anchorState, anchorRoot) + return f +} + +func (f *forkGraphDisk) AnchorSlot() uint64 { + return f.anchorSlot +} + +// Add a new node and edge to the graph +func (f *forkGraphDisk) AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, fullValidation bool) (*state.CachingBeaconState, ChainSegmentInsertionResult, error) { + block := signedBlock.Block + blockRoot, err := block.HashSSZ() + if err != nil { + return nil, LogisticError, err + } + + if _, ok := f.headers[blockRoot]; ok { + return nil, PreValidated, nil + } + // Blocks below anchors are invalid. + if block.Slot <= f.anchorSlot { + log.Debug("block below anchor slot", "slot", block.Slot, "hash", libcommon.Hash(blockRoot)) + f.badBlocks[blockRoot] = struct{}{} + return nil, BelowAnchor, nil + } + // Check if block being process right now was marked as invalid. + if _, ok := f.badBlocks[blockRoot]; ok { + log.Debug("block has invalid parent", "slot", block.Slot, "hash", libcommon.Hash(blockRoot)) + f.badBlocks[blockRoot] = struct{}{} + return nil, InvalidBlock, nil + } + + newState, err := f.GetState(block.ParentRoot, false) + if err != nil { + return nil, InvalidBlock, err + } + if newState == nil { + log.Debug("AddChainSegment: missing segment", "block", libcommon.Hash(blockRoot)) + return nil, MissingSegment, nil + } + + // Execute the state + if invalidBlockErr := transition.TransitionState(newState, signedBlock, fullValidation); invalidBlockErr != nil { + // Add block to list of invalid blocks + log.Debug("Invalid beacon block", "reason", invalidBlockErr) + f.badBlocks[blockRoot] = struct{}{} + f.currentStateBlockRoot = libcommon.Hash{} + f.currentState, err = f.GetState(block.ParentRoot, true) + if err != nil { + log.Error("[Caplin] Could not recover from invalid block", "err", err) + } else { + f.currentStateBlockRoot = block.ParentRoot + } + + return nil, InvalidBlock, invalidBlockErr + } + + f.blocks[blockRoot] = signedBlock + bodyRoot, err := signedBlock.Block.Body.HashSSZ() + if err != nil { + return nil, LogisticError, err + } + f.headers[blockRoot] = &cltypes.BeaconBlockHeader{ + Slot: block.Slot, + ProposerIndex: block.ProposerIndex, + ParentRoot: block.ParentRoot, + Root: block.StateRoot, + BodyRoot: bodyRoot, + } + + // add the state root + stateRoot, err := newState.HashSSZ() + if err != nil { + return nil, LogisticError, err + } + f.stateRoots[stateRoot] = blockRoot + + if newState.Slot()%f.beaconCfg.SlotsPerEpoch == 0 { + if err := f.dumpBeaconStateOnDisk(newState, blockRoot); err != nil { + return nil, LogisticError, err + } + f.saveStates[blockRoot] = savedStateRecord{slot: newState.Slot()} + } + + // Lastly add checkpoints to caches as well. + f.currentJustifiedCheckpoints[blockRoot] = newState.CurrentJustifiedCheckpoint().Copy() + f.finalizedCheckpoints[blockRoot] = newState.FinalizedCheckpoint().Copy() + if newState.Slot() > f.highestSeen { + f.highestSeen = newState.Slot() + f.currentState = newState + f.currentStateBlockRoot = blockRoot + } + return newState, Success, nil +} + +func (f *forkGraphDisk) GetHeader(blockRoot libcommon.Hash) (*cltypes.BeaconBlockHeader, bool) { + obj, has := f.headers[blockRoot] + return obj, has +} + +func (f *forkGraphDisk) getBlock(blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlock, bool) { + obj, has := f.blocks[blockRoot] + return obj, has +} + +// GetStateAtSlot is for getting a state based off the slot number +// NOTE: all this does is call GetStateAtSlot using the stateRoots index and existing blocks. +func (f *forkGraphDisk) GetStateAtStateRoot(root libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error) { + blockRoot, ok := f.stateRoots[root] + if !ok { + return nil, ErrStateNotFound + } + blockSlot, ok := f.blocks[blockRoot] + if !ok { + return nil, ErrStateNotFound + } + return f.GetStateAtSlot(blockSlot.Block.Slot, alwaysCopy) + +} + +// GetStateAtSlot is for getting a state based off the slot number +// TODO: this is rather inefficient. we could create indices that make it faster +func (f *forkGraphDisk) GetStateAtSlot(slot uint64, alwaysCopy bool) (*state.CachingBeaconState, error) { + // fast path for if the slot is the current slot + if f.currentState.Slot() == slot { + // always copy. + if alwaysCopy { + ret, err := f.currentState.Copy() + return ret, err + } + return f.currentState, nil + } + // if the slot requested is larger than the current slot, we know it is not found, so another fast path + if slot > f.currentState.Slot() { + return nil, ErrStateNotFound + } + if len(f.saveStates) == 0 { + return nil, ErrStateNotFound + } + bestSlot := uint64(0) + startHash := libcommon.Hash{} + // iterate over all savestates. there should be less than 10 of these, so this should be safe. + for blockHash, v := range f.saveStates { + // make sure the slot is smaller than the target slot + // (equality case caught by short circuit) + // and that the slot is larger than the current best found starting slot + if v.slot < slot && v.slot > bestSlot { + bestSlot = v.slot + startHash = blockHash + } + } + // no snapshot old enough to honor this request :( + if bestSlot == 0 { + return nil, ErrStateNotFound + } + copyReferencedState, err := f.readBeaconStateFromDisk(startHash) + if err != nil { + return nil, err + } + // cache lied? return state not found + if copyReferencedState == nil { + return nil, ErrStateNotFound + } + + // what we need to do is grab every block in our block store that is between the target slot and the current slot + // this is linear time from the distance to our last snapshot. + blocksInTheWay := []*cltypes.SignedBeaconBlock{} + for _, v := range f.blocks { + if v.Block.Slot <= f.currentState.Slot() && v.Block.Slot >= slot { + blocksInTheWay = append(blocksInTheWay, v) + } + } + + // sort the slots from low to high + slices.SortStableFunc(blocksInTheWay, func(a, b *cltypes.SignedBeaconBlock) int { + return int(a.Block.Slot) - int(b.Block.Slot) + }) + + // Traverse the blocks from top to bottom. + for _, block := range blocksInTheWay { + if err := transition.TransitionState(copyReferencedState, block, false); err != nil { + return nil, err + } + } + return copyReferencedState, nil +} + +func (f *forkGraphDisk) GetState(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error) { + if f.currentStateBlockRoot == blockRoot { + if alwaysCopy { + ret, err := f.currentState.Copy() + return ret, err + } + return f.currentState, nil + } + + // collect all blocks beetwen greatest extending node path and block. + blocksInTheWay := []*cltypes.SignedBeaconBlock{} + // Use the parent root as a reverse iterator. + currentIteratorRoot := blockRoot + + // try and find the point of recconection + for { + block, isSegmentPresent := f.getBlock(currentIteratorRoot) + if !isSegmentPresent { + // check if it is in the header + bHeader, ok := f.GetHeader(currentIteratorRoot) + if ok && bHeader.Slot%f.beaconCfg.SlotsPerEpoch == 0 { + break + } + log.Debug("Could not retrieve state: Missing header", "missing", currentIteratorRoot) + return nil, nil + } + if block.Block.Slot%f.beaconCfg.SlotsPerEpoch == 0 { + break + } + blocksInTheWay = append(blocksInTheWay, block) + currentIteratorRoot = block.Block.ParentRoot + } + copyReferencedState, err := f.readBeaconStateFromDisk(currentIteratorRoot) + if err != nil { + return nil, err + } + if copyReferencedState == nil { + return nil, ErrStateNotFound + } + + // Traverse the blocks from top to bottom. + for i := len(blocksInTheWay) - 1; i >= 0; i-- { + if err := transition.TransitionState(copyReferencedState, blocksInTheWay[i], false); err != nil { + return nil, err + } + } + return copyReferencedState, nil +} + +func (f *forkGraphDisk) GetCurrentJustifiedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) { + obj, has := f.currentJustifiedCheckpoints[blockRoot] + return obj, has +} + +func (f *forkGraphDisk) GetFinalizedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) { + obj, has := f.finalizedCheckpoints[blockRoot] + return obj, has +} + +func (f *forkGraphDisk) MarkHeaderAsInvalid(blockRoot libcommon.Hash) { + f.badBlocks[blockRoot] = struct{}{} +} + +func (f *forkGraphDisk) Prune(pruneSlot uint64) (err error) { + pruneSlot -= f.beaconCfg.SlotsPerEpoch * 2 + oldRoots := make([]libcommon.Hash, 0, len(f.blocks)) + for hash, signedBlock := range f.blocks { + if signedBlock.Block.Slot >= pruneSlot { + continue + } + oldRoots = append(oldRoots, hash) + } + for _, root := range oldRoots { + delete(f.badBlocks, root) + delete(f.blocks, root) + delete(f.currentJustifiedCheckpoints, root) + delete(f.finalizedCheckpoints, root) + delete(f.headers, root) + delete(f.saveStates, root) + f.fs.Remove(getBeaconStateFilename(root)) + f.fs.Remove(getBeaconStateCacheFilename(root)) + } + log.Debug("Pruned old blocks", "pruneSlot", pruneSlot) + return +} diff --git a/cl/phase1/forkchoice/fork_graph/fork_graph_disk_fs.go b/cl/phase1/forkchoice/fork_graph/fork_graph_disk_fs.go new file mode 100644 index 00000000000..e0ebf2a80f2 --- /dev/null +++ b/cl/phase1/forkchoice/fork_graph/fork_graph_disk_fs.go @@ -0,0 +1,153 @@ +package fork_graph + +import ( + "encoding/binary" + "fmt" + "os" + + "github.com/golang/snappy" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/pierrec/lz4" + "github.com/spf13/afero" +) + +func getBeaconStateFilename(blockRoot libcommon.Hash) string { + return fmt.Sprintf("%x.snappy_ssz", blockRoot) +} + +func getBeaconStateCacheFilename(blockRoot libcommon.Hash) string { + return fmt.Sprintf("%x.cache", blockRoot) +} + +func (f *forkGraphDisk) readBeaconStateFromDisk(blockRoot libcommon.Hash) (bs *state.CachingBeaconState, err error) { + var file afero.File + file, err = f.fs.Open(getBeaconStateFilename(blockRoot)) + + if err != nil { + return + } + defer file.Close() + // Read the version + v := []byte{0} + if _, err := file.Read(v); err != nil { + return nil, err + } + // Read the length + lengthBytes := make([]byte, 8) + _, err = file.Read(lengthBytes) + if err != nil { + return + } + // Grow the snappy buffer + f.sszSnappyBuffer.Grow(int(binary.BigEndian.Uint64(lengthBytes))) + // Read the snappy buffer + sszSnappyBuffer := f.sszSnappyBuffer.Bytes() + sszSnappyBuffer = sszSnappyBuffer[:cap(sszSnappyBuffer)] + var n int + n, err = file.Read(sszSnappyBuffer) + if err != nil { + return + } + + decLen, err := snappy.DecodedLen(sszSnappyBuffer[:n]) + if err != nil { + return + } + // Grow the plain ssz buffer + f.sszBuffer.Grow(decLen) + sszBuffer := f.sszBuffer.Bytes() + sszBuffer, err = snappy.Decode(sszBuffer, sszSnappyBuffer[:n]) + if err != nil { + return + } + bs = state.New(f.beaconCfg) + err = bs.DecodeSSZ(sszBuffer, int(v[0])) + // decode the cache file + cacheFile, err := f.fs.Open(getBeaconStateCacheFilename(blockRoot)) + if err != nil { + return + } + defer cacheFile.Close() + + lz4Reader := lz4PoolReaderPool.Get().(*lz4.Reader) + defer lz4PoolReaderPool.Put(lz4Reader) + + lz4Reader.Reset(cacheFile) + + if err := bs.DecodeCaches(lz4Reader); err != nil { + return nil, err + } + + return +} + +// dumpBeaconStateOnDisk dumps a beacon state on disk in ssz snappy format +func (f *forkGraphDisk) dumpBeaconStateOnDisk(bs *state.CachingBeaconState, blockRoot libcommon.Hash) (err error) { + // Truncate and then grow the buffer to the size of the state. + encodingSizeSSZ := bs.EncodingSizeSSZ() + f.sszBuffer.Grow(encodingSizeSSZ) + f.sszBuffer.Reset() + + sszBuffer := f.sszBuffer.Bytes() + sszBuffer, err = bs.EncodeSSZ(sszBuffer) + if err != nil { + return + } + // Grow the snappy buffer + f.sszSnappyBuffer.Grow(snappy.MaxEncodedLen(len(sszBuffer))) + // Compress the ssz buffer + sszSnappyBuffer := f.sszSnappyBuffer.Bytes() + sszSnappyBuffer = sszSnappyBuffer[:cap(sszSnappyBuffer)] + sszSnappyBuffer = snappy.Encode(sszSnappyBuffer, sszBuffer) + var dumpedFile afero.File + dumpedFile, err = f.fs.OpenFile(getBeaconStateFilename(blockRoot), os.O_TRUNC|os.O_CREATE|os.O_RDWR, 0o755) + if err != nil { + return + } + defer dumpedFile.Close() + // First write the hard fork version + _, err = dumpedFile.Write([]byte{byte(bs.Version())}) + if err != nil { + return + } + // Second write the length + length := make([]byte, 8) + binary.BigEndian.PutUint64(length, uint64(len(sszSnappyBuffer))) + _, err = dumpedFile.Write(length) + if err != nil { + return + } + // Lastly dump the state + _, err = dumpedFile.Write(sszSnappyBuffer) + if err != nil { + return + } + + err = dumpedFile.Sync() + if err != nil { + return + } + + cacheFile, err := f.fs.OpenFile(getBeaconStateCacheFilename(blockRoot), os.O_TRUNC|os.O_CREATE|os.O_RDWR, 0o755) + if err != nil { + return + } + defer cacheFile.Close() + + lz4Writer := lz4PoolWriterPool.Get().(*lz4.Writer) + defer lz4PoolWriterPool.Put(lz4Writer) + + lz4Writer.CompressionLevel = 5 + lz4Writer.Reset(cacheFile) + + if err := bs.EncodeCaches(lz4Writer); err != nil { + return err + } + if err = lz4Writer.Flush(); err != nil { + return + } + err = cacheFile.Sync() + + return +} diff --git a/cl/phase1/forkchoice/fork_graph/fork_graph_test.go b/cl/phase1/forkchoice/fork_graph/fork_graph_test.go index 38754bb3b7e..67820471a8d 100644 --- a/cl/phase1/forkchoice/fork_graph/fork_graph_test.go +++ b/cl/phase1/forkchoice/fork_graph/fork_graph_test.go @@ -5,6 +5,7 @@ import ( "testing" "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/spf13/afero" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" @@ -21,14 +22,15 @@ var block2 []byte //go:embed test_data/anchor_state.ssz_snappy var anchor []byte -func TestForkGraph(t *testing.T) { - blockA, blockB, blockC := &cltypes.SignedBeaconBlock{}, &cltypes.SignedBeaconBlock{}, &cltypes.SignedBeaconBlock{} +func TestForkGraphInDisk(t *testing.T) { + blockA, blockB, blockC := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig), + cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig), cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) anchorState := state.New(&clparams.MainnetBeaconConfig) require.NoError(t, utils.DecodeSSZSnappy(blockA, block1, int(clparams.Phase0Version))) require.NoError(t, utils.DecodeSSZSnappy(blockB, block2, int(clparams.Phase0Version))) require.NoError(t, utils.DecodeSSZSnappy(blockC, block2, int(clparams.Phase0Version))) require.NoError(t, utils.DecodeSSZSnappy(anchorState, anchor, int(clparams.Phase0Version))) - graph := New(anchorState, false) + graph := NewForkGraphDisk(anchorState, afero.NewMemMapFs()) _, status, err := graph.AddChainSegment(blockA, true) require.NoError(t, err) require.Equal(t, status, Success) @@ -45,5 +47,4 @@ func TestForkGraph(t *testing.T) { _, status, err = graph.AddChainSegment(blockB, true) require.NoError(t, err) require.Equal(t, status, PreValidated) - graph.removeOldData() } diff --git a/cl/phase1/forkchoice/fork_graph/interface.go b/cl/phase1/forkchoice/fork_graph/interface.go new file mode 100644 index 00000000000..66a2edd0e83 --- /dev/null +++ b/cl/phase1/forkchoice/fork_graph/interface.go @@ -0,0 +1,33 @@ +package fork_graph + +import ( + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" +) + +/* +* The state store process is related to graph theory in the sense that the Ethereum blockchain can be thought of as a directed graph, +* where each block represents a node and the links between blocks represent directed edges. +* In this context, rolling back the state of Ethereum to a previous state can be thought of as traversing the graph in reverse, +* from the current state to a previous state. +* The process of reverting the state involves undoing the changes made in the blocks that have been added to the blockchain since the previous state. +* This can be thought of as "reversing the edges" in the graph, effectively undoing the changes made to the state of Ethereum. +* By thinking of the Ethereum blockchain as a graph, we can use graph theory concepts, such as traversal algorithms, +* to analyze and manipulate the state of the blockchain. + */ +type ForkGraph interface { + AddChainSegment(signedBlock *cltypes.SignedBeaconBlock, fullValidation bool) (*state.CachingBeaconState, ChainSegmentInsertionResult, error) + GetHeader(blockRoot libcommon.Hash) (*cltypes.BeaconBlockHeader, bool) + GetState(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error) + GetCurrentJustifiedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) + GetFinalizedCheckpoint(blockRoot libcommon.Hash) (solid.Checkpoint, bool) + MarkHeaderAsInvalid(blockRoot libcommon.Hash) + AnchorSlot() uint64 + Prune(uint64) error + + // extra methods for validator api + GetStateAtSlot(slot uint64, alwaysCopy bool) (*state.CachingBeaconState, error) + GetStateAtStateRoot(root libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error) +} diff --git a/cl/phase1/forkchoice/forkchoice.go b/cl/phase1/forkchoice/forkchoice.go index b85053db109..bbe79bc4549 100644 --- a/cl/phase1/forkchoice/forkchoice.go +++ b/cl/phase1/forkchoice/forkchoice.go @@ -1,26 +1,39 @@ package forkchoice import ( + "context" "sync" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/freezer" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" state2 "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/phase1/execution_client" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" + "github.com/ledgerwatch/erigon/cl/pool" + "golang.org/x/exp/slices" lru "github.com/hashicorp/golang-lru/v2" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" ) type checkpointComparable string const ( checkpointsPerCache = 1024 - allowedCachedStates = 4 + allowedCachedStates = 8 ) +type preverifiedAppendListsSizes struct { + validatorLength uint64 + historicalRootsLength uint64 + historicalSummariesLength uint64 +} + type ForkChoiceStore struct { + ctx context.Context time uint64 highestSeen uint64 justifiedCheckpoint solid.Checkpoint @@ -28,19 +41,31 @@ type ForkChoiceStore struct { unrealizedJustifiedCheckpoint solid.Checkpoint unrealizedFinalizedCheckpoint solid.Checkpoint proposerBoostRoot libcommon.Hash + headHash libcommon.Hash + headSlot uint64 + genesisTime uint64 + childrens map[libcommon.Hash]childrens + // Use go map because this is actually an unordered set equivocatingIndicies map[uint64]struct{} - forkGraph *fork_graph.ForkGraph + forkGraph fork_graph.ForkGraph // I use the cache due to the convenient auto-cleanup feauture. - checkpointStates *lru.Cache[checkpointComparable, *checkpointState] // We keep ssz snappy of it as the full beacon state is full of rendundant data. + checkpointStates map[checkpointComparable]*checkpointState // We keep ssz snappy of it as the full beacon state is full of rendundant data. latestMessages map[uint64]*LatestMessage + anchorPublicKeys []byte // We keep track of them so that we can forkchoice with EL. eth2Roots *lru.Cache[libcommon.Hash, libcommon.Hash] // ETH2 root -> ETH1 hash - mu sync.Mutex + // preverifid sizes + preverifiedSizes *lru.Cache[libcommon.Hash, preverifiedAppendListsSizes] + + mu sync.Mutex // EL engine execution_client.ExecutionEngine // freezer recorder freezer.Freezer + // operations pool + operationsPool pool.OperationsPool + beaconCfg *clparams.BeaconChainConfig } type LatestMessage struct { @@ -48,8 +73,13 @@ type LatestMessage struct { Root libcommon.Hash } +type childrens struct { + childrenHashes []libcommon.Hash + parentSlot uint64 // we keep this one for pruning +} + // NewForkChoiceStore initialize a new store from the given anchor state, either genesis or checkpoint sync state. -func NewForkChoiceStore(anchorState *state2.CachingBeaconState, engine execution_client.ExecutionEngine, recorder freezer.Freezer, enabledPruning bool) (*ForkChoiceStore, error) { +func NewForkChoiceStore(ctx context.Context, anchorState *state2.CachingBeaconState, engine execution_client.ExecutionEngine, recorder freezer.Freezer, operationsPool pool.OperationsPool, forkGraph fork_graph.ForkGraph) (*ForkChoiceStore, error) { anchorRoot, err := anchorState.BlockRoot() if err != nil { return nil, err @@ -58,28 +88,51 @@ func NewForkChoiceStore(anchorState *state2.CachingBeaconState, engine execution anchorRoot, state2.Epoch(anchorState.BeaconState), ) - checkpointStates, err := lru.New[checkpointComparable, *checkpointState](allowedCachedStates) + + eth2Roots, err := lru.New[libcommon.Hash, libcommon.Hash](checkpointsPerCache) if err != nil { return nil, err } - eth2Roots, err := lru.New[libcommon.Hash, libcommon.Hash](checkpointsPerCache) + anchorPublicKeys := make([]byte, anchorState.ValidatorLength()*length.Bytes48) + for idx := 0; idx < anchorState.ValidatorLength(); idx++ { + pk, err := anchorState.ValidatorPublicKey(idx) + if err != nil { + return nil, err + } + copy(anchorPublicKeys[idx*length.Bytes48:], pk[:]) + } + + preverifiedSizes, err := lru.New[libcommon.Hash, preverifiedAppendListsSizes](checkpointsPerCache * 10) if err != nil { return nil, err } + preverifiedSizes.Add(anchorRoot, preverifiedAppendListsSizes{ + validatorLength: uint64(anchorState.ValidatorLength()), + historicalRootsLength: anchorState.HistoricalRootsLength(), + historicalSummariesLength: anchorState.HistoricalSummariesLength(), + }) + return &ForkChoiceStore{ + ctx: ctx, highestSeen: anchorState.Slot(), time: anchorState.GenesisTime() + anchorState.BeaconConfig().SecondsPerSlot*anchorState.Slot(), justifiedCheckpoint: anchorCheckpoint.Copy(), finalizedCheckpoint: anchorCheckpoint.Copy(), unrealizedJustifiedCheckpoint: anchorCheckpoint.Copy(), unrealizedFinalizedCheckpoint: anchorCheckpoint.Copy(), - forkGraph: fork_graph.New(anchorState, enabledPruning), + forkGraph: forkGraph, equivocatingIndicies: map[uint64]struct{}{}, latestMessages: map[uint64]*LatestMessage{}, - checkpointStates: checkpointStates, + checkpointStates: make(map[checkpointComparable]*checkpointState), eth2Roots: eth2Roots, engine: engine, recorder: recorder, + operationsPool: operationsPool, + anchorPublicKeys: anchorPublicKeys, + genesisTime: anchorState.GenesisTime(), + beaconCfg: anchorState.BeaconConfig(), + childrens: make(map[libcommon.Hash]childrens), + preverifiedSizes: preverifiedSizes, }, nil } @@ -90,6 +143,36 @@ func (f *ForkChoiceStore) HighestSeen() uint64 { return f.highestSeen } +func (f *ForkChoiceStore) children(parent libcommon.Hash) []libcommon.Hash { + children, ok := f.childrens[parent] + if !ok { + return nil + } + return children.childrenHashes +} + +// updateChildren adds a new child to the parent node hash. +func (f *ForkChoiceStore) updateChildren(parentSlot uint64, parent, child libcommon.Hash) { + c, ok := f.childrens[parent] + if !ok { + c = childrens{} + } + c.parentSlot = parentSlot // can be innacurate. + if slices.Contains(c.childrenHashes, child) { + return + } + c.childrenHashes = append(c.childrenHashes, child) + f.childrens[parent] = c +} + +// AdvanceHighestSeen advances the highest seen block by n and returns the new slot after the change +func (f *ForkChoiceStore) AdvanceHighestSeen(n uint64) uint64 { + f.mu.Lock() + defer f.mu.Unlock() + f.highestSeen += n + return f.highestSeen +} + // Time returns current time func (f *ForkChoiceStore) Time() uint64 { f.mu.Lock() @@ -111,6 +194,13 @@ func (f *ForkChoiceStore) JustifiedCheckpoint() solid.Checkpoint { return f.justifiedCheckpoint } +// FinalizedCheckpoint returns justified checkpoint +func (f *ForkChoiceStore) JustifiedSlot() uint64 { + f.mu.Lock() + defer f.mu.Unlock() + return f.computeStartSlotAtEpoch(f.justifiedCheckpoint.Epoch()) +} + // FinalizedCheckpoint returns justified checkpoint func (f *ForkChoiceStore) FinalizedCheckpoint() solid.Checkpoint { f.mu.Lock() @@ -146,3 +236,40 @@ func (f *ForkChoiceStore) AnchorSlot() uint64 { defer f.mu.Unlock() return f.forkGraph.AnchorSlot() } + +func (f *ForkChoiceStore) GetStateAtBlockRoot(blockRoot libcommon.Hash, alwaysCopy bool) (*state2.CachingBeaconState, error) { + f.mu.Lock() + defer f.mu.Unlock() + return f.forkGraph.GetState(blockRoot, alwaysCopy) +} +func (f *ForkChoiceStore) GetStateAtStateRoot(stateRoot libcommon.Hash, alwaysCopy bool) (*state2.CachingBeaconState, error) { + f.mu.Lock() + defer f.mu.Unlock() + return f.forkGraph.GetState(stateRoot, alwaysCopy) +} +func (f *ForkChoiceStore) GetStateAtSlot(slot uint64, alwaysCopy bool) (*state.CachingBeaconState, error) { + f.mu.Lock() + defer f.mu.Unlock() + return f.forkGraph.GetStateAtSlot(slot, alwaysCopy) +} + +func (f *ForkChoiceStore) PreverifiedValidator(blockRoot libcommon.Hash) uint64 { + if ret, ok := f.preverifiedSizes.Get(blockRoot); ok { + return ret.validatorLength + } + return 0 +} + +func (f *ForkChoiceStore) PreverifiedHistoricalRoots(blockRoot libcommon.Hash) uint64 { + if ret, ok := f.preverifiedSizes.Get(blockRoot); ok { + return ret.historicalRootsLength + } + return 0 +} + +func (f *ForkChoiceStore) PreverifiedHistoricalSummaries(blockRoot libcommon.Hash) uint64 { + if ret, ok := f.preverifiedSizes.Get(blockRoot); ok { + return ret.historicalSummariesLength + } + return 0 +} diff --git a/cl/phase1/forkchoice/forkchoice_slot.go b/cl/phase1/forkchoice/forkchoice_slot.go new file mode 100644 index 00000000000..ef71778dcad --- /dev/null +++ b/cl/phase1/forkchoice/forkchoice_slot.go @@ -0,0 +1 @@ +package forkchoice diff --git a/cl/phase1/forkchoice/get_head.go b/cl/phase1/forkchoice/get_head.go index ce821f1db6c..e1300c2c022 100644 --- a/cl/phase1/forkchoice/get_head.go +++ b/cl/phase1/forkchoice/get_head.go @@ -17,19 +17,22 @@ func (f *ForkChoiceStore) GetHead() (libcommon.Hash, uint64, error) { } func (f *ForkChoiceStore) getHead() (libcommon.Hash, uint64, error) { + if f.headHash != (libcommon.Hash{}) { + return f.headHash, f.headSlot, nil + } // Retrieve att - head := f.justifiedCheckpoint.BlockRoot() - blocks := f.getFilteredBlockTree(head) + f.headHash = f.justifiedCheckpoint.BlockRoot() + blocks := f.getFilteredBlockTree(f.headHash) // See which validators can be used for attestation score justificationState, err := f.getCheckpointState(f.justifiedCheckpoint) if err != nil { return libcommon.Hash{}, 0, err } // Filter all validators deemed as bad - filteredIndicies := f.filterValidatorSetForAttestationScores(justificationState.validators, justificationState.epoch) + filteredIndicies := f.filterValidatorSetForAttestationScores(justificationState, justificationState.epoch) for { // Filter out current head children. - unfilteredChildren := f.forkGraph.GetChildren(head) + unfilteredChildren := f.children(f.headHash) children := []libcommon.Hash{} for _, child := range unfilteredChildren { if _, ok := blocks[child]; ok { @@ -38,15 +41,16 @@ func (f *ForkChoiceStore) getHead() (libcommon.Hash, uint64, error) { } // Stop if we dont have any more children if len(children) == 0 { - header, hasHeader := f.forkGraph.GetHeader(head) + header, hasHeader := f.forkGraph.GetHeader(f.headHash) if !hasHeader { return libcommon.Hash{}, 0, fmt.Errorf("no slot for head is stored") } - return head, header.Slot, nil + f.headSlot = header.Slot + return f.headHash, f.headSlot, nil } // Average case scenario. if len(children) == 1 { - head = children[0] + f.headHash = children[0] continue } // Sort children by lexigographical order @@ -57,13 +61,13 @@ func (f *ForkChoiceStore) getHead() (libcommon.Hash, uint64, error) { }) // After sorting is done determine best fit. - head = children[0] + f.headHash = children[0] maxWeight := f.getWeight(children[0], filteredIndicies, justificationState) for i := 1; i < len(children); i++ { weight := f.getWeight(children[i], filteredIndicies, justificationState) // Lexicographical order is king. if weight >= maxWeight { - head = children[i] + f.headHash = children[i] maxWeight = weight } } @@ -71,10 +75,10 @@ func (f *ForkChoiceStore) getHead() (libcommon.Hash, uint64, error) { } // filterValidatorSetForAttestationScores preliminarly filter the validator set obliging to consensus rules. -func (f *ForkChoiceStore) filterValidatorSetForAttestationScores(validatorSet []*checkpointValidator, epoch uint64) []uint64 { - filtered := make([]uint64, 0, len(validatorSet)) - for validatorIndex, validator := range validatorSet { - if !validator.active(epoch) || validator.slashed { +func (f *ForkChoiceStore) filterValidatorSetForAttestationScores(c *checkpointState, epoch uint64) []uint64 { + filtered := make([]uint64, 0, c.validatorSetSize) + for validatorIndex := 0; validatorIndex < c.validatorSetSize; validatorIndex++ { + if !readFromBitset(c.actives, validatorIndex) || readFromBitset(c.slasheds, validatorIndex) { continue } if _, hasLatestMessage := f.latestMessages[uint64(validatorIndex)]; !hasLatestMessage { @@ -94,14 +98,13 @@ func (f *ForkChoiceStore) getWeight(root libcommon.Hash, indicies []uint64, stat if !has { return 0 } - validators := state.validators // Compute attestation score var attestationScore uint64 for _, validatorIndex := range indicies { if f.Ancestor(f.latestMessages[validatorIndex].Root, header.Slot) != root { continue } - attestationScore += validators[validatorIndex].balance + attestationScore += state.balances[validatorIndex] } if f.proposerBoostRoot == (libcommon.Hash{}) { return attestationScore @@ -130,7 +133,7 @@ func (f *ForkChoiceStore) getFilterBlockTree(blockRoot libcommon.Hash, blocks ma if !has { return false } - children := f.forkGraph.GetChildren(blockRoot) + children := f.children(blockRoot) // If there are children iterate down recursively and see which branches are viable. if len(children) > 0 { isAnyViable := false @@ -153,7 +156,7 @@ func (f *ForkChoiceStore) getFilterBlockTree(blockRoot libcommon.Hash, blocks ma return false } - genesisEpoch := f.forkGraph.Config().GenesisEpoch + genesisEpoch := f.beaconCfg.GenesisEpoch if (f.justifiedCheckpoint.Epoch() == genesisEpoch || currentJustifiedCheckpoint.Equal(f.justifiedCheckpoint)) && (f.finalizedCheckpoint.Epoch() == genesisEpoch || finalizedJustifiedCheckpoint.Equal(f.finalizedCheckpoint)) { blocks[blockRoot] = header diff --git a/cl/phase1/forkchoice/interface.go b/cl/phase1/forkchoice/interface.go new file mode 100644 index 00000000000..96d34abd561 --- /dev/null +++ b/cl/phase1/forkchoice/interface.go @@ -0,0 +1,42 @@ +package forkchoice + +import ( + "github.com/ledgerwatch/erigon-lib/common" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/phase1/execution_client" +) + +type ForkChoiceStorage interface { + ForkChoiceStorageWriter + ForkChoiceStorageReader +} + +type ForkChoiceStorageReader interface { + Ancestor(root common.Hash, slot uint64) common.Hash + AnchorSlot() uint64 + Engine() execution_client.ExecutionEngine + FinalizedCheckpoint() solid.Checkpoint + FinalizedSlot() uint64 + GetEth1Hash(eth2Root common.Hash) common.Hash + GetHead() (common.Hash, uint64, error) + HighestSeen() uint64 + JustifiedCheckpoint() solid.Checkpoint + JustifiedSlot() uint64 + ProposerBoostRoot() common.Hash + GetStateAtBlockRoot(blockRoot libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error) + Slot() uint64 + Time() uint64 + + GetStateAtSlot(slot uint64, alwaysCopy bool) (*state.CachingBeaconState, error) + GetStateAtStateRoot(root libcommon.Hash, alwaysCopy bool) (*state.CachingBeaconState, error) +} + +type ForkChoiceStorageWriter interface { + OnAttestation(attestation *solid.Attestation, fromBlock bool) error + OnAttesterSlashing(attesterSlashing *cltypes.AttesterSlashing, test bool) error + OnBlock(block *cltypes.SignedBeaconBlock, newPayload bool, fullValidation bool) error + OnTick(time uint64) +} diff --git a/cl/phase1/forkchoice/on_attestation.go b/cl/phase1/forkchoice/on_attestation.go index c5fc7ac3583..ed4b0ce674c 100644 --- a/cl/phase1/forkchoice/on_attestation.go +++ b/cl/phase1/forkchoice/on_attestation.go @@ -2,22 +2,30 @@ package forkchoice import ( "fmt" + "time" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/cache" "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/log/v3" libcommon "github.com/ledgerwatch/erigon-lib/common" ) -// OnAttestation processes incoming attestations. TODO(Giulio2002): finish it with forward changesets. +// OnAttestation processes incoming attestations. func (f *ForkChoiceStore) OnAttestation(attestation *solid.Attestation, fromBlock bool) error { f.mu.Lock() defer f.mu.Unlock() + f.headHash = libcommon.Hash{} data := attestation.AttestantionData() if err := f.validateOnAttestation(attestation, fromBlock); err != nil { return err } + // Schedule for later processing. + if f.Slot() < attestation.AttestantionData().Slot()+1 { + f.scheduleAttestationForLaterProcessing(attestation, fromBlock) + return nil + } target := data.Target() if cachedIndicies, ok := cache.LoadAttestatingIndicies(&data, attestation.AggregationBits()); ok { f.processAttestingIndicies(attestation, cachedIndicies) @@ -50,11 +58,33 @@ func (f *ForkChoiceStore) OnAttestation(attestation *solid.Attestation, fromBloc return fmt.Errorf("invalid attestation") } } + cache.StoreAttestation(&data, attestation.AggregationBits(), attestationIndicies) // Lastly update latest messages. f.processAttestingIndicies(attestation, attestationIndicies) return nil } +// scheduleAttestationForLaterProcessing scheudules an attestation for later processing +func (f *ForkChoiceStore) scheduleAttestationForLaterProcessing(attestation *solid.Attestation, fromBlock bool) { + go func() { + logInterval := time.NewTicker(50 * time.Millisecond) + for { + select { + case <-f.ctx.Done(): + return + case <-logInterval.C: + if f.Slot() < attestation.AttestantionData().Slot()+1 { + continue + } + if err := f.OnAttestation(attestation, false); err != nil { + log.Trace("could not process scheduled attestation", "reason", err) + } + return + } + } + }() +} + func (f *ForkChoiceStore) processAttestingIndicies(attestation *solid.Attestation, indicies []uint64) { beaconBlockRoot := attestation.AttestantionData().BeaconBlockRoot() target := attestation.AttestantionData().Target() @@ -99,9 +129,7 @@ func (f *ForkChoiceStore) validateOnAttestation(attestation *solid.Attestation, if ancestorRoot != target.BlockRoot() { return fmt.Errorf("ancestor root mismatches with target") } - if f.Slot() < attestation.AttestantionData().Slot()+1 { - return fmt.Errorf("future attestation") - } + return nil } @@ -111,8 +139,8 @@ func (f *ForkChoiceStore) validateTargetEpochAgainstCurrentTime(attestation *sol currentEpoch := f.computeEpochAtSlot(f.Slot()) // Use GENESIS_EPOCH for previous when genesis to avoid underflow previousEpoch := currentEpoch - 1 - if currentEpoch <= f.forkGraph.Config().GenesisEpoch { - previousEpoch = f.forkGraph.Config().GenesisEpoch + if currentEpoch <= f.beaconCfg.GenesisEpoch { + previousEpoch = f.beaconCfg.GenesisEpoch } if target.Epoch() == currentEpoch || target.Epoch() == previousEpoch { return nil diff --git a/cl/phase1/forkchoice/on_attester_slashing.go b/cl/phase1/forkchoice/on_attester_slashing.go index a51d702ffae..1c4ea9d5dc3 100644 --- a/cl/phase1/forkchoice/on_attester_slashing.go +++ b/cl/phase1/forkchoice/on_attester_slashing.go @@ -3,48 +3,122 @@ package forkchoice import ( "fmt" + "github.com/Giulio2002/bls" "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/fork" "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/pool" "github.com/ledgerwatch/erigon/cl/cltypes" ) -func (f *ForkChoiceStore) OnAttesterSlashing(attesterSlashing *cltypes.AttesterSlashing) error { +func (f *ForkChoiceStore) OnAttesterSlashing(attesterSlashing *cltypes.AttesterSlashing, test bool) error { + if f.operationsPool.AttesterSlashingsPool.Has(pool.ComputeKeyForAttesterSlashing(attesterSlashing)) { + return nil + } f.mu.Lock() - defer f.mu.Unlock() - // Check if these attestation is even slashable. + // Check if this attestation is even slashable. attestation1 := attesterSlashing.Attestation_1 attestation2 := attesterSlashing.Attestation_2 if !cltypes.IsSlashableAttestationData(attestation1.Data, attestation2.Data) { + f.mu.Unlock() return fmt.Errorf("attestation data is not slashable") } // Retrieve justified state - s, _, err := f.forkGraph.GetState(f.justifiedCheckpoint.BlockRoot(), false) + s, err := f.forkGraph.GetState(f.justifiedCheckpoint.BlockRoot(), false) if err != nil { + f.mu.Unlock() return err } if s == nil { + f.mu.Unlock() return fmt.Errorf("justified checkpoint state not accessible") } - // Verify validity of slashings - valid, err := state.IsValidIndexedAttestation(s, attestation1) + attestation1PublicKeys, err := getIndexedAttestationPublicKeys(s, attestation1) if err != nil { - return fmt.Errorf("error calculating indexed attestation 1 validity: %v", err) + f.mu.Unlock() + return err } - if !valid { - return fmt.Errorf("invalid indexed attestation 1") + attestation2PublicKeys, err := getIndexedAttestationPublicKeys(s, attestation2) + if err != nil { + f.mu.Unlock() + return err } - - valid, err = state.IsValidIndexedAttestation(s, attestation2) + domain1, err := s.GetDomain(s.BeaconConfig().DomainBeaconAttester, attestation1.Data.Target().Epoch()) + if err != nil { + return fmt.Errorf("unable to get the domain: %v", err) + } + domain2, err := s.GetDomain(s.BeaconConfig().DomainBeaconAttester, attestation2.Data.Target().Epoch()) if err != nil { - return fmt.Errorf("error calculating indexed attestation 2 validity: %v", err) + return fmt.Errorf("unable to get the domain: %v", err) } - if !valid { - return fmt.Errorf("invalid indexed attestation 2") + f.mu.Unlock() + + if !test { + // Verify validity of slashings (1) + signingRoot, err := fork.ComputeSigningRoot(attestation1.Data, domain1) + if err != nil { + return fmt.Errorf("unable to get signing root: %v", err) + } + + valid, err := bls.VerifyAggregate(attestation1.Signature[:], signingRoot[:], attestation1PublicKeys) + if err != nil { + return fmt.Errorf("error while validating signature: %v", err) + } + if !valid { + return fmt.Errorf("invalid aggregate signature") + } + // Verify validity of slashings (2) + signingRoot, err = fork.ComputeSigningRoot(attestation2.Data, domain2) + if err != nil { + return fmt.Errorf("unable to get signing root: %v", err) + } + + valid, err = bls.VerifyAggregate(attestation2.Signature[:], signingRoot[:], attestation2PublicKeys) + if err != nil { + return fmt.Errorf("error while validating signature: %v", err) + } + if !valid { + return fmt.Errorf("invalid aggregate signature") + } } + f.mu.Lock() + defer f.mu.Unlock() + var anySlashed bool for _, index := range solid.IntersectionOfSortedSets(attestation1.AttestingIndices, attestation2.AttestingIndices) { f.equivocatingIndicies[index] = struct{}{} + if !anySlashed { + v, err := s.ValidatorForValidatorIndex(int(index)) + if err != nil { + return fmt.Errorf("unable to retrieve state: %v", err) + } + if v.IsSlashable(state.Epoch(s)) { + anySlashed = true + } + } + } + if anySlashed { + f.operationsPool.AttesterSlashingsPool.Insert(pool.ComputeKeyForAttesterSlashing(attesterSlashing), attesterSlashing) } - // add attestation indicies to equivocating indicies. return nil } + +func getIndexedAttestationPublicKeys(b *state.CachingBeaconState, att *cltypes.IndexedAttestation) ([][]byte, error) { + inds := att.AttestingIndices + if inds.Length() == 0 || !solid.IsUint64SortedSet(inds) { + return nil, fmt.Errorf("isValidIndexedAttestation: attesting indices are not sorted or are null") + } + pks := make([][]byte, 0, inds.Length()) + if err := solid.RangeErr[uint64](inds, func(_ int, v uint64, _ int) error { + val, err := b.ValidatorForValidatorIndex(int(v)) + if err != nil { + return err + } + pk := val.PublicKey() + pks = append(pks, pk[:]) + return nil + }); err != nil { + return nil, err + } + return pks, nil +} diff --git a/cl/phase1/forkchoice/on_block.go b/cl/phase1/forkchoice/on_block.go index 7435dadf4cb..2e709f7b0c1 100644 --- a/cl/phase1/forkchoice/on_block.go +++ b/cl/phase1/forkchoice/on_block.go @@ -2,7 +2,9 @@ package forkchoice import ( "fmt" + "time" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/cl/cltypes" @@ -14,6 +16,8 @@ import ( func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload, fullValidation bool) error { f.mu.Lock() defer f.mu.Unlock() + f.headHash = libcommon.Hash{} + start := time.Now() blockRoot, err := block.Block.HashSSZ() if err != nil { return err @@ -27,7 +31,17 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload, return nil } - config := f.forkGraph.Config() + var invalidBlock bool + if newPayload && f.engine != nil { + if invalidBlock, err = f.engine.NewPayload(block.Block.Body.ExecutionPayload, &block.Block.ParentRoot); err != nil { + if invalidBlock { + f.forkGraph.MarkHeaderAsInvalid(blockRoot) + } + log.Warn("newPayload failed", "err", err) + return err + } + } + lastProcessedState, status, err := f.forkGraph.AddChainSegment(block, fullValidation) if err != nil { return err @@ -36,6 +50,7 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload, case fork_graph.PreValidated: return nil case fork_graph.Success: + f.updateChildren(block.Block.Slot-1, block.Block.ParentRoot, blockRoot) // parent slot can be innacurate case fork_graph.BelowAnchor: log.Debug("replay block", "code", status) return nil @@ -45,31 +60,26 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload, if block.Block.Body.ExecutionPayload != nil { f.eth2Roots.Add(blockRoot, block.Block.Body.ExecutionPayload.BlockHash) } - var invalidBlock bool - if newPayload && f.engine != nil { - if invalidBlock, err = f.engine.NewPayload(block.Block.Body.ExecutionPayload, &block.Block.ParentRoot); err != nil { - log.Warn("newPayload failed", "err", err) - return err - } - } - if invalidBlock { - f.forkGraph.MarkHeaderAsInvalid(blockRoot) - } if block.Block.Slot > f.highestSeen { f.highestSeen = block.Block.Slot } // Add proposer score boost if the block is timely - timeIntoSlot := (f.time - f.forkGraph.GenesisTime()) % lastProcessedState.BeaconConfig().SecondsPerSlot - isBeforeAttestingInterval := timeIntoSlot < config.SecondsPerSlot/config.IntervalsPerSlot - if f.Slot() == block.Block.Slot && isBeforeAttestingInterval { + timeIntoSlot := (f.time - f.genesisTime) % lastProcessedState.BeaconConfig().SecondsPerSlot + isBeforeAttestingInterval := timeIntoSlot < f.beaconCfg.SecondsPerSlot/f.beaconCfg.IntervalsPerSlot + if f.Slot() == block.Block.Slot && isBeforeAttestingInterval && f.proposerBoostRoot == (libcommon.Hash{}) { f.proposerBoostRoot = blockRoot } - if lastProcessedState.Slot()%f.forkGraph.Config().SlotsPerEpoch == 0 { + if lastProcessedState.Slot()%f.beaconCfg.SlotsPerEpoch == 0 { if err := freezer.PutObjectSSZIntoFreezer("beaconState", "caplin_core", lastProcessedState.Slot(), lastProcessedState, f.recorder); err != nil { return err } } + f.preverifiedSizes.Add(blockRoot, preverifiedAppendListsSizes{ + validatorLength: uint64(lastProcessedState.ValidatorLength()), + historicalRootsLength: lastProcessedState.HistoricalRootsLength(), + historicalSummariesLength: lastProcessedState.HistoricalSummariesLength(), + }) // Update checkpoints f.updateCheckpoints(lastProcessedState.CurrentJustifiedCheckpoint().Copy(), lastProcessedState.FinalizedCheckpoint().Copy()) // First thing save previous values of the checkpoints (avoid memory copy of all states and ensure easy revert) @@ -80,9 +90,10 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload, justificationBits = lastProcessedState.JustificationBits().Copy() ) // Eagerly compute unrealized justification and finality - if err := statechange.ProcessJustificationBitsAndFinality(lastProcessedState); err != nil { + if err := statechange.ProcessJustificationBitsAndFinality(lastProcessedState, nil); err != nil { return err } + f.operationsPool.NotifyBlock(block.Block) f.updateUnrealizedCheckpoints(lastProcessedState.CurrentJustifiedCheckpoint().Copy(), lastProcessedState.FinalizedCheckpoint().Copy()) // Set the changed value pre-simulation lastProcessedState.SetPreviousJustifiedCheckpoint(previousJustifiedCheckpoint) @@ -95,5 +106,6 @@ func (f *ForkChoiceStore) OnBlock(block *cltypes.SignedBeaconBlock, newPayload, if blockEpoch < currentEpoch { f.updateCheckpoints(lastProcessedState.CurrentJustifiedCheckpoint().Copy(), lastProcessedState.FinalizedCheckpoint().Copy()) } + log.Debug("OnBlock", "elapsed", time.Since(start)) return nil } diff --git a/cl/phase1/forkchoice/on_operations.go b/cl/phase1/forkchoice/on_operations.go new file mode 100644 index 00000000000..8679fb6a905 --- /dev/null +++ b/cl/phase1/forkchoice/on_operations.go @@ -0,0 +1,216 @@ +package forkchoice + +import ( + "bytes" + "errors" + "fmt" + + "github.com/Giulio2002/bls" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/fork" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/pool" + "github.com/ledgerwatch/erigon/cl/utils" +) + +// NOTE: This file implements non-official handlers for other types of iterations. what it does is,using the forkchoices +// and verify external operations and eventually push them in the operations pool. + +// OnVoluntaryExit is a non-official handler for voluntary exit operations. it pushes the voluntary exit in the pool. +func (f *ForkChoiceStore) OnVoluntaryExit(signedVoluntaryExit *cltypes.SignedVoluntaryExit, test bool) error { + voluntaryExit := signedVoluntaryExit.VoluntaryExit + if f.operationsPool.VoluntaryExistsPool.Has(voluntaryExit.ValidatorIndex) { + return nil + } + f.mu.Lock() + + headHash, _, err := f.getHead() + if err != nil { + f.mu.Unlock() + return err + } + s, err := f.forkGraph.GetState(headHash, false) + if err != nil { + f.mu.Unlock() + return err + } + + val, err := s.ValidatorForValidatorIndex(int(voluntaryExit.ValidatorIndex)) + if err != nil { + f.mu.Unlock() + return err + } + + if val.ExitEpoch() != f.beaconCfg.FarFutureEpoch { + f.mu.Unlock() + return nil + } + + pk := val.PublicKey() + f.mu.Unlock() + + domain, err := s.GetDomain(s.BeaconConfig().DomainVoluntaryExit, voluntaryExit.Epoch) + if err != nil { + return err + } + signingRoot, err := fork.ComputeSigningRoot(voluntaryExit, domain) + if err != nil { + return err + } + if !test { + valid, err := bls.Verify(signedVoluntaryExit.Signature[:], signingRoot[:], pk[:]) + if err != nil { + return err + } + if !valid { + return errors.New("ProcessVoluntaryExit: BLS verification failed") + } + } + f.operationsPool.VoluntaryExistsPool.Insert(voluntaryExit.ValidatorIndex, signedVoluntaryExit) + return nil +} + +// OnProposerSlashing is a non-official handler for proposer slashing operations. it pushes the proposer slashing in the pool. +func (f *ForkChoiceStore) OnProposerSlashing(proposerSlashing *cltypes.ProposerSlashing, test bool) (err error) { + if f.operationsPool.ProposerSlashingsPool.Has(pool.ComputeKeyForProposerSlashing(proposerSlashing)) { + return nil + } + h1 := proposerSlashing.Header1.Header + h2 := proposerSlashing.Header2.Header + + if h1.Slot != h2.Slot { + return fmt.Errorf("non-matching slots on proposer slashing: %d != %d", h1.Slot, h2.Slot) + } + + if h1.ProposerIndex != h2.ProposerIndex { + return fmt.Errorf("non-matching proposer indices proposer slashing: %d != %d", h1.ProposerIndex, h2.ProposerIndex) + } + + if *h1 == *h2 { + return fmt.Errorf("proposee slashing headers are the same") + } + + // Take lock as we interact with state. + f.mu.Lock() + headHash, _, err := f.getHead() + if err != nil { + f.mu.Unlock() + return err + } + s, err := f.forkGraph.GetState(headHash, false) + if err != nil { + f.mu.Unlock() + return err + } + proposer, err := s.ValidatorForValidatorIndex(int(h1.ProposerIndex)) + if err != nil { + f.mu.Unlock() + return fmt.Errorf("unable to retrieve state: %v", err) + } + if !proposer.IsSlashable(state.Epoch(s)) { + f.mu.Unlock() + return fmt.Errorf("proposer is not slashable: %v", proposer) + } + domain1, err := s.GetDomain(s.BeaconConfig().DomainBeaconProposer, state.GetEpochAtSlot(s.BeaconConfig(), h1.Slot)) + if err != nil { + return fmt.Errorf("unable to get domain: %v", err) + } + domain2, err := s.GetDomain(s.BeaconConfig().DomainBeaconProposer, state.GetEpochAtSlot(s.BeaconConfig(), h2.Slot)) + if err != nil { + return fmt.Errorf("unable to get domain: %v", err) + } + pk := proposer.PublicKey() + f.mu.Unlock() + if test { + f.operationsPool.ProposerSlashingsPool.Insert(pool.ComputeKeyForProposerSlashing(proposerSlashing), proposerSlashing) + return nil + } + signingRoot, err := fork.ComputeSigningRoot(h1, domain1) + if err != nil { + return fmt.Errorf("unable to compute signing root: %v", err) + } + valid, err := bls.Verify(proposerSlashing.Header1.Signature[:], signingRoot[:], pk[:]) + if err != nil { + return fmt.Errorf("unable to verify signature: %v", err) + } + if !valid { + return fmt.Errorf("invalid signature: signature %v, root %v, pubkey %v", proposerSlashing.Header1.Signature[:], signingRoot[:], pk) + } + signingRoot, err = fork.ComputeSigningRoot(h2, domain2) + if err != nil { + return fmt.Errorf("unable to compute signing root: %v", err) + } + + valid, err = bls.Verify(proposerSlashing.Header2.Signature[:], signingRoot[:], pk[:]) + if err != nil { + return fmt.Errorf("unable to verify signature: %v", err) + } + if !valid { + return fmt.Errorf("invalid signature: signature %v, root %v, pubkey %v", proposerSlashing.Header2.Signature[:], signingRoot[:], pk) + } + f.operationsPool.ProposerSlashingsPool.Insert(pool.ComputeKeyForProposerSlashing(proposerSlashing), proposerSlashing) + + return nil +} + +func (f *ForkChoiceStore) OnBlsToExecutionChange(signedChange *cltypes.SignedBLSToExecutionChange, test bool) error { + if f.operationsPool.BLSToExecutionChangesPool.Has(signedChange.Signature) { + return nil + } + change := signedChange.Message + + // Take lock as we interact with state. + f.mu.Lock() + + headHash, _, err := f.getHead() + if err != nil { + f.mu.Unlock() + return err + } + s, err := f.forkGraph.GetState(headHash, false) + if err != nil { + f.mu.Unlock() + return err + } + validator, err := s.ValidatorForValidatorIndex(int(change.ValidatorIndex)) + if err != nil { + f.mu.Unlock() + return fmt.Errorf("unable to retrieve state: %v", err) + } + wc := validator.WithdrawalCredentials() + + if wc[0] != f.beaconCfg.BLSWithdrawalPrefixByte { + f.mu.Unlock() + return fmt.Errorf("invalid withdrawal credentials prefix") + } + genesisValidatorRoot := s.GenesisValidatorsRoot() + f.mu.Unlock() + // Perform full validation if requested. + if !test { + // Check the validator's withdrawal credentials against the provided message. + hashedFrom := utils.Sha256(change.From[:]) + if !bytes.Equal(hashedFrom[1:], wc[1:]) { + return fmt.Errorf("invalid withdrawal credentials") + } + + // Compute the signing domain and verify the message signature. + domain, err := fork.ComputeDomain(f.beaconCfg.DomainBLSToExecutionChange[:], utils.Uint32ToBytes4(f.beaconCfg.GenesisForkVersion), genesisValidatorRoot) + if err != nil { + return err + } + signedRoot, err := fork.ComputeSigningRoot(change, domain) + if err != nil { + return err + } + valid, err := bls.Verify(signedChange.Signature[:], signedRoot[:], change.From[:]) + if err != nil { + return err + } + if !valid { + return fmt.Errorf("invalid signature") + } + } + + f.operationsPool.BLSToExecutionChangesPool.Insert(signedChange.Signature, signedChange) + return nil +} diff --git a/cl/phase1/forkchoice/on_tick.go b/cl/phase1/forkchoice/on_tick.go index 4f59528d25c..6020e979900 100644 --- a/cl/phase1/forkchoice/on_tick.go +++ b/cl/phase1/forkchoice/on_tick.go @@ -6,9 +6,9 @@ import libcommon "github.com/ledgerwatch/erigon-lib/common" func (f *ForkChoiceStore) OnTick(time uint64) { f.mu.Lock() defer f.mu.Unlock() - tickSlot := (time - f.forkGraph.GenesisTime()) / f.forkGraph.Config().SecondsPerSlot + tickSlot := (time - f.genesisTime) / f.beaconCfg.SecondsPerSlot for f.Slot() < tickSlot { - previousTime := f.forkGraph.GenesisTime() + (f.Slot()+1)*f.forkGraph.Config().SecondsPerSlot + previousTime := f.genesisTime + (f.Slot()+1)*f.beaconCfg.SecondsPerSlot f.onTickPerSlot(previousTime) } f.onTickPerSlot(time) @@ -22,6 +22,7 @@ func (f *ForkChoiceStore) onTickPerSlot(time uint64) { if currentSlot <= previousSlot { return } + f.headHash = libcommon.Hash{} // If this is a new slot, reset store.proposer_boost_root f.proposerBoostRoot = libcommon.Hash{} if f.computeSlotsSinceEpochStart(currentSlot) == 0 { diff --git a/cl/phase1/forkchoice/utils.go b/cl/phase1/forkchoice/utils.go index ada018f16f7..b3eaca58da7 100644 --- a/cl/phase1/forkchoice/utils.go +++ b/cl/phase1/forkchoice/utils.go @@ -2,6 +2,7 @@ package forkchoice import ( "fmt" + "github.com/ledgerwatch/erigon/cl/transition" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -12,7 +13,7 @@ import ( // Slot calculates the current slot number using the time and genesis slot. func (f *ForkChoiceStore) Slot() uint64 { - return f.forkGraph.Config().GenesisSlot + ((f.time - f.forkGraph.GenesisTime()) / f.forkGraph.Config().SecondsPerSlot) + return f.beaconCfg.GenesisSlot + ((f.time - f.genesisTime) / f.beaconCfg.SecondsPerSlot) } // updateCheckpoints updates the justified and finalized checkpoints if new checkpoints have higher epochs. @@ -21,8 +22,29 @@ func (f *ForkChoiceStore) updateCheckpoints(justifiedCheckpoint, finalizedCheckp f.justifiedCheckpoint = justifiedCheckpoint } if finalizedCheckpoint.Epoch() > f.finalizedCheckpoint.Epoch() { + f.onNewFinalized(finalizedCheckpoint) f.finalizedCheckpoint = finalizedCheckpoint + + } +} + +func (f *ForkChoiceStore) onNewFinalized(newFinalized solid.Checkpoint) { + // get rid of checkpoint states + for k := range f.checkpointStates { + checkpoint := solid.Checkpoint(k) + if checkpoint.Epoch() <= newFinalized.Epoch() { + delete(f.checkpointStates, k) + continue + } + } + // get rid of children + for k, children := range f.childrens { + if children.parentSlot <= newFinalized.Epoch()*f.beaconCfg.SlotsPerEpoch { + delete(f.childrens, k) + continue + } } + f.forkGraph.Prune(newFinalized.Epoch() * f.beaconCfg.SlotsPerEpoch) } // updateCheckpoints updates the justified and finalized checkpoints if new checkpoints have higher epochs. @@ -37,12 +59,12 @@ func (f *ForkChoiceStore) updateUnrealizedCheckpoints(justifiedCheckpoint, final // computeEpochAtSlot calculates the epoch at a given slot number. func (f *ForkChoiceStore) computeEpochAtSlot(slot uint64) uint64 { - return slot / f.forkGraph.Config().SlotsPerEpoch + return slot / f.beaconCfg.SlotsPerEpoch } // computeStartSlotAtEpoch calculates the starting slot of a given epoch. func (f *ForkChoiceStore) computeStartSlotAtEpoch(epoch uint64) uint64 { - return epoch * f.forkGraph.Config().SlotsPerEpoch + return epoch * f.beaconCfg.SlotsPerEpoch } // computeSlotsSinceEpochStart calculates the number of slots since the start of the epoch of a given slot. @@ -69,11 +91,11 @@ func (f *ForkChoiceStore) Ancestor(root libcommon.Hash, slot uint64) libcommon.H // getCheckpointState computes and caches checkpoint states. func (f *ForkChoiceStore) getCheckpointState(checkpoint solid.Checkpoint) (*checkpointState, error) { // check if it can be found in cache. - if state, ok := f.checkpointStates.Get(checkpointComparable(checkpoint)); ok { + if state, ok := f.checkpointStates[checkpointComparable(checkpoint)]; ok { return state, nil } // If it is not in cache compute it and then put in cache. - baseState, _, err := f.forkGraph.GetState(checkpoint.BlockRoot(), true) + baseState, err := f.forkGraph.GetState(checkpoint.BlockRoot(), true) if err != nil { return nil, err } @@ -95,9 +117,9 @@ func (f *ForkChoiceStore) getCheckpointState(checkpoint solid.Checkpoint) (*chec validators[idx] = v return true }) - checkpointState := newCheckpointState(f.forkGraph.Config(), validators, + checkpointState := newCheckpointState(f.beaconCfg, f.anchorPublicKeys, validators, mixes, baseState.GenesisValidatorsRoot(), baseState.Fork(), baseState.GetTotalActiveBalance(), state.Epoch(baseState.BeaconState)) // Cache in memory what we are left with. - f.checkpointStates.Add(checkpointComparable(checkpoint), checkpointState) + f.checkpointStates[checkpointComparable(checkpoint)] = checkpointState return checkpointState, nil } diff --git a/cl/phase1/main.go b/cl/phase1/main.go index e64c2ccabfa..10f4c7070f6 100644 --- a/cl/phase1/main.go +++ b/cl/phase1/main.go @@ -8,22 +8,22 @@ func main() {} // "fmt" // "os" -// "github.com/ledgerwatch/erigon/cl/phase1/core" -// "github.com/ledgerwatch/erigon/cl/phase1/core/state" -// "github.com/ledgerwatch/erigon/cl/phase1/execution_client" -// "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" -// network2 "github.com/ledgerwatch/erigon/cl/phase1/network" -// stages2 "github.com/ledgerwatch/erigon/cl/phase1/stages" -// rawdb2 "github.com/ledgerwatch/erigon/cl/phase4/rawdb" +// "github.com/ledgerwatch/erigon-lib/cl/phase1/core" +// "github.com/ledgerwatch/erigon-lib/cl/phase1/core/state" +// "github.com/ledgerwatch/erigon-lib/cl/phase1/execution_client" +// "github.com/ledgerwatch/erigon-lib/cl/phase1/forkchoice" +// network2 "github.com/ledgerwatch/erigon-lib/cl/phase1/network" +// stages2 "github.com/ledgerwatch/erigon-lib/cl/phase1/stages" +// rawdb2 "github.com/ledgerwatch/erigon-lib/cl/phase4/rawdb" // sentinelrpc "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" // "github.com/ledgerwatch/erigon-lib/kv" // "github.com/ledgerwatch/erigon-lib/kv/mdbx" -// "github.com/ledgerwatch/erigon/cl/clparams" -// "github.com/ledgerwatch/erigon/cl/clparams/initial_state" -// "github.com/ledgerwatch/erigon/cl/cltypes" -// "github.com/ledgerwatch/erigon/cl/fork" -// "github.com/ledgerwatch/erigon/cl/rpc" +// "github.com/ledgerwatch/erigon-lib/cl/clparams" +// "github.com/ledgerwatch/erigon-lib/cl/clparams/initial_state" +// "github.com/ledgerwatch/erigon-lib/cl/cltypes" +// "github.com/ledgerwatch/erigon-lib/cl/fork" +// "github.com/ledgerwatch/erigon-lib/cl/rpc" // lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli" // "github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags" diff --git a/cl/phase1/network/backward_beacon_downloader.go b/cl/phase1/network/backward_beacon_downloader.go index 612406d5f05..08cf7aa80f6 100644 --- a/cl/phase1/network/backward_beacon_downloader.go +++ b/cl/phase1/network/backward_beacon_downloader.go @@ -2,12 +2,16 @@ package network import ( "sync" + "sync/atomic" + "time" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" "golang.org/x/net/context" "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" "github.com/ledgerwatch/erigon/cl/rpc" ) @@ -21,17 +25,30 @@ type BackwardBeaconDownloader struct { rpc *rpc.BeaconRpcP2P onNewBlock OnNewBlock finished bool + reqInterval *time.Ticker + db kv.RwDB + neverSkip bool mu sync.Mutex } -func NewBackwardBeaconDownloader(ctx context.Context, rpc *rpc.BeaconRpcP2P) *BackwardBeaconDownloader { +func NewBackwardBeaconDownloader(ctx context.Context, rpc *rpc.BeaconRpcP2P, db kv.RwDB) *BackwardBeaconDownloader { return &BackwardBeaconDownloader{ - ctx: ctx, - rpc: rpc, + ctx: ctx, + rpc: rpc, + db: db, + reqInterval: time.NewTicker(300 * time.Millisecond), + neverSkip: true, } } +// SetThrottle sets the throttle. +func (b *BackwardBeaconDownloader) SetThrottle(throttle time.Duration) { + b.mu.Lock() + defer b.mu.Unlock() + b.reqInterval.Reset(throttle) +} + // SetSlotToDownload sets slot to download. func (b *BackwardBeaconDownloader) SetSlotToDownload(slot uint64) { b.mu.Lock() @@ -46,6 +63,13 @@ func (b *BackwardBeaconDownloader) SetExpectedRoot(root libcommon.Hash) { b.expectedRoot = root } +// SetExpectedRoot sets the expected root we expect to download. +func (b *BackwardBeaconDownloader) SetNeverSkip(neverSkip bool) { + b.mu.Lock() + defer b.mu.Unlock() + b.neverSkip = neverSkip +} + // SetShouldStopAtFn sets the stop condition. func (b *BackwardBeaconDownloader) SetOnNewBlock(onNewBlock OnNewBlock) { b.mu.Lock() @@ -78,21 +102,51 @@ func (b *BackwardBeaconDownloader) Peers() (uint64, error) { // It then processes the response by iterating over the blocks in reverse order and calling a provided callback function onNewBlock on each block. // If the callback returns an error or signals that the download should be finished, the function will exit. // If the block's root hash does not match the expected root hash, it will be rejected and the function will continue to the next block. -func (b *BackwardBeaconDownloader) RequestMore(ctx context.Context) { - count := uint64(64) +func (b *BackwardBeaconDownloader) RequestMore(ctx context.Context) error { + count := uint64(32) start := b.slotToDownload - count + 1 // Overflow? round to 0. if start > b.slotToDownload { start = 0 } - responses, _, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, start, count) - if err != nil { - return + var atomicResp atomic.Value + atomicResp.Store([]*cltypes.SignedBeaconBlock{}) + +Loop: + for { + select { + case <-b.reqInterval.C: + go func() { + if len(atomicResp.Load().([]*cltypes.SignedBeaconBlock)) > 0 { + return + } + responses, peerId, err := b.rpc.SendBeaconBlocksByRangeReq(ctx, start, count) + if err != nil { + return + } + if responses == nil { + return + } + if len(responses) == 0 { + b.rpc.BanPeer(peerId) + return + } + atomicResp.Store(responses) + }() + case <-ctx.Done(): + return ctx.Err() + default: + if len(atomicResp.Load().([]*cltypes.SignedBeaconBlock)) > 0 { + break Loop + } + time.Sleep(10 * time.Millisecond) + } } + responses := atomicResp.Load().([]*cltypes.SignedBeaconBlock) // Import new blocks, order is forward so reverse the whole packet for i := len(responses) - 1; i >= 0; i-- { if b.finished { - return + return nil } segment := responses[i] // is this new block root equal to the expected root? @@ -103,6 +157,7 @@ func (b *BackwardBeaconDownloader) RequestMore(ctx context.Context) { } // No? Reject. if blockRoot != b.expectedRoot { + log.Debug("Gotten unexpected root", "got", blockRoot, "expected", b.expectedRoot) continue } // Yes? then go for the callback. @@ -115,4 +170,35 @@ func (b *BackwardBeaconDownloader) RequestMore(ctx context.Context) { b.expectedRoot = segment.Block.ParentRoot b.slotToDownload = segment.Block.Slot - 1 // update slot (might be inexact but whatever) } + if b.neverSkip { + return nil + } + // try skipping if the next slot is in db + tx, err := b.db.BeginRw(b.ctx) + if err != nil { + return err + } + defer tx.Rollback() + + // it will stop if we end finding a gap or if we reach the maxIterations + for { + // check if the expected root is in db + slot, err := beacon_indicies.ReadBlockSlotByBlockRoot(tx, b.expectedRoot) + if err != nil { + return err + } + if slot == nil || *slot == 0 { + break + } + b.slotToDownload = *slot - 1 + if err := beacon_indicies.MarkRootCanonical(b.ctx, tx, *slot, b.expectedRoot); err != nil { + return err + } + b.expectedRoot, err = beacon_indicies.ReadParentBlockRoot(b.ctx, tx, b.expectedRoot) + if err != nil { + return err + } + } + + return tx.Commit() } diff --git a/cl/phase1/network/gossip_manager.go b/cl/phase1/network/gossip_manager.go index 5d6b9c7f11d..abc33f3d6c4 100644 --- a/cl/phase1/network/gossip_manager.go +++ b/cl/phase1/network/gossip_manager.go @@ -2,49 +2,91 @@ package network import ( "context" - "runtime" + "fmt" + "github.com/ledgerwatch/erigon-lib/common" + "sync" - "github.com/VictoriaMetrics/metrics" - "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/freezer" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" "github.com/ledgerwatch/erigon-lib/types/ssz" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/log/v3" ) // Gossip manager is sending all messages to fork choice or others type GossipManager struct { - ctx context.Context - recorder freezer.Freezer forkChoice *forkchoice.ForkChoiceStore sentinel sentinel.SentinelClient // configs beaconConfig *clparams.BeaconChainConfig genesisConfig *clparams.GenesisConfig + + mu sync.RWMutex + subs map[int]chan *peers.PeeredObject[*cltypes.SignedBeaconBlock] + totalSubs int } -func NewGossipReceiver(ctx context.Context, s sentinel.SentinelClient, forkChoice *forkchoice.ForkChoiceStore, +func NewGossipReceiver(s sentinel.SentinelClient, forkChoice *forkchoice.ForkChoiceStore, beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, recorder freezer.Freezer) *GossipManager { return &GossipManager{ sentinel: s, forkChoice: forkChoice, - ctx: ctx, beaconConfig: beaconConfig, genesisConfig: genesisConfig, recorder: recorder, + subs: make(map[int]chan *peers.PeeredObject[*cltypes.SignedBeaconBlock]), + } +} + +// this subscribes to signed beacon blocks..... i wish this was better +func (g *GossipManager) SubscribeSignedBeaconBlocks(ctx context.Context) <-chan *peers.PeeredObject[*cltypes.SignedBeaconBlock] { + // a really big limit because why not.... + out := make(chan *peers.PeeredObject[*cltypes.SignedBeaconBlock], 512) + g.mu.Lock() + g.totalSubs++ + idx := g.totalSubs + g.subs[idx] = out + g.mu.Unlock() + go func() { + <-ctx.Done() + g.mu.Lock() + delete(g.subs, idx) + g.mu.Unlock() + }() + return out +} + +func operationsContract[T ssz.EncodableSSZ](ctx context.Context, g *GossipManager, l log.Ctx, data *sentinel.GossipData, version int, name string, fn func(T, bool) error) error { + var t T + object := t.Clone().(T) + if err := object.DecodeSSZ(common.CopyBytes(data.Data), version); err != nil { + g.sentinel.BanPeer(ctx, data.Peer) + l["at"] = fmt.Sprintf("decoding %s", name) + return err } + if err := fn(object /*test=*/, false); err != nil { + l["at"] = fmt.Sprintf("verify %s", name) + return err + } + if _, err := g.sentinel.PublishGossip(ctx, data); err != nil { + log.Debug("failed publish gossip", "err", err) + } + return nil } -func (g *GossipManager) onRecv(data *sentinel.GossipData, l log.Ctx) error { +func (g *GossipManager) onRecv(ctx context.Context, data *sentinel.GossipData, l log.Ctx) (err error) { + defer func() { + r := recover() + if r != nil { + err = fmt.Errorf("%v", r) + } + }() currentEpoch := utils.GetCurrentEpoch(g.genesisConfig.GenesisTime, g.beaconConfig.SecondsPerSlot, g.beaconConfig.SlotsPerEpoch) version := g.beaconConfig.GetCurrentStateVersion(currentEpoch) @@ -56,9 +98,9 @@ func (g *GossipManager) onRecv(data *sentinel.GossipData, l log.Ctx) error { var object ssz.Unmarshaler switch data.Type { case sentinel.GossipType_BeaconBlockGossipType: - object = &cltypes.SignedBeaconBlock{} + object = cltypes.NewSignedBeaconBlock(g.beaconConfig) if err := object.DecodeSSZ(common.CopyBytes(data.Data), int(version)); err != nil { - g.sentinel.BanPeer(g.ctx, data.Peer) + g.sentinel.BanPeer(ctx, data.Peer) l["at"] = "decoding block" return err } @@ -71,119 +113,57 @@ func (g *GossipManager) onRecv(data *sentinel.GossipData, l log.Ctx) error { return nil } if block.Block.Slot == currentSlotByTime { - if _, err := g.sentinel.PublishGossip(g.ctx, data); err != nil { + if _, err := g.sentinel.PublishGossip(ctx, data); err != nil { log.Debug("failed publish gossip", "err", err) } } - count, err := g.sentinel.GetPeers(g.ctx, &sentinel.EmptyMessage{}) + count, err := g.sentinel.GetPeers(ctx, &sentinel.EmptyMessage{}) if err != nil { l["at"] = "sentinel peer count" return err } - var m runtime.MemStats - dbg.ReadMemStats(&m) log.Debug("Received block via gossip", "peers", count.Amount, "slot", block.Block.Slot, - "alloc/sys", libcommon.ByteCount(m.Alloc)+"/"+libcommon.ByteCount(m.Sys), - "numGC", m.NumGC, ) if err := freezer.PutObjectSSZIntoFreezer("signedBeaconBlock", "caplin_core", block.Block.Slot, block, g.recorder); err != nil { return err } - peers := metrics.GetOrCreateGauge("caplin_peer_count", func() float64 { - return float64(count.Amount) - }) - - peers.Get() - - if err := g.forkChoice.OnBlock(block, true, true); err != nil { - // if we are within a quarter of an epoch within chain tip we ban it - if currentSlotByTime < g.forkChoice.HighestSeen()+(g.beaconConfig.SlotsPerEpoch/4) { - g.sentinel.BanPeer(g.ctx, data.Peer) - } - l["at"] = "block process" - return err - } - block.Block.Body.Attestations.Range(func(idx int, a *solid.Attestation, total int) bool { - if err = g.forkChoice.OnAttestation(a, true); err != nil { - return false - } - return true - }) - if err != nil { - l["at"] = "attestation process" - return err - } - // Now check the head - headRoot, headSlot, err := g.forkChoice.GetHead() - if err != nil { - l["slot"] = block.Block.Slot - l["at"] = "fetch head data" - return err - } - // Do forkchoice if possible - if g.forkChoice.Engine() != nil { - finalizedCheckpoint := g.forkChoice.FinalizedCheckpoint() - log.Info("Caplin is sending forkchoice") - // Run forkchoice - if err := g.forkChoice.Engine().ForkChoiceUpdate( - g.forkChoice.GetEth1Hash(finalizedCheckpoint.BlockRoot()), - g.forkChoice.GetEth1Hash(headRoot), - ); err != nil { - log.Warn("Could not set forkchoice", "err", err) - l["at"] = "sending forkchoice" - return err + g.mu.RLock() + for _, v := range g.subs { + select { + case v <- &peers.PeeredObject[*cltypes.SignedBeaconBlock]{Data: block, Peer: data.Peer.Pid}: + default: } } - // Log final result - log.Debug("New gossip block imported", - "slot", block.Block.Slot, - "head", headSlot, - "headRoot", headRoot, - ) + g.mu.RUnlock() + case sentinel.GossipType_VoluntaryExitGossipType: - object = &cltypes.SignedVoluntaryExit{} - if err := object.DecodeSSZ(data.Data, int(version)); err != nil { - g.sentinel.BanPeer(g.ctx, data.Peer) - l["at"] = "decode exit" + if err := operationsContract[*cltypes.SignedVoluntaryExit](ctx, g, l, data, int(version), "voluntary exit", g.forkChoice.OnVoluntaryExit); err != nil { return err } case sentinel.GossipType_ProposerSlashingGossipType: - object = &cltypes.ProposerSlashing{} - if err := object.DecodeSSZ(data.Data, int(version)); err != nil { - l["at"] = "decode proposer slash" - g.sentinel.BanPeer(g.ctx, data.Peer) + if err := operationsContract[*cltypes.ProposerSlashing](ctx, g, l, data, int(version), "proposer slashing", g.forkChoice.OnProposerSlashing); err != nil { return err } case sentinel.GossipType_AttesterSlashingGossipType: - object = &cltypes.AttesterSlashing{} - if err := object.DecodeSSZ(data.Data, int(version)); err != nil { - l["at"] = "decode attester slash" - g.sentinel.BanPeer(g.ctx, data.Peer) - return err - } - if err := g.forkChoice.OnAttesterSlashing(object.(*cltypes.AttesterSlashing)); err != nil { - l["at"] = "on attester slash" + if err := operationsContract[*cltypes.AttesterSlashing](ctx, g, l, data, int(version), "attester slashing", g.forkChoice.OnAttesterSlashing); err != nil { return err } - case sentinel.GossipType_AggregateAndProofGossipType: - object = &cltypes.SignedAggregateAndProof{} - if err := object.DecodeSSZ(data.Data, int(version)); err != nil { - l["at"] = "decoding proof" - g.sentinel.BanPeer(g.ctx, data.Peer) + case sentinel.GossipType_BlsToExecutionChangeGossipType: + if err := operationsContract[*cltypes.SignedBLSToExecutionChange](ctx, g, l, data, int(version), "bls to execution change", g.forkChoice.OnBlsToExecutionChange); err != nil { return err } } return nil } -func (g *GossipManager) Start() { - subscription, err := g.sentinel.SubscribeGossip(g.ctx, &sentinel.EmptyMessage{}) +func (g *GossipManager) Start(ctx context.Context) { + subscription, err := g.sentinel.SubscribeGossip(ctx, &sentinel.EmptyMessage{}) if err != nil { return } @@ -198,7 +178,7 @@ func (g *GossipManager) Start() { for k := range l { delete(l, k) } - err = g.onRecv(data, l) + err = g.onRecv(ctx, data, l) if err != nil { l["err"] = err log.Debug("[Beacon Gossip] Recoverable Error", l) diff --git a/cl/phase1/stages/clstages.go b/cl/phase1/stages/clstages.go new file mode 100644 index 00000000000..4d3f7f188cc --- /dev/null +++ b/cl/phase1/stages/clstages.go @@ -0,0 +1,635 @@ +package stages + +import ( + "context" + "errors" + "runtime" + "time" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/antiquary" + "github.com/ledgerwatch/erigon/cl/beacon/synced_data" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/clstages" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + "github.com/ledgerwatch/erigon/cl/persistence/db_config" + state_accessors "github.com/ledgerwatch/erigon/cl/persistence/state" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + + network2 "github.com/ledgerwatch/erigon/cl/phase1/network" + "github.com/ledgerwatch/erigon/cl/rpc" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" + "github.com/ledgerwatch/erigon/cl/utils" + "github.com/ledgerwatch/log/v3" +) + +type Cfg struct { + rpc *rpc.BeaconRpcP2P + genesisCfg *clparams.GenesisConfig + beaconCfg *clparams.BeaconChainConfig + executionClient execution_client.ExecutionEngine + state *state.CachingBeaconState + gossipManager *network2.GossipManager + forkChoice *forkchoice.ForkChoiceStore + beaconDB persistence.BeaconChainDatabase + indiciesDB kv.RwDB + tmpdir string + dbConfig db_config.DatabaseConfiguration + sn *freezeblocks.CaplinSnapshots + antiquary *antiquary.Antiquary + syncedData *synced_data.SyncedDataManager + + hasDownloaded, backfilling bool +} + +type Args struct { + peers uint64 + + targetEpoch, seenEpoch uint64 + targetSlot, seenSlot uint64 + + hasDownloaded bool +} + +func ClStagesCfg( + rpc *rpc.BeaconRpcP2P, + antiquary *antiquary.Antiquary, + genesisCfg *clparams.GenesisConfig, + beaconCfg *clparams.BeaconChainConfig, + state *state.CachingBeaconState, + executionClient execution_client.ExecutionEngine, + gossipManager *network2.GossipManager, + forkChoice *forkchoice.ForkChoiceStore, + beaconDB persistence.BeaconChainDatabase, + indiciesDB kv.RwDB, + sn *freezeblocks.CaplinSnapshots, + tmpdir string, + dbConfig db_config.DatabaseConfiguration, + backfilling bool, + syncedData *synced_data.SyncedDataManager, +) *Cfg { + return &Cfg{ + rpc: rpc, + antiquary: antiquary, + genesisCfg: genesisCfg, + beaconCfg: beaconCfg, + state: state, + executionClient: executionClient, + gossipManager: gossipManager, + forkChoice: forkChoice, + tmpdir: tmpdir, + beaconDB: beaconDB, + indiciesDB: indiciesDB, + dbConfig: dbConfig, + sn: sn, + backfilling: backfilling, + syncedData: syncedData, + } +} + +type StageName = string + +const ( + WaitForPeers StageName = "WaitForPeers" + CatchUpEpochs StageName = "CatchUpEpochs" + CatchUpBlocks StageName = "CatchUpBlocks" + ForkChoice StageName = "ForkChoice" + ListenForForks StageName = "ListenForForks" + CleanupAndPruning StageName = "CleanupAndPruning" + SleepForSlot StageName = "SleepForSlot" + DownloadHistoricalBlocks StageName = "DownloadHistoricalBlocks" +) + +const ( + minPeersForDownload = uint64(4) +) + +func MetaCatchingUp(args Args) StageName { + if args.peers < minPeersForDownload { + return WaitForPeers + } + if !args.hasDownloaded { + return DownloadHistoricalBlocks + } + if args.seenEpoch < args.targetEpoch { + return CatchUpEpochs + } + if args.seenSlot < args.targetSlot { + return CatchUpBlocks + } + + return "" +} + +/* + +this graph describes the state transitions for cl + +digraph { + compound=true; + subgraph cluster_0 { + label="syncing"; + WaitForPeers; + CatchUpBlocks; + CatchUpEpochs; + } + + subgraph cluster_3 { + label="if behind (transition function)" + MetaCatchingUp; + } + + subgraph cluster_1 { + label="head"; + ForkChoice; CleanupAndPruning; ListenForForks; SleepForSlot; + } + + MetaCatchingUp -> WaitForPeers + MetaCatchingUp -> CatchUpEpochs + MetaCatchingUp -> CatchUpBlocks + + WaitForPeers -> MetaCatchingUp[lhead=cluster_3] + CatchUpEpochs -> MetaCatchingUp[lhead=cluster_3] + CatchUpBlocks -> MetaCatchingUp[lhead=cluster_3] + CleanupAndPruning -> MetaCatchingUp[lhead=cluster_3] + ListenForForks -> MetaCatchingUp[lhead=cluster_3] + ForkChoice -> MetaCatchingUp[lhead=cluster_3] + + CatchUpBlocks -> ForkChoice + ForkChoice -> ListenForForks + + SleepForSlot -> WaitForPeers + + ListenForForks -> ForkChoice + ListenForForks -> SleepForSlot + ListenForForks -> CleanupAndPruning + CleanupAndPruning -> SleepForSlot +} +*/ + +// ConsensusClStages creates a stage loop container to be used to run caplin +func ConsensusClStages(ctx context.Context, + cfg *Cfg, +) *clstages.StageGraph[*Cfg, Args] { + + rpcSource := persistence.NewBeaconRpcSource(cfg.rpc) + gossipSource := persistence.NewGossipSource(ctx, cfg.gossipManager) + processBlock := func(tx kv.RwTx, block *cltypes.SignedBeaconBlock, newPayload, fullValidation bool) error { + if err := cfg.forkChoice.OnBlock(block, newPayload, fullValidation); err != nil { + log.Warn("fail to process block", "reason", err, "slot", block.Block.Slot) + return err + } + if err := beacon_indicies.WriteHighestFinalized(tx, cfg.forkChoice.FinalizedSlot()); err != nil { + return err + } + // Write block to database optimistically if we are very behind. + return cfg.beaconDB.WriteBlock(ctx, tx, block, false) + } + + // TODO: this is an ugly hack, but it works! Basically, we want shared state in the clstages. + // Probably the correct long term solution is to create a third generic parameter that defines shared state + // but for now, all it would have are the two gossip sources and the forkChoicesSinceReorg, so i don't think its worth it (yet). + shouldForkChoiceSinceReorg := false + + // clstages run in a single thread - so we don't need to worry about any synchronization. + return &clstages.StageGraph[*Cfg, Args]{ + // the ArgsFunc is run after every stage. It is passed into the transition function, and the same args are passed into the next stage. + ArgsFunc: func(ctx context.Context, cfg *Cfg) (args Args) { + var err error + args.peers, err = cfg.rpc.Peers() + if err != nil { + log.Error("failed to get sentinel peer count", "err", err) + args.peers = 0 + } + args.hasDownloaded = cfg.hasDownloaded + args.seenSlot = cfg.forkChoice.HighestSeen() + args.seenEpoch = args.seenSlot / cfg.beaconCfg.SlotsPerEpoch + args.targetSlot = utils.GetCurrentSlot(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot) + // Note that the target epoch is always one behind. this is because we are always behind in the current epoch, so it would not be very useful + args.targetEpoch = utils.GetCurrentEpoch(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot, cfg.beaconCfg.SlotsPerEpoch) - 1 + return + }, + Stages: map[string]clstages.Stage[*Cfg, Args]{ + WaitForPeers: { + Description: `wait for enough peers. This is also a safe stage to go to when unsure of what stage to use`, + TransitionFunc: func(cfg *Cfg, args Args, err error) string { + if x := MetaCatchingUp(args); x != "" { + return x + } + return CatchUpBlocks + }, + ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { + peersCount, err := cfg.rpc.Peers() + if err != nil { + return nil + } + waitWhenNotEnoughPeers := 3 * time.Second + for { + if peersCount >= minPeersForDownload { + break + } + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + logger.Info("[Caplin] Waiting For Peers", "have", peersCount, "needed", minPeersForDownload, "retryIn", waitWhenNotEnoughPeers) + time.Sleep(waitWhenNotEnoughPeers) + peersCount, err = cfg.rpc.Peers() + if err != nil { + peersCount = 0 + } + } + return nil + }, + }, + DownloadHistoricalBlocks: { + Description: "Download historical blocks", + TransitionFunc: func(cfg *Cfg, args Args, err error) string { + if x := MetaCatchingUp(args); x != "" { + return x + } + return CatchUpBlocks + }, + ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { + cfg.hasDownloaded = true + startingRoot, err := cfg.state.BlockRoot() + if err != nil { + return err + } + // This stage is special so use context.Background() TODO(Giulio2002): make the context be passed in + startingSlot := cfg.state.LatestBlockHeader().Slot + downloader := network2.NewBackwardBeaconDownloader(context.Background(), cfg.rpc, cfg.indiciesDB) + + if err := SpawnStageHistoryDownload(StageHistoryReconstruction(downloader, cfg.antiquary, cfg.sn, cfg.beaconDB, cfg.indiciesDB, cfg.executionClient, cfg.genesisCfg, cfg.beaconCfg, cfg.backfilling, false, startingRoot, startingSlot, cfg.tmpdir, logger), context.Background(), logger); err != nil { + cfg.hasDownloaded = false + return err + } + return nil + }, + }, + CatchUpEpochs: { + Description: `if we are 1 or more epochs behind, we download in parallel by epoch`, + TransitionFunc: func(cfg *Cfg, args Args, err error) string { + if x := MetaCatchingUp(args); x != "" { + return x + } + return CatchUpBlocks + }, + ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { + logger.Info("[Caplin] Downloading epochs from reqresp", "from", args.seenEpoch, "to", args.targetEpoch) + currentEpoch := args.seenEpoch + blockBatch := []*types.Block{} + shouldInsert := cfg.executionClient != nil && cfg.executionClient.SupportInsertion() + tx, err := cfg.indiciesDB.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + MainLoop: + for currentEpoch <= args.targetEpoch+1 { + startBlock := currentEpoch * cfg.beaconCfg.SlotsPerEpoch + blocks, err := rpcSource.GetRange(ctx, tx, startBlock, cfg.beaconCfg.SlotsPerEpoch) + if err != nil { + return err + } + // If we got an empty packet ban the peer + if len(blocks.Data) == 0 { + cfg.rpc.BanPeer(blocks.Peer) + log.Debug("no data received from peer in epoch download") + continue MainLoop + } + + logger.Info("[Caplin] Epoch downloaded", "epoch", currentEpoch) + for _, block := range blocks.Data { + + if shouldInsert && block.Version() >= clparams.BellatrixVersion { + executionPayload := block.Block.Body.ExecutionPayload + body := executionPayload.Body() + txs, err := types.DecodeTransactions(body.Transactions) + if err != nil { + log.Warn("bad blocks segment received", "err", err) + cfg.rpc.BanPeer(blocks.Peer) + currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1) + continue MainLoop + } + header, err := executionPayload.RlpHeader() + if err != nil { + log.Warn("bad blocks segment received", "err", err) + cfg.rpc.BanPeer(blocks.Peer) + currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1) + continue MainLoop + } + blockBatch = append(blockBatch, types.NewBlockFromStorage(executionPayload.BlockHash, header, txs, nil, body.Withdrawals)) + } + if err := processBlock(tx, block, false, true); err != nil { + log.Warn("bad blocks segment received", "err", err) + cfg.rpc.BanPeer(blocks.Peer) + currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1) + continue MainLoop + } + } + if len(blockBatch) > 0 { + if err := cfg.executionClient.InsertBlocks(blockBatch); err != nil { + log.Warn("bad blocks segment received", "err", err) + currentEpoch = utils.Max64(args.seenEpoch, currentEpoch-1) + blockBatch = blockBatch[:0] + continue MainLoop + } + blockBatch = blockBatch[:0] + } + currentEpoch++ + } + return tx.Commit() + }, + }, + CatchUpBlocks: { + Description: `if we are within the epoch but not at head, we run catchupblocks`, + TransitionFunc: func(cfg *Cfg, args Args, err error) string { + if x := MetaCatchingUp(args); x != "" { + return x + } + return ForkChoice + }, + ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { + totalRequest := args.targetSlot - args.seenSlot + logger.Debug("waiting for blocks...", + "seenSlot", args.seenSlot, + "targetSlot", args.targetSlot, + "requestedSlots", totalRequest, + ) + respCh := make(chan *peers.PeeredObject[[]*cltypes.SignedBeaconBlock]) + errCh := make(chan error) + sources := []persistence.BlockSource{gossipSource} + + // if we are more than one block behind, we request the rpc source as well + if totalRequest > 2 { + sources = append(sources, rpcSource) + } + // 15 seconds is a good timeout for this + ctx, cn := context.WithTimeout(ctx, 15*time.Second) + defer cn() + + tx, err := cfg.indiciesDB.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + // we go ask all the sources and see who gets back to us first. whoever does is the winner!! + for _, v := range sources { + sourceFunc := v.GetRange + go func() { + blocks, err := sourceFunc(ctx, tx, args.seenSlot+1, totalRequest) + if err != nil { + errCh <- err + return + } + respCh <- blocks + }() + } + logTimer := time.NewTicker(30 * time.Second) + defer logTimer.Stop() + select { + case err := <-errCh: + return err + case blocks := <-respCh: + for _, block := range blocks.Data { + if err := processBlock(tx, block, true, true); err != nil { + return err + } + } + case <-logTimer.C: + logger.Info("[Caplin] Progress", "progress", cfg.forkChoice.HighestSeen(), "from", args.seenEpoch, "to", args.targetSlot) + } + return tx.Commit() + }, + }, + ForkChoice: { + Description: `fork choice stage. We will send all fork choise things here + also, we will wait up to delay seconds to deal with attestations + side forks`, + TransitionFunc: func(cfg *Cfg, args Args, err error) string { + if x := MetaCatchingUp(args); x != "" { + return x + } + return ListenForForks + }, + ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { + + // TODO: we need to get the last run block in order to process attestations here + ////////block.Block.Body.Attestations.Range(func(idx int, a *solid.Attestation, total int) bool { + //////// if err = g.forkChoice.OnAttestation(a, true); err != nil { + //////// return false + //////// } + //////// return true + ////////}) + ////////if err != nil { + //////// return err + ////////} + + // Now check the head + headRoot, headSlot, err := cfg.forkChoice.GetHead() + if err != nil { + return err + } + + // Do forkchoice if possible + if cfg.forkChoice.Engine() != nil { + finalizedCheckpoint := cfg.forkChoice.FinalizedCheckpoint() + logger.Debug("Caplin is sending forkchoice") + // Run forkchoice + if err := cfg.forkChoice.Engine().ForkChoiceUpdate( + cfg.forkChoice.GetEth1Hash(finalizedCheckpoint.BlockRoot()), + cfg.forkChoice.GetEth1Hash(headRoot), + ); err != nil { + logger.Warn("Could not set forkchoice", "err", err) + return err + } + } + tx, err := cfg.indiciesDB.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + type canonicalEntry struct { + slot uint64 + root common.Hash + } + + currentRoot := headRoot + currentSlot := headSlot + currentCanonical, err := beacon_indicies.ReadCanonicalBlockRoot(tx, currentSlot) + if err != nil { + return err + } + reconnectionRoots := make([]canonicalEntry, 0, 1) + + for currentRoot != currentCanonical { + var newFoundSlot *uint64 + + if currentRoot, err = beacon_indicies.ReadParentBlockRoot(ctx, tx, currentRoot); err != nil { + return err + } + if newFoundSlot, err = beacon_indicies.ReadBlockSlotByBlockRoot(tx, currentRoot); err != nil { + return err + } + if newFoundSlot == nil { + break + } + currentSlot = *newFoundSlot + currentCanonical, err = beacon_indicies.ReadCanonicalBlockRoot(tx, currentSlot) + if err != nil { + return err + } + reconnectionRoots = append(reconnectionRoots, canonicalEntry{currentSlot, currentRoot}) + } + if err := beacon_indicies.TruncateCanonicalChain(ctx, tx, currentSlot); err != nil { + return err + } + for i := len(reconnectionRoots) - 1; i >= 0; i-- { + if err := beacon_indicies.MarkRootCanonical(ctx, tx, reconnectionRoots[i].slot, reconnectionRoots[i].root); err != nil { + return err + } + } + if err := beacon_indicies.MarkRootCanonical(ctx, tx, headSlot, headRoot); err != nil { + return err + } + + // Increment validator set + headState, err := cfg.forkChoice.GetStateAtBlockRoot(headRoot, false) + if err != nil { + return err + } + if err := cfg.syncedData.OnHeadState(headState); err != nil { + return err + } + start := time.Now() + // Incement some stuff here + preverifiedValidators := cfg.forkChoice.PreverifiedValidator(headState.FinalizedCheckpoint().BlockRoot()) + preverifiedHistoricalSummary := cfg.forkChoice.PreverifiedHistoricalSummaries(headState.FinalizedCheckpoint().BlockRoot()) + preverifiedHistoricalRoots := cfg.forkChoice.PreverifiedHistoricalRoots(headState.FinalizedCheckpoint().BlockRoot()) + if err := state_accessors.IncrementPublicKeyTable(tx, headState, preverifiedValidators); err != nil { + return err + } + if err := state_accessors.IncrementHistoricalSummariesTable(tx, headState, preverifiedHistoricalSummary); err != nil { + return err + } + if err := state_accessors.IncrementHistoricalRootsTable(tx, headState, preverifiedHistoricalRoots); err != nil { + return err + } + log.Debug("Incremented state history", "elapsed", time.Since(start), "preverifiedValidators", preverifiedValidators) + + var m runtime.MemStats + dbg.ReadMemStats(&m) + logger.Debug("Imported chain segment", + "hash", headRoot, "slot", headSlot, + "alloc", common.ByteCount(m.Alloc), + "sys", common.ByteCount(m.Sys)) + return tx.Commit() + }, + }, + ListenForForks: { + TransitionFunc: func(cfg *Cfg, args Args, err error) string { + defer func() { + shouldForkChoiceSinceReorg = false + }() + if x := MetaCatchingUp(args); x != "" { + return x + } + if shouldForkChoiceSinceReorg { + return ForkChoice + } + return CleanupAndPruning + + }, + ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { + slotTime := utils.GetSlotTime(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot, args.targetSlot).Add( + time.Duration(cfg.beaconCfg.SecondsPerSlot) * (time.Second / 3), + ) + waitDur := slotTime.Sub(time.Now()) + ctx, cn := context.WithTimeout(ctx, waitDur) + defer cn() + tx, err := cfg.indiciesDB.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + // try to get the current block + blocks, err := gossipSource.GetRange(ctx, tx, args.seenSlot, 1) + if err != nil { + if errors.Is(err, context.Canceled) || errors.Is(err, context.DeadlineExceeded) { + return nil + } + return err + } + + for _, block := range blocks.Data { + err := processBlock(tx, block, true, true) + if err != nil { + // its okay if block processing fails + logger.Warn("extra block failed validation", "err", err) + return nil + } + shouldForkChoiceSinceReorg = true + logger.Debug("extra block received", "slot", args.seenSlot) + } + return tx.Commit() + }, + }, + CleanupAndPruning: { + Description: `cleanup and pruning is done here`, + TransitionFunc: func(cfg *Cfg, args Args, err error) string { + if x := MetaCatchingUp(args); x != "" { + return x + } + return SleepForSlot + }, + ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { + tx, err := cfg.indiciesDB.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + // clean up some old ranges + err = gossipSource.PurgeRange(ctx, tx, 1, args.seenSlot-cfg.beaconCfg.SlotsPerEpoch*16) + if err != nil { + return err + } + // TODO(Giulio2002): schedule snapshots retirement if needed. + if !cfg.backfilling { + if err := cfg.beaconDB.PurgeRange(ctx, tx, 1, cfg.forkChoice.HighestSeen()-100_000); err != nil { + return err + } + if err := beacon_indicies.PruneBlockRoots(ctx, tx, 0, cfg.forkChoice.HighestSeen()-100_000); err != nil { + return err + } + } + + return tx.Commit() + }, + }, + SleepForSlot: { + Description: `sleep until the next slot`, + TransitionFunc: func(cfg *Cfg, args Args, err error) string { + return WaitForPeers + }, + ActionFunc: func(ctx context.Context, logger log.Logger, cfg *Cfg, args Args) error { + nextSlot := args.seenSlot + 1 + nextSlotTime := utils.GetSlotTime(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot, nextSlot) + nextSlotDur := nextSlotTime.Sub(time.Now()) + logger.Debug("sleeping until next slot", "slot", nextSlot, "time", nextSlotTime, "dur", nextSlotDur) + time.Sleep(nextSlotDur) + return nil + }, + }, + }, + } +} diff --git a/cl/phase1/stages/stage_fork_choice.go b/cl/phase1/stages/stage_fork_choice.go deleted file mode 100644 index 8f9d2bfd385..00000000000 --- a/cl/phase1/stages/stage_fork_choice.go +++ /dev/null @@ -1,231 +0,0 @@ -package stages - -import ( - "context" - "runtime" - "time" - - "github.com/ledgerwatch/erigon/cl/freezer" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/phase1/execution_client" - "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" - network2 "github.com/ledgerwatch/erigon/cl/phase1/network" - - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/dbg" - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/log/v3" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/eth/stagedsync" -) - -type StageForkChoiceCfg struct { - db kv.RwDB - downloader *network2.ForwardBeaconDownloader - genesisCfg *clparams.GenesisConfig - beaconCfg *clparams.BeaconChainConfig - executionClient *execution_client.ExecutionClient - state *state.CachingBeaconState - gossipManager *network2.GossipManager - forkChoice *forkchoice.ForkChoiceStore - caplinFreezer freezer.Freezer -} - -const minPeersForDownload = 2 -const minPeersForSyncStart = 4 - -var ( - freezerNameSpacePrefix = "" - blockObjectName = "singedBeaconBlock" - stateObjectName = "beaconState" - gossipAction = "gossip" -) - -func StageForkChoice(db kv.RwDB, downloader *network2.ForwardBeaconDownloader, genesisCfg *clparams.GenesisConfig, - beaconCfg *clparams.BeaconChainConfig, state *state.CachingBeaconState, executionClient *execution_client.ExecutionClient, gossipManager *network2.GossipManager, - forkChoice *forkchoice.ForkChoiceStore, caplinFreezer freezer.Freezer) StageForkChoiceCfg { - return StageForkChoiceCfg{ - db: db, - downloader: downloader, - genesisCfg: genesisCfg, - beaconCfg: beaconCfg, - state: state, - executionClient: executionClient, - gossipManager: gossipManager, - forkChoice: forkChoice, - caplinFreezer: caplinFreezer, - } -} - -// StageForkChoice enables the fork choice state. it is never supposed to exit this stage once it gets in. -func SpawnStageForkChoice(cfg StageForkChoiceCfg, s *stagedsync.StageState, tx kv.RwTx, ctx context.Context) error { - /*useExternalTx := tx != nil - var err error - if !useExternalTx { - tx, err = cfg.db.BeginRw(ctx) - if err != nil { - return err - } - defer tx.Rollback() - }*/ - // Start download service - log.Info("Started Ethereum 2.0 Gossip Service") - // We start gossip management. - go cfg.gossipManager.Start() - go onTickService(ctx, cfg) - go func() { - logIntervalPeers := time.NewTicker(1 * time.Minute) - for { - select { - case <-logIntervalPeers.C: - if peerCount, err := cfg.downloader.Peers(); err == nil { - log.Info("[Caplin] P2P", "peers", peerCount) - - } - case <-ctx.Done(): - return - } - - } - }() - startDownloadService(s, cfg) - /*if !useExternalTx { - if err = tx.Commit(); err != nil { - return err - } - }*/ - return nil -} - -func startDownloadService(s *stagedsync.StageState, cfg StageForkChoiceCfg) { - cfg.downloader.SetHighestProcessedRoot(libcommon.Hash{}) - cfg.downloader.SetHighestProcessedSlot(cfg.state.Slot()) - cfg.downloader.SetProcessFunction(func(highestSlotProcessed uint64, _ libcommon.Hash, newBlocks []*cltypes.SignedBeaconBlock) (uint64, libcommon.Hash, error) { - for _, block := range newBlocks { - if err := freezer.PutObjectSSZIntoFreezer("signedBeaconBlock", "caplin_core", block.Block.Slot, block, cfg.caplinFreezer); err != nil { - return highestSlotProcessed, libcommon.Hash{}, err - } - - sendForckchoice := - utils.GetCurrentSlot(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot) == block.Block.Slot - if err := cfg.forkChoice.OnBlock(block, sendForckchoice, true); err != nil { - log.Warn("Could not download block", "reason", err, "slot", block.Block.Slot) - return highestSlotProcessed, libcommon.Hash{}, err - } - highestSlotProcessed = utils.Max64(block.Block.Slot, highestSlotProcessed) - if sendForckchoice { - var m runtime.MemStats - dbg.ReadMemStats(&m) - // Import the head - headRoot, headSlot, err := cfg.forkChoice.GetHead() - - log.Debug("New block imported", - "slot", block.Block.Slot, - "head", headSlot, - "headRoot", headRoot, - "alloc/sys", libcommon.ByteCount(m.Alloc)+"/"+libcommon.ByteCount(m.Sys), - "numGC", m.NumGC, - ) - if err != nil { - log.Debug("Could not fetch head data", - "slot", block.Block.Slot, - "err", err) - continue - } - - // Do forkchoice if possible - if cfg.forkChoice.Engine() != nil { - finalizedCheckpoint := cfg.forkChoice.FinalizedCheckpoint() - log.Info("Caplin is sending forkchoice") - // Run forkchoice - if err := cfg.forkChoice.Engine().ForkChoiceUpdate( - cfg.forkChoice.GetEth1Hash(finalizedCheckpoint.BlockRoot()), - cfg.forkChoice.GetEth1Hash(headRoot), - ); err != nil { - log.Warn("Could not set forkchoice", "err", err) - } - } - } - } - // Checks done, update all internals accordingly - return highestSlotProcessed, libcommon.Hash{}, nil - }) - maxBlockBehindBeforeDownload := int64(32) - overtimeMargin := uint64(6) // how much time has passed before trying download the next block in seconds - ctx := context.TODO() - isDownloading := false -MainLoop: - for { - targetSlot := utils.GetCurrentSlot(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot) - overtime := utils.GetCurrentSlotOverTime(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot) - seenSlot := cfg.forkChoice.HighestSeen() - if targetSlot == seenSlot || (targetSlot == seenSlot+1 && overtime < overtimeMargin) { - time.Sleep(time.Second) - continue - } - peersCount, err := cfg.downloader.Peers() - if err != nil { - continue - } - waitWhenNotEnoughPeers := 5 * time.Second - if !isDownloading { - isDownloading = peersCount >= minPeersForSyncStart - } - if isDownloading { - isDownloading = peersCount >= minPeersForDownload - if !isDownloading { - log.Debug("[Caplin] Lost too many peers", "have", peersCount, "needed", minPeersForDownload) - } - } - if !isDownloading { - log.Debug("[Caplin] Waiting For Peers", "have", peersCount, "needed", minPeersForSyncStart, "retryIn", waitWhenNotEnoughPeers) - time.Sleep(waitWhenNotEnoughPeers) - continue - } - highestSeen := cfg.forkChoice.HighestSeen() - startDownloadSlot := highestSeen - uint64(maxBlockBehindBeforeDownload) - // Detect underflow - if startDownloadSlot > highestSeen { - startDownloadSlot = 0 - } - - cfg.downloader.SetHighestProcessedRoot(libcommon.Hash{}) - cfg.downloader.SetHighestProcessedSlot( - utils.Max64(startDownloadSlot, cfg.forkChoice.FinalizedSlot())) - - // Wait small time - log.Debug("Caplin may have missed some slots, started downloading chain") - // Process blocks until we reach our target - for highestProcessed := cfg.downloader.GetHighestProcessedSlot(); utils.GetCurrentSlot(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot) > highestProcessed; highestProcessed = cfg.downloader.GetHighestProcessedSlot() { - ctx, cancel := context.WithTimeout(ctx, 12*time.Second) - cfg.downloader.RequestMore(ctx) - cancel() - peersCount, err = cfg.downloader.Peers() - if err != nil { - break - } - if utils.GetCurrentSlot(cfg.genesisCfg.GenesisTime, cfg.beaconCfg.SecondsPerSlot) == cfg.forkChoice.HighestSeen() { - break - } - if peersCount < minPeersForDownload { - continue MainLoop - } - } - log.Debug("Finished catching up", "slot", cfg.downloader.GetHighestProcessedSlot()) - } -} - -func onTickService(ctx context.Context, cfg StageForkChoiceCfg) { - tickInterval := time.NewTicker(50 * time.Millisecond) - for { - select { - case <-tickInterval.C: - cfg.forkChoice.OnTick(uint64(time.Now().Unix())) - case <-ctx.Done(): - return - } - } -} diff --git a/cl/phase1/stages/stage_history_download.go b/cl/phase1/stages/stage_history_download.go new file mode 100644 index 00000000000..c65941b727b --- /dev/null +++ b/cl/phase1/stages/stage_history_download.go @@ -0,0 +1,274 @@ +package stages + +import ( + "context" + "fmt" + "sync/atomic" + "time" + + "github.com/ledgerwatch/erigon-lib/kv/dbutils" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/etl" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon/cl/antiquary" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + "github.com/ledgerwatch/erigon/cl/phase1/network" + "github.com/ledgerwatch/erigon/cl/utils" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/log/v3" +) + +type StageHistoryReconstructionCfg struct { + genesisCfg *clparams.GenesisConfig + beaconCfg *clparams.BeaconChainConfig + downloader *network.BackwardBeaconDownloader + sn *freezeblocks.CaplinSnapshots + startingRoot libcommon.Hash + backfilling bool + waitForAllRoutines bool + startingSlot uint64 + tmpdir string + db persistence.BeaconChainDatabase + indiciesDB kv.RwDB + engine execution_client.ExecutionEngine + antiquary *antiquary.Antiquary + logger log.Logger +} + +const logIntervalTime = 30 * time.Second + +func StageHistoryReconstruction(downloader *network.BackwardBeaconDownloader, antiquary *antiquary.Antiquary, sn *freezeblocks.CaplinSnapshots, db persistence.BeaconChainDatabase, indiciesDB kv.RwDB, engine execution_client.ExecutionEngine, genesisCfg *clparams.GenesisConfig, beaconCfg *clparams.BeaconChainConfig, backfilling, waitForAllRoutines bool, startingRoot libcommon.Hash, startinSlot uint64, tmpdir string, logger log.Logger) StageHistoryReconstructionCfg { + return StageHistoryReconstructionCfg{ + genesisCfg: genesisCfg, + beaconCfg: beaconCfg, + downloader: downloader, + startingRoot: startingRoot, + tmpdir: tmpdir, + startingSlot: startinSlot, + waitForAllRoutines: waitForAllRoutines, + logger: logger, + backfilling: backfilling, + indiciesDB: indiciesDB, + antiquary: antiquary, + db: db, + engine: engine, + sn: sn, + } +} + +// SpawnStageBeaconsForward spawn the beacon forward stage +func SpawnStageHistoryDownload(cfg StageHistoryReconstructionCfg, ctx context.Context, logger log.Logger) error { + // Wait for execution engine to be ready. + blockRoot := cfg.startingRoot + currentSlot := cfg.startingSlot + + if !clparams.SupportBackfilling(cfg.beaconCfg.DepositNetworkID) { + cfg.backfilling = false // disable backfilling if not on a supported network + } + executionBlocksCollector := etl.NewCollector("HistoryDownload", cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger) + defer executionBlocksCollector.Close() + executionBlocksCollector.LogLvl(log.LvlDebug) + // Start the procedure + logger.Info("Starting downloading History", "from", currentSlot) + // Setup slot and block root + cfg.downloader.SetSlotToDownload(currentSlot) + cfg.downloader.SetExpectedRoot(blockRoot) + foundLatestEth1ValidBlock := &atomic.Bool{} + foundLatestEth1ValidBlock.Store(false) + if cfg.engine == nil || !cfg.engine.SupportInsertion() { + foundLatestEth1ValidBlock.Store(true) // skip this if we are not using an engine supporting direct insertion + } + + var currEth1Progress atomic.Int64 + + bytesReadInTotal := atomic.Uint64{} + // Set up onNewBlock callback + cfg.downloader.SetOnNewBlock(func(blk *cltypes.SignedBeaconBlock) (finished bool, err error) { + tx, err := cfg.indiciesDB.BeginRw(ctx) + if err != nil { + return false, err + } + defer tx.Rollback() + if blk.Version() >= clparams.BellatrixVersion { + currEth1Progress.Store(int64(blk.Block.Body.ExecutionPayload.BlockNumber)) + } + + destinationSlot := cfg.sn.SegmentsMax() + bytesReadInTotal.Add(uint64(blk.EncodingSizeSSZ())) + + slot := blk.Block.Slot + if destinationSlot <= blk.Block.Slot { + if err := cfg.db.WriteBlock(ctx, tx, blk, true); err != nil { + return false, err + } + } + if !foundLatestEth1ValidBlock.Load() && blk.Version() >= clparams.BellatrixVersion { + payload := blk.Block.Body.ExecutionPayload + encodedPayload, err := payload.EncodeSSZ(nil) + if err != nil { + return false, fmt.Errorf("error encoding execution payload during download: %s", err) + } + // Use snappy compression that the temporary files do not take too much disk. + encodedPayload = utils.CompressSnappy(append(encodedPayload, byte(blk.Version()))) + if err := executionBlocksCollector.Collect(dbutils.BlockBodyKey(payload.BlockNumber, payload.BlockHash), encodedPayload); err != nil { + return false, fmt.Errorf("error collecting execution payload during download: %s", err) + } + if currEth1Progress.Load()%100 == 0 { + return false, tx.Commit() + } + + bodyChainHeader, err := cfg.engine.GetBodiesByHashes([]libcommon.Hash{payload.BlockHash}) + if err != nil { + return false, fmt.Errorf("error retrieving whether execution payload is present: %s", err) + } + foundLatestEth1ValidBlock.Store(len(bodyChainHeader) > 0 || cfg.engine.FrozenBlocks() > payload.BlockNumber) + } + if blk.Version() <= clparams.AltairVersion { + foundLatestEth1ValidBlock.Store(true) + } + + return foundLatestEth1ValidBlock.Load() && (!cfg.backfilling || slot <= destinationSlot), tx.Commit() + }) + prevProgress := cfg.downloader.Progress() + + finishCh := make(chan struct{}) + // Start logging thread + + go func() { + logInterval := time.NewTicker(logIntervalTime) + defer logInterval.Stop() + for { + select { + case <-logInterval.C: + logTime := logIntervalTime + // if we found the latest valid hash extend ticker to 10 times the normal amout + if foundLatestEth1ValidBlock.Load() { + logTime = 20 * logIntervalTime + logInterval.Reset(logTime) + } + + if cfg.engine != nil && cfg.engine.SupportInsertion() { + if ready, err := cfg.engine.Ready(); !ready { + if err != nil { + log.Warn("could not log progress", "err", err) + } + continue + } + + } + logArgs := []interface{}{} + currProgress := cfg.downloader.Progress() + blockProgress := float64(prevProgress - currProgress) + ratio := float64(logTime / time.Second) + speed := blockProgress / ratio + prevProgress = currProgress + peerCount, err := cfg.downloader.Peers() + if err != nil { + return + } + logArgs = append(logArgs, + "slot", currProgress, + "blockNumber", currEth1Progress.Load(), + "blk/sec", fmt.Sprintf("%.1f", speed), + "mbps/sec", fmt.Sprintf("%.4f", float64(bytesReadInTotal.Load())/(1000*1000*ratio)), + "peers", peerCount, + "snapshots", cfg.sn.SegmentsMax(), + "reconnected", foundLatestEth1ValidBlock.Load(), + ) + bytesReadInTotal.Store(0) + logger.Info("Downloading History", logArgs...) + case <-finishCh: + return + case <-ctx.Done(): + } + } + }() + + go func() { + for !cfg.downloader.Finished() { + if err := cfg.downloader.RequestMore(ctx); err != nil { + log.Debug("closing backfilling routine", "err", err) + return + } + } + cfg.antiquary.NotifyBackfilled() + log.Info("Backfilling finished") + + close(finishCh) + }() + // Lets wait for the latestValidHash to be turned on + for !foundLatestEth1ValidBlock.Load() || (cfg.waitForAllRoutines && !cfg.downloader.Finished()) { + select { + case <-ctx.Done(): + return ctx.Err() + case <-time.After(5 * time.Second): + } + } + cfg.downloader.SetThrottle(600 * time.Millisecond) // throttle to 0.6 second for backfilling + cfg.downloader.SetNeverSkip(false) + // If i do not give it a database, erigon lib starts to cry uncontrollably + db2 := memdb.New(cfg.tmpdir) + defer db2.Close() + tx2, err := db2.BeginRw(ctx) + if err != nil { + return err + } + defer tx2.Rollback() + + blockBatch := []*types.Block{} + blockBatchMaxSize := 1000 + + cfg.logger.Info("Ready to insert history, waiting for sync cycle to finish") + + if err := executionBlocksCollector.Load(tx2, kv.Headers, func(k, vComp []byte, _ etl.CurrentTableReader, next etl.LoadNextFunc) error { + if cfg.engine == nil || !cfg.engine.SupportInsertion() { + return next(k, nil, nil) + } + var err error + var v []byte + if v, err = utils.DecompressSnappy(vComp); err != nil { + return fmt.Errorf("error decompressing dump during collection: %s", err) + } + + version := clparams.StateVersion(v[len(v)-1]) + executionPayload := cltypes.NewEth1Block(version, cfg.beaconCfg) + if err := executionPayload.DecodeSSZ(v[:len(v)-1], int(version)); err != nil { + return fmt.Errorf("error decoding execution payload during collection: %s", err) + } + body := executionPayload.Body() + header, err := executionPayload.RlpHeader() + if err != nil { + return fmt.Errorf("error parsing rlp header during collection: %s", err) + } + + txs, err := types.DecodeTransactions(body.Transactions) + if err != nil { + return err + } + + block := types.NewBlockFromStorage(executionPayload.BlockHash, header, txs, nil, body.Withdrawals) + blockBatch = append(blockBatch, block) + if len(blockBatch) >= blockBatchMaxSize { + if err := cfg.engine.InsertBlocks(blockBatch); err != nil { + return fmt.Errorf("error inserting block during collection: %s", err) + } + blockBatch = blockBatch[:0] + } + return next(k, nil, nil) + }, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + if cfg.engine != nil && cfg.engine.SupportInsertion() { + if err := cfg.engine.InsertBlocks(blockBatch); err != nil { + return fmt.Errorf("error doing last block insertion during collection: %s", err) + } + } + return nil +} diff --git a/cl/phase1/stages/stage_history_reconstruction.go b/cl/phase1/stages/stage_history_reconstruction.go deleted file mode 100644 index 9797227718c..00000000000 --- a/cl/phase1/stages/stage_history_reconstruction.go +++ /dev/null @@ -1,220 +0,0 @@ -package stages - -import ( - "context" - "fmt" - "time" - - rawdb2 "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - execution_client2 "github.com/ledgerwatch/erigon/cl/phase1/execution_client" - "github.com/ledgerwatch/erigon/cl/phase1/network" - "github.com/ledgerwatch/erigon/cl/utils" - - "github.com/ledgerwatch/erigon-lib/etl" - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/eth/stagedsync" - "github.com/ledgerwatch/log/v3" -) - -type StageHistoryReconstructionCfg struct { - db kv.RwDB - genesisCfg *clparams.GenesisConfig - beaconCfg *clparams.BeaconChainConfig - downloader *network.BackwardBeaconDownloader - state *state.CachingBeaconState - executionClient *execution_client2.ExecutionClient - beaconDBCfg *rawdb2.BeaconDataConfig - tmpdir string -} - -const logIntervalTime = 30 * time.Second - -func StageHistoryReconstruction(db kv.RwDB, downloader *network.BackwardBeaconDownloader, genesisCfg *clparams.GenesisConfig, beaconCfg *clparams.BeaconChainConfig, beaconDBCfg *rawdb2.BeaconDataConfig, state *state.CachingBeaconState, tmpdir string, executionClient *execution_client2.ExecutionClient) StageHistoryReconstructionCfg { - return StageHistoryReconstructionCfg{ - db: db, - genesisCfg: genesisCfg, - beaconCfg: beaconCfg, - downloader: downloader, - state: state, - tmpdir: tmpdir, - executionClient: executionClient, - beaconDBCfg: beaconDBCfg, - } -} - -// SpawnStageBeaconsForward spawn the beacon forward stage -func SpawnStageHistoryReconstruction(cfg StageHistoryReconstructionCfg, s *stagedsync.StageState, tx kv.RwTx, ctx context.Context, logger log.Logger) error { - // This stage must be done only once. - progress := s.BlockNumber - if progress != 0 { - return nil - } - - useExternalTx := tx != nil - var err error - if !useExternalTx { - tx, err = cfg.db.BeginRw(ctx) - if err != nil { - return err - } - defer tx.Rollback() - } - blockRoot, err := cfg.state.BlockRoot() - if err != nil { - return err - } - destinationSlot := uint64(0) - currentSlot := cfg.state.LatestBlockHeader().Slot - if currentSlot > cfg.beaconDBCfg.BackFillingAmount { - destinationSlot = currentSlot - cfg.beaconDBCfg.BackFillingAmount - } - - // ETL collectors for attestations + beacon blocks - beaconBlocksCollector := etl.NewCollector(s.LogPrefix(), cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger) - defer beaconBlocksCollector.Close() - attestationsCollector := etl.NewCollector(s.LogPrefix(), cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger) - defer attestationsCollector.Close() - executionPayloadsCollector := etl.NewCollector(s.LogPrefix(), cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger) - defer executionPayloadsCollector.Close() - // Indexes collector - rootToSlotCollector := etl.NewCollector(s.LogPrefix(), cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger) - defer rootToSlotCollector.Close() - // Lastly finalizations markers collector. - finalizationCollector := etl.NewCollector(s.LogPrefix(), cfg.tmpdir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger) - defer finalizationCollector.Close() - // Start the procedure - logger.Info(fmt.Sprintf("[%s] Reconstructing", s.LogPrefix()), "from", cfg.state.LatestBlockHeader().Slot, "to", destinationSlot) - // Setup slot and block root - cfg.downloader.SetSlotToDownload(currentSlot) - cfg.downloader.SetExpectedRoot(blockRoot) - foundLatestEth1ValidHash := false - if cfg.executionClient == nil { - foundLatestEth1ValidHash = true - } - // Set up onNewBlock callback - cfg.downloader.SetOnNewBlock(func(blk *cltypes.SignedBeaconBlock) (finished bool, err error) { - slot := blk.Block.Slot - blockRoot, err := blk.Block.HashSSZ() - if err != nil { - return false, err - } - key := append(rawdb2.EncodeNumber(slot), blockRoot[:]...) - // Collect beacon blocks - encodedBeaconBlock, err := blk.EncodeSSZ(nil) - if err != nil { - return false, err - } - slotBytes := rawdb2.EncodeNumber(slot) - if err := beaconBlocksCollector.Collect(key, utils.CompressSnappy(encodedBeaconBlock)); err != nil { - return false, err - } - // Collect hashes - if err := rootToSlotCollector.Collect(blockRoot[:], slotBytes); err != nil { - return false, err - } - if err := rootToSlotCollector.Collect(blk.Block.StateRoot[:], slotBytes); err != nil { - return false, err - } - // Mark finalization markers. - if err := finalizationCollector.Collect(slotBytes, blockRoot[:]); err != nil { - return false, err - } - // Collect Execution Payloads - if blk.Version() >= clparams.BellatrixVersion && !foundLatestEth1ValidHash { - payload := blk.Block.Body.ExecutionPayload - if foundLatestEth1ValidHash, err = cfg.executionClient.IsCanonical(payload.BlockHash); err != nil { - return false, err - } - if foundLatestEth1ValidHash { - return slot <= destinationSlot, nil - } - encodedPayload := make([]byte, 0, payload.EncodingSizeSSZ()) - encodedPayload, err = payload.EncodeSSZ(encodedPayload) - if err != nil { - return false, err - } - if err := executionPayloadsCollector.Collect(rawdb2.EncodeNumber(slot), encodedPayload); err != nil { - return false, err - } - } - return slot <= destinationSlot && foundLatestEth1ValidHash, nil - }) - prevProgress := cfg.downloader.Progress() - - logInterval := time.NewTicker(logIntervalTime) - finishCh := make(chan struct{}) - // Start logging thread - go func() { - for { - select { - case <-logInterval.C: - logArgs := []interface{}{} - currProgress := cfg.downloader.Progress() - speed := float64(prevProgress-currProgress) / float64(logIntervalTime/time.Second) - prevProgress = currProgress - peerCount, err := cfg.downloader.Peers() - if err != nil { - return - } - logArgs = append(logArgs, - "progress", currProgress, - "blk/sec", fmt.Sprintf("%.1f", speed), - "peers", peerCount) - if currentSlot > destinationSlot { - logArgs = append(logArgs, "remaining", currProgress-destinationSlot) - } - logger.Info(fmt.Sprintf("[%s] Backwards downloading phase", s.LogPrefix()), logArgs...) - case <-finishCh: - return - case <-ctx.Done(): - - } - } - }() - for !cfg.downloader.Finished() { - cfg.downloader.RequestMore(ctx) - } - close(finishCh) - if err := attestationsCollector.Load(tx, kv.Attestetations, etl.IdentityLoadFunc, etl.TransformArgs{Quit: context.Background().Done()}); err != nil { - return err - } - if err := beaconBlocksCollector.Load(tx, kv.BeaconBlocks, etl.IdentityLoadFunc, etl.TransformArgs{Quit: context.Background().Done()}); err != nil { - return err - } - if err := rootToSlotCollector.Load(tx, kv.RootSlotIndex, etl.IdentityLoadFunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { - return err - } - if err := finalizationCollector.Load(tx, kv.FinalizedBlockRoots, etl.IdentityLoadFunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { - return err - } - executionPayloadInsertionBatch := execution_client2.NewInsertBatch(cfg.executionClient) - // Send in ordered manner EL blocks to Execution Layer - if err := executionPayloadsCollector.Load(tx, kv.BeaconBlocks, func(k, v []byte, table etl.CurrentTableReader, next etl.LoadNextFunc) error { - payload := &cltypes.Eth1Block{} - if err := payload.DecodeSSZ(v, int(clparams.BellatrixVersion)); err != nil { - return err - } - if err := executionPayloadInsertionBatch.WriteExecutionPayload(payload); err != nil { - return err - } - return next(k, nil, nil) - }, etl.TransformArgs{Quit: context.Background().Done()}); err != nil { - return err - } - if err := executionPayloadInsertionBatch.Flush(); err != nil { - return err - } - if err := s.Update(tx, 1); err != nil { - return err - } - - if !useExternalTx { - if err = tx.Commit(); err != nil { - return err - } - } - return nil -} diff --git a/cl/phase1/stages/stages.go b/cl/phase1/stages/stages.go deleted file mode 100644 index 8829a57aca7..00000000000 --- a/cl/phase1/stages/stages.go +++ /dev/null @@ -1,90 +0,0 @@ -package stages - -import ( - "context" - - "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/phase1/execution_client" - "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" - network2 "github.com/ledgerwatch/erigon/cl/phase1/network" - - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/eth/stagedsync" - "github.com/ledgerwatch/erigon/eth/stagedsync/stages" - "github.com/ledgerwatch/log/v3" -) - -// StateStages are all stages necessary for basic unwind and stage computation, it is primarly used to process side forks and memory execution. -func ConsensusStages(ctx context.Context, historyReconstruction StageHistoryReconstructionCfg, beaconState StageBeaconStateCfg, forkchoice StageForkChoiceCfg) []*stagedsync.Stage { - return []*stagedsync.Stage{ - { - ID: stages.BeaconHistoryReconstruction, - Description: "Download beacon blocks backwards.", - Forward: func(firstCycle bool, badBlockUnwind bool, s *stagedsync.StageState, u stagedsync.Unwinder, tx kv.RwTx, logger log.Logger) error { - return SpawnStageHistoryReconstruction(historyReconstruction, s, tx, ctx, logger) - }, - Unwind: func(firstCycle bool, u *stagedsync.UnwindState, s *stagedsync.StageState, tx kv.RwTx, logger log.Logger) error { - return nil - }, - }, - { - ID: stages.BeaconState, - Description: "Execute Consensus Layer transition", - Forward: func(firstCycle bool, badBlockUnwind bool, s *stagedsync.StageState, u stagedsync.Unwinder, tx kv.RwTx, logger log.Logger) error { - return SpawnStageBeaconState(beaconState, tx, ctx) - }, - Unwind: func(firstCycle bool, u *stagedsync.UnwindState, s *stagedsync.StageState, tx kv.RwTx, logger log.Logger) error { - return nil - }, - }, - { - ID: stages.BeaconBlocks, - Description: "Download beacon blocks forward.", - Forward: func(firstCycle bool, badBlockUnwind bool, s *stagedsync.StageState, u stagedsync.Unwinder, tx kv.RwTx, logger log.Logger) error { - return SpawnStageForkChoice(forkchoice, s, tx, ctx) - }, - Unwind: func(firstCycle bool, u *stagedsync.UnwindState, s *stagedsync.StageState, tx kv.RwTx, logger log.Logger) error { - return nil - }, - }, - } -} - -var ConsensusUnwindOrder = stagedsync.UnwindOrder{ - stages.BeaconState, - stages.BeaconBlocks, -} - -var ConsensusPruneOrder = stagedsync.PruneOrder{ - stages.BeaconState, - stages.BeaconBlocks, -} - -func NewConsensusStagedSync(ctx context.Context, - db kv.RwDB, - forwardDownloader *network2.ForwardBeaconDownloader, - backwardDownloader *network2.BackwardBeaconDownloader, - genesisCfg *clparams.GenesisConfig, - beaconCfg *clparams.BeaconChainConfig, - state *state.CachingBeaconState, - tmpdir string, - executionClient *execution_client.ExecutionClient, - beaconDBCfg *rawdb.BeaconDataConfig, - gossipManager *network2.GossipManager, - forkChoice *forkchoice.ForkChoiceStore, - logger log.Logger, -) (*stagedsync.Sync, error) { - return stagedsync.New( - ConsensusStages( - ctx, - StageHistoryReconstruction(db, backwardDownloader, genesisCfg, beaconCfg, beaconDBCfg, state, tmpdir, executionClient), - StageBeaconState(db, beaconCfg, state, executionClient), - StageForkChoice(db, forwardDownloader, genesisCfg, beaconCfg, state, executionClient, gossipManager, forkChoice, nil), - ), - ConsensusUnwindOrder, - ConsensusPruneOrder, - logger, - ), nil -} diff --git a/cl/phase1/stages/stages_beacon_state.go b/cl/phase1/stages/stages_beacon_state.go deleted file mode 100644 index 638273a5c29..00000000000 --- a/cl/phase1/stages/stages_beacon_state.go +++ /dev/null @@ -1,98 +0,0 @@ -package stages - -import ( - "context" - "github.com/ledgerwatch/erigon/cl/transition" - - "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb" - state2 "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/phase1/execution_client" - - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/eth/stagedsync/stages" - "github.com/ledgerwatch/log/v3" -) - -type StageBeaconStateCfg struct { - db kv.RwDB - beaconCfg *clparams.BeaconChainConfig - state *state2.CachingBeaconState - executionClient *execution_client.ExecutionClient - enabled bool -} - -func StageBeaconState(db kv.RwDB, - beaconCfg *clparams.BeaconChainConfig, state *state2.CachingBeaconState, executionClient *execution_client.ExecutionClient) StageBeaconStateCfg { - return StageBeaconStateCfg{ - db: db, - beaconCfg: beaconCfg, - state: state, - executionClient: executionClient, - enabled: false, - } -} - -// SpawnStageBeaconState is used to replay historical states -func SpawnStageBeaconState(cfg StageBeaconStateCfg, tx kv.RwTx, ctx context.Context) error { - if !cfg.enabled { - return nil - } - // This code need to be fixed. - useExternalTx := tx != nil - var err error - if !useExternalTx { - tx, err = cfg.db.BeginRw(ctx) - if err != nil { - return err - } - defer tx.Rollback() - } - - endSlot, err := stages.GetStageProgress(tx, stages.BeaconBlocks) - if err != nil { - return err - } - latestBlockHeader := cfg.state.LatestBlockHeader() - - fromSlot := latestBlockHeader.Slot - for slot := fromSlot + 1; slot <= endSlot; slot++ { - finalizedRoot, err := rawdb.ReadFinalizedBlockRoot(tx, slot) - if err != nil { - return err - } - // Slot had a missing proposal in this case. - if finalizedRoot == (libcommon.Hash{}) { - continue - } - // TODO(Giulio2002): proper versioning - block, eth1Number, eth1Hash, err := rawdb.ReadBeaconBlock(tx, finalizedRoot, slot, clparams.Phase0Version) - if err != nil { - return err - } - - // Query execution engine only if the payload have an hash. - if eth1Hash != (libcommon.Hash{}) { - if block.Block.Body.ExecutionPayload, err = cfg.executionClient.ReadExecutionPayload(eth1Number, eth1Hash); err != nil { - return err - } - } - // validate fully only in current epoch. - fullValidate := utils.GetCurrentEpoch(cfg.state.GenesisTime(), cfg.beaconCfg.SecondsPerSlot, cfg.beaconCfg.SlotsPerEpoch) == state2.Epoch(cfg.state.BeaconState) - if err := transition.TransitionState(cfg.state, block, fullValidate); err != nil { - log.Info("Found epoch, so stopping now...", "count", slot-(fromSlot+1), "slot", slot) - return err - } - log.Info("Applied state transition", "from", slot, "to", slot+1) - } - - log.Info("[CachingBeaconState] Finished transitioning state", "from", fromSlot, "to", endSlot) - if !useExternalTx { - if err = tx.Commit(); err != nil { - return err - } - } - return nil -} diff --git a/cl/pool/operation_pool.go b/cl/pool/operation_pool.go new file mode 100644 index 00000000000..44962135584 --- /dev/null +++ b/cl/pool/operation_pool.go @@ -0,0 +1,35 @@ +package pool + +import ( + "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" +) + +var operationsMultiplier = 20 // Cap the amount of cached element to max_operations_per_block * operations_multiplier + +type OperationPool[K comparable, T any] struct { + pool *lru.Cache[K, T] // Map the Signature to the underlying object +} + +func NewOperationPool[K comparable, T any](maxOperationsPerBlock int, matricName string) *OperationPool[K, T] { + pool, err := lru.New[K, T](matricName, maxOperationsPerBlock*operationsMultiplier) + if err != nil { + panic(err) + } + return &OperationPool[K, T]{pool: pool} +} + +func (o *OperationPool[K, T]) Insert(k K, operation T) { + o.pool.Add(k, operation) +} + +func (o *OperationPool[K, T]) DeleteIfExist(k K) (removed bool) { + return o.pool.Remove(k) +} + +func (o *OperationPool[K, T]) Has(k K) (hash bool) { + return o.pool.Contains(k) +} + +func (o *OperationPool[K, T]) Raw() []T { + return o.pool.Values() +} diff --git a/cl/pool/operations_pool.go b/cl/pool/operations_pool.go new file mode 100644 index 00000000000..949e6fda237 --- /dev/null +++ b/cl/pool/operations_pool.go @@ -0,0 +1,62 @@ +package pool + +import ( + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/crypto/blake2b" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" +) + +// DoubleSignatureKey uses blake2b algorithm to merge two signatures together. blake2 is faster than sha3. +func doubleSignatureKey(one, two libcommon.Bytes96) (out libcommon.Bytes96) { + res := blake2b.Sum256(append(one[:], two[:]...)) + copy(out[:], res[:]) + return +} + +func ComputeKeyForProposerSlashing(slashing *cltypes.ProposerSlashing) libcommon.Bytes96 { + return doubleSignatureKey(slashing.Header1.Signature, slashing.Header2.Signature) +} + +func ComputeKeyForAttesterSlashing(slashing *cltypes.AttesterSlashing) libcommon.Bytes96 { + return doubleSignatureKey(slashing.Attestation_1.Signature, slashing.Attestation_2.Signature) +} + +// OperationsPool is the collection of all gossip-collectable operations. +type OperationsPool struct { + AttestationsPool *OperationPool[libcommon.Bytes96, *solid.Attestation] + AttesterSlashingsPool *OperationPool[libcommon.Bytes96, *cltypes.AttesterSlashing] + ProposerSlashingsPool *OperationPool[libcommon.Bytes96, *cltypes.ProposerSlashing] + BLSToExecutionChangesPool *OperationPool[libcommon.Bytes96, *cltypes.SignedBLSToExecutionChange] + VoluntaryExistsPool *OperationPool[uint64, *cltypes.SignedVoluntaryExit] +} + +func NewOperationsPool(beaconCfg *clparams.BeaconChainConfig) OperationsPool { + return OperationsPool{ + AttestationsPool: NewOperationPool[libcommon.Bytes96, *solid.Attestation](int(beaconCfg.MaxAttestations), "attestationsPool"), + AttesterSlashingsPool: NewOperationPool[libcommon.Bytes96, *cltypes.AttesterSlashing](int(beaconCfg.MaxAttestations), "attesterSlashingsPool"), + ProposerSlashingsPool: NewOperationPool[libcommon.Bytes96, *cltypes.ProposerSlashing](int(beaconCfg.MaxAttestations), "proposerSlashingsPool"), + BLSToExecutionChangesPool: NewOperationPool[libcommon.Bytes96, *cltypes.SignedBLSToExecutionChange](int(beaconCfg.MaxBlsToExecutionChanges), "blsExecutionChangesPool"), + VoluntaryExistsPool: NewOperationPool[uint64, *cltypes.SignedVoluntaryExit](int(beaconCfg.MaxBlsToExecutionChanges), "voluntaryExitsPool"), + } +} + +func (o *OperationsPool) NotifyBlock(blk *cltypes.BeaconBlock) { + blk.Body.VoluntaryExits.Range(func(_ int, exit *cltypes.SignedVoluntaryExit, _ int) bool { + o.VoluntaryExistsPool.DeleteIfExist(exit.VoluntaryExit.ValidatorIndex) + return true + }) + blk.Body.AttesterSlashings.Range(func(_ int, att *cltypes.AttesterSlashing, _ int) bool { + o.AttesterSlashingsPool.DeleteIfExist(ComputeKeyForAttesterSlashing(att)) + return true + }) + blk.Body.ProposerSlashings.Range(func(_ int, ps *cltypes.ProposerSlashing, _ int) bool { + o.ProposerSlashingsPool.DeleteIfExist(ComputeKeyForProposerSlashing(ps)) + return true + }) + blk.Body.ExecutionChanges.Range(func(_ int, c *cltypes.SignedBLSToExecutionChange, _ int) bool { + o.BLSToExecutionChangesPool.DeleteIfExist(c.Signature) + return true + }) +} diff --git a/cl/pool/operations_pool_test.go b/cl/pool/operations_pool_test.go new file mode 100644 index 00000000000..865df13df65 --- /dev/null +++ b/cl/pool/operations_pool_test.go @@ -0,0 +1,71 @@ +package pool + +import ( + "testing" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/stretchr/testify/require" +) + +func TestOperationsPool(t *testing.T) { + pools := NewOperationsPool(&clparams.MainnetBeaconConfig) + + // AttestationsPool + pools.AttestationsPool.Insert([96]byte{}, &solid.Attestation{}) + pools.AttestationsPool.Insert([96]byte{1}, &solid.Attestation{}) + require.Equal(t, 2, len(pools.AttestationsPool.Raw())) + require.True(t, pools.AttestationsPool.DeleteIfExist([96]byte{})) + require.Equal(t, 1, len(pools.AttestationsPool.Raw())) + // ProposerSlashingsPool + slashing1 := &cltypes.ProposerSlashing{ + Header1: &cltypes.SignedBeaconBlockHeader{ + Signature: [96]byte{1}, + }, + Header2: &cltypes.SignedBeaconBlockHeader{ + Signature: [96]byte{2}, + }, + } + slashing2 := &cltypes.ProposerSlashing{ + Header1: &cltypes.SignedBeaconBlockHeader{ + Signature: [96]byte{3}, + }, + Header2: &cltypes.SignedBeaconBlockHeader{ + Signature: [96]byte{4}, + }, + } + pools.ProposerSlashingsPool.Insert(ComputeKeyForProposerSlashing(slashing1), slashing1) + pools.ProposerSlashingsPool.Insert(ComputeKeyForProposerSlashing(slashing2), slashing2) + require.True(t, pools.ProposerSlashingsPool.DeleteIfExist(ComputeKeyForProposerSlashing(slashing2))) + // AttesterSlashingsPool + attesterSlashing1 := &cltypes.AttesterSlashing{ + Attestation_1: &cltypes.IndexedAttestation{ + Signature: [96]byte{1}, + }, + Attestation_2: &cltypes.IndexedAttestation{ + Signature: [96]byte{2}, + }, + } + attesterSlashing2 := &cltypes.AttesterSlashing{ + Attestation_1: &cltypes.IndexedAttestation{ + Signature: [96]byte{3}, + }, + Attestation_2: &cltypes.IndexedAttestation{ + Signature: [96]byte{4}, + }, + } + pools.AttesterSlashingsPool.Insert(ComputeKeyForAttesterSlashing(attesterSlashing1), attesterSlashing1) + pools.AttesterSlashingsPool.Insert(ComputeKeyForAttesterSlashing(attesterSlashing2), attesterSlashing2) + require.True(t, pools.AttesterSlashingsPool.DeleteIfExist(ComputeKeyForAttesterSlashing(attesterSlashing2))) + require.Equal(t, 1, len(pools.AttesterSlashingsPool.Raw())) + + // BLSToExecutionChangesPool + pools.BLSToExecutionChangesPool.Insert([96]byte{}, &cltypes.SignedBLSToExecutionChange{}) + pools.BLSToExecutionChangesPool.Insert([96]byte{1}, &cltypes.SignedBLSToExecutionChange{}) + require.Equal(t, 2, len(pools.BLSToExecutionChangesPool.Raw())) + require.True(t, pools.BLSToExecutionChangesPool.DeleteIfExist([96]byte{})) + require.Equal(t, 1, len(pools.BLSToExecutionChangesPool.Raw())) + + require.Equal(t, 1, len(pools.ProposerSlashingsPool.Raw())) +} diff --git a/cl/readme.md b/cl/readme.md new file mode 100644 index 00000000000..e62ff8ef5c7 --- /dev/null +++ b/cl/readme.md @@ -0,0 +1,3 @@ +# cl + +all code under this directory and subdirectories falls under apache 2.0 license, seen in ./LICENSE diff --git a/cl/rpc/rpc.go b/cl/rpc/rpc.go index a2ff32f75e0..0ada88e8115 100644 --- a/cl/rpc/rpc.go +++ b/cl/rpc/rpc.go @@ -8,6 +8,9 @@ import ( "io" "time" + "github.com/ledgerwatch/erigon/cl/sentinel/communication" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" + "github.com/c2h5oh/datasize" "github.com/golang/snappy" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -21,9 +24,6 @@ import ( "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/fork" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" - "github.com/ledgerwatch/erigon/common" ) const maxMessageLength = 18 * datasize.MB @@ -55,7 +55,7 @@ func (b *BeaconRpcP2P) sendBlocksRequest(ctx context.Context, topic string, reqD // Prepare output slice. responsePacket := []*cltypes.SignedBeaconBlock{} - ctx, cn := context.WithTimeout(ctx, time.Second*time.Duration(5+10*count)) + ctx, cn := context.WithTimeout(ctx, time.Second*time.Duration(16+30*count)) defer cn() message, err := b.sentinel.SendRequest(ctx, &sentinel.RequestData{ Data: reqData, @@ -67,7 +67,7 @@ func (b *BeaconRpcP2P) sendBlocksRequest(ctx context.Context, topic string, reqD if message.Error { rd := snappy.NewReader(bytes.NewBuffer(message.Data)) errBytes, _ := io.ReadAll(rd) - log.Debug("received range req error", "err", string(errBytes)) + log.Trace("received range req error", "err", string(errBytes), "raw", string(message.Data)) return nil, message.Peer.Pid, nil } @@ -84,7 +84,7 @@ func (b *BeaconRpcP2P) sendBlocksRequest(ctx context.Context, topic string, reqD // Read varint for length of message. encodedLn, _, err := ssz_snappy.ReadUvarint(r) if err != nil { - return nil, message.Peer.Pid, fmt.Errorf("unable to read varint from message prefix: %v", err) + return nil, message.Peer.Pid, fmt.Errorf("unable to read varint from message prefix: %w", err) } // Sanity check for message size. if encodedLn > uint64(maxMessageLength) { @@ -112,7 +112,7 @@ func (b *BeaconRpcP2P) sendBlocksRequest(ctx context.Context, topic string, reqD if err != nil { return nil, message.Peer.Pid, err } - responseChunk := &cltypes.SignedBeaconBlock{} + responseChunk := cltypes.NewSignedBeaconBlock(b.beaconConfig) if err = responseChunk.DecodeSSZ(raw, int(version)); err != nil { return nil, message.Peer.Pid, err @@ -137,13 +137,13 @@ func (b *BeaconRpcP2P) SendBeaconBlocksByRangeReq(ctx context.Context, start, co return nil, "", err } - data := common.CopyBytes(buffer.Bytes()) + data := libcommon.CopyBytes(buffer.Bytes()) return b.sendBlocksRequest(ctx, communication.BeaconBlocksByRangeProtocolV2, data, count) } // SendBeaconBlocksByRootReq retrieves blocks by root from beacon chain. func (b *BeaconRpcP2P) SendBeaconBlocksByRootReq(ctx context.Context, roots [][32]byte) ([]*cltypes.SignedBeaconBlock, string, error) { - var req solid.HashListSSZ = solid.NewHashList(69696969) + var req solid.HashListSSZ = solid.NewHashList(69696969) // The number is used for hashing, it is innofensive here. for _, root := range roots { req.Append(root) } @@ -151,7 +151,7 @@ func (b *BeaconRpcP2P) SendBeaconBlocksByRootReq(ctx context.Context, roots [][3 if err := ssz_snappy.EncodeAndWrite(&buffer, req); err != nil { return nil, "", err } - data := common.CopyBytes(buffer.Bytes()) + data := libcommon.CopyBytes(buffer.Bytes()) return b.sendBlocksRequest(ctx, communication.BeaconBlocksByRootProtocolV2, data, uint64(len(roots))) } diff --git a/cmd/sentinel/sentinel/communication/ssz_snappy/encoding.go b/cl/sentinel/communication/ssz_snappy/encoding.go similarity index 97% rename from cmd/sentinel/sentinel/communication/ssz_snappy/encoding.go rename to cl/sentinel/communication/ssz_snappy/encoding.go index 65c38652e42..6f460b3599d 100644 --- a/cmd/sentinel/sentinel/communication/ssz_snappy/encoding.go +++ b/cl/sentinel/communication/ssz_snappy/encoding.go @@ -36,11 +36,18 @@ var writerPool = sync.Pool{ } func EncodeAndWrite(w io.Writer, val ssz.Marshaler, prefix ...byte) error { + enc := make([]byte, 0, val.EncodingSizeSSZ()) + var err error + enc, err = val.EncodeSSZ(enc) + if err != nil { + return err + } // create prefix for length of packet lengthBuf := make([]byte, 10) - vin := binary.PutUvarint(lengthBuf, uint64(val.EncodingSizeSSZ())) + vin := binary.PutUvarint(lengthBuf, uint64(len(enc))) + // Create writer size - wr := bufio.NewWriterSize(w, 10+val.EncodingSizeSSZ()) + wr := bufio.NewWriterSize(w, 10+len(enc)) defer wr.Flush() // Write length of packet wr.Write(prefix) @@ -53,12 +60,6 @@ func EncodeAndWrite(w io.Writer, val ssz.Marshaler, prefix ...byte) error { writerPool.Put(sw) }() // Marshall and snap it - enc := make([]byte, 0, val.EncodingSizeSSZ()) - var err error - enc, err = val.EncodeSSZ(enc) - if err != nil { - return err - } _, err = sw.Write(enc) return err } diff --git a/cmd/sentinel/sentinel/communication/topics.go b/cl/sentinel/communication/topics.go similarity index 100% rename from cmd/sentinel/sentinel/communication/topics.go rename to cl/sentinel/communication/topics.go diff --git a/cmd/sentinel/sentinel/config.go b/cl/sentinel/config.go similarity index 98% rename from cmd/sentinel/sentinel/config.go rename to cl/sentinel/config.go index 96af15c853b..c27e8b4e220 100644 --- a/cmd/sentinel/sentinel/config.go +++ b/cl/sentinel/config.go @@ -21,8 +21,8 @@ import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/log/v3" "github.com/libp2p/go-libp2p" + mplex "github.com/libp2p/go-libp2p-mplex" "github.com/libp2p/go-libp2p/core/crypto" - "github.com/libp2p/go-libp2p/p2p/muxer/mplex" "github.com/libp2p/go-libp2p/p2p/security/noise" "github.com/libp2p/go-libp2p/p2p/transport/tcp" "github.com/multiformats/go-multiaddr" diff --git a/cmd/sentinel/sentinel/config_test.go b/cl/sentinel/config_test.go similarity index 100% rename from cmd/sentinel/sentinel/config_test.go rename to cl/sentinel/config_test.go diff --git a/cmd/sentinel/sentinel/discovery.go b/cl/sentinel/discovery.go similarity index 73% rename from cmd/sentinel/sentinel/discovery.go rename to cl/sentinel/discovery.go index 36fe1a6fc61..de596304643 100644 --- a/cmd/sentinel/sentinel/discovery.go +++ b/cl/sentinel/discovery.go @@ -1,16 +1,3 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - package sentinel import ( @@ -20,40 +7,37 @@ import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/fork" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" "github.com/ledgerwatch/erigon/p2p/enode" "github.com/ledgerwatch/erigon/p2p/enr" "github.com/ledgerwatch/log/v3" "github.com/libp2p/go-libp2p/core/network" "github.com/libp2p/go-libp2p/core/peer" "github.com/multiformats/go-multiaddr" - "github.com/prysmaticlabs/go-bitfield" ) -func (s *Sentinel) ConnectWithPeer(ctx context.Context, info peer.AddrInfo, skipHandshake bool) (err error) { +// ConnectWithPeer is used to attempt to connect and add the peer to our pool +// it errors when if fail to connect with the peer, for instance, if it fails the handshake +// if it does not return an error, the peer is attempted to be added to the pool +func (s *Sentinel) ConnectWithPeer(ctx context.Context, info peer.AddrInfo) (err error) { if info.ID == s.host.ID() { return nil } - s.peers.WithPeer(info.ID, func(peer *peers.Peer) { - if peer.IsBad() { - err = fmt.Errorf("refused to connect to bad peer") - } - }) - if err != nil { - return err + if s.peers.BanStatus(info.ID) { + return fmt.Errorf("refused to connect to bad peer") } ctxWithTimeout, cancel := context.WithTimeout(ctx, clparams.MaxDialTimeout) defer cancel() - if err := s.host.Connect(ctxWithTimeout, info); err != nil { - s.peers.WithPeer(info.ID, func(peer *peers.Peer) { - peer.Disconnect(err.Error()) - }) + err = s.host.Connect(ctxWithTimeout, info) + if err != nil { return err } return nil } +// connectWithAllPeers is a helper function used to connect with a list of addrs. +// it only returns an error on fail to parse multiaddrs +// will print connect with peer errors to trace debug level func (s *Sentinel) connectWithAllPeers(multiAddrs []multiaddr.Multiaddr) error { addrInfos, err := peer.AddrInfosFromP2pAddrs(multiAddrs...) if err != nil { @@ -61,7 +45,7 @@ func (s *Sentinel) connectWithAllPeers(multiAddrs []multiaddr.Multiaddr) error { } for _, peerInfo := range addrInfos { go func(peerInfo peer.AddrInfo) { - if err := s.ConnectWithPeer(s.ctx, peerInfo, true); err != nil { + if err := s.ConnectWithPeer(s.ctx, peerInfo); err != nil { log.Trace("[Sentinel] Could not connect with peer", "err", err) } }(peerInfo) @@ -87,7 +71,6 @@ func (s *Sentinel) listenForPeers() { multiAddresses := convertToMultiAddr(enodes) if err := s.connectWithAllPeers(multiAddresses); err != nil { log.Warn("Could not connect to static peers", "reason", err) - } iterator := s.listener.RandomNodes() @@ -124,7 +107,7 @@ func (s *Sentinel) listenForPeers() { } go func(peerInfo *peer.AddrInfo) { - if err := s.ConnectWithPeer(s.ctx, *peerInfo, false); err != nil { + if err := s.ConnectWithPeer(s.ctx, *peerInfo); err != nil { log.Trace("[Sentinel] Could not connect with peer", "err", err) } }(peerInfo) @@ -161,12 +144,19 @@ func (s *Sentinel) setupENR( func (s *Sentinel) onConnection(net network.Network, conn network.Conn) { go func() { peerId := conn.RemotePeer() - invalid := !s.handshaker.ValidatePeer(peerId) - if invalid { + valid, err := s.handshaker.ValidatePeer(peerId) + if err != nil { + log.Trace("[sentinel] failed to validate peer:", "err", err) + } + if !valid { log.Trace("Handshake was unsuccessful") - s.peers.WithPeer(peerId, func(peer *peers.Peer) { - peer.Disconnect("invalid peer", "bad handshake") - }) + // on handshake fail, we disconnect with said peer, and remove them from our pool + s.host.Peerstore().RemovePeer(peerId) + s.host.Network().ClosePeer(peerId) + s.peers.RemovePeer(peerId) + } else { + // we were able to succesfully connect, so add this peer to our pool + s.peers.AddPeer(peerId) } }() } diff --git a/cmd/sentinel/sentinel/gater.go b/cl/sentinel/gater.go similarity index 100% rename from cmd/sentinel/sentinel/gater.go rename to cl/sentinel/gater.go diff --git a/cmd/sentinel/sentinel/pubsub.go b/cl/sentinel/gossip.go similarity index 65% rename from cmd/sentinel/sentinel/pubsub.go rename to cl/sentinel/gossip.go index 005abb913bb..38af103b890 100644 --- a/cmd/sentinel/sentinel/pubsub.go +++ b/cl/sentinel/gossip.go @@ -1,20 +1,19 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ +// Copyright 2022 Erigon-Caplin contributors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package sentinel import ( "context" + "errors" "fmt" "strings" "sync" @@ -23,6 +22,7 @@ import ( "github.com/ledgerwatch/erigon/cl/fork" "github.com/ledgerwatch/log/v3" pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/libp2p/go-libp2p/core/peer" ) var ( @@ -43,6 +43,7 @@ const ( VoluntaryExitTopic TopicName = "voluntary_exit" ProposerSlashingTopic TopicName = "proposer_slashing" AttesterSlashingTopic TopicName = "attester_slashing" + BlsToExecutionChangeTopic TopicName = "bls_to_execution_change" BlobSidecarTopic TopicName = "blob_sidecar_%d" // This topic needs an index ) @@ -55,23 +56,32 @@ var BeaconBlockSsz = GossipTopic{ Name: BeaconBlockTopic, CodecStr: SSZSnappyCodec, } + var BeaconAggregateAndProofSsz = GossipTopic{ Name: BeaconAggregateAndProofTopic, CodecStr: SSZSnappyCodec, } + var VoluntaryExitSsz = GossipTopic{ Name: VoluntaryExitTopic, CodecStr: SSZSnappyCodec, } + var ProposerSlashingSsz = GossipTopic{ Name: ProposerSlashingTopic, CodecStr: SSZSnappyCodec, } + var AttesterSlashingSsz = GossipTopic{ Name: AttesterSlashingTopic, CodecStr: SSZSnappyCodec, } +var BlsToExecutionChangeSsz = GossipTopic{ + Name: BlsToExecutionChangeTopic, + CodecStr: SSZSnappyCodec, +} + type GossipManager struct { ch chan *pubsub.Message subscriptions map[string]*GossipSubscription @@ -171,21 +181,21 @@ func (s *Sentinel) topicScoreParams(topic string) *pubsub.TopicScoreParams { case strings.Contains(topic, string(BeaconBlockTopic)): return s.defaultBlockTopicParams() /*case strings.Contains(topic, GossipAggregateAndProofMessage): - return defaultAggregateTopicParams(activeValidators), nil + return defaultAggregateTopicParams(activeValidators), nil case strings.Contains(topic, GossipAttestationMessage): - return defaultAggregateSubnetTopicParams(activeValidators), nil + return defaultAggregateSubnetTopicParams(activeValidators), nil case strings.Contains(topic, GossipSyncCommitteeMessage): - return defaultSyncSubnetTopicParams(activeValidators), nil + return defaultSyncSubnetTopicParams(activeValidators), nil case strings.Contains(topic, GossipContributionAndProofMessage): - return defaultSyncContributionTopicParams(), nil + return defaultSyncContributionTopicParams(), nil case strings.Contains(topic, GossipExitMessage): - return defaultVoluntaryExitTopicParams(), nil + return defaultVoluntaryExitTopicParams(), nil case strings.Contains(topic, GossipProposerSlashingMessage): - return defaultProposerSlashingTopicParams(), nil + return defaultProposerSlashingTopicParams(), nil case strings.Contains(topic, GossipAttesterSlashingMessage): - return defaultAttesterSlashingTopicParams(), nil + return defaultAttesterSlashingTopicParams(), nil case strings.Contains(topic, GossipBlsToExecutionChangeMessage): - return defaultBlsToExecutionChangeTopicParams(), nil*/ + return defaultBlsToExecutionChangeTopicParams(), nil*/ default: return nil } @@ -224,3 +234,89 @@ func (g *GossipManager) Close() { } } } + +// GossipSubscription abstracts a gossip subscription to write decoded structs. +type GossipSubscription struct { + gossip_topic GossipTopic + host peer.ID + ch chan *pubsub.Message + ctx context.Context + + topic *pubsub.Topic + sub *pubsub.Subscription + + cf context.CancelFunc + rf pubsub.RelayCancelFunc + + setup sync.Once + stopCh chan struct{} +} + +func (sub *GossipSubscription) Listen() (err error) { + sub.setup.Do(func() { + sub.stopCh = make(chan struct{}, 3) + sub.sub, err = sub.topic.Subscribe() + if err != nil { + err = fmt.Errorf("failed to begin topic %s subscription, err=%w", sub.topic.String(), err) + return + } + var sctx context.Context + sctx, sub.cf = context.WithCancel(sub.ctx) + go sub.run(sctx, sub.sub, sub.sub.Topic()) + }) + return nil +} + +// calls the cancel func for the subscriber and closes the topic and sub +func (s *GossipSubscription) Close() { + s.stopCh <- struct{}{} + if s.cf != nil { + s.cf() + } + if s.rf != nil { + s.rf() + } + if s.sub != nil { + s.sub.Cancel() + s.sub = nil + } + if s.topic != nil { + s.topic.Close() + s.topic = nil + } +} + +// this is a helper to begin running the gossip subscription. +// function should not be used outside of the constructor for gossip subscription +func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription, topic string) { + defer func() { + if r := recover(); r != nil { + log.Error("[Sentinel Gossip] Message Handler Crashed", "err", r) + } + }() + for { + select { + case <-ctx.Done(): + return + case <-s.stopCh: + return + default: + msg, err := sub.Next(ctx) + if err != nil { + if errors.Is(err, context.Canceled) { + return + } + log.Warn("[Sentinel] fail to decode gossip packet", "err", err, "topic", topic) + return + } + if msg.GetFrom() == s.host { + continue + } + s.ch <- msg + } + } +} + +func (g *GossipSubscription) Publish(data []byte) error { + return g.topic.Publish(g.ctx, data) +} diff --git a/cmd/sentinel/sentinel/handlers/blocks.go b/cl/sentinel/handlers/blocks.go similarity index 80% rename from cmd/sentinel/sentinel/handlers/blocks.go rename to cl/sentinel/handlers/blocks.go index fd2b19b0e61..21f4aca2a33 100644 --- a/cmd/sentinel/sentinel/handlers/blocks.go +++ b/cl/sentinel/handlers/blocks.go @@ -14,11 +14,16 @@ package handlers import ( - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" "github.com/ledgerwatch/log/v3" "github.com/libp2p/go-libp2p/core/network" ) +// func (c *ConsensusHandlers) blocksByRangeHandlerPROTODONOTTOUCH69(stream network.Stream) error { +// log.Trace("Got block by range handler call") +// return ssz_snappy.EncodeAndWrite(stream, &emptyString{}, ResourceUnavaiablePrefix) +// } + func (c *ConsensusHandlers) blocksByRangeHandler(stream network.Stream) error { log.Trace("Got block by range handler call") return ssz_snappy.EncodeAndWrite(stream, &emptyString{}, ResourceUnavaiablePrefix) diff --git a/cmd/sentinel/sentinel/handlers/handlers.go b/cl/sentinel/handlers/handlers.go similarity index 53% rename from cmd/sentinel/sentinel/handlers/handlers.go rename to cl/sentinel/handlers/handlers.go index 00b868be508..051b6d4fdfb 100644 --- a/cmd/sentinel/sentinel/handlers/handlers.go +++ b/cl/sentinel/handlers/handlers.go @@ -15,46 +15,72 @@ package handlers import ( "context" + "errors" "strings" + "sync" + "time" + + "github.com/ledgerwatch/erigon/cl/sentinel/communication" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" + "github.com/ledgerwatch/erigon/cl/utils" + "golang.org/x/time/rate" - "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" + "github.com/ledgerwatch/erigon/cl/persistence" "github.com/ledgerwatch/log/v3" "github.com/libp2p/go-libp2p/core/host" "github.com/libp2p/go-libp2p/core/network" "github.com/libp2p/go-libp2p/core/protocol" ) +type RateLimits struct { + pingLimit int + goodbyeLimit int + metadataV1Limit int + metadataV2Limit int + statusLimit int +} + +const punishmentPeriod = time.Minute + +var defaultRateLimits = RateLimits{ + pingLimit: 5000, + goodbyeLimit: 5000, + metadataV1Limit: 5000, + metadataV2Limit: 5000, + statusLimit: 5000, +} + type ConsensusHandlers struct { - handlers map[protocol.ID]network.StreamHandler - host host.Host - peers *peers.Manager - metadata *cltypes.Metadata - beaconConfig *clparams.BeaconChainConfig - genesisConfig *clparams.GenesisConfig - ctx context.Context - - db kv.RoDB // Read stuff from database to answer + handlers map[protocol.ID]network.StreamHandler + host host.Host + metadata *cltypes.Metadata + beaconConfig *clparams.BeaconChainConfig + genesisConfig *clparams.GenesisConfig + ctx context.Context + beaconDB persistence.RawBeaconBlockChain + peerRateLimits sync.Map + punishmentEndTimes sync.Map } const ( SuccessfulResponsePrefix = 0x00 + RateLimitedPrefix = 0x02 ResourceUnavaiablePrefix = 0x03 ) -func NewConsensusHandlers(ctx context.Context, db kv.RoDB, host host.Host, - peers *peers.Manager, beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, metadata *cltypes.Metadata) *ConsensusHandlers { +func NewConsensusHandlers(ctx context.Context, db persistence.RawBeaconBlockChain, host host.Host, + peers *peers.Pool, beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, metadata *cltypes.Metadata) *ConsensusHandlers { c := &ConsensusHandlers{ - peers: peers, - host: host, - metadata: metadata, - db: db, - genesisConfig: genesisConfig, - beaconConfig: beaconConfig, - ctx: ctx, + host: host, + metadata: metadata, + beaconDB: db, + genesisConfig: genesisConfig, + beaconConfig: beaconConfig, + ctx: ctx, + peerRateLimits: sync.Map{}, + punishmentEndTimes: sync.Map{}, } hm := map[string]func(s network.Stream) error{ @@ -74,6 +100,29 @@ func NewConsensusHandlers(ctx context.Context, db kv.RoDB, host host.Host, return c } +func (c *ConsensusHandlers) checkRateLimit(peerId string, method string, limit int) error { + keyHash := utils.Sha256([]byte(peerId), []byte(method)) + + if punishmentEndTime, ok := c.punishmentEndTimes.Load(keyHash); ok { + if time.Now().Before(punishmentEndTime.(time.Time)) { + return errors.New("rate limit exceeded, punishment period in effect") + } else { + c.punishmentEndTimes.Delete(keyHash) + } + } + + value, _ := c.peerRateLimits.LoadOrStore(keyHash, rate.NewLimiter(rate.Every(time.Minute), limit)) + limiter := value.(*rate.Limiter) + + if !limiter.Allow() { + c.punishmentEndTimes.Store(keyHash, time.Now().Add(punishmentPeriod)) + c.peerRateLimits.Delete(keyHash) + return errors.New("rate limit exceeded") + } + + return nil +} + func (c *ConsensusHandlers) Start() { for id, handler := range c.handlers { c.host.SetStreamHandler(id, handler) @@ -103,7 +152,7 @@ func (c *ConsensusHandlers) wrapStreamHandler(name string, fn func(s network.Str if err != nil { l["err"] = err if !(strings.Contains(name, "goodbye") && (strings.Contains(err.Error(), "session shut down") || strings.Contains(err.Error(), "stream reset"))) { - log.Warn("[pubsubhandler] close stream", l) + log.Trace("[pubsubhandler] close stream", l) } } } diff --git a/cmd/sentinel/sentinel/handlers/heartbeats.go b/cl/sentinel/handlers/heartbeats.go similarity index 61% rename from cmd/sentinel/sentinel/handlers/heartbeats.go rename to cl/sentinel/handlers/heartbeats.go index f42b345c0c9..4dc04556916 100644 --- a/cmd/sentinel/sentinel/handlers/heartbeats.go +++ b/cl/sentinel/handlers/heartbeats.go @@ -16,7 +16,7 @@ package handlers import ( "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" "github.com/libp2p/go-libp2p/core/network" ) @@ -24,18 +24,36 @@ import ( // Since packets are just structs, they can be resent with no issue func (c *ConsensusHandlers) pingHandler(s network.Stream) error { + peerId := s.Conn().RemotePeer().String() + if err := c.checkRateLimit(peerId, "ping", defaultRateLimits.pingLimit); err != nil { + ssz_snappy.EncodeAndWrite(s, &emptyString{}, RateLimitedPrefix) + defer s.Close() + return err + } return ssz_snappy.EncodeAndWrite(s, &cltypes.Ping{ Id: c.metadata.SeqNumber, }, SuccessfulResponsePrefix) } func (c *ConsensusHandlers) goodbyeHandler(s network.Stream) error { + peerId := s.Conn().RemotePeer().String() + if err := c.checkRateLimit(peerId, "goodbye", defaultRateLimits.goodbyeLimit); err != nil { + ssz_snappy.EncodeAndWrite(s, &emptyString{}, RateLimitedPrefix) + defer s.Close() + return err + } return ssz_snappy.EncodeAndWrite(s, &cltypes.Ping{ Id: 1, }, SuccessfulResponsePrefix) } func (c *ConsensusHandlers) metadataV1Handler(s network.Stream) error { + peerId := s.Conn().RemotePeer().String() + if err := c.checkRateLimit(peerId, "metadataV1", defaultRateLimits.metadataV1Limit); err != nil { + ssz_snappy.EncodeAndWrite(s, &emptyString{}, RateLimitedPrefix) + defer s.Close() + return err + } return ssz_snappy.EncodeAndWrite(s, &cltypes.Metadata{ SeqNumber: c.metadata.SeqNumber, Attnets: c.metadata.Attnets, @@ -43,11 +61,23 @@ func (c *ConsensusHandlers) metadataV1Handler(s network.Stream) error { } func (c *ConsensusHandlers) metadataV2Handler(s network.Stream) error { + peerId := s.Conn().RemotePeer().String() + if err := c.checkRateLimit(peerId, "metadataV2", defaultRateLimits.metadataV2Limit); err != nil { + ssz_snappy.EncodeAndWrite(s, &emptyString{}, RateLimitedPrefix) + defer s.Close() + return err + } return ssz_snappy.EncodeAndWrite(s, c.metadata, SuccessfulResponsePrefix) } // TODO: Actually respond with proper status func (c *ConsensusHandlers) statusHandler(s network.Stream) error { + peerId := s.Conn().RemotePeer().String() + if err := c.checkRateLimit(peerId, "status", defaultRateLimits.statusLimit); err != nil { + ssz_snappy.EncodeAndWrite(s, &emptyString{}, RateLimitedPrefix) + defer s.Close() + return err + } defer s.Close() status := &cltypes.Status{} if err := ssz_snappy.DecodeAndReadNoForkDigest(s, status, clparams.Phase0Version); err != nil { diff --git a/cmd/sentinel/sentinel/handshake/handshake.go b/cl/sentinel/handshake/handshake.go similarity index 56% rename from cmd/sentinel/sentinel/handshake/handshake.go rename to cl/sentinel/handshake/handshake.go index 41a8392d1e9..f5b6baadf07 100644 --- a/cmd/sentinel/sentinel/handshake/handshake.go +++ b/cl/sentinel/handshake/handshake.go @@ -3,17 +3,19 @@ package handshake import ( "bytes" "context" + "fmt" + "io" + "net/http" "sync" + communication2 "github.com/ledgerwatch/erigon/cl/sentinel/communication" + "github.com/ledgerwatch/erigon/cl/sentinel/communication/ssz_snappy" + "github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/fork" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication/ssz_snappy" - "github.com/ledgerwatch/erigon/common" - "github.com/libp2p/go-libp2p/core/host" "github.com/libp2p/go-libp2p/core/peer" - "go.uber.org/zap/buffer" ) // HandShaker is the data type which will handle handshakes and determine if @@ -23,17 +25,17 @@ type HandShaker struct { // Status object to send over. status *cltypes.Status // Contains status object for handshakes set bool - host host.Host + handler http.Handler genesisConfig *clparams.GenesisConfig beaconConfig *clparams.BeaconChainConfig mu sync.Mutex } -func New(ctx context.Context, genesisConfig *clparams.GenesisConfig, beaconConfig *clparams.BeaconChainConfig, host host.Host) *HandShaker { +func New(ctx context.Context, genesisConfig *clparams.GenesisConfig, beaconConfig *clparams.BeaconChainConfig, handler http.Handler) *HandShaker { return &HandShaker{ ctx: ctx, - host: host, + handler: handler, genesisConfig: genesisConfig, beaconConfig: beaconConfig, status: &cltypes.Status{}, @@ -62,32 +64,41 @@ func (h *HandShaker) IsSet() bool { return h.set } -func (h *HandShaker) ValidatePeer(id peer.ID) bool { +func (h *HandShaker) ValidatePeer(id peer.ID) (bool, error) { // Unprotected if it is not set if !h.IsSet() { - return true + return true, nil } status := h.Status() // Encode our status - var buffer buffer.Buffer - if err := ssz_snappy.EncodeAndWrite(&buffer, status); err != nil { - return false + buf := new(bytes.Buffer) + if err := ssz_snappy.EncodeAndWrite(buf, status); err != nil { + return false, err } - - data := common.CopyBytes(buffer.Bytes()) - response, errResponse, err := communication.SendRequestRawToPeer(h.ctx, h.host, data, communication.StatusProtocolV1, id) - if err != nil || errResponse > 0 { - return false + req, err := http.NewRequest("GET", "http://service.internal/", buf) + if err != nil { + return false, err + } + req.Header.Set("REQRESP-PEER-ID", id.String()) + req.Header.Set("REQRESP-TOPIC", communication2.StatusProtocolV1) + resp, err := httpreqresp.Do(h.handler, req) + if err != nil { + return false, err + } + defer resp.Body.Close() + if resp.Header.Get("REQRESP-RESPONSE-CODE") != "0" { + a, _ := io.ReadAll(resp.Body) + //TODO: proper errors + return false, fmt.Errorf("handshake error: %s", string(a)) } responseStatus := &cltypes.Status{} - if err := ssz_snappy.DecodeAndReadNoForkDigest(bytes.NewReader(response), responseStatus, clparams.Phase0Version); err != nil { - return false + if err := ssz_snappy.DecodeAndReadNoForkDigest(resp.Body, responseStatus, clparams.Phase0Version); err != nil { + return false, nil } forkDigest, err := fork.ComputeForkDigest(h.beaconConfig, h.genesisConfig) if err != nil { - return false + return false, nil } - - return responseStatus.ForkDigest == forkDigest + return responseStatus.ForkDigest == forkDigest, nil } diff --git a/cl/sentinel/httpreqresp/server.go b/cl/sentinel/httpreqresp/server.go new file mode 100644 index 00000000000..f9daabe1653 --- /dev/null +++ b/cl/sentinel/httpreqresp/server.go @@ -0,0 +1,122 @@ +// package httpreqresp encapsulates eth2 beacon chain resp-resp into http +package httpreqresp + +import ( + "io" + "net/http" + "net/http/httptest" + "strconv" + "time" + + "github.com/libp2p/go-libp2p/core/host" + "github.com/libp2p/go-libp2p/core/peer" + "github.com/libp2p/go-libp2p/core/protocol" +) + +const ( + ResponseCodeHeader = "Reqresp-Response-Code" + PeerIdHeader = "Reqresp-Peer-Id" + TopicHeader = "Reqresp-Topic" +) + +// Do performs an http request against the http handler. +// NOTE: this is actually very similar to the http.RoundTripper interface... maybe we should investigate using that. +/* + +the following headers have meaning when passed in to the request: + + REQRESP-PEER-ID - the peer id to target for the request + REQRESP-TOPIC - the topic to request with + REQRESP-EXPECTED-CHUNKS - this is an integer, which will be multiplied by 10 to calculate the amount of seconds the peer has to respond with all the data +*/ +func Do(handler http.Handler, r *http.Request) (*http.Response, error) { + // TODO: there potentially extra alloc here (responses are bufferd) + // is that a big deal? not sure. maybe can reuse these buffers since they are read once (and known when close) if so + ans := make(chan *http.Response) + go func() { + res := httptest.NewRecorder() + handler.ServeHTTP(res, r) + // linter does not know we are passing the resposne through channel. + // nolint: bodyclose + resp := res.Result() + ans <- resp + }() + select { + case res := <-ans: + return res, nil + case <-r.Context().Done(): + return nil, r.Context().Err() + } +} + +// Handles a request +func NewRequestHandler(host host.Host) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + // get the peer parameters + peerIdBase58 := r.Header.Get("REQRESP-PEER-ID") + topic := r.Header.Get("REQRESP-TOPIC") + chunkCount := r.Header.Get("REQRESP-EXPECTED-CHUNKS") + chunks, _ := strconv.Atoi(chunkCount) + // some sanity checking on chunks + if chunks < 1 { + chunks = 1 + } + // idk why this would happen, so lets make sure it doesnt. future-proofing from bad input + if chunks > 512 { + chunks = 512 + } + // read the base58 encoded peer id to know which we are trying to dial + peerId, err := peer.Decode(peerIdBase58) + if err != nil { + http.Error(w, "Invalid Peer Id", http.StatusBadRequest) + return + } + // we can't connect to the peer - so we should disconnect them. send a code 4xx + stream, err := host.NewStream(r.Context(), peerId, protocol.ID(topic)) + if err != nil { + http.Error(w, "Can't Connect to Peer: "+err.Error(), http.StatusBadRequest) + return + } + defer stream.Close() + // this write deadline is not part of the eth p2p spec, but we are implying it. + stream.SetWriteDeadline(time.Now().Add(5 * time.Second)) + if r.Body != nil && r.ContentLength > 0 { + _, err := io.Copy(stream, r.Body) + if err != nil { + http.Error(w, "Processing Stream: "+err.Error(), http.StatusBadRequest) + return + } + } + err = stream.CloseWrite() + if err != nil { + http.Error(w, "Close Write Side: "+err.Error(), http.StatusBadRequest) + return + } + code := make([]byte, 1) + // we have 5 seconds to read the next byte. this is the 5 TTFB_TIMEOUT in the spec + stream.SetReadDeadline(time.Now().Add(5 * time.Second)) + _, err = io.ReadFull(stream, code) + if err != nil { + http.Error(w, "Read Code: "+err.Error(), http.StatusBadRequest) + return + } + // this is not neccesary, but seems like the right thing to do + w.Header().Set("CONTENT-TYPE", "application/octet-stream") + w.Header().Set("CONTENT-ENCODING", "snappy/stream") + // add the response code & headers + w.Header().Set("REQRESP-RESPONSE-CODE", strconv.Itoa(int(code[0]))) + w.Header().Set("REQRESP-PEER-ID", peerIdBase58) + w.Header().Set("REQRESP-TOPIC", topic) + // the deadline is 10 * expected chunk count, which the user can send. otherwise we will only wait 10 seconds + // this is technically incorrect, and more aggressive than the network might like. + stream.SetReadDeadline(time.Now().Add(10 * time.Second * time.Duration(chunks))) + // copy the data now to the stream + // the first write to w will call code 200, so we do not need to + _, err = io.Copy(w, stream) + if err != nil { + http.Error(w, "Reading Stream Response: "+err.Error(), http.StatusBadRequest) + return + } + return + } +} diff --git a/cl/sentinel/libp2p_settings.go b/cl/sentinel/libp2p_settings.go new file mode 100644 index 00000000000..82ce46f5368 --- /dev/null +++ b/cl/sentinel/libp2p_settings.go @@ -0,0 +1,66 @@ +package sentinel + +import ( + "math" + "time" + + pubsub "github.com/libp2p/go-libp2p-pubsub" + "github.com/libp2p/go-libp2p/core/peer" +) + +// determines the decay rate from the provided time period till +// the decayToZero value. Ex: ( 1 -> 0.01) +func (s *Sentinel) scoreDecay(totalDurationDecay time.Duration) float64 { + numOfTimes := totalDurationDecay / s.oneSlotDuration() + return math.Pow(decayToZero, 1/float64(numOfTimes)) +} + +func (s *Sentinel) pubsubOptions() []pubsub.Option { + thresholds := &pubsub.PeerScoreThresholds{ + GossipThreshold: -4000, + PublishThreshold: -8000, + GraylistThreshold: -16000, + AcceptPXThreshold: 100, + OpportunisticGraftThreshold: 5, + } + scoreParams := &pubsub.PeerScoreParams{ + Topics: make(map[string]*pubsub.TopicScoreParams), + TopicScoreCap: 32.72, + AppSpecificScore: func(p peer.ID) float64 { + return 0 + }, + AppSpecificWeight: 1, + IPColocationFactorWeight: -35.11, + IPColocationFactorThreshold: 10, + IPColocationFactorWhitelist: nil, + BehaviourPenaltyWeight: -15.92, + BehaviourPenaltyThreshold: 6, + BehaviourPenaltyDecay: s.scoreDecay(10 * s.oneEpochDuration()), // 10 epochs + DecayInterval: s.oneSlotDuration(), + DecayToZero: decayToZero, + RetainScore: 100 * s.oneEpochDuration(), // Retain for 100 epochs + } + pubsubQueueSize := 600 + psOpts := []pubsub.Option{ + pubsub.WithMessageSignaturePolicy(pubsub.StrictNoSign), + pubsub.WithMessageIdFn(s.msgId), + pubsub.WithNoAuthor(), + pubsub.WithPeerOutboundQueueSize(pubsubQueueSize), + pubsub.WithMaxMessageSize(int(s.cfg.NetworkConfig.GossipMaxSizeBellatrix)), + pubsub.WithValidateQueueSize(pubsubQueueSize), + pubsub.WithPeerScore(scoreParams, thresholds), + pubsub.WithGossipSubParams(pubsubGossipParam()), + } + return psOpts +} + +// creates a custom gossipsub parameter set. +func pubsubGossipParam() pubsub.GossipSubParams { + gParams := pubsub.DefaultGossipSubParams() + gParams.Dlo = gossipSubDlo + gParams.D = gossipSubD + gParams.HeartbeatInterval = gossipSubHeartbeatInterval + gParams.HistoryLength = gossipSubMcacheLen + gParams.HistoryGossip = gossipSubMcacheGossip + return gParams +} diff --git a/cmd/sentinel/sentinel/msg_id.go b/cl/sentinel/msg_id.go similarity index 97% rename from cmd/sentinel/sentinel/msg_id.go rename to cl/sentinel/msg_id.go index bf584681d1f..572b8ea69dc 100644 --- a/cmd/sentinel/sentinel/msg_id.go +++ b/cl/sentinel/msg_id.go @@ -42,7 +42,7 @@ func (s *Sentinel) msgId(pmsg *pubsubpb.Message) string { combinedData = append(combinedData, topicLenBytes...) combinedData = append(combinedData, topic...) combinedData = append(combinedData, pmsg.Data...) - h := utils.Keccak256(combinedData) + h := utils.Sha256(combinedData) return string(h[:20]) } totalLength := len(s.cfg.NetworkConfig.MessageDomainValidSnappy) + @@ -55,6 +55,6 @@ func (s *Sentinel) msgId(pmsg *pubsubpb.Message) string { combinedData = append(combinedData, topicLenBytes...) combinedData = append(combinedData, topic...) combinedData = append(combinedData, decodedData...) - h := utils.Keccak256(combinedData) + h := utils.Sha256(combinedData) return string(h[:20]) } diff --git a/cmd/sentinel/sentinel/msg_id_test.go b/cl/sentinel/msg_id_test.go similarity index 94% rename from cmd/sentinel/sentinel/msg_id_test.go rename to cl/sentinel/msg_id_test.go index d8313aeb8cb..ac7e66ba37f 100644 --- a/cmd/sentinel/sentinel/msg_id_test.go +++ b/cl/sentinel/msg_id_test.go @@ -33,7 +33,7 @@ func TestMsgID(t *testing.T) { combinedObj := append(n.MessageDomainInvalidSnappy[:], topicLenBytes...) combinedObj = append(combinedObj, tpc...) combinedObj = append(combinedObj, pMsg.Data...) - hashedData := utils.Keccak256(combinedObj) + hashedData := utils.Sha256(combinedObj) msgID := string(hashedData[:20]) require.Equal(t, msgID, s.msgId(pMsg), "Got incorrect msg id") @@ -44,7 +44,7 @@ func TestMsgID(t *testing.T) { combinedObj = append(n.MessageDomainValidSnappy[:], topicLenBytes...) combinedObj = append(combinedObj, tpc...) combinedObj = append(combinedObj, validObj[:]...) - hashedData = utils.Keccak256(combinedObj) + hashedData = utils.Sha256(combinedObj) msgID = string(hashedData[:20]) require.Equal(t, msgID, s.msgId(nMsg), "Got incorrect msg id") } diff --git a/cl/sentinel/peers/manager.go b/cl/sentinel/peers/manager.go deleted file mode 100644 index 033c99f074f..00000000000 --- a/cl/sentinel/peers/manager.go +++ /dev/null @@ -1,66 +0,0 @@ -package peers - -import ( - "context" - "sync" - "time" - - "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" - "github.com/libp2p/go-libp2p/core/host" - "github.com/libp2p/go-libp2p/core/peer" -) - -const ( - maxBadPeers = 50000 - maxPeerRecordSize = 1000 - DefaultMaxPeers = 33 - MaxBadResponses = 50 -) - -func newPeer() *Peer { - return &Peer{ - lastTouched: time.Now(), - working: make(chan struct{}), - } -} - -type Manager struct { - host host.Host - peers *lru.Cache[peer.ID, *Peer] - peerTimeout time.Duration - - mu sync.Mutex -} - -func NewManager(ctx context.Context, host host.Host) *Manager { - c, err := lru.NewWithEvict("beacon_peer_manager", 500, func(i peer.ID, p *Peer) { - p.Disconnect("booted for inactivity") - }) - if err != nil { - panic(err) - } - m := &Manager{ - peerTimeout: 8 * time.Hour, - peers: c, - host: host, - } - return m -} - -func (m *Manager) GetPeer(id peer.ID) (peer *Peer) { - m.mu.Lock() - p, ok := m.peers.Get(id) - if !ok { - p = &Peer{ - pid: id, - working: make(chan struct{}, 1), - m: m, - penalties: 0, - banned: false, - } - m.peers.Add(id, p) - } - p.lastTouched = time.Now() - m.mu.Unlock() - return p -} diff --git a/cl/sentinel/peers/peer.go b/cl/sentinel/peers/peer.go deleted file mode 100644 index ad616dd4059..00000000000 --- a/cl/sentinel/peers/peer.go +++ /dev/null @@ -1,149 +0,0 @@ -package peers - -import ( - "strings" - "sync" - "time" - - "github.com/ledgerwatch/log/v3" - "github.com/libp2p/go-libp2p/core/peer" -) - -const USERAGENT_UNKNOWN = "unknown" - -// Record Peer data. -type Peer struct { - penalties int - banned bool - - // request info - lastRequest time.Time - successCount int - useCount int - // gc data - lastTouched time.Time - - mu sync.Mutex - - // peer id - pid peer.ID - - // acts as the mutex for making requests. channel used to avoid use of TryLock - working chan struct{} - // backref to the manager that owns this peer - m *Manager -} - -func (p *Peer) do(fn func(p *Peer)) { - if fn == nil { - return - } - p.mu.Lock() - defer p.mu.Unlock() - fn(p) -} - -func (p *Peer) UserAgent() string { - rawVer, err := p.m.host.Peerstore().Get(p.pid, "AgentVersion") - if err == nil { - if str, ok := rawVer.(string); ok { - return str - } - } - return USERAGENT_UNKNOWN -} - -func (p *Peer) Penalize() { - log.Debug("[Sentinel Peers] peer penalized", "peer-id", p.pid) - p.do(func(p *Peer) { - p.penalties++ - }) -} - -func (p *Peer) Forgive() { - log.Debug("[Sentinel Peers] peer forgiven", "peer-id", p.pid) - p.do(func(p *Peer) { - if p.penalties > 0 { - p.penalties-- - } - }) -} - -func (p *Peer) MarkUsed() { - p.do(func(p *Peer) { - p.useCount++ - p.lastRequest = time.Now() - }) - log.Debug("[Sentinel Peers] peer used", "peer-id", p.pid, "uses", p.useCount) -} - -func (p *Peer) MarkReplied() { - p.do(func(p *Peer) { - p.successCount++ - }) - log.Debug("[Sentinel Peers] peer replied", "peer-id", p.pid, "uses", p.useCount, "success", p.successCount) -} - -func (p *Peer) IsAvailable() (available bool) { - p.mu.Lock() - defer p.mu.Unlock() - if p.banned { - return false - } - if p.penalties > MaxBadResponses { - return false - } - if time.Now().Sub(p.lastRequest) > 0*time.Second { - return true - } - return false -} - -func (p *Peer) IsBad() (bad bool) { - p.mu.Lock() - defer p.mu.Unlock() - if p.banned { - bad = true - return - } - bad = p.penalties > MaxBadResponses - return -} - -var skipReasons = []string{ - "bad handshake", - "context", - "security protocol", - "connect:", - "dial backoff", -} - -func anySetInString(set []string, in string) bool { - for _, v := range skipReasons { - if strings.Contains(in, v) { - return true - } - } - return false -} - -func (p *Peer) Disconnect(reason ...string) { - rzn := strings.Join(reason, " ") - if !anySetInString(skipReasons, rzn) { - log.Debug("[Sentinel Peers] disconnecting from peer", "peer-id", p.pid, "reason", strings.Join(reason, " ")) - } - p.m.host.Peerstore().RemovePeer(p.pid) - p.m.host.Network().ClosePeer(p.pid) - p.do(func(p *Peer) { - p.penalties = 0 - }) -} - -func (p *Peer) Ban(reason ...string) { - log.Debug("[Sentinel Peers] bad peers has been banned", "peer-id", p.pid, "reason", strings.Join(reason, " ")) - p.do(func(p *Peer) { - p.banned = true - }) - p.Disconnect(reason...) - return -} diff --git a/cl/sentinel/peers/peers.go b/cl/sentinel/peers/peers.go new file mode 100644 index 00000000000..443aa660980 --- /dev/null +++ b/cl/sentinel/peers/peers.go @@ -0,0 +1,13 @@ +package peers + +const ( + maxBadPeers = 50000 + maxPeerRecordSize = 1000 + DefaultMaxPeers = 64 + MaxBadResponses = 50 +) + +type PeeredObject[T any] struct { + Peer string + Data T +} diff --git a/cl/sentinel/peers/pool.go b/cl/sentinel/peers/pool.go new file mode 100644 index 00000000000..e5237b6abdd --- /dev/null +++ b/cl/sentinel/peers/pool.go @@ -0,0 +1,141 @@ +package peers + +import ( + "fmt" + "sync" + "sync/atomic" + + "github.com/ledgerwatch/erigon-lib/common/ring" + "github.com/libp2p/go-libp2p/core/peer" +) + +// Item is an item in the pool +type Item struct { + id peer.ID + score atomic.Int64 + uses int +} + +func (i *Item) Id() peer.ID { + return i.id +} + +func (i *Item) String() string { + return i.id.String() +} + +func (i *Item) Score() int { + return int(i.score.Load()) +} + +func (i *Item) Add(n int) int { + return int(i.score.Add(int64(n))) +} + +// PeerPool is a pool of peers +type Pool struct { + + // allowedPeers are the peers that are allowed. + // peers not on this list will be silently discarded + // when returned, and skipped when requesting + peerData map[peer.ID]*Item + + bannedPeers map[peer.ID]struct{} + queue *ring.Buffer[*Item] + + mu sync.Mutex +} + +func NewPool() *Pool { + return &Pool{ + peerData: make(map[peer.ID]*Item), + bannedPeers: map[peer.ID]struct{}{}, + queue: ring.NewBuffer[*Item](0, 1024), + } +} + +func (p *Pool) BanStatus(pid peer.ID) bool { + _, ok := p.bannedPeers[pid] + return ok +} + +func (p *Pool) AddPeer(pid peer.ID) { + p.mu.Lock() + defer p.mu.Unlock() + // if peer banned, return immediately + if _, ok := p.bannedPeers[pid]; ok { + return + } + // if peer already here, return immediately + if _, ok := p.peerData[pid]; ok { + return + } + newItem := &Item{ + id: pid, + } + p.peerData[pid] = newItem + // add it to our queue as a new item + p.queue.PushBack(newItem) +} + +func (p *Pool) SetBanStatus(pid peer.ID, banned bool) { + p.mu.Lock() + defer p.mu.Unlock() + if banned { + p.bannedPeers[pid] = struct{}{} + delete(p.peerData, pid) + } else { + delete(p.bannedPeers, pid) + } +} + +func (p *Pool) RemovePeer(pid peer.ID) { + p.mu.Lock() + defer p.mu.Unlock() + delete(p.peerData, pid) +} + +// returnPeer is an internal function to return per to the pool. assume has lock +func (p *Pool) returnPeer(i *Item) { + // if peer not in our map, return and do not return peer + if _, ok := p.peerData[i.id]; !ok { + return + } + // append peer to the end of our ring buffer + p.queue.PushBack(i) +} + +// nextPeer gets next peer, skipping bad peers. assume has lock +func (p *Pool) nextPeer() (i *Item, ok bool) { + val, ok := p.queue.PopFront() + if !ok { + return nil, false + } + // if peer been banned, get next peer + if _, ok := p.bannedPeers[val.id]; ok { + return p.nextPeer() + } + // if peer not in set, get next peer + if _, ok := p.peerData[val.id]; !ok { + return p.nextPeer() + } + return val, true +} + +// Request a peer from the pool +// caller MUST call the done function when done with peer IFF err != nil +func (p *Pool) Request() (pid *Item, done func(), err error) { + p.mu.Lock() + defer p.mu.Unlock() + //grab a peer from our ringbuffer + val, ok := p.queue.PopFront() + if !ok { + return nil, nil, fmt.Errorf("no peers? ( :( > ") + } + return val, func() { + p.mu.Lock() + defer p.mu.Unlock() + val.uses = val.uses + 1 + p.returnPeer(val) + }, nil +} diff --git a/cl/sentinel/peers/readme.md b/cl/sentinel/peers/readme.md deleted file mode 100644 index 8804be80f7b..00000000000 --- a/cl/sentinel/peers/readme.md +++ /dev/null @@ -1,4 +0,0 @@ -## wip - - -this is work in progress diff --git a/cmd/sentinel/sentinel/sentinel.go b/cl/sentinel/sentinel.go similarity index 70% rename from cmd/sentinel/sentinel/sentinel.go rename to cl/sentinel/sentinel.go index 7e9e9bf118a..839906fb1bb 100644 --- a/cmd/sentinel/sentinel/sentinel.go +++ b/cl/sentinel/sentinel.go @@ -17,15 +17,18 @@ import ( "context" "crypto/ecdsa" "fmt" - "math" "net" + "net/http" "time" - "github.com/ledgerwatch/erigon-lib/kv" + "github.com/go-chi/chi/v5" + "github.com/ledgerwatch/erigon/cl/sentinel/handlers" + "github.com/ledgerwatch/erigon/cl/sentinel/handshake" + "github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" + "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/handlers" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/handshake" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" + "github.com/ledgerwatch/erigon/cl/persistence" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/discover" "github.com/ledgerwatch/erigon/p2p/enode" @@ -59,16 +62,19 @@ const ( ) type Sentinel struct { - started bool - listener *discover.UDPv5 // this is us in the network. - ctx context.Context - host host.Host - cfg *SentinelConfig - peers *peers.Manager + started bool + listener *discover.UDPv5 // this is us in the network. + ctx context.Context + host host.Host + cfg *SentinelConfig + peers *peers.Pool + + httpApi http.Handler + metadataV2 *cltypes.Metadata handshaker *handshake.HandShaker - db kv.RoDB + db persistence.RawBeaconBlockChain discoverConfig discover.Config pubsub *pubsub.PubSub @@ -84,7 +90,7 @@ func (s *Sentinel) createLocalNode( udpPort, tcpPort int, tmpDir string, ) (*enode.LocalNode, error) { - db, err := enode.OpenDB("", tmpDir) + db, err := enode.OpenDB(s.ctx, "", tmpDir) if err != nil { return nil, fmt.Errorf("could not open node's peer database: %w", err) } @@ -162,75 +168,18 @@ func (s *Sentinel) createListener() (*discover.UDPv5, error) { // Start stream handlers handlers.NewConsensusHandlers(s.ctx, s.db, s.host, s.peers, s.cfg.BeaconConfig, s.cfg.GenesisConfig, s.metadataV2).Start() - net, err := discover.ListenV5(s.ctx, conn, localNode, discCfg) + net, err := discover.ListenV5(s.ctx, "any", conn, localNode, discCfg) if err != nil { return nil, err } return net, err } -// creates a custom gossipsub parameter set. -func pubsubGossipParam() pubsub.GossipSubParams { - gParams := pubsub.DefaultGossipSubParams() - gParams.Dlo = gossipSubDlo - gParams.D = gossipSubD - gParams.HeartbeatInterval = gossipSubHeartbeatInterval - gParams.HistoryLength = gossipSubMcacheLen - gParams.HistoryGossip = gossipSubMcacheGossip - return gParams -} - -// determines the decay rate from the provided time period till -// the decayToZero value. Ex: ( 1 -> 0.01) -func (s *Sentinel) scoreDecay(totalDurationDecay time.Duration) float64 { - numOfTimes := totalDurationDecay / s.oneSlotDuration() - return math.Pow(decayToZero, 1/float64(numOfTimes)) -} - -func (s *Sentinel) pubsubOptions() []pubsub.Option { - thresholds := &pubsub.PeerScoreThresholds{ - GossipThreshold: -4000, - PublishThreshold: -8000, - GraylistThreshold: -16000, - AcceptPXThreshold: 100, - OpportunisticGraftThreshold: 5, - } - scoreParams := &pubsub.PeerScoreParams{ - Topics: make(map[string]*pubsub.TopicScoreParams), - TopicScoreCap: 32.72, - AppSpecificScore: func(p peer.ID) float64 { - return 0 - }, - AppSpecificWeight: 1, - IPColocationFactorWeight: -35.11, - IPColocationFactorThreshold: 10, - IPColocationFactorWhitelist: nil, - BehaviourPenaltyWeight: -15.92, - BehaviourPenaltyThreshold: 6, - BehaviourPenaltyDecay: s.scoreDecay(10 * s.oneEpochDuration()), // 10 epochs - DecayInterval: s.oneSlotDuration(), - DecayToZero: decayToZero, - RetainScore: 100 * s.oneEpochDuration(), // Retain for 100 epochs - } - pubsubQueueSize := 600 - psOpts := []pubsub.Option{ - pubsub.WithMessageSignaturePolicy(pubsub.StrictNoSign), - pubsub.WithMessageIdFn(s.msgId), - pubsub.WithNoAuthor(), - pubsub.WithPeerOutboundQueueSize(pubsubQueueSize), - pubsub.WithMaxMessageSize(int(s.cfg.NetworkConfig.GossipMaxSizeBellatrix)), - pubsub.WithValidateQueueSize(pubsubQueueSize), - pubsub.WithPeerScore(scoreParams, thresholds), - pubsub.WithGossipSubParams(pubsubGossipParam()), - } - return psOpts -} - // This is just one of the examples from the libp2p repository. func New( ctx context.Context, cfg *SentinelConfig, - db kv.RoDB, + db persistence.RawBeaconBlockChain, logger log.Logger, ) (*Sentinel, error) { s := &Sentinel{ @@ -263,19 +212,16 @@ func New( if err != nil { return nil, err } - if s.metrics { - - str, err := rcmgrObs.NewStatsTraceReporter() - if err != nil { - return nil, err - } + str, err := rcmgrObs.NewStatsTraceReporter() + if err != nil { + return nil, err + } - rmgr, err := rcmgr.NewResourceManager(rcmgr.NewFixedLimiter(rcmgr.DefaultLimits.AutoScale()), rcmgr.WithTraceReporter(str)) - if err != nil { - return nil, err - } - opts = append(opts, libp2p.ResourceManager(rmgr)) + rmgr, err := rcmgr.NewResourceManager(rcmgr.NewFixedLimiter(rcmgr.DefaultLimits.AutoScale()), rcmgr.WithTraceReporter(str)) + if err != nil { + return nil, err } + opts = append(opts, libp2p.ResourceManager(rmgr)) gater, err := NewGater(cfg) if err != nil { @@ -288,11 +234,16 @@ func New( if err != nil { return nil, err } + s.host = host - s.handshaker = handshake.New(ctx, cfg.GenesisConfig, cfg.BeaconConfig, host) + s.peers = peers.NewPool() - s.host = host - s.peers = peers.NewManager(ctx, s.host) + mux := chi.NewRouter() + // mux := httpreqresp.NewRequestHandler(host) + mux.Get("/", httpreqresp.NewRequestHandler(host)) + s.httpApi = mux + + s.handshaker = handshake.New(ctx, cfg.GenesisConfig, cfg.BeaconConfig, s.httpApi) pubsub.TimeCacheDuration = 550 * gossipSubHeartbeatInterval s.pubsub, err = pubsub.NewGossipSub(s.ctx, s.host, s.pubsubOptions()...) @@ -303,6 +254,10 @@ func New( return s, nil } +func (s *Sentinel) ReqRespHandler() http.Handler { + return s.httpApi +} + func (s *Sentinel) RecvGossip() <-chan *pubsub.Message { return s.subManager.Recv() } @@ -323,6 +278,10 @@ func (s *Sentinel) Start() error { // Configuring handshake s.host.Network().Notify(&network.NotifyBundle{ ConnectedF: s.onConnection, + DisconnectedF: func(n network.Network, c network.Conn) { + peerId := c.RemotePeer() + s.peers.RemovePeer(peerId) + }, }) s.subManager = NewGossipManager(s.ctx) @@ -347,14 +306,20 @@ func (s *Sentinel) HasTooManyPeers() bool { } func (s *Sentinel) GetPeersCount() int { + // sub := s.subManager.GetMatchingSubscription(string(BeaconBlockTopic)) + + // if sub == nil { return len(s.host.Network().Peers()) + // } + + // return len(sub.topic.ListPeers()) } func (s *Sentinel) Host() host.Host { return s.host } -func (s *Sentinel) Peers() *peers.Manager { +func (s *Sentinel) Peers() *peers.Pool { return s.peers } @@ -366,10 +331,6 @@ func (s *Sentinel) Config() *SentinelConfig { return s.cfg } -func (s *Sentinel) DB() kv.RoDB { - return s.db -} - func (s *Sentinel) Status() *cltypes.Status { return s.handshaker.Status() } diff --git a/cmd/sentinel/sentinel/service/notifiers.go b/cl/sentinel/service/notifiers.go similarity index 100% rename from cmd/sentinel/sentinel/service/notifiers.go rename to cl/sentinel/service/notifiers.go diff --git a/cmd/sentinel/sentinel/service/service.go b/cl/sentinel/service/service.go similarity index 57% rename from cmd/sentinel/sentinel/service/service.go rename to cl/sentinel/service/service.go index 1550730cc8f..1c72d1fe4c6 100644 --- a/cmd/sentinel/sentinel/service/service.go +++ b/cl/sentinel/service/service.go @@ -1,21 +1,25 @@ package service import ( + "bytes" "context" "errors" "fmt" + "io" + "net/http" "strconv" "strings" "sync" "time" + "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/ledgerwatch/erigon/cl/sentinel" + "github.com/ledgerwatch/erigon/cl/sentinel/httpreqresp" + "github.com/ledgerwatch/erigon-lib/gointerfaces" sentinelrpc "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/communication" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" "github.com/ledgerwatch/log/v3" pubsub "github.com/libp2p/go-libp2p-pubsub" "github.com/libp2p/go-libp2p/core/peer" @@ -30,6 +34,8 @@ type SentinelServer struct { mu sync.RWMutex logger log.Logger + + peerStatistics map[string]*diagnostics.PeerStatistics } func NewSentinelServer(ctx context.Context, sentinel *sentinel.Sentinel, logger log.Logger) *SentinelServer { @@ -38,6 +44,7 @@ func NewSentinelServer(ctx context.Context, sentinel *sentinel.Sentinel, logger ctx: ctx, gossipNotifier: newGossipNotifier(), logger: logger, + peerStatistics: make(map[string]*diagnostics.PeerStatistics), } } @@ -56,24 +63,23 @@ func extractBlobSideCarIndex(topic string) int { //BanPeer(context.Context, *Peer) (*EmptyMessage, error) func (s *SentinelServer) BanPeer(_ context.Context, p *sentinelrpc.Peer) (*sentinelrpc.EmptyMessage, error) { - s.mu.RLock() - defer s.mu.RUnlock() var pid peer.ID if err := pid.UnmarshalText([]byte(p.Pid)); err != nil { return nil, err } - s.sentinel.Peers().WithPeer(pid, func(peer *peers.Peer) { - peer.Ban() - }) + s.sentinel.Peers().SetBanStatus(pid, true) + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) return &sentinelrpc.EmptyMessage{}, nil } func (s *SentinelServer) PublishGossip(_ context.Context, msg *sentinelrpc.GossipData) (*sentinelrpc.EmptyMessage, error) { - s.mu.RLock() - defer s.mu.RUnlock() manager := s.sentinel.GossipManager() // Snappify payload before sending it to gossip compressedData := utils.CompressSnappy(msg.Data) + + s.trackPeerStatistics(msg.GetPeer().Pid, false, msg.Type.String(), "unknown", len(compressedData)) + var subscription *sentinel.GossipSubscription switch msg.Type { @@ -146,77 +152,93 @@ func (s *SentinelServer) withTimeoutCtx(pctx context.Context, dur time.Duration) return ctx, cn } -func (s *SentinelServer) SendRequest(pctx context.Context, req *sentinelrpc.RequestData) (*sentinelrpc.ResponseData, error) { - s.mu.RLock() - defer s.mu.RUnlock() - retryReqInterval := time.NewTicker(200 * time.Millisecond) - defer retryReqInterval.Stop() - ctx, cn := s.withTimeoutCtx(pctx, 0) - defer cn() - doneCh := make(chan *sentinelrpc.ResponseData) - // Try finding the data to our peers - uniquePeers := map[peer.ID]struct{}{} - requestPeer := func(peer *peers.Peer) { - peer.MarkUsed() - data, isError, err := communication.SendRequestRawToPeer(ctx, s.sentinel.Host(), req.Data, req.Topic, peer.ID()) - if err != nil { - return - } - if isError > 3 { - peer.Disconnect(fmt.Sprintf("invalid response, starting byte %d", isError)) - peer.Penalize() - } - if isError != 0 { - return - } - ans := &sentinelrpc.ResponseData{ - Data: data, - Error: isError != 0, - Peer: &sentinelrpc.Peer{ - Pid: peer.ID().String(), - }, +func (s *SentinelServer) requestPeer(ctx context.Context, pid peer.ID, req *sentinelrpc.RequestData) (*sentinelrpc.ResponseData, error) { + // prepare the http request + httpReq, err := http.NewRequest("GET", "http://service.internal/", bytes.NewBuffer(req.Data)) + if err != nil { + return nil, err + } + // set the peer and topic we are requesting + httpReq.Header.Set("REQRESP-PEER-ID", pid.String()) + httpReq.Header.Set("REQRESP-TOPIC", req.Topic) + // for now this can't actually error. in the future, it can due to a network error + resp, err := httpreqresp.Do(s.sentinel.ReqRespHandler(), httpReq) + if err != nil { + // we remove, but dont ban the peer if we fail. this is because its probably not their fault, but maybe it is. + return nil, err + } + defer resp.Body.Close() + // some standard http error code parsing + if resp.StatusCode < 200 || resp.StatusCode > 399 { + errBody, _ := io.ReadAll(resp.Body) + errorMessage := fmt.Errorf("SentinelHttp: %s", string(errBody)) + if resp.StatusCode >= 400 && resp.StatusCode < 500 { + s.sentinel.Peers().RemovePeer(pid) + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) } - select { - case doneCh <- ans: - peer.MarkReplied() - retryReqInterval.Stop() - return - case <-ctx.Done(): - return + if resp.StatusCode >= 500 && resp.StatusCode < 600 { + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) } + return nil, errorMessage } - go func() { - for { - pid, err := s.sentinel.RandomPeer(req.Topic) - if err != nil { - continue - } - if _, ok := uniquePeers[pid]; !ok { - go s.sentinel.Peers().WithPeer(pid, requestPeer) - uniquePeers[pid] = struct{}{} - } - select { - case <-retryReqInterval.C: - case <-ctx.Done(): - return - } - } - }() - select { - case resp := <-doneCh: - return resp, nil - case <-ctx.Done(): - return &sentinelrpc.ResponseData{ - Data: []byte("request timeout"), - Error: true, - Peer: &sentinelrpc.Peer{Pid: ""}, - }, nil + // we should never get an invalid response to this. our responder should always set it on non-error response + isError, err := strconv.Atoi(resp.Header.Get("REQRESP-RESPONSE-CODE")) + if err != nil { + // TODO: think about how to properly handle this. should we? (or should we just assume no response is success?) + return nil, err + } + // known error codes, just remove the peer + if isError == 3 || isError == 2 { + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) + return nil, fmt.Errorf("peer error code: %d", isError) + } + // unknown error codes + if isError > 3 { + s.logger.Debug("peer returned unknown erro", "id", pid.String()) + s.sentinel.Host().Peerstore().RemovePeer(pid) + s.sentinel.Host().Network().ClosePeer(pid) + return nil, fmt.Errorf("peer returned unknown error: %d", isError) + } + // read the body from the response + data, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + ans := &sentinelrpc.ResponseData{ + Data: data, + Error: isError != 0, + Peer: &sentinelrpc.Peer{ + Pid: pid.String(), + }, } + return ans, nil + +} + +func (s *SentinelServer) SendRequest(ctx context.Context, req *sentinelrpc.RequestData) (*sentinelrpc.ResponseData, error) { + // Try finding the data to our peers + // this is using return statements instead of continue, since it saves a few lines + // but me writing this comment has put them back.. oh no!!! anyways, returning true means we stop. + peer, done, err := s.sentinel.Peers().Request() + if err != nil { + return nil, err + } + defer done() + pid := peer.Id() + + resp, err := s.requestPeer(ctx, pid, req) + if err != nil { + s.logger.Trace("[sentinel] peer gave us bad data", "peer", pid, "err", err) + return nil, err + } + return resp, nil + } func (s *SentinelServer) SetStatus(_ context.Context, req *sentinelrpc.Status) (*sentinelrpc.EmptyMessage, error) { - s.mu.RLock() - defer s.mu.RUnlock() // Send the request and get the data if we get an answer. s.sentinel.SetStatus(&cltypes.Status{ ForkDigest: utils.Uint32ToBytes4(req.ForkDigest), @@ -229,8 +251,6 @@ func (s *SentinelServer) SetStatus(_ context.Context, req *sentinelrpc.Status) ( } func (s *SentinelServer) GetPeers(_ context.Context, _ *sentinelrpc.EmptyMessage) (*sentinelrpc.PeerCount, error) { - s.mu.RLock() - defer s.mu.RUnlock() // Send the request and get the data if we get an answer. return &sentinelrpc.PeerCount{ Amount: uint64(s.sentinel.GetPeersCount()), @@ -256,6 +276,7 @@ func (s *SentinelServer) ListenToGossip() { func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error { var err error s.logger.Trace("[Sentinel Gossip] Received Packet", "topic", pkt.Topic) + data := pkt.GetData() // If we use snappy codec then decompress it accordingly. @@ -269,6 +290,10 @@ func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error { if err != nil { return err } + + msgType, msgCap := parseTopic(pkt.GetTopic()) + s.trackPeerStatistics(string(textPid), true, msgType, msgCap, len(data)) + // Check to which gossip it belongs to. if strings.Contains(*pkt.Topic, string(sentinel.BeaconBlockTopic)) { s.gossipNotifier.notify(sentinelrpc.GossipType_BeaconBlockGossipType, data, string(textPid)) @@ -280,10 +305,61 @@ func (s *SentinelServer) handleGossipPacket(pkt *pubsub.Message) error { s.gossipNotifier.notify(sentinelrpc.GossipType_ProposerSlashingGossipType, data, string(textPid)) } else if strings.Contains(*pkt.Topic, string(sentinel.AttesterSlashingTopic)) { s.gossipNotifier.notify(sentinelrpc.GossipType_AttesterSlashingGossipType, data, string(textPid)) + } else if strings.Contains(*pkt.Topic, string(sentinel.BlsToExecutionChangeTopic)) { + s.gossipNotifier.notify(sentinelrpc.GossipType_BlsToExecutionChangeGossipType, data, string(textPid)) } else if strings.Contains(*pkt.Topic, string(sentinel.BlobSidecarTopic)) { // extract the index - s.gossipNotifier.notifyBlob(sentinelrpc.GossipType_BlobSidecarType, data, string(textPid), extractBlobSideCarIndex(*pkt.Topic)) } return nil } + +func (s *SentinelServer) GetPeersStatistics() map[string]*diagnostics.PeerStatistics { + stats := make(map[string]*diagnostics.PeerStatistics) + for k, v := range s.peerStatistics { + stats[k] = v + delete(s.peerStatistics, k) + } + + return stats +} + +func (s *SentinelServer) trackPeerStatistics(peerID string, inbound bool, msgType string, msgCap string, bytes int) { + if s.peerStatistics == nil { + s.peerStatistics = make(map[string]*diagnostics.PeerStatistics) + } + + if _, exists := s.peerStatistics[peerID]; !exists { + s.peerStatistics[peerID] = &diagnostics.PeerStatistics{ + CapBytesIn: make(map[string]uint64), + CapBytesOut: make(map[string]uint64), + TypeBytesIn: make(map[string]uint64), + TypeBytesOut: make(map[string]uint64), + } + } + + stats := s.peerStatistics[peerID] + + if inbound { + stats.BytesIn += uint64(bytes) + stats.CapBytesIn[msgCap] += uint64(bytes) + stats.TypeBytesIn[msgType] += uint64(bytes) + } else { + stats.BytesOut += uint64(bytes) + stats.CapBytesOut[msgCap] += uint64(bytes) + stats.TypeBytesOut[msgType] += uint64(bytes) + } +} + +func parseTopic(input string) (string, string) { + parts := strings.Split(input, "/") + + if len(parts) < 4 { + return "unknown", "unknown" + } + + capability := parts[1] + topick := parts[3] + + return capability, topick +} diff --git a/cmd/sentinel/sentinel/service/start.go b/cl/sentinel/service/start.go similarity index 61% rename from cmd/sentinel/sentinel/service/start.go rename to cl/sentinel/service/start.go index 533eeeef494..efcd95ac77a 100644 --- a/cmd/sentinel/sentinel/service/start.go +++ b/cl/sentinel/service/start.go @@ -2,30 +2,25 @@ package service import ( "context" - "fmt" "net" - "time" + "github.com/ledgerwatch/erigon/cl/sentinel" + + "github.com/ledgerwatch/erigon-lib/direct" sentinelrpc "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" - "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" + "github.com/ledgerwatch/erigon/cl/persistence" "github.com/ledgerwatch/log/v3" - rcmgrObs "github.com/libp2p/go-libp2p/p2p/host/resource-manager/obs" - "github.com/prometheus/client_golang/prometheus" "google.golang.org/grpc" "google.golang.org/grpc/credentials" - "google.golang.org/grpc/credentials/insecure" ) -const maxMessageSize = 437323800 - type ServerConfig struct { Network string Addr string } -func createSentinel(cfg *sentinel.SentinelConfig, db kv.RoDB, logger log.Logger) (*sentinel.Sentinel, error) { +func createSentinel(cfg *sentinel.SentinelConfig, db persistence.RawBeaconBlockChain, logger log.Logger) (*sentinel.Sentinel, error) { sent, err := sentinel.New(context.Background(), cfg, db, logger) if err != nil { return nil, err @@ -36,9 +31,10 @@ func createSentinel(cfg *sentinel.SentinelConfig, db kv.RoDB, logger log.Logger) gossipTopics := []sentinel.GossipTopic{ sentinel.BeaconBlockSsz, //sentinel.BeaconAggregateAndProofSsz, - //sentinel.VoluntaryExitSsz, - //sentinel.ProposerSlashingSsz, - //sentinel.AttesterSlashingSsz, + sentinel.VoluntaryExitSsz, + sentinel.ProposerSlashingSsz, + sentinel.AttesterSlashingSsz, + sentinel.BlsToExecutionChangeSsz, } // gossipTopics = append(gossipTopics, sentinel.GossipSidecarTopics(chain.MaxBlobsPerBlock)...) @@ -61,46 +57,21 @@ func createSentinel(cfg *sentinel.SentinelConfig, db kv.RoDB, logger log.Logger) return sent, nil } -func StartSentinelService(cfg *sentinel.SentinelConfig, db kv.RoDB, srvCfg *ServerConfig, creds credentials.TransportCredentials, initialStatus *cltypes.Status, logger log.Logger) (sentinelrpc.SentinelClient, error) { +func StartSentinelService(cfg *sentinel.SentinelConfig, db persistence.RawBeaconBlockChain, srvCfg *ServerConfig, creds credentials.TransportCredentials, initialStatus *cltypes.Status, logger log.Logger) (sentinelrpc.SentinelClient, error) { ctx := context.Background() sent, err := createSentinel(cfg, db, logger) if err != nil { return nil, err } - rcmgrObs.MustRegisterWith(prometheus.DefaultRegisterer) + // rcmgrObs.MustRegisterWith(prometheus.DefaultRegisterer) logger.Info("[Sentinel] Sentinel started", "enr", sent.String()) if initialStatus != nil { sent.SetStatus(initialStatus) } server := NewSentinelServer(ctx, sent, logger) - if creds == nil { - creds = insecure.NewCredentials() - } - go StartServe(server, srvCfg, creds) - timeOutTimer := time.NewTimer(5 * time.Second) -WaitingLoop: - for { - select { - case <-timeOutTimer.C: - return nil, fmt.Errorf("[Server] timeout beginning server") - default: - if _, err := server.GetPeers(ctx, &sentinelrpc.EmptyMessage{}); err == nil { - break WaitingLoop - } - } - } - - conn, err := grpc.DialContext(ctx, - srvCfg.Addr, - grpc.WithTransportCredentials(creds), - grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(maxMessageSize)), - ) - if err != nil { - return nil, err - } - return sentinelrpc.NewSentinelClient(conn), nil + return direct.NewSentinelClientDirect(server), nil } func StartServe(server *SentinelServer, srvCfg *ServerConfig, creds credentials.TransportCredentials) { diff --git a/cmd/sentinel/sentinel/utils.go b/cl/sentinel/utils.go similarity index 61% rename from cmd/sentinel/sentinel/utils.go rename to cl/sentinel/utils.go index 7b01e00f9aa..e3fdd9cd61c 100644 --- a/cmd/sentinel/sentinel/utils.go +++ b/cl/sentinel/utils.go @@ -1,29 +1,24 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - +// Copyright 2022 Erigon-Lightclient contributors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// package sentinel package sentinel import ( "crypto/ecdsa" - "crypto/rand" "fmt" - "math/big" "net" - "strings" "time" "github.com/btcsuite/btcd/btcec/v2" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/peers" "github.com/ledgerwatch/erigon/p2p/enode" "github.com/ledgerwatch/log/v3" "github.com/libp2p/go-libp2p/core/crypto" @@ -107,61 +102,6 @@ func convertToMultiAddr(nodes []*enode.Node) []multiaddr.Multiaddr { var shuffleSource = randutil.NewMathRandomGenerator() -// will iterate onto randoms nodes until our sentinel connects to one -func connectToRandomPeer(s *Sentinel, topic string) (peerInfo peer.ID, err error) { - var sub *GossipSubscription - for t, currSub := range s.subManager.subscriptions { - if strings.Contains(t, topic) { - sub = currSub - } - } - - if sub == nil { - return peer.ID(""), fmt.Errorf("no peers") - } - - validPeerList := s.Host().Network().Peers() - //validPeerList := sub.topic.ListPeers() - if len(validPeerList) == 0 { - return peer.ID(""), fmt.Errorf("no peers") - } - for i := range validPeerList { - j := shuffleSource.Intn(i + 1) - validPeerList[i], validPeerList[j] = validPeerList[j], validPeerList[i] - } - - connectedPeer := false - maxTries := peers.DefaultMaxPeers - tries := 0 - for !connectedPeer { - if tries >= maxTries { - break - } - tries++ - index := int64(0) - if len(validPeerList) > 1 { - n, err := rand.Int(rand.Reader, big.NewInt(int64(len(validPeerList)-1))) - if err != nil { - panic(err) - } - index = n.Int64() - } - available := false - s.peers.TryPeer(validPeerList[index], func(peer *peers.Peer, ok bool) { - if !ok { - return - } - available = peer.IsAvailable() - }) - if !available { - continue - } - return validPeerList[index], nil - } - - return peer.ID(""), fmt.Errorf("failed to connect to peer") -} - func (s *Sentinel) oneSlotDuration() time.Duration { return time.Duration(s.cfg.BeaconConfig.SecondsPerSlot) * time.Second } diff --git a/cmd/sentinel/sentinel/utils_test.go b/cl/sentinel/utils_test.go similarity index 64% rename from cmd/sentinel/sentinel/utils_test.go rename to cl/sentinel/utils_test.go index 10e60588b64..106fdd9a7a7 100644 --- a/cmd/sentinel/sentinel/utils_test.go +++ b/cl/sentinel/utils_test.go @@ -4,9 +4,6 @@ import ( "encoding/hex" "testing" - "github.com/ledgerwatch/erigon/p2p/enode" - "github.com/ledgerwatch/erigon/p2p/enr" - "github.com/ledgerwatch/erigon/rlp" "github.com/libp2p/go-libp2p/core/peer" ) @@ -63,32 +60,33 @@ func TestMultiAddressBuilderWithID(t *testing.T) { } } -func TestConvertToMultiAddr(t *testing.T) { - var r enr.Record - if err := rlp.DecodeBytes(pyRecord, &r); err != nil { - t.Fatalf("can't decode: %v", err) - } - n, err := enode.New(enode.ValidSchemes, &r) - if err != nil { - t.Fatalf("cannot create new node: %v", err) - } - - testCases := []struct { - nodes []*enode.Node - expected []string - }{ - { - nodes: []*enode.Node{n}, - expected: []string{"/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmSH2XVgZqYHWucap5kuPzLnt2TsNQkoppVxB5eJGvaXwm"}, - }, - } - - for _, testCase := range testCases { - multiAddrs := convertToMultiAddr(testCase.nodes) - for i, multiAddr := range multiAddrs { - if multiAddr.String() != testCase.expected[i] { - t.Errorf("for test case: %d, expected: %s, got: %s", i, testCase.expected[i], multiAddr) - } - } - } -} +// TODO: reimplement this test with the new erigon-lib rlp decoder at some point +//func TestConvertToMultiAddr(t *testing.T) { +// var r enr.Record +// if err := rlp.DecodeBytes(pyRecord, &r); err != nil { +// t.Fatalf("can't decode: %v", err) +// } +// n, err := enode.New(enode.ValidSchemes, &r) +// if err != nil { +// t.Fatalf("cannot create new node: %v", err) +// } +// +// testCases := []struct { +// nodes []*enode.Node +// expected []string +// }{ +// { +// nodes: []*enode.Node{n}, +// expected: []string{"/ip4/127.0.0.1/tcp/0/p2p/16Uiu2HAmSH2XVgZqYHWucap5kuPzLnt2TsNQkoppVxB5eJGvaXwm"}, +// }, +// } +// +// for _, testCase := range testCases { +// multiAddrs := convertToMultiAddr(testCase.nodes) +// for i, multiAddr := range multiAddrs { +// if multiAddr.String() != testCase.expected[i] { +// t.Errorf("for test case: %d, expected: %s, got: %s", i, testCase.expected[i], multiAddr) +// } +// } +// } +//} diff --git a/cl/spectest/Makefile b/cl/spectest/Makefile index 6d467b542ee..f4f5be19693 100644 --- a/cl/spectest/Makefile +++ b/cl/spectest/Makefile @@ -2,18 +2,18 @@ tests: - git clone https://github.com/ethereum/consensus-spec-tests - cd consensus-spec-tests && git lfs pull && cd .. + GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/ethereum/consensus-spec-tests + cd consensus-spec-tests && git checkout 70dc28b18c71f3ae080c02f51bd3421e0b60609b && git lfs pull --exclude=tests/general,tests/minimal && cd .. mv consensus-spec-tests/tests . rm -rf consensus-spec-tests rm -rf tests/minimal + # not needed for now + rm -rf tests/mainnet/eip6110 + # will not implement until i see it on a testnet + rm -rf tests/mainnet/deneb clean: - rm -rf junit.xml - rm -rf test_report.html + rm -rf tests mainnet: - go test -tags=spectest -run=/mainnet - -run: - go test -v + CGO_CFLAGS=-D__BLST_PORTABLE__ go test -tags=spectest -run=/mainnet -failfast -v --timeout 30m diff --git a/cl/spectest/consensus_tests/appendix.go b/cl/spectest/consensus_tests/appendix.go index da0a11cc30f..788ac359a65 100644 --- a/cl/spectest/consensus_tests/appendix.go +++ b/cl/spectest/consensus_tests/appendix.go @@ -85,8 +85,8 @@ func addSszTests() { With("Attestation", getSSZStaticConsensusTest(&solid.Attestation{})). With("AttestationData", getSSZStaticConsensusTest(solid.AttestationData{})). With("AttesterSlashing", getSSZStaticConsensusTest(&cltypes.AttesterSlashing{})). - With("BeaconBlock", getSSZStaticConsensusTest(&cltypes.BeaconBlock{})). - With("BeaconBlockBody", getSSZStaticConsensusTest(&cltypes.BeaconBody{})). + With("BeaconBlock", getSSZStaticConsensusTest(cltypes.NewBeaconBlock(&clparams.MainnetBeaconConfig))). + With("BeaconBlockBody", getSSZStaticConsensusTest(cltypes.NewBeaconBody(&clparams.MainnetBeaconConfig))). With("BeaconBlockHeader", getSSZStaticConsensusTest(&cltypes.BeaconBlockHeader{})). With("BeaconState", getSSZStaticConsensusTest(state.New(&clparams.MainnetBeaconConfig))). //With("BlobIdentifier", getSSZStaticConsensusTest(&cltypes.BlobIdentifier{})). @@ -99,13 +99,13 @@ func addSszTests() { // With("DepositMessage", getSSZStaticConsensusTest(&cltypes.DepositMessage{})). // With("Eth1Block", getSSZStaticConsensusTest(&cltypes.Eth1Block{})). With("Eth1Data", getSSZStaticConsensusTest(&cltypes.Eth1Data{})). - With("ExecutionPayload", getSSZStaticConsensusTest(&cltypes.Eth1Block{})). + //With("ExecutionPayload", getSSZStaticConsensusTest(&cltypes.NewEth1Block(mainn))). With("ExecutionPayloadHeader", getSSZStaticConsensusTest(&cltypes.Eth1Header{})). With("Fork", getSSZStaticConsensusTest(&cltypes.Fork{})). //With("ForkData", getSSZStaticConsensusTest(&cltypes.ForkData{})). //With("HistoricalBatch", getSSZStaticConsensusTest(&cltypes.HistoricalBatch{})). With("HistoricalSummary", getSSZStaticConsensusTest(&cltypes.HistoricalSummary{})). - // With("IndexedAttestation", getSSZStaticConsensusTest(&cltypes.IndexedAttestation{})). + With("IndexedAttestation", getSSZStaticConsensusTest(&cltypes.IndexedAttestation{})). // With("LightClientBootstrap", getSSZStaticConsensusTest(&cltypes.LightClientBootstrap{})). Unimplemented // With("LightClientFinalityUpdate", getSSZStaticConsensusTest(&cltypes.LightClientFinalityUpdate{})). Unimplemented // With("LightClientHeader", getSSZStaticConsensusTest(&cltypes.LightClientHeader{})). Unimplemented @@ -114,8 +114,8 @@ func addSszTests() { With("PendingAttestation", getSSZStaticConsensusTest(&solid.PendingAttestation{})). // With("PowBlock", getSSZStaticConsensusTest(&cltypes.PowBlock{})). Unimplemented With("ProposerSlashing", getSSZStaticConsensusTest(&cltypes.ProposerSlashing{})). - // With("SignedAggregateAndProof", getSSZStaticConsensusTest(&cltypes.SignedAggregateAndProof{})). - With("SignedBeaconBlock", getSSZStaticConsensusTest(&cltypes.SignedBeaconBlock{})). + With("SignedAggregateAndProof", getSSZStaticConsensusTest(&cltypes.SignedAggregateAndProof{})). + With("SignedBeaconBlock", getSSZStaticConsensusTest(cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig))). With("SignedBeaconBlockHeader", getSSZStaticConsensusTest(&cltypes.SignedBeaconBlockHeader{})). //With("SignedBlobSidecar", getSSZStaticConsensusTest(&cltypes.SignedBlobSideCar{})). With("SignedBLSToExecutionChange", getSSZStaticConsensusTest(&cltypes.SignedBLSToExecutionChange{})). diff --git a/cl/spectest/consensus_tests/bls.go b/cl/spectest/consensus_tests/bls.go index 59a8da3fecc..2c1e6247fee 100644 --- a/cl/spectest/consensus_tests/bls.go +++ b/cl/spectest/consensus_tests/bls.go @@ -1,10 +1,9 @@ package consensus_tests import ( + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" - - "github.com/ledgerwatch/erigon/spectest" ) type BlsAggregateVerify struct { diff --git a/cl/spectest/consensus_tests/epoch_processing.go b/cl/spectest/consensus_tests/epoch_processing.go index 70dd1df2563..390c2ae4289 100644 --- a/cl/spectest/consensus_tests/epoch_processing.go +++ b/cl/spectest/consensus_tests/epoch_processing.go @@ -1,14 +1,15 @@ package consensus_tests import ( + "github.com/ledgerwatch/erigon/spectest" "io/fs" "os" "testing" "github.com/ledgerwatch/erigon/cl/abstract" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/transition/impl/eth2/statechange" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -65,11 +66,11 @@ var historicalRootsUpdateTest = NewEpochProcessing(func(s abstract.BeaconState) }) var inactivityUpdateTest = NewEpochProcessing(func(s abstract.BeaconState) error { - return statechange.ProcessInactivityScores(s) + return statechange.ProcessInactivityScores(s, state.EligibleValidatorsIndicies(s), statechange.GetUnslashedIndiciesSet(s)) }) var justificationFinalizationTest = NewEpochProcessing(func(s abstract.BeaconState) error { - return statechange.ProcessJustificationBitsAndFinality(s) + return statechange.ProcessJustificationBitsAndFinality(s, nil) }) var participationFlagUpdatesTest = NewEpochProcessing(func(s abstract.BeaconState) error { @@ -90,7 +91,7 @@ var registryUpdatesTest = NewEpochProcessing(func(s abstract.BeaconState) error }) var rewardsAndPenaltiesTest = NewEpochProcessing(func(s abstract.BeaconState) error { - return statechange.ProcessRewardsAndPenalties(s) + return statechange.ProcessRewardsAndPenalties(s, state.EligibleValidatorsIndicies(s), statechange.GetUnslashedIndiciesSet(s)) }) var slashingsTest = NewEpochProcessing(func(s abstract.BeaconState) error { diff --git a/cl/spectest/consensus_tests/finality.go b/cl/spectest/consensus_tests/finality.go index 1c72fcfb059..9a1de019a58 100644 --- a/cl/spectest/consensus_tests/finality.go +++ b/cl/spectest/consensus_tests/finality.go @@ -2,11 +2,12 @@ package consensus_tests import ( "fmt" - "github.com/ledgerwatch/erigon/cl/transition/machine" "io/fs" "testing" + "github.com/ledgerwatch/erigon/cl/transition/machine" "github.com/ledgerwatch/erigon/spectest" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/consensus_tests/fork_choice.go b/cl/spectest/consensus_tests/fork_choice.go index 64986bb83f4..ca39a83c042 100644 --- a/cl/spectest/consensus_tests/fork_choice.go +++ b/cl/spectest/consensus_tests/fork_choice.go @@ -1,17 +1,22 @@ package consensus_tests import ( + "context" "fmt" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" "github.com/ledgerwatch/erigon/cl/abstract" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" + "github.com/ledgerwatch/erigon/cl/pool" + "github.com/spf13/afero" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -63,7 +68,7 @@ func (f *ForkChoiceStep) GetValid() bool { if f.Valid == nil { return true } - return false + return *f.Valid } func (f *ForkChoiceStep) GetAttestation() string { if f.Attestation == nil { @@ -150,7 +155,7 @@ func (b *ForkChoice) Run(t *testing.T, root fs.FS, c spectest.TestCase) (err err anchorState, err := spectest.ReadBeaconState(root, c.Version(), "anchor_state.ssz_snappy") require.NoError(t, err) - forkStore, err := forkchoice.NewForkChoiceStore(anchorState, nil, nil, false) + forkStore, err := forkchoice.NewForkChoiceStore(context.Background(), anchorState, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), fork_graph.NewForkGraphDisk(anchorState, afero.NewMemMapFs())) require.NoError(t, err) var steps []ForkChoiceStep @@ -167,27 +172,16 @@ func (b *ForkChoice) Run(t *testing.T, root fs.FS, c spectest.TestCase) (err err data := &cltypes.AttesterSlashing{} err := spectest.ReadSsz(root, c.Version(), step.GetAttesterSlashing()+".ssz_snappy", data) require.NoError(t, err, stepstr) - err = forkStore.OnAttesterSlashing(data) + err = forkStore.OnAttesterSlashing(data, false) if step.GetValid() { require.NoError(t, err, stepstr) } else { require.Error(t, err, stepstr) } case "on_merge_block": - // on_merge_block is for testing things related to the ethereum "The Merge" event - // this has already happened, so let's just pass these tests return nil - // blk := &cltypes.SignedBeaconBlock{} - // err := spectest.ReadSsz(root, c.Version(), step.GetPowBlock()+".ssz_snappy", blk) - // require.NoError(t, err, stepstr) - // err = forkStore.OnBlock(blk, true, true) - // if step.GetValid() { - // require.NoError(t, err, stepstr) - // } else { - // require.Error(t, err, stepstr) - // } case "on_block": - blk := &cltypes.SignedBeaconBlock{} + blk := cltypes.NewSignedBeaconBlock(anchorState.BeaconConfig()) err := spectest.ReadSsz(root, c.Version(), step.GetBlock()+".ssz_snappy", blk) require.NoError(t, err, stepstr) err = forkStore.OnBlock(blk, true, true) diff --git a/cl/spectest/consensus_tests/forks.go b/cl/spectest/consensus_tests/forks.go index 796673f5b3f..39d97f98165 100644 --- a/cl/spectest/consensus_tests/forks.go +++ b/cl/spectest/consensus_tests/forks.go @@ -2,12 +2,12 @@ package consensus_tests import ( "fmt" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "os" "testing" "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/consensus_tests/operations.go b/cl/spectest/consensus_tests/operations.go index 1aaca37cc04..f2de0d6a784 100644 --- a/cl/spectest/consensus_tests/operations.go +++ b/cl/spectest/consensus_tests/operations.go @@ -2,14 +2,15 @@ package consensus_tests import ( "fmt" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "os" "testing" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -124,7 +125,7 @@ func operationBlockHeaderHandler(t *testing.T, root fs.FS, c spectest.TestCase) if err != nil && !expectedError { return err } - block := &cltypes.BeaconBlock{} + block := cltypes.NewBeaconBlock(&clparams.MainnetBeaconConfig) if err := spectest.ReadSszOld(root, block, c.Version(), blockFileName); err != nil { return err } @@ -244,7 +245,7 @@ func operationWithdrawalHandler(t *testing.T, root fs.FS, c spectest.TestCase) e if err != nil && !expectedError { return err } - executionPayload := &cltypes.Eth1Block{} + executionPayload := cltypes.NewEth1Block(c.Version(), &clparams.MainnetBeaconConfig) if err := spectest.ReadSszOld(root, executionPayload, c.Version(), executionPayloadFileName); err != nil { return err } diff --git a/cl/spectest/consensus_tests/rewards.go b/cl/spectest/consensus_tests/rewards.go index f22f02af4dd..15c3460d813 100644 --- a/cl/spectest/consensus_tests/rewards.go +++ b/cl/spectest/consensus_tests/rewards.go @@ -1,10 +1,9 @@ package consensus_tests import ( + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" - - "github.com/ledgerwatch/erigon/spectest" ) type RewardsCore struct { diff --git a/cl/spectest/consensus_tests/sanity.go b/cl/spectest/consensus_tests/sanity.go index 493f3ddcf4e..85f5d0c3b8b 100644 --- a/cl/spectest/consensus_tests/sanity.go +++ b/cl/spectest/consensus_tests/sanity.go @@ -1,13 +1,14 @@ package consensus_tests import ( - "github.com/ledgerwatch/erigon/cl/transition/machine" "io/fs" "os" "testing" - "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/transition/machine" "github.com/ledgerwatch/erigon/spectest" + + "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/consensus_tests/shuffling.go b/cl/spectest/consensus_tests/shuffling.go index c26711d3b8c..b7a0a9338b0 100644 --- a/cl/spectest/consensus_tests/shuffling.go +++ b/cl/spectest/consensus_tests/shuffling.go @@ -4,13 +4,14 @@ import ( "io/fs" "testing" + "github.com/ledgerwatch/erigon/spectest" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/phase1/core/state/shuffling" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -29,7 +30,7 @@ func (b *ShufflingCore) Run(t *testing.T, root fs.FS, c spectest.TestCase) (err } s := state.New(&clparams.MainnetBeaconConfig) - keccakOptimized := utils.OptimizedKeccak256NotThreadSafe() + keccakOptimized := utils.OptimizedSha256NotThreadSafe() preInputs := shuffling.ComputeShuffledIndexPreInputs(s.BeaconConfig(), meta.Seed) for idx, v := range meta.Mapping { shuffledIdx, err := shuffling.ComputeShuffledIndex(s.BeaconConfig(), uint64(idx), uint64(meta.Count), meta.Seed, preInputs, keccakOptimized) diff --git a/cl/spectest/consensus_tests/ssz_static.go b/cl/spectest/consensus_tests/ssz_static.go index 57dd6d3cdb9..a1512837d44 100644 --- a/cl/spectest/consensus_tests/ssz_static.go +++ b/cl/spectest/consensus_tests/ssz_static.go @@ -1,9 +1,15 @@ package consensus_tests import ( + "bytes" "io/fs" "testing" + "github.com/ledgerwatch/erigon/spectest" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" "github.com/ledgerwatch/erigon/cl/phase1/core/state" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -11,7 +17,6 @@ import ( "github.com/ledgerwatch/erigon-lib/types/ssz" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/require" "gopkg.in/yaml.v2" ) @@ -44,6 +49,7 @@ func getSSZStaticConsensusTest[T unmarshalerMarshalerHashable](ref T) spectest.H require.NoError(t, err) encoded, err := utils.DecompressSnappy(snappyEncoded) require.NoError(t, err) + if err := object.DecodeSSZ(encoded, int(c.Version())); err != nil && !isBeaconState { return err } @@ -51,13 +57,31 @@ func getSSZStaticConsensusTest[T unmarshalerMarshalerHashable](ref T) spectest.H require.NoError(t, err) require.EqualValues(t, expectedRoot, haveRoot) // Cannot test it without a config. - // TODO: parse and use config if isBeaconState { return nil } haveEncoded, err := object.EncodeSSZ(nil) require.NoError(t, err) require.EqualValues(t, haveEncoded, encoded) + // Now let it do the encoding in snapshot format + if blk, ok := object.(*cltypes.SignedBeaconBlock); ok { + var b bytes.Buffer + _, err := snapshot_format.WriteBlockForSnapshot(&b, blk, nil) + require.NoError(t, err) + var br snapshot_format.MockBlockReader + if blk.Version() >= clparams.BellatrixVersion { + br = snapshot_format.MockBlockReader{Block: blk.Block.Body.ExecutionPayload} + + } + + blk2, err := snapshot_format.ReadBlockFromSnapshot(&b, &br, &clparams.MainnetBeaconConfig) + require.NoError(t, err) + + haveRoot, err := blk2.HashSSZ() + require.NoError(t, err) + require.EqualValues(t, expectedRoot, haveRoot) + } + return nil }) } diff --git a/cl/spectest/consensus_tests/transition.go b/cl/spectest/consensus_tests/transition.go index 105ab477fb9..8a6ac6cac78 100644 --- a/cl/spectest/consensus_tests/transition.go +++ b/cl/spectest/consensus_tests/transition.go @@ -3,12 +3,12 @@ package consensus_tests import ( "fmt" "github.com/ledgerwatch/erigon/cl/transition/machine" + "github.com/ledgerwatch/erigon/spectest" "io/fs" "testing" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/spectest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/cl/spectest/tests_test.go b/cl/spectest/tests_test.go index db4fe28c987..a556ae7b03e 100644 --- a/cl/spectest/tests_test.go +++ b/cl/spectest/tests_test.go @@ -4,11 +4,11 @@ import ( "os" "testing" + "github.com/ledgerwatch/erigon/spectest" + "github.com/ledgerwatch/erigon/cl/transition" "github.com/ledgerwatch/erigon/cl/spectest/consensus_tests" - - "github.com/ledgerwatch/erigon/spectest" ) func Test(t *testing.T) { diff --git a/cl/spectest/wmake.ps1 b/cl/spectest/wmake.ps1 new file mode 100644 index 00000000000..ecc6269a7bf --- /dev/null +++ b/cl/spectest/wmake.ps1 @@ -0,0 +1,37 @@ +# Clean Function +function Clean { + Remove-Item -Recurse -Force -Path .\tests +} + +# Tests Function +function Tests { + $env:GIT_LFS_SKIP_SMUDGE = "1" + $gitCloneCmd = "git clone https://github.com/ethereum/consensus-spec-tests" + $gitCheckoutCmd = "cd consensus-spec-tests; git checkout 70dc28b18c71f3ae080c02f51bd3421e0b60609b; git lfs pull --exclude=tests/general,tests/minimal; cd .." + + Invoke-Expression $gitCloneCmd + Invoke-Expression $gitCheckoutCmd + + Move-Item -Path ".\consensus-spec-tests\tests" -Destination ".\" -Force + Remove-Item -Path ".\consensus-spec-tests" -Recurse -Force + Remove-Item -Path ".\tests\minimal" -Recurse -Force + Remove-Item -Path ".\tests\mainnet\eip6110" -Recurse -Force + Remove-Item -Path ".\tests\mainnet\deneb" -Recurse -Force +} + +# Mainnet Function +function Mainnet { + $env:CGO_CFLAGS = "-D__BLST_PORTABLE__" + go test -tags=spectest -run="/mainnet" -failfast -v +} + +# Main Targets +if ($MyInvocation.BoundParameters["clean"]) { + Clean +} +elseif ($MyInvocation.BoundParameters["tests"]) { + Tests +} else { + Mainnet +} + diff --git a/cl/ssz/decode.go b/cl/ssz/decode.go index 1abaf33ede8..1308081adf7 100644 --- a/cl/ssz/decode.go +++ b/cl/ssz/decode.go @@ -37,12 +37,11 @@ types such as uint64, []byte, and objects that implement the SizedObjectSSZ inte It handles both static (fixed size) and dynamic (variable size) objects based on their respective decoding methods and offsets. */ func UnmarshalSSZ(buf []byte, version int, schema ...interface{}) (err error) { - defer func() { - if err2 := recover(); err2 != nil { - err = fmt.Errorf("panic while decoding: %v", err2) - } - }() - + // defer func() { + // if err2 := recover(); err2 != nil { + // err = fmt.Errorf("panic while decoding: %v", err2) + // } + // }() position := 0 offsets := []int{} dynamicObjs := []SizedObjectSSZ{} diff --git a/cl/ssz/encode.go b/cl/ssz/encode.go index 2f851f1d208..38b57a8a11c 100644 --- a/cl/ssz/encode.go +++ b/cl/ssz/encode.go @@ -57,6 +57,7 @@ func MarshalSSZ(buf []byte, schema ...any) (dst []byte, err error) { err = fmt.Errorf("panic while encoding: %v", err2) } }() + dst = buf currentOffset := 0 dynamicComponents := []SizedObjectSSZ{} diff --git a/cl/transition/impl/eth2/block_processing_test.go b/cl/transition/impl/eth2/block_processing_test.go index bfae09874c9..7838ce55ae2 100644 --- a/cl/transition/impl/eth2/block_processing_test.go +++ b/cl/transition/impl/eth2/block_processing_test.go @@ -22,7 +22,7 @@ var capellaState []byte func TestBlockProcessing(t *testing.T) { s := state.New(&clparams.MainnetBeaconConfig) require.NoError(t, utils.DecodeSSZSnappy(s, capellaState, int(clparams.CapellaVersion))) - block := &cltypes.SignedBeaconBlock{} + block := cltypes.NewSignedBeaconBlock(&clparams.MainnetBeaconConfig) require.NoError(t, utils.DecodeSSZSnappy(block, capellaBlock, int(clparams.CapellaVersion))) require.NoError(t, transition.TransitionState(s, block, true)) // All checks already made in transition state } diff --git a/cl/transition/impl/eth2/operations.go b/cl/transition/impl/eth2/operations.go index 673590a22ae..13335129d4b 100644 --- a/cl/transition/impl/eth2/operations.go +++ b/cl/transition/impl/eth2/operations.go @@ -4,12 +4,13 @@ import ( "bytes" "errors" "fmt" - "github.com/ledgerwatch/erigon/cl/abstract" "reflect" "time" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon/cl/abstract" + "github.com/ledgerwatch/erigon/cl/transition/impl/eth2/statechange" - "github.com/ledgerwatch/erigon/metrics/methelp" "golang.org/x/exp/slices" "github.com/ledgerwatch/erigon-lib/common" @@ -38,16 +39,8 @@ func (I *impl) ProcessProposerSlashing(s abstract.BeaconState, propSlashing *clt return fmt.Errorf("non-matching proposer indices proposer slashing: %d != %d", h1.ProposerIndex, h2.ProposerIndex) } - h1Root, err := h1.HashSSZ() - if err != nil { - return fmt.Errorf("unable to hash header1: %v", err) - } - h2Root, err := h2.HashSSZ() - if err != nil { - return fmt.Errorf("unable to hash header2: %v", err) - } - if h1Root == h2Root { - return fmt.Errorf("propose slashing headers are the same: %v == %v", h1Root, h2Root) + if *h1 == *h2 { + return fmt.Errorf("proposee slashing headers are the same") } proposer, err := s.ValidatorForValidatorIndex(int(h1.ProposerIndex)) @@ -172,7 +165,7 @@ func (I *impl) ProcessDeposit(s abstract.BeaconState, deposit *cltypes.Deposit) if err != nil { return err } - signedRoot := utils.Keccak256(depositMessageRoot[:], domain) + signedRoot := utils.Sha256(depositMessageRoot[:], domain) // Perform BLS verification and if successful noice. valid, err := bls.Verify(deposit.Data.Signature[:], signedRoot[:], publicKey[:]) // Literally you can input it trash. @@ -197,7 +190,7 @@ func (I *impl) ProcessDeposit(s abstract.BeaconState, deposit *cltypes.Deposit) // ProcessVoluntaryExit takes a voluntary exit and applies state transition. func (I *impl) ProcessVoluntaryExit(s abstract.BeaconState, signedVoluntaryExit *cltypes.SignedVoluntaryExit) error { // Sanity checks so that we know it is good. - voluntaryExit := signedVoluntaryExit.VolunaryExit + voluntaryExit := signedVoluntaryExit.VoluntaryExit currentEpoch := state.Epoch(s) validator, err := s.ValidatorForValidatorIndex(int(voluntaryExit.ValidatorIndex)) if err != nil { @@ -241,7 +234,7 @@ func (I *impl) ProcessVoluntaryExit(s abstract.BeaconState, signedVoluntaryExit // ProcessWithdrawals processes withdrawals by decreasing the balance of each validator // and updating the next withdrawal index and validator index. -func (I *impl) ProcessWithdrawals(s abstract.BeaconState, withdrawals *solid.ListSSZ[*types.Withdrawal]) error { +func (I *impl) ProcessWithdrawals(s abstract.BeaconState, withdrawals *solid.ListSSZ[*cltypes.Withdrawal]) error { // Get the list of withdrawals, the expected withdrawals (if performing full validation), // and the beacon configuration. beaconConfig := s.BeaconConfig() @@ -253,8 +246,8 @@ func (I *impl) ProcessWithdrawals(s abstract.BeaconState, withdrawals *solid.Lis if len(expectedWithdrawals) != withdrawals.Len() { return fmt.Errorf("ProcessWithdrawals: expected %d withdrawals, but got %d", len(expectedWithdrawals), withdrawals.Len()) } - if err := solid.RangeErr[*types.Withdrawal](withdrawals, func(i int, w *types.Withdrawal, _ int) error { - if !expectedWithdrawals[i].Equal(w) { + if err := solid.RangeErr[*cltypes.Withdrawal](withdrawals, func(i int, w *cltypes.Withdrawal, _ int) error { + if *expectedWithdrawals[i] != *w { return fmt.Errorf("ProcessWithdrawals: withdrawal %d does not match expected withdrawal", i) } return nil @@ -263,7 +256,7 @@ func (I *impl) ProcessWithdrawals(s abstract.BeaconState, withdrawals *solid.Lis } } - if err := solid.RangeErr[*types.Withdrawal](withdrawals, func(_ int, w *types.Withdrawal, _ int) error { + if err := solid.RangeErr[*cltypes.Withdrawal](withdrawals, func(_ int, w *cltypes.Withdrawal, _ int) error { if err := state.DecreaseBalance(s, w.Validator, w.Amount); err != nil { return err } @@ -327,7 +320,7 @@ func (I *impl) ProcessSyncAggregate(s abstract.BeaconState, sync *cltypes.SyncAg if err != nil { return err } - msg := utils.Keccak256(blockRoot[:], domain) + msg := utils.Sha256(blockRoot[:], domain) isValid, err := bls.VerifyAggregate(sync.SyncCommiteeSignature[:], msg[:], votedKeys) if err != nil { return err @@ -372,7 +365,7 @@ func processSyncAggregate(s abstract.BeaconState, sync *cltypes.SyncAggregate) ( vIdx, exists := s.ValidatorIndexByPubkey(committeeKeys[currPubKeyIndex]) // Impossible scenario. if !exists { - return nil, errors.New("validator public key does not exist in state") + return nil, fmt.Errorf("validator public key does not exist in state: %x", committeeKeys[currPubKeyIndex]) } if syncAggregateBits[i]&byte(bit) > 0 { votedKeys = append(votedKeys, committeeKeys[currPubKeyIndex][:]) @@ -411,7 +404,7 @@ func (I *impl) ProcessBlsToExecutionChange(s abstract.BeaconState, signedChange } // Check the validator's withdrawal credentials against the provided message. - hashedFrom := utils.Keccak256(change.From[:]) + hashedFrom := utils.Sha256(change.From[:]) if !bytes.Equal(hashedFrom[1:], wc[1:]) { return fmt.Errorf("invalid withdrawal credentials") } @@ -479,7 +472,7 @@ func (I *impl) VerifyKzgCommitmentsAgainstTransactions(transactions *solid.Trans func (I *impl) ProcessAttestations(s abstract.BeaconState, attestations *solid.ListSSZ[*solid.Attestation]) error { attestingIndiciesSet := make([][]uint64, attestations.Len()) - h := methelp.NewHistTimer("beacon_process_attestations") + h := metrics.NewHistTimer("beacon_process_attestations") baseRewardPerIncrement := s.BaseRewardPerIncrement() c := h.Tag("attestation_step", "process") @@ -518,10 +511,10 @@ func processAttestationPostAltair(s abstract.BeaconState, attestation *solid.Att stateSlot := s.Slot() beaconConfig := s.BeaconConfig() - h := methelp.NewHistTimer("beacon_process_attestation_post_altair") + h := metrics.NewHistTimer("beacon_process_attestation_post_altair") c := h.Tag("step", "get_participation_flag") - participationFlagsIndicies, err := s.GetAttestationParticipationFlagIndicies(attestation.AttestantionData(), stateSlot-data.Slot()) + participationFlagsIndicies, err := s.GetAttestationParticipationFlagIndicies(data, stateSlot-data.Slot(), false) if err != nil { return nil, err } @@ -529,7 +522,7 @@ func processAttestationPostAltair(s abstract.BeaconState, attestation *solid.Att c = h.Tag("step", "get_attesting_indices") - attestingIndicies, err := s.GetAttestingIndicies(attestation.AttestantionData(), attestation.AggregationBits(), true) + attestingIndicies, err := s.GetAttestingIndicies(data, attestation.AggregationBits(), true) if err != nil { return nil, err } @@ -707,8 +700,12 @@ func processAttestation(s abstract.BeaconState, attestation *solid.Attestation, func verifyAttestations(s abstract.BeaconState, attestations *solid.ListSSZ[*solid.Attestation], attestingIndicies [][]uint64) (bool, error) { indexedAttestations := make([]*cltypes.IndexedAttestation, 0, attestations.Len()) + commonBuffer := make([]byte, 8*2048) attestations.Range(func(idx int, a *solid.Attestation, _ int) bool { - indexedAttestations = append(indexedAttestations, state.GetIndexedAttestation(a, attestingIndicies[idx])) + idxAttestations := state.GetIndexedAttestation(a, attestingIndicies[idx]) + idxAttestations.AttestingIndices.SetReusableHashBuffer(commonBuffer) + idxAttestations.HashSSZ() + indexedAttestations = append(indexedAttestations, idxAttestations) return true }) @@ -817,7 +814,7 @@ func (I *impl) ProcessRandao(s abstract.BeaconState, randao [96]byte, proposerIn } randaoMixes := s.GetRandaoMixes(epoch) - randaoHash := utils.Keccak256(randao[:]) + randaoHash := utils.Sha256(randao[:]) mix := [32]byte{} for i := range mix { mix[i] = randaoMixes[i] ^ randaoHash[i] @@ -849,7 +846,7 @@ func (I *impl) ProcessSlots(s abstract.BeaconState, slot uint64) error { beaconConfig := s.BeaconConfig() sSlot := s.Slot() if slot <= sSlot { - return fmt.Errorf("new slot: %d not greater than s slot: %d", slot, sSlot) + return fmt.Errorf("new slot: %d not greater than current slot: %d", slot, sSlot) } // Process each slot. for i := sSlot; i < slot; i++ { @@ -857,15 +854,15 @@ func (I *impl) ProcessSlots(s abstract.BeaconState, slot uint64) error { if err != nil { return fmt.Errorf("unable to process slot transition: %v", err) } - // TODO(Someone): Add epoch transition. + if (sSlot+1)%beaconConfig.SlotsPerEpoch == 0 { start := time.Now() if err := statechange.ProcessEpoch(s); err != nil { return err } - log.Debug("Processed new epoch successfully", "epoch", state.Epoch(s), "process_epoch_elpsed", time.Since(start)) + log.Trace("Processed new epoch successfully", "epoch", state.Epoch(s), "process_epoch_elpsed", time.Since(start)) } - // TODO: add logic to process epoch updates. + sSlot += 1 s.SetSlot(sSlot) if sSlot%beaconConfig.SlotsPerEpoch != 0 { diff --git a/cl/transition/impl/eth2/statechange/finalization_and_justification.go b/cl/transition/impl/eth2/statechange/finalization_and_justification.go index 97844b569cf..b590ebd69e0 100644 --- a/cl/transition/impl/eth2/statechange/finalization_and_justification.go +++ b/cl/transition/impl/eth2/statechange/finalization_and_justification.go @@ -59,16 +59,15 @@ func weighJustificationAndFinalization(s abstract.BeaconState, previousEpochTarg return nil } -func ProcessJustificationBitsAndFinality(s abstract.BeaconState) error { +func ProcessJustificationBitsAndFinality(s abstract.BeaconState, unslashedParticipatingIndicies [][]bool) error { currentEpoch := state.Epoch(s) - previousEpoch := state.PreviousEpoch(s) beaconConfig := s.BeaconConfig() // Skip for first 2 epochs if currentEpoch <= beaconConfig.GenesisEpoch+1 { return nil } var previousTargetBalance, currentTargetBalance uint64 - + previousEpoch := state.PreviousEpoch(s) if s.Version() == clparams.Phase0Version { var err error s.ForEachValidator(func(validator solid.Validator, idx, total int) bool { @@ -99,18 +98,24 @@ func ProcessJustificationBitsAndFinality(s abstract.BeaconState) error { } } else { // Use bitlists to determine finality. - previousParticipation, currentParticipation := s.EpochParticipation(false), s.EpochParticipation(true) + currentParticipation, previousParticipation := s.EpochParticipation(true), s.EpochParticipation(false) s.ForEachValidator(func(validator solid.Validator, i, total int) bool { if validator.Slashed() { return true } - if validator.Active(previousEpoch) && + effectiveBalance := validator.EffectiveBalance() + if unslashedParticipatingIndicies != nil { + if unslashedParticipatingIndicies[beaconConfig.TimelyTargetFlagIndex][i] { + previousTargetBalance += effectiveBalance + } + } else if validator.Active(previousEpoch) && cltypes.ParticipationFlags(previousParticipation.Get(i)).HasFlag(int(beaconConfig.TimelyTargetFlagIndex)) { - previousTargetBalance += validator.EffectiveBalance() + previousTargetBalance += effectiveBalance } + if validator.Active(currentEpoch) && cltypes.ParticipationFlags(currentParticipation.Get(i)).HasFlag(int(beaconConfig.TimelyTargetFlagIndex)) { - currentTargetBalance += validator.EffectiveBalance() + currentTargetBalance += effectiveBalance } return true }) diff --git a/cl/transition/impl/eth2/statechange/process_epoch.go b/cl/transition/impl/eth2/statechange/process_epoch.go index ffae063d98e..304a218ebc7 100644 --- a/cl/transition/impl/eth2/statechange/process_epoch.go +++ b/cl/transition/impl/eth2/statechange/process_epoch.go @@ -3,45 +3,83 @@ package statechange import ( "github.com/ledgerwatch/erigon/cl/abstract" "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" ) +func GetUnslashedIndiciesSet(s abstract.BeaconState) [][]bool { + if s.Version() == clparams.Phase0Version { + return nil + } + weights := s.BeaconConfig().ParticipationWeights() + flagsUnslashedIndiciesSet := make([][]bool, len(weights)) + for i := range weights { + flagsUnslashedIndiciesSet[i] = make([]bool, s.ValidatorLength()) + } + previousEpoch := state.PreviousEpoch(s) + + s.ForEachValidator(func(validator solid.Validator, validatorIndex, total int) bool { + for i := range weights { + flagsUnslashedIndiciesSet[i][validatorIndex] = state.IsUnslashedParticipatingIndex(s, previousEpoch, uint64(validatorIndex), i) + } + return true + }) + return flagsUnslashedIndiciesSet +} + // ProcessEpoch process epoch transition. -func ProcessEpoch(state abstract.BeaconState) error { - if err := ProcessJustificationBitsAndFinality(state); err != nil { +func ProcessEpoch(s abstract.BeaconState) error { + eligibleValidators := state.EligibleValidatorsIndicies(s) + // start := time.Now() + + unslashedIndiciesSet := GetUnslashedIndiciesSet(s) + if err := ProcessJustificationBitsAndFinality(s, unslashedIndiciesSet); err != nil { return err } - if state.Version() >= clparams.AltairVersion { - if err := ProcessInactivityScores(state); err != nil { + // fmt.Println("ProcessJustificationBitsAndFinality", time.Since(start)) + // start = time.Now() + + if s.Version() >= clparams.AltairVersion { + if err := ProcessInactivityScores(s, eligibleValidators, unslashedIndiciesSet); err != nil { return err } } - if err := ProcessRewardsAndPenalties(state); err != nil { + // fmt.Println("ProcessInactivityScores", time.Since(start)) + // start = time.Now() + if err := ProcessRewardsAndPenalties(s, eligibleValidators, unslashedIndiciesSet); err != nil { return err } - if err := ProcessRegistryUpdates(state); err != nil { + // fmt.Println("ProcessRewardsAndPenalties", time.Since(start)) + // start = time.Now() + if err := ProcessRegistryUpdates(s); err != nil { return err } - if err := ProcessSlashings(state); err != nil { + // fmt.Println("ProcessRegistryUpdates", time.Since(start)) + // start = time.Now() + if err := ProcessSlashings(s); err != nil { return err } - ProcessEth1DataReset(state) - if err := ProcessEffectiveBalanceUpdates(state); err != nil { + // fmt.Println("ProcessSlashings", time.Since(start)) + ProcessEth1DataReset(s) + // start = time.Now() + if err := ProcessEffectiveBalanceUpdates(s); err != nil { return err } - ProcessSlashingsReset(state) - ProcessRandaoMixesReset(state) - if err := ProcessHistoricalRootsUpdate(state); err != nil { + // fmt.Println("ProcessEffectiveBalanceUpdates", time.Since(start)) + ProcessSlashingsReset(s) + ProcessRandaoMixesReset(s) + if err := ProcessHistoricalRootsUpdate(s); err != nil { return err } - if state.Version() == clparams.Phase0Version { - if err := ProcessParticipationRecordUpdates(state); err != nil { + if s.Version() == clparams.Phase0Version { + if err := ProcessParticipationRecordUpdates(s); err != nil { return err } } - if state.Version() >= clparams.AltairVersion { - ProcessParticipationFlagUpdates(state) - if err := ProcessSyncCommitteeUpdate(state); err != nil { + if s.Version() >= clparams.AltairVersion { + ProcessParticipationFlagUpdates(s) + if err := ProcessSyncCommitteeUpdate(s); err != nil { return err } } diff --git a/cl/transition/impl/eth2/statechange/process_epoch_test.go b/cl/transition/impl/eth2/statechange/process_epoch_test.go index dba790e89b7..18c7377afff 100644 --- a/cl/transition/impl/eth2/statechange/process_epoch_test.go +++ b/cl/transition/impl/eth2/statechange/process_epoch_test.go @@ -2,9 +2,10 @@ package statechange import ( _ "embed" - "github.com/ledgerwatch/erigon/cl/abstract" "testing" + "github.com/ledgerwatch/erigon/cl/abstract" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/utils" @@ -90,7 +91,7 @@ var startingSlashingsResetState []byte func TestProcessRewardsAndPenalties(t *testing.T) { runEpochTransitionConsensusTest(t, startingRewardsPenaltyState, expectedRewardsPenaltyState, func(s abstract.BeaconState) error { - return ProcessRewardsAndPenalties(s) + return ProcessRewardsAndPenalties(s, state.EligibleValidatorsIndicies(s), GetUnslashedIndiciesSet(s)) }) } @@ -127,7 +128,7 @@ func TestProcessSlashings(t *testing.T) { func TestProcessJustificationAndFinality(t *testing.T) { runEpochTransitionConsensusTest(t, startingJustificationAndFinalityState, expectedJustificationAndFinalityState, func(s abstract.BeaconState) error { - return ProcessJustificationBitsAndFinality(s) + return ProcessJustificationBitsAndFinality(s, nil) }) } @@ -160,6 +161,6 @@ var startingInactivityScoresState []byte func TestInactivityScores(t *testing.T) { runEpochTransitionConsensusTest(t, startingInactivityScoresState, expectedInactivityScoresState, func(s abstract.BeaconState) error { - return ProcessInactivityScores(s) + return ProcessInactivityScores(s, state.EligibleValidatorsIndicies(s), GetUnslashedIndiciesSet(s)) }) } diff --git a/cl/transition/impl/eth2/statechange/process_historical_roots_update.go b/cl/transition/impl/eth2/statechange/process_historical_roots_update.go index c6aa216db85..0f48fe6bee0 100644 --- a/cl/transition/impl/eth2/statechange/process_historical_roots_update.go +++ b/cl/transition/impl/eth2/statechange/process_historical_roots_update.go @@ -37,7 +37,7 @@ func ProcessHistoricalRootsUpdate(s abstract.BeaconState) error { StateSummaryRoot: stateRootsLeaf, }) } else { - historicalRoot := utils.Keccak256(blockRootsLeaf[:], stateRootsLeaf[:]) + historicalRoot := utils.Sha256(blockRootsLeaf[:], stateRootsLeaf[:]) s.AddHistoricalRoot(historicalRoot) } diff --git a/cl/transition/impl/eth2/statechange/process_inactivity_scores.go b/cl/transition/impl/eth2/statechange/process_inactivity_scores.go index d55250b6b31..bc81c5de789 100644 --- a/cl/transition/impl/eth2/statechange/process_inactivity_scores.go +++ b/cl/transition/impl/eth2/statechange/process_inactivity_scores.go @@ -7,18 +7,18 @@ import ( ) // ProcessInactivityScores will updates the inactivity registry of each validator. -func ProcessInactivityScores(s abstract.BeaconState) error { +func ProcessInactivityScores(s abstract.BeaconState, eligibleValidatorsIndicies []uint64, unslashedIndicies [][]bool) error { if state.Epoch(s) == s.BeaconConfig().GenesisEpoch { return nil } - previousEpoch := state.PreviousEpoch(s) - for _, validatorIndex := range state.EligibleValidatorsIndicies(s) { + + for _, validatorIndex := range eligibleValidatorsIndicies { // retrieve validator inactivity score index. score, err := s.ValidatorInactivityScore(int(validatorIndex)) if err != nil { return err } - if state.IsUnslashedParticipatingIndex(s, previousEpoch, validatorIndex, int(s.BeaconConfig().TimelyTargetFlagIndex)) { + if unslashedIndicies[s.BeaconConfig().TimelyTargetFlagIndex][validatorIndex] { score -= utils.Min64(1, score) } else { score += s.BeaconConfig().InactivityScoreBias diff --git a/cl/transition/impl/eth2/statechange/process_registry_updates.go b/cl/transition/impl/eth2/statechange/process_registry_updates.go index 64915c1d88b..c22c442266b 100644 --- a/cl/transition/impl/eth2/statechange/process_registry_updates.go +++ b/cl/transition/impl/eth2/statechange/process_registry_updates.go @@ -1,9 +1,10 @@ package statechange import ( - "github.com/ledgerwatch/erigon/cl/abstract" "sort" + "github.com/ledgerwatch/erigon/cl/abstract" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/core/state" @@ -15,26 +16,38 @@ func computeActivationExitEpoch(beaconConfig *clparams.BeaconChainConfig, epoch return epoch + 1 + beaconConfig.MaxSeedLookahead } +type minimizeQueuedValidator struct { + validatorIndex uint64 + activationEligibilityEpoch uint64 +} + // ProcessRegistyUpdates updates every epoch the activation status of validators. Specs at: https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#registry-updates. func ProcessRegistryUpdates(s abstract.BeaconState) error { beaconConfig := s.BeaconConfig() currentEpoch := state.Epoch(s) // start also initializing the activation queue. - activationQueue := make([]uint64, 0) + activationQueue := make([]minimizeQueuedValidator, 0) // Process activation eligibility and ejections. var err error s.ForEachValidator(func(validator solid.Validator, validatorIndex, total int) bool { - if state.IsValidatorEligibleForActivationQueue(s, validator) { + activationEligibilityEpoch := validator.ActivationEligibilityEpoch() + effectivaBalance := validator.EffectiveBalance() + if activationEligibilityEpoch == s.BeaconConfig().FarFutureEpoch && + validator.EffectiveBalance() == s.BeaconConfig().MaxEffectiveBalance { s.SetActivationEligibilityEpochForValidatorAtIndex(validatorIndex, currentEpoch+1) } - if validator.Active(currentEpoch) && validator.EffectiveBalance() <= beaconConfig.EjectionBalance { + if validator.Active(currentEpoch) && effectivaBalance <= beaconConfig.EjectionBalance { if err = s.InitiateValidatorExit(uint64(validatorIndex)); err != nil { return false } } // Insert in the activation queue in case. - if state.IsValidatorEligibleForActivation(s, validator) { - activationQueue = append(activationQueue, uint64(validatorIndex)) + if activationEligibilityEpoch <= s.FinalizedCheckpoint().Epoch() && + validator.ActivationEpoch() == s.BeaconConfig().FarFutureEpoch { + activationQueue = append(activationQueue, minimizeQueuedValidator{ + validatorIndex: uint64(validatorIndex), + activationEligibilityEpoch: activationEligibilityEpoch, + }) } return true }) @@ -44,20 +57,18 @@ func ProcessRegistryUpdates(s abstract.BeaconState) error { // order the queue accordingly. sort.Slice(activationQueue, func(i, j int) bool { // Order by the sequence of activation_eligibility_epoch setting and then index. - validatori, _ := s.ValidatorForValidatorIndex(int(activationQueue[i])) - validatorj, _ := s.ValidatorForValidatorIndex(int(activationQueue[j])) - if validatori.ActivationEligibilityEpoch() != validatorj.ActivationEligibilityEpoch() { - return validatori.ActivationEligibilityEpoch() < validatorj.ActivationEligibilityEpoch() + if activationQueue[i].activationEligibilityEpoch != activationQueue[j].activationEligibilityEpoch { + return activationQueue[i].activationEligibilityEpoch < activationQueue[j].activationEligibilityEpoch } - return activationQueue[i] < activationQueue[j] + return activationQueue[i].validatorIndex < activationQueue[j].validatorIndex }) activationQueueLength := s.GetValidatorChurnLimit() if len(activationQueue) > int(activationQueueLength) { activationQueue = activationQueue[:activationQueueLength] } // Only process up to epoch limit. - for _, validatorIndex := range activationQueue { - s.SetActivationEpochForValidatorAtIndex(int(validatorIndex), computeActivationExitEpoch(beaconConfig, currentEpoch)) + for _, entry := range activationQueue { + s.SetActivationEpochForValidatorAtIndex(int(entry.validatorIndex), computeActivationExitEpoch(beaconConfig, currentEpoch)) } return nil } diff --git a/cl/transition/impl/eth2/statechange/process_rewards_and_penalties.go b/cl/transition/impl/eth2/statechange/process_rewards_and_penalties.go index df6c5cd51bc..63788a2ec8b 100644 --- a/cl/transition/impl/eth2/statechange/process_rewards_and_penalties.go +++ b/cl/transition/impl/eth2/statechange/process_rewards_and_penalties.go @@ -7,21 +7,19 @@ import ( "github.com/ledgerwatch/erigon/cl/phase1/core/state" ) -func processRewardsAndPenaltiesPostAltair(s abstract.BeaconState) (err error) { +func processRewardsAndPenaltiesPostAltair(s abstract.BeaconState, eligibleValidators []uint64, flagsUnslashedIndiciesSet [][]bool) (err error) { beaconConfig := s.BeaconConfig() weights := beaconConfig.ParticipationWeights() - eligibleValidators := state.EligibleValidatorsIndicies(s) + // Initialize variables totalActiveBalance := s.GetTotalActiveBalance() - previousEpoch := state.PreviousEpoch(s) // Inactivity penalties denominator. inactivityPenaltyDenominator := beaconConfig.InactivityScoreBias * beaconConfig.GetPenaltyQuotient(s.Version()) // Make buffer for flag indexes total balances. flagsTotalBalances := make([]uint64, len(weights)) - // Compute all total balances for each enable unslashed validator indicies with all flags on. s.ForEachValidator(func(validator solid.Validator, validatorIndex, total int) bool { for i := range weights { - if state.IsUnslashedParticipatingIndex(s, previousEpoch, uint64(validatorIndex), i) { + if flagsUnslashedIndiciesSet[i][validatorIndex] { flagsTotalBalances[i] += validator.EffectiveBalance() } } @@ -34,27 +32,24 @@ func processRewardsAndPenaltiesPostAltair(s abstract.BeaconState) (err error) { } rewardDenominator := (totalActiveBalance / beaconConfig.EffectiveBalanceIncrement) * beaconConfig.WeightDenominator var baseReward uint64 + inactivityLeaking := state.InactivityLeaking(s) // Now process deltas and whats nots. for _, index := range eligibleValidators { baseReward, err = s.BaseReward(index) if err != nil { return } + delta := int64(0) for flagIdx := range weights { - if state.IsUnslashedParticipatingIndex(s, previousEpoch, index, flagIdx) { - if !state.InactivityLeaking(s) { - rewardNumerator := baseReward * rewardMultipliers[flagIdx] - if err := state.IncreaseBalance(s, index, rewardNumerator/rewardDenominator); err != nil { - return err - } + if flagsUnslashedIndiciesSet[flagIdx][index] { + if !inactivityLeaking { + delta += int64((baseReward * rewardMultipliers[flagIdx]) / rewardDenominator) } } else if flagIdx != int(beaconConfig.TimelyHeadFlagIndex) { - if err := state.DecreaseBalance(s, index, baseReward*weights[flagIdx]/beaconConfig.WeightDenominator); err != nil { - return err - } + delta -= int64(baseReward * weights[flagIdx] / beaconConfig.WeightDenominator) } } - if !state.IsUnslashedParticipatingIndex(s, previousEpoch, index, int(beaconConfig.TimelyTargetFlagIndex)) { + if !flagsUnslashedIndiciesSet[beaconConfig.TimelyTargetFlagIndex][index] { inactivityScore, err := s.ValidatorInactivityScore(int(index)) if err != nil { return err @@ -64,19 +59,25 @@ func processRewardsAndPenaltiesPostAltair(s abstract.BeaconState) (err error) { if err != nil { return err } - state.DecreaseBalance(s, index, (effectiveBalance*inactivityScore)/inactivityPenaltyDenominator) + delta -= int64((effectiveBalance * inactivityScore) / inactivityPenaltyDenominator) + } + if delta > 0 { + if err := state.IncreaseBalance(s, index, uint64(delta)); err != nil { + return err + } + } else if err := state.DecreaseBalance(s, index, uint64(-delta)); err != nil { + return err } } return } // processRewardsAndPenaltiesPhase0 process rewards and penalties for phase0 state. -func processRewardsAndPenaltiesPhase0(s abstract.BeaconState) (err error) { +func processRewardsAndPenaltiesPhase0(s abstract.BeaconState, eligibleValidators []uint64) (err error) { beaconConfig := s.BeaconConfig() if state.Epoch(s) == beaconConfig.GenesisEpoch { return nil } - eligibleValidators := state.EligibleValidatorsIndicies(s) // Initialize variables rewardDenominator := s.GetTotalActiveBalance() / beaconConfig.EffectiveBalanceIncrement // Make buffer for flag indexes totTargetal balances. @@ -150,49 +151,34 @@ func processRewardsAndPenaltiesPhase0(s abstract.BeaconState) (err error) { } missed = 3 - attested } - + currentBalance, err := s.ValidatorBalance(int(index)) + if err != nil { + return err + } // If we attested then we reward the validator. if state.InactivityLeaking(s) { - if err := state.IncreaseBalance(s, index, baseReward*attested); err != nil { - return err - } + currentBalance += baseReward * attested } else { if !currentValidator.Slashed() && previousMatchingSourceAttester { - rewardNumerator := baseReward * unslashedMatchingSourceBalanceIncrements - if err := state.IncreaseBalance(s, index, rewardNumerator/rewardDenominator); err != nil { - return err - } + currentBalance += (baseReward * unslashedMatchingSourceBalanceIncrements) / rewardDenominator } if !currentValidator.Slashed() && previousMatchingTargetAttester { - rewardNumerator := baseReward * unslashedMatchingTargetBalanceIncrements - if err := state.IncreaseBalance(s, index, rewardNumerator/rewardDenominator); err != nil { - return err - } + currentBalance += (baseReward * unslashedMatchingTargetBalanceIncrements) / rewardDenominator } if !currentValidator.Slashed() && previousMatchingHeadAttester { - rewardNumerator := baseReward * unslashedMatchingHeadBalanceIncrements - if err := state.IncreaseBalance(s, index, rewardNumerator/rewardDenominator); err != nil { - return err - } + currentBalance += (baseReward * unslashedMatchingHeadBalanceIncrements) / rewardDenominator } } // Process inactivity of the network as a whole finalities. if state.InactivityLeaking(s) { proposerReward := baseReward / beaconConfig.ProposerRewardQuotient - // Neutralize rewards. - if state.DecreaseBalance(s, index, beaconConfig.BaseRewardsPerEpoch*baseReward-proposerReward); err != nil { - return err - } + currentBalance -= beaconConfig.BaseRewardsPerEpoch*baseReward - proposerReward if currentValidator.Slashed() || !previousMatchingTargetAttester { - // Increase penalities linearly if network is leaking. - if state.DecreaseBalance(s, index, currentValidator.EffectiveBalance()*state.FinalityDelay(s)/beaconConfig.InactivityPenaltyQuotient); err != nil { - return err - } + currentBalance -= currentValidator.EffectiveBalance() * state.FinalityDelay(s) / beaconConfig.InactivityPenaltyQuotient } } - - // For each missed duty we penalize the validator. - if state.DecreaseBalance(s, index, baseReward*missed); err != nil { + currentBalance -= baseReward * missed + if err = s.SetValidatorBalance(int(index), currentBalance); err != nil { return err } @@ -234,12 +220,12 @@ func processRewardsAndPenaltiesPhase0(s abstract.BeaconState) (err error) { } // ProcessRewardsAndPenalties applies rewards/penalties accumulated during previous epoch. -func ProcessRewardsAndPenalties(s abstract.BeaconState) error { +func ProcessRewardsAndPenalties(s abstract.BeaconState, eligibleValidators []uint64, unslashedIndicies [][]bool) error { if state.Epoch(s) == s.BeaconConfig().GenesisEpoch { return nil } if s.Version() == clparams.Phase0Version { - return processRewardsAndPenaltiesPhase0(s) + return processRewardsAndPenaltiesPhase0(s, eligibleValidators) } - return processRewardsAndPenaltiesPostAltair(s) + return processRewardsAndPenaltiesPostAltair(s, eligibleValidators, unslashedIndicies) } diff --git a/cl/transition/impl/eth2/statechange/process_slashings.go b/cl/transition/impl/eth2/statechange/process_slashings.go index 0d33f6a1bf9..745994ceada 100644 --- a/cl/transition/impl/eth2/statechange/process_slashings.go +++ b/cl/transition/impl/eth2/statechange/process_slashings.go @@ -44,43 +44,6 @@ func processSlashings(s abstract.BeaconState, slashingMultiplier uint64) error { return nil } -func processSlashings2(s abstract.BeaconState, slashingMultiplier uint64) error { - // Get the current epoch - epoch := state.Epoch(s) - // Get the total active balance - totalBalance := s.GetTotalActiveBalance() - // Calculate the total slashing amount - // by summing all slashings and multiplying by the provided multiplier - slashing := state.GetTotalSlashingAmount(s) * slashingMultiplier - // Adjust the total slashing amount to be no greater than the total active balance - if totalBalance < slashing { - slashing = totalBalance - } - beaconConfig := s.BeaconConfig() - // Apply penalties to validators who have been slashed and reached the withdrawable epoch - var err error - s.ForEachValidator(func(validator solid.Validator, i, total int) bool { - if !validator.Slashed() || epoch+beaconConfig.EpochsPerSlashingsVector/2 != validator.WithdrawableEpoch() { - return true - } - // Get the effective balance increment - increment := beaconConfig.EffectiveBalanceIncrement - // Calculate the penalty numerator by multiplying the validator's effective balance by the total slashing amount - penaltyNumerator := validator.EffectiveBalance() / increment * slashing - // Calculate the penalty by dividing the penalty numerator by the total balance and multiplying by the increment - penalty := penaltyNumerator / totalBalance * increment - // Decrease the validator's balance by the calculated penalty - if err = state.DecreaseBalance(s, uint64(i), penalty); err != nil { - return false - } - return true - }) - if err != nil { - return err - } - return nil -} - func ProcessSlashings(state abstract.BeaconState) error { // Depending on the version of the state, use different multipliers switch state.Version() { diff --git a/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go b/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go index a7f4b62fe5f..79f646e1c19 100644 --- a/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go +++ b/cl/transition/impl/eth2/statechange/process_sync_committee_update_test.go @@ -2,13 +2,13 @@ package statechange_test import ( "encoding/binary" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cl/transition/impl/eth2/statechange" "testing" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/common" "github.com/stretchr/testify/require" ) diff --git a/cl/transition/impl/eth2/utils.go b/cl/transition/impl/eth2/utils.go index a23addfb70c..13078d7d076 100644 --- a/cl/transition/impl/eth2/utils.go +++ b/cl/transition/impl/eth2/utils.go @@ -15,7 +15,7 @@ const VERSIONED_HASH_VERSION_KZG byte = byte(1) func kzgCommitmentToVersionedHash(kzgCommitment *cltypes.KZGCommitment) (libcommon.Hash, error) { versionedHash := [32]byte{} - kzgCommitmentHash := utils.Keccak256(kzgCommitment[:]) + kzgCommitmentHash := utils.Sha256(kzgCommitment[:]) buf := append([]byte{}, VERSIONED_HASH_VERSION_KZG) buf = append(buf, kzgCommitmentHash[1:]...) @@ -61,7 +61,7 @@ func txPeekBlobVersionedHashes(txBytes []byte) []libcommon.Hash { func computeSigningRootEpoch(epoch uint64, domain []byte) (libcommon.Hash, error) { b := make([]byte, 32) binary.LittleEndian.PutUint64(b, epoch) - return utils.Keccak256(b, domain), nil + return utils.Sha256(b, domain), nil } // transitionSlot is called each time there is a new slot to process diff --git a/cl/transition/impl/eth2/validation.go b/cl/transition/impl/eth2/validation.go index 8ffd58e43f1..8930134b8f2 100644 --- a/cl/transition/impl/eth2/validation.go +++ b/cl/transition/impl/eth2/validation.go @@ -2,6 +2,7 @@ package eth2 import ( "fmt" + "github.com/Giulio2002/bls" "github.com/ledgerwatch/erigon/cl/abstract" "github.com/ledgerwatch/erigon/cl/cltypes" diff --git a/cl/transition/impl/funcmap/impl.go b/cl/transition/impl/funcmap/impl.go index ad9de7cd65c..073ef35fbce 100644 --- a/cl/transition/impl/funcmap/impl.go +++ b/cl/transition/impl/funcmap/impl.go @@ -5,7 +5,6 @@ import ( "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/cltypes/solid" "github.com/ledgerwatch/erigon/cl/transition/machine" - "github.com/ledgerwatch/erigon/core/types" ) var _ machine.Interface = (*Impl)(nil) @@ -15,7 +14,7 @@ type Impl struct { FnVerifyTransition func(s abstract.BeaconState, block *cltypes.BeaconBlock) error FnProcessSlots func(s abstract.BeaconState, slot uint64) error FnProcessBlockHeader func(s abstract.BeaconState, block *cltypes.BeaconBlock) error - FnProcessWithdrawals func(s abstract.BeaconState, withdrawals *solid.ListSSZ[*types.Withdrawal]) error + FnProcessWithdrawals func(s abstract.BeaconState, withdrawals *solid.ListSSZ[*cltypes.Withdrawal]) error FnProcessExecutionPayload func(s abstract.BeaconState, payload *cltypes.Eth1Block) error FnProcessRandao func(s abstract.BeaconState, randao [96]byte, proposerIndex uint64) error FnProcessEth1Data func(state abstract.BeaconState, eth1Data *cltypes.Eth1Data) error @@ -41,7 +40,7 @@ func (i Impl) ProcessBlockHeader(s abstract.BeaconState, block *cltypes.BeaconBl return i.FnProcessBlockHeader(s, block) } -func (i Impl) ProcessWithdrawals(s abstract.BeaconState, withdrawals *solid.ListSSZ[*types.Withdrawal]) error { +func (i Impl) ProcessWithdrawals(s abstract.BeaconState, withdrawals *solid.ListSSZ[*cltypes.Withdrawal]) error { return i.FnProcessWithdrawals(s, withdrawals) } diff --git a/cl/transition/machine/block.go b/cl/transition/machine/block.go index 78a573af6aa..1bfaa452a52 100644 --- a/cl/transition/machine/block.go +++ b/cl/transition/machine/block.go @@ -3,12 +3,13 @@ package machine import ( "errors" "fmt" + + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon/cl/abstract" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/metrics/methelp" ) // ProcessBlock processes a block with the block processor @@ -19,7 +20,7 @@ func ProcessBlock(impl BlockProcessor, s abstract.BeaconState, signedBlock *clty if signedBlock.Version() != version { return fmt.Errorf("processBlock: wrong state version for block at slot %d", block.Slot) } - h := methelp.NewHistTimer("beacon_process_block") + h := metrics.NewHistTimer("beacon_process_block") // Process the block header. if err := impl.ProcessBlockHeader(s, block); err != nil { return fmt.Errorf("processBlock: failed to process block header: %v", err) diff --git a/cl/transition/machine/machine.go b/cl/transition/machine/machine.go index 7fa122c2c96..408b62bdcb6 100644 --- a/cl/transition/machine/machine.go +++ b/cl/transition/machine/machine.go @@ -5,7 +5,6 @@ import ( "github.com/ledgerwatch/erigon/cl/abstract" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/core/types" ) type Interface interface { @@ -30,7 +29,7 @@ type SlotProcessor interface { type BlockHeaderProcessor interface { ProcessBlockHeader(s abstract.BeaconState, block *cltypes.BeaconBlock) error - ProcessWithdrawals(s abstract.BeaconState, withdrawals *solid.ListSSZ[*types.Withdrawal]) error + ProcessWithdrawals(s abstract.BeaconState, withdrawals *solid.ListSSZ[*cltypes.Withdrawal]) error ProcessExecutionPayload(s abstract.BeaconState, payload *cltypes.Eth1Block) error ProcessRandao(s abstract.BeaconState, randao [96]byte, proposerIndex uint64) error ProcessEth1Data(state abstract.BeaconState, eth1Data *cltypes.Eth1Data) error diff --git a/cl/utils/bytes.go b/cl/utils/bytes.go index 417fe4b583c..387bad6f5de 100644 --- a/cl/utils/bytes.go +++ b/cl/utils/bytes.go @@ -15,6 +15,7 @@ package utils import ( "encoding/binary" + "io" "math/bits" "github.com/ledgerwatch/erigon-lib/types/ssz" @@ -103,3 +104,17 @@ func GetBitlistLength(b []byte) int { // bit. Subtract this value by 1 to determine the length of the bitlist. return 8*(len(b)-1) + msb - 1 } + +func ReadZSTD(r io.Reader, out []byte) (int, error) { + n := 0 + var err error + for n != len(out) { + var m int + m, err = r.Read(out[n:]) + n += m + if err != nil { + return n, err + } + } + return n, nil +} diff --git a/cl/utils/bytes_test.go b/cl/utils/bytes_test.go index d9f15a76124..9b61947b7f7 100644 --- a/cl/utils/bytes_test.go +++ b/cl/utils/bytes_test.go @@ -1,11 +1,11 @@ package utils_test import ( + "github.com/ledgerwatch/erigon-lib/common" "testing" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/utils" - "github.com/ledgerwatch/erigon/common" "github.com/stretchr/testify/require" ) diff --git a/cl/utils/crypto.go b/cl/utils/crypto.go index 619246dfed6..e8481d0c3ee 100644 --- a/cl/utils/crypto.go +++ b/cl/utils/crypto.go @@ -27,8 +27,8 @@ var hasherPool = sync.Pool{ }, } -// General purpose Keccak256 -func Keccak256(data []byte, extras ...[]byte) [32]byte { +// General purpose Sha256 +func Sha256(data []byte, extras ...[]byte) [32]byte { h, ok := hasherPool.Get().(hash.Hash) if !ok { h = sha256.New() @@ -46,24 +46,9 @@ func Keccak256(data []byte, extras ...[]byte) [32]byte { return b } -// Optimized Keccak256, avoid pool.put/pool.get, meant for intensive operations. -func OptimizedKeccak256() HashFunc { - h := sha256.New() - return func(data []byte, extras ...[]byte) [32]byte { - h.Reset() - var b [32]byte - h.Write(data) - for _, extra := range extras { - h.Write(extra) - } - h.Sum(b[:0]) - return b - } -} - -// Optimized Keccak256, avoid pool.put/pool.get, meant for intensive operations. +// Optimized Sha256, avoid pool.put/pool.get, meant for intensive operations. // this version is not thread safe -func OptimizedKeccak256NotThreadSafe() HashFunc { +func OptimizedSha256NotThreadSafe() HashFunc { h := sha256.New() var b [32]byte return func(data []byte, extras ...[]byte) [32]byte { diff --git a/cl/utils/crypto_test.go b/cl/utils/crypto_test.go index 6d7a9f2c0c5..ec9b80681a3 100644 --- a/cl/utils/crypto_test.go +++ b/cl/utils/crypto_test.go @@ -13,12 +13,12 @@ func TestKeccak256(t *testing.T) { []byte("extra2"), } - expectedHash := utils.Keccak256(data, extras...) - hashFunc := utils.OptimizedKeccak256() + expectedHash := utils.Sha256(data, extras...) + hashFunc := utils.OptimizedSha256NotThreadSafe() expectedOptimizedHash := hashFunc(data, extras...) // Test Keccak256 function - hash := utils.Keccak256(data, extras...) + hash := utils.Sha256(data, extras...) if hash != expectedHash { t.Errorf("Keccak256 returned an incorrect hash. Expected: %x, Got: %x", expectedHash, hash) } @@ -37,12 +37,12 @@ func TestOptimizedKeccak256NotThreadSafe(t *testing.T) { []byte("extra2"), } - expectedHash := utils.Keccak256(data, extras...) - hashFunc := utils.OptimizedKeccak256NotThreadSafe() + expectedHash := utils.Sha256(data, extras...) + hashFunc := utils.OptimizedSha256NotThreadSafe() expectedOptimizedHash := hashFunc(data, extras...) // Test OptimizedKeccak256NotThreadSafe function - hash := utils.Keccak256(data, extras...) + hash := utils.Sha256(data, extras...) if hash != expectedHash { t.Errorf("Keccak256 returned an incorrect hash. Expected: %x, Got: %x", expectedHash, hash) } diff --git a/cl/utils/merkle.go b/cl/utils/merkle.go index 2e63a59b095..a1d667975d9 100644 --- a/cl/utils/merkle.go +++ b/cl/utils/merkle.go @@ -9,9 +9,9 @@ func IsValidMerkleBranch(leaf libcommon.Hash, branch []libcommon.Hash, depth uin value := leaf for i := uint64(0); i < depth; i++ { if (index / PowerOf2(i) % 2) == 1 { - value = Keccak256(append(branch[i][:], value[:]...)) + value = Sha256(append(branch[i][:], value[:]...)) } else { - value = Keccak256(append(value[:], branch[i][:]...)) + value = Sha256(append(value[:], branch[i][:]...)) } } return value == root diff --git a/cl/utils/time.go b/cl/utils/time.go index 1d129568fd4..b9ed288f794 100644 --- a/cl/utils/time.go +++ b/cl/utils/time.go @@ -15,6 +15,12 @@ package utils import "time" +// compute time of slot. +func GetSlotTime(genesisTime uint64, secondsPerSlot uint64, slot uint64) time.Time { + slotTime := genesisTime + secondsPerSlot*slot + return time.Unix(int64(slotTime), 0) +} + // compute current slot. func GetCurrentSlot(genesisTime uint64, secondsPerSlot uint64) uint64 { now := uint64(time.Now().Unix()) diff --git a/cmd/abigen/main.go b/cmd/abigen/main.go index 6d361b48388..35d23bd1d15 100644 --- a/cmd/abigen/main.go +++ b/cmd/abigen/main.go @@ -25,6 +25,8 @@ import ( "regexp" "strings" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/log/v3" "github.com/urfave/cli/v2" @@ -180,7 +182,7 @@ func abigen(c *cli.Context) error { } else { // Generate the list of types to exclude from binding exclude := make(map[string]bool) - for _, kind := range utils.SplitAndTrim(c.String(excFlag.Name)) { + for _, kind := range common.CliString2Array(c.String(excFlag.Name)) { exclude[strings.ToLower(kind)] = true } var err error diff --git a/cmd/bootnode/main.go b/cmd/bootnode/main.go index ee1bb44e62c..eedde266ad4 100644 --- a/cmd/bootnode/main.go +++ b/cmd/bootnode/main.go @@ -117,7 +117,10 @@ func main() { printNotice(&nodeKey.PublicKey, *realaddr) - db, err := enode.OpenDB("" /* path */, "" /* tmpDir */) + ctx, cancel := common.RootContext() + defer cancel() + + db, err := enode.OpenDB(ctx, "" /* path */, "" /* tmpDir */) if err != nil { panic(err) } @@ -127,15 +130,12 @@ func main() { NetRestrict: restrictList, } - ctx, cancel := common.RootContext() - defer cancel() - if *runv5 { - if _, err := discover.ListenV5(ctx, conn, ln, cfg); err != nil { + if _, err := discover.ListenV5(ctx, "any", conn, ln, cfg); err != nil { utils.Fatalf("%v", err) } } else { - if _, err := discover.ListenUDP(ctx, conn, ln, cfg); err != nil { + if _, err := discover.ListenUDP(ctx, "any", conn, ln, cfg); err != nil { utils.Fatalf("%v", err) } } diff --git a/cmd/capcli/cli.go b/cmd/capcli/cli.go index eca589f2fa0..d6f239d2ca1 100644 --- a/cmd/capcli/cli.go +++ b/cmd/capcli/cli.go @@ -1,26 +1,81 @@ package main import ( + "context" "fmt" + "math" "os" "strings" + "time" + + "github.com/ledgerwatch/erigon/eth/ethconfig/estimate" + "github.com/ledgerwatch/erigon/turbo/debug" + + lg "github.com/anacrolix/log" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/direct" + downloader3 "github.com/ledgerwatch/erigon-lib/downloader" + "github.com/ledgerwatch/erigon-lib/metrics" + state2 "github.com/ledgerwatch/erigon-lib/state" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" + "github.com/ledgerwatch/erigon-lib/downloader" - "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" "github.com/ledgerwatch/erigon/cl/abstract" + "github.com/ledgerwatch/erigon/cl/antiquary" "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/clparams/initial_state" "github.com/ledgerwatch/erigon/cl/cltypes" + persistence2 "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cmd/caplin/caplin1" + "github.com/ledgerwatch/erigon/eth/ethconfig" + "github.com/ledgerwatch/erigon/params" + "github.com/ledgerwatch/erigon/turbo/snapshotsync" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + "github.com/ledgerwatch/erigon/cl/persistence/db_config" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format/getters" + state_accessors "github.com/ledgerwatch/erigon/cl/persistence/state" + "github.com/ledgerwatch/erigon/cl/persistence/state/historical_states_reader" + "github.com/ledgerwatch/erigon/cl/phase1/core" "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/phase1/network" + "github.com/ledgerwatch/erigon/cl/phase1/stages" "github.com/ledgerwatch/erigon/cl/rpc" + "github.com/ledgerwatch/erigon/cl/sentinel/peers" "github.com/ledgerwatch/erigon/cl/transition/impl/eth2" "github.com/ledgerwatch/erigon/cl/transition/machine" + "github.com/ledgerwatch/erigon/cl/utils" + + "github.com/jedib0t/go-pretty/v6/progress" + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" + "github.com/ledgerwatch/log/v3" "github.com/spf13/afero" + "golang.org/x/sync/errgroup" "google.golang.org/grpc" ) var CLI struct { Migrate Migrate `cmd:"" help:"migrate from one state to another"` - Blocks Blocks `cmd:"" help:"download blocks from gossip network"` + Blocks Blocks `cmd:"" help:"download blocks from reqresp network"` + Epochs Epochs `cmd:"" help:"download epochs from reqresp network"` + + Chain Chain `cmd:"" help:"download the entire chain from reqresp network"` + DumpSnapshots DumpSnapshots `cmd:"" help:"generate caplin snapshots"` + CheckSnapshots CheckSnapshots `cmd:"" help:"check snapshot folder against content of chain data"` + DownloadSnapshots DownloadSnapshots `cmd:"" help:"download snapshots from webseed"` + LoopSnapshots LoopSnapshots `cmd:"" help:"loop over snapshots"` + RetrieveHistoricalState RetrieveHistoricalState `cmd:"" help:"retrieve historical state from db"` } type chainCfg struct { @@ -33,23 +88,34 @@ func (c *chainCfg) configs() (beaconConfig *clparams.BeaconChainConfig, genesisC } type outputFolder struct { - Output string `help:"where to output to, defaults to tmp directory" default:"/tmp" short:"o"` + Datadir string `help:"datadir" default:"~/.local/share/erigon" type:"existingdir"` } type withSentinel struct { Sentinel string `help:"sentinel url" default:"localhost:7777"` } +type withPPROF struct { + Pprof bool `help:"enable pprof" default:"false"` +} + +func (w *withPPROF) withProfile() { + if w.Pprof { + debug.StartPProf("localhost:6060", metrics.Setup("localhost:6060", log.Root())) + } +} + func (w *withSentinel) connectSentinel() (sentinel.SentinelClient, error) { - gconn, err := grpc.Dial(w.Sentinel, grpc.WithInsecure()) + // YOLO message size + gconn, err := grpc.Dial(w.Sentinel, grpc.WithInsecure(), grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(math.MaxInt))) if err != nil { return nil, err } return sentinel.NewSentinelClient(gconn), nil } -func openFs(fsName string) (afero.Fs, error) { - return afero.NewBasePathFs(afero.NewOsFs(), fsName), nil +func openFs(fsName string, path string) (afero.Fs, error) { + return afero.NewBasePathFs(afero.NewBasePathFs(afero.NewOsFs(), fsName), path), nil } type Blocks struct { @@ -72,7 +138,6 @@ func (b *Blocks) Run(ctx *Context) error { } beacon := rpc.NewBeaconRpcP2P(ctx, s, beaconConfig, genesisConfig) - err = beacon.SetStatus( genesisConfig.GenesisValidatorRoot, beaconConfig.GenesisEpoch, @@ -81,43 +146,34 @@ func (b *Blocks) Run(ctx *Context) error { if err != nil { return err } + + if b.ToBlock < 0 { + b.ToBlock = int(utils.GetCurrentSlot(genesisConfig.GenesisTime, beaconConfig.SecondsPerSlot)) + } + resp, _, err := beacon.SendBeaconBlocksByRangeReq(ctx, uint64(b.FromBlock), uint64(b.ToBlock)) if err != nil { return fmt.Errorf("error get beacon blocks: %w", err) } - d, err := openFs(b.Output) + aferoFS, err := openFs(b.Datadir, "caplin/beacon") if err != nil { return err } + + db := mdbx.MustOpen("caplin/db") + if err != nil { + return err + } + defer db.Close() + + tx, err := db.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + beaconDB := persistence2.NewBeaconChainDatabaseFilesystem(persistence2.NewAferoRawBlockSaver(aferoFS, beaconConfig), nil, beaconConfig) for _, vv := range resp { - v := vv - err := func() error { - fname := fmt.Sprintf("b%08d.ssz", v.Block.Slot) - info, err := d.Stat(fname) - if err == nil { - if info.Size() > 0 { - fmt.Fprintf(os.Stderr, "skipping %s since non 0 file\n", fname) - } - } - bts, err := v.EncodeSSZ(nil) - if err != nil { - return err - } - fp, err := d.Create(fname) - if err != nil { - return err - } - defer fp.Close() - err = fp.Truncate(0) - if err != nil { - return err - } - _, err = fp.Write(bts) - if err != nil { - return err - } - return nil - }() + err := beaconDB.WriteBlock(ctx, tx, vv, true) if err != nil { return err } @@ -125,11 +181,133 @@ func (b *Blocks) Run(ctx *Context) error { return nil } +type Epochs struct { + chainCfg + outputFolder + withSentinel + + Concurrency int `help:"number of epochs to ask concurrently for" name:"concurrency" short:"c" default:"4"` + + FromEpoch int `arg:"" name:"from" default:"0"` + ToEpoch int `arg:"" name:"to" default:"-1"` +} + +func (b *Epochs) Run(cctx *Context) error { + ctx := cctx.Context + s, err := b.withSentinel.connectSentinel() + if err != nil { + return err + } + beaconConfig, genesisConfig, err := b.configs() + if err != nil { + return err + } + + aferoFS, err := openFs(b.Datadir, "caplin/beacon") + if err != nil { + return err + } + + beaconDB := persistence.NewBeaconChainDatabaseFilesystem(persistence.NewAferoRawBlockSaver(aferoFS, beaconConfig), nil, beaconConfig) + + beacon := rpc.NewBeaconRpcP2P(ctx, s, beaconConfig, genesisConfig) + rpcSource := persistence2.NewBeaconRpcSource(beacon) + + err = beacon.SetStatus( + genesisConfig.GenesisValidatorRoot, + beaconConfig.GenesisEpoch, + genesisConfig.GenesisValidatorRoot, + beaconConfig.GenesisSlot) + if err != nil { + return err + } + + if b.ToEpoch < 0 { + b.ToEpoch = int(utils.GetCurrentEpoch(genesisConfig.GenesisTime, beaconConfig.SecondsPerSlot, beaconConfig.SlotsPerEpoch)) + } + + ctx, cn := context.WithCancel(ctx) + defer cn() + egg, ctx := errgroup.WithContext(ctx) + + totalEpochs := (b.ToEpoch - b.FromEpoch + 1) + pw := progress.NewWriter() + pw.SetTrackerLength(50) + pw.SetMessageWidth(24) + pw.SetStyle(progress.StyleDefault) + pw.SetUpdateFrequency(time.Millisecond * 100) + pw.SetTrackerPosition(progress.PositionRight) + pw.Style().Visibility.Percentage = true + pw.Style().Visibility.Speed = true + pw.Style().Visibility.Value = true + pw.Style().Visibility.ETA = true + pw.Style().Visibility.ETAOverall = false + pw.Style().Visibility.Tracker = true + pw.Style().Visibility.TrackerOverall = false + pw.Style().Visibility.SpeedOverall = true + pw.Style().Options.Separator = "" + + go pw.Render() + + total := int64(uint64(totalEpochs) * beaconConfig.SlotsPerEpoch) + tk := &progress.Tracker{ + Message: fmt.Sprintf("downloading %d blocks", total), + Total: total, + Units: progress.UnitsDefault, + } + pw.AppendTracker(tk) + tk.UpdateTotal(total) + + egg.SetLimit(b.Concurrency) + + db := mdbx.MustOpen("caplin/db") + if err != nil { + return err + } + defer db.Close() + + tx, err := db.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + defer cn() + for i := b.FromEpoch; i <= b.ToEpoch; i = i + 1 { + ii := i + egg.Go(func() error { + var blocks *peers.PeeredObject[[]*cltypes.SignedBeaconBlock] + for { + blocks, err = rpcSource.GetRange(ctx, tx, uint64(ii)*beaconConfig.SlotsPerEpoch, beaconConfig.SlotsPerEpoch) + if err != nil { + log.Error("dl error", "err", err, "epoch", ii) + } else { + break + } + } + for _, v := range blocks.Data { + tk.Increment(1) + _, _ = beaconDB, v + err := beaconDB.WriteBlock(ctx, tx, v, true) + if err != nil { + return err + } + } + return nil + }) + } + err = egg.Wait() + if err != nil { + return err + } + tk.MarkAsDone() + return tx.Commit() +} + type Migrate struct { outputFolder chainCfg - State string `arg:"" help:"state to start from (can be url to checkpoint or a file)"` + State string `arg:"" help:"state to start from (file or later url to checkpoint)"` Blocks []string `arg:"" name:"blocks" help:"blocks to migrate, in order" type:"path"` } @@ -163,7 +341,11 @@ func (m *Migrate) getBlock(ctx *Context, block string) (*cltypes.SignedBeaconBlo if err != nil { return nil, err } - blk := &cltypes.SignedBeaconBlock{} + b, _, err := m.chainCfg.configs() + if err != nil { + return nil, err + } + blk := cltypes.NewSignedBeaconBlock(b) err = blk.DecodeSSZ(bts, 0) if err != nil { return nil, err @@ -193,3 +375,379 @@ func (m *Migrate) Run(ctx *Context) error { } return nil } + +type Chain struct { + chainCfg + withSentinel + outputFolder +} + +func (c *Chain) Run(ctx *Context) error { + s, err := c.withSentinel.connectSentinel() + if err != nil { + return err + } + + genesisConfig, _, beaconConfig, networkType, err := clparams.GetConfigsByNetworkName(c.Chain) + if err != nil { + return err + } + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + log.Info("Started chain download", "chain", c.Chain) + + dirs := datadir.New(c.Datadir) + csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root()) + + rawDB, _ := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + defer db.Close() + + beacon := rpc.NewBeaconRpcP2P(ctx, s, beaconConfig, genesisConfig) + + bs, err := core.RetrieveBeaconState(ctx, beaconConfig, genesisConfig, clparams.GetCheckpointSyncEndpoint(networkType)) + if err != nil { + return err + } + + bRoot, err := bs.BlockRoot() + if err != nil { + return err + } + + if err := db.Update(ctx, func(tx kv.RwTx) error { + return beacon_indicies.WriteHighestFinalized(tx, bs.Slot()) + }); err != nil { + return err + } + + err = beacon.SetStatus( + genesisConfig.GenesisValidatorRoot, + beaconConfig.GenesisEpoch, + genesisConfig.GenesisValidatorRoot, + beaconConfig.GenesisSlot) + if err != nil { + return err + } + + downloader := network.NewBackwardBeaconDownloader(ctx, beacon, db) + cfg := stages.StageHistoryReconstruction(downloader, antiquary.NewAntiquary(ctx, nil, nil, nil, dirs, nil, nil, nil, nil, nil, nil, false, nil), csn, beaconDB, db, nil, genesisConfig, beaconConfig, true, true, bRoot, bs.Slot(), "/tmp", log.Root()) + return stages.SpawnStageHistoryDownload(cfg, ctx, log.Root()) +} + +type DumpSnapshots struct { + chainCfg + outputFolder +} + +func (c *DumpSnapshots) Run(ctx *Context) error { + _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain) + if err != nil { + return err + } + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + log.Info("Started chain download", "chain", c.Chain) + + dirs := datadir.New(c.Datadir) + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + + rawDB, _ := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + var to uint64 + db.View(ctx, func(tx kv.Tx) (err error) { + to, err = beacon_indicies.ReadHighestFinalized(tx) + return + }) + + return freezeblocks.DumpBeaconBlocks(ctx, db, beaconDB, 0, to, snaptype.Erigon2RecentMergeLimit, dirs.Tmp, dirs.Snap, estimate.CompressSnapshot.Workers(), log.LvlInfo, log.Root()) +} + +type CheckSnapshots struct { + chainCfg + outputFolder + withPPROF +} + +func (c *CheckSnapshots) Run(ctx *Context) error { + _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain) + if err != nil { + return err + } + c.withProfile() + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + log.Info("Started the checking process", "chain", c.Chain) + dirs := datadir.New(c.Datadir) + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + + rawDB, _ := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + _, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + var to uint64 + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + to, err = beacon_indicies.ReadHighestFinalized(tx) + if err != nil { + return err + } + + to = (to / snaptype.Erigon2RecentMergeLimit) * snaptype.Erigon2RecentMergeLimit + + csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root()) + if err := csn.ReopenFolder(); err != nil { + return err + } + + genesisHeader, _, _, err := csn.ReadHeader(0) + if err != nil { + return err + } + previousBlockRoot, err := genesisHeader.Header.HashSSZ() + if err != nil { + return err + } + previousBlockSlot := genesisHeader.Header.Slot + for i := uint64(1); i < to; i++ { + if utils.Min64(0, i-320) > previousBlockSlot { + return fmt.Errorf("snapshot %d has invalid slot", i) + } + // Checking of snapshots is a chain contiguity problem + currentHeader, _, _, err := csn.ReadHeader(i) + if err != nil { + return err + } + if currentHeader == nil { + continue + } + if currentHeader.Header.ParentRoot != previousBlockRoot { + return fmt.Errorf("snapshot %d has invalid parent root", i) + } + previousBlockRoot, err = currentHeader.Header.HashSSZ() + if err != nil { + return err + } + previousBlockSlot = currentHeader.Header.Slot + if i%2000 == 0 { + log.Info("Successfully checked", "slot", i) + } + } + return nil +} + +type LoopSnapshots struct { + chainCfg + outputFolder + withPPROF + + Slot uint64 `name:"slot" help:"slot to check"` +} + +func (c *LoopSnapshots) Run(ctx *Context) error { + c.withProfile() + + _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain) + if err != nil { + return err + } + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + log.Info("Started the checking process", "chain", c.Chain) + + dirs := datadir.New(c.Datadir) + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + + rawDB, _ := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + var to uint64 + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + to, err = beacon_indicies.ReadHighestFinalized(tx) + if err != nil { + return err + } + + to = (to / snaptype.Erigon2RecentMergeLimit) * snaptype.Erigon2RecentMergeLimit + + csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root()) + if err := csn.ReopenFolder(); err != nil { + return err + } + + br := &snapshot_format.MockBlockReader{} + snReader := freezeblocks.NewBeaconSnapshotReader(csn, br, beaconDB, beaconConfig) + start := time.Now() + for i := c.Slot; i < to; i++ { + snReader.ReadBlockBySlot(ctx, tx, i) + } + log.Info("Successfully checked", "slot", c.Slot, "time", time.Since(start)) + return nil +} + +type DownloadSnapshots struct { + chainCfg + outputFolder +} + +func (d *DownloadSnapshots) Run(ctx *Context) error { + webSeeds := snapcfg.KnownWebseeds[d.Chain] + dirs := datadir.New(d.Datadir) + + _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(d.Chain) + if err != nil { + return err + } + + rawDB, _ := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + + _, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + tx, err := db.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + downloadRate, err := datasize.ParseString("16mb") + if err != nil { + return err + } + + uploadRate, err := datasize.ParseString("0mb") + if err != nil { + return err + } + version := "erigon: " + params.VersionWithCommit(params.GitCommit) + + downloaderCfg, err := downloadercfg.New(dirs, version, lg.Info, downloadRate, uploadRate, 42069, 10, 3, nil, webSeeds, d.Chain) + if err != nil { + return err + } + downloaderCfg.DownloadTorrentFilesFromWebseed = true + downlo, err := downloader.New(ctx, downloaderCfg, dirs, log.Root(), log.LvlInfo, true) + if err != nil { + return err + } + s, err := state2.NewAggregatorV3(ctx, dirs.Tmp, dirs.Tmp, 200000, db, log.Root()) + if err != nil { + return err + } + downlo.MainLoopInBackground(false) + bittorrentServer, err := downloader3.NewGrpcServer(downlo) + if err != nil { + return fmt.Errorf("new server: %w", err) + } + return snapshotsync.WaitForDownloader("CapCliDownloader", ctx, false, snapshotsync.OnlyCaplin, s, tx, freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.NewSnapCfg(false, false, false), dirs.Snap, log.Root()), freezeblocks.NewBorRoSnapshots(ethconfig.NewSnapCfg(false, false, false), dirs.Snap, log.Root())), params.ChainConfigByChainName(d.Chain), direct.NewDownloaderClient(bittorrentServer)) +} + +type RetrieveHistoricalState struct { + chainCfg + outputFolder + CompareFile string `help:"compare file" default:""` + CompareSlot uint64 `help:"compare slot" default:"0"` +} + +func (r *RetrieveHistoricalState) Run(ctx *Context) error { + vt := state_accessors.NewStaticValidatorTable() + _, _, beaconConfig, t, err := clparams.GetConfigsByNetworkName(r.Chain) + if err != nil { + return err + } + dirs := datadir.New(r.Datadir) + rawDB, fs := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + beaconDB, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + allSnapshots := freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root()) + if err := allSnapshots.ReopenFolder(); err != nil { + return err + } + if err := state_accessors.ReadValidatorsTable(tx, vt); err != nil { + return err + } + fmt.Println(allSnapshots.BlocksAvailable(), allSnapshots.Dir()) + + var bor *freezeblocks.BorRoSnapshots + blockReader := freezeblocks.NewBlockReader(allSnapshots, bor) + eth1Getter := getters.NewExecutionSnapshotReader(ctx, blockReader, db) + csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root()) + if err := csn.ReopenFolder(); err != nil { + return err + } + snr := freezeblocks.NewBeaconSnapshotReader(csn, eth1Getter, beaconDB, beaconConfig) + gSpot, err := initial_state.GetGenesisState(t) + if err != nil { + return err + } + + hr := historical_states_reader.NewHistoricalStatesReader(beaconConfig, snr, vt, fs, gSpot) + start := time.Now() + haveState, err := hr.ReadHistoricalState(ctx, tx, r.CompareSlot) + if err != nil { + return err + } + + v := haveState.Version() + // encode and decode the state + enc, err := haveState.EncodeSSZ(nil) + if err != nil { + return err + } + haveState = state.New(beaconConfig) + if err := haveState.DecodeSSZ(enc, int(v)); err != nil { + return err + } + endTime := time.Since(start) + hRoot, err := haveState.HashSSZ() + if err != nil { + return err + } + log.Info("Got state", "slot", haveState.Slot(), "root", libcommon.Hash(hRoot), "elapsed", endTime) + if r.CompareFile == "" { + return nil + } + // Read the content of CompareFile in a []byte without afero + rawBytes, err := os.ReadFile(r.CompareFile) + if err != nil { + return err + } + // Decode the []byte into a state + wantState := state.New(beaconConfig) + if err := wantState.DecodeSSZ(rawBytes, int(haveState.Version())); err != nil { + return err + } + wRoot, err := wantState.HashSSZ() + if err != nil { + return err + } + if hRoot != wRoot { + return fmt.Errorf("state mismatch: got %s, want %s", libcommon.Hash(hRoot), libcommon.Hash(wRoot)) + } + return nil +} diff --git a/cmd/caplin-phase1/caplin1/run.go b/cmd/caplin-phase1/caplin1/run.go deleted file mode 100644 index b867c25b2d7..00000000000 --- a/cmd/caplin-phase1/caplin1/run.go +++ /dev/null @@ -1,48 +0,0 @@ -package caplin1 - -import ( - "context" - - "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/cl/freezer" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/phase1/execution_client" - "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" - network2 "github.com/ledgerwatch/erigon/cl/phase1/network" - "github.com/ledgerwatch/erigon/cl/phase1/stages" - - "github.com/Giulio2002/bls" - "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/rpc" - "github.com/ledgerwatch/log/v3" - - "github.com/ledgerwatch/erigon/eth/stagedsync" -) - -func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, - engine execution_client.ExecutionEngine, state *state.CachingBeaconState, caplinFreezer freezer.Freezer) error { - beaconRpc := rpc.NewBeaconRpcP2P(ctx, sentinel, beaconConfig, genesisConfig) - downloader := network2.NewForwardBeaconDownloader(ctx, beaconRpc) - - if caplinFreezer != nil { - if err := freezer.PutObjectSSZIntoFreezer("beaconState", "caplin_core", 0, state, caplinFreezer); err != nil { - return err - } - } - forkChoice, err := forkchoice.NewForkChoiceStore(state, engine, caplinFreezer, true) - if err != nil { - log.Error("Could not create forkchoice", "err", err) - return err - } - bls.SetEnabledCaching(true) - state.ForEachValidator(func(v solid.Validator, idx, total int) bool { - pk := v.PublicKey() - if err := bls.LoadPublicKeyIntoCache(pk[:], false); err != nil { - panic(err) - } - return true - }) - gossipManager := network2.NewGossipReceiver(ctx, sentinel, forkChoice, beaconConfig, genesisConfig, caplinFreezer) - return stages.SpawnStageForkChoice(stages.StageForkChoice(nil, downloader, genesisConfig, beaconConfig, state, nil, gossipManager, forkChoice, caplinFreezer), &stagedsync.StageState{ID: "Caplin"}, nil, ctx) -} diff --git a/cmd/caplin-regression/main.go b/cmd/caplin-regression/main.go index 7a3abb9c9ca..c9a6d7a9343 100644 --- a/cmd/caplin-regression/main.go +++ b/cmd/caplin-regression/main.go @@ -2,11 +2,12 @@ package main import ( "flag" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" "github.com/ledgerwatch/erigon/turbo/debug" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" "github.com/ledgerwatch/erigon/cmd/caplin-regression/regression" "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" @@ -42,7 +43,7 @@ func main() { ) if *pprof { // Server for pprof - debug.StartPProf("localhost:6060", true) + debug.StartPProf("localhost:6060", metrics.Setup("localhost:6060", log.Root())) } if err != nil { diff --git a/cmd/caplin-regression/regression/reader.go b/cmd/caplin-regression/regression/reader.go index 723a82aea38..c21f72a2adf 100644 --- a/cmd/caplin-regression/regression/reader.go +++ b/cmd/caplin-regression/regression/reader.go @@ -2,24 +2,24 @@ package regression import ( "io/fs" - "io/ioutil" + "os" "path" "path/filepath" "sort" - "github.com/ledgerwatch/erigon/cl/clparams" + clparams2 "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/phase1/core/state" "github.com/ledgerwatch/erigon/cl/utils" ) func (r *RegressionTester) readStartingState() (*state.CachingBeaconState, error) { - stateFile, err := ioutil.ReadFile(path.Join(r.testDirectory, regressionPath, startingStatePath)) + stateFile, err := os.ReadFile(path.Join(r.testDirectory, regressionPath, startingStatePath)) if err != nil { return nil, err } - s := state.New(&clparams.MainnetBeaconConfig) - if err := utils.DecodeSSZSnappy(s, stateFile, int(clparams.CapellaVersion)); err != nil { + s := state.New(&clparams2.MainnetBeaconConfig) + if err := utils.DecodeSSZSnappy(s, stateFile, int(clparams2.CapellaVersion)); err != nil { return nil, err } return s, nil @@ -34,12 +34,12 @@ func (r *RegressionTester) initBlocks() error { if info == nil || info.IsDir() || info.Name() != "data.bin" { return nil } - f, err := ioutil.ReadFile(path) + f, err := os.ReadFile(path) if err != nil { return err } b := new(cltypes.SignedBeaconBlock) - if err := utils.DecodeSSZSnappy(b, f, int(clparams.CapellaVersion)); err != nil { + if err := utils.DecodeSSZSnappy(b, f, int(clparams2.CapellaVersion)); err != nil { return err } r.blockList = append(r.blockList, b) diff --git a/cmd/caplin-regression/regression/tester.go b/cmd/caplin-regression/regression/tester.go index 4003e04dd40..badaebe5413 100644 --- a/cmd/caplin-regression/regression/tester.go +++ b/cmd/caplin-regression/regression/tester.go @@ -1,16 +1,22 @@ package regression import ( + "context" "runtime" "time" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + solid2 "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/pool" + "github.com/Giulio2002/bls" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/dbg" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/cltypes/solid" - "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" "github.com/ledgerwatch/log/v3" + "github.com/spf13/afero" ) const ( @@ -38,13 +44,13 @@ func (r *RegressionTester) Run(name string, fn func(*forkchoice.ForkChoiceStore, if err != nil { return err } - store, err := forkchoice.NewForkChoiceStore(state, nil, nil, true) + store, err := forkchoice.NewForkChoiceStore(context.Background(), state, nil, nil, pool.NewOperationsPool(&clparams.MainnetBeaconConfig), fork_graph.NewForkGraphDisk(state, afero.NewMemMapFs())) if err != nil { return err } log.Info("Loading public keys into memory") bls.SetEnabledCaching(true) - state.ForEachValidator(func(v solid.Validator, idx, total int) bool { + state.ForEachValidator(func(v solid2.Validator, idx, total int) bool { pk := v.PublicKey() if err := bls.LoadPublicKeyIntoCache(pk[:], false); err != nil { panic(err) @@ -81,7 +87,7 @@ func TestRegressionWithValidation(store *forkchoice.ForkChoiceStore, block *clty if err := store.OnBlock(block, false, true); err != nil { return err } - block.Block.Body.Attestations.Range(func(index int, value *solid.Attestation, length int) bool { + block.Block.Body.Attestations.Range(func(index int, value *solid2.Attestation, length int) bool { store.OnAttestation(value, true) return true }) diff --git a/cmd/caplin/caplin1/run.go b/cmd/caplin/caplin1/run.go new file mode 100644 index 00000000000..0aba101d066 --- /dev/null +++ b/cmd/caplin/caplin1/run.go @@ -0,0 +1,239 @@ +package caplin1 + +import ( + "context" + "os" + "path" + "time" + + proto_downloader "github.com/ledgerwatch/erigon-lib/gointerfaces/downloader" + "github.com/ledgerwatch/erigon/cl/antiquary" + "github.com/ledgerwatch/erigon/cl/beacon" + "github.com/ledgerwatch/erigon/cl/beacon/beacon_router_configuration" + "github.com/ledgerwatch/erigon/cl/beacon/handler" + "github.com/ledgerwatch/erigon/cl/beacon/synced_data" + "github.com/ledgerwatch/erigon/cl/beacon/validatorapi" + "github.com/ledgerwatch/erigon/cl/clparams/initial_state" + "github.com/ledgerwatch/erigon/cl/cltypes/solid" + "github.com/ledgerwatch/erigon/cl/freezer" + freezer2 "github.com/ledgerwatch/erigon/cl/freezer" + "github.com/ledgerwatch/erigon/eth/ethconfig" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + + "github.com/ledgerwatch/erigon/cl/persistence" + persistence2 "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + "github.com/ledgerwatch/erigon/cl/persistence/db_config" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" + state_accessors "github.com/ledgerwatch/erigon/cl/persistence/state" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice" + "github.com/ledgerwatch/erigon/cl/phase1/forkchoice/fork_graph" + "github.com/ledgerwatch/erigon/cl/phase1/network" + "github.com/ledgerwatch/erigon/cl/phase1/stages" + "github.com/ledgerwatch/erigon/cl/pool" + "github.com/ledgerwatch/erigon/cl/rpc" + "github.com/spf13/afero" + + "github.com/Giulio2002/bls" + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/log/v3" +) + +func OpenCaplinDatabase(ctx context.Context, + databaseConfig db_config.DatabaseConfiguration, + beaconConfig *clparams.BeaconChainConfig, + rawBeaconChain persistence2.RawBeaconBlockChain, + dbPath string, + engine execution_client.ExecutionEngine, + wipeout bool, +) (persistence.BeaconChainDatabase, kv.RwDB, error) { + dataDirIndexer := path.Join(dbPath, "beacon_indicies") + if wipeout { + os.RemoveAll(dataDirIndexer) + } + + os.MkdirAll(dbPath, 0700) + + db := mdbx.MustOpen(dataDirIndexer) + + tx, err := db.BeginRw(ctx) + if err != nil { + return nil, nil, err + } + defer tx.Rollback() + + if err := db_config.WriteConfigurationIfNotExist(ctx, tx, databaseConfig); err != nil { + return nil, nil, err + } + + if err := tx.Commit(); err != nil { + return nil, nil, err + } + { // start ticking forkChoice + go func() { + <-ctx.Done() + db.Close() // close sql database here + }() + } + return persistence2.NewBeaconChainDatabaseFilesystem(rawBeaconChain, engine, beaconConfig), db, nil +} + +func RunCaplinPhase1(ctx context.Context, sentinel sentinel.SentinelClient, engine execution_client.ExecutionEngine, + beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, state *state.CachingBeaconState, + caplinFreezer freezer.Freezer, dirs datadir.Dirs, cfg beacon_router_configuration.RouterConfiguration, eth1Getter snapshot_format.ExecutionBlockReaderByNumber, + snDownloader proto_downloader.DownloaderClient, backfilling bool, states bool) error { + rawDB, af := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + beaconDB, db, err := OpenCaplinDatabase(ctx, db_config.DefaultDatabaseConfiguration, beaconConfig, rawDB, dirs.CaplinIndexing, engine, false) + if err != nil { + return err + } + ctx, cn := context.WithCancel(ctx) + defer cn() + + beaconRpc := rpc.NewBeaconRpcP2P(ctx, sentinel, beaconConfig, genesisConfig) + + logger := log.New("app", "caplin") + + csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, logger) + rcsn := freezeblocks.NewBeaconSnapshotReader(csn, eth1Getter, beaconDB, beaconConfig) + + if caplinFreezer != nil { + if err := freezer2.PutObjectSSZIntoFreezer("beaconState", "caplin_core", 0, state, caplinFreezer); err != nil { + return err + } + } + + pool := pool.NewOperationsPool(beaconConfig) + + caplinFcuPath := path.Join(dirs.Tmp, "caplin-forkchoice") + os.RemoveAll(caplinFcuPath) + err = os.MkdirAll(caplinFcuPath, 0o755) + if err != nil { + return err + } + fcuFs := afero.NewBasePathFs(afero.NewOsFs(), caplinFcuPath) + + forkChoice, err := forkchoice.NewForkChoiceStore(ctx, state, engine, caplinFreezer, pool, fork_graph.NewForkGraphDisk(state, fcuFs)) + if err != nil { + logger.Error("Could not create forkchoice", "err", err) + return err + } + bls.SetEnabledCaching(true) + state.ForEachValidator(func(v solid.Validator, idx, total int) bool { + pk := v.PublicKey() + if err := bls.LoadPublicKeyIntoCache(pk[:], false); err != nil { + panic(err) + } + return true + }) + gossipManager := network.NewGossipReceiver(sentinel, forkChoice, beaconConfig, genesisConfig, caplinFreezer) + { // start ticking forkChoice + go func() { + tickInterval := time.NewTicker(50 * time.Millisecond) + for { + select { + case <-tickInterval.C: + forkChoice.OnTick(uint64(time.Now().Unix())) + case <-ctx.Done(): + return + } + + } + }() + } + + syncedDataManager := synced_data.NewSyncedDataManager(cfg.Active, beaconConfig) + if cfg.Active { + apiHandler := handler.NewApiHandler(genesisConfig, beaconConfig, rawDB, db, forkChoice, pool, rcsn, syncedDataManager) + headApiHandler := &validatorapi.ValidatorApiHandler{ + FC: forkChoice, + BeaconChainCfg: beaconConfig, + GenesisCfg: genesisConfig, + } + go beacon.ListenAndServe(&beacon.LayeredBeaconHandler{ + ValidatorApi: headApiHandler, + ArchiveApi: apiHandler, + }, cfg) + log.Info("Beacon API started", "addr", cfg.Address) + } + + { // start the gossip manager + go gossipManager.Start(ctx) + logger.Info("Started Ethereum 2.0 Gossip Service") + } + + { // start logging peers + go func() { + logIntervalPeers := time.NewTicker(1 * time.Minute) + for { + select { + case <-logIntervalPeers.C: + if peerCount, err := beaconRpc.Peers(); err == nil { + logger.Info("P2P", "peers", peerCount) + } + case <-ctx.Done(): + return + } + } + }() + } + + tx, err := db.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + dbConfig, err := db_config.ReadConfiguration(ctx, tx) + if err != nil { + return err + } + + if err := state_accessors.InitializeStaticTables(tx, state); err != nil { + return err + } + if err := beacon_indicies.WriteHighestFinalized(tx, 0); err != nil { + return err + } + + vTables := state_accessors.NewStaticValidatorTable() + // Read the the current table + if states { + if err := state_accessors.ReadValidatorsTable(tx, vTables); err != nil { + return err + } + } + // get the initial state + genesisState, err := initial_state.GetGenesisState(clparams.NetworkType(beaconConfig.DepositNetworkID)) + if err != nil { + return err + } + antiq := antiquary.NewAntiquary(ctx, genesisState, vTables, beaconConfig, dirs, snDownloader, db, csn, rcsn, beaconDB, logger, states, af) + // Create the antiquary + go func() { + if err := antiq.Loop(); err != nil { + logger.Error("Antiquary failed", "err", err) + } + }() + + if err := tx.Commit(); err != nil { + return err + } + + stageCfg := stages.ClStagesCfg(beaconRpc, antiq, genesisConfig, beaconConfig, state, engine, gossipManager, forkChoice, beaconDB, db, csn, dirs.Tmp, dbConfig, backfilling, syncedDataManager) + sync := stages.ConsensusClStages(ctx, stageCfg) + + logger.Info("[Caplin] starting clstages loop") + err = sync.StartWithStage(ctx, "WaitForPeers", logger, stageCfg) + logger.Info("[Caplin] exiting clstages loop") + if err != nil { + return err + } + return err +} diff --git a/cmd/caplin/caplincli/config.go b/cmd/caplin/caplincli/config.go new file mode 100644 index 00000000000..46238b7c3dc --- /dev/null +++ b/cmd/caplin/caplincli/config.go @@ -0,0 +1,124 @@ +package caplincli + +import ( + "errors" + "fmt" + "os" + "strings" + "time" + + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cmd/caplin/caplinflags" + "github.com/ledgerwatch/erigon/cmd/sentinel/sentinelcli" + "github.com/ledgerwatch/erigon/cmd/sentinel/sentinelflags" + "github.com/ledgerwatch/erigon/cmd/utils" + "github.com/ledgerwatch/erigon/common" + "github.com/ledgerwatch/log/v3" + "github.com/urfave/cli/v2" +) + +type CaplinCliCfg struct { + *sentinelcli.SentinelCliCfg + + CheckpointUri string `json:"checkpoint_uri"` + Chaindata string `json:"chaindata"` + ErigonPrivateApi string `json:"erigon_private_api"` + TransitionChain bool `json:"transition_chain"` + InitialSync bool `json:"initial_sync"` + NoBeaconApi bool `json:"no_beacon_api"` + BeaconApiReadTimeout time.Duration `json:"beacon_api_read_timeout"` + BeaconApiWriteTimeout time.Duration `json:"beacon_api_write_timeout"` + BeaconAddr string `json:"beacon_addr"` + BeaconProtocol string `json:"beacon_protocol"` + RecordMode bool `json:"record_mode"` + RecordDir string `json:"record_dir"` + DataDir string `json:"data_dir"` + RunEngineAPI bool `json:"run_engine_api"` + EngineAPIAddr string `json:"engine_api_addr"` + EngineAPIPort int `json:"engine_api_port"` + JwtSecret []byte + + InitalState *state.CachingBeaconState + Dirs datadir.Dirs +} + +func SetupCaplinCli(ctx *cli.Context) (cfg *CaplinCliCfg, err error) { + cfg = &CaplinCliCfg{} + cfg.SentinelCliCfg, err = sentinelcli.SetupSentinelCli(ctx) + if err != nil { + return nil, err + } + + cfg.ErigonPrivateApi = ctx.String(caplinflags.ErigonPrivateApiFlag.Name) + + if ctx.String(sentinelflags.BeaconConfigFlag.Name) != "" { + var stateByte []byte + // Now parse genesis time and genesis fork + if *cfg.GenesisCfg, stateByte, err = clparams.ParseGenesisSSZToGenesisConfig( + ctx.String(sentinelflags.GenesisSSZFlag.Name), + cfg.BeaconCfg.GetCurrentStateVersion(0)); err != nil { + return nil, err + } + + cfg.InitalState = state.New(cfg.BeaconCfg) + if cfg.InitalState.DecodeSSZ(stateByte, int(cfg.BeaconCfg.GetCurrentStateVersion(0))); err != nil { + return nil, err + } + } + + cfg.NoBeaconApi = ctx.Bool(caplinflags.NoBeaconApi.Name) + cfg.BeaconApiReadTimeout = time.Duration(ctx.Uint64(caplinflags.BeaconApiReadTimeout.Name)) * time.Second + cfg.BeaconApiWriteTimeout = time.Duration(ctx.Uint(caplinflags.BeaconApiWriteTimeout.Name)) * time.Second + cfg.BeaconAddr = fmt.Sprintf("%s:%d", ctx.String(caplinflags.BeaconApiAddr.Name), ctx.Int(caplinflags.BeaconApiPort.Name)) + cfg.BeaconProtocol = "tcp" + cfg.RecordMode = ctx.Bool(caplinflags.RecordModeFlag.Name) + cfg.RecordDir = ctx.String(caplinflags.RecordModeDir.Name) + cfg.DataDir = ctx.String(utils.DataDirFlag.Name) + cfg.Dirs = datadir.New(cfg.DataDir) + + cfg.RunEngineAPI = ctx.Bool(caplinflags.RunEngineAPI.Name) + cfg.EngineAPIAddr = ctx.String(caplinflags.EngineApiHostFlag.Name) + cfg.EngineAPIPort = ctx.Int(caplinflags.EngineApiPortFlag.Name) + if cfg.RunEngineAPI { + secret, err := ObtainJwtSecret(ctx) + if err != nil { + log.Error("Failed to obtain jwt secret", "err", err) + cfg.RunEngineAPI = false + } else { + cfg.JwtSecret = secret + } + } + + if ctx.String(caplinflags.CheckpointSyncUrlFlag.Name) != "" { + cfg.CheckpointUri = ctx.String(caplinflags.CheckpointSyncUrlFlag.Name) + } else { + cfg.CheckpointUri = clparams.GetCheckpointSyncEndpoint(cfg.NetworkType) + } + + cfg.Chaindata = ctx.String(caplinflags.ChaindataFlag.Name) + + cfg.TransitionChain = ctx.Bool(caplinflags.TransitionChainFlag.Name) + cfg.InitialSync = ctx.Bool(caplinflags.InitSyncFlag.Name) + + return cfg, err +} + +func ObtainJwtSecret(ctx *cli.Context) ([]byte, error) { + path := ctx.String(caplinflags.JwtSecret.Name) + if len(strings.TrimSpace(path)) == 0 { + return nil, errors.New("Missing jwt secret path") + } + + data, err := os.ReadFile(path) + if err != nil { + return nil, err + } + jwtSecret := common.FromHex(strings.TrimSpace(string(data))) + if len(jwtSecret) == 32 { + return jwtSecret, nil + } + + return nil, fmt.Errorf("Invalid JWT secret at %s, invalid size", path) +} diff --git a/cmd/sentinel/cli/flags/flags.go b/cmd/caplin/caplinflags/flags.go similarity index 58% rename from cmd/sentinel/cli/flags/flags.go rename to cmd/caplin/caplinflags/flags.go index cb2284a2d3c..2d3d9361f78 100644 --- a/cmd/sentinel/cli/flags/flags.go +++ b/cmd/caplin/caplinflags/flags.go @@ -1,34 +1,35 @@ -package flags +package caplinflags import ( + "github.com/ledgerwatch/erigon/cmd/utils" "github.com/urfave/cli/v2" ) +var CliFlags = []cli.Flag{ + &NoBeaconApi, + &BeaconApiReadTimeout, + &BeaconApiWriteTimeout, + &BeaconApiPort, + &BeaconApiAddr, + &ChaindataFlag, + &BeaconDBModeFlag, + &CheckpointSyncUrlFlag, + &TransitionChainFlag, + &InitSyncFlag, + &RecordModeDir, + &RecordModeFlag, + &RunEngineAPI, + &EngineApiHostFlag, + &EngineApiPortFlag, + &JwtSecret, + &utils.DataDirFlag, +} + var ( - SentinelDiscoveryPort = cli.IntFlag{ - Name: "discovery.port", - Usage: "sets the lightclient port", - Value: 4000, - } - SentinelDiscoveryAddr = cli.StringFlag{ - Name: "discovery.addr", - Usage: "sets the lightclient discovery addr", - Value: "127.0.0.1", - } - SentinelTcpPort = cli.UintFlag{ - Name: "sentinel.tcp.port", - Usage: "sets lightclient tcp port", - Value: 4001, - } - SentinelServerPort = cli.IntFlag{ - Name: "sentinel.port", - Usage: "sets the lightclient server port", - Value: 7777, - } - SentinelServerAddr = cli.StringFlag{ - Name: "sentinel.addr", - Usage: "sets the lightclient server host addr", - Value: "localhost", + ChaindataFlag = cli.StringFlag{ + Name: "chaindata", + Usage: "chaindata of database", + Value: "", } NoBeaconApi = cli.BoolFlag{ Name: "no-beacon-api", @@ -38,12 +39,12 @@ var ( BeaconApiReadTimeout = cli.Uint64Flag{ Name: "beacon.api.read.timeout", Usage: "Sets the seconds for a read time out in the beacon api", - Value: 5, + Value: 60, } BeaconApiWriteTimeout = cli.Uint64Flag{ Name: "beacon.api.write.timeout", Usage: "Sets the seconds for a write time out in the beacon api", - Value: 5, + Value: 60, } BeaconApiAddr = cli.StringFlag{ Name: "beacon.api.addr", @@ -55,41 +56,7 @@ var ( Usage: "sets the port to listen for beacon api requests", Value: 5555, } - BootnodesFlag = cli.StringFlag{ - Name: "sentinel.bootnodes", - Usage: "Comma separated enode URLs for P2P discovery bootstrap", - Value: "", - } - BeaconConfigFlag = cli.StringFlag{ - Name: "beacon-config", - Usage: "Path to beacon config", - Value: "", - } - GenesisSSZFlag = cli.StringFlag{ - Name: "genesis-ssz", - Usage: "Path to genesis ssz", - Value: "", - } - Chain = cli.StringFlag{ - Name: "chain", - Usage: "sets the chain specs for the lightclient", - Value: "mainnet", - } - NoDiscovery = cli.BoolFlag{ - Name: "no-discovery", - Usage: "turn off or on the lightclient finding peers", - Value: false, - } - LocalDiscovery = cli.BoolFlag{ - Name: "local-discovery", - Usage: "enable to also attempt to find peers over private ips. turning this on may cause issues with hosts such as hetzner", - Value: false, - } - ChaindataFlag = cli.StringFlag{ - Name: "chaindata", - Usage: "chaindata of database", - Value: "", - } + BeaconDBModeFlag = cli.StringFlag{ Name: "beacon-db-mode", Usage: "level of storing on beacon chain, minimal(only 500k blocks stored), full (all blocks stored), light (no blocks stored)", @@ -100,6 +67,25 @@ var ( Usage: "checkpoint sync endpoint", Value: "", } + TransitionChainFlag = cli.BoolFlag{ + Name: "transition-chain", + Usage: "enable chain transition", + } + InitSyncFlag = cli.BoolFlag{ + Value: false, + Name: "initial-sync", + Usage: "use initial-sync", + } + RecordModeFlag = cli.BoolFlag{ + Value: false, + Name: "record-mode", + Usage: "enable/disable record mode", + } + RecordModeDir = cli.StringFlag{ + Value: "caplin-recordings", + Name: "record-dir", + Usage: "directory for states and block recordings", + } ErigonPrivateApiFlag = cli.StringFlag{ Name: "private.api.addr", Usage: "connect to existing erigon instance", @@ -125,28 +111,4 @@ var ( Usage: "Path to the token that ensures safe connection between CL and EL", Value: "", } - SentinelStaticPeersFlag = cli.StringFlag{ - Name: "sentinel.staticpeers", - Usage: "connect to comma-separated Consensus static peers", - Value: "", - } - TransitionChainFlag = cli.BoolFlag{ - Name: "transition-chain", - Usage: "enable chain transition", - } - InitSyncFlag = cli.BoolFlag{ - Value: false, - Name: "initial-sync", - Usage: "use initial-sync", - } - RecordModeFlag = cli.BoolFlag{ - Value: false, - Name: "record-mode", - Usage: "enable/disable record mode", - } - RecordModeDir = cli.StringFlag{ - Value: "caplin-recordings", - Name: "record-dir", - Usage: "directory for states and block recordings", - } ) diff --git a/cmd/caplin-phase1/main.go b/cmd/caplin/main.go similarity index 51% rename from cmd/caplin-phase1/main.go rename to cmd/caplin/main.go index 562de8c625b..91b3c0b35e4 100644 --- a/cmd/caplin-phase1/main.go +++ b/cmd/caplin/main.go @@ -1,15 +1,13 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ +// Copyright 2022 Erigon-Lightclient contributors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package main @@ -18,29 +16,30 @@ import ( "fmt" "os" - "github.com/ledgerwatch/erigon/cl/beacon" - "github.com/ledgerwatch/erigon/cl/beacon/handler" - "github.com/ledgerwatch/erigon/cl/freezer" + "github.com/ledgerwatch/erigon/cl/beacon/beacon_router_configuration" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/fork" + freezer2 "github.com/ledgerwatch/erigon/cl/freezer" "github.com/ledgerwatch/erigon/cl/phase1/core" "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + execution_client2 "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + "github.com/ledgerwatch/erigon/cl/sentinel" + "github.com/ledgerwatch/erigon/cl/sentinel/service" "github.com/ledgerwatch/log/v3" "github.com/urfave/cli/v2" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/fork" - "github.com/ledgerwatch/erigon/cmd/caplin-phase1/caplin1" - lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli" - "github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service" - lightclientapp "github.com/ledgerwatch/erigon/turbo/app" + "github.com/ledgerwatch/erigon/cmd/caplin/caplin1" + "github.com/ledgerwatch/erigon/cmd/caplin/caplincli" + "github.com/ledgerwatch/erigon/cmd/caplin/caplinflags" + "github.com/ledgerwatch/erigon/cmd/sentinel/sentinelflags" + "github.com/ledgerwatch/erigon/cmd/utils" + "github.com/ledgerwatch/erigon/turbo/app" "github.com/ledgerwatch/erigon/turbo/debug" ) func main() { - app := lightclientapp.MakeApp("caplin-phase1", runCaplinNode, flags.CLDefaultFlags) + app := app.MakeApp("caplin", runCaplinNode, append(caplinflags.CliFlags, sentinelflags.CliFlags...)) if err := app.Run(os.Args); err != nil { _, printErr := fmt.Fprintln(os.Stderr, err) if printErr != nil { @@ -51,18 +50,20 @@ func main() { } func runCaplinNode(cliCtx *cli.Context) error { - ctx := context.Background() - cfg, err := lcCli.SetupConsensusClientCfg(cliCtx) + cfg, err := caplincli.SetupCaplinCli(cliCtx) if err != nil { log.Error("[Phase1] Could not initialize caplin", "err", err) + return err } - if _, err := debug.Setup(cliCtx, true /* root logger */); err != nil { + if _, _, err := debug.Setup(cliCtx, true /* root logger */); err != nil { return err } log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(cfg.LogLvl), log.StderrHandler)) - log.Info("[Phase1]", "chain", cliCtx.String(flags.Chain.Name)) + log.Info("[Phase1]", "chain", cliCtx.String(utils.ChainFlag.Name)) log.Info("[Phase1] Running Caplin") // Either start from genesis or a checkpoint + ctx, cn := context.WithCancel(context.Background()) + defer cn() var state *state.CachingBeaconState if cfg.InitialSync { state = cfg.InitalState @@ -103,10 +104,9 @@ func runCaplinNode(cliCtx *cli.Context) error { log.Error("[Checkpoint Sync] Failed", "reason", err) return err } - var executionEngine execution_client.ExecutionEngine + var executionEngine execution_client2.ExecutionEngine if cfg.RunEngineAPI { - fmt.Println(cfg.EngineAPIAddr) - cc, err := execution_client.NewExecutionClientRPC(ctx, cfg.JwtSecret, cfg.EngineAPIAddr, cfg.EngineAPIPort) + cc, err := execution_client2.NewExecutionClientRPC(ctx, cfg.JwtSecret, cfg.EngineAPIAddr, cfg.EngineAPIPort) if err != nil { log.Error("could not start engine api", "err", err) } @@ -114,24 +114,19 @@ func runCaplinNode(cliCtx *cli.Context) error { executionEngine = cc } - if !cfg.NoBeaconApi { - apiHandler := handler.NewApiHandler(cfg.GenesisCfg, cfg.BeaconCfg) - go beacon.ListenAndServe(apiHandler, &beacon.RouterConfiguration{ - Protocol: cfg.BeaconProtocol, - Address: cfg.BeaconAddr, - ReadTimeTimeout: cfg.BeaconApiReadTimeout, - WriteTimeout: cfg.BeaconApiWriteTimeout, - IdleTimeout: cfg.BeaconApiWriteTimeout, - }) - log.Info("Beacon API started", "addr", cfg.BeaconAddr) - } - - var caplinFreezer freezer.Freezer + var caplinFreezer freezer2.Freezer if cfg.RecordMode { - caplinFreezer = &freezer.RootPathOsFs{ + caplinFreezer = &freezer2.RootPathOsFs{ Root: cfg.RecordDir, } } - return caplin1.RunCaplinPhase1(ctx, sentinel, cfg.BeaconCfg, cfg.GenesisCfg, executionEngine, state, caplinFreezer) + return caplin1.RunCaplinPhase1(ctx, sentinel, executionEngine, cfg.BeaconCfg, cfg.GenesisCfg, state, caplinFreezer, cfg.Dirs, beacon_router_configuration.RouterConfiguration{ + Protocol: cfg.BeaconProtocol, + Address: cfg.BeaconAddr, + ReadTimeTimeout: cfg.BeaconApiReadTimeout, + WriteTimeout: cfg.BeaconApiWriteTimeout, + IdleTimeout: cfg.BeaconApiWriteTimeout, + Active: !cfg.NoBeaconApi, + }, nil, nil, false, false) } diff --git a/cmd/devnet/README.md b/cmd/devnet/README.md index 74ddc735e4a..a364d567ea0 100644 --- a/cmd/devnet/README.md +++ b/cmd/devnet/README.md @@ -9,7 +9,7 @@ The devnet code performs 3 main functions: * It allows for the specification of a series of scenarios which will be run against the nodes on that internal network * It can optionally run a `support` connection which allows the nodes on the network to be connected to the Erigon diagnostic system -The specification of both nodes and scenarios for the devenet is done by specifying configuraion objects. These objects are currently build in code using go `structs` but are cabable of being read as configuration. +The specification of both nodes and scenarios for the devenet is done by specifying configuration objects. These objects are currently build in code using go `structs` but are capable of being read as configuration. ## Devnet runtime start-up @@ -23,12 +23,12 @@ The devnet runs as a single `go` process which can be started with the following | metrics | N | false | Enable metrics collection and reporting from devnet nodes | | metrics.node | N | 0 | At the moment only one node on the network can produce metrics. This value specifies index of the node in the cluster to attach to | | metrics.port | N | 6060 | The network port of the node to connect to for gather ing metrics | -| diagnostics.url | N | | URL of the diagnostics system provided by the support team, include unique session PIN, if this is specified the devnet will start a `support` tunnel and connect to the diagnostics platform to provide metrics from the specified node on the devnet | -| insecure | N | false | Used if `diagnostics.url` is set to allow communication with diagnostics system using self-signed TLS certificates | +| diagnostics.addr | N | | Address of the diagnostics system provided by the support team, include unique session PIN, if this is specified the devnet will start a `support` tunnel and connect to the diagnostics platform to provide metrics from the specified node on the devnet | +| insecure | N | false | Used if `diagnostics.addr` is set to allow communication with diagnostics system ## Network Configuration -Networks configurations are currently specified in code in `main.go` in the `selectNetwork` function. This contains a series of `structs` with the following structue, for eample: +Networks configurations are currently specified in code in `main.go` in the `selectNetwork` function. This contains a series of `structs` with the following structure, for example: ```go return &devnet.Network{ @@ -55,11 +55,11 @@ Networks configurations are currently specified in code in `main.go` in the `sel }, nil ``` -Base IP's and addresses are iterated for each node in the network - to ensure that when the network starts there are no port clashes as the entire nework operates in a single process, hence shares a common host. Individual nodes will be configured with a default set of command line arguments dependent on type. To see the default arguments per node look at the `args\node.go` file where these are specified as tags on the struct members. +Base IP's and addresses are iterated for each node in the network - to ensure that when the network starts there are no port clashes as the entire network operates in a single process, hence shares a common host. Individual nodes will be configured with a default set of command line arguments dependent on type. To see the default arguments per node look at the `args\node.go` file where these are specified as tags on the struct members. ## Scenario Configuration -Scenarios are similarly specified in code in `main.go` in the `action` function. This is the initial configration: +Scenarios are similarly specified in code in `main.go` in the `action` function. This is the initial configuration: ```go scenarios.Scenario{ @@ -74,9 +74,9 @@ Scenarios are similarly specified in code in `main.go` in the `action` function. }) ``` -Scenarios are created a groups of steps which are created by regestering a `step` handler too see an example of this take a look at the `commands\ping.go` file which adds a ping rpc method (see `PingErigonRpc` above). +Scenarios are created a groups of steps which are created by registering a `step` handler too see an example of this take a look at the `commands\ping.go` file which adds a ping rpc method (see `PingErigonRpc` above). -This illustrates the registratio process. The `init` function in the file registers the method with the `scenarios` package - which uses the function name as the default step name. Others can be added with additional string arguments fo the `StepHandler` call where they will treated as regular expressions to be matched when processing scenario steps. +This illustrates the registration process. The `init` function in the file registers the method with the `scenarios` package - which uses the function name as the default step name. Others can be added with additional string arguments fo the `StepHandler` call where they will treated as regular expressions to be matched when processing scenario steps. ```go func init() { diff --git a/cmd/devnet/accounts/accounts.go b/cmd/devnet/accounts/accounts.go index 032cebdc616..097ca74daf5 100644 --- a/cmd/devnet/accounts/accounts.go +++ b/cmd/devnet/accounts/accounts.go @@ -20,6 +20,14 @@ func init() { core.DevnetSignKey = func(addr libcommon.Address) *ecdsa.PrivateKey { return SigKey(addr) } + + devnetEtherbaseAccount := &Account{ + "DevnetEtherbase", + core.DevnetEtherbase, + core.DevnetSignPrivateKey, + } + accountsByAddress[core.DevnetEtherbase] = devnetEtherbaseAccount + accountsByName[devnetEtherbaseAccount.Name] = devnetEtherbaseAccount } var accountsByAddress = map[libcommon.Address]*Account{} diff --git a/cmd/devnet/accounts/steps/steps.go b/cmd/devnet/accounts/steps/steps.go index 5a3d65741a4..3547c2363c8 100644 --- a/cmd/devnet/accounts/steps/steps.go +++ b/cmd/devnet/accounts/steps/steps.go @@ -15,6 +15,7 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" "github.com/ledgerwatch/erigon/cmd/devnet/services" "github.com/ledgerwatch/erigon/cmd/devnet/transactions" + "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" ) @@ -119,7 +120,7 @@ func SendFunds(ctx context.Context, chainName string, name string, ethAmount flo logger.Info("Faucet account details", "address", faucet.Address(), "account", accountResult) - accountCode, err := node.GetCode(faucet.Address(), requests.BlockNumber(traceResult.BlockHash.Hex())) + accountCode, err := node.GetCode(faucet.Address(), rpc.AsBlockReference(traceResult.BlockHash)) if err != nil { return 0, fmt.Errorf("Send transaction failure: get account code failed: %w", err) @@ -127,7 +128,7 @@ func SendFunds(ctx context.Context, chainName string, name string, ethAmount flo logger.Info("Faucet account code", "address", faucet.Address(), "code", accountCode) - callResults, err := node.TraceCall(fmt.Sprintf("0x%x", blockNum), ethapi.CallArgs{ + callResults, err := node.TraceCall(rpc.AsBlockReference(blockNum), ethapi.CallArgs{ From: &traceResult.Action.From, To: &traceResult.Action.To, Data: &traceResult.Action.Input, @@ -152,7 +153,7 @@ func SendFunds(ctx context.Context, chainName string, name string, ethAmount flo return 0, fmt.Errorf("Unexpected post transfer faucet balance got: %s:, expected: %s", balance, (&big.Int{}).Sub(facuetStartingBalance, sent)) } - balance, err = node.GetBalance(account.Address, requests.BlockNumbers.Latest) + balance, err = node.GetBalance(account.Address, rpc.LatestBlock) if err != nil { return 0, fmt.Errorf("Failed to get post transfer balance: %w", err) @@ -165,7 +166,7 @@ func SendFunds(ctx context.Context, chainName string, name string, ethAmount flo return balance.Uint64(), nil } -func GetBalance(ctx context.Context, accountName string, blockNum requests.BlockNumber) (uint64, error) { +func GetBalance(ctx context.Context, accountName string, blockNum rpc.BlockNumber) (uint64, error) { logger := devnet.Logger(ctx) node := devnet.CurrentNode(ctx) @@ -184,7 +185,7 @@ func GetBalance(ctx context.Context, accountName string, blockNum requests.Block logger.Info("Getting balance", "address", account.Address) - bal, err := node.GetBalance(account.Address, blockNum) + bal, err := node.GetBalance(account.Address, rpc.AsBlockReference(blockNum)) if err != nil { logger.Error("FAILURE", "error", err) @@ -203,7 +204,7 @@ func GetNonce(ctx context.Context, address libcommon.Address) (uint64, error) { node = devnet.SelectBlockProducer(ctx) } - res, err := node.GetTransactionCount(address, requests.BlockNumbers.Latest) + res, err := node.GetTransactionCount(address, rpc.LatestBlock) if err != nil { return 0, fmt.Errorf("failed to get transaction count for address 0x%x: %v", address, err) diff --git a/cmd/devnet/args/node.go b/cmd/devnet/args/node_args.go similarity index 71% rename from cmd/devnet/args/node.go rename to cmd/devnet/args/node_args.go index a3bc7fa0c7e..50c73c0e96f 100644 --- a/cmd/devnet/args/node.go +++ b/cmd/devnet/args/node_args.go @@ -1,18 +1,25 @@ package args import ( + "crypto/ecdsa" + "encoding/hex" "fmt" "math/big" "net" "path/filepath" "strconv" + "github.com/ledgerwatch/erigon/core" + "github.com/ledgerwatch/erigon/crypto" + "github.com/ledgerwatch/erigon/p2p/enode" + "github.com/ledgerwatch/erigon/params" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon/cmd/devnet/accounts" "github.com/ledgerwatch/erigon/cmd/devnet/requests" - "github.com/ledgerwatch/erigon/params/networkname" ) -type Node struct { +type NodeArgs struct { requests.RequestGenerator `arg:"-"` Name string `arg:"-"` BuildDir string `arg:"positional" default:"./build/bin/devnet" json:"builddir"` @@ -43,12 +50,15 @@ type Node struct { MetricsAddr string `arg:"--metrics.addr" json:"metrics.addr,omitempty"` StaticPeers string `arg:"--staticpeers" json:"staticpeers,omitempty"` WithoutHeimdall bool `arg:"--bor.withoutheimdall" flag:"" default:"false" json:"bor.withoutheimdall,omitempty"` - HeimdallGRpc string `arg:"--bor.heimdallgRPC" json:"bor.heimdallgRPC,omitempty"` + HeimdallGrpcAddr string `arg:"--bor.heimdallgRPC" json:"bor.heimdallgRPC,omitempty"` + WithHeimdallMilestones bool `arg:"--bor.milestone" json:"bor.milestone"` VMDebug bool `arg:"--vmdebug" flag:"" default:"false" json:"dmdebug"` -} -func (node *Node) configure(base Node, nodeNumber int) error { + NodeKey *ecdsa.PrivateKey `arg:"-"` + NodeKeyHex string `arg:"--nodekeyhex" json:"nodekeyhex,omitempty"` +} +func (node *NodeArgs) Configure(base NodeArgs, nodeNumber int) error { if len(node.Name) == 0 { node.Name = fmt.Sprintf("%s-%d", base.Chain, nodeNumber) } @@ -62,14 +72,19 @@ func (node *Node) configure(base Node, nodeNumber int) error { node.StaticPeers = base.StaticPeers + var err error + node.NodeKey, err = crypto.GenerateKey() + if err != nil { + return err + } + node.NodeKeyHex = hex.EncodeToString(crypto.FromECDSA(node.NodeKey)) + node.Metrics = base.Metrics node.MetricsPort = base.MetricsPort node.MetricsAddr = base.MetricsAddr node.Snapshots = base.Snapshots - var err error - node.PrivateApiAddr, _, err = portFromBase(base.PrivateApiAddr, nodeNumber, 1) if err != nil { @@ -86,15 +101,39 @@ func (node *Node) configure(base Node, nodeNumber int) error { node.Port = base.Port + nodeNumber + node.WithHeimdallMilestones = base.WithHeimdallMilestones + return nil } -func (node Node) ChainID() *big.Int { - return &big.Int{} +func (node *NodeArgs) GetName() string { + return node.Name +} + +func (node *NodeArgs) ChainID() *big.Int { + config := params.ChainConfigByChainName(node.Chain) + if config == nil { + return nil + } + return config.ChainID +} + +func (node *NodeArgs) GetHttpPort() int { + return node.HttpPort +} + +func (node *NodeArgs) GetEnodeURL() string { + port := node.Port + return enode.NewV4(&node.NodeKey.PublicKey, net.ParseIP("127.0.0.1"), port, port).URLv4() +} + +func (node *NodeArgs) EnableMetrics(port int) { + node.Metrics = true + node.MetricsPort = port } type BlockProducer struct { - Node + NodeArgs Mine bool `arg:"--mine" flag:"true"` Etherbase string `arg:"--miner.etherbase"` DevPeriod int `arg:"--dev.period"` @@ -105,11 +144,10 @@ type BlockProducer struct { account *accounts.Account } -func (m BlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{}, error) { - err := m.configure(baseNode, nodeNumber) - +func (m *BlockProducer) Configure(baseNode NodeArgs, nodeNumber int) error { + err := m.NodeArgs.Configure(baseNode, nodeNumber) if err != nil { - return -1, nil, err + return err } switch m.Chain { @@ -117,57 +155,45 @@ func (m BlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{ if m.DevPeriod == 0 { m.DevPeriod = 30 } - m.account = accounts.NewAccount(m.Name() + "-etherbase") + m.account = accounts.NewAccount(m.GetName() + "-etherbase") + core.DevnetEtherbase = m.account.Address + core.DevnetSignPrivateKey = m.account.SigKey() case networkname.BorDevnetChainName: - m.account = accounts.NewAccount(m.Name() + "-etherbase") + m.account = accounts.NewAccount(m.GetName() + "-etherbase") + + if len(m.HttpApi) == 0 { + m.HttpApi = "admin,eth,erigon,web3,net,debug,trace,txpool,parity,ots,bor" + } } if m.account != nil { m.Etherbase = m.account.Address.Hex() } - return m.HttpPort, m, nil -} - -func (n BlockProducer) Name() string { - return n.Node.Name + return nil } -func (n BlockProducer) Account() *accounts.Account { +func (n *BlockProducer) Account() *accounts.Account { return n.account } -func (n BlockProducer) IsBlockProducer() bool { +func (n *BlockProducer) IsBlockProducer() bool { return true } type NonBlockProducer struct { - Node + NodeArgs HttpApi string `arg:"--http.api" default:"admin,eth,debug,net,trace,web3,erigon,txpool" json:"http.api"` TorrentPort string `arg:"--torrent.port" default:"42070" json:"torrent.port"` NoDiscover string `arg:"--nodiscover" flag:"" default:"true" json:"nodiscover"` } -func (n NonBlockProducer) Configure(baseNode Node, nodeNumber int) (int, interface{}, error) { - err := n.configure(baseNode, nodeNumber) - - if err != nil { - return -1, nil, err - } - - return n.HttpPort, n, nil -} - -func (n NonBlockProducer) Name() string { - return n.Node.Name -} - -func (n NonBlockProducer) IsBlockProducer() bool { +func (n *NonBlockProducer) IsBlockProducer() bool { return false } -func (n NonBlockProducer) Account() *accounts.Account { +func (n *NonBlockProducer) Account() *accounts.Account { return nil } diff --git a/cmd/devnet/args/node_test.go b/cmd/devnet/args/node_args_test.go similarity index 89% rename from cmd/devnet/args/node_test.go rename to cmd/devnet/args/node_args_test.go index ddd7de4c8c9..a67370b19ea 100644 --- a/cmd/devnet/args/node_test.go +++ b/cmd/devnet/args/node_args_test.go @@ -13,7 +13,7 @@ func TestNodeArgs(t *testing.T) { asMap := map[string]struct{}{} nodeArgs, _ := args.AsArgs(args.BlockProducer{ - Node: args.Node{ + NodeArgs: args.NodeArgs{ DataDir: filepath.Join("data", fmt.Sprintf("%d", 1)), PrivateApiAddr: "localhost:9092", }, @@ -37,7 +37,7 @@ func TestNodeArgs(t *testing.T) { } nodeArgs, _ = args.AsArgs(args.NonBlockProducer{ - Node: args.Node{ + NodeArgs: args.NodeArgs{ DataDir: filepath.Join("data", fmt.Sprintf("%d", 2)), StaticPeers: "enode", PrivateApiAddr: "localhost:9091", @@ -162,8 +162,26 @@ func producingNodeArgs(dataDir string, nodeNumber int) []string { authrpcPortArg, _ := parameterFromArgument("--authrpc.port", "8551") natArg, _ := parameterFromArgument("--nat", "none") accountSlotsArg, _ := parameterFromArgument("--txpool.accountslots", "16") - - return []string{buildDirArg, dataDirArg, chainType, privateApiAddr, httpPortArg, authrpcPortArg, mine, httpApi, ws, natArg, devPeriod, consoleVerbosity, p2pProtocol, downloaderArg, accountSlotsArg} + withHeimdallMilestonesArg, _ := parameterFromArgument("--bor.milestone", "false") + + return []string{ + buildDirArg, + dataDirArg, + chainType, + privateApiAddr, + httpPortArg, + authrpcPortArg, + mine, + httpApi, + ws, + natArg, + devPeriod, + consoleVerbosity, + p2pProtocol, + downloaderArg, + accountSlotsArg, + withHeimdallMilestonesArg, + } } // nonMiningNodeArgs returns custom args for starting a non-mining node @@ -182,6 +200,24 @@ func nonProducingNodeArgs(dataDir string, nodeNumber int, enode string) []string authrpcPortArg, _ := parameterFromArgument("--authrpc.port", "8551") natArg, _ := parameterFromArgument("--nat", "none") ws := wsArg - - return []string{buildDirArg, dataDirArg, chainType, privateApiAddr, httpPortArg, authrpcPortArg, httpApi, ws, natArg, staticPeers, noDiscover, consoleVerbosity, torrentPort, p2pProtocol, downloaderArg} + withHeimdallMilestonesArg, _ := parameterFromArgument("--bor.milestone", "false") + + return []string{ + buildDirArg, + dataDirArg, + chainType, + privateApiAddr, + httpPortArg, + authrpcPortArg, + httpApi, + ws, + natArg, + staticPeers, + noDiscover, + consoleVerbosity, + torrentPort, + p2pProtocol, + downloaderArg, + withHeimdallMilestonesArg, + } } diff --git a/cmd/devnet/blocks/checks.go b/cmd/devnet/blocks/checks.go index 1891e19729a..3f143a69f03 100644 --- a/cmd/devnet/blocks/checks.go +++ b/cmd/devnet/blocks/checks.go @@ -4,22 +4,21 @@ import ( "context" "fmt" - libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cmd/devnet/devnet" "github.com/ledgerwatch/erigon/cmd/devnet/requests" + "github.com/ledgerwatch/erigon/turbo/jsonrpc" ) var CompletionChecker = BlockHandlerFunc( - func(ctx context.Context, node devnet.Node, block *requests.BlockResult, transaction *requests.Transaction) error { - transactionHash := libcommon.HexToHash(transaction.Hash) - traceResults, err := node.TraceTransaction(transactionHash) + func(ctx context.Context, node devnet.Node, block *requests.Block, transaction *jsonrpc.RPCTransaction) error { + traceResults, err := node.TraceTransaction(transaction.Hash) if err != nil { return fmt.Errorf("Failed to trace transaction: %s: %w", transaction.Hash, err) } for _, traceResult := range traceResults { - if traceResult.TransactionHash == transactionHash { + if traceResult.TransactionHash == transaction.Hash { if len(traceResult.Error) != 0 { return fmt.Errorf("Transaction error: %s", traceResult.Error) } diff --git a/cmd/devnet/blocks/fees.go b/cmd/devnet/blocks/fees.go index 94170ab1649..a4820849a73 100644 --- a/cmd/devnet/blocks/fees.go +++ b/cmd/devnet/blocks/fees.go @@ -5,21 +5,15 @@ import ( "fmt" "github.com/ledgerwatch/erigon/cmd/devnet/devnet" - "github.com/ledgerwatch/erigon/cmd/devnet/devnetutils" + "github.com/ledgerwatch/erigon/rpc" ) func BaseFeeFromBlock(ctx context.Context) (uint64, error) { - var val uint64 - res, err := devnet.SelectNode(ctx).GetBlockDetailsByNumber("latest", false) + res, err := devnet.SelectNode(ctx).GetBlockByNumber(ctx, rpc.LatestBlockNumber, false) + if err != nil { return 0, fmt.Errorf("failed to get base fee from block: %v\n", err) } - if v, ok := res["baseFeePerGas"]; !ok { - return val, fmt.Errorf("baseFeePerGas field missing from response") - } else { - val = devnetutils.HexToInt(v.(string)) - } - - return val, err + return res.BaseFee.Uint64(), err } diff --git a/cmd/devnet/blocks/generator.go b/cmd/devnet/blocks/generator.go new file mode 100644 index 00000000000..341f248d699 --- /dev/null +++ b/cmd/devnet/blocks/generator.go @@ -0,0 +1,65 @@ +package blocks + +import ( + "context" + "crypto/ecdsa" + "fmt" + "testing" + + "github.com/ledgerwatch/erigon/accounts/abi/bind" + "github.com/ledgerwatch/erigon/accounts/abi/bind/backends" + "github.com/ledgerwatch/erigon/core" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/crypto" + "github.com/ledgerwatch/erigon/turbo/stages/mock" +) + +type TxFn func(_ *core.BlockGen, backend bind.ContractBackend) (types.Transaction, bool) + +type TxGen struct { + Fn TxFn + Key *ecdsa.PrivateKey +} + +func GenerateBlocks(t *testing.T, gspec *types.Genesis, blocks int, txs map[int]TxGen, txPerBlock func(int) int) (*mock.MockSentry, *core.ChainPack, error) { + key, _ := crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") + m := mock.MockWithGenesis(t, gspec, key, false) + + contractBackend := backends.NewTestSimulatedBackendWithConfig(t, gspec.Alloc, gspec.Config, gspec.GasLimit) + + chain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, blocks, func(blockNum int, block *core.BlockGen) { + var tx types.Transaction + var isContractCall bool + signer := types.LatestSignerForChainID(nil) + + txCount := txPerBlock(blockNum) + + for i := 0; i < txCount; i++ { + if txToSend, ok := txs[i%len(txs)]; ok { + tx, isContractCall = txToSend.Fn(block, contractBackend) + var err error + tx, err = types.SignTx(tx, *signer, txToSend.Key) + if err != nil { + return + } + } + + if tx != nil { + if !isContractCall { + err := contractBackend.SendTransaction(context.Background(), tx) + if err != nil { + return + } + } + + block.AddTx(tx) + } + } + + contractBackend.Commit() + }) + if err != nil { + return nil, nil, fmt.Errorf("generate chain: %w", err) + } + return m, chain, err +} diff --git a/cmd/devnet/blocks/waiter.go b/cmd/devnet/blocks/waiter.go index c9e85124a3a..05b4280ba1a 100644 --- a/cmd/devnet/blocks/waiter.go +++ b/cmd/devnet/blocks/waiter.go @@ -8,20 +8,22 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/devnet" "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/turbo/jsonrpc" "github.com/ledgerwatch/log/v3" ) type BlockHandler interface { - Handle(ctx context.Context, node devnet.Node, block *requests.BlockResult, transaction *requests.Transaction) error + Handle(ctx context.Context, node devnet.Node, block *requests.Block, transaction *jsonrpc.RPCTransaction) error } -type BlockHandlerFunc func(ctx context.Context, node devnet.Node, block *requests.BlockResult, transaction *requests.Transaction) error +type BlockHandlerFunc func(ctx context.Context, node devnet.Node, block *requests.Block, transaction *jsonrpc.RPCTransaction) error -func (f BlockHandlerFunc) Handle(ctx context.Context, node devnet.Node, block *requests.BlockResult, transaction *requests.Transaction) error { +func (f BlockHandlerFunc) Handle(ctx context.Context, node devnet.Node, block *requests.Block, transaction *jsonrpc.RPCTransaction) error { return f(ctx, node, block, transaction) } -type BlockMap map[libcommon.Hash]*requests.BlockResult +type BlockMap map[libcommon.Hash]*requests.Block type waitResult struct { err error @@ -38,7 +40,7 @@ type blockWaiter struct { } type Waiter interface { - Await(libcommon.Hash) (*requests.BlockResult, error) + Await(libcommon.Hash) (*requests.Block, error) AwaitMany(...libcommon.Hash) (BlockMap, error) } @@ -46,7 +48,7 @@ type waitError struct { err error } -func (w waitError) Await(libcommon.Hash) (*requests.BlockResult, error) { +func (w waitError) Await(libcommon.Hash) (*requests.Block, error) { return nil, w.err } @@ -58,7 +60,7 @@ type wait struct { waiter *blockWaiter } -func (w wait) Await(hash libcommon.Hash) (*requests.BlockResult, error) { +func (w wait) Await(hash libcommon.Hash) (*requests.Block, error) { w.waiter.hashes <- map[libcommon.Hash]struct{}{hash: {}} res := <-w.waiter.result @@ -116,11 +118,12 @@ func BlockWaiter(ctx context.Context, handler BlockHandler) (Waiter, context.Can } func (c *blockWaiter) receive(ctx context.Context, node devnet.Node, headers chan types.Header) { - blockMap := map[libcommon.Hash]*requests.BlockResult{} + blockMap := map[libcommon.Hash]*requests.Block{} defer close(c.result) for header := range headers { + select { case <-ctx.Done(): c.headersSub.Unsubscribe() @@ -129,9 +132,7 @@ func (c *blockWaiter) receive(ctx context.Context, node devnet.Node, headers cha default: } - blockNum := header.Number - - block, err := node.GetBlockByNumber(blockNum.Uint64(), true) + block, err := node.GetBlockByNumber(ctx, rpc.AsBlockNumber(header.Number), true) if err != nil { c.logger.Error("Block waiter failed to get block", "err", err) @@ -143,14 +144,12 @@ func (c *blockWaiter) receive(ctx context.Context, node devnet.Node, headers cha } for i := range block.Transactions { - tx := &block.Transactions[i] // avoid implicit memory aliasing - - txHash := libcommon.HexToHash(tx.Hash) + tx := block.Transactions[i] // avoid implicit memory aliasing - if _, ok := c.waitHashes[txHash]; ok { - c.logger.Info("Tx included into block", "txHash", txHash, "blockNum", block.BlockNumber) - blockMap[txHash] = block - delete(c.waitHashes, txHash) + if _, ok := c.waitHashes[tx.Hash]; ok { + c.logger.Info("Tx included into block", "txHash", tx.Hash, "blockNum", block.Number) + blockMap[tx.Hash] = block + delete(c.waitHashes, tx.Hash) if len(c.waitHashes) == 0 { c.headersSub.Unsubscribe() diff --git a/cmd/devnet/contracts/backend.go b/cmd/devnet/contracts/backend.go index d321ec9ef80..950e6db078d 100644 --- a/cmd/devnet/contracts/backend.go +++ b/cmd/devnet/contracts/backend.go @@ -7,10 +7,13 @@ import ( ethereum "github.com/ledgerwatch/erigon" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon/accounts/abi/bind" "github.com/ledgerwatch/erigon/cmd/devnet/devnet" - "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" ) func NewBackend(node devnet.Node) bind.ContractBackend { @@ -22,19 +25,44 @@ type contractBackend struct { } func (cb contractBackend) CodeAt(ctx context.Context, contract libcommon.Address, blockNumber *big.Int) ([]byte, error) { - return cb.node.GetCode(contract, requests.AsBlockNumber(blockNumber)) + return cb.node.GetCode(contract, rpc.AsBlockReference(blockNumber)) } func (cb contractBackend) CallContract(ctx context.Context, call ethereum.CallMsg, blockNumber *big.Int) ([]byte, error) { - return nil, fmt.Errorf("TODO") + var gasPrice *hexutil.Big + var value *hexutil.Big + + if call.Value != nil { + value = (*hexutil.Big)(call.Value.ToBig()) + } + + if call.GasPrice != nil { + gasPrice = (*hexutil.Big)(call.GasPrice.ToBig()) + } + + var blockRef rpc.BlockReference + if blockNumber != nil { + blockRef = rpc.AsBlockReference(blockNumber) + } else { + blockRef = rpc.LatestBlock + } + + return cb.node.Call(ethapi.CallArgs{ + From: &call.From, + To: call.To, + Gas: (*hexutil.Uint64)(&call.Gas), + GasPrice: gasPrice, + Value: value, + Data: (*hexutility.Bytes)(&call.Data), + }, blockRef, nil) } func (cb contractBackend) PendingCodeAt(ctx context.Context, account libcommon.Address) ([]byte, error) { - return cb.node.GetCode(account, requests.BlockNumbers.Pending) + return cb.node.GetCode(account, rpc.PendingBlock) } func (cb contractBackend) PendingNonceAt(ctx context.Context, account libcommon.Address) (uint64, error) { - res, err := cb.node.GetTransactionCount(account, requests.BlockNumbers.Pending) + res, err := cb.node.GetTransactionCount(account, rpc.PendingBlock) if err != nil { return 0, fmt.Errorf("failed to get transaction count for address 0x%x: %v", account, err) diff --git a/cmd/devnet/contracts/build/ChainIdMixin.abi b/cmd/devnet/contracts/build/ChainIdMixin.abi new file mode 100644 index 00000000000..0679dc7f982 --- /dev/null +++ b/cmd/devnet/contracts/build/ChainIdMixin.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"CHAINID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"networkId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/ChainIdMixin.bin b/cmd/devnet/contracts/build/ChainIdMixin.bin new file mode 100644 index 00000000000..a42f094958c --- /dev/null +++ b/cmd/devnet/contracts/build/ChainIdMixin.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50610102806100206000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80639025e64c146037578063cc79f97b14606b575b600080fd5b605760405180604001604052806002815260200161053960f01b81525081565b604051606291906080565b60405180910390f35b607361053981565b6040519081526020016062565b600060208083528351808285015260005b8181101560ab578581018301518582016040015282016091565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220e6870cdfde407f0cde56918e0f6a3b3176e22f8f29210f65969323fb68f9a05b64736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/ChildSender.abi b/cmd/devnet/contracts/build/ChildSender.abi new file mode 100644 index 00000000000..c0fb931d95a --- /dev/null +++ b/cmd/devnet/contracts/build/ChildSender.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"address","name":"childStateReceiver_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"}],"name":"MessageSent","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendToRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/ChildSender.bin b/cmd/devnet/contracts/build/ChildSender.bin new file mode 100644 index 00000000000..d0b73572077 --- /dev/null +++ b/cmd/devnet/contracts/build/ChildSender.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b506040516102b33803806102b383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610220806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637bf786f81461003b5780638152e5021461006d575b600080fd5b61005b61004936600461012c565b60016020526000908152604090205481565b60405190815260200160405180910390f35b61008061007b36600461015c565b610082565b005b3360009081526001602052604090205461009c8282610175565b33600081815260016020908152604080832094909455905483516001600160a01b039091169181019190915291820152606081018390526100ee906080016040516020818303038152906040526100f2565b5050565b7f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b03681604051610121919061019c565b60405180910390a150565b60006020828403121561013e57600080fd5b81356001600160a01b038116811461015557600080fd5b9392505050565b60006020828403121561016e57600080fd5b5035919050565b8082018082111561019657634e487b7160e01b600052601160045260246000fd5b92915050565b600060208083528351808285015260005b818110156101c9578581018301518582016040015282016101ad565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212202b5e4ad44349bb7aa70272a65afd939d928b9e646835ef4b7e65acff3d07b21364736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/ExitPayloadReader.abi b/cmd/devnet/contracts/build/ExitPayloadReader.abi new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/cmd/devnet/contracts/build/ExitPayloadReader.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/ExitPayloadReader.bin b/cmd/devnet/contracts/build/ExitPayloadReader.bin new file mode 100644 index 00000000000..0e7370cd4ad --- /dev/null +++ b/cmd/devnet/contracts/build/ExitPayloadReader.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bd0c6a06e3532455fce52c3e139cac58317944b0cd3296a2f68dc6791cc2b16c64736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/Governable.abi b/cmd/devnet/contracts/build/Governable.abi new file mode 100644 index 00000000000..5be7d7d5b1b --- /dev/null +++ b/cmd/devnet/contracts/build/Governable.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"governance","outputs":[{"internalType":"contract IGovernance","name":"","type":"address"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/Governable.bin b/cmd/devnet/contracts/build/Governable.bin new file mode 100644 index 00000000000..a57aa5e0966 --- /dev/null +++ b/cmd/devnet/contracts/build/Governable.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060405161012338038061012383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6091806100926000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80635aa6e67514602d575b600080fd5b600054603f906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f3fea26469706673582212205573b7ff38baa0f309eb23dd31fd1b16c4f5bf2da9f9ffe920ee2553aab47bf664736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/ICheckpointManager.abi b/cmd/devnet/contracts/build/ICheckpointManager.abi new file mode 100644 index 00000000000..67ba5980f82 --- /dev/null +++ b/cmd/devnet/contracts/build/ICheckpointManager.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"headerBlocks","outputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/ICheckpointManager.bin b/cmd/devnet/contracts/build/ICheckpointManager.bin new file mode 100644 index 00000000000..8597a1990b2 --- /dev/null +++ b/cmd/devnet/contracts/build/ICheckpointManager.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060f38061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806341539d4a14602d575b600080fd5b6070603836600460a5565b60006020819052908152604090208054600182015460028301546003840154600490940154929391929091906001600160a01b031685565b6040805195865260208601949094529284019190915260608301526001600160a01b0316608082015260a00160405180910390f35b60006020828403121560b657600080fd5b503591905056fea26469706673582212206d025d9e83266d3f4dc870d2f3be47196b093117ab5e4367f14e44e42c9b146564736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/IGovernance.abi b/cmd/devnet/contracts/build/IGovernance.abi new file mode 100644 index 00000000000..8221cabdf28 --- /dev/null +++ b/cmd/devnet/contracts/build/IGovernance.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/IGovernance.bin b/cmd/devnet/contracts/build/IGovernance.bin new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cmd/devnet/contracts/build/IRootChain.abi b/cmd/devnet/contracts/build/IRootChain.abi new file mode 100644 index 00000000000..e100705743c --- /dev/null +++ b/cmd/devnet/contracts/build/IRootChain.abi @@ -0,0 +1 @@ +[{"inputs":[],"name":"currentHeaderBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastChildBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256[3][]","name":"sigs","type":"uint256[3][]"}],"name":"submitCheckpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bytes","name":"sigs","type":"bytes"}],"name":"submitHeaderBlock","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/IRootChain.bin b/cmd/devnet/contracts/build/IRootChain.bin new file mode 100644 index 00000000000..e69de29bb2d diff --git a/cmd/devnet/contracts/build/Merkle.abi b/cmd/devnet/contracts/build/Merkle.abi new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/cmd/devnet/contracts/build/Merkle.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/Merkle.bin b/cmd/devnet/contracts/build/Merkle.bin new file mode 100644 index 00000000000..df2eab89501 --- /dev/null +++ b/cmd/devnet/contracts/build/Merkle.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207739c5fda7060eb97027fb86aa71b29b91315b4cad140f6db0f65d635eb1338764736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/MerklePatriciaProof.abi b/cmd/devnet/contracts/build/MerklePatriciaProof.abi new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/cmd/devnet/contracts/build/MerklePatriciaProof.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/MerklePatriciaProof.bin b/cmd/devnet/contracts/build/MerklePatriciaProof.bin new file mode 100644 index 00000000000..613cb8ffd67 --- /dev/null +++ b/cmd/devnet/contracts/build/MerklePatriciaProof.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220412fe39cabba782d636d2bc17109d343bfc3f003512a1188914f2742f22e22b364736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/ProxyStorage.abi b/cmd/devnet/contracts/build/ProxyStorage.abi new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/cmd/devnet/contracts/build/ProxyStorage.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/ProxyStorage.bin b/cmd/devnet/contracts/build/ProxyStorage.bin new file mode 100644 index 00000000000..108862e1f4d --- /dev/null +++ b/cmd/devnet/contracts/build/ProxyStorage.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220f19fe3ff1b547e638b245a1dfab869004f680ce7af6744181151cfa632254b1564736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RLPReader.abi b/cmd/devnet/contracts/build/RLPReader.abi new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/cmd/devnet/contracts/build/RLPReader.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RLPReader.bin b/cmd/devnet/contracts/build/RLPReader.bin new file mode 100644 index 00000000000..fe1e4b7272d --- /dev/null +++ b/cmd/devnet/contracts/build/RLPReader.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122052e9a349bc8a4fd9c5d36d064e612b59e39ba032ed6620df6cc57822b5d7171164736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/Registry.abi b/cmd/devnet/contracts/build/Registry.abi new file mode 100644 index 00000000000..f44f3952dab --- /dev/null +++ b/cmd/devnet/contracts/build/Registry.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":true,"internalType":"address","name":"previousContract","type":"address"},{"indexed":true,"internalType":"address","name":"newContract","type":"address"}],"name":"ContractMapUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"predicate","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"}],"name":"PredicateAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"predicate","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"}],"name":"PredicateRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"validator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"}],"name":"ProofValidatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"validator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"}],"name":"ProofValidatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"rootToken","type":"address"},{"indexed":true,"internalType":"address","name":"childToken","type":"address"}],"name":"TokenMapped","type":"event"},{"inputs":[{"internalType":"address","name":"predicate","type":"address"}],"name":"addErc20Predicate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"predicate","type":"address"}],"name":"addErc721Predicate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"predicate","type":"address"},{"internalType":"enum Registry.Type","name":"_type","type":"uint8"}],"name":"addPredicate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"childToRootToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"contractMap","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"erc20Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"erc721Predicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChildChainAndStateSender","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDepositManagerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSlashingManagerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakeManagerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getValidatorShareAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWethTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWithdrawManagerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"contract IGovernance","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"childToken","type":"address"}],"name":"isChildTokenErc721","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isERC721","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"isTokenMapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"isTokenMappedAndGetPredicate","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"isTokenMappedAndIsErc721","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_rootToken","type":"address"},{"internalType":"address","name":"_childToken","type":"address"},{"internalType":"bool","name":"_isERC721","type":"bool"}],"name":"mapToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"predicates","outputs":[{"internalType":"enum Registry.Type","name":"_type","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"proofValidatorContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"predicate","type":"address"}],"name":"removePredicate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"rootToChildToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_key","type":"bytes32"},{"internalType":"address","name":"_address","type":"address"}],"name":"updateContractMap","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/Registry.bin b/cmd/devnet/contracts/build/Registry.bin new file mode 100644 index 00000000000..a051310fa6e --- /dev/null +++ b/cmd/devnet/contracts/build/Registry.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50604051610e17380380610e1783398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610d84806100936000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80636e86b770116100de578063c881560f11610097578063d580b41811610071578063d580b418146105b0578063daa09e5414610609578063e117694b1461062c578063ea60c7c41461063f57600080fd5b8063c881560f14610561578063cac39a0514610574578063ce2611861461059d57600080fd5b80636e86b7701461043d5780638b9c948914610466578063930df82e146104bf578063b686497614610518578063bbfe7cd31461052b578063c4b875d31461053e57600080fd5b80632d4e1dc71161014b5780635aa6e675116101255780635aa6e67514610358578063627942da1461036b5780636416c1831461037e578063648b8178146103ac57600080fd5b80632d4e1dc71461030257806337b1d585146103155780633af395e51461034557600080fd5b806301f07db51461019357806305f20595146101bb5780630c9effd0146101d05780631c9486ef1461023d5780632026cfdc14610296578063287be3e4146102a9575b600080fd5b6101a66101a1366004610c22565b610668565b60405190151581526020015b60405180910390f35b6101ce6101c9366004610c22565b6106e8565b005b7f396a39c7e290685f408e5373e677285002a403b06145527a7a84a38a30d9ef1060005260036020527fd600d169c07fd47997cb07cc95ab0ac285b9f541f65f50c3956e76fb037128e4546001600160a01b03165b6040516001600160a01b0390911681526020016101b2565b7ff32233bced9bbd82f0754425f51b5ffaf897dacec3c8ac3384a66e38ea701ec860005260036020527f2c73d66689d1be6372940b8899dbabec50bc3330f12d75d9fc6019218a930993546001600160a01b0316610225565b6101ce6102a4366004610c44565b6107b5565b7f56e86af72b94d3aa725a2e35243d6acbf3dc1ada7212033defd5140c5fcb6a9d60005260036020527f239c91ef4f470b7eb660973e3444cb6cdcc8c384fbcc19cf4b3d1698f5c0fa6e546001600160a01b0316610225565b6101ce610310366004610c22565b610832565b610338610323366004610c22565b60086020526000908152604090205460ff1681565b6040516101b29190610c86565b6101ce610353366004610cae565b6108c7565b600054610225906001600160a01b031681565b610225610379366004610c22565b6109bd565b6101a661038c366004610c22565b6001600160a01b0390811660009081526004602052604090205416151590565b600360209081527f2dff30286899e5fc9aa64cfe1341ad29e9a16800a4191daec50e82fc1b6875ca547fa6604f6f9e958c3372fa784685d6216654aef3be0a2255a92dfbab50f7d0b8546000527f0672ac9c59252897b175d7a0a887cab7e9f75ad2b91a0c45d23da560c8a3c9a054604080516001600160a01b0393841681529290911692820192909252016101b2565b61022561044b366004610c22565b6005602052600090815260409020546001600160a01b031681565b7f9fa53c3a84542bc4f793667c49cfa1cbb5e8df2ae0612ada001973a5f448154b60005260036020527f89ad1c8eaa942d5b27028437c407c5982b47bd810a15834238f23ac6ed250edd546001600160a01b0316610225565b7f261885af88107524c32b47256ca1d87cafbd893a7e8cc972ae41fdfb0270335e60005260036020527f2f04f48dbb401768947a64fe05ee6ccaac2d5a350d2beacfdf4d30893026edcb546001600160a01b0316610225565b600154610225906001600160a01b031681565b6101a6610539366004610c22565b6109ef565b6101a661054c366004610c22565b60066020526000908152604090205460ff1681565b600254610225906001600160a01b031681565b610225610582366004610ce9565b6003602052600090815260409020546001600160a01b031681565b6101ce6105ab366004610c22565b610a7a565b7f1ca32e38cf142cb762bc7468b9a3eac49626b43585fcbd6d3b807227216286c260005260036020527f5f5d97228f36044d803d42ad8e4b63042a170d1d6f8a046f7c944b93cc6dbd81546001600160a01b0316610225565b6101a6610617366004610c22565b60076020526000908152604090205460ff1681565b6101ce61063a366004610d02565b610aa8565b61022561064d366004610c22565b6004602052600090815260409020546001600160a01b031681565b6001600160a01b038082166000908152600460205260408120549091166106c95760405162461bcd60e51b815260206004820152601060248201526f1513d2d15397d393d517d3505414115160821b60448201526064015b60405180910390fd5b506001600160a01b031660009081526007602052604090205460ff1690565b6106f0610b9b565b6001600160a01b03811660009081526008602052604081205460ff16600381111561071d5761071d610c70565b0361076a5760405162461bcd60e51b815260206004820152601860248201527f50726564696361746520646f6573206e6f74206578697374000000000000000060448201526064016106c0565b6001600160a01b038116600081815260086020526040808220805460ff19169055513392917fd8b3c0235cefc5e19393dedb56c1ece6b41447ef932d7c6b34eb150a4b5d5f4991a350565b6107bd610b9b565b6000828152600360205260408082205490516001600160a01b038085169392169185917fffb8cfd9cecbede837eec100fb8e17560ea22bf018e065366ee5e2ff5e0bd10c9190a460009182526003602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b61083a610b9b565b6001600160a01b03811661089e5760405162461bcd60e51b815260206004820152602560248201527f43616e206e6f7420616464206e756c6c20616464726573732061732070726564604482015264696361746560d81b60648201526084016106c0565b600180546001600160a01b0319166001600160a01b0383161781556108c49082906108c7565b50565b6108cf610b9b565b6001600160a01b03821660009081526008602052604081205460ff1660038111156108fc576108fc610c70565b146109495760405162461bcd60e51b815260206004820152601760248201527f50726564696361746520616c726561647920616464656400000000000000000060448201526064016106c0565b6001600160a01b0382166000908152600860205260409020805482919060ff1916600183600381111561097e5761097e610c70565b021790555060405133906001600160a01b038416907f0ea727f9bef04eb9a0e0da4d8fbb5b5319ddac03834baded53f84e0dcdddfedf90600090a35050565b60006109c882610668565b156109de5750506002546001600160a01b031690565b50506001546001600160a01b031690565b6001600160a01b0380821660009081526005602052604081205490911680610a595760405162461bcd60e51b815260206004820152601960248201527f4368696c6420746f6b656e206973206e6f74206d61707065640000000000000060448201526064016106c0565b6001600160a01b031660009081526007602052604090205460ff1692915050565b610a82610b9b565b600280546001600160a01b0319166001600160a01b0383161781556108c49082906108c7565b610ab0610b9b565b6001600160a01b03831615801590610ad057506001600160a01b03821615155b610b145760405162461bcd60e51b8152602060048201526015602482015274494e56414c49445f544f4b454e5f4144445245535360581b60448201526064016106c0565b6001600160a01b03838116600081815260046020908152604080832080546001600160a01b0319908116968916968717909155858452600583528184208054909116851790558383526007909152808220805460ff1916861515179055517f85920d35e6c72f6b2affffa04298b0cecfeba86e4a9f407df661f1cb8ab5e6179190a3505050565b6000546001600160a01b03163314610c045760405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920676f7665726e616e636520636f6e747261637420697320617574686044820152651bdc9a5e995960d21b60648201526084016106c0565b565b80356001600160a01b0381168114610c1d57600080fd5b919050565b600060208284031215610c3457600080fd5b610c3d82610c06565b9392505050565b60008060408385031215610c5757600080fd5b82359150610c6760208401610c06565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b6020810160048310610ca857634e487b7160e01b600052602160045260246000fd5b91905290565b60008060408385031215610cc157600080fd5b610cca83610c06565b9150602083013560048110610cde57600080fd5b809150509250929050565b600060208284031215610cfb57600080fd5b5035919050565b600080600060608486031215610d1757600080fd5b610d2084610c06565b9250610d2e60208501610c06565b915060408401358015158114610d4357600080fd5b80915050925092509256fea26469706673582212209592b53634fe553b451696a4b71664cb9e1d3952c10f1c50ab3bb728dac3c4a364736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RootChain.abi b/cmd/devnet/contracts/build/RootChain.abi new file mode 100644 index 00000000000..8a0765be67a --- /dev/null +++ b/cmd/devnet/contracts/build/RootChain.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"uint256","name":"headerBlockId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"end","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"NewHeaderBlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"uint256","name":"headerBlockId","type":"uint256"}],"name":"ResetHeaderBlock","type":"event"},{"inputs":[],"name":"CHAINID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VOTE_TYPE","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_nextHeaderBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentHeaderBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastChildBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"headerBlocks","outputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"heimdallId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"networkId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_heimdallId","type":"string"}],"name":"setHeimdallId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setNextHeaderBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256[3][]","name":"","type":"uint256[3][]"}],"name":"submitCheckpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"submitHeaderBlock","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"numDeposits","type":"uint256"}],"name":"updateDepositId","outputs":[{"internalType":"uint256","name":"depositId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RootChain.bin b/cmd/devnet/contracts/build/RootChain.bin new file mode 100644 index 00000000000..e9039019449 --- /dev/null +++ b/cmd/devnet/contracts/build/RootChain.bin @@ -0,0 +1 @@ +6080604052612710600255600160035534801561001b57600080fd5b50610aa48061002b6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063b87e1b661161008c578063d5b844eb11610066578063d5b844eb14610207578063ea0688b314610221578063ec7e485514610234578063fbc3dd361461023c57600080fd5b8063b87e1b66146101e3578063cc79f97b146101eb578063cf24a0ea146101f457600080fd5b80635391f483116100c85780635391f483146101815780636a791f11146101a25780638d978d88146101b05780639025e64c146101b957600080fd5b80632da25de3146100ef57806341539d4a146100f15780634e43e4951461016e575b600080fd5b005b6101386100ff3660046106e0565b6004602081905260009182526040909120805460018201546002830154600384015493909401549193909290916001600160a01b031685565b6040805195865260208601949094529284019190915260608301526001600160a01b0316608082015260a0015b60405180910390f35b6100ef61017c366004610742565b610245565b61019461018f3660046106e0565b610375565b604051908152602001610165565b6100ef6100ea3660046107dc565b61019460025481565b6101d6604051806040016040528060028152602001600081525081565b604051610165919061086c565b6101946104c0565b6101946104d281565b6100ef6102023660046106e0565b6104e5565b61020f600281565b60405160ff9091168152602001610165565b6100ef61022f3660046108b5565b6105c0565b6101946105ef565b61019460015481565b600080808080610257888a018a61097e565b9550509450945094509450806104d2146102af5760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a5908189bdc8818da185a5b881a5960621b60448201526064015b60405180910390fd5b6102bb85858585610607565b6102ff5760405162461bcd60e51b8152602060048201526015602482015274494e434f52524543545f4845414445525f4441544160581b60448201526064016102a6565b6002546040805186815260208101869052908101849052600091906001600160a01b038816907fba5de06d22af2685c6c7765f60067f7d2b08c2d29f53cdf14d67f6d1c9bfb5279060600160405180910390a460025461036290612710906109e0565b6002555050600160035550505050505050565b6005546040805162c9effd60e41b815290516000926001600160a01b031691630c9effd09160048083019260209291908290030181865afa1580156103be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e291906109f9565b6001600160a01b0316336001600160a01b03161461044c5760405162461bcd60e51b815260206004820152602160248201527f554e415554484f52495a45445f4445504f5349545f4d414e414745525f4f4e4c6044820152605960f81b60648201526084016102a6565b6003546104576105ef565b61046191906109e0565b90508160035461047191906109e0565b600381905561271010156104bb5760405162461bcd60e51b8152602060048201526011602482015270544f4f5f4d414e595f4445504f5349545360781b60448201526064016102a6565b919050565b6000600460006104ce6105ef565b815260200190815260200160002060020154905090565b6104f161271082610a1d565b1561052e5760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b60448201526064016102a6565b805b6002548110156105855760008181526004602081905260408220828155600181018390556002810183905560038101929092550180546001600160a01b031916905561057e612710826109e0565b9050610530565b5060028190556001600355604051819033907fca1d8316287f938830e225956a7bb10fd5a1a1506dd2eb3a476751a48811720590600090a350565b806040516020016105d19190610a3f565b60408051601f19818403018152919052805160209091012060015550565b6002546000906106029061271090610a5b565b905090565b60008061271061ffff16600254111561064757600460006106266105ef565b815260200190815260200160002060020154600161064491906109e0565b90505b8481146106585760009150506106d8565b6040805160a081018252848152602080820193845281830187815242606084019081526001600160a01b038b811660808601908152600280546000908152600496879052979097209551865596516001808701919091559251958501959095555160038401559351910180546001600160a01b0319169190921617905590505b949350505050565b6000602082840312156106f257600080fd5b5035919050565b60008083601f84011261070b57600080fd5b50813567ffffffffffffffff81111561072357600080fd5b60208301915083602082850101111561073b57600080fd5b9250929050565b6000806000806040858703121561075857600080fd5b843567ffffffffffffffff8082111561077057600080fd5b61077c888389016106f9565b9096509450602087013591508082111561079557600080fd5b818701915087601f8301126107a957600080fd5b8135818111156107b857600080fd5b8860206060830285010111156107cd57600080fd5b95989497505060200194505050565b600080600080604085870312156107f257600080fd5b843567ffffffffffffffff8082111561080a57600080fd5b610816888389016106f9565b9096509450602087013591508082111561082f57600080fd5b5061083c878288016106f9565b95989497509550505050565b60005b8381101561086357818101518382015260200161084b565b50506000910152565b602081526000825180602084015261088b816040850160208701610848565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156108c757600080fd5b813567ffffffffffffffff808211156108df57600080fd5b818401915084601f8301126108f357600080fd5b8135818111156109055761090561089f565b604051601f8201601f19908116603f0116810190838211818310171561092d5761092d61089f565b8160405282815287602084870101111561094657600080fd5b826020860160208301376000928101602001929092525095945050505050565b6001600160a01b038116811461097b57600080fd5b50565b60008060008060008060c0878903121561099757600080fd5b86356109a281610966565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156109f3576109f36109ca565b92915050565b600060208284031215610a0b57600080fd5b8151610a1681610966565b9392505050565b600082610a3a57634e487b7160e01b600052601260045260246000fd5b500690565b60008251610a51818460208701610848565b9190910192915050565b818103818111156109f3576109f36109ca56fea2646970667358221220b0082d800e411bf71e97a7dba6c22d98a3bd14f4c8522096b1dfdc5b76803ccf64736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RootChainHeader.abi b/cmd/devnet/contracts/build/RootChainHeader.abi new file mode 100644 index 00000000000..bc0b2ec7754 --- /dev/null +++ b/cmd/devnet/contracts/build/RootChainHeader.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"uint256","name":"headerBlockId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"end","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"NewHeaderBlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"uint256","name":"headerBlockId","type":"uint256"}],"name":"ResetHeaderBlock","type":"event"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RootChainHeader.bin b/cmd/devnet/contracts/build/RootChainHeader.bin new file mode 100644 index 00000000000..cbf7ad2624b --- /dev/null +++ b/cmd/devnet/contracts/build/RootChainHeader.bin @@ -0,0 +1 @@ +6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea26469706673582212200c8ac7f24c4ac2062b97f586926948ab59c95f6377be277888fca7551590093a64736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RootChainStorage.abi b/cmd/devnet/contracts/build/RootChainStorage.abi new file mode 100644 index 00000000000..f74f62e19d8 --- /dev/null +++ b/cmd/devnet/contracts/build/RootChainStorage.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"uint256","name":"headerBlockId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"end","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"NewHeaderBlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"uint256","name":"headerBlockId","type":"uint256"}],"name":"ResetHeaderBlock","type":"event"},{"inputs":[],"name":"CHAINID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VOTE_TYPE","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_nextHeaderBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"headerBlocks","outputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"heimdallId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"networkId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RootChainStorage.bin b/cmd/devnet/contracts/build/RootChainStorage.bin new file mode 100644 index 00000000000..4eb00bc7919 --- /dev/null +++ b/cmd/devnet/contracts/build/RootChainStorage.bin @@ -0,0 +1 @@ +6080604052612710600255600160035534801561001b57600080fd5b506101f28061002b6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806341539d4a146100675780638d978d88146100e45780639025e64c146100fb578063cc79f97b14610129578063d5b844eb14610132578063fbc3dd361461014c575b600080fd5b6100ae610075366004610155565b6004602081905260009182526040909120805460018201546002830154600384015493909401549193909290916001600160a01b031685565b6040805195865260208601949094529284019190915260608301526001600160a01b0316608082015260a0015b60405180910390f35b6100ed60025481565b6040519081526020016100db565b61011c60405180604001604052806002815260200161053960f01b81525081565b6040516100db919061016e565b6100ed61053981565b61013a600281565b60405160ff90911681526020016100db565b6100ed60015481565b60006020828403121561016757600080fd5b5035919050565b600060208083528351808285015260005b8181101561019b5785810183015185820160400152820161017f565b506000604082860101526040601f19601f830116850101925050509291505056fea264697066735822122071950929b53ae66c9034d5ed38e7212ee33978b3a0467a495ec9c37f901c391064736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RootReceiver.abi b/cmd/devnet/contracts/build/RootReceiver.abi new file mode 100644 index 00000000000..ed62067d186 --- /dev/null +++ b/cmd/devnet/contracts/build/RootReceiver.abi @@ -0,0 +1 @@ +[{"inputs":[{"internalType":"address","name":"_checkpointManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_source","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"received","type":"event"},{"inputs":[],"name":"SEND_MESSAGE_EVENT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkpointManager","outputs":[{"internalType":"contract ICheckpointManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"processedExits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"receiveMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"senders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/RootReceiver.bin b/cmd/devnet/contracts/build/RootReceiver.bin new file mode 100644 index 00000000000..fc8e458bbb1 --- /dev/null +++ b/cmd/devnet/contracts/build/RootReceiver.bin @@ -0,0 +1 @@ +608060405234801561001057600080fd5b50604051611ed1380380611ed183398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b611e3e806100936000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630e387de61461005c578063607f2d4214610096578063982fb9d8146100c9578063c0857ba0146100e9578063f953cec714610114575b600080fd5b6100837f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b03681565b6040519081526020015b60405180910390f35b6100b96100a436600461196a565b60016020526000908152604090205460ff1681565b604051901515815260200161008d565b6100836100d736600461199b565b60026020526000908152604090205481565b6000546100fc906001600160a01b031681565b6040516001600160a01b03909116815260200161008d565b610127610122366004611a25565b610129565b005b60008061013583610148565b9150915061014382826103cf565b505050565b600060606000610157846104bb565b905060006101648261051a565b9050600061017183610549565b905060008161017f84610572565b6101888661072e565b60405160200161019a93929190611ac8565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915060ff16156102235760405162461bcd60e51b8152602060048201526024808201527f4678526f6f7454756e6e656c3a20455849545f414c52454144595f50524f434560448201526314d4d15160e21b60648201526084015b60405180910390fd5b60008181526001602081905260408220805460ff191690911790556102478561074a565b9050600061025482610893565b9050600061026187610923565b9050610281610271846020015190565b8761027b8a61093f565b8461095b565b6102d95760405162461bcd60e51b815260206004820152602360248201527f4678526f6f7454756e6e656c3a20494e56414c49445f524543454950545f505260448201526227a7a360e91b606482015260840161021a565b610307856102e689610c28565b6102ef8a610c44565b846102f98c610c60565b6103028d610c7c565b610c98565b600061031283610db2565b90507f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036610348610343836000610dee565b610e26565b146103955760405162461bcd60e51b815260206004820152601f60248201527f4678526f6f7454756e6e656c3a20494e56414c49445f5349474e415455524500604482015260640161021a565b60006103a084610ea1565b8060200190518101906103b39190611af5565b90506103be84610ebd565b9c909b509950505050505050505050565b6000806000838060200190518101906103e89190611b6b565b919450925090506001600160a01b038316301461043a5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b1b2b4bb32b960811b604482015260640161021a565b6001600160a01b03821660009081526002602052604090205461045d8282611bc4565b6001600160a01b0384166000818152600260209081526040918290209390935580519182529181018490527ff11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef910160405180910390a1505050505050565b60408051602081019091526060815260006105056105008460408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b610ee6565b60408051602081019091529081529392505050565b6060610543826000015160088151811061053657610536611bd7565b6020026020010151610ffb565b92915050565b6000610543826000015160028151811061056557610565611bd7565b6020026020010151610e26565b604080516020810190915260008152815160609190156105435760008061059a600086611097565b60f81c905060018114806105b157508060ff166003145b15610658576001855160026105c69190611bed565b6105d09190611c04565b6001600160401b038111156105e7576105e76119b8565b6040519080825280601f01601f191660200182016040528015610611576020820181803683370190505b5092506000610621600187611097565b9050808460008151811061063757610637611bd7565b60200101906001600160f81b031916908160001a90535060019250506106bb565b6002855160026106689190611bed565b6106729190611c04565b6001600160401b03811115610689576106896119b8565b6040519080825280601f01601f1916602001820160405280156106b3576020820181803683370190505b509250600091505b60ff82165b8351811015610725576106ea6106d960ff851683611c04565b6106e4906002611bc4565b87611097565b8482815181106106fc576106fc611bd7565b60200101906001600160f81b031916908160001a9053508061071d81611c17565b9150506106c0565b50505092915050565b6000610543826000015160098151811061056557610565611bd7565b61076e60405180606001604052806060815260200160608152602001600081525090565b610788826000015160068151811061053657610536611bd7565b6020828101829052604080518082018252600080825290830152805180820190915282518152918101908201526107be81611118565b156107d3576107cc81610ee6565b825261087f565b602082015180516000906107e990600190611c04565b6001600160401b03811115610800576108006119b8565b6040519080825280601f01601f19166020018201604052801561082a576020820181803683370190505b50905060008083602101915082602001905061084882828551611153565b60408051808201825260008082526020918201528151808301909252845182528085019082015261087890610ee6565b8652505050505b6108888361072e565b604083015250919050565b6040805160808101825260009181018281526060808301939093528152602081019190915260006108e183600001516003815181106108d4576108d4611bd7565b6020026020010151610ee6565b8360400151815181106108f6576108f6611bd7565b60200260200101519050604051806040016040528082815260200161091a83610ee6565b90529392505050565b6000610543826000015160058151811061056557610565611bd7565b6060610543826000015160078151811061053657610536611bd7565b60008061098f8460408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050600061099c826111de565b9050606080856000806109ae8b610572565b905080516000036109c9576000975050505050505050610c20565b60005b8651811015610c175781518311156109ef57600098505050505050505050610c20565b610a11878281518110610a0457610a04611bd7565b60200260200101516112e8565b955085805190602001208414610a3257600098505050505050505050610c20565b610a54878281518110610a4757610a47611bd7565b60200260200101516111de565b94508451601103610b335781518303610ac0578c80519060200120610a9286601081518110610a8557610a85611bd7565b6020026020010151611366565b8051906020012003610aaf57600198505050505050505050610c20565b600098505050505050505050610c20565b6000828481518110610ad457610ad4611bd7565b016020015160f81c90506010811115610af95760009950505050505050505050610c20565b610b1e868260ff1681518110610b1157610b11611bd7565b6020026020010151611402565b9450610b2b600185611bc4565b935050610c05565b8451600203610aaf576000610b5e610b5787600081518110610a8557610a85611bd7565b8486611430565b8351909150610b6d8286611bc4565b03610bc0578d80519060200120610b9087600181518110610a8557610a85611bd7565b8051906020012003610bae5760019950505050505050505050610c20565b60009950505050505050505050610c20565b80600003610bda5760009950505050505050505050610c20565b610be48185611bc4565b9350610bfc86600181518110610b1157610b11611bd7565b9450610c059050565b80610c0f81611c17565b9150506109cc565b50505050505050505b949350505050565b6000610543826000015160038151811061056557610565611bd7565b6000610543826000015160048151811061056557610565611bd7565b6000610543826000015160008151811061056557610565611bd7565b6060610543826000015160018151811061053657610536611bd7565b600080546040516320a9cea560e11b81526004810185905282916001600160a01b0316906341539d4a9060240160a060405180830381865afa158015610ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d069190611c30565b50505091509150610d5c8189610d1c9190611c04565b6040805160208082018d90528183018c9052606082018b905260808083018b90528351808403909101815260a09092019092528051910120908486611537565b610da85760405162461bcd60e51b815260206004820152601c60248201527f4678526f6f7454756e6e656c3a20494e56414c49445f48454144455200000000604482015260640161021a565b5050505050505050565b6040805160208101909152606081526040518060200160405280610de684602001516001815181106108d4576108d4611bd7565b905292915050565b60408051808201909152600080825260208201528251805183908110610e1657610e16611bd7565b6020026020010151905092915050565b805160009015801590610e3b57508151602110155b610e4457600080fd5b6000610e53836020015161169f565b90506000818460000151610e679190611c04565b9050600080838660200151610e7c9190611bc4565b9050805191506020831015610e9857826020036101000a820491505b50949350505050565b6060610543826020015160028151811061053657610536611bd7565b60006105438260200151600081518110610ed957610ed9611bd7565b6020026020010151611721565b6060610ef182611118565b610efa57600080fd5b6000610f058361173b565b90506000816001600160401b03811115610f2157610f216119b8565b604051908082528060200260200182016040528015610f6657816020015b6040805180820190915260008082526020820152815260200190600190039081610f3f5790505b5090506000610f78856020015161169f565b8560200151610f879190611bc4565b90506000805b84811015610ff057610f9e836117c0565b9150604051806040016040528083815260200184815250848281518110610fc757610fc7611bd7565b6020908102919091010152610fdc8284611bc4565b925080610fe881611c17565b915050610f8d565b509195945050505050565b805160609061100957600080fd5b6000611018836020015161169f565b9050600081846000015161102c9190611c04565b90506000816001600160401b03811115611048576110486119b8565b6040519080825280601f01601f191660200182016040528015611072576020820181803683370190505b5090506000816020019050610e988487602001516110909190611bc4565b8285611864565b60006110a4600284611c93565b156110de576010826110b7600286611ca7565b815181106110c7576110c7611bd7565b01602001516110d9919060f81c611cbb565b61110e565b6010826110ec600286611ca7565b815181106110fc576110fc611bd7565b016020015161110e919060f81c611cdd565b60f81b9392505050565b8051600090810361112b57506000919050565b6020820151805160001a9060c0821015611149575060009392505050565b5060019392505050565b8060000361116057505050565b602081106111985782518252611177602084611bc4565b9250611184602083611bc4565b9150611191602082611c04565b9050611160565b806000036111a557505050565b600060016111b4836020611c04565b6111c090610100611de3565b6111ca9190611c04565b935183518516941916939093179091525050565b60606111e982611118565b6111f257600080fd5b60006111fd836118a9565b90506000816001600160401b03811115611219576112196119b8565b60405190808252806020026020018201604052801561125e57816020015b60408051808201909152600080825260208201528152602001906001900390816112375790505b5090506000611270856020015161169f565b856020015161127f9190611bc4565b90506000805b84811015610ff057611296836117c0565b91506040518060400160405280838152602001848152508482815181106112bf576112bf611bd7565b60209081029190910101526112d48284611bc4565b9250806112e081611c17565b915050611285565b6060600082600001516001600160401b03811115611308576113086119b8565b6040519080825280601f01601f191660200182016040528015611332576020820181803683370190505b50905080516000036113445792915050565b600081602001905061135f8460200151828660000151611925565b5092915050565b805160609061137457600080fd5b6000611383836020015161169f565b905060008184600001516113979190611c04565b90506000816001600160401b038111156113b3576113b36119b8565b6040519080825280601f01601f1916602001820160405280156113dd576020820181803683370190505b5090506000816020019050610e988487602001516113fb9190611bc4565b8285611925565b805160009060211461141357600080fd5b600080836020015160016114279190611bc4565b51949350505050565b6000808061143d86610572565b9050600081516001600160401b0381111561145a5761145a6119b8565b6040519080825280601f01601f191660200182016040528015611484576020820181803683370190505b509050845b82516114959087611bc4565b8110156115085760008782815181106114b0576114b0611bd7565b01602001516001600160f81b031916905080836114cd8985611c04565b815181106114dd576114dd611bd7565b60200101906001600160f81b031916908160001a90535050808061150090611c17565b915050611489565b508080519060200120828051906020012003611527578151925061152c565b600092505b509095945050505050565b6000602082516115479190611c93565b1561158b5760405162461bcd60e51b8152602060048201526014602482015273092dcecc2d8d2c840e0e4dedecc40d8cadccee8d60631b604482015260640161021a565b60006020835161159b9190611ca7565b90506115a8816002611de3565b85106115ee5760405162461bcd60e51b81526020600482015260156024820152744c65616620696e64657820697320746f6f2062696760581b604482015260640161021a565b60008660205b855181116116915785810151925061160d600289611c93565b600003611645576040805160208101849052908101849052606001604051602081830303815290604052805190602001209150611672565b60408051602081018590529081018390526060016040516020818303038152906040528051906020012091505b61167d600289611ca7565b975061168a602082611bc4565b90506115f4565b509094149695505050505050565b8051600090811a60808110156116b85750600092915050565b60b88110806116d3575060c081108015906116d3575060f881105b156116e15750600192915050565b60c0811015611715576116f6600160b8611def565b6117039060ff1682611c04565b61170e906001611bc4565b9392505050565b6116f6600160f8611def565b805160009060151461173257600080fd5b61054382610e26565b8051600090810361174e57506000919050565b60008061175e846020015161169f565b846020015161176d9190611bc4565b90506000846000015185602001516117859190611bc4565b90505b808210156117b757611799826117c0565b6117a39083611bc4565b9150826117af81611c17565b935050611788565b50909392505050565b80516000908190811a60808110156117db576001915061135f565b60b8811015611801576117ef608082611c04565b6117fa906001611bc4565b915061135f565b60c081101561182e5760b78103600185019450806020036101000a8551046001820181019350505061135f565b60f8811015611842576117ef60c082611c04565b60019390930151602084900360f7016101000a900490920160f5190192915050565b8060000361187157505050565b602081106111985782518252611888602084611bc4565b9250611895602083611bc4565b91506118a2602082611c04565b9050611871565b805160009081036118bc57506000919050565b6000806118cc846020015161169f565b84602001516118db9190611bc4565b90506000846000015185602001516118f39190611bc4565b90505b808210156117b757611907826117c0565b6119119083611bc4565b91508261191d81611c17565b9350506118f6565b8060000361193257505050565b602081106111985782518252611949602084611bc4565b9250611956602083611bc4565b9150611963602082611c04565b9050611932565b60006020828403121561197c57600080fd5b5035919050565b6001600160a01b038116811461199857600080fd5b50565b6000602082840312156119ad57600080fd5b813561170e81611983565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156119f6576119f66119b8565b604052919050565b60006001600160401b03821115611a1757611a176119b8565b50601f01601f191660200190565b600060208284031215611a3757600080fd5b81356001600160401b03811115611a4d57600080fd5b8201601f81018413611a5e57600080fd5b8035611a71611a6c826119fe565b6119ce565b818152856020838501011115611a8657600080fd5b81602084016020830137600091810160200191909152949350505050565b60005b83811015611abf578181015183820152602001611aa7565b50506000910152565b83815260008351611ae0816020850160208801611aa4565b60209201918201929092526040019392505050565b600060208284031215611b0757600080fd5b81516001600160401b03811115611b1d57600080fd5b8201601f81018413611b2e57600080fd5b8051611b3c611a6c826119fe565b818152856020838501011115611b5157600080fd5b611b62826020830160208601611aa4565b95945050505050565b600080600060608486031215611b8057600080fd5b8351611b8b81611983565b6020850151909350611b9c81611983565b80925050604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8082018082111561054357610543611bae565b634e487b7160e01b600052603260045260246000fd5b808202811582820484141761054357610543611bae565b8181038181111561054357610543611bae565b600060018201611c2957611c29611bae565b5060010190565b600080600080600060a08688031215611c4857600080fd5b855194506020860151935060408601519250606086015191506080860151611c6f81611983565b809150509295509295909350565b634e487b7160e01b600052601260045260246000fd5b600082611ca257611ca2611c7d565b500690565b600082611cb657611cb6611c7d565b500490565b600060ff831680611cce57611cce611c7d565b8060ff84160691505092915050565b600060ff831680611cf057611cf0611c7d565b8060ff84160491505092915050565b600181815b80851115611d3a578160001904821115611d2057611d20611bae565b80851615611d2d57918102915b93841c9390800290611d04565b509250929050565b600082611d5157506001610543565b81611d5e57506000610543565b8160018114611d745760028114611d7e57611d9a565b6001915050610543565b60ff841115611d8f57611d8f611bae565b50506001821b610543565b5060208310610133831016604e8410600b8410161715611dbd575081810a610543565b611dc78383611cff565b8060001904821115611ddb57611ddb611bae565b029392505050565b600061170e8383611d42565b60ff828116828216039081111561054357610543611bae56fea2646970667358221220a924e520bf4f9d5629bc95702236e2702455bf9b57c4e9e4e344c7c7d7576a2b64736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/SafeMath.abi b/cmd/devnet/contracts/build/SafeMath.abi new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/cmd/devnet/contracts/build/SafeMath.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/SafeMath.bin b/cmd/devnet/contracts/build/SafeMath.bin new file mode 100644 index 00000000000..2e4b4c031c1 --- /dev/null +++ b/cmd/devnet/contracts/build/SafeMath.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a043f7e2f0c8bbcbf3cc5dab09f7bd56ae68a8e71ec23dc15074186793c7ead64736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/TestRootChain.abi b/cmd/devnet/contracts/build/TestRootChain.abi new file mode 100644 index 00000000000..8a0765be67a --- /dev/null +++ b/cmd/devnet/contracts/build/TestRootChain.abi @@ -0,0 +1 @@ +[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"uint256","name":"headerBlockId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"end","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"NewHeaderBlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"uint256","name":"headerBlockId","type":"uint256"}],"name":"ResetHeaderBlock","type":"event"},{"inputs":[],"name":"CHAINID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VOTE_TYPE","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_nextHeaderBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentHeaderBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastChildBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"headerBlocks","outputs":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"heimdallId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"networkId","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_heimdallId","type":"string"}],"name":"setHeimdallId","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setNextHeaderBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256[3][]","name":"","type":"uint256[3][]"}],"name":"submitCheckpoint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"submitHeaderBlock","outputs":[],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"numDeposits","type":"uint256"}],"name":"updateDepositId","outputs":[{"internalType":"uint256","name":"depositId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/TestRootChain.bin b/cmd/devnet/contracts/build/TestRootChain.bin new file mode 100644 index 00000000000..c9eb0e144aa --- /dev/null +++ b/cmd/devnet/contracts/build/TestRootChain.bin @@ -0,0 +1 @@ +6080604052612710600255600160035534801561001b57600080fd5b50610af88061002b6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063b87e1b661161008c578063d5b844eb11610066578063d5b844eb1461020b578063ea0688b314610225578063ec7e485514610238578063fbc3dd361461024057600080fd5b8063b87e1b66146101e7578063cc79f97b146101ef578063cf24a0ea146101f857600080fd5b80635391f483116100c85780635391f483146101815780636a791f11146101a25780638d978d88146101b05780639025e64c146101b957600080fd5b80632da25de3146100ef57806341539d4a146100f15780634e43e4951461016e575b600080fd5b005b6101386100ff36600461072b565b6004602081905260009182526040909120805460018201546002830154600384015493909401549193909290916001600160a01b031685565b6040805195865260208601949094529284019190915260608301526001600160a01b0316608082015260a0015b60405180910390f35b6100ef61017c36600461078d565b610249565b61019461018f36600461072b565b61037b565b604051908152602001610165565b6100ef6100ea366004610827565b61019460025481565b6101da60405180604001604052806002815260200161053960f01b81525081565b60405161016591906108b7565b6101946104c5565b61019461053981565b6100ef61020636600461072b565b6104ea565b610213600281565b60405160ff9091168152602001610165565b6100ef610233366004610900565b6105c5565b6101946105f4565b61019460015481565b6000808080808061025c898b018b6109c9565b95509550955095509550955080610539146102b55760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a5908189bdc8818da185a5b881a5960621b60448201526064015b60405180910390fd5b6102c18686868661060b565b6103055760405162461bcd60e51b8152602060048201526015602482015274494e434f52524543545f4845414445525f4441544160581b60448201526064016102ac565b6002546040805187815260208101879052908101859052600091906001600160a01b038916907fba5de06d22af2685c6c7765f60067f7d2b08c2d29f53cdf14d67f6d1c9bfb5279060600160405180910390a4600254610367906127106106e4565b600255505060016003555050505050505050565b6005546040805162c9effd60e41b815290516000926001600160a01b031691630c9effd09160048083019260209291908290030181865afa1580156103c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e89190610a15565b6001600160a01b0316336001600160a01b0316146104525760405162461bcd60e51b815260206004820152602160248201527f554e415554484f52495a45445f4445504f5349545f4d414e414745525f4f4e4c6044820152605960f81b60648201526084016102ac565b6104666003546104606105f4565b906106e4565b60035490915061047690836106e4565b600381905561271010156104c05760405162461bcd60e51b8152602060048201526011602482015270544f4f5f4d414e595f4445504f5349545360781b60448201526064016102ac565b919050565b6000600460006104d36105f4565b815260200190815260200160002060020154905090565b6104f661271082610a32565b156105335760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b60448201526064016102ac565b805b60025481101561058a5760008181526004602081905260408220828155600181018390556002810183905560038101929092550180546001600160a01b031916905561058361271082610a6a565b9050610535565b5060028190556001600355604051819033907fca1d8316287f938830e225956a7bb10fd5a1a1506dd2eb3a476751a48811720590600090a350565b806040516020016105d69190610a7d565b60408051601f19818403018152919052805160209091012060015550565b60025460009061060690612710610708565b905090565b60008061271061ffff16600254111561064b576004600061062a6105f4565b81526020019081526020016000206002015460016106489190610a6a565b90505b84811461065c5760009150506106dc565b6040805160a081018252848152602080820193845281830187815242606084019081526001600160a01b038b811660808601908152600280546000908152600496879052979097209551865596516001808701919091559251958501959095555160038401559351910180546001600160a01b0319169190921617905590505b949350505050565b60006106f08284610a6a565b90508281101561070257610702610a99565b92915050565b60008282111561071a5761071a610a99565b6107248284610aaf565b9392505050565b60006020828403121561073d57600080fd5b5035919050565b60008083601f84011261075657600080fd5b50813567ffffffffffffffff81111561076e57600080fd5b60208301915083602082850101111561078657600080fd5b9250929050565b600080600080604085870312156107a357600080fd5b843567ffffffffffffffff808211156107bb57600080fd5b6107c788838901610744565b909650945060208701359150808211156107e057600080fd5b818701915087601f8301126107f457600080fd5b81358181111561080357600080fd5b88602060608302850101111561081857600080fd5b95989497505060200194505050565b6000806000806040858703121561083d57600080fd5b843567ffffffffffffffff8082111561085557600080fd5b61086188838901610744565b9096509450602087013591508082111561087a57600080fd5b5061088787828801610744565b95989497509550505050565b60005b838110156108ae578181015183820152602001610896565b50506000910152565b60208152600082518060208401526108d6816040850160208701610893565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561091257600080fd5b813567ffffffffffffffff8082111561092a57600080fd5b818401915084601f83011261093e57600080fd5b813581811115610950576109506108ea565b604051601f8201601f19908116603f01168101908382118183101715610978576109786108ea565b8160405282815287602084870101111561099157600080fd5b826020860160208301376000928101602001929092525095945050505050565b6001600160a01b03811681146109c657600080fd5b50565b60008060008060008060c087890312156109e257600080fd5b86356109ed816109b1565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b600060208284031215610a2757600080fd5b8151610724816109b1565b600082610a4f57634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b8082018082111561070257610702610a54565b60008251610a8f818460208701610893565b9190910192915050565b634e487b7160e01b600052600160045260246000fd5b8181038181111561070257610702610a5456fea2646970667358221220e8aee67b63507e8745850c7b73e998c6ef6b5d41b72b45f8f1316e80e79a1ec964736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/build/lib_RLPReader_sol_RLPReader.abi b/cmd/devnet/contracts/build/lib_RLPReader_sol_RLPReader.abi new file mode 100644 index 00000000000..0637a088a01 --- /dev/null +++ b/cmd/devnet/contracts/build/lib_RLPReader_sol_RLPReader.abi @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/cmd/devnet/contracts/build/lib_RLPReader_sol_RLPReader.bin b/cmd/devnet/contracts/build/lib_RLPReader_sol_RLPReader.bin new file mode 100644 index 00000000000..fe1e4b7272d --- /dev/null +++ b/cmd/devnet/contracts/build/lib_RLPReader_sol_RLPReader.bin @@ -0,0 +1 @@ +60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122052e9a349bc8a4fd9c5d36d064e612b59e39ba032ed6620df6cc57822b5d7171164736f6c63430008140033 \ No newline at end of file diff --git a/cmd/devnet/contracts/childsender.sol b/cmd/devnet/contracts/childsender.sol new file mode 100644 index 00000000000..67492baa730 --- /dev/null +++ b/cmd/devnet/contracts/childsender.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: LGPL-3.0 + +pragma solidity ^0.8.6; + +contract ChildSender { + address rootStateReceiver; + mapping(address => uint) public sent; + + // MessageTunnel on L1 will get data from this event + event MessageSent(bytes message); + + constructor(address childStateReceiver_) { + rootStateReceiver = childStateReceiver_; + } + + function _sendMessageToRoot(bytes memory message) internal { + emit MessageSent(message); + } + + function sendToRoot(uint amount) external { + uint total = sent[msg.sender]; + sent[msg.sender] = total + amount; + + _sendMessageToRoot( + abi.encode(rootStateReceiver, msg.sender, amount) + ); + } +} diff --git a/cmd/devnet/contracts/gen.go b/cmd/devnet/contracts/gen.go index 4c485c77ba8..b971b6da56b 100644 --- a/cmd/devnet/contracts/gen.go +++ b/cmd/devnet/contracts/gen.go @@ -4,14 +4,26 @@ package contracts //go:generate solc --evm-version paris --allow-paths ., --abi --bin --overwrite --optimize -o build rootsender.sol //go:generate abigen -abi build/RootSender.abi -bin build/RootSender.bin -pkg contracts -type RootSender -out ./gen_rootsender.go +// childsender.sol +//go:generate solc --evm-version paris --allow-paths ., --abi --bin --overwrite --optimize -o build childsender.sol +//go:generate abigen -abi build/ChildSender.abi -bin build/ChildSender.bin -pkg contracts -type ChildSender -out ./gen_childsender.go + // teststatesender.sol //go:generate solc --evm-version paris --allow-paths ., --abi --bin --overwrite --optimize -o build teststatesender.sol //go:generate abigen -abi build/TestStateSender.abi -bin build/TestStateSender.bin -pkg contracts -type TestStateSender -out ./gen_teststatesender.go +// rootreceiver.sol +//go:generate solc --evm-version paris --allow-paths ., --abi --bin --overwrite --optimize -o build rootreceiver.sol +//go:generate abigen -abi build/RootReceiver.abi -bin build/RootReceiver.bin -pkg contracts -type RootReceiver -out ./gen_rootreceiver.go + // childreceiver.sol //go:generate solc --evm-version paris --allow-paths ., --abi --bin --overwrite --optimize -o build childreceiver.sol //go:generate abigen -abi build/ChildReceiver.abi -bin build/ChildReceiver.bin -pkg contracts -type ChildReceiver -out ./gen_childreceiver.go +// testrootchain.sol +//go:generate solc --evm-version paris --allow-paths ., --abi --bin --overwrite --optimize -o build testrootchain.sol +//go:generate abigen -abi build/TestRootChain.abi -bin build/TestRootChain.bin -pkg contracts -type TestRootChain -out ./gen_testrootchain.go + // faucet.sol //go:generate solc --evm-version paris --allow-paths ., --abi --bin --overwrite --optimize -o build faucet.sol //go:generate abigen -abi build/Faucet.abi -bin build/Faucet.bin -pkg contracts -type Faucet -out ./gen_faucet.go diff --git a/cmd/devnet/contracts/gen_childsender.go b/cmd/devnet/contracts/gen_childsender.go new file mode 100644 index 00000000000..4928cf39f51 --- /dev/null +++ b/cmd/devnet/contracts/gen_childsender.go @@ -0,0 +1,414 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package contracts + +import ( + "fmt" + "math/big" + "reflect" + "strings" + + ethereum "github.com/ledgerwatch/erigon" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/accounts/abi" + "github.com/ledgerwatch/erigon/accounts/abi/bind" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = libcommon.Big1 + _ = types.BloomLookup + _ = event.NewSubscription +) + +// ChildSenderABI is the input ABI used to generate the binding from. +const ChildSenderABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"childStateReceiver_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"}],\"name\":\"MessageSent\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"sendToRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"sent\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]" + +// ChildSenderBin is the compiled bytecode used for deploying new contracts. +var ChildSenderBin = "0x608060405234801561001057600080fd5b506040516102b33803806102b383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610220806100936000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637bf786f81461003b5780638152e5021461006d575b600080fd5b61005b61004936600461012c565b60016020526000908152604090205481565b60405190815260200160405180910390f35b61008061007b36600461015c565b610082565b005b3360009081526001602052604090205461009c8282610175565b33600081815260016020908152604080832094909455905483516001600160a01b039091169181019190915291820152606081018390526100ee906080016040516020818303038152906040526100f2565b5050565b7f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b03681604051610121919061019c565b60405180910390a150565b60006020828403121561013e57600080fd5b81356001600160a01b038116811461015557600080fd5b9392505050565b60006020828403121561016e57600080fd5b5035919050565b8082018082111561019657634e487b7160e01b600052601160045260246000fd5b92915050565b600060208083528351808285015260005b818110156101c9578581018301518582016040015282016101ad565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212202b5e4ad44349bb7aa70272a65afd939d928b9e646835ef4b7e65acff3d07b21364736f6c63430008140033" + +// DeployChildSender deploys a new Ethereum contract, binding an instance of ChildSender to it. +func DeployChildSender(auth *bind.TransactOpts, backend bind.ContractBackend, childStateReceiver_ libcommon.Address) (libcommon.Address, types.Transaction, *ChildSender, error) { + parsed, err := abi.JSON(strings.NewReader(ChildSenderABI)) + if err != nil { + return libcommon.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, libcommon.FromHex(ChildSenderBin), backend, childStateReceiver_) + if err != nil { + return libcommon.Address{}, nil, nil, err + } + return address, tx, &ChildSender{ChildSenderCaller: ChildSenderCaller{contract: contract}, ChildSenderTransactor: ChildSenderTransactor{contract: contract}, ChildSenderFilterer: ChildSenderFilterer{contract: contract}}, nil +} + +// ChildSender is an auto generated Go binding around an Ethereum contract. +type ChildSender struct { + ChildSenderCaller // Read-only binding to the contract + ChildSenderTransactor // Write-only binding to the contract + ChildSenderFilterer // Log filterer for contract events +} + +// ChildSenderCaller is an auto generated read-only Go binding around an Ethereum contract. +type ChildSenderCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ChildSenderTransactor is an auto generated write-only Go binding around an Ethereum contract. +type ChildSenderTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ChildSenderFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type ChildSenderFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// ChildSenderSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type ChildSenderSession struct { + Contract *ChildSender // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ChildSenderCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type ChildSenderCallerSession struct { + Contract *ChildSenderCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// ChildSenderTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type ChildSenderTransactorSession struct { + Contract *ChildSenderTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// ChildSenderRaw is an auto generated low-level Go binding around an Ethereum contract. +type ChildSenderRaw struct { + Contract *ChildSender // Generic contract binding to access the raw methods on +} + +// ChildSenderCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type ChildSenderCallerRaw struct { + Contract *ChildSenderCaller // Generic read-only contract binding to access the raw methods on +} + +// ChildSenderTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type ChildSenderTransactorRaw struct { + Contract *ChildSenderTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewChildSender creates a new instance of ChildSender, bound to a specific deployed contract. +func NewChildSender(address libcommon.Address, backend bind.ContractBackend) (*ChildSender, error) { + contract, err := bindChildSender(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &ChildSender{ChildSenderCaller: ChildSenderCaller{contract: contract}, ChildSenderTransactor: ChildSenderTransactor{contract: contract}, ChildSenderFilterer: ChildSenderFilterer{contract: contract}}, nil +} + +// NewChildSenderCaller creates a new read-only instance of ChildSender, bound to a specific deployed contract. +func NewChildSenderCaller(address libcommon.Address, caller bind.ContractCaller) (*ChildSenderCaller, error) { + contract, err := bindChildSender(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &ChildSenderCaller{contract: contract}, nil +} + +// NewChildSenderTransactor creates a new write-only instance of ChildSender, bound to a specific deployed contract. +func NewChildSenderTransactor(address libcommon.Address, transactor bind.ContractTransactor) (*ChildSenderTransactor, error) { + contract, err := bindChildSender(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &ChildSenderTransactor{contract: contract}, nil +} + +// NewChildSenderFilterer creates a new log filterer instance of ChildSender, bound to a specific deployed contract. +func NewChildSenderFilterer(address libcommon.Address, filterer bind.ContractFilterer) (*ChildSenderFilterer, error) { + contract, err := bindChildSender(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &ChildSenderFilterer{contract: contract}, nil +} + +// bindChildSender binds a generic wrapper to an already deployed contract. +func bindChildSender(address libcommon.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(ChildSenderABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ChildSender *ChildSenderRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ChildSender.Contract.ChildSenderCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ChildSender *ChildSenderRaw) Transfer(opts *bind.TransactOpts) (types.Transaction, error) { + return _ChildSender.Contract.ChildSenderTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ChildSender *ChildSenderRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (types.Transaction, error) { + return _ChildSender.Contract.ChildSenderTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_ChildSender *ChildSenderCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _ChildSender.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_ChildSender *ChildSenderTransactorRaw) Transfer(opts *bind.TransactOpts) (types.Transaction, error) { + return _ChildSender.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_ChildSender *ChildSenderTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (types.Transaction, error) { + return _ChildSender.Contract.contract.Transact(opts, method, params...) +} + +// Sent is a free data retrieval call binding the contract method 0x7bf786f8. +// +// Solidity: function sent(address ) view returns(uint256) +func (_ChildSender *ChildSenderCaller) Sent(opts *bind.CallOpts, arg0 libcommon.Address) (*big.Int, error) { + var out []interface{} + err := _ChildSender.contract.Call(opts, &out, "sent", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Sent is a free data retrieval call binding the contract method 0x7bf786f8. +// +// Solidity: function sent(address ) view returns(uint256) +func (_ChildSender *ChildSenderSession) Sent(arg0 libcommon.Address) (*big.Int, error) { + return _ChildSender.Contract.Sent(&_ChildSender.CallOpts, arg0) +} + +// Sent is a free data retrieval call binding the contract method 0x7bf786f8. +// +// Solidity: function sent(address ) view returns(uint256) +func (_ChildSender *ChildSenderCallerSession) Sent(arg0 libcommon.Address) (*big.Int, error) { + return _ChildSender.Contract.Sent(&_ChildSender.CallOpts, arg0) +} + +// SendToRoot is a paid mutator transaction binding the contract method 0x8152e502. +// +// Solidity: function sendToRoot(uint256 amount) returns() +func (_ChildSender *ChildSenderTransactor) SendToRoot(opts *bind.TransactOpts, amount *big.Int) (types.Transaction, error) { + return _ChildSender.contract.Transact(opts, "sendToRoot", amount) +} + +// SendToRoot is a paid mutator transaction binding the contract method 0x8152e502. +// +// Solidity: function sendToRoot(uint256 amount) returns() +func (_ChildSender *ChildSenderSession) SendToRoot(amount *big.Int) (types.Transaction, error) { + return _ChildSender.Contract.SendToRoot(&_ChildSender.TransactOpts, amount) +} + +// SendToRoot is a paid mutator transaction binding the contract method 0x8152e502. +// +// Solidity: function sendToRoot(uint256 amount) returns() +func (_ChildSender *ChildSenderTransactorSession) SendToRoot(amount *big.Int) (types.Transaction, error) { + return _ChildSender.Contract.SendToRoot(&_ChildSender.TransactOpts, amount) +} + +// SendToRootParams is an auto generated read-only Go binding of transcaction calldata params +type SendToRootParams struct { + Param_amount *big.Int +} + +// Parse SendToRoot method from calldata of a transaction +// +// Solidity: function sendToRoot(uint256 amount) returns() +func ParseSendToRoot(calldata []byte) (*SendToRootParams, error) { + if len(calldata) <= 4 { + return nil, fmt.Errorf("invalid calldata input") + } + + _abi, err := abi.JSON(strings.NewReader(ChildSenderABI)) + if err != nil { + return nil, fmt.Errorf("failed to get abi of registry metadata: %w", err) + } + + out, err := _abi.Methods["sendToRoot"].Inputs.Unpack(calldata[4:]) + if err != nil { + return nil, fmt.Errorf("failed to unpack sendToRoot params data: %w", err) + } + + var paramsResult = new(SendToRootParams) + value := reflect.ValueOf(paramsResult).Elem() + + if value.NumField() != len(out) { + return nil, fmt.Errorf("failed to match calldata with param field number") + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return &SendToRootParams{ + Param_amount: out0, + }, nil +} + +// ChildSenderMessageSentIterator is returned from FilterMessageSent and is used to iterate over the raw logs and unpacked data for MessageSent events raised by the ChildSender contract. +type ChildSenderMessageSentIterator struct { + Event *ChildSenderMessageSent // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *ChildSenderMessageSentIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(ChildSenderMessageSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(ChildSenderMessageSent) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *ChildSenderMessageSentIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *ChildSenderMessageSentIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// ChildSenderMessageSent represents a MessageSent event raised by the ChildSender contract. +type ChildSenderMessageSent struct { + Message []byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterMessageSent is a free log retrieval operation binding the contract event 0x8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036. +// +// Solidity: event MessageSent(bytes message) +func (_ChildSender *ChildSenderFilterer) FilterMessageSent(opts *bind.FilterOpts) (*ChildSenderMessageSentIterator, error) { + + logs, sub, err := _ChildSender.contract.FilterLogs(opts, "MessageSent") + if err != nil { + return nil, err + } + return &ChildSenderMessageSentIterator{contract: _ChildSender.contract, event: "MessageSent", logs: logs, sub: sub}, nil +} + +// WatchMessageSent is a free log subscription operation binding the contract event 0x8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036. +// +// Solidity: event MessageSent(bytes message) +func (_ChildSender *ChildSenderFilterer) WatchMessageSent(opts *bind.WatchOpts, sink chan<- *ChildSenderMessageSent) (event.Subscription, error) { + + logs, sub, err := _ChildSender.contract.WatchLogs(opts, "MessageSent") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(ChildSenderMessageSent) + if err := _ChildSender.contract.UnpackLog(event, "MessageSent", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseMessageSent is a log parse operation binding the contract event 0x8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036. +// +// Solidity: event MessageSent(bytes message) +func (_ChildSender *ChildSenderFilterer) ParseMessageSent(log types.Log) (*ChildSenderMessageSent, error) { + event := new(ChildSenderMessageSent) + if err := _ChildSender.contract.UnpackLog(event, "MessageSent", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/cmd/devnet/contracts/gen_rootreceiver.go b/cmd/devnet/contracts/gen_rootreceiver.go new file mode 100644 index 00000000000..5f9f39c9aac --- /dev/null +++ b/cmd/devnet/contracts/gen_rootreceiver.go @@ -0,0 +1,508 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package contracts + +import ( + "fmt" + "math/big" + "reflect" + "strings" + + ethereum "github.com/ledgerwatch/erigon" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/accounts/abi" + "github.com/ledgerwatch/erigon/accounts/abi/bind" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = libcommon.Big1 + _ = types.BloomLookup + _ = event.NewSubscription +) + +// RootReceiverABI is the input ABI used to generate the binding from. +const RootReceiverABI = "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_checkpointManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"received\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"SEND_MESSAGE_EVENT_SIG\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"checkpointManager\",\"outputs\":[{\"internalType\":\"contractICheckpointManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"processedExits\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"inputData\",\"type\":\"bytes\"}],\"name\":\"receiveMessage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"senders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]" + +// RootReceiverBin is the compiled bytecode used for deploying new contracts. +var RootReceiverBin = "0x608060405234801561001057600080fd5b50604051611ed1380380611ed183398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b611e3e806100936000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630e387de61461005c578063607f2d4214610096578063982fb9d8146100c9578063c0857ba0146100e9578063f953cec714610114575b600080fd5b6100837f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b03681565b6040519081526020015b60405180910390f35b6100b96100a436600461196a565b60016020526000908152604090205460ff1681565b604051901515815260200161008d565b6100836100d736600461199b565b60026020526000908152604090205481565b6000546100fc906001600160a01b031681565b6040516001600160a01b03909116815260200161008d565b610127610122366004611a25565b610129565b005b60008061013583610148565b9150915061014382826103cf565b505050565b600060606000610157846104bb565b905060006101648261051a565b9050600061017183610549565b905060008161017f84610572565b6101888661072e565b60405160200161019a93929190611ac8565b60408051601f1981840301815291815281516020928301206000818152600190935291205490915060ff16156102235760405162461bcd60e51b8152602060048201526024808201527f4678526f6f7454756e6e656c3a20455849545f414c52454144595f50524f434560448201526314d4d15160e21b60648201526084015b60405180910390fd5b60008181526001602081905260408220805460ff191690911790556102478561074a565b9050600061025482610893565b9050600061026187610923565b9050610281610271846020015190565b8761027b8a61093f565b8461095b565b6102d95760405162461bcd60e51b815260206004820152602360248201527f4678526f6f7454756e6e656c3a20494e56414c49445f524543454950545f505260448201526227a7a360e91b606482015260840161021a565b610307856102e689610c28565b6102ef8a610c44565b846102f98c610c60565b6103028d610c7c565b610c98565b600061031283610db2565b90507f8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036610348610343836000610dee565b610e26565b146103955760405162461bcd60e51b815260206004820152601f60248201527f4678526f6f7454756e6e656c3a20494e56414c49445f5349474e415455524500604482015260640161021a565b60006103a084610ea1565b8060200190518101906103b39190611af5565b90506103be84610ebd565b9c909b509950505050505050505050565b6000806000838060200190518101906103e89190611b6b565b919450925090506001600160a01b038316301461043a5760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103932b1b2b4bb32b960811b604482015260640161021a565b6001600160a01b03821660009081526002602052604090205461045d8282611bc4565b6001600160a01b0384166000818152600260209081526040918290209390935580519182529181018490527ff11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef910160405180910390a1505050505050565b60408051602081019091526060815260006105056105008460408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b610ee6565b60408051602081019091529081529392505050565b6060610543826000015160088151811061053657610536611bd7565b6020026020010151610ffb565b92915050565b6000610543826000015160028151811061056557610565611bd7565b6020026020010151610e26565b604080516020810190915260008152815160609190156105435760008061059a600086611097565b60f81c905060018114806105b157508060ff166003145b15610658576001855160026105c69190611bed565b6105d09190611c04565b6001600160401b038111156105e7576105e76119b8565b6040519080825280601f01601f191660200182016040528015610611576020820181803683370190505b5092506000610621600187611097565b9050808460008151811061063757610637611bd7565b60200101906001600160f81b031916908160001a90535060019250506106bb565b6002855160026106689190611bed565b6106729190611c04565b6001600160401b03811115610689576106896119b8565b6040519080825280601f01601f1916602001820160405280156106b3576020820181803683370190505b509250600091505b60ff82165b8351811015610725576106ea6106d960ff851683611c04565b6106e4906002611bc4565b87611097565b8482815181106106fc576106fc611bd7565b60200101906001600160f81b031916908160001a9053508061071d81611c17565b9150506106c0565b50505092915050565b6000610543826000015160098151811061056557610565611bd7565b61076e60405180606001604052806060815260200160608152602001600081525090565b610788826000015160068151811061053657610536611bd7565b6020828101829052604080518082018252600080825290830152805180820190915282518152918101908201526107be81611118565b156107d3576107cc81610ee6565b825261087f565b602082015180516000906107e990600190611c04565b6001600160401b03811115610800576108006119b8565b6040519080825280601f01601f19166020018201604052801561082a576020820181803683370190505b50905060008083602101915082602001905061084882828551611153565b60408051808201825260008082526020918201528151808301909252845182528085019082015261087890610ee6565b8652505050505b6108888361072e565b604083015250919050565b6040805160808101825260009181018281526060808301939093528152602081019190915260006108e183600001516003815181106108d4576108d4611bd7565b6020026020010151610ee6565b8360400151815181106108f6576108f6611bd7565b60200260200101519050604051806040016040528082815260200161091a83610ee6565b90529392505050565b6000610543826000015160058151811061056557610565611bd7565b6060610543826000015160078151811061053657610536611bd7565b60008061098f8460408051808201825260008082526020918201528151808301909252825182529182019181019190915290565b9050600061099c826111de565b9050606080856000806109ae8b610572565b905080516000036109c9576000975050505050505050610c20565b60005b8651811015610c175781518311156109ef57600098505050505050505050610c20565b610a11878281518110610a0457610a04611bd7565b60200260200101516112e8565b955085805190602001208414610a3257600098505050505050505050610c20565b610a54878281518110610a4757610a47611bd7565b60200260200101516111de565b94508451601103610b335781518303610ac0578c80519060200120610a9286601081518110610a8557610a85611bd7565b6020026020010151611366565b8051906020012003610aaf57600198505050505050505050610c20565b600098505050505050505050610c20565b6000828481518110610ad457610ad4611bd7565b016020015160f81c90506010811115610af95760009950505050505050505050610c20565b610b1e868260ff1681518110610b1157610b11611bd7565b6020026020010151611402565b9450610b2b600185611bc4565b935050610c05565b8451600203610aaf576000610b5e610b5787600081518110610a8557610a85611bd7565b8486611430565b8351909150610b6d8286611bc4565b03610bc0578d80519060200120610b9087600181518110610a8557610a85611bd7565b8051906020012003610bae5760019950505050505050505050610c20565b60009950505050505050505050610c20565b80600003610bda5760009950505050505050505050610c20565b610be48185611bc4565b9350610bfc86600181518110610b1157610b11611bd7565b9450610c059050565b80610c0f81611c17565b9150506109cc565b50505050505050505b949350505050565b6000610543826000015160038151811061056557610565611bd7565b6000610543826000015160048151811061056557610565611bd7565b6000610543826000015160008151811061056557610565611bd7565b6060610543826000015160018151811061053657610536611bd7565b600080546040516320a9cea560e11b81526004810185905282916001600160a01b0316906341539d4a9060240160a060405180830381865afa158015610ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d069190611c30565b50505091509150610d5c8189610d1c9190611c04565b6040805160208082018d90528183018c9052606082018b905260808083018b90528351808403909101815260a09092019092528051910120908486611537565b610da85760405162461bcd60e51b815260206004820152601c60248201527f4678526f6f7454756e6e656c3a20494e56414c49445f48454144455200000000604482015260640161021a565b5050505050505050565b6040805160208101909152606081526040518060200160405280610de684602001516001815181106108d4576108d4611bd7565b905292915050565b60408051808201909152600080825260208201528251805183908110610e1657610e16611bd7565b6020026020010151905092915050565b805160009015801590610e3b57508151602110155b610e4457600080fd5b6000610e53836020015161169f565b90506000818460000151610e679190611c04565b9050600080838660200151610e7c9190611bc4565b9050805191506020831015610e9857826020036101000a820491505b50949350505050565b6060610543826020015160028151811061053657610536611bd7565b60006105438260200151600081518110610ed957610ed9611bd7565b6020026020010151611721565b6060610ef182611118565b610efa57600080fd5b6000610f058361173b565b90506000816001600160401b03811115610f2157610f216119b8565b604051908082528060200260200182016040528015610f6657816020015b6040805180820190915260008082526020820152815260200190600190039081610f3f5790505b5090506000610f78856020015161169f565b8560200151610f879190611bc4565b90506000805b84811015610ff057610f9e836117c0565b9150604051806040016040528083815260200184815250848281518110610fc757610fc7611bd7565b6020908102919091010152610fdc8284611bc4565b925080610fe881611c17565b915050610f8d565b509195945050505050565b805160609061100957600080fd5b6000611018836020015161169f565b9050600081846000015161102c9190611c04565b90506000816001600160401b03811115611048576110486119b8565b6040519080825280601f01601f191660200182016040528015611072576020820181803683370190505b5090506000816020019050610e988487602001516110909190611bc4565b8285611864565b60006110a4600284611c93565b156110de576010826110b7600286611ca7565b815181106110c7576110c7611bd7565b01602001516110d9919060f81c611cbb565b61110e565b6010826110ec600286611ca7565b815181106110fc576110fc611bd7565b016020015161110e919060f81c611cdd565b60f81b9392505050565b8051600090810361112b57506000919050565b6020820151805160001a9060c0821015611149575060009392505050565b5060019392505050565b8060000361116057505050565b602081106111985782518252611177602084611bc4565b9250611184602083611bc4565b9150611191602082611c04565b9050611160565b806000036111a557505050565b600060016111b4836020611c04565b6111c090610100611de3565b6111ca9190611c04565b935183518516941916939093179091525050565b60606111e982611118565b6111f257600080fd5b60006111fd836118a9565b90506000816001600160401b03811115611219576112196119b8565b60405190808252806020026020018201604052801561125e57816020015b60408051808201909152600080825260208201528152602001906001900390816112375790505b5090506000611270856020015161169f565b856020015161127f9190611bc4565b90506000805b84811015610ff057611296836117c0565b91506040518060400160405280838152602001848152508482815181106112bf576112bf611bd7565b60209081029190910101526112d48284611bc4565b9250806112e081611c17565b915050611285565b6060600082600001516001600160401b03811115611308576113086119b8565b6040519080825280601f01601f191660200182016040528015611332576020820181803683370190505b50905080516000036113445792915050565b600081602001905061135f8460200151828660000151611925565b5092915050565b805160609061137457600080fd5b6000611383836020015161169f565b905060008184600001516113979190611c04565b90506000816001600160401b038111156113b3576113b36119b8565b6040519080825280601f01601f1916602001820160405280156113dd576020820181803683370190505b5090506000816020019050610e988487602001516113fb9190611bc4565b8285611925565b805160009060211461141357600080fd5b600080836020015160016114279190611bc4565b51949350505050565b6000808061143d86610572565b9050600081516001600160401b0381111561145a5761145a6119b8565b6040519080825280601f01601f191660200182016040528015611484576020820181803683370190505b509050845b82516114959087611bc4565b8110156115085760008782815181106114b0576114b0611bd7565b01602001516001600160f81b031916905080836114cd8985611c04565b815181106114dd576114dd611bd7565b60200101906001600160f81b031916908160001a90535050808061150090611c17565b915050611489565b508080519060200120828051906020012003611527578151925061152c565b600092505b509095945050505050565b6000602082516115479190611c93565b1561158b5760405162461bcd60e51b8152602060048201526014602482015273092dcecc2d8d2c840e0e4dedecc40d8cadccee8d60631b604482015260640161021a565b60006020835161159b9190611ca7565b90506115a8816002611de3565b85106115ee5760405162461bcd60e51b81526020600482015260156024820152744c65616620696e64657820697320746f6f2062696760581b604482015260640161021a565b60008660205b855181116116915785810151925061160d600289611c93565b600003611645576040805160208101849052908101849052606001604051602081830303815290604052805190602001209150611672565b60408051602081018590529081018390526060016040516020818303038152906040528051906020012091505b61167d600289611ca7565b975061168a602082611bc4565b90506115f4565b509094149695505050505050565b8051600090811a60808110156116b85750600092915050565b60b88110806116d3575060c081108015906116d3575060f881105b156116e15750600192915050565b60c0811015611715576116f6600160b8611def565b6117039060ff1682611c04565b61170e906001611bc4565b9392505050565b6116f6600160f8611def565b805160009060151461173257600080fd5b61054382610e26565b8051600090810361174e57506000919050565b60008061175e846020015161169f565b846020015161176d9190611bc4565b90506000846000015185602001516117859190611bc4565b90505b808210156117b757611799826117c0565b6117a39083611bc4565b9150826117af81611c17565b935050611788565b50909392505050565b80516000908190811a60808110156117db576001915061135f565b60b8811015611801576117ef608082611c04565b6117fa906001611bc4565b915061135f565b60c081101561182e5760b78103600185019450806020036101000a8551046001820181019350505061135f565b60f8811015611842576117ef60c082611c04565b60019390930151602084900360f7016101000a900490920160f5190192915050565b8060000361187157505050565b602081106111985782518252611888602084611bc4565b9250611895602083611bc4565b91506118a2602082611c04565b9050611871565b805160009081036118bc57506000919050565b6000806118cc846020015161169f565b84602001516118db9190611bc4565b90506000846000015185602001516118f39190611bc4565b90505b808210156117b757611907826117c0565b6119119083611bc4565b91508261191d81611c17565b9350506118f6565b8060000361193257505050565b602081106111985782518252611949602084611bc4565b9250611956602083611bc4565b9150611963602082611c04565b9050611932565b60006020828403121561197c57600080fd5b5035919050565b6001600160a01b038116811461199857600080fd5b50565b6000602082840312156119ad57600080fd5b813561170e81611983565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156119f6576119f66119b8565b604052919050565b60006001600160401b03821115611a1757611a176119b8565b50601f01601f191660200190565b600060208284031215611a3757600080fd5b81356001600160401b03811115611a4d57600080fd5b8201601f81018413611a5e57600080fd5b8035611a71611a6c826119fe565b6119ce565b818152856020838501011115611a8657600080fd5b81602084016020830137600091810160200191909152949350505050565b60005b83811015611abf578181015183820152602001611aa7565b50506000910152565b83815260008351611ae0816020850160208801611aa4565b60209201918201929092526040019392505050565b600060208284031215611b0757600080fd5b81516001600160401b03811115611b1d57600080fd5b8201601f81018413611b2e57600080fd5b8051611b3c611a6c826119fe565b818152856020838501011115611b5157600080fd5b611b62826020830160208601611aa4565b95945050505050565b600080600060608486031215611b8057600080fd5b8351611b8b81611983565b6020850151909350611b9c81611983565b80925050604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b8082018082111561054357610543611bae565b634e487b7160e01b600052603260045260246000fd5b808202811582820484141761054357610543611bae565b8181038181111561054357610543611bae565b600060018201611c2957611c29611bae565b5060010190565b600080600080600060a08688031215611c4857600080fd5b855194506020860151935060408601519250606086015191506080860151611c6f81611983565b809150509295509295909350565b634e487b7160e01b600052601260045260246000fd5b600082611ca257611ca2611c7d565b500690565b600082611cb657611cb6611c7d565b500490565b600060ff831680611cce57611cce611c7d565b8060ff84160691505092915050565b600060ff831680611cf057611cf0611c7d565b8060ff84160491505092915050565b600181815b80851115611d3a578160001904821115611d2057611d20611bae565b80851615611d2d57918102915b93841c9390800290611d04565b509250929050565b600082611d5157506001610543565b81611d5e57506000610543565b8160018114611d745760028114611d7e57611d9a565b6001915050610543565b60ff841115611d8f57611d8f611bae565b50506001821b610543565b5060208310610133831016604e8410600b8410161715611dbd575081810a610543565b611dc78383611cff565b8060001904821115611ddb57611ddb611bae565b029392505050565b600061170e8383611d42565b60ff828116828216039081111561054357610543611bae56fea2646970667358221220a924e520bf4f9d5629bc95702236e2702455bf9b57c4e9e4e344c7c7d7576a2b64736f6c63430008140033" + +// DeployRootReceiver deploys a new Ethereum contract, binding an instance of RootReceiver to it. +func DeployRootReceiver(auth *bind.TransactOpts, backend bind.ContractBackend, _checkpointManager libcommon.Address) (libcommon.Address, types.Transaction, *RootReceiver, error) { + parsed, err := abi.JSON(strings.NewReader(RootReceiverABI)) + if err != nil { + return libcommon.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, libcommon.FromHex(RootReceiverBin), backend, _checkpointManager) + if err != nil { + return libcommon.Address{}, nil, nil, err + } + return address, tx, &RootReceiver{RootReceiverCaller: RootReceiverCaller{contract: contract}, RootReceiverTransactor: RootReceiverTransactor{contract: contract}, RootReceiverFilterer: RootReceiverFilterer{contract: contract}}, nil +} + +// RootReceiver is an auto generated Go binding around an Ethereum contract. +type RootReceiver struct { + RootReceiverCaller // Read-only binding to the contract + RootReceiverTransactor // Write-only binding to the contract + RootReceiverFilterer // Log filterer for contract events +} + +// RootReceiverCaller is an auto generated read-only Go binding around an Ethereum contract. +type RootReceiverCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// RootReceiverTransactor is an auto generated write-only Go binding around an Ethereum contract. +type RootReceiverTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// RootReceiverFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type RootReceiverFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// RootReceiverSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type RootReceiverSession struct { + Contract *RootReceiver // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// RootReceiverCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type RootReceiverCallerSession struct { + Contract *RootReceiverCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// RootReceiverTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type RootReceiverTransactorSession struct { + Contract *RootReceiverTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// RootReceiverRaw is an auto generated low-level Go binding around an Ethereum contract. +type RootReceiverRaw struct { + Contract *RootReceiver // Generic contract binding to access the raw methods on +} + +// RootReceiverCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type RootReceiverCallerRaw struct { + Contract *RootReceiverCaller // Generic read-only contract binding to access the raw methods on +} + +// RootReceiverTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type RootReceiverTransactorRaw struct { + Contract *RootReceiverTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewRootReceiver creates a new instance of RootReceiver, bound to a specific deployed contract. +func NewRootReceiver(address libcommon.Address, backend bind.ContractBackend) (*RootReceiver, error) { + contract, err := bindRootReceiver(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &RootReceiver{RootReceiverCaller: RootReceiverCaller{contract: contract}, RootReceiverTransactor: RootReceiverTransactor{contract: contract}, RootReceiverFilterer: RootReceiverFilterer{contract: contract}}, nil +} + +// NewRootReceiverCaller creates a new read-only instance of RootReceiver, bound to a specific deployed contract. +func NewRootReceiverCaller(address libcommon.Address, caller bind.ContractCaller) (*RootReceiverCaller, error) { + contract, err := bindRootReceiver(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &RootReceiverCaller{contract: contract}, nil +} + +// NewRootReceiverTransactor creates a new write-only instance of RootReceiver, bound to a specific deployed contract. +func NewRootReceiverTransactor(address libcommon.Address, transactor bind.ContractTransactor) (*RootReceiverTransactor, error) { + contract, err := bindRootReceiver(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &RootReceiverTransactor{contract: contract}, nil +} + +// NewRootReceiverFilterer creates a new log filterer instance of RootReceiver, bound to a specific deployed contract. +func NewRootReceiverFilterer(address libcommon.Address, filterer bind.ContractFilterer) (*RootReceiverFilterer, error) { + contract, err := bindRootReceiver(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &RootReceiverFilterer{contract: contract}, nil +} + +// bindRootReceiver binds a generic wrapper to an already deployed contract. +func bindRootReceiver(address libcommon.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(RootReceiverABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_RootReceiver *RootReceiverRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _RootReceiver.Contract.RootReceiverCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_RootReceiver *RootReceiverRaw) Transfer(opts *bind.TransactOpts) (types.Transaction, error) { + return _RootReceiver.Contract.RootReceiverTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_RootReceiver *RootReceiverRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (types.Transaction, error) { + return _RootReceiver.Contract.RootReceiverTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_RootReceiver *RootReceiverCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _RootReceiver.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_RootReceiver *RootReceiverTransactorRaw) Transfer(opts *bind.TransactOpts) (types.Transaction, error) { + return _RootReceiver.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_RootReceiver *RootReceiverTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (types.Transaction, error) { + return _RootReceiver.Contract.contract.Transact(opts, method, params...) +} + +// SENDMESSAGEEVENTSIG is a free data retrieval call binding the contract method 0x0e387de6. +// +// Solidity: function SEND_MESSAGE_EVENT_SIG() view returns(bytes32) +func (_RootReceiver *RootReceiverCaller) SENDMESSAGEEVENTSIG(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _RootReceiver.contract.Call(opts, &out, "SEND_MESSAGE_EVENT_SIG") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// SENDMESSAGEEVENTSIG is a free data retrieval call binding the contract method 0x0e387de6. +// +// Solidity: function SEND_MESSAGE_EVENT_SIG() view returns(bytes32) +func (_RootReceiver *RootReceiverSession) SENDMESSAGEEVENTSIG() ([32]byte, error) { + return _RootReceiver.Contract.SENDMESSAGEEVENTSIG(&_RootReceiver.CallOpts) +} + +// SENDMESSAGEEVENTSIG is a free data retrieval call binding the contract method 0x0e387de6. +// +// Solidity: function SEND_MESSAGE_EVENT_SIG() view returns(bytes32) +func (_RootReceiver *RootReceiverCallerSession) SENDMESSAGEEVENTSIG() ([32]byte, error) { + return _RootReceiver.Contract.SENDMESSAGEEVENTSIG(&_RootReceiver.CallOpts) +} + +// CheckpointManager is a free data retrieval call binding the contract method 0xc0857ba0. +// +// Solidity: function checkpointManager() view returns(address) +func (_RootReceiver *RootReceiverCaller) CheckpointManager(opts *bind.CallOpts) (libcommon.Address, error) { + var out []interface{} + err := _RootReceiver.contract.Call(opts, &out, "checkpointManager") + + if err != nil { + return *new(libcommon.Address), err + } + + out0 := *abi.ConvertType(out[0], new(libcommon.Address)).(*libcommon.Address) + + return out0, err + +} + +// CheckpointManager is a free data retrieval call binding the contract method 0xc0857ba0. +// +// Solidity: function checkpointManager() view returns(address) +func (_RootReceiver *RootReceiverSession) CheckpointManager() (libcommon.Address, error) { + return _RootReceiver.Contract.CheckpointManager(&_RootReceiver.CallOpts) +} + +// CheckpointManager is a free data retrieval call binding the contract method 0xc0857ba0. +// +// Solidity: function checkpointManager() view returns(address) +func (_RootReceiver *RootReceiverCallerSession) CheckpointManager() (libcommon.Address, error) { + return _RootReceiver.Contract.CheckpointManager(&_RootReceiver.CallOpts) +} + +// ProcessedExits is a free data retrieval call binding the contract method 0x607f2d42. +// +// Solidity: function processedExits(bytes32 ) view returns(bool) +func (_RootReceiver *RootReceiverCaller) ProcessedExits(opts *bind.CallOpts, arg0 [32]byte) (bool, error) { + var out []interface{} + err := _RootReceiver.contract.Call(opts, &out, "processedExits", arg0) + + if err != nil { + return *new(bool), err + } + + out0 := *abi.ConvertType(out[0], new(bool)).(*bool) + + return out0, err + +} + +// ProcessedExits is a free data retrieval call binding the contract method 0x607f2d42. +// +// Solidity: function processedExits(bytes32 ) view returns(bool) +func (_RootReceiver *RootReceiverSession) ProcessedExits(arg0 [32]byte) (bool, error) { + return _RootReceiver.Contract.ProcessedExits(&_RootReceiver.CallOpts, arg0) +} + +// ProcessedExits is a free data retrieval call binding the contract method 0x607f2d42. +// +// Solidity: function processedExits(bytes32 ) view returns(bool) +func (_RootReceiver *RootReceiverCallerSession) ProcessedExits(arg0 [32]byte) (bool, error) { + return _RootReceiver.Contract.ProcessedExits(&_RootReceiver.CallOpts, arg0) +} + +// Senders is a free data retrieval call binding the contract method 0x982fb9d8. +// +// Solidity: function senders(address ) view returns(uint256) +func (_RootReceiver *RootReceiverCaller) Senders(opts *bind.CallOpts, arg0 libcommon.Address) (*big.Int, error) { + var out []interface{} + err := _RootReceiver.contract.Call(opts, &out, "senders", arg0) + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// Senders is a free data retrieval call binding the contract method 0x982fb9d8. +// +// Solidity: function senders(address ) view returns(uint256) +func (_RootReceiver *RootReceiverSession) Senders(arg0 libcommon.Address) (*big.Int, error) { + return _RootReceiver.Contract.Senders(&_RootReceiver.CallOpts, arg0) +} + +// Senders is a free data retrieval call binding the contract method 0x982fb9d8. +// +// Solidity: function senders(address ) view returns(uint256) +func (_RootReceiver *RootReceiverCallerSession) Senders(arg0 libcommon.Address) (*big.Int, error) { + return _RootReceiver.Contract.Senders(&_RootReceiver.CallOpts, arg0) +} + +// ReceiveMessage is a paid mutator transaction binding the contract method 0xf953cec7. +// +// Solidity: function receiveMessage(bytes inputData) returns() +func (_RootReceiver *RootReceiverTransactor) ReceiveMessage(opts *bind.TransactOpts, inputData []byte) (types.Transaction, error) { + return _RootReceiver.contract.Transact(opts, "receiveMessage", inputData) +} + +// ReceiveMessage is a paid mutator transaction binding the contract method 0xf953cec7. +// +// Solidity: function receiveMessage(bytes inputData) returns() +func (_RootReceiver *RootReceiverSession) ReceiveMessage(inputData []byte) (types.Transaction, error) { + return _RootReceiver.Contract.ReceiveMessage(&_RootReceiver.TransactOpts, inputData) +} + +// ReceiveMessage is a paid mutator transaction binding the contract method 0xf953cec7. +// +// Solidity: function receiveMessage(bytes inputData) returns() +func (_RootReceiver *RootReceiverTransactorSession) ReceiveMessage(inputData []byte) (types.Transaction, error) { + return _RootReceiver.Contract.ReceiveMessage(&_RootReceiver.TransactOpts, inputData) +} + +// ReceiveMessageParams is an auto generated read-only Go binding of transcaction calldata params +type ReceiveMessageParams struct { + Param_inputData []byte +} + +// Parse ReceiveMessage method from calldata of a transaction +// +// Solidity: function receiveMessage(bytes inputData) returns() +func ParseReceiveMessage(calldata []byte) (*ReceiveMessageParams, error) { + if len(calldata) <= 4 { + return nil, fmt.Errorf("invalid calldata input") + } + + _abi, err := abi.JSON(strings.NewReader(RootReceiverABI)) + if err != nil { + return nil, fmt.Errorf("failed to get abi of registry metadata: %w", err) + } + + out, err := _abi.Methods["receiveMessage"].Inputs.Unpack(calldata[4:]) + if err != nil { + return nil, fmt.Errorf("failed to unpack receiveMessage params data: %w", err) + } + + var paramsResult = new(ReceiveMessageParams) + value := reflect.ValueOf(paramsResult).Elem() + + if value.NumField() != len(out) { + return nil, fmt.Errorf("failed to match calldata with param field number") + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return &ReceiveMessageParams{ + Param_inputData: out0, + }, nil +} + +// RootReceiverReceivedIterator is returned from FilterReceived and is used to iterate over the raw logs and unpacked data for Received events raised by the RootReceiver contract. +type RootReceiverReceivedIterator struct { + Event *RootReceiverReceived // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *RootReceiverReceivedIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(RootReceiverReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(RootReceiverReceived) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *RootReceiverReceivedIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *RootReceiverReceivedIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// RootReceiverReceived represents a Received event raised by the RootReceiver contract. +type RootReceiverReceived struct { + Source libcommon.Address + Amount *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterReceived is a free log retrieval operation binding the contract event 0xf11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef. +// +// Solidity: event received(address _source, uint256 _amount) +func (_RootReceiver *RootReceiverFilterer) FilterReceived(opts *bind.FilterOpts) (*RootReceiverReceivedIterator, error) { + + logs, sub, err := _RootReceiver.contract.FilterLogs(opts, "received") + if err != nil { + return nil, err + } + return &RootReceiverReceivedIterator{contract: _RootReceiver.contract, event: "received", logs: logs, sub: sub}, nil +} + +// WatchReceived is a free log subscription operation binding the contract event 0xf11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef. +// +// Solidity: event received(address _source, uint256 _amount) +func (_RootReceiver *RootReceiverFilterer) WatchReceived(opts *bind.WatchOpts, sink chan<- *RootReceiverReceived) (event.Subscription, error) { + + logs, sub, err := _RootReceiver.contract.WatchLogs(opts, "received") + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(RootReceiverReceived) + if err := _RootReceiver.contract.UnpackLog(event, "received", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseReceived is a log parse operation binding the contract event 0xf11e547d796cc64acdf758e7cee90439494fd886a19159454aa61e473fdbafef. +// +// Solidity: event received(address _source, uint256 _amount) +func (_RootReceiver *RootReceiverFilterer) ParseReceived(log types.Log) (*RootReceiverReceived, error) { + event := new(RootReceiverReceived) + if err := _RootReceiver.contract.UnpackLog(event, "received", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/cmd/devnet/contracts/gen_testrootchain.go b/cmd/devnet/contracts/gen_testrootchain.go new file mode 100644 index 00000000000..24d82755a52 --- /dev/null +++ b/cmd/devnet/contracts/gen_testrootchain.go @@ -0,0 +1,1070 @@ +// Code generated - DO NOT EDIT. +// This file is a generated binding and any manual changes will be lost. + +package contracts + +import ( + "fmt" + "math/big" + "reflect" + "strings" + + ethereum "github.com/ledgerwatch/erigon" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/accounts/abi" + "github.com/ledgerwatch/erigon/accounts/abi/bind" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/event" +) + +// Reference imports to suppress errors if they are not otherwise used. +var ( + _ = big.NewInt + _ = strings.NewReader + _ = ethereum.NotFound + _ = bind.Bind + _ = libcommon.Big1 + _ = types.BloomLookup + _ = event.NewSubscription +) + +// TestRootChainABI is the input ABI used to generate the binding from. +const TestRootChainABI = "[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"headerBlockId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"NewHeaderBlock\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"headerBlockId\",\"type\":\"uint256\"}],\"name\":\"ResetHeaderBlock\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"CHAINID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VOTE_TYPE\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_nextHeaderBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentHeaderBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastChildBlock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"headerBlocks\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"start\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"end\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"heimdallId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"networkId\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_heimdallId\",\"type\":\"string\"}],\"name\":\"setHeimdallId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"setNextHeaderBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256[3][]\",\"name\":\"\",\"type\":\"uint256[3][]\"}],\"name\":\"submitCheckpoint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"submitHeaderBlock\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numDeposits\",\"type\":\"uint256\"}],\"name\":\"updateDepositId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"depositId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]" + +// TestRootChainBin is the compiled bytecode used for deploying new contracts. +var TestRootChainBin = "0x6080604052612710600255600160035534801561001b57600080fd5b50610af88061002b6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063b87e1b661161008c578063d5b844eb11610066578063d5b844eb1461020b578063ea0688b314610225578063ec7e485514610238578063fbc3dd361461024057600080fd5b8063b87e1b66146101e7578063cc79f97b146101ef578063cf24a0ea146101f857600080fd5b80635391f483116100c85780635391f483146101815780636a791f11146101a25780638d978d88146101b05780639025e64c146101b957600080fd5b80632da25de3146100ef57806341539d4a146100f15780634e43e4951461016e575b600080fd5b005b6101386100ff36600461072b565b6004602081905260009182526040909120805460018201546002830154600384015493909401549193909290916001600160a01b031685565b6040805195865260208601949094529284019190915260608301526001600160a01b0316608082015260a0015b60405180910390f35b6100ef61017c36600461078d565b610249565b61019461018f36600461072b565b61037b565b604051908152602001610165565b6100ef6100ea366004610827565b61019460025481565b6101da60405180604001604052806002815260200161053960f01b81525081565b60405161016591906108b7565b6101946104c5565b61019461053981565b6100ef61020636600461072b565b6104ea565b610213600281565b60405160ff9091168152602001610165565b6100ef610233366004610900565b6105c5565b6101946105f4565b61019460015481565b6000808080808061025c898b018b6109c9565b95509550955095509550955080610539146102b55760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a5908189bdc8818da185a5b881a5960621b60448201526064015b60405180910390fd5b6102c18686868661060b565b6103055760405162461bcd60e51b8152602060048201526015602482015274494e434f52524543545f4845414445525f4441544160581b60448201526064016102ac565b6002546040805187815260208101879052908101859052600091906001600160a01b038916907fba5de06d22af2685c6c7765f60067f7d2b08c2d29f53cdf14d67f6d1c9bfb5279060600160405180910390a4600254610367906127106106e4565b600255505060016003555050505050505050565b6005546040805162c9effd60e41b815290516000926001600160a01b031691630c9effd09160048083019260209291908290030181865afa1580156103c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e89190610a15565b6001600160a01b0316336001600160a01b0316146104525760405162461bcd60e51b815260206004820152602160248201527f554e415554484f52495a45445f4445504f5349545f4d414e414745525f4f4e4c6044820152605960f81b60648201526084016102ac565b6104666003546104606105f4565b906106e4565b60035490915061047690836106e4565b600381905561271010156104c05760405162461bcd60e51b8152602060048201526011602482015270544f4f5f4d414e595f4445504f5349545360781b60448201526064016102ac565b919050565b6000600460006104d36105f4565b815260200190815260200160002060020154905090565b6104f661271082610a32565b156105335760405162461bcd60e51b815260206004820152600d60248201526c496e76616c69642076616c756560981b60448201526064016102ac565b805b60025481101561058a5760008181526004602081905260408220828155600181018390556002810183905560038101929092550180546001600160a01b031916905561058361271082610a6a565b9050610535565b5060028190556001600355604051819033907fca1d8316287f938830e225956a7bb10fd5a1a1506dd2eb3a476751a48811720590600090a350565b806040516020016105d69190610a7d565b60408051601f19818403018152919052805160209091012060015550565b60025460009061060690612710610708565b905090565b60008061271061ffff16600254111561064b576004600061062a6105f4565b81526020019081526020016000206002015460016106489190610a6a565b90505b84811461065c5760009150506106dc565b6040805160a081018252848152602080820193845281830187815242606084019081526001600160a01b038b811660808601908152600280546000908152600496879052979097209551865596516001808701919091559251958501959095555160038401559351910180546001600160a01b0319169190921617905590505b949350505050565b60006106f08284610a6a565b90508281101561070257610702610a99565b92915050565b60008282111561071a5761071a610a99565b6107248284610aaf565b9392505050565b60006020828403121561073d57600080fd5b5035919050565b60008083601f84011261075657600080fd5b50813567ffffffffffffffff81111561076e57600080fd5b60208301915083602082850101111561078657600080fd5b9250929050565b600080600080604085870312156107a357600080fd5b843567ffffffffffffffff808211156107bb57600080fd5b6107c788838901610744565b909650945060208701359150808211156107e057600080fd5b818701915087601f8301126107f457600080fd5b81358181111561080357600080fd5b88602060608302850101111561081857600080fd5b95989497505060200194505050565b6000806000806040858703121561083d57600080fd5b843567ffffffffffffffff8082111561085557600080fd5b61086188838901610744565b9096509450602087013591508082111561087a57600080fd5b5061088787828801610744565b95989497509550505050565b60005b838110156108ae578181015183820152602001610896565b50506000910152565b60208152600082518060208401526108d6816040850160208701610893565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561091257600080fd5b813567ffffffffffffffff8082111561092a57600080fd5b818401915084601f83011261093e57600080fd5b813581811115610950576109506108ea565b604051601f8201601f19908116603f01168101908382118183101715610978576109786108ea565b8160405282815287602084870101111561099157600080fd5b826020860160208301376000928101602001929092525095945050505050565b6001600160a01b03811681146109c657600080fd5b50565b60008060008060008060c087890312156109e257600080fd5b86356109ed816109b1565b9860208801359850604088013597606081013597506080810135965060a00135945092505050565b600060208284031215610a2757600080fd5b8151610724816109b1565b600082610a4f57634e487b7160e01b600052601260045260246000fd5b500690565b634e487b7160e01b600052601160045260246000fd5b8082018082111561070257610702610a54565b60008251610a8f818460208701610893565b9190910192915050565b634e487b7160e01b600052600160045260246000fd5b8181038181111561070257610702610a5456fea2646970667358221220e8aee67b63507e8745850c7b73e998c6ef6b5d41b72b45f8f1316e80e79a1ec964736f6c63430008140033" + +// DeployTestRootChain deploys a new Ethereum contract, binding an instance of TestRootChain to it. +func DeployTestRootChain(auth *bind.TransactOpts, backend bind.ContractBackend) (libcommon.Address, types.Transaction, *TestRootChain, error) { + parsed, err := abi.JSON(strings.NewReader(TestRootChainABI)) + if err != nil { + return libcommon.Address{}, nil, nil, err + } + + address, tx, contract, err := bind.DeployContract(auth, parsed, libcommon.FromHex(TestRootChainBin), backend) + if err != nil { + return libcommon.Address{}, nil, nil, err + } + return address, tx, &TestRootChain{TestRootChainCaller: TestRootChainCaller{contract: contract}, TestRootChainTransactor: TestRootChainTransactor{contract: contract}, TestRootChainFilterer: TestRootChainFilterer{contract: contract}}, nil +} + +// TestRootChain is an auto generated Go binding around an Ethereum contract. +type TestRootChain struct { + TestRootChainCaller // Read-only binding to the contract + TestRootChainTransactor // Write-only binding to the contract + TestRootChainFilterer // Log filterer for contract events +} + +// TestRootChainCaller is an auto generated read-only Go binding around an Ethereum contract. +type TestRootChainCaller struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestRootChainTransactor is an auto generated write-only Go binding around an Ethereum contract. +type TestRootChainTransactor struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestRootChainFilterer is an auto generated log filtering Go binding around an Ethereum contract events. +type TestRootChainFilterer struct { + contract *bind.BoundContract // Generic contract wrapper for the low level calls +} + +// TestRootChainSession is an auto generated Go binding around an Ethereum contract, +// with pre-set call and transact options. +type TestRootChainSession struct { + Contract *TestRootChain // Generic contract binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestRootChainCallerSession is an auto generated read-only Go binding around an Ethereum contract, +// with pre-set call options. +type TestRootChainCallerSession struct { + Contract *TestRootChainCaller // Generic contract caller binding to set the session for + CallOpts bind.CallOpts // Call options to use throughout this session +} + +// TestRootChainTransactorSession is an auto generated write-only Go binding around an Ethereum contract, +// with pre-set transact options. +type TestRootChainTransactorSession struct { + Contract *TestRootChainTransactor // Generic contract transactor binding to set the session for + TransactOpts bind.TransactOpts // Transaction auth options to use throughout this session +} + +// TestRootChainRaw is an auto generated low-level Go binding around an Ethereum contract. +type TestRootChainRaw struct { + Contract *TestRootChain // Generic contract binding to access the raw methods on +} + +// TestRootChainCallerRaw is an auto generated low-level read-only Go binding around an Ethereum contract. +type TestRootChainCallerRaw struct { + Contract *TestRootChainCaller // Generic read-only contract binding to access the raw methods on +} + +// TestRootChainTransactorRaw is an auto generated low-level write-only Go binding around an Ethereum contract. +type TestRootChainTransactorRaw struct { + Contract *TestRootChainTransactor // Generic write-only contract binding to access the raw methods on +} + +// NewTestRootChain creates a new instance of TestRootChain, bound to a specific deployed contract. +func NewTestRootChain(address libcommon.Address, backend bind.ContractBackend) (*TestRootChain, error) { + contract, err := bindTestRootChain(address, backend, backend, backend) + if err != nil { + return nil, err + } + return &TestRootChain{TestRootChainCaller: TestRootChainCaller{contract: contract}, TestRootChainTransactor: TestRootChainTransactor{contract: contract}, TestRootChainFilterer: TestRootChainFilterer{contract: contract}}, nil +} + +// NewTestRootChainCaller creates a new read-only instance of TestRootChain, bound to a specific deployed contract. +func NewTestRootChainCaller(address libcommon.Address, caller bind.ContractCaller) (*TestRootChainCaller, error) { + contract, err := bindTestRootChain(address, caller, nil, nil) + if err != nil { + return nil, err + } + return &TestRootChainCaller{contract: contract}, nil +} + +// NewTestRootChainTransactor creates a new write-only instance of TestRootChain, bound to a specific deployed contract. +func NewTestRootChainTransactor(address libcommon.Address, transactor bind.ContractTransactor) (*TestRootChainTransactor, error) { + contract, err := bindTestRootChain(address, nil, transactor, nil) + if err != nil { + return nil, err + } + return &TestRootChainTransactor{contract: contract}, nil +} + +// NewTestRootChainFilterer creates a new log filterer instance of TestRootChain, bound to a specific deployed contract. +func NewTestRootChainFilterer(address libcommon.Address, filterer bind.ContractFilterer) (*TestRootChainFilterer, error) { + contract, err := bindTestRootChain(address, nil, nil, filterer) + if err != nil { + return nil, err + } + return &TestRootChainFilterer{contract: contract}, nil +} + +// bindTestRootChain binds a generic wrapper to an already deployed contract. +func bindTestRootChain(address libcommon.Address, caller bind.ContractCaller, transactor bind.ContractTransactor, filterer bind.ContractFilterer) (*bind.BoundContract, error) { + parsed, err := abi.JSON(strings.NewReader(TestRootChainABI)) + if err != nil { + return nil, err + } + return bind.NewBoundContract(address, parsed, caller, transactor, filterer), nil +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TestRootChain *TestRootChainRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TestRootChain.Contract.TestRootChainCaller.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TestRootChain *TestRootChainRaw) Transfer(opts *bind.TransactOpts) (types.Transaction, error) { + return _TestRootChain.Contract.TestRootChainTransactor.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TestRootChain *TestRootChainRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (types.Transaction, error) { + return _TestRootChain.Contract.TestRootChainTransactor.contract.Transact(opts, method, params...) +} + +// Call invokes the (constant) contract method with params as input values and +// sets the output to result. The result type might be a single field for simple +// returns, a slice of interfaces for anonymous returns and a struct for named +// returns. +func (_TestRootChain *TestRootChainCallerRaw) Call(opts *bind.CallOpts, result *[]interface{}, method string, params ...interface{}) error { + return _TestRootChain.Contract.contract.Call(opts, result, method, params...) +} + +// Transfer initiates a plain transaction to move funds to the contract, calling +// its default method if one is available. +func (_TestRootChain *TestRootChainTransactorRaw) Transfer(opts *bind.TransactOpts) (types.Transaction, error) { + return _TestRootChain.Contract.contract.Transfer(opts) +} + +// Transact invokes the (paid) contract method with params as input values. +func (_TestRootChain *TestRootChainTransactorRaw) Transact(opts *bind.TransactOpts, method string, params ...interface{}) (types.Transaction, error) { + return _TestRootChain.Contract.contract.Transact(opts, method, params...) +} + +// CHAINID is a free data retrieval call binding the contract method 0xcc79f97b. +// +// Solidity: function CHAINID() view returns(uint256) +func (_TestRootChain *TestRootChainCaller) CHAINID(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TestRootChain.contract.Call(opts, &out, "CHAINID") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CHAINID is a free data retrieval call binding the contract method 0xcc79f97b. +// +// Solidity: function CHAINID() view returns(uint256) +func (_TestRootChain *TestRootChainSession) CHAINID() (*big.Int, error) { + return _TestRootChain.Contract.CHAINID(&_TestRootChain.CallOpts) +} + +// CHAINID is a free data retrieval call binding the contract method 0xcc79f97b. +// +// Solidity: function CHAINID() view returns(uint256) +func (_TestRootChain *TestRootChainCallerSession) CHAINID() (*big.Int, error) { + return _TestRootChain.Contract.CHAINID(&_TestRootChain.CallOpts) +} + +// VOTETYPE is a free data retrieval call binding the contract method 0xd5b844eb. +// +// Solidity: function VOTE_TYPE() view returns(uint8) +func (_TestRootChain *TestRootChainCaller) VOTETYPE(opts *bind.CallOpts) (uint8, error) { + var out []interface{} + err := _TestRootChain.contract.Call(opts, &out, "VOTE_TYPE") + + if err != nil { + return *new(uint8), err + } + + out0 := *abi.ConvertType(out[0], new(uint8)).(*uint8) + + return out0, err + +} + +// VOTETYPE is a free data retrieval call binding the contract method 0xd5b844eb. +// +// Solidity: function VOTE_TYPE() view returns(uint8) +func (_TestRootChain *TestRootChainSession) VOTETYPE() (uint8, error) { + return _TestRootChain.Contract.VOTETYPE(&_TestRootChain.CallOpts) +} + +// VOTETYPE is a free data retrieval call binding the contract method 0xd5b844eb. +// +// Solidity: function VOTE_TYPE() view returns(uint8) +func (_TestRootChain *TestRootChainCallerSession) VOTETYPE() (uint8, error) { + return _TestRootChain.Contract.VOTETYPE(&_TestRootChain.CallOpts) +} + +// NextHeaderBlock is a free data retrieval call binding the contract method 0x8d978d88. +// +// Solidity: function _nextHeaderBlock() view returns(uint256) +func (_TestRootChain *TestRootChainCaller) NextHeaderBlock(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TestRootChain.contract.Call(opts, &out, "_nextHeaderBlock") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// NextHeaderBlock is a free data retrieval call binding the contract method 0x8d978d88. +// +// Solidity: function _nextHeaderBlock() view returns(uint256) +func (_TestRootChain *TestRootChainSession) NextHeaderBlock() (*big.Int, error) { + return _TestRootChain.Contract.NextHeaderBlock(&_TestRootChain.CallOpts) +} + +// NextHeaderBlock is a free data retrieval call binding the contract method 0x8d978d88. +// +// Solidity: function _nextHeaderBlock() view returns(uint256) +func (_TestRootChain *TestRootChainCallerSession) NextHeaderBlock() (*big.Int, error) { + return _TestRootChain.Contract.NextHeaderBlock(&_TestRootChain.CallOpts) +} + +// CurrentHeaderBlock is a free data retrieval call binding the contract method 0xec7e4855. +// +// Solidity: function currentHeaderBlock() view returns(uint256) +func (_TestRootChain *TestRootChainCaller) CurrentHeaderBlock(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TestRootChain.contract.Call(opts, &out, "currentHeaderBlock") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// CurrentHeaderBlock is a free data retrieval call binding the contract method 0xec7e4855. +// +// Solidity: function currentHeaderBlock() view returns(uint256) +func (_TestRootChain *TestRootChainSession) CurrentHeaderBlock() (*big.Int, error) { + return _TestRootChain.Contract.CurrentHeaderBlock(&_TestRootChain.CallOpts) +} + +// CurrentHeaderBlock is a free data retrieval call binding the contract method 0xec7e4855. +// +// Solidity: function currentHeaderBlock() view returns(uint256) +func (_TestRootChain *TestRootChainCallerSession) CurrentHeaderBlock() (*big.Int, error) { + return _TestRootChain.Contract.CurrentHeaderBlock(&_TestRootChain.CallOpts) +} + +// GetLastChildBlock is a free data retrieval call binding the contract method 0xb87e1b66. +// +// Solidity: function getLastChildBlock() view returns(uint256) +func (_TestRootChain *TestRootChainCaller) GetLastChildBlock(opts *bind.CallOpts) (*big.Int, error) { + var out []interface{} + err := _TestRootChain.contract.Call(opts, &out, "getLastChildBlock") + + if err != nil { + return *new(*big.Int), err + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return out0, err + +} + +// GetLastChildBlock is a free data retrieval call binding the contract method 0xb87e1b66. +// +// Solidity: function getLastChildBlock() view returns(uint256) +func (_TestRootChain *TestRootChainSession) GetLastChildBlock() (*big.Int, error) { + return _TestRootChain.Contract.GetLastChildBlock(&_TestRootChain.CallOpts) +} + +// GetLastChildBlock is a free data retrieval call binding the contract method 0xb87e1b66. +// +// Solidity: function getLastChildBlock() view returns(uint256) +func (_TestRootChain *TestRootChainCallerSession) GetLastChildBlock() (*big.Int, error) { + return _TestRootChain.Contract.GetLastChildBlock(&_TestRootChain.CallOpts) +} + +// HeaderBlocks is a free data retrieval call binding the contract method 0x41539d4a. +// +// Solidity: function headerBlocks(uint256 ) view returns(bytes32 root, uint256 start, uint256 end, uint256 createdAt, address proposer) +func (_TestRootChain *TestRootChainCaller) HeaderBlocks(opts *bind.CallOpts, arg0 *big.Int) (struct { + Root [32]byte + Start *big.Int + End *big.Int + CreatedAt *big.Int + Proposer libcommon.Address +}, error) { + var out []interface{} + err := _TestRootChain.contract.Call(opts, &out, "headerBlocks", arg0) + + outstruct := new(struct { + Root [32]byte + Start *big.Int + End *big.Int + CreatedAt *big.Int + Proposer libcommon.Address + }) + if err != nil { + return *outstruct, err + } + + outstruct.Root = *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + outstruct.Start = *abi.ConvertType(out[1], new(*big.Int)).(**big.Int) + outstruct.End = *abi.ConvertType(out[2], new(*big.Int)).(**big.Int) + outstruct.CreatedAt = *abi.ConvertType(out[3], new(*big.Int)).(**big.Int) + outstruct.Proposer = *abi.ConvertType(out[4], new(libcommon.Address)).(*libcommon.Address) + + return *outstruct, err + +} + +// HeaderBlocks is a free data retrieval call binding the contract method 0x41539d4a. +// +// Solidity: function headerBlocks(uint256 ) view returns(bytes32 root, uint256 start, uint256 end, uint256 createdAt, address proposer) +func (_TestRootChain *TestRootChainSession) HeaderBlocks(arg0 *big.Int) (struct { + Root [32]byte + Start *big.Int + End *big.Int + CreatedAt *big.Int + Proposer libcommon.Address +}, error) { + return _TestRootChain.Contract.HeaderBlocks(&_TestRootChain.CallOpts, arg0) +} + +// HeaderBlocks is a free data retrieval call binding the contract method 0x41539d4a. +// +// Solidity: function headerBlocks(uint256 ) view returns(bytes32 root, uint256 start, uint256 end, uint256 createdAt, address proposer) +func (_TestRootChain *TestRootChainCallerSession) HeaderBlocks(arg0 *big.Int) (struct { + Root [32]byte + Start *big.Int + End *big.Int + CreatedAt *big.Int + Proposer libcommon.Address +}, error) { + return _TestRootChain.Contract.HeaderBlocks(&_TestRootChain.CallOpts, arg0) +} + +// HeimdallId is a free data retrieval call binding the contract method 0xfbc3dd36. +// +// Solidity: function heimdallId() view returns(bytes32) +func (_TestRootChain *TestRootChainCaller) HeimdallId(opts *bind.CallOpts) ([32]byte, error) { + var out []interface{} + err := _TestRootChain.contract.Call(opts, &out, "heimdallId") + + if err != nil { + return *new([32]byte), err + } + + out0 := *abi.ConvertType(out[0], new([32]byte)).(*[32]byte) + + return out0, err + +} + +// HeimdallId is a free data retrieval call binding the contract method 0xfbc3dd36. +// +// Solidity: function heimdallId() view returns(bytes32) +func (_TestRootChain *TestRootChainSession) HeimdallId() ([32]byte, error) { + return _TestRootChain.Contract.HeimdallId(&_TestRootChain.CallOpts) +} + +// HeimdallId is a free data retrieval call binding the contract method 0xfbc3dd36. +// +// Solidity: function heimdallId() view returns(bytes32) +func (_TestRootChain *TestRootChainCallerSession) HeimdallId() ([32]byte, error) { + return _TestRootChain.Contract.HeimdallId(&_TestRootChain.CallOpts) +} + +// NetworkId is a free data retrieval call binding the contract method 0x9025e64c. +// +// Solidity: function networkId() view returns(bytes) +func (_TestRootChain *TestRootChainCaller) NetworkId(opts *bind.CallOpts) ([]byte, error) { + var out []interface{} + err := _TestRootChain.contract.Call(opts, &out, "networkId") + + if err != nil { + return *new([]byte), err + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + + return out0, err + +} + +// NetworkId is a free data retrieval call binding the contract method 0x9025e64c. +// +// Solidity: function networkId() view returns(bytes) +func (_TestRootChain *TestRootChainSession) NetworkId() ([]byte, error) { + return _TestRootChain.Contract.NetworkId(&_TestRootChain.CallOpts) +} + +// NetworkId is a free data retrieval call binding the contract method 0x9025e64c. +// +// Solidity: function networkId() view returns(bytes) +func (_TestRootChain *TestRootChainCallerSession) NetworkId() ([]byte, error) { + return _TestRootChain.Contract.NetworkId(&_TestRootChain.CallOpts) +} + +// SubmitHeaderBlock is a free data retrieval call binding the contract method 0x6a791f11. +// +// Solidity: function submitHeaderBlock(bytes , bytes ) pure returns() +func (_TestRootChain *TestRootChainCaller) SubmitHeaderBlock(opts *bind.CallOpts, arg0 []byte, arg1 []byte) error { + var out []interface{} + err := _TestRootChain.contract.Call(opts, &out, "submitHeaderBlock", arg0, arg1) + + if err != nil { + return err + } + + return err + +} + +// SubmitHeaderBlock is a free data retrieval call binding the contract method 0x6a791f11. +// +// Solidity: function submitHeaderBlock(bytes , bytes ) pure returns() +func (_TestRootChain *TestRootChainSession) SubmitHeaderBlock(arg0 []byte, arg1 []byte) error { + return _TestRootChain.Contract.SubmitHeaderBlock(&_TestRootChain.CallOpts, arg0, arg1) +} + +// SubmitHeaderBlock is a free data retrieval call binding the contract method 0x6a791f11. +// +// Solidity: function submitHeaderBlock(bytes , bytes ) pure returns() +func (_TestRootChain *TestRootChainCallerSession) SubmitHeaderBlock(arg0 []byte, arg1 []byte) error { + return _TestRootChain.Contract.SubmitHeaderBlock(&_TestRootChain.CallOpts, arg0, arg1) +} + +// SetHeimdallId is a paid mutator transaction binding the contract method 0xea0688b3. +// +// Solidity: function setHeimdallId(string _heimdallId) returns() +func (_TestRootChain *TestRootChainTransactor) SetHeimdallId(opts *bind.TransactOpts, _heimdallId string) (types.Transaction, error) { + return _TestRootChain.contract.Transact(opts, "setHeimdallId", _heimdallId) +} + +// SetHeimdallId is a paid mutator transaction binding the contract method 0xea0688b3. +// +// Solidity: function setHeimdallId(string _heimdallId) returns() +func (_TestRootChain *TestRootChainSession) SetHeimdallId(_heimdallId string) (types.Transaction, error) { + return _TestRootChain.Contract.SetHeimdallId(&_TestRootChain.TransactOpts, _heimdallId) +} + +// SetHeimdallId is a paid mutator transaction binding the contract method 0xea0688b3. +// +// Solidity: function setHeimdallId(string _heimdallId) returns() +func (_TestRootChain *TestRootChainTransactorSession) SetHeimdallId(_heimdallId string) (types.Transaction, error) { + return _TestRootChain.Contract.SetHeimdallId(&_TestRootChain.TransactOpts, _heimdallId) +} + +// SetNextHeaderBlock is a paid mutator transaction binding the contract method 0xcf24a0ea. +// +// Solidity: function setNextHeaderBlock(uint256 _value) returns() +func (_TestRootChain *TestRootChainTransactor) SetNextHeaderBlock(opts *bind.TransactOpts, _value *big.Int) (types.Transaction, error) { + return _TestRootChain.contract.Transact(opts, "setNextHeaderBlock", _value) +} + +// SetNextHeaderBlock is a paid mutator transaction binding the contract method 0xcf24a0ea. +// +// Solidity: function setNextHeaderBlock(uint256 _value) returns() +func (_TestRootChain *TestRootChainSession) SetNextHeaderBlock(_value *big.Int) (types.Transaction, error) { + return _TestRootChain.Contract.SetNextHeaderBlock(&_TestRootChain.TransactOpts, _value) +} + +// SetNextHeaderBlock is a paid mutator transaction binding the contract method 0xcf24a0ea. +// +// Solidity: function setNextHeaderBlock(uint256 _value) returns() +func (_TestRootChain *TestRootChainTransactorSession) SetNextHeaderBlock(_value *big.Int) (types.Transaction, error) { + return _TestRootChain.Contract.SetNextHeaderBlock(&_TestRootChain.TransactOpts, _value) +} + +// Slash is a paid mutator transaction binding the contract method 0x2da25de3. +// +// Solidity: function slash() returns() +func (_TestRootChain *TestRootChainTransactor) Slash(opts *bind.TransactOpts) (types.Transaction, error) { + return _TestRootChain.contract.Transact(opts, "slash") +} + +// Slash is a paid mutator transaction binding the contract method 0x2da25de3. +// +// Solidity: function slash() returns() +func (_TestRootChain *TestRootChainSession) Slash() (types.Transaction, error) { + return _TestRootChain.Contract.Slash(&_TestRootChain.TransactOpts) +} + +// Slash is a paid mutator transaction binding the contract method 0x2da25de3. +// +// Solidity: function slash() returns() +func (_TestRootChain *TestRootChainTransactorSession) Slash() (types.Transaction, error) { + return _TestRootChain.Contract.Slash(&_TestRootChain.TransactOpts) +} + +// SubmitCheckpoint is a paid mutator transaction binding the contract method 0x4e43e495. +// +// Solidity: function submitCheckpoint(bytes data, uint256[3][] ) returns() +func (_TestRootChain *TestRootChainTransactor) SubmitCheckpoint(opts *bind.TransactOpts, data []byte, arg1 [][3]*big.Int) (types.Transaction, error) { + return _TestRootChain.contract.Transact(opts, "submitCheckpoint", data, arg1) +} + +// SubmitCheckpoint is a paid mutator transaction binding the contract method 0x4e43e495. +// +// Solidity: function submitCheckpoint(bytes data, uint256[3][] ) returns() +func (_TestRootChain *TestRootChainSession) SubmitCheckpoint(data []byte, arg1 [][3]*big.Int) (types.Transaction, error) { + return _TestRootChain.Contract.SubmitCheckpoint(&_TestRootChain.TransactOpts, data, arg1) +} + +// SubmitCheckpoint is a paid mutator transaction binding the contract method 0x4e43e495. +// +// Solidity: function submitCheckpoint(bytes data, uint256[3][] ) returns() +func (_TestRootChain *TestRootChainTransactorSession) SubmitCheckpoint(data []byte, arg1 [][3]*big.Int) (types.Transaction, error) { + return _TestRootChain.Contract.SubmitCheckpoint(&_TestRootChain.TransactOpts, data, arg1) +} + +// UpdateDepositId is a paid mutator transaction binding the contract method 0x5391f483. +// +// Solidity: function updateDepositId(uint256 numDeposits) returns(uint256 depositId) +func (_TestRootChain *TestRootChainTransactor) UpdateDepositId(opts *bind.TransactOpts, numDeposits *big.Int) (types.Transaction, error) { + return _TestRootChain.contract.Transact(opts, "updateDepositId", numDeposits) +} + +// UpdateDepositId is a paid mutator transaction binding the contract method 0x5391f483. +// +// Solidity: function updateDepositId(uint256 numDeposits) returns(uint256 depositId) +func (_TestRootChain *TestRootChainSession) UpdateDepositId(numDeposits *big.Int) (types.Transaction, error) { + return _TestRootChain.Contract.UpdateDepositId(&_TestRootChain.TransactOpts, numDeposits) +} + +// UpdateDepositId is a paid mutator transaction binding the contract method 0x5391f483. +// +// Solidity: function updateDepositId(uint256 numDeposits) returns(uint256 depositId) +func (_TestRootChain *TestRootChainTransactorSession) UpdateDepositId(numDeposits *big.Int) (types.Transaction, error) { + return _TestRootChain.Contract.UpdateDepositId(&_TestRootChain.TransactOpts, numDeposits) +} + +// SetHeimdallIdParams is an auto generated read-only Go binding of transcaction calldata params +type SetHeimdallIdParams struct { + Param__heimdallId string +} + +// Parse SetHeimdallId method from calldata of a transaction +// +// Solidity: function setHeimdallId(string _heimdallId) returns() +func ParseSetHeimdallId(calldata []byte) (*SetHeimdallIdParams, error) { + if len(calldata) <= 4 { + return nil, fmt.Errorf("invalid calldata input") + } + + _abi, err := abi.JSON(strings.NewReader(TestRootChainABI)) + if err != nil { + return nil, fmt.Errorf("failed to get abi of registry metadata: %w", err) + } + + out, err := _abi.Methods["setHeimdallId"].Inputs.Unpack(calldata[4:]) + if err != nil { + return nil, fmt.Errorf("failed to unpack setHeimdallId params data: %w", err) + } + + var paramsResult = new(SetHeimdallIdParams) + value := reflect.ValueOf(paramsResult).Elem() + + if value.NumField() != len(out) { + return nil, fmt.Errorf("failed to match calldata with param field number") + } + + out0 := *abi.ConvertType(out[0], new(string)).(*string) + + return &SetHeimdallIdParams{ + Param__heimdallId: out0, + }, nil +} + +// SetNextHeaderBlockParams is an auto generated read-only Go binding of transcaction calldata params +type SetNextHeaderBlockParams struct { + Param__value *big.Int +} + +// Parse SetNextHeaderBlock method from calldata of a transaction +// +// Solidity: function setNextHeaderBlock(uint256 _value) returns() +func ParseSetNextHeaderBlock(calldata []byte) (*SetNextHeaderBlockParams, error) { + if len(calldata) <= 4 { + return nil, fmt.Errorf("invalid calldata input") + } + + _abi, err := abi.JSON(strings.NewReader(TestRootChainABI)) + if err != nil { + return nil, fmt.Errorf("failed to get abi of registry metadata: %w", err) + } + + out, err := _abi.Methods["setNextHeaderBlock"].Inputs.Unpack(calldata[4:]) + if err != nil { + return nil, fmt.Errorf("failed to unpack setNextHeaderBlock params data: %w", err) + } + + var paramsResult = new(SetNextHeaderBlockParams) + value := reflect.ValueOf(paramsResult).Elem() + + if value.NumField() != len(out) { + return nil, fmt.Errorf("failed to match calldata with param field number") + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return &SetNextHeaderBlockParams{ + Param__value: out0, + }, nil +} + +// SubmitCheckpointParams is an auto generated read-only Go binding of transcaction calldata params +type SubmitCheckpointParams struct { + Param_data []byte + Param_arg1 [][3]*big.Int +} + +// Parse SubmitCheckpoint method from calldata of a transaction +// +// Solidity: function submitCheckpoint(bytes data, uint256[3][] ) returns() +func ParseSubmitCheckpoint(calldata []byte) (*SubmitCheckpointParams, error) { + if len(calldata) <= 4 { + return nil, fmt.Errorf("invalid calldata input") + } + + _abi, err := abi.JSON(strings.NewReader(TestRootChainABI)) + if err != nil { + return nil, fmt.Errorf("failed to get abi of registry metadata: %w", err) + } + + out, err := _abi.Methods["submitCheckpoint"].Inputs.Unpack(calldata[4:]) + if err != nil { + return nil, fmt.Errorf("failed to unpack submitCheckpoint params data: %w", err) + } + + var paramsResult = new(SubmitCheckpointParams) + value := reflect.ValueOf(paramsResult).Elem() + + if value.NumField() != len(out) { + return nil, fmt.Errorf("failed to match calldata with param field number") + } + + out0 := *abi.ConvertType(out[0], new([]byte)).(*[]byte) + out1 := *abi.ConvertType(out[1], new([][3]*big.Int)).(*[][3]*big.Int) + + return &SubmitCheckpointParams{ + Param_data: out0, Param_arg1: out1, + }, nil +} + +// UpdateDepositIdParams is an auto generated read-only Go binding of transcaction calldata params +type UpdateDepositIdParams struct { + Param_numDeposits *big.Int +} + +// Parse UpdateDepositId method from calldata of a transaction +// +// Solidity: function updateDepositId(uint256 numDeposits) returns(uint256 depositId) +func ParseUpdateDepositId(calldata []byte) (*UpdateDepositIdParams, error) { + if len(calldata) <= 4 { + return nil, fmt.Errorf("invalid calldata input") + } + + _abi, err := abi.JSON(strings.NewReader(TestRootChainABI)) + if err != nil { + return nil, fmt.Errorf("failed to get abi of registry metadata: %w", err) + } + + out, err := _abi.Methods["updateDepositId"].Inputs.Unpack(calldata[4:]) + if err != nil { + return nil, fmt.Errorf("failed to unpack updateDepositId params data: %w", err) + } + + var paramsResult = new(UpdateDepositIdParams) + value := reflect.ValueOf(paramsResult).Elem() + + if value.NumField() != len(out) { + return nil, fmt.Errorf("failed to match calldata with param field number") + } + + out0 := *abi.ConvertType(out[0], new(*big.Int)).(**big.Int) + + return &UpdateDepositIdParams{ + Param_numDeposits: out0, + }, nil +} + +// TestRootChainNewHeaderBlockIterator is returned from FilterNewHeaderBlock and is used to iterate over the raw logs and unpacked data for NewHeaderBlock events raised by the TestRootChain contract. +type TestRootChainNewHeaderBlockIterator struct { + Event *TestRootChainNewHeaderBlock // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestRootChainNewHeaderBlockIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestRootChainNewHeaderBlock) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestRootChainNewHeaderBlock) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestRootChainNewHeaderBlockIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestRootChainNewHeaderBlockIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestRootChainNewHeaderBlock represents a NewHeaderBlock event raised by the TestRootChain contract. +type TestRootChainNewHeaderBlock struct { + Proposer libcommon.Address + HeaderBlockId *big.Int + Reward *big.Int + Start *big.Int + End *big.Int + Root [32]byte + Raw types.Log // Blockchain specific contextual infos +} + +// FilterNewHeaderBlock is a free log retrieval operation binding the contract event 0xba5de06d22af2685c6c7765f60067f7d2b08c2d29f53cdf14d67f6d1c9bfb527. +// +// Solidity: event NewHeaderBlock(address indexed proposer, uint256 indexed headerBlockId, uint256 indexed reward, uint256 start, uint256 end, bytes32 root) +func (_TestRootChain *TestRootChainFilterer) FilterNewHeaderBlock(opts *bind.FilterOpts, proposer []libcommon.Address, headerBlockId []*big.Int, reward []*big.Int) (*TestRootChainNewHeaderBlockIterator, error) { + + var proposerRule []interface{} + for _, proposerItem := range proposer { + proposerRule = append(proposerRule, proposerItem) + } + var headerBlockIdRule []interface{} + for _, headerBlockIdItem := range headerBlockId { + headerBlockIdRule = append(headerBlockIdRule, headerBlockIdItem) + } + var rewardRule []interface{} + for _, rewardItem := range reward { + rewardRule = append(rewardRule, rewardItem) + } + + logs, sub, err := _TestRootChain.contract.FilterLogs(opts, "NewHeaderBlock", proposerRule, headerBlockIdRule, rewardRule) + if err != nil { + return nil, err + } + return &TestRootChainNewHeaderBlockIterator{contract: _TestRootChain.contract, event: "NewHeaderBlock", logs: logs, sub: sub}, nil +} + +// WatchNewHeaderBlock is a free log subscription operation binding the contract event 0xba5de06d22af2685c6c7765f60067f7d2b08c2d29f53cdf14d67f6d1c9bfb527. +// +// Solidity: event NewHeaderBlock(address indexed proposer, uint256 indexed headerBlockId, uint256 indexed reward, uint256 start, uint256 end, bytes32 root) +func (_TestRootChain *TestRootChainFilterer) WatchNewHeaderBlock(opts *bind.WatchOpts, sink chan<- *TestRootChainNewHeaderBlock, proposer []libcommon.Address, headerBlockId []*big.Int, reward []*big.Int) (event.Subscription, error) { + + var proposerRule []interface{} + for _, proposerItem := range proposer { + proposerRule = append(proposerRule, proposerItem) + } + var headerBlockIdRule []interface{} + for _, headerBlockIdItem := range headerBlockId { + headerBlockIdRule = append(headerBlockIdRule, headerBlockIdItem) + } + var rewardRule []interface{} + for _, rewardItem := range reward { + rewardRule = append(rewardRule, rewardItem) + } + + logs, sub, err := _TestRootChain.contract.WatchLogs(opts, "NewHeaderBlock", proposerRule, headerBlockIdRule, rewardRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestRootChainNewHeaderBlock) + if err := _TestRootChain.contract.UnpackLog(event, "NewHeaderBlock", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseNewHeaderBlock is a log parse operation binding the contract event 0xba5de06d22af2685c6c7765f60067f7d2b08c2d29f53cdf14d67f6d1c9bfb527. +// +// Solidity: event NewHeaderBlock(address indexed proposer, uint256 indexed headerBlockId, uint256 indexed reward, uint256 start, uint256 end, bytes32 root) +func (_TestRootChain *TestRootChainFilterer) ParseNewHeaderBlock(log types.Log) (*TestRootChainNewHeaderBlock, error) { + event := new(TestRootChainNewHeaderBlock) + if err := _TestRootChain.contract.UnpackLog(event, "NewHeaderBlock", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} + +// TestRootChainResetHeaderBlockIterator is returned from FilterResetHeaderBlock and is used to iterate over the raw logs and unpacked data for ResetHeaderBlock events raised by the TestRootChain contract. +type TestRootChainResetHeaderBlockIterator struct { + Event *TestRootChainResetHeaderBlock // Event containing the contract specifics and raw log + + contract *bind.BoundContract // Generic contract to use for unpacking event data + event string // Event name to use for unpacking event data + + logs chan types.Log // Log channel receiving the found contract events + sub ethereum.Subscription // Subscription for errors, completion and termination + done bool // Whether the subscription completed delivering logs + fail error // Occurred error to stop iteration +} + +// Next advances the iterator to the subsequent event, returning whether there +// are any more events found. In case of a retrieval or parsing error, false is +// returned and Error() can be queried for the exact failure. +func (it *TestRootChainResetHeaderBlockIterator) Next() bool { + // If the iterator failed, stop iterating + if it.fail != nil { + return false + } + // If the iterator completed, deliver directly whatever's available + if it.done { + select { + case log := <-it.logs: + it.Event = new(TestRootChainResetHeaderBlock) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + default: + return false + } + } + // Iterator still in progress, wait for either a data or an error event + select { + case log := <-it.logs: + it.Event = new(TestRootChainResetHeaderBlock) + if err := it.contract.UnpackLog(it.Event, it.event, log); err != nil { + it.fail = err + return false + } + it.Event.Raw = log + return true + + case err := <-it.sub.Err(): + it.done = true + it.fail = err + return it.Next() + } +} + +// Error returns any retrieval or parsing error occurred during filtering. +func (it *TestRootChainResetHeaderBlockIterator) Error() error { + return it.fail +} + +// Close terminates the iteration process, releasing any pending underlying +// resources. +func (it *TestRootChainResetHeaderBlockIterator) Close() error { + it.sub.Unsubscribe() + return nil +} + +// TestRootChainResetHeaderBlock represents a ResetHeaderBlock event raised by the TestRootChain contract. +type TestRootChainResetHeaderBlock struct { + Proposer libcommon.Address + HeaderBlockId *big.Int + Raw types.Log // Blockchain specific contextual infos +} + +// FilterResetHeaderBlock is a free log retrieval operation binding the contract event 0xca1d8316287f938830e225956a7bb10fd5a1a1506dd2eb3a476751a488117205. +// +// Solidity: event ResetHeaderBlock(address indexed proposer, uint256 indexed headerBlockId) +func (_TestRootChain *TestRootChainFilterer) FilterResetHeaderBlock(opts *bind.FilterOpts, proposer []libcommon.Address, headerBlockId []*big.Int) (*TestRootChainResetHeaderBlockIterator, error) { + + var proposerRule []interface{} + for _, proposerItem := range proposer { + proposerRule = append(proposerRule, proposerItem) + } + var headerBlockIdRule []interface{} + for _, headerBlockIdItem := range headerBlockId { + headerBlockIdRule = append(headerBlockIdRule, headerBlockIdItem) + } + + logs, sub, err := _TestRootChain.contract.FilterLogs(opts, "ResetHeaderBlock", proposerRule, headerBlockIdRule) + if err != nil { + return nil, err + } + return &TestRootChainResetHeaderBlockIterator{contract: _TestRootChain.contract, event: "ResetHeaderBlock", logs: logs, sub: sub}, nil +} + +// WatchResetHeaderBlock is a free log subscription operation binding the contract event 0xca1d8316287f938830e225956a7bb10fd5a1a1506dd2eb3a476751a488117205. +// +// Solidity: event ResetHeaderBlock(address indexed proposer, uint256 indexed headerBlockId) +func (_TestRootChain *TestRootChainFilterer) WatchResetHeaderBlock(opts *bind.WatchOpts, sink chan<- *TestRootChainResetHeaderBlock, proposer []libcommon.Address, headerBlockId []*big.Int) (event.Subscription, error) { + + var proposerRule []interface{} + for _, proposerItem := range proposer { + proposerRule = append(proposerRule, proposerItem) + } + var headerBlockIdRule []interface{} + for _, headerBlockIdItem := range headerBlockId { + headerBlockIdRule = append(headerBlockIdRule, headerBlockIdItem) + } + + logs, sub, err := _TestRootChain.contract.WatchLogs(opts, "ResetHeaderBlock", proposerRule, headerBlockIdRule) + if err != nil { + return nil, err + } + return event.NewSubscription(func(quit <-chan struct{}) error { + defer sub.Unsubscribe() + for { + select { + case log := <-logs: + // New log arrived, parse the event and forward to the user + event := new(TestRootChainResetHeaderBlock) + if err := _TestRootChain.contract.UnpackLog(event, "ResetHeaderBlock", log); err != nil { + return err + } + event.Raw = log + + select { + case sink <- event: + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + case err := <-sub.Err(): + return err + case <-quit: + return nil + } + } + }), nil +} + +// ParseResetHeaderBlock is a log parse operation binding the contract event 0xca1d8316287f938830e225956a7bb10fd5a1a1506dd2eb3a476751a488117205. +// +// Solidity: event ResetHeaderBlock(address indexed proposer, uint256 indexed headerBlockId) +func (_TestRootChain *TestRootChainFilterer) ParseResetHeaderBlock(log types.Log) (*TestRootChainResetHeaderBlock, error) { + event := new(TestRootChainResetHeaderBlock) + if err := _TestRootChain.contract.UnpackLog(event, "ResetHeaderBlock", log); err != nil { + return nil, err + } + event.Raw = log + return event, nil +} diff --git a/cmd/devnet/contracts/lib/exitpayloadreader.sol b/cmd/devnet/contracts/lib/exitpayloadreader.sol new file mode 100644 index 00000000000..3a59a3429d1 --- /dev/null +++ b/cmd/devnet/contracts/lib/exitpayloadreader.sol @@ -0,0 +1,159 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {RLPReader} from "./rlpreader.sol"; + +library ExitPayloadReader { + using RLPReader for bytes; + using RLPReader for RLPReader.RLPItem; + + uint8 constant WORD_SIZE = 32; + + struct ExitPayload { + RLPReader.RLPItem[] data; + } + + struct Receipt { + RLPReader.RLPItem[] data; + bytes raw; + uint256 logIndex; + } + + struct Log { + RLPReader.RLPItem data; + RLPReader.RLPItem[] list; + } + + struct LogTopics { + RLPReader.RLPItem[] data; + } + + // copy paste of private copy() from RLPReader to avoid changing of existing contracts + function copy(uint256 src, uint256 dest, uint256 len) private pure { + if (len == 0) return; + + // copy as many word sizes as possible + for (; len >= WORD_SIZE; len -= WORD_SIZE) { + assembly { + mstore(dest, mload(src)) + } + + src += WORD_SIZE; + dest += WORD_SIZE; + } + + if (len == 0) return; + + // left over bytes. Mask is used to remove unwanted bytes from the word + uint256 mask = 256 ** (WORD_SIZE - len) - 1; + assembly { + let srcpart := and(mload(src), not(mask)) // zero out src + let destpart := and(mload(dest), mask) // retrieve the bytes + mstore(dest, or(destpart, srcpart)) + } + } + + function toExitPayload(bytes memory data) internal pure returns (ExitPayload memory) { + RLPReader.RLPItem[] memory payloadData = data.toRlpItem().toList(); + + return ExitPayload(payloadData); + } + + function getHeaderNumber(ExitPayload memory payload) internal pure returns (uint256) { + return payload.data[0].toUint(); + } + + function getBlockProof(ExitPayload memory payload) internal pure returns (bytes memory) { + return payload.data[1].toBytes(); + } + + function getBlockNumber(ExitPayload memory payload) internal pure returns (uint256) { + return payload.data[2].toUint(); + } + + function getBlockTime(ExitPayload memory payload) internal pure returns (uint256) { + return payload.data[3].toUint(); + } + + function getTxRoot(ExitPayload memory payload) internal pure returns (bytes32) { + return bytes32(payload.data[4].toUint()); + } + + function getReceiptRoot(ExitPayload memory payload) internal pure returns (bytes32) { + return bytes32(payload.data[5].toUint()); + } + + function getReceipt(ExitPayload memory payload) internal pure returns (Receipt memory receipt) { + receipt.raw = payload.data[6].toBytes(); + RLPReader.RLPItem memory receiptItem = receipt.raw.toRlpItem(); + + if (receiptItem.isList()) { + // legacy tx + receipt.data = receiptItem.toList(); + } else { + // pop first byte before parsing receipt + bytes memory typedBytes = receipt.raw; + bytes memory result = new bytes(typedBytes.length - 1); + uint256 srcPtr; + uint256 destPtr; + assembly { + srcPtr := add(33, typedBytes) + destPtr := add(0x20, result) + } + + copy(srcPtr, destPtr, result.length); + receipt.data = result.toRlpItem().toList(); + } + + receipt.logIndex = getReceiptLogIndex(payload); + return receipt; + } + + function getReceiptProof(ExitPayload memory payload) internal pure returns (bytes memory) { + return payload.data[7].toBytes(); + } + + function getBranchMaskAsBytes(ExitPayload memory payload) internal pure returns (bytes memory) { + return payload.data[8].toBytes(); + } + + function getBranchMaskAsUint(ExitPayload memory payload) internal pure returns (uint256) { + return payload.data[8].toUint(); + } + + function getReceiptLogIndex(ExitPayload memory payload) internal pure returns (uint256) { + return payload.data[9].toUint(); + } + + // Receipt methods + function toBytes(Receipt memory receipt) internal pure returns (bytes memory) { + return receipt.raw; + } + + function getLog(Receipt memory receipt) internal pure returns (Log memory) { + RLPReader.RLPItem memory logData = receipt.data[3].toList()[receipt.logIndex]; + return Log(logData, logData.toList()); + } + + // Log methods + function getEmitter(Log memory log) internal pure returns (address) { + return RLPReader.toAddress(log.list[0]); + } + + function getTopics(Log memory log) internal pure returns (LogTopics memory) { + return LogTopics(log.list[1].toList()); + } + + function getData(Log memory log) internal pure returns (bytes memory) { + return log.list[2].toBytes(); + } + + function toRlpBytes(Log memory log) internal pure returns (bytes memory) { + return log.data.toRlpBytes(); + } + + // LogTopics methods + function getField(LogTopics memory topics, uint256 index) internal pure returns (RLPReader.RLPItem memory) { + return topics.data[index]; + } +} \ No newline at end of file diff --git a/cmd/devnet/contracts/lib/merkle.sol b/cmd/devnet/contracts/lib/merkle.sol new file mode 100644 index 00000000000..876988ce2d7 --- /dev/null +++ b/cmd/devnet/contracts/lib/merkle.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +library Merkle { + function checkMembership( + bytes32 leaf, + uint256 index, + bytes32 rootHash, + bytes memory proof + ) internal pure returns (bool) { + require(proof.length % 32 == 0, "Invalid proof length"); + uint256 proofHeight = proof.length / 32; + // Proof of size n means, height of the tree is n+1. + // In a tree of height n+1, max #leafs possible is 2 ^ n + require(index < 2 ** proofHeight, "Leaf index is too big"); + + bytes32 proofElement; + bytes32 computedHash = leaf; + for (uint256 i = 32; i <= proof.length; i += 32) { + assembly { + proofElement := mload(add(proof, i)) + } + + if (index % 2 == 0) { + computedHash = keccak256(abi.encodePacked(computedHash, proofElement)); + } else { + computedHash = keccak256(abi.encodePacked(proofElement, computedHash)); + } + + index = index / 2; + } + return computedHash == rootHash; + } +} \ No newline at end of file diff --git a/cmd/devnet/contracts/lib/merklepatriciaproof.sol b/cmd/devnet/contracts/lib/merklepatriciaproof.sol new file mode 100644 index 00000000000..41dbc50cce7 --- /dev/null +++ b/cmd/devnet/contracts/lib/merklepatriciaproof.sol @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {RLPReader} from "./RLPReader.sol"; + +library MerklePatriciaProof { + /* + * @dev Verifies a merkle patricia proof. + * @param value The terminating value in the trie. + * @param encodedPath The path in the trie leading to value. + * @param rlpParentNodes The rlp encoded stack of nodes. + * @param root The root hash of the trie. + * @return The boolean validity of the proof. + */ + function verify( + bytes memory value, + bytes memory encodedPath, + bytes memory rlpParentNodes, + bytes32 root + ) internal pure returns (bool verified) { + RLPReader.RLPItem memory item = RLPReader.toRlpItem(rlpParentNodes); + RLPReader.RLPItem[] memory parentNodes = RLPReader.toList(item); + + bytes memory currentNode; + RLPReader.RLPItem[] memory currentNodeList; + + bytes32 nodeKey = root; + uint256 pathPtr = 0; + + bytes memory path = _getNibbleArray(encodedPath); + if (path.length == 0) { + return false; + } + + for (uint256 i = 0; i < parentNodes.length; i++) { + if (pathPtr > path.length) { + return false; + } + + currentNode = RLPReader.toRlpBytes(parentNodes[i]); + if (nodeKey != keccak256(currentNode)) { + return false; + } + currentNodeList = RLPReader.toList(parentNodes[i]); + + if (currentNodeList.length == 17) { + if (pathPtr == path.length) { + if (keccak256(RLPReader.toBytes(currentNodeList[16])) == keccak256(value)) { + return true; + } else { + return false; + } + } + + uint8 nextPathNibble = uint8(path[pathPtr]); + if (nextPathNibble > 16) { + return false; + } + nodeKey = bytes32(RLPReader.toUintStrict(currentNodeList[nextPathNibble])); + pathPtr += 1; + } else if (currentNodeList.length == 2) { + uint256 traversed = _nibblesToTraverse(RLPReader.toBytes(currentNodeList[0]), path, pathPtr); + if (pathPtr + traversed == path.length) { + //leaf node + if (keccak256(RLPReader.toBytes(currentNodeList[1])) == keccak256(value)) { + return true; + } else { + return false; + } + } + + //extension node + if (traversed == 0) { + return false; + } + + pathPtr += traversed; + nodeKey = bytes32(RLPReader.toUintStrict(currentNodeList[1])); + } else { + return false; + } + } + } + + function _nibblesToTraverse( + bytes memory encodedPartialPath, + bytes memory path, + uint256 pathPtr + ) private pure returns (uint256) { + uint256 len = 0; + // encodedPartialPath has elements that are each two hex characters (1 byte), but partialPath + // and slicedPath have elements that are each one hex character (1 nibble) + bytes memory partialPath = _getNibbleArray(encodedPartialPath); + bytes memory slicedPath = new bytes(partialPath.length); + + // pathPtr counts nibbles in path + // partialPath.length is a number of nibbles + for (uint256 i = pathPtr; i < pathPtr + partialPath.length; i++) { + bytes1 pathNibble = path[i]; + slicedPath[i - pathPtr] = pathNibble; + } + + if (keccak256(partialPath) == keccak256(slicedPath)) { + len = partialPath.length; + } else { + len = 0; + } + return len; + } + + // bytes b must be hp encoded + function _getNibbleArray(bytes memory b) internal pure returns (bytes memory) { + bytes memory nibbles = ""; + if (b.length > 0) { + uint8 offset; + uint8 hpNibble = uint8(_getNthNibbleOfBytes(0, b)); + if (hpNibble == 1 || hpNibble == 3) { + nibbles = new bytes(b.length * 2 - 1); + bytes1 oddNibble = _getNthNibbleOfBytes(1, b); + nibbles[0] = oddNibble; + offset = 1; + } else { + nibbles = new bytes(b.length * 2 - 2); + offset = 0; + } + + for (uint256 i = offset; i < nibbles.length; i++) { + nibbles[i] = _getNthNibbleOfBytes(i - offset + 2, b); + } + } + return nibbles; + } + + function _getNthNibbleOfBytes(uint256 n, bytes memory str) private pure returns (bytes1) { + return bytes1(n % 2 == 0 ? uint8(str[n / 2]) / 0x10 : uint8(str[n / 2]) % 0x10); + } +} \ No newline at end of file diff --git a/cmd/devnet/contracts/lib/rlpreader.sol b/cmd/devnet/contracts/lib/rlpreader.sol new file mode 100644 index 00000000000..b2760333e77 --- /dev/null +++ b/cmd/devnet/contracts/lib/rlpreader.sol @@ -0,0 +1,339 @@ +// SPDX-License-Identifier: Apache-2.0 + +/* + * @author Hamdi Allam hamdi.allam97@gmail.com + * Please reach out with any questions or concerns + */ + +pragma solidity ^0.8.0; + +library RLPReader { + uint8 constant STRING_SHORT_START = 0x80; + uint8 constant STRING_LONG_START = 0xb8; + uint8 constant LIST_SHORT_START = 0xc0; + uint8 constant LIST_LONG_START = 0xf8; + uint8 constant WORD_SIZE = 32; + + struct RLPItem { + uint256 len; + uint256 memPtr; + } + + struct Iterator { + RLPItem item; // Item that's being iterated over. + uint256 nextPtr; // Position of the next item in the list. + } + + /* + * @dev Returns the next element in the iteration. Reverts if it has not next element. + * @param self The iterator. + * @return The next element in the iteration. + */ + function next(Iterator memory self) internal pure returns (RLPItem memory) { + require(hasNext(self)); + + uint256 ptr = self.nextPtr; + uint256 itemLength = _itemLength(ptr); + self.nextPtr = ptr + itemLength; + + return RLPItem(itemLength, ptr); + } + + /* + * @dev Returns true if the iteration has more elements. + * @param self The iterator. + * @return true if the iteration has more elements. + */ + function hasNext(Iterator memory self) internal pure returns (bool) { + RLPItem memory item = self.item; + return self.nextPtr < item.memPtr + item.len; + } + + /* + * @param item RLP encoded bytes + */ + function toRlpItem(bytes memory item) internal pure returns (RLPItem memory) { + uint256 memPtr; + assembly { + memPtr := add(item, 0x20) + } + + return RLPItem(item.length, memPtr); + } + + /* + * @dev Create an iterator. Reverts if item is not a list. + * @param self The RLP item. + * @return An 'Iterator' over the item. + */ + function iterator(RLPItem memory self) internal pure returns (Iterator memory) { + require(isList(self)); + + uint256 ptr = self.memPtr + _payloadOffset(self.memPtr); + return Iterator(self, ptr); + } + + /* + * @param item RLP encoded bytes + */ + function rlpLen(RLPItem memory item) internal pure returns (uint256) { + return item.len; + } + + /* + * @param item RLP encoded bytes + */ + function payloadLen(RLPItem memory item) internal pure returns (uint256) { + return item.len - _payloadOffset(item.memPtr); + } + + /* + * @param item RLP encoded list in bytes + */ + function toList(RLPItem memory item) internal pure returns (RLPItem[] memory) { + require(isList(item)); + + uint256 items = numItems(item); + RLPItem[] memory result = new RLPItem[](items); + + uint256 memPtr = item.memPtr + _payloadOffset(item.memPtr); + uint256 dataLen; + for (uint256 i = 0; i < items; i++) { + dataLen = _itemLength(memPtr); + result[i] = RLPItem(dataLen, memPtr); + memPtr = memPtr + dataLen; + } + + return result; + } + + // @return indicator whether encoded payload is a list. negate this function call for isData. + function isList(RLPItem memory item) internal pure returns (bool) { + if (item.len == 0) return false; + + uint8 byte0; + uint256 memPtr = item.memPtr; + assembly { + byte0 := byte(0, mload(memPtr)) + } + + if (byte0 < LIST_SHORT_START) return false; + return true; + } + + /* + * @dev A cheaper version of keccak256(toRlpBytes(item)) that avoids copying memory. + * @return keccak256 hash of RLP encoded bytes. + */ + function rlpBytesKeccak256(RLPItem memory item) internal pure returns (bytes32) { + uint256 ptr = item.memPtr; + uint256 len = item.len; + bytes32 result; + assembly { + result := keccak256(ptr, len) + } + return result; + } + + function payloadLocation(RLPItem memory item) internal pure returns (uint256, uint256) { + uint256 offset = _payloadOffset(item.memPtr); + uint256 memPtr = item.memPtr + offset; + uint256 len = item.len - offset; // data length + return (memPtr, len); + } + + /* + * @dev A cheaper version of keccak256(toBytes(item)) that avoids copying memory. + * @return keccak256 hash of the item payload. + */ + function payloadKeccak256(RLPItem memory item) internal pure returns (bytes32) { + (uint256 memPtr, uint256 len) = payloadLocation(item); + bytes32 result; + assembly { + result := keccak256(memPtr, len) + } + return result; + } + + /** RLPItem conversions into data types **/ + + // @returns raw rlp encoding in bytes + function toRlpBytes(RLPItem memory item) internal pure returns (bytes memory) { + bytes memory result = new bytes(item.len); + if (result.length == 0) return result; + + uint256 ptr; + assembly { + ptr := add(0x20, result) + } + + copy(item.memPtr, ptr, item.len); + return result; + } + + // any non-zero byte < 128 is considered true + function toBoolean(RLPItem memory item) internal pure returns (bool) { + require(item.len == 1); + uint256 result; + uint256 memPtr = item.memPtr; + assembly { + result := byte(0, mload(memPtr)) + } + + return result == 0 ? false : true; + } + + function toAddress(RLPItem memory item) internal pure returns (address) { + // 1 byte for the length prefix + require(item.len == 21); + + return address(uint160(toUint(item))); + } + + function toUint(RLPItem memory item) internal pure returns (uint256) { + require(item.len > 0 && item.len <= 33); + + uint256 offset = _payloadOffset(item.memPtr); + uint256 len = item.len - offset; + + uint256 result; + uint256 memPtr = item.memPtr + offset; + assembly { + result := mload(memPtr) + + // shift to the correct location if neccesary + if lt(len, 32) { + result := div(result, exp(256, sub(32, len))) + } + } + + return result; + } + + // enforces 32 byte length + function toUintStrict(RLPItem memory item) internal pure returns (uint256) { + // one byte prefix + require(item.len == 33); + + uint256 result; + uint256 memPtr = item.memPtr + 1; + assembly { + result := mload(memPtr) + } + + return result; + } + + function toBytes(RLPItem memory item) internal pure returns (bytes memory) { + require(item.len > 0); + + uint256 offset = _payloadOffset(item.memPtr); + uint256 len = item.len - offset; // data length + bytes memory result = new bytes(len); + + uint256 destPtr; + assembly { + destPtr := add(0x20, result) + } + + copy(item.memPtr + offset, destPtr, len); + return result; + } + + /* + * Private Helpers + */ + + // @return number of payload items inside an encoded list. + function numItems(RLPItem memory item) private pure returns (uint256) { + if (item.len == 0) return 0; + + uint256 count = 0; + uint256 currPtr = item.memPtr + _payloadOffset(item.memPtr); + uint256 endPtr = item.memPtr + item.len; + while (currPtr < endPtr) { + currPtr = currPtr + _itemLength(currPtr); // skip over an item + count++; + } + + return count; + } + + // @return entire rlp item byte length + function _itemLength(uint256 memPtr) private pure returns (uint256) { + uint256 itemLen; + uint256 byte0; + assembly { + byte0 := byte(0, mload(memPtr)) + } + + if (byte0 < STRING_SHORT_START) itemLen = 1; + else if (byte0 < STRING_LONG_START) itemLen = byte0 - STRING_SHORT_START + 1; + else if (byte0 < LIST_SHORT_START) { + assembly { + let byteLen := sub(byte0, 0xb7) // # of bytes the actual length is + memPtr := add(memPtr, 1) // skip over the first byte + /* 32 byte word size */ + let dataLen := div(mload(memPtr), exp(256, sub(32, byteLen))) // right shifting to get the len + itemLen := add(dataLen, add(byteLen, 1)) + } + } else if (byte0 < LIST_LONG_START) { + itemLen = byte0 - LIST_SHORT_START + 1; + } else { + assembly { + let byteLen := sub(byte0, 0xf7) + memPtr := add(memPtr, 1) + + let dataLen := div(mload(memPtr), exp(256, sub(32, byteLen))) // right shifting to the correct length + itemLen := add(dataLen, add(byteLen, 1)) + } + } + + return itemLen; + } + + // @return number of bytes until the data + function _payloadOffset(uint256 memPtr) private pure returns (uint256) { + uint256 byte0; + assembly { + byte0 := byte(0, mload(memPtr)) + } + + if (byte0 < STRING_SHORT_START) return 0; + else if (byte0 < STRING_LONG_START || (byte0 >= LIST_SHORT_START && byte0 < LIST_LONG_START)) return 1; + else if (byte0 < LIST_SHORT_START) + // being explicit + return byte0 - (STRING_LONG_START - 1) + 1; + else return byte0 - (LIST_LONG_START - 1) + 1; + } + + /* + * @param src Pointer to source + * @param dest Pointer to destination + * @param len Amount of memory to copy from the source + */ + function copy(uint256 src, uint256 dest, uint256 len) private pure { + if (len == 0) return; + + // copy as many word sizes as possible + for (; len >= WORD_SIZE; len -= WORD_SIZE) { + assembly { + mstore(dest, mload(src)) + } + + src += WORD_SIZE; + dest += WORD_SIZE; + } + + if (len == 0) return; + + // left over bytes. Mask is used to remove unwanted bytes from the word + uint256 mask = 256 ** (WORD_SIZE - len) - 1; + + assembly { + let srcpart := and(mload(src), not(mask)) // zero out src + let destpart := and(mload(dest), mask) // retrieve the bytes + mstore(dest, or(destpart, srcpart)) + } + } +} \ No newline at end of file diff --git a/cmd/devnet/contracts/lib/safemath.sol b/cmd/devnet/contracts/lib/safemath.sol new file mode 100644 index 00000000000..0a83a12b8ba --- /dev/null +++ b/cmd/devnet/contracts/lib/safemath.sol @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: MIT +// https://github.com/ConsenSysMesh/openzeppelin-solidity/blob/master/contracts/math/SafeMath.sol +pragma solidity ^0.8.0; + + +/** + * @title SafeMath + * @dev Math operations with safety checks that throw on error + */ +library SafeMath { + + /** + * @dev Multiplies two numbers, throws on overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { + if (a == 0) { + return 0; + } + c = a * b; + assert(c / a == b); + return c; + } + + /** + * @dev Integer division of two numbers, truncating the quotient. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + // assert(b > 0); // Solidity automatically throws when dividing by 0 + // uint256 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + return a / b; + } + + /** + * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + assert(b <= a); + return a - b; + } + + /** + * @dev Adds two numbers, throws on overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256 c) { + c = a + b; + assert(c >= a); + return c; + } +} diff --git a/cmd/devnet/contracts/rootreceiver.sol b/cmd/devnet/contracts/rootreceiver.sol new file mode 100644 index 00000000000..855b042af1b --- /dev/null +++ b/cmd/devnet/contracts/rootreceiver.sol @@ -0,0 +1,154 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {RLPReader} from "lib/rlpreader.sol"; +import {MerklePatriciaProof} from "lib/merklepatriciaproof.sol"; +import {Merkle} from "lib/Merkle.sol"; +import "lib/exitpayloadreader.sol"; + +contract ICheckpointManager { + struct HeaderBlock { + bytes32 root; + uint256 start; + uint256 end; + uint256 createdAt; + address proposer; + } + + /** + * @notice mapping of checkpoint header numbers to block details + * @dev These checkpoints are submited by plasma contracts + */ + mapping(uint256 => HeaderBlock) public headerBlocks; +} + +contract RootReceiver { + using RLPReader for RLPReader.RLPItem; + using Merkle for bytes32; + using ExitPayloadReader for bytes; + using ExitPayloadReader for ExitPayloadReader.ExitPayload; + using ExitPayloadReader for ExitPayloadReader.Log; + using ExitPayloadReader for ExitPayloadReader.LogTopics; + using ExitPayloadReader for ExitPayloadReader.Receipt; + + // keccak256(MessageSent(bytes)) + bytes32 public constant SEND_MESSAGE_EVENT_SIG = 0x8c5261668696ce22758910d05bab8f186d6eb247ceac2af2e82c7dc17669b036; + + // root chain manager + ICheckpointManager public checkpointManager; + + // storage to avoid duplicate exits + mapping(bytes32 => bool) public processedExits; + mapping(address => uint) public senders; + + event received(address _source, uint256 _amount); + + constructor(address _checkpointManager) { + checkpointManager = ICheckpointManager(_checkpointManager); + } + + function _validateAndExtractMessage(bytes memory inputData) internal returns (address, bytes memory) { + ExitPayloadReader.ExitPayload memory payload = inputData.toExitPayload(); + + bytes memory branchMaskBytes = payload.getBranchMaskAsBytes(); + uint256 blockNumber = payload.getBlockNumber(); + // checking if exit has already been processed + // unique exit is identified using hash of (blockNumber, branchMask, receiptLogIndex) + bytes32 exitHash = keccak256( + abi.encodePacked( + blockNumber, + // first 2 nibbles are dropped while generating nibble array + // this allows branch masks that are valid but bypass exitHash check (changing first 2 nibbles only) + // so converting to nibble array and then hashing it + MerklePatriciaProof._getNibbleArray(branchMaskBytes), + payload.getReceiptLogIndex() + ) + ); + require(processedExits[exitHash] == false, "FxRootTunnel: EXIT_ALREADY_PROCESSED"); + processedExits[exitHash] = true; + + ExitPayloadReader.Receipt memory receipt = payload.getReceipt(); + ExitPayloadReader.Log memory log = receipt.getLog(); + + // check child tunnel + //require(fxChildTunnel == log.getEmitter(), "FxRootTunnel: INVALID_FX_CHILD_TUNNEL"); + + bytes32 receiptRoot = payload.getReceiptRoot(); + // verify receipt inclusion + require( + MerklePatriciaProof.verify(receipt.toBytes(), branchMaskBytes, payload.getReceiptProof(), receiptRoot), + "RootTunnel: INVALID_RECEIPT_PROOF" + ); + + // verify checkpoint inclusion + _checkBlockMembershipInCheckpoint( + blockNumber, + payload.getBlockTime(), + payload.getTxRoot(), + receiptRoot, + payload.getHeaderNumber(), + payload.getBlockProof() + ); + + ExitPayloadReader.LogTopics memory topics = log.getTopics(); + + require( + bytes32(topics.getField(0).toUint()) == SEND_MESSAGE_EVENT_SIG, // topic0 is event sig + "FxRootTunnel: INVALID_SIGNATURE" + ); + + // received message data + bytes memory message = abi.decode(log.getData(), (bytes)); // event decodes params again, so decoding bytes to get message + return (log.getEmitter(), message); + } + + function _checkBlockMembershipInCheckpoint( + uint256 blockNumber, + uint256 blockTime, + bytes32 txRoot, + bytes32 receiptRoot, + uint256 headerNumber, + bytes memory blockProof + ) private view { + (bytes32 headerRoot, uint256 startBlock, , , ) = checkpointManager.headerBlocks(headerNumber); + + require( + keccak256(abi.encodePacked(blockNumber, blockTime, txRoot, receiptRoot)).checkMembership( + blockNumber - startBlock, + headerRoot, + blockProof + ), + "FxRootTunnel: INVALID_HEADER" + ); + } + + /** + * @notice receive message from L2 to L1, validated by proof + * @dev This function verifies if the transaction actually happened on child chain + * + * @param inputData RLP encoded data of the reference tx containing following list of fields + * 0 - headerNumber - Checkpoint header block number containing the reference tx + * 1 - blockProof - Proof that the block header (in the child chain) is a leaf in the submitted merkle root + * 2 - blockNumber - Block number containing the reference tx on child chain + * 3 - blockTime - Reference tx block time + * 4 - txRoot - Transactions root of block + * 5 - receiptRoot - Receipts root of block + * 6 - receipt - Receipt of the reference transaction + * 7 - receiptProof - Merkle proof of the reference receipt + * 8 - branchMask - 32 bits denoting the path of receipt in merkle tree + * 9 - receiptLogIndex - Log Index to read from the receipt + */ + function receiveMessage(bytes memory inputData) public virtual { + (address sender, bytes memory message) = _validateAndExtractMessage(inputData); + _processMessageFromChild(sender, message); + } + + function _processMessageFromChild(address /*sender*/, bytes memory data) internal { + (address receiver, address from, uint amount) = abi.decode(data, (address, address, uint)); + require(receiver == address(this), "Invalid receiver"); + uint total = senders[from]; + senders[from] = total + amount; + + emit received(from, amount); + } +} \ No newline at end of file diff --git a/cmd/devnet/contracts/steps/l1l2transfers.go b/cmd/devnet/contracts/steps/l1l2transfers.go index 3cf6d41b771..74cb162a02f 100644 --- a/cmd/devnet/contracts/steps/l1l2transfers.go +++ b/cmd/devnet/contracts/steps/l1l2transfers.go @@ -8,6 +8,7 @@ import ( "math" "math/big" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/accounts/abi" "github.com/ledgerwatch/erigon/accounts/abi/bind" @@ -18,7 +19,7 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" "github.com/ledgerwatch/erigon/cmd/devnet/services" - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" ) @@ -27,8 +28,8 @@ func init() { scenarios.StepHandler(DeployChildChainReceiver), scenarios.StepHandler(DeployRootChainSender), scenarios.StepHandler(GenerateSyncEvents), - scenarios.StepHandler(ProcessTransfers), - scenarios.StepHandler(BatchProcessTransfers), + scenarios.StepHandler(ProcessRootTransfers), + scenarios.StepHandler(BatchProcessRootTransfers), ) } @@ -44,9 +45,6 @@ func GenerateSyncEvents(ctx context.Context, senderName string, numberOfTransfer heimdall := services.Heimdall(ctx) - waiter, cancel := blocks.BlockWaiter(ctx, contracts.DeploymentChecker) - defer cancel() - stateSender := heimdall.StateSenderContract() receiver, _ := scenarios.Param[*contracts.ChildReceiver](ctx, "childReceiver") @@ -69,56 +67,67 @@ func GenerateSyncEvents(ctx context.Context, senderName string, numberOfTransfer {Name: "amount", Type: Uint256}, } - //for i := 0; i < numberOfTransfers; i++ { - sendData, err := args.Pack(sender.Address, big.NewInt(int64(minTransfer))) + for i := 0; i < numberOfTransfers; i++ { + err := func() error { + sendData, err := args.Pack(sender.Address, big.NewInt(int64(minTransfer))) - if err != nil { - return err - } + if err != nil { + return err + } - transaction, err := stateSender.SyncState(auth, receiverAddress, sendData) + waiter, cancel := blocks.BlockWaiter(ctx, contracts.DeploymentChecker) + defer cancel() - if err != nil { - return err - } + transaction, err := stateSender.SyncState(auth, receiverAddress, sendData) - block, err := waiter.Await(transaction.Hash()) + if err != nil { + return err + } - if err != nil { - return fmt.Errorf("Failed to wait for sync block: %w", err) - } + block, err := waiter.Await(transaction.Hash()) - blockNum := block.BlockNumber.Uint64() + if err != nil { + return fmt.Errorf("Failed to wait for sync block: %w", err) + } - logs, err := stateSender.FilterStateSynced(&bind.FilterOpts{ - Start: blockNum, - End: &blockNum, - }, nil, nil) + blockNum := block.Number.Uint64() - if err != nil { - return fmt.Errorf("Failed to get post sync logs: %w", err) - } + logs, err := stateSender.FilterStateSynced(&bind.FilterOpts{ + Start: blockNum, + End: &blockNum, + }, nil, nil) - sendConfirmed := false + if err != nil { + return fmt.Errorf("Failed to get post sync logs: %w", err) + } - for logs.Next() { - if logs.Event.ContractAddress != receiverAddress { - return fmt.Errorf("Receiver address mismatched: expected: %s, got: %s", receiverAddress, logs.Event.ContractAddress) - } + sendConfirmed := false - if !bytes.Equal(logs.Event.Data, sendData) { - return fmt.Errorf("Send data mismatched: expected: %s, got: %s", sendData, logs.Event.Data) - } + for logs.Next() { + if logs.Event.ContractAddress != receiverAddress { + return fmt.Errorf("Receiver address mismatched: expected: %s, got: %s", receiverAddress, logs.Event.ContractAddress) + } - sendConfirmed = true - } + if !bytes.Equal(logs.Event.Data, sendData) { + return fmt.Errorf("Send data mismatched: expected: %s, got: %s", sendData, logs.Event.Data) + } - if !sendConfirmed { - return fmt.Errorf("No post sync log received") - } + sendConfirmed = true + } + + if !sendConfirmed { + return fmt.Errorf("No post sync log received") + } - // auth.Nonce = (&big.Int{}).Add(auth.Nonce, big.NewInt(1)) - //} + auth.Nonce = (&big.Int{}).Add(auth.Nonce, big.NewInt(1)) + + return nil + }() + + if err != nil { + return err + } + } receivedCount := 0 @@ -134,7 +143,7 @@ func GenerateSyncEvents(ctx context.Context, senderName string, numberOfTransfer } receivedCount++ - if receivedCount == 1 /*numberOfTransfers*/ { + if receivedCount == numberOfTransfers { break } } @@ -171,7 +180,7 @@ func DeployRootChainSender(ctx context.Context, deployerName string) (context.Co return nil, err } - devnet.Logger(ctx).Info("RootSender deployed", "chain", networkname.BorDevnetChainName, "block", block.BlockNumber, "addr", address) + devnet.Logger(ctx).Info("RootSender deployed", "chain", networkname.DevChainName, "block", block.Number, "addr", address) return scenarios.WithParam(ctx, "rootSenderAddress", address). WithParam("rootSender", contract), nil @@ -196,13 +205,13 @@ func DeployChildChainReceiver(ctx context.Context, deployerName string) (context return nil, err } - devnet.Logger(ctx).Info("ChildReceiver deployed", "chain", networkname.BorDevnetChainName, "block", block.BlockNumber, "addr", address) + devnet.Logger(ctx).Info("ChildReceiver deployed", "chain", networkname.BorDevnetChainName, "block", block.Number, "addr", address) return scenarios.WithParam(ctx, "childReceiverAddress", address). WithParam("childReceiver", contract), nil } -func ProcessTransfers(ctx context.Context, sourceName string, numberOfTransfers int, minTransfer int, maxTransfer int) error { +func ProcessRootTransfers(ctx context.Context, sourceName string, numberOfTransfers int, minTransfer int, maxTransfer int) error { source := accounts.GetAccount(sourceName) ctx = devnet.WithCurrentNetwork(ctx, networkname.DevChainName) @@ -260,7 +269,7 @@ func ProcessTransfers(ctx context.Context, sourceName string, numberOfTransfers } for _, traceResult := range traceResults { - callResults, err := node.TraceCall(string(block.BlockNumber), ethapi.CallArgs{ + callResults, err := node.TraceCall(rpc.AsBlockReference(block.Number), ethapi.CallArgs{ From: &traceResult.Action.From, To: &traceResult.Action.To, Data: &traceResult.Action.Input, @@ -277,7 +286,7 @@ func ProcessTransfers(ctx context.Context, sourceName string, numberOfTransfers return terr } - blockNum := block.BlockNumber.Uint64() + blockNum := block.Number.Uint64() logs, err := stateSender.FilterStateSynced(&bind.FilterOpts{ Start: blockNum, @@ -352,7 +361,7 @@ func ProcessTransfers(ctx context.Context, sourceName string, numberOfTransfers return nil } -func BatchProcessTransfers(ctx context.Context, sourceName string, batches int, transfersPerBatch, minTransfer int, maxTransfer int) error { +func BatchProcessRootTransfers(ctx context.Context, sourceName string, batches int, transfersPerBatch, minTransfer int, maxTransfer int) error { source := accounts.GetAccount(sourceName) ctx = devnet.WithCurrentNetwork(ctx, networkname.DevChainName) @@ -416,7 +425,7 @@ func BatchProcessTransfers(ctx context.Context, sourceName string, batches int, endBlock := uint64(0) for _, block := range blocks { - blockNum := block.BlockNumber.Uint64() + blockNum := block.Number.Uint64() if blockNum < startBlock { startBlock = blockNum diff --git a/cmd/devnet/contracts/steps/l2l1transfers.go b/cmd/devnet/contracts/steps/l2l1transfers.go new file mode 100644 index 00000000000..59481c8d022 --- /dev/null +++ b/cmd/devnet/contracts/steps/l2l1transfers.go @@ -0,0 +1,297 @@ +package contracts_steps + +import ( + "context" + "encoding/json" + "fmt" + "math/big" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/accounts/abi" + "github.com/ledgerwatch/erigon/accounts/abi/bind" + "github.com/ledgerwatch/erigon/cmd/devnet/accounts" + "github.com/ledgerwatch/erigon/cmd/devnet/blocks" + "github.com/ledgerwatch/erigon/cmd/devnet/contracts" + "github.com/ledgerwatch/erigon/cmd/devnet/devnet" + "github.com/ledgerwatch/erigon/cmd/devnet/requests" + "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" + "github.com/ledgerwatch/erigon/cmd/devnet/services" + "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" +) + +func init() { + scenarios.MustRegisterStepHandlers( + scenarios.StepHandler(DeployChildChainSender), + scenarios.StepHandler(DeployRootChainReceiver), + scenarios.StepHandler(ProcessChildTransfers), + ) +} + +func DeployChildChainSender(ctx context.Context, deployerName string) (context.Context, error) { + deployer := accounts.GetAccount(deployerName) + ctx = devnet.WithCurrentNetwork(ctx, networkname.BorDevnetChainName) + + auth, backend, err := contracts.DeploymentTransactor(ctx, deployer.Address) + + if err != nil { + return nil, err + } + + receiverAddress, _ := scenarios.Param[libcommon.Address](ctx, "rootReceiverAddress") + + waiter, cancel := blocks.BlockWaiter(ctx, contracts.DeploymentChecker) + defer cancel() + + address, transaction, contract, err := contracts.DeployChildSender(auth, backend, receiverAddress) + + if err != nil { + return nil, err + } + + block, err := waiter.Await(transaction.Hash()) + + if err != nil { + return nil, err + } + + devnet.Logger(ctx).Info("ChildSender deployed", "chain", networkname.BorDevnetChainName, "block", block.Number, "addr", address) + + return scenarios.WithParam(ctx, "childSenderAddress", address). + WithParam("childSender", contract), nil +} + +func DeployRootChainReceiver(ctx context.Context, deployerName string) (context.Context, error) { + deployer := accounts.GetAccount(deployerName) + ctx = devnet.WithCurrentNetwork(ctx, networkname.DevChainName) + + auth, backend, err := contracts.DeploymentTransactor(ctx, deployer.Address) + + if err != nil { + return nil, err + } + + waiter, cancel := blocks.BlockWaiter(ctx, contracts.DeploymentChecker) + defer cancel() + + heimdall := services.Heimdall(ctx) + + address, transaction, contract, err := contracts.DeployChildSender(auth, backend, heimdall.RootChainAddress()) + + if err != nil { + return nil, err + } + + block, err := waiter.Await(transaction.Hash()) + + if err != nil { + return nil, err + } + + devnet.Logger(ctx).Info("RootReceiver deployed", "chain", networkname.BorDevnetChainName, "block", block.Number, "addr", address) + + return scenarios.WithParam(ctx, "rootReceiverAddress", address). + WithParam("rootReceiver", contract), nil +} + +func ProcessChildTransfers(ctx context.Context, sourceName string, numberOfTransfers int, minTransfer int, maxTransfer int) error { + source := accounts.GetAccount(sourceName) + ctx = devnet.WithCurrentNetwork(ctx, networkname.DevChainName) + + auth, err := contracts.TransactOpts(ctx, source.Address) + + if err != nil { + return err + } + + sender, _ := scenarios.Param[*contracts.ChildSender](ctx, "childSender") + + receiver, _ := scenarios.Param[*contracts.RootReceiver](ctx, "rootReceiver") + receiverAddress, _ := scenarios.Param[libcommon.Address](ctx, "rootReceiverAddress") + + receivedChan := make(chan *contracts.RootReceiverReceived) + receiverSubscription, err := receiver.WatchReceived(&bind.WatchOpts{}, receivedChan) + + if err != nil { + return fmt.Errorf("Receiver subscription failed: %w", err) + } + + defer receiverSubscription.Unsubscribe() + + Uint256, _ := abi.NewType("uint256", "", nil) + Address, _ := abi.NewType("address", "", nil) + + args := abi.Arguments{ + {Name: "from", Type: Address}, + {Name: "amount", Type: Uint256}, + } + + heimdall := services.Heimdall(ctx) + proofGenerator := services.ProofGenerator(ctx) + + var sendTxHashes []libcommon.Hash + var lastTxBlockNum *big.Int + var receiptTopic libcommon.Hash + + zeroHash := libcommon.Hash{} + + for i := 0; i < numberOfTransfers; i++ { + amount := accounts.EtherAmount(float64(minTransfer)) + + err = func() error { + waiter, cancel := blocks.BlockWaiter(ctx, blocks.CompletionChecker) + defer cancel() + + transaction, err := sender.SendToRoot(auth, amount) + + if err != nil { + return err + } + + block, terr := waiter.Await(transaction.Hash()) + + if terr != nil { + node := devnet.SelectBlockProducer(ctx) + + traceResults, err := node.TraceTransaction(transaction.Hash()) + + if err != nil { + return fmt.Errorf("Send transaction failure: transaction trace failed: %w", err) + } + + for _, traceResult := range traceResults { + callResults, err := node.TraceCall(rpc.AsBlockReference(block.Number), ethapi.CallArgs{ + From: &traceResult.Action.From, + To: &traceResult.Action.To, + Data: &traceResult.Action.Input, + }, requests.TraceOpts.StateDiff, requests.TraceOpts.Trace, requests.TraceOpts.VmTrace) + + if err != nil { + return fmt.Errorf("Send transaction failure: trace call failed: %w", err) + } + + results, _ := json.MarshalIndent(callResults, " ", " ") + fmt.Println(string(results)) + } + + return terr + } + + sendTxHashes = append(sendTxHashes, transaction.Hash()) + lastTxBlockNum = block.Number + + blockNum := block.Number.Uint64() + + logs, err := sender.FilterMessageSent(&bind.FilterOpts{ + Start: blockNum, + End: &blockNum, + }) + + if err != nil { + return fmt.Errorf("Failed to get post sync logs: %w", err) + } + + for logs.Next() { + values, err := args.Unpack(logs.Event.Message) + + if err != nil { + return fmt.Errorf("Failed unpack log args: %w", err) + } + + recceiverAddressValue, ok := values[0].(libcommon.Address) + + if !ok { + return fmt.Errorf("Unexpected arg type: expected: %T, got %T", libcommon.Address{}, values[0]) + } + + sender, ok := values[1].(libcommon.Address) + + if !ok { + return fmt.Errorf("Unexpected arg type: expected: %T, got %T", libcommon.Address{}, values[0]) + } + + sentAmount, ok := values[1].(*big.Int) + + if !ok { + return fmt.Errorf("Unexpected arg type: expected: %T, got %T", &big.Int{}, values[1]) + } + + if recceiverAddressValue != receiverAddress { + return fmt.Errorf("Unexpected sender: expected: %s, got %s", receiverAddress, recceiverAddressValue) + } + + if sender != source.Address { + return fmt.Errorf("Unexpected sender: expected: %s, got %s", source.Address, sender) + } + + if amount.Cmp(sentAmount) != 0 { + return fmt.Errorf("Unexpected sent amount: expected: %s, got %s", amount, sentAmount) + } + + if receiptTopic == zeroHash { + receiptTopic = logs.Event.Raw.Topics[0] + } + } + + return nil + }() + + if err != nil { + return err + } + + auth.Nonce = (&big.Int{}).Add(auth.Nonce, big.NewInt(1)) + } + + devnet.Logger(ctx).Info("Waiting for checkpoint") + + err = heimdall.AwaitCheckpoint(ctx, lastTxBlockNum) + + if err != nil { + return err + } + + for _, hash := range sendTxHashes { + payload, err := proofGenerator.GenerateExitPayload(ctx, hash, receiptTopic, 0) + + waiter, cancel := blocks.BlockWaiter(ctx, blocks.CompletionChecker) + defer cancel() + + if err != nil { + return err + } + + transaction, err := receiver.ReceiveMessage(auth, payload) + + if err != nil { + return err + } + + if _, err := waiter.Await(transaction.Hash()); err != nil { + return err + } + + } + + receivedCount := 0 + + devnet.Logger(ctx).Info("Waiting for receive events") + + for received := range receivedChan { + if received.Source != source.Address { + return fmt.Errorf("Source address mismatched: expected: %s, got: %s", source.Address, received.Source) + } + + if received.Amount.Cmp(accounts.EtherAmount(float64(minTransfer))) != 0 { + return fmt.Errorf("Amount mismatched: expected: %s, got: %s", accounts.EtherAmount(float64(minTransfer)), received.Amount) + } + + receivedCount++ + if receivedCount == numberOfTransfers { + break + } + } + + return nil +} diff --git a/cmd/devnet/contracts/steps/subscriber.go b/cmd/devnet/contracts/steps/subscriber.go index 9fd85b50709..bf9299116b4 100644 --- a/cmd/devnet/contracts/steps/subscriber.go +++ b/cmd/devnet/contracts/steps/subscriber.go @@ -5,6 +5,8 @@ import ( "fmt" "math/big" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + ethereum "github.com/ledgerwatch/erigon" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" @@ -18,8 +20,8 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" "github.com/ledgerwatch/erigon/cmd/devnet/transactions" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/rpc" ) func init() { @@ -60,7 +62,7 @@ func DeployAndCallLogSubscriber(ctx context.Context, deployer string) (*libcommo blockNum := txToBlockMap[eventHash] - block, err := node.GetBlockByNumber(blockNum, true) + block, err := node.GetBlockByNumber(ctx, rpc.AsBlockNumber(blockNum), true) if err != nil { return nil, err @@ -126,7 +128,7 @@ func EmitFallbackEvent(node devnet.Node, subContract *contracts.Subscription, op // initializeTransactOps initializes the transactOpts object for a contract transaction func initializeTransactOps(node devnet.Node, transactor libcommon.Address) (*bind.TransactOpts, error) { - count, err := node.GetTransactionCount(transactor, requests.BlockNumbers.Latest) + count, err := node.GetTransactionCount(transactor, rpc.LatestBlock) if err != nil { return nil, fmt.Errorf("failed to get transaction count for address 0x%x: %v", transactor, err) diff --git a/cmd/devnet/contracts/testrootchain.sol b/cmd/devnet/contracts/testrootchain.sol new file mode 100644 index 00000000000..1e11bf8c233 --- /dev/null +++ b/cmd/devnet/contracts/testrootchain.sol @@ -0,0 +1,329 @@ + +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {RLPReader} from "lib/rlpreader.sol"; +import {SafeMath} from "lib/safemath.sol"; + +interface IRootChain { + function slash() external; + + function submitHeaderBlock(bytes calldata data, bytes calldata sigs) + external; + + function submitCheckpoint(bytes calldata data, uint[3][] calldata sigs) + external; + + function getLastChildBlock() external view returns (uint256); + + function currentHeaderBlock() external view returns (uint256); +} + +contract RootChainHeader { + event NewHeaderBlock( + address indexed proposer, + uint256 indexed headerBlockId, + uint256 indexed reward, + uint256 start, + uint256 end, + bytes32 root + ); + // housekeeping event + event ResetHeaderBlock(address indexed proposer, uint256 indexed headerBlockId); + struct HeaderBlock { + bytes32 root; + uint256 start; + uint256 end; + uint256 createdAt; + address proposer; + } +} + +contract ProxyStorage { + address internal proxyTo; +} + +contract ChainIdMixin { + bytes constant public networkId = hex"0539"; + uint256 constant public CHAINID = 1337; +} + +interface IGovernance { + function update(address target, bytes calldata data) external; +} + +contract Governable { + IGovernance public governance; + + constructor(address _governance) { + governance = IGovernance(_governance); + } + + modifier onlyGovernance() { + _assertGovernance(); + _; + } + + function _assertGovernance() private view { + require( + msg.sender == address(governance), + "Only governance contract is authorized" + ); + } +} + +contract Registry is Governable { + // @todo hardcode constants + bytes32 private constant WETH_TOKEN = keccak256("wethToken"); + bytes32 private constant DEPOSIT_MANAGER = keccak256("depositManager"); + bytes32 private constant STAKE_MANAGER = keccak256("stakeManager"); + bytes32 private constant VALIDATOR_SHARE = keccak256("validatorShare"); + bytes32 private constant WITHDRAW_MANAGER = keccak256("withdrawManager"); + bytes32 private constant CHILD_CHAIN = keccak256("childChain"); + bytes32 private constant STATE_SENDER = keccak256("stateSender"); + bytes32 private constant SLASHING_MANAGER = keccak256("slashingManager"); + + address public erc20Predicate; + address public erc721Predicate; + + mapping(bytes32 => address) public contractMap; + mapping(address => address) public rootToChildToken; + mapping(address => address) public childToRootToken; + mapping(address => bool) public proofValidatorContracts; + mapping(address => bool) public isERC721; + + enum Type {Invalid, ERC20, ERC721, Custom} + struct Predicate { + Type _type; + } + mapping(address => Predicate) public predicates; + + event TokenMapped(address indexed rootToken, address indexed childToken); + event ProofValidatorAdded(address indexed validator, address indexed from); + event ProofValidatorRemoved(address indexed validator, address indexed from); + event PredicateAdded(address indexed predicate, address indexed from); + event PredicateRemoved(address indexed predicate, address indexed from); + event ContractMapUpdated(bytes32 indexed key, address indexed previousContract, address indexed newContract); + + constructor(address _governance) Governable(_governance) {} + + function updateContractMap(bytes32 _key, address _address) external onlyGovernance { + emit ContractMapUpdated(_key, contractMap[_key], _address); + contractMap[_key] = _address; + } + + /** + * @dev Map root token to child token + * @param _rootToken Token address on the root chain + * @param _childToken Token address on the child chain + * @param _isERC721 Is the token being mapped ERC721 + */ + function mapToken( + address _rootToken, + address _childToken, + bool _isERC721 + ) external onlyGovernance { + require(_rootToken != address(0x0) && _childToken != address(0x0), "INVALID_TOKEN_ADDRESS"); + rootToChildToken[_rootToken] = _childToken; + childToRootToken[_childToken] = _rootToken; + isERC721[_rootToken] = _isERC721; + //IWithdrawManager(contractMap[WITHDRAW_MANAGER]).createExitQueue(_rootToken); + emit TokenMapped(_rootToken, _childToken); + } + + function addErc20Predicate(address predicate) public onlyGovernance { + require(predicate != address(0x0), "Can not add null address as predicate"); + erc20Predicate = predicate; + addPredicate(predicate, Type.ERC20); + } + + function addErc721Predicate(address predicate) public onlyGovernance { + erc721Predicate = predicate; + addPredicate(predicate, Type.ERC721); + } + + function addPredicate(address predicate, Type _type) public onlyGovernance { + require(predicates[predicate]._type == Type.Invalid, "Predicate already added"); + predicates[predicate]._type = _type; + emit PredicateAdded(predicate, msg.sender); + } + + function removePredicate(address predicate) public onlyGovernance { + require(predicates[predicate]._type != Type.Invalid, "Predicate does not exist"); + delete predicates[predicate]; + emit PredicateRemoved(predicate, msg.sender); + } + + function getValidatorShareAddress() public view returns (address) { + return contractMap[VALIDATOR_SHARE]; + } + + function getWethTokenAddress() public view returns (address) { + return contractMap[WETH_TOKEN]; + } + + function getDepositManagerAddress() public view returns (address) { + return contractMap[DEPOSIT_MANAGER]; + } + + function getStakeManagerAddress() public view returns (address) { + return contractMap[STAKE_MANAGER]; + } + + function getSlashingManagerAddress() public view returns (address) { + return contractMap[SLASHING_MANAGER]; + } + + function getWithdrawManagerAddress() public view returns (address) { + return contractMap[WITHDRAW_MANAGER]; + } + + function getChildChainAndStateSender() public view returns (address, address) { + return (contractMap[CHILD_CHAIN], contractMap[STATE_SENDER]); + } + + function isTokenMapped(address _token) public view returns (bool) { + return rootToChildToken[_token] != address(0x0); + } + + function isTokenMappedAndIsErc721(address _token) public view returns (bool) { + require(isTokenMapped(_token), "TOKEN_NOT_MAPPED"); + return isERC721[_token]; + } + + function isTokenMappedAndGetPredicate(address _token) public view returns (address) { + if (isTokenMappedAndIsErc721(_token)) { + return erc721Predicate; + } + return erc20Predicate; + } + + function isChildTokenErc721(address childToken) public view returns (bool) { + address rootToken = childToRootToken[childToken]; + require(rootToken != address(0x0), "Child token is not mapped"); + return isERC721[rootToken]; + } +} + +contract RootChainStorage is ProxyStorage, RootChainHeader, ChainIdMixin { + bytes32 public heimdallId; + uint8 public constant VOTE_TYPE = 2; + + uint16 internal constant MAX_DEPOSITS = 10000; + uint256 public _nextHeaderBlock = MAX_DEPOSITS; + uint256 internal _blockDepositId = 1; + mapping(uint256 => HeaderBlock) public headerBlocks; + Registry internal registry; +} + +contract TestRootChain is RootChainStorage, IRootChain { + using SafeMath for uint256; + using RLPReader for bytes; + using RLPReader for RLPReader.RLPItem; + + modifier onlyDepositManager() { + require(msg.sender == registry.getDepositManagerAddress(), "UNAUTHORIZED_DEPOSIT_MANAGER_ONLY"); + _; + } + + function submitHeaderBlock(bytes calldata /*data*/, bytes calldata /*sigs*/) external pure { + revert(); + } + + function submitCheckpoint(bytes calldata data, uint[3][] calldata /*sigs*/) external { + (address proposer, uint256 start, uint256 end, bytes32 rootHash, bytes32 accountHash, uint256 borChainID) = + abi.decode(data, (address, uint256, uint256, bytes32, bytes32, uint256)); + require(CHAINID == borChainID, "Invalid bor chain id"); + + require(_buildHeaderBlock(proposer, start, end, rootHash), "INCORRECT_HEADER_DATA"); + + // check if it is better to keep it in local storage instead + /*IStakeManager stakeManager = IStakeManager(registry.getStakeManagerAddress()); + uint256 _reward = stakeManager.checkSignatures( + end.sub(start).add(1), + *//** + prefix 01 to data + 01 represents positive vote on data and 00 is negative vote + malicious validator can try to send 2/3 on negative vote so 01 is appended + *//* + keccak256(abi.encodePacked(bytes(hex"01"), data)), + accountHash, + proposer, + sigs + );*/ + + //require(_reward != 0, "Invalid checkpoint"); + emit NewHeaderBlock(proposer, _nextHeaderBlock, 0 /*_reward*/, start, end, rootHash); + _nextHeaderBlock = _nextHeaderBlock.add(MAX_DEPOSITS); + _blockDepositId = 1; + } + + function updateDepositId(uint256 numDeposits) external onlyDepositManager returns (uint256 depositId) { + depositId = currentHeaderBlock().add(_blockDepositId); + // deposit ids will be (_blockDepositId, _blockDepositId + 1, .... _blockDepositId + numDeposits - 1) + _blockDepositId = _blockDepositId.add(numDeposits); + require( + // Since _blockDepositId is initialized to 1; only (MAX_DEPOSITS - 1) deposits per header block are allowed + _blockDepositId <= MAX_DEPOSITS, + "TOO_MANY_DEPOSITS" + ); + } + + function getLastChildBlock() external view returns (uint256) { + return headerBlocks[currentHeaderBlock()].end; + } + + function slash() external { + //TODO: future implementation + } + + function currentHeaderBlock() public view returns (uint256) { + return _nextHeaderBlock.sub(MAX_DEPOSITS); + } + + function _buildHeaderBlock( + address proposer, + uint256 start, + uint256 end, + bytes32 rootHash + ) private returns (bool) { + uint256 nextChildBlock; + /* + The ID of the 1st header block is MAX_DEPOSITS. + if _nextHeaderBlock == MAX_DEPOSITS, then the first header block is yet to be submitted, hence nextChildBlock = 0 + */ + if (_nextHeaderBlock > MAX_DEPOSITS) { + nextChildBlock = headerBlocks[currentHeaderBlock()].end + 1; + } + if (nextChildBlock != start) { + return false; + } + + HeaderBlock memory headerBlock = HeaderBlock({ + root: rootHash, + start: nextChildBlock, + end: end, + createdAt: block.timestamp, + proposer: proposer + }); + + headerBlocks[_nextHeaderBlock] = headerBlock; + return true; + } + + // Housekeeping function. @todo remove later + function setNextHeaderBlock(uint256 _value) public /*onlyOwner*/ { + require(_value % MAX_DEPOSITS == 0, "Invalid value"); + for (uint256 i = _value; i < _nextHeaderBlock; i += MAX_DEPOSITS) { + delete headerBlocks[i]; + } + _nextHeaderBlock = _value; + _blockDepositId = 1; + emit ResetHeaderBlock(msg.sender, _nextHeaderBlock); + } + + // Housekeeping function. @todo remove later + function setHeimdallId(string memory _heimdallId) public /*onlyOwner*/ { + heimdallId = keccak256(abi.encodePacked(_heimdallId)); + } +} diff --git a/cmd/devnet/contracts/util.go b/cmd/devnet/contracts/util.go index 5eb72a11b48..c9f0f173a77 100644 --- a/cmd/devnet/contracts/util.go +++ b/cmd/devnet/contracts/util.go @@ -10,6 +10,8 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/devnet" "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/turbo/jsonrpc" ) func TransactOpts(ctx context.Context, sender libcommon.Address) (*bind.TransactOpts, error) { @@ -21,7 +23,7 @@ func TransactOpts(ctx context.Context, sender libcommon.Address) (*bind.Transact return nil, err } - count, err := node.GetTransactionCount(sender, requests.BlockNumbers.Pending) + count, err := node.GetTransactionCount(sender, rpc.PendingBlock) if err != nil { return nil, err @@ -57,7 +59,7 @@ func Deploy[C any](ctx context.Context, deployer libcommon.Address, deploy func( func DeployWithOps[C any](ctx context.Context, auth *bind.TransactOpts, deploy func(auth *bind.TransactOpts, backend bind.ContractBackend) (libcommon.Address, types.Transaction, *C, error)) (libcommon.Address, types.Transaction, *C, error) { node := devnet.SelectNode(ctx) - count, err := node.GetTransactionCount(auth.From, requests.BlockNumbers.Pending) + count, err := node.GetTransactionCount(auth.From, rpc.PendingBlock) if err != nil { return libcommon.Address{}, nil, nil, err @@ -72,7 +74,7 @@ func DeployWithOps[C any](ctx context.Context, auth *bind.TransactOpts, deploy f } var DeploymentChecker = blocks.BlockHandlerFunc( - func(ctx context.Context, node devnet.Node, block *requests.BlockResult, transaction *requests.Transaction) error { + func(ctx context.Context, node devnet.Node, block *requests.Block, transaction *jsonrpc.RPCTransaction) error { if err := blocks.CompletionChecker(ctx, node, block, transaction); err != nil { return nil } diff --git a/cmd/devnet/devnet/context.go b/cmd/devnet/devnet/context.go index 549bae33f66..54d9faccbc7 100644 --- a/cmd/devnet/devnet/context.go +++ b/cmd/devnet/devnet/context.go @@ -1,11 +1,10 @@ package devnet import ( - context "context" + "context" "math/big" "github.com/ledgerwatch/log/v3" - "github.com/urfave/cli/v2" ) type ctxKey int @@ -14,7 +13,6 @@ const ( ckLogger ctxKey = iota ckNetwork ckNode - ckCliContext ckDevnet ) @@ -71,14 +69,30 @@ type cnet struct { network *Network } -func WithDevnet(ctx context.Context, cliCtx *cli.Context, devnet Devnet, logger log.Logger) Context { - return WithCliContext( - context.WithValue( - context.WithValue(ctx, ckDevnet, devnet), - ckLogger, logger), cliCtx) +func WithDevnet(ctx context.Context, devnet Devnet, logger log.Logger) Context { + ctx = context.WithValue(ctx, ckDevnet, devnet) + ctx = context.WithValue(ctx, ckLogger, logger) + return devnetContext{ctx} } func WithCurrentNetwork(ctx context.Context, selector interface{}) Context { + if current := CurrentNetwork(ctx); current != nil { + if devnet, ok := ctx.Value(ckDevnet).(Devnet); ok { + selected := devnet.SelectNetwork(ctx, selector) + + if selected == current { + if ctx, ok := ctx.(devnetContext); ok { + return ctx + } + return devnetContext{ctx} + } + } + } + + if current := CurrentNode(ctx); current != nil { + ctx = context.WithValue(ctx, ckNode, nil) + } + return devnetContext{context.WithValue(ctx, ckNetwork, &cnet{selector: selector})} } @@ -90,14 +104,6 @@ func WithCurrentNode(ctx context.Context, selector interface{}) Context { return devnetContext{context.WithValue(ctx, ckNode, &cnode{selector: selector})} } -func WithCliContext(ctx context.Context, cliCtx *cli.Context) Context { - return devnetContext{context.WithValue(ctx, ckCliContext, cliCtx)} -} - -func CliContext(ctx context.Context) *cli.Context { - return ctx.Value(ckCliContext).(*cli.Context) -} - func CurrentChainID(ctx context.Context) *big.Int { if network := CurrentNetwork(ctx); network != nil { return network.ChainID() @@ -134,7 +140,7 @@ func CurrentNetwork(ctx context.Context) *Network { } if current := CurrentNode(ctx); current != nil { - if n, ok := current.(*node); ok { + if n, ok := current.(*devnetNode); ok { return n.network } } diff --git a/cmd/devnet/devnet/devnet.go b/cmd/devnet/devnet/devnet.go index 310db056802..adb8030945e 100644 --- a/cmd/devnet/devnet/devnet.go +++ b/cmd/devnet/devnet/devnet.go @@ -1,13 +1,12 @@ package devnet import ( - context "context" + "context" "math/big" "regexp" "sync" "github.com/ledgerwatch/log/v3" - "github.com/urfave/cli/v2" ) type Devnet []*Network @@ -22,12 +21,12 @@ func (f NetworkSelectorFunc) Test(ctx context.Context, network *Network) bool { return f(ctx, network) } -func (d Devnet) Start(ctx *cli.Context, logger log.Logger) (Context, error) { +func (d Devnet) Start(logger log.Logger) (Context, error) { var wg sync.WaitGroup errors := make(chan error, len(d)) - runCtx := WithDevnet(context.Background(), ctx, d, logger) + runCtx := WithDevnet(context.Background(), d, logger) for _, network := range d { wg.Add(1) diff --git a/cmd/devnet/devnet/network.go b/cmd/devnet/devnet/network.go index 95b85ee5799..29eee727cdf 100644 --- a/cmd/devnet/devnet/network.go +++ b/cmd/devnet/devnet/network.go @@ -1,21 +1,19 @@ package devnet import ( - context "context" - "errors" + "context" "fmt" "math/big" - "net" - "net/url" "os" "reflect" "strings" "sync" "time" + "github.com/ledgerwatch/erigon/cmd/utils" + "github.com/ledgerwatch/erigon-lib/common/dbg" - "github.com/ledgerwatch/erigon/cmd/devnet/args" - "github.com/ledgerwatch/erigon/cmd/devnet/devnetutils" + devnet_args "github.com/ledgerwatch/erigon/cmd/devnet/args" "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/params" @@ -40,9 +38,13 @@ type Network struct { BorStateSyncDelay time.Duration BorPeriod time.Duration BorMinBlockSize int + BorWithMilestones *bool wg sync.WaitGroup peers []string namedNodes map[string]Node + + // max number of blocks to look for a transaction in + MaxNumberOfEmptyBlockChecks int } func (nw *Network) ChainID() *big.Int { @@ -55,11 +57,6 @@ func (nw *Network) ChainID() *big.Int { // Start starts the process for multiple erigon nodes running on the dev chain func (nw *Network) Start(ctx context.Context) error { - - type configurable interface { - Configure(baseNode args.Node, nodeNumber int) (int, interface{}, error) - } - for _, service := range nw.Services { if err := service.Start(ctx); err != nil { nw.Stop() @@ -67,7 +64,7 @@ func (nw *Network) Start(ctx context.Context) error { } } - baseNode := args.Node{ + baseNode := devnet_args.NodeArgs{ DataDir: nw.DataDir, Chain: nw.Chain, Port: nw.BasePort, @@ -76,35 +73,33 @@ func (nw *Network) Start(ctx context.Context) error { Snapshots: nw.Snapshots, } - cliCtx := CliContext(ctx) + if nw.BorWithMilestones != nil { + baseNode.WithHeimdallMilestones = *nw.BorWithMilestones + } else { + baseNode.WithHeimdallMilestones = utils.WithHeimdallMilestones.Value + } - metricsEnabled := cliCtx.Bool("metrics") - metricsNode := cliCtx.Int("metrics.node") nw.namedNodes = map[string]Node{} - for i, node := range nw.Nodes { - if configurable, ok := node.(configurable); ok { + for i, nodeArgs := range nw.Nodes { + { + baseNode.StaticPeers = strings.Join(nw.peers, ",") - base := baseNode - - if metricsEnabled && metricsNode == i { - base.Metrics = true - base.MetricsPort = cliCtx.Int("metrics.port") - } - - nodePort, args, err := configurable.Configure(base, i) - - if err == nil { - node, err = nw.createNode(fmt.Sprintf("%s:%d", nw.BaseRPCHost, nodePort), args) + err := nodeArgs.Configure(baseNode, i) + if err != nil { + nw.Stop() + return err } + node, err := nw.createNode(nodeArgs) if err != nil { nw.Stop() return err } nw.Nodes[i] = node - nw.namedNodes[node.Name()] = node + nw.namedNodes[node.GetName()] = node + nw.peers = append(nw.peers, nodeArgs.GetEnodeURL()) for _, service := range nw.Services { service.NodeCreated(ctx, node) @@ -114,7 +109,6 @@ func (nw *Network) Start(ctx context.Context) error { for _, node := range nw.Nodes { err := nw.startNode(node) - if err != nil { nw.Stop() return err @@ -123,26 +117,6 @@ func (nw *Network) Start(ctx context.Context) error { for _, service := range nw.Services { service.NodeStarted(ctx, node) } - - // get the enode of the node - // - note this has the side effect of waiting for the node to start - enode, err := getEnode(node) - - if err != nil { - if errors.Is(err, devnetutils.ErrInvalidEnodeString) { - continue - } - - nw.Stop() - return err - } - - nw.peers = append(nw.peers, enode) - baseNode.StaticPeers = strings.Join(nw.peers, ",") - - // TODO do we need to call AddPeer to the nodes to make them aware of this one - // the current model only works for an appending node network where the peers gossip - // connections - not sure if this is the case ? } return nil @@ -150,11 +124,13 @@ func (nw *Network) Start(ctx context.Context) error { var blockProducerFunds = (&big.Int{}).Mul(big.NewInt(1000), big.NewInt(params.Ether)) -func (nw *Network) createNode(nodeAddr string, cfg interface{}) (Node, error) { - n := &node{ +func (nw *Network) createNode(nodeArgs Node) (Node, error) { + nodeAddr := fmt.Sprintf("%s:%d", nw.BaseRPCHost, nodeArgs.GetHttpPort()) + + n := &devnetNode{ sync.Mutex{}, requests.NewRequestGenerator(nodeAddr, nw.Logger), - cfg, + nodeArgs, &nw.wg, nw, make(chan error), @@ -199,16 +175,15 @@ func copyFlags(flags []cli.Flag) []cli.Flag { func (nw *Network) startNode(n Node) error { nw.wg.Add(1) - node := n.(*node) - - args, err := args.AsArgs(node.args) + node := n.(*devnetNode) + args, err := devnet_args.AsArgs(node.nodeArgs) if err != nil { return err } go func() { - nw.Logger.Info("Running node", "name", node.Name(), "args", args) + nw.Logger.Info("Running node", "name", node.GetName(), "args", args) // catch any errors and avoid panics if an error occurs defer func() { @@ -217,17 +192,17 @@ func (nw *Network) startNode(n Node) error { return } - nw.Logger.Error("catch panic", "node", node.Name(), "err", panicResult, "stack", dbg.Stack()) + nw.Logger.Error("catch panic", "node", node.GetName(), "err", panicResult, "stack", dbg.Stack()) nw.Stop() os.Exit(1) }() // cli flags are not thread safe and assume only one copy of a flag // variable is needed per process - which does not work here - app := erigonapp.MakeApp(node.Name(), node.run, copyFlags(erigoncli.DefaultFlags)) + app := erigonapp.MakeApp(node.GetName(), node.run, copyFlags(erigoncli.DefaultFlags)) if err := app.Run(args); err != nil { - nw.Logger.Warn("App run returned error", "node", node.Name(), "err", err) + nw.Logger.Warn("App run returned error", "node", node.GetName(), "err", err) } }() @@ -238,50 +213,6 @@ func (nw *Network) startNode(n Node) error { return nil } -// getEnode returns the enode of the netowrk node -func getEnode(n Node) (string, error) { - reqCount := 0 - - for { - nodeInfo, err := n.AdminNodeInfo() - - if err != nil { - if r, ok := n.(*node); ok { - if !r.running() { - return "", err - } - } - - if reqCount < 10 { - var urlErr *url.Error - if errors.As(err, &urlErr) { - var opErr *net.OpError - if errors.As(urlErr.Err, &opErr) { - var callErr *os.SyscallError - if errors.As(opErr.Err, &callErr) { - if strings.HasPrefix(callErr.Syscall, "connect") { - reqCount++ - time.Sleep(time.Duration(devnetutils.RandomInt(5)) * time.Second) - continue - } - } - } - } - } - - return "", err - } - - enode, err := devnetutils.UniqueIDFromEnode(nodeInfo.Enode) - - if err != nil { - return "", err - } - - return enode, nil - } -} - func (nw *Network) Stop() { type stoppable interface { Stop() diff --git a/cmd/devnet/devnet/node.go b/cmd/devnet/devnet/node.go index 5f4c62c4de6..4c372721a03 100644 --- a/cmd/devnet/devnet/node.go +++ b/cmd/devnet/devnet/node.go @@ -1,15 +1,17 @@ package devnet import ( - context "context" + "context" "fmt" "math/big" + "net/http" "sync" "github.com/c2h5oh/datasize" "github.com/ledgerwatch/erigon/cmd/devnet/accounts" "github.com/ledgerwatch/erigon/cmd/devnet/args" "github.com/ledgerwatch/erigon/cmd/devnet/requests" + "github.com/ledgerwatch/erigon/diagnostics" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/node/nodecfg" "github.com/ledgerwatch/erigon/params" @@ -21,10 +23,14 @@ import ( type Node interface { requests.RequestGenerator - Name() string + GetName() string ChainID() *big.Int + GetHttpPort() int + GetEnodeURL() string Account() *accounts.Account IsBlockProducer() bool + Configure(baseNode args.NodeArgs, nodeNumber int) error + EnableMetrics(port int) } type NodeSelector interface { @@ -38,7 +44,7 @@ func (f NodeSelectorFunc) Test(ctx context.Context, node Node) bool { } func HTTPHost(n Node) string { - if n, ok := n.(*node); ok { + if n, ok := n.(*devnetNode); ok { host := n.nodeCfg.Http.HttpListenAddress if host == "" { @@ -51,10 +57,10 @@ func HTTPHost(n Node) string { return "" } -type node struct { +type devnetNode struct { sync.Mutex requests.RequestGenerator - args interface{} + nodeArgs Node wg *sync.WaitGroup network *Network startErr chan error @@ -63,7 +69,7 @@ type node struct { ethNode *enode.ErigonNode } -func (n *node) Stop() { +func (n *devnetNode) Stop() { var toClose *enode.ErigonNode n.Lock() @@ -80,13 +86,13 @@ func (n *node) Stop() { n.done() } -func (n *node) running() bool { +func (n *devnetNode) running() bool { n.Lock() defer n.Unlock() return n.startErr == nil && n.ethNode != nil } -func (n *node) done() { +func (n *devnetNode) done() { n.Lock() defer n.Unlock() if n.wg != nil { @@ -96,39 +102,43 @@ func (n *node) done() { } } -func (n *node) IsBlockProducer() bool { - _, isBlockProducer := n.args.(args.BlockProducer) - return isBlockProducer +func (n *devnetNode) Configure(args.NodeArgs, int) error { + return nil } -func (n *node) Account() *accounts.Account { - if miner, ok := n.args.(args.BlockProducer); ok { - return miner.Account() - } +func (n *devnetNode) IsBlockProducer() bool { + return n.nodeArgs.IsBlockProducer() +} - return nil +func (n *devnetNode) Account() *accounts.Account { + return n.nodeArgs.Account() } -func (n *node) Name() string { - if named, ok := n.args.(interface{ Name() string }); ok { - return named.Name() - } +func (n *devnetNode) GetName() string { + return n.nodeArgs.GetName() +} - return "" +func (n *devnetNode) ChainID() *big.Int { + return n.nodeArgs.ChainID() } -func (n *node) ChainID() *big.Int { - if n.ethCfg != nil { - return n.ethCfg.Genesis.Config.ChainID - } +func (n *devnetNode) GetHttpPort() int { + return n.nodeArgs.GetHttpPort() +} - return nil +func (n *devnetNode) GetEnodeURL() string { + return n.nodeArgs.GetEnodeURL() +} + +func (n *devnetNode) EnableMetrics(int) { + panic("not implemented") } // run configures, creates and serves an erigon node -func (n *node) run(ctx *cli.Context) error { +func (n *devnetNode) run(ctx *cli.Context) error { var logger log.Logger var err error + var metricsMux *http.ServeMux defer n.done() defer func() { @@ -141,7 +151,7 @@ func (n *node) run(ctx *cli.Context) error { n.Unlock() }() - if logger, err = debug.Setup(ctx, false /* rootLogger */); err != nil { + if logger, metricsMux, err = debug.Setup(ctx, false /* rootLogger */); err != nil { return err } @@ -164,7 +174,11 @@ func (n *node) run(ctx *cli.Context) error { n.ethCfg.Bor.StateSyncConfirmationDelay = map[string]uint64{"0": uint64(n.network.BorStateSyncDelay.Seconds())} } - n.ethNode, err = enode.New(n.nodeCfg, n.ethCfg, logger) + n.ethNode, err = enode.New(ctx.Context, n.nodeCfg, n.ethCfg, logger) + + if metricsMux != nil { + diagnostics.Setup(ctx, metricsMux, n.ethNode) + } n.Lock() if n.startErr != nil { diff --git a/cmd/devnet/devnet/service.go b/cmd/devnet/devnet/service.go index 5ec41a16fa0..520ce3fe740 100644 --- a/cmd/devnet/devnet/service.go +++ b/cmd/devnet/devnet/service.go @@ -1,6 +1,6 @@ package devnet -import context "context" +import "context" type Service interface { Start(context context.Context) error diff --git a/cmd/devnet/devnetutils/utils.go b/cmd/devnet/devnetutils/utils.go index 5e204a41771..6993eb90da4 100644 --- a/cmd/devnet/devnetutils/utils.go +++ b/cmd/devnet/devnetutils/utils.go @@ -5,7 +5,6 @@ import ( "encoding/binary" "errors" "fmt" - "io/ioutil" "net" "os" "path/filepath" @@ -24,7 +23,7 @@ var ErrInvalidEnodeString = errors.New("invalid enode string") func ClearDevDB(dataDir string, logger log.Logger) error { logger.Info("Deleting nodes' data folders") - files, err := ioutil.ReadDir(dataDir) + files, err := os.ReadDir(dataDir) if err != nil { return err diff --git a/cmd/devnet/main.go b/cmd/devnet/main.go index 841ac79f253..69f66e7a795 100644 --- a/cmd/devnet/main.go +++ b/cmd/devnet/main.go @@ -1,39 +1,34 @@ package main import ( - "context" "fmt" "os" "os/signal" "path/filepath" - "strings" - dbg "runtime/debug" + "strings" "syscall" "time" + "github.com/ledgerwatch/erigon/cmd/devnet/services" + "github.com/ledgerwatch/erigon/cmd/devnet/services/polygon" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/common/metrics" "github.com/ledgerwatch/erigon/cmd/devnet/accounts" _ "github.com/ledgerwatch/erigon/cmd/devnet/accounts/steps" _ "github.com/ledgerwatch/erigon/cmd/devnet/admin" _ "github.com/ledgerwatch/erigon/cmd/devnet/contracts/steps" - account_services "github.com/ledgerwatch/erigon/cmd/devnet/services/accounts" - "github.com/ledgerwatch/erigon/cmd/devnet/services/bor" - "github.com/ledgerwatch/erigon/cmd/devnet/transactions" - "github.com/ledgerwatch/erigon/core/types" - - "github.com/ledgerwatch/erigon-lib/common/metrics" - "github.com/ledgerwatch/erigon/cmd/devnet/args" "github.com/ledgerwatch/erigon/cmd/devnet/devnet" "github.com/ledgerwatch/erigon/cmd/devnet/devnetutils" "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" - "github.com/ledgerwatch/erigon/cmd/devnet/services" - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon/cmd/devnet/tests" "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/cmd/utils/flags" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/turbo/app" + erigon_app "github.com/ledgerwatch/erigon/turbo/app" "github.com/ledgerwatch/erigon/turbo/debug" "github.com/ledgerwatch/erigon/turbo/logging" "github.com/urfave/cli/v2" @@ -59,6 +54,18 @@ var ( Value: "dynamic-tx-node-0", } + BaseRpcHostFlag = cli.StringFlag{ + Name: "rpc.host", + Usage: "The host of the base RPC service", + Value: "localhost", + } + + BaseRpcPortFlag = cli.IntFlag{ + Name: "rpc.port", + Usage: "The port of the base RPC service", + Value: 8545, + } + WithoutHeimdallFlag = cli.BoolFlag{ Name: "bor.withoutheimdall", Usage: "Run without Heimdall service", @@ -69,10 +76,10 @@ var ( Usage: "Run with a devnet local Heimdall service", } - HeimdallgRPCAddressFlag = cli.StringFlag{ + HeimdallGrpcAddressFlag = cli.StringFlag{ Name: "bor.heimdallgRPC", Usage: "Address of Heimdall gRPC service", - Value: "localhost:8540", + Value: polygon.HeimdallGrpcAddressDefault, } BorSprintSizeFlag = cli.IntFlag{ @@ -98,8 +105,8 @@ var ( } DiagnosticsURLFlag = cli.StringFlag{ - Name: "diagnostics.url", - Usage: "URL of the diagnostics system provided by the support team, include unique session PIN", + Name: "diagnostics.addr", + Usage: "Address of the diagnostics system provided by the support team, include unique session PIN", } insecureFlag = cli.BoolFlag{ @@ -108,7 +115,7 @@ var ( } metricsURLsFlag = cli.StringSliceFlag{ - Name: "metrics.urls", + Name: "debug.urls", Usage: "internal flag", } @@ -123,26 +130,24 @@ type PanicHandler struct { func (ph PanicHandler) Log(r *log.Record) error { fmt.Printf("Msg: %s\nStack: %s\n", r.Msg, dbg.Stack()) - os.Exit(1) + os.Exit(2) return nil } func main() { - - debug.RaiseFdLimit() - app := cli.NewApp() app.Version = params.VersionWithCommit(params.GitCommit) - app.Action = func(ctx *cli.Context) error { - return action(ctx) - } + app.Action = mainContext + app.Flags = []cli.Flag{ &DataDirFlag, &ChainFlag, &ScenariosFlag, + &BaseRpcHostFlag, + &BaseRpcPortFlag, &WithoutHeimdallFlag, &LocalHeimdallFlag, - &HeimdallgRPCAddressFlag, + &HeimdallGrpcAddressFlag, &BorSprintSizeFlag, &MetricsEnabledFlag, &MetricsNodeFlag, @@ -156,27 +161,18 @@ func main() { &logging.LogDirVerbosityFlag, } - app.After = func(ctx *cli.Context) error { - // unsubscribe from all the subscriptions made - services.UnsubscribeAll() - return nil - } if err := app.Run(os.Args); err != nil { - fmt.Fprintln(os.Stderr, err) + _, _ = fmt.Fprintln(os.Stderr, err) + os.Exit(1) } } -const ( - recipientAddress = "0x71562b71999873DB5b286dF957af199Ec94617F7" - sendValue uint64 = 10000 -) - -func action(ctx *cli.Context) error { - dataDir := ctx.String("datadir") +func setupLogger(ctx *cli.Context) (log.Logger, error) { + dataDir := ctx.String(DataDirFlag.Name) logsDir := filepath.Join(dataDir, "logs") if err := os.MkdirAll(logsDir, 0755); err != nil { - return err + return nil, err } logger := logging.SetupLoggerCtx("devnet", ctx, false /* rootLogger */) @@ -184,65 +180,92 @@ func action(ctx *cli.Context) error { // Make root logger fail log.Root().SetHandler(PanicHandler{}) + return logger, nil +} + +func handleTerminationSignals(stopFunc func(), logger log.Logger) { + signalCh := make(chan os.Signal, 1) + signal.Notify(signalCh, syscall.SIGTERM, syscall.SIGINT) + + switch s := <-signalCh; s { + case syscall.SIGTERM: + logger.Info("Stopping networks") + stopFunc() + case syscall.SIGINT: + logger.Info("Terminating network") + os.Exit(-int(syscall.SIGINT)) + } +} + +func connectDiagnosticsIfEnabled(ctx *cli.Context, logger log.Logger) { + metricsEnabled := ctx.Bool(MetricsEnabledFlag.Name) + diagnosticsUrl := ctx.String(DiagnosticsURLFlag.Name) + if metricsEnabled && len(diagnosticsUrl) > 0 { + err := erigon_app.ConnectDiagnostics(ctx, logger) + if err != nil { + logger.Error("app.ConnectDiagnostics failed", "err", err) + } + } +} + +func mainContext(ctx *cli.Context) error { + debug.RaiseFdLimit() + + logger, err := setupLogger(ctx) + if err != nil { + return err + } + // clear all the dev files + dataDir := ctx.String(DataDirFlag.Name) if err := devnetutils.ClearDevDB(dataDir, logger); err != nil { return err } network, err := initDevnet(ctx, logger) - if err != nil { return err } - metrics := ctx.Bool("metrics") - - if metrics { - // TODO should get this from the network as once we have multiple nodes we'll need to iterate the - // nodes and create a series of urls - for the moment only one is supported - ctx.Set("metrics.urls", fmt.Sprintf("http://localhost:%d/debug/metrics/", ctx.Int("metrics.port"))) + if err = initDevnetMetrics(ctx, network); err != nil { + return err } - // start the network with each node in a go routine logger.Info("Starting Devnet") - - runCtx, err := network.Start(ctx, logger) - + runCtx, err := network.Start(logger) if err != nil { - return fmt.Errorf("Devnet start failed: %w", err) + return fmt.Errorf("devnet start failed: %w", err) } - go func() { - signalCh := make(chan os.Signal, 1) - signal.Notify(signalCh, syscall.SIGTERM, syscall.SIGINT) - - switch s := <-signalCh; s { - case syscall.SIGTERM: - logger.Info("Stopping networks") - network.Stop() - case syscall.SIGINT: - logger.Info("Terminating network") - os.Exit(-int(syscall.SIGINT)) - } - }() - - diagnosticsUrl := ctx.String("diagnostics.url") + go handleTerminationSignals(network.Stop, logger) + go connectDiagnosticsIfEnabled(ctx, logger) - if metrics && len(diagnosticsUrl) > 0 { - go func() { - app.ConnectDiagnostics(ctx, logger) - }() + enabledScenarios := strings.Split(ctx.String(ScenariosFlag.Name), ",") + if err = allScenarios(runCtx).Run(runCtx, enabledScenarios...); err != nil { + return err } - if ctx.String(ChainFlag.Name) == networkname.DevChainName { - transactions.MaxNumberOfEmptyBlockChecks = 30 + if ctx.Bool(WaitFlag.Name) { + logger.Info("Waiting") + network.Wait() + } else { + logger.Info("Stopping Networks") + network.Stop() } - scenarios.Scenarios{ + return nil +} + +func allScenarios(runCtx devnet.Context) scenarios.Scenarios { + // unsubscribe from all the subscriptions made + defer services.UnsubscribeAll() + + const recipientAddress = "0x71562b71999873DB5b286dF957af199Ec94617F7" + const sendValue uint64 = 10000 + + return scenarios.Scenarios{ "dynamic-tx-node-0": { - Context: runCtx. - WithCurrentNetwork(0). - WithCurrentNode(0), + Context: runCtx.WithCurrentNetwork(0).WithCurrentNode(0), Steps: []*scenarios.Step{ {Text: "InitSubscriptions", Args: []any{[]requests.SubMethod{requests.Methods.ETHNewHeads}}}, {Text: "PingErigonRpc"}, @@ -276,187 +299,66 @@ func action(ctx *cli.Context) error { {Text: "DeployChildChainReceiver", Args: []any{"child-funder"}}, {Text: "DeployRootChainSender", Args: []any{"root-funder"}}, {Text: "GenerateSyncEvents", Args: []any{"root-funder", 10, 2, 2}}, - {Text: "ProcessTransfers", Args: []any{"root-funder", 10, 2, 2}}, - {Text: "BatchProcessTransfers", Args: []any{"root-funder", 1, 10, 2, 2}}, + {Text: "ProcessRootTransfers", Args: []any{"root-funder", 10, 2, 2}}, + {Text: "BatchProcessRootTransfers", Args: []any{"root-funder", 1, 10, 2, 2}}, + }, + }, + "child-chain-exit": { + Steps: []*scenarios.Step{ + {Text: "CreateAccountWithFunds", Args: []any{networkname.DevChainName, "root-funder", 200.0}}, + {Text: "CreateAccountWithFunds", Args: []any{networkname.BorDevnetChainName, "child-funder", 200.0}}, + {Text: "DeployRootChainReceiver", Args: []any{"root-funder"}}, + {Text: "DeployChildChainSender", Args: []any{"child-funder"}}, + {Text: "ProcessChildTransfers", Args: []any{"child-funder", 1, 2, 2}}, + //{Text: "BatchProcessTransfers", Args: []any{"child-funder", 1, 10, 2, 2}}, }, }, - }.Run(runCtx, strings.Split(ctx.String("scenarios"), ",")...) - - if ctx.Bool("wait") || (metrics && len(diagnosticsUrl) > 0) { - logger.Info("Waiting") - network.Wait() - } else { - logger.Info("Stopping Networks") - network.Stop() } - - return nil } func initDevnet(ctx *cli.Context, logger log.Logger) (devnet.Devnet, error) { dataDir := ctx.String(DataDirFlag.Name) - chain := ctx.String(ChainFlag.Name) - - faucetSource := accounts.NewAccount("faucet-source") + chainName := ctx.String(ChainFlag.Name) + baseRpcHost := ctx.String(BaseRpcHostFlag.Name) + baseRpcPort := ctx.Int(BaseRpcPortFlag.Name) - switch chain { + switch chainName { case networkname.BorDevnetChainName: if ctx.Bool(WithoutHeimdallFlag.Name) { - return []*devnet.Network{ - { - DataDir: dataDir, - Chain: networkname.BorDevnetChainName, - Logger: logger, - BasePort: 30303, - BasePrivateApiAddr: "localhost:10090", - BaseRPCHost: "localhost", - BaseRPCPort: 8545, - //Snapshots: true, - Alloc: types.GenesisAlloc{ - faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, - }, - Services: []devnet.Service{ - account_services.NewFaucet(networkname.BorDevnetChainName, faucetSource), - }, - Nodes: []devnet.Node{ - args.BlockProducer{ - Node: args.Node{ - ConsoleVerbosity: "0", - DirVerbosity: "5", - WithoutHeimdall: true, - }, - AccountSlots: 200, - }, - args.NonBlockProducer{ - Node: args.Node{ - ConsoleVerbosity: "0", - DirVerbosity: "5", - WithoutHeimdall: true, - }, - }, - }, - }}, nil + return tests.NewBorDevnetWithoutHeimdall(dataDir, baseRpcHost, baseRpcPort, logger), nil + } else if ctx.Bool(LocalHeimdallFlag.Name) { + heimdallGrpcAddr := ctx.String(HeimdallGrpcAddressFlag.Name) + sprintSize := uint64(ctx.Int(BorSprintSizeFlag.Name)) + return tests.NewBorDevnetWithLocalHeimdall(dataDir, baseRpcHost, baseRpcPort, heimdallGrpcAddr, sprintSize, logger), nil } else { - var heimdallGrpc string - var services []devnet.Service + return tests.NewBorDevnetWithRemoteHeimdall(dataDir, baseRpcHost, baseRpcPort, logger), nil + } - if ctx.Bool(LocalHeimdallFlag.Name) { - config := *params.BorDevnetChainConfig + case networkname.DevChainName: + return tests.NewDevDevnet(dataDir, baseRpcHost, baseRpcPort, logger), nil - if sprintSize := uint64(ctx.Int(BorSprintSizeFlag.Name)); sprintSize > 0 { - config.Bor.Sprint = map[string]uint64{"0": sprintSize} - } + default: + return nil, fmt.Errorf("unknown network: '%s'", chainName) + } +} - services = append(services, bor.NewHeimdall(&config, logger)) +func initDevnetMetrics(ctx *cli.Context, network devnet.Devnet) error { + metricsEnabled := ctx.Bool(MetricsEnabledFlag.Name) + metricsNode := ctx.Int(MetricsNodeFlag.Name) + metricsPort := ctx.Int(MetricsPortFlag.Name) - heimdallGrpc = bor.HeimdallGRpc(devnet.WithCliContext(context.Background(), ctx)) - } + if !metricsEnabled { + return nil + } - return []*devnet.Network{ - { - DataDir: dataDir, - Chain: networkname.BorDevnetChainName, - Logger: logger, - BasePort: 30303, - BasePrivateApiAddr: "localhost:10090", - BaseRPCHost: "localhost", - BaseRPCPort: 8545, - BorStateSyncDelay: 30 * time.Second, - Services: append(services, account_services.NewFaucet(networkname.BorDevnetChainName, faucetSource)), - Alloc: types.GenesisAlloc{ - faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, - }, - Nodes: []devnet.Node{ - args.BlockProducer{ - Node: args.Node{ - ConsoleVerbosity: "0", - DirVerbosity: "5", - HeimdallGRpc: heimdallGrpc, - }, - AccountSlots: 200, - }, - args.BlockProducer{ - Node: args.Node{ - ConsoleVerbosity: "0", - DirVerbosity: "5", - HeimdallGRpc: heimdallGrpc, - }, - AccountSlots: 200, - }, - args.NonBlockProducer{ - Node: args.Node{ - ConsoleVerbosity: "0", - DirVerbosity: "5", - HeimdallGRpc: heimdallGrpc, - }, - }, - }, - }, - { - DataDir: dataDir, - Chain: networkname.DevChainName, - Logger: logger, - BasePort: 30403, - BasePrivateApiAddr: "localhost:10190", - BaseRPCHost: "localhost", - BaseRPCPort: 8645, - Services: append(services, account_services.NewFaucet(networkname.DevChainName, faucetSource)), - Alloc: types.GenesisAlloc{ - faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, - }, - Nodes: []devnet.Node{ - args.BlockProducer{ - Node: args.Node{ - ConsoleVerbosity: "0", - DirVerbosity: "5", - VMDebug: true, - HttpCorsDomain: "*", - }, - DevPeriod: 5, - AccountSlots: 200, - }, - args.NonBlockProducer{ - Node: args.Node{ - ConsoleVerbosity: "0", - DirVerbosity: "3", - }, - }, - }, - }}, nil + for _, nw := range network { + for i, nodeArgs := range nw.Nodes { + if metricsEnabled && (metricsNode == i) { + nodeArgs.EnableMetrics(metricsPort) + return nil + } } + } - case networkname.DevChainName: - return []*devnet.Network{ - { - DataDir: dataDir, - Chain: networkname.DevChainName, - Logger: logger, - BasePrivateApiAddr: "localhost:10090", - BaseRPCHost: "localhost", - BaseRPCPort: 8545, - Alloc: types.GenesisAlloc{ - faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, - }, - Services: []devnet.Service{ - account_services.NewFaucet(networkname.DevChainName, faucetSource), - }, - Nodes: []devnet.Node{ - args.BlockProducer{ - Node: args.Node{ - ConsoleVerbosity: "0", - DirVerbosity: "5", - }, - AccountSlots: 200, - }, - args.NonBlockProducer{ - Node: args.Node{ - ConsoleVerbosity: "0", - DirVerbosity: "5", - }, - }, - }, - }}, nil - } - - return nil, fmt.Errorf(`Unknown network: "%s"`, chain) + return fmt.Errorf("initDevnetMetrics: not found %s=%d", MetricsNodeFlag.Name, metricsNode) } diff --git a/cmd/devnet/requests/account.go b/cmd/devnet/requests/account.go index 329f10b4662..247bb6c9f35 100644 --- a/cmd/devnet/requests/account.go +++ b/cmd/devnet/requests/account.go @@ -1,24 +1,16 @@ package requests import ( + "context" "fmt" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" + "github.com/ledgerwatch/erigon/rpc" ) -type EthBalance struct { - CommonResponse - Balance hexutil.Big `json:"result"` -} - -type EthCode struct { - CommonResponse - Code hexutility.Bytes `json:"result"` -} - type DebugAccountAt struct { CommonResponse Result AccountResult `json:"result"` @@ -42,71 +34,41 @@ type StorageResult struct { Proof []string `json:"proof"` } -func (reqGen *requestGenerator) GetCode(address libcommon.Address, blockRef BlockNumber) (hexutility.Bytes, error) { - var b EthCode +func (reqGen *requestGenerator) GetCode(address libcommon.Address, blockRef rpc.BlockReference) (hexutility.Bytes, error) { + var result hexutility.Bytes - method, body := reqGen.getCode(address, blockRef) - if res := reqGen.call(method, body, &b); res.Err != nil { - return hexutility.Bytes{}, fmt.Errorf("failed to get code: %w", res.Err) + if err := reqGen.rpcCall(context.Background(), &result, Methods.ETHGetCode, address, blockRef); err != nil { + return nil, err } - if b.Error != nil { - return hexutility.Bytes{}, fmt.Errorf("Failed to get code: rpc failed: %w", b.Error) - } - - return b.Code, nil -} - -func (req *requestGenerator) getCode(address libcommon.Address, blockRef BlockNumber) (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"params":["0x%x","%s"],"id":%d}` - return Methods.ETHGetCode, fmt.Sprintf(template, Methods.ETHGetCode, address, blockRef, req.reqID) + return result, nil } -func (reqGen *requestGenerator) GetBalance(address libcommon.Address, blockNum BlockNumber) (*big.Int, error) { - var b EthBalance +func (reqGen *requestGenerator) GetBalance(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) { + var result hexutil.Big - method, body := reqGen.getBalance(address, blockNum) - if res := reqGen.call(method, body, &b); res.Err != nil { - return &big.Int{}, fmt.Errorf("failed to get balance: %w", res.Err) + if err := reqGen.rpcCall(context.Background(), &result, Methods.ETHGetBalance, address, blockRef); err != nil { + return nil, err } - if b.Error != nil { - return &big.Int{}, fmt.Errorf("Failed to get balance: rpc failed: %w", b.Error) - } - - return b.Balance.ToInt(), nil -} - -func (req *requestGenerator) getBalance(address libcommon.Address, blockNum BlockNumber) (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"params":["0x%x","%v"],"id":%d}` - return Methods.ETHGetBalance, fmt.Sprintf(template, Methods.ETHGetBalance, address, blockNum, req.reqID) + return result.ToInt(), nil } -func (reqGen *requestGenerator) GetTransactionCount(address libcommon.Address, blockNum BlockNumber) (*big.Int, error) { - var b EthGetTransactionCount +func (reqGen *requestGenerator) GetTransactionCount(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) { + var result hexutil.Big - method, body := reqGen.getTransactionCount(address, blockNum) - if res := reqGen.call(method, body, &b); res.Err != nil { - return nil, fmt.Errorf("error getting transaction count: %w", res.Err) + if err := reqGen.rpcCall(context.Background(), &result, Methods.ETHGetTransactionCount, address, blockRef); err != nil { + return nil, err } - if b.Error != nil { - return nil, fmt.Errorf("error populating response object: %w", b.Error) - } - - return big.NewInt(int64(b.Result)), nil -} - -func (req *requestGenerator) getTransactionCount(address libcommon.Address, blockNum BlockNumber) (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"params":["0x%x","%v"],"id":%d}` - return Methods.ETHGetTransactionCount, fmt.Sprintf(template, Methods.ETHGetTransactionCount, address, blockNum, req.reqID) + return result.ToInt(), nil } func (reqGen *requestGenerator) DebugAccountAt(blockHash libcommon.Hash, txIndex uint64, account libcommon.Address) (*AccountResult, error) { var b DebugAccountAt method, body := reqGen.debugAccountAt(blockHash, txIndex, account) - if res := reqGen.call(method, body, &b); res.Err != nil { + if res := reqGen.rpcCallJSON(method, body, &b); res.Err != nil { return nil, fmt.Errorf("failed to get account: %v", res.Err) } diff --git a/cmd/devnet/requests/admin.go b/cmd/devnet/requests/admin.go index cba12a5720f..eca0309b08b 100644 --- a/cmd/devnet/requests/admin.go +++ b/cmd/devnet/requests/admin.go @@ -1,29 +1,17 @@ package requests import ( - "fmt" + "context" "github.com/ledgerwatch/erigon/p2p" ) -// AdminNodeInfoResponse is the response for calls made to admin_nodeInfo -type AdminNodeInfoResponse struct { - CommonResponse - Result p2p.NodeInfo `json:"result"` -} - func (reqGen *requestGenerator) AdminNodeInfo() (p2p.NodeInfo, error) { - var b AdminNodeInfoResponse + var result p2p.NodeInfo - method, body := reqGen.adminNodeInfo() - if res := reqGen.call(method, body, &b); res.Err != nil { - return p2p.NodeInfo{}, fmt.Errorf("failed to get admin node info: %w", res.Err) + if err := reqGen.rpcCall(context.Background(), &result, Methods.AdminNodeInfo); err != nil { + return p2p.NodeInfo{}, err } - return b.Result, nil -} - -func (req *requestGenerator) adminNodeInfo() (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"id":%d}` - return Methods.AdminNodeInfo, fmt.Sprintf(template, Methods.AdminNodeInfo, req.reqID) + return result, nil } diff --git a/cmd/devnet/requests/block.go b/cmd/devnet/requests/block.go index 4f061bae510..67c86c7d716 100644 --- a/cmd/devnet/requests/block.go +++ b/cmd/devnet/requests/block.go @@ -1,21 +1,20 @@ package requests import ( - "fmt" + "context" + "encoding/json" "math/big" + hexutil2 "github.com/ledgerwatch/erigon-lib/common/hexutil" + libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/turbo/jsonrpc" ) -type EthBlockNumber struct { - CommonResponse - Number hexutil.Uint64 `json:"result"` -} - type BlockNumber string func (bn BlockNumber) Uint64() uint64 { @@ -27,7 +26,7 @@ func (bn BlockNumber) Uint64() uint64 { } func AsBlockNumber(n *big.Int) BlockNumber { - return BlockNumber(hexutil.EncodeBig(n)) + return BlockNumber(hexutil2.EncodeBig(n)) } var BlockNumbers = struct { @@ -43,107 +42,104 @@ var BlockNumbers = struct { Pending: "pending", } -type EthBlockByNumber struct { - CommonResponse - Result BlockResult `json:"result"` +type BlockWithTxHashes struct { + *types.Header + Hash libcommon.Hash `json:"hash"` + TransactionHashes []libcommon.Hash } -type BlockResult struct { - BlockNumber BlockNumber `json:"number"` - Difficulty hexutil.Big `json:"difficulty"` - Miner libcommon.Address `json:"miner"` - Transactions []Transaction `json:"transactions"` - TxRoot libcommon.Hash `json:"transactionsRoot"` - Hash libcommon.Hash `json:"hash"` -} +func (b *BlockWithTxHashes) UnmarshalJSON(input []byte) error { + var header types.Header + if err := json.Unmarshal(input, &header); err != nil { + return err + } -type Transaction struct { - From libcommon.Address `json:"from"` - To *libcommon.Address `json:"to"` // Pointer because it might be missing - Hash string `json:"hash"` - Gas hexutil.Big `json:"gas"` - GasPrice hexutil.Big `json:"gasPrice"` - Input hexutility.Bytes `json:"input"` - Value hexutil.Big `json:"value"` -} + var bd struct { + Hash libcommon.Hash `json:"hash"` + TransactionHashes []libcommon.Hash `json:"transactions"` + } + if err := json.Unmarshal(input, &bd); err != nil { + return err + } -type EthGetTransactionCount struct { - CommonResponse - Result hexutil.Uint64 `json:"result"` + b.Header = &header + b.Hash = bd.Hash + b.TransactionHashes = bd.TransactionHashes + + return nil } -type EthSendRawTransaction struct { - CommonResponse - TxnHash libcommon.Hash `json:"result"` +type Block struct { + BlockWithTxHashes + Transactions []*jsonrpc.RPCTransaction `json:"transactions"` } -func (reqGen *requestGenerator) BlockNumber() (uint64, error) { - var b EthBlockNumber +func (b *Block) UnmarshalJSON(input []byte) error { + var header types.Header + if err := json.Unmarshal(input, &header); err != nil { + return err + } - method, body := reqGen.blockNumber() - res := reqGen.call(method, body, &b) - number := uint64(b.Number) + var bd struct { + Hash libcommon.Hash `json:"hash"` + Transactions []*jsonrpc.RPCTransaction `json:"transactions"` + } + if err := json.Unmarshal(input, &bd); err != nil { + return err + } - if res.Err != nil { - return number, fmt.Errorf("error getting current block number: %v", res.Err) + b.Header = &header + b.Hash = bd.Hash + b.Transactions = bd.Transactions + + if bd.Transactions != nil { + b.TransactionHashes = make([]libcommon.Hash, len(b.Transactions)) + for _, t := range bd.Transactions { + b.TransactionHashes = append(b.TransactionHashes, t.Hash) + } } - return number, nil + return nil } -func (req *requestGenerator) blockNumber() (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"id":%d}` - return Methods.ETHBlockNumber, fmt.Sprintf(template, Methods.ETHBlockNumber, req.reqID) +type EthGetTransactionCount struct { + CommonResponse + Result hexutil2.Uint64 `json:"result"` } -func (reqGen *requestGenerator) GetBlockByNumber(blockNum uint64, withTxs bool) (*BlockResult, error) { - var b EthBlockByNumber - - method, body := reqGen.getBlockByNumber(blockNum, withTxs) - res := reqGen.call(method, body, &b) - if res.Err != nil { - return nil, fmt.Errorf("error getting block by number: %v", res.Err) - } +func (reqGen *requestGenerator) BlockNumber() (uint64, error) { + var result hexutil2.Uint64 - if b.Error != nil { - return nil, fmt.Errorf("error populating response object: %v", b.Error) + if err := reqGen.rpcCall(context.Background(), &result, Methods.ETHBlockNumber); err != nil { + return 0, err } - b.Result.BlockNumber = BlockNumber(fmt.Sprint(blockNum)) - - return &b.Result, nil -} - -func (req *requestGenerator) getBlockByNumber(blockNum uint64, withTxs bool) (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"params":["0x%x",%t],"id":%d}` - return Methods.ETHGetBlockByNumber, fmt.Sprintf(template, Methods.ETHGetBlockByNumber, blockNum, withTxs, req.reqID) + return uint64(result), nil } -func (req *requestGenerator) getBlockByNumberI(blockNum string, withTxs bool) (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"params":["%s",%t],"id":%d}` - return Methods.ETHGetBlockByNumber, fmt.Sprintf(template, Methods.ETHGetBlockByNumber, blockNum, withTxs, req.reqID) -} +func (reqGen *requestGenerator) GetBlockByNumber(ctx context.Context, blockNum rpc.BlockNumber, withTxs bool) (*Block, error) { + var result Block + var err error -func (reqGen *requestGenerator) GetBlockDetailsByNumber(blockNum string, withTxs bool) (map[string]interface{}, error) { - var b struct { - CommonResponse - Result interface{} `json:"result"` + if withTxs { + err = reqGen.rpcCall(ctx, &result, Methods.ETHGetBlockByNumber, blockNum, withTxs) + } else { + err = reqGen.rpcCall(ctx, &result.BlockWithTxHashes, Methods.ETHGetBlockByNumber, blockNum, withTxs) } - method, body := reqGen.getBlockByNumberI(blockNum, withTxs) - res := reqGen.call(method, body, &b) - if res.Err != nil { - return nil, fmt.Errorf("error getting block by number: %v", res.Err) + if err != nil { + return nil, err } - if b.Error != nil { - return nil, fmt.Errorf("error populating response object: %v", b.Error) - } + return &result, nil +} + +func (req *requestGenerator) GetRootHash(ctx context.Context, startBlock uint64, endBlock uint64) (libcommon.Hash, error) { + var result string - m, ok := b.Result.(map[string]interface{}) - if !ok { - return nil, fmt.Errorf("cannot convert type") + if err := req.rpcCall(ctx, &result, Methods.BorGetRootHash, startBlock, endBlock); err != nil { + return libcommon.Hash{}, err } - return m, nil + return libcommon.HexToHash(result), nil } diff --git a/cmd/devnet/requests/event.go b/cmd/devnet/requests/event.go index 8e116e63f30..2e50a500f8e 100644 --- a/cmd/devnet/requests/event.go +++ b/cmd/devnet/requests/event.go @@ -5,10 +5,11 @@ import ( "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + ethereum "github.com/ledgerwatch/erigon" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) @@ -33,11 +34,6 @@ func Compare(expected types.Log, actual types.Log) ([]error, bool) { return errs, len(errs) == 0 } -type EthGetLogs struct { - CommonResponse - Result []types.Log `json:"result"` -} - func NewLog(hash libcommon.Hash, blockNum uint64, address libcommon.Address, topics []libcommon.Hash, data hexutility.Bytes, txIndex uint, blockHash libcommon.Hash, index hexutil.Uint, removed bool) types.Log { return types.Log{ Address: address, @@ -53,14 +49,13 @@ func NewLog(hash libcommon.Hash, blockNum uint64, address libcommon.Address, top } func (reqGen *requestGenerator) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { - var b EthGetLogs + var result []types.Log - method, body := reqGen.getLogs(query) - if res := reqGen.call(method, body, &b); res.Err != nil { - return nil, fmt.Errorf("failed to fetch logs: %v", res.Err) + if err := reqGen.rpcCall(ctx, &result, Methods.ETHGetLogs, query); err != nil { + return nil, err } - return b.Result, nil + return result, nil } func (reqGen *requestGenerator) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { @@ -90,18 +85,3 @@ func hashSlicesAreEqual(s1, s2 []libcommon.Hash) bool { return true } - -func (req *requestGenerator) getLogs(query ethereum.FilterQuery) (RPCMethod, string) { - if len(query.Addresses) == 0 { - const template = `{"jsonrpc":"2.0","method":%q,"params":[{"fromBlock":"0x%x","toBlock":"0x%x"}],"id":%d}` - return Methods.ETHGetLogs, fmt.Sprintf(template, Methods.ETHGetLogs, query.FromBlock.Uint64(), query.ToBlock.Uint64(), req.reqID) - } - - const template = `{"jsonrpc":"2.0","method":%q,"params":[{"fromBlock":"0x%x","toBlock":"0x%x","address":"0x%x"}],"id":%d}` - return Methods.ETHGetLogs, fmt.Sprintf(template, Methods.ETHGetLogs, query.FromBlock.Uint64(), query.ToBlock.Uint64(), query.Addresses[0], req.reqID) -} - -func (req *requestGenerator) subscribeLogs(query ethereum.FilterQuery) (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"params":[{"fromBlock":"0x%x","toBlock":"0x%x","address":"0x%x"}],"id":%d}` - return Methods.ETHGetLogs, fmt.Sprintf(template, Methods.ETHGetLogs, query.FromBlock.Uint64(), query.ToBlock.Uint64(), query.Addresses[0], req.reqID) -} diff --git a/cmd/devnet/requests/nopgenerator.go b/cmd/devnet/requests/nopgenerator.go new file mode 100644 index 00000000000..6385876c4d1 --- /dev/null +++ b/cmd/devnet/requests/nopgenerator.go @@ -0,0 +1,105 @@ +package requests + +import ( + "context" + "errors" + "math/big" + + ethereum "github.com/ledgerwatch/erigon" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/p2p" + "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" + "github.com/ledgerwatch/erigon/turbo/jsonrpc" +) + +var ErrNotImplemented = errors.New("not implemented") + +type NopRequestGenerator struct { +} + +func (n NopRequestGenerator) PingErigonRpc() PingResult { + return PingResult{} +} + +func (n NopRequestGenerator) GetBalance(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) AdminNodeInfo() (p2p.NodeInfo, error) { + return p2p.NodeInfo{}, ErrNotImplemented +} + +func (n NopRequestGenerator) GetBlockByNumber(ctx context.Context, blockNum rpc.BlockNumber, withTxs bool) (*Block, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) GetTransactionByHash(hash libcommon.Hash) (*jsonrpc.RPCTransaction, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) GetTransactionReceipt(ctx context.Context, hash libcommon.Hash) (*types.Receipt, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) TraceTransaction(hash libcommon.Hash) ([]TransactionTrace, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) GetTransactionCount(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) BlockNumber() (uint64, error) { + return 0, ErrNotImplemented +} + +func (n NopRequestGenerator) SendTransaction(signedTx types.Transaction) (libcommon.Hash, error) { + return libcommon.Hash{}, ErrNotImplemented +} + +func (n NopRequestGenerator) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) Subscribe(ctx context.Context, method SubMethod, subChan interface{}, args ...interface{}) (ethereum.Subscription, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) TxpoolContent() (int, int, int, error) { + return 0, 0, 0, ErrNotImplemented +} + +func (n NopRequestGenerator) Call(args ethapi.CallArgs, blockRef rpc.BlockReference, overrides *ethapi.StateOverrides) ([]byte, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) TraceCall(blockRef rpc.BlockReference, args ethapi.CallArgs, traceOpts ...TraceOpt) (*TraceCallResult, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) DebugAccountAt(blockHash libcommon.Hash, txIndex uint64, account libcommon.Address) (*AccountResult, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) GetCode(address libcommon.Address, blockRef rpc.BlockReference) (hexutility.Bytes, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) EstimateGas(args ethereum.CallMsg, blockNum BlockNumber) (uint64, error) { + return 0, ErrNotImplemented +} + +func (n NopRequestGenerator) GasPrice() (*big.Int, error) { + return nil, ErrNotImplemented +} + +func (n NopRequestGenerator) GetRootHash(ctx context.Context, startBlock uint64, endBlock uint64) (libcommon.Hash, error) { + return libcommon.Hash{}, ErrNotImplemented +} diff --git a/cmd/devnet/requests/request_generator.go b/cmd/devnet/requests/request_generator.go index 90e2898347e..1c1e04628d1 100644 --- a/cmd/devnet/requests/request_generator.go +++ b/cmd/devnet/requests/request_generator.go @@ -3,9 +3,11 @@ package requests import ( "context" "encoding/json" + "errors" "fmt" "io" "math/big" + "net" "net/http" "strings" "sync" @@ -19,6 +21,7 @@ import ( "github.com/ledgerwatch/erigon/p2p" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" + "github.com/ledgerwatch/erigon/turbo/jsonrpc" "github.com/ledgerwatch/log/v3" "github.com/valyala/fastjson" ) @@ -51,23 +54,27 @@ func (e EthError) Error() string { type RequestGenerator interface { PingErigonRpc() PingResult - GetBalance(address libcommon.Address, blockNum BlockNumber) (*big.Int, error) + GetBalance(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) AdminNodeInfo() (p2p.NodeInfo, error) - GetBlockDetailsByNumber(blockNum string, withTxs bool) (map[string]interface{}, error) - GetBlockByNumber(blockNum uint64, withTxs bool) (*BlockResult, error) + GetBlockByNumber(ctx context.Context, blockNum rpc.BlockNumber, withTxs bool) (*Block, error) + GetTransactionByHash(hash libcommon.Hash) (*jsonrpc.RPCTransaction, error) + GetTransactionReceipt(ctx context.Context, hash libcommon.Hash) (*types.Receipt, error) + TraceTransaction(hash libcommon.Hash) ([]TransactionTrace, error) + GetTransactionCount(address libcommon.Address, blockRef rpc.BlockReference) (*big.Int, error) BlockNumber() (uint64, error) - GetTransactionCount(address libcommon.Address, blockNum BlockNumber) (*big.Int, error) SendTransaction(signedTx types.Transaction) (libcommon.Hash, error) FilterLogs(ctx context.Context, query ethereum.FilterQuery) ([]types.Log, error) SubscribeFilterLogs(ctx context.Context, query ethereum.FilterQuery, ch chan<- types.Log) (ethereum.Subscription, error) - TxpoolContent() (int, int, int, error) Subscribe(ctx context.Context, method SubMethod, subChan interface{}, args ...interface{}) (ethereum.Subscription, error) - TraceCall(blockRef string, args ethapi.CallArgs, traceOpts ...TraceOpt) (*TraceCallResult, error) - TraceTransaction(hash libcommon.Hash) ([]TransactionTrace, error) + TxpoolContent() (int, int, int, error) + Call(args ethapi.CallArgs, blockRef rpc.BlockReference, overrides *ethapi.StateOverrides) ([]byte, error) + TraceCall(blockRef rpc.BlockReference, args ethapi.CallArgs, traceOpts ...TraceOpt) (*TraceCallResult, error) DebugAccountAt(blockHash libcommon.Hash, txIndex uint64, account libcommon.Address) (*AccountResult, error) - GetCode(address libcommon.Address, blockNum BlockNumber) (hexutility.Bytes, error) + GetCode(address libcommon.Address, blockRef rpc.BlockReference) (hexutility.Bytes, error) EstimateGas(args ethereum.CallMsg, blockNum BlockNumber) (uint64, error) GasPrice() (*big.Int, error) + + GetRootHash(ctx context.Context, startBlock uint64, endBlock uint64) (libcommon.Hash, error) } type requestGenerator struct { @@ -75,6 +82,7 @@ type requestGenerator struct { reqID int client *http.Client subscriptionClient *rpc.Client + requestClient *rpc.Client logger log.Logger target string } @@ -108,40 +116,52 @@ var Methods = struct { // OTSGetBlockDetails represents the ots_getBlockDetails method OTSGetBlockDetails RPCMethod // ETHNewHeads represents the eth_newHeads sub method - ETHNewHeads SubMethod - ETHLogs SubMethod - TraceCall RPCMethod - TraceTransaction RPCMethod - DebugAccountAt RPCMethod - ETHGetCode RPCMethod - ETHEstimateGas RPCMethod - ETHGasPrice RPCMethod + ETHNewHeads SubMethod + ETHLogs SubMethod + TraceCall RPCMethod + TraceTransaction RPCMethod + DebugAccountAt RPCMethod + ETHGetCode RPCMethod + ETHEstimateGas RPCMethod + ETHGasPrice RPCMethod + ETHGetTransactionByHash RPCMethod + ETHGetTransactionReceipt RPCMethod + BorGetRootHash RPCMethod + ETHCall RPCMethod }{ - ETHGetTransactionCount: "eth_getTransactionCount", - ETHGetBalance: "eth_getBalance", - ETHSendRawTransaction: "eth_sendRawTransaction", - ETHGetBlockByNumber: "eth_getBlockByNumber", - ETHGetBlock: "eth_getBlock", - ETHGetLogs: "eth_getLogs", - ETHBlockNumber: "eth_blockNumber", - AdminNodeInfo: "admin_nodeInfo", - TxpoolContent: "txpool_content", - OTSGetBlockDetails: "ots_getBlockDetails", - ETHNewHeads: "eth_newHeads", - ETHLogs: "eth_logs", - TraceCall: "trace_call", - TraceTransaction: "trace_transaction", - DebugAccountAt: "debug_accountAt", - ETHGetCode: "eth_getCode", - ETHEstimateGas: "eth_estimateGas", - ETHGasPrice: "eth_gasPrice", + ETHGetTransactionCount: "eth_getTransactionCount", + ETHGetBalance: "eth_getBalance", + ETHSendRawTransaction: "eth_sendRawTransaction", + ETHGetBlockByNumber: "eth_getBlockByNumber", + ETHGetBlock: "eth_getBlock", + ETHGetLogs: "eth_getLogs", + ETHBlockNumber: "eth_blockNumber", + AdminNodeInfo: "admin_nodeInfo", + TxpoolContent: "txpool_content", + OTSGetBlockDetails: "ots_getBlockDetails", + ETHNewHeads: "eth_newHeads", + ETHLogs: "eth_logs", + TraceCall: "trace_call", + TraceTransaction: "trace_transaction", + DebugAccountAt: "debug_accountAt", + ETHGetCode: "eth_getCode", + ETHEstimateGas: "eth_estimateGas", + ETHGasPrice: "eth_gasPrice", + ETHGetTransactionByHash: "eth_getTransactionByHash", + ETHGetTransactionReceipt: "eth_getTransactionReceipt", + BorGetRootHash: "bor_getRootHash", + ETHCall: "eth_call", } -func (req *requestGenerator) call(method RPCMethod, body string, response interface{}) callResult { +func (req *requestGenerator) rpcCallJSON(method RPCMethod, body string, response interface{}) callResult { + ctx := context.Background() + req.reqID++ start := time.Now() targetUrl := "http://" + req.target - err := post(req.client, targetUrl, string(method), body, response, req.logger) - req.reqID++ + + err := retryConnects(ctx, func(ctx context.Context) error { + return post(ctx, req.client, targetUrl, string(method), body, response, req.logger) + }) return callResult{ RequestBody: body, @@ -153,6 +173,57 @@ func (req *requestGenerator) call(method RPCMethod, body string, response interf } } +func (req *requestGenerator) rpcCall(ctx context.Context, result interface{}, method RPCMethod, args ...interface{}) error { + client, err := req.rpcClient(ctx) + if err != nil { + return err + } + + return retryConnects(ctx, func(ctx context.Context) error { + return client.CallContext(ctx, result, string(method), args...) + }) +} + +const connectionTimeout = time.Second * 5 + +func isConnectionError(err error) bool { + var opErr *net.OpError + if errors.As(err, &opErr) { + return opErr.Op == "dial" + } + return false +} + +func retryConnects(ctx context.Context, op func(context.Context) error) error { + ctx, cancel := context.WithTimeout(ctx, connectionTimeout) + defer cancel() + return retry(ctx, op, isConnectionError, time.Millisecond*200, nil) +} + +func retry(ctx context.Context, op func(context.Context) error, isRecoverableError func(error) bool, delay time.Duration, lastErr error) error { + err := op(ctx) + if err == nil { + return nil + } + if errors.Is(err, context.DeadlineExceeded) && lastErr != nil { + return lastErr + } + if !isRecoverableError(err) { + return err + } + + delayTimer := time.NewTimer(delay) + select { + case <-delayTimer.C: + return retry(ctx, op, isRecoverableError, delay, err) + case <-ctx.Done(): + if errors.Is(ctx.Err(), context.DeadlineExceeded) { + return err + } + return ctx.Err() + } +} + type PingResult callResult func (req *requestGenerator) PingErigonRpc() PingResult { @@ -207,20 +278,40 @@ func NewRequestGenerator(target string, logger log.Logger) RequestGenerator { client: &http.Client{ Timeout: time.Second * 10, }, - reqID: 1, logger: logger, target: target, } } -func post(client *http.Client, url, method, request string, response interface{}, logger log.Logger) error { +func (req *requestGenerator) rpcClient(ctx context.Context) (*rpc.Client, error) { + if req.requestClient == nil { + var err error + req.requestClient, err = rpc.DialContext(ctx, "http://"+req.target, req.logger) + if err != nil { + return nil, err + } + } + + return req.requestClient, nil +} + +func post(ctx context.Context, client *http.Client, url, method, request string, response interface{}, logger log.Logger) error { start := time.Now() - r, err := client.Post(url, "application/json", strings.NewReader(request)) // nolint:bodyclose + + req, err := http.NewRequest("POST", url, strings.NewReader(request)) + if err != nil { + return err + } + req.Header.Set("Content-Type", "application/json") + req = req.WithContext(ctx) + + r, err := client.Do(req) // nolint:bodyclose if err != nil { return fmt.Errorf("client failed to make post request: %w", err) } - defer func(Body io.ReadCloser) { - closeErr := Body.Close() + + defer func(body io.ReadCloser) { + closeErr := body.Close() if closeErr != nil { logger.Warn("body close", "err", closeErr) } @@ -251,11 +342,12 @@ func post(client *http.Client, url, method, request string, response interface{} // subscribe connects to a websocket client and returns the subscription handler and a channel buffer func (req *requestGenerator) Subscribe(ctx context.Context, method SubMethod, subChan interface{}, args ...interface{}) (ethereum.Subscription, error) { - var err error - if req.subscriptionClient == nil { - req.subscriptionClient, err = rpc.DialWebsocket(ctx, "ws://"+req.target, "", req.logger) - + err := retryConnects(ctx, func(ctx context.Context) error { + var err error + req.subscriptionClient, err = rpc.DialWebsocket(ctx, "ws://"+req.target, "", req.logger) + return err + }) if err != nil { return nil, fmt.Errorf("failed to dial websocket: %v", err) } diff --git a/cmd/devnet/requests/request_generator_test.go b/cmd/devnet/requests/request_generator_test.go index a937b85ffb1..d48b328057b 100644 --- a/cmd/devnet/requests/request_generator_test.go +++ b/cmd/devnet/requests/request_generator_test.go @@ -1,11 +1,8 @@ package requests import ( - "math/big" "testing" - ethereum "github.com/ledgerwatch/erigon" - libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/stretchr/testify/require" ) @@ -16,197 +13,6 @@ func MockRequestGenerator(reqId int) *requestGenerator { } } -func TestRequestGenerator_GetAdminNodeInfo(t *testing.T) { - testCases := []struct { - reqId int - expected string - }{ - {1, `{"jsonrpc":"2.0","method":"admin_nodeInfo","id":1}`}, - {2, `{"jsonrpc":"2.0","method":"admin_nodeInfo","id":2}`}, - {3, `{"jsonrpc":"2.0","method":"admin_nodeInfo","id":3}`}, - } - - for _, testCase := range testCases { - reqGen := MockRequestGenerator(testCase.reqId) - _, got := reqGen.adminNodeInfo() - require.EqualValues(t, testCase.expected, got) - } -} - -func TestRequestGenerator_GetBalance(t *testing.T) { - testCases := []struct { - reqId int - address libcommon.Address - blockNum BlockNumber - expected string - }{ - { - 1, - libcommon.HexToAddress("0x67b1d87101671b127f5f8714789c7192f7ad340e"), - BlockNumbers.Latest, - `{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x67b1d87101671b127f5f8714789c7192f7ad340e","latest"],"id":1}`, - }, - { - 2, - libcommon.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7"), - BlockNumbers.Earliest, - `{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x71562b71999873db5b286df957af199ec94617f7","earliest"],"id":2}`, - }, - { - 3, - libcommon.HexToAddress("0x1b5fd2fed153fa7fac43300273c70c068bfa406a"), - BlockNumbers.Pending, - `{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x1b5fd2fed153fa7fac43300273c70c068bfa406a","pending"],"id":3}`, - }, - } - - for _, testCase := range testCases { - reqGen := MockRequestGenerator(testCase.reqId) - _, got := reqGen.getBalance(testCase.address, testCase.blockNum) - require.EqualValues(t, testCase.expected, got) - } -} - -func TestRequestGenerator_GetBlockByNumber(t *testing.T) { - testCases := []struct { - reqId int - blockNum uint64 - withTxs bool - expected string - }{ - { - 1, - 2, - false, - `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x2",false],"id":1}`, - }, - { - 2, - 16, - false, - `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x10",false],"id":2}`, - }, - { - 3, - 100, - true, - `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x64",true],"id":3}`, - }, - } - - for _, testCase := range testCases { - reqGen := MockRequestGenerator(testCase.reqId) - _, got := reqGen.getBlockByNumber(testCase.blockNum, testCase.withTxs) - require.EqualValues(t, testCase.expected, got) - } -} - -func TestRequestGenerator_GetLogs(t *testing.T) { - testCases := []struct { - reqId int - fromBlock uint64 - toBlock uint64 - address libcommon.Address - expected string - }{ - { - 1, - 1843, - 1848, - libcommon.HexToAddress("0x67b1d87101671b127f5f8714789c7192f7ad340e"), - `{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"fromBlock":"0x733","toBlock":"0x738","address":"0x67b1d87101671b127f5f8714789c7192f7ad340e"}],"id":1}`, - }, - { - 2, - 12, - 12, - libcommon.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7"), - `{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"fromBlock":"0xc","toBlock":"0xc","address":"0x71562b71999873db5b286df957af199ec94617f7"}],"id":2}`, - }, - { - 3, - 0, - 123456789, - libcommon.HexToAddress("0x1b5fd2fed153fa7fac43300273c70c068bfa406a"), - `{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"fromBlock":"0x0","toBlock":"0x75bcd15","address":"0x1b5fd2fed153fa7fac43300273c70c068bfa406a"}],"id":3}`, - }, - } - - for _, testCase := range testCases { - reqGen := MockRequestGenerator(testCase.reqId) - _, got := reqGen.getLogs(ethereum.FilterQuery{ - FromBlock: big.NewInt(int64(testCase.fromBlock)), - ToBlock: big.NewInt(int64(testCase.toBlock)), - Addresses: []libcommon.Address{testCase.address}, - }) - require.EqualValues(t, testCase.expected, got) - } -} - -func TestRequestGenerator_GetTransactionCount(t *testing.T) { - testCases := []struct { - reqId int - address libcommon.Address - blockNum BlockNumber - expected string - }{ - { - 1, - libcommon.HexToAddress("0x67b1d87101671b127f5f8714789c7192f7ad340e"), - BlockNumbers.Latest, - `{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0x67b1d87101671b127f5f8714789c7192f7ad340e","latest"],"id":1}`, - }, - { - 2, - libcommon.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7"), - BlockNumbers.Earliest, - `{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0x71562b71999873db5b286df957af199ec94617f7","earliest"],"id":2}`, - }, - { - 3, - libcommon.HexToAddress("0x1b5fd2fed153fa7fac43300273c70c068bfa406a"), - BlockNumbers.Pending, - `{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0x1b5fd2fed153fa7fac43300273c70c068bfa406a","pending"],"id":3}`, - }, - } - - for _, testCase := range testCases { - reqGen := MockRequestGenerator(testCase.reqId) - _, got := reqGen.getTransactionCount(testCase.address, testCase.blockNum) - require.EqualValues(t, testCase.expected, got) - } -} - -func TestRequestGenerator_SendRawTransaction(t *testing.T) { - testCases := []struct { - reqId int - signedTx []byte - expected string - }{ - { - 1, - libcommon.HexToHash("0x1cd73c7adf5b31f3cf94c67b9e251e699559d91c27664463fb5978b97f8b2d1b").Bytes(), - `{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x1cd73c7adf5b31f3cf94c67b9e251e699559d91c27664463fb5978b97f8b2d1b"],"id":1}`, - }, - { - 2, - libcommon.HexToHash("0x1cfe7ce95a1694d8969365cb472ce4a0d3eed812c540fd7708bbe6941e34c4de").Bytes(), - `{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x1cfe7ce95a1694d8969365cb472ce4a0d3eed812c540fd7708bbe6941e34c4de"],"id":2}`, - }, - { - 3, - libcommon.HexToHash("0x6f9e34c00812a80fa87df26208bbe69411e36d6a9f00b35444ef4181f6c483ca").Bytes(), - `{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x6f9e34c00812a80fa87df26208bbe69411e36d6a9f00b35444ef4181f6c483ca"],"id":3}`, - }, - } - - for _, testCase := range testCases { - reqGen := MockRequestGenerator(testCase.reqId) - _, got := reqGen.sendRawTransaction(testCase.signedTx) - require.EqualValues(t, testCase.expected, got) - } -} - func TestRequestGenerator_TxpoolContent(t *testing.T) { testCases := []struct { reqId int diff --git a/cmd/devnet/requests/trace.go b/cmd/devnet/requests/trace.go index 1409e28e7ea..415cfb2ea11 100644 --- a/cmd/devnet/requests/trace.go +++ b/cmd/devnet/requests/trace.go @@ -1,12 +1,15 @@ package requests import ( + "context" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" + "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" ) @@ -63,11 +66,6 @@ type TraceCallStateDiffStorage struct { To libcommon.Hash `json:"to"` } -type TraceTransaction struct { - CommonResponse - Result []TransactionTrace `json:"result"` -} - type TransactionTrace struct { Type string `json:"type"` Action TraceCallAction `json:"action"` @@ -93,7 +91,7 @@ var TraceOpts = struct { StateDiff: "stateDiff", } -func (reqGen *requestGenerator) TraceCall(blockRef string, args ethapi.CallArgs, traceOpts ...TraceOpt) (*TraceCallResult, error) { +func (reqGen *requestGenerator) TraceCall(blockRef rpc.BlockReference, args ethapi.CallArgs, traceOpts ...TraceOpt) (*TraceCallResult, error) { var b TraceCall if args.Data == nil { @@ -117,7 +115,7 @@ func (reqGen *requestGenerator) TraceCall(blockRef string, args ethapi.CallArgs, } method, body := reqGen.traceCall(blockRef, string(argsVal), string(optsVal)) - res := reqGen.call(method, body, &b) + res := reqGen.rpcCallJSON(method, body, &b) if res.Err != nil { return nil, fmt.Errorf("TraceCall rpc failed: %w", res.Err) @@ -130,29 +128,17 @@ func (reqGen *requestGenerator) TraceCall(blockRef string, args ethapi.CallArgs, return &b.Result, nil } -func (req *requestGenerator) traceCall(blockRef string, callArgs string, traceOpts string) (RPCMethod, string) { +func (req *requestGenerator) traceCall(blockRef rpc.BlockReference, callArgs string, traceOpts string) (RPCMethod, string) { const template = `{"jsonrpc":"2.0","method":%q,"params":[%s,%s,"%s"],"id":%d}` - return Methods.TraceCall, fmt.Sprintf(template, Methods.TraceCall, callArgs, traceOpts, blockRef, req.reqID) + return Methods.TraceCall, fmt.Sprintf(template, Methods.TraceCall, callArgs, traceOpts, blockRef.String(), req.reqID) } func (reqGen *requestGenerator) TraceTransaction(hash libcommon.Hash) ([]TransactionTrace, error) { - var b TraceTransaction - - method, body := reqGen.traceTransaction(hash) - res := reqGen.call(method, body, &b) - - if res.Err != nil { - return nil, fmt.Errorf("TraceTransaction rpc failed: %w", res.Err) - } + var result []TransactionTrace - if b.Error != nil { - return nil, fmt.Errorf("TraceTransaction rpc failed: %w", b.Error) + if err := reqGen.rpcCall(context.Background(), &result, Methods.TraceTransaction, hash); err != nil { + return nil, err } - return b.Result, nil -} - -func (req *requestGenerator) traceTransaction(hash libcommon.Hash) (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"params":[%q],"id":%d}` - return Methods.TraceTransaction, fmt.Sprintf(template, Methods.TraceTransaction, hash.Hex(), req.reqID) + return result, nil } diff --git a/cmd/devnet/requests/transaction.go b/cmd/devnet/requests/transaction.go index 789a3f84823..e463265e010 100644 --- a/cmd/devnet/requests/transaction.go +++ b/cmd/devnet/requests/transaction.go @@ -2,16 +2,20 @@ package requests import ( "bytes" + "context" "encoding/json" "fmt" "math/big" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + ethereum "github.com/ledgerwatch/erigon" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" + "github.com/ledgerwatch/erigon/turbo/jsonrpc" ) type ETHEstimateGas struct { @@ -19,11 +23,6 @@ type ETHEstimateGas struct { Number hexutil.Uint64 `json:"result"` } -type ETHGasPrice struct { - CommonResponse - Price hexutil.Big `json:"result"` -} - func (reqGen *requestGenerator) EstimateGas(args ethereum.CallMsg, blockRef BlockNumber) (uint64, error) { var b ETHEstimateGas @@ -81,7 +80,7 @@ func (reqGen *requestGenerator) EstimateGas(args ethereum.CallMsg, blockRef Bloc } method, body := reqGen.estimateGas(string(argsVal), blockRef) - res := reqGen.call(method, body, &b) + res := reqGen.rpcCallJSON(method, body, &b) if res.Err != nil { return 0, fmt.Errorf("EstimateGas rpc failed: %w", res.Err) @@ -101,41 +100,40 @@ func (req *requestGenerator) estimateGas(callArgs string, blockRef BlockNumber) } func (reqGen *requestGenerator) GasPrice() (*big.Int, error) { - var b ETHGasPrice + var result hexutil.Big - method, body := reqGen.gasPrice() - if res := reqGen.call(method, body, &b); res.Err != nil { - return nil, fmt.Errorf("failed to get gas price: %w", res.Err) + if err := reqGen.rpcCall(context.Background(), &result, Methods.ETHGasPrice); err != nil { + return nil, err } - return b.Price.ToInt(), nil + return result.ToInt(), nil } -func (req *requestGenerator) gasPrice() (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"id":%d}` - return Methods.ETHGasPrice, fmt.Sprintf(template, Methods.ETHGasPrice, req.reqID) +func (reqGen *requestGenerator) Call(args ethapi.CallArgs, blockRef rpc.BlockReference, overrides *ethapi.StateOverrides) ([]byte, error) { + var result hexutility.Bytes + + if err := reqGen.rpcCall(context.Background(), &result, Methods.ETHCall, args, blockRef, overrides); err != nil { + return nil, err + } + + return result, nil } func (reqGen *requestGenerator) SendTransaction(signedTx types.Transaction) (libcommon.Hash, error) { - var b EthSendRawTransaction + var result libcommon.Hash var buf bytes.Buffer if err := signedTx.MarshalBinary(&buf); err != nil { return libcommon.Hash{}, fmt.Errorf("failed to marshal binary: %v", err) } - method, body := reqGen.sendRawTransaction(buf.Bytes()) - if res := reqGen.call(method, body, &b); res.Err != nil { - return libcommon.Hash{}, fmt.Errorf("could not make to request to eth_sendRawTransaction: %v", res.Err) - } - - if b.Error != nil { - return libcommon.Hash{}, fmt.Errorf("SendTransaction rpc failed: %w", b.Error) + if err := reqGen.rpcCall(context.Background(), &result, Methods.ETHSendRawTransaction, hexutility.Bytes(buf.Bytes())); err != nil { + return libcommon.Hash{}, err } zeroHash := true - for _, hb := range b.TxnHash { + for _, hb := range result { if hb != 0 { zeroHash = false break @@ -143,13 +141,28 @@ func (reqGen *requestGenerator) SendTransaction(signedTx types.Transaction) (lib } if zeroHash { - return libcommon.Hash{}, fmt.Errorf("Request: %d, hash: %s, nonce %d: returned a zero transaction hash", b.RequestId, signedTx.Hash().Hex(), signedTx.GetNonce()) + return libcommon.Hash{}, fmt.Errorf("hash: %s, nonce %d: returned a zero transaction hash", signedTx.Hash().Hex(), signedTx.GetNonce()) } - return b.TxnHash, nil + return result, nil } -func (req *requestGenerator) sendRawTransaction(signedTx []byte) (RPCMethod, string) { - const template = `{"jsonrpc":"2.0","method":%q,"params":["0x%x"],"id":%d}` - return Methods.ETHSendRawTransaction, fmt.Sprintf(template, Methods.ETHSendRawTransaction, signedTx, req.reqID) +func (req *requestGenerator) GetTransactionByHash(hash libcommon.Hash) (*jsonrpc.RPCTransaction, error) { + var result jsonrpc.RPCTransaction + + if err := req.rpcCall(context.Background(), &result, Methods.ETHGetTransactionByHash, hash); err != nil { + return nil, err + } + + return &result, nil +} + +func (req *requestGenerator) GetTransactionReceipt(ctx context.Context, hash libcommon.Hash) (*types.Receipt, error) { + var result types.Receipt + + if err := req.rpcCall(ctx, &result, Methods.ETHGetTransactionReceipt, hash); err != nil { + return nil, err + } + + return &result, nil } diff --git a/cmd/devnet/requests/tx.go b/cmd/devnet/requests/tx.go index 2d32a776221..24e4b3ebb37 100644 --- a/cmd/devnet/requests/tx.go +++ b/cmd/devnet/requests/tx.go @@ -18,14 +18,14 @@ func (reqGen *requestGenerator) TxpoolContent() (int, int, int, error) { ) method, body := reqGen.txpoolContent() - if res := reqGen.call(method, body, &b); res.Err != nil { + if res := reqGen.rpcCallJSON(method, body, &b); res.Err != nil { return len(pending), len(queued), len(baseFee), fmt.Errorf("failed to fetch txpool content: %v", res.Err) } resp, ok := b.Result.(map[string]interface{}) if !ok { - return 0, 0, 0, fmt.Errorf("Unexpected result type: %T", b.Result) + return 0, 0, 0, fmt.Errorf("unexpected result type: %T", b.Result) } pendingLen := 0 diff --git a/cmd/devnet/services/accounts/faucet.go b/cmd/devnet/services/accounts/faucet.go index 65d4d4870fa..5a0b88b6dd4 100644 --- a/cmd/devnet/services/accounts/faucet.go +++ b/cmd/devnet/services/accounts/faucet.go @@ -13,7 +13,7 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/blocks" "github.com/ledgerwatch/erigon/cmd/devnet/contracts" "github.com/ledgerwatch/erigon/cmd/devnet/devnet" - "github.com/ledgerwatch/erigon/cmd/devnet/requests" + "github.com/ledgerwatch/erigon/rpc" ) type Faucet struct { @@ -64,7 +64,7 @@ func (d *deployer) deploy(ctx context.Context, node devnet.Node) { return } - logger.Info("Faucet deployed", "chain", d.faucet.chainName, "block", block.BlockNumber, "addr", address) + logger.Info("Faucet deployed", "chain", d.faucet.chainName, "block", block.Number, "addr", address) d.faucet.contractAddress = address d.faucet.contract = contract @@ -96,7 +96,7 @@ func (d *deployer) deploy(ctx context.Context, node devnet.Node) { return } - logger.Info("Faucet funded", "chain", d.faucet.chainName, "block", block.BlockNumber, "addr", address, "received", received) + logger.Info("Faucet funded", "chain", d.faucet.chainName, "block", block.Number, "addr", address, "received", received) d.faucet.Lock() defer d.faucet.Unlock() @@ -139,7 +139,12 @@ func (f *Faucet) Balance(ctx context.Context) (*big.Int, error) { } node := devnet.SelectBlockProducer(devnet.WithCurrentNetwork(ctx, f.chainName)) - return node.GetBalance(f.contractAddress, requests.BlockNumbers.Latest) + + if node == nil { + return nil, fmt.Errorf("%s has no block producers", f.chainName) + } + + return node.GetBalance(f.contractAddress, rpc.LatestBlock) } func (f *Faucet) Send(ctx context.Context, destination *accounts.Account, eth float64) (*big.Int, libcommon.Hash, error) { @@ -157,7 +162,7 @@ func (f *Faucet) Send(ctx context.Context, destination *accounts.Account, eth fl node := devnet.SelectNode(ctx) - count, err := node.GetTransactionCount(f.source.Address, requests.BlockNumbers.Pending) + count, err := node.GetTransactionCount(f.source.Address, rpc.PendingBlock) if err != nil { return nil, libcommon.Hash{}, err @@ -184,7 +189,7 @@ func (f *Faucet) Receive(ctx context.Context, source *accounts.Account, eth floa return nil, libcommon.Hash{}, err } - count, err := node.GetTransactionCount(f.source.Address, requests.BlockNumbers.Pending) + count, err := node.GetTransactionCount(f.source.Address, rpc.PendingBlock) if err != nil { return nil, libcommon.Hash{}, err @@ -209,7 +214,7 @@ func (f *Faucet) NodeCreated(ctx context.Context, node devnet.Node) { func (f *Faucet) NodeStarted(ctx context.Context, node devnet.Node) { logger := devnet.Logger(ctx) - if strings.HasPrefix(node.Name(), f.chainName) && node.IsBlockProducer() { + if strings.HasPrefix(node.GetName(), f.chainName) && node.IsBlockProducer() { f.Lock() defer f.Unlock() diff --git a/cmd/devnet/services/bor/heimdall.go b/cmd/devnet/services/bor/heimdall.go deleted file mode 100644 index fc4e5fdcb7b..00000000000 --- a/cmd/devnet/services/bor/heimdall.go +++ /dev/null @@ -1,302 +0,0 @@ -package bor - -import ( - "context" - "fmt" - "strings" - "sync" - - ethereum "github.com/ledgerwatch/erigon" - "github.com/ledgerwatch/erigon-lib/chain" - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/accounts/abi/bind" - "github.com/ledgerwatch/erigon/cmd/devnet/accounts" - "github.com/ledgerwatch/erigon/cmd/devnet/blocks" - "github.com/ledgerwatch/erigon/cmd/devnet/contracts" - "github.com/ledgerwatch/erigon/cmd/devnet/devnet" - "github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint" - "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" - "github.com/ledgerwatch/erigon/consensus/bor/heimdallgrpc" - "github.com/ledgerwatch/erigon/consensus/bor/valset" - "github.com/ledgerwatch/log/v3" -) - -type BridgeEvent string - -var BridgeEvents = struct { - StakingEvent BridgeEvent - TopupEvent BridgeEvent - ClerkEvent BridgeEvent - SlashingEvent BridgeEvent -}{ - StakingEvent: "staking", - TopupEvent: "topup", - ClerkEvent: "clerk", - SlashingEvent: "slashing", -} - -type syncRecordKey struct { - hash libcommon.Hash - index uint64 -} - -type Heimdall struct { - sync.Mutex - currentSpan *span.HeimdallSpan - chainConfig *chain.Config - validatorSet *valset.ValidatorSet - spans map[uint64]*span.HeimdallSpan - logger log.Logger - cancelFunc context.CancelFunc - syncChan chan *contracts.TestStateSenderStateSynced - syncContractAddress libcommon.Address - syncContractBinding *contracts.TestStateSender - syncSubscription ethereum.Subscription - pendingSyncRecords map[syncRecordKey]*EventRecordWithBlock -} - -func NewHeimdall(chainConfig *chain.Config, logger log.Logger) *Heimdall { - return &Heimdall{ - chainConfig: chainConfig, - spans: map[uint64]*span.HeimdallSpan{}, - pendingSyncRecords: map[syncRecordKey]*EventRecordWithBlock{}, - logger: logger} -} - -func (h *Heimdall) Span(ctx context.Context, spanID uint64) (*span.HeimdallSpan, error) { - h.Lock() - defer h.Unlock() - - if span, ok := h.spans[spanID]; ok { - h.currentSpan = span - return span, nil - } - - var nextSpan = span.Span{ - ID: spanID, - } - - if h.currentSpan == nil || spanID == 0 { - nextSpan.StartBlock = 1 //256 - } else { - if spanID != h.currentSpan.ID+1 { - return nil, fmt.Errorf("Can't initialize span: non consecutive span") - } - - nextSpan.StartBlock = h.currentSpan.EndBlock + 1 - } - - nextSpan.EndBlock = nextSpan.StartBlock + (100 * h.chainConfig.Bor.CalculateSprint(nextSpan.StartBlock)) - 1 - - // TODO we should use a subset here - see: https://wiki.polygon.technology/docs/pos/bor/ - - selectedProducers := make([]valset.Validator, len(h.validatorSet.Validators)) - - for i, v := range h.validatorSet.Validators { - selectedProducers[i] = *v - } - - h.currentSpan = &span.HeimdallSpan{ - Span: nextSpan, - ValidatorSet: *h.validatorSet, - SelectedProducers: selectedProducers, - ChainID: h.chainConfig.ChainID.String(), - } - - h.spans[h.currentSpan.ID] = h.currentSpan - - return h.currentSpan, nil -} - -func (h *Heimdall) currentSprintLength() int { - if h.currentSpan != nil { - return int(h.chainConfig.Bor.CalculateSprint(h.currentSpan.StartBlock)) - } - - return int(h.chainConfig.Bor.CalculateSprint(256)) -} - -func (h *Heimdall) getSpanOverrideHeight() uint64 { - return 0 - //MainChain: 8664000 - //MumbaiChain: 10205000 -} - -func (h *Heimdall) FetchCheckpoint(ctx context.Context, number int64) (*checkpoint.Checkpoint, error) { - return nil, fmt.Errorf("TODO") -} - -func (h *Heimdall) FetchCheckpointCount(ctx context.Context) (int64, error) { - return 0, fmt.Errorf("TODO") -} - -func (h *Heimdall) Close() { -} - -func (h *Heimdall) StateSenderAddress() libcommon.Address { - return h.syncContractAddress -} - -func (f *Heimdall) StateSenderContract() *contracts.TestStateSender { - return f.syncContractBinding -} - -func (h *Heimdall) NodeCreated(ctx context.Context, node devnet.Node) { - h.Lock() - defer h.Unlock() - - if strings.HasPrefix(node.Name(), "bor") && node.IsBlockProducer() && node.Account() != nil { - // TODO configurable voting power - h.addValidator(node.Account().Address, 1000, 0) - } -} - -func (h *Heimdall) NodeStarted(ctx context.Context, node devnet.Node) { - if !strings.HasPrefix(node.Name(), "bor") && node.IsBlockProducer() { - h.Lock() - defer h.Unlock() - - if h.syncChan != nil { - return - } - - h.syncChan = make(chan *contracts.TestStateSenderStateSynced, 100) - - go func() { - transactOpts, err := bind.NewKeyedTransactorWithChainID(accounts.SigKey(node.Account().Address), node.ChainID()) - - if err != nil { - h.Lock() - defer h.Unlock() - - h.syncChan = nil - h.logger.Error("Failed to deploy state sender", "err", err) - return - } - - deployCtx := devnet.WithCurrentNode(ctx, node) - waiter, cancel := blocks.BlockWaiter(deployCtx, contracts.DeploymentChecker) - defer cancel() - - // deploy the contract and get the contract handler - address, transaction, contract, err := contracts.DeployWithOps(deployCtx, transactOpts, contracts.DeployTestStateSender) - - if err != nil { - h.Lock() - defer h.Unlock() - - h.syncChan = nil - h.logger.Error("Failed to deploy state sender", "err", err) - return - } - - h.syncContractAddress = address - h.syncContractBinding = contract - - block, err := waiter.Await(transaction.Hash()) - - if err != nil { - h.Lock() - defer h.Unlock() - - h.syncChan = nil - h.logger.Error("Failed to deploy state sender", "err", err) - return - } - - h.logger.Info("StateSender deployed", "chain", h.chainConfig.ChainName, "block", block.BlockNumber, "addr", address) - - h.syncSubscription, err = contract.WatchStateSynced(&bind.WatchOpts{}, h.syncChan, nil, nil) - - if err != nil { - h.Lock() - defer h.Unlock() - - h.syncChan = nil - h.logger.Error("Failed to subscribe to sync events", "err", err) - return - } - - for stateSyncedEvent := range h.syncChan { - if err := h.handleStateSynced(stateSyncedEvent); err != nil { - h.logger.Error("L1 sync event processing failed", "event", stateSyncedEvent.Raw.Index, "err", err) - } - } - - h.logger.Info("Sync event channel closed") - }() - } -} - -func (h *Heimdall) addValidator(validatorAddress libcommon.Address, votingPower int64, proposerPriority int64) { - - if h.validatorSet == nil { - h.validatorSet = valset.NewValidatorSet([]*valset.Validator{ - { - ID: 1, - Address: validatorAddress, - VotingPower: votingPower, - ProposerPriority: proposerPriority, - }, - }, h.logger) - } else { - h.validatorSet.UpdateWithChangeSet([]*valset.Validator{ - { - ID: uint64(len(h.validatorSet.Validators) + 1), - Address: validatorAddress, - VotingPower: votingPower, - ProposerPriority: proposerPriority, - }, - }, h.logger) - } -} - -func (h *Heimdall) Start(ctx context.Context) error { - h.Lock() - if h.cancelFunc != nil { - h.Unlock() - return nil - } - ctx, h.cancelFunc = context.WithCancel(ctx) - h.Unlock() - - if h.syncSubscription != nil { - h.syncSubscription.Unsubscribe() - h.syncSubscription = nil - } - - if h.syncChan != nil { - close(h.syncChan) - h.syncChan = nil - } - - return heimdallgrpc.StartHeimdallServer(ctx, h, HeimdallGRpc(ctx), h.logger) -} - -func HeimdallGRpc(ctx context.Context) string { - addr := "localhost:8540" - - if cli := devnet.CliContext(ctx); cli != nil { - if grpcAddr := cli.String("bor.heimdallgRPC"); len(grpcAddr) > 0 { - addr = grpcAddr - } - } - - return addr -} - -func (h *Heimdall) Stop() { - var cancel context.CancelFunc - - h.Lock() - if h.cancelFunc != nil { - cancel = h.cancelFunc - h.cancelFunc = nil - } - - h.Unlock() - - if cancel != nil { - cancel() - } -} diff --git a/cmd/devnet/services/context.go b/cmd/devnet/services/context.go index 6dba14cd964..625cdb6ce38 100644 --- a/cmd/devnet/services/context.go +++ b/cmd/devnet/services/context.go @@ -5,7 +5,7 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/devnet" "github.com/ledgerwatch/erigon/cmd/devnet/services/accounts" - "github.com/ledgerwatch/erigon/cmd/devnet/services/bor" + "github.com/ledgerwatch/erigon/cmd/devnet/services/polygon" ) type ctxKey int @@ -26,10 +26,10 @@ func Faucet(ctx context.Context) *accounts.Faucet { return nil } -func Heimdall(ctx context.Context) *bor.Heimdall { +func Heimdall(ctx context.Context) *polygon.Heimdall { if network := devnet.CurrentNetwork(ctx); network != nil { for _, service := range network.Services { - if heimdall, ok := service.(*bor.Heimdall); ok { + if heimdall, ok := service.(*polygon.Heimdall); ok { return heimdall } } @@ -37,3 +37,15 @@ func Heimdall(ctx context.Context) *bor.Heimdall { return nil } + +func ProofGenerator(ctx context.Context) *polygon.ProofGenerator { + if network := devnet.CurrentNetwork(ctx); network != nil { + for _, service := range network.Services { + if proofGenerator, ok := service.(*polygon.ProofGenerator); ok { + return proofGenerator + } + } + } + + return nil +} diff --git a/cmd/devnet/services/polygon/checkpoint.go b/cmd/devnet/services/polygon/checkpoint.go new file mode 100644 index 00000000000..5a39652cdf3 --- /dev/null +++ b/cmd/devnet/services/polygon/checkpoint.go @@ -0,0 +1,596 @@ +package polygon + +import ( + "context" + "encoding/hex" + "errors" + "fmt" + "math/big" + "strconv" + "strings" + "time" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon/accounts/abi/bind" + "github.com/ledgerwatch/erigon/cmd/devnet/accounts" + "github.com/ledgerwatch/erigon/cmd/devnet/blocks" + "github.com/ledgerwatch/erigon/cmd/devnet/contracts" + "github.com/ledgerwatch/erigon/cmd/devnet/devnet" + "github.com/ledgerwatch/erigon/cmd/devnet/requests" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/crypto" +) + +type CheckpointBlock struct { + Proposer libcommon.Address `json:"proposer"` + StartBlock uint64 `json:"start_block"` + EndBlock uint64 `json:"end_block"` + RootHash libcommon.Hash `json:"root_hash"` + AccountRootHash libcommon.Hash `json:"account_root_hash"` + BorChainID string `json:"bor_chain_id"` +} + +func (c CheckpointBlock) GetSigners() []byte { + return c.Proposer[:] +} + +func (c CheckpointBlock) GetSignBytes() ([]byte, error) { + /*b, err := ModuleCdc.MarshalJSON(msg) + + if err != nil { + nil, err + } + + return sdk.SortJSON(b)*/ + return nil, fmt.Errorf("TODO") +} + +type CheckpointAck struct { + From libcommon.Address `json:"from"` + Number uint64 `json:"number"` + Proposer libcommon.Address `json:"proposer"` + StartBlock uint64 `json:"start_block"` + EndBlock uint64 `json:"end_block"` + RootHash libcommon.Hash `json:"root_hash"` + TxHash libcommon.Hash `json:"tx_hash"` + LogIndex uint64 `json:"log_index"` +} + +var zeroHash libcommon.Hash +var zeroAddress libcommon.Address + +func (c CheckpointBlock) ValidateBasic() error { + + if c.RootHash == zeroHash { + return fmt.Errorf("Invalid rootHash %v", c.RootHash.String()) + } + + if c.Proposer == zeroAddress { + return fmt.Errorf("Invalid proposer %v", c.Proposer.String()) + } + + if c.StartBlock >= c.EndBlock || c.EndBlock == 0 { + return fmt.Errorf("Invalid startBlock %v or/and endBlock %v", c.StartBlock, c.EndBlock) + } + + return nil +} + +func (c CheckpointBlock) GetSideSignBytes() []byte { + borChainID, _ := strconv.ParseUint(c.BorChainID, 10, 64) + + return appendBytes32( + c.Proposer.Bytes(), + (&big.Int{}).SetUint64(c.StartBlock).Bytes(), + (&big.Int{}).SetUint64(c.EndBlock).Bytes(), + c.RootHash.Bytes(), + c.AccountRootHash.Bytes(), + (&big.Int{}).SetUint64(borChainID).Bytes(), + ) +} + +func appendBytes32(data ...[]byte) []byte { + var result []byte + + for _, v := range data { + l := len(v) + + var padded [32]byte + + if l > 0 && l <= 32 { + copy(padded[32-l:], v) + } + + result = append(result, padded[:]...) + } + + return result +} + +func (h *Heimdall) startChildHeaderSubscription(ctx context.Context) { + + node := devnet.SelectBlockProducer(ctx) + + var err error + + childHeaderChan := make(chan *types.Header) + h.childHeaderSub, err = node.Subscribe(ctx, requests.Methods.ETHNewHeads, childHeaderChan) + + if err != nil { + h.unsubscribe() + h.logger.Error("Failed to subscribe to child chain headers", "err", err) + } + + for childHeader := range childHeaderChan { + if err := h.handleChildHeader(ctx, childHeader); err != nil { + if errors.Is(err, notEnoughChildChainTxConfirmationsError) { + h.logger.Info("L2 header processing skipped", "header", childHeader.Number, "err", err) + } else { + h.logger.Error("L2 header processing failed", "header", childHeader.Number, "err", err) + } + } + } +} + +func (h *Heimdall) startRootHeaderBlockSubscription() { + var err error + + rootHeaderBlockChan := make(chan *contracts.TestRootChainNewHeaderBlock) + h.rootHeaderBlockSub, err = h.rootChainBinding.WatchNewHeaderBlock(&bind.WatchOpts{}, rootHeaderBlockChan, nil, nil, nil) + + if err != nil { + h.unsubscribe() + h.logger.Error("Failed to subscribe to root chain header blocks", "err", err) + } + + for rootHeaderBlock := range rootHeaderBlockChan { + if err := h.handleRootHeaderBlock(rootHeaderBlock); err != nil { + h.logger.Error("L1 header block processing failed", "block", rootHeaderBlock.HeaderBlockId, "err", err) + } + } +} + +var notEnoughChildChainTxConfirmationsError = errors.New("the chain doesn't have enough blocks for ChildChainTxConfirmations") + +func (h *Heimdall) handleChildHeader(ctx context.Context, header *types.Header) error { + + h.logger.Debug("no of checkpoint confirmations required", "childChainTxConfirmations", h.checkpointConfig.ChildChainTxConfirmations) + + latestConfirmedChildBlock := header.Number.Int64() - int64(h.checkpointConfig.ChildChainTxConfirmations) + + if latestConfirmedChildBlock <= 0 { + return notEnoughChildChainTxConfirmationsError + } + + timeStamp := uint64(time.Now().Unix()) + checkpointBufferTime := uint64(h.checkpointConfig.CheckpointBufferTime.Seconds()) + + if h.pendingCheckpoint == nil { + expectedCheckpointState, err := h.nextExpectedCheckpoint(ctx, uint64(latestConfirmedChildBlock)) + + if err != nil { + h.logger.Error("Error while calculate next expected checkpoint", "error", err) + return err + } + + h.pendingCheckpoint = &checkpoint.Checkpoint{ + Timestamp: timeStamp, + StartBlock: big.NewInt(int64(expectedCheckpointState.newStart)), + EndBlock: big.NewInt(int64(expectedCheckpointState.newEnd)), + } + } + + if header.Number.Cmp(h.pendingCheckpoint.EndBlock) < 0 { + return nil + } + + h.pendingCheckpoint.EndBlock = header.Number + + if !(h.pendingCheckpoint.Timestamp == 0 || + ((timeStamp > h.pendingCheckpoint.Timestamp) && timeStamp-h.pendingCheckpoint.Timestamp >= checkpointBufferTime)) { + h.logger.Debug("Pendiing checkpoint awaiting buffer expiry", + "start", h.pendingCheckpoint.StartBlock, + "end", h.pendingCheckpoint.EndBlock, + "expiry", time.Unix(int64(h.pendingCheckpoint.Timestamp+checkpointBufferTime), 0)) + return nil + } + + start := h.pendingCheckpoint.StartBlock.Uint64() + end := h.pendingCheckpoint.EndBlock.Uint64() + + shouldSend, err := h.shouldSendCheckpoint(start, end) + + if err != nil { + return err + } + + if shouldSend { + // TODO simulate tendermint chain stats + txHash := libcommon.Hash{} + blockHeight := int64(0) + + if err := h.createAndSendCheckpointToRootchain(ctx, start, end, blockHeight, txHash); err != nil { + h.logger.Error("Error sending checkpoint to rootchain", "error", err) + return err + } + + h.pendingCheckpoint = nil + } + + return nil +} + +type ContractCheckpoint struct { + newStart uint64 + newEnd uint64 + currentHeaderBlock *HeaderBlock +} + +type HeaderBlock struct { + start uint64 + end uint64 + number *big.Int + checkpointTime uint64 +} + +func (h *Heimdall) nextExpectedCheckpoint(ctx context.Context, latestChildBlock uint64) (*ContractCheckpoint, error) { + + // fetch current header block from mainchain contract + currentHeaderBlock, err := h.currentHeaderBlock(h.checkpointConfig.ChildBlockInterval) + + if err != nil { + h.logger.Error("Error while fetching current header block number from rootchain", "error", err) + return nil, err + } + + // current header block + currentHeaderBlockNumber := big.NewInt(0).SetUint64(currentHeaderBlock) + + // get header info + _, currentStart, currentEnd, lastCheckpointTime, _, err := h.getHeaderInfo(currentHeaderBlockNumber.Uint64()) + + if err != nil { + h.logger.Error("Error while fetching current header block object from rootchain", "error", err) + return nil, err + } + + // find next start/end + var start, end uint64 + start = currentEnd + + // add 1 if start > 0 + if start > 0 { + start = start + 1 + } + + // get diff + diff := int(latestChildBlock - start + 1) + // process if diff > 0 (positive) + if diff > 0 { + expectedDiff := diff - diff%int(h.checkpointConfig.AvgCheckpointLength) + if expectedDiff > 0 { + expectedDiff = expectedDiff - 1 + } + // cap with max checkpoint length + if expectedDiff > int(h.checkpointConfig.MaxCheckpointLength-1) { + expectedDiff = int(h.checkpointConfig.MaxCheckpointLength - 1) + } + // get end result + end = uint64(expectedDiff) + start + h.logger.Debug("Calculating checkpoint eligibility", + "latest", latestChildBlock, + "start", start, + "end", end, + ) + } + + // Handle when block producers go down + if end == 0 || end == start || (0 < diff && diff < int(h.checkpointConfig.AvgCheckpointLength)) { + h.logger.Debug("Fetching last header block to calculate time") + + currentTime := time.Now().UTC().Unix() + defaultForcePushInterval := h.checkpointConfig.MaxCheckpointLength * 2 // in seconds (1024 * 2 seconds) + + if currentTime-int64(lastCheckpointTime) > int64(defaultForcePushInterval) { + end = latestChildBlock + h.logger.Info("Force push checkpoint", + "currentTime", currentTime, + "lastCheckpointTime", lastCheckpointTime, + "defaultForcePushInterval", defaultForcePushInterval, + "start", start, + "end", end, + ) + } + } + + return &ContractCheckpoint{ + newStart: start, + newEnd: end, + currentHeaderBlock: &HeaderBlock{ + start: currentStart, + end: currentEnd, + number: currentHeaderBlockNumber, + checkpointTime: lastCheckpointTime, + }}, nil +} + +func (h *Heimdall) currentHeaderBlock(childBlockInterval uint64) (uint64, error) { + currentHeaderBlock, err := h.rootChainBinding.CurrentHeaderBlock(nil) + + if err != nil { + h.logger.Error("Could not fetch current header block from rootChain contract", "error", err) + return 0, err + } + + return currentHeaderBlock.Uint64() / childBlockInterval, nil +} + +func (h *Heimdall) fetchDividendAccountRoot() (libcommon.Hash, error) { + //TODO + return crypto.Keccak256Hash([]byte("dividendaccountroot")), nil +} + +func (h *Heimdall) getHeaderInfo(number uint64) ( + root libcommon.Hash, + start uint64, + end uint64, + createdAt uint64, + proposer libcommon.Address, + err error, +) { + // get header from rootChain + checkpointBigInt := big.NewInt(0).Mul(big.NewInt(0).SetUint64(number), big.NewInt(0).SetUint64(h.checkpointConfig.ChildBlockInterval)) + + headerBlock, err := h.rootChainBinding.HeaderBlocks(nil, checkpointBigInt) + + if err != nil { + return root, start, end, createdAt, proposer, errors.New("unable to fetch checkpoint block") + } + + createdAt = headerBlock.CreatedAt.Uint64() + + if createdAt == 0 { + createdAt = uint64(h.startTime.Unix()) + } + + return headerBlock.Root, + headerBlock.Start.Uint64(), + headerBlock.End.Uint64(), + createdAt, + libcommon.BytesToAddress(headerBlock.Proposer.Bytes()), + nil +} + +func (h *Heimdall) getRootHash(ctx context.Context, start uint64, end uint64) (libcommon.Hash, error) { + noOfBlock := end - start + 1 + + if start > end { + return libcommon.Hash{}, errors.New("start is greater than end") + } + + if noOfBlock > h.checkpointConfig.MaxCheckpointLength { + return libcommon.Hash{}, errors.New("number of headers requested exceeds") + } + + return devnet.SelectBlockProducer(devnet.WithCurrentNetwork(ctx, networkname.BorDevnetChainName)).GetRootHash(ctx, start, end) +} + +func (h *Heimdall) shouldSendCheckpoint(start uint64, end uint64) (bool, error) { + + // current child block from contract + lastChildBlock, err := h.rootChainBinding.GetLastChildBlock(nil) + + if err != nil { + h.logger.Error("Error fetching current child block", "currentChildBlock", lastChildBlock, "error", err) + return false, err + } + + h.logger.Debug("Fetched current child block", "currentChildBlock", lastChildBlock) + + currentChildBlock := lastChildBlock.Uint64() + + shouldSend := false + // validate if checkpoint needs to be pushed to rootchain and submit + h.logger.Info("Validating if checkpoint needs to be pushed", "commitedLastBlock", currentChildBlock, "startBlock", start) + // check if we need to send checkpoint or not + if ((currentChildBlock + 1) == start) || (currentChildBlock == 0 && start == 0) { + h.logger.Info("Checkpoint Valid", "startBlock", start) + + shouldSend = true + } else if currentChildBlock > start { + h.logger.Info("Start block does not match, checkpoint already sent", "commitedLastBlock", currentChildBlock, "startBlock", start) + } else if currentChildBlock > end { + h.logger.Info("Checkpoint already sent", "commitedLastBlock", currentChildBlock, "startBlock", start) + } else { + h.logger.Info("No need to send checkpoint") + } + + return shouldSend, nil +} + +func (h *Heimdall) createAndSendCheckpointToRootchain(ctx context.Context, start uint64, end uint64, height int64, txHash libcommon.Hash) error { + h.logger.Info("Preparing checkpoint to be pushed on chain", "height", height, "txHash", txHash, "start", start, "end", end) + + /* + // proof + tx, err := helper.QueryTxWithProof(cp.cliCtx, txHash) + if err != nil { + h.logger.Error("Error querying checkpoint tx proof", "txHash", txHash) + return err + } + + // fetch side txs sigs + decoder := helper.GetTxDecoder(authTypes.ModuleCdc) + + stdTx, err := decoder(tx.Tx) + if err != nil { + h.logger.Error("Error while decoding checkpoint tx", "txHash", tx.Tx.Hash(), "error", err) + return err + } + + cmsg := stdTx.GetMsgs()[0] + + sideMsg, ok := cmsg.(hmTypes.SideTxMsg) + if !ok { + h.logger.Error("Invalid side-tx msg", "txHash", tx.Tx.Hash()) + return err + } + */ + + shouldSend, err := h.shouldSendCheckpoint(start, end) + + if err != nil { + return err + } + + if shouldSend { + accountRoot, err := h.fetchDividendAccountRoot() + + if err != nil { + return err + } + + h.pendingCheckpoint.RootHash, err = h.getRootHash(ctx, start, end) + + if err != nil { + return err + } + + checkpoint := CheckpointBlock{ + Proposer: h.checkpointConfig.CheckpointAccount.Address, + StartBlock: start, + EndBlock: end, + RootHash: h.pendingCheckpoint.RootHash, + AccountRootHash: accountRoot, + BorChainID: h.chainConfig.ChainID.String(), + } + + // side-tx data + sideTxData := checkpoint.GetSideSignBytes() + + // get sigs + sigs /*, err*/ := [][3]*big.Int{} //helper.FetchSideTxSigs(cp.httpClient, height, tx.Tx.Hash(), sideTxData) + + /* + if err != nil { + h.logger.Error("Error fetching votes for checkpoint tx", "height", height) + return err + }*/ + + if err := h.sendCheckpoint(ctx, sideTxData, sigs); err != nil { + h.logger.Info("Error submitting checkpoint to rootchain", "error", err) + return err + } + } + + return nil +} + +func (h *Heimdall) sendCheckpoint(ctx context.Context, signedData []byte, sigs [][3]*big.Int) error { + + s := make([]string, 0) + for i := 0; i < len(sigs); i++ { + s = append(s, fmt.Sprintf("[%s,%s,%s]", sigs[i][0].String(), sigs[i][1].String(), sigs[i][2].String())) + } + + h.logger.Debug("Sending new checkpoint", + "sigs", strings.Join(s, ","), + "data", hex.EncodeToString(signedData), + ) + + node := devnet.SelectBlockProducer(ctx) + + auth, err := bind.NewKeyedTransactorWithChainID(accounts.SigKey(h.checkpointConfig.CheckpointAccount.Address), node.ChainID()) + + if err != nil { + h.logger.Error("Error while getting auth to submit checkpoint", "err", err) + return err + } + + waiter, cancel := blocks.BlockWaiter(ctx, blocks.CompletionChecker) + defer cancel() + + tx, err := h.rootChainBinding.SubmitCheckpoint(auth, signedData, sigs) + + if err != nil { + h.logger.Error("Error while submitting checkpoint", "err", err) + return err + } + + block, err := waiter.Await(tx.Hash()) + + if err != nil { + h.logger.Error("Error while submitting checkpoint", "err", err) + return err + } + + h.logger.Info("Submitted new checkpoint to rootchain successfully", "txHash", tx.Hash().String(), "block", block.Number) + + return nil +} + +func (h *Heimdall) handleRootHeaderBlock(event *contracts.TestRootChainNewHeaderBlock) error { + h.logger.Info("Received root header") + + checkpointNumber := big.NewInt(0).Div(event.HeaderBlockId, big.NewInt(0).SetUint64(h.checkpointConfig.ChildBlockInterval)) + + h.logger.Info( + "✅ Received checkpoint-ack for heimdall", + "event", "NewHeaderBlock", + "start", event.Start, + "end", event.End, + "reward", event.Reward, + "root", hexutility.Bytes(event.Root[:]), + "proposer", event.Proposer.Hex(), + "checkpointNumber", checkpointNumber, + "txHash", event.Raw.TxHash, + "logIndex", uint64(event.Raw.Index), + ) + + // event checkpoint is older than or equal to latest checkpoint + if h.latestCheckpoint != nil && h.latestCheckpoint.EndBlock >= event.End.Uint64() { + h.logger.Debug("Checkpoint ack is already submitted", "start", event.Start, "end", event.End) + return nil + } + + // create msg checkpoint ack message + ack := CheckpointAck{ + //From libcommon.Address `json:"from"` + Number: checkpointNumber.Uint64(), + Proposer: event.Proposer, + StartBlock: event.Start.Uint64(), + EndBlock: event.End.Uint64(), + RootHash: event.Root, + TxHash: event.Raw.TxHash, + LogIndex: uint64(event.Raw.Index), + } + + if ack.StartBlock != h.pendingCheckpoint.StartBlock.Uint64() { + h.logger.Error("Invalid start block", "startExpected", h.pendingCheckpoint.StartBlock, "startReceived", ack.StartBlock) + return fmt.Errorf("Invalid Checkpoint Ack: Invalid start block") + } + + // Return err if start and end matches but contract root hash doesn't match + if ack.StartBlock == h.pendingCheckpoint.StartBlock.Uint64() && + ack.EndBlock == h.pendingCheckpoint.EndBlock.Uint64() && ack.RootHash != h.pendingCheckpoint.RootHash { + h.logger.Error("Invalid ACK", + "startExpected", h.pendingCheckpoint.StartBlock, + "startReceived", ack.StartBlock, + "endExpected", h.pendingCheckpoint.EndBlock, + "endReceived", ack.StartBlock, + "rootExpected", h.pendingCheckpoint.RootHash.String(), + "rootRecieved", ack.RootHash.String(), + ) + + return fmt.Errorf("Invalid Checkpoint Ack: Invalid root hash") + } + + h.latestCheckpoint = &ack + + h.ackWaiter.Broadcast() + + return nil +} diff --git a/cmd/devnet/services/polygon/heimdall.go b/cmd/devnet/services/polygon/heimdall.go new file mode 100644 index 00000000000..0581a703949 --- /dev/null +++ b/cmd/devnet/services/polygon/heimdall.go @@ -0,0 +1,435 @@ +package polygon + +import ( + "context" + "fmt" + "math/big" + "strings" + "sync" + "time" + + ethereum "github.com/ledgerwatch/erigon" + "github.com/ledgerwatch/erigon-lib/chain" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/accounts/abi/bind" + "github.com/ledgerwatch/erigon/cmd/devnet/accounts" + "github.com/ledgerwatch/erigon/cmd/devnet/blocks" + "github.com/ledgerwatch/erigon/cmd/devnet/contracts" + "github.com/ledgerwatch/erigon/cmd/devnet/devnet" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/milestone" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" + "github.com/ledgerwatch/erigon/consensus/bor/heimdallgrpc" + "github.com/ledgerwatch/erigon/consensus/bor/valset" + "github.com/ledgerwatch/log/v3" +) + +type BridgeEvent string + +var BridgeEvents = struct { + StakingEvent BridgeEvent + TopupEvent BridgeEvent + ClerkEvent BridgeEvent + SlashingEvent BridgeEvent +}{ + StakingEvent: "staking", + TopupEvent: "topup", + ClerkEvent: "clerk", + SlashingEvent: "slashing", +} + +type syncRecordKey struct { + hash libcommon.Hash + index uint64 +} + +const ( + DefaultRootChainTxConfirmations uint64 = 6 + DefaultChildChainTxConfirmations uint64 = 10 + DefaultAvgCheckpointLength uint64 = 256 + DefaultMaxCheckpointLength uint64 = 1024 + DefaultChildBlockInterval uint64 = 10000 + DefaultCheckpointBufferTime time.Duration = 1000 * time.Second +) + +const HeimdallGrpcAddressDefault = "localhost:8540" + +type CheckpointConfig struct { + RootChainTxConfirmations uint64 + ChildChainTxConfirmations uint64 + ChildBlockInterval uint64 + AvgCheckpointLength uint64 + MaxCheckpointLength uint64 + CheckpointBufferTime time.Duration + CheckpointAccount *accounts.Account +} + +type Heimdall struct { + sync.Mutex + chainConfig *chain.Config + grpcAddr string + validatorSet *valset.ValidatorSet + pendingCheckpoint *checkpoint.Checkpoint + latestCheckpoint *CheckpointAck + ackWaiter *sync.Cond + currentSpan *span.HeimdallSpan + spans map[uint64]*span.HeimdallSpan + logger log.Logger + cancelFunc context.CancelFunc + syncSenderAddress libcommon.Address + syncSenderBinding *contracts.TestStateSender + rootChainAddress libcommon.Address + rootChainBinding *contracts.TestRootChain + syncSubscription ethereum.Subscription + rootHeaderBlockSub ethereum.Subscription + childHeaderSub ethereum.Subscription + pendingSyncRecords map[syncRecordKey]*EventRecordWithBlock + checkpointConfig CheckpointConfig + startTime time.Time +} + +func NewHeimdall( + chainConfig *chain.Config, + grpcAddr string, + checkpointConfig *CheckpointConfig, + logger log.Logger, +) *Heimdall { + heimdall := &Heimdall{ + chainConfig: chainConfig, + grpcAddr: grpcAddr, + checkpointConfig: *checkpointConfig, + spans: map[uint64]*span.HeimdallSpan{}, + pendingSyncRecords: map[syncRecordKey]*EventRecordWithBlock{}, + logger: logger} + + heimdall.ackWaiter = sync.NewCond(heimdall) + + if heimdall.checkpointConfig.RootChainTxConfirmations == 0 { + heimdall.checkpointConfig.RootChainTxConfirmations = DefaultRootChainTxConfirmations + } + + if heimdall.checkpointConfig.ChildChainTxConfirmations == 0 { + heimdall.checkpointConfig.ChildChainTxConfirmations = DefaultChildChainTxConfirmations + } + + if heimdall.checkpointConfig.ChildBlockInterval == 0 { + heimdall.checkpointConfig.ChildBlockInterval = DefaultChildBlockInterval + } + + if heimdall.checkpointConfig.AvgCheckpointLength == 0 { + heimdall.checkpointConfig.AvgCheckpointLength = DefaultAvgCheckpointLength + } + + if heimdall.checkpointConfig.MaxCheckpointLength == 0 { + heimdall.checkpointConfig.MaxCheckpointLength = DefaultMaxCheckpointLength + } + + if heimdall.checkpointConfig.CheckpointBufferTime == 0 { + heimdall.checkpointConfig.CheckpointBufferTime = DefaultCheckpointBufferTime + } + + if heimdall.checkpointConfig.CheckpointAccount == nil { + heimdall.checkpointConfig.CheckpointAccount = accounts.NewAccount("checkpoint-owner") + } + + return heimdall +} + +func (h *Heimdall) Span(ctx context.Context, spanID uint64) (*span.HeimdallSpan, error) { + h.Lock() + defer h.Unlock() + + if span, ok := h.spans[spanID]; ok { + h.currentSpan = span + return span, nil + } + + var nextSpan = span.Span{ + ID: spanID, + } + + if h.currentSpan == nil || spanID == 0 { + nextSpan.StartBlock = 1 //256 + } else { + if spanID != h.currentSpan.ID+1 { + return nil, fmt.Errorf("Can't initialize span: non consecutive span") + } + + nextSpan.StartBlock = h.currentSpan.EndBlock + 1 + } + + nextSpan.EndBlock = nextSpan.StartBlock + (100 * h.chainConfig.Bor.CalculateSprint(nextSpan.StartBlock)) - 1 + + // TODO we should use a subset here - see: https://wiki.polygon.technology/docs/pos/bor/ + + selectedProducers := make([]valset.Validator, len(h.validatorSet.Validators)) + + for i, v := range h.validatorSet.Validators { + selectedProducers[i] = *v + } + + h.currentSpan = &span.HeimdallSpan{ + Span: nextSpan, + ValidatorSet: *h.validatorSet, + SelectedProducers: selectedProducers, + ChainID: h.chainConfig.ChainID.String(), + } + + h.spans[h.currentSpan.ID] = h.currentSpan + + return h.currentSpan, nil +} + +func (h *Heimdall) currentSprintLength() int { + if h.currentSpan != nil { + return int(h.chainConfig.Bor.CalculateSprint(h.currentSpan.StartBlock)) + } + + return int(h.chainConfig.Bor.CalculateSprint(256)) +} + +func (h *Heimdall) getSpanOverrideHeight() uint64 { + return 0 + //MainChain: 8664000 + //MumbaiChain: 10205000 +} + +func (h *Heimdall) FetchCheckpoint(ctx context.Context, number int64) (*checkpoint.Checkpoint, error) { + return nil, fmt.Errorf("TODO") +} + +func (h *Heimdall) FetchCheckpointCount(ctx context.Context) (int64, error) { + return 0, fmt.Errorf("TODO") +} + +func (h *Heimdall) FetchMilestone(ctx context.Context) (*milestone.Milestone, error) { + return nil, fmt.Errorf("TODO") +} + +func (h *Heimdall) FetchMilestoneCount(ctx context.Context) (int64, error) { + return 0, fmt.Errorf("TODO") +} + +func (h *Heimdall) FetchNoAckMilestone(ctx context.Context, milestoneID string) error { + return fmt.Errorf("TODO") +} + +func (h *Heimdall) FetchLastNoAckMilestone(ctx context.Context) (string, error) { + return "", fmt.Errorf("TODO") +} + +func (h *Heimdall) FetchMilestoneID(ctx context.Context, milestoneID string) error { + return fmt.Errorf("TODO") +} + +func (h *Heimdall) Close() { + h.unsubscribe() +} + +func (h *Heimdall) unsubscribe() { + h.Lock() + defer h.Unlock() + + if h.syncSubscription != nil { + syncSubscription := h.syncSubscription + h.syncSubscription = nil + syncSubscription.Unsubscribe() + } + + if h.rootHeaderBlockSub != nil { + rootHeaderBlockSub := h.rootHeaderBlockSub + h.rootHeaderBlockSub = nil + rootHeaderBlockSub.Unsubscribe() + } + + if h.childHeaderSub != nil { + childHeaderSub := h.childHeaderSub + h.childHeaderSub = nil + childHeaderSub.Unsubscribe() + } +} + +func (h *Heimdall) StateSenderAddress() libcommon.Address { + return h.syncSenderAddress +} + +func (f *Heimdall) StateSenderContract() *contracts.TestStateSender { + return f.syncSenderBinding +} + +func (h *Heimdall) RootChainAddress() libcommon.Address { + return h.rootChainAddress +} + +func (h *Heimdall) NodeCreated(ctx context.Context, node devnet.Node) { + h.Lock() + defer h.Unlock() + + if strings.HasPrefix(node.GetName(), "bor") && node.IsBlockProducer() && node.Account() != nil { + // TODO configurable voting power + h.addValidator(node.Account().Address, 1000, 0) + } +} + +func (h *Heimdall) NodeStarted(ctx context.Context, node devnet.Node) { + if h.validatorSet == nil { + panic("Heimdall devnet service: unexpected empty validator set! Call addValidator() before starting nodes.") + } + + if !strings.HasPrefix(node.GetName(), "bor") && node.IsBlockProducer() { + h.Lock() + defer h.Unlock() + + if h.syncSenderBinding != nil { + return + } + + h.startTime = time.Now().UTC() + + transactOpts, err := bind.NewKeyedTransactorWithChainID(accounts.SigKey(node.Account().Address), node.ChainID()) + + if err != nil { + h.Unlock() + h.unsubscribe() + h.Lock() + h.logger.Error("Failed to deploy state sender", "err", err) + return + } + + deployCtx := devnet.WithCurrentNode(ctx, node) + waiter, cancel := blocks.BlockWaiter(deployCtx, contracts.DeploymentChecker) + + address, syncTx, syncContract, err := contracts.DeployWithOps(deployCtx, transactOpts, contracts.DeployTestStateSender) + + if err != nil { + h.logger.Error("Failed to deploy state sender", "err", err) + cancel() + return + } + + h.syncSenderAddress = address + h.syncSenderBinding = syncContract + + address, rootChainTx, rootChainContract, err := contracts.DeployWithOps(deployCtx, transactOpts, contracts.DeployTestRootChain) + + if err != nil { + h.syncSenderBinding = nil + h.logger.Error("Failed to deploy root chain", "err", err) + cancel() + return + } + + h.rootChainAddress = address + h.rootChainBinding = rootChainContract + + go func() { + defer cancel() + blocks, err := waiter.AwaitMany(syncTx.Hash(), rootChainTx.Hash()) + + if err != nil { + h.syncSenderBinding = nil + h.logger.Error("Failed to deploy root contracts", "err", err) + return + } + + h.logger.Info("RootChain deployed", "chain", h.chainConfig.ChainName, "block", blocks[syncTx.Hash()].Number, "addr", h.rootChainAddress) + h.logger.Info("StateSender deployed", "chain", h.chainConfig.ChainName, "block", blocks[syncTx.Hash()].Number, "addr", h.syncSenderAddress) + + go h.startStateSyncSubscription() + go h.startChildHeaderSubscription(deployCtx) + go h.startRootHeaderBlockSubscription() + }() + } +} + +func (h *Heimdall) addValidator(validatorAddress libcommon.Address, votingPower int64, proposerPriority int64) { + + if h.validatorSet == nil { + h.validatorSet = valset.NewValidatorSet([]*valset.Validator{ + { + ID: 1, + Address: validatorAddress, + VotingPower: votingPower, + ProposerPriority: proposerPriority, + }, + }, h.logger) + } else { + h.validatorSet.UpdateWithChangeSet([]*valset.Validator{ + { + ID: uint64(len(h.validatorSet.Validators) + 1), + Address: validatorAddress, + VotingPower: votingPower, + ProposerPriority: proposerPriority, + }, + }, h.logger) + } +} + +func (h *Heimdall) Start(ctx context.Context) error { + h.Lock() + if h.cancelFunc != nil { + h.Unlock() + return nil + } + ctx, h.cancelFunc = context.WithCancel(ctx) + h.Unlock() + + // if this is a restart + h.unsubscribe() + + return heimdallgrpc.StartHeimdallServer(ctx, h, h.grpcAddr, h.logger) +} + +func (h *Heimdall) Stop() { + var cancel context.CancelFunc + + h.Lock() + if h.cancelFunc != nil { + cancel = h.cancelFunc + h.cancelFunc = nil + } + + h.Unlock() + + if cancel != nil { + cancel() + } +} + +func (h *Heimdall) AwaitCheckpoint(ctx context.Context, blockNumber *big.Int) error { + h.Lock() + defer h.Unlock() + + if ctx.Done() != nil { + go func() { + defer h.ackWaiter.Broadcast() + <-ctx.Done() + }() + } + + for h.latestCheckpoint == nil || h.latestCheckpoint.EndBlock < blockNumber.Uint64() { + if ctx.Err() != nil { + return ctx.Err() + } + + h.ackWaiter.Wait() + } + + return nil +} + +func (h *Heimdall) isOldTx(txHash libcommon.Hash, logIndex uint64, eventType BridgeEvent, event interface{}) (bool, error) { + + // define the endpoint based on the type of event + var status bool + + switch eventType { + case BridgeEvents.StakingEvent: + case BridgeEvents.TopupEvent: + case BridgeEvents.ClerkEvent: + _, status = h.pendingSyncRecords[syncRecordKey{txHash, logIndex}] + case BridgeEvents.SlashingEvent: + } + + return status, nil +} diff --git a/cmd/devnet/services/polygon/proofgenerator.go b/cmd/devnet/services/polygon/proofgenerator.go new file mode 100644 index 00000000000..5b8d207af91 --- /dev/null +++ b/cmd/devnet/services/polygon/proofgenerator.go @@ -0,0 +1,594 @@ +package polygon + +import ( + "bytes" + "context" + "errors" + "fmt" + "math" + "math/big" + "strings" + "sync" + + "github.com/ledgerwatch/erigon/cl/merkle_tree" + "golang.org/x/sync/errgroup" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon/accounts/abi/bind" + "github.com/ledgerwatch/erigon/cmd/devnet/devnet" + "github.com/ledgerwatch/erigon/cmd/devnet/requests" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/crypto" + "github.com/ledgerwatch/erigon/rlp" + "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/turbo/jsonrpc" + "github.com/ledgerwatch/erigon/turbo/trie" +) + +var ErrTokenIndexOutOfRange = errors.New("Index is grater than the number of tokens in transaction") + +type ProofGenerator struct { + heimdall *Heimdall +} + +func NewProofGenerator() *ProofGenerator { + return &ProofGenerator{} +} + +func (pg *ProofGenerator) NodeCreated(ctx context.Context, node devnet.Node) { + + if pg.heimdall == nil { + if strings.HasPrefix(node.GetName(), "bor") { + if network := devnet.CurrentNetwork(ctx); network != nil { + for _, service := range network.Services { + if heimdall, ok := service.(*Heimdall); ok { + pg.heimdall = heimdall + } + } + } + } + } +} + +func (pg *ProofGenerator) NodeStarted(ctx context.Context, node devnet.Node) { +} + +func (pg *ProofGenerator) Start(ctx context.Context) error { + return nil +} + +func (pg *ProofGenerator) Stop() { +} + +func (pg *ProofGenerator) GenerateExitPayload(ctx context.Context, burnTxHash libcommon.Hash, eventSignature libcommon.Hash, tokenIndex int) ([]byte, error) { + logger := devnet.Logger(ctx) + + if pg.heimdall == nil || pg.heimdall.rootChainBinding == nil { + return nil, fmt.Errorf("ProofGenerator not initialized") + } + + logger.Info("Checking for checkpoint status", "hash", burnTxHash) + + isCheckpointed, err := pg.isCheckPointed(ctx, burnTxHash) + + if err != nil { + return nil, fmt.Errorf("error getting burn transaction: %w", err) + } + + if !isCheckpointed { + return nil, fmt.Errorf("eurn transaction has not been checkpointed yet") + } + + // build payload for exit + result, err := pg.buildPayloadForExit(ctx, burnTxHash, eventSignature, tokenIndex) + + if err != nil { + if errors.Is(err, ErrTokenIndexOutOfRange) { + return nil, fmt.Errorf("block not included: %w", err) + } + + return nil, fmt.Errorf("null receipt received") + } + + if len(result) == 0 { + return nil, fmt.Errorf("null result received") + } + + return result, nil +} + +func (pg *ProofGenerator) getChainBlockInfo(ctx context.Context, burnTxHash libcommon.Hash) (uint64, uint64, error) { + childNode := devnet.SelectBlockProducer(devnet.WithCurrentNetwork(ctx, networkname.BorDevnetChainName)) + + var wg sync.WaitGroup + + var lastChild *big.Int + var burnTransaction *jsonrpc.RPCTransaction + var err [2]error + + // err group + wg.Add(1) + go func() { + defer wg.Done() + lastChild, err[0] = pg.heimdall.rootChainBinding.GetLastChildBlock(&bind.CallOpts{}) + }() + + wg.Add(1) + go func() { + defer wg.Done() + burnTransaction, err[1] = childNode.GetTransactionByHash(burnTxHash) + }() + + wg.Wait() + + for _, err := range err { + if err != nil { + return 0, 0, err + } + } + + return lastChild.Uint64(), burnTransaction.BlockNumber.Uint64(), nil +} + +// lastchild block is greater equal to transacton block number; +func (pg *ProofGenerator) isCheckPointed(ctx context.Context, burnTxHash libcommon.Hash) (bool, error) { + lastChildBlockNum, burnTxBlockNum, err := pg.getChainBlockInfo(ctx, burnTxHash) + + if err != nil { + return false, err + } + + return lastChildBlockNum >= burnTxBlockNum, nil +} + +func (pg *ProofGenerator) buildPayloadForExit(ctx context.Context, burnTxHash libcommon.Hash, logEventSig libcommon.Hash, index int) ([]byte, error) { + + node := devnet.SelectBlockProducer(ctx) + + if node == nil { + return nil, fmt.Errorf("no node available") + } + + if index < 0 { + return nil, fmt.Errorf("index must not negative") + } + + var receipt *types.Receipt + var block *requests.Block + + // step 1 - Get Block number from transaction hash + lastChildBlockNum, txBlockNum, err := pg.getChainBlockInfo(ctx, burnTxHash) + + if err != nil { + return nil, err + } + + if lastChildBlockNum < txBlockNum { + return nil, fmt.Errorf("burn transaction has not been checkpointed as yet") + } + + // step 2- get transaction receipt from txhash and + // block information from block number + + g, gctx := errgroup.WithContext(ctx) + g.SetLimit(2) + + g.Go(func() error { + var err error + receipt, err = node.GetTransactionReceipt(gctx, burnTxHash) + return err + }) + + g.Go(func() error { + var err error + block, err = node.GetBlockByNumber(gctx, rpc.AsBlockNumber(txBlockNum), true) + return err + }) + + if err := g.Wait(); err != nil { + return nil, err + } + + // step 3 - get information about block saved in parent chain + // step 4 - build block proof + var rootBlockNumber uint64 + var start, end uint64 + + rootBlockNumber, start, end, err = pg.getRootBlockInfo(txBlockNum) + + if err != nil { + return nil, err + } + + blockProofs, err := getBlockProofs(ctx, node, txBlockNum, start, end) + + if err != nil { + return nil, err + } + + // step 5- create receipt proof + receiptProof, err := getReceiptProof(ctx, node, receipt, block, nil) + + if err != nil { + return nil, err + } + + // step 6 - encode payload, convert into hex + var logIndex int + + if index > 0 { + logIndices := getAllLogIndices(logEventSig, receipt) + + if index >= len(logIndices) { + return nil, ErrTokenIndexOutOfRange + } + + logIndex = logIndices[index] + } else { + logIndex = getLogIndex(logEventSig, receipt) + } + + if logIndex < 0 { + return nil, fmt.Errorf("log not found in receipt") + } + + parentNodesBytes, err := rlp.EncodeToBytes(receiptProof.parentNodes) + + if err != nil { + return nil, err + } + + return rlp.EncodeToBytes( + []interface{}{ + rootBlockNumber, + hexutility.Encode(bytes.Join(blockProofs, []byte{})), + block.Number.Uint64(), + block.Time, + hexutility.Encode(block.TxHash[:]), + hexutility.Encode(block.ReceiptHash[:]), + hexutility.Encode(getReceiptBytes(receipt)), //rpl encoded + hexutility.Encode(parentNodesBytes), + hexutility.Encode(append([]byte{0}, receiptProof.path...)), + logIndex, + }) +} + +type receiptProof struct { + blockHash libcommon.Hash + parentNodes [][]byte + root []byte + path []byte + value interface{} +} + +func getReceiptProof(ctx context.Context, node requests.RequestGenerator, receipt *types.Receipt, block *requests.Block, receipts []*types.Receipt) (*receiptProof, error) { + stateSyncTxHash := types.ComputeBorTxHash(block.Number.Uint64(), block.Hash) + receiptsTrie := trie.New(trie.EmptyRoot) + + if len(receipts) == 0 { + g, gctx := errgroup.WithContext(ctx) + g.SetLimit(len(block.Transactions)) + + var lock sync.Mutex + + for _, transaction := range block.Transactions { + if transaction.Hash == stateSyncTxHash { + // ignore if tx hash is bor state-sync tx + continue + } + + hash := transaction.Hash + g.Go(func() error { + receipt, err := node.GetTransactionReceipt(gctx, hash) + + if err != nil { + return err + } + + path, _ := rlp.EncodeToBytes(receipt.TransactionIndex) + rawReceipt := getReceiptBytes(receipt) + lock.Lock() + defer lock.Unlock() + receiptsTrie.Update(path, rawReceipt) + + return nil + }) + } + + if err := g.Wait(); err != nil { + return nil, err + } + } else { + for _, receipt := range receipts { + path, _ := rlp.EncodeToBytes(receipt.TransactionIndex) + rawReceipt := getReceiptBytes(receipt) + receiptsTrie.Update(path, rawReceipt) + } + } + + path, _ := rlp.EncodeToBytes(receipt.TransactionIndex) + result, parents, ok := receiptsTrie.FindPath(path) + + if !ok { + return nil, fmt.Errorf("node does not contain the key") + } + + var nodeValue any + + if isTypedReceipt(receipt) { + nodeValue = result + } else { + rlp.DecodeBytes(result, nodeValue) + } + + return &receiptProof{ + blockHash: receipt.BlockHash, + parentNodes: parents, + root: block.ReceiptHash[:], + path: path, + value: nodeValue, + }, nil +} + +func getBlockProofs(ctx context.Context, node requests.RequestGenerator, blockNumber, startBlock, endBlock uint64) ([][]byte, error) { + merkleTreeDepth := int(math.Ceil(math.Log2(float64(endBlock - startBlock + 1)))) + + // We generate the proof root down, whereas we need from leaf up + var reversedProof [][]byte + + offset := startBlock + targetIndex := blockNumber - offset + leftBound := uint64(0) + rightBound := endBlock - offset + + // console.log("Searching for", targetIndex); + for depth := 0; depth < merkleTreeDepth; depth++ { + nLeaves := uint64(2) << (merkleTreeDepth - depth) + + // The pivot leaf is the last leaf which is included in the left subtree + pivotLeaf := leftBound + nLeaves/2 - 1 + + if targetIndex > pivotLeaf { + // Get the root hash to the merkle subtree to the left + newLeftBound := pivotLeaf + 1 + subTreeMerkleRoot, err := node.GetRootHash(ctx, offset+leftBound, offset+pivotLeaf) + + if err != nil { + return nil, err + } + + reversedProof = append(reversedProof, subTreeMerkleRoot[:]) + leftBound = newLeftBound + } else { + // Things are more complex when querying to the right. + // Root hash may come some layers down so we need to build a full tree by padding with zeros + // Some trees may be completely empty + + var newRightBound uint64 + + if rightBound <= pivotLeaf { + newRightBound = rightBound + } else { + newRightBound = pivotLeaf + } + + // Expect the merkle tree to have a height one less than the current layer + expectedHeight := merkleTreeDepth - (depth + 1) + if rightBound <= pivotLeaf { + // Tree is empty so we repeatedly hash zero to correct height + subTreeMerkleRoot := recursiveZeroHash(expectedHeight) + reversedProof = append(reversedProof, subTreeMerkleRoot[:]) + } else { + // Height of tree given by RPC node + subTreeHeight := int(math.Ceil(math.Log2(float64(rightBound - pivotLeaf)))) + + // Find the difference in height between this and the subtree we want + heightDifference := expectedHeight - subTreeHeight + + // For every extra layer we need to fill 2*n leaves filled with the merkle root of a zero-filled Merkle tree + // We need to build a tree which has heightDifference layers + + // The first leaf will hold the root hash as returned by the RPC + remainingNodesHash, err := node.GetRootHash(ctx, offset+pivotLeaf+1, offset+rightBound) + + if err != nil { + return nil, err + } + + // The remaining leaves will hold the merkle root of a zero-filled tree of height subTreeHeight + leafRoots := recursiveZeroHash(subTreeHeight) + + // Build a merkle tree of correct size for the subtree using these merkle roots + var leafCount int + + if heightDifference > 0 { + leafCount = 2 << heightDifference + } else { + leafCount = 1 + } + + leaves := make([]interface{}, leafCount) + + leaves[0] = remainingNodesHash[:] + + for i := 1; i < len(leaves); i++ { + leaves[i] = leafRoots[:] + } + + subTreeMerkleRoot, err := merkle_tree.HashTreeRoot(leaves...) + + if err != nil { + return nil, err + } + + reversedProof = append(reversedProof, subTreeMerkleRoot[:]) + } + + rightBound = newRightBound + } + } + + for i, j := 0, len(reversedProof)-1; i < j; i, j = i+1, j-1 { + reversedProof[i], reversedProof[j] = reversedProof[j], reversedProof[i] + } + + return reversedProof, nil +} + +func recursiveZeroHash(n int) libcommon.Hash { + if n == 0 { + return libcommon.Hash{} + } + + subHash := recursiveZeroHash(n - 1) + bytes, _ := rlp.EncodeToBytes([]libcommon.Hash{subHash, subHash}) + return crypto.Keccak256Hash(bytes) +} + +func getAllLogIndices(logEventSig libcommon.Hash, receipt *types.Receipt) []int { + var logIndices []int + + switch logEventSig.Hex() { + case "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": + case "0xf94915c6d1fd521cee85359239227480c7e8776d7caf1fc3bacad5c269b66a14": + for index, log := range receipt.Logs { + if log.Topics[0] == logEventSig && + log.Topics[2] == zeroHash { + logIndices = append(logIndices, index) + } + } + case "0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62": + case "0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb": + for index, log := range receipt.Logs { + if log.Topics[0] == logEventSig && + log.Topics[3] == zeroHash { + logIndices = append(logIndices, index) + } + } + + case "0xf871896b17e9cb7a64941c62c188a4f5c621b86800e3d15452ece01ce56073df": + for index, log := range receipt.Logs { + if strings.EqualFold(hexutility.Encode(log.Topics[0][:]), "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef") && + log.Topics[2] == zeroHash { + logIndices = append(logIndices, index) + } + } + + default: + for index, log := range receipt.Logs { + if log.Topics[0] == logEventSig { + logIndices = append(logIndices, index) + } + } + } + + return logIndices +} + +func getLogIndex(logEventSig libcommon.Hash, receipt *types.Receipt) int { + switch logEventSig.Hex() { + case "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": + case "0xf94915c6d1fd521cee85359239227480c7e8776d7caf1fc3bacad5c269b66a14": + for index, log := range receipt.Logs { + if log.Topics[0] == logEventSig && + log.Topics[2] == zeroHash { + return index + } + } + + case "0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62": + case "0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb": + for index, log := range receipt.Logs { + if log.Topics[0] == logEventSig && + log.Topics[3] == zeroHash { + return index + } + } + + default: + for index, log := range receipt.Logs { + if log.Topics[0] == logEventSig { + return index + } + } + } + + return -1 +} + +func (pg *ProofGenerator) getRootBlockInfo(txBlockNumber uint64) (rootBlockNumber uint64, start uint64, end uint64, err error) { + // find in which block child was included in parent + rootBlockNumber, err = pg.findRootBlockFromChild(txBlockNumber) + + if err != nil { + return 0, 0, 0, err + } + + headerBlock, err := pg.heimdall.rootChainBinding.HeaderBlocks(&bind.CallOpts{}, big.NewInt(int64(rootBlockNumber))) + + if err != nil { + return 0, 0, 0, err + } + + return rootBlockNumber, headerBlock.Start.Uint64(), headerBlock.End.Uint64(), nil +} + +const checkPointInterval = uint64(10000) + +func (pg *ProofGenerator) findRootBlockFromChild(childBlockNumber uint64) (uint64, error) { + // first checkpoint id = start * 10000 + start := uint64(1) + + currentHeaderBlock, err := pg.heimdall.rootChainBinding.CurrentHeaderBlock(&bind.CallOpts{}) + + if err != nil { + return 0, err + } + + end := currentHeaderBlock.Uint64() / checkPointInterval + + // binary search on all the checkpoints to find the checkpoint that contains the childBlockNumber + var ans uint64 + + for start <= end { + if start == end { + ans = start + break + } + + mid := (start + end) / 2 + headerBlock, err := pg.heimdall.rootChainBinding.HeaderBlocks(&bind.CallOpts{}, big.NewInt(int64(mid*checkPointInterval))) + + if err != nil { + return 0, err + } + headerStart := headerBlock.Start.Uint64() + headerEnd := headerBlock.End.Uint64() + + if headerStart <= childBlockNumber && childBlockNumber <= headerEnd { + // if childBlockNumber is between the upper and lower bounds of the headerBlock, we found our answer + ans = mid + break + } else if headerStart > childBlockNumber { + // childBlockNumber was checkpointed before this header + end = mid - 1 + } else if headerEnd < childBlockNumber { + // childBlockNumber was checkpointed after this header + start = mid + 1 + } + } + + return ans * checkPointInterval, nil +} + +func isTypedReceipt(receipt *types.Receipt) bool { + return receipt.Status != 0 && receipt.Type != 0 +} + +func getReceiptBytes(receipt *types.Receipt) []byte { + buffer := &bytes.Buffer{} + receipt.EncodeRLP(buffer) + return buffer.Bytes() +} diff --git a/cmd/devnet/services/polygon/proofgenerator_test.go b/cmd/devnet/services/polygon/proofgenerator_test.go new file mode 100644 index 00000000000..f5e53cbd58d --- /dev/null +++ b/cmd/devnet/services/polygon/proofgenerator_test.go @@ -0,0 +1,465 @@ +package polygon + +import ( + "bytes" + "context" + "crypto/ecdsa" + "fmt" + "math" + "math/big" + "sync" + "testing" + + "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/common" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon/accounts/abi/bind" + "github.com/ledgerwatch/erigon/cmd/devnet/blocks" + "github.com/ledgerwatch/erigon/cmd/devnet/requests" + "github.com/ledgerwatch/erigon/consensus" + "github.com/ledgerwatch/erigon/consensus/bor" + "github.com/ledgerwatch/erigon/consensus/bor/contract" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" + "github.com/ledgerwatch/erigon/consensus/bor/valset" + "github.com/ledgerwatch/erigon/core" + "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/core/state" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/core/vm" + "github.com/ledgerwatch/erigon/crypto" + "github.com/ledgerwatch/erigon/params" + "github.com/ledgerwatch/erigon/rlp" + "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/turbo/jsonrpc" + "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/erigon/turbo/stages/mock" + "github.com/ledgerwatch/erigon/turbo/transactions" + "github.com/ledgerwatch/log/v3" + "github.com/pion/randutil" +) + +type requestGenerator struct { + sync.Mutex + requests.NopRequestGenerator + sentry *mock.MockSentry + bor *bor.Bor + chain *core.ChainPack + txBlockMap map[libcommon.Hash]*types.Block +} + +func newRequestGenerator(sentry *mock.MockSentry, chain *core.ChainPack) (*requestGenerator, error) { + db := memdb.New("") + + if err := db.Update(context.Background(), func(tx kv.RwTx) error { + if err := rawdb.WriteHeader(tx, chain.TopBlock.Header()); err != nil { + return err + } + if err := rawdb.WriteHeadHeaderHash(tx, chain.TopBlock.Header().Hash()); err != nil { + return err + } + return nil + }); err != nil { + return nil, err + } + + reader := blockReader{ + chain: chain, + } + + return &requestGenerator{ + chain: chain, + sentry: sentry, + bor: bor.NewRo(params.BorDevnetChainConfig, db, reader, + &spanner{ + span.NewChainSpanner(contract.ValidatorSet(), params.BorDevnetChainConfig, false, log.Root()), + libcommon.Address{}, + span.Span{}}, + genesisContract{}, log.Root()), + txBlockMap: map[libcommon.Hash]*types.Block{}, + }, nil +} + +func (rg *requestGenerator) GetRootHash(ctx context.Context, startBlock uint64, endBlock uint64) (libcommon.Hash, error) { + tx, err := rg.bor.DB.BeginRo(context.Background()) + if err != nil { + return libcommon.Hash{}, err + } + defer tx.Rollback() + + result, err := rg.bor.GetRootHash(ctx, tx, startBlock, endBlock) + + if err != nil { + return libcommon.Hash{}, err + } + + return libcommon.HexToHash(result), nil +} + +func (rg *requestGenerator) GetBlockByNumber(ctx context.Context, blockNum rpc.BlockNumber, withTxs bool) (*requests.Block, error) { + if bn := int(blockNum.Uint64()); bn < len(rg.chain.Blocks) { + block := rg.chain.Blocks[bn] + + transactions := make([]*jsonrpc.RPCTransaction, len(block.Transactions())) + + for i, tx := range block.Transactions() { + rg.txBlockMap[tx.Hash()] = block + transactions[i] = jsonrpc.NewRPCTransaction(tx, block.Hash(), blockNum.Uint64(), uint64(i), block.BaseFee()) + } + + return &requests.Block{ + BlockWithTxHashes: requests.BlockWithTxHashes{ + Header: block.Header(), + Hash: block.Hash(), + }, + Transactions: transactions, + }, nil + } + + return nil, fmt.Errorf("block %d not found", blockNum.Uint64()) +} + +func (rg *requestGenerator) GetTransactionReceipt(ctx context.Context, hash libcommon.Hash) (*types.Receipt, error) { + rg.Lock() + defer rg.Unlock() + + block, ok := rg.txBlockMap[hash] + + if !ok { + return nil, fmt.Errorf("can't find block to tx: %s", hash) + } + + engine := rg.bor + chainConfig := params.BorDevnetChainConfig + + reader := blockReader{ + chain: rg.chain, + } + + tx, err := rg.sentry.DB.BeginRo(context.Background()) + if err != nil { + return nil, err + } + defer tx.Rollback() + + _, _, _, ibs, _, err := transactions.ComputeTxEnv(ctx, engine, block, chainConfig, reader, tx, 0, false) + + if err != nil { + return nil, err + } + + var usedGas uint64 + var usedBlobGas uint64 + + gp := new(core.GasPool).AddGas(block.GasLimit()).AddBlobGas(chainConfig.GetMaxBlobGasPerBlock()) + + noopWriter := state.NewNoopWriter() + + getHeader := func(hash common.Hash, number uint64) *types.Header { + h, e := reader.Header(ctx, tx, hash, number) + if e != nil { + log.Error("getHeader error", "number", number, "hash", hash, "err", e) + } + return h + } + + header := block.Header() + + for i, txn := range block.Transactions() { + + ibs.SetTxContext(txn.Hash(), block.Hash(), i) + + receipt, _, err := core.ApplyTransaction(chainConfig, core.GetHashFn(header, getHeader), engine, nil, gp, ibs, noopWriter, header, txn, &usedGas, &usedBlobGas, vm.Config{}) + + if err != nil { + return nil, err + } + + if txn.Hash() == hash { + receipt.BlockHash = block.Hash() + return receipt, nil + } + } + + return nil, fmt.Errorf("tx not found in block") +} + +type blockReader struct { + services.FullBlockReader + chain *core.ChainPack +} + +func (reader blockReader) BlockByNumber(ctx context.Context, db kv.Tx, number uint64) (*types.Block, error) { + if int(number) < len(reader.chain.Blocks) { + return reader.chain.Blocks[number], nil + } + + return nil, fmt.Errorf("block not found") +} + +func (reader blockReader) HeaderByNumber(ctx context.Context, tx kv.Getter, blockNum uint64) (*types.Header, error) { + if int(blockNum) < len(reader.chain.Headers) { + return reader.chain.Headers[blockNum], nil + } + + return nil, fmt.Errorf("header not found") +} + +func TestMerkle(t *testing.T) { + startBlock := 1600 + endBlock := 3200 + + if depth := int(math.Ceil(math.Log2(float64(endBlock - startBlock + 1)))); depth != 11 { + t.Fatal("Unexpected depth:", depth) + } + + startBlock = 0 + endBlock = 100000 + + if depth := int(math.Ceil(math.Log2(float64(endBlock - startBlock + 1)))); depth != 17 { + t.Fatal("Unexpected depth:", depth) + } + + startBlock = 0 + endBlock = 500000 + + if depth := int(math.Ceil(math.Log2(float64(endBlock - startBlock + 1)))); depth != 19 { + t.Fatal("Unexpected depth:", depth) + } +} + +func TestBlockGeneration(t *testing.T) { + + _, chain, err := generateBlocks(t, 1600) + + if err != nil { + t.Fatal(err) + } + + reader := blockReader{ + chain: chain, + } + + for number := uint64(0); number < 1600; number++ { + _, err = reader.BlockByNumber(context.Background(), nil, number) + + if err != nil { + t.Fatal(err) + } + + header, err := reader.HeaderByNumber(context.Background(), nil, number) + + if err != nil { + t.Fatal(err) + } + + if header == nil { + t.Fatalf("block header not found: %d", number) + } + } +} + +type genesisContract struct { +} + +func (g genesisContract) CommitState(event rlp.RawValue, syscall consensus.SystemCall) error { + return nil +} + +func (g genesisContract) LastStateId(syscall consensus.SystemCall) (*big.Int, error) { + return big.NewInt(0), nil +} + +type spanner struct { + *span.ChainSpanner + validatorAddress libcommon.Address + currentSpan span.Span +} + +func (c spanner) GetCurrentSpan(_ consensus.SystemCall) (*span.Span, error) { + return &c.currentSpan, nil +} + +func (c *spanner) CommitSpan(heimdallSpan span.HeimdallSpan, syscall consensus.SystemCall) error { + c.currentSpan = heimdallSpan.Span + return nil +} + +func (c *spanner) GetCurrentValidators(spanId uint64, signer libcommon.Address, chain consensus.ChainHeaderReader) ([]*valset.Validator, error) { + return []*valset.Validator{ + { + ID: 1, + Address: c.validatorAddress, + VotingPower: 1000, + ProposerPriority: 1, + }}, nil +} + +func TestBlockProof(t *testing.T) { + sentry, chain, err := generateBlocks(t, 1600) + + if err != nil { + t.Fatal(err) + } + + rg, err := newRequestGenerator(sentry, chain) + + if err != nil { + t.Fatal(err) + } + + _, err = rg.GetRootHash(context.Background(), 0, 1599) + + if err != nil { + t.Fatal(err) + } + + blockProofs, err := getBlockProofs(context.Background(), rg, 10, 0, 1599) + + if err != nil { + t.Fatal(err) + } + + if len := len(blockProofs); len != 11 { + t.Fatal("Unexpected block depth:", len) + } + + if len := len(bytes.Join(blockProofs, []byte{})); len != 352 { + t.Fatal("Unexpected proof len:", len) + } +} + +func TestReceiptProof(t *testing.T) { + sentry, chain, err := generateBlocks(t, 10) + + if err != nil { + t.Fatal(err) + } + + rg, err := newRequestGenerator(sentry, chain) + + if err != nil { + t.Fatal(err) + } + + var block *requests.Block + var blockNo uint64 + + for block == nil { + block, err = rg.GetBlockByNumber(context.Background(), rpc.AsBlockNumber(blockNo), true) + + if err != nil { + t.Fatal(err) + } + + if len(block.Transactions) == 0 { + block = nil + blockNo++ + } + } + + receipt, err := rg.GetTransactionReceipt(context.Background(), block.Transactions[len(block.Transactions)-1].Hash) + + if err != nil { + t.Fatal(err) + } + + receiptProof, err := getReceiptProof(context.Background(), rg, receipt, block, nil) + + if err != nil { + t.Fatal(err) + } + + parentNodesBytes, err := rlp.EncodeToBytes(receiptProof.parentNodes) + + if err != nil { + t.Fatal(err) + } + + fmt.Println(hexutility.Encode(parentNodesBytes), hexutility.Encode(append([]byte{0}, receiptProof.path...))) +} + +func generateBlocks(t *testing.T, number int) (*mock.MockSentry, *core.ChainPack, error) { + + data := getGenesis(3) + + rand := randutil.NewMathRandomGenerator() + + return blocks.GenerateBlocks(t, data.genesisSpec, number, map[int]blocks.TxGen{ + 0: { + Fn: getBlockTx(data.addresses[0], data.addresses[1], uint256.NewInt(uint64(rand.Intn(5000))+1)), + Key: data.keys[0], + }, + 1: { + Fn: getBlockTx(data.addresses[1], data.addresses[2], uint256.NewInt(uint64(rand.Intn(5000))+1)), + Key: data.keys[1], + }, + 2: { + Fn: getBlockTx(data.addresses[2], data.addresses[0], uint256.NewInt(uint64(rand.Intn(5000))+1)), + Key: data.keys[2], + }, + }, func(_ int) int { + return rand.Intn(10) + }) +} + +func getBlockTx(from libcommon.Address, to libcommon.Address, amount *uint256.Int) blocks.TxFn { + return func(block *core.BlockGen, _ bind.ContractBackend) (types.Transaction, bool) { + return types.NewTransaction(block.TxNonce(from), to, amount, 21000, new(uint256.Int), nil), false + } +} + +type initialData struct { + keys []*ecdsa.PrivateKey + addresses []libcommon.Address + transactOpts []*bind.TransactOpts + genesisSpec *types.Genesis +} + +func getGenesis(accounts int, funds ...*big.Int) initialData { + accountFunds := big.NewInt(1000000000) + if len(funds) > 0 { + accountFunds = funds[0] + } + + keys := make([]*ecdsa.PrivateKey, accounts) + + for i := 0; i < accounts; i++ { + keys[i], _ = crypto.GenerateKey() + } + + addresses := make([]libcommon.Address, 0, len(keys)) + transactOpts := make([]*bind.TransactOpts, 0, len(keys)) + allocs := types.GenesisAlloc{} + for _, key := range keys { + addr := crypto.PubkeyToAddress(key.PublicKey) + addresses = append(addresses, addr) + to, err := bind.NewKeyedTransactorWithChainID(key, big.NewInt(1)) + if err != nil { + panic(err) + } + transactOpts = append(transactOpts, to) + + allocs[addr] = types.GenesisAccount{Balance: accountFunds} + } + + return initialData{ + keys: keys, + addresses: addresses, + transactOpts: transactOpts, + genesisSpec: &types.Genesis{ + Config: &chain.Config{ + ChainID: big.NewInt(1), + HomesteadBlock: new(big.Int), + TangerineWhistleBlock: new(big.Int), + SpuriousDragonBlock: big.NewInt(1), + ByzantiumBlock: big.NewInt(1), + ConstantinopleBlock: big.NewInt(1), + }, + Alloc: allocs, + }, + } +} diff --git a/cmd/devnet/services/bor/statesync.go b/cmd/devnet/services/polygon/statesync.go similarity index 77% rename from cmd/devnet/services/bor/statesync.go rename to cmd/devnet/services/polygon/statesync.go index d212fdd4bfe..0429f5085db 100644 --- a/cmd/devnet/services/bor/statesync.go +++ b/cmd/devnet/services/polygon/statesync.go @@ -1,4 +1,4 @@ -package bor +package polygon import ( "context" @@ -7,7 +7,7 @@ import ( "sort" "time" - libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/accounts/abi/bind" "github.com/ledgerwatch/erigon/cmd/devnet/contracts" "github.com/ledgerwatch/erigon/consensus/bor/clerk" ) @@ -23,6 +23,25 @@ type EventRecordWithBlock struct { BlockNumber uint64 } +func (h *Heimdall) startStateSyncSubscription() { + var err error + syncChan := make(chan *contracts.TestStateSenderStateSynced, 100) + + h.syncSubscription, err = h.syncSenderBinding.WatchStateSynced(&bind.WatchOpts{}, syncChan, nil, nil) + + if err != nil { + h.unsubscribe() + h.logger.Error("Failed to subscribe to sync events", "err", err) + return + } + + for stateSyncedEvent := range syncChan { + if err := h.handleStateSynced(stateSyncedEvent); err != nil { + h.logger.Error("L1 sync event processing failed", "event", stateSyncedEvent.Raw.Index, "err", err) + } + } +} + func (h *Heimdall) StateSyncEvents(ctx context.Context, fromID uint64, to int64, limit int) (uint64, []*clerk.EventRecordWithTime, error) { h.Lock() defer h.Unlock() @@ -31,11 +50,19 @@ func (h *Heimdall) StateSyncEvents(ctx context.Context, fromID uint64, to int64, //var removalKeys []syncRecordKey + var minEventTime *time.Time + for _ /*key*/, event := range h.pendingSyncRecords { if event.ID >= fromID { - if event.Time.Unix() <= to { + if event.Time.Unix() < to { events = append(events, event) } + + eventTime := event.Time.Round(1 * time.Second) + + if minEventTime == nil || eventTime.Before(*minEventTime) { + minEventTime = &eventTime + } } //else { //removalKeys = append(removalKeys, key) @@ -43,7 +70,8 @@ func (h *Heimdall) StateSyncEvents(ctx context.Context, fromID uint64, to int64, } if len(events) == 0 { - h.logger.Info("Processed sync request", "from", fromID, "to", time.Unix(to, 0), "pending", len(h.pendingSyncRecords), "filtered", len(events)) + h.logger.Info("Processed sync request", "from", fromID, "to", time.Unix(to, 0), "min-time", minEventTime, + "pending", len(h.pendingSyncRecords), "filtered", len(events)) return 0, nil, nil } @@ -66,7 +94,7 @@ func (h *Heimdall) StateSyncEvents(ctx context.Context, fromID uint64, to int64, //} h.logger.Info("Processed sync request", - "from", fromID, "to", time.Unix(to, 0), + "from", fromID, "to", time.Unix(to, 0), "min-time", minEventTime, "pending", len(h.pendingSyncRecords), "filtered", len(events), "sent", fmt.Sprintf("%d-%d", events[0].ID, events[len(events)-1].ID)) @@ -132,19 +160,3 @@ func (h *Heimdall) handleStateSynced(event *contracts.TestStateSenderStateSynced return nil } - -func (h *Heimdall) isOldTx(txHash libcommon.Hash, logIndex uint64, eventType BridgeEvent, event interface{}) (bool, error) { - - // define the endpoint based on the type of event - var status bool - - switch eventType { - case BridgeEvents.StakingEvent: - case BridgeEvents.TopupEvent: - case BridgeEvents.ClerkEvent: - _, status = h.pendingSyncRecords[syncRecordKey{txHash, logIndex}] - case BridgeEvents.SlashingEvent: - } - - return status, nil -} diff --git a/cmd/devnet/services/bor/util.go b/cmd/devnet/services/polygon/util.go similarity index 99% rename from cmd/devnet/services/bor/util.go rename to cmd/devnet/services/polygon/util.go index 386e63da5ba..2c5f2799313 100644 --- a/cmd/devnet/services/bor/util.go +++ b/cmd/devnet/services/polygon/util.go @@ -1,4 +1,4 @@ -package bor +package polygon import ( "errors" diff --git a/cmd/devnet/tests/bor/devnet_test.go b/cmd/devnet/tests/bor/devnet_test.go new file mode 100644 index 00000000000..ad43f982c28 --- /dev/null +++ b/cmd/devnet/tests/bor/devnet_test.go @@ -0,0 +1,88 @@ +//go:build integration + +package bor + +import ( + "context" + "testing" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" + accounts_steps "github.com/ledgerwatch/erigon/cmd/devnet/accounts/steps" + contracts_steps "github.com/ledgerwatch/erigon/cmd/devnet/contracts/steps" + "github.com/ledgerwatch/erigon/cmd/devnet/requests" + "github.com/ledgerwatch/erigon/cmd/devnet/services" + "github.com/ledgerwatch/erigon/cmd/devnet/tests" + "github.com/stretchr/testify/require" +) + +func TestStateSync(t *testing.T) { + t.Skip("FIXME: hangs in GenerateSyncEvents without any visible progress") + + runCtx, err := tests.ContextStart(t, networkname.BorDevnetChainName) + require.Nil(t, err) + var ctx context.Context = runCtx + + t.Run("InitSubscriptions", func(t *testing.T) { + services.InitSubscriptions(ctx, []requests.SubMethod{requests.Methods.ETHNewHeads}) + }) + t.Run("CreateAccountWithFunds", func(t *testing.T) { + _, err := accounts_steps.CreateAccountWithFunds(ctx, networkname.DevChainName, "root-funder", 200.0) + require.Nil(t, err) + }) + t.Run("CreateAccountWithFunds", func(t *testing.T) { + _, err := accounts_steps.CreateAccountWithFunds(ctx, networkname.BorDevnetChainName, "child-funder", 200.0) + require.Nil(t, err) + }) + t.Run("DeployChildChainReceiver", func(t *testing.T) { + var err error + ctx, err = contracts_steps.DeployChildChainReceiver(ctx, "child-funder") + require.Nil(t, err) + }) + t.Run("DeployRootChainSender", func(t *testing.T) { + var err error + ctx, err = contracts_steps.DeployRootChainSender(ctx, "root-funder") + require.Nil(t, err) + }) + t.Run("GenerateSyncEvents", func(t *testing.T) { + require.Nil(t, contracts_steps.GenerateSyncEvents(ctx, "root-funder", 10, 2, 2)) + }) + t.Run("ProcessRootTransfers", func(t *testing.T) { + require.Nil(t, contracts_steps.ProcessRootTransfers(ctx, "root-funder", 10, 2, 2)) + }) + t.Run("BatchProcessRootTransfers", func(t *testing.T) { + require.Nil(t, contracts_steps.BatchProcessRootTransfers(ctx, "root-funder", 1, 10, 2, 2)) + }) +} + +func TestChildChainExit(t *testing.T) { + t.Skip("FIXME: step CreateAccountWithFunds fails: Failed to get transfer tx: failed to search reserves for hashes: no block heads subscription") + + runCtx, err := tests.ContextStart(t, networkname.BorDevnetChainName) + require.Nil(t, err) + var ctx context.Context = runCtx + + t.Run("CreateAccountWithFunds", func(t *testing.T) { + _, err := accounts_steps.CreateAccountWithFunds(ctx, networkname.DevChainName, "root-funder", 200.0) + require.Nil(t, err) + }) + t.Run("CreateAccountWithFunds", func(t *testing.T) { + _, err := accounts_steps.CreateAccountWithFunds(ctx, networkname.BorDevnetChainName, "child-funder", 200.0) + require.Nil(t, err) + }) + t.Run("DeployRootChainReceiver", func(t *testing.T) { + var err error + ctx, err = contracts_steps.DeployRootChainReceiver(ctx, "root-funder") + require.Nil(t, err) + }) + t.Run("DeployChildChainSender", func(t *testing.T) { + var err error + ctx, err = contracts_steps.DeployChildChainSender(ctx, "child-funder") + require.Nil(t, err) + }) + t.Run("ProcessChildTransfers", func(t *testing.T) { + require.Nil(t, contracts_steps.ProcessChildTransfers(ctx, "child-funder", 1, 2, 2)) + }) + //t.Run("BatchProcessTransfers", func(t *testing.T) { + // require.Nil(t, contracts_steps.BatchProcessTransfers(ctx, "child-funder", 1, 10, 2, 2)) + //}) +} diff --git a/cmd/devnet/tests/context.go b/cmd/devnet/tests/context.go new file mode 100644 index 00000000000..7a1a27f645b --- /dev/null +++ b/cmd/devnet/tests/context.go @@ -0,0 +1,66 @@ +package tests + +import ( + "fmt" + "os" + "runtime" + "testing" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon/cmd/devnet/devnet" + "github.com/ledgerwatch/erigon/cmd/devnet/services" + "github.com/ledgerwatch/erigon/cmd/devnet/services/polygon" + "github.com/ledgerwatch/erigon/turbo/debug" + "github.com/ledgerwatch/log/v3" +) + +func initDevnet(chainName string, dataDir string, logger log.Logger) (devnet.Devnet, error) { + const baseRpcHost = "localhost" + const baseRpcPort = 8545 + + switch chainName { + case networkname.BorDevnetChainName: + heimdallGrpcAddr := polygon.HeimdallGrpcAddressDefault + const sprintSize uint64 = 0 + return NewBorDevnetWithLocalHeimdall(dataDir, baseRpcHost, baseRpcPort, heimdallGrpcAddr, sprintSize, logger), nil + + case networkname.DevChainName: + return NewDevDevnet(dataDir, baseRpcHost, baseRpcPort, logger), nil + + case "": + envChainName, _ := os.LookupEnv("DEVNET_CHAIN") + if envChainName == "" { + envChainName = networkname.DevChainName + } + return initDevnet(envChainName, dataDir, logger) + + default: + return nil, fmt.Errorf("unknown network: '%s'", chainName) + } +} + +func ContextStart(t *testing.T, chainName string) (devnet.Context, error) { + if runtime.GOOS == "windows" { + t.Skip("FIXME: TempDir RemoveAll cleanup error: remove dev-0\\clique\\db\\clique\\mdbx.dat: The process cannot access the file because it is being used by another process") + } + + debug.RaiseFdLimit() + logger := log.New() + dataDir := t.TempDir() + + var network devnet.Devnet + network, err := initDevnet(chainName, dataDir, logger) + if err != nil { + return nil, fmt.Errorf("ContextStart initDevnet failed: %w", err) + } + + runCtx, err := network.Start(logger) + if err != nil { + return nil, fmt.Errorf("ContextStart devnet start failed: %w", err) + } + + t.Cleanup(services.UnsubscribeAll) + t.Cleanup(network.Stop) + + return runCtx, nil +} diff --git a/cmd/devnet/tests/devnet_bor.go b/cmd/devnet/tests/devnet_bor.go new file mode 100644 index 00000000000..003c662742b --- /dev/null +++ b/cmd/devnet/tests/devnet_bor.go @@ -0,0 +1,222 @@ +package tests + +import ( + "time" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon/cmd/devnet/accounts" + "github.com/ledgerwatch/erigon/cmd/devnet/args" + "github.com/ledgerwatch/erigon/cmd/devnet/devnet" + account_services "github.com/ledgerwatch/erigon/cmd/devnet/services/accounts" + "github.com/ledgerwatch/erigon/cmd/devnet/services/polygon" + "github.com/ledgerwatch/erigon/cmd/utils" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/params" + "github.com/ledgerwatch/log/v3" +) + +func NewBorDevnetWithoutHeimdall( + dataDir string, + baseRpcHost string, + baseRpcPort int, + logger log.Logger, +) devnet.Devnet { + faucetSource := accounts.NewAccount("faucet-source") + + network := devnet.Network{ + DataDir: dataDir, + Chain: networkname.BorDevnetChainName, + Logger: logger, + BasePort: 40303, + BasePrivateApiAddr: "localhost:10090", + BaseRPCHost: baseRpcHost, + BaseRPCPort: baseRpcPort, + //Snapshots: true, + Alloc: types.GenesisAlloc{ + faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, + }, + Services: []devnet.Service{ + account_services.NewFaucet(networkname.BorDevnetChainName, faucetSource), + }, + Nodes: []devnet.Node{ + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ + ConsoleVerbosity: "0", + DirVerbosity: "5", + WithoutHeimdall: true, + }, + AccountSlots: 200, + }, + &args.NonBlockProducer{ + NodeArgs: args.NodeArgs{ + ConsoleVerbosity: "0", + DirVerbosity: "5", + WithoutHeimdall: true, + }, + }, + }, + } + + return devnet.Devnet{&network} +} + +func NewBorDevnetWithHeimdall( + dataDir string, + baseRpcHost string, + baseRpcPort int, + heimdall *polygon.Heimdall, + heimdallGrpcAddr string, + checkpointOwner *accounts.Account, + withMilestones bool, + logger log.Logger, +) devnet.Devnet { + faucetSource := accounts.NewAccount("faucet-source") + + var services []devnet.Service + if heimdall != nil { + services = append(services, heimdall) + } + + borNetwork := devnet.Network{ + DataDir: dataDir, + Chain: networkname.BorDevnetChainName, + Logger: logger, + BasePort: 40303, + BasePrivateApiAddr: "localhost:10090", + BaseRPCHost: baseRpcHost, + BaseRPCPort: baseRpcPort, + BorStateSyncDelay: 5 * time.Second, + BorWithMilestones: &withMilestones, + Services: append(services, account_services.NewFaucet(networkname.BorDevnetChainName, faucetSource)), + Alloc: types.GenesisAlloc{ + faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, + }, + Nodes: []devnet.Node{ + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ + ConsoleVerbosity: "0", + DirVerbosity: "5", + HeimdallGrpcAddr: heimdallGrpcAddr, + }, + AccountSlots: 200, + }, + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ + ConsoleVerbosity: "0", + DirVerbosity: "5", + HeimdallGrpcAddr: heimdallGrpcAddr, + }, + AccountSlots: 200, + }, + /*&args.BlockProducer{ + Node: args.Node{ + ConsoleVerbosity: "0", + DirVerbosity: "5", + HeimdallGrpcAddr: heimdallGrpcAddr, + }, + AccountSlots: 200, + },*/ + &args.NonBlockProducer{ + NodeArgs: args.NodeArgs{ + ConsoleVerbosity: "0", + DirVerbosity: "5", + HeimdallGrpcAddr: heimdallGrpcAddr, + }, + }, + }, + } + + devNetwork := devnet.Network{ + DataDir: dataDir, + Chain: networkname.DevChainName, + Logger: logger, + BasePort: 30403, + BasePrivateApiAddr: "localhost:10190", + BaseRPCHost: baseRpcHost, + BaseRPCPort: baseRpcPort + 1000, + Services: append(services, account_services.NewFaucet(networkname.DevChainName, faucetSource)), + Alloc: types.GenesisAlloc{ + faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, + checkpointOwner.Address: {Balance: accounts.EtherAmount(10_000)}, + }, + Nodes: []devnet.Node{ + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ + ConsoleVerbosity: "0", + DirVerbosity: "5", + VMDebug: true, + HttpCorsDomain: "*", + }, + DevPeriod: 5, + AccountSlots: 200, + }, + &args.NonBlockProducer{ + NodeArgs: args.NodeArgs{ + ConsoleVerbosity: "0", + DirVerbosity: "3", + }, + }, + }, + } + + return devnet.Devnet{ + &borNetwork, + &devNetwork, + } +} + +func NewBorDevnetWithRemoteHeimdall( + dataDir string, + baseRpcHost string, + baseRpcPort int, + logger log.Logger, +) devnet.Devnet { + heimdallGrpcAddr := "" + checkpointOwner := accounts.NewAccount("checkpoint-owner") + withMilestones := utils.WithHeimdallMilestones.Value + return NewBorDevnetWithHeimdall( + dataDir, + baseRpcHost, + baseRpcPort, + nil, + heimdallGrpcAddr, + checkpointOwner, + withMilestones, + logger) +} + +func NewBorDevnetWithLocalHeimdall( + dataDir string, + baseRpcHost string, + baseRpcPort int, + heimdallGrpcAddr string, + sprintSize uint64, + logger log.Logger, +) devnet.Devnet { + config := *params.BorDevnetChainConfig + if sprintSize > 0 { + config.Bor.Sprint = map[string]uint64{"0": sprintSize} + } + + checkpointOwner := accounts.NewAccount("checkpoint-owner") + + heimdall := polygon.NewHeimdall( + &config, + heimdallGrpcAddr, + &polygon.CheckpointConfig{ + CheckpointBufferTime: 60 * time.Second, + CheckpointAccount: checkpointOwner, + }, + logger) + + return NewBorDevnetWithHeimdall( + dataDir, + baseRpcHost, + baseRpcPort, + heimdall, + heimdallGrpcAddr, + checkpointOwner, + // milestones are not supported yet on the local heimdall + false, + logger) +} diff --git a/cmd/devnet/tests/devnet_dev.go b/cmd/devnet/tests/devnet_dev.go new file mode 100644 index 00000000000..f4aeed1d0f7 --- /dev/null +++ b/cmd/devnet/tests/devnet_dev.go @@ -0,0 +1,53 @@ +package tests + +import ( + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon/cmd/devnet/accounts" + "github.com/ledgerwatch/erigon/cmd/devnet/args" + "github.com/ledgerwatch/erigon/cmd/devnet/devnet" + account_services "github.com/ledgerwatch/erigon/cmd/devnet/services/accounts" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/log/v3" +) + +func NewDevDevnet( + dataDir string, + baseRpcHost string, + baseRpcPort int, + logger log.Logger, +) devnet.Devnet { + faucetSource := accounts.NewAccount("faucet-source") + + network := devnet.Network{ + DataDir: dataDir, + Chain: networkname.DevChainName, + Logger: logger, + BasePrivateApiAddr: "localhost:10090", + BaseRPCHost: baseRpcHost, + BaseRPCPort: baseRpcPort, + Alloc: types.GenesisAlloc{ + faucetSource.Address: {Balance: accounts.EtherAmount(200_000)}, + }, + Services: []devnet.Service{ + account_services.NewFaucet(networkname.DevChainName, faucetSource), + }, + MaxNumberOfEmptyBlockChecks: 30, + Nodes: []devnet.Node{ + &args.BlockProducer{ + NodeArgs: args.NodeArgs{ + ConsoleVerbosity: "0", + DirVerbosity: "5", + }, + AccountSlots: 200, + }, + &args.NonBlockProducer{ + NodeArgs: args.NodeArgs{ + ConsoleVerbosity: "0", + DirVerbosity: "5", + }, + }, + }, + } + + return devnet.Devnet{&network} +} diff --git a/cmd/devnet/tests/generic/devnet_test.go b/cmd/devnet/tests/generic/devnet_test.go new file mode 100644 index 00000000000..8f0f944ab85 --- /dev/null +++ b/cmd/devnet/tests/generic/devnet_test.go @@ -0,0 +1,67 @@ +//go:build integration + +package generic + +import ( + "context" + "testing" + "time" + + "github.com/ledgerwatch/erigon/cmd/devnet/accounts" + "github.com/ledgerwatch/erigon/cmd/devnet/admin" + "github.com/ledgerwatch/erigon/cmd/devnet/contracts/steps" + "github.com/ledgerwatch/erigon/cmd/devnet/requests" + "github.com/ledgerwatch/erigon/cmd/devnet/services" + "github.com/ledgerwatch/erigon/cmd/devnet/tests" + "github.com/ledgerwatch/erigon/cmd/devnet/transactions" + "github.com/stretchr/testify/require" +) + +func testDynamicTx(t *testing.T, ctx context.Context) { + t.Run("InitSubscriptions", func(t *testing.T) { + services.InitSubscriptions(ctx, []requests.SubMethod{requests.Methods.ETHNewHeads}) + }) + t.Run("PingErigonRpc", func(t *testing.T) { + require.Nil(t, admin.PingErigonRpc(ctx)) + }) + t.Run("CheckTxPoolContent", func(t *testing.T) { + transactions.CheckTxPoolContent(ctx, 0, 0, 0) + }) + t.Run("SendTxWithDynamicFee", func(t *testing.T) { + const recipientAddress = "0x71562b71999873DB5b286dF957af199Ec94617F7" + const sendValue uint64 = 10000 + _, err := transactions.SendTxWithDynamicFee(ctx, recipientAddress, accounts.DevAddress, sendValue) + require.Nil(t, err) + }) + t.Run("AwaitBlocks", func(t *testing.T) { + require.Nil(t, transactions.AwaitBlocks(ctx, 2*time.Second)) + }) +} + +func TestDynamicTxNode0(t *testing.T) { + runCtx, err := tests.ContextStart(t, "") + require.Nil(t, err) + testDynamicTx(t, runCtx.WithCurrentNetwork(0).WithCurrentNode(0)) +} + +func TestDynamicTxAnyNode(t *testing.T) { + runCtx, err := tests.ContextStart(t, "") + require.Nil(t, err) + testDynamicTx(t, runCtx.WithCurrentNetwork(0)) +} + +func TestCallContract(t *testing.T) { + t.Skip("FIXME: DeployAndCallLogSubscriber step fails: Log result is incorrect expected txIndex: 1, actual txIndex 2") + + runCtx, err := tests.ContextStart(t, "") + require.Nil(t, err) + ctx := runCtx.WithCurrentNetwork(0) + + t.Run("InitSubscriptions", func(t *testing.T) { + services.InitSubscriptions(ctx, []requests.SubMethod{requests.Methods.ETHNewHeads}) + }) + t.Run("DeployAndCallLogSubscriber", func(t *testing.T) { + _, err := contracts_steps.DeployAndCallLogSubscriber(ctx, accounts.DevAddress) + require.Nil(t, err) + }) +} diff --git a/cmd/devnet/transactions/block.go b/cmd/devnet/transactions/block.go index cf53d0292c5..cad6a359906 100644 --- a/cmd/devnet/transactions/block.go +++ b/cmd/devnet/transactions/block.go @@ -5,6 +5,8 @@ import ( "fmt" "time" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" @@ -12,12 +14,11 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/devnetutils" "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/services" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) -// MaxNumberOfBlockChecks is the max number of blocks to look for a transaction in -var MaxNumberOfEmptyBlockChecks = 25 +// max number of blocks to look for a transaction in +const defaultMaxNumberOfEmptyBlockChecks = 25 func AwaitTransactions(ctx context.Context, hashes ...libcommon.Hash) (map[libcommon.Hash]uint64, error) { devnet.Logger(ctx).Info("Awaiting transactions in confirmed blocks...") @@ -28,7 +29,13 @@ func AwaitTransactions(ctx context.Context, hashes ...libcommon.Hash) (map[libco hashmap[hash] = true } - m, err := searchBlockForHashes(ctx, hashmap) + maxNumberOfEmptyBlockChecks := defaultMaxNumberOfEmptyBlockChecks + network := devnet.CurrentNetwork(ctx) + if (network != nil) && (network.MaxNumberOfEmptyBlockChecks > 0) { + maxNumberOfEmptyBlockChecks = network.MaxNumberOfEmptyBlockChecks + } + + m, err := searchBlockForHashes(ctx, hashmap, maxNumberOfEmptyBlockChecks) if err != nil { return nil, fmt.Errorf("failed to search reserves for hashes: %v", err) } @@ -36,7 +43,11 @@ func AwaitTransactions(ctx context.Context, hashes ...libcommon.Hash) (map[libco return m, nil } -func searchBlockForHashes(ctx context.Context, hashmap map[libcommon.Hash]bool) (map[libcommon.Hash]uint64, error) { +func searchBlockForHashes( + ctx context.Context, + hashmap map[libcommon.Hash]bool, + maxNumberOfEmptyBlockChecks int, +) (map[libcommon.Hash]uint64, error) { logger := devnet.Logger(ctx) if len(hashmap) == 0 { @@ -72,7 +83,7 @@ func searchBlockForHashes(ctx context.Context, hashmap map[libcommon.Hash]bool) blockCount++ // increment the number of blocks seen to check against the max number of blocks to iterate over } - if blockCount == MaxNumberOfEmptyBlockChecks { + if blockCount == maxNumberOfEmptyBlockChecks { for h := range hashmap { logger.Error("Missing Tx", "txHash", h) } diff --git a/cmd/devnet/transactions/tx.go b/cmd/devnet/transactions/tx.go index e6ba3f9586e..f56775094e9 100644 --- a/cmd/devnet/transactions/tx.go +++ b/cmd/devnet/transactions/tx.go @@ -13,8 +13,8 @@ import ( "github.com/ledgerwatch/erigon/cmd/devnet/blocks" "github.com/ledgerwatch/erigon/cmd/devnet/devnet" "github.com/ledgerwatch/erigon/cmd/devnet/devnetutils" - "github.com/ledgerwatch/erigon/cmd/devnet/requests" "github.com/ledgerwatch/erigon/cmd/devnet/scenarios" + "github.com/ledgerwatch/erigon/rpc" "github.com/holiman/uint256" @@ -41,7 +41,7 @@ func CheckTxPoolContent(ctx context.Context, expectedPendingSize, expectedQueued } if expectedPendingSize >= 0 && pendingSize != expectedPendingSize { - logger.Error("FAILURE mismatched pending subpool size", "expected", expectedPendingSize, "got", pendingSize) + logger.Debug("FAILURE mismatched pending subpool size", "expected", expectedPendingSize, "got", pendingSize) return } @@ -51,7 +51,7 @@ func CheckTxPoolContent(ctx context.Context, expectedPendingSize, expectedQueued } if expectedBaseFeeSize >= 0 && baseFeeSize != expectedBaseFeeSize { - logger.Error("FAILURE mismatched basefee subpool size", "expected", expectedBaseFeeSize, "got", baseFeeSize) + logger.Debug("FAILURE mismatched basefee subpool size", "expected", expectedBaseFeeSize, "got", baseFeeSize) } logger.Info("Subpool sizes", "pending", pendingSize, "queued", queuedSize, "basefee", baseFeeSize) @@ -219,7 +219,7 @@ func CreateTransaction(node devnet.Node, to, from string, value uint64) (types.T return nil, libcommon.Address{}, fmt.Errorf("Unknown from account: %s", from) } - res, err := node.GetTransactionCount(fromAccount.Address, requests.BlockNumbers.Pending) + res, err := node.GetTransactionCount(fromAccount.Address, rpc.PendingBlock) if err != nil { return nil, libcommon.Address{}, fmt.Errorf("failed to get transaction count for address 0x%x: %v", fromAccount.Address, err) @@ -241,7 +241,7 @@ func CreateTransaction(node devnet.Node, to, from string, value uint64) (types.T func signEIP1559TxsLowerAndHigherThanBaseFee2(ctx context.Context, amountLower, amountHigher int, baseFeePerGas uint64, toAddress libcommon.Address, fromAddress libcommon.Address) ([]types.Transaction, []types.Transaction, error) { node := devnet.SelectNode(ctx) - res, err := node.GetTransactionCount(fromAddress, requests.BlockNumbers.Pending) + res, err := node.GetTransactionCount(fromAddress, rpc.PendingBlock) if err != nil { return nil, nil, fmt.Errorf("failed to get transaction count for address 0x%x: %v", fromAddress, err) @@ -335,7 +335,12 @@ func signEIP1559TxsHigherThanBaseFee(ctx context.Context, n int, baseFeePerGas u devnet.Logger(ctx).Info("HIGHER", "transaction", i, "nonce", transaction.Nonce, "value", transaction.Value, "feecap", transaction.FeeCap) - signedTransaction, err := types.SignTx(transaction, signer, accounts.SigKey(fromAddress)) + signerKey := accounts.SigKey(fromAddress) + if signerKey == nil { + return nil, fmt.Errorf("devnet.signEIP1559TxsHigherThanBaseFee failed to SignTx: private key not found for address %s", fromAddress) + } + + signedTransaction, err := types.SignTx(transaction, signer, signerKey) if err != nil { return nil, err } diff --git a/cmd/downloader/downloadernat/nat.go b/cmd/downloader/downloadernat/nat.go index 5aa0f29dbe9..f3b7075f599 100644 --- a/cmd/downloader/downloadernat/nat.go +++ b/cmd/downloader/downloadernat/nat.go @@ -1,12 +1,13 @@ package downloadernat import ( - "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" + "github.com/anacrolix/torrent" "github.com/ledgerwatch/erigon/p2p/nat" "github.com/ledgerwatch/log/v3" ) -func DoNat(natif nat.Interface, cfg *downloadercfg.Cfg, logger log.Logger) { +// DoNat can mutate `cfg` parameter +func DoNat(natif nat.Interface, cfg *torrent.ClientConfig, logger log.Logger) { switch natif.(type) { case nil: // No NAT interface, do nothing. diff --git a/cmd/downloader/main.go b/cmd/downloader/main.go index 53de0e035f8..7dc310a0aa6 100644 --- a/cmd/downloader/main.go +++ b/cmd/downloader/main.go @@ -7,24 +7,24 @@ import ( "net" "os" "path/filepath" + "runtime" + "strings" "time" "github.com/anacrolix/torrent/metainfo" "github.com/c2h5oh/datasize" grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware" grpc_recovery "github.com/grpc-ecosystem/go-grpc-middleware/recovery" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon-lib/downloader" downloadercfg2 "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" proto_downloader "github.com/ledgerwatch/erigon-lib/gointerfaces/downloader" - "github.com/ledgerwatch/erigon/cmd/downloader/downloadernat" - "github.com/ledgerwatch/erigon/cmd/utils" - "github.com/ledgerwatch/erigon/common/paths" - "github.com/ledgerwatch/erigon/p2p/nat" - "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/turbo/debug" - "github.com/ledgerwatch/erigon/turbo/logging" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/log/v3" "github.com/pelletier/go-toml/v2" "github.com/spf13/cobra" @@ -34,12 +34,34 @@ import ( "google.golang.org/grpc/health/grpc_health_v1" "google.golang.org/grpc/keepalive" "google.golang.org/grpc/reflection" + + "github.com/ledgerwatch/erigon/cmd/downloader/downloadernat" + "github.com/ledgerwatch/erigon/cmd/hack/tool" + "github.com/ledgerwatch/erigon/cmd/utils" + "github.com/ledgerwatch/erigon/common/paths" + "github.com/ledgerwatch/erigon/p2p/nat" + "github.com/ledgerwatch/erigon/params" + "github.com/ledgerwatch/erigon/turbo/debug" + "github.com/ledgerwatch/erigon/turbo/logging" ) +func main() { + ctx, cancel := common.RootContext() + defer cancel() + + if err := rootCmd.ExecuteContext(ctx); err != nil { + fmt.Println(err) + os.Exit(1) + } +} + var ( - datadirCli string + webseeds string + datadirCli, chain string + filePath string forceRebuild bool forceVerify bool + forceVerifyFiles []string downloaderApiAddr string natSetting string torrentVerbosity int @@ -52,13 +74,15 @@ var ( targetFile string disableIPV6 bool disableIPV4 bool + seedbox bool ) func init() { utils.CobraFlags(rootCmd, debug.Flags, utils.MetricFlags, logging.Flags) withDataDir(rootCmd) - + rootCmd.Flags().StringVar(&chain, utils.ChainFlag.Name, utils.ChainFlag.Value, utils.ChainFlag.Usage) + rootCmd.Flags().StringVar(&webseeds, utils.WebSeedsFlag.Name, utils.WebSeedsFlag.Value, utils.WebSeedsFlag.Usage) rootCmd.Flags().StringVar(&natSetting, "nat", utils.NATFlag.Value, utils.NATFlag.Usage) rootCmd.Flags().StringVar(&downloaderApiAddr, "downloader.api.addr", "127.0.0.1:9093", "external downloader api network address, for example: 127.0.0.1:9093 serves remote downloader interface") rootCmd.Flags().StringVar(&downloadRateStr, "torrent.download.rate", utils.TorrentDownloadRateFlag.Value, utils.TorrentDownloadRateFlag.Usage) @@ -71,7 +95,16 @@ func init() { rootCmd.Flags().StringVar(&staticPeersStr, utils.TorrentStaticPeersFlag.Name, utils.TorrentStaticPeersFlag.Value, utils.TorrentStaticPeersFlag.Usage) rootCmd.Flags().BoolVar(&disableIPV6, "downloader.disable.ipv6", utils.DisableIPV6.Value, utils.DisableIPV6.Usage) rootCmd.Flags().BoolVar(&disableIPV4, "downloader.disable.ipv4", utils.DisableIPV4.Value, utils.DisableIPV6.Usage) - rootCmd.PersistentFlags().BoolVar(&forceVerify, "verify", false, "Force verify data files if have .torrent files") + rootCmd.Flags().BoolVar(&seedbox, "seedbox", false, "Turns downloader into independent (doesn't need Erigon) software which discover/download/seed new files - useful for Erigon network, and can work on very cheap hardware. It will: 1) download .torrent from webseed 2) download new files after upgrade 3) we planing add discovery of new files soon") + rootCmd.PersistentFlags().BoolVar(&forceVerify, "verify", false, "Verify files. All by default, or passed by --verify.files") + rootCmd.PersistentFlags().StringArrayVar(&forceVerifyFiles, "verify.files", nil, "Limit list of files to verify") + + withDataDir(createTorrent) + withFile(createTorrent) + rootCmd.AddCommand(createTorrent) + + rootCmd.AddCommand(torrentCat) + rootCmd.AddCommand(torrentMagnet) withDataDir(printTorrentHashes) printTorrentHashes.PersistentFlags().BoolVar(&forceRebuild, "rebuild", false, "Force re-create .torrent files") @@ -79,8 +112,8 @@ func init() { if err := printTorrentHashes.MarkFlagFilename("targetfile"); err != nil { panic(err) } - rootCmd.AddCommand(printTorrentHashes) + } func withDataDir(cmd *cobra.Command) { @@ -89,17 +122,14 @@ func withDataDir(cmd *cobra.Command) { panic(err) } } - -func main() { - ctx, cancel := common.RootContext() - defer cancel() - - if err := rootCmd.ExecuteContext(ctx); err != nil { - fmt.Println(err) - os.Exit(1) +func withFile(cmd *cobra.Command) { + cmd.Flags().StringVar(&filePath, "file", "", "") + if err := cmd.MarkFlagFilename(utils.DataDirFlag.Name); err != nil { + panic(err) } } +var logger log.Logger var rootCmd = &cobra.Command{ Use: "", Short: "snapshot downloader", @@ -107,8 +137,13 @@ var rootCmd = &cobra.Command{ PersistentPostRun: func(cmd *cobra.Command, args []string) { debug.Exit() }, + PersistentPreRun: func(cmd *cobra.Command, args []string) { + if cmd.Name() != "torrent_cat" { + logger = debug.SetupCobra(cmd, "downloader") + logger.Info("Build info", "git_branch", params.GitBranch, "git_tag", params.GitTag, "git_commit", params.GitCommit) + } + }, Run: func(cmd *cobra.Command, args []string) { - logger := debug.SetupCobra(cmd, "integration") if err := Downloader(cmd.Context(), logger); err != nil { if !errors.Is(err, context.Canceled) { logger.Error(err.Error()) @@ -120,6 +155,12 @@ var rootCmd = &cobra.Command{ func Downloader(ctx context.Context, logger log.Logger) error { dirs := datadir.New(datadirCli) + if err := datadir.ApplyMigrations(dirs); err != nil { + return err + } + if err := checkChainName(ctx, dirs, chain); err != nil { + return err + } torrentLogLevel, _, err := downloadercfg2.Int2LogLevel(torrentVerbosity) if err != nil { return err @@ -133,32 +174,51 @@ func Downloader(ctx context.Context, logger log.Logger) error { return err } - logger.Info("Run snapshot downloader", "addr", downloaderApiAddr, "datadir", dirs.DataDir, "ipv6-enabled", !disableIPV6, "ipv4-enabled", !disableIPV4, "download.rate", downloadRate.String(), "upload.rate", uploadRate.String()) - natif, err := nat.Parse(natSetting) - if err != nil { - return fmt.Errorf("invalid nat option %s: %w", natSetting, err) - } - staticPeers := utils.SplitAndTrim(staticPeersStr) + logger.Info("[snapshots] cli flags", "chain", chain, "addr", downloaderApiAddr, "datadir", dirs.DataDir, "ipv6-enabled", !disableIPV6, "ipv4-enabled", !disableIPV4, "download.rate", downloadRate.String(), "upload.rate", uploadRate.String(), "webseed", webseeds) + staticPeers := common.CliString2Array(staticPeersStr) version := "erigon: " + params.VersionWithCommit(params.GitCommit) - cfg, err := downloadercfg2.New(dirs.Snap, version, torrentLogLevel, downloadRate, uploadRate, torrentPort, torrentConnsPerFile, torrentDownloadSlots, staticPeers) + + webseedsList := common.CliString2Array(webseeds) + if known, ok := snapcfg.KnownWebseeds[chain]; ok { + webseedsList = append(webseedsList, known...) + } + cfg, err := downloadercfg2.New(dirs, version, torrentLogLevel, downloadRate, uploadRate, torrentPort, torrentConnsPerFile, torrentDownloadSlots, staticPeers, webseedsList, chain) if err != nil { return err } + cfg.ClientConfig.PieceHashersPerTorrent = 32 * runtime.NumCPU() cfg.ClientConfig.DisableIPv6 = disableIPV6 cfg.ClientConfig.DisableIPv4 = disableIPV4 - downloadernat.DoNat(natif, cfg, logger) + natif, err := nat.Parse(natSetting) + if err != nil { + return fmt.Errorf("invalid nat option %s: %w", natSetting, err) + } + downloadernat.DoNat(natif, cfg.ClientConfig, logger) - d, err := downloader.New(ctx, cfg) + cfg.DownloadTorrentFilesFromWebseed = true // enable it only for standalone mode now. feature is not fully ready yet + d, err := downloader.New(ctx, cfg, dirs, logger, log.LvlInfo, seedbox) if err != nil { return err } defer d.Close() - logger.Info("[torrent] Start", "my peerID", fmt.Sprintf("%x", d.Torrent().PeerID())) + logger.Info("[snapshots] Start bittorrent server", "my_peer_id", fmt.Sprintf("%x", d.TorrentClient().PeerID())) - d.MainLoopInBackground(ctx, false) + if forceVerify { // remove and create .torrent files (will re-read all snapshots) + if err = d.VerifyData(ctx, forceVerifyFiles); err != nil { + return err + } + logger.Info("[snapshots] Verify done") + return nil + } + + d.MainLoopInBackground(false) + + if err := addPreConfiguredHashes(ctx, d); err != nil { + return err + } bittorrentServer, err := downloader.NewGrpcServer(d) if err != nil { @@ -171,92 +231,150 @@ func Downloader(ctx context.Context, logger log.Logger) error { } defer grpcServer.GracefulStop() - if forceVerify { // remove and create .torrent files (will re-read all snapshots) - if err = d.VerifyData(ctx); err != nil { - return err - } - } - <-ctx.Done() return nil } +var createTorrent = &cobra.Command{ + Use: "torrent_create", + Example: "go run ./cmd/downloader torrent_create --datadir= --file=", + RunE: func(cmd *cobra.Command, args []string) error { + //logger := debug.SetupCobra(cmd, "integration") + dirs := datadir.New(datadirCli) + err := downloader.BuildTorrentFilesIfNeed(cmd.Context(), dirs) + if err != nil { + return err + } + return nil + }, +} + var printTorrentHashes = &cobra.Command{ Use: "torrent_hashes", Example: "go run ./cmd/downloader torrent_hashes --datadir ", RunE: func(cmd *cobra.Command, args []string) error { - logger := debug.SetupCobra(cmd, "integration") - dirs := datadir.New(datadirCli) - ctx := cmd.Context() - - if forceRebuild { // remove and create .torrent files (will re-read all snapshots) - //removePieceCompletionStorage(snapDir) - files, err := downloader.AllTorrentPaths(dirs.Snap) - if err != nil { - return err - } - for _, filePath := range files { - if err := os.Remove(filePath); err != nil { - return err - } - } - if _, err := downloader.BuildTorrentFilesIfNeed(ctx, dirs.Snap); err != nil { - return err - } + logger := debug.SetupCobra(cmd, "downloader") + if err := doPrintTorrentHashes(cmd.Context(), logger); err != nil { + log.Error(err.Error()) } + return nil + }, +} - res := map[string]string{} - files, err := downloader.AllTorrentPaths(dirs.Snap) +var torrentVerify = &cobra.Command{ + Use: "torrent_verify", + Example: "go run ./cmd/downloader torrent_verify ", + RunE: func(cmd *cobra.Command, args []string) error { + if len(args) == 0 { + return fmt.Errorf("please pass .torrent file path by first argument") + } + fPath := args[0] + mi, err := metainfo.LoadFromFile(fPath) if err != nil { - return err + return fmt.Errorf("LoadFromFile: %w, file=%s", err, fPath) } - for _, torrentFilePath := range files { - mi, err := metainfo.LoadFromFile(torrentFilePath) - if err != nil { - return err - } - info, err := mi.UnmarshalInfo() - if err != nil { - return err - } - res[info.Name] = mi.HashInfoBytes().String() + + fmt.Printf("%s\n", mi.HashInfoBytes()) + return nil + }, +} +var torrentCat = &cobra.Command{ + Use: "torrent_cat", + Example: "go run ./cmd/downloader torrent_cat ", + RunE: func(cmd *cobra.Command, args []string) error { + if len(args) == 0 { + return fmt.Errorf("please pass .torrent file path by first argument") } - serialized, err := toml.Marshal(res) + fPath := args[0] + mi, err := metainfo.LoadFromFile(fPath) if err != nil { - return err + return fmt.Errorf("LoadFromFile: %w, file=%s", err, fPath) } - if targetFile == "" { - fmt.Printf("%s\n", serialized) - return nil + fmt.Printf("%s\n", mi.HashInfoBytes()) + return nil + }, +} +var torrentMagnet = &cobra.Command{ + Use: "torrent_magnet", + Example: "go run ./cmd/downloader torrent_magnet ", + RunE: func(cmd *cobra.Command, args []string) error { + if len(args) == 0 { + return fmt.Errorf("please pass .torrent file path by first argument") + } + fPath := args[0] + mi, err := metainfo.LoadFromFile(fPath) + if err != nil { + return fmt.Errorf("LoadFromFile: %w, file=%s", err, fPath) } + fmt.Printf("%s\n", mi.Magnet(nil, nil).String()) + return nil + }, +} + +func doPrintTorrentHashes(ctx context.Context, logger log.Logger) error { + dirs := datadir.New(datadirCli) + if err := datadir.ApplyMigrations(dirs); err != nil { + return err + } - oldContent, err := os.ReadFile(targetFile) + if forceRebuild { // remove and create .torrent files (will re-read all snapshots) + //removePieceCompletionStorage(snapDir) + files, err := downloader.AllTorrentPaths(dirs) if err != nil { return err } - oldLines := map[string]string{} - if err := toml.Unmarshal(oldContent, &oldLines); err != nil { - return fmt.Errorf("unmarshal: %w", err) + for _, filePath := range files { + if err := os.Remove(filePath); err != nil { + return err + } } - if len(oldLines) >= len(res) { - logger.Info("amount of lines in target file is equal or greater than amount of lines in snapshot dir", "old", len(oldLines), "new", len(res)) - return nil + if err := downloader.BuildTorrentFilesIfNeed(ctx, dirs); err != nil { + return fmt.Errorf("BuildTorrentFilesIfNeed: %w", err) } - if err := os.WriteFile(targetFile, serialized, 0644); err != nil { // nolint - return err + } + + res := map[string]string{} + torrents, err := downloader.AllTorrentSpecs(dirs) + if err != nil { + return err + } + for _, t := range torrents { + // we don't release commitment history in this time. let's skip it here. + if strings.HasPrefix(t.DisplayName, "history/commitment") { + continue } + if strings.HasPrefix(t.DisplayName, "idx/commitment") { + continue + } + res[t.DisplayName] = t.InfoHash.String() + } + serialized, err := toml.Marshal(res) + if err != nil { + return err + } + + if targetFile == "" { + fmt.Printf("%s\n", serialized) return nil - }, -} + } -// nolint -func removePieceCompletionStorage(snapDir string) { - _ = os.RemoveAll(filepath.Join(snapDir, "db")) - _ = os.RemoveAll(filepath.Join(snapDir, ".torrent.db")) - _ = os.RemoveAll(filepath.Join(snapDir, ".torrent.bolt.db")) - _ = os.RemoveAll(filepath.Join(snapDir, ".torrent.db-shm")) - _ = os.RemoveAll(filepath.Join(snapDir, ".torrent.db-wal")) + oldContent, err := os.ReadFile(targetFile) + if err != nil { + return err + } + oldLines := map[string]string{} + if err := toml.Unmarshal(oldContent, &oldLines); err != nil { + return fmt.Errorf("unmarshal: %w", err) + } + if len(oldLines) >= len(res) { + logger.Info("amount of lines in target file is equal or greater than amount of lines in snapshot dir", "old", len(oldLines), "new", len(res)) + return nil + } + if err := os.WriteFile(targetFile, serialized, 0644); err != nil { // nolint + return err + } + return nil } func StartGrpc(snServer *downloader.GrpcServer, addr string, creds *credentials.TransportCredentials, logger log.Logger) (*grpc.Server, error) { @@ -313,3 +431,37 @@ func StartGrpc(snServer *downloader.GrpcServer, addr string, creds *credentials. logger.Info("Started gRPC server", "on", addr) return grpcServer, nil } + +// Add pre-configured +func addPreConfiguredHashes(ctx context.Context, d *downloader.Downloader) error { + for _, it := range snapcfg.KnownCfg(chain).Preverified { + if err := d.AddMagnetLink(ctx, snaptype.Hex2InfoHash(it.Hash), it.Name); err != nil { + return err + } + } + return nil +} + +func checkChainName(ctx context.Context, dirs datadir.Dirs, chainName string) error { + if !dir.FileExist(filepath.Join(dirs.Chaindata, "mdbx.dat")) { + return nil + } + db, err := mdbx.NewMDBX(log.New()). + Path(dirs.Chaindata).Label(kv.ChainDB). + Accede(). + Open(ctx) + if err != nil { + return err + } + defer db.Close() + if err := db.View(context.Background(), func(tx kv.Tx) error { + cc := tool.ChainConfig(tx) + if cc != nil && cc.ChainName != chainName { + return fmt.Errorf("datadir already was configured with --chain=%s. can't change to '%s'", cc.ChainName, chainName) + } + return nil + }); err != nil { + return err + } + return nil +} diff --git a/cmd/downloader/readme.md b/cmd/downloader/readme.md index 6502a59b570..61fa4203a3e 100644 --- a/cmd/downloader/readme.md +++ b/cmd/downloader/readme.md @@ -1,10 +1,12 @@ # Downloader -Service to seed/download historical data (snapshots, immutable .seg files) by Bittorrent protocol +Service to seed/download historical data (snapshots, immutable .seg files) by +Bittorrent protocol ## Start Erigon with snapshots support -As many other Erigon components (txpool, sentry, rpc daemon) it may be built-into Erigon or run as separated process. +As many other Erigon components (txpool, sentry, rpc daemon) it may be +built-into Erigon or run as separated process. ```shell # 1. Downloader by default run inside Erigon, by `--snapshots` flag: @@ -28,8 +30,10 @@ Use `--snap.keepblocks=true` to don't delete retired blocks from DB Any network/chain can start with snapshot sync: -- node will download only snapshots registered in next repo https://github.com/ledgerwatch/erigon-snapshot -- node will move old blocks from DB to snapshots of 1K blocks size, then merge snapshots to bigger range, until +- node will download only snapshots registered in next + repo https://github.com/ledgerwatch/erigon-snapshot +- node will move old blocks from DB to snapshots of 1K blocks size, then merge + snapshots to bigger range, until snapshots of 500K blocks, then automatically start seeding new snapshot Flag `--snapshots` is compatible with `--prune` flag @@ -43,14 +47,14 @@ Flag `--snapshots` is compatible with `--prune` flag # It will dump blocks from Database to .seg files: erigon snapshots retire --datadir= -# Create .torrent files (Downloader will seed automatically all .torrent files) +# Create .torrent files (you can think about them as "checksum") +downloader torrent_create --datadir= + # output format is compatible with https://github.com/ledgerwatch/erigon-snapshot -downloader torrent_hashes --rebuild --datadir= +downloader torrent_hashes --datadir= -# Start downloader (seeds automatically) +# Start downloader (read all .torrent files, and download/seed data) downloader --downloader.api.addr=127.0.0.1:9093 --datadir= - -# Erigon is not required for snapshots seeding. But Erigon with --snapshots also does seeding. ``` Additional info: @@ -67,39 +71,88 @@ erigon snapshots index --datadir= ## Architecture -Downloader works based on /snapshots/*.torrent files. Such files can be created 4 ways: +Downloader works based on /snapshots/*.torrent files. Such files +can be created 4 ways: -- Erigon can do grpc call downloader.Download(list_of_hashes), it will trigger creation of .torrent files -- Erigon can create new .seg file, Downloader will scan .seg file and create .torrent -- operator can manually copy .torrent files (rsync from other server or restore from backup) -- operator can manually copy .seg file, Downloader will scan .seg file and create .torrent +- Erigon can do grpc call downloader.Download(list_of_hashes), it will trigger + creation of .torrent files +- Erigon can create new .seg file, Downloader will scan .seg file and create + .torrent +- operator can manually copy .torrent files (rsync from other server or restore + from backup) +- operator can manually copy .seg file, Downloader will scan .seg file and + create .torrent Erigon does: - connect to Downloader - share list of hashes (see https://github.com/ledgerwatch/erigon-snapshot ) - wait for download of all snapshots -- when .seg available - automatically create .idx files - secondary indices, for example to find block by hash -- then switch to normal staged sync (which doesn't require connection to Downloader) -- ensure that snapshot downloading happens only once: even if new Erigon version does include new pre-verified snapshot - hashes, Erigon will not download them (to avoid unpredictable downtime) - but Erigon may produce them by self. +- when .seg available - automatically create .idx files - secondary indices, for + example to find block by hash +- then switch to normal staged sync (which doesn't require connection to + Downloader) +- ensure that snapshot downloading happens only once: even if new Erigon version + does include new pre-verified snapshot + hashes, Erigon will not download them (to avoid unpredictable downtime) - but + Erigon may produce them by self. Downloader does: - Read .torrent files, download everything described by .torrent files -- Use https://github.com/ngosang/trackerslist see [./trackers/embed.go](../../../erigon-lib/downloader/trackers/embed.go) +- Use https://github.com/ngosang/trackerslist + see [./trackers/embed.go](../../../erigon-lib/downloader/trackers/embed.go) - automatically seeding Technical details: -- To prevent attack - .idx creation using random Seed - all nodes will have different .idx file (and same .seg files) -- If you add/remove any .seg file manually, also need remove `/snapshots/db` folder +- To prevent attack - .idx creation using random Seed - all nodes will have + different .idx file (and same .seg files) +- If you add/remove any .seg file manually, also need + remove `/downloader` folder ## How to verify that .seg files have the same checksum as current .torrent files ``` # Use it if you see weird behavior, bugs, bans, hardware issues, etc... downloader --verify --datadir= +downloader --verify --verify.files=v1-1-2-transaction.seg --datadir= +``` + +## Create cheap seedbox + +Usually Erigon's network is self-sufficient - peers automatically producing and +seeding snapshots. But new network or new type of snapshots need Bootstraping +step - no peers yet have this files. + +**Seedbox** - machie which ony seeding archive files: + +- Doesn't need synced erigon +- Can work on very cheap disks, cpu, ram +- It works exactly like Erigon node - downloading archive files and seed them + +``` +downloader --seedbox --datadir= --chain=mainnet +``` + +Seedbox can fallback to **Webseed** - HTTP url to centralized infrastructure. For example: private S3 bucket with +signed_urls, or any HTTP server with files. Main idea: erigon decentralized infrastructure has higher prioriity than +centralized (which used as **support/fallback**). + +``` +# Erigon has default webseed url's - and you can create own +downloader --datadir= --chain=mainnet --webseed= +# See also: `downloader --help` of `--webseed` flag. There is an option to pass it by `datadir/webseed.toml` file +``` + +--------- + +## Utilities + +``` +downloader torrent_cat /path/to.torrent + +downloader torrent_magnet /path/to.torrent ``` ## Faster rsync @@ -118,3 +171,4 @@ crontab -e ``` It does push to branch `auto`, before release - merge `auto` to `main` manually + diff --git a/cmd/erigon-el-mock/main.go b/cmd/erigon-el-mock/main.go deleted file mode 100644 index 98ec8e66a8f..00000000000 --- a/cmd/erigon-el-mock/main.go +++ /dev/null @@ -1,48 +0,0 @@ -package main - -import ( - "flag" - "net" - - "github.com/c2h5oh/datasize" - "github.com/ledgerwatch/erigon-lib/common/datadir" - "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon-lib/kv/mdbx" - "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/log/v3" - "google.golang.org/grpc" - - "github.com/ledgerwatch/erigon/eth/ethconfig" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" -) - -func main() { - datadirPtr := flag.String("datadir2", "", "non in-memory db for EL simulation") - flag.Parse() - log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) - lis, err := net.Listen("tcp", "127.0.0.1:8989") - if err != nil { - log.Warn("[Exec] could not serve service", "reason", err) - } - maxReceiveSize := 500 * datasize.MB - dirs := datadir.New(*datadirPtr) - - s := grpc.NewServer(grpc.MaxRecvMsgSize(int(maxReceiveSize))) - var db kv.RwDB - if *datadirPtr == "" { - db = memdb.New("") - } else { - db, err = mdbx.Open(dirs.DataDir, log.Root(), false) - if err != nil { - log.Error("Could not open database", "err", err) - return - } - } - blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) - execution.RegisterExecutionServer(s, NewEth1Execution(db, blockReader)) - log.Info("Serving mock Execution layer.") - if err := s.Serve(lis); err != nil { - log.Error("failed to serve", "err", err) - } -} diff --git a/cmd/erigon-el-mock/server.go b/cmd/erigon-el-mock/server.go deleted file mode 100644 index 78fb78b72c2..00000000000 --- a/cmd/erigon-el-mock/server.go +++ /dev/null @@ -1,314 +0,0 @@ -package main - -import ( - "context" - "encoding/binary" - "fmt" - "math/big" - "sync" - - "github.com/holiman/uint256" - "github.com/ledgerwatch/erigon-lib/common" - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/gointerfaces" - "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" - types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types" - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/turbo/engineapi/engine_types" - "github.com/ledgerwatch/erigon/turbo/services" - - "github.com/ledgerwatch/erigon/core/rawdb" - "github.com/ledgerwatch/erigon/core/types" -) - -type Eth1Execution struct { - execution.UnimplementedExecutionServer - - db kv.RwDB - blockReader services.FullBlockReader - mu sync.Mutex -} - -func NewEth1Execution(db kv.RwDB, blockReader services.FullBlockReader) *Eth1Execution { - return &Eth1Execution{ - db: db, - blockReader: blockReader, - } -} - -func (e *Eth1Execution) InsertHeaders(ctx context.Context, req *execution.InsertHeadersRequest) (*execution.InsertionResult, error) { - e.mu.Lock() - defer e.mu.Unlock() - tx, err := e.db.BeginRw(ctx) - if err != nil { - return nil, err - } - defer tx.Rollback() - - for _, header := range req.Headers { - h, err := HeaderRpcToHeader(header) - if err != nil { - return nil, err - } - if err := rawdb.WriteHeader(tx, h); err != nil { - return nil, err - } - } - return &execution.InsertionResult{ - Result: execution.ExecutionStatus_Success, - }, tx.Commit() -} - -func (e *Eth1Execution) InsertBodies(ctx context.Context, req *execution.InsertBodiesRequest) (*execution.InsertionResult, error) { - e.mu.Lock() - defer e.mu.Unlock() - tx, err := e.db.BeginRw(ctx) - if err != nil { - return nil, err - } - defer tx.Rollback() - - for _, body := range req.Bodies { - uncles := make([]*types.Header, 0, len(body.Uncles)) - for _, uncle := range body.Uncles { - h, err := HeaderRpcToHeader(uncle) - if err != nil { - return nil, err - } - uncles = append(uncles, h) - } - // Withdrawals processing - withdrawals := make([]*types.Withdrawal, 0, len(body.Withdrawals)) - for _, withdrawal := range body.Withdrawals { - withdrawals = append(withdrawals, &types.Withdrawal{ - Index: withdrawal.Index, - Validator: withdrawal.ValidatorIndex, - Address: gointerfaces.ConvertH160toAddress(withdrawal.Address), - Amount: withdrawal.Amount, - }) - } - if _, err := rawdb.WriteRawBodyIfNotExists(tx, gointerfaces.ConvertH256ToHash(body.BlockHash), - body.BlockNumber, &types.RawBody{ - Transactions: body.Transactions, - Uncles: uncles, - Withdrawals: withdrawals, - }); err != nil { - return nil, err - } - } - return &execution.InsertionResult{ - Result: execution.ExecutionStatus_Success, - }, tx.Commit() -} - -type canonicalEntry struct { - hash libcommon.Hash - number uint64 -} - -func (e *Eth1Execution) UpdateForkChoice(ctx context.Context, fcu *execution.ForkChoice) (*execution.ForkChoiceReceipt, error) { - e.mu.Lock() - defer e.mu.Unlock() - return &execution.ForkChoiceReceipt{ - LatestValidHash: fcu.HeadBlockHash, - Status: execution.ExecutionStatus_Success, - }, nil -} - -func (e *Eth1Execution) GetHeader(ctx context.Context, req *execution.GetSegmentRequest) (*execution.GetHeaderResponse, error) { - e.mu.Lock() - defer e.mu.Unlock() - tx, err := e.db.BeginRo(ctx) - if err != nil { - return nil, err - } - defer tx.Rollback() - - // Retrieve header - var header *types.Header - if req.BlockHash != nil && req.BlockNumber != nil { - blockHash := gointerfaces.ConvertH256ToHash(req.BlockHash) - header, err = e.blockReader.Header(ctx, tx, blockHash, *req.BlockNumber) - if err != nil { - return nil, err - } - } else if req.BlockHash != nil { - blockHash := gointerfaces.ConvertH256ToHash(req.BlockHash) - header, err = e.blockReader.HeaderByHash(ctx, tx, blockHash) - if err != nil { - return nil, err - } - } else if req.BlockNumber != nil { - header, err = e.blockReader.HeaderByNumber(ctx, tx, *req.BlockNumber) - if err != nil { - return nil, err - } - } - if err != nil { - return nil, err - } - // Got nothing? return nothing :) - if header == nil { - return &execution.GetHeaderResponse{}, nil - } - - return &execution.GetHeaderResponse{ - Header: HeaderToHeaderRPC(header), - }, nil -} - -func (e *Eth1Execution) GetBody(ctx context.Context, req *execution.GetSegmentRequest) (*execution.GetBodyResponse, error) { - e.mu.Lock() - defer e.mu.Unlock() - - tx, err := e.db.BeginRo(ctx) - if err != nil { - return nil, err - } - defer tx.Rollback() - // Retrieve header - var body *types.Body - if req.BlockHash != nil && req.BlockNumber != nil { - blockHash := gointerfaces.ConvertH256ToHash(req.BlockHash) - if ok, _, err := rawdb.IsCanonicalHashDeprecated(tx, blockHash); err != nil { - return nil, err - } else if ok { - body, err = e.blockReader.BodyWithTransactions(ctx, tx, blockHash, *req.BlockNumber) - if err != nil { - return nil, err - } - } - } else if req.BlockHash != nil { - blockHash := gointerfaces.ConvertH256ToHash(req.BlockHash) - ok, blockNumber, err := rawdb.IsCanonicalHashDeprecated(tx, blockHash) - if err != nil { - return nil, err - } - if ok { - body, err = e.blockReader.BodyWithTransactions(ctx, tx, blockHash, *blockNumber) - if err != nil { - return nil, err - } - } - } - if err != nil { - return nil, err - } - if body == nil { - return nil, nil - } - encodedTransactions, err := types.MarshalTransactionsBinary(body.Transactions) - if err != nil { - return nil, err - } - rpcWithdrawals := engine_types.ConvertWithdrawalsToRpc(body.Withdrawals) - unclesRpc := make([]*execution.Header, 0, len(body.Uncles)) - for _, uncle := range body.Uncles { - unclesRpc = append(unclesRpc, HeaderToHeaderRPC(uncle)) - } - return &execution.GetBodyResponse{ - Body: &execution.BlockBody{ - Transactions: encodedTransactions, - Withdrawals: rpcWithdrawals, - Uncles: unclesRpc, - }, - }, nil - -} - -func (e *Eth1Execution) IsCanonicalHash(ctx context.Context, req *types2.H256) (*execution.IsCanonicalResponse, error) { - e.mu.Lock() - defer e.mu.Unlock() - - return &execution.IsCanonicalResponse{Canonical: true}, nil -} - -func (e *Eth1Execution) GetHeaderHashNumber(ctx context.Context, req *types2.H256) (*execution.GetHeaderHashNumberResponse, error) { - e.mu.Lock() - defer e.mu.Unlock() - - tx, err := e.db.BeginRo(ctx) - if err != nil { - return nil, err - } - defer tx.Rollback() - return &execution.GetHeaderHashNumberResponse{ - BlockNumber: rawdb.ReadHeaderNumber(tx, gointerfaces.ConvertH256ToHash(req)), - }, nil -} - -func HeaderRpcToHeader(header *execution.Header) (*types.Header, error) { - var blockNonce types.BlockNonce - binary.BigEndian.PutUint64(blockNonce[:], header.Nonce) - var baseFee *big.Int - var withdrawalHash *common.Hash - if header.BaseFeePerGas != nil { - baseFee = gointerfaces.ConvertH256ToUint256Int(header.BaseFeePerGas).ToBig() - } - if header.WithdrawalHash != nil { - withdrawalHash = new(libcommon.Hash) - *withdrawalHash = gointerfaces.ConvertH256ToHash(header.WithdrawalHash) - } - h := &types.Header{ - ParentHash: gointerfaces.ConvertH256ToHash(header.ParentHash), - UncleHash: gointerfaces.ConvertH256ToHash(header.OmmerHash), - Coinbase: gointerfaces.ConvertH160toAddress(header.Coinbase), - Root: gointerfaces.ConvertH256ToHash(header.StateRoot), - TxHash: gointerfaces.ConvertH256ToHash(header.TransactionHash), - ReceiptHash: gointerfaces.ConvertH256ToHash(header.ReceiptRoot), - Bloom: gointerfaces.ConvertH2048ToBloom(header.LogsBloom), - Difficulty: gointerfaces.ConvertH256ToUint256Int(header.Difficulty).ToBig(), - Number: big.NewInt(int64(header.BlockNumber)), - GasLimit: header.GasLimit, - GasUsed: header.GasUsed, - Time: header.Timestamp, - Extra: header.ExtraData, - MixDigest: gointerfaces.ConvertH256ToHash(header.PrevRandao), - Nonce: blockNonce, - BaseFee: baseFee, - WithdrawalsHash: withdrawalHash, - } - - blockHash := gointerfaces.ConvertH256ToHash(header.BlockHash) - if blockHash != h.Hash() { - return nil, fmt.Errorf("block %d, %x has invalid hash. expected: %x", header.BlockNumber, h.Hash(), blockHash) - } - return types.CopyHeader(h), nil -} - -func HeaderToHeaderRPC(header *types.Header) *execution.Header { - difficulty := new(uint256.Int) - difficulty.SetFromBig(header.Difficulty) - - var baseFeeReply *types2.H256 - if header.BaseFee != nil { - var baseFee uint256.Int - baseFee.SetFromBig(header.BaseFee) - baseFeeReply = gointerfaces.ConvertUint256IntToH256(&baseFee) - } - var withdrawalHashReply *types2.H256 - if header.WithdrawalsHash != nil { - withdrawalHashReply = gointerfaces.ConvertHashToH256(*header.WithdrawalsHash) - } - return &execution.Header{ - ParentHash: gointerfaces.ConvertHashToH256(header.ParentHash), - Coinbase: gointerfaces.ConvertAddressToH160(header.Coinbase), - StateRoot: gointerfaces.ConvertHashToH256(header.Root), - TransactionHash: gointerfaces.ConvertHashToH256(header.TxHash), - LogsBloom: gointerfaces.ConvertBytesToH2048(header.Bloom[:]), - ReceiptRoot: gointerfaces.ConvertHashToH256(header.ReceiptHash), - PrevRandao: gointerfaces.ConvertHashToH256(header.MixDigest), - BlockNumber: header.Number.Uint64(), - Nonce: header.Nonce.Uint64(), - GasLimit: header.GasLimit, - GasUsed: header.GasUsed, - Timestamp: header.Time, - ExtraData: header.Extra, - Difficulty: gointerfaces.ConvertUint256IntToH256(difficulty), - BlockHash: gointerfaces.ConvertHashToH256(header.Hash()), - OmmerHash: gointerfaces.ConvertHashToH256(header.UncleHash), - BaseFeePerGas: baseFeeReply, - WithdrawalHash: withdrawalHashReply, - } - -} diff --git a/cmd/erigon/main.go b/cmd/erigon/main.go index 0fd23f8709e..b3dd55dcdb5 100644 --- a/cmd/erigon/main.go +++ b/cmd/erigon/main.go @@ -1,21 +1,17 @@ package main import ( - "errors" "fmt" + "net/http" "os" - "path/filepath" - "reflect" - "strings" - "github.com/VictoriaMetrics/metrics" - "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/log/v3" - "github.com/pelletier/go-toml" "github.com/urfave/cli/v2" - "gopkg.in/yaml.v2" - "github.com/ledgerwatch/erigon/cmd/utils" + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon/diagnostics" "github.com/ledgerwatch/erigon/params" erigonapp "github.com/ledgerwatch/erigon/turbo/app" erigoncli "github.com/ledgerwatch/erigon/turbo/cli" @@ -45,88 +41,40 @@ func main() { } func runErigon(cliCtx *cli.Context) error { - configFilePath := cliCtx.String(utils.ConfigFlag.Name) - if configFilePath != "" { - if err := setFlagsFromConfigFile(cliCtx, configFilePath); err != nil { - log.Warn("failed setting config flags from yaml/toml file", "err", err) - } - } - var logger log.Logger var err error - if logger, err = debug.Setup(cliCtx, true /* root logger */); err != nil { + var metricsMux *http.ServeMux + + if logger, metricsMux, err = debug.Setup(cliCtx, true /* root logger */); err != nil { return err } // initializing the node and providing the current git commit there logger.Info("Build info", "git_branch", params.GitBranch, "git_tag", params.GitTag, "git_commit", params.GitCommit) - erigonInfoGauge := metrics.GetOrCreateCounter(fmt.Sprintf(`erigon_info{version="%s",commit="%s"}`, params.Version, params.GitCommit)) + erigonInfoGauge := metrics.GetOrCreateGauge(fmt.Sprintf(`erigon_info{version="%s",commit="%s"}`, params.Version, params.GitCommit)) erigonInfoGauge.Set(1) nodeCfg := node.NewNodConfigUrfave(cliCtx, logger) + if err := datadir.ApplyMigrations(nodeCfg.Dirs); err != nil { + return err + } + ethCfg := node.NewEthConfigUrfave(cliCtx, nodeCfg, logger) - ethNode, err := node.New(nodeCfg, ethCfg, logger) + ethNode, err := node.New(cliCtx.Context, nodeCfg, ethCfg, logger) if err != nil { log.Error("Erigon startup", "err", err) return err } + + if metricsMux != nil { + diagnostics.Setup(cliCtx, metricsMux, ethNode) + } + err = ethNode.Serve() if err != nil { log.Error("error while serving an Erigon node", "err", err) } return err } - -func setFlagsFromConfigFile(ctx *cli.Context, filePath string) error { - fileExtension := filepath.Ext(filePath) - - fileConfig := make(map[string]interface{}) - - if fileExtension == ".yaml" { - yamlFile, err := os.ReadFile(filePath) - if err != nil { - return err - } - err = yaml.Unmarshal(yamlFile, fileConfig) - if err != nil { - return err - } - } else if fileExtension == ".toml" { - tomlFile, err := os.ReadFile(filePath) - if err != nil { - return err - } - err = toml.Unmarshal(tomlFile, &fileConfig) - if err != nil { - return err - } - } else { - return errors.New("config files only accepted are .yaml and .toml") - } - // sets global flags to value in yaml/toml file - for key, value := range fileConfig { - if !ctx.IsSet(key) { - if reflect.ValueOf(value).Kind() == reflect.Slice { - sliceInterface := value.([]interface{}) - s := make([]string, len(sliceInterface)) - for i, v := range sliceInterface { - s[i] = fmt.Sprintf("%v", v) - } - err := ctx.Set(key, strings.Join(s, ",")) - if err != nil { - return fmt.Errorf("failed setting %s flag with values=%s error=%s", key, s, err) - } - } else { - err := ctx.Set(key, fmt.Sprintf("%v", value)) - if err != nil { - return fmt.Errorf("failed setting %s flag with value=%v error=%s", key, value, err) - - } - } - } - } - - return nil -} diff --git a/cmd/evm/internal/t8ntool/transition.go b/cmd/evm/internal/t8ntool/transition.go index 2cc5b531203..14401d0f94b 100644 --- a/cmd/evm/internal/t8ntool/transition.go +++ b/cmd/evm/internal/t8ntool/transition.go @@ -39,7 +39,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/consensus/merge" @@ -48,6 +47,7 @@ import ( "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/crypto" + "github.com/ledgerwatch/erigon/eth/stagedsync" trace_logger "github.com/ledgerwatch/erigon/eth/tracers/logger" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/tests" @@ -308,7 +308,9 @@ func Main(ctx *cli.Context) error { // redirects to the ethash engine based on the block number engine := merge.New(ðash.FakeEthash{}) - result, err := core.ExecuteBlockEphemerally(chainConfig, &vmConfig, getHash, engine, block, reader, writer, nil, getTracer, log.New("t8ntool")) + t8logger := log.New("t8ntool") + chainReader := stagedsync.NewChainReaderImpl(chainConfig, tx, nil, t8logger) + result, err := core.ExecuteBlockEphemerally(chainConfig, &vmConfig, getHash, engine, block, reader, writer, chainReader, getTracer, t8logger) if hashError != nil { return NewError(ErrorMissingBlockhash, fmt.Errorf("blockhash error: %v", err)) @@ -607,8 +609,8 @@ func CalculateStateRoot(tx kv.RwTx) (*libcommon.Hash, error) { if err != nil { return nil, err } - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) for k, v, err := c.First(); k != nil; k, v, err = c.Next() { if err != nil { return nil, fmt.Errorf("interate over plain state: %w", err) @@ -631,11 +633,11 @@ func CalculateStateRoot(tx kv.RwTx) (*libcommon.Hash, error) { h.Sha.Write(k[length.Addr+length.Incarnation:]) //nolint:errcheck h.Sha.Read(newK[length.Hash+length.Incarnation:]) - if err = tx.Put(kv.HashedStorage, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedStorage, newK, libcommon.CopyBytes(v)); err != nil { return nil, fmt.Errorf("insert hashed key: %w", err) } } else { - if err = tx.Put(kv.HashedAccounts, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedAccounts, newK, libcommon.CopyBytes(v)); err != nil { return nil, fmt.Errorf("insert hashed key: %w", err) } } diff --git a/cmd/evm/runner.go b/cmd/evm/runner.go index 547dd534d8a..cde453423ba 100644 --- a/cmd/evm/runner.go +++ b/cmd/evm/runner.go @@ -43,7 +43,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/evm/internal/compiler" "github.com/ledgerwatch/erigon/cmd/utils" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/vm" @@ -120,10 +119,12 @@ func timedExec(bench bool, execFunc func() ([]byte, uint64, error)) (output []by } func runCmd(ctx *cli.Context) error { - log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) - //glogger := log.NewGlogHandler(log.StreamHandler(os.Stderr, log.TerminalFormat(false))) - //glogger.Verbosity(log.Lvl(ctx.GlobalInt(VerbosityFlag.Name))) - //log.Root().SetHandler(glogger) + machineFriendlyOutput := ctx.Bool(MachineFlag.Name) + if machineFriendlyOutput { + log.Root().SetHandler(log.DiscardHandler()) + } else { + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + } logconfig := &logger.LogConfig{ DisableMemory: ctx.Bool(DisableMemoryFlag.Name), DisableStack: ctx.Bool(DisableStackFlag.Name), @@ -141,7 +142,7 @@ func runCmd(ctx *cli.Context) error { receiver = libcommon.BytesToAddress([]byte("receiver")) genesisConfig *types.Genesis ) - if ctx.Bool(MachineFlag.Name) { + if machineFriendlyOutput { tracer = logger.NewJSONLogger(logconfig, os.Stdout) } else if ctx.Bool(DebugFlag.Name) { debugLogger = logger.NewStructLogger(logconfig) @@ -217,7 +218,7 @@ func runCmd(ctx *cli.Context) error { if err != nil { return err } - code = common.Hex2Bytes(bin) + code = libcommon.Hex2Bytes(bin) } initialGas := ctx.Uint64(GasFlag.Name) if genesisConfig.GasLimit != 0 { diff --git a/cmd/evm/staterunner.go b/cmd/evm/staterunner.go index 5b0591417d8..151da18661f 100644 --- a/cmd/evm/staterunner.go +++ b/cmd/evm/staterunner.go @@ -25,10 +25,10 @@ import ( "path/filepath" "github.com/c2h5oh/datasize" + mdbx2 "github.com/erigontech/mdbx-go/mdbx" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/log/v3" - mdbx2 "github.com/torquem-ch/mdbx-go/mdbx" "github.com/urfave/cli/v2" "github.com/ledgerwatch/erigon/core/state" @@ -57,8 +57,12 @@ type StatetestResult struct { } func stateTestCmd(ctx *cli.Context) error { - // Configure the go-ethereum logger - log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + machineFriendlyOutput := ctx.Bool(MachineFlag.Name) + if machineFriendlyOutput { + log.Root().SetHandler(log.DiscardHandler()) + } else { + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + } // Configure the EVM logger config := &logger.LogConfig{ @@ -70,7 +74,7 @@ func stateTestCmd(ctx *cli.Context) error { cfg := vm.Config{ Debug: ctx.Bool(DebugFlag.Name) || ctx.Bool(MachineFlag.Name), } - if ctx.Bool(MachineFlag.Name) { + if machineFriendlyOutput { cfg.Tracer = logger.NewJSONLogger(config, os.Stderr) } else if ctx.Bool(DebugFlag.Name) { cfg.Tracer = logger.NewStructLogger(config) diff --git a/cmd/evm/testdata/3/readme.md b/cmd/evm/testdata/3/readme.md index 499f03d7aa7..47792de04c8 100644 --- a/cmd/evm/testdata/3/readme.md +++ b/cmd/evm/testdata/3/readme.md @@ -1,2 +1,2 @@ -These files examplify a transition where a transaction (excuted on block 5) requests +These files examplify a transition where a transaction (executed on block 5) requests the blockhash for block `1`. diff --git a/cmd/evm/testdata/4/readme.md b/cmd/evm/testdata/4/readme.md index 08840d37bd9..a298c32ec77 100644 --- a/cmd/evm/testdata/4/readme.md +++ b/cmd/evm/testdata/4/readme.md @@ -1,3 +1,3 @@ -These files examplify a transition where a transaction (excuted on block 5) requests +These files examplify a transition where a transaction (executed on block 5) requests the blockhash for block `4`, but where the hash for that block is missing. It's expected that executing these should cause `exit` with errorcode `4`. diff --git a/cmd/evm/testdata/5/readme.md b/cmd/evm/testdata/5/readme.md index e2b608face9..1116bc94bd9 100644 --- a/cmd/evm/testdata/5/readme.md +++ b/cmd/evm/testdata/5/readme.md @@ -1 +1 @@ -These files examplify a transition where there are no transcations, two ommers, at block `N-1` (delta 1) and `N-2` (delta 2). \ No newline at end of file +These files examplify a transition where there are no transactions, two ommers, at block `N-1` (delta 1) and `N-2` (delta 2). \ No newline at end of file diff --git a/cmd/evm/testdata/8/readme.md b/cmd/evm/testdata/8/readme.md index 778fc6151ab..52289f77d69 100644 --- a/cmd/evm/testdata/8/readme.md +++ b/cmd/evm/testdata/8/readme.md @@ -7,7 +7,7 @@ This test contains testcases for EIP-2930, which uses transactions with access l The alloc portion contains one contract (`0x000000000000000000000000000000000000aaaa`), containing the following code: `0x5854505854`: `PC ;SLOAD; POP; PC; SLOAD`. -Essentialy, this contract does `SLOAD(0)` and `SLOAD(3)`. +Essentially, this contract does `SLOAD(0)` and `SLOAD(3)`. The alloc also contains some funds on `0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b`. @@ -33,7 +33,7 @@ dir=./testdata/8 && ./evm t8n --state.fork=Berlin --input.alloc=$dir/alloc.json ``` -Simlarly, we can provide the input transactions via `stdin` instead of as file: +Similarly, we can provide the input transactions via `stdin` instead of as file: ``` dir=./testdata/8 \ diff --git a/cmd/evm/testdata/9/readme.md b/cmd/evm/testdata/9/readme.md index 88f0f12aaaa..3436c8135d6 100644 --- a/cmd/evm/testdata/9/readme.md +++ b/cmd/evm/testdata/9/readme.md @@ -7,7 +7,7 @@ This test contains testcases for EIP-1559, which uses an new transaction type an The alloc portion contains one contract (`0x000000000000000000000000000000000000aaaa`), containing the following code: `0x58585454`: `PC; PC; SLOAD; SLOAD`. -Essentialy, this contract does `SLOAD(0)` and `SLOAD(1)`. +Essentially, this contract does `SLOAD(0)` and `SLOAD(1)`. The alloc also contains some funds on `0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b`. diff --git a/cmd/hack/db/lmdb.go b/cmd/hack/db/lmdb.go index 288bcf10208..b1aeaa95855 100644 --- a/cmd/hack/db/lmdb.go +++ b/cmd/hack/db/lmdb.go @@ -577,7 +577,7 @@ func generate6(_ kv.RwDB, tx kv.RwTx) (bool, error) { } func dropT(_ kv.RwDB, tx kv.RwTx) (bool, error) { - if err := tx.(kv.BucketMigrator).ClearBucket("t"); err != nil { + if err := tx.ClearBucket("t"); err != nil { return false, err } return true, nil @@ -607,14 +607,14 @@ func generate7(_ kv.RwDB, tx kv.RwTx) (bool, error) { } func dropT1(_ kv.RwDB, tx kv.RwTx) (bool, error) { - if err := tx.(kv.BucketMigrator).ClearBucket("t1"); err != nil { + if err := tx.ClearBucket("t1"); err != nil { return false, err } return true, nil } func dropT2(_ kv.RwDB, tx kv.RwTx) (bool, error) { - if err := tx.(kv.BucketMigrator).ClearBucket("t2"); err != nil { + if err := tx.ClearBucket("t2"); err != nil { return false, err } return true, nil @@ -624,7 +624,7 @@ func dropT2(_ kv.RwDB, tx kv.RwTx) (bool, error) { func generate8(_ kv.RwDB, tx kv.RwTx) (bool, error) { for i := 0; i < 100; i++ { k := fmt.Sprintf("table_%05d", i) - if err := tx.(kv.BucketMigrator).CreateBucket(k); err != nil { + if err := tx.CreateBucket(k); err != nil { return false, err } } @@ -656,7 +656,7 @@ func generate9(tx kv.RwTx, entries int) error { func dropAll(_ kv.RwDB, tx kv.RwTx) (bool, error) { for i := 0; i < 100; i++ { k := fmt.Sprintf("table_%05d", i) - if err := tx.(kv.BucketMigrator).DropBucket(k); err != nil { + if err := tx.DropBucket(k); err != nil { return false, err } } @@ -779,7 +779,7 @@ func defragSteps(filename string, bucketsCfg kv.TableCfg, generateFs ...func(kv. var db kv.RwDB db, err = kv2.NewMDBX(logger).Path(dir).WithTableCfg(func(kv.TableCfg) kv.TableCfg { return bucketsCfg - }).Open() + }).Open(context.Background()) if err != nil { return fmt.Errorf("opening database: %w", err) } diff --git a/cmd/hack/hack.go b/cmd/hack/hack.go index dcb757be04a..42aa5932bdf 100644 --- a/cmd/hack/hack.go +++ b/cmd/hack/hack.go @@ -8,6 +8,7 @@ import ( "encoding/json" "flag" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "net/http" _ "net/http/pprof" //nolint:gosec @@ -20,6 +21,9 @@ import ( "github.com/RoaringBitmap/roaring/roaring64" "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" + "golang.org/x/exp/slices" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/common/length" @@ -30,21 +34,15 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" "github.com/ledgerwatch/erigon-lib/recsplit" "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" - librlp "github.com/ledgerwatch/erigon-lib/rlp" - "github.com/ledgerwatch/erigon/core/rawdb/blockio" - "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" - "github.com/ledgerwatch/log/v3" - "golang.org/x/exp/slices" hackdb "github.com/ledgerwatch/erigon/cmd/hack/db" "github.com/ledgerwatch/erigon/cmd/hack/flow" "github.com/ledgerwatch/erigon/cmd/hack/tool" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/paths" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/core/rawdb/blockio" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/crypto" @@ -56,6 +54,8 @@ import ( "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/debug" "github.com/ledgerwatch/erigon/turbo/logging" + "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" ) var ( @@ -138,7 +138,7 @@ func blocksIO(db kv.RoDB) (services.FullBlockReader, *blockio.BlockWriter) { }); err != nil { panic(err) } - br := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) + br := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New()), nil /* BorSnapshots */) bw := blockio.NewBlockWriter(histV3) return br, bw } @@ -421,7 +421,7 @@ func iterateOverCode(chaindata string) error { if err := tx.ForEach(kv.Code, nil, func(k, v []byte) error { if len(v) > 0 && v[0] == 0xef { fmt.Printf("Found code with hash %x: %x\n", k, v) - hashes[libcommon.BytesToHash(k)] = common.CopyBytes(v) + hashes[libcommon.BytesToHash(k)] = libcommon.CopyBytes(v) } return nil }); err != nil { @@ -1330,11 +1330,13 @@ func readSeg(chaindata string) error { g := vDecomp.MakeGetter() var buf []byte var count int + var offset, nextPos uint64 for g.HasNext() { - g.Next(buf[:0]) + buf, nextPos = g.Next(buf[:0]) + fmt.Printf("offset: %d, val: %x\n", offset, buf) + offset = nextPos count++ } - fmt.Printf("count=%d\n", count) return nil } @@ -1354,33 +1356,6 @@ func dumpState(chaindata string) error { return nil } -type NewPooledTransactionHashesPacket68 struct { - Types []byte - Sizes []uint32 - Hashes []libcommon.Hash -} - -func rlptest() error { - var p = NewPooledTransactionHashesPacket68{ - Types: []byte{44, 200}, - Sizes: []uint32{56, 57680}, - Hashes: []libcommon.Hash{{}, {}}, - } - b, err := rlp.EncodeToBytes(&p) - if err != nil { - return err - } - fmt.Printf("%x\n", b) - var hashes []byte - for _, h := range p.Hashes { - hashes = append(hashes, h[:]...) - } - b = make([]byte, librlp.AnnouncementsLen(p.Types, p.Sizes, hashes)) - l := librlp.EncodeAnnouncements(p.Types, p.Sizes, hashes, b) - fmt.Printf("%x\n%d %d\n", b, len(b), l) - return nil -} - func main() { debug.RaiseFdLimit() flag.Parse() @@ -1512,8 +1487,6 @@ func main() { err = readSeg(*chaindata) case "dumpState": err = dumpState(*chaindata) - case "rlptest": - err = rlptest() case "readAccountAtVersion": err = readAccountAtVersion(*chaindata, *account, uint64(*block)) } diff --git a/cmd/hack/tool/fromdb/tool.go b/cmd/hack/tool/fromdb/tool.go index 32ae74e9652..8bcff3561ca 100644 --- a/cmd/hack/tool/fromdb/tool.go +++ b/cmd/hack/tool/fromdb/tool.go @@ -17,7 +17,7 @@ func ChainConfig(db kv.RoDB) (cc *chain.Config) { }) tool.Check(err) if cc == nil { - panic("database is not initalized") + panic("database is not initialized") } return cc } diff --git a/cmd/integration/commands/refetence_db.go b/cmd/integration/commands/refetence_db.go index d07ee259024..ac717c8f360 100644 --- a/cmd/integration/commands/refetence_db.go +++ b/cmd/integration/commands/refetence_db.go @@ -160,7 +160,7 @@ func init() { func doWarmup(ctx context.Context, chaindata string, bucket string, logger log.Logger) error { const ThreadsLimit = 5_000 - db := mdbx2.NewMDBX(log.New()).Path(chaindata).RoTxsLimiter(semaphore.NewWeighted(ThreadsLimit)).Readonly().MustOpen() + db := mdbx2.NewMDBX(log.New()).Path(chaindata).RoTxsLimiter(semaphore.NewWeighted(ThreadsLimit)).MustOpen() defer db.Close() var total uint64 @@ -389,7 +389,7 @@ MainLoop: if !fileScanner.Scan() { break MainLoop } - k := common.CopyBytes(fileScanner.Bytes()) + k := common2.CopyBytes(fileScanner.Bytes()) if bytes.Equal(k, endData) { break } @@ -397,7 +397,7 @@ MainLoop: if !fileScanner.Scan() { break MainLoop } - v := common.CopyBytes(fileScanner.Bytes()) + v := common2.CopyBytes(fileScanner.Bytes()) v = common.FromHex(string(v[1:])) if casted, ok := c.(kv.RwCursorDupSort); ok { diff --git a/cmd/integration/commands/reset_state.go b/cmd/integration/commands/reset_state.go index 0dd01f94a77..c281447bfd5 100644 --- a/cmd/integration/commands/reset_state.go +++ b/cmd/integration/commands/reset_state.go @@ -5,10 +5,11 @@ import ( "encoding/binary" "errors" "fmt" - "github.com/ledgerwatch/erigon/turbo/backup" "os" "text/tabwriter" + "github.com/ledgerwatch/erigon/turbo/backup" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" @@ -36,8 +37,9 @@ var cmdResetState = &cobra.Command{ } ctx, _ := common.RootContext() defer db.Close() - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() if err := db.View(ctx, func(tx kv.Tx) error { return printStages(tx, sn, agg) }); err != nil { @@ -119,7 +121,7 @@ func printStages(tx kv.Tx, snapshots *freezeblocks.RoSnapshots, agg *state.Aggre } fmt.Fprintf(w, "--\n") fmt.Fprintf(w, "prune distance: %s\n\n", pm.String()) - fmt.Fprintf(w, "blocks.v2: blocks=%d, segments=%d, indices=%d\n\n", snapshots.BlocksAvailable(), snapshots.SegmentsMax(), snapshots.IndicesMax()) + fmt.Fprintf(w, "blocks.v2: %t, blocks=%d, segments=%d, indices=%d\n\n", snapshots.Cfg().Enabled, snapshots.BlocksAvailable(), snapshots.SegmentsMax(), snapshots.IndicesMax()) h3, err := kvcfg.HistoryV3.Enabled(tx) if err != nil { return err diff --git a/cmd/integration/commands/root.go b/cmd/integration/commands/root.go index 911681c06df..95120c4f822 100644 --- a/cmd/integration/commands/root.go +++ b/cmd/integration/commands/root.go @@ -7,10 +7,8 @@ import ( "path/filepath" "strings" - "github.com/c2h5oh/datasize" "github.com/ledgerwatch/log/v3" "github.com/spf13/cobra" - "github.com/torquem-ch/mdbx-go/mdbx" "golang.org/x/sync/semaphore" "github.com/ledgerwatch/erigon-lib/kv" @@ -64,9 +62,10 @@ func dbCfg(label kv.Label, path string) kv2.MdbxOpts { const ThreadsLimit = 9_000 limiterB := semaphore.NewWeighted(ThreadsLimit) opts := kv2.NewMDBX(log.New()).Path(path).Label(label).RoTxsLimiter(limiterB) - if label == kv.ChainDB { - opts = opts.MapSize(8 * datasize.TB) - } + // integration tool don't intent to create db, then easiest way to open db - it's pass mdbx.Accede flag, which allow + // to read all options from DB, instead of overriding them + opts = opts.Accede() + if databaseVerbosity != -1 { opts = opts.DBVerbosity(kv.DBVerbosityLvl(databaseVerbosity)) } @@ -74,10 +73,6 @@ func dbCfg(label kv.Label, path string) kv2.MdbxOpts { } func openDB(opts kv2.MdbxOpts, applyMigrations bool, logger log.Logger) (kv.RwDB, error) { - // integration tool don't intent to create db, then easiest way to open db - it's pass mdbx.Accede flag, which allow - // to read all options from DB, instead of overriding them - opts = opts.Flags(func(f uint) uint { return f | mdbx.Accede }) - db := opts.MustOpen() if applyMigrations { migrator := migrations.NewMigrator(opts.GetLabel()) @@ -110,7 +105,7 @@ func openDB(opts kv2.MdbxOpts, applyMigrations bool, logger log.Logger) (kv.RwDB return nil, err } if h3 { - _, agg := allSnapshots(context.Background(), db, logger) + _, _, agg := allSnapshots(context.Background(), db, logger) tdb, err := temporal.New(db, agg, systemcontracts.SystemContractCodeLookup[chain]) if err != nil { return nil, err diff --git a/cmd/integration/commands/stages.go b/cmd/integration/commands/stages.go index 692fcb6ae3c..f497b7786af 100644 --- a/cmd/integration/commands/stages.go +++ b/cmd/integration/commands/stages.go @@ -11,8 +11,14 @@ import ( "time" "github.com/c2h5oh/datasize" + "github.com/erigontech/mdbx-go/mdbx" + lru "github.com/hashicorp/golang-lru/arc/v2" + "github.com/ledgerwatch/erigon/consensus/bor" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall" + "github.com/ledgerwatch/erigon/consensus/bor/heimdallgrpc" "github.com/ledgerwatch/erigon/core/rawdb/blockio" "github.com/ledgerwatch/erigon/node/nodecfg" + "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client" "github.com/ledgerwatch/erigon/turbo/builder" "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" "github.com/ledgerwatch/log/v3" @@ -23,6 +29,7 @@ import ( chain2 "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/commitment" common2 "github.com/ledgerwatch/erigon-lib/common" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/cmp" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dir" @@ -31,7 +38,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" libstate "github.com/ledgerwatch/erigon-lib/state" "github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -96,6 +102,27 @@ var cmdStageHeaders = &cobra.Command{ }, } +var cmdStageBorHeimdall = &cobra.Command{ + Use: "stage_bor_heimdall", + Short: "", + Run: func(cmd *cobra.Command, args []string) { + logger := debug.SetupCobra(cmd, "integration") + db, err := openDB(dbCfg(kv.ChainDB, chaindata), true, logger) + if err != nil { + logger.Error("Opening DB", "error", err) + return + } + defer db.Close() + + if err := stageBorHeimdall(db, cmd.Context(), logger); err != nil { + if !errors.Is(err, context.Canceled) { + logger.Error(err.Error()) + } + return + } + }, +} + var cmdStageBodies = &cobra.Command{ Use: "stage_bodies", Short: "", @@ -291,7 +318,7 @@ var cmdPrintStages = &cobra.Command{ Short: "", Run: func(cmd *cobra.Command, args []string) { logger := debug.SetupCobra(cmd, "integration") - db, err := openDB(dbCfg(kv.ChainDB, chaindata).Readonly(), false, logger) + db, err := openDB(dbCfg(kv.ChainDB, chaindata), false, logger) if err != nil { logger.Error("Opening DB", "error", err) return @@ -352,7 +379,9 @@ var cmdRunMigrations = &cobra.Command{ Short: "", Run: func(cmd *cobra.Command, args []string) { logger := debug.SetupCobra(cmd, "integration") - db, err := openDB(dbCfg(kv.ChainDB, chaindata), true, logger) + //non-accede and exclusive mode - to apply create new tables if need. + cfg := dbCfg(kv.ChainDB, chaindata).Flags(func(u uint) uint { return u &^ mdbx.Accede }).Exclusive() + db, err := openDB(cfg, true, logger) if err != nil { logger.Error("Opening DB", "error", err) return @@ -383,7 +412,7 @@ var cmdSetPrune = &cobra.Command{ } var cmdSetSnap = &cobra.Command{ - Use: "force_set_snapshot", + Use: "force_set_snap", Short: "Override existing --snapshots flag value (if you know what you are doing)", Run: func(cmd *cobra.Command, args []string) { logger := debug.SetupCobra(cmd, "integration") @@ -393,12 +422,22 @@ var cmdSetSnap = &cobra.Command{ return } defer db.Close() - sn, agg := allSnapshots(cmd.Context(), db, logger) + sn, borSn, agg := allSnapshots(cmd.Context(), db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() + cfg := sn.Cfg() + flags := cmd.Flags() + if flags.Lookup("snapshots") != nil { + cfg.Enabled, err = flags.GetBool("snapshots") + if err != nil { + panic(err) + } + } + if err := db.Update(context.Background(), func(tx kv.RwTx) error { - return snap.ForceSetFlags(tx, sn.Cfg()) + return snap.ForceSetFlags(tx, cfg) }); err != nil { if !errors.Is(err, context.Canceled) { logger.Error(err.Error()) @@ -453,6 +492,7 @@ func init() { rootCmd.AddCommand(cmdStageSnapshots) withConfig(cmdStageHeaders) + withIntegrityChecks(cmdStageHeaders) withDataDir(cmdStageHeaders) withUnwind(cmdStageHeaders) withReset(cmdStageHeaders) @@ -460,6 +500,13 @@ func init() { withHeimdall(cmdStageHeaders) rootCmd.AddCommand(cmdStageHeaders) + withConfig(cmdStageBorHeimdall) + withDataDir(cmdStageBorHeimdall) + withReset(cmdStageBorHeimdall) + withChain(cmdStageBorHeimdall) + withHeimdall(cmdStageBorHeimdall) + rootCmd.AddCommand(cmdStageBorHeimdall) + withConfig(cmdStageBodies) withDataDir(cmdStageBodies) withUnwind(cmdStageBodies) @@ -563,11 +610,14 @@ func init() { withConfig(cmdSetSnap) withDataDir2(cmdSetSnap) withChain(cmdSetSnap) + cmdSetSnap.Flags().Bool("snapshots", false, "") + must(cmdSetSnap.MarkFlagRequired("snapshots")) rootCmd.AddCommand(cmdSetSnap) withConfig(cmdForceSetHistoryV3) withDataDir2(cmdForceSetHistoryV3) cmdForceSetHistoryV3.Flags().BoolVar(&_forceSetHistoryV3, "history.v3", false, "") + must(cmdForceSetHistoryV3.MarkFlagRequired("history.v3")) rootCmd.AddCommand(cmdForceSetHistoryV3) withConfig(cmdSetPrune) @@ -603,18 +653,36 @@ func stageSnapshots(db kv.RwDB, ctx context.Context, logger log.Logger) error { } func stageHeaders(db kv.RwDB, ctx context.Context, logger log.Logger) error { - sn, agg := allSnapshots(ctx, db, logger) + dirs := datadir.New(datadirCli) + if err := datadir.ApplyMigrations(dirs); err != nil { + return err + } + + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() br, bw := blocksIO(db, logger) engine, _, _, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) chainConfig, _, _ := fromdb.ChainConfig(db), kvcfg.HistoryV3.FromDB(db), fromdb.PruneMode(db) - return db.Update(ctx, func(tx kv.RwTx) error { - if !(unwind > 0 || reset) { - logger.Info("This command only works with --unwind or --reset options") + if integritySlow { + if err := db.View(ctx, func(tx kv.Tx) error { + log.Info("[integrity] no gaps in canonical headers") + integrity.NoGapsInCanonicalHeaders(tx, ctx, br) + return nil + }); err != nil { + return err } + return nil + } + + if !(unwind > 0 || reset) { + logger.Error("This command only works with --unwind or --reset options") + return nil + } + return db.Update(ctx, func(tx kv.RwTx) error { if reset { dirs := datadir.New(datadirCli) if err := reset2.ResetBlocks(tx, db, agg, br, bw, dirs, *chainConfig, engine, logger); err != nil { @@ -675,9 +743,22 @@ func stageHeaders(db kv.RwDB, ctx context.Context, logger log.Logger) error { }) } +func stageBorHeimdall(db kv.RwDB, ctx context.Context, logger log.Logger) error { + return db.Update(ctx, func(tx kv.RwTx) error { + if reset { + if err := reset2.ResetBorHeimdall(ctx, tx); err != nil { + return err + } + return nil + } + return nil + }) +} + func stageBodies(db kv.RwDB, ctx context.Context, logger log.Logger) error { - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() chainConfig, historyV3 := fromdb.ChainConfig(db), kvcfg.HistoryV3.FromDB(db) _, _, sync, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) @@ -715,8 +796,9 @@ func stageBodies(db kv.RwDB, ctx context.Context, logger log.Logger) error { func stageSenders(db kv.RwDB, ctx context.Context, logger log.Logger) error { tmpdir := datadir.New(datadirCli).Tmp chainConfig := fromdb.ChainConfig(db) - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() _, _, sync, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) @@ -806,10 +888,15 @@ func stageSenders(db kv.RwDB, ctx context.Context, logger log.Logger) error { func stageExec(db kv.RwDB, ctx context.Context, logger log.Logger) error { dirs := datadir.New(datadirCli) + if err := datadir.ApplyMigrations(dirs); err != nil { + return err + } + engine, vmConfig, sync, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) must(sync.SetCurrentStage(stages.Execution)) - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() if warmup { @@ -847,7 +934,7 @@ func stageExec(db kv.RwDB, ctx context.Context, logger log.Logger) error { br, _ := blocksIO(db, logger) cfg := stagedsync.StageExecuteBlocksCfg(db, pm, batchSize, nil, chainConfig, engine, vmConfig, nil, /*stateStream=*/ false, - /*badBlockHalt=*/ false, historyV3, dirs, br, nil, genesis, syncCfg, agg) + /*badBlockHalt=*/ false, historyV3, dirs, br, nil, genesis, syncCfg, agg, nil) var tx kv.RwTx //nil - means lower-level code (each stage) will manage transactions if noCommit { @@ -889,8 +976,9 @@ func stageExec(db kv.RwDB, ctx context.Context, logger log.Logger) error { func stageTrie(db kv.RwDB, ctx context.Context, logger log.Logger) error { dirs, pm, historyV3 := datadir.New(datadirCli), fromdb.PruneMode(db), kvcfg.HistoryV3.FromDB(db) - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() _, _, sync, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) must(sync.SetCurrentStage(stages.IntermediateHashes)) @@ -946,8 +1034,9 @@ func stageTrie(db kv.RwDB, ctx context.Context, logger log.Logger) error { func stageHashState(db kv.RwDB, ctx context.Context, logger log.Logger) error { dirs, pm, historyV3 := datadir.New(datadirCli), fromdb.PruneMode(db), kvcfg.HistoryV3.FromDB(db) - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() _, _, sync, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) must(sync.SetCurrentStage(stages.HashState)) @@ -1123,8 +1212,9 @@ func stageHistory(db kv.RwDB, ctx context.Context, logger log.Logger) error { if historyV3 { return fmt.Errorf("this stage is disable in --history.v3=true") } - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() _, _, sync, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) must(sync.SetCurrentStage(stages.AccountHistoryIndex)) @@ -1198,8 +1288,9 @@ func stageTxLookup(db kv.RwDB, ctx context.Context, logger log.Logger) error { _, _, sync, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) chainConfig := fromdb.ChainConfig(db) must(sync.SetCurrentStage(stages.TxLookup)) - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() if reset { @@ -1247,8 +1338,9 @@ func stageTxLookup(db kv.RwDB, ctx context.Context, logger log.Logger) error { } func printAllStages(db kv.RoDB, ctx context.Context, logger log.Logger) error { - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() return db.View(ctx, func(tx kv.Tx) error { return printStages(tx, sn, agg) }) } @@ -1279,9 +1371,10 @@ func removeMigration(db kv.RwDB, ctx context.Context) error { var openSnapshotOnce sync.Once var _allSnapshotsSingleton *freezeblocks.RoSnapshots +var _allBorSnapshotsSingleton *freezeblocks.BorRoSnapshots var _aggSingleton *libstate.AggregatorV3 -func allSnapshots(ctx context.Context, db kv.RoDB, logger log.Logger) (*freezeblocks.RoSnapshots, *libstate.AggregatorV3) { +func allSnapshots(ctx context.Context, db kv.RoDB, logger log.Logger) (*freezeblocks.RoSnapshots, *freezeblocks.BorRoSnapshots, *libstate.AggregatorV3) { openSnapshotOnce.Do(func() { var useSnapshots bool _ = db.View(context.Background(), func(tx kv.Tx) error { @@ -1293,6 +1386,7 @@ func allSnapshots(ctx context.Context, db kv.RoDB, logger log.Logger) (*freezebl snapCfg := ethconfig.NewSnapCfg(useSnapshots, true, true) _allSnapshotsSingleton = freezeblocks.NewRoSnapshots(snapCfg, dirs.Snap, logger) + _allBorSnapshotsSingleton = freezeblocks.NewBorRoSnapshots(snapCfg, dirs.Snap, logger) var err error _aggSingleton, err = libstate.NewAggregatorV3(ctx, dirs.SnapHistory, dirs.Tmp, ethconfig.HistoryV3AggregationStep, db, logger) @@ -1309,6 +1403,10 @@ func allSnapshots(ctx context.Context, db kv.RoDB, logger log.Logger) (*freezebl panic(err) } _allSnapshotsSingleton.LogStat() + if err := _allBorSnapshotsSingleton.ReopenFolder(); err != nil { + panic(err) + } + _allBorSnapshotsSingleton.LogStat() db.View(context.Background(), func(tx kv.Tx) error { _aggSingleton.LogStats(tx, func(endTxNumMinimax uint64) uint64 { _, histBlockNumProgress, _ := rawdbv3.TxNums.FindBlockNum(tx, endTxNumMinimax) @@ -1318,7 +1416,7 @@ func allSnapshots(ctx context.Context, db kv.RoDB, logger log.Logger) (*freezebl }) } }) - return _allSnapshotsSingleton, _aggSingleton + return _allSnapshotsSingleton, _allBorSnapshotsSingleton, _aggSingleton } var openBlockReaderOnce sync.Once @@ -1327,9 +1425,9 @@ var _blockWriterSingleton *blockio.BlockWriter func blocksIO(db kv.RoDB, logger log.Logger) (services.FullBlockReader, *blockio.BlockWriter) { openBlockReaderOnce.Do(func() { - sn, _ := allSnapshots(context.Background(), db, logger) + sn, borSn, _ := allSnapshots(context.Background(), db, logger) histV3 := kvcfg.HistoryV3.FromDB(db) - _blockReaderSingleton = freezeblocks.NewBlockReader(sn) + _blockReaderSingleton = freezeblocks.NewBlockReader(sn, borSn) _blockWriterSingleton = blockio.NewBlockWriter(histV3) }) return _blockReaderSingleton, _blockWriterSingleton @@ -1407,7 +1505,8 @@ func newDomains(ctx context.Context, db kv.RwDB, stepSize uint64, mode libstate. allSn, agg := allDomains(ctx, db, stepSize, mode, trie, logger) cfg.Snapshot = allSn.Cfg() - engine := initConsensusEngine(chainConfig, cfg.Dirs.DataDir, db, logger) + blockReader, _ := blocksIO(db, logger) + engine, _ := initConsensusEngine(ctx, chainConfig, cfg.Dirs.DataDir, db, blockReader, logger) return engine, cfg, allSn, agg } @@ -1440,17 +1539,20 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig, cfg.Miner = *miningConfig } cfg.Dirs = datadir.New(datadirCli) - allSn, agg := allSnapshots(ctx, db, logger) + allSn, _, agg := allSnapshots(ctx, db, logger) cfg.Snapshot = allSn.Cfg() - engine := initConsensusEngine(chainConfig, cfg.Dirs.DataDir, db, logger) - blockReader, blockWriter := blocksIO(db, logger) - sentryControlServer, err := sentry.NewMultiClient( + engine, heimdallClient := initConsensusEngine(ctx, chainConfig, cfg.Dirs.DataDir, db, blockReader, logger) + + maxBlockBroadcastPeers := func(header *types.Header) uint { return 0 } + + sentryControlServer, err := sentry_multi_client.NewMultiClient( db, "", chainConfig, genesisBlock.Hash(), + genesisBlock.Time(), engine, 1, nil, @@ -1459,7 +1561,7 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig, blockBufferSize, false, nil, - ethconfig.Defaults.DropUselessPeers, + maxBlockBroadcastPeers, logger, ) if err != nil { @@ -1469,7 +1571,18 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig, notifications := &shards.Notifications{} blockRetire := freezeblocks.NewBlockRetire(1, dirs, blockReader, blockWriter, db, notifications.Events, logger) - stages := stages2.NewDefaultStages(context.Background(), db, p2p.Config{}, &cfg, sentryControlServer, notifications, nil, blockReader, blockRetire, agg, nil, logger) + var ( + snapDb kv.RwDB + recents *lru.ARCCache[libcommon.Hash, *bor.Snapshot] + signatures *lru.ARCCache[libcommon.Hash, libcommon.Address] + ) + if bor, ok := engine.(*bor.Bor); ok { + snapDb = bor.DB + recents = bor.Recents + signatures = bor.Signatures + } + stages := stages2.NewDefaultStages(context.Background(), db, snapDb, p2p.Config{}, &cfg, sentryControlServer, notifications, nil, blockReader, blockRetire, agg, nil, nil, + heimdallClient, recents, signatures, logger) sync := stagedsync.New(stages, stagedsync.DefaultUnwindOrder, stagedsync.DefaultPruneOrder, logger) miner := stagedsync.NewMiningState(&cfg.Miner) @@ -1482,6 +1595,7 @@ func newSync(ctx context.Context, db kv.RwDB, miningConfig *params.MiningConfig, miningSync := stagedsync.New( stagedsync.MiningStages(ctx, stagedsync.StageMiningCreateBlockCfg(db, miner, *chainConfig, engine, nil, nil, dirs.Tmp, blockReader), + stagedsync.StageBorHeimdallCfg(db, snapDb, miner, *chainConfig, heimdallClient, blockReader, nil, nil, recents, signatures), stagedsync.StageMiningExecCfg(db, miner, events, *chainConfig, engine, &vm.Config{}, dirs.Tmp, nil, 0, nil, nil, blockReader), stagedsync.StageHashStateCfg(db, dirs, historyV3), stagedsync.StageTrieCfg(db, false, true, false, dirs.Tmp, blockReader, nil, historyV3, agg), @@ -1531,20 +1645,27 @@ func overrideStorageMode(db kv.RwDB, logger log.Logger) error { }) } -func initConsensusEngine(cc *chain2.Config, dir string, db kv.RwDB, logger log.Logger) (engine consensus.Engine) { +func initConsensusEngine(ctx context.Context, cc *chain2.Config, dir string, db kv.RwDB, blockReader services.FullBlockReader, logger log.Logger) (engine consensus.Engine, heimdallClient heimdall.IHeimdallClient) { config := ethconfig.Defaults var consensusConfig interface{} - if cc.Clique != nil { consensusConfig = params.CliqueSnapshot } else if cc.Aura != nil { consensusConfig = &config.Aura } else if cc.Bor != nil { consensusConfig = &config.Bor + config.HeimdallURL = HeimdallURL + if !config.WithoutHeimdall { + if config.HeimdallgRPCAddress != "" { + heimdallClient = heimdallgrpc.NewHeimdallGRPCClient(config.HeimdallgRPCAddress, logger) + } else { + heimdallClient = heimdall.NewHeimdallClient(config.HeimdallURL, logger) + } + } } else { consensusConfig = &config.Ethash } - return ethconsensusconfig.CreateConsensusEngine(&nodecfg.Config{Dirs: datadir.New(dir)}, cc, consensusConfig, config.Miner.Notify, config.Miner.Noverify, - HeimdallgRPCAddress, HeimdallURL, config.WithoutHeimdall, db.ReadOnly(), logger) + return ethconsensusconfig.CreateConsensusEngine(ctx, &nodecfg.Config{Dirs: datadir.New(dir)}, cc, consensusConfig, config.Miner.Notify, config.Miner.Noverify, + heimdallClient, config.WithoutHeimdall, blockReader, db.ReadOnly(), logger), heimdallClient } diff --git a/cmd/integration/commands/state_domains.go b/cmd/integration/commands/state_domains.go index 6c83dd87cc5..fabde89f2f4 100644 --- a/cmd/integration/commands/state_domains.go +++ b/cmd/integration/commands/state_domains.go @@ -1,69 +1,39 @@ package commands import ( - "bytes" "context" "encoding/hex" "errors" "fmt" - "os" + "github.com/ledgerwatch/erigon-lib/metrics" "path/filepath" "runtime" "strings" "time" - "github.com/VictoriaMetrics/metrics" "github.com/holiman/uint256" "github.com/ledgerwatch/log/v3" "github.com/spf13/cobra" - chain2 "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/commitment" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dbg" - "github.com/ledgerwatch/erigon-lib/common/fixedgas" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/kv" kv2 "github.com/ledgerwatch/erigon-lib/kv/mdbx" libstate "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb" - "github.com/ledgerwatch/erigon/cmd/state/exec3" "github.com/ledgerwatch/erigon/cmd/utils" - "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core" - "github.com/ledgerwatch/erigon/core/state" - "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/types/accounts" - "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/node/nodecfg" erigoncli "github.com/ledgerwatch/erigon/turbo/cli" "github.com/ledgerwatch/erigon/turbo/debug" - "github.com/ledgerwatch/erigon/turbo/services" ) func init() { - withConfig(stateDomains) - withDataDir(stateDomains) - withUnwind(stateDomains) - withUnwindEvery(stateDomains) - withBlock(stateDomains) - withIntegrityChecks(stateDomains) - withChain(stateDomains) - withHeimdall(stateDomains) - withWorkers(stateDomains) - withStartTx(stateDomains) - withCommitment(stateDomains) - withTraceFromTx(stateDomains) - - stateDomains.Flags().Uint64Var(&stepSize, "step-size", ethconfig.HistoryV3AggregationStep, "size of aggregation step, tx") - stateDomains.Flags().Uint64Var(&lastStep, "last-step", 0, "step of last aggregation, step=txnum/step-size, unsigned integers only") - - rootCmd.AddCommand(stateDomains) - withDataDir(readDomains) withChain(readDomains) withHeimdall(readDomains) @@ -129,7 +99,7 @@ var readDomains = &cobra.Command{ } defer chainDb.Close() - stateDb, err := kv2.NewMDBX(log.New()).Path(filepath.Join(dirs.DataDir, "statedb")).WriteMap().Open() + stateDb, err := kv2.NewMDBX(log.New()).Path(filepath.Join(dirs.DataDir, "statedb")).WriteMap().Open(ctx) if err != nil { return } @@ -216,420 +186,6 @@ func requestDomains(chainDb, stateDb kv.RwDB, ctx context.Context, readDomain st return nil } -// write command to just seek and query state by addr and domain from state db and files (if any) -var stateDomains = &cobra.Command{ - Use: "state_domains", - Short: `Run block execution and commitment with Domains.`, - Example: "go run ./cmd/integration state_domains --datadir=... --verbosity=3 --unwind=100 --unwind.every=100000 --block=2000000", - Run: func(cmd *cobra.Command, args []string) { - logger := debug.SetupCobra(cmd, "integration") - ctx, _ := libcommon.RootContext() - cfg := &nodecfg.DefaultConfig - utils.SetNodeConfigCobra(cmd, cfg) - ethConfig := ðconfig.Defaults - ethConfig.Genesis = core.GenesisBlockByChainName(chain) - erigoncli.ApplyFlagsForEthConfigCobra(cmd.Flags(), ethConfig) - - dirs := datadir.New(datadirCli) - chainDb, err := openDB(dbCfg(kv.ChainDB, dirs.Chaindata), true, logger) - if err != nil { - logger.Error("Opening DB", "error", err) - return - } - defer chainDb.Close() - - //stateDB := kv.Label(6) - //stateOpts := dbCfg(stateDB, filepath.Join(dirs.DataDir, "statedb")).WriteMap() - //stateOpts.MapSize(1 * datasize.TB).WriteMap().DirtySpace(dirtySpaceThreshold) - //stateDb := openDB(stateOpts, true) - //defer stateDb.Close() - - stateDb, err := kv2.NewMDBX(log.New()).Path(filepath.Join(dirs.DataDir, "statedb")).WriteMap().Open() - if err != nil { - return - } - defer stateDb.Close() - - if err := loopProcessDomains(chainDb, stateDb, ctx, logger); err != nil { - if !errors.Is(err, context.Canceled) { - logger.Error(err.Error()) - } - return - } - }, -} - -func loopProcessDomains(chainDb, stateDb kv.RwDB, ctx context.Context, logger log.Logger) error { - trieVariant := commitment.ParseTrieVariant(commitmentTrie) - if trieVariant != commitment.VariantHexPatriciaTrie { - blockRootMismatchExpected = true - } - mode := libstate.ParseCommitmentMode(commitmentMode) - - engine, _, _, agg := newDomains(ctx, chainDb, stepSize, mode, trieVariant, logger) - defer agg.Close() - - histTx, err := chainDb.BeginRo(ctx) - must(err) - defer histTx.Rollback() - - stateTx, err := stateDb.BeginRw(ctx) - must(err) - defer stateTx.Rollback() - - agg.SetTx(stateTx) - defer agg.StartWrites().FinishWrites() - - latestBlock, latestTx, err := agg.SeekCommitment() - if err != nil && startTxNum != 0 { - return fmt.Errorf("failed to seek commitment to tx %d: %w", startTxNum, err) - } - if latestTx < startTxNum { - return fmt.Errorf("latest available tx to start is %d and its less than start tx %d", latestTx, startTxNum) - } - if latestTx > 0 { - logger.Info("aggregator files opened", "txn", latestTx, "block", latestBlock) - } - - aggWriter, aggReader := WrapAggregator(agg, stateTx) - br, _ := blocksIO(chainDb, logger) - proc := blockProcessor{ - chainConfig: fromdb.ChainConfig(chainDb), - vmConfig: vm.Config{}, - engine: engine, - reader: aggReader, - writer: aggWriter, - blockReader: br, - stateTx: stateTx, - stateDb: stateDb, - blockNum: latestBlock, - txNum: latestTx, - startTxNum: latestTx, - histTx: histTx, - agg: agg, - logger: log.New(), - stat: stat4{startedAt: time.Now()}, - } - if proc.txNum > 0 { - proc.txNum-- - } - if proc.blockNum == 0 { - proc.txNum = 2 - } - - mergedRoots := agg.AggregatedRoots() - go proc.PrintStatsLoop(ctx, 30*time.Second) - - if proc.startTxNum == 0 { - genesis := core.GenesisBlockByChainName(chain) - if err := proc.ApplyGenesis(genesis); err != nil { - return err - } - } - - for { - // Check for interrupts - select { - case <-ctx.Done(): - logger.Info(fmt.Sprintf("interrupted, please wait for commitment and cleanup, next time start with --tx %d", proc.txNum)) - rh, err := proc.agg.ComputeCommitment(true, false) - if err != nil { - logger.Error("failed to compute commitment", "err", err) - } - logger.Info("commitment: state root computed", "root", hex.EncodeToString(rh)) - if err := agg.Flush(ctx); err != nil { - logger.Error("failed to flush aggregator", "err", err) - } - os.Exit(0) - case <-mergedRoots: // notified with rootHash of latest aggregation - if err := proc.commit(ctx); err != nil { - logger.Error("chainDb commit on merge", "err", err) - } - default: - } - - if lastStep > 0 && proc.txNum/stepSize >= lastStep { - logger.Info("last step reached") - // Commit transaction only when interrupted or just before computing commitment (so it can be re-done) - break - } - - err := proc.ProcessNext(ctx) - if err != nil { - return err - } - } - return nil -} - -type blockProcessor struct { - engine consensus.Engine - agg *libstate.Aggregator - blockReader services.FullBlockReader - writer *WriterWrapper4 - reader *ReaderWrapper4 - stateDb kv.RwDB - stateTx kv.RwTx - histTx kv.Tx - blockNum uint64 - startTxNum uint64 - txNum uint64 - stat stat4 - trace bool - logger log.Logger - vmConfig vm.Config - chainConfig *chain2.Config -} - -func (b *blockProcessor) getHeader(hash libcommon.Hash, number uint64) *types.Header { - h, err := b.blockReader.Header(context.Background(), b.histTx, hash, number) - if err != nil { - panic(err) - } - return h -} - -func (b *blockProcessor) commit(ctx context.Context) error { - if b.stateDb == nil || b.stateTx == nil { - return fmt.Errorf("commit failed due to invalid chainDb/rwTx") - } - - s := time.Now() - defer mxCommitTook.UpdateDuration(s) - - var spaceDirty uint64 - var err error - if spaceDirty, _, err = b.stateTx.(*kv2.MdbxTx).SpaceDirty(); err != nil { - return fmt.Errorf("retrieving spaceDirty: %w", err) - } - if spaceDirty >= dirtySpaceThreshold { - b.logger.Info("Initiated tx commit", "block", b.blockNum, "space dirty", libcommon.ByteCount(spaceDirty)) - } - - b.logger.Info("database commitment", "block", b.blockNum, "txNum", b.txNum, "uptime", time.Since(b.stat.startedAt)) - if err := b.agg.Flush(ctx); err != nil { - return err - } - if err = b.stateTx.Commit(); err != nil { - return err - } - - if b.stateTx, err = b.stateDb.BeginRw(ctx); err != nil { - return err - } - - b.agg.SetTx(b.stateTx) - b.reader.SetTx(b.stateTx, b.agg.MakeContext()) - - return nil -} - -func (b *blockProcessor) PrintStatsLoop(ctx context.Context, interval time.Duration) { - ticker := time.NewTicker(interval) - defer ticker.Stop() - - for { - select { - case <-ctx.Done(): - return - case <-ticker.C: - b.stat.delta(b.blockNum, b.txNum).print(b.agg.Stats(), b.logger) - } - } -} - -func (b *blockProcessor) ApplyGenesis(genesis *types.Genesis) error { - b.logger.Info("apply genesis", "chain_id", genesis.Config.ChainID) - genBlock, genesisIbs, err := core.GenesisToBlock(genesis, "") - if err != nil { - return err - } - b.agg.SetTxNum(0) - if err = genesisIbs.CommitBlock(&chain2.Rules{}, b.writer); err != nil { - return fmt.Errorf("cannot write state: %w", err) - } - - blockRootHash, err := b.agg.ComputeCommitment(true, false) - if err != nil { - return err - } - if err = b.agg.FinishTx(); err != nil { - return err - } - - genesisRootHash := genBlock.Root() - if !blockRootMismatchExpected && !bytes.Equal(blockRootHash, genesisRootHash[:]) { - return fmt.Errorf("genesis root hash mismatch: expected %x got %x", genesisRootHash, blockRootHash) - } - return nil -} - -func (b *blockProcessor) ProcessNext(ctx context.Context) error { - b.blockNum++ - b.trace = traceFromTx > 0 && b.txNum == traceFromTx - - blockHash, err := b.blockReader.CanonicalHash(ctx, b.histTx, b.blockNum) - if err != nil { - return err - } - - block, _, err := b.blockReader.BlockWithSenders(ctx, b.histTx, blockHash, b.blockNum) - if err != nil { - return err - } - if block == nil { - b.logger.Info("history: block is nil", "block", b.blockNum) - return fmt.Errorf("block %d is nil", b.blockNum) - } - - b.agg.SetTx(b.stateTx) - b.agg.SetTxNum(b.txNum) - b.agg.SetBlockNum(b.blockNum) - - if _, err = b.applyBlock(ctx, block); err != nil { - b.logger.Error("processing error", "block", b.blockNum, "err", err) - return fmt.Errorf("processing block %d: %w", b.blockNum, err) - } - return err -} - -func (b *blockProcessor) applyBlock( - ctx context.Context, - block *types.Block, -) (types.Receipts, error) { - defer mxBlockExecutionTimer.UpdateDuration(time.Now()) - - header := block.Header() - b.vmConfig.Debug = true - gp := new(core.GasPool).AddGas(block.GasLimit()).AddBlobGas(fixedgas.MaxBlobGasPerBlock) - usedGas := new(uint64) - usedBlobGas := new(uint64) - var receipts types.Receipts - rules := b.chainConfig.Rules(block.NumberU64(), block.Time()) - - b.blockNum = block.NumberU64() - b.writer.w.SetTxNum(b.txNum) - - daoFork := b.txNum >= b.startTxNum && b.chainConfig.DAOForkBlock != nil && b.chainConfig.DAOForkBlock.Cmp(block.Number()) == 0 - if daoFork { - ibs := state.New(b.reader) - // TODO Actually add tracing to the DAO related accounts - misc.ApplyDAOHardFork(ibs) - if err := ibs.FinalizeTx(rules, b.writer); err != nil { - return nil, err - } - if err := b.writer.w.FinishTx(); err != nil { - return nil, fmt.Errorf("finish daoFork failed: %w", err) - } - } - - b.txNum++ // Pre-block transaction - b.writer.w.SetTxNum(b.txNum) - if err := b.writer.w.FinishTx(); err != nil { - return nil, fmt.Errorf("finish pre-block tx %d (block %d) has failed: %w", b.txNum, block.NumberU64(), err) - } - - getHashFn := core.GetHashFn(header, b.getHeader) - for i, tx := range block.Transactions() { - if b.txNum >= b.startTxNum { - ibs := state.New(b.reader) - ibs.SetTxContext(tx.Hash(), block.Hash(), i) - ct := exec3.NewCallTracer() - b.vmConfig.Tracer = ct - receipt, _, err := core.ApplyTransaction(b.chainConfig, getHashFn, b.engine, nil, gp, ibs, b.writer, header, tx, usedGas, usedBlobGas, b.vmConfig) - if err != nil { - return nil, fmt.Errorf("could not apply tx %d [%x] failed: %w", i, tx.Hash(), err) - } - for from := range ct.Froms() { - if err := b.writer.w.AddTraceFrom(from[:]); err != nil { - return nil, err - } - } - for to := range ct.Tos() { - if err := b.writer.w.AddTraceTo(to[:]); err != nil { - return nil, err - } - } - receipts = append(receipts, receipt) - for _, log := range receipt.Logs { - if err = b.writer.w.AddLogAddr(log.Address[:]); err != nil { - return nil, fmt.Errorf("adding event log for addr %x: %w", log.Address, err) - } - for _, topic := range log.Topics { - if err = b.writer.w.AddLogTopic(topic[:]); err != nil { - return nil, fmt.Errorf("adding event log for topic %x: %w", topic, err) - } - } - } - if err = b.writer.w.FinishTx(); err != nil { - return nil, fmt.Errorf("finish tx %d [%x] failed: %w", i, tx.Hash(), err) - } - if b.trace { - fmt.Printf("FinishTx called for blockNum=%d, txIndex=%d, txNum=%d txHash=[%x]\n", b.blockNum, i, b.txNum, tx.Hash()) - } - } - b.txNum++ - b.writer.w.SetTxNum(b.txNum) - } - - if b.txNum >= b.startTxNum { - if b.chainConfig.IsByzantium(block.NumberU64()) { - receiptSha := types.DeriveSha(receipts) - if receiptSha != block.ReceiptHash() { - fmt.Printf("mismatched receipt headers for block %d\n", block.NumberU64()) - for j, receipt := range receipts { - fmt.Printf("tx %d, used gas: %d\n", j, receipt.GasUsed) - } - } - } - ibs := state.New(b.reader) - if err := b.writer.w.AddTraceTo(block.Coinbase().Bytes()); err != nil { - return nil, fmt.Errorf("adding coinbase trace: %w", err) - } - for _, uncle := range block.Uncles() { - if err := b.writer.w.AddTraceTo(uncle.Coinbase.Bytes()); err != nil { - return nil, fmt.Errorf("adding uncle trace: %w", err) - } - } - - // Finalize the block, applying any consensus engine specific extras (e.g. block rewards) - if _, _, err := b.engine.Finalize(b.chainConfig, header, ibs, block.Transactions(), block.Uncles(), receipts, block.Withdrawals(), nil, nil, b.logger); err != nil { - return nil, fmt.Errorf("finalize of block %d failed: %w", block.NumberU64(), err) - } - - if err := ibs.CommitBlock(rules, b.writer); err != nil { - return nil, fmt.Errorf("committing block %d failed: %w", block.NumberU64(), err) - } - - if err := b.writer.w.FinishTx(); err != nil { - return nil, fmt.Errorf("failed to finish tx: %w", err) - } - if b.trace { - fmt.Printf("FinishTx called for %d block %d\n", b.txNum, block.NumberU64()) - } - } - - b.txNum++ // Post-block transaction - b.writer.w.SetTxNum(b.txNum) - if b.txNum >= b.startTxNum { - if block.Number().Uint64()%uint64(commitmentFreq) == 0 { - rootHash, err := b.writer.w.ComputeCommitment(true, b.trace) - if err != nil { - return nil, err - } - if !blockRootMismatchExpected && !bytes.Equal(rootHash, header.Root[:]) { - return nil, fmt.Errorf("invalid root hash for block %d: expected %x got %x", block.NumberU64(), header.Root, rootHash) - } - } - - if err := b.writer.w.FinishTx(); err != nil { - return nil, fmt.Errorf("finish after-block tx %d (block %d) has failed: %w", b.txNum, block.NumberU64(), err) - } - } - - return receipts, nil -} - // Implements StateReader and StateWriter type ReaderWrapper4 struct { roTx kv.Tx @@ -640,10 +196,6 @@ type WriterWrapper4 struct { w *libstate.Aggregator } -func WrapAggregator(agg *libstate.Aggregator, roTx kv.Tx) (*WriterWrapper4, *ReaderWrapper4) { - return &WriterWrapper4{w: agg}, &ReaderWrapper4{ac: agg.MakeContext(), roTx: roTx} -} - func (rw *ReaderWrapper4) SetTx(roTx kv.Tx, ctx *libstate.AggregatorContext) { rw.roTx = roTx rw.ac.Close() diff --git a/cmd/integration/commands/state_stages.go b/cmd/integration/commands/state_stages.go index 73990cd2a4b..3401cf669de 100644 --- a/cmd/integration/commands/state_stages.go +++ b/cmd/integration/commands/state_stages.go @@ -6,6 +6,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "os" "sort" "time" @@ -24,7 +25,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb" "github.com/ledgerwatch/erigon/cmd/utils" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/debugprint" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" @@ -169,8 +169,13 @@ func init() { func syncBySmallSteps(db kv.RwDB, miningConfig params.MiningConfig, ctx context.Context, logger1 log.Logger) error { dirs := datadir.New(datadirCli) - sn, agg := allSnapshots(ctx, db, logger1) + if err := datadir.ApplyMigrations(dirs); err != nil { + return err + } + + sn, borSn, agg := allSnapshots(ctx, db, logger1) defer sn.Close() + defer borSn.Close() defer agg.Close() engine, vmConfig, stateStages, miningStages, miner := newSync(ctx, db, &miningConfig, logger1) chainConfig, historyV3, pm := fromdb.ChainConfig(db), kvcfg.HistoryV3.FromDB(db), fromdb.PruneMode(db) @@ -217,7 +222,7 @@ func syncBySmallSteps(db kv.RwDB, miningConfig params.MiningConfig, ctx context. br, _ := blocksIO(db, logger1) execCfg := stagedsync.StageExecuteBlocksCfg(db, pm, batchSize, changeSetHook, chainConfig, engine, vmConfig, changesAcc, false, false, historyV3, dirs, - br, nil, genesis, syncCfg, agg) + br, nil, genesis, syncCfg, agg, nil) execUntilFunc := func(execToBlock uint64) func(firstCycle bool, badBlockUnwind bool, stageState *stagedsync.StageState, unwinder stagedsync.Unwinder, tx kv.RwTx, logger log.Logger) error { return func(firstCycle bool, badBlockUnwind bool, s *stagedsync.StageState, unwinder stagedsync.Unwinder, tx kv.RwTx, logger log.Logger) error { @@ -385,7 +390,7 @@ func syncBySmallSteps(db kv.RwDB, miningConfig params.MiningConfig, ctx context. } to := execAtBlock - unwind - stateStages.UnwindTo(to, common2.Hash{}) + stateStages.UnwindTo(to, stagedsync.StagedUnwind) if err := tx.Commit(); err != nil { return err @@ -445,8 +450,9 @@ func checkMinedBlock(b1, b2 *types.Block, chainConfig *chain2.Config) { } func loopIh(db kv.RwDB, ctx context.Context, unwind uint64, logger log.Logger) error { - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() _, _, sync, _, _ := newSync(ctx, db, nil /* miningConfig */, logger) dirs := datadir.New(datadirCli) @@ -518,8 +524,9 @@ func loopIh(db kv.RwDB, ctx context.Context, unwind uint64, logger log.Logger) e func loopExec(db kv.RwDB, ctx context.Context, unwind uint64, logger log.Logger) error { chainConfig := fromdb.ChainConfig(db) dirs, pm := datadir.New(datadirCli), fromdb.PruneMode(db) - sn, agg := allSnapshots(ctx, db, logger) + sn, borSn, agg := allSnapshots(ctx, db, logger) defer sn.Close() + defer borSn.Close() defer agg.Close() engine, vmConfig, sync, _, _ := newSync(ctx, db, nil, logger) @@ -553,7 +560,7 @@ func loopExec(db kv.RwDB, ctx context.Context, unwind uint64, logger log.Logger) br, _ := blocksIO(db, logger) cfg := stagedsync.StageExecuteBlocksCfg(db, pm, batchSize, nil, chainConfig, engine, vmConfig, nil, /*stateStream=*/ false, - /*badBlockHalt=*/ false, historyV3, dirs, br, nil, genesis, syncCfg, agg) + /*badBlockHalt=*/ false, historyV3, dirs, br, nil, genesis, syncCfg, agg, nil) // set block limit of execute stage sync.MockExecFunc(stages.Execution, func(firstCycle bool, badBlockUnwind bool, stageState *stagedsync.StageState, unwinder stagedsync.Unwinder, tx kv.RwTx, logger log.Logger) error { diff --git a/cmd/observer/database/db_sqlite.go b/cmd/observer/database/db_sqlite.go index ba056fbe8c1..d8065f992ed 100644 --- a/cmd/observer/database/db_sqlite.go +++ b/cmd/observer/database/db_sqlite.go @@ -5,11 +5,11 @@ import ( "database/sql" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common" "net" "strings" "time" - "github.com/ledgerwatch/erigon/cmd/utils" _ "modernc.org/sqlite" ) @@ -709,7 +709,7 @@ func (db *DBSQLite) FindNeighborBucketKeys(ctx context.Context, id NodeID) ([]st if !keysStr.Valid { return nil, nil } - return utils.SplitAndTrim(keysStr.String), nil + return common.CliString2Array(keysStr.String), nil } func (db *DBSQLite) UpdateSentryCandidatesLastEventTime(ctx context.Context, value time.Time) error { diff --git a/cmd/observer/main.go b/cmd/observer/main.go index 12f613e1306..1e94135982a 100644 --- a/cmd/observer/main.go +++ b/cmd/observer/main.go @@ -16,7 +16,7 @@ import ( ) func mainWithFlags(ctx context.Context, flags observer.CommandFlags, logger log.Logger) error { - server, err := observer.NewServer(flags, logger) + server, err := observer.NewServer(ctx, flags, logger) if err != nil { return err } diff --git a/cmd/observer/observer/crawler.go b/cmd/observer/observer/crawler.go index e79b756a578..2794d0a6944 100644 --- a/cmd/observer/observer/crawler.go +++ b/cmd/observer/observer/crawler.go @@ -76,7 +76,11 @@ func NewCrawler( return nil, fmt.Errorf("unknown chain %s", chain) } - forkFilter := forkid.NewStaticFilter(chainConfig, *genesisHash) + // TODO(yperbasis) This might be a problem for chains that have a time-based fork (Shanghai, Cancun, etc) + // in genesis already, e.g. Holesky. + genesisTime := uint64(0) + + forkFilter := forkid.NewStaticFilter(chainConfig, *genesisHash, genesisTime) diplomacy := NewDiplomacy( database.NewDBRetrier(db, logger), diff --git a/cmd/observer/observer/handshake.go b/cmd/observer/observer/handshake.go index 041f8b42abe..c975e5086c0 100644 --- a/cmd/observer/observer/handshake.go +++ b/cmd/observer/observer/handshake.go @@ -1,12 +1,12 @@ package observer import ( + "bytes" "context" "crypto/ecdsa" "fmt" "math/big" "net" - "strings" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -215,15 +215,11 @@ func readMessage(conn *rlpx.Conn, expectedMessageID uint64, decodeError Handshak return readMessage(conn, expectedMessageID, decodeError, message) } if messageID == RLPxMessageIDDisconnect { - var reason [1]p2p.DiscReason - err = rlp.DecodeBytes(data, &reason) - if (err != nil) && strings.Contains(err.Error(), "rlp: expected input list") { - err = rlp.DecodeBytes(data, &reason[0]) - } + reason, err := p2p.DisconnectMessagePayloadDecode(bytes.NewBuffer(data)) if err != nil { return NewHandshakeError(HandshakeErrorIDDisconnectDecode, err, 0) } - return NewHandshakeError(HandshakeErrorIDDisconnect, reason[0], uint64(reason[0])) + return NewHandshakeError(HandshakeErrorIDDisconnect, reason, uint64(reason)) } if messageID != expectedMessageID { return NewHandshakeError(HandshakeErrorIDUnexpectedMessage, nil, messageID) diff --git a/cmd/observer/observer/server.go b/cmd/observer/observer/server.go index b10879a89ce..99c2cb4bbc2 100644 --- a/cmd/observer/observer/server.go +++ b/cmd/observer/observer/server.go @@ -33,7 +33,7 @@ type Server struct { logger log.Logger } -func NewServer(flags CommandFlags, logger log.Logger) (*Server, error) { +func NewServer(ctx context.Context, flags CommandFlags, logger log.Logger) (*Server, error) { nodeDBPath := filepath.Join(flags.DataDir, "nodes", "eth66") nodeKeyConfig := p2p.NodeKeyConfig{} @@ -42,7 +42,7 @@ func NewServer(flags CommandFlags, logger log.Logger) (*Server, error) { return nil, err } - localNode, err := makeLocalNode(nodeDBPath, privateKey, flags.Chain, logger) + localNode, err := makeLocalNode(ctx, nodeDBPath, privateKey, flags.Chain, logger) if err != nil { return nil, err } @@ -84,8 +84,8 @@ func NewServer(flags CommandFlags, logger log.Logger) (*Server, error) { return &instance, nil } -func makeLocalNode(nodeDBPath string, privateKey *ecdsa.PrivateKey, chain string, logger log.Logger) (*enode.LocalNode, error) { - db, err := enode.OpenDB(nodeDBPath, "") +func makeLocalNode(ctx context.Context, nodeDBPath string, privateKey *ecdsa.PrivateKey, chain string, logger log.Logger) (*enode.LocalNode, error) { + db, err := enode.OpenDB(ctx, nodeDBPath, "") if err != nil { return nil, err } @@ -108,7 +108,11 @@ func makeForksENREntry(chain string) (enr.Entry, error) { return nil, fmt.Errorf("unknown chain %s", chain) } - heightForks, timeForks := forkid.GatherForks(chainConfig) + // TODO(yperbasis) This might be a problem for chains that have a time-based fork (Shanghai, Cancun, etc) + // in genesis already, e.g. Holesky. + genesisTime := uint64(0) + + heightForks, timeForks := forkid.GatherForks(chainConfig, genesisTime) return eth.CurrentENREntryFromForks(heightForks, timeForks, *genesisHash, 0, 0), nil } @@ -179,5 +183,5 @@ func (server *Server) Listen(ctx context.Context) (*discover.UDPv4, error) { server.logger.Debug("Discovery UDP listener is up", "addr", realAddr) - return discover.ListenV4(ctx, conn, server.localNode, server.discConfig) + return discover.ListenV4(ctx, "any", conn, server.localNode, server.discConfig) } diff --git a/cmd/p2psim/main.go b/cmd/p2psim/main.go index 6eb48e923b8..3f567847bbd 100644 --- a/cmd/p2psim/main.go +++ b/cmd/p2psim/main.go @@ -39,12 +39,12 @@ import ( "context" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common" "io" "os" "strings" "text/tabwriter" - "github.com/ledgerwatch/erigon/cmd/utils" "github.com/ledgerwatch/erigon/turbo/logging" "github.com/urfave/cli/v2" @@ -292,7 +292,7 @@ func createNode(ctx *cli.Context) error { config.PrivateKey = privKey } if services := ctx.String("services"); services != "" { - config.Lifecycles = utils.SplitAndTrim(services) + config.Lifecycles = common.CliString2Array(services) } node, err := client.CreateNode(config) if err != nil { diff --git a/cmd/pics/state.go b/cmd/pics/state.go index 7c999e4f878..1c387162d61 100644 --- a/cmd/pics/state.go +++ b/cmd/pics/state.go @@ -430,13 +430,13 @@ func initialState1() error { // BLOCKS for i := 0; i < chain.Length(); i++ { - if err = m2.InsertChain(chain.Slice(i, i+1), nil); err != nil { + if err = m2.InsertChain(chain.Slice(i, i+1)); err != nil { return err } if err = stateDatabaseComparison(m.DB, m2.DB, i+1); err != nil { return err } - if err = m.InsertChain(chain.Slice(i, i+1), nil); err != nil { + if err = m.InsertChain(chain.Slice(i, i+1)); err != nil { return err } } diff --git a/cmd/prometheus/Readme.md b/cmd/prometheus/Readme.md index 853eb91b2a8..d6272e4a89d 100644 --- a/cmd/prometheus/Readme.md +++ b/cmd/prometheus/Readme.md @@ -13,7 +13,7 @@ Env variables: - `ERIGON_GRAFANA_CONFIG` path to custom `grafana.ini file`. Default is: `./cmd/prometheus/grafana.ini` To add custom Erigon host: copy `./cmd/prometheus/prometheus.yml`, modify, pass new location by: -`ERIGON_PROMETHEUS_CONFIG=/new/location/prometheus.yml docker-compose up prometheus grafana` +`ERIGON_PROMETHEUS_CONFIG=/new/location/prometheus.yml docker compose up prometheus grafana` ## For developers diff --git a/cmd/prometheus/dashboards/erigon.json b/cmd/prometheus/dashboards/erigon.json index 2c37e5a02b3..ac97e232f96 100644 --- a/cmd/prometheus/dashboards/erigon.json +++ b/cmd/prometheus/dashboards/erigon.json @@ -24,11 +24,12 @@ "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, - "id": 1, + "id": 2, "links": [], "liveNow": false, "panels": [ { + "collapsed": false, "datasource": { "type": "prometheus" }, @@ -38,7 +39,8 @@ "x": 0, "y": 0 }, - "id": 171, + "id": 4, + "panels": [], "targets": [ { "datasource": { @@ -47,7 +49,7 @@ "refId": "A" } ], - "title": "Blocks execution", + "title": "Blockchain", "type": "row" }, { @@ -73,17 +75,15 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", - "lineStyle": { - "fill": "solid" - }, "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", - "spanNulls": false, + "spanNulls": true, "stacking": { "group": "A", "mode": "none" @@ -92,7 +92,6 @@ "mode": "off" } }, - "decimals": 1, "mappings": [], "thresholds": { "mode": "absolute", @@ -112,40 +111,55 @@ "overrides": [] }, "gridPos": { - "h": 10, - "w": 8, + "h": 11, + "w": 5, "x": 0, "y": 1 }, - "id": 196, + "id": 110, + "links": [], "options": { "legend": { "calcs": [ "lastNotNull" ], - "displayMode": "list", + "displayMode": "table", "placement": "bottom", "showLegend": true }, "tooltip": { - "mode": "multi", + "mode": "single", "sort": "none" } }, + "pluginVersion": "8.0.6", "targets": [ { "datasource": { "type": "prometheus" }, "editorMode": "code", - "expr": "sync{instance=~\"$instance\"}", - "instant": false, - "legendFormat": "{{ stage }}: {{instance}}", + "expr": "sync{instance=~\"$instance\",stage=\"headers\"}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "header: {{instance}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "chain_head_block{instance=~\"$instance\"}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "block: {{instance}}", + "refId": "C" } ], - "title": "Sync Stages progress", + "title": "Chain head", "type": "timeseries" }, { @@ -164,13 +178,14 @@ "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 10, + "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -201,24 +216,24 @@ } ] }, - "unit": "ops" + "unit": "short" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 8, - "x": 8, + "h": 11, + "w": 5, + "x": 5, "y": 1 }, - "id": 158, + "id": 116, "links": [], "options": { "legend": { "calcs": [ "mean" ], - "displayMode": "list", + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -234,17 +249,41 @@ "type": "prometheus" }, "editorMode": "code", - "exemplar": true, - "expr": "rate(sync{instance=~\"$instance\"}[$rate_interval])", + "expr": "txpool_pending{instance=~\"$instance\"}", "format": "time_series", "interval": "", "intervalFactor": 1, - "legendFormat": "{{ stage }}: {{instance}}", + "legendFormat": "executable: {{instance}}", "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "txpool_basefee{instance=~\"$instance\"}", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "basefee: {{instance}}", + "range": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "txpool_queued{instance=~\"$instance\"}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "gapped: {{instance}}", + "refId": "B" } ], - "title": "Sync Stages progress rate", + "title": "Transaction pool", "type": "timeseries" }, { @@ -263,13 +302,14 @@ "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", - "fillOpacity": 10, + "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -300,22 +340,23 @@ } ] }, - "unit": "ops" + "unit": "percent" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 8, - "x": 16, + "h": 11, + "w": 7, + "x": 10, "y": 1 }, - "id": 195, + "id": 106, "links": [], "options": { "legend": { "calcs": [ - "mean" + "mean", + "lastNotNull" ], "displayMode": "list", "placement": "bottom", @@ -334,22 +375,23 @@ }, "editorMode": "code", "exemplar": true, - "expr": "rate(exec_txs_done{instance=~\"$instance\"}[$rate_interval])", + "expr": "increase(process_cpu_seconds_total{instance=~\"$instance\"}[1m])", "format": "time_series", "interval": "", "intervalFactor": 1, - "legendFormat": "txs apply: {{instance}}", + "legendFormat": "__auto", "range": true, "refId": "A" } ], - "title": "Exec v3: txs/s ", + "title": "CPU", "type": "timeseries" }, { "datasource": { "type": "prometheus" }, + "description": "", "fieldConfig": { "defaults": { "color": { @@ -369,6 +411,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -399,17 +442,17 @@ } ] }, - "unit": "s" + "unit": "decbytes" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 8, - "x": 8, - "y": 6 + "h": 11, + "w": 7, + "x": 17, + "y": 1 }, - "id": 112, + "id": 154, "links": [], "options": { "legend": { @@ -417,7 +460,7 @@ "mean", "lastNotNull" ], - "displayMode": "list", + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -432,16 +475,94 @@ "datasource": { "type": "prometheus" }, + "editorMode": "code", "exemplar": true, - "expr": "chain_execution_seconds{quantile=\"$quantile\",instance=~\"$instance\"}", + "expr": "go_memstats_stack_sys_bytes{instance=~\"$instance\"}", "format": "time_series", + "hide": true, "interval": "", "intervalFactor": 1, - "legendFormat": "execution: {{instance}}", + "legendFormat": "stack_sys: {{ instance }}", + "range": true, "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_sys_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "max: {{ instance }}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_stack_inuse_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "stack_inuse: {{ instance }}", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_mspan_sys_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "mspan_sys: {{ instance }}", + "range": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_mcache_sys_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": true, + "interval": "", + "intervalFactor": 1, + "legendFormat": "mcache_sys: {{ instance }}", + "range": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_heap_alloc_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "current: {{ instance }}", + "range": true, + "refId": "F" } ], - "title": "Block Execution speed ", + "title": "Memory Use", "type": "timeseries" }, { @@ -467,14 +588,18 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", - "spanNulls": true, + "spanNulls": false, "stacking": { "group": "A", "mode": "none" @@ -483,7 +608,7 @@ "mode": "off" } }, - "decimals": 2, + "decimals": 1, "mappings": [], "thresholds": { "mode": "absolute", @@ -498,25 +623,24 @@ } ] }, - "unit": "percentunit" + "unit": "short" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 8, - "x": 16, - "y": 6 + "h": 19, + "w": 10, + "x": 0, + "y": 12 }, - "id": 194, - "links": [], + "id": 196, "options": { "legend": { "calcs": [ - "mean" + "lastNotNull" ], - "displayMode": "list", - "placement": "bottom", + "displayMode": "table", + "placement": "right", "showLegend": true }, "tooltip": { @@ -524,65 +648,22 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", "targets": [ { "datasource": { "type": "prometheus" }, "editorMode": "code", - "exemplar": true, - "expr": "rate(exec_repeats{instance=~\"$instance\"}[$rate_interval])/rate(exec_txs_done{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "repeats: {{instance}}", + "expr": "sync{instance=~\"$instance\"}", + "instant": false, + "legendFormat": "{{ stage }}: {{instance}}", "range": true, "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(exec_triggers{instance=~\"$instance\"}[$rate_interval])/rate(exec_txs_done{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "triggers: {{instance}}", - "range": true, - "refId": "B" } ], - "title": "Exec v3", + "title": "Sync Stages progress", "type": "timeseries" }, - { - "collapsed": false, - "datasource": { - "type": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 11 - }, - "id": 17, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "refId": "A" - } - ], - "title": "Database", - "type": "row" - }, { "datasource": { "type": "prometheus" @@ -598,14 +679,15 @@ "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, - "drawStyle": "points", - "fillOpacity": 10, + "drawStyle": "line", + "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -623,7 +705,6 @@ } }, "mappings": [], - "min": 0.001, "thresholds": { "mode": "absolute", "steps": [ @@ -637,21 +718,27 @@ } ] }, - "unit": "ops" + "unit": "none" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 8, - "x": 0, + "h": 11, + "w": 7, + "x": 10, "y": 12 }, - "id": 141, + "id": 77, + "links": [], "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "mean", + "lastNotNull", + "max", + "min" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -666,23 +753,43 @@ "datasource": { "type": "prometheus" }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(db_commit_seconds_count{phase=\"total\",instance=~\"$instance\"}[$rate_interval])", + "expr": "p2p_peers{instance=~\"$instance\"}", + "format": "time_series", "interval": "", - "legendFormat": "commit: {{instance}}", - "range": true, + "intervalFactor": 1, + "legendFormat": "peers: {{instance}}", "refId": "A" - } - ], - "title": "Commit", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "description": "", + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "rate(p2p_dials{instance=~\"$instance\"}[1m])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "dials: {{instance}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "rate(p2p_serves{instance=~\"$instance\"}[1m])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "serves: {{instance}}", + "refId": "C" + } + ], + "title": "Peers", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, "fieldConfig": { "defaults": { "color": { @@ -702,9 +809,10 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, - "pointSize": 2, + "pointSize": 5, "scaleDistribution": { "type": "linear" }, @@ -732,23 +840,25 @@ } ] }, - "unit": "s" + "unit": "Bps" }, "overrides": [] }, "gridPos": { - "h": 9, - "w": 16, - "x": 8, + "h": 11, + "w": 7, + "x": 17, "y": 12 }, - "id": 166, + "id": 96, + "links": [], "options": { "legend": { "calcs": [ - "mean" + "mean", + "lastNotNull" ], - "displayMode": "list", + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -763,172 +873,29 @@ "datasource": { "type": "prometheus" }, - "editorMode": "code", - "exemplar": true, - "expr": "db_commit_seconds{phase=\"total\",quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "total: {{instance}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", "exemplar": true, - "expr": "db_commit_seconds{phase=\"gc_wall_clock\",quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, + "expr": "rate(p2p_ingress{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", "interval": "", - "legendFormat": "gc_wall_clock: {{instance}}", - "range": true, + "intervalFactor": 1, + "legendFormat": "ingress: {{instance}}", "refId": "B" }, { "datasource": { "type": "prometheus" }, - "editorMode": "code", "exemplar": true, - "expr": "db_commit_seconds{phase=\"write\",quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, + "expr": "rate(p2p_egress{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "hide": true, "interval": "", - "legendFormat": "write: {{instance}}", - "range": true, + "intervalFactor": 1, + "legendFormat": "egress: {{instance}}", "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_commit_seconds{phase=\"sync\",quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "sync: {{instance}}", - "range": true, - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc_self_rtime_cpu{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_self_rtime_cpu: {{instance}}", - "range": true, - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc_work_rtime_cpu{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_work_rtime_cpu: {{instance}}", - "range": true, - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc_work_rtime{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_work_rtime: {{instance}}", - "range": true, - "refId": "G" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc_self_rtime{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_self_rtime: {{instance}}", - "range": true, - "refId": "H" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_commit_seconds{phase=\"gc_cpu_time\",quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_cpu_time: {{instance}}", - "range": true, - "refId": "I" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc_self_xtime{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_self_xtime: {{instance}}", - "range": true, - "refId": "J" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc_work_pnl_merge_time{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "work_pnl_merge_time: {{instance}}", - "range": true, - "refId": "K" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc_slef_pnl_merge_time{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "self_pnl_merge_time: {{instance}}", - "range": true, - "refId": "L" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc_work_xtime{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_work_xtime: {{instance}}", - "range": true, - "refId": "M" } ], - "title": "Commit speed", + "title": "Network Traffic", "type": "timeseries" }, { @@ -954,6 +921,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -961,10 +929,10 @@ "type": "linear" }, "showPoints": "never", - "spanNulls": true, + "spanNulls": false, "stacking": { "group": "A", - "mode": "none" + "mode": "normal" }, "thresholdsStyle": { "mode": "off" @@ -984,21 +952,25 @@ } ] }, - "unit": "decbytes" + "unit": "short" }, "overrides": [] }, "gridPos": { - "h": 5, - "w": 8, - "x": 0, - "y": 17 + "h": 8, + "w": 7, + "x": 10, + "y": 23 }, - "id": 159, + "id": 85, + "links": [], "options": { "legend": { - "calcs": [], - "displayMode": "list", + "calcs": [ + "mean", + "lastNotNull" + ], + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -1007,31 +979,34 @@ "sort": "none" } }, - "pluginVersion": "8.4.7", + "pluginVersion": "8.0.6", "targets": [ { "datasource": { "type": "prometheus" }, - "expr": "db_size{instance=~\"$instance\"}", + "exemplar": true, + "expr": "rate(process_io_storage_read_bytes_total{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", "interval": "", - "legendFormat": "size: {{instance}}", + "intervalFactor": 1, + "legendFormat": "read: {{instance}}", "refId": "A" }, { "datasource": { "type": "prometheus" }, - "editorMode": "code", - "expr": "db_mi_last_pgno{instance=~\"$instance\"}", - "hide": false, + "exemplar": true, + "expr": "rate(process_io_storage_written_bytes_total{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", "interval": "", - "legendFormat": "db_mi_last_pgno: {{instance}}", - "range": true, + "intervalFactor": 1, + "legendFormat": "write: {{instance}}", "refId": "B" } ], - "title": "DB Size", + "title": "Disk bytes/sec", "type": "timeseries" }, { @@ -1057,6 +1032,7 @@ "tooltip": false, "viz": false }, + "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, @@ -1064,10 +1040,10 @@ "type": "linear" }, "showPoints": "never", - "spanNulls": false, + "spanNulls": true, "stacking": { "group": "A", - "mode": "normal" + "mode": "none" }, "thresholdsStyle": { "mode": "off" @@ -1087,23 +1063,23 @@ } ] }, - "unit": "short" + "unit": "decbytes" }, "overrides": [] }, "gridPos": { - "h": 7, - "w": 16, - "x": 8, - "y": 21 + "h": 8, + "w": 7, + "x": 17, + "y": 23 }, - "id": 168, + "id": 159, "options": { "legend": { "calcs": [ - "mean" + "lastNotNull" ], - "displayMode": "list", + "displayMode": "table", "placement": "bottom", "showLegend": true }, @@ -1112,190 +1088,56 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", + "pluginVersion": "8.4.7", "targets": [ { "datasource": { "type": "prometheus" }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(db_pgops{phase=\"newly\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, + "expr": "db_size{instance=~\"$instance\"}", "interval": "", - "legendFormat": "newly: {{instance}}", - "range": true, + "legendFormat": "size: {{instance}}", "refId": "A" }, { "datasource": { "type": "prometheus" }, - "exemplar": true, - "expr": "rate(db_pgops{phase=\"cow\", instance=~\"$instance\"}[$rate_interval])", + "editorMode": "code", + "expr": "db_mi_last_pgno{instance=~\"$instance\"}", "hide": false, "interval": "", - "legendFormat": "cow: {{instance}}", + "legendFormat": "db_mi_last_pgno: {{instance}}", + "range": true, "refId": "B" - }, + } + ], + "title": "DB Size", + "type": "timeseries" + }, + { + "collapsed": false, + "datasource": { + "type": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 31 + }, + "id": 183, + "panels": [], + "targets": [ { "datasource": { "type": "prometheus" }, - "exemplar": true, - "expr": "rate(db_pgops{phase=\"clone\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "clone: {{instance}}", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(db_pgops{phase=\"split\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "split: {{instance}}", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(db_pgops{phase=\"merge\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "merge: {{instance}}", - "range": true, - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(db_pgops{phase=\"spill\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "spill: {{instance}}", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(db_pgops{phase=\"wops\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "wops: {{instance}}", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(db_pgops{phase=\"unspill\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "unspill: {{instance}}", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(db_pgops{phase=\"gcrloops\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "gcrloops: {{instance}}", - "range": true, - "refId": "I" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(db_pgops{phase=\"gcwloops\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "gcwloops: {{instance}}", - "range": true, - "refId": "J" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(db_pgops{phase=\"gcxpages\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "gcxpages: {{instance}}", - "range": true, - "refId": "K" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(db_pgops{phase=\"msync\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "msync: {{instance}}", - "range": true, - "refId": "L" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(db_pgops{phase=\"fsync\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "fsync: {{instance}}", - "range": true, - "refId": "M" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(db_pgops{phase=\"minicore\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "minicore: {{instance}}", - "refId": "N" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(db_pgops{phase=\"prefault\", instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "prefault: {{instance}}", - "refId": "O" + "refId": "A" } ], - "title": "DB Pages Ops/sec", - "type": "timeseries" + "title": "RPC", + "type": "row" }, { "datasource": { @@ -1326,8 +1168,8 @@ "scaleDistribution": { "type": "linear" }, - "showPoints": "never", - "spanNulls": true, + "showPoints": "auto", + "spanNulls": false, "stacking": { "group": "A", "mode": "none" @@ -1341,8 +1183,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1350,58 +1191,57 @@ } ] }, - "unit": "decbytes" + "unit": "reqps" }, "overrides": [] }, "gridPos": { - "h": 6, - "w": 8, + "h": 8, + "w": 12, "x": 0, - "y": 22 + "y": 32 }, - "id": 167, + "id": 185, "options": { "legend": { "calcs": [ - "mean" + "mean", + "last" ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { - "mode": "multi", + "mode": "single", "sort": "none" } }, - "pluginVersion": "8.0.6", "targets": [ { "datasource": { "type": "prometheus" }, - "editorMode": "code", - "expr": "tx_limit{instance=~\"$instance\"}", + "exemplar": true, + "expr": "rate(rpc_duration_seconds_count{instance=~\"$instance\",success=\"success\"}[1m])", "interval": "", - "legendFormat": "limit: {{instance}}", - "range": true, + "legendFormat": "success {{ method }} {{ instance }} ", "refId": "A" }, { "datasource": { "type": "prometheus" }, - "editorMode": "code", - "expr": "tx_dirty{instance=~\"$instance\"}", + "exemplar": true, + "expr": "rate(rpc_duration_seconds_count{instance=~\"$instance\",success=\"failure\"}[1m])", "hide": false, "interval": "", - "legendFormat": "dirty: {{instance}}", - "range": true, + "legendFormat": "failure {{ method }} {{ instance }} ", "refId": "B" } ], - "title": "Tx Size", + "title": "RPS", + "transformations": [], "type": "timeseries" }, { @@ -1437,7 +1277,7 @@ "spanNulls": false, "stacking": { "group": "A", - "mode": "normal" + "mode": "none" }, "thresholdsStyle": { "mode": "off" @@ -1448,8 +1288,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1457,74 +1296,52 @@ } ] }, - "unit": "short" + "unit": "s" }, "overrides": [] }, "gridPos": { - "h": 6, - "w": 8, - "x": 0, - "y": 28 + "h": 8, + "w": 12, + "x": 12, + "y": 32 }, - "id": 169, + "id": 187, "options": { "legend": { - "calcs": [], + "calcs": [ + "mean", + "last" + ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { - "mode": "multi", + "mode": "single", "sort": "none" } }, - "pluginVersion": "8.0.6", "targets": [ { "datasource": { "type": "prometheus" }, "exemplar": true, - "expr": "db_gc_leaf{instance=~\"$instance\"}", + "expr": "rpc_duration_seconds{quantile=\"$quantile\",instance=~\"$instance\"}", "interval": "", - "legendFormat": "gc_leaf: {{instance}}", + "legendFormat": " {{ method }} {{ instance }} {{ success }}", "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "db_gc_overflow{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_overflow: {{instance}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "exec_steps_in_db{instance=~\"$instance\"}/100", - "hide": false, - "interval": "", - "legendFormat": "exec_steps_in_db: {{instance}}", - "range": true, - "refId": "E" } ], - "title": "GC and State", + "title": "Timings", + "transformations": [], "type": "timeseries" }, { "datasource": { "type": "prometheus" }, - "description": "", "fieldConfig": { "defaults": { "color": { @@ -1550,11 +1367,11 @@ "scaleDistribution": { "type": "linear" }, - "showPoints": "never", + "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", - "mode": "normal" + "mode": "none" }, "thresholdsStyle": { "mode": "off" @@ -1565,8 +1382,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1579,34 +1395,37 @@ "overrides": [] }, "gridPos": { - "h": 6, - "w": 16, - "x": 8, - "y": 28 + "h": 8, + "w": 7, + "x": 12, + "y": 40 }, - "id": 150, + "id": 189, "options": { "legend": { - "calcs": [], + "calcs": [ + "mean", + "last" + ], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { - "mode": "multi", + "mode": "single", "sort": "none" } }, - "pluginVersion": "8.0.6", "targets": [ { "datasource": { "type": "prometheus" }, "exemplar": true, - "expr": "rate(process_minor_pagefaults_total{instance=~\"$instance\"}[$rate_interval])", + "expr": "cache_keys_total{name=\"rpc\",instance=~\"$instance\"}", + "hide": false, "interval": "", - "legendFormat": "soft: {{instance}}", + "legendFormat": "keys: {{ instance }} ", "refId": "A" }, { @@ -1614,14 +1433,36 @@ "type": "prometheus" }, "exemplar": true, - "expr": "rate(process_major_pagefaults_total{instance=~\"$instance\"}[$rate_interval])", + "expr": "cache_list_total{name=\"rpc\",instance=~\"$instance\"}", "hide": false, "interval": "", - "legendFormat": "hard: {{instance}}", + "legendFormat": "list: {{ instance }} ", "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "cache_code_keys_total{name=\"rpc\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "code_keys: {{ instance }} ", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "cache_code_list_total{name=\"rpc\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "code_list: {{ instance }} ", + "refId": "D" } ], - "title": "getrusage: minflt - soft page faults (reclaims), majflt - hard faults", + "title": "Cache keys", "type": "timeseries" }, { @@ -1668,8 +1509,7 @@ "mode": "absolute", "steps": [ { - "color": "green", - "value": null + "color": "green" }, { "color": "red", @@ -1682,14 +1522,17 @@ }, "gridPos": { "h": 8, - "w": 16, - "x": 8, - "y": 34 + "w": 5, + "x": 19, + "y": 40 }, - "id": 191, + "id": 184, "options": { "legend": { - "calcs": [], + "calcs": [ + "mean", + "last" + ], "displayMode": "list", "placement": "bottom", "showLegend": true @@ -1699,7 +1542,6 @@ "sort": "none" } }, - "pluginVersion": "8.0.6", "targets": [ { "datasource": { @@ -1707,4946 +1549,134 @@ }, "editorMode": "code", "exemplar": true, - "expr": "db_gc{phase=\"work_rxpages\", instance=~\"$instance\"}", + "expr": "sum(delta(cache_total{result=\"hit\",name=\"rpc\",instance=~\"$instance\"}[1m]))/sum(delta(cache_total{name=\"rpc\",instance=~\"$instance\"}[1m])) ", "hide": false, "interval": "", - "legendFormat": "work_rxpages: {{instance}}", + "legendFormat": "hit rate: {{ instance }} ", "range": true, - "refId": "B" + "refId": "A" }, { "datasource": { "type": "prometheus" }, - "editorMode": "code", "exemplar": true, - "expr": "db_gc{phase=\"self_rsteps\", instance=~\"$instance\"}", + "expr": "sum(delta(cache_code_total{result=\"hit\",name=\"rpc\",instance=~\"$instance\"}[1m]))/sum(delta(cache_code_total{name=\"rpc\",instance=~\"$instance\"}[1m])) ", "hide": false, "interval": "", - "legendFormat": "self_rsteps: {{instance}}", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"wloop\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "wloop: {{instance}}", - "range": true, - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"coalescences\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "coalescences: {{instance}}", - "range": true, - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"wipes\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "wipes: {{instance}}", - "range": true, - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"flushes\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "flushes: {{instance}}", - "range": true, - "refId": "G" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"kicks\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "kicks: {{instance}}", - "range": true, - "refId": "H" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"work_rsteps\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_work_rsteps: {{instance}}", - "range": true, - "refId": "I" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"self_xpages\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "self_xpages: {{instance}}", - "range": true, - "refId": "J" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"work_majflt\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_work_majflt: {{instance}}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"self_majflt\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_self_majflt: {{instance}}", - "range": true, - "refId": "K" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"self_counter\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_self_counter: {{instance}}", - "range": true, - "refId": "L" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "db_gc{phase=\"work_counter\", instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "gc_work_counter: {{instance}}", - "range": true, - "refId": "M" - } - ], - "title": "Commit counters", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 42 - }, - "id": 134, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "refId": "A" - } - ], - "title": "Process", - "type": "row" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 18, - "w": 8, - "x": 0, - "y": 43 - }, - "id": 165, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "range" - ], - "fields": "", - "values": false - }, - "text": { - "titleSize": 14, - "valueSize": 14 - }, - "textMode": "auto" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "ru_inblock{instance=~\"$instance\"}", - "interval": "", - "legendFormat": "inblock: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "ru_outblock{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "outblock: {{instance}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "ru_minflt{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "minflt: {{instance}}", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "ru_majflt{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "majflt: {{instance}}", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "system_disk_readbytes{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "system_disk_readbytes: {{instance}}", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "system_disk_writebytes{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "system_disk_writebytes: {{instance}}", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_pgops_newly{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "pgops_newly: {{instance}}", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_pgops_cow{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "pgops_cow: {{instance}}", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_pgops_clone{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "pgops_clone: {{instance}}", - "refId": "J" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_pgops_split{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "pgops_split: {{instance}}", - "refId": "K" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_pgops_merge{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "pgops_merge: {{instance}}", - "refId": "L" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_pgops_spill{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "pgops_spill: {{instance}}", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_pgops_unspill{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "pgops_unspill: {{instance}}", - "refId": "M" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_pgops_wops{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "pgops_wops: {{instance}}", - "refId": "N" - } - ], - "title": "Rusage Total (\"last value\" - \"first value\" on selected period)", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 8, - "y": 43 - }, - "id": 155, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(process_io_write_syscalls_total{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "in: {{instance}}", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(process_io_read_syscalls_total{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "out: {{instance}}", - "refId": "D" - } - ], - "title": "Read/Write syscall/sec", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "cps" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 16, - "y": 43 - }, - "id": 153, - "options": { - "legend": { - "calcs": [ - "mean" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(go_cgo_calls_count{instance=~\"$instance\"}[$rate_interval])", - "interval": "", - "legendFormat": "cgo_calls_count: {{instance}}", - "range": true, - "refId": "A" - } - ], - "title": "cgo calls", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "normal" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 8, - "y": 49 - }, - "id": 85, - "links": [], - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(process_io_storage_read_bytes_total{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "read: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(process_io_storage_written_bytes_total{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "write: {{instance}}", - "refId": "B" - } - ], - "title": "Disk bytes/sec", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 16, - "y": 49 - }, - "id": 128, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "expr": "go_goroutines{instance=~\"$instance\"}", - "instant": false, - "interval": "", - "legendFormat": "goroutines: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "expr": "go_threads{instance=~\"$instance\"}", - "instant": false, - "interval": "", - "legendFormat": "threads: {{instance}}", - "refId": "B" - } - ], - "title": "GO Goroutines and Threads", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 8, - "y": 55 - }, - "id": 154, - "links": [], - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "go_memstats_stack_sys_bytes{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "stack_sys: {{ instance }}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "go_memstats_sys_bytes{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "sys: {{ instance }}", - "range": true, - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "go_memstats_stack_inuse_bytes{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "stack_inuse: {{ instance }}", - "range": true, - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "go_memstats_mspan_sys_bytes{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "mspan_sys: {{ instance }}", - "range": true, - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "go_memstats_mcache_sys_bytes{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "mcache_sys: {{ instance }}", - "range": true, - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "go_memstats_heap_alloc_bytes{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "heap_alloc: {{ instance }}", - "range": true, - "refId": "F" - } - ], - "title": "go memstat", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 8, - "x": 16, - "y": 55 - }, - "id": 124, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(go_gc_duration_seconds{quantile=\"0.75\",instance=~\"$instance\"}[$rate_interval])", - "instant": false, - "interval": "", - "legendFormat": "", - "refId": "A" - } - ], - "title": "GC Stop the World per sec", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 8, - "x": 0, - "y": 61 - }, - "id": 148, - "options": { - "legend": { - "calcs": [ - "max" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "process_virtual_memory_bytes{instance=~\"$instance\"}", - "hide": true, - "interval": "", - "legendFormat": "resident virtual mem: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "process_resident_memory_anon_bytes{instance=~\"$instance\"}", - "hide": true, - "interval": "", - "legendFormat": "resident anon mem: {{instance}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "process_resident_memory_bytes{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "resident mem: {{instance}}", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mem_data{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "data: {{instance}}", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mem_stack{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "stack: {{instance}}", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mem_locked{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "locked: {{instance}}", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mem_swap{instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "swap: {{instance}}", - "refId": "G" - } - ], - "title": "mem: resident set size", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 8, - "x": 0, - "y": 66 - }, - "id": 86, - "links": [], - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(go_memstats_mallocs_total{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "memstats_mallocs_total: {{ instance }}", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "rate(go_memstats_frees_total{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "memstats_frees_total: {{ instance }}", - "range": true, - "refId": "B" - } - ], - "title": "Process Mem: allocate objects/sec, free", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 8, - "x": 0, - "y": 71 - }, - "id": 106, - "links": [], - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "increase(process_cpu_seconds_system_total{instance=~\"$instance\"}[1m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "system: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "increase(process_cpu_seconds_user_total{instance=~\"$instance\"}[1m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "iowait: {{instance}}", - "refId": "B" - } - ], - "title": "CPU", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 76 - }, - "id": 82, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "refId": "A" - } - ], - "title": "System", - "type": "row" - }, - { - "datasource": { - "type": "prometheus" - }, - "description": "", - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "decbytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 5, - "w": 8, - "x": 0, - "y": 77 - }, - "id": 157, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "vmem_total{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "total: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "vmem_available{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "available: {{instance}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "vmem_used{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "used: {{instance}}", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "vmem_buffers{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "buffers: {{instance}}", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "vmem_cached{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "cached: {{instance}}", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "vmem_writeback{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "writeback: {{instance}}", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "vmem_dirty{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "dirty: {{instance}}", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "vmem_shared{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "shared: {{instance}}", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "vmem_mapped{instance=~\"$instance\"}", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "mapped: {{instance}}", - "refId": "I" - } - ], - "title": "Host VMem", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 82 - }, - "id": 173, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "refId": "A" - } - ], - "title": "TxPool v2", - "type": "row" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 83 - }, - "id": 175, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "pool_process_remote_txs{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "process_remote_txs: {{ instance }}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "pool_add_remote_txs{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "add_remote_txs: {{ instance }}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "pool_new_block{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "new_block: {{ instance }}", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "pool_write_to_db{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "write_to_db: {{ instance }}", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "pool_propagate_to_new_peer{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "propagate_to_new_peer: {{ instance }}", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "pool_propagate_new_txs{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "propagate_new_txs: {{ instance }}", - "refId": "F" - } - ], - "title": "Timings", - "transformations": [], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "reqps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 83 - }, - "id": 177, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(pool_process_remote_txs_count{instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "pool_process_remote_txs_count: {{ instance }}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(pool_add_remote_txs_count{instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "pool_add_remote_txs_count: {{ instance }}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(pool_new_block_count{instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "pool_new_block_count: {{ instance }}", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(pool_write_to_db_count{instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "pool_write_to_db_count: {{ instance }}", - "refId": "D" - } - ], - "title": "RPS", - "transformations": [], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 0, - "y": 91 - }, - "id": 176, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "sum(delta(cache_total{result=\"hit\",name=\"txpool\",instance=~\"$instance\"}[1m]))/sum(delta(cache_total{name=\"txpool\",instance=~\"$instance\"}[1m])) ", - "hide": false, - "interval": "", - "legendFormat": "hit rate: {{ instance }} ", - "refId": "A" - } - ], - "title": "Cache hit-rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 8, - "y": 91 - }, - "id": 180, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(cache_total{name=\"txpool\",instance=~\"$instance\"}[1m])", - "hide": false, - "interval": "", - "legendFormat": "{{ result }}: {{ instance }} ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(cache_timeout_total{name=\"txpool\",instance=~\"$instance\"}[1m])", - "hide": false, - "interval": "", - "legendFormat": "timeout: {{ instance }} ", - "refId": "B" - } - ], - "title": "Cache rps", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 16, - "y": 91 - }, - "id": 181, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "cache_keys_total{name=\"txpool\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "keys: {{ instance }} ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "cache_list_total{name=\"txpool\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "list: {{ instance }} ", - "refId": "B" - } - ], - "title": "Cache keys", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "binBps" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 0, - "y": 97 - }, - "id": 178, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(pool_write_to_db_bytes{instance=~\"$instance\"}[$rate_interval])", - "hide": false, - "interval": "", - "legendFormat": "pool_write_to_db_bytes: {{ instance }}", - "refId": "A" - } - ], - "title": "DB", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 103 - }, - "id": 183, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "refId": "A" - } - ], - "title": "RPC", - "type": "row" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "reqps" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 104 - }, - "id": 185, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(rpc_duration_seconds_count{instance=~\"$instance\",success=\"success\"}[1m])", - "interval": "", - "legendFormat": "success {{ method }} {{ instance }} ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(rpc_duration_seconds_count{instance=~\"$instance\",success=\"failure\"}[1m])", - "hide": false, - "interval": "", - "legendFormat": "failure {{ method }} {{ instance }} ", - "refId": "B" - } - ], - "title": "RPS", - "transformations": [], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 104 - }, - "id": 186, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "db_begin_seconds{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "db_begin_seconds: {{ method }} {{ instance }}", - "refId": "A" - } - ], - "title": "DB begin", - "transformations": [], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "s" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 112 - }, - "id": 187, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rpc_duration_seconds{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": " {{ method }} {{ instance }} {{ success }}", - "refId": "A" - } - ], - "title": "Timings", - "transformations": [], - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 112 - }, - "id": 188, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "go_goroutines{instance=~\"$instance\"}", - "instant": false, - "interval": "", - "legendFormat": "go/goroutines: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "go_threads{instance=~\"$instance\"}", - "instant": false, - "interval": "", - "legendFormat": "go/threads: {{instance}}", - "refId": "B" - } - ], - "title": "GO Goroutines and Threads", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 8, - "y": 120 - }, - "id": 189, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "cache_keys_total{name=\"rpc\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "keys: {{ instance }} ", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "cache_list_total{name=\"rpc\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "list: {{ instance }} ", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "cache_code_keys_total{name=\"rpc\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "code_keys: {{ instance }} ", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "cache_code_list_total{name=\"rpc\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "code_list: {{ instance }} ", - "refId": "D" - } - ], - "title": "Cache keys", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - } - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 8, - "x": 16, - "y": 120 - }, - "id": 184, - "options": { - "legend": { - "calcs": [ - "mean", - "last" - ], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "editorMode": "code", - "exemplar": true, - "expr": "sum(delta(cache_total{result=\"hit\",name=\"rpc\",instance=~\"$instance\"}[1m]))/sum(delta(cache_total{name=\"rpc\",instance=~\"$instance\"}[1m])) ", - "hide": false, - "interval": "", - "legendFormat": "hit rate: {{ instance }} ", - "range": true, - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "sum(delta(cache_code_total{result=\"hit\",name=\"rpc\",instance=~\"$instance\"}[1m]))/sum(delta(cache_code_total{name=\"rpc\",instance=~\"$instance\"}[1m])) ", - "hide": false, - "interval": "", - "legendFormat": "code hit rate: {{ instance }} ", - "refId": "B" - } - ], - "title": "Cache hit-rate", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 126 - }, - "id": 146, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "refId": "A" - } - ], - "title": "Hidden", - "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 8, - "x": 0, - "y": 127 - }, - "hiddenSeries": false, - "id": 122, - "legend": { - "alignAsTable": true, - "avg": true, - "current": false, - "hideEmpty": false, - "hideZero": false, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "10.0.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "trie_subtrieloader_flatdb{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "trie_subtrieloader_flatdb: {{quantile}}, {{instance}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "trie_subtrieloader_witnessdb{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "trie_subtrieloader_witnessdb: {{quantile}}, {{instance}}", - "refId": "C" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "Merkle Root calculation (stage 5)", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": 6, - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:431", - "format": "ns", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:432", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus" - }, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 8, - "x": 8, - "y": 127 - }, - "hiddenSeries": false, - "id": 162, - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "10.0.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(db_op_set_count{instance=~\"$instance\"}[1m])", - "interval": "", - "legendFormat": "", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(db_op_set_range_count{instance=~\"$instance\"}[1m])", - "interval": "", - "legendFormat": "", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(db_op_get_count{instance=~\"$instance\"}[1m])", - "interval": "", - "legendFormat": "", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(db_op_get_both{instance=~\"$instance\"}[1m])", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(db_op_get_both_range_count{instance=~\"$instance\"}[1m])", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_put{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_put_current{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_put_no_overwrite{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "H" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "AutoDupsort Call/Sec", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:139", - "format": "short", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:140", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 4, - "w": 8, - "x": 16, - "y": 127 - }, - "hiddenSeries": false, - "id": 156, - "legend": { - "avg": true, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "10.0.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_get{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "get: {{quantile}}, {{instance}}", - "refId": "A" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "db.Get() latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:887", - "format": "ns", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:888", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus" - }, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 8, - "x": 0, - "y": 132 - }, - "hiddenSeries": false, - "id": 143, - "legend": { - "avg": false, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "10.0.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_set{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_set_range{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_get{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_get_both{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_get_both_range{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_put{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_put_current{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "db_op_put_no_overwrite{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "", - "refId": "H" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "AutoDupsort Call/Sec", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:139", - "format": "ns", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:140", - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus" - }, - "description": "", - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 5, - "w": 8, - "x": 8, - "y": 132 - }, - "hiddenSeries": false, - "id": 142, - "legend": { - "alignAsTable": false, - "avg": true, - "current": false, - "hideEmpty": true, - "hideZero": true, - "max": false, - "min": false, - "rightSide": false, - "show": true, - "sort": "avg", - "sortDesc": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "10.0.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_direct{quantile=\"$quantile\",instance=~\"$instance\"}", - "instant": false, - "interval": "", - "legendFormat": "mdbx_put_direct: {{quantile}}, {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_direct{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_direct: {{quantile}}, {{instance}}", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_both_range{quantile=\"$quantile\",instance=~\"$instance\"}", - "instant": false, - "interval": "", - "legendFormat": "mdbx_put_both_range: {{quantile}}, {{instance}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_both_range{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_both_range: {{quantile}}, {{instance}}", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_seek_exact{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "mdbx_seek_exact: {{quantile}}, {{instance}}", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_seek_exact{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "mdbx_seek_exact: {{quantile}}, {{instance}}", - "refId": "J" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_no_overwrite{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_no_overwrite: {{quantile}}, {{instance}}", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_no_overwrite{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_no_overwrite: {{quantile}}, {{instance}}", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_upsert{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_upsert: {{quantile}}, {{instance}}", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_upsert{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_upsert: {{quantile}}, {{instance}}", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_current2{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_current2: {{quantile}}, {{instance}}", - "refId": "K" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_current2{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_current2: {{quantile}}, {{instance}}", - "refId": "L" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_upsert2{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_upsert2: {{quantile}}, {{instance}}", - "refId": "M" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_put_upsert2{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_upsert2: {{quantile}}, {{instance}}", - "refId": "N" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_del_current{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_put_current: {{quantile}}, {{instance}}", - "refId": "O" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_del_current{quantile=\"$quantile\",instance=~\"$instance\"}", - "interval": "", - "legendFormat": "mdbx_del_current: {{quantile}}, {{instance}}", - "refId": "P" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_seek_exact2{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "mdbx_seek_exact2: {{quantile}}, {{instance}}", - "refId": "Q" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "mdbx_seek_exact2{quantile=\"$quantile\",instance=~\"$instance\"}", - "hide": false, - "interval": "", - "legendFormat": "mdbx_seek_exact2: {{quantile}}, {{instance}}", - "refId": "R" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "AutoDupsort Put latency", - "tooltip": { - "shared": true, - "sort": 2, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "$$hashKey": "object:139", - "format": "ns", - "logBase": 1, - "show": true - }, - { - "$$hashKey": "object:140", - "format": "short", - "logBase": 1, - "show": false - } - ], - "yaxis": { - "align": false - } - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 137 - }, - "id": 75, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "refId": "A" - } - ], - "title": "Network", - "type": "row" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "Bps" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 138 - }, - "id": 96, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max", - "min" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(p2p_ingress{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "ingress: {{instance}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "rate(p2p_egress{instance=~\"$instance\"}[$rate_interval])", - "format": "time_series", - "hide": true, - "interval": "", - "intervalFactor": 1, - "legendFormat": "egress: {{instance}}", - "refId": "C" - } - ], - "title": "Traffic", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 138 - }, - "id": 77, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max", - "min" - ], - "displayMode": "table", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "p2p_peers{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "peers: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(p2p_dials{instance=~\"$instance\"}[1m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "dials: {{instance}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(p2p_serves{instance=~\"$instance\"}[1m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "serves: {{instance}}", - "refId": "C" - } - ], - "title": "Peers", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 144 - }, - "id": 4, - "panels": [], - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "refId": "A" - } - ], - "title": "Blockchain", - "type": "row" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 0, - "y": 145 - }, - "id": 108, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "lastNotNull" - ] - }, - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "sync{instance=~\"$instance\",stage=\"headers\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "Header: {{instance}}", - "refId": "A" - } - ], - "title": "Latest header", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 5, - "x": 5, - "y": 145 - }, - "id": 109, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "lastNotNull" - ] - }, - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "sync{stage=\"headers\", instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "blocks:{{instance}}", - "refId": "A" - } - ], - "title": "Latest block", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 12, - "y": 145 - }, - "id": 113, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "lastNotNull" - ] - }, - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "txpool_pending{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{instance}}", - "refId": "A" - } - ], - "title": "Executable transactions", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 16, - "y": 145 - }, - "id": 114, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "lastNotNull" - ] - }, - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "txpool_queued{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{instance}}", - "refId": "A" - } - ], - "title": "Gapped transactions", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "mappings": [ - { - "options": { - "match": "null", - "result": { - "text": "N/A" - } - }, - "type": "special" - } - ], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, - "gridPos": { - "h": 3, - "w": 4, - "x": 20, - "y": 145 - }, - "id": 115, - "links": [], - "maxDataPoints": 100, - "options": { - "colorMode": "value", - "fieldOptions": { - "calcs": [ - "lastNotNull" - ] - }, - "graphMode": "none", - "justifyMode": "auto", - "orientation": "horizontal", - "reduceOptions": { - "calcs": [ - "mean" - ], - "fields": "", - "values": false - }, - "text": {}, - "textMode": "auto" - }, - "pluginVersion": "10.0.1", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "exemplar": true, - "expr": "txpool_local{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "{{instance}}", - "refId": "A" - } - ], - "title": "Local transactions", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 0, - "y": 148 - }, - "id": 110, - "links": [], - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "chain_head_header{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "header: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "chain_head_receipt{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "receipt: {{instance}}", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "chain_head_block{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "block: {{instance}}", - "refId": "C" - } - ], - "title": "Chain head", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 100, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "short" - }, - "overrides": [] - }, - "gridPos": { - "h": 6, - "w": 12, - "x": 12, - "y": 148 - }, - "id": 116, - "links": [], - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "txpool_pending{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "executable: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "txpool_queued{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "gapped: {{instance}}", + "legendFormat": "code hit rate: {{ instance }} ", "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "txpool_local{instance=~\"$instance\"}", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "local: {{instance}}", - "refId": "C" } ], - "title": "Transaction pool", + "title": "Cache hit-rate", "type": "timeseries" }, { + "collapsed": true, "datasource": { "type": "prometheus" }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 10, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "none" - }, - "overrides": [] - }, "gridPos": { - "h": 7, + "h": 1, "w": 24, "x": 0, - "y": 154 + "y": 48 }, - "id": 117, - "links": [], - "options": { - "legend": { - "calcs": [ - "mean", - "lastNotNull", - "max", - "min" + "id": 138, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": { + "type": "prometheus" + }, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 124 + }, + "hiddenSeries": false, + "id": 136, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "alertThreshold": true + }, + "percentage": false, + "pluginVersion": "10.0.3", + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "expr": "sum by (grpc_service, grpc_method, instance) (rate(grpc_server_started_total{instance=~\"$instance\"}[1m]))", + "interval": "", + "legendFormat": "Calls: {{grpc_service}}.{{grpc_method}}, {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "sum by (grpc_service, grpc_method, instance) (rate(grpc_server_handled_total{instance=~\"$instance\",grpc_code!=\"OK\"}[1m])) ", + "interval": "", + "legendFormat": "Errors: {{grpc_service}}.{{grpc_method}}, {{instance}}", + "refId": "B" + } ], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "8.0.6", - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_valid{instance=~\"$instance\"}[1m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "valid: {{instance}}", - "refId": "K" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_invalid{instance=~\"$instance\"}[1m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "invalid: {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_underpriced{instance=\"$instance\"}[1m])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "underpriced", - "refId": "B" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_pending_discard{instance=\"$instance\"}[1m])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "executable discard", - "refId": "C" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_pending_replace{instance=\"$instance\"}[1m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "executable replace", - "refId": "D" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_pending_ratelimit{instance=\"$instance\"}[1m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "executable ratelimit", - "refId": "E" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_pending_nofunds{instance=\"$instance\"}[1m])", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "executable nofunds", - "refId": "F" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_queued_discard{instance=\"$instance\"}[1m])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "gapped discard", - "refId": "G" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_queued_replace{instance=\"$instance\"}[1m])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "gapped replace", - "refId": "H" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_queued_ratelimit{instance=\"$instance\"}[1m])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "gapped ratelimit", - "refId": "I" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "rate(txpool_queued_nofunds{instance=\"$instance\"}[1m])", - "format": "time_series", - "hide": false, - "interval": "", - "intervalFactor": 1, - "legendFormat": "gapped nofunds", - "refId": "J" + "thresholds": [], + "timeRegions": [], + "title": "gRPC call, error rates ", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "mode": "time", + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "logBase": 1, + "show": true + }, + { + "format": "short", + "logBase": 1, + "show": true + } + ], + "yaxis": { + "align": false + } } ], - "title": "Transaction propagation", - "type": "timeseries" - }, - { - "collapsed": false, - "datasource": { - "type": "prometheus" - }, - "gridPos": { - "h": 1, - "w": 24, - "x": 0, - "y": 161 - }, - "id": 138, - "panels": [], "targets": [ { "datasource": { @@ -6657,98 +1687,6 @@ ], "title": "Private api", "type": "row" - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": { - "type": "prometheus" - }, - "fill": 1, - "fillGradient": 0, - "gridPos": { - "h": 8, - "w": 12, - "x": 0, - "y": 162 - }, - "hiddenSeries": false, - "id": 136, - "legend": { - "avg": false, - "current": false, - "max": false, - "min": false, - "show": true, - "total": false, - "values": false - }, - "lines": true, - "linewidth": 1, - "nullPointMode": "null", - "options": { - "alertThreshold": true - }, - "percentage": false, - "pluginVersion": "10.0.1", - "pointradius": 2, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "datasource": { - "type": "prometheus" - }, - "expr": "sum by (grpc_service, grpc_method, instance) (rate(grpc_server_started_total{instance=~\"$instance\"}[1m]))", - "interval": "", - "legendFormat": "Calls: {{grpc_service}}.{{grpc_method}}, {{instance}}", - "refId": "A" - }, - { - "datasource": { - "type": "prometheus" - }, - "expr": "sum by (grpc_service, grpc_method, instance) (rate(grpc_server_handled_total{instance=~\"$instance\",grpc_code!=\"OK\"}[1m])) ", - "interval": "", - "legendFormat": "Errors: {{grpc_service}}.{{grpc_method}}, {{instance}}", - "refId": "B" - } - ], - "thresholds": [], - "timeRegions": [], - "title": "gRPC call, error rates ", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "mode": "time", - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "logBase": 1, - "show": true - }, - { - "format": "short", - "logBase": 1, - "show": true - } - ], - "yaxis": { - "align": false - } } ], "refresh": "30s", @@ -6814,10 +1752,10 @@ "current": { "selected": true, "text": [ - "All" + "mumbai3-2:6061" ], "value": [ - "$__all" + "mumbai3-2:6061" ] }, "datasource": { @@ -6921,7 +1859,7 @@ ] }, "time": { - "from": "now-24h", + "from": "now-1h", "to": "now" }, "timepicker": { @@ -6949,8 +1887,8 @@ ] }, "timezone": "", - "title": "Erigon Prometheus", + "title": "Erigon", "uid": "FPpjH6Hik", - "version": 113, + "version": 7, "weekStart": "" } \ No newline at end of file diff --git a/cmd/prometheus/dashboards/erigon_internals.json b/cmd/prometheus/dashboards/erigon_internals.json new file mode 100644 index 00000000000..e2a279cec43 --- /dev/null +++ b/cmd/prometheus/dashboards/erigon_internals.json @@ -0,0 +1,5512 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": { + "type": "datasource", + "uid": "grafana" + }, + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "target": { + "limit": 100, + "matchAny": false, + "tags": [], + "type": "dashboard" + }, + "type": "dashboard" + } + ] + }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 0, + "id": 1, + "links": [], + "liveNow": false, + "panels": [ + { + "datasource": { + "type": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 171, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "refId": "A" + } + ], + "title": "Blocks execution", + "type": "row" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 1, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 10, + "w": 8, + "x": 0, + "y": 1 + }, + "id": 196, + "options": { + "legend": { + "calcs": [ + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "sync{instance=~\"$instance\"}", + "instant": false, + "legendFormat": "{{ stage }}: {{instance}}", + "range": true, + "refId": "A" + } + ], + "title": "Sync Stages progress", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 8, + "y": 1 + }, + "id": 158, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(sync{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "{{ stage }}: {{instance}}", + "range": true, + "refId": "A" + } + ], + "title": "Sync Stages progress rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 16, + "y": 1 + }, + "id": 195, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(exec_txs_done{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "txs apply: {{instance}}", + "range": true, + "refId": "A" + } + ], + "title": "Exec v3: txs/s ", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisGridShow": true, + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 8, + "y": 6 + }, + "id": 112, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "9.3.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "idelta(domain_collate_took_sum{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "instant": false, + "legendFormat": "collation took: {{instance}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "idelta(domain_step_took_sum{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "legendFormat": "step took: {{instance}}", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "idelta(domain_prune_took_sum{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "legendFormat": "prune took [{{type}}]: {{instance}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "idelta(domain_commitment_took_sum{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "legendFormat": "commitment took: {{instance}}", + "range": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": false, + "expr": "idelta(domain_commitment_write_took_sum{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "instant": false, + "legendFormat": "commitment update write took: {{instance}}", + "range": true, + "refId": "F" + } + ], + "title": "Time took", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "decimals": 2, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percentunit" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 16, + "y": 6 + }, + "id": 194, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(exec_repeats{instance=~\"$instance\"}[$rate_interval])/rate(exec_txs_done{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "repeats: {{instance}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(exec_triggers{instance=~\"$instance\"}[$rate_interval])/rate(exec_txs_done{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "triggers: {{instance}}", + "range": true, + "refId": "B" + } + ], + "title": "Exec v3", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 0, + "y": 11 + }, + "id": 199, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "chain_execution_seconds{quantile=\"$quantile\",instance=~\"$instance\"}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "execution: {{instance}}", + "refId": "A" + } + ], + "title": "Block Execution speed ", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 5, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineStyle": { + "fill": "solid" + }, + "lineWidth": 1, + "pointSize": 4, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ops" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "keys committed: mainnet-dev-awskii:6061" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 8, + "y": 11 + }, + "id": 197, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "9.3.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "irate(domain_collation_size{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "legendFormat": "collated [domain]: {{instance}}", + "range": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "irate(domain_collation_hist_size{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "legendFormat": "collated [history]: {{instance}}", + "range": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "sum(rate(domain_commitment_keys[$rate_interval])) by (instance)", + "hide": false, + "legendFormat": "keys committed: {{instance}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "irate(domain_commitment_updates{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "legendFormat": "commitment node updates: {{instance}}", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "irate(domain_commitment_updates_applied{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "legendFormat": "commitment trie node updates: {{instance}}", + "range": true, + "refId": "F" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "irate(domain_prune_size{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "legendFormat": "pruned keys [{{type}}]: {{instance}}", + "range": true, + "refId": "G" + } + ], + "title": "Collate/Prune/Merge/Commitment", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "smooth", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 16, + "y": 11 + }, + "id": 198, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "desc" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "domain_running_merges{instance=~\"$instance\"}", + "legendFormat": "running merges: {{instance}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "domain_running_collations{instance=~\"$instance\"}", + "hide": false, + "legendFormat": "running collations: {{instance}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "domain_pruning_progress{instance=~\"$instance\"}", + "hide": false, + "legendFormat": "running prunes: {{instance}}", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "domain_running_commitment{instance=~\"$instance\"}", + "hide": false, + "legendFormat": "running commitment: {{instance}}", + "range": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "domain_running_files_building{instance=~\"$instance\"}", + "hide": false, + "instant": false, + "legendFormat": "running files building: {{instance}}", + "range": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "domain_wal_flushes{instance=~\"$instance\"}", + "hide": false, + "instant": false, + "legendFormat": "WAL flushes {{instance}}", + "range": true, + "refId": "F" + } + ], + "title": "Running Collations / Merges / Prunes", + "type": "timeseries" + }, + { + "collapsed": false, + "datasource": { + "type": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 17, + "panels": [], + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "refId": "A" + } + ], + "title": "Database", + "type": "row" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "min": 0.001, + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "ops" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 0, + "y": 17 + }, + "id": 141, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(db_commit_seconds_count{phase=\"total\",instance=~\"$instance\"}[$rate_interval])", + "interval": "", + "legendFormat": "commit: {{instance}}", + "range": true, + "refId": "A" + } + ], + "title": "Commit", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 2, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 16, + "x": 8, + "y": 17 + }, + "id": 166, + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_commit_seconds{phase=\"total\",quantile=\"$quantile\",instance=~\"$instance\"}", + "interval": "", + "legendFormat": "total: {{instance}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_commit_seconds{phase=\"gc_wall_clock\",quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_wall_clock: {{instance}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_commit_seconds{phase=\"write\",quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "write: {{instance}}", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_commit_seconds{phase=\"sync\",quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "sync: {{instance}}", + "range": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc_self_rtime_cpu{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_self_rtime_cpu: {{instance}}", + "range": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc_work_rtime_cpu{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_work_rtime_cpu: {{instance}}", + "range": true, + "refId": "F" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc_work_rtime{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_work_rtime: {{instance}}", + "range": true, + "refId": "G" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc_self_rtime{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_self_rtime: {{instance}}", + "range": true, + "refId": "H" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_commit_seconds{phase=\"gc_cpu_time\",quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_cpu_time: {{instance}}", + "range": true, + "refId": "I" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc_self_xtime{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_self_xtime: {{instance}}", + "range": true, + "refId": "J" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc_work_pnl_merge_time{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "work_pnl_merge_time: {{instance}}", + "range": true, + "refId": "K" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc_slef_pnl_merge_time{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "self_pnl_merge_time: {{instance}}", + "range": true, + "refId": "L" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc_work_xtime{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_work_xtime: {{instance}}", + "range": true, + "refId": "M" + } + ], + "title": "Commit speed", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 0, + "y": 22 + }, + "id": 159, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.4.7", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "expr": "db_size{instance=~\"$instance\"}", + "interval": "", + "legendFormat": "size: {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "db_mi_last_pgno{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "db_mi_last_pgno: {{instance}}", + "range": true, + "refId": "B" + } + ], + "title": "DB Size", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 7, + "w": 16, + "x": 8, + "y": 26 + }, + "id": 168, + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(db_pgops{phase=\"newly\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "newly: {{instance}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(db_pgops{phase=\"cow\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "cow: {{instance}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(db_pgops{phase=\"clone\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "clone: {{instance}}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(db_pgops{phase=\"split\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "split: {{instance}}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(db_pgops{phase=\"merge\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "merge: {{instance}}", + "range": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(db_pgops{phase=\"spill\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "spill: {{instance}}", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(db_pgops{phase=\"wops\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "wops: {{instance}}", + "refId": "G" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(db_pgops{phase=\"unspill\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "unspill: {{instance}}", + "refId": "H" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(db_pgops{phase=\"gcrloops\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "gcrloops: {{instance}}", + "range": true, + "refId": "I" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(db_pgops{phase=\"gcwloops\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "gcwloops: {{instance}}", + "range": true, + "refId": "J" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(db_pgops{phase=\"gcxpages\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "gcxpages: {{instance}}", + "range": true, + "refId": "K" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(db_pgops{phase=\"msync\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "msync: {{instance}}", + "range": true, + "refId": "L" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(db_pgops{phase=\"fsync\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "fsync: {{instance}}", + "range": true, + "refId": "M" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(db_pgops{phase=\"minicore\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "minicore: {{instance}}", + "refId": "N" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(db_pgops{phase=\"prefault\", instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "prefault: {{instance}}", + "refId": "O" + } + ], + "title": "DB Pages Ops/sec", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green", + "value": null + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 0, + "y": 27 + }, + "id": 167, + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "tx_limit{instance=~\"$instance\"}", + "interval": "", + "legendFormat": "limit: {{instance}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "tx_dirty{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "dirty: {{instance}}", + "range": true, + "refId": "B" + } + ], + "title": "Tx Size", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "gc_overflow: mainnet2-1:6061" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 0, + "y": 33 + }, + "id": 169, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "db_gc_leaf{instance=~\"$instance\"}", + "interval": "", + "legendFormat": "gc_leaf: {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "db_gc_overflow{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_overflow: {{instance}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "exec_steps_in_db{instance=~\"$instance\"}/100", + "hide": false, + "interval": "", + "legendFormat": "exec_steps_in_db: {{instance}}", + "range": true, + "refId": "E" + } + ], + "title": "GC and State", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 16, + "x": 8, + "y": 33 + }, + "id": 150, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(process_minor_pagefaults_total{instance=~\"$instance\"}[$rate_interval])", + "interval": "", + "legendFormat": "soft: {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(process_major_pagefaults_total{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "hard: {{instance}}", + "refId": "B" + } + ], + "title": "getrusage: minflt - soft page faults (reclaims), majflt - hard faults", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 16, + "x": 8, + "y": 39 + }, + "id": 191, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"work_rxpages\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "work_rxpages: {{instance}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"self_rsteps\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "self_rsteps: {{instance}}", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"wloop\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "wloop: {{instance}}", + "range": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"coalescences\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "coalescences: {{instance}}", + "range": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"wipes\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "wipes: {{instance}}", + "range": true, + "refId": "F" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"flushes\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "flushes: {{instance}}", + "range": true, + "refId": "G" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"kicks\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "kicks: {{instance}}", + "range": true, + "refId": "H" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"work_rsteps\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_work_rsteps: {{instance}}", + "range": true, + "refId": "I" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"self_xpages\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "self_xpages: {{instance}}", + "range": true, + "refId": "J" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"work_majflt\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_work_majflt: {{instance}}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"self_majflt\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_self_majflt: {{instance}}", + "range": true, + "refId": "K" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"self_counter\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_self_counter: {{instance}}", + "range": true, + "refId": "L" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "db_gc{phase=\"work_counter\", instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "gc_work_counter: {{instance}}", + "range": true, + "refId": "M" + } + ], + "title": "Commit counters", + "type": "timeseries" + }, + { + "collapsed": false, + "datasource": { + "type": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 47 + }, + "id": 134, + "panels": [], + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "refId": "A" + } + ], + "title": "Process", + "type": "row" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "thresholds" + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 18, + "w": 8, + "x": 0, + "y": 48 + }, + "id": 165, + "options": { + "colorMode": "value", + "graphMode": "none", + "justifyMode": "auto", + "orientation": "horizontal", + "reduceOptions": { + "calcs": [ + "range" + ], + "fields": "", + "values": false + }, + "text": { + "titleSize": 14, + "valueSize": 14 + }, + "textMode": "auto" + }, + "pluginVersion": "10.1.4", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "expr": "ru_inblock{instance=~\"$instance\"}", + "interval": "", + "legendFormat": "inblock: {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "ru_outblock{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "outblock: {{instance}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "ru_minflt{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "minflt: {{instance}}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "ru_majflt{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "majflt: {{instance}}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "system_disk_readbytes{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "system_disk_readbytes: {{instance}}", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "system_disk_writebytes{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "system_disk_writebytes: {{instance}}", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "db_pgops_newly{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "pgops_newly: {{instance}}", + "refId": "H" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "db_pgops_cow{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "pgops_cow: {{instance}}", + "refId": "I" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "db_pgops_clone{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "pgops_clone: {{instance}}", + "refId": "J" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "db_pgops_split{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "pgops_split: {{instance}}", + "refId": "K" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "db_pgops_merge{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "pgops_merge: {{instance}}", + "refId": "L" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "db_pgops_spill{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "pgops_spill: {{instance}}", + "refId": "G" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "db_pgops_unspill{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "pgops_unspill: {{instance}}", + "refId": "M" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "db_pgops_wops{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "pgops_wops: {{instance}}", + "refId": "N" + } + ], + "title": "Rusage Total (\"last value\" - \"first value\" on selected period)", + "type": "stat" + }, + { + "datasource": { + "type": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 8, + "y": 48 + }, + "id": 155, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(process_io_write_syscalls_total{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "in: {{instance}}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(process_io_read_syscalls_total{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "out: {{instance}}", + "refId": "D" + } + ], + "title": "Read/Write syscall/sec", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "cps" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 48 + }, + "id": 153, + "options": { + "legend": { + "calcs": [ + "mean" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(go_cgo_calls_count{instance=~\"$instance\"}[$rate_interval])", + "interval": "", + "legendFormat": "cgo_calls_count: {{instance}}", + "range": true, + "refId": "A" + } + ], + "title": "cgo calls", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "normal" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 8, + "y": 54 + }, + "id": 85, + "links": [], + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(process_io_storage_read_bytes_total{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "read: {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(process_io_storage_written_bytes_total{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "write: {{instance}}", + "refId": "B" + } + ], + "title": "Disk bytes/sec", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 54 + }, + "id": 128, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "go_goroutines{instance=~\"$instance\"}", + "instant": false, + "interval": "", + "legendFormat": "goroutines: {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "expr": "go_threads{instance=~\"$instance\"}", + "instant": false, + "interval": "", + "legendFormat": "threads: {{instance}}", + "refId": "B" + } + ], + "title": "GO Goroutines and Threads", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 8, + "y": 60 + }, + "id": 154, + "links": [], + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_stack_sys_bytes{instance=~\"$instance\"}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "stack_sys: {{ instance }}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_sys_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "sys: {{ instance }}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_stack_inuse_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "stack_inuse: {{ instance }}", + "range": true, + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_mspan_sys_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "mspan_sys: {{ instance }}", + "range": true, + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_mcache_sys_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "mcache_sys: {{ instance }}", + "range": true, + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "go_memstats_heap_alloc_bytes{instance=~\"$instance\"}", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "heap_alloc: {{ instance }}", + "range": true, + "refId": "F" + } + ], + "title": "go memstat", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 10, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 16, + "y": 60 + }, + "id": 124, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(go_gc_duration_seconds{quantile=\"0.75\",instance=~\"$instance\"}[$rate_interval])", + "instant": false, + "interval": "", + "legendFormat": "", + "refId": "A" + } + ], + "title": "GC Stop the World per sec", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "decbytes" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 0, + "y": 66 + }, + "id": 148, + "options": { + "legend": { + "calcs": [ + "max" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "process_virtual_memory_bytes{instance=~\"$instance\"}", + "hide": true, + "interval": "", + "legendFormat": "resident virtual mem: {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "process_resident_memory_anon_bytes{instance=~\"$instance\"}", + "hide": true, + "interval": "", + "legendFormat": "resident anon mem: {{instance}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "process_resident_memory_bytes{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "resident mem: {{instance}}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "mem_data{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "data: {{instance}}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "mem_stack{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "stack: {{instance}}", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "mem_locked{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "locked: {{instance}}", + "refId": "F" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "mem_swap{instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "swap: {{instance}}", + "refId": "G" + } + ], + "title": "mem: resident set size", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "description": "", + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 0, + "y": 71 + }, + "id": 86, + "links": [], + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(go_memstats_mallocs_total{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "memstats_mallocs_total: {{ instance }}", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(go_memstats_frees_total{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "memstats_frees_total: {{ instance }}", + "range": true, + "refId": "B" + } + ], + "title": "Process Mem: allocate objects/sec, free", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "percent" + }, + "overrides": [] + }, + "gridPos": { + "h": 5, + "w": 8, + "x": 0, + "y": 76 + }, + "id": 106, + "links": [], + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "increase(process_cpu_seconds_total{instance=~\"$instance\"}[1m])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "system: {{instance}}", + "range": true, + "refId": "A" + } + ], + "title": "CPU", + "type": "timeseries" + }, + { + "collapsed": false, + "datasource": { + "type": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 81 + }, + "id": 173, + "panels": [], + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "refId": "A" + } + ], + "title": "TxPool", + "type": "row" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 82 + }, + "id": 175, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "pool_process_remote_txs{quantile=\"$quantile\",instance=~\"$instance\"}", + "interval": "", + "legendFormat": "process_remote_txs: {{ instance }}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "pool_add_remote_txs{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "add_remote_txs: {{ instance }}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "pool_new_block{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "new_block: {{ instance }}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "pool_write_to_db{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "write_to_db: {{ instance }}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "pool_propagate_to_new_peer{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "propagate_to_new_peer: {{ instance }}", + "refId": "E" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "pool_propagate_new_txs{quantile=\"$quantile\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "propagate_new_txs: {{ instance }}", + "refId": "F" + } + ], + "title": "Timings", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 82 + }, + "id": 177, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(pool_process_remote_txs_count{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "pool_process_remote_txs_count: {{ instance }}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(pool_add_remote_txs_count{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "pool_add_remote_txs_count: {{ instance }}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(pool_new_block_count{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "pool_new_block_count: {{ instance }}", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(pool_write_to_db_count{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "pool_write_to_db_count: {{ instance }}", + "refId": "D" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(pool_p2p_out{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "__auto", + "range": true, + "refId": "E" + } + ], + "title": "RPS", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 0, + "y": 90 + }, + "id": 176, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "sum(delta(cache_total{result=\"hit\",name=\"txpool\",instance=~\"$instance\"}[1m]))/sum(delta(cache_total{name=\"txpool\",instance=~\"$instance\"}[1m])) ", + "hide": false, + "interval": "", + "legendFormat": "hit rate: {{ instance }} ", + "refId": "A" + } + ], + "title": "Cache hit-rate", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 8, + "y": 90 + }, + "id": 180, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(cache_total{name=\"txpool\",instance=~\"$instance\"}[1m])", + "hide": false, + "interval": "", + "legendFormat": "{{ result }}: {{ instance }} ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(cache_timeout_total{name=\"txpool\",instance=~\"$instance\"}[1m])", + "hide": false, + "interval": "", + "legendFormat": "timeout: {{ instance }} ", + "refId": "B" + } + ], + "title": "Cache rps", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 90 + }, + "id": 181, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "cache_keys_total{name=\"txpool\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "keys: {{ instance }} ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "cache_list_total{name=\"txpool\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "list: {{ instance }} ", + "refId": "B" + } + ], + "title": "Cache keys", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "binBps" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 0, + "y": 96 + }, + "id": 178, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(pool_write_to_db_bytes{instance=~\"$instance\"}[$rate_interval])", + "hide": false, + "interval": "", + "legendFormat": "pool_write_to_db_bytes: {{ instance }}", + "refId": "A" + } + ], + "title": "DB", + "type": "timeseries" + }, + { + "collapsed": false, + "datasource": { + "type": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 102 + }, + "id": 183, + "panels": [], + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "refId": "A" + } + ], + "title": "RPC", + "type": "row" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "reqps" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 103 + }, + "id": 185, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(rpc_duration_seconds_count{instance=~\"$instance\",success=\"success\"}[1m])", + "interval": "", + "legendFormat": "success {{ method }} {{ instance }} ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rate(rpc_duration_seconds_count{instance=~\"$instance\",success=\"failure\"}[1m])", + "hide": false, + "interval": "", + "legendFormat": "failure {{ method }} {{ instance }} ", + "refId": "B" + } + ], + "title": "RPS", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 103 + }, + "id": 186, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "db_begin_seconds{quantile=\"$quantile\",instance=~\"$instance\"}", + "interval": "", + "legendFormat": "db_begin_seconds: {{ method }} {{ instance }}", + "refId": "A" + } + ], + "title": "DB begin", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "s" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 0, + "y": 111 + }, + "id": 187, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "rpc_duration_seconds{quantile=\"$quantile\",instance=~\"$instance\"}", + "interval": "", + "legendFormat": " {{ method }} {{ instance }} {{ success }}", + "refId": "A" + } + ], + "title": "Timings", + "transformations": [], + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 8, + "w": 12, + "x": 12, + "y": 111 + }, + "id": 188, + "options": { + "legend": { + "calcs": [], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "expr": "go_goroutines{instance=~\"$instance\"}", + "instant": false, + "interval": "", + "legendFormat": "go/goroutines: {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "go_threads{instance=~\"$instance\"}", + "instant": false, + "interval": "", + "legendFormat": "go/threads: {{instance}}", + "refId": "B" + } + ], + "title": "GO Goroutines and Threads", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "short" + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 8, + "y": 119 + }, + "id": 189, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "cache_keys_total{name=\"rpc\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "keys: {{ instance }} ", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "cache_list_total{name=\"rpc\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "list: {{ instance }} ", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "cache_code_keys_total{name=\"rpc\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "code_keys: {{ instance }} ", + "refId": "C" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "cache_code_list_total{name=\"rpc\",instance=~\"$instance\"}", + "hide": false, + "interval": "", + "legendFormat": "code_list: {{ instance }} ", + "refId": "D" + } + ], + "title": "Cache keys", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "auto", + "spanNulls": false, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + } + }, + "overrides": [] + }, + "gridPos": { + "h": 6, + "w": 8, + "x": 16, + "y": 119 + }, + "id": 184, + "options": { + "legend": { + "calcs": [ + "mean", + "last" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "single", + "sort": "none" + } + }, + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "sum(delta(cache_total{result=\"hit\",name=\"rpc\",instance=~\"$instance\"}[1m]))/sum(delta(cache_total{name=\"rpc\",instance=~\"$instance\"}[1m])) ", + "hide": false, + "interval": "", + "legendFormat": "hit rate: {{ instance }} ", + "range": true, + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "exemplar": true, + "expr": "sum(delta(cache_code_total{result=\"hit\",name=\"rpc\",instance=~\"$instance\"}[1m]))/sum(delta(cache_code_total{name=\"rpc\",instance=~\"$instance\"}[1m])) ", + "hide": false, + "interval": "", + "legendFormat": "code hit rate: {{ instance }} ", + "refId": "B" + } + ], + "title": "Cache hit-rate", + "type": "timeseries" + }, + { + "collapsed": false, + "datasource": { + "type": "prometheus" + }, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 125 + }, + "id": 75, + "panels": [], + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "refId": "A" + } + ], + "title": "Network", + "type": "row" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "Bps" + }, + "overrides": [ + { + "__systemRef": "hideSeriesFrom", + "matcher": { + "id": "byNames", + "options": { + "mode": "exclude", + "names": [ + "egress: mainnet2-1:6061" + ], + "prefix": "All except:", + "readOnly": true + } + }, + "properties": [ + { + "id": "custom.hideFrom", + "value": { + "legend": false, + "tooltip": false, + "viz": true + } + } + ] + } + ] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 126 + }, + "id": 96, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max", + "min" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(p2p_ingress{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "ingress: {{instance}}", + "range": true, + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "editorMode": "code", + "exemplar": true, + "expr": "rate(p2p_egress{instance=~\"$instance\"}[$rate_interval])", + "format": "time_series", + "hide": false, + "interval": "", + "intervalFactor": 1, + "legendFormat": "egress: {{instance}}", + "range": true, + "refId": "C" + } + ], + "title": "Traffic", + "type": "timeseries" + }, + { + "datasource": { + "type": "prometheus" + }, + "fieldConfig": { + "defaults": { + "color": { + "mode": "palette-classic" + }, + "custom": { + "axisCenteredZero": false, + "axisColorMode": "text", + "axisLabel": "", + "axisPlacement": "auto", + "barAlignment": 0, + "drawStyle": "line", + "fillOpacity": 0, + "gradientMode": "none", + "hideFrom": { + "legend": false, + "tooltip": false, + "viz": false + }, + "insertNulls": false, + "lineInterpolation": "linear", + "lineWidth": 1, + "pointSize": 5, + "scaleDistribution": { + "type": "linear" + }, + "showPoints": "never", + "spanNulls": true, + "stacking": { + "group": "A", + "mode": "none" + }, + "thresholdsStyle": { + "mode": "off" + } + }, + "mappings": [], + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "green" + }, + { + "color": "red", + "value": 80 + } + ] + }, + "unit": "none" + }, + "overrides": [] + }, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 126 + }, + "id": 77, + "links": [], + "options": { + "legend": { + "calcs": [ + "mean", + "lastNotNull", + "max", + "min" + ], + "displayMode": "list", + "placement": "bottom", + "showLegend": true + }, + "tooltip": { + "mode": "multi", + "sort": "none" + } + }, + "pluginVersion": "8.0.6", + "targets": [ + { + "datasource": { + "type": "prometheus" + }, + "expr": "p2p_peers{instance=~\"$instance\"}", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "peers: {{instance}}", + "refId": "A" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "rate(p2p_dials{instance=~\"$instance\"}[1m])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "dials: {{instance}}", + "refId": "B" + }, + { + "datasource": { + "type": "prometheus" + }, + "expr": "rate(p2p_serves{instance=~\"$instance\"}[1m])", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "serves: {{instance}}", + "refId": "C" + } + ], + "title": "Peers", + "type": "timeseries" + } + ], + "refresh": "", + "revision": 1, + "schemaVersion": 38, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "current": { + "selected": false, + "text": "0.97", + "value": "0.97" + }, + "hide": 0, + "includeAll": false, + "multi": false, + "name": "quantile", + "options": [ + { + "selected": false, + "text": "0.0", + "value": "0.0" + }, + { + "selected": false, + "text": "0.25", + "value": "0.25" + }, + { + "selected": false, + "text": "0.5", + "value": "0.5" + }, + { + "selected": false, + "text": "0.9", + "value": "0.9" + }, + { + "selected": true, + "text": "0.97", + "value": "0.97" + }, + { + "selected": false, + "text": "0.99", + "value": "0.99" + }, + { + "selected": false, + "text": "1", + "value": "1" + } + ], + "query": "0.0,0.25,0.5, 0.9, 0.97, 0.99, 1", + "queryValue": "", + "skipUrlSync": false, + "type": "custom" + }, + { + "current": { + "selected": true, + "text": [ + "mainnet-dev-awskii:6061" + ], + "value": [ + "mainnet-dev-awskii:6061" + ] + }, + "datasource": { + "type": "prometheus" + }, + "definition": "go_goroutines", + "hide": 0, + "includeAll": true, + "label": "instance", + "multi": true, + "name": "instance", + "options": [], + "query": { + "query": "go_goroutines", + "refId": "StandardVariableQuery" + }, + "refresh": 1, + "regex": "/.*instance=\"([^\"]*).*/", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tagsQuery": "", + "type": "query", + "useTags": false + }, + { + "auto": false, + "auto_count": 30, + "auto_min": "10s", + "current": { + "selected": false, + "text": "1m", + "value": "1m" + }, + "hide": 0, + "label": "Rate Interval", + "name": "rate_interval", + "options": [ + { + "selected": true, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "3h", + "value": "3h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "1m,10m,30m,1h,3h,6h,12h,1d,7d,14d,30d", + "queryValue": "", + "refresh": 2, + "skipUrlSync": false, + "type": "interval" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Erigon Internals", + "uid": "b42a61d7-02b1-416c-8ab4-b9c864356174", + "version": 14, + "weekStart": "" +} \ No newline at end of file diff --git a/cmd/release/go.mod b/cmd/release/go.mod index fac38415e31..99bfb880ce5 100644 --- a/cmd/release/go.mod +++ b/cmd/release/go.mod @@ -1,5 +1,5 @@ module github.com/ledgerwatch/erigon/cmd/release/v2 -go 1.19 +go 1.20 require github.com/hashicorp/go-version v1.6.0 diff --git a/cmd/rpcdaemon/README.md b/cmd/rpcdaemon/README.md index 116ef65d3e9..7a275d2ac5b 100644 --- a/cmd/rpcdaemon/README.md +++ b/cmd/rpcdaemon/README.md @@ -117,7 +117,7 @@ If the healthcheck is successful it will return a 200 status code. If the healthcheck fails for any reason a status 500 will be returned. This is true if one of the criteria requested fails its check. -You can set any number of values on the `X-ERIGON-HEALTHCHECK` header. Ones that are not included are skipped in the +You can set any number of values on the `X-ERIGON-HEALTHCHECK` header. Ones that are not included are skipped in the checks. Available Options: @@ -186,6 +186,38 @@ By default data pruned after 90K blocks, can change it by flags like `--prune.hi Some methods, if not found historical data in DB, can fallback to old blocks re-execution - but it requires `h`. +### The --http.url flag + +the `--http.url` flag is an optional flag which allows one to bind the HTTP server to a socket, for example, `tcp6://:8545` or `unix:///erigon_http.socket` + +If the `--http.url` flag is set, then `--http.addr` and `--http.port` with both be ignored. + +note that this is NOT geth-style IPC. for that, read the next section, IPC endpoint(geth-compatible) + + +### HTTPS, HTTP2, and H2C + +Erigon supports HTTPS, HTTP2, and H2C out of the box. H2C is served by the default HTTP handler. + +To enable the HTTPS+HTTP2 server, add flag `--https.enabled`, along with providing flags `-https.cert="/path/to.cert"` and `--https.key=/path/to.key` + +By default, the HTTPS server will run on the HTTP port + 363. use flag `--https.port` to set the port + +The HTTPS server will inherit all other configuration parameters from http, for instance, enabling the websocket server, cors domains, or enabled namespaces + +If the `--https.url` flag is set, then `--https.addr` and `--https.port` with both be ignored. + + +### IPC endpoint (geth compatible) + +erigon supports the geth-style unix socket IPC. you can enable this with `--socket.enabled` flag, +and setting the `--socket.url` flag. For instance, if you wanted the socket to exist at `/var/run/erigon.ipc`, +you would do `--socket.url=unix:///var/run/erigon.ipc` + +you can also use `--socket.url=tcp://:` to serve the raw jsonrpc2 protocol over tcp + +the socket will inherit the namespaces from `http.api` + ### RPC Implementation Status Label "remote" means: `--private.api.addr` flag is required. @@ -196,6 +228,7 @@ The following table shows the current implementation status of Erigon's RPC daem | ------------------------------------------ |---------|--------------------------------------| | admin_nodeInfo | Yes | | | admin_peers | Yes | | +| admin_addPeer | Yes | | | | | | | web3_clientVersion | Yes | | | web3_sha3 | Yes | | @@ -247,7 +280,7 @@ The following table shows the current implementation status of Erigon's RPC daem | eth_getFilterChanges | Yes | | | eth_uninstallFilter | Yes | | | eth_getLogs | Yes | | -| | | | +| interned spe | | | | eth_accounts | No | deprecated | | eth_sendRawTransaction | Yes | `remote`. | | eth_sendTransaction | - | not yet implemented | @@ -334,6 +367,7 @@ The following table shows the current implementation status of Erigon's RPC daem | bor_getCurrentValidators | Yes | Bor only | | bor_getSnapshotProposerSequence | Yes | Bor only | | bor_getRootHash | Yes | Bor only | +| bor_getVoteOnHash | Yes | Bor only | ### GraphQL diff --git a/cmd/rpcdaemon/cli/config.go b/cmd/rpcdaemon/cli/config.go index 713ede0d79c..2d8b381a254 100644 --- a/cmd/rpcdaemon/cli/config.go +++ b/cmd/rpcdaemon/cli/config.go @@ -7,20 +7,28 @@ import ( "fmt" "net" "net/http" + "net/url" "os" "path/filepath" "strings" "time" "github.com/ledgerwatch/erigon-lib/chain" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" libstate "github.com/ledgerwatch/erigon-lib/state" + "github.com/ledgerwatch/erigon/consensus" + "github.com/ledgerwatch/erigon/consensus/bor" + "github.com/ledgerwatch/erigon/consensus/bor/contract" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" + "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core/state/temporal" "github.com/ledgerwatch/erigon/core/systemcontracts" + "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/rpc/rpccfg" "github.com/ledgerwatch/erigon/turbo/debug" @@ -50,6 +58,7 @@ import ( "github.com/ledgerwatch/erigon/cmd/rpcdaemon/health" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcservices" "github.com/ledgerwatch/erigon/cmd/utils" + "github.com/ledgerwatch/erigon/cmd/utils/flags" "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/paths" "github.com/ledgerwatch/erigon/core/rawdb" @@ -80,19 +89,9 @@ func RootCommand() (*cobra.Command, *httpcfg.HttpCfg) { rootCmd.PersistentFlags().StringVar(&cfg.PrivateApiAddr, "private.api.addr", "127.0.0.1:9090", "Erigon's components (txpool, rpcdaemon, sentry, downloader, ...) can be deployed as independent Processes on same/another server. Then components will connect to erigon by this internal grpc API. Example: 127.0.0.1:9090") rootCmd.PersistentFlags().StringVar(&cfg.DataDir, "datadir", "", "path to Erigon working directory") rootCmd.PersistentFlags().BoolVar(&cfg.GraphQLEnabled, "graphql", false, "enables graphql endpoint (disabled by default)") - rootCmd.PersistentFlags().StringVar(&cfg.HttpListenAddress, "http.addr", nodecfg.DefaultHTTPHost, "HTTP-RPC server listening interface") - rootCmd.PersistentFlags().StringVar(&cfg.TLSCertfile, "tls.cert", "", "certificate for client side TLS handshake") - rootCmd.PersistentFlags().StringVar(&cfg.TLSKeyFile, "tls.key", "", "key file for client side TLS handshake") - rootCmd.PersistentFlags().StringVar(&cfg.TLSCACert, "tls.cacert", "", "CA certificate for client side TLS handshake") - rootCmd.PersistentFlags().IntVar(&cfg.HttpPort, "http.port", nodecfg.DefaultHTTPPort, "HTTP-RPC server listening port") - rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpCORSDomain, "http.corsdomain", []string{}, "Comma separated list of domains from which to accept cross origin requests (browser enforced)") - rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpVirtualHost, "http.vhosts", nodecfg.DefaultConfig.HTTPVirtualHosts, "Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard.") - rootCmd.PersistentFlags().BoolVar(&cfg.HttpCompression, "http.compression", true, "Disable http compression") - rootCmd.PersistentFlags().StringSliceVar(&cfg.API, "http.api", []string{"eth", "erigon"}, "API's offered over the HTTP-RPC interface: eth,erigon,web3,net,debug,trace,txpool,db. Supported methods: https://github.com/ledgerwatch/erigon/tree/devel/cmd/rpcdaemon") rootCmd.PersistentFlags().Uint64Var(&cfg.Gascap, "rpc.gascap", 50_000_000, "Sets a cap on gas that can be used in eth_call/estimateGas") rootCmd.PersistentFlags().Uint64Var(&cfg.MaxTraces, "trace.maxtraces", 200, "Sets a limit on traces that can be returned in trace_filter") - rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketEnabled, "ws", false, "Enable Websockets - Same port as HTTP") - rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketCompression, "ws.compression", false, "Enable Websocket compression (RFC 7692)") + rootCmd.PersistentFlags().StringVar(&cfg.RpcAllowListFilePath, utils.RpcAccessListFlag.Name, "", "Specify granular (method-by-method) API allowlist") rootCmd.PersistentFlags().UintVar(&cfg.RpcBatchConcurrency, utils.RpcBatchConcurrencyFlag.Name, 2, utils.RpcBatchConcurrencyFlag.Usage) rootCmd.PersistentFlags().BoolVar(&cfg.RpcStreamingDisable, utils.RpcStreamingDisableFlag.Name, false, utils.RpcStreamingDisableFlag.Usage) @@ -100,16 +99,38 @@ func RootCommand() (*cobra.Command, *httpcfg.HttpCfg) { rootCmd.PersistentFlags().BoolVar(&cfg.TraceCompatibility, "trace.compat", false, "Bug for bug compatibility with OE for trace_ routines") rootCmd.PersistentFlags().StringVar(&cfg.TxPoolApiAddr, "txpool.api.addr", "", "txpool api network address, for example: 127.0.0.1:9090 (default: use value of --private.api.addr)") rootCmd.PersistentFlags().BoolVar(&cfg.Sync.UseSnapshots, "snapshot", true, utils.SnapshotFlag.Usage) + rootCmd.PersistentFlags().StringVar(&stateCacheStr, "state.cache", "0MB", "Amount of data to store in StateCache (enabled if no --datadir set). Set 0 to disable StateCache. Defaults to 0MB RAM") rootCmd.PersistentFlags().BoolVar(&cfg.GRPCServerEnabled, "grpc", false, "Enable GRPC server") rootCmd.PersistentFlags().StringVar(&cfg.GRPCListenAddress, "grpc.addr", nodecfg.DefaultGRPCHost, "GRPC server listening interface") rootCmd.PersistentFlags().IntVar(&cfg.GRPCPort, "grpc.port", nodecfg.DefaultGRPCPort, "GRPC server listening port") rootCmd.PersistentFlags().BoolVar(&cfg.GRPCHealthCheckEnabled, "grpc.healthcheck", false, "Enable GRPC health check") rootCmd.PersistentFlags().Float64Var(ðconfig.Defaults.RPCTxFeeCap, utils.RPCGlobalTxFeeCapFlag.Name, utils.RPCGlobalTxFeeCapFlag.Value, utils.RPCGlobalTxFeeCapFlag.Usage) + rootCmd.PersistentFlags().StringVar(&cfg.TLSCertfile, "tls.cert", "", "certificate for client side TLS handshake for GRPC") + rootCmd.PersistentFlags().StringVar(&cfg.TLSKeyFile, "tls.key", "", "key file for client side TLS handshake for GRPC") + rootCmd.PersistentFlags().StringVar(&cfg.TLSCACert, "tls.cacert", "", "CA certificate for client side TLS handshake for GRPC") + + rootCmd.PersistentFlags().StringSliceVar(&cfg.API, "http.api", []string{"eth", "erigon"}, "API's offered over the RPC interface: eth,erigon,web3,net,debug,trace,txpool,db. Supported methods: https://github.com/ledgerwatch/erigon/tree/devel/cmd/rpcdaemon") + + rootCmd.PersistentFlags().BoolVar(&cfg.HttpServerEnabled, "http.enabled", true, "enable http server") + rootCmd.PersistentFlags().StringVar(&cfg.HttpListenAddress, "http.addr", nodecfg.DefaultHTTPHost, "HTTP server listening interface") + rootCmd.PersistentFlags().IntVar(&cfg.HttpPort, "http.port", nodecfg.DefaultHTTPPort, "HTTP server listening port") + rootCmd.PersistentFlags().StringVar(&cfg.HttpURL, "http.url", "", "HTTP server listening url. will OVERRIDE http.addr and http.port. will NOT respect http paths. prefix supported are tcp, unix") + rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpCORSDomain, "http.corsdomain", []string{}, "Comma separated list of domains from which to accept cross origin requests (browser enforced)") + rootCmd.PersistentFlags().StringSliceVar(&cfg.HttpVirtualHost, "http.vhosts", nodecfg.DefaultConfig.HTTPVirtualHosts, "Comma separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard.") + rootCmd.PersistentFlags().BoolVar(&cfg.HttpCompression, "http.compression", true, "Disable http compression") + rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketEnabled, "ws", false, "Enable Websockets - Same port as HTTP[S]") + rootCmd.PersistentFlags().BoolVar(&cfg.WebsocketCompression, "ws.compression", false, "Enable Websocket compression (RFC 7692)") - rootCmd.PersistentFlags().BoolVar(&cfg.TCPServerEnabled, "tcp", false, "Enable TCP server") - rootCmd.PersistentFlags().StringVar(&cfg.TCPListenAddress, "tcp.addr", nodecfg.DefaultTCPHost, "TCP server listening interface") - rootCmd.PersistentFlags().IntVar(&cfg.TCPPort, "tcp.port", nodecfg.DefaultTCPPort, "TCP server listening port") + rootCmd.PersistentFlags().BoolVar(&cfg.HttpsServerEnabled, "https.enabled", false, "enable http server") + rootCmd.PersistentFlags().StringVar(&cfg.HttpsListenAddress, "https.addr", nodecfg.DefaultHTTPHost, "rpc HTTPS server listening interface") + rootCmd.PersistentFlags().IntVar(&cfg.HttpsPort, "https.port", 0, "rpc HTTPS server listening port. default to http+363 if not set") + rootCmd.PersistentFlags().StringVar(&cfg.HttpsURL, "https.url", "", "rpc HTTPS server listening url. will OVERRIDE https.addr and https.port. will NOT respect paths. prefix supported are tcp, unix") + rootCmd.PersistentFlags().StringVar(&cfg.HttpsCertfile, "https.cert", "", "certificate for rpc HTTPS server") + rootCmd.PersistentFlags().StringVar(&cfg.HttpsKeyFile, "https.key", "", "key file for rpc HTTPS server") + + rootCmd.PersistentFlags().BoolVar(&cfg.SocketServerEnabled, "socket.enabled", false, "Enable IPC server") + rootCmd.PersistentFlags().StringVar(&cfg.SocketListenUrl, "socket.url", "unix:///var/run/erigon.sock", "IPC server listening url. prefix supported are tcp, unix") rootCmd.PersistentFlags().BoolVar(&cfg.TraceRequests, utils.HTTPTraceFlag.Name, false, "Trace HTTP requests with INFO level") rootCmd.PersistentFlags().DurationVar(&cfg.HTTPTimeouts.ReadTimeout, "http.timeouts.read", rpccfg.DefaultHTTPTimeouts.ReadTimeout, "Maximum duration for reading the entire request, including the body.") @@ -118,8 +139,10 @@ func RootCommand() (*cobra.Command, *httpcfg.HttpCfg) { rootCmd.PersistentFlags().DurationVar(&cfg.EvmCallTimeout, "rpc.evmtimeout", rpccfg.DefaultEvmCallTimeout, "Maximum amount of time to wait for the answer from EVM call.") rootCmd.PersistentFlags().IntVar(&cfg.BatchLimit, utils.RpcBatchLimit.Name, utils.RpcBatchLimit.Value, utils.RpcBatchLimit.Usage) rootCmd.PersistentFlags().IntVar(&cfg.ReturnDataLimit, utils.RpcReturnDataLimit.Name, utils.RpcReturnDataLimit.Value, utils.RpcReturnDataLimit.Usage) - + rootCmd.PersistentFlags().BoolVar(&cfg.AllowUnprotectedTxs, utils.AllowUnprotectedTxs.Name, utils.AllowUnprotectedTxs.Value, utils.AllowUnprotectedTxs.Usage) + rootCmd.PersistentFlags().IntVar(&cfg.MaxGetProofRewindBlockCount, utils.RpcMaxGetProofRewindBlockCount.Name, utils.RpcMaxGetProofRewindBlockCount.Value, utils.RpcMaxGetProofRewindBlockCount.Usage) rootCmd.PersistentFlags().Uint64Var(&cfg.OtsMaxPageSize, utils.OtsSearchMaxCapFlag.Name, utils.OtsSearchMaxCapFlag.Value, utils.OtsSearchMaxCapFlag.Usage) + rootCmd.PersistentFlags().DurationVar(&cfg.RPCSlowLogThreshold, utils.RPCSlowFlag.Name, utils.RPCSlowFlag.Value, utils.RPCSlowFlag.Usage) if err := rootCmd.MarkPersistentFlagFilename("rpc.accessList", "json"); err != nil { panic(err) @@ -145,7 +168,9 @@ func RootCommand() (*cobra.Command, *httpcfg.HttpCfg) { if cfg.DataDir == "" { cfg.DataDir = paths.DefaultDataDir() } - cfg.Dirs = datadir.New(cfg.DataDir) + var dataDir flags.DirectoryString + dataDir.Set(cfg.DataDir) + cfg.Dirs = datadir.New(string(dataDir)) } if cfg.TxPoolApiAddr == "" { cfg.TxPoolApiAddr = cfg.PrivateApiAddr @@ -269,10 +294,9 @@ func EmbeddedServices(ctx context.Context, // RemoteServices - use when RPCDaemon run as independent process. Still it can use --datadir flag to enable // `cfg.WithDatadir` (mode when it on 1 machine with Erigon) -func RemoteServices(ctx context.Context, cfg httpcfg.HttpCfg, logger log.Logger, rootCancel context.CancelFunc) ( - db kv.RoDB, borDb kv.RoDB, - eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, - stateCache kvcache.Cache, blockReader services.FullBlockReader, +func RemoteServices(ctx context.Context, cfg *httpcfg.HttpCfg, logger log.Logger, rootCancel context.CancelFunc) ( + db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, + stateCache kvcache.Cache, blockReader services.FullBlockReader, engine consensus.EngineReader, ff *rpchelper.Filters, agg *libstate.AggregatorV3, err error) { if !cfg.WithDatadir && cfg.PrivateApiAddr == "" { return nil, nil, nil, nil, nil, nil, nil, ff, nil, fmt.Errorf("either remote db or local db must be specified") @@ -295,13 +319,26 @@ func RemoteServices(ctx context.Context, cfg httpcfg.HttpCfg, logger log.Logger, // Configure DB first var allSnapshots *freezeblocks.RoSnapshots + var allBorSnapshots *freezeblocks.BorRoSnapshots onNewSnapshot := func() {} + + var cc *chain.Config + if cfg.WithDatadir { + // Opening all databases in Accede and non-Readonly modes. Here is the motivation: + // Rpcdaemon must provide 2 features: + // 1. ability to start even if Erigon is down (to prevent cascade outage). + // 2. don't create databases by itself - because it doesn't know right parameters (Erigon may have cli flags: pagesize, etc...) + // Some databases (consensus, txpool, downloader) are woring in SafeNoSync mode - in this mode + // power-off may leave db in recoverable-non-consistent state. Such db can be recovered only if open in non-Readonly mode. + // Accede mode preventing db-creation: + // at first start RpcDaemon may start earlier than Erigon + // Accede mode will check db existence (may wait with retries). It's ok to fail in this case - some supervisor will restart us. var rwKv kv.RwDB dir.MustExist(cfg.Dirs.SnapHistory) - logger.Trace("Creating chain db", "path", cfg.Dirs.Chaindata) + logger.Warn("Opening chain db", "path", cfg.Dirs.Chaindata) limiter := semaphore.NewWeighted(int64(cfg.DBReadConcurrency)) - rwKv, err = kv2.NewMDBX(logger).RoTxsLimiter(limiter).Path(cfg.Dirs.Chaindata).Readonly().Open() + rwKv, err = kv2.NewMDBX(logger).RoTxsLimiter(limiter).Path(cfg.Dirs.Chaindata).Accede().Open(ctx) if err != nil { return nil, nil, nil, nil, nil, nil, nil, ff, nil, err } @@ -310,7 +347,6 @@ func RemoteServices(ctx context.Context, cfg httpcfg.HttpCfg, logger log.Logger, } db = rwKv - var cc *chain.Config if err := db.View(context.Background(), func(tx kv.Tx) error { genesisHash, err := rawdb.ReadCanonicalHash(tx, 0) if err != nil { @@ -338,10 +374,13 @@ func RemoteServices(ctx context.Context, cfg httpcfg.HttpCfg, logger log.Logger, // Configure sapshots allSnapshots = freezeblocks.NewRoSnapshots(cfg.Snap, cfg.Dirs.Snap, logger) + allBorSnapshots = freezeblocks.NewBorRoSnapshots(cfg.Snap, cfg.Dirs.Snap, logger) // To povide good UX - immediatly can read snapshots after RPCDaemon start, even if Erigon is down // Erigon does store list of snapshots in db: means RPCDaemon can read this list now, but read by `remoteKvClient.Snapshots` after establish grpc connection allSnapshots.OptimisticReopenWithDB(db) + allBorSnapshots.OptimisticalyReopenWithDB(db) allSnapshots.LogStat() + allBorSnapshots.LogStat() if agg, err = libstate.NewAggregatorV3(ctx, cfg.Dirs.SnapHistory, cfg.Dirs.Tmp, ethconfig.HistoryV3AggregationStep, db, logger); err != nil { return nil, nil, nil, nil, nil, nil, nil, ff, nil, fmt.Errorf("create aggregator: %w", err) @@ -367,6 +406,11 @@ func RemoteServices(ctx context.Context, cfg httpcfg.HttpCfg, logger log.Logger, } else { allSnapshots.LogStat() } + if err := allBorSnapshots.ReopenList(reply.BlocksFiles, true); err != nil { + logger.Error("[bor snapshots] reopen", "err", err) + } else { + allSnapshots.LogStat() + } _ = reply.HistoryFiles @@ -384,7 +428,7 @@ func RemoteServices(ctx context.Context, cfg httpcfg.HttpCfg, logger log.Logger, }() } onNewSnapshot() - blockReader = freezeblocks.NewBlockReader(allSnapshots) + blockReader = freezeblocks.NewBlockReader(allSnapshots, allBorSnapshots) var histV3Enabled bool _ = db.View(ctx, func(tx kv.Tx) error { @@ -404,26 +448,8 @@ func RemoteServices(ctx context.Context, cfg httpcfg.HttpCfg, logger log.Logger, if db == nil { db = remoteKv } - if cfg.WithDatadir { - // bor (consensus) specific db - var borKv kv.RoDB - borDbPath := filepath.Join(cfg.DataDir, "bor") - { - // ensure db exist - tmpDb, err := kv2.NewMDBX(logger).Path(borDbPath).Label(kv.ConsensusDB).Open() - if err != nil { - return nil, nil, nil, nil, nil, nil, nil, ff, nil, err - } - tmpDb.Close() - } - logger.Trace("Creating consensus db", "path", borDbPath) - borKv, err = kv2.NewMDBX(logger).Path(borDbPath).Label(kv.ConsensusDB).Readonly().Open() - if err != nil { - return nil, nil, nil, nil, nil, nil, nil, ff, nil, err - } - // Skip the compatibility check, until we have a schema in erigon-lib - borDb = borKv - } else { + + if !cfg.WithDatadir { if cfg.StateCache.CacheSize > 0 { stateCache = kvcache.New(cfg.StateCache) } else { @@ -455,6 +481,40 @@ func RemoteServices(ctx context.Context, cfg httpcfg.HttpCfg, logger log.Logger, blockReader = remoteEth eth = remoteEth + var remoteCE *remoteConsensusEngine + + if cfg.WithDatadir { + switch { + case cc != nil: + switch { + case cc.Bor != nil: + var borKv kv.RoDB + + // bor (consensus) specific db + borDbPath := filepath.Join(cfg.DataDir, "bor") + logger.Warn("[rpc] Opening Bor db", "path", borDbPath) + borKv, err = kv2.NewMDBX(logger).Path(borDbPath).Label(kv.ConsensusDB).Accede().Open(ctx) + if err != nil { + return nil, nil, nil, nil, nil, nil, nil, ff, nil, err + } + // Skip the compatibility check, until we have a schema in erigon-lib + + engine = bor.NewRo(cc, borKv, blockReader, + span.NewChainSpanner(contract.ValidatorSet(), cc, true, logger), + contract.NewGenesisContractsClient(cc, cc.Bor.ValidatorContract, cc.Bor.StateReceiverContract, logger), logger) + + default: + engine = ethash.NewFaker() + } + + default: + engine = ethash.NewFaker() + } + } else { + remoteCE = &remoteConsensusEngine{} + engine = remoteCE + } + go func() { if !remoteKv.EnsureVersionCompatibility() { rootCancel() @@ -468,13 +528,18 @@ func RemoteServices(ctx context.Context, cfg httpcfg.HttpCfg, logger log.Logger, if !txPoolService.EnsureVersionCompatibility() { rootCancel() } + if remoteCE != nil { + if !remoteCE.init(db, blockReader, remoteKvClient, logger) { + rootCancel() + } + } }() ff = rpchelper.New(ctx, eth, txPool, mining, onNewSnapshot, logger) - return db, borDb, eth, txPool, mining, stateCache, blockReader, ff, agg, err + return db, eth, txPool, mining, stateCache, blockReader, engine, ff, agg, err } -func StartRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) error { +func StartRpcServer(ctx context.Context, cfg *httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) error { if cfg.Enabled { return startRegularRpcServer(ctx, cfg, rpcAPI, logger) } @@ -482,7 +547,7 @@ func StartRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rpc.API, return nil } -func StartRpcServerWithJwtAuthentication(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) error { +func StartRpcServerWithJwtAuthentication(ctx context.Context, cfg *httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) error { if len(rpcAPI) == 0 { return nil } @@ -494,11 +559,9 @@ func StartRpcServerWithJwtAuthentication(ctx context.Context, cfg httpcfg.HttpCf return nil } -func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) error { +func startRegularRpcServer(ctx context.Context, cfg *httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) error { // register apis and create handler stack - httpEndpoint := fmt.Sprintf("%s:%d", cfg.HttpListenAddress, cfg.HttpPort) - - srv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, cfg.RpcStreamingDisable, logger) + srv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, cfg.RpcStreamingDisable, logger, cfg.RPCSlowLogThreshold) allowListForRPC, err := parseAllowListForRPC(cfg.RpcAllowListFilePath) if err != nil { @@ -508,6 +571,8 @@ func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rp srv.SetBatchLimit(cfg.BatchLimit) + defer srv.Stop() + var defaultAPIList []rpc.API for _, api := range rpcAPI { @@ -527,43 +592,111 @@ func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rp return fmt.Errorf("could not start register RPC apis: %w", err) } + info := []interface{}{ + "ws", cfg.WebsocketEnabled, + "ws.compression", cfg.WebsocketCompression, "grpc", cfg.GRPCServerEnabled, + } + + if cfg.SocketServerEnabled { + socketUrl, err := url.Parse(cfg.SocketListenUrl) + if err != nil { + return fmt.Errorf("malformatted socket url %s: %w", cfg.SocketListenUrl, err) + } + tcpListener, err := net.Listen(socketUrl.Scheme, socketUrl.Host+socketUrl.EscapedPath()) + if err != nil { + return fmt.Errorf("could not start Socket Listener: %w", err) + } + defer tcpListener.Close() + go func() { + err := srv.ServeListener(tcpListener) + if err != nil { + if !errors.Is(err, net.ErrClosed) { + logger.Error("Socket Listener Fatal Error", "err", err) + } + } + }() + info = append(info, "socket.url", socketUrl) + logger.Info("Socket Endpoint opened", "url", socketUrl) + } + httpHandler := node.NewHTTPHandlerStack(srv, cfg.HttpCORSDomain, cfg.HttpVirtualHost, cfg.HttpCompression) var wsHandler http.Handler if cfg.WebsocketEnabled { wsHandler = srv.WebsocketHandler([]string{"*"}, nil, cfg.WebsocketCompression, logger) } - graphQLHandler := graphql.CreateHandler(defaultAPIList) - apiHandler, err := createHandler(cfg, defaultAPIList, httpHandler, wsHandler, graphQLHandler, nil) if err != nil { return err } - listener, httpAddr, err := node.StartHTTPEndpoint(httpEndpoint, cfg.HTTPTimeouts, apiHandler) - if err != nil { - return fmt.Errorf("could not start RPC api: %w", err) + // Separate Websocket handler if websocket port flag specified + if cfg.WebsocketEnabled && cfg.WebsocketPort != cfg.HttpPort { + wsEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.HttpListenAddress, cfg.WebsocketPort) + wsApiHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if isWebsocket(r) { + wsHandler.ServeHTTP(w, r) + } + }) + wsListener, wsAddr, err := node.StartHTTPEndpoint(wsEndpoint, &node.HttpEndpointConfig{Timeouts: cfg.HTTPTimeouts}, wsApiHandler) + if err != nil { + return fmt.Errorf("could not start separate Websocket RPC api at port %d: %w", cfg.WebsocketPort, err) + } + info = append(info, "websocket.url", wsAddr) + defer func() { + shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + _ = wsListener.Shutdown(shutdownCtx) + logger.Info("HTTP endpoint closed", "url", wsAddr) + }() } - if cfg.TCPServerEnabled { - tcpEndpoint := fmt.Sprintf("%s:%d", cfg.TCPListenAddress, cfg.TCPPort) - tcpListener, err := net.Listen("tcp", tcpEndpoint) - if err != nil { - return fmt.Errorf("could not start TCP Listener: %w", err) + if cfg.HttpServerEnabled { + httpEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.HttpListenAddress, cfg.HttpPort) + if cfg.HttpURL != "" { + httpEndpoint = cfg.HttpURL } - go func() { - defer tcpListener.Close() - err := srv.ServeListener(tcpListener) - if err != nil { - logger.Error("TCP Listener Fatal Error", "err", err) - } + listener, httpAddr, err := node.StartHTTPEndpoint(httpEndpoint, &node.HttpEndpointConfig{ + Timeouts: cfg.HTTPTimeouts, + }, apiHandler) + if err != nil { + return fmt.Errorf("could not start RPC api: %w", err) + } + info = append(info, "http.url", httpAddr) + defer func() { + shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + _ = listener.Shutdown(shutdownCtx) + logger.Info("HTTP endpoint closed", "url", httpAddr) }() - logger.Info("TCP Endpoint opened", "url", tcpEndpoint) } - - info := []interface{}{ - "url", httpAddr, "ws", cfg.WebsocketEnabled, - "ws.compression", cfg.WebsocketCompression, "grpc", cfg.GRPCServerEnabled, + if cfg.HttpsURL != "" { + cfg.HttpsServerEnabled = true + } + if cfg.HttpsServerEnabled { + if cfg.HttpsPort == 0 { + cfg.HttpsPort = cfg.HttpPort + 363 + } + httpsEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.HttpsListenAddress, cfg.HttpsPort) + if cfg.HttpsURL != "" { + httpsEndpoint = cfg.HttpsURL + } + listener, httpAddr, err := node.StartHTTPEndpoint(httpsEndpoint, &node.HttpEndpointConfig{ + Timeouts: cfg.HTTPTimeouts, + HTTPS: true, + CertFile: cfg.HttpsCertfile, + KeyFile: cfg.HttpsKeyFile, + }, apiHandler) + if err != nil { + return fmt.Errorf("could not start RPC api: %w", err) + } + info = append(info, "https.url", httpAddr) + defer func() { + shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + _ = listener.Shutdown(shutdownCtx) + logger.Info("HTTPS endpoint closed", "url", httpAddr) + }() } var ( @@ -584,26 +717,20 @@ func startRegularRpcServer(ctx context.Context, cfg httpcfg.HttpCfg, rpcAPI []rp } go grpcServer.Serve(grpcListener) info = append(info, "grpc.port", cfg.GRPCPort) - } - - logger.Info("HTTP endpoint opened", info...) - - defer func() { - srv.Stop() - shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - _ = listener.Shutdown(shutdownCtx) - logger.Info("HTTP endpoint closed", "url", httpAddr) - if cfg.GRPCServerEnabled { - if cfg.GRPCHealthCheckEnabled { - healthServer.Shutdown() + defer func() { + if cfg.GRPCServerEnabled { + if cfg.GRPCHealthCheckEnabled { + healthServer.Shutdown() + } + grpcServer.GracefulStop() + _ = grpcListener.Close() + logger.Info("GRPC endpoint closed", "url", grpcEndpoint) } - grpcServer.GracefulStop() - _ = grpcListener.Close() - logger.Info("GRPC endpoint closed", "url", grpcEndpoint) - } - }() + }() + } + + logger.Info("JsonRpc endpoint opened", info...) <-ctx.Done() logger.Info("Exiting...") return nil @@ -616,8 +743,8 @@ type engineInfo struct { EngineHttpEndpoint string } -func startAuthenticatedRpcServer(cfg httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) (*engineInfo, error) { - srv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, cfg.RpcStreamingDisable, logger) +func startAuthenticatedRpcServer(cfg *httpcfg.HttpCfg, rpcAPI []rpc.API, logger log.Logger) (*engineInfo, error) { + srv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, cfg.RpcStreamingDisable, logger, cfg.RPCSlowLogThreshold) engineListener, engineSrv, engineHttpEndpoint, err := createEngineListener(cfg, rpcAPI, logger) if err != nil { @@ -653,7 +780,7 @@ func isWebsocket(r *http.Request) bool { // obtainJWTSecret loads the jwt-secret, either from the provided config, // or from the default location. If neither of those are present, it generates // a new secret and stores to the default location. -func obtainJWTSecret(cfg httpcfg.HttpCfg, logger log.Logger) ([]byte, error) { +func obtainJWTSecret(cfg *httpcfg.HttpCfg, logger log.Logger) ([]byte, error) { // try reading from file logger.Info("Reading JWT secret", "path", cfg.JWTSecretPath) // If we run the rpcdaemon and datadir is not specified we just use jwt.hex in current directory. @@ -679,7 +806,7 @@ func obtainJWTSecret(cfg httpcfg.HttpCfg, logger log.Logger) ([]byte, error) { return jwtSecret, nil } -func createHandler(cfg httpcfg.HttpCfg, apiList []rpc.API, httpHandler http.Handler, wsHandler http.Handler, graphQLHandler http.Handler, jwtSecret []byte) (http.Handler, error) { +func createHandler(cfg *httpcfg.HttpCfg, apiList []rpc.API, httpHandler http.Handler, wsHandler http.Handler, graphQLHandler http.Handler, jwtSecret []byte) (http.Handler, error) { var handler http.Handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if cfg.GraphQLEnabled && graphql.ProcessGraphQLcheckIfNeeded(graphQLHandler, w, r) { return @@ -704,10 +831,10 @@ func createHandler(cfg httpcfg.HttpCfg, apiList []rpc.API, httpHandler http.Hand return handler, nil } -func createEngineListener(cfg httpcfg.HttpCfg, engineApi []rpc.API, logger log.Logger) (*http.Server, *rpc.Server, string, error) { - engineHttpEndpoint := fmt.Sprintf("%s:%d", cfg.AuthRpcHTTPListenAddress, cfg.AuthRpcPort) +func createEngineListener(cfg *httpcfg.HttpCfg, engineApi []rpc.API, logger log.Logger) (*http.Server, *rpc.Server, string, error) { + engineHttpEndpoint := fmt.Sprintf("tcp://%s:%d", cfg.AuthRpcHTTPListenAddress, cfg.AuthRpcPort) - engineSrv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, true, logger) + engineSrv := rpc.NewServer(cfg.RpcBatchConcurrency, cfg.TraceRequests, true, logger, cfg.RPCSlowLogThreshold) if err := node.RegisterApisFromWhitelist(engineApi, nil, engineSrv, true, logger); err != nil { return nil, nil, "", fmt.Errorf("could not start register RPC engine api: %w", err) @@ -729,7 +856,9 @@ func createEngineListener(cfg httpcfg.HttpCfg, engineApi []rpc.API, logger log.L return nil, nil, "", err } - engineListener, engineAddr, err := node.StartHTTPEndpoint(engineHttpEndpoint, cfg.AuthRpcTimeouts, engineApiHandler) + engineListener, engineAddr, err := node.StartHTTPEndpoint(engineHttpEndpoint, &node.HttpEndpointConfig{ + Timeouts: cfg.AuthRpcTimeouts, + }, engineApiHandler) if err != nil { return nil, nil, "", fmt.Errorf("could not start RPC api: %w", err) } @@ -739,3 +868,91 @@ func createEngineListener(cfg httpcfg.HttpCfg, engineApi []rpc.API, logger log.L return engineListener, engineSrv, engineAddr.String(), nil } + +type remoteConsensusEngine struct { + engine consensus.EngineReader +} + +func (e *remoteConsensusEngine) HasEngine() bool { + return e.engine != nil +} + +func (e *remoteConsensusEngine) Engine() consensus.EngineReader { + return e.engine +} + +func (e *remoteConsensusEngine) init(db kv.RoDB, blockReader services.FullBlockReader, remoteKV remote.KVClient, logger log.Logger) bool { + var cc *chain.Config + + if err := db.View(context.Background(), func(tx kv.Tx) error { + genesisHash, err := rawdb.ReadCanonicalHash(tx, 0) + if err != nil { + return err + } + cc, err = rawdb.ReadChainConfig(tx, genesisHash) + if err != nil { + return err + } + return nil + }); err != nil { + return false + } + + if cc.Bor != nil { + borKv, err := remotedb.NewRemote(gointerfaces.VersionFromProto(remotedbserver.KvServiceAPIVersion), logger, remoteKV). + WithBucketsConfig(kv.BorTablesCfg). + Open() + + if err != nil { + return false + } + + e.engine = bor.NewRo(cc, borKv, blockReader, + span.NewChainSpanner(contract.ValidatorSet(), cc, true, logger), + contract.NewGenesisContractsClient(cc, cc.Bor.ValidatorContract, cc.Bor.StateReceiverContract, logger), logger) + } else { + e.engine = ethash.NewFaker() + } + + return true +} + +func (e *remoteConsensusEngine) Author(header *types.Header) (libcommon.Address, error) { + if e.engine != nil { + return e.engine.Author(header) + } + + return libcommon.Address{}, fmt.Errorf("remote consensus engine not iinitialized") +} + +func (e *remoteConsensusEngine) IsServiceTransaction(sender libcommon.Address, syscall consensus.SystemCall) bool { + if e.engine != nil { + return e.engine.IsServiceTransaction(sender, syscall) + } + + return false +} + +func (e *remoteConsensusEngine) Type() chain.ConsensusName { + if e.engine != nil { + return e.engine.Type() + } + + return "" +} + +func (e *remoteConsensusEngine) CalculateRewards(config *chain.Config, header *types.Header, uncles []*types.Header, syscall consensus.SystemCall) ([]consensus.Reward, error) { + if e.engine != nil { + return e.engine.CalculateRewards(config, header, uncles, syscall) + } + + return nil, fmt.Errorf("remote consensus engine not iinitialized") +} + +func (e *remoteConsensusEngine) Close() error { + if e.engine != nil { + return e.engine.Close() + } + + return nil +} diff --git a/cmd/rpcdaemon/cli/config_test.go b/cmd/rpcdaemon/cli/config_test.go new file mode 100644 index 00000000000..c14c9cf9456 --- /dev/null +++ b/cmd/rpcdaemon/cli/config_test.go @@ -0,0 +1,21 @@ +package cli + +import ( + "net/url" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestParseSocketUrl(t *testing.T) { + t.Run("sock", func(t *testing.T) { + socketUrl, err := url.Parse("unix:///some/file/path.sock") + require.NoError(t, err) + require.EqualValues(t, "/some/file/path.sock", socketUrl.Host+socketUrl.EscapedPath()) + }) + t.Run("sock", func(t *testing.T) { + socketUrl, err := url.Parse("tcp://localhost:1234") + require.NoError(t, err) + require.EqualValues(t, "localhost:1234", socketUrl.Host+socketUrl.EscapedPath()) + }) +} diff --git a/cmd/rpcdaemon/cli/httpcfg/http_cfg.go b/cmd/rpcdaemon/cli/httpcfg/http_cfg.go index a41f562342b..7a0930750f2 100644 --- a/cmd/rpcdaemon/cli/httpcfg/http_cfg.go +++ b/cmd/rpcdaemon/cli/httpcfg/http_cfg.go @@ -10,37 +10,51 @@ import ( ) type HttpCfg struct { - Enabled bool - PrivateApiAddr string + Enabled bool + GraphQLEnabled bool WithDatadir bool // Erigon's database can be read by separated processes on same machine - in read-only mode - with full support of transactions. It will share same "OS PageCache" with Erigon process. DataDir string Dirs datadir.Dirs - HttpListenAddress string AuthRpcHTTPListenAddress string TLSCertfile string TLSCACert string TLSKeyFile string - HttpPort int - AuthRpcPort int - HttpCORSDomain []string - HttpVirtualHost []string - AuthRpcVirtualHost []string - HttpCompression bool - API []string - Gascap uint64 - MaxTraces uint64 - WebsocketEnabled bool - WebsocketCompression bool - RpcAllowListFilePath string - RpcBatchConcurrency uint - RpcStreamingDisable bool - DBReadConcurrency int - TraceCompatibility bool // Bug for bug compatibility for trace_ routines with OpenEthereum - TxPoolApiAddr string - StateCache kvcache.CoherentConfig - Snap ethconfig.BlocksFreezing - Sync ethconfig.Sync + + HttpServerEnabled bool + HttpURL string + HttpListenAddress string + HttpPort int + HttpCORSDomain []string + HttpVirtualHost []string + AuthRpcVirtualHost []string + HttpCompression bool + + HttpsServerEnabled bool + HttpsURL string + HttpsListenAddress string + HttpsPort int + HttpsCertfile string + HttpsKeyFile string + + AuthRpcPort int + PrivateApiAddr string + + API []string + Gascap uint64 + MaxTraces uint64 + WebsocketPort int + WebsocketEnabled bool + WebsocketCompression bool + RpcAllowListFilePath string + RpcBatchConcurrency uint + RpcStreamingDisable bool + DBReadConcurrency int + TraceCompatibility bool // Bug for bug compatibility for trace_ routines with OpenEthereum + TxPoolApiAddr string + StateCache kvcache.CoherentConfig + Snap ethconfig.BlocksFreezing + Sync ethconfig.Sync // GRPC server GRPCServerEnabled bool @@ -48,10 +62,9 @@ type HttpCfg struct { GRPCPort int GRPCHealthCheckEnabled bool - // Raw TCP Server - TCPServerEnabled bool - TCPListenAddress string - TCPPort int + // Socket Server + SocketServerEnabled bool + SocketListenUrl string JWTSecretPath string // Engine API Authentication TraceRequests bool // Always trace requests in INFO level @@ -61,9 +74,12 @@ type HttpCfg struct { LogDirVerbosity string LogDirPath string - BatchLimit int // Maximum number of requests in a batch - ReturnDataLimit int // Maximum number of bytes returned from calls (like eth_call) - + BatchLimit int // Maximum number of requests in a batch + ReturnDataLimit int // Maximum number of bytes returned from calls (like eth_call) + AllowUnprotectedTxs bool // Whether to allow non EIP-155 protected transactions txs over RPC + MaxGetProofRewindBlockCount int //Max GetProof rewind block count // Ots API OtsMaxPageSize uint64 + + RPCSlowLogThreshold time.Duration } diff --git a/cmd/rpcdaemon/graphql/graph/generated.go b/cmd/rpcdaemon/graphql/graph/generated.go index 2fe792cabcb..d1cfe32e753 100644 --- a/cmd/rpcdaemon/graphql/graph/generated.go +++ b/cmd/rpcdaemon/graphql/graph/generated.go @@ -24,6 +24,7 @@ import ( // NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface. func NewExecutableSchema(cfg Config) graphql.ExecutableSchema { return &executableSchema{ + schema: cfg.Schema, resolvers: cfg.Resolvers, directives: cfg.Directives, complexity: cfg.Complexity, @@ -31,6 +32,7 @@ func NewExecutableSchema(cfg Config) graphql.ExecutableSchema { } type Config struct { + Schema *ast.Schema Resolvers ResolverRoot Directives DirectiveRoot Complexity ComplexityRoot @@ -182,12 +184,16 @@ type QueryResolver interface { } type executableSchema struct { + schema *ast.Schema resolvers ResolverRoot directives DirectiveRoot complexity ComplexityRoot } func (e *executableSchema) Schema() *ast.Schema { + if e.schema != nil { + return e.schema + } return parsedSchema } @@ -1023,14 +1029,14 @@ func (ec *executionContext) introspectSchema() (*introspection.Schema, error) { if ec.DisableIntrospection { return nil, errors.New("introspection disabled") } - return introspection.WrapSchema(parsedSchema), nil + return introspection.WrapSchema(ec.Schema()), nil } func (ec *executionContext) introspectType(name string) (*introspection.Type, error) { if ec.DisableIntrospection { return nil, errors.New("introspection disabled") } - return introspection.WrapTypeFromDef(parsedSchema, parsedSchema.Types[name]), nil + return introspection.WrapTypeFromDef(ec.Schema(), ec.Schema().Types[name]), nil } //go:embed "schema.graphqls" @@ -1738,7 +1744,7 @@ func (ec *executionContext) fieldContext_Account_storage(ctx context.Context, fi ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Account_storage_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -2215,7 +2221,7 @@ func (ec *executionContext) fieldContext_Block_miner(ctx context.Context, field ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Block_miner_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -2911,7 +2917,7 @@ func (ec *executionContext) fieldContext_Block_ommerAt(ctx context.Context, fiel ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Block_ommerAt_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -3156,7 +3162,7 @@ func (ec *executionContext) fieldContext_Block_transactionAt(ctx context.Context ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Block_transactionAt_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -3223,7 +3229,7 @@ func (ec *executionContext) fieldContext_Block_logs(ctx context.Context, field g ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Block_logs_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -3290,7 +3296,7 @@ func (ec *executionContext) fieldContext_Block_account(ctx context.Context, fiel ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Block_account_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -3350,7 +3356,7 @@ func (ec *executionContext) fieldContext_Block_call(ctx context.Context, field g ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Block_call_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -3405,7 +3411,7 @@ func (ec *executionContext) fieldContext_Block_estimateGas(ctx context.Context, ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Block_estimateGas_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -3736,7 +3742,7 @@ func (ec *executionContext) fieldContext_Log_account(ctx context.Context, field ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Log_account_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -3977,7 +3983,7 @@ func (ec *executionContext) fieldContext_Mutation_sendRawTransaction(ctx context ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Mutation_sendRawTransaction_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -4183,7 +4189,7 @@ func (ec *executionContext) fieldContext_Pending_account(ctx context.Context, fi ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Pending_account_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -4243,7 +4249,7 @@ func (ec *executionContext) fieldContext_Pending_call(ctx context.Context, field ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Pending_call_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -4298,7 +4304,7 @@ func (ec *executionContext) fieldContext_Pending_estimateGas(ctx context.Context ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Pending_estimateGas_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -4414,7 +4420,7 @@ func (ec *executionContext) fieldContext_Query_block(ctx context.Context, field ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Query_block_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -4533,7 +4539,7 @@ func (ec *executionContext) fieldContext_Query_blocks(ctx context.Context, field ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Query_blocks_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -4695,7 +4701,7 @@ func (ec *executionContext) fieldContext_Query_transaction(ctx context.Context, ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Query_transaction_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -4762,7 +4768,7 @@ func (ec *executionContext) fieldContext_Query_logs(ctx context.Context, field g ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Query_logs_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -5017,7 +5023,7 @@ func (ec *executionContext) fieldContext_Query___type(ctx context.Context, field ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -5400,7 +5406,7 @@ func (ec *executionContext) fieldContext_Transaction_from(ctx context.Context, f ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Transaction_from_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -5464,7 +5470,7 @@ func (ec *executionContext) fieldContext_Transaction_to(ctx context.Context, fie ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Transaction_to_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -6096,7 +6102,7 @@ func (ec *executionContext) fieldContext_Transaction_createdContract(ctx context ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field_Transaction_createdContract_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -7883,7 +7889,7 @@ func (ec *executionContext) fieldContext___Type_fields(ctx context.Context, fiel ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } @@ -8071,7 +8077,7 @@ func (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, ctx = graphql.WithFieldContext(ctx, fc) if fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) - return + return fc, err } return fc, nil } diff --git a/cmd/rpcdaemon/graphql/graph/helpers.go b/cmd/rpcdaemon/graphql/graph/helpers.go index 4bc6c7da4e6..77b90c38607 100644 --- a/cmd/rpcdaemon/graphql/graph/helpers.go +++ b/cmd/rpcdaemon/graphql/graph/helpers.go @@ -3,6 +3,7 @@ package graph import ( "encoding/hex" "fmt" + hexutil2 "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "strconv" @@ -11,7 +12,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) @@ -21,16 +21,16 @@ func convertDataToStringP(abstractMap map[string]interface{}, field string) *str switch v := abstractMap[field].(type) { case int64: result = strconv.FormatInt(v, 10) - case *hexutil.Big: + case *hexutil2.Big: if reflect.ValueOf(abstractMap[field]).IsZero() { return nil } result = v.String() case hexutility.Bytes: result = v.String() - case hexutil.Uint: + case hexutil2.Uint: result = v.String() - case hexutil.Uint64: + case hexutil2.Uint64: result = v.String() case *libcommon.Address: if reflect.ValueOf(abstractMap[field]).IsZero() { @@ -66,15 +66,15 @@ func convertDataToIntP(abstractMap map[string]interface{}, field string) *int { var result int switch v := abstractMap[field].(type) { - case hexutil.Uint64: - resultUint, err := hexutil.DecodeUint64(v.String()) + case hexutil2.Uint64: + resultUint, err := hexutil2.DecodeUint64(v.String()) if err != nil { result = 0 } else { result = int(resultUint) } - case hexutil.Uint: - resultUint, err := hexutil.DecodeUint64(v.String()) + case hexutil2.Uint: + resultUint, err := hexutil2.DecodeUint64(v.String()) if err != nil { result = 0 } else { @@ -94,21 +94,21 @@ func convertDataToUint64P(abstractMap map[string]interface{}, field string) *uin var result uint64 switch v := abstractMap[field].(type) { - case hexutil.Uint64: - resultUint, err := hexutil.DecodeUint64(v.String()) + case hexutil2.Uint64: + resultUint, err := hexutil2.DecodeUint64(v.String()) if err != nil { result = 0 } else { result = resultUint } - case hexutil.Uint: - resultUint, err := hexutil.DecodeUint64(v.String()) + case hexutil2.Uint: + resultUint, err := hexutil2.DecodeUint64(v.String()) if err != nil { result = 0 } else { result = resultUint } - case *hexutil.Big: + case *hexutil2.Big: result = v.ToInt().Uint64() case int: result = abstractMap[field].(uint64) @@ -125,7 +125,7 @@ func convertDataToUint64P(abstractMap map[string]interface{}, field string) *uin func convertStrHexToDec(hexString *string) *string { var result string - resUInt64, err := hexutil.DecodeUint64(*hexString) + resUInt64, err := hexutil2.DecodeUint64(*hexString) if err != nil { fmt.Println(err) result = "0" diff --git a/cmd/rpcdaemon/graphql/graph/schema.resolvers.go b/cmd/rpcdaemon/graphql/graph/schema.resolvers.go index 14947154688..0bf234f9c0c 100644 --- a/cmd/rpcdaemon/graphql/graph/schema.resolvers.go +++ b/cmd/rpcdaemon/graphql/graph/schema.resolvers.go @@ -2,7 +2,7 @@ package graph // This file will be automatically regenerated based on the schema, any resolver implementations // will be copied through when generating and any unknown code will be moved to the end. -// Code generated by github.com/99designs/gqlgen version v0.17.33 +// Code generated by github.com/99designs/gqlgen version v0.17.40 import ( "context" @@ -11,8 +11,8 @@ import ( "strconv" "strings" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/graphql/graph/model" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" ) @@ -161,7 +161,26 @@ func (r *queryResolver) Block(ctx context.Context, number *string, hash *string) // Blocks is the resolver for the blocks field. func (r *queryResolver) Blocks(ctx context.Context, from *uint64, to *uint64) ([]*model.Block, error) { - panic(fmt.Errorf("not implemented: Blocks - blocks")) + + var blocks []*model.Block + + const maxBlocks = 25 + + fromBlockNumber := *from + toBlockNumber := *to + + if toBlockNumber >= fromBlockNumber && (toBlockNumber-fromBlockNumber+1) < maxBlocks { + + for i := fromBlockNumber; i <= toBlockNumber; i++ { + blockNumberStr := strconv.FormatUint(i, 10) + block, _ := r.Block(ctx, &blockNumberStr, nil) + if block != nil { + blocks = append(blocks, block) + } + } + } + + return blocks, ctx.Err() } // Pending is the resolver for the pending field. diff --git a/cmd/rpcdaemon/health/check_block.go b/cmd/rpcdaemon/health/check_block.go index 8978b6ffc4e..93e8d71fc7e 100644 --- a/cmd/rpcdaemon/health/check_block.go +++ b/cmd/rpcdaemon/health/check_block.go @@ -16,7 +16,7 @@ func checkBlockNumber(blockNumber rpc.BlockNumber, api EthAPI) error { return err } if len(data) == 0 { // block not found - return fmt.Errorf("no known block with number %v (%x hex)", blockNumber, blockNumber) + return fmt.Errorf("no known block with number %v (%x hex)", blockNumber.Uint64(), blockNumber.Uint64()) } return nil diff --git a/cmd/rpcdaemon/health/health_test.go b/cmd/rpcdaemon/health/health_test.go index 39c71c9cad1..a843923edfe 100644 --- a/cmd/rpcdaemon/health/health_test.go +++ b/cmd/rpcdaemon/health/health_test.go @@ -11,7 +11,8 @@ import ( "testing" "time" - "github.com/ledgerwatch/erigon/common/hexutil" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon/rpc" ) diff --git a/cmd/rpcdaemon/health/interfaces.go b/cmd/rpcdaemon/health/interfaces.go index c8bdca5dbf8..2fabf8d5de4 100644 --- a/cmd/rpcdaemon/health/interfaces.go +++ b/cmd/rpcdaemon/health/interfaces.go @@ -2,8 +2,8 @@ package health import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/cmd/rpcdaemon/main.go b/cmd/rpcdaemon/main.go index e811b2775f2..8b90a3b5650 100644 --- a/cmd/rpcdaemon/main.go +++ b/cmd/rpcdaemon/main.go @@ -1,12 +1,14 @@ package main import ( + "context" + "errors" "fmt" "os" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli" - "github.com/ledgerwatch/erigon/consensus/ethash" + "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/debug" "github.com/ledgerwatch/erigon/turbo/jsonrpc" "github.com/spf13/cobra" @@ -18,20 +20,19 @@ func main() { cmd.RunE = func(cmd *cobra.Command, args []string) error { ctx := cmd.Context() logger := debug.SetupCobra(cmd, "sentry") - db, borDb, backend, txPool, mining, stateCache, blockReader, ff, agg, err := cli.RemoteServices(ctx, *cfg, logger, rootCancel) + db, backend, txPool, mining, stateCache, blockReader, engine, ff, agg, err := cli.RemoteServices(ctx, cfg, logger, rootCancel) if err != nil { - logger.Error("Could not connect to DB", "err", err) + if !errors.Is(err, context.Canceled) { + logger.Error("Could not connect to DB", "err", err) + } return nil } defer db.Close() - if borDb != nil { - defer borDb.Close() - } + defer engine.Close() - // TODO: Replace with correct consensus Engine - engine := ethash.NewFaker() - apiList := jsonrpc.APIList(db, borDb, backend, txPool, mining, ff, stateCache, blockReader, agg, *cfg, engine, logger) - if err := cli.StartRpcServer(ctx, *cfg, apiList, logger); err != nil { + apiList := jsonrpc.APIList(db, backend, txPool, mining, ff, stateCache, blockReader, agg, cfg, engine, logger) + rpc.PreAllocateRPCMetricLabels(apiList) + if err := cli.StartRpcServer(ctx, cfg, apiList, logger); err != nil { logger.Error(err.Error()) return nil } diff --git a/cmd/rpcdaemon/rpcdaemontest/test_util.go b/cmd/rpcdaemon/rpcdaemontest/test_util.go index 8dfe4af3f94..ecff7012c16 100644 --- a/cmd/rpcdaemon/rpcdaemontest/test_util.go +++ b/cmd/rpcdaemon/rpcdaemontest/test_util.go @@ -102,10 +102,10 @@ func CreateTestSentry(t *testing.T) (*mock.MockSentry, *core.ChainPack, []*core. t.Fatal(err) } - if err = m.InsertChain(orphanedChain, nil); err != nil { + if err = m.InsertChain(orphanedChain); err != nil { t.Fatal(err) } - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatal(err) } @@ -428,7 +428,7 @@ func CreateTestSentryForTraces(t *testing.T) *mock.MockSentry { t.Fatalf("generate blocks: %v", err) } - if err := m.InsertChain(chain, nil); err != nil { + if err := m.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } return m @@ -534,7 +534,7 @@ func CreateTestSentryForTracesCollision(t *testing.T) *mock.MockSentry { t.Fatalf("generate blocks: %v", err) } // Import the canonical chain - if err := m.InsertChain(chain, nil); err != nil { + if err := m.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } diff --git a/cmd/rpcdaemon/rpcservices/eth_backend.go b/cmd/rpcdaemon/rpcservices/eth_backend.go index 32ed4a7f1ed..aa4f8192ee0 100644 --- a/cmd/rpcdaemon/rpcservices/eth_backend.go +++ b/cmd/rpcdaemon/rpcservices/eth_backend.go @@ -79,10 +79,12 @@ func (back *RemoteBackend) BlockByHash(ctx context.Context, db kv.Tx, hash commo block, _, err := back.BlockWithSenders(ctx, db, hash, *number) return block, err } -func (back *RemoteBackend) TxsV3Enabled() bool { panic("not implemented") } -func (back *RemoteBackend) Snapshots() services.BlockSnapshots { panic("not implemented") } -func (back *RemoteBackend) FrozenBlocks() uint64 { return back.blockReader.FrozenBlocks() } -func (back *RemoteBackend) FrozenFiles() (list []string) { return back.blockReader.FrozenFiles() } +func (back *RemoteBackend) TxsV3Enabled() bool { panic("not implemented") } +func (back *RemoteBackend) Snapshots() services.BlockSnapshots { panic("not implemented") } +func (back *RemoteBackend) BorSnapshots() services.BlockSnapshots { panic("not implemented") } +func (back *RemoteBackend) FrozenBlocks() uint64 { return back.blockReader.FrozenBlocks() } +func (back *RemoteBackend) FrozenBorBlocks() uint64 { return back.blockReader.FrozenBorBlocks() } +func (back *RemoteBackend) FrozenFiles() (list []string) { return back.blockReader.FrozenFiles() } func (back *RemoteBackend) FreezingCfg() ethconfig.BlocksFreezing { return back.blockReader.FreezingCfg() } @@ -263,6 +265,15 @@ func (back *RemoteBackend) CanonicalHash(ctx context.Context, tx kv.Getter, bloc func (back *RemoteBackend) TxnByIdxInBlock(ctx context.Context, tx kv.Getter, blockNum uint64, i int) (types.Transaction, error) { return back.blockReader.TxnByIdxInBlock(ctx, tx, blockNum, i) } +func (back *RemoteBackend) EventLookup(ctx context.Context, tx kv.Getter, txnHash common.Hash) (uint64, bool, error) { + return back.blockReader.EventLookup(ctx, tx, txnHash) +} +func (back *RemoteBackend) EventsByBlock(ctx context.Context, tx kv.Tx, hash common.Hash, blockNum uint64) ([]rlp.RawValue, error) { + return back.blockReader.EventsByBlock(ctx, tx, hash, blockNum) +} +func (back *RemoteBackend) Span(ctx context.Context, tx kv.Getter, spanId uint64) ([]byte, error) { + return back.blockReader.Span(ctx, tx, spanId) +} func (back *RemoteBackend) NodeInfo(ctx context.Context, limit uint32) ([]p2p.NodeInfo, error) { nodes, err := back.remoteEthBackend.NodeInfo(ctx, &remote.NodesInfoRequest{Limit: limit}) @@ -307,6 +318,14 @@ func (back *RemoteBackend) NodeInfo(ctx context.Context, limit uint32) ([]p2p.No return ret, nil } +func (back *RemoteBackend) AddPeer(ctx context.Context, request *remote.AddPeerRequest) (*remote.AddPeerReply, error) { + result, err := back.remoteEthBackend.AddPeer(ctx, request) + if err != nil { + return nil, fmt.Errorf("ETHBACKENDClient.AddPeer() error: %w", err) + } + return result, nil +} + func (back *RemoteBackend) Peers(ctx context.Context) ([]*p2p.PeerInfo, error) { rpcPeers, err := back.remoteEthBackend.Peers(ctx, &emptypb.Empty{}) if err != nil { diff --git a/cmd/rpctest/main.go b/cmd/rpctest/main.go index cbb2060b632..7f5c8a8847d 100644 --- a/cmd/rpctest/main.go +++ b/cmd/rpctest/main.go @@ -8,23 +8,26 @@ import ( "syscall" "github.com/ledgerwatch/erigon/cmd/rpctest/rpctest" + "github.com/ledgerwatch/erigon/turbo/logging" "github.com/ledgerwatch/log/v3" "github.com/spf13/cobra" ) func main() { log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + logger := logging.SetupLogger("rpctest") var ( - needCompare bool - fullTest bool - gethURL string - erigonURL string - blockFrom uint64 - blockTo uint64 - latest bool - recordFile string - errorFile string + needCompare bool + fullTest bool + gethURL string + erigonURL string + blockFrom uint64 + blockTo uint64 + latest bool + recordFile string + errorFile string + visitAllPages bool ) withErigonUrl := func(cmd *cobra.Command) { cmd.Flags().StringVar(&erigonURL, "erigonUrl", "http://localhost:8545", "Erigon rpcdaemon url") @@ -48,6 +51,9 @@ func main() { withErrorFile := func(cmd *cobra.Command) { cmd.Flags().StringVar(&errorFile, "errorFile", "", "File where to record errors (when responses do not match)") } + withVisitAllPages := func(cmd *cobra.Command) { + cmd.Flags().BoolVar(&visitAllPages, "visitAllPages", false, "Visit all pages") + } with := func(cmd *cobra.Command, opts ...func(*cobra.Command)) { for i := range opts { opts[i](cmd) @@ -59,17 +65,75 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchEthCall(erigonURL, gethURL, needCompare, latest, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchEthCall(erigonURL, gethURL, needCompare, latest, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchEthCallCmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile, withLatest) + var benchEthGetBlockByHash = &cobra.Command{ + Use: "benchEthGetBlockByHash", + Short: "", + Long: ``, + Run: func(cmd *cobra.Command, args []string) { + err := rpctest.BenchEthGetBlockByHash(erigonURL, gethURL, needCompare, latest, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } + }, + } + with(benchEthGetBlockByHash, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile, withLatest) + + var benchEthGetBlockByNumber2Cmd = &cobra.Command{ + Use: "benchEthGetBlockByNumber2", + Short: "", + Long: ``, + Run: func(cmd *cobra.Command, args []string) { + err := rpctest.BenchEthGetBlockByNumber2(erigonURL, gethURL, needCompare, latest, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } + }, + } + with(benchEthGetBlockByNumber2Cmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile, withLatest) + + var benchEthGetTransactionByHashCmd = &cobra.Command{ + Use: "benchEthGetTransactionByHash", + Short: "", + Long: ``, + Run: func(cmd *cobra.Command, args []string) { + err := rpctest.BenchEthGetTransactionByHash(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } + }, + } + with(benchEthGetTransactionByHashCmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile, withLatest) + + var benchOtsGetBlockTransactions = &cobra.Command{ + Use: "benchOtsGetBlockTransactions", + Short: "", + Long: ``, + Run: func(cmd *cobra.Command, args []string) { + err := rpctest.BenchOtsGetBlockTransactions(erigonURL, gethURL, needCompare, visitAllPages, latest, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } + }, + } + with(benchOtsGetBlockTransactions, withErigonUrl, withGethUrl, withNeedCompare, withVisitAllPages, withBlockNum, withRecord, withErrorFile, withLatest) + var bench1Cmd = &cobra.Command{ Use: "bench1", Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench1(erigonURL, gethURL, needCompare, fullTest, blockFrom, blockTo, recordFile) + err := rpctest.Bench1(erigonURL, gethURL, needCompare, fullTest, blockFrom, blockTo, recordFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench1Cmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord) @@ -80,7 +144,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench2(erigonURL) + err := rpctest.Bench2(erigonURL) + if err != nil { + logger.Error(err.Error()) + } }, } var bench3Cmd = &cobra.Command{ @@ -88,7 +155,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench3(erigonURL, gethURL) + err := rpctest.Bench3(erigonURL, gethURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench3Cmd, withErigonUrl, withGethUrl) @@ -98,7 +168,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench4(erigonURL) + err := rpctest.Bench4(erigonURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench4Cmd, withErigonUrl) @@ -108,7 +181,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench5(erigonURL) + err := rpctest.Bench5(erigonURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench5Cmd, withErigonUrl) @@ -117,7 +193,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench6(erigonURL) + err := rpctest.Bench6(erigonURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench6Cmd, withErigonUrl) @@ -127,7 +206,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench7(erigonURL, gethURL) + err := rpctest.Bench7(erigonURL, gethURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench7Cmd, withErigonUrl, withGethUrl) @@ -137,7 +219,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchEthGetLogs(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchEthGetLogs(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchEthGetLogsCmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) @@ -147,57 +232,91 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.Bench9(erigonURL, gethURL, needCompare) + err := rpctest.Bench9(erigonURL, gethURL, needCompare) + if err != nil { + logger.Error(err.Error()) + } }, } with(bench9Cmd, withErigonUrl, withGethUrl, withNeedCompare) - var benchTraceBlockByHashCmd = &cobra.Command{ - Use: "benchTraceBlockByHash", + var benchTraceCallCmd = &cobra.Command{ + Use: "benchTraceCall", Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchTraceBlockByHash(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchTraceCall(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } - with(benchTraceBlockByHashCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) + with(benchTraceCallCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) - var benchTraceTransactionCmd = &cobra.Command{ - Use: "benchTraceTransaction", + // debug_trace* APIs + var benchDebugTraceBlockByNumberCmd = &cobra.Command{ + Use: "benchDebugTraceBlockByNumber", Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchTraceTransaction(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchDebugTraceBlockByNumber(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } - with(benchTraceTransactionCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) + with(benchDebugTraceBlockByNumberCmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile, withLatest) - var benchTraceCallCmd = &cobra.Command{ - Use: "benchTraceCall", + var benchDebugTraceBlockByHashCmd = &cobra.Command{ + Use: "benchDebugTraceBlockByHash", Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchTraceCall(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchDebugTraceBlockByHash(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } - with(benchTraceCallCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) + with(benchDebugTraceBlockByHashCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) + + var benchDebugTraceTransactionCmd = &cobra.Command{ + Use: "benchDebugTraceTransaction", + Short: "", + Long: ``, + Run: func(cmd *cobra.Command, args []string) { + err := rpctest.BenchDebugTraceTransaction(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } + }, + } + with(benchDebugTraceTransactionCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) var benchDebugTraceCallCmd = &cobra.Command{ Use: "benchDebugTraceCall", Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchDebugTraceCall(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchDebugTraceCall(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchDebugTraceCallCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) + // debug_trace* APIs END + var benchTraceCallManyCmd = &cobra.Command{ Use: "benchTraceCallMany", Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchTraceCallMany(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchTraceCallMany(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchTraceCallManyCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) @@ -207,7 +326,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchTraceBlock(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchTraceBlock(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchTraceBlockCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) @@ -217,7 +339,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchTraceFilter(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchTraceFilter(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchTraceFilterCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) @@ -227,7 +352,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchTxReceipt(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchTxReceipt(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchTxReceiptCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) @@ -237,7 +365,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchTraceReplayTransaction(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + err := rpctest.BenchTraceReplayTransaction(erigonURL, gethURL, needCompare, blockFrom, blockTo, recordFile, errorFile) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchTraceReplayTransactionCmd, withGethUrl, withErigonUrl, withNeedCompare, withBlockNum, withRecord, withErrorFile) @@ -247,7 +378,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchEthGetBlockByNumber(erigonURL) + err := rpctest.BenchEthGetBlockByNumber(erigonURL) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchEthBlockByNumberCmd, withErigonUrl) @@ -257,7 +391,10 @@ func main() { Short: "", Long: ``, Run: func(cmd *cobra.Command, args []string) { - rpctest.BenchEthGetBalance(erigonURL, gethURL, needCompare, blockFrom, blockTo) + err := rpctest.BenchEthGetBalance(erigonURL, gethURL, needCompare, blockFrom, blockTo) + if err != nil { + logger.Error(err.Error()) + } }, } with(benchEthGetBalanceCmd, withErigonUrl, withGethUrl, withNeedCompare, withBlockNum) @@ -294,7 +431,10 @@ func main() { rootCmd.Flags().Uint64Var(&blockTo, "blockTo", 2101000, "Block number to end test generation at") rootCmd.AddCommand( + benchEthGetBlockByNumber2Cmd, + benchEthGetBlockByHash, benchEthCallCmd, + benchEthGetTransactionByHashCmd, bench1Cmd, bench2Cmd, bench3Cmd, @@ -304,17 +444,20 @@ func main() { bench7Cmd, benchEthGetLogsCmd, bench9Cmd, - benchTraceTransactionCmd, benchTraceCallCmd, - benchDebugTraceCallCmd, benchTraceCallManyCmd, benchTraceBlockCmd, benchTraceFilterCmd, + benchDebugTraceBlockByNumberCmd, + benchDebugTraceBlockByHashCmd, + benchDebugTraceTransactionCmd, + benchDebugTraceCallCmd, benchTxReceiptCmd, compareAccountRange, benchTraceReplayTransactionCmd, benchEthBlockByNumberCmd, benchEthGetBalanceCmd, + benchOtsGetBlockTransactions, replayCmd, ) if err := rootCmd.ExecuteContext(rootContext()); err != nil { diff --git a/cmd/rpctest/rpctest/account_range_verify.go b/cmd/rpctest/rpctest/account_range_verify.go index dcb89c619ae..ed1bef30ef6 100644 --- a/cmd/rpctest/rpctest/account_range_verify.go +++ b/cmd/rpctest/rpctest/account_range_verify.go @@ -122,11 +122,13 @@ func CompareAccountRange(logger log.Logger, erigonURL, gethURL, tmpDataDir, geth log.Error(err.Error()) return } + defer tgTx.Rollback() gethTx, err := gethKV.BeginRo(context.Background()) if err != nil { log.Error(err.Error()) return } + defer gethTx.Rollback() tgCursor, err := tgTx.Cursor(kv.E2AccountsHistory) if err != nil { log.Error(err.Error()) diff --git a/cmd/rpctest/rpctest/bench1.go b/cmd/rpctest/rpctest/bench1.go index 400e64c19de..0577a4e84b5 100644 --- a/cmd/rpctest/rpctest/bench1.go +++ b/cmd/rpctest/rpctest/bench1.go @@ -24,7 +24,7 @@ var routes map[string]string // use false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon // // fullTest - if false - then call only methods which RPCDaemon currently supports -func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFrom uint64, blockTo uint64, recordFile string) { +func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFrom uint64, blockTo uint64, recordFileName string) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -44,12 +44,10 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } fmt.Printf("Last block: %d\n", blockNumber.Number) accounts := make(map[libcommon.Address]struct{}) @@ -61,8 +59,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) } if b.Error != nil { @@ -73,16 +70,13 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro var bg EthBlockByNumber res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) if res.Err != nil { - fmt.Printf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) } if bg.Error != nil { - fmt.Printf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) - return + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) } if !compareBlocks(&b, &bg) { - fmt.Printf("Block difference for %d\n", bn) - return + return fmt.Errorf("Block difference for %d\n", bn) } } @@ -108,12 +102,10 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("debug_storageRangeAt", reqGen.storageRangeAt(b.Result.Hash, i, tx.To, *nextKey), &sr) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get storageRange (Erigon): %s: %v\n", tx.Hash, res.Err) - return + return fmt.Errorf("Could not get storageRange (Erigon): %s: %v\n", tx.Hash, res.Err) } if sr.Error != nil { - fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) - return + return fmt.Errorf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) } for k, v := range sr.Result.Storage { @@ -132,8 +124,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Geth("debug_storageRangeAt", reqGen.storageRangeAt(b.Result.Hash, i, tx.To, *nextKeyG), &srGeth) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get storageRange (geth): %s: %v\n", tx.Hash, res.Err) - return + return fmt.Errorf("Could not get storageRange (geth): %s: %v\n", tx.Hash, res.Err) } if srGeth.Error != nil { fmt.Printf("Error getting storageRange (geth): %d %s\n", srGeth.Error.Code, srGeth.Error.Message) @@ -154,7 +145,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro printStorageRange(sm) fmt.Printf("================smg\n") printStorageRange(smg) - return + return fmt.Errorf("Storage range different\n") } } } @@ -167,11 +158,11 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro reqGen.reqID++ var trace EthTxTrace - res = reqGen.Erigon("debug_traceTransaction", reqGen.traceTransaction(tx.Hash), &trace) + res = reqGen.Erigon("debug_traceTransaction", reqGen.debugTraceTransaction(tx.Hash), &trace) resultsCh <- res if res.Err != nil { fmt.Printf("Could not trace transaction (Erigon) %s: %v\n", tx.Hash, res.Err) - print(client, routes[Erigon], reqGen.traceTransaction(tx.Hash)) + print(client, routes[Erigon], reqGen.debugTraceTransaction(tx.Hash)) } if trace.Error != nil { @@ -180,21 +171,18 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro if needCompare { var traceg EthTxTrace - res = reqGen.Geth("debug_traceTransaction", reqGen.traceTransaction(tx.Hash), &traceg) + res = reqGen.Geth("debug_traceTransaction", reqGen.debugTraceTransaction(tx.Hash), &traceg) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not trace transaction (geth) %s: %v\n", tx.Hash, res.Err) - print(client, routes[Geth], reqGen.traceTransaction(tx.Hash)) - return + print(client, routes[Geth], reqGen.debugTraceTransaction(tx.Hash)) + return fmt.Errorf("Could not trace transaction (geth) %s: %v\n", tx.Hash, res.Err) } if traceg.Error != nil { - fmt.Printf("Error tracing transaction (geth): %d %s\n", traceg.Error.Code, traceg.Error.Message) - return + return fmt.Errorf("Error tracing transaction (geth): %d %s\n", traceg.Error.Code, traceg.Error.Message) } if res.Err == nil && trace.Error == nil { if !compareTraces(&trace, &traceg) { - fmt.Printf("Different traces block %d, tx %s\n", bn, tx.Hash) - return + return fmt.Errorf("Different traces block %d, tx %s\n", bn, tx.Hash) } } } @@ -204,32 +192,28 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("eth_getTransactionReceipt", reqGen.getTransactionReceipt(tx.Hash), &receipt) resultsCh <- res if res.Err != nil { - fmt.Printf("Count not get receipt (Erigon): %s: %v\n", tx.Hash, res.Err) print(client, routes[Erigon], reqGen.getTransactionReceipt(tx.Hash)) - return + return fmt.Errorf("Count not get receipt (Erigon): %s: %v\n", tx.Hash, res.Err) } if receipt.Error != nil { - fmt.Printf("Error getting receipt (Erigon): %d %s\n", receipt.Error.Code, receipt.Error.Message) - return + return fmt.Errorf("Error getting receipt (Erigon): %d %s\n", receipt.Error.Code, receipt.Error.Message) } if needCompare { var receiptg EthReceipt res = reqGen.Geth("eth_getTransactionReceipt", reqGen.getTransactionReceipt(tx.Hash), &receiptg) resultsCh <- res if res.Err != nil { - fmt.Printf("Count not get receipt (geth): %s: %v\n", tx.Hash, res.Err) print(client, routes[Geth], reqGen.getTransactionReceipt(tx.Hash)) - return + return fmt.Errorf("Count not get receipt (geth): %s: %v\n", tx.Hash, res.Err) } if receiptg.Error != nil { - fmt.Printf("Error getting receipt (geth): %d %s\n", receiptg.Error.Code, receiptg.Error.Message) - return + return fmt.Errorf("Error getting receipt (geth): %d %s\n", receiptg.Error.Code, receiptg.Error.Message) } if !compareReceipts(&receipt, &receiptg) { fmt.Printf("Different receipts block %d, tx %s\n", bn, tx.Hash) print(client, routes[Geth], reqGen.getTransactionReceipt(tx.Hash)) print(client, routes[Erigon], reqGen.getTransactionReceipt(tx.Hash)) - return + return fmt.Errorf("Receipts are different\n") } } } @@ -242,28 +226,23 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("eth_getBalance", reqGen.getBalance(b.Result.Miner, bn), &balance) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get account balance (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get account balance (Erigon): %v\n", res.Err) } if balance.Error != nil { - fmt.Printf("Error getting account balance (Erigon): %d %s", balance.Error.Code, balance.Error.Message) - return + return fmt.Errorf("Error getting account balance (Erigon): %d %s", balance.Error.Code, balance.Error.Message) } if needCompare { var balanceg EthBalance res = reqGen.Geth("eth_getBalance", reqGen.getBalance(b.Result.Miner, bn), &balanceg) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get account balance (geth): %v\n", res.Err) - return + return fmt.Errorf("Could not get account balance (geth): %v\n", res.Err) } if balanceg.Error != nil { - fmt.Printf("Error getting account balance (geth): %d %s\n", balanceg.Error.Code, balanceg.Error.Message) - return + return fmt.Errorf("Error getting account balance (geth): %d %s\n", balanceg.Error.Code, balanceg.Error.Message) } if !compareBalances(&balance, &balanceg) { - fmt.Printf("Miner %x balance difference for block %d\n", b.Result.Miner, bn) - return + return fmt.Errorf("Miner %x balance difference for block %d\n", b.Result.Miner, bn) } } @@ -274,12 +253,10 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Erigon("debug_getModifiedAccountsByNumber", reqGen.getModifiedAccountsByNumber(prevBn, bn), &mag) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get modified accounts (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get modified accounts (Erigon): %v\n", res.Err) } if mag.Error != nil { - fmt.Printf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message) - return + return fmt.Errorf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message) } fmt.Printf("Done blocks %d-%d, modified accounts: %d\n", prevBn, bn, len(mag.Result)) @@ -298,8 +275,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get accountRange (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get accountRange (Erigon): %v\n", res.Err) } if sr.Error != nil { @@ -316,8 +292,7 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro res = reqGen.Geth("debug_accountRange", reqGen.accountRange(bn, pageGeth, 256), &srGeth) resultsCh <- res if res.Err != nil { - fmt.Printf("Could not get accountRange geth: %v\n", res.Err) - return + return fmt.Errorf("Could not get accountRange geth: %v\n", res.Err) } if srGeth.Error != nil { fmt.Printf("Error getting accountRange geth: %d %s\n", srGeth.Error.Code, srGeth.Error.Message) @@ -332,14 +307,14 @@ func Bench1(erigonURL, gethURL string, needCompare bool, fullTest bool, blockFro fmt.Printf("Different next page keys: %x geth %x", page, pageGeth) } if !compareAccountRanges(accRangeErigon, accRangeGeth) { - fmt.Printf("Different in account ranges tx\n") - return + return fmt.Errorf("Different in account ranges tx\n") } } } prevBn = bn } } + return nil } // vegetaWrite (to be run as a goroutine) writing results of server calls into several files: diff --git a/cmd/rpctest/rpctest/bench2.go b/cmd/rpctest/rpctest/bench2.go index 74165c14220..7dd73402800 100644 --- a/cmd/rpctest/rpctest/bench2.go +++ b/cmd/rpctest/rpctest/bench2.go @@ -10,7 +10,7 @@ import ( "github.com/ledgerwatch/erigon/crypto" ) -func Bench2(erigon_url string) { +func Bench2(erigon_url string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -19,12 +19,10 @@ func Bench2(erigon_url string) { blockNumTemplate := `{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":%d}` var blockNumber EthBlockNumber if err := post(client, erigon_url, fmt.Sprintf(blockNumTemplate, req_id), &blockNumber); err != nil { - fmt.Printf("Could not get block number: %v\n", err) - return + return fmt.Errorf("Could not get block number: %v\n", err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } lastBlock := blockNumber.Number fmt.Printf("Last block: %d\n", lastBlock) @@ -35,8 +33,7 @@ func Bench2(erigon_url string) { blockByNumTemplate := `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x%x",true],"id":%d}` //nolint var b EthBlockByNumber if err := post(client, erigon_url, fmt.Sprintf(blockByNumTemplate, bn, req_id), &b); err != nil { - fmt.Printf("Could not retrieve block %d: %v\n", bn, err) - return + return fmt.Errorf("Could not retrieve block %d: %v\n", bn, err) } if b.Error != nil { fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message) @@ -53,8 +50,7 @@ func Bench2(erigon_url string) { for nextKey != nil { var sr DebugStorageRange if err := post(client, erigon_url, fmt.Sprintf(storageRangeTemplate, b.Result.Hash, i, tx.To, *nextKey, 1024, req_id), &sr); err != nil { - fmt.Printf("Could not get storageRange: %x: %v\n", tx.Hash, err) - return + return fmt.Errorf("Could not get storageRange: %x: %v\n", tx.Hash, err) } if sr.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -83,15 +79,14 @@ func Bench2(erigon_url string) { accountRangeTemplate := `{"jsonrpc":"2.0","method":"debug_getModifiedAccountsByNumber","params":[%d, %d],"id":%d}` //nolint var ma DebugModifiedAccounts if err := post(client, erigon_url, fmt.Sprintf(accountRangeTemplate, prevBn, bn, req_id), &ma); err != nil { - fmt.Printf("Could not get modified accounts: %v\n", err) - return + return fmt.Errorf("Could not get modified accounts: %v\n", err) } if ma.Error != nil { - fmt.Printf("Error getting modified accounts: %d %s\n", ma.Error.Code, ma.Error.Message) - return + return fmt.Errorf("Error getting modified accounts: %d %s\n", ma.Error.Code, ma.Error.Message) } fmt.Printf("Done blocks %d-%d, modified accounts: %d\n", prevBn, bn, len(ma.Result)) prevBn = bn } } + return nil } diff --git a/cmd/rpctest/rpctest/bench3.go b/cmd/rpctest/rpctest/bench3.go index 317700750a5..5d4c959b809 100644 --- a/cmd/rpctest/rpctest/bench3.go +++ b/cmd/rpctest/rpctest/bench3.go @@ -11,7 +11,7 @@ import ( "github.com/ledgerwatch/erigon/core/state" ) -func Bench3(erigon_url, geth_url string) { +func Bench3(erigon_url, geth_url string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -30,8 +30,7 @@ func Bench3(erigon_url, geth_url string) { encodedKey := base64.StdEncoding.EncodeToString(page) var sr DebugAccountRange if err := post(client, erigon_url, fmt.Sprintf(template, encodedKey, pageSize, req_id), &sr); err != nil { - fmt.Printf("Could not get accountRange: %v\n", err) - return + return fmt.Errorf("Could not get accountRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting accountRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -51,9 +50,7 @@ func Bench3(erigon_url, geth_url string) { encodedKey := base64.StdEncoding.EncodeToString(page) var sr DebugAccountRange if err := post(client, geth_url, fmt.Sprintf(template, encodedKey, pageSize, req_id), &sr); err != nil { - - fmt.Printf("Could not get accountRange: %v\n", err) - return + return fmt.Errorf("Could not get accountRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting accountRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -67,16 +64,14 @@ func Bench3(erigon_url, geth_url string) { } if !compareAccountRanges(accRangeTG, accRangeGeth) { - fmt.Printf("Different in account ranges tx\n") - return + return fmt.Errorf("Different in account ranges tx\n") } fmt.Println("debug_accountRanges... OK!") template = `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x%x",true],"id":%d}` var b EthBlockByNumber if err := post(client, erigon_url, fmt.Sprintf(template, 1720000, req_id), &b); err != nil { - fmt.Printf("Could not retrieve block %d: %v\n", 1720000, err) - return + return fmt.Errorf("Could not retrieve block %d: %v\n", 1720000, err) } if b.Error != nil { fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message) @@ -89,27 +84,23 @@ func Bench3(erigon_url, geth_url string) { ` var trace EthTxTrace if err := post(client, erigon_url, fmt.Sprintf(template, txhash, req_id), &trace); err != nil { - fmt.Printf("Could not trace transaction %s: %v\n", txhash, err) print(client, erigon_url, fmt.Sprintf(template, txhash, req_id)) - return + return fmt.Errorf("Could not trace transaction %s: %v\n", txhash, err) } if trace.Error != nil { fmt.Printf("Error tracing transaction: %d %s\n", trace.Error.Code, trace.Error.Message) } var traceg EthTxTrace if err := post(client, geth_url, fmt.Sprintf(template, txhash, req_id), &traceg); err != nil { - fmt.Printf("Could not trace transaction g %s: %v\n", txhash, err) print(client, geth_url, fmt.Sprintf(template, txhash, req_id)) - return + return fmt.Errorf("Could not trace transaction g %s: %v\n", txhash, err) } if traceg.Error != nil { - fmt.Printf("Error tracing transaction g: %d %s\n", traceg.Error.Code, traceg.Error.Message) - return + return fmt.Errorf("Error tracing transaction g: %d %s\n", traceg.Error.Code, traceg.Error.Message) } //print(client, erigon_url, fmt.Sprintf(template, txhash, req_id)) if !compareTraces(&trace, &traceg) { - fmt.Printf("Different traces block %d, tx %s\n", 1720000, txhash) - return + return fmt.Errorf("Different traces block %d, tx %s\n", 1720000, txhash) } } to := libcommon.HexToAddress("0xbb9bc244d798123fde783fcc1c72d3bb8c189413") @@ -125,8 +116,7 @@ func Bench3(erigon_url, geth_url string) { for nextKey != nil { var sr DebugStorageRange if err := post(client, erigon_url, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, req_id), &sr); err != nil { - fmt.Printf("Could not get storageRange: %v\n", err) - return + return fmt.Errorf("Could not get storageRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -144,8 +134,7 @@ func Bench3(erigon_url, geth_url string) { for nextKey != nil { var srg DebugStorageRange if err := post(client, geth_url, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, req_id), &srg); err != nil { - fmt.Printf("Could not get storageRange g: %v\n", err) - return + return fmt.Errorf("Could not get storageRange g: %v\n", err) } if srg.Error != nil { fmt.Printf("Error getting storageRange g: %d %s\n", srg.Error.Code, srg.Error.Message) @@ -159,8 +148,9 @@ func Bench3(erigon_url, geth_url string) { } fmt.Printf("storageRange g: %d\n", len(smg)) if !compareStorageRanges(sm, smg) { - fmt.Printf("Different in storage ranges tx\n") - return + return fmt.Errorf("Different in storage ranges tx\n") } + return nil + } diff --git a/cmd/rpctest/rpctest/bench4.go b/cmd/rpctest/rpctest/bench4.go index 1d403049185..347490ce5a5 100644 --- a/cmd/rpctest/rpctest/bench4.go +++ b/cmd/rpctest/rpctest/bench4.go @@ -8,7 +8,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" ) -func Bench4(erigon_url string) { +func Bench4(erigon_url string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -18,8 +18,7 @@ func Bench4(erigon_url string) { template := `{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x%x",true],"id":%d}` var b EthBlockByNumber if err := post(client, erigon_url, fmt.Sprintf(template, 1720000, req_id), &b); err != nil { - fmt.Printf("Could not retrieve block %d: %v\n", 1720000, err) - return + return fmt.Errorf("Could not retrieve block %d: %v\n", 1720000, err) } if b.Error != nil { fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message) @@ -30,9 +29,8 @@ func Bench4(erigon_url string) { template = `{"jsonrpc":"2.0","method":"debug_traceTransaction","params":["%s"],"id":%d}` var trace EthTxTrace if err := post(client, erigon_url, fmt.Sprintf(template, txhash, req_id), &trace); err != nil { - fmt.Printf("Could not trace transaction %s: %v\n", txhash, err) print(client, erigon_url, fmt.Sprintf(template, txhash, req_id)) - return + return fmt.Errorf("Could not trace transaction %s: %v\n", txhash, err) } if trace.Error != nil { fmt.Printf("Error tracing transaction: %d %s\n", trace.Error.Code, trace.Error.Message) @@ -50,8 +48,7 @@ func Bench4(erigon_url string) { for nextKey != nil { var sr DebugStorageRange if err := post(client, erigon_url, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, req_id), &sr); err != nil { - fmt.Printf("Could not get storageRange: %v\n", err) - return + return fmt.Errorf("Could not get storageRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -64,4 +61,5 @@ func Bench4(erigon_url string) { } } fmt.Printf("storageRange: %d\n", len(sm)) + return nil } diff --git a/cmd/rpctest/rpctest/bench5.go b/cmd/rpctest/rpctest/bench5.go index 2104bc9d6d2..4066df310dc 100644 --- a/cmd/rpctest/rpctest/bench5.go +++ b/cmd/rpctest/rpctest/bench5.go @@ -8,7 +8,7 @@ import ( "time" ) -func Bench5(erigonURL string) { +func Bench5(erigonURL string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -24,16 +24,15 @@ func Bench5(erigonURL string) { for scanner.Scan() { req_id++ if err = post(client, erigonURL, fmt.Sprintf(template, scanner.Text(), req_id), &receipt); err != nil { - fmt.Printf("Count not get receipt: %s: %v\n", scanner.Text(), err) - return + return fmt.Errorf("Count not get receipt: %s: %v\n", scanner.Text(), err) } if receipt.Error != nil { - fmt.Printf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message) - return + return fmt.Errorf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message) } } err = scanner.Err() if err != nil { panic(err) } + return nil } diff --git a/cmd/rpctest/rpctest/bench6.go b/cmd/rpctest/rpctest/bench6.go index 825c8b5ebbc..f9fcc3c57ae 100644 --- a/cmd/rpctest/rpctest/bench6.go +++ b/cmd/rpctest/rpctest/bench6.go @@ -8,7 +8,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" ) -func Bench6(erigon_url string) { +func Bench6(erigon_url string) error { var client = &http.Client{ Timeout: time.Second * 600, } @@ -20,12 +20,10 @@ func Bench6(erigon_url string) { ` var blockNumber EthBlockNumber if err := post(client, erigon_url, fmt.Sprintf(template, req_id), &blockNumber); err != nil { - fmt.Printf("Could not get block number: %v\n", err) - return + return fmt.Errorf("Could not get block number: %v\n", err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } lastBlock := blockNumber.Number fmt.Printf("Last block: %d\n", lastBlock) @@ -38,8 +36,7 @@ func Bench6(erigon_url string) { ` var b EthBlockByNumber if err := post(client, erigon_url, fmt.Sprintf(template, bn, req_id), &b); err != nil { - fmt.Printf("Could not retrieve block %d: %v\n", bn, err) - return + return fmt.Errorf("Could not retrieve block %d: %v\n", bn, err) } if b.Error != nil { fmt.Printf("Error retrieving block: %d %s\n", b.Error.Code, b.Error.Message) @@ -56,14 +53,13 @@ func Bench6(erigon_url string) { ` var receipt EthReceipt if err := post(client, erigon_url, fmt.Sprintf(template, tx.Hash, req_id), &receipt); err != nil { - fmt.Printf("Count not get receipt: %s: %v\n", tx.Hash, err) print(client, erigon_url, fmt.Sprintf(template, tx.Hash, req_id)) - return + return fmt.Errorf("Count not get receipt: %s: %v\n", tx.Hash, err) } if receipt.Error != nil { - fmt.Printf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message) - return + return fmt.Errorf("Error getting receipt: %d %s\n", receipt.Error.Code, receipt.Error.Message) } } } + return nil } diff --git a/cmd/rpctest/rpctest/bench7.go b/cmd/rpctest/rpctest/bench7.go index 29c5e49a7e8..2a6dd6b49d5 100644 --- a/cmd/rpctest/rpctest/bench7.go +++ b/cmd/rpctest/rpctest/bench7.go @@ -8,7 +8,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" ) -func Bench7(erigonURL, gethURL string) { +func Bench7(erigonURL, gethURL string) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -34,8 +34,7 @@ func Bench7(erigonURL, gethURL string) { for nextKey != nil { var sr DebugStorageRange if err := post(client, erigonURL, fmt.Sprintf(template, blockhash, i, to, *nextKey, 1024, reqID), &sr); err != nil { - fmt.Printf("Could not get storageRange: %v\n", err) - return + return fmt.Errorf("Could not get storageRange: %v\n", err) } if sr.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", sr.Error.Code, sr.Error.Message) @@ -54,8 +53,7 @@ func Bench7(erigonURL, gethURL string) { for nextKeyG != nil { var srg DebugStorageRange if err := post(client, gethURL, fmt.Sprintf(template, blockhash, i, to, *nextKeyG, 1024, reqID), &srg); err != nil { - fmt.Printf("Could not get storageRange: %v\n", err) - return + return fmt.Errorf("Could not get storageRange: %v\n", err) } if srg.Error != nil { fmt.Printf("Error getting storageRange: %d %s\n", srg.Error.Code, srg.Error.Message) @@ -76,7 +74,8 @@ func Bench7(erigonURL, gethURL string) { printStorageRange(sm) fmt.Printf("================smg\n") printStorageRange(smg) - return + return fmt.Errorf("storage are different") } fmt.Printf("storageRanges: %d\n", len(sm)) + return nil } diff --git a/cmd/rpctest/rpctest/bench9.go b/cmd/rpctest/rpctest/bench9.go index 7b2a4266ee4..9c06fef9697 100644 --- a/cmd/rpctest/rpctest/bench9.go +++ b/cmd/rpctest/rpctest/bench9.go @@ -11,7 +11,7 @@ import ( ) // bench9 tests eth_getProof -func Bench9(erigonURL, gethURL string, needCompare bool) { +func Bench9(erigonURL, gethURL string, needCompare bool) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -26,12 +26,10 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } lastBlock := blockNumber.Number fmt.Printf("Last block: %d\n", lastBlock) @@ -46,8 +44,7 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { res = reqGen.Erigon("debug_accountRange", reqGen.accountRange(bn, page, 256), &sr) if res.Err != nil { - fmt.Printf("Could not get accountRange (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get accountRange (Erigon): %v\n", res.Err) } if sr.Error != nil { @@ -74,8 +71,7 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { } res = reqGen.Erigon("eth_getProof", reqGen.getProof(bn, address, storageList), &proof) if res.Err != nil { - fmt.Printf("Could not get getProof (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get getProof (Erigon): %v\n", res.Err) } if proof.Error != nil { fmt.Printf("Error getting getProof (Erigon): %d %s\n", proof.Error.Code, proof.Error.Message) @@ -86,8 +82,7 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { reqGen.reqID++ res = reqGen.Geth("eth_getProof", reqGen.getProof(bn, address, storageList), &gethProof) if res.Err != nil { - fmt.Printf("Could not get getProof (geth): %v\n", res.Err) - return + return fmt.Errorf("Could not get getProof (geth): %v\n", res.Err) } if gethProof.Error != nil { fmt.Printf("Error getting getProof (geth): %d %s\n", gethProof.Error.Code, gethProof.Error.Message) @@ -100,4 +95,5 @@ func Bench9(erigonURL, gethURL string, needCompare bool) { } } } + return nil } diff --git a/cmd/rpctest/rpctest/bench_blockbynumber.go b/cmd/rpctest/rpctest/bench_blockbynumber.go index 9ba4a06177f..9f016a1410c 100644 --- a/cmd/rpctest/rpctest/bench_blockbynumber.go +++ b/cmd/rpctest/rpctest/bench_blockbynumber.go @@ -7,7 +7,7 @@ import ( ) // BenchEthGetBlockByNumber generates lots of requests for eth_getBlockByNumber to attempt to reproduce issue where empty results are being returned -func BenchEthGetBlockByNumber(erigonURL string) { +func BenchEthGetBlockByNumber(erigonURL string) error { setRoutes(erigonURL, erigonURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -20,44 +20,37 @@ func BenchEthGetBlockByNumber(erigonURL string) { var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } fmt.Printf("Last block: %d\n", blockNumber.Number) for bn := uint64(0); bn <= uint64(blockNumber.Number)/2; bn++ { reqGen.reqID++ res = reqGen.Erigon2("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, false /* withTxs */)) if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) } if errVal := res.Result.Get("error"); errVal != nil { - fmt.Printf("error: %d %s", errVal.GetInt("code"), errVal.GetStringBytes("message")) - return + return fmt.Errorf("error: %d %s", errVal.GetInt("code"), errVal.GetStringBytes("message")) } if res.Result.Get("result") == nil || res.Result.Get("result").Get("number") == nil { - fmt.Printf("empty result: %s\n", res.Response) - return + return fmt.Errorf("empty result: %s\n", res.Response) } reqGen.reqID++ bn1 := uint64(blockNumber.Number) - bn res = reqGen.Erigon2("eth_getBlockByNumber", reqGen.getBlockByNumber(bn1, false /* withTxs */)) if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn1, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn1, res.Err) } if errVal := res.Result.Get("error"); errVal != nil { - fmt.Printf("error: %d %s", errVal.GetInt("code"), errVal.GetStringBytes("message")) - return + return fmt.Errorf("error: %d %s", errVal.GetInt("code"), errVal.GetStringBytes("message")) } if res.Result.Get("result") == nil || res.Result.Get("result").Get("number") == nil { - fmt.Printf("empty result: %s\n", res.Response) - return + return fmt.Errorf("empty result: %s\n", res.Response) } } + return nil } diff --git a/cmd/rpctest/rpctest/bench_debugTrace.go b/cmd/rpctest/rpctest/bench_debugTrace.go new file mode 100644 index 00000000000..e73202eb535 --- /dev/null +++ b/cmd/rpctest/rpctest/bench_debugTrace.go @@ -0,0 +1,319 @@ +package rpctest + +import ( + "bufio" + "fmt" + "net/http" + "os" + "time" +) + +func BenchDebugTraceBlockByNumber(erigonUrl, gethUrl string, needCompare bool, blockFrom uint64, blockTo uint64, recordFileName string, errorFileName string) error { + setRoutes(erigonUrl, gethUrl) + var client = &http.Client{ + Timeout: time.Second * 600, + } + + var rec *bufio.Writer + if recordFileName != "" { + f, err := os.Create(recordFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFileName, err) + } + defer f.Close() + rec = bufio.NewWriter(f) + defer rec.Flush() + } + var errs *bufio.Writer + if errorFileName != "" { + ferr, err := os.Create(errorFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFileName, err) + } + defer ferr.Close() + errs = bufio.NewWriter(ferr) + defer errs.Flush() + } + + var resultsCh chan CallResult = nil + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"debug_traceBlockByNumber"}, resultsCh) + } + + reqGen := &RequestGenerator{ + client: client, + } + + var nBlocks = 0 + for bn := blockFrom; bn < blockTo; bn++ { + nBlocks++ + reqGen.reqID++ + request := reqGen.debugTraceBlockByNumber(bn) + errCtx := fmt.Sprintf("block %d", bn) + if err := requestAndCompare(request, "debug_traceBlockByNumber", errCtx, reqGen, needCompare, rec, errs, resultsCh /* insertOnlyIfSuccess */, false); err != nil { + return err + } + } + fmt.Println("\nProcessed Blocks: ", nBlocks) + + return nil +} + +func BenchDebugTraceBlockByHash(erigonUrl, gethUrl string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) error { + setRoutes(erigonUrl, gethUrl) + var client = &http.Client{ + Timeout: time.Second * 600, + } + + var rec *bufio.Writer + if recordFile != "" { + f, err := os.Create(recordFile) + if err != nil { + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFile, err) + } + defer f.Close() + rec = bufio.NewWriter(f) + defer rec.Flush() + } + var errs *bufio.Writer + if errorFile != "" { + ferr, err := os.Create(errorFile) + if err != nil { + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFile, err) + } + defer ferr.Close() + errs = bufio.NewWriter(ferr) + defer errs.Flush() + } + + var resultsCh chan CallResult = nil + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"debug_traceBlockByHash"}, resultsCh) + } + + reqGen := &RequestGenerator{ + client: client, + } + + reqGen.reqID++ + + var res CallResult + var nBlocks = 0 + for bn := blockFrom; bn < blockTo; bn++ { + var b EthBlockByNumber + res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) + if res.Err != nil { + return fmt.Errorf("retrieve block (Erigon) %d: %v", blockFrom, res.Err) + } + if b.Error != nil { + return fmt.Errorf("retrieving block (Erigon): %d %s", b.Error.Code, b.Error.Message) + } + + nBlocks++ + reqGen.reqID++ + request := reqGen.traceBlockByHash(b.Result.Hash.Hex()) + errCtx := fmt.Sprintf("block %d, tx %s", bn, b.Result.Hash.Hex()) + if err := requestAndCompare(request, "debug_traceBlockByHash", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess */ false); err != nil { + fmt.Println(err) + return err + } + } + fmt.Println("\nProcessed Blocks: ", nBlocks) + + return nil +} + +func BenchDebugTraceTransaction(erigonUrl, gethUrl string, needCompare bool, blockFrom uint64, blockTo uint64, recordFileName string, errorFileName string) error { + setRoutes(erigonUrl, gethUrl) + var client = &http.Client{ + Timeout: time.Second * 600, + } + + var rec *bufio.Writer + if recordFileName != "" { + f, err := os.Create(recordFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFileName, err) + } + defer f.Close() + rec = bufio.NewWriter(f) + defer rec.Flush() + } + var errs *bufio.Writer + if errorFileName != "" { + ferr, err := os.Create(errorFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFileName, err) + } + defer ferr.Close() + errs = bufio.NewWriter(ferr) + defer errs.Flush() + } + + var resultsCh chan CallResult = nil + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"debug_traceTransaction"}, resultsCh) + } + + reqGen := &RequestGenerator{ + client: client, + } + + var res CallResult + var nBlocks = 0 + var nTransactions = 0 + for bn := blockFrom; bn < blockTo; bn++ { + nBlocks++ + reqGen.reqID++ + var erigonBlock EthBlockByNumber + res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &erigonBlock) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) + } + + if erigonBlock.Error != nil { + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", erigonBlock.Error.Code, erigonBlock.Error.Message) + } + + if needCompare { + var otherBlock EthBlockByNumber + res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &otherBlock) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) + } + if otherBlock.Error != nil { + return fmt.Errorf("Error retrieving block (geth): %d %s\n", otherBlock.Error.Code, otherBlock.Error.Message) + } + if !compareBlocks(&erigonBlock, &otherBlock) { + if rec != nil { + fmt.Fprintf(rec, "Block difference for block=%d\n", bn) + rec.Flush() + continue + } else { + return fmt.Errorf("block %d has different fields\n", bn) + } + } + } + + for _, tx := range erigonBlock.Result.Transactions { + reqGen.reqID++ + nTransactions++ + + var request string + request = reqGen.debugTraceTransaction(tx.Hash) + errCtx := fmt.Sprintf("bn=%d hash=%s", bn, tx.Hash) + + if err := requestAndCompare(request, "debug_traceTransaction", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess */ false); err != nil { + return err + } + } + } + fmt.Println("\nProcessed Blocks: ", nBlocks, ", Transactions", nTransactions) + + return nil +} + +func BenchDebugTraceCall(erigonURL, gethURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) error { + setRoutes(erigonURL, gethURL) + var client = &http.Client{ + Timeout: time.Second * 600, + } + var rec *bufio.Writer + if recordFile != "" { + f, err := os.Create(recordFile) + if err != nil { + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFile, err) + } + defer f.Close() + rec = bufio.NewWriter(f) + defer rec.Flush() + } + var errs *bufio.Writer + if errorFile != "" { + ferr, err := os.Create(errorFile) + if err != nil { + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFile, err) + } + defer ferr.Close() + errs = bufio.NewWriter(ferr) + defer errs.Flush() + } + + var resultsCh chan CallResult = nil + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"debug_traceCall"}, resultsCh) + } + + reqGen := &RequestGenerator{ + client: client, + } + + var res CallResult + + reqGen.reqID++ + var blockNumber EthBlockNumber + res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) + if res.Err != nil { + return fmt.Errorf("Could not get block number: %v\n", res.Err) + } + if blockNumber.Error != nil { + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) + } + fmt.Printf("Last block: %d\n", blockNumber.Number) + + var nBlocks = 0 + var nTransactions = 0 + for bn := blockFrom; bn <= blockTo; bn++ { + reqGen.reqID++ + var b EthBlockByNumber + res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) + } + + if b.Error != nil { + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) + } + + if needCompare { + var bg EthBlockByNumber + res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) + } + if bg.Error != nil { + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) + } + if !compareBlocks(&b, &bg) { + return fmt.Errorf("Block difference for %d\n", bn) + } + } + nBlocks++ + + for _, tx := range b.Result.Transactions { + nTransactions++ + reqGen.reqID++ + + request := reqGen.debugTraceCall(tx.From, tx.To, &tx.Gas, &tx.GasPrice, &tx.Value, tx.Input, bn-1) + errCtx := fmt.Sprintf("block %d tx %s", bn, tx.Hash) + if err := requestAndCompare(request, "debug_traceCall", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess*/ false); err != nil { + fmt.Println(err) + return err + } + } + } + fmt.Println("\nProcessed Blocks: ", nBlocks, ", Transactions", nTransactions) + + return nil +} diff --git a/cmd/rpctest/rpctest/bench_debugtracecall.go b/cmd/rpctest/rpctest/bench_debugtracecall.go deleted file mode 100644 index 4492da33f7b..00000000000 --- a/cmd/rpctest/rpctest/bench_debugtracecall.go +++ /dev/null @@ -1,102 +0,0 @@ -package rpctest - -import ( - "bufio" - "fmt" - "net/http" - "os" - "time" -) - -// bench12 compares response of Erigon with Geth -// but also can be used for comparing RPCDaemon with Geth -// parameters: -// needCompare - if false - doesn't call Erigon and doesn't compare responses -func BenchDebugTraceCall(erigonURL, gethURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { - setRoutes(erigonURL, gethURL) - var client = &http.Client{ - Timeout: time.Second * 600, - } - var rec *bufio.Writer - if recordFile != "" { - f, err := os.Create(recordFile) - if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return - } - defer f.Close() - rec = bufio.NewWriter(f) - defer rec.Flush() - } - var errs *bufio.Writer - if errorFile != "" { - ferr, err := os.Create(errorFile) - if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return - } - defer ferr.Close() - errs = bufio.NewWriter(ferr) - defer errs.Flush() - } - - var res CallResult - reqGen := &RequestGenerator{ - client: client, - } - - reqGen.reqID++ - var blockNumber EthBlockNumber - res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) - if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return - } - if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return - } - fmt.Printf("Last block: %d\n", blockNumber.Number) - for bn := blockFrom; bn <= blockTo; bn++ { - reqGen.reqID++ - var b EthBlockByNumber - res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) - if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return - } - - if b.Error != nil { - fmt.Printf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) - return - } - - if needCompare { - var bg EthBlockByNumber - res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) - if res.Err != nil { - fmt.Printf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) - return - } - if bg.Error != nil { - fmt.Printf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) - return - } - if !compareBlocks(&b, &bg) { - fmt.Printf("Block difference for %d\n", bn) - return - } - } - - for _, tx := range b.Result.Transactions { - reqGen.reqID++ - - request := reqGen.debugTraceCall(tx.From, tx.To, &tx.Gas, &tx.GasPrice, &tx.Value, tx.Input, bn-1) - errCtx := fmt.Sprintf("block %d tx %s", bn, tx.Hash) - if err := requestAndCompare(request, "debug_traceCall", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { - fmt.Println(err) - return - } - } - } -} diff --git a/cmd/rpctest/rpctest/bench_ethcall.go b/cmd/rpctest/rpctest/bench_ethcall.go index 6d2e0354515..206792a4bd3 100644 --- a/cmd/rpctest/rpctest/bench_ethcall.go +++ b/cmd/rpctest/rpctest/bench_ethcall.go @@ -16,7 +16,7 @@ import ( // false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon // recordFile stores all eth_call returned with success // errorFile stores information when erigon and geth doesn't return same data -func BenchEthCall(erigonURL, gethURL string, needCompare, latest bool, blockFrom, blockTo uint64, recordFile string, errorFile string) { +func BenchEthCall(erigonURL, gethURL string, needCompare, latest bool, blockFrom, blockTo uint64, recordFileName string, errorFileName string) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -27,22 +27,20 @@ func BenchEthCall(erigonURL, gethURL string, needCompare, latest bool, blockFrom var resultsCh chan CallResult = nil var nTransactions = 0 - if errorFile != "" { - f, err := os.Create(errorFile) + if errorFileName != "" { + f, err := os.Create(errorFileName) if err != nil { - fmt.Printf("Cannot create file %s for errorFile: %v\n", errorFile, err) - return + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", errorFileName, err) } defer f.Close() errs = bufio.NewWriter(f) defer errs.Flush() } - if recordFile != "" { - frec, errRec := os.Create(recordFile) + if recordFileName != "" { + frec, errRec := os.Create(recordFileName) if errRec != nil { - fmt.Printf("Cannot create file %s for errorFile: %v\n", recordFile, errRec) - return + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", recordFileName, errRec) } defer frec.Close() rec = bufio.NewWriter(frec) @@ -67,34 +65,29 @@ func BenchEthCall(erigonURL, gethURL string, needCompare, latest bool, blockFrom var b EthBlockByNumber res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) } if b.Error != nil { - fmt.Printf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) - return + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) } if needCompare { var bg EthBlockByNumber res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) if res.Err != nil { - fmt.Printf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) } if bg.Error != nil { - fmt.Printf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) - return + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) } if !compareBlocks(&b, &bg) { - fmt.Printf("Block difference for %d\n", bn) if rec != nil { fmt.Fprintf(rec, "Block difference for block=%d\n", bn) rec.Flush() continue } else { - return + return fmt.Errorf("Block one or more fields areis different for block %d\n", bn) } } } @@ -105,19 +98,23 @@ func BenchEthCall(erigonURL, gethURL string, needCompare, latest bool, blockFrom nTransactions = nTransactions + 1 var request string + var insertedOnlyIfSuccess bool if latest { request = reqGen.ethCallLatest(tx.From, tx.To, &tx.Gas, &tx.GasPrice, &tx.Value, tx.Input) + insertedOnlyIfSuccess = true } else { request = reqGen.ethCall(tx.From, tx.To, &tx.Gas, &tx.GasPrice, &tx.Value, tx.Input, bn-1) + insertedOnlyIfSuccess = false } errCtx := fmt.Sprintf(" bn=%d hash=%s", bn, tx.Hash) - if err := requestAndCompare(request, "eth_call", errCtx, reqGen, needCompare, rec, errs, resultsCh); err != nil { - fmt.Println(err) - return + if err := requestAndCompare(request, "eth_call", errCtx, reqGen, needCompare, rec, errs, resultsCh, + insertedOnlyIfSuccess); err != nil { + return err } } fmt.Println("\nProcessed Transactions: ", nTransactions) } + return nil } diff --git a/cmd/rpctest/rpctest/bench_ethgetBalance.go b/cmd/rpctest/rpctest/bench_ethgetBalance.go index f3f625b2e72..19a1d4b310f 100644 --- a/cmd/rpctest/rpctest/bench_ethgetBalance.go +++ b/cmd/rpctest/rpctest/bench_ethgetBalance.go @@ -12,7 +12,7 @@ import ( // needCompare - if false - doesn't call Erigon and doesn't compare responses // // use false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon -func BenchEthGetBalance(erigonURL, gethURL string, needCompare bool, blockFrom uint64, blockTo uint64) { +func BenchEthGetBalance(erigonURL, gethURL string, needCompare bool, blockFrom uint64, blockTo uint64) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -34,40 +34,34 @@ func BenchEthGetBalance(erigonURL, gethURL string, needCompare bool, blockFrom u var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } for bn := blockFrom; bn <= blockTo; bn++ { reqGen.reqID++ var b EthBlockByNumber res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) } if b.Error != nil { - fmt.Printf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) } if needCompare { var bg EthBlockByNumber res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) if res.Err != nil { - fmt.Printf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) } if bg.Error != nil { - fmt.Printf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) - return + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) } if !compareBlocks(&b, &bg) { - fmt.Printf("Block difference for %d\n", bn) - return + return fmt.Errorf("Block difference for %d\n", bn) } } @@ -82,29 +76,25 @@ func BenchEthGetBalance(erigonURL, gethURL string, needCompare bool, blockFrom u resultsCh <- res } if res.Err != nil { - fmt.Printf("Could not get account balance (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get account balance (Erigon): %v\n", res.Err) } if balance.Error != nil { - fmt.Printf("Error getting account balance (Erigon): %d %s", balance.Error.Code, balance.Error.Message) - return + return fmt.Errorf("Error getting account balance (Erigon): %d %s", balance.Error.Code, balance.Error.Message) } if needCompare { var balanceg EthBalance res = reqGen.Geth("eth_getBalance", reqGen.getBalance(account, bn), &balanceg) if res.Err != nil { - fmt.Printf("Could not get account balance (geth): %v\n", res.Err) - return + return fmt.Errorf("Could not get account balance (geth): %v\n", res.Err) } if balanceg.Error != nil { - fmt.Printf("Error getting account balance (geth): %d %s\n", balanceg.Error.Code, balanceg.Error.Message) - return + return fmt.Errorf("Error getting account balance (geth): %d %s\n", balanceg.Error.Code, balanceg.Error.Message) } if !compareBalances(&balance, &balanceg) { - fmt.Printf("Account %x balance difference for block %d\n", account, bn) - return + return fmt.Errorf("Account %x balance difference for block %d\n", account, bn) } } } } + return nil } diff --git a/cmd/rpctest/rpctest/bench_ethgetblockbyhash.go b/cmd/rpctest/rpctest/bench_ethgetblockbyhash.go new file mode 100644 index 00000000000..f6a6d2af90a --- /dev/null +++ b/cmd/rpctest/rpctest/bench_ethgetblockbyhash.go @@ -0,0 +1,110 @@ +package rpctest + +import ( + "bufio" + "fmt" + "net/http" + "os" + "time" +) + +// BenchEthGetBlockByHash compares response of Erigon with Geth +// but also can be used for comparing RPCDaemon with Geth or infura +// parameters: +// needCompare - if false - doesn't call Erigon and doesn't compare responses +// +// false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon +// recordFileName stores all eth_call returned wite success +// errorFileName stores information when erigon and geth doesn't return same data +func BenchEthGetBlockByHash(erigonURL, gethURL string, needCompare, latest bool, blockFrom, blockTo uint64, recordFileName string, errorFileName string) error { + setRoutes(erigonURL, gethURL) + var client = &http.Client{ + Timeout: time.Second * 600, + } + + var rec *bufio.Writer + var errs *bufio.Writer + var resultsCh chan CallResult = nil + var nBlocks = 0 + + if errorFileName != "" { + f, err := os.Create(errorFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for errorFileName: %v\n", errorFileName, err) + } + defer f.Sync() + defer f.Close() + errs = bufio.NewWriter(f) + defer errs.Flush() + } + + if recordFileName != "" { + frec, err := os.Create(recordFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", recordFileName, err) + } + defer frec.Close() + rec = bufio.NewWriter(frec) + defer rec.Flush() + } + + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"eth_getBlockByHash"}, resultsCh) + } + var res CallResult + + reqGen := &RequestGenerator{ + client: client, + } + + reqGen.reqID++ + + for bn := blockFrom; bn <= blockTo; bn++ { + reqGen.reqID++ + var b EthBlockByNumber + res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) + } + + if b.Error != nil { + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) + } + + if needCompare { + var bg EthBlockByNumber + res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) + } + if bg.Error != nil { + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) + } + if !compareBlocks(&b, &bg) { + if rec != nil { + fmt.Fprintf(rec, "Block difference for block=%d\n", bn) + rec.Flush() + continue + } else { + return fmt.Errorf("block %d has different fields\n", bn) + } + } + } + + reqGen.reqID++ + nBlocks++ + var request string + request = reqGen.getBlockByHash(b.Result.Hash, true) + errCtx := fmt.Sprintf(" bn=%d hash=%s", bn, b.Result.Hash) + + if err := requestAndCompare(request, "eth_getBlockByHash", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess */ false); err != nil { + return err + } + + fmt.Println("\nProcessed Blocks: ", nBlocks) + } + return nil +} diff --git a/cmd/rpctest/rpctest/bench_ethgetblockbynumber.go b/cmd/rpctest/rpctest/bench_ethgetblockbynumber.go new file mode 100644 index 00000000000..8279c19f325 --- /dev/null +++ b/cmd/rpctest/rpctest/bench_ethgetblockbynumber.go @@ -0,0 +1,109 @@ +package rpctest + +import ( + "bufio" + "fmt" + "net/http" + "os" + "time" +) + +// BenchEthGetBlockByNumber compares response of Erigon with Geth +// but also can be used for comparing RPCDaemon with Geth or infura +// parameters: +// needCompare - if false - doesn't call Erigon and doesn't compare responses +// +// false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon +// recordFile stores all eth_call returned with success +// errorFile stores information when erigon and geth doesn't return same data +func BenchEthGetBlockByNumber2(erigonURL, gethURL string, needCompare, latest bool, blockFrom, blockTo uint64, recordFileName string, errorFileName string) error { + setRoutes(erigonURL, gethURL) + var client = &http.Client{ + Timeout: time.Second * 600, + } + + var rec *bufio.Writer + var errs *bufio.Writer + var resultsCh chan CallResult = nil + var nBlocks = 0 + + if errorFileName != "" { + f, err := os.Create(errorFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", errorFileName, err) + } + defer f.Close() + errs = bufio.NewWriter(f) + defer errs.Flush() + } + + if recordFileName != "" { + frec, errRec := os.Create(recordFileName) + if errRec != nil { + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", recordFileName, errRec) + } + defer frec.Close() + rec = bufio.NewWriter(frec) + defer rec.Flush() + } + + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"eth_getBlockByNumber"}, resultsCh) + } + var res CallResult + + reqGen := &RequestGenerator{ + client: client, + } + + reqGen.reqID++ + + for bn := blockFrom; bn <= blockTo; bn++ { + reqGen.reqID++ + var b EthBlockByNumber + res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) + } + + if b.Error != nil { + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) + } + + if needCompare { + var bg EthBlockByNumber + res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) + } + if bg.Error != nil { + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) + } + if !compareBlocks(&b, &bg) { + if rec != nil { + fmt.Fprintf(rec, "Block difference for block=%d\n", bn) + rec.Flush() + continue + } else { + return fmt.Errorf("Block difference for %d\n", bn) + } + } + } + + reqGen.reqID++ + nBlocks++ + var request string + request = reqGen.getBlockByNumber(bn, true) + errCtx := fmt.Sprintf(" bn=%d ", bn) + + if err := requestAndCompare(request, "eth_getBlockByNumber", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess */ false); err != nil { + return err + } + + fmt.Println("\nProcessed Blocks: ", nBlocks) + } + return nil +} diff --git a/cmd/rpctest/rpctest/bench_ethgetlogs.go b/cmd/rpctest/rpctest/bench_ethgetlogs.go index 61c921bf36f..d70b868c806 100644 --- a/cmd/rpctest/rpctest/bench_ethgetlogs.go +++ b/cmd/rpctest/rpctest/bench_ethgetlogs.go @@ -17,7 +17,7 @@ import ( // false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon // recordFile stores all eth_getlogs returned with success // errorFile stores information when erigon and geth doesn't return same data -func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { +func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -27,8 +27,7 @@ func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint if recordFile != "" { f, err := os.Create(recordFile) if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFile, err) } defer f.Close() rec = bufio.NewWriter(f) @@ -38,8 +37,7 @@ func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint if errorFile != "" { ferr, err := os.Create(errorFile) if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFile, err) } defer ferr.Close() errs = bufio.NewWriter(ferr) @@ -62,12 +60,10 @@ func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } fmt.Printf("Last block: %d\n", blockNumber.Number) @@ -80,12 +76,10 @@ func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint var mag DebugModifiedAccounts res = reqGen.Erigon("debug_getModifiedAccountsByNumber", reqGen.getModifiedAccountsByNumber(prevBn, bn), &mag) if res.Err != nil { - fmt.Printf("Could not get modified accounts (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get modified accounts (Erigon): %v\n", res.Err) } if mag.Error != nil { - fmt.Printf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message) - return + return fmt.Errorf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message) } if res.Err == nil && mag.Error == nil { accountSet := extractAccountMap(&mag) @@ -93,9 +87,10 @@ func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint reqGen.reqID++ request := reqGen.getLogs(prevBn, bn, account) errCtx := fmt.Sprintf("account %x blocks %d-%d", account, prevBn, bn) - if err := requestAndCompare(request, "eth_getLogs", errCtx, reqGen, needCompare, rec, errs, resultsCh); err != nil { + if err := requestAndCompare(request, "eth_getLogs", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess */ false); err != nil { fmt.Println(err) - return + return err } topics := getTopics(res.Result) // All combination of account and one topic @@ -103,9 +98,10 @@ func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint reqGen.reqID++ request = reqGen.getLogs1(prevBn, bn+10000, account, topic) errCtx := fmt.Sprintf("account %x topic %x blocks %d-%d", account, topic, prevBn, bn) - if err := requestAndCompare(request, "eth_getLogs", errCtx, reqGen, needCompare, rec, errs, resultsCh); err != nil { + if err := requestAndCompare(request, "eth_getLogs", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess */ false); err != nil { fmt.Println(err) - return + return err } } // Random combinations of two topics @@ -118,9 +114,10 @@ func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint reqGen.reqID++ request = reqGen.getLogs2(prevBn, bn+100000, account, topics[idx1], topics[idx2]) errCtx := fmt.Sprintf("account %x topic1 %x topic2 %x blocks %d-%d", account, topics[idx1], topics[idx2], prevBn, bn) - if err := requestAndCompare(request, "eth_getLogs", errCtx, reqGen, needCompare, rec, errs, resultsCh); err != nil { + if err := requestAndCompare(request, "eth_getLogs", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess */ false); err != nil { fmt.Println(err) - return + return err } } } @@ -128,4 +125,5 @@ func BenchEthGetLogs(erigonURL, gethURL string, needCompare bool, blockFrom uint fmt.Printf("Done blocks %d-%d, modified accounts: %d\n", prevBn, bn, len(mag.Result)) prevBn = bn } + return nil } diff --git a/cmd/rpctest/rpctest/bench_gettransactionbyhash.go b/cmd/rpctest/rpctest/bench_gettransactionbyhash.go new file mode 100644 index 00000000000..b33ba9dfd18 --- /dev/null +++ b/cmd/rpctest/rpctest/bench_gettransactionbyhash.go @@ -0,0 +1,115 @@ +package rpctest + +import ( + "bufio" + "fmt" + "net/http" + "os" + "time" +) + +// BenchEthGetTransactionByHash compares response of Erigon with Geth +// but also can be used for comparing RPCDaemon with Geth or infura +// parameters: +// needCompare - if false - doesn't call Erigon and doesn't compare responses +// +// false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon +// +// recordFile stores all eth_GetTransactionByHash returned with success +// +// errorFile stores information when erigon and geth doesn't return same data +func BenchEthGetTransactionByHash(erigonURL, gethURL string, needCompare bool, blockFrom, blockTo uint64, recordFileName string, errorFileName string) error { + setRoutes(erigonURL, gethURL) + var client = &http.Client{ + Timeout: time.Second * 600, + } + + var rec *bufio.Writer + var errs *bufio.Writer + var resultsCh chan CallResult = nil + var nTransactions = 0 + + if errorFileName != "" { + f, err := os.Create(errorFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", errorFileName, err) + } + defer f.Close() + errs = bufio.NewWriter(f) + defer errs.Flush() + } + + if recordFileName != "" { + frec, errRec := os.Create(recordFileName) + if errRec != nil { + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", recordFileName, errRec) + } + defer frec.Close() + rec = bufio.NewWriter(frec) + defer rec.Flush() + } + + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"eth_getTransactionByHash"}, resultsCh) + } + var res CallResult + + reqGen := &RequestGenerator{ + client: client, + } + + reqGen.reqID++ + + for bn := blockFrom; bn <= blockTo; bn++ { + reqGen.reqID++ + var b EthBlockByNumber + res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) + } + + if b.Error != nil { + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) + } + + if needCompare { + var bg EthBlockByNumber + res = reqGen.Geth("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &bg) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) + } + if bg.Error != nil { + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) + } + if !compareBlocks(&b, &bg) { + if rec != nil { + fmt.Fprintf(rec, "Block difference for block=%d\n", bn) + rec.Flush() + continue + } else { + return fmt.Errorf("Block one or more fields areis different for block %d\n", bn) + } + } + } + + for _, tx := range b.Result.Transactions { + + reqGen.reqID++ + nTransactions = nTransactions + 1 + + var request string + request = reqGen.getTransactionByHash(tx.Hash) + errCtx := fmt.Sprintf(" bn=%d hash=%s", bn, tx.Hash) + + if err := requestAndCompare(request, "eth_getTransactionByHash", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess */ false); err != nil { + return err + } + } + + fmt.Println("\nProcessed Transactions: ", nTransactions) + } + return nil +} diff --git a/cmd/rpctest/rpctest/bench_otsgetblockTransactions.go b/cmd/rpctest/rpctest/bench_otsgetblockTransactions.go new file mode 100644 index 00000000000..ac08b131a3b --- /dev/null +++ b/cmd/rpctest/rpctest/bench_otsgetblockTransactions.go @@ -0,0 +1,113 @@ +package rpctest + +import ( + "bufio" + "fmt" + "net/http" + "os" + "time" +) + +// BenchOtsGetBlockTransactions compares response of Erigon with Geth +// but also can be used for comparing RPCDaemon with Geth +// parameters: +// needCompare - if false - doesn't call Erigon and doesn't compare responses +// +// use false value - to generate vegeta files, it's faster but we can generate vegeta files for Geth and Erigon +func BenchOtsGetBlockTransactions(erigonURL, gethURL string, needCompare, visitAllPages bool, latest bool, blockFrom, blockTo uint64, recordFileName string, errorFileName string) error { + setRoutes(erigonURL, gethURL) + var client = &http.Client{ + Timeout: time.Second * 600, + } + + var rec *bufio.Writer + var errs *bufio.Writer + var resultsCh chan CallResult = nil + + if errorFileName != "" { + f, err := os.Create(errorFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for errorFileName: %v\n", errorFileName, err) + } + defer f.Sync() + defer f.Close() + errs = bufio.NewWriter(f) + defer errs.Flush() + } + + if recordFileName != "" { + frec, err := os.Create(recordFileName) + if err != nil { + return fmt.Errorf("Cannot create file %s for errorFile: %v\n", recordFileName, err) + } + defer frec.Close() + rec = bufio.NewWriter(frec) + defer rec.Flush() + } + + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"ots_getBlockTransactions"}, resultsCh) + } + + var res CallResult + + reqGen := &RequestGenerator{ + client: client, + } + + reqGen.reqID++ + + for bn := blockFrom; bn <= blockTo; bn++ { + + var pageCount uint64 = 0 + pageEnded := false + + for !pageEnded { + reqGen.reqID++ + var b OtsBlockTransactions + res = reqGen.Erigon("ots_getBlockTransactions", reqGen.otsGetBlockTransactions(bn, pageCount, 10), &b) + + if len(b.Result.FullBlock.Transactions) < 1 || !visitAllPages { + pageEnded = true + } + + if !needCompare { + resultsCh <- res + } + + if res.Err != nil { + return fmt.Errorf("Could not retrieve transactions of block (Erigon) %d: %v\n", bn, res.Err) + } + + if b.Error != nil { + return fmt.Errorf("Error retrieving transactions of block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) + } + + if needCompare { + var bg OtsBlockTransactions + res = reqGen.Geth("ots_getBlockTransactions", reqGen.otsGetBlockTransactions(bn, pageCount, 10), &bg) + if res.Err != nil { + return fmt.Errorf("Could not retrieve block (geth) %d: %v\n", bn, res.Err) + } + if bg.Error != nil { + return fmt.Errorf("Error retrieving block (geth): %d %s\n", bg.Error.Code, bg.Error.Message) + } + if !compareBlockTransactions(&b, &bg) { + if rec != nil { + fmt.Fprintf(rec, "Block difference for block=%d\n", bn) + rec.Flush() + continue + } else { + return fmt.Errorf("block %d has different fields\n", bn) + } + } + } + pageCount++ + } + + } + + return nil +} diff --git a/cmd/rpctest/rpctest/bench_traceblock.go b/cmd/rpctest/rpctest/bench_traceblock.go index 6e6105be1db..9b93add8568 100644 --- a/cmd/rpctest/rpctest/bench_traceblock.go +++ b/cmd/rpctest/rpctest/bench_traceblock.go @@ -12,7 +12,7 @@ import ( // but also can be used for comparing RPCDaemon with OpenEthereum // parameters: // needCompare - if false - doesn't call Erigon and doesn't compare responses -func BenchTraceBlock(erigonURL, oeURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { +func BenchTraceBlock(erigonURL, oeURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) error { setRoutes(erigonURL, oeURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -21,8 +21,7 @@ func BenchTraceBlock(erigonURL, oeURL string, needCompare bool, blockFrom uint64 if recordFile != "" { f, err := os.Create(recordFile) if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFile, err) } defer f.Close() rec = bufio.NewWriter(f) @@ -32,8 +31,7 @@ func BenchTraceBlock(erigonURL, oeURL string, needCompare bool, blockFrom uint64 if errorFile != "" { ferr, err := os.Create(errorFile) if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFile, err) } defer ferr.Close() errs = bufio.NewWriter(ferr) @@ -49,12 +47,10 @@ func BenchTraceBlock(erigonURL, oeURL string, needCompare bool, blockFrom uint64 var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } fmt.Printf("Last block: %d\n", blockNumber.Number) for bn := blockFrom; bn <= blockTo; bn++ { @@ -62,20 +58,19 @@ func BenchTraceBlock(erigonURL, oeURL string, needCompare bool, blockFrom uint64 var b EthBlockByNumber res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) } if b.Error != nil { - fmt.Printf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) - return + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) } reqGen.reqID++ request := reqGen.traceBlock(bn) errCtx := fmt.Sprintf("block %d", bn) - if err := requestAndCompare(request, "trace_block", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { + if err := requestAndCompare(request, "trace_block", errCtx, reqGen, needCompare, rec, errs, nil /* insertOnlyIfSuccess */, false); err != nil { fmt.Println(err) - return + return err } } + return nil } diff --git a/cmd/rpctest/rpctest/bench_tracecall.go b/cmd/rpctest/rpctest/bench_tracecall.go index 1a1202b9873..6902e37b7d0 100644 --- a/cmd/rpctest/rpctest/bench_tracecall.go +++ b/cmd/rpctest/rpctest/bench_tracecall.go @@ -12,7 +12,7 @@ import ( // but also can be used for comparing RPCDaemon with Geth // parameters: // needCompare - if false - doesn't call Erigon and doesn't compare responses -func BenchTraceCall(erigonURL, oeURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { +func BenchTraceCall(erigonURL, oeURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) error { setRoutes(erigonURL, oeURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -21,8 +21,7 @@ func BenchTraceCall(erigonURL, oeURL string, needCompare bool, blockFrom uint64, if recordFile != "" { f, err := os.Create(recordFile) if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFile, err) } defer f.Close() rec = bufio.NewWriter(f) @@ -32,8 +31,7 @@ func BenchTraceCall(erigonURL, oeURL string, needCompare bool, blockFrom uint64, if errorFile != "" { ferr, err := os.Create(errorFile) if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFile, err) } defer ferr.Close() errs = bufio.NewWriter(ferr) @@ -49,12 +47,10 @@ func BenchTraceCall(erigonURL, oeURL string, needCompare bool, blockFrom uint64, var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } fmt.Printf("Last block: %d\n", blockNumber.Number) for bn := blockFrom; bn <= blockTo; bn++ { @@ -62,22 +58,21 @@ func BenchTraceCall(erigonURL, oeURL string, needCompare bool, blockFrom uint64, var b EthBlockByNumber res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) } if b.Error != nil { - fmt.Printf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) - return + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) } for _, tx := range b.Result.Transactions { reqGen.reqID++ request := reqGen.traceCall(tx.From, tx.To, &tx.Gas, &tx.GasPrice, &tx.Value, tx.Input, bn-1) errCtx := fmt.Sprintf("block %d, tx %s", bn, tx.Hash) - if err := requestAndCompare(request, "trace_call", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { - return + if err := requestAndCompare(request, "trace_call", errCtx, reqGen, needCompare, rec, errs, nil /* insertOnlyIfSuccess */, false); err != nil { + return err } } } + return nil } diff --git a/cmd/rpctest/rpctest/bench_tracecallmany.go b/cmd/rpctest/rpctest/bench_tracecallmany.go index a3599af7c0c..7c1b1953769 100644 --- a/cmd/rpctest/rpctest/bench_tracecallmany.go +++ b/cmd/rpctest/rpctest/bench_tracecallmany.go @@ -7,17 +7,17 @@ import ( "os" "time" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // BenchTraceCallMany compares response of Erigon with Geth // but also can be used for comparing RPCDaemon with Geth // parameters: // needCompare - if false - doesn't call Erigon and doesn't compare responses -func BenchTraceCallMany(erigonURL, oeURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { +func BenchTraceCallMany(erigonURL, oeURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) error { setRoutes(erigonURL, oeURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -26,8 +26,7 @@ func BenchTraceCallMany(erigonURL, oeURL string, needCompare bool, blockFrom uin if recordFile != "" { f, err := os.Create(recordFile) if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFile, err) } defer f.Close() rec = bufio.NewWriter(f) @@ -37,8 +36,7 @@ func BenchTraceCallMany(erigonURL, oeURL string, needCompare bool, blockFrom uin if errorFile != "" { ferr, err := os.Create(errorFile) if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFile, err) } defer ferr.Close() errs = bufio.NewWriter(ferr) @@ -54,12 +52,10 @@ func BenchTraceCallMany(erigonURL, oeURL string, needCompare bool, blockFrom uin var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } fmt.Printf("Last block: %d\n", blockNumber.Number) for bn := blockFrom; bn <= blockTo; bn++ { @@ -67,12 +63,10 @@ func BenchTraceCallMany(erigonURL, oeURL string, needCompare bool, blockFrom uin var b EthBlockByNumber res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) } if b.Error != nil { - fmt.Printf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) - return + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) } n := len(b.Result.Transactions) @@ -96,9 +90,10 @@ func BenchTraceCallMany(erigonURL, oeURL string, needCompare bool, blockFrom uin request := reqGen.traceCallMany(from, to, gas, gasPrice, value, data, bn-1) errCtx := fmt.Sprintf("block %d", bn) - if err := requestAndCompare(request, "trace_callMany", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { + if err := requestAndCompare(request, "trace_callMany", errCtx, reqGen, needCompare, rec, errs, nil /* insertOnlyIfSuccess */, false); err != nil { fmt.Println(err) - return + return err } } + return nil } diff --git a/cmd/rpctest/rpctest/bench_tracefilter.go b/cmd/rpctest/rpctest/bench_tracefilter.go index 9d907c2c559..927c93e5004 100644 --- a/cmd/rpctest/rpctest/bench_tracefilter.go +++ b/cmd/rpctest/rpctest/bench_tracefilter.go @@ -15,7 +15,7 @@ import ( // but also can be used for comparing RPCDaemon with Geth // parameters: // needCompare - if false - doesn't call Erigon and doesn't compare responses -func BenchTraceFilter(erigonURL, oeURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { +func BenchTraceFilter(erigonURL, oeURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) error { setRoutes(erigonURL, oeURL) var client = &http.Client{ Timeout: time.Second * 600, @@ -24,8 +24,7 @@ func BenchTraceFilter(erigonURL, oeURL string, needCompare bool, blockFrom uint6 if recordFile != "" { f, err := os.Create(recordFile) if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFile, err) } defer f.Close() rec = bufio.NewWriter(f) @@ -35,8 +34,7 @@ func BenchTraceFilter(erigonURL, oeURL string, needCompare bool, blockFrom uint6 if errorFile != "" { ferr, err := os.Create(errorFile) if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFile, err) } defer ferr.Close() errs = bufio.NewWriter(ferr) @@ -52,12 +50,10 @@ func BenchTraceFilter(erigonURL, oeURL string, needCompare bool, blockFrom uint6 var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } fmt.Printf("Last block: %d\n", blockNumber.Number) rnd := rand.New(rand.NewSource(42)) // nolint:gosec @@ -68,12 +64,10 @@ func BenchTraceFilter(erigonURL, oeURL string, needCompare bool, blockFrom uint6 var mag DebugModifiedAccounts res = reqGen.Erigon("debug_getModifiedAccountsByNumber", reqGen.getModifiedAccountsByNumber(prevBn, bn), &mag) if res.Err != nil { - fmt.Printf("Could not get modified accounts (Erigon): %v\n", res.Err) - return + return fmt.Errorf("Could not get modified accounts (Erigon): %v\n", res.Err) } if mag.Error != nil { - fmt.Printf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message) - return + return fmt.Errorf("Error getting modified accounts (Erigon): %d %s\n", mag.Error.Code, mag.Error.Message) } if res.Err == nil && mag.Error == nil { accountSet := extractAccountMap(&mag) @@ -95,16 +89,16 @@ func BenchTraceFilter(erigonURL, oeURL string, needCompare bool, blockFrom uint6 reqGen.reqID++ request := reqGen.traceFilterFrom(prevBn, bn, account) errCtx := fmt.Sprintf("traceFilterFrom fromBlock %d, toBlock %d, fromAddress %x", prevBn, bn, account) - if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { + if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil /* insertOnlyIfSuccess */, false); err != nil { fmt.Println(err) - return + return err } reqGen.reqID++ request = reqGen.traceFilterTo(prevBn, bn, account) errCtx = fmt.Sprintf("traceFilterTo fromBlock %d, toBlock %d, fromAddress %x", prevBn, bn, account) - if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { + if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil /* insertOnlyIfSuccess */, false); err != nil { fmt.Println(err) - return + return err } } /* @@ -114,30 +108,30 @@ func BenchTraceFilter(erigonURL, oeURL string, needCompare bool, blockFrom uint6 reqGen.reqID++ request := reqGen.traceFilterUnion(prevBn, bn, from, to) errCtx := fmt.Sprintf("traceFilterUnion fromBlock %d, toBlock %d, fromAddress %x, toAddress %x", prevBn, bn, from, to) - if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { + if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil, false); err != nil { fmt.Println(err) - return + return err } reqGen.reqID++ request = reqGen.traceFilterAfter(prevBn, bn, 1) errCtx = fmt.Sprintf("traceFilterAfter fromBlock %d, toBlock %d, after %x", prevBn, bn, 1) - if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { + if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil, false); err != nil { fmt.Println(err) - return + return err } reqGen.reqID++ request = reqGen.traceFilterCount(prevBn, bn, 1) errCtx = fmt.Sprintf("traceFilterCount fromBlock %d, toBlock %d, count %x", prevBn, bn, 1) - if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { + if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil, false); err != nil { fmt.Println(err) - return + return err } reqGen.reqID++ request = reqGen.traceFilterCountAfter(prevBn, bn, 1, 1) errCtx = fmt.Sprintf("traceFilterCountAfter fromBlock %d, toBlock %d, count %x, after %x", prevBn, bn, 1, 1) - if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { + if err := requestAndCompare(request, "trace_filter", errCtx, reqGen, needCompare, rec, errs, nil, false); err != nil { fmt.Println(err) - return + return err } } */ @@ -145,4 +139,5 @@ func BenchTraceFilter(erigonURL, oeURL string, needCompare bool, blockFrom uint6 fmt.Printf("Done blocks %d-%d, modified accounts: %d\n", prevBn, bn, len(mag.Result)) prevBn = bn } + return nil } diff --git a/cmd/rpctest/rpctest/bench_tracereplaytransaction.go b/cmd/rpctest/rpctest/bench_tracereplaytransaction.go index 82e8854f5de..0124d27182e 100644 --- a/cmd/rpctest/rpctest/bench_tracereplaytransaction.go +++ b/cmd/rpctest/rpctest/bench_tracereplaytransaction.go @@ -8,7 +8,7 @@ import ( "time" ) -func BenchTraceReplayTransaction(erigonUrl, gethUrl string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { +func BenchTraceReplayTransaction(erigonUrl, gethUrl string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) error { setRoutes(erigonUrl, gethUrl) var client = &http.Client{ Timeout: time.Second * 600, @@ -18,8 +18,7 @@ func BenchTraceReplayTransaction(erigonUrl, gethUrl string, needCompare bool, bl if recordFile != "" { f, err := os.Create(recordFile) if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFile, err) } defer f.Close() rec = bufio.NewWriter(f) @@ -29,8 +28,7 @@ func BenchTraceReplayTransaction(erigonUrl, gethUrl string, needCompare bool, bl if errorFile != "" { ferr, err := os.Create(errorFile) if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFile, err) } defer ferr.Close() errs = bufio.NewWriter(ferr) @@ -48,21 +46,21 @@ func BenchTraceReplayTransaction(erigonUrl, gethUrl string, needCompare bool, bl var b EthBlockByNumber res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) if res.Err != nil { - fmt.Printf("retrieve block (Erigon) %d: %v", blockFrom, res.Err) - return + return fmt.Errorf("retrieve block (Erigon) %d: %v", blockFrom, res.Err) } if b.Error != nil { - fmt.Printf("retrieving block (Erigon): %d %s", b.Error.Code, b.Error.Message) - return + return fmt.Errorf("retrieving block (Erigon): %d %s", b.Error.Code, b.Error.Message) } for _, tx := range b.Result.Transactions { reqGen.reqID++ request := reqGen.traceReplayTransaction(tx.Hash) errCtx := fmt.Sprintf("block %d, tx %s", bn, tx.Hash) - if err := requestAndCompare(request, "trace_replayTransaction", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { + if err := requestAndCompare(request, "trace_replayTransaction", errCtx, reqGen, needCompare, rec, errs, nil, + /* insertOnlyIfSuccess */ false); err != nil { fmt.Println(err) - return + return err } } } + return nil } diff --git a/cmd/rpctest/rpctest/bench_tracetransaction.go b/cmd/rpctest/rpctest/bench_tracetransaction.go deleted file mode 100644 index 36c4d50092f..00000000000 --- a/cmd/rpctest/rpctest/bench_tracetransaction.go +++ /dev/null @@ -1,125 +0,0 @@ -package rpctest - -import ( - "bufio" - "fmt" - "net/http" - "os" - "time" -) - -func BenchTraceBlockByHash(erigonUrl, gethUrl string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { - setRoutes(erigonUrl, gethUrl) - var client = &http.Client{ - Timeout: time.Second * 600, - } - - var rec *bufio.Writer - if recordFile != "" { - f, err := os.Create(recordFile) - if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return - } - defer f.Close() - rec = bufio.NewWriter(f) - defer rec.Flush() - } - var errs *bufio.Writer - if errorFile != "" { - ferr, err := os.Create(errorFile) - if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return - } - defer ferr.Close() - errs = bufio.NewWriter(ferr) - defer errs.Flush() - } - - var res CallResult - reqGen := &RequestGenerator{ - client: client, - } - - reqGen.reqID++ - - for bn := blockFrom; bn < blockTo; bn++ { - var b EthBlockByNumber - res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) - if res.Err != nil { - fmt.Printf("retrieve block (Erigon) %d: %v", blockFrom, res.Err) - return - } - if b.Error != nil { - fmt.Printf("retrieving block (Erigon): %d %s", b.Error.Code, b.Error.Message) - return - } - reqGen.reqID++ - request := reqGen.traceBlockByHash(b.Result.Hash.Hex()) - errCtx := fmt.Sprintf("block %d, tx %s", bn, b.Result.Hash.Hex()) - if err := requestAndCompare(request, "debug_traceBlockByHash", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { - fmt.Println(err) - return - } - } -} - -func BenchTraceTransaction(erigonUrl, gethUrl string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { - setRoutes(erigonUrl, gethUrl) - var client = &http.Client{ - Timeout: time.Second * 600, - } - - var rec *bufio.Writer - if recordFile != "" { - f, err := os.Create(recordFile) - if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return - } - defer f.Close() - rec = bufio.NewWriter(f) - defer rec.Flush() - } - var errs *bufio.Writer - if errorFile != "" { - ferr, err := os.Create(errorFile) - if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return - } - defer ferr.Close() - errs = bufio.NewWriter(ferr) - defer errs.Flush() - } - - var res CallResult - reqGen := &RequestGenerator{ - client: client, - } - - reqGen.reqID++ - - for bn := blockFrom; bn < blockTo; bn++ { - var b EthBlockByNumber - res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) - if res.Err != nil { - fmt.Printf("retrieve block (Erigon) %d: %v", blockFrom, res.Err) - return - } - if b.Error != nil { - fmt.Printf("retrieving block (Erigon): %d %s", b.Error.Code, b.Error.Message) - return - } - for _, tx := range b.Result.Transactions { - reqGen.reqID++ - request := reqGen.traceTransaction(tx.Hash) - errCtx := fmt.Sprintf("block %d, tx %s", bn, tx.Hash) - if err := requestAndCompare(request, "debug_traceTransaction", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { - fmt.Println(err) - return - } - } - } -} diff --git a/cmd/rpctest/rpctest/bench_txreceipts.go b/cmd/rpctest/rpctest/bench_txreceipts.go index 7fae08b2fde..8b677976a44 100644 --- a/cmd/rpctest/rpctest/bench_txreceipts.go +++ b/cmd/rpctest/rpctest/bench_txreceipts.go @@ -12,35 +12,41 @@ import ( // but also can be used for comparing RPCDaemon with Geth // parameters: // needCompare - if false - doesn't call Erigon and doesn't compare responses -func BenchTxReceipt(erigonURL, gethURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFile string, errorFile string) { +func BenchTxReceipt(erigonURL, gethURL string, needCompare bool, blockFrom uint64, blockTo uint64, recordFileName string, errorFileName string) error { setRoutes(erigonURL, gethURL) var client = &http.Client{ Timeout: time.Second * 600, } var rec *bufio.Writer - if recordFile != "" { - f, err := os.Create(recordFile) + var resultsCh chan CallResult = nil + + if recordFileName != "" { + f, err := os.Create(recordFileName) if err != nil { - fmt.Printf("Cannot create file %s for recording: %v\n", recordFile, err) - return + return fmt.Errorf("Cannot create file %s for recording: %v\n", recordFileName, err) } defer f.Close() rec = bufio.NewWriter(f) defer rec.Flush() } var errs *bufio.Writer - if errorFile != "" { - ferr, err := os.Create(errorFile) + if errorFileName != "" { + ferr, err := os.Create(errorFileName) if err != nil { - fmt.Printf("Cannot create file %s for error output: %v\n", errorFile, err) - return + return fmt.Errorf("Cannot create file %s for error output: %v\n", errorFileName, err) } defer ferr.Close() errs = bufio.NewWriter(ferr) defer errs.Flush() } + if !needCompare { + resultsCh = make(chan CallResult, 1000) + defer close(resultsCh) + go vegetaWrite(true, []string{"eth_getTransactionReceipt"}, resultsCh) + } + var res CallResult reqGen := &RequestGenerator{ client: client, @@ -50,12 +56,10 @@ func BenchTxReceipt(erigonURL, gethURL string, needCompare bool, blockFrom uint6 var blockNumber EthBlockNumber res = reqGen.Erigon("eth_blockNumber", reqGen.blockNumber(), &blockNumber) if res.Err != nil { - fmt.Printf("Could not get block number: %v\n", res.Err) - return + return fmt.Errorf("Could not get block number: %v\n", res.Err) } if blockNumber.Error != nil { - fmt.Printf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) - return + return fmt.Errorf("Error getting block number: %d %s\n", blockNumber.Error.Code, blockNumber.Error.Message) } fmt.Printf("Last block: %d\n", blockNumber.Number) for bn := blockFrom; bn <= blockTo; bn++ { @@ -63,22 +67,21 @@ func BenchTxReceipt(erigonURL, gethURL string, needCompare bool, blockFrom uint6 var b EthBlockByNumber res = reqGen.Erigon("eth_getBlockByNumber", reqGen.getBlockByNumber(bn, true /* withTxs */), &b) if res.Err != nil { - fmt.Printf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) - return + return fmt.Errorf("Could not retrieve block (Erigon) %d: %v\n", bn, res.Err) } if b.Error != nil { - fmt.Printf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) - return + return fmt.Errorf("Error retrieving block (Erigon): %d %s\n", b.Error.Code, b.Error.Message) } for _, tx := range b.Result.Transactions { reqGen.reqID++ request := reqGen.getTransactionReceipt(tx.Hash) errCtx := fmt.Sprintf("block %d, tx %s", bn, tx.Hash) - if err := requestAndCompare(request, "eth_getTransactionReceipt", errCtx, reqGen, needCompare, rec, errs, nil); err != nil { - fmt.Println(err) - return + if err := requestAndCompare(request, "eth_getTransactionReceipt", errCtx, reqGen, needCompare, rec, errs, resultsCh, + /* insertOnlyIfSuccess */ false); err != nil { + return err } } } + return nil } diff --git a/cmd/rpctest/rpctest/request_generator.go b/cmd/rpctest/rpctest/request_generator.go index b5936b8980a..dfb75763005 100644 --- a/cmd/rpctest/rpctest/request_generator.go +++ b/cmd/rpctest/rpctest/request_generator.go @@ -7,12 +7,12 @@ import ( "strings" "time" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/valyala/fastjson" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) type CallResult struct { @@ -39,6 +39,16 @@ func (g *RequestGenerator) getBlockByNumber(blockNum uint64, withTxs bool) strin return fmt.Sprintf(template, blockNum, withTxs, g.reqID) } +func (g *RequestGenerator) getBlockByHash(hash libcommon.Hash, withTxs bool) string { + const template = `{"jsonrpc":"2.0","method":"eth_getBlockByHash","params":["0x%x",%t],"id":%d}` + return fmt.Sprintf(template, hash, withTxs, g.reqID) +} + +func (g *RequestGenerator) getTransactionByHash(hash string) string { + const template = `{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["%s"],"id":%d}` + return fmt.Sprintf(template, hash, g.reqID) +} + func (g *RequestGenerator) storageRangeAt(hash libcommon.Hash, i int, to *libcommon.Address, nextKey libcommon.Hash) string { const template = `{"jsonrpc":"2.0","method":"debug_storageRangeAt","params":["0x%x", %d,"0x%x","0x%x",%d],"id":%d}` return fmt.Sprintf(template, hash, i, to, nextKey, 1024, g.reqID) @@ -49,7 +59,12 @@ func (g *RequestGenerator) traceBlockByHash(hash string) string { return fmt.Sprintf(template, hash, g.reqID) } -func (g *RequestGenerator) traceTransaction(hash string) string { +func (g *RequestGenerator) debugTraceBlockByNumber(blockNum uint64) string { + const template = `{"jsonrpc":"2.0","method":"debug_traceBlockByNumber","params":[%d],"id":%d}` + return fmt.Sprintf(template, blockNum, g.reqID) +} + +func (g *RequestGenerator) debugTraceTransaction(hash string) string { const template = `{"jsonrpc":"2.0","method":"debug_traceTransaction","params":["%s"],"id":%d}` return fmt.Sprintf(template, hash, g.reqID) } @@ -243,6 +258,11 @@ func (g *RequestGenerator) ethCallLatest(from libcommon.Address, to *libcommon.A return sb.String() } +func (g *RequestGenerator) otsGetBlockTransactions(block_number uint64, page_number uint64, page_size uint64) string { + const template = `{"id":1,"jsonrpc":"2.0","method":"ots_getBlockTransactions","params":[%d, %d, %d]}` + return fmt.Sprintf(template, block_number, page_number, page_size) +} + func (g *RequestGenerator) call(target string, method, body string, response interface{}) CallResult { start := time.Now() err := post(g.client, routes[target], body, response) diff --git a/cmd/rpctest/rpctest/request_generator_test.go b/cmd/rpctest/rpctest/request_generator_test.go index 2dfecf6cba1..99173249a85 100644 --- a/cmd/rpctest/rpctest/request_generator_test.go +++ b/cmd/rpctest/rpctest/request_generator_test.go @@ -168,7 +168,7 @@ func TestRequestGenerator_traceTransaction(t *testing.T) { for _, testCase := range testCases { reqGen := MockRequestGenerator(testCase.reqId) - got := reqGen.traceTransaction(testCase.hash) + got := reqGen.debugTraceTransaction(testCase.hash) require.EqualValues(t, testCase.expected, got) } } diff --git a/cmd/rpctest/rpctest/type.go b/cmd/rpctest/rpctest/type.go index 134bbbd1b7b..268fc2c2b16 100644 --- a/cmd/rpctest/rpctest/type.go +++ b/cmd/rpctest/rpctest/type.go @@ -3,10 +3,11 @@ package rpctest import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/state" ) @@ -241,11 +242,6 @@ type EthGetLogs struct { Result []Log `json:"result"` } -type EthGetTransactionCount struct { - CommonResponse - Result hexutil.Uint64 `json:"result"` -} - // AccountResult is the result struct for GetProof type AccountResult struct { Address libcommon.Address `json:"address"` @@ -266,3 +262,67 @@ type ParityListStorageKeysResult struct { CommonResponse Result []hexutility.Bytes `json:"result"` } + +type OtsTransaction struct { + BlockHash libcommon.Hash `json:"blockHash"` + BlockNumber hexutil.Uint64 `json:"blockNumber"` + From libcommon.Address `json:"from"` + Gas hexutil.Big `json:"gas"` + GasPrice hexutil.Big `json:"gasPrice"` + Hash string `json:"hash"` + Input hexutility.Bytes `json:"input"` + To *libcommon.Address `json:"to"` // Pointer because it might be missing + TransactionIndex hexutil.Uint64 `json:"transactionIndex"` + Value hexutil.Big `json:"value"` + Type hexutil.Big `json:"type"` // To check + ChainId hexutil.Big `json:"chainId"` // To check +} + +type OtsReceipt struct { + BlockHash libcommon.Hash `json:"blockHash"` + BlockNumber hexutil.Uint64 `json:"blockNumber"` + ContractAddress string `json:"contractAddress"` + CumulativeGasUsed hexutil.Big `json:"cumulativeGasUsed"` + EffectiveGasPrice hexutil.Big `json:"effectiveGasPrice"` + From libcommon.Address `json:"from"` + GasUsed hexutil.Big `json:"gasUsed"` + To *libcommon.Address `json:"to"` // Pointer because it might be missing + TransactionHash string `json:"hash"` + TransactionIndex hexutil.Uint64 `json:"transactionIndex"` +} + +type OtsFullBlock struct { + Difficulty hexutil.Big `json:"difficulty"` + ExtraData string `json:"extraData"` + GasLimit hexutil.Big `json:"gasLimit"` + GasUsed hexutil.Big `json:"gasUsed"` + Hash libcommon.Hash `json:"hash"` + Bloom string `json:"logsBloom" gencodec:"required"` + Miner libcommon.Address `json:"miner"` + MixHash string `json:"mixHash"` + Nonce string `json:"nonce"` + Number hexutil.Big `json:"number"` + + ParentHash string `json:"parentHash"` + ReceiptsRoot string `json:"receiptsRoot"` + Sha3Uncles string `json:"sha3Uncles"` + Size hexutil.Big `json:"size"` + StateRoot string `json:"stateRoot"` + Timestamp string `json:"timestamp"` + + TotalDifficulty hexutil.Big `json:"totalDifficulty"` + TransactionCount uint64 `json:"transactionCount"` + Transactions []OtsTransaction `json:"transactions"` + TxRoot libcommon.Hash `json:"transactionsRoot"` + Uncles []string `json:"uncles"` +} + +type OtsBlockTransactionsResult struct { + FullBlock *OtsFullBlock `json:"fullblock"` + Receipts []OtsReceipt `json:"receipts"` +} + +type OtsBlockTransactions struct { + CommonResponse + Result *OtsBlockTransactionsResult `json:"result"` +} diff --git a/cmd/rpctest/rpctest/utils.go b/cmd/rpctest/rpctest/utils.go index 95d21dbb8a7..e78ffce8579 100644 --- a/cmd/rpctest/rpctest/utils.go +++ b/cmd/rpctest/rpctest/utils.go @@ -231,7 +231,7 @@ func compareErrors(errVal *fastjson.Value, errValg *fastjson.Value, methodName s return nil } -func requestAndCompare(request string, methodName string, errCtx string, reqGen *RequestGenerator, needCompare bool, rec *bufio.Writer, errs *bufio.Writer, channel chan CallResult) error { +func requestAndCompare(request string, methodName string, errCtx string, reqGen *RequestGenerator, needCompare bool, rec *bufio.Writer, errs *bufio.Writer, channel chan CallResult, insertOnlyIfSuccess bool) error { recording := rec != nil res := reqGen.Erigon2(methodName, request) if res.Err != nil { @@ -243,9 +243,6 @@ func requestAndCompare(request string, methodName string, errCtx string, reqGen return fmt.Errorf("error invoking %s (Erigon): %d %s", methodName, errVal.GetInt("code"), errVal.GetStringBytes("message")) } } - if channel != nil { - channel <- res - } if needCompare { resg := reqGen.Geth2(methodName, request) if resg.Err != nil { @@ -279,7 +276,14 @@ func requestAndCompare(request string, methodName string, errCtx string, reqGen } else { return compareErrors(errVal, errValg, methodName, errCtx, errs) } + } else { + if channel != nil { + if insertOnlyIfSuccess == false || (insertOnlyIfSuccess && errVal == nil) { + channel <- res + } + } } + if recording { fmt.Fprintf(rec, "%s\n%s\n\n", request, res.Response) } @@ -652,3 +656,185 @@ func setRoutes(erigonUrl, gethURL string) { routes[Erigon] = erigonUrl routes[Geth] = gethURL } + +func compareBlockTransactions(b, bg *OtsBlockTransactions) bool { + r := b.Result + rg := bg.Result + if r.FullBlock.Difficulty.ToInt().Cmp(rg.FullBlock.Difficulty.ToInt()) != 0 { + fmt.Printf("Different Difficulty %d %d\n", r.FullBlock.Difficulty.ToInt(), rg.FullBlock.Difficulty.ToInt()) + return false + } + if r.FullBlock.ExtraData != rg.FullBlock.ExtraData { + fmt.Printf("Different ExtraData %s %s\n", r.FullBlock.ExtraData, rg.FullBlock.ExtraData) + return false + } + if r.FullBlock.GasLimit.ToInt().Cmp(rg.FullBlock.GasLimit.ToInt()) != 0 { + fmt.Printf("Different GasLimit %d %d\n", r.FullBlock.GasLimit.ToInt(), rg.FullBlock.GasLimit.ToInt()) + return false + } + if r.FullBlock.GasUsed.ToInt().Cmp(rg.FullBlock.GasUsed.ToInt()) != 0 { + fmt.Printf("Different GasUsed %d %d\n", r.FullBlock.GasUsed.ToInt(), rg.FullBlock.GasUsed.ToInt()) + return false + } + if r.FullBlock.Hash.String() != rg.FullBlock.Hash.String() { + fmt.Printf("Different Hash %s %s\n", r.FullBlock.Hash.String(), rg.FullBlock.Hash.String()) + return false + } + if r.FullBlock.Bloom != rg.FullBlock.Bloom { + fmt.Printf("Different Bloom %s %s\n", r.FullBlock.Bloom, rg.FullBlock.Bloom) + return false + } + if r.FullBlock.Miner != rg.FullBlock.Miner { + fmt.Printf("Different Miner %x %x\n", r.FullBlock.Miner, rg.FullBlock.Miner) + return false + } + if r.FullBlock.MixHash != rg.FullBlock.MixHash { + fmt.Printf("Different MixHash %s %s\n", r.FullBlock.MixHash, rg.FullBlock.MixHash) + return false + } + if r.FullBlock.Nonce != rg.FullBlock.Nonce { + fmt.Printf("Different Nonce %s %s\n", r.FullBlock.Nonce, rg.FullBlock.Nonce) + return false + } + if r.FullBlock.Number.ToInt().Cmp(rg.FullBlock.Number.ToInt()) != 0 { + fmt.Printf("Different Number %d %d\n", r.FullBlock.Number.ToInt(), rg.FullBlock.Number.ToInt()) + return false + } + if r.FullBlock.ParentHash != rg.FullBlock.ParentHash { + fmt.Printf("Different ParentHash %s %s\n", r.FullBlock.ParentHash, rg.FullBlock.ParentHash) + return false + } + if r.FullBlock.ReceiptsRoot != rg.FullBlock.ReceiptsRoot { + fmt.Printf("Different ReceiptsRoot %s %s\n", r.FullBlock.ReceiptsRoot, rg.FullBlock.ReceiptsRoot) + return false + } + if r.FullBlock.Sha3Uncles != rg.FullBlock.Sha3Uncles { + fmt.Printf("Different Sha3Uncles %s %s\n", r.FullBlock.Sha3Uncles, rg.FullBlock.Sha3Uncles) + return false + } + if r.FullBlock.Size.ToInt().Cmp(rg.FullBlock.Size.ToInt()) != 0 { + fmt.Printf("Different Size %d %d\n", r.FullBlock.Size.ToInt(), rg.FullBlock.Size.ToInt()) + return false + } + if r.FullBlock.StateRoot != rg.FullBlock.StateRoot { + fmt.Printf("Different StateRoot %s %s\n", r.FullBlock.StateRoot, rg.FullBlock.StateRoot) + return false + } + if r.FullBlock.Timestamp != rg.FullBlock.Timestamp { + fmt.Printf("Different Timestamp %s %s\n", r.FullBlock.Timestamp, rg.FullBlock.Timestamp) + return false + } + if len(r.FullBlock.Transactions) != len(rg.FullBlock.Transactions) { + fmt.Printf("Num of txs different: %d %d\n", len(r.FullBlock.Transactions), len(rg.FullBlock.Transactions)) + return false + } + for i, uncle := range r.FullBlock.Uncles { + if uncle != rg.FullBlock.Uncles[i] { + fmt.Printf("Uncles %d different: %x %x\n", i, uncle, rg.FullBlock.Uncles[i]) + return false + } + } + for i, tx := range r.FullBlock.Transactions { + txg := rg.FullBlock.Transactions[i] + if tx.From != txg.From { + fmt.Printf("Tx %d different From: %x %x\n", i, tx.From, txg.From) + return false + } + if (tx.To == nil && txg.To != nil) || (tx.To != nil && txg.To == nil) { + fmt.Printf("Tx %d different To nilness: %t %t\n", i, tx.To == nil, txg.To == nil) + return false + } + if tx.To != nil && txg.To != nil && *tx.To != *txg.To { + fmt.Printf("Tx %d different To: %x %x\n", i, *tx.To, *txg.To) + return false + } + if tx.Hash != txg.Hash { + fmt.Printf("Tx %d different Hash: %s %s\n", i, tx.Hash, txg.Hash) + return false + } + if tx.BlockHash.String() != txg.BlockHash.String() { + fmt.Printf("Tx %d different BlockHash: %s %s\n", i, tx.BlockHash.String(), txg.BlockHash.String()) + return false + } + if tx.BlockNumber.String() != txg.BlockNumber.String() { + fmt.Printf("Tx %d different TransactionHash: %s %s\n", i, tx.BlockNumber.String(), txg.BlockNumber.String()) + return false + } + if tx.Gas.ToInt().Cmp(txg.Gas.ToInt()) != 0 { + fmt.Printf("Tx %d different Gas: %d %d\n", i, tx.Gas.ToInt(), txg.Gas.ToInt()) + return false + } + if tx.GasPrice.ToInt().Cmp(txg.GasPrice.ToInt()) != 0 { + fmt.Printf("Tx %d different GasPrice: %d %d\n", i, tx.GasPrice.ToInt(), txg.GasPrice.ToInt()) + return false + } + if tx.Input.String() != txg.Input.String() { + fmt.Printf("Tx %d different Input: %s %s\n", i, tx.Input.String(), txg.Input.String()) + return false + } + if tx.TransactionIndex.String() != txg.TransactionIndex.String() { + fmt.Printf("Tx %d different TransactionIndex: %s %s\n", i, tx.TransactionIndex.String(), txg.TransactionIndex.String()) + return false + } + if tx.Value.ToInt().Cmp(txg.Value.ToInt()) != 0 { + fmt.Printf("Tx %d different Value: %d %d\n", i, tx.Value.ToInt(), txg.Value.ToInt()) + return false + } + if tx.Type.ToInt().Cmp(txg.Type.ToInt()) != 0 { + fmt.Printf("Tx %d different Type: %d %d\n", i, tx.Type.ToInt(), txg.Type.ToInt()) + return false + } + if tx.ChainId.ToInt().Cmp(txg.ChainId.ToInt()) != 0 { + fmt.Printf("Tx %d different ChainId: %d %d\n", i, tx.ChainId.ToInt(), txg.ChainId.ToInt()) + return false + } + } + for i, rcp := range r.Receipts { + rcpg := rg.Receipts[i] + if rcp.From != rcpg.From { + fmt.Printf("Receipt %d different From: %x %x\n", i, rcp.From, rcpg.From) + return false + } + if (rcp.To == nil && rcpg.To != nil) || (rcp.To != nil && rcpg.To == nil) { + fmt.Printf("Receipt %d different To nilness: %t %t\n", i, rcp.To == nil, rcpg.To == nil) + return false + } + if rcp.To != nil && rcpg.To != nil && *rcp.To != *rcpg.To { + fmt.Printf("Receipt %d different To: %x %x\n", i, *rcp.To, *rcpg.To) + return false + } + if rcp.BlockHash != rcpg.BlockHash { + fmt.Printf("Receipt %d different Hash: %s %s\n", i, rcp.BlockHash, rcpg.BlockHash) + return false + } + if rcp.ContractAddress != rcpg.ContractAddress { + fmt.Printf("Receipt %d different ContractAddress: %s %s\n", i, rcp.ContractAddress, rcpg.ContractAddress) + return false + } + if rcp.CumulativeGasUsed.ToInt().Cmp(rcpg.CumulativeGasUsed.ToInt()) != 0 { + fmt.Printf("Receipt %d different CumulativeGasUsed: %d %d\n", i, rcp.CumulativeGasUsed.ToInt(), rcpg.CumulativeGasUsed.ToInt()) + return false + } + if rcp.EffectiveGasPrice.ToInt().Cmp(rcpg.EffectiveGasPrice.ToInt()) != 0 { + fmt.Printf("Receipt %d different EffectiveGasPrice: %d %d\n", i, rcp.EffectiveGasPrice.ToInt(), rcpg.EffectiveGasPrice.ToInt()) + return false + } + if rcp.GasUsed.ToInt().Cmp(rcpg.GasUsed.ToInt()) != 0 { + fmt.Printf("Receipt %d different GasUsed: %d %d\n", i, rcp.GasUsed.ToInt(), rcpg.GasUsed.ToInt()) + return false + } + if rcp.TransactionHash != rcpg.TransactionHash { + fmt.Printf("Receipt %d different TransactionHash: %s %s\n", i, rcp.TransactionHash, rcpg.TransactionHash) + return false + } + if rcp.BlockHash.String() != rcpg.BlockHash.String() { + fmt.Printf("Receipt %d different TransactionHash: %s %s\n", i, rcp.BlockHash.String(), rcpg.BlockHash.String()) + return false + } + if rcp.BlockNumber.String() != rcpg.BlockNumber.String() { + fmt.Printf("Receipt %d different TransactionHash: %s %s\n", i, rcp.BlockNumber.String(), rcpg.BlockNumber.String()) + return false + } + } + return true +} diff --git a/cmd/sentinel/cli/cliSettings.go b/cmd/sentinel/cli/cliSettings.go deleted file mode 100644 index a10c50f16c7..00000000000 --- a/cmd/sentinel/cli/cliSettings.go +++ /dev/null @@ -1,159 +0,0 @@ -package cli - -import ( - "errors" - "fmt" - "os" - "strings" - "time" - - "github.com/ledgerwatch/erigon/cl/phase1/core/rawdb" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/common" - - "github.com/ledgerwatch/erigon/cmd/utils" - "github.com/urfave/cli/v2" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags" - "github.com/ledgerwatch/erigon/turbo/logging" - - "github.com/ledgerwatch/log/v3" -) - -type ConsensusClientCliCfg struct { - GenesisCfg *clparams.GenesisConfig - BeaconCfg *clparams.BeaconChainConfig - NetworkCfg *clparams.NetworkConfig - BeaconDataCfg *rawdb.BeaconDataConfig - Port uint `json:"port"` - Addr string `json:"address"` - ServerAddr string `json:"serverAddr"` - ServerProtocol string `json:"serverProtocol"` - ServerTcpPort uint `json:"serverTcpPort"` - LogLvl uint `json:"logLevel"` - NoDiscovery bool `json:"noDiscovery"` - LocalDiscovery bool `json:"localDiscovery"` - CheckpointUri string `json:"checkpointUri"` - Chaindata string `json:"chaindata"` - ErigonPrivateApi string `json:"erigonPrivateApi"` - TransitionChain bool `json:"transitionChain"` - NetworkType clparams.NetworkType - InitialSync bool `json:"initialSync"` - NoBeaconApi bool `json:"noBeaconApi"` - BeaconApiReadTimeout time.Duration `json:"beaconApiReadTimeout"` - BeaconApiWriteTimeout time.Duration `json:"beaconApiWriteTimeout"` - BeaconAddr string `json:"beaconAddr"` - BeaconProtocol string `json:"beaconProtocol"` - RecordMode bool `json:"recordMode"` - RecordDir string `json:"recordDir"` - RunEngineAPI bool `json:"run_engine_api"` - EngineAPIAddr string `json:"engine_api_addr"` - EngineAPIPort int `json:"engine_api_port"` - JwtSecret []byte - - InitalState *state.CachingBeaconState -} - -func SetupConsensusClientCfg(ctx *cli.Context) (*ConsensusClientCliCfg, error) { - cfg := &ConsensusClientCliCfg{} - chainName := ctx.String(flags.Chain.Name) - var err error - cfg.GenesisCfg, cfg.NetworkCfg, cfg.BeaconCfg, cfg.NetworkType, err = clparams.GetConfigsByNetworkName(chainName) - if err != nil { - return nil, err - } - cfg.ErigonPrivateApi = ctx.String(flags.ErigonPrivateApiFlag.Name) - if ctx.String(flags.BeaconConfigFlag.Name) != "" { - cfg.BeaconCfg = new(clparams.BeaconChainConfig) - if *cfg.BeaconCfg, err = clparams.CustomConfig(ctx.String(flags.BeaconConfigFlag.Name)); err != nil { - return nil, err - } - if ctx.String(flags.GenesisSSZFlag.Name) == "" { - return nil, fmt.Errorf("no genesis file provided") - } - cfg.GenesisCfg = new(clparams.GenesisConfig) - var stateByte []byte - // Now parse genesis time and genesis fork - if *cfg.GenesisCfg, stateByte, err = clparams.ParseGenesisSSZToGenesisConfig( - ctx.String(flags.GenesisSSZFlag.Name), - cfg.BeaconCfg.GetCurrentStateVersion(0)); err != nil { - return nil, err - } - cfg.InitalState = state.New(cfg.BeaconCfg) - if cfg.InitalState.DecodeSSZ(stateByte, int(cfg.BeaconCfg.GetCurrentStateVersion(0))); err != nil { - return nil, err - } - } - cfg.ServerAddr = fmt.Sprintf("%s:%d", ctx.String(flags.SentinelServerAddr.Name), ctx.Int(flags.SentinelServerPort.Name)) - cfg.ServerProtocol = "tcp" - - cfg.NoBeaconApi = ctx.Bool(flags.NoBeaconApi.Name) - cfg.BeaconApiReadTimeout = time.Duration(ctx.Uint64(flags.BeaconApiReadTimeout.Name)) * time.Second - cfg.BeaconApiWriteTimeout = time.Duration(ctx.Uint(flags.BeaconApiWriteTimeout.Name)) * time.Second - cfg.BeaconAddr = fmt.Sprintf("%s:%d", ctx.String(flags.BeaconApiAddr.Name), ctx.Int(flags.BeaconApiPort.Name)) - cfg.BeaconProtocol = "tcp" - cfg.RecordMode = ctx.Bool(flags.RecordModeFlag.Name) - cfg.RecordDir = ctx.String(flags.RecordModeDir.Name) - - cfg.RunEngineAPI = ctx.Bool(flags.RunEngineAPI.Name) - cfg.EngineAPIAddr = ctx.String(flags.EngineApiHostFlag.Name) - cfg.EngineAPIPort = ctx.Int(flags.EngineApiPortFlag.Name) - if cfg.RunEngineAPI { - secret, err := ObtainJwtSecret(ctx) - if err != nil { - log.Error("Failed to obtain jwt secret", "err", err) - cfg.RunEngineAPI = false - } else { - cfg.JwtSecret = secret - } - } - - cfg.Port = uint(ctx.Int(flags.SentinelDiscoveryPort.Name)) - cfg.Addr = ctx.String(flags.SentinelDiscoveryAddr.Name) - - cfg.LogLvl = ctx.Uint(logging.LogVerbosityFlag.Name) - fmt.Println(cfg.LogLvl) - if cfg.LogLvl == uint(log.LvlInfo) || cfg.LogLvl == 0 { - cfg.LogLvl = uint(log.LvlDebug) - } - cfg.NoDiscovery = ctx.Bool(flags.NoDiscovery.Name) - cfg.LocalDiscovery = ctx.Bool(flags.LocalDiscovery.Name) - if ctx.String(flags.CheckpointSyncUrlFlag.Name) != "" { - cfg.CheckpointUri = ctx.String(flags.CheckpointSyncUrlFlag.Name) - } else { - cfg.CheckpointUri = clparams.GetCheckpointSyncEndpoint(cfg.NetworkType) - fmt.Println(cfg.CheckpointUri) - } - cfg.Chaindata = ctx.String(flags.ChaindataFlag.Name) - cfg.BeaconDataCfg = rawdb.BeaconDataConfigurations[ctx.String(flags.BeaconDBModeFlag.Name)] - // Process bootnodes - if ctx.String(flags.BootnodesFlag.Name) != "" { - cfg.NetworkCfg.BootNodes = utils.SplitAndTrim(ctx.String(flags.BootnodesFlag.Name)) - } - if ctx.String(flags.SentinelStaticPeersFlag.Name) != "" { - cfg.NetworkCfg.StaticPeers = utils.SplitAndTrim(ctx.String(flags.SentinelStaticPeersFlag.Name)) - fmt.Println(cfg.NetworkCfg.StaticPeers) - } - cfg.TransitionChain = ctx.Bool(flags.TransitionChainFlag.Name) - cfg.InitialSync = ctx.Bool(flags.InitSyncFlag.Name) - return cfg, nil -} - -func ObtainJwtSecret(ctx *cli.Context) ([]byte, error) { - path := ctx.String(flags.JwtSecret.Name) - if len(strings.TrimSpace(path)) == 0 { - return nil, errors.New("Missing jwt secret path") - } - - data, err := os.ReadFile(path) - if err != nil { - return nil, err - } - jwtSecret := common.FromHex(strings.TrimSpace(string(data))) - if len(jwtSecret) == 32 { - return jwtSecret, nil - } - - return nil, fmt.Errorf("Invalid JWT secret at %s, invalid size", path) -} diff --git a/cmd/sentinel/cli/flags/defaultFlags.go b/cmd/sentinel/cli/flags/defaultFlags.go deleted file mode 100644 index 2c20f457c47..00000000000 --- a/cmd/sentinel/cli/flags/defaultFlags.go +++ /dev/null @@ -1,33 +0,0 @@ -package flags - -import "github.com/urfave/cli/v2" - -var CLDefaultFlags = []cli.Flag{ - &SentinelDiscoveryPort, - &SentinelDiscoveryAddr, - &SentinelServerPort, - &SentinelServerAddr, - &NoBeaconApi, - &BeaconApiReadTimeout, - &BeaconApiWriteTimeout, - &BeaconApiPort, - &BeaconApiAddr, - &Chain, - &SentinelTcpPort, - &NoDiscovery, - &ChaindataFlag, - &BeaconDBModeFlag, - &BootnodesFlag, - &BeaconConfigFlag, - &GenesisSSZFlag, - &CheckpointSyncUrlFlag, - &SentinelStaticPeersFlag, - &TransitionChainFlag, - &InitSyncFlag, - &RecordModeDir, - &RecordModeFlag, - &RunEngineAPI, - &EngineApiHostFlag, - &EngineApiPortFlag, - &JwtSecret, -} diff --git a/cmd/sentinel/main.go b/cmd/sentinel/main.go index ec604b71124..3208d9c3e36 100644 --- a/cmd/sentinel/main.go +++ b/cmd/sentinel/main.go @@ -1,15 +1,13 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ +// Copyright 2022 Erigon-Lightclient contributors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. package main @@ -18,18 +16,19 @@ import ( "fmt" "os" + "github.com/ledgerwatch/erigon/cl/sentinel" + "github.com/ledgerwatch/erigon/cl/sentinel/service" + "github.com/ledgerwatch/erigon/cmd/sentinel/sentinelcli" + "github.com/ledgerwatch/erigon/cmd/sentinel/sentinelflags" + "github.com/ledgerwatch/log/v3" "github.com/urfave/cli/v2" - lcCli "github.com/ledgerwatch/erigon/cmd/sentinel/cli" - "github.com/ledgerwatch/erigon/cmd/sentinel/cli/flags" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service" sentinelapp "github.com/ledgerwatch/erigon/turbo/app" ) func main() { - app := sentinelapp.MakeApp("sentinel", runSentinelNode, flags.CLDefaultFlags) + app := sentinelapp.MakeApp("sentinel", runSentinelNode, sentinelflags.CliFlags) if err := app.Run(os.Args); err != nil { _, printErr := fmt.Fprintln(os.Stderr, err) if printErr != nil { @@ -40,11 +39,13 @@ func main() { } func runSentinelNode(cliCtx *cli.Context) error { - cfg, _ := lcCli.SetupConsensusClientCfg(cliCtx) - + cfg, err := sentinelcli.SetupSentinelCli(cliCtx) + if err != nil { + return err + } log.Root().SetHandler(log.LvlFilterHandler(log.Lvl(cfg.LogLvl), log.StderrHandler)) log.Info("[Sentinel] running sentinel with configuration", "cfg", cfg) - _, err := service.StartSentinelService(&sentinel.SentinelConfig{ + _, err = service.StartSentinelService(&sentinel.SentinelConfig{ IpAddr: cfg.Addr, Port: int(cfg.Port), TCPPort: cfg.ServerTcpPort, diff --git a/cmd/sentinel/sentinel/communication/send_request.go b/cmd/sentinel/sentinel/communication/send_request.go deleted file mode 100644 index fec0bff29f2..00000000000 --- a/cmd/sentinel/sentinel/communication/send_request.go +++ /dev/null @@ -1,85 +0,0 @@ -package communication - -import ( - "context" - "fmt" - "io" - "time" - - "github.com/libp2p/go-libp2p/core/host" - "github.com/libp2p/go-libp2p/core/network" - "github.com/libp2p/go-libp2p/core/peer" - "github.com/libp2p/go-libp2p/core/protocol" -) - -var NoRequestHandlers = map[string]bool{ - MetadataProtocolV1: true, - MetadataProtocolV2: true, -} - -type response struct { - data []byte - code byte - err error -} - -func SendRequestRawToPeer(ctx context.Context, host host.Host, data []byte, topic string, peerId peer.ID) ([]byte, byte, error) { - - nctx, cn := context.WithTimeout(ctx, 5*time.Second) - defer cn() - stream, err := writeRequestRaw(host, nctx, data, peerId, topic) - if err != nil { - return nil, 189, err - } - defer stream.Close() - - ch := make(chan response) - go func() { - res := verifyResponse(stream, peerId) - select { - case <-ctx.Done(): - return - default: - } - ch <- res - }() - select { - case <-ctx.Done(): - stream.Reset() - return nil, 189, ctx.Err() - case ans := <-ch: - if ans.err != nil { - ans.code = 189 - } - return ans.data, ans.code, ans.err - } -} - -func writeRequestRaw(host host.Host, ctx context.Context, data []byte, peerId peer.ID, topic string) (network.Stream, error) { - stream, err := host.NewStream(ctx, peerId, protocol.ID(topic)) - if err != nil { - return nil, fmt.Errorf("failed to begin stream, err=%s", err) - } - - if _, ok := NoRequestHandlers[topic]; !ok { - if _, err := stream.Write(data); err != nil { - return nil, err - } - } - - return stream, stream.CloseWrite() -} - -func verifyResponse(stream network.Stream, peerId peer.ID) (resp response) { - code := make([]byte, 1) - _, resp.err = stream.Read(code) - if resp.err != nil { - return - } - resp.code = code[0] - resp.data, resp.err = io.ReadAll(stream) - if resp.err != nil { - return - } - return -} diff --git a/cmd/sentinel/sentinel/gossip.go b/cmd/sentinel/sentinel/gossip.go deleted file mode 100644 index 2f38d3b7836..00000000000 --- a/cmd/sentinel/sentinel/gossip.go +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright 2022 Erigon-Lightclient contributors - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -package sentinel - -import ( - "context" - "errors" - "fmt" - "sync" - - "github.com/ledgerwatch/log/v3" - pubsub "github.com/libp2p/go-libp2p-pubsub" - "github.com/libp2p/go-libp2p/core/peer" -) - -// GossipSubscription abstracts a gossip subscription to write decoded structs. -type GossipSubscription struct { - gossip_topic GossipTopic - host peer.ID - ch chan *pubsub.Message - ctx context.Context - - topic *pubsub.Topic - sub *pubsub.Subscription - - cf context.CancelFunc - rf pubsub.RelayCancelFunc - - setup sync.Once - stopCh chan struct{} -} - -func (sub *GossipSubscription) Listen() (err error) { - sub.setup.Do(func() { - sub.stopCh = make(chan struct{}, 3) - sub.sub, err = sub.topic.Subscribe() - if err != nil { - err = fmt.Errorf("failed to begin topic %s subscription, err=%w", sub.topic.String(), err) - return - } - var sctx context.Context - sctx, sub.cf = context.WithCancel(sub.ctx) - go sub.run(sctx, sub.sub, sub.sub.Topic()) - }) - return nil -} - -// calls the cancel func for the subscriber and closes the topic and sub -func (s *GossipSubscription) Close() { - s.stopCh <- struct{}{} - if s.cf != nil { - s.cf() - } - if s.rf != nil { - s.rf() - } - if s.sub != nil { - s.sub.Cancel() - s.sub = nil - } - if s.topic != nil { - s.topic.Close() - s.topic = nil - } -} - -// this is a helper to begin running the gossip subscription. -// function should not be used outside of the constructor for gossip subscription -func (s *GossipSubscription) run(ctx context.Context, sub *pubsub.Subscription, topic string) { - defer func() { - if r := recover(); r != nil { - log.Error("[Sentinel Gossip] Message Handler Crashed", "err", r) - } - }() - for { - select { - case <-ctx.Done(): - return - case <-s.stopCh: - return - default: - msg, err := sub.Next(ctx) - if err != nil { - if errors.Is(err, context.Canceled) { - return - } - log.Warn("[Sentinel] fail to decode gossip packet", "err", err, "topic", topic) - return - } - if msg.GetFrom() == s.host { - continue - } - s.ch <- msg - } - } -} - -func (g *GossipSubscription) Publish(data []byte) error { - return g.topic.Publish(g.ctx, data) -} diff --git a/cmd/sentinel/sentinel/peers/manager.go b/cmd/sentinel/sentinel/peers/manager.go deleted file mode 100644 index 51840e54fee..00000000000 --- a/cmd/sentinel/sentinel/peers/manager.go +++ /dev/null @@ -1,139 +0,0 @@ -package peers - -import ( - "context" - "sync" - "time" - - "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" - "github.com/ledgerwatch/erigon/metrics/methelp" - "github.com/libp2p/go-libp2p/core/host" - "github.com/libp2p/go-libp2p/core/peer" -) - -const ( - maxBadPeers = 50000 - maxPeerRecordSize = 1000 - DefaultMaxPeers = 33 - MaxBadResponses = 50 -) - -func newPeer() *Peer { - return &Peer{ - lastTouched: time.Now(), - working: make(chan struct{}), - } -} - -type Manager struct { - host host.Host - peers *lru.Cache[peer.ID, *Peer] - peerTimeout time.Duration - - mu sync.Mutex -} - -func NewManager(ctx context.Context, host host.Host) *Manager { - c, err := lru.New[peer.ID, *Peer]("beacon_peer_manager", 500) - if err != nil { - panic(err) - } - m := &Manager{ - peerTimeout: 8 * time.Hour, - peers: c, - host: host, - } - go m.run(ctx) - return m -} - -func (m *Manager) getPeer(id peer.ID) (peer *Peer) { - m.mu.Lock() - p, ok := m.peers.Get(id) - if !ok { - p = &Peer{ - pid: id, - working: make(chan struct{}, 1), - m: m, - Penalties: 0, - Banned: false, - } - m.peers.Add(id, p) - } - p.lastTouched = time.Now() - m.mu.Unlock() - return p -} -func (m *Manager) CtxPeer(ctx context.Context, id peer.ID, fn func(peer *Peer)) error { - p := m.getPeer(id) - select { - case p.working <- struct{}{}: - case <-ctx.Done(): - return ctx.Err() - } - fn(p) - <-p.working - return nil -} - -func (m *Manager) TryPeer(id peer.ID, fn func(peer *Peer, ok bool)) { - p := m.getPeer(id) - select { - case p.working <- struct{}{}: - default: - fn(nil, false) - return - } - fn(p, true) - <-p.working -} - -// WithPeer will get the peer with id and run your lambda with it. it will update the last queried time -// It will do all synchronization and so you can use the peer thread safe inside -func (m *Manager) WithPeer(id peer.ID, fn func(peer *Peer)) { - if fn == nil { - return - } - p := m.getPeer(id) - p.working <- struct{}{} - defer func() { - <-p.working - }() - fn(p) -} - -func (m *Manager) run(ctx context.Context) { - m1 := time.NewTicker(1 * time.Hour) - for { - select { - case <-m1.C: - m.gc() - case <-ctx.Done(): - m1.Stop() - return - } - } -} - -// any extra GC policies that the lru does not suffice. -// maybe we dont need -func (m *Manager) gc() { - m.mu.Lock() - defer m.mu.Unlock() - t := methelp.NewHistTimer("beacon_peer_manager_gc_time") - defer t.PutSince() - deleted := 0 - saw := 0 - n := time.Now() - for _, k := range m.peers.Keys() { - v, ok := m.peers.Get(k) - if !ok { - continue - } - saw = saw + 1 - if n.Sub(v.lastTouched) > m.peerTimeout { - deleted = deleted + 1 - m.peers.Remove(k) - } - } -} diff --git a/cmd/sentinel/sentinel/peers/peer.go b/cmd/sentinel/sentinel/peers/peer.go deleted file mode 100644 index d6ec928b40d..00000000000 --- a/cmd/sentinel/sentinel/peers/peer.go +++ /dev/null @@ -1,110 +0,0 @@ -package peers - -import ( - "strings" - "time" - - "github.com/ledgerwatch/log/v3" - "github.com/libp2p/go-libp2p/core/peer" -) - -// Record Peer data. -type Peer struct { - Penalties int - Banned bool - InRequest bool - - // request info - lastRequest time.Time - successCount int - useCount int - // gc data - lastTouched time.Time - // acts as the mutex. channel used to avoid use of TryLock - working chan struct{} - // peer id - pid peer.ID - // backref to the manager that owns this peer - m *Manager -} - -func (p *Peer) ID() peer.ID { - return p.pid -} -func (p *Peer) Penalize() { - log.Debug("[Sentinel Peers] peer penalized", "peer-id", p.pid) - p.Penalties++ -} - -func (p *Peer) Forgive() { - log.Debug("[Sentinel Peers] peer forgiven", "peer-id", p.pid) - if p.Penalties > 0 { - p.Penalties-- - } -} - -func (p *Peer) MarkUsed() { - p.useCount++ - log.Trace("[Sentinel Peers] peer used", "peer-id", p.pid, "uses", p.useCount) - p.lastRequest = time.Now() -} - -func (p *Peer) MarkReplied() { - p.successCount++ - log.Debug("[Sentinel Peers] peer replied", "peer-id", p.pid, "uses", p.useCount, "success", p.successCount) -} - -func (p *Peer) IsAvailable() (available bool) { - if p.Banned { - return false - } - if p.Penalties > MaxBadResponses { - return false - } - if time.Now().Sub(p.lastRequest) > 0*time.Second { - return true - } - return false -} - -func (p *Peer) IsBad() (bad bool) { - if p.Banned { - bad = true - return - } - bad = p.Penalties > MaxBadResponses - return -} - -var skipReasons = []string{ - "bad handshake", - "context", - "security protocol", - "connect:", - "dial backoff", -} - -func anySetInString(set []string, in string) bool { - for _, v := range skipReasons { - if strings.Contains(in, v) { - return true - } - } - return false -} - -func (p *Peer) Disconnect(reason ...string) { - rzn := strings.Join(reason, " ") - if !anySetInString(skipReasons, rzn) { - log.Debug("[Sentinel Peers] disconnecting from peer", "peer-id", p.pid, "reason", strings.Join(reason, " ")) - } - p.m.host.Peerstore().RemovePeer(p.pid) - p.m.host.Network().ClosePeer(p.pid) - p.Penalties = 0 -} -func (p *Peer) Ban(reason ...string) { - log.Debug("[Sentinel Peers] bad peers has been banned", "peer-id", p.pid, "reason", strings.Join(reason, " ")) - p.Banned = true - p.Disconnect(reason...) - return -} diff --git a/cmd/sentinel/sentinelcli/cliSettings.go b/cmd/sentinel/sentinelcli/cliSettings.go new file mode 100644 index 00000000000..ce2e0490986 --- /dev/null +++ b/cmd/sentinel/sentinelcli/cliSettings.go @@ -0,0 +1,74 @@ +package sentinelcli + +import ( + "fmt" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cmd/sentinel/sentinelflags" + "github.com/ledgerwatch/erigon/cmd/utils" + + "github.com/ledgerwatch/erigon-lib/common" + + "github.com/urfave/cli/v2" + + "github.com/ledgerwatch/erigon/turbo/logging" + + "github.com/ledgerwatch/log/v3" +) + +type SentinelCliCfg struct { + GenesisCfg *clparams.GenesisConfig + BeaconCfg *clparams.BeaconChainConfig + NetworkCfg *clparams.NetworkConfig + NetworkType clparams.NetworkType + Port uint `json:"port"` + Addr string `json:"address"` + ServerAddr string `json:"server_addr"` + ServerProtocol string `json:"server_protocol"` + ServerTcpPort uint `json:"server_tcp_port"` + LogLvl uint `json:"log_level"` + NoDiscovery bool `json:"no_discovery"` + LocalDiscovery bool `json:"local_discovery"` +} + +func SetupSentinelCli(ctx *cli.Context) (*SentinelCliCfg, error) { + cfg := &SentinelCliCfg{} + chainName := ctx.String(utils.ChainFlag.Name) + var err error + cfg.GenesisCfg, cfg.NetworkCfg, cfg.BeaconCfg, cfg.NetworkType, err = clparams.GetConfigsByNetworkName(chainName) + if err != nil { + return nil, err + } + if ctx.String(sentinelflags.BeaconConfigFlag.Name) != "" { + cfg.BeaconCfg = new(clparams.BeaconChainConfig) + if *cfg.BeaconCfg, err = clparams.CustomConfig(ctx.String(sentinelflags.BeaconConfigFlag.Name)); err != nil { + return nil, err + } + if ctx.String(sentinelflags.GenesisSSZFlag.Name) == "" { + return nil, fmt.Errorf("no genesis file provided") + } + cfg.GenesisCfg = new(clparams.GenesisConfig) + + } + cfg.ServerAddr = fmt.Sprintf("%s:%d", ctx.String(sentinelflags.SentinelServerAddr.Name), ctx.Int(sentinelflags.SentinelServerPort.Name)) + cfg.ServerProtocol = "tcp" + + cfg.Port = uint(ctx.Int(sentinelflags.SentinelDiscoveryPort.Name)) + cfg.Addr = ctx.String(sentinelflags.SentinelDiscoveryAddr.Name) + + cfg.LogLvl = ctx.Uint(logging.LogVerbosityFlag.Name) + if cfg.LogLvl == uint(log.LvlInfo) || cfg.LogLvl == 0 { + cfg.LogLvl = uint(log.LvlDebug) + } + cfg.NoDiscovery = ctx.Bool(sentinelflags.NoDiscovery.Name) + cfg.LocalDiscovery = ctx.Bool(sentinelflags.LocalDiscovery.Name) + + // Process bootnodes + if ctx.String(sentinelflags.BootnodesFlag.Name) != "" { + cfg.NetworkCfg.BootNodes = common.CliString2Array(ctx.String(sentinelflags.BootnodesFlag.Name)) + } + if ctx.String(sentinelflags.SentinelStaticPeersFlag.Name) != "" { + cfg.NetworkCfg.StaticPeers = common.CliString2Array(ctx.String(sentinelflags.SentinelStaticPeersFlag.Name)) + } + return cfg, nil +} diff --git a/cmd/sentinel/sentinelcli/flags/defaultFlags.go b/cmd/sentinel/sentinelcli/flags/defaultFlags.go new file mode 100644 index 00000000000..0cfcbd53fdd --- /dev/null +++ b/cmd/sentinel/sentinelcli/flags/defaultFlags.go @@ -0,0 +1 @@ +package flags diff --git a/cmd/sentinel/sentinelcli/flags/flags.go b/cmd/sentinel/sentinelcli/flags/flags.go new file mode 100644 index 00000000000..0cfcbd53fdd --- /dev/null +++ b/cmd/sentinel/sentinelcli/flags/flags.go @@ -0,0 +1 @@ +package flags diff --git a/cmd/sentinel/sentinelflags/flags.go b/cmd/sentinel/sentinelflags/flags.go new file mode 100644 index 00000000000..4a59050d270 --- /dev/null +++ b/cmd/sentinel/sentinelflags/flags.go @@ -0,0 +1,79 @@ +package sentinelflags + +import ( + "github.com/ledgerwatch/erigon/cmd/utils" + "github.com/urfave/cli/v2" +) + +var CliFlags = []cli.Flag{ + &utils.ChainFlag, + + &SentinelDiscoveryPort, + &SentinelDiscoveryAddr, + &SentinelServerPort, + &SentinelServerAddr, + &SentinelTcpPort, + &NoDiscovery, + &BootnodesFlag, + &BeaconConfigFlag, + &GenesisSSZFlag, + &SentinelStaticPeersFlag, +} + +var ( + SentinelDiscoveryPort = cli.IntFlag{ + Name: "discovery.port", + Usage: "sets the lightclient port", + Value: 4000, + } + SentinelDiscoveryAddr = cli.StringFlag{ + Name: "discovery.addr", + Usage: "sets the lightclient discovery addr", + Value: "127.0.0.1", + } + SentinelTcpPort = cli.UintFlag{ + Name: "sentinel.tcp.port", + Usage: "sets lightclient tcp port", + Value: 4001, + } + SentinelServerPort = cli.IntFlag{ + Name: "sentinel.port", + Usage: "sets the lightclient server port", + Value: 7777, + } + SentinelServerAddr = cli.StringFlag{ + Name: "sentinel.addr", + Usage: "sets the lightclient server host addr", + Value: "localhost", + } + NoDiscovery = cli.BoolFlag{ + Name: "no-discovery", + Usage: "turn off or on the lightclient finding peers", + Value: false, + } + LocalDiscovery = cli.BoolFlag{ + Name: "local-discovery", + Usage: "enable to also attempt to find peers over private ips. turning this on may cause issues with hosts such as hetzner", + Value: false, + } + BootnodesFlag = cli.StringFlag{ + Name: "sentinel.bootnodes", + Usage: "Comma separated enode URLs for P2P discovery bootstrap", + Value: "", + } + BeaconConfigFlag = cli.StringFlag{ + Name: "beacon-config", + Usage: "Path to beacon config", + Value: "", + } + GenesisSSZFlag = cli.StringFlag{ + Name: "genesis-ssz", + Usage: "Path to genesis ssz", + Value: "", + } + SentinelStaticPeersFlag = cli.StringFlag{ + Name: "sentinel.staticpeers", + Usage: "connect to comma-separated Consensus static peers", + Value: "", + } +) diff --git a/cmd/sentry/main.go b/cmd/sentry/main.go index 146ee737baf..abd86dca1a9 100644 --- a/cmd/sentry/main.go +++ b/cmd/sentry/main.go @@ -8,9 +8,9 @@ import ( "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/spf13/cobra" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/cmd/utils" "github.com/ledgerwatch/erigon/common/paths" + "github.com/ledgerwatch/erigon/p2p/sentry" "github.com/ledgerwatch/erigon/turbo/debug" "github.com/ledgerwatch/erigon/turbo/logging" node2 "github.com/ledgerwatch/erigon/turbo/node" diff --git a/cmd/sentry/sentry/broadcast.go b/cmd/sentry/sentry/broadcast.go deleted file mode 100644 index 3ec9d82459a..00000000000 --- a/cmd/sentry/sentry/broadcast.go +++ /dev/null @@ -1,121 +0,0 @@ -package sentry - -import ( - "context" - "errors" - "math" - "math/big" - "strings" - "syscall" - - proto_sentry "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" - "github.com/ledgerwatch/log/v3" - "google.golang.org/grpc" - - "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/eth/protocols/eth" - "github.com/ledgerwatch/erigon/p2p" - "github.com/ledgerwatch/erigon/rlp" - "github.com/ledgerwatch/erigon/turbo/stages/headerdownload" -) - -// Methods of sentry called by Core - -const ( - // This is the target size for the packs of transactions or announcements. A - // pack can get larger than this if a single transactions exceeds this size. - maxTxPacketSize = 100 * 1024 -) - -func (cs *MultiClient) PropagateNewBlockHashes(ctx context.Context, announces []headerdownload.Announce) { - cs.lock.RLock() - defer cs.lock.RUnlock() - typedRequest := make(eth.NewBlockHashesPacket, len(announces)) - for i := range announces { - typedRequest[i].Hash = announces[i].Hash - typedRequest[i].Number = announces[i].Number - } - data, err := rlp.EncodeToBytes(&typedRequest) - if err != nil { - log.Error("propagateNewBlockHashes", "err", err) - return - } - var req66 *proto_sentry.OutboundMessageData - // Send the block to a subset of our peers - sendToAmount := int(math.Sqrt(float64(len(cs.sentries)))) - for i, sentry := range cs.sentries { - if !sentry.Ready() { - continue - } - if i > sendToAmount { //TODO: send to random sentries, not just to fi - break - } - - if req66 == nil { - req66 = &proto_sentry.OutboundMessageData{ - Id: proto_sentry.MessageId_NEW_BLOCK_HASHES_66, - Data: data, - } - - _, err = sentry.SendMessageToAll(ctx, req66, &grpc.EmptyCallOption{}) - if err != nil { - log.Error("propagateNewBlockHashes", "err", err) - } - } - } -} - -func (cs *MultiClient) BroadcastNewBlock(ctx context.Context, header *types.Header, body *types.RawBody, td *big.Int) { - cs.lock.RLock() - defer cs.lock.RUnlock() - txs := make([]types.Transaction, len(body.Transactions)) - for i, tx := range body.Transactions { - var err error - if txs[i], err = types.DecodeTransaction(tx); err != nil { - log.Error("broadcastNewBlock", "err", err) - return - } - } - data, err := rlp.EncodeToBytes(ð.NewBlockPacket{ - Block: types.NewBlock(header, txs, body.Uncles, nil, body.Withdrawals), - TD: td, - }) - if err != nil { - log.Error("broadcastNewBlock", "err", err) - } - var req66 *proto_sentry.SendMessageToRandomPeersRequest - // Send the block to a subset of our peers - sendToAmount := int(math.Sqrt(float64(len(cs.sentries)))) - for i, sentry := range cs.sentries { - if !sentry.Ready() { - continue - } - if i > sendToAmount { //TODO: send to random sentries, not just to fi - break - } - - if req66 == nil { - req66 = &proto_sentry.SendMessageToRandomPeersRequest{ - MaxPeers: 1024, - Data: &proto_sentry.OutboundMessageData{ - Id: proto_sentry.MessageId_NEW_BLOCK_66, - Data: data, - }, - } - } - if _, err = sentry.SendMessageToRandomPeers(ctx, req66, &grpc.EmptyCallOption{}); err != nil { - if isPeerNotFoundErr(err) || networkTemporaryErr(err) { - log.Debug("broadcastNewBlock", "err", err) - continue - } - log.Error("broadcastNewBlock", "err", err) - } - } -} - -func networkTemporaryErr(err error) bool { - return errors.Is(err, syscall.EPIPE) || errors.Is(err, p2p.ErrShuttingDown) -} -func isPeerNotFoundErr(err error) bool { - return strings.Contains(err.Error(), "peer not found") -} diff --git a/cmd/silkworm_api/snapshot_idx.go b/cmd/silkworm_api/snapshot_idx.go new file mode 100644 index 00000000000..4265ef19471 --- /dev/null +++ b/cmd/silkworm_api/snapshot_idx.go @@ -0,0 +1,128 @@ +package main + +import ( + "fmt" + "os" + "path/filepath" + "time" + + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb" + "github.com/ledgerwatch/erigon/turbo/debug" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + "github.com/ledgerwatch/log/v3" + "github.com/urfave/cli/v2" + "golang.org/x/sync/errgroup" +) + +// Build snapshot indexes for given snapshot files. +// Sample usage: +// build_idx --datadir erigon-1 --snapshot_path /snapshots/v1-000000-000500-headers.seg,/snapshots/v1-000500-001000-headers.seg + +func main() { + + app := &cli.App{ + Flags: []cli.Flag{ + &cli.StringFlag{ + Name: "datadir", + Value: "./dev", + Usage: "node data directory", + }, + &cli.StringSliceFlag{ + Name: "snapshot_path", + Usage: "pathname of the snapshot file", + }, + }, + Action: func(cCtx *cli.Context) error { + return buildIndex(cCtx, cCtx.String("datadir"), cCtx.StringSlice("snapshot_path")) + }, + } + + if err := app.Run(os.Args); err != nil { + log.Crit(err.Error()) + } +} + +func FindIf(segments []snaptype.FileInfo, predicate func(snaptype.FileInfo) bool) (snaptype.FileInfo, bool) { + for _, segment := range segments { + if predicate(segment) { + return segment, true + } + } + return snaptype.FileInfo{}, false // Return zero value and false if not found +} + +func buildIndex(cliCtx *cli.Context, dataDir string, snapshotPaths []string) error { + logger, _, err := debug.Setup(cliCtx, true /* rootLogger */) + if err != nil { + return err + } + logLevel := log.LvlInfo + + ps := background.NewProgressSet() + + workers := 4 + g, ctx := errgroup.WithContext(cliCtx.Context) + g.SetLimit(workers) + + dirs := datadir.New(dataDir) + + chainDB := mdbx.NewMDBX(logger).Path(dirs.Chaindata).MustOpen() + defer chainDB.Close() + + chainConfig := fromdb.ChainConfig(chainDB) + + segments, _, err := freezeblocks.Segments(dirs.Snap) + if err != nil { + return err + } + + fmt.Printf("Building indexes:\n- dataDir: %s\n- snapshots: %s\n", dataDir, snapshotPaths) + start := time.Now() + + for _, snapshotPath := range snapshotPaths { + segment, found := FindIf(segments, func(s snaptype.FileInfo) bool { + return s.Path == snapshotPath + }) + if !found { + return fmt.Errorf("segment %s not found", snapshotPath) + } + + switch segment.T { + case snaptype.Headers: + g.Go(func() error { + jobProgress := &background.Progress{} + ps.Add(jobProgress) + defer ps.Delete(jobProgress) + return freezeblocks.HeadersIdx(ctx, chainConfig, segment.Path, segment.From, dirs.Tmp, jobProgress, logLevel, logger) + }) + case snaptype.Bodies: + g.Go(func() error { + jobProgress := &background.Progress{} + ps.Add(jobProgress) + defer ps.Delete(jobProgress) + return freezeblocks.BodiesIdx(ctx, segment.Path, segment.From, dirs.Tmp, jobProgress, logLevel, logger) + }) + case snaptype.Transactions: + g.Go(func() error { + jobProgress := &background.Progress{} + ps.Add(jobProgress) + defer ps.Delete(jobProgress) + dir, _ := filepath.Split(segment.Path) + return freezeblocks.TransactionsIdx(ctx, chainConfig, segment.From, segment.To, dir, dirs.Tmp, jobProgress, logLevel, logger) + }) + } + } + + if err := g.Wait(); err != nil { + return err + } + + elapsed := time.Since(start) + fmt.Printf("Indexes for %d snapshots built in %d ms\n", len(snapshotPaths), elapsed.Milliseconds()) + + return nil +} diff --git a/cmd/state/commands/check_change_sets.go b/cmd/state/commands/check_change_sets.go index 1c9de463f1d..85308fdcd3a 100644 --- a/cmd/state/commands/check_change_sets.go +++ b/cmd/state/commands/check_change_sets.go @@ -11,22 +11,30 @@ import ( "syscall" "time" + "github.com/ledgerwatch/log/v3" + "github.com/spf13/cobra" + + chain2 "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/kv" kv2 "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" - "github.com/ledgerwatch/log/v3" - "github.com/spf13/cobra" + "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/systemcontracts" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/eth/ethconfig" + "github.com/ledgerwatch/erigon/eth/ethconsensusconfig" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" + "github.com/ledgerwatch/erigon/node/nodecfg" + "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/turbo/debug" + "github.com/ledgerwatch/erigon/turbo/services" ) var ( @@ -48,13 +56,13 @@ var checkChangeSetsCmd = &cobra.Command{ Short: "Re-executes historical transactions in read-only mode and checks that their outputs match the database ChangeSets", RunE: func(cmd *cobra.Command, args []string) error { logger := debug.SetupCobra(cmd, "check_change_sets") - return CheckChangeSets(genesis, block, chaindata, historyfile, nocheck, logger) + return CheckChangeSets(cmd.Context(), genesis, block, chaindata, historyfile, nocheck, logger) }, } // CheckChangeSets re-executes historical transactions in read-only mode // and checks that their outputs match the database ChangeSets. -func CheckChangeSets(genesis *types.Genesis, blockNum uint64, chaindata string, historyfile string, nocheck bool, logger log.Logger) error { +func CheckChangeSets(ctx context.Context, genesis *types.Genesis, blockNum uint64, chaindata string, historyfile string, nocheck bool, logger log.Logger) error { if len(historyfile) == 0 { historyfile = chaindata } @@ -69,7 +77,7 @@ func CheckChangeSets(genesis *types.Genesis, blockNum uint64, chaindata string, interruptCh <- true }() - db, err := kv2.NewMDBX(logger).Path(chaindata).Open() + db, err := kv2.NewMDBX(logger).Path(chaindata).Open(ctx) if err != nil { return err } @@ -78,7 +86,7 @@ func CheckChangeSets(genesis *types.Genesis, blockNum uint64, chaindata string, if err := allSnapshots.ReopenFolder(); err != nil { return fmt.Errorf("reopen snapshot segments: %w", err) } - blockReader := freezeblocks.NewBlockReader(allSnapshots) + blockReader := freezeblocks.NewBlockReader(allSnapshots, nil /* BorSnapshots */) chainDb := db defer chainDb.Close() @@ -86,7 +94,6 @@ func CheckChangeSets(genesis *types.Genesis, blockNum uint64, chaindata string, if chaindata != historyfile { historyDb = kv2.MustOpen(historyfile) } - ctx := context.Background() historyTx, err1 := historyDb.BeginRo(ctx) if err1 != nil { return err1 @@ -116,7 +123,7 @@ func CheckChangeSets(genesis *types.Genesis, blockNum uint64, chaindata string, commitEvery := time.NewTicker(30 * time.Second) defer commitEvery.Stop() - engine := initConsensusEngine(chainConfig, allSnapshots, logger) + engine := initConsensusEngine(ctx, chainConfig, allSnapshots, blockReader, logger) for !interrupt { @@ -269,3 +276,20 @@ func CheckChangeSets(genesis *types.Genesis, blockNum uint64, chaindata string, logger.Info("Checked", "blocks", blockNum, "next time specify --block", blockNum, "duration", time.Since(startTime)) return nil } + +func initConsensusEngine(ctx context.Context, cc *chain2.Config, snapshots *freezeblocks.RoSnapshots, blockReader services.FullBlockReader, logger log.Logger) (engine consensus.Engine) { + config := ethconfig.Defaults + + var consensusConfig interface{} + + if cc.Clique != nil { + consensusConfig = params.CliqueSnapshot + } else if cc.Aura != nil { + consensusConfig = &config.Aura + } else if cc.Bor != nil { + consensusConfig = &config.Bor + } else { + consensusConfig = &config.Ethash + } + return ethconsensusconfig.CreateConsensusEngine(ctx, &nodecfg.Config{Dirs: datadir.New(datadirCli)}, cc, consensusConfig, config.Miner.Notify, config.Miner.Noverify, nil /* heimdallClient */, config.WithoutHeimdall, blockReader, true /* readonly */, logger) +} diff --git a/cmd/state/commands/erigon4.go b/cmd/state/commands/erigon4.go deleted file mode 100644 index cb53c2436c6..00000000000 --- a/cmd/state/commands/erigon4.go +++ /dev/null @@ -1,619 +0,0 @@ -package commands - -import ( - "bytes" - "context" - "errors" - "fmt" - "os" - "os/signal" - "path" - "path/filepath" - "runtime" - "syscall" - "time" - - "github.com/VictoriaMetrics/metrics" - "github.com/holiman/uint256" - "github.com/ledgerwatch/log/v3" - "github.com/spf13/cobra" - - chain2 "github.com/ledgerwatch/erigon-lib/chain" - "github.com/ledgerwatch/erigon-lib/commitment" - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/datadir" - "github.com/ledgerwatch/erigon-lib/common/dbg" - "github.com/ledgerwatch/erigon-lib/common/fixedgas" - "github.com/ledgerwatch/erigon-lib/kv" - kv2 "github.com/ledgerwatch/erigon-lib/kv/mdbx" - libstate "github.com/ledgerwatch/erigon-lib/state" - - "github.com/ledgerwatch/erigon/cmd/state/exec3" - "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/misc" - "github.com/ledgerwatch/erigon/core" - "github.com/ledgerwatch/erigon/core/state" - "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/core/types/accounts" - "github.com/ledgerwatch/erigon/core/vm" - "github.com/ledgerwatch/erigon/eth/ethconfig" - "github.com/ledgerwatch/erigon/eth/ethconsensusconfig" - "github.com/ledgerwatch/erigon/node/nodecfg" - "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/turbo/debug" - "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" -) - -var ( - blockTo int - traceBlock int -) - -func init() { - withBlock(erigon4Cmd) - withDataDir(erigon4Cmd) - withChain(erigon4Cmd) - - erigon4Cmd.Flags().IntVar(&commitmentFrequency, "commfreq", 125000, "how many blocks to skip between calculating commitment") - erigon4Cmd.Flags().BoolVar(&commitments, "commitments", false, "set to true to calculate commitments") - erigon4Cmd.Flags().StringVar(&commitmentMode, "commitments.mode", "direct", "defines the way to calculate commitments: 'direct' mode reads from state directly, 'update' accumulate updates before commitment") - erigon4Cmd.Flags().Uint64Var(&startTxNumFrom, "tx", 0, "tx number to start from") - erigon4Cmd.Flags().StringVar(&commitmentTrie, "commitments.trie", "hex", "hex - use Hex Patricia Hashed Trie for commitments, bin - use of binary patricia trie") - erigon4Cmd.Flags().IntVar(&height, "height", 32, "amount of steps in biggest file") - erigon4Cmd.Flags().Uint64Var(&stepSize, "step-size", ethconfig.HistoryV3AggregationStep, "amount of tx in one step") - - rootCmd.AddCommand(erigon4Cmd) -} - -var ( - startTxNumFrom uint64 // flag --tx - commitmentMode string // flag --commitments.mode [direct|update] - logInterval = 30 * time.Second // time period to print aggregation stat to log - dirtySpaceThreshold = uint64(2 * 1024 * 1024 * 1024) /* threshold of dirty space in MDBX transaction that triggers a commit */ - commitmentFrequency int // How many blocks to skip between calculating commitment - commitments bool - commitmentTrie string - - height int - stepSize uint64 - - blockExecutionTimer = metrics.GetOrCreateSummary("chain_execution_seconds") - blockRootMismatchExpected bool // if trie variant is not hex, we could not have another rootHash with to verify it -) - -var erigon4Cmd = &cobra.Command{ - Use: "erigon4", - Short: "Experimental command to re-execute blocks from beginning using erigon2 state representation and history/domain", - RunE: func(cmd *cobra.Command, args []string) error { - logger := debug.SetupCobra(cmd, "erigon4") - return Erigon4(genesis, chainConfig, logger) - }, -} - -func Erigon4(genesis *types.Genesis, chainConfig *chain2.Config, logger log.Logger) error { - sigs := make(chan os.Signal, 1) - interruptCh := make(chan bool, 1) - signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) - - go func() { - <-sigs - interruptCh <- true - }() - - historyDb, err := kv2.NewMDBX(logger).Path(path.Join(datadirCli, "chaindata")).Open() - if err != nil { - return fmt.Errorf("opening chaindata as read only: %v", err) - } - defer historyDb.Close() - - ctx := context.Background() - historyTx, err1 := historyDb.BeginRo(ctx) - if err1 != nil { - return err1 - } - defer historyTx.Rollback() - - stateDbPath := path.Join(datadirCli, "db4") - if _, err = os.Stat(stateDbPath); err != nil { - if !errors.Is(err, os.ErrNotExist) { - return err - } - } - db, err2 := kv2.NewMDBX(logger).Path(stateDbPath).WriteMap().Open() - if err2 != nil { - return err2 - } - defer db.Close() - - dirs := datadir.New(datadirCli) - aggPath := filepath.Join(datadirCli, "erigon4") - - var rwTx kv.RwTx - defer func() { - if rwTx != nil { - rwTx.Rollback() - } - }() - if rwTx, err = db.BeginRw(ctx); err != nil { - return err - } - - trieVariant := commitment.ParseTrieVariant(commitmentTrie) - if trieVariant != commitment.VariantHexPatriciaTrie { - blockRootMismatchExpected = true - } - mode := libstate.ParseCommitmentMode(commitmentMode) - logger.Info("aggregator commitment trie", "variant", trieVariant, "mode", mode.String()) - - agg, err3 := libstate.NewAggregator(aggPath, dirs.Tmp, stepSize, mode, trieVariant, logger) - if err3 != nil { - return fmt.Errorf("create aggregator: %w", err3) - } - if err := agg.ReopenFolder(); err != nil { - return err - } - - defer agg.Close() - - startTxNum := agg.EndTxNumMinimax() - fmt.Printf("Max txNum in files: %d\n", startTxNum) - - agg.SetTx(rwTx) - agg.StartWrites() - defer agg.FinishWrites() - - latestBlock, latestTx, err := agg.SeekCommitment() - if err != nil && startTxNum != 0 { - return fmt.Errorf("failed to seek commitment to tx %d: %w", startTxNum, err) - } - if latestTx > startTxNum { - fmt.Printf("Max txNum in DB: %d\n", latestTx) - startTxNum = latestTx - } - if startTxNumFrom != 0 { - startTxNum = startTxNumFrom - } - - interrupt := false - if startTxNum == 0 { - genBlock, genesisIbs, err := core.GenesisToBlock(genesis, "") - if err != nil { - return err - } - agg.SetTxNum(0) - if err = genesisIbs.CommitBlock(&chain2.Rules{}, &StateWriterV4{w: agg}); err != nil { - return fmt.Errorf("cannot write state: %w", err) - } - - blockRootHash, err := agg.ComputeCommitment(true, false) - if err != nil { - return err - } - if err = agg.FinishTx(); err != nil { - return err - } - - genesisRootHash := genBlock.Root() - if !bytes.Equal(blockRootHash, genesisRootHash[:]) { - return fmt.Errorf("genesis root hash mismatch: expected %x got %x", genesisRootHash, blockRootHash) - } - } - - logger.Info("Initialised chain configuration", "startTxNum", startTxNum, "block", latestBlock, "config", chainConfig) - - var ( - blockNum uint64 - trace bool - vmConfig vm.Config - txNum uint64 = 2 // Consider that each block contains at least first system tx and enclosing transactions, except for Clique consensus engine - started = time.Now() - ) - - if startTxNum != 0 { - txNum = startTxNum - blockNum = latestBlock - } - - logEvery := time.NewTicker(logInterval) - defer logEvery.Stop() - - statx := &stat23{ - prevBlock: blockNum, - prevTime: time.Now(), - } - - go func() { - for range logEvery.C { - aStats := agg.Stats() - statx.delta(aStats, blockNum, txNum).print(aStats, logger) - } - }() - - var blockReader services.FullBlockReader - var allSnapshots = freezeblocks.NewRoSnapshots(ethconfig.NewSnapCfg(true, false, true), path.Join(datadirCli, "snapshots"), logger) - defer allSnapshots.Close() - if err := allSnapshots.ReopenFolder(); err != nil { - return fmt.Errorf("reopen snapshot segments: %w", err) - } - blockReader = freezeblocks.NewBlockReader(allSnapshots) - engine := initConsensusEngine(chainConfig, allSnapshots, logger) - - getHeader := func(hash libcommon.Hash, number uint64) *types.Header { - h, err := blockReader.Header(ctx, historyTx, hash, number) - if err != nil { - panic(err) - } - return h - } - readWrapper := &StateReaderV4{ac: agg.MakeContext(), roTx: rwTx} - writeWrapper := &StateWriterV4{w: agg} - - commitFn := func(txn uint64) error { - if db == nil || rwTx == nil { - return fmt.Errorf("commit failed due to invalid db/rwTx") - } - var spaceDirty uint64 - if spaceDirty, _, err = rwTx.(*kv2.MdbxTx).SpaceDirty(); err != nil { - return fmt.Errorf("retrieving spaceDirty: %w", err) - } - if spaceDirty >= dirtySpaceThreshold { - logger.Info("Initiated tx commit", "block", blockNum, "space dirty", libcommon.ByteCount(spaceDirty)) - } - logger.Info("database commitment", "block", blockNum, "txNum", txn, "uptime", time.Since(started)) - if err := agg.Flush(ctx); err != nil { - return err - } - if err = rwTx.Commit(); err != nil { - return err - } - if interrupt { - return nil - } - - if rwTx, err = db.BeginRw(ctx); err != nil { - return err - } - - readWrapper.ac.Close() - agg.SetTx(rwTx) - readWrapper.roTx = rwTx - readWrapper.ac = agg.MakeContext() - return nil - } - - mergedRoots := agg.AggregatedRoots() - for !interrupt { - blockNum++ - trace = traceBlock > 0 && blockNum == uint64(traceBlock) - blockHash, err := blockReader.CanonicalHash(ctx, historyTx, blockNum) - if err != nil { - return err - } - - b, _, err := blockReader.BlockWithSenders(ctx, historyTx, blockHash, blockNum) - if err != nil { - return err - } - if b == nil { - logger.Info("history: block is nil", "block", blockNum) - break - } - agg.SetTx(rwTx) - agg.SetTxNum(txNum) - agg.SetBlockNum(blockNum) - - if txNum, _, err = processBlock23(startTxNum, trace, txNum, readWrapper, writeWrapper, chainConfig, engine, getHeader, b, vmConfig, logger); err != nil { - logger.Error("processing error", "block", blockNum, "err", err) - return fmt.Errorf("processing block %d: %w", blockNum, err) - } - - // Check for interrupts - select { - case interrupt = <-interruptCh: - // Commit transaction only when interrupted or just before computing commitment (so it can be re-done) - if err := agg.Flush(ctx); err != nil { - logger.Error("aggregator flush", "err", err) - } - - logger.Info(fmt.Sprintf("interrupted, please wait for cleanup, next time start with --tx %d", agg.Stats().TxCount)) - if err := commitFn(txNum); err != nil { - logger.Error("db commit", "err", err) - } - case <-mergedRoots: - if err := commitFn(txNum); err != nil { - logger.Error("db commit on merge", "err", err) - } - default: - } - } - - return nil -} - -type stat23 struct { - blockNum uint64 - hits uint64 - misses uint64 - prevBlock uint64 - hitMissRatio float64 - blockSpeed float64 - txSpeed float64 - txNum uint64 - prevTxNum uint64 - prevTime time.Time - mem runtime.MemStats -} - -func (s *stat23) print(aStats libstate.FilesStats, logger log.Logger) { - totalFiles := aStats.FilesCount - totalDatSize := aStats.DataSize - totalIdxSize := aStats.IdxSize - - logger.Info("Progress", "block", s.blockNum, "blk/s", s.blockSpeed, "tx", s.txNum, "txn/s", s.txSpeed, "state files", totalFiles, - "total dat", libcommon.ByteCount(totalDatSize), "total idx", libcommon.ByteCount(totalIdxSize), - "hit ratio", s.hitMissRatio, "hits+misses", s.hits+s.misses, - "alloc", libcommon.ByteCount(s.mem.Alloc), "sys", libcommon.ByteCount(s.mem.Sys), - ) -} - -func (s *stat23) delta(aStats libstate.FilesStats, blockNum, txNum uint64) *stat23 { - currentTime := time.Now() - dbg.ReadMemStats(&s.mem) - - interval := currentTime.Sub(s.prevTime).Seconds() - s.blockNum = blockNum - s.blockSpeed = float64(s.blockNum-s.prevBlock) / interval - s.txNum = txNum - s.txSpeed = float64(s.txNum-s.prevTxNum) / interval - s.prevBlock = blockNum - s.prevTxNum = txNum - s.prevTime = currentTime - - total := s.hits + s.misses - if total > 0 { - s.hitMissRatio = float64(s.hits) / float64(total) - } - return s -} - -func processBlock23(startTxNum uint64, trace bool, txNumStart uint64, rw *StateReaderV4, ww *StateWriterV4, chainConfig *chain2.Config, - engine consensus.Engine, getHeader func(hash libcommon.Hash, number uint64) *types.Header, block *types.Block, vmConfig vm.Config, - logger log.Logger, -) (uint64, types.Receipts, error) { - defer blockExecutionTimer.UpdateDuration(time.Now()) - - header := block.Header() - vmConfig.Debug = true - gp := new(core.GasPool).AddGas(block.GasLimit()).AddBlobGas(fixedgas.MaxBlobGasPerBlock) - usedGas := new(uint64) - usedBlobGas := new(uint64) - var receipts types.Receipts - rules := chainConfig.Rules(block.NumberU64(), block.Time()) - txNum := txNumStart - ww.w.SetTxNum(txNum) - - rw.blockNum = block.NumberU64() - - daoFork := txNum >= startTxNum && chainConfig.DAOForkBlock != nil && chainConfig.DAOForkBlock.Cmp(block.Number()) == 0 - if daoFork { - ibs := state.New(rw) - // TODO Actually add tracing to the DAO related accounts - misc.ApplyDAOHardFork(ibs) - if err := ibs.FinalizeTx(rules, ww); err != nil { - return 0, nil, err - } - if err := ww.w.FinishTx(); err != nil { - return 0, nil, fmt.Errorf("finish daoFork failed: %w", err) - } - } - - txNum++ // Pre-block transaction - ww.w.SetTxNum(txNum) - if err := ww.w.FinishTx(); err != nil { - return 0, nil, fmt.Errorf("finish pre-block tx %d (block %d) has failed: %w", txNum, block.NumberU64(), err) - } - - getHashFn := core.GetHashFn(header, getHeader) - for i, tx := range block.Transactions() { - if txNum >= startTxNum { - ibs := state.New(rw) - ibs.SetTxContext(tx.Hash(), block.Hash(), i) - ct := exec3.NewCallTracer() - vmConfig.Tracer = ct - receipt, _, err := core.ApplyTransaction(chainConfig, getHashFn, engine, nil, gp, ibs, ww, header, tx, usedGas, usedBlobGas, vmConfig) - if err != nil { - return 0, nil, fmt.Errorf("could not apply tx %d [%x] failed: %w", i, tx.Hash(), err) - } - for from := range ct.Froms() { - if err := ww.w.AddTraceFrom(from[:]); err != nil { - return 0, nil, err - } - } - for to := range ct.Tos() { - if err := ww.w.AddTraceTo(to[:]); err != nil { - return 0, nil, err - } - } - receipts = append(receipts, receipt) - for _, log := range receipt.Logs { - if err = ww.w.AddLogAddr(log.Address[:]); err != nil { - return 0, nil, fmt.Errorf("adding event log for addr %x: %w", log.Address, err) - } - for _, topic := range log.Topics { - if err = ww.w.AddLogTopic(topic[:]); err != nil { - return 0, nil, fmt.Errorf("adding event log for topic %x: %w", topic, err) - } - } - } - if err = ww.w.FinishTx(); err != nil { - return 0, nil, fmt.Errorf("finish tx %d [%x] failed: %w", i, tx.Hash(), err) - } - if trace { - fmt.Printf("FinishTx called for blockNum=%d, txIndex=%d, txNum=%d txHash=[%x]\n", block.NumberU64(), i, txNum, tx.Hash()) - } - } - txNum++ - ww.w.SetTxNum(txNum) - } - - if txNum >= startTxNum { - if chainConfig.IsByzantium(block.NumberU64()) { - receiptSha := types.DeriveSha(receipts) - if receiptSha != block.ReceiptHash() { - fmt.Printf("mismatched receipt headers for block %d\n", block.NumberU64()) - for j, receipt := range receipts { - fmt.Printf("tx %d, used gas: %d\n", j, receipt.GasUsed) - } - } - } - ibs := state.New(rw) - if err := ww.w.AddTraceTo(block.Coinbase().Bytes()); err != nil { - return 0, nil, fmt.Errorf("adding coinbase trace: %w", err) - } - for _, uncle := range block.Uncles() { - if err := ww.w.AddTraceTo(uncle.Coinbase.Bytes()); err != nil { - return 0, nil, fmt.Errorf("adding uncle trace: %w", err) - } - } - - // Finalize the block, applying any consensus engine specific extras (e.g. block rewards) - if _, _, err := engine.Finalize(chainConfig, header, ibs, block.Transactions(), block.Uncles(), receipts, block.Withdrawals(), nil, nil, logger); err != nil { - return 0, nil, fmt.Errorf("finalize of block %d failed: %w", block.NumberU64(), err) - } - - if err := ibs.CommitBlock(rules, ww); err != nil { - return 0, nil, fmt.Errorf("committing block %d failed: %w", block.NumberU64(), err) - } - - if err := ww.w.FinishTx(); err != nil { - return 0, nil, fmt.Errorf("failed to finish tx: %w", err) - } - if trace { - fmt.Printf("FinishTx called for %d block %d\n", txNum, block.NumberU64()) - } - } - - txNum++ // Post-block transaction - ww.w.SetTxNum(txNum) - if txNum >= startTxNum { - if commitments && commitmentFrequency > 0 && block.Number().Uint64()%uint64(commitmentFrequency) == 0 { - rootHash, err := ww.w.ComputeCommitment(true, trace) - if err != nil { - return 0, nil, err - } - if !bytes.Equal(rootHash, header.Root[:]) { - return 0, nil, fmt.Errorf("invalid root hash for block %d: expected %x got %x", block.NumberU64(), header.Root, rootHash) - } - } - - if err := ww.w.FinishTx(); err != nil { - return 0, nil, fmt.Errorf("finish after-block tx %d (block %d) has failed: %w", txNum, block.NumberU64(), err) - } - } - - return txNum, receipts, nil -} - -// Implements StateReader and StateWriter -type StateReaderV4 struct { - roTx kv.Tx - ac *libstate.AggregatorContext - blockNum uint64 -} - -type StateWriterV4 struct { - w *libstate.Aggregator -} - -func (rw *StateReaderV4) ReadAccountData(address libcommon.Address) (*accounts.Account, error) { - enc, err := rw.ac.ReadAccountData(address.Bytes(), rw.roTx) - if err != nil { - return nil, err - } - if len(enc) == 0 { - return nil, nil - } - var a accounts.Account - if err := accounts.DeserialiseV3(&a, enc); err != nil { - return nil, err - } - return &a, nil -} - -func (rw *StateReaderV4) ReadAccountStorage(address libcommon.Address, incarnation uint64, key *libcommon.Hash) ([]byte, error) { - enc, err := rw.ac.ReadAccountStorage(address.Bytes(), key.Bytes(), rw.roTx) - if err != nil { - return nil, err - } - if enc == nil { - return nil, nil - } - if len(enc) == 1 && enc[0] == 0 { - return nil, nil - } - return enc, nil -} - -func (rw *StateReaderV4) ReadAccountCode(address libcommon.Address, incarnation uint64, codeHash libcommon.Hash) ([]byte, error) { - return rw.ac.ReadAccountCode(address.Bytes(), rw.roTx) -} - -func (rw *StateReaderV4) ReadAccountCodeSize(address libcommon.Address, incarnation uint64, codeHash libcommon.Hash) (int, error) { - return rw.ac.ReadAccountCodeSize(address.Bytes(), rw.roTx) -} - -func (rw *StateReaderV4) ReadAccountIncarnation(address libcommon.Address) (uint64, error) { - return 0, nil -} - -func (ww *StateWriterV4) UpdateAccountData(address libcommon.Address, original, account *accounts.Account) error { - value := accounts.SerialiseV3(account) - if err := ww.w.UpdateAccountData(address.Bytes(), value); err != nil { - return err - } - return nil -} - -func (ww *StateWriterV4) UpdateAccountCode(address libcommon.Address, incarnation uint64, codeHash libcommon.Hash, code []byte) error { - if err := ww.w.UpdateAccountCode(address.Bytes(), code); err != nil { - return err - } - return nil -} - -func (ww *StateWriterV4) DeleteAccount(address libcommon.Address, original *accounts.Account) error { - if err := ww.w.DeleteAccount(address.Bytes()); err != nil { - return err - } - return nil -} - -func (ww *StateWriterV4) WriteAccountStorage(address libcommon.Address, incarnation uint64, key *libcommon.Hash, original, value *uint256.Int) error { - if err := ww.w.WriteAccountStorage(address.Bytes(), key.Bytes(), value.Bytes()); err != nil { - return err - } - return nil -} - -func (ww *StateWriterV4) CreateContract(address libcommon.Address) error { - return nil -} - -func initConsensusEngine(cc *chain2.Config, snapshots *freezeblocks.RoSnapshots, logger log.Logger) (engine consensus.Engine) { - config := ethconfig.Defaults - - var consensusConfig interface{} - - if cc.Clique != nil { - consensusConfig = params.CliqueSnapshot - } else if cc.Aura != nil { - consensusConfig = &config.Aura - } else if cc.Bor != nil { - consensusConfig = &config.Bor - } else { - consensusConfig = &config.Ethash - } - return ethconsensusconfig.CreateConsensusEngine(&nodecfg.Config{Dirs: datadir.New(datadirCli)}, cc, consensusConfig, config.Miner.Notify, config.Miner.Noverify, config.HeimdallgRPCAddress, - config.HeimdallURL, config.WithoutHeimdall, true /* readonly */, logger) -} diff --git a/cmd/state/commands/opcode_tracer.go b/cmd/state/commands/opcode_tracer.go index f8d95e7faff..c9cebb45e03 100644 --- a/cmd/state/commands/opcode_tracer.go +++ b/cmd/state/commands/opcode_tracer.go @@ -18,7 +18,6 @@ import ( chain2 "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/fixedgas" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" "github.com/ledgerwatch/erigon-lib/kv/mdbx" @@ -26,11 +25,9 @@ import ( "github.com/ledgerwatch/erigon/common/debug" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/ethash" - "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/state" - "github.com/ledgerwatch/erigon/core/systemcontracts" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/eth/ethconfig" @@ -116,7 +113,7 @@ type opcodeTracer struct { saveBblocks bool blockNumber uint64 depth int - env vm.VMInterface + env *vm.EVM } func NewOpcodeTracer(blockNum uint64, saveOpcodes bool, saveBblocks bool) *opcodeTracer { @@ -197,7 +194,7 @@ func (ot *opcodeTracer) captureStartOrEnter(from, to libcommon.Address, create b ot.stack = append(ot.stack, &newTx) } -func (ot *opcodeTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (ot *opcodeTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { ot.env = env ot.depth = 0 ot.captureStartOrEnter(from, to, create, input) @@ -259,7 +256,7 @@ func (ot *opcodeTracer) CaptureState(pc uint64, op vm.OpCode, gas, cost uint64, } pc16 := uint16(pc) - currentTxHash := ot.env.TxContext().TxHash + currentTxHash := ot.env.TxHash currentTxDepth := opDepth - 1 ls := len(ot.stack) @@ -431,7 +428,7 @@ func OpcodeTracer(genesis *types.Genesis, blockNum uint64, chaindata string, num } return nil }) - blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) + blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New()), nil /* BorSnapshots */) chainConfig := genesis.Config vmConfig := vm.Config{Tracer: ot, Debug: true} @@ -711,14 +708,11 @@ func runBlock(engine consensus.Engine, ibs *state.IntraBlockState, txnWriter sta chainConfig *chain2.Config, getHeader func(hash libcommon.Hash, number uint64) *types.Header, block *types.Block, vmConfig vm.Config, trace bool, logger log.Logger) (types.Receipts, error) { header := block.Header() vmConfig.TraceJumpDest = true - gp := new(core.GasPool).AddGas(block.GasLimit()).AddBlobGas(fixedgas.MaxBlobGasPerBlock) + gp := new(core.GasPool).AddGas(block.GasLimit()).AddBlobGas(chainConfig.GetMaxBlobGasPerBlock()) usedGas := new(uint64) usedBlobGas := new(uint64) var receipts types.Receipts - if chainConfig.DAOForkBlock != nil && chainConfig.DAOForkBlock.Cmp(block.Number()) == 0 { - misc.ApplyDAOHardFork(ibs) - } - systemcontracts.UpgradeBuildInSystemContract(chainConfig, header.Number, ibs, logger) + core.InitializeBlockExecution(engine, nil, header, chainConfig, ibs, logger) rules := chainConfig.Rules(block.NumberU64(), block.Time()) for i, tx := range block.Transactions() { ibs.SetTxContext(tx.Hash(), block.Hash(), i) diff --git a/cmd/state/commands/state_root.go b/cmd/state/commands/state_root.go index a147e79cb36..8945289cff3 100644 --- a/cmd/state/commands/state_root.go +++ b/cmd/state/commands/state_root.go @@ -43,7 +43,7 @@ var stateRootCmd = &cobra.Command{ Short: "Exerimental command to re-execute blocks from beginning and compute state root", RunE: func(cmd *cobra.Command, args []string) error { logger := debug.SetupCobra(cmd, "stateroot") - return StateRoot(genesis, block, datadirCli, logger) + return StateRoot(cmd.Context(), genesis, block, datadirCli, logger) }, } @@ -55,12 +55,12 @@ func blocksIO(db kv.RoDB) (services.FullBlockReader, *blockio.BlockWriter) { }); err != nil { panic(err) } - br := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) + br := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New()), nil /* BorSnapshots */) bw := blockio.NewBlockWriter(histV3) return br, bw } -func StateRoot(genesis *types.Genesis, blockNum uint64, datadir string, logger log.Logger) error { +func StateRoot(ctx context.Context, genesis *types.Genesis, blockNum uint64, datadir string, logger log.Logger) error { sigs := make(chan os.Signal, 1) interruptCh := make(chan bool, 1) signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) @@ -70,12 +70,11 @@ func StateRoot(genesis *types.Genesis, blockNum uint64, datadir string, logger l interruptCh <- true }() dirs := datadir2.New(datadir) - historyDb, err := kv2.NewMDBX(logger).Path(dirs.Chaindata).Open() + historyDb, err := kv2.NewMDBX(logger).Path(dirs.Chaindata).Open(ctx) if err != nil { return err } defer historyDb.Close() - ctx := context.Background() historyTx, err1 := historyDb.BeginRo(ctx) if err1 != nil { return err1 @@ -89,7 +88,7 @@ func StateRoot(genesis *types.Genesis, blockNum uint64, datadir string, logger l } else if err = os.RemoveAll(stateDbPath); err != nil { return err } - db, err2 := kv2.NewMDBX(logger).Path(stateDbPath).Open() + db, err2 := kv2.NewMDBX(logger).Path(stateDbPath).Open(ctx) if err2 != nil { return err2 } diff --git a/cmd/state/exec3/calltracer_v3.go b/cmd/state/exec3/calltracer_v3.go index 31e25fa0007..951e114dfa8 100644 --- a/cmd/state/exec3/calltracer_v3.go +++ b/cmd/state/exec3/calltracer_v3.go @@ -22,7 +22,7 @@ func (ct *CallTracer) Tos() map[libcommon.Address]struct{} { return ct.tos } func (ct *CallTracer) CaptureTxStart(gasLimit uint64) {} func (ct *CallTracer) CaptureTxEnd(restGas uint64) {} -func (ct *CallTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (ct *CallTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { if ct.froms == nil { ct.froms = map[libcommon.Address]struct{}{} ct.tos = map[libcommon.Address]struct{}{} diff --git a/cmd/state/exec3/state.go b/cmd/state/exec3/state.go index 331255b0c7c..4e3297219d0 100644 --- a/cmd/state/exec3/state.go +++ b/cmd/state/exec3/state.go @@ -14,13 +14,13 @@ import ( "github.com/ledgerwatch/erigon/cmd/state/exec22" "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/core/vm/evmtypes" + "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/services" ) @@ -133,17 +133,12 @@ func (rw *Worker) RunTxTaskNoLock(txTask *exec22.TxTask) { //ibs.SetTrace(true) rules := txTask.Rules - daoForkTx := rw.chainConfig.DAOForkBlock != nil && rw.chainConfig.DAOForkBlock.Uint64() == txTask.BlockNum && txTask.TxIndex == -1 var err error header := txTask.Header var logger = log.New("worker-tx") switch { - case daoForkTx: - //fmt.Printf("txNum=%d, blockNum=%d, DAO fork\n", txTask.TxNum, txTask.BlockNum) - misc.ApplyDAOHardFork(ibs) - ibs.SoftFinalise() case txTask.TxIndex == -1: if txTask.BlockNum == 0 { // Genesis block @@ -161,7 +156,8 @@ func (rw *Worker) RunTxTaskNoLock(txTask *exec22.TxTask) { syscall := func(contract libcommon.Address, data []byte, ibs *state.IntraBlockState, header *types.Header, constCall bool) ([]byte, error) { return core.SysCallContract(contract, data, rw.chainConfig, ibs, header, rw.engine, constCall /* constCall */) } - rw.engine.Initialize(rw.chainConfig, rw.chain, header, ibs, txTask.Txs, txTask.Uncles, syscall) + rw.engine.Initialize(rw.chainConfig, rw.chain, header, ibs, syscall, logger) + txTask.Error = ibs.FinalizeTx(rules, noop) case txTask.Final: if txTask.BlockNum == 0 { break @@ -210,7 +206,7 @@ func (rw *Worker) RunTxTaskNoLock(txTask *exec22.TxTask) { } else { txTask.UsedGas = applyRes.UsedGas // Update the state with pending changes - ibs.SoftFinalise() + txTask.Error = ibs.FinalizeTx(rules, noop) txTask.Logs = ibs.GetLogs(txHash) txTask.TraceFroms = rw.callTracer.Froms() txTask.TraceTos = rw.callTracer.Tos() @@ -281,6 +277,16 @@ func (cr ChainReader) GetTd(hash libcommon.Hash, number uint64) *big.Int { func (cr ChainReader) FrozenBlocks() uint64 { return cr.blockReader.FrozenBlocks() } +func (cr ChainReader) GetBlock(hash libcommon.Hash, number uint64) *types.Block { + panic("") +} +func (cr ChainReader) HasBlock(hash libcommon.Hash, number uint64) bool { + panic("") +} +func (cr ChainReader) BorEventsByBlock(hash libcommon.Hash, number uint64) []rlp.RawValue { + panic("") +} +func (cr ChainReader) BorSpan(spanId uint64) []byte { panic("") } func NewWorkersPool(lock sync.Locker, ctx context.Context, background bool, chainDb kv.RoDB, rs *state.StateV3, in *exec22.QueueWithRetry, blockReader services.FullBlockReader, chainConfig *chain.Config, genesis *types.Genesis, engine consensus.Engine, workerCount int) (reconWorkers []*Worker, applyWorker *Worker, rws *exec22.ResultsQueue, clear func(), wait func()) { reconWorkers = make([]*Worker, workerCount) diff --git a/cmd/state/exec3/state_recon.go b/cmd/state/exec3/state_recon.go index 6ed8cfb5336..0172f9a3653 100644 --- a/cmd/state/exec3/state_recon.go +++ b/cmd/state/exec3/state_recon.go @@ -17,9 +17,7 @@ import ( libstate "github.com/ledgerwatch/erigon-lib/state" "github.com/ledgerwatch/erigon/cmd/state/exec22" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" @@ -151,7 +149,7 @@ func (fw *FillWorker) FillCode(codeCollector, plainContractCollector *etl.Collec copy(compositeKey, key) if len(val) > 0 { - codeHash, err := common.HashData(val) + codeHash, err := libcommon.HashData(val) if err != nil { return err } @@ -292,7 +290,6 @@ func (rw *ReconWorker) runTxTask(txTask *exec22.TxTask) error { rw.ibs.Reset() ibs := rw.ibs rules := txTask.Rules - daoForkTx := rw.chainConfig.DAOForkBlock != nil && rw.chainConfig.DAOForkBlock.Uint64() == txTask.BlockNum && txTask.TxIndex == -1 var err error var logger = log.New("recon-tx") @@ -306,10 +303,6 @@ func (rw *ReconWorker) runTxTask(txTask *exec22.TxTask) error { } // For Genesis, rules should be empty, so that empty accounts can be included rules = &chain.Rules{} - } else if daoForkTx { - //fmt.Printf("txNum=%d, blockNum=%d, DAO fork\n", txNum, blockNum) - misc.ApplyDAOHardFork(ibs) - ibs.SoftFinalise() } else if txTask.Final { if txTask.BlockNum > 0 { //fmt.Printf("txNum=%d, blockNum=%d, finalisation of the block\n", txTask.TxNum, txTask.BlockNum) @@ -329,9 +322,14 @@ func (rw *ReconWorker) runTxTask(txTask *exec22.TxTask) error { return core.SysCallContract(contract, data, rw.chainConfig, ibState, header, rw.engine, constCall /* constCall */) } - rw.engine.Initialize(rw.chainConfig, rw.chain, txTask.Header, ibs, txTask.Txs, txTask.Uncles, syscall) + rw.engine.Initialize(rw.chainConfig, rw.chain, txTask.Header, ibs, syscall, logger) + if err = ibs.FinalizeTx(rules, noop); err != nil { + if _, readError := rw.stateReader.ReadError(); !readError { + return err + } + } } else { - gp := new(core.GasPool).AddGas(txTask.Tx.GetGas()) + gp := new(core.GasPool).AddGas(txTask.Tx.GetGas()).AddBlobGas(txTask.Tx.GetBlobGas()) vmConfig := vm.Config{NoReceipts: true, SkipAnalysis: txTask.SkipAnalysis} ibs.SetTxContext(txTask.Tx.Hash(), txTask.BlockHash, txTask.TxIndex) msg := txTask.TxAsMessage diff --git a/cmd/state/verify/check_indexes.go b/cmd/state/verify/check_indexes.go index c3966ffd365..bc13606f8d4 100644 --- a/cmd/state/verify/check_indexes.go +++ b/cmd/state/verify/check_indexes.go @@ -3,13 +3,13 @@ package verify import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "time" "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" ) func CheckIndex(ctx context.Context, chaindata string, changeSetBucket string, indexBucket string) error { diff --git a/cmd/state/verify/verify_txlookup.go b/cmd/state/verify/verify_txlookup.go index d4a9e2415e3..3a7351d11b8 100644 --- a/cmd/state/verify/verify_txlookup.go +++ b/cmd/state/verify/verify_txlookup.go @@ -28,7 +28,7 @@ func blocksIO(db kv.RoDB) (services.FullBlockReader, *blockio.BlockWriter) { }); err != nil { panic(err) } - br := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) + br := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New()), nil /* BorSnapshots */) bw := blockio.NewBlockWriter(histV3) return br, bw } diff --git a/cmd/tooling/README.md b/cmd/tooling/README.md new file mode 100644 index 00000000000..222adcade50 --- /dev/null +++ b/cmd/tooling/README.md @@ -0,0 +1,3 @@ +# Tooling + +this are a bunch of tools for our scripting necessities \ No newline at end of file diff --git a/cmd/tooling/cli.go b/cmd/tooling/cli.go new file mode 100644 index 00000000000..622bc9e6ca6 --- /dev/null +++ b/cmd/tooling/cli.go @@ -0,0 +1,174 @@ +package main + +import ( + "fmt" + "math" + "os/exec" + "time" + + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cmd/caplin/caplin1" + "github.com/ledgerwatch/erigon/eth/ethconfig" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + "golang.org/x/net/context" + + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + "github.com/ledgerwatch/erigon/cl/persistence/db_config" + "github.com/ledgerwatch/erigon/cl/utils" + + "github.com/ledgerwatch/log/v3" +) + +var CLI struct { + BucketCaplinAutomation BucketCaplinAutomation `cmd:"" help:"migrate from one state to another"` +} + +type chainCfg struct { + Chain string `help:"chain" default:"mainnet"` +} + +// func (c *chainCfg) configs() (beaconConfig *clparams.BeaconChainConfig, genesisConfig *clparams.GenesisConfig, err error) { +// genesisConfig, _, beaconConfig, _, err = clparams.GetConfigsByNetworkName(c.Chain) +// return +// } + +type withDatadir struct { + Datadir string `help:"datadir" default:"~/.local/share/erigon" type:"existingdir"` +} + +// func (w *withPPROF) withProfile() { +// if w.Pprof { +// debug.StartPProf("localhost:6060", metrics.Setup("localhost:6060", log.Root())) +// } +// } + +// func (w *withSentinel) connectSentinel() (sentinel.SentinelClient, error) { +// // YOLO message size +// gconn, err := grpc.Dial(w.Sentinel, grpc.WithInsecure(), grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(math.MaxInt))) +// if err != nil { +// return nil, err +// } +// return sentinel.NewSentinelClient(gconn), nil +// } + +// func openFs(fsName string, path string) (afero.Fs, error) { +// return afero.NewBasePathFs(afero.NewBasePathFs(afero.NewOsFs(), fsName), path), nil +// } + +type BucketCaplinAutomation struct { + withDatadir + chainCfg + + UploadPeriod time.Duration `help:"upload period" default:"1440h"` + Bucket string `help:"r2 address" default:"http://localhost:8080"` +} + +func (c *BucketCaplinAutomation) Run(ctx *Context) error { + _, _, beaconConfig, _, err := clparams.GetConfigsByNetworkName(c.Chain) + if err != nil { + return err + } + log.Root().SetHandler(log.LvlFilterHandler(log.LvlDebug, log.StderrHandler)) + log.Info("Started the automation tool for automatic snapshot sanity check and R2 uploading (caplin only)", "chain", c.Chain) + dirs := datadir.New(c.Datadir) + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) + tickerTriggerer := time.NewTicker(c.UploadPeriod) + defer tickerTriggerer.Stop() + // do the checking at first run + if err := checkSnapshots(ctx, beaconConfig, dirs); err != nil { + return err + } + log.Info("Uploading snapshots to R2 bucket") + // next upload to R2 + command := "rclone" + args := []string{"sync", dirs.Snap, c.Bucket, "--include", "*beaconblocks*"} + if err := exec.Command(command, args...).Run(); err != nil { + return fmt.Errorf("rclone failed, make sure rclone is installed and is properly configured: %s", err) + } + log.Info("Finished snapshots to R2 bucket") + for { + select { + case <-tickerTriggerer.C: + log.Info("Checking snapshots") + if err := checkSnapshots(ctx, beaconConfig, dirs); err != nil { + return err + } + log.Info("Finishing snapshots") + // next upload to R2 + command := "rclone" + args := []string{"sync", dirs.Snap, c.Bucket, "--include", "*beaconblocks*"} + log.Info("Uploading snapshots to R2 bucket") + if err := exec.Command(command, args...).Run(); err != nil { + return fmt.Errorf("rclone failed, make sure rclone is installed and is properly configured: %s", err) + } + log.Info("Finished snapshots to R2 bucket") + case <-ctx.Done(): + return nil + } + } +} + +func checkSnapshots(ctx context.Context, beaconConfig *clparams.BeaconChainConfig, dirs datadir.Dirs) error { + rawDB, _ := persistence.AferoRawBeaconBlockChainFromOsPath(beaconConfig, dirs.CaplinHistory) + _, db, err := caplin1.OpenCaplinDatabase(ctx, db_config.DatabaseConfiguration{PruneDepth: math.MaxUint64}, beaconConfig, rawDB, dirs.CaplinIndexing, nil, false) + if err != nil { + return err + } + defer db.Close() + var to uint64 + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + to, err = beacon_indicies.ReadHighestFinalized(tx) + if err != nil { + return err + } + + to = (to / snaptype.Erigon2RecentMergeLimit) * snaptype.Erigon2RecentMergeLimit + + csn := freezeblocks.NewCaplinSnapshots(ethconfig.BlocksFreezing{}, dirs.Snap, log.Root()) + if err := csn.ReopenFolder(); err != nil { + return err + } + + genesisHeader, _, _, err := csn.ReadHeader(0) + if err != nil { + return err + } + previousBlockRoot, err := genesisHeader.Header.HashSSZ() + if err != nil { + return err + } + previousBlockSlot := genesisHeader.Header.Slot + for i := uint64(1); i < to; i++ { + if utils.Min64(0, i-320) > previousBlockSlot { + return fmt.Errorf("snapshot %d has invalid slot", i) + } + // Checking of snapshots is a chain contiguity problem + currentHeader, _, _, err := csn.ReadHeader(i) + if err != nil { + return err + } + if currentHeader == nil { + continue + } + if currentHeader.Header.ParentRoot != previousBlockRoot { + return fmt.Errorf("snapshot %d has invalid parent root", i) + } + previousBlockRoot, err = currentHeader.Header.HashSSZ() + if err != nil { + return err + } + previousBlockSlot = currentHeader.Header.Slot + if i%20000 == 0 { + log.Info("Successfully checked", "slot", i) + } + } + return nil +} diff --git a/cmd/sentinel/sentinel/request.go b/cmd/tooling/main.go similarity index 64% rename from cmd/sentinel/sentinel/request.go rename to cmd/tooling/main.go index d1e8e8cebf5..d2d04e6dcd2 100644 --- a/cmd/sentinel/sentinel/request.go +++ b/cmd/tooling/main.go @@ -11,22 +11,25 @@ limitations under the License. */ -package sentinel +package main import ( - "fmt" + "context" - "github.com/libp2p/go-libp2p/core/peer" + "github.com/alecthomas/kong" ) -func (s *Sentinel) RandomPeer(topic string) (peer.ID, error) { - var ( - pid peer.ID - err error - ) - pid, err = connectToRandomPeer(s, string(BeaconBlockTopic)) - if err != nil { - return peer.ID(""), fmt.Errorf("failed to connect to a random peer err=%s", err) - } - return pid, nil +type Context struct { + context.Context + kctx *kong.Context +} + +func main() { + ctx := kong.Parse(&CLI) + // Call the Run() method of the selected parsed command. + err := ctx.Run(&Context{ + kctx: ctx, + Context: context.TODO(), + }) + ctx.FatalIfErrorf(err) } diff --git a/cmd/txpool/main.go b/cmd/txpool/main.go index 8439503284c..d915a18b32b 100644 --- a/cmd/txpool/main.go +++ b/cmd/txpool/main.go @@ -49,9 +49,13 @@ var ( baseFeePoolLimit int queuedPoolLimit int - priceLimit uint64 - accountSlots uint64 - priceBump uint64 + priceLimit uint64 + accountSlots uint64 + blobSlots uint64 + priceBump uint64 + blobPriceBump uint64 + + noTxGossip bool commitEvery time.Duration ) @@ -74,8 +78,11 @@ func init() { rootCmd.PersistentFlags().IntVar(&queuedPoolLimit, "txpool.globalqueue", txpoolcfg.DefaultConfig.QueuedSubPoolLimit, "Maximum number of non-executable transaction slots for all accounts") rootCmd.PersistentFlags().Uint64Var(&priceLimit, "txpool.pricelimit", txpoolcfg.DefaultConfig.MinFeeCap, "Minimum gas price (fee cap) limit to enforce for acceptance into the pool") rootCmd.PersistentFlags().Uint64Var(&accountSlots, "txpool.accountslots", txpoolcfg.DefaultConfig.AccountSlots, "Minimum number of executable transaction slots guaranteed per account") + rootCmd.PersistentFlags().Uint64Var(&blobSlots, "txpool.blobslots", txpoolcfg.DefaultConfig.BlobSlots, "Max allowed total number of blobs (within type-3 txs) per account") rootCmd.PersistentFlags().Uint64Var(&priceBump, "txpool.pricebump", txpoolcfg.DefaultConfig.PriceBump, "Price bump percentage to replace an already existing transaction") + rootCmd.PersistentFlags().Uint64Var(&blobPriceBump, "txpool.blobpricebump", txpoolcfg.DefaultConfig.BlobPriceBump, "Price bump percentage to replace an existing blob (type-3) transaction") rootCmd.PersistentFlags().DurationVar(&commitEvery, utils.TxPoolCommitEveryFlag.Name, utils.TxPoolCommitEveryFlag.Value, utils.TxPoolCommitEveryFlag.Usage) + rootCmd.PersistentFlags().BoolVar(&noTxGossip, utils.TxPoolGossipDisableFlag.Name, utils.TxPoolGossipDisableFlag.Value, utils.TxPoolGossipDisableFlag.Usage) rootCmd.Flags().StringSliceVar(&traceSenders, utils.TxPoolTraceSendersFlag.Name, []string{}, utils.TxPoolTraceSendersFlag.Usage) } @@ -139,7 +146,10 @@ func doTxpool(ctx context.Context, logger log.Logger) error { cfg.QueuedSubPoolLimit = queuedPoolLimit cfg.MinFeeCap = priceLimit cfg.AccountSlots = accountSlots + cfg.BlobSlots = blobSlots cfg.PriceBump = priceBump + cfg.BlobPriceBump = blobPriceBump + cfg.NoGossip = noTxGossip cacheConfig := kvcache.DefaultCoherentConfig cacheConfig.MetricsLabel = "txpool" diff --git a/cmd/utils/flags.go b/cmd/utils/flags.go index 122d110aa72..4d30daa13ce 100644 --- a/cmd/utils/flags.go +++ b/cmd/utils/flags.go @@ -25,8 +25,16 @@ import ( "runtime" "strconv" "strings" + "time" "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/log/v3" + "github.com/spf13/cobra" + "github.com/spf13/pflag" + "github.com/urfave/cli/v2" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/cmp" "github.com/ledgerwatch/erigon-lib/common/datadir" @@ -35,10 +43,6 @@ import ( "github.com/ledgerwatch/erigon-lib/direct" downloadercfg2 "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" - "github.com/ledgerwatch/log/v3" - "github.com/spf13/cobra" - "github.com/spf13/pflag" - "github.com/urfave/cli/v2" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cmd/downloader/downloadernat" @@ -56,7 +60,7 @@ import ( "github.com/ledgerwatch/erigon/p2p/nat" "github.com/ledgerwatch/erigon/p2p/netutil" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon/rpc/rpccfg" ) // These are all the command line flags we support. @@ -93,7 +97,7 @@ var ( } ChainFlag = cli.StringFlag{ Name: "chain", - Usage: "Name of the testnet to join", + Usage: "name of the network to join", Value: networkname.MainnetChainName, } IdentityFlag = cli.StringFlag{ @@ -138,12 +142,17 @@ var ( } InternalConsensusFlag = cli.BoolFlag{ Name: "internalcl", - Usage: "enables internal consensus", + Usage: "Enables internal consensus", } // Transaction pool settings TxPoolDisableFlag = cli.BoolFlag{ Name: "txpool.disable", - Usage: "experimental external pool and block producer, see ./cmd/txpool/readme.md for more info. Disabling internal txpool and block producer.", + Usage: "Experimental external pool and block producer, see ./cmd/txpool/readme.md for more info. Disabling internal txpool and block producer.", + } + TxPoolGossipDisableFlag = cli.BoolFlag{ + Name: "txpool.gossip.disable", + Usage: "Disabling p2p gossip of txs. Any txs received by p2p - will be dropped. Some networks like 'Optimism execution engine'/'Optimistic Rollup' - using it to protect against MEV attacks", + Value: txpoolcfg.DefaultConfig.NoGossip, } TxPoolLocalsFlag = cli.StringFlag{ Name: "txpool.locals", @@ -163,11 +172,21 @@ var ( Usage: "Price bump percentage to replace an already existing transaction", Value: txpoolcfg.DefaultConfig.PriceBump, } + TxPoolBlobPriceBumpFlag = cli.Uint64Flag{ + Name: "txpool.blobpricebump", + Usage: "Price bump percentage to replace existing (type-3) blob transaction", + Value: txpoolcfg.DefaultConfig.BlobPriceBump, + } TxPoolAccountSlotsFlag = cli.Uint64Flag{ Name: "txpool.accountslots", Usage: "Minimum number of executable transaction slots guaranteed per account", Value: ethconfig.Defaults.DeprecatedTxPool.AccountSlots, } + TxPoolBlobSlotsFlag = cli.Uint64Flag{ + Name: "txpool.blobslots", + Usage: "Max allowed total number of blobs (within type-3 txs) per account", + Value: txpoolcfg.DefaultConfig.BlobSlots, + } TxPoolGlobalSlotsFlag = cli.Uint64Flag{ Name: "txpool.globalslots", Usage: "Maximum number of executable transaction slots for all accounts", @@ -195,7 +214,7 @@ var ( } TxPoolTraceSendersFlag = cli.StringFlag{ Name: "txpool.trace.senders", - Usage: "Comma separared list of addresses, whoes transactions will traced in transaction pool with debug printing", + Usage: "Comma separated list of addresses, whose transactions will traced in transaction pool with debug printing", Value: "", } TxPoolCommitEveryFlag = cli.DurationFlag{ @@ -293,7 +312,12 @@ var ( } HTTPEnabledFlag = cli.BoolFlag{ Name: "http", - Usage: "HTTP-RPC server (enabled by default). Use --http=false to disable it", + Usage: "JSON-RPC server (enabled by default). Use --http=false to disable it", + Value: true, + } + HTTPServerEnabledFlag = cli.BoolFlag{ + Name: "http.enabled", + Usage: "JSON-RPC HTTP server (enabled by default). Use --http.enabled=false to disable it", Value: true, } HTTPListenAddrFlag = cli.StringFlag{ @@ -358,7 +382,7 @@ var ( } RpcStreamingDisableFlag = cli.BoolFlag{ Name: "rpc.streaming.disable", - Usage: "Erigon has enalbed json streaming for some heavy endpoints (like trace_*). It's treadoff: greatly reduce amount of RAM (in some cases from 30GB to 30mb), but it produce invalid json format if error happened in the middle of streaming (because json is not streaming-friendly format)", + Usage: "Erigon has enabled json streaming for some heavy endpoints (like trace_*). It's a trade-off: greatly reduce amount of RAM (in some cases from 30GB to 30mb), but it produce invalid json format if error happened in the middle of streaming (because json is not streaming-friendly format)", } RpcBatchLimit = cli.IntFlag{ Name: "rpc.batch.limit", @@ -377,7 +401,7 @@ var ( DBReadConcurrencyFlag = cli.IntFlag{ Name: "db.read.concurrency", Usage: "Does limit amount of parallel db reads. Default: equal to GOMAXPROCS (or number of CPU)", - Value: cmp.Max(10, runtime.GOMAXPROCS(-1)*8), + Value: cmp.Min(cmp.Max(10, runtime.GOMAXPROCS(-1)*64), 9_000), } RpcAccessListFlag = cli.StringFlag{ Name: "rpc.accessList", @@ -396,7 +420,7 @@ var ( TxpoolApiAddrFlag = cli.StringFlag{ Name: "txpool.api.addr", - Usage: "txpool api network address, for example: 127.0.0.1:9090 (default: use value of --private.api.addr)", + Usage: "TxPool api network address, for example: 127.0.0.1:9090 (default: use value of --private.api.addr)", } TraceMaxtracesFlag = cli.UintFlag{ @@ -468,7 +492,16 @@ var ( } AllowUnprotectedTxs = cli.BoolFlag{ Name: "rpc.allow-unprotected-txs", - Usage: "Allow for unprotected (non EIP155 signed) transactions to be submitted via RPC", + Usage: "Allow for unprotected (non-EIP155 signed) transactions to be submitted via RPC", + } + // Careful! Because we must rewind the hash state + // and re-compute the state trie, the further back in time the request, the more + // computationally intensive the operation becomes. + // The current default has been chosen arbitrarily as 'useful' without likely being overly computationally intense. + RpcMaxGetProofRewindBlockCount = cli.IntFlag{ + Name: "rpc.maxgetproofrewindblockcount.limit", + Usage: "Max GetProof rewind block count", + Value: 100_000, } StateCacheFlag = cli.StringFlag{ Name: "state.cache", @@ -504,17 +537,12 @@ var ( } SentryAddrFlag = cli.StringFlag{ Name: "sentry.api.addr", - Usage: "comma separated sentry addresses ':,:'", + Usage: "Comma separated sentry addresses ':,:'", } SentryLogPeerInfoFlag = cli.BoolFlag{ Name: "sentry.log-peer-info", Usage: "Log detailed peer info when a peer connects or disconnects. Enable to integrate with observer.", } - SentryDropUselessPeers = cli.BoolFlag{ - Name: "sentry.drop-useless-peers", - Usage: "Drop useless peers, those returning empty body or header responses", - Value: false, - } DownloaderAddrFlag = cli.StringFlag{ Name: "downloader.api.addr", Usage: "downloader address ':'", @@ -545,14 +573,14 @@ var ( NATFlag = cli.StringFlag{ Name: "nat", Usage: `NAT port mapping mechanism (any|none|upnp|pmp|stun|extip:) - "" or "none" default - do not nat - "extip:77.12.33.4" will assume the local machine is reachable on the given IP - "any" uses the first auto-detected mechanism - "upnp" uses the Universal Plug and Play protocol - "pmp" uses NAT-PMP with an auto-detected gateway address - "pmp:192.168.0.1" uses NAT-PMP with the given gateway address - "stun" uses STUN to detect an external IP using a default server - "stun:" uses STUN to detect an external IP using the given server (host:port) + "" or "none" Default - do not nat + "extip:77.12.33.4" Will assume the local machine is reachable on the given IP + "any" Uses the first auto-detected mechanism + "upnp" Uses the Universal Plug and Play protocol + "pmp" Uses NAT-PMP with an auto-detected gateway address + "pmp:192.168.0.1" Uses NAT-PMP with the given gateway address + "stun" Uses STUN to detect an external IP using a default server + "stun:" Uses STUN to detect an external IP using the given server (host:port) `, Value: "", } @@ -619,27 +647,27 @@ var ( } HistoryV3Flag = cli.BoolFlag{ Name: "experimental.history.v3", - Usage: "(also known as Erigon3) Not recommended yet: Can't change this flag after node creation. New DB and Snapshots format of history allows: parallel blocks execution, get state as of given transaction without executing whole block.", + Usage: "(Also known as Erigon3) Not recommended yet: Can't change this flag after node creation. New DB and Snapshots format of history allows: parallel blocks execution, get state as of given transaction without executing whole block.", } CliqueSnapshotCheckpointIntervalFlag = cli.UintFlag{ Name: "clique.checkpoint", - Usage: "number of blocks after which to save the vote snapshot to the database", + Usage: "Number of blocks after which to save the vote snapshot to the database", Value: 10, } CliqueSnapshotInmemorySnapshotsFlag = cli.IntFlag{ Name: "clique.snapshots", - Usage: "number of recent vote snapshots to keep in memory", + Usage: "Number of recent vote snapshots to keep in memory", Value: 1024, } CliqueSnapshotInmemorySignaturesFlag = cli.IntFlag{ Name: "clique.signatures", - Usage: "number of recent block signatures to keep in memory", + Usage: "Number of recent block signatures to keep in memory", Value: 16384, } CliqueDataDirFlag = flags.DirectoryFlag{ Name: "clique.datadir", - Usage: "a path to clique db folder", + Usage: "Path to clique db folder", Value: "", } @@ -654,22 +682,22 @@ var ( TorrentVerbosityFlag = cli.IntFlag{ Name: "torrent.verbosity", Value: 2, - Usage: "0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (must set --verbosity to equal or higher level and has defeault: 3)", + Usage: "0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail (must set --verbosity to equal or higher level and has default: 2)", } TorrentDownloadRateFlag = cli.StringFlag{ Name: "torrent.download.rate", Value: "16mb", - Usage: "bytes per second, example: 32mb", + Usage: "Bytes per second, example: 32mb", } TorrentUploadRateFlag = cli.StringFlag{ Name: "torrent.upload.rate", Value: "4mb", - Usage: "bytes per second, example: 32mb", + Usage: "Bytes per second, example: 32mb", } TorrentDownloadSlotsFlag = cli.IntFlag{ Name: "torrent.download.slots", Value: 3, - Usage: "amount of files to download in parallel. If network has enough seeders 1-3 slot enough, if network has lack of seeders increase to 5-7 (too big value will slow down everything).", + Usage: "Amount of files to download in parallel. If network has enough seeders 1-3 slot enough, if network has lack of seeders increase to 5-7 (too big value will slow down everything).", } TorrentStaticPeersFlag = cli.StringFlag{ Name: "torrent.staticpeers", @@ -678,37 +706,37 @@ var ( } NoDownloaderFlag = cli.BoolFlag{ Name: "no-downloader", - Usage: "to disable downloader component", + Usage: "Disables downloader component", } DownloaderVerifyFlag = cli.BoolFlag{ Name: "downloader.verify", - Usage: "verify snapshots on startup. it will not report founded problems but just re-download broken pieces", + Usage: "Verify snapshots on startup. It will not report problems found, but re-download broken pieces.", } DisableIPV6 = cli.BoolFlag{ Name: "downloader.disable.ipv6", - Usage: "Turns off ipv6 for the downlaoder", + Usage: "Turns off ipv6 for the downloader", Value: false, } DisableIPV4 = cli.BoolFlag{ Name: "downloader.disable.ipv4", - Usage: "Turn off ipv4 for the downloader", + Usage: "Turns off ipv4 for the downloader", Value: false, } TorrentPortFlag = cli.IntFlag{ Name: "torrent.port", Value: 42069, - Usage: "port to listen and serve BitTorrent protocol", + Usage: "Port to listen and serve BitTorrent protocol", } TorrentMaxPeersFlag = cli.IntFlag{ Name: "torrent.maxpeers", Value: 100, - Usage: "unused parameter (reserved for future use)", + Usage: "Unused parameter (reserved for future use)", } TorrentConnsPerFileFlag = cli.IntFlag{ Name: "torrent.conns.perfile", Value: 10, - Usage: "connections per file", + Usage: "Number of connections per file", } DbPageSizeFlag = cli.StringFlag{ Name: "db.pagesize", @@ -717,8 +745,13 @@ var ( } DbSizeLimitFlag = cli.StringFlag{ Name: "db.size.limit", - Usage: "runtime limit of chandata db size. you can change value of this flag at any time", - Value: (3 * datasize.TB).String(), + Usage: "Runtime limit of chaindata db size. You can change value of this flag at any time.", + Value: (12 * datasize.TB).String(), + } + ForcePartialCommitFlag = cli.BoolFlag{ + Name: "force.partial.commit", + Usage: "Force data commit after each stage (or even do multiple commits per 1 stage - to save it's progress). Don't use this flag if node is synced. Meaning: readers (users of RPC) would like to see 'fully consistent' data (block is executed and all indices are updated). Erigon guarantee this level of data-consistency. But 1 downside: after restore node from backup - it can't save partial progress (non-committed progress will be lost at restart). This flag will be removed in future if we can find automatic way to detect corner-cases.", + Value: false, } HealthCheckFlag = cli.BoolFlag{ @@ -732,6 +765,12 @@ var ( Value: "http://localhost:1317", } + WebSeedsFlag = cli.StringFlag{ + Name: "webseed", + Usage: "Comma-separated URL's, holding metadata about network-support infrastructure (like S3 buckets with snapshots, bootnodes, etc...)", + Value: "", + } + // WithoutHeimdallFlag no heimdall (for testing purpose) WithoutHeimdallFlag = cli.BoolFlag{ Name: "bor.withoutheimdall", @@ -748,6 +787,12 @@ var ( Usage: "Ignore the bor block period and wait for 'blocksize' transactions (for testing purposes)", } + WithHeimdallMilestones = cli.BoolFlag{ + Name: "bor.milestone", + Usage: "Enabling bor milestone processing", + Value: true, + } + // HeimdallgRPCAddressFlag flag for heimdall gRPC address HeimdallgRPCAddressFlag = cli.StringFlag{ Name: "bor.heimdallgRPC", @@ -791,10 +836,91 @@ var ( Usage: "Max allowed page size for search methods", Value: 25, } + + DiagnosticsURLFlag = cli.StringFlag{ + Name: "diagnostics.addr", + Usage: "Address of the diagnostics system provided by the support team", + } + + DiagnosticsInsecureFlag = cli.BoolFlag{ + Name: "diagnostics.insecure", + Usage: "Allows communication with diagnostics system using self-signed TLS certificates", + } + + DiagnosticsSessionsFlag = cli.StringSliceFlag{ + Name: "diagnostics.ids", + Usage: "Comma separated list of support session ids to connect to", + } + + SilkwormExecutionFlag = cli.BoolFlag{ + Name: "silkworm.exec", + Usage: "Enable Silkworm block execution", + } + SilkwormRpcDaemonFlag = cli.BoolFlag{ + Name: "silkworm.rpcd", + Usage: "Enable embedded Silkworm RPC daemon", + } + SilkwormSentryFlag = cli.BoolFlag{ + Name: "silkworm.sentry", + Usage: "Enable embedded Silkworm Sentry service", + } + + BeaconAPIFlag = cli.BoolFlag{ + Name: "beacon.api", + Usage: "Enable beacon API", + Value: false, + } + BeaconApiProtocolFlag = cli.StringFlag{ + Name: "beacon.api.protocol", + Usage: "Protocol for beacon API", + Value: "tcp", + } + BeaconApiReadTimeoutFlag = cli.Uint64Flag{ + Name: "beacon.api.read.timeout", + Usage: "Sets the seconds for a read time out in the beacon api", + Value: 5, + } + BeaconApiWriteTimeoutFlag = cli.Uint64Flag{ + Name: "beacon.api.write.timeout", + Usage: "Sets the seconds for a write time out in the beacon api", + Value: 5, + } + BeaconApiIdleTimeoutFlag = cli.Uint64Flag{ + Name: "beacon.api.ide.timeout", + Usage: "Sets the seconds for a write time out in the beacon api", + Value: 25, + } + BeaconApiAddrFlag = cli.StringFlag{ + Name: "beacon.api.addr", + Usage: "sets the host to listen for beacon api requests", + Value: "localhost", + } + BeaconApiPortFlag = cli.UintFlag{ + Name: "beacon.api.port", + Usage: "sets the port to listen for beacon api requests", + Value: 5555, + } + RPCSlowFlag = cli.DurationFlag{ + Name: "rpc.slow", + Usage: "Print in logs RPC requests slower than given threshold: 100ms, 1s, 1m. Exluded methods: " + strings.Join(rpccfg.SlowLogBlackList, ","), + Value: 0, + } + CaplinBackfillingFlag = cli.BoolFlag{ + Name: "caplin.backfilling", + Usage: "sets whether backfilling is enabled for caplin", + Value: false, + } + CaplinArchiveFlag = cli.BoolFlag{ + Name: "caplin.archive", + Usage: "enables archival node in caplin (Experimental, does not work)", + Value: false, + } ) var MetricFlags = []cli.Flag{&MetricsEnabledFlag, &MetricsHTTPFlag, &MetricsPortFlag} +var DiagnosticsFlags = []cli.Flag{&DiagnosticsURLFlag, &DiagnosticsURLFlag, &DiagnosticsSessionsFlag} + // setNodeKey loads a node key from command line flags if provided, // otherwise it tries to load it from datadir, // otherwise it generates a new key in datadir. @@ -856,7 +982,7 @@ func setBootstrapNodesV5(ctx *cli.Context, cfg *p2p.Config) { func GetBootnodesFromFlags(urlsStr, chain string) ([]*enode.Node, error) { var urls []string if urlsStr != "" { - urls = SplitAndTrim(urlsStr) + urls = libcommon.CliString2Array(urlsStr) } else { urls = params.BootnodeURLsOfChain(chain) } @@ -866,7 +992,7 @@ func GetBootnodesFromFlags(urlsStr, chain string) ([]*enode.Node, error) { func setStaticPeers(ctx *cli.Context, cfg *p2p.Config) { var urls []string if ctx.IsSet(StaticPeersFlag.Name) { - urls = SplitAndTrim(ctx.String(StaticPeersFlag.Name)) + urls = libcommon.CliString2Array(ctx.String(StaticPeersFlag.Name)) } else { chain := ctx.String(ChainFlag.Name) urls = params.StaticPeerURLsOfChain(chain) @@ -885,7 +1011,7 @@ func setTrustedPeers(ctx *cli.Context, cfg *p2p.Config) { return } - urls := SplitAndTrim(ctx.String(TrustedPeersFlag.Name)) + urls := libcommon.CliString2Array(ctx.String(TrustedPeersFlag.Name)) trustedNodes, err := ParseNodesFromURLs(urls) if err != nil { Fatalf("Option %s: %v", TrustedPeersFlag.Name, err) @@ -979,6 +1105,7 @@ func NewP2PConfig( return nil, fmt.Errorf("invalid nat option %s: %w", natSetting, err) } cfg.NAT = natif + cfg.NATSpec = natSetting return cfg, nil } @@ -1000,7 +1127,7 @@ func setListenAddress(ctx *cli.Context, cfg *p2p.Config) { cfg.ProtocolVersion = ctx.UintSlice(P2pProtocolVersionFlag.Name) } if ctx.IsSet(SentryAddrFlag.Name) { - cfg.SentryAddr = SplitAndTrim(ctx.String(SentryAddrFlag.Name)) + cfg.SentryAddr = libcommon.CliString2Array(ctx.String(SentryAddrFlag.Name)) } // TODO cli lib doesn't store defaults for UintSlice properly so we have to get value directly cfg.AllowedPorts = P2pProtocolAllowedPorts.Value.Value() @@ -1027,26 +1154,16 @@ func setListenAddress(ctx *cli.Context, cfg *p2p.Config) { // setNAT creates a port mapper from command line flags. func setNAT(ctx *cli.Context, cfg *p2p.Config) { if ctx.IsSet(NATFlag.Name) { - natif, err := nat.Parse(ctx.String(NATFlag.Name)) + natSetting := ctx.String(NATFlag.Name) + natif, err := nat.Parse(natSetting) if err != nil { Fatalf("Option %s: %v", NATFlag.Name, err) } cfg.NAT = natif + cfg.NATSpec = natSetting } } -// SplitAndTrim splits input separated by a comma -// and trims excessive white space from the substrings. -func SplitAndTrim(input string) (ret []string) { - l := strings.Split(input, ",") - for _, r := range l { - if r = strings.TrimSpace(r); r != "" { - ret = append(ret, r) - } - } - return ret -} - // setEtherbase retrieves the etherbase from the directly specified // command line flags. func setEtherbase(ctx *cli.Context, cfg *ethconfig.Config) { @@ -1121,7 +1238,6 @@ func SetP2PConfig(ctx *cli.Context, cfg *p2p.Config, nodeName, datadir string, l } ethPeers := cfg.MaxPeers - cfg.Name = nodeName logger.Info("Maximum peer count", "ETH", ethPeers, "total", cfg.MaxPeers) if netrestrict := ctx.String(NetrestrictFlag.Name); netrestrict != "" { @@ -1162,12 +1278,10 @@ func SetNodeConfigCobra(cmd *cobra.Command, cfg *nodecfg.Config) { func setDataDir(ctx *cli.Context, cfg *nodecfg.Config) { if ctx.IsSet(DataDirFlag.Name) { - cfg.Dirs.DataDir = ctx.String(DataDirFlag.Name) + cfg.Dirs = datadir.New(ctx.String(DataDirFlag.Name)) } else { - cfg.Dirs.DataDir = paths.DataDirForNetwork(cfg.Dirs.DataDir, ctx.String(ChainFlag.Name)) + cfg.Dirs = datadir.New(paths.DataDirForNetwork(paths.DefaultDataDir(), ctx.String(ChainFlag.Name))) } - cfg.Dirs = datadir.New(cfg.Dirs.DataDir) - cfg.MdbxPageSize = flags.DBPageSizeFlagUnmarshal(ctx, DbPageSizeFlag.Name, DbPageSizeFlag.Usage) if err := cfg.MdbxDBSizeLimit.UnmarshalText([]byte(ctx.String(DbSizeLimitFlag.Name))); err != nil { panic(err) @@ -1188,13 +1302,10 @@ func setDataDirCobra(f *pflag.FlagSet, cfg *nodecfg.Config) { panic(err) } if dirname != "" { - cfg.Dirs.DataDir = dirname + cfg.Dirs = datadir.New(dirname) } else { - cfg.Dirs.DataDir = paths.DataDirForNetwork(cfg.Dirs.DataDir, chain) + cfg.Dirs = datadir.New(paths.DataDirForNetwork(paths.DefaultDataDir(), chain)) } - - cfg.Dirs.DataDir = paths.DataDirForNetwork(cfg.Dirs.DataDir, chain) - cfg.Dirs = datadir.New(cfg.Dirs.DataDir) } func setGPO(ctx *cli.Context, cfg *gaspricecfg.Config) { @@ -1222,12 +1333,13 @@ func setGPOCobra(f *pflag.FlagSet, cfg *gaspricecfg.Config) { } } -func setTxPool(ctx *cli.Context, cfg *ethconfig.DeprecatedTxPoolConfig) { +func setTxPool(ctx *cli.Context, fullCfg *ethconfig.Config) { + cfg := &fullCfg.DeprecatedTxPool if ctx.IsSet(TxPoolDisableFlag.Name) { cfg.Disable = true } if ctx.IsSet(TxPoolLocalsFlag.Name) { - locals := SplitAndTrim(ctx.String(TxPoolLocalsFlag.Name)) + locals := libcommon.CliString2Array(ctx.String(TxPoolLocalsFlag.Name)) for _, account := range locals { if !libcommon.IsHexAddress(account) { Fatalf("Invalid account in --txpool.locals: %s", account) @@ -1245,9 +1357,15 @@ func setTxPool(ctx *cli.Context, cfg *ethconfig.DeprecatedTxPoolConfig) { if ctx.IsSet(TxPoolPriceBumpFlag.Name) { cfg.PriceBump = ctx.Uint64(TxPoolPriceBumpFlag.Name) } + if ctx.IsSet(TxPoolBlobPriceBumpFlag.Name) { + fullCfg.TxPool.BlobPriceBump = ctx.Uint64(TxPoolBlobPriceBumpFlag.Name) + } if ctx.IsSet(TxPoolAccountSlotsFlag.Name) { cfg.AccountSlots = ctx.Uint64(TxPoolAccountSlotsFlag.Name) } + if ctx.IsSet(TxPoolBlobSlotsFlag.Name) { + fullCfg.TxPool.BlobSlots = ctx.Uint64(TxPoolBlobSlotsFlag.Name) + } if ctx.IsSet(TxPoolGlobalSlotsFlag.Name) { cfg.GlobalSlots = ctx.Uint64(TxPoolGlobalSlotsFlag.Name) } @@ -1265,14 +1383,16 @@ func setTxPool(ctx *cli.Context, cfg *ethconfig.DeprecatedTxPoolConfig) { } if ctx.IsSet(TxPoolTraceSendersFlag.Name) { // Parse the command separated flag - senderHexes := SplitAndTrim(ctx.String(TxPoolTraceSendersFlag.Name)) + senderHexes := libcommon.CliString2Array(ctx.String(TxPoolTraceSendersFlag.Name)) cfg.TracedSenders = make([]string, len(senderHexes)) for i, senderHex := range senderHexes { sender := libcommon.HexToAddress(senderHex) cfg.TracedSenders[i] = string(sender[:]) } } - + if ctx.IsSet(TxPoolBlobPriceBumpFlag.Name) { + fullCfg.TxPool.BlobPriceBump = ctx.Uint64(TxPoolBlobPriceBumpFlag.Name) + } cfg.CommitEvery = common2.RandomizeDuration(ctx.Duration(TxPoolCommitEveryFlag.Name)) } @@ -1362,6 +1482,7 @@ func setBorConfig(ctx *cli.Context, cfg *ethconfig.Config) { cfg.HeimdallURL = ctx.String(HeimdallURLFlag.Name) cfg.WithoutHeimdall = ctx.Bool(WithoutHeimdallFlag.Name) cfg.HeimdallgRPCAddress = ctx.String(HeimdallgRPCAddressFlag.Name) + cfg.WithHeimdallMilestones = ctx.Bool(WithHeimdallMilestones.Name) } func setMiner(ctx *cli.Context, cfg *params.MiningConfig) { @@ -1372,7 +1493,7 @@ func setMiner(ctx *cli.Context, cfg *params.MiningConfig) { panic(fmt.Sprintf("Erigon supports only remote miners. Flag --%s or --%s is required", MinerNotifyFlag.Name, MinerSigningKeyFileFlag.Name)) } if ctx.IsSet(MinerNotifyFlag.Name) { - cfg.Notify = SplitAndTrim(ctx.String(MinerNotifyFlag.Name)) + cfg.Notify = libcommon.CliString2Array(ctx.String(MinerNotifyFlag.Name)) } if ctx.IsSet(MinerExtraDataFlag.Name) { cfg.ExtraData = []byte(ctx.String(MinerExtraDataFlag.Name)) @@ -1397,7 +1518,7 @@ func setWhitelist(ctx *cli.Context, cfg *ethconfig.Config) { return } cfg.Whitelist = make(map[uint64]libcommon.Hash) - for _, entry := range SplitAndTrim(whitelist) { + for _, entry := range libcommon.CliString2Array(whitelist) { parts := strings.Split(entry, "=") if len(parts) != 2 { Fatalf("Invalid whitelist entry: %s", entry) @@ -1414,6 +1535,26 @@ func setWhitelist(ctx *cli.Context, cfg *ethconfig.Config) { } } +func setBeaconAPI(ctx *cli.Context, cfg *ethconfig.Config) { + cfg.BeaconRouter.Active = ctx.Bool(BeaconAPIFlag.Name) + cfg.BeaconRouter.Protocol = ctx.String(BeaconApiProtocolFlag.Name) + cfg.BeaconRouter.Address = fmt.Sprintf("%s:%d", ctx.String(BeaconApiAddrFlag.Name), ctx.Int(BeaconApiPortFlag.Name)) + cfg.BeaconRouter.ReadTimeTimeout = time.Duration(ctx.Uint64(BeaconApiReadTimeoutFlag.Name)) * time.Second + cfg.BeaconRouter.WriteTimeout = time.Duration(ctx.Uint64(BeaconApiWriteTimeoutFlag.Name)) * time.Second + cfg.BeaconRouter.IdleTimeout = time.Duration(ctx.Uint64(BeaconApiIdleTimeoutFlag.Name)) * time.Second +} + +func setCaplin(ctx *cli.Context, cfg *ethconfig.Config) { + cfg.CaplinConfig.Backfilling = ctx.Bool(CaplinBackfillingFlag.Name) || ctx.Bool(CaplinArchiveFlag.Name) + cfg.CaplinConfig.Archive = ctx.Bool(CaplinArchiveFlag.Name) +} + +func setSilkworm(ctx *cli.Context, cfg *ethconfig.Config) { + cfg.SilkwormExecution = ctx.Bool(SilkwormExecutionFlag.Name) + cfg.SilkwormRpcDaemon = ctx.Bool(SilkwormRpcDaemonFlag.Name) + cfg.SilkwormSentry = ctx.Bool(SilkwormSentryFlag.Name) +} + // CheckExclusive verifies that only a single instance of the provided flags was // set by the user. Each flag might optionally be followed by a string type to // specialize it further. @@ -1462,6 +1603,7 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C cfg.LightClientDiscoveryTCPPort = ctx.Uint64(LightClientDiscoveryTCPPortFlag.Name) cfg.SentinelAddr = ctx.String(SentinelAddrFlag.Name) cfg.SentinelPort = ctx.Uint64(SentinelPortFlag.Name) + cfg.ForcePartialCommit = ctx.Bool(ForcePartialCommitFlag.Name) cfg.Sync.UseSnapshots = ethconfig.UseSnapshotsByChainName(ctx.String(ChainFlag.Name)) if ctx.IsSet(SnapshotFlag.Name) { //force override default by cli @@ -1490,11 +1632,16 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C } logger.Info("torrent verbosity", "level", lvl.LogString()) version := "erigon: " + params.VersionWithCommit(params.GitCommit) - cfg.Downloader, err = downloadercfg2.New(cfg.Dirs.Snap, version, lvl, downloadRate, uploadRate, ctx.Int(TorrentPortFlag.Name), ctx.Int(TorrentConnsPerFileFlag.Name), ctx.Int(TorrentDownloadSlotsFlag.Name), ctx.StringSlice(TorrentDownloadSlotsFlag.Name)) + chain := ctx.String(ChainFlag.Name) + webseedsList := libcommon.CliString2Array(ctx.String(WebSeedsFlag.Name)) + if known, ok := snapcfg.KnownWebseeds[chain]; ok { + webseedsList = append(webseedsList, known...) + } + cfg.Downloader, err = downloadercfg2.New(cfg.Dirs, version, lvl, downloadRate, uploadRate, ctx.Int(TorrentPortFlag.Name), ctx.Int(TorrentConnsPerFileFlag.Name), ctx.Int(TorrentDownloadSlotsFlag.Name), ctx.StringSlice(TorrentDownloadSlotsFlag.Name), webseedsList, chain) if err != nil { panic(err) } - downloadernat.DoNat(nodeConfig.P2P.NAT, cfg.Downloader, logger) + downloadernat.DoNat(nodeConfig.P2P.NAT, cfg.Downloader.ClientConfig, logger) } nodeConfig.Http.Snap = cfg.Snapshot @@ -1506,8 +1653,8 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C setEtherbase(ctx, cfg) setGPO(ctx, &cfg.GPO) - setTxPool(ctx, &cfg.DeprecatedTxPool) - cfg.TxPool = ethconfig.DefaultTxPool2Config(cfg.DeprecatedTxPool) + setTxPool(ctx, cfg) + cfg.TxPool = ethconfig.DefaultTxPool2Config(cfg) cfg.TxPool.DBDir = nodeConfig.Dirs.TxPool setEthash(ctx, nodeConfig.Dirs.DataDir, cfg) @@ -1515,9 +1662,11 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C setMiner(ctx, &cfg.Miner) setWhitelist(ctx, cfg) setBorConfig(ctx, cfg) + setSilkworm(ctx, cfg) + setBeaconAPI(ctx, cfg) + setCaplin(ctx, cfg) cfg.Ethstats = ctx.String(EthStatsURLFlag.Name) - cfg.P2PEnabled = len(nodeConfig.P2P.SentryAddr) == 0 cfg.HistoryV3 = ctx.Bool(HistoryV3Flag.Name) if ctx.IsSet(NetworkIdFlag.Name) { cfg.NetworkID = ctx.Uint64(NetworkIdFlag.Name) @@ -1541,7 +1690,7 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C if urls == "" { cfg.EthDiscoveryURLs = []string{} } else { - cfg.EthDiscoveryURLs = SplitAndTrim(urls) + cfg.EthDiscoveryURLs = libcommon.CliString2Array(urls) } } // Override any default configs for hard coded networks. @@ -1566,7 +1715,7 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C } case networkname.DevChainName: if !ctx.IsSet(NetworkIdFlag.Name) { - cfg.NetworkID = 1337 + cfg.NetworkID = params.NetworkIDByChainName(chain) } // Create new developer account or reuse existing one @@ -1589,17 +1738,17 @@ func SetEthConfig(ctx *cli.Context, nodeConfig *nodecfg.Config, cfg *ethconfig.C cfg.TxPool.OverrideCancunTime = cfg.OverrideCancunTime } - if ctx.IsSet(InternalConsensusFlag.Name) && clparams.EmbeddedEnabledByDefault(cfg.NetworkID) { + if ctx.IsSet(InternalConsensusFlag.Name) && clparams.EmbeddedSupported(cfg.NetworkID) { cfg.InternalCL = ctx.Bool(InternalConsensusFlag.Name) } - if ctx.IsSet(SentryDropUselessPeers.Name) { - cfg.DropUselessPeers = ctx.Bool(SentryDropUselessPeers.Name) - } - if ctx.IsSet(TrustedSetupFile.Name) { libkzg.SetTrustedSetupFilePath(ctx.String(TrustedSetupFile.Name)) } + + if ctx.IsSet(TxPoolGossipDisableFlag.Name) { + cfg.DisableTxPoolGossip = ctx.Bool(TxPoolGossipDisableFlag.Name) + } } // SetDNSDiscoveryDefaults configures DNS discovery with the given URL if @@ -1615,7 +1764,7 @@ func SetDNSDiscoveryDefaults(cfg *ethconfig.Config, genesis libcommon.Hash) { } func SplitTagsFlag(tagsFlag string) map[string]string { - tags := SplitAndTrim(tagsFlag) + tags := libcommon.CliString2Array(tagsFlag) tagsMap := map[string]string{} for _, t := range tags { @@ -1631,17 +1780,6 @@ func SplitTagsFlag(tagsFlag string) map[string]string { return tagsMap } -// MakeConsolePreloads retrieves the absolute paths for the console JavaScript -// scripts to preload before starting. -func MakeConsolePreloads(ctx *cli.Context) []string { - // Skip preloading if there's nothing to preload - if ctx.String(PreloadJSFlag.Name) == "" { - return nil - } - // Otherwise resolve absolute paths and return them - return SplitAndTrim(ctx.String(PreloadJSFlag.Name)) -} - func CobraFlags(cmd *cobra.Command, urfaveCliFlagsLists ...[]cli.Flag) { flags := cmd.PersistentFlags() for _, urfaveCliFlags := range urfaveCliFlagsLists { diff --git a/cmd/utils/flags/flags.go b/cmd/utils/flags/flags.go index 58887f9f8e3..be0a8a396b7 100644 --- a/cmd/utils/flags/flags.go +++ b/cmd/utils/flags/flags.go @@ -305,6 +305,10 @@ func (b *bigValue) Set(s string) error { return nil } +func (b *bigValue) Get() any { + return b.String() +} + // GlobalBig returns the value of a BigFlag from the global flag set. func GlobalBig(ctx *cli.Context, name string) *big.Int { val := ctx.Generic(name) diff --git a/cmd/verkle/main.go b/cmd/verkle/main.go index 1a9bc20b4f4..f6d349168d9 100644 --- a/cmd/verkle/main.go +++ b/cmd/verkle/main.go @@ -8,6 +8,8 @@ import ( "os" "time" + "github.com/ledgerwatch/erigon/cl/utils" + "github.com/c2h5oh/datasize" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/etl" @@ -16,7 +18,6 @@ import ( "github.com/ledgerwatch/log/v3" "go.uber.org/zap/buffer" - "github.com/ledgerwatch/erigon/cl/utils" "github.com/ledgerwatch/erigon/cmd/verkle/verkletrie" "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" @@ -34,17 +35,17 @@ type optionsCfg struct { const DumpSize = uint64(20000000000) -func IncrementVerkleTree(cfg optionsCfg, logger log.Logger) error { +func IncrementVerkleTree(ctx context.Context, cfg optionsCfg, logger log.Logger) error { start := time.Now() - db, err := mdbx.Open(cfg.stateDb, log.Root(), true) + db, err := openDB(ctx, cfg.stateDb, log.Root(), true) if err != nil { logger.Error("Error while opening database", "err", err.Error()) return err } defer db.Close() - vDb, err := mdbx.Open(cfg.verkleDb, log.Root(), false) + vDb, err := openDB(ctx, cfg.verkleDb, log.Root(), false) if err != nil { logger.Error("Error while opening db transaction", "err", err.Error()) return err @@ -74,10 +75,10 @@ func IncrementVerkleTree(cfg optionsCfg, logger log.Logger) error { } verkleWriter := verkletrie.NewVerkleTreeWriter(vTx, cfg.tmpdir, logger) defer verkleWriter.Close() - if err := verkletrie.IncrementAccount(vTx, tx, uint64(cfg.workersCount), verkleWriter, from, to); err != nil { + if err := verkletrie.IncrementAccount(vTx, tx, uint64(cfg.workersCount), verkleWriter, from, to, cfg.tmpdir); err != nil { return err } - if _, err := verkletrie.IncrementStorage(vTx, tx, uint64(cfg.workersCount), verkleWriter, from, to); err != nil { + if _, err := verkletrie.IncrementStorage(vTx, tx, uint64(cfg.workersCount), verkleWriter, from, to, cfg.tmpdir); err != nil { return err } if err := stages.SaveStageProgress(vTx, stages.VerkleTrie, to); err != nil { @@ -88,15 +89,15 @@ func IncrementVerkleTree(cfg optionsCfg, logger log.Logger) error { return vTx.Commit() } -func RegeneratePedersenHashstate(cfg optionsCfg, logger log.Logger) error { - db, err := mdbx.Open(cfg.stateDb, log.Root(), true) +func RegeneratePedersenHashstate(ctx context.Context, cfg optionsCfg, logger log.Logger) error { + db, err := openDB(ctx, cfg.stateDb, log.Root(), true) if err != nil { logger.Error("Error while opening database", "err", err.Error()) return err } defer db.Close() - vDb, err := mdbx.Open(cfg.stateDb, log.Root(), false) + vDb, err := openDB(ctx, cfg.stateDb, log.Root(), false) if err != nil { logger.Error("Error while opening db transaction", "err", err.Error()) return err @@ -130,16 +131,16 @@ func RegeneratePedersenHashstate(cfg optionsCfg, logger log.Logger) error { return vTx.Commit() } -func GenerateVerkleTree(cfg optionsCfg, logger log.Logger) error { +func GenerateVerkleTree(ctx context.Context, cfg optionsCfg, logger log.Logger) error { start := time.Now() - db, err := mdbx.Open(cfg.stateDb, log.Root(), true) + db, err := openDB(ctx, cfg.stateDb, log.Root(), true) if err != nil { logger.Error("Error while opening database", "err", err.Error()) return err } defer db.Close() - vDb, err := mdbx.Open(cfg.verkleDb, log.Root(), false) + vDb, err := openDB(ctx, cfg.verkleDb, log.Root(), false) if err != nil { logger.Error("Error while opening db transaction", "err", err.Error()) return err @@ -191,8 +192,8 @@ func GenerateVerkleTree(cfg optionsCfg, logger log.Logger) error { return vTx.Commit() } -func analyseOut(cfg optionsCfg, logger log.Logger) error { - db, err := mdbx.Open(cfg.verkleDb, logger, false) +func analyseOut(ctx context.Context, cfg optionsCfg, logger log.Logger) error { + db, err := openDB(ctx, cfg.verkleDb, logger, false) if err != nil { return err } @@ -218,8 +219,8 @@ func analyseOut(cfg optionsCfg, logger log.Logger) error { return nil } -func dump(cfg optionsCfg) error { - db, err := mdbx.Open(cfg.verkleDb, log.Root(), false) +func dump(ctx context.Context, cfg optionsCfg) error { + db, err := openDB(ctx, cfg.verkleDb, log.Root(), false) if err != nil { return err } @@ -285,8 +286,8 @@ func dump(cfg optionsCfg) error { return nil } -func dump_acc_preimages(cfg optionsCfg) error { - db, err := mdbx.Open(cfg.stateDb, log.Root(), false) +func dump_acc_preimages(ctx context.Context, cfg optionsCfg) error { + db, err := openDB(ctx, cfg.stateDb, log.Root(), false) if err != nil { return err } @@ -323,7 +324,7 @@ func dump_acc_preimages(cfg optionsCfg) error { if _, err := file.Write(k); err != nil { return err } - addressHash := utils.Keccak256(k) + addressHash := utils.Sha256(k) if _, err := file.Write(addressHash[:]); err != nil { return err @@ -339,8 +340,8 @@ func dump_acc_preimages(cfg optionsCfg) error { return nil } -func dump_storage_preimages(cfg optionsCfg, logger log.Logger) error { - db, err := mdbx.Open(cfg.stateDb, logger, false) +func dump_storage_preimages(ctx context.Context, cfg optionsCfg, logger log.Logger) error { + db, err := openDB(ctx, cfg.stateDb, logger, false) if err != nil { return err } @@ -389,7 +390,7 @@ func dump_storage_preimages(cfg optionsCfg, logger log.Logger) error { } currentAddress = libcommon.BytesToAddress(k) currentIncarnation = acc.Incarnation - addressHash = utils.Keccak256(currentAddress[:]) + addressHash = utils.Sha256(currentAddress[:]) } else { address := libcommon.BytesToAddress(k[:20]) if address != currentAddress { @@ -398,7 +399,7 @@ func dump_storage_preimages(cfg optionsCfg, logger log.Logger) error { if binary.BigEndian.Uint64(k[20:]) != currentIncarnation { continue } - storageHash := utils.Keccak256(k[28:]) + storageHash := utils.Sha256(k[28:]) buf.Write(k[28:]) buf.Write(storageHash[:]) } @@ -443,35 +444,50 @@ func main() { } switch *action { case "hashstate": - if err := RegeneratePedersenHashstate(opt, logger); err != nil { + if err := RegeneratePedersenHashstate(ctx, opt, logger); err != nil { logger.Error("Error", "err", err.Error()) } case "bucketsizes": - if err := analyseOut(opt, logger); err != nil { + if err := analyseOut(ctx, opt, logger); err != nil { logger.Error("Error", "err", err.Error()) } case "verkle": - if err := GenerateVerkleTree(opt, logger); err != nil { + if err := GenerateVerkleTree(ctx, opt, logger); err != nil { logger.Error("Error", "err", err.Error()) } case "incremental": - if err := IncrementVerkleTree(opt, logger); err != nil { + if err := IncrementVerkleTree(ctx, opt, logger); err != nil { logger.Error("Error", "err", err.Error()) } case "dump": log.Info("Dumping in dump.txt") - if err := dump(opt); err != nil { + if err := dump(ctx, opt); err != nil { log.Error("Error", "err", err.Error()) } case "acc_preimages": - if err := dump_acc_preimages(opt); err != nil { + if err := dump_acc_preimages(ctx, opt); err != nil { logger.Error("Error", "err", err.Error()) } case "storage_preimages": - if err := dump_storage_preimages(opt, logger); err != nil { + if err := dump_storage_preimages(ctx, opt, logger); err != nil { logger.Error("Error", "err", err.Error()) } default: log.Warn("No valid --action specified, aborting") } } + +func openDB(ctx context.Context, path string, logger log.Logger, accede bool) (kv.RwDB, error) { + var db kv.RwDB + var err error + opts := mdbx.NewMDBX(logger).Path(path) + if accede { + opts = opts.Accede() + } + db, err = opts.Open(ctx) + + if err != nil { + return nil, err + } + return db, nil +} diff --git a/cmd/verkle/verkletrie/incrementAccount.go b/cmd/verkle/verkletrie/incrementAccount.go index b626e7cb91e..e8555217e0a 100644 --- a/cmd/verkle/verkletrie/incrementAccount.go +++ b/cmd/verkle/verkletrie/incrementAccount.go @@ -16,7 +16,7 @@ import ( "github.com/ledgerwatch/erigon/core/types/accounts" ) -func IncrementAccount(vTx kv.RwTx, tx kv.Tx, workers uint64, verkleWriter *VerkleTreeWriter, from, to uint64) error { +func IncrementAccount(vTx kv.RwTx, tx kv.Tx, workers uint64, verkleWriter *VerkleTreeWriter, from, to uint64, tmpdir string) error { logInterval := time.NewTicker(30 * time.Second) logPrefix := "IncrementVerkleAccount" @@ -59,7 +59,7 @@ func IncrementAccount(vTx kv.RwTx, tx kv.Tx, workers uint64, verkleWriter *Verkl } } }() - marker := NewVerkleMarker() + marker := NewVerkleMarker(tmpdir) defer marker.Rollback() for k, v, err := accountCursor.Seek(hexutility.EncodeTs(from)); k != nil; k, v, err = accountCursor.Next() { diff --git a/cmd/verkle/verkletrie/incrementStorage.go b/cmd/verkle/verkletrie/incrementStorage.go index 14773c81938..72ee83177c9 100644 --- a/cmd/verkle/verkletrie/incrementStorage.go +++ b/cmd/verkle/verkletrie/incrementStorage.go @@ -17,7 +17,7 @@ import ( "github.com/ledgerwatch/erigon/core/rawdb" ) -func IncrementStorage(vTx kv.RwTx, tx kv.Tx, workers uint64, verkleWriter *VerkleTreeWriter, from, to uint64) (libcommon.Hash, error) { +func IncrementStorage(vTx kv.RwTx, tx kv.Tx, workers uint64, verkleWriter *VerkleTreeWriter, from, to uint64, tmpdir string) (libcommon.Hash, error) { logInterval := time.NewTicker(30 * time.Second) logPrefix := "IncrementVerkleStorage" @@ -50,7 +50,7 @@ func IncrementStorage(vTx kv.RwTx, tx kv.Tx, workers uint64, verkleWriter *Verkl } } }() - marker := NewVerkleMarker() + marker := NewVerkleMarker(tmpdir) defer marker.Rollback() for k, v, err := storageCursor.Seek(hexutility.EncodeTs(from)); k != nil; k, v, err = storageCursor.Next() { diff --git a/cmd/verkle/verkletrie/pedersen_hashstate.go b/cmd/verkle/verkletrie/pedersen_hashstate.go index f04561e4017..a56a15ac75b 100644 --- a/cmd/verkle/verkletrie/pedersen_hashstate.go +++ b/cmd/verkle/verkletrie/pedersen_hashstate.go @@ -234,7 +234,7 @@ func RegeneratePedersenCode(outTx kv.RwTx, readTx kv.Tx, workers uint64, verkleW jobs <- ®eneratePedersenCodeJob{ address: libcommon.BytesToAddress(k), - code: common.CopyBytes(code), + code: libcommon.CopyBytes(code), } select { case <-logInterval.C: diff --git a/cmd/verkle/verkletrie/verkle_marker.go b/cmd/verkle/verkletrie/verkle_marker.go index 86c6d4afc6d..a979623fefc 100644 --- a/cmd/verkle/verkletrie/verkle_marker.go +++ b/cmd/verkle/verkletrie/verkle_marker.go @@ -13,8 +13,8 @@ type VerkleMarker struct { } //nolint:gocritic -func NewVerkleMarker() *VerkleMarker { - markedSlotsDb, err := mdbx.NewTemporaryMdbx() +func NewVerkleMarker(tempdir string) *VerkleMarker { + markedSlotsDb, err := mdbx.NewTemporaryMdbx(context.TODO(), tempdir) if err != nil { panic(err) } diff --git a/cmd/verkle/verkletrie/verkle_tree_writer.go b/cmd/verkle/verkletrie/verkle_tree_writer.go index 08f1acaa282..cd7cde8024a 100644 --- a/cmd/verkle/verkletrie/verkle_tree_writer.go +++ b/cmd/verkle/verkletrie/verkle_tree_writer.go @@ -198,7 +198,7 @@ func (v *VerkleTreeWriter) CommitVerkleTreeFromScratch() (libcommon.Hash, error) if len(val) == 0 { return next(k, nil, nil) } - if err := root.InsertOrdered(common.CopyBytes(k), common.CopyBytes(val), func(node verkle.VerkleNode) { + if err := root.InsertOrdered(libcommon.CopyBytes(k), libcommon.CopyBytes(val), func(node verkle.VerkleNode) { rootHash := node.Commitment().Bytes() encodedNode, err := node.Serialize() if err != nil { @@ -256,7 +256,7 @@ func (v *VerkleTreeWriter) CommitVerkleTree(root libcommon.Hash) (libcommon.Hash logInterval := time.NewTicker(30 * time.Second) if err := v.collector.Load(v.db, kv.VerkleTrie, func(key []byte, value []byte, _ etl.CurrentTableReader, next etl.LoadNextFunc) error { if len(value) > 0 { - if err := rootNode.Insert(common.CopyBytes(key), common.CopyBytes(value), resolverFunc); err != nil { + if err := rootNode.Insert(libcommon.CopyBytes(key), libcommon.CopyBytes(value), resolverFunc); err != nil { return err } insertions++ diff --git a/cmd/verkle/verkletrie/workers.go b/cmd/verkle/verkletrie/workers.go index 5b3695ba6d5..6be189ae1f6 100644 --- a/cmd/verkle/verkletrie/workers.go +++ b/cmd/verkle/verkletrie/workers.go @@ -6,7 +6,6 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/trie/vtree" ) @@ -149,16 +148,16 @@ func pedersenCodeWorker(ctx context.Context, logPrefix string, in chan *regenera currentKey := vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(0)) // Write code chunks for i := 0; i < len(chunkedCode); i += 32 { - chunks = append(chunks, common.CopyBytes(chunkedCode[i:i+32])) + chunks = append(chunks, libcommon.CopyBytes(chunkedCode[i:i+32])) if currentKey[31]+offset < currentKey[31] || offsetOverflow { currentKey = vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(uint64(i)/32)) - chunkKeys = append(chunkKeys, common.CopyBytes(currentKey)) + chunkKeys = append(chunkKeys, libcommon.CopyBytes(currentKey)) offset = 1 offsetOverflow = false } else { - codeKey := common.CopyBytes(currentKey) + codeKey := libcommon.CopyBytes(currentKey) codeKey[31] += offset - chunkKeys = append(chunkKeys, common.CopyBytes(codeKey)) + chunkKeys = append(chunkKeys, libcommon.CopyBytes(codeKey)) offset += 1 // If offset overflows, handle it. offsetOverflow = offset == 0 @@ -207,8 +206,8 @@ func incrementalAccountWorker(ctx context.Context, logPrefix string, in chan *re currentKey := vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(0)) // Write code chunks for i := 0; i < len(chunkedCode); i += 32 { - chunks = append(chunks, common.CopyBytes(chunkedCode[i:i+32])) - codeKey := common.CopyBytes(currentKey) + chunks = append(chunks, libcommon.CopyBytes(chunkedCode[i:i+32])) + codeKey := libcommon.CopyBytes(currentKey) if currentKey[31]+offset < currentKey[31] || offsetOverflow { currentKey = vtree.GetTreeKeyCodeChunk(job.address[:], uint256.NewInt(uint64(i)/32)) chunkKeys = append(chunkKeys, codeKey) diff --git a/common/bitutil/compress_test.go b/common/bitutil/compress_test.go index d797498ca3a..ab4bd7ebb74 100644 --- a/common/bitutil/compress_test.go +++ b/common/bitutil/compress_test.go @@ -18,12 +18,11 @@ package bitutil import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/rand" "testing" "github.com/ledgerwatch/log/v3" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // Tests that data bitset encoding and decoding works and is bijective. diff --git a/common/bytes.go b/common/bytes.go index 1c7662af796..728ccd0fe23 100644 --- a/common/bytes.go +++ b/common/bytes.go @@ -20,6 +20,7 @@ package common import ( "bytes" "encoding/hex" + "github.com/ledgerwatch/erigon-lib/common" ) // FromHex returns the bytes represented by the hexadecimal string s. @@ -31,18 +32,7 @@ func FromHex(s string) []byte { if len(s)%2 == 1 { s = "0" + s } - return Hex2Bytes(s) -} - -// CopyBytes returns an exact copy of the provided bytes. -func CopyBytes(b []byte) (copiedBytes []byte) { - if b == nil { - return nil - } - copiedBytes = make([]byte, len(b)) - copy(copiedBytes, b) - - return + return common.Hex2Bytes(s) } // has0xPrefix validates str begins with '0x' or '0X'. @@ -85,12 +75,6 @@ func RightPadBytes(slice []byte, l int) []byte { return padded } -// Hex2Bytes returns the bytes represented by the hexadecimal string str. -func Hex2Bytes(str string) []byte { - h, _ := hex.DecodeString(str) - return h -} - // LeftPadBytes zero-pads slice to the left up to length l. func LeftPadBytes(slice []byte, l int) []byte { if l <= len(slice) { diff --git a/common/bytes_test.go b/common/bytes_test.go index 0e3ec974ee4..723f23fa79c 100644 --- a/common/bytes_test.go +++ b/common/bytes_test.go @@ -18,13 +18,14 @@ package common import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common" "testing" ) func TestCopyBytes(t *testing.T) { input := []byte{1, 2, 3, 4} - v := CopyBytes(input) + v := common.CopyBytes(input) if !bytes.Equal(v, []byte{1, 2, 3, 4}) { t.Fatal("not equal after copy") } diff --git a/common/changeset/storage_changeset_test.go b/common/changeset/storage_changeset_test.go index 02a5966a1eb..bed671ebbc5 100644 --- a/common/changeset/storage_changeset_test.go +++ b/common/changeset/storage_changeset_test.go @@ -3,6 +3,7 @@ package changeset import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/rand" "reflect" "strconv" @@ -16,7 +17,6 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" ) const ( @@ -30,7 +30,7 @@ func getDefaultIncarnation() uint64 { return defaultIncarnation } func getRandomIncarnation() uint64 { return rand.Uint64() } func hashValueGenerator(j int) []byte { - val, _ := common.HashData([]byte("val" + strconv.Itoa(j))) + val, _ := libcommon.HashData([]byte("val" + strconv.Itoa(j))) return val.Bytes() } @@ -40,7 +40,7 @@ func emptyValueGenerator(j int) []byte { func getTestDataAtIndex(i, j int, inc uint64) []byte { address := libcommon.HexToAddress(fmt.Sprintf("0xBe828AD8B538D1D691891F6c725dEdc5989abBc%d", i)) - key, _ := common.HashData([]byte("key" + strconv.Itoa(j))) + key, _ := libcommon.HashData([]byte("key" + strconv.Itoa(j))) return dbutils.PlainGenerateCompositeStorageKey(address.Bytes(), inc, key.Bytes()) } @@ -317,8 +317,8 @@ func BenchmarkDecodeNewStorage(t *testing.B) { var err error for i := 0; i < numOfElements; i++ { address := []byte("0xa4e69cebbf4f8f3a1c6e493a6983d8a5879d22057a7c73b00e105d7c7e21ef" + strconv.Itoa(i)) - key, _ := common.HashData([]byte("key" + strconv.Itoa(i))) - val, _ := common.HashData([]byte("val" + strconv.Itoa(i))) + key, _ := libcommon.HashData([]byte("key" + strconv.Itoa(i))) + val, _ := libcommon.HashData([]byte("val" + strconv.Itoa(i))) err = ch.Add(dbutils.PlainGenerateCompositeStorageKey(address, rand.Uint64(), key[:]), val.Bytes()) if err != nil { t.Fatal(err) @@ -347,8 +347,8 @@ func BenchmarkEncodeNewStorage(t *testing.B) { var err error for i := 0; i < numOfElements; i++ { address := []byte("0xa4e69cebbf4f8f3a1c6e493a6983d8a5879d22057a7c73b00e105d7c7e21ef" + strconv.Itoa(i)) - key, _ := common.HashData([]byte("key" + strconv.Itoa(i))) - val, _ := common.HashData([]byte("val" + strconv.Itoa(i))) + key, _ := libcommon.HashData([]byte("key" + strconv.Itoa(i))) + val, _ := libcommon.HashData([]byte("val" + strconv.Itoa(i))) err = ch.Add(dbutils.PlainGenerateCompositeStorageKey(address, rand.Uint64(), key[:]), val.Bytes()) if err != nil { t.Fatal(err) diff --git a/common/hexutil/json_example_test.go b/common/hexutil/json_example_test.go deleted file mode 100644 index c256b412e39..00000000000 --- a/common/hexutil/json_example_test.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package hexutil_test - -import ( - "encoding/json" - "fmt" - - "github.com/ledgerwatch/erigon-lib/common/hexutility" -) - -type MyType [5]byte - -func (v *MyType) UnmarshalText(input []byte) error { - return hexutility.UnmarshalFixedText("MyType", input, v[:]) -} - -func (v MyType) String() string { - return hexutility.Bytes(v[:]).String() -} - -func ExampleUnmarshalFixedText() { - var v1, v2 MyType - fmt.Println("v1 error:", json.Unmarshal([]byte(`"0x01"`), &v1)) - fmt.Println("v2 error:", json.Unmarshal([]byte(`"0x0101010101"`), &v2)) - fmt.Println("v2:", v2) - // Output: - // v1 error: hex string has length 2, want 10 for MyType - // v2 error: - // v2: 0x0101010101 -} diff --git a/common/math/big_test.go b/common/math/big_test.go index c01863024ab..5ef9e13d3ba 100644 --- a/common/math/big_test.go +++ b/common/math/big_test.go @@ -19,10 +19,9 @@ package math import ( "bytes" "encoding/hex" + "github.com/ledgerwatch/erigon-lib/common" "math/big" "testing" - - "github.com/ledgerwatch/erigon/common" ) func TestHexOrDecimal256(t *testing.T) { diff --git a/common/paths/paths.go b/common/paths/paths.go index 67a4810fcf0..5b2bd1f69be 100644 --- a/common/paths/paths.go +++ b/common/paths/paths.go @@ -7,7 +7,7 @@ import ( "runtime" "strings" - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/log/v3" ) @@ -82,10 +82,14 @@ func DataDirForNetwork(datadir string, network string) string { switch network { case networkname.DevChainName: return "" // unless explicitly requested, use memory databases + case networkname.HoleskyChainName: + return networkDataDirCheckingLegacy(datadir, "holesky") case networkname.GoerliChainName: return networkDataDirCheckingLegacy(datadir, "goerli") case networkname.MumbaiChainName: return networkDataDirCheckingLegacy(datadir, "mumbai") + case networkname.AmoyChainName: + return networkDataDirCheckingLegacy(datadir, "amoy") case networkname.BorMainnetChainName: return networkDataDirCheckingLegacy(datadir, "bor-mainnet") case networkname.BorDevnetChainName: diff --git a/common/sorted.go b/common/sorted.go deleted file mode 100644 index fb2e665971f..00000000000 --- a/common/sorted.go +++ /dev/null @@ -1,27 +0,0 @@ -package common - -import ( - "golang.org/x/exp/constraints" - "golang.org/x/exp/slices" -) - -func SortedKeys[K constraints.Ordered, V any](m map[K]V) []K { - keys := make([]K, len(m)) - i := 0 - for k := range m { - keys[i] = k - i++ - } - slices.Sort(keys) - return keys -} - -func RemoveDuplicatesFromSorted[T constraints.Ordered](slice []T) []T { - for i := 1; i < len(slice); i++ { - if slice[i] == slice[i-1] { - slice = append(slice[:i], slice[i+1:]...) - i-- - } - } - return slice -} diff --git a/common/types.go b/common/types.go index e296ed887de..21d58434ccd 100644 --- a/common/types.go +++ b/common/types.go @@ -22,14 +22,13 @@ import ( "encoding/json" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "strings" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/common/length" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // Lengths of hashes and addresses in bytes. diff --git a/consensus/aura/aura.go b/consensus/aura/aura.go index 3f298eb8e31..e4dd33313d8 100644 --- a/consensus/aura/aura.go +++ b/consensus/aura/aura.go @@ -31,7 +31,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/clique" "github.com/ledgerwatch/erigon/consensus/ethash" @@ -267,7 +266,7 @@ func NewAuRa(spec *chain.AuRaConfig, db kv.RwDB) (*AuRa, error) { StepDuration: auraParams.StepDurations[0], } durations = append(durations, durInfo) - times := common.SortedKeys(auraParams.StepDurations) + times := libcommon.SortedKeys(auraParams.StepDurations) for i := 1; i < len(auraParams.StepDurations); i++ { // skip first time := times[i] dur := auraParams.StepDurations[time] @@ -631,7 +630,9 @@ func (c *AuRa) Prepare(chain consensus.ChainHeaderReader, header *types.Header, //return nil } -func (c *AuRa) Initialize(config *chain.Config, chain consensus.ChainHeaderReader, header *types.Header, state *state.IntraBlockState, txs []types.Transaction, uncles []*types.Header, syscallCustom consensus.SysCallCustom) { +func (c *AuRa) Initialize(config *chain.Config, chain consensus.ChainHeaderReader, header *types.Header, + state *state.IntraBlockState, syscallCustom consensus.SysCallCustom, logger log.Logger, +) { blockNum := header.Number.Uint64() //Check block gas limit from smart contract, if applicable @@ -669,7 +670,7 @@ func (c *AuRa) Initialize(config *chain.Config, chain consensus.ChainHeaderReade epoch, err := c.e.GetEpoch(header.ParentHash, blockNum-1) if err != nil { - log.Warn("[aura] initialize block: on epoch begin", "err", err) + logger.Warn("[aura] initialize block: on epoch begin", "err", err) return } isEpochBegin := epoch != nil @@ -678,7 +679,7 @@ func (c *AuRa) Initialize(config *chain.Config, chain consensus.ChainHeaderReade } err = c.cfg.Validators.onEpochBegin(isEpochBegin, header, syscall) if err != nil { - log.Warn("[aura] initialize block: on epoch begin", "err", err) + logger.Warn("[aura] initialize block: on epoch begin", "err", err) return } // check_and_lock_block -> check_epoch_end_signal END (before enact) @@ -699,7 +700,7 @@ func (c *AuRa) applyRewards(header *types.Header, state *state.IntraBlockState, // word `signal epoch` == word `pending epoch` func (c *AuRa) Finalize(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, receipts types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, logger log.Logger, ) (types.Transactions, types.Receipts, error) { if err := c.applyRewards(header, state, syscall); err != nil { return nil, nil, err @@ -731,7 +732,7 @@ func (c *AuRa) Finalize(config *chain.Config, header *types.Header, state *state } if epochEndProof != nil { c.EpochManager.noteNewEpoch() - log.Info("[aura] epoch transition", "block_num", header.Number.Uint64()) + logger.Info("[aura] epoch transition", "block_num", header.Number.Uint64()) if err := c.e.PutEpoch(header.Hash(), header.Number.Uint64(), epochEndProof); err != nil { return nil, nil, err } @@ -837,7 +838,7 @@ func allHeadersUntil(chain consensus.ChainHeaderReader, from *types.Header, to l //} // FinalizeAndAssemble implements consensus.Engine -func (c *AuRa) FinalizeAndAssemble(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, receipts types.Receipts, withdrawals []*types.Withdrawal, chain consensus.ChainHeaderReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger) (*types.Block, types.Transactions, types.Receipts, error) { +func (c *AuRa) FinalizeAndAssemble(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, receipts types.Receipts, withdrawals []*types.Withdrawal, chain consensus.ChainReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger) (*types.Block, types.Transactions, types.Receipts, error) { outTxs, outReceipts, err := c.Finalize(config, header, state, txs, uncles, receipts, withdrawals, chain, syscall, logger) if err != nil { return nil, nil, nil, err diff --git a/consensus/aura/aura_test.go b/consensus/aura/aura_test.go index 537f36a3d07..1772905f68a 100644 --- a/consensus/aura/aura_test.go +++ b/consensus/aura/aura_test.go @@ -58,7 +58,7 @@ func TestEmptyBlock(t *testing.T) { blocks[0] = block chain := &core.ChainPack{Headers: headers, Blocks: blocks, Receipts: receipts, TopBlock: block} - err = m.InsertChain(chain, nil) + err = m.InsertChain(chain) require.NoError(err) } @@ -105,18 +105,18 @@ func TestAuRaSkipGasLimit(t *testing.T) { return fakeVal, err } require.NotPanics(func() { - m.Engine.Initialize(chainConfig, &core.FakeChainReader{}, validPreMergeHeader, nil, nil, nil, syscallCustom) + m.Engine.Initialize(chainConfig, &core.FakeChainReader{}, validPreMergeHeader, nil, syscallCustom, nil) }) invalidPreMergeHeader := validPreMergeHeader invalidPreMergeHeader.GasLimit = 12_123456 //a different, wrong gasLimit require.Panics(func() { - m.Engine.Initialize(chainConfig, &core.FakeChainReader{}, invalidPreMergeHeader, nil, nil, nil, syscallCustom) + m.Engine.Initialize(chainConfig, &core.FakeChainReader{}, invalidPreMergeHeader, nil, syscallCustom, nil) }) invalidPostMergeHeader := invalidPreMergeHeader invalidPostMergeHeader.Difficulty = big.NewInt(0) //zero difficulty detected as PoS require.NotPanics(func() { - m.Engine.Initialize(chainConfig, &core.FakeChainReader{}, invalidPostMergeHeader, nil, nil, nil, syscallCustom) + m.Engine.Initialize(chainConfig, &core.FakeChainReader{}, invalidPostMergeHeader, nil, syscallCustom, nil) }) } diff --git a/consensus/aura/contract_abi.go b/consensus/aura/contract_abi.go index 7f806f515d8..4fff77a2df3 100644 --- a/consensus/aura/contract_abi.go +++ b/consensus/aura/contract_abi.go @@ -9,7 +9,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/accounts/abi" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/aura/contracts" ) @@ -112,7 +111,7 @@ func withdrawalAbi() abi.ABI { } func getCertifier(registrar libcommon.Address, syscall consensus.SystemCall) *libcommon.Address { - hashedKey, err := common.HashData([]byte("service_transaction_checker")) + hashedKey, err := libcommon.HashData([]byte("service_transaction_checker")) if err != nil { panic(err) } diff --git a/consensus/bor/api.go b/consensus/bor/api.go deleted file mode 100644 index bb8c933c12a..00000000000 --- a/consensus/bor/api.go +++ /dev/null @@ -1,301 +0,0 @@ -package bor - -import ( - "encoding/hex" - "math" - "math/big" - "sort" - "strconv" - "sync" - - "github.com/xsleonard/go-merkle" - "golang.org/x/crypto/sha3" - - lru "github.com/hashicorp/golang-lru/arc/v2" - "github.com/ledgerwatch/erigon-lib/common" - - "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/bor/valset" - "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/crypto" - "github.com/ledgerwatch/erigon/rpc" -) - -var ( - // MaxCheckpointLength is the maximum number of blocks that can be requested for constructing a checkpoint root hash - MaxCheckpointLength = uint64(math.Pow(2, 15)) -) - -// API is a user facing RPC API to allow controlling the signer and voting -// mechanisms of the proof-of-authority scheme. -type API struct { - chain consensus.ChainHeaderReader - bor *Bor - rootHashCache *lru.ARCCache[string, string] -} - -// GetSnapshot retrieves the state snapshot at a given block. -func (api *API) GetSnapshot(number *rpc.BlockNumber) (*Snapshot, error) { - // Retrieve the requested block number (or current if none requested) - var header *types.Header - if number == nil || *number == rpc.LatestBlockNumber { - header = api.chain.CurrentHeader() - } else { - header = api.chain.GetHeaderByNumber(uint64(number.Int64())) - } - // Ensure we have an actually valid block and return its snapshot - if header == nil { - return nil, errUnknownBlock - } - - return api.bor.snapshot(api.chain, header.Number.Uint64(), header.Hash(), nil) -} - -type BlockSigners struct { - Signers []difficultiesKV - Diff int - Author common.Address -} - -type difficultiesKV struct { - Signer common.Address - Difficulty uint64 -} - -func rankMapDifficulties(values map[common.Address]uint64) []difficultiesKV { - ss := make([]difficultiesKV, 0, len(values)) - for k, v := range values { - ss = append(ss, difficultiesKV{k, v}) - } - - sort.Slice(ss, func(i, j int) bool { - return ss[i].Difficulty > ss[j].Difficulty - }) - - return ss -} - -// GetSnapshotProposerSequence retrieves the in-turn signers of all sprints in a span -func (api *API) GetSnapshotProposerSequence(number *rpc.BlockNumber) (BlockSigners, error) { - snapNumber := *number - 1 - - var difficulties = make(map[common.Address]uint64) - - snap, err := api.GetSnapshot(&snapNumber) - - if err != nil { - return BlockSigners{}, err - } - - proposer := snap.ValidatorSet.GetProposer().Address - proposerIndex, _ := snap.ValidatorSet.GetByAddress(proposer) - - signers := snap.signers() - for i := 0; i < len(signers); i++ { - tempIndex := i - if tempIndex < proposerIndex { - tempIndex = tempIndex + len(signers) - } - - difficulties[signers[i]] = uint64(len(signers) - (tempIndex - proposerIndex)) - } - - rankedDifficulties := rankMapDifficulties(difficulties) - - author, err := api.GetAuthor(number) - if err != nil { - return BlockSigners{}, err - } - - diff := int(difficulties[*author]) - blockSigners := &BlockSigners{ - Signers: rankedDifficulties, - Diff: diff, - Author: *author, - } - - return *blockSigners, nil -} - -// GetSnapshotProposer retrieves the in-turn signer at a given block. -func (api *API) GetSnapshotProposer(number *rpc.BlockNumber) (common.Address, error) { - *number -= 1 - snap, err := api.GetSnapshot(number) - - if err != nil { - return common.Address{}, err - } - - return snap.ValidatorSet.GetProposer().Address, nil -} - -// GetAuthor retrieves the author a block. -func (api *API) GetAuthor(number *rpc.BlockNumber) (*common.Address, error) { - // Retrieve the requested block number (or current if none requested) - var header *types.Header - if number == nil || *number == rpc.LatestBlockNumber { - header = api.chain.CurrentHeader() - } else { - header = api.chain.GetHeaderByNumber(uint64(number.Int64())) - } - // Ensure we have an actually valid block and return its snapshot - if header == nil { - return nil, errUnknownBlock - } - - author, err := api.bor.Author(header) - - return &author, err -} - -// GetSnapshotAtHash retrieves the state snapshot at a given block. -func (api *API) GetSnapshotAtHash(hash common.Hash) (*Snapshot, error) { - header := api.chain.GetHeaderByHash(hash) - if header == nil { - return nil, errUnknownBlock - } - - return api.bor.snapshot(api.chain, header.Number.Uint64(), header.Hash(), nil) -} - -// GetSigners retrieves the list of authorized signers at the specified block. -func (api *API) GetSigners(number *rpc.BlockNumber) ([]common.Address, error) { - // Retrieve the requested block number (or current if none requested) - var header *types.Header - if number == nil || *number == rpc.LatestBlockNumber { - header = api.chain.CurrentHeader() - } else { - header = api.chain.GetHeaderByNumber(uint64(number.Int64())) - } - // Ensure we have an actually valid block and return the signers from its snapshot - if header == nil { - return nil, errUnknownBlock - } - - snap, err := api.bor.snapshot(api.chain, header.Number.Uint64(), header.Hash(), nil) - - if err != nil { - return nil, err - } - - return snap.signers(), nil -} - -// GetSignersAtHash retrieves the list of authorized signers at the specified block. -func (api *API) GetSignersAtHash(hash common.Hash) ([]common.Address, error) { - header := api.chain.GetHeaderByHash(hash) - if header == nil { - return nil, errUnknownBlock - } - - snap, err := api.bor.snapshot(api.chain, header.Number.Uint64(), header.Hash(), nil) - - if err != nil { - return nil, err - } - - return snap.signers(), nil -} - -// GetCurrentProposer gets the current proposer -func (api *API) GetCurrentProposer() (common.Address, error) { - snap, err := api.GetSnapshot(nil) - if err != nil { - return common.Address{}, err - } - - return snap.ValidatorSet.GetProposer().Address, nil -} - -// GetCurrentValidators gets the current validators -func (api *API) GetCurrentValidators() ([]*valset.Validator, error) { - snap, err := api.GetSnapshot(nil) - if err != nil { - return make([]*valset.Validator, 0), err - } - - return snap.ValidatorSet.Validators, nil -} - -// GetRootHash returns the merkle root of the start to end block headers -func (api *API) GetRootHash(start uint64, end uint64) (string, error) { - if err := api.initializeRootHashCache(); err != nil { - return "", err - } - - key := getRootHashKey(start, end) - - if root, known := api.rootHashCache.Get(key); known { - return root, nil - } - - length := end - start + 1 - - if length > MaxCheckpointLength { - return "", &MaxCheckpointLengthExceededError{start, end} - } - - currentHeaderNumber := api.chain.CurrentHeader().Number.Uint64() - - if start > end || end > currentHeaderNumber { - return "", &valset.InvalidStartEndBlockError{Start: start, End: end, CurrentHeader: currentHeaderNumber} - } - - blockHeaders := make([]*types.Header, end-start+1) - wg := new(sync.WaitGroup) - concurrent := make(chan bool, 20) - - for i := start; i <= end; i++ { - wg.Add(1) - concurrent <- true - - go func(number uint64) { - blockHeaders[number-start] = api.chain.GetHeaderByNumber(number) - - <-concurrent - wg.Done() - }(i) - } - wg.Wait() - close(concurrent) - - headers := make([][32]byte, NextPowerOfTwo(length)) - - for i := 0; i < len(blockHeaders); i++ { - blockHeader := blockHeaders[i] - header := crypto.Keccak256(AppendBytes32( - blockHeader.Number.Bytes(), - new(big.Int).SetUint64(blockHeader.Time).Bytes(), - blockHeader.TxHash.Bytes(), - blockHeader.ReceiptHash.Bytes(), - )) - - var arr [32]byte - - copy(arr[:], header) - headers[i] = arr - } - - tree := merkle.NewTreeWithOpts(merkle.TreeOptions{EnableHashSorting: false, DisableHashLeaves: true}) - if err := tree.Generate(Convert(headers), sha3.NewLegacyKeccak256()); err != nil { - return "", err - } - - root := hex.EncodeToString(tree.Root().Hash) - api.rootHashCache.Add(key, root) - - return root, nil -} - -func (api *API) initializeRootHashCache() error { - var err error - if api.rootHashCache == nil { - api.rootHashCache, err = lru.NewARC[string, string](10) - } - - return err -} - -func getRootHashKey(start uint64, end uint64) string { - return strconv.FormatUint(start, 10) + "-" + strconv.FormatUint(end, 10) -} diff --git a/consensus/bor/bor.go b/consensus/bor/bor.go index ba5ad331fbf..fe913ed779e 100644 --- a/consensus/bor/bor.go +++ b/consensus/bor/bor.go @@ -3,10 +3,12 @@ package bor import ( "bytes" "context" + "encoding/hex" "encoding/json" "errors" "fmt" "io" + "math" "math/big" "sort" "strconv" @@ -14,9 +16,11 @@ import ( "sync/atomic" "time" - "github.com/google/btree" lru "github.com/hashicorp/golang-lru/arc/v2" "github.com/ledgerwatch/log/v3" + "github.com/xsleonard/go-merkle" + "golang.org/x/crypto/sha3" + "golang.org/x/sync/errgroup" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -25,18 +29,25 @@ import ( "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/bor/clerk" + "github.com/ledgerwatch/erigon/consensus/bor/finality" + "github.com/ledgerwatch/erigon/consensus/bor/finality/flags" + "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall" "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" "github.com/ledgerwatch/erigon/consensus/bor/statefull" "github.com/ledgerwatch/erigon/consensus/bor/valset" "github.com/ledgerwatch/erigon/consensus/misc" + "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/crypto/cryptopool" + "github.com/ledgerwatch/erigon/eth/ethconfig/estimate" + "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/rpc" + "github.com/ledgerwatch/erigon/turbo/services" ) const ( @@ -57,16 +68,15 @@ var ( "0": 64, } // Default number of blocks after which to checkpoint and reset the pending votes - extraVanity = 32 // Fixed number of extra-data prefix bytes reserved for signer vanity - extraSeal = 65 // Fixed number of extra-data suffix bytes reserved for signer seal - uncleHash = types.CalcUncleHash(nil) // Always Keccak256(RLP([])) as uncles are meaningless outside of PoW. // diffInTurn = big.NewInt(2) // Block difficulty for in-turn signatures // diffNoTurn = big.NewInt(1) // Block difficulty for out-of-turn signatures validatorHeaderBytesLength = length.Addr + 20 // address + power - // systemAddress = libcommon.HexToAddress("0xffffFFFfFFffffffffffffffFfFFFfffFFFfFFfE") + + // MaxCheckpointLength is the maximum number of blocks that can be requested for constructing a checkpoint root hash + MaxCheckpointLength = uint64(math.Pow(2, 15)) ) // Various error messages to mark blocks invalid. These should be private to @@ -104,7 +114,7 @@ var ( // errInvalidSpanValidators is returned if a block contains an // invalid list of validators (i.e. non divisible by 40 bytes). - errInvalidSpanValidators = errors.New("invalid validator list on sprint end block") + ErrInvalidSpanValidators = errors.New("invalid validator list on sprint end block") // errInvalidMixDigest is returned if a block's mix digest is non-zero. errInvalidMixDigest = errors.New("non-zero mix digest") @@ -125,6 +135,8 @@ var ( errUncleDetected = errors.New("uncles not allowed") errUnknownValidators = errors.New("unknown validators") + + errUnknownSnapshot = errors.New("unknown snapshot") ) // SignerFn is a signer callback function to request a header to be signed by a @@ -132,18 +144,18 @@ var ( type SignerFn func(signer libcommon.Address, mimeType string, message []byte) ([]byte, error) // ecrecover extracts the Ethereum account address from a signed header. -func ecrecover(header *types.Header, sigcache *lru.ARCCache[libcommon.Hash, libcommon.Address], c *chain.BorConfig) (libcommon.Address, error) { +func Ecrecover(header *types.Header, sigcache *lru.ARCCache[libcommon.Hash, libcommon.Address], c *chain.BorConfig) (libcommon.Address, error) { // If the signature's already cached, return that hash := header.Hash() if address, known := sigcache.Get(hash); known { return address, nil } // Retrieve the signature from the header extra-data - if len(header.Extra) < extraSeal { + if len(header.Extra) < types.ExtraSealLength { return libcommon.Address{}, errMissingSignature } - signature := header.Extra[len(header.Extra)-extraSeal:] + signature := header.Extra[len(header.Extra)-types.ExtraSealLength:] // Recover the public key and the Ethereum address pubkey, err := crypto.Ecrecover(SealHash(header, c).Bytes(), signature) @@ -234,9 +246,10 @@ type Bor struct { chainConfig *chain.Config // Chain config config *chain.BorConfig // Consensus engine configuration parameters for bor consensus DB kv.RwDB // Database to store and retrieve snapshot checkpoints + blockReader services.FullBlockReader - recents *lru.ARCCache[libcommon.Hash, *Snapshot] // Snapshots for recent block to speed up reorgs - signatures *lru.ARCCache[libcommon.Hash, libcommon.Address] // Signatures of recent blocks to speed up mining + Recents *lru.ARCCache[libcommon.Hash, *Snapshot] // Snapshots for recent block to speed up reorgs + Signatures *lru.ARCCache[libcommon.Hash, libcommon.Address] // Signatures of recent blocks to speed up mining authorizedSigner atomic.Pointer[signer] // Ethereum address and sign function of the signing key @@ -244,15 +257,18 @@ type Bor struct { spanner Spanner GenesisContractsClient GenesisContract - HeimdallClient IHeimdallClient + HeimdallClient heimdall.IHeimdallClient // scope event.SubscriptionScope // The fields below are for testing only - fakeDiff bool // Skip difficulty verifications - spanCache *btree.BTree - - closeOnce sync.Once - logger log.Logger + fakeDiff bool // Skip difficulty verifications + + closeOnce sync.Once + logger log.Logger + closeCh chan struct{} // Channel to signal the background processes to exit + frozenSnapshotsInit sync.Once + rootHashCache *lru.ARCCache[string, string] + headerProgress HeaderProgress } type signer struct { @@ -353,8 +369,9 @@ func CalculateSprint(config *chain.BorConfig, number uint64) uint64 { func New( chainConfig *chain.Config, db kv.RwDB, + blockReader services.FullBlockReader, spanner Spanner, - heimdallClient IHeimdallClient, + heimdallClient heimdall.IHeimdallClient, genesisContracts GenesisContract, logger log.Logger, ) *Bor { @@ -369,18 +386,20 @@ func New( // Allocate the snapshot caches and create the engine recents, _ := lru.NewARC[libcommon.Hash, *Snapshot](inmemorySnapshots) signatures, _ := lru.NewARC[libcommon.Hash, libcommon.Address](inmemorySignatures) + c := &Bor{ chainConfig: chainConfig, config: borConfig, DB: db, - recents: recents, - signatures: signatures, + blockReader: blockReader, + Recents: recents, + Signatures: signatures, spanner: spanner, GenesisContractsClient: genesisContracts, HeimdallClient: heimdallClient, - spanCache: btree.New(32), execCtx: context.Background(), logger: logger, + closeCh: make(chan struct{}), } c.authorizedSigner.Store(&signer{ @@ -393,7 +412,7 @@ func New( // make sure we can decode all the GenesisAlloc in the BorConfig. for key, genesisAlloc := range c.config.BlockAlloc { - if _, err := decodeGenesisAlloc(genesisAlloc); err != nil { + if _, err := types.DecodeGenesisAlloc(genesisAlloc); err != nil { panic(fmt.Sprintf("BUG: Block alloc '%s' in genesis is not correct: %v", key, err)) } } @@ -401,22 +420,76 @@ func New( return c } +type rwWrapper struct { + kv.RoDB +} + +func (w rwWrapper) Update(ctx context.Context, f func(tx kv.RwTx) error) error { + return fmt.Errorf("Update not implemented") +} + +func (w rwWrapper) UpdateNosync(ctx context.Context, f func(tx kv.RwTx) error) error { + return fmt.Errorf("UpdateNosync not implemented") +} + +func (w rwWrapper) BeginRw(ctx context.Context) (kv.RwTx, error) { + return nil, fmt.Errorf("BeginRw not implemented") +} + +func (w rwWrapper) BeginRwNosync(ctx context.Context) (kv.RwTx, error) { + return nil, fmt.Errorf("BeginRwNosync not implemented") +} + +// This is used by the rpcdaemon and tests which need read only access to the provided data services +func NewRo(chainConfig *chain.Config, db kv.RoDB, blockReader services.FullBlockReader, spanner Spanner, + genesisContracts GenesisContract, logger log.Logger) *Bor { + // get bor config + borConfig := chainConfig.Bor + + // Set any missing consensus parameters to their defaults + if borConfig != nil && borConfig.CalculateSprint(0) == 0 { + borConfig.Sprint = defaultSprintLength + } + + recents, _ := lru.NewARC[libcommon.Hash, *Snapshot](inmemorySnapshots) + signatures, _ := lru.NewARC[libcommon.Hash, libcommon.Address](inmemorySignatures) + + return &Bor{ + chainConfig: chainConfig, + config: borConfig, + DB: rwWrapper{db}, + blockReader: blockReader, + logger: logger, + Recents: recents, + Signatures: signatures, + execCtx: context.Background(), + closeCh: make(chan struct{}), + } +} + // Type returns underlying consensus engine func (c *Bor) Type() chain.ConsensusName { return chain.BorConsensus } +type HeaderProgress interface { + Progress() uint64 +} + +func (c *Bor) HeaderProgress(p HeaderProgress) { + c.headerProgress = p +} + // Author implements consensus.Engine, returning the Ethereum address recovered // from the signature in the header's extra-data section. // This is thread-safe (only access the header and config (which is never updated), // as well as signatures, which are lru.ARCCache, which is thread-safe) func (c *Bor) Author(header *types.Header) (libcommon.Address, error) { - return ecrecover(header, c.signatures, c.config) + return Ecrecover(header, c.Signatures, c.config) } // VerifyHeader checks whether a header conforms to the consensus rules. func (c *Bor) VerifyHeader(chain consensus.ChainHeaderReader, header *types.Header, seal bool) error { - return c.verifyHeader(chain, header, nil) } @@ -458,7 +531,7 @@ func (c *Bor) verifyHeader(chain consensus.ChainHeaderReader, header *types.Head return consensus.ErrFutureBlock } - if err := validateHeaderExtraField(header.Extra); err != nil { + if err := ValidateHeaderExtraField(header.Extra); err != nil { return err } @@ -466,13 +539,13 @@ func (c *Bor) verifyHeader(chain consensus.ChainHeaderReader, header *types.Head isSprintEnd := isSprintStart(number+1, c.config.CalculateSprint(number)) // Ensure that the extra-data contains a signer list on checkpoint, but none otherwise - signersBytes := len(header.Extra) - extraVanity - extraSeal + signersBytes := len(GetValidatorBytes(header, c.config)) if !isSprintEnd && signersBytes != 0 { return errExtraValidators } if isSprintEnd && signersBytes%validatorHeaderBytesLength != 0 { - return errInvalidSpanValidators + return ErrInvalidSpanValidators } // Ensure that the mix digest is zero as we don't have fork protection currently @@ -493,24 +566,26 @@ func (c *Bor) verifyHeader(chain consensus.ChainHeaderReader, header *types.Head } // Verify that the gas limit is <= 2^63-1 - gasCap := uint64(0x7fffffffffffffff) + if header.GasLimit > params.MaxGasLimit { + return fmt.Errorf("invalid gasLimit: have %v, max %v", header.GasLimit, params.MaxGasLimit) + } - if header.GasLimit > gasCap { - return fmt.Errorf("invalid gasLimit: have %v, max %v", header.GasLimit, gasCap) + if header.WithdrawalsHash != nil { + return consensus.ErrUnexpectedWithdrawals } // All basic checks passed, verify cascading fields return c.verifyCascadingFields(chain, header, parents) } -// validateHeaderExtraField validates that the extra-data contains both the vanity and signature. +// ValidateHeaderExtraField validates that the extra-data contains both the vanity and signature. // header.Extra = header.Vanity + header.ProducerBytes (optional) + header.Seal -func validateHeaderExtraField(extraBytes []byte) error { - if len(extraBytes) < extraVanity { +func ValidateHeaderExtraField(extraBytes []byte) error { + if len(extraBytes) < types.ExtraVanityLength { return errMissingVanity } - if len(extraBytes) < extraVanity+extraSeal { + if len(extraBytes) < types.ExtraVanityLength+types.ExtraSealLength { return errMissingSignature } @@ -560,74 +635,85 @@ func (c *Bor) verifyCascadingFields(chain consensus.ChainHeaderReader, header *t return err } - if header.WithdrawalsHash != nil { - return consensus.ErrUnexpectedWithdrawals - } - if parent.Time+c.config.CalculatePeriod(number) > header.Time { return ErrInvalidTimestamp } + return nil +} - sprintLength := c.config.CalculateSprint(number) +func (c *Bor) initFrozenSnapshot(chain consensus.ChainHeaderReader, number uint64, logEvery *time.Ticker) (snap *Snapshot, err error) { + c.logger.Info("Initializing frozen snapshots to", "number", number) + defer func() { + c.logger.Info("Done initializing frozen snapshots to", "number", number, "err", err) + }() - // Verify the validator list match the local contract - // - // Note: Here we fetch the data from span instead of contract - // as done in bor client. The contract (validator set) returns - // a fixed span for 0th span i.e. 0 - 255 blocks. Hence, the - // contract data and span data won't match for that. Skip validating - // for 0th span. TODO: Remove `number > zerothSpanEnd` check - // once we start fetching validator data from contract. - if number > zerothSpanEnd && isSprintStart(number+1, sprintLength) { - producerSet, err := c.spanner.GetCurrentProducers(number+1, c.authorizedSigner.Load().signer, c.getSpanForBlock) + // Special handling of the headers in the snapshot + zeroHeader := chain.GetHeaderByNumber(0) - if err != nil { - return err - } + if zeroHeader != nil { + // get checkpoint data + hash := zeroHeader.Hash() - sort.Sort(valset.ValidatorsByAddress(producerSet)) + // get validators and current span + var validators []*valset.Validator - headerVals, err := valset.ParseValidators(header.Extra[extraVanity : len(header.Extra)-extraSeal]) + validators, err = c.spanner.GetCurrentValidators(0, c.authorizedSigner.Load().signer, chain) if err != nil { - return err + return nil, err } - if len(producerSet) != len(headerVals) { - return errInvalidSpanValidators + // new snap shot + snap = NewSnapshot(c.config, c.Signatures, 0, hash, validators, c.logger) + + if err = snap.Store(c.DB); err != nil { + return nil, err } - for i, val := range producerSet { - if !bytes.Equal(val.HeaderBytes(), headerVals[i].HeaderBytes()) { - return errInvalidSpanValidators + c.logger.Info("Stored proposer snapshot to disk", "number", 0, "hash", hash) + + g := errgroup.Group{} + g.SetLimit(estimate.AlmostAllCPUs()) + defer g.Wait() + + batchSize := 128 // must be < inmemorySignatures + initialHeaders := make([]*types.Header, 0, batchSize) + + for i := uint64(1); i <= number; i++ { + header := chain.GetHeaderByNumber(i) + { + // `snap.apply` bottleneck - is recover of signer. + // to speedup: recover signer in background goroutines and save in `sigcache` + // `batchSize` < `inmemorySignatures`: means all current batch will fit in cache - and `snap.apply` will find it there. + snap := snap + g.Go(func() error { + _, _ = Ecrecover(header, snap.sigcache, snap.config) + return nil + }) } - } - } - snap, err := c.snapshot(chain, number-1, header.ParentHash, parents) - if err != nil { - return err - } + initialHeaders = append(initialHeaders, header) + if len(initialHeaders) == cap(initialHeaders) { + snap, err = snap.Apply(nil, initialHeaders, c.logger) - // verify the validator list in the last sprint block - if isSprintStart(number, sprintLength) { - // Retrieve the snapshot needed to verify this header and cache it - parentValidatorBytes := parent.Extra[extraVanity : len(parent.Extra)-extraSeal] - validatorsBytes := make([]byte, len(snap.ValidatorSet.Validators)*validatorHeaderBytesLength) + if err != nil { + return nil, err + } - currentValidators := snap.ValidatorSet.Copy().Validators - // sort validator by address - sort.Sort(valset.ValidatorsByAddress(currentValidators)) - for i, validator := range currentValidators { - copy(validatorsBytes[i*validatorHeaderBytesLength:], validator.HeaderBytes()) + initialHeaders = initialHeaders[:0] + } + select { + case <-logEvery.C: + log.Info("Computing validator proposer prorities (forward)", "blockNum", i) + default: + } } - // len(header.Extra) >= extraVanity+extraSeal has already been validated in validateHeaderExtraField, so this won't result in a panic - if !bytes.Equal(parentValidatorBytes, validatorsBytes) { - return &MismatchingValidatorsError{number - 1, validatorsBytes, parentValidatorBytes} + + if snap, err = snap.Apply(nil, initialHeaders, c.logger); err != nil { + return nil, err } } - // All basic checks passed, verify the seal and return - return c.verifySeal(chain, header, parents, snap) + return snap, nil } // snapshot retrieves the authorization snapshot at a given point in time. @@ -642,19 +728,17 @@ func (c *Bor) snapshot(chain consensus.ChainHeaderReader, number uint64, hash li //nolint:govet for snap == nil { // If an in-memory snapshot was found, use that - if s, ok := c.recents.Get(hash); ok { + if s, ok := c.Recents.Get(hash); ok { snap = s - break } // If an on-disk snapshot can be found, use that if number%snapshotPersistInterval == 0 { - if s, err := loadSnapshot(c.config, c.signatures, c.DB, hash); err == nil { + if s, err := LoadSnapshot(c.config, c.Signatures, c.DB, hash); err == nil { c.logger.Trace("Loaded snapshot from disk", "number", number, "hash", hash) snap = s - break } } @@ -671,7 +755,12 @@ func (c *Bor) snapshot(chain consensus.ChainHeaderReader, number uint64, hash li parents = parents[:len(parents)-1] } else { // No explicit parents (or no more left), reach out to the database + if chain == nil { + break + } + header = chain.GetHeader(hash, number) + if header == nil { return nil, consensus.ErrUnknownAncestor } @@ -684,7 +773,7 @@ func (c *Bor) snapshot(chain consensus.ChainHeaderReader, number uint64, hash li headers = append(headers, header) number, hash = number-1, header.ParentHash - if number <= chain.FrozenBlocks() { + if chain != nil && number < chain.FrozenBlocks() { break } @@ -694,50 +783,21 @@ func (c *Bor) snapshot(chain consensus.ChainHeaderReader, number uint64, hash li default: } } - if snap == nil && number <= chain.FrozenBlocks() { - // Special handling of the headers in the snapshot - zeroHeader := chain.GetHeaderByNumber(0) - if zeroHeader != nil { - // get checkpoint data - hash := zeroHeader.Hash() - // get validators and current span - validators, err := c.spanner.GetCurrentValidators(1, c.authorizedSigner.Load().signer, c.getSpanForBlock) - if err != nil { - return nil, err - } + if snap == nil && chain != nil && number <= chain.FrozenBlocks() { + var err error + c.frozenSnapshotsInit.Do(func() { + snap, err = c.initFrozenSnapshot(chain, number, logEvery) + }) - // new snap shot - snap = newSnapshot(c.config, c.signatures, 0, hash, validators, c.logger) - if err := snap.store(c.DB); err != nil { - return nil, err - } - c.logger.Info("Stored proposer snapshot to disk", "number", 0, "hash", hash) - initialHeaders := make([]*types.Header, 0, 128) - for i := uint64(1); i <= number; i++ { - header := chain.GetHeaderByNumber(i) - initialHeaders = append(initialHeaders, header) - if len(initialHeaders) == cap(initialHeaders) { - if snap, err = snap.apply(initialHeaders, c.logger); err != nil { - return nil, err - } - initialHeaders = initialHeaders[:0] - } - select { - case <-logEvery.C: - log.Info("Computing validator proposer prorities (forward)", "blockNum", i) - default: - } - } - if snap, err = snap.apply(initialHeaders, c.logger); err != nil { - return nil, err - } + if err != nil { + return nil, err } } // check if snapshot is nil if snap == nil { - return nil, fmt.Errorf("unknown error while retrieving snapshot at block number %v", number) + return nil, fmt.Errorf("%w at block number %v", errUnknownSnapshot, number) } // Previous snapshot found, apply any pending headers on top of it @@ -746,19 +806,19 @@ func (c *Bor) snapshot(chain consensus.ChainHeaderReader, number uint64, hash li } var err error - if snap, err = snap.apply(headers, c.logger); err != nil { + if snap, err = snap.Apply(nil, headers, c.logger); err != nil { return nil, err } - c.recents.Add(snap.Hash, snap) + c.Recents.Add(snap.Hash, snap) // If we've generated a new persistent snapshot, save to disk if snap.Number%snapshotPersistInterval == 0 && len(headers) > 0 { - if err = snap.store(c.DB); err != nil { + if err = snap.Store(c.DB); err != nil { return nil, err } - c.logger.Trace("Stored snapshot to disk", "number", snap.Number, "hash", snap.Hash) + c.logger.Trace("Stored proposer snapshot to disk", "number", snap.Number, "hash", snap.Hash) } return snap, err @@ -795,7 +855,7 @@ func (c *Bor) verifySeal(chain consensus.ChainHeaderReader, header *types.Header return errUnknownBlock } // Resolve the authorization key and check against signers - signer, err := ecrecover(header, c.signatures, c.config) + signer, err := Ecrecover(header, c.Signatures, c.config) if err != nil { return err } @@ -854,11 +914,11 @@ func (c *Bor) Prepare(chain consensus.ChainHeaderReader, header *types.Header, s header.Difficulty = new(big.Int).SetUint64(snap.Difficulty(c.authorizedSigner.Load().signer)) // Ensure the extra data has all it's components - if len(header.Extra) < extraVanity { - header.Extra = append(header.Extra, bytes.Repeat([]byte{0x00}, extraVanity-len(header.Extra))...) + if len(header.Extra) < types.ExtraVanityLength { + header.Extra = append(header.Extra, bytes.Repeat([]byte{0x00}, types.ExtraVanityLength-len(header.Extra))...) } - header.Extra = header.Extra[:extraVanity] + header.Extra = header.Extra[:types.ExtraVanityLength] // get validator set if number // Note: headers.Extra has producer set and not validator set. The bor @@ -866,7 +926,11 @@ func (c *Bor) Prepare(chain consensus.ChainHeaderReader, header *types.Header, s // where it fetches producers internally. As we fetch data from span // in Erigon, use directly the `GetCurrentProducers` function. if isSprintStart(number+1, c.config.CalculateSprint(number)) { - newValidators, err := c.spanner.GetCurrentProducers(number+1, c.authorizedSigner.Load().signer, c.getSpanForBlock) + var spanID uint64 + if number+1 > zerothSpanEnd { + spanID = 1 + (number+1-zerothSpanEnd-1)/spanLength + } + newValidators, err := c.spanner.GetCurrentProducers(spanID, c.authorizedSigner.Load().signer, chain) if err != nil { return errUnknownValidators } @@ -874,13 +938,47 @@ func (c *Bor) Prepare(chain consensus.ChainHeaderReader, header *types.Header, s // sort validator by address sort.Sort(valset.ValidatorsByAddress(newValidators)) - for _, validator := range newValidators { - header.Extra = append(header.Extra, validator.HeaderBytes()...) + if c.config.IsParallelUniverse(header.Number.Uint64()) { + var tempValidatorBytes []byte + + for _, validator := range newValidators { + tempValidatorBytes = append(tempValidatorBytes, validator.HeaderBytes()...) + } + + blockExtraData := &BlockExtraData{ + ValidatorBytes: tempValidatorBytes, + TxDependency: nil, + } + + blockExtraDataBytes, err := rlp.EncodeToBytes(blockExtraData) + if err != nil { + log.Error("error while encoding block extra data: %v", err) + return fmt.Errorf("error while encoding block extra data: %v", err) + } + + header.Extra = append(header.Extra, blockExtraDataBytes...) + } else { + for _, validator := range newValidators { + header.Extra = append(header.Extra, validator.HeaderBytes()...) + } + } + } else if c.config.IsParallelUniverse(header.Number.Uint64()) { + blockExtraData := &BlockExtraData{ + ValidatorBytes: nil, + TxDependency: nil, + } + + blockExtraDataBytes, err := rlp.EncodeToBytes(blockExtraData) + if err != nil { + log.Error("error while encoding block extra data: %v", err) + return fmt.Errorf("error while encoding block extra data: %v", err) } + + header.Extra = append(header.Extra, blockExtraDataBytes...) } // add extra seal space - header.Extra = append(header.Extra, make([]byte, extraSeal)...) + header.Extra = append(header.Extra, make([]byte, types.ExtraSealLength)...) // Mix digest is reserved for now, set to empty header.MixDigest = libcommon.Hash{} @@ -917,31 +1015,35 @@ func (c *Bor) CalculateRewards(config *chain.Config, header *types.Header, uncle // rewards given. func (c *Bor) Finalize(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, r types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, logger log.Logger, ) (types.Transactions, types.Receipts, error) { - var err error - headerNumber := header.Number.Uint64() + if withdrawals != nil || header.WithdrawalsHash != nil { + return nil, nil, consensus.ErrUnexpectedWithdrawals + } + if isSprintStart(headerNumber, c.config.CalculateSprint(headerNumber)) { cx := statefull.ChainContext{Chain: chain, Bor: c} - // check and commit span - if err := c.checkAndCommitSpan(state, header, cx, syscall); err != nil { - c.logger.Error("Error while committing span", "err", err) - return nil, types.Receipts{}, err - } - if c.HeimdallClient != nil { + if c.blockReader != nil { + // check and commit span + if err := c.checkAndCommitSpan(state, header, cx, syscall); err != nil { + err := fmt.Errorf("Finalize.checkAndCommitSpan: %w", err) + c.logger.Error("[bor] committing span", "err", err) + return nil, types.Receipts{}, err + } // commit states - if err = c.CommitStates(state, header, cx, syscall); err != nil { - c.logger.Error("Error while committing states", "err", err) + if err := c.CommitStates(state, header, cx, syscall); err != nil { + err := fmt.Errorf("Finalize.CommitStates: %w", err) + c.logger.Error("[bor] Error while committing states", "err", err) return nil, types.Receipts{}, err } } } - if err = c.changeContractCodeIfNeeded(headerNumber, state); err != nil { - c.logger.Error("Error changing contract code", "err", err) + if err := c.changeContractCodeIfNeeded(headerNumber, state); err != nil { + c.logger.Error("[bor] Error changing contract code", "err", err) return nil, types.Receipts{}, err } @@ -955,31 +1057,16 @@ func (c *Bor) Finalize(config *chain.Config, header *types.Header, state *state. return nil, types.Receipts{}, nil } -func decodeGenesisAlloc(i interface{}) (types.GenesisAlloc, error) { - var alloc types.GenesisAlloc - - b, err := json.Marshal(i) - if err != nil { - return nil, err - } - - if err := json.Unmarshal(b, &alloc); err != nil { - return nil, err - } - - return alloc, nil -} - func (c *Bor) changeContractCodeIfNeeded(headerNumber uint64, state *state.IntraBlockState) error { for blockNumber, genesisAlloc := range c.config.BlockAlloc { if blockNumber == strconv.FormatUint(headerNumber, 10) { - allocs, err := decodeGenesisAlloc(genesisAlloc) + allocs, err := types.DecodeGenesisAlloc(genesisAlloc) if err != nil { return fmt.Errorf("failed to decode genesis alloc: %v", err) } for addr, account := range allocs { - c.logger.Trace("change contract code", "address", addr) + c.logger.Trace("[bor] change contract code", "address", addr) state.SetCode(addr, account.Code) } } @@ -992,32 +1079,37 @@ func (c *Bor) changeContractCodeIfNeeded(headerNumber uint64, state *state.Intra // nor block rewards given, and returns the final block. func (c *Bor) FinalizeAndAssemble(chainConfig *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, receipts types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger, ) (*types.Block, types.Transactions, types.Receipts, error) { // stateSyncData := []*types.StateSyncData{} headerNumber := header.Number.Uint64() + + if withdrawals != nil || header.WithdrawalsHash != nil { + return nil, nil, nil, consensus.ErrUnexpectedWithdrawals + } + if isSprintStart(headerNumber, c.config.CalculateSprint(headerNumber)) { cx := statefull.ChainContext{Chain: chain, Bor: c} - // check and commit span - err := c.checkAndCommitSpan(state, header, cx, syscall) - if err != nil { - c.logger.Error("Error while committing span", "err", err) - return nil, nil, types.Receipts{}, err - } - - if c.HeimdallClient != nil { + if c.blockReader != nil { + // check and commit span + if err := c.checkAndCommitSpan(state, header, cx, syscall); err != nil { + err := fmt.Errorf("FinalizeAndAssemble.checkAndCommitSpan: %w", err) + c.logger.Error("[bor] committing span", "err", err) + return nil, nil, types.Receipts{}, err + } // commit states - if err = c.CommitStates(state, header, cx, syscall); err != nil { - c.logger.Error("Error while committing states", "err", err) + if err := c.CommitStates(state, header, cx, syscall); err != nil { + err := fmt.Errorf("FinalizeAndAssemble.CommitStates: %w", err) + c.logger.Error("[bor] committing states", "err", err) return nil, nil, types.Receipts{}, err } } } if err := c.changeContractCodeIfNeeded(headerNumber, state); err != nil { - c.logger.Error("Error changing contract code", "err", err) + c.logger.Error("[bor] Error changing contract code", "err", err) return nil, nil, types.Receipts{}, err } @@ -1041,7 +1133,7 @@ func (c *Bor) GenerateSeal(chain consensus.ChainHeaderReader, currnt, parent *ty } func (c *Bor) Initialize(config *chain.Config, chain consensus.ChainHeaderReader, header *types.Header, - state *state.IntraBlockState, txs []types.Transaction, uncles []*types.Header, syscall consensus.SysCallCustom) { + state *state.IntraBlockState, syscall consensus.SysCallCustom, logger log.Logger) { } // Authorize injects a private key into the consensus engine to mint new blocks @@ -1066,7 +1158,7 @@ func (c *Bor) Seal(chain consensus.ChainHeaderReader, block *types.Block, result // For 0-period chains, refuse to seal empty blocks (no reward but would spin sealing) if c.config.CalculatePeriod(number) == 0 && len(block.Transactions()) == 0 { - c.logger.Trace("Sealing paused, waiting for transactions") + c.logger.Trace("[bor] Sealing paused, waiting for transactions") return nil } @@ -1091,7 +1183,7 @@ func (c *Bor) Seal(chain consensus.ChainHeaderReader, block *types.Block, result } // Sweet, the protocol permits us to sign the block, wait for our time - delay := time.Unix(int64(header.Time), 0).Sub(time.Now()) // nolint: gosimple + delay := time.Until(time.Unix(int64(header.Time), 0)) // wiggle was already accounted for in header.Time, this is just for logging wiggle := time.Duration(successionNumber) * time.Duration(c.config.CalculateBackupMultiplier(number)) * time.Second @@ -1100,20 +1192,26 @@ func (c *Bor) Seal(chain consensus.ChainHeaderReader, block *types.Block, result if err != nil { return err } - copy(header.Extra[len(header.Extra)-extraSeal:], sighash) - - // Wait until sealing is terminated or delay timeout. - c.logger.Info("Waiting for slot to sign and propagate", "number", number, "hash", header.Hash, "delay", common.PrettyDuration(delay)) + copy(header.Extra[len(header.Extra)-types.ExtraSealLength:], sighash) go func() { + // Wait until sealing is terminated or delay timeout. + c.logger.Info("[bor] Waiting for slot to sign and propagate", "number", number, "hash", header.Hash, "delay", common.PrettyDuration(delay), "TxCount", block.Transactions().Len(), "Signer", signer) + select { case <-stop: - c.logger.Info("Discarding sealing operation for block", "number", number) + c.logger.Info("[bor] Stopped sealing operation for block", "number", number) return case <-time.After(delay): + + if c.headerProgress != nil && c.headerProgress.Progress() >= number { + c.logger.Info("Discarding sealing operation for block", "number", number) + return + } + if wiggle > 0 { c.logger.Info( - "Sealed out-of-turn", + "[bor] Sealed out-of-turn", "number", number, "wiggle", common.PrettyDuration(wiggle), "delay", delay, @@ -1122,7 +1220,7 @@ func (c *Bor) Seal(chain consensus.ChainHeaderReader, block *types.Block, result ) } else { c.logger.Info( - "Sealed in-turn", + "[bor] Sealed in-turn", "number", number, "delay", delay, "headerDifficulty", header.Difficulty, @@ -1139,16 +1237,38 @@ func (c *Bor) Seal(chain consensus.ChainHeaderReader, block *types.Block, result return nil } +// IsValidator returns true if this instance is the validator for this block +func (c *Bor) IsValidator(header *types.Header) (bool, error) { + number := header.Number.Uint64() + + if number == 0 { + return false, nil + } + + snap, err := c.snapshot(nil, number-1, header.ParentHash, nil) + + if err != nil { + if errors.Is(err, errUnknownSnapshot) { + return false, nil + } + + return false, err + } + + currentSigner := c.authorizedSigner.Load() + + return snap.ValidatorSet.HasAddress(currentSigner.signer), nil +} + // IsProposer returns true if this instance is the proposer for this block -func (c *Bor) IsProposer(chain consensus.ChainHeaderReader, block *types.Block) (bool, error) { - header := block.Header() +func (c *Bor) IsProposer(header *types.Header) (bool, error) { number := header.Number.Uint64() if number == 0 { return false, nil } - snap, err := c.snapshot(chain, number-1, header.ParentHash, nil) + snap, err := c.snapshot(nil, number-1, header.ParentHash, nil) if err != nil { return false, err } @@ -1185,23 +1305,49 @@ func (c *Bor) IsServiceTransaction(sender libcommon.Address, syscall consensus.S return false } -// APIs implements consensus.Engine, returning the user facing RPC API to allow -// controlling the signer voting. +// Depricated: To get the API use jsonrpc.APIList func (c *Bor) APIs(chain consensus.ChainHeaderReader) []rpc.API { - return []rpc.API{{ - Namespace: "bor", - Version: "1.0", - Service: &API{chain: chain, bor: c}, - Public: false, - }} + return []rpc.API{} +} + +type FinalityAPI interface { + GetRootHash(start uint64, end uint64) (string, error) +} + +type FinalityAPIFunc func(start uint64, end uint64) (string, error) + +func (f FinalityAPIFunc) GetRootHash(start uint64, end uint64) (string, error) { + return f(start, end) +} + +func (c *Bor) Start(chainDB kv.RwDB) { + if flags.Milestone { + whitelist.RegisterService(c.DB) + finality.Whitelist(c.HeimdallClient, c.DB, chainDB, c.blockReader, c.logger, + FinalityAPIFunc(func(start uint64, end uint64) (string, error) { + ctx := context.Background() + tx, err := chainDB.BeginRo(ctx) + if err != nil { + return "", err + } + defer tx.Rollback() + + return c.GetRootHash(ctx, tx, start, end) + }), c.closeCh) + } } -// Close implements consensus.Engine. It's a noop for bor as there are no background threads. func (c *Bor) Close() error { c.closeOnce.Do(func() { + if c.DB != nil { + c.DB.Close() + } + if c.HeimdallClient != nil { c.HeimdallClient.Close() } + // Close all bg processes + close(c.closeCh) }) return nil @@ -1248,42 +1394,6 @@ func (c *Bor) needToCommitSpan(currentSpan *span.Span, headerNumber uint64) bool return false } -func (c *Bor) getSpanForBlock(blockNum uint64) (*span.HeimdallSpan, error) { - c.logger.Debug("Getting span", "for block", blockNum) - var borSpan *span.HeimdallSpan - c.spanCache.AscendGreaterOrEqual(&span.HeimdallSpan{Span: span.Span{EndBlock: blockNum}}, func(item btree.Item) bool { - borSpan = item.(*span.HeimdallSpan) - return false - }) - - if borSpan != nil && borSpan.StartBlock <= blockNum && borSpan.EndBlock >= blockNum { - return borSpan, nil - } - - // Span with given block block number is not loaded - // As span has fixed set of blocks (except 0th span), we can - // formulate it and get the exact ID we'd need to fetch. - var spanID uint64 - if blockNum > zerothSpanEnd { - spanID = 1 + (blockNum-zerothSpanEnd-1)/spanLength - } - - c.logger.Info("Span with given block number is not loaded", "fetching span", spanID) - - response, err := c.HeimdallClient.Span(c.execCtx, spanID) - if err != nil { - return nil, err - } - borSpan = response - c.spanCache.ReplaceOrInsert(borSpan) - - for c.spanCache.Len() > 128 { - c.spanCache.DeleteMin() - } - - return borSpan, nil -} - func (c *Bor) fetchAndCommitSpan( newSpanID uint64, state *state.IntraBlockState, @@ -1302,12 +1412,10 @@ func (c *Bor) fetchAndCommitSpan( heimdallSpan = *s } else { - response, err := c.HeimdallClient.Span(c.execCtx, newSpanID) - if err != nil { + spanJson := chain.Chain.BorSpan(newSpanID) + if err := json.Unmarshal(spanJson, &heimdallSpan); err != nil { return err } - - heimdallSpan = *response } // check if chain id matches with heimdall span @@ -1322,103 +1430,92 @@ func (c *Bor) fetchAndCommitSpan( return c.spanner.CommitSpan(heimdallSpan, syscall) } -// CommitStates commit states -func (c *Bor) CommitStates( - state *state.IntraBlockState, - header *types.Header, - chain statefull.ChainContext, - syscall consensus.SystemCall, -) error { - fetchStart := time.Now() - number := header.Number.Uint64() - - var ( - lastStateIDBig *big.Int - from uint64 - to time.Time - err error - ) - - // Explicit condition for Indore fork won't be needed for fetching this - // as erigon already performs this call on the IBS (Intra block state) of - // the incoming chain. - lastStateIDBig, err = c.GenesisContractsClient.LastStateId(syscall) - if err != nil { - return err - } - - if c.config.IsIndore(number) { - stateSyncDelay := c.config.CalculateStateSyncDelay(number) - to = time.Unix(int64(header.Time-stateSyncDelay), 0) - } else { - to = time.Unix(int64(chain.Chain.GetHeaderByNumber(number-c.config.CalculateSprint(number)).Time), 0) +func (c *Bor) GetRootHash(ctx context.Context, tx kv.Tx, start, end uint64) (string, error) { + length := end - start + 1 + if length > MaxCheckpointLength { + return "", &MaxCheckpointLengthExceededError{Start: start, End: end} } - lastStateID := lastStateIDBig.Uint64() - from = lastStateID + 1 - - c.logger.Info( - "Fetching state updates from Heimdall", - "fromID", from, - "to", to.Format(time.RFC3339), - ) + cacheKey := strconv.FormatUint(start, 10) + "-" + strconv.FormatUint(end, 10) - eventRecords, err := c.HeimdallClient.StateSyncEvents(c.execCtx, lastStateID+1, to.Unix()) - if err != nil { - return err + if c.rootHashCache == nil { + c.rootHashCache, _ = lru.NewARC[string, string](100) } - if c.config.OverrideStateSyncRecords != nil { - if val, ok := c.config.OverrideStateSyncRecords[strconv.FormatUint(number, 10)]; ok { - eventRecords = eventRecords[0:val] - } + if root, known := c.rootHashCache.Get(cacheKey); known { + return root, nil } - fetchTime := time.Since(fetchStart) - processStart := time.Now() - chainID := c.chainConfig.ChainID.String() - - for _, eventRecord := range eventRecords { - if eventRecord.ID <= lastStateID { - continue - } - - if err := validateEventRecord(eventRecord, number, to, lastStateID, chainID); err != nil { - c.logger.Error("while validating event record", "block", number, "to", to, "stateID", lastStateID+1, "error", err.Error()) - break - } + header := rawdb.ReadCurrentHeader(tx) + var currentHeaderNumber uint64 = 0 + if header == nil { + return "", &valset.InvalidStartEndBlockError{Start: start, End: end, CurrentHeader: currentHeaderNumber} + } + currentHeaderNumber = header.Number.Uint64() + if start > end || end > currentHeaderNumber { + return "", &valset.InvalidStartEndBlockError{Start: start, End: end, CurrentHeader: currentHeaderNumber} + } + blockHeaders := make([]*types.Header, end-start+1) + for number := start; number <= end; number++ { + blockHeaders[number-start], _ = c.getHeaderByNumber(ctx, tx, number) + } - if err := c.GenesisContractsClient.CommitState(eventRecord, syscall); err != nil { - return err - } + headers := make([][32]byte, NextPowerOfTwo(length)) + for i := 0; i < len(blockHeaders); i++ { + blockHeader := blockHeaders[i] + header := crypto.Keccak256(AppendBytes32( + blockHeader.Number.Bytes(), + new(big.Int).SetUint64(blockHeader.Time).Bytes(), + blockHeader.TxHash.Bytes(), + blockHeader.ReceiptHash.Bytes(), + )) - lastStateID++ + var arr [32]byte + copy(arr[:], header) + headers[i] = arr } + tree := merkle.NewTreeWithOpts(merkle.TreeOptions{EnableHashSorting: false, DisableHashLeaves: true}) + if err := tree.Generate(Convert(headers), sha3.NewLegacyKeccak256()); err != nil { + return "", err + } + root := hex.EncodeToString(tree.Root().Hash) - processTime := time.Since(processStart) - - c.logger.Info("StateSyncData", "number", number, "lastStateID", lastStateID, "total records", len(eventRecords), "fetch time", fetchTime, "process time", processTime) + c.rootHashCache.Add(cacheKey, root) - return nil + return root, nil } -func validateEventRecord(eventRecord *clerk.EventRecordWithTime, number uint64, to time.Time, lastStateID uint64, chainID string) error { - // event id should be sequential and event.Time should lie in the range [from, to) - if lastStateID+1 != eventRecord.ID || eventRecord.ChainID != chainID || !eventRecord.Time.Before(to) { - return &InvalidStateReceivedError{number, lastStateID, &to, eventRecord} +func (c *Bor) getHeaderByNumber(ctx context.Context, tx kv.Tx, number uint64) (*types.Header, error) { + header, err := c.blockReader.HeaderByNumber(ctx, tx, number) + if err != nil { + return nil, err } + if header == nil { + return nil, fmt.Errorf("[bor] header not found: %d", number) + } + return header, nil +} +// CommitStates commit states +func (c *Bor) CommitStates( + state *state.IntraBlockState, + header *types.Header, + chain statefull.ChainContext, + syscall consensus.SystemCall, +) error { + events := chain.Chain.BorEventsByBlock(header.Hash(), header.Number.Uint64()) + for _, event := range events { + if err := c.GenesisContractsClient.CommitState(event, syscall); err != nil { + return err + } + } return nil } -func (c *Bor) SetHeimdallClient(h IHeimdallClient) { +func (c *Bor) SetHeimdallClient(h heimdall.IHeimdallClient) { c.HeimdallClient = h } -func (c *Bor) GetCurrentValidators(blockNumber uint64, signer libcommon.Address, getSpanForBlock func(blockNum uint64) (*span.HeimdallSpan, error)) ([]*valset.Validator, error) { - return c.spanner.GetCurrentValidators(blockNumber, signer, getSpanForBlock) -} - // // Private methods // @@ -1501,7 +1598,7 @@ func getUpdatedValidatorSet(oldValidatorSet *valset.ValidatorSet, newVals []*val } if err := v.UpdateWithChangeSet(changes, logger); err != nil { - logger.Error("Error while updating change set", "error", err) + logger.Error("[bor] Error while updating change set", "error", err) } return v @@ -1510,3 +1607,54 @@ func getUpdatedValidatorSet(oldValidatorSet *valset.ValidatorSet, newVals []*val func isSprintStart(number, sprint uint64) bool { return number%sprint == 0 } + +// In bor, RLP encoding of BlockExtraData will be stored in the Extra field in the header +type BlockExtraData struct { + // Validator bytes of bor + ValidatorBytes []byte + + // length of TxDependency -> n (n = number of transactions in the block) + // length of TxDependency[i] -> k (k = a whole number) + // k elements in TxDependency[i] -> transaction indexes on which transaction i is dependent on + TxDependency [][]uint64 +} + +// Returns the Block-STM Transaction Dependency from the block header +func GetTxDependency(b *types.Block) [][]uint64 { + tempExtra := b.Extra() + + if len(tempExtra) < types.ExtraVanityLength+types.ExtraSealLength { + log.Error("length of extra less is than vanity and seal") + return nil + } + + var blockExtraData BlockExtraData + + if err := rlp.DecodeBytes(tempExtra[types.ExtraVanityLength:len(tempExtra)-types.ExtraSealLength], &blockExtraData); err != nil { + log.Error("error while decoding block extra data", "err", err) + return nil + } + + return blockExtraData.TxDependency +} + +func GetValidatorBytes(h *types.Header, config *chain.BorConfig) []byte { + tempExtra := h.Extra + + if !config.IsParallelUniverse(h.Number.Uint64()) { + return tempExtra[types.ExtraVanityLength : len(tempExtra)-types.ExtraSealLength] + } + + if len(tempExtra) < types.ExtraVanityLength+types.ExtraSealLength { + log.Error("length of extra less is than vanity and seal") + return nil + } + + var blockExtraData BlockExtraData + if err := rlp.DecodeBytes(tempExtra[types.ExtraVanityLength:len(tempExtra)-types.ExtraSealLength], &blockExtraData); err != nil { + log.Error("error while decoding block extra data", "err", err) + return nil + } + + return blockExtraData.ValidatorBytes +} diff --git a/consensus/bor/bor_test.go b/consensus/bor/bor_test.go index 3e25fd1c60e..352686e5034 100644 --- a/consensus/bor/bor_test.go +++ b/consensus/bor/bor_test.go @@ -2,11 +2,13 @@ package bor_test import ( "context" + "encoding/json" "fmt" "math/big" "testing" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/common" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" "github.com/ledgerwatch/erigon-lib/kv/memdb" @@ -15,6 +17,7 @@ import ( "github.com/ledgerwatch/erigon/consensus/bor/clerk" "github.com/ledgerwatch/erigon/consensus/bor/contract" "github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/milestone" "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" "github.com/ledgerwatch/erigon/consensus/bor/valset" "github.com/ledgerwatch/erigon/core" @@ -102,12 +105,32 @@ func (h test_heimdall) FetchCheckpointCount(ctx context.Context) (int64, error) return 0, fmt.Errorf("TODO") } +func (h test_heimdall) FetchMilestone(ctx context.Context) (*milestone.Milestone, error) { + return nil, fmt.Errorf("TODO") +} + +func (h test_heimdall) FetchMilestoneCount(ctx context.Context) (int64, error) { + return 0, fmt.Errorf("TODO") +} + +func (h test_heimdall) FetchNoAckMilestone(ctx context.Context, milestoneID string) error { + return fmt.Errorf("TODO") +} + +func (h test_heimdall) FetchLastNoAckMilestone(ctx context.Context) (string, error) { + return "", fmt.Errorf("TODO") +} + +func (h test_heimdall) FetchMilestoneID(ctx context.Context, milestoneID string) error { + return fmt.Errorf("TODO") +} + func (h test_heimdall) Close() {} type test_genesisContract struct { } -func (g test_genesisContract) CommitState(event *clerk.EventRecordWithTime, syscall consensus.SystemCall) error { +func (g test_genesisContract) CommitState(event rlp.RawValue, syscall consensus.SystemCall) error { return nil } @@ -152,9 +175,15 @@ func (r headerReader) GetTd(libcommon.Hash, uint64) *big.Int { return nil } +func (r headerReader) BorSpan(spanId uint64) []byte { + b, _ := json.Marshal(&r.validator.heimdall.currentSpan) + return b +} + type spanner struct { *span.ChainSpanner - currentSpan span.Span + validatorAddress common.Address + currentSpan span.Span } func (c spanner) GetCurrentSpan(_ consensus.SystemCall) (*span.Span, error) { @@ -166,6 +195,16 @@ func (c *spanner) CommitSpan(heimdallSpan span.HeimdallSpan, syscall consensus.S return nil } +func (c *spanner) GetCurrentValidators(spanId uint64, signer libcommon.Address, chain consensus.ChainHeaderReader) ([]*valset.Validator, error) { + return []*valset.Validator{ + { + ID: 1, + Address: c.validatorAddress, + VotingPower: 1000, + ProposerPriority: 1, + }}, nil +} + type validator struct { *mock.MockSentry heimdall *test_heimdall @@ -179,14 +218,12 @@ func (v validator) generateChain(length int) (*core.ChainPack, error) { } func (v validator) IsProposer(block *types.Block) (bool, error) { - return v.Engine.(*bor.Bor).IsProposer(headerReader{v}, block) + return v.Engine.(*bor.Bor).IsProposer(block.Header()) } func (v validator) sealBlocks(blocks []*types.Block) ([]*types.Block, error) { sealedBlocks := make([]*types.Block, 0, len(blocks)) - sealResults := make(chan *types.Block) - hr := headerReader{v} for _, block := range blocks { @@ -200,6 +237,8 @@ func (v validator) sealBlocks(blocks []*types.Block) ([]*types.Block, error) { header.ParentHash = parent.Hash() } + sealResults := make(chan *types.Block, 1) + if err := v.Engine.Seal(hr, block, sealResults, nil); err != nil { return nil, err } @@ -227,17 +266,22 @@ func (v validator) verifyBlocks(blocks []*types.Block) error { func newValidator(t *testing.T, heimdall *test_heimdall, blocks map[uint64]*types.Block) validator { logger := log.Root() + validatorKey, _ := crypto.GenerateKey() + validatorAddress := crypto.PubkeyToAddress(validatorKey.PublicKey) bor := bor.New( heimdall.chainConfig, memdb.New(""), - &spanner{span.NewChainSpanner(contract.ValidatorSet(), heimdall.chainConfig, false, logger), span.Span{}}, + nil, /* blockReader */ + &spanner{span.NewChainSpanner(contract.ValidatorSet(), heimdall.chainConfig, false, logger), validatorAddress, span.Span{}}, heimdall, test_genesisContract{}, logger, ) - validatorKey, _ := crypto.GenerateKey() - validatorAddress := crypto.PubkeyToAddress(validatorKey.PublicKey) + /*fmt.Printf("Private: 0x%s\nPublic: 0x%s\nAddress: %s\n", + hex.EncodeToString(crypto.FromECDSA(validatorKey)), + hex.EncodeToString(crypto.MarshalPubkey(&validatorKey.PublicKey)), + strings.ToLower(validatorAddress.Hex()))*/ if heimdall.validatorSet == nil { heimdall.validatorSet = valset.NewValidatorSet([]*valset.Validator{ diff --git a/consensus/bor/contract/client.go b/consensus/bor/contract/client.go index 4fc927aa2f2..09f2ba5a340 100644 --- a/consensus/bor/contract/client.go +++ b/consensus/bor/contract/client.go @@ -8,7 +8,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/accounts/abi" "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/bor/clerk" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/log/v3" ) @@ -56,27 +55,8 @@ func NewGenesisContractsClient( } } -func (gc *GenesisContractsClient) CommitState(event *clerk.EventRecordWithTime, syscall consensus.SystemCall) error { - eventRecord := event.BuildEventRecord() - - recordBytes, err := rlp.EncodeToBytes(eventRecord) - if err != nil { - return err - } - - const method = "commitState" - - t := event.Time.Unix() - - data, err := gc.stateReceiverABI.Pack(method, big.NewInt(0).SetInt64(t), recordBytes) - if err != nil { - gc.logger.Error("Unable to pack tx for commitState", "err", err) - return err - } - - gc.logger.Info("→ committing new state", "eventRecord", event.String()) - _, err = syscall(gc.StateReceiverContract, data) - +func (gc *GenesisContractsClient) CommitState(event rlp.RawValue, syscall consensus.SystemCall) error { + _, err := syscall(gc.StateReceiverContract, event) return err } @@ -85,7 +65,7 @@ func (gc *GenesisContractsClient) LastStateId(syscall consensus.SystemCall) (*bi data, err := gc.stateReceiverABI.Pack(method) if err != nil { - gc.logger.Error("Unable to pack tx for LastStateId", "err", err) + gc.logger.Error("[bor] Unable to pack tx for LastStateId", "err", err) return nil, err } diff --git a/consensus/bor/fake.go b/consensus/bor/fake.go index fb07949bd69..fb79b7642da 100644 --- a/consensus/bor/fake.go +++ b/consensus/bor/fake.go @@ -5,7 +5,6 @@ import ( "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core/state" - "github.com/ledgerwatch/erigon/core/systemcontracts" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/log/v3" ) @@ -14,8 +13,7 @@ type FakeBor struct { *ethash.FakeEthash } -// NewFaker creates a bor consensus engine with a fake FakeEthash + -// processing of fake bor system contracts +// NewFaker creates a bor consensus engine with a FakeEthash func NewFaker() *FakeBor { return &FakeBor{ FakeEthash: ethash.NewFaker(), @@ -24,8 +22,7 @@ func NewFaker() *FakeBor { func (f *FakeBor) Finalize(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, r types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, logger log.Logger, ) (types.Transactions, types.Receipts, error) { - systemcontracts.UpgradeBuildInSystemContract(config, header.Number, state, logger) return f.FakeEthash.Finalize(config, header, state, txs, uncles, r, withdrawals, chain, syscall, logger) } diff --git a/consensus/bor/finality/api.go b/consensus/bor/finality/api.go new file mode 100644 index 00000000000..288080e570b --- /dev/null +++ b/consensus/bor/finality/api.go @@ -0,0 +1,56 @@ +package finality + +import ( + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" + "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/core/types" +) + +func GetFinalizedBlockNumber(tx kv.Tx) uint64 { + currentBlockNum := rawdb.ReadCurrentHeader(tx) + + service := whitelist.GetWhitelistingService() + + doExist, number, hash := service.GetWhitelistedMilestone() + if doExist && number <= currentBlockNum.Number.Uint64() { + + blockHeader := rawdb.ReadHeaderByNumber(tx, number) + + if blockHeader == nil { + return 0 + } + + if blockHeader.Hash() == hash { + return number + } + } + + doExist, number, hash = service.GetWhitelistedCheckpoint() + if doExist && number <= currentBlockNum.Number.Uint64() { + + blockHeader := rawdb.ReadHeaderByNumber(tx, number) + + if blockHeader == nil { + return 0 + } + + if blockHeader.Hash() == hash { + return number + } + } + + return 0 +} + +// CurrentFinalizedBlock retrieves the current finalized block of the canonical +// chain. The block is retrieved from the blockchain's internal cache. +func CurrentFinalizedBlock(tx kv.Tx, number uint64) *types.Block { + hash, err := rawdb.ReadCanonicalHash(tx, number) + if err != nil || hash == (common.Hash{}) { + return nil + } + + return rawdb.ReadBlock(tx, hash, number) +} diff --git a/consensus/bor/finality/bor_verifier.go b/consensus/bor/finality/bor_verifier.go new file mode 100644 index 00000000000..a8dde9dc1ce --- /dev/null +++ b/consensus/bor/finality/bor_verifier.go @@ -0,0 +1,165 @@ +// nolint +package finality + +import ( + "context" + "errors" + "fmt" + + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon/consensus/bor/finality/generics" + "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" + "github.com/ledgerwatch/erigon/core/rawdb" +) + +var ( + // errMissingBlocks is returned when we don't have the blocks locally, yet. + errMissingBlocks = errors.New("missing blocks") + + // errRootHash is returned when we aren't able to calculate the root hash + // locally for a range of blocks. + errRootHash = errors.New("failed to get local root hash") + + // errHashMismatch is returned when the local hash doesn't match + // with the hash of checkpoint/milestone. It is the root hash of blocks + // in case of checkpoint and is end block hash in case of milestones. + errHashMismatch = errors.New("hash mismatch") + + // errEndBlock is returned when we're unable to fetch a block locally. + errEndBlock = errors.New("failed to get end block") + + //Metrics for collecting the rewindLength + rewindLengthMeter = metrics.GetOrCreateGauge("chain_autorewind_length") +) + +type borVerifier struct { + verify func(ctx context.Context, config *config, start uint64, end uint64, hash string, isCheckpoint bool) (string, error) +} + +func newBorVerifier() *borVerifier { + return &borVerifier{borVerify} +} + +func borVerify(ctx context.Context, config *config, start uint64, end uint64, hash string, isCheckpoint bool) (string, error) { + roTx, err := config.chainDB.BeginRo(ctx) + if err != nil { + return hash, err + } + defer roTx.Rollback() + + str := "milestone" + if isCheckpoint { + str = "checkpoint" + } + + service := whitelist.GetWhitelistingService() + + // check if we have the given blocks + currentBlock := rawdb.ReadCurrentBlockNumber(roTx) + if currentBlock == nil { + log.Debug("[bor] no current block marker yet: syncing...", "incoming", str) + return hash, errMissingBlocks + } + + head := *currentBlock + if head < end { + log.Debug("[bor] current head block behind incoming", "block", str, "head", head, "end block", end) + return hash, errMissingBlocks + } + + var localHash string + + // verify the hash + if isCheckpoint { + var err error + + // in case of checkpoint get the rootHash + localHash, err = config.borAPI.GetRootHash(start, end) + + if err != nil { + log.Debug("[bor] Failed to get root hash of given block range while whitelisting checkpoint", "start", start, "end", end, "err", err) + return hash, errRootHash + } + } else { + // in case of milestone(isCheckpoint==false) get the hash of endBlock + block, err := config.blockReader.BlockByNumber(ctx, roTx, end) + if err != nil { + log.Debug("[bor] Failed to get end block hash while whitelisting milestone", "number", end, "err", err) + return hash, errEndBlock + } + if block == nil { + err := fmt.Errorf("[bor] block not found: %d", end) + log.Debug("[bor] Failed to get end block hash while whitelisting milestone", "number", end, "err", err) + return hash, err + } + + localHash = fmt.Sprintf("%v", block.Hash())[2:] + } + + //nolint + if localHash != hash { + + if isCheckpoint { + log.Warn("[bor] Root hash mismatch while whitelisting checkpoint", "expected", localHash, "got", hash) + } else { + log.Warn("[bor] End block hash mismatch while whitelisting milestone", "expected", localHash, "got", hash) + } + + var ( + rewindTo uint64 + doExist bool + ) + + if doExist, rewindTo, _ = service.GetWhitelistedMilestone(); doExist { + + } else if doExist, rewindTo, _ = service.GetWhitelistedCheckpoint(); doExist { + + } else { + if start <= 0 { + rewindTo = 0 + } else { + rewindTo = start - 1 + } + } + + if head-rewindTo > 255 { + rewindTo = head - 255 + } + + if isCheckpoint { + log.Warn("[bor] Rewinding chain due to checkpoint root hash mismatch", "number", rewindTo) + } else { + log.Warn("[bor] Rewinding chain due to milestone endblock hash mismatch", "number", rewindTo) + } + + rewindBack(head, rewindTo) + + return hash, errHashMismatch + } + + // fetch the end block hash + block, err := config.blockReader.BlockByNumber(ctx, roTx, end) + if err != nil { + log.Debug("[bor] Failed to get end block hash while whitelisting", "err", err) + return hash, errEndBlock + } + if block == nil { + log.Debug("[bor] Current header behind the end block", "block", end) + return hash, errEndBlock + } + + hash = fmt.Sprintf("%v", block.Hash()) + + return hash, nil +} + +// Stop the miner if the mining process is running and rewind back the chain +func rewindBack(head uint64, rewindTo uint64) { + rewindLengthMeter.SetUint64(head - rewindTo) + + // Chain cannot be rewinded from this routine + // hence we are using a shared variable + generics.BorMilestoneRewind.Store(&rewindTo) +} diff --git a/consensus/bor/finality/flags/flags.go b/consensus/bor/finality/flags/flags.go new file mode 100644 index 00000000000..97090f4f08b --- /dev/null +++ b/consensus/bor/finality/flags/flags.go @@ -0,0 +1,3 @@ +package flags + +var Milestone = true diff --git a/consensus/bor/finality/generics/generics.go b/consensus/bor/finality/generics/generics.go new file mode 100644 index 00000000000..d54b26fbbda --- /dev/null +++ b/consensus/bor/finality/generics/generics.go @@ -0,0 +1,22 @@ +package generics + +import ( + "sync/atomic" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/core/types" +) + +func Empty[T any]() (t T) { + return +} + +// BorMilestoneRewind is used as a flag/variable +// Flag: if equals 0, no rewind according to bor whitelisting service +// Variable: if not equals 0, rewind chain back to BorMilestoneRewind +var BorMilestoneRewind atomic.Pointer[uint64] + +type Response struct { + Headers []*types.Header + Hashes []libcommon.Hash +} diff --git a/consensus/bor/finality/rawdb/checkpoint.go b/consensus/bor/finality/rawdb/checkpoint.go new file mode 100644 index 00000000000..eecf3a53236 --- /dev/null +++ b/consensus/bor/finality/rawdb/checkpoint.go @@ -0,0 +1,33 @@ +// nolint +package rawdb + +import ( + "errors" + + libcommon "github.com/ledgerwatch/erigon-lib/common" +) + +var ( + lastCheckpoint = []byte("LastCheckpoint") + + ErrEmptyLastFinality = errors.New("empty response while getting last finality") + ErrIncorrectFinality = errors.New("last checkpoint in the DB is incorrect") + ErrIncorrectFinalityToStore = errors.New("failed to marshal the last finality struct") + ErrDBNotResponding = errors.New("failed to store the last finality struct") + ErrIncorrectLockFieldToStore = errors.New("failed to marshal the lockField struct ") + ErrIncorrectLockField = errors.New("lock field in the DB is incorrect") + ErrIncorrectFutureMilestoneFieldToStore = errors.New("failed to marshal the future milestone field struct ") + ErrIncorrectFutureMilestoneField = errors.New("future milestone field in the DB is incorrect") +) + +type Checkpoint struct { + Finality +} + +func (c *Checkpoint) clone() *Checkpoint { + return &Checkpoint{} +} + +func (c *Checkpoint) block() (uint64, libcommon.Hash) { + return c.Block, c.Hash +} diff --git a/consensus/bor/finality/rawdb/milestone.go b/consensus/bor/finality/rawdb/milestone.go new file mode 100644 index 00000000000..d5ac8f49621 --- /dev/null +++ b/consensus/bor/finality/rawdb/milestone.go @@ -0,0 +1,250 @@ +package rawdb + +import ( + "context" + "encoding/json" + "fmt" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/consensus/bor/finality/generics" + "github.com/ledgerwatch/log/v3" +) + +var ( + lastMilestone = []byte("LastMilestone") + lockFieldKey = []byte("LockField") + futureMilestoneKey = []byte("FutureMilestoneField") +) + +type Finality struct { + Block uint64 + Hash libcommon.Hash +} + +type LockField struct { + Val bool + Block uint64 + Hash libcommon.Hash + IdList map[string]struct{} +} + +type FutureMilestoneField struct { + Order []uint64 + List map[uint64]libcommon.Hash +} + +func (f *Finality) set(block uint64, hash libcommon.Hash) { + f.Block = block + f.Hash = hash +} + +type Milestone struct { + Finality +} + +func (m *Milestone) clone() *Milestone { + return &Milestone{} +} + +func (m *Milestone) block() (uint64, libcommon.Hash) { + return m.Block, m.Hash +} + +func ReadFinality[T BlockFinality[T]](db kv.RwDB) (uint64, libcommon.Hash, error) { + lastTV, key := getKey[T]() + + var data []byte + + err := db.View(context.Background(), func(tx kv.Tx) error { + res, err := tx.GetOne(kv.BorFinality, key) + data = res + return err + }) + + if err != nil { + return 0, libcommon.Hash{}, fmt.Errorf("%w: empty response for %s", err, string(key)) + } + + if len(data) == 0 { + return 0, libcommon.Hash{}, fmt.Errorf("%w for %s", ErrEmptyLastFinality, string(key)) + } + + if err = json.Unmarshal(data, lastTV); err != nil { + log.Error(fmt.Sprintf("Unable to unmarshal the last %s block number in database", string(key)), "err", err) + + return 0, libcommon.Hash{}, fmt.Errorf("%w(%v) for %s, data %v(%q)", + ErrIncorrectFinality, err, string(key), data, string(data)) + } + + block, hash := lastTV.block() + + return block, hash, nil +} + +func WriteLastFinality[T BlockFinality[T]](db kv.RwDB, block uint64, hash libcommon.Hash) error { + lastTV, key := getKey[T]() + + lastTV.set(block, hash) + + enc, err := json.Marshal(lastTV) + if err != nil { + log.Error(fmt.Sprintf("Failed to marshal the %s struct", string(key)), "err", err) + + return fmt.Errorf("%w: %v for %s struct", ErrIncorrectFinalityToStore, err, string(key)) + } + + err = db.Update(context.Background(), func(tx kv.RwTx) error { + return tx.Put(kv.BorFinality, key, enc) + }) + + if err != nil { + log.Error(fmt.Sprintf("Failed to store the %s struct", string(key)), "err", err) + + return fmt.Errorf("%w: %v for %s struct", ErrDBNotResponding, err, string(key)) + } + + return nil +} + +type BlockFinality[T any] interface { + set(uint64, libcommon.Hash) + clone() T + block() (uint64, libcommon.Hash) +} + +func getKey[T BlockFinality[T]]() (T, []byte) { + lastT := generics.Empty[T]().clone() + + var key []byte + + switch any(lastT).(type) { + case *Milestone: + key = lastMilestone + case *Checkpoint: + key = lastCheckpoint + } + + return lastT, key +} + +func WriteLockField(db kv.RwDB, val bool, block uint64, hash libcommon.Hash, idListMap map[string]struct{}) error { + + lockField := LockField{ + Val: val, + Block: block, + Hash: hash, + IdList: idListMap, + } + + key := lockFieldKey + + enc, err := json.Marshal(lockField) + if err != nil { + log.Error("Failed to marshal the lock field struct", "err", err) + + return fmt.Errorf("%w: %v for lock field struct", ErrIncorrectLockFieldToStore, err) + } + + err = db.Update(context.Background(), func(tx kv.RwTx) error { + return tx.Put(kv.BorFinality, key, enc) + }) + + if err != nil { + log.Error("Failed to store the lock field struct", "err", err) + + return fmt.Errorf("%w: %v for lock field struct", ErrDBNotResponding, err) + } + + return nil +} + +func ReadLockField(db kv.RwDB) (bool, uint64, libcommon.Hash, map[string]struct{}, error) { + key := lockFieldKey + lockField := LockField{} + + var data []byte + err := db.View(context.Background(), func(tx kv.Tx) error { + res, err := tx.GetOne(kv.BorFinality, key) + data = res + return err + }) + + if err != nil { + return false, 0, libcommon.Hash{}, nil, fmt.Errorf("%w: empty response for lock field", err) + } + + if len(data) == 0 { + return false, 0, libcommon.Hash{}, nil, fmt.Errorf("%w for %s", ErrIncorrectLockField, string(key)) + } + + if err = json.Unmarshal(data, &lockField); err != nil { + log.Error(fmt.Sprintf("Unable to unmarshal the lock field in database"), "err", err) + + return false, 0, libcommon.Hash{}, nil, fmt.Errorf("%w(%v) for lock field , data %v(%q)", + ErrIncorrectLockField, err, data, string(data)) + } + + val, block, hash, idList := lockField.Val, lockField.Block, lockField.Hash, lockField.IdList + + return val, block, hash, idList, nil +} + +func WriteFutureMilestoneList(db kv.RwDB, order []uint64, list map[uint64]libcommon.Hash) error { + futureMilestoneField := FutureMilestoneField{ + Order: order, + List: list, + } + + key := futureMilestoneKey + + enc, err := json.Marshal(futureMilestoneField) + if err != nil { + log.Error("Failed to marshal the future milestone field struct", "err", err) + + return fmt.Errorf("%w: %v for future milestone field struct", ErrIncorrectFutureMilestoneFieldToStore, err) + } + + err = db.Update(context.Background(), func(tx kv.RwTx) error { + return tx.Put(kv.BorFinality, key, enc) + }) + + if err != nil { + log.Error("Failed to store the future milestone field struct", "err", err) + + return fmt.Errorf("%w: %v for future milestone field struct", ErrDBNotResponding, err) + } + + return nil +} + +func ReadFutureMilestoneList(db kv.RwDB) ([]uint64, map[uint64]libcommon.Hash, error) { + key := futureMilestoneKey + futureMilestoneField := FutureMilestoneField{} + + var data []byte + err := db.View(context.Background(), func(tx kv.Tx) error { + res, err := tx.GetOne(kv.BorFinality, key) + data = res + return err + }) + + if err != nil { + return nil, nil, fmt.Errorf("%w: empty response for future milestone field", err) + } + + if len(data) == 0 { + return nil, nil, fmt.Errorf("%w for %s", ErrIncorrectLockField, string(key)) + } + + if err = json.Unmarshal(data, &futureMilestoneField); err != nil { + log.Error(fmt.Sprintf("Unable to unmarshal the future milestone field in database"), "err", err) + + return nil, nil, fmt.Errorf("%w(%v) for future milestone field, data %v(%q)", + ErrIncorrectFutureMilestoneField, err, data, string(data)) + } + + order, list := futureMilestoneField.Order, futureMilestoneField.List + + return order, list, nil +} diff --git a/consensus/bor/finality/whitelist.go b/consensus/bor/finality/whitelist.go new file mode 100644 index 00000000000..76abfcc0d35 --- /dev/null +++ b/consensus/bor/finality/whitelist.go @@ -0,0 +1,237 @@ +package finality + +import ( + "context" + "errors" + "fmt" + "time" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/consensus/bor/finality/flags" + "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall" + "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/log/v3" +) + +type config struct { + heimdall heimdall.IHeimdallClient + borDB kv.RwDB + chainDB kv.RwDB + blockReader services.BlockReader + logger log.Logger + borAPI BorAPI + closeCh chan struct{} +} + +type BorAPI interface { + GetRootHash(start uint64, end uint64) (string, error) +} + +func Whitelist(heimdall heimdall.IHeimdallClient, borDB kv.RwDB, chainDB kv.RwDB, blockReader services.BlockReader, logger log.Logger, borAPI BorAPI, closeCh chan struct{}) { + if !flags.Milestone { + return + } + + config := &config{ + heimdall: heimdall, + borDB: borDB, + chainDB: chainDB, + blockReader: blockReader, + logger: logger, + borAPI: borAPI, + closeCh: closeCh, + } + + go startCheckpointWhitelistService(config) + go startMilestoneWhitelistService(config) + go startNoAckMilestoneService(config) + go startNoAckMilestoneByIDService(config) +} + +const ( + whitelistTimeout = 30 * time.Second + noAckMilestoneTimeout = 4 * time.Second +) + +// StartCheckpointWhitelistService starts the goroutine to fetch checkpoints and update the +// checkpoint whitelist map. +func startCheckpointWhitelistService(config *config) { + const ( + tickerDuration = 100 * time.Second + fnName = "whitelist checkpoint" + ) + + RetryHeimdallHandler(handleWhitelistCheckpoint, config, tickerDuration, whitelistTimeout, fnName) +} + +// startMilestoneWhitelistService starts the goroutine to fetch milestiones and update the +// milestone whitelist map. +func startMilestoneWhitelistService(config *config) { + const ( + tickerDuration = 12 * time.Second + fnName = "whitelist milestone" + ) + + RetryHeimdallHandler(handleMilestone, config, tickerDuration, whitelistTimeout, fnName) +} + +func startNoAckMilestoneService(config *config) { + const ( + tickerDuration = 6 * time.Second + fnName = "no-ack-milestone service" + ) + + RetryHeimdallHandler(handleNoAckMilestone, config, tickerDuration, noAckMilestoneTimeout, fnName) +} + +func startNoAckMilestoneByIDService(config *config) { + const ( + tickerDuration = 1 * time.Minute + fnName = "no-ack-milestone-by-id service" + ) + + RetryHeimdallHandler(handleNoAckMilestoneByID, config, tickerDuration, noAckMilestoneTimeout, fnName) +} + +type heimdallHandler func(ctx context.Context, heimdallClient heimdall.IHeimdallClient, config *config) error + +func RetryHeimdallHandler(fn heimdallHandler, config *config, tickerDuration time.Duration, timeout time.Duration, fnName string) { + retryHeimdallHandler(fn, config, tickerDuration, timeout, fnName) +} + +func retryHeimdallHandler(fn heimdallHandler, config *config, tickerDuration time.Duration, timeout time.Duration, fnName string) { + // a shortcut helps with tests and early exit + select { + case <-config.closeCh: + return + default: + } + + if config.heimdall == nil { + config.logger.Error("[bor] engine not available") + return + } + + // first run for fetching milestones + firstCtx, cancel := context.WithTimeout(context.Background(), timeout) + err := fn(firstCtx, config.heimdall, config) + + cancel() + + if err != nil { + if !errors.Is(err, errMissingBlocks) { + config.logger.Warn(fmt.Sprintf("[bor] unable to start the %s service - first run", fnName), "err", err) + } + } + + ticker := time.NewTicker(tickerDuration) + defer ticker.Stop() + + for { + defer func() { + r := recover() + if r != nil { + log.Warn(fmt.Sprintf("[bor] service %s- run failed with panic", fnName), "err", r) + } + }() + + select { + case <-ticker.C: + ctx, cancel := context.WithTimeout(context.Background(), timeout) + err := fn(ctx, config.heimdall, config) + + cancel() + + if err != nil { + if errors.Is(err, errMissingBlocks) { + config.logger.Debug(fmt.Sprintf("[bor] unable to handle %s", fnName), "err", err) + } else { + config.logger.Warn(fmt.Sprintf("[bor] unable to handle %s", fnName), "err", err) + } + } + case <-config.closeCh: + return + } + } +} + +// handleWhitelistCheckpoint handles the checkpoint whitelist mechanism. +func handleWhitelistCheckpoint(ctx context.Context, heimdallClient heimdall.IHeimdallClient, config *config) error { + service := whitelist.GetWhitelistingService() + + // Create a new bor verifier, which will be used to verify checkpoints and milestones + verifier := newBorVerifier() + blockNum, blockHash, err := fetchWhitelistCheckpoint(ctx, heimdallClient, verifier, config) + + // If the array is empty, we're bound to receive an error. Non-nill error and non-empty array + // means that array has partial elements and it failed for some block. We'll add those partial + // elements anyway. + if err != nil { + return err + } + + service.ProcessCheckpoint(blockNum, blockHash) + + return nil +} + +// handleMilestone handles the milestone mechanism. +func handleMilestone(ctx context.Context, heimdallClient heimdall.IHeimdallClient, config *config) error { + service := whitelist.GetWhitelistingService() + + // Create a new bor verifier, which will be used to verify checkpoints and milestones + verifier := newBorVerifier() + num, hash, err := fetchWhitelistMilestone(ctx, heimdallClient, verifier, config) + + // If the current chain head is behind the received milestone, add it to the future milestone + // list. Also, the hash mismatch (end block hash) error will lead to rewind so also + // add that milestone to the future milestone list. + if errors.Is(err, errMissingBlocks) || errors.Is(err, errHashMismatch) { + service.ProcessFutureMilestone(num, hash) + return nil + } + + if errors.Is(err, heimdall.ErrServiceUnavailable) { + return nil + } + + if err != nil { + return err + } + + service.ProcessMilestone(num, hash) + + return nil +} + +func handleNoAckMilestone(ctx context.Context, heimdallClient heimdall.IHeimdallClient, config *config) error { + service := whitelist.GetWhitelistingService() + milestoneID, err := fetchNoAckMilestone(ctx, heimdallClient, config.logger) + + if errors.Is(err, heimdall.ErrServiceUnavailable) { + return nil + } + + if err != nil { + return err + } + + service.RemoveMilestoneID(milestoneID) + + return nil +} + +func handleNoAckMilestoneByID(ctx context.Context, heimdallClient heimdall.IHeimdallClient, config *config) error { + service := whitelist.GetWhitelistingService() + milestoneIDs := service.GetMilestoneIDsList() + + for _, milestoneID := range milestoneIDs { + err := fetchNoAckMilestoneByID(ctx, heimdallClient, milestoneID, config.logger) + if err == nil { + service.RemoveMilestoneID(milestoneID) + } + } + + return nil +} diff --git a/consensus/bor/finality/whitelist/checkpoint.go b/consensus/bor/finality/whitelist/checkpoint.go new file mode 100644 index 00000000000..fc4a1443610 --- /dev/null +++ b/consensus/bor/finality/whitelist/checkpoint.go @@ -0,0 +1,49 @@ +package whitelist + +import ( + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon/consensus/bor/finality/rawdb" + "github.com/ledgerwatch/erigon/core/types" +) + +type checkpoint struct { + finality[*rawdb.Checkpoint] +} +type checkpointService interface { + finalityService +} + +var ( + //Metrics for collecting the whitelisted milestone number + whitelistedCheckpointNumberMeter = metrics.GetOrCreateGauge("chain_checkpoint_latest") + + //Metrics for collecting the number of invalid chains received + checkpointChainMeter = metrics.GetOrCreateGauge("chain_checkpoint_isvalidchain") +) + +// IsValidChain checks the validity of chain by comparing it +// against the local checkpoint entry +func (w *checkpoint) IsValidChain(currentHeader uint64, chain []*types.Header) bool { + w.finality.RLock() + defer w.finality.RUnlock() + + res := w.finality.IsValidChain(currentHeader, chain) + + if res { + checkpointChainMeter.Inc() + } else { + checkpointChainMeter.Dec() + } + + return res +} + +func (w *checkpoint) Process(block uint64, hash common.Hash) { + w.finality.Lock() + defer w.finality.Unlock() + + w.finality.Process(block, hash) + + whitelistedCheckpointNumberMeter.SetUint64(block) +} diff --git a/consensus/bor/finality/whitelist/finality.go b/consensus/bor/finality/whitelist/finality.go new file mode 100644 index 00000000000..f1abbbf3df6 --- /dev/null +++ b/consensus/bor/finality/whitelist/finality.go @@ -0,0 +1,78 @@ +package whitelist + +import ( + "sync" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/consensus/bor/finality/rawdb" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/log/v3" +) + +type finality[T rawdb.BlockFinality[T]] struct { + sync.RWMutex + db kv.RwDB + Hash common.Hash // Whitelisted Hash, populated by reaching out to heimdall + Number uint64 // Number , populated by reaching out to heimdall + interval uint64 // Interval, until which we can allow importing + doExist bool +} + +type finalityService interface { + IsValidChain(currentHeader uint64, chain []*types.Header) bool + Get() (bool, uint64, common.Hash) + Process(block uint64, hash common.Hash) + Purge() +} + +// IsValidChain checks the validity of chain by comparing it +// against the local checkpoint entry +func (f *finality[T]) IsValidChain(currentHeader uint64, chain []*types.Header) bool { + // Return if we've received empty chain + if len(chain) == 0 { + return false + } + + res := isValidChain(currentHeader, chain, f.doExist, f.Number, f.Hash, f.interval) + + return res +} + +func (f *finality[T]) Process(block uint64, hash common.Hash) { + f.doExist = true + f.Hash = hash + f.Number = block + + err := rawdb.WriteLastFinality[T](f.db, block, hash) + + if err != nil { + log.Error("Error in writing whitelist state to db", "err", err) + } +} + +// Get returns the existing whitelisted +// entries of checkpoint of the form (doExist,block number,block hash.) +func (f *finality[T]) Get() (bool, uint64, common.Hash) { + f.RLock() + defer f.RUnlock() + + if f.doExist { + return f.doExist, f.Number, f.Hash + } + + block, hash, err := rawdb.ReadFinality[T](f.db) + if err != nil { + return false, f.Number, f.Hash + } + + return true, block, hash +} + +// Purge purges the whitlisted checkpoint +func (f *finality[T]) Purge() { + f.Lock() + defer f.Unlock() + + f.doExist = false +} diff --git a/consensus/bor/finality/whitelist/milestone.go b/consensus/bor/finality/whitelist/milestone.go new file mode 100644 index 00000000000..0d80ed4b5a7 --- /dev/null +++ b/consensus/bor/finality/whitelist/milestone.go @@ -0,0 +1,291 @@ +package whitelist + +import ( + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon/consensus/bor/finality/flags" + "github.com/ledgerwatch/erigon/consensus/bor/finality/rawdb" + "github.com/ledgerwatch/erigon/core/types" +) + +type milestone struct { + finality[*rawdb.Milestone] + + LockedMilestoneNumber uint64 // Locked sprint number + LockedMilestoneHash common.Hash //Hash for the locked endBlock + Locked bool // + LockedMilestoneIDs map[string]struct{} //list of milestone ids + + FutureMilestoneList map[uint64]common.Hash // Future Milestone list + FutureMilestoneOrder []uint64 // Future Milestone Order + MaxCapacity int //Capacity of future Milestone list +} + +type milestoneService interface { + finalityService + + GetMilestoneIDsList() []string + RemoveMilestoneID(milestoneId string) + LockMutex(endBlockNum uint64) bool + UnlockMutex(doLock bool, milestoneId string, endBlockNum uint64, endBlockHash common.Hash) + UnlockSprint(endBlockNum uint64) + ProcessFutureMilestone(num uint64, hash common.Hash) +} + +var ( + //Metrics for collecting the whitelisted milestone number + whitelistedMilestoneMeter = metrics.GetOrCreateGauge("chain_milestone_latest") + + //Metrics for collecting the future milestone number + futureMilestoneMeter = metrics.GetOrCreateGauge("chain_milestone_future") + + //Metrics for collecting the length of the MilestoneIds map + milestoneIdsLengthMeter = metrics.GetOrCreateGauge("chain_milestone_idslength") + + //Metrics for collecting the number of valid chains received + milestoneChainMeter = metrics.GetOrCreateGauge("chain_milestone_isvalidchain") +) + +// IsValidChain checks the validity of chain by comparing it +// against the local milestone entries +func (m *milestone) IsValidChain(currentHeader uint64, chain []*types.Header) bool { + //Checking for the milestone flag + if !flags.Milestone { + return true + } + + m.finality.RLock() + defer m.finality.RUnlock() + + var isValid = false + defer func() { + if isValid { + milestoneChainMeter.Inc() + } else { + milestoneChainMeter.Dec() + } + }() + + res := m.finality.IsValidChain(currentHeader, chain) + + if !res { + isValid = false + return false + } + + if m.Locked && !m.IsReorgAllowed(chain, m.LockedMilestoneNumber, m.LockedMilestoneHash) { + isValid = false + return false + } + + if !m.IsFutureMilestoneCompatible(chain) { + isValid = false + return false + } + + isValid = true + return true +} + +func (m *milestone) Process(block uint64, hash common.Hash) { + m.finality.Lock() + defer m.finality.Unlock() + + m.finality.Process(block, hash) + + for i := 0; i < len(m.FutureMilestoneOrder); i++ { + if m.FutureMilestoneOrder[i] <= block { + m.dequeueFutureMilestone() + } else { + break + } + } + + whitelistedMilestoneMeter.SetUint64(block) + + m.UnlockSprint(block) +} + +// LockMutex This function will Lock the mutex at the time of voting +func (m *milestone) LockMutex(endBlockNum uint64) bool { + m.finality.Lock() + + if m.doExist && endBlockNum <= m.Number { //if endNum is less than whitelisted milestone, then we won't lock the sprint + log.Debug("[bor] endBlockNumber is less than or equal to latesMilestoneNumber", "endBlock Number", endBlockNum, "LatestMilestone Number", m.Number) + return false + } + + if m.Locked && endBlockNum < m.LockedMilestoneNumber { + log.Debug("[bor] endBlockNum is less than locked milestone number", "endBlock Number", endBlockNum, "Locked Milestone Number", m.LockedMilestoneNumber) + return false + } + + return true +} + +// UnlockMutex This function will unlock the mutex locked in LockMutex +func (m *milestone) UnlockMutex(doLock bool, milestoneId string, endBlockNum uint64, endBlockHash common.Hash) { + m.Locked = m.Locked || doLock + + if doLock { + m.UnlockSprint(m.LockedMilestoneNumber) + m.Locked = true + m.LockedMilestoneHash = endBlockHash + m.LockedMilestoneNumber = endBlockNum + m.LockedMilestoneIDs[milestoneId] = struct{}{} + } + + err := rawdb.WriteLockField(m.db, m.Locked, m.LockedMilestoneNumber, m.LockedMilestoneHash, m.LockedMilestoneIDs) + if err != nil { + log.Error("Error in writing lock data of milestone to db", "err", err) + } + + milestoneIdsLengthMeter.SetInt(len(m.LockedMilestoneIDs)) + + m.finality.Unlock() +} + +// UnlockSprint This function will unlock the locked sprint +func (m *milestone) UnlockSprint(endBlockNum uint64) { + if endBlockNum < m.LockedMilestoneNumber { + return + } + + m.Locked = false + m.purgeMilestoneIDsList() + + err := rawdb.WriteLockField(m.db, m.Locked, m.LockedMilestoneNumber, m.LockedMilestoneHash, m.LockedMilestoneIDs) + + if err != nil { + log.Error("[bor] Error in writing lock data of milestone to db", "err", err) + } +} + +// RemoveMilestoneID This function will remove the stored milestoneID +func (m *milestone) RemoveMilestoneID(milestoneId string) { + m.finality.Lock() + defer m.finality.Unlock() + + delete(m.LockedMilestoneIDs, milestoneId) + + if len(m.LockedMilestoneIDs) == 0 { + m.Locked = false + } + + err := rawdb.WriteLockField(m.db, m.Locked, m.LockedMilestoneNumber, m.LockedMilestoneHash, m.LockedMilestoneIDs) + + if err != nil { + log.Error("[bor] Error in writing lock data of milestone to db", "err", err) + } + +} + +// IsReorgAllowed This will check whether the incoming chain matches the locked sprint hash +func (m *milestone) IsReorgAllowed(chain []*types.Header, lockedMilestoneNumber uint64, lockedMilestoneHash common.Hash) bool { + if chain[len(chain)-1].Number.Uint64() <= lockedMilestoneNumber { //Can't reorg if the end block of incoming + return false //chain is less than locked sprint number + } + + for i := 0; i < len(chain); i++ { + if chain[i].Number.Uint64() == lockedMilestoneNumber { + return chain[i].Hash() == lockedMilestoneHash + } + } + + return true +} + +// GetMilestoneIDsList This will return the list of milestoneIDs stored. +func (m *milestone) GetMilestoneIDsList() []string { + m.finality.RLock() + defer m.finality.RUnlock() + + // fixme: use generics :) + keys := make([]string, 0, len(m.LockedMilestoneIDs)) + for key := range m.LockedMilestoneIDs { + keys = append(keys, key) + } + + return keys +} + +// This is remove the milestoneIDs stored in the list. +func (m *milestone) purgeMilestoneIDsList() { + m.LockedMilestoneIDs = make(map[string]struct{}) +} + +func (m *milestone) IsFutureMilestoneCompatible(chain []*types.Header) bool { + //Tip of the received chain + chainTipNumber := chain[len(chain)-1].Number.Uint64() + + for i := len(m.FutureMilestoneOrder) - 1; i >= 0; i-- { + //Finding out the highest future milestone number + //which is less or equal to received chain tip + if chainTipNumber >= m.FutureMilestoneOrder[i] { + //Looking for the received chain 's particular block number(matching future milestone number) + for j := len(chain) - 1; j >= 0; j-- { + if chain[j].Number.Uint64() == m.FutureMilestoneOrder[i] { + endBlockNum := m.FutureMilestoneOrder[i] + endBlockHash := m.FutureMilestoneList[endBlockNum] + + //Checking the received chain matches with future milestone + return chain[j].Hash() == endBlockHash + } + } + } + } + + return true +} + +func (m *milestone) ProcessFutureMilestone(num uint64, hash common.Hash) { + if len(m.FutureMilestoneOrder) < m.MaxCapacity { + m.enqueueFutureMilestone(num, hash) + } + + if num < m.LockedMilestoneNumber { + return + } + + m.Locked = false + m.purgeMilestoneIDsList() + + err := rawdb.WriteLockField(m.db, m.Locked, m.LockedMilestoneNumber, m.LockedMilestoneHash, m.LockedMilestoneIDs) + + if err != nil { + log.Error("[bor] Error in writing lock data of milestone to db", "err", err) + } +} + +// EnqueueFutureMilestone add the future milestone to the list +func (m *milestone) enqueueFutureMilestone(key uint64, hash common.Hash) { + if _, ok := m.FutureMilestoneList[key]; ok { + log.Debug("[bor] Future milestone already exist", "endBlockNumber", key, "futureMilestoneHash", hash) + return + } + + log.Debug("[bor] Enqueing new future milestone", "endBlockNumber", key, "futureMilestoneHash", hash) + + m.FutureMilestoneList[key] = hash + m.FutureMilestoneOrder = append(m.FutureMilestoneOrder, key) + + err := rawdb.WriteFutureMilestoneList(m.db, m.FutureMilestoneOrder, m.FutureMilestoneList) + if err != nil { + log.Error("[bor] Error in writing future milestone data to db", "err", err) + } + + futureMilestoneMeter.SetUint64(key) +} + +// DequeueFutureMilestone remove the future milestone entry from the list. +func (m *milestone) dequeueFutureMilestone() { + delete(m.FutureMilestoneList, m.FutureMilestoneOrder[0]) + m.FutureMilestoneOrder = m.FutureMilestoneOrder[1:] + + err := rawdb.WriteFutureMilestoneList(m.db, m.FutureMilestoneOrder, m.FutureMilestoneList) + if err != nil { + log.Error("[bor] Error in writing future milestone data to db", "err", err) + } +} diff --git a/consensus/bor/finality/whitelist/service.go b/consensus/bor/finality/whitelist/service.go new file mode 100644 index 00000000000..7bf7aa89819 --- /dev/null +++ b/consensus/bor/finality/whitelist/service.go @@ -0,0 +1,191 @@ +package whitelist + +import ( + "errors" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/consensus/bor/finality/rawdb" + "github.com/ledgerwatch/erigon/core/types" +) + +var ( + ErrMismatch = errors.New("mismatch error") + ErrNoRemote = errors.New("remote peer doesn't have a target block number") +) + +type Service struct { + checkpointService + milestoneService +} + +var ws *Service + +func RegisterService(db kv.RwDB) { + ws = NewService(db) +} + +func GetWhitelistingService() *Service { + return ws +} + +func NewService(db kv.RwDB) *Service { + var checkpointDoExist = true + checkpointNumber, checkpointHash, err := rawdb.ReadFinality[*rawdb.Checkpoint](db) + + if err != nil { + checkpointDoExist = false + } + + var milestoneDoExist = true + + milestoneNumber, milestoneHash, err := rawdb.ReadFinality[*rawdb.Milestone](db) + if err != nil { + milestoneDoExist = false + } + + locked, lockedMilestoneNumber, lockedMilestoneHash, lockedMilestoneIDs, err := rawdb.ReadLockField(db) + if err != nil || !locked { + locked = false + lockedMilestoneIDs = make(map[string]struct{}) + } + + order, list, err := rawdb.ReadFutureMilestoneList(db) + if err != nil { + order = make([]uint64, 0) + list = make(map[uint64]common.Hash) + } + + return &Service{ + &checkpoint{ + finality[*rawdb.Checkpoint]{ + doExist: checkpointDoExist, + Number: checkpointNumber, + Hash: checkpointHash, + interval: 256, + db: db, + }, + }, + + &milestone{ + finality: finality[*rawdb.Milestone]{ + doExist: milestoneDoExist, + Number: milestoneNumber, + Hash: milestoneHash, + interval: 256, + db: db, + }, + + Locked: locked, + LockedMilestoneNumber: lockedMilestoneNumber, + LockedMilestoneHash: lockedMilestoneHash, + LockedMilestoneIDs: lockedMilestoneIDs, + FutureMilestoneList: list, + FutureMilestoneOrder: order, + MaxCapacity: 10, + }, + } +} + +func (s *Service) PurgeWhitelistedCheckpoint() error { + s.checkpointService.Purge() + return nil +} + +func (s *Service) PurgeWhitelistedMilestone() error { + s.milestoneService.Purge() + return nil +} + +func (s *Service) GetWhitelistedCheckpoint() (bool, uint64, common.Hash) { + return s.checkpointService.Get() +} + +func (s *Service) GetWhitelistedMilestone() (bool, uint64, common.Hash) { + return s.milestoneService.Get() +} + +func (s *Service) ProcessMilestone(endBlockNum uint64, endBlockHash common.Hash) { + s.milestoneService.Process(endBlockNum, endBlockHash) +} + +func (s *Service) ProcessCheckpoint(endBlockNum uint64, endBlockHash common.Hash) { + s.checkpointService.Process(endBlockNum, endBlockHash) +} + +func (s *Service) IsValidChain(currentHeader uint64, chain []*types.Header) bool { + checkpointBool := s.checkpointService.IsValidChain(currentHeader, chain) + if !checkpointBool { + return checkpointBool + } + + milestoneBool := s.milestoneService.IsValidChain(currentHeader, chain) + if !milestoneBool { + return milestoneBool + } + + return true +} + +func (s *Service) GetMilestoneIDsList() []string { + return s.milestoneService.GetMilestoneIDsList() +} + +func splitChain(current uint64, chain []*types.Header) ([]*types.Header, []*types.Header) { + var ( + pastChain []*types.Header + futureChain []*types.Header + first = chain[0].Number.Uint64() + last = chain[len(chain)-1].Number.Uint64() + ) + + if current >= first { + if len(chain) == 1 || current >= last { + pastChain = chain + } else { + pastChain = chain[:current-first+1] + } + } + + if current < last { + if len(chain) == 1 || current < first { + futureChain = chain + } else { + futureChain = chain[current-first+1:] + } + } + + return pastChain, futureChain +} + +func isValidChain(currentHeader uint64, chain []*types.Header, doExist bool, number uint64, hash common.Hash, interval uint64) bool { + // Check if we have milestone to validate incoming chain in memory + if !doExist { + // We don't have any entry, no additional validation will be possible + return true + } + + // Check if imported chain is less than whitelisted number + if chain[len(chain)-1].Number.Uint64() < number { + if currentHeader >= number { //If current tip of the chain is greater than whitelist number then return false + return false + } else { + return true + } + } + + // Split the chain into past and future chain + pastChain, _ := splitChain(currentHeader, chain) + + // Iterate over the chain and validate against the last milestone + // It will handle all cases when the incoming chain has atleast one milestone + for i := len(pastChain) - 1; i >= 0; i-- { + if pastChain[i].Number.Uint64() == number { + res := pastChain[i].Hash() == hash + + return res + } + } + + return true +} diff --git a/consensus/bor/finality/whitelist/service_test.go b/consensus/bor/finality/whitelist/service_test.go new file mode 100644 index 00000000000..0a45e6fe712 --- /dev/null +++ b/consensus/bor/finality/whitelist/service_test.go @@ -0,0 +1,944 @@ +package whitelist + +import ( + "fmt" + "math/big" + "reflect" + "sort" + "testing" + "time" + + "github.com/ledgerwatch/erigon-lib/common" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon/consensus/bor/finality/rawdb" + "github.com/ledgerwatch/erigon/core/types" + "github.com/stretchr/testify/require" + + "pgregory.net/rapid" +) + +// NewMockService creates a new mock whitelist service +func NewMockService(db kv.RwDB) *Service { + return &Service{ + + &checkpoint{ + finality[*rawdb.Checkpoint]{ + doExist: false, + interval: 256, + db: db, + }, + }, + + &milestone{ + finality: finality[*rawdb.Milestone]{ + doExist: false, + interval: 256, + db: db, + }, + LockedMilestoneIDs: make(map[string]struct{}), + FutureMilestoneList: make(map[uint64]libcommon.Hash), + FutureMilestoneOrder: make([]uint64, 0), + MaxCapacity: 10, + }, + } +} + +// TestWhitelistCheckpoint checks the checkpoint whitelist setter and getter functions. +func TestWhitelistedCheckpoint(t *testing.T) { + t.Parallel() + + db := memdb.NewTestDB(t) + + //Creating the service for the whitelisting the checkpoints + s := NewMockService(db) + + cp := s.checkpointService.(*checkpoint) + + require.Equal(t, cp.doExist, false, "expected false as no cp exist at this point") + + _, _, err := rawdb.ReadFinality[*rawdb.Checkpoint](db) + require.NotNil(t, err, "Error should be nil while reading from the db") + //Adding the checkpoint + s.ProcessCheckpoint(11, libcommon.Hash{}) + + require.Equal(t, cp.doExist, true, "expected true as cp exist") + + //Removing the checkpoint + s.PurgeWhitelistedCheckpoint() + + require.Equal(t, cp.doExist, false, "expected false as no cp exist at this point") + + //Adding the checkpoint + s.ProcessCheckpoint(12, libcommon.Hash{1}) + + // //Receiving the stored checkpoint + doExist, number, hash := s.GetWhitelistedCheckpoint() + + // //Validating the values received + require.Equal(t, doExist, true, "expected true ascheckpoint exist at this point") + require.Equal(t, number, uint64(12), "expected number to be 11 but got", number) + require.Equal(t, hash, libcommon.Hash{1}, "expected the 1 hash but got", hash) + require.NotEqual(t, hash, libcommon.Hash{}, "expected the hash to be different from zero hash") + + s.PurgeWhitelistedCheckpoint() + doExist, number, hash = s.GetWhitelistedCheckpoint() + //Validating the values received from the db, not memory + require.Equal(t, doExist, true, "expected true ascheckpoint exist at this point") + require.Equal(t, number, uint64(12), "expected number to be 11 but got", number) + require.Equal(t, hash, libcommon.Hash{1}, "expected the 1 hash but got", hash) + require.NotEqual(t, hash, libcommon.Hash{}, "expected the hash to be different from zero hash") + + checkpointNumber, checkpointHash, err := rawdb.ReadFinality[*rawdb.Checkpoint](db) + require.Nil(t, err, "Error should be nil while reading from the db") + require.Equal(t, checkpointHash, libcommon.Hash{1}, "expected the 1 hash but got", hash) + require.Equal(t, checkpointNumber, uint64(12), "expected number to be 11 but got", number) +} + +// TestMilestone checks the milestone whitelist setter and getter functions +func TestMilestone(t *testing.T) { + t.Parallel() + + db := memdb.NewTestDB(t) + + s := NewMockService(db) + + milestone := s.milestoneService.(*milestone) + + //Checking for the variables when no milestone is Processed + require.Equal(t, milestone.doExist, false, "expected false as no milestone exist at this point") + require.Equal(t, milestone.Locked, false, "expected false as it was not locked") + require.Equal(t, milestone.LockedMilestoneNumber, uint64(0), "expected 0 as it was not initialized") + + _, _, err := rawdb.ReadFinality[*rawdb.Milestone](db) + require.NotNil(t, err, "Error should be nil while reading from the db") + + //Acquiring the mutex lock + milestone.LockMutex(11) + require.Equal(t, milestone.Locked, false, "expected false as sprint is not locked till this point") + + //Releasing the mutex lock + milestone.UnlockMutex(true, "milestoneID1", uint64(11), common.Hash{}) + require.Equal(t, milestone.LockedMilestoneNumber, uint64(11), "expected 11 as it was not initialized") + require.Equal(t, milestone.Locked, true, "expected true as sprint is locked now") + require.Equal(t, len(milestone.LockedMilestoneIDs), 1, "expected 1 as only 1 milestoneID has been entered") + + _, ok := milestone.LockedMilestoneIDs["milestoneID1"] + require.True(t, ok, "milestoneID1 should exist in the LockedMilestoneIDs map") + + _, ok = milestone.LockedMilestoneIDs["milestoneID2"] + require.False(t, ok, "milestoneID2 shouldn't exist in the LockedMilestoneIDs map") + + milestone.LockMutex(11) + milestone.UnlockMutex(true, "milestoneID2", uint64(11), common.Hash{}) + require.Equal(t, len(milestone.LockedMilestoneIDs), 1, "expected 1 as only 1 milestoneID has been entered") + + _, ok = milestone.LockedMilestoneIDs["milestoneID2"] + require.True(t, ok, "milestoneID2 should exist in the LockedMilestoneIDs map") + + milestone.RemoveMilestoneID("milestoneID1") + require.Equal(t, len(milestone.LockedMilestoneIDs), 1, "expected 1 as one out of two has been removed in previous step") + require.Equal(t, milestone.Locked, true, "expected true as sprint is locked now") + + milestone.RemoveMilestoneID("milestoneID2") + require.Equal(t, len(milestone.LockedMilestoneIDs), 0, "expected 1 as both the milestonesIDs has been removed in previous step") + require.Equal(t, milestone.Locked, false, "expected false") + + milestone.LockMutex(11) + milestone.UnlockMutex(true, "milestoneID3", uint64(11), common.Hash{}) + require.True(t, milestone.Locked, "expected true") + require.Equal(t, milestone.LockedMilestoneNumber, uint64(11), "Expected 11") + + milestone.LockMutex(15) + require.True(t, milestone.Locked, "expected true") + require.Equal(t, milestone.LockedMilestoneNumber, uint64(11), "Expected 11") + milestone.UnlockMutex(true, "milestoneID4", uint64(15), common.Hash{}) + require.True(t, milestone.Locked, "expected true as final confirmation regarding the lock has been made") + require.Equal(t, len(milestone.LockedMilestoneIDs), 1, "expected 1 as previous milestonesIDs has been removed in previous step") + + //Adding the milestone + s.ProcessMilestone(11, common.Hash{}) + + require.True(t, milestone.Locked, "expected true as locked sprint is of number 15") + require.Equal(t, milestone.doExist, true, "expected true as milestone exist") + require.Equal(t, len(milestone.LockedMilestoneIDs), 1, "expected 1 as still last milestone of sprint number 15 exist") + + //Reading from the Db + locked, lockedMilestoneNumber, lockedMilestoneHash, lockedMilestoneIDs, err := rawdb.ReadLockField(db) + + require.Nil(t, err) + require.True(t, locked, "expected true as locked sprint is of number 15") + require.Equal(t, lockedMilestoneNumber, uint64(15), "Expected 15") + require.Equal(t, lockedMilestoneHash, common.Hash{}, "Expected", common.Hash{}) + require.Equal(t, len(lockedMilestoneIDs), 1, "expected 1 as still last milestone of sprint number 15 exist") + + _, ok = lockedMilestoneIDs["milestoneID4"] + require.True(t, ok, "expected true as milestoneIDList should contain 'milestoneID4'") + + //Asking the lock for sprintNumber less than last whitelisted milestone + require.False(t, milestone.LockMutex(11), "Cant lock the sprintNumber less than equal to latest whitelisted milestone") + milestone.UnlockMutex(false, "", uint64(11), common.Hash{}) //Unlock is required after every lock to release the mutex + + //Adding the milestone + s.ProcessMilestone(51, common.Hash{}) + require.False(t, milestone.Locked, "expected false as lock from sprint number 15 is removed") + require.Equal(t, milestone.doExist, true, "expected true as milestone exist") + require.Equal(t, len(milestone.LockedMilestoneIDs), 0, "expected 0 as all the milestones have been removed") + + //Reading from the Db + locked, _, _, lockedMilestoneIDs, err = rawdb.ReadLockField(db) + + require.Nil(t, err) + require.False(t, locked, "expected true as locked sprint is of number 15") + require.Equal(t, len(lockedMilestoneIDs), 0, "expected 0 as milestoneID exist in the map") + + //Removing the milestone + s.PurgeWhitelistedMilestone() + + require.Equal(t, milestone.doExist, false, "expected false as no milestone exist at this point") + + //Removing the milestone + s.ProcessMilestone(11, common.Hash{1}) + + doExist, number, hash := s.GetWhitelistedMilestone() + + //validating the values received + require.Equal(t, doExist, true, "expected true as milestone exist at this point") + require.Equal(t, number, uint64(11), "expected number to be 11 but got", number) + require.Equal(t, hash, common.Hash{1}, "expected the 1 hash but got", hash) + + s.PurgeWhitelistedMilestone() + doExist, number, hash = s.GetWhitelistedMilestone() + + //Validating the values received from the db, not memory + require.Equal(t, doExist, true, "expected true as milestone exist at this point") + require.Equal(t, number, uint64(11), "expected number to be 11 but got", number) + require.Equal(t, hash, common.Hash{1}, "expected the 1 hash but got", hash) + + milestoneNumber, milestoneHash, err := rawdb.ReadFinality[*rawdb.Milestone](db) + require.Nil(t, err, "Error should be nil while reading from the db") + require.Equal(t, milestoneHash, common.Hash{1}, "expected the 1 hash but got", hash) + require.Equal(t, milestoneNumber, uint64(11), "expected number to be 11 but got", number) + + _, _, err = rawdb.ReadFutureMilestoneList(db) + require.NotNil(t, err, "Error should be not nil") + + s.ProcessFutureMilestone(16, common.Hash{16}) + require.Equal(t, len(milestone.FutureMilestoneOrder), 1, "expected length is 1 as we added only 1 future milestone") + require.Equal(t, milestone.FutureMilestoneOrder[0], uint64(16), "expected value is 16 but got", milestone.FutureMilestoneOrder[0]) + require.Equal(t, milestone.FutureMilestoneList[16], common.Hash{16}, "expected value is", common.Hash{16}.String()[2:], "but got", milestone.FutureMilestoneList[16]) + + order, list, err := rawdb.ReadFutureMilestoneList(db) + require.Nil(t, err, "Error should be nil while reading from the db") + require.Equal(t, len(order), 1, "expected the 1 hash but got", len(order)) + require.Equal(t, order[0], uint64(16), "expected number to be 16 but got", order[0]) + require.Equal(t, list[order[0]], common.Hash{16}, "expected value is", common.Hash{16}.String()[2:], "but got", list[order[0]]) + + capicity := milestone.MaxCapacity + for i := 16; i <= 16*(capicity+1); i = i + 16 { + s.ProcessFutureMilestone(uint64(i), common.Hash{16}) + } + + require.Equal(t, len(milestone.FutureMilestoneOrder), capicity, "expected length is", capicity) + require.Equal(t, milestone.FutureMilestoneOrder[capicity-1], uint64(16*capicity), "expected value is", uint64(16*capicity), "but got", milestone.FutureMilestoneOrder[capicity-1]) +} + +// TestIsValidChain checks the IsValidChain function in isolation +// for different cases by providing a mock current header and chain +func TestIsValidChain(t *testing.T) { + t.Parallel() + + db := memdb.NewTestDB(t) + + s := NewMockService(db) + chainA := createMockChain(1, 20) // A1->A2...A19->A20 + + //Case1: no checkpoint whitelist and no milestone and no locking, should consider the chain as valid + res := s.IsValidChain(0, chainA) + + require.Equal(t, res, true, "Expected chain to be valid") + + tempChain := createMockChain(21, 22) // A21->A22 + + // add mock checkpoint entry + s.ProcessCheckpoint(tempChain[1].Number.Uint64(), tempChain[1].Hash()) + + //Make the mock chain with zero blocks + zeroChain := make([]*types.Header, 0) + + //Case2: As input chain is of zero length,should consider the chain as invalid + res = s.IsValidChain(0, zeroChain) + + require.Equal(t, res, false, "expected chain to be invalid", len(zeroChain)) + + //Case3A: As the received chain and current tip of local chain is behind the oldest whitelisted block entry, should consider + // the chain as valid + res = s.IsValidChain(chainA[len(chainA)-1].Number.Uint64(), chainA) + + require.Equal(t, res, true, "expected chain to be valid") + + //Case3B: As the received chain is behind the oldest whitelisted block entry,but current tip is at par with whitelisted checkpoint, should consider + // the chain as invalid + res = s.IsValidChain(tempChain[1].Number.Uint64(), chainA) + + require.Equal(t, res, false, "expected chain to be invalid ") + + // add mock milestone entry + s.ProcessMilestone(tempChain[1].Number.Uint64(), tempChain[1].Hash()) + + //Case4A: As the received chain and current tip of local chain is behind the oldest whitelisted block entry, should consider + // the chain as valid + res = s.IsValidChain(chainA[len(chainA)-1].Number.Uint64(), chainA) + + require.Equal(t, res, true, "expected chain to be valid") + + //Case4B: As the received chain is behind the oldest whitelisted block entry and but current tip is at par with whitelisted milestine, should consider + // the chain as invalid + res = s.IsValidChain(tempChain[1].Number.Uint64(), chainA) + + require.Equal(t, res, false, "expected chain to be invalid") + + //Remove the whitelisted checkpoint + s.PurgeWhitelistedCheckpoint() + + //Case5: As the received chain is still invalid after removing the checkpoint as it is + //still behind the whitelisted milestone + res = s.IsValidChain(tempChain[1].Number.Uint64(), chainA) + require.Equal(t, res, false, "expected chain to be invalid") + + //Remove the whitelisted milestone + s.PurgeWhitelistedMilestone() + + //At this stage there is no whitelisted milestone and checkpoint + + checkpoint := s.checkpointService.(*checkpoint) + milestone := s.milestoneService.(*milestone) + + //Locking for sprintNumber 15 + milestone.LockMutex(chainA[len(chainA)-5].Number.Uint64()) + milestone.UnlockMutex(true, "MilestoneID1", chainA[len(chainA)-5].Number.Uint64(), chainA[len(chainA)-5].Hash()) + + //Case6: As the received chain is valid as the locked sprintHash matches with the incoming chain. + res = s.IsValidChain(chainA[len(chainA)-1].Number.Uint64(), chainA) + require.Equal(t, res, true, "expected chain to be valid as incoming chain matches with the locked value ") + + hash3 := libcommon.Hash{3} + + //Locking for sprintNumber 16 with different hash + milestone.LockMutex(chainA[len(chainA)-4].Number.Uint64()) + milestone.UnlockMutex(true, "MilestoneID2", chainA[len(chainA)-4].Number.Uint64(), hash3) + + res = s.IsValidChain(chainA[len(chainA)-1].Number.Uint64(), chainA) + + require.Equal(t, res, false, "expected chain to be invalid as incoming chain does match with the locked value hash ") + + //Locking for sprintNumber 19 + milestone.LockMutex(chainA[len(chainA)-1].Number.Uint64()) + milestone.UnlockMutex(true, "MilestoneID1", chainA[len(chainA)-1].Number.Uint64(), chainA[len(chainA)-1].Hash()) + + //Case7: As the received chain is valid as the locked sprintHash matches with the incoming chain. + res = s.IsValidChain(chainA[len(chainA)-1].Number.Uint64(), chainA) + + require.Equal(t, res, false, "expected chain to be invalid as incoming chain is less than the locked value ") + + //Locking for sprintNumber 19 + milestone.LockMutex(uint64(21)) + milestone.UnlockMutex(true, "MilestoneID1", uint64(21), hash3) + + //Case8: As the received chain is invalid as the locked sprintHash matches is ahead of incoming chain. + res = s.IsValidChain(chainA[len(chainA)-1].Number.Uint64(), chainA) + require.Equal(t, res, false, "expected chain to be invalid as incoming chain is less than the locked value ") + + //Unlocking the sprint + milestone.UnlockSprint(uint64(21)) + + // Clear checkpoint whitelist and add block A15 in whitelist + s.PurgeWhitelistedCheckpoint() + s.ProcessCheckpoint(chainA[15].Number.Uint64(), chainA[15].Hash()) + + require.Equal(t, checkpoint.doExist, true, "expected true as checkpoint exists.") + + // case9: As the received chain is having valid checkpoint,should consider the chain as valid. + res = s.IsValidChain(chainA[len(chainA)-1].Number.Uint64(), chainA) + require.Equal(t, res, true, "expected chain to be valid") + + // add mock milestone entries + s.ProcessMilestone(tempChain[1].Number.Uint64(), tempChain[1].Hash()) + + // case10: Try importing a past chain having valid checkpoint, should + // consider the chain as invalid as still lastest milestone is ahead of the chain. + res = s.IsValidChain(tempChain[1].Number.Uint64(), chainA) + require.Equal(t, res, false, "expected chain to be invalid") + + // add mock milestone entries + s.ProcessMilestone(chainA[19].Number.Uint64(), chainA[19].Hash()) + + // case12: Try importing a chain having valid checkpoint and milestone, should + // consider the chain as valid + res = s.IsValidChain(tempChain[1].Number.Uint64(), chainA) + require.Equal(t, res, true, "expected chain to be invalid") + + // add mock milestone entries + s.ProcessMilestone(chainA[19].Number.Uint64(), chainA[19].Hash()) + + // case13: Try importing a past chain having valid checkpoint and milestone, should + // consider the chain as valid + res = s.IsValidChain(tempChain[1].Number.Uint64(), chainA) + require.Equal(t, res, true, "expected chain to be valid") + + // add mock milestone entries with wrong hash + s.ProcessMilestone(chainA[19].Number.Uint64(), chainA[18].Hash()) + + // case14: Try importing a past chain having valid checkpoint and milestone with wrong hash, should + // consider the chain as invalid + res = s.IsValidChain(chainA[len(chainA)-1].Number.Uint64(), chainA) + require.Equal(t, res, false, "expected chain to be invalid as hash mismatches") + + // Clear milestone and add blocks A15 in whitelist + s.ProcessMilestone(chainA[15].Number.Uint64(), chainA[15].Hash()) + + // case16: Try importing a past chain having valid checkpoint, should + // consider the chain as valid + res = s.IsValidChain(tempChain[1].Number.Uint64(), chainA) + require.Equal(t, res, true, "expected chain to be valid") + + // Clear checkpoint whitelist and mock blocks in whitelist + tempChain = createMockChain(20, 20) // A20 + + s.PurgeWhitelistedCheckpoint() + s.ProcessCheckpoint(tempChain[0].Number.Uint64(), tempChain[0].Hash()) + + require.Equal(t, checkpoint.doExist, true, "expected true") + + // case17: Try importing a past chain having invalid checkpoint,should consider the chain as invalid + res = s.IsValidChain(tempChain[0].Number.Uint64(), chainA) + require.Equal(t, res, false, "expected chain to be invalid") + // Not checking error here because we return nil in case of checkpoint mismatch + + // case18: Try importing a future chain but within interval, should consider the chain as valid + res = s.IsValidChain(tempChain[len(tempChain)-1].Number.Uint64(), tempChain) + require.Equal(t, res, true, "expected chain to be invalid") + + // create a future chain to be imported of length <= `checkpointInterval` + chainB := createMockChain(21, 30) // B21->B22...B29->B30 + + // case19: Try importing a future chain of acceptable length,should consider the chain as valid + res = s.IsValidChain(tempChain[0].Number.Uint64(), chainB) + require.Equal(t, res, true, "expected chain to be valid") + + s.PurgeWhitelistedCheckpoint() + s.PurgeWhitelistedMilestone() + + chainB = createMockChain(21, 29) // C21->C22....C29 + + s.milestoneService.ProcessFutureMilestone(29, chainB[8].Hash()) + + // case20: Try importing a future chain which match the future milestone should the chain as valid + res = s.IsValidChain(tempChain[0].Number.Uint64(), chainB) + require.Equal(t, res, true, "expected chain to be valid") + + chainB = createMockChain(21, 27) // C21->C22...C39->C40...C->256 + + // case21: Try importing a chain whose end point is less than future milestone + res = s.IsValidChain(tempChain[0].Number.Uint64(), chainB) + require.Equal(t, res, true, "expected chain to be valid") + + chainB = createMockChain(30, 39) // C21->C22...C39->C40...C->256 + + //Processing wrong hash + s.milestoneService.ProcessFutureMilestone(38, chainB[9].Hash()) + + // case22: Try importing a future chain with mismatch future milestone + res = s.IsValidChain(tempChain[0].Number.Uint64(), chainB) + require.Equal(t, res, false, "expected chain to be invalid") + + chainB = createMockChain(40, 49) // C40->C41...C48->C49 + + // case23: Try importing a future chain whose starting point is ahead of latest future milestone + res = s.IsValidChain(tempChain[0].Number.Uint64(), chainB) + require.Equal(t, res, true, "expected chain to be invalid") + +} + +func TestPropertyBasedTestingMilestone(t *testing.T) { + db := memdb.NewTestDB(t) + + rapid.Check(t, func(t *rapid.T) { + + milestone := milestone{ + finality: finality[*rawdb.Milestone]{ + doExist: false, + Number: 0, + Hash: common.Hash{}, + interval: 256, + db: db, + }, + + Locked: false, + LockedMilestoneNumber: 0, + LockedMilestoneHash: common.Hash{}, + LockedMilestoneIDs: make(map[string]struct{}), + FutureMilestoneList: make(map[uint64]common.Hash), + FutureMilestoneOrder: make([]uint64, 0), + MaxCapacity: 10, + } + + var ( + milestoneEndNum = rapid.Uint64().Draw(t, "endBlock") + milestoneID = rapid.String().Draw(t, "MilestoneID") + doLock = rapid.Bool().Draw(t, "Voted") + ) + + val := milestone.LockMutex(milestoneEndNum) + if !val { + t.Error("LockMutex need to return true when there is no whitelisted milestone and locked milestone") + } + + milestone.UnlockMutex(doLock, milestoneID, milestoneEndNum, common.Hash{}) + + if doLock { + //Milestone should not be whitelisted + if milestone.doExist { + t.Error("Milestone is not expected to be whitelisted") + } + + //Local chain should be locked + if !milestone.Locked { + t.Error("Milestone is expected to be locked at", milestoneEndNum) + } + + if milestone.LockedMilestoneNumber != milestoneEndNum { + t.Error("Locked milestone number is expected to be", milestoneEndNum) + } + + if len(milestone.LockedMilestoneIDs) != 1 { + t.Error("List should contain 1 milestone") + } + + _, ok := milestone.LockedMilestoneIDs[milestoneID] + + if !ok { + t.Error("List doesn't contain correct milestoneID") + } + } + + if !doLock { + if milestone.doExist { + t.Error("Milestone is not expected to be whitelisted") + } + + if milestone.Locked { + t.Error("Milestone is expected not to be locked") + } + + if milestone.LockedMilestoneNumber != 0 { + t.Error("Locked milestone number is expected to be", 0) + } + + if len(milestone.LockedMilestoneIDs) != 0 { + t.Error("List should not contain milestone") + } + + _, ok := milestone.LockedMilestoneIDs[milestoneID] + + if ok { + t.Error("List shouldn't contain any milestoneID") + } + } + + fitlerFn := func(i uint64) bool { + if i <= uint64(1000) { + return true + } + + return false + } + + var ( + start = rapid.Uint64Max(milestoneEndNum).Draw(t, "start for mock chain") + end = rapid.Uint64Min(start).Filter(fitlerFn).Draw(t, "end for mock chain") + ) + + chainTemp := createMockChain(start, end) + + val = milestone.IsValidChain(start, chainTemp) + + if doLock && val { + t.Error("When the chain is locked at milestone, it should not pass IsValidChain for incompatible incoming chain") + } + + if !doLock && !val { + t.Error("When the chain is not locked at milestone, it should pass IsValidChain for incoming chain") + } + + var ( + milestoneEndNum2 = rapid.Uint64().Draw(t, "endBlockNum 2") + milestoneID2 = rapid.String().Draw(t, "MilestoneID 2") + doLock2 = rapid.Bool().Draw(t, "Voted 2") + ) + + val = milestone.LockMutex(milestoneEndNum2) + + if doLock && milestoneEndNum > milestoneEndNum2 && val { + t.Error("LockMutex need to return false as previous locked milestone is greater") + } + + if doLock && milestoneEndNum <= milestoneEndNum2 && !val { + t.Error("LockMutex need to return true as previous locked milestone is less") + } + + milestone.UnlockMutex(doLock2, milestoneID2, milestoneEndNum2, common.Hash{}) + + if doLock2 { + if milestone.doExist { + t.Error("Milestone is not expected to be whitelisted") + } + + if !milestone.Locked { + t.Error("Milestone is expected to be locked at", milestoneEndNum2) + } + + if milestone.LockedMilestoneNumber != milestoneEndNum2 { + t.Error("Locked milestone number is expected to be", milestoneEndNum) + } + + if len(milestone.LockedMilestoneIDs) != 1 { + t.Error("List should contain 1 milestone") + } + + _, ok := milestone.LockedMilestoneIDs[milestoneID2] + + if !ok { + t.Error("List doesn't contain correct milestoneID") + } + } + + if !doLock2 { + if milestone.doExist { + t.Error("Milestone is not expected to be whitelisted") + } + + if !doLock && milestone.Locked { + t.Error("Milestone is expected not to be locked") + } + + if doLock && !milestone.Locked { + t.Error("Milestone is expected to be locked at", milestoneEndNum) + } + + if !doLock && milestone.LockedMilestoneNumber != 0 { + t.Error("Locked milestone number is expected to be", 0) + } + + if doLock && milestone.LockedMilestoneNumber != milestoneEndNum { + t.Error("Locked milestone number is expected to be", milestoneEndNum) + } + + if !doLock && len(milestone.LockedMilestoneIDs) != 0 { + t.Error("List should not contain milestone") + } + + if doLock && len(milestone.LockedMilestoneIDs) != 1 { + t.Error("List should not contain milestone") + } + + _, ok := milestone.LockedMilestoneIDs[milestoneID] + + if !doLock && ok { + t.Error("List shouldn't contain any milestoneID") + } + + if doLock && !ok { + t.Error("List should contain milestoneID") + } + } + + var ( + milestoneNum = rapid.Uint64().Draw(t, "milestone Number") + ) + + lockedValue := milestone.LockedMilestoneNumber + + milestone.Process(milestoneNum, common.Hash{}) + + isChainLocked := doLock || doLock2 + + if !milestone.doExist { + t.Error("Should have the whitelisted milestone") + } + + if milestone.finality.Number != milestoneNum { + t.Error("Should have the whitelisted milestone", milestoneNum) + } + + if isChainLocked { + if milestoneNum < lockedValue { + if !milestone.Locked { + t.Error("Milestone is expected to be locked") + } + } else { + if milestone.Locked { + t.Error("Milestone is expected not to be locked") + } + } + } + + var ( + futureMilestoneNum = rapid.Uint64Min(milestoneNum).Draw(t, "future milestone Number") + ) + + isChainLocked = milestone.Locked + + milestone.ProcessFutureMilestone(futureMilestoneNum, common.Hash{}) + + if isChainLocked { + if futureMilestoneNum < lockedValue { + if !milestone.Locked { + t.Error("Milestone is expected to be locked") + } + } else { + if milestone.Locked { + t.Error("Milestone is expected not to be locked") + } + } + } + }) +} + +func TestSplitChain(t *testing.T) { + t.Parallel() + + type Result struct { + pastStart uint64 + pastEnd uint64 + futureStart uint64 + futureEnd uint64 + pastLength int + futureLength int + } + + // Current chain is at block: X + // Incoming chain is represented as [N, M] + testCases := []struct { + name string + current uint64 + chain []*types.Header + result Result + }{ + {name: "X = 10, N = 11, M = 20", current: uint64(10), chain: createMockChain(11, 20), result: Result{futureStart: 11, futureEnd: 20, futureLength: 10}}, + {name: "X = 10, N = 13, M = 20", current: uint64(10), chain: createMockChain(13, 20), result: Result{futureStart: 13, futureEnd: 20, futureLength: 8}}, + {name: "X = 10, N = 2, M = 10", current: uint64(10), chain: createMockChain(2, 10), result: Result{pastStart: 2, pastEnd: 10, pastLength: 9}}, + {name: "X = 10, N = 2, M = 9", current: uint64(10), chain: createMockChain(2, 9), result: Result{pastStart: 2, pastEnd: 9, pastLength: 8}}, + {name: "X = 10, N = 2, M = 8", current: uint64(10), chain: createMockChain(2, 8), result: Result{pastStart: 2, pastEnd: 8, pastLength: 7}}, + {name: "X = 10, N = 5, M = 15", current: uint64(10), chain: createMockChain(5, 15), result: Result{pastStart: 5, pastEnd: 10, pastLength: 6, futureStart: 11, futureEnd: 15, futureLength: 5}}, + {name: "X = 10, N = 10, M = 20", current: uint64(10), chain: createMockChain(10, 20), result: Result{pastStart: 10, pastEnd: 10, pastLength: 1, futureStart: 11, futureEnd: 20, futureLength: 10}}, + } + for _, tc := range testCases { + tc := tc + t.Run(tc.name, func(t *testing.T) { + t.Parallel() + past, future := splitChain(tc.current, tc.chain) + require.Equal(t, len(past), tc.result.pastLength) + require.Equal(t, len(future), tc.result.futureLength) + + if len(past) > 0 { + // Check if we have expected block/s + require.Equal(t, past[0].Number.Uint64(), tc.result.pastStart) + require.Equal(t, past[len(past)-1].Number.Uint64(), tc.result.pastEnd) + } + + if len(future) > 0 { + // Check if we have expected block/s + require.Equal(t, future[0].Number.Uint64(), tc.result.futureStart) + require.Equal(t, future[len(future)-1].Number.Uint64(), tc.result.futureEnd) + } + }) + } +} + +//nolint:gocognit +func TestSplitChainProperties(t *testing.T) { + t.Parallel() + + // Current chain is at block: X + // Incoming chain is represented as [N, M] + + currentChain := []int{0, 1, 2, 3, 10, 100} // blocks starting from genesis + blockDiffs := []int{0, 1, 2, 3, 4, 5, 9, 10, 11, 12, 90, 100, 101, 102} + + caseParams := make(map[int]map[int]map[int]struct{}) // X -> N -> M + + for _, current := range currentChain { + // past cases only + past to current + for _, diff := range blockDiffs { + from := current - diff + + // use int type for everything to not care about underflow + if from < 0 { + continue + } + + for _, diff := range blockDiffs { + to := current - diff + + if to >= from { + addTestCaseParams(caseParams, current, from, to) + } + } + } + + // future only + current to future + for _, diff := range blockDiffs { + from := current + diff + + if from < 0 { + continue + } + + for _, diff := range blockDiffs { + to := current + diff + + if to >= from { + addTestCaseParams(caseParams, current, from, to) + } + } + } + + // past-current-future + for _, diff := range blockDiffs { + from := current - diff + + if from < 0 { + continue + } + + for _, diff := range blockDiffs { + to := current + diff + + if to >= from { + addTestCaseParams(caseParams, current, from, to) + } + } + } + } + + type testCase struct { + current int + remoteStart int + remoteEnd int + } + + var ts []testCase + + // X -> N -> M + for x, nm := range caseParams { + for n, mMap := range nm { + for m := range mMap { + ts = append(ts, testCase{x, n, m}) + } + } + } + + //nolint:paralleltest + for i, tc := range ts { + tc := tc + + name := fmt.Sprintf("test case: index = %d, X = %d, N = %d, M = %d", i, tc.current, tc.remoteStart, tc.remoteEnd) + + t.Run(name, func(t *testing.T) { + t.Parallel() + + chain := createMockChain(uint64(tc.remoteStart), uint64(tc.remoteEnd)) + + past, future := splitChain(uint64(tc.current), chain) + + // properties + if len(past) > 0 { + // Check if the chain is ordered + isOrdered := sort.SliceIsSorted(past, func(i, j int) bool { + return past[i].Number.Uint64() < past[j].Number.Uint64() + }) + + require.True(t, isOrdered, "an ordered past chain expected: %v", past) + + isSequential := sort.SliceIsSorted(past, func(i, j int) bool { + return past[i].Number.Uint64() == past[j].Number.Uint64()-1 + }) + + require.True(t, isSequential, "a sequential past chain expected: %v", past) + + // Check if current block >= past chain's last block + require.Equal(t, past[len(past)-1].Number.Uint64() <= uint64(tc.current), true) + } + + if len(future) > 0 { + // Check if the chain is ordered + isOrdered := sort.SliceIsSorted(future, func(i, j int) bool { + return future[i].Number.Uint64() < future[j].Number.Uint64() + }) + + require.True(t, isOrdered, "an ordered future chain expected: %v", future) + + isSequential := sort.SliceIsSorted(future, func(i, j int) bool { + return future[i].Number.Uint64() == future[j].Number.Uint64()-1 + }) + + require.True(t, isSequential, "a sequential future chain expected: %v", future) + + // Check if future chain's first block > current block + require.Equal(t, future[len(future)-1].Number.Uint64() > uint64(tc.current), true) + } + + // Check if both chains are continuous + if len(past) > 0 && len(future) > 0 { + require.Equal(t, past[len(past)-1].Number.Uint64(), future[0].Number.Uint64()-1) + } + + // Check if we get the original chain on appending both + gotChain := append(past, future...) + require.Equal(t, reflect.DeepEqual(gotChain, chain), true) + }) + } +} + +// createMockChain returns a chain with dummy headers +// starting from `start` to `end` (inclusive) +func createMockChain(start, end uint64) []*types.Header { + var ( + i uint64 + idx uint64 + ) + + chain := make([]*types.Header, end-start+1) + + for i = start; i <= end; i++ { + header := &types.Header{ + Number: big.NewInt(int64(i)), + Time: uint64(time.Now().UnixMicro()) + i, + } + chain[idx] = header + idx++ + } + + return chain +} + +// mXNM should be initialized +func addTestCaseParams(mXNM map[int]map[int]map[int]struct{}, x, n, m int) { + //nolint:ineffassign + mNM, ok := mXNM[x] + if !ok { + mNM = make(map[int]map[int]struct{}) + mXNM[x] = mNM + } + + //nolint:ineffassign + _, ok = mNM[n] + if !ok { + mM := make(map[int]struct{}) + mNM[n] = mM + } + + mXNM[x][n][m] = struct{}{} +} diff --git a/consensus/bor/finality/whitelist_helpers.go b/consensus/bor/finality/whitelist_helpers.go new file mode 100644 index 00000000000..54dbff49690 --- /dev/null +++ b/consensus/bor/finality/whitelist_helpers.go @@ -0,0 +1,140 @@ +package finality + +import ( + "context" + "errors" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall" + "github.com/ledgerwatch/log/v3" +) + +var ( + // errCheckpoint is returned when we are unable to fetch the + // latest checkpoint from the local heimdall. + errCheckpoint = errors.New("failed to fetch latest checkpoint") + + // errMilestone is returned when we are unable to fetch the + // latest milestone from the local heimdall. + errMilestone = errors.New("failed to fetch latest milestone") + + ErrNotInRejectedList = errors.New("MilestoneID not in rejected list") +) + +// fetchWhitelistCheckpoint fetches the latest checkpoint from it's local heimdall +// and verifies the data against bor data. +func fetchWhitelistCheckpoint(ctx context.Context, heimdallClient heimdall.IHeimdallClient, verifier *borVerifier, config *config) (uint64, common.Hash, error) { + var ( + blockNum uint64 + blockHash common.Hash + ) + + // fetch the latest checkpoint from Heimdall + checkpoint, err := heimdallClient.FetchCheckpoint(ctx, -1) + if err != nil { + config.logger.Debug("[bor.heimdall] Failed to fetch latest checkpoint for whitelisting", "err", err) + return blockNum, blockHash, errCheckpoint + } + + // Verify if the checkpoint fetched can be added to the local whitelist entry or not + // If verified, it returns the hash of the end block of the checkpoint. If not, + // it will return appropriate error. + hash, err := verifier.verify(ctx, config, checkpoint.StartBlock.Uint64(), checkpoint.EndBlock.Uint64(), checkpoint.RootHash.String()[2:], true) + + if err != nil { + if errors.Is(err, errMissingBlocks) { + config.logger.Debug("[bor.heimdall] Got new checkpoint", "start", checkpoint.StartBlock.Uint64(), "end", checkpoint.EndBlock.Uint64(), "rootHash", checkpoint.RootHash.String()) + config.logger.Debug("[bor.heimdall] Failed to whitelist checkpoint", "err", err) + } else { + config.logger.Info("[bor.heimdall] Got new checkpoint", "start", checkpoint.StartBlock.Uint64(), "end", checkpoint.EndBlock.Uint64(), "rootHash", checkpoint.RootHash.String()) + config.logger.Warn("[bor.heimdall] Failed to whitelist checkpoint", "err", err) + } + + return blockNum, blockHash, err + } + + config.logger.Info("[bor.heimdall] Got new checkpoint", "start", checkpoint.StartBlock.Uint64(), "end", checkpoint.EndBlock.Uint64(), "rootHash", checkpoint.RootHash.String()) + + blockNum = checkpoint.EndBlock.Uint64() + blockHash = common.HexToHash(hash) + + return blockNum, blockHash, nil +} + +// fetchWhitelistMilestone fetches the latest milestone from it's local heimdall +// and verifies the data against bor data. +func fetchWhitelistMilestone(ctx context.Context, heimdallClient heimdall.IHeimdallClient, verifier *borVerifier, config *config) (uint64, common.Hash, error) { + var ( + num uint64 + hash common.Hash + ) + + // fetch latest milestone + milestone, err := heimdallClient.FetchMilestone(ctx) + if errors.Is(err, heimdall.ErrServiceUnavailable) { + config.logger.Debug("[bor.heimdall] Failed to fetch latest milestone for whitelisting", "err", err) + return num, hash, err + } + + if err != nil { + config.logger.Warn("[bor.heimdall] Failed to fetch latest milestone for whitelisting", "err", err) + return num, hash, errMilestone + } + + config.logger.Debug("[bor.heimdall] Got new milestone", "start", milestone.StartBlock.Uint64(), "end", milestone.EndBlock.Uint64()) + + num = milestone.EndBlock.Uint64() + hash = milestone.Hash + + // Verify if the milestone fetched can be added to the local whitelist entry or not + // If verified, it returns the hash of the end block of the milestone. If not, + // it will return appropriate error. + _, err = verifier.verify(ctx, config, milestone.StartBlock.Uint64(), milestone.EndBlock.Uint64(), milestone.Hash.String()[2:], false) + if err != nil { + whitelist.GetWhitelistingService().UnlockSprint(milestone.EndBlock.Uint64()) + return num, hash, err + } + + return num, hash, nil +} + +func fetchNoAckMilestone(ctx context.Context, heimdallClient heimdall.IHeimdallClient, logger log.Logger) (string, error) { + var ( + milestoneID string + ) + + milestoneID, err := heimdallClient.FetchLastNoAckMilestone(ctx) + if errors.Is(err, heimdall.ErrServiceUnavailable) { + logger.Debug("[bor.heimdall] Failed to fetch latest no-ack milestone", "err", err) + return milestoneID, err + } + + if err != nil { + logger.Warn("[bor.heimdall] Failed to fetch latest no-ack milestone", "err", err) + return milestoneID, errMilestone + } + + return milestoneID, nil +} + +func fetchNoAckMilestoneByID(ctx context.Context, heimdallClient heimdall.IHeimdallClient, milestoneID string, logger log.Logger) error { + err := heimdallClient.FetchNoAckMilestone(ctx, milestoneID) + if errors.Is(err, heimdall.ErrServiceUnavailable) { + logger.Debug("[bor.heimdall] Failed to fetch no-ack milestone by ID", "milestoneID", milestoneID, "err", err) + return err + } + + // fixme: handle different types of errors + if errors.Is(err, ErrNotInRejectedList) { + logger.Warn("[bor.heimdall] MilestoneID not in rejected list", "milestoneID", milestoneID, "err", err) + return err + } + + if err != nil { + logger.Warn("[bor.heimdall] Failed to fetch no-ack milestone by ID ", "milestoneID", milestoneID, "err", err) + return errMilestone + } + + return nil +} diff --git a/consensus/bor/genesis.go b/consensus/bor/genesis.go index 5096b33c57f..24b0964f454 100644 --- a/consensus/bor/genesis.go +++ b/consensus/bor/genesis.go @@ -4,11 +4,11 @@ import ( "math/big" "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/bor/clerk" + "github.com/ledgerwatch/erigon/rlp" ) //go:generate mockgen -destination=./genesis_contract_mock.go -package=bor . GenesisContract type GenesisContract interface { - CommitState(event *clerk.EventRecordWithTime, syscall consensus.SystemCall) error + CommitState(event rlp.RawValue, syscall consensus.SystemCall) error LastStateId(syscall consensus.SystemCall) (*big.Int, error) } diff --git a/consensus/bor/heimall.go b/consensus/bor/heimall.go deleted file mode 100644 index b28cec81e4c..00000000000 --- a/consensus/bor/heimall.go +++ /dev/null @@ -1,26 +0,0 @@ -package bor - -import ( - "context" - - "github.com/ledgerwatch/erigon/consensus/bor/clerk" - "github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint" - "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" -) - -//go:generate mockgen -destination=../../tests/bor/mocks/IHeimdallClient.go -package=mocks . IHeimdallClient -type IHeimdallClient interface { - StateSyncEvents(ctx context.Context, fromID uint64, to int64) ([]*clerk.EventRecordWithTime, error) - Span(ctx context.Context, spanID uint64) (*span.HeimdallSpan, error) - FetchCheckpoint(ctx context.Context, number int64) (*checkpoint.Checkpoint, error) - FetchCheckpointCount(ctx context.Context) (int64, error) - Close() -} - -type HeimdallServer interface { - StateSyncEvents(ctx context.Context, fromID uint64, to int64, limit int) (uint64, []*clerk.EventRecordWithTime, error) - Span(ctx context.Context, spanID uint64) (*span.HeimdallSpan, error) - FetchCheckpoint(ctx context.Context, number int64) (*checkpoint.Checkpoint, error) - FetchCheckpointCount(ctx context.Context) (int64, error) - Close() -} diff --git a/consensus/bor/heimdall/checkpoint/checkpoint.go b/consensus/bor/heimdall/checkpoint/checkpoint.go index 258cadd7e76..ebced7beef8 100644 --- a/consensus/bor/heimdall/checkpoint/checkpoint.go +++ b/consensus/bor/heimdall/checkpoint/checkpoint.go @@ -1,6 +1,7 @@ package checkpoint import ( + "fmt" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -16,6 +17,18 @@ type Checkpoint struct { Timestamp uint64 `json:"timestamp"` } +func (m Checkpoint) String() string { + return fmt.Sprintf( + "Checkpoint {%v (%d:%d) %v %v %v}", + m.Proposer.String(), + m.StartBlock, + m.EndBlock, + m.RootHash.Hex(), + m.BorChainID, + m.Timestamp, + ) +} + type CheckpointResponse struct { Height string `json:"height"` Result Checkpoint `json:"result"` diff --git a/consensus/bor/heimdall/client.go b/consensus/bor/heimdall/client.go index f0bcf6a54d5..717da531f60 100644 --- a/consensus/bor/heimdall/client.go +++ b/consensus/bor/heimdall/client.go @@ -11,22 +11,28 @@ import ( "sort" "time" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon/consensus/bor/clerk" "github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/milestone" "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" "github.com/ledgerwatch/log/v3" ) var ( - // // ErrShutdownDetected is returned if a shutdown was detected + // ErrShutdownDetected is returned if a shutdown was detected ErrShutdownDetected = errors.New("shutdown detected") ErrNoResponse = errors.New("got a nil response") ErrNotSuccessfulResponse = errors.New("error while fetching data from Heimdall") + ErrNotInRejectedList = errors.New("milestoneID doesn't exist in rejected list") + ErrNotInMilestoneList = errors.New("milestoneID doesn't exist in Heimdall") + ErrServiceUnavailable = errors.New("service unavailable") ) const ( stateFetchLimit = 50 - apiHeimdallTimeout = 5 * time.Second + apiHeimdallTimeout = 10 * time.Second retryCall = 5 * time.Second ) @@ -67,8 +73,16 @@ func NewHeimdallClient(urlString string, logger log.Logger) *HeimdallClient { const ( fetchStateSyncEventsFormat = "from-id=%d&to-time=%d&limit=%d" fetchStateSyncEventsPath = "clerk/event-record/list" - fetchCheckpoint = "/checkpoints/%s" - fetchCheckpointCount = "/checkpoints/count" + + fetchCheckpoint = "/checkpoints/%s" + fetchCheckpointCount = "/checkpoints/count" + + fetchMilestone = "/milestone/latest" + fetchMilestoneCount = "/milestone/count" + + fetchLastNoAckMilestone = "/milestone/lastNoAck" + fetchNoAckMilestone = "/milestone/noAck/%s" + fetchMilestoneID = "/milestone/ID/%s" fetchSpanFormat = "bor/span/%d" ) @@ -82,7 +96,7 @@ func (h *HeimdallClient) StateSyncEvents(ctx context.Context, fromID uint64, to return nil, err } - h.logger.Debug("Fetching state sync events", "queryParams", url.RawQuery) + h.logger.Debug("[bor.heimdall] Fetching state sync events", "queryParams", url.RawQuery) ctx = withRequestType(ctx, stateSyncRequest) @@ -145,6 +159,23 @@ func (h *HeimdallClient) FetchCheckpoint(ctx context.Context, number int64) (*ch return &response.Result, nil } +// FetchMilestone fetches the checkpoint from heimdall +func (h *HeimdallClient) FetchMilestone(ctx context.Context) (*milestone.Milestone, error) { + url, err := milestoneURL(h.urlString) + if err != nil { + return nil, err + } + + ctx = withRequestType(ctx, milestoneRequest) + + response, err := FetchWithRetry[milestone.MilestoneResponse](ctx, h.client, url, h.closeCh, h.logger) + if err != nil { + return nil, err + } + + return &response.Result, nil +} + // FetchCheckpointCount fetches the checkpoint count from heimdall func (h *HeimdallClient) FetchCheckpointCount(ctx context.Context) (int64, error) { url, err := checkpointCountURL(h.urlString) @@ -162,20 +193,105 @@ func (h *HeimdallClient) FetchCheckpointCount(ctx context.Context) (int64, error return response.Result.Result, nil } +// FetchMilestoneCount fetches the milestone count from heimdall +func (h *HeimdallClient) FetchMilestoneCount(ctx context.Context) (int64, error) { + url, err := milestoneCountURL(h.urlString) + if err != nil { + return 0, err + } + + ctx = withRequestType(ctx, milestoneCountRequest) + + response, err := FetchWithRetry[milestone.MilestoneCountResponse](ctx, h.client, url, h.closeCh, h.logger) + if err != nil { + return 0, err + } + + return response.Result.Count, nil +} + +// FetchLastNoAckMilestone fetches the last no-ack-milestone from heimdall +func (h *HeimdallClient) FetchLastNoAckMilestone(ctx context.Context) (string, error) { + url, err := lastNoAckMilestoneURL(h.urlString) + if err != nil { + return "", err + } + + ctx = withRequestType(ctx, milestoneLastNoAckRequest) + + response, err := FetchWithRetry[milestone.MilestoneLastNoAckResponse](ctx, h.client, url, h.closeCh, h.logger) + if err != nil { + return "", err + } + + return response.Result.Result, nil +} + +// FetchNoAckMilestone fetches the last no-ack-milestone from heimdall +func (h *HeimdallClient) FetchNoAckMilestone(ctx context.Context, milestoneID string) error { + url, err := noAckMilestoneURL(h.urlString, milestoneID) + if err != nil { + return err + } + + ctx = withRequestType(ctx, milestoneNoAckRequest) + + response, err := FetchWithRetry[milestone.MilestoneNoAckResponse](ctx, h.client, url, h.closeCh, h.logger) + if err != nil { + return err + } + + if !response.Result.Result { + return fmt.Errorf("%w: milestoneID %q", ErrNotInRejectedList, milestoneID) + } + + return nil +} + +// FetchMilestoneID fetches the bool result from Heimdal whether the ID corresponding +// to the given milestone is in process in Heimdall +func (h *HeimdallClient) FetchMilestoneID(ctx context.Context, milestoneID string) error { + url, err := milestoneIDURL(h.urlString, milestoneID) + if err != nil { + return err + } + + ctx = withRequestType(ctx, milestoneIDRequest) + + response, err := FetchWithRetry[milestone.MilestoneIDResponse](ctx, h.client, url, h.closeCh, h.logger) + + if err != nil { + return err + } + + if !response.Result.Result { + return fmt.Errorf("%w: milestoneID %q", ErrNotInMilestoneList, milestoneID) + } + + return nil +} + // FetchWithRetry returns data from heimdall with retry func FetchWithRetry[T any](ctx context.Context, client http.Client, url *url.URL, closeCh chan struct{}, logger log.Logger) (*T, error) { // request data once request := &Request{client: client, url: url, start: time.Now()} result, err := Fetch[T](ctx, request) - if err == nil { return result, nil } + // 503 (Service Unavailable) is thrown when an endpoint isn't activated + // yet in heimdall. E.g. when the hardfork hasn't hit yet but heimdall + // is upgraded. + if errors.Is(err, ErrServiceUnavailable) { + logger.Debug("[bor.heimdall] service unavailable at the moment", "path", url.Path, "error", err) + return nil, err + } + // attempt counter attempt := 1 - logger.Warn("an error while trying fetching from Heimdall", "attempt", attempt, "error", err) + logger.Warn("[bor.heimdall] an error while fetching", "path", url.Path, "attempt", attempt, "error", err) // create a new ticker for retrying the request ticker := time.NewTicker(retryCall) @@ -185,26 +301,28 @@ func FetchWithRetry[T any](ctx context.Context, client http.Client, url *url.URL retryLoop: for { - logger.Info("Retrying again in 5 seconds to fetch data from Heimdall", "path", url.Path, "attempt", attempt) - attempt++ select { case <-ctx.Done(): - logger.Debug("Shutdown detected, terminating request by context.Done") - + logger.Debug("[bor.heimdall] request canceled", "reason", ctx.Err(), "path", url.Path, "attempt", attempt) return nil, ctx.Err() case <-closeCh: - logger.Debug("Shutdown detected, terminating request by closing") + logger.Debug("[bor.heimdall] shutdown detected, terminating request", "path", url.Path) return nil, ErrShutdownDetected case <-ticker.C: request = &Request{client: client, url: url, start: time.Now()} result, err = Fetch[T](ctx, request) + if errors.Is(err, ErrServiceUnavailable) { + logger.Debug("[bor.heimdall] service unavailable at the moment", "path", url.Path, "attempt", attempt, "error", err) + return nil, err + } + if err != nil { if attempt%logEach == 0 { - logger.Warn("an error while trying fetching from Heimdall", "attempt", attempt, "error", err) + logger.Warn("[bor.heimdall] an error while trying fetching", "path", url.Path, "attempt", attempt, "error", err) } continue retryLoop @@ -215,16 +333,15 @@ retryLoop: } } -// TODO: Uncomment once metrics are added // Fetch fetches response from heimdall func Fetch[T any](ctx context.Context, request *Request) (*T, error) { - // isSuccessful := false + isSuccessful := false - // defer func() { - // if metrics.EnabledExpensive { - // sendMetrics(ctx, request.start, isSuccessful) - // } - // }() + defer func() { + if metrics.EnabledExpensive { + sendMetrics(ctx, request.start, isSuccessful) + } + }() result := new(T) @@ -242,7 +359,7 @@ func Fetch[T any](ctx context.Context, request *Request) (*T, error) { return nil, err } - // isSuccessful = true + isSuccessful = true return result, nil } @@ -268,10 +385,30 @@ func checkpointURL(urlString string, number int64) (*url.URL, error) { return makeURL(urlString, url, "") } +func milestoneURL(urlString string) (*url.URL, error) { + url := fetchMilestone + return makeURL(urlString, url, "") +} + func checkpointCountURL(urlString string) (*url.URL, error) { return makeURL(urlString, fetchCheckpointCount, "") } +func milestoneCountURL(urlString string) (*url.URL, error) { + return makeURL(urlString, fetchMilestoneCount, "") +} +func lastNoAckMilestoneURL(urlString string) (*url.URL, error) { + return makeURL(urlString, fetchLastNoAckMilestone, "") +} + +func noAckMilestoneURL(urlString string, id string) (*url.URL, error) { + return makeURL(urlString, fmt.Sprintf(fetchNoAckMilestone, id), "") +} + +func milestoneIDURL(urlString string, id string) (*url.URL, error) { + return makeURL(urlString, fmt.Sprintf(fetchMilestoneID, id), "") +} + func makeURL(urlString, rawPath, rawQuery string) (*url.URL, error) { u, err := url.Parse(urlString) if err != nil { @@ -298,9 +435,13 @@ func internalFetch(ctx context.Context, client http.Client, u *url.URL) ([]byte, defer res.Body.Close() + if res.StatusCode == http.StatusServiceUnavailable { + return nil, fmt.Errorf("%w: response code %d", ErrServiceUnavailable, res.StatusCode) + } + // check status code if res.StatusCode != 200 && res.StatusCode != 204 { - return nil, fmt.Errorf("%w: response code %d", ErrNotSuccessfulResponse, res.StatusCode) + return nil, fmt.Errorf("%w: %s:response code %d", ErrNotSuccessfulResponse, u.String(), res.StatusCode) } // unmarshall data from buffer diff --git a/consensus/bor/heimdall/heimall.go b/consensus/bor/heimdall/heimall.go new file mode 100644 index 00000000000..2ef405290f2 --- /dev/null +++ b/consensus/bor/heimdall/heimall.go @@ -0,0 +1,42 @@ +package heimdall + +import ( + "context" + + "github.com/ledgerwatch/erigon/consensus/bor/clerk" + "github.com/ledgerwatch/erigon/consensus/bor/finality/generics" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/checkpoint" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/milestone" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" +) + +func MilestoneRewindPending() bool { + return generics.BorMilestoneRewind.Load() != nil && *generics.BorMilestoneRewind.Load() != 0 +} + +//go:generate mockgen -destination=../../tests/bor/mocks/IHeimdallClient.go -package=mocks . IHeimdallClient +type IHeimdallClient interface { + StateSyncEvents(ctx context.Context, fromID uint64, to int64) ([]*clerk.EventRecordWithTime, error) + Span(ctx context.Context, spanID uint64) (*span.HeimdallSpan, error) + FetchCheckpoint(ctx context.Context, number int64) (*checkpoint.Checkpoint, error) + FetchCheckpointCount(ctx context.Context) (int64, error) + FetchMilestone(ctx context.Context) (*milestone.Milestone, error) + FetchMilestoneCount(ctx context.Context) (int64, error) + FetchNoAckMilestone(ctx context.Context, milestoneID string) error //Fetch the bool value whether milestone corresponding to the given id failed in the Heimdall + FetchLastNoAckMilestone(ctx context.Context) (string, error) //Fetch latest failed milestone id + FetchMilestoneID(ctx context.Context, milestoneID string) error //Fetch the bool value whether milestone corresponding to the given id is in process in Heimdall + Close() +} + +type HeimdallServer interface { + StateSyncEvents(ctx context.Context, fromID uint64, to int64, limit int) (uint64, []*clerk.EventRecordWithTime, error) + Span(ctx context.Context, spanID uint64) (*span.HeimdallSpan, error) + FetchCheckpoint(ctx context.Context, number int64) (*checkpoint.Checkpoint, error) + FetchCheckpointCount(ctx context.Context) (int64, error) + FetchMilestone(ctx context.Context) (*milestone.Milestone, error) + FetchMilestoneCount(ctx context.Context) (int64, error) + FetchNoAckMilestone(ctx context.Context, milestoneID string) error + FetchLastNoAckMilestone(ctx context.Context) (string, error) + FetchMilestoneID(ctx context.Context, milestoneID string) error + Close() +} diff --git a/consensus/bor/heimdall/metrics.go b/consensus/bor/heimdall/metrics.go index ca7f190035f..0157c37766d 100644 --- a/consensus/bor/heimdall/metrics.go +++ b/consensus/bor/heimdall/metrics.go @@ -3,24 +3,30 @@ package heimdall import ( "context" "time" + + "github.com/ledgerwatch/erigon-lib/metrics" ) type ( requestTypeKey struct{} requestType string - // TODO: Uncomment once metrics are added - // meter struct { - // request map[bool]metrics.Meter // map[isSuccessful]metrics.Meter - // timer metrics.Timer - // } + meter struct { + request map[bool]metrics.Gauge + timer metrics.Summary + } ) const ( - stateSyncRequest requestType = "state-sync" - spanRequest requestType = "span" - checkpointRequest requestType = "checkpoint" - checkpointCountRequest requestType = "checkpoint-count" + stateSyncRequest requestType = "state-sync" + spanRequest requestType = "span" + checkpointRequest requestType = "checkpoint" + checkpointCountRequest requestType = "checkpoint-count" + milestoneRequest requestType = "milestone" + milestoneCountRequest requestType = "milestone-count" + milestoneNoAckRequest requestType = "milestone-no-ack" + milestoneLastNoAckRequest requestType = "milestone-last-no-ack" + milestoneIDRequest requestType = "milestone-id" ) func withRequestType(ctx context.Context, reqType requestType) context.Context { @@ -32,52 +38,50 @@ func getRequestType(ctx context.Context) (requestType, bool) { return reqType, ok } -// TODO: Uncomment once metrics are added -// var ( -// requestMeters = map[requestType]meter{ -// stateSyncRequest: { -// request: map[bool]metrics.Meter{ -// true: metrics.NewRegisteredMeter("client/requests/statesync/valid", nil), -// false: metrics.NewRegisteredMeter("client/requests/statesync/invalid", nil), -// }, -// timer: metrics.NewRegisteredTimer("client/requests/statesync/duration", nil), -// }, -// spanRequest: { -// request: map[bool]metrics.Meter{ -// true: metrics.NewRegisteredMeter("client/requests/span/valid", nil), -// false: metrics.NewRegisteredMeter("client/requests/span/invalid", nil), -// }, -// timer: metrics.NewRegisteredTimer("client/requests/span/duration", nil), -// }, -// checkpointRequest: { -// request: map[bool]metrics.Meter{ -// true: metrics.NewRegisteredMeter("client/requests/checkpoint/valid", nil), -// false: metrics.NewRegisteredMeter("client/requests/checkpoint/invalid", nil), -// }, -// timer: metrics.NewRegisteredTimer("client/requests/checkpoint/duration", nil), -// }, -// checkpointCountRequest: { -// request: map[bool]metrics.Meter{ -// true: metrics.NewRegisteredMeter("client/requests/checkpointcount/valid", nil), -// false: metrics.NewRegisteredMeter("client/requests/checkpointcount/invalid", nil), -// }, -// timer: metrics.NewRegisteredTimer("client/requests/checkpointcount/duration", nil), -// }, -// } -// ) +var ( + requestMeters = map[requestType]meter{ + stateSyncRequest: { + request: map[bool]metrics.Gauge{ + true: metrics.GetOrCreateGauge("client_requests_statesync_valid"), + false: metrics.GetOrCreateGauge("client_requests_statesync_invalid"), + }, + timer: metrics.GetOrCreateSummary("client_requests_statesync_duration"), + }, + spanRequest: { + request: map[bool]metrics.Gauge{ + true: metrics.GetOrCreateGauge("client_requests_span_valid"), + false: metrics.GetOrCreateGauge("client_requests_span_invalid"), + }, + timer: metrics.GetOrCreateSummary("client_requests_span_duration"), + }, + checkpointRequest: { + request: map[bool]metrics.Gauge{ + true: metrics.GetOrCreateGauge("client_requests_checkpoint_valid"), + false: metrics.GetOrCreateGauge("client_requests_checkpoint_invalid"), + }, + timer: metrics.GetOrCreateSummary("client_requests_checkpoint_duration"), + }, + checkpointCountRequest: { + request: map[bool]metrics.Gauge{ + true: metrics.GetOrCreateGauge("client_requests_checkpointcount_valid"), + false: metrics.GetOrCreateGauge("client_requests_checkpointcount_invalid"), + }, + timer: metrics.GetOrCreateSummary("client_requests_checkpointcount_duration"), + }, + } +) -// TODO: Uncomment once metrics is added func sendMetrics(ctx context.Context, start time.Time, isSuccessful bool) { - // reqType, ok := getRequestType(ctx) - // if !ok { - // return - // } + reqType, ok := getRequestType(ctx) + if !ok { + return + } - // meters, ok := requestMeters[reqType] - // if !ok { - // return - // } + meters, ok := requestMeters[reqType] + if !ok { + return + } - // meters.request[isSuccessful].Mark(1) - // meters.timer.Update(time.Since(start)) + meters.request[isSuccessful].Set(1) + meters.timer.ObserveDuration(start) } diff --git a/consensus/bor/heimdall/milestone/milestone.go b/consensus/bor/heimdall/milestone/milestone.go new file mode 100644 index 00000000000..a849f4461bd --- /dev/null +++ b/consensus/bor/heimdall/milestone/milestone.go @@ -0,0 +1,58 @@ +package milestone + +import ( + "math/big" + + libcommon "github.com/ledgerwatch/erigon-lib/common" +) + +// milestone defines a response object type of bor milestone +type Milestone struct { + Proposer libcommon.Address `json:"proposer"` + StartBlock *big.Int `json:"start_block"` + EndBlock *big.Int `json:"end_block"` + Hash libcommon.Hash `json:"hash"` + BorChainID string `json:"bor_chain_id"` + Timestamp uint64 `json:"timestamp"` +} + +type MilestoneResponse struct { + Height string `json:"height"` + Result Milestone `json:"result"` +} + +type MilestoneCount struct { + Count int64 `json:"count"` +} + +type MilestoneCountResponse struct { + Height string `json:"height"` + Result MilestoneCount `json:"result"` +} + +type MilestoneLastNoAck struct { + Result string `json:"result"` +} + +type MilestoneLastNoAckResponse struct { + Height string `json:"height"` + Result MilestoneLastNoAck `json:"result"` +} + +type MilestoneNoAck struct { + Result bool `json:"result"` +} + +type MilestoneNoAckResponse struct { + Height string `json:"height"` + Result MilestoneNoAck `json:"result"` +} + +type MilestoneID struct { + Result bool `json:"result"` +} + +type MilestoneIDResponse struct { + Height string `json:"height"` + Result MilestoneID `json:"result"` +} diff --git a/consensus/bor/heimdall/span/spanner.go b/consensus/bor/heimdall/span/spanner.go index ed4b0e042d9..b3738c4774c 100644 --- a/consensus/bor/heimdall/span/spanner.go +++ b/consensus/bor/heimdall/span/spanner.go @@ -2,6 +2,7 @@ package span import ( "encoding/hex" + "encoding/json" "math/big" "github.com/ledgerwatch/erigon-lib/chain" @@ -37,7 +38,7 @@ func (c *ChainSpanner) GetCurrentSpan(syscall consensus.SystemCall) (*Span, erro data, err := c.validatorSet.Pack(method) if err != nil { - c.logger.Error("Unable to pack tx for getCurrentSpan", "error", err) + c.logger.Error("[bor] Unable to pack tx for getCurrentSpan", "error", err) return nil, err } @@ -67,47 +68,30 @@ func (c *ChainSpanner) GetCurrentSpan(syscall consensus.SystemCall) (*Span, erro return &span, nil } -func (c *ChainSpanner) GetCurrentValidators(blockNumber uint64, signer libcommon.Address, getSpanForBlock func(blockNum uint64) (*HeimdallSpan, error)) ([]*valset.Validator, error) { - // Use signer as validator in case of bor devent - if c.withoutHeimdall { - c.logger.Info("Spanner returning pre-set validator set") - validators := []*valset.Validator{ - { - ID: 1, - Address: signer, - VotingPower: 1000, - ProposerPriority: 1, - }, - } - - return validators, nil +func (c *ChainSpanner) GetCurrentValidators(spanId uint64, signer libcommon.Address, chain consensus.ChainHeaderReader) ([]*valset.Validator, error) { + // Use hardcoded bor devnet valset if chain-name = bor-devnet + if NetworkNameVals[c.chainConfig.ChainName] != nil && c.withoutHeimdall { + return NetworkNameVals[c.chainConfig.ChainName], nil } - span, err := getSpanForBlock(blockNumber) - if err != nil { + spanBytes := chain.BorSpan(spanId) + var span HeimdallSpan + if err := json.Unmarshal(spanBytes, &span); err != nil { return nil, err } return span.ValidatorSet.Validators, nil } -func (c *ChainSpanner) GetCurrentProducers(blockNumber uint64, signer libcommon.Address, getSpanForBlock func(blockNum uint64) (*HeimdallSpan, error)) ([]*valset.Validator, error) { - // Use signer as validator in case of bor devent - if c.withoutHeimdall { - validators := []*valset.Validator{ - { - ID: 1, - Address: signer, - VotingPower: 1000, - ProposerPriority: 1, - }, - } - - return validators, nil +func (c *ChainSpanner) GetCurrentProducers(spanId uint64, signer libcommon.Address, chain consensus.ChainHeaderReader) ([]*valset.Validator, error) { + // Use hardcoded bor devnet valset if chain-name = bor-devnet + if NetworkNameVals[c.chainConfig.ChainName] != nil && c.withoutHeimdall { + return NetworkNameVals[c.chainConfig.ChainName], nil } - span, err := getSpanForBlock(blockNumber) - if err != nil { + spanBytes := chain.BorSpan(spanId) + var span HeimdallSpan + if err := json.Unmarshal(spanBytes, &span); err != nil { return nil, err } @@ -144,7 +128,7 @@ func (c *ChainSpanner) CommitSpan(heimdallSpan HeimdallSpan, syscall consensus.S return err } - c.logger.Debug("✅ Committing new span", + c.logger.Debug("[bor] ✅ Committing new span", "id", heimdallSpan.ID, "startBlock", heimdallSpan.StartBlock, "endBlock", heimdallSpan.EndBlock, @@ -161,7 +145,7 @@ func (c *ChainSpanner) CommitSpan(heimdallSpan HeimdallSpan, syscall consensus.S producerBytes, ) if err != nil { - c.logger.Error("Unable to pack tx for commitSpan", "error", err) + c.logger.Error("[bor] Unable to pack tx for commitSpan", "error", err) return err } diff --git a/consensus/bor/heimdall/span/testValidators.go b/consensus/bor/heimdall/span/testValidators.go new file mode 100644 index 00000000000..29cf1cc2e6a --- /dev/null +++ b/consensus/bor/heimdall/span/testValidators.go @@ -0,0 +1,41 @@ +package span + +import ( + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/consensus/bor/valset" +) + +// NetworkNameVals is a map of network name to validator set for tests/devnets +var NetworkNameVals = make(map[string][]*valset.Validator) + +// Validator set for bor e2e test chain with 2 validator configuration +var BorE2ETestChain2Valset = []*valset.Validator{ + { + ID: 1, + Address: common.HexToAddress("71562b71999873DB5b286dF957af199Ec94617F7"), + VotingPower: 1000, + ProposerPriority: 1, + }, + { + ID: 2, + Address: common.HexToAddress("9fB29AAc15b9A4B7F17c3385939b007540f4d791"), + VotingPower: 1000, + ProposerPriority: 2, + }, +} + +// Validator set for bor devnet-chain with 1 validator configuration +var BorDevnetChainVals = []*valset.Validator{ + { + ID: 1, + Address: common.HexToAddress("0x67b1d87101671b127f5f8714789C7192f7ad340e"), + VotingPower: 1000, + ProposerPriority: 1, + }, +} + +func init() { + NetworkNameVals[networkname.BorE2ETestChain2ValName] = BorE2ETestChain2Valset + NetworkNameVals[networkname.BorDevnetChainName] = BorDevnetChainVals +} diff --git a/consensus/bor/heimdallgrpc/milestone.go b/consensus/bor/heimdallgrpc/milestone.go new file mode 100644 index 00000000000..ab39cbb3952 --- /dev/null +++ b/consensus/bor/heimdallgrpc/milestone.go @@ -0,0 +1,102 @@ +package heimdallgrpc + +import ( + "context" + "fmt" + "math/big" + + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/milestone" + + proto "github.com/maticnetwork/polyproto/heimdall" + protoutils "github.com/maticnetwork/polyproto/utils" +) + +func (h *HeimdallGRPCClient) FetchMilestoneCount(ctx context.Context) (int64, error) { + h.logger.Info("Fetching milestone count") + + res, err := h.client.FetchMilestoneCount(ctx, nil) + if err != nil { + return 0, err + } + + h.logger.Info("Fetched milestone count") + + return res.Result.Count, nil +} + +func (h *HeimdallGRPCClient) FetchMilestone(ctx context.Context) (*milestone.Milestone, error) { + h.logger.Info("Fetching milestone") + + res, err := h.client.FetchMilestone(ctx, nil) + if err != nil { + return nil, err + } + + h.logger.Info("Fetched milestone") + + milestone := &milestone.Milestone{ + StartBlock: new(big.Int).SetUint64(res.Result.StartBlock), + EndBlock: new(big.Int).SetUint64(res.Result.EndBlock), + Hash: protoutils.ConvertH256ToHash(res.Result.RootHash), + Proposer: protoutils.ConvertH160toAddress(res.Result.Proposer), + BorChainID: res.Result.BorChainID, + Timestamp: uint64(res.Result.Timestamp.GetSeconds()), + } + + return milestone, nil +} + +func (h *HeimdallGRPCClient) FetchLastNoAckMilestone(ctx context.Context) (string, error) { + h.logger.Info("Fetching latest no ack milestone Id") + + res, err := h.client.FetchLastNoAckMilestone(ctx, nil) + if err != nil { + return "", err + } + + h.logger.Info("Fetched last no-ack milestone") + + return res.Result.Result, nil +} + +func (h *HeimdallGRPCClient) FetchNoAckMilestone(ctx context.Context, milestoneID string) error { + req := &proto.FetchMilestoneNoAckRequest{ + MilestoneID: milestoneID, + } + + h.logger.Info("Fetching no ack milestone", "milestoneID", milestoneID) + + res, err := h.client.FetchNoAckMilestone(ctx, req) + if err != nil { + return err + } + + if !res.Result.Result { + return fmt.Errorf("Not in rejected list: milestoneID %q", milestoneID) + } + + h.logger.Info("Fetched no ack milestone", "milestoneID", milestoneID) + + return nil +} + +func (h *HeimdallGRPCClient) FetchMilestoneID(ctx context.Context, milestoneID string) error { + req := &proto.FetchMilestoneIDRequest{ + MilestoneID: milestoneID, + } + + h.logger.Info("Fetching milestone id", "milestoneID", milestoneID) + + res, err := h.client.FetchMilestoneID(ctx, req) + if err != nil { + return err + } + + if !res.Result.Result { + return fmt.Errorf("This milestoneID %q does not exist", milestoneID) + } + + h.logger.Info("Fetched milestone id", "milestoneID", milestoneID) + + return nil +} diff --git a/consensus/bor/heimdallgrpc/server.go b/consensus/bor/heimdallgrpc/server.go index 2953ab3ac1f..8139c33ddac 100644 --- a/consensus/bor/heimdallgrpc/server.go +++ b/consensus/bor/heimdallgrpc/server.go @@ -7,7 +7,7 @@ import ( "time" "github.com/ledgerwatch/erigon-lib/gointerfaces" - "github.com/ledgerwatch/erigon/consensus/bor" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall" "github.com/ledgerwatch/log/v3" proto "github.com/maticnetwork/polyproto/heimdall" "google.golang.org/grpc" @@ -19,7 +19,7 @@ import ( type HeimdallGRPCServer struct { proto.UnimplementedHeimdallServer - heimdall bor.HeimdallServer + heimdall heimdall.HeimdallServer logger log.Logger } @@ -27,7 +27,7 @@ func (h *HeimdallGRPCServer) Span(ctx context.Context, in *proto.SpanRequest) (* result, err := h.heimdall.Span(ctx, in.ID) if err != nil { - h.logger.Error("Error while fetching span") + h.logger.Error("[bor.heimdall] Error while fetching span") return nil, err } @@ -106,7 +106,7 @@ func (h *HeimdallGRPCServer) FetchCheckpointCount(ctx context.Context, in *empty count, err := h.heimdall.FetchCheckpointCount(ctx) if err != nil { - h.logger.Error("Error while fetching checkpoint count") + h.logger.Error("[bor.heimdall] Error while fetching checkpoint count") return nil, err } @@ -121,7 +121,7 @@ func (h *HeimdallGRPCServer) FetchCheckpoint(ctx context.Context, in *proto.Fetc _ /*checkpoint*/, err := h.heimdall.FetchCheckpoint(ctx, in.ID) if err != nil { - h.logger.Error("Error while fetching checkpoint") + h.logger.Error("[bor.heimdall] Error while fetching checkpoint") return nil, err } @@ -159,7 +159,7 @@ func (h *HeimdallGRPCServer) StateSyncEvents(req *proto.StateSyncEventsRequest, height, events, err := h.heimdall.StateSyncEvents(context.Background(), fromId, int64(req.ToTime), int(req.Limit)) if err != nil { - h.logger.Error("Error while fetching event records", "error", err) + h.logger.Error("[bor.heimdall] Error while fetching event records", "error", err) return status.Errorf(codes.Internal, err.Error()) } @@ -187,7 +187,7 @@ func (h *HeimdallGRPCServer) StateSyncEvents(req *proto.StateSyncEventsRequest, }) if err != nil { - h.logger.Error("Error while sending event record", "error", err) + h.logger.Error("[bor.heimdall] Error while sending event record", "error", err) return status.Errorf(codes.Internal, err.Error()) } @@ -204,7 +204,7 @@ func (h *HeimdallGRPCServer) StateSyncEvents(req *proto.StateSyncEventsRequest, // StartHeimdallServer creates a heimdall GRPC server - which is implemented via the passed in client // interface. It is intended for use in testing where more than a single test validator is required rather // than to replace the maticnetwork implementation -func StartHeimdallServer(shutDownCtx context.Context, heimdall bor.HeimdallServer, addr string, logger log.Logger) error { +func StartHeimdallServer(shutDownCtx context.Context, heimdall heimdall.HeimdallServer, addr string, logger log.Logger) error { grpcServer := grpc.NewServer(withLoggingUnaryInterceptor(logger)) proto.RegisterHeimdallServer(grpcServer, &HeimdallGRPCServer{ @@ -219,16 +219,16 @@ func StartHeimdallServer(shutDownCtx context.Context, heimdall bor.HeimdallServe go func() { if err := grpcServer.Serve(lis); err != nil { - logger.Error("failed to serve grpc server", "err", err) + logger.Error("[bor.heimdall] failed to serve grpc server", "err", err) } <-shutDownCtx.Done() grpcServer.Stop() lis.Close() - logger.Info("GRPC Server stopped", "addr", addr) + logger.Info("[bor.heimdall] GRPC Server stopped", "addr", addr) }() - logger.Info("GRPC Server started", "addr", addr) + logger.Info("[bor.heimdall] GRPC Server started", "addr", addr) return nil } @@ -242,7 +242,7 @@ func withLoggingUnaryInterceptor(logger log.Logger) grpc.ServerOption { err = status.Errorf(codes.Internal, err.Error()) } - logger.Debug("Request", "method", info.FullMethod, "duration", time.Since(start), "error", err) + logger.Debug("[bor.heimdall] Request", "method", info.FullMethod, "duration", time.Since(start), "error", err) return h, err }) diff --git a/consensus/bor/heimdallgrpc/state_sync.go b/consensus/bor/heimdallgrpc/state_sync.go index 3cf93dc906a..e1b49e67d93 100644 --- a/consensus/bor/heimdallgrpc/state_sync.go +++ b/consensus/bor/heimdallgrpc/state_sync.go @@ -6,7 +6,6 @@ import ( "io" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus/bor/clerk" proto "github.com/maticnetwork/polyproto/heimdall" ) @@ -46,7 +45,7 @@ func (h *HeimdallGRPCClient) StateSyncEvents(ctx context.Context, fromID uint64, EventRecord: clerk.EventRecord{ ID: event.ID, Contract: libcommon.HexToAddress(event.Contract), - Data: common.Hex2Bytes(event.Data[2:]), + Data: libcommon.Hex2Bytes(event.Data[2:]), TxHash: libcommon.HexToHash(event.TxHash), LogIndex: event.LogIndex, ChainID: event.ChainID, diff --git a/consensus/bor/snapshot.go b/consensus/bor/snapshot.go index 0e8825dd5bb..836acf36343 100644 --- a/consensus/bor/snapshot.go +++ b/consensus/bor/snapshot.go @@ -37,7 +37,7 @@ const BorSeparate = "BorSeparate" // newSnapshot creates a new snapshot with the specified startup parameters. This // method does not initialize the set of recent signers, so only ever use if for // the genesis block. -func newSnapshot( +func NewSnapshot( config *chain.BorConfig, sigcache *lru.ARCCache[common.Hash, common.Address], number uint64, @@ -57,7 +57,7 @@ func newSnapshot( } // loadSnapshot loads an existing snapshot from the database. -func loadSnapshot(config *chain.BorConfig, sigcache *lru.ARCCache[common.Hash, common.Address], db kv.RwDB, hash common.Hash) (*Snapshot, error) { +func LoadSnapshot(config *chain.BorConfig, sigcache *lru.ARCCache[common.Hash, common.Address], db kv.RwDB, hash common.Hash) (*Snapshot, error) { tx, err := db.BeginRo(context.Background()) if err != nil { return nil, err @@ -90,7 +90,7 @@ func loadSnapshot(config *chain.BorConfig, sigcache *lru.ARCCache[common.Hash, c } // store inserts the snapshot into the database. -func (s *Snapshot) store(db kv.RwDB) error { +func (s *Snapshot) Store(db kv.RwDB) error { blob, err := json.Marshal(s) if err != nil { return err @@ -118,7 +118,7 @@ func (s *Snapshot) copy() *Snapshot { return cpy } -func (s *Snapshot) apply(headers []*types.Header, logger log.Logger) (*Snapshot, error) { +func (s *Snapshot) Apply(parent *types.Header, headers []*types.Header, logger log.Logger) (*Snapshot, error) { // Allow passing in no headers for cleaner code if len(headers) == 0 { return s, nil @@ -145,31 +145,43 @@ func (s *Snapshot) apply(headers []*types.Header, logger log.Logger) (*Snapshot, if number >= sprintLen { delete(snap.Recents, number-sprintLen) } - // Resolve the authorization key and check against signers - signer, err := ecrecover(header, s.sigcache, s.config) + signer, err := Ecrecover(header, s.sigcache, s.config) + if err != nil { return nil, err } + var validSigner bool + var succession int + // check if signer is in validator set if !snap.ValidatorSet.HasAddress(signer) { - return nil, &UnauthorizedSignerError{number, signer.Bytes()} + return snap, &UnauthorizedSignerError{number, signer.Bytes()} } - - if _, err = snap.GetSignerSuccessionNumber(signer); err != nil { - return nil, err + if succession, err = snap.GetSignerSuccessionNumber(signer); err != nil { + return snap, err } // add recents snap.Recents[number] = signer + validSigner = true + + if parent != nil && header.Time < parent.Time+CalcProducerDelay(number, succession, s.config) { + return snap, &BlockTooSoonError{number, succession} + } + difficulty := snap.Difficulty(signer) + if header.Difficulty.Uint64() != difficulty { + return snap, &WrongDifficultyError{number, difficulty, header.Difficulty.Uint64(), signer.Bytes()} + } + // change validator set and change proposer if number > 0 && (number+1)%sprintLen == 0 { - if err := validateHeaderExtraField(header.Extra); err != nil { - return nil, err + if err := ValidateHeaderExtraField(header.Extra); err != nil { + return snap, err } - validatorBytes := header.Extra[extraVanity : len(header.Extra)-extraSeal] + validatorBytes := GetValidatorBytes(header, s.config) // get validators from headers and use that for new validator set newVals, _ := valset.ParseValidators(validatorBytes) @@ -177,10 +189,14 @@ func (s *Snapshot) apply(headers []*types.Header, logger log.Logger) (*Snapshot, v.IncrementProposerPriority(1, logger) snap.ValidatorSet = v } - } - snap.Number += uint64(len(headers)) - snap.Hash = headers[len(headers)-1].Hash() + if number > 64 && !validSigner { + return snap, &UnauthorizedSignerError{number, signer.Bytes()} + } + parent = header + snap.Number = number + snap.Hash = header.Hash() + } return snap, nil } diff --git a/consensus/bor/span.go b/consensus/bor/span.go index 7365fd10c80..41e8abec8db 100644 --- a/consensus/bor/span.go +++ b/consensus/bor/span.go @@ -10,7 +10,7 @@ import ( //go:generate mockgen -destination=./span_mock.go -package=bor . Spanner type Spanner interface { GetCurrentSpan(syscall consensus.SystemCall) (*span.Span, error) - GetCurrentValidators(blockNumber uint64, signer libcommon.Address, getSpanForBlock func(blockNum uint64) (*span.HeimdallSpan, error)) ([]*valset.Validator, error) - GetCurrentProducers(blockNumber uint64, signer libcommon.Address, getSpanForBlock func(blockNum uint64) (*span.HeimdallSpan, error)) ([]*valset.Validator, error) + GetCurrentValidators(spanId uint64, signer libcommon.Address, chain consensus.ChainHeaderReader) ([]*valset.Validator, error) + GetCurrentProducers(spanId uint64, signer libcommon.Address, chain consensus.ChainHeaderReader) ([]*valset.Validator, error) CommitSpan(heimdallSpan span.HeimdallSpan, syscall consensus.SystemCall) error } diff --git a/consensus/bor/statefull/processor.go b/consensus/bor/statefull/processor.go index 475a13bcd9b..a19844e0f28 100644 --- a/consensus/bor/statefull/processor.go +++ b/consensus/bor/statefull/processor.go @@ -11,7 +11,7 @@ import ( ) type ChainContext struct { - Chain consensus.ChainHeaderReader + Chain consensus.ChainReader Bor consensus.Engine } diff --git a/consensus/chain_reader.go b/consensus/chain_reader.go index 795e2a856e4..f79de40c4cc 100644 --- a/consensus/chain_reader.go +++ b/consensus/chain_reader.go @@ -78,3 +78,11 @@ func (cr ChainReaderImpl) GetTd(hash libcommon.Hash, number uint64) *big.Int { func (cr ChainReaderImpl) FrozenBlocks() uint64 { return cr.BlockReader.FrozenBlocks() } + +func (cr ChainReaderImpl) BorSpan(spanId uint64) []byte { + spanBytes, err := cr.BlockReader.Span(context.Background(), cr.Db, spanId) + if err != nil { + log.Error("BorSpan failed", "err", err) + } + return spanBytes +} diff --git a/consensus/clique/clique.go b/consensus/clique/clique.go index aaf4c6da083..6efe46f21ae 100644 --- a/consensus/clique/clique.go +++ b/consensus/clique/clique.go @@ -22,6 +22,8 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "io" "math/big" "math/rand" @@ -38,9 +40,7 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/debug" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" @@ -366,7 +366,7 @@ func (c *Clique) Prepare(chain consensus.ChainHeaderReader, header *types.Header } func (c *Clique) Initialize(config *chain.Config, chain consensus.ChainHeaderReader, header *types.Header, - state *state.IntraBlockState, txs []types.Transaction, uncles []*types.Header, syscall consensus.SysCallCustom) { + state *state.IntraBlockState, syscall consensus.SysCallCustom, logger log.Logger) { } func (c *Clique) CalculateRewards(config *chain.Config, header *types.Header, uncles []*types.Header, syscall consensus.SystemCall, @@ -378,7 +378,7 @@ func (c *Clique) CalculateRewards(config *chain.Config, header *types.Header, un // rewards given. func (c *Clique) Finalize(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, r types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, logger log.Logger, ) (types.Transactions, types.Receipts, error) { // No block rewards in PoA, so the state remains as is and uncles are dropped header.UncleHash = types.CalcUncleHash(nil) @@ -389,7 +389,7 @@ func (c *Clique) Finalize(config *chain.Config, header *types.Header, state *sta // nor block rewards given, and returns the final block. func (c *Clique) FinalizeAndAssemble(chainConfig *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, receipts types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger, ) (*types.Block, types.Transactions, types.Receipts, error) { // No block rewards in PoA, so the state remains as is and uncles are dropped header.UncleHash = types.CalcUncleHash(nil) diff --git a/consensus/clique/clique_test.go b/consensus/clique/clique_test.go index c69bbf349af..87167c13428 100644 --- a/consensus/clique/clique_test.go +++ b/consensus/clique/clique_test.go @@ -106,7 +106,7 @@ func TestReimportMirroredState(t *testing.T) { } // Insert the first two blocks and make sure the chain is valid - if err := m.InsertChain(chain.Slice(0, 2), nil); err != nil { + if err := m.InsertChain(chain.Slice(0, 2)); err != nil { t.Fatalf("failed to insert initial blocks: %v", err) } if err := m.DB.View(m.Ctx, func(tx kv.Tx) error { @@ -123,7 +123,7 @@ func TestReimportMirroredState(t *testing.T) { // Simulate a crash by creating a new chain on top of the database, without // flushing the dirty states out. Insert the last block, triggering a sidechain // reimport. - if err := m.InsertChain(chain.Slice(2, chain.Length()), nil); err != nil { + if err := m.InsertChain(chain.Slice(2, chain.Length())); err != nil { t.Fatalf("failed to insert final block: %v", err) } if err := m.DB.View(m.Ctx, func(tx kv.Tx) error { diff --git a/consensus/clique/snapshot.go b/consensus/clique/snapshot.go index c478d6ec3b1..fb34b19c680 100644 --- a/consensus/clique/snapshot.go +++ b/consensus/clique/snapshot.go @@ -21,6 +21,7 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "sort" "time" @@ -33,7 +34,6 @@ import ( "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/consensus/clique/snapshot_test.go b/consensus/clique/snapshot_test.go index bfdaa4e1d09..0f487177bfc 100644 --- a/consensus/clique/snapshot_test.go +++ b/consensus/clique/snapshot_test.go @@ -477,7 +477,7 @@ func TestClique(t *testing.T) { chainX.Headers[k] = b.Header() } chainX.TopBlock = batches[j][len(batches[j])-1] - if err = m.InsertChain(chainX, nil); err != nil { + if err = m.InsertChain(chainX); err != nil { t.Errorf("test %d: failed to import batch %d, %v", i, j, err) failed = true break @@ -493,7 +493,7 @@ func TestClique(t *testing.T) { chainX.Headers[k] = b.Header() } chainX.TopBlock = batches[len(batches)-1][len(batches[len(batches)-1])-1] - err = m.InsertChain(chainX, nil) + err = m.InsertChain(chainX) if tt.failure != nil && err == nil { t.Errorf("test %d: expected failure", i) } diff --git a/consensus/consensus.go b/consensus/consensus.go index 6db756f042a..0a98706fa34 100644 --- a/consensus/consensus.go +++ b/consensus/consensus.go @@ -27,6 +27,7 @@ import ( "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/log/v3" ) @@ -54,6 +55,9 @@ type ChainHeaderReader interface { // Number of blocks frozen in the block snapshots FrozenBlocks() uint64 + + // Byte string representation of a bor span with given ID + BorSpan(spanId uint64) []byte } // ChainReader defines a small collection of methods needed to access the local @@ -63,9 +67,10 @@ type ChainReader interface { // GetBlock retrieves a block from the database by hash and number. GetBlock(hash libcommon.Hash, number uint64) *types.Block - GetHeader(hash libcommon.Hash, number uint64) *types.Header HasBlock(hash libcommon.Hash, number uint64) bool + + BorEventsByBlock(hash libcommon.Hash, number uint64) []rlp.RawValue } type SystemCall func(contract libcommon.Address, data []byte) ([]byte, error) @@ -117,6 +122,9 @@ type EngineReader interface { CalculateRewards(config *chain.Config, header *types.Header, uncles []*types.Header, syscall SystemCall, ) ([]Reward, error) + + // Close terminates any background threads, DB's etc maintained by the consensus engine. + Close() error } // EngineReader are write methods of the consensus engine @@ -136,7 +144,7 @@ type EngineWriter interface { // Initialize runs any pre-transaction state modifications (e.g. epoch start) Initialize(config *chain.Config, chain ChainHeaderReader, header *types.Header, - state *state.IntraBlockState, txs []types.Transaction, uncles []*types.Header, syscall SysCallCustom) + state *state.IntraBlockState, syscall SysCallCustom, logger log.Logger) // Finalize runs any post-transaction state modifications (e.g. block rewards) // but does not assemble the block. @@ -145,7 +153,7 @@ type EngineWriter interface { // consensus rules that happen at finalization (e.g. block rewards). Finalize(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, receipts types.Receipts, withdrawals []*types.Withdrawal, - chain ChainHeaderReader, syscall SystemCall, logger log.Logger, + chain ChainReader, syscall SystemCall, logger log.Logger, ) (types.Transactions, types.Receipts, error) // FinalizeAndAssemble runs any post-transaction state modifications (e.g. block @@ -155,7 +163,7 @@ type EngineWriter interface { // consensus rules that happen at finalization (e.g. block rewards). FinalizeAndAssemble(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, receipts types.Receipts, withdrawals []*types.Withdrawal, - chain ChainHeaderReader, syscall SystemCall, call Call, logger log.Logger, + chain ChainReader, syscall SystemCall, call Call, logger log.Logger, ) (*types.Block, types.Transactions, types.Receipts, error) // Seal generates a new sealing request for the given input block and pushes @@ -177,9 +185,6 @@ type EngineWriter interface { // APIs returns the RPC APIs this consensus engine provides. APIs(chain ChainHeaderReader) []rpc.API - - // Close terminates any background threads maintained by the consensus engine. - Close() error } // PoW is a consensus engine based on proof-of-work. diff --git a/consensus/errors.go b/consensus/errors.go index c88ae64b4e7..0659812b7e7 100644 --- a/consensus/errors.go +++ b/consensus/errors.go @@ -19,6 +19,11 @@ package consensus import "errors" var ( + // ErrInvalidBlock is a generic error to wrap all non-transient genuine protocol validation errors. + // For example, ErrUnexpectedWithdrawals should be wrapped as ErrInvalidBlock, + // while an out-of-memory error should not. + ErrInvalidBlock = errors.New("invalid block") + // ErrUnknownAncestor is returned when validating a block requires an ancestor // that is unknown. ErrUnknownAncestor = errors.New("unknown ancestor") diff --git a/consensus/ethash/algorithm.go b/consensus/ethash/algorithm.go index 3c20c22439e..6ac5737b672 100644 --- a/consensus/ethash/algorithm.go +++ b/consensus/ethash/algorithm.go @@ -18,6 +18,7 @@ package ethash import ( "encoding/binary" + common2 "github.com/ledgerwatch/erigon-lib/common" "hash" "math/big" "reflect" @@ -135,7 +136,7 @@ func seedHash(block uint64) []byte { return seed } - h := common.NewHasher() + h := common2.NewHasher() for i := 0; i < int(block/epochLength); i++ { h.Sha.Reset() @@ -151,7 +152,7 @@ func seedHash(block uint64) []byte { } } - common.ReturnHasherToPool(h) + common2.ReturnHasherToPool(h) return seed } diff --git a/consensus/ethash/algorithm_test.go b/consensus/ethash/algorithm_test.go index 722c83fadc3..d9fa5b1d400 100644 --- a/consensus/ethash/algorithm_test.go +++ b/consensus/ethash/algorithm_test.go @@ -19,13 +19,12 @@ package ethash import ( "bytes" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "io" "reflect" "testing" "github.com/ledgerwatch/erigon-lib/common/length" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // prepare converts an ethash cache or dataset from a byte stream into the internal diff --git a/consensus/ethash/api.go b/consensus/ethash/api.go index 7ee7d81b19f..0ecd3a819d2 100644 --- a/consensus/ethash/api.go +++ b/consensus/ethash/api.go @@ -18,10 +18,10 @@ package ethash import ( "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/consensus/ethash/consensus.go b/consensus/ethash/consensus.go index b3ce172a5fb..5c92c2061d5 100644 --- a/consensus/ethash/consensus.go +++ b/consensus/ethash/consensus.go @@ -24,7 +24,7 @@ import ( "runtime" "time" - mapset "github.com/deckarep/golang-set" + mapset "github.com/deckarep/golang-set/v2" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -149,9 +149,9 @@ func (ethash *Ethash) VerifyUncles(chain consensus.ChainReader, header *types.He return nil } -func getUncles(chain consensus.ChainReader, header *types.Header) (mapset.Set, map[libcommon.Hash]*types.Header) { +func getUncles(chain consensus.ChainReader, header *types.Header) (mapset.Set[libcommon.Hash], map[libcommon.Hash]*types.Header) { // Gather the set of past uncles and ancestors - uncles, ancestors := mapset.NewSet(), make(map[libcommon.Hash]*types.Header) + uncles, ancestors := mapset.NewSet[libcommon.Hash](), make(map[libcommon.Hash]*types.Header) number, parent := header.Number.Uint64()-1, header.ParentHash for i := 0; i < 7; i++ { @@ -178,7 +178,7 @@ func getUncles(chain consensus.ChainReader, header *types.Header) (mapset.Set, m return uncles, ancestors } -func (ethash *Ethash) VerifyUncle(chain consensus.ChainHeaderReader, header *types.Header, uncle *types.Header, uncles mapset.Set, ancestors map[libcommon.Hash]*types.Header, seal bool) error { +func (ethash *Ethash) VerifyUncle(chain consensus.ChainHeaderReader, header *types.Header, uncle *types.Header, uncles mapset.Set[libcommon.Hash], ancestors map[libcommon.Hash]*types.Header, seal bool) error { // Make sure every uncle is rewarded only once hash := uncle.Hash() if uncles.Contains(hash) { @@ -550,14 +550,17 @@ func (ethash *Ethash) Prepare(chain consensus.ChainHeaderReader, header *types.H } func (ethash *Ethash) Initialize(config *chain.Config, chain consensus.ChainHeaderReader, header *types.Header, - state *state.IntraBlockState, txs []types.Transaction, uncles []*types.Header, syscall consensus.SysCallCustom) { + state *state.IntraBlockState, syscall consensus.SysCallCustom, logger log.Logger) { + if config.DAOForkBlock != nil && config.DAOForkBlock.Cmp(header.Number) == 0 { + misc.ApplyDAOHardFork(state) + } } // Finalize implements consensus.Engine, accumulating the block and uncle rewards, // setting the final state on the header func (ethash *Ethash) Finalize(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, r types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, logger log.Logger, ) (types.Transactions, types.Receipts, error) { // Accumulate any block and uncle rewards and commit the final state root accumulateRewards(config, state, header, uncles) @@ -568,7 +571,7 @@ func (ethash *Ethash) Finalize(config *chain.Config, header *types.Header, state // uncle rewards, setting the final state and assembling the block. func (ethash *Ethash) FinalizeAndAssemble(chainConfig *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, r types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger, ) (*types.Block, types.Transactions, types.Receipts, error) { // Finalize block diff --git a/consensus/ethash/ethash.go b/consensus/ethash/ethash.go index 813c5283e78..ef2840371de 100644 --- a/consensus/ethash/ethash.go +++ b/consensus/ethash/ethash.go @@ -32,13 +32,12 @@ import ( "unsafe" "github.com/edsrzf/mmap-go" - "github.com/hashicorp/golang-lru/simplelru" + "github.com/hashicorp/golang-lru/v2/simplelru" "github.com/ledgerwatch/erigon/consensus/ethash/ethashcfg" "github.com/ledgerwatch/erigon/common/debug" cmath "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/metrics" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/log/v3" ) @@ -183,7 +182,7 @@ type lru struct { mu sync.Mutex // Items are kept in a LRU cache, but there is a special case: // We always keep an item for (highest seen epoch) + 1 as the 'future item'. - cache *simplelru.LRU + cache *simplelru.LRU[uint64, any] future uint64 futureItem interface{} } @@ -194,7 +193,7 @@ func newlru(what string, maxItems int, new func(epoch uint64) interface{}) *lru if maxItems <= 0 { maxItems = 1 } - cache, _ := simplelru.NewLRU(maxItems, func(key, value interface{}) { + cache, _ := simplelru.NewLRU[uint64, any](maxItems, func(key uint64, value interface{}) { log.Trace("Evicted ethash "+what, "epoch", key) }) return &lru{what: what, new: new, cache: cache} @@ -410,8 +409,8 @@ type Ethash struct { datasets *lru // In memory datasets to avoid regenerating too often // Mining related fields - rand *rand.Rand // Properly seeded random source for nonces - hashrate metrics.Meter // Meter tracking the average hashrate + rand *rand.Rand // Properly seeded random source for nonces + hashrate *hashRateMeter // Meter tracking the average hashrate remote *remoteSealer // The fields below are hooks for testing @@ -439,7 +438,7 @@ func New(config ethashcfg.Config, notify []string, noverify bool) *Ethash { config: config, caches: newlru("cache", config.CachesInMem, newCache), datasets: newlru("dataset", config.DatasetsInMem, newDataset), - hashrate: metrics.NewMeterForced(), + hashrate: newHashRateMeter(), } if config.PowMode == ethashcfg.ModeShared { ethash.shared = GetSharedEthash() @@ -534,7 +533,7 @@ func (ethash *Ethash) dataset(block uint64, async bool) *dataset { func (ethash *Ethash) Hashrate() float64 { // Short circuit if we are run the ethash in normal/test mode. if (ethash.config.PowMode != ethashcfg.ModeNormal && ethash.config.PowMode != ethashcfg.ModeTest) || ethash.remote == nil { - return ethash.hashrate.Rate1() + return ethash.hashrate.Rate() } var res = make(chan uint64, 1) @@ -542,11 +541,11 @@ func (ethash *Ethash) Hashrate() float64 { case ethash.remote.fetchRateCh <- res: case <-ethash.remote.exitCh: // Return local hashrate only if ethash is stopped. - return ethash.hashrate.Rate1() + return ethash.hashrate.Rate() } // Gather total submitted hash rate of remote sealers. - return ethash.hashrate.Rate1() + float64(<-res) + return ethash.hashrate.Rate() + float64(<-res) } // APIs implements consensus.Engine, returning the user facing RPC APIs. diff --git a/consensus/ethash/ethash_test.go b/consensus/ethash/ethash_test.go index 805ebe9cf60..c0566237c68 100644 --- a/consensus/ethash/ethash_test.go +++ b/consensus/ethash/ethash_test.go @@ -17,13 +17,13 @@ package ethash import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "testing" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/consensus/ethash/fake.go b/consensus/ethash/fake.go index 19a362a9751..70899866d27 100644 --- a/consensus/ethash/fake.go +++ b/consensus/ethash/fake.go @@ -3,7 +3,7 @@ package ethash import ( "time" - mapset "github.com/deckarep/golang-set" + mapset "github.com/deckarep/golang-set/v2" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/consensus/ethash/ethashcfg" "github.com/ledgerwatch/log/v3" @@ -87,7 +87,7 @@ func (f *FakeEthash) VerifyUncles(chain consensus.ChainReader, header *types.Hea return nil } -func (f *FakeEthash) VerifyUncle(chain consensus.ChainHeaderReader, block *types.Header, uncle *types.Header, uncles mapset.Set, ancestors map[libcommon.Hash]*types.Header, seal bool) error { +func (f *FakeEthash) VerifyUncle(chain consensus.ChainHeaderReader, block *types.Header, uncle *types.Header, uncles mapset.Set[libcommon.Hash], ancestors map[libcommon.Hash]*types.Header, seal bool) error { err := f.Ethash.VerifyUncle(chain, block, uncle, uncles, ancestors, false) if err != nil { return err diff --git a/consensus/ethash/meter.go b/consensus/ethash/meter.go new file mode 100644 index 00000000000..a75b5c1f06e --- /dev/null +++ b/consensus/ethash/meter.go @@ -0,0 +1,193 @@ +package ethash + +import ( + "math" + "sync" + "sync/atomic" + "time" + + "github.com/ledgerwatch/erigon/common/debug" +) + +func newHashRateMeter() *hashRateMeter { + m := newMeter() + arbiter.mu.Lock() + defer arbiter.mu.Unlock() + arbiter.meters[m] = struct{}{} + if !arbiter.started { + arbiter.started = true + go arbiter.tick() + } + return m +} + +// meterSnapshot is a read-only copy of another Meter. +type meterSnapshot struct { + // WARNING: The `temp` field is accessed atomically. + // On 32 bit platforms, only 64-bit aligned fields can be atomic. The struct is + // guaranteed to be so aligned, so take advantage of that. For more information, + // see https://golang.org/pkg/sync/atomic/#pkg-note-BUG. + temp int64 + count int64 + rate float64 +} + +// Count returns the count of events at the time the snapshot was taken. +func (m *meterSnapshot) Count() int64 { return m.count } + +// Mark panics. +func (*meterSnapshot) Mark(n int64) { + panic("Mark called on a MeterSnapshot") +} + +// Rate1 returns the one-minute moving average rate of events per second at the +// time the snapshot was taken. +func (m *meterSnapshot) Rate() float64 { return m.rate } + +// Stop is a no-op. +func (m *meterSnapshot) Stop() {} + +// StandardMeter is the standard implementation of a Meter. +type hashRateMeter struct { + lock sync.RWMutex + snapshot *meterSnapshot + a1 *ewma + startTime time.Time + stopped uint32 +} + +func newMeter() *hashRateMeter { + return &hashRateMeter{ + snapshot: &meterSnapshot{}, + a1: &ewma{alpha: 1 - math.Exp(-5.0/60.0/1)}, + startTime: time.Now(), + } +} + +// Stop stops the meter, Mark() will be a no-op if you use it after being stopped. +func (m *hashRateMeter) Stop() { + stopped := atomic.SwapUint32(&m.stopped, 1) + if stopped != 1 { + arbiter.mu.Lock() + delete(arbiter.meters, m) + arbiter.mu.Unlock() + } +} + +// Count returns the number of events recorded. +// It updates the meter to be as accurate as possible +func (m *hashRateMeter) Count() int64 { + m.lock.Lock() + defer m.lock.Unlock() + m.updateMeter() + return m.snapshot.count +} + +// Mark records the occurrence of n events. +func (m *hashRateMeter) Mark(n int64) { + m.lock.Lock() + m.snapshot.temp = n + m.lock.Unlock() +} + +// Rate returns the one-minute moving average rate of events per second. +func (m *hashRateMeter) Rate() float64 { + m.lock.RLock() + defer m.lock.RUnlock() + return m.snapshot.rate +} + +// Snapshot returns a read-only copy of the meter. +func (m *hashRateMeter) Snapshot() *meterSnapshot { + m.lock.RLock() + snapshot := *m.snapshot + m.lock.RUnlock() + return &snapshot +} + +func (m *hashRateMeter) updateSnapshot() { + // should run with write lock held on m.lock + snapshot := m.snapshot + snapshot.rate = m.a1.Rate() +} + +func (m *hashRateMeter) updateMeter() { + // should only run with write lock held on m.lock + n := atomic.SwapInt64(&m.snapshot.temp, 0) + m.snapshot.count += n + m.a1.Update(n) +} + +func (m *hashRateMeter) tick() { + m.lock.Lock() + defer m.lock.Unlock() + m.updateMeter() + m.a1.Tick() + m.updateSnapshot() +} + +// meterArbiter ticks meters every 5s from a single goroutine. +// meters are references in a set for future stopping. +type meterArbiter struct { + mu sync.RWMutex + started bool + meters map[*hashRateMeter]struct{} + ticker *time.Ticker +} + +var arbiter = meterArbiter{ticker: time.NewTicker(5 * time.Second), meters: make(map[*hashRateMeter]struct{})} + +// Ticks meters on the scheduled interval +func (ma *meterArbiter) tick() { + defer debug.LogPanic() + for range ma.ticker.C { + ma.tickMeters() + } +} + +func (ma *meterArbiter) tickMeters() { + ma.mu.RLock() + defer ma.mu.RUnlock() + for meter := range ma.meters { + meter.tick() + } +} + +// ewma is the standard implementation of an EWMA and tracks the number +// of uncounted events and processes them on each tick. It uses the +// sync/atomic package to manage uncounted events. +type ewma struct { + uncounted int64 // /!\ this should be the first member to ensure 64-bit alignment + alpha float64 + rate float64 + init bool + mutex sync.Mutex +} + +// Rate returns the moving average rate of events per second. +func (a *ewma) Rate() float64 { + a.mutex.Lock() + defer a.mutex.Unlock() + return a.rate * float64(time.Second) +} + +// Tick ticks the clock to update the moving average. It assumes it is called +// every five seconds. +func (a *ewma) Tick() { + count := atomic.LoadInt64(&a.uncounted) + atomic.AddInt64(&a.uncounted, -count) + instantRate := float64(count) / float64(5*time.Second) + a.mutex.Lock() + defer a.mutex.Unlock() + if a.init { + a.rate += a.alpha * (instantRate - a.rate) + } else { + a.init = true + a.rate = instantRate + } +} + +// Update adds n uncounted events. +func (a *ewma) Update(n int64) { + atomic.AddInt64(&a.uncounted, n) +} diff --git a/consensus/ethash/sealer.go b/consensus/ethash/sealer.go index 76a00da872f..d020147ff5a 100644 --- a/consensus/ethash/sealer.go +++ b/consensus/ethash/sealer.go @@ -21,6 +21,7 @@ import ( "context" crand "crypto/rand" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math" "math/big" "math/rand" @@ -32,7 +33,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/consensus/merge/merge.go b/consensus/merge/merge.go index 6521efc9aee..c5544ef33bd 100644 --- a/consensus/merge/merge.go +++ b/consensus/merge/merge.go @@ -132,7 +132,7 @@ func (s *Merge) CalculateRewards(config *chain.Config, header *types.Header, unc func (s *Merge) Finalize(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, r types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, logger log.Logger, ) (types.Transactions, types.Receipts, error) { if !misc.IsPoSHeader(header) { return s.eth1Engine.Finalize(config, header, state, txs, uncles, r, withdrawals, chain, syscall, logger) @@ -164,7 +164,7 @@ func (s *Merge) Finalize(config *chain.Config, header *types.Header, state *stat func (s *Merge) FinalizeAndAssemble(config *chain.Config, header *types.Header, state *state.IntraBlockState, txs types.Transactions, uncles []*types.Header, receipts types.Receipts, withdrawals []*types.Withdrawal, - chain consensus.ChainHeaderReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger, + chain consensus.ChainReader, syscall consensus.SystemCall, call consensus.Call, logger log.Logger, ) (*types.Block, types.Transactions, types.Receipts, error) { if !misc.IsPoSHeader(header) { return s.eth1Engine.FinalizeAndAssemble(config, header, state, txs, uncles, receipts, withdrawals, chain, syscall, call, logger) @@ -242,12 +242,18 @@ func (s *Merge) verifyHeader(chain consensus.ChainHeaderReader, header, parent * return consensus.ErrUnexpectedWithdrawals } - cancun := chain.Config().IsCancun(header.Time) - if cancun { - return misc.VerifyPresenceOfCancunHeaderFields(header) - } else { + if !chain.Config().IsCancun(header.Time) { return misc.VerifyAbsenceOfCancunHeaderFields(header) } + + if err := misc.VerifyPresenceOfCancunHeaderFields(header); err != nil { + return err + } + expectedExcessBlobGas := misc.CalcExcessBlobGas(chain.Config(), parent) + if *header.ExcessBlobGas != expectedExcessBlobGas { + return fmt.Errorf("invalid excessBlobGas: have %d, want %d", *header.ExcessBlobGas, expectedExcessBlobGas) + } + return nil } func (s *Merge) Seal(chain consensus.ChainHeaderReader, block *types.Block, results chan<- *types.Block, stop <-chan struct{}) error { @@ -265,10 +271,16 @@ func (s *Merge) IsServiceTransaction(sender libcommon.Address, syscall consensus return s.eth1Engine.IsServiceTransaction(sender, syscall) } -func (s *Merge) Initialize(config *chain.Config, chain consensus.ChainHeaderReader, header *types.Header, state *state.IntraBlockState, txs []types.Transaction, uncles []*types.Header, syscall consensus.SysCallCustom) { - s.eth1Engine.Initialize(config, chain, header, state, txs, uncles, syscall) +func (s *Merge) Initialize(config *chain.Config, chain consensus.ChainHeaderReader, header *types.Header, + state *state.IntraBlockState, syscall consensus.SysCallCustom, logger log.Logger, +) { + if !misc.IsPoSHeader(header) { + s.eth1Engine.Initialize(config, chain, header, state, syscall, logger) + } if chain.Config().IsCancun(header.Time) { - misc.ApplyBeaconRootEip4788(chain, header, state) + misc.ApplyBeaconRootEip4788(header.ParentBeaconBlockRoot, func(addr libcommon.Address, data []byte) ([]byte, error) { + return syscall(addr, data, state, header, false /* constCall */) + }) } } diff --git a/consensus/merge/merge_test.go b/consensus/merge/merge_test.go index bf0558211d3..aee7810cd2f 100644 --- a/consensus/merge/merge_test.go +++ b/consensus/merge/merge_test.go @@ -41,6 +41,10 @@ func (r readerMock) FrozenBlocks() uint64 { return 0 } +func (r readerMock) BorSpan(spanId uint64) []byte { + return nil +} + // The thing only that changes beetwen normal ethash checks other than POW, is difficulty // and nonce so we are gonna test those func TestVerifyHeaderDifficulty(t *testing.T) { diff --git a/consensus/misc/eip1559.go b/consensus/misc/eip1559.go index bd43055066f..8cd278b253b 100644 --- a/consensus/misc/eip1559.go +++ b/consensus/misc/eip1559.go @@ -50,7 +50,7 @@ func VerifyEip1559Header(config *chain.Config, parent, header *types.Header, ski expectedBaseFee := CalcBaseFee(config, parent) if header.BaseFee.Cmp(expectedBaseFee) != 0 { return fmt.Errorf("invalid baseFee: have %s, want %s, parentBaseFee %s, parentGasUsed %d", - expectedBaseFee, header.BaseFee, parent.BaseFee, parent.GasUsed) + header.BaseFee, expectedBaseFee, parent.BaseFee, parent.GasUsed) } return nil } diff --git a/consensus/misc/eip4788.go b/consensus/misc/eip4788.go index 099fdcbf6ae..26293004b28 100644 --- a/consensus/misc/eip4788.go +++ b/consensus/misc/eip4788.go @@ -1,31 +1,16 @@ package misc import ( - "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/core/state" - "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/params" ) -func ApplyBeaconRootEip4788(chain consensus.ChainHeaderReader, header *types.Header, state *state.IntraBlockState) { - historyStorageAddress := libcommon.BytesToAddress(params.HistoryStorageAddress) - historicalRootsModulus := params.HistoricalRootsModulus - timestampReduced := header.Time % historicalRootsModulus - timestampExtended := timestampReduced + historicalRootsModulus - timestampIndex := libcommon.BytesToHash((uint256.NewInt(timestampReduced)).Bytes()) - rootIndex := libcommon.BytesToHash(uint256.NewInt(timestampExtended).Bytes()) - parentBeaconBlockRootInt := *uint256.NewInt(0).SetBytes(header.ParentBeaconBlockRoot.Bytes()) - state.SetState(historyStorageAddress, ×tampIndex, *uint256.NewInt(header.Time)) - state.SetState(historyStorageAddress, &rootIndex, parentBeaconBlockRootInt) - - // Ensure that the historyStorageAddress has nonzero nonce to prevent wipe-out of its storage stipulated by EIP-161 - // (when the historyStorageAddress has zero balance). - // See https://github.com/ethereum/EIPs/pull/7431 - if state.GetNonce(historyStorageAddress) == 0 { - state.SetNonce(historyStorageAddress, 1) +func ApplyBeaconRootEip4788(parentBeaconBlockRoot *libcommon.Hash, syscall consensus.SystemCall) { + _, err := syscall(params.BeaconRootsAddress, parentBeaconBlockRoot.Bytes()) + if err != nil { + log.Warn("Failed to call beacon roots contract", "err", err) } } diff --git a/consensus/misc/eip4788_test.go b/consensus/misc/eip4788_test.go deleted file mode 100644 index 0b7e50272ec..00000000000 --- a/consensus/misc/eip4788_test.go +++ /dev/null @@ -1,94 +0,0 @@ -package misc - -import ( - "crypto/sha256" - "math/big" - "testing" - - "github.com/holiman/uint256" - "github.com/ledgerwatch/erigon-lib/chain" - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/core/state" - "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/core/types/accounts" - "github.com/ledgerwatch/erigon/core/vm" - "github.com/ledgerwatch/erigon/params" - "github.com/stretchr/testify/assert" -) - -type dummyChainHeaderReader struct { -} - -func (r dummyChainHeaderReader) Config() *chain.Config { - return nil -} - -func (r dummyChainHeaderReader) CurrentHeader() *types.Header { - return nil -} - -func (r dummyChainHeaderReader) GetHeader(libcommon.Hash, uint64) *types.Header { - return nil -} - -func (r dummyChainHeaderReader) GetHeaderByNumber(uint64) *types.Header { - return nil -} - -func (r dummyChainHeaderReader) GetHeaderByHash(libcommon.Hash) *types.Header { - return nil -} - -func (r dummyChainHeaderReader) GetTd(libcommon.Hash, uint64) *big.Int { - return nil -} - -func (r dummyChainHeaderReader) FrozenBlocks() uint64 { - return 0 -} - -type dummyStateReader struct { -} - -func (dsr *dummyStateReader) ReadAccountData(address libcommon.Address) (*accounts.Account, error) { - return nil, nil -} -func (dsr *dummyStateReader) ReadAccountStorage(address libcommon.Address, incarnation uint64, key *libcommon.Hash) ([]byte, error) { - return nil, nil -} -func (dsr *dummyStateReader) ReadAccountCode(address libcommon.Address, incarnation uint64, codeHash libcommon.Hash) ([]byte, error) { - return make([]byte, 0), nil -} -func (dsr *dummyStateReader) ReadAccountCodeSize(address libcommon.Address, incarnation uint64, codeHash libcommon.Hash) (int, error) { - return 0, nil -} -func (dsr *dummyStateReader) ReadAccountIncarnation(address libcommon.Address) (uint64, error) { - return 0, nil -} - -func TestApplyBeaconRoot(t *testing.T) { - var mockReader dummyChainHeaderReader - testHashBytes := sha256.Sum256([]byte("test")) - testRootHash := libcommon.BytesToHash(testHashBytes[:]) - header := types.Header{ - ParentBeaconBlockRoot: &testRootHash, - Time: 1, - } - - var state state.IntraBlockState = *state.New(&dummyStateReader{}) - - ApplyBeaconRootEip4788(mockReader, &header, &state) - pc := vm.PrecompiledContractsCancun[libcommon.BytesToAddress(params.HistoryStorageAddress)] - spc, ok := pc.(vm.StatefulPrecompiledContract) - if !ok { - t.Fatalf("Error instantiating pre-compile") - } - timestampParam := uint256.NewInt(1).Bytes32() - - res, err := spc.RunStateful(timestampParam[:], &state) - if err != nil { - t.Errorf("error %v", err) - } - assert.Equal(t, testRootHash.Bytes(), res, "Beacon root mismatch") - t.Logf("result %v", res) -} diff --git a/consensus/misc/eip4844.go b/consensus/misc/eip4844.go index 7c8d2de92be..9b4eb159fb6 100644 --- a/consensus/misc/eip4844.go +++ b/consensus/misc/eip4844.go @@ -21,14 +21,14 @@ import ( "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/common/fixedgas" "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/params" ) // CalcExcessBlobGas implements calc_excess_blob_gas from EIP-4844 -func CalcExcessBlobGas(parent *types.Header) uint64 { +func CalcExcessBlobGas(config *chain.Config, parent *types.Header) uint64 { var excessBlobGas, blobGasUsed uint64 if parent.ExcessBlobGas != nil { excessBlobGas = *parent.ExcessBlobGas @@ -37,10 +37,10 @@ func CalcExcessBlobGas(parent *types.Header) uint64 { blobGasUsed = *parent.BlobGasUsed } - if excessBlobGas+blobGasUsed < fixedgas.TargetBlobGasPerBlock { + if excessBlobGas+blobGasUsed < config.GetTargetBlobGasPerBlock() { return 0 } - return excessBlobGas + blobGasUsed - fixedgas.TargetBlobGasPerBlock + return excessBlobGas + blobGasUsed - config.GetTargetBlobGasPerBlock() } // FakeExponential approximates factor * e ** (num / denom) using a taylor expansion @@ -99,8 +99,8 @@ func VerifyAbsenceOfCancunHeaderFields(header *types.Header) error { return nil } -func GetBlobGasPrice(excessBlobGas uint64) (*uint256.Int, error) { - return FakeExponential(uint256.NewInt(params.MinBlobGasPrice), uint256.NewInt(params.BlobGasPriceUpdateFraction), excessBlobGas) +func GetBlobGasPrice(config *chain.Config, excessBlobGas uint64) (*uint256.Int, error) { + return FakeExponential(uint256.NewInt(config.GetMinBlobGasPrice()), uint256.NewInt(config.GetBlobGasPriceUpdateFraction()), excessBlobGas) } func GetBlobGasUsed(numBlobs int) uint64 { diff --git a/consensus/misc/gaslimit.go b/consensus/misc/gaslimit.go index 440a1629e26..16fab48373c 100644 --- a/consensus/misc/gaslimit.go +++ b/consensus/misc/gaslimit.go @@ -17,7 +17,6 @@ package misc import ( - "errors" "fmt" "github.com/ledgerwatch/erigon/params" @@ -36,7 +35,7 @@ func VerifyGaslimit(parentGasLimit, headerGasLimit uint64) error { return fmt.Errorf("invalid gas limit: have %d, want %d +-= %d", headerGasLimit, parentGasLimit, limit-1) } if headerGasLimit < params.MinGasLimit { - return errors.New("invalid gas limit below 5000") + return fmt.Errorf("invalid gas limit below %d", params.MinGasLimit) } return nil } diff --git a/core/allocs/amoy.json b/core/allocs/amoy.json new file mode 100644 index 00000000000..df3d74e4526 --- /dev/null +++ b/core/allocs/amoy.json @@ -0,0 +1,17 @@ +{ + "0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c806360c8614d1161010f578063af26aa96116100a2578063d5b844eb11610071578063d5b844eb14610666578063dcf2793a14610684578063e3b7c924146106b6578063f59cf565146106d4576101f0565b8063af26aa96146105c7578063b71d7a69146105e7578063b7ab4db514610617578063c1b3c91914610636576101f0565b806370ba5707116100de57806370ba57071461052b57806398ab2b621461055b5780639d11b80714610579578063ae756451146105a9576101f0565b806360c8614d1461049c57806365b3a1e2146104bc57806366332354146104db578063687a9bd6146104f9576101f0565b80633434735f1161018757806344d6528f1161015657806344d6528f146103ee5780634dbc959f1461041e57806355614fcc1461043c578063582a8d081461046c576101f0565b80633434735f1461035257806335ddfeea1461037057806343ee8213146103a057806344c15cb1146103be576101f0565b806323f2a73f116101c357806323f2a73f146102a45780632bc06564146102d45780632de3a180146102f25780632eddf35214610322576101f0565b8063047a6c5b146101f55780630c35b1cb146102275780631270b5741461025857806323c2a2b414610288575b600080fd5b61020f600480360361020a9190810190612944565b610706565b60405161021e93929190613283565b60405180910390f35b610241600480360361023c9190810190612944565b61075d565b60405161024f9291906130a4565b60405180910390f35b610272600480360361026d919081019061296d565b610939565b60405161027f91906130db565b60405180910390f35b6102a2600480360361029d9190810190612a4c565b610a91565b005b6102be60048036036102b9919081019061296d565b61112a565b6040516102cb91906130db565b60405180910390f35b6102dc611281565b6040516102e99190613231565b60405180910390f35b61030c600480360361030791908101906128a1565b611286565b60405161031991906130f6565b60405180910390f35b61033c60048036036103379190810190612944565b611307565b6040516103499190613231565b60405180910390f35b61035a611437565b6040516103679190613089565b60405180910390f35b61038a600480360361038591908101906128dd565b61144f565b60405161039791906130db565b60405180910390f35b6103a861151a565b6040516103b591906130f6565b60405180910390f35b6103d860048036036103d391908101906129a9565b611531565b6040516103e59190613231565b60405180910390f35b6104086004803603610403919081019061296d565b611619565b6040516104159190613216565b60405180910390f35b610426611781565b6040516104339190613231565b60405180910390f35b61045660048036036104519190810190612826565b611791565b60405161046391906130db565b60405180910390f35b6104866004803603610481919081019061284f565b6117ab565b60405161049391906130f6565b60405180910390f35b6104a4611829565b6040516104b393929190613283565b60405180910390f35b6104c461189d565b6040516104d29291906130a4565b60405180910390f35b6104e361198e565b6040516104f09190613231565b60405180910390f35b610513600480360361050e9190810190612a10565b611993565b6040516105229392919061324c565b60405180910390f35b61054560048036036105409190810190612826565b6119f7565b60405161055291906130db565b60405180910390f35b610563611a11565b60405161057091906130f6565b60405180910390f35b610593600480360361058e9190810190612944565b611a28565b6040516105a09190613231565b60405180910390f35b6105b1611b59565b6040516105be91906130f6565b60405180910390f35b6105cf611b70565b6040516105de93929190613283565b60405180910390f35b61060160048036036105fc9190810190612944565b611bd1565b60405161060e9190613231565b60405180910390f35b61061f611cd1565b60405161062d9291906130a4565b60405180910390f35b610650600480360361064b9190810190612944565b611ce5565b60405161065d9190613231565b60405180910390f35b61066e611d06565b60405161067b91906132ba565b60405180910390f35b61069e60048036036106999190810190612a10565b611d0b565b6040516106ad9392919061324c565b60405180910390f35b6106be611d6f565b6040516106cb9190613231565b60405180910390f35b6106ee60048036036106e99190810190612944565b611d81565b6040516106fd93929190613283565b60405180910390f35b60008060006002600085815260200190815260200160002060000154600260008681526020019081526020016000206001015460026000878152602001908152602001600020600201549250925092509193909250565b60608060ff83116107795761077061189d565b91509150610934565b600061078484611bd1565b9050606060016000838152602001908152602001600020805490506040519080825280602002602001820160405280156107cd5781602001602082028038833980820191505090505b509050606060016000848152602001908152602001600020805490506040519080825280602002602001820160405280156108175781602001602082028038833980820191505090505b50905060008090505b60016000858152602001908152602001600020805490508110156109295760016000858152602001908152602001600020818154811061085c57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683828151811061089a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001600085815260200190815260200160002081815481106108f257fe5b90600052602060002090600302016001015482828151811061091057fe5b6020026020010181815250508080600101915050610820565b508181945094505050505b915091565b6000606060016000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610a0c578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190610970565b50505050905060008090505b8151811015610a84578373ffffffffffffffffffffffffffffffffffffffff16828281518110610a4457fe5b60200260200101516040015173ffffffffffffffffffffffffffffffffffffffff161415610a7757600192505050610a8b565b8080600101915050610a18565b5060009150505b92915050565b73fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a906131f6565b60405180910390fd5b6000610b1d611781565b90506000811415610b3157610b30611dab565b5b610b456001826120cc90919063ffffffff16565b8814610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d90613176565b60405180910390fd5b868611610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf906131d6565b60405180910390fd5b6000601060018989030181610bd957fe5b0614610c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c11906131b6565b60405180910390fd5b8660026000838152602001908152602001600020600101541115610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90613156565b60405180910390fd5b6000600260008a81526020019081526020016000206000015414610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390613196565b60405180910390fd5b604051806060016040528089815260200188815260200187815250600260008a8152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050600388908060018154018082558091505090600182039060005260206000200160009091929091909150555060008060008a815260200190815260200160002081610d669190612620565b506000600160008a815260200190815260200160002081610d879190612620565b506060610ddf610dda87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506120eb565b612119565b905060008090505b8151811015610f51576060610e0e838381518110610e0157fe5b6020026020010151612119565b90506000808c81526020019081526020016000208054809190600101610e349190612620565b506040518060600160405280610e5d83600081518110610e5057fe5b60200260200101516121f6565b8152602001610e7f83600181518110610e7257fe5b60200260200101516121f6565b8152602001610ea183600281518110610e9457fe5b6020026020010151612267565b73ffffffffffffffffffffffffffffffffffffffff168152506000808d81526020019081526020016000208381548110610ed757fe5b9060005260206000209060030201600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050508080600101915050610de7565b506060610fa9610fa486868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506120eb565b612119565b905060008090505b815181101561111d576060610fd8838381518110610fcb57fe5b6020026020010151612119565b9050600160008d81526020019081526020016000208054809190600101610fff9190612620565b5060405180606001604052806110288360008151811061101b57fe5b60200260200101516121f6565b815260200161104a8360018151811061103d57fe5b60200260200101516121f6565b815260200161106c8360028151811061105f57fe5b6020026020010151612267565b73ffffffffffffffffffffffffffffffffffffffff16815250600160008e815260200190815260200160002083815481106110a357fe5b9060005260206000209060030201600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050508080600101915050610fb1565b5050505050505050505050565b60006060600080858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156111fc578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190611160565b50505050905060008090505b8151811015611274578373ffffffffffffffffffffffffffffffffffffffff1682828151811061123457fe5b60200260200101516040015173ffffffffffffffffffffffffffffffffffffffff1614156112675760019250505061127b565b8080600101915050611208565b5060009150505b92915050565b601081565b60006002600160f81b84846040516020016112a393929190612ff6565b6040516020818303038152906040526040516112bf9190613033565b602060405180830381855afa1580156112dc573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506112ff9190810190612878565b905092915050565b60006060600080848152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156113d9578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250508152602001906001019061133d565b505050509050600080905060008090505b825181101561142c5761141d83828151811061140257fe5b602002602001015160200151836120cc90919063ffffffff16565b915080806001019150506113ea565b508092505050919050565b73fffffffffffffffffffffffffffffffffffffffe81565b600080600080859050600060218087518161146657fe5b04029050600081111561147f5761147c876117ab565b91505b6000602190505b818111611509576000600182038801519050818801519550806000602081106114ab57fe5b1a60f81b9450600060f81b857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156114f0576114e98685611286565b93506114fd565b6114fa8487611286565b93505b50602181019050611486565b508782149450505050509392505050565b60405161152690613074565b604051809103902081565b60008060009050600080905060008090505b84518167ffffffffffffffff16101561160c57606061156e868367ffffffffffffffff16604161228a565b90506000611585828961231690919063ffffffff16565b905061158f612652565b6115998a83611619565b90506115a58a8361112a565b80156115dc57508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16115b156115fe578194506115fb8160200151876120cc90919063ffffffff16565b95505b505050604181019050611543565b5081925050509392505050565b611621612652565b6060600080858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156116f1578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190611655565b50505050905060008090505b8151811015611779578373ffffffffffffffffffffffffffffffffffffffff1682828151811061172957fe5b60200260200101516040015173ffffffffffffffffffffffffffffffffffffffff16141561176c5781818151811061175d57fe5b60200260200101519250611779565b80806001019150506116fd565b505092915050565b600061178c43611bd1565b905090565b60006117a461179e611781565b8361112a565b9050919050565b60006002600060f81b836040516020016117c6929190612fca565b6040516020818303038152906040526040516117e29190613033565b602060405180830381855afa1580156117ff573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506118229190810190612878565b9050919050565b60008060008061184a600161183c611781565b6120cc90919063ffffffff16565b905060026000828152602001908152602001600020600001546002600083815260200190815260200160002060010154600260008481526020019081526020016000206002015493509350935050909192565b606080606060016040519080825280602002602001820160405280156118d25781602001602082028038833980820191505090505b509050736ab3d36c46ecfb9b9c0bd51cb1c3da5a2c81cea6816000815181106118f757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050606060016040519080825280602002602001820160405280156119635781602001602082028038833980820191505090505b5090506127108160008151811061197657fe5b60200260200101818152505081819350935050509091565b60ff81565b600160205281600052604060002081815481106119ac57fe5b9060005260206000209060030201600091509150508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000611a0a611a04611781565b83610939565b9050919050565b604051611a1d9061304a565b604051809103902081565b6000606060016000848152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611afb578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190611a5f565b505050509050600080905060008090505b8251811015611b4e57611b3f838281518110611b2457fe5b602002602001015160200151836120cc90919063ffffffff16565b91508080600101915050611b0c565b508092505050919050565b604051611b659061305f565b604051809103902081565b600080600080611b7e611781565b905060026000828152602001908152602001600020600001546002600083815260200190815260200160002060010154600260008481526020019081526020016000206002015493509350935050909192565b60008060038054905090505b6000811115611c9157611bee612689565b6002600060036001850381548110611c0257fe5b906000526020600020015481526020019081526020016000206040518060600160405290816000820154815260200160018201548152602001600282015481525050905083816020015111158015611c5f57506000816040015114155b8015611c6f575080604001518411155b15611c8257806000015192505050611ccc565b50808060019003915050611bdd565b5060006003805490501115611cc757600360016003805490500381548110611cb557fe5b90600052602060002001549050611ccc565b600090505b919050565b606080611cdd4361075d565b915091509091565b60038181548110611cf257fe5b906000526020600020016000915090505481565b600281565b60006020528160005260406000208181548110611d2457fe5b9060005260206000209060030201600091509150508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b600060104381611d7b57fe5b04905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b606080611db661189d565b8092508193505050600080905060405180606001604052808281526020016000815260200160ff815250600260008381526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506003819080600181540180825580915050906001820390600052602060002001600090919290919091505550600080600083815260200190815260200160002081611e5f9190612620565b5060006001600083815260200190815260200160002081611e809190612620565b5060008090505b8351811015611fa2576000808381526020019081526020016000208054809190600101611eb49190612620565b506040518060600160405280828152602001848381518110611ed257fe5b60200260200101518152602001858381518110611eeb57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168152506000808481526020019081526020016000208281548110611f2957fe5b9060005260206000209060030201600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508080600101915050611e87565b5060008090505b83518110156120c657600160008381526020019081526020016000208054809190600101611fd79190612620565b506040518060600160405280828152602001848381518110611ff557fe5b6020026020010151815260200185838151811061200e57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681525060016000848152602001908152602001600020828154811061204d57fe5b9060005260206000209060030201600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508080600101915050611fa9565b50505050565b6000808284019050838110156120e157600080fd5b8091505092915050565b6120f36126aa565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061212482612420565b61212d57600080fd5b60006121388361246e565b905060608160405190808252806020026020018201604052801561217657816020015b6121636126c4565b81526020019060019003908161215b5790505b509050600061218885602001516124df565b8560200151019050600080600090505b848110156121e9576121a983612568565b91506040518060400160405280838152602001848152508482815181106121cc57fe5b602002602001018190525081830192508080600101915050612198565b5082945050505050919050565b600080826000015111801561221057506021826000015111155b61221957600080fd5b600061222883602001516124df565b9050600081846000015103905060008083866020015101905080519150602083101561225b57826020036101000a820491505b81945050505050919050565b6000601582600001511461227a57600080fd5b612283826121f6565b9050919050565b60608183018451101561229c57600080fd5b60608215600081146122b95760405191506020820160405261230a565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156122f757805183526020830192506020810190506122da565b50868552601f19601f8301166040525050505b50809150509392505050565b6000806000806041855114612331576000935050505061241a565b602085015192506040850151915060ff6041860151169050601b8160ff16101561235c57601b810190505b601b8160ff16141580156123745750601c8160ff1614155b15612385576000935050505061241a565b6000600187838686604051600081526020016040526040516123aa9493929190613111565b6020604051602081039080840390855afa1580156123cc573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561241257600080fd5b809450505050505b92915050565b600080826000015114156124375760009050612469565b60008083602001519050805160001a915060c060ff168260ff16101561246257600092505050612469565b6001925050505b919050565b6000808260000151141561248557600090506124da565b6000809050600061249984602001516124df565b84602001510190506000846000015185602001510190505b808210156124d3576124c282612568565b8201915082806001019350506124b1565b8293505050505b919050565b600080825160001a9050608060ff168110156124ff576000915050612563565b60b860ff16811080612524575060c060ff168110158015612523575060f860ff1681105b5b15612533576001915050612563565b60c060ff168110156125535760018060b80360ff16820301915050612563565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff168110156125895760019150612616565b60b860ff168110156125a6576001608060ff168203019150612615565b60c060ff168110156125d65760b78103600185019450806020036101000a85510460018201810193505050612614565b60f860ff168110156125f357600160c060ff168203019150612613565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b81548183558181111561264d5760030281600302836000526020600020918201910161264c91906126de565b5b505050565b60405180606001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60405180606001604052806000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b604051806040016040528060008152602001600081525090565b61273191905b8082111561272d5760008082016000905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506003016126e4565b5090565b90565b600081359050612743816134b3565b92915050565b600081359050612758816134ca565b92915050565b60008151905061276d816134ca565b92915050565b60008083601f84011261278557600080fd5b8235905067ffffffffffffffff81111561279e57600080fd5b6020830191508360018202830111156127b657600080fd5b9250929050565b600082601f8301126127ce57600080fd5b81356127e16127dc82613302565b6132d5565b915080825260208301602083018583830111156127fd57600080fd5b61280883828461345d565b50505092915050565b600081359050612820816134e1565b92915050565b60006020828403121561283857600080fd5b600061284684828501612734565b91505092915050565b60006020828403121561286157600080fd5b600061286f84828501612749565b91505092915050565b60006020828403121561288a57600080fd5b60006128988482850161275e565b91505092915050565b600080604083850312156128b457600080fd5b60006128c285828601612749565b92505060206128d385828601612749565b9150509250929050565b6000806000606084860312156128f257600080fd5b600061290086828701612749565b935050602061291186828701612749565b925050604084013567ffffffffffffffff81111561292e57600080fd5b61293a868287016127bd565b9150509250925092565b60006020828403121561295657600080fd5b600061296484828501612811565b91505092915050565b6000806040838503121561298057600080fd5b600061298e85828601612811565b925050602061299f85828601612734565b9150509250929050565b6000806000606084860312156129be57600080fd5b60006129cc86828701612811565b93505060206129dd86828701612749565b925050604084013567ffffffffffffffff8111156129fa57600080fd5b612a06868287016127bd565b9150509250925092565b60008060408385031215612a2357600080fd5b6000612a3185828601612811565b9250506020612a4285828601612811565b9150509250929050565b600080600080600080600060a0888a031215612a6757600080fd5b6000612a758a828b01612811565b9750506020612a868a828b01612811565b9650506040612a978a828b01612811565b955050606088013567ffffffffffffffff811115612ab457600080fd5b612ac08a828b01612773565b9450945050608088013567ffffffffffffffff811115612adf57600080fd5b612aeb8a828b01612773565b925092505092959891949750929550565b6000612b088383612b2c565b60208301905092915050565b6000612b208383612f9d565b60208301905092915050565b612b35816133d2565b82525050565b612b44816133d2565b82525050565b6000612b558261334e565b612b5f8185613389565b9350612b6a8361332e565b8060005b83811015612b9b578151612b828882612afc565b9750612b8d8361336f565b925050600181019050612b6e565b5085935050505092915050565b6000612bb382613359565b612bbd818561339a565b9350612bc88361333e565b8060005b83811015612bf9578151612be08882612b14565b9750612beb8361337c565b925050600181019050612bcc565b5085935050505092915050565b612c0f816133e4565b82525050565b612c26612c21826133f0565b61349f565b82525050565b612c358161341c565b82525050565b612c4c612c478261341c565b6134a9565b82525050565b6000612c5d82613364565b612c6781856133ab565b9350612c7781856020860161346c565b80840191505092915050565b6000612c906004836133c7565b91507f766f7465000000000000000000000000000000000000000000000000000000006000830152600482019050919050565b6000612cd0602d836133b6565b91507f537461727420626c6f636b206d7573742062652067726561746572207468616e60008301527f2063757272656e74207370616e000000000000000000000000000000000000006020830152604082019050919050565b6000612d36600f836133b6565b91507f496e76616c6964207370616e20696400000000000000000000000000000000006000830152602082019050919050565b6000612d766013836133b6565b91507f5370616e20616c726561647920657869737473000000000000000000000000006000830152602082019050919050565b6000612db66045836133b6565b91507f446966666572656e6365206265747765656e20737461727420616e6420656e6460008301527f20626c6f636b206d75737420626520696e206d756c7469706c6573206f66207360208301527f7072696e740000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000612e426005836133c7565b91507f38303030320000000000000000000000000000000000000000000000000000006000830152600582019050919050565b6000612e82600e836133c7565b91507f6865696d64616c6c2d38303030320000000000000000000000000000000000006000830152600e82019050919050565b6000612ec2602a836133b6565b91507f456e6420626c6f636b206d7573742062652067726561746572207468616e207360008301527f7461727420626c6f636b000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f286012836133b6565b91507f4e6f742053797374656d204164646573732100000000000000000000000000006000830152602082019050919050565b606082016000820151612f716000850182612f9d565b506020820151612f846020850182612f9d565b506040820151612f976040850182612b2c565b50505050565b612fa681613446565b82525050565b612fb581613446565b82525050565b612fc481613450565b82525050565b6000612fd68285612c15565b600182019150612fe68284612c3b565b6020820191508190509392505050565b60006130028286612c15565b6001820191506130128285612c3b565b6020820191506130228284612c3b565b602082019150819050949350505050565b600061303f8284612c52565b915081905092915050565b600061305582612c83565b9150819050919050565b600061306a82612e35565b9150819050919050565b600061307f82612e75565b9150819050919050565b600060208201905061309e6000830184612b3b565b92915050565b600060408201905081810360008301526130be8185612b4a565b905081810360208301526130d28184612ba8565b90509392505050565b60006020820190506130f06000830184612c06565b92915050565b600060208201905061310b6000830184612c2c565b92915050565b60006080820190506131266000830187612c2c565b6131336020830186612fbb565b6131406040830185612c2c565b61314d6060830184612c2c565b95945050505050565b6000602082019050818103600083015261316f81612cc3565b9050919050565b6000602082019050818103600083015261318f81612d29565b9050919050565b600060208201905081810360008301526131af81612d69565b9050919050565b600060208201905081810360008301526131cf81612da9565b9050919050565b600060208201905081810360008301526131ef81612eb5565b9050919050565b6000602082019050818103600083015261320f81612f1b565b9050919050565b600060608201905061322b6000830184612f5b565b92915050565b60006020820190506132466000830184612fac565b92915050565b60006060820190506132616000830186612fac565b61326e6020830185612fac565b61327b6040830184612b3b565b949350505050565b60006060820190506132986000830186612fac565b6132a56020830185612fac565b6132b26040830184612fac565b949350505050565b60006020820190506132cf6000830184612fbb565b92915050565b6000604051905081810181811067ffffffffffffffff821117156132f857600080fd5b8060405250919050565b600067ffffffffffffffff82111561331957600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006133dd82613426565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561348a57808201518184015260208101905061346f565b83811115613499576000848401525b50505050565b6000819050919050565b6000819050919050565b6134bc816133d2565b81146134c757600080fd5b50565b6134d38161341c565b81146134de57600080fd5b50565b6134ea81613446565b81146134f557600080fd5b5056fea365627a7a7231582054ae86d53ba5464a9d9098ba148754fdba81f088cac08ff2e7c7bf6a46aae8a96c6578706572696d656e74616cf564736f6c63430005110040" + }, + "0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806319494a17146100465780633434735f146100e15780635407ca671461012b575b600080fd5b6100c76004803603604081101561005c57600080fd5b81019080803590602001909291908035906020019064010000000081111561008357600080fd5b82018360208201111561009557600080fd5b803590602001918460018302840111640100000000831117156100b757600080fd5b9091929391929390505050610149565b604051808215151515815260200191505060405180910390f35b6100e96104b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101336104ce565b6040518082815260200191505060405180910390f35b600073fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f742053797374656d2041646465737321000000000000000000000000000081525060200191505060405180910390fd5b606061025761025285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506104d4565b610502565b905060006102788260008151811061026b57fe5b60200260200101516105df565b905080600160005401146102f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f537461746549647320617265206e6f742073657175656e7469616c000000000081525060200191505060405180910390fd5b600080815480929190600101919050555060006103248360018151811061031757fe5b6020026020010151610650565b905060606103458460028151811061033857fe5b6020026020010151610673565b9050610350826106ff565b156104ab576000624c4b409050606084836040516024018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103aa57808201518184015260208101905061038f565b50505050905090810190601f1680156103d75780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f26c53bea000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008082516020840160008887f19650847f5a22725590b0a51c923940223f7458512164b1113359a735e86e7f27f44791ee88604051808215151515815260200191505060405180910390a250505b505050509392505050565b73fffffffffffffffffffffffffffffffffffffffe81565b60005481565b6104dc61097f565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061050d82610718565b61051657600080fd5b600061052183610766565b905060608160405190808252806020026020018201604052801561055f57816020015b61054c610999565b8152602001906001900390816105445790505b509050600061057185602001516107d7565b8560200151019050600080600090505b848110156105d25761059283610860565b91506040518060400160405280838152602001848152508482815181106105b557fe5b602002602001018190525081830192508080600101915050610581565b5082945050505050919050565b60008082600001511180156105f957506021826000015111155b61060257600080fd5b600061061183602001516107d7565b9050600081846000015103905060008083866020015101905080519150602083101561064457826020036101000a820491505b81945050505050919050565b6000601582600001511461066357600080fd5b61066c826105df565b9050919050565b6060600082600001511161068657600080fd5b600061069583602001516107d7565b905060008184600001510390506060816040519080825280601f01601f1916602001820160405280156106d75781602001600182028038833980820191505090505b50905060008160200190506106f3848760200151018285610918565b81945050505050919050565b600080823b905060008163ffffffff1611915050919050565b6000808260000151141561072f5760009050610761565b60008083602001519050805160001a915060c060ff168260ff16101561075a57600092505050610761565b6001925050505b919050565b6000808260000151141561077d57600090506107d2565b6000809050600061079184602001516107d7565b84602001510190506000846000015185602001510190505b808210156107cb576107ba82610860565b8201915082806001019350506107a9565b8293505050505b919050565b600080825160001a9050608060ff168110156107f757600091505061085b565b60b860ff1681108061081c575060c060ff16811015801561081b575060f860ff1681105b5b1561082b57600191505061085b565b60c060ff1681101561084b5760018060b80360ff1682030191505061085b565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff16811015610881576001915061090e565b60b860ff1681101561089e576001608060ff16820301915061090d565b60c060ff168110156108ce5760b78103600185019450806020036101000a8551046001820181019350505061090c565b60f860ff168110156108eb57600160c060ff16820301915061090b565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b60008114156109265761097a565b5b602060ff1681106109565782518252602060ff1683019250602060ff1682019150602060ff1681039050610927565b6000600182602060ff16036101000a03905080198451168184511681811785525050505b505050565b604051806040016040528060008152602001600081525090565b60405180604001604052806000815260200160008152509056fea265627a7a72315820bf998627ab3f0decc9d4ae85871979b6f1fec222bbafeb2e0045daf58b93f4b864736f6c63430005110032" + }, + "0000000000000000000000000000000000001010": { + "balance": "0x204fce28085b549b31600000", + "code": "0x6080604052600436106101b75760003560e01c80638da5cb5b116100ec578063b789543c1161008a578063e614d0d611610064578063e614d0d614610ac1578063ed9ef52414610aec578063f2fde38b14610b3d578063fc0c546a14610b8e576101b7565b8063b789543c146109e8578063cc79f97b14610a6b578063e306f77914610a96576101b7565b806395d89b41116100c657806395d89b4114610874578063a9059cbb14610904578063abceeba21461096a578063acd06cb314610995576101b7565b80638da5cb5b1461075e5780638f32d59b146107b55780639025e64c146107e4576101b7565b806347e7ef241161015957806370a082311161013357806370a08231146105a5578063715018a61461060a578063771282f61461062157806377d32e941461064c576101b7565b806347e7ef2414610482578063485cc955146104dd57806360f96a8f1461054e576101b7565b806319d27d9c1161019557806319d27d9c146102c85780632e1a7d4d146103cc578063313ce567146103fa57806342fc47fb1461042b576101b7565b806306fdde03146101bc5780631499c5921461024c57806318160ddd1461029d575b600080fd5b3480156101c857600080fd5b506101d1610be5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025857600080fd5b5061029b6004803603602081101561026f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c22565b005b3480156102a957600080fd5b506102b2610c90565b6040518082815260200191505060405180910390f35b3480156102d457600080fd5b5061038a600480360360a08110156102eb57600080fd5b810190808035906020019064010000000081111561030857600080fd5b82018360208201111561031a57600080fd5b8035906020019184600183028401116401000000008311171561033c57600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ca6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103f8600480360360208110156103e257600080fd5b8101908080359060200190929190505050610e7b565b005b34801561040657600080fd5b5061040f610fcd565b604051808260ff1660ff16815260200191505060405180910390f35b34801561043757600080fd5b50610440610fd6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561048e57600080fd5b506104db600480360360408110156104a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ffc565b005b3480156104e957600080fd5b5061054c6004803603604081101561050057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111b8565b005b34801561055a57600080fd5b50610563611287565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105b157600080fd5b506105f4600480360360208110156105c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ad565b6040518082815260200191505060405180910390f35b34801561061657600080fd5b5061061f6112ce565b005b34801561062d57600080fd5b5061063661139e565b6040518082815260200191505060405180910390f35b34801561065857600080fd5b5061071c6004803603604081101561066f57600080fd5b81019080803590602001909291908035906020019064010000000081111561069657600080fd5b8201836020820111156106a857600080fd5b803590602001918460018302840111640100000000831117156106ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506113a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561076a57600080fd5b50610773611529565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c157600080fd5b506107ca611552565b604051808215151515815260200191505060405180910390f35b3480156107f057600080fd5b506107f96115a9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083957808201518184015260208101905061081e565b50505050905090810190601f1680156108665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561088057600080fd5b506108896115e2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108c95780820151818401526020810190506108ae565b50505050905090810190601f1680156108f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6109506004803603604081101561091a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061161f565b604051808215151515815260200191505060405180910390f35b34801561097657600080fd5b5061097f611645565b6040518082815260200191505060405180910390f35b3480156109a157600080fd5b506109ce600480360360208110156109b857600080fd5b81019080803590602001909291905050506116d2565b604051808215151515815260200191505060405180910390f35b3480156109f457600080fd5b50610a5560048036036080811015610a0b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803590602001909291905050506116f2565b6040518082815260200191505060405180910390f35b348015610a7757600080fd5b50610a80611712565b6040518082815260200191505060405180910390f35b348015610aa257600080fd5b50610aab611719565b6040518082815260200191505060405180910390f35b348015610acd57600080fd5b50610ad661171f565b6040518082815260200191505060405180910390f35b348015610af857600080fd5b50610b3b60048036036020811015610b0f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ac565b005b348015610b4957600080fd5b50610b8c60048036036020811015610b6057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611903565b005b348015610b9a57600080fd5b50610ba3611920565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b6000808511610cb457600080fd5b6000831480610cc35750824311155b610d35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5369676e6174757265206973206578706972656400000000000000000000000081525060200191505060405180910390fd5b6000610d4c610d4633888888611946565b30611a1c565b9050600015156005600083815260200190815260200160002060009054906101000a900460ff16151514610de8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f536967206465616374697661746564000000000000000000000000000000000081525060200191505060405180910390fd5b60016005600083815260200190815260200160002060006101000a81548160ff021916908315150217905550610e628189898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506113a4565b9150610e6f828488611bab565b50509695505050505050565b60003390506000610e8b826112ad565b9050610ea283600654611f6890919063ffffffff16565b600681905550600083118015610eb757508234145b610f29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610fa5876112ad565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611004611552565b61100d57600080fd5b60008111801561104a5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61109f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061226c6023913960400191505060405180910390fd5b60006110aa836112ad565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156110f7573d6000803e3d6000fd5b5061110d83600654611f8890919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f6858561118f896112ad565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff161561121e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806122496023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061128382611fa7565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b6112d6611552565b6112df57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146113bf5760009350505050611523565b602085015192506040850151915060ff6041860151169050601b8160ff1610156113ea57601b810190505b601b8160ff16141580156114025750601c8160ff1614155b156114135760009350505050611523565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611470573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561151f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f013882000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611631576000905061163f565b61163c338484611bab565b90505b92915050565b6040518060800160405280605b8152602001612313605b91396040516020018082805190602001908083835b602083106116945780518252602082019150602081019050602083039250611671565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061170861170386868686611946565b61209f565b9050949350505050565b6201388281565b60015481565b60405180608001604052806052815260200161228f605291396040516020018082805190602001908083835b6020831061176e578051825260208201915060208101905060208303925061174b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6117b4611552565b6117bd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611843576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806122e16032913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1f9f3556dd336016cdf20adaead7d5c73665dba664b60e8c17e9a4eb91ce1d3960405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61190b611552565b61191457600080fd5b61191d81611fa7565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806040518060800160405280605b8152602001612313605b91396040516020018082805190602001908083835b602083106119985780518252602082019150602081019050602083039250611975565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060405180608001604052806052815260200161228f605291396040516020018082805190602001908083835b60208310611a6e5780518252602082019150602081019050602083039250611a4b565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001206040518060400160405280600d81526020017f4d61746963204e6574776f726b00000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001206201388286604051602001808681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200195505050505050604051602081830303815290604052805190602001209050611ba284826120b4565b91505092915050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611c2b57600080fd5b505afa158015611c3f573d6000803e3d6000fd5b505050506040513d6020811015611c5557600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611ce757600080fd5b505afa158015611cfb573d6000803e3d6000fd5b505050506040513d6020811015611d1157600080fd5b81019080805190602001909291905050509050611d2f8686866120f5565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611e3757600080fd5b505afa158015611e4b573d6000803e3d6000fd5b505050506040513d6020811015611e6157600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611eef57600080fd5b505afa158015611f03573d6000803e3d6000fd5b505050506040513d6020811015611f1957600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b600082821115611f7757600080fd5b600082840390508091505092915050565b600080828401905083811015611f9d57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fe157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006120ad826001546120b4565b9050919050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528260028201528360228201526042812091505092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612197576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121dd573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294368696c6420746f6b656e3a206e6577206368696c64206164647265737320697320746865207a65726f2061646472657373546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820eb7babc3f24d0f6948fed0801b988371ba0eb26b26d496fea92b7b57a72148e164736f6c63430005110032" + }, + "6aB3d36C46ecFb9B9c0bD51CB1c3da5A2C81cea6": { + "balance": "0x3635c9adc5dea00000" + } +} \ No newline at end of file diff --git a/core/allocs/holesky.json b/core/allocs/holesky.json new file mode 100644 index 00000000000..09783fe6c7e --- /dev/null +++ b/core/allocs/holesky.json @@ -0,0 +1,987 @@ +{ + "0x0000000000000000000000000000000000000000": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000001": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000002": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000003": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000004": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000005": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000006": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000007": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000008": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000009": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000000a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000000b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000000c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000000d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000000e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000000f": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000010": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000011": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000012": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000013": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000014": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000015": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000016": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000017": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000018": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000019": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000001a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000001b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000001c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000001d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000001e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000001f": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000020": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000021": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000022": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000023": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000024": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000025": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000026": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000027": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000028": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000029": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000002a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000002b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000002c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000002d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000002e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000002f": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000030": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000031": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000032": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000033": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000034": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000035": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000036": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000037": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000038": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000039": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000003a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000003b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000003c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000003d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000003e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000003f": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000040": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000041": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000042": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000043": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000044": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000045": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000046": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000047": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000048": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000049": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000004a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000004b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000004c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000004d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000004e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000004f": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000050": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000051": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000052": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000053": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000054": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000055": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000056": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000057": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000058": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000059": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000005a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000005b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000005c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000005d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000005e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000005f": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000060": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000061": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000062": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000063": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000064": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000065": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000066": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000067": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000068": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000069": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000006a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000006b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000006c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000006d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000006e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000006f": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000070": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000071": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000072": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000073": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000074": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000075": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000076": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000077": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000078": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000079": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000007a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000007b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000007c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000007d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000007e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000007f": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000080": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000081": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000082": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000083": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000084": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000085": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000086": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000087": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000088": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000089": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000008a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000008b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000008c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000008d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000008e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000008f": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000090": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000091": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000092": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000093": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000094": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000095": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000096": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000097": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000098": { + "balance": "0x1" + }, + "0x0000000000000000000000000000000000000099": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000009a": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000009b": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000009c": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000009d": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000009e": { + "balance": "0x1" + }, + "0x000000000000000000000000000000000000009f": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a0": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a1": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a2": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a3": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a4": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a5": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a6": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a7": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a8": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000a9": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000aa": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ab": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ac": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ad": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ae": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000af": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b0": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b1": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b2": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b3": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b4": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b5": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b6": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b7": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b8": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000b9": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ba": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000bb": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000bc": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000bd": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000be": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000bf": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c0": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c1": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c2": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c3": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c4": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c5": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c6": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c7": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c8": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000c9": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ca": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000cb": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000cc": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000cd": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ce": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000cf": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d0": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d1": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d2": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d3": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d4": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d5": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d6": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d7": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d8": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000d9": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000da": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000db": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000dc": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000dd": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000de": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000df": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e0": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e1": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e2": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e3": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e4": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e5": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e6": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e7": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e8": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000e9": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ea": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000eb": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ec": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ed": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ee": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ef": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f0": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f1": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f2": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f3": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f4": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f5": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f6": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f7": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f8": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000f9": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000fa": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000fb": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000fc": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000fd": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000fe": { + "balance": "0x1" + }, + "0x00000000000000000000000000000000000000ff": { + "balance": "0x1" + }, + "0x4242424242424242424242424242424242424242": { + "balance": "0x0", + "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a26469706673582212201dd26f37a621703009abf16e77e69c93dc50c79db7f6cc37543e3e0e3decdc9764736f6c634300060b0033", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000022": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", + "0x0000000000000000000000000000000000000000000000000000000000000023": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", + "0x0000000000000000000000000000000000000000000000000000000000000024": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", + "0x0000000000000000000000000000000000000000000000000000000000000025": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", + "0x0000000000000000000000000000000000000000000000000000000000000026": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", + "0x0000000000000000000000000000000000000000000000000000000000000027": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", + "0x0000000000000000000000000000000000000000000000000000000000000028": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", + "0x0000000000000000000000000000000000000000000000000000000000000029": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", + "0x000000000000000000000000000000000000000000000000000000000000002a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", + "0x000000000000000000000000000000000000000000000000000000000000002b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", + "0x000000000000000000000000000000000000000000000000000000000000002c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", + "0x000000000000000000000000000000000000000000000000000000000000002d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", + "0x000000000000000000000000000000000000000000000000000000000000002e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", + "0x000000000000000000000000000000000000000000000000000000000000002f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", + "0x0000000000000000000000000000000000000000000000000000000000000030": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", + "0x0000000000000000000000000000000000000000000000000000000000000031": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", + "0x0000000000000000000000000000000000000000000000000000000000000032": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", + "0x0000000000000000000000000000000000000000000000000000000000000033": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", + "0x0000000000000000000000000000000000000000000000000000000000000034": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", + "0x0000000000000000000000000000000000000000000000000000000000000035": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", + "0x0000000000000000000000000000000000000000000000000000000000000036": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", + "0x0000000000000000000000000000000000000000000000000000000000000037": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", + "0x0000000000000000000000000000000000000000000000000000000000000038": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", + "0x0000000000000000000000000000000000000000000000000000000000000039": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", + "0x000000000000000000000000000000000000000000000000000000000000003a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", + "0x000000000000000000000000000000000000000000000000000000000000003b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", + "0x000000000000000000000000000000000000000000000000000000000000003c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", + "0x000000000000000000000000000000000000000000000000000000000000003d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", + "0x000000000000000000000000000000000000000000000000000000000000003e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", + "0x000000000000000000000000000000000000000000000000000000000000003f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", + "0x0000000000000000000000000000000000000000000000000000000000000040": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" + } + }, + "0x0000006916a87b82333f4245046623b23794C65C": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x0be949928Ff199c9EBA9E110db210AA5C94EFAd0": { + "balance": "0x7c13bc4b2c133c56000000" + }, + "0x0C100000006d7b5e23a1eAEE637f28cA32Cd5b31": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x0C35317B7a96C454E2CB3d1A255D775Ab112cCc8": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x0d731cfabC5574329823F26d488416451d2ea376": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x0e79065B5F11b5BD1e62B935A600976ffF3754B9": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x105083929bF9bb22C26cB1777Ec92661170D4285": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x10F5d45854e038071485AC9e402308cF80D2d2fE": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x1268AD189526AC0b386faF06eFfC46779c340eE6": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x12Cba59f5A74DB81a12ff63C349Bd82CBF6007C2": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x1446D7f6dF00380F246d8211dE7f0FaBC4Fd248C": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x164e38a375247A784A81d420201AA8fe4E513921": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x1B7aA44088a0eA95bdc65fef6E5071E946Bf7d8f": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x222222222222cF64a76AE3d36859958c864fDA2c": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x2f14582947E292a2eCd20C430B46f2d27CFE213c": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x2f2c75B5Dd5D246194812b00eEb3B09c2c66e2eE": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x341c40b94bf2afbfa42573cb78f16ee15a056238": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x34f845773D4364999f2fbC7AA26ABDeE902cBb46": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x3C75594181e03E8ECD8468A0037F058a9dAfad79": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x462396E69dBfa455F405f4DD82F3014Af8003B72": { + "balance": "0xa56fa5b99019a5c8000000" + }, + "0x49Df3CCa2670eB0D591146B16359fe336e476F29": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x4D0b04b405c6b62C7cFC3aE54759747e2C0b4662": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x4D496CcC28058B1D74B7a19541663E21154f9c84": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x509a7667aC8D0320e36172c192506a6188aA84f6": { + "balance": "0x7c13bc4b2c133c56000000" + }, + "0x5180db0237291A6449DdA9ed33aD90a38787621c": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x52730f347dEf6BA09adfF62EaC60D5fEe8205BC4": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x5EAC0fBd3dfef8aE3efa3c5dc1aa193bc6033dFd": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x6a7aA9b882d50Bb7bc5Da1a244719C99f12F06a3": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x6Cc9397c3B38739daCbfaA68EaD5F5D77Ba5F455": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x762cA62ca2549ad806763B3Aa1eA317c429bDBDa": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x778F5F13C4Be78A3a4d7141BCB26999702f407CF": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x875D25Ee4bC604C71BaF6236a8488F22399BED4b": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x8dF7878d3571BEF5e5a744F96287C8D20386d75A": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0x9E415A096fF77650dc925dEA546585B4adB322B6": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xA0766B65A4f7B1da79a1AF79aC695456eFa28644": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xA29B144A449E414A472c60C7AAf1aaFfE329021D": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xa55395566b0b54395B3246f96A0bDc4b8a483df9": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xAC9ba72fb61aA7c31A95df0A8b6ebA6f41EF875e": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xB0498C15879db2eE5471d4926c5fAA25C9a09683": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xB19Fb4c1f280327e60Ed37b1Dc6EE77533539314": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0xC21cB9C99C316d1863142F7dD86dd5496D81A8D6": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xc473d412dc52e349862209924c8981b2ee420768": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xC48E23C5F6e1eA0BaEf6530734edC3968f79Af2e": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0xc6e2459991BfE27cca6d86722F35da23A1E4Cb97": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0xD3994e4d3202dD23c8497d7F75bF1647d1DA1bb1": { + "balance": "0x19D971E4FE8401E74000000" + }, + "0xDCA6e9B48Ea86AeBFDf9929949124042296b6e34": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xe0a2Bd4258D2768837BAa26A28fE71Dc079f84c7": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0xEA28d002042fd9898D0Db016be9758eeAFE35C1E": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xEfA7454f1116807975A4750B46695E967850de5D": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xFBFd6Fa9F73Ac6A058E01259034C28001BEf8247": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0xe0991E844041bE6F11B99da5b114b6bCf84EBd57": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x15E719b6AcAf1E4411Bf0f9576CB1D0dB161DdFc": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x346D827a75F98F0A7a324Ff80b7C3F90252E8baC": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x73b2e0E54510239E22cC936F0b4a6dE1acf0AbdE": { + "balance": "0x52b7d2dcc80cd2e4000000" + }, + "0xBb977B2EE8a111D788B3477D242078d0B837E72b": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x834Dbf5A03e29c25bc55459cCe9c021EeBE676Ad": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xD1F77E4C1C45186e8653C489F90e008a73597296": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xb04aeF2a3d2D86B01006cCD4339A2e943d9c6480": { + "balance": "0xd3c21bcecceda1000000" + }, + "0xC9CA2bA9A27De1Db589d8c33Ab8EDFa2111b31fb": { + "balance": "0xd3c21bcecceda1000000" + }, + "0x4BC656B34De23896fa6069C9862F355b740401aF": { + "balance": "0x084595161401484a000000" + } +} \ No newline at end of file diff --git a/core/asm/asm_test.go b/core/asm/asm_test.go index 3a20d2db747..e5b2ae9c0e9 100644 --- a/core/asm/asm_test.go +++ b/core/asm/asm_test.go @@ -23,6 +23,7 @@ import ( // Tests disassembling the instructions for valid evm code func TestInstructionIteratorValid(t *testing.T) { + t.Parallel() cnt := 0 script, _ := hex.DecodeString("61000000") @@ -41,6 +42,7 @@ func TestInstructionIteratorValid(t *testing.T) { // Tests disassembling the instructions for invalid evm code func TestInstructionIteratorInvalid(t *testing.T) { + t.Parallel() cnt := 0 script, _ := hex.DecodeString("6100") @@ -56,6 +58,7 @@ func TestInstructionIteratorInvalid(t *testing.T) { // Tests disassembling the instructions for empty evm code func TestInstructionIteratorEmpty(t *testing.T) { + t.Parallel() cnt := 0 script, _ := hex.DecodeString("") diff --git a/core/asm/compiler_test.go b/core/asm/compiler_test.go index ce9df436bd4..9e47f559c5c 100644 --- a/core/asm/compiler_test.go +++ b/core/asm/compiler_test.go @@ -21,6 +21,7 @@ import ( ) func TestCompiler(t *testing.T) { + t.Parallel() tests := []struct { input, output string }{ diff --git a/core/asm/lex_test.go b/core/asm/lex_test.go index c3a97aa5087..453c2ca64ee 100644 --- a/core/asm/lex_test.go +++ b/core/asm/lex_test.go @@ -32,6 +32,7 @@ func lexAll(src string) []token { } func TestLexer(t *testing.T) { + t.Parallel() tests := []struct { input string tokens []token diff --git a/core/block_validator_test.go b/core/block_validator_test.go index 0548eda0c89..34ab7a2c21d 100644 --- a/core/block_validator_test.go +++ b/core/block_validator_test.go @@ -31,6 +31,7 @@ import ( // Tests that simple header verification works, for both good and bad blocks. func TestHeaderVerification(t *testing.T) { + t.Parallel() // Create a simple chain to verify var ( gspec = &types.Genesis{Config: params.TestChainConfig} @@ -62,7 +63,7 @@ func TestHeaderVerification(t *testing.T) { }); err != nil { panic(err) } - if err = m.InsertChain(chain.Slice(i, i+1), nil); err != nil { + if err = m.InsertChain(chain.Slice(i, i+1)); err != nil { t.Fatalf("test %d: error inserting the block: %v", i, err) } @@ -72,6 +73,7 @@ func TestHeaderVerification(t *testing.T) { // Tests that simple header with seal verification works, for both good and bad blocks. func TestHeaderWithSealVerification(t *testing.T) { + t.Parallel() // Create a simple chain to verify var ( gspec = &types.Genesis{Config: params.TestChainAuraConfig} @@ -104,7 +106,7 @@ func TestHeaderWithSealVerification(t *testing.T) { }); err != nil { panic(err) } - if err = m.InsertChain(chain.Slice(i, i+1), nil); err != nil { + if err = m.InsertChain(chain.Slice(i, i+1)); err != nil { t.Fatalf("test %d: error inserting the block: %v", i, err) } diff --git a/core/blockchain.go b/core/blockchain.go index a158ea6cc03..d750e6bbc28 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -21,34 +21,35 @@ import ( "fmt" "time" - metrics2 "github.com/VictoriaMetrics/metrics" + "github.com/ledgerwatch/log/v3" "golang.org/x/crypto/sha3" "golang.org/x/exp/slices" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/fixedgas" - + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/core/vm/evmtypes" "github.com/ledgerwatch/erigon/rlp" - "github.com/ledgerwatch/log/v3" ) var ( - BlockExecutionTimer = metrics2.GetOrCreateSummary("chain_execution_seconds") + blockExecutionTimer = metrics.GetOrCreateSummary("chain_execution_seconds") ) type SyncMode string const ( TriesInMemory = 128 + + // See gas_limit in https://github.com/gnosischain/specs/blob/master/execution/withdrawals.md + SysCallGasLimit = uint64(30_000_000) ) type RejectedTx struct { @@ -78,11 +79,11 @@ func ExecuteBlockEphemerally( blockHashFunc func(n uint64) libcommon.Hash, engine consensus.Engine, block *types.Block, stateReader state.StateReader, stateWriter state.WriterWithChangeSets, - chainReader consensus.ChainHeaderReader, getTracer func(txIndex int, txHash libcommon.Hash) (vm.EVMLogger, error), + chainReader consensus.ChainReader, getTracer func(txIndex int, txHash libcommon.Hash) (vm.EVMLogger, error), logger log.Logger, ) (*EphemeralExecResult, error) { - defer BlockExecutionTimer.UpdateDuration(time.Now()) + defer blockExecutionTimer.ObserveDuration(time.Now()) block.Uncles() ibs := state.New(stateReader) header := block.Header() @@ -90,7 +91,7 @@ func ExecuteBlockEphemerally( usedGas := new(uint64) usedBlobGas := new(uint64) gp := new(GasPool) - gp.AddGas(block.GasLimit()).AddBlobGas(fixedgas.MaxBlobGasPerBlock) + gp.AddGas(block.GasLimit()).AddBlobGas(chainConfig.GetMaxBlobGasPerBlock()) var ( rejectedTxs []*RejectedTx @@ -98,15 +99,10 @@ func ExecuteBlockEphemerally( receipts types.Receipts ) - if !vmConfig.ReadOnly { - if err := InitializeBlockExecution(engine, chainReader, block.Header(), block.Transactions(), block.Uncles(), chainConfig, ibs); err != nil { - return nil, err - } + if err := InitializeBlockExecution(engine, chainReader, block.Header(), chainConfig, ibs, logger); err != nil { + return nil, err } - if chainConfig.DAOForkBlock != nil && chainConfig.DAOForkBlock.Cmp(block.Number()) == 0 { - misc.ApplyDAOHardFork(ibs) - } noop := state.NewNoopWriter() //fmt.Printf("====txs processing start: %d====\n", block.NumberU64()) for i, tx := range block.Transactions() { @@ -187,7 +183,7 @@ func ExecuteBlockEphemerally( stateSyncReceipt := &types.Receipt{} if chainConfig.Consensus == chain.BorConsensus && len(blockLogs) > 0 { - slices.SortStableFunc(blockLogs, func(i, j *types.Log) bool { return i.Index < j.Index }) + slices.SortStableFunc(blockLogs, func(i, j *types.Log) int { return cmp.Compare(i.Index, j.Index) }) if len(blockLogs) > len(logs) { stateSyncReceipt.Logs = blockLogs[len(logs):] // get state-sync logs from `state.Logs()` @@ -216,7 +212,8 @@ func SysCallContract(contract libcommon.Address, data []byte, chainConfig *chain state.SystemAddress, &contract, 0, u256.Num0, - math.MaxUint64, u256.Num0, + SysCallGasLimit, + u256.Num0, nil, nil, data, nil, false, true, // isFree @@ -257,7 +254,8 @@ func SysCreate(contract libcommon.Address, data []byte, chainConfig chain.Config contract, nil, // to 0, u256.Num0, - math.MaxUint64, u256.Num0, + SysCallGasLimit, + u256.Num0, nil, nil, data, nil, false, true, // isFree @@ -285,7 +283,7 @@ func FinalizeBlockExecution( header *types.Header, txs types.Transactions, uncles []*types.Header, stateWriter state.WriterWithChangeSets, cc *chain.Config, ibs *state.IntraBlockState, receipts types.Receipts, - withdrawals []*types.Withdrawal, headerReader consensus.ChainHeaderReader, + withdrawals []*types.Withdrawal, chainReader consensus.ChainReader, isMining bool, logger log.Logger, ) (newBlock *types.Block, newTxs types.Transactions, newReceipt types.Receipts, err error) { @@ -293,9 +291,9 @@ func FinalizeBlockExecution( return SysCallContract(contract, data, cc, ibs, header, engine, false /* constCall */) } if isMining { - newBlock, newTxs, newReceipt, err = engine.FinalizeAndAssemble(cc, header, ibs, txs, uncles, receipts, withdrawals, headerReader, syscall, nil, logger) + newBlock, newTxs, newReceipt, err = engine.FinalizeAndAssemble(cc, header, ibs, txs, uncles, receipts, withdrawals, chainReader, syscall, nil, logger) } else { - _, _, err = engine.Finalize(cc, header, ibs, txs, uncles, receipts, withdrawals, headerReader, syscall, logger) + _, _, err = engine.Finalize(cc, header, ibs, txs, uncles, receipts, withdrawals, chainReader, syscall, logger) } if err != nil { return nil, nil, nil, err @@ -311,10 +309,12 @@ func FinalizeBlockExecution( return newBlock, newTxs, newReceipt, nil } -func InitializeBlockExecution(engine consensus.Engine, chain consensus.ChainHeaderReader, header *types.Header, txs types.Transactions, uncles []*types.Header, cc *chain.Config, ibs *state.IntraBlockState) error { - engine.Initialize(cc, chain, header, ibs, txs, uncles, func(contract libcommon.Address, data []byte, ibState *state.IntraBlockState, header *types.Header, constCall bool) ([]byte, error) { +func InitializeBlockExecution(engine consensus.Engine, chain consensus.ChainHeaderReader, header *types.Header, + cc *chain.Config, ibs *state.IntraBlockState, logger log.Logger, +) error { + engine.Initialize(cc, chain, header, ibs, func(contract libcommon.Address, data []byte, ibState *state.IntraBlockState, header *types.Header, constCall bool) ([]byte, error) { return SysCallContract(contract, data, cc, ibState, header, engine, constCall) - }) + }, logger) noop := state.NewNoopWriter() ibs.FinalizeTx(cc.Rules(header.Number.Uint64(), header.Time), noop) return nil diff --git a/core/chain_makers.go b/core/chain_makers.go index f3b85d985db..25a96626be9 100644 --- a/core/chain_makers.go +++ b/core/chain_makers.go @@ -28,16 +28,15 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/merge" "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core/state" - "github.com/ledgerwatch/erigon/core/systemcontracts" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/params" + "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/trie" ) @@ -365,13 +364,12 @@ func GenerateChain(config *chain.Config, parent *types.Block, engine consensus.E if daoBlock := config.DAOForkBlock; daoBlock != nil { limit := new(big.Int).Add(daoBlock, params.DAOForkExtraRange) if b.header.Number.Cmp(daoBlock) >= 0 && b.header.Number.Cmp(limit) < 0 { - b.header.Extra = common.CopyBytes(params.DAOForkBlockExtra) - } - if daoBlock.Cmp(b.header.Number) == 0 { - misc.ApplyDAOHardFork(ibs) + b.header.Extra = libcommon.CopyBytes(params.DAOForkBlockExtra) } } - systemcontracts.UpgradeBuildInSystemContract(config, b.header.Number, ibs, logger) + if b.engine != nil { + InitializeBlockExecution(b.engine, nil, b.header, config, ibs, logger) + } // Execute any user modifications to the block if gen != nil { gen(i, b) @@ -417,7 +415,7 @@ func GenerateChain(config *chain.Config, parent *types.Block, engine consensus.E return &ChainPack{Headers: headers, Blocks: blocks, Receipts: receipts, TopBlock: blocks[n-1]}, nil } -func hashKeyAndAddIncarnation(k []byte, h *common.Hasher) (newK []byte, err error) { +func hashKeyAndAddIncarnation(k []byte, h *libcommon.Hasher) (newK []byte, err error) { if len(k) == length.Addr { newK = make([]byte, length.Hash) } else { @@ -522,8 +520,8 @@ func CalcHashRootForTests(tx kv.RwTx, header *types.Header, histV4 bool) (hashRo if err != nil { return hashRoot, err } - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) for k, v, err := c.First(); k != nil; k, v, err = c.Next() { if err != nil { return hashRoot, fmt.Errorf("interate over plain state: %w", err) @@ -533,11 +531,11 @@ func CalcHashRootForTests(tx kv.RwTx, header *types.Header, histV4 bool) (hashRo return hashRoot, fmt.Errorf("insert hashed key: %w", err) } if len(k) > length.Addr { - if err = tx.Put(kv.HashedStorage, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedStorage, newK, libcommon.CopyBytes(v)); err != nil { return hashRoot, fmt.Errorf("insert hashed key: %w", err) } } else { - if err = tx.Put(kv.HashedAccounts, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedAccounts, newK, libcommon.CopyBytes(v)); err != nil { return hashRoot, fmt.Errorf("insert hashed key: %w", err) } } @@ -603,7 +601,7 @@ func MakeEmptyHeader(parent *types.Header, chainConfig *chain.Config, timestamp } if chainConfig.IsCancun(header.Time) { - excessBlobGas := misc.CalcExcessBlobGas(parent) + excessBlobGas := misc.CalcExcessBlobGas(chainConfig, parent) header.ExcessBlobGas = &excessBlobGas header.BlobGasUsed = new(uint64) } @@ -652,3 +650,7 @@ func (cr *FakeChainReader) GetBlock(hash libcommon.Hash, number uint64) *types.B func (cr *FakeChainReader) HasBlock(hash libcommon.Hash, number uint64) bool { return false } func (cr *FakeChainReader) GetTd(hash libcommon.Hash, number uint64) *big.Int { return nil } func (cr *FakeChainReader) FrozenBlocks() uint64 { return 0 } +func (cr *FakeChainReader) BorEventsByBlock(hash libcommon.Hash, number uint64) []rlp.RawValue { + return nil +} +func (cr *FakeChainReader) BorSpan(spanId uint64) []byte { return nil } diff --git a/core/forkid/forkid.go b/core/forkid/forkid.go index f137c4815f6..433c9221b18 100644 --- a/core/forkid/forkid.go +++ b/core/forkid/forkid.go @@ -26,12 +26,11 @@ import ( "reflect" "strings" - "github.com/ledgerwatch/erigon-lib/chain" - libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" - "github.com/ledgerwatch/erigon/common" + "github.com/ledgerwatch/erigon-lib/chain" + libcommon "github.com/ledgerwatch/erigon-lib/common" ) var ( @@ -55,12 +54,6 @@ type ID struct { // Filter is a fork id filter to validate a remotely advertised ID. type Filter func(id ID) error -// NewID calculates the Ethereum fork ID from the chain config, genesis hash, head height and time. -func NewID(config *chain.Config, genesis libcommon.Hash, headHeight, headTime uint64) ID { - heightForks, timeForks := GatherForks(config) - return NewIDFromForks(heightForks, timeForks, genesis, headHeight, headTime) -} - func NewIDFromForks(heightForks, timeForks []uint64, genesis libcommon.Hash, headHeight, headTime uint64) ID { // Calculate the starting checksum from the genesis hash hash := crc32.ChecksumIEEE(genesis[:]) @@ -104,9 +97,9 @@ func NewFilterFromForks(heightForks, timeForks []uint64, genesis libcommon.Hash, } // NewStaticFilter creates a filter at block zero. -func NewStaticFilter(config *chain.Config, genesis libcommon.Hash) Filter { - heightForks, timeForks := GatherForks(config) - return newFilter(heightForks, timeForks, genesis, 0, 0) +func NewStaticFilter(config *chain.Config, genesisHash libcommon.Hash, genesisTime uint64) Filter { + heightForks, timeForks := GatherForks(config, genesisTime) + return newFilter(heightForks, timeForks, genesisHash, 0 /* headHeight */, genesisTime) } // Simple heuristic returning true if the value is a Unix time after 2 Dec 2022. @@ -215,7 +208,7 @@ func checksumToBytes(hash uint32) [4]byte { } // GatherForks gathers all the known forks and creates a sorted list out of them. -func GatherForks(config *chain.Config) (heightForks []uint64, timeForks []uint64) { +func GatherForks(config *chain.Config, genesisTime uint64) (heightForks []uint64, timeForks []uint64) { // Gather all the fork block numbers via reflection kind := reflect.TypeOf(chain.Config{}) conf := reflect.ValueOf(config).Elem() @@ -237,7 +230,10 @@ func GatherForks(config *chain.Config) (heightForks []uint64, timeForks []uint64 rule := conf.Field(i).Interface().(*big.Int) if rule != nil { if time { - timeForks = append(timeForks, rule.Uint64()) + t := rule.Uint64() + if t > genesisTime { + timeForks = append(timeForks, t) + } } else { heightForks = append(heightForks, rule.Uint64()) } @@ -248,12 +244,16 @@ func GatherForks(config *chain.Config) (heightForks []uint64, timeForks []uint64 heightForks = append(heightForks, *config.Aura.PosdaoTransition) } + if config.Bor != nil && config.Bor.AgraBlock != nil { + heightForks = append(heightForks, config.Bor.AgraBlock.Uint64()) + } + // Sort the fork block numbers & times to permit chronological XOR slices.Sort(heightForks) slices.Sort(timeForks) // Deduplicate block numbers/times applying to multiple forks - heightForks = common.RemoveDuplicatesFromSorted(heightForks) - timeForks = common.RemoveDuplicatesFromSorted(timeForks) + heightForks = libcommon.RemoveDuplicatesFromSorted(heightForks) + timeForks = libcommon.RemoveDuplicatesFromSorted(timeForks) // Skip any forks in block 0, that's the genesis ruleset if len(heightForks) > 0 && heightForks[0] == 0 { heightForks = heightForks[1:] diff --git a/core/forkid/forkid_test.go b/core/forkid/forkid_test.go index d8894d81661..310beaa739a 100644 --- a/core/forkid/forkid_test.go +++ b/core/forkid/forkid_test.go @@ -24,7 +24,6 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/rlp" ) @@ -34,6 +33,7 @@ import ( // Forks before Shanghai are triggered by the block number, // while Shanghai and later forks are triggered by the block time. func TestCreation(t *testing.T) { + t.Parallel() type testcase struct { head uint64 time uint64 @@ -142,10 +142,44 @@ func TestCreation(t *testing.T) { {4100419, 1684934220, ID{Hash: checksumToBytes(0xa15a4252), Next: 0}}, // First Shanghai block }, }, + // Mumbai test cases + { + params.MumbaiChainConfig, + params.MumbaiGenesisHash, + []testcase{ + {0, 0, ID{Hash: checksumToBytes(0xf6ef3fdf), Next: 2722000}}, + {2722000, 0, ID{Hash: checksumToBytes(0x8647df30), Next: 13996000}}, // First Istanbul block + {13996000, 0, ID{Hash: checksumToBytes(0x06cc1179), Next: 22640000}}, // First Berlin block + {22640000, 0, ID{Hash: checksumToBytes(0x9adf950e), Next: 41874000}}, // First London block + {41874000, 0, ID{Hash: checksumToBytes(0x0c015a91), Next: 0}}, // First Agra block + }, + }, + // Amoy test cases + { + params.AmoyChainConfig, + params.AmoyGenesisHash, + []testcase{ + {0, 0, ID{Hash: checksumToBytes(0xbe06a477), Next: 73100}}, + {73100, 0, ID{Hash: checksumToBytes(0x135d2cd5), Next: 0}}, // First London, Jaipur, Delhi, Indore, Agra + }, + }, + // Bor mainnet test cases + { + params.BorMainnetChainConfig, + params.BorMainnetGenesisHash, + []testcase{ + {0, 0, ID{Hash: checksumToBytes(0x0e07e722), Next: 3395000}}, + {3395000, 0, ID{Hash: checksumToBytes(0x27806576), Next: 14750000}}, // First Istanbul block + {14750000, 0, ID{Hash: checksumToBytes(0x66e26adb), Next: 23850000}}, // First Berlin block + {23850000, 0, ID{Hash: checksumToBytes(0x4f2f71cc), Next: 50523000}}, // First London block + {50523000, 0, ID{Hash: checksumToBytes(0xdc08865c), Next: 0}}, // First Agra block + }, + }, } for i, tt := range tests { for j, ttt := range tt.cases { - if have := NewID(tt.config, tt.genesis, ttt.head, ttt.time); have != ttt.want { + heightForks, timeForks := GatherForks(tt.config, 0 /* genesisTime */) + if have := NewIDFromForks(heightForks, timeForks, tt.genesis, ttt.head, ttt.time); have != ttt.want { t.Errorf("test %d, case %d: fork ID mismatch: have %x, want %x", i, j, have, ttt.want) } } @@ -155,6 +189,7 @@ func TestCreation(t *testing.T) { // TestValidation tests that a local peer correctly validates and accepts a remote // fork ID. func TestValidation(t *testing.T) { + t.Parallel() tests := []struct { head uint64 id ID @@ -222,7 +257,7 @@ func TestValidation(t *testing.T) { // fork) at block 7279999, before Petersburg. Local is incompatible. {7279999, ID{Hash: checksumToBytes(0xa00bc324), Next: 7279999}, ErrLocalIncompatibleOrStale}, } - heightForks, timeForks := GatherForks(params.MainnetChainConfig) + heightForks, timeForks := GatherForks(params.MainnetChainConfig, 0 /* genesisTime */) for i, tt := range tests { filter := newFilter(heightForks, timeForks, params.MainnetGenesisHash, tt.head, 0) if err := filter(tt.id); err != tt.err { @@ -234,13 +269,14 @@ func TestValidation(t *testing.T) { // Tests that IDs are properly RLP encoded (specifically important because we // use uint32 to store the hash, but we need to encode it as [4]byte). func TestEncoding(t *testing.T) { + t.Parallel() tests := []struct { id ID want []byte }{ - {ID{Hash: checksumToBytes(0), Next: 0}, common.Hex2Bytes("c6840000000080")}, - {ID{Hash: checksumToBytes(0xdeadbeef), Next: 0xBADDCAFE}, common.Hex2Bytes("ca84deadbeef84baddcafe,")}, - {ID{Hash: checksumToBytes(math.MaxUint32), Next: math.MaxUint64}, common.Hex2Bytes("ce84ffffffff88ffffffffffffffff")}, + {ID{Hash: checksumToBytes(0), Next: 0}, libcommon.Hex2Bytes("c6840000000080")}, + {ID{Hash: checksumToBytes(0xdeadbeef), Next: 0xBADDCAFE}, libcommon.Hex2Bytes("ca84deadbeef84baddcafe,")}, + {ID{Hash: checksumToBytes(math.MaxUint32), Next: math.MaxUint64}, libcommon.Hex2Bytes("ce84ffffffff88ffffffffffffffff")}, } for i, tt := range tests { have, err := rlp.EncodeToBytes(tt.id) diff --git a/core/genesis_test.go b/core/genesis_test.go index 05c7d4d778e..d5039236e7d 100644 --- a/core/genesis_test.go +++ b/core/genesis_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/kv" @@ -19,11 +20,11 @@ import ( "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/log/v3" ) func TestGenesisBlockHashes(t *testing.T) { + t.Parallel() logger := log.New() _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil) check := func(network string) { @@ -45,6 +46,7 @@ func TestGenesisBlockHashes(t *testing.T) { } func TestGenesisBlockRoots(t *testing.T) { + t.Parallel() require := require.New(t) var err error @@ -73,6 +75,7 @@ func TestGenesisBlockRoots(t *testing.T) { } func TestCommitGenesisIdempotency(t *testing.T) { + t.Parallel() logger := log.New() _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil) tx, err := db.BeginRw(context.Background()) @@ -94,6 +97,7 @@ func TestCommitGenesisIdempotency(t *testing.T) { } func TestAllocConstructor(t *testing.T) { + t.Parallel() require := require.New(t) assert := assert.New(t) diff --git a/core/genesis_write.go b/core/genesis_write.go index 7cbf4ccc03c..7c7f9750fe9 100644 --- a/core/genesis_write.go +++ b/core/genesis_write.go @@ -32,14 +32,15 @@ import ( "golang.org/x/exp/slices" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/consensus/merge" "github.com/ledgerwatch/erigon/core/rawdb" @@ -48,7 +49,6 @@ import ( "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/erigon/turbo/trie" ) @@ -343,6 +343,18 @@ func MainnetGenesisBlock() *types.Genesis { } } +// HoleskyGenesisBlock returns the Holesky main net genesis block. +func HoleskyGenesisBlock() *types.Genesis { + return &types.Genesis{ + Config: params.HoleskyChainConfig, + Nonce: 4660, + GasLimit: 25000000, + Difficulty: big.NewInt(1), + Timestamp: 1695902100, + Alloc: readPrealloc("allocs/holesky.json"), + } +} + // SepoliaGenesisBlock returns the Sepolia network genesis block. func SepoliaGenesisBlock() *types.Genesis { return &types.Genesis{ @@ -368,6 +380,7 @@ func GoerliGenesisBlock() *types.Genesis { } } +// MumbaiGenesisBlock returns the Amoy network genesis block. func MumbaiGenesisBlock() *types.Genesis { return &types.Genesis{ Config: params.MumbaiChainConfig, @@ -381,6 +394,20 @@ func MumbaiGenesisBlock() *types.Genesis { } } +// AmoyGenesisBlock returns the Amoy network genesis block. +func AmoyGenesisBlock() *types.Genesis { + return &types.Genesis{ + Config: params.AmoyChainConfig, + Nonce: 0, + Timestamp: 1700225065, + GasLimit: 10000000, + Difficulty: big.NewInt(1), + Mixhash: libcommon.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000000"), + Coinbase: libcommon.HexToAddress("0x0000000000000000000000000000000000000000"), + Alloc: readPrealloc("allocs/amoy.json"), + } +} + // BorMainnetGenesisBlock returns the Bor Mainnet network genesis block. func BorMainnetGenesisBlock() *types.Genesis { return &types.Genesis{ @@ -528,6 +555,7 @@ func GenesisToBlock(g *types.Genesis, tmpDir string) (*types.Block, *state.Intra go func() { // we may run inside write tx, can't open 2nd write tx in same goroutine // TODO(yperbasis): use memdb.MemoryMutation instead defer wg.Done() + genesisTmpDB := mdbx.NewMDBX(log.New()).InMem(tmpDir).MapSize(2 * datasize.GB).GrowthStep(1 * datasize.MB).MustOpen() defer genesisTmpDB.Close() var tx kv.RwTx @@ -629,12 +657,16 @@ func GenesisBlockByChainName(chain string) *types.Genesis { switch chain { case networkname.MainnetChainName: return MainnetGenesisBlock() + case networkname.HoleskyChainName: + return HoleskyGenesisBlock() case networkname.SepoliaChainName: return SepoliaGenesisBlock() case networkname.GoerliChainName: return GoerliGenesisBlock() case networkname.MumbaiChainName: return MumbaiGenesisBlock() + case networkname.AmoyChainName: + return AmoyGenesisBlock() case networkname.BorMainnetChainName: return BorMainnetGenesisBlock() case networkname.BorDevnetChainName: diff --git a/core/rawdb/accessors_account.go b/core/rawdb/accessors_account.go index 254d4d9bb02..0607f04648e 100644 --- a/core/rawdb/accessors_account.go +++ b/core/rawdb/accessors_account.go @@ -23,7 +23,7 @@ import ( "github.com/ledgerwatch/erigon/core/types/accounts" ) -func ReadAccount(db kv.Tx, addr libcommon.Address, acc *accounts.Account) (bool, error) { +func ReadAccount(db kv.Getter, addr libcommon.Address, acc *accounts.Account) (bool, error) { enc, err := db.GetOne(kv.PlainState, addr[:]) if err != nil { return false, err diff --git a/core/rawdb/accessors_chain.go b/core/rawdb/accessors_chain.go index 9ff8a9d9db0..c15de0e3de3 100644 --- a/core/rawdb/accessors_chain.go +++ b/core/rawdb/accessors_chain.go @@ -26,9 +26,10 @@ import ( "math/big" "time" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" + "github.com/gballet/go-verkle" - common2 "github.com/ledgerwatch/erigon-lib/common" - libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/cmp" "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon-lib/common/hexutility" @@ -37,27 +38,30 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/ethdb/cbor" "github.com/ledgerwatch/erigon/rlp" ) +const ( + spanLength = 6400 // Number of blocks in a span + zerothSpanEnd = 255 // End block of 0th span +) + // ReadCanonicalHash retrieves the hash assigned to a canonical block number. -func ReadCanonicalHash(db kv.Getter, number uint64) (libcommon.Hash, error) { +func ReadCanonicalHash(db kv.Getter, number uint64) (common.Hash, error) { data, err := db.GetOne(kv.HeaderCanonical, hexutility.EncodeTs(number)) if err != nil { - return libcommon.Hash{}, fmt.Errorf("failed ReadCanonicalHash: %w, number=%d", err, number) + return common.Hash{}, fmt.Errorf("failed ReadCanonicalHash: %w, number=%d", err, number) } if len(data) == 0 { - return libcommon.Hash{}, nil + return common.Hash{}, nil } - return libcommon.BytesToHash(data), nil + return common.BytesToHash(data), nil } // WriteCanonicalHash stores the hash assigned to a canonical block number. -func WriteCanonicalHash(db kv.Putter, hash libcommon.Hash, number uint64) error { +func WriteCanonicalHash(db kv.Putter, hash common.Hash, number uint64) error { if err := db.Put(kv.HeaderCanonical, hexutility.EncodeTs(number), hash.Bytes()); err != nil { return fmt.Errorf("failed to store number to hash mapping: %w", err) } @@ -87,7 +91,7 @@ func TruncateCanonicalHash(tx kv.RwTx, blockFrom uint64, markChainAsBad bool) er } // IsCanonicalHashDeprecated determines whether a header with the given hash is on the canonical chain. -func IsCanonicalHashDeprecated(db kv.Getter, hash libcommon.Hash) (bool, *uint64, error) { +func IsCanonicalHashDeprecated(db kv.Getter, hash common.Hash) (bool, *uint64, error) { number := ReadHeaderNumber(db, hash) if number == nil { return false, nil, nil @@ -96,19 +100,19 @@ func IsCanonicalHashDeprecated(db kv.Getter, hash libcommon.Hash) (bool, *uint64 if err != nil { return false, nil, err } - return canonicalHash != (libcommon.Hash{}) && canonicalHash == hash, number, nil + return canonicalHash != (common.Hash{}) && canonicalHash == hash, number, nil } -func IsCanonicalHash(db kv.Getter, hash libcommon.Hash, number uint64) (bool, error) { +func IsCanonicalHash(db kv.Getter, hash common.Hash, number uint64) (bool, error) { canonicalHash, err := ReadCanonicalHash(db, number) if err != nil { return false, err } - return canonicalHash != (libcommon.Hash{}) && canonicalHash == hash, nil + return canonicalHash != (common.Hash{}) && canonicalHash == hash, nil } // ReadHeaderNumber returns the header number assigned to a hash. -func ReadHeaderNumber(db kv.Getter, hash libcommon.Hash) *uint64 { +func ReadHeaderNumber(db kv.Getter, hash common.Hash) *uint64 { data, err := db.GetOne(kv.HeaderNumber, hash.Bytes()) if err != nil { log.Error("ReadHeaderNumber failed", "err", err) @@ -123,7 +127,7 @@ func ReadHeaderNumber(db kv.Getter, hash libcommon.Hash) *uint64 { number := binary.BigEndian.Uint64(data) return &number } -func ReadBadHeaderNumber(db kv.Getter, hash libcommon.Hash) (*uint64, error) { +func ReadBadHeaderNumber(db kv.Getter, hash common.Hash) (*uint64, error) { data, err := db.GetOne(kv.BadHeaderNumber, hash.Bytes()) if err != nil { return nil, err @@ -139,7 +143,7 @@ func ReadBadHeaderNumber(db kv.Getter, hash libcommon.Hash) (*uint64, error) { } // WriteHeaderNumber stores the hash->number mapping. -func WriteHeaderNumber(db kv.Putter, hash libcommon.Hash, number uint64) error { +func WriteHeaderNumber(db kv.Putter, hash common.Hash, number uint64) error { if err := db.Put(kv.HeaderNumber, hash[:], hexutility.EncodeTs(number)); err != nil { return err } @@ -147,19 +151,19 @@ func WriteHeaderNumber(db kv.Putter, hash libcommon.Hash, number uint64) error { } // ReadHeadHeaderHash retrieves the hash of the current canonical head header. -func ReadHeadHeaderHash(db kv.Getter) libcommon.Hash { +func ReadHeadHeaderHash(db kv.Getter) common.Hash { data, err := db.GetOne(kv.HeadHeaderKey, []byte(kv.HeadHeaderKey)) if err != nil { log.Error("ReadHeadHeaderHash failed", "err", err) } if len(data) == 0 { - return libcommon.Hash{} + return common.Hash{} } - return libcommon.BytesToHash(data) + return common.BytesToHash(data) } // WriteHeadHeaderHash stores the hash of the current canonical head header. -func WriteHeadHeaderHash(db kv.Putter, hash libcommon.Hash) error { +func WriteHeadHeaderHash(db kv.Putter, hash common.Hash) error { if err := db.Put(kv.HeadHeaderKey, []byte(kv.HeadHeaderKey), hash.Bytes()); err != nil { return fmt.Errorf("failed to store last header's hash: %w", err) } @@ -167,89 +171,89 @@ func WriteHeadHeaderHash(db kv.Putter, hash libcommon.Hash) error { } // ReadHeadBlockHash retrieves the hash of the current canonical head block. -func ReadHeadBlockHash(db kv.Getter) libcommon.Hash { +func ReadHeadBlockHash(db kv.Getter) common.Hash { data, err := db.GetOne(kv.HeadBlockKey, []byte(kv.HeadBlockKey)) if err != nil { log.Error("ReadHeadBlockHash failed", "err", err) } if len(data) == 0 { - return libcommon.Hash{} + return common.Hash{} } - return libcommon.BytesToHash(data) + return common.BytesToHash(data) } // WriteHeadBlockHash stores the head block's hash. -func WriteHeadBlockHash(db kv.Putter, hash libcommon.Hash) { +func WriteHeadBlockHash(db kv.Putter, hash common.Hash) { if err := db.Put(kv.HeadBlockKey, []byte(kv.HeadBlockKey), hash.Bytes()); err != nil { log.Crit("Failed to store last block's hash", "err", err) } } // ReadForkchoiceHead retrieves headBlockHash from the last Engine API forkChoiceUpdated. -func ReadForkchoiceHead(db kv.Getter) libcommon.Hash { +func ReadForkchoiceHead(db kv.Getter) common.Hash { data, err := db.GetOne(kv.LastForkchoice, []byte("headBlockHash")) if err != nil { log.Error("ReadForkchoiceHead failed", "err", err) } if len(data) == 0 { - return libcommon.Hash{} + return common.Hash{} } - return libcommon.BytesToHash(data) + return common.BytesToHash(data) } // WriteForkchoiceHead stores headBlockHash from the last Engine API forkChoiceUpdated. -func WriteForkchoiceHead(db kv.Putter, hash libcommon.Hash) { +func WriteForkchoiceHead(db kv.Putter, hash common.Hash) { if err := db.Put(kv.LastForkchoice, []byte("headBlockHash"), hash[:]); err != nil { log.Crit("Failed to store head block hash", "err", err) } } // ReadForkchoiceSafe retrieves safeBlockHash from the last Engine API forkChoiceUpdated. -func ReadForkchoiceSafe(db kv.Getter) libcommon.Hash { +func ReadForkchoiceSafe(db kv.Getter) common.Hash { data, err := db.GetOne(kv.LastForkchoice, []byte("safeBlockHash")) if err != nil { log.Error("ReadForkchoiceSafe failed", "err", err) - return libcommon.Hash{} + return common.Hash{} } if len(data) == 0 { - return libcommon.Hash{} + return common.Hash{} } - return libcommon.BytesToHash(data) + return common.BytesToHash(data) } // WriteForkchoiceSafe stores safeBlockHash from the last Engine API forkChoiceUpdated. -func WriteForkchoiceSafe(db kv.Putter, hash libcommon.Hash) { +func WriteForkchoiceSafe(db kv.Putter, hash common.Hash) { if err := db.Put(kv.LastForkchoice, []byte("safeBlockHash"), hash[:]); err != nil { log.Crit("Failed to store safe block hash", "err", err) } } // ReadForkchoiceFinalized retrieves finalizedBlockHash from the last Engine API forkChoiceUpdated. -func ReadForkchoiceFinalized(db kv.Getter) libcommon.Hash { +func ReadForkchoiceFinalized(db kv.Getter) common.Hash { data, err := db.GetOne(kv.LastForkchoice, []byte("finalizedBlockHash")) if err != nil { log.Error("ReadForkchoiceFinalize failed", "err", err) - return libcommon.Hash{} + return common.Hash{} } if len(data) == 0 { - return libcommon.Hash{} + return common.Hash{} } - return libcommon.BytesToHash(data) + return common.BytesToHash(data) } // WriteForkchoiceFinalized stores finalizedBlockHash from the last Engine API forkChoiceUpdated. -func WriteForkchoiceFinalized(db kv.Putter, hash libcommon.Hash) { +func WriteForkchoiceFinalized(db kv.Putter, hash common.Hash) { if err := db.Put(kv.LastForkchoice, []byte("finalizedBlockHash"), hash[:]); err != nil { log.Crit("Failed to safe finalized block hash", "err", err) } } // ReadHeaderRLP retrieves a block header in its raw RLP database encoding. -func ReadHeaderRLP(db kv.Getter, hash libcommon.Hash, number uint64) rlp.RawValue { +func ReadHeaderRLP(db kv.Getter, hash common.Hash, number uint64) rlp.RawValue { data, err := db.GetOne(kv.Headers, dbutils.HeaderKey(number, hash)) if err != nil { log.Error("ReadHeaderRLP failed", "err", err) @@ -258,7 +262,7 @@ func ReadHeaderRLP(db kv.Getter, hash libcommon.Hash, number uint64) rlp.RawValu } // ReadHeader retrieves the block header corresponding to the hash. -func ReadHeader(db kv.Getter, hash libcommon.Hash, number uint64) *types.Header { +func ReadHeader(db kv.Getter, hash common.Hash, number uint64) *types.Header { data := ReadHeaderRLP(db, hash, number) if len(data) == 0 { return nil @@ -333,7 +337,7 @@ func WriteHeader(db kv.RwTx, header *types.Header) error { } return nil } -func WriteHeaderRaw(db kv.StatelessRwTx, number uint64, hash libcommon.Hash, headerRlp []byte, skipIndexing bool) error { +func WriteHeaderRaw(db kv.StatelessRwTx, number uint64, hash common.Hash, headerRlp []byte, skipIndexing bool) error { if err := db.Put(kv.Headers, dbutils.HeaderKey(number, hash), headerRlp); err != nil { return err } @@ -347,7 +351,7 @@ func WriteHeaderRaw(db kv.StatelessRwTx, number uint64, hash libcommon.Hash, hea } // DeleteHeader - dangerous, use PruneBlocks/TruncateBlocks methods -func DeleteHeader(db kv.Deleter, hash libcommon.Hash, number uint64) { +func DeleteHeader(db kv.Deleter, hash common.Hash, number uint64) { if err := db.Delete(kv.Headers, dbutils.HeaderKey(number, hash)); err != nil { log.Crit("Failed to delete header", "err", err) } @@ -357,7 +361,7 @@ func DeleteHeader(db kv.Deleter, hash libcommon.Hash, number uint64) { } // ReadBodyRLP retrieves the block body (transactions and uncles) in RLP encoding. -func ReadBodyRLP(db kv.Tx, hash libcommon.Hash, number uint64) rlp.RawValue { +func ReadBodyRLP(db kv.Tx, hash common.Hash, number uint64) rlp.RawValue { body, _ := ReadBodyWithTransactions(db, hash, number) bodyRlp, err := rlp.EncodeToBytes(body) if err != nil { @@ -365,7 +369,7 @@ func ReadBodyRLP(db kv.Tx, hash libcommon.Hash, number uint64) rlp.RawValue { } return bodyRlp } -func ReadStorageBodyRLP(db kv.Getter, hash libcommon.Hash, number uint64) rlp.RawValue { +func ReadStorageBodyRLP(db kv.Getter, hash common.Hash, number uint64) rlp.RawValue { bodyRlp, err := db.GetOne(kv.BlockBody, dbutils.BlockBodyKey(number, hash)) if err != nil { log.Error("ReadBodyRLP failed", "err", err) @@ -373,7 +377,7 @@ func ReadStorageBodyRLP(db kv.Getter, hash libcommon.Hash, number uint64) rlp.Ra return bodyRlp } -func ReadStorageBody(db kv.Getter, hash libcommon.Hash, number uint64) (types.BodyForStorage, error) { +func ReadStorageBody(db kv.Getter, hash common.Hash, number uint64) (types.BodyForStorage, error) { bodyRlp, err := db.GetOne(kv.BlockBody, dbutils.BlockBodyKey(number, hash)) if err != nil { log.Error("ReadBodyRLP failed", "err", err) @@ -385,7 +389,7 @@ func ReadStorageBody(db kv.Getter, hash libcommon.Hash, number uint64) (types.Bo return *bodyForStorage, nil } -func TxnByIdxInBlock(db kv.Getter, blockHash libcommon.Hash, blockNum uint64, txIdxInBlock int) (types.Transaction, error) { +func TxnByIdxInBlock(db kv.Getter, blockHash common.Hash, blockNum uint64, txIdxInBlock int) (types.Transaction, error) { b, err := ReadBodyForStorageByKey(db, dbutils.BlockBodyKey(blockNum, blockHash)) if err != nil { return nil, err @@ -483,7 +487,7 @@ func WriteRawTransactions(tx kv.RwTx, txs [][]byte, baseTxId uint64) error { } // WriteBodyForStorage stores an RLP encoded block body into the database. -func WriteBodyForStorage(db kv.Putter, hash libcommon.Hash, number uint64, body *types.BodyForStorage) error { +func WriteBodyForStorage(db kv.Putter, hash common.Hash, number uint64, body *types.BodyForStorage) error { data, err := rlp.EncodeToBytes(body) if err != nil { return err @@ -497,14 +501,14 @@ func ReadBodyByNumber(db kv.Tx, number uint64) (*types.Body, uint64, uint32, err if err != nil { return nil, 0, 0, fmt.Errorf("failed ReadCanonicalHash: %w", err) } - if hash == (libcommon.Hash{}) { + if hash == (common.Hash{}) { return nil, 0, 0, nil } body, baseTxId, txAmount := ReadBody(db, hash, number) return body, baseTxId, txAmount, nil } -func ReadBodyWithTransactions(db kv.Getter, hash libcommon.Hash, number uint64) (*types.Body, error) { +func ReadBodyWithTransactions(db kv.Getter, hash common.Hash, number uint64) (*types.Body, error) { body, baseTxId, txAmount := ReadBody(db, hash, number) if body == nil { return nil, nil @@ -581,7 +585,7 @@ func ReadBodyForStorageByKey(db kv.Getter, k []byte) (*types.BodyForStorage, err return bodyForStorage, nil } -func ReadBody(db kv.Getter, hash libcommon.Hash, number uint64) (*types.Body, uint64, uint32) { +func ReadBody(db kv.Getter, hash common.Hash, number uint64) (*types.Body, uint64, uint32) { data := ReadStorageBodyRLP(db, hash, number) if len(data) == 0 { return nil, 0, 0 @@ -602,23 +606,23 @@ func ReadBody(db kv.Getter, hash libcommon.Hash, number uint64) (*types.Body, ui return body, bodyForStorage.BaseTxId + 1, bodyForStorage.TxAmount - 2 // 1 system txn in the begining of block, and 1 at the end } -func HasSenders(db kv.Getter, hash libcommon.Hash, number uint64) (bool, error) { +func HasSenders(db kv.Getter, hash common.Hash, number uint64) (bool, error) { return db.Has(kv.Senders, dbutils.BlockBodyKey(number, hash)) } -func ReadSenders(db kv.Getter, hash libcommon.Hash, number uint64) ([]libcommon.Address, error) { +func ReadSenders(db kv.Getter, hash common.Hash, number uint64) ([]common.Address, error) { data, err := db.GetOne(kv.Senders, dbutils.BlockBodyKey(number, hash)) if err != nil { return nil, fmt.Errorf("readSenders failed: %w", err) } - senders := make([]libcommon.Address, len(data)/length.Addr) + senders := make([]common.Address, len(data)/length.Addr) for i := 0; i < len(senders); i++ { copy(senders[i][:], data[i*length.Addr:]) } return senders, nil } -func WriteRawBodyIfNotExists(db kv.RwTx, hash libcommon.Hash, number uint64, body *types.RawBody) (ok bool, err error) { +func WriteRawBodyIfNotExists(db kv.RwTx, hash common.Hash, number uint64, body *types.RawBody) (ok bool, err error) { exists, err := db.Has(kv.BlockBody, dbutils.BlockBodyKey(number, hash)) if err != nil { return false, err @@ -629,7 +633,7 @@ func WriteRawBodyIfNotExists(db kv.RwTx, hash libcommon.Hash, number uint64, bod return WriteRawBody(db, hash, number, body) } -func WriteRawBody(db kv.RwTx, hash libcommon.Hash, number uint64, body *types.RawBody) (ok bool, err error) { +func WriteRawBody(db kv.RwTx, hash common.Hash, number uint64, body *types.RawBody) (ok bool, err error) { baseTxnID, err := db.IncrementSequence(kv.EthTx, uint64(len(body.Transactions))+2) if err != nil { return false, err @@ -650,7 +654,7 @@ func WriteRawBody(db kv.RwTx, hash libcommon.Hash, number uint64, body *types.Ra return true, nil } -func WriteBody(db kv.RwTx, hash libcommon.Hash, number uint64, body *types.Body) (err error) { +func WriteBody(db kv.RwTx, hash common.Hash, number uint64, body *types.Body) (err error) { // Pre-processing body.SendersFromTxs() baseTxId, err := db.IncrementSequence(kv.EthTx, uint64(len(body.Transactions))+2) @@ -672,7 +676,7 @@ func WriteBody(db kv.RwTx, hash libcommon.Hash, number uint64, body *types.Body) return nil } -func WriteSenders(db kv.Putter, hash libcommon.Hash, number uint64, senders []libcommon.Address) error { +func WriteSenders(db kv.Putter, hash common.Hash, number uint64, senders []common.Address) error { data := make([]byte, length.Addr*len(senders)) for i, sender := range senders { copy(data[i*length.Addr:], sender[:]) @@ -684,7 +688,7 @@ func WriteSenders(db kv.Putter, hash libcommon.Hash, number uint64, senders []li } // DeleteBody removes all block body data associated with a hash. -func DeleteBody(db kv.Deleter, hash libcommon.Hash, number uint64) { +func DeleteBody(db kv.Deleter, hash common.Hash, number uint64) { if err := db.Delete(kv.BlockBody, dbutils.BlockBodyKey(number, hash)); err != nil { log.Crit("Failed to delete block body", "err", err) } @@ -705,7 +709,7 @@ func AppendCanonicalTxNums(tx kv.RwTx, from uint64) (err error) { if err != nil { return err } - if h == (libcommon.Hash{}) { + if h == (common.Hash{}) { break } @@ -728,7 +732,7 @@ func AppendCanonicalTxNums(tx kv.RwTx, from uint64) (err error) { } // ReadTd retrieves a block's total difficulty corresponding to the hash. -func ReadTd(db kv.Getter, hash libcommon.Hash, number uint64) (*big.Int, error) { +func ReadTd(db kv.Getter, hash common.Hash, number uint64) (*big.Int, error) { data, err := db.GetOne(kv.HeaderTD, dbutils.HeaderKey(number, hash)) if err != nil { return nil, fmt.Errorf("failed ReadTd: %w", err) @@ -743,7 +747,7 @@ func ReadTd(db kv.Getter, hash libcommon.Hash, number uint64) (*big.Int, error) return td, nil } -func ReadTdByHash(db kv.Getter, hash libcommon.Hash) (*big.Int, error) { +func ReadTdByHash(db kv.Getter, hash common.Hash) (*big.Int, error) { headNumber := ReadHeaderNumber(db, hash) if headNumber == nil { return nil, nil @@ -752,7 +756,7 @@ func ReadTdByHash(db kv.Getter, hash libcommon.Hash) (*big.Int, error) { } // WriteTd stores the total difficulty of a block into the database. -func WriteTd(db kv.Putter, hash libcommon.Hash, number uint64, td *big.Int) error { +func WriteTd(db kv.Putter, hash common.Hash, number uint64, td *big.Int) error { data, err := rlp.EncodeToBytes(td) if err != nil { return fmt.Errorf("failed to RLP encode block total difficulty: %w", err) @@ -830,7 +834,7 @@ func ReadRawReceipts(db kv.Tx, blockNum uint64) types.Receipts { // The current implementation populates these metadata fields by reading the receipts' // corresponding block body, so if the block body is not found it will return nil even // if the receipt itself is stored. -func ReadReceipts(db kv.Tx, block *types.Block, senders []libcommon.Address) types.Receipts { +func ReadReceipts(db kv.Tx, block *types.Block, senders []common.Address) types.Receipts { if block == nil { return nil } @@ -954,7 +958,7 @@ func ReceiptsAvailableFrom(tx kv.Tx) (uint64, error) { // // Note, due to concurrent download of header and block body the header and thus // canonical hash can be stored in the database but the body data not (yet). -func ReadBlock(tx kv.Getter, hash libcommon.Hash, number uint64) *types.Block { +func ReadBlock(tx kv.Getter, hash common.Hash, number uint64) *types.Block { header := ReadHeader(tx, hash, number) if header == nil { return nil @@ -968,12 +972,12 @@ func ReadBlock(tx kv.Getter, hash libcommon.Hash, number uint64) *types.Block { // HasBlock - is more efficient than ReadBlock because doesn't read transactions. // It's is not equivalent of HasHeader because headers and bodies written by different stages -func HasBlock(db kv.Getter, hash libcommon.Hash, number uint64) bool { +func HasBlock(db kv.Getter, hash common.Hash, number uint64) bool { body := ReadStorageBodyRLP(db, hash, number) return len(body) > 0 } -func ReadBlockWithSenders(db kv.Getter, hash libcommon.Hash, number uint64) (*types.Block, []libcommon.Address, error) { +func ReadBlockWithSenders(db kv.Getter, hash common.Hash, number uint64) (*types.Block, []common.Address, error) { block := ReadBlock(db, hash, number) if block == nil { return nil, nil, nil @@ -1051,7 +1055,7 @@ func PruneBlocks(tx kv.RwTx, blockTo uint64, blocksDeleteLimit int) error { } // Copying k because otherwise the same memory will be reused // for the next key and Delete below will end up deleting 1 more record than required - kCopy := common.CopyBytes(k) + kCopy := common.Copy(k) if err = tx.Delete(kv.Senders, kCopy); err != nil { return err } @@ -1066,6 +1070,74 @@ func PruneBlocks(tx kv.RwTx, blockTo uint64, blocksDeleteLimit int) error { return nil } +// PruneBorBlocks - delete [1, to) old blocks after moving it to snapshots. +// keeps genesis in db: [1, to) +// doesn't change sequences of kv.EthTx and kv.NonCanonicalTxs +// doesn't delete Receipts, Senders, Canonical markers, TotalDifficulty +func PruneBorBlocks(tx kv.RwTx, blockTo uint64, blocksDeleteLimit int) error { + c, err := tx.Cursor(kv.BorEventNums) + if err != nil { + return err + } + defer c.Close() + var blockNumBytes [8]byte + binary.BigEndian.PutUint64(blockNumBytes[:], blockTo) + k, v, err := c.Seek(blockNumBytes[:]) + if err != nil { + return err + } + var eventIdTo uint64 = math.MaxUint64 + if k != nil { + eventIdTo = binary.BigEndian.Uint64(v) + } + c1, err := tx.RwCursor(kv.BorEvents) + if err != nil { + return err + } + defer c1.Close() + counter := blocksDeleteLimit + for k, _, err = c1.First(); err == nil && k != nil && counter > 0; k, _, err = c1.Next() { + eventId := binary.BigEndian.Uint64(k) + if eventId >= eventIdTo { + break + } + if err = c1.DeleteCurrent(); err != nil { + return err + } + counter-- + } + if err != nil { + return err + } + var firstSpanToKeep uint64 + if blockTo > zerothSpanEnd { + firstSpanToKeep = 1 + (blockTo-zerothSpanEnd-1)/spanLength + } + c2, err := tx.RwCursor(kv.BorSpans) + if err != nil { + return err + } + defer c2.Close() + counter = blocksDeleteLimit + for k, _, err := c2.First(); err == nil && k != nil && counter > 0; k, _, err = c2.Next() { + spanId := binary.BigEndian.Uint64(k) + if spanId >= firstSpanToKeep { + break + } + if err = c2.DeleteCurrent(); err != nil { + return err + } + counter-- + } + return nil +} + +func TruncateCanonicalChain(ctx context.Context, db kv.RwTx, from uint64) error { + return db.ForEach(kv.HeaderCanonical, hexutility.EncodeTs(from), func(k, _ []byte) error { + return db.Delete(kv.HeaderCanonical, k) + }) +} + // TruncateBlocks - delete block >= blockFrom // does decrement sequences of kv.EthTx and kv.NonCanonicalTxs // doesn't delete Receipts, Senders, Canonical markers, TotalDifficulty @@ -1091,7 +1163,7 @@ func TruncateBlocks(ctx context.Context, tx kv.RwTx, blockFrom uint64) error { } // Copying k because otherwise the same memory will be reused // for the next key and Delete below will end up deleting 1 more record than required - kCopy := common.CopyBytes(k) + kCopy := common.Copy(k) if err := tx.Delete(kv.Senders, kCopy); err != nil { return err } @@ -1106,7 +1178,7 @@ func TruncateBlocks(ctx context.Context, tx kv.RwTx, blockFrom uint64) error { case <-ctx.Done(): return ctx.Err() case <-logEvery.C: - log.Info("TruncateBlocks", "block", binary.BigEndian.Uint64(k)) + log.Info("TruncateBlocks", "block", binary.BigEndian.Uint64(kCopy)) default: } return nil @@ -1144,14 +1216,14 @@ func ReadHeaderByNumber(db kv.Getter, number uint64) *types.Header { log.Error("ReadCanonicalHash failed", "err", err) return nil } - if hash == (libcommon.Hash{}) { + if hash == (common.Hash{}) { return nil } return ReadHeader(db, hash, number) } -func ReadHeaderByHash(db kv.Getter, hash libcommon.Hash) (*types.Header, error) { +func ReadHeaderByHash(db kv.Getter, hash common.Hash) (*types.Header, error) { number := ReadHeaderNumber(db, hash) if number == nil { return nil, nil @@ -1169,54 +1241,54 @@ func DeleteNewerEpochs(tx kv.RwTx, number uint64) error { return tx.Delete(kv.Epoch, k) }) } -func ReadEpoch(tx kv.Tx, blockNum uint64, blockHash libcommon.Hash) (transitionProof []byte, err error) { +func ReadEpoch(tx kv.Tx, blockNum uint64, blockHash common.Hash) (transitionProof []byte, err error) { k := make([]byte, dbutils.NumberLength+length.Hash) binary.BigEndian.PutUint64(k, blockNum) copy(k[dbutils.NumberLength:], blockHash[:]) return tx.GetOne(kv.Epoch, k) } -func FindEpochBeforeOrEqualNumber(tx kv.Tx, n uint64) (blockNum uint64, blockHash libcommon.Hash, transitionProof []byte, err error) { +func FindEpochBeforeOrEqualNumber(tx kv.Tx, n uint64) (blockNum uint64, blockHash common.Hash, transitionProof []byte, err error) { c, err := tx.Cursor(kv.Epoch) if err != nil { - return 0, libcommon.Hash{}, nil, err + return 0, common.Hash{}, nil, err } defer c.Close() seek := hexutility.EncodeTs(n) k, v, err := c.Seek(seek) if err != nil { - return 0, libcommon.Hash{}, nil, err + return 0, common.Hash{}, nil, err } if k != nil { num := binary.BigEndian.Uint64(k) if num == n { - return n, libcommon.BytesToHash(k[dbutils.NumberLength:]), v, nil + return n, common.BytesToHash(k[dbutils.NumberLength:]), v, nil } } k, v, err = c.Prev() if err != nil { - return 0, libcommon.Hash{}, nil, err + return 0, common.Hash{}, nil, err } if k == nil { - return 0, libcommon.Hash{}, nil, nil + return 0, common.Hash{}, nil, nil } - return binary.BigEndian.Uint64(k), libcommon.BytesToHash(k[dbutils.NumberLength:]), v, nil + return binary.BigEndian.Uint64(k), common.BytesToHash(k[dbutils.NumberLength:]), v, nil } -func WriteEpoch(tx kv.RwTx, blockNum uint64, blockHash libcommon.Hash, transitionProof []byte) (err error) { +func WriteEpoch(tx kv.RwTx, blockNum uint64, blockHash common.Hash, transitionProof []byte) (err error) { k := make([]byte, dbutils.NumberLength+length.Hash) binary.BigEndian.PutUint64(k, blockNum) copy(k[dbutils.NumberLength:], blockHash[:]) return tx.Put(kv.Epoch, k, transitionProof) } -func ReadPendingEpoch(tx kv.Tx, blockNum uint64, blockHash libcommon.Hash) (transitionProof []byte, err error) { +func ReadPendingEpoch(tx kv.Tx, blockNum uint64, blockHash common.Hash) (transitionProof []byte, err error) { k := make([]byte, 8+32) binary.BigEndian.PutUint64(k, blockNum) copy(k[8:], blockHash[:]) return tx.GetOne(kv.PendingEpoch, k) } -func WritePendingEpoch(tx kv.RwTx, blockNum uint64, blockHash libcommon.Hash, transitionProof []byte) (err error) { +func WritePendingEpoch(tx kv.RwTx, blockNum uint64, blockHash common.Hash, transitionProof []byte) (err error) { k := make([]byte, 8+32) binary.BigEndian.PutUint64(k, blockNum) copy(k[8:], blockHash[:]) @@ -1229,7 +1301,7 @@ func Transitioned(db kv.Getter, blockNum uint64, terminalTotalDifficulty *big.In return false, nil } - if terminalTotalDifficulty.Cmp(libcommon.Big0) == 0 { + if terminalTotalDifficulty.Cmp(common.Big0) == 0 { return true, nil } header := ReadHeaderByNumber(db, blockNum) @@ -1237,7 +1309,7 @@ func Transitioned(db kv.Getter, blockNum uint64, terminalTotalDifficulty *big.In return false, nil } - if header.Difficulty.Cmp(libcommon.Big0) == 0 { + if header.Difficulty.Cmp(common.Big0) == 0 { return true, nil } @@ -1250,7 +1322,7 @@ func Transitioned(db kv.Getter, blockNum uint64, terminalTotalDifficulty *big.In } // IsPosBlock returns true if the block number comes after POS transition or is the last POW block -func IsPosBlock(db kv.Getter, blockHash libcommon.Hash) (trans bool, err error) { +func IsPosBlock(db kv.Getter, blockHash common.Hash) (trans bool, err error) { header, err := ReadHeaderByHash(db, blockHash) if err != nil { return false, err @@ -1259,7 +1331,7 @@ func IsPosBlock(db kv.Getter, blockHash libcommon.Hash) (trans bool, err error) return false, nil } - return header.Difficulty.Cmp(libcommon.Big0) == 0, nil + return header.Difficulty.Cmp(common.Big0) == 0, nil } var SnapshotsKey = []byte("snapshots") @@ -1324,7 +1396,7 @@ func PruneTable(tx kv.RwTx, table string, pruneTo uint64, ctx context.Context, l } select { case <-ctx.Done(): - return common2.ErrStopped + return common.ErrStopped default: } if err = c.DeleteCurrent(); err != nil { @@ -1353,7 +1425,7 @@ func PruneTableDupSort(tx kv.RwTx, table string, logPrefix string, pruneTo uint6 case <-logEvery.C: log.Info(fmt.Sprintf("[%s]", logPrefix), "table", table, "block", blockNum) case <-ctx.Done(): - return common2.ErrStopped + return common.ErrStopped default: } if err = tx.Delete(table, k); err != nil { @@ -1363,22 +1435,22 @@ func PruneTableDupSort(tx kv.RwTx, table string, logPrefix string, pruneTo uint6 return nil } -func ReadVerkleRoot(tx kv.Tx, blockNum uint64) (libcommon.Hash, error) { +func ReadVerkleRoot(tx kv.Tx, blockNum uint64) (common.Hash, error) { root, err := tx.GetOne(kv.VerkleRoots, hexutility.EncodeTs(blockNum)) if err != nil { - return libcommon.Hash{}, err + return common.Hash{}, err } - return libcommon.BytesToHash(root), nil + return common.BytesToHash(root), nil } -func WriteVerkleRoot(tx kv.RwTx, blockNum uint64, root libcommon.Hash) error { +func WriteVerkleRoot(tx kv.RwTx, blockNum uint64, root common.Hash) error { return tx.Put(kv.VerkleRoots, hexutility.EncodeTs(blockNum), root[:]) } func WriteVerkleNode(tx kv.RwTx, node verkle.VerkleNode) error { var ( - root libcommon.Hash + root common.Hash encoded []byte err error ) @@ -1391,7 +1463,7 @@ func WriteVerkleNode(tx kv.RwTx, node verkle.VerkleNode) error { return tx.Put(kv.VerkleTrie, root[:], encoded) } -func ReadVerkleNode(tx kv.RwTx, root libcommon.Hash) (verkle.VerkleNode, error) { +func ReadVerkleNode(tx kv.RwTx, root common.Hash) (verkle.VerkleNode, error) { encoded, err := tx.GetOne(kv.VerkleTrie, root[:]) if err != nil { return nil, err diff --git a/core/rawdb/accessors_chain_test.go b/core/rawdb/accessors_chain_test.go index a317d7b133e..9b6e9a84e77 100644 --- a/core/rawdb/accessors_chain_test.go +++ b/core/rawdb/accessors_chain_test.go @@ -41,6 +41,7 @@ import ( // Tests block header storage and retrieval operations. func TestHeaderStorage(t *testing.T) { + t.Parallel() m := mock.Mock(t) tx, err := m.DB.BeginRw(m.Ctx) require.NoError(t, err) @@ -81,6 +82,7 @@ func TestHeaderStorage(t *testing.T) { // Tests block body storage and retrieval operations. func TestBodyStorage(t *testing.T) { + t.Parallel() m := mock.Mock(t) tx, err := m.DB.BeginRw(m.Ctx) require.NoError(t, err) @@ -149,6 +151,7 @@ func TestBodyStorage(t *testing.T) { // Tests block storage and retrieval operations. func TestBlockStorage(t *testing.T) { + t.Parallel() m := mock.Mock(t) require := require.New(t) tx, err := m.DB.BeginRw(m.Ctx) @@ -259,6 +262,7 @@ func TestBlockStorage(t *testing.T) { // Tests that partial block contents don't get reassembled into full blocks. func TestPartialBlockStorage(t *testing.T) { + t.Parallel() m := mock.Mock(t) tx, err := m.DB.BeginRw(m.Ctx) require.NoError(t, err) @@ -305,6 +309,7 @@ func TestPartialBlockStorage(t *testing.T) { // Tests block total difficulty storage and retrieval operations. func TestTdStorage(t *testing.T) { + t.Parallel() m := mock.Mock(t) tx, err := m.DB.BeginRw(m.Ctx) require.NoError(t, err) @@ -349,6 +354,7 @@ func TestTdStorage(t *testing.T) { // Tests that canonical numbers can be mapped to hashes and retrieved. func TestCanonicalMappingStorage(t *testing.T) { + t.Parallel() m := mock.Mock(t) tx, err := m.DB.BeginRw(m.Ctx) require.NoError(t, err) @@ -394,6 +400,7 @@ func TestCanonicalMappingStorage(t *testing.T) { // Tests that head headers and head blocks can be assigned, individually. func TestHeadStorage2(t *testing.T) { + t.Parallel() _, db := memdb.NewTestTx(t) blockHead := types.NewBlockWithHeader(&types.Header{Extra: []byte("test block header")}) @@ -421,6 +428,7 @@ func TestHeadStorage2(t *testing.T) { // Tests that head headers and head blocks can be assigned, individually. func TestHeadStorage(t *testing.T) { + t.Parallel() m := mock.Mock(t) tx, err := m.DB.BeginRw(m.Ctx) require.NoError(t, err) @@ -444,6 +452,7 @@ func TestHeadStorage(t *testing.T) { // Tests that receipts associated with a single block can be stored and retrieved. func TestBlockReceiptStorage(t *testing.T) { + t.Parallel() m := mock.Mock(t) tx, err := m.DB.BeginRw(m.Ctx) require.NoError(t, err) @@ -536,6 +545,7 @@ func TestBlockReceiptStorage(t *testing.T) { // Tests block storage and retrieval operations with withdrawals. func TestBlockWithdrawalsStorage(t *testing.T) { + t.Parallel() m := mock.Mock(t) require := require.New(t) tx, err := m.DB.BeginRw(m.Ctx) @@ -672,6 +682,7 @@ func TestBlockWithdrawalsStorage(t *testing.T) { // Tests pre-shanghai body to make sure withdrawals doesn't panic func TestPreShanghaiBodyNoPanicOnWithdrawals(t *testing.T) { + t.Parallel() require := require.New(t) const bodyRlp = "f902bef8bef85d0101019471562b71999873db5b286df957af199ec94617f701801ca023f4aad9a71341d2990012a732366c3bc8a4ce9ff54c05546a9487445ac67692a0290d3a1411c2a675a4c12c98af60e34ea4d689f0ddfe0250a9e09c0819dfe3bff85d0201029471562b71999873db5b286df957af199ec94617f701801ca0f824d7edc241758aca948ff34d3797e4e31003f76cc9e05fb9c19e967fc48113a070e1389f0fa23fe765a04b23e98f98db6d630e3a035c1c7c968142ababb85a1df901fbf901f8a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808080808b7465737420686561646572a00000000000000000000000000000000000000000000000000000000000000000880000000000000000" @@ -686,6 +697,7 @@ func TestPreShanghaiBodyNoPanicOnWithdrawals(t *testing.T) { // Tests pre-shanghai bodyForStorage to make sure withdrawals doesn't panic func TestPreShanghaiBodyForStorageNoPanicOnWithdrawals(t *testing.T) { + t.Parallel() require := require.New(t) const bodyForStorageRlp = "c38002c0" @@ -700,6 +712,7 @@ func TestPreShanghaiBodyForStorageNoPanicOnWithdrawals(t *testing.T) { // Tests shanghai bodyForStorage to make sure withdrawals are present func TestShanghaiBodyForStorageHasWithdrawals(t *testing.T) { + t.Parallel() require := require.New(t) const bodyForStorageRlp = "f83f8002c0f83adc0f82157c94ff000000000000000000000000000000000000008203e8dc1082157d94ff000000000000000000000000000000000000008203e9" @@ -715,6 +728,7 @@ func TestShanghaiBodyForStorageHasWithdrawals(t *testing.T) { // Tests shanghai bodyForStorage to make sure when no withdrawals the slice is empty (not nil) func TestShanghaiBodyForStorageNoWithdrawals(t *testing.T) { + t.Parallel() require := require.New(t) const bodyForStorageRlp = "c48002c0c0c0" diff --git a/core/rawdb/accessors_indexes_test.go b/core/rawdb/accessors_indexes_test.go index dc7283bd653..6901a6c5eb3 100644 --- a/core/rawdb/accessors_indexes_test.go +++ b/core/rawdb/accessors_indexes_test.go @@ -34,6 +34,7 @@ import ( // Tests that positional lookup metadata can be stored and retrieved. func TestLookupStorage(t *testing.T) { + t.Parallel() tests := []struct { name string writeTxLookupEntries func(kv.Putter, *types.Block) @@ -48,7 +49,9 @@ func TestLookupStorage(t *testing.T) { } for _, tc := range tests { + tc := tc t.Run(tc.name, func(t *testing.T) { + t.Parallel() m := mock.Mock(t) br := m.BlockReader tx, err := m.DB.BeginRw(m.Ctx) diff --git a/core/rawdb/blockio/block_writer.go b/core/rawdb/blockio/block_writer.go index a4a9e7702f0..73264cda1fa 100644 --- a/core/rawdb/blockio/block_writer.go +++ b/core/rawdb/blockio/block_writer.go @@ -3,13 +3,13 @@ package blockio import ( "context" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/turbo/backup" "github.com/ledgerwatch/log/v3" @@ -109,3 +109,11 @@ func (w *BlockWriter) TruncateBodies(db kv.RoDB, tx kv.RwTx, from uint64) error func (w *BlockWriter) PruneBlocks(ctx context.Context, tx kv.RwTx, blockTo uint64, blocksDeleteLimit int) error { return rawdb.PruneBlocks(tx, blockTo, blocksDeleteLimit) } + +// PruneBorBlocks - [1, to) old blocks after moving it to snapshots. +// keeps genesis in db +// doesn't change sequences of kv.EthTx and kv.NonCanonicalTxs +// doesn't delete Receipts, Senders, Canonical markers, TotalDifficulty +func (w *BlockWriter) PruneBorBlocks(ctx context.Context, tx kv.RwTx, blockTo uint64, blocksDeleteLimit int) error { + return rawdb.PruneBorBlocks(tx, blockTo, blocksDeleteLimit) +} diff --git a/core/rawdb/bor_receipts.go b/core/rawdb/bor_receipts.go index 35027124ee3..d05c25f1a44 100644 --- a/core/rawdb/bor_receipts.go +++ b/core/rawdb/bor_receipts.go @@ -4,6 +4,7 @@ import ( "bytes" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -11,7 +12,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/ethdb/cbor" "github.com/ledgerwatch/erigon/rlp" @@ -164,7 +164,7 @@ func ReadBorTransaction(db kv.Tx, borTxHash libcommon.Hash) (types.Transaction, return borTx, err } -func ReadBorTxLookupEntry(db kv.Tx, borTxHash libcommon.Hash) (*uint64, error) { +func ReadBorTxLookupEntry(db kv.Getter, borTxHash libcommon.Hash) (*uint64, error) { blockNumBytes, err := db.GetOne(kv.BorTxLookup, borTxHash.Bytes()) if err != nil { return nil, err diff --git a/core/rawdb/rawdbreset/reset_stages.go b/core/rawdb/rawdbreset/reset_stages.go index 93938e78e90..cb5e238b8c8 100644 --- a/core/rawdb/rawdbreset/reset_stages.go +++ b/core/rawdb/rawdbreset/reset_stages.go @@ -98,6 +98,18 @@ func ResetBlocks(tx kv.RwTx, db kv.RoDB, agg *state.AggregatorV3, return nil } +func ResetBorHeimdall(ctx context.Context, tx kv.RwTx) error { + if err := tx.ClearBucket(kv.BorEventNums); err != nil { + return err + } + if err := tx.ClearBucket(kv.BorEvents); err != nil { + return err + } + if err := tx.ClearBucket(kv.BorSpans); err != nil { + return err + } + return clearStageProgress(tx, stages.BorHeimdall) +} func ResetSenders(ctx context.Context, db kv.RwDB, tx kv.RwTx) error { if err := backup.ClearTables(ctx, db, tx, kv.Senders); err != nil { return nil diff --git a/core/rlp_test.go b/core/rlp_test.go index 8ef1c13ba83..65b98dbff43 100644 --- a/core/rlp_test.go +++ b/core/rlp_test.go @@ -73,6 +73,7 @@ func getBlock(tb testing.TB, transactions int, uncles int, dataSize int, tmpDir // TestRlpIterator tests that individual transactions can be picked out // from blocks without full unmarshalling/marshalling func TestRlpIterator(t *testing.T) { + t.Parallel() for _, tt := range []struct { txs int uncles int diff --git a/core/skip_analysis.go b/core/skip_analysis.go index 96c9226bdd9..55d38fc15ec 100644 --- a/core/skip_analysis.go +++ b/core/skip_analysis.go @@ -20,8 +20,7 @@ import ( "sort" "github.com/ledgerwatch/erigon-lib/chain" - - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon-lib/chain/networkname" ) // SkipAnalysis function tells us whether we can skip performing jumpdest analysis diff --git a/core/state/access_list_test.go b/core/state/access_list_test.go index 03ad2511203..10b6dab49f9 100644 --- a/core/state/access_list_test.go +++ b/core/state/access_list_test.go @@ -63,6 +63,7 @@ func verifySlots(t *testing.T, s *IntraBlockState, addrString string, slotString } func TestAccessList(t *testing.T) { + t.Parallel() // Some helpers addr := common.HexToAddress slot := common.HexToHash diff --git a/core/state/cached_reader2.go b/core/state/cached_reader2.go index 58e63b4620f..915544319c8 100644 --- a/core/state/cached_reader2.go +++ b/core/state/cached_reader2.go @@ -3,12 +3,12 @@ package state import ( "bytes" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcache" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) diff --git a/core/state/change_set_writer.go b/core/state/change_set_writer.go index b3da878448f..59de3a85f86 100644 --- a/core/state/change_set_writer.go +++ b/core/state/change_set_writer.go @@ -4,13 +4,13 @@ import ( "fmt" "github.com/holiman/uint256" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" historyv22 "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -43,7 +43,7 @@ func NewChangeSetWriterPlain(db kv.RwTx, blockNumber uint64) *ChangeSetWriter { func (w *ChangeSetWriter) GetAccountChanges() (*historyv22.ChangeSet, error) { cs := historyv22.NewAccountChangeSet() for address, val := range w.accountChanges { - if err := cs.Add(common.CopyBytes(address[:]), val); err != nil { + if err := cs.Add(libcommon.CopyBytes(address[:]), val); err != nil { return nil, err } } @@ -71,6 +71,8 @@ func accountsEqual(a1, a2 *accounts.Account) bool { return false } else if a1.Balance.Cmp(&a2.Balance) != 0 { return false + } else if a1.Incarnation != a2.Incarnation { + return false } if a1.IsEmptyCodeHash() { if !a2.IsEmptyCodeHash() { diff --git a/core/state/database_test.go b/core/state/database_test.go index ce50eb03bcd..534605ec278 100644 --- a/core/state/database_test.go +++ b/core/state/database_test.go @@ -143,7 +143,7 @@ func TestCreate2Revive(t *testing.T) { require.NoError(t, err) // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -157,7 +157,7 @@ func TestCreate2Revive(t *testing.T) { require.NoError(t, err) // BLOCK 2 - if err = m.InsertChain(chain.Slice(1, 2), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, 2)); err != nil { t.Fatal(err) } @@ -179,7 +179,7 @@ func TestCreate2Revive(t *testing.T) { require.NoError(t, err) // BLOCK 3 - if err = m.InsertChain(chain.Slice(2, 3), nil); err != nil { + if err = m.InsertChain(chain.Slice(2, 3)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -192,7 +192,7 @@ func TestCreate2Revive(t *testing.T) { require.NoError(t, err) // BLOCK 4 - if err = m.InsertChain(chain.Slice(3, 4), nil); err != nil { + if err = m.InsertChain(chain.Slice(3, 4)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -349,7 +349,7 @@ func TestCreate2Polymorth(t *testing.T) { require.NoError(t, err) // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -364,7 +364,7 @@ func TestCreate2Polymorth(t *testing.T) { require.NoError(t, err) // BLOCK 2 - if err = m.InsertChain(chain.Slice(1, 2), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, 2)); err != nil { t.Fatal(err) } @@ -384,7 +384,7 @@ func TestCreate2Polymorth(t *testing.T) { require.NoError(t, err) // BLOCK 3 - if err = m.InsertChain(chain.Slice(2, 3), nil); err != nil { + if err = m.InsertChain(chain.Slice(2, 3)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -397,7 +397,7 @@ func TestCreate2Polymorth(t *testing.T) { require.NoError(t, err) // BLOCK 4 - if err = m.InsertChain(chain.Slice(3, 4), nil); err != nil { + if err = m.InsertChain(chain.Slice(3, 4)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -417,7 +417,7 @@ func TestCreate2Polymorth(t *testing.T) { require.NoError(t, err) // BLOCK 5 - if err = m.InsertChain(chain.Slice(4, 5), nil); err != nil { + if err = m.InsertChain(chain.Slice(4, 5)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -438,6 +438,7 @@ func TestCreate2Polymorth(t *testing.T) { } func TestReorgOverSelfDestruct(t *testing.T) { + t.Parallel() // Configure and generate a sample block chain var ( key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") @@ -534,7 +535,7 @@ func TestReorgOverSelfDestruct(t *testing.T) { }) require.NoError(t, err) // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -553,7 +554,7 @@ func TestReorgOverSelfDestruct(t *testing.T) { require.NoError(t, err) // BLOCKS 2 + 3 - if err = m.InsertChain(chain.Slice(1, chain.Length()), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, chain.Length())); err != nil { t.Fatal(err) } @@ -567,7 +568,7 @@ func TestReorgOverSelfDestruct(t *testing.T) { require.NoError(t, err) // REORG of block 2 and 3, and insert new (empty) BLOCK 2, 3, and 4 - if err = m.InsertChain(longerChain.Slice(1, 4), nil); err != nil { + if err = m.InsertChain(longerChain.Slice(1, 4)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -586,6 +587,7 @@ func TestReorgOverSelfDestruct(t *testing.T) { } func TestReorgOverStateChange(t *testing.T) { + t.Parallel() // Configure and generate a sample block chain var ( key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") @@ -675,7 +677,7 @@ func TestReorgOverStateChange(t *testing.T) { require.NoError(t, err) // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -694,12 +696,12 @@ func TestReorgOverStateChange(t *testing.T) { require.NoError(t, err) // BLOCK 2 - if err = m.InsertChain(chain.Slice(1, chain.Length()), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, chain.Length())); err != nil { t.Fatal(err) } // REORG of block 2 and 3, and insert new (empty) BLOCK 2, 3, and 4 - if err = m.InsertChain(longerChain.Slice(1, 3), nil); err != nil { + if err = m.InsertChain(longerChain.Slice(1, 3)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -734,6 +736,7 @@ func (b BucketsStats) Size() uint64 { } func TestCreateOnExistingStorage(t *testing.T) { + t.Parallel() // Configure and generate a sample block chain var ( key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") @@ -802,7 +805,7 @@ func TestCreateOnExistingStorage(t *testing.T) { require.NoError(t, err) // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -824,6 +827,7 @@ func TestCreateOnExistingStorage(t *testing.T) { } func TestReproduceCrash(t *testing.T) { + t.Parallel() // This example was taken from Ropsten contract that used to cause a crash // it is created in the block 598915 and then there are 3 transactions modifying // its storage in the same block: @@ -865,6 +869,7 @@ func TestReproduceCrash(t *testing.T) { } } func TestEip2200Gas(t *testing.T) { + t.Parallel() // Configure and generate a sample block chain var ( key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") @@ -938,7 +943,7 @@ func TestEip2200Gas(t *testing.T) { require.NoError(t, err) // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -960,6 +965,7 @@ func TestEip2200Gas(t *testing.T) { // Create contract, drop trie, reload trie from disk and add block with contract call func TestWrongIncarnation(t *testing.T) { + t.Parallel() // Configure and generate a sample block chain var ( key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") @@ -1024,7 +1030,7 @@ func TestWrongIncarnation(t *testing.T) { require.NoError(t, err) // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -1051,7 +1057,7 @@ func TestWrongIncarnation(t *testing.T) { require.NoError(t, err) // BLOCKS 2 - if err = m.InsertChain(chain.Slice(1, 2), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, 2)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -1072,6 +1078,7 @@ func TestWrongIncarnation(t *testing.T) { // create acc, deploy to it contract, reorg to state without contract func TestWrongIncarnation2(t *testing.T) { + t.Parallel() // Configure and generate a sample block chain var ( key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") @@ -1169,12 +1176,12 @@ func TestWrongIncarnation2(t *testing.T) { require.NoError(t, err) // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } // BLOCKS 2 - if err = m.InsertChain(chain.Slice(1, chain.Length()), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, chain.Length())); err != nil { t.Fatal(err) } @@ -1199,7 +1206,7 @@ func TestWrongIncarnation2(t *testing.T) { }) require.NoError(t, err) // REORG of block 2 and 3, and insert new (empty) BLOCK 2, 3, and 4 - if err = m.InsertChain(longerChain.Slice(1, longerChain.Length()), nil); err != nil { + if err = m.InsertChain(longerChain.Slice(1, longerChain.Length())); err != nil { t.Fatal(err) } @@ -1221,6 +1228,7 @@ func TestWrongIncarnation2(t *testing.T) { } func TestChangeAccountCodeBetweenBlocks(t *testing.T) { + t.Parallel() contract := libcommon.HexToAddress("0x71dd1027069078091B3ca48093B00E4735B20624") _, tx := memdb.NewTestTx(t) @@ -1258,6 +1266,7 @@ func TestChangeAccountCodeBetweenBlocks(t *testing.T) { // TestCacheCodeSizeSeparately makes sure that we don't store CodeNodes for code sizes func TestCacheCodeSizeSeparately(t *testing.T) { + t.Parallel() contract := libcommon.HexToAddress("0x71dd1027069078091B3ca48093B00E4735B20624") //root := libcommon.HexToHash("0xb939e5bcf5809adfb87ab07f0795b05b95a1d64a90f0eddd0c3123ac5b433854") @@ -1290,6 +1299,7 @@ func TestCacheCodeSizeSeparately(t *testing.T) { // TestCacheCodeSizeInTrie makes sure that we dont just read from the DB all the time func TestCacheCodeSizeInTrie(t *testing.T) { + t.Parallel() t.Skip("switch to TG state readers/writers") contract := libcommon.HexToAddress("0x71dd1027069078091B3ca48093B00E4735B20624") root := libcommon.HexToHash("0xb939e5bcf5809adfb87ab07f0795b05b95a1d64a90f0eddd0c3123ac5b433854") @@ -1332,6 +1342,7 @@ func TestCacheCodeSizeInTrie(t *testing.T) { } func TestRecreateAndRewind(t *testing.T) { + t.Parallel() // Configure and generate a sample block chain var ( key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") @@ -1369,7 +1380,7 @@ func TestRecreateAndRewind(t *testing.T) { case 1: // Calculate the address of the Phoenix and create handle to phoenix contract var codeHash libcommon.Hash - if codeHash, err = common.HashData(common.FromHex(contracts.PhoenixBin)); err != nil { + if codeHash, err = libcommon.HashData(common.FromHex(contracts.PhoenixBin)); err != nil { panic(err) } phoenixAddress = crypto.CreateAddress2(reviveAddress, [32]byte{}, codeHash.Bytes()) @@ -1431,7 +1442,7 @@ func TestRecreateAndRewind(t *testing.T) { case 1: // Calculate the address of the Phoenix and create handle to phoenix contract var codeHash libcommon.Hash - if codeHash, err = common.HashData(common.FromHex(contracts.PhoenixBin)); err != nil { + if codeHash, err = libcommon.HashData(common.FromHex(contracts.PhoenixBin)); err != nil { panic(err) } phoenixAddress = crypto.CreateAddress2(reviveAddress, [32]byte{}, codeHash.Bytes()) @@ -1472,7 +1483,7 @@ func TestRecreateAndRewind(t *testing.T) { } // BLOCKS 1 and 2 - if err = m.InsertChain(chain.Slice(0, 2), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 2)); err != nil { t.Fatal(err) } @@ -1493,7 +1504,7 @@ func TestRecreateAndRewind(t *testing.T) { require.NoError(t, err) // Block 3 and 4 - if err = m.InsertChain(chain.Slice(2, chain.Length()), nil); err != nil { + if err = m.InsertChain(chain.Slice(2, chain.Length())); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -1512,7 +1523,7 @@ func TestRecreateAndRewind(t *testing.T) { require.NoError(t, err) // Reorg - if err = m.InsertChain(longerChain, nil); err != nil { + if err = m.InsertChain(longerChain); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -1531,6 +1542,7 @@ func TestRecreateAndRewind(t *testing.T) { } func TestTxLookupUnwind(t *testing.T) { + t.Parallel() var ( key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") address = crypto.PubkeyToAddress(key.PublicKey) @@ -1572,10 +1584,10 @@ func TestTxLookupUnwind(t *testing.T) { if err != nil { t.Fatal(err) } - if err = m.InsertChain(chain1, nil); err != nil { + if err = m.InsertChain(chain1); err != nil { t.Fatal(err) } - if err = m.InsertChain(chain2, nil); err != nil { + if err = m.InsertChain(chain2); err != nil { t.Fatal(err) } var count uint64 diff --git a/core/state/db_state_reader.go b/core/state/db_state_reader.go index 21f91d5e981..11ba22559b8 100644 --- a/core/state/db_state_reader.go +++ b/core/state/db_state_reader.go @@ -3,13 +3,12 @@ package state import ( "bytes" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/VictoriaMetrics/fastcache" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -52,7 +51,7 @@ func (dbr *DbStateReader) ReadAccountData(address libcommon.Address) (*accounts. } if !ok { var err error - if addrHash, err1 := common.HashData(address[:]); err1 == nil { + if addrHash, err1 := libcommon.HashData(address[:]); err1 == nil { enc, err = dbr.db.GetOne(kv.HashedAccounts, addrHash[:]) } else { return nil, err1 @@ -75,11 +74,11 @@ func (dbr *DbStateReader) ReadAccountData(address libcommon.Address) (*accounts. } func (dbr *DbStateReader) ReadAccountStorage(address libcommon.Address, incarnation uint64, key *libcommon.Hash) ([]byte, error) { - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return nil, err } - seckey, err1 := common.HashData(key[:]) + seckey, err1 := libcommon.HashData(key[:]) if err1 != nil { return nil, err1 } diff --git a/core/state/db_state_writer.go b/core/state/db_state_writer.go index 0853e902062..33c3c762091 100644 --- a/core/state/db_state_writer.go +++ b/core/state/db_state_writer.go @@ -7,13 +7,13 @@ import ( "github.com/RoaringBitmap/roaring/roaring64" "github.com/holiman/uint256" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" + dbutils2 "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/ethdb" @@ -66,7 +66,7 @@ func (dsw *DbStateWriter) UpdateAccountData(address libcommon.Address, original, if err := dsw.csw.UpdateAccountData(address, original, account); err != nil { return err } - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return err } @@ -75,6 +75,15 @@ func (dsw *DbStateWriter) UpdateAccountData(address libcommon.Address, original, if err := dsw.db.Put(kv.HashedAccounts, addrHash[:], value); err != nil { return err } + + if account.Incarnation == 0 && original.Incarnation > 0 { + var b [8]byte + binary.BigEndian.PutUint64(b[:], original.Incarnation) + if err := dsw.db.Put(kv.IncarnationMap, address[:], b[:]); err != nil { + return err + } + } + return nil } @@ -82,7 +91,7 @@ func (dsw *DbStateWriter) DeleteAccount(address libcommon.Address, original *acc if err := dsw.csw.DeleteAccount(address, original); err != nil { return err } - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return err } @@ -107,12 +116,12 @@ func (dsw *DbStateWriter) UpdateAccountCode(address libcommon.Address, incarnati if err := dsw.db.Put(kv.Code, codeHash[:], code); err != nil { return err } - addrHash, err := common.HashData(address.Bytes()) + addrHash, err := libcommon.HashData(address.Bytes()) if err != nil { return err } //save contract to codeHash mapping - if err := dsw.db.Put(kv.ContractCode, dbutils.GenerateStoragePrefix(addrHash[:], incarnation), codeHash[:]); err != nil { + if err := dsw.db.Put(kv.ContractCode, dbutils2.GenerateStoragePrefix(addrHash[:], incarnation), codeHash[:]); err != nil { return err } return nil @@ -126,15 +135,15 @@ func (dsw *DbStateWriter) WriteAccountStorage(address libcommon.Address, incarna if *original == *value { return nil } - seckey, err := common.HashData(key[:]) + seckey, err := libcommon.HashData(key[:]) if err != nil { return err } - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return err } - compositeKey := dbutils.GenerateCompositeStorageKey(addrHash, incarnation, seckey) + compositeKey := dbutils2.GenerateCompositeStorageKey(addrHash, incarnation, seckey) v := value.Bytes() if len(v) == 0 { @@ -181,9 +190,9 @@ func (dsw *DbStateWriter) WriteHistory() error { func writeIndex(blocknum uint64, changes *historyv2.ChangeSet, bucket string, changeDb kv.RwTx) error { buf := bytes.NewBuffer(nil) for _, change := range changes.Changes { - k := dbutils.CompositeKeyWithoutIncarnation(change.Key) + k := dbutils2.CompositeKeyWithoutIncarnation(change.Key) - index, err := bitmapdb.Get64(changeDb, bucket, k, 0, math.MaxUint32) + index, err := bitmapdb.Get64(changeDb, bucket, k, math.MaxUint32, math.MaxUint32) if err != nil { return fmt.Errorf("find chunk failed: %w", err) } @@ -193,7 +202,7 @@ func writeIndex(blocknum uint64, changes *historyv2.ChangeSet, bucket string, ch if _, err = chunk.WriteTo(buf); err != nil { return err } - return changeDb.Put(bucket, chunkKey, common.CopyBytes(buf.Bytes())) + return changeDb.Put(bucket, chunkKey, libcommon.CopyBytes(buf.Bytes())) }); err != nil { return err } diff --git a/core/state/dump.go b/core/state/dump.go index d217b1442a7..fff70b3ddb6 100644 --- a/core/state/dump.go +++ b/core/state/dump.go @@ -20,6 +20,7 @@ import ( "bytes" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" @@ -28,7 +29,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/turbo/trie" @@ -273,7 +273,7 @@ func (d *Dumper) DumpToCollector(c DumpCollector, excludeCode, excludeStorage bo } loc := k[20:] account.Storage[libcommon.BytesToHash(loc).String()] = common.Bytes2Hex(vs) - h, _ := common.HashData(loc) + h, _ := libcommon.HashData(loc) t.Update(h.Bytes(), libcommon.Copy(vs)) } } else { @@ -284,7 +284,7 @@ func (d *Dumper) DumpToCollector(c DumpCollector, excludeCode, excludeStorage bo d.blockNumber, func(_, loc, vs []byte) (bool, error) { account.Storage[libcommon.BytesToHash(loc).String()] = common.Bytes2Hex(vs) - h, _ := common.HashData(loc) + h, _ := libcommon.HashData(loc) t.Update(h.Bytes(), libcommon.Copy(vs)) return true, nil }); err != nil { diff --git a/core/state/history_test.go b/core/state/history_test.go index ab243534bba..eb6e75154dd 100644 --- a/core/state/history_test.go +++ b/core/state/history_test.go @@ -8,6 +8,8 @@ import ( "strconv" "testing" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" + "github.com/davecgh/go-spew/spew" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -19,8 +21,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core/state/historyv2read" "github.com/ledgerwatch/erigon/core/types/accounts" @@ -29,6 +29,7 @@ import ( ) func TestMutationDeleteTimestamp(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) acc := make([]*accounts.Account, 10) @@ -88,6 +89,7 @@ func TestMutationDeleteTimestamp(t *testing.T) { } func TestMutationCommit(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) numOfAccounts := 5 @@ -292,6 +294,7 @@ func randomAccount(t *testing.T) (*accounts.Account, libcommon.Address) { */ func TestWalkAsOfStatePlain(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) emptyVal := uint256.NewInt(0) @@ -377,7 +380,7 @@ func TestWalkAsOfStatePlain(t *testing.T) { for _, addr := range addrs { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 2, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block2.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block2.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -393,7 +396,7 @@ func TestWalkAsOfStatePlain(t *testing.T) { } for _, addr := range addrs { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 4, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block4.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block4.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -424,7 +427,7 @@ func TestWalkAsOfStatePlain(t *testing.T) { } for _, addr := range addrs { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 6, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block6.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block6.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -452,6 +455,7 @@ func TestWalkAsOfStatePlain(t *testing.T) { } func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) emptyVal := uint256.NewInt(0) @@ -555,7 +559,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { copy(startKey[:length.Addr], addr1.Bytes()) if err := WalkAsOfStorage(tx, addr1, historyv2read.DefaultIncarnation, libcommon.Hash{}, 2, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block2.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block2.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -569,7 +573,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { Changes: make([]historyv2.Change, 0), } if err := WalkAsOfStorage(tx, addr1, historyv2read.DefaultIncarnation, libcommon.Hash{}, 4, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block4.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block4.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -597,7 +601,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { block4.Changes = block4.Changes[:0] for _, addr := range []libcommon.Address{addr1, addr2} { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 4, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block4.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block4.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -617,7 +621,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { Changes: make([]historyv2.Change, 0), } if err := WalkAsOfStorage(tx, addr1, historyv2read.DefaultIncarnation, libcommon.Hash{}, 6, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block6.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block6.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -641,7 +645,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { block6.Changes = block6.Changes[:0] for _, addr := range []libcommon.Address{addr1, addr2} { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, 6, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - err := block6.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)) + err := block6.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)) if err != nil { t.Fatal(err) } @@ -658,6 +662,7 @@ func TestWalkAsOfUsingFixedBytesStatePlain(t *testing.T) { } func TestWalkAsOfAccountPlain(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) emptyValAcc := accounts.NewAccount() @@ -681,7 +686,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) { addrHashes := make([]libcommon.Hash, numOfAccounts) for i := uint8(0); i < numOfAccounts; i++ { addrs[i] = libcommon.Address{i + 1} - addrHash, _ := common.HashData(addrs[i].Bytes()) + addrHash, _ := libcommon.HashData(addrs[i].Bytes()) addrHashes[i] = addrHash } @@ -730,7 +735,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) { }) if err := WalkAsOfAccounts(tx, libcommon.Address{}, 2, func(k []byte, v []byte) (b bool, e error) { - innerErr := block2.Add(common.CopyBytes(k), common.CopyBytes(v)) + innerErr := block2.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v)) if innerErr != nil { t.Fatal(innerErr) } @@ -762,7 +767,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) { } if err := WalkAsOfAccounts(tx, libcommon.Address{}, 4, func(k []byte, v []byte) (b bool, e error) { - innerErr := block4.Add(common.CopyBytes(k), common.CopyBytes(v)) + innerErr := block4.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v)) if innerErr != nil { t.Fatal(innerErr) } @@ -794,7 +799,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) { } if err := WalkAsOfAccounts(tx, libcommon.Address{}, 6, func(k []byte, v []byte) (b bool, e error) { - innerErr := block6.Add(common.CopyBytes(k), common.CopyBytes(v)) + innerErr := block6.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v)) if innerErr != nil { t.Fatal(innerErr) } @@ -806,6 +811,7 @@ func TestWalkAsOfAccountPlain(t *testing.T) { } func TestWalkAsOfAccountPlain_WithChunks(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) emptyValAcc := accounts.NewAccount() @@ -829,7 +835,7 @@ func TestWalkAsOfAccountPlain_WithChunks(t *testing.T) { addrHashes := make([]libcommon.Hash, numOfAccounts) for i := uint8(0); i < numOfAccounts; i++ { addrs[i] = libcommon.Address{i + 1} - addrHash, _ := common.HashData(addrs[i].Bytes()) + addrHash, _ := libcommon.HashData(addrs[i].Bytes()) addrHashes[i] = addrHash } @@ -923,7 +929,7 @@ func TestWalkAsOfAccountPlain_WithChunks(t *testing.T) { } if err := WalkAsOfAccounts(tx, libcommon.Address{}, blockNum, func(k []byte, v []byte) (b bool, e error) { - innerErr := obtained.Add(common.CopyBytes(k), common.CopyBytes(v)) + innerErr := obtained.Add(libcommon.CopyBytes(k), libcommon.CopyBytes(v)) if innerErr != nil { t.Fatal(innerErr) } @@ -957,6 +963,7 @@ func TestWalkAsOfAccountPlain_WithChunks(t *testing.T) { } func TestWalkAsOfStoragePlain_WithChunks(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) numOfAccounts := uint8(4) @@ -964,7 +971,7 @@ func TestWalkAsOfStoragePlain_WithChunks(t *testing.T) { addrHashes := make([]libcommon.Hash, numOfAccounts) for i := uint8(0); i < numOfAccounts; i++ { addrs[i] = libcommon.Address{i + 1} - addrHash, _ := common.HashData(addrs[i].Bytes()) + addrHash, _ := libcommon.HashData(addrs[i].Bytes()) addrHashes[i] = addrHash } key := libcommon.Hash{123} @@ -1057,7 +1064,7 @@ func TestWalkAsOfStoragePlain_WithChunks(t *testing.T) { for _, addr := range addrs { if err := WalkAsOfStorage(tx, addr, historyv2read.DefaultIncarnation, libcommon.Hash{}, blockNum, func(kAddr, kLoc []byte, v []byte) (b bool, e error) { - if innerErr := obtained.Add(append(common.CopyBytes(kAddr), kLoc...), common.CopyBytes(v)); innerErr != nil { + if innerErr := obtained.Add(append(libcommon.CopyBytes(kAddr), kLoc...), libcommon.CopyBytes(v)); innerErr != nil { t.Fatal(innerErr) } return true, nil diff --git a/core/state/history_walk.go b/core/state/history_walk.go index f14446f122a..686d3e8905e 100644 --- a/core/state/history_walk.go +++ b/core/state/history_walk.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/RoaringBitmap/roaring/roaring64" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -12,7 +13,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/ethdb" ) diff --git a/core/state/intra_block_state.go b/core/state/intra_block_state.go index 68225e687a1..2f27468702d 100644 --- a/core/state/intra_block_state.go +++ b/core/state/intra_block_state.go @@ -547,23 +547,25 @@ func (sdb *IntraBlockState) createObject(addr libcommon.Address, previous *state func (sdb *IntraBlockState) CreateAccount(addr libcommon.Address, contractCreation bool) { var prevInc uint64 previous := sdb.getStateObject(addr) - if contractCreation { - if previous != nil && previous.selfdestructed { - prevInc = previous.data.Incarnation + if previous != nil && previous.selfdestructed { + prevInc = previous.data.Incarnation + } else { + if inc, err := sdb.stateReader.ReadAccountIncarnation(addr); err == nil { + prevInc = inc } else { - if inc, err := sdb.stateReader.ReadAccountIncarnation(addr); err == nil { - prevInc = inc - } else { - sdb.savedErr = err - } + sdb.savedErr = err } } + if previous != nil && prevInc < previous.data.PrevIncarnation { + prevInc = previous.data.PrevIncarnation + } newObj := sdb.createObject(addr, previous) if previous != nil && !previous.selfdestructed { newObj.data.Balance.Set(&previous.data.Balance) } newObj.data.Initialised = true + newObj.data.PrevIncarnation = prevInc if contractCreation { newObj.createdContract = true @@ -686,24 +688,6 @@ func (sdb *IntraBlockState) FinalizeTx(chainRules *chain.Rules, stateWriter Stat return nil } -func (sdb *IntraBlockState) SoftFinalise() { - for addr := range sdb.journal.dirties { - _, exist := sdb.stateObjects[addr] - if !exist { - // ripeMD is 'touched' at block 1714175, in tx 0x1237f737031e40bcde4a8b7e717b2d15e3ecadfe49bb1bbc71ee9deb09c6fcf2 - // That tx goes out of gas, and although the notion of 'touched' does not exist there, the - // touch-event will still be recorded in the journal. Since ripeMD is a special snowflake, - // it will persist in the journal even though the journal is reverted. In this special circumstance, - // it may exist in `sdb.journal.dirties` but not in `sdb.stateObjects`. - // Thus, we can safely ignore it here - continue - } - sdb.stateObjectsDirty[addr] = struct{}{} - } - // Invalidate journal because reverting across transactions is not allowed. - sdb.clearJournalAndRefund() -} - // CommitBlock finalizes the state by removing the self destructed objects // and clears the journal as well as the refunds. func (sdb *IntraBlockState) CommitBlock(chainRules *chain.Rules, stateWriter StateWriter) error { @@ -810,15 +794,17 @@ func (sdb *IntraBlockState) Prepare(rules *chain.Rules, sender, coinbase libcomm } // AddAddressToAccessList adds the given address to the access list -func (sdb *IntraBlockState) AddAddressToAccessList(addr libcommon.Address) { - if sdb.accessList.AddAddress(addr) { +func (sdb *IntraBlockState) AddAddressToAccessList(addr libcommon.Address) (addrMod bool) { + addrMod = sdb.accessList.AddAddress(addr) + if addrMod { sdb.journal.append(accessListAddAccountChange{&addr}) } + return addrMod } // AddSlotToAccessList adds the given (address, slot)-tuple to the access list -func (sdb *IntraBlockState) AddSlotToAccessList(addr libcommon.Address, slot libcommon.Hash) { - addrMod, slotMod := sdb.accessList.AddSlot(addr, slot) +func (sdb *IntraBlockState) AddSlotToAccessList(addr libcommon.Address, slot libcommon.Hash) (addrMod, slotMod bool) { + addrMod, slotMod = sdb.accessList.AddSlot(addr, slot) if addrMod { // In practice, this should not happen, since there is no way to enter the // scope of 'address' without having the 'address' become already added @@ -832,6 +818,7 @@ func (sdb *IntraBlockState) AddSlotToAccessList(addr libcommon.Address, slot lib slot: &slot, }) } + return addrMod, slotMod } // AddressInAccessList returns true if the given address is in the access list. @@ -839,7 +826,6 @@ func (sdb *IntraBlockState) AddressInAccessList(addr libcommon.Address) bool { return sdb.accessList.ContainsAddress(addr) } -// SlotInAccessList returns true if the given (address, slot)-tuple is in the access list. func (sdb *IntraBlockState) SlotInAccessList(addr libcommon.Address, slot libcommon.Hash) (addressPresent bool, slotPresent bool) { return sdb.accessList.Contains(addr, slot) } diff --git a/core/state/intra_block_state_test.go b/core/state/intra_block_state_test.go index 08f4b28899f..4a909986a5e 100644 --- a/core/state/intra_block_state_test.go +++ b/core/state/intra_block_state_test.go @@ -38,6 +38,7 @@ import ( ) func TestSnapshotRandom(t *testing.T) { + t.Parallel() config := &quick.Config{MaxCount: 1000} err := quick.Check((*snapshotTest).run, config) if cerr, ok := err.(*quick.CheckError); ok { @@ -326,6 +327,7 @@ func (test *snapshotTest) checkEqual(state, checkstate *IntraBlockState) error { } func TestTransientStorage(t *testing.T) { + t.Parallel() state := New(nil) key := libcommon.Hash{0x01} diff --git a/core/state/plain_readonly.go b/core/state/plain_readonly.go index 433ffeccd25..9f1337f4e95 100644 --- a/core/state/plain_readonly.go +++ b/core/state/plain_readonly.go @@ -20,6 +20,7 @@ import ( "bytes" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "sort" "github.com/google/btree" @@ -30,8 +31,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/kvcfg" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/state/historyv2read" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -133,7 +132,7 @@ func (s *PlainState) ForEachStorage(addr libcommon.Address, startLocation libcom // Skip deleted entries return true, nil } - keyHash, err1 := common.HashData(kLoc) + keyHash, err1 := libcommon.HashData(kLoc) if err1 != nil { return false, err1 } @@ -289,8 +288,8 @@ func (s *PlainState) WriteAccountStorage(address libcommon.Address, incarnation t = btree.New(16) s.storage[address] = t } - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) _, err := h.Sha.Write(key[:]) if err != nil { return err diff --git a/core/state/plain_state_reader.go b/core/state/plain_state_reader.go index 0b43033f259..0db63b4dcdb 100644 --- a/core/state/plain_state_reader.go +++ b/core/state/plain_state_reader.go @@ -3,11 +3,11 @@ package state import ( "bytes" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) diff --git a/core/state/plain_state_writer.go b/core/state/plain_state_writer.go index 367139027df..eb3361e58ae 100644 --- a/core/state/plain_state_writer.go +++ b/core/state/plain_state_writer.go @@ -4,10 +4,11 @@ import ( "encoding/binary" "github.com/holiman/uint256" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/shards" ) @@ -56,6 +57,14 @@ func (w *PlainStateWriter) UpdateAccountData(address libcommon.Address, original w.accumulator.ChangeAccount(address, account.Incarnation, value) } + if account.Incarnation == 0 && original.Incarnation > 0 { + var b [8]byte + binary.BigEndian.PutUint64(b[:], original.Incarnation) + if err := w.db.Put(kv.IncarnationMap, address[:], b[:]); err != nil { + return err + } + } + return w.db.Put(kv.PlainState, address[:], value) } diff --git a/core/state/recon_writer_inc.go b/core/state/recon_writer_inc.go index 05862023dbe..a6faade2c8d 100644 --- a/core/state/recon_writer_inc.go +++ b/core/state/recon_writer_inc.go @@ -2,14 +2,13 @@ package state import ( "bytes" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" libstate "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -60,7 +59,7 @@ func (w *StateReconWriterInc) UpdateAccountCode(address libcommon.Address, incar return nil } if len(code) > 0 { - w.rs.Put(kv.CodeR, codeHashBytes, nil, common.CopyBytes(code), w.txNum) + w.rs.Put(kv.CodeR, codeHashBytes, nil, libcommon.CopyBytes(code), w.txNum) w.rs.Put(kv.PlainContractR, dbutils.PlainGenerateStoragePrefix(addr, FirstContractIncarnation), nil, codeHashBytes, w.txNum) } else { w.rs.Delete(kv.PlainContractD, dbutils.PlainGenerateStoragePrefix(addr, FirstContractIncarnation), nil, w.txNum) @@ -85,7 +84,7 @@ func (w *StateReconWriterInc) DeleteAccount(address libcommon.Address, original for k, _, err = c.Seek(addr); err == nil && bytes.HasPrefix(k, addr); k, _, err = c.Next() { //fmt.Printf("delete account storage [%x] [%x]=>{} txNum: %d\n", address, k[20+8:], w.txNum) if len(k) > 20 { - w.rs.Delete(kv.PlainStateD, addr, common.CopyBytes(k[20+8:]), w.txNum) + w.rs.Delete(kv.PlainStateD, addr, libcommon.CopyBytes(k[20+8:]), w.txNum) } } if err != nil { diff --git a/core/state/rw_v3.go b/core/state/rw_v3.go index 756501a8afe..6ed8f08400c 100644 --- a/core/state/rw_v3.go +++ b/core/state/rw_v3.go @@ -10,20 +10,20 @@ import ( "time" "unsafe" - "github.com/VictoriaMetrics/metrics" "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" + btree2 "github.com/tidwall/btree" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/erigon-lib/metrics" libstate "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/log/v3" - btree2 "github.com/tidwall/btree" - "github.com/ledgerwatch/erigon/cmd/state/exec22" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/state/temporal" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/shards" @@ -32,7 +32,7 @@ import ( const CodeSizeTable = "CodeSize" const StorageTable = "Storage" -var ExecTxsDone = metrics.NewCounter(`exec_txs_done`) +var execTxsDone = metrics.NewCounter(`exec_txs_done`) type StateV3 struct { lock sync.RWMutex @@ -275,7 +275,7 @@ func (rs *StateV3) RegisterSender(txTask *exec22.TxTask) bool { } func (rs *StateV3) CommitTxNum(sender *common.Address, txNum uint64, in *exec22.QueueWithRetry) (count int) { - ExecTxsDone.Inc() + execTxsDone.Inc() rs.triggerLock.Lock() defer rs.triggerLock.Unlock() @@ -652,7 +652,9 @@ func (rs *StateV3) Unwind(ctx context.Context, tx kv.RwTx, txUnwindTo uint64, ag return nil } -func (rs *StateV3) DoneCount() uint64 { return ExecTxsDone.Get() } +func (rs *StateV3) DoneCount() uint64 { + return execTxsDone.GetValueUint64() +} func (rs *StateV3) SizeEstimate() (r uint64) { rs.lock.RLock() diff --git a/core/state/state_test.go b/core/state/state_test.go index 7a81456b31f..f0f2242ab25 100644 --- a/core/state/state_test.go +++ b/core/state/state_test.go @@ -209,6 +209,7 @@ func (s *StateSuite) TestSnapshotEmpty(c *checker.C) { // use testing instead of checker because checker does not support // printing/logging in tests (-check.vv does not work) func TestSnapshot2(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) w := NewPlainState(tx, 1, nil) state := New(NewPlainState(tx, 1, nil)) @@ -324,6 +325,7 @@ func compareStateObjects(so0, so1 *stateObject, t *testing.T) { } func TestDump(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) w := NewPlainStateWriter(tx, tx, 0) state := New(NewPlainStateReader(tx)) diff --git a/core/state/temporal/kv_temporal.go b/core/state/temporal/kv_temporal.go index 3ebd94952d2..8be4940df75 100644 --- a/core/state/temporal/kv_temporal.go +++ b/core/state/temporal/kv_temporal.go @@ -105,7 +105,7 @@ func (db *DB) Agg() *state.AggregatorV3 { return db.agg } func (db *DB) InternalDB() kv.RwDB { return db.RwDB } func (db *DB) BeginTemporalRo(ctx context.Context) (kv.TemporalTx, error) { - kvTx, err := db.RwDB.BeginRo(ctx) + kvTx, err := db.RwDB.BeginRo(ctx) //nolint:gocritic if err != nil { return nil, err } diff --git a/core/state_processor.go b/core/state_processor.go index 672385fa7f2..c5b81a49786 100644 --- a/core/state_processor.go +++ b/core/state_processor.go @@ -34,7 +34,7 @@ import ( // indicating the block was invalid. func applyTransaction(config *chain.Config, engine consensus.EngineReader, gp *GasPool, ibs *state.IntraBlockState, stateWriter state.StateWriter, header *types.Header, tx types.Transaction, usedGas, usedBlobGas *uint64, - evm vm.VMInterface, cfg vm.Config) (*types.Receipt, []byte, error) { + evm *vm.EVM, cfg vm.Config) (*types.Receipt, []byte, error) { rules := evm.ChainRules() msg, err := tx.AsMessage(*types.MakeSigner(config, header.Number.Uint64(), header.Time), header.BaseFee, rules) if err != nil { @@ -86,7 +86,7 @@ func applyTransaction(config *chain.Config, engine consensus.EngineReader, gp *G receipt.GasUsed = result.UsedGas // if the transaction created a contract, store the creation address in the receipt. if msg.To() == nil { - receipt.ContractAddress = crypto.CreateAddress(evm.TxContext().Origin, tx.GetNonce()) + receipt.ContractAddress = crypto.CreateAddress(evm.Origin, tx.GetNonce()) } // Set the receipt logs and create a bloom for filtering receipt.Logs = ibs.GetLogs(tx.Hash()) diff --git a/core/state_transition.go b/core/state_transition.go index 18c0c567e09..3972dc21e1e 100644 --- a/core/state_transition.go +++ b/core/state_transition.go @@ -24,7 +24,6 @@ import ( "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" cmath "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/consensus/misc" @@ -66,7 +65,7 @@ type StateTransition struct { value *uint256.Int data []byte state evmtypes.IntraBlockState - evm vm.VMInterface + evm *vm.EVM //some pre-allocated intermediate variables sharedBuyGas *uint256.Int @@ -120,7 +119,7 @@ func (result *ExecutionResult) Return() []byte { if result.Err != nil { return nil } - return common.CopyBytes(result.ReturnData) + return libcommon.CopyBytes(result.ReturnData) } // Revert returns the concrete revert reason if the execution is aborted by `REVERT` @@ -129,7 +128,7 @@ func (result *ExecutionResult) Revert() []byte { if result.Err != vm.ErrExecutionReverted { return nil } - return common.CopyBytes(result.ReturnData) + return libcommon.CopyBytes(result.ReturnData) } // IntrinsicGas computes the 'intrinsic gas' for a message with the given data. @@ -151,7 +150,7 @@ func IntrinsicGas(data []byte, accessList types2.AccessList, isContractCreation } // NewStateTransition initialises and returns a new state transition object. -func NewStateTransition(evm vm.VMInterface, msg Message, gp *GasPool) *StateTransition { +func NewStateTransition(evm *vm.EVM, msg Message, gp *GasPool) *StateTransition { isBor := evm.ChainConfig().Bor != nil return &StateTransition{ gp: gp, @@ -180,8 +179,8 @@ func NewStateTransition(evm vm.VMInterface, msg Message, gp *GasPool) *StateTran // state and would never be accepted within a block. // `refunds` is false when it is not required to apply gas refunds // `gasBailout` is true when it is not required to fail transaction if the balance is not enough to pay gas. -// for trace_call to replicate OE/Pariry behaviour -func ApplyMessage(evm vm.VMInterface, msg Message, gp *GasPool, refunds bool, gasBailout bool) (*ExecutionResult, error) { +// for trace_call to replicate OE/Parity behaviour +func ApplyMessage(evm *vm.EVM, msg Message, gp *GasPool, refunds bool, gasBailout bool) (*ExecutionResult, error) { return NewStateTransition(evm, msg, gp).TransitionDb(refunds, gasBailout) } @@ -194,33 +193,33 @@ func (st *StateTransition) to() libcommon.Address { } func (st *StateTransition) buyGas(gasBailout bool) error { - mgval := st.sharedBuyGas - mgval.SetUint64(st.msg.Gas()) - mgval, overflow := mgval.MulOverflow(mgval, st.gasPrice) + gasVal := st.sharedBuyGas + gasVal.SetUint64(st.msg.Gas()) + gasVal, overflow := gasVal.MulOverflow(gasVal, st.gasPrice) if overflow { return fmt.Errorf("%w: address %v", ErrInsufficientFunds, st.msg.From().Hex()) } // compute blob fee for eip-4844 data blobs if any - dgval := new(uint256.Int) + blobGasVal := new(uint256.Int) if st.evm.ChainRules().IsCancun { - if st.evm.Context().ExcessBlobGas == nil { + if st.evm.Context.ExcessBlobGas == nil { return fmt.Errorf("%w: Cancun is active but ExcessBlobGas is nil", ErrInternalFailure) } - blobGasPrice, err := misc.GetBlobGasPrice(*st.evm.Context().ExcessBlobGas) + blobGasPrice, err := misc.GetBlobGasPrice(st.evm.ChainConfig(), *st.evm.Context.ExcessBlobGas) if err != nil { return err } - _, overflow = dgval.MulOverflow(blobGasPrice, new(uint256.Int).SetUint64(st.msg.BlobGas())) + blobGasVal, overflow = blobGasVal.MulOverflow(blobGasPrice, new(uint256.Int).SetUint64(st.msg.BlobGas())) if overflow { - return fmt.Errorf("%w: overflow converting blob gas: %v", ErrInsufficientFunds, dgval) + return fmt.Errorf("%w: overflow converting blob gas: %v", ErrInsufficientFunds, blobGasVal) } if err := st.gp.SubBlobGas(st.msg.BlobGas()); err != nil { return err } } - balanceCheck := mgval + balanceCheck := gasVal if st.gasFeeCap != nil { balanceCheck = st.sharedBuyGasBalance.SetUint64(st.msg.Gas()) balanceCheck, overflow = balanceCheck.MulOverflow(balanceCheck, st.gasFeeCap) @@ -231,7 +230,7 @@ func (st *StateTransition) buyGas(gasBailout bool) error { if overflow { return fmt.Errorf("%w: address %v", ErrInsufficientFunds, st.msg.From().Hex()) } - balanceCheck, overflow = balanceCheck.AddOverflow(balanceCheck, dgval) + balanceCheck, overflow = balanceCheck.AddOverflow(balanceCheck, blobGasVal) if overflow { return fmt.Errorf("%w: address %v", ErrInsufficientFunds, st.msg.From().Hex()) } @@ -253,8 +252,8 @@ func (st *StateTransition) buyGas(gasBailout bool) error { st.initialGas = st.msg.Gas() if subBalance { - st.state.SubBalance(st.msg.From(), mgval) - st.state.SubBalance(st.msg.From(), dgval) + st.state.SubBalance(st.msg.From(), gasVal) + st.state.SubBalance(st.msg.From(), blobGasVal) } return nil } @@ -301,16 +300,16 @@ func (st *StateTransition) preCheck(gasBailout bool) error { if st.evm.ChainRules().IsLondon { // Skip the checks if gas fields are zero and baseFee was explicitly disabled (eth_call) if !st.evm.Config().NoBaseFee || !st.gasFeeCap.IsZero() || !st.tip.IsZero() { - if err := CheckEip1559TxGasFeeCap(st.msg.From(), st.gasFeeCap, st.tip, st.evm.Context().BaseFee, st.msg.IsFree()); err != nil { + if err := CheckEip1559TxGasFeeCap(st.msg.From(), st.gasFeeCap, st.tip, st.evm.Context.BaseFee, st.msg.IsFree()); err != nil { return err } } } if st.msg.BlobGas() > 0 && st.evm.ChainRules().IsCancun { - if st.evm.Context().ExcessBlobGas == nil { + if st.evm.Context.ExcessBlobGas == nil { return fmt.Errorf("%w: Cancun is active but ExcessBlobGas is nil", ErrInternalFailure) } - blobGasPrice, err := misc.GetBlobGasPrice(*st.evm.Context().ExcessBlobGas) + blobGasPrice, err := misc.GetBlobGasPrice(st.evm.ChainConfig(), *st.evm.Context.ExcessBlobGas) if err != nil { return err } @@ -318,7 +317,7 @@ func (st *StateTransition) preCheck(gasBailout bool) error { if blobGasPrice.Cmp(maxFeePerBlobGas) > 0 { return fmt.Errorf("%w: address %v, maxFeePerBlobGas: %v blobGasPrice: %v, excessBlobGas: %v", ErrMaxFeePerBlobGas, - st.msg.From().Hex(), st.msg.MaxFeePerBlobGas(), blobGasPrice, st.evm.Context().ExcessBlobGas) + st.msg.From().Hex(), st.msg.MaxFeePerBlobGas(), blobGasPrice, st.evm.Context.ExcessBlobGas) } } @@ -339,7 +338,7 @@ func (st *StateTransition) preCheck(gasBailout bool) error { // However if any consensus issue encountered, return the error directly with // nil evm execution result. func (st *StateTransition) TransitionDb(refunds bool, gasBailout bool) (*ExecutionResult, error) { - coinbase := st.evm.Context().Coinbase + coinbase := st.evm.Context.Coinbase var input1 *uint256.Int var input2 *uint256.Int @@ -389,7 +388,7 @@ func (st *StateTransition) TransitionDb(refunds bool, gasBailout bool) (*Executi var bailout bool // Gas bailout (for trace_call) should only be applied if there is not sufficient balance to perform value transfer if gasBailout { - if !msg.Value().IsZero() && !st.evm.Context().CanTransfer(st.state, msg.From(), msg.Value()) { + if !msg.Value().IsZero() && !st.evm.Context.CanTransfer(st.state, msg.From(), msg.Value()) { bailout = true } } @@ -430,8 +429,8 @@ func (st *StateTransition) TransitionDb(refunds bool, gasBailout bool) (*Executi } effectiveTip := st.gasPrice if rules.IsLondon { - if st.gasFeeCap.Gt(st.evm.Context().BaseFee) { - effectiveTip = cmath.Min256(st.tip, new(uint256.Int).Sub(st.gasFeeCap, st.evm.Context().BaseFee)) + if st.gasFeeCap.Gt(st.evm.Context.BaseFee) { + effectiveTip = cmath.Min256(st.tip, new(uint256.Int).Sub(st.gasFeeCap, st.evm.Context.BaseFee)) } else { effectiveTip = u256.Num0 } @@ -439,10 +438,12 @@ func (st *StateTransition) TransitionDb(refunds bool, gasBailout bool) (*Executi amount := new(uint256.Int).SetUint64(st.gasUsed()) amount.Mul(amount, effectiveTip) // gasUsed * effectiveTip = how much goes to the block producer (miner, validator) st.state.AddBalance(coinbase, amount) - if !msg.IsFree() && rules.IsLondon && rules.IsEip1559FeeCollector { - burntContractAddress := *st.evm.ChainConfig().Eip1559FeeCollector - burnAmount := new(uint256.Int).Mul(new(uint256.Int).SetUint64(st.gasUsed()), st.evm.Context().BaseFee) - st.state.AddBalance(burntContractAddress, burnAmount) + if !msg.IsFree() && rules.IsLondon { + burntContractAddress := st.evm.ChainConfig().GetBurntContract(st.evm.Context.BlockNumber) + if burntContractAddress != nil { + burnAmount := new(uint256.Int).Mul(new(uint256.Int).SetUint64(st.gasUsed()), st.evm.Context.BaseFee) + st.state.AddBalance(*burntContractAddress, burnAmount) + } } if st.isBor { // Deprecating transfer log and will be removed in future fork. PLEASE DO NOT USE this transfer log going forward. Parameters won't get updated as expected going forward with EIP1559 diff --git a/core/system_contract_lookup.go b/core/system_contract_lookup.go index 0e26363ba5d..2905904a2d3 100644 --- a/core/system_contract_lookup.go +++ b/core/system_contract_lookup.go @@ -1,49 +1,58 @@ package core import ( - "encoding/hex" "fmt" + "strconv" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/systemcontracts" + "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" ) func init() { - // Initialise systemContractCodeLookup - for _, chainName := range []string{networkname.BorMainnetChainName, networkname.MumbaiChainName, networkname.BorDevnetChainName} { + // Initialise SystemContractCodeLookup + for _, chainName := range []string{networkname.BorMainnetChainName, networkname.MumbaiChainName, networkname.AmoyChainName, networkname.BorDevnetChainName} { byChain := map[libcommon.Address][]libcommon.CodeRecord{} systemcontracts.SystemContractCodeLookup[chainName] = byChain // Apply genesis with the block number 0 genesisBlock := GenesisBlockByChainName(chainName) - for addr, alloc := range genesisBlock.Alloc { - if len(alloc.Code) > 0 { - list := byChain[addr] - codeHash, err := common.HashData(alloc.Code) - if err != nil { - panic(fmt.Errorf("failed to hash system contract code: %s", err.Error())) - } - list = append(list, libcommon.CodeRecord{BlockNumber: 0, CodeHash: codeHash}) - byChain[addr] = list - } - } + allocToCodeRecords(genesisBlock.Alloc, byChain, 0) // Process upgrades chainConfig := params.ChainConfigByChainName(chainName) - if chainConfig.Bor != nil && chainConfig.Bor.CalcuttaBlock != nil { - blockNum := chainConfig.Bor.CalcuttaBlock.Uint64() - if blockNum != 0 { - addCodeRecords(systemcontracts.CalcuttaUpgrade[chainName], blockNum, byChain) + for blockNumStr, genesisAlloc := range chainConfig.Bor.BlockAlloc { + blockNum, err := strconv.ParseUint(blockNumStr, 10, 64) + if err != nil { + panic(fmt.Errorf("failed to parse block number in BlockAlloc: %s", err.Error())) } + alloc, err := types.DecodeGenesisAlloc(genesisAlloc) + if err != nil { + panic(fmt.Errorf("failed to decode block alloc: %v", err)) + } + allocToCodeRecords(alloc, byChain, blockNum) } } addGnosisSpecialCase() } +func allocToCodeRecords(alloc types.GenesisAlloc, byChain map[libcommon.Address][]libcommon.CodeRecord, blockNum uint64) { + for addr, account := range alloc { + if len(account.Code) > 0 { + list := byChain[addr] + codeHash, err := libcommon.HashData(account.Code) + if err != nil { + panic(fmt.Errorf("failed to hash system contract code: %s", err.Error())) + } + list = append(list, libcommon.CodeRecord{BlockNumber: blockNum, CodeHash: codeHash}) + byChain[addr] = list + } + } +} + // some hard coding for gnosis chain here to solve a historical problem with the token contract being re-written // and losing the history for it in the DB. Temporary hack until erigon 3 arrives func addGnosisSpecialCase() { @@ -55,7 +64,7 @@ func addGnosisSpecialCase() { oldContractCode := hexutility.FromHex("0x6080604052600436106101b65763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146101bb57806306fdde03146101e4578063095ea7b31461026e5780630b26cf661461029257806318160ddd146102b557806323b872dd146102dc57806330adf81f14610306578063313ce5671461031b5780633644e51514610346578063395093511461035b5780634000aea01461037f57806340c10f19146103b057806342966c68146103d457806354fd4d50146103ec578063661884631461040157806369ffa08a1461042557806370a082311461044c578063715018a61461046d578063726600ce146104825780637d64bcb4146104a35780637ecebe00146104b8578063859ba28c146104d95780638da5cb5b1461051a5780638fcbaf0c1461054b57806395d89b4114610589578063a457c2d71461059e578063a9059cbb146105c2578063b753a98c146105e6578063bb35783b1461060a578063cd59658314610634578063d73dd62314610649578063dd62ed3e1461066d578063f2d5d56b14610694578063f2fde38b146106b8578063ff9e884d146106d9575b600080fd5b3480156101c757600080fd5b506101d0610700565b604080519115158252519081900360200190f35b3480156101f057600080fd5b506101f9610721565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023357818101518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027a57600080fd5b506101d0600160a060020a03600435166024356107af565b34801561029e57600080fd5b506102b3600160a060020a0360043516610803565b005b3480156102c157600080fd5b506102ca61085d565b60408051918252519081900360200190f35b3480156102e857600080fd5b506101d0600160a060020a0360043581169060243516604435610863565b34801561031257600080fd5b506102ca610a32565b34801561032757600080fd5b50610330610a56565b6040805160ff9092168252519081900360200190f35b34801561035257600080fd5b506102ca610a5f565b34801561036757600080fd5b506101d0600160a060020a0360043516602435610a65565b34801561038b57600080fd5b506101d060048035600160a060020a0316906024803591604435918201910135610a78565b3480156103bc57600080fd5b506101d0600160a060020a0360043516602435610b89565b3480156103e057600080fd5b506102b3600435610c94565b3480156103f857600080fd5b506101f9610ca1565b34801561040d57600080fd5b506101d0600160a060020a0360043516602435610cd8565b34801561043157600080fd5b506102b3600160a060020a0360043581169060243516610db5565b34801561045857600080fd5b506102ca600160a060020a0360043516610df1565b34801561047957600080fd5b506102b3610e0c565b34801561048e57600080fd5b506101d0600160a060020a0360043516610e23565b3480156104af57600080fd5b506101d0610e37565b3480156104c457600080fd5b506102ca600160a060020a0360043516610e3e565b3480156104e557600080fd5b506104ee610e50565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052657600080fd5b5061052f610e5b565b60408051600160a060020a039092168252519081900360200190f35b34801561055757600080fd5b506102b3600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e6a565b34801561059557600080fd5b506101f9611171565b3480156105aa57600080fd5b506101d0600160a060020a03600435166024356111cb565b3480156105ce57600080fd5b506101d0600160a060020a03600435166024356111d7565b3480156105f257600080fd5b506102b3600160a060020a0360043516602435611202565b34801561061657600080fd5b506102b3600160a060020a036004358116906024351660443561120d565b34801561064057600080fd5b5061052f61121e565b34801561065557600080fd5b506101d0600160a060020a036004351660243561122d565b34801561067957600080fd5b506102ca600160a060020a03600435811690602435166112b4565b3480156106a057600080fd5b506102b3600160a060020a03600435166024356112df565b3480156106c457600080fd5b506102b3600160a060020a03600435166112ea565b3480156106e557600080fd5b506102ca600160a060020a036004358116906024351661130a565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b820191906000526020600020905b81548152906001019060200180831161078a57829003601f168201915b505050505081565b336000818152600560209081526040808320600160a060020a03871680855290835281842086905581518681529151939490939092600080516020611a13833981519152928290030190a350600192915050565b600654600160a060020a0316331461081a57600080fd5b61082381611327565b151561082e57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561087b57600080fd5b600160a060020a038416151561089057600080fd5b600160a060020a0385166000908152600360205260409020546108b9908463ffffffff61132f16565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108ee908463ffffffff61134116565b600160a060020a0380861660008181526003602090815260409182902094909455805187815290519193928916926000805160206119f383398151915292918290030190a3600160a060020a0385163314610a1c5761094d85336112b4565b905060001981146109b757610968818463ffffffff61132f16565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a3610a1c565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a1157506109ea611354565b600160a060020a0386166000908152600a6020908152604080832033845290915290205410155b1515610a1c57600080fd5b610a27858585611358565b506001949350505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b60025460ff1681565b60085481565b6000610a71838361122d565b9392505050565b600084600160a060020a03811615801590610a9c5750600160a060020a0381163014155b1515610aa757600080fd5b610ab186866113ef565b1515610abc57600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b3186611327565b15610b7d57610b7233878787878080601f016020809104026020016040519081016040528093929190818152602001838380828437506113fb945050505050565b1515610b7d57600080fd5b50600195945050505050565b600654600090600160a060020a03163314610ba357600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bcb57600080fd5b600454610bde908363ffffffff61134116565b600455600160a060020a038316600090815260036020526040902054610c0a908363ffffffff61134116565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000916000805160206119f38339815191529181900360200190a350600192915050565b610c9e3382611591565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d2c57336000908152600560209081526040808320600160a060020a0388168452909152812055610d61565b610d3c818463ffffffff61132f16565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611a13833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610dcc57600080fd5b80600160a060020a0381161515610de257600080fd5b610dec8383611680565b505050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b657600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260036000909192565b600654600160a060020a031681565b600080600160a060020a038a161515610e8257600080fd5b600160a060020a0389161515610e9757600080fd5b861580610eab575086610ea8611354565b11155b1515610eb657600080fd5b600854604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb602080830191909152600160a060020a03808f16838501528d166060830152608082018c905260a082018b905289151560c0808401919091528351808403909101815260e090920192839052815191929182918401908083835b60208310610f575780518252601f199092019160209182019101610f38565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b60208310610ff75780518252601f199092019160209182019101610fd8565b51815160209384036101000a600019018019909216911617905260408051929094018290038220600080845283830180875282905260ff8d1684870152606084018c9052608084018b905294519098506001965060a080840196509194601f19820194509281900390910191865af1158015611077573d6000803e3d6000fd5b50505060206040510351600160a060020a03168a600160a060020a03161415156110a057600080fd5b600160a060020a038a16600090815260096020526040902080546001810190915588146110cc57600080fd5b856110d85760006110dc565b6000195b600160a060020a03808c166000908152600560209081526040808320938e16835292905220819055905085611112576000611114565b865b600160a060020a03808c166000818152600a60209081526040808320948f1680845294825291829020949094558051858152905192939192600080516020611a13833981519152929181900390910190a350505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a75780601f1061077c576101008083540402835291602001916107a7565b6000610a718383610cd8565b60006111e383836113ef565b15156111ee57600080fd5b6111f9338484611358565b50600192915050565b610dec338383610863565b611218838383610863565b50505050565b600754600160a060020a031690565b336000908152600560209081526040808320600160a060020a0386168452909152812054611261908363ffffffff61134116565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611a13833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b610dec823383610863565b600654600160a060020a0316331461130157600080fd5b610c9e816116ac565b600a60209081526000928352604080842090915290825290205481565b6000903b1190565b60008282111561133b57fe5b50900390565b8181018281101561134e57fe5b92915050565b4290565b61136182611327565b80156113885750604080516000815260208101909152611386908490849084906113fb565b155b15610dec5761139682610e23565b156113a057600080fd5b60408051600160a060020a0380861682528416602082015280820183905290517f11249f0fc79fc134a15a10d1da8291b79515bf987e036ced05b9ec119614070b9181900360600190a1505050565b6000610a71838361172a565b600083600160a060020a031663a4c0ed367c0100000000000000000000000000000000000000000000000000000000028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561148c578181015183820152602001611474565b50505050905090810190601f1680156114b95780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561154757818101518382015260200161152f565b50505050905090810190601f1680156115745780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156115b657600080fd5b600160a060020a0382166000908152600360205260409020546115df908263ffffffff61132f16565b600160a060020a03831660009081526003602052604090205560045461160b908263ffffffff61132f16565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a038516916000805160206119f38339815191529181900360200190a35050565b600160a060020a038216151561169e57611699816117f9565b6116a8565b6116a88282611805565b5050565b600160a060020a03811615156116c157600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b3360009081526003602052604081205482111561174657600080fd5b600160a060020a038316151561175b57600080fd5b3360009081526003602052604090205461177b908363ffffffff61132f16565b3360009081526003602052604080822092909255600160a060020a038516815220546117ad908363ffffffff61134116565b600160a060020a0384166000818152600360209081526040918290209390935580518581529051919233926000805160206119f38339815191529281900390910190a350600192915050565b30316116a882826118a3565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b505050506040513d602081101561189457600080fd5b5051905061121884848361190b565b604051600160a060020a0383169082156108fc029083906000818181858888f1935050505015156116a85780826118d86119c2565b600160a060020a039091168152604051908190036020019082f080158015611904573d6000803e3d6000fd5b5050505050565b60408051600160a060020a03841660248201526044808201849052825180830390910181526064909101909152602081810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781528251606093600093909290918491828a5af160005193508392508080156101b65750506000835111156119ba578115156119ba57600080fd5b505050505050565b6040516021806119d2833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820da715ff88e0288dbae664bb8af2f148726bdc8c499fecf88153280d022031e780029") newContractCode := hexutility.FromHex("0x6080604052600436106101b35763ffffffff60e060020a60003504166305d2035b81146101b857806306fdde03146101e1578063095ea7b31461026b5780630b26cf661461028f57806318160ddd146102b257806323b872dd146102d957806330adf81f14610303578063313ce567146103185780633644e5151461034357806339509351146103585780634000aea01461037c57806340c10f19146103ad57806342966c68146103d157806354fd4d50146103e957806366188463146103fe57806369ffa08a1461042257806370a0823114610449578063715018a61461046a578063726600ce1461047f5780637d64bcb4146104a05780637ecebe00146104b5578063859ba28c146104d65780638da5cb5b146105175780638fcbaf0c1461054857806395d89b4114610586578063a457c2d71461059b578063a9059cbb146105bf578063b753a98c146105e3578063bb35783b14610607578063c6a1dedf14610631578063cd59658314610646578063d505accf1461065b578063d73dd62314610694578063dd62ed3e146106b8578063f2d5d56b146106df578063f2fde38b14610703578063ff9e884d14610724575b600080fd5b3480156101c457600080fd5b506101cd61074b565b604080519115158252519081900360200190f35b3480156101ed57600080fd5b506101f661076c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610230578181015183820152602001610218565b50505050905090810190601f16801561025d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027757600080fd5b506101cd600160a060020a03600435166024356107fa565b34801561029b57600080fd5b506102b0600160a060020a0360043516610810565b005b3480156102be57600080fd5b506102c761086a565b60408051918252519081900360200190f35b3480156102e557600080fd5b506101cd600160a060020a0360043581169060243516604435610870565b34801561030f57600080fd5b506102c7610a38565b34801561032457600080fd5b5061032d610a5c565b6040805160ff9092168252519081900360200190f35b34801561034f57600080fd5b506102c7610a65565b34801561036457600080fd5b506101cd600160a060020a0360043516602435610a6b565b34801561038857600080fd5b506101cd60048035600160a060020a0316906024803591604435918201910135610aac565b3480156103b957600080fd5b506101cd600160a060020a0360043516602435610bbd565b3480156103dd57600080fd5b506102b0600435610cc8565b3480156103f557600080fd5b506101f6610cd5565b34801561040a57600080fd5b506101cd600160a060020a0360043516602435610d0c565b34801561042e57600080fd5b506102b0600160a060020a0360043581169060243516610de9565b34801561045557600080fd5b506102c7600160a060020a0360043516610e0e565b34801561047657600080fd5b506102b0610e29565b34801561048b57600080fd5b506101cd600160a060020a0360043516610e40565b3480156104ac57600080fd5b506101cd610e54565b3480156104c157600080fd5b506102c7600160a060020a0360043516610e5b565b3480156104e257600080fd5b506104eb610e6d565b6040805167ffffffffffffffff9485168152928416602084015292168183015290519081900360600190f35b34801561052357600080fd5b5061052c610e78565b60408051600160a060020a039092168252519081900360200190f35b34801561055457600080fd5b506102b0600160a060020a0360043581169060243516604435606435608435151560ff60a4351660c43560e435610e87565b34801561059257600080fd5b506101f6610fc5565b3480156105a757600080fd5b506101cd600160a060020a036004351660243561101f565b3480156105cb57600080fd5b506101cd600160a060020a0360043516602435611032565b3480156105ef57600080fd5b506102b0600160a060020a0360043516602435611054565b34801561061357600080fd5b506102b0600160a060020a0360043581169060243516604435611064565b34801561063d57600080fd5b506102c7611075565b34801561065257600080fd5b5061052c611099565b34801561066757600080fd5b506102b0600160a060020a036004358116906024351660443560643560ff6084351660a43560c4356110a8565b3480156106a057600080fd5b506101cd600160a060020a0360043516602435611184565b3480156106c457600080fd5b506102c7600160a060020a036004358116906024351661120b565b3480156106eb57600080fd5b506102b0600160a060020a0360043516602435611236565b34801561070f57600080fd5b506102b0600160a060020a0360043516611241565b34801561073057600080fd5b506102c7600160a060020a0360043581169060243516611261565b60065474010000000000000000000000000000000000000000900460ff1681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b820191906000526020600020905b8154815290600101906020018083116107d557829003601f168201915b505050505081565b600061080733848461127e565b50600192915050565b600654600160a060020a0316331461082757600080fd5b610830816112c0565b151561083b57600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60045490565b600080600160a060020a038516151561088857600080fd5b600160a060020a038416151561089d57600080fd5b600160a060020a0385166000908152600360205260409020546108c6908463ffffffff6112c816565b600160a060020a0380871660009081526003602052604080822093909355908616815220546108fb908463ffffffff6112da16565b600160a060020a038086166000818152600360209081526040918290209490945580518781529051919392891692600080516020611d7283398151915292918290030190a3600160a060020a0385163314610a225761095a853361120b565b905060001981146109c457610975818463ffffffff6112c816565b600160a060020a038616600081815260056020908152604080832033808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a3610a22565b600160a060020a0385166000908152600a602090815260408083203384529091529020541580610a175750600160a060020a0385166000908152600a602090815260408083203384529091529020544211155b1515610a2257600080fd5b610a2d8585856112ed565b506001949350505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60025460ff1681565b60085481565b336000818152600560209081526040808320600160a060020a03871684529091528120549091610807918590610aa7908663ffffffff6112da16565b61127e565b600084600160a060020a03811615801590610ad05750600160a060020a0381163014155b1515610adb57600080fd5b610ae58686611324565b1515610af057600080fd5b85600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c16878787604051808481526020018060200182810382528484828181526020019250808284376040519201829003965090945050505050a3610b65866112c0565b15610bb157610ba633878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843750611330945050505050565b1515610bb157600080fd5b50600195945050505050565b600654600090600160a060020a03163314610bd757600080fd5b60065474010000000000000000000000000000000000000000900460ff1615610bff57600080fd5b600454610c12908363ffffffff6112da16565b600455600160a060020a038316600090815260036020526040902054610c3e908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a03851691600091600080516020611d728339815191529181900360200190a350600192915050565b610cd233826114ad565b50565b60408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015281565b336000908152600560209081526040808320600160a060020a0386168452909152812054808310610d6057336000908152600560209081526040808320600160a060020a0388168452909152812055610d95565b610d70818463ffffffff6112c816565b336000908152600560209081526040808320600160a060020a03891684529091529020555b336000818152600560209081526040808320600160a060020a038916808552908352928190205481519081529051929392600080516020611d92833981519152929181900390910190a35060019392505050565b600654600160a060020a03163314610e0057600080fd5b610e0a828261159c565b5050565b600160a060020a031660009081526003602052604090205490565b600654600160a060020a031633146101b357600080fd5b600754600160a060020a0390811691161490565b6000806000fd5b60096020526000908152604090205481565b600260056000909192565b600654600160a060020a031681565b600080861580610e975750864211155b1515610ea257600080fd5b604080517fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb6020820152600160a060020a03808d16828401528b166060820152608081018a905260a0810189905287151560c0808301919091528251808303909101815260e0909101909152610f17906115da565b9150610f25828686866116e1565b600160a060020a038b8116911614610f3c57600080fd5b600160a060020a038a1660009081526009602052604090208054600181019091558814610f6857600080fd5b85610f74576000610f78565b6000195b905085610f86576000610f88565b865b600160a060020a03808c166000908152600a60209081526040808320938e1683529290522055610fb98a8a836118e3565b50505050505050505050565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b600061102b8383610d0c565b9392505050565b600061103e8383611324565b151561104957600080fd5b6108073384846112ed565b61105f338383610870565b505050565b61106f838383610870565b50505050565b7fea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb81565b600754600160a060020a031690565b600080428610156110b857600080fd5b600160a060020a03808a1660008181526009602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c99281019290925281830193909352928b166060840152608083018a905260a0830182905260c08084018a90528151808503909101815260e090930190529250611149906115da565b9050611157818686866116e1565b600160a060020a038a811691161461116e57600080fd5b61117989898961127e565b505050505050505050565b336000908152600560209081526040808320600160a060020a03861684529091528120546111b8908363ffffffff6112da16565b336000818152600560209081526040808320600160a060020a038916808552908352928190208590558051948552519193600080516020611d92833981519152929081900390910190a350600192915050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b61105f823383610870565b600654600160a060020a0316331461125857600080fd5b610cd281611a3e565b600a60209081526000928352604080842090915290825290205481565b6112898383836118e3565b60001981141561105f57600160a060020a038084166000908152600a60209081526040808320938616835292905290812055505050565b6000903b1190565b6000828211156112d457fe5b50900390565b818101828110156112e757fe5b92915050565b6112f682610e40565b1561105f5760408051600081526020810190915261131990849084908490611330565b151561105f57600080fd5b600061102b8383611abc565b600083600160a060020a031663a4c0ed3660e060020a028685856040516024018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113a8578181015183820152602001611390565b50505050905090810190601f1680156113d55780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909916989098178852518151919790965086955093509150819050838360005b8381101561146357818101518382015260200161144b565b50505050905090810190601f1680156114905780820380516001836020036101000a031916815260200191505b509150506000604051808303816000865af1979650505050505050565b600160a060020a0382166000908152600360205260409020548111156114d257600080fd5b600160a060020a0382166000908152600360205260409020546114fb908263ffffffff6112c816565b600160a060020a038316600090815260036020526040902055600454611527908263ffffffff6112c816565b600455604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2604080518281529051600091600160a060020a03851691600080516020611d728339815191529181900360200190a35050565b80600160a060020a03811615156115b257600080fd5b600160a060020a03831615156115d0576115cb82611b8b565b61105f565b61105f8383611b97565b6000600854826040518082805190602001908083835b6020831061160f5780518252601f1990920191602091820191016115f0565b51815160209384036101000a6000190180199092169116179052604080519290940182900382207f190100000000000000000000000000000000000000000000000000000000000083830152602283019790975260428083019790975283518083039097018752606290910192839052855192945084935085019190508083835b602083106116af5780518252601f199092019160209182019101611690565b5181516020939093036101000a6000190180199091169216919091179052604051920182900390912095945050505050565b6000808460ff16601b14806116f957508460ff16601c145b1515611775576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611813576040805160e560020a62461bcd02815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f7565000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60408051600080825260208083018085528a905260ff8916838501526060830188905260808301879052925160019360a0808501949193601f19840193928390039091019190865af115801561186d573d6000803e3d6000fd5b5050604051601f190151915050600160a060020a03811615156118da576040805160e560020a62461bcd02815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b600160a060020a0383161515611968576040805160e560020a62461bcd028152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a03821615156119ee576040805160e560020a62461bcd02815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0380841660008181526005602090815260408083209487168084529482529182902085905581518581529151600080516020611d928339815191529281900390910190a3505050565b600160a060020a0381161515611a5357600080fd5b600654604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b33600090815260036020526040812054821115611ad857600080fd5b600160a060020a0383161515611aed57600080fd5b33600090815260036020526040902054611b0d908363ffffffff6112c816565b3360009081526003602052604080822092909255600160a060020a03851681522054611b3f908363ffffffff6112da16565b600160a060020a038416600081815260036020908152604091829020939093558051858152905191923392600080516020611d728339815191529281900390910190a350600192915050565b3031610e0a8282611c44565b604080517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015290518391600091600160a060020a038416916370a0823191602480830192602092919082900301818787803b158015611bfc57600080fd5b505af1158015611c10573d6000803e3d6000fd5b505050506040513d6020811015611c2657600080fd5b5051905061106f600160a060020a038516848363ffffffff611cac16565b604051600160a060020a0383169082156108fc029083906000818181858888f193505050501515610e0a578082611c79611d41565b600160a060020a039091168152604051908190036020019082f080158015611ca5573d6000803e3d6000fd5b5050505050565b82600160a060020a031663a9059cbb83836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015611d0f57600080fd5b505af1158015611d23573d6000803e3d6000fd5b505050503d1561105f5760206000803e600051151561105f57600080fd5b604051602180611d51833901905600608060405260405160208060218339810160405251600160a060020a038116ff00ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925a165627a7a72305820b96bb0733a3e45fdddafa592f51114d0cf16cad047ad60b9b91ae91eb772c6940029") - codeHash, err := common.HashData(oldContractCode) + codeHash, err := libcommon.HashData(oldContractCode) if err != nil { panic("could not get code hash from old gnosis token contract") } @@ -64,7 +73,7 @@ func addGnosisSpecialCase() { CodeHash: codeHash, }) - codeHash, err = common.HashData(newContractCode) + codeHash, err = libcommon.HashData(newContractCode) if err != nil { panic("could not get code hash from new gnosis token contract") } @@ -75,19 +84,3 @@ func addGnosisSpecialCase() { byChain[address] = list } - -func addCodeRecords(upgrade *systemcontracts.Upgrade, blockNum uint64, byChain map[libcommon.Address][]libcommon.CodeRecord) { - for _, config := range upgrade.Configs { - list := byChain[config.ContractAddr] - code, err := hex.DecodeString(config.Code) - if err != nil { - panic(fmt.Errorf("failed to decode system contract code: %s", err.Error())) - } - codeHash, err := common.HashData(code) - if err != nil { - panic(fmt.Errorf("failed to hash system contract code: %s", err.Error())) - } - list = append(list, libcommon.CodeRecord{BlockNumber: blockNum, CodeHash: codeHash}) - byChain[config.ContractAddr] = list - } -} diff --git a/core/systemcontracts/const.go b/core/systemcontracts/const.go deleted file mode 100644 index ab3315e726f..00000000000 --- a/core/systemcontracts/const.go +++ /dev/null @@ -1,21 +0,0 @@ -package systemcontracts - -import ( - libcommon "github.com/ledgerwatch/erigon-lib/common" -) - -var ( - // genesis contracts - ValidatorContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001000") - SlashContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001001") - SystemRewardContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001002") - LightClientContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001003") - TokenHubContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001004") - RelayerIncentivizeContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001005") - RelayerHubContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001006") - GovHubContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001007") - TokenManagerContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001008") - MaticTokenContract = libcommon.HexToAddress("0x0000000000000000000000000000000000001010") - CrossChainContract = libcommon.HexToAddress("0x0000000000000000000000000000000000002000") - StakingContract = libcommon.HexToAddress("0x0000000000000000000000000000000000002001") -) diff --git a/core/systemcontracts/upgrade.go b/core/systemcontracts/upgrade.go index 677aea242fe..e9d6d005539 100644 --- a/core/systemcontracts/upgrade.go +++ b/core/systemcontracts/upgrade.go @@ -1,38 +1,10 @@ package systemcontracts import ( - "encoding/hex" - "fmt" - "math/big" - - "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/core/vm/evmtypes" - "github.com/ledgerwatch/log/v3" - - "github.com/ledgerwatch/erigon/params/networkname" ) -type UpgradeConfig struct { - BeforeUpgrade upgradeHook - AfterUpgrade upgradeHook - ContractAddr libcommon.Address - CommitUrl string - Code string -} - -type Upgrade struct { - UpgradeName string - Configs []*UpgradeConfig -} - -type upgradeHook func(blockNumber *big.Int, contractAddr libcommon.Address, statedb evmtypes.IntraBlockState) error - var ( - //upgrade config - - CalcuttaUpgrade = make(map[string]*Upgrade) - // SystemContractCodeLookup is used to address a flaw in the upgrade logic of the system contracts. Since they are updated directly, without first being self-destructed // and then re-created, the usual incarnation logic does not get activated, and all historical records of the code of these contracts are retrieved as the most // recent version. This problem will not exist in erigon3, but until then, a workaround will be used to access code of such contracts through this structure @@ -40,88 +12,3 @@ var ( // to be used in binary search to determine correct historical code SystemContractCodeLookup = map[string]map[libcommon.Address][]libcommon.CodeRecord{} ) - -func init() { - CalcuttaUpgrade[networkname.BorMainnetChainName] = &Upgrade{ - UpgradeName: "calcutta", - Configs: []*UpgradeConfig{ - { - ContractAddr: MaticTokenContract, - Code: "60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611546565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154c565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b348015610b2e57600080fd5b50610b376115f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161c90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da76023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163c90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d846023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165b565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600181526020017f890000000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611753565b90505b92915050565b6040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b10565b611be6565b9050949350505050565b608981565b60015481565b604051806080016040528060528152602001611dca605291396040516020018082805190602001908083835b6020831061159b5780518252602082019150602081019050602083039250611578565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e1611381565b6115ea57600080fd5b6115f38161165b565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162b57600080fd5b600082840390508091505092915050565b60008082840190508381101561165157600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d60208110156118b957600080fd5b810190808051906020019092919050505090506118d7868686611c30565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d6020811015611ac157600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b60208310611b625780518252602082019150602081019050602083039250611b3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d18573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820a4a6f71a98ac3fc613c3a8f1e2e11b9eb9b6b39f125f7d9508916c2b8fb02c7164736f6c63430005100032", - }, - }, - } - - CalcuttaUpgrade[networkname.MumbaiChainName] = &Upgrade{ - UpgradeName: "calcutta", - Configs: []*UpgradeConfig{ - { - ContractAddr: MaticTokenContract, - Code: "60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611548565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154e565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115db565b005b348015610b2e57600080fd5b50610b376115f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161e90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da96023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163e90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d866023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165d565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f013881000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611755565b90505b92915050565b6040518060800160405280605b8152602001611e1e605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b12565b611be8565b9050949350505050565b6201388181565b60015481565b604051806080016040528060528152602001611dcc605291396040516020018082805190602001908083835b6020831061159d578051825260208201915060208101905060208303925061157a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e3611381565b6115ec57600080fd5b6115f58161165d565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162d57600080fd5b600082840390508091505092915050565b60008082840190508381101561165357600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d557600080fd5b505afa1580156117e9573d6000803e3d6000fd5b505050506040513d60208110156117ff57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561189157600080fd5b505afa1580156118a5573d6000803e3d6000fd5b505050506040513d60208110156118bb57600080fd5b810190808051906020019092919050505090506118d9868686611c32565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d6020811015611a0b57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9957600080fd5b505afa158015611aad573d6000803e3d6000fd5b505050506040513d6020811015611ac357600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1e605b91396040516020018082805190602001908083835b60208310611b645780518252602082019150602081019050602083039250611b41565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d1a573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820ccd6c2a9c259832bbb367986ee06cd87af23022681b0cb22311a864b701d939564736f6c63430005100032", - }, - }, - } - - CalcuttaUpgrade[networkname.BorDevnetChainName] = &Upgrade{ - UpgradeName: "calcutta", - Configs: []*UpgradeConfig{ - { - ContractAddr: MaticTokenContract, - Code: "60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611546565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154c565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b348015610b2e57600080fd5b50610b376115f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161c90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da76023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163c90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d846023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165b565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600181526020017f890000000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611753565b90505b92915050565b6040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b10565b611be6565b9050949350505050565b608981565b60015481565b604051806080016040528060528152602001611dca605291396040516020018082805190602001908083835b6020831061159b5780518252602082019150602081019050602083039250611578565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e1611381565b6115ea57600080fd5b6115f38161165b565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162b57600080fd5b600082840390508091505092915050565b60008082840190508381101561165157600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d60208110156118b957600080fd5b810190808051906020019092919050505090506118d7868686611c30565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d6020811015611ac157600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b60208310611b625780518252602082019150602081019050602083039250611b3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d18573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820a4a6f71a98ac3fc613c3a8f1e2e11b9eb9b6b39f125f7d9508916c2b8fb02c7164736f6c63430005100032", - }, - }, - } -} - -func UpgradeBuildInSystemContract(config *chain.Config, blockNumber *big.Int, statedb evmtypes.IntraBlockState, logger log.Logger) { - if config == nil || blockNumber == nil || statedb == nil { - return - } - - if config.Bor != nil && config.Bor.IsOnCalcutta(blockNumber) { - applySystemContractUpgrade(CalcuttaUpgrade[config.ChainName], blockNumber, statedb, logger) - } - - /* - apply other upgrades - */ -} - -func applySystemContractUpgrade(upgrade *Upgrade, blockNumber *big.Int, statedb evmtypes.IntraBlockState, logger log.Logger) { - if upgrade == nil { - logger.Info("Empty upgrade config", "height", blockNumber.String()) - return - } - - logger.Info(fmt.Sprintf("Apply upgrade %s at height %d", upgrade.UpgradeName, blockNumber.Int64())) - for _, cfg := range upgrade.Configs { - logger.Info(fmt.Sprintf("Upgrade contract %s to commit %s", cfg.ContractAddr.String(), cfg.CommitUrl)) - - if cfg.BeforeUpgrade != nil { - err := cfg.BeforeUpgrade(blockNumber, cfg.ContractAddr, statedb) - if err != nil { - panic(fmt.Errorf("contract address: %s, execute beforeUpgrade error: %s", cfg.ContractAddr.String(), err.Error())) - } - } - - newContractCode, err := hex.DecodeString(cfg.Code) - if err != nil { - panic(fmt.Errorf("failed to decode new contract code: %s", err.Error())) - } - - prevContractCode := statedb.GetCode(cfg.ContractAddr) - if len(prevContractCode) == 0 && len(newContractCode) > 0 { - // system contracts defined after genesis need to be explicitly created - statedb.CreateAccount(cfg.ContractAddr, true) - } - - statedb.SetCode(cfg.ContractAddr, newContractCode) - - if cfg.AfterUpgrade != nil { - err := cfg.AfterUpgrade(blockNumber, cfg.ContractAddr, statedb) - if err != nil { - panic(fmt.Errorf("contract address: %s, execute afterUpgrade error: %s", cfg.ContractAddr.String(), err.Error())) - } - } - } -} diff --git a/core/types/access_list_tx.go b/core/types/access_list_tx.go index 562205d3327..0f6131ea91e 100644 --- a/core/types/access_list_tx.go +++ b/core/types/access_list_tx.go @@ -28,9 +28,9 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/rlp" ) @@ -52,7 +52,7 @@ func (tx AccessListTx) copy() *AccessListTx { }, Nonce: tx.Nonce, To: tx.To, // TODO: copy pointed-to address - Data: common.CopyBytes(tx.Data), + Data: libcommon.CopyBytes(tx.Data), Gas: tx.Gas, // These are copied below. Value: new(uint256.Int), @@ -93,13 +93,8 @@ func (tx *AccessListTx) Unwrap() Transaction { // EncodingSize returns the RLP encoding size of the whole transaction envelope func (tx AccessListTx) EncodingSize() int { payloadSize, _, _, _ := tx.payloadSize() - envelopeSize := payloadSize // Add envelope size and type size - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } - envelopeSize += 2 - return envelopeSize + return 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize } // payloadSize calculates the RLP encoding size of transaction, without TxType and envelope @@ -127,26 +122,10 @@ func (tx AccessListTx) payloadSize() (payloadSize int, nonceLen, gasLen, accessL payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(tx.Value) // size of Data - payloadSize++ - switch len(tx.Data) { - case 0: - case 1: - if tx.Data[0] >= 128 { - payloadSize++ - } - default: - if len(tx.Data) >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(len(tx.Data)))) - } - payloadSize += len(tx.Data) - } + payloadSize += rlp2.StringLen(tx.Data) // size of AccessList - payloadSize++ accessListLen = accessListSize(tx.AccessList) - if accessListLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(accessListLen))) - } - payloadSize += accessListLen + payloadSize += rlp2.ListPrefixLen(accessListLen) + accessListLen // size of V payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(&tx.V) @@ -164,18 +143,10 @@ func accessListSize(al types2.AccessList) int { for _, tuple := range al { tupleLen := 21 // For the address // size of StorageKeys - tupleLen++ // Each storage key takes 33 bytes storageLen := 33 * len(tuple.StorageKeys) - if storageLen >= 56 { - tupleLen += libcommon.BitLenToByteLen(bits.Len(uint(storageLen))) // BE encoding of the length of the storage keys - } - tupleLen += storageLen - accessListLen++ - if tupleLen >= 56 { - accessListLen += libcommon.BitLenToByteLen(bits.Len(uint(tupleLen))) // BE encoding of the length of the storage keys - } - accessListLen += tupleLen + tupleLen += rlp2.ListPrefixLen(storageLen) + storageLen + accessListLen += rlp2.ListPrefixLen(tupleLen) + tupleLen } return accessListLen } @@ -183,13 +154,9 @@ func accessListSize(al types2.AccessList) int { func encodeAccessList(al types2.AccessList, w io.Writer, b []byte) error { for _, tuple := range al { tupleLen := 21 - tupleLen++ // Each storage key takes 33 bytes storageLen := 33 * len(tuple.StorageKeys) - if storageLen >= 56 { - tupleLen += libcommon.BitLenToByteLen(bits.Len(uint(storageLen))) // BE encoding of the length of the storage keys - } - tupleLen += storageLen + tupleLen += rlp2.ListPrefixLen(storageLen) + storageLen if err := EncodeStructSizePrefix(tupleLen, w, b); err != nil { return err } @@ -320,12 +287,8 @@ func (tx AccessListTx) encodePayload(w io.Writer, b []byte, payloadSize, nonceLe // EncodeRLP implements rlp.Encoder func (tx AccessListTx) EncodeRLP(w io.Writer) error { payloadSize, nonceLen, gasLen, accessListLen := tx.payloadSize() - envelopeSize := payloadSize - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } // size of struct prefix and TxType - envelopeSize += 2 + envelopeSize := 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize var b [33]byte // envelope if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil { diff --git a/core/types/accounts/account.go b/core/types/accounts/account.go index 1953249c652..c89150c7429 100644 --- a/core/types/accounts/account.go +++ b/core/types/accounts/account.go @@ -8,6 +8,7 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" @@ -17,12 +18,13 @@ import ( // These objects are stored in the main account trie. // DESCRIBED: docs/programmers_guide/guide.md#ethereum-state type Account struct { - Initialised bool - Nonce uint64 - Balance uint256.Int - Root libcommon.Hash // merkle root of the storage trie - CodeHash libcommon.Hash // hash of the bytecode - Incarnation uint64 + Initialised bool + Nonce uint64 + Balance uint256.Int + Root libcommon.Hash // merkle root of the storage trie + CodeHash libcommon.Hash // hash of the bytecode + Incarnation uint64 + PrevIncarnation uint64 } const ( @@ -77,8 +79,6 @@ func (a *Account) EncodingLengthForStorage() uint { } func (a *Account) EncodingLengthForHashing() uint { - var structLength uint - balanceBytes := 0 if !a.Balance.LtUint64(128) { balanceBytes = a.Balance.ByteLen() @@ -86,17 +86,11 @@ func (a *Account) EncodingLengthForHashing() uint { nonceBytes := rlp.IntLenExcludingHead(a.Nonce) - structLength += uint(balanceBytes + nonceBytes + 2) + structLength := balanceBytes + nonceBytes + 2 structLength += 66 // Two 32-byte arrays + 2 prefixes - if structLength < 56 { - return 1 + structLength - } - - lengthBytes := libcommon.BitLenToByteLen(bits.Len(structLength)) - - return uint(1+lengthBytes) + structLength + return uint(rlp2.ListPrefixLen(structLength) + structLength) } func (a *Account) EncodeForStorage(buffer []byte) { diff --git a/core/types/accounts/account_proof.go b/core/types/accounts/account_proof.go index 7653445d1d1..9239e6b3fcf 100644 --- a/core/types/accounts/account_proof.go +++ b/core/types/accounts/account_proof.go @@ -2,9 +2,8 @@ package accounts import ( libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // Result structs for GetProof diff --git a/core/types/accounts/account_test.go b/core/types/accounts/account_test.go index 6383a1440e7..25eb2038876 100644 --- a/core/types/accounts/account_test.go +++ b/core/types/accounts/account_test.go @@ -10,6 +10,7 @@ import ( ) func TestEmptyAccount(t *testing.T) { + t.Parallel() a := Account{ Initialised: true, Nonce: 100, @@ -31,6 +32,7 @@ func TestEmptyAccount(t *testing.T) { } func TestEmptyAccount2(t *testing.T) { + t.Parallel() encodedAccount := Account{} b := make([]byte, encodedAccount.EncodingLengthForStorage()) @@ -45,6 +47,7 @@ func TestEmptyAccount2(t *testing.T) { // fails if run package tests // account_test.go:57: cant decode the account malformed RLP for Account(c064): prefixLength(1) + dataLength(0) != sliceLength(2) �d func TestEmptyAccount_BufferStrangeBehaviour(t *testing.T) { + t.Parallel() a := Account{} encodedAccount := make([]byte, a.EncodingLengthForStorage()) @@ -57,6 +60,7 @@ func TestEmptyAccount_BufferStrangeBehaviour(t *testing.T) { } func TestAccountEncodeWithCode(t *testing.T) { + t.Parallel() a := Account{ Initialised: true, Nonce: 2, @@ -79,6 +83,7 @@ func TestAccountEncodeWithCode(t *testing.T) { } func TestAccountEncodeWithCodeWithStorageSizeHack(t *testing.T) { + t.Parallel() a := Account{ Initialised: true, Nonce: 2, @@ -101,6 +106,7 @@ func TestAccountEncodeWithCodeWithStorageSizeHack(t *testing.T) { } func TestAccountEncodeWithoutCode(t *testing.T) { + t.Parallel() a := Account{ Initialised: true, Nonce: 2, @@ -123,6 +129,7 @@ func TestAccountEncodeWithoutCode(t *testing.T) { } func TestEncodeAccountWithEmptyBalanceNonNilContractAndNotZeroIncarnation(t *testing.T) { + t.Parallel() a := Account{ Initialised: true, Nonce: 0, @@ -143,6 +150,7 @@ func TestEncodeAccountWithEmptyBalanceNonNilContractAndNotZeroIncarnation(t *tes isAccountsEqual(t, a, decodedAccount) } func TestEncodeAccountWithEmptyBalanceAndNotZeroIncarnation(t *testing.T) { + t.Parallel() a := Account{ Initialised: true, Nonce: 0, @@ -191,6 +199,7 @@ func isAccountsEqual(t *testing.T, src, dst Account) { } func TestIncarnationForEmptyAccount(t *testing.T) { + t.Parallel() a := Account{ Initialised: true, Nonce: 100, @@ -216,6 +225,7 @@ func TestIncarnationForEmptyAccount(t *testing.T) { } func TestEmptyIncarnationForEmptyAccount2(t *testing.T) { + t.Parallel() a := Account{} encodedAccount := make([]byte, a.EncodingLengthForStorage()) @@ -235,6 +245,7 @@ func TestEmptyIncarnationForEmptyAccount2(t *testing.T) { } func TestIncarnationWithNonEmptyAccount(t *testing.T) { + t.Parallel() a := Account{ Initialised: true, Nonce: 2, @@ -261,6 +272,7 @@ func TestIncarnationWithNonEmptyAccount(t *testing.T) { } func TestIncarnationWithNoIncarnation(t *testing.T) { + t.Parallel() a := Account{ Initialised: true, Nonce: 2, diff --git a/core/types/blob_tx.go b/core/types/blob_tx.go index 94c99cb5d5b..d2bede77c40 100644 --- a/core/types/blob_tx.go +++ b/core/types/blob_tx.go @@ -4,13 +4,13 @@ import ( "fmt" "io" "math/big" - "math/bits" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/fixedgas" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" types2 "github.com/ledgerwatch/erigon-lib/types" "github.com/ledgerwatch/erigon/rlp" @@ -102,12 +102,8 @@ func (stx BlobTx) payloadSize() (payloadSize, nonceLen, gasLen, accessListLen, b payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(stx.MaxFeePerBlobGas) // size of BlobVersionedHashes - payloadSize++ blobHashesLen = blobVersionedHashesSize(stx.BlobVersionedHashes) - if blobHashesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(blobHashesLen))) - } - payloadSize += blobHashesLen + payloadSize += rlp2.ListPrefixLen(blobHashesLen) + blobHashesLen return } @@ -150,18 +146,12 @@ func (stx BlobTx) encodePayload(w io.Writer, b []byte, payloadSize, nonceLen, ga return err } // encode To - if stx.To == nil { - b[0] = 128 - } else { - b[0] = 128 + 20 - } + b[0] = 128 + 20 if _, err := w.Write(b[:1]); err != nil { return err } - if stx.To != nil { - if _, err := w.Write(stx.To.Bytes()); err != nil { - return err - } + if _, err := w.Write(stx.To.Bytes()); err != nil { + return err } // encode Value if err := stx.Value.EncodeRLP(w); err != nil { @@ -208,12 +198,8 @@ func (stx BlobTx) encodePayload(w io.Writer, b []byte, payloadSize, nonceLen, ga func (stx BlobTx) EncodeRLP(w io.Writer) error { payloadSize, nonceLen, gasLen, accessListLen, blobHashesLen := stx.payloadSize() - envelopeSize := payloadSize - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } // size of struct prefix and TxType - envelopeSize += 2 + envelopeSize := 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize var b [33]byte // envelope if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil { @@ -276,13 +262,11 @@ func (stx *BlobTx) DecodeRLP(s *rlp.Stream) error { if b, err = s.Bytes(); err != nil { return err } - if len(b) > 0 && len(b) != 20 { + if len(b) != 20 { return fmt.Errorf("wrong size for To: %d", len(b)) } - if len(b) > 0 { - stx.To = &libcommon.Address{} - copy((*stx.To)[:], b) - } + stx.To = &libcommon.Address{} + copy((*stx.To)[:], b) if b, err = s.Uint256Bytes(); err != nil { return err diff --git a/core/types/blob_tx_wrapper.go b/core/types/blob_tx_wrapper.go index cc06694272c..654e53e7122 100644 --- a/core/types/blob_tx_wrapper.go +++ b/core/types/blob_tx_wrapper.go @@ -271,7 +271,7 @@ func (txw *BlobTxWrapper) ValidateBlobTransactionWrapper() error { // the following check isn't strictly necessary as it would be caught by blob gas processing // (and hence it is not explicitly in the spec for this function), but it doesn't hurt to fail // early in case we are getting spammed with too many blobs or there is a bug somewhere: - if uint64(l1) > fixedgas.MaxBlobsPerBlock { + if uint64(l1) > fixedgas.DefaultMaxBlobsPerBlock { return fmt.Errorf("number of blobs exceeds max: %v", l1) } kzgCtx := libkzg.Ctx() @@ -345,110 +345,6 @@ func (txw *BlobTxWrapper) IsContractDeploy() bool { return txw.Tx.IsContractDepl func (txw *BlobTxWrapper) Unwrap() Transaction { return &txw.Tx } -func (txw BlobTxWrapper) EncodingSize() int { - total, _, _, _, _ := txw.payloadSize() - envelopeSize := total - // Add envelope size and type size - if total >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(total))) - } - envelopeSize += 2 - return envelopeSize -} - -func (txw BlobTxWrapper) payloadSize() (int, int, int, int, int) { - total := 1 - txSize, _, _, _, _ := txw.Tx.payloadSize() - if txSize >= 56 { - total += libcommon.BitLenToByteLen(bits.Len(uint(txSize))) - } - total += txSize - - total++ - commitmentsSize := txw.Commitments.payloadSize() - if commitmentsSize >= 56 { - total += libcommon.BitLenToByteLen(bits.Len(uint(commitmentsSize))) - } - total += commitmentsSize - - total++ - blobsSize := txw.Blobs.payloadSize() - if blobsSize >= 56 { - total += libcommon.BitLenToByteLen(bits.Len(uint(blobsSize))) - } - total += blobsSize - - total++ - proofsSize := txw.Proofs.payloadSize() - if proofsSize >= 56 { - total += libcommon.BitLenToByteLen(bits.Len(uint(proofsSize))) - } - total += proofsSize - return total, txSize, commitmentsSize, blobsSize, proofsSize -} - -func (txw BlobTxWrapper) encodePayload(w io.Writer, b []byte, total, txSize, commitmentsSize, blobsSize, proofsSize int) error { - // prefix, encode txw payload size - if err := EncodeStructSizePrefix(total, w, b); err != nil { - return err - } - - txPayloadSize, nonceLen, gasLen, accessListLen, blobHashesLen := txw.Tx.payloadSize() - - if err := txw.Tx.encodePayload(w, b, txPayloadSize, nonceLen, gasLen, accessListLen, blobHashesLen); err != nil { - return err - } - - if err := txw.Blobs.encodePayload(w, b, blobsSize); err != nil { - return err - } - if err := txw.Commitments.encodePayload(w, b, commitmentsSize); err != nil { - return err - } - if err := txw.Proofs.encodePayload(w, b, proofsSize); err != nil { - return err - } - return nil -} - -func (txw *BlobTxWrapper) MarshalBinary(w io.Writer) error { - total, txSize, commitmentsSize, blobsSize, proofsSize := txw.payloadSize() - var b [33]byte - // encode TxType - b[0] = BlobTxType - if _, err := w.Write(b[:1]); err != nil { - return err - } - if err := txw.encodePayload(w, b[:], total, txSize, commitmentsSize, blobsSize, proofsSize); err != nil { - return err - } - return nil -} - -func (txw BlobTxWrapper) EncodeRLP(w io.Writer) error { - total, txSize, commitmentsSize, proofsSize, blobsSize := txw.payloadSize() - envelopeSize := total - if total >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(total))) - } - // size of struct prefix and TxType - envelopeSize += 2 - var b [33]byte - // envelope - if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil { - return err - } - // encode TxType - b[0] = BlobTxType - if _, err := w.Write(b[:1]); err != nil { - return err - } - if err := txw.encodePayload(w, b[:], total, txSize, commitmentsSize, proofsSize, blobsSize); err != nil { - return err - } - return nil -} - func (txw *BlobTxWrapper) DecodeRLP(s *rlp.Stream) error { _, err := s.List() if err != nil { @@ -473,3 +369,15 @@ func (txw *BlobTxWrapper) DecodeRLP(s *rlp.Stream) error { return s.ListEnd() } + +// We deliberately encode only the transaction payload because the only case we need to serialize +// blobs/commitments/proofs is when we reply to GetPooledTransactions (and that's handled by the txpool). +func (txw BlobTxWrapper) EncodingSize() int { + return txw.Tx.EncodingSize() +} +func (txw *BlobTxWrapper) MarshalBinary(w io.Writer) error { + return txw.Tx.MarshalBinary(w) +} +func (txw BlobTxWrapper) EncodeRLP(w io.Writer) error { + return txw.Tx.EncodeRLP(w) +} diff --git a/core/types/block.go b/core/types/block.go index 748cbcb7a59..1a434098bbf 100644 --- a/core/types/block.go +++ b/core/types/block.go @@ -24,23 +24,26 @@ import ( "fmt" "io" "math/big" - "math/bits" "reflect" "sync/atomic" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/gballet/go-verkle" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" rlp2 "github.com/ledgerwatch/erigon-lib/rlp" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rlp" ) var ( EmptyRootHash = libcommon.HexToHash("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") EmptyUncleHash = rlpHash([]*Header(nil)) + + ExtraVanityLength = 32 // Fixed number of extra-data prefix bytes reserved for signer vanity + ExtraSealLength = 65 // Fixed number of extra-data suffix bytes reserved for signer seal ) // A BlockNonce is a 64-bit hash which proves (combined with the @@ -128,25 +131,11 @@ func (h *Header) EncodingSize() int { encodingSize++ encodingSize += rlp.IntLenExcludingHead(h.Time) // size of Extra - encodingSize++ - switch len(h.Extra) { - case 0: - case 1: - if h.Extra[0] >= 128 { - encodingSize++ - } - default: - if len(h.Extra) >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(len(h.Extra)))) - } - encodingSize += len(h.Extra) - } + encodingSize += rlp2.StringLen(h.Extra) if len(h.AuRaSeal) != 0 { - encodingSize += 1 + rlp.IntLenExcludingHead(h.AuRaStep) + 1 + len(h.AuRaSeal) - if len(h.AuRaSeal) >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(len(h.AuRaSeal)))) - } + encodingSize += 1 + rlp.IntLenExcludingHead(h.AuRaStep) + encodingSize += rlp2.ListPrefixLen(len(h.AuRaSeal)) + len(h.AuRaSeal) } else { encodingSize += 33 /* MixDigest */ + 9 /* BlockNonce */ } @@ -175,26 +164,12 @@ func (h *Header) EncodingSize() int { if h.Verkle { // Encoding of Verkle Proof - encodingSize++ - switch len(h.VerkleProof) { - case 0: - case 1: - if h.VerkleProof[0] >= 128 { - encodingSize++ - } - default: - if len(h.VerkleProof) >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(len(h.VerkleProof)))) - } - encodingSize += len(h.VerkleProof) - } - encodingSize++ - + encodingSize += rlp2.StringLen(h.VerkleProof) var tmpBuffer bytes.Buffer if err := rlp.Encode(&tmpBuffer, h.VerkleKeyVals); err != nil { panic(err) } - encodingSize += tmpBuffer.Len() + encodingSize += rlp2.ListPrefixLen(tmpBuffer.Len()) + tmpBuffer.Len() } return encodingSize @@ -641,6 +616,23 @@ type RawBlock struct { Body *RawBody } +func (r RawBlock) AsBlock() (*Block, error) { + b := &Block{header: r.Header} + b.uncles = r.Body.Uncles + b.withdrawals = r.Body.Withdrawals + + txs := make([]Transaction, len(r.Body.Transactions)) + for i, tx := range r.Body.Transactions { + var err error + if txs[i], err = DecodeTransaction(tx); err != nil { + return nil, err + } + } + b.transactions = txs + + return b, nil +} + // Block represents an entire block in the Ethereum blockchain. type Block struct { header *Header @@ -681,45 +673,25 @@ func (rb RawBody) EncodingSize() int { func (rb RawBody) payloadSize() (payloadSize, txsLen, unclesLen, withdrawalsLen int) { // size of Transactions - payloadSize++ for _, tx := range rb.Transactions { txsLen += len(tx) } - if txsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen))) - } - payloadSize += txsLen + payloadSize += rlp2.ListPrefixLen(txsLen) + txsLen // size of Uncles - payloadSize++ for _, uncle := range rb.Uncles { - unclesLen++ uncleLen := uncle.EncodingSize() - if uncleLen >= 56 { - unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen))) - } - unclesLen += uncleLen + unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen } - if unclesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen))) - } - payloadSize += unclesLen + payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen // size of Withdrawals if rb.Withdrawals != nil { - payloadSize++ for _, withdrawal := range rb.Withdrawals { - withdrawalsLen++ withdrawalLen := withdrawal.EncodingSize() - if withdrawalLen >= 56 { - withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen))) - } - withdrawalsLen += withdrawalLen + withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen } - if withdrawalsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen))) - } - payloadSize += withdrawalsLen + payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen } return payloadSize, txsLen, unclesLen, withdrawalsLen @@ -836,9 +808,6 @@ func (rb *RawBody) DecodeRLP(s *rlp.Stream) error { } func (bfs BodyForStorage) payloadSize() (payloadSize, unclesLen, withdrawalsLen int) { - - payloadSize++ - baseTxIdLen := 1 + rlp.IntLenExcludingHead(bfs.BaseTxId) txAmountLen := 1 + rlp.IntLenExcludingHead(uint64(bfs.TxAmount)) @@ -847,33 +816,18 @@ func (bfs BodyForStorage) payloadSize() (payloadSize, unclesLen, withdrawalsLen // size of Uncles for _, uncle := range bfs.Uncles { - unclesLen++ uncleLen := uncle.EncodingSize() - if uncleLen >= 56 { - unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen))) - } - unclesLen += uncleLen - } - if unclesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen))) + unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen } - payloadSize += unclesLen + payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen // size of Withdrawals if bfs.Withdrawals != nil { - payloadSize++ for _, withdrawal := range bfs.Withdrawals { - withdrawalsLen++ withdrawalLen := withdrawal.EncodingSize() - if withdrawalLen >= 56 { - withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen))) - } - withdrawalsLen += withdrawalLen - } - if withdrawalsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen))) + withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen } - payloadSize += withdrawalsLen + payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen } return payloadSize, unclesLen, withdrawalsLen @@ -995,50 +949,26 @@ func (bb Body) EncodingSize() int { func (bb Body) payloadSize() (payloadSize int, txsLen, unclesLen, withdrawalsLen int) { // size of Transactions - payloadSize++ for _, tx := range bb.Transactions { - txsLen++ txLen := tx.EncodingSize() - if txLen >= 56 { - txsLen += libcommon.BitLenToByteLen(bits.Len(uint(txLen))) - } - txsLen += txLen - } - if txsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen))) + txsLen += rlp2.ListPrefixLen(txLen) + txLen } - payloadSize += txsLen + payloadSize += rlp2.ListPrefixLen(txsLen) + txsLen // size of Uncles - payloadSize++ for _, uncle := range bb.Uncles { - unclesLen++ uncleLen := uncle.EncodingSize() - if uncleLen >= 56 { - unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen))) - } - unclesLen += uncleLen - } - if unclesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen))) + unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen } - payloadSize += unclesLen + payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen // size of Withdrawals if bb.Withdrawals != nil { - payloadSize++ for _, withdrawal := range bb.Withdrawals { - withdrawalsLen++ withdrawalLen := withdrawal.EncodingSize() - if withdrawalLen >= 56 { - withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen))) - } - withdrawalsLen += withdrawalLen + withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen } - if withdrawalsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen))) - } - payloadSize += withdrawalsLen + payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen } return payloadSize, txsLen, unclesLen, withdrawalsLen @@ -1342,58 +1272,30 @@ func (bb *Block) DecodeRLP(s *rlp.Stream) error { func (bb Block) payloadSize() (payloadSize int, txsLen, unclesLen, withdrawalsLen int) { // size of Header - payloadSize++ headerLen := bb.header.EncodingSize() - if headerLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(headerLen))) - } - payloadSize += headerLen + payloadSize += rlp2.ListPrefixLen(headerLen) + headerLen // size of Transactions - payloadSize++ for _, tx := range bb.transactions { - txsLen++ txLen := tx.EncodingSize() - if txLen >= 56 { - txsLen += libcommon.BitLenToByteLen(bits.Len(uint(txLen))) - } - txsLen += txLen - } - if txsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen))) + txsLen += rlp2.ListPrefixLen(txLen) + txLen } - payloadSize += txsLen + payloadSize += rlp2.ListPrefixLen(txsLen) + txsLen // size of Uncles - payloadSize++ for _, uncle := range bb.uncles { - unclesLen++ uncleLen := uncle.EncodingSize() - if uncleLen >= 56 { - unclesLen += libcommon.BitLenToByteLen(bits.Len(uint(uncleLen))) - } - unclesLen += uncleLen - } - if unclesLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(unclesLen))) + unclesLen += rlp2.ListPrefixLen(uncleLen) + uncleLen } - payloadSize += unclesLen + payloadSize += rlp2.ListPrefixLen(unclesLen) + unclesLen // size of Withdrawals if bb.withdrawals != nil { - payloadSize++ for _, withdrawal := range bb.withdrawals { - withdrawalsLen++ withdrawalLen := withdrawal.EncodingSize() - if withdrawalLen >= 56 { - withdrawalLen += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalLen))) - } - withdrawalsLen += withdrawalLen + withdrawalsLen += rlp2.ListPrefixLen(withdrawalLen) + withdrawalLen } - if withdrawalsLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(withdrawalsLen))) - } - payloadSize += withdrawalsLen + payloadSize += rlp2.ListPrefixLen(withdrawalsLen) + withdrawalsLen } return payloadSize, txsLen, unclesLen, withdrawalsLen @@ -1477,7 +1379,7 @@ func (b *Block) ParentHash() libcommon.Hash { return b.header.ParentHash } func (b *Block) TxHash() libcommon.Hash { return b.header.TxHash } func (b *Block) ReceiptHash() libcommon.Hash { return b.header.ReceiptHash } func (b *Block) UncleHash() libcommon.Hash { return b.header.UncleHash } -func (b *Block) Extra() []byte { return common.CopyBytes(b.header.Extra) } +func (b *Block) Extra() []byte { return libcommon.CopyBytes(b.header.Extra) } func (b *Block) BaseFee() *big.Int { if b.header.BaseFee == nil { return nil @@ -1552,14 +1454,24 @@ func (b *Block) SanityCheck() error { return b.header.SanityCheck() } -// HashCheck checks that uncle, transaction, and withdrawals hashes are correct. +// HashCheck checks that transactions, receipts, uncles and withdrawals hashes are correct. func (b *Block) HashCheck() error { - if hash := CalcUncleHash(b.Uncles()); hash != b.UncleHash() { - return fmt.Errorf("block has invalid uncle hash: have %x, exp: %x", hash, b.UncleHash()) - } if hash := DeriveSha(b.Transactions()); hash != b.TxHash() { return fmt.Errorf("block has invalid transaction hash: have %x, exp: %x", hash, b.TxHash()) } + + if len(b.transactions) > 0 && b.ReceiptHash() == EmptyRootHash { + return fmt.Errorf("block has empty receipt hash: %x but it includes %x transactions", b.ReceiptHash(), len(b.transactions)) + } + + if len(b.transactions) == 0 && b.ReceiptHash() != EmptyRootHash { + return fmt.Errorf("block has non-empty receipt hash: %x but no transactions", b.ReceiptHash()) + } + + if hash := CalcUncleHash(b.Uncles()); hash != b.UncleHash() { + return fmt.Errorf("block has invalid uncle hash: have %x, exp: %x", hash, b.UncleHash()) + } + if b.WithdrawalsHash() == nil { if b.Withdrawals() != nil { return errors.New("header missing WithdrawalsHash") @@ -1598,9 +1510,15 @@ func CopyTxs(in Transactions) Transactions { if err != nil { panic(fmt.Errorf("DecodeTransactions failed: %w", err)) } - for i := 0; i < len(in); i++ { - if s, ok := in[i].GetSender(); ok { - out[i].SetSender(s) + for i, tx := range in { + if txWrapper, ok := tx.(*BlobTxWrapper); ok { + blobTx := out[i].(*BlobTx) + out[i] = &BlobTxWrapper{ + Tx: *blobTx, + Commitments: txWrapper.Commitments.copy(), + Blobs: txWrapper.Blobs.copy(), + Proofs: txWrapper.Proofs.copy(), + } } } return out diff --git a/core/types/block_test.go b/core/types/block_test.go index d42fe6b0823..4e2a8303d3f 100644 --- a/core/types/block_test.go +++ b/core/types/block_test.go @@ -28,6 +28,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" types2 "github.com/ledgerwatch/erigon-lib/types" + "github.com/ledgerwatch/log/v3" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -39,8 +40,89 @@ import ( "github.com/ledgerwatch/erigon/rlp" ) +// the following 2 functions are replica for the test +// This is a replica of `bor.GetValidatorBytes` function +// This was needed because currently, `IsParallelUniverse` will always return false. +func GetValidatorBytesTest(h *Header) []byte { + if len(h.Extra) < ExtraVanityLength+ExtraSealLength { + log.Error("length of extra is less than vanity and seal") + return nil + } + + var blockExtraData BlockExtraDataTest + if err := rlp.DecodeBytes(h.Extra[ExtraVanityLength:len(h.Extra)-ExtraSealLength], &blockExtraData); err != nil { + log.Error("error while decoding block extra data", "err", err) + return nil + } + + return blockExtraData.ValidatorBytes +} + +func GetTxDependencyTest(b *Block) [][]uint64 { + if len(b.header.Extra) < ExtraVanityLength+ExtraSealLength { + log.Error("length of extra less is than vanity and seal") + return nil + } + + var blockExtraData BlockExtraDataTest + if err := rlp.DecodeBytes(b.header.Extra[ExtraVanityLength:len(b.header.Extra)-ExtraSealLength], &blockExtraData); err != nil { + log.Error("error while decoding block extra data", "err", err) + return nil + } + + return blockExtraData.TxDependency +} + +type BlockExtraDataTest struct { + // Validator bytes of bor + ValidatorBytes []byte + + // length of TxDependency -> n (n = number of transactions in the block) + // length of TxDependency[i] -> k (k = a whole number) + // k elements in TxDependency[i] -> transaction indexes on which transaction i is dependent on + TxDependency [][]uint64 +} + +func TestTxDependencyBlockDecoding(t *testing.T) { + t.Parallel() + + blockEnc := common.FromHex("f90270f9026ba00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000948888f1f195afa192cfee860698584c030f4c9db1a0ef1552a40b7165c3cd773806b9e0c165b75356e0314bf0706f279c729f51e017a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000080832fefd8825208845506eb07b8710000000000000000000000000000000000000000000000000000000000000000cf8776616c20736574c6c20201c201800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0bd4472abb6659ebe3ee06ee4d7b72a00a9f4d001caca51342001075469aff498880000000000000000c0c0") + + var block Block + + if err := rlp.DecodeBytes(blockEnc, &block); err != nil { + t.Fatal("decode error: ", err) + } + check := func(f string, got, want interface{}) { + if !reflect.DeepEqual(got, want) { + t.Errorf("%s mismatch: got %v, want %v", f, got, want) + } + } + + check("Coinbase", block.Coinbase(), libcommon.HexToAddress("8888f1f195afa192cfee860698584c030f4c9db1")) + check("MixDigest", block.MixDigest(), libcommon.HexToHash("bd4472abb6659ebe3ee06ee4d7b72a00a9f4d001caca51342001075469aff498")) + check("Root", block.Root(), libcommon.HexToHash("ef1552a40b7165c3cd773806b9e0c165b75356e0314bf0706f279c729f51e017")) + check("Time", block.Time(), uint64(1426516743)) + + validatorBytes := GetValidatorBytesTest(block.header) + txDependency := GetTxDependencyTest(&block) + + check("validatorBytes", validatorBytes, []byte("val set")) + check("txDependency", txDependency, [][]uint64{{2, 1}, {1, 0}}) + + ourBlockEnc, err := rlp.EncodeToBytes(&block) + + if err != nil { + t.Fatal("encode error: ", err) + } + if !bytes.Equal(ourBlockEnc, blockEnc) { + t.Errorf("encoded block mismatch:\ngot: %x\nwant: %x", ourBlockEnc, blockEnc) + } +} + // from bcValidBlockTest.json, "SimpleTx" func TestBlockEncoding(t *testing.T) { + t.Parallel() blockEnc := common.FromHex("f90260f901f9a083cafc574e1f51ba9dc0568fc617a08ea2429fb384059c972f13b19fa1c8dd55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0ef1552a40b7165c3cd773806b9e0c165b75356e0314bf0706f279c729f51e017a05fe50b260da6308036625b850b5d6ced6d0a9f814c0688bc91ffb7b7a3a54b67a0bc37d79753ad738a6dac4921e57392f145d8887476de3f783dfa7edae9283e52b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000001832fefd8825208845506eb0780a0bd4472abb6659ebe3ee06ee4d7b72a00a9f4d001caca51342001075469aff49888a13a5a8c8f2bb1c4f861f85f800a82c35094095e7baea6a6c7c4c2dfeb977efac326af552d870a801ba09bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094fa08a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b1c0") var block Block if err := rlp.DecodeBytes(blockEnc, &block); err != nil { @@ -64,7 +146,7 @@ func TestBlockEncoding(t *testing.T) { check("Size", block.Size(), common.StorageSize(len(blockEnc))) var tx1 Transaction = NewTransaction(0, libcommon.HexToAddress("095e7baea6a6c7c4c2dfeb977efac326af552d87"), uint256.NewInt(10), 50000, uint256.NewInt(10), nil) - tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")) + tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), libcommon.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")) check("len(Transactions)", len(block.Transactions()), 1) check("Transactions[0].Hash", block.Transactions()[0].Hash(), tx1.Hash()) ourBlockEnc, err := rlp.EncodeToBytes(&block) @@ -77,6 +159,7 @@ func TestBlockEncoding(t *testing.T) { } func TestEIP1559BlockEncoding(t *testing.T) { + t.Parallel() blockEnc := common.FromHex("f9030bf901fea083cafc574e1f51ba9dc0568fc617a08ea2429fb384059c972f13b19fa1c8dd55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0ef1552a40b7165c3cd773806b9e0c165b75356e0314bf0706f279c729f51e017a05fe50b260da6308036625b850b5d6ced6d0a9f814c0688bc91ffb7b7a3a54b67a0bc37d79753ad738a6dac4921e57392f145d8887476de3f783dfa7edae9283e52b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008302000001832fefd8825208845506eb0780a0bd4472abb6659ebe3ee06ee4d7b72a00a9f4d001caca51342001075469aff49888a13a5a8c8f2bb1c4843b9aca00f90106f85f800a82c35094095e7baea6a6c7c4c2dfeb977efac326af552d870a801ba09bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094fa08a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b1b8a302f8a0018080843b9aca008301e24194095e7baea6a6c7c4c2dfeb977efac326af552d878080f838f7940000000000000000000000000000000000000001e1a0000000000000000000000000000000000000000000000000000000000000000080a0fe38ca4e44a30002ac54af7cf922a6ac2ba11b7d22f548e8ecb3f51f41cb31b0a06de6a5cbae13c0c856e33acf021b51819636cfc009d39eafb9f606d546e305a8c0") var block Block if err := rlp.DecodeBytes(blockEnc, &block); err != nil { @@ -102,7 +185,7 @@ func TestEIP1559BlockEncoding(t *testing.T) { check("BaseFee", block.BaseFee(), new(big.Int).SetUint64(params.InitialBaseFee)) var tx1 Transaction = NewTransaction(0, libcommon.HexToAddress("095e7baea6a6c7c4c2dfeb977efac326af552d87"), new(uint256.Int).SetUint64(10), 50000, new(uint256.Int).SetUint64(10), nil) - tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")) + tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), libcommon.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100")) addr := libcommon.HexToAddress("0x0000000000000000000000000000000000000001") accesses := types2.AccessList{types2.AccessTuple{ @@ -125,7 +208,7 @@ func TestEIP1559BlockEncoding(t *testing.T) { Tip: u256.Num0, AccessList: accesses, } - tx2, err := tx2.WithSignature(*LatestSignerForChainID(big.NewInt(1)), common.Hex2Bytes("fe38ca4e44a30002ac54af7cf922a6ac2ba11b7d22f548e8ecb3f51f41cb31b06de6a5cbae13c0c856e33acf021b51819636cfc009d39eafb9f606d546e305a800")) + tx2, err := tx2.WithSignature(*LatestSignerForChainID(big.NewInt(1)), libcommon.Hex2Bytes("fe38ca4e44a30002ac54af7cf922a6ac2ba11b7d22f548e8ecb3f51f41cb31b06de6a5cbae13c0c856e33acf021b51819636cfc009d39eafb9f606d546e305a800")) if err != nil { t.Fatal("invalid signature error: ", err) } @@ -144,6 +227,7 @@ func TestEIP1559BlockEncoding(t *testing.T) { } func TestEIP2718BlockEncoding(t *testing.T) { + t.Parallel() blockEnc := common.FromHex("f90319f90211a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347948888f1f195afa192cfee860698584c030f4c9db1a0ef1552a40b7165c3cd773806b9e0c165b75356e0314bf0706f279c729f51e017a0e6e49996c7ec59f7a23d22b83239a60151512c65613bf84a0d7da336399ebc4aa0cafe75574d59780665a97fbfd11365c7545aa8f1abf4e5e12e8243334ef7286bb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000820200832fefd882a410845506eb0796636f6f6c65737420626c6f636b206f6e20636861696ea0bd4472abb6659ebe3ee06ee4d7b72a00a9f4d001caca51342001075469aff49888a13a5a8c8f2bb1c4f90101f85f800a82c35094095e7baea6a6c7c4c2dfeb977efac326af552d870a801ba09bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094fa08a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b1b89e01f89b01800a8301e24194095e7baea6a6c7c4c2dfeb977efac326af552d878080f838f7940000000000000000000000000000000000000001e1a0000000000000000000000000000000000000000000000000000000000000000001a03dbacc8d0259f2508625e97fdfc57cd85fdd16e5821bc2c10bdd1a52649e8335a0476e10695b183a87b0aa292a7f4b78ef0c3fbe62aa2c42c84e1d9c3da159ef14c0") var block Block if err := rlp.DecodeBytes(blockEnc, &block); err != nil { @@ -177,7 +261,7 @@ func TestEIP2718BlockEncoding(t *testing.T) { }, GasPrice: ten, } - sig := common.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100") + sig := libcommon.Hex2Bytes("9bea4c4daac7c7c52e093e6a4c35dbbcf8856f1af7b059ba20253e70848d094f8a8fae537ce25ed8cb5af9adac3f141af69bd515bd2ba031522df09b97dd72b100") tx1, _ = tx1.WithSignature(*LatestSignerForChainID(nil), sig) chainID, _ := uint256.FromBig(big.NewInt(1)) @@ -195,7 +279,7 @@ func TestEIP2718BlockEncoding(t *testing.T) { }, AccessList: types2.AccessList{{Address: addr, StorageKeys: []libcommon.Hash{{0}}}}, } - sig2 := common.Hex2Bytes("3dbacc8d0259f2508625e97fdfc57cd85fdd16e5821bc2c10bdd1a52649e8335476e10695b183a87b0aa292a7f4b78ef0c3fbe62aa2c42c84e1d9c3da159ef1401") + sig2 := libcommon.Hex2Bytes("3dbacc8d0259f2508625e97fdfc57cd85fdd16e5821bc2c10bdd1a52649e8335476e10695b183a87b0aa292a7f4b78ef0c3fbe62aa2c42c84e1d9c3da159ef1401") tx2, _ = tx2.WithSignature(*LatestSignerForChainID(big.NewInt(1)), sig2) check("len(Transactions)", len(block.Transactions()), 2) @@ -213,6 +297,7 @@ func TestEIP2718BlockEncoding(t *testing.T) { } func TestUncleHash(t *testing.T) { + t.Parallel() uncles := make([]*Header, 0) h := CalcUncleHash(uncles) exp := libcommon.HexToHash("1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347") @@ -277,6 +362,7 @@ func makeBenchBlock() *Block { } func TestCanEncodeAndDecodeRawBody(t *testing.T) { + t.Parallel() body := &RawBody{ Uncles: []*Header{ { @@ -319,12 +405,12 @@ func TestCanEncodeAndDecodeRawBody(t *testing.T) { if err != nil { t.Fatal(err) } - rlpBytes := common.CopyBytes(writer.Bytes()) + rlpBytes := libcommon.CopyBytes(writer.Bytes()) writer.Reset() writer.WriteString(hexutility.Encode(rlpBytes)) var rawBody RawBody - fromHex := common.CopyBytes(common.FromHex(writer.String())) + fromHex := libcommon.CopyBytes(common.FromHex(writer.String())) bodyReader := bytes.NewReader(fromHex) stream := rlp.NewStream(bodyReader, 0) @@ -359,6 +445,7 @@ func TestCanEncodeAndDecodeRawBody(t *testing.T) { } func TestAuRaHeaderEncoding(t *testing.T) { + t.Parallel() difficulty, ok := new(big.Int).SetString("8398142613866510000000000000000000000000000000", 10) require.True(t, ok) @@ -390,6 +477,7 @@ func TestAuRaHeaderEncoding(t *testing.T) { } func TestWithdrawalsEncoding(t *testing.T) { + t.Parallel() header := Header{ ParentHash: libcommon.HexToHash("0x8b00fcf1e541d371a3a1b79cc999a85cc3db5ee5637b5159646e1acd3613fd15"), Coinbase: libcommon.HexToAddress("0x571846e42308df2dad8ed792f44a8bfddf0acb4d"), @@ -443,6 +531,7 @@ func TestWithdrawalsEncoding(t *testing.T) { } func TestBlockRawBodyPreShanghai(t *testing.T) { + t.Parallel() require := require.New(t) const rawBodyForStorageRlp = "f901f4c0f901f0f901eda00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808080808080a00000000000000000000000000000000000000000000000000000000000000000880000000000000000" @@ -457,6 +546,7 @@ func TestBlockRawBodyPreShanghai(t *testing.T) { } func TestBlockRawBodyPostShanghaiNoWithdrawals(t *testing.T) { + t.Parallel() require := require.New(t) const rawBodyForStorageRlp = "f901f5c0f901f0f901eda00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808080808080a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0" @@ -472,6 +562,7 @@ func TestBlockRawBodyPostShanghaiNoWithdrawals(t *testing.T) { } func TestBlockRawBodyPostShanghaiWithdrawals(t *testing.T) { + t.Parallel() require := require.New(t) const rawBodyForStorageRlp = "f90230c0f901f0f901eda00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808080808080a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f83adc0f82157c94ff000000000000000000000000000000000000008203e8dc1082157d94ff000000000000000000000000000000000000008203e9" @@ -486,3 +577,29 @@ func TestBlockRawBodyPostShanghaiWithdrawals(t *testing.T) { require.Equal(0, len(body.Transactions)) require.Equal(2, len(body.Withdrawals)) } + +func TestCopyTxs(t *testing.T) { + var txs Transactions + txs = append(txs, &LegacyTx{ + CommonTx: CommonTx{ + Nonce: 0, + Value: new(uint256.Int).SetUint64(10000), + Gas: 50000, + Data: []byte("Sparta"), + }, + GasPrice: new(uint256.Int).SetUint64(10), + }) + + populateBlobTxs() + for _, tx := range dummyBlobTxs { + txs = append(txs, tx) + } + + populateBlobWrapperTxs() + for _, tx := range dummyBlobWrapperTxs { + txs = append(txs, tx) + } + + copies := CopyTxs(txs) + assert.Equal(t, txs, copies) +} diff --git a/core/types/bloom9_test.go b/core/types/bloom9_test.go index 97b1f8b9f8e..d6e2a469254 100644 --- a/core/types/bloom9_test.go +++ b/core/types/bloom9_test.go @@ -28,6 +28,7 @@ import ( ) func TestBloom(t *testing.T) { + t.Parallel() positive := []string{ "testtest", "test", @@ -58,6 +59,7 @@ func TestBloom(t *testing.T) { // TestBloomExtensively does some more thorough tests func TestBloomExtensively(t *testing.T) { + t.Parallel() var exp = libcommon.HexToHash("c8d3ca65cdb4874300a9e39475508f23ed6da09fdbc487f89a2dcf50b09eb263") var b Bloom // Add 100 "random" things diff --git a/core/types/bor_receipt.go b/core/types/bor_receipt.go index a993de490c4..16b30605a9d 100644 --- a/core/types/bor_receipt.go +++ b/core/types/bor_receipt.go @@ -1,13 +1,13 @@ package types import ( + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "sort" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/crypto" ) diff --git a/core/types/dynamic_fee_tx.go b/core/types/dynamic_fee_tx.go index 0fa8b865569..5ee0cf037d9 100644 --- a/core/types/dynamic_fee_tx.go +++ b/core/types/dynamic_fee_tx.go @@ -21,15 +21,14 @@ import ( "fmt" "io" "math/big" - "math/bits" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/rlp" ) @@ -82,7 +81,7 @@ func (tx DynamicFeeTransaction) copy() *DynamicFeeTransaction { }, Nonce: tx.Nonce, To: tx.To, // TODO: copy pointed-to address - Data: common.CopyBytes(tx.Data), + Data: libcommon.CopyBytes(tx.Data), Gas: tx.Gas, // These are copied below. Value: new(uint256.Int), @@ -117,13 +116,8 @@ func (tx DynamicFeeTransaction) GetAccessList() types2.AccessList { func (tx DynamicFeeTransaction) EncodingSize() int { payloadSize, _, _, _ := tx.payloadSize() - envelopeSize := payloadSize // Add envelope size and type size - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } - envelopeSize += 2 - return envelopeSize + return 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize } func (tx DynamicFeeTransaction) payloadSize() (payloadSize int, nonceLen, gasLen, accessListLen int) { @@ -153,26 +147,10 @@ func (tx DynamicFeeTransaction) payloadSize() (payloadSize int, nonceLen, gasLen payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(tx.Value) // size of Data - payloadSize++ - switch len(tx.Data) { - case 0: - case 1: - if tx.Data[0] >= 128 { - payloadSize++ - } - default: - if len(tx.Data) >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(len(tx.Data)))) - } - payloadSize += len(tx.Data) - } + payloadSize += rlp2.StringLen(tx.Data) // size of AccessList - payloadSize++ accessListLen = accessListSize(tx.AccessList) - if accessListLen >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(accessListLen))) - } - payloadSize += accessListLen + payloadSize += rlp2.ListPrefixLen(accessListLen) + accessListLen // size of V payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(&tx.V) @@ -296,12 +274,8 @@ func (tx DynamicFeeTransaction) encodePayload(w io.Writer, b []byte, payloadSize func (tx DynamicFeeTransaction) EncodeRLP(w io.Writer) error { payloadSize, nonceLen, gasLen, accessListLen := tx.payloadSize() - envelopeSize := payloadSize - if payloadSize >= 56 { - envelopeSize += libcommon.BitLenToByteLen(bits.Len(uint(payloadSize))) - } // size of struct prefix and TxType - envelopeSize += 2 + envelopeSize := 1 + rlp2.ListPrefixLen(payloadSize) + payloadSize var b [33]byte // envelope if err := rlp.EncodeStringSizePrefix(envelopeSize, w, b[:]); err != nil { diff --git a/core/types/gen_erigon_log_json.go b/core/types/gen_erigon_log_json.go index 2360e2fdba0..02e6505047c 100644 --- a/core/types/gen_erigon_log_json.go +++ b/core/types/gen_erigon_log_json.go @@ -5,11 +5,10 @@ package types import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*logMarshaling)(nil) diff --git a/core/types/gen_header_json.go b/core/types/gen_header_json.go index 17b70798b48..9eee9eeb7d2 100644 --- a/core/types/gen_header_json.go +++ b/core/types/gen_header_json.go @@ -5,12 +5,11 @@ package types import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*headerMarshaling)(nil) diff --git a/core/types/gen_log_json.go b/core/types/gen_log_json.go index e3db5873dc4..abd1dfd2ebe 100644 --- a/core/types/gen_log_json.go +++ b/core/types/gen_log_json.go @@ -5,11 +5,10 @@ package types import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*logMarshaling)(nil) diff --git a/core/types/gen_receipt_json.go b/core/types/gen_receipt_json.go index 8a898648386..34b64b591b7 100644 --- a/core/types/gen_receipt_json.go +++ b/core/types/gen_receipt_json.go @@ -5,12 +5,11 @@ package types import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*receiptMarshaling)(nil) diff --git a/core/types/gen_withdrawal_json.go b/core/types/gen_withdrawal_json.go index c56eb61537d..6ed318cc54b 100644 --- a/core/types/gen_withdrawal_json.go +++ b/core/types/gen_withdrawal_json.go @@ -4,9 +4,9 @@ package types import ( "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*withdrawalMarshaling)(nil) diff --git a/core/types/genesis.go b/core/types/genesis.go index 7f41e39d616..d6f0e8cbc21 100644 --- a/core/types/genesis.go +++ b/core/types/genesis.go @@ -41,39 +41,35 @@ var ErrGenesisNoConfig = errors.New("genesis has no chain configuration") // Genesis specifies the header fields, state of a genesis block. It also defines hard // fork switch-over blocks through the chain configuration. type Genesis struct { - Config *chain.Config `json:"config"` - Nonce uint64 `json:"nonce"` - Timestamp uint64 `json:"timestamp"` - ExtraData []byte `json:"extraData"` - GasLimit uint64 `json:"gasLimit" gencodec:"required"` - Difficulty *big.Int `json:"difficulty" gencodec:"required"` - Mixhash common.Hash `json:"mixHash"` - Coinbase common.Address `json:"coinbase"` - BaseFee *big.Int `json:"baseFeePerGas"` - BlobGasUsed *uint64 `json:"blobGasUsed"` - ExcessBlobGas *uint64 `json:"excessBlobGas"` - Alloc GenesisAlloc `json:"alloc" gencodec:"required"` - AuRaStep uint64 `json:"auRaStep"` - AuRaSeal []byte `json:"auRaSeal"` - ParentBeaconBlockRoot *common.Hash `json:"parentBeaconBlockRoot"` + Config *chain.Config `json:"config"` + Nonce uint64 `json:"nonce"` + Timestamp uint64 `json:"timestamp"` + ExtraData []byte `json:"extraData"` + GasLimit uint64 `json:"gasLimit" gencodec:"required"` + Difficulty *big.Int `json:"difficulty" gencodec:"required"` + Mixhash common.Hash `json:"mixHash"` + Coinbase common.Address `json:"coinbase"` + Alloc GenesisAlloc `json:"alloc" gencodec:"required"` + + AuRaStep uint64 `json:"auRaStep"` + AuRaSeal []byte `json:"auRaSeal"` // These fields are used for consensus tests. Please don't use them // in actual genesis blocks. Number uint64 `json:"number"` GasUsed uint64 `json:"gasUsed"` ParentHash common.Hash `json:"parentHash"` + + // Header fields added in London and later hard forks + BaseFee *big.Int `json:"baseFeePerGas"` // EIP-1559 + BlobGasUsed *uint64 `json:"blobGasUsed"` // EIP-4844 + ExcessBlobGas *uint64 `json:"excessBlobGas"` // EIP-4844 + ParentBeaconBlockRoot *common.Hash `json:"parentBeaconBlockRoot"` // EIP-4788 } // GenesisAlloc specifies the initial state that is part of the genesis block. type GenesisAlloc map[common.Address]GenesisAccount -type AuthorityRoundSeal struct { - /// Seal step. - Step uint64 `json:"step"` - /// Seal signature. - Signature common.Hash `json:"signature"` -} - func (ga *GenesisAlloc) UnmarshalJSON(data []byte) error { m := make(map[common2.UnprefixedAddress]GenesisAccount) if err := json.Unmarshal(data, &m); err != nil { @@ -86,6 +82,21 @@ func (ga *GenesisAlloc) UnmarshalJSON(data []byte) error { return nil } +func DecodeGenesisAlloc(i interface{}) (GenesisAlloc, error) { + var alloc GenesisAlloc + + b, err := json.Marshal(i) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(b, &alloc); err != nil { + return nil, err + } + + return alloc, nil +} + // GenesisAccount is an account in the state of the genesis block. // Either use "constructor" for deployment code or "code" directly for the final code. type GenesisAccount struct { diff --git a/core/types/hashing_test.go b/core/types/hashing_test.go index 5150a5b9a08..56d5e8235d4 100644 --- a/core/types/hashing_test.go +++ b/core/types/hashing_test.go @@ -8,7 +8,6 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/trie" ) @@ -25,6 +24,7 @@ func genTransactions(n uint64) Transactions { } func TestEncodeUint(t *testing.T) { + t.Parallel() for i := 0; i < 64000; i++ { bbOld := bytes.NewBuffer(make([]byte, 10)) bbNew := bytes.NewBuffer(make([]byte, 10)) @@ -42,6 +42,7 @@ func TestEncodeUint(t *testing.T) { } func TestDeriveSha(t *testing.T) { + t.Parallel() tests := []DerivableList{ Transactions{}, genTransactions(1), @@ -84,7 +85,7 @@ func legacyDeriveSha(list DerivableList) libcommon.Hash { valbuf.Reset() _ = rlp.Encode(keybuf, uint(i)) list.EncodeIndex(i, valbuf) - trie.Update(keybuf.Bytes(), common.CopyBytes(valbuf.Bytes())) + trie.Update(keybuf.Bytes(), libcommon.CopyBytes(valbuf.Bytes())) } return trie.Hash() } diff --git a/core/types/legacy_tx.go b/core/types/legacy_tx.go index 92c12f2f964..7e183d6b630 100644 --- a/core/types/legacy_tx.go +++ b/core/types/legacy_tx.go @@ -21,14 +21,13 @@ import ( "fmt" "io" "math/big" - "math/bits" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/rlp" ) @@ -175,7 +174,7 @@ func (tx LegacyTx) copy() *LegacyTx { }, Nonce: tx.Nonce, To: tx.To, // TODO: copy pointed-to address - Data: common.CopyBytes(tx.Data), + Data: libcommon.CopyBytes(tx.Data), Gas: tx.Gas, // These are initialized below. Value: new(uint256.Int), @@ -215,19 +214,7 @@ func (tx LegacyTx) payloadSize() (payloadSize int, nonceLen, gasLen int) { payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(tx.Value) // size of Data - payloadSize++ - switch len(tx.Data) { - case 0: - case 1: - if tx.Data[0] >= 128 { - payloadSize++ - } - default: - if len(tx.Data) >= 56 { - payloadSize += libcommon.BitLenToByteLen(bits.Len(uint(len(tx.Data)))) - } - payloadSize += len(tx.Data) - } + payloadSize += rlp2.StringLen(tx.Data) // size of V payloadSize++ payloadSize += rlp.Uint256LenExcludingHead(&tx.V) diff --git a/core/types/log.go b/core/types/log.go index 552300f49a6..f566bf0c372 100644 --- a/core/types/log.go +++ b/core/types/log.go @@ -17,12 +17,12 @@ package types import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "io" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rlp" ) diff --git a/core/types/log_test.go b/core/types/log_test.go index 408bb33aaef..c6ecbc348f1 100644 --- a/core/types/log_test.go +++ b/core/types/log_test.go @@ -22,10 +22,10 @@ import ( "reflect" "testing" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/davecgh/go-spew/spew" libcommon "github.com/ledgerwatch/erigon-lib/common" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var unmarshalLogTests = map[string]struct { @@ -106,6 +106,7 @@ var unmarshalLogTests = map[string]struct { } func TestUnmarshalLog(t *testing.T) { + t.Parallel() dumper := spew.ConfigState{DisableMethods: true, Indent: " "} for name, test := range unmarshalLogTests { var log *Log @@ -136,6 +137,7 @@ func checkError(t *testing.T, testname string, got, want error) bool { } func TestFilterLogsTopics(t *testing.T) { + t.Parallel() // hashes and addresses to make test more readable var ( A libcommon.Hash = [32]byte{1} diff --git a/core/types/receipt.go b/core/types/receipt.go index bc3a4d9a7ba..e5689de13f0 100644 --- a/core/types/receipt.go +++ b/core/types/receipt.go @@ -20,13 +20,13 @@ import ( "bytes" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "io" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" ) diff --git a/core/types/receipt_test.go b/core/types/receipt_test.go index cef57f007db..4eb2f1a9d67 100644 --- a/core/types/receipt_test.go +++ b/core/types/receipt_test.go @@ -35,6 +35,7 @@ import ( ) func TestDecodeEmptyTypedReceipt(t *testing.T) { + t.Parallel() input := []byte{0x80} var r Receipt err := rlp.DecodeBytes(input, &r) @@ -44,6 +45,7 @@ func TestDecodeEmptyTypedReceipt(t *testing.T) { } func TestLegacyReceiptDecoding(t *testing.T) { + t.Parallel() tests := []struct { name string encode func(*Receipt) ([]byte, error) @@ -78,7 +80,9 @@ func TestLegacyReceiptDecoding(t *testing.T) { receipt.Bloom = CreateBloom(Receipts{receipt}) for _, tc := range tests { + tc := tc t.Run(tc.name, func(t *testing.T) { + t.Parallel() enc, err := tc.encode(receipt) if err != nil { t.Fatalf("Error encoding receipt: %v", err) @@ -126,6 +130,7 @@ func encodeAsStoredReceiptRLP(want *Receipt) ([]byte, error) { // Tests that receipt data can be correctly derived from the contextual infos func TestDeriveFields(t *testing.T) { + t.Parallel() // Create a few transactions to have receipts for to2 := libcommon.HexToAddress("0x2") to3 := libcommon.HexToAddress("0x3") @@ -262,6 +267,7 @@ func TestDeriveFields(t *testing.T) { // TestTypedReceiptEncodingDecoding reproduces a flaw that existed in the receipt // rlp decoder, which failed due to a shadowing error. func TestTypedReceiptEncodingDecoding(t *testing.T) { + t.Parallel() var payload = common.FromHex("f9043eb9010c01f90108018262d4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0b9010c01f901080182cd14b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0b9010d01f901090183013754b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0b9010d01f90109018301a194b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0") check := func(bundle []*Receipt) { t.Helper() diff --git a/core/types/transaction.go b/core/types/transaction.go index 61cdedd3fe3..079b008791d 100644 --- a/core/types/transaction.go +++ b/core/types/transaction.go @@ -35,7 +35,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/fixedgas" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" @@ -95,7 +94,7 @@ type Transaction interface { GetSender() (libcommon.Address, bool) SetSender(libcommon.Address) IsContractDeploy() bool - Unwrap() Transaction // If this is a network wrapper, returns the unwrapped tx. Otherwiwes returns itself. + Unwrap() Transaction // If this is a network wrapper, returns the unwrapped tx. Otherwise returns itself. } // TransactionMisc is collection of miscelaneous fields for transaction that is supposed to be embedded into concrete @@ -246,7 +245,7 @@ func MarshalTransactionsBinary(txs Transactions) ([][]byte, error) { if err != nil { return nil, err } - result[i] = common.CopyBytes(buf.Bytes()) + result[i] = libcommon.CopyBytes(buf.Bytes()) } return result, nil } @@ -372,7 +371,7 @@ func (s *TxByPriceAndTime) Pop() interface{} { old := *s n := len(old) x := old[n-1] - old[n-1] = nil + old[n-1] = nil // avoid memory leak *s = old[0 : n-1] return x } @@ -500,6 +499,7 @@ func (t *TransactionsFixedOrder) Peek() Transaction { // Shift replaces the current best head with the next one from the same account. func (t *TransactionsFixedOrder) Shift() { + t.Transactions[0] = nil // avoid memory leak t.Transactions = t.Transactions[1:] } @@ -507,6 +507,7 @@ func (t *TransactionsFixedOrder) Shift() { // the same account. This should be used when a transaction cannot be executed // and hence all subsequent ones should be discarded from the same account. func (t *TransactionsFixedOrder) Pop() { + t.Transactions[0] = nil // avoid memory leak t.Transactions = t.Transactions[1:] } diff --git a/core/types/transaction_marshalling.go b/core/types/transaction_marshalling.go index c2d460a6643..b529e517988 100644 --- a/core/types/transaction_marshalling.go +++ b/core/types/transaction_marshalling.go @@ -4,6 +4,7 @@ import ( "encoding/json" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/holiman/uint256" "github.com/valyala/fastjson" @@ -11,8 +12,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" types2 "github.com/ledgerwatch/erigon-lib/types" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // txJSON is the JSON representation of transactions. diff --git a/core/types/transaction_signing_test.go b/core/types/transaction_signing_test.go index 76e306528ea..6c669f5f9fd 100644 --- a/core/types/transaction_signing_test.go +++ b/core/types/transaction_signing_test.go @@ -23,11 +23,11 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/crypto" ) func TestEIP1559Signing(t *testing.T) { + t.Parallel() key, _ := crypto.GenerateKey() addr := crypto.PubkeyToAddress(key.PublicKey) @@ -48,6 +48,7 @@ func TestEIP1559Signing(t *testing.T) { } func TestEIP155Signing(t *testing.T) { + t.Parallel() key, _ := crypto.GenerateKey() addr := crypto.PubkeyToAddress(key.PublicKey) @@ -67,6 +68,7 @@ func TestEIP155Signing(t *testing.T) { } func TestEIP155ChainId(t *testing.T) { + t.Parallel() key, _ := crypto.GenerateKey() addr := crypto.PubkeyToAddress(key.PublicKey) @@ -99,6 +101,7 @@ func TestEIP155ChainId(t *testing.T) { } func TestEIP155SigningVitalik(t *testing.T) { + t.Parallel() // Test vectors come from http://vitalik.ca/files/eip155_testvec.txt for i, test := range []struct { txRlp, addr string @@ -116,7 +119,7 @@ func TestEIP155SigningVitalik(t *testing.T) { } { signer := LatestSignerForChainID(big.NewInt(1)) - tx, err := DecodeTransaction(common.Hex2Bytes(test.txRlp)) + tx, err := DecodeTransaction(libcommon.Hex2Bytes(test.txRlp)) if err != nil { t.Errorf("%d: %v", i, err) continue @@ -137,6 +140,7 @@ func TestEIP155SigningVitalik(t *testing.T) { } func TestChainId(t *testing.T) { + t.Parallel() key, _ := defaultTestKey() var tx Transaction = NewTransaction(0, libcommon.Address{}, new(uint256.Int), 0, new(uint256.Int), nil) diff --git a/core/types/transaction_test.go b/core/types/transaction_test.go index 162906fe276..cdb05b69680 100644 --- a/core/types/transaction_test.go +++ b/core/types/transaction_test.go @@ -63,7 +63,7 @@ var ( common.FromHex("5544"), ).WithSignature( *LatestSignerForChainID(nil), - common.Hex2Bytes("98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a301"), + libcommon.Hex2Bytes("98ff921201554726367d2be8c804a7ff89ccf285ebc57dff8ae4c44b9c19ac4a8887321be575c8095f789dd4c743dfe42c1820f9231f98a962b210e3ac2452a301"), ) emptyEip2718Tx = &AccessListTx{ @@ -82,7 +82,7 @@ var ( signedEip2718Tx, _ = emptyEip2718Tx.WithSignature( *LatestSignerForChainID(big.NewInt(1)), - common.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"), + libcommon.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"), ) dynFeeTx = &DynamicFeeTransaction{ @@ -100,11 +100,12 @@ var ( signedDynFeeTx, _ = dynFeeTx.WithSignature( *LatestSignerForChainID(big.NewInt(1)), - common.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"), + libcommon.Hex2Bytes("c9519f4f2b30335884581971573fadf60c6204f59a911df35ee8a540456b266032f1e8e2c5dd761f9e4f88f41c8310aeaba26a8bfcdacfedfa12ec3862d3752101"), ) ) func TestDecodeEmptyInput(t *testing.T) { + t.Parallel() input := []byte{} _, err := DecodeTransaction(input) if !errors.Is(err, io.EOF) { @@ -113,6 +114,7 @@ func TestDecodeEmptyInput(t *testing.T) { } func TestDecodeEmptyTypedTx(t *testing.T) { + t.Parallel() input := []byte{0x80} _, err := DecodeTransaction(input) if !errors.Is(err, rlp.EOL) { @@ -121,6 +123,7 @@ func TestDecodeEmptyTypedTx(t *testing.T) { } func TestTransactionSigHash(t *testing.T) { + t.Parallel() if emptyTx.SigningHash(nil) != libcommon.HexToHash("c775b99e7ad12f50d819fcd602390467e28141316969f4b57f0626f74fe3b386") { t.Errorf("empty transaction hash mismatch, got %x", emptyTx.SigningHash(nil)) } @@ -130,6 +133,7 @@ func TestTransactionSigHash(t *testing.T) { } func TestTransactionEncode(t *testing.T) { + t.Parallel() txb, err := rlp.EncodeToBytes(rightvrsTx) if err != nil { t.Fatalf("encode error: %v", err) @@ -142,6 +146,7 @@ func TestTransactionEncode(t *testing.T) { } func TestEIP2718TransactionSigHash(t *testing.T) { + t.Parallel() if emptyEip2718Tx.SigningHash(big.NewInt(1)) != libcommon.HexToHash("49b486f0ec0a60dfbbca2d30cb07c9e8ffb2a2ff41f29a1ab6737475f6ff69f3") { t.Errorf("empty EIP-2718 transaction hash mismatch, got %x", emptyEip2718Tx.SigningHash(big.NewInt(1))) } @@ -233,6 +238,7 @@ func TestEIP2930Signer(t *testing.T) { } func TestEIP2718TransactionEncode(t *testing.T) { + t.Parallel() // RLP representation { have, err := rlp.EncodeToBytes(signedEip2718Tx) @@ -260,6 +266,7 @@ func TestEIP2718TransactionEncode(t *testing.T) { } } func TestEIP1559TransactionEncode(t *testing.T) { + t.Parallel() { var buf bytes.Buffer if err := signedDynFeeTx.MarshalBinary(&buf); err != nil { @@ -289,8 +296,9 @@ func defaultTestKey() (*ecdsa.PrivateKey, libcommon.Address) { } func TestRecipientEmpty(t *testing.T) { + t.Parallel() _, addr := defaultTestKey() - tx, err := decodeTx(common.Hex2Bytes("f8498080808080011ca09b16de9d5bdee2cf56c28d16275a4da68cd30273e2525f3959f5d62557489921a0372ebd8fb3345f7db7b5a86d42e24d36e983e259b0664ceb8c227ec9af572f3d")) + tx, err := decodeTx(libcommon.Hex2Bytes("f8498080808080011ca09b16de9d5bdee2cf56c28d16275a4da68cd30273e2525f3959f5d62557489921a0372ebd8fb3345f7db7b5a86d42e24d36e983e259b0664ceb8c227ec9af572f3d")) if err != nil { t.Fatal(err) } @@ -305,9 +313,10 @@ func TestRecipientEmpty(t *testing.T) { } func TestRecipientNormal(t *testing.T) { + t.Parallel() _, addr := defaultTestKey() - tx, err := decodeTx(common.Hex2Bytes("f85d80808094000000000000000000000000000000000000000080011ca0527c0d8f5c63f7b9f41324a7c8a563ee1190bcbf0dac8ab446291bdbf32f5c79a0552c4ef0a09a04395074dab9ed34d3fbfb843c2f2546cc30fe89ec143ca94ca6")) + tx, err := decodeTx(libcommon.Hex2Bytes("f85d80808094000000000000000000000000000000000000000080011ca0527c0d8f5c63f7b9f41324a7c8a563ee1190bcbf0dac8ab446291bdbf32f5c79a0552c4ef0a09a04395074dab9ed34d3fbfb843c2f2546cc30fe89ec143ca94ca6")) if err != nil { t.Fatal(err) } @@ -325,6 +334,7 @@ func TestRecipientNormal(t *testing.T) { // decreasing order, but at the same time with increasing nonces when issued by // the same account. func TestTransactionPriceNonceSort(t *testing.T) { + t.Parallel() // Generate a batch of accounts to start with keys := make([]*ecdsa.PrivateKey, 25) for i := 0; i < len(keys); i++ { @@ -384,6 +394,7 @@ func TestTransactionPriceNonceSort(t *testing.T) { // Tests that if multiple transactions have the same price, the ones seen earlier // are prioritized to avoid network spam attacks aiming for a specific ordering. func TestTransactionTimeSort(t *testing.T) { + t.Parallel() // Generate a batch of accounts to start with keys := make([]*ecdsa.PrivateKey, 5) for i := 0; i < len(keys); i++ { @@ -437,6 +448,7 @@ func TestTransactionTimeSort(t *testing.T) { // TestTransactionCoding tests serializing/de-serializing to/from rlp and JSON. func TestTransactionCoding(t *testing.T) { + t.Parallel() key, err := crypto.GenerateKey() if err != nil { t.Fatalf("could not generate key: %v", err) @@ -563,19 +575,6 @@ func encodeDecodeBinary(tx Transaction) (Transaction, error) { return parsedTx, nil } -func encodeDecodeWrappedBinary(tx *BlobTxWrapper) (*BlobTxWrapper, error) { - var buf bytes.Buffer - var err error - if err = tx.MarshalBinary(&buf); err != nil { - return nil, fmt.Errorf("rlp encoding failed: %w", err) - } - var parsedTx Transaction - if parsedTx, err = UnmarshalWrappedTransactionFromBinary(buf.Bytes()); err != nil { - return nil, fmt.Errorf("rlp decoding failed: %w", err) - } - return parsedTx.(*BlobTxWrapper), nil -} - func assertEqual(orig Transaction, cpy Transaction) error { // compare nonce, price, gaslimit, recipient, amount, payload, V, R, S if want, got := orig.Hash(), cpy.Hash(); want != got { @@ -686,12 +685,9 @@ func newRandBlobTx() *BlobTx { To: randAddr(), Value: uint256.NewInt(rand.Uint64()), Data: randData(), - // V: *uint256.NewInt(rand.Uint64()), - // R: *uint256.NewInt(rand.Uint64()), - // S: *uint256.NewInt(rand.Uint64()), - V: *uint256.NewInt(0), - R: *uint256.NewInt(rand.Uint64()), - S: *uint256.NewInt(rand.Uint64()), + V: *uint256.NewInt(0), + R: *uint256.NewInt(rand.Uint64()), + S: *uint256.NewInt(rand.Uint64()), }, ChainID: uint256.NewInt(rand.Uint64()), Tip: uint256.NewInt(rand.Uint64()), @@ -699,7 +695,7 @@ func newRandBlobTx() *BlobTx { AccessList: randAccessList(), }, MaxFeePerBlobGas: uint256.NewInt(rand.Uint64()), - BlobVersionedHashes: randHashes(randIntInRange(0, 6)), + BlobVersionedHashes: randHashes(randIntInRange(1, 6)), } return stx } @@ -791,16 +787,9 @@ func populateBlobTxs() { } func populateBlobWrapperTxs() { - for i := 0; i < N-1; i++ { + for i := 0; i < N; i++ { dummyBlobWrapperTxs[i] = newRandBlobWrapper() } - - dummyBlobWrapperTxs[N-1] = &BlobTxWrapper{ - Tx: *newRandBlobTx(), - Commitments: nil, - Blobs: nil, - Proofs: nil, - } } func TestBlobTxEncodeDecode(t *testing.T) { @@ -825,38 +814,5 @@ func TestBlobTxEncodeDecode(t *testing.T) { if err = assertEqual(dummyBlobTxs[i], tx); err != nil { t.Fatal(err) } - - } -} - -func TestBlobTxWrappedEncodeDecode(t *testing.T) { - rand.Seed(time.Now().UnixNano()) - populateBlobWrapperTxs() - for i := 0; i < N; i++ { - tx, err := encodeDecodeWrappedBinary(dummyBlobWrapperTxs[i]) - if err != nil { - t.Fatal(err) - } - if err := assertEqual(dummyBlobWrapperTxs[i], tx); err != nil { - t.Fatal(err) - } - if err := assertEqualBlobWrapper(dummyBlobWrapperTxs[i], tx); err != nil { - t.Fatal(err) - } - - // JSON - // fails in ValidateBlobTransactionWrapper() - // error during proof verification: invalid infinity point encoding - - // jtx, err := encodeDecodeJSON(dummyBlobWrapperTxs[i]) - // if err != nil { - // t.Fatal(err) - // } - // if err = assertEqual(dummyBlobWrapperTxs[i], jtx); err != nil { - // t.Fatal(err) - // } - // if err := assertEqualBlobWrapper(dummyBlobWrapperTxs[i], jtx.(*BlobTxWrapper)); err != nil { - // t.Fatal(err) - // } } } diff --git a/core/types/withdrawal.go b/core/types/withdrawal.go index c5ec8274a77..5dede6a0abc 100644 --- a/core/types/withdrawal.go +++ b/core/types/withdrawal.go @@ -19,15 +19,12 @@ package types import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "io" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/types/clonable" - "github.com/ledgerwatch/erigon-lib/types/ssz" - "github.com/ledgerwatch/erigon/cl/merkle_tree" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rlp" ) @@ -42,11 +39,6 @@ type Withdrawal struct { Amount uint64 `json:"amount"` // value of withdrawal in GWei } -func (obj *Withdrawal) Equal(other *Withdrawal) bool { - return obj.Index == other.Index && obj.Validator == other.Validator && - obj.Address == other.Address && obj.Amount == other.Amount -} - func (obj *Withdrawal) EncodingSize() int { encodingSize := 21 /* Address */ encodingSize++ @@ -84,34 +76,6 @@ func (obj *Withdrawal) EncodeRLP(w io.Writer) error { return rlp.EncodeInt(obj.Amount, w, b[:]) } -func (obj *Withdrawal) EncodeSSZ(buf []byte) ([]byte, error) { - buf = append(buf, ssz.Uint64SSZ(obj.Index)...) - buf = append(buf, ssz.Uint64SSZ(obj.Validator)...) - buf = append(buf, obj.Address[:]...) - buf = append(buf, ssz.Uint64SSZ(obj.Amount)...) - return buf, nil -} - -func (obj *Withdrawal) DecodeSSZ(buf []byte, _ int) error { - if len(buf) < obj.EncodingSizeSSZ() { - return fmt.Errorf("[Withdrawal] err: %s", ssz.ErrLowBufferSize) - } - obj.Index = ssz.UnmarshalUint64SSZ(buf) - obj.Validator = ssz.UnmarshalUint64SSZ(buf[8:]) - copy(obj.Address[:], buf[16:]) - obj.Amount = ssz.UnmarshalUint64SSZ(buf[36:]) - return nil -} - -func (obj *Withdrawal) EncodingSizeSSZ() int { - // Validator Index (8 bytes) + Index (8 bytes) + Amount (8 bytes) + address length - return 24 + length.Addr -} - -func (obj *Withdrawal) HashSSZ() ([32]byte, error) { // the [32]byte is temporary - return merkle_tree.HashTreeRoot(obj.Index, obj.Validator, obj.Address[:], obj.Amount) -} - func (obj *Withdrawal) DecodeRLP(s *rlp.Stream) error { _, err := s.List() if err != nil { diff --git a/core/types/withdrawal_test.go b/core/types/withdrawal_test.go index fdb11401dc7..65824cc3a67 100644 --- a/core/types/withdrawal_test.go +++ b/core/types/withdrawal_test.go @@ -5,12 +5,10 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "github.com/ledgerwatch/erigon/common" ) func TestWithdrawalsHash(t *testing.T) { + t.Parallel() w := &Withdrawal{ Index: 0, Validator: 0, @@ -23,24 +21,3 @@ func TestWithdrawalsHash(t *testing.T) { // Its Keccak should be returned, not the node itself. assert.Equal(t, libcommon.HexToHash("82cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436"), hash) } - -// Test taken from: https://github.com/ethereum/consensus-spec-tests/tree/master/tests/mainnet/capella/ssz_static/Withdrawal/ssz_random/case_1 -var testWithdrawalEncodedSSZ = common.Hex2Bytes("09b99ded9629457f21c3c177a3cf80dedbbcbcbeee17b2395d5d3f839fc1ba3559d1a73ef53b8a5325e25ad2") -var testWithdrawalsSSZHash = libcommon.HexToHash("c1ec17957781f09ab3d8dbfcdfaa6c3b40a1679d3d124588f77a2da5ebb3555f") -var testWithdrawal = &Withdrawal{ - Index: 9170781944418253065, - Validator: 16033042974434771745, - Address: libcommon.HexToAddress("0xdbbcbcbeee17b2395d5d3f839fc1ba3559d1a73e"), - Amount: 15157676145812061173, -} - -func TestWithdrawalSSZ(t *testing.T) { - withdrawal := &Withdrawal{} - require.NoError(t, withdrawal.DecodeSSZ(testWithdrawalEncodedSSZ, 0)) - require.Equal(t, withdrawal, testWithdrawal) - a, _ := withdrawal.EncodeSSZ(nil) - require.Equal(t, a, testWithdrawalEncodedSSZ) - hashSSZ, err := withdrawal.HashSSZ() - require.NoError(t, err) - require.Equal(t, libcommon.Hash(hashSSZ), testWithdrawalsSSZHash) -} diff --git a/core/vm/analysis_test.go b/core/vm/analysis_test.go index c2265de4659..8392c602bcf 100644 --- a/core/vm/analysis_test.go +++ b/core/vm/analysis_test.go @@ -22,11 +22,11 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/crypto" ) func TestJumpDestAnalysis(t *testing.T) { + t.Parallel() tests := []struct { code []byte exp uint64 @@ -63,7 +63,7 @@ func BenchmarkJumpdestAnalysisEmpty_1200k(bench *testing.B) { } func BenchmarkJumpdestAnalysis_1200k(bench *testing.B) { - code := common.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") + code := libcommon.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") bench.ResetTimer() for i := 0; i < bench.N; i++ { codeBitmap(code) @@ -82,7 +82,7 @@ func BenchmarkJumpdestHashing_1200k(bench *testing.B) { } func BenchmarkJumpDest(b *testing.B) { - code := common.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") + code := libcommon.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") pc := new(uint256.Int) hash := libcommon.Hash{1, 2, 3, 4, 5} @@ -90,7 +90,7 @@ func BenchmarkJumpDest(b *testing.B) { b.ResetTimer() for n := 0; n < b.N; n++ { - contract := NewContract(contractRef, contractRef, nil, 0, false /* skipAnalysis */) + contract := NewContract(contractRef, libcommon.Address{}, nil, 0, false /* skipAnalysis */) contract.Code = code contract.CodeHash = hash diff --git a/core/vm/contract.go b/core/vm/contract.go index a3225f1517d..7d6d7daa6ba 100644 --- a/core/vm/contract.go +++ b/core/vm/contract.go @@ -46,7 +46,7 @@ type Contract struct { // needs to be initialised to that of the caller's caller. CallerAddress libcommon.Address caller ContractRef - self ContractRef + self libcommon.Address jumpdests map[libcommon.Hash][]uint64 // Aggregated result of JUMPDEST analysis. analysis []uint64 // Locally cached result of JUMPDEST analysis skipAnalysis bool @@ -61,8 +61,8 @@ type Contract struct { } // NewContract returns a new contract environment for the execution of EVM. -func NewContract(caller ContractRef, object ContractRef, value *uint256.Int, gas uint64, skipAnalysis bool) *Contract { - c := &Contract{CallerAddress: caller.Address(), caller: caller, self: object} +func NewContract(caller ContractRef, addr libcommon.Address, value *uint256.Int, gas uint64, skipAnalysis bool) *Contract { + c := &Contract{CallerAddress: caller.Address(), caller: caller, self: addr} if parent, ok := caller.(*Contract); ok { // Reuse JUMPDEST analysis from parent context if available. @@ -176,7 +176,7 @@ func (c *Contract) UseGas(gas uint64) (ok bool) { // Address returns the contracts address func (c *Contract) Address() libcommon.Address { - return c.self.Address() + return c.self } // Value returns the contract's value (sent to it from it's caller) diff --git a/core/vm/contracts.go b/core/vm/contracts.go index cec4ac12a8a..ccc55074486 100644 --- a/core/vm/contracts.go +++ b/core/vm/contracts.go @@ -17,10 +17,10 @@ package vm import ( - "bytes" "crypto/sha256" "encoding/binary" "errors" + "github.com/ledgerwatch/erigon-lib/crypto/blake2b" "math/big" "github.com/holiman/uint256" @@ -31,9 +31,7 @@ import ( "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/common/math" - "github.com/ledgerwatch/erigon/core/vm/evmtypes" "github.com/ledgerwatch/erigon/crypto" - "github.com/ledgerwatch/erigon/crypto/blake2b" "github.com/ledgerwatch/erigon/crypto/bls12381" "github.com/ledgerwatch/erigon/crypto/bn256" @@ -51,12 +49,6 @@ type PrecompiledContract interface { Run(input []byte) ([]byte, error) // Run runs the precompiled contract } -type StatefulPrecompiledContract interface { - RequiredGas(input []byte) uint64 // RequiredPrice calculates the contract gas use - RunStateful(input []byte, state evmtypes.IntraBlockState) ([]byte, error) // Run runs the precompiled contract - Run(input []byte) ([]byte, error) // Run runs the precompiled contract -} - // PrecompiledContractsHomestead contains the default set of pre-compiled Ethereum // contracts used in the Frontier and Homestead releases. var PrecompiledContractsHomestead = map[libcommon.Address]PrecompiledContract{ @@ -108,21 +100,16 @@ var PrecompiledContractsBerlin = map[libcommon.Address]PrecompiledContract{ } var PrecompiledContractsCancun = map[libcommon.Address]PrecompiledContract{ - libcommon.BytesToAddress([]byte{1}): &ecrecover{}, - libcommon.BytesToAddress([]byte{2}): &sha256hash{}, - libcommon.BytesToAddress([]byte{3}): &ripemd160hash{}, - libcommon.BytesToAddress([]byte{4}): &dataCopy{}, - libcommon.BytesToAddress([]byte{5}): &bigModExp{eip2565: true}, - libcommon.BytesToAddress([]byte{6}): &bn256AddIstanbul{}, - libcommon.BytesToAddress([]byte{7}): &bn256ScalarMulIstanbul{}, - libcommon.BytesToAddress([]byte{8}): &bn256PairingIstanbul{}, - libcommon.BytesToAddress([]byte{9}): &blake2F{}, - libcommon.BytesToAddress([]byte{0x0a}): &pointEvaluation{}, - libcommon.BytesToAddress(params.HistoryStorageAddress): &parentBeaconBlockRoot{}, -} - -var StatefulPrecompile = map[libcommon.Address]bool{ - libcommon.BytesToAddress(params.HistoryStorageAddress): true, + libcommon.BytesToAddress([]byte{0x01}): &ecrecover{}, + libcommon.BytesToAddress([]byte{0x02}): &sha256hash{}, + libcommon.BytesToAddress([]byte{0x03}): &ripemd160hash{}, + libcommon.BytesToAddress([]byte{0x04}): &dataCopy{}, + libcommon.BytesToAddress([]byte{0x05}): &bigModExp{eip2565: true}, + libcommon.BytesToAddress([]byte{0x06}): &bn256AddIstanbul{}, + libcommon.BytesToAddress([]byte{0x07}): &bn256ScalarMulIstanbul{}, + libcommon.BytesToAddress([]byte{0x08}): &bn256PairingIstanbul{}, + libcommon.BytesToAddress([]byte{0x09}): &blake2F{}, + libcommon.BytesToAddress([]byte{0x0a}): &pointEvaluation{}, } // PrecompiledContractsBLS contains the set of pre-compiled Ethereum @@ -186,19 +173,14 @@ func ActivePrecompiles(rules *chain.Rules) []libcommon.Address { // - the returned bytes, // - the _remaining_ gas, // - any error that occurred -func RunPrecompiledContract(p PrecompiledContract, input []byte, suppliedGas uint64, state evmtypes.IntraBlockState) (ret []byte, remainingGas uint64, err error) { +func RunPrecompiledContract(p PrecompiledContract, input []byte, suppliedGas uint64, +) (ret []byte, remainingGas uint64, err error) { gasCost := p.RequiredGas(input) if suppliedGas < gasCost { return nil, 0, ErrOutOfGas } suppliedGas -= gasCost - var output []byte - sp, isStateful := p.(StatefulPrecompiledContract) - if isStateful { - output, err = sp.RunStateful(input, state) - } else { - output, err = p.Run(input) - } + output, err := p.Run(input) return output, suppliedGas, err } @@ -997,7 +979,7 @@ func (c *bls12381Pairing) Run(input []byte) ([]byte, error) { return nil, errBLS12381G2PointSubgroup } - // Update pairing engine with G1 and G2 ponits + // Update pairing engine with G1 and G2 points e.AddPair(p1, p2) } // Prepare 32 byte output @@ -1116,36 +1098,3 @@ func (c *pointEvaluation) RequiredGas(input []byte) uint64 { func (c *pointEvaluation) Run(input []byte) ([]byte, error) { return libkzg.PointEvaluationPrecompile(input) } - -type parentBeaconBlockRoot struct{} - -func (c *parentBeaconBlockRoot) RequiredGas(input []byte) uint64 { - return params.ParentBeaconBlockRootGas -} - -func (c *parentBeaconBlockRoot) Run(input []byte) ([]byte, error) { - return nil, nil -} - -func (c *parentBeaconBlockRoot) RunStateful(input []byte, state evmtypes.IntraBlockState) ([]byte, error) { - timestampParam := input[:32] - if len(timestampParam) < 32 { - return nil, errors.New("timestamp param too short") - } - - timestampReduced := uint256.NewInt(0).SetBytes(timestampParam).Uint64() % params.HistoricalRootsModulus - timestampIndex := libcommon.BigToHash(libcommon.Big256.SetUint64((timestampReduced))) - recordedTimestamp := uint256.NewInt(0) - root := uint256.NewInt(0) - state.GetState(libcommon.BytesToAddress(params.HistoryStorageAddress), ×tampIndex, recordedTimestamp) - - recordedTimestampBytes := recordedTimestamp.Bytes32() - if !bytes.Equal(recordedTimestampBytes[:], timestampParam) { - return make([]byte, 32), nil - } - timestampExtended := timestampReduced + params.HistoricalRootsModulus - rootIndex := libcommon.BigToHash(libcommon.Big256.SetUint64((timestampExtended))) - state.GetState(libcommon.BytesToAddress(params.HistoryStorageAddress), &rootIndex, root) - res := root.Bytes32() - return res[:], nil -} diff --git a/core/vm/contracts_test.go b/core/vm/contracts_test.go index bb3a9eeda4f..a9ca23ef1b6 100644 --- a/core/vm/contracts_test.go +++ b/core/vm/contracts_test.go @@ -96,10 +96,11 @@ var blake2FMalformedInputTests = []precompiledFailureTest{ func testPrecompiled(t *testing.T, addr string, test precompiledTest) { p := allPrecompiles[libcommon.HexToAddress(addr)] - in := common.Hex2Bytes(test.Input) + in := libcommon.Hex2Bytes(test.Input) gas := p.RequiredGas(in) t.Run(fmt.Sprintf("%s-Gas=%d", test.Name, gas), func(t *testing.T) { - if res, _, err := RunPrecompiledContract(p, in, gas, nil); err != nil { + t.Parallel() + if res, _, err := RunPrecompiledContract(p, in, gas); err != nil { t.Error(err) } else if common.Bytes2Hex(res) != test.Expected { t.Errorf("Expected %v, got %v", test.Expected, common.Bytes2Hex(res)) @@ -108,7 +109,7 @@ func testPrecompiled(t *testing.T, addr string, test precompiledTest) { t.Errorf("%v: gas wrong, expected %d, got %d", test.Name, expGas, gas) } // Verify that the precompile did not touch the input buffer - exp := common.Hex2Bytes(test.Input) + exp := libcommon.Hex2Bytes(test.Input) if !bytes.Equal(in, exp) { t.Errorf("Precompiled %v modified input data", addr) } @@ -117,16 +118,17 @@ func testPrecompiled(t *testing.T, addr string, test precompiledTest) { func testPrecompiledOOG(t *testing.T, addr string, test precompiledTest) { p := allPrecompiles[libcommon.HexToAddress(addr)] - in := common.Hex2Bytes(test.Input) + in := libcommon.Hex2Bytes(test.Input) gas := p.RequiredGas(in) - 1 t.Run(fmt.Sprintf("%s-Gas=%d", test.Name, gas), func(t *testing.T) { - _, _, err := RunPrecompiledContract(p, in, gas, nil) + t.Parallel() + _, _, err := RunPrecompiledContract(p, in, gas) if err.Error() != "out of gas" { t.Errorf("Expected error [out of gas], got [%v]", err) } // Verify that the precompile did not touch the input buffer - exp := common.Hex2Bytes(test.Input) + exp := libcommon.Hex2Bytes(test.Input) if !bytes.Equal(in, exp) { t.Errorf("Precompiled %v modified input data", addr) } @@ -135,15 +137,16 @@ func testPrecompiledOOG(t *testing.T, addr string, test precompiledTest) { func testPrecompiledFailure(addr string, test precompiledFailureTest, t *testing.T) { p := allPrecompiles[libcommon.HexToAddress(addr)] - in := common.Hex2Bytes(test.Input) + in := libcommon.Hex2Bytes(test.Input) gas := p.RequiredGas(in) t.Run(test.Name, func(t *testing.T) { - _, _, err := RunPrecompiledContract(p, in, gas, nil) + t.Parallel() + _, _, err := RunPrecompiledContract(p, in, gas) if err.Error() != test.ExpectedError { t.Errorf("Expected error [%v], got [%v]", test.ExpectedError, err) } // Verify that the precompile did not touch the input buffer - exp := common.Hex2Bytes(test.Input) + exp := libcommon.Hex2Bytes(test.Input) if !bytes.Equal(in, exp) { t.Errorf("Precompiled %v modified input data", addr) } @@ -155,7 +158,7 @@ func benchmarkPrecompiled(b *testing.B, addr string, test precompiledTest) { return } p := allPrecompiles[libcommon.HexToAddress(addr)] - in := common.Hex2Bytes(test.Input) + in := libcommon.Hex2Bytes(test.Input) reqGas := p.RequiredGas(in) var ( @@ -170,7 +173,7 @@ func benchmarkPrecompiled(b *testing.B, addr string, test precompiledTest) { bench.ResetTimer() for i := 0; i < bench.N; i++ { copy(data, in) - res, _, err = RunPrecompiledContract(p, data, reqGas, nil) + res, _, err = RunPrecompiledContract(p, data, reqGas) } bench.StopTimer() elapsed := uint64(time.Since(start)) @@ -247,6 +250,7 @@ func BenchmarkPrecompiledBn256Add(b *testing.B) { benchJson("bn256Add", "06", b) // Tests OOG func TestPrecompiledModExpOOG(t *testing.T) { + t.Parallel() modexpTests, err := loadJson("modexp") if err != nil { t.Fatal(err) @@ -268,6 +272,7 @@ func TestPrecompiledBlake2F(t *testing.T) { testJson("blake2F", "09", t) } func BenchmarkPrecompiledBlake2F(b *testing.B) { benchJson("blake2F", "09", b) } func TestPrecompileBlake2FMalformedInput(t *testing.T) { + t.Parallel() for _, test := range blake2FMalformedInputTests { testPrecompiledFailure("09", test, t) } diff --git a/core/vm/eips.go b/core/vm/eips.go index 4b2a825f40f..8d48f1a7b33 100644 --- a/core/vm/eips.go +++ b/core/vm/eips.go @@ -24,10 +24,12 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/params" ) var activators = map[int]func(*JumpTable){ + 7516: enable7516, 6780: enable6780, 5656: enable5656, 4844: enable4844, @@ -215,7 +217,7 @@ func opTstore(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]b // opBaseFee implements BASEFEE opcode func opBaseFee(pc *uint64, interpreter *EVMInterpreter, callContext *ScopeContext) ([]byte, error) { - baseFee := interpreter.evm.Context().BaseFee + baseFee := interpreter.evm.Context.BaseFee callContext.Stack.Push(baseFee) return nil, nil } @@ -258,8 +260,8 @@ func enable4844(jt *JumpTable) { // opBlobHash implements the BLOBHASH opcode func opBlobHash(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) { idx := scope.Stack.Peek() - if idx.LtUint64(uint64(len(interpreter.evm.TxContext().BlobHashes))) { - hash := interpreter.evm.TxContext().BlobHashes[idx.Uint64()] + if idx.LtUint64(uint64(len(interpreter.evm.BlobHashes))) { + hash := interpreter.evm.BlobHashes[idx.Uint64()] idx.SetBytes(hash.Bytes()) } else { idx.Clear() @@ -303,3 +305,25 @@ func enable6780(jt *JumpTable) { numPush: 0, } } + +// opBlobBaseFee implements the BLOBBASEFEE opcode +func opBlobBaseFee(pc *uint64, interpreter *EVMInterpreter, callContext *ScopeContext) ([]byte, error) { + excessBlobGas := interpreter.evm.Context.ExcessBlobGas + blobBaseFee, err := misc.GetBlobGasPrice(interpreter.evm.ChainConfig(), *excessBlobGas) + if err != nil { + return nil, err + } + callContext.Stack.Push(blobBaseFee) + return nil, nil +} + +// enable7516 applies EIP-7516 (BLOBBASEFEE opcode) +// - Adds an opcode that returns the current block's blob base fee. +func enable7516(jt *JumpTable) { + jt[BLOBBASEFEE] = &operation{ + execute: opBlobBaseFee, + constantGas: GasQuickStep, + numPop: 0, + numPush: 1, + } +} diff --git a/core/vm/evm.go b/core/vm/evm.go index ce69c8eed57..dc5dce586c8 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -68,8 +68,8 @@ func run(evm *EVM, contract *Contract, input []byte, readOnly bool) ([]byte, err // The EVM should never be reused and is not thread safe. type EVM struct { // Context provides auxiliary blockchain related information - context evmtypes.BlockContext - txContext evmtypes.TxContext + Context evmtypes.BlockContext + evmtypes.TxContext // IntraBlockState gives access to the underlying state intraBlockState evmtypes.IntraBlockState @@ -96,8 +96,8 @@ type EVM struct { // only ever be used *once*. func NewEVM(blockCtx evmtypes.BlockContext, txCtx evmtypes.TxContext, state evmtypes.IntraBlockState, chainConfig *chain.Config, vmConfig Config) *EVM { evm := &EVM{ - context: blockCtx, - txContext: txCtx, + Context: blockCtx, + TxContext: txCtx, intraBlockState: state, config: vmConfig, chainConfig: chainConfig, @@ -112,7 +112,7 @@ func NewEVM(blockCtx evmtypes.BlockContext, txCtx evmtypes.TxContext, state evmt // Reset resets the EVM with a new transaction context.Reset // This is not threadsafe and should only be done very cautiously. func (evm *EVM) Reset(txCtx evmtypes.TxContext, ibs evmtypes.IntraBlockState) { - evm.txContext = txCtx + evm.TxContext = txCtx evm.intraBlockState = ibs // ensure the evm is reset to be used again @@ -120,8 +120,8 @@ func (evm *EVM) Reset(txCtx evmtypes.TxContext, ibs evmtypes.IntraBlockState) { } func (evm *EVM) ResetBetweenBlocks(blockCtx evmtypes.BlockContext, txCtx evmtypes.TxContext, ibs evmtypes.IntraBlockState, vmConfig Config, chainRules *chain.Rules) { - evm.context = blockCtx - evm.txContext = txCtx + evm.Context = blockCtx + evm.TxContext = txCtx evm.intraBlockState = ibs evm.config = vmConfig evm.chainRules = chainRules @@ -170,7 +170,7 @@ func (evm *EVM) call(typ OpCode, caller ContractRef, addr libcommon.Address, inp } if typ == CALL || typ == CALLCODE { // Fail if we're trying to transfer more than the available balance - if !value.IsZero() && !evm.context.CanTransfer(evm.intraBlockState, caller.Address(), value) { + if !value.IsZero() && !evm.Context.CanTransfer(evm.intraBlockState, caller.Address(), value) { if !bailout { return nil, gas, ErrInsufficientBalance } @@ -205,7 +205,7 @@ func (evm *EVM) call(typ OpCode, caller ContractRef, addr libcommon.Address, inp } evm.intraBlockState.CreateAccount(addr, false) } - evm.context.Transfer(evm.intraBlockState, caller.Address(), addr, value, bailout) + evm.Context.Transfer(evm.intraBlockState, caller.Address(), addr, value, bailout) } else if typ == STATICCALL { // We do an AddBalance of zero here, just in order to trigger a touch. // This doesn't matter on Mainnet, where all empties are gone at the time of Byzantium, @@ -233,7 +233,7 @@ func (evm *EVM) call(typ OpCode, caller ContractRef, addr libcommon.Address, inp // It is allowed to call precompiles, even via delegatecall if isPrecompile { - ret, gas, err = RunPrecompiledContract(p, input, gas, evm.intraBlockState) + ret, gas, err = RunPrecompiledContract(p, input, gas) } else if len(code) == 0 { // If the account has no code, we can abort here // The depth-check is already done, and precompiles handled above @@ -248,11 +248,11 @@ func (evm *EVM) call(typ OpCode, caller ContractRef, addr libcommon.Address, inp codeHash := evm.intraBlockState.GetCodeHash(addrCopy) var contract *Contract if typ == CALLCODE { - contract = NewContract(caller, AccountRef(caller.Address()), value, gas, evm.config.SkipAnalysis) + contract = NewContract(caller, caller.Address(), value, gas, evm.config.SkipAnalysis) } else if typ == DELEGATECALL { - contract = NewContract(caller, AccountRef(caller.Address()), value, gas, evm.config.SkipAnalysis).AsDelegate() + contract = NewContract(caller, caller.Address(), value, gas, evm.config.SkipAnalysis).AsDelegate() } else { - contract = NewContract(caller, AccountRef(addrCopy), value, gas, evm.config.SkipAnalysis) + contract = NewContract(caller, addrCopy, value, gas, evm.config.SkipAnalysis) } contract.SetCallCode(&addrCopy, codeHash, code) readOnly := false @@ -352,7 +352,7 @@ func (evm *EVM) create(caller ContractRef, codeAndHash *codeAndHash, gas uint64, err = ErrDepth return nil, libcommon.Address{}, gas, err } - if !evm.context.CanTransfer(evm.intraBlockState, caller.Address(), value) { + if !evm.Context.CanTransfer(evm.intraBlockState, caller.Address(), value) { err = ErrInsufficientBalance return nil, libcommon.Address{}, gas, err } @@ -381,11 +381,11 @@ func (evm *EVM) create(caller ContractRef, codeAndHash *codeAndHash, gas uint64, if evm.chainRules.IsSpuriousDragon { evm.intraBlockState.SetNonce(address, 1) } - evm.context.Transfer(evm.intraBlockState, caller.Address(), address, value, false /* bailout */) + evm.Context.Transfer(evm.intraBlockState, caller.Address(), address, value, false /* bailout */) // Initialise a new contract and set the code that is to be used by the EVM. // The contract is a scoped environment for this execution context only. - contract := NewContract(caller, AccountRef(address), value, gas, evm.config.SkipAnalysis) + contract := NewContract(caller, address, value, gas, evm.config.SkipAnalysis) contract.SetCodeOptionalHash(&address, codeAndHash) if evm.config.NoRecursion && depth > 0 { @@ -476,16 +476,6 @@ func (evm *EVM) ChainRules() *chain.Rules { return evm.chainRules } -// Context returns the EVM's BlockContext -func (evm *EVM) Context() evmtypes.BlockContext { - return evm.context -} - -// TxContext returns the EVM's TxContext -func (evm *EVM) TxContext() evmtypes.TxContext { - return evm.txContext -} - // IntraBlockState returns the EVM's IntraBlockState func (evm *EVM) IntraBlockState() evmtypes.IntraBlockState { return evm.intraBlockState diff --git a/core/vm/evm_test.go b/core/vm/evm_test.go index 286fb9664e8..9ef0efa7ed4 100644 --- a/core/vm/evm_test.go +++ b/core/vm/evm_test.go @@ -4,6 +4,7 @@ import ( "fmt" "testing" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/core/vm/evmtypes" "github.com/ledgerwatch/erigon/params" @@ -12,6 +13,7 @@ import ( ) func TestInterpreterReadonly(t *testing.T) { + t.Parallel() rapid.Check(t, func(t *rapid.T) { env := NewEVM(evmtypes.BlockContext{}, evmtypes.TxContext{}, &dummyStatedb{}, params.TestChainConfig, Config{}) @@ -39,7 +41,7 @@ func TestInterpreterReadonly(t *testing.T) { dummyContract := NewContract( &dummyContractRef{}, - &dummyContractRef{}, + libcommon.Address{}, new(uint256.Int), 0, false, @@ -117,6 +119,7 @@ func TestInterpreterReadonly(t *testing.T) { } func TestReadonlyBasicCases(t *testing.T) { + t.Parallel() cases := []struct { testName string readonlySliceTest []bool @@ -266,6 +269,7 @@ func TestReadonlyBasicCases(t *testing.T) { } t.Run(testcase.testName+evmsTestcase.suffix, func(t *testing.T) { + t.Parallel() readonlySliceTest := testcase.readonlySliceTest env := NewEVM(evmtypes.BlockContext{}, evmtypes.TxContext{}, &dummyStatedb{}, params.TestChainConfig, Config{}) @@ -292,7 +296,7 @@ func TestReadonlyBasicCases(t *testing.T) { dummyContract := NewContract( &dummyContractRef{}, - &dummyContractRef{}, + libcommon.Address{}, new(uint256.Int), 0, false, @@ -384,7 +388,7 @@ func (st *testSequential) Run(_ *Contract, _ []byte, _ bool) ([]byte, error) { nextContract := NewContract( &dummyContractRef{}, - &dummyContractRef{}, + libcommon.Address{}, new(uint256.Int), 0, false, diff --git a/core/vm/evmtypes/evmtypes.go b/core/vm/evmtypes/evmtypes.go index ac2012a8158..4b919f6b3e3 100644 --- a/core/vm/evmtypes/evmtypes.go +++ b/core/vm/evmtypes/evmtypes.go @@ -97,13 +97,12 @@ type IntraBlockState interface { precompiles []common.Address, txAccesses types2.AccessList) AddressInAccessList(addr common.Address) bool - SlotInAccessList(addr common.Address, slot common.Hash) (addressOk bool, slotOk bool) // AddAddressToAccessList adds the given address to the access list. This operation is safe to perform // even if the feature/fork is not active yet - AddAddressToAccessList(addr common.Address) + AddAddressToAccessList(addr common.Address) (addrMod bool) // AddSlotToAccessList adds the given (address,slot) to the access list. This operation is safe to perform // even if the feature/fork is not active yet - AddSlotToAccessList(addr common.Address, slot common.Hash) + AddSlotToAccessList(addr common.Address, slot common.Hash) (addrMod, slotMod bool) RevertToSnapshot(int) Snapshot() int diff --git a/core/vm/gas_table.go b/core/vm/gas_table.go index f4495765f4c..90b39100c3e 100644 --- a/core/vm/gas_table.go +++ b/core/vm/gas_table.go @@ -68,7 +68,7 @@ func memoryGasCost(mem *Memory, newMemSize uint64) (uint64, error) { // EXTCODECOPY (stack position 3) // RETURNDATACOPY (stack position 2) func memoryCopierGas(stackpos int) gasFunc { - return func(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { + return func(_ *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { // Gas for expanding the memory gas, err := memoryGasCost(mem, memorySize) if err != nil { @@ -99,7 +99,7 @@ var ( gasReturnDataCopy = memoryCopierGas(2) ) -func gasSStore(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasSStore(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { value, x := stack.Back(1), stack.Back(0) key := libcommon.Hash(x.Bytes32()) var current uint256.Int @@ -182,7 +182,7 @@ func gasSStore(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *M // 2.2.2. If original value equals new value (this storage slot is reset): // 2.2.2.1. If original value is 0, add SSTORE_SET_GAS - SLOAD_GAS to refund counter. // 2.2.2.2. Otherwise, add SSTORE_RESET_GAS - SLOAD_GAS gas to refund counter. -func gasSStoreEIP2200(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasSStoreEIP2200(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { // If we fail the minimum gas availability invariant, fail (0) if contract.Gas <= params.SstoreSentryGasEIP2200 { return 0, errors.New("not enough gas for reentrancy sentry") @@ -226,7 +226,7 @@ func gasSStoreEIP2200(evm VMInterpreter, contract *Contract, stack *stack.Stack, } func makeGasLog(n uint64) gasFunc { - return func(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { + return func(_ *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { requestedSize, overflow := stack.Back(1).Uint64WithOverflow() if overflow { return 0, ErrGasUintOverflow @@ -255,7 +255,7 @@ func makeGasLog(n uint64) gasFunc { } } -func gasKeccak256(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasKeccak256(_ *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { gas, err := memoryGasCost(mem, memorySize) if err != nil { return 0, err @@ -276,7 +276,7 @@ func gasKeccak256(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem * // pureMemoryGascost is used by several operations, which aside from their // static cost have a dynamic cost which is solely based on the memory // expansion -func pureMemoryGascost(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func pureMemoryGascost(_ *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { return memoryGasCost(mem, memorySize) } @@ -289,7 +289,7 @@ var ( gasCreate = pureMemoryGascost ) -func gasCreate2(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasCreate2(_ *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { gas, err := memoryGasCost(mem, memorySize) if err != nil { return 0, err @@ -310,7 +310,7 @@ func gasCreate2(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Me return gas, nil } -func gasCreateEip3860(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasCreateEip3860(_ *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { gas, err := memoryGasCost(mem, memorySize) if err != nil { return 0, err @@ -329,7 +329,7 @@ func gasCreateEip3860(_ VMInterpreter, contract *Contract, stack *stack.Stack, m return gas, nil } -func gasCreate2Eip3860(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasCreate2Eip3860(_ *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { gas, err := memoryGasCost(mem, memorySize) if err != nil { return 0, err @@ -348,7 +348,7 @@ func gasCreate2Eip3860(_ VMInterpreter, contract *Contract, stack *stack.Stack, return gas, nil } -func gasExpFrontier(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasExpFrontier(_ *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { expByteLen := uint64(libcommon.BitLenToByteLen(stack.Data[stack.Len()-2].BitLen())) var ( @@ -361,7 +361,7 @@ func gasExpFrontier(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem return gas, nil } -func gasExpEIP160(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasExpEIP160(_ *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { expByteLen := uint64(libcommon.BitLenToByteLen(stack.Data[stack.Len()-2].BitLen())) var ( @@ -374,7 +374,7 @@ func gasExpEIP160(_ VMInterpreter, contract *Contract, stack *stack.Stack, mem * return gas, nil } -func gasCall(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasCall(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { var ( gas uint64 transfersValue = !stack.Back(2).IsZero() @@ -412,7 +412,7 @@ func gasCall(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Mem return gas, nil } -func gasCallCode(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasCallCode(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { memoryGas, err := memoryGasCost(mem, memorySize) if err != nil { return 0, err @@ -440,7 +440,7 @@ func gasCallCode(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem return gas, nil } -func gasDelegateCall(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasDelegateCall(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { gas, err := memoryGasCost(mem, memorySize) if err != nil { return 0, err @@ -460,7 +460,7 @@ func gasDelegateCall(evm VMInterpreter, contract *Contract, stack *stack.Stack, return gas, nil } -func gasStaticCall(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasStaticCall(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { gas, err := memoryGasCost(mem, memorySize) if err != nil { return 0, err @@ -480,7 +480,7 @@ func gasStaticCall(evm VMInterpreter, contract *Contract, stack *stack.Stack, me return gas, nil } -func gasSelfdestruct(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasSelfdestruct(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { var gas uint64 // TangerineWhistle (EIP150) gas reprice fork: if evm.ChainRules().IsTangerineWhistle { diff --git a/core/vm/gas_table_test.go b/core/vm/gas_table_test.go index 7e3300a37ea..63c4546bd09 100644 --- a/core/vm/gas_table_test.go +++ b/core/vm/gas_table_test.go @@ -23,12 +23,13 @@ import ( "strconv" "testing" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/state/temporal" "github.com/ledgerwatch/erigon/core/vm/evmtypes" @@ -37,6 +38,7 @@ import ( ) func TestMemoryGasCost(t *testing.T) { + t.Parallel() tests := []struct { size uint64 cost uint64 @@ -92,6 +94,7 @@ func TestEIP2200(t *testing.T) { i := i t.Run(strconv.Itoa(i), func(t *testing.T) { + t.Parallel() address := libcommon.BytesToAddress([]byte("contract")) _, tx := memdb.NewTestTx(t) @@ -137,6 +140,7 @@ var createGasTests = []struct { } func TestCreateGas(t *testing.T) { + t.Parallel() _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil) for i, tt := range createGasTests { address := libcommon.BytesToAddress([]byte("contract")) diff --git a/core/vm/instructions.go b/core/vm/instructions.go index fa6d937a605..7871e9fd87a 100644 --- a/core/vm/instructions.go +++ b/core/vm/instructions.go @@ -294,7 +294,7 @@ func opBalance(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([] } func opOrigin(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) { - scope.Stack.Push(new(uint256.Int).SetBytes(interpreter.evm.TxContext().Origin.Bytes())) + scope.Stack.Push(new(uint256.Int).SetBytes(interpreter.evm.Origin.Bytes())) return nil, nil } func opCaller(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) { @@ -459,7 +459,7 @@ func opExtCodeHash(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) } func opGasprice(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) { - scope.Stack.Push(interpreter.evm.TxContext().GasPrice) + scope.Stack.Push(interpreter.evm.GasPrice) return nil, nil } @@ -471,14 +471,14 @@ func opBlockhash(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ( return nil, nil } var upper, lower uint64 - upper = interpreter.evm.Context().BlockNumber + upper = interpreter.evm.Context.BlockNumber if upper < 257 { lower = 0 } else { lower = upper - 256 } if num64 >= lower && num64 < upper { - num.SetBytes(interpreter.evm.Context().GetHash(num64).Bytes()) + num.SetBytes(interpreter.evm.Context.GetHash(num64).Bytes()) } else { num.Clear() } @@ -486,30 +486,30 @@ func opBlockhash(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ( } func opCoinbase(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) { - scope.Stack.Push(new(uint256.Int).SetBytes(interpreter.evm.Context().Coinbase.Bytes())) + scope.Stack.Push(new(uint256.Int).SetBytes(interpreter.evm.Context.Coinbase.Bytes())) return nil, nil } func opTimestamp(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) { - v := new(uint256.Int).SetUint64(interpreter.evm.Context().Time) + v := new(uint256.Int).SetUint64(interpreter.evm.Context.Time) scope.Stack.Push(v) return nil, nil } func opNumber(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) { - v := new(uint256.Int).SetUint64(interpreter.evm.Context().BlockNumber) + v := new(uint256.Int).SetUint64(interpreter.evm.Context.BlockNumber) scope.Stack.Push(v) return nil, nil } func opDifficulty(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) { var v *uint256.Int - if interpreter.evm.Context().PrevRanDao != nil { + if interpreter.evm.Context.PrevRanDao != nil { // EIP-4399: Supplant DIFFICULTY opcode with PREVRANDAO - v = new(uint256.Int).SetBytes(interpreter.evm.Context().PrevRanDao.Bytes()) + v = new(uint256.Int).SetBytes(interpreter.evm.Context.PrevRanDao.Bytes()) } else { var overflow bool - v, overflow = uint256.FromBig(interpreter.evm.Context().Difficulty) + v, overflow = uint256.FromBig(interpreter.evm.Context.Difficulty) if overflow { return nil, fmt.Errorf("interpreter.evm.Context.Difficulty higher than 2^256-1") } @@ -519,10 +519,10 @@ func opDifficulty(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) } func opGasLimit(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) { - if interpreter.evm.Context().MaxGasLimit { + if interpreter.evm.Context.MaxGasLimit { scope.Stack.Push(new(uint256.Int).SetAllOne()) } else { - scope.Stack.Push(new(uint256.Int).SetUint64(interpreter.evm.Context().GasLimit)) + scope.Stack.Push(new(uint256.Int).SetUint64(interpreter.evm.Context.GasLimit)) } return nil, nil } @@ -575,13 +575,13 @@ func opJump(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byt if usedBitmap { if interpreter.cfg.TraceJumpDest { log.Warn("Code Bitmap used for detecting invalid jump", - "tx", fmt.Sprintf("0x%x", interpreter.evm.TxContext().TxHash), - "block_num", interpreter.evm.Context().BlockNumber, + "tx", fmt.Sprintf("0x%x", interpreter.evm.TxHash), + "block_num", interpreter.evm.Context.BlockNumber, ) } else { // This is "cheaper" version because it does not require calculation of txHash for each transaction log.Warn("Code Bitmap used for detecting invalid jump", - "block_num", interpreter.evm.Context().BlockNumber, + "block_num", interpreter.evm.Context.BlockNumber, ) } } @@ -598,13 +598,13 @@ func opJumpi(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]by if usedBitmap { if interpreter.cfg.TraceJumpDest { log.Warn("Code Bitmap used for detecting invalid jump", - "tx", fmt.Sprintf("0x%x", interpreter.evm.TxContext().TxHash), - "block_num", interpreter.evm.Context().BlockNumber, + "tx", fmt.Sprintf("0x%x", interpreter.evm.TxHash), + "block_num", interpreter.evm.Context.BlockNumber, ) } else { // This is "cheaper" version because it does not require calculation of txHash for each transaction log.Warn("Code Bitmap used for detecting invalid jump", - "block_num", interpreter.evm.Context().BlockNumber, + "block_num", interpreter.evm.Context.BlockNumber, ) } } @@ -741,7 +741,7 @@ func opCall(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byt } stack.Push(&temp) if err == nil || err == ErrExecutionReverted { - ret = common.CopyBytes(ret) + ret = libcommon.CopyBytes(ret) scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret) } @@ -775,7 +775,7 @@ func opCallCode(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([ } stack.Push(&temp) if err == nil || err == ErrExecutionReverted { - ret = common.CopyBytes(ret) + ret = libcommon.CopyBytes(ret) scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret) } @@ -805,7 +805,7 @@ func opDelegateCall(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext } stack.Push(&temp) if err == nil || err == ErrExecutionReverted { - ret = common.CopyBytes(ret) + ret = libcommon.CopyBytes(ret) scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret) } @@ -835,7 +835,7 @@ func opStaticCall(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) } stack.Push(&temp) if err == nil || err == ErrExecutionReverted { - ret = common.CopyBytes(ret) + ret = libcommon.CopyBytes(ret) scope.Memory.Set(retOffset.Uint64(), retSize.Uint64(), ret) } @@ -892,15 +892,15 @@ func opSelfdestruct6780(pc *uint64, interpreter *EVMInterpreter, scope *ScopeCon beneficiary := scope.Stack.Pop() callerAddr := scope.Contract.Address() beneficiaryAddr := libcommon.Address(beneficiary.Bytes20()) - balance := interpreter.evm.IntraBlockState().GetBalance(callerAddr) + balance := *interpreter.evm.IntraBlockState().GetBalance(callerAddr) if interpreter.evm.Config().Debug { if interpreter.cfg.Debug { - interpreter.cfg.Tracer.CaptureEnter(SELFDESTRUCT, callerAddr, beneficiaryAddr, false /* precompile */, false /* create */, []byte{}, 0, balance, nil /* code */) + interpreter.cfg.Tracer.CaptureEnter(SELFDESTRUCT, callerAddr, beneficiaryAddr, false /* precompile */, false /* create */, []byte{}, 0, &balance, nil /* code */) interpreter.cfg.Tracer.CaptureExit([]byte{}, 0, nil) } } - interpreter.evm.IntraBlockState().SubBalance(callerAddr, balance) - interpreter.evm.IntraBlockState().AddBalance(beneficiaryAddr, balance) + interpreter.evm.IntraBlockState().SubBalance(callerAddr, &balance) + interpreter.evm.IntraBlockState().AddBalance(beneficiaryAddr, &balance) interpreter.evm.IntraBlockState().Selfdestruct6780(callerAddr) return nil, errStopToken } @@ -928,7 +928,7 @@ func makeLog(size int) executionFunc { Data: d, // This is a non-consensus field, but assigned here because // core/state doesn't know the current block number. - BlockNumber: interpreter.evm.Context().BlockNumber, + BlockNumber: interpreter.evm.Context.BlockNumber, }) return nil, nil diff --git a/core/vm/instructions_test.go b/core/vm/instructions_test.go index c64b0f34697..62f5304e267 100644 --- a/core/vm/instructions_test.go +++ b/core/vm/instructions_test.go @@ -117,9 +117,9 @@ func testTwoOperandOp(t *testing.T, tests []TwoOperandTestcase, opFn executionFu ) for i, test := range tests { - x := new(uint256.Int).SetBytes(common.Hex2Bytes(test.X)) - y := new(uint256.Int).SetBytes(common.Hex2Bytes(test.Y)) - expected := new(uint256.Int).SetBytes(common.Hex2Bytes(test.Expected)) + x := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.X)) + y := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.Y)) + expected := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.Expected)) stack.Push(x) stack.Push(y) opFn(&pc, evmInterpreter, &ScopeContext{nil, stack, nil}) @@ -135,6 +135,7 @@ func testTwoOperandOp(t *testing.T, tests []TwoOperandTestcase, opFn executionFu } func TestByteOp(t *testing.T) { + t.Parallel() tests := []TwoOperandTestcase{ {"ABCDEF0908070605040302010000000000000000000000000000000000000000", "00", "AB"}, {"ABCDEF0908070605040302010000000000000000000000000000000000000000", "01", "CD"}, @@ -149,6 +150,7 @@ func TestByteOp(t *testing.T) { } func TestSHL(t *testing.T) { + t.Parallel() // Testcases from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md#shl-shift-left tests := []TwoOperandTestcase{ {"0000000000000000000000000000000000000000000000000000000000000001", "01", "0000000000000000000000000000000000000000000000000000000000000002"}, @@ -166,6 +168,7 @@ func TestSHL(t *testing.T) { } func TestSHR(t *testing.T) { + t.Parallel() // Testcases from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md#shr-logical-shift-right tests := []TwoOperandTestcase{ {"0000000000000000000000000000000000000000000000000000000000000001", "00", "0000000000000000000000000000000000000000000000000000000000000001"}, @@ -184,6 +187,7 @@ func TestSHR(t *testing.T) { } func TestSAR(t *testing.T) { + t.Parallel() // Testcases from https://github.com/ethereum/EIPs/blob/master/EIPS/eip-145.md#sar-arithmetic-shift-right tests := []TwoOperandTestcase{ {"0000000000000000000000000000000000000000000000000000000000000001", "00", "0000000000000000000000000000000000000000000000000000000000000001"}, @@ -208,6 +212,7 @@ func TestSAR(t *testing.T) { } func TestAddMod(t *testing.T) { + t.Parallel() var ( env = NewEVM(evmtypes.BlockContext{}, evmtypes.TxContext{}, nil, params.TestChainConfig, Config{}) stack = stack.New() @@ -230,10 +235,10 @@ func TestAddMod(t *testing.T) { // in 256 bit repr, fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd for i, test := range tests { - x := new(uint256.Int).SetBytes(common.Hex2Bytes(test.x)) - y := new(uint256.Int).SetBytes(common.Hex2Bytes(test.y)) - z := new(uint256.Int).SetBytes(common.Hex2Bytes(test.z)) - expected := new(uint256.Int).SetBytes(common.Hex2Bytes(test.expected)) + x := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.x)) + y := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.y)) + z := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.z)) + expected := new(uint256.Int).SetBytes(libcommon.Hex2Bytes(test.expected)) stack.Push(z) stack.Push(y) stack.Push(x) @@ -283,6 +288,7 @@ func TestAddMod(t *testing.T) { // TestJsonTestcases runs through all the testcases defined as json-files func TestJsonTestcases(t *testing.T) { + t.Parallel() for name := range twoOpMethods { data, err := os.ReadFile(fmt.Sprintf("testdata/testcases_%v.json", name)) if err != nil { @@ -305,7 +311,7 @@ func opBenchmark(b *testing.B, op executionFunc, args ...string) { // convert args byteArgs := make([][]byte, len(args)) for i, arg := range args { - byteArgs[i] = common.Hex2Bytes(arg) + byteArgs[i] = libcommon.Hex2Bytes(arg) } pc := uint64(0) b.ResetTimer() @@ -529,6 +535,7 @@ func BenchmarkOpIsZero(b *testing.B) { } func TestOpMstore(t *testing.T) { + t.Parallel() var ( env = NewEVM(evmtypes.BlockContext{}, evmtypes.TxContext{}, nil, params.TestChainConfig, Config{}) stack = stack.New() @@ -540,7 +547,7 @@ func TestOpMstore(t *testing.T) { mem.Resize(64) pc := uint64(0) v := "abcdef00000000000000abba000000000deaf000000c0de00100000000133700" - stack.PushN(*new(uint256.Int).SetBytes(common.Hex2Bytes(v)), *new(uint256.Int)) + stack.PushN(*new(uint256.Int).SetBytes(libcommon.Hex2Bytes(v)), *new(uint256.Int)) opMstore(&pc, evmInterpreter, &ScopeContext{mem, stack, nil}) if got := common.Bytes2Hex(mem.GetCopy(0, 32)); got != v { t.Fatalf("Mstore fail, got %v, expected %v", got, v) @@ -574,6 +581,7 @@ func BenchmarkOpMstore(bench *testing.B) { } func TestOpTstore(t *testing.T) { + t.Parallel() var ( state = state.New(nil) env = NewEVM(evmtypes.BlockContext{}, evmtypes.TxContext{}, state, params.TestChainConfig, Config{}) @@ -583,9 +591,9 @@ func TestOpTstore(t *testing.T) { caller = libcommon.Address{} to = libcommon.Address{1} contractRef = contractRef{caller} - contract = NewContract(contractRef, AccountRef(to), u256.Num0, 0, false) + contract = NewContract(contractRef, to, u256.Num0, 0, false) scopeContext = ScopeContext{mem, stack, contract} - value = common.Hex2Bytes("abcdef00000000000000abba000000000deaf000000c0de00100000000133700") + value = libcommon.Hex2Bytes("abcdef00000000000000abba000000000deaf000000c0de00100000000133700") ) env.interpreter = evmInterpreter @@ -632,6 +640,7 @@ func BenchmarkOpKeccak256(bench *testing.B) { } func TestCreate2Addreses(t *testing.T) { + t.Parallel() type testcase struct { origin string salt string @@ -706,6 +715,7 @@ func TestCreate2Addreses(t *testing.T) { } func TestOpMCopy(t *testing.T) { + t.Parallel() // Test cases from https://eips.ethereum.org/EIPS/eip-5656#test-cases for i, tc := range []struct { dst, src, len string diff --git a/core/vm/interpreter.go b/core/vm/interpreter.go index f26e272bbd8..161068229bf 100644 --- a/core/vm/interpreter.go +++ b/core/vm/interpreter.go @@ -99,7 +99,7 @@ type EVMInterpreter struct { // //nolint:structcheck type VM struct { - evm VMInterpreter + evm *EVM cfg Config hasher keccakState // Keccak256 hasher instance shared across opcodes @@ -121,7 +121,7 @@ func copyJumpTable(jt *JumpTable) *JumpTable { } // NewEVMInterpreter returns a new instance of the Interpreter. -func NewEVMInterpreter(evm VMInterpreter, cfg Config) *EVMInterpreter { +func NewEVMInterpreter(evm *EVM, cfg Config) *EVMInterpreter { var jt *JumpTable switch { case evm.ChainRules().IsPrague: @@ -183,17 +183,6 @@ func (in *EVMInterpreter) Run(contract *Contract, input []byte, readOnly bool) ( return nil, nil } - // Increment the call depth which is restricted to 1024 - in.depth++ - defer in.decrementDepth() - - // Make sure the readOnly is only set if we aren't in readOnly yet. - // This makes also sure that the readOnly flag isn't removed for child calls. - if readOnly && !in.readOnly { - in.readOnly = true - defer func() { in.readOnly = false }() - } - // Reset the previous call's return data. It's unimportant to preserve the old buffer // as every returning call will return new data anyway. in.returnData = nil @@ -219,25 +208,37 @@ func (in *EVMInterpreter) Run(contract *Contract, input []byte, readOnly bool) ( logged bool // deferred Tracer should ignore already logged steps res []byte // result of the opcode execution function ) - // Don't move this deferrred function, it's placed before the capturestate-deferred method, - // so that it get's executed _after_: the capturestate needs the stacks before - // they are returned to the pools + mem.Reset() - defer pool.Put(mem) - defer stack.ReturnNormalStack(locStack) + contract.Input = input - if in.cfg.Debug { - defer func() { - if err != nil { - if !logged { - in.cfg.Tracer.CaptureState(pcCopy, op, gasCopy, cost, callContext, in.returnData, in.depth, err) //nolint:errcheck - } else { - in.cfg.Tracer.CaptureFault(pcCopy, op, gasCopy, cost, callContext, in.depth, err) - } - } - }() + // Make sure the readOnly is only set if we aren't in readOnly yet. + // This makes also sure that the readOnly flag isn't removed for child calls. + restoreReadonly := readOnly && !in.readOnly + if restoreReadonly { + in.readOnly = true } + // Increment the call depth which is restricted to 1024 + in.depth++ + defer func() { + // first: capture data/memory/state/depth/etc... then clenup them + if in.cfg.Debug && err != nil { + if !logged { + in.cfg.Tracer.CaptureState(pcCopy, op, gasCopy, cost, callContext, in.returnData, in.depth, err) //nolint:errcheck + } else { + in.cfg.Tracer.CaptureFault(pcCopy, op, gasCopy, cost, callContext, in.depth, err) + } + } + // this function must execute _after_: the `CaptureState` needs the stacks before + pool.Put(mem) + stack.ReturnNormalStack(locStack) + if restoreReadonly { + in.readOnly = false + } + in.depth-- + }() + // The Interpreter main run loop (contextual). This loop runs until either an // explicit STOP, RETURN or SELFDESTRUCT is executed, an error occurred during // the execution of one of the operations or until the done flag is set by the @@ -292,11 +293,15 @@ func (in *EVMInterpreter) Run(contract *Contract, input []byte, readOnly bool) ( if err != nil || !contract.UseGas(dynamicCost) { return nil, ErrOutOfGas } + // Do tracing before memory expansion + if in.cfg.Debug { + in.cfg.Tracer.CaptureState(_pc, op, gasCopy, cost, callContext, in.returnData, in.depth, err) //nolint:errcheck + logged = true + } if memorySize > 0 { mem.Resize(memorySize) } - } - if in.cfg.Debug { + } else if in.cfg.Debug { in.cfg.Tracer.CaptureState(_pc, op, gasCopy, cost, callContext, in.returnData, in.depth, err) //nolint:errcheck logged = true } diff --git a/core/vm/jump_table.go b/core/vm/jump_table.go index 67e636f14f2..047c9f53845 100644 --- a/core/vm/jump_table.go +++ b/core/vm/jump_table.go @@ -25,7 +25,7 @@ import ( type ( executionFunc func(pc *uint64, interpreter *EVMInterpreter, callContext *ScopeContext) ([]byte, error) - gasFunc func(VMInterpreter, *Contract, *stack.Stack, *Memory, uint64) (uint64, error) // last parameter is the requested memory size as a uint64 + gasFunc func(*EVM, *Contract, *stack.Stack, *Memory, uint64) (uint64, error) // last parameter is the requested memory size as a uint64 // memorySizeFunc returns the required size, and whether the operation overflowed a uint64 memorySizeFunc func(*stack.Stack) (size uint64, overflow bool) ) @@ -104,6 +104,7 @@ func newCancunInstructionSet() JumpTable { enable4844(&instructionSet) // BLOBHASH opcode enable5656(&instructionSet) // MCOPY opcode enable6780(&instructionSet) // SELFDESTRUCT only in same transaction + enable7516(&instructionSet) // BLOBBASEFEE opcode validateAndFillMaxStack(&instructionSet) return instructionSet } diff --git a/core/vm/logger.go b/core/vm/logger.go index ff76ae71efb..5677233f97a 100644 --- a/core/vm/logger.go +++ b/core/vm/logger.go @@ -33,7 +33,7 @@ type EVMLogger interface { CaptureTxStart(gasLimit uint64) CaptureTxEnd(restGas uint64) // Top call frame - CaptureStart(env VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) + CaptureStart(env *EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) CaptureEnd(output []byte, usedGas uint64, err error) // Rest of the frames CaptureEnter(typ OpCode, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) diff --git a/core/vm/memory_test.go b/core/vm/memory_test.go index 5418bbbc305..f304e9eb256 100644 --- a/core/vm/memory_test.go +++ b/core/vm/memory_test.go @@ -9,6 +9,7 @@ import ( ) func TestMemoryCopy(t *testing.T) { + t.Parallel() // Test cases from https://eips.ethereum.org/EIPS/eip-5656#test-cases for i, tc := range []struct { dst, src, len uint64 diff --git a/core/vm/mock_vm.go b/core/vm/mock_vm.go index f2a99b66f0a..de0a632f454 100644 --- a/core/vm/mock_vm.go +++ b/core/vm/mock_vm.go @@ -51,7 +51,7 @@ func (evm *testVM) Run(_ *Contract, _ []byte, readOnly bool) (ret []byte, err er if *evm.currentIdx < len(evm.readOnlySliceTest) { res, err := run(evm.env, NewContract( &dummyContractRef{}, - &dummyContractRef{}, + libcommon.Address{}, new(uint256.Int), 0, false, diff --git a/core/vm/opcodes.go b/core/vm/opcodes.go index f01c01170ce..97fef071075 100644 --- a/core/vm/opcodes.go +++ b/core/vm/opcodes.go @@ -105,6 +105,7 @@ const ( SELFBALANCE OpCode = 0x47 BASEFEE OpCode = 0x48 BLOBHASH OpCode = 0x49 + BLOBBASEFEE OpCode = 0x4a ) // 0x50 range - 'storage' and execution. @@ -282,6 +283,7 @@ var opCodeToString = map[OpCode]string{ SELFBALANCE: "SELFBALANCE", BASEFEE: "BASEFEE", BLOBHASH: "BLOBHASH", + BLOBBASEFEE: "BLOBBASEFEE", // 0x50 range - 'storage' and execution. POP: "POP", @@ -437,6 +439,7 @@ var stringToOp = map[string]OpCode{ "CHAINID": CHAINID, "BASEFEE": BASEFEE, "BLOBHASH": BLOBHASH, + "BLOBBASEFEE": BLOBBASEFEE, "DELEGATECALL": DELEGATECALL, "STATICCALL": STATICCALL, "CODESIZE": CODESIZE, diff --git a/core/vm/operations_acl.go b/core/vm/operations_acl.go index 10ace257499..6256ae5740b 100644 --- a/core/vm/operations_acl.go +++ b/core/vm/operations_acl.go @@ -28,7 +28,7 @@ import ( ) func makeGasSStoreFunc(clearingRefund uint64) gasFunc { - return func(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { + return func(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { // If we fail the minimum gas availability invariant, fail (0) if contract.Gas <= params.SstoreSentryGasEIP2200 { return 0, errors.New("not enough gas for reentrancy sentry") @@ -40,18 +40,11 @@ func makeGasSStoreFunc(clearingRefund uint64) gasFunc { current uint256.Int cost = uint64(0) ) + evm.IntraBlockState().GetState(contract.Address(), &slot, ¤t) - // Check slot presence in the access list - if addrPresent, slotPresent := evm.IntraBlockState().SlotInAccessList(contract.Address(), slot); !slotPresent { + // If the caller cannot afford the cost, this change will be rolled back + if _, slotMod := evm.IntraBlockState().AddSlotToAccessList(contract.Address(), slot); slotMod { cost = params.ColdSloadCostEIP2929 - // If the caller cannot afford the cost, this change will be rolled back - evm.IntraBlockState().AddSlotToAccessList(contract.Address(), slot) - if !addrPresent { - // Once we're done with YOLOv2 and schedule this for mainnet, might - // be good to remove this panic here, which is just really a - // canary to have during testing - panic("impossible case: address was not present in access list during sstore op") - } } var value uint256.Int value.Set(y) @@ -107,14 +100,11 @@ func makeGasSStoreFunc(clearingRefund uint64) gasFunc { // whose storage is being read) is not yet in accessed_storage_keys, // charge 2100 gas and add the pair to accessed_storage_keys. // If the pair is already in accessed_storage_keys, charge 100 gas. -func gasSLoadEIP2929(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasSLoadEIP2929(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { loc := stack.Peek() - slot := libcommon.Hash(loc.Bytes32()) - // Check slot presence in the access list - if _, slotPresent := evm.IntraBlockState().SlotInAccessList(contract.Address(), slot); !slotPresent { - // If the caller cannot afford the cost, this change will be rolled back - // If he does afford it, we can skip checking the same thing later on, during execution - evm.IntraBlockState().AddSlotToAccessList(contract.Address(), slot) + // If the caller cannot afford the cost, this change will be rolled back + // If he does afford it, we can skip checking the same thing later on, during execution + if _, slotMod := evm.IntraBlockState().AddSlotToAccessList(contract.Address(), loc.Bytes32()); slotMod { return params.ColdSloadCostEIP2929, nil } return params.WarmStorageReadCostEIP2929, nil @@ -125,7 +115,7 @@ func gasSLoadEIP2929(evm VMInterpreter, contract *Contract, stack *stack.Stack, // > If the target is not in accessed_addresses, // > charge COLD_ACCOUNT_ACCESS_COST gas, and add the address to accessed_addresses. // > Otherwise, charge WARM_STORAGE_READ_COST gas. -func gasExtCodeCopyEIP2929(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasExtCodeCopyEIP2929(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { // memory expansion first (dynamic part of pre-2929 implementation) gas, err := gasExtCodeCopy(evm, contract, stack, mem, memorySize) if err != nil { @@ -133,8 +123,7 @@ func gasExtCodeCopyEIP2929(evm VMInterpreter, contract *Contract, stack *stack.S } addr := libcommon.Address(stack.Peek().Bytes20()) // Check slot presence in the access list - if !evm.IntraBlockState().AddressInAccessList(addr) { - evm.IntraBlockState().AddAddressToAccessList(addr) + if evm.IntraBlockState().AddAddressToAccessList(addr) { var overflow bool // We charge (cold-warm), since 'warm' is already charged as constantGas if gas, overflow = math.SafeAdd(gas, params.ColdAccountAccessCostEIP2929-params.WarmStorageReadCostEIP2929); overflow { @@ -152,12 +141,10 @@ func gasExtCodeCopyEIP2929(evm VMInterpreter, contract *Contract, stack *stack.S // - extcodehash, // - extcodesize, // - (ext) balance -func gasEip2929AccountCheck(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { +func gasEip2929AccountCheck(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { addr := libcommon.Address(stack.Peek().Bytes20()) - // Check slot presence in the access list - if !evm.IntraBlockState().AddressInAccessList(addr) { - // If the caller cannot afford the cost, this change will be rolled back - evm.IntraBlockState().AddAddressToAccessList(addr) + // If the caller cannot afford the cost, this change will be rolled back + if evm.IntraBlockState().AddAddressToAccessList(addr) { // The warm storage read cost is already charged as constantGas return params.ColdAccountAccessCostEIP2929 - params.WarmStorageReadCostEIP2929, nil } @@ -165,15 +152,15 @@ func gasEip2929AccountCheck(evm VMInterpreter, contract *Contract, stack *stack. } func makeCallVariantGasCallEIP2929(oldCalculator gasFunc) gasFunc { - return func(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { + return func(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { addr := libcommon.Address(stack.Back(1).Bytes20()) - // Check slot presence in the access list - warmAccess := evm.IntraBlockState().AddressInAccessList(addr) // The WarmStorageReadCostEIP2929 (100) is already deducted in the form of a constant cost, so // the cost to charge for cold access, if any, is Cold - Warm coldCost := params.ColdAccountAccessCostEIP2929 - params.WarmStorageReadCostEIP2929 - if !warmAccess { - evm.IntraBlockState().AddAddressToAccessList(addr) + + addrMod := evm.IntraBlockState().AddAddressToAccessList(addr) + warmAccess := !addrMod + if addrMod { // Charge the remaining difference here already, to correctly calculate available // gas for call if !contract.UseGas(coldCost) { @@ -228,14 +215,13 @@ var ( // makeSelfdestructGasFn can create the selfdestruct dynamic gas function for EIP-2929 and EIP-2539 func makeSelfdestructGasFn(refundsEnabled bool) gasFunc { - gasFunc := func(evm VMInterpreter, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { + gasFunc := func(evm *EVM, contract *Contract, stack *stack.Stack, mem *Memory, memorySize uint64) (uint64, error) { var ( gas uint64 address = libcommon.Address(stack.Peek().Bytes20()) ) - if !evm.IntraBlockState().AddressInAccessList(address) { - // If the caller cannot afford the cost, this change will be rolled back - evm.IntraBlockState().AddAddressToAccessList(address) + // If the caller cannot afford the cost, this change will be rolled back + if evm.IntraBlockState().AddAddressToAccessList(address) { gas = params.ColdAccountAccessCostEIP2929 } // if empty and transfers value diff --git a/core/vm/runtime/runtime.go b/core/vm/runtime/runtime.go index 8dd6706448b..df2bb97b7ec 100644 --- a/core/vm/runtime/runtime.go +++ b/core/vm/runtime/runtime.go @@ -132,7 +132,7 @@ func Execute(code, input []byte, cfg *Config, bn uint64) ([]byte, *state.IntraBl address = libcommon.BytesToAddress([]byte("contract")) vmenv = NewEnv(cfg) sender = vm.AccountRef(cfg.Origin) - rules = cfg.ChainConfig.Rules(vmenv.Context().BlockNumber, vmenv.Context().Time) + rules = vmenv.ChainRules() ) cfg.State.Prepare(rules, cfg.Origin, cfg.Coinbase, &address, vm.ActivePrecompiles(rules), nil) cfg.State.CreateAccount(address, true) @@ -176,7 +176,7 @@ func Create(input []byte, cfg *Config, blockNr uint64) ([]byte, libcommon.Addres var ( vmenv = NewEnv(cfg) sender = vm.AccountRef(cfg.Origin) - rules = cfg.ChainConfig.Rules(vmenv.Context().BlockNumber, vmenv.Context().Time) + rules = vmenv.ChainRules() ) cfg.State.Prepare(rules, cfg.Origin, cfg.Coinbase, nil, vm.ActivePrecompiles(rules), nil) @@ -202,7 +202,7 @@ func Call(address libcommon.Address, input []byte, cfg *Config) ([]byte, uint64, sender := cfg.State.GetOrNewStateObject(cfg.Origin) statedb := cfg.State - rules := cfg.ChainConfig.Rules(vmenv.Context().BlockNumber, vmenv.Context().Time) + rules := vmenv.ChainRules() statedb.Prepare(rules, cfg.Origin, cfg.Coinbase, &address, vm.ActivePrecompiles(rules), nil) // Call the code with the given configuration. diff --git a/core/vm/runtime/runtime_example_test.go b/core/vm/runtime/runtime_example_test.go index c558d17d4fa..753e3f97f4c 100644 --- a/core/vm/runtime/runtime_example_test.go +++ b/core/vm/runtime/runtime_example_test.go @@ -18,8 +18,8 @@ package runtime_test import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/vm/runtime" ) diff --git a/core/vm/runtime/runtime_test.go b/core/vm/runtime/runtime_test.go index 40d334748e4..1e326eea237 100644 --- a/core/vm/runtime/runtime_test.go +++ b/core/vm/runtime/runtime_test.go @@ -39,6 +39,7 @@ import ( ) func TestDefaults(t *testing.T) { + t.Parallel() cfg := new(Config) setDefaults(cfg) @@ -67,6 +68,7 @@ func TestDefaults(t *testing.T) { } func TestEVM(t *testing.T) { + t.Parallel() defer func() { if r := recover(); r != nil { t.Fatalf("crashed with: %v", r) @@ -87,6 +89,7 @@ func TestEVM(t *testing.T) { } func TestExecute(t *testing.T) { + t.Parallel() ret, _, err := Execute([]byte{ byte(vm.PUSH1), 10, byte(vm.PUSH1), 0, @@ -106,6 +109,7 @@ func TestExecute(t *testing.T) { } func TestCall(t *testing.T) { + t.Parallel() _, tx := memdb.NewTestTx(t) state := state.New(state.NewDbStateReader(tx)) address := libcommon.HexToAddress("0xaa") @@ -132,7 +136,7 @@ func TestCall(t *testing.T) { func BenchmarkCall(b *testing.B) { var definition = `[{"constant":true,"inputs":[],"name":"seller","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"abort","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"value","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"buyer","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"confirmReceived","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"type":"function"},{"constant":false,"inputs":[],"name":"confirmPurchase","outputs":[],"type":"function"},{"inputs":[],"type":"constructor"},{"anonymous":false,"inputs":[],"name":"Aborted","type":"event"},{"anonymous":false,"inputs":[],"name":"PurchaseConfirmed","type":"event"},{"anonymous":false,"inputs":[],"name":"ItemReceived","type":"event"},{"anonymous":false,"inputs":[],"name":"Refunded","type":"event"}]` - var code = common.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") + var code = libcommon.Hex2Bytes("6060604052361561006c5760e060020a600035046308551a53811461007457806335a063b4146100865780633fa4f245146100a6578063590e1ae3146100af5780637150d8ae146100cf57806373fac6f0146100e1578063c19d93fb146100fe578063d696069714610112575b610131610002565b610133600154600160a060020a031681565b610131600154600160a060020a0390811633919091161461015057610002565b61014660005481565b610131600154600160a060020a039081163391909116146102d557610002565b610133600254600160a060020a031681565b610131600254600160a060020a0333811691161461023757610002565b61014660025460ff60a060020a9091041681565b61013160025460009060ff60a060020a9091041681146101cc57610002565b005b600160a060020a03166060908152602090f35b6060908152602090f35b60025460009060a060020a900460ff16811461016b57610002565b600154600160a060020a03908116908290301631606082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f72c874aeff0b183a56e2b79c71b46e1aed4dee5e09862134b8821ba2fddbf8bf9250a150565b80546002023414806101dd57610002565b6002805460a060020a60ff021973ffffffffffffffffffffffffffffffffffffffff1990911633171660a060020a1790557fd5d55c8a68912e9a110618df8d5e2e83b8d83211c57a8ddd1203df92885dc881826060a15050565b60025460019060a060020a900460ff16811461025257610002565b60025460008054600160a060020a0390921691606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517fe89152acd703c9d8c7d28829d443260b411454d45394e7995815140c8cbcbcf79250a150565b60025460019060a060020a900460ff1681146102f057610002565b6002805460008054600160a060020a0390921692909102606082818181858883f150508354604051600160a060020a0391821694503090911631915082818181858883f150506002805460a060020a60ff02191660a160020a179055506040517f8616bbbbad963e4e65b1366f1d75dfb63f9e9704bbbf91fb01bec70849906cf79250a15056") abi, err := abi.JSON(strings.NewReader(definition)) if err != nil { @@ -264,6 +268,7 @@ func (d *dummyChain) GetHeader(h libcommon.Hash, n uint64) *types.Header { // TestBlockhash tests the blockhash operation. It's a bit special, since it internally // requires access to a chain reader. func TestBlockhash(t *testing.T) { + t.Parallel() // Current head n := uint64(1000) parentHash := libcommon.Hash{} @@ -304,9 +309,9 @@ func TestBlockhash(t *testing.T) { */ // The contract above - data := common.Hex2Bytes("6080604052348015600f57600080fd5b50600436106045576000357c010000000000000000000000000000000000000000000000000000000090048063f8a8fd6d14604a575b600080fd5b60506074565b60405180848152602001838152602001828152602001935050505060405180910390f35b600080600080439050600080600083409050600184034092506000600290505b61010481101560c35760008186034090506000816001900414151560b6578093505b5080806001019150506094565b508083839650965096505050505090919256fea165627a7a72305820462d71b510c1725ff35946c20b415b0d50b468ea157c8c77dff9466c9cb85f560029") + data := libcommon.Hex2Bytes("6080604052348015600f57600080fd5b50600436106045576000357c010000000000000000000000000000000000000000000000000000000090048063f8a8fd6d14604a575b600080fd5b60506074565b60405180848152602001838152602001828152602001935050505060405180910390f35b600080600080439050600080600083409050600184034092506000600290505b61010481101560c35760008186034090506000816001900414151560b6578093505b5080806001019150506094565b508083839650965096505050505090919256fea165627a7a72305820462d71b510c1725ff35946c20b415b0d50b468ea157c8c77dff9466c9cb85f560029") // The method call to 'test()' - input := common.Hex2Bytes("f8a8fd6d") + input := libcommon.Hex2Bytes("f8a8fd6d") chain := &dummyChain{} ret, _, err := Execute(data, input, &Config{ GetHashFn: core.GetHashFn(header, chain.GetHeader), diff --git a/core/vm/stack/stack.go b/core/vm/stack/stack.go index 9b6e291201e..119d8b61f16 100644 --- a/core/vm/stack/stack.go +++ b/core/vm/stack/stack.go @@ -66,20 +66,20 @@ func (st *Stack) Cap() int { } func (st *Stack) Swap(n int) { - st.Data[st.Len()-n], st.Data[st.Len()-1] = st.Data[st.Len()-1], st.Data[st.Len()-n] + st.Data[len(st.Data)-n], st.Data[len(st.Data)-1] = st.Data[len(st.Data)-1], st.Data[len(st.Data)-n] } func (st *Stack) Dup(n int) { - st.Push(&st.Data[st.Len()-n]) + st.Data = append(st.Data, st.Data[len(st.Data)-n]) } func (st *Stack) Peek() *uint256.Int { - return &st.Data[st.Len()-1] + return &st.Data[len(st.Data)-1] } // Back returns the n'th item in stack func (st *Stack) Back(n int) *uint256.Int { - return &st.Data[st.Len()-n-1] + return &st.Data[len(st.Data)-n-1] } func (st *Stack) Reset() { @@ -107,42 +107,3 @@ func ReturnNormalStack(s *Stack) { s.Data = s.Data[:0] stackPool.Put(s) } - -var rStackPool = sync.Pool{ - New: func() interface{} { - return &ReturnStack{data: make([]uint32, 0, 10)} - }, -} - -func ReturnRStack(rs *ReturnStack) { - rs.data = rs.data[:0] - rStackPool.Put(rs) -} - -// ReturnStack is an object for basic return stack operations. -type ReturnStack struct { - data []uint32 -} - -func NewReturnStack() *ReturnStack { - rStack, ok := rStackPool.Get().(*ReturnStack) - if !ok { - log.Error("Type assertion failure", "err", "cannot get ReturnStack pointer from rStackPool") - } - return rStack -} - -func (st *ReturnStack) Push(d uint32) { - st.data = append(st.data, d) -} - -// A uint32 is sufficient as for code below 4.2G -func (st *ReturnStack) Pop() (ret uint32) { - ret = st.data[len(st.data)-1] - st.data = st.data[:len(st.data)-1] - return -} - -func (st *ReturnStack) Data() []uint32 { - return st.data -} diff --git a/core/vm/testdata/precompiles/pointEvaluation.json b/core/vm/testdata/precompiles/pointEvaluation.json index bef9fc57713..ecee94aa7d0 100644 --- a/core/vm/testdata/precompiles/pointEvaluation.json +++ b/core/vm/testdata/precompiles/pointEvaluation.json @@ -1,6 +1,6 @@ [ { - "Input": "013c03613f6fc558fb7e61e75602241ed9a2f04e36d8670aadd286e71b5ca9cc00000000000000000000000000000000000000000000000000000000000000423c8e9f367d9c417c78ca1700993dae1987f44bd5e8ea33a7f62ebc6c35a2e53183fac17c3f237fc51f90e2c660eb202a438bc2025baded5cd193c1a018c5885bc9281ba704d5566082e851235c7be763b2a99adff965e0a121ee972ebc472d02944a74f5c6243e14052e105124b70bf65faf85ad3a494325e269fad097842cba", + "Input": "014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9", "Expected": "000000000000000000000000000000000000000000000000000000000000100073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", "Name": "pointEvaluation1", "Gas": 50000, diff --git a/crypto/crypto.go b/crypto/crypto.go index 17e592ba6a8..6d385075d92 100644 --- a/crypto/crypto.go +++ b/crypto/crypto.go @@ -24,6 +24,7 @@ import ( "encoding/hex" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "hash" "io" "math/big" @@ -35,7 +36,6 @@ import ( "github.com/ledgerwatch/erigon/crypto/cryptopool" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/rlp" diff --git a/crypto/crypto_test.go b/crypto/crypto_test.go index 8f33c95f81d..b9a979bf8c2 100644 --- a/crypto/crypto_test.go +++ b/crypto/crypto_test.go @@ -20,6 +20,7 @@ import ( "bytes" "crypto/ecdsa" "encoding/hex" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "os" "reflect" "testing" @@ -30,7 +31,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/u256" ) diff --git a/crypto/signature_test.go b/crypto/signature_test.go index 2aef1113c14..1a033a96766 100644 --- a/crypto/signature_test.go +++ b/crypto/signature_test.go @@ -19,11 +19,11 @@ package crypto import ( "bytes" "crypto/ecdsa" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "testing" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" ) diff --git a/diagnostics/block_body_download.go b/diagnostics/block_body_download_stats.go similarity index 82% rename from diagnostics/block_body_download.go rename to diagnostics/block_body_download_stats.go index c60fa1b9bab..4903e1a8c99 100644 --- a/diagnostics/block_body_download.go +++ b/diagnostics/block_body_download_stats.go @@ -9,8 +9,8 @@ import ( "github.com/ledgerwatch/erigon/dataflow" ) -func SetupBlockBodyDownload() { - http.HandleFunc("/debug/metrics/block_body_download", func(w http.ResponseWriter, r *http.Request) { +func SetupBlockBodyDownload(metricsMux *http.ServeMux) { + metricsMux.HandleFunc("/block_body_download", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") writeBlockBodyDownload(w, r) }) diff --git a/diagnostics/bootnodes.go b/diagnostics/bootnodes.go new file mode 100644 index 00000000000..fba0982881e --- /dev/null +++ b/diagnostics/bootnodes.go @@ -0,0 +1,25 @@ +package diagnostics + +import ( + "encoding/json" + "net/http" + + "github.com/ledgerwatch/erigon/turbo/node" +) + +func SetupBootnodesAccess(metricsMux *http.ServeMux, node *node.ErigonNode) { + metricsMux.HandleFunc("/bootnodes", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Content-Type", "application/json") + + bootnodes := node.Node().Config().P2P.BootstrapNodesV5 + + btNodes := make([]string, 0, len(bootnodes)) + + for _, bootnode := range bootnodes { + btNodes = append(btNodes, bootnode.String()) + } + + json.NewEncoder(w).Encode(btNodes) + }) +} diff --git a/diagnostics/cmd_line.go b/diagnostics/cmd_line.go index 067861d7ba7..db4d9dcfdf5 100644 --- a/diagnostics/cmd_line.go +++ b/diagnostics/cmd_line.go @@ -1,22 +1,29 @@ package diagnostics import ( - "fmt" - "io" "net/http" "os" + "strconv" + "strings" ) -func SetupCmdLineAccess() { - http.HandleFunc("/debug/metrics/cmdline", func(w http.ResponseWriter, r *http.Request) { +func SetupCmdLineAccess(metricsMux *http.ServeMux) { + metricsMux.HandleFunc("/cmdline", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") - writeCmdLine(w) - }) -} + w.Header().Set("Content-Type", "application/json") + + var space []byte -func writeCmdLine(w io.Writer) { - fmt.Fprintf(w, "SUCCESS\n") - for _, arg := range os.Args { - fmt.Fprintf(w, "%s\n", arg) - } + w.Write([]byte{'"'}) + for _, arg := range os.Args { + if len(space) > 0 { + w.Write(space) + } else { + space = []byte(" ") + } + + w.Write([]byte(strings.Trim(strconv.Quote(arg), `"`))) + } + w.Write([]byte{'"'}) + }) } diff --git a/diagnostics/db.go b/diagnostics/db.go new file mode 100644 index 00000000000..6769b29425e --- /dev/null +++ b/diagnostics/db.go @@ -0,0 +1,258 @@ +package diagnostics + +import ( + "context" + "encoding/base64" + "encoding/json" + "fmt" + "net/http" + "path/filepath" + "strings" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon/common/paths" + "github.com/urfave/cli/v2" +) + +func SetupDbAccess(ctx *cli.Context, metricsMux *http.ServeMux) { + var dataDir string + if ctx.IsSet("datadir") { + dataDir = ctx.String("datadir") + } else { + dataDir = paths.DataDirForNetwork(paths.DefaultDataDir(), ctx.String("chain")) + } + metricsMux.HandleFunc("/dbs", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Content-Type", "application/json") + writeDbList(w, dataDir) + }) + metricsMux.HandleFunc("/dbs/", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + + urlPath := r.URL.Path + + if !strings.HasPrefix(urlPath, "/dbs/") { + http.Error(w, fmt.Sprintf(`Unexpected path prefix: expected: "/dbs/..." got: "%s"`, urlPath), http.StatusNotFound) + return + } + + pathParts := strings.Split(urlPath[5:], "/") + + if len(pathParts) < 1 { + http.Error(w, fmt.Sprintf(`Unexpected path len: expected: "{db}/tables" got: "%s"`, urlPath), http.StatusNotFound) + return + } + + var dbname string + var sep string + + for len(pathParts) > 0 { + dbname += sep + pathParts[0] + + if sep == "" { + sep = "/" + } + + pathParts = pathParts[1:] + + if pathParts[0] == "tables" { + break + } + + if len(pathParts) < 2 { + http.Error(w, fmt.Sprintf(`Unexpected path part: expected: "tables" got: "%s"`, pathParts[0]), http.StatusNotFound) + return + } + } + + switch len(pathParts) { + case 1: + writeDbTables(w, r, dataDir, dbname) + case 2: + offset, err := offsetValue(r.URL.Query()) + + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + limit, err := limitValue(r.URL.Query(), 0) + + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + writeDbRead(w, r, dataDir, dbname, pathParts[1], nil, offset, limit) + case 3: + key, err := base64.URLEncoding.DecodeString(pathParts[2]) + + if err != nil { + http.Error(w, fmt.Sprintf(`key "%s" argument should be base64url encoded: %v`, pathParts[2], err), http.StatusBadRequest) + return + } + + offset, err := offsetValue(r.URL.Query()) + + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + limit, err := limitValue(r.URL.Query(), 0) + + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + writeDbRead(w, r, dataDir, dbname, pathParts[1], key, offset, limit) + + default: + http.Error(w, fmt.Sprintf(`Unexpected path parts: "%s"`, strings.Join(pathParts[2:], "/")), http.StatusNotFound) + } + }) +} + +func writeDbList(w http.ResponseWriter, dataDir string) { + w.Header().Set("Content-Type", "application/json") + m := mdbx.PathDbMap() + dbs := make([]string, 0, len(m)) + for path := range m { + dbs = append(dbs, strings.ReplaceAll(strings.TrimPrefix(path, dataDir)[1:], "\\", "/")) + } + + json.NewEncoder(w).Encode(dbs) +} + +func writeDbTables(w http.ResponseWriter, r *http.Request, dataDir string, dbname string) { + m := mdbx.PathDbMap() + db, ok := m[filepath.Join(dataDir, dbname)] + if !ok { + http.Error(w, fmt.Sprintf(`"%s" is not in the list of allowed dbs`, dbname), http.StatusNotFound) + return + } + type table struct { + Name string `json:"name"` + Count uint64 `json:"count"` + Size uint64 `json:"size"` + } + + var tables []table + + if err := db.View(context.Background(), func(tx kv.Tx) error { + var e error + buckets, e := tx.ListBuckets() + if e != nil { + return e + } + + for _, bucket := range buckets { + size, e := tx.BucketSize(bucket) + if e != nil { + return e + } + + var count uint64 + + if e := db.View(context.Background(), func(tx kv.Tx) error { + c, e := tx.Cursor(bucket) + if e != nil { + return e + } + defer c.Close() + count, e = c.Count() + if e != nil { + return e + } + + return nil + }); e != nil { + return e + } + + tables = append(tables, table{bucket, count, size}) + } + + return nil + }); err != nil { + http.Error(w, fmt.Sprintf(`failed to list tables in "%s": %v`, dbname, err), http.StatusInternalServerError) + return + } + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(tables) +} + +func writeDbRead(w http.ResponseWriter, r *http.Request, dataDir string, dbname string, table string, key []byte, offset int64, limit int64) { + m := mdbx.PathDbMap() + db, ok := m[filepath.Join(dataDir, dbname)] + if !ok { + fmt.Fprintf(w, "ERROR: path %s is not in the list of allowed paths", dbname) + return + } + + var results [][2][]byte + var count uint64 + + if err := db.View(context.Background(), func(tx kv.Tx) error { + c, e := tx.Cursor(table) + if e != nil { + return e + } + defer c.Close() + + count, e = c.Count() + + if e != nil { + return e + } + + var k, v []byte + if key == nil { + if k, v, e = c.First(); e != nil { + return e + } + } else if k, v, e = c.Seek(key); e != nil { + return e + } + + var pos int64 + + for e == nil && k != nil && pos < offset { + //TODO - not sure if this is a good idea it may be slooooow + k, _, e = c.Next() + pos++ + } + + for e == nil && k != nil && (limit == 0 || int64(len(results)) < limit) { + results = append(results, [2][]byte{k, v}) + k, v, e = c.Next() + } + return nil + }); err != nil { + fmt.Fprintf(w, "ERROR: reading table %s in %s: %v\n", table, dbname, err) + return + } + + w.Header().Set("Content-Type", "application/json") + w.Write([]byte("{")) + fmt.Fprintf(w, `"offset":%d`, offset) + if limit > 0 { + fmt.Fprintf(w, `,"limit":%d`, limit) + } + fmt.Fprintf(w, `,"count":%d`, count) + if len(results) > 0 { + var comma string + w.Write([]byte(`,"results":{`)) + for _, result := range results { + fmt.Fprintf(w, `%s"%s":"%s"`, comma, base64.URLEncoding.EncodeToString(result[0]), base64.URLEncoding.EncodeToString(result[1])) + + if comma == "" { + comma = "," + } + } + w.Write([]byte("}")) + } + w.Write([]byte("}")) +} diff --git a/diagnostics/db_access.go b/diagnostics/db_access.go deleted file mode 100644 index 586cae00ee1..00000000000 --- a/diagnostics/db_access.go +++ /dev/null @@ -1,139 +0,0 @@ -package diagnostics - -import ( - "context" - "encoding/hex" - "fmt" - "io" - "net/http" - - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon-lib/kv/mdbx" - "github.com/ledgerwatch/erigon/common/paths" - "github.com/urfave/cli/v2" -) - -func SetupDbAccess(ctx *cli.Context) { - var dataDir string - if ctx.IsSet("datadir") { - dataDir = ctx.String("datadir") - } else { - dataDir = paths.DataDirForNetwork(paths.DefaultDataDir(), ctx.String("chain")) - } - http.HandleFunc("/debug/metrics/db/list", func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Access-Control-Allow-Origin", "*") - writeDbList(w, dataDir) - }) - http.HandleFunc("/debug/metrics/db/tables", func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Access-Control-Allow-Origin", "*") - writeDbTables(w, r, dataDir) - }) - http.HandleFunc("/debug/metrics/db/read", func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Access-Control-Allow-Origin", "*") - writeDbRead(w, r, dataDir) - }) -} - -func writeDbList(w io.Writer, dataDir string) { - fmt.Fprintf(w, "SUCCESS\n") - m := mdbx.PathDbMap() - for path := range m { - fmt.Fprintf(w, "%s\n", path) - } -} - -func writeDbTables(w io.Writer, r *http.Request, dataDir string) { - if err := r.ParseForm(); err != nil { - fmt.Fprintf(w, "ERROR: parsing arguments: %v\n", err) - return - } - path := r.Form.Get("path") - if path == "" { - fmt.Fprintf(w, "ERROR: path argument is required - specify the relative path to an MDBX database directory") - return - } - m := mdbx.PathDbMap() - db, ok := m[path] - if !ok { - fmt.Fprintf(w, "ERROR: path %s is not in the list of allowed paths", path) - return - } - var tables []string - if err := db.View(context.Background(), func(tx kv.Tx) error { - var e error - tables, e = tx.ListBuckets() - if e != nil { - return e - } - return nil - }); err != nil { - fmt.Fprintf(w, "ERROR: listing tables in %s: %v\n", path, err) - return - } - fmt.Fprintf(w, "SUCCESS\n") - for _, table := range tables { - fmt.Fprintf(w, "%s\n", table) - } -} - -func writeDbRead(w io.Writer, r *http.Request, dataDir string) { - if err := r.ParseForm(); err != nil { - fmt.Fprintf(w, "ERROR: parsing arguments: %v\n", err) - return - } - path := r.Form.Get("path") - if path == "" { - fmt.Fprintf(w, "ERROR: path argument is required - specify the relative path to an MDBX database directory") - return - } - m := mdbx.PathDbMap() - db, ok := m[path] - if !ok { - fmt.Fprintf(w, "ERROR: path %s is not in the list of allowed paths", path) - return - } - table := r.Form.Get("table") - if table == "" { - fmt.Fprintf(w, "ERROR: table argument is required - specify the table to read from") - return - } - var key []byte - var err error - keyHex := r.Form.Get("key") - if keyHex != "" { - if key, err = hex.DecodeString(keyHex); err != nil { - fmt.Fprintf(w, "ERROR: key [%s] argument may only contain hexadecimal digits: %v\n", keyHex, err) - return - } - } - var results []string - if err := db.View(context.Background(), func(tx kv.Tx) error { - c, e := tx.Cursor(table) - if e != nil { - return e - } - defer c.Close() - var k, v []byte - if key == nil { - if k, v, e = c.First(); err != nil { - return e - } - } else if k, v, e = c.Seek(key); e != nil { - return e - } - count := 0 - for e == nil && k != nil && count < 256 { - results = append(results, fmt.Sprintf("%x | %x", k, v)) - count++ - k, v, e = c.Next() - } - return nil - }); err != nil { - fmt.Fprintf(w, "ERROR: reading table %s in %s: %v\n", table, path, err) - return - } - fmt.Fprintf(w, "SUCCESS\n") - for _, result := range results { - fmt.Fprintf(w, "%s\n", result) - } -} diff --git a/diagnostics/diagnostic.go b/diagnostics/diagnostic.go new file mode 100644 index 00000000000..c045057d451 --- /dev/null +++ b/diagnostics/diagnostic.go @@ -0,0 +1,93 @@ +package diagnostics + +import ( + "context" + "net/http" + + "github.com/ledgerwatch/erigon-lib/common" + diaglib "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/ledgerwatch/erigon/turbo/node" + "github.com/ledgerwatch/log/v3" + "github.com/urfave/cli/v2" +) + +type DiagnosticClient struct { + ctx *cli.Context + metricsMux *http.ServeMux + node *node.ErigonNode + + snapshotDownload diaglib.SnapshotDownloadStatistics +} + +func NewDiagnosticClient(ctx *cli.Context, metricsMux *http.ServeMux, node *node.ErigonNode) *DiagnosticClient { + return &DiagnosticClient{ctx: ctx, metricsMux: metricsMux, node: node, snapshotDownload: diaglib.SnapshotDownloadStatistics{}} +} + +func (d *DiagnosticClient) Setup() { + d.runSnapshotListener() + d.runTorrentListener() +} + +func (d *DiagnosticClient) runSnapshotListener() { + go func() { + ctx, ch, cancel := diaglib.Context[diaglib.SnapshotDownloadStatistics](context.Background(), 1) + defer cancel() + + rootCtx, _ := common.RootContext() + + diaglib.StartProviders(ctx, diaglib.TypeOf(diaglib.SnapshotDownloadStatistics{}), log.Root()) + for { + select { + case <-rootCtx.Done(): + cancel() + return + case info := <-ch: + d.snapshotDownload.Downloaded = info.Downloaded + d.snapshotDownload.Total = info.Total + d.snapshotDownload.TotalTime = info.TotalTime + d.snapshotDownload.DownloadRate = info.DownloadRate + d.snapshotDownload.UploadRate = info.UploadRate + d.snapshotDownload.Peers = info.Peers + d.snapshotDownload.Files = info.Files + d.snapshotDownload.Connections = info.Connections + d.snapshotDownload.Alloc = info.Alloc + d.snapshotDownload.Sys = info.Sys + d.snapshotDownload.DownloadFinished = info.DownloadFinished + d.snapshotDownload.TorrentMetadataReady = info.TorrentMetadataReady + + if info.DownloadFinished { + return + } + } + } + + }() +} + +func (d *DiagnosticClient) SnapshotDownload() diaglib.SnapshotDownloadStatistics { + return d.snapshotDownload +} + +func (d *DiagnosticClient) runTorrentListener() { + go func() { + ctx, ch, cancel := diaglib.Context[diaglib.SegmentDownloadStatistics](context.Background(), 1) + defer cancel() + + rootCtx, _ := common.RootContext() + + diaglib.StartProviders(ctx, diaglib.TypeOf(diaglib.SegmentDownloadStatistics{}), log.Root()) + for { + select { + case <-rootCtx.Done(): + cancel() + return + case info := <-ch: + if d.snapshotDownload.Segments == nil { + d.snapshotDownload.Segments = map[string]diaglib.SegmentDownloadStatistics{} + } + + d.snapshotDownload.Segments[info.Name] = info + } + } + }() +} diff --git a/diagnostics/flags.go b/diagnostics/flags.go index df6c9eaaf24..9cdf0267031 100644 --- a/diagnostics/flags.go +++ b/diagnostics/flags.go @@ -1,23 +1,55 @@ package diagnostics import ( - "fmt" - "io" + "encoding/json" "net/http" "github.com/urfave/cli/v2" ) -func SetupFlagsAccess(ctx *cli.Context) { - http.HandleFunc("/debug/metrics/flags", func(w http.ResponseWriter, r *http.Request) { +func SetupFlagsAccess(ctx *cli.Context, metricsMux *http.ServeMux) { + metricsMux.HandleFunc("/flags", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") - writeFlags(w, ctx) - }) -} + w.Header().Set("Content-Type", "application/json") + flags := map[string]interface{}{} + + ctxFlags := map[string]struct{}{} + + for _, flagName := range ctx.FlagNames() { + ctxFlags[flagName] = struct{}{} + } + + for _, flag := range ctx.App.Flags { + name := flag.Names()[0] + value := ctx.Value(name) -func writeFlags(w io.Writer, ctx *cli.Context) { - fmt.Fprintf(w, "SUCCESS\n") - for _, flagName := range ctx.FlagNames() { - fmt.Fprintf(w, "%s=%v\n", flagName, ctx.Value(flagName)) - } + switch typed := value.(type) { + case string: + if typed == "" { + continue + } + case cli.UintSlice: + value = typed.Value() + } + + var usage string + + if docFlag, ok := flag.(cli.DocGenerationFlag); ok { + usage = docFlag.GetUsage() + } + + _, inCtx := ctxFlags[name] + + flags[name] = struct { + Value interface{} `json:"value,omitempty"` + Usage string `json:"usage,omitempty"` + Default bool `json:"default"` + }{ + Value: value, + Usage: usage, + Default: !inCtx, + } + } + json.NewEncoder(w).Encode(flags) + }) } diff --git a/diagnostics/header_downloader_stats.go b/diagnostics/header_downloader_stats.go index 946e9d53f73..a388d6fb4ae 100644 --- a/diagnostics/header_downloader_stats.go +++ b/diagnostics/header_downloader_stats.go @@ -9,8 +9,8 @@ import ( "github.com/ledgerwatch/erigon/dataflow" ) -func SetupHeaderDownloadStats() { - http.HandleFunc("/debug/metrics/headers_download", func(w http.ResponseWriter, r *http.Request) { +func SetupHeaderDownloadStats(metricsMux *http.ServeMux) { + metricsMux.HandleFunc("/headers_download", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") writeHeaderDownload(w, r) }) diff --git a/diagnostics/logs.go b/diagnostics/logs.go new file mode 100644 index 00000000000..72196aa79a4 --- /dev/null +++ b/diagnostics/logs.go @@ -0,0 +1,190 @@ +package diagnostics + +import ( + "encoding/json" + "errors" + "fmt" + "io" + "io/fs" + "net/http" + "net/url" + "os" + "path" + "path/filepath" + "strconv" + + "github.com/urfave/cli/v2" + + "github.com/ledgerwatch/erigon/turbo/logging" +) + +func SetupLogsAccess(ctx *cli.Context, metricsMux *http.ServeMux) { + dirPath := ctx.String(logging.LogDirPathFlag.Name) + if dirPath == "" { + datadir := ctx.String("datadir") + if datadir != "" { + dirPath = filepath.Join(datadir, "logs") + } + } + if dirPath == "" { + return + } + metricsMux.HandleFunc("/logs", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + writeLogsList(w, dirPath) + }) + metricsMux.HandleFunc("/logs/", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + writeLogsRead(w, r, dirPath) + }) +} + +func writeLogsList(w http.ResponseWriter, dirPath string) { + entries, err := os.ReadDir(dirPath) + if err != nil { + http.Error(w, fmt.Sprintf("Failed to list directory %s: %v", dirPath, err), http.StatusInternalServerError) + return + } + + infos := make([]fs.FileInfo, 0, len(entries)) + + for _, entry := range entries { + fileInfo, err := os.Stat(filepath.Join(dirPath, entry.Name())) + if err != nil { + http.Error(w, fmt.Sprintf("Can't stat file %s: %v", entry.Name(), err), http.StatusInternalServerError) + return + } + if fileInfo.IsDir() { + continue + } + infos = append(infos, fileInfo) + } + + type file struct { + Name string `json:"name"` + Size int64 `json:"size"` + } + + files := make([]file, len(infos)) + + for _, fileInfo := range infos { + files = append(files, file{Name: fileInfo.Name(), Size: fileInfo.Size()}) + } + + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(files) +} + +func writeLogsRead(w http.ResponseWriter, r *http.Request, dirPath string) { + file := path.Base(r.URL.Path) + + if file == "/" || file == "." { + http.Error(w, "file is required - specify the name of log file to read", http.StatusBadRequest) + return + } + + offset, err := offsetValue(r.URL.Query()) + + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + fileInfo, err := os.Stat(filepath.Join(dirPath, file)) + + if err != nil { + http.Error(w, fmt.Sprintf("Can't stat file %s: %v", file, err), http.StatusInternalServerError) + return + } + + if fileInfo.IsDir() { + http.Error(w, fmt.Sprintf("%s is a directory, needs to be a file", file), http.StatusInternalServerError) + return + } + + if offset > fileInfo.Size() { + http.Error(w, fmt.Sprintf("offset %d must not be greater than this file size %d", offset, fileInfo.Size()), http.StatusBadRequest) + return + } + + f, err := os.Open(filepath.Join(dirPath, file)) + + if err != nil { + http.Error(w, fmt.Sprintf("Can't opening file %s: %v\n", file, err), http.StatusInternalServerError) + return + } + + limit, err := limitValue(r.URL.Query(), fileInfo.Size()) + + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + + buf := make([]byte, limit) + + if _, err := f.Seek(offset, 0); err != nil { + http.Error(w, fmt.Sprintf("seek failed for file: %s to %d: %v", file, offset, err), http.StatusInternalServerError) + return + } + + var n int + var readTotal int + + for n, err = f.Read(buf[readTotal:]); err == nil && readTotal < len(buf); n, err = f.Read(buf[readTotal:]) { + readTotal += n + } + + if err != nil && !errors.Is(err, io.EOF) { + http.Error(w, fmt.Sprintf("Reading failed for: %s at %d: %v\n", file, readTotal, err), http.StatusInternalServerError) + return + } + + w.Header().Set("Content-Type", "application/octet-stream") + w.Header().Set("Content-Length", strconv.FormatInt(int64(readTotal), 10)) + w.Header().Set("X-Offset", strconv.FormatInt(offset, 10)) + w.Header().Set("X-Limit", strconv.FormatInt(limit, 10)) + w.Header().Set("X-Size", strconv.FormatInt(fileInfo.Size(), 10)) + w.Write(buf[:readTotal]) +} + +func limitValue(values url.Values, def int64) (int64, error) { + limitStr := values.Get("limit") + + var limit int64 + var err error + + if limitStr == "" { + limit = def + } else { + limit, err = strconv.ParseInt(limitStr, 10, 64) + } + + if err != nil { + return 0, fmt.Errorf("limit %s is not a int64 number: %v", limitStr, err) + } + + return limit, nil +} + +func offsetValue(values url.Values) (int64, error) { + + offsetStr := values.Get("offset") + + var offset int64 + var err error + + if offsetStr != "" { + offset, err = strconv.ParseInt(offsetStr, 10, 64) + + if err != nil { + return 0, fmt.Errorf("offset %s is not a int64 number: %v", offsetStr, err) + } + } + + if offset < 0 { + return 0, fmt.Errorf("offset %d must be non-negative", offset) + } + + return offset, nil +} diff --git a/diagnostics/logs_access.go b/diagnostics/logs_access.go deleted file mode 100644 index 58bfe69b15b..00000000000 --- a/diagnostics/logs_access.go +++ /dev/null @@ -1,122 +0,0 @@ -package diagnostics - -import ( - "errors" - "fmt" - "io" - "io/fs" - "net/http" - "os" - "path/filepath" - "strconv" - - "github.com/urfave/cli/v2" - - "github.com/ledgerwatch/erigon/turbo/logging" -) - -func SetupLogsAccess(ctx *cli.Context) { - dirPath := ctx.String(logging.LogDirPathFlag.Name) - if dirPath == "" { - datadir := ctx.String("datadir") - if datadir != "" { - dirPath = filepath.Join(datadir, "logs") - } - } - if dirPath == "" { - return - } - http.HandleFunc("/debug/metrics/logs/list", func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Access-Control-Allow-Origin", "*") - writeLogsList(w, dirPath) - }) - http.HandleFunc("/debug/metrics/logs/read", func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Access-Control-Allow-Origin", "*") - writeLogsRead(w, r, dirPath) - }) -} - -func writeLogsList(w io.Writer, dirPath string) { - entries, err := os.ReadDir(dirPath) - if err != nil { - fmt.Fprintf(w, "ERROR: listing directory %s: %v\n", dirPath, err) - return - } - //nolint: prealloc - var infos []fs.FileInfo - for _, entry := range entries { - fileInfo, err := os.Stat(filepath.Join(dirPath, entry.Name())) - if err != nil { - fmt.Fprintf(w, "ERROR: stat file %s: %v\n", entry.Name(), err) - return - } - if fileInfo.IsDir() { - continue - } - infos = append(infos, fileInfo) - } - fmt.Fprintf(w, "SUCCESS\n") - for _, fileInfo := range infos { - fmt.Fprintf(w, "%s | %d\n", fileInfo.Name(), fileInfo.Size()) - } -} - -func writeLogsRead(w io.Writer, r *http.Request, dirPath string) { - if err := r.ParseForm(); err != nil { - fmt.Fprintf(w, "ERROR: parsing arguments: %v\n", err) - return - } - file := r.Form.Get("file") - if file == "" { - fmt.Fprintf(w, "ERROR: file argument is required - specify the name of log file to read") - return - } - fileInfo, err := os.Stat(filepath.Join(dirPath, file)) - if err != nil { - fmt.Fprintf(w, "ERROR: stat file %s: %v\n", file, err) - return - } - if fileInfo.IsDir() { - fmt.Fprintf(w, "ERROR: %s is a directory, needs to be a file", file) - return - } - offsetStr := r.Form.Get("offset") - if offsetStr == "" { - fmt.Fprintf(w, "ERROR: offset argument is required - specify where to start reading in the file") - return - } - offset, err := strconv.ParseInt(offsetStr, 10, 64) - if err != nil { - fmt.Fprintf(w, "ERROR: offset %s is not a Uint64 number: %v\n", offsetStr, err) - return - } - if offset < 0 { - fmt.Fprintf(w, "ERROR: offset %d must be non-negative\n", offset) - return - } - if offset > fileInfo.Size() { - fmt.Fprintf(w, "ERROR: offset %d must be no greater than file size %d\n", offset, fileInfo.Size()) - return - } - f, err := os.Open(filepath.Join(dirPath, file)) - if err != nil { - fmt.Fprintf(w, "ERROR: opening file %s: %v\n", file, err) - return - } - var buf [16 * 1024]byte - if _, err := f.Seek(offset, 0); err != nil { - fmt.Fprintf(w, "ERROR: seeking in file: %s to %d: %v\n", file, offset, err) - return - } - var n int - var readTotal int - for n, err = f.Read(buf[readTotal:]); err == nil && readTotal < len(buf); n, err = f.Read(buf[readTotal:]) { - readTotal += n - } - if err != nil && !errors.Is(err, io.EOF) { - fmt.Fprintf(w, "ERROR: reading in file: %s at %d: %v\n", file, readTotal, err) - return - } - fmt.Fprintf(w, "SUCCESS: %d-%d/%d\n", offset, offset+int64(readTotal), fileInfo.Size()) - w.Write(buf[:readTotal]) -} diff --git a/diagnostics/nodeinfo.go b/diagnostics/nodeinfo.go new file mode 100644 index 00000000000..198aa77d7d2 --- /dev/null +++ b/diagnostics/nodeinfo.go @@ -0,0 +1,26 @@ +package diagnostics + +import ( + "encoding/json" + "net/http" + + "github.com/ledgerwatch/erigon/turbo/node" +) + +func SetupNodeInfoAccess(metricsMux *http.ServeMux, node *node.ErigonNode) { + metricsMux.HandleFunc("/nodeinfo", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + writeNodeInfo(w, node) + }) +} + +func writeNodeInfo(w http.ResponseWriter, node *node.ErigonNode) { + reply, err := node.Backend().NodesInfo(0) + + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + json.NewEncoder(w).Encode(reply) +} diff --git a/diagnostics/peers.go b/diagnostics/peers.go new file mode 100644 index 00000000000..e65e3713d2f --- /dev/null +++ b/diagnostics/peers.go @@ -0,0 +1,150 @@ +package diagnostics + +import ( + "encoding/json" + "net/http" + + diagnint "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/ledgerwatch/erigon/turbo/node" + "github.com/urfave/cli/v2" +) + +type PeerNetworkInfo struct { + LocalAddress string `json:"localAddress"` // Local endpoint of the TCP data connection + RemoteAddress string `json:"remoteAddress"` // Remote endpoint of the TCP data connection + Inbound bool `json:"inbound"` + Trusted bool `json:"trusted"` + Static bool `json:"static"` + BytesIn uint64 `json:"bytesIn"` + BytesOut uint64 `json:"bytesOut"` + CapBytesIn map[string]uint64 `json:"capBytesIn"` + CapBytesOut map[string]uint64 `json:"capBytesOut"` + TypeBytesIn map[string]uint64 `json:"typeBytesIn"` + TypeBytesOut map[string]uint64 `json:"typeBytesOut"` +} + +type PeerResponse struct { + ENR string `json:"enr,omitempty"` // Ethereum Node Record + Enode string `json:"enode"` // Node URL + ID string `json:"id"` // Unique node identifier + Name string `json:"name"` // Name of the node, including client type, version, OS, custom data + ErrorCount int `json:"errorCount"` // Number of errors + LastSeenError string `json:"lastSeenError"` // Last seen error + Type string `json:"type"` // Type of connection + Caps []string `json:"caps"` // Protocols advertised by this peer + Network PeerNetworkInfo `json:"network"` + Protocols map[string]interface{} `json:"protocols"` // Sub-protocol specific metadata fields +} + +func SetupPeersAccess(ctxclient *cli.Context, metricsMux *http.ServeMux, node *node.ErigonNode) { + metricsMux.HandleFunc("/peers", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Content-Type", "application/json") + writePeers(w, ctxclient, node) + }) +} + +func writePeers(w http.ResponseWriter, ctx *cli.Context, node *node.ErigonNode) { + sentinelPeers, err := sentinelPeers(node) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + sentryPeers, err := sentryPeers(node) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + allPeers := append(sentryPeers, sentinelPeers...) + + json.NewEncoder(w).Encode(allPeers) +} + +func sentinelPeers(node *node.ErigonNode) ([]*PeerResponse, error) { + if diag, ok := node.Backend().Sentinel().(diagnint.PeerStatisticsGetter); ok { + + statisticsArray := diag.GetPeersStatistics() + peers := make([]*PeerResponse, 0, len(statisticsArray)) + + for key, value := range statisticsArray { + peer := PeerResponse{ + ENR: "", //TODO: find a way how to get missing data + Enode: "", + ID: key, + Name: "", + Type: "Sentinel", + Caps: []string{}, + Network: PeerNetworkInfo{ + LocalAddress: "", + RemoteAddress: "", + Inbound: false, + Trusted: false, + Static: false, + BytesIn: value.BytesIn, + BytesOut: value.BytesOut, + CapBytesIn: value.CapBytesIn, + CapBytesOut: value.CapBytesOut, + TypeBytesIn: value.TypeBytesIn, + TypeBytesOut: value.TypeBytesOut, + }, + Protocols: nil, + } + + peers = append(peers, &peer) + } + + return peers, nil + } else { + return []*PeerResponse{}, nil + } +} + +func sentryPeers(node *node.ErigonNode) ([]*PeerResponse, error) { + + statisticsArray := node.Backend().DiagnosticsPeersData() + + peers := make([]*PeerResponse, 0, len(statisticsArray)) + + for key, value := range statisticsArray { + peer := PeerResponse{ + ENR: "", //TODO: find a way how to get missing data + Enode: "", + ID: key, + Name: "", + Type: "Sentry", + Caps: []string{}, + Network: PeerNetworkInfo{ + LocalAddress: "", + RemoteAddress: "", + Inbound: false, + Trusted: false, + Static: false, + BytesIn: value.BytesIn, + BytesOut: value.BytesOut, + CapBytesIn: value.CapBytesIn, + CapBytesOut: value.CapBytesOut, + TypeBytesIn: value.TypeBytesIn, + TypeBytesOut: value.TypeBytesOut, + }, + Protocols: nil, + } + + peers = append(peers, &peer) + } + + return filterPeersWithoutBytesIn(peers), nil +} + +func filterPeersWithoutBytesIn(peers []*PeerResponse) []*PeerResponse { + filteredPeers := make([]*PeerResponse, 0, len(peers)) + + for _, peer := range peers { + if peer.Network.BytesIn > 0 { + filteredPeers = append(filteredPeers, peer) + } + } + + return filteredPeers +} diff --git a/diagnostics/setup.go b/diagnostics/setup.go new file mode 100644 index 00000000000..44fc74570fc --- /dev/null +++ b/diagnostics/setup.go @@ -0,0 +1,35 @@ +package diagnostics + +import ( + "net/http" + "strings" + + "github.com/ledgerwatch/erigon/turbo/node" + "github.com/urfave/cli/v2" +) + +func Setup(ctx *cli.Context, metricsMux *http.ServeMux, node *node.ErigonNode) { + debugMux := http.NewServeMux() + + diagnostic := NewDiagnosticClient(ctx, debugMux, node) + diagnostic.Setup() + + metricsMux.HandleFunc("/debug/", func(w http.ResponseWriter, r *http.Request) { + r.URL.Path = strings.TrimPrefix(r.URL.Path, "/debug") + r.URL.RawPath = strings.TrimPrefix(r.URL.RawPath, "/debug") + debugMux.ServeHTTP(w, r) + }) + + SetupLogsAccess(ctx, debugMux) + SetupDbAccess(ctx, debugMux) + SetupCmdLineAccess(debugMux) + SetupFlagsAccess(ctx, debugMux) + SetupVersionAccess(debugMux) + SetupBlockBodyDownload(debugMux) + SetupHeaderDownloadStats(debugMux) + SetupNodeInfoAccess(debugMux, node) + SetupPeersAccess(ctx, debugMux, node) + SetupBootnodesAccess(debugMux, node) + SetupStagesAccess(debugMux, diagnostic) + +} diff --git a/diagnostics/snapshot_sync.go b/diagnostics/snapshot_sync.go new file mode 100644 index 00000000000..66bb2a8a392 --- /dev/null +++ b/diagnostics/snapshot_sync.go @@ -0,0 +1,18 @@ +package diagnostics + +import ( + "encoding/json" + "net/http" +) + +func SetupStagesAccess(metricsMux *http.ServeMux, diag *DiagnosticClient) { + metricsMux.HandleFunc("/snapshot-sync", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Content-Type", "application/json") + writeStages(w, diag) + }) +} + +func writeStages(w http.ResponseWriter, diag *DiagnosticClient) { + json.NewEncoder(w).Encode(diag.SnapshotDownload()) +} diff --git a/diagnostics/version.go b/diagnostics/version.go index 384b5ac0b77..f54bfa73b64 100644 --- a/diagnostics/version.go +++ b/diagnostics/version.go @@ -1,8 +1,7 @@ package diagnostics import ( - "fmt" - "io" + "encoding/json" "net/http" "github.com/ledgerwatch/erigon/params" @@ -10,16 +9,18 @@ import ( const Version = 3 -func SetupVersionAccess() { - http.HandleFunc("/debug/metrics/version", func(w http.ResponseWriter, r *http.Request) { +func SetupVersionAccess(metricsMux *http.ServeMux) { + metricsMux.HandleFunc("/version", func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Access-Control-Allow-Origin", "*") - writeVersion(w) + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(struct { + Node int `json:"nodeVersion"` + Code string `json:"codeVersion"` + Git string `json:"gitCommit"` + }{ + Node: Version, + Code: params.VersionWithMeta, + Git: params.GitCommit, + }) }) } - -func writeVersion(w io.Writer) { - fmt.Fprintf(w, "SUCCESS\n") - fmt.Fprintf(w, "%d\n", Version) - fmt.Fprintf(w, "%s\n", params.VersionWithMeta) - fmt.Fprintf(w, "%s\n", params.GitCommit) -} diff --git a/docker-compose.yml b/docker-compose.yml index 636cd17344b..e1a5be919d3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,6 +41,7 @@ services: - ${XDG_DATA_HOME:-~/.local/share}/erigon:/home/erigon/.local/share/erigon restart: unless-stopped mem_swappiness: 0 + user: ${DOCKER_UID:-1000}:${DOCKER_GID:-1000} sentry: <<: *default-erigon-service @@ -71,7 +72,7 @@ services: prometheus: - image: prom/prometheus:v2.45.0 + image: prom/prometheus:v2.47.2 user: ${DOCKER_UID:-1000}:${DOCKER_GID:-1000} # Uses erigon user from Dockerfile command: --log.level=warn --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus --storage.tsdb.retention.time=150d --web.console.libraries=/usr/share/prometheus/console_libraries --web.console.templates=/usr/share/prometheus/consoles ports: [ "9090:9090" ] @@ -81,7 +82,7 @@ services: restart: unless-stopped grafana: - image: grafana/grafana:10.0.1 + image: grafana/grafana:10.2.1 user: "472:0" # required for grafana version >= 7.3 ports: [ "3000:3000" ] volumes: diff --git a/docs/examples/single-process.md b/docs/examples/single-process.md index 6465128fba7..aaed061b0be 100644 --- a/docs/examples/single-process.md +++ b/docs/examples/single-process.md @@ -27,7 +27,7 @@ This runs Erigon with RPCDaemon, TxPool etc. all in one single process. This is ## Flags of Interest -- `--chain` dictactes the chain (goerli/mainnet etc.) - https://chainlist.org/ is a helpful resource +- `--chain` dictates the chain (goerli/mainnet etc.) - https://chainlist.org/ is a helpful resource - `--log.dir.path` dictates where logs will be output - useful for sending reports to the Erigon team when issues occur - `--http.api` defines the set of APIs which are enabled, the above example is a pretty comprehensive list - what these do is beyond the scope of this example - `--authrpc.port` is the port which the consensus layer (PoS) uses to talk to Erigon diff --git a/docs/mining.md b/docs/mining.md index c85333f857a..c84a4013fb2 100644 --- a/docs/mining.md +++ b/docs/mining.md @@ -24,10 +24,3 @@ to `integration state_stages` command: ``` ./build/bin/integration state_stages --datadir= --unwind=1 --unwind.every=2 --integrity.fast=false --integrity.slow=false --mine --miner.etherbase= ``` - -* TODO: - + we don't broadcast mined blocks to p2p-network yet, [but it's easy to accomplish](https://github.com/ledgerwatch/erigon/blob/9b8cdc0f2289a7cef78218a15043de5bdff4465e/eth/downloader/downloader.go#L673) - + eth_newPendingTransactionFilter - + eth_newBlockFilter - + eth_newFilter - + websocket Logs diff --git a/docs/programmers_guide/db_faq.md b/docs/programmers_guide/db_faq.md index e411996b049..a7f84a1e440 100644 --- a/docs/programmers_guide/db_faq.md +++ b/docs/programmers_guide/db_faq.md @@ -28,7 +28,7 @@ We have Go, Rust and C++ implementations of `RoKV` interface. Rationale and Architecture of DB interface: [./../../ethdb/Readme.md](../../ethdb/Readme.md) MDBX: [docs](https://libmdbx.website.yandexcloud.net) -and [mdbx.h](https://github.com/torquem-ch/libmdbx/blob/master/mdbx.h) +and [mdbx.h](https://github.com/erigontech/libmdbx/blob/master/mdbx.h) ### How RAM used diff --git a/docs/programmers_guide/dupsort.md b/docs/programmers_guide/dupsort.md index e6c14c42469..d652d6f82c4 100644 --- a/docs/programmers_guide/dupsort.md +++ b/docs/programmers_guide/dupsort.md @@ -145,7 +145,7 @@ feature DupFixed (can add this flag to table configuration). It means in 1 db call you can Get/Put up to 4Kb of sub-table keys. -[see mdbx.h](https://github.com/torquem-ch/libmdbx/blob/master/mdbx.h) +[see mdbx.h](https://github.com/erigontech/libmdbx/blob/master/mdbx.h) Erigon --------- diff --git a/docs/programmers_guide/guide.md b/docs/programmers_guide/guide.md index 43ddef2e6b4..19606453f65 100644 --- a/docs/programmers_guide/guide.md +++ b/docs/programmers_guide/guide.md @@ -450,7 +450,7 @@ also pushes the hash of the byte code onto the hash stack. the node stack. `ACCOUNTLEAF` opcode is similar to `LEAF`. It consumes the next item from the key tape. The rest of the semantics -depends on the value of the `field-set`. Field set can be respresented by a bitmask. In that case, bit 0 would +depends on the value of the `field-set`. Field set can be represented by a bitmask. In that case, bit 0 would correspond to field 0, bit 1 (number 2) - to field 1, bit 2 (number 4) - to field 2. Currently, field 0 means account nonce, field 1 means account balance, field 2 means contract storage, field 3 means contract code. diff --git a/docs/readthedocs/source/rpc/tutorial.rst b/docs/readthedocs/source/rpc/tutorial.rst index 75f78f28a59..55e19ba5234 100644 --- a/docs/readthedocs/source/rpc/tutorial.rst +++ b/docs/readthedocs/source/rpc/tutorial.rst @@ -120,6 +120,6 @@ now it should be all set and we can test it with: curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"myNamespace_getBlockNumberByHash","params":["ANYHASH"],"id":1}' localhost:8545 -another example of custom daemon can be found at https://github.com/torquem-ch/project-1/blob/master/api.go. +another example of custom daemon can be found at https://github.com/erigontech/project-1/blob/master/api.go. Happy Building ~~~. diff --git a/erigon-lib/.github/workflows/ci.yml b/erigon-lib/.github/workflows/ci.yml new file mode 100644 index 00000000000..bf30c413573 --- /dev/null +++ b/erigon-lib/.github/workflows/ci.yml @@ -0,0 +1,63 @@ +name: Continuous integration +on: + push: + branches: + - main + - stable + - alpha + pull_request: + branches: + - main + - stable + - alpha +env: + CGO_ENABLED: "1" + CGO_CXXFLAGS: "-g -O2" +jobs: + tests: + strategy: + matrix: + os: [ ubuntu-20.04, macos-11, windows-2022 ] # list of os: https://github.com/actions/virtual-environments + runs-on: ${{ matrix.os }} + + steps: + - name: configure Pagefile + if: matrix.os == 'windows-2022' + uses: al-cheb/configure-pagefile-action@v1.3 + with: + minimum-size: 8GB + - uses: actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 0 # fetch git tags for "git describe" + - uses: actions/setup-go@v4 + with: + go-version: '1.20' + + - name: Install deps + if: matrix.os == 'ubuntu-20.04' + run: sudo apt update && sudo apt install build-essential + shell: bash + - name: Install deps + if: matrix.os == 'windows-2022' + run: | + choco upgrade mingw -y --no-progress --version 13.2.0 + choco install cmake -y --no-progress --version 3.27.8 + + - name: Lint + if: matrix.os == 'ubuntu-20.04' + uses: golangci/golangci-lint-action@v3 + with: + version: v1.54 + skip-build-cache: true + + - name: Lint source code licenses + if: matrix.os == 'ubuntu-20.04' + run: make lint-licenses-deps lint-licenses + + - name: Test win + if: matrix.os == 'windows-2022' + run: make test-no-fuzz + - name: Test + if: matrix.os != 'windows-2022' + run: make test diff --git a/erigon-lib/.gitignore b/erigon-lib/.gitignore new file mode 100644 index 00000000000..1155933ce5d --- /dev/null +++ b/erigon-lib/.gitignore @@ -0,0 +1,75 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. +# +# If you find yourself ignoring temporary files generated by your text editor +# or operating system, you probably want to add a global ignore instead: +# git config --global core.excludesfile ~/.gitignore_global + +/tmp +*/**/*un~ +*/**/*.test +*un~ +.DS_Store +*/**/.DS_Store +.ethtest +*/**/*tx_database* +*/**/*dapps* +build/_vendor/pkg +/*.a +docs/readthedocs/build + +#* +.#* +*# +*~ +.project +.settings + +# Used by mdbx Makefile +/ethdb/mdbx/dist/CMakeFiles/* +/ethdb/mdbx/dist/CMakeCache* +/ethdb/mdbx/dist/*.cmake +/ethdb/mdbx/dist/*.dll +/ethdb/mdbx/dist/*.exe +/ethdb/mdbx/dist/Makefile + +# used by the Makefile +/build/_workspace/ +/build/cache/ +/build/bin/ +/geth*.zip + +# travis +profile.tmp +profile.cov + +# IdeaIDE +.idea + +# VS Code +.vscode +*.code-workspace + +# dashboard +/dashboard/assets/flow-typed +/dashboard/assets/node_modules +/dashboard/assets/stats.json +/dashboard/assets/bundle.js +/dashboard/assets/bundle.js.map +/dashboard/assets/package-lock.json + +**/yarn-error.log +/timings.txt +right_*.txt +root_*.txt + +__pycache__ +docker-compose.dev.yml +/build +*.tmp + +/ethdb/*.fail + +libmdbx/build/* +tests/testdata/* + +go.work* diff --git a/erigon-lib/.golangci.yml b/erigon-lib/.golangci.yml new file mode 100644 index 00000000000..4e45c12cb03 --- /dev/null +++ b/erigon-lib/.golangci.yml @@ -0,0 +1,139 @@ +run: + deadline: 10m + build-tags: + - nosqlite + - noboltdb + +linters: + presets: + - bugs + - error + - unused + - performance + disable: + - gosec + - exhaustive + - musttag + - contextcheck + - wrapcheck + - goerr113 + - unparam + - makezero + - testifylint #TODO: enable me + - protogetter + enable: + - unconvert + - predeclared + - wastedassign + - thelper + - gofmt + - gocritic +# - revive +# - forcetypeassert +# - stylecheck + +linters-settings: + gocritic: + # Which checks should be enabled; can't be combined with 'disabled-checks'; + # See https://go-critic.github.io/overview#checks-overview + # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run` + # By default list of stable checks is used. + enabled-checks: + - ruleguard + - truncateCmp + # - defaultCaseOrder + + # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty + disabled-checks: + - regexpMust + # - hugeParam + - rangeValCopy + - exitAfterDefer + - elseif + - dupBranchBody + - assignOp + - singleCaseSwitch + - unlambda + - captLocal + - commentFormatting + - ifElseChain + - appendAssign + + # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks. + # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags". + enabled-tags: + - performance + - diagnostic + # - style + # - experimental + # - opinionated + disabled-tags: + - experimental + ruleguard: + rules: "rules.go" + settings: + hugeParam: + # size in bytes that makes the warning trigger (default 80) + sizeThreshold: 1000 + rangeExprCopy: + # size in bytes that makes the warning trigger (default 512) + sizeThreshold: 512 + # whether to check test functions (default true) + skipTestFuncs: true + truncateCmp: + # whether to skip int/uint/uintptr types (default true) + skipArchDependent: true + underef: + # whether to skip (*x).method() calls where x is a pointer receiver (default true) + skipRecvDeref: true + + govet: + disable: + - deepequalerrors + - shadow + - unsafeptr + goconst: + min-len: 2 + min-occurrences: 2 + gofmt: + auto-fix: false + +issues: + exclude-rules: + - linters: + - golint + text: "should be" + - linters: + - errcheck + text: "not checked" + - linters: + - staticcheck + text: "SA(1019|1029|5011)" + # Exclude some linters from running on tests files. + - path: test\.go + linters: + - gosec + - unused + - deadcode + - gocritic + - perfsprint + - path: hack\.go + linters: + - gosec + - unused + - deadcode + - gocritic + - path: cmd/devp2p + linters: + - gosec + - unused + - deadcode + - gocritic + - path: metrics/sample\.go + linters: + - gosec + - gocritic + - path: p2p/simulations + linters: + - gosec + - gocritic diff --git a/erigon-lib/LICENSE b/erigon-lib/LICENSE new file mode 100644 index 00000000000..261eeb9e9f8 --- /dev/null +++ b/erigon-lib/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/erigon-lib/Makefile b/erigon-lib/Makefile new file mode 100644 index 00000000000..078cac4aa07 --- /dev/null +++ b/erigon-lib/Makefile @@ -0,0 +1,103 @@ +GOBINREL = build/bin +GOBIN = $(CURDIR)/$(GOBINREL) + +BUILD_TAGS = nosqlite,noboltdb,disable_libutp + +CGO_CXXFLAGS ?= $(shell go env CGO_CXXFLAGS 2>/dev/null) +ifeq ($(CGO_CXXFLAGS),) + CGO_CXXFLAGS += -g + CGO_CXXFLAGS += -O2 +endif + +GOBUILD = CGO_CXXFLAGS="$(CGO_CXXFLAGS)" go build -trimpath -tags $(BUILD_TAGS) +GOTEST = CGO_CXXFLAGS="$(CGO_CXXFLAGS)" go test -trimpath -tags $(BUILD_TAGS) +GOTEST_NOFUZZ = CGO_CXXFLAGS="$(CGO_CXXFLAGS)" go test -trimpath --tags=$(BUILD_TAGS),nofuzz + +OS = $(shell uname -s) +ARCH = $(shell uname -m) + +ifeq ($(OS),Darwin) +PROTOC_OS := osx +ifeq ($(ARCH),arm64) +ARCH = aarch_64 +endif +endif +ifeq ($(OS),Linux) +PROTOC_OS = linux +endif + +PROTOC_INCLUDE = build/include/google + + +default: gen + +gen: grpc mocks + +$(GOBINREL): + mkdir -p "$(GOBIN)" + +$(GOBINREL)/protoc: | $(GOBINREL) + $(eval PROTOC_TMP := $(shell mktemp -d)) + curl -sSL https://github.com/protocolbuffers/protobuf/releases/download/v24.2/protoc-24.2-$(PROTOC_OS)-$(ARCH).zip -o "$(PROTOC_TMP)/protoc.zip" + cd "$(PROTOC_TMP)" && unzip protoc.zip + cp "$(PROTOC_TMP)/bin/protoc" "$(GOBIN)" + mkdir -p "$(PROTOC_INCLUDE)" + cp -R "$(PROTOC_TMP)/include/google/" "$(PROTOC_INCLUDE)" + rm -rf "$(PROTOC_TMP)" + +# 'protoc-gen-go' tool generates proto messages +$(GOBINREL)/protoc-gen-go: | $(GOBINREL) + $(GOBUILD) -o "$(GOBIN)/protoc-gen-go" google.golang.org/protobuf/cmd/protoc-gen-go + +# 'protoc-gen-go-grpc' tool generates grpc services +$(GOBINREL)/protoc-gen-go-grpc: | $(GOBINREL) + $(GOBUILD) -o "$(GOBIN)/protoc-gen-go-grpc" google.golang.org/grpc/cmd/protoc-gen-go-grpc + +protoc-all: $(GOBINREL)/protoc $(PROTOC_INCLUDE) $(GOBINREL)/protoc-gen-go $(GOBINREL)/protoc-gen-go-grpc + +protoc-clean: + rm -f "$(GOBIN)/protoc"* + rm -rf "$(PROTOC_INCLUDE)" + +grpc: protoc-all + go mod vendor + PATH="$(GOBIN):$(PATH)" protoc --proto_path=vendor/github.com/ledgerwatch/interfaces --go_out=gointerfaces -I=$(PROTOC_INCLUDE) \ + types/types.proto + PATH="$(GOBIN):$(PATH)" protoc --proto_path=vendor/github.com/ledgerwatch/interfaces --go_out=gointerfaces --go-grpc_out=gointerfaces -I=$(PROTOC_INCLUDE) \ + --go_opt=Mtypes/types.proto=github.com/ledgerwatch/erigon-lib/gointerfaces/types \ + --go-grpc_opt=Mtypes/types.proto=github.com/ledgerwatch/erigon-lib/gointerfaces/types \ + p2psentry/sentry.proto p2psentinel/sentinel.proto \ + remote/kv.proto remote/ethbackend.proto \ + downloader/downloader.proto execution/execution.proto \ + txpool/txpool.proto txpool/mining.proto + rm -rf vendor + +$(GOBINREL)/moq: | $(GOBINREL) + $(GOBUILD) -o "$(GOBIN)/moq" github.com/matryer/moq + +mocks: $(GOBINREL)/moq + rm -f gointerfaces/remote/mocks.go + rm -f gointerfaces/sentry/mocks.go + PATH="$(GOBIN):$(PATH)" go generate ./... + +lintci-deps: + @./tools/golangci_lint.sh --install-deps +lintci: + @CGO_CXXFLAGS="$(CGO_CXXFLAGS)" ./tools/golangci_lint.sh + +lint-licenses-deps: + @./tools/licenses_check.sh --install-deps +lint-licenses: + @./tools/licenses_check.sh + +lint-mod-tidy: + @./tools/mod_tidy_check.sh + +lint-deps: lintci-deps lint-licenses-deps +lint: lintci lint-licenses lint-mod-tidy + +test: + $(GOTEST) --count 1 -p 2 ./... + +test-no-fuzz: + $(GOTEST_NOFUZZ) --count 1 -p 2 ./... diff --git a/erigon-lib/README.md b/erigon-lib/README.md new file mode 100644 index 00000000000..85866c38e63 --- /dev/null +++ b/erigon-lib/README.md @@ -0,0 +1,18 @@ +# erigon-lib + +Parts of Erigon codebase, written from scratch and licensed under Apache 2.0. + +## License requirements + +erigon-lib dependencies use various open source licenses compatible with Apache 2.0. This is checked on CI using `make lint-licenses`. + +In order to keep license purity it is not allowed to refer to the code in the erigon root module from erigon-lib. This is ensured by the `go.mod` separation. + +It is not allowed to copy or move code from erigon to erigon-lib unless all original authors agree to relief the code license from GPL to Apache 2.0. + +## Code migration policy + +It is encouraged to write new erigon code inside erigon-lib. + +It is encouraged to move and relicense parts of the code from erigon to erigon-lib +that are safe and easy to move. For example, code written from scratch by erigon core contributors that has no significant external contributions could be refactored and moved. diff --git a/erigon-lib/bptree/binary_file.go b/erigon-lib/bptree/binary_file.go new file mode 100644 index 00000000000..21babdab931 --- /dev/null +++ b/erigon-lib/bptree/binary_file.go @@ -0,0 +1,156 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +import ( + "bufio" + "crypto/rand" + "fmt" + "io" + "math/big" + "os" + "strconv" +) + +// Size in bytes of data blocks read/written from/to the file system. +const BLOCKSIZE int64 = 4096 + +// BinaryFile type represents an open binary file. +type BinaryFile struct { + file *os.File + path string + blockSize int64 + size int64 + opened bool +} + +// RandomBinaryReader reads data chuncks randomly from a binary file. +type RandomBinaryReader struct { + sourceFile *BinaryFile + chunckSize int +} + +func (r RandomBinaryReader) Read(b []byte) (n int, err error) { + numKeys := len(b) / r.chunckSize + for i := 0; i < numKeys; i++ { + bytesRead, err := r.readAtRandomOffset(b[i*r.chunckSize : i*r.chunckSize+r.chunckSize]) + if err != nil { + return i*r.chunckSize + bytesRead, fmt.Errorf("cannot random read at iteration %d: %w", i, err) + } + n += bytesRead + } + remainderSize := len(b) % r.chunckSize + bytesRead, err := r.readAtRandomOffset(b[numKeys*r.chunckSize : numKeys*r.chunckSize+remainderSize]) + if err != nil { + return numKeys*r.chunckSize + bytesRead, fmt.Errorf("cannot random read remainder %d: %w", remainderSize, err) + } + n += bytesRead + return n, nil +} + +func (r RandomBinaryReader) readAtRandomOffset(b []byte) (n int, err error) { + randomValue, err := rand.Int(rand.Reader, big.NewInt(r.sourceFile.size-int64(len(b)))) + if err != nil { + return 0, fmt.Errorf("cannot generate random offset: %w", err) + } + randomOffset := randomValue.Int64() + _, err = r.sourceFile.file.Seek(randomOffset, io.SeekStart) + if err != nil { + return 0, fmt.Errorf("cannot seek to offset %d: %w", randomOffset, err) + } + bytesRead, err := r.sourceFile.file.Read(b) + if err != nil { + return 0, fmt.Errorf("cannot read from source file: %w", err) + } + return bytesRead, nil +} + +func CreateBinaryFileByRandomSampling(path string, size int64, sourceFile *BinaryFile, keySize int) *BinaryFile { + return CreateBinaryFileFromReader(path, "_onlyexisting", size, RandomBinaryReader{sourceFile, keySize}) +} + +func CreateBinaryFileByPRNG(path string, size int64) *BinaryFile { + return CreateBinaryFileFromReader(path, "", size, rand.Reader) +} + +func CreateBinaryFileFromReader(path, suffix string, size int64, reader io.Reader) *BinaryFile { + file, err := os.OpenFile(path+strconv.FormatInt(size, 10)+suffix, os.O_RDWR|os.O_CREATE, 0644) + ensure(err == nil, fmt.Sprintf("CreateBinaryFileFromReader: cannot create file %s, error %s\n", file.Name(), err)) + + err = file.Truncate(size) + ensure(err == nil, fmt.Sprintf("CreateBinaryFileFromReader: cannot truncate file %s to %d, error %s\n", file.Name(), size, err)) + + bufferedFile := bufio.NewWriter(file) + numBlocks := size / BLOCKSIZE + remainderSize := size % BLOCKSIZE + buffer := make([]byte, BLOCKSIZE) + for i := int64(0); i <= numBlocks; i++ { + if i == numBlocks { + buffer = make([]byte, remainderSize) + } + bytesRead, err := io.ReadFull(reader, buffer) + ensure(bytesRead == len(buffer), fmt.Sprintf("CreateBinaryFileFromReader: insufficient bytes read %d, error %s\n", bytesRead, err)) + bytesWritten, err := bufferedFile.Write(buffer) + ensure(bytesWritten == len(buffer), fmt.Sprintf("CreateBinaryFileFromReader: insufficient bytes written %d, error %s\n", bytesWritten, err)) + } + + err = bufferedFile.Flush() + ensure(err == nil, fmt.Sprintf("CreateBinaryFileFromReader: error during flushing %s\n", err)) + + binaryFile := &BinaryFile{path: file.Name(), blockSize: BLOCKSIZE, size: size, file: file, opened: true} + binaryFile.rewind() + return binaryFile +} + +func OpenBinaryFile(path string) *BinaryFile { + file, err := os.Open(path) + ensure(err == nil, fmt.Sprintf("OpenBinaryFile: cannot open file %s, error %s\n", path, err)) + + info, err := file.Stat() + ensure(err == nil, fmt.Sprintf("OpenBinaryFile: cannot stat file %s error %s\n", path, err)) + ensure(info.Size() >= 0, fmt.Sprintf("OpenBinaryFile: negative size %d file %s\n", info.Size(), path)) + + binaryFile := &BinaryFile{path: path, blockSize: BLOCKSIZE, size: info.Size(), file: file, opened: true} + return binaryFile +} + +func (f *BinaryFile) rewind() { + offset, err := f.file.Seek(0, io.SeekStart) + ensure(err == nil, fmt.Sprintf("rewind: error during seeking %s\n", err)) + ensure(offset == 0, fmt.Sprintf("rewind: unexpected offset after seeking: %d\n", offset)) +} + +func (f *BinaryFile) Name() string { + return f.path +} + +func (f *BinaryFile) Size() int64 { + return f.size +} + +func (f *BinaryFile) NewReader() *bufio.Reader { + ensure(f.opened, fmt.Sprintf("NewReader: file %s is not opened\n", f.path)) + f.rewind() + return bufio.NewReader(f.file) +} + +func (f *BinaryFile) Close() { + ensure(f.opened, fmt.Sprintf("Close: file %s is not opened\n", f.path)) + err := f.file.Close() + ensure(err == nil, fmt.Sprintf("Close: cannot close file %s, error %s\n", f.path, err)) + f.opened = false +} diff --git a/erigon-lib/bptree/bulk.go b/erigon-lib/bptree/bulk.go new file mode 100644 index 00000000000..31709a8ba3d --- /dev/null +++ b/erigon-lib/bptree/bulk.go @@ -0,0 +1,812 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +import ( + "fmt" + "sort" +) + +func upsert(n *Node23, kvItems KeyValues, stats *Stats) (nodes []*Node23, newFirstKey *Felt, intermediateKeys []*Felt) { + ensure(sort.IsSorted(kvItems), "kvItems are not sorted by key") + + if kvItems.Len() == 0 && n == nil { + return []*Node23{n}, nil, []*Felt{} + } + if n == nil { + n = makeEmptyLeafNode() + } + if n.isLeaf { + return upsertLeaf(n, kvItems, stats) + } else { + return upsertInternal(n, kvItems, stats) + } +} + +func upsertLeaf(n *Node23, kvItems KeyValues, stats *Stats) (nodes []*Node23, newFirstKey *Felt, intermediateKeys []*Felt) { + ensure(n.isLeaf, "node is not leaf") + + if kvItems.Len() == 0 { + if n.nextKey() != nil { + intermediateKeys = append(intermediateKeys, n.nextKey()) + } + return []*Node23{n}, nil, intermediateKeys + } + + if !n.exposed { + n.exposed = true + stats.ExposedCount++ + stats.OpeningHashes += n.howManyHashes() + } + + currentFirstKey := n.firstKey() + addOrReplaceLeaf(n, kvItems, stats) + if n.firstKey() != currentFirstKey { + newFirstKey = n.firstKey() + } else { + newFirstKey = nil + } + + if n.keyCount() > 3 { + for n.keyCount() > 3 { + newLeaf := makeLeafNode(n.keys[:3], n.values[:3], stats) + intermediateKeys = append(intermediateKeys, n.keys[2]) + nodes = append(nodes, newLeaf) + n.keys, n.values = n.keys[2:], n.values[2:] + } + newLeaf := makeLeafNode(n.keys, n.values, stats) + if n.nextKey() != nil { + intermediateKeys = append(intermediateKeys, n.nextKey()) + } + nodes = append(nodes, newLeaf) + return nodes, newFirstKey, intermediateKeys + } else { + if n.nextKey() != nil { + intermediateKeys = append(intermediateKeys, n.nextKey()) + } + return []*Node23{n}, newFirstKey, intermediateKeys + } +} + +func upsertInternal(n *Node23, kvItems KeyValues, stats *Stats) (nodes []*Node23, newFirstKey *Felt, intermediateKeys []*Felt) { + ensure(!n.isLeaf, "node is not internal") + + if kvItems.Len() == 0 { + if n.lastLeaf().nextKey() != nil { + intermediateKeys = append(intermediateKeys, n.lastLeaf().nextKey()) + } + return []*Node23{n}, nil, intermediateKeys + } + + if !n.exposed { + n.exposed = true + stats.ExposedCount++ + stats.OpeningHashes += n.howManyHashes() + } + + itemSubsets := splitItems(n, kvItems) + + newChildren := make([]*Node23, 0) + newKeys := make([]*Felt, 0) + for i := len(n.children) - 1; i >= 0; i-- { + child := n.children[i] + childNodes, childNewFirstKey, childIntermediateKeys := upsert(child, itemSubsets[i], stats) + newChildren = append(childNodes, newChildren...) + newKeys = append(childIntermediateKeys, newKeys...) + if childNewFirstKey != nil { + if i > 0 { + // Handle newFirstKey here + previousChild := n.children[i-1] + if previousChild.isLeaf { + ensure(len(previousChild.keys) > 0, "upsertInternal: previousChild has no keys") + if previousChild.nextKey() != childNewFirstKey { + previousChild.setNextKey(childNewFirstKey, stats) + } + } else { + ensure(len(previousChild.children) > 0, "upsertInternal: previousChild has no children") + lastLeaf := previousChild.lastLeaf() + if lastLeaf.nextKey() != childNewFirstKey { + lastLeaf.setNextKey(childNewFirstKey, stats) + } + } + // TODO(canepat): previousChild/previousLastLeaf changed instead of making new node + } else { + // Propagate newFirstKey up + newFirstKey = childNewFirstKey + } + } + } + + n.children = newChildren + if n.childrenCount() > 3 { + ensure(len(newKeys) >= n.childrenCount()-1 || n.childrenCount()%2 == 0 && n.childrenCount()%len(newKeys) == 0, "upsertInternal: inconsistent #children vs #newKeys") + var hasIntermediateKeys bool + if len(newKeys) == n.childrenCount()-1 || len(newKeys) == n.childrenCount() { + /* Groups are: 2,2...2 or 3 */ + hasIntermediateKeys = true + } else { + /* Groups are: 2,2...2 */ + hasIntermediateKeys = false + } + for n.childrenCount() > 3 { + nodes = append(nodes, makeInternalNode(n.children[:2], newKeys[:1], stats)) + n.children = n.children[2:] + if hasIntermediateKeys { + intermediateKeys = append(intermediateKeys, newKeys[1]) + newKeys = newKeys[2:] + } else { + newKeys = newKeys[1:] + } + } + ensure(n.childrenCount() > 0 && len(newKeys) > 0, "upsertInternal: inconsistent #children vs #newKeys") + if n.childrenCount() == 2 { + ensure(len(newKeys) > 0, "upsertInternal: inconsistent #newKeys") + nodes = append(nodes, makeInternalNode(n.children, newKeys[:1], stats)) + intermediateKeys = append(intermediateKeys, newKeys[1:]...) + } else if n.childrenCount() == 3 { + ensure(len(newKeys) > 1, "upsertInternal: inconsistent #newKeys") + nodes = append(nodes, makeInternalNode(n.children, newKeys[:2], stats)) + intermediateKeys = append(intermediateKeys, newKeys[2:]...) + } else { + ensure(false, fmt.Sprintf("upsertInternal: inconsistent #children=%d #newKeys=%d\n", n.childrenCount(), len(newKeys))) + } + return nodes, newFirstKey, intermediateKeys + } else { // n.childrenCount() is 2 or 3 + ensure(len(newKeys) > 0, "upsertInternal: newKeys count is zero") + if len(newKeys) == len(n.children) { + n.keys = newKeys[:len(newKeys)-1] + intermediateKeys = append(intermediateKeys, newKeys[len(newKeys)-1]) + } else { + n.keys = newKeys + } + // TODO(canepat): n.keys changed instead of making new node + n.updated = true + stats.UpdatedCount++ + return []*Node23{n}, newFirstKey, intermediateKeys + } +} + +func addOrReplaceLeaf(n *Node23, kvItems KeyValues, stats *Stats) { + ensure(n.isLeaf, "addOrReplaceLeaf: node is not leaf") + ensure(len(n.keys) > 0 && len(n.values) > 0, "addOrReplaceLeaf: node keys/values are empty") + ensure(len(kvItems.keys) > 0 && len(kvItems.keys) == len(kvItems.values), "addOrReplaceLeaf: invalid kvItems") + + // Temporarily remove next key/value + nextKey, nextValue := n.nextKey(), n.nextValue() + + n.keys = n.keys[:len(n.keys)-1] + n.values = n.values[:len(n.values)-1] + + // kvItems are ordered by key: search there using n.keys that here are 1 or 2 by design (0 just for empty tree) + switch n.keyCount() { + case 0: + n.keys = append(n.keys, kvItems.keys...) + n.values = append(n.values, kvItems.values...) + case 1: + addOrReplaceLeaf1(n, kvItems, stats) + case 2: + addOrReplaceLeaf2(n, kvItems, stats) + default: + ensure(false, fmt.Sprintf("addOrReplaceLeaf: invalid key count %d", n.keyCount())) + } + + // Restore next key/value + n.keys = append(n.keys, nextKey) + n.values = append(n.values, nextValue) +} + +func addOrReplaceLeaf1(n *Node23, kvItems KeyValues, stats *Stats) { + ensure(n.isLeaf, "addOrReplaceLeaf1: node is not leaf") + ensure(n.keyCount() == 1, "addOrReplaceLeaf1: leaf has not 1 *canonical* key") + + key0, value0 := n.keys[0], n.values[0] + index0 := sort.Search(kvItems.Len(), func(i int) bool { return *kvItems.keys[i] >= *key0 }) + if index0 < kvItems.Len() { + // Insert keys/values concatenating new ones around key0 + n.keys = append(make([]*Felt, 0), kvItems.keys[:index0]...) + n.values = append(make([]*Felt, 0), kvItems.values[:index0]...) + n.keys = append(n.keys, key0) + n.values = append(n.values, value0) + if *kvItems.keys[index0] == *key0 { + // Incoming key matches an existing key: update + n.keys = append(n.keys, kvItems.keys[index0+1:]...) + n.values = append(n.values, kvItems.values[index0+1:]...) + n.updated = true + stats.UpdatedCount++ + } else { + n.keys = append(n.keys, kvItems.keys[index0:]...) + n.values = append(n.values, kvItems.values[index0:]...) + } + } else { + // key0 greater than any input key + n.keys = append(kvItems.keys, key0) + n.values = append(kvItems.values, value0) + } +} + +func addOrReplaceLeaf2(n *Node23, kvItems KeyValues, stats *Stats) { + ensure(n.isLeaf, "addOrReplaceLeaf2: node is not leaf") + ensure(n.keyCount() == 2, "addOrReplaceLeaf2: leaf has not 2 *canonical* keys") + + key0, value0, key1, value1 := n.keys[0], n.values[0], n.keys[1], n.values[1] + index0 := sort.Search(kvItems.Len(), func(i int) bool { return *kvItems.keys[i] >= *key0 }) + index1 := sort.Search(kvItems.Len(), func(i int) bool { return *kvItems.keys[i] >= *key1 }) + ensure(index1 >= index0, "addOrReplaceLeaf2: keys not ordered") + if index0 < kvItems.Len() { + if index1 < kvItems.Len() { + // Insert keys/values concatenating new ones around key0 and key1 + n.keys = append(make([]*Felt, 0), kvItems.keys[:index0]...) + n.values = append(make([]*Felt, 0), kvItems.values[:index0]...) + n.keys = append(n.keys, key0) + n.values = append(n.values, value0) + if *kvItems.keys[index0] == *key0 { + // Incoming key matches an existing key: update + n.keys = append(n.keys, kvItems.keys[index0+1:index1]...) + n.values = append(n.values, kvItems.values[index0+1:index1]...) + n.updated = true + stats.UpdatedCount++ + } else { + n.keys = append(n.keys, kvItems.keys[index0:index1]...) + n.values = append(n.values, kvItems.values[index0:index1]...) + } + n.keys = append(n.keys, key1) + n.values = append(n.values, value1) + if *kvItems.keys[index1] == *key1 { + // Incoming key matches an existing key: update + n.keys = append(n.keys, kvItems.keys[index1+1:]...) + n.values = append(n.values, kvItems.values[index1+1:]...) + if !n.updated { + n.updated = true + stats.UpdatedCount++ + } + } else { + n.keys = append(n.keys, kvItems.keys[index1:]...) + n.values = append(n.values, kvItems.values[index1:]...) + } + } else { + // Insert keys/values concatenating new ones around key0, then add key1 + n.keys = append(make([]*Felt, 0), kvItems.keys[:index0]...) + n.values = append(make([]*Felt, 0), kvItems.values[:index0]...) + n.keys = append(n.keys, key0) + n.values = append(n.values, value0) + if *kvItems.keys[index0] == *key0 { + // Incoming key matches an existing key: update + n.keys = append(n.keys, kvItems.keys[index0+1:]...) + n.values = append(n.values, kvItems.values[index0+1:]...) + n.updated = true + stats.UpdatedCount++ + } else { + n.keys = append(n.keys, kvItems.keys[index0:]...) + n.values = append(n.values, kvItems.values[index0:]...) + } + n.keys = append(n.keys, key1) + n.values = append(n.values, value1) + } + } else { + ensure(index1 == index0, "addOrReplaceLeaf2: keys not ordered") + // Both key0 and key1 greater than any input key + n.keys = append(kvItems.keys, key0, key1) + n.values = append(kvItems.values, value0, value1) + } +} + +func splitItems(n *Node23, kvItems KeyValues) []KeyValues { + ensure(!n.isLeaf, "splitItems: node is not internal") + ensure(len(n.keys) > 0, "splitItems: internal node has no keys") + + itemSubsets := make([]KeyValues, 0) + for i, key := range n.keys { + splitIndex := sort.Search(kvItems.Len(), func(i int) bool { return *kvItems.keys[i] >= *key }) + itemSubsets = append(itemSubsets, KeyValues{kvItems.keys[:splitIndex], kvItems.values[:splitIndex]}) + kvItems = KeyValues{kvItems.keys[splitIndex:], kvItems.values[splitIndex:]} + if i == len(n.keys)-1 { + itemSubsets = append(itemSubsets, kvItems) + } + } + ensure(len(itemSubsets) == len(n.children), "item subsets and children have different cardinality") + return itemSubsets +} + +func del(n *Node23, keysToDelete []Felt, stats *Stats) (deleted *Node23, nextKey *Felt, intermediateKeys []*Felt) { + ensure(sort.IsSorted(Keys(keysToDelete)), "keysToDelete are not sorted") + + if n == nil { + return n, nil, intermediateKeys + } + if n.isLeaf { + return deleteLeaf(n, keysToDelete, stats) + } else { + return deleteInternal(n, keysToDelete, stats) + } +} + +func deleteLeaf(n *Node23, keysToDelete []Felt, stats *Stats) (deleted *Node23, nextKey *Felt, intermediateKeys []*Felt) { + ensure(n.isLeaf, fmt.Sprintf("node %s is not leaf", n)) + + if len(keysToDelete) == 0 { + if n.nextKey() != nil { + intermediateKeys = append(intermediateKeys, n.nextKey()) + } + return n, nil, intermediateKeys + } + + if !n.exposed { + n.exposed = true + stats.ExposedCount++ + stats.OpeningHashes += n.howManyHashes() + } + + currentFirstKey := n.firstKey() + deleteLeafKeys(n, keysToDelete, stats) + if n.keyCount() == 1 { + return nil, n.nextKey(), intermediateKeys + } else { + if n.nextKey() != nil { + intermediateKeys = append(intermediateKeys, n.nextKey()) + } + if n.firstKey() != currentFirstKey { + return n, n.firstKey(), intermediateKeys + } else { + return n, nil, intermediateKeys + } + } +} + +func deleteLeafKeys(n *Node23, keysToDelete []Felt, stats *Stats) (deleted KeyValues) { + ensure(n.isLeaf, "deleteLeafKeys: node is not leaf") + switch n.keyCount() { + case 2: + if Keys(keysToDelete).Contains(*n.keys[0]) { + deleted.keys = n.keys[:1] + deleted.values = n.values[:1] + n.keys = n.keys[1:] + n.values = n.values[1:] + stats.DeletedCount++ + } + case 3: + if Keys(keysToDelete).Contains(*n.keys[0]) { + if Keys(keysToDelete).Contains(*n.keys[1]) { + deleted.keys = n.keys[:2] + deleted.values = n.values[:2] + n.keys = n.keys[2:] + n.values = n.values[2:] + stats.DeletedCount++ + } else { + deleted.keys = n.keys[:1] + deleted.values = n.values[:1] + n.keys = n.keys[1:] + n.values = n.values[1:] + n.updated = true + stats.UpdatedCount++ + } + } else { + if Keys(keysToDelete).Contains(*n.keys[1]) { + deleted.keys = n.keys[1:2] + deleted.values = n.values[1:2] + n.keys = append(n.keys[:1], n.keys[2]) + n.values = append(n.values[:1], n.values[2]) + n.updated = true + stats.UpdatedCount++ + } + } + default: + ensure(false, fmt.Sprintf("unexpected number of keys in %s", n)) + } + return deleted +} + +func deleteInternal(n *Node23, keysToDelete []Felt, stats *Stats) (deleted *Node23, nextKey *Felt, intermediateKeys []*Felt) { + ensure(!n.isLeaf, fmt.Sprintf("node %s is not internal", n)) + + if len(keysToDelete) == 0 { + if n.lastLeaf().nextKey() != nil { + intermediateKeys = append(intermediateKeys, n.lastLeaf().nextKey()) + } + return n, nil, intermediateKeys + } + + if !n.exposed { + n.exposed = true + stats.ExposedCount++ + stats.OpeningHashes += n.howManyHashes() + } + + keySubsets := splitKeys(n, keysToDelete) + + newKeys := make([]*Felt, 0) + for i := len(n.children) - 1; i >= 0; i-- { + child, childNextKey, childIntermediateKeys := del(n.children[i], keySubsets[i], stats) + newKeys = append(childIntermediateKeys, newKeys...) + if i > 0 { + previousIndex := i - 1 + previousChild := n.children[previousIndex] + for previousChild.isEmpty() && previousIndex-1 >= 0 { + previousChild = n.children[previousIndex-1] + previousIndex = previousIndex - 1 + } + if child == nil || childNextKey != nil { + if previousChild.isLeaf { + ensure(len(previousChild.keys) > 0, "delete: previousChild has no keys") + if previousChild.nextKey() != childNextKey { + previousChild.setNextKey(childNextKey, stats) + } + } else { + ensure(len(previousChild.children) > 0, "delete: previousChild has no children") + lastLeaf := previousChild.lastLeaf() + if lastLeaf.nextKey() != childNextKey { + lastLeaf.setNextKey(childNextKey, stats) + } + } + } + if !previousChild.isEmpty() && child != nil && child.childrenCount() == 1 { + child.keys = child.keys[:0] + newLeft, newRight := mergeRight2Left(previousChild, child, stats) + n.children = append(n.children[:previousIndex], append([]*Node23{newLeft, newRight}, n.children[i+1:]...)...) + } + } else { + nextIndex := i + 1 + nextChild := n.children[nextIndex] + for nextChild.isEmpty() && nextIndex+1 < n.childrenCount() { + nextChild = n.children[nextIndex+1] + nextIndex = nextIndex + 1 + } + if !nextChild.isEmpty() && child != nil && child.childrenCount() == 1 { + child.keys = child.keys[:0] + newLeft, newRight := mergeLeft2Right(child, nextChild, stats) + n.children = append([]*Node23{newLeft, newRight}, n.children[nextIndex+1:]...) + } + if childNextKey != nil { + nextKey = childNextKey + } + } + } + switch len(n.children) { + case 2: + nextKey, intermediateKeys = update2Node(n, newKeys, nextKey, intermediateKeys, stats) + case 3: + nextKey, intermediateKeys = update3Node(n, newKeys, nextKey, intermediateKeys, stats) + default: + ensure(false, fmt.Sprintf("unexpected number of children in %s", n)) + } + + for _, child := range n.children { + if child.updated { + n.updated = true + stats.UpdatedCount++ + break + } + } + + if n.keyCount() == 0 { + return nil, nextKey, intermediateKeys + } else { + return n, nextKey, intermediateKeys + } +} + +func mergeLeft2Right(left, right *Node23, stats *Stats) (newLeft, newRight *Node23) { + ensure(!left.isLeaf, "mergeLeft2Right: left is leaf") + ensure(left.childrenCount() > 0, "mergeLeft2Right: left has no children") + + if left.firstChild().childrenCount() == 1 { + newLeftFirstChild, newRightFirstChild := mergeLeft2Right(left.firstChild(), right.firstChild(), stats) + left = makeInternalNode( + []*Node23{newLeftFirstChild}, + left.keys, + stats, + ) + right = makeInternalNode( + append([]*Node23{newRightFirstChild}, right.children[1:]...), + right.keys, + stats, + ) + } + + if right.childrenCount() >= 3 { + return mergeRight2Left(left, right, stats) + } + if left.firstChild().isEmpty() { + newRight = right + newLeft = makeInternalNode([]*Node23{}, []*Felt{}, stats) + return newLeft, newRight + } + if right.childrenCount() == 1 { + if right.firstChild().isEmpty() { + newLeft = left + newRight = makeInternalNode([]*Node23{}, []*Felt{}, stats) + } else { + newRight = makeInternalNode( + append([]*Node23{left.firstChild()}, right.children...), + []*Felt{left.lastLeaf().nextKey()}, + stats, + ) + if left.keyCount() > 1 { + newLeft = makeInternalNode(left.children[1:], left.keys[1:], stats) + } else { + newLeft = makeInternalNode(left.children[1:], left.keys, stats) + } + } + } else { + newRight = makeInternalNode( + append([]*Node23{left.firstChild()}, right.children...), + append([]*Felt{left.lastLeaf().nextKey()}, right.keys...), + stats, + ) + if left.keyCount() > 1 { + newLeft = makeInternalNode(left.children[1:], left.keys[1:], stats) + } else { + newLeft = makeInternalNode(left.children[1:], left.keys, stats) + } + } + return newLeft, newRight +} + +func mergeRight2Left(left, right *Node23, stats *Stats) (newLeft, newRight *Node23) { + ensure(!right.isLeaf, "mergeRight2Left: right is leaf") + ensure(right.childrenCount() > 0, "mergeRight2Left: right has no children") + + if right.firstChild().childrenCount() == 1 { + newLeftLastChild, newRightFirstChild := mergeRight2Left(left.lastChild(), right.firstChild(), stats) + left = makeInternalNode( + append(left.children[:len(left.children)-1], newLeftLastChild), + left.keys, + stats, + ) + right = makeInternalNode( + []*Node23{newRightFirstChild}, + right.keys, + stats, + ) + } + + if left.childrenCount() < 3 { + if !right.firstChild().isEmpty() { + if left.childrenCount() == 1 { + if left.firstChild().isEmpty() { + newLeft = makeInternalNode([]*Node23{}, []*Felt{}, stats) + newRight = right + } else { + newLeft = makeInternalNode( + append(left.children, right.firstChild()), + []*Felt{right.firstLeaf().firstKey()}, + stats, + ) + if right.keyCount() > 1 { + newRight = makeInternalNode(right.children[1:], right.keys[1:], stats) + } else { + newRight = makeInternalNode(right.children[1:], right.keys, stats) + } + } + } else { + newLeft = makeInternalNode( + append(left.children, right.firstChild()), + append(left.keys, right.firstLeaf().firstKey()), + stats, + ) + if right.keyCount() > 1 { + newRight = makeInternalNode(right.children[1:], right.keys[1:], stats) + } else { + newRight = makeInternalNode(right.children[1:], right.keys, stats) + } + } + } else { + newLeft = left + newRight = makeInternalNode([]*Node23{}, []*Felt{}, stats) + } + } else { + newLeft, newRight = mergeLeft2Right(left, right, stats) + } + return newLeft, newRight +} + +func splitKeys(n *Node23, keysToDelete []Felt) [][]Felt { + ensure(!n.isLeaf, "splitKeys: node is not internal") + ensure(len(n.keys) > 0, fmt.Sprintf("splitKeys: internal node %s has no keys", n)) + + keySubsets := make([][]Felt, 0) + for i, key := range n.keys { + splitIndex := sort.Search(len(keysToDelete), func(i int) bool { return keysToDelete[i] >= *key }) + keySubsets = append(keySubsets, keysToDelete[:splitIndex]) + keysToDelete = keysToDelete[splitIndex:] + if i == len(n.keys)-1 { + keySubsets = append(keySubsets, keysToDelete) + } + } + ensure(len(keySubsets) == len(n.children), "key subsets and children have different cardinality") + return keySubsets +} + +func update2Node(n *Node23, newKeys []*Felt, nextKey *Felt, intermediateKeys []*Felt, stats *Stats) (*Felt, []*Felt) { + ensure(len(n.children) == 2, "update2Node: wrong number of children") + + switch len(newKeys) { + case 0: + break + case 1: + n.keys = newKeys + case 2: + n.keys = newKeys[:1] + intermediateKeys = append(intermediateKeys, newKeys[1]) + default: + ensure(false, fmt.Sprintf("update2Node: wrong number of newKeys=%d", len(newKeys))) + } + nodeA, nodeC := n.children[0], n.children[1] + if nodeA.isEmpty() { + if nodeC.isEmpty() { + /* A is empty, a_next is the "next key"; C is empty, c_next is the "next key" */ + n.children = n.children[:0] + n.keys = n.keys[:0] + if nodeC.isLeaf { + return nodeC.nextKey(), intermediateKeys + } + return nextKey, intermediateKeys + } else { + /* A is empty, a_next is the "next key"; C is not empty */ + n.children = n.children[1:] + /// n.keys = []*Felt{nodeC.lastLeaf().nextKey()} + if nodeA.isLeaf { + return nodeA.nextKey(), intermediateKeys + } + return nextKey, intermediateKeys + } + } else { + if nodeC.isEmpty() { + /* A is not empty; C is empty, c_next is the "next key" */ + n.children = n.children[:1] + /// n.keys = []*Felt{nodeA.lastLeaf().nextKey()} + if nodeC.isLeaf { + nodeA.setNextKey(nodeC.nextKey(), stats) + } + return nextKey, intermediateKeys + } else { + /* A is not empty; C is not empty */ + n.keys = []*Felt{nodeA.lastLeaf().nextKey()} + return nextKey, intermediateKeys + } + } +} + +func update3Node(n *Node23, newKeys []*Felt, nextKey *Felt, intermediateKeys []*Felt, stats *Stats) (*Felt, []*Felt) { + ensure(len(n.children) == 3, "update3Node: wrong number of children") + + switch len(newKeys) { + case 0: + break + case 1: + n.keys = newKeys + case 2: + n.keys = newKeys + case 3: + n.keys = newKeys[:2] + intermediateKeys = append(intermediateKeys, newKeys[2]) + default: + ensure(false, fmt.Sprintf("update3Node: wrong number of newKeys=%d", len(newKeys))) + } + nodeA, nodeB, nodeC := n.children[0], n.children[1], n.children[2] + if nodeA.isEmpty() { + if nodeB.isEmpty() { + if nodeC.isEmpty() { + /* A is empty, a_next is the "next key"; B is empty, b_next is the "next key"; C is empty, c_next is the "next key" */ + n.children = n.children[:0] + n.keys = n.keys[:0] + if nodeA.isLeaf { + return nodeC.nextKey(), intermediateKeys + } + return nextKey, intermediateKeys + } else { + /* A is empty, a_next is the "next key"; B is empty, b_next is the "next key"; C is not empty */ + n.children = n.children[2:] + /// n.keys = []*Felt{nodeC.lastLeaf().nextKey()} + if nodeA.isLeaf { + return nodeB.nextKey(), intermediateKeys + } + return nextKey, intermediateKeys + } + } else { + if nodeC.isEmpty() { + /* A is empty, a_next is the "next key"; B is not empty; C is empty, c_next is the "next key" */ + n.children = n.children[1:2] + /// n.keys = []*Felt{nodeB.lastLeaf().nextKey()} + if nodeA.isLeaf { + nodeB.setNextKey(nodeC.nextKey(), stats) + return nodeA.nextKey(), intermediateKeys + } + return nextKey, intermediateKeys + } else { + /* A is empty, a_next is the "next key"; B is not empty; C is not empty */ + n.children = n.children[1:] + if nodeA.isLeaf { + n.keys = []*Felt{nodeB.nextKey()} + return nodeA.nextKey(), intermediateKeys + } + n.keys = []*Felt{nodeB.lastLeaf().nextKey()} + return nextKey, intermediateKeys + } + } + } else { + if nodeB.isEmpty() { + if nodeC.isEmpty() { + /* A is not empty; B is empty, b_next is the "next key"; C is empty, c_next is the "next key" */ + n.children = n.children[:1] + if nodeA.isLeaf { + nodeA.setNextKey(nodeC.nextKey(), stats) + } + /// n.keys = []*Felt{nodeA.lastLeaf().nextKey()} + return nextKey, intermediateKeys + } else { + /* A is not empty; B is empty, b_next is the "next key"; C is not empty */ + n.children = append(n.children[:1], n.children[2]) + if nodeA.isLeaf { + n.keys = []*Felt{nodeB.nextKey()} + nodeA.setNextKey(nodeB.nextKey(), stats) + } else { + n.keys = []*Felt{nodeA.lastLeaf().nextKey()} + } + return nextKey, intermediateKeys + } + } else { + if nodeC.isEmpty() { + /* A is not empty; B is not empty; C is empty, c_next is the "next key" */ + n.children = n.children[:2] + if nodeA.isLeaf { + n.keys = []*Felt{nodeA.nextKey()} + nodeB.setNextKey(nodeC.nextKey(), stats) + } else { + n.keys = []*Felt{nodeA.lastLeaf().nextKey()} + } + return nextKey, intermediateKeys + } else { + /* A is not empty; B is not empty; C is not empty */ + ///n.keys = []*Felt{nodeA.lastLeaf().nextKey(), nodeB.lastLeaf().nextKey()} + return nextKey, intermediateKeys + } + } + } +} + +func demote(node *Node23, nextKey *Felt, intermediateKeys []*Felt, stats *Stats) (*Node23, *Felt) { + if node == nil { + return nil, nextKey + } else if len(node.children) == 0 { + if len(node.keys) == 0 { + return nil, nextKey + } else { + return node, nextKey + } + } else if len(node.children) == 1 { + return demote(node.children[0], nextKey, intermediateKeys, stats) + } else if len(node.children) == 2 { + firstChild, secondChild := node.children[0], node.children[1] + if firstChild.keyCount() == 0 && secondChild.keyCount() == 0 { + return nil, nextKey + } + if firstChild.keyCount() == 0 && secondChild.keyCount() > 0 { + return secondChild, nextKey + } + if firstChild.keyCount() > 0 && secondChild.keyCount() == 0 { + return firstChild, nextKey + } + if firstChild.keyCount() == 2 && secondChild.keyCount() == 2 { + if firstChild.isLeaf { + keys := []*Felt{firstChild.firstKey(), secondChild.firstKey(), secondChild.nextKey()} + values := []*Felt{firstChild.firstValue(), secondChild.firstValue(), secondChild.nextValue()} + return makeLeafNode(keys, values, stats), nextKey + } + } + } + return node, nextKey +} diff --git a/erigon-lib/bptree/bulk_test.go b/erigon-lib/bptree/bulk_test.go new file mode 100644 index 00000000000..adbefd0141c --- /dev/null +++ b/erigon-lib/bptree/bulk_test.go @@ -0,0 +1,168 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func assertNodeEqual(t *testing.T, expected, actual *Node23) { + t.Helper() + assert.Equal(t, expected.keysInLevelOrder(), actual.keysInLevelOrder(), "different keys by level") +} + +type MergeTest struct { + left *Node23 + right *Node23 + final *Node23 +} + +func KV(keys []Felt, values []Felt) KeyValues { + keyPointers := make([]*Felt, len(keys)) + valuePointers := make([]*Felt, len(values)) + for i := 0; i < len(keyPointers); i++ { + keyPointers[i] = &keys[i] + valuePointers[i] = &values[i] + } + return KeyValues{keyPointers, valuePointers} +} + +func K2K(keys []Felt) []*Felt { + kv := KV(keys, keys) + return kv.keys +} + +func K2KV(keys []Felt) ([]*Felt, []*Felt) { + values := make([]Felt, len(keys)) + copy(values, keys) + kv := KV(keys, values) + return kv.keys, kv.values +} + +func newInternalNode(children []*Node23, keys []*Felt) *Node23 { + return makeInternalNode(children, keys, &Stats{}) +} + +func newLeafNode(keys, values []*Felt) *Node23 { + return makeLeafNode(keys, values, &Stats{}) +} + +var mergeLeft2RightTestTable = []MergeTest{ + { + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{12, 127})), + }, K2K([]Felt{127})), + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{127, 128})), + newLeafNode(K2KV([]Felt{128, 135, 173})), + }, K2K([]Felt{128})), + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{12, 127})), + newLeafNode(K2KV([]Felt{127, 128})), + newLeafNode(K2KV([]Felt{128, 135, 173})), + }, K2K([]Felt{127, 128})), + }, + { + newInternalNode([]*Node23{ + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{12, 127})), + }, K2K([]Felt{127})), + }, K2K([]Felt{44})), + newInternalNode([]*Node23{ + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{127, 128})), + newLeafNode(K2KV([]Felt{128, 135, 173})), + }, K2K([]Felt{128})), + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{173, 237})), + newLeafNode(K2KV([]Felt{237, 1000})), + }, K2K([]Felt{237})), + }, K2K([]Felt{173})), + newInternalNode([]*Node23{ + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{12, 127})), + newLeafNode(K2KV([]Felt{127, 128})), + newLeafNode(K2KV([]Felt{128, 135, 173})), + }, K2K([]Felt{127, 128})), + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{173, 237})), + newLeafNode(K2KV([]Felt{237, 1000})), + }, K2K([]Felt{237})), + }, K2K([]Felt{173})), + }, +} + +var mergeRight2LeftTestTable = []MergeTest{ + { + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{127, 128})), + newLeafNode(K2KV([]Felt{128, 135, 173})), + }, K2K([]Felt{128})), + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{173, 190})), + }, K2K([]Felt{190})), + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{127, 128})), + newLeafNode(K2KV([]Felt{128, 135, 173})), + newLeafNode(K2KV([]Felt{173, 190})), + }, K2K([]Felt{128, 173})), + }, + { + newInternalNode([]*Node23{ + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{127, 128})), + newLeafNode(K2KV([]Felt{128, 135, 173})), + }, K2K([]Felt{128})), + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{173, 237})), + newLeafNode(K2KV([]Felt{237, 1000})), + }, K2K([]Felt{237})), + }, K2K([]Felt{173})), + newInternalNode([]*Node23{ + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{1000, 1002})), + }, K2K([]Felt{1002})), + }, K2K([]Felt{1100})), + newInternalNode([]*Node23{ + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{127, 128})), + newLeafNode(K2KV([]Felt{128, 135, 173})), + }, K2K([]Felt{128})), + newInternalNode([]*Node23{ + newLeafNode(K2KV([]Felt{173, 237})), + newLeafNode(K2KV([]Felt{237, 1000})), + newLeafNode(K2KV([]Felt{1000, 1002})), + }, K2K([]Felt{237, 1000})), + }, K2K([]Felt{173})), + }, +} + +func TestMergeLeft2Right(t *testing.T) { + for _, data := range mergeLeft2RightTestTable { + _, merged := mergeLeft2Right(data.left, data.right, &Stats{}) + assertNodeEqual(t, data.final, merged) + } +} + +func TestMergeRight2Left(t *testing.T) { + for _, data := range mergeRight2LeftTestTable { + merged, _ := mergeRight2Left(data.left, data.right, &Stats{}) + assertNodeEqual(t, data.final, merged) + } +} diff --git a/erigon-lib/bptree/felt.go b/erigon-lib/bptree/felt.go new file mode 100644 index 00000000000..f9b1ee5e3d2 --- /dev/null +++ b/erigon-lib/bptree/felt.go @@ -0,0 +1,51 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +import ( + "crypto/sha256" + "encoding/binary" +) + +type Felt uint64 + +func (v *Felt) Binary() []byte { + b := make([]byte, 8) + binary.BigEndian.PutUint64(b, uint64(*v)) + return b +} + +func hash2(bytes1, bytes2 []byte) []byte { + hashBuilder := sha256.New() + bytes1Written, _ := hashBuilder.Write(bytes1) + ensure(bytes1Written == len(bytes1), "hash2: invalid number of bytes1 written") + bytes2Written, _ := hashBuilder.Write(bytes2) + ensure(bytes2Written == len(bytes2), "hash2: invalid number of bytes2 written") + return hashBuilder.Sum(nil) +} + +func deref(pointers []*Felt) []Felt { + pointees := make([]Felt, 0) + for _, ptr := range pointers { + if ptr != nil { + pointees = append(pointees, *ptr) + } else { + break + } + } + return pointees +} diff --git a/erigon-lib/bptree/graph.go b/erigon-lib/bptree/graph.go new file mode 100644 index 00000000000..cf6032c8b43 --- /dev/null +++ b/erigon-lib/bptree/graph.go @@ -0,0 +1,167 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +import ( + "fmt" + "log" + "os" + "os/exec" + "strconv" +) + +type Node23Graph struct { + node *Node23 +} + +func NewGraph(node *Node23) *Node23Graph { + return &Node23Graph{node} +} + +func (g *Node23Graph) saveDot(filename string, debug bool) { + palette := []string{"#FDF3D0", "#DCE8FA", "#D9E7D6", "#F1CFCD", "#F5F5F5", "#E1D5E7", "#FFE6CC", "white"} + const unexposedIndex = 0 + const exposedIndex = 1 + const updatedIndex = 2 + + f, err := os.OpenFile(filename+".dot", os.O_RDWR|os.O_CREATE, 0755) + if err != nil { + log.Fatal(err) + } + defer func() { + if err := f.Close(); err != nil { + log.Fatal(err) + } + }() + if g.node == nil { + if _, err := f.WriteString("strict digraph {\nnode [shape=record];}\n"); err != nil { + log.Fatal(err) + } + return + } + if _, err := f.WriteString("strict digraph {\nnode [shape=record];\n"); err != nil { + log.Fatal(err) + } + for _, n := range g.node.walkNodesPostOrder() { + left, down, right := "", "", "" + switch n.childrenCount() { + case 1: + left = "L" + case 2: + left = "L" + right = "R" + case 3: + left = "L" + down = "D" + right = "R" + } + var nodeID string + if n.isLeaf { + var next string + if n.keyCount() > 0 { + if n.nextKey() == nil { + next = "nil" + } else { + next = strconv.FormatUint(uint64(*n.nextKey()), 10) + } + if debug { + nodeID = fmt.Sprintf("k=%v %s-%v", deref(n.keys[:len(n.keys)-1]), next, n.keys) + } else { + nodeID = fmt.Sprintf("k=%v %s", deref(n.keys[:len(n.keys)-1]), next) + } + } else { + nodeID = "k=[]" + } + } else { + if debug { + nodeID = fmt.Sprintf("k=%v-%v", deref(n.keys), n.keys) + } else { + nodeID = fmt.Sprintf("k=%v", deref(n.keys)) + } + } + var color string + if n.exposed { + if n.updated { + color = palette[updatedIndex] + } else { + color = palette[exposedIndex] + } + } else { + ensure(!n.updated, fmt.Sprintf("saveDot: node %v is not exposed but updated", n)) + color = palette[unexposedIndex] + } + s := fmt.Sprintf("%d [label=\"%s|{%s|%s}|%s\" style=filled fillcolor=\"%s\"];\n", n.rawPointer(), left, nodeID, down, right, color) + if _, err := f.WriteString(s); err != nil { + log.Fatal(err) + } + } + for _, n := range g.node.walkNodesPostOrder() { + var treeLeft, treeDown, treeRight *Node23 + switch n.childrenCount() { + case 1: + treeLeft = n.children[0] + case 2: + treeLeft = n.children[0] + treeRight = n.children[1] + case 3: + treeLeft = n.children[0] + treeDown = n.children[1] + treeRight = n.children[2] + } + if treeLeft != nil { + //if _, err := f.WriteString(fmt.Sprintln(n.rawPointer(), ":L -> ", treeLeft.rawPointer(), ":C;")); err != nil { + if _, err := f.WriteString(fmt.Sprintf("%d:L -> %d:C;\n", n.rawPointer(), treeLeft.rawPointer())); err != nil { + log.Fatal(err) + } + } + if treeDown != nil { + //if _, err := f.WriteString(fmt.Sprintln(n.rawPointer(), ":D -> ", treeDown.rawPointer(), ":C;")); err != nil { + if _, err := f.WriteString(fmt.Sprintf("%d:D -> %d:C;\n", n.rawPointer(), treeDown.rawPointer())); err != nil { + log.Fatal(err) + } + } + if treeRight != nil { + //if _, err := f.WriteString(fmt.Sprintln(n.rawPointer(), ":R -> ", treeRight.rawPointer(), ":C;")); err != nil { + if _, err := f.WriteString(fmt.Sprintf("%d:R -> %d:C;\n", n.rawPointer(), treeRight.rawPointer())); err != nil { + log.Fatal(err) + } + } + } + if _, err := f.WriteString("}\n"); err != nil { + log.Fatal(err) + } +} + +func (g *Node23Graph) saveDotAndPicture(filename string, debug bool) error { + graphDir := "testdata/graph/" + _ = os.MkdirAll(graphDir, os.ModePerm) + filepath := graphDir + filename + _ = os.Remove(filepath + ".dot") + _ = os.Remove(filepath + ".png") + g.saveDot(filepath, debug) + dotExecutable, _ := exec.LookPath("dot") + cmdDot := &exec.Cmd{ + Path: dotExecutable, + Args: []string{dotExecutable, "-Tpng", filepath + ".dot", "-o", filepath + ".png"}, + Stdout: os.Stdout, + Stderr: os.Stderr, + } + if err := cmdDot.Run(); err != nil { + return err + } + return nil +} diff --git a/erigon-lib/bptree/key_factory.go b/erigon-lib/bptree/key_factory.go new file mode 100644 index 00000000000..6b96ab8734d --- /dev/null +++ b/erigon-lib/bptree/key_factory.go @@ -0,0 +1,115 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +import ( + "bufio" + "encoding/binary" + "fmt" + "io" + "sort" +) + +type KeyFactory interface { + NewUniqueKeyValues(reader *bufio.Reader) KeyValues + NewUniqueKeys(reader *bufio.Reader) Keys +} + +type KeyBinaryFactory struct { + keySize int +} + +func NewKeyBinaryFactory(keySize int) KeyFactory { + return &KeyBinaryFactory{keySize: keySize} +} + +func (factory *KeyBinaryFactory) NewUniqueKeyValues(reader *bufio.Reader) KeyValues { + kvPairs := factory.readUniqueKeyValues(reader) + sort.Sort(kvPairs) + return kvPairs +} + +func (factory *KeyBinaryFactory) NewUniqueKeys(reader *bufio.Reader) Keys { + keys := factory.readUniqueKeys(reader) + sort.Sort(keys) + return keys +} + +func (factory *KeyBinaryFactory) readUniqueKeyValues(reader *bufio.Reader) KeyValues { + kvPairs := KeyValues{make([]*Felt, 0), make([]*Felt, 0)} + keyRegistry := make(map[Felt]bool) + buffer := make([]byte, BufferSize) + for { + bytesRead, err := reader.Read(buffer) + ensure(err == nil || err == io.EOF, fmt.Sprintf("readUniqueKeyValues: read error %s\n", err)) + if err == io.EOF { + break + } + keyBytesCount := factory.keySize * (bytesRead / factory.keySize) + duplicatedKeys := 0 + for i := 0; i < keyBytesCount; i += factory.keySize { + key := factory.readKey(buffer, i) + if _, duplicated := keyRegistry[key]; duplicated { + duplicatedKeys++ + continue + } + keyRegistry[key] = true + value := key // Shortcut: value equal to key + kvPairs.keys = append(kvPairs.keys, &key) + kvPairs.values = append(kvPairs.values, &value) + } + } + return kvPairs +} + +func (factory *KeyBinaryFactory) readUniqueKeys(reader *bufio.Reader) Keys { + keys := make(Keys, 0) + keyRegistry := make(map[Felt]bool) + buffer := make([]byte, BufferSize) + for { + bytesRead, err := reader.Read(buffer) + if err == io.EOF { + break + } + keyBytesCount := factory.keySize * (bytesRead / factory.keySize) + duplicatedKeys := 0 + for i := 0; i < keyBytesCount; i += factory.keySize { + key := factory.readKey(buffer, i) + if _, duplicated := keyRegistry[key]; duplicated { + duplicatedKeys++ + continue + } + keyRegistry[key] = true + keys = append(keys, key) + } + } + return keys +} + +func (factory *KeyBinaryFactory) readKey(buffer []byte, offset int) Felt { + keySlice := buffer[offset : offset+factory.keySize] + switch factory.keySize { + case 1: + return Felt(keySlice[0]) + case 2: + return Felt(binary.BigEndian.Uint16(keySlice)) + case 4: + return Felt(binary.BigEndian.Uint32(keySlice)) + default: + return Felt(binary.BigEndian.Uint64(keySlice)) + } +} diff --git a/erigon-lib/bptree/node.go b/erigon-lib/bptree/node.go new file mode 100644 index 00000000000..0b579db853a --- /dev/null +++ b/erigon-lib/bptree/node.go @@ -0,0 +1,481 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +import ( + "fmt" + "strings" + "unsafe" +) + +type Keys []Felt + +func (keys Keys) Len() int { return len(keys) } + +func (keys Keys) Less(i, j int) bool { return keys[i] < keys[j] } + +func (keys Keys) Swap(i, j int) { keys[i], keys[j] = keys[j], keys[i] } + +func (keys Keys) Contains(key Felt) bool { + for _, k := range keys { + if k == key { + return true + } + } + return false +} + +func (keys Keys) String() string { + b := strings.Builder{} + for i, k := range keys { + fmt.Fprintf(&b, "%v", k) + if i != len(keys)-1 { + fmt.Fprintf(&b, " ") + } + } + return b.String() +} + +type KeyValues struct { + keys []*Felt + values []*Felt +} + +func (kv KeyValues) Len() int { return len(kv.keys) } + +func (kv KeyValues) Less(i, j int) bool { return *kv.keys[i] < *kv.keys[j] } + +func (kv KeyValues) Swap(i, j int) { + kv.keys[i], kv.keys[j] = kv.keys[j], kv.keys[i] + kv.values[i], kv.values[j] = kv.values[j], kv.values[i] +} + +func (kv KeyValues) String() string { + b := strings.Builder{} + for i, k := range kv.keys { + v := kv.values[i] + fmt.Fprintf(&b, "{%v, %v}", *k, *v) + if i != len(kv.keys)-1 { + fmt.Fprintf(&b, " ") + } + } + return b.String() +} + +type Node23 struct { + children []*Node23 + keys []*Felt + values []*Felt + isLeaf bool + exposed bool + updated bool +} + +func (n *Node23) String() string { + s := fmt.Sprintf("{%p isLeaf=%t keys=%v-%v children=[", n, n.isLeaf, deref(n.keys), n.keys) + for i, child := range n.children { + s += fmt.Sprintf("%p", child) + if i != len(n.children)-1 { + s += " " + } + } + s += "]}" + return s +} + +func makeInternalNode(children []*Node23, keys []*Felt, stats *Stats) *Node23 { + stats.CreatedCount++ + n := &Node23{isLeaf: false, children: children, keys: keys, values: make([]*Felt, 0), exposed: true, updated: true} + return n +} + +func makeLeafNode(keys, values []*Felt, stats *Stats) *Node23 { + ensure(len(keys) > 0, "number of keys is zero") + ensure(len(keys) == len(values), "keys and values have different cardinality") + stats.CreatedCount++ + n := &Node23{isLeaf: true, children: make([]*Node23, 0), keys: keys, values: values, exposed: true, updated: true} + return n +} + +func makeEmptyLeafNode() *Node23 { + // At least nil next key is always present + return makeLeafNode(make([]*Felt, 1), make([]*Felt, 1), &Stats{}) // do not count it into stats +} + +func promote(nodes []*Node23, intermediateKeys []*Felt, stats *Stats) *Node23 { + if len(nodes) > 3 { + promotedNodes := make([]*Node23, 0) + promotedKeys := make([]*Felt, 0) + for len(nodes) > 3 { + promotedNodes = append(promotedNodes, makeInternalNode(nodes[:2], intermediateKeys[:1], stats)) + nodes = nodes[2:] + promotedKeys = append(promotedKeys, intermediateKeys[1]) + intermediateKeys = intermediateKeys[2:] + } + promotedNodes = append(promotedNodes, makeInternalNode(nodes, intermediateKeys, stats)) + return promote(promotedNodes, promotedKeys, stats) + } + promotedRoot := makeInternalNode(nodes, intermediateKeys, stats) + return promotedRoot +} + +func (n *Node23) reset() { + n.exposed = false + n.updated = false + if !n.isLeaf { + for _, child := range n.children { + child.reset() + } + } +} + +func (n *Node23) isValid() (bool, error) { + ensure(n.exposed || !n.updated, "isValid: node is not exposed but updated") + if n.isLeaf { + return n.isValidLeaf() + } + return n.isValidInternal() +} + +func (n *Node23) isValidLeaf() (bool, error) { + ensure(n.isLeaf, "isValidLeaf: node is not leaf") + + /* Any leaf node shall have no children */ + if n.childrenCount() != 0 { + return false, fmt.Errorf("invalid %d children in %v", n.childrenCount(), n) + } + /* Any leaf node can have either 1 or 2 keys (plus next key) */ + return n.keyCount() == 1+1 || n.keyCount() == 2+1, fmt.Errorf("invalid %d keys in %v", n.keyCount(), n) +} + +func (n *Node23) isValidInternal() (bool, error) { + ensure(!n.isLeaf, "isValidInternal: node is leaf") + + /* Any internal node can have either 1 keys and 2 children or 2 keys and 3 children */ + if n.keyCount() != 1 && n.keyCount() != 2 { + return false, fmt.Errorf("invalid %d keys in %v", n.keyCount(), n) + } + if n.keyCount() == 1 && n.childrenCount() != 2 { + return false, fmt.Errorf("invalid %d keys %d children in %v", n.keyCount(), n.childrenCount(), n) + } + if n.keyCount() == 2 && n.childrenCount() != 3 { + return false, fmt.Errorf("invalid %d children in %v", n.keyCount(), n) + } + subtree := n.walkNodesPostOrder() + // Check that each internal node has unique keys corresponding to leaf next keys + for _, key := range n.keys { + hasNextKey := false + for _, node := range subtree { + if !node.isLeaf { + if node != n && node.hasKey(key) { + return false, fmt.Errorf("internal key %d not unique", *key) + } + continue + } + leafNextKey := node.nextKey() + if leafNextKey != nil && *key == *leafNextKey { + hasNextKey = true + } + } + if !hasNextKey { + return false, fmt.Errorf("internal key %d not present in next keys", *key) + } + } + // Check that leaves in subtree are chained together (next key -> first key) + for i, node := range subtree { + if !node.isLeaf { + // Post-order walk => previous and next nodes are contiguous leaves except last + if i == len(subtree)-1 { + continue + } + previous, next := subtree[i], subtree[i+1] + if previous.isLeaf && next.isLeaf { + // Previous node's next key must be equal to next node's first key + if previous.nextKey() != next.firstKey() { + return false, fmt.Errorf("nodes %v and %v not chained by next key", previous, next) + } + } + continue + } + } + for i := len(n.children) - 1; i >= 0; i-- { + child := n.children[i] + // Check that each child subtree is a 2-3 tree + childValid, err := child.isValid() + if !childValid { + return false, fmt.Errorf("invalid child %v in %v, error: %w", child, n, err) + } + } + return true, nil +} + +func (n *Node23) keyCount() int { + return len(n.keys) +} + +func (n *Node23) childrenCount() int { + return len(n.children) +} + +func (n *Node23) valueCount() int { + return len(n.values) +} + +func (n *Node23) firstKey() *Felt { + ensure(len(n.keys) > 0, "firstKey: node has no key") + return n.keys[0] +} + +func (n *Node23) firstValue() *Felt { + ensure(len(n.values) > 0, "firstValue: node has no value") + return n.values[0] +} + +func (n *Node23) firstChild() *Node23 { + ensure(len(n.children) > 0, "firstChild: node has no children") + return n.children[0] +} + +func (n *Node23) firstLeaf() *Node23 { + if n.isLeaf { + return n + } + firstLeaf := n.firstChild() + for !firstLeaf.isLeaf { + firstLeaf = firstLeaf.firstChild() + } + ensure(firstLeaf.isLeaf, "firstLeaf: last is not leaf") + return firstLeaf +} + +func (n *Node23) lastChild() *Node23 { + ensure(len(n.children) > 0, "lastChild: node has no children") + return n.children[len(n.children)-1] +} + +func (n *Node23) lastLeaf() *Node23 { + if n.isLeaf { + return n + } + lastLeaf := n.lastChild() + for !lastLeaf.isLeaf { + lastLeaf = lastLeaf.lastChild() + } + ensure(lastLeaf.isLeaf, "lastLeaf: last is not leaf") + return lastLeaf +} + +func (n *Node23) nextKey() *Felt { + ensure(len(n.keys) > 0, "nextKey: node has no key") + return n.keys[len(n.keys)-1] +} + +func (n *Node23) nextValue() *Felt { + ensure(len(n.values) > 0, "nextValue: node has no value") + return n.values[len(n.values)-1] +} + +func (n *Node23) rawPointer() uintptr { + return uintptr(unsafe.Pointer(n)) +} + +func (n *Node23) setNextKey(nextKey *Felt, stats *Stats) { + ensure(len(n.keys) > 0, "setNextKey: node has no key") + n.keys[len(n.keys)-1] = nextKey + if !n.exposed { + n.exposed = true + stats.ExposedCount++ + stats.OpeningHashes += n.howManyHashes() + } + n.updated = true + stats.UpdatedCount++ +} + +func (n *Node23) canonicalKeys() []Felt { + if n.isLeaf { + ensure(len(n.keys) > 0, "canonicalKeys: node has no key") + return deref(n.keys[:len(n.keys)-1]) + } else { + return deref(n.keys) + } +} + +func (n *Node23) hasKey(targetKey *Felt) bool { + var keys []*Felt + if n.isLeaf { + ensure(len(n.keys) > 0, "hasKey: node has no key") + keys = n.keys[:len(n.keys)-1] + } else { + keys = n.keys + } + for _, key := range keys { + if *key == *targetKey { + return true + } + } + return false +} + +func (n *Node23) isEmpty() bool { + if n.isLeaf { + // At least next key is always present + return n.keyCount() == 1 + } else { + return n.childrenCount() == 0 + } +} + +func (n *Node23) height() int { + if n.isLeaf { + return 1 + } else { + ensure(len(n.children) > 0, "height: internal node has zero children") + return n.children[0].height() + 1 + } +} + +func (n *Node23) keysInLevelOrder() []Felt { + keysByLevel := make([]Felt, 0) + for i := 0; i < n.height(); i++ { + keysByLevel = append(keysByLevel, n.keysByLevel(i)...) + } + return keysByLevel +} + +func (n *Node23) keysByLevel(level int) []Felt { + if level == 0 { + return n.canonicalKeys() + } else { + levelKeys := make([]Felt, 0) + for _, child := range n.children { + childLevelKeys := child.keysByLevel(level - 1) + levelKeys = append(levelKeys, childLevelKeys...) + } + return levelKeys + } +} + +type Walker func(*Node23) interface{} + +func (n *Node23) walkPostOrder(w Walker) []interface{} { + items := make([]interface{}, 0) + if !n.isLeaf { + for _, child := range n.children { + childItems := child.walkPostOrder(w) + items = append(items, childItems...) + } + } + items = append(items, w(n)) + return items +} + +func (n *Node23) walkNodesPostOrder() []*Node23 { + nodeItems := n.walkPostOrder(func(n *Node23) interface{} { return n }) + nodes := make([]*Node23, len(nodeItems)) + for i := range nodeItems { + nodes[i] = nodeItems[i].(*Node23) + } + return nodes +} + +func (n *Node23) howManyHashes() uint { + if n.isLeaf { + // all leaves except last one: 2 or 3 keys + 1 or 2 values => 3 or 5 data => 2 or 4 hashes + // last leaf: 1 or 2 keys + 1 or 2 values => 2 or 4 data => 1 or 3 hashes + switch n.keyCount() { + case 2: + nextKey := n.keys[1] + if nextKey == nil { + return 1 + } else { + return 2 + } + case 3: + nextKey := n.keys[2] + if nextKey == nil { + return 3 + } else { + return 4 + } + default: + ensure(false, fmt.Sprintf("howManyHashes: unexpected keyCount=%d\n", n.keyCount())) + return 0 + } + } else { + // internal node: 2 or 3 children => 1 or 2 hashes + switch n.childrenCount() { + case 2: + return 1 + case 3: + return 2 + default: + ensure(false, fmt.Sprintf("howManyHashes: unexpected childrenCount=%d\n", n.childrenCount())) + return 0 + } + } +} + +func (n *Node23) hashNode() []byte { + if n.isLeaf { + return n.hashLeaf() + } else { + return n.hashInternal() + } +} + +func (n *Node23) hashLeaf() []byte { + ensure(n.isLeaf, "hashLeaf: node is not leaf") + ensure(n.valueCount() == n.keyCount(), "hashLeaf: insufficient number of values") + switch n.keyCount() { + case 2: + k, nextKey, v := *n.keys[0], n.keys[1], *n.values[0] + h := hash2(k.Binary(), v.Binary()) + if nextKey == nil { + return h + } else { + return hash2(h, (*nextKey).Binary()) + } + case 3: + k1, k2, nextKey, v1, v2 := *n.keys[0], *n.keys[1], n.keys[2], *n.values[0], *n.values[1] + h1 := hash2(k1.Binary(), v1.Binary()) + h2 := hash2(k2.Binary(), v2.Binary()) + h12 := hash2(h1, h2) + if nextKey == nil { + return h12 + } else { + return hash2(h12, (*nextKey).Binary()) + } + default: + ensure(false, fmt.Sprintf("hashLeaf: unexpected keyCount=%d\n", n.keyCount())) + return []byte{} + } +} + +func (n *Node23) hashInternal() []byte { + ensure(!n.isLeaf, "hashInternal: node is not internal") + switch n.childrenCount() { + case 2: + child1, child2 := n.children[0], n.children[1] + return hash2(child1.hashNode(), child2.hashNode()) + case 3: + child1, child2, child3 := n.children[0], n.children[1], n.children[2] + return hash2(hash2(child1.hashNode(), child2.hashNode()), child3.hashNode()) + default: + ensure(false, fmt.Sprintf("hashInternal: unexpected childrenCount=%d\n", n.childrenCount())) + return []byte{} + } +} diff --git a/erigon-lib/bptree/tree.go b/erigon-lib/bptree/tree.go new file mode 100644 index 00000000000..3acb5a9fbcc --- /dev/null +++ b/erigon-lib/bptree/tree.go @@ -0,0 +1,177 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +import ( + "fmt" +) + +type Stats struct { + ExposedCount uint + RehashedCount uint + CreatedCount uint + UpdatedCount uint + DeletedCount uint + OpeningHashes uint + ClosingHashes uint +} + +type Tree23 struct { + root *Node23 +} + +func NewEmptyTree23() *Tree23 { + return &Tree23{} +} + +func NewTree23(kvItems KeyValues) *Tree23 { + tree := new(Tree23).Upsert(kvItems) + tree.reset() + return tree +} + +func (t *Tree23) String() string { + return fmt.Sprintf("root={keys=%v #children=%d} size=%d", deref(t.root.keys), t.root.childrenCount(), t.Size()) +} + +func (t *Tree23) Size() int { + count := 0 + t.WalkPostOrder(func(n *Node23) interface{} { count++; return nil }) + return count +} + +func (t *Tree23) RootHash() []byte { + if t.root == nil { + return []byte{} + } + return t.root.hashNode() +} + +func (t *Tree23) IsValid() (bool, error) { + if t.root == nil { + return true, nil + } + // Last leaf must have sentinel next key + if lastLeaf := t.root.lastLeaf(); lastLeaf.keyCount() > 0 && lastLeaf.nextKey() != nil { + return false, fmt.Errorf("no sentinel next key in last leaf %d", &lastLeaf) + } + return t.root.isValid() +} + +func (t *Tree23) Graph(filename string, debug bool) { + graph := NewGraph(t.root) + graph.saveDot(filename, debug) +} + +func (t *Tree23) GraphAndPicture(filename string) error { + graph := NewGraph(t.root) + return graph.saveDotAndPicture(filename, false) +} + +func (t *Tree23) GraphAndPictureDebug(filename string) error { + graph := NewGraph(t.root) + return graph.saveDotAndPicture(filename, true) +} + +func (t *Tree23) Height() int { + if t.root == nil { + return 0 + } + return t.root.height() +} + +func (t *Tree23) KeysInLevelOrder() []Felt { + if t.root == nil { + return []Felt{} + } + return t.root.keysInLevelOrder() +} + +func (t *Tree23) WalkPostOrder(w Walker) []interface{} { + if t.root == nil { + return make([]interface{}, 0) + } + return t.root.walkPostOrder(w) +} + +func (t *Tree23) WalkKeysPostOrder() []Felt { + keyPointers := make([]*Felt, 0) + t.WalkPostOrder(func(n *Node23) interface{} { + if n.isLeaf && n.keyCount() > 0 { + keyPointers = append(keyPointers, n.keys[:len(n.keys)-1]...) + } + return nil + }) + keys := deref(keyPointers) + return keys +} + +func (t *Tree23) Upsert(kvItems KeyValues) *Tree23 { + return t.UpsertWithStats(kvItems, &Stats{}) +} + +func (t *Tree23) UpsertWithStats(kvItems KeyValues, stats *Stats) *Tree23 { + promoted, _, intermediateKeys := upsert(t.root, kvItems, stats) + ensure(len(promoted) > 0, "nodes length is zero") + if len(promoted) == 1 { + t.root = promoted[0] + } else { + t.root = promote(promoted, intermediateKeys, stats) + } + stats.RehashedCount, stats.ClosingHashes = t.countUpsertRehashedNodes() + return t +} + +func (t *Tree23) Delete(keyToDelete []Felt) *Tree23 { + return t.DeleteWithStats(keyToDelete, &Stats{}) +} + +func (t *Tree23) DeleteWithStats(keysToDelete []Felt, stats *Stats) *Tree23 { + newRoot, nextKey, intermediateKeys := del(t.root, keysToDelete, stats) + t.root, _ = demote(newRoot, nextKey, intermediateKeys, stats) + stats.RehashedCount, stats.ClosingHashes = t.countDeleteRehashedNodes() + return t +} + +func (t *Tree23) countUpsertRehashedNodes() (rehashedCount uint, closingHashes uint) { + t.WalkPostOrder(func(n *Node23) interface{} { + if n.exposed { + rehashedCount++ + closingHashes += n.howManyHashes() + } + return nil + }) + return rehashedCount, closingHashes +} + +func (t *Tree23) countDeleteRehashedNodes() (rehashedCount uint, closingHashes uint) { + t.WalkPostOrder(func(n *Node23) interface{} { + if n.updated { + rehashedCount++ + closingHashes += n.howManyHashes() + } + return nil + }) + return rehashedCount, closingHashes +} + +func (t *Tree23) reset() { + if t.root == nil { + return + } + t.root.reset() +} diff --git a/erigon-lib/bptree/tree_test.go b/erigon-lib/bptree/tree_test.go new file mode 100644 index 00000000000..6d0bc52a4cf --- /dev/null +++ b/erigon-lib/bptree/tree_test.go @@ -0,0 +1,427 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +import ( + "bufio" + "bytes" + "encoding/hex" + "sort" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func assertTwoThreeTree(t *testing.T, tree *Tree23, expectedKeysLevelOrder []Felt) { + t.Helper() + treeValid, err := tree.IsValid() + assert.True(t, treeValid, "2-3-tree properties do not hold for tree: %v, error: %v", tree.KeysInLevelOrder(), err) + if expectedKeysLevelOrder != nil { + assert.Equal(t, expectedKeysLevelOrder, tree.KeysInLevelOrder(), "different keys by level") + } +} + +func require23Tree(t *testing.T, tree *Tree23, expectedKeysLevelOrder []Felt, input1, input2 []byte) { + t.Helper() + treeValid, err := tree.IsValid() + require.True(t, treeValid, "2-3-tree properties do not hold: input [%v %v] [%+q %+q], error: %v", + input1, input2, string(input1), string(input2), err) + if expectedKeysLevelOrder != nil { + assert.Equal(t, expectedKeysLevelOrder, tree.KeysInLevelOrder(), "different keys by level") + } +} + +type HeightTest struct { + initialItems KeyValues + expectedHeight int +} + +type IsTree23Test struct { + initialItems KeyValues + expectedKeysLevelOrder []Felt +} + +type RootHashTest struct { + expectedHash string + initialItems KeyValues +} + +type UpsertTest struct { + initialItems KeyValues + initialKeysLevelOrder []Felt + deltaItems KeyValues + finalKeysLevelOrder []Felt +} + +type DeleteTest struct { + initialItems KeyValues + initialKeysLevelOrder []Felt + keysToDelete []Felt + finalKeysLevelOrder []Felt +} + +func K(keys []Felt) KeyValues { + values := make([]Felt, len(keys)) + copy(values, keys) + return KV(keys, values) +} + +var heightTestTable = []HeightTest{ + {K([]Felt{}), 0}, + {K([]Felt{1}), 1}, + {K([]Felt{1, 2}), 1}, + {K([]Felt{1, 2, 3}), 2}, + {K([]Felt{1, 2, 3, 4}), 2}, + {K([]Felt{1, 2, 3, 4, 5}), 2}, + {K([]Felt{1, 2, 3, 4, 5, 6}), 2}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7}), 3}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7, 8}), 3}, +} + +var isTree23TestTable = []IsTree23Test{ + {K([]Felt{}), []Felt{}}, + {K([]Felt{1}), []Felt{1}}, + {K([]Felt{1, 2}), []Felt{1, 2}}, + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}}, + {K([]Felt{1, 2, 3, 4}), []Felt{3, 1, 2, 3, 4}}, + {K([]Felt{1, 2, 3, 4, 5}), []Felt{3, 5, 1, 2, 3, 4, 5}}, + {K([]Felt{1, 2, 3, 4, 5, 6}), []Felt{3, 5, 1, 2, 3, 4, 5, 6}}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7}), []Felt{5, 3, 7, 1, 2, 3, 4, 5, 6, 7}}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7, 8}), []Felt{5, 3, 7, 1, 2, 3, 4, 5, 6, 7, 8}}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7, 8, 9}), []Felt{5, 3, 7, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9}}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}), []Felt{5, 3, 7, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), []Felt{5, 9, 3, 7, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}), []Felt{5, 9, 3, 7, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}), []Felt{9, 5, 13, 3, 7, 11, 15, 17, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}), []Felt{9, 5, 13, 3, 7, 11, 15, 17, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18}}, +} + +var rootHashTestTable = []RootHashTest{ + {"", K([]Felt{})}, + {"532deabf88729cb43995ab5a9cd49bf9b90a079904dc0645ecda9e47ce7345a9", K([]Felt{1})}, + {"d3782c59c224da5b6344108ef3431ba4e01d2c30b6570137a91b8b383908c361", K([]Felt{1, 2})}, +} + +var insertTestTable = []UpsertTest{ + {K([]Felt{}), []Felt{}, K([]Felt{1}), []Felt{1}}, + {K([]Felt{}), []Felt{}, K([]Felt{1, 2}), []Felt{1, 2}}, + {K([]Felt{}), []Felt{}, K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}}, + {K([]Felt{}), []Felt{}, K([]Felt{1, 2, 3, 4}), []Felt{3, 1, 2, 3, 4}}, + + {K([]Felt{1}), []Felt{1}, K([]Felt{0}), []Felt{0, 1}}, + {K([]Felt{1}), []Felt{1}, K([]Felt{2}), []Felt{1, 2}}, + {K([]Felt{1}), []Felt{1}, K([]Felt{0, 2}), []Felt{2, 0, 1, 2}}, + {K([]Felt{1}), []Felt{1}, K([]Felt{0, 2, 3}), []Felt{2, 0, 1, 2, 3}}, + {K([]Felt{1}), []Felt{1}, K([]Felt{0, 2, 3, 4}), []Felt{2, 4, 0, 1, 2, 3, 4}}, + {K([]Felt{2}), []Felt{2}, K([]Felt{0, 1, 3, 4}), []Felt{2, 4, 0, 1, 2, 3, 4}}, + {K([]Felt{3}), []Felt{3}, K([]Felt{0, 1, 2, 4}), []Felt{2, 4, 0, 1, 2, 3, 4}}, + {K([]Felt{4}), []Felt{4}, K([]Felt{0, 1, 2, 3}), []Felt{2, 4, 0, 1, 2, 3, 4}}, + + {K([]Felt{1, 2}), []Felt{1, 2}, K([]Felt{0}), []Felt{2, 0, 1, 2}}, + {K([]Felt{1, 2}), []Felt{1, 2}, K([]Felt{0, 3}), []Felt{2, 0, 1, 2, 3}}, + {K([]Felt{1, 2}), []Felt{1, 2}, K([]Felt{0, 3, 4}), []Felt{2, 4, 0, 1, 2, 3, 4}}, + {K([]Felt{1, 2}), []Felt{1, 2}, K([]Felt{0, 3, 4, 5}), []Felt{2, 4, 0, 1, 2, 3, 4, 5}}, + {K([]Felt{2, 3}), []Felt{2, 3}, K([]Felt{0}), []Felt{3, 0, 2, 3}}, + {K([]Felt{2, 3}), []Felt{2, 3}, K([]Felt{0, 1}), []Felt{2, 0, 1, 2, 3}}, + {K([]Felt{2, 3}), []Felt{2, 3}, K([]Felt{5}), []Felt{5, 2, 3, 5}}, + {K([]Felt{2, 3}), []Felt{2, 3}, K([]Felt{4, 5}), []Felt{4, 2, 3, 4, 5}}, + {K([]Felt{2, 3}), []Felt{2, 3}, K([]Felt{0, 4, 5}), []Felt{3, 5, 0, 2, 3, 4, 5}}, + {K([]Felt{2, 3}), []Felt{2, 3}, K([]Felt{0, 1, 4, 5}), []Felt{2, 4, 0, 1, 2, 3, 4, 5}}, + {K([]Felt{4, 5}), []Felt{4, 5}, K([]Felt{0}), []Felt{5, 0, 4, 5}}, + {K([]Felt{4, 5}), []Felt{4, 5}, K([]Felt{0, 1}), []Felt{4, 0, 1, 4, 5}}, + {K([]Felt{4, 5}), []Felt{4, 5}, K([]Felt{0, 1, 2}), []Felt{2, 5, 0, 1, 2, 4, 5}}, + {K([]Felt{4, 5}), []Felt{4, 5}, K([]Felt{0, 1, 2, 3}), []Felt{2, 4, 0, 1, 2, 3, 4, 5}}, + {K([]Felt{1, 4}), []Felt{1, 4}, K([]Felt{0}), []Felt{4, 0, 1, 4}}, + {K([]Felt{1, 4}), []Felt{1, 4}, K([]Felt{0, 2}), []Felt{2, 0, 1, 2, 4}}, + {K([]Felt{1, 4}), []Felt{1, 4}, K([]Felt{0, 2, 5}), []Felt{2, 5, 0, 1, 2, 4, 5}}, + {K([]Felt{1, 4}), []Felt{1, 4}, K([]Felt{0, 2, 3, 5}), []Felt{2, 4, 0, 1, 2, 3, 4, 5}}, + + {K([]Felt{1, 3, 5}), []Felt{5, 1, 3, 5}, K([]Felt{0}), []Felt{3, 5, 0, 1, 3, 5}}, + {K([]Felt{1, 3, 5}), []Felt{5, 1, 3, 5}, K([]Felt{0, 2, 4}), []Felt{4, 2, 5, 0, 1, 2, 3, 4, 5}}, + {K([]Felt{1, 3, 5}), []Felt{5, 1, 3, 5}, K([]Felt{6, 7, 8}), []Felt{5, 7, 1, 3, 5, 6, 7, 8}}, + {K([]Felt{1, 3, 5}), []Felt{5, 1, 3, 5}, K([]Felt{6, 7, 8, 9}), []Felt{7, 5, 9, 1, 3, 5, 6, 7, 8, 9}}, + + {K([]Felt{1, 2, 3, 4}), []Felt{3, 1, 2, 3, 4}, K([]Felt{0}), []Felt{2, 3, 0, 1, 2, 3, 4}}, + {K([]Felt{1, 3, 5, 7}), []Felt{5, 1, 3, 5, 7}, K([]Felt{0}), []Felt{3, 5, 0, 1, 3, 5, 7}}, + + {K([]Felt{1, 3, 5, 7, 9}), []Felt{5, 9, 1, 3, 5, 7, 9}, K([]Felt{0}), []Felt{5, 3, 9, 0, 1, 3, 5, 7, 9}}, + + // Debug + {K([]Felt{1, 2, 3, 5, 6, 7, 8}), []Felt{6, 3, 8, 1, 2, 3, 5, 6, 7, 8}, K([]Felt{4}), []Felt{6, 3, 5, 8, 1, 2, 3, 4, 5, 6, 7, 8}}, + + { + K([]Felt{10, 15, 20}), + []Felt{20, 10, 15, 20}, + K([]Felt{1, 2, 3, 4, 5, 11, 13, 18, 19, 30, 31}), + []Felt{15, 5, 20, 3, 11, 19, 31, 1, 2, 3, 4, 5, 10, 11, 13, 15, 18, 19, 20, 30, 31}, + }, + + { + K([]Felt{0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20}), + []Felt{8, 16, 4, 12, 20, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20}, + K([]Felt{1, 3, 5}), + []Felt{8, 4, 16, 2, 6, 12, 20, 0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 18, 20}, + }, + + { + K([]Felt{4, 10, 17, 85, 104, 107, 112, 115, 136, 156, 191}), + []Felt{104, 136, 17, 112, 191, 4, 10, 17, 85, 104, 107, 112, 115, 136, 156, 191}, + K([]Felt{0, 96, 120, 129, 133, 164, 187, 189}), + nil, + }, +} + +var updateTestTable = []UpsertTest{ + {K([]Felt{10}), []Felt{10}, KV([]Felt{10}, []Felt{100}), []Felt{10}}, + {K([]Felt{10, 20}), []Felt{10, 20}, KV([]Felt{10, 20}, []Felt{100, 200}), []Felt{10, 20}}, +} + +var deleteTestTable = []DeleteTest{ + /// POSITIVE TEST CASES + {K([]Felt{}), []Felt{}, []Felt{}, []Felt{}}, + + {K([]Felt{1}), []Felt{1}, []Felt{}, []Felt{1}}, + {K([]Felt{1}), []Felt{1}, []Felt{1}, []Felt{}}, + + {K([]Felt{1, 2}), []Felt{1, 2}, []Felt{}, []Felt{1, 2}}, + {K([]Felt{1, 2}), []Felt{1, 2}, []Felt{1}, []Felt{2}}, + {K([]Felt{1, 2}), []Felt{1, 2}, []Felt{2}, []Felt{1}}, + {K([]Felt{1, 2}), []Felt{1, 2}, []Felt{1, 2}, []Felt{}}, + + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}, []Felt{}, []Felt{3, 1, 2, 3}}, + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}, []Felt{1}, []Felt{2, 3}}, + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}, []Felt{2}, []Felt{1, 3}}, + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}, []Felt{3}, []Felt{1, 2}}, + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}, []Felt{1, 2}, []Felt{3}}, + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}, []Felt{1, 3}, []Felt{2}}, + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}, []Felt{2, 3}, []Felt{1}}, + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}, []Felt{1, 2, 3}, []Felt{}}, + + {K([]Felt{1, 2, 3, 4}), []Felt{3, 1, 2, 3, 4}, []Felt{1}, []Felt{3, 2, 3, 4}}, + {K([]Felt{1, 2, 3, 4}), []Felt{3, 1, 2, 3, 4}, []Felt{2}, []Felt{3, 1, 3, 4}}, + {K([]Felt{1, 2, 3, 4}), []Felt{3, 1, 2, 3, 4}, []Felt{3}, []Felt{4, 1, 2, 4}}, + {K([]Felt{1, 2, 3, 4}), []Felt{3, 1, 2, 3, 4}, []Felt{4}, []Felt{3, 1, 2, 3}}, + + {K([]Felt{1, 2, 3, 4, 5}), []Felt{3, 5, 1, 2, 3, 4, 5}, []Felt{1}, []Felt{3, 5, 2, 3, 4, 5}}, + {K([]Felt{1, 2, 3, 4, 5}), []Felt{3, 5, 1, 2, 3, 4, 5}, []Felt{2}, []Felt{3, 5, 1, 3, 4, 5}}, + {K([]Felt{1, 2, 3, 4, 5}), []Felt{3, 5, 1, 2, 3, 4, 5}, []Felt{3}, []Felt{4, 5, 1, 2, 4, 5}}, + {K([]Felt{1, 2, 3, 4, 5}), []Felt{3, 5, 1, 2, 3, 4, 5}, []Felt{4}, []Felt{3, 5, 1, 2, 3, 5}}, + {K([]Felt{1, 2, 3, 4, 5}), []Felt{3, 5, 1, 2, 3, 4, 5}, []Felt{5}, []Felt{3, 1, 2, 3, 4}}, + {K([]Felt{1, 2, 3, 4, 5, 6, 7}), []Felt{5, 3, 7, 1, 2, 3, 4, 5, 6, 7}, []Felt{7}, []Felt{3, 5, 1, 2, 3, 4, 5, 6}}, + + {K([]Felt{16, 25, 155, 182, 184, 210, 215}), []Felt{184, 155, 215, 16, 25, 155, 182, 184, 210, 215}, []Felt{155, 182}, []Felt{184, 215, 16, 25, 184, 210, 215}}, + + /// NEGATIVE TEST CASES + {K([]Felt{}), []Felt{}, []Felt{1}, []Felt{}}, + {K([]Felt{1}), []Felt{1}, []Felt{2}, []Felt{1}}, + {K([]Felt{1, 2}), []Felt{1, 2}, []Felt{3}, []Felt{1, 2}}, + {K([]Felt{1, 2, 3}), []Felt{3, 1, 2, 3}, []Felt{4}, []Felt{3, 1, 2, 3}}, + {K([]Felt{1, 2, 3, 4}), []Felt{3, 1, 2, 3, 4}, []Felt{5}, []Felt{3, 1, 2, 3, 4}}, + {K([]Felt{1, 2, 3, 4, 5}), []Felt{3, 5, 1, 2, 3, 4, 5}, []Felt{6}, []Felt{3, 5, 1, 2, 3, 4, 5}}, + + /// MIXED TEST CASES + {K([]Felt{0, 46, 50, 89, 134, 218}), []Felt{50, 134, 0, 46, 50, 89, 134, 218}, []Felt{46, 50, 89, 134, 218}, []Felt{0}}, +} + +func TestHeight(t *testing.T) { + for _, data := range heightTestTable { + tree := NewTree23(data.initialItems) + assert.Equal(t, data.expectedHeight, tree.Height(), "different height") + } +} + +func TestIs23Tree(t *testing.T) { + for _, data := range isTree23TestTable { + tree := NewTree23(data.initialItems) + //tree.GraphAndPicture("is23Tree") + assertTwoThreeTree(t, tree, data.expectedKeysLevelOrder) + } +} + +func Test23TreeSeries(t *testing.T) { + maxNumberOfNodes := 100 + for i := 0; i < maxNumberOfNodes; i++ { + kvPairs := KeyValues{make([]*Felt, 0), make([]*Felt, 0)} + for j := 0; j < i; j++ { + key, value := Felt(j), Felt(j) + kvPairs.keys = append(kvPairs.keys, &key) + kvPairs.values = append(kvPairs.values, &value) + } + tree := NewTree23(kvPairs) + assertTwoThreeTree(t, tree, nil) + } +} + +func TestRootHash(t *testing.T) { + for _, data := range rootHashTestTable { + tree := NewTree23(data.initialItems) + assert.Equal(t, data.expectedHash, hex.EncodeToString(tree.RootHash()), "different root hash") + } +} + +func TestUpsertInsert(t *testing.T) { + for _, data := range insertTestTable { + tree := NewTree23(data.initialItems) + assertTwoThreeTree(t, tree, data.initialKeysLevelOrder) + //tree.GraphAndPicture("tree_step1") + tree.Upsert(data.deltaItems) + //tree.GraphAndPicture("tree_step2") + assertTwoThreeTree(t, tree, data.finalKeysLevelOrder) + } +} + +func TestUpsertUpdate(t *testing.T) { + for _, data := range updateTestTable { + tree := NewTree23(data.initialItems) + assertTwoThreeTree(t, tree, data.initialKeysLevelOrder) + // TODO: add check for old values + tree.Upsert(data.deltaItems) + assertTwoThreeTree(t, tree, data.finalKeysLevelOrder) + // TODO: add check for new values + } +} + +func TestUpsertIdempotent(t *testing.T) { + for _, data := range isTree23TestTable { + tree := NewTree23(data.initialItems) + assertTwoThreeTree(t, tree, data.expectedKeysLevelOrder) + tree.Upsert(data.initialItems) + assertTwoThreeTree(t, tree, data.expectedKeysLevelOrder) + } +} + +func TestUpsertNextKey(t *testing.T) { + dataCount := 4 + data := KeyValues{make([]*Felt, dataCount), make([]*Felt, dataCount)} + for i := 0; i < dataCount; i++ { + key, value := Felt(i*2), Felt(i*2) + data.keys[i], data.values[i] = &key, &value + } + tn := NewTree23(data) + //tn.GraphAndPicture("tn1") + + for i := 0; i < dataCount; i++ { + key, value := Felt(i*2+1), Felt(i*2+1) + data.keys[i], data.values[i] = &key, &value + } + tn = tn.Upsert(data) + //tn.GraphAndPicture("tn2") + assertTwoThreeTree(t, tn, []Felt{4, 2, 6, 0, 1, 2, 3, 4, 5, 6, 7}) + + data = K([]Felt{100, 101, 200, 201, 202}) + tn = tn.Upsert(data) + //tn.GraphAndPicture("tn3") + assertTwoThreeTree(t, tn, []Felt{4, 100, 2, 6, 200, 202, 0, 1, 2, 3, 4, 5, 6, 7, 100, 101, 200, 201, 202}) + + data = K([]Felt{10, 150, 250, 251, 252}) + tn = tn.Upsert(data) + //tn.GraphAndPicture("tn4") + assertTwoThreeTree(t, tn, []Felt{100, 4, 200, 2, 6, 10, 150, 202, 251, 0, 1, 2, 3, 4, 5, 6, 7, 10, 100, 101, 150, 200, 201, 202, 250, 251, 252}) +} + +func TestUpsertFirstKey(t *testing.T) { +} + +func TestDelete(t *testing.T) { + for _, data := range deleteTestTable { + tree := NewTree23(data.initialItems) + assertTwoThreeTree(t, tree, data.initialKeysLevelOrder) + //tree.GraphAndPicture("tree_delete1") + tree.Delete(data.keysToDelete) + //tree.GraphAndPicture("tree_delete2") + assertTwoThreeTree(t, tree, data.finalKeysLevelOrder) + } +} + +func FuzzUpsert(f *testing.F) { + f.Fuzz(func(t *testing.T, input1, input2 []byte) { + //t.Parallel() + keyFactory := NewKeyBinaryFactory(1) + bytesReader1 := bytes.NewReader(input1) + kvStatePairs := keyFactory.NewUniqueKeyValues(bufio.NewReader(bytesReader1)) + require.True(t, sort.IsSorted(kvStatePairs), "kvStatePairs is not sorted") + bytesReader2 := bytes.NewReader(input2) + kvStateChangesPairs := keyFactory.NewUniqueKeyValues(bufio.NewReader(bytesReader2)) + //fmt.Printf("kvStatePairs=%v kvStateChangesPairs=%v\n", kvStatePairs, kvStateChangesPairs) + require.True(t, sort.IsSorted(kvStateChangesPairs), "kvStateChangesPairs is not sorted") + tree := NewTree23(kvStatePairs) + //tree.GraphAndPicture("fuzz_tree_upsert1") + assertTwoThreeTree(t, tree, nil) + tree = tree.Upsert(kvStateChangesPairs) + //tree.GraphAndPicture("fuzz_tree_upsert2") + assertTwoThreeTree(t, tree, nil) + }) +} + +func FuzzDelete(f *testing.F) { + f.Fuzz(func(t *testing.T, input1, input2 []byte) { + //t.Parallel() + //fmt.Printf("input1=%v input2=%v\n", input1, input2) + keyFactory := NewKeyBinaryFactory(1) + bytesReader1 := bytes.NewReader(input1) + kvStatePairs := keyFactory.NewUniqueKeyValues(bufio.NewReader(bytesReader1)) + require.True(t, sort.IsSorted(kvStatePairs), "kvStatePairs is not sorted") + bytesReader2 := bytes.NewReader(input2) + keysToDelete := keyFactory.NewUniqueKeys(bufio.NewReader(bytesReader2)) + //fmt.Printf("kvStatePairs=%v keysToDelete=%v\n", kvStatePairs, keysToDelete) + require.True(t, sort.IsSorted(keysToDelete), "keysToDelete is not sorted") + tree1 := NewTree23(kvStatePairs) + //tree1.GraphAndPicture("fuzz_tree_delete1") + require23Tree(t, tree1, nil, input1, input2) + tree2 := tree1.Delete(keysToDelete) + //tree2.GraphAndPicture("fuzz_tree_delete2") + require23Tree(t, tree2, nil, input1, input2) + // TODO: check the difference properties + // Check that *each* T1 node is present either in Td or in T2 + // Check that *each* T2 node is not present in Td + // Check that *each* Td node is present in T1 but not in T2 + }) +} + +func BenchmarkNewTree23(b *testing.B) { + const dataCount = 1_000_000 + data := KeyValues{make([]*Felt, dataCount), make([]*Felt, dataCount)} + for i := 0; i < dataCount; i++ { + key, value := Felt(i*2), Felt(i*2) + data.keys[i], data.values[i] = &key, &value + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + NewTree23(data) + } +} + +func BenchmarkUpsert(b *testing.B) { + dataCount := 5_000_000 + data := KeyValues{make([]*Felt, dataCount), make([]*Felt, dataCount)} + for i := 0; i < dataCount; i++ { + key, value := Felt(i*2), Felt(i*2) + data.keys[i], data.values[i] = &key, &value + } + tree := NewTree23(data) + dataCount = 500_000 + data = KeyValues{make([]*Felt, dataCount), make([]*Felt, dataCount)} + for i := 0; i < dataCount; i++ { + key, value := Felt(i*2+1), Felt(i*2+1) + data.keys[i], data.values[i] = &key, &value + } + b.ResetTimer() + for i := 0; i < b.N; i++ { + tree.Upsert(data) + } +} diff --git a/erigon-lib/bptree/util.go b/erigon-lib/bptree/util.go new file mode 100644 index 00000000000..5751008ab66 --- /dev/null +++ b/erigon-lib/bptree/util.go @@ -0,0 +1,25 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bptree + +const BufferSize uint = 4096 + +func ensure(condition bool, message string) { + if !condition { + panic(message) + } +} diff --git a/erigon-lib/chain/aura_config.go b/erigon-lib/chain/aura_config.go new file mode 100644 index 00000000000..a8fa90190f2 --- /dev/null +++ b/erigon-lib/chain/aura_config.go @@ -0,0 +1,93 @@ +/* + Copyright 2023 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package chain + +import ( + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutility" +) + +// Different ways of specifying validators. +type ValidatorSetJson struct { + // A simple list of authorities. + List []common.Address `json:"list"` + // Address of a contract that indicates the list of authorities. + SafeContract *common.Address `json:"safeContract"` + // Address of a contract that indicates the list of authorities and enables reporting of their misbehaviour using transactions. + Contract *common.Address `json:"contract"` + // A map of starting blocks for each validator set. + Multi map[uint64]*ValidatorSetJson `json:"multi"` +} + +// AuRaConfig is the consensus engine configs for proof-of-authority based sealing. +type AuRaConfig struct { + StepDuration *uint64 `json:"stepDuration"` // Block duration, in seconds. + Validators *ValidatorSetJson `json:"validators"` // Valid authorities + + // Starting step. Determined automatically if not specified. + // To be used for testing only. + StartStep *uint64 `json:"startStep"` + ValidateScoreTransition *uint64 `json:"validateScoreTransition"` // Block at which score validation should start. + ValidateStepTransition *uint64 `json:"validateStepTransition"` // Block from which monotonic steps start. + ImmediateTransitions *bool `json:"immediateTransitions"` // Whether transitions should be immediate. + BlockReward *uint64 `json:"blockReward"` // Reward per block in wei. + // Block at which the block reward contract should start being used. This option allows one to + // add a single block reward contract transition and is compatible with the multiple address + // option `block_reward_contract_transitions` below. + BlockRewardContractTransition *uint64 `json:"blockRewardContractTransition"` + /// Block reward contract address which overrides the `block_reward` setting. This option allows + /// one to add a single block reward contract address and is compatible with the multiple + /// address option `block_reward_contract_transitions` below. + BlockRewardContractAddress *common.Address `json:"blockRewardContractAddress"` + // Block reward contract addresses with their associated starting block numbers. + // + // Setting the block reward contract overrides `block_reward`. If the single block reward + // contract address is also present then it is added into the map at the block number stored in + // `block_reward_contract_transition` or 0 if that block number is not provided. Therefore both + // a single block reward contract transition and a map of reward contract transitions can be + // used simultaneously in the same configuration. In such a case the code requires that the + // block number of the single transition is strictly less than any of the block numbers in the + // map. + BlockRewardContractTransitions map[uint]common.Address `json:"blockRewardContractTransitions"` + // Block at which maximum uncle count should be considered. + MaximumUncleCountTransition *uint64 `json:"maximumUncleCountTransition"` + // Maximum number of accepted uncles. + MaximumUncleCount *uint `json:"maximumUncleCount"` + // Strict validation of empty steps transition block. + StrictEmptyStepsTransition *uint `json:"strictEmptyStepsTransition"` + // The random number contract's address, or a map of contract transitions. + RandomnessContractAddress map[uint64]common.Address `json:"randomnessContractAddress"` + // The addresses of contracts that determine the block gas limit starting from the block number + // associated with each of those contracts. + BlockGasLimitContractTransitions map[uint64]common.Address `json:"blockGasLimitContractTransitions"` + // The block number at which the consensus engine switches from AuRa to AuRa with POSDAO + // modifications. + PosdaoTransition *uint64 `json:"PosdaoTransition"` + // Stores human-readable keys associated with addresses, like DNS information. + // This contract is primarily required to store the address of the Certifier contract. + Registrar *common.Address `json:"registrar"` + + // See https://github.com/gnosischain/specs/blob/master/execution/withdrawals.md + WithdrawalContractAddress *common.Address `json:"withdrawalContractAddress"` + + RewriteBytecode map[uint64]map[common.Address]hexutility.Bytes `json:"rewriteBytecode"` +} + +// String implements the stringer interface, returning the consensus engine details. +func (c *AuRaConfig) String() string { + return "aura" +} diff --git a/erigon-lib/chain/chain_config.go b/erigon-lib/chain/chain_config.go new file mode 100644 index 00000000000..6e93c59ff90 --- /dev/null +++ b/erigon-lib/chain/chain_config.go @@ -0,0 +1,679 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package chain + +import ( + "fmt" + "math/big" + "sort" + "strconv" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/fixedgas" +) + +// Config is the core config which determines the blockchain settings. +// +// Config is stored in the database on a per block basis. This means +// that any network, identified by its genesis block, can have its own +// set of configuration options. +type Config struct { + ChainName string + ChainID *big.Int `json:"chainId"` // chainId identifies the current chain and is used for replay protection + + Consensus ConsensusName `json:"consensus,omitempty"` // aura, ethash or clique + + // *Block fields activate the corresponding hard fork at a certain block number, + // while *Time fields do so based on the block's time stamp. + // nil means that the hard-fork is not scheduled, + // while 0 means that it's already activated from genesis. + + // ETH mainnet upgrades + // See https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades + HomesteadBlock *big.Int `json:"homesteadBlock,omitempty"` + DAOForkBlock *big.Int `json:"daoForkBlock,omitempty"` + TangerineWhistleBlock *big.Int `json:"eip150Block,omitempty"` + SpuriousDragonBlock *big.Int `json:"eip155Block,omitempty"` + ByzantiumBlock *big.Int `json:"byzantiumBlock,omitempty"` + ConstantinopleBlock *big.Int `json:"constantinopleBlock,omitempty"` + PetersburgBlock *big.Int `json:"petersburgBlock,omitempty"` + IstanbulBlock *big.Int `json:"istanbulBlock,omitempty"` + MuirGlacierBlock *big.Int `json:"muirGlacierBlock,omitempty"` + BerlinBlock *big.Int `json:"berlinBlock,omitempty"` + LondonBlock *big.Int `json:"londonBlock,omitempty"` + ArrowGlacierBlock *big.Int `json:"arrowGlacierBlock,omitempty"` + GrayGlacierBlock *big.Int `json:"grayGlacierBlock,omitempty"` + + // EIP-3675: Upgrade consensus to Proof-of-Stake (a.k.a. "Paris", "The Merge") + TerminalTotalDifficulty *big.Int `json:"terminalTotalDifficulty,omitempty"` // The merge happens when terminal total difficulty is reached + TerminalTotalDifficultyPassed bool `json:"terminalTotalDifficultyPassed,omitempty"` // Disable PoW sync for networks that have already passed through the Merge + MergeNetsplitBlock *big.Int `json:"mergeNetsplitBlock,omitempty"` // Virtual fork after The Merge to use as a network splitter; see FORK_NEXT_VALUE in EIP-3675 + + // Mainnet fork scheduling switched from block numbers to timestamps after The Merge + ShanghaiTime *big.Int `json:"shanghaiTime,omitempty"` + CancunTime *big.Int `json:"cancunTime,omitempty"` + PragueTime *big.Int `json:"pragueTime,omitempty"` + + // Optional EIP-4844 parameters + MinBlobGasPrice *uint64 `json:"minBlobGasPrice,omitempty"` + MaxBlobGasPerBlock *uint64 `json:"maxBlobGasPerBlock,omitempty"` + TargetBlobGasPerBlock *uint64 `json:"targetBlobGasPerBlock,omitempty"` + BlobGasPriceUpdateFraction *uint64 `json:"blobGasPriceUpdateFraction,omitempty"` + + // (Optional) governance contract where EIP-1559 fees will be sent to that otherwise would be burnt since the London fork + BurntContract map[string]common.Address `json:"burntContract,omitempty"` + + // Various consensus engines + Ethash *EthashConfig `json:"ethash,omitempty"` + Clique *CliqueConfig `json:"clique,omitempty"` + Aura *AuRaConfig `json:"aura,omitempty"` + Bor *BorConfig `json:"bor,omitempty"` +} + +func (c *Config) String() string { + engine := c.getEngine() + + return fmt.Sprintf("{ChainID: %v, Homestead: %v, DAO: %v, Tangerine Whistle: %v, Spurious Dragon: %v, Byzantium: %v, Constantinople: %v, Petersburg: %v, Istanbul: %v, Muir Glacier: %v, Berlin: %v, London: %v, Arrow Glacier: %v, Gray Glacier: %v, Terminal Total Difficulty: %v, Merge Netsplit: %v, Shanghai: %v, Cancun: %v, Prague: %v, Engine: %v}", + c.ChainID, + c.HomesteadBlock, + c.DAOForkBlock, + c.TangerineWhistleBlock, + c.SpuriousDragonBlock, + c.ByzantiumBlock, + c.ConstantinopleBlock, + c.PetersburgBlock, + c.IstanbulBlock, + c.MuirGlacierBlock, + c.BerlinBlock, + c.LondonBlock, + c.ArrowGlacierBlock, + c.GrayGlacierBlock, + c.TerminalTotalDifficulty, + c.MergeNetsplitBlock, + c.ShanghaiTime, + c.CancunTime, + c.PragueTime, + engine, + ) +} + +func (c *Config) getEngine() string { + switch { + case c.Ethash != nil: + return c.Ethash.String() + case c.Clique != nil: + return c.Clique.String() + case c.Bor != nil: + return c.Bor.String() + case c.Aura != nil: + return c.Aura.String() + default: + return "unknown" + } +} + +// IsHomestead returns whether num is either equal to the homestead block or greater. +func (c *Config) IsHomestead(num uint64) bool { + return isForked(c.HomesteadBlock, num) +} + +// IsDAOFork returns whether num is either equal to the DAO fork block or greater. +func (c *Config) IsDAOFork(num uint64) bool { + return isForked(c.DAOForkBlock, num) +} + +// IsTangerineWhistle returns whether num is either equal to the Tangerine Whistle (EIP150) fork block or greater. +func (c *Config) IsTangerineWhistle(num uint64) bool { + return isForked(c.TangerineWhistleBlock, num) +} + +// IsSpuriousDragon returns whether num is either equal to the Spurious Dragon fork block or greater. +func (c *Config) IsSpuriousDragon(num uint64) bool { + return isForked(c.SpuriousDragonBlock, num) +} + +// IsByzantium returns whether num is either equal to the Byzantium fork block or greater. +func (c *Config) IsByzantium(num uint64) bool { + return isForked(c.ByzantiumBlock, num) +} + +// IsConstantinople returns whether num is either equal to the Constantinople fork block or greater. +func (c *Config) IsConstantinople(num uint64) bool { + return isForked(c.ConstantinopleBlock, num) +} + +// IsMuirGlacier returns whether num is either equal to the Muir Glacier (EIP-2384) fork block or greater. +func (c *Config) IsMuirGlacier(num uint64) bool { + return isForked(c.MuirGlacierBlock, num) +} + +// IsPetersburg returns whether num is either +// - equal to or greater than the PetersburgBlock fork block, +// - OR is nil, and Constantinople is active +func (c *Config) IsPetersburg(num uint64) bool { + return isForked(c.PetersburgBlock, num) || c.PetersburgBlock == nil && isForked(c.ConstantinopleBlock, num) +} + +// IsIstanbul returns whether num is either equal to the Istanbul fork block or greater. +func (c *Config) IsIstanbul(num uint64) bool { + return isForked(c.IstanbulBlock, num) +} + +// IsBerlin returns whether num is either equal to the Berlin fork block or greater. +func (c *Config) IsBerlin(num uint64) bool { + return isForked(c.BerlinBlock, num) +} + +// IsLondon returns whether num is either equal to the London fork block or greater. +func (c *Config) IsLondon(num uint64) bool { + return isForked(c.LondonBlock, num) +} + +// IsArrowGlacier returns whether num is either equal to the Arrow Glacier (EIP-4345) fork block or greater. +func (c *Config) IsArrowGlacier(num uint64) bool { + return isForked(c.ArrowGlacierBlock, num) +} + +// IsGrayGlacier returns whether num is either equal to the Gray Glacier (EIP-5133) fork block or greater. +func (c *Config) IsGrayGlacier(num uint64) bool { + return isForked(c.GrayGlacierBlock, num) +} + +// IsShanghai returns whether time is either equal to the Shanghai fork time or greater. +func (c *Config) IsShanghai(time uint64) bool { + return isForked(c.ShanghaiTime, time) +} + +// IsAgra returns whether num is either equal to the Agra fork block or greater. +// The Agra hard fork is based on the Shanghai hard fork, but it doesn't include withdrawals. +// Also Agra is activated based on the block number rather than the timestamp. +// Refer to https://forum.polygon.technology/t/pip-28-agra-hardfork +func (c *Config) IsAgra(num uint64) bool { + if c == nil || c.Bor == nil { + return false + } + return isForked(c.Bor.AgraBlock, num) +} + +// IsCancun returns whether time is either equal to the Cancun fork time or greater. +func (c *Config) IsCancun(time uint64) bool { + return isForked(c.CancunTime, time) +} + +// IsPrague returns whether time is either equal to the Prague fork time or greater. +func (c *Config) IsPrague(time uint64) bool { + return isForked(c.PragueTime, time) +} + +func (c *Config) GetBurntContract(num uint64) *common.Address { + if len(c.BurntContract) == 0 { + return nil + } + addr := borKeyValueConfigHelper(c.BurntContract, num) + return &addr +} + +func (c *Config) GetMinBlobGasPrice() uint64 { + if c.MinBlobGasPrice != nil { + return *c.MinBlobGasPrice + } + return 1 // MIN_BLOB_GASPRICE (EIP-4844) +} + +func (c *Config) GetMaxBlobGasPerBlock() uint64 { + if c.MaxBlobGasPerBlock != nil { + return *c.MaxBlobGasPerBlock + } + return 786432 // MAX_BLOB_GAS_PER_BLOCK (EIP-4844) +} + +func (c *Config) GetTargetBlobGasPerBlock() uint64 { + if c.TargetBlobGasPerBlock != nil { + return *c.TargetBlobGasPerBlock + } + return 393216 // TARGET_BLOB_GAS_PER_BLOCK (EIP-4844) +} + +func (c *Config) GetBlobGasPriceUpdateFraction() uint64 { + if c.BlobGasPriceUpdateFraction != nil { + return *c.BlobGasPriceUpdateFraction + } + return 3338477 // BLOB_GASPRICE_UPDATE_FRACTION (EIP-4844) +} + +func (c *Config) GetMaxBlobsPerBlock() uint64 { + return c.GetMaxBlobGasPerBlock() / fixedgas.BlobGasPerBlob +} + +// CheckCompatible checks whether scheduled fork transitions have been imported +// with a mismatching chain configuration. +func (c *Config) CheckCompatible(newcfg *Config, height uint64) *ConfigCompatError { + bhead := height + + // Iterate checkCompatible to find the lowest conflict. + var lasterr *ConfigCompatError + for { + err := c.checkCompatible(newcfg, bhead) + if err == nil || (lasterr != nil && err.RewindTo == lasterr.RewindTo) { + break + } + lasterr = err + bhead = err.RewindTo + } + return lasterr +} + +type forkBlockNumber struct { + name string + blockNumber *big.Int + optional bool // if true, the fork may be nil and next fork is still allowed +} + +func (c *Config) forkBlockNumbers() []forkBlockNumber { + return []forkBlockNumber{ + {name: "homesteadBlock", blockNumber: c.HomesteadBlock}, + {name: "daoForkBlock", blockNumber: c.DAOForkBlock, optional: true}, + {name: "eip150Block", blockNumber: c.TangerineWhistleBlock}, + {name: "eip155Block", blockNumber: c.SpuriousDragonBlock}, + {name: "byzantiumBlock", blockNumber: c.ByzantiumBlock}, + {name: "constantinopleBlock", blockNumber: c.ConstantinopleBlock}, + {name: "petersburgBlock", blockNumber: c.PetersburgBlock}, + {name: "istanbulBlock", blockNumber: c.IstanbulBlock}, + {name: "muirGlacierBlock", blockNumber: c.MuirGlacierBlock, optional: true}, + {name: "berlinBlock", blockNumber: c.BerlinBlock}, + {name: "londonBlock", blockNumber: c.LondonBlock}, + {name: "arrowGlacierBlock", blockNumber: c.ArrowGlacierBlock, optional: true}, + {name: "grayGlacierBlock", blockNumber: c.GrayGlacierBlock, optional: true}, + {name: "mergeNetsplitBlock", blockNumber: c.MergeNetsplitBlock, optional: true}, + } +} + +// CheckConfigForkOrder checks that we don't "skip" any forks +func (c *Config) CheckConfigForkOrder() error { + if c != nil && c.ChainID != nil && c.ChainID.Uint64() == 77 { + return nil + } + + var lastFork forkBlockNumber + + for _, fork := range c.forkBlockNumbers() { + if lastFork.name != "" { + // Next one must be higher number + if lastFork.blockNumber == nil && fork.blockNumber != nil { + return fmt.Errorf("unsupported fork ordering: %v not enabled, but %v enabled at %v", + lastFork.name, fork.name, fork.blockNumber) + } + if lastFork.blockNumber != nil && fork.blockNumber != nil { + if lastFork.blockNumber.Cmp(fork.blockNumber) > 0 { + return fmt.Errorf("unsupported fork ordering: %v enabled at %v, but %v enabled at %v", + lastFork.name, lastFork.blockNumber, fork.name, fork.blockNumber) + } + } + // If it was optional and not set, then ignore it + } + if !fork.optional || fork.blockNumber != nil { + lastFork = fork + } + } + return nil +} + +func (c *Config) checkCompatible(newcfg *Config, head uint64) *ConfigCompatError { + // returns true if a fork scheduled at s1 cannot be rescheduled to block s2 because head is already past the fork. + incompatible := func(s1, s2 *big.Int, head uint64) bool { + return (isForked(s1, head) || isForked(s2, head)) && !numEqual(s1, s2) + } + + // Ethereum mainnet forks + if incompatible(c.HomesteadBlock, newcfg.HomesteadBlock, head) { + return newCompatError("Homestead fork block", c.HomesteadBlock, newcfg.HomesteadBlock) + } + if incompatible(c.DAOForkBlock, newcfg.DAOForkBlock, head) { + return newCompatError("DAO fork block", c.DAOForkBlock, newcfg.DAOForkBlock) + } + if incompatible(c.TangerineWhistleBlock, newcfg.TangerineWhistleBlock, head) { + return newCompatError("Tangerine Whistle fork block", c.TangerineWhistleBlock, newcfg.TangerineWhistleBlock) + } + if incompatible(c.SpuriousDragonBlock, newcfg.SpuriousDragonBlock, head) { + return newCompatError("Spurious Dragon fork block", c.SpuriousDragonBlock, newcfg.SpuriousDragonBlock) + } + if c.IsSpuriousDragon(head) && !numEqual(c.ChainID, newcfg.ChainID) { + return newCompatError("EIP155 chain ID", c.SpuriousDragonBlock, newcfg.SpuriousDragonBlock) + } + if incompatible(c.ByzantiumBlock, newcfg.ByzantiumBlock, head) { + return newCompatError("Byzantium fork block", c.ByzantiumBlock, newcfg.ByzantiumBlock) + } + if incompatible(c.ConstantinopleBlock, newcfg.ConstantinopleBlock, head) { + return newCompatError("Constantinople fork block", c.ConstantinopleBlock, newcfg.ConstantinopleBlock) + } + if incompatible(c.PetersburgBlock, newcfg.PetersburgBlock, head) { + // the only case where we allow Petersburg to be set in the past is if it is equal to Constantinople + // mainly to satisfy fork ordering requirements which state that Petersburg fork be set if Constantinople fork is set + if incompatible(c.ConstantinopleBlock, newcfg.PetersburgBlock, head) { + return newCompatError("Petersburg fork block", c.PetersburgBlock, newcfg.PetersburgBlock) + } + } + if incompatible(c.IstanbulBlock, newcfg.IstanbulBlock, head) { + return newCompatError("Istanbul fork block", c.IstanbulBlock, newcfg.IstanbulBlock) + } + if incompatible(c.MuirGlacierBlock, newcfg.MuirGlacierBlock, head) { + return newCompatError("Muir Glacier fork block", c.MuirGlacierBlock, newcfg.MuirGlacierBlock) + } + if incompatible(c.BerlinBlock, newcfg.BerlinBlock, head) { + return newCompatError("Berlin fork block", c.BerlinBlock, newcfg.BerlinBlock) + } + if incompatible(c.LondonBlock, newcfg.LondonBlock, head) { + return newCompatError("London fork block", c.LondonBlock, newcfg.LondonBlock) + } + if incompatible(c.ArrowGlacierBlock, newcfg.ArrowGlacierBlock, head) { + return newCompatError("Arrow Glacier fork block", c.ArrowGlacierBlock, newcfg.ArrowGlacierBlock) + } + if incompatible(c.GrayGlacierBlock, newcfg.GrayGlacierBlock, head) { + return newCompatError("Gray Glacier fork block", c.GrayGlacierBlock, newcfg.GrayGlacierBlock) + } + if incompatible(c.MergeNetsplitBlock, newcfg.MergeNetsplitBlock, head) { + return newCompatError("Merge netsplit block", c.MergeNetsplitBlock, newcfg.MergeNetsplitBlock) + } + + return nil +} + +func numEqual(x, y *big.Int) bool { + if x == nil { + return y == nil + } + if y == nil { + return x == nil + } + return x.Cmp(y) == 0 +} + +// ConfigCompatError is raised if the locally-stored blockchain is initialised with a +// ChainConfig that would alter the past. +type ConfigCompatError struct { + What string + // block numbers of the stored and new configurations + StoredConfig, NewConfig *big.Int + // the block number to which the local chain must be rewound to correct the error + RewindTo uint64 +} + +func newCompatError(what string, storedblock, newblock *big.Int) *ConfigCompatError { + var rew *big.Int + switch { + case storedblock == nil: + rew = newblock + case newblock == nil || storedblock.Cmp(newblock) < 0: + rew = storedblock + default: + rew = newblock + } + err := &ConfigCompatError{what, storedblock, newblock, 0} + if rew != nil && rew.Sign() > 0 { + err.RewindTo = rew.Uint64() - 1 + } + return err +} + +func (err *ConfigCompatError) Error() string { + return fmt.Sprintf("mismatching %s in database (have %d, want %d, rewindto %d)", err.What, err.StoredConfig, err.NewConfig, err.RewindTo) +} + +// EthashConfig is the consensus engine configs for proof-of-work based sealing. +type EthashConfig struct{} + +// String implements the stringer interface, returning the consensus engine details. +func (c *EthashConfig) String() string { + return "ethash" +} + +// CliqueConfig is the consensus engine configs for proof-of-authority based sealing. +type CliqueConfig struct { + Period uint64 `json:"period"` // Number of seconds between blocks to enforce + Epoch uint64 `json:"epoch"` // Epoch length to reset votes and checkpoint +} + +// String implements the stringer interface, returning the consensus engine details. +func (c *CliqueConfig) String() string { + return "clique" +} + +// BorConfig is the consensus engine configs for Matic bor based sealing. +type BorConfig struct { + Period map[string]uint64 `json:"period"` // Number of seconds between blocks to enforce + ProducerDelay map[string]uint64 `json:"producerDelay"` // Number of seconds delay between two producer interval + Sprint map[string]uint64 `json:"sprint"` // Epoch length to proposer + BackupMultiplier map[string]uint64 `json:"backupMultiplier"` // Backup multiplier to determine the wiggle time + ValidatorContract string `json:"validatorContract"` // Validator set contract + StateReceiverContract string `json:"stateReceiverContract"` // State receiver contract + + OverrideStateSyncRecords map[string]int `json:"overrideStateSyncRecords"` // override state records count + BlockAlloc map[string]interface{} `json:"blockAlloc"` + + JaipurBlock *big.Int `json:"jaipurBlock"` // Jaipur switch block (nil = no fork, 0 = already on jaipur) + DelhiBlock *big.Int `json:"delhiBlock"` // Delhi switch block (nil = no fork, 0 = already on delhi) + IndoreBlock *big.Int `json:"indoreBlock"` // Indore switch block (nil = no fork, 0 = already on indore) + AgraBlock *big.Int `json:"agraBlock"` // Agra switch block (nil = no fork, 0 = already in agra) + StateSyncConfirmationDelay map[string]uint64 `json:"stateSyncConfirmationDelay"` // StateSync Confirmation Delay, in seconds, to calculate `to` + + ParallelUniverseBlock *big.Int `json:"parallelUniverseBlock"` // TODO: update all occurrence, change name and finalize number (hardfork for block-stm related changes) + + sprints sprints +} + +// String implements the stringer interface, returning the consensus engine details. +func (b *BorConfig) String() string { + return "bor" +} + +func (c *BorConfig) CalculateProducerDelay(number uint64) uint64 { + return borKeyValueConfigHelper(c.ProducerDelay, number) +} + +func (c *BorConfig) CalculateSprint(number uint64) uint64 { + if c.sprints == nil { + c.sprints = asSprints(c.Sprint) + } + + for i := 0; i < len(c.sprints)-1; i++ { + if number >= c.sprints[i].from && number < c.sprints[i+1].from { + return c.sprints[i].size + } + } + + return c.sprints[len(c.sprints)-1].size +} + +func (c *BorConfig) CalculateSprintCount(from, to uint64) int { + switch { + case from > to: + return 0 + case from < to: + to-- + } + + if c.sprints == nil { + c.sprints = asSprints(c.Sprint) + } + + count := uint64(0) + startCalc := from + + zeroth := func(boundary uint64, size uint64) uint64 { + if boundary%size == 0 { + return 1 + } + + return 0 + } + + for i := 0; i < len(c.sprints)-1; i++ { + if startCalc >= c.sprints[i].from && startCalc < c.sprints[i+1].from { + if to >= c.sprints[i].from && to < c.sprints[i+1].from { + if startCalc == to { + return int(count + zeroth(startCalc, c.sprints[i].size)) + } + return int(count + zeroth(startCalc, c.sprints[i].size) + (to-startCalc)/c.sprints[i].size) + } else { + endCalc := c.sprints[i+1].from - 1 + count += zeroth(startCalc, c.sprints[i].size) + (endCalc-startCalc)/c.sprints[i].size + startCalc = endCalc + 1 + } + } + } + + if startCalc == to { + return int(count + zeroth(startCalc, c.sprints[len(c.sprints)-1].size)) + } + + return int(count + zeroth(startCalc, c.sprints[len(c.sprints)-1].size) + (to-startCalc)/c.sprints[len(c.sprints)-1].size) +} + +func (c *BorConfig) CalculateBackupMultiplier(number uint64) uint64 { + return borKeyValueConfigHelper(c.BackupMultiplier, number) +} + +func (c *BorConfig) CalculatePeriod(number uint64) uint64 { + return borKeyValueConfigHelper(c.Period, number) +} + +func (c *BorConfig) IsJaipur(number uint64) bool { + return isForked(c.JaipurBlock, number) +} + +func (c *BorConfig) IsDelhi(number uint64) bool { + return isForked(c.DelhiBlock, number) +} + +func (c *BorConfig) IsIndore(number uint64) bool { + return isForked(c.IndoreBlock, number) +} + +// TODO: modify this function once the block number is finalized +func (c *BorConfig) IsParallelUniverse(number uint64) bool { + if c.ParallelUniverseBlock != nil { + if c.ParallelUniverseBlock.Cmp(big.NewInt(0)) == 0 { + return false + } + } + + return isForked(c.ParallelUniverseBlock, number) +} + +func (c *BorConfig) CalculateStateSyncDelay(number uint64) uint64 { + return borKeyValueConfigHelper(c.StateSyncConfirmationDelay, number) +} + +func borKeyValueConfigHelper[T uint64 | common.Address](field map[string]T, number uint64) T { + fieldUint := make(map[uint64]T) + for k, v := range field { + keyUint, err := strconv.ParseUint(k, 10, 64) + if err != nil { + panic(err) + } + fieldUint[keyUint] = v + } + + keys := common.SortedKeys(fieldUint) + + for i := 0; i < len(keys)-1; i++ { + if number >= keys[i] && number < keys[i+1] { + return fieldUint[keys[i]] + } + } + + return fieldUint[keys[len(keys)-1]] +} + +type sprint struct { + from, size uint64 +} + +type sprints []sprint + +func (s sprints) Len() int { + return len(s) +} + +func (s sprints) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s sprints) Less(i, j int) bool { + return s[i].from < s[j].from +} + +func asSprints(configSprints map[string]uint64) sprints { + sprints := make(sprints, len(configSprints)) + + i := 0 + for key, value := range configSprints { + sprints[i].from, _ = strconv.ParseUint(key, 10, 64) + sprints[i].size = value + i++ + } + + sort.Sort(sprints) + + return sprints +} + +// Rules is syntactic sugar over Config. It can be used for functions +// that do not have or require information about the block. +// +// Rules is a one time interface meaning that it shouldn't be used in between transition +// phases. +type Rules struct { + ChainID *big.Int + IsHomestead, IsTangerineWhistle, IsSpuriousDragon bool + IsByzantium, IsConstantinople, IsPetersburg, IsIstanbul bool + IsBerlin, IsLondon, IsShanghai, IsCancun, IsPrague bool + IsAura bool +} + +// Rules ensures c's ChainID is not nil and returns a new Rules instance +func (c *Config) Rules(num uint64, time uint64) *Rules { + chainID := c.ChainID + if chainID == nil { + chainID = new(big.Int) + } + + return &Rules{ + ChainID: new(big.Int).Set(chainID), + IsHomestead: c.IsHomestead(num), + IsTangerineWhistle: c.IsTangerineWhistle(num), + IsSpuriousDragon: c.IsSpuriousDragon(num), + IsByzantium: c.IsByzantium(num), + IsConstantinople: c.IsConstantinople(num), + IsPetersburg: c.IsPetersburg(num), + IsIstanbul: c.IsIstanbul(num), + IsBerlin: c.IsBerlin(num), + IsLondon: c.IsLondon(num), + IsShanghai: c.IsShanghai(time) || c.IsAgra(num), + IsCancun: c.IsCancun(time), + IsPrague: c.IsPrague(time), + IsAura: c.Aura != nil, + } +} + +// isForked returns whether a fork scheduled at block s is active at the given head block. +func isForked(s *big.Int, head uint64) bool { + if s == nil { + return false + } + return s.Uint64() <= head +} diff --git a/erigon-lib/chain/chain_config_test.go b/erigon-lib/chain/chain_config_test.go new file mode 100644 index 00000000000..990202dd1c7 --- /dev/null +++ b/erigon-lib/chain/chain_config_test.go @@ -0,0 +1,68 @@ +/* + Copyright 2023 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package chain + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/ledgerwatch/erigon-lib/common" +) + +func TestBorKeyValueConfigHelper(t *testing.T) { + backupMultiplier := map[string]uint64{ + "0": 2, + "25275000": 5, + "29638656": 2, + } + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 0), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 1), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 25275000-1), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 25275000), uint64(5)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 25275000+1), uint64(5)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 29638656-1), uint64(5)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 29638656), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(backupMultiplier, 29638656+1), uint64(2)) + + config := map[string]uint64{ + "0": 1, + "90000000": 2, + "100000000": 3, + } + assert.Equal(t, borKeyValueConfigHelper(config, 0), uint64(1)) + assert.Equal(t, borKeyValueConfigHelper(config, 1), uint64(1)) + assert.Equal(t, borKeyValueConfigHelper(config, 90000000-1), uint64(1)) + assert.Equal(t, borKeyValueConfigHelper(config, 90000000), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(config, 90000000+1), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(config, 100000000-1), uint64(2)) + assert.Equal(t, borKeyValueConfigHelper(config, 100000000), uint64(3)) + assert.Equal(t, borKeyValueConfigHelper(config, 100000000+1), uint64(3)) + + address1 := common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38") + address2 := common.HexToAddress("0x617b94CCCC2511808A3C9478ebb96f455CF167aA") + + burntContract := map[string]common.Address{ + "22640000": address1, + "41874000": address2, + } + assert.Equal(t, borKeyValueConfigHelper(burntContract, 22640000), address1) + assert.Equal(t, borKeyValueConfigHelper(burntContract, 22640000+1), address1) + assert.Equal(t, borKeyValueConfigHelper(burntContract, 41874000-1), address1) + assert.Equal(t, borKeyValueConfigHelper(burntContract, 41874000), address2) + assert.Equal(t, borKeyValueConfigHelper(burntContract, 41874000+1), address2) +} diff --git a/erigon-lib/chain/chain_db.go b/erigon-lib/chain/chain_db.go new file mode 100644 index 00000000000..6b41d708c6a --- /dev/null +++ b/erigon-lib/chain/chain_db.go @@ -0,0 +1,96 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package chain + +import ( + "encoding/binary" + "encoding/json" + "fmt" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" +) + +// GetConfig retrieves the consensus settings based on the given genesis hash. +func GetConfig(db kv.Getter, buf []byte) (*Config, error) { + hash, err := CanonicalHash(db, 0, buf) + if err != nil { + return nil, fmt.Errorf("failed ReadCanonicalHash: %w", err) + } + if hash == nil { + return nil, nil + } + data, err := db.GetOne(kv.ConfigTable, hash) + if err != nil { + return nil, err + } + if len(data) == 0 { + return nil, nil + } + var config Config + if err := json.Unmarshal(data, &config); err != nil { + return nil, fmt.Errorf("invalid chain config JSON: %s, %w", data, err) + } + return &config, nil +} + +func CanonicalHash(db kv.Getter, number uint64, buf []byte) ([]byte, error) { + buf = common.EnsureEnoughSize(buf, 8) + binary.BigEndian.PutUint64(buf, number) + data, err := db.GetOne(kv.HeaderCanonical, buf) + if err != nil { + return nil, fmt.Errorf("failed CanonicalHash: %w, number=%d", err, number) + } + if len(data) == 0 { + return nil, nil + } + + return data, nil +} + +// HeadHeaderHash retrieves the hash of the current canonical head header. +func HeadHeaderHash(db kv.Getter) ([]byte, error) { + data, err := db.GetOne(kv.HeadHeaderKey, []byte(kv.HeadHeaderKey)) + if err != nil { + return nil, fmt.Errorf("ReadHeadHeaderHash failed: %w", err) + } + return data, nil +} + +func CurrentBlockNumber(db kv.Getter) (*uint64, error) { + headHash, err := HeadHeaderHash(db) + if err != nil { + return nil, err + } + return HeaderNumber(db, headHash) +} + +// HeaderNumber returns the header number assigned to a hash. +func HeaderNumber(db kv.Getter, hash []byte) (*uint64, error) { + data, err := db.GetOne(kv.HeaderNumber, hash) + if err != nil { + return nil, fmt.Errorf("ReadHeaderNumber failed: %w", err) + } + if len(data) == 0 { + return nil, nil + } + if len(data) != 8 { + return nil, fmt.Errorf("ReadHeaderNumber got wrong data len: %d", len(data)) + } + number := binary.BigEndian.Uint64(data) + return &number, nil +} diff --git a/erigon-lib/chain/consensus.go b/erigon-lib/chain/consensus.go new file mode 100644 index 00000000000..bf7ec9fbacd --- /dev/null +++ b/erigon-lib/chain/consensus.go @@ -0,0 +1,10 @@ +package chain + +type ConsensusName string + +const ( + AuRaConsensus ConsensusName = "aura" + EtHashConsensus ConsensusName = "ethash" + CliqueConsensus ConsensusName = "clique" + BorConsensus ConsensusName = "bor" +) diff --git a/erigon-lib/chain/networkname/network_name.go b/erigon-lib/chain/networkname/network_name.go new file mode 100644 index 00000000000..877b3738976 --- /dev/null +++ b/erigon-lib/chain/networkname/network_name.go @@ -0,0 +1,29 @@ +package networkname + +const ( + MainnetChainName = "mainnet" + HoleskyChainName = "holesky" + SepoliaChainName = "sepolia" + GoerliChainName = "goerli" + DevChainName = "dev" + MumbaiChainName = "mumbai" + AmoyChainName = "amoy" + BorMainnetChainName = "bor-mainnet" + BorDevnetChainName = "bor-devnet" + GnosisChainName = "gnosis" + BorE2ETestChain2ValName = "bor-e2e-test-2Val" + ChiadoChainName = "chiado" +) + +var All = []string{ + MainnetChainName, + HoleskyChainName, + SepoliaChainName, + GoerliChainName, + MumbaiChainName, + AmoyChainName, + BorMainnetChainName, + BorDevnetChainName, + GnosisChainName, + ChiadoChainName, +} diff --git a/erigon-lib/chain/snapcfg/util.go b/erigon-lib/chain/snapcfg/util.go new file mode 100644 index 00000000000..8f5ecf2f3ae --- /dev/null +++ b/erigon-lib/chain/snapcfg/util.go @@ -0,0 +1,141 @@ +package snapcfg + +import ( + _ "embed" + "path/filepath" + "strconv" + "strings" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" + snapshothashes "github.com/ledgerwatch/erigon-snapshot" + "github.com/ledgerwatch/erigon-snapshot/webseed" + "github.com/pelletier/go-toml/v2" + "golang.org/x/exp/slices" +) + +var ( + Mainnet = fromToml(snapshothashes.Mainnet) + // Holesky = fromToml(snapshothashes.Holesky) + Sepolia = fromToml(snapshothashes.Sepolia) + Goerli = fromToml(snapshothashes.Goerli) + Mumbai = fromToml(snapshothashes.Mumbai) + Amoy = fromToml(snapshothashes.Amoy) + BorMainnet = fromToml(snapshothashes.BorMainnet) + Gnosis = fromToml(snapshothashes.Gnosis) + Chiado = fromToml(snapshothashes.Chiado) +) + +type PreverifiedItem struct { + Name string + Hash string +} +type Preverified []PreverifiedItem +type preverified map[string]string + +func fromToml(in []byte) (out Preverified) { + var outMap preverified + if err := toml.Unmarshal(in, &outMap); err != nil { + panic(err) + } + return doSort(outMap) +} +func doSort(in preverified) Preverified { + out := make(Preverified, 0, len(in)) + for k, v := range in { + out = append(out, PreverifiedItem{k, v}) + } + slices.SortFunc(out, func(i, j PreverifiedItem) int { return strings.Compare(i.Name, j.Name) }) + return out +} + +var ( + MainnetChainSnapshotCfg = newCfg(Mainnet) + // HoleskyChainSnapshotCfg = newCfg(Holesky, HoleskyHistory) + SepoliaChainSnapshotCfg = newCfg(Sepolia) + GoerliChainSnapshotCfg = newCfg(Goerli) + MumbaiChainSnapshotCfg = newCfg(Mumbai) + AmoyChainSnapshotCfg = newCfg(Amoy) + BorMainnetChainSnapshotCfg = newCfg(BorMainnet) + GnosisChainSnapshotCfg = newCfg(Gnosis) + ChiadoChainSnapshotCfg = newCfg(Chiado) +) + +func newCfg(preverified Preverified) *Cfg { + return &Cfg{ExpectBlocks: maxBlockNum(preverified), Preverified: preverified} +} + +func maxBlockNum(preverified Preverified) uint64 { + max := uint64(0) + for _, p := range preverified { + _, fileName := filepath.Split(p.Name) + ext := filepath.Ext(fileName) + if ext != ".seg" { + continue + } + onlyName := fileName[:len(fileName)-len(ext)] + parts := strings.Split(onlyName, "-") + if parts[3] != "headers" { + continue + } + to, err := strconv.ParseUint(parts[2], 10, 64) + if err != nil { + panic(err) + } + if max < to { + max = to + } + } + if max == 0 { // to prevent underflow + return 0 + } + return max*1_000 - 1 +} + +type Cfg struct { + ExpectBlocks uint64 + Preverified Preverified +} + +var KnownCfgs = map[string]*Cfg{ + networkname.MainnetChainName: MainnetChainSnapshotCfg, + // networkname.HoleskyChainName: HoleskyChainSnapshotCfg, + networkname.SepoliaChainName: SepoliaChainSnapshotCfg, + networkname.GoerliChainName: GoerliChainSnapshotCfg, + networkname.MumbaiChainName: MumbaiChainSnapshotCfg, + networkname.AmoyChainName: AmoyChainSnapshotCfg, + networkname.BorMainnetChainName: BorMainnetChainSnapshotCfg, + networkname.GnosisChainName: GnosisChainSnapshotCfg, + networkname.ChiadoChainName: ChiadoChainSnapshotCfg, +} + +// KnownCfg return list of preverified hashes for given network, but apply whiteList filter if it's not empty +func KnownCfg(networkName string) *Cfg { + c, ok := KnownCfgs[networkName] + if !ok { + return newCfg(Preverified{}) + } + return newCfg(c.Preverified) +} + +var KnownWebseeds = map[string][]string{ + networkname.MainnetChainName: webseedsParse(webseed.Mainnet), + networkname.SepoliaChainName: webseedsParse(webseed.Sepolia), + networkname.GoerliChainName: webseedsParse(webseed.Goerli), + networkname.MumbaiChainName: webseedsParse(webseed.Mumbai), + networkname.AmoyChainName: webseedsParse(webseed.Amoy), + networkname.BorMainnetChainName: webseedsParse(webseed.BorMainnet), + networkname.GnosisChainName: webseedsParse(webseed.Gnosis), + networkname.ChiadoChainName: webseedsParse(webseed.Chiado), +} + +func webseedsParse(in []byte) (res []string) { + a := map[string]string{} + if err := toml.Unmarshal(in, &a); err != nil { + panic(err) + } + for _, l := range a { + res = append(res, l) + } + slices.Sort(res) + return res +} diff --git a/erigon-lib/commitment/bin_patricia_hashed.go b/erigon-lib/commitment/bin_patricia_hashed.go new file mode 100644 index 00000000000..0c4aebdb637 --- /dev/null +++ b/erigon-lib/commitment/bin_patricia_hashed.go @@ -0,0 +1,1818 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package commitment + +import ( + "bytes" + "encoding/binary" + "encoding/hex" + "fmt" + "io" + "math/bits" + + "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" + "golang.org/x/crypto/sha3" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/rlp" +) + +const ( + maxKeySize = 512 + halfKeySize = maxKeySize / 2 + maxChild = 2 +) + +type bitstring []uint8 + +// converts slice of nibbles (lowest 4 bits of each byte) to bitstring +func hexToBin(hex []byte) bitstring { + bin := make([]byte, 4*len(hex)) + for i := range bin { + if hex[i/4]&(1<<(3-i%4)) != 0 { + bin[i] = 1 + } + } + return bin +} + +// encodes bitstring to its compact representation +func binToCompact(bin []byte) []byte { + compact := make([]byte, 2+common.BitLenToByteLen(len(bin))) + binary.BigEndian.PutUint16(compact, uint16(len(bin))) + for i := 0; i < len(bin); i++ { + if bin[i] != 0 { + compact[2+i/8] |= byte(1) << (i % 8) + } + } + return compact +} + +// decodes compact bitstring representation into actual bitstring +func compactToBin(compact []byte) []byte { + bin := make([]byte, binary.BigEndian.Uint16(compact)) + for i := 0; i < len(bin); i++ { + if compact[2+i/8]&(byte(1)<<(i%8)) == 0 { + bin[i] = 0 + } else { + bin[i] = 1 + } + } + return bin +} + +// BinHashed implements commitment based on patricia merkle tree with radix 16, +// with keys pre-hashed by keccak256 +type BinPatriciaHashed struct { + root BinaryCell // Root cell of the tree + // Rows of the grid correspond to the level of depth in the patricia tree + // Columns of the grid correspond to pointers to the nodes further from the root + grid [maxKeySize][maxChild]BinaryCell // First halfKeySize rows of this grid are for account trie, and next halfKeySize rows are for storage trie + // How many rows (starting from row 0) are currently active and have corresponding selected columns + // Last active row does not have selected column + activeRows int + // Length of the key that reflects current positioning of the grid. It maybe larger than number of active rows, + // if a account leaf cell represents multiple nibbles in the key + currentKeyLen int + currentKey [maxKeySize]byte // For each row indicates which column is currently selected + depths [maxKeySize]int // For each row, the depth of cells in that row + rootChecked bool // Set to false if it is not known whether the root is empty, set to true if it is checked + rootTouched bool + rootPresent bool + branchBefore [maxKeySize]bool // For each row, whether there was a branch node in the database loaded in unfold + touchMap [maxKeySize]uint16 // For each row, bitmap of cells that were either present before modification, or modified or deleted + afterMap [maxKeySize]uint16 // For each row, bitmap of cells that were present after modification + keccak keccakState + keccak2 keccakState + accountKeyLen int + trace bool + hashAuxBuffer [maxKeySize]byte // buffer to compute cell hash or write hash-related things + auxBuffer *bytes.Buffer // auxiliary buffer used during branch updates encoding + + // Function used to load branch node and fill up the cells + // For each cell, it sets the cell type, clears the modified flag, fills the hash, + // and for the extension, account, and leaf type, the `l` and `k` + branchFn func(prefix []byte) ([]byte, error) + // Function used to fetch account with given plain key + accountFn func(plainKey []byte, cell *BinaryCell) error + // Function used to fetch account with given plain key + storageFn func(plainKey []byte, cell *BinaryCell) error +} + +func NewBinPatriciaHashed(accountKeyLen int, + branchFn func(prefix []byte) ([]byte, error), + accountFn func(plainKey []byte, cell *Cell) error, + storageFn func(plainKey []byte, cell *Cell) error, +) *BinPatriciaHashed { + return &BinPatriciaHashed{ + keccak: sha3.NewLegacyKeccak256().(keccakState), + keccak2: sha3.NewLegacyKeccak256().(keccakState), + accountKeyLen: accountKeyLen, + branchFn: branchFn, + accountFn: wrapAccountStorageFn(accountFn), + storageFn: wrapAccountStorageFn(storageFn), + auxBuffer: bytes.NewBuffer(make([]byte, 8192)), + } +} + +type BinaryCell struct { + h [length.Hash]byte // cell hash + hl int // Length of the hash (or embedded) + apk [length.Addr]byte // account plain key + apl int // length of account plain key + spk [length.Addr + length.Hash]byte // storage plain key + spl int // length of the storage plain key + downHashedKey [maxKeySize]byte + downHashedLen int + extension [halfKeySize]byte + extLen int + Nonce uint64 + Balance uint256.Int + CodeHash [length.Hash]byte // hash of the bytecode + Storage [length.Hash]byte + StorageLen int + Delete bool +} + +func (cell *BinaryCell) unwrapToHexCell() (cl *Cell) { + cl = new(Cell) + cl.Balance = *cell.Balance.Clone() + cl.Nonce = cell.Nonce + cl.StorageLen = cell.StorageLen + cl.apl = cell.apl + cl.spl = cell.spl + cl.hl = cell.hl + + copy(cl.apk[:], cell.apk[:]) + copy(cl.spk[:], cell.spk[:]) + copy(cl.h[:], cell.h[:]) + + if cell.extLen > 0 { + compactedExt := binToCompact(cell.extension[:cell.extLen]) + copy(cl.extension[:], compactedExt) + cl.extLen = len(compactedExt) + } + if cell.downHashedLen > 0 { + compactedDHK := binToCompact(cell.downHashedKey[:cell.downHashedLen]) + copy(cl.downHashedKey[:], compactedDHK) + cl.downHashedLen = len(compactedDHK) + } + + copy(cl.CodeHash[:], cell.CodeHash[:]) + copy(cl.Storage[:], cell.Storage[:]) + cl.Delete = cell.Delete + return cl +} + +var ( // TODO REEAVL + EmptyBinRootHash, _ = hex.DecodeString("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") + EmptyBinCodeHash, _ = hex.DecodeString("c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470") +) + +func (cell *BinaryCell) fillEmpty() { + cell.apl = 0 + cell.spl = 0 + cell.downHashedLen = 0 + cell.extLen = 0 + cell.hl = 0 + cell.Nonce = 0 + cell.Balance.Clear() + copy(cell.CodeHash[:], EmptyCodeHash) + cell.StorageLen = 0 + cell.Delete = false +} + +func (cell *BinaryCell) fillFromUpperCell(upBinaryCell *BinaryCell, depth, depthIncrement int) { + if upBinaryCell.downHashedLen >= depthIncrement { + cell.downHashedLen = upBinaryCell.downHashedLen - depthIncrement + } else { + cell.downHashedLen = 0 + } + if upBinaryCell.downHashedLen > depthIncrement { + copy(cell.downHashedKey[:], upBinaryCell.downHashedKey[depthIncrement:upBinaryCell.downHashedLen]) + } + if upBinaryCell.extLen >= depthIncrement { + cell.extLen = upBinaryCell.extLen - depthIncrement + } else { + cell.extLen = 0 + } + if upBinaryCell.extLen > depthIncrement { + copy(cell.extension[:], upBinaryCell.extension[depthIncrement:upBinaryCell.extLen]) + } + if depth <= halfKeySize { + cell.apl = upBinaryCell.apl + if upBinaryCell.apl > 0 { + copy(cell.apk[:], upBinaryCell.apk[:cell.apl]) + cell.Balance.Set(&upBinaryCell.Balance) + cell.Nonce = upBinaryCell.Nonce + copy(cell.CodeHash[:], upBinaryCell.CodeHash[:]) + cell.extLen = upBinaryCell.extLen + if upBinaryCell.extLen > 0 { + copy(cell.extension[:], upBinaryCell.extension[:upBinaryCell.extLen]) + } + } + } else { + cell.apl = 0 + } + cell.spl = upBinaryCell.spl + if upBinaryCell.spl > 0 { + copy(cell.spk[:], upBinaryCell.spk[:upBinaryCell.spl]) + cell.StorageLen = upBinaryCell.StorageLen + if upBinaryCell.StorageLen > 0 { + copy(cell.Storage[:], upBinaryCell.Storage[:upBinaryCell.StorageLen]) + } + } + cell.hl = upBinaryCell.hl + if upBinaryCell.hl > 0 { + copy(cell.h[:], upBinaryCell.h[:upBinaryCell.hl]) + } +} + +func (cell *BinaryCell) fillFromLowerBinaryCell(lowBinaryCell *BinaryCell, lowDepth int, preExtension []byte, nibble int) { + if lowBinaryCell.apl > 0 || lowDepth < halfKeySize { + cell.apl = lowBinaryCell.apl + } + if lowBinaryCell.apl > 0 { + copy(cell.apk[:], lowBinaryCell.apk[:cell.apl]) + cell.Balance.Set(&lowBinaryCell.Balance) + cell.Nonce = lowBinaryCell.Nonce + copy(cell.CodeHash[:], lowBinaryCell.CodeHash[:]) + } + cell.spl = lowBinaryCell.spl + if lowBinaryCell.spl > 0 { + copy(cell.spk[:], lowBinaryCell.spk[:cell.spl]) + cell.StorageLen = lowBinaryCell.StorageLen + if lowBinaryCell.StorageLen > 0 { + copy(cell.Storage[:], lowBinaryCell.Storage[:lowBinaryCell.StorageLen]) + } + } + if lowBinaryCell.hl > 0 { + if (lowBinaryCell.apl == 0 && lowDepth < halfKeySize) || (lowBinaryCell.spl == 0 && lowDepth > halfKeySize) { + // Extension is related to either accounts branch node, or storage branch node, we prepend it by preExtension | nibble + if len(preExtension) > 0 { + copy(cell.extension[:], preExtension) + } + cell.extension[len(preExtension)] = byte(nibble) + if lowBinaryCell.extLen > 0 { + copy(cell.extension[1+len(preExtension):], lowBinaryCell.extension[:lowBinaryCell.extLen]) + } + cell.extLen = lowBinaryCell.extLen + 1 + len(preExtension) + } else { + // Extension is related to a storage branch node, so we copy it upwards as is + cell.extLen = lowBinaryCell.extLen + if lowBinaryCell.extLen > 0 { + copy(cell.extension[:], lowBinaryCell.extension[:lowBinaryCell.extLen]) + } + } + } + cell.hl = lowBinaryCell.hl + if lowBinaryCell.hl > 0 { + copy(cell.h[:], lowBinaryCell.h[:lowBinaryCell.hl]) + } +} + +func (cell *BinaryCell) deriveHashedKeys(depth int, keccak keccakState, accountKeyLen int) error { + extraLen := 0 + if cell.apl > 0 { + if depth > halfKeySize { + return fmt.Errorf("deriveHashedKeys accountPlainKey present at depth > halfKeySize") + } + extraLen = halfKeySize - depth + } + if cell.spl > 0 { + if depth >= halfKeySize { + extraLen = maxKeySize - depth + } else { + extraLen += halfKeySize + } + } + if extraLen > 0 { + if cell.downHashedLen > 0 { + copy(cell.downHashedKey[extraLen:], cell.downHashedKey[:cell.downHashedLen]) + } + cell.downHashedLen += extraLen + var hashedKeyOffset, downOffset int + if cell.apl > 0 { + if err := binHashKey(keccak, cell.apk[:cell.apl], cell.downHashedKey[:], depth); err != nil { + return err + } + downOffset = halfKeySize - depth + } + if cell.spl > 0 { + if depth >= halfKeySize { + hashedKeyOffset = depth - halfKeySize + } + if err := binHashKey(keccak, cell.spk[accountKeyLen:cell.spl], cell.downHashedKey[downOffset:], hashedKeyOffset); err != nil { + return err + } + } + } + return nil +} + +func (cell *BinaryCell) fillFromFields(data []byte, pos int, fieldBits PartFlags) (int, error) { + if fieldBits&HashedKeyPart != 0 { + l, n := binary.Uvarint(data[pos:]) + if n == 0 { + return 0, fmt.Errorf("fillFromFields buffer too small for hashedKey len") + } else if n < 0 { + return 0, fmt.Errorf("fillFromFields value overflow for hashedKey len") + } + pos += n + if len(data) < pos+int(l) { + return 0, fmt.Errorf("fillFromFields buffer too small for hashedKey exp %d got %d", pos+int(l), len(data)) + } + cell.downHashedLen = int(l) + cell.extLen = int(l) + if l > 0 { + copy(cell.downHashedKey[:], data[pos:pos+int(l)]) + copy(cell.extension[:], data[pos:pos+int(l)]) + pos += int(l) + } + } else { + cell.downHashedLen = 0 + cell.extLen = 0 + } + if fieldBits&AccountPlainPart != 0 { + l, n := binary.Uvarint(data[pos:]) + if n == 0 { + return 0, fmt.Errorf("fillFromFields buffer too small for accountPlainKey len") + } else if n < 0 { + return 0, fmt.Errorf("fillFromFields value overflow for accountPlainKey len") + } + pos += n + if len(data) < pos+int(l) { + return 0, fmt.Errorf("fillFromFields buffer too small for accountPlainKey") + } + cell.apl = int(l) + if l > 0 { + copy(cell.apk[:], data[pos:pos+int(l)]) + pos += int(l) + } + } else { + cell.apl = 0 + } + if fieldBits&StoragePlainPart != 0 { + l, n := binary.Uvarint(data[pos:]) + if n == 0 { + return 0, fmt.Errorf("fillFromFields buffer too small for storagePlainKey len") + } else if n < 0 { + return 0, fmt.Errorf("fillFromFields value overflow for storagePlainKey len") + } + pos += n + if len(data) < pos+int(l) { + return 0, fmt.Errorf("fillFromFields buffer too small for storagePlainKey") + } + cell.spl = int(l) + if l > 0 { + copy(cell.spk[:], data[pos:pos+int(l)]) + pos += int(l) + } + } else { + cell.spl = 0 + } + if fieldBits&HashPart != 0 { + l, n := binary.Uvarint(data[pos:]) + if n == 0 { + return 0, fmt.Errorf("fillFromFields buffer too small for hash len") + } else if n < 0 { + return 0, fmt.Errorf("fillFromFields value overflow for hash len") + } + pos += n + if len(data) < pos+int(l) { + return 0, fmt.Errorf("fillFromFields buffer too small for hash") + } + cell.hl = int(l) + if l > 0 { + copy(cell.h[:], data[pos:pos+int(l)]) + pos += int(l) + } + } else { + cell.hl = 0 + } + return pos, nil +} + +func (cell *BinaryCell) setStorage(value []byte) { + cell.StorageLen = len(value) + if len(value) > 0 { + copy(cell.Storage[:], value) + } +} + +func (cell *BinaryCell) setAccountFields(codeHash []byte, balance *uint256.Int, nonce uint64) { + copy(cell.CodeHash[:], codeHash) + + cell.Balance.SetBytes(balance.Bytes()) + cell.Nonce = nonce +} + +func (cell *BinaryCell) accountForHashing(buffer []byte, storageRootHash [length.Hash]byte) int { + balanceBytes := 0 + if !cell.Balance.LtUint64(128) { + balanceBytes = cell.Balance.ByteLen() + } + + var nonceBytes int + if cell.Nonce < 128 && cell.Nonce != 0 { + nonceBytes = 0 + } else { + nonceBytes = common.BitLenToByteLen(bits.Len64(cell.Nonce)) + } + + var structLength = uint(balanceBytes + nonceBytes + 2) + structLength += 66 // Two 32-byte arrays + 2 prefixes + + var pos int + if structLength < 56 { + buffer[0] = byte(192 + structLength) + pos = 1 + } else { + lengthBytes := common.BitLenToByteLen(bits.Len(structLength)) + buffer[0] = byte(247 + lengthBytes) + + for i := lengthBytes; i > 0; i-- { + buffer[i] = byte(structLength) + structLength >>= 8 + } + + pos = lengthBytes + 1 + } + + // Encoding nonce + if cell.Nonce < 128 && cell.Nonce != 0 { + buffer[pos] = byte(cell.Nonce) + } else { + buffer[pos] = byte(128 + nonceBytes) + var nonce = cell.Nonce + for i := nonceBytes; i > 0; i-- { + buffer[pos+i] = byte(nonce) + nonce >>= 8 + } + } + pos += 1 + nonceBytes + + // Encoding balance + if cell.Balance.LtUint64(128) && !cell.Balance.IsZero() { + buffer[pos] = byte(cell.Balance.Uint64()) + pos++ + } else { + buffer[pos] = byte(128 + balanceBytes) + pos++ + cell.Balance.WriteToSlice(buffer[pos : pos+balanceBytes]) + pos += balanceBytes + } + + // Encoding Root and CodeHash + buffer[pos] = 128 + 32 + pos++ + copy(buffer[pos:], storageRootHash[:]) + pos += 32 + buffer[pos] = 128 + 32 + pos++ + copy(buffer[pos:], cell.CodeHash[:]) + pos += 32 + return pos +} + +func (bph *BinPatriciaHashed) completeLeafHash(buf, keyPrefix []byte, kp, kl, compactLen int, key []byte, compact0 byte, ni int, val rlp.RlpSerializable, singleton bool) ([]byte, error) { + totalLen := kp + kl + val.DoubleRLPLen() + var lenPrefix [4]byte + pt := rlp.GenerateStructLen(lenPrefix[:], totalLen) + embedded := !singleton && totalLen+pt < length.Hash + var writer io.Writer + if embedded { + //bph.byteArrayWriter.Setup(buf) + bph.auxBuffer.Reset() + writer = bph.auxBuffer + } else { + bph.keccak.Reset() + writer = bph.keccak + } + if _, err := writer.Write(lenPrefix[:pt]); err != nil { + return nil, err + } + if _, err := writer.Write(keyPrefix[:kp]); err != nil { + return nil, err + } + var b [1]byte + b[0] = compact0 + if _, err := writer.Write(b[:]); err != nil { + return nil, err + } + for i := 1; i < compactLen; i++ { + b[0] = key[ni]*16 + key[ni+1] + if _, err := writer.Write(b[:]); err != nil { + return nil, err + } + ni += 2 + } + var prefixBuf [8]byte + if err := val.ToDoubleRLP(writer, prefixBuf[:]); err != nil { + return nil, err + } + if embedded { + buf = bph.auxBuffer.Bytes() + } else { + var hashBuf [33]byte + hashBuf[0] = 0x80 + length.Hash + if _, err := bph.keccak.Read(hashBuf[1:]); err != nil { + return nil, err + } + buf = append(buf, hashBuf[:]...) + } + return buf, nil +} + +func (bph *BinPatriciaHashed) leafHashWithKeyVal(buf, key []byte, val rlp.RlpSerializableBytes, singleton bool) ([]byte, error) { + // Compute the total length of binary representation + var kp, kl int + // Write key + var compactLen int + var ni int + var compact0 byte + compactLen = (len(key)-1)/2 + 1 + if len(key)&1 == 0 { + compact0 = 0x30 + key[0] // Odd: (3<<4) + first nibble + ni = 1 + } else { + compact0 = 0x20 + } + var keyPrefix [1]byte + if compactLen > 1 { + keyPrefix[0] = 0x80 + byte(compactLen) + kp = 1 + kl = compactLen + } else { + kl = 1 + } + return bph.completeLeafHash(buf, keyPrefix[:], kp, kl, compactLen, key, compact0, ni, val, singleton) +} + +func (bph *BinPatriciaHashed) accountLeafHashWithKey(buf, key []byte, val rlp.RlpSerializable) ([]byte, error) { + // Compute the total length of binary representation + var kp, kl int + // Write key + var compactLen int + var ni int + var compact0 byte + if hasTerm(key) { + compactLen = (len(key)-1)/2 + 1 + if len(key)&1 == 0 { + compact0 = 48 + key[0] // Odd (1<<4) + first nibble + ni = 1 + } else { + compact0 = 32 + } + } else { + compactLen = len(key)/2 + 1 + if len(key)&1 == 1 { + compact0 = 16 + key[0] // Odd (1<<4) + first nibble + ni = 1 + } + } + var keyPrefix [1]byte + if compactLen > 1 { + keyPrefix[0] = byte(128 + compactLen) + kp = 1 + kl = compactLen + } else { + kl = 1 + } + return bph.completeLeafHash(buf, keyPrefix[:], kp, kl, compactLen, key, compact0, ni, val, true) +} + +func (bph *BinPatriciaHashed) extensionHash(key []byte, hash []byte) ([length.Hash]byte, error) { + var hashBuf [length.Hash]byte + + // Compute the total length of binary representation + var kp, kl int + // Write key + var compactLen int + var ni int + var compact0 byte + if hasTerm(key) { + compactLen = (len(key)-1)/2 + 1 + if len(key)&1 == 0 { + compact0 = 0x30 + key[0] // Odd: (3<<4) + first nibble + ni = 1 + } else { + compact0 = 0x20 + } + } else { + compactLen = len(key)/2 + 1 + if len(key)&1 == 1 { + compact0 = 0x10 + key[0] // Odd: (1<<4) + first nibble + ni = 1 + } + } + var keyPrefix [1]byte + if compactLen > 1 { + keyPrefix[0] = 0x80 + byte(compactLen) + kp = 1 + kl = compactLen + } else { + kl = 1 + } + totalLen := kp + kl + 33 + var lenPrefix [4]byte + pt := rlp.GenerateStructLen(lenPrefix[:], totalLen) + bph.keccak.Reset() + if _, err := bph.keccak.Write(lenPrefix[:pt]); err != nil { + return hashBuf, err + } + if _, err := bph.keccak.Write(keyPrefix[:kp]); err != nil { + return hashBuf, err + } + var b [1]byte + b[0] = compact0 + if _, err := bph.keccak.Write(b[:]); err != nil { + return hashBuf, err + } + for i := 1; i < compactLen; i++ { + b[0] = key[ni]*16 + key[ni+1] + if _, err := bph.keccak.Write(b[:]); err != nil { + return hashBuf, err + } + ni += 2 + } + b[0] = 0x80 + length.Hash + if _, err := bph.keccak.Write(b[:]); err != nil { + return hashBuf, err + } + if _, err := bph.keccak.Write(hash); err != nil { + return hashBuf, err + } + // Replace previous hash with the new one + if _, err := bph.keccak.Read(hashBuf[:]); err != nil { + return hashBuf, err + } + return hashBuf, nil +} + +func (bph *BinPatriciaHashed) computeBinaryCellHashLen(cell *BinaryCell, depth int) int { + if cell.spl > 0 && depth >= halfKeySize { + keyLen := 128 - depth + 1 // Length of hex key with terminator character + var kp, kl int + compactLen := (keyLen-1)/2 + 1 + if compactLen > 1 { + kp = 1 + kl = compactLen + } else { + kl = 1 + } + val := rlp.RlpSerializableBytes(cell.Storage[:cell.StorageLen]) + totalLen := kp + kl + val.DoubleRLPLen() + var lenPrefix [4]byte + pt := rlp.GenerateStructLen(lenPrefix[:], totalLen) + if totalLen+pt < length.Hash { + return totalLen + pt + } + } + return length.Hash + 1 +} + +func (bph *BinPatriciaHashed) computeBinaryCellHash(cell *BinaryCell, depth int, buf []byte) ([]byte, error) { + var err error + var storageRootHash [length.Hash]byte + storageRootHashIsSet := false + if cell.spl > 0 { + var hashedKeyOffset int + if depth >= halfKeySize { + hashedKeyOffset = depth - halfKeySize + } + singleton := depth <= halfKeySize + if err := binHashKey(bph.keccak, cell.spk[bph.accountKeyLen:cell.spl], cell.downHashedKey[:], hashedKeyOffset); err != nil { + return nil, err + } + cell.downHashedKey[halfKeySize-hashedKeyOffset] = 16 // Add terminator + if singleton { + if bph.trace { + fmt.Printf("leafHashWithKeyVal(singleton) for [%x]=>[%x]\n", cell.downHashedKey[:halfKeySize-hashedKeyOffset+1], cell.Storage[:cell.StorageLen]) + } + aux := make([]byte, 0, 33) + if aux, err = bph.leafHashWithKeyVal(aux, cell.downHashedKey[:halfKeySize-hashedKeyOffset+1], cell.Storage[:cell.StorageLen], true); err != nil { + return nil, err + } + storageRootHash = *(*[length.Hash]byte)(aux[1:]) + storageRootHashIsSet = true + } else { + if bph.trace { + fmt.Printf("leafHashWithKeyVal for [%x]=>[%x]\n", cell.downHashedKey[:halfKeySize-hashedKeyOffset+1], cell.Storage[:cell.StorageLen]) + } + return bph.leafHashWithKeyVal(buf, cell.downHashedKey[:halfKeySize-hashedKeyOffset+1], cell.Storage[:cell.StorageLen], false) + } + } + if cell.apl > 0 { + if err := binHashKey(bph.keccak, cell.apk[:cell.apl], cell.downHashedKey[:], depth); err != nil { + return nil, err + } + cell.downHashedKey[halfKeySize-depth] = 16 // Add terminator + if !storageRootHashIsSet { + if cell.extLen > 0 { + // Extension + if cell.hl > 0 { + if bph.trace { + fmt.Printf("extensionHash for [%x]=>[%x]\n", cell.extension[:cell.extLen], cell.h[:cell.hl]) + } + if storageRootHash, err = bph.extensionHash(cell.extension[:cell.extLen], cell.h[:cell.hl]); err != nil { + return nil, err + } + } else { + return nil, fmt.Errorf("computeBinaryCellHash extension without hash") + } + } else if cell.hl > 0 { + storageRootHash = cell.h + } else { + storageRootHash = *(*[length.Hash]byte)(EmptyRootHash) + } + } + var valBuf [128]byte + valLen := cell.accountForHashing(valBuf[:], storageRootHash) + if bph.trace { + fmt.Printf("accountLeafHashWithKey for [%x]=>[%x]\n", bph.hashAuxBuffer[:halfKeySize+1-depth], valBuf[:valLen]) + } + return bph.accountLeafHashWithKey(buf, cell.downHashedKey[:halfKeySize+1-depth], rlp.RlpEncodedBytes(valBuf[:valLen])) + } + buf = append(buf, 0x80+32) + if cell.extLen > 0 { + // Extension + if cell.hl > 0 { + if bph.trace { + fmt.Printf("extensionHash for [%x]=>[%x]\n", cell.extension[:cell.extLen], cell.h[:cell.hl]) + } + var hash [length.Hash]byte + if hash, err = bph.extensionHash(cell.extension[:cell.extLen], cell.h[:cell.hl]); err != nil { + return nil, err + } + buf = append(buf, hash[:]...) + } else { + return nil, fmt.Errorf("computeBinaryCellHash extension without hash") + } + } else if cell.hl > 0 { + buf = append(buf, cell.h[:cell.hl]...) + } else { + buf = append(buf, EmptyRootHash...) + } + return buf, nil +} + +func (bph *BinPatriciaHashed) needUnfolding(hashedKey []byte) int { + var cell *BinaryCell + var depth int + if bph.activeRows == 0 { + if bph.trace { + fmt.Printf("needUnfolding root, rootChecked = %t\n", bph.rootChecked) + } + if bph.rootChecked && bph.root.downHashedLen == 0 && bph.root.hl == 0 { + // Previously checked, empty root, no unfolding needed + return 0 + } + cell = &bph.root + if cell.downHashedLen == 0 && cell.hl == 0 && !bph.rootChecked { + // Need to attempt to unfold the root + return 1 + } + } else { + col := int(hashedKey[bph.currentKeyLen]) + cell = &bph.grid[bph.activeRows-1][col] + depth = bph.depths[bph.activeRows-1] + if bph.trace { + fmt.Printf("needUnfolding cell (%d, %x), currentKey=[%x], depth=%d, cell.h=[%x]\n", bph.activeRows-1, col, bph.currentKey[:bph.currentKeyLen], depth, cell.h[:cell.hl]) + } + } + if len(hashedKey) <= depth { + return 0 + } + if cell.downHashedLen == 0 { + if cell.hl == 0 { + // cell is empty, no need to unfold further + return 0 + } + // unfold branch node + return 1 + } + cpl := commonPrefixLen(hashedKey[depth:], cell.downHashedKey[:cell.downHashedLen-1]) + if bph.trace { + fmt.Printf("cpl=%d, cell.downHashedKey=[%x], depth=%d, hashedKey[depth:]=[%x]\n", cpl, cell.downHashedKey[:cell.downHashedLen], depth, hashedKey[depth:]) + } + unfolding := cpl + 1 + if depth < halfKeySize && depth+unfolding > halfKeySize { + // This is to make sure that unfolding always breaks at the level where storage subtrees start + unfolding = halfKeySize - depth + if bph.trace { + fmt.Printf("adjusted unfolding=%d\n", unfolding) + } + } + return unfolding +} + +// unfoldBranchNode returns true if unfolding has been done +func (bph *BinPatriciaHashed) unfoldBranchNode(row int, deleted bool, depth int) (bool, error) { + branchData, err := bph.branchFn(binToCompact(bph.currentKey[:bph.currentKeyLen])) + if err != nil { + return false, err + } + if !bph.rootChecked && bph.currentKeyLen == 0 && len(branchData) == 0 { + // Special case - empty or deleted root + bph.rootChecked = true + return false, nil + } + if len(branchData) == 0 { + log.Warn("got empty branch data during unfold", "row", row, "depth", depth, "deleted", deleted) + } + bph.branchBefore[row] = true + bitmap := binary.BigEndian.Uint16(branchData[0:]) + pos := 2 + if deleted { + // All cells come as deleted (touched but not present after) + bph.afterMap[row] = 0 + bph.touchMap[row] = bitmap + } else { + bph.afterMap[row] = bitmap + bph.touchMap[row] = 0 + } + //fmt.Printf("unfoldBranchNode [%x], afterMap = [%016b], touchMap = [%016b]\n", branchData, bph.afterMap[row], bph.touchMap[row]) + // Loop iterating over the set bits of modMask + for bitset, j := bitmap, 0; bitset != 0; j++ { + bit := bitset & -bitset + nibble := bits.TrailingZeros16(bit) + cell := &bph.grid[row][nibble] + fieldBits := branchData[pos] + pos++ + var err error + if pos, err = cell.fillFromFields(branchData, pos, PartFlags(fieldBits)); err != nil { + return false, fmt.Errorf("prefix [%x], branchData[%x]: %w", bph.currentKey[:bph.currentKeyLen], branchData, err) + } + if bph.trace { + fmt.Printf("cell (%d, %x) depth=%d, hash=[%x], a=[%x], s=[%x], ex=[%x]\n", row, nibble, depth, cell.h[:cell.hl], cell.apk[:cell.apl], cell.spk[:cell.spl], cell.extension[:cell.extLen]) + } + if cell.apl > 0 { + bph.accountFn(cell.apk[:cell.apl], cell) + if bph.trace { + fmt.Printf("accountFn[%x] return balance=%d, nonce=%d code=%x\n", cell.apk[:cell.apl], &cell.Balance, cell.Nonce, cell.CodeHash[:]) + } + } + if cell.spl > 0 { + bph.storageFn(cell.spk[:cell.spl], cell) + } + if err = cell.deriveHashedKeys(depth, bph.keccak, bph.accountKeyLen); err != nil { + return false, err + } + bitset ^= bit + } + return true, nil +} + +func (bph *BinPatriciaHashed) unfold(hashedKey []byte, unfolding int) error { + if bph.trace { + fmt.Printf("unfold %d: activeRows: %d\n", unfolding, bph.activeRows) + } + var upCell *BinaryCell + var touched, present bool + var col byte + var upDepth, depth int + if bph.activeRows == 0 { + if bph.rootChecked && bph.root.hl == 0 && bph.root.downHashedLen == 0 { + // No unfolding for empty root + return nil + } + upCell = &bph.root + touched = bph.rootTouched + present = bph.rootPresent + if bph.trace { + fmt.Printf("unfold root, touched %t, present %t, column %d\n", touched, present, col) + } + } else { + upDepth = bph.depths[bph.activeRows-1] + col = hashedKey[upDepth-1] + upCell = &bph.grid[bph.activeRows-1][col] + touched = bph.touchMap[bph.activeRows-1]&(uint16(1)<= unfolding { + depth = upDepth + unfolding + nibble := upCell.downHashedKey[unfolding-1] + if touched { + bph.touchMap[row] = uint16(1) << nibble + } + if present { + bph.afterMap[row] = uint16(1) << nibble + } + cell := &bph.grid[row][nibble] + cell.fillFromUpperCell(upCell, depth, unfolding) + if bph.trace { + fmt.Printf("cell (%d, %x) depth=%d\n", row, nibble, depth) + } + if row >= halfKeySize { + cell.apl = 0 + } + if unfolding > 1 { + copy(bph.currentKey[bph.currentKeyLen:], upCell.downHashedKey[:unfolding-1]) + } + bph.currentKeyLen += unfolding - 1 + } else { + // upCell.downHashedLen < unfolding + depth = upDepth + upCell.downHashedLen + nibble := upCell.downHashedKey[upCell.downHashedLen-1] + if touched { + bph.touchMap[row] = uint16(1) << nibble + } + if present { + bph.afterMap[row] = uint16(1) << nibble + } + cell := &bph.grid[row][nibble] + cell.fillFromUpperCell(upCell, depth, upCell.downHashedLen) + if bph.trace { + fmt.Printf("cell (%d, %x) depth=%d\n", row, nibble, depth) + } + if row >= halfKeySize { + cell.apl = 0 + } + if upCell.downHashedLen > 1 { + copy(bph.currentKey[bph.currentKeyLen:], upCell.downHashedKey[:upCell.downHashedLen-1]) + } + bph.currentKeyLen += upCell.downHashedLen - 1 + } + bph.depths[bph.activeRows] = depth + bph.activeRows++ + return nil +} + +func (bph *BinPatriciaHashed) needFolding(hashedKey []byte) bool { + return !bytes.HasPrefix(hashedKey, bph.currentKey[:bph.currentKeyLen]) +} + +// The purpose of fold is to reduce hph.currentKey[:hph.currentKeyLen]. It should be invoked +// until that current key becomes a prefix of hashedKey that we will proccess next +// (in other words until the needFolding function returns 0) +func (bph *BinPatriciaHashed) fold() (branchData BranchData, updateKey []byte, err error) { + updateKeyLen := bph.currentKeyLen + if bph.activeRows == 0 { + return nil, nil, fmt.Errorf("cannot fold - no active rows") + } + if bph.trace { + fmt.Printf("fold: activeRows: %d, currentKey: [%x], touchMap: %016b, afterMap: %016b\n", bph.activeRows, bph.currentKey[:bph.currentKeyLen], bph.touchMap[bph.activeRows-1], bph.afterMap[bph.activeRows-1]) + } + // Move information to the row above + row := bph.activeRows - 1 + var upBinaryCell *BinaryCell + var col int + var upDepth int + if bph.activeRows == 1 { + if bph.trace { + fmt.Printf("upcell is root\n") + } + upBinaryCell = &bph.root + } else { + upDepth = bph.depths[bph.activeRows-2] + col = int(bph.currentKey[upDepth-1]) + if bph.trace { + fmt.Printf("upcell is (%d x %x), upDepth=%d\n", row-1, col, upDepth) + } + upBinaryCell = &bph.grid[row-1][col] + } + + depth := bph.depths[bph.activeRows-1] + updateKey = binToCompact(bph.currentKey[:updateKeyLen]) + partsCount := bits.OnesCount16(bph.afterMap[row]) + + if bph.trace { + fmt.Printf("touchMap[%d]=%016b, afterMap[%d]=%016b\n", row, bph.touchMap[row], row, bph.afterMap[row]) + } + switch partsCount { + case 0: + // Everything deleted + if bph.touchMap[row] != 0 { + if row == 0 { + // Root is deleted because the tree is empty + bph.rootTouched = true + bph.rootPresent = false + } else if upDepth == halfKeySize { + // Special case - all storage items of an account have been deleted, but it does not automatically delete the account, just makes it empty storage + // Therefore we are not propagating deletion upwards, but turn it into a modification + bph.touchMap[row-1] |= uint16(1) << col + } else { + // Deletion is propagated upwards + bph.touchMap[row-1] |= uint16(1) << col + bph.afterMap[row-1] &^= uint16(1) << col + } + } + upBinaryCell.hl = 0 + upBinaryCell.apl = 0 + upBinaryCell.spl = 0 + upBinaryCell.extLen = 0 + upBinaryCell.downHashedLen = 0 + if bph.branchBefore[row] { + branchData, _, err = EncodeBranch(0, bph.touchMap[row], 0, func(nibble int, skip bool) (*Cell, error) { return nil, nil }) + if err != nil { + return nil, updateKey, fmt.Errorf("failed to encode leaf node update: %w", err) + } + } + bph.activeRows-- + if upDepth > 0 { + bph.currentKeyLen = upDepth - 1 + } else { + bph.currentKeyLen = 0 + } + case 1: + // Leaf or extension node + if bph.touchMap[row] != 0 { + // any modifications + if row == 0 { + bph.rootTouched = true + } else { + // Modifiction is propagated upwards + bph.touchMap[row-1] |= uint16(1) << col + } + } + nibble := bits.TrailingZeros16(bph.afterMap[row]) + cell := &bph.grid[row][nibble] + upBinaryCell.extLen = 0 + upBinaryCell.fillFromLowerBinaryCell(cell, depth, bph.currentKey[upDepth:bph.currentKeyLen], nibble) + // Delete if it existed + if bph.branchBefore[row] { + //branchData, _, err = bph.EncodeBranchDirectAccess(0, row, depth) + branchData, _, err = EncodeBranch(0, bph.touchMap[row], 0, func(nibble int, skip bool) (*Cell, error) { return nil, nil }) + if err != nil { + return nil, updateKey, fmt.Errorf("failed to encode leaf node update: %w", err) + } + } + bph.activeRows-- + if upDepth > 0 { + bph.currentKeyLen = upDepth - 1 + } else { + bph.currentKeyLen = 0 + } + default: + // Branch node + if bph.touchMap[row] != 0 { + // any modifications + if row == 0 { + bph.rootTouched = true + } else { + // Modifiction is propagated upwards + bph.touchMap[row-1] |= uint16(1) << col + } + } + bitmap := bph.touchMap[row] & bph.afterMap[row] + if !bph.branchBefore[row] { + // There was no branch node before, so we need to touch even the singular child that existed + bph.touchMap[row] |= bph.afterMap[row] + bitmap |= bph.afterMap[row] + } + // Calculate total length of all hashes + totalBranchLen := 17 - partsCount // For every empty cell, one byte + for bitset, j := bph.afterMap[row], 0; bitset != 0; j++ { + bit := bitset & -bitset + nibble := bits.TrailingZeros16(bit) + cell := &bph.grid[row][nibble] + totalBranchLen += bph.computeBinaryCellHashLen(cell, depth) + bitset ^= bit + } + + bph.keccak2.Reset() + pt := rlp.GenerateStructLen(bph.hashAuxBuffer[:], totalBranchLen) + if _, err := bph.keccak2.Write(bph.hashAuxBuffer[:pt]); err != nil { + return nil, nil, err + } + + b := [...]byte{0x80} + cellGetter := func(nibble int, skip bool) (*Cell, error) { + if skip { + if _, err := bph.keccak2.Write(b[:]); err != nil { + return nil, fmt.Errorf("failed to write empty nibble to hash: %w", err) + } + if bph.trace { + fmt.Printf("%x: empty(%d,%x)\n", nibble, row, nibble) + } + return nil, nil + } + cell := &bph.grid[row][nibble] + cellHash, err := bph.computeBinaryCellHash(cell, depth, bph.hashAuxBuffer[:0]) + if err != nil { + return nil, err + } + if bph.trace { + fmt.Printf("%x: computeBinaryCellHash(%d,%x,depth=%d)=[%x]\n", nibble, row, nibble, depth, cellHash) + } + if _, err := bph.keccak2.Write(cellHash); err != nil { + return nil, err + } + + // TODO extension and downHashedKey should be encoded to hex format and vice versa, data loss due to array sizes + return cell.unwrapToHexCell(), nil + } + + var lastNibble int + var err error + _ = cellGetter + + //branchData, lastNibble, err = bph.EncodeBranchDirectAccess(bitmap, row, depth, branchData) + branchData, lastNibble, err = EncodeBranch(bitmap, bph.touchMap[row], bph.afterMap[row], cellGetter) + if err != nil { + return nil, nil, fmt.Errorf("failed to encode branch update: %w", err) + } + for i := lastNibble; i <= maxChild; i++ { + if _, err := bph.keccak2.Write(b[:]); err != nil { + return nil, nil, err + } + if bph.trace { + fmt.Printf("%x: empty(%d,%x)\n", i, row, i) + } + } + upBinaryCell.extLen = depth - upDepth - 1 + upBinaryCell.downHashedLen = upBinaryCell.extLen + if upBinaryCell.extLen > 0 { + copy(upBinaryCell.extension[:], bph.currentKey[upDepth:bph.currentKeyLen]) + copy(upBinaryCell.downHashedKey[:], bph.currentKey[upDepth:bph.currentKeyLen]) + } + if depth < halfKeySize { + upBinaryCell.apl = 0 + } + upBinaryCell.spl = 0 + upBinaryCell.hl = 32 + if _, err := bph.keccak2.Read(upBinaryCell.h[:]); err != nil { + return nil, nil, err + } + if bph.trace { + fmt.Printf("} [%x]\n", upBinaryCell.h[:]) + } + bph.activeRows-- + if upDepth > 0 { + bph.currentKeyLen = upDepth - 1 + } else { + bph.currentKeyLen = 0 + } + } + if branchData != nil { + if bph.trace { + fmt.Printf("fold: update key: %x, branchData: [%x]\n", CompactedKeyToHex(updateKey), branchData) + } + } + return branchData, updateKey, nil +} + +func (bph *BinPatriciaHashed) deleteBinaryCell(hashedKey []byte) { + if bph.trace { + fmt.Printf("deleteBinaryCell, activeRows = %d\n", bph.activeRows) + } + var cell *BinaryCell + if bph.activeRows == 0 { + // Remove the root + cell = &bph.root + bph.rootTouched = true + bph.rootPresent = false + } else { + row := bph.activeRows - 1 + if bph.depths[row] < len(hashedKey) { + if bph.trace { + fmt.Printf("deleteBinaryCell skipping spurious delete depth=%d, len(hashedKey)=%d\n", bph.depths[row], len(hashedKey)) + } + return + } + col := int(hashedKey[bph.currentKeyLen]) + cell = &bph.grid[row][col] + if bph.afterMap[row]&(uint16(1)< 0; unfolding = bph.needUnfolding(hashedKey) { + if err := bph.unfold(hashedKey, unfolding); err != nil { + return nil, nil, fmt.Errorf("unfold: %w", err) + } + } + + // Update the cell + stagedBinaryCell.fillEmpty() + if len(plainKey) == bph.accountKeyLen { + if err := bph.accountFn(plainKey, stagedBinaryCell); err != nil { + return nil, nil, fmt.Errorf("accountFn for key %x failed: %w", plainKey, err) + } + if !stagedBinaryCell.Delete { + cell := bph.updateBinaryCell(plainKey, hashedKey) + cell.setAccountFields(stagedBinaryCell.CodeHash[:], &stagedBinaryCell.Balance, stagedBinaryCell.Nonce) + + if bph.trace { + fmt.Printf("accountFn reading key %x => balance=%v nonce=%v codeHash=%x\n", cell.apk, cell.Balance.Uint64(), cell.Nonce, cell.CodeHash) + } + } + } else { + if err = bph.storageFn(plainKey, stagedBinaryCell); err != nil { + return nil, nil, fmt.Errorf("storageFn for key %x failed: %w", plainKey, err) + } + if !stagedBinaryCell.Delete { + bph.updateBinaryCell(plainKey, hashedKey).setStorage(stagedBinaryCell.Storage[:stagedBinaryCell.StorageLen]) + if bph.trace { + fmt.Printf("storageFn reading key %x => %x\n", plainKey, stagedBinaryCell.Storage[:stagedBinaryCell.StorageLen]) + } + } + } + + if stagedBinaryCell.Delete { + if bph.trace { + fmt.Printf("delete cell %x hash %x\n", plainKey, hashedKey) + } + bph.deleteBinaryCell(hashedKey) + } + } + // Folding everything up to the root + for bph.activeRows > 0 { + if branchData, updateKey, err := bph.fold(); err != nil { + return nil, nil, fmt.Errorf("final fold: %w", err) + } else if branchData != nil { + branchNodeUpdates[string(updateKey)] = branchData + } + } + + rootHash, err = bph.RootHash() + if err != nil { + return nil, branchNodeUpdates, fmt.Errorf("root hash evaluation failed: %w", err) + } + return rootHash, branchNodeUpdates, nil +} + +func (bph *BinPatriciaHashed) SetTrace(trace bool) { bph.trace = trace } + +func (bph *BinPatriciaHashed) Variant() TrieVariant { return VariantBinPatriciaTrie } + +// Reset allows BinPatriciaHashed instance to be reused for the new commitment calculation +func (bph *BinPatriciaHashed) Reset() { + bph.rootChecked = false + bph.root.hl = 0 + bph.root.downHashedLen = 0 + bph.root.apl = 0 + bph.root.spl = 0 + bph.root.extLen = 0 + copy(bph.root.CodeHash[:], EmptyCodeHash) + bph.root.StorageLen = 0 + bph.root.Balance.Clear() + bph.root.Nonce = 0 + bph.rootTouched = false + bph.rootPresent = true +} + +func (bph *BinPatriciaHashed) ResetFns( + branchFn func(prefix []byte) ([]byte, error), + accountFn func(plainKey []byte, cell *Cell) error, + storageFn func(plainKey []byte, cell *Cell) error, +) { + bph.branchFn = branchFn + bph.accountFn = wrapAccountStorageFn(accountFn) + bph.storageFn = wrapAccountStorageFn(storageFn) +} + +func (c *BinaryCell) bytes() []byte { + var pos = 1 + size := 1 + c.hl + 1 + c.apl + c.spl + 1 + c.downHashedLen + 1 + c.extLen + 1 // max size + buf := make([]byte, size) + + var flags uint8 + if c.hl != 0 { + flags |= 1 + buf[pos] = byte(c.hl) + pos++ + copy(buf[pos:pos+c.hl], c.h[:]) + pos += c.hl + } + if c.apl != 0 { + flags |= 2 + buf[pos] = byte(c.hl) + pos++ + copy(buf[pos:pos+c.apl], c.apk[:]) + pos += c.apl + } + if c.spl != 0 { + flags |= 4 + buf[pos] = byte(c.spl) + pos++ + copy(buf[pos:pos+c.spl], c.spk[:]) + pos += c.spl + } + if c.downHashedLen != 0 { + flags |= 8 + buf[pos] = byte(c.downHashedLen) + pos++ + copy(buf[pos:pos+c.downHashedLen], c.downHashedKey[:]) + pos += c.downHashedLen + } + if c.extLen != 0 { + flags |= 16 + buf[pos] = byte(c.extLen) + pos++ + copy(buf[pos:pos+c.downHashedLen], c.downHashedKey[:]) + //pos += c.downHashedLen + } + buf[0] = flags + return buf +} + +func (c *BinaryCell) decodeBytes(buf []byte) error { + if len(buf) < 1 { + return fmt.Errorf("invalid buffer size to contain BinaryCell (at least 1 byte expected)") + } + c.fillEmpty() + + var pos int + flags := buf[pos] + pos++ + + if flags&1 != 0 { + c.hl = int(buf[pos]) + pos++ + copy(c.h[:], buf[pos:pos+c.hl]) + pos += c.hl + } + if flags&2 != 0 { + c.apl = int(buf[pos]) + pos++ + copy(c.apk[:], buf[pos:pos+c.apl]) + pos += c.apl + } + if flags&4 != 0 { + c.spl = int(buf[pos]) + pos++ + copy(c.spk[:], buf[pos:pos+c.spl]) + pos += c.spl + } + if flags&8 != 0 { + c.downHashedLen = int(buf[pos]) + pos++ + copy(c.downHashedKey[:], buf[pos:pos+c.downHashedLen]) + pos += c.downHashedLen + } + if flags&16 != 0 { + c.extLen = int(buf[pos]) + pos++ + copy(c.extension[:], buf[pos:pos+c.extLen]) + //pos += c.extLen + } + return nil +} + +// Encode current state of hph into bytes +func (bph *BinPatriciaHashed) EncodeCurrentState(buf []byte) ([]byte, error) { + s := binState{ + CurrentKeyLen: int16(bph.currentKeyLen), + RootChecked: bph.rootChecked, + RootTouched: bph.rootTouched, + RootPresent: bph.rootPresent, + Root: make([]byte, 0), + } + + s.Root = bph.root.bytes() + copy(s.CurrentKey[:], bph.currentKey[:]) + copy(s.Depths[:], bph.depths[:]) + copy(s.BranchBefore[:], bph.branchBefore[:]) + copy(s.TouchMap[:], bph.touchMap[:]) + copy(s.AfterMap[:], bph.afterMap[:]) + + return s.Encode(buf) +} + +// buf expected to be encoded hph state. Decode state and set up hph to that state. +func (bph *BinPatriciaHashed) SetState(buf []byte) error { + if bph.activeRows != 0 { + return fmt.Errorf("has active rows, could not reset state") + } + + var s state + if err := s.Decode(buf); err != nil { + return err + } + + bph.Reset() + + if err := bph.root.decodeBytes(s.Root); err != nil { + return err + } + + bph.currentKeyLen = int(s.CurrentKeyLen) + bph.rootChecked = s.RootChecked + bph.rootTouched = s.RootTouched + bph.rootPresent = s.RootPresent + + copy(bph.currentKey[:], s.CurrentKey[:]) + copy(bph.depths[:], s.Depths[:]) + copy(bph.branchBefore[:], s.BranchBefore[:]) + copy(bph.touchMap[:], s.TouchMap[:]) + copy(bph.afterMap[:], s.AfterMap[:]) + + return nil +} + +func (bph *BinPatriciaHashed) ProcessUpdates(plainKeys, hashedKeys [][]byte, updates []Update) (rootHash []byte, branchNodeUpdates map[string]BranchData, err error) { + branchNodeUpdates = make(map[string]BranchData) + + for i, plainKey := range plainKeys { + hashedKey := hashedKeys[i] + if bph.trace { + fmt.Printf("plainKey=[%x], hashedKey=[%x], currentKey=[%x]\n", plainKey, hashedKey, bph.currentKey[:bph.currentKeyLen]) + } + // Keep folding until the currentKey is the prefix of the key we modify + for bph.needFolding(hashedKey) { + if branchData, updateKey, err := bph.fold(); err != nil { + return nil, nil, fmt.Errorf("fold: %w", err) + } else if branchData != nil { + branchNodeUpdates[string(updateKey)] = branchData + } + } + // Now unfold until we step on an empty cell + for unfolding := bph.needUnfolding(hashedKey); unfolding > 0; unfolding = bph.needUnfolding(hashedKey) { + if err := bph.unfold(hashedKey, unfolding); err != nil { + return nil, nil, fmt.Errorf("unfold: %w", err) + } + } + + update := updates[i] + // Update the cell + if update.Flags == DeleteUpdate { + bph.deleteBinaryCell(hashedKey) + if bph.trace { + fmt.Printf("key %x deleted\n", plainKey) + } + } else { + cell := bph.updateBinaryCell(plainKey, hashedKey) + if bph.trace { + fmt.Printf("accountFn updated key %x =>", plainKey) + } + if update.Flags&BalanceUpdate != 0 { + if bph.trace { + fmt.Printf(" balance=%d", update.Balance.Uint64()) + } + cell.Balance.Set(&update.Balance) + } + if update.Flags&NonceUpdate != 0 { + if bph.trace { + fmt.Printf(" nonce=%d", update.Nonce) + } + cell.Nonce = update.Nonce + } + if update.Flags&CodeUpdate != 0 { + if bph.trace { + fmt.Printf(" codeHash=%x", update.CodeHashOrStorage) + } + copy(cell.CodeHash[:], update.CodeHashOrStorage[:]) + } + if bph.trace { + fmt.Printf("\n") + } + if update.Flags&StorageUpdate != 0 { + cell.setStorage(update.CodeHashOrStorage[:update.ValLength]) + if bph.trace { + fmt.Printf("\rstorageFn filled key %x => %x\n", plainKey, update.CodeHashOrStorage[:update.ValLength]) + } + } + } + } + // Folding everything up to the root + for bph.activeRows > 0 { + if branchData, updateKey, err := bph.fold(); err != nil { + return nil, nil, fmt.Errorf("final fold: %w", err) + } else if branchData != nil { + branchNodeUpdates[string(updateKey)] = branchData + } + } + + rootHash, err = bph.RootHash() + if err != nil { + return nil, branchNodeUpdates, fmt.Errorf("root hash evaluation failed: %w", err) + } + return rootHash, branchNodeUpdates, nil +} + +// Hashes provided key and expands resulting hash into nibbles (each byte split into two nibbles by 4 bits) +func (bph *BinPatriciaHashed) hashAndNibblizeKey2(key []byte) []byte { //nolint + hashedKey := make([]byte, length.Hash) + + bph.keccak.Reset() + bph.keccak.Write(key[:length.Addr]) + copy(hashedKey[:length.Hash], bph.keccak.Sum(nil)) + + if len(key[length.Addr:]) > 0 { + hashedKey = append(hashedKey, make([]byte, length.Hash)...) + bph.keccak.Reset() + bph.keccak.Write(key[length.Addr:]) + copy(hashedKey[length.Hash:], bph.keccak.Sum(nil)) + } + + nibblized := make([]byte, len(hashedKey)*2) + for i, b := range hashedKey { + nibblized[i*2] = (b >> 4) & 0xf + nibblized[i*2+1] = b & 0xf + } + return nibblized +} + +func binHashKey(keccak keccakState, plainKey []byte, dest []byte, hashedKeyOffset int) error { + keccak.Reset() + var hashBufBack [length.Hash]byte + hashBuf := hashBufBack[:] + if _, err := keccak.Write(plainKey); err != nil { + return err + } + if _, err := keccak.Read(hashBuf); err != nil { + return err + } + for k := hashedKeyOffset; k < 256; k++ { + if hashBuf[k/8]&(1<<(7-k%8)) == 0 { + dest[k-hashedKeyOffset] = 0 + } else { + dest[k-hashedKeyOffset] = 1 + } + } + return nil +} + +func wrapAccountStorageFn(fn func([]byte, *Cell) error) func(pk []byte, bc *BinaryCell) error { + return func(pk []byte, bc *BinaryCell) error { + cl := bc.unwrapToHexCell() + + if err := fn(pk, cl); err != nil { + return err + } + + bc.Balance = *cl.Balance.Clone() + bc.Nonce = cl.Nonce + bc.StorageLen = cl.StorageLen + bc.apl = cl.apl + bc.spl = cl.spl + bc.hl = cl.hl + copy(bc.apk[:], cl.apk[:]) + copy(bc.spk[:], cl.spk[:]) + copy(bc.h[:], cl.h[:]) + + if cl.extLen > 0 { + binExt := compactToBin(cl.extension[:cl.extLen]) + copy(bc.extension[:], binExt) + bc.extLen = len(binExt) + } + if cl.downHashedLen > 0 { + bindhk := compactToBin(cl.downHashedKey[:cl.downHashedLen]) + copy(bc.downHashedKey[:], bindhk) + bc.downHashedLen = len(bindhk) + } + + copy(bc.CodeHash[:], cl.CodeHash[:]) + copy(bc.Storage[:], cl.Storage[:]) + bc.Delete = cl.Delete + return nil + } +} + +// represents state of the tree +type binState struct { + TouchMap [maxKeySize]uint16 // For each row, bitmap of cells that were either present before modification, or modified or deleted + AfterMap [maxKeySize]uint16 // For each row, bitmap of cells that were present after modification + CurrentKeyLen int16 + Root []byte // encoded root cell + RootChecked bool // Set to false if it is not known whether the root is empty, set to true if it is checked + RootTouched bool + RootPresent bool + BranchBefore [maxKeySize]bool // For each row, whether there was a branch node in the database loaded in unfold + CurrentKey [maxKeySize]byte // For each row indicates which column is currently selected + Depths [maxKeySize]int // For each row, the depth of cells in that row +} + +func (s *binState) Encode(buf []byte) ([]byte, error) { + var rootFlags stateRootFlag + if s.RootPresent { + rootFlags |= stateRootPresent + } + if s.RootChecked { + rootFlags |= stateRootChecked + } + if s.RootTouched { + rootFlags |= stateRootTouched + } + + ee := bytes.NewBuffer(buf) + if err := binary.Write(ee, binary.BigEndian, s.CurrentKeyLen); err != nil { + return nil, fmt.Errorf("encode currentKeyLen: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, int8(rootFlags)); err != nil { + return nil, fmt.Errorf("encode rootFlags: %w", err) + } + if n, err := ee.Write(s.CurrentKey[:]); err != nil || n != len(s.CurrentKey) { + return nil, fmt.Errorf("encode currentKey: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, uint16(len(s.Root))); err != nil { + return nil, fmt.Errorf("encode root len: %w", err) + } + if n, err := ee.Write(s.Root); err != nil || n != len(s.Root) { + return nil, fmt.Errorf("encode root: %w", err) + } + d := make([]byte, len(s.Depths)) + for i := 0; i < len(s.Depths); i++ { + d[i] = byte(s.Depths[i]) + } + if n, err := ee.Write(d); err != nil || n != len(s.Depths) { + return nil, fmt.Errorf("encode depths: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, s.TouchMap); err != nil { + return nil, fmt.Errorf("encode touchMap: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, s.AfterMap); err != nil { + return nil, fmt.Errorf("encode afterMap: %w", err) + } + + var before1, before2 uint64 + for i := 0; i < halfKeySize; i++ { + if s.BranchBefore[i] { + before1 |= 1 << i + } + } + for i, j := halfKeySize, 0; i < maxKeySize; i, j = i+1, j+1 { + if s.BranchBefore[i] { + before2 |= 1 << j + } + } + if err := binary.Write(ee, binary.BigEndian, before1); err != nil { + return nil, fmt.Errorf("encode branchBefore_1: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, before2); err != nil { + return nil, fmt.Errorf("encode branchBefore_2: %w", err) + } + return ee.Bytes(), nil +} + +func (s *binState) Decode(buf []byte) error { + aux := bytes.NewBuffer(buf) + if err := binary.Read(aux, binary.BigEndian, &s.CurrentKeyLen); err != nil { + return fmt.Errorf("currentKeyLen: %w", err) + } + var rootFlags stateRootFlag + if err := binary.Read(aux, binary.BigEndian, &rootFlags); err != nil { + return fmt.Errorf("rootFlags: %w", err) + } + + if rootFlags&stateRootPresent != 0 { + s.RootPresent = true + } + if rootFlags&stateRootTouched != 0 { + s.RootTouched = true + } + if rootFlags&stateRootChecked != 0 { + s.RootChecked = true + } + if n, err := aux.Read(s.CurrentKey[:]); err != nil || n != maxKeySize { + return fmt.Errorf("currentKey: %w", err) + } + var rootSize uint16 + if err := binary.Read(aux, binary.BigEndian, &rootSize); err != nil { + return fmt.Errorf("root size: %w", err) + } + s.Root = make([]byte, rootSize) + if _, err := aux.Read(s.Root); err != nil { + return fmt.Errorf("root: %w", err) + } + d := make([]byte, len(s.Depths)) + if err := binary.Read(aux, binary.BigEndian, &d); err != nil { + return fmt.Errorf("depths: %w", err) + } + for i := 0; i < len(s.Depths); i++ { + s.Depths[i] = int(d[i]) + } + if err := binary.Read(aux, binary.BigEndian, &s.TouchMap); err != nil { + return fmt.Errorf("touchMap: %w", err) + } + if err := binary.Read(aux, binary.BigEndian, &s.AfterMap); err != nil { + return fmt.Errorf("afterMap: %w", err) + } + var branch1, branch2 uint64 + if err := binary.Read(aux, binary.BigEndian, &branch1); err != nil { + return fmt.Errorf("branchBefore1: %w", err) + } + if err := binary.Read(aux, binary.BigEndian, &branch2); err != nil { + return fmt.Errorf("branchBefore2: %w", err) + } + + // TODO invalid branch encode + for i := 0; i < halfKeySize; i++ { + if branch1&(1< %s\n", CompactedKeyToHex([]byte(key)), branchNodeUpdate.String()) + } +} + +func Test_BinPatriciaHashed_UniqueRepresentation(t *testing.T) { + t.Skip() + + ms := NewMockState(t) + ms2 := NewMockState(t) + + plainKeys, hashedKeys, updates := NewUpdateBuilder(). + Balance("f5", 4). + Balance("ff", 900234). + Balance("04", 1233). + Storage("04", "01", "0401"). + Balance("ba", 065606). + Balance("00", 4). + Balance("01", 5). + Balance("02", 6). + Balance("03", 7). + Storage("03", "56", "050505"). + Balance("05", 9). + Storage("03", "87", "060606"). + Balance("b9", 6). + Nonce("ff", 169356). + Storage("05", "02", "8989"). + Storage("f5", "04", "9898"). + Build() + + trieOne := NewBinPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + trieTwo := NewBinPatriciaHashed(1, ms2.branchFn, ms2.accountFn, ms2.storageFn) + + trieOne.SetTrace(true) + trieTwo.SetTrace(true) + + // single sequential update + roots := make([][]byte, 0) + // branchNodeUpdatesOne := make(map[string]BranchData) + fmt.Printf("1. Trie sequential update generated following branch updates\n") + for i := 0; i < len(updates); i++ { + if err := ms.applyPlainUpdates(plainKeys[i:i+1], updates[i:i+1]); err != nil { + t.Fatal(err) + } + + sequentialRoot, branchNodeUpdates, err := trieOne.ReviewKeys(plainKeys[i:i+1], hashedKeys[i:i+1]) + require.NoError(t, err) + roots = append(roots, sequentialRoot) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + renderUpdates(branchNodeUpdates) + } + + err := ms2.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + fmt.Printf("\n2. Trie batch update generated following branch updates\n") + // batch update + batchRoot, branchNodeUpdatesTwo, err := trieTwo.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + renderUpdates(branchNodeUpdatesTwo) + + fmt.Printf("\n sequential roots:\n") + for i, rh := range roots { + fmt.Printf("%2d %+v\n", i, hex.EncodeToString(rh)) + } + + ms2.applyBranchNodeUpdates(branchNodeUpdatesTwo) + + require.EqualValues(t, batchRoot, roots[len(roots)-1], + "expected equal roots, got sequential [%v] != batch [%v]", hex.EncodeToString(roots[len(roots)-1]), hex.EncodeToString(batchRoot)) + require.Lenf(t, batchRoot, 32, "root hash length should be equal to 32 bytes") +} +func Test_BinPatriciaHashed_EmptyState(t *testing.T) { + ms := NewMockState(t) + hph := NewBinPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + hph.SetTrace(false) + plainKeys, hashedKeys, updates := NewUpdateBuilder(). + Balance("00", 4). + Balance("01", 5). + Balance("02", 6). + Balance("03", 7). + Balance("04", 8). + Storage("04", "01", "0401"). + Storage("03", "56", "050505"). + Storage("03", "57", "060606"). + Balance("05", 9). + Storage("05", "02", "8989"). + Storage("05", "04", "9898"). + Build() + + err := ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + firstRootHash, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + + t.Logf("root hash %x\n", firstRootHash) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + + fmt.Printf("1. Generated updates\n") + renderUpdates(branchNodeUpdates) + + // More updates + hph.Reset() + hph.SetTrace(false) + plainKeys, hashedKeys, updates = NewUpdateBuilder(). + Storage("03", "58", "050505"). + Build() + err = ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + secondRootHash, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + require.NotEqualValues(t, firstRootHash, secondRootHash) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + fmt.Printf("2. Generated single update\n") + renderUpdates(branchNodeUpdates) + + // More updates + hph.Reset() + hph.SetTrace(false) + plainKeys, hashedKeys, updates = NewUpdateBuilder(). + Storage("03", "58", "070807"). + Build() + err = ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + thirdRootHash, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + require.NotEqualValues(t, secondRootHash, thirdRootHash) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + fmt.Printf("3. Generated single update\n") + renderUpdates(branchNodeUpdates) +} + +func Test_BinPatriciaHashed_EmptyUpdateState(t *testing.T) { + ms := NewMockState(t) + hph := NewBinPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + hph.SetTrace(false) + plainKeys, hashedKeys, updates := NewUpdateBuilder(). + Balance("00", 4). + Nonce("00", 246462653). + Balance("01", 5). + CodeHash("03", "aaaaaaaaaaf7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a870"). + Delete("00"). + Storage("04", "01", "0401"). + Storage("03", "56", "050505"). + Build() + + err := ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + hashBeforeEmptyUpdate, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + require.NotEmpty(t, hashBeforeEmptyUpdate) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + + fmt.Println("1. Updates applied") + renderUpdates(branchNodeUpdates) + + // generate empty updates and do NOT reset tree + hph.SetTrace(true) + + plainKeys, hashedKeys, updates = NewUpdateBuilder().Build() + + err = ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + hashAfterEmptyUpdate, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + fmt.Println("2. Empty updates applied without state reset") + + require.EqualValues(t, hashBeforeEmptyUpdate, hashAfterEmptyUpdate) +} diff --git a/erigon-lib/commitment/commitment.go b/erigon-lib/commitment/commitment.go new file mode 100644 index 00000000000..a51cfcb59ce --- /dev/null +++ b/erigon-lib/commitment/commitment.go @@ -0,0 +1,586 @@ +package commitment + +import ( + "bytes" + "encoding/binary" + "fmt" + "hash" + "math/bits" + "strings" + + "golang.org/x/crypto/sha3" + + "github.com/ledgerwatch/erigon-lib/common/length" +) + +// Trie represents commitment variant. +type Trie interface { + // RootHash produces root hash of the trie + RootHash() (hash []byte, err error) + + // Variant returns commitment trie variant + Variant() TrieVariant + + // Reset Drops everything from the trie + Reset() + + ReviewKeys(pk, hk [][]byte) (rootHash []byte, branchNodeUpdates map[string]BranchData, err error) + + ProcessUpdates(pk, hk [][]byte, updates []Update) (rootHash []byte, branchNodeUpdates map[string]BranchData, err error) + + ResetFns( + branchFn func(prefix []byte) ([]byte, error), + accountFn func(plainKey []byte, cell *Cell) error, + storageFn func(plainKey []byte, cell *Cell) error, + ) + + // Makes trie more verbose + SetTrace(bool) +} + +type TrieVariant string + +const ( + // VariantHexPatriciaTrie used as default commitment approach + VariantHexPatriciaTrie TrieVariant = "hex-patricia-hashed" + // VariantBinPatriciaTrie - Experimental mode with binary key representation + VariantBinPatriciaTrie TrieVariant = "bin-patricia-hashed" +) + +func InitializeTrie(tv TrieVariant) Trie { + switch tv { + case VariantBinPatriciaTrie: + return NewBinPatriciaHashed(length.Addr, nil, nil, nil) + case VariantHexPatriciaTrie: + fallthrough + default: + return NewHexPatriciaHashed(length.Addr, nil, nil, nil) + } +} + +type PartFlags uint8 + +const ( + HashedKeyPart PartFlags = 1 + AccountPlainPart PartFlags = 2 + StoragePlainPart PartFlags = 4 + HashPart PartFlags = 8 +) + +type BranchData []byte + +func (branchData BranchData) String() string { + touchMap := binary.BigEndian.Uint16(branchData[0:]) + afterMap := binary.BigEndian.Uint16(branchData[2:]) + pos := 4 + var sb strings.Builder + var cell Cell + fmt.Fprintf(&sb, "touchMap %016b, afterMap %016b\n", touchMap, afterMap) + for bitset, j := touchMap, 0; bitset != 0; j++ { + bit := bitset & -bitset + nibble := bits.TrailingZeros16(bit) + fmt.Fprintf(&sb, " %x => ", nibble) + if afterMap&bit == 0 { + sb.WriteString("{DELETED}\n") + } else { + fieldBits := PartFlags(branchData[pos]) + pos++ + var err error + if pos, err = cell.fillFromFields(branchData, pos, fieldBits); err != nil { + // This is used for test output, so ok to panic + panic(err) + } + sb.WriteString("{") + var comma string + if cell.downHashedLen > 0 { + fmt.Fprintf(&sb, "hashedKey=[%x]", cell.downHashedKey[:cell.downHashedLen]) + comma = "," + } + if cell.apl > 0 { + fmt.Fprintf(&sb, "%saccountPlainKey=[%x]", comma, cell.apk[:cell.apl]) + comma = "," + } + if cell.spl > 0 { + fmt.Fprintf(&sb, "%sstoragePlainKey=[%x]", comma, cell.spk[:cell.spl]) + comma = "," + } + if cell.hl > 0 { + fmt.Fprintf(&sb, "%shash=[%x]", comma, cell.h[:cell.hl]) + } + sb.WriteString("}\n") + } + bitset ^= bit + } + return sb.String() +} + +func EncodeBranch(bitmap, touchMap, afterMap uint16, retriveCell func(nibble int, skip bool) (*Cell, error)) (branchData BranchData, lastNibble int, err error) { + branchData = make(BranchData, 0, 32) + var bitmapBuf [binary.MaxVarintLen64]byte + + binary.BigEndian.PutUint16(bitmapBuf[0:], touchMap) + binary.BigEndian.PutUint16(bitmapBuf[2:], afterMap) + + branchData = append(branchData, bitmapBuf[:4]...) + + for bitset, j := afterMap, 0; bitset != 0; j++ { + bit := bitset & -bitset + nibble := bits.TrailingZeros16(bit) + for i := lastNibble; i < nibble; i++ { + if _, err := retriveCell(i, true /* skip */); err != nil { + return nil, 0, err + } // only writes 0x80 into hasher + } + lastNibble = nibble + 1 + + cell, err := retriveCell(nibble, false) + if err != nil { + return nil, 0, err + } + + if bitmap&bit != 0 { + var fieldBits PartFlags + if cell.extLen > 0 && cell.spl == 0 { + fieldBits |= HashedKeyPart + } + if cell.apl > 0 { + fieldBits |= AccountPlainPart + } + if cell.spl > 0 { + fieldBits |= StoragePlainPart + } + if cell.hl > 0 { + fieldBits |= HashPart + } + branchData = append(branchData, byte(fieldBits)) + if cell.extLen > 0 && cell.spl == 0 { + n := binary.PutUvarint(bitmapBuf[:], uint64(cell.extLen)) + branchData = append(branchData, bitmapBuf[:n]...) + branchData = append(branchData, cell.extension[:cell.extLen]...) + } + if cell.apl > 0 { + n := binary.PutUvarint(bitmapBuf[:], uint64(cell.apl)) + branchData = append(branchData, bitmapBuf[:n]...) + branchData = append(branchData, cell.apk[:cell.apl]...) + } + if cell.spl > 0 { + n := binary.PutUvarint(bitmapBuf[:], uint64(cell.spl)) + branchData = append(branchData, bitmapBuf[:n]...) + branchData = append(branchData, cell.spk[:cell.spl]...) + } + if cell.hl > 0 { + n := binary.PutUvarint(bitmapBuf[:], uint64(cell.hl)) + branchData = append(branchData, bitmapBuf[:n]...) + branchData = append(branchData, cell.h[:cell.hl]...) + } + } + bitset ^= bit + } + return branchData, lastNibble, nil +} + +// ExtractPlainKeys parses branchData and extract the plain keys for accounts and storage in the same order +// they appear witjin the branchData +func (branchData BranchData) ExtractPlainKeys() (accountPlainKeys [][]byte, storagePlainKeys [][]byte, err error) { + touchMap := binary.BigEndian.Uint16(branchData[0:]) + afterMap := binary.BigEndian.Uint16(branchData[2:]) + pos := 4 + for bitset, j := touchMap&afterMap, 0; bitset != 0; j++ { + bit := bitset & -bitset + fieldBits := PartFlags(branchData[pos]) + pos++ + if fieldBits&HashedKeyPart != 0 { + l, n := binary.Uvarint(branchData[pos:]) + if n == 0 { + return nil, nil, fmt.Errorf("extractPlainKeys buffer too small for hashedKey len") + } else if n < 0 { + return nil, nil, fmt.Errorf("extractPlainKeys value overflow for hashedKey len") + } + pos += n + if len(branchData) < pos+int(l) { + return nil, nil, fmt.Errorf("extractPlainKeys buffer too small for hashedKey") + } + if l > 0 { + pos += int(l) + } + } + if fieldBits&AccountPlainPart != 0 { + l, n := binary.Uvarint(branchData[pos:]) + if n == 0 { + return nil, nil, fmt.Errorf("extractPlainKeys buffer too small for accountPlainKey len") + } else if n < 0 { + return nil, nil, fmt.Errorf("extractPlainKeys value overflow for accountPlainKey len") + } + pos += n + if len(branchData) < pos+int(l) { + return nil, nil, fmt.Errorf("extractPlainKeys buffer too small for accountPlainKey") + } + accountPlainKeys = append(accountPlainKeys, branchData[pos:pos+int(l)]) + if l > 0 { + pos += int(l) + } + } + if fieldBits&StoragePlainPart != 0 { + l, n := binary.Uvarint(branchData[pos:]) + if n == 0 { + return nil, nil, fmt.Errorf("extractPlainKeys buffer too small for storagePlainKey len") + } else if n < 0 { + return nil, nil, fmt.Errorf("extractPlainKeys value overflow for storagePlainKey len") + } + pos += n + if len(branchData) < pos+int(l) { + return nil, nil, fmt.Errorf("extractPlainKeys buffer too small for storagePlainKey") + } + storagePlainKeys = append(storagePlainKeys, branchData[pos:pos+int(l)]) + if l > 0 { + pos += int(l) + } + } + if fieldBits&HashPart != 0 { + l, n := binary.Uvarint(branchData[pos:]) + if n == 0 { + return nil, nil, fmt.Errorf("extractPlainKeys buffer too small for hash len") + } else if n < 0 { + return nil, nil, fmt.Errorf("extractPlainKeys value overflow for hash len") + } + pos += n + if len(branchData) < pos+int(l) { + return nil, nil, fmt.Errorf("extractPlainKeys buffer too small for hash") + } + if l > 0 { + pos += int(l) + } + } + bitset ^= bit + } + return +} + +func (branchData BranchData) ReplacePlainKeys(accountPlainKeys [][]byte, storagePlainKeys [][]byte, newData []byte) (BranchData, error) { + var numBuf [binary.MaxVarintLen64]byte + touchMap := binary.BigEndian.Uint16(branchData[0:]) + afterMap := binary.BigEndian.Uint16(branchData[2:]) + pos := 4 + newData = append(newData, branchData[:4]...) + var accountI, storageI int + for bitset, j := touchMap&afterMap, 0; bitset != 0; j++ { + bit := bitset & -bitset + fieldBits := PartFlags(branchData[pos]) + newData = append(newData, byte(fieldBits)) + pos++ + if fieldBits&HashedKeyPart != 0 { + l, n := binary.Uvarint(branchData[pos:]) + if n == 0 { + return nil, fmt.Errorf("replacePlainKeys buffer too small for hashedKey len") + } else if n < 0 { + return nil, fmt.Errorf("replacePlainKeys value overflow for hashedKey len") + } + newData = append(newData, branchData[pos:pos+n]...) + pos += n + if len(branchData) < pos+int(l) { + return nil, fmt.Errorf("replacePlainKeys buffer too small for hashedKey") + } + if l > 0 { + newData = append(newData, branchData[pos:pos+int(l)]...) + pos += int(l) + } + } + if fieldBits&AccountPlainPart != 0 { + l, n := binary.Uvarint(branchData[pos:]) + if n == 0 { + return nil, fmt.Errorf("replacePlainKeys buffer too small for accountPlainKey len") + } else if n < 0 { + return nil, fmt.Errorf("replacePlainKeys value overflow for accountPlainKey len") + } + pos += n + if len(branchData) < pos+int(l) { + return nil, fmt.Errorf("replacePlainKeys buffer too small for accountPlainKey") + } + if l > 0 { + pos += int(l) + } + n = binary.PutUvarint(numBuf[:], uint64(len(accountPlainKeys[accountI]))) + newData = append(newData, numBuf[:n]...) + newData = append(newData, accountPlainKeys[accountI]...) + accountI++ + } + if fieldBits&StoragePlainPart != 0 { + l, n := binary.Uvarint(branchData[pos:]) + if n == 0 { + return nil, fmt.Errorf("replacePlainKeys buffer too small for storagePlainKey len") + } else if n < 0 { + return nil, fmt.Errorf("replacePlainKeys value overflow for storagePlainKey len") + } + pos += n + if len(branchData) < pos+int(l) { + return nil, fmt.Errorf("replacePlainKeys buffer too small for storagePlainKey") + } + if l > 0 { + pos += int(l) + } + n = binary.PutUvarint(numBuf[:], uint64(len(storagePlainKeys[storageI]))) + newData = append(newData, numBuf[:n]...) + newData = append(newData, storagePlainKeys[storageI]...) + storageI++ + } + if fieldBits&HashPart != 0 { + l, n := binary.Uvarint(branchData[pos:]) + if n == 0 { + return nil, fmt.Errorf("replacePlainKeys buffer too small for hash len") + } else if n < 0 { + return nil, fmt.Errorf("replacePlainKeys value overflow for hash len") + } + newData = append(newData, branchData[pos:pos+n]...) + pos += n + if len(branchData) < pos+int(l) { + return nil, fmt.Errorf("replacePlainKeys buffer too small for hash") + } + if l > 0 { + newData = append(newData, branchData[pos:pos+int(l)]...) + pos += int(l) + } + } + bitset ^= bit + } + return newData, nil +} + +// IsComplete determines whether given branch data is complete, meaning that all information about all the children is present +// Each of 16 children of a branch node have two attributes +// touch - whether this child has been modified or deleted in this branchData (corresponding bit in touchMap is set) +// after - whether after this branchData application, the child is present in the tree or not (corresponding bit in afterMap is set) +func (branchData BranchData) IsComplete() bool { + touchMap := binary.BigEndian.Uint16(branchData[0:]) + afterMap := binary.BigEndian.Uint16(branchData[2:]) + return ^touchMap&afterMap == 0 +} + +// MergeHexBranches combines two branchData, number 2 coming after (and potentially shadowing) number 1 +func (branchData BranchData) MergeHexBranches(branchData2 BranchData, newData []byte) (BranchData, error) { + if branchData2 == nil { + return branchData, nil + } + if branchData == nil { + return branchData2, nil + } + + touchMap1 := binary.BigEndian.Uint16(branchData[0:]) + afterMap1 := binary.BigEndian.Uint16(branchData[2:]) + bitmap1 := touchMap1 & afterMap1 + pos1 := 4 + touchMap2 := binary.BigEndian.Uint16(branchData2[0:]) + afterMap2 := binary.BigEndian.Uint16(branchData2[2:]) + bitmap2 := touchMap2 & afterMap2 + pos2 := 4 + var bitmapBuf [4]byte + binary.BigEndian.PutUint16(bitmapBuf[0:], touchMap1|touchMap2) + binary.BigEndian.PutUint16(bitmapBuf[2:], afterMap2) + newData = append(newData, bitmapBuf[:]...) + for bitset, j := bitmap1|bitmap2, 0; bitset != 0; j++ { + bit := bitset & -bitset + if bitmap2&bit != 0 { + // Add fields from branchData2 + fieldBits := PartFlags(branchData2[pos2]) + newData = append(newData, byte(fieldBits)) + pos2++ + for i := 0; i < bits.OnesCount8(byte(fieldBits)); i++ { + l, n := binary.Uvarint(branchData2[pos2:]) + if n == 0 { + return nil, fmt.Errorf("MergeHexBranches buffer2 too small for field") + } else if n < 0 { + return nil, fmt.Errorf("MergeHexBranches value2 overflow for field") + } + newData = append(newData, branchData2[pos2:pos2+n]...) + pos2 += n + if len(branchData2) < pos2+int(l) { + return nil, fmt.Errorf("MergeHexBranches buffer2 too small for field") + } + if l > 0 { + newData = append(newData, branchData2[pos2:pos2+int(l)]...) + pos2 += int(l) + } + } + } + if bitmap1&bit != 0 { + add := (touchMap2&bit == 0) && (afterMap2&bit != 0) // Add fields from branchData1 + fieldBits := PartFlags(branchData[pos1]) + if add { + newData = append(newData, byte(fieldBits)) + } + pos1++ + for i := 0; i < bits.OnesCount8(byte(fieldBits)); i++ { + l, n := binary.Uvarint(branchData[pos1:]) + if n == 0 { + return nil, fmt.Errorf("MergeHexBranches buffer1 too small for field") + } else if n < 0 { + return nil, fmt.Errorf("MergeHexBranches value1 overflow for field") + } + if add { + newData = append(newData, branchData[pos1:pos1+n]...) + } + pos1 += n + if len(branchData) < pos1+int(l) { + return nil, fmt.Errorf("MergeHexBranches buffer1 too small for field") + } + if l > 0 { + if add { + newData = append(newData, branchData[pos1:pos1+int(l)]...) + } + pos1 += int(l) + } + } + } + bitset ^= bit + } + return newData, nil +} + +func (branchData BranchData) DecodeCells() (touchMap, afterMap uint16, row [16]*Cell, err error) { + touchMap = binary.BigEndian.Uint16(branchData[0:]) + afterMap = binary.BigEndian.Uint16(branchData[2:]) + pos := 4 + for bitset, j := touchMap, 0; bitset != 0; j++ { + bit := bitset & -bitset + nibble := bits.TrailingZeros16(bit) + if afterMap&bit != 0 { + fieldBits := PartFlags(branchData[pos]) + pos++ + row[nibble] = new(Cell) + if pos, err = row[nibble].fillFromFields(branchData, pos, fieldBits); err != nil { + err = fmt.Errorf("faield to fill cell at nibble %x: %w", nibble, err) + return + } + } + bitset ^= bit + } + return +} + +type BranchMerger struct { + buf *bytes.Buffer + num [4]byte + keccak hash.Hash +} + +func NewHexBranchMerger(capacity uint64) *BranchMerger { + return &BranchMerger{buf: bytes.NewBuffer(make([]byte, capacity)), keccak: sha3.NewLegacyKeccak256()} +} + +// MergeHexBranches combines two branchData, number 2 coming after (and potentially shadowing) number 1 +func (m *BranchMerger) Merge(branch1 BranchData, branch2 BranchData) (BranchData, error) { + if branch2 == nil { + return branch1, nil + } + if branch1 == nil { + return branch2, nil + } + + touchMap1 := binary.BigEndian.Uint16(branch1[0:]) + afterMap1 := binary.BigEndian.Uint16(branch1[2:]) + bitmap1 := touchMap1 & afterMap1 + pos1 := 4 + + touchMap2 := binary.BigEndian.Uint16(branch2[0:]) + afterMap2 := binary.BigEndian.Uint16(branch2[2:]) + bitmap2 := touchMap2 & afterMap2 + pos2 := 4 + + binary.BigEndian.PutUint16(m.num[0:], touchMap1|touchMap2) + binary.BigEndian.PutUint16(m.num[2:], afterMap2) + dataPos := 4 + + m.buf.Reset() + if _, err := m.buf.Write(m.num[:]); err != nil { + return nil, err + } + + for bitset, j := bitmap1|bitmap2, 0; bitset != 0; j++ { + bit := bitset & -bitset + if bitmap2&bit != 0 { + // Add fields from branch2 + fieldBits := PartFlags(branch2[pos2]) + if err := m.buf.WriteByte(byte(fieldBits)); err != nil { + return nil, err + } + pos2++ + + for i := 0; i < bits.OnesCount8(byte(fieldBits)); i++ { + l, n := binary.Uvarint(branch2[pos2:]) + if n == 0 { + return nil, fmt.Errorf("MergeHexBranches branch2 is too small: expected node info size") + } else if n < 0 { + return nil, fmt.Errorf("MergeHexBranches branch2: size overflow for length") + } + + _, err := m.buf.Write(branch2[pos2 : pos2+n]) + if err != nil { + return nil, err + } + pos2 += n + dataPos += n + if len(branch2) < pos2+int(l) { + return nil, fmt.Errorf("MergeHexBranches branch2 is too small: expected at least %d got %d bytes", pos2+int(l), len(branch2)) + } + if l > 0 { + if _, err := m.buf.Write(branch2[pos2 : pos2+int(l)]); err != nil { + return nil, err + } + pos2 += int(l) + dataPos += int(l) + } + } + } + if bitmap1&bit != 0 { + add := (touchMap2&bit == 0) && (afterMap2&bit != 0) // Add fields from branchData1 + fieldBits := PartFlags(branch1[pos1]) + if add { + if err := m.buf.WriteByte(byte(fieldBits)); err != nil { + return nil, err + } + } + pos1++ + for i := 0; i < bits.OnesCount8(byte(fieldBits)); i++ { + l, n := binary.Uvarint(branch1[pos1:]) + if n == 0 { + return nil, fmt.Errorf("MergeHexBranches branch1 is too small: expected node info size") + } else if n < 0 { + return nil, fmt.Errorf("MergeHexBranches branch1: size overflow for length") + } + if add { + if _, err := m.buf.Write(branch1[pos1 : pos1+n]); err != nil { + return nil, err + } + } + pos1 += n + if len(branch1) < pos1+int(l) { + return nil, fmt.Errorf("MergeHexBranches branch1 is too small: expected at least %d got %d bytes", pos1+int(l), len(branch1)) + } + if l > 0 { + if add { + if _, err := m.buf.Write(branch1[pos1 : pos1+int(l)]); err != nil { + return nil, err + } + } + pos1 += int(l) + } + } + } + bitset ^= bit + } + target := make([]byte, m.buf.Len()) + copy(target, m.buf.Bytes()) + return target, nil +} + +func ParseTrieVariant(s string) TrieVariant { + var trieVariant TrieVariant + switch s { + case "bin": + trieVariant = VariantBinPatriciaTrie + case "hex": + fallthrough + default: + trieVariant = VariantHexPatriciaTrie + } + return trieVariant +} diff --git a/erigon-lib/commitment/commitment_test.go b/erigon-lib/commitment/commitment_test.go new file mode 100644 index 00000000000..848385412b7 --- /dev/null +++ b/erigon-lib/commitment/commitment_test.go @@ -0,0 +1,201 @@ +package commitment + +import ( + "encoding/hex" + "fmt" + "math/rand" + "testing" + + "github.com/stretchr/testify/require" +) + +func generateCellRow(t *testing.T, size int) (row []*Cell, bitmap uint16) { + t.Helper() + + row = make([]*Cell, size) + var bm uint16 + for i := 0; i < len(row); i++ { + row[i] = new(Cell) + row[i].hl = 32 + n, err := rand.Read(row[i].h[:]) + require.NoError(t, err) + require.EqualValues(t, row[i].hl, n) + + th := rand.Intn(120) + switch { + case th > 70: + n, err = rand.Read(row[i].apk[:]) + require.NoError(t, err) + row[i].apl = n + case th > 20 && th <= 70: + n, err = rand.Read(row[i].spk[:]) + require.NoError(t, err) + row[i].spl = n + case th <= 20: + n, err = rand.Read(row[i].extension[:th]) + row[i].extLen = n + require.NoError(t, err) + require.EqualValues(t, th, n) + } + bm |= uint16(1 << i) + } + return row, bm +} + +func TestBranchData_MergeHexBranches2(t *testing.T) { + row, bm := generateCellRow(t, 16) + + enc, _, err := EncodeBranch(bm, bm, bm, func(i int, skip bool) (*Cell, error) { + return row[i], nil + }) + + require.NoError(t, err) + require.NotEmpty(t, enc) + t.Logf("enc [%d] %x\n", len(enc), enc) + + bmg := NewHexBranchMerger(8192) + res, err := bmg.Merge(enc, enc) + require.NoError(t, err) + require.EqualValues(t, enc, res) + + tm, am, origins, err := res.DecodeCells() + require.NoError(t, err) + require.EqualValues(t, tm, am) + require.EqualValues(t, bm, am) + + i := 0 + for _, c := range origins { + if c == nil { + continue + } + require.EqualValues(t, row[i].extLen, c.extLen) + require.EqualValues(t, row[i].extension, c.extension) + require.EqualValues(t, row[i].apl, c.apl) + require.EqualValues(t, row[i].apk, c.apk) + require.EqualValues(t, row[i].spl, c.spl) + require.EqualValues(t, row[i].spk, c.spk) + i++ + } +} + +func TestBranchData_MergeHexBranches3(t *testing.T) { + encs := "0405040b04080f0b080d030204050b0502090805050d01060e060d070f0903090c04070a0d0a000e090b060b0c040c0700020e0b0c060b0106020c0607050a0b0209070d06040808" + enc, err := hex.DecodeString(encs) + require.NoError(t, err) + + //tm, am, origins, err := BranchData(enc).DecodeCells() + require.NoError(t, err) + t.Logf("%s", BranchData(enc).String()) + //require.EqualValues(t, tm, am) + //_, _ = tm, am +} + +// helper to decode row of cells from string +func Test_UTIL_UnfoldBranchDataFromString(t *testing.T) { + t.Skip() + + //encs := "0405040b04080f0b080d030204050b0502090805050d01060e060d070f0903090c04070a0d0a000e090b060b0c040c0700020e0b0c060b0106020c0607050a0b0209070d06040808" + encs := "37ad10eb75ea0fc1c363db0dda0cd2250426ee2c72787155101ca0e50804349a94b649deadcc5cddc0d2fd9fb358c2edc4e7912d165f88877b1e48c69efacf418e923124506fbb2fd64823fd41cbc10427c423" + enc, err := hex.DecodeString(encs) + require.NoError(t, err) + + bfn := func(pref []byte) ([]byte, error) { + return enc, nil + } + sfn := func(pref []byte, c *Cell) error { + return nil + } + + hph := NewHexPatriciaHashed(20, bfn, nil, sfn) + hph.unfoldBranchNode(1, false, 0) + tm, am, origins, err := BranchData(enc).DecodeCells() + require.NoError(t, err) + t.Logf("%s", BranchData(enc).String()) + //require.EqualValues(t, tm, am) + _, _ = tm, am + + i := 0 + for _, c := range origins { + if c == nil { + continue + } + fmt.Printf("i %d, c %#+v\n", i, c) + i++ + } +} + +func TestBranchData_ExtractPlainKeys(t *testing.T) { + row, bm := generateCellRow(t, 16) + + cg := func(nibble int, skip bool) (*Cell, error) { + return row[nibble], nil + } + + enc, _, err := EncodeBranch(bm, bm, bm, cg) + require.NoError(t, err) + + extAPK, extSPK, err := enc.ExtractPlainKeys() + require.NoError(t, err) + + for i, c := range row { + if c == nil { + continue + } + switch { + case c.apl != 0: + require.Containsf(t, extAPK, c.apk[:], "at pos %d expected %x..", i, c.apk[:8]) + case c.spl != 0: + require.Containsf(t, extSPK, c.spk[:], "at pos %d expected %x..", i, c.spk[:8]) + default: + continue + } + } +} + +func TestBranchData_ReplacePlainKeys(t *testing.T) { + row, bm := generateCellRow(t, 16) + + cg := func(nibble int, skip bool) (*Cell, error) { + return row[nibble], nil + } + + enc, _, err := EncodeBranch(bm, bm, bm, cg) + require.NoError(t, err) + + extAPK, extSPK, err := enc.ExtractPlainKeys() + require.NoError(t, err) + + shortApk, shortSpk := make([][]byte, 0), make([][]byte, 0) + for i, c := range row { + if c == nil { + continue + } + switch { + case c.apl != 0: + shortApk = append(shortApk, c.apk[:8]) + require.Containsf(t, extAPK, c.apk[:], "at pos %d expected %x..", i, c.apk[:8]) + case c.spl != 0: + shortSpk = append(shortSpk, c.spk[:8]) + require.Containsf(t, extSPK, c.spk[:], "at pos %d expected %x..", i, c.spk[:8]) + default: + continue + } + } + + target := make([]byte, 0, len(enc)) + replaced, err := enc.ReplacePlainKeys(shortApk, shortSpk, target) + require.NoError(t, err) + require.Truef(t, len(replaced) < len(enc), "replaced expected to be shorter than original enc") + + rextA, rextS, err := replaced.ExtractPlainKeys() + require.NoError(t, err) + + for _, apk := range shortApk { + require.Containsf(t, rextA, apk, "expected %x to be in replaced account keys", apk) + } + for _, spk := range shortSpk { + require.Containsf(t, rextS, spk, "expected %x to be in replaced storage keys", spk) + } + require.True(t, len(shortApk) == len(rextA)) + require.True(t, len(shortSpk) == len(rextS)) +} diff --git a/erigon-lib/commitment/hex_patricia_hashed.go b/erigon-lib/commitment/hex_patricia_hashed.go new file mode 100644 index 00000000000..3ba53a41759 --- /dev/null +++ b/erigon-lib/commitment/hex_patricia_hashed.go @@ -0,0 +1,1982 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package commitment + +import ( + "bytes" + "encoding/binary" + "encoding/hex" + "fmt" + "hash" + "io" + "math/bits" + "strings" + + "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" + "golang.org/x/crypto/sha3" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/rlp" +) + +// keccakState wraps sha3.state. In addition to the usual hash methods, it also supports +// Read to get a variable amount of data from the hash state. Read is faster than Sum +// because it doesn't copy the internal state, but also modifies the internal state. +type keccakState interface { + hash.Hash + Read([]byte) (int, error) +} + +// HexPatriciaHashed implements commitment based on patricia merkle tree with radix 16, +// with keys pre-hashed by keccak256 +type HexPatriciaHashed struct { + root Cell // Root cell of the tree + // How many rows (starting from row 0) are currently active and have corresponding selected columns + // Last active row does not have selected column + activeRows int + // Length of the key that reflects current positioning of the grid. It maybe larger than number of active rows, + // if an account leaf cell represents multiple nibbles in the key + currentKeyLen int + accountKeyLen int + // Rows of the grid correspond to the level of depth in the patricia tree + // Columns of the grid correspond to pointers to the nodes further from the root + grid [128][16]Cell // First 64 rows of this grid are for account trie, and next 64 rows are for storage trie + currentKey [128]byte // For each row indicates which column is currently selected + depths [128]int // For each row, the depth of cells in that row + branchBefore [128]bool // For each row, whether there was a branch node in the database loaded in unfold + touchMap [128]uint16 // For each row, bitmap of cells that were either present before modification, or modified or deleted + afterMap [128]uint16 // For each row, bitmap of cells that were present after modification + keccak keccakState + keccak2 keccakState + rootChecked bool // Set to false if it is not known whether the root is empty, set to true if it is checked + rootTouched bool + rootPresent bool + trace bool + // Function used to load branch node and fill up the cells + // For each cell, it sets the cell type, clears the modified flag, fills the hash, + // and for the extension, account, and leaf type, the `l` and `k` + branchFn func(prefix []byte) ([]byte, error) + // Function used to fetch account with given plain key + accountFn func(plainKey []byte, cell *Cell) error + // Function used to fetch storage with given plain key + storageFn func(plainKey []byte, cell *Cell) error + + hashAuxBuffer [128]byte // buffer to compute cell hash or write hash-related things + auxBuffer *bytes.Buffer // auxiliary buffer used during branch updates encoding +} + +// represents state of the tree +type state struct { + Root []byte // encoded root cell + Depths [128]int // For each row, the depth of cells in that row + TouchMap [128]uint16 // For each row, bitmap of cells that were either present before modification, or modified or deleted + AfterMap [128]uint16 // For each row, bitmap of cells that were present after modification + BranchBefore [128]bool // For each row, whether there was a branch node in the database loaded in unfold + CurrentKey [128]byte // For each row indicates which column is currently selected + CurrentKeyLen int8 + RootChecked bool // Set to false if it is not known whether the root is empty, set to true if it is checked + RootTouched bool + RootPresent bool +} + +func NewHexPatriciaHashed(accountKeyLen int, + branchFn func(prefix []byte) ([]byte, error), + accountFn func(plainKey []byte, cell *Cell) error, + storageFn func(plainKey []byte, cell *Cell) error, +) *HexPatriciaHashed { + return &HexPatriciaHashed{ + keccak: sha3.NewLegacyKeccak256().(keccakState), + keccak2: sha3.NewLegacyKeccak256().(keccakState), + accountKeyLen: accountKeyLen, + branchFn: branchFn, + accountFn: accountFn, + storageFn: storageFn, + auxBuffer: bytes.NewBuffer(make([]byte, 8192)), + } +} + +type Cell struct { + Balance uint256.Int + Nonce uint64 + hl int // Length of the hash (or embedded) + StorageLen int + apl int // length of account plain key + spl int // length of the storage plain key + downHashedLen int + extLen int + downHashedKey [128]byte + extension [64]byte + spk [length.Addr + length.Hash]byte // storage plain key + h [length.Hash]byte // cell hash + CodeHash [length.Hash]byte // hash of the bytecode + Storage [length.Hash]byte + apk [length.Addr]byte // account plain key + Delete bool +} + +var ( + EmptyRootHash, _ = hex.DecodeString("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") + EmptyCodeHash, _ = hex.DecodeString("c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470") +) + +func (cell *Cell) fillEmpty() { + cell.apl = 0 + cell.spl = 0 + cell.downHashedLen = 0 + cell.extLen = 0 + cell.hl = 0 + cell.Nonce = 0 + cell.Balance.Clear() + copy(cell.CodeHash[:], EmptyCodeHash) + cell.StorageLen = 0 + cell.Delete = false +} + +func (cell *Cell) fillFromUpperCell(upCell *Cell, depth, depthIncrement int) { + if upCell.downHashedLen >= depthIncrement { + cell.downHashedLen = upCell.downHashedLen - depthIncrement + } else { + cell.downHashedLen = 0 + } + if upCell.downHashedLen > depthIncrement { + copy(cell.downHashedKey[:], upCell.downHashedKey[depthIncrement:upCell.downHashedLen]) + } + if upCell.extLen >= depthIncrement { + cell.extLen = upCell.extLen - depthIncrement + } else { + cell.extLen = 0 + } + if upCell.extLen > depthIncrement { + copy(cell.extension[:], upCell.extension[depthIncrement:upCell.extLen]) + } + if depth <= 64 { + cell.apl = upCell.apl + if upCell.apl > 0 { + copy(cell.apk[:], upCell.apk[:cell.apl]) + cell.Balance.Set(&upCell.Balance) + cell.Nonce = upCell.Nonce + copy(cell.CodeHash[:], upCell.CodeHash[:]) + cell.extLen = upCell.extLen + if upCell.extLen > 0 { + copy(cell.extension[:], upCell.extension[:upCell.extLen]) + } + } + } else { + cell.apl = 0 + } + cell.spl = upCell.spl + if upCell.spl > 0 { + copy(cell.spk[:], upCell.spk[:upCell.spl]) + cell.StorageLen = upCell.StorageLen + if upCell.StorageLen > 0 { + copy(cell.Storage[:], upCell.Storage[:upCell.StorageLen]) + } + } + cell.hl = upCell.hl + if upCell.hl > 0 { + copy(cell.h[:], upCell.h[:upCell.hl]) + } +} + +func (cell *Cell) fillFromLowerCell(lowCell *Cell, lowDepth int, preExtension []byte, nibble int) { + if lowCell.apl > 0 || lowDepth < 64 { + cell.apl = lowCell.apl + } + if lowCell.apl > 0 { + copy(cell.apk[:], lowCell.apk[:cell.apl]) + cell.Balance.Set(&lowCell.Balance) + cell.Nonce = lowCell.Nonce + copy(cell.CodeHash[:], lowCell.CodeHash[:]) + } + cell.spl = lowCell.spl + if lowCell.spl > 0 { + copy(cell.spk[:], lowCell.spk[:cell.spl]) + cell.StorageLen = lowCell.StorageLen + if lowCell.StorageLen > 0 { + copy(cell.Storage[:], lowCell.Storage[:lowCell.StorageLen]) + } + } + if lowCell.hl > 0 { + if (lowCell.apl == 0 && lowDepth < 64) || (lowCell.spl == 0 && lowDepth > 64) { + // Extension is related to either accounts branch node, or storage branch node, we prepend it by preExtension | nibble + if len(preExtension) > 0 { + copy(cell.extension[:], preExtension) + } + cell.extension[len(preExtension)] = byte(nibble) + if lowCell.extLen > 0 { + copy(cell.extension[1+len(preExtension):], lowCell.extension[:lowCell.extLen]) + } + cell.extLen = lowCell.extLen + 1 + len(preExtension) + } else { + // Extension is related to a storage branch node, so we copy it upwards as is + cell.extLen = lowCell.extLen + if lowCell.extLen > 0 { + copy(cell.extension[:], lowCell.extension[:lowCell.extLen]) + } + } + } + cell.hl = lowCell.hl + if lowCell.hl > 0 { + copy(cell.h[:], lowCell.h[:lowCell.hl]) + } +} + +func hashKey(keccak keccakState, plainKey []byte, dest []byte, hashedKeyOffset int) error { + keccak.Reset() + var hashBufBack [length.Hash]byte + hashBuf := hashBufBack[:] + if _, err := keccak.Write(plainKey); err != nil { + return err + } + if _, err := keccak.Read(hashBuf); err != nil { + return err + } + hashBuf = hashBuf[hashedKeyOffset/2:] + var k int + if hashedKeyOffset%2 == 1 { + dest[0] = hashBuf[0] & 0xf + k++ + hashBuf = hashBuf[1:] + } + for _, c := range hashBuf { + dest[k] = (c >> 4) & 0xf + k++ + dest[k] = c & 0xf + k++ + } + return nil +} + +func (cell *Cell) deriveHashedKeys(depth int, keccak keccakState, accountKeyLen int) error { + extraLen := 0 + if cell.apl > 0 { + if depth > 64 { + return fmt.Errorf("deriveHashedKeys accountPlainKey present at depth > 64") + } + extraLen = 64 - depth + } + if cell.spl > 0 { + if depth >= 64 { + extraLen = 128 - depth + } else { + extraLen += 64 + } + } + if extraLen > 0 { + if cell.downHashedLen > 0 { + copy(cell.downHashedKey[extraLen:], cell.downHashedKey[:cell.downHashedLen]) + } + cell.downHashedLen += extraLen + var hashedKeyOffset, downOffset int + if cell.apl > 0 { + if err := hashKey(keccak, cell.apk[:cell.apl], cell.downHashedKey[:], depth); err != nil { + return err + } + downOffset = 64 - depth + } + if cell.spl > 0 { + if depth >= 64 { + hashedKeyOffset = depth - 64 + } + if err := hashKey(keccak, cell.spk[accountKeyLen:cell.spl], cell.downHashedKey[downOffset:], hashedKeyOffset); err != nil { + return err + } + } + } + return nil +} + +func (cell *Cell) fillFromFields(data []byte, pos int, fieldBits PartFlags) (int, error) { + if fieldBits&HashedKeyPart != 0 { + l, n := binary.Uvarint(data[pos:]) + if n == 0 { + return 0, fmt.Errorf("fillFromFields buffer too small for hashedKey len") + } else if n < 0 { + return 0, fmt.Errorf("fillFromFields value overflow for hashedKey len") + } + pos += n + if len(data) < pos+int(l) { + return 0, fmt.Errorf("fillFromFields buffer too small for hashedKey exp %d got %d", pos+int(l), len(data)) + } + cell.downHashedLen = int(l) + cell.extLen = int(l) + if l > 0 { + copy(cell.downHashedKey[:], data[pos:pos+int(l)]) + copy(cell.extension[:], data[pos:pos+int(l)]) + pos += int(l) + } + } else { + cell.downHashedLen = 0 + cell.extLen = 0 + } + if fieldBits&AccountPlainPart != 0 { + l, n := binary.Uvarint(data[pos:]) + if n == 0 { + return 0, fmt.Errorf("fillFromFields buffer too small for accountPlainKey len") + } else if n < 0 { + return 0, fmt.Errorf("fillFromFields value overflow for accountPlainKey len") + } + pos += n + if len(data) < pos+int(l) { + return 0, fmt.Errorf("fillFromFields buffer too small for accountPlainKey") + } + cell.apl = int(l) + if l > 0 { + copy(cell.apk[:], data[pos:pos+int(l)]) + pos += int(l) + } + } else { + cell.apl = 0 + } + if fieldBits&StoragePlainPart != 0 { + l, n := binary.Uvarint(data[pos:]) + if n == 0 { + return 0, fmt.Errorf("fillFromFields buffer too small for storagePlainKey len") + } else if n < 0 { + return 0, fmt.Errorf("fillFromFields value overflow for storagePlainKey len") + } + pos += n + if len(data) < pos+int(l) { + return 0, fmt.Errorf("fillFromFields buffer too small for storagePlainKey") + } + cell.spl = int(l) + if l > 0 { + copy(cell.spk[:], data[pos:pos+int(l)]) + pos += int(l) + } + } else { + cell.spl = 0 + } + if fieldBits&HashPart != 0 { + l, n := binary.Uvarint(data[pos:]) + if n == 0 { + return 0, fmt.Errorf("fillFromFields buffer too small for hash len") + } else if n < 0 { + return 0, fmt.Errorf("fillFromFields value overflow for hash len") + } + pos += n + if len(data) < pos+int(l) { + return 0, fmt.Errorf("fillFromFields buffer too small for hash") + } + cell.hl = int(l) + if l > 0 { + copy(cell.h[:], data[pos:pos+int(l)]) + pos += int(l) + } + } else { + cell.hl = 0 + } + return pos, nil +} + +func (cell *Cell) setStorage(value []byte) { + cell.StorageLen = len(value) + if len(value) > 0 { + copy(cell.Storage[:], value) + } +} + +func (cell *Cell) setAccountFields(codeHash []byte, balance *uint256.Int, nonce uint64) { + copy(cell.CodeHash[:], codeHash) + + cell.Balance.SetBytes(balance.Bytes()) + cell.Nonce = nonce +} + +func (cell *Cell) accountForHashing(buffer []byte, storageRootHash [length.Hash]byte) int { + balanceBytes := 0 + if !cell.Balance.LtUint64(128) { + balanceBytes = cell.Balance.ByteLen() + } + + var nonceBytes int + if cell.Nonce < 128 && cell.Nonce != 0 { + nonceBytes = 0 + } else { + nonceBytes = common.BitLenToByteLen(bits.Len64(cell.Nonce)) + } + + var structLength = uint(balanceBytes + nonceBytes + 2) + structLength += 66 // Two 32-byte arrays + 2 prefixes + + var pos int + if structLength < 56 { + buffer[0] = byte(192 + structLength) + pos = 1 + } else { + lengthBytes := common.BitLenToByteLen(bits.Len(structLength)) + buffer[0] = byte(247 + lengthBytes) + + for i := lengthBytes; i > 0; i-- { + buffer[i] = byte(structLength) + structLength >>= 8 + } + + pos = lengthBytes + 1 + } + + // Encoding nonce + if cell.Nonce < 128 && cell.Nonce != 0 { + buffer[pos] = byte(cell.Nonce) + } else { + buffer[pos] = byte(128 + nonceBytes) + var nonce = cell.Nonce + for i := nonceBytes; i > 0; i-- { + buffer[pos+i] = byte(nonce) + nonce >>= 8 + } + } + pos += 1 + nonceBytes + + // Encoding balance + if cell.Balance.LtUint64(128) && !cell.Balance.IsZero() { + buffer[pos] = byte(cell.Balance.Uint64()) + pos++ + } else { + buffer[pos] = byte(128 + balanceBytes) + pos++ + cell.Balance.WriteToSlice(buffer[pos : pos+balanceBytes]) + pos += balanceBytes + } + + // Encoding Root and CodeHash + buffer[pos] = 128 + 32 + pos++ + copy(buffer[pos:], storageRootHash[:]) + pos += 32 + buffer[pos] = 128 + 32 + pos++ + copy(buffer[pos:], cell.CodeHash[:]) + pos += 32 + return pos +} + +func (hph *HexPatriciaHashed) completeLeafHash(buf, keyPrefix []byte, kp, kl, compactLen int, key []byte, compact0 byte, ni int, val rlp.RlpSerializable, singleton bool) ([]byte, error) { + totalLen := kp + kl + val.DoubleRLPLen() + var lenPrefix [4]byte + pt := rlp.GenerateStructLen(lenPrefix[:], totalLen) + embedded := !singleton && totalLen+pt < length.Hash + var writer io.Writer + if embedded { + //hph.byteArrayWriter.Setup(buf) + hph.auxBuffer.Reset() + writer = hph.auxBuffer + } else { + hph.keccak.Reset() + writer = hph.keccak + } + if _, err := writer.Write(lenPrefix[:pt]); err != nil { + return nil, err + } + if _, err := writer.Write(keyPrefix[:kp]); err != nil { + return nil, err + } + var b [1]byte + b[0] = compact0 + if _, err := writer.Write(b[:]); err != nil { + return nil, err + } + for i := 1; i < compactLen; i++ { + b[0] = key[ni]*16 + key[ni+1] + if _, err := writer.Write(b[:]); err != nil { + return nil, err + } + ni += 2 + } + var prefixBuf [8]byte + if err := val.ToDoubleRLP(writer, prefixBuf[:]); err != nil { + return nil, err + } + if embedded { + buf = hph.auxBuffer.Bytes() + } else { + var hashBuf [33]byte + hashBuf[0] = 0x80 + length.Hash + if _, err := hph.keccak.Read(hashBuf[1:]); err != nil { + return nil, err + } + buf = append(buf, hashBuf[:]...) + } + return buf, nil +} + +func (hph *HexPatriciaHashed) leafHashWithKeyVal(buf, key []byte, val rlp.RlpSerializableBytes, singleton bool) ([]byte, error) { + // Compute the total length of binary representation + var kp, kl int + // Write key + var compactLen int + var ni int + var compact0 byte + compactLen = (len(key)-1)/2 + 1 + if len(key)&1 == 0 { + compact0 = 0x30 + key[0] // Odd: (3<<4) + first nibble + ni = 1 + } else { + compact0 = 0x20 + } + var keyPrefix [1]byte + if compactLen > 1 { + keyPrefix[0] = 0x80 + byte(compactLen) + kp = 1 + kl = compactLen + } else { + kl = 1 + } + return hph.completeLeafHash(buf, keyPrefix[:], kp, kl, compactLen, key, compact0, ni, val, singleton) +} + +func (hph *HexPatriciaHashed) accountLeafHashWithKey(buf, key []byte, val rlp.RlpSerializable) ([]byte, error) { + // Compute the total length of binary representation + var kp, kl int + // Write key + var compactLen int + var ni int + var compact0 byte + if hasTerm(key) { + compactLen = (len(key)-1)/2 + 1 + if len(key)&1 == 0 { + compact0 = 48 + key[0] // Odd (1<<4) + first nibble + ni = 1 + } else { + compact0 = 32 + } + } else { + compactLen = len(key)/2 + 1 + if len(key)&1 == 1 { + compact0 = 16 + key[0] // Odd (1<<4) + first nibble + ni = 1 + } + } + var keyPrefix [1]byte + if compactLen > 1 { + keyPrefix[0] = byte(128 + compactLen) + kp = 1 + kl = compactLen + } else { + kl = 1 + } + return hph.completeLeafHash(buf, keyPrefix[:], kp, kl, compactLen, key, compact0, ni, val, true) +} + +func (hph *HexPatriciaHashed) extensionHash(key []byte, hash []byte) ([length.Hash]byte, error) { + var hashBuf [length.Hash]byte + + // Compute the total length of binary representation + var kp, kl int + // Write key + var compactLen int + var ni int + var compact0 byte + if hasTerm(key) { + compactLen = (len(key)-1)/2 + 1 + if len(key)&1 == 0 { + compact0 = 0x30 + key[0] // Odd: (3<<4) + first nibble + ni = 1 + } else { + compact0 = 0x20 + } + } else { + compactLen = len(key)/2 + 1 + if len(key)&1 == 1 { + compact0 = 0x10 + key[0] // Odd: (1<<4) + first nibble + ni = 1 + } + } + var keyPrefix [1]byte + if compactLen > 1 { + keyPrefix[0] = 0x80 + byte(compactLen) + kp = 1 + kl = compactLen + } else { + kl = 1 + } + totalLen := kp + kl + 33 + var lenPrefix [4]byte + pt := rlp.GenerateStructLen(lenPrefix[:], totalLen) + hph.keccak.Reset() + if _, err := hph.keccak.Write(lenPrefix[:pt]); err != nil { + return hashBuf, err + } + if _, err := hph.keccak.Write(keyPrefix[:kp]); err != nil { + return hashBuf, err + } + var b [1]byte + b[0] = compact0 + if _, err := hph.keccak.Write(b[:]); err != nil { + return hashBuf, err + } + for i := 1; i < compactLen; i++ { + b[0] = key[ni]*16 + key[ni+1] + if _, err := hph.keccak.Write(b[:]); err != nil { + return hashBuf, err + } + ni += 2 + } + b[0] = 0x80 + length.Hash + if _, err := hph.keccak.Write(b[:]); err != nil { + return hashBuf, err + } + if _, err := hph.keccak.Write(hash); err != nil { + return hashBuf, err + } + // Replace previous hash with the new one + if _, err := hph.keccak.Read(hashBuf[:]); err != nil { + return hashBuf, err + } + return hashBuf, nil +} + +func (hph *HexPatriciaHashed) computeCellHashLen(cell *Cell, depth int) int { + if cell.spl > 0 && depth >= 64 { + keyLen := 128 - depth + 1 // Length of hex key with terminator character + var kp, kl int + compactLen := (keyLen-1)/2 + 1 + if compactLen > 1 { + kp = 1 + kl = compactLen + } else { + kl = 1 + } + val := rlp.RlpSerializableBytes(cell.Storage[:cell.StorageLen]) + totalLen := kp + kl + val.DoubleRLPLen() + var lenPrefix [4]byte + pt := rlp.GenerateStructLen(lenPrefix[:], totalLen) + if totalLen+pt < length.Hash { + return totalLen + pt + } + } + return length.Hash + 1 +} + +func (hph *HexPatriciaHashed) computeCellHash(cell *Cell, depth int, buf []byte) ([]byte, error) { + var err error + var storageRootHash [length.Hash]byte + storageRootHashIsSet := false + if cell.spl > 0 { + var hashedKeyOffset int + if depth >= 64 { + hashedKeyOffset = depth - 64 + } + singleton := depth <= 64 + if err := hashKey(hph.keccak, cell.spk[hph.accountKeyLen:cell.spl], cell.downHashedKey[:], hashedKeyOffset); err != nil { + return nil, err + } + cell.downHashedKey[64-hashedKeyOffset] = 16 // Add terminator + if singleton { + if hph.trace { + fmt.Printf("leafHashWithKeyVal(singleton) for [%x]=>[%x]\n", cell.downHashedKey[:64-hashedKeyOffset+1], cell.Storage[:cell.StorageLen]) + } + aux := make([]byte, 0, 33) + if aux, err = hph.leafHashWithKeyVal(aux, cell.downHashedKey[:64-hashedKeyOffset+1], cell.Storage[:cell.StorageLen], true); err != nil { + return nil, err + } + storageRootHash = *(*[length.Hash]byte)(aux[1:]) + storageRootHashIsSet = true + } else { + if hph.trace { + fmt.Printf("leafHashWithKeyVal for [%x]=>[%x]\n", cell.downHashedKey[:64-hashedKeyOffset+1], cell.Storage[:cell.StorageLen]) + } + return hph.leafHashWithKeyVal(buf, cell.downHashedKey[:64-hashedKeyOffset+1], cell.Storage[:cell.StorageLen], false) + } + } + if cell.apl > 0 { + if err := hashKey(hph.keccak, cell.apk[:cell.apl], cell.downHashedKey[:], depth); err != nil { + return nil, err + } + cell.downHashedKey[64-depth] = 16 // Add terminator + if !storageRootHashIsSet { + if cell.extLen > 0 { + // Extension + if cell.hl > 0 { + if hph.trace { + fmt.Printf("extensionHash for [%x]=>[%x]\n", cell.extension[:cell.extLen], cell.h[:cell.hl]) + } + if storageRootHash, err = hph.extensionHash(cell.extension[:cell.extLen], cell.h[:cell.hl]); err != nil { + return nil, err + } + } else { + return nil, fmt.Errorf("computeCellHash extension without hash") + } + } else if cell.hl > 0 { + storageRootHash = cell.h + } else { + storageRootHash = *(*[length.Hash]byte)(EmptyRootHash) + } + } + var valBuf [128]byte + valLen := cell.accountForHashing(valBuf[:], storageRootHash) + if hph.trace { + fmt.Printf("accountLeafHashWithKey for [%x]=>[%x]\n", hph.hashAuxBuffer[:65-depth], valBuf[:valLen]) + } + return hph.accountLeafHashWithKey(buf, cell.downHashedKey[:65-depth], rlp.RlpEncodedBytes(valBuf[:valLen])) + } + buf = append(buf, 0x80+32) + if cell.extLen > 0 { + // Extension + if cell.hl > 0 { + if hph.trace { + fmt.Printf("extensionHash for [%x]=>[%x]\n", cell.extension[:cell.extLen], cell.h[:cell.hl]) + } + var hash [length.Hash]byte + if hash, err = hph.extensionHash(cell.extension[:cell.extLen], cell.h[:cell.hl]); err != nil { + return nil, err + } + buf = append(buf, hash[:]...) + } else { + return nil, fmt.Errorf("computeCellHash extension without hash") + } + } else if cell.hl > 0 { + buf = append(buf, cell.h[:cell.hl]...) + } else { + buf = append(buf, EmptyRootHash...) + } + return buf, nil +} + +func (hph *HexPatriciaHashed) needUnfolding(hashedKey []byte) int { + var cell *Cell + var depth int + if hph.activeRows == 0 { + if hph.trace { + fmt.Printf("needUnfolding root, rootChecked = %t\n", hph.rootChecked) + } + if hph.rootChecked && hph.root.downHashedLen == 0 && hph.root.hl == 0 { + // Previously checked, empty root, no unfolding needed + return 0 + } + cell = &hph.root + if cell.downHashedLen == 0 && cell.hl == 0 && !hph.rootChecked { + // Need to attempt to unfold the root + return 1 + } + } else { + col := int(hashedKey[hph.currentKeyLen]) + cell = &hph.grid[hph.activeRows-1][col] + depth = hph.depths[hph.activeRows-1] + if hph.trace { + fmt.Printf("needUnfolding cell (%d, %x), currentKey=[%x], depth=%d, cell.h=[%x]\n", hph.activeRows-1, col, hph.currentKey[:hph.currentKeyLen], depth, cell.h[:cell.hl]) + } + } + if len(hashedKey) <= depth { + return 0 + } + if cell.downHashedLen == 0 { + if cell.hl == 0 { + // cell is empty, no need to unfold further + return 0 + } + // unfold branch node + return 1 + } + cpl := commonPrefixLen(hashedKey[depth:], cell.downHashedKey[:cell.downHashedLen-1]) + if hph.trace { + fmt.Printf("cpl=%d, cell.downHashedKey=[%x], depth=%d, hashedKey[depth:]=[%x]\n", cpl, cell.downHashedKey[:cell.downHashedLen], depth, hashedKey[depth:]) + } + unfolding := cpl + 1 + if depth < 64 && depth+unfolding > 64 { + // This is to make sure that unfolding always breaks at the level where storage subtrees start + unfolding = 64 - depth + if hph.trace { + fmt.Printf("adjusted unfolding=%d\n", unfolding) + } + } + return unfolding +} + +// unfoldBranchNode returns true if unfolding has been done +func (hph *HexPatriciaHashed) unfoldBranchNode(row int, deleted bool, depth int) (bool, error) { + branchData, err := hph.branchFn(hexToCompact(hph.currentKey[:hph.currentKeyLen])) + if err != nil { + return false, err + } + if !hph.rootChecked && hph.currentKeyLen == 0 && len(branchData) == 0 { + // Special case - empty or deleted root + hph.rootChecked = true + return false, nil + } + if len(branchData) == 0 { + log.Warn("got empty branch data during unfold", "key", hex.EncodeToString(hexToCompact(hph.currentKey[:hph.currentKeyLen])), "row", row, "depth", depth, "deleted", deleted) + } + hph.branchBefore[row] = true + bitmap := binary.BigEndian.Uint16(branchData[0:]) + pos := 2 + if deleted { + // All cells come as deleted (touched but not present after) + hph.afterMap[row] = 0 + hph.touchMap[row] = bitmap + } else { + hph.afterMap[row] = bitmap + hph.touchMap[row] = 0 + } + //fmt.Printf("unfoldBranchNode [%x], afterMap = [%016b], touchMap = [%016b]\n", branchData, hph.afterMap[row], hph.touchMap[row]) + // Loop iterating over the set bits of modMask + for bitset, j := bitmap, 0; bitset != 0; j++ { + bit := bitset & -bitset + nibble := bits.TrailingZeros16(bit) + cell := &hph.grid[row][nibble] + fieldBits := branchData[pos] + pos++ + var err error + if pos, err = cell.fillFromFields(branchData, pos, PartFlags(fieldBits)); err != nil { + return false, fmt.Errorf("prefix [%x], branchData[%x]: %w", hph.currentKey[:hph.currentKeyLen], branchData, err) + } + if hph.trace { + fmt.Printf("cell (%d, %x) depth=%d, hash=[%x], a=[%x], s=[%x], ex=[%x]\n", row, nibble, depth, cell.h[:cell.hl], cell.apk[:cell.apl], cell.spk[:cell.spl], cell.extension[:cell.extLen]) + } + if cell.apl > 0 { + hph.accountFn(cell.apk[:cell.apl], cell) + if hph.trace { + fmt.Printf("accountFn[%x] return balance=%d, nonce=%d code=%x\n", cell.apk[:cell.apl], &cell.Balance, cell.Nonce, cell.CodeHash[:]) + } + } + if cell.spl > 0 { + hph.storageFn(cell.spk[:cell.spl], cell) + } + if err = cell.deriveHashedKeys(depth, hph.keccak, hph.accountKeyLen); err != nil { + return false, err + } + bitset ^= bit + } + return true, nil +} + +func (hph *HexPatriciaHashed) unfold(hashedKey []byte, unfolding int) error { + if hph.trace { + fmt.Printf("unfold %d: activeRows: %d\n", unfolding, hph.activeRows) + } + var upCell *Cell + var touched, present bool + var col byte + var upDepth, depth int + if hph.activeRows == 0 { + if hph.rootChecked && hph.root.hl == 0 && hph.root.downHashedLen == 0 { + // No unfolding for empty root + return nil + } + upCell = &hph.root + touched = hph.rootTouched + present = hph.rootPresent + if hph.trace { + fmt.Printf("unfold root, touched %t, present %t, column %d\n", touched, present, col) + } + } else { + upDepth = hph.depths[hph.activeRows-1] + col = hashedKey[upDepth-1] + upCell = &hph.grid[hph.activeRows-1][col] + touched = hph.touchMap[hph.activeRows-1]&(uint16(1)<= unfolding { + depth = upDepth + unfolding + nibble := upCell.downHashedKey[unfolding-1] + if touched { + hph.touchMap[row] = uint16(1) << nibble + } + if present { + hph.afterMap[row] = uint16(1) << nibble + } + cell := &hph.grid[row][nibble] + cell.fillFromUpperCell(upCell, depth, unfolding) + if hph.trace { + fmt.Printf("cell (%d, %x) depth=%d\n", row, nibble, depth) + } + if row >= 64 { + cell.apl = 0 + } + if unfolding > 1 { + copy(hph.currentKey[hph.currentKeyLen:], upCell.downHashedKey[:unfolding-1]) + } + hph.currentKeyLen += unfolding - 1 + } else { + // upCell.downHashedLen < unfolding + depth = upDepth + upCell.downHashedLen + nibble := upCell.downHashedKey[upCell.downHashedLen-1] + if touched { + hph.touchMap[row] = uint16(1) << nibble + } + if present { + hph.afterMap[row] = uint16(1) << nibble + } + cell := &hph.grid[row][nibble] + cell.fillFromUpperCell(upCell, depth, upCell.downHashedLen) + if hph.trace { + fmt.Printf("cell (%d, %x) depth=%d\n", row, nibble, depth) + } + if row >= 64 { + cell.apl = 0 + } + if upCell.downHashedLen > 1 { + copy(hph.currentKey[hph.currentKeyLen:], upCell.downHashedKey[:upCell.downHashedLen-1]) + } + hph.currentKeyLen += upCell.downHashedLen - 1 + } + hph.depths[hph.activeRows] = depth + hph.activeRows++ + return nil +} + +func (hph *HexPatriciaHashed) needFolding(hashedKey []byte) bool { + return !bytes.HasPrefix(hashedKey, hph.currentKey[:hph.currentKeyLen]) +} + +// The purpose of fold is to reduce hph.currentKey[:hph.currentKeyLen]. It should be invoked +// until that current key becomes a prefix of hashedKey that we will proccess next +// (in other words until the needFolding function returns 0) +func (hph *HexPatriciaHashed) fold() (branchData BranchData, updateKey []byte, err error) { + updateKeyLen := hph.currentKeyLen + if hph.activeRows == 0 { + return nil, nil, fmt.Errorf("cannot fold - no active rows") + } + if hph.trace { + fmt.Printf("fold: activeRows: %d, currentKey: [%x], touchMap: %016b, afterMap: %016b\n", hph.activeRows, hph.currentKey[:hph.currentKeyLen], hph.touchMap[hph.activeRows-1], hph.afterMap[hph.activeRows-1]) + } + // Move information to the row above + row := hph.activeRows - 1 + var upCell *Cell + var col int + var upDepth int + if hph.activeRows == 1 { + if hph.trace { + fmt.Printf("upcell is root\n") + } + upCell = &hph.root + } else { + upDepth = hph.depths[hph.activeRows-2] + col = int(hph.currentKey[upDepth-1]) + if hph.trace { + fmt.Printf("upcell is (%d x %x), upDepth=%d\n", row-1, col, upDepth) + } + upCell = &hph.grid[row-1][col] + } + + depth := hph.depths[hph.activeRows-1] + updateKey = hexToCompact(hph.currentKey[:updateKeyLen]) + partsCount := bits.OnesCount16(hph.afterMap[row]) + + if hph.trace { + fmt.Printf("touchMap[%d]=%016b, afterMap[%d]=%016b\n", row, hph.touchMap[row], row, hph.afterMap[row]) + } + switch partsCount { + case 0: + // Everything deleted + if hph.touchMap[row] != 0 { + if row == 0 { + // Root is deleted because the tree is empty + hph.rootTouched = true + hph.rootPresent = false + } else if upDepth == 64 { + // Special case - all storage items of an account have been deleted, but it does not automatically delete the account, just makes it empty storage + // Therefore we are not propagating deletion upwards, but turn it into a modification + hph.touchMap[row-1] |= (uint16(1) << col) + } else { + // Deletion is propagated upwards + hph.touchMap[row-1] |= (uint16(1) << col) + hph.afterMap[row-1] &^= (uint16(1) << col) + } + } + upCell.hl = 0 + upCell.apl = 0 + upCell.spl = 0 + upCell.extLen = 0 + upCell.downHashedLen = 0 + if hph.branchBefore[row] { + branchData, _, err = EncodeBranch(0, hph.touchMap[row], 0, func(nibble int, skip bool) (*Cell, error) { return nil, nil }) + if err != nil { + return nil, updateKey, fmt.Errorf("failed to encode leaf node update: %w", err) + } + } + hph.activeRows-- + if upDepth > 0 { + hph.currentKeyLen = upDepth - 1 + } else { + hph.currentKeyLen = 0 + } + case 1: + // Leaf or extension node + if hph.touchMap[row] != 0 { + // any modifications + if row == 0 { + hph.rootTouched = true + } else { + // Modifiction is propagated upwards + hph.touchMap[row-1] |= (uint16(1) << col) + } + } + nibble := bits.TrailingZeros16(hph.afterMap[row]) + cell := &hph.grid[row][nibble] + upCell.extLen = 0 + upCell.fillFromLowerCell(cell, depth, hph.currentKey[upDepth:hph.currentKeyLen], nibble) + // Delete if it existed + if hph.branchBefore[row] { + //branchData, _, err = hph.EncodeBranchDirectAccess(0, row, depth) + branchData, _, err = EncodeBranch(0, hph.touchMap[row], 0, func(nibble int, skip bool) (*Cell, error) { return nil, nil }) + if err != nil { + return nil, updateKey, fmt.Errorf("failed to encode leaf node update: %w", err) + } + } + hph.activeRows-- + if upDepth > 0 { + hph.currentKeyLen = upDepth - 1 + } else { + hph.currentKeyLen = 0 + } + default: + // Branch node + if hph.touchMap[row] != 0 { + // any modifications + if row == 0 { + hph.rootTouched = true + } else { + // Modifiction is propagated upwards + hph.touchMap[row-1] |= (uint16(1) << col) + } + } + bitmap := hph.touchMap[row] & hph.afterMap[row] + if !hph.branchBefore[row] { + // There was no branch node before, so we need to touch even the singular child that existed + hph.touchMap[row] |= hph.afterMap[row] + bitmap |= hph.afterMap[row] + } + // Calculate total length of all hashes + totalBranchLen := 17 - partsCount // For every empty cell, one byte + for bitset, j := hph.afterMap[row], 0; bitset != 0; j++ { + bit := bitset & -bitset + nibble := bits.TrailingZeros16(bit) + cell := &hph.grid[row][nibble] + totalBranchLen += hph.computeCellHashLen(cell, depth) + bitset ^= bit + } + + hph.keccak2.Reset() + pt := rlp.GenerateStructLen(hph.hashAuxBuffer[:], totalBranchLen) + if _, err := hph.keccak2.Write(hph.hashAuxBuffer[:pt]); err != nil { + return nil, nil, err + } + + b := [...]byte{0x80} + cellGetter := func(nibble int, skip bool) (*Cell, error) { + if skip { + if _, err := hph.keccak2.Write(b[:]); err != nil { + return nil, fmt.Errorf("failed to write empty nibble to hash: %w", err) + } + if hph.trace { + fmt.Printf("%x: empty(%d,%x)\n", nibble, row, nibble) + } + return nil, nil + } + cell := &hph.grid[row][nibble] + cellHash, err := hph.computeCellHash(cell, depth, hph.hashAuxBuffer[:0]) + if err != nil { + return nil, err + } + if hph.trace { + fmt.Printf("%x: computeCellHash(%d,%x,depth=%d)=[%x]\n", nibble, row, nibble, depth, cellHash) + } + if _, err := hph.keccak2.Write(cellHash); err != nil { + return nil, err + } + + return cell, nil + } + + var lastNibble int + var err error + _ = cellGetter + + //branchData, lastNibble, err = hph.EncodeBranchDirectAccess(bitmap, row, depth, branchData) + branchData, lastNibble, err = EncodeBranch(bitmap, hph.touchMap[row], hph.afterMap[row], cellGetter) + if err != nil { + return nil, nil, fmt.Errorf("failed to encode branch update: %w", err) + } + for i := lastNibble; i < 17; i++ { + if _, err := hph.keccak2.Write(b[:]); err != nil { + return nil, nil, err + } + if hph.trace { + fmt.Printf("%x: empty(%d,%x)\n", i, row, i) + } + } + upCell.extLen = depth - upDepth - 1 + upCell.downHashedLen = upCell.extLen + if upCell.extLen > 0 { + copy(upCell.extension[:], hph.currentKey[upDepth:hph.currentKeyLen]) + copy(upCell.downHashedKey[:], hph.currentKey[upDepth:hph.currentKeyLen]) + } + if depth < 64 { + upCell.apl = 0 + } + upCell.spl = 0 + upCell.hl = 32 + if _, err := hph.keccak2.Read(upCell.h[:]); err != nil { + return nil, nil, err + } + if hph.trace { + fmt.Printf("} [%x]\n", upCell.h[:]) + } + hph.activeRows-- + if upDepth > 0 { + hph.currentKeyLen = upDepth - 1 + } else { + hph.currentKeyLen = 0 + } + } + if branchData != nil { + if hph.trace { + fmt.Printf("fold: update key: %x, branchData: [%x]\n", CompactedKeyToHex(updateKey), branchData) + } + } + return branchData, updateKey, nil +} + +func (hph *HexPatriciaHashed) deleteCell(hashedKey []byte) { + if hph.trace { + fmt.Printf("deleteCell, activeRows = %d\n", hph.activeRows) + } + var cell *Cell + if hph.activeRows == 0 { + // Remove the root + cell = &hph.root + hph.rootTouched = true + hph.rootPresent = false + } else { + row := hph.activeRows - 1 + if hph.depths[row] < len(hashedKey) { + if hph.trace { + fmt.Printf("deleteCell skipping spurious delete depth=%d, len(hashedKey)=%d\n", hph.depths[row], len(hashedKey)) + } + return + } + col := int(hashedKey[hph.currentKeyLen]) + cell = &hph.grid[row][col] + if hph.afterMap[row]&(uint16(1)< 0; unfolding = hph.needUnfolding(hashedKey) { + if err := hph.unfold(hashedKey, unfolding); err != nil { + return nil, nil, fmt.Errorf("unfold: %w", err) + } + } + + // Update the cell + stagedCell.fillEmpty() + if len(plainKey) == hph.accountKeyLen { + if err := hph.accountFn(plainKey, stagedCell); err != nil { + return nil, nil, fmt.Errorf("accountFn for key %x failed: %w", plainKey, err) + } + if !stagedCell.Delete { + cell := hph.updateCell(plainKey, hashedKey) + cell.setAccountFields(stagedCell.CodeHash[:], &stagedCell.Balance, stagedCell.Nonce) + + if hph.trace { + fmt.Printf("accountFn reading key %x => balance=%v nonce=%v codeHash=%x\n", cell.apk, cell.Balance.Uint64(), cell.Nonce, cell.CodeHash) + } + } + } else { + if err = hph.storageFn(plainKey, stagedCell); err != nil { + return nil, nil, fmt.Errorf("storageFn for key %x failed: %w", plainKey, err) + } + if !stagedCell.Delete { + hph.updateCell(plainKey, hashedKey).setStorage(stagedCell.Storage[:stagedCell.StorageLen]) + if hph.trace { + fmt.Printf("storageFn reading key %x => %x\n", plainKey, stagedCell.Storage[:stagedCell.StorageLen]) + } + } + } + + if stagedCell.Delete { + if hph.trace { + fmt.Printf("delete cell %x hash %x\n", plainKey, hashedKey) + } + hph.deleteCell(hashedKey) + } + } + // Folding everything up to the root + for hph.activeRows > 0 { + if branchData, updateKey, err := hph.fold(); err != nil { + return nil, nil, fmt.Errorf("final fold: %w", err) + } else if branchData != nil { + branchNodeUpdates[string(updateKey)] = branchData + } + } + + rootHash, err = hph.RootHash() + if err != nil { + return nil, branchNodeUpdates, fmt.Errorf("root hash evaluation failed: %w", err) + } + return rootHash, branchNodeUpdates, nil +} + +func (hph *HexPatriciaHashed) SetTrace(trace bool) { hph.trace = trace } + +func (hph *HexPatriciaHashed) Variant() TrieVariant { return VariantHexPatriciaTrie } + +// Reset allows HexPatriciaHashed instance to be reused for the new commitment calculation +func (hph *HexPatriciaHashed) Reset() { + hph.rootChecked = false + hph.root.hl = 0 + hph.root.downHashedLen = 0 + hph.root.apl = 0 + hph.root.spl = 0 + hph.root.extLen = 0 + copy(hph.root.CodeHash[:], EmptyCodeHash) + hph.root.StorageLen = 0 + hph.root.Balance.Clear() + hph.root.Nonce = 0 + hph.rootTouched = false + hph.rootPresent = true +} + +func (hph *HexPatriciaHashed) ResetFns( + branchFn func(prefix []byte) ([]byte, error), + accountFn func(plainKey []byte, cell *Cell) error, + storageFn func(plainKey []byte, cell *Cell) error, +) { + hph.branchFn = branchFn + hph.accountFn = accountFn + hph.storageFn = storageFn +} + +type stateRootFlag int8 + +var ( + stateRootPresent stateRootFlag = 1 + stateRootChecked stateRootFlag = 2 + stateRootTouched stateRootFlag = 4 +) + +func (s *state) Encode(buf []byte) ([]byte, error) { + var rootFlags stateRootFlag + if s.RootPresent { + rootFlags |= stateRootPresent + } + if s.RootChecked { + rootFlags |= stateRootChecked + } + if s.RootTouched { + rootFlags |= stateRootTouched + } + + ee := bytes.NewBuffer(buf) + if err := binary.Write(ee, binary.BigEndian, s.CurrentKeyLen); err != nil { + return nil, fmt.Errorf("encode currentKeyLen: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, int8(rootFlags)); err != nil { + return nil, fmt.Errorf("encode rootFlags: %w", err) + } + if n, err := ee.Write(s.CurrentKey[:]); err != nil || n != len(s.CurrentKey) { + return nil, fmt.Errorf("encode currentKey: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, uint16(len(s.Root))); err != nil { + return nil, fmt.Errorf("encode root len: %w", err) + } + if n, err := ee.Write(s.Root); err != nil || n != len(s.Root) { + return nil, fmt.Errorf("encode root: %w", err) + } + d := make([]byte, len(s.Depths)) + for i := 0; i < len(s.Depths); i++ { + d[i] = byte(s.Depths[i]) + } + if n, err := ee.Write(d); err != nil || n != len(s.Depths) { + return nil, fmt.Errorf("encode depths: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, s.TouchMap); err != nil { + return nil, fmt.Errorf("encode touchMap: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, s.AfterMap); err != nil { + return nil, fmt.Errorf("encode afterMap: %w", err) + } + + var before1, before2 uint64 + for i := 0; i < 64; i++ { + if s.BranchBefore[i] { + before1 |= 1 << i + } + } + for i, j := 64, 0; i < 128; i, j = i+1, j+1 { + if s.BranchBefore[i] { + before2 |= 1 << j + } + } + if err := binary.Write(ee, binary.BigEndian, before1); err != nil { + return nil, fmt.Errorf("encode branchBefore_1: %w", err) + } + if err := binary.Write(ee, binary.BigEndian, before2); err != nil { + return nil, fmt.Errorf("encode branchBefore_2: %w", err) + } + return ee.Bytes(), nil +} + +func (s *state) Decode(buf []byte) error { + aux := bytes.NewBuffer(buf) + if err := binary.Read(aux, binary.BigEndian, &s.CurrentKeyLen); err != nil { + return fmt.Errorf("currentKeyLen: %w", err) + } + var rootFlags stateRootFlag + if err := binary.Read(aux, binary.BigEndian, &rootFlags); err != nil { + return fmt.Errorf("rootFlags: %w", err) + } + + if rootFlags&stateRootPresent != 0 { + s.RootPresent = true + } + if rootFlags&stateRootTouched != 0 { + s.RootTouched = true + } + if rootFlags&stateRootChecked != 0 { + s.RootChecked = true + } + if n, err := aux.Read(s.CurrentKey[:]); err != nil || n != 128 { + return fmt.Errorf("currentKey: %w", err) + } + var rootSize uint16 + if err := binary.Read(aux, binary.BigEndian, &rootSize); err != nil { + return fmt.Errorf("root size: %w", err) + } + s.Root = make([]byte, rootSize) + if _, err := aux.Read(s.Root); err != nil { + return fmt.Errorf("root: %w", err) + } + d := make([]byte, len(s.Depths)) + if err := binary.Read(aux, binary.BigEndian, &d); err != nil { + return fmt.Errorf("depths: %w", err) + } + for i := 0; i < len(s.Depths); i++ { + s.Depths[i] = int(d[i]) + } + if err := binary.Read(aux, binary.BigEndian, &s.TouchMap); err != nil { + return fmt.Errorf("touchMap: %w", err) + } + if err := binary.Read(aux, binary.BigEndian, &s.AfterMap); err != nil { + return fmt.Errorf("afterMap: %w", err) + } + var branch1, branch2 uint64 + if err := binary.Read(aux, binary.BigEndian, &branch1); err != nil { + return fmt.Errorf("branchBefore1: %w", err) + } + if err := binary.Read(aux, binary.BigEndian, &branch2); err != nil { + return fmt.Errorf("branchBefore2: %w", err) + } + + for i := 0; i < 64; i++ { + if branch1&(1< 0 + buf := make([]byte, bufLen) + buf[0] = zeroByte + return decodeKey(key[keyPos:], buf) +} + +func makeCompactZeroByte(key []byte) (compactZeroByte byte, keyPos, keyLen int) { + keyLen = len(key) + if hasTerm(key) { + keyLen-- + compactZeroByte = 0x20 + } + var firstNibble byte + if len(key) > 0 { + firstNibble = key[0] + } + if keyLen&1 == 1 { + compactZeroByte |= 0x10 | firstNibble // Odd: (1<<4) + first nibble + keyPos++ + } + + return +} + +func decodeKey(key, buf []byte) []byte { + keyLen := len(key) + if hasTerm(key) { + keyLen-- + } + for keyIndex, bufIndex := 0, 1; keyIndex < keyLen; keyIndex, bufIndex = keyIndex+2, bufIndex+1 { + if keyIndex == keyLen-1 { + buf[bufIndex] = buf[bufIndex] & 0x0f + } else { + buf[bufIndex] = key[keyIndex+1] + } + buf[bufIndex] |= key[keyIndex] << 4 + } + return buf +} + +func CompactedKeyToHex(compact []byte) []byte { + if len(compact) == 0 { + return compact + } + base := keybytesToHexNibbles(compact) + // delete terminator flag + if base[0] < 2 { + base = base[:len(base)-1] + } + // apply odd flag + chop := 2 - base[0]&1 + return base[chop:] +} + +func keybytesToHexNibbles(str []byte) []byte { + l := len(str)*2 + 1 + var nibbles = make([]byte, l) + for i, b := range str { + nibbles[i*2] = b / 16 + nibbles[i*2+1] = b % 16 + } + nibbles[l-1] = 16 + return nibbles +} + +// hasTerm returns whether a hex key has the terminator flag. +func hasTerm(s []byte) bool { + return len(s) > 0 && s[len(s)-1] == 16 +} + +func commonPrefixLen(b1, b2 []byte) int { + var i int + for i = 0; i < len(b1) && i < len(b2); i++ { + if b1[i] != b2[i] { + break + } + } + return i +} + +func (hph *HexPatriciaHashed) ProcessUpdates(plainKeys, hashedKeys [][]byte, updates []Update) (rootHash []byte, branchNodeUpdates map[string]BranchData, err error) { + branchNodeUpdates = make(map[string]BranchData) + + for i, plainKey := range plainKeys { + hashedKey := hashedKeys[i] + if hph.trace { + fmt.Printf("plainKey=[%x], hashedKey=[%x], currentKey=[%x]\n", plainKey, hashedKey, hph.currentKey[:hph.currentKeyLen]) + } + // Keep folding until the currentKey is the prefix of the key we modify + for hph.needFolding(hashedKey) { + if branchData, updateKey, err := hph.fold(); err != nil { + return nil, nil, fmt.Errorf("fold: %w", err) + } else if branchData != nil { + branchNodeUpdates[string(updateKey)] = branchData + } + } + // Now unfold until we step on an empty cell + for unfolding := hph.needUnfolding(hashedKey); unfolding > 0; unfolding = hph.needUnfolding(hashedKey) { + if err := hph.unfold(hashedKey, unfolding); err != nil { + return nil, nil, fmt.Errorf("unfold: %w", err) + } + } + + update := updates[i] + // Update the cell + if update.Flags == DeleteUpdate { + hph.deleteCell(hashedKey) + if hph.trace { + fmt.Printf("key %x deleted\n", plainKey) + } + } else { + cell := hph.updateCell(plainKey, hashedKey) + if hph.trace { + fmt.Printf("accountFn updated key %x =>", plainKey) + } + if update.Flags&BalanceUpdate != 0 { + if hph.trace { + fmt.Printf(" balance=%d", update.Balance.Uint64()) + } + cell.Balance.Set(&update.Balance) + } + if update.Flags&NonceUpdate != 0 { + if hph.trace { + fmt.Printf(" nonce=%d", update.Nonce) + } + cell.Nonce = update.Nonce + } + if update.Flags&CodeUpdate != 0 { + if hph.trace { + fmt.Printf(" codeHash=%x", update.CodeHashOrStorage) + } + copy(cell.CodeHash[:], update.CodeHashOrStorage[:]) + } + if hph.trace { + fmt.Printf("\n") + } + if update.Flags&StorageUpdate != 0 { + cell.setStorage(update.CodeHashOrStorage[:update.ValLength]) + if hph.trace { + fmt.Printf("\rstorageFn filled key %x => %x\n", plainKey, update.CodeHashOrStorage[:update.ValLength]) + } + } + } + } + // Folding everything up to the root + for hph.activeRows > 0 { + if branchData, updateKey, err := hph.fold(); err != nil { + return nil, nil, fmt.Errorf("final fold: %w", err) + } else if branchData != nil { + branchNodeUpdates[string(updateKey)] = branchData + } + } + + rootHash, err = hph.RootHash() + if err != nil { + return nil, branchNodeUpdates, fmt.Errorf("root hash evaluation failed: %w", err) + } + return rootHash, branchNodeUpdates, nil +} + +// nolint +// Hashes provided key and expands resulting hash into nibbles (each byte split into two nibbles by 4 bits) +func (hph *HexPatriciaHashed) hashAndNibblizeKey(key []byte) []byte { + hashedKey := make([]byte, length.Hash) + + hph.keccak.Reset() + hph.keccak.Write(key[:length.Addr]) + copy(hashedKey[:length.Hash], hph.keccak.Sum(nil)) + + if len(key[length.Addr:]) > 0 { + hashedKey = append(hashedKey, make([]byte, length.Hash)...) + hph.keccak.Reset() + hph.keccak.Write(key[length.Addr:]) + copy(hashedKey[length.Hash:], hph.keccak.Sum(nil)) + } + + nibblized := make([]byte, len(hashedKey)*2) + for i, b := range hashedKey { + nibblized[i*2] = (b >> 4) & 0xf + nibblized[i*2+1] = b & 0xf + } + return nibblized +} + +type UpdateFlags uint8 + +const ( + CodeUpdate UpdateFlags = 1 + DeleteUpdate UpdateFlags = 2 + BalanceUpdate UpdateFlags = 4 + NonceUpdate UpdateFlags = 8 + StorageUpdate UpdateFlags = 16 +) + +func (uf UpdateFlags) String() string { + var sb strings.Builder + if uf == DeleteUpdate { + sb.WriteString("Delete") + } else { + if uf&BalanceUpdate != 0 { + sb.WriteString("+Balance") + } + if uf&NonceUpdate != 0 { + sb.WriteString("+Nonce") + } + if uf&CodeUpdate != 0 { + sb.WriteString("+Code") + } + if uf&StorageUpdate != 0 { + sb.WriteString("+Storage") + } + } + return sb.String() +} + +type Update struct { + Flags UpdateFlags + Balance uint256.Int + Nonce uint64 + CodeHashOrStorage [length.Hash]byte + ValLength int +} + +func (u *Update) DecodeForStorage(enc []byte) { + u.Nonce = 0 + u.Balance.Clear() + copy(u.CodeHashOrStorage[:], EmptyCodeHash) + + pos := 0 + nonceBytes := int(enc[pos]) + pos++ + if nonceBytes > 0 { + u.Nonce = bytesToUint64(enc[pos : pos+nonceBytes]) + pos += nonceBytes + } + balanceBytes := int(enc[pos]) + pos++ + if balanceBytes > 0 { + u.Balance.SetBytes(enc[pos : pos+balanceBytes]) + pos += balanceBytes + } + codeHashBytes := int(enc[pos]) + pos++ + if codeHashBytes > 0 { + copy(u.CodeHashOrStorage[:], enc[pos:pos+codeHashBytes]) + } +} + +func (u *Update) Encode(buf []byte, numBuf []byte) []byte { + buf = append(buf, byte(u.Flags)) + if u.Flags&BalanceUpdate != 0 { + buf = append(buf, byte(u.Balance.ByteLen())) + buf = append(buf, u.Balance.Bytes()...) + } + if u.Flags&NonceUpdate != 0 { + n := binary.PutUvarint(numBuf, u.Nonce) + buf = append(buf, numBuf[:n]...) + } + if u.Flags&CodeUpdate != 0 { + buf = append(buf, u.CodeHashOrStorage[:]...) + } + if u.Flags&StorageUpdate != 0 { + n := binary.PutUvarint(numBuf, uint64(u.ValLength)) + buf = append(buf, numBuf[:n]...) + if u.ValLength > 0 { + buf = append(buf, u.CodeHashOrStorage[:u.ValLength]...) + } + } + return buf +} + +func (u *Update) Decode(buf []byte, pos int) (int, error) { + if len(buf) < pos+1 { + return 0, fmt.Errorf("decode Update: buffer too small for flags") + } + u.Flags = UpdateFlags(buf[pos]) + pos++ + if u.Flags&BalanceUpdate != 0 { + if len(buf) < pos+1 { + return 0, fmt.Errorf("decode Update: buffer too small for balance len") + } + balanceLen := int(buf[pos]) + pos++ + if len(buf) < pos+balanceLen { + return 0, fmt.Errorf("decode Update: buffer too small for balance") + } + u.Balance.SetBytes(buf[pos : pos+balanceLen]) + pos += balanceLen + } + if u.Flags&NonceUpdate != 0 { + var n int + u.Nonce, n = binary.Uvarint(buf[pos:]) + if n == 0 { + return 0, fmt.Errorf("decode Update: buffer too small for nonce") + } + if n < 0 { + return 0, fmt.Errorf("decode Update: nonce overflow") + } + pos += n + } + if u.Flags&CodeUpdate != 0 { + if len(buf) < pos+32 { + return 0, fmt.Errorf("decode Update: buffer too small for codeHash") + } + copy(u.CodeHashOrStorage[:], buf[pos:pos+32]) + pos += 32 + } + if u.Flags&StorageUpdate != 0 { + l, n := binary.Uvarint(buf[pos:]) + if n == 0 { + return 0, fmt.Errorf("decode Update: buffer too small for storage len") + } + if n < 0 { + return 0, fmt.Errorf("decode Update: storage lee overflow") + } + pos += n + if len(buf) < pos+int(l) { + return 0, fmt.Errorf("decode Update: buffer too small for storage") + } + u.ValLength = int(l) + copy(u.CodeHashOrStorage[:], buf[pos:pos+int(l)]) + pos += int(l) + } + return pos, nil +} + +func (u *Update) String() string { + var sb strings.Builder + sb.WriteString(fmt.Sprintf("Flags: [%s]", u.Flags)) + if u.Flags&BalanceUpdate != 0 { + sb.WriteString(fmt.Sprintf(", Balance: [%d]", &u.Balance)) + } + if u.Flags&NonceUpdate != 0 { + sb.WriteString(fmt.Sprintf(", Nonce: [%d]", u.Nonce)) + } + if u.Flags&CodeUpdate != 0 { + sb.WriteString(fmt.Sprintf(", CodeHash: [%x]", u.CodeHashOrStorage)) + } + if u.Flags&StorageUpdate != 0 { + sb.WriteString(fmt.Sprintf(", Storage: [%x]", u.CodeHashOrStorage[:u.ValLength])) + } + return sb.String() +} diff --git a/erigon-lib/commitment/hex_patricia_hashed_bench_test.go b/erigon-lib/commitment/hex_patricia_hashed_bench_test.go new file mode 100644 index 00000000000..a44d4e7c865 --- /dev/null +++ b/erigon-lib/commitment/hex_patricia_hashed_bench_test.go @@ -0,0 +1,42 @@ +package commitment + +import ( + "encoding/hex" + "math/rand" + "testing" + + "github.com/ledgerwatch/erigon-lib/common/length" +) + +func Benchmark_HexPatriciaHahsed_ReviewKeys(b *testing.B) { + ms := NewMockState(&testing.T{}) + hph := NewHexPatriciaHashed(length.Addr, ms.branchFn, ms.accountFn, ms.storageFn) + hph.SetTrace(false) + + builder := NewUpdateBuilder() + + rnd := rand.New(rand.NewSource(133777)) + keysCount := rnd.Int31n(10_000_0) + + // generate updates + for i := int32(0); i < keysCount; i++ { + key := make([]byte, length.Addr) + + for j := 0; j < len(key); j++ { + key[j] = byte(rnd.Intn(256)) + } + builder.Balance(hex.EncodeToString(key), rnd.Uint64()) + } + + pk, hk, _ := builder.Build() + + b.Run("review_keys", func(b *testing.B) { + for i, j := 0, 0; i < b.N; i, j = i+1, j+1 { + if j >= len(pk) { + j = 0 + } + + hph.ReviewKeys(pk[j:j+1], hk[j:j+1]) + } + }) +} diff --git a/erigon-lib/commitment/hex_patricia_hashed_fuzz_test.go b/erigon-lib/commitment/hex_patricia_hashed_fuzz_test.go new file mode 100644 index 00000000000..e1e772b8385 --- /dev/null +++ b/erigon-lib/commitment/hex_patricia_hashed_fuzz_test.go @@ -0,0 +1,214 @@ +//go:build !nofuzz + +package commitment + +import ( + "bytes" + "encoding/binary" + "encoding/hex" + "math/rand" + "testing" + + "github.com/stretchr/testify/require" + "golang.org/x/crypto/sha3" + + "github.com/ledgerwatch/erigon-lib/common/length" +) + +// go test -trimpath -v -fuzz=Fuzz_ProcessUpdate$ -fuzztime=300s ./commitment + +func Fuzz_ProcessUpdate(f *testing.F) { + ha, _ := hex.DecodeString("13ccfe8074645cab4cb42b423625e055f0293c87") + hb, _ := hex.DecodeString("73f822e709a0016bfaed8b5e81b5f86de31d6895") + + f.Add(uint64(2), ha, uint64(1235105), hb) + + f.Fuzz(func(t *testing.T, balanceA uint64, accountA []byte, balanceB uint64, accountB []byte) { + if len(accountA) == 0 || len(accountA) > 20 || len(accountB) == 0 || len(accountB) > 20 { + t.Skip() + } + + builder := NewUpdateBuilder(). + Balance(hex.EncodeToString(accountA), balanceA). + Balance(hex.EncodeToString(accountB), balanceB) + + ms := NewMockState(t) + ms2 := NewMockState(t) + hph := NewHexPatriciaHashed(20, ms.branchFn, ms.accountFn, ms.storageFn) + hphAnother := NewHexPatriciaHashed(20, ms2.branchFn, ms2.accountFn, ms2.storageFn) + + hph.SetTrace(false) + hphAnother.SetTrace(false) + + plainKeys, hashedKeys, updates := builder.Build() + if err := ms.applyPlainUpdates(plainKeys, updates); err != nil { + t.Fatal(err) + } + if err := ms2.applyPlainUpdates(plainKeys, updates); err != nil { + t.Fatal(err) + } + + rootHash, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + if err != nil { + t.Fatal(err) + } + + ms.applyBranchNodeUpdates(branchNodeUpdates) + if len(rootHash) != 32 { + t.Fatalf("invalid root hash length: expected 32 bytes, got %v", len(rootHash)) + } + + rootHashAnother, branchNodeUpdates, err := hphAnother.ReviewKeys(plainKeys, hashedKeys) + if err != nil { + t.Fatal(err) + } + ms2.applyBranchNodeUpdates(branchNodeUpdates) + + if len(rootHashAnother) > 32 { + t.Fatalf("invalid root hash length: expected 32 bytes, got %v", len(rootHash)) + } + if !bytes.Equal(rootHash, rootHashAnother) { + t.Fatalf("invalid second root hash with same updates: [%v] != [%v]", hex.EncodeToString(rootHash), hex.EncodeToString(rootHashAnother)) + } + }) +} + +// go test -trimpath -v -fuzz=Fuzz_ProcessUpdates_ArbitraryUpdateCount -fuzztime=300s ./commitment + +func Fuzz_ProcessUpdates_ArbitraryUpdateCount(f *testing.F) { + ha, _ := hex.DecodeString("0008852883b2850c7a48f4b0eea3ccc4c04e6cb6025e9e8f7db2589c7dae81517c514790cfd6f668903161349e") + + f.Add(ha) + + f.Fuzz(func(t *testing.T, build []byte) { + if len(build) < 12 { + t.Skip() + } + i := 0 + keysCount := binary.BigEndian.Uint32(build[i : i+4]) + i += 4 + ks := binary.BigEndian.Uint32(build[i : i+4]) + keysSeed := rand.New(rand.NewSource(int64(ks))) + i += 4 + us := binary.BigEndian.Uint32(build[i : i+4]) + updateSeed := rand.New(rand.NewSource(int64(us))) + + t.Logf("fuzzing %d keys keysSeed=%d updateSeed=%d", keysCount, ks, us) + + builder := NewUpdateBuilder() + for k := uint32(0); k < keysCount; k++ { + var key [length.Addr]byte + n, err := keysSeed.Read(key[:]) + pkey := hex.EncodeToString(key[:]) + require.NoError(t, err) + require.EqualValues(t, length.Addr, n) + + aux := make([]byte, 32) + + flg := UpdateFlags(updateSeed.Intn(int(CodeUpdate | DeleteUpdate | StorageUpdate | NonceUpdate | BalanceUpdate))) + switch { + case flg&BalanceUpdate != 0: + builder.Balance(pkey, updateSeed.Uint64()).Nonce(pkey, updateSeed.Uint64()) + continue + case flg&CodeUpdate != 0: + keccak := sha3.NewLegacyKeccak256().(keccakState) + var s [8]byte + n, err := updateSeed.Read(s[:]) + require.NoError(t, err) + require.EqualValues(t, len(s), n) + keccak.Write(s[:]) + keccak.Read(aux) + + builder.CodeHash(pkey, hex.EncodeToString(aux)) + continue + case flg&StorageUpdate != 0: + sz := updateSeed.Intn(length.Hash) + n, err = updateSeed.Read(aux[:sz]) + require.NoError(t, err) + require.EqualValues(t, sz, n) + + loc := make([]byte, updateSeed.Intn(length.Hash-1)+1) + keysSeed.Read(loc) + builder.Storage(pkey, hex.EncodeToString(loc), hex.EncodeToString(aux[:sz])) + continue + case flg&DeleteUpdate != 0: + continue + default: + continue + } + } + + ms := NewMockState(t) + ms2 := NewMockState(t) + hph := NewHexPatriciaHashed(20, ms.branchFn, ms.accountFn, ms.storageFn) + hphAnother := NewHexPatriciaHashed(20, ms2.branchFn, ms2.accountFn, ms2.storageFn) + + plainKeys, hashedKeys, updates := builder.Build() + + hph.SetTrace(false) + hphAnother.SetTrace(false) + + err := ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + rootHashReview, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + require.Len(t, rootHashReview, length.Hash, "invalid root hash length") + + err = ms2.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + rootHashAnother, branchUpdatesAnother, err := hphAnother.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + ms2.applyBranchNodeUpdates(branchUpdatesAnother) + + require.Len(t, rootHashAnother, length.Hash, "invalid root hash length") + require.EqualValues(t, rootHashReview, rootHashAnother, "storage-based and update-based rootHash mismatch") + }) +} + +func Fuzz_HexPatriciaHashed_ReviewKeys(f *testing.F) { + var ( + keysCount uint64 = 100 + seed int64 = 1234123415 + ) + + f.Add(keysCount, seed) + + f.Fuzz(func(t *testing.T, keysCount uint64, seed int64) { + if keysCount > 10e9 { + return + } + + rnd := rand.New(rand.NewSource(seed)) + builder := NewUpdateBuilder() + + // generate updates + for i := 0; i < int(keysCount); i++ { + key := make([]byte, length.Addr) + + for j := 0; j < len(key); j++ { + key[j] = byte(rnd.Intn(256)) + } + builder.Balance(hex.EncodeToString(key), rnd.Uint64()) + } + + ms := NewMockState(t) + hph := NewHexPatriciaHashed(length.Addr, ms.branchFn, ms.accountFn, ms.storageFn) + + hph.SetTrace(false) + + plainKeys, hashedKeys, updates := builder.Build() + if err := ms.applyPlainUpdates(plainKeys, updates); err != nil { + t.Fatal(err) + } + + rootHash, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + require.Lenf(t, rootHash, length.Hash, "invalid root hash length") + }) +} diff --git a/erigon-lib/commitment/hex_patricia_hashed_test.go b/erigon-lib/commitment/hex_patricia_hashed_test.go new file mode 100644 index 00000000000..3798701c7c5 --- /dev/null +++ b/erigon-lib/commitment/hex_patricia_hashed_test.go @@ -0,0 +1,523 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package commitment + +import ( + "encoding/hex" + "fmt" + "math/rand" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/ledgerwatch/erigon-lib/common/length" +) + +func Test_HexPatriciaHashed_ResetThenSingularUpdates(t *testing.T) { + ms := NewMockState(t) + hph := NewHexPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + hph.SetTrace(false) + plainKeys, hashedKeys, updates := NewUpdateBuilder(). + Balance("00", 4). + Balance("01", 5). + Balance("02", 6). + Balance("03", 7). + Balance("04", 8). + Storage("04", "01", "0401"). + Storage("03", "56", "050505"). + Storage("03", "57", "060606"). + Balance("05", 9). + Storage("05", "02", "8989"). + Storage("05", "04", "9898"). + Build() + + err := ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + firstRootHash, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + + t.Logf("root hash %x\n", firstRootHash) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + + fmt.Printf("1. Generated updates\n") + renderUpdates(branchNodeUpdates) + + // More updates + hph.Reset() + hph.SetTrace(false) + plainKeys, hashedKeys, updates = NewUpdateBuilder(). + Storage("03", "58", "050505"). + Build() + err = ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + secondRootHash, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + require.NotEqualValues(t, firstRootHash, secondRootHash) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + fmt.Printf("2. Generated single update\n") + renderUpdates(branchNodeUpdates) + + // More updates + hph.Reset() + hph.SetTrace(false) + plainKeys, hashedKeys, updates = NewUpdateBuilder(). + Storage("03", "58", "070807"). + Build() + err = ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + thirdRootHash, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + require.NotEqualValues(t, secondRootHash, thirdRootHash) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + fmt.Printf("3. Generated single update\n") + renderUpdates(branchNodeUpdates) +} + +func Test_HexPatriciaHashed_EmptyUpdate(t *testing.T) { + ms := NewMockState(t) + hph := NewHexPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + hph.SetTrace(false) + plainKeys, hashedKeys, updates := NewUpdateBuilder(). + Balance("00", 4). + Nonce("00", 246462653). + Balance("01", 5). + CodeHash("03", "aaaaaaaaaaf7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a870"). + Delete("00"). + Storage("04", "01", "0401"). + Storage("03", "56", "050505"). + Build() + + err := ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + hashBeforeEmptyUpdate, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + require.NotEmpty(t, hashBeforeEmptyUpdate) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + + fmt.Println("1. Updates applied") + renderUpdates(branchNodeUpdates) + + // generate empty updates and do NOT reset tree + hph.SetTrace(true) + + plainKeys, hashedKeys, updates = NewUpdateBuilder().Build() + + err = ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + hashAfterEmptyUpdate, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + fmt.Println("2. Empty updates applied without state reset") + + require.EqualValues(t, hashBeforeEmptyUpdate, hashAfterEmptyUpdate) +} + +func Test_HexPatriciaHashed_UniqueRepresentation(t *testing.T) { + ms := NewMockState(t) + ms2 := NewMockState(t) + + plainKeys, hashedKeys, updates := NewUpdateBuilder(). + Balance("f5", 4). + Balance("ff", 900234). + Balance("04", 1233). + Storage("04", "01", "0401"). + Balance("ba", 065606). + Balance("00", 4). + Balance("01", 5). + Balance("02", 6). + Balance("03", 7). + Storage("03", "56", "050505"). + Balance("05", 9). + Storage("03", "87", "060606"). + Balance("b9", 6). + Nonce("ff", 169356). + Storage("05", "02", "8989"). + Storage("f5", "04", "9898"). + Build() + + trieOne := NewHexPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + trieTwo := NewHexPatriciaHashed(1, ms2.branchFn, ms2.accountFn, ms2.storageFn) + + trieOne.SetTrace(true) + trieTwo.SetTrace(true) + + // single sequential update + roots := make([][]byte, 0) + // branchNodeUpdatesOne := make(map[string]BranchData) + fmt.Printf("1. Trie sequential update generated following branch updates\n") + for i := 0; i < len(updates); i++ { + if err := ms.applyPlainUpdates(plainKeys[i:i+1], updates[i:i+1]); err != nil { + t.Fatal(err) + } + + sequentialRoot, branchNodeUpdates, err := trieOne.ReviewKeys(plainKeys[i:i+1], hashedKeys[i:i+1]) + require.NoError(t, err) + roots = append(roots, sequentialRoot) + + ms.applyBranchNodeUpdates(branchNodeUpdates) + renderUpdates(branchNodeUpdates) + } + + err := ms2.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + fmt.Printf("\n2. Trie batch update generated following branch updates\n") + // batch update + batchRoot, branchNodeUpdatesTwo, err := trieTwo.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + renderUpdates(branchNodeUpdatesTwo) + + fmt.Printf("\n sequential roots:\n") + for i, rh := range roots { + fmt.Printf("%2d %+v\n", i, hex.EncodeToString(rh)) + } + + ms2.applyBranchNodeUpdates(branchNodeUpdatesTwo) + + require.EqualValues(t, batchRoot, roots[len(roots)-1], + "expected equal roots, got sequential [%v] != batch [%v]", hex.EncodeToString(roots[len(roots)-1]), hex.EncodeToString(batchRoot)) + require.Lenf(t, batchRoot, 32, "root hash length should be equal to 32 bytes") +} + +func Test_Sepolia(t *testing.T) { + ms := NewMockState(t) + + type TestData struct { + balances map[string][]byte + expectedRoot string + } + + tests := []TestData{ + { + expectedRoot: "5eb6e371a698b8d68f665192350ffcecbbbf322916f4b51bd79bb6887da3f494", + balances: map[string][]byte{ + "a2a6d93439144ffe4d27c9e088dcd8b783946263": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "bc11295936aa79d594139de1b2e12629414f3bdb": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "7cf5b79bfe291a67ab02b393e456ccc4c266f753": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "aaec86394441f915bce3e6ab399977e9906f3b69": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "f47cae1cf79ca6758bfc787dbd21e6bdbe7112b8": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "d7eddb78ed295b3c9629240e8924fb8d8874ddd8": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "8b7f0977bb4f0fbe7076fa22bc24aca043583f5e": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "e2e2659028143784d557bcec6ff3a0721048880a": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "d9a5179f091d85051d3c982785efd1455cec8699": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "beef32ca5b9a198d27b4e02f4c70439fe60356cf": {0xd3, 0xc2, 0x1b, 0xce, 0xcc, 0xed, 0xa1, 0x00, 0x00, 0x00}, + "0000006916a87b82333f4245046623b23794c65c": {0x08, 0x45, 0x95, 0x16, 0x14, 0x01, 0x48, 0x4a, 0x00, 0x00, 0x00}, + "b21c33de1fab3fa15499c62b59fe0cc3250020d1": {0x52, 0xb7, 0xd2, 0xdc, 0xc8, 0x0c, 0xd2, 0xe4, 0x00, 0x00, 0x00}, + "10f5d45854e038071485ac9e402308cf80d2d2fe": {0x52, 0xb7, 0xd2, 0xdc, 0xc8, 0x0c, 0xd2, 0xe4, 0x00, 0x00, 0x00}, + "d7d76c58b3a519e9fa6cc4d22dc017259bc49f1e": {0x52, 0xb7, 0xd2, 0xdc, 0xc8, 0x0c, 0xd2, 0xe4, 0x00, 0x00, 0x00}, + "799d329e5f583419167cd722962485926e338f4a": {0x0d, 0xe0, 0xb6, 0xb3, 0xa7, 0x64, 0x00, 0x00}, + }, + }, + { + expectedRoot: "c91d4ecd59dce3067d340b3aadfc0542974b4fb4db98af39f980a91ea00db9dc", + balances: map[string][]byte{ + "2f14582947e292a2ecd20c430b46f2d27cfe213c": {0x1B, 0xC1, 0x6D, 0x67, 0x4E, 0xC8, 0x00, 0x00}, + }, + }, + { + expectedRoot: "c91d4ecd59dce3067d340b3aadfc0542974b4fb4db98af39f980a91ea00db9dc", + balances: map[string][]byte{}, + }, + } + + hph := NewHexPatriciaHashed(length.Addr, ms.branchFn, ms.accountFn, ms.storageFn) + hph.SetTrace(true) + + for _, testData := range tests { + builder := NewUpdateBuilder() + + for address, balance := range testData.balances { + builder.IncrementBalance(address, balance) + } + plainKeys, hashedKeys, updates := builder.Build() + + if err := ms.applyPlainUpdates(plainKeys, updates); err != nil { + t.Fatal(err) + } + + rootHash, branchNodeUpdates, err := hph.ReviewKeys(plainKeys, hashedKeys) + if err != nil { + t.Fatal(err) + } + ms.applyBranchNodeUpdates(branchNodeUpdates) + + require.EqualValues(t, testData.expectedRoot, fmt.Sprintf("%x", rootHash)) + } +} + +func Test_HexPatriciaHashed_StateEncode(t *testing.T) { + //trie := NewHexPatriciaHashed(length.Hash, nil, nil, nil) + var s state + s.Root = make([]byte, 128) + rnd := rand.New(rand.NewSource(42)) + n, err := rnd.Read(s.CurrentKey[:]) + require.NoError(t, err) + require.EqualValues(t, 128, n) + n, err = rnd.Read(s.Root[:]) + require.NoError(t, err) + require.EqualValues(t, len(s.Root), n) + s.RootPresent = true + s.RootTouched = true + s.RootChecked = true + + s.CurrentKeyLen = int8(rnd.Intn(129)) + for i := 0; i < len(s.Depths); i++ { + s.Depths[i] = rnd.Intn(256) + } + for i := 0; i < len(s.TouchMap); i++ { + s.TouchMap[i] = uint16(rnd.Intn(1<<16 - 1)) + } + for i := 0; i < len(s.AfterMap); i++ { + s.AfterMap[i] = uint16(rnd.Intn(1<<16 - 1)) + } + for i := 0; i < len(s.BranchBefore); i++ { + if rnd.Intn(100) > 49 { + s.BranchBefore[i] = true + } + } + + enc, err := s.Encode(nil) + require.NoError(t, err) + require.NotEmpty(t, enc) + + var s1 state + err = s1.Decode(enc) + require.NoError(t, err) + + require.EqualValues(t, s.Root[:], s1.Root[:]) + require.EqualValues(t, s.Depths[:], s1.Depths[:]) + require.EqualValues(t, s.CurrentKeyLen, s1.CurrentKeyLen) + require.EqualValues(t, s.CurrentKey[:], s1.CurrentKey[:]) + require.EqualValues(t, s.AfterMap[:], s1.AfterMap[:]) + require.EqualValues(t, s.TouchMap[:], s1.TouchMap[:]) + require.EqualValues(t, s.BranchBefore[:], s1.BranchBefore[:]) + require.EqualValues(t, s.RootTouched, s1.RootTouched) + require.EqualValues(t, s.RootPresent, s1.RootPresent) + require.EqualValues(t, s.RootChecked, s1.RootChecked) +} + +func Test_HexPatriciaHashed_StateEncodeDecodeSetup(t *testing.T) { + ms := NewMockState(t) + + plainKeys, hashedKeys, updates := NewUpdateBuilder(). + Balance("f5", 4). + Balance("ff", 900234). + Balance("03", 7). + Storage("03", "56", "050505"). + Balance("05", 9). + Storage("03", "87", "060606"). + Balance("b9", 6). + Nonce("ff", 169356). + Storage("05", "02", "8989"). + Storage("f5", "04", "9898"). + Build() + + before := NewHexPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + after := NewHexPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + + err := ms.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + rhBefore, branchUpdates, err := before.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + ms.applyBranchNodeUpdates(branchUpdates) + + state, err := before.EncodeCurrentState(nil) + require.NoError(t, err) + + err = after.SetState(state) + require.NoError(t, err) + + rhAfter, err := after.RootHash() + require.NoError(t, err) + require.EqualValues(t, rhBefore, rhAfter) + + // create new update and apply it to both tries + nextPK, nextHashed, nextUpdates := NewUpdateBuilder(). + Nonce("ff", 4). + Balance("b9", 6000000000). + Balance("ad", 8000000000). + Build() + + err = ms.applyPlainUpdates(nextPK, nextUpdates) + require.NoError(t, err) + + rh2Before, branchUpdates, err := before.ReviewKeys(nextPK, nextHashed) + require.NoError(t, err) + ms.applyBranchNodeUpdates(branchUpdates) + + rh2After, branchUpdates, err := after.ReviewKeys(nextPK, nextHashed) + require.NoError(t, err) + + _ = branchUpdates + + require.EqualValues(t, rh2Before, rh2After) +} + +func Test_HexPatriciaHashed_RestoreAndContinue(t *testing.T) { + ms := NewMockState(t) + ms2 := NewMockState(t) + + plainKeys, hashedKeys, updates := NewUpdateBuilder(). + Balance("f5", 4). + Balance("ff", 900234). + Balance("04", 1233). + Storage("04", "01", "0401"). + Balance("ba", 065606). + Balance("00", 4). + Balance("01", 5). + Balance("02", 6). + Balance("03", 7). + Storage("03", "56", "050505"). + Balance("05", 9). + Storage("03", "87", "060606"). + Balance("b9", 6). + Nonce("ff", 169356). + Storage("05", "02", "8989"). + Storage("f5", "04", "9898"). + Build() + + trieOne := NewHexPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + trieTwo := NewHexPatriciaHashed(1, ms2.branchFn, ms2.accountFn, ms2.storageFn) + + err := ms2.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + _ = updates + + batchRoot, branchNodeUpdatesTwo, err := trieTwo.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + renderUpdates(branchNodeUpdatesTwo) + ms2.applyBranchNodeUpdates(branchNodeUpdatesTwo) + + buf, err := trieTwo.EncodeCurrentState(nil) + require.NoError(t, err) + require.NotEmpty(t, buf) + + err = trieOne.SetState(buf) + require.NoError(t, err) + require.EqualValues(t, batchRoot[:], trieOne.root.h[:]) + require.EqualValues(t, trieTwo.root.hl, trieOne.root.hl) + require.EqualValues(t, trieTwo.root.apl, trieOne.root.apl) + if trieTwo.root.apl > 0 { + require.EqualValues(t, trieTwo.root.apk, trieOne.root.apk) + } + require.EqualValues(t, trieTwo.root.spl, trieOne.root.spl) + if trieTwo.root.apl > 0 { + require.EqualValues(t, trieTwo.root.spk, trieOne.root.spk) + } + if trieTwo.root.downHashedLen > 0 { + require.EqualValues(t, trieTwo.root.downHashedKey, trieOne.root.downHashedKey) + } + require.EqualValues(t, trieTwo.root.Nonce, trieOne.root.Nonce) + //require.EqualValues(t, trieTwo.root.CodeHash, trieOne.root.CodeHash) + require.EqualValues(t, trieTwo.root.StorageLen, trieOne.root.StorageLen) + require.EqualValues(t, trieTwo.root.extension, trieOne.root.extension) + + require.EqualValues(t, trieTwo.currentKey, trieOne.currentKey) + require.EqualValues(t, trieTwo.afterMap, trieOne.afterMap) + require.EqualValues(t, trieTwo.touchMap[:], trieOne.touchMap[:]) + require.EqualValues(t, trieTwo.branchBefore[:], trieOne.branchBefore[:]) + require.EqualValues(t, trieTwo.rootTouched, trieOne.rootTouched) + require.EqualValues(t, trieTwo.rootPresent, trieOne.rootPresent) + require.EqualValues(t, trieTwo.rootChecked, trieOne.rootChecked) + require.EqualValues(t, trieTwo.currentKeyLen, trieOne.currentKeyLen) +} + +func Test_HexPatriciaHashed_ProcessUpdates_UniqueRepresentation_AfterStateRestore(t *testing.T) { + ms := NewMockState(t) + ms2 := NewMockState(t) + + plainKeys, hashedKeys, updates := NewUpdateBuilder(). + Balance("f5", 4). + Balance("ff", 900234). + Balance("04", 1233). + Storage("04", "01", "0401"). + Balance("ba", 065606). + Balance("00", 4). + Balance("01", 5). + Balance("02", 6). + Balance("03", 7). + Storage("03", "56", "050505"). + Balance("05", 9). + Storage("03", "87", "060606"). + Balance("b9", 6). + Nonce("ff", 169356). + Storage("05", "02", "8989"). + Storage("f5", "04", "9898"). + Build() + + sequential := NewHexPatriciaHashed(1, ms.branchFn, ms.accountFn, ms.storageFn) + batch := NewHexPatriciaHashed(1, ms2.branchFn, ms2.accountFn, ms2.storageFn) + + batch.Reset() + sequential.Reset() + sequential.SetTrace(true) + batch.SetTrace(true) + + // single sequential update + roots := make([][]byte, 0) + prevState := make([]byte, 0) + fmt.Printf("1. Trie sequential update generated following branch updates\n") + for i := 0; i < len(updates); i++ { + if err := ms.applyPlainUpdates(plainKeys[i:i+1], updates[i:i+1]); err != nil { + t.Fatal(err) + } + if i == (len(updates) / 2) { + sequential.Reset() + sequential.ResetFns(ms.branchFn, ms.accountFn, ms.storageFn) + err := sequential.SetState(prevState) + require.NoError(t, err) + } + + sequentialRoot, branchNodeUpdates, err := sequential.ReviewKeys(plainKeys[i:i+1], hashedKeys[i:i+1]) + require.NoError(t, err) + roots = append(roots, sequentialRoot) + + renderUpdates(branchNodeUpdates) + ms.applyBranchNodeUpdates(branchNodeUpdates) + + if i == (len(updates)/2 - 1) { + prevState, err = sequential.EncodeCurrentState(nil) + require.NoError(t, err) + } + } + + err := ms2.applyPlainUpdates(plainKeys, updates) + require.NoError(t, err) + + fmt.Printf("\n2. Trie batch update generated following branch updates\n") + // batch update + batchRoot, branchNodeUpdatesTwo, err := batch.ReviewKeys(plainKeys, hashedKeys) + require.NoError(t, err) + renderUpdates(branchNodeUpdatesTwo) + ms2.applyBranchNodeUpdates(branchNodeUpdatesTwo) + + require.EqualValues(t, batchRoot, roots[len(roots)-1], + "expected equal roots, got sequential [%v] != batch [%v]", hex.EncodeToString(roots[len(roots)-1]), hex.EncodeToString(batchRoot)) + require.Lenf(t, batchRoot, 32, "root hash length should be equal to 32 bytes") +} diff --git a/erigon-lib/commitment/patricia_state_mock_test.go b/erigon-lib/commitment/patricia_state_mock_test.go new file mode 100644 index 00000000000..82dc932a2cb --- /dev/null +++ b/erigon-lib/commitment/patricia_state_mock_test.go @@ -0,0 +1,422 @@ +package commitment + +import ( + "encoding/binary" + "encoding/hex" + "fmt" + "testing" + + "github.com/holiman/uint256" + "golang.org/x/crypto/sha3" + "golang.org/x/exp/slices" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" +) + +// In memory commitment and state to use with the tests +type MockState struct { + t *testing.T + sm map[string][]byte // backbone of the state + cm map[string]BranchData // backbone of the commitments + numBuf [binary.MaxVarintLen64]byte +} + +func NewMockState(t *testing.T) *MockState { + t.Helper() + return &MockState{ + t: t, + sm: make(map[string][]byte), + cm: make(map[string]BranchData), + } +} + +func (ms MockState) branchFn(prefix []byte) ([]byte, error) { + if exBytes, ok := ms.cm[string(prefix)]; ok { + return exBytes[2:], nil // Skip touchMap, but keep afterMap + } + return nil, nil +} + +func (ms MockState) accountFn(plainKey []byte, cell *Cell) error { + exBytes, ok := ms.sm[string(plainKey[:])] + if !ok { + ms.t.Logf("accountFn not found key [%x]", plainKey) + cell.Delete = true + return nil + } + var ex Update + pos, err := ex.Decode(exBytes, 0) + if err != nil { + ms.t.Fatalf("accountFn decode existing [%x], bytes: [%x]: %v", plainKey, exBytes, err) + return nil + } + if pos != len(exBytes) { + ms.t.Fatalf("accountFn key [%x] leftover bytes in [%x], comsumed %x", plainKey, exBytes, pos) + return nil + } + if ex.Flags&StorageUpdate != 0 { + ms.t.Logf("accountFn reading storage item for key [%x]", plainKey) + return fmt.Errorf("storage read by accountFn") + } + if ex.Flags&DeleteUpdate != 0 { + ms.t.Fatalf("accountFn reading deleted account for key [%x]", plainKey) + return nil + } + if ex.Flags&BalanceUpdate != 0 { + cell.Balance.Set(&ex.Balance) + } else { + cell.Balance.Clear() + } + if ex.Flags&NonceUpdate != 0 { + cell.Nonce = ex.Nonce + } else { + cell.Nonce = 0 + } + if ex.Flags&CodeUpdate != 0 { + copy(cell.CodeHash[:], ex.CodeHashOrStorage[:]) + } else { + copy(cell.CodeHash[:], EmptyCodeHash) + } + return nil +} + +func (ms MockState) storageFn(plainKey []byte, cell *Cell) error { + exBytes, ok := ms.sm[string(plainKey[:])] + if !ok { + ms.t.Logf("storageFn not found key [%x]", plainKey) + cell.Delete = true + return nil + } + var ex Update + pos, err := ex.Decode(exBytes, 0) + if err != nil { + ms.t.Fatalf("storageFn decode existing [%x], bytes: [%x]: %v", plainKey, exBytes, err) + return nil + } + if pos != len(exBytes) { + ms.t.Fatalf("storageFn key [%x] leftover bytes in [%x], comsumed %x", plainKey, exBytes, pos) + return nil + } + if ex.Flags&BalanceUpdate != 0 { + ms.t.Logf("storageFn reading balance for key [%x]", plainKey) + return nil + } + if ex.Flags&NonceUpdate != 0 { + ms.t.Fatalf("storageFn reading nonce for key [%x]", plainKey) + return nil + } + if ex.Flags&CodeUpdate != 0 { + ms.t.Fatalf("storageFn reading codeHash for key [%x]", plainKey) + return nil + } + if ex.Flags&DeleteUpdate != 0 { + ms.t.Fatalf("storageFn reading deleted item for key [%x]", plainKey) + return nil + } + if ex.Flags&StorageUpdate != 0 { + copy(cell.Storage[:], ex.CodeHashOrStorage[:]) + cell.StorageLen = len(ex.CodeHashOrStorage) + } else { + cell.StorageLen = 0 + cell.Storage = [length.Hash]byte{} + } + return nil +} + +func (ms *MockState) applyPlainUpdates(plainKeys [][]byte, updates []Update) error { + for i, key := range plainKeys { + update := updates[i] + if update.Flags&DeleteUpdate != 0 { + delete(ms.sm, string(key)) + } else { + if exBytes, ok := ms.sm[string(key)]; ok { + var ex Update + pos, err := ex.Decode(exBytes, 0) + if err != nil { + return fmt.Errorf("applyPlainUpdates decode existing [%x], bytes: [%x]: %w", key, exBytes, err) + } + if pos != len(exBytes) { + return fmt.Errorf("applyPlainUpdates key [%x] leftover bytes in [%x], comsumed %x", key, exBytes, pos) + } + if update.Flags&BalanceUpdate != 0 { + ex.Flags |= BalanceUpdate + ex.Balance.Set(&update.Balance) + } + if update.Flags&NonceUpdate != 0 { + ex.Flags |= NonceUpdate + ex.Nonce = update.Nonce + } + if update.Flags&CodeUpdate != 0 { + ex.Flags |= CodeUpdate + copy(ex.CodeHashOrStorage[:], update.CodeHashOrStorage[:]) + } + if update.Flags&StorageUpdate != 0 { + ex.Flags |= StorageUpdate + copy(ex.CodeHashOrStorage[:], update.CodeHashOrStorage[:]) + } + ms.sm[string(key)] = ex.Encode(nil, ms.numBuf[:]) + } else { + ms.sm[string(key)] = update.Encode(nil, ms.numBuf[:]) + } + } + } + return nil +} + +func (ms *MockState) applyBranchNodeUpdates(updates map[string]BranchData) { + for key, update := range updates { + if pre, ok := ms.cm[key]; ok { + // Merge + merged, err := pre.MergeHexBranches(update, nil) + if err != nil { + panic(err) + } + ms.cm[key] = merged + } else { + ms.cm[key] = update + } + } +} + +func decodeHex(in string) []byte { + payload, err := hex.DecodeString(in) + if err != nil { + panic(err) + } + return payload +} + +// UpdateBuilder collects updates to the state +// and provides them in properly sorted form +type UpdateBuilder struct { + balances map[string]*uint256.Int + nonces map[string]uint64 + codeHashes map[string][length.Hash]byte + storages map[string]map[string][]byte + deletes map[string]struct{} + deletes2 map[string]map[string]struct{} + keyset map[string]struct{} + keyset2 map[string]map[string]struct{} +} + +func NewUpdateBuilder() *UpdateBuilder { + return &UpdateBuilder{ + balances: make(map[string]*uint256.Int), + nonces: make(map[string]uint64), + codeHashes: make(map[string][length.Hash]byte), + storages: make(map[string]map[string][]byte), + deletes: make(map[string]struct{}), + deletes2: make(map[string]map[string]struct{}), + keyset: make(map[string]struct{}), + keyset2: make(map[string]map[string]struct{}), + } +} + +func (ub *UpdateBuilder) Balance(addr string, balance uint64) *UpdateBuilder { + sk := string(decodeHex(addr)) + delete(ub.deletes, sk) + ub.balances[sk] = uint256.NewInt(balance) + ub.keyset[sk] = struct{}{} + return ub +} + +func (ub *UpdateBuilder) Nonce(addr string, nonce uint64) *UpdateBuilder { + sk := string(decodeHex(addr)) + delete(ub.deletes, sk) + ub.nonces[sk] = nonce + ub.keyset[sk] = struct{}{} + return ub +} + +func (ub *UpdateBuilder) CodeHash(addr string, hash string) *UpdateBuilder { + sk := string(decodeHex(addr)) + delete(ub.deletes, sk) + hcode, err := hex.DecodeString(hash) + if err != nil { + panic(fmt.Errorf("invalid code hash provided: %w", err)) + } + if len(hcode) != length.Hash { + panic(fmt.Errorf("code hash should be %d bytes long, got %d", length.Hash, len(hcode))) + } + + dst := [length.Hash]byte{} + copy(dst[:32], hcode) + + ub.codeHashes[sk] = dst + ub.keyset[sk] = struct{}{} + return ub +} + +func (ub *UpdateBuilder) Storage(addr string, loc string, value string) *UpdateBuilder { + sk1 := string(decodeHex(addr)) + sk2 := string(decodeHex(loc)) + v := decodeHex(value) + if d, ok := ub.deletes2[sk1]; ok { + delete(d, sk2) + if len(d) == 0 { + delete(ub.deletes2, sk1) + } + } + if k, ok := ub.keyset2[sk1]; ok { + k[sk2] = struct{}{} + } else { + ub.keyset2[sk1] = make(map[string]struct{}) + ub.keyset2[sk1][sk2] = struct{}{} + } + if s, ok := ub.storages[sk1]; ok { + s[sk2] = v + } else { + ub.storages[sk1] = make(map[string][]byte) + ub.storages[sk1][sk2] = v + } + return ub +} + +func (ub *UpdateBuilder) IncrementBalance(addr string, balance []byte) *UpdateBuilder { + sk := string(decodeHex(addr)) + delete(ub.deletes, sk) + increment := uint256.NewInt(0) + increment.SetBytes(balance) + if old, ok := ub.balances[sk]; ok { + balance := uint256.NewInt(0) + balance.Add(old, increment) + ub.balances[sk] = balance + } else { + ub.balances[sk] = increment + } + ub.keyset[sk] = struct{}{} + return ub +} + +func (ub *UpdateBuilder) Delete(addr string) *UpdateBuilder { + sk := string(decodeHex(addr)) + delete(ub.balances, sk) + delete(ub.nonces, sk) + delete(ub.codeHashes, sk) + delete(ub.storages, sk) + ub.deletes[sk] = struct{}{} + ub.keyset[sk] = struct{}{} + return ub +} + +func (ub *UpdateBuilder) DeleteStorage(addr string, loc string) *UpdateBuilder { + sk1 := string(decodeHex(addr)) + sk2 := string(decodeHex(loc)) + if s, ok := ub.storages[sk1]; ok { + delete(s, sk2) + if len(s) == 0 { + delete(ub.storages, sk1) + } + } + if k, ok := ub.keyset2[sk1]; ok { + k[sk2] = struct{}{} + } else { + ub.keyset2[sk1] = make(map[string]struct{}) + ub.keyset2[sk1][sk2] = struct{}{} + } + if d, ok := ub.deletes2[sk1]; ok { + d[sk2] = struct{}{} + } else { + ub.deletes2[sk1] = make(map[string]struct{}) + ub.deletes2[sk1][sk2] = struct{}{} + } + return ub +} + +// Build returns three slices (in the order sorted by the hashed keys) +// 1. Plain keys +// 2. Corresponding hashed keys +// 3. Corresponding updates +func (ub *UpdateBuilder) Build() (plainKeys, hashedKeys [][]byte, updates []Update) { + hashed := make([]string, 0, len(ub.keyset)+len(ub.keyset2)) + preimages := make(map[string][]byte) + preimages2 := make(map[string][]byte) + keccak := sha3.NewLegacyKeccak256() + for key := range ub.keyset { + keccak.Reset() + keccak.Write([]byte(key)) + h := keccak.Sum(nil) + hashedKey := make([]byte, len(h)*2) + for i, c := range h { + hashedKey[i*2] = (c >> 4) & 0xf + hashedKey[i*2+1] = c & 0xf + } + hashed = append(hashed, string(hashedKey)) + preimages[string(hashedKey)] = []byte(key) + } + hashedKey := make([]byte, 128) + for sk1, k := range ub.keyset2 { + keccak.Reset() + keccak.Write([]byte(sk1)) + h := keccak.Sum(nil) + for i, c := range h { + hashedKey[i*2] = (c >> 4) & 0xf + hashedKey[i*2+1] = c & 0xf + } + for sk2 := range k { + keccak.Reset() + keccak.Write([]byte(sk2)) + h2 := keccak.Sum(nil) + for i, c := range h2 { + hashedKey[64+i*2] = (c >> 4) & 0xf + hashedKey[64+i*2+1] = c & 0xf + } + hs := string(common.Copy(hashedKey)) + hashed = append(hashed, hs) + preimages[hs] = []byte(sk1) + preimages2[hs] = []byte(sk2) + } + + } + slices.Sort(hashed) + plainKeys = make([][]byte, len(hashed)) + hashedKeys = make([][]byte, len(hashed)) + updates = make([]Update, len(hashed)) + for i, hashedKey := range hashed { + hashedKeys[i] = []byte(hashedKey) + key := preimages[hashedKey] + key2 := preimages2[hashedKey] + plainKey := make([]byte, len(key)+len(key2)) + copy(plainKey[:], key) + if key2 != nil { + copy(plainKey[len(key):], key2) + } + plainKeys[i] = plainKey + u := &updates[i] + if key2 == nil { + if balance, ok := ub.balances[string(key)]; ok { + u.Flags |= BalanceUpdate + u.Balance.Set(balance) + } + if nonce, ok := ub.nonces[string(key)]; ok { + u.Flags |= NonceUpdate + u.Nonce = nonce + } + if codeHash, ok := ub.codeHashes[string(key)]; ok { + u.Flags |= CodeUpdate + copy(u.CodeHashOrStorage[:], codeHash[:]) + } + if _, del := ub.deletes[string(key)]; del { + u.Flags = DeleteUpdate + continue + } + } else { + if dm, ok1 := ub.deletes2[string(key)]; ok1 { + if _, ok2 := dm[string(key2)]; ok2 { + u.Flags = DeleteUpdate + continue + } + } + if sm, ok1 := ub.storages[string(key)]; ok1 { + if storage, ok2 := sm[string(key2)]; ok2 { + u.Flags |= StorageUpdate + u.CodeHashOrStorage = [length.Hash]byte{} + u.ValLength = len(storage) + copy(u.CodeHashOrStorage[:], storage) + } + } + } + } + return +} diff --git a/erigon-lib/common/address.go b/erigon-lib/common/address.go new file mode 100644 index 00000000000..4ad22034520 --- /dev/null +++ b/erigon-lib/common/address.go @@ -0,0 +1,183 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package common + +import ( + "bytes" + "database/sql/driver" + "encoding/hex" + "fmt" + "math/big" + "reflect" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/crypto/cryptopool" +) + +var ( + addressT = reflect.TypeOf(Address{}) +) + +// Address represents the 20 byte address of an Ethereum account. +type Address [length.Addr]byte + +// BytesToAddress returns Address with value b. +// If b is larger than len(h), b will be cropped from the left. +func BytesToAddress(b []byte) Address { + var a Address + a.SetBytes(b) + return a +} + +// BigToAddress returns Address with byte values of b. +// If b is larger than len(h), b will be cropped from the left. +func BigToAddress(b *big.Int) Address { return BytesToAddress(b.Bytes()) } + +// HexToAddress returns Address with byte values of s. +// If s is larger than len(h), s will be cropped from the left. +func HexToAddress(s string) Address { return BytesToAddress(hexutility.FromHex(s)) } + +// IsHexAddress verifies whether a string can represent a valid hex-encoded +// Ethereum address or not. +func IsHexAddress(s string) bool { + if hexutility.Has0xPrefix(s) { + s = s[2:] + } + return len(s) == 2*length.Addr && hexutility.IsHex(s) +} + +// Bytes gets the string representation of the underlying address. +func (a Address) Bytes() []byte { return a[:] } + +// Hash converts an address to a hash by left-padding it with zeros. +func (a Address) Hash() Hash { return BytesToHash(a[:]) } + +// Hex returns an EIP55-compliant hex string representation of the address. +func (a Address) Hex() string { + return string(a.checksumHex()) +} + +// String implements fmt.Stringer. +func (a Address) String() string { + return a.Hex() +} + +func (a *Address) checksumHex() []byte { + buf := a.hex() + + // compute checksum + sha := cryptopool.GetLegacyKeccak256() + //nolint:errcheck + sha.Write(buf[2:]) + hash := sha.Sum(nil) + cryptopool.ReturnLegacyKeccak256(sha) + + for i := 2; i < len(buf); i++ { + hashByte := hash[(i-2)/2] + if i%2 == 0 { + hashByte = hashByte >> 4 + } else { + hashByte &= 0xf + } + if buf[i] > '9' && hashByte > 7 { + buf[i] -= 32 + } + } + return buf +} + +func (a Address) hex() []byte { + var buf [len(a)*2 + 2]byte + copy(buf[:2], "0x") + hex.Encode(buf[2:], a[:]) + return buf[:] +} + +// Format implements fmt.Formatter. +// Address supports the %v, %s, %v, %x, %X and %d format verbs. +func (a Address) Format(s fmt.State, c rune) { + switch c { + case 'v', 's': + s.Write(a.checksumHex()) + case 'q': + q := []byte{'"'} + s.Write(q) + s.Write(a.checksumHex()) + s.Write(q) + case 'x', 'X': + // %x disables the checksum. + hex := a.hex() + if !s.Flag('#') { + hex = hex[2:] + } + if c == 'X' { + hex = bytes.ToUpper(hex) + } + s.Write(hex) + case 'd': + fmt.Fprint(s, ([len(a)]byte)(a)) + default: + fmt.Fprintf(s, "%%!%c(address=%x)", c, a) + } +} + +// SetBytes sets the address to the value of b. +// If b is larger than len(a), b will be cropped from the left. +func (a *Address) SetBytes(b []byte) { + if len(b) > len(a) { + b = b[len(b)-length.Addr:] + } + copy(a[length.Addr-len(b):], b) +} + +// MarshalText returns the hex representation of a. +func (a Address) MarshalText() ([]byte, error) { + b := a[:] + result := make([]byte, len(b)*2+2) + copy(result, hexPrefix) + hex.Encode(result[2:], b) + return result, nil +} + +// UnmarshalText parses a hash in hex syntax. +func (a *Address) UnmarshalText(input []byte) error { + return hexutility.UnmarshalFixedText("Address", input, a[:]) +} + +// UnmarshalJSON parses a hash in hex syntax. +func (a *Address) UnmarshalJSON(input []byte) error { + return hexutility.UnmarshalFixedJSON(addressT, input, a[:]) +} + +// Scan implements Scanner for database/sql. +func (a *Address) Scan(src interface{}) error { + srcB, ok := src.([]byte) + if !ok { + return fmt.Errorf("can't scan %T into Address", src) + } + if len(srcB) != length.Addr { + return fmt.Errorf("can't scan []byte of len %d into Address, want %d", len(srcB), length.Addr) + } + copy(a[:], srcB) + return nil +} + +// Value implements valuer for database/sql. +func (a Address) Value() (driver.Value, error) { + return a[:], nil +} diff --git a/erigon-lib/common/assert/assert_disable.go b/erigon-lib/common/assert/assert_disable.go new file mode 100644 index 00000000000..baf2dd9c2f1 --- /dev/null +++ b/erigon-lib/common/assert/assert_disable.go @@ -0,0 +1,5 @@ +//go:build !assert + +package assert + +const Enable = false diff --git a/erigon-lib/common/assert/assert_enable.go b/erigon-lib/common/assert/assert_enable.go new file mode 100644 index 00000000000..8539e4a4bbf --- /dev/null +++ b/erigon-lib/common/assert/assert_enable.go @@ -0,0 +1,5 @@ +//go:build assert + +package assert + +const Enable = true diff --git a/erigon-lib/common/background/progress.go b/erigon-lib/common/background/progress.go new file mode 100644 index 00000000000..5a4f702bfa5 --- /dev/null +++ b/erigon-lib/common/background/progress.go @@ -0,0 +1,98 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package background + +import ( + "fmt" + "strings" + "sync" + "sync/atomic" + + btree2 "github.com/tidwall/btree" +) + +// Progress - tracks background job progress +type Progress struct { + Name atomic.Pointer[string] + Processed, Total atomic.Uint64 + i int +} + +func (p *Progress) percent() int { + return int( + (float64(p.Processed.Load()) / float64(p.Total.Load())) * 100, + ) +} + +// ProgressSet - tracks multiple background job progress +type ProgressSet struct { + list *btree2.Map[int, *Progress] + i int + lock sync.RWMutex +} + +func NewProgressSet() *ProgressSet { + return &ProgressSet{list: btree2.NewMap[int, *Progress](128)} +} +func (s *ProgressSet) AddNew(fName string, total uint64) *Progress { + p := &Progress{} + p.Name.Store(&fName) + p.Total.Store(total) + s.Add(p) + return p +} +func (s *ProgressSet) Add(p *Progress) { + s.lock.Lock() + defer s.lock.Unlock() + s.i++ + p.i = s.i + s.list.Set(p.i, p) +} + +func (s *ProgressSet) Delete(p *Progress) { + s.lock.Lock() + defer s.lock.Unlock() + s.list.Delete(p.i) +} +func (s *ProgressSet) Has() bool { + s.lock.Lock() + defer s.lock.Unlock() + return s.list.Len() > 0 +} + +func (s *ProgressSet) String() string { + s.lock.RLock() + defer s.lock.RUnlock() + var sb strings.Builder + var i int + s.list.Scan(func(_ int, p *Progress) bool { + if p == nil { + return true + } + namePtr := p.Name.Load() + if namePtr == nil { + return true + } + sb.WriteString(fmt.Sprintf("%s=%d%%", *namePtr, p.percent())) + i++ + if i != s.list.Len() { + sb.WriteString(", ") + } + return true + }) + return sb.String() +} diff --git a/erigon-lib/common/big.go b/erigon-lib/common/big.go new file mode 100644 index 00000000000..8be8ac3cbd2 --- /dev/null +++ b/erigon-lib/common/big.go @@ -0,0 +1,29 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package common + +import "math/big" + +var ( + Big0 = big.NewInt(0) + Big1 = big.NewInt(1) + Big2 = big.NewInt(2) + Big3 = big.NewInt(3) + Big32 = big.NewInt(32) + Big256 = big.NewInt(256) + Big257 = big.NewInt(257) +) diff --git a/erigon-lib/common/bitutil/select.go b/erigon-lib/common/bitutil/select.go new file mode 100644 index 00000000000..f3266c2695f --- /dev/null +++ b/erigon-lib/common/bitutil/select.go @@ -0,0 +1,105 @@ +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package bitutil + +import ( + "math/bits" +) + +// Required by select64 +var kSelectInByte = [2048]byte{ + 8, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 7, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 6, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 5, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, + 8, 8, 8, 1, 8, 2, 2, 1, 8, 3, 3, 1, 3, 2, 2, 1, 8, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, 8, 5, 5, 1, 5, 2, 2, 1, 5, 3, 3, 1, 3, 2, 2, 1, 5, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, + 8, 6, 6, 1, 6, 2, 2, 1, 6, 3, 3, 1, 3, 2, 2, 1, 6, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, 6, 5, 5, 1, 5, 2, 2, 1, 5, 3, 3, 1, 3, 2, 2, 1, 5, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, + 8, 7, 7, 1, 7, 2, 2, 1, 7, 3, 3, 1, 3, 2, 2, 1, 7, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, 7, 5, 5, 1, 5, 2, 2, 1, 5, 3, 3, 1, 3, 2, 2, 1, 5, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, + 7, 6, 6, 1, 6, 2, 2, 1, 6, 3, 3, 1, 3, 2, 2, 1, 6, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, 6, 5, 5, 1, 5, 2, 2, 1, 5, 3, 3, 1, 3, 2, 2, 1, 5, 4, 4, 1, 4, 2, 2, 1, 4, 3, 3, 1, 3, 2, 2, 1, + 8, 8, 8, 8, 8, 8, 8, 2, 8, 8, 8, 3, 8, 3, 3, 2, 8, 8, 8, 4, 8, 4, 4, 2, 8, 4, 4, 3, 4, 3, 3, 2, 8, 8, 8, 5, 8, 5, 5, 2, 8, 5, 5, 3, 5, 3, 3, 2, 8, 5, 5, 4, 5, 4, 4, 2, 5, 4, 4, 3, 4, 3, 3, 2, + 8, 8, 8, 6, 8, 6, 6, 2, 8, 6, 6, 3, 6, 3, 3, 2, 8, 6, 6, 4, 6, 4, 4, 2, 6, 4, 4, 3, 4, 3, 3, 2, 8, 6, 6, 5, 6, 5, 5, 2, 6, 5, 5, 3, 5, 3, 3, 2, 6, 5, 5, 4, 5, 4, 4, 2, 5, 4, 4, 3, 4, 3, 3, 2, + 8, 8, 8, 7, 8, 7, 7, 2, 8, 7, 7, 3, 7, 3, 3, 2, 8, 7, 7, 4, 7, 4, 4, 2, 7, 4, 4, 3, 4, 3, 3, 2, 8, 7, 7, 5, 7, 5, 5, 2, 7, 5, 5, 3, 5, 3, 3, 2, 7, 5, 5, 4, 5, 4, 4, 2, 5, 4, 4, 3, 4, 3, 3, 2, + 8, 7, 7, 6, 7, 6, 6, 2, 7, 6, 6, 3, 6, 3, 3, 2, 7, 6, 6, 4, 6, 4, 4, 2, 6, 4, 4, 3, 4, 3, 3, 2, 7, 6, 6, 5, 6, 5, 5, 2, 6, 5, 5, 3, 5, 3, 3, 2, 6, 5, 5, 4, 5, 4, 4, 2, 5, 4, 4, 3, 4, 3, 3, 2, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 4, 8, 4, 4, 3, 8, 8, 8, 8, 8, 8, 8, 5, 8, 8, 8, 5, 8, 5, 5, 3, 8, 8, 8, 5, 8, 5, 5, 4, 8, 5, 5, 4, 5, 4, 4, 3, + 8, 8, 8, 8, 8, 8, 8, 6, 8, 8, 8, 6, 8, 6, 6, 3, 8, 8, 8, 6, 8, 6, 6, 4, 8, 6, 6, 4, 6, 4, 4, 3, 8, 8, 8, 6, 8, 6, 6, 5, 8, 6, 6, 5, 6, 5, 5, 3, 8, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, + 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 7, 8, 7, 7, 3, 8, 8, 8, 7, 8, 7, 7, 4, 8, 7, 7, 4, 7, 4, 4, 3, 8, 8, 8, 7, 8, 7, 7, 5, 8, 7, 7, 5, 7, 5, 5, 3, 8, 7, 7, 5, 7, 5, 5, 4, 7, 5, 5, 4, 5, 4, 4, 3, + 8, 8, 8, 7, 8, 7, 7, 6, 8, 7, 7, 6, 7, 6, 6, 3, 8, 7, 7, 6, 7, 6, 6, 4, 7, 6, 6, 4, 6, 4, 4, 3, 8, 7, 7, 6, 7, 6, 6, 5, 7, 6, 6, 5, 6, 5, 5, 3, 7, 6, 6, 5, 6, 5, 5, 4, 6, 5, 5, 4, 5, 4, 4, 3, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 8, 8, 8, 8, 8, 8, 8, 5, 8, 8, 8, 5, 8, 5, 5, 4, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 8, 8, 8, 8, 8, 8, 8, 6, 8, 8, 8, 6, 8, 6, 6, 4, 8, 8, 8, 8, 8, 8, 8, 6, 8, 8, 8, 6, 8, 6, 6, 5, 8, 8, 8, 6, 8, 6, 6, 5, 8, 6, 6, 5, 6, 5, 5, 4, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 7, 8, 7, 7, 4, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 7, 8, 7, 7, 5, 8, 8, 8, 7, 8, 7, 7, 5, 8, 7, 7, 5, 7, 5, 5, 4, + 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 7, 8, 7, 7, 6, 8, 8, 8, 7, 8, 7, 7, 6, 8, 7, 7, 6, 7, 6, 6, 4, 8, 8, 8, 7, 8, 7, 7, 6, 8, 7, 7, 6, 7, 6, 6, 5, 8, 7, 7, 6, 7, 6, 6, 5, 7, 6, 6, 5, 6, 5, 5, 4, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 8, 8, 8, 8, 8, 8, 8, 6, 8, 8, 8, 6, 8, 6, 6, 5, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 7, 8, 7, 7, 5, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 7, 8, 7, 7, 6, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 7, 8, 7, 7, 6, 8, 8, 8, 7, 8, 7, 7, 6, 8, 7, 7, 6, 7, 6, 6, 5, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 7, 8, 7, 7, 6, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7} + +const ( + kOnesStep4 uint64 = 0x1111111111111111 + kOnesStep8 uint64 = 0x0101010101010101 + kLAMBDAsStep8 uint64 = 0x80 * kOnesStep8 + + kOnesStep4x3 = 0x3 * kOnesStep4 + kOnesStep4xA = 0xA * kOnesStep4 + kOnesStep8xF = 0xF * kOnesStep8 +) + +/** Returns the index of the k-th 1-bit in the 64-bit word x. + * @param x 64-bit word. + * @param k 0-based rank (`k = 0` returns the position of the first 1-bit). + * + * Uses the broadword selection algorithm by Vigna [1], improved by Gog and Petri [2] and Vigna [3]. + * Facebook's Folly implementation [4]. + * + * [1] Sebastiano Vigna. Broadword Implementation of Rank/Select Queries. WEA, 2008 + * + * [2] Simon Gog, Matthias Petri. Optimized succinct data structures for massive data. Softw. Pract. + * Exper., 2014 + * + * [3] Sebastiano Vigna. MG4J 5.2.1. http://mg4j.di.unimi.it/ + * + * [4] Facebook Folly library: https://github.com/facebook/folly + * + */ + +func Select64(x uint64, k int) (place int) { + /* Original implementation - a bit obfuscated to satisfy Golang's inlining costs + s := x + s = s - ((s & (0xA * kOnesStep4)) >> 1) + s = (s & (0x3 * kOnesStep4)) + ((s >> 2) & (0x3 * kOnesStep4)) + s = (s + (s >> 4)) & (0xF * kOnesStep8) + byteSums := s * kOnesStep8 + */ + s := x - ((x & kOnesStep4xA) >> 1) + s = (s & kOnesStep4x3) + ((s >> 2) & kOnesStep4x3) + byteSums := ((s + (s >> 4)) & kOnesStep8xF) * kOnesStep8 + /* Original implementaiton: + kStep8 := uint64(k) * kOnesStep8 + geqKStep8 := ((kStep8 | kLAMBDAsStep8) - byteSums) & kLAMBDAsStep8 + place = bits.OnesCount64(geqKStep8) * 8 + byteRank := uint64(k) - (((byteSums << 8) >> place) & uint64(0xFF)) + */ + place = bits.OnesCount64((((uint64(k)*kOnesStep8)|kLAMBDAsStep8)-byteSums)&kLAMBDAsStep8) * 8 + byteRank := uint64(k) - (((byteSums << 8) >> place) & uint64(0xFF)) + return place + int(kSelectInByte[((x>>place)&0xFF)|(byteRank<<8)]) +} diff --git a/erigon-lib/common/bytes.go b/erigon-lib/common/bytes.go new file mode 100644 index 00000000000..59929736cf8 --- /dev/null +++ b/erigon-lib/common/bytes.go @@ -0,0 +1,67 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package common + +import ( + "fmt" +) + +func ByteCount(b uint64) string { + const unit = 1024 + if b < unit { + return fmt.Sprintf("%dB", b) + } + bGb, exp := MBToGB(b) + return fmt.Sprintf("%.1f%cB", bGb, "KMGTPE"[exp]) +} + +func MBToGB(b uint64) (float64, int) { + const unit = 1024 + if b < unit { + return float64(b), 0 + } + + div, exp := uint64(unit), 0 + for n := b / unit; n >= unit; n /= unit { + div *= unit + exp++ + } + + return float64(b) / float64(div), exp +} + +func Copy(b []byte) []byte { + if b == nil { + return nil + } + c := make([]byte, len(b)) + copy(c, b) + return c +} + +func EnsureEnoughSize(in []byte, size int) []byte { + if cap(in) < size { + newBuf := make([]byte, size) + copy(newBuf, in) + return newBuf + } + return in[:size] // Reuse the space if it has enough capacity +} + +func BitLenToByteLen(bitLen int) (byteLen int) { + return (bitLen + 7) / 8 +} diff --git a/erigon-lib/common/bytes4.go b/erigon-lib/common/bytes4.go new file mode 100644 index 00000000000..2687074ef2a --- /dev/null +++ b/erigon-lib/common/bytes4.go @@ -0,0 +1,107 @@ +package common + +import ( + "bytes" + "database/sql/driver" + "encoding/hex" + "fmt" + "math/rand" + "reflect" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/length" +) + +var ( + bytes4T = reflect.TypeOf(Bytes4{}) +) + +type Bytes4 [length.Bytes4]byte + +// Hex converts a hash to a hex string. +func (b Bytes4) Hex() string { return hexutility.Encode(b[:]) } + +// UnmarshalJSON parses a hash in hex syntax. +func (b *Bytes4) UnmarshalJSON(input []byte) error { + return hexutility.UnmarshalFixedJSON(bytes4T, input, b[:]) +} + +// UnmarshalText parses a hash in hex syntax. +func (b *Bytes4) UnmarshalText(input []byte) error { + return hexutility.UnmarshalFixedText("Bytes4", input, b[:]) +} + +// MarshalText returns the hex representation of a. +func (b Bytes4) MarshalText() ([]byte, error) { + bl := b[:] + result := make([]byte, len(b)*2+2) + copy(result, hexPrefix) + hex.Encode(result[2:], bl) + return result, nil +} + +// Format implements fmt.Formatter. +// Hash supports the %v, %s, %v, %x, %X and %d format verbs. +func (b Bytes4) Format(s fmt.State, c rune) { + hexb := make([]byte, 2+len(b)*2) + copy(hexb, "0x") + hex.Encode(hexb[2:], b[:]) + + switch c { + case 'x', 'X': + if !s.Flag('#') { + hexb = hexb[2:] + } + if c == 'X' { + hexb = bytes.ToUpper(hexb) + } + fallthrough + case 'v', 's': + s.Write(hexb) + case 'q': + q := []byte{'"'} + s.Write(q) + s.Write(hexb) + s.Write(q) + case 'd': + fmt.Fprint(s, ([len(b)]byte)(b)) + default: + fmt.Fprintf(s, "%%!%c(hash=%x)", c, b) + } +} + +// String implements the stringer interface and is used also by the logger when +// doing full logging into a file. +func (b Bytes4) String() string { + return b.Hex() +} + +// SetBytes sets the hash to the value of i. +// If b is larger than len(h), b will be cropped from the left. +func (b *Bytes4) SetBytes(i []byte) { + if len(i) > len(b) { + i = i[len(i)-length.Hash:] + } + + copy(b[length.Hash-len(i):], i) +} + +// Generate implements testing/quick.Generator. +func (b Bytes4) Generate(rand *rand.Rand, size int) reflect.Value { + m := rand.Intn(len(b)) + for i := len(b) - 1; i > m; i-- { + b[i] = byte(rand.Uint32()) + } + return reflect.ValueOf(b) +} + +// Value implements valuer for database/sql. +func (b Bytes4) Value() (driver.Value, error) { + return b[:], nil +} + +// TerminalString implements log.TerminalStringer, formatting a string for console +// output during logging. +func (b Bytes4) TerminalString() string { + return fmt.Sprintf("%x", b) +} diff --git a/erigon-lib/common/bytes48.go b/erigon-lib/common/bytes48.go new file mode 100644 index 00000000000..092e451f64e --- /dev/null +++ b/erigon-lib/common/bytes48.go @@ -0,0 +1,107 @@ +package common + +import ( + "bytes" + "database/sql/driver" + "encoding/hex" + "fmt" + "math/rand" + "reflect" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/length" +) + +var ( + bytes48T = reflect.TypeOf(Bytes48{}) +) + +type Bytes48 [length.Bytes48]byte + +// Hex converts a hash to a hex string. +func (b Bytes48) Hex() string { return hexutility.Encode(b[:]) } + +// UnmarshalJSON parses a hash in hex syntax. +func (b *Bytes48) UnmarshalJSON(input []byte) error { + return hexutility.UnmarshalFixedJSON(bytes48T, input, b[:]) +} + +// UnmarshalText parses a hash in hex syntax. +func (b *Bytes48) UnmarshalText(input []byte) error { + return hexutility.UnmarshalFixedText("Bytes48", input, b[:]) +} + +// MarshalText returns the hex representation of a. +func (b Bytes48) MarshalText() ([]byte, error) { + bl := b[:] + result := make([]byte, len(b)*2+2) + copy(result, hexPrefix) + hex.Encode(result[2:], bl) + return result, nil +} + +// Format implements fmt.Formatter. +// Hash supports the %v, %s, %v, %x, %X and %d format verbs. +func (b Bytes48) Format(s fmt.State, c rune) { + hexb := make([]byte, 2+len(b)*2) + copy(hexb, "0x") + hex.Encode(hexb[2:], b[:]) + + switch c { + case 'x', 'X': + if !s.Flag('#') { + hexb = hexb[2:] + } + if c == 'X' { + hexb = bytes.ToUpper(hexb) + } + fallthrough + case 'v', 's': + s.Write(hexb) + case 'q': + q := []byte{'"'} + s.Write(q) + s.Write(hexb) + s.Write(q) + case 'd': + fmt.Fprint(s, ([len(b)]byte)(b)) + default: + fmt.Fprintf(s, "%%!%c(hash=%x)", c, b) + } +} + +// String implements the stringer interface and is used also by the logger when +// doing full logging into a file. +func (b Bytes48) String() string { + return b.Hex() +} + +// SetBytes sets the hash to the value of i. +// If b is larger than len(h), b will be cropped from the left. +func (b *Bytes48) SetBytes(i []byte) { + if len(i) > len(b) { + i = i[len(i)-length.Hash:] + } + + copy(b[length.Hash-len(i):], i) +} + +// Generate implements testing/quick.Generator. +func (b Bytes48) Generate(rand *rand.Rand, size int) reflect.Value { + m := rand.Intn(len(b)) + for i := len(b) - 1; i > m; i-- { + b[i] = byte(rand.Uint32()) + } + return reflect.ValueOf(b) +} + +// Value implements valuer for database/sql. +func (b Bytes48) Value() (driver.Value, error) { + return b[:], nil +} + +// TerminalString implements log.TerminalStringer, formatting a string for console +// output during logging. +func (b Bytes48) TerminalString() string { + return fmt.Sprintf("%x…%x", b[:3], b[len(b)-3:]) +} diff --git a/erigon-lib/common/bytes64.go b/erigon-lib/common/bytes64.go new file mode 100644 index 00000000000..bd407e8aaf3 --- /dev/null +++ b/erigon-lib/common/bytes64.go @@ -0,0 +1,97 @@ +package common + +import ( + "bytes" + "database/sql/driver" + "encoding/hex" + "fmt" + "reflect" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/length" +) + +var ( + bytes64T = reflect.TypeOf(Bytes64{}) +) + +type Bytes64 [length.Bytes64]byte + +// Hex converts a hash to a hex string. +func (b Bytes64) Hex() string { return hexutility.Encode(b[:]) } + +// UnmarshalJSON parses a hash in hex syntax. +func (b *Bytes64) UnmarshalJSON(input []byte) error { + return hexutility.UnmarshalFixedJSON(bytes64T, input, b[:]) +} + +// UnmarshalText parses a hash in hex syntax. +func (b *Bytes64) UnmarshalText(input []byte) error { + return hexutility.UnmarshalFixedText("Bytes64", input, b[:]) +} + +// MarshalText returns the hex representation of a. +func (b Bytes64) MarshalText() ([]byte, error) { + bl := b[:] + result := make([]byte, len(b)*2+2) + copy(result, hexPrefix) + hex.Encode(result[2:], bl) + return result, nil +} + +// Format implements fmt.Formatter. +// Hash supports the %v, %s, %v, %x, %X and %d format verbs. +func (b Bytes64) Format(s fmt.State, c rune) { + hexb := make([]byte, 2+len(b)*2) + copy(hexb, "0x") + hex.Encode(hexb[2:], b[:]) + + switch c { + case 'x', 'X': + if !s.Flag('#') { + hexb = hexb[2:] + } + if c == 'X' { + hexb = bytes.ToUpper(hexb) + } + fallthrough + case 'v', 's': + s.Write(hexb) + case 'q': + q := []byte{'"'} + s.Write(q) + s.Write(hexb) + s.Write(q) + case 'd': + fmt.Fprint(s, ([len(b)]byte)(b)) + default: + fmt.Fprintf(s, "%%!%c(hash=%x)", c, b) + } +} + +// String implements the stringer interface and is used also by the logger when +// doing full logging into a file. +func (b Bytes64) String() string { + return b.Hex() +} + +// SetBytes sets the hash to the value of i. +// If b is larger than len(h), b will be cropped from the left. +func (b *Bytes64) SetBytes(i []byte) { + if len(i) > len(b) { + i = i[len(i)-length.Hash:] + } + + copy(b[length.Hash-len(i):], i) +} + +// Value implements valuer for database/sql. +func (b Bytes64) Value() (driver.Value, error) { + return b[:], nil +} + +// TerminalString implements log.TerminalStringer, formatting a string for console +// output during logging. +func (b Bytes64) TerminalString() string { + return fmt.Sprintf("%x…%x", b[:3], b[len(b)-3:]) +} diff --git a/erigon-lib/common/bytes96.go b/erigon-lib/common/bytes96.go new file mode 100644 index 00000000000..e15850d2e33 --- /dev/null +++ b/erigon-lib/common/bytes96.go @@ -0,0 +1,107 @@ +package common + +import ( + "bytes" + "database/sql/driver" + "encoding/hex" + "fmt" + "math/rand" + "reflect" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/length" +) + +var ( + blsSignatureT = reflect.TypeOf(Bytes96{}) +) + +type Bytes96 [length.Bytes96]byte + +// Hex converts a hash to a hex string. +func (b Bytes96) Hex() string { return hexutility.Encode(b[:]) } + +// UnmarshalJSON parses a hash in hex syntax. +func (b *Bytes96) UnmarshalJSON(input []byte) error { + return hexutility.UnmarshalFixedJSON(blsSignatureT, input, b[:]) +} + +// UnmarshalText parses a hash in hex syntax. +func (b *Bytes96) UnmarshalText(input []byte) error { + return hexutility.UnmarshalFixedText("BLSSignature", input, b[:]) +} + +// MarshalText returns the hex representation of a. +func (b Bytes96) MarshalText() ([]byte, error) { + bl := b[:] + result := make([]byte, len(b)*2+2) + copy(result, hexPrefix) + hex.Encode(result[2:], bl) + return result, nil +} + +// Format implements fmt.Formatter. +// Hash supports the %v, %s, %v, %x, %X and %d format verbs. +func (b Bytes96) Format(s fmt.State, c rune) { + hexb := make([]byte, 2+len(b)*2) + copy(hexb, "0x") + hex.Encode(hexb[2:], b[:]) + + switch c { + case 'x', 'X': + if !s.Flag('#') { + hexb = hexb[2:] + } + if c == 'X' { + hexb = bytes.ToUpper(hexb) + } + fallthrough + case 'v', 's': + s.Write(hexb) + case 'q': + q := []byte{'"'} + s.Write(q) + s.Write(hexb) + s.Write(q) + case 'd': + fmt.Fprint(s, ([len(b)]byte)(b)) + default: + fmt.Fprintf(s, "%%!%c(hash=%x)", c, b) + } +} + +// String implements the stringer interface and is used also by the logger when +// doing full logging into a file. +func (b Bytes96) String() string { + return b.Hex() +} + +// SetBytes sets the hash to the value of i. +// If b is larger than len(h), b will be cropped from the left. +func (b *Bytes96) SetBytes(i []byte) { + if len(i) > len(b) { + i = i[len(i)-length.Hash:] + } + + copy(b[length.Hash-len(i):], i) +} + +// Generate implements testing/quick.Generator. +func (b Bytes96) Generate(rand *rand.Rand, size int) reflect.Value { + m := rand.Intn(len(b)) + for i := len(b) - 1; i > m; i-- { + b[i] = byte(rand.Uint32()) + } + return reflect.ValueOf(b) +} + +// Value implements valuer for database/sql. +func (b Bytes96) Value() (driver.Value, error) { + return b[:], nil +} + +// TerminalString implements log.TerminalStringer, formatting a string for console +// output during logging. +func (b Bytes96) TerminalString() string { + return fmt.Sprintf("%x…%x", b[:3], b[len(b)-3:]) +} diff --git a/erigon-lib/common/chan.go b/erigon-lib/common/chan.go new file mode 100644 index 00000000000..ac9fdbf6fc7 --- /dev/null +++ b/erigon-lib/common/chan.go @@ -0,0 +1,61 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package common + +import "errors" + +var ErrStopped = errors.New("stopped") +var ErrUnwind = errors.New("unwound") + +func Stopped(ch <-chan struct{}) error { + if ch == nil { + return nil + } + select { + case <-ch: + return ErrStopped + default: + } + return nil +} + +func SafeClose(ch chan struct{}) { + if ch == nil { + return + } + select { + case <-ch: + // Channel was already closed + default: + close(ch) + } +} + +// PrioritizedSend message to channel, but if channel is full (slow consumer) - drop half of old messages (not new) +func PrioritizedSend[t any](ch chan t, msg t) { + select { + case ch <- msg: + default: //if channel is full (slow consumer), drop old messages (not new) + for i := 0; i < cap(ch)/2; i++ { + select { + case <-ch: + default: + } + } + ch <- msg + } +} diff --git a/erigon-lib/common/cli.go b/erigon-lib/common/cli.go new file mode 100644 index 00000000000..c195b9151e5 --- /dev/null +++ b/erigon-lib/common/cli.go @@ -0,0 +1,58 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package common + +import ( + "context" + "os" + "os/signal" + "strings" + "syscall" + + "github.com/ledgerwatch/log/v3" +) + +func RootContext() (context.Context, context.CancelFunc) { + ctx, cancel := context.WithCancel(context.Background()) + go func() { + defer cancel() + + ch := make(chan os.Signal, 1) + defer close(ch) + + signal.Notify(ch, os.Interrupt, syscall.SIGTERM) + defer signal.Stop(ch) + + select { + case sig := <-ch: + log.Info("Got interrupt, shutting down...", "sig", sig) + case <-ctx.Done(): + } + }() + return ctx, cancel +} + +func CliString2Array(input string) []string { + l := strings.Split(input, ",") + res := make([]string, 0, len(l)) + for _, r := range l { + if r = strings.TrimSpace(r); r != "" { + res = append(res, r) + } + } + return res +} diff --git a/erigon-lib/common/cmp/cmp.go b/erigon-lib/common/cmp/cmp.go new file mode 100644 index 00000000000..7e7334010a6 --- /dev/null +++ b/erigon-lib/common/cmp/cmp.go @@ -0,0 +1,57 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package cmp + +import ( + "golang.org/x/exp/constraints" +) + +// InRange - ensure val is in [min,max] range +func InRange[T constraints.Ordered](min, max, val T) T { + if min >= val { + return min + } + if max <= val { + return max + } + return val +} + +func Min[T constraints.Ordered](a, b T) T { + if a <= b { + return a + } + return b +} + +func Max[T constraints.Ordered](a, b T) T { + if a >= b { + return a + } + return b +} + +func Compare[T constraints.Ordered](a, b T) int { + switch { + case a < b: + return -1 + case a == b: + return 0 + default: + return 1 + } +} diff --git a/erigon-lib/common/copybytes.go b/erigon-lib/common/copybytes.go new file mode 100644 index 00000000000..02457e0a954 --- /dev/null +++ b/erigon-lib/common/copybytes.go @@ -0,0 +1,12 @@ +package common + +// CopyBytes returns an exact copy of the provided bytes. +func CopyBytes(b []byte) (copiedBytes []byte) { + if b == nil { + return nil + } + copiedBytes = make([]byte, len(b)) + copy(copiedBytes, b) + + return +} diff --git a/erigon-lib/common/datadir/dirs.go b/erigon-lib/common/datadir/dirs.go new file mode 100644 index 00000000000..161d381c17f --- /dev/null +++ b/erigon-lib/common/datadir/dirs.go @@ -0,0 +1,192 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package datadir + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "syscall" + + "github.com/gofrs/flock" + "github.com/ledgerwatch/erigon-lib/common/dir" +) + +// Dirs is the file system folder the node should use for any data storage +// requirements. The configured data directory will not be directly shared with +// registered services, instead those can use utility methods to create/access +// databases or flat files +type Dirs struct { + DataDir string + RelativeDataDir string // like dataDir, but without filepath.Abs() resolution + Chaindata string + Tmp string + Snap string + SnapIdx string + SnapHistory string + SnapDomain string + SnapAccessors string + Downloader string + TxPool string + Nodes string + CaplinHistory string + CaplinIndexing string +} + +func New(datadir string) Dirs { + relativeDataDir := datadir + if datadir != "" { + var err error + absdatadir, err := filepath.Abs(datadir) + if err != nil { + panic(err) + } + datadir = absdatadir + } + + dirs := Dirs{ + RelativeDataDir: relativeDataDir, + DataDir: datadir, + Chaindata: filepath.Join(datadir, "chaindata"), + Tmp: filepath.Join(datadir, "temp"), + Snap: filepath.Join(datadir, "snapshots"), + SnapIdx: filepath.Join(datadir, "snapshots", "idx"), + SnapHistory: filepath.Join(datadir, "snapshots", "history"), + SnapDomain: filepath.Join(datadir, "snapshots", "domain"), + SnapAccessors: filepath.Join(datadir, "snapshots", "accessor"), + Downloader: filepath.Join(datadir, "downloader"), + TxPool: filepath.Join(datadir, "txpool"), + Nodes: filepath.Join(datadir, "nodes"), + CaplinHistory: filepath.Join(datadir, "caplin/history"), + CaplinIndexing: filepath.Join(datadir, "caplin/indexing"), + } + + dir.MustExist(dirs.Chaindata, dirs.Tmp, + dirs.SnapIdx, dirs.SnapHistory, dirs.SnapDomain, dirs.SnapAccessors, + dirs.Downloader, dirs.TxPool, dirs.Nodes, dirs.CaplinHistory, dirs.CaplinIndexing) + return dirs +} + +var ( + ErrDataDirLocked = errors.New("datadir already used by another process") + + datadirInUseErrNos = map[uint]bool{11: true, 32: true, 35: true} +) + +func convertFileLockError(err error) error { + //nolint + if errno, ok := err.(syscall.Errno); ok && datadirInUseErrNos[uint(errno)] { + return ErrDataDirLocked + } + return err +} + +func TryFlock(dirs Dirs) (*flock.Flock, bool, error) { + // Lock the instance directory to prevent concurrent use by another instance as well as + // accidental use of the instance directory as a database. + l := flock.New(filepath.Join(dirs.DataDir, "LOCK")) + locked, err := l.TryLock() + if err != nil { + return nil, false, convertFileLockError(err) + } + return l, locked, nil +} + +// ApplyMigrations - if can get flock. +func ApplyMigrations(dirs Dirs) error { + need := downloaderV2MigrationNeeded(dirs) + if !need { + return nil + } + + lock, locked, err := TryFlock(dirs) + if err != nil { + return err + } + if !locked { + return nil + } + defer lock.Unlock() + + // add your migration here + + if err := downloaderV2Migration(dirs); err != nil { + return err + } + return nil +} + +func downloaderV2MigrationNeeded(dirs Dirs) bool { + return dir.FileExist(filepath.Join(dirs.Snap, "db", "mdbx.dat")) +} +func downloaderV2Migration(dirs Dirs) error { + // move db from `datadir/snapshot/db` to `datadir/downloader` + if !downloaderV2MigrationNeeded(dirs) { + return nil + } + from, to := filepath.Join(dirs.Snap, "db", "mdbx.dat"), filepath.Join(dirs.Downloader, "mdbx.dat") + if err := os.Rename(from, to); err != nil { + //fall back to copy-file if folders are on different disks + if err := copyFile(from, to); err != nil { + return err + } + } + return nil +} + +// nolint +func moveFiles(from, to string, ext string) error { + files, err := os.ReadDir(from) + if err != nil { + return fmt.Errorf("ReadDir: %w, %s", err, from) + } + for _, f := range files { + if f.Type().IsDir() || !f.Type().IsRegular() { + continue + } + if filepath.Ext(f.Name()) != ext { + continue + } + _ = os.Rename(filepath.Join(from, f.Name()), filepath.Join(to, f.Name())) + } + return nil +} + +func copyFile(from, to string) error { + r, err := os.Open(from) + if err != nil { + return fmt.Errorf("please manually move file: from %s to %s. error: %w", from, to, err) + } + defer r.Close() + w, err := os.Create(to) + if err != nil { + return fmt.Errorf("please manually move file: from %s to %s. error: %w", from, to, err) + } + defer w.Close() + if _, err = w.ReadFrom(r); err != nil { + w.Close() + os.Remove(to) + return fmt.Errorf("please manually move file: from %s to %s. error: %w", from, to, err) + } + if err = w.Sync(); err != nil { + w.Close() + os.Remove(to) + return fmt.Errorf("please manually move file: from %s to %s. error: %w", from, to, err) + } + return nil +} diff --git a/erigon-lib/common/dbg/experiments.go b/erigon-lib/common/dbg/experiments.go new file mode 100644 index 00000000000..ff4f966d63f --- /dev/null +++ b/erigon-lib/common/dbg/experiments.go @@ -0,0 +1,283 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package dbg + +import ( + "os" + "runtime" + "strconv" + "sync" + "time" + + "github.com/ledgerwatch/log/v3" +) + +var doMemstat = true + +func init() { + _, ok := os.LookupEnv("NO_MEMSTAT") + if ok { + doMemstat = false + } +} + +func DoMemStat() bool { return doMemstat } +func ReadMemStats(m *runtime.MemStats) { + if doMemstat { + runtime.ReadMemStats(m) + } +} + +var ( + writeMap bool + writeMapOnce sync.Once +) + +func WriteMap() bool { + writeMapOnce.Do(func() { + v, _ := os.LookupEnv("WRITE_MAP") + if v == "true" { + writeMap = true + log.Info("[Experiment]", "WRITE_MAP", writeMap) + } + }) + return writeMap +} + +var ( + dirtySace uint64 + dirtySaceOnce sync.Once +) + +func DirtySpace() uint64 { + dirtySaceOnce.Do(func() { + v, _ := os.LookupEnv("MDBX_DIRTY_SPACE_MB") + if v != "" { + i, err := strconv.Atoi(v) + if err != nil { + panic(err) + } + dirtySace = uint64(i * 1024 * 1024) + log.Info("[Experiment]", "MDBX_DIRTY_SPACE_MB", dirtySace) + } + }) + return dirtySace +} + +var ( + noSync bool + noSyncOnce sync.Once +) + +func NoSync() bool { + noSyncOnce.Do(func() { + v, _ := os.LookupEnv("NO_SYNC") + if v == "true" { + noSync = true + log.Info("[Experiment]", "NO_SYNC", noSync) + } + }) + return noSync +} + +var ( + mergeTr int + mergeTrOnce sync.Once +) + +func MergeTr() int { + mergeTrOnce.Do(func() { + v, _ := os.LookupEnv("MERGE_THRESHOLD") + if v != "" { + i, err := strconv.Atoi(v) + if err != nil { + panic(err) + } + if i < 0 || i > 4 { + panic(i) + } + mergeTr = i + log.Info("[Experiment]", "MERGE_THRESHOLD", mergeTr) + } + }) + return mergeTr +} + +var ( + mdbxReadahead bool + mdbxReadaheadOnce sync.Once +) + +func MdbxReadAhead() bool { + mdbxReadaheadOnce.Do(func() { + v, _ := os.LookupEnv("MDBX_READAHEAD") + if v == "true" { + mdbxReadahead = true + log.Info("[Experiment]", "MDBX_READAHEAD", mdbxReadahead) + } + }) + return mdbxReadahead +} + +var ( + discardHistory bool + discardHistoryOnce sync.Once +) + +func DiscardHistory() bool { + discardHistoryOnce.Do(func() { + v, _ := os.LookupEnv("DISCARD_HISTORY") + if v == "true" { + discardHistory = true + log.Info("[Experiment]", "DISCARD_HISTORY", discardHistory) + } + }) + return discardHistory +} + +var ( + bigRoTx uint + getBigRoTx sync.Once +) + +// DEBUG_BIG_RO_TX_KB - print logs with info about large read-only transactions +// DEBUG_BIG_RW_TX_KB - print logs with info about large read-write transactions +// DEBUG_SLOW_COMMIT_MS - print logs with commit timing details if commit is slower than this threshold +func BigRoTxKb() uint { + getBigRoTx.Do(func() { + v, _ := os.LookupEnv("DEBUG_BIG_RO_TX_KB") + if v != "" { + i, err := strconv.Atoi(v) + if err != nil { + panic(err) + } + bigRoTx = uint(i) + log.Info("[Experiment]", "DEBUG_BIG_RO_TX_KB", bigRoTx) + } + }) + return bigRoTx +} + +var ( + bigRwTx uint + getBigRwTx sync.Once +) + +func BigRwTxKb() uint { + getBigRwTx.Do(func() { + v, _ := os.LookupEnv("DEBUG_BIG_RW_TX_KB") + if v != "" { + i, err := strconv.Atoi(v) + if err != nil { + panic(err) + } + bigRwTx = uint(i) + log.Info("[Experiment]", "DEBUG_BIG_RW_TX_KB", bigRwTx) + } + }) + return bigRwTx +} + +var ( + slowCommit time.Duration + slowCommitOnce sync.Once +) + +func SlowCommit() time.Duration { + slowCommitOnce.Do(func() { + v, _ := os.LookupEnv("SLOW_COMMIT") + if v != "" { + var err error + slowCommit, err = time.ParseDuration(v) + if err != nil { + panic(err) + } + log.Info("[Experiment]", "SLOW_COMMIT", slowCommit.String()) + } + }) + return slowCommit +} + +var ( + slowTx time.Duration + slowTxOnce sync.Once +) + +func SlowTx() time.Duration { + slowTxOnce.Do(func() { + v, _ := os.LookupEnv("SLOW_TX") + if v != "" { + var err error + slowTx, err = time.ParseDuration(v) + if err != nil { + panic(err) + } + log.Info("[Experiment]", "SLOW_TX", slowTx.String()) + } + }) + return slowTx +} + +var ( + stopBeforeStage string + stopBeforeStageFlag sync.Once + stopAfterStage string + stopAfterStageFlag sync.Once +) + +func StopBeforeStage() string { + f := func() { + v, _ := os.LookupEnv("STOP_BEFORE_STAGE") // see names in eth/stagedsync/stages/stages.go + if v != "" { + stopBeforeStage = v + log.Info("[Experiment]", "STOP_BEFORE_STAGE", stopBeforeStage) + } + } + stopBeforeStageFlag.Do(f) + return stopBeforeStage +} + +// TODO(allada) We should possibly consider removing `STOP_BEFORE_STAGE`, as `STOP_AFTER_STAGE` can +// perform all same the functionality, but due to reverse compatibility reasons we are going to +// leave it. +func StopAfterStage() string { + f := func() { + v, _ := os.LookupEnv("STOP_AFTER_STAGE") // see names in eth/stagedsync/stages/stages.go + if v != "" { + stopAfterStage = v + log.Info("[Experiment]", "STOP_AFTER_STAGE", stopAfterStage) + } + } + stopAfterStageFlag.Do(f) + return stopAfterStage +} + +var ( + stopAfterReconst bool + stopAfterReconstOnce sync.Once +) + +func StopAfterReconst() bool { + stopAfterReconstOnce.Do(func() { + v, _ := os.LookupEnv("STOP_AFTER_RECONSTITUTE") + if v == "true" { + stopAfterReconst = true + log.Info("[Experiment]", "STOP_AFTER_RECONSTITUTE", writeMap) + } + }) + return stopAfterReconst +} diff --git a/erigon-lib/common/dbg/leak_detector.go b/erigon-lib/common/dbg/leak_detector.go new file mode 100644 index 00000000000..d4369f2be9e --- /dev/null +++ b/erigon-lib/common/dbg/leak_detector.go @@ -0,0 +1,107 @@ +package dbg + +import ( + "fmt" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/ledgerwatch/log/v3" +) + +const FileCloseLogLevel = log.LvlTrace + +// LeakDetector - use it to find which resource was created but not closed (leaked) +// periodically does print in logs resources which living longer than 1min with their creation stack trace +// For example db transactions can call Add/Del from Begin/Commit/Rollback methods +type LeakDetector struct { + enabled atomic.Bool + slowThreshold atomic.Pointer[time.Duration] + autoIncrement atomic.Uint64 + + list map[uint64]LeakDetectorItem + listLock sync.Mutex +} + +type LeakDetectorItem struct { + stack string + started time.Time +} + +func NewLeakDetector(name string, slowThreshold time.Duration) *LeakDetector { + enabled := slowThreshold > 0 + if !enabled { + return nil + } + d := &LeakDetector{list: map[uint64]LeakDetectorItem{}} + d.SetSlowThreshold(slowThreshold) + + if enabled { + go func() { + logEvery := time.NewTicker(60 * time.Second) + defer logEvery.Stop() + + for { + select { + case <-logEvery.C: + if list := d.slowList(); len(list) > 0 { + log.Info(fmt.Sprintf("[dbg.%s] long living resources", name), "list", strings.Join(d.slowList(), ", ")) + } + } + } + }() + } + return d +} + +func (d *LeakDetector) slowList() (res []string) { + if d == nil || !d.Enabled() { + return res + } + slowThreshold := *d.slowThreshold.Load() + + d.listLock.Lock() + defer d.listLock.Unlock() + i := 0 + for key, value := range d.list { + living := time.Since(value.started) + if living > slowThreshold { + res = append(res, fmt.Sprintf("%d(%s): %s", key, living, value.stack)) + } + i++ + if i > 10 { // protect logs from too many output + break + } + } + return res +} + +func (d *LeakDetector) Del(id uint64) { + if d == nil || !d.Enabled() { + return + } + d.listLock.Lock() + defer d.listLock.Unlock() + delete(d.list, id) +} +func (d *LeakDetector) Add() uint64 { + if d == nil || !d.Enabled() { + return 0 + } + ac := LeakDetectorItem{ + stack: StackSkip(2), + started: time.Now(), + } + id := d.autoIncrement.Add(1) + d.listLock.Lock() + defer d.listLock.Unlock() + d.list[id] = ac + return id +} + +func (d *LeakDetector) Enabled() bool { return d.enabled.Load() } +func (d *LeakDetector) SetSlowThreshold(t time.Duration) { + d.slowThreshold.Store(&t) + d.enabled.Store(t > 0) +} diff --git a/erigon-lib/common/dbg/log_panic.go b/erigon-lib/common/dbg/log_panic.go new file mode 100644 index 00000000000..a05314e8ab9 --- /dev/null +++ b/erigon-lib/common/dbg/log_panic.go @@ -0,0 +1,29 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package dbg + +import ( + stack2 "github.com/go-stack/stack" +) + +// Stack returns stack-trace in logger-friendly compact formatting +func Stack() string { + return stack2.Trace().TrimBelow(stack2.Caller(1)).String() +} +func StackSkip(skip int) string { + return stack2.Trace().TrimBelow(stack2.Caller(skip)).String() +} diff --git a/erigon-lib/common/dir/rw_dir.go b/erigon-lib/common/dir/rw_dir.go new file mode 100644 index 00000000000..0bbf76d8f5f --- /dev/null +++ b/erigon-lib/common/dir/rw_dir.go @@ -0,0 +1,134 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package dir + +import ( + "os" + "path/filepath" +) + +func MustExist(path ...string) { + const perm = 0764 // user rwx, group rw, other r + for _, p := range path { + if err := os.MkdirAll(p, perm); err != nil { + panic(err) + } + } +} + +func Exist(path string) bool { + _, err := os.Stat(path) + if err != nil && os.IsNotExist(err) { + return false + } + return true +} + +func FileExist(path string) bool { + fi, err := os.Stat(path) + if err != nil && os.IsNotExist(err) { + return false + } + if !fi.Mode().IsRegular() { + return false + } + return true +} + +// nolint +func WriteFileWithFsync(name string, data []byte, perm os.FileMode) error { + f, err := os.OpenFile(name, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) + if err != nil { + return err + } + defer f.Close() + _, err = f.Write(data) + if err != nil { + return err + } + err = f.Sync() + if err != nil { + return err + } + return err +} + +func Recreate(dir string) { + if Exist(dir) { + _ = os.RemoveAll(dir) + } + MustExist(dir) +} + +func HasFileOfType(dir, ext string) bool { + files, err := os.ReadDir(dir) + if err != nil { + return false + } + for _, f := range files { + if f.IsDir() { + continue + } + if filepath.Ext(f.Name()) == ext { + return true + } + } + return false +} + +// nolint +func DeleteFiles(dirs ...string) error { + for _, dir := range dirs { + files, err := ListFiles(dir) + if err != nil { + return err + } + for _, fPath := range files { + if err := os.Remove(fPath); err != nil { + return err + } + } + } + return nil +} + +func ListFiles(dir string, extensions ...string) ([]string, error) { + files, err := os.ReadDir(dir) + if err != nil { + return nil, err + } + res := make([]string, 0, len(files)) + for _, f := range files { + if f.IsDir() && !f.Type().IsRegular() { + continue + } + match := false + if len(extensions) == 0 { + match = true + } + for _, ext := range extensions { + if filepath.Ext(f.Name()) == ext { // filter out only compressed files + match = true + } + } + if !match { + continue + } + res = append(res, filepath.Join(dir, f.Name())) + } + return res, nil +} diff --git a/erigon-lib/common/eth.go b/erigon-lib/common/eth.go new file mode 100644 index 00000000000..4781f78083d --- /dev/null +++ b/erigon-lib/common/eth.go @@ -0,0 +1,23 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package common + +const ( + Wei = 1 + GWei = 1e9 + Ether = 1e18 +) diff --git a/common/eth2shuffle/shuffle.go b/erigon-lib/common/eth2shuffle/shuffle.go similarity index 100% rename from common/eth2shuffle/shuffle.go rename to erigon-lib/common/eth2shuffle/shuffle.go diff --git a/common/eth2shuffle/shuffle_bench_test.go b/erigon-lib/common/eth2shuffle/shuffle_bench_test.go similarity index 97% rename from common/eth2shuffle/shuffle_bench_test.go rename to erigon-lib/common/eth2shuffle/shuffle_bench_test.go index a44ef6e428b..45fe2027642 100644 --- a/common/eth2shuffle/shuffle_bench_test.go +++ b/erigon-lib/common/eth2shuffle/shuffle_bench_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/ledgerwatch/erigon/common/eth2shuffle" + "github.com/ledgerwatch/erigon-lib/common/eth2shuffle" ) func BenchmarkPermuteIndex(b *testing.B) { diff --git a/common/eth2shuffle/shuffle_test.go b/erigon-lib/common/eth2shuffle/shuffle_test.go similarity index 98% rename from common/eth2shuffle/shuffle_test.go rename to erigon-lib/common/eth2shuffle/shuffle_test.go index b19c45305bb..1f5cfda530c 100644 --- a/common/eth2shuffle/shuffle_test.go +++ b/erigon-lib/common/eth2shuffle/shuffle_test.go @@ -10,7 +10,7 @@ import ( "strings" "testing" - "github.com/ledgerwatch/erigon/common/eth2shuffle" + "github.com/ledgerwatch/erigon-lib/common/eth2shuffle" "github.com/stretchr/testify/assert" ) diff --git a/common/eth2shuffle/spec/tests.csv b/erigon-lib/common/eth2shuffle/spec/tests.csv similarity index 100% rename from common/eth2shuffle/spec/tests.csv rename to erigon-lib/common/eth2shuffle/spec/tests.csv diff --git a/erigon-lib/common/fixedgas/protocol.go b/erigon-lib/common/fixedgas/protocol.go new file mode 100644 index 00000000000..038e8bd0586 --- /dev/null +++ b/erigon-lib/common/fixedgas/protocol.go @@ -0,0 +1,39 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package fixedgas + +const ( + TxGas uint64 = 21000 // Per transaction not creating a contract. NOTE: Not payable on data of calls between transactions. + TxGasContractCreation uint64 = 53000 // Per transaction that creates a contract. NOTE: Not payable on data of calls between transactions. + TxDataZeroGas uint64 = 4 // Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions. + TxDataNonZeroGasFrontier uint64 = 68 // Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions. + TxDataNonZeroGasEIP2028 uint64 = 16 // Per byte of non zero data attached to a transaction after EIP 2028 (part in Istanbul) + TxAccessListAddressGas uint64 = 2400 // Per address specified in EIP 2930 access list + TxAccessListStorageKeyGas uint64 = 1900 // Per storage key specified in EIP 2930 access list + + MaxCodeSize = 24576 // Maximum bytecode to permit for a contract + + // EIP-3860 to limit size of initcode + MaxInitCodeSize = 2 * MaxCodeSize // Maximum initcode to permit in a creation transaction and create instructions + InitCodeWordGas = 2 + + // EIP-4844: Shard Blob Transactions + FieldElementsPerBlob = 4096 // each field element is 32 bytes + BlobSize = FieldElementsPerBlob * 32 + BlobGasPerBlob uint64 = 0x20000 + DefaultMaxBlobsPerBlock uint64 = 6 // lower for Gnosis +) diff --git a/erigon-lib/common/hash.go b/erigon-lib/common/hash.go new file mode 100644 index 00000000000..a2353a4e6b9 --- /dev/null +++ b/erigon-lib/common/hash.go @@ -0,0 +1,179 @@ +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package common + +import ( + "bytes" + "database/sql/driver" + "encoding/hex" + "fmt" + "math/big" + "math/rand" + "reflect" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/length" +) + +var ( + hashT = reflect.TypeOf(Hash{}) +) + +const ( + hexPrefix = `0x` +) + +// Hash represents the 32 byte Keccak256 hash of arbitrary data. +type Hash [length.Hash]byte + +// BytesToHash sets b to hash. +// If b is larger than len(h), b will be cropped from the left. +func BytesToHash(b []byte) Hash { + var h Hash + h.SetBytes(b) + return h +} + +// CastToHash - sets b to hash +// If b is larger than len(h), b will be cropped from the left. +// panics if input is shorter than 32 bytes, see https://go.dev/doc/go1.17#language +// faster than BytesToHash +func CastToHash(b []byte) Hash { return *(*Hash)(b) } + +// BigToHash sets byte representation of b to hash. +// If b is larger than len(h), b will be cropped from the left. +func BigToHash(b *big.Int) Hash { return BytesToHash(b.Bytes()) } + +// HexToHash sets byte representation of s to hash. +// If b is larger than len(h), b will be cropped from the left. +func HexToHash(s string) Hash { return BytesToHash(hexutility.FromHex(s)) } + +// Bytes gets the byte representation of the underlying hash. +func (h Hash) Bytes() []byte { return h[:] } + +// Big converts a hash to a big integer. +func (h Hash) Big() *big.Int { return new(big.Int).SetBytes(h[:]) } + +// Hex converts a hash to a hex string. +func (h Hash) Hex() string { return hexutility.Encode(h[:]) } + +// TerminalString implements log.TerminalStringer, formatting a string for console +// output during logging. +func (h Hash) TerminalString() string { + return fmt.Sprintf("%x…%x", h[:3], h[29:]) +} + +// String implements the stringer interface and is used also by the logger when +// doing full logging into a file. +func (h Hash) String() string { + return h.Hex() +} + +// Format implements fmt.Formatter. +// Hash supports the %v, %s, %v, %x, %X and %d format verbs. +func (h Hash) Format(s fmt.State, c rune) { + hexb := make([]byte, 2+len(h)*2) + copy(hexb, "0x") + hex.Encode(hexb[2:], h[:]) + + switch c { + case 'x', 'X': + if !s.Flag('#') { + hexb = hexb[2:] + } + if c == 'X' { + hexb = bytes.ToUpper(hexb) + } + fallthrough + case 'v', 's': + s.Write(hexb) + case 'q': + q := []byte{'"'} + s.Write(q) + s.Write(hexb) + s.Write(q) + case 'd': + fmt.Fprint(s, ([len(h)]byte)(h)) + default: + fmt.Fprintf(s, "%%!%c(hash=%x)", c, h) + } +} + +// UnmarshalText parses a hash in hex syntax. +func (h *Hash) UnmarshalText(input []byte) error { + return hexutility.UnmarshalFixedText("Hash", input, h[:]) +} + +// UnmarshalJSON parses a hash in hex syntax. +func (h *Hash) UnmarshalJSON(input []byte) error { + return hexutility.UnmarshalFixedJSON(hashT, input, h[:]) +} + +// MarshalText returns the hex representation of h. +func (h Hash) MarshalText() ([]byte, error) { + b := h[:] + result := make([]byte, len(b)*2+2) + copy(result, hexPrefix) + hex.Encode(result[2:], b) + return result, nil +} + +// SetBytes sets the hash to the value of b. +// If b is larger than len(h), b will be cropped from the left. +func (h *Hash) SetBytes(b []byte) { + if len(b) > len(h) { + b = b[len(b)-length.Hash:] + } + + copy(h[length.Hash-len(b):], b) +} + +// Generate implements testing/quick.Generator. +func (h Hash) Generate(rand *rand.Rand, size int) reflect.Value { + m := rand.Intn(len(h)) + for i := len(h) - 1; i > m; i-- { + h[i] = byte(rand.Uint32()) + } + return reflect.ValueOf(h) +} + +// Scan implements Scanner for database/sql. +func (h *Hash) Scan(src interface{}) error { + srcB, ok := src.([]byte) + if !ok { + return fmt.Errorf("can't scan %T into Hash", src) + } + if len(srcB) != length.Hash { + return fmt.Errorf("can't scan []byte of len %d into Hash, want %d", len(srcB), length.Hash) + } + copy(h[:], srcB) + return nil +} + +// Value implements valuer for database/sql. +func (h Hash) Value() (driver.Value, error) { + return h[:], nil +} + +func FromHex(in string) []byte { + return hexutility.MustDecodeHex(in) +} + +type CodeRecord struct { + BlockNumber uint64 + TxNumber uint64 + CodeHash Hash +} diff --git a/common/hasher.go b/erigon-lib/common/hasher.go similarity index 81% rename from common/hasher.go rename to erigon-lib/common/hasher.go index e92367f9bd0..f9b25295035 100644 --- a/common/hasher.go +++ b/erigon-lib/common/hasher.go @@ -4,7 +4,6 @@ import ( "hash" "sync" - libcommon "github.com/ledgerwatch/erigon-lib/common" "golang.org/x/crypto/sha3" ) @@ -33,19 +32,19 @@ func NewHasher() *Hasher { } func ReturnHasherToPool(h *Hasher) { hashersPool.Put(h) } -func HashData(data []byte) (libcommon.Hash, error) { +func HashData(data []byte) (Hash, error) { h := NewHasher() defer ReturnHasherToPool(h) _, err := h.Sha.Write(data) if err != nil { - return libcommon.Hash{}, err + return Hash{}, err } - var buf libcommon.Hash + var buf Hash _, err = h.Sha.Read(buf[:]) if err != nil { - return libcommon.Hash{}, err + return Hash{}, err } return buf, nil } diff --git a/erigon-lib/common/hextobytes.go b/erigon-lib/common/hextobytes.go new file mode 100644 index 00000000000..79473730a1e --- /dev/null +++ b/erigon-lib/common/hextobytes.go @@ -0,0 +1,9 @@ +package common + +import "encoding/hex" + +// Hex2Bytes returns the bytes represented by the hexadecimal string str. +func Hex2Bytes(str string) []byte { + h, _ := hex.DecodeString(str) + return h +} diff --git a/common/hexutil/hexutil.go b/erigon-lib/common/hexutil/hexutil.go similarity index 75% rename from common/hexutil/hexutil.go rename to erigon-lib/common/hexutil/hexutil.go index 3df5272075c..3efc5d4c1a5 100644 --- a/common/hexutil/hexutil.go +++ b/erigon-lib/common/hexutil/hexutil.go @@ -1,33 +1,3 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -/* -Package hexutil implements hex encoding with 0x prefix. -This encoding is used by the Ethereum RPC API to transport binary data in JSON payloads. - -# Encoding Rules - -All hex data must have prefix "0x". - -For byte slices, the hex data must be of even length. An empty byte slice -encodes as "0x". - -Integers are encoded using the least amount of digits (no leading zero digits). Their -encoding may be of uneven length. The number zero encodes as "0x0". -*/ package hexutil import ( @@ -39,7 +9,7 @@ import ( const uintBits = 32 << (uint64(^uint(0)) >> 63) -// Errors +// These errors are from go-ethereum in order to keep compatibility with geth error codes. var ( ErrEmptyString = &decError{"empty hex string"} ErrSyntax = &decError{"invalid hex string"} @@ -66,9 +36,9 @@ func Decode(input string) ([]byte, error) { } b, err := hex.DecodeString(input[2:]) if err != nil { - err = mapError(err) + return nil, mapError(err) } - return b, err + return b, nil } // MustDecode decodes a hex string with 0x prefix. It panics for invalid input. @@ -88,19 +58,9 @@ func DecodeUint64(input string) (uint64, error) { } dec, err := strconv.ParseUint(raw, 16, 64) if err != nil { - err = mapError(err) + return 0, mapError(err) } - return dec, err -} - -// MustDecodeUint64 decodes a hex string with 0x prefix as a quantity. -// It panics for invalid input. -func MustDecodeUint64(input string) uint64 { - dec, err := DecodeUint64(input) - if err != nil { - panic(err) - } - return dec + return dec, nil } // EncodeUint64 encodes i as a hex string with 0x prefix. @@ -213,6 +173,8 @@ func decodeNibble(in byte) uint64 { } } +// ignore these errors to keep compatiblity with go ethereum +// nolint:errorlint func mapError(err error) error { if err, ok := err.(*strconv.NumError); ok { switch err.Err { @@ -232,7 +194,6 @@ func mapError(err error) error { } // CompressNibbles - supports only even number of nibbles -// This method supports only arrays of even nibbles // // HI_NIBBLE(b) = (b >> 4) & 0x0F // LO_NIBBLE(b) = b & 0x0F diff --git a/common/hexutil/hexutil_test.go b/erigon-lib/common/hexutil/hexutil_test.go similarity index 56% rename from common/hexutil/hexutil_test.go rename to erigon-lib/common/hexutil/hexutil_test.go index 17ebd6bb769..4c9f508ad5e 100644 --- a/common/hexutil/hexutil_test.go +++ b/erigon-lib/common/hexutil/hexutil_test.go @@ -1,23 +1,8 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - package hexutil import ( - "bytes" + "fmt" + "github.com/stretchr/testify/require" "math/big" "testing" ) @@ -40,14 +25,13 @@ var ( {[]byte{0}, "0x00"}, {[]byte{0, 0, 1, 2}, "0x00000102"}, } - encodeBigTests = []marshalTest{ - {referenceBig("0"), "0x0"}, - {referenceBig("1"), "0x1"}, - {referenceBig("ff"), "0xff"}, - {referenceBig("112233445566778899aabbccddeeff"), "0x112233445566778899aabbccddeeff"}, - {referenceBig("80a7f2c1bcc396c00"), "0x80a7f2c1bcc396c00"}, - {referenceBig("-80a7f2c1bcc396c00"), "-0x80a7f2c1bcc396c00"}, + {bigFromString("0"), "0x0"}, + {bigFromString("1"), "0x1"}, + {bigFromString("ff"), "0xff"}, + {bigFromString("112233445566778899aabbccddeeff"), "0x112233445566778899aabbccddeeff"}, + {bigFromString("80a7f2c1bcc396c00"), "0x80a7f2c1bcc396c00"}, + {bigFromString("-80a7f2c1bcc396c00"), "-0x80a7f2c1bcc396c00"}, } encodeUint64Tests = []marshalTest{ @@ -105,15 +89,15 @@ var ( {input: `0xfffffffff`, want: big.NewInt(0xfffffffff)}, { input: `0x112233445566778899aabbccddeeff`, - want: referenceBig("112233445566778899aabbccddeeff"), + want: bigFromString("112233445566778899aabbccddeeff"), }, { input: `0xffffffffffffffffffffffffffffffffffff`, - want: referenceBig("ffffffffffffffffffffffffffffffffffff"), + want: bigFromString("ffffffffffffffffffffffffffffffffffff"), }, { input: `0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`, - want: referenceBig("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), + want: bigFromString("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), }, } @@ -137,58 +121,55 @@ var ( ) func TestDecode(t *testing.T) { - for _, test := range decodeBytesTests { - dec, err := Decode(test.input) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if !bytes.Equal(test.want.([]byte), dec) { - t.Errorf("input %s: value mismatch: got %x, want %x", test.input, dec, test.want) - continue - } + for idx, test := range decodeBytesTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + dec, err := Decode(test.input) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want, dec) + } + }) } } func TestEncodeBig(t *testing.T) { - for _, test := range encodeBigTests { - enc := EncodeBig(test.input.(*big.Int)) - if enc != test.want { - t.Errorf("input %x: wrong encoding %s", test.input, enc) - } + for idx, test := range encodeBigTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + enc := EncodeBig(test.input.(*big.Int)) + require.EqualValues(t, test.want, enc) + }) } } func TestDecodeBig(t *testing.T) { - for _, test := range decodeBigTests { - dec, err := DecodeBig(test.input) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if dec.Cmp(test.want.(*big.Int)) != 0 { - t.Errorf("input %s: value mismatch: got %x, want %x", test.input, dec, test.want) - continue - } + for idx, test := range decodeBigTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + dec, err := DecodeBig(test.input) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want.(*big.Int).String(), dec.String()) + } + }) } } func TestEncodeUint64(t *testing.T) { - for _, test := range encodeUint64Tests { - enc := EncodeUint64(test.input.(uint64)) - if enc != test.want { - t.Errorf("input %x: wrong encoding %s", test.input, enc) - } + for idx, test := range encodeUint64Tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + enc := EncodeUint64(test.input.(uint64)) + require.EqualValues(t, test.want, enc) + }) } } func TestDecodeUint64(t *testing.T) { - for _, test := range decodeUint64Tests { - dec, err := DecodeUint64(test.input) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if dec != test.want.(uint64) { - t.Errorf("input %s: value mismatch: got %x, want %x", test.input, dec, test.want) - continue - } + for idx, test := range decodeUint64Tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + dec, err := DecodeUint64(test.input) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want, dec) + } + }) } } diff --git a/common/hexutil/json.go b/erigon-lib/common/hexutil/json.go similarity index 95% rename from common/hexutil/json.go rename to erigon-lib/common/hexutil/json.go index ce1ce9a05d7..ab9f820a58b 100644 --- a/common/hexutil/json.go +++ b/erigon-lib/common/hexutil/json.go @@ -19,6 +19,7 @@ package hexutil import ( "encoding/hex" "encoding/json" + "errors" "fmt" "math/big" "reflect" @@ -115,6 +116,10 @@ func (b *Big) String() string { return EncodeBig(b.ToInt()) } +func (b *Big) Uint64() uint64 { + return ((*big.Int)(b)).Uint64() +} + // Uint64 marshals/unmarshals as a JSON string with 0x prefix. // The zero value marshals as "0x0". type Uint64 uint64 @@ -162,6 +167,10 @@ func (b Uint64) String() string { return EncodeUint64(uint64(b)) } +func (b Uint64) Uint64() uint64 { + return (uint64)(b) +} + // Uint marshals/unmarshals as a JSON string with 0x prefix. // The zero value marshals as "0x0". type Uint uint @@ -183,7 +192,7 @@ func (b *Uint) UnmarshalJSON(input []byte) error { func (b *Uint) UnmarshalText(input []byte) error { var u64 Uint64 err := u64.UnmarshalText(input) - if u64 > Uint64(^uint(0)) || err == ErrUint64Range { + if u64 > Uint64(^uint(0)) || errors.Is(err, ErrUint64Range) { return ErrUintRange } else if err != nil { return err @@ -238,6 +247,8 @@ func checkNumberText(input []byte) (raw []byte, err error) { } func wrapTypeError(err error, typ reflect.Type) error { + // keeping compatiblity with go ethereum tests + // nolint:errorlint if _, ok := err.(*decError); ok { return &json.UnmarshalTypeError{Value: err.Error(), Type: typ} } diff --git a/common/hexutil/json_test.go b/erigon-lib/common/hexutil/json_test.go similarity index 52% rename from common/hexutil/json_test.go rename to erigon-lib/common/hexutil/json_test.go index 21f4a35ce58..42c6fc172e2 100644 --- a/common/hexutil/json_test.go +++ b/erigon-lib/common/hexutil/json_test.go @@ -1,46 +1,29 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - package hexutil import ( - "bytes" "encoding/json" "errors" + "fmt" "math/big" "testing" + + "github.com/stretchr/testify/require" ) -func checkError(t *testing.T, input string, got, want error) bool { - if got == nil { - if want != nil { - t.Errorf("input %s: got no error, want %q", input, want) - return false - } - return true - } +func checkError(t *testing.T, input string, got, want error) { + t.Helper() if want == nil { - t.Errorf("input %s: unexpected error %q", input, got) - } else if got.Error() != want.Error() { - t.Errorf("input %s: got error %q, want %q", input, got, want) + require.NoErrorf(t, got, "input %s", input) + return + } + if got == nil { + require.NoError(t, want, "input %s", input) + return } - return false + require.EqualValues(t, want.Error(), got.Error(), "input %s", input) } -func referenceBig(s string) *big.Int { +func bigFromString(s string) *big.Int { b, ok := new(big.Int).SetString(s, 16) if !ok { panic("invalid") @@ -64,7 +47,6 @@ var unmarshalBigTests = []unmarshalTest{ input: `"0x10000000000000000000000000000000000000000000000000000000000000000"`, wantErr: wrapTypeError(ErrBig256Range, bigT), }, - // valid encoding {input: `""`, want: big.NewInt(0)}, {input: `"0x0"`, want: big.NewInt(0)}, @@ -76,29 +58,28 @@ var unmarshalBigTests = []unmarshalTest{ {input: `"0xfffffffff"`, want: big.NewInt(0xfffffffff)}, { input: `"0x112233445566778899aabbccddeeff"`, - want: referenceBig("112233445566778899aabbccddeeff"), + want: bigFromString("112233445566778899aabbccddeeff"), }, { input: `"0xffffffffffffffffffffffffffffffffffff"`, - want: referenceBig("ffffffffffffffffffffffffffffffffffff"), + want: bigFromString("ffffffffffffffffffffffffffffffffffff"), }, { input: `"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"`, - want: referenceBig("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), + want: bigFromString("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"), }, } func TestUnmarshalBig(t *testing.T) { - for _, test := range unmarshalBigTests { - var v Big - err := json.Unmarshal([]byte(test.input), &v) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if test.want != nil && test.want.(*big.Int).Cmp((*big.Int)(&v)) != 0 { - t.Errorf("input %s: value mismatch: got %x, want %x", test.input, (*big.Int)(&v), test.want) - continue - } + for idx, test := range unmarshalBigTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + var v Big + err := json.Unmarshal([]byte(test.input), &v) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want.(*big.Int).Bytes(), v.ToInt().Bytes()) + } + }) } } @@ -113,21 +94,15 @@ func BenchmarkUnmarshalBig(b *testing.B) { } func TestMarshalBig(t *testing.T) { - for _, test := range encodeBigTests { - in := test.input.(*big.Int) - out, err := json.Marshal((*Big)(in)) - if err != nil { - t.Errorf("%d: %v", in, err) - continue - } - if want := `"` + test.want + `"`; string(out) != want { - t.Errorf("%d: MarshalJSON output mismatch: got %q, want %q", in, out, want) - continue - } - if out := (*Big)(in).String(); out != test.want { - t.Errorf("%x: String mismatch: got %q, want %q", in, out, test.want) - continue - } + for idx, test := range encodeBigTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + in := test.input.(*big.Int) + out, err := json.Marshal((*Big)(in)) + require.NoError(t, err) + want := `"` + test.want + `"` + require.EqualValues(t, want, string(out)) + require.EqualValues(t, test.want, (*Big)(in).String()) + }) } } @@ -155,16 +130,15 @@ var unmarshalUint64Tests = []unmarshalTest{ } func TestUnmarshalUint64(t *testing.T) { - for _, test := range unmarshalUint64Tests { - var v Uint64 - err := json.Unmarshal([]byte(test.input), &v) - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if uint64(v) != test.want.(uint64) { - t.Errorf("input %s: value mismatch: got %d, want %d", test.input, v, test.want) - continue - } + for idx, test := range unmarshalUint64Tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + var v Uint64 + err := json.Unmarshal([]byte(test.input), &v) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want, v) + } + }) } } @@ -172,51 +146,37 @@ func BenchmarkUnmarshalUint64(b *testing.B) { input := []byte(`"0x123456789abcdf"`) for i := 0; i < b.N; i++ { var v Uint64 - v.UnmarshalJSON(input) + _ = v.UnmarshalJSON(input) } } func TestMarshalUint64(t *testing.T) { - for _, test := range encodeUint64Tests { - in := test.input.(uint64) - out, err := json.Marshal(Uint64(in)) - if err != nil { - t.Errorf("%d: %v", in, err) - continue - } - if want := `"` + test.want + `"`; string(out) != want { - t.Errorf("%d: MarshalJSON output mismatch: got %q, want %q", in, out, want) - continue - } - if out := (Uint64)(in).String(); out != test.want { - t.Errorf("%x: String mismatch: got %q, want %q", in, out, test.want) - continue - } + for idx, test := range encodeUint64Tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + in := test.input.(uint64) + out, err := json.Marshal(Uint64(in)) + require.NoError(t, err) + want := `"` + test.want + `"` + require.EqualValues(t, want, string(out)) + require.EqualValues(t, test.want, (Uint64)(in).String()) + }) } } func TestMarshalUint(t *testing.T) { - for _, test := range encodeUintTests { - in := test.input.(uint) - out, err := json.Marshal(Uint(in)) - if err != nil { - t.Errorf("%d: %v", in, err) - continue - } - if want := `"` + test.want + `"`; string(out) != want { - t.Errorf("%d: MarshalJSON output mismatch: got %q, want %q", in, out, want) - continue - } - if out := (Uint)(in).String(); out != test.want { - t.Errorf("%x: String mismatch: got %q, want %q", in, out, test.want) - continue - } + for idx, test := range encodeUintTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + in := test.input.(uint) + out, err := json.Marshal(Uint(in)) + require.NoError(t, err) + want := `"` + test.want + `"` + require.EqualValues(t, want, string(out)) + require.EqualValues(t, test.want, (Uint)(in).String()) + }) } } var ( - // These are variables (not constants) to avoid constant overflow - // checks in the compiler on 32bit platforms. maxUint33bits = uint64(^uint32(0)) + 1 maxUint64bits = ^uint64(0) ) @@ -247,20 +207,20 @@ var unmarshalUintTests = []unmarshalTest{ } func TestUnmarshalUint(t *testing.T) { - for _, test := range unmarshalUintTests { - var v Uint - err := json.Unmarshal([]byte(test.input), &v) - if uintBits == 32 && test.wantErr32bit != nil { - checkError(t, test.input, err, test.wantErr32bit) - continue - } - if !checkError(t, test.input, err, test.wantErr) { - continue - } - if uint(v) != test.want.(uint) { - t.Errorf("input %s: value mismatch: got %d, want %d", test.input, v, test.want) - continue - } + for idx, test := range unmarshalUintTests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + var v Uint + err := json.Unmarshal([]byte(test.input), &v) + if uintBits == 32 && test.wantErr32bit != nil { + checkError(t, test.input, err, test.wantErr32bit) + return + } + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, test.want, v) + } + + }) } } @@ -282,19 +242,14 @@ func TestUnmarshalFixedUnprefixedText(t *testing.T) { {input: "0x44444444", want: []byte{0x44, 0x44, 0x44, 0x44}}, } - for _, test := range tests { - out := make([]byte, 4) - err := UnmarshalFixedUnprefixedText("x", []byte(test.input), out) - switch { - case err == nil && test.wantErr != nil: - t.Errorf("%q: got no error, expected %q", test.input, test.wantErr) - case err != nil && test.wantErr == nil: - t.Errorf("%q: unexpected error %q", test.input, err) - case err != nil && err.Error() != test.wantErr.Error(): - t.Errorf("%q: error mismatch: got %q, want %q", test.input, err, test.wantErr) - } - if test.want != nil && !bytes.Equal(out, test.want) { - t.Errorf("%q: output mismatch: got %x, want %x", test.input, out, test.want) - } + for idx, test := range tests { + t.Run(fmt.Sprintf("%d", idx), func(t *testing.T) { + out := make([]byte, 4) + err := UnmarshalFixedUnprefixedText("x", []byte(test.input), out) + checkError(t, test.input, err, test.wantErr) + if test.want != nil { + require.EqualValues(t, out, test.want) + } + }) } } diff --git a/erigon-lib/common/hexutility/bytes.go b/erigon-lib/common/hexutility/bytes.go new file mode 100644 index 00000000000..fe40256c2d1 --- /dev/null +++ b/erigon-lib/common/hexutility/bytes.go @@ -0,0 +1,66 @@ +/* + Copyright 2023 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package hexutility + +import ( + "encoding/hex" + "encoding/json" + "reflect" +) + +var bytesT = reflect.TypeOf(Bytes(nil)) + +// Bytes marshals/unmarshals as a JSON string with 0x prefix. +// The empty slice marshals as "0x". +type Bytes []byte + +const hexPrefix = `0x` + +// MarshalText implements encoding.TextMarshaler +func (b Bytes) MarshalText() ([]byte, error) { + result := make([]byte, len(b)*2+2) + copy(result, hexPrefix) + hex.Encode(result[2:], b) + return result, nil +} + +// UnmarshalJSON implements json.Unmarshaler. +func (b *Bytes) UnmarshalJSON(input []byte) error { + if !isString(input) { + return &json.UnmarshalTypeError{Value: "non-string", Type: bytesT} + } + return wrapTypeError(b.UnmarshalText(input[1:len(input)-1]), bytesT) +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (b *Bytes) UnmarshalText(input []byte) error { + raw, err := checkText(input, true) + if err != nil { + return err + } + dec := make([]byte, len(raw)/2) + _, err = hex.Decode(dec, raw) + if err == nil { + *b = dec + } + return err +} + +// String returns the hex encoding of b. +func (b Bytes) String() string { + return Encode(b) +} diff --git a/erigon-lib/common/hexutility/errors.go b/erigon-lib/common/hexutility/errors.go new file mode 100644 index 00000000000..929ded993d4 --- /dev/null +++ b/erigon-lib/common/hexutility/errors.go @@ -0,0 +1,27 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package hexutility + +var ( + ErrMissingPrefix = &decError{"hex string without 0x prefix"} + ErrOddLength = &decError{"hex string of odd length"} + ErrSyntax = &decError{"invalid hex string"} +) + +type decError struct{ msg string } + +func (err decError) Error() string { return err.msg } diff --git a/erigon-lib/common/hexutility/hex.go b/erigon-lib/common/hexutility/hex.go new file mode 100644 index 00000000000..8a2c6ba62eb --- /dev/null +++ b/erigon-lib/common/hexutility/hex.go @@ -0,0 +1,103 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package hexutility + +import ( + "encoding/binary" + "encoding/hex" +) + +func MustDecodeHex(in string) []byte { + in = strip0x(in) + if len(in)%2 == 1 { + in = "0" + in + } + payload, err := hex.DecodeString(in) + if err != nil { + panic(err) + } + return payload +} + +func strip0x(str string) string { + if len(str) >= 2 && str[0] == '0' && (str[1] == 'x' || str[1] == 'X') { + return str[2:] + } + return str +} + +// EncodeTs encodes a TimeStamp (BlockNumber or TxNumber or other uin64) as big endian +func EncodeTs(number uint64) []byte { + enc := make([]byte, 8) + binary.BigEndian.PutUint64(enc, number) + return enc +} + +// Encode encodes b as a hex string with 0x prefix. +func Encode(b []byte) string { + enc := make([]byte, len(b)*2+2) + copy(enc, "0x") + hex.Encode(enc[2:], b) + return string(enc) +} + +func FromHex(s string) []byte { + if Has0xPrefix(s) { + s = s[2:] + } + if len(s)%2 == 1 { + s = "0" + s + } + return Hex2Bytes(s) +} + +// Has0xPrefix validates str begins with '0x' or '0X'. +func Has0xPrefix(str string) bool { + return len(str) >= 2 && str[0] == '0' && (str[1] == 'x' || str[1] == 'X') +} + +// Hex2Bytes returns the bytes represented by the hexadecimal string str. +func Hex2Bytes(str string) []byte { + h, _ := hex.DecodeString(str) + return h +} + +// IsHex validates whether each byte is valid hexadecimal string. +func IsHex(str string) bool { + if len(str)%2 != 0 { + return false + } + for _, c := range []byte(str) { + if !isHexCharacter(c) { + return false + } + } + return true +} + +// isHexCharacter returns bool of c being a valid hexadecimal. +func isHexCharacter(c byte) bool { + return ('0' <= c && c <= '9') || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F') +} + +func MustDecodeString(s string) []byte { + r, err := hex.DecodeString(s) + if err != nil { + panic(err) + } + return r +} diff --git a/erigon-lib/common/hexutility/hex_test.go b/erigon-lib/common/hexutility/hex_test.go new file mode 100644 index 00000000000..11486ece356 --- /dev/null +++ b/erigon-lib/common/hexutility/hex_test.go @@ -0,0 +1,43 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package hexutility + +import ( + "testing" +) + +type marshalTest struct { + input interface{} + want string +} + +var ( + encodeBytesTests = []marshalTest{ + {[]byte{}, "0x"}, + {[]byte{0}, "0x00"}, + {[]byte{0, 0, 1, 2}, "0x00000102"}, + } +) + +func TestEncode(t *testing.T) { + for _, test := range encodeBytesTests { + enc := Encode(test.input.([]byte)) + if enc != test.want { + t.Errorf("input %x: wrong encoding %s", test.input, enc) + } + } +} diff --git a/erigon-lib/common/hexutility/json.go b/erigon-lib/common/hexutility/json.go new file mode 100644 index 00000000000..1f6c240e3e3 --- /dev/null +++ b/erigon-lib/common/hexutility/json.go @@ -0,0 +1,45 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package hexutility + +import ( + "encoding/json" + "errors" + "reflect" +) + +// UnmarshalFixedJSON decodes the input as a string with 0x prefix. The length of out +// determines the required input length. This function is commonly used to implement the +// UnmarshalJSON method for fixed-size types. +func UnmarshalFixedJSON(typ reflect.Type, input, out []byte) error { + if !isString(input) { + return &json.UnmarshalTypeError{Value: "non-string", Type: typ} + } + return wrapTypeError(UnmarshalFixedText(typ.String(), input[1:len(input)-1], out), typ) +} + +func isString(input []byte) bool { + return len(input) >= 2 && input[0] == '"' && input[len(input)-1] == '"' +} + +func wrapTypeError(err error, typ reflect.Type) error { + var dec *decError + if errors.As(err, &dec) { + return &json.UnmarshalTypeError{Value: err.Error(), Type: typ} + } + return err +} diff --git a/erigon-lib/common/hexutility/text.go b/erigon-lib/common/hexutility/text.go new file mode 100644 index 00000000000..0c51aeec17d --- /dev/null +++ b/erigon-lib/common/hexutility/text.go @@ -0,0 +1,79 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package hexutility + +import ( + "encoding/hex" + "fmt" +) + +const ( + badNibble = ^uint64(0) +) + +// UnmarshalFixedText decodes the input as a string with 0x prefix. The length of out +// determines the required input length. This function is commonly used to implement the +// UnmarshalText method for fixed-size types. +func UnmarshalFixedText(typeName string, input, out []byte) error { + raw, err := checkText(input, true) + if err != nil { + return err + } + if len(raw)/2 != len(out) { + return fmt.Errorf("hex string has length %d, want %d for %s", len(raw), len(out)*2, typeName) + } + // Pre-verify syntax before modifying out. + for _, b := range raw { + if decodeNibble(b) == badNibble { + return ErrSyntax + } + } + _, err = hex.Decode(out, raw) + return err +} + +func checkText(input []byte, wantPrefix bool) ([]byte, error) { + if len(input) == 0 { + return nil, nil // empty strings are allowed + } + if bytesHave0xPrefix(input) { + input = input[2:] + } else if wantPrefix { + return nil, ErrMissingPrefix + } + if len(input)%2 != 0 { + return nil, ErrOddLength + } + return input, nil +} + +func bytesHave0xPrefix(input []byte) bool { + return len(input) >= 2 && input[0] == '0' && (input[1] == 'x' || input[1] == 'X') +} + +func decodeNibble(in byte) uint64 { + switch { + case in >= '0' && in <= '9': + return uint64(in - '0') + case in >= 'A' && in <= 'F': + return uint64(in - 'A' + 10) + case in >= 'a' && in <= 'f': + return uint64(in - 'a' + 10) + default: + return badNibble + } +} diff --git a/erigon-lib/common/length/length.go b/erigon-lib/common/length/length.go new file mode 100644 index 00000000000..09b126c769e --- /dev/null +++ b/erigon-lib/common/length/length.go @@ -0,0 +1,40 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package length + +// Lengths of hashes and addresses in bytes. +const ( + PeerID = 64 + // Hash is the expected length of the hash (in bytes) + Hash = 32 + // expected length of Bytes96 (signature) + Bytes96 = 96 + // expected length of Bytes48 (bls public key and such) + Bytes48 = 48 + // expected length of Bytes64 (sync committee bits) + Bytes64 = 64 + // expected length of Bytes48 (beacon domain and such) + Bytes4 = 4 + // Addr is the expected length of the address (in bytes) + Addr = 20 + // BlockNumberLen length of uint64 big endian + BlockNum = 8 + // Ts TimeStamp (BlockNum, TxNum or any other uint64 equivalent of Time) + Ts = 8 + // Incarnation length of uint64 for contract incarnations + Incarnation = 8 +) diff --git a/erigon-lib/common/math/integer.go b/erigon-lib/common/math/integer.go new file mode 100644 index 00000000000..d82dae206c6 --- /dev/null +++ b/erigon-lib/common/math/integer.go @@ -0,0 +1,33 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package math + +import ( + "math/bits" +) + +// SafeMul returns x*y and checks for overflow. +func SafeMul(x, y uint64) (uint64, bool) { + hi, lo := bits.Mul64(x, y) + return lo, hi != 0 +} + +// SafeAdd returns x+y and checks for overflow. +func SafeAdd(x, y uint64) (uint64, bool) { + sum, carryOut := bits.Add64(x, y, 0) + return sum, carryOut != 0 +} diff --git a/erigon-lib/common/metrics/metrics_enabled.go b/erigon-lib/common/metrics/metrics_enabled.go new file mode 100644 index 00000000000..dff5154390b --- /dev/null +++ b/erigon-lib/common/metrics/metrics_enabled.go @@ -0,0 +1,33 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package metrics + +// Config contains the configuration for the metric collection. +type Config struct { //nolint:maligned + Enabled bool `toml:",omitempty"` + EnabledExpensive bool `toml:",omitempty"` + HTTP string `toml:",omitempty"` + Port int `toml:",omitempty"` +} + +// DefaultConfig is the default config for metrics used in go-ethereum. +var DefaultConfig = Config{ + Enabled: false, + EnabledExpensive: false, + HTTP: "127.0.0.1", + Port: 6060, +} diff --git a/erigon-lib/common/ring/ring.go b/erigon-lib/common/ring/ring.go new file mode 100644 index 00000000000..7b15887be1e --- /dev/null +++ b/erigon-lib/common/ring/ring.go @@ -0,0 +1,156 @@ +package ring + +type Buffer[T any] struct { + buf []T + // real head is head-1, like this so nil ring is valid + head int + tail int + length int +} + +func MakeBuffer[T any](length, capacity int) Buffer[T] { + if length > capacity { + panic("length must be less than capacity") + } + return Buffer[T]{ + buf: make([]T, capacity), + tail: length, + length: length, + } +} + +func NewBuffer[T any](length, capacity int) *Buffer[T] { + r := MakeBuffer[T](length, capacity) + return &r +} + +func (r *Buffer[T]) grow() { + size := len(r.buf) * 2 + if size == 0 { + size = 2 + } + + buf := make([]T, size) + copy(buf, r.buf[r.head:]) + copy(buf[len(r.buf[r.head:]):], r.buf[:r.head]) + r.head = 0 + r.tail = r.length + r.buf = buf +} + +func (r *Buffer[T]) incHead() { + // resize + if r.length == 0 { + panic("smashing detected") + } + r.length-- + + r.head++ + if r.head == len(r.buf) { + r.head = 0 + } +} + +func (r *Buffer[T]) decHead() { + // resize + if r.length == len(r.buf) { + r.grow() + } + r.length++ + + r.head-- + if r.head == -1 { + r.head = len(r.buf) - 1 + } +} + +func (r *Buffer[T]) incTail() { + // resize + if r.length == len(r.buf) { + r.grow() + } + r.length++ + + r.tail++ + if r.tail == len(r.buf) { + r.tail = 0 + } +} + +func (r *Buffer[T]) decTail() { + // resize + if r.length == 0 { + panic("smashing detected") + } + r.length-- + + r.tail-- + if r.tail == -1 { + r.tail = len(r.buf) - 1 + } +} + +func (r *Buffer[T]) tailSub1() int { + tail := r.tail - 1 + if tail == -1 { + tail = len(r.buf) - 1 + } + return tail +} + +func (r *Buffer[T]) PopFront() (T, bool) { + if r.length == 0 { + return *new(T), false + } + + front := r.buf[r.head] + r.buf[r.head] = *new(T) + r.incHead() + return front, true +} + +func (r *Buffer[T]) PopBack() (T, bool) { + if r.length == 0 { + return *new(T), false + } + + r.decTail() + back := r.buf[r.tail] + r.buf[r.tail] = *new(T) + return back, true +} + +func (r *Buffer[T]) Clear() { + r.head = 0 + r.tail = 0 + r.length = 0 +} + +func (r *Buffer[T]) PushFront(value T) { + r.decHead() + r.buf[r.head] = value +} + +func (r *Buffer[T]) PushBack(value T) { + r.incTail() + r.buf[r.tailSub1()] = value +} + +func (r *Buffer[T]) Length() int { + return r.length +} + +func (r *Buffer[T]) Capacity() int { + return len(r.buf) +} + +func (r *Buffer[T]) Get(n int) T { + if n >= r.length { + panic("index out of range") + } + ptr := r.head + n + if ptr >= len(r.buf) { + ptr -= len(r.buf) + } + return r.buf[ptr] +} diff --git a/erigon-lib/common/sorted.go b/erigon-lib/common/sorted.go new file mode 100644 index 00000000000..2c077fffaeb --- /dev/null +++ b/erigon-lib/common/sorted.go @@ -0,0 +1,43 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package common + +import ( + "golang.org/x/exp/constraints" + "golang.org/x/exp/slices" +) + +func SortedKeys[K constraints.Ordered, V any](m map[K]V) []K { + keys := make([]K, len(m)) + i := 0 + for k := range m { + keys[i] = k + i++ + } + slices.Sort(keys) + return keys +} + +func RemoveDuplicatesFromSorted[T constraints.Ordered](slice []T) []T { + for i := 1; i < len(slice); i++ { + if slice[i] == slice[i-1] { + slice = append(slice[:i], slice[i+1:]...) + i-- + } + } + return slice +} diff --git a/common/sorted_test.go b/erigon-lib/common/sorted_test.go similarity index 51% rename from common/sorted_test.go rename to erigon-lib/common/sorted_test.go index 6465b6ab87c..1ca29dbfb4b 100644 --- a/common/sorted_test.go +++ b/erigon-lib/common/sorted_test.go @@ -1,3 +1,19 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + package common import ( diff --git a/erigon-lib/common/u256/big.go b/erigon-lib/common/u256/big.go new file mode 100644 index 00000000000..bb8ecfb8d4a --- /dev/null +++ b/erigon-lib/common/u256/big.go @@ -0,0 +1,35 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package u256 + +import ( + "github.com/holiman/uint256" +) + +// Common big integers often used +var ( + N0 = uint256.NewInt(0) + N1 = uint256.NewInt(1) + N2 = uint256.NewInt(2) + N4 = uint256.NewInt(4) + N8 = uint256.NewInt(8) + N27 = uint256.NewInt(27) + N28 = uint256.NewInt(28) + N32 = uint256.NewInt(32) + N35 = uint256.NewInt(35) + N100 = uint256.NewInt(100) +) diff --git a/erigon-lib/compress/compress.go b/erigon-lib/compress/compress.go new file mode 100644 index 00000000000..c9ef174d621 --- /dev/null +++ b/erigon-lib/compress/compress.go @@ -0,0 +1,865 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package compress + +import ( + "bufio" + "bytes" + "container/heap" + "context" + "encoding/binary" + "errors" + "fmt" + "io" + "math/bits" + "os" + "path/filepath" + "sync" + "time" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/cmp" + dir2 "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/etl" + "github.com/ledgerwatch/log/v3" + "golang.org/x/exp/slices" +) + +// Compressor is the main operating type for performing per-word compression +// After creating a compression, one needs to add superstrings to it, using `AddWord` function +// In order to add word without compression, function `AddUncompressedWord` needs to be used +// Compressor only tracks which words are compressed and which are not until the compressed +// file is created. After that, the user of the file needs to know when to call +// `Next` or `NextUncompressed` function on the decompressor. +// After that, `Compress` function needs to be called to perform the compression +// and eventually create output file +type Compressor struct { + ctx context.Context + wg *sync.WaitGroup + superstrings chan []byte + uncompressedFile *DecompressedFile + tmpDir string // temporary directory to use for ETL when building dictionary + logPrefix string + outputFile string // File where to output the dictionary and compressed data + tmpOutFilePath string // File where to output the dictionary and compressed data + suffixCollectors []*etl.Collector + // Buffer for "superstring" - transformation of superstrings where each byte of a word, say b, + // is turned into 2 bytes, 0x01 and b, and two zero bytes 0x00 0x00 are inserted after each word + // this is needed for using ordinary (one string) suffix sorting algorithm instead of a generalised (many superstrings) suffix + // sorting algorithm + superstring []byte + wordsCount uint64 + superstringCount uint64 + superstringLen int + workers int + Ratio CompressionRatio + lvl log.Lvl + trace bool + logger log.Logger + noFsync bool // fsync is enabled by default, but tests can manually disable +} + +func NewCompressor(ctx context.Context, logPrefix, outputFile, tmpDir string, minPatternScore uint64, workers int, lvl log.Lvl, logger log.Logger) (*Compressor, error) { + dir2.MustExist(tmpDir) + dir, fileName := filepath.Split(outputFile) + tmpOutFilePath := filepath.Join(dir, fileName) + ".tmp" + // UncompressedFile - it's intermediate .idt file, outputFile it's final .seg (or .dat) file. + // tmpOutFilePath - it's ".seg.tmp" (".idt.tmp") file which will be renamed to .seg file if everything succeed. + // It allow atomically create .seg file (downloader will not see partially ready/ non-ready .seg files). + // I didn't create ".seg.tmp" file in tmpDir, because I think tmpDir and snapsthoDir may be mounted to different drives + uncompressedPath := filepath.Join(tmpDir, fileName) + ".idt" + + uncompressedFile, err := NewUncompressedFile(uncompressedPath) + if err != nil { + return nil, err + } + + // Collector for dictionary superstrings (sorted by their score) + superstrings := make(chan []byte, workers*2) + wg := &sync.WaitGroup{} + wg.Add(workers) + suffixCollectors := make([]*etl.Collector, workers) + for i := 0; i < workers; i++ { + collector := etl.NewCollector(logPrefix+"_dict", tmpDir, etl.NewSortableBuffer(etl.BufferOptimalSize/2), logger) + collector.LogLvl(lvl) + + suffixCollectors[i] = collector + go processSuperstring(ctx, superstrings, collector, minPatternScore, wg, logger) + } + + return &Compressor{ + uncompressedFile: uncompressedFile, + tmpOutFilePath: tmpOutFilePath, + outputFile: outputFile, + tmpDir: tmpDir, + logPrefix: logPrefix, + workers: workers, + ctx: ctx, + superstrings: superstrings, + suffixCollectors: suffixCollectors, + lvl: lvl, + wg: wg, + logger: logger, + }, nil +} + +func (c *Compressor) Close() { + c.uncompressedFile.Close() + for _, collector := range c.suffixCollectors { + collector.Close() + } + c.suffixCollectors = nil +} + +func (c *Compressor) SetTrace(trace bool) { c.trace = trace } + +func (c *Compressor) Count() int { return int(c.wordsCount) } + +func (c *Compressor) AddWord(word []byte) error { + select { + case <-c.ctx.Done(): + return c.ctx.Err() + default: + } + + c.wordsCount++ + l := 2*len(word) + 2 + if c.superstringLen+l > superstringLimit { + if c.superstringCount%samplingFactor == 0 { + c.superstrings <- c.superstring + } + c.superstringCount++ + c.superstring = make([]byte, 0, 1024*1024) + c.superstringLen = 0 + } + c.superstringLen += l + + if c.superstringCount%samplingFactor == 0 { + for _, a := range word { + c.superstring = append(c.superstring, 1, a) + } + c.superstring = append(c.superstring, 0, 0) + } + + return c.uncompressedFile.Append(word) +} + +func (c *Compressor) AddUncompressedWord(word []byte) error { + select { + case <-c.ctx.Done(): + return c.ctx.Err() + default: + } + + c.wordsCount++ + return c.uncompressedFile.AppendUncompressed(word) +} + +func (c *Compressor) Compress() error { + c.uncompressedFile.w.Flush() + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + if len(c.superstring) > 0 { + c.superstrings <- c.superstring + } + close(c.superstrings) + c.wg.Wait() + + if c.lvl < log.LvlTrace { + c.logger.Log(c.lvl, fmt.Sprintf("[%s] BuildDict start", c.logPrefix), "workers", c.workers) + } + t := time.Now() + db, err := DictionaryBuilderFromCollectors(c.ctx, compressLogPrefix, c.tmpDir, c.suffixCollectors, c.lvl, c.logger) + if err != nil { + + return err + } + if c.trace { + _, fileName := filepath.Split(c.outputFile) + if err := PersistDictrionary(filepath.Join(c.tmpDir, fileName)+".dictionary.txt", db); err != nil { + return err + } + } + defer os.Remove(c.tmpOutFilePath) + if c.lvl < log.LvlTrace { + c.logger.Log(c.lvl, fmt.Sprintf("[%s] BuildDict", c.logPrefix), "took", time.Since(t)) + } + + cf, err := os.Create(c.tmpOutFilePath) + if err != nil { + return err + } + defer cf.Close() + t = time.Now() + if err := reducedict(c.ctx, c.trace, c.logPrefix, c.tmpOutFilePath, cf, c.uncompressedFile, c.workers, db, c.lvl, c.logger); err != nil { + return err + } + if err = c.fsync(cf); err != nil { + return err + } + if err = cf.Close(); err != nil { + return err + } + if err := os.Rename(c.tmpOutFilePath, c.outputFile); err != nil { + return fmt.Errorf("renaming: %w", err) + } + + c.Ratio, err = Ratio(c.uncompressedFile.filePath, c.outputFile) + if err != nil { + return fmt.Errorf("ratio: %w", err) + } + + _, fName := filepath.Split(c.outputFile) + if c.lvl < log.LvlTrace { + c.logger.Log(c.lvl, fmt.Sprintf("[%s] Compress", c.logPrefix), "took", time.Since(t), "ratio", c.Ratio, "file", fName) + } + return nil +} + +func (c *Compressor) DisableFsync() { c.noFsync = true } + +// fsync - other processes/goroutines must see only "fully-complete" (valid) files. No partial-writes. +// To achieve it: write to .tmp file then `rename` when file is ready. +// Machine may power-off right after `rename` - it means `fsync` must be before `rename` +func (c *Compressor) fsync(f *os.File) error { + if c.noFsync { + return nil + } + if err := f.Sync(); err != nil { + c.logger.Warn("couldn't fsync", "err", err, "file", c.tmpOutFilePath) + return err + } + return nil +} + +// superstringLimit limits how large can one "superstring" get before it is processed +// CompressorSequential allocates 7 bytes for each uint of superstringLimit. For example, +// superstingLimit 16m will result in 112Mb being allocated for various arrays +const superstringLimit = 16 * 1024 * 1024 + +// minPatternLen is minimum length of pattern we consider to be included into the dictionary +const minPatternLen = 5 +const maxPatternLen = 128 + +// maxDictPatterns is the maximum number of patterns allowed in the initial (not reduced dictionary) +// Large values increase memory consumption of dictionary reduction phase +/* +Experiments on 74Gb uncompressed file (bsc 012500-013000-transactions.seg) +Ram - needed just to open compressed file (Huff tables, etc...) +dec_speed - loop with `word, _ = g.Next(word[:0])` +skip_speed - loop with `g.Skip()` +| DictSize | Ram | file_size | dec_speed | skip_speed | +| -------- | ---- | --------- | --------- | ---------- | +| 1M | 70Mb | 35871Mb | 4m06s | 1m58s | +| 512K | 42Mb | 36496Mb | 3m49s | 1m51s | +| 256K | 21Mb | 37100Mb | 3m44s | 1m48s | +| 128K | 11Mb | 37782Mb | 3m25s | 1m44s | +| 64K | 7Mb | 38597Mb | 3m16s | 1m34s | +| 32K | 5Mb | 39626Mb | 3m0s | 1m29s | + +*/ +const maxDictPatterns = 64 * 1024 + +// samplingFactor - skip superstrings if `superstringNumber % samplingFactor != 0` +const samplingFactor = 4 + +// nolint +const compressLogPrefix = "compress" + +type DictionaryBuilder struct { + lastWord []byte + items []*Pattern + limit int + lastWordScore uint64 +} + +func (db *DictionaryBuilder) Reset(limit int) { + db.limit = limit + db.items = db.items[:0] +} + +func (db *DictionaryBuilder) Len() int { return len(db.items) } +func (db *DictionaryBuilder) Less(i, j int) bool { + if db.items[i].score == db.items[j].score { + return bytes.Compare(db.items[i].word, db.items[j].word) < 0 + } + return db.items[i].score < db.items[j].score +} + +func dictionaryBuilderCmp(i, j *Pattern) int { + if i.score == j.score { + return bytes.Compare(i.word, j.word) + } + return cmp.Compare(i.score, j.score) +} + +func (db *DictionaryBuilder) Swap(i, j int) { + db.items[i], db.items[j] = db.items[j], db.items[i] +} +func (db *DictionaryBuilder) Sort() { slices.SortFunc(db.items, dictionaryBuilderCmp) } + +func (db *DictionaryBuilder) Push(x interface{}) { + db.items = append(db.items, x.(*Pattern)) +} + +func (db *DictionaryBuilder) Pop() interface{} { + old := db.items + n := len(old) + x := old[n-1] + old[n-1] = nil + db.items = old[0 : n-1] + return x +} + +func (db *DictionaryBuilder) processWord(chars []byte, score uint64) { + heap.Push(db, &Pattern{word: common.Copy(chars), score: score}) + if db.Len() > db.limit { + // Remove the element with smallest score + heap.Pop(db) + } +} + +func (db *DictionaryBuilder) loadFunc(k, v []byte, table etl.CurrentTableReader, next etl.LoadNextFunc) error { + score := binary.BigEndian.Uint64(v) + if bytes.Equal(k, db.lastWord) { + db.lastWordScore += score + } else { + if db.lastWord != nil { + db.processWord(db.lastWord, db.lastWordScore) + } + db.lastWord = append(db.lastWord[:0], k...) + db.lastWordScore = score + } + return nil +} + +func (db *DictionaryBuilder) finish() { + if db.lastWord != nil { + db.processWord(db.lastWord, db.lastWordScore) + } +} + +func (db *DictionaryBuilder) ForEach(f func(score uint64, word []byte)) { + for i := db.Len(); i > 0; i-- { + f(db.items[i-1].score, db.items[i-1].word) + } +} + +func (db *DictionaryBuilder) Close() { + db.items = nil + db.lastWord = nil +} + +// Pattern is representation of a pattern that is searched in the superstrings to compress them +// patterns are stored in a patricia tree and contain pattern score (calculated during +// the initial dictionary building), frequency of usage, and code +type Pattern struct { + word []byte // Pattern characters + score uint64 // Score assigned to the pattern during dictionary building + uses uint64 // How many times this pattern has been used during search and optimisation + code uint64 // Allocated numerical code + codeBits int // Number of bits in the code + depth int // Depth of the pattern in the huffman tree (for encoding in the file) +} + +// PatternList is a sorted list of pattern for the purpose of +// building Huffman tree to determine efficient coding. +// Patterns with least usage come first, we use numerical code +// as a tie breaker to make sure the resulting Huffman code is canonical +type PatternList []*Pattern + +func (pl PatternList) Len() int { return len(pl) } +func patternListCmp(i, j *Pattern) int { + if i.uses == j.uses { + return cmp.Compare(bits.Reverse64(i.code), bits.Reverse64(j.code)) + } + return cmp.Compare(i.uses, j.uses) +} + +// PatternHuff is an intermediate node in a huffman tree of patterns +// It has two children, each of which may either be another intermediate node (h0 or h1) +// or leaf node, which is Pattern (p0 or p1). +type PatternHuff struct { + p0 *Pattern + p1 *Pattern + h0 *PatternHuff + h1 *PatternHuff + uses uint64 + tieBreaker uint64 +} + +func (h *PatternHuff) AddZero() { + if h.p0 != nil { + h.p0.code <<= 1 + h.p0.codeBits++ + } else { + h.h0.AddZero() + } + if h.p1 != nil { + h.p1.code <<= 1 + h.p1.codeBits++ + } else { + h.h1.AddZero() + } +} + +func (h *PatternHuff) AddOne() { + if h.p0 != nil { + h.p0.code <<= 1 + h.p0.code++ + h.p0.codeBits++ + } else { + h.h0.AddOne() + } + if h.p1 != nil { + h.p1.code <<= 1 + h.p1.code++ + h.p1.codeBits++ + } else { + h.h1.AddOne() + } +} + +func (h *PatternHuff) SetDepth(depth int) { + if h.p0 != nil { + h.p0.depth = depth + 1 + h.p0.uses = 0 + } + if h.p1 != nil { + h.p1.depth = depth + 1 + h.p1.uses = 0 + } + if h.h0 != nil { + h.h0.SetDepth(depth + 1) + } + if h.h1 != nil { + h.h1.SetDepth(depth + 1) + } +} + +// PatternHeap is priority queue of pattern for the purpose of building +// Huffman tree to determine efficient coding. Patterns with least usage +// have highest priority. We use a tie-breaker to make sure +// the resulting Huffman code is canonical +type PatternHeap []*PatternHuff + +func (ph PatternHeap) Len() int { + return len(ph) +} + +func (ph PatternHeap) Less(i, j int) bool { + if ph[i].uses == ph[j].uses { + return ph[i].tieBreaker < ph[j].tieBreaker + } + return ph[i].uses < ph[j].uses +} + +func (ph *PatternHeap) Swap(i, j int) { + (*ph)[i], (*ph)[j] = (*ph)[j], (*ph)[i] +} + +func (ph *PatternHeap) Push(x interface{}) { + *ph = append(*ph, x.(*PatternHuff)) +} + +func (ph *PatternHeap) Pop() interface{} { + old := *ph + n := len(old) + x := old[n-1] + old[n-1] = nil + *ph = old[0 : n-1] + return x +} + +type Position struct { + uses uint64 + pos uint64 + code uint64 + codeBits int + depth int // Depth of the position in the huffman tree (for encoding in the file) +} + +type PositionHuff struct { + p0 *Position + p1 *Position + h0 *PositionHuff + h1 *PositionHuff + uses uint64 + tieBreaker uint64 +} + +func (h *PositionHuff) AddZero() { + if h.p0 != nil { + h.p0.code <<= 1 + h.p0.codeBits++ + } else { + h.h0.AddZero() + } + if h.p1 != nil { + h.p1.code <<= 1 + h.p1.codeBits++ + } else { + h.h1.AddZero() + } +} + +func (h *PositionHuff) AddOne() { + if h.p0 != nil { + h.p0.code <<= 1 + h.p0.code++ + h.p0.codeBits++ + } else { + h.h0.AddOne() + } + if h.p1 != nil { + h.p1.code <<= 1 + h.p1.code++ + h.p1.codeBits++ + } else { + h.h1.AddOne() + } +} + +func (h *PositionHuff) SetDepth(depth int) { + if h.p0 != nil { + h.p0.depth = depth + 1 + h.p0.uses = 0 + } + if h.p1 != nil { + h.p1.depth = depth + 1 + h.p1.uses = 0 + } + if h.h0 != nil { + h.h0.SetDepth(depth + 1) + } + if h.h1 != nil { + h.h1.SetDepth(depth + 1) + } +} + +type PositionList []*Position + +func (pl PositionList) Len() int { return len(pl) } + +func positionListCmp(i, j *Position) int { + if i.uses == j.uses { + return cmp.Compare(bits.Reverse64(i.code), bits.Reverse64(j.code)) + } + return cmp.Compare(i.uses, j.uses) +} + +type PositionHeap []*PositionHuff + +func (ph PositionHeap) Len() int { + return len(ph) +} + +func (ph PositionHeap) Less(i, j int) bool { + return ph.Compare(i, j) < 0 +} + +func (ph PositionHeap) Compare(i, j int) int { + if ph[i].uses == ph[j].uses { + return cmp.Compare(ph[i].tieBreaker, ph[j].tieBreaker) + } + return cmp.Compare(ph[i].uses, ph[j].uses) +} + +func (ph *PositionHeap) Swap(i, j int) { + (*ph)[i], (*ph)[j] = (*ph)[j], (*ph)[i] +} + +func (ph *PositionHeap) Push(x interface{}) { + *ph = append(*ph, x.(*PositionHuff)) +} + +func (ph *PositionHeap) Pop() interface{} { + old := *ph + n := len(old) + x := old[n-1] + old[n-1] = nil + *ph = old[0 : n-1] + return x +} + +type HuffmanCoder struct { + w *bufio.Writer + outputBits int + outputByte byte +} + +func (hf *HuffmanCoder) encode(code uint64, codeBits int) error { + for codeBits > 0 { + var bitsUsed int + if hf.outputBits+codeBits > 8 { + bitsUsed = 8 - hf.outputBits + } else { + bitsUsed = codeBits + } + mask := (uint64(1) << bitsUsed) - 1 + hf.outputByte |= byte((code & mask) << hf.outputBits) + code >>= bitsUsed + codeBits -= bitsUsed + hf.outputBits += bitsUsed + if hf.outputBits == 8 { + if e := hf.w.WriteByte(hf.outputByte); e != nil { + return e + } + hf.outputBits = 0 + hf.outputByte = 0 + } + } + return nil +} + +func (hf *HuffmanCoder) flush() error { + if hf.outputBits > 0 { + if e := hf.w.WriteByte(hf.outputByte); e != nil { + return e + } + hf.outputBits = 0 + hf.outputByte = 0 + } + return nil +} + +// DynamicCell represents result of dynamic programming for certain starting position +type DynamicCell struct { + optimStart int + coverStart int + compression int + score uint64 + patternIdx int // offset of the last element in the pattern slice +} + +type Ring struct { + cells []DynamicCell + head, tail, count int +} + +func NewRing() *Ring { + return &Ring{ + cells: make([]DynamicCell, 16), + head: 0, + tail: 0, + count: 0, + } +} + +func (r *Ring) Reset() { + r.count = 0 + r.head = 0 + r.tail = 0 +} + +func (r *Ring) ensureSize() { + if r.count < len(r.cells) { + return + } + newcells := make([]DynamicCell, r.count*2) + if r.tail > r.head { + copy(newcells, r.cells[r.head:r.tail]) + } else { + n := copy(newcells, r.cells[r.head:]) + copy(newcells[n:], r.cells[:r.tail]) + } + r.head = 0 + r.tail = r.count + r.cells = newcells +} + +func (r *Ring) PushFront() *DynamicCell { + r.ensureSize() + if r.head == 0 { + r.head = len(r.cells) + } + r.head-- + r.count++ + return &r.cells[r.head] +} + +func (r *Ring) PushBack() *DynamicCell { + r.ensureSize() + if r.tail == len(r.cells) { + r.tail = 0 + } + result := &r.cells[r.tail] + r.tail++ + r.count++ + return result +} + +func (r Ring) Len() int { + return r.count +} + +func (r *Ring) Get(i int) *DynamicCell { + if i < 0 || i >= r.count { + return nil + } + return &r.cells[(r.head+i)&(len(r.cells)-1)] +} + +// Truncate removes all items starting from i +func (r *Ring) Truncate(i int) { + r.count = i + r.tail = (r.head + i) & (len(r.cells) - 1) +} + +type DictAggregator struct { + collector *etl.Collector + dist map[int]int + lastWord []byte + lastWordScore uint64 +} + +func (da *DictAggregator) processWord(word []byte, score uint64) error { + var scoreBuf [8]byte + binary.BigEndian.PutUint64(scoreBuf[:], score) + return da.collector.Collect(word, scoreBuf[:]) +} + +func (da *DictAggregator) Load(loadFunc etl.LoadFunc, args etl.TransformArgs) error { + defer da.collector.Close() + return da.collector.Load(nil, "", loadFunc, args) +} + +func (da *DictAggregator) aggLoadFunc(k, v []byte, table etl.CurrentTableReader, next etl.LoadNextFunc) error { + if _, ok := da.dist[len(k)]; !ok { + da.dist[len(k)] = 0 + } + da.dist[len(k)]++ + + score := binary.BigEndian.Uint64(v) + if bytes.Equal(k, da.lastWord) { + da.lastWordScore += score + } else { + if da.lastWord != nil { + if err := da.processWord(da.lastWord, da.lastWordScore); err != nil { + return err + } + } + da.lastWord = append(da.lastWord[:0], k...) + da.lastWordScore = score + } + return nil +} + +func (da *DictAggregator) finish() error { + if da.lastWord != nil { + return da.processWord(da.lastWord, da.lastWordScore) + } + return nil +} + +type CompressionRatio float64 + +func (r CompressionRatio) String() string { return fmt.Sprintf("%.2f", r) } + +func Ratio(f1, f2 string) (CompressionRatio, error) { + s1, err := os.Stat(f1) + if err != nil { + return 0, err + } + s2, err := os.Stat(f2) + if err != nil { + return 0, err + } + return CompressionRatio(float64(s1.Size()) / float64(s2.Size())), nil +} + +// DecompressedFile - .dat file format - simple format for temporary data store +type DecompressedFile struct { + f *os.File + w *bufio.Writer + filePath string + buf []byte + count uint64 +} + +func NewUncompressedFile(filePath string) (*DecompressedFile, error) { + f, err := os.Create(filePath) + if err != nil { + return nil, err + } + w := bufio.NewWriterSize(f, 2*etl.BufIOSize) + return &DecompressedFile{filePath: filePath, f: f, w: w, buf: make([]byte, 128)}, nil +} +func (f *DecompressedFile) Close() { + f.w.Flush() + f.f.Close() + os.Remove(f.filePath) +} +func (f *DecompressedFile) Append(v []byte) error { + f.count++ + // For compressed words, the length prefix is shifted to make lowest bit zero + n := binary.PutUvarint(f.buf, 2*uint64(len(v))) + if _, e := f.w.Write(f.buf[:n]); e != nil { + return e + } + if len(v) > 0 { + if _, e := f.w.Write(v); e != nil { + return e + } + } + return nil +} +func (f *DecompressedFile) AppendUncompressed(v []byte) error { + f.count++ + // For uncompressed words, the length prefix is shifted to make lowest bit one + n := binary.PutUvarint(f.buf, 2*uint64(len(v))+1) + if _, e := f.w.Write(f.buf[:n]); e != nil { + return e + } + if len(v) > 0 { + if _, e := f.w.Write(v); e != nil { + return e + } + } + return nil +} + +// ForEach - Read keys from the file and generate superstring (with extra byte 0x1 prepended to each character, and with 0x0 0x0 pair inserted between keys and values) +// We only consider values with length > 2, because smaller values are not compressible without going into bits +func (f *DecompressedFile) ForEach(walker func(v []byte, compressed bool) error) error { + _, err := f.f.Seek(0, 0) + if err != nil { + return err + } + r := bufio.NewReaderSize(f.f, int(8*datasize.MB)) + buf := make([]byte, 16*1024) + l, e := binary.ReadUvarint(r) + for ; e == nil; l, e = binary.ReadUvarint(r) { + // extract lowest bit of length prefix as "uncompressed" flag and shift to obtain correct length + compressed := (l & 1) == 0 + l >>= 1 + if len(buf) < int(l) { + buf = make([]byte, l) + } + if _, e = io.ReadFull(r, buf[:l]); e != nil { + return e + } + if err := walker(buf[:l], compressed); err != nil { + return err + } + } + if e != nil && !errors.Is(e, io.EOF) { + return e + } + return nil +} diff --git a/erigon-lib/compress/compress_fuzz_test.go b/erigon-lib/compress/compress_fuzz_test.go new file mode 100644 index 00000000000..f9403ef8457 --- /dev/null +++ b/erigon-lib/compress/compress_fuzz_test.go @@ -0,0 +1,80 @@ +//go:build !nofuzz + +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package compress + +import ( + "context" + "fmt" + "math/rand" + "path/filepath" + "testing" + + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/log/v3" +) + +func FuzzCompress(f *testing.F) { + logger := log.New() + f.Fuzz(func(t *testing.T, x []byte, pos []byte, workers int8) { + t.Helper() + t.Parallel() + if len(pos) < 1 || workers < 1 { + t.Skip() + return + } + var a [][]byte + j := 0 + for i := 0; i < len(pos) && j < len(x); i++ { + if pos[i] == 0 { + continue + } + next := cmp.Min(j+int(pos[i]*10), len(x)-1) + bbb := x[j:next] + a = append(a, bbb) + j = next + } + + ctx := context.Background() + tmpDir := t.TempDir() + file := filepath.Join(tmpDir, fmt.Sprintf("compressed-%d", rand.Int31())) + c, err := NewCompressor(ctx, t.Name(), file, tmpDir, 2, int(workers), log.LvlDebug, logger) + if err != nil { + t.Fatal(err) + } + defer c.Close() + for _, b := range a { + if err = c.AddWord(b); err != nil { + t.Fatal(err) + } + } + if err = c.Compress(); err != nil { + t.Fatal(err) + } + c.Close() + d, err := NewDecompressor(file) + if err != nil { + t.Fatal(err) + } + defer d.Close() + g := d.MakeGetter() + buf := make([]byte, 0, 100) + for g.HasNext() { + buf, _ = g.Next(buf[:0]) + } + }) +} diff --git a/erigon-lib/compress/compress_test.go b/erigon-lib/compress/compress_test.go new file mode 100644 index 00000000000..d8044b03344 --- /dev/null +++ b/erigon-lib/compress/compress_test.go @@ -0,0 +1,271 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package compress + +import ( + "context" + "fmt" + "hash/crc32" + "io" + "os" + "path/filepath" + "testing" + + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" +) + +func TestCompressEmptyDict(t *testing.T) { + logger := log.New() + tmpDir := t.TempDir() + file := filepath.Join(tmpDir, "compressed") + c, err := NewCompressor(context.Background(), t.Name(), file, tmpDir, 100, 1, log.LvlDebug, logger) + if err != nil { + t.Fatal(err) + } + defer c.Close() + + if err = c.AddWord([]byte("word")); err != nil { + t.Fatal(err) + } + if err = c.Compress(); err != nil { + t.Fatal(err) + } + var d *Decompressor + if d, err = NewDecompressor(file); err != nil { + t.Fatal(err) + } + defer d.Close() + g := d.MakeGetter() + if !g.HasNext() { + t.Fatalf("expected a word") + } + word, _ := g.Next(nil) + if string(word) != "word" { + t.Fatalf("expeced word, got (hex) %x", word) + } + if g.HasNext() { + t.Fatalf("not expecting anything else") + } +} + +// nolint +func checksum(file string) uint32 { + hasher := crc32.NewIEEE() + f, err := os.Open(file) + if err != nil { + panic(err) + } + defer f.Close() + if _, err := io.Copy(hasher, f); err != nil { + panic(err) + } + return hasher.Sum32() +} + +func prepareDict(t *testing.T) *Decompressor { + t.Helper() + logger := log.New() + tmpDir := t.TempDir() + file := filepath.Join(tmpDir, "compressed") + t.Name() + c, err := NewCompressor(context.Background(), t.Name(), file, tmpDir, 1, 2, log.LvlDebug, logger) + if err != nil { + t.Fatal(err) + } + defer c.Close() + for i := 0; i < 100; i++ { + if err = c.AddWord(nil); err != nil { + panic(err) + } + if err = c.AddWord([]byte("long")); err != nil { + t.Fatal(err) + } + if err = c.AddWord([]byte("word")); err != nil { + t.Fatal(err) + } + if err = c.AddWord([]byte(fmt.Sprintf("%d longlongword %d", i, i))); err != nil { + t.Fatal(err) + } + } + if err = c.Compress(); err != nil { + t.Fatal(err) + } + var d *Decompressor + if d, err = NewDecompressor(file); err != nil { + t.Fatal(err) + } + return d +} + +func TestCompressDict1(t *testing.T) { + d := prepareDict(t) + defer d.Close() + g := d.MakeGetter() + i := 0 + g.Reset(0) + for g.HasNext() { + // next word is `nil` + require.False(t, g.MatchPrefix([]byte("long"))) + require.True(t, g.MatchPrefix([]byte(""))) + require.True(t, g.MatchPrefix([]byte{})) + + require.Equal(t, 1, g.MatchPrefixCmp([]byte("long"))) + require.Equal(t, 0, g.MatchPrefixCmp([]byte(""))) + require.Equal(t, 0, g.MatchPrefixCmp([]byte{})) + word, _ := g.Next(nil) + require.NotNil(t, word) + require.Zero(t, len(word)) + + // next word is `long` + require.True(t, g.MatchPrefix([]byte("long"))) + require.False(t, g.MatchPrefix([]byte("longlong"))) + require.False(t, g.MatchPrefix([]byte("wordnotmatch"))) + require.False(t, g.MatchPrefix([]byte("longnotmatch"))) + require.True(t, g.MatchPrefix([]byte{})) + + require.Equal(t, 0, g.MatchPrefixCmp([]byte("long"))) + require.Equal(t, 1, g.MatchPrefixCmp([]byte("longlong"))) + require.Equal(t, 1, g.MatchPrefixCmp([]byte("wordnotmatch"))) + require.Equal(t, 1, g.MatchPrefixCmp([]byte("longnotmatch"))) + require.Equal(t, 0, g.MatchPrefixCmp([]byte{})) + _, _ = g.Next(nil) + + // next word is `word` + require.False(t, g.MatchPrefix([]byte("long"))) + require.False(t, g.MatchPrefix([]byte("longlong"))) + require.True(t, g.MatchPrefix([]byte("word"))) + require.True(t, g.MatchPrefix([]byte(""))) + require.True(t, g.MatchPrefix(nil)) + require.False(t, g.MatchPrefix([]byte("wordnotmatch"))) + require.False(t, g.MatchPrefix([]byte("longnotmatch"))) + + require.Equal(t, -1, g.MatchPrefixCmp([]byte("long"))) + require.Equal(t, -1, g.MatchPrefixCmp([]byte("longlong"))) + require.Equal(t, 0, g.MatchPrefixCmp([]byte("word"))) + require.Equal(t, 0, g.MatchPrefixCmp([]byte(""))) + require.Equal(t, 0, g.MatchPrefixCmp(nil)) + require.Equal(t, 1, g.MatchPrefixCmp([]byte("wordnotmatch"))) + require.Equal(t, -1, g.MatchPrefixCmp([]byte("longnotmatch"))) + _, _ = g.Next(nil) + + // next word is `longlongword %d` + expectPrefix := fmt.Sprintf("%d long", i) + + require.True(t, g.MatchPrefix([]byte(fmt.Sprintf("%d", i)))) + require.True(t, g.MatchPrefix([]byte(expectPrefix))) + require.True(t, g.MatchPrefix([]byte(expectPrefix+"long"))) + require.True(t, g.MatchPrefix([]byte(expectPrefix+"longword "))) + require.False(t, g.MatchPrefix([]byte("wordnotmatch"))) + require.False(t, g.MatchPrefix([]byte("longnotmatch"))) + require.True(t, g.MatchPrefix([]byte{})) + + require.Equal(t, 0, g.MatchPrefixCmp([]byte(fmt.Sprintf("%d", i)))) + require.Equal(t, 0, g.MatchPrefixCmp([]byte(expectPrefix))) + require.Equal(t, 0, g.MatchPrefixCmp([]byte(expectPrefix+"long"))) + require.Equal(t, 0, g.MatchPrefixCmp([]byte(expectPrefix+"longword "))) + require.Equal(t, 1, g.MatchPrefixCmp([]byte("wordnotmatch"))) + require.Equal(t, 1, g.MatchPrefixCmp([]byte("longnotmatch"))) + require.Equal(t, 0, g.MatchPrefixCmp([]byte{})) + savePos := g.dataP + word, nextPos := g.Next(nil) + expected := fmt.Sprintf("%d longlongword %d", i, i) + g.Reset(savePos) + require.Equal(t, 0, g.MatchCmp([]byte(expected))) + g.Reset(nextPos) + if string(word) != expected { + t.Errorf("expected %s, got (hex) [%s]", expected, word) + } + i++ + } + + if cs := checksum(d.filePath); cs != 3153486123 { + // it's ok if hash changed, but need re-generate all existing snapshot hashes + // in https://github.com/ledgerwatch/erigon-snapshot + t.Errorf("result file hash changed, %d", cs) + } +} + +func TestCompressDictCmp(t *testing.T) { + d := prepareDict(t) + defer d.Close() + g := d.MakeGetter() + i := 0 + g.Reset(0) + for g.HasNext() { + // next word is `nil` + savePos := g.dataP + require.Equal(t, 1, g.MatchCmp([]byte("long"))) + require.Equal(t, 0, g.MatchCmp([]byte(""))) // moves offset + g.Reset(savePos) + require.Equal(t, 0, g.MatchCmp([]byte{})) // moves offset + g.Reset(savePos) + + word, _ := g.Next(nil) + require.NotNil(t, word) + require.Zero(t, len(word)) + + // next word is `long` + savePos = g.dataP + require.Equal(t, 0, g.MatchCmp([]byte("long"))) // moves offset + g.Reset(savePos) + require.Equal(t, 1, g.MatchCmp([]byte("longlong"))) + require.Equal(t, 1, g.MatchCmp([]byte("wordnotmatch"))) + require.Equal(t, 1, g.MatchCmp([]byte("longnotmatch"))) + require.Equal(t, -1, g.MatchCmp([]byte{})) + _, _ = g.Next(nil) + + // next word is `word` + savePos = g.dataP + require.Equal(t, -1, g.MatchCmp([]byte("long"))) + require.Equal(t, -1, g.MatchCmp([]byte("longlong"))) + require.Equal(t, 0, g.MatchCmp([]byte("word"))) // moves offset + g.Reset(savePos) + require.Equal(t, -1, g.MatchCmp([]byte(""))) + require.Equal(t, -1, g.MatchCmp(nil)) + require.Equal(t, 1, g.MatchCmp([]byte("wordnotmatch"))) + require.Equal(t, -1, g.MatchCmp([]byte("longnotmatch"))) + _, _ = g.Next(nil) + + // next word is `longlongword %d` + expectPrefix := fmt.Sprintf("%d long", i) + + require.Equal(t, -1, g.MatchCmp([]byte(fmt.Sprintf("%d", i)))) + require.Equal(t, -1, g.MatchCmp([]byte(expectPrefix))) + require.Equal(t, -1, g.MatchCmp([]byte(expectPrefix+"long"))) + require.Equal(t, -1, g.MatchCmp([]byte(expectPrefix+"longword "))) + require.Equal(t, 1, g.MatchCmp([]byte("wordnotmatch"))) + require.Equal(t, 1, g.MatchCmp([]byte("longnotmatch"))) + require.Equal(t, -1, g.MatchCmp([]byte{})) + savePos = g.dataP + word, nextPos := g.Next(nil) + expected := fmt.Sprintf("%d longlongword %d", i, i) + g.Reset(savePos) + require.Equal(t, 0, g.MatchCmp([]byte(expected))) + g.Reset(nextPos) + if string(word) != expected { + t.Errorf("expected %s, got (hex) [%s]", expected, word) + } + i++ + } + + if cs := checksum(d.filePath); cs != 3153486123 { + // it's ok if hash changed, but need re-generate all existing snapshot hashes + // in https://github.com/ledgerwatch/erigon-snapshot + t.Errorf("result file hash changed, %d", cs) + } +} diff --git a/erigon-lib/compress/decompress.go b/erigon-lib/compress/decompress.go new file mode 100644 index 00000000000..52e6bad505c --- /dev/null +++ b/erigon-lib/compress/decompress.go @@ -0,0 +1,1037 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package compress + +import ( + "bytes" + "encoding/binary" + "fmt" + "os" + "path/filepath" + "strconv" + "time" + "unsafe" + + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/mmap" + "github.com/ledgerwatch/log/v3" +) + +type word []byte // plain text word associated with code from dictionary + +type codeword struct { + pattern *word // Pattern corresponding to entries + ptr *patternTable // pointer to deeper level tables + code uint16 // code associated with that word + len byte // Number of bits in the codes +} + +type patternTable struct { + patterns []*codeword + bitLen int // Number of bits to lookup in the table +} + +func newPatternTable(bitLen int) *patternTable { + pt := &patternTable{ + bitLen: bitLen, + } + if bitLen <= condensePatternTableBitThreshold { + pt.patterns = make([]*codeword, 1< 0 { + codeTo = codeFrom | (uint16(1) << pt.bitLen) + } + + for c := codeFrom; c < codeTo; c += codeStep { + pt.patterns[c] = cw + } + return + } + + pt.patterns = append(pt.patterns, cw) +} + +func (pt *patternTable) condensedTableSearch(code uint16) *codeword { + if pt.bitLen <= condensePatternTableBitThreshold { + return pt.patterns[code] + } + for _, cur := range pt.patterns { + if cur.code == code { + return cur + } + d := code - cur.code + if d&1 != 0 { + continue + } + if checkDistance(int(cur.len), int(d)) { + return cur + } + } + return nil +} + +type posTable struct { + pos []uint64 + lens []byte + ptrs []*posTable + bitLen int +} + +// Decompressor provides access to the superstrings in a file produced by a compressor +type Decompressor struct { + f *os.File + mmapHandle2 *[mmap.MaxMapSize]byte // mmap handle for windows (this is used to close mmap) + dict *patternTable + posDict *posTable + mmapHandle1 []byte // mmap handle for unix (this is used to close mmap) + data []byte // slice of correct size for the decompressor to work with + wordsStart uint64 // Offset of whether the superstrings actually start + size int64 + modTime time.Time + wordsCount uint64 + emptyWordsCount uint64 + + filePath, fileName string +} + +// Tables with bitlen greater than threshold will be condensed. +// Condensing reduces size of decompression table but leads to slower reads. +// To disable condesning at all set to 9 (we dont use tables larger than 2^9) +// To enable condensing for tables of size larger 64 = 6 +// for all tables = 0 +// There is no sense to condense tables of size [1 - 64] in terms of performance +// +// Should be set before calling NewDecompression. +var condensePatternTableBitThreshold = 9 + +func init() { + v, _ := os.LookupEnv("DECOMPRESS_CONDENSITY") + if v != "" { + i, err := strconv.Atoi(v) + if err != nil { + panic(err) + } + if i < 3 || i > 9 { + panic("DECOMPRESS_CONDENSITY: only numbers in range 3-9 are acceptable ") + } + condensePatternTableBitThreshold = i + fmt.Printf("set DECOMPRESS_CONDENSITY to %d\n", i) + } +} + +func SetDecompressionTableCondensity(fromBitSize int) { + condensePatternTableBitThreshold = fromBitSize +} + +func NewDecompressor(compressedFilePath string) (d *Decompressor, err error) { + _, fName := filepath.Split(compressedFilePath) + d = &Decompressor{ + filePath: compressedFilePath, + fileName: fName, + } + defer func() { + + if rec := recover(); rec != nil { + err = fmt.Errorf("decompressing file: %s, %+v, trace: %s", compressedFilePath, rec, dbg.Stack()) + } + }() + + d.f, err = os.Open(compressedFilePath) + if err != nil { + return nil, err + } + + var stat os.FileInfo + if stat, err = d.f.Stat(); err != nil { + return nil, err + } + d.size = stat.Size() + if d.size < 32 { + return nil, fmt.Errorf("compressed file is too short: %d", d.size) + } + d.modTime = stat.ModTime() + if d.mmapHandle1, d.mmapHandle2, err = mmap.Mmap(d.f, int(d.size)); err != nil { + return nil, err + } + // read patterns from file + d.data = d.mmapHandle1[:d.size] + defer d.EnableReadAhead().DisableReadAhead() //speedup opening on slow drives + + d.wordsCount = binary.BigEndian.Uint64(d.data[:8]) + d.emptyWordsCount = binary.BigEndian.Uint64(d.data[8:16]) + dictSize := binary.BigEndian.Uint64(d.data[16:24]) + data := d.data[24 : 24+dictSize] + + var depths []uint64 + var patterns [][]byte + var i uint64 + var patternMaxDepth uint64 + + for i < dictSize { + d, ns := binary.Uvarint(data[i:]) + if d > 64 { // mainnet has maxDepth 31 + return nil, fmt.Errorf("dictionary is invalid: patternMaxDepth=%d", d) + } + depths = append(depths, d) + if d > patternMaxDepth { + patternMaxDepth = d + } + i += uint64(ns) + l, n := binary.Uvarint(data[i:]) + i += uint64(n) + patterns = append(patterns, data[i:i+l]) + //fmt.Printf("depth = %d, pattern = [%x]\n", d, data[i:i+l]) + i += l + } + + if dictSize > 0 { + var bitLen int + if patternMaxDepth > 9 { + bitLen = 9 + } else { + bitLen = int(patternMaxDepth) + } + // fmt.Printf("pattern maxDepth=%d\n", tree.maxDepth) + d.dict = newPatternTable(bitLen) + buildCondensedPatternTable(d.dict, depths, patterns, 0, 0, 0, patternMaxDepth) + } + + // read positions + pos := 24 + dictSize + dictSize = binary.BigEndian.Uint64(d.data[pos : pos+8]) + data = d.data[pos+8 : pos+8+dictSize] + + var posDepths []uint64 + var poss []uint64 + var posMaxDepth uint64 + + i = 0 + for i < dictSize { + d, ns := binary.Uvarint(data[i:]) + if d > 2048 { + return nil, fmt.Errorf("dictionary is invalid: posMaxDepth=%d", d) + } + posDepths = append(posDepths, d) + if d > posMaxDepth { + posMaxDepth = d + } + i += uint64(ns) + pos, n := binary.Uvarint(data[i:]) + i += uint64(n) + poss = append(poss, pos) + } + + if dictSize > 0 { + var bitLen int + if posMaxDepth > 9 { + bitLen = 9 + } else { + bitLen = int(posMaxDepth) + } + //fmt.Printf("pos maxDepth=%d\n", tree.maxDepth) + tableSize := 1 << bitLen + d.posDict = &posTable{ + bitLen: bitLen, + pos: make([]uint64, tableSize), + lens: make([]byte, tableSize), + ptrs: make([]*posTable, tableSize), + } + buildPosTable(posDepths, poss, d.posDict, 0, 0, 0, posMaxDepth) + } + d.wordsStart = pos + 8 + dictSize + return d, nil +} + +func buildCondensedPatternTable(table *patternTable, depths []uint64, patterns [][]byte, code uint16, bits int, depth uint64, maxDepth uint64) int { + if len(depths) == 0 { + return 0 + } + if depth == depths[0] { + pattern := word(patterns[0]) + //fmt.Printf("depth=%d, maxDepth=%d, code=[%b], codeLen=%d, pattern=[%x]\n", depth, maxDepth, code, bits, pattern) + cw := &codeword{code: code, pattern: &pattern, len: byte(bits), ptr: nil} + table.insertWord(cw) + return 1 + } + if bits == 9 { + var bitLen int + if maxDepth > 9 { + bitLen = 9 + } else { + bitLen = int(maxDepth) + } + cw := &codeword{code: code, pattern: nil, len: byte(0), ptr: newPatternTable(bitLen)} + table.insertWord(cw) + return buildCondensedPatternTable(cw.ptr, depths, patterns, 0, 0, depth, maxDepth) + } + b0 := buildCondensedPatternTable(table, depths, patterns, code, bits+1, depth+1, maxDepth-1) + return b0 + buildCondensedPatternTable(table, depths[b0:], patterns[b0:], (uint16(1)< 9 { + bitLen = 9 + } else { + bitLen = int(maxDepth) + } + tableSize := 1 << bitLen + newTable := &posTable{ + bitLen: bitLen, + pos: make([]uint64, tableSize), + lens: make([]byte, tableSize), + ptrs: make([]*posTable, tableSize), + } + table.pos[code] = 0 + table.lens[code] = byte(0) + table.ptrs[code] = newTable + return buildPosTable(depths, poss, newTable, 0, 0, depth, maxDepth) + } + b0 := buildPosTable(depths, poss, table, code, bits+1, depth+1, maxDepth-1) + return b0 + buildPosTable(depths[b0:], poss[b0:], table, (uint16(1)< 0 { + g.dataP++ + g.dataBit = 0 + } + table := g.posDict + if table.bitLen == 0 { + return table.pos[0] + } + for l := byte(0); l == 0; { + code := uint16(g.data[g.dataP]) >> g.dataBit + if 8-g.dataBit < table.bitLen && int(g.dataP)+1 < len(g.data) { + code |= uint16(g.data[g.dataP+1]) << (8 - g.dataBit) + } + code &= (uint16(1) << table.bitLen) - 1 + l = table.lens[code] + if l == 0 { + table = table.ptrs[code] + g.dataBit += 9 + } else { + g.dataBit += int(l) + pos = table.pos[code] + } + g.dataP += uint64(g.dataBit / 8) + g.dataBit %= 8 + } + return pos +} + +func (g *Getter) nextPattern() []byte { + table := g.patternDict + + if table.bitLen == 0 { + return *table.patterns[0].pattern + } + + var l byte + var pattern []byte + for l == 0 { + code := uint16(g.data[g.dataP]) >> g.dataBit + if 8-g.dataBit < table.bitLen && int(g.dataP)+1 < len(g.data) { + code |= uint16(g.data[g.dataP+1]) << (8 - g.dataBit) + } + code &= (uint16(1) << table.bitLen) - 1 + + cw := table.condensedTableSearch(code) + l = cw.len + if l == 0 { + table = cw.ptr + g.dataBit += 9 + } else { + g.dataBit += int(l) + pattern = *cw.pattern + } + g.dataP += uint64(g.dataBit / 8) + g.dataBit %= 8 + } + return pattern +} + +var condensedWordDistances = buildCondensedWordDistances() + +func checkDistance(power int, d int) bool { + for _, dist := range condensedWordDistances[power] { + if dist == d { + return true + } + } + return false +} + +func buildCondensedWordDistances() [][]int { + dist2 := make([][]int, 10) + for i := 1; i <= 9; i++ { + dl := make([]int, 0) + for j := 1 << i; j < 512; j += 1 << i { + dl = append(dl, j) + } + dist2[i] = dl + } + return dist2 +} + +func (g *Getter) Size() int { + return len(g.data) +} + +func (d *Decompressor) Count() int { return int(d.wordsCount) } +func (d *Decompressor) EmptyWordsCount() int { return int(d.emptyWordsCount) } + +// MakeGetter creates an object that can be used to access superstrings in the decompressor's file +// Getter is not thread-safe, but there can be multiple getters used simultaneously and concurrently +// for the same decompressor +func (d *Decompressor) MakeGetter() *Getter { + return &Getter{ + posDict: d.posDict, + data: d.data[d.wordsStart:], + patternDict: d.dict, + fName: d.fileName, + } +} + +func (g *Getter) Reset(offset uint64) { + g.dataP = offset + g.dataBit = 0 +} + +func (g *Getter) HasNext() bool { + return g.dataP < uint64(len(g.data)) +} + +// Next extracts a compressed word from current offset in the file +// and appends it to the given buf, returning the result of appending +// After extracting next word, it moves to the beginning of the next one +func (g *Getter) Next(buf []byte) ([]byte, uint64) { + savePos := g.dataP + wordLen := g.nextPos(true) + wordLen-- // because when create huffman tree we do ++ , because 0 is terminator + if wordLen == 0 { + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + if buf == nil { // wordLen == 0, means we have valid record of 0 size. nil - is the marker of "something not found" + buf = []byte{} + } + return buf, g.dataP + } + bufPos := len(buf) // Tracking position in buf where to insert part of the word + lastUncovered := len(buf) + if len(buf)+int(wordLen) > cap(buf) { + newBuf := make([]byte, len(buf)+int(wordLen)) + copy(newBuf, buf) + buf = newBuf + } else { + // Expand buffer + buf = buf[:len(buf)+int(wordLen)] + } + // Loop below fills in the patterns + for pos := g.nextPos(false /* clean */); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 // Positions where to insert patterns are encoded relative to one another + pt := g.nextPattern() + copy(buf[bufPos:], pt) + } + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + postLoopPos := g.dataP + g.dataP = savePos + g.dataBit = 0 + g.nextPos(true /* clean */) // Reset the state of huffman reader + bufPos = lastUncovered // Restore to the beginning of buf + // Loop below fills the data which is not in the patterns + for pos := g.nextPos(false); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 // Positions where to insert patterns are encoded relative to one another + if bufPos > lastUncovered { + dif := uint64(bufPos - lastUncovered) + copy(buf[lastUncovered:bufPos], g.data[postLoopPos:postLoopPos+dif]) + postLoopPos += dif + } + lastUncovered = bufPos + len(g.nextPattern()) + } + if int(wordLen) > lastUncovered { + dif := wordLen - uint64(lastUncovered) + copy(buf[lastUncovered:wordLen], g.data[postLoopPos:postLoopPos+dif]) + postLoopPos += dif + } + g.dataP = postLoopPos + g.dataBit = 0 + return buf, postLoopPos +} + +func (g *Getter) NextUncompressed() ([]byte, uint64) { + wordLen := g.nextPos(true) + wordLen-- // because when create huffman tree we do ++ , because 0 is terminator + if wordLen == 0 { + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + return g.data[g.dataP:g.dataP], g.dataP + } + g.nextPos(false) + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + pos := g.dataP + g.dataP += wordLen + return g.data[pos:g.dataP], g.dataP +} + +// Skip moves offset to the next word and returns the new offset and the length of the word. +func (g *Getter) Skip() (uint64, int) { + l := g.nextPos(true) + l-- // because when create huffman tree we do ++ , because 0 is terminator + if l == 0 { + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + return g.dataP, 0 + } + wordLen := int(l) + + var add uint64 + var bufPos int + var lastUncovered int + for pos := g.nextPos(false /* clean */); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 + if wordLen < bufPos { + panic(fmt.Sprintf("likely .idx is invalid: %s", g.fName)) + } + if bufPos > lastUncovered { + add += uint64(bufPos - lastUncovered) + } + lastUncovered = bufPos + len(g.nextPattern()) + } + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + if int(l) > lastUncovered { + add += l - uint64(lastUncovered) + } + // Uncovered characters + g.dataP += add + return g.dataP, wordLen +} + +func (g *Getter) SkipUncompressed() (uint64, int) { + wordLen := g.nextPos(true) + wordLen-- // because when create huffman tree we do ++ , because 0 is terminator + if wordLen == 0 { + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + return g.dataP, 0 + } + g.nextPos(false) + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + g.dataP += wordLen + return g.dataP, int(wordLen) +} + +// Match returns true and next offset if the word at current offset fully matches the buf +// returns false and current offset otherwise. +func (g *Getter) Match(buf []byte) (bool, uint64) { + savePos := g.dataP + wordLen := g.nextPos(true) + wordLen-- // because when create huffman tree we do ++ , because 0 is terminator + lenBuf := len(buf) + if wordLen == 0 || int(wordLen) != lenBuf { + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + if lenBuf != 0 { + g.dataP, g.dataBit = savePos, 0 + } + return lenBuf == int(wordLen), g.dataP + } + + var bufPos int + // In the first pass, we only check patterns + for pos := g.nextPos(false /* clean */); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 + pattern := g.nextPattern() + if lenBuf < bufPos+len(pattern) || !bytes.Equal(buf[bufPos:bufPos+len(pattern)], pattern) { + g.dataP, g.dataBit = savePos, 0 + return false, savePos + } + } + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + postLoopPos := g.dataP + g.dataP, g.dataBit = savePos, 0 + g.nextPos(true /* clean */) // Reset the state of huffman decoder + // Second pass - we check spaces not covered by the patterns + var lastUncovered int + bufPos = 0 + for pos := g.nextPos(false /* clean */); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 + if bufPos > lastUncovered { + dif := uint64(bufPos - lastUncovered) + if lenBuf < bufPos || !bytes.Equal(buf[lastUncovered:bufPos], g.data[postLoopPos:postLoopPos+dif]) { + g.dataP, g.dataBit = savePos, 0 + return false, savePos + } + postLoopPos += dif + } + lastUncovered = bufPos + len(g.nextPattern()) + } + if int(wordLen) > lastUncovered { + dif := wordLen - uint64(lastUncovered) + if lenBuf < int(wordLen) || !bytes.Equal(buf[lastUncovered:wordLen], g.data[postLoopPos:postLoopPos+dif]) { + g.dataP, g.dataBit = savePos, 0 + return false, savePos + } + postLoopPos += dif + } + if lenBuf != int(wordLen) { + g.dataP, g.dataBit = savePos, 0 + return false, savePos + } + g.dataP, g.dataBit = postLoopPos, 0 + return true, postLoopPos +} + +// MatchPrefix only checks if the word at the current offset has a buf prefix. Does not move offset to the next word. +func (g *Getter) MatchPrefix(prefix []byte) bool { + savePos := g.dataP + defer func() { + g.dataP, g.dataBit = savePos, 0 + }() + + wordLen := g.nextPos(true /* clean */) + wordLen-- // because when create huffman tree we do ++ , because 0 is terminator + prefixLen := len(prefix) + if wordLen == 0 || int(wordLen) < prefixLen { + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + if prefixLen != 0 { + g.dataP, g.dataBit = savePos, 0 + } + return prefixLen == int(wordLen) + } + + var bufPos int + // In the first pass, we only check patterns + // Only run this loop as far as the prefix goes, there is no need to check further + for pos := g.nextPos(false /* clean */); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 + pattern := g.nextPattern() + var comparisonLen int + if prefixLen < bufPos+len(pattern) { + comparisonLen = prefixLen - bufPos + } else { + comparisonLen = len(pattern) + } + if bufPos < prefixLen { + if !bytes.Equal(prefix[bufPos:bufPos+comparisonLen], pattern[:comparisonLen]) { + return false + } + } + } + + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + postLoopPos := g.dataP + g.dataP, g.dataBit = savePos, 0 + g.nextPos(true /* clean */) // Reset the state of huffman decoder + // Second pass - we check spaces not covered by the patterns + var lastUncovered int + bufPos = 0 + for pos := g.nextPos(false /* clean */); pos != 0 && lastUncovered < prefixLen; pos = g.nextPos(false) { + bufPos += int(pos) - 1 + if bufPos > lastUncovered { + dif := uint64(bufPos - lastUncovered) + var comparisonLen int + if prefixLen < lastUncovered+int(dif) { + comparisonLen = prefixLen - lastUncovered + } else { + comparisonLen = int(dif) + } + if !bytes.Equal(prefix[lastUncovered:lastUncovered+comparisonLen], g.data[postLoopPos:postLoopPos+uint64(comparisonLen)]) { + return false + } + postLoopPos += dif + } + lastUncovered = bufPos + len(g.nextPattern()) + } + if prefixLen > lastUncovered && int(wordLen) > lastUncovered { + dif := wordLen - uint64(lastUncovered) + var comparisonLen int + if prefixLen < int(wordLen) { + comparisonLen = prefixLen - lastUncovered + } else { + comparisonLen = int(dif) + } + if !bytes.Equal(prefix[lastUncovered:lastUncovered+comparisonLen], g.data[postLoopPos:postLoopPos+uint64(comparisonLen)]) { + return false + } + } + return true +} + +// MatchCmp lexicographically compares given buf with the word at the current offset in the file. +// returns 0 if buf == word, -1 if buf < word, 1 if buf > word +func (g *Getter) MatchCmp(buf []byte) int { + savePos := g.dataP + wordLen := g.nextPos(true) + wordLen-- // because when create huffman tree we do ++ , because 0 is terminator + lenBuf := len(buf) + if wordLen == 0 && lenBuf != 0 { + g.dataP, g.dataBit = savePos, 0 + return 1 + } + if wordLen == 0 && lenBuf == 0 { + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + return 0 + } + + decoded := make([]byte, wordLen) + var bufPos int + // In the first pass, we only check patterns + for pos := g.nextPos(false /* clean */); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 + pattern := g.nextPattern() + copy(decoded[bufPos:], pattern) + } + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + postLoopPos := g.dataP + g.dataP, g.dataBit = savePos, 0 + g.nextPos(true /* clean */) // Reset the state of huffman decoder + // Second pass - we check spaces not covered by the patterns + var lastUncovered int + bufPos = 0 + for pos := g.nextPos(false /* clean */); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 + // fmt.Printf("BUF POS: %d, POS: %d, lastUncovered: %d\n", bufPos, pos, lastUncovered) + if bufPos > lastUncovered { + dif := uint64(bufPos - lastUncovered) + copy(decoded[lastUncovered:bufPos], g.data[postLoopPos:postLoopPos+dif]) + postLoopPos += dif + } + lastUncovered = bufPos + len(g.nextPattern()) + } + + if int(wordLen) > lastUncovered { + dif := wordLen - uint64(lastUncovered) + copy(decoded[lastUncovered:wordLen], g.data[postLoopPos:postLoopPos+dif]) + postLoopPos += dif + } + cmp := bytes.Compare(buf, decoded) + if cmp == 0 { + g.dataP, g.dataBit = postLoopPos, 0 + } else { + g.dataP, g.dataBit = savePos, 0 + } + return cmp +} + +// MatchPrefixCmp lexicographically compares given prefix with the word at the current offset in the file. +// returns 0 if buf == word, -1 if buf < word, 1 if buf > word +func (g *Getter) MatchPrefixCmp(prefix []byte) int { + savePos := g.dataP + defer func() { + g.dataP, g.dataBit = savePos, 0 + }() + + wordLen := g.nextPos(true /* clean */) + wordLen-- // because when create huffman tree we do ++ , because 0 is terminator + prefixLen := len(prefix) + if wordLen == 0 && prefixLen != 0 { + return 1 + } + if prefixLen == 0 { + return 0 + } + + decoded := make([]byte, wordLen) + var bufPos int + // In the first pass, we only check patterns + // Only run this loop as far as the prefix goes, there is no need to check further + for pos := g.nextPos(false /* clean */); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 + if bufPos > prefixLen { + break + } + pattern := g.nextPattern() + copy(decoded[bufPos:], pattern) + } + + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + postLoopPos := g.dataP + g.dataP, g.dataBit = savePos, 0 + g.nextPos(true /* clean */) // Reset the state of huffman decoder + // Second pass - we check spaces not covered by the patterns + var lastUncovered int + bufPos = 0 + for pos := g.nextPos(false /* clean */); pos != 0 && lastUncovered < prefixLen; pos = g.nextPos(false) { + bufPos += int(pos) - 1 + if bufPos > lastUncovered { + dif := uint64(bufPos - lastUncovered) + copy(decoded[lastUncovered:bufPos], g.data[postLoopPos:postLoopPos+dif]) + postLoopPos += dif + } + lastUncovered = bufPos + len(g.nextPattern()) + } + if prefixLen > lastUncovered && int(wordLen) > lastUncovered { + dif := wordLen - uint64(lastUncovered) + copy(decoded[lastUncovered:wordLen], g.data[postLoopPos:postLoopPos+dif]) + // postLoopPos += dif + } + var cmp int + if prefixLen > int(wordLen) { + // TODO(racytech): handle this case + // e.g: prefix = 'aaacb' + // word = 'aaa' + cmp = bytes.Compare(prefix, decoded) + } else { + cmp = bytes.Compare(prefix, decoded[:prefixLen]) + } + + return cmp +} + +func (g *Getter) MatchPrefixUncompressed(prefix []byte) int { + savePos := g.dataP + defer func() { + g.dataP, g.dataBit = savePos, 0 + }() + + wordLen := g.nextPos(true /* clean */) + wordLen-- // because when create huffman tree we do ++ , because 0 is terminator + prefixLen := len(prefix) + if wordLen == 0 && prefixLen != 0 { + return 1 + } + if prefixLen == 0 { + return 0 + } + + g.nextPos(true) + + // if prefixLen > int(wordLen) { + // // TODO(racytech): handle this case + // // e.g: prefix = 'aaacb' + // // word = 'aaa' + // } + + return bytes.Compare(prefix, g.data[g.dataP:g.dataP+wordLen]) +} + +// FastNext extracts a compressed word from current offset in the file +// into the given buf, returning a new byte slice which contains extracted word. +// It is important to allocate enough buf size. Could throw an error if word in file is larger then the buf size. +// After extracting next word, it moves to the beginning of the next one +func (g *Getter) FastNext(buf []byte) ([]byte, uint64) { + defer func() { + if rec := recover(); rec != nil { + panic(fmt.Sprintf("file: %s, %s, %s", g.fName, rec, dbg.Stack())) + } + }() + + savePos := g.dataP + wordLen := g.nextPos(true) + wordLen-- // because when create huffman tree we do ++ , because 0 is terminator + // decoded := make([]byte, wordLen) + if wordLen == 0 { + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + return buf[:wordLen], g.dataP + } + bufPos := 0 // Tracking position in buf where to insert part of the word + lastUncovered := 0 + + // if int(wordLen) > cap(buf) { + // newBuf := make([]byte, int(wordLen)) + // buf = newBuf + // } + // Loop below fills in the patterns + for pos := g.nextPos(false /* clean */); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 // Positions where to insert patterns are encoded relative to one another + pt := g.nextPattern() + copy(buf[bufPos:], pt) + } + if g.dataBit > 0 { + g.dataP++ + g.dataBit = 0 + } + postLoopPos := g.dataP + g.dataP = savePos + g.dataBit = 0 + g.nextPos(true /* clean */) // Reset the state of huffman reader + bufPos = lastUncovered // Restore to the beginning of buf + // Loop below fills the data which is not in the patterns + for pos := g.nextPos(false); pos != 0; pos = g.nextPos(false) { + bufPos += int(pos) - 1 // Positions where to insert patterns are encoded relative to one another + if bufPos > lastUncovered { + dif := uint64(bufPos - lastUncovered) + copy(buf[lastUncovered:bufPos], g.data[postLoopPos:postLoopPos+dif]) + postLoopPos += dif + } + lastUncovered = bufPos + len(g.nextPattern()) + } + if int(wordLen) > lastUncovered { + dif := wordLen - uint64(lastUncovered) + copy(buf[lastUncovered:wordLen], g.data[postLoopPos:postLoopPos+dif]) + postLoopPos += dif + } + g.dataP = postLoopPos + g.dataBit = 0 + return buf[:wordLen], postLoopPos +} diff --git a/erigon-lib/compress/decompress_bench_test.go b/erigon-lib/compress/decompress_bench_test.go new file mode 100644 index 00000000000..9f6cd4b5d9b --- /dev/null +++ b/erigon-lib/compress/decompress_bench_test.go @@ -0,0 +1,147 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package compress + +import ( + "fmt" + "os" + "testing" + + "github.com/stretchr/testify/require" +) + +func BenchmarkDecompressNext(b *testing.B) { + t := new(testing.T) + d := prepareDict(t) + defer d.Close() + g := d.MakeGetter() + for i := 0; i < b.N; i++ { + _, _ = g.Next(nil) + if !g.HasNext() { + g.Reset(0) + } + } +} + +func BenchmarkDecompressFastNext(b *testing.B) { + t := new(testing.T) + d := prepareDict(t) + defer d.Close() + g := d.MakeGetter() + buf := make([]byte, 100) + for i := 0; i < b.N; i++ { + _, _ = g.FastNext(buf) + if !g.HasNext() { + g.Reset(0) + } + } +} + +func BenchmarkDecompressSkip(b *testing.B) { + t := new(testing.T) + d := prepareDict(t) + defer d.Close() + g := d.MakeGetter() + + for i := 0; i < b.N; i++ { + _, _ = g.Skip() + if !g.HasNext() { + g.Reset(0) + } + } +} + +func BenchmarkDecompressMatch(b *testing.B) { + t := new(testing.T) + d := prepareDict(t) + defer d.Close() + g := d.MakeGetter() + for i := 0; i < b.N; i++ { + _, _ = g.Match([]byte("longlongword")) + } +} + +func BenchmarkDecompressMatchCmp(b *testing.B) { + t := new(testing.T) + d := prepareDict(t) + defer d.Close() + g := d.MakeGetter() + for i := 0; i < b.N; i++ { + _ = g.MatchCmp([]byte("longlongword")) + if !g.HasNext() { + g.Reset(0) + } + } +} + +func BenchmarkDecompressMatchPrefix(b *testing.B) { + t := new(testing.T) + d := prepareDict(t) + defer d.Close() + g := d.MakeGetter() + + for i := 0; i < b.N; i++ { + _ = g.MatchPrefix([]byte("longlongword")) + } +} + +func BenchmarkDecompressMatchPrefixCmp(b *testing.B) { + t := new(testing.T) + d := prepareDict(t) + defer d.Close() + g := d.MakeGetter() + + for i := 0; i < b.N; i++ { + _ = g.MatchPrefixCmp([]byte("longlongword")) + } +} + +func BenchmarkDecompressTorrent(t *testing.B) { + t.Skip() + + //fpath := "/Volumes/wotah/mainnet/snapshots/v1-013500-014000-bodies.seg" + fpath := "/Volumes/wotah/mainnet/snapshots/v1-013500-014000-transactions.seg" + //fpath := "./v1-006000-006500-transactions.seg" + st, err := os.Stat(fpath) + require.NoError(t, err) + fmt.Printf("file: %v, size: %d\n", st.Name(), st.Size()) + + condensePatternTableBitThreshold = 5 + fmt.Printf("bit threshold: %d\n", condensePatternTableBitThreshold) + + t.Run("init", func(t *testing.B) { + for i := 0; i < t.N; i++ { + d, err := NewDecompressor(fpath) + require.NoError(t, err) + d.Close() + } + }) + t.Run("run", func(t *testing.B) { + d, err := NewDecompressor(fpath) + require.NoError(t, err) + defer d.Close() + + getter := d.MakeGetter() + + for i := 0; i < t.N && getter.HasNext(); i++ { + _, sz := getter.Next(nil) + if sz == 0 { + t.Fatal("sz == 0") + } + } + }) +} diff --git a/erigon-lib/compress/decompress_fuzz_test.go b/erigon-lib/compress/decompress_fuzz_test.go new file mode 100644 index 00000000000..e127a6240e0 --- /dev/null +++ b/erigon-lib/compress/decompress_fuzz_test.go @@ -0,0 +1,96 @@ +package compress + +import ( + "bytes" + "context" + "fmt" + "math/rand" + "path/filepath" + "testing" + + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/log/v3" +) + +func FuzzDecompressMatch(f *testing.F) { + logger := log.New() + f.Fuzz(func(t *testing.T, x []byte, pos []byte, workers int8) { + t.Helper() + t.Parallel() + if len(pos) < 1 || workers < 1 { + t.Skip() + return + } + var a [][]byte + j := 0 + for i := 0; i < len(pos) && j < len(x); i++ { + if pos[i] == 0 { + continue + } + next := cmp.Min(j+int(pos[i]*10), len(x)-1) + bbb := x[j:next] + a = append(a, bbb) + j = next + } + + ctx := context.Background() + tmpDir := t.TempDir() + file := filepath.Join(tmpDir, fmt.Sprintf("compressed-%d", rand.Int31())) + c, err := NewCompressor(ctx, t.Name(), file, tmpDir, 2, int(workers), log.LvlDebug, logger) + if err != nil { + t.Fatal(err) + } + c.DisableFsync() + defer c.Close() + for _, b := range a { + if err = c.AddWord(b); err != nil { + t.Fatal(err) + } + } + if err = c.Compress(); err != nil { + t.Fatal(err) + } + c.Close() + d, err := NewDecompressor(file) + if err != nil { + t.Fatal(err) + } + defer d.Close() + g := d.MakeGetter() + buf := make([]byte, (1 << 16)) + word_idx := 0 + for g.HasNext() { + expected := a[word_idx] + savePos := g.dataP + cmp := g.MatchCmp(expected) + pos1 := g.dataP + if cmp != 0 { + t.Fatalf("MatchCmp: expected match: %v\n", expected) + } + g.Reset(savePos) + ok, _ := g.Match(expected) + pos2 := g.dataP + if !ok { + t.Fatalf("MatchBool: expected match: %v\n", expected) + } + g.Reset(savePos) + word, nexPos := g.Next(nil) + if bytes.Compare(word, expected) != 0 { + t.Fatalf("bytes.Compare: expected match: %v with word %v\n", expected, word) + } + if pos1 != pos2 && pos2 != nexPos { + t.Fatalf("pos1 %v != pos2 %v != nexPos %v\n", pos1, pos2, nexPos) + } + g.Reset(savePos) + word2, nexPos2 := g.FastNext(buf) + if bytes.Compare(word2, expected) != 0 { + t.Fatalf("bytes.Compare: expected match: %v with word %v\n", expected, word) + } + if pos1 != pos2 && pos2 != nexPos && nexPos != nexPos2 { + t.Fatalf("pos1 %v != pos2 %v != nexPos %v\n", pos1, pos2, nexPos) + } + word_idx++ + } + }) + +} diff --git a/erigon-lib/compress/decompress_test.go b/erigon-lib/compress/decompress_test.go new file mode 100644 index 00000000000..0becd5bb58a --- /dev/null +++ b/erigon-lib/compress/decompress_test.go @@ -0,0 +1,767 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package compress + +import ( + "bytes" + "context" + "fmt" + "math/rand" + "os" + "path/filepath" + "strings" + "testing" + "time" + + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" +) + +func prepareLoremDict(t *testing.T) *Decompressor { + t.Helper() + logger := log.New() + tmpDir := t.TempDir() + file := filepath.Join(tmpDir, "compressed") + t.Name() + c, err := NewCompressor(context.Background(), t.Name(), file, tmpDir, 1, 2, log.LvlDebug, logger) + if err != nil { + t.Fatal(err) + } + defer c.Close() + for k, w := range loremStrings { + if err = c.AddWord([]byte(fmt.Sprintf("%s %d", w, k))); err != nil { + t.Fatal(err) + } + } + if err = c.Compress(); err != nil { + t.Fatal(err) + } + var d *Decompressor + if d, err = NewDecompressor(file); err != nil { + t.Fatal(err) + } + return d +} + +func TestDecompressSkip(t *testing.T) { + d := prepareLoremDict(t) + defer d.Close() + g := d.MakeGetter() + i := 0 + for g.HasNext() { + w := loremStrings[i] + if i%2 == 0 { + g.Skip() + } else { + word, _ := g.Next(nil) + expected := fmt.Sprintf("%s %d", w, i) + if string(word) != expected { + t.Errorf("expected %s, got (hex) %s", expected, word) + } + } + i++ + } +} + +func TestDecompressMatchOK(t *testing.T) { + d := prepareLoremDict(t) + defer d.Close() + g := d.MakeGetter() + i := 0 + for g.HasNext() { + w := loremStrings[i] + if i%2 != 0 { + expected := fmt.Sprintf("%s %d", w, i) + ok, _ := g.Match([]byte(expected)) + if !ok { + t.Errorf("expexted match with %s", expected) + } + } else { + word, _ := g.Next(nil) + expected := fmt.Sprintf("%s %d", w, i) + if string(word) != expected { + t.Errorf("expected %s, got (hex) %s", expected, word) + } + } + i++ + } +} + +func TestDecompressMatchCmpOK(t *testing.T) { + d := prepareLoremDict(t) + defer d.Close() + g := d.MakeGetter() + i := 0 + for g.HasNext() { + w := loremStrings[i] + if i%2 != 0 { + expected := fmt.Sprintf("%s %d", w, i) + result := g.MatchCmp([]byte(expected)) + if result != 0 { + t.Errorf("expexted match with %s", expected) + } + } else { + word, _ := g.Next(nil) + expected := fmt.Sprintf("%s %d", w, i) + if string(word) != expected { + t.Errorf("expected %s, got (hex) %s", expected, word) + } + } + i++ + } +} + +func prepareStupidDict(t *testing.T, size int) *Decompressor { + t.Helper() + logger := log.New() + tmpDir := t.TempDir() + file := filepath.Join(tmpDir, "compressed2") + t.Name() + c, err := NewCompressor(context.Background(), t.Name(), file, tmpDir, 1, 2, log.LvlDebug, logger) + if err != nil { + t.Fatal(err) + } + defer c.Close() + for i := 0; i < size; i++ { + if err = c.AddWord([]byte(fmt.Sprintf("word-%d", i))); err != nil { + t.Fatal(err) + } + } + if err = c.Compress(); err != nil { + t.Fatal(err) + } + var d *Decompressor + if d, err = NewDecompressor(file); err != nil { + t.Fatal(err) + } + return d +} + +func TestDecompressMatchOKCondensed(t *testing.T) { + condensePatternTableBitThreshold = 4 + d := prepareStupidDict(t, 10000) + defer func() { condensePatternTableBitThreshold = 9 }() + defer d.Close() + + g := d.MakeGetter() + i := 0 + for g.HasNext() { + if i%2 != 0 { + expected := fmt.Sprintf("word-%d", i) + ok, _ := g.Match([]byte(expected)) + if !ok { + t.Errorf("expexted match with %s", expected) + } + } else { + word, _ := g.Next(nil) + expected := fmt.Sprintf("word-%d", i) + if string(word) != expected { + t.Errorf("expected %s, got (hex) %s", expected, word) + } + } + i++ + } +} + +func TestDecompressMatchNotOK(t *testing.T) { + d := prepareLoremDict(t) + defer d.Close() + g := d.MakeGetter() + i := 0 + skipCount := 0 + for g.HasNext() { + w := loremStrings[i] + expected := fmt.Sprintf("%s %d", w, i+1) + ok, _ := g.Match([]byte(expected)) + if ok { + t.Errorf("not expexted match with %s", expected) + } else { + g.Skip() + skipCount++ + } + i++ + } + if skipCount != i { + t.Errorf("something wrong with match logic") + } +} + +func TestDecompressMatchPrefix(t *testing.T) { + d := prepareLoremDict(t) + defer d.Close() + g := d.MakeGetter() + i := 0 + skipCount := 0 + for g.HasNext() { + w := loremStrings[i] + expected := []byte(fmt.Sprintf("%s %d", w, i+1)) + expected = expected[:len(expected)/2] + if !g.MatchPrefix(expected) { + t.Errorf("expexted match with %s", expected) + } + g.Skip() + skipCount++ + i++ + } + if skipCount != i { + t.Errorf("something wrong with match logic") + } + g.Reset(0) + skipCount = 0 + i = 0 + for g.HasNext() { + w := loremStrings[i] + expected := []byte(fmt.Sprintf("%s %d", w, i+1)) + expected = expected[:len(expected)/2] + if len(expected) > 0 { + expected[len(expected)-1]++ + if g.MatchPrefix(expected) { + t.Errorf("not expexted match with %s", expected) + } + } + g.Skip() + skipCount++ + i++ + } +} + +func TestDecompressMatchPrefixCmp(t *testing.T) { + d := prepareLoremDict(t) + defer d.Close() + g := d.MakeGetter() + i := 0 + skipCount := 0 + for g.HasNext() { + w := loremStrings[i] + expected := []byte(fmt.Sprintf("%s %d", w, i+1)) + expected = expected[:len(expected)/2] + cmp := g.MatchPrefixCmp(expected) + if cmp != 0 { + t.Errorf("expexted match with %s", expected) + } + g.Skip() + skipCount++ + i++ + } + if skipCount != i { + t.Errorf("something wrong with match logic") + } + g.Reset(0) + skipCount = 0 + i = 0 + for g.HasNext() { + w := loremStrings[i] + expected := []byte(fmt.Sprintf("%s %d", w, i+1)) + expected = expected[:len(expected)/2] + if len(expected) > 0 { + expected[len(expected)-1]++ + cmp := g.MatchPrefixCmp(expected) + if cmp == 0 { + t.Errorf("not expexted match with %s", expected) + } + } + g.Skip() + skipCount++ + i++ + } +} + +func prepareLoremDictUncompressed(t *testing.T) *Decompressor { + t.Helper() + logger := log.New() + tmpDir := t.TempDir() + file := filepath.Join(tmpDir, "compressed") + t.Name() + c, err := NewCompressor(context.Background(), t.Name(), file, tmpDir, 1, 2, log.LvlDebug, logger) + if err != nil { + t.Fatal(err) + } + defer c.Close() + for k, w := range loremStrings { + if err = c.AddUncompressedWord([]byte(fmt.Sprintf("%s %d", w, k))); err != nil { + t.Fatal(err) + } + } + if err = c.Compress(); err != nil { + t.Fatal(err) + } + var d *Decompressor + if d, err = NewDecompressor(file); err != nil { + t.Fatal(err) + } + return d +} + +func TestUncompressed(t *testing.T) { + d := prepareLoremDictUncompressed(t) + defer d.Close() + g := d.MakeGetter() + i := 0 + for g.HasNext() { + w := loremStrings[i] + expected := []byte(fmt.Sprintf("%s %d", w, i+1)) + expected = expected[:len(expected)/2] + actual, _ := g.NextUncompressed() + if bytes.Equal(expected, actual) { + t.Errorf("expected %s, actual %s", expected, actual) + } + i++ + } +} + +const lorem = `Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et +dolore magna aliqua Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo +consequat Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur +Excepteur sint occaecat cupidatat non proident sunt in culpa qui officia deserunt mollit anim id est laborum` + +var loremStrings = strings.Split(lorem, " ") + +func TestDecompressTorrent(t *testing.T) { + t.Skip() + + fpath := "/mnt/data/chains/mainnet/snapshots/v1-014000-014500-transactions.seg" + st, err := os.Stat(fpath) + require.NoError(t, err) + fmt.Printf("file: %v, size: %d\n", st.Name(), st.Size()) + + condensePatternTableBitThreshold = 9 + fmt.Printf("bit threshold: %d\n", condensePatternTableBitThreshold) + d, err := NewDecompressor(fpath) + + require.NoError(t, err) + defer d.Close() + + getter := d.MakeGetter() + _ = getter + + for getter.HasNext() { + _, sz := getter.Next(nil) + // fmt.Printf("%x\n", buf) + require.NotZero(t, sz) + } +} + +const N = 100 + +var WORDS = [N][]byte{} +var WORD_FLAGS = [N]bool{} // false - uncompressed word, true - compressed word +var INPUT_FLAGS = []int{} // []byte or nil input + +func randWord() []byte { + size := rand.Intn(256) // size of the word + word := make([]byte, size) + for i := 0; i < size; i++ { + word[i] = byte(rand.Intn(256)) + } + return word +} + +func generateRandWords() { + for i := 0; i < N-2; i++ { + WORDS[i] = randWord() + } + // make sure we have at least 2 emtpy []byte + WORDS[N-2] = []byte{} + WORDS[N-1] = []byte{} +} + +func randIntInRange(min, max int) int { + return (rand.Intn(max-min) + min) +} + +func clearPrevDict() { + WORDS = [N][]byte{} + WORD_FLAGS = [N]bool{} + INPUT_FLAGS = []int{} +} + +func prepareRandomDict(t *testing.T) *Decompressor { + t.Helper() + logger := log.New() + tmpDir := t.TempDir() + file := filepath.Join(tmpDir, "complex") + t.Name() + c, err := NewCompressor(context.Background(), t.Name(), file, tmpDir, 1, 2, log.LvlDebug, logger) + if err != nil { + t.Fatal(err) + } + // c.DisableFsync() + defer c.Close() + clearPrevDict() + rand.Seed(time.Now().UnixNano()) + generateRandWords() + + idx := 0 + for idx < N { + n := rand.Intn(2) + switch n { + case 0: // input case + word := WORDS[idx] + m := rand.Intn(2) + if m == 1 { + if err = c.AddWord(word); err != nil { + t.Fatal(err) + } + WORD_FLAGS[idx] = true + } else { + if err = c.AddUncompressedWord(word); err != nil { + t.Fatal(err) + } + } + idx++ + INPUT_FLAGS = append(INPUT_FLAGS, n) + case 1: // nil word + if err = c.AddWord(nil); err != nil { + t.Fatal(err) + } + INPUT_FLAGS = append(INPUT_FLAGS, n) + default: + t.Fatal(fmt.Errorf("case %d\n", n)) + } + } + + if err = c.Compress(); err != nil { + t.Fatal(err) + } + var d *Decompressor + if d, err = NewDecompressor(file); err != nil { + t.Fatal(err) + } + return d +} + +func TestDecompressRandomMatchCmp(t *testing.T) { + d := prepareRandomDict(t) + defer d.Close() + + if d.wordsCount != uint64(len(INPUT_FLAGS)) { + t.Fatalf("TestDecompressRandomDict: d.wordsCount != len(INPUT_FLAGS)") + } + + g := d.MakeGetter() + + word_idx := 0 + input_idx := 0 + total := 0 + // check for existing and non existing keys + for g.HasNext() { + pos := g.dataP + if INPUT_FLAGS[input_idx] == 0 { // []byte input + notExpected := string(WORDS[word_idx]) + "z" + cmp := g.MatchCmp([]byte(notExpected)) + if cmp == 0 { + t.Fatalf("not expected match: %v\n got: %v\n", []byte(notExpected), WORDS[word_idx]) + } + + expected := WORDS[word_idx] + cmp = g.MatchCmp(expected) // move offset to the next pos + if cmp != 0 { + savePos := g.dataP + g.Reset(pos) + word, nextPos := g.Next(nil) + if nextPos != savePos { + t.Fatalf("nextPos %d != savePos %d\n", nextPos, savePos) + } + if bytes.Compare(expected, word) != cmp { + fmt.Printf("1 expected: %v, acutal %v, cmp %d\n", expected, word, cmp) + } + t.Fatalf("expected match: %v\n got: %v\n", expected, word) + } + word_idx++ + } else { // nil input + notExpected := []byte{0} + cmp := g.MatchCmp(notExpected) + if cmp == 0 { + t.Fatal("not expected match []byte{0} with nil\n") + } + + expected := []byte{} + cmp = g.MatchCmp(nil) + if cmp != 0 { + savePos := g.dataP + g.Reset(pos) + word, nextPos := g.Next(nil) + if nextPos != savePos { + t.Fatalf("nextPos %d != savePos %d\n", nextPos, savePos) + } + if bytes.Compare(expected, word) != cmp { + fmt.Printf("2 expected: %v, acutal %v, cmp %d\n", expected, word, cmp) + } + t.Fatalf("expected match: %v\n got: %v\n", expected, word) + } + } + input_idx++ + total++ + } + if total != int(d.wordsCount) { + t.Fatalf("expected word count: %d, got %d\n", int(d.wordsCount), total) + } +} + +func TestDecompressRandomMatchBool(t *testing.T) { + d := prepareRandomDict(t) + defer d.Close() + + if d.wordsCount != uint64(len(INPUT_FLAGS)) { + t.Fatalf("TestDecompressRandomDict: d.wordsCount != len(INPUT_FLAGS)") + } + + g := d.MakeGetter() + + word_idx := 0 + input_idx := 0 + total := 0 + // check for existing and non existing keys + for g.HasNext() { + pos := g.dataP + if INPUT_FLAGS[input_idx] == 0 { // []byte input + notExpected := string(WORDS[word_idx]) + "z" + ok, _ := g.Match([]byte(notExpected)) + if ok { + t.Fatalf("not expected match: %v\n got: %v\n", []byte(notExpected), WORDS[word_idx]) + } + + expected := WORDS[word_idx] + ok, _ = g.Match(expected) + if !ok { + g.Reset(pos) + word, _ := g.Next(nil) + if bytes.Compare(expected, word) != 0 { + fmt.Printf("1 expected: %v, acutal %v, ok %v\n", expected, word, ok) + } + t.Fatalf("expected match: %v\n got: %v\n", expected, word) + } + word_idx++ + } else { // nil input + notExpected := []byte{0} + ok, _ := g.Match(notExpected) + if ok { + t.Fatal("not expected match []byte{0} with nil\n") + } + + expected := []byte{} + ok, _ = g.Match(nil) + if !ok { + g.Reset(pos) + word, _ := g.Next(nil) + if bytes.Compare(expected, word) != 0 { + fmt.Printf("2 expected: %v, acutal %v, ok %v\n", expected, word, ok) + } + t.Fatalf("expected match: %v\n got: %v\n", expected, word) + } + } + input_idx++ + total++ + } + if total != int(d.wordsCount) { + t.Fatalf("expected word count: %d, got %d\n", int(d.wordsCount), total) + } +} + +func TestDecompressRandomFastNext(t *testing.T) { + d := prepareRandomDict(t) + defer d.Close() + + if d.wordsCount != uint64(len(INPUT_FLAGS)) { + t.Fatalf("TestDecompressRandomDict: d.wordsCount != len(INPUT_FLAGS)") + } + + g := d.MakeGetter() + + word_idx := 0 + input_idx := 0 + total := 0 + buf := make([]byte, (1 << 23)) + // check for existing and non existing keys + for g.HasNext() { + if INPUT_FLAGS[input_idx] == 0 { // []byte input + expected := WORDS[word_idx] + word, _ := g.FastNext(buf) + if bytes.Compare(expected, word) != 0 { + t.Fatalf("1 expected: %v, got %v\n", expected, word) + } + word_idx++ + } else { // nil input + expected := []byte{} + word, _ := g.FastNext(buf) + if bytes.Compare(expected, word) != 0 { + t.Fatalf("2 expected: %v, got %v\n", expected, word) + } + } + input_idx++ + total++ + } + if total != int(d.wordsCount) { + t.Fatalf("expected word count: %d, got %d\n", int(d.wordsCount), total) + } +} + +// func TestDecompressRandomDict(t *testing.T) { +// d := prepareRandomDict(t) +// defer d.Close() + +// if d.wordsCount != uint64(len(INPUT_FLAGS)) { +// t.Fatalf("TestDecompressRandomDict: d.wordsCount != len(INPUT_FLAGS)") +// } + +// g := d.MakeGetter() + +// word_idx := 0 +// input_idx := 0 +// total := 0 +// // check for existing and non existing keys +// for g.HasNext() { +// pos := g.dataP +// if INPUT_FLAGS[input_idx] == 0 { // []byte input +// notExpected := string(WORDS[word_idx]) + "z" +// ok, _ := g.Match([]byte(notExpected)) +// if ok { +// t.Fatalf("not expected match: %s\n got: %s\n", notExpected, WORDS[word_idx]) +// } + +// expected := WORDS[word_idx] +// ok, _ = g.Match(expected) +// if !ok { +// g.Reset(pos) +// word, _ := g.Next(nil) +// t.Fatalf("expected match: %s\n got: %s\n", expected, word) +// } +// word_idx++ +// } else { // nil input +// notExpected := []byte{0} +// ok, _ := g.Match(notExpected) +// if ok { +// t.Fatal("not expected match []byte{0} with nil\n") +// } + +// expected := []byte{} +// ok, _ = g.Match(nil) +// if !ok { +// g.Reset(pos) +// word, _ := g.Next(nil) +// t.Fatalf("expected match: %s\n got: %s\n", expected, word) +// } +// } +// input_idx++ +// total++ +// } +// if total != int(d.wordsCount) { +// t.Fatalf("expected word count: %d, got %d\n", int(d.wordsCount), total) +// } + +// // TODO: check for non existing keys, suffixes, prefixes +// g.Reset(0) + +// word_idx = 0 +// input_idx = 0 +// // check for existing and non existing prefixes +// var notExpected = []byte{2, 3, 4} +// for g.HasNext() { + +// if INPUT_FLAGS[input_idx] == 0 { // []byte input +// expected := WORDS[word_idx] +// prefix_size := len(expected) / 2 +// if len(expected)/2 > 3 { +// prefix_size = randIntInRange(3, len(expected)/2) +// } +// expected = expected[:prefix_size] +// if len(expected) > 0 { +// if !g.MatchPrefix(expected) { +// t.Errorf("expected match with %s", expected) +// } +// expected[len(expected)-1]++ +// if g.MatchPrefix(expected) { +// t.Errorf("not expected match with %s", expected) +// } +// } else { +// if !g.MatchPrefix([]byte{}) { +// t.Error("expected match with empty []byte") +// } +// if g.MatchPrefix(notExpected) { +// t.Error("not expected empty []byte to match with []byte{2, 3, 4}") +// } +// } +// word_idx++ +// } else { // nil input +// if !g.MatchPrefix(nil) { +// t.Error("expected match with nil") +// } +// if g.MatchPrefix(notExpected) { +// t.Error("not expected nil to match with []byte{2, 3, 4}") +// } +// } + +// g.Skip() +// input_idx++ +// } + +// g.Reset(0) + +// word_idx = 0 +// input_idx = 0 +// // check for existing and non existing suffixes +// notExpected = []byte{2, 3, 4} +// for g.HasNext() { + +// if INPUT_FLAGS[input_idx] == 0 { // []byte input +// suffix := WORDS[word_idx] +// if len(suffix) > 1 { +// prefix := suffix[:len(suffix)/2] +// suffix = suffix[len(suffix)/2:] +// equal := reflect.DeepEqual(prefix, suffix) +// // check existing suffixes +// if g.MatchPrefix(suffix) { // suffix has to be equal to prefix +// if !equal { +// t.Fatalf("MatchPrefix(suffix) expected match: prefix is unequal to suffix %v != %v, full slice %v\n", prefix, suffix, WORDS[word_idx]) +// } +// } else { // suffix has not to be the same as prefix +// if equal { +// t.Fatalf("MatchPrefix(suffix) expected unmatch: prefix is equal to suffix %v != %v, full slice %v\n", prefix, suffix, WORDS[word_idx]) +// } +// } + +// if len(suffix) > 0 { +// suffix[0]++ +// if g.MatchPrefix(suffix) && reflect.DeepEqual(prefix, suffix) { +// t.Fatalf("MatchPrefix(suffix) not expected match: prefix is unequal to suffix %v != %v, full slice %v\n", prefix, suffix, WORDS[word_idx]) +// } +// } + +// g.Skip() +// } else { +// ok, _ := g.Match(suffix) +// if !ok { +// t.Fatal("Match(suffix): expected match suffix") +// } +// } +// word_idx++ +// } else { // nil input +// if !g.MatchPrefix(nil) { +// t.Error("MatchPrefix(suffix): expected match with nil") +// } +// if g.MatchPrefix(notExpected) { +// t.Error("MatchPrefix(suffix): not expected nil to match with []byte{2, 3, 4}") +// } +// ok, _ := g.Match(nil) +// if !ok { +// t.Errorf("Match(suffix): expected to match with nil") +// } +// } + +// input_idx++ +// } +// } diff --git a/erigon-lib/compress/parallel_compress.go b/erigon-lib/compress/parallel_compress.go new file mode 100644 index 00000000000..552bfb37c1e --- /dev/null +++ b/erigon-lib/compress/parallel_compress.go @@ -0,0 +1,987 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package compress + +import ( + "bufio" + "container/heap" + "context" + "encoding/binary" + "errors" + "fmt" + "io" + "os" + "strconv" + "sync" + "sync/atomic" + "time" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/assert" + "github.com/ledgerwatch/erigon-lib/etl" + "github.com/ledgerwatch/erigon-lib/patricia" + "github.com/ledgerwatch/erigon-lib/sais" + "github.com/ledgerwatch/log/v3" + "golang.org/x/exp/slices" +) + +// MinPatternScore is minimum score (per superstring) required to consider including pattern into the dictionary +const MinPatternScore = 1024 + +func optimiseCluster(trace bool, input []byte, mf2 *patricia.MatchFinder2, output []byte, uncovered []int, patterns []int, cellRing *Ring, posMap map[uint64]uint64) ([]byte, []int, []int) { + matches := mf2.FindLongestMatches(input) + + if len(matches) == 0 { + output = append(output, 0) // Encoding of 0 in VarUint is 1 zero byte + output = append(output, input...) + return output, patterns, uncovered + } + if trace { + fmt.Printf("Cluster | input = %x\n", input) + for _, match := range matches { + fmt.Printf(" [%x %d-%d]", input[match.Start:match.End], match.Start, match.End) + } + } + cellRing.Reset() + patterns = append(patterns[:0], 0, 0) // Sentinel entry - no meaning + lastF := matches[len(matches)-1] + for j := lastF.Start; j < lastF.End; j++ { + d := cellRing.PushBack() + d.optimStart = j + 1 + d.coverStart = len(input) + d.compression = 0 + d.patternIdx = 0 + d.score = 0 + } + // Starting from the last match + for i := len(matches); i > 0; i-- { + f := matches[i-1] + p := f.Val.(*Pattern) + firstCell := cellRing.Get(0) + maxCompression := firstCell.compression + maxScore := firstCell.score + maxCell := firstCell + var maxInclude bool + for e := 0; e < cellRing.Len(); e++ { + cell := cellRing.Get(e) + comp := cell.compression - 4 + if cell.coverStart >= f.End { + comp += f.End - f.Start + } else { + comp += cell.coverStart - f.Start + } + score := cell.score + p.score + if comp > maxCompression || (comp == maxCompression && score > maxScore) { + maxCompression = comp + maxScore = score + maxInclude = true + maxCell = cell + } else if cell.optimStart > f.End { + cellRing.Truncate(e) + break + } + } + d := cellRing.PushFront() + d.optimStart = f.Start + d.score = maxScore + d.compression = maxCompression + if maxInclude { + if trace { + fmt.Printf("[include] cell for %d: with patterns", f.Start) + fmt.Printf(" [%x %d-%d]", input[f.Start:f.End], f.Start, f.End) + patternIdx := maxCell.patternIdx + for patternIdx != 0 { + pattern := patterns[patternIdx] + fmt.Printf(" [%x %d-%d]", input[matches[pattern].Start:matches[pattern].End], matches[pattern].Start, matches[pattern].End) + patternIdx = patterns[patternIdx+1] + } + fmt.Printf("\n\n") + } + d.coverStart = f.Start + d.patternIdx = len(patterns) + patterns = append(patterns, i-1, maxCell.patternIdx) + } else { + if trace { + fmt.Printf("cell for %d: with patterns", f.Start) + patternIdx := maxCell.patternIdx + for patternIdx != 0 { + pattern := patterns[patternIdx] + fmt.Printf(" [%x %d-%d]", input[matches[pattern].Start:matches[pattern].End], matches[pattern].Start, matches[pattern].End) + patternIdx = patterns[patternIdx+1] + } + fmt.Printf("\n\n") + } + d.coverStart = maxCell.coverStart + d.patternIdx = maxCell.patternIdx + } + } + optimCell := cellRing.Get(0) + if trace { + fmt.Printf("optimal =") + } + // Count number of patterns + var patternCount uint64 + patternIdx := optimCell.patternIdx + for patternIdx != 0 { + patternCount++ + patternIdx = patterns[patternIdx+1] + } + var numBuf [binary.MaxVarintLen64]byte + p := binary.PutUvarint(numBuf[:], patternCount) + output = append(output, numBuf[:p]...) + patternIdx = optimCell.patternIdx + lastStart := 0 + var lastUncovered int + uncovered = uncovered[:0] + for patternIdx != 0 { + pattern := patterns[patternIdx] + p := matches[pattern].Val.(*Pattern) + if trace { + fmt.Printf(" [%x %d-%d]", input[matches[pattern].Start:matches[pattern].End], matches[pattern].Start, matches[pattern].End) + } + if matches[pattern].Start > lastUncovered { + uncovered = append(uncovered, lastUncovered, matches[pattern].Start) + } + lastUncovered = matches[pattern].End + // Starting position + posMap[uint64(matches[pattern].Start-lastStart+1)]++ + lastStart = matches[pattern].Start + n := binary.PutUvarint(numBuf[:], uint64(matches[pattern].Start)) + output = append(output, numBuf[:n]...) + // Code + n = binary.PutUvarint(numBuf[:], p.code) + output = append(output, numBuf[:n]...) + atomic.AddUint64(&p.uses, 1) + patternIdx = patterns[patternIdx+1] + } + if len(input) > lastUncovered { + uncovered = append(uncovered, lastUncovered, len(input)) + } + if trace { + fmt.Printf("\n\n") + } + // Add uncoded input + for i := 0; i < len(uncovered); i += 2 { + output = append(output, input[uncovered[i]:uncovered[i+1]]...) + } + return output, patterns, uncovered +} + +func reduceDictWorker(trace bool, inputCh chan *CompressionWord, outCh chan *CompressionWord, completion *sync.WaitGroup, trie *patricia.PatriciaTree, inputSize, outputSize *atomic.Uint64, posMap map[uint64]uint64) { + defer completion.Done() + var output = make([]byte, 0, 256) + var uncovered = make([]int, 256) + var patterns = make([]int, 0, 256) + cellRing := NewRing() + mf2 := patricia.NewMatchFinder2(trie) + var numBuf [binary.MaxVarintLen64]byte + for compW := range inputCh { + wordLen := uint64(len(compW.word)) + n := binary.PutUvarint(numBuf[:], wordLen) + output = append(output[:0], numBuf[:n]...) // Prepend with the encoding of length + output, patterns, uncovered = optimiseCluster(trace, compW.word, mf2, output, uncovered, patterns, cellRing, posMap) + compW.word = append(compW.word[:0], output...) + outCh <- compW + inputSize.Add(1 + wordLen) + outputSize.Add(uint64(len(output))) + posMap[wordLen+1]++ + posMap[0]++ + } +} + +// CompressionWord hold a word to be compressed (if flag is set), and the result of compression +// To allow multiple words to be processed concurrently, order field is used to collect all +// the words after processing without disrupting their order +type CompressionWord struct { + word []byte + order uint64 +} + +type CompressionQueue []*CompressionWord + +func (cq CompressionQueue) Len() int { + return len(cq) +} + +func (cq CompressionQueue) Less(i, j int) bool { + return cq[i].order < cq[j].order +} + +func (cq *CompressionQueue) Swap(i, j int) { + (*cq)[i], (*cq)[j] = (*cq)[j], (*cq)[i] +} + +func (cq *CompressionQueue) Push(x interface{}) { + *cq = append(*cq, x.(*CompressionWord)) +} + +func (cq *CompressionQueue) Pop() interface{} { + old := *cq + n := len(old) + x := old[n-1] + old[n-1] = nil + *cq = old[0 : n-1] + return x +} + +// reduceDict reduces the dictionary by trying the substitutions and counting frequency for each word +func reducedict(ctx context.Context, trace bool, logPrefix, segmentFilePath string, cf *os.File, datFile *DecompressedFile, workers int, dictBuilder *DictionaryBuilder, lvl log.Lvl, logger log.Logger) error { + logEvery := time.NewTicker(60 * time.Second) + defer logEvery.Stop() + + // DictionaryBuilder is for sorting words by their freuency (to assign codes) + var pt patricia.PatriciaTree + code2pattern := make([]*Pattern, 0, 256) + dictBuilder.ForEach(func(score uint64, word []byte) { + p := &Pattern{ + score: score, + uses: 0, + code: uint64(len(code2pattern)), + codeBits: 0, + word: word, + } + pt.Insert(word, p) + code2pattern = append(code2pattern, p) + }) + dictBuilder.Close() + if lvl < log.LvlTrace { + logger.Log(lvl, fmt.Sprintf("[%s] dictionary file parsed", logPrefix), "entries", len(code2pattern)) + } + ch := make(chan *CompressionWord, 10_000) + inputSize, outputSize := &atomic.Uint64{}, &atomic.Uint64{} + + var collectors []*etl.Collector + defer func() { + for _, c := range collectors { + c.Close() + } + }() + out := make(chan *CompressionWord, 1024) + var compressionQueue CompressionQueue + heap.Init(&compressionQueue) + queueLimit := 128 * 1024 + + // For the case of workers == 1 + var output = make([]byte, 0, 256) + var uncovered = make([]int, 256) + var patterns = make([]int, 0, 256) + cellRing := NewRing() + mf2 := patricia.NewMatchFinder2(&pt) + + var posMaps []map[uint64]uint64 + uncompPosMap := make(map[uint64]uint64) // For the uncompressed words + posMaps = append(posMaps, uncompPosMap) + var wg sync.WaitGroup + if workers > 1 { + for i := 0; i < workers; i++ { + posMap := make(map[uint64]uint64) + posMaps = append(posMaps, posMap) + wg.Add(1) + go reduceDictWorker(trace, ch, out, &wg, &pt, inputSize, outputSize, posMap) + } + } + t := time.Now() + + var err error + intermediatePath := segmentFilePath + ".tmp" + defer os.Remove(intermediatePath) + var intermediateFile *os.File + if intermediateFile, err = os.Create(intermediatePath); err != nil { + return fmt.Errorf("create intermediate file: %w", err) + } + defer intermediateFile.Close() + intermediateW := bufio.NewWriterSize(intermediateFile, 8*etl.BufIOSize) + + var inCount, outCount, emptyWordsCount uint64 // Counters words sent to compression and returned for compression + var numBuf [binary.MaxVarintLen64]byte + totalWords := datFile.count + + if err = datFile.ForEach(func(v []byte, compression bool) error { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + if workers > 1 { + // take processed words in non-blocking way and push them to the queue + outer: + for { + select { + case compW := <-out: + heap.Push(&compressionQueue, compW) + default: + break outer + } + } + // take processed words in blocking way until either: + // 1. compressionQueue is below the limit so that new words can be allocated + // 2. there is word in order on top of the queue which can be written down and reused + for compressionQueue.Len() >= queueLimit && compressionQueue[0].order < outCount { + // Blocking wait to receive some outputs until the top of queue can be processed + compW := <-out + heap.Push(&compressionQueue, compW) + } + var compW *CompressionWord + // Either take the word from the top, write it down and reuse for the next unprocessed word + // Or allocate new word + if compressionQueue.Len() > 0 && compressionQueue[0].order == outCount { + compW = heap.Pop(&compressionQueue).(*CompressionWord) + outCount++ + // Write to intermediate file + if _, e := intermediateW.Write(compW.word); e != nil { + return e + } + // Reuse compW for the next word + } else { + compW = &CompressionWord{} + } + compW.order = inCount + if len(v) == 0 { + // Empty word, cannot be compressed + compW.word = append(compW.word[:0], 0) + uncompPosMap[1]++ + uncompPosMap[0]++ + heap.Push(&compressionQueue, compW) // Push to the queue directly, bypassing compression + } else if compression { + compW.word = append(compW.word[:0], v...) + ch <- compW // Send for compression + } else { + // Prepend word with encoding of length + zero byte, which indicates no patterns to be found in this word + wordLen := uint64(len(v)) + n := binary.PutUvarint(numBuf[:], wordLen) + uncompPosMap[wordLen+1]++ + uncompPosMap[0]++ + compW.word = append(append(append(compW.word[:0], numBuf[:n]...), 0), v...) + heap.Push(&compressionQueue, compW) // Push to the queue directly, bypassing compression + } + } else { + outCount++ + wordLen := uint64(len(v)) + n := binary.PutUvarint(numBuf[:], wordLen) + if _, e := intermediateW.Write(numBuf[:n]); e != nil { + return e + } + if wordLen > 0 { + if compression { + output, patterns, uncovered = optimiseCluster(trace, v, mf2, output[:0], uncovered, patterns, cellRing, uncompPosMap) + if _, e := intermediateW.Write(output); e != nil { + return e + } + outputSize.Add(uint64(len(output))) + } else { + if e := intermediateW.WriteByte(0); e != nil { + return e + } + if _, e := intermediateW.Write(v); e != nil { + return e + } + outputSize.Add(1 + uint64(len(v))) + } + } + inputSize.Add(1 + wordLen) + uncompPosMap[wordLen+1]++ + uncompPosMap[0]++ + } + inCount++ + if len(v) == 0 { + emptyWordsCount++ + } + + select { + case <-logEvery.C: + if lvl < log.LvlTrace { + logger.Log(lvl, fmt.Sprintf("[%s] Replacement preprocessing", logPrefix), "processed", fmt.Sprintf("%.2f%%", 100*float64(outCount)/float64(totalWords)), "ch", len(ch), "workers", workers) + } + default: + } + return nil + }); err != nil { + return err + } + close(ch) + // Drain the out queue if necessary + if inCount > outCount { + for compressionQueue.Len() > 0 && compressionQueue[0].order == outCount { + compW := heap.Pop(&compressionQueue).(*CompressionWord) + outCount++ + if outCount == inCount { + close(out) + } + // Write to intermediate file + if _, e := intermediateW.Write(compW.word); e != nil { + return e + } + } + for compW := range out { + heap.Push(&compressionQueue, compW) + for compressionQueue.Len() > 0 && compressionQueue[0].order == outCount { + compW = heap.Pop(&compressionQueue).(*CompressionWord) + outCount++ + if outCount == inCount { + close(out) + } + // Write to intermediate file + if _, e := intermediateW.Write(compW.word); e != nil { + return e + } + } + } + } + if err = intermediateW.Flush(); err != nil { + return err + } + wg.Wait() + if lvl < log.LvlTrace { + log.Log(lvl, fmt.Sprintf("[%s] Replacement preprocessing", logPrefix), "took", time.Since(t)) + } + if _, err = intermediateFile.Seek(0, 0); err != nil { + return fmt.Errorf("return to the start of intermediate file: %w", err) + } + + //var m runtime.MemStats + //common.ReadMemStats(&m) + //logger.Info(fmt.Sprintf("[%s] Dictionary build done", logPrefix), "input", common.ByteCount(inputSize.Load()), "output", common.ByteCount(outputSize.Load()), "alloc", common.ByteCount(m.Alloc), "sys", common.ByteCount(m.Sys)) + posMap := make(map[uint64]uint64) + for _, m := range posMaps { + for l, c := range m { + posMap[l] += c + } + } + //fmt.Printf("posMap = %v\n", posMap) + var patternList PatternList + distribution := make([]int, maxPatternLen+1) + for _, p := range code2pattern { + if p.uses > 0 { + patternList = append(patternList, p) + distribution[len(p.word)]++ + } + } + slices.SortFunc(patternList, patternListCmp) + logCtx := make([]interface{}, 0, 8) + logCtx = append(logCtx, "patternList.Len", patternList.Len()) + + i := 0 + // Build Huffman tree for codes + var codeHeap PatternHeap + heap.Init(&codeHeap) + tieBreaker := uint64(0) + for codeHeap.Len()+(patternList.Len()-i) > 1 { + // New node + h := &PatternHuff{ + tieBreaker: tieBreaker, + } + if codeHeap.Len() > 0 && (i >= patternList.Len() || codeHeap[0].uses < patternList[i].uses) { + // Take h0 from the heap + h.h0 = heap.Pop(&codeHeap).(*PatternHuff) + h.h0.AddZero() + h.uses += h.h0.uses + } else { + // Take p0 from the list + h.p0 = patternList[i] + h.p0.code = 0 + h.p0.codeBits = 1 + h.uses += h.p0.uses + i++ + } + if codeHeap.Len() > 0 && (i >= patternList.Len() || codeHeap[0].uses < patternList[i].uses) { + // Take h1 from the heap + h.h1 = heap.Pop(&codeHeap).(*PatternHuff) + h.h1.AddOne() + h.uses += h.h1.uses + } else { + // Take p1 from the list + h.p1 = patternList[i] + h.p1.code = 1 + h.p1.codeBits = 1 + h.uses += h.p1.uses + i++ + } + tieBreaker++ + heap.Push(&codeHeap, h) + } + if codeHeap.Len() > 0 { + root := heap.Pop(&codeHeap).(*PatternHuff) + root.SetDepth(0) + } + // Calculate total size of the dictionary + var patternsSize uint64 + for _, p := range patternList { + ns := binary.PutUvarint(numBuf[:], uint64(p.depth)) // Length of the word's depth + n := binary.PutUvarint(numBuf[:], uint64(len(p.word))) // Length of the word's length + patternsSize += uint64(ns + n + len(p.word)) + } + + logCtx = append(logCtx, "patternsSize", common.ByteCount(patternsSize)) + for i, n := range distribution { + if n == 0 { + continue + } + logCtx = append(logCtx, strconv.Itoa(i), strconv.Itoa(n)) + } + if lvl < log.LvlTrace { + logger.Log(lvl, fmt.Sprintf("[%s] Effective dictionary", logPrefix), logCtx...) + } + cw := bufio.NewWriterSize(cf, 2*etl.BufIOSize) + // 1-st, output amount of words - just a useful metadata + binary.BigEndian.PutUint64(numBuf[:], inCount) // Dictionary size + if _, err = cw.Write(numBuf[:8]); err != nil { + return err + } + binary.BigEndian.PutUint64(numBuf[:], emptyWordsCount) + if _, err = cw.Write(numBuf[:8]); err != nil { + return err + } + // 2-nd, output dictionary size + binary.BigEndian.PutUint64(numBuf[:], patternsSize) // Dictionary size + if _, err = cw.Write(numBuf[:8]); err != nil { + return err + } + //fmt.Printf("patternsSize = %d\n", patternsSize) + // Write all the pattens + slices.SortFunc(patternList, patternListCmp) + for _, p := range patternList { + ns := binary.PutUvarint(numBuf[:], uint64(p.depth)) + if _, err = cw.Write(numBuf[:ns]); err != nil { + return err + } + n := binary.PutUvarint(numBuf[:], uint64(len(p.word))) + if _, err = cw.Write(numBuf[:n]); err != nil { + return err + } + if _, err = cw.Write(p.word); err != nil { + return err + } + //fmt.Printf("[comp] depth=%d, code=[%b], codeLen=%d pattern=[%x]\n", p.depth, p.code, p.codeBits, p.word) + } + + var positionList PositionList + pos2code := make(map[uint64]*Position) + for pos, uses := range posMap { + p := &Position{pos: pos, uses: uses, code: pos, codeBits: 0} + positionList = append(positionList, p) + pos2code[pos] = p + } + slices.SortFunc(positionList, positionListCmp) + i = 0 + // Build Huffman tree for codes + var posHeap PositionHeap + heap.Init(&posHeap) + tieBreaker = uint64(0) + for posHeap.Len()+(positionList.Len()-i) > 1 { + // New node + h := &PositionHuff{ + tieBreaker: tieBreaker, + } + if posHeap.Len() > 0 && (i >= positionList.Len() || posHeap[0].uses < positionList[i].uses) { + // Take h0 from the heap + h.h0 = heap.Pop(&posHeap).(*PositionHuff) + h.h0.AddZero() + h.uses += h.h0.uses + } else { + // Take p0 from the list + h.p0 = positionList[i] + h.p0.code = 0 + h.p0.codeBits = 1 + h.uses += h.p0.uses + i++ + } + if posHeap.Len() > 0 && (i >= positionList.Len() || posHeap[0].uses < positionList[i].uses) { + // Take h1 from the heap + h.h1 = heap.Pop(&posHeap).(*PositionHuff) + h.h1.AddOne() + h.uses += h.h1.uses + } else { + // Take p1 from the list + h.p1 = positionList[i] + h.p1.code = 1 + h.p1.codeBits = 1 + h.uses += h.p1.uses + i++ + } + tieBreaker++ + heap.Push(&posHeap, h) + } + if posHeap.Len() > 0 { + posRoot := heap.Pop(&posHeap).(*PositionHuff) + posRoot.SetDepth(0) + } + // Calculate the size of pos dictionary + var posSize uint64 + for _, p := range positionList { + ns := binary.PutUvarint(numBuf[:], uint64(p.depth)) // Length of the position's depth + n := binary.PutUvarint(numBuf[:], p.pos) + posSize += uint64(ns + n) + } + // First, output dictionary size + binary.BigEndian.PutUint64(numBuf[:], posSize) // Dictionary size + if _, err = cw.Write(numBuf[:8]); err != nil { + return err + } + //fmt.Printf("posSize = %d\n", posSize) + // Write all the positions + slices.SortFunc(positionList, positionListCmp) + for _, p := range positionList { + ns := binary.PutUvarint(numBuf[:], uint64(p.depth)) + if _, err = cw.Write(numBuf[:ns]); err != nil { + return err + } + n := binary.PutUvarint(numBuf[:], p.pos) + if _, err = cw.Write(numBuf[:n]); err != nil { + return err + } + //fmt.Printf("[comp] depth=%d, code=[%b], codeLen=%d pos=%d\n", p.depth, p.code, p.codeBits, p.pos) + } + if lvl < log.LvlTrace { + logger.Log(lvl, fmt.Sprintf("[%s] Positional dictionary", logPrefix), "positionList.len", positionList.Len(), "posSize", common.ByteCount(posSize)) + } + // Re-encode all the words with the use of optimised (via Huffman coding) dictionaries + wc := 0 + var hc HuffmanCoder + hc.w = cw + r := bufio.NewReaderSize(intermediateFile, 2*etl.BufIOSize) + var l uint64 + var e error + for l, e = binary.ReadUvarint(r); e == nil; l, e = binary.ReadUvarint(r) { + posCode := pos2code[l+1] + if posCode != nil { + if e = hc.encode(posCode.code, posCode.codeBits); e != nil { + return e + } + } + if l == 0 { + if e = hc.flush(); e != nil { + return e + } + } else { + var pNum uint64 // Number of patterns + if pNum, e = binary.ReadUvarint(r); e != nil { + return e + } + // Now reading patterns one by one + var lastPos uint64 + var lastUncovered int + var uncoveredCount int + for i := 0; i < int(pNum); i++ { + var pos uint64 // Starting position for pattern + if pos, e = binary.ReadUvarint(r); e != nil { + return e + } + posCode = pos2code[pos-lastPos+1] + lastPos = pos + if posCode != nil { + if e = hc.encode(posCode.code, posCode.codeBits); e != nil { + return e + } + } + var code uint64 // Code of the pattern + if code, e = binary.ReadUvarint(r); e != nil { + return e + } + patternCode := code2pattern[code] + if int(pos) > lastUncovered { + uncoveredCount += int(pos) - lastUncovered + } + lastUncovered = int(pos) + len(patternCode.word) + if patternCode != nil { + if e = hc.encode(patternCode.code, patternCode.codeBits); e != nil { + return e + } + } + } + if int(l) > lastUncovered { + uncoveredCount += int(l) - lastUncovered + } + // Terminating position and flush + posCode = pos2code[0] + if e = hc.encode(posCode.code, posCode.codeBits); e != nil { + return e + } + if e = hc.flush(); e != nil { + return e + } + // Copy uncovered characters + if uncoveredCount > 0 { + if _, e = io.CopyN(cw, r, int64(uncoveredCount)); e != nil { + return e + } + } + } + wc++ + select { + case <-logEvery.C: + if lvl < log.LvlTrace { + logger.Log(lvl, fmt.Sprintf("[%s] Compressed", logPrefix), "processed", fmt.Sprintf("%.2f%%", 100*float64(wc)/float64(totalWords))) + } + default: + } + } + if e != nil && !errors.Is(e, io.EOF) { + return e + } + if err = intermediateFile.Close(); err != nil { + return err + } + if err = cw.Flush(); err != nil { + return err + } + return nil +} + +// processSuperstring is the worker that processes one superstring and puts results +// into the collector, using lock to mutual exclusion. At the end (when the input channel is closed), +// it notifies the waitgroup before exiting, so that the caller known when all work is done +// No error channels for now +func processSuperstring(ctx context.Context, superstringCh chan []byte, dictCollector *etl.Collector, minPatternScore uint64, completion *sync.WaitGroup, logger log.Logger) { + defer completion.Done() + dictVal := make([]byte, 8) + dictKey := make([]byte, maxPatternLen) + var lcp, sa, inv []int32 + for superstring := range superstringCh { + select { + case <-ctx.Done(): + return + default: + } + + if cap(sa) < len(superstring) { + sa = make([]int32, len(superstring)) + } else { + sa = sa[:len(superstring)] + } + //log.Info("Superstring", "len", len(superstring)) + //start := time.Now() + if err := sais.Sais(superstring, sa); err != nil { + panic(err) + } + //log.Info("Suffix array built", "in", time.Since(start)) + // filter out suffixes that start with odd positions + n := len(sa) / 2 + filtered := sa[:n] + //filtered := make([]int32, n) + var j int + for i := 0; i < len(sa); i++ { + if sa[i]&1 == 0 { + filtered[j] = sa[i] >> 1 + j++ + } + } + // Now create an inverted array + if cap(inv) < n { + inv = make([]int32, n) + } else { + inv = inv[:n] + } + for i := 0; i < n; i++ { + inv[filtered[i]] = int32(i) + } + //logger.Info("Inverted array done") + var k int + // Process all suffixes one by one starting from + // first suffix in txt[] + if cap(lcp) < n { + lcp = make([]int32, n) + } else { + lcp = lcp[:n] + } + for i := 0; i < n; i++ { + /* If the current suffix is at n-1, then we don’t + have next substring to consider. So lcp is not + defined for this substring, we put zero. */ + if inv[i] == int32(n-1) { + k = 0 + continue + } + + /* j contains index of the next substring to + be considered to compare with the present + substring, i.e., next string in suffix array */ + j := int(filtered[inv[i]+1]) + + // Directly start matching from k'th index as + // at-least k-1 characters will match + for i+k < n && j+k < n && superstring[(i+k)*2] != 0 && superstring[(j+k)*2] != 0 && superstring[(i+k)*2+1] == superstring[(j+k)*2+1] { + k++ + } + lcp[inv[i]] = int32(k) // lcp for the present suffix. + + // Deleting the starting character from the string. + if k > 0 { + k-- + } + } + //log.Info("Kasai algorithm finished") + // Checking LCP array + + if assert.Enable { + for i := 0; i < n-1; i++ { + var prefixLen int + p1 := int(filtered[i]) + p2 := int(filtered[i+1]) + for p1+prefixLen < n && + p2+prefixLen < n && + superstring[(p1+prefixLen)*2] != 0 && + superstring[(p2+prefixLen)*2] != 0 && + superstring[(p1+prefixLen)*2+1] == superstring[(p2+prefixLen)*2+1] { + prefixLen++ + } + if prefixLen != int(lcp[i]) { + logger.Error("Mismatch", "prefixLen", prefixLen, "lcp[i]", lcp[i], "i", i) + break + } + l := int(lcp[i]) // Length of potential dictionary word + if l < 2 { + continue + } + } + } + //logger.Info("LCP array checked") + // Walk over LCP array and compute the scores of the strings + var b = inv + j = 0 + for i := 0; i < n-1; i++ { + // Only when there is a drop in LCP value + if lcp[i+1] >= lcp[i] { + j = i + continue + } + prevSkipped := false + for l := int(lcp[i]); l > int(lcp[i+1]) && l >= minPatternLen; l-- { + if l > maxPatternLen || + l > 20 && (l&(l-1)) != 0 { // is power of 2 + prevSkipped = true + continue + } + + // Go back + var isNew bool + for j > 0 && int(lcp[j-1]) >= l { + j-- + isNew = true + } + + if !isNew && !prevSkipped { + break + } + + window := i - j + 2 + copy(b, filtered[j:i+2]) + slices.Sort(b[:window]) + repeats := 1 + lastK := 0 + for k := 1; k < window; k++ { + if b[k] >= b[lastK]+int32(l) { + repeats++ + lastK = k + } + } + + if (l < 8 || l > 64) && repeats < int(minPatternScore) { + prevSkipped = true + continue + } + + score := uint64(repeats * (l)) + if score < minPatternScore { + prevSkipped = true + continue + } + + dictKey = dictKey[:l] + for s := 0; s < l; s++ { + dictKey[s] = superstring[(int(filtered[i])+s)*2+1] + } + binary.BigEndian.PutUint64(dictVal, score) + if err := dictCollector.Collect(dictKey, dictVal); err != nil { + logger.Error("processSuperstring", "collect", err) + } + prevSkipped = false //nolint + break + } + } + } +} + +func DictionaryBuilderFromCollectors(ctx context.Context, logPrefix, tmpDir string, collectors []*etl.Collector, lvl log.Lvl, logger log.Logger) (*DictionaryBuilder, error) { + dictCollector := etl.NewCollector(logPrefix+"_collectDict", tmpDir, etl.NewSortableBuffer(etl.BufferOptimalSize), logger) + defer dictCollector.Close() + dictCollector.LogLvl(lvl) + + dictAggregator := &DictAggregator{collector: dictCollector, dist: map[int]int{}} + for _, collector := range collectors { + if err := collector.Load(nil, "", dictAggregator.aggLoadFunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return nil, err + } + collector.Close() + } + if err := dictAggregator.finish(); err != nil { + return nil, err + } + db := &DictionaryBuilder{limit: maxDictPatterns} // Only collect 1m words with highest scores + if err := dictCollector.Load(nil, "", db.loadFunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return nil, err + } + db.finish() + + db.Sort() + return db, nil +} + +func PersistDictrionary(fileName string, db *DictionaryBuilder) error { + df, err := os.Create(fileName) + if err != nil { + return err + } + w := bufio.NewWriterSize(df, 2*etl.BufIOSize) + db.ForEach(func(score uint64, word []byte) { fmt.Fprintf(w, "%d %x\n", score, word) }) + if err = w.Flush(); err != nil { + return err + } + if err := df.Sync(); err != nil { + return err + } + return df.Close() +} + +func ReadSimpleFile(fileName string, walker func(v []byte) error) error { + // Read keys from the file and generate superstring (with extra byte 0x1 prepended to each character, and with 0x0 0x0 pair inserted between keys and values) + // We only consider values with length > 2, because smaller values are not compressible without going into bits + f, err := os.Open(fileName) + if err != nil { + return err + } + defer f.Close() + r := bufio.NewReaderSize(f, etl.BufIOSize) + buf := make([]byte, 4096) + for l, e := binary.ReadUvarint(r); ; l, e = binary.ReadUvarint(r) { + if e != nil { + if errors.Is(e, io.EOF) { + break + } + return e + } + if len(buf) < int(l) { + buf = make([]byte, l) + } + if _, e = io.ReadFull(r, buf[:l]); e != nil { + return e + } + if err := walker(buf[:l]); err != nil { + return err + } + } + return nil +} diff --git a/crypto/blake2b/blake2b.go b/erigon-lib/crypto/blake2b/blake2b.go similarity index 100% rename from crypto/blake2b/blake2b.go rename to erigon-lib/crypto/blake2b/blake2b.go diff --git a/crypto/blake2b/blake2bAVX2_amd64.go b/erigon-lib/crypto/blake2b/blake2bAVX2_amd64.go similarity index 100% rename from crypto/blake2b/blake2bAVX2_amd64.go rename to erigon-lib/crypto/blake2b/blake2bAVX2_amd64.go diff --git a/crypto/blake2b/blake2bAVX2_amd64.s b/erigon-lib/crypto/blake2b/blake2bAVX2_amd64.s similarity index 100% rename from crypto/blake2b/blake2bAVX2_amd64.s rename to erigon-lib/crypto/blake2b/blake2bAVX2_amd64.s diff --git a/crypto/blake2b/blake2b_amd64.go b/erigon-lib/crypto/blake2b/blake2b_amd64.go similarity index 100% rename from crypto/blake2b/blake2b_amd64.go rename to erigon-lib/crypto/blake2b/blake2b_amd64.go diff --git a/crypto/blake2b/blake2b_amd64.s b/erigon-lib/crypto/blake2b/blake2b_amd64.s similarity index 100% rename from crypto/blake2b/blake2b_amd64.s rename to erigon-lib/crypto/blake2b/blake2b_amd64.s diff --git a/crypto/blake2b/blake2b_f_fuzz.go b/erigon-lib/crypto/blake2b/blake2b_f_fuzz.go similarity index 100% rename from crypto/blake2b/blake2b_f_fuzz.go rename to erigon-lib/crypto/blake2b/blake2b_f_fuzz.go diff --git a/crypto/blake2b/blake2b_f_test.go b/erigon-lib/crypto/blake2b/blake2b_f_test.go similarity index 100% rename from crypto/blake2b/blake2b_f_test.go rename to erigon-lib/crypto/blake2b/blake2b_f_test.go diff --git a/crypto/blake2b/blake2b_generic.go b/erigon-lib/crypto/blake2b/blake2b_generic.go similarity index 100% rename from crypto/blake2b/blake2b_generic.go rename to erigon-lib/crypto/blake2b/blake2b_generic.go diff --git a/crypto/blake2b/blake2b_ref.go b/erigon-lib/crypto/blake2b/blake2b_ref.go similarity index 100% rename from crypto/blake2b/blake2b_ref.go rename to erigon-lib/crypto/blake2b/blake2b_ref.go diff --git a/crypto/blake2b/blake2b_test.go b/erigon-lib/crypto/blake2b/blake2b_test.go similarity index 99% rename from crypto/blake2b/blake2b_test.go rename to erigon-lib/crypto/blake2b/blake2b_test.go index 14f2e3bb73d..dae10de1e55 100644 --- a/crypto/blake2b/blake2b_test.go +++ b/erigon-lib/crypto/blake2b/blake2b_test.go @@ -8,14 +8,17 @@ import ( "bytes" "encoding" "encoding/hex" + "errors" "fmt" - "github.com/ledgerwatch/log/v3" "hash" "io" "testing" + + "github.com/ledgerwatch/log/v3" ) func TestHashes(t *testing.T) { + t.Helper() defer func(sse4, avx, avx2 bool) { useSSE4, useAVX, useAVX2 = sse4, avx, avx2 }(useSSE4, useAVX, useAVX2) @@ -40,6 +43,7 @@ func TestHashes(t *testing.T) { } func TestHashes2X(t *testing.T) { + t.Helper() defer func(sse4, avx, avx2 bool) { useSSE4, useAVX, useAVX2 = sse4, avx, avx2 }(useSSE4, useAVX, useAVX2) @@ -116,6 +120,7 @@ func TestMarshal(t *testing.T) { } func testHashes(t *testing.T) { + t.Helper() key, _ := hex.DecodeString("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f") input := make([]byte, 255) @@ -149,6 +154,7 @@ func testHashes(t *testing.T) { } func testHashes2X(t *testing.T) { + t.Helper() key, _ := hex.DecodeString("000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f") input := make([]byte, 256) @@ -171,7 +177,7 @@ func testHashes2X(t *testing.T) { if _, err := h.Read(sum); err != nil { t.Fatalf("#%d (single write): error from Read: %v", i, err) } - if n, err := h.Read(sum); n != 0 || err != io.EOF { + if n, err := h.Read(sum); n != 0 || !errors.Is(err, io.EOF) { t.Fatalf("#%d (single write): Read did not return (0, io.EOF) after exhaustion, got (%v, %v)", i, n, err) } if gotHex := fmt.Sprintf("%x", sum); gotHex != expectedHex { @@ -300,6 +306,7 @@ func TestSelfTest(t *testing.T) { // Benchmarks func benchmarkSum(b *testing.B, size int, sse4, avx, avx2 bool) { + b.Helper() // Enable the correct set of instructions defer func(sse4, avx, avx2 bool) { useSSE4, useAVX, useAVX2 = sse4, avx, avx2 @@ -315,6 +322,7 @@ func benchmarkSum(b *testing.B, size int, sse4, avx, avx2 bool) { } func benchmarkWrite(b *testing.B, size int, sse4, avx, avx2 bool) { + b.Helper() // Enable the correct set of instructions defer func(sse4, avx, avx2 bool) { useSSE4, useAVX, useAVX2 = sse4, avx, avx2 diff --git a/crypto/blake2b/blake2x.go b/erigon-lib/crypto/blake2b/blake2x.go similarity index 100% rename from crypto/blake2b/blake2x.go rename to erigon-lib/crypto/blake2b/blake2x.go diff --git a/crypto/blake2b/register.go b/erigon-lib/crypto/blake2b/register.go similarity index 100% rename from crypto/blake2b/register.go rename to erigon-lib/crypto/blake2b/register.go diff --git a/erigon-lib/crypto/cryptopool/pool.go b/erigon-lib/crypto/cryptopool/pool.go new file mode 100644 index 00000000000..3bd7ebc3827 --- /dev/null +++ b/erigon-lib/crypto/cryptopool/pool.go @@ -0,0 +1,21 @@ +package cryptopool + +import ( + "hash" + "sync" + + "golang.org/x/crypto/sha3" +) + +var pool = sync.Pool{ + New: func() interface{} { + return sha3.NewLegacyKeccak256() + }, +} + +func GetLegacyKeccak256() hash.Hash { + h := pool.Get().(hash.Hash) + h.Reset() + return h +} +func ReturnLegacyKeccak256(h hash.Hash) { pool.Put(h) } diff --git a/erigon-lib/crypto/kzg/kzg.go b/erigon-lib/crypto/kzg/kzg.go new file mode 100644 index 00000000000..0008126a286 --- /dev/null +++ b/erigon-lib/crypto/kzg/kzg.go @@ -0,0 +1,124 @@ +package kzg + +import ( + "crypto/sha256" + "encoding/json" + "errors" + "fmt" + "math/big" + "os" + "sync" + + gokzg4844 "github.com/crate-crypto/go-kzg-4844" +) + +const ( + BlobCommitmentVersionKZG uint8 = 0x01 + PrecompileInputLength int = 192 +) + +type VersionedHash [32]byte + +var ( + errInvalidInputLength = errors.New("invalid input length") + + // The value that gets returned when the `verify_kzg_proof“ precompile is called + precompileReturnValue [64]byte + + trustedSetupFile string + + gokzgCtx *gokzg4844.Context + initCryptoCtx sync.Once +) + +func init() { + new(big.Int).SetUint64(gokzg4844.ScalarsPerBlob).FillBytes(precompileReturnValue[:32]) + copy(precompileReturnValue[32:], gokzg4844.BlsModulus[:]) +} + +func SetTrustedSetupFilePath(path string) { + trustedSetupFile = path +} + +// InitKZGCtx initializes the global context object returned via CryptoCtx +func InitKZGCtx() { + initCryptoCtx.Do(func() { + if trustedSetupFile != "" { + file, err := os.ReadFile(trustedSetupFile) + if err != nil { + panic(fmt.Sprintf("could not read file, err: %v", err)) + } + + setup := new(gokzg4844.JSONTrustedSetup) + if err = json.Unmarshal(file, setup); err != nil { + panic(fmt.Sprintf("could not unmarshal, err: %v", err)) + } + + gokzgCtx, err = gokzg4844.NewContext4096(setup) + if err != nil { + panic(fmt.Sprintf("could not create KZG context, err: %v", err)) + } + } else { + var err error + // Initialize context to match the configurations that the + // specs are using. + gokzgCtx, err = gokzg4844.NewContext4096Secure() + if err != nil { + panic(fmt.Sprintf("could not create context, err : %v", err)) + } + } + }) +} + +// Ctx returns a context object that stores all of the necessary configurations to allow one to +// create and verify blob proofs. This function is expensive to run if the crypto context isn't +// initialized, so production services should pre-initialize by calling InitKZGCtx. +func Ctx() *gokzg4844.Context { + InitKZGCtx() + return gokzgCtx +} + +// KZGToVersionedHash implements kzg_to_versioned_hash from EIP-4844 +func KZGToVersionedHash(kzg gokzg4844.KZGCommitment) VersionedHash { + h := sha256.Sum256(kzg[:]) + h[0] = BlobCommitmentVersionKZG + + return VersionedHash(h) +} + +// PointEvaluationPrecompile implements point_evaluation_precompile from EIP-4844 +func PointEvaluationPrecompile(input []byte) ([]byte, error) { + if len(input) != PrecompileInputLength { + return nil, errInvalidInputLength + } + // versioned hash: first 32 bytes + var versionedHash [32]byte + copy(versionedHash[:], input[:32]) + + var x, y [32]byte + // Evaluation point: next 32 bytes + copy(x[:], input[32:64]) + // Expected output: next 32 bytes + copy(y[:], input[64:96]) + + // input kzg point: next 48 bytes + var dataKZG [48]byte + copy(dataKZG[:], input[96:144]) + if KZGToVersionedHash(dataKZG) != versionedHash { + return nil, errors.New("mismatched versioned hash") + } + + // Quotient kzg: next 48 bytes + var quotientKZG [48]byte + copy(quotientKZG[:], input[144:PrecompileInputLength]) + + cryptoCtx := Ctx() + err := cryptoCtx.VerifyKZGProof(dataKZG, x, y, quotientKZG) + if err != nil { + return nil, fmt.Errorf("verify_kzg_proof error: %w", err) + } + + result := precompileReturnValue // copy the value + + return result[:], nil +} diff --git a/erigon-lib/crypto/secp256k1.go b/erigon-lib/crypto/secp256k1.go new file mode 100644 index 00000000000..3e8f6dc2ff0 --- /dev/null +++ b/erigon-lib/crypto/secp256k1.go @@ -0,0 +1,42 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package crypto + +import ( + "github.com/holiman/uint256" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" +) + +var ( + secp256k1N = new(uint256.Int).SetBytes(hexutility.MustDecodeHex("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141")) + secp256k1halfN = new(uint256.Int).Rsh(secp256k1N, 1) +) + +// See Appendix F "Signing Transactions" of the Yellow Paper +func TransactionSignatureIsValid(v byte, r, s *uint256.Int, allowPreEip2s bool) bool { + if r.IsZero() || s.IsZero() { + return false + } + + // See EIP-2: Homestead Hard-fork Changes + if !allowPreEip2s && s.Gt(secp256k1halfN) { + return false + } + + return r.Lt(secp256k1N) && s.Lt(secp256k1N) && (v == 0 || v == 1) +} diff --git a/erigon-lib/diagnostics/entities.go b/erigon-lib/diagnostics/entities.go new file mode 100644 index 00000000000..b8bc8c8328c --- /dev/null +++ b/erigon-lib/diagnostics/entities.go @@ -0,0 +1,64 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package diagnostics + +type PeerStatisticsGetter interface { + GetPeersStatistics() map[string]*PeerStatistics +} + +type PeerStatistics struct { + BytesIn uint64 + BytesOut uint64 + CapBytesIn map[string]uint64 + CapBytesOut map[string]uint64 + TypeBytesIn map[string]uint64 + TypeBytesOut map[string]uint64 +} + +type SnapshotDownloadStatistics struct { + Downloaded uint64 `json:"downloaded"` + Total uint64 `json:"total"` + TotalTime float64 `json:"totalTime"` + DownloadRate uint64 `json:"downloadRate"` + UploadRate uint64 `json:"uploadRate"` + Peers int32 `json:"peers"` + Files int32 `json:"files"` + Connections uint64 `json:"connections"` + Alloc uint64 `json:"alloc"` + Sys uint64 `json:"sys"` + DownloadFinished bool `json:"downloadFinished"` + Segments map[string]SegmentDownloadStatistics `json:"segments"` + TorrentMetadataReady int32 `json:"torrentMetadataReady"` +} + +type SegmentDownloadStatistics struct { + Name string `json:"name"` + TotalBytes uint64 `json:"totalBytes"` + DownloadedBytes uint64 `json:"downloadedBytes"` + WebseedsCount int `json:"webseedsCount"` + PeersCount int `json:"peersCount"` + WebseedsRate uint64 `json:"webseedsRate"` + PeersRate uint64 `json:"peersRate"` +} + +func (ti SnapshotDownloadStatistics) Type() Type { + return TypeOf(ti) +} + +func (ti SegmentDownloadStatistics) Type() Type { + return TypeOf(ti) +} diff --git a/erigon-lib/diagnostics/network.go b/erigon-lib/diagnostics/network.go new file mode 100644 index 00000000000..7436a4b9166 --- /dev/null +++ b/erigon-lib/diagnostics/network.go @@ -0,0 +1,21 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package diagnostics + +func (p PeerStatistics) Type() Type { + return TypeOf(p) +} diff --git a/erigon-lib/diagnostics/provider.go b/erigon-lib/diagnostics/provider.go new file mode 100644 index 00000000000..1ff14ab4b03 --- /dev/null +++ b/erigon-lib/diagnostics/provider.go @@ -0,0 +1,191 @@ +package diagnostics + +import ( + "context" + "errors" + "fmt" + "reflect" + "sync" + "sync/atomic" + + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/log/v3" +) + +type ctxKey int + +const ( + ckChan ctxKey = iota +) + +type Type interface { + reflect.Type + Context() context.Context + Err() error + Enabled() bool +} + +type diagType struct { + reflect.Type +} + +var cancelled = func() context.Context { + ctx, cancel := context.WithCancel(context.Background()) + cancel() + return ctx +}() + +func (t diagType) Context() context.Context { + providerMutex.Lock() + defer providerMutex.Unlock() + if reg := providers[t]; reg != nil { + return reg.context + } + + return cancelled +} + +func (t diagType) Err() error { + return t.Context().Err() +} + +func (t diagType) Enabled() bool { + return t.Err() == nil +} + +type Info interface { + Type() Type +} + +func TypeOf(i Info) Type { + t := reflect.TypeOf(i) + return diagType{t} +} + +type Provider interface { + StartDiagnostics(ctx context.Context) error +} + +type ProviderFunc func(ctx context.Context) error + +func (f ProviderFunc) StartDiagnostics(ctx context.Context) error { + return f(ctx) +} + +type registry struct { + context context.Context + providers []Provider +} + +var providers = map[Type]*registry{} +var providerMutex sync.RWMutex + +func RegisterProvider(provider Provider, infoType Type, logger log.Logger) { + providerMutex.Lock() + defer providerMutex.Unlock() + + reg := providers[infoType] + + if reg != nil { + for _, p := range reg.providers { + if p == provider { + return + } + } + } else { + reg = ®istry{} + providers[infoType] = reg + } + + reg.providers = append(reg.providers, provider) + + if reg.context != nil { + go startProvider(reg.context, infoType, provider, logger) + } +} + +func StartProviders(ctx context.Context, infoType Type, logger log.Logger) { + providerMutex.Lock() + + reg := providers[infoType] + if reg == nil { + reg = ®istry{} + providers[infoType] = reg + } + + toStart := make([]Provider, len(reg.providers)) + copy(toStart, reg.providers) + + reg.context = ctx + + providerMutex.Unlock() + + for _, provider := range toStart { + go startProvider(ctx, infoType, provider, logger) + } +} + +func startProvider(ctx context.Context, infoType Type, provider Provider, logger log.Logger) { + defer func() { + if rec := recover(); rec != nil { + err := fmt.Errorf("%+v, trace: %s", rec, dbg.Stack()) + logger.Warn("Diagnostic provider failed", "type", infoType, "err", err) + } + }() + + if err := provider.StartDiagnostics(ctx); err != nil { + if !errors.Is(err, context.Canceled) { + logger.Warn("Diagnostic provider failed", "type", infoType, "err", err) + } + } +} + +func Send[I Info](info I) error { + ctx := info.Type().Context() + + if ctx.Err() != nil { + if !errors.Is(ctx.Err(), context.Canceled) { + // drop the diagnostic message if there is + // no active diagnostic context for the type + return nil + } + + return ctx.Err() + } + + cval := ctx.Value(ckChan) + + if cp, ok := cval.(*atomic.Pointer[chan I]); ok { + if c := (*cp).Load(); c != nil { + select { + case *c <- info: + default: + // drop the diagnostic message if the receiver is busy + // so the sender is not blocked on non critcal actions + } + } + } else { + return fmt.Errorf("unexpected channel type: %T", cval) + } + + return nil +} + +func Context[I Info](ctx context.Context, buffer int) (context.Context, <-chan I, context.CancelFunc) { + c := make(chan I, buffer) + cp := atomic.Pointer[chan I]{} + cp.Store(&c) + + ctx = context.WithValue(ctx, ckChan, &cp) + ctx, cancel := context.WithCancel(ctx) + + return ctx, *cp.Load(), func() { + cancel() + + if cp.CompareAndSwap(&c, nil) { + ch := c + c = nil + close(ch) + } + } +} diff --git a/erigon-lib/diagnostics/provider_test.go b/erigon-lib/diagnostics/provider_test.go new file mode 100644 index 00000000000..b5f2fefc7f4 --- /dev/null +++ b/erigon-lib/diagnostics/provider_test.go @@ -0,0 +1,106 @@ +package diagnostics_test + +import ( + "context" + "testing" + "time" + + "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/ledgerwatch/log/v3" +) + +type testInfo struct { + count int +} + +func (ti testInfo) Type() diagnostics.Type { + return diagnostics.TypeOf(ti) +} + +type testProvider struct { +} + +func (t *testProvider) StartDiagnostics(ctx context.Context) error { + timer := time.NewTicker(1 * time.Second) + defer timer.Stop() + + var count int + + for { + select { + case <-ctx.Done(): + return nil + case <-timer.C: + diagnostics.Send(testInfo{count}) + count++ + } + } +} + +func TestProviderRegistration(t *testing.T) { + + // diagnostics provider + provider := &testProvider{} + diagnostics.RegisterProvider(provider, diagnostics.TypeOf(testInfo{}), log.Root()) + + // diagnostics receiver + ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1) + diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root()) + + for info := range ch { + if info.count == 3 { + cancel() + } + } +} + +func TestDelayedProviderRegistration(t *testing.T) { + + time.AfterFunc(1*time.Second, func() { + // diagnostics provider + provider := &testProvider{} + diagnostics.RegisterProvider(provider, diagnostics.TypeOf(testInfo{}), log.Root()) + }) + + // diagnostics receiver + ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1) + diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root()) + + for info := range ch { + if info.count == 3 { + cancel() + } + } +} + +func TestProviderFuncRegistration(t *testing.T) { + + // diagnostics provider + diagnostics.RegisterProvider(diagnostics.ProviderFunc(func(ctx context.Context) error { + timer := time.NewTicker(1 * time.Second) + defer timer.Stop() + + var count int + + for { + select { + case <-ctx.Done(): + return nil + case <-timer.C: + diagnostics.Send(testInfo{count}) + count++ + } + } + }), diagnostics.TypeOf(testInfo{}), log.Root()) + + // diagnostics receiver + ctx, ch, cancel := diagnostics.Context[testInfo](context.Background(), 1) + + diagnostics.StartProviders(ctx, diagnostics.TypeOf(testInfo{}), log.Root()) + + for info := range ch { + if info.count == 3 { + cancel() + } + } +} diff --git a/erigon-lib/direct/downloader_client.go b/erigon-lib/direct/downloader_client.go new file mode 100644 index 00000000000..319e3bcd1d2 --- /dev/null +++ b/erigon-lib/direct/downloader_client.go @@ -0,0 +1,50 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package direct + +import ( + "context" + + proto_downloader "github.com/ledgerwatch/erigon-lib/gointerfaces/downloader" + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/emptypb" +) + +type DownloaderClient struct { + server proto_downloader.DownloaderServer +} + +func NewDownloaderClient(server proto_downloader.DownloaderServer) *DownloaderClient { + return &DownloaderClient{server: server} +} + +func (c *DownloaderClient) Add(ctx context.Context, in *proto_downloader.AddRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + return c.server.Add(ctx, in) +} + +func (c *DownloaderClient) ProhibitNewDownloads(ctx context.Context, in *proto_downloader.ProhibitNewDownloadsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + return c.server.ProhibitNewDownloads(ctx, in) +} +func (c *DownloaderClient) Delete(ctx context.Context, in *proto_downloader.DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + return c.server.Delete(ctx, in) +} +func (c *DownloaderClient) Verify(ctx context.Context, in *proto_downloader.VerifyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + return c.server.Verify(ctx, in) +} +func (c *DownloaderClient) Stats(ctx context.Context, in *proto_downloader.StatsRequest, opts ...grpc.CallOption) (*proto_downloader.StatsReply, error) { + return c.server.Stats(ctx, in) +} diff --git a/erigon-lib/direct/eth_backend_client.go b/erigon-lib/direct/eth_backend_client.go new file mode 100644 index 00000000000..7d100a5ee03 --- /dev/null +++ b/erigon-lib/direct/eth_backend_client.go @@ -0,0 +1,220 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package direct + +import ( + "context" + "io" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/emptypb" +) + +type EthBackendClientDirect struct { + server remote.ETHBACKENDServer +} + +func NewEthBackendClientDirect(server remote.ETHBACKENDServer) *EthBackendClientDirect { + return &EthBackendClientDirect{server: server} +} + +func (s *EthBackendClientDirect) Etherbase(ctx context.Context, in *remote.EtherbaseRequest, opts ...grpc.CallOption) (*remote.EtherbaseReply, error) { + return s.server.Etherbase(ctx, in) +} + +func (s *EthBackendClientDirect) NetVersion(ctx context.Context, in *remote.NetVersionRequest, opts ...grpc.CallOption) (*remote.NetVersionReply, error) { + return s.server.NetVersion(ctx, in) +} + +func (s *EthBackendClientDirect) NetPeerCount(ctx context.Context, in *remote.NetPeerCountRequest, opts ...grpc.CallOption) (*remote.NetPeerCountReply, error) { + return s.server.NetPeerCount(ctx, in) +} + +func (s *EthBackendClientDirect) Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) { + return s.server.Version(ctx, in) +} + +func (s *EthBackendClientDirect) ProtocolVersion(ctx context.Context, in *remote.ProtocolVersionRequest, opts ...grpc.CallOption) (*remote.ProtocolVersionReply, error) { + return s.server.ProtocolVersion(ctx, in) +} + +func (s *EthBackendClientDirect) ClientVersion(ctx context.Context, in *remote.ClientVersionRequest, opts ...grpc.CallOption) (*remote.ClientVersionReply, error) { + return s.server.ClientVersion(ctx, in) +} + +// -- start Subscribe + +func (s *EthBackendClientDirect) Subscribe(ctx context.Context, in *remote.SubscribeRequest, opts ...grpc.CallOption) (remote.ETHBACKEND_SubscribeClient, error) { + ch := make(chan *subscribeReply, 16384) + streamServer := &SubscribeStreamS{ch: ch, ctx: ctx} + go func() { + defer close(ch) + streamServer.Err(s.server.Subscribe(in, streamServer)) + }() + return &SubscribeStreamC{ch: ch, ctx: ctx}, nil +} + +type subscribeReply struct { + r *remote.SubscribeReply + err error +} +type SubscribeStreamS struct { + ch chan *subscribeReply + ctx context.Context + grpc.ServerStream +} + +func (s *SubscribeStreamS) Send(m *remote.SubscribeReply) error { + s.ch <- &subscribeReply{r: m} + return nil +} +func (s *SubscribeStreamS) Context() context.Context { return s.ctx } +func (s *SubscribeStreamS) Err(err error) { + if err == nil { + return + } + s.ch <- &subscribeReply{err: err} +} + +type SubscribeStreamC struct { + ch chan *subscribeReply + ctx context.Context + grpc.ClientStream +} + +func (c *SubscribeStreamC) Recv() (*remote.SubscribeReply, error) { + m, ok := <-c.ch + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} +func (c *SubscribeStreamC) Context() context.Context { return c.ctx } + +// -- end Subscribe + +// -- SubscribeLogs + +func (s *EthBackendClientDirect) SubscribeLogs(ctx context.Context, opts ...grpc.CallOption) (remote.ETHBACKEND_SubscribeLogsClient, error) { + subscribeLogsRequestChan := make(chan *subscribeLogsRequest, 16384) + subscribeLogsReplyChan := make(chan *subscribeLogsReply, 16384) + srv := &SubscribeLogsStreamS{ + chSend: subscribeLogsReplyChan, + chRecv: subscribeLogsRequestChan, + ctx: ctx, + } + go func() { + defer close(subscribeLogsRequestChan) + defer close(subscribeLogsReplyChan) + srv.Err(s.server.SubscribeLogs(srv)) + }() + cli := &SubscribeLogsStreamC{ + chSend: subscribeLogsRequestChan, + chRecv: subscribeLogsReplyChan, + ctx: ctx, + } + return cli, nil +} + +type SubscribeLogsStreamS struct { + chSend chan *subscribeLogsReply + chRecv chan *subscribeLogsRequest + ctx context.Context + grpc.ServerStream +} + +type subscribeLogsReply struct { + r *remote.SubscribeLogsReply + err error +} + +type subscribeLogsRequest struct { + r *remote.LogsFilterRequest + err error +} + +func (s *SubscribeLogsStreamS) Send(m *remote.SubscribeLogsReply) error { + s.chSend <- &subscribeLogsReply{r: m} + return nil +} + +func (s *SubscribeLogsStreamS) Recv() (*remote.LogsFilterRequest, error) { + m, ok := <-s.chRecv + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} + +func (s *SubscribeLogsStreamS) Err(err error) { + if err == nil { + return + } + s.chSend <- &subscribeLogsReply{err: err} +} + +type SubscribeLogsStreamC struct { + chSend chan *subscribeLogsRequest + chRecv chan *subscribeLogsReply + ctx context.Context + grpc.ClientStream +} + +func (c *SubscribeLogsStreamC) Send(m *remote.LogsFilterRequest) error { + c.chSend <- &subscribeLogsRequest{r: m} + return nil +} + +func (c *SubscribeLogsStreamC) Recv() (*remote.SubscribeLogsReply, error) { + m, ok := <-c.chRecv + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} + +// -- end SubscribeLogs + +func (s *EthBackendClientDirect) Block(ctx context.Context, in *remote.BlockRequest, opts ...grpc.CallOption) (*remote.BlockReply, error) { + return s.server.Block(ctx, in) +} + +func (s *EthBackendClientDirect) TxnLookup(ctx context.Context, in *remote.TxnLookupRequest, opts ...grpc.CallOption) (*remote.TxnLookupReply, error) { + return s.server.TxnLookup(ctx, in) +} + +func (s *EthBackendClientDirect) NodeInfo(ctx context.Context, in *remote.NodesInfoRequest, opts ...grpc.CallOption) (*remote.NodesInfoReply, error) { + return s.server.NodeInfo(ctx, in) +} + +func (s *EthBackendClientDirect) Peers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*remote.PeersReply, error) { + return s.server.Peers(ctx, in) +} + +func (s *EthBackendClientDirect) AddPeer(ctx context.Context, in *remote.AddPeerRequest, opts ...grpc.CallOption) (*remote.AddPeerReply, error) { + return s.server.AddPeer(ctx, in) +} + +func (s *EthBackendClientDirect) PendingBlock(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*remote.PendingBlockReply, error) { + return s.server.PendingBlock(ctx, in) +} + +func (s *EthBackendClientDirect) BorEvent(ctx context.Context, in *remote.BorEventRequest, opts ...grpc.CallOption) (*remote.BorEventReply, error) { + return s.server.BorEvent(ctx, in) +} diff --git a/erigon-lib/direct/execution_client.go b/erigon-lib/direct/execution_client.go new file mode 100644 index 00000000000..e2e8d8da1c9 --- /dev/null +++ b/erigon-lib/direct/execution_client.go @@ -0,0 +1,102 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package direct + +import ( + "context" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/emptypb" +) + +type ExecutionClientDirect struct { + server execution.ExecutionServer +} + +func NewExecutionClientDirect(server execution.ExecutionServer) execution.ExecutionClient { + return &ExecutionClientDirect{server: server} +} + +func (s *ExecutionClientDirect) AssembleBlock(ctx context.Context, in *execution.AssembleBlockRequest, opts ...grpc.CallOption) (*execution.AssembleBlockResponse, error) { + return s.server.AssembleBlock(ctx, in) +} + +func (s *ExecutionClientDirect) GetBodiesByHashes(ctx context.Context, in *execution.GetBodiesByHashesRequest, opts ...grpc.CallOption) (*execution.GetBodiesBatchResponse, error) { + return s.server.GetBodiesByHashes(ctx, in) +} + +func (s *ExecutionClientDirect) GetBodiesByRange(ctx context.Context, in *execution.GetBodiesByRangeRequest, opts ...grpc.CallOption) (*execution.GetBodiesBatchResponse, error) { + return s.server.GetBodiesByRange(ctx, in) +} + +func (s *ExecutionClientDirect) GetAssembledBlock(ctx context.Context, in *execution.GetAssembledBlockRequest, opts ...grpc.CallOption) (*execution.GetAssembledBlockResponse, error) { + return s.server.GetAssembledBlock(ctx, in) +} + +// Chain Putters. +func (s *ExecutionClientDirect) InsertBlocks(ctx context.Context, in *execution.InsertBlocksRequest, opts ...grpc.CallOption) (*execution.InsertionResult, error) { + return s.server.InsertBlocks(ctx, in) +} + +// Chain Validation and ForkChoice. +func (s *ExecutionClientDirect) ValidateChain(ctx context.Context, in *execution.ValidationRequest, opts ...grpc.CallOption) (*execution.ValidationReceipt, error) { + return s.server.ValidateChain(ctx, in) + +} + +func (s *ExecutionClientDirect) UpdateForkChoice(ctx context.Context, in *execution.ForkChoice, opts ...grpc.CallOption) (*execution.ForkChoiceReceipt, error) { + return s.server.UpdateForkChoice(ctx, in) +} + +// Chain Getters. +func (s *ExecutionClientDirect) GetHeader(ctx context.Context, in *execution.GetSegmentRequest, opts ...grpc.CallOption) (*execution.GetHeaderResponse, error) { + return s.server.GetHeader(ctx, in) +} + +func (s *ExecutionClientDirect) CurrentHeader(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.GetHeaderResponse, error) { + return s.server.CurrentHeader(ctx, in) +} + +func (s *ExecutionClientDirect) GetTD(ctx context.Context, in *execution.GetSegmentRequest, opts ...grpc.CallOption) (*execution.GetTDResponse, error) { + return s.server.GetTD(ctx, in) +} + +func (s *ExecutionClientDirect) GetBody(ctx context.Context, in *execution.GetSegmentRequest, opts ...grpc.CallOption) (*execution.GetBodyResponse, error) { + return s.server.GetBody(ctx, in) +} + +func (s *ExecutionClientDirect) IsCanonicalHash(ctx context.Context, in *types.H256, opts ...grpc.CallOption) (*execution.IsCanonicalResponse, error) { + return s.server.IsCanonicalHash(ctx, in) +} + +func (s *ExecutionClientDirect) GetHeaderHashNumber(ctx context.Context, in *types.H256, opts ...grpc.CallOption) (*execution.GetHeaderHashNumberResponse, error) { + return s.server.GetHeaderHashNumber(ctx, in) +} + +func (s *ExecutionClientDirect) GetForkChoice(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.ForkChoice, error) { + return s.server.GetForkChoice(ctx, in) +} + +func (s *ExecutionClientDirect) Ready(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.ReadyResponse, error) { + return s.server.Ready(ctx, in) +} + +func (s *ExecutionClientDirect) FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*execution.FrozenBlocksResponse, error) { + return s.server.FrozenBlocks(ctx, in) +} diff --git a/erigon-lib/direct/mining_client.go b/erigon-lib/direct/mining_client.go new file mode 100644 index 00000000000..c6db989e0cc --- /dev/null +++ b/erigon-lib/direct/mining_client.go @@ -0,0 +1,214 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package direct + +import ( + "context" + "io" + + txpool_proto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/emptypb" +) + +var _ txpool_proto.MiningClient = (*MiningClient)(nil) + +type MiningClient struct { + server txpool_proto.MiningServer +} + +func NewMiningClient(server txpool_proto.MiningServer) *MiningClient { + return &MiningClient{server: server} +} + +func (s *MiningClient) Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) { + return s.server.Version(ctx, in) +} + +// -- start OnPendingBlock + +func (s *MiningClient) OnPendingBlock(ctx context.Context, in *txpool_proto.OnPendingBlockRequest, opts ...grpc.CallOption) (txpool_proto.Mining_OnPendingBlockClient, error) { + ch := make(chan *onPendigBlockReply, 16384) + streamServer := &MiningOnPendingBlockS{ch: ch, ctx: ctx} + go func() { + defer close(ch) + streamServer.Err(s.server.OnPendingBlock(in, streamServer)) + }() + return &MiningOnPendingBlockC{ch: ch, ctx: ctx}, nil +} + +type onPendigBlockReply struct { + r *txpool_proto.OnPendingBlockReply + err error +} + +type MiningOnPendingBlockS struct { + ch chan *onPendigBlockReply + ctx context.Context + grpc.ServerStream +} + +func (s *MiningOnPendingBlockS) Send(m *txpool_proto.OnPendingBlockReply) error { + s.ch <- &onPendigBlockReply{r: m} + return nil +} +func (s *MiningOnPendingBlockS) Context() context.Context { return s.ctx } +func (s *MiningOnPendingBlockS) Err(err error) { + if err == nil { + return + } + s.ch <- &onPendigBlockReply{err: err} +} + +type MiningOnPendingBlockC struct { + ch chan *onPendigBlockReply + ctx context.Context + grpc.ClientStream +} + +func (c *MiningOnPendingBlockC) Recv() (*txpool_proto.OnPendingBlockReply, error) { + m, ok := <-c.ch + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} +func (c *MiningOnPendingBlockC) Context() context.Context { return c.ctx } + +// -- end OnPendingBlock +// -- start OnMinedBlock + +func (s *MiningClient) OnMinedBlock(ctx context.Context, in *txpool_proto.OnMinedBlockRequest, opts ...grpc.CallOption) (txpool_proto.Mining_OnMinedBlockClient, error) { + ch := make(chan *onMinedBlockReply, 16384) + streamServer := &MiningOnMinedBlockS{ch: ch, ctx: ctx} + go func() { + defer close(ch) + streamServer.Err(s.server.OnMinedBlock(in, streamServer)) + }() + return &MiningOnMinedBlockC{ch: ch, ctx: ctx}, nil +} + +type onMinedBlockReply struct { + r *txpool_proto.OnMinedBlockReply + err error +} + +type MiningOnMinedBlockS struct { + ch chan *onMinedBlockReply + ctx context.Context + grpc.ServerStream +} + +func (s *MiningOnMinedBlockS) Send(m *txpool_proto.OnMinedBlockReply) error { + s.ch <- &onMinedBlockReply{r: m} + return nil +} +func (s *MiningOnMinedBlockS) Context() context.Context { return s.ctx } +func (s *MiningOnMinedBlockS) Err(err error) { + if err == nil { + return + } + s.ch <- &onMinedBlockReply{err: err} +} + +type MiningOnMinedBlockC struct { + ch chan *onMinedBlockReply + ctx context.Context + grpc.ClientStream +} + +func (c *MiningOnMinedBlockC) Recv() (*txpool_proto.OnMinedBlockReply, error) { + m, ok := <-c.ch + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} +func (c *MiningOnMinedBlockC) Context() context.Context { return c.ctx } + +// -- end OnMinedBlock +// -- end OnPendingLogs + +func (s *MiningClient) OnPendingLogs(ctx context.Context, in *txpool_proto.OnPendingLogsRequest, opts ...grpc.CallOption) (txpool_proto.Mining_OnPendingLogsClient, error) { + ch := make(chan *onPendingLogsReply, 16384) + streamServer := &MiningOnPendingLogsS{ch: ch, ctx: ctx} + go func() { + defer close(ch) + streamServer.Err(s.server.OnPendingLogs(in, streamServer)) + }() + return &MiningOnPendingLogsC{ch: ch, ctx: ctx}, nil +} + +type onPendingLogsReply struct { + r *txpool_proto.OnPendingLogsReply + err error +} +type MiningOnPendingLogsS struct { + ch chan *onPendingLogsReply + ctx context.Context + grpc.ServerStream +} + +func (s *MiningOnPendingLogsS) Send(m *txpool_proto.OnPendingLogsReply) error { + s.ch <- &onPendingLogsReply{r: m} + return nil +} +func (s *MiningOnPendingLogsS) Context() context.Context { return s.ctx } +func (s *MiningOnPendingLogsS) Err(err error) { + if err == nil { + return + } + s.ch <- &onPendingLogsReply{err: err} +} + +type MiningOnPendingLogsC struct { + ch chan *onPendingLogsReply + ctx context.Context + grpc.ClientStream +} + +func (c *MiningOnPendingLogsC) Recv() (*txpool_proto.OnPendingLogsReply, error) { + m, ok := <-c.ch + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} +func (c *MiningOnPendingLogsC) Context() context.Context { return c.ctx } + +// -- end OnPendingLogs + +func (s *MiningClient) GetWork(ctx context.Context, in *txpool_proto.GetWorkRequest, opts ...grpc.CallOption) (*txpool_proto.GetWorkReply, error) { + return s.server.GetWork(ctx, in) +} + +func (s *MiningClient) SubmitWork(ctx context.Context, in *txpool_proto.SubmitWorkRequest, opts ...grpc.CallOption) (*txpool_proto.SubmitWorkReply, error) { + return s.server.SubmitWork(ctx, in) +} + +func (s *MiningClient) SubmitHashRate(ctx context.Context, in *txpool_proto.SubmitHashRateRequest, opts ...grpc.CallOption) (*txpool_proto.SubmitHashRateReply, error) { + return s.server.SubmitHashRate(ctx, in) +} + +func (s *MiningClient) HashRate(ctx context.Context, in *txpool_proto.HashRateRequest, opts ...grpc.CallOption) (*txpool_proto.HashRateReply, error) { + return s.server.HashRate(ctx, in) +} + +func (s *MiningClient) Mining(ctx context.Context, in *txpool_proto.MiningRequest, opts ...grpc.CallOption) (*txpool_proto.MiningReply, error) { + return s.server.Mining(ctx, in) +} diff --git a/erigon-lib/direct/sentinel_client.go b/erigon-lib/direct/sentinel_client.go new file mode 100644 index 00000000000..f421f4332bf --- /dev/null +++ b/erigon-lib/direct/sentinel_client.go @@ -0,0 +1,122 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package direct + +import ( + "context" + "io" + + "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" + "google.golang.org/grpc" +) + +type SentinelClientDirect struct { + server sentinel.SentinelServer +} + +func NewSentinelClientDirect(sentinel sentinel.SentinelServer) sentinel.SentinelClient { + return &SentinelClientDirect{server: sentinel} +} + +func (s *SentinelClientDirect) SendRequest(ctx context.Context, in *sentinel.RequestData, opts ...grpc.CallOption) (*sentinel.ResponseData, error) { + return s.server.SendRequest(ctx, in) +} + +func (s *SentinelClientDirect) SetStatus(ctx context.Context, in *sentinel.Status, opts ...grpc.CallOption) (*sentinel.EmptyMessage, error) { + return s.server.SetStatus(ctx, in) +} + +func (s *SentinelClientDirect) GetPeers(ctx context.Context, in *sentinel.EmptyMessage, opts ...grpc.CallOption) (*sentinel.PeerCount, error) { + return s.server.GetPeers(ctx, in) +} + +func (s *SentinelClientDirect) BanPeer(ctx context.Context, p *sentinel.Peer, opts ...grpc.CallOption) (*sentinel.EmptyMessage, error) { + return s.server.BanPeer(ctx, p) +} +func (s *SentinelClientDirect) UnbanPeer(ctx context.Context, p *sentinel.Peer, opts ...grpc.CallOption) (*sentinel.EmptyMessage, error) { + return s.server.UnbanPeer(ctx, p) +} +func (s *SentinelClientDirect) RewardPeer(ctx context.Context, p *sentinel.Peer, opts ...grpc.CallOption) (*sentinel.EmptyMessage, error) { + return s.server.RewardPeer(ctx, p) +} +func (s *SentinelClientDirect) PenalizePeer(ctx context.Context, p *sentinel.Peer, opts ...grpc.CallOption) (*sentinel.EmptyMessage, error) { + return s.server.PenalizePeer(ctx, p) +} + +func (s *SentinelClientDirect) PublishGossip(ctx context.Context, in *sentinel.GossipData, opts ...grpc.CallOption) (*sentinel.EmptyMessage, error) { + return s.server.PublishGossip(ctx, in) +} + +// Subscribe gossip part. the only complex section of this bullshit + +func (s *SentinelClientDirect) SubscribeGossip(ctx context.Context, in *sentinel.EmptyMessage, opts ...grpc.CallOption) (sentinel.Sentinel_SubscribeGossipClient, error) { + ch := make(chan *gossipReply, 16384) + streamServer := &SentinelSubscribeGossipS{ch: ch, ctx: ctx} + go func() { + defer close(ch) + streamServer.Err(s.server.SubscribeGossip(in, streamServer)) + }() + return &SentinelSubscribeGossipC{ch: ch, ctx: ctx}, nil +} + +type SentinelSubscribeGossipC struct { + ch chan *gossipReply + ctx context.Context + grpc.ClientStream +} + +func (c *SentinelSubscribeGossipC) Recv() (*sentinel.GossipData, error) { + m, ok := <-c.ch + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} +func (c *SentinelSubscribeGossipC) Context() context.Context { return c.ctx } + +type SentinelSubscribeGossipS struct { + ch chan *gossipReply + ctx context.Context + grpc.ServerStream +} + +type gossipReply struct { + r *sentinel.GossipData + err error +} + +func (s *SentinelSubscribeGossipS) Send(m *sentinel.GossipData) error { + s.ch <- &gossipReply{r: m} + return nil +} +func (s *SentinelSubscribeGossipS) Context() context.Context { return s.ctx } +func (s *SentinelSubscribeGossipS) Err(err error) { + if err == nil { + return + } + s.ch <- &gossipReply{err: err} +} + +func (s *SentinelClientDirect) GetPeersStatistics() map[string]*diagnostics.PeerStatistics { + + if diag, ok := s.server.(diagnostics.PeerStatisticsGetter); ok { + return diag.GetPeersStatistics() + } + + return map[string]*diagnostics.PeerStatistics{} +} diff --git a/erigon-lib/direct/sentry_client.go b/erigon-lib/direct/sentry_client.go new file mode 100644 index 00000000000..cf01003e71d --- /dev/null +++ b/erigon-lib/direct/sentry_client.go @@ -0,0 +1,392 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package direct + +import ( + "context" + "fmt" + "io" + "sync" + + "google.golang.org/grpc" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/emptypb" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" +) + +const ( + ETH65 = 65 + ETH66 = 66 + ETH67 = 67 + ETH68 = 68 +) + +var ProtoIds = map[uint]map[sentry.MessageId]struct{}{ + ETH65: { + sentry.MessageId_GET_BLOCK_HEADERS_65: struct{}{}, + sentry.MessageId_BLOCK_HEADERS_65: struct{}{}, + sentry.MessageId_GET_BLOCK_BODIES_65: struct{}{}, + sentry.MessageId_BLOCK_BODIES_65: struct{}{}, + sentry.MessageId_GET_NODE_DATA_65: struct{}{}, + sentry.MessageId_NODE_DATA_65: struct{}{}, + sentry.MessageId_GET_RECEIPTS_65: struct{}{}, + sentry.MessageId_RECEIPTS_65: struct{}{}, + sentry.MessageId_NEW_BLOCK_HASHES_65: struct{}{}, + sentry.MessageId_NEW_BLOCK_65: struct{}{}, + sentry.MessageId_TRANSACTIONS_65: struct{}{}, + sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_65: struct{}{}, + sentry.MessageId_GET_POOLED_TRANSACTIONS_65: struct{}{}, + sentry.MessageId_POOLED_TRANSACTIONS_65: struct{}{}, + }, + ETH66: { + sentry.MessageId_GET_BLOCK_HEADERS_66: struct{}{}, + sentry.MessageId_BLOCK_HEADERS_66: struct{}{}, + sentry.MessageId_GET_BLOCK_BODIES_66: struct{}{}, + sentry.MessageId_BLOCK_BODIES_66: struct{}{}, + sentry.MessageId_GET_NODE_DATA_66: struct{}{}, + sentry.MessageId_NODE_DATA_66: struct{}{}, + sentry.MessageId_GET_RECEIPTS_66: struct{}{}, + sentry.MessageId_RECEIPTS_66: struct{}{}, + sentry.MessageId_NEW_BLOCK_HASHES_66: struct{}{}, + sentry.MessageId_NEW_BLOCK_66: struct{}{}, + sentry.MessageId_TRANSACTIONS_66: struct{}{}, + sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_66: struct{}{}, + sentry.MessageId_GET_POOLED_TRANSACTIONS_66: struct{}{}, + sentry.MessageId_POOLED_TRANSACTIONS_66: struct{}{}, + }, + ETH67: { + sentry.MessageId_GET_BLOCK_HEADERS_66: struct{}{}, + sentry.MessageId_BLOCK_HEADERS_66: struct{}{}, + sentry.MessageId_GET_BLOCK_BODIES_66: struct{}{}, + sentry.MessageId_BLOCK_BODIES_66: struct{}{}, + sentry.MessageId_GET_RECEIPTS_66: struct{}{}, + sentry.MessageId_RECEIPTS_66: struct{}{}, + sentry.MessageId_NEW_BLOCK_HASHES_66: struct{}{}, + sentry.MessageId_NEW_BLOCK_66: struct{}{}, + sentry.MessageId_TRANSACTIONS_66: struct{}{}, + sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_66: struct{}{}, + sentry.MessageId_GET_POOLED_TRANSACTIONS_66: struct{}{}, + sentry.MessageId_POOLED_TRANSACTIONS_66: struct{}{}, + }, + ETH68: { + sentry.MessageId_GET_BLOCK_HEADERS_66: struct{}{}, + sentry.MessageId_BLOCK_HEADERS_66: struct{}{}, + sentry.MessageId_GET_BLOCK_BODIES_66: struct{}{}, + sentry.MessageId_BLOCK_BODIES_66: struct{}{}, + sentry.MessageId_GET_RECEIPTS_66: struct{}{}, + sentry.MessageId_RECEIPTS_66: struct{}{}, + sentry.MessageId_NEW_BLOCK_HASHES_66: struct{}{}, + sentry.MessageId_NEW_BLOCK_66: struct{}{}, + sentry.MessageId_TRANSACTIONS_66: struct{}{}, + sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_68: struct{}{}, + sentry.MessageId_GET_POOLED_TRANSACTIONS_66: struct{}{}, + sentry.MessageId_POOLED_TRANSACTIONS_66: struct{}{}, + }, +} + +type SentryClient interface { + sentry.SentryClient + Protocol() uint + Ready() bool + MarkDisconnected() +} + +type SentryClientRemote struct { + sentry.SentryClient + sync.RWMutex + protocol uint + ready bool +} + +var _ SentryClient = (*SentryClientRemote)(nil) // compile-time interface check +var _ SentryClient = (*SentryClientDirect)(nil) // compile-time interface check + +// NewSentryClientRemote - app code must use this class +// to avoid concurrency - it accepts protocol (which received async by SetStatus) in constructor, +// means app can't use client which protocol unknown yet +func NewSentryClientRemote(client sentry.SentryClient) *SentryClientRemote { + return &SentryClientRemote{SentryClient: client} +} + +func (c *SentryClientRemote) Protocol() uint { + c.RLock() + defer c.RUnlock() + return c.protocol +} + +func (c *SentryClientRemote) Ready() bool { + c.RLock() + defer c.RUnlock() + return c.ready +} + +func (c *SentryClientRemote) MarkDisconnected() { + c.Lock() + defer c.Unlock() + c.ready = false +} + +func (c *SentryClientRemote) HandShake(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*sentry.HandShakeReply, error) { + reply, err := c.SentryClient.HandShake(ctx, in, opts...) + if err != nil { + return nil, err + } + c.Lock() + defer c.Unlock() + switch reply.Protocol { + case sentry.Protocol_ETH65: + c.protocol = ETH65 + case sentry.Protocol_ETH66: + c.protocol = ETH66 + case sentry.Protocol_ETH67: + c.protocol = ETH67 + case sentry.Protocol_ETH68: + c.protocol = ETH68 + default: + return nil, fmt.Errorf("unexpected protocol: %d", reply.Protocol) + } + c.ready = true + return reply, nil +} +func (c *SentryClientRemote) SetStatus(ctx context.Context, in *sentry.StatusData, opts ...grpc.CallOption) (*sentry.SetStatusReply, error) { + return c.SentryClient.SetStatus(ctx, in, opts...) +} + +func (c *SentryClientRemote) Messages(ctx context.Context, in *sentry.MessagesRequest, opts ...grpc.CallOption) (sentry.Sentry_MessagesClient, error) { + in.Ids = filterIds(in.Ids, c.Protocol()) + return c.SentryClient.Messages(ctx, in, opts...) +} + +func (c *SentryClientRemote) PeerCount(ctx context.Context, in *sentry.PeerCountRequest, opts ...grpc.CallOption) (*sentry.PeerCountReply, error) { + return c.SentryClient.PeerCount(ctx, in) +} + +// Contains implementations of SentryServer, SentryClient, ControlClient, and ControlServer, that may be linked to each other +// SentryClient is linked directly to the SentryServer, for example, so any function call on the instance of the SentryClient +// cause invocations directly on the corresponding instance of the SentryServer. However, the link between SentryClient and +// SentryServer is established outside of the constructor. This means that the reference from the SentyClient to the corresponding +// SentryServer can be injected at any point in time. + +// SentryClientDirect implements SentryClient interface by connecting the instance of the client directly with the corresponding +// instance of SentryServer +type SentryClientDirect struct { + server sentry.SentryServer + protocol uint +} + +func NewSentryClientDirect(protocol uint, sentryServer sentry.SentryServer) *SentryClientDirect { + return &SentryClientDirect{protocol: protocol, server: sentryServer} +} + +func (c *SentryClientDirect) Protocol() uint { return c.protocol } +func (c *SentryClientDirect) Ready() bool { return true } +func (c *SentryClientDirect) MarkDisconnected() {} + +func (c *SentryClientDirect) PenalizePeer(ctx context.Context, in *sentry.PenalizePeerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + return c.server.PenalizePeer(ctx, in) +} + +func (c *SentryClientDirect) PeerMinBlock(ctx context.Context, in *sentry.PeerMinBlockRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + return c.server.PeerMinBlock(ctx, in) +} + +func (c *SentryClientDirect) SendMessageByMinBlock(ctx context.Context, in *sentry.SendMessageByMinBlockRequest, opts ...grpc.CallOption) (*sentry.SentPeers, error) { + return c.server.SendMessageByMinBlock(ctx, in) +} + +func (c *SentryClientDirect) SendMessageById(ctx context.Context, in *sentry.SendMessageByIdRequest, opts ...grpc.CallOption) (*sentry.SentPeers, error) { + return c.server.SendMessageById(ctx, in) +} + +func (c *SentryClientDirect) SendMessageToRandomPeers(ctx context.Context, in *sentry.SendMessageToRandomPeersRequest, opts ...grpc.CallOption) (*sentry.SentPeers, error) { + return c.server.SendMessageToRandomPeers(ctx, in) +} + +func (c *SentryClientDirect) SendMessageToAll(ctx context.Context, in *sentry.OutboundMessageData, opts ...grpc.CallOption) (*sentry.SentPeers, error) { + return c.server.SendMessageToAll(ctx, in) +} + +func (c *SentryClientDirect) HandShake(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*sentry.HandShakeReply, error) { + return c.server.HandShake(ctx, in) +} + +func (c *SentryClientDirect) SetStatus(ctx context.Context, in *sentry.StatusData, opts ...grpc.CallOption) (*sentry.SetStatusReply, error) { + return c.server.SetStatus(ctx, in) +} + +func (c *SentryClientDirect) Peers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*sentry.PeersReply, error) { + return c.server.Peers(ctx, in) +} + +func (c *SentryClientDirect) PeerCount(ctx context.Context, in *sentry.PeerCountRequest, opts ...grpc.CallOption) (*sentry.PeerCountReply, error) { + return c.server.PeerCount(ctx, in) +} + +func (c *SentryClientDirect) PeerById(ctx context.Context, in *sentry.PeerByIdRequest, opts ...grpc.CallOption) (*sentry.PeerByIdReply, error) { + return c.server.PeerById(ctx, in) +} + +// -- start Messages + +func (c *SentryClientDirect) Messages(ctx context.Context, in *sentry.MessagesRequest, opts ...grpc.CallOption) (sentry.Sentry_MessagesClient, error) { + in.Ids = filterIds(in.Ids, c.Protocol()) + ch := make(chan *inboundMessageReply, 16384) + streamServer := &SentryMessagesStreamS{ch: ch, ctx: ctx} + go func() { + defer close(ch) + streamServer.Err(c.server.Messages(in, streamServer)) + }() + return &SentryMessagesStreamC{ch: ch, ctx: ctx}, nil +} + +type inboundMessageReply struct { + r *sentry.InboundMessage + err error +} + +// SentryMessagesStreamS implements proto_sentry.Sentry_ReceiveMessagesServer +type SentryMessagesStreamS struct { + ch chan *inboundMessageReply + ctx context.Context + grpc.ServerStream +} + +func (s *SentryMessagesStreamS) Send(m *sentry.InboundMessage) error { + s.ch <- &inboundMessageReply{r: m} + return nil +} + +func (s *SentryMessagesStreamS) Context() context.Context { return s.ctx } + +func (s *SentryMessagesStreamS) Err(err error) { + if err == nil { + return + } + s.ch <- &inboundMessageReply{err: err} +} + +type SentryMessagesStreamC struct { + ch chan *inboundMessageReply + ctx context.Context + grpc.ClientStream +} + +func (c *SentryMessagesStreamC) Recv() (*sentry.InboundMessage, error) { + m, ok := <-c.ch + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} + +func (c *SentryMessagesStreamC) Context() context.Context { return c.ctx } + +func (c *SentryMessagesStreamC) RecvMsg(anyMessage interface{}) error { + m, err := c.Recv() + if err != nil { + return err + } + outMessage := anyMessage.(*sentry.InboundMessage) + proto.Merge(outMessage, m) + return nil +} + +// -- end Messages +// -- start Peers + +func (c *SentryClientDirect) PeerEvents(ctx context.Context, in *sentry.PeerEventsRequest, opts ...grpc.CallOption) (sentry.Sentry_PeerEventsClient, error) { + ch := make(chan *peersReply, 16384) + streamServer := &SentryPeersStreamS{ch: ch, ctx: ctx} + go func() { + defer close(ch) + streamServer.Err(c.server.PeerEvents(in, streamServer)) + }() + return &SentryPeersStreamC{ch: ch, ctx: ctx}, nil +} + +func (c *SentryClientDirect) AddPeer(ctx context.Context, in *sentry.AddPeerRequest, opts ...grpc.CallOption) (*sentry.AddPeerReply, error) { + return c.server.AddPeer(ctx, in) +} + +type peersReply struct { + r *sentry.PeerEvent + err error +} + +// SentryPeersStreamS - implements proto_sentry.Sentry_ReceivePeersServer +type SentryPeersStreamS struct { + ch chan *peersReply + ctx context.Context + grpc.ServerStream +} + +func (s *SentryPeersStreamS) Send(m *sentry.PeerEvent) error { + s.ch <- &peersReply{r: m} + return nil +} + +func (s *SentryPeersStreamS) Context() context.Context { return s.ctx } + +func (s *SentryPeersStreamS) Err(err error) { + if err == nil { + return + } + s.ch <- &peersReply{err: err} +} + +type SentryPeersStreamC struct { + ch chan *peersReply + ctx context.Context + grpc.ClientStream +} + +func (c *SentryPeersStreamC) Recv() (*sentry.PeerEvent, error) { + m, ok := <-c.ch + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} + +func (c *SentryPeersStreamC) Context() context.Context { return c.ctx } + +func (c *SentryPeersStreamC) RecvMsg(anyMessage interface{}) error { + m, err := c.Recv() + if err != nil { + return err + } + outMessage := anyMessage.(*sentry.PeerEvent) + proto.Merge(outMessage, m) + return nil +} + +// -- end Peers + +func (c *SentryClientDirect) NodeInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.NodeInfoReply, error) { + return c.server.NodeInfo(ctx, in) +} + +func filterIds(in []sentry.MessageId, protocol uint) (filtered []sentry.MessageId) { + for _, id := range in { + if _, ok := ProtoIds[protocol][id]; ok { + filtered = append(filtered, id) + } + } + return filtered +} diff --git a/erigon-lib/direct/state_diff_client.go b/erigon-lib/direct/state_diff_client.go new file mode 100644 index 00000000000..8c798c10546 --- /dev/null +++ b/erigon-lib/direct/state_diff_client.go @@ -0,0 +1,99 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package direct + +import ( + "context" + "io" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "google.golang.org/grpc" +) + +type StateDiffClient interface { + StateChanges(ctx context.Context, in *remote.StateChangeRequest, opts ...grpc.CallOption) (remote.KV_StateChangesClient, error) + Snapshots(ctx context.Context, in *remote.SnapshotsRequest, opts ...grpc.CallOption) (*remote.SnapshotsReply, error) +} + +var _ StateDiffClient = (*StateDiffClientDirect)(nil) // compile-time interface check + +// SentryClientDirect implements SentryClient interface by connecting the instance of the client directly with the corresponding +// instance of SentryServer +type StateDiffClientDirect struct { + server remote.KVServer +} + +func NewStateDiffClientDirect(server remote.KVServer) *StateDiffClientDirect { + return &StateDiffClientDirect{server: server} +} + +func (c *StateDiffClientDirect) Snapshots(ctx context.Context, in *remote.SnapshotsRequest, opts ...grpc.CallOption) (*remote.SnapshotsReply, error) { + return c.server.Snapshots(ctx, in) +} + +// -- start StateChanges + +func (c *StateDiffClientDirect) StateChanges(ctx context.Context, in *remote.StateChangeRequest, opts ...grpc.CallOption) (remote.KV_StateChangesClient, error) { + ch := make(chan *stateDiffReply, 16384) + streamServer := &StateDiffStreamS{ch: ch, ctx: ctx} + go func() { + defer close(ch) + streamServer.Err(c.server.StateChanges(in, streamServer)) + }() + return &StateDiffStreamC{ch: ch, ctx: ctx}, nil +} + +type stateDiffReply struct { + r *remote.StateChangeBatch + err error +} + +type StateDiffStreamC struct { + ch chan *stateDiffReply + ctx context.Context + grpc.ClientStream +} + +func (c *StateDiffStreamC) Recv() (*remote.StateChangeBatch, error) { + m, ok := <-c.ch + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} +func (c *StateDiffStreamC) Context() context.Context { return c.ctx } + +// StateDiffStreamS implements proto_sentry.Sentry_ReceiveMessagesServer +type StateDiffStreamS struct { + ch chan *stateDiffReply + ctx context.Context + grpc.ServerStream +} + +func (s *StateDiffStreamS) Send(m *remote.StateChangeBatch) error { + s.ch <- &stateDiffReply{r: m} + return nil +} +func (s *StateDiffStreamS) Context() context.Context { return s.ctx } +func (s *StateDiffStreamS) Err(err error) { + if err == nil { + return + } + s.ch <- &stateDiffReply{err: err} +} + +// -- end StateChanges diff --git a/erigon-lib/direct/txpool_client.go b/erigon-lib/direct/txpool_client.go new file mode 100644 index 00000000000..5e54409b640 --- /dev/null +++ b/erigon-lib/direct/txpool_client.go @@ -0,0 +1,121 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package direct + +import ( + "context" + "io" + + txpool_proto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/emptypb" +) + +var _ txpool_proto.TxpoolClient = (*TxPoolClient)(nil) + +type TxPoolClient struct { + server txpool_proto.TxpoolServer +} + +func NewTxPoolClient(server txpool_proto.TxpoolServer) *TxPoolClient { + return &TxPoolClient{server} +} + +func (s *TxPoolClient) Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) { + return s.server.Version(ctx, in) +} + +func (s *TxPoolClient) FindUnknown(ctx context.Context, in *txpool_proto.TxHashes, opts ...grpc.CallOption) (*txpool_proto.TxHashes, error) { + return s.server.FindUnknown(ctx, in) +} + +func (s *TxPoolClient) Add(ctx context.Context, in *txpool_proto.AddRequest, opts ...grpc.CallOption) (*txpool_proto.AddReply, error) { + return s.server.Add(ctx, in) +} + +func (s *TxPoolClient) Transactions(ctx context.Context, in *txpool_proto.TransactionsRequest, opts ...grpc.CallOption) (*txpool_proto.TransactionsReply, error) { + return s.server.Transactions(ctx, in) +} + +func (s *TxPoolClient) All(ctx context.Context, in *txpool_proto.AllRequest, opts ...grpc.CallOption) (*txpool_proto.AllReply, error) { + return s.server.All(ctx, in) +} + +func (s *TxPoolClient) Pending(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*txpool_proto.PendingReply, error) { + return s.server.Pending(ctx, in) +} + +// -- start OnAdd + +func (s *TxPoolClient) OnAdd(ctx context.Context, in *txpool_proto.OnAddRequest, opts ...grpc.CallOption) (txpool_proto.Txpool_OnAddClient, error) { + ch := make(chan *onAddReply, 16384) + streamServer := &TxPoolOnAddS{ch: ch, ctx: ctx} + go func() { + defer close(ch) + streamServer.Err(s.server.OnAdd(in, streamServer)) + }() + return &TxPoolOnAddC{ch: ch, ctx: ctx}, nil +} + +type onAddReply struct { + r *txpool_proto.OnAddReply + err error +} + +type TxPoolOnAddS struct { + ch chan *onAddReply + ctx context.Context + grpc.ServerStream +} + +func (s *TxPoolOnAddS) Send(m *txpool_proto.OnAddReply) error { + s.ch <- &onAddReply{r: m} + return nil +} +func (s *TxPoolOnAddS) Context() context.Context { return s.ctx } +func (s *TxPoolOnAddS) Err(err error) { + if err == nil { + return + } + s.ch <- &onAddReply{err: err} +} + +type TxPoolOnAddC struct { + ch chan *onAddReply + ctx context.Context + grpc.ClientStream +} + +func (c *TxPoolOnAddC) Recv() (*txpool_proto.OnAddReply, error) { + m, ok := <-c.ch + if !ok || m == nil { + return nil, io.EOF + } + return m.r, m.err +} +func (c *TxPoolOnAddC) Context() context.Context { return c.ctx } + +// -- end OnAdd + +func (s *TxPoolClient) Status(ctx context.Context, in *txpool_proto.StatusRequest, opts ...grpc.CallOption) (*txpool_proto.StatusReply, error) { + return s.server.Status(ctx, in) +} + +func (s *TxPoolClient) Nonce(ctx context.Context, in *txpool_proto.NonceRequest, opts ...grpc.CallOption) (*txpool_proto.NonceReply, error) { + return s.server.Nonce(ctx, in) +} diff --git a/erigon-lib/downloader/downloader.go b/erigon-lib/downloader/downloader.go new file mode 100644 index 00000000000..3305455928a --- /dev/null +++ b/erigon-lib/downloader/downloader.go @@ -0,0 +1,754 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package downloader + +import ( + "context" + "errors" + "fmt" + "net/url" + "os" + "path/filepath" + "runtime" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/anacrolix/torrent" + "github.com/anacrolix/torrent/metainfo" + "github.com/anacrolix/torrent/storage" + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/log/v3" + "golang.org/x/exp/slices" + "golang.org/x/sync/errgroup" + "golang.org/x/sync/semaphore" +) + +// Downloader - component which downloading historical files. Can use BitTorrent, or other protocols +type Downloader struct { + db kv.RwDB + pieceCompletionDB storage.PieceCompletion + torrentClient *torrent.Client + + cfg *downloadercfg.Cfg + + statsLock *sync.RWMutex + stats AggStats + + folder storage.ClientImplCloser + + ctx context.Context + stopMainLoop context.CancelFunc + wg sync.WaitGroup + + webseeds *WebSeeds + logger log.Logger + verbosity log.Lvl +} + +type AggStats struct { + MetadataReady, FilesTotal int32 + PeersUnique int32 + ConnectionsTotal uint64 + + Completed bool + Progress float32 + + BytesCompleted, BytesTotal uint64 + DroppedCompleted, DroppedTotal uint64 + + BytesDownload, BytesUpload uint64 + UploadRate, DownloadRate uint64 +} + +func New(ctx context.Context, cfg *downloadercfg.Cfg, dirs datadir.Dirs, logger log.Logger, verbosity log.Lvl, discover bool) (*Downloader, error) { + db, c, m, torrentClient, err := openClient(ctx, cfg.Dirs.Downloader, cfg.Dirs.Snap, cfg.ClientConfig) + if err != nil { + return nil, fmt.Errorf("openClient: %w", err) + } + + peerID, err := readPeerID(db) + if err != nil { + return nil, fmt.Errorf("get peer id: %w", err) + } + cfg.ClientConfig.PeerID = string(peerID) + if len(peerID) == 0 { + if err = savePeerID(db, torrentClient.PeerID()); err != nil { + return nil, fmt.Errorf("save peer id: %w", err) + } + } + + d := &Downloader{ + cfg: cfg, + db: db, + pieceCompletionDB: c, + folder: m, + torrentClient: torrentClient, + statsLock: &sync.RWMutex{}, + webseeds: &WebSeeds{logger: logger, verbosity: verbosity, downloadTorrentFile: cfg.DownloadTorrentFilesFromWebseed, torrentsWhitelist: cfg.ExpectedTorrentFilesHashes}, + logger: logger, + verbosity: verbosity, + } + d.ctx, d.stopMainLoop = context.WithCancel(ctx) + + if err := d.BuildTorrentFilesIfNeed(d.ctx); err != nil { + return nil, err + } + if err := d.addTorrentFilesFromDisk(false); err != nil { + return nil, err + } + + // CornerCase: no peers -> no anoncments to trackers -> no magnetlink resolution (but magnetlink has filename) + // means we can start adding weebseeds without waiting for `<-t.GotInfo()` + d.wg.Add(1) + + go func() { + defer d.wg.Done() + if !discover { + return + } + d.webseeds.Discover(d.ctx, d.cfg.WebSeedS3Tokens, d.cfg.WebSeedUrls, d.cfg.WebSeedFiles, d.cfg.Dirs.Snap) + // webseeds.Discover may create new .torrent files on disk + if err := d.addTorrentFilesFromDisk(true); err != nil && !errors.Is(err, context.Canceled) { + d.logger.Warn("[snapshots] addTorrentFilesFromDisk", "err", err) + } + }() + return d, nil +} + +const prohibitNewDownloadsFileName = "prohibit_new_downloads.lock" + +// Erigon "download once" - means restart/upgrade/downgrade will not download files (and will be fast) +// After "download once" - Erigon will produce and seed new files +// Downloader will able: seed new files (already existing on FS), download uncomplete parts of existing files (if Verify found some bad parts) +func (d *Downloader) prohibitNewDownloads() error { + fPath := filepath.Join(d.SnapDir(), prohibitNewDownloadsFileName) + f, err := os.Create(fPath) + if err != nil { + return err + } + defer f.Close() + if err := f.Sync(); err != nil { + return err + } + return nil +} +func (d *Downloader) newDownloadsAreProhibited() bool { + return dir.FileExist(filepath.Join(d.SnapDir(), prohibitNewDownloadsFileName)) +} + +func (d *Downloader) MainLoopInBackground(silent bool) { + d.wg.Add(1) + go func() { + defer d.wg.Done() + if err := d.mainLoop(silent); err != nil { + if !errors.Is(err, context.Canceled) { + d.logger.Warn("[snapshots]", "err", err) + } + } + }() +} + +func (d *Downloader) mainLoop(silent bool) error { + var sem = semaphore.NewWeighted(int64(d.cfg.DownloadSlots)) + + d.wg.Add(1) + go func() { + defer d.wg.Done() + + // Torrents that are already taken care of + //// First loop drops torrents that were downloaded or are already complete + //// This improves efficiency of download by reducing number of active torrent (empirical observation) + //for torrents := d.torrentClient.Torrents(); len(torrents) > 0; torrents = d.torrentClient.Torrents() { + // select { + // case <-d.ctx.Done(): + // return + // default: + // } + // for _, t := range torrents { + // if _, already := torrentMap[t.InfoHash()]; already { + // continue + // } + // select { + // case <-d.ctx.Done(): + // return + // case <-t.GotInfo(): + // } + // if t.Complete.Bool() { + // atomic.AddUint64(&d.stats.DroppedCompleted, uint64(t.BytesCompleted())) + // atomic.AddUint64(&d.stats.DroppedTotal, uint64(t.Length())) + // t.Drop() + // torrentMap[t.InfoHash()] = struct{}{} + // continue + // } + // if err := sem.Acquire(d.ctx, 1); err != nil { + // return + // } + // t.AllowDataDownload() + // t.DownloadAll() + // torrentMap[t.InfoHash()] = struct{}{} + // d.wg.Add(1) + // go func(t *torrent.Torrent) { + // defer d.wg.Done() + // defer sem.Release(1) + // select { + // case <-d.ctx.Done(): + // return + // case <-t.Complete.On(): + // } + // atomic.AddUint64(&d.stats.DroppedCompleted, uint64(t.BytesCompleted())) + // atomic.AddUint64(&d.stats.DroppedTotal, uint64(t.Length())) + // t.Drop() + // }(t) + // } + //} + //atomic.StoreUint64(&d.stats.DroppedCompleted, 0) + //atomic.StoreUint64(&d.stats.DroppedTotal, 0) + //d.addTorrentFilesFromDisk(false) + for { + torrents := d.torrentClient.Torrents() + select { + case <-d.ctx.Done(): + return + default: + } + for _, t := range torrents { + if t.Complete.Bool() { + continue + } + if err := sem.Acquire(d.ctx, 1); err != nil { + return + } + t.AllowDataDownload() + select { + case <-d.ctx.Done(): + return + case <-t.GotInfo(): + } + t.DownloadAll() + d.wg.Add(1) + go func(t *torrent.Torrent) { + defer d.wg.Done() + defer sem.Release(1) + select { + case <-d.ctx.Done(): + return + case <-t.Complete.On(): + } + }(t) + } + + select { + case <-d.ctx.Done(): + return + case <-time.After(10 * time.Second): + } + } + }() + + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + + statInterval := 20 * time.Second + statEvery := time.NewTicker(statInterval) + defer statEvery.Stop() + + var m runtime.MemStats + justCompleted := true + for { + select { + case <-d.ctx.Done(): + return d.ctx.Err() + case <-statEvery.C: + d.ReCalcStats(statInterval) + + case <-logEvery.C: + if silent { + continue + } + + stats := d.Stats() + + dbg.ReadMemStats(&m) + if stats.Completed { + if justCompleted { + justCompleted = false + // force fsync of db. to not loose results of downloading on power-off + _ = d.db.Update(d.ctx, func(tx kv.RwTx) error { return nil }) + } + + d.logger.Info("[snapshots] Seeding", + "up", common.ByteCount(stats.UploadRate)+"/s", + "peers", stats.PeersUnique, + "conns", stats.ConnectionsTotal, + "files", stats.FilesTotal, + "alloc", common.ByteCount(m.Alloc), "sys", common.ByteCount(m.Sys), + ) + continue + } + + d.logger.Info("[snapshots] Downloading", + "progress", fmt.Sprintf("%.2f%% %s/%s", stats.Progress, common.ByteCount(stats.BytesCompleted), common.ByteCount(stats.BytesTotal)), + "download", common.ByteCount(stats.DownloadRate)+"/s", + "upload", common.ByteCount(stats.UploadRate)+"/s", + "peers", stats.PeersUnique, + "conns", stats.ConnectionsTotal, + "files", stats.FilesTotal, + "alloc", common.ByteCount(m.Alloc), "sys", common.ByteCount(m.Sys), + ) + + if stats.PeersUnique == 0 { + ips := d.TorrentClient().BadPeerIPs() + if len(ips) > 0 { + d.logger.Info("[snapshots] Stats", "banned", ips) + } + } + } + } +} + +func (d *Downloader) SnapDir() string { return d.cfg.Dirs.Snap } + +func (d *Downloader) ReCalcStats(interval time.Duration) { + //Call this methods outside of `statsLock` critical section, because they have own locks with contention + torrents := d.torrentClient.Torrents() + connStats := d.torrentClient.ConnStats() + peers := make(map[torrent.PeerID]struct{}, 16) + + d.statsLock.Lock() + defer d.statsLock.Unlock() + prevStats, stats := d.stats, d.stats + + stats.Completed = true + stats.BytesDownload = uint64(connStats.BytesReadUsefulIntendedData.Int64()) + stats.BytesUpload = uint64(connStats.BytesWrittenData.Int64()) + + stats.BytesTotal, stats.BytesCompleted, stats.ConnectionsTotal, stats.MetadataReady = atomic.LoadUint64(&stats.DroppedTotal), atomic.LoadUint64(&stats.DroppedCompleted), 0, 0 + + var zeroProgress []string + var noMetadata []string + + for _, t := range torrents { + select { + case <-t.GotInfo(): + stats.MetadataReady++ + peersOfThisFile := t.PeerConns() + weebseedPeersOfThisFile := t.WebseedPeerConns() + for _, peer := range peersOfThisFile { + stats.ConnectionsTotal++ + peers[peer.PeerID] = struct{}{} + } + stats.BytesCompleted += uint64(t.BytesCompleted()) + stats.BytesTotal += uint64(t.Length()) + + progress := float32(float64(100) * (float64(t.BytesCompleted()) / float64(t.Length()))) + if progress == 0 { + zeroProgress = append(zeroProgress, t.Name()) + } + + d.logger.Log(d.verbosity, "[snapshots] progress", "file", t.Name(), "progress", fmt.Sprintf("%.2f%%", progress), "peers", len(peersOfThisFile), "webseeds", len(weebseedPeersOfThisFile)) + isDiagEnabled := diagnostics.TypeOf(diagnostics.SegmentDownloadStatistics{}).Enabled() + if d.verbosity >= log.LvlInfo || isDiagEnabled { + webseedRates, websRates := getWebseedsRatesForlogs(weebseedPeersOfThisFile) + rates, peersRates := getPeersRatesForlogs(peersOfThisFile) + // more detailed statistic: download rate of each peer (for each file) + if !t.Complete.Bool() && progress != 0 { + d.logger.Info(fmt.Sprintf("[snapshots] webseed peers file=%s", t.Name()), webseedRates...) + d.logger.Info(fmt.Sprintf("[snapshots] bittorrent peers file=%s", t.Name()), rates...) + } + + if isDiagEnabled { + diagnostics.Send(diagnostics.SegmentDownloadStatistics{ + Name: t.Name(), + TotalBytes: uint64(t.Length()), + DownloadedBytes: uint64(t.BytesCompleted()), + WebseedsCount: len(weebseedPeersOfThisFile), + PeersCount: len(peersOfThisFile), + WebseedsRate: websRates, + PeersRate: peersRates, + }) + } + } + + default: + noMetadata = append(noMetadata, t.Name()) + } + + stats.Completed = stats.Completed && t.Complete.Bool() + } + + if len(noMetadata) > 0 { + amount := len(noMetadata) + if len(noMetadata) > 5 { + noMetadata = append(noMetadata[:5], "...") + } + d.logger.Log(d.verbosity, "[snapshots] no metadata yet", "files", amount, "list", strings.Join(noMetadata, ",")) + } + if len(zeroProgress) > 0 { + amount := len(zeroProgress) + if len(zeroProgress) > 5 { + zeroProgress = append(zeroProgress[:5], "...") + } + d.logger.Log(d.verbosity, "[snapshots] no progress yet", "files", amount, "list", strings.Join(zeroProgress, ",")) + } + + stats.DownloadRate = (stats.BytesDownload - prevStats.BytesDownload) / uint64(interval.Seconds()) + stats.UploadRate = (stats.BytesUpload - prevStats.BytesUpload) / uint64(interval.Seconds()) + + if stats.BytesTotal == 0 { + stats.Progress = 0 + } else { + stats.Progress = float32(float64(100) * (float64(stats.BytesCompleted) / float64(stats.BytesTotal))) + if int(stats.Progress) == 100 && !stats.Completed { + stats.Progress = 99.99 + } + } + stats.PeersUnique = int32(len(peers)) + stats.FilesTotal = int32(len(torrents)) + + d.stats = stats +} + +func getWebseedsRatesForlogs(weebseedPeersOfThisFile []*torrent.Peer) ([]interface{}, uint64) { + totalRate := uint64(0) + averageRate := uint64(0) + webseedRates := make([]interface{}, 0, len(weebseedPeersOfThisFile)*2) + for _, peer := range weebseedPeersOfThisFile { + urlS := strings.Trim(strings.TrimPrefix(peer.String(), "webseed peer for "), "\"") + if urlObj, err := url.Parse(urlS); err == nil { + if shortUrl, err := url.JoinPath(urlObj.Host, urlObj.Path); err == nil { + rate := uint64(peer.DownloadRate()) + totalRate += rate + webseedRates = append(webseedRates, shortUrl, fmt.Sprintf("%s/s", common.ByteCount(rate))) + } + } + } + + lenght := uint64(len(weebseedPeersOfThisFile)) + if lenght > 0 { + averageRate = totalRate / lenght + } + + return webseedRates, averageRate +} + +func getPeersRatesForlogs(peersOfThisFile []*torrent.PeerConn) ([]interface{}, uint64) { + totalRate := uint64(0) + averageRate := uint64(0) + rates := make([]interface{}, 0, len(peersOfThisFile)*2) + + for _, peer := range peersOfThisFile { + dr := uint64(peer.DownloadRate()) + rates = append(rates, peer.PeerClientName.Load(), fmt.Sprintf("%s/s", common.ByteCount(dr))) + totalRate += dr + } + + lenght := uint64(len(peersOfThisFile)) + if lenght > 0 { + averageRate = totalRate / uint64(len(peersOfThisFile)) + } + + return rates, averageRate +} + +func VerifyFile(ctx context.Context, t *torrent.Torrent, completePieces *atomic.Uint64) error { + select { + case <-ctx.Done(): + return ctx.Err() + case <-t.GotInfo(): + } + + g := &errgroup.Group{} + for i := 0; i < t.NumPieces(); i++ { + i := i + g.Go(func() error { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + + t.Piece(i).VerifyData() + completePieces.Add(1) + return nil + }) + //<-t.Complete.On() + } + return g.Wait() +} + +func (d *Downloader) VerifyData(ctx context.Context, onlyFiles []string) error { + total := 0 + _torrents := d.torrentClient.Torrents() + torrents := make([]*torrent.Torrent, 0, len(_torrents)) + for _, t := range torrents { + select { + case <-t.GotInfo(): + if len(onlyFiles) > 0 && !slices.Contains(onlyFiles, t.Name()) { + continue + } + torrents = append(torrents, t) + total += t.NumPieces() + case <-ctx.Done(): + return ctx.Err() + } + } + + completedPieces := &atomic.Uint64{} + + { + d.logger.Info("[snapshots] Verify start") + defer d.logger.Info("[snapshots] Verify done") + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + d.wg.Add(1) + go func() { + defer d.wg.Done() + for { + select { + case <-ctx.Done(): + return + case <-logEvery.C: + d.logger.Info("[snapshots] Verify", "progress", fmt.Sprintf("%.2f%%", 100*float64(completedPieces.Load())/float64(total))) + } + } + }() + } + + g, ctx := errgroup.WithContext(ctx) + // torrent lib internally limiting amount of hashers per file + // set limit here just to make load predictable, not to control Disk/CPU consumption + g.SetLimit(runtime.GOMAXPROCS(-1) * 4) + + for _, t := range torrents { + t := t + g.Go(func() error { + return VerifyFile(ctx, t, completedPieces) + }) + } + + if err := g.Wait(); err != nil { + return err + } + // force fsync of db. to not loose results of validation on power-off + return d.db.Update(context.Background(), func(tx kv.RwTx) error { return nil }) +} + +// AddNewSeedableFile decides what we do depending on wether we have the .seg file or the .torrent file +// have .torrent no .seg => get .seg file from .torrent +// have .seg no .torrent => get .torrent from .seg +func (d *Downloader) AddNewSeedableFile(ctx context.Context, name string) error { + ff, ok := snaptype.ParseFileName("", name) + if ok { + if !ff.Seedable() { + return nil + } + } else { + if !e3seedable(name) { + return nil + } + } + + // if we don't have the torrent file we build it if we have the .seg file + torrentFilePath, err := BuildTorrentIfNeed(ctx, name, d.SnapDir()) + if err != nil { + return fmt.Errorf("AddNewSeedableFile: %w", err) + } + ts, err := loadTorrent(torrentFilePath) + if err != nil { + return fmt.Errorf("AddNewSeedableFile: %w", err) + } + err = addTorrentFile(ctx, ts, d.torrentClient, d.webseeds) + if err != nil { + return fmt.Errorf("addTorrentFile: %w", err) + } + return nil +} + +func (d *Downloader) alreadyHaveThisName(name string) bool { + for _, t := range d.torrentClient.Torrents() { + select { + case <-t.GotInfo(): + if t.Name() == name { + return true + } + default: + } + } + return false +} + +func (d *Downloader) AddMagnetLink(ctx context.Context, infoHash metainfo.Hash, name string) error { + // Paranoic Mode on: if same file changed infoHash - skip it + // Example: + // - Erigon generated file X with hash H1. User upgraded Erigon. New version has preverified file X with hash H2. Must ignore H2 (don't send to Downloader) + if d.alreadyHaveThisName(name) { + return nil + } + if d.newDownloadsAreProhibited() { + return nil + } + + mi := &metainfo.MetaInfo{AnnounceList: Trackers} + magnet := mi.Magnet(&infoHash, &metainfo.Info{Name: name}) + spec, err := torrent.TorrentSpecFromMagnetUri(magnet.String()) + if err != nil { + return err + } + spec.DisallowDataDownload = true + t, _, err := d.torrentClient.AddTorrentSpec(spec) + if err != nil { + return err + } + d.wg.Add(1) + go func(t *torrent.Torrent) { + defer d.wg.Done() + select { + case <-ctx.Done(): + return + case <-t.GotInfo(): + } + + mi := t.Metainfo() + if err := CreateTorrentFileIfNotExists(d.SnapDir(), t.Info(), &mi); err != nil { + d.logger.Warn("[snapshots] create torrent file", "err", err) + return + } + urls, ok := d.webseeds.ByFileName(t.Name()) + if ok { + t.AddWebSeeds(urls) + } + }(t) + //log.Debug("[downloader] downloaded both seg and torrent files", "hash", infoHash) + return nil +} + +func seedableFiles(dirs datadir.Dirs) ([]string, error) { + files, err := seedableSegmentFiles(dirs.Snap) + if err != nil { + return nil, fmt.Errorf("seedableSegmentFiles: %w", err) + } + l, err := seedableSnapshotsBySubDir(dirs.Snap, "history") + if err != nil { + return nil, err + } + l2, err := seedableSnapshotsBySubDir(dirs.Snap, "warm") + if err != nil { + return nil, err + } + files = append(append(files, l...), l2...) + return files, nil +} +func (d *Downloader) addTorrentFilesFromDisk(quiet bool) error { + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + + files, err := AllTorrentSpecs(d.cfg.Dirs) + if err != nil { + return err + } + for i, ts := range files { + err := addTorrentFile(d.ctx, ts, d.torrentClient, d.webseeds) + if err != nil { + return err + } + select { + case <-logEvery.C: + if !quiet { + log.Info("[snapshots] Adding .torrent files", "progress", fmt.Sprintf("%d/%d", i, len(files))) + } + default: + } + } + return nil +} +func (d *Downloader) BuildTorrentFilesIfNeed(ctx context.Context) error { + return BuildTorrentFilesIfNeed(ctx, d.cfg.Dirs) +} +func (d *Downloader) Stats() AggStats { + d.statsLock.RLock() + defer d.statsLock.RUnlock() + return d.stats +} + +func (d *Downloader) Close() { + d.stopMainLoop() + d.wg.Wait() + d.torrentClient.Close() + if err := d.folder.Close(); err != nil { + d.logger.Warn("[snapshots] folder.close", "err", err) + } + if err := d.pieceCompletionDB.Close(); err != nil { + d.logger.Warn("[snapshots] pieceCompletionDB.close", "err", err) + } + d.db.Close() +} + +func (d *Downloader) PeerID() []byte { + peerID := d.torrentClient.PeerID() + return peerID[:] +} + +func (d *Downloader) StopSeeding(hash metainfo.Hash) error { + t, ok := d.torrentClient.Torrent(hash) + if !ok { + return nil + } + ch := t.Closed() + t.Drop() + <-ch + return nil +} + +func (d *Downloader) TorrentClient() *torrent.Client { return d.torrentClient } + +func openClient(ctx context.Context, dbDir, snapDir string, cfg *torrent.ClientConfig) (db kv.RwDB, c storage.PieceCompletion, m storage.ClientImplCloser, torrentClient *torrent.Client, err error) { + db, err = mdbx.NewMDBX(log.New()). + Label(kv.DownloaderDB). + WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { return kv.DownloaderTablesCfg }). + GrowthStep(16 * datasize.MB). + MapSize(16 * datasize.GB). + PageSize(uint64(8 * datasize.KB)). + Path(dbDir). + Open(ctx) + if err != nil { + return nil, nil, nil, nil, fmt.Errorf("torrentcfg.openClient: %w", err) + } + c, err = NewMdbxPieceCompletion(db) + if err != nil { + return nil, nil, nil, nil, fmt.Errorf("torrentcfg.NewMdbxPieceCompletion: %w", err) + } + m = storage.NewMMapWithCompletion(snapDir, c) + cfg.DefaultStorage = m + + torrentClient, err = torrent.NewClient(cfg) + if err != nil { + return nil, nil, nil, nil, fmt.Errorf("torrent.NewClient: %w", err) + } + + return db, c, m, torrentClient, nil +} diff --git a/erigon-lib/downloader/downloader_grpc_server.go b/erigon-lib/downloader/downloader_grpc_server.go new file mode 100644 index 00000000000..2787fbc280f --- /dev/null +++ b/erigon-lib/downloader/downloader_grpc_server.go @@ -0,0 +1,145 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package downloader + +import ( + "context" + "fmt" + "os" + "path/filepath" + "time" + + "github.com/anacrolix/torrent/metainfo" + "github.com/ledgerwatch/erigon-lib/gointerfaces" + proto_downloader "github.com/ledgerwatch/erigon-lib/gointerfaces/downloader" + prototypes "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "github.com/ledgerwatch/log/v3" + "google.golang.org/protobuf/types/known/emptypb" +) + +var ( + _ proto_downloader.DownloaderServer = &GrpcServer{} +) + +func NewGrpcServer(d *Downloader) (*GrpcServer, error) { + return &GrpcServer{d: d}, nil +} + +type GrpcServer struct { + proto_downloader.UnimplementedDownloaderServer + d *Downloader +} + +func (s *GrpcServer) ProhibitNewDownloads(context.Context, *proto_downloader.ProhibitNewDownloadsRequest) (*emptypb.Empty, error) { + if err := s.d.prohibitNewDownloads(); err != nil { + return nil, err + } + return nil, nil +} + +// Erigon "download once" - means restart/upgrade/downgrade will not download files (and will be fast) +// After "download once" - Erigon will produce and seed new files +// Downloader will able: seed new files (already existing on FS), download uncomplete parts of existing files (if Verify found some bad parts) +func (s *GrpcServer) Add(ctx context.Context, request *proto_downloader.AddRequest) (*emptypb.Empty, error) { + defer s.d.ReCalcStats(10 * time.Second) // immediately call ReCalc to set stat.Complete flag + + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + + for i, it := range request.Items { + if it.Path == "" { + return nil, fmt.Errorf("field 'path' is required") + } + + select { + case <-logEvery.C: + log.Info("[snapshots] initializing", "files", fmt.Sprintf("%d/%d", i, len(request.Items))) + default: + } + + if it.TorrentHash == nil { + // if we don't have the torrent hash then we seed a new snapshot + if err := s.d.AddNewSeedableFile(ctx, it.Path); err != nil { + return nil, err + } + continue + } + + if err := s.d.AddMagnetLink(ctx, Proto2InfoHash(it.TorrentHash), it.Path); err != nil { + return nil, err + } + } + return &emptypb.Empty{}, nil +} + +// Delete - stop seeding, remove file, remove .torrent +func (s *GrpcServer) Delete(ctx context.Context, request *proto_downloader.DeleteRequest) (*emptypb.Empty, error) { + defer s.d.ReCalcStats(10 * time.Second) // immediately call ReCalc to set stat.Complete flag + torrents := s.d.torrentClient.Torrents() + for _, name := range request.Paths { + if name == "" { + return nil, fmt.Errorf("field 'path' is required") + } + for _, t := range torrents { + select { + case <-t.GotInfo(): + continue + default: + } + if t.Name() == name { + t.Drop() + break + } + } + + fPath := filepath.Join(s.d.SnapDir(), name) + _ = os.Remove(fPath) + _ = os.Remove(fPath + ".torrent") + } + return &emptypb.Empty{}, nil +} + +func (s *GrpcServer) Verify(ctx context.Context, request *proto_downloader.VerifyRequest) (*emptypb.Empty, error) { + err := s.d.VerifyData(ctx, nil) + if err != nil { + return nil, err + } + return &emptypb.Empty{}, nil +} + +func (s *GrpcServer) Stats(ctx context.Context, request *proto_downloader.StatsRequest) (*proto_downloader.StatsReply, error) { + stats := s.d.Stats() + return &proto_downloader.StatsReply{ + MetadataReady: stats.MetadataReady, + FilesTotal: stats.FilesTotal, + + Completed: stats.Completed, + Progress: stats.Progress, + + PeersUnique: stats.PeersUnique, + ConnectionsTotal: stats.ConnectionsTotal, + + BytesCompleted: stats.BytesCompleted, + BytesTotal: stats.BytesTotal, + UploadRate: stats.UploadRate, + DownloadRate: stats.DownloadRate, + }, nil +} + +func Proto2InfoHash(in *prototypes.H160) metainfo.Hash { + return gointerfaces.ConvertH160toAddress(in) +} diff --git a/erigon-lib/downloader/downloader_test.go b/erigon-lib/downloader/downloader_test.go new file mode 100644 index 00000000000..f94e3fa0d4b --- /dev/null +++ b/erigon-lib/downloader/downloader_test.go @@ -0,0 +1,66 @@ +package downloader + +import ( + "context" + "path/filepath" + "testing" + + lg "github.com/anacrolix/log" + "github.com/ledgerwatch/erigon-lib/common/datadir" + downloadercfg2 "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" +) + +func TestChangeInfoHashOfSameFile(t *testing.T) { + require := require.New(t) + dirs := datadir.New(t.TempDir()) + cfg, err := downloadercfg2.New(dirs, "", lg.Info, 0, 0, 0, 0, 0, nil, nil, "testnet") + require.NoError(err) + d, err := New(context.Background(), cfg, dirs, log.New(), log.LvlInfo, true) + require.NoError(err) + defer d.Close() + err = d.AddMagnetLink(d.ctx, snaptype.Hex2InfoHash("aa"), "a.seg") + require.NoError(err) + tt, ok := d.torrentClient.Torrent(snaptype.Hex2InfoHash("aa")) + require.True(ok) + require.Equal("a.seg", tt.Name()) + + // adding same file twice is ok + err = d.AddMagnetLink(d.ctx, snaptype.Hex2InfoHash("aa"), "a.seg") + require.NoError(err) + + // adding same file with another infoHash - is ok, must be skipped + // use-cases: + // - release of re-compressed version of same file, + // - ErigonV1.24 produced file X, then ErigonV1.25 released with new compression algorithm and produced X with anouther infoHash. + // ErigonV1.24 node must keep using existing file instead of downloading new one. + err = d.AddMagnetLink(d.ctx, snaptype.Hex2InfoHash("bb"), "a.seg") + require.NoError(err) + tt, ok = d.torrentClient.Torrent(snaptype.Hex2InfoHash("aa")) + require.True(ok) + require.Equal("a.seg", tt.Name()) +} + +func TestNoEscape(t *testing.T) { + require := require.New(t) + dirs := datadir.New(t.TempDir()) + ctx := context.Background() + + // allow adding files only if they are inside snapshots dir + _, err := BuildTorrentIfNeed(ctx, "a.seg", dirs.Snap) + require.NoError(err) + _, err = BuildTorrentIfNeed(ctx, "b/a.seg", dirs.Snap) + require.NoError(err) + _, err = BuildTorrentIfNeed(ctx, filepath.Join(dirs.Snap, "a.seg"), dirs.Snap) + require.NoError(err) + _, err = BuildTorrentIfNeed(ctx, filepath.Join(dirs.Snap, "b", "a.seg"), dirs.Snap) + require.NoError(err) + + // reject escaping snapshots dir + _, err = BuildTorrentIfNeed(ctx, filepath.Join(dirs.Chaindata, "b", "a.seg"), dirs.Snap) + require.Error(err) + _, err = BuildTorrentIfNeed(ctx, "./../a.seg", dirs.Snap) + require.Error(err) +} diff --git a/erigon-lib/downloader/downloadercfg/downloadercfg.go b/erigon-lib/downloader/downloadercfg/downloadercfg.go new file mode 100644 index 00000000000..335429714c3 --- /dev/null +++ b/erigon-lib/downloader/downloadercfg/downloadercfg.go @@ -0,0 +1,212 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package downloadercfg + +import ( + "io/ioutil" + "net" + "net/url" + "path/filepath" + "runtime" + "strings" + "time" + + "github.com/anacrolix/dht/v2" + lg "github.com/anacrolix/log" + "github.com/anacrolix/torrent" + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/log/v3" + "golang.org/x/time/rate" +) + +// DefaultPieceSize - Erigon serves many big files, bigger pieces will reduce +// amount of network announcements, but can't go over 2Mb +// see https://wiki.theory.org/BitTorrentSpecification#Metainfo_File_Structure +const DefaultPieceSize = 2 * 1024 * 1024 + +// DefaultNetworkChunkSize - how much data request per 1 network call to peer. +// default: 16Kb +const DefaultNetworkChunkSize = 256 * 1024 + +type Cfg struct { + ClientConfig *torrent.ClientConfig + DownloadSlots int + + WebSeedUrls []*url.URL + WebSeedFiles []string + WebSeedS3Tokens []string + ExpectedTorrentFilesHashes snapcfg.Preverified + DownloadTorrentFilesFromWebseed bool + ChainName string + + Dirs datadir.Dirs +} + +func Default() *torrent.ClientConfig { + torrentConfig := torrent.NewDefaultClientConfig() + // better don't increase because erigon periodically producing "new seedable files" - and adding them to downloader. + // it must not impact chain tip sync - so, limit resources to minimum by default. + // but when downloader is started as a separated process - rise it to max + //torrentConfig.PieceHashersPerTorrent = cmp.Max(1, runtime.NumCPU()-1) + + torrentConfig.MinDialTimeout = 6 * time.Second //default: 3s + torrentConfig.HandshakesTimeout = 8 * time.Second //default: 4s + + // enable dht + torrentConfig.NoDHT = true + //torrentConfig.DisableTrackers = true + //torrentConfig.DisableWebtorrent = true + + // Reduce defaults - to avoid peers with very bad geography + //torrentConfig.MinDialTimeout = 1 * time.Second // default: 3sec + //torrentConfig.NominalDialTimeout = 10 * time.Second // default: 20sec + //torrentConfig.HandshakesTimeout = 1 * time.Second // default: 4sec + + // see: https://en.wikipedia.org/wiki/TCP_half-open + //torrentConfig.TotalHalfOpenConns = 100 // default: 100 + //torrentConfig.HalfOpenConnsPerTorrent = 25 // default: 25 + //torrentConfig.TorrentPeersHighWater = 500 // default: 500 + //torrentConfig.TorrentPeersLowWater = 50 // default: 50 + + torrentConfig.Seed = true + torrentConfig.UpnpID = torrentConfig.UpnpID + "leecher" + + return torrentConfig +} + +func New(dirs datadir.Dirs, version string, verbosity lg.Level, downloadRate, uploadRate datasize.ByteSize, port, connsPerFile, downloadSlots int, staticPeers, webseeds []string, chainName string) (*Cfg, error) { + torrentConfig := Default() + torrentConfig.DataDir = dirs.Snap // `DataDir` of torrent-client-lib is different from Erigon's `DataDir`. Just same naming. + + torrentConfig.ExtendedHandshakeClientVersion = version + + // We would-like to reduce amount of goroutines in Erigon, so reducing next params + torrentConfig.EstablishedConnsPerTorrent = connsPerFile // default: 50 + + torrentConfig.ListenPort = port + // check if ipv6 is enabled + torrentConfig.DisableIPv6 = !getIpv6Enabled() + + torrentConfig.UploadRateLimiter = rate.NewLimiter(rate.Limit(uploadRate.Bytes()), DefaultNetworkChunkSize) // default: unlimited + if downloadRate.Bytes() < 500_000_000 { + torrentConfig.DownloadRateLimiter = rate.NewLimiter(rate.Limit(downloadRate.Bytes()), DefaultNetworkChunkSize) // default: unlimited + } + + // debug + //torrentConfig.Debug = true + torrentConfig.Logger = torrentConfig.Logger.WithFilterLevel(verbosity) + torrentConfig.Logger.SetHandlers(adapterHandler{}) + + if len(staticPeers) > 0 { + torrentConfig.NoDHT = false + //defaultNodes := torrentConfig.DhtStartingNodes + torrentConfig.DhtStartingNodes = func(network string) dht.StartingNodesGetter { + return func() ([]dht.Addr, error) { + addrs, err := dht.GlobalBootstrapAddrs(network) + if err != nil { + return nil, err + } + + for _, seed := range staticPeers { + if network == "udp" { + var addr *net.UDPAddr + addr, err := net.ResolveUDPAddr(network, seed+":80") + if err != nil { + log.Warn("[downloader] Cannot UDP resolve address", "network", network, "addr", seed) + continue + } + addrs = append(addrs, dht.NewAddr(addr)) + } + if network == "tcp" { + var addr *net.TCPAddr + addr, err := net.ResolveTCPAddr(network, seed+":80") + if err != nil { + log.Warn("[downloader] Cannot TCP resolve address", "network", network, "addr", seed) + continue + } + addrs = append(addrs, dht.NewAddr(addr)) + } + } + return addrs, nil + } + } + //staticPeers + } + + webseedUrlsOrFiles := webseeds + webseedHttpProviders := make([]*url.URL, 0, len(webseedUrlsOrFiles)) + webseedFileProviders := make([]string, 0, len(webseedUrlsOrFiles)) + webseedS3Providers := make([]string, 0, len(webseedUrlsOrFiles)) + for _, webseed := range webseedUrlsOrFiles { + if !strings.HasPrefix(webseed, "v") { // has marker v1/v2/... + uri, err := url.ParseRequestURI(webseed) + if err != nil { + if strings.HasSuffix(webseed, ".toml") && dir.FileExist(webseed) { + webseedFileProviders = append(webseedFileProviders, webseed) + } + continue + } + webseedHttpProviders = append(webseedHttpProviders, uri) + continue + } + + if strings.HasPrefix(webseed, "v1:") { + withoutVerisonPrefix := webseed[3:] + if !strings.HasPrefix(withoutVerisonPrefix, "https:") { + webseedS3Providers = append(webseedS3Providers, webseed) + continue + } + uri, err := url.ParseRequestURI(withoutVerisonPrefix) + if err != nil { + log.Warn("[webseed] can't parse url", "err", err, "url", withoutVerisonPrefix) + continue + } + webseedHttpProviders = append(webseedHttpProviders, uri) + } else { + continue + } + } + localCfgFile := filepath.Join(dirs.DataDir, "webseed.toml") // datadir/webseed.toml allowed + if dir.FileExist(localCfgFile) { + webseedFileProviders = append(webseedFileProviders, localCfgFile) + } + //TODO: if don't pass "downloaded files list here" (which we store in db) - synced erigon will download new .torrent files. And erigon can't work with "unfinished" files. + snapCfg := snapcfg.KnownCfg(chainName) + return &Cfg{Dirs: dirs, ChainName: chainName, + ClientConfig: torrentConfig, DownloadSlots: downloadSlots, + WebSeedUrls: webseedHttpProviders, WebSeedFiles: webseedFileProviders, WebSeedS3Tokens: webseedS3Providers, + DownloadTorrentFilesFromWebseed: false, ExpectedTorrentFilesHashes: snapCfg.Preverified, + }, nil +} + +func getIpv6Enabled() bool { + if runtime.GOOS == "linux" { + file, err := ioutil.ReadFile("/sys/module/ipv6/parameters/disable") + if err != nil { + log.Warn("could not read /sys/module/ipv6/parameters/disable for ipv6 detection") + return false + } + fileContent := strings.TrimSpace(string(file)) + return fileContent != "0" + } + + // TODO hotfix: for platforms other than linux disable ipv6 + return false +} diff --git a/erigon-lib/downloader/downloadercfg/logger.go b/erigon-lib/downloader/downloadercfg/logger.go new file mode 100644 index 00000000000..88eb5dcabfa --- /dev/null +++ b/erigon-lib/downloader/downloadercfg/logger.go @@ -0,0 +1,138 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package downloadercfg + +import ( + "fmt" + "strings" + + lg "github.com/anacrolix/log" + "github.com/ledgerwatch/log/v3" +) + +func init() { + lg.Default.Handlers = []lg.Handler{adapterHandler{}} +} + +func Int2LogLevel(level int) (lvl lg.Level, dbg bool, err error) { + switch level { + case 0: + lvl = lg.Critical + case 1: + lvl = lg.Error + case 2: + lvl = lg.Warning + case 3: + lvl = lg.Info + case 4: + lvl = lg.Debug + case 5: + lvl = lg.Debug + dbg = true + default: + return lvl, dbg, fmt.Errorf("invalid level set, expected a number between 0-5 but got: %d", level) + } + return lvl, dbg, nil +} + +type noopHandler struct{} + +func (b noopHandler) Handle(r lg.Record) { +} + +type adapterHandler struct{} + +func (b adapterHandler) Handle(r lg.Record) { + lvl := r.Level + + switch lvl { + case lg.Debug: + str := r.String() + skip := strings.Contains(str, "completion change") || strings.Contains(str, "hashed piece") || + strings.Contains(str, "set torrent=") || + strings.Contains(str, "all initial dials failed") || + strings.Contains(str, "local and remote peer ids are the same") || + strings.Contains(str, "connection at") || strings.Contains(str, "don't want conns right now") || + strings.Contains(str, "is mutually complete") || + strings.Contains(str, "sending PEX message") || strings.Contains(str, "received pex message") || + strings.Contains(str, "announce to") || strings.Contains(str, "announcing to") || + strings.Contains(str, "EOF") || strings.Contains(str, "closed") || strings.Contains(str, "connection reset by peer") || strings.Contains(str, "use of closed network connection") || strings.Contains(str, "broken pipe") || + strings.Contains(str, "inited with remoteAddr") + if skip { + log.Trace(str, "lvl", lvl.LogString()) + break + } + log.Debug(str) + case lg.Info: + str := r.String() + skip := strings.Contains(str, "EOF") + //strings.Contains(str, "banning ip ") || + //strings.Contains(str, "spurious timer") { // suppress useless errors + if skip { + log.Trace(str, "lvl", lvl.LogString()) + break + } + log.Info(str) + case lg.Warning: + str := r.String() + skip := strings.Contains(str, "EOF") || + strings.Contains(str, "requested chunk too long") || + strings.Contains(str, "banned ip") || + strings.Contains(str, "banning webseed") || + strings.Contains(str, "TrackerClient closed") || + strings.Contains(str, "being sole dirtier of piece") || + strings.Contains(str, "webrtc conn for unloaded torrent") || + strings.Contains(str, "could not find offer for id") || + strings.Contains(str, "received invalid reject") || + strings.Contains(str, "reservation cancelled") + + if skip { + log.Trace(str) + break + } + log.Warn(str) + case lg.Error: + str := r.String() + skip := strings.Contains(str, "EOF") || + strings.Contains(str, "short write") || + strings.Contains(str, "disabling data download") + if skip { + log.Trace(str, "lvl", lvl.LogString()) + break + } + log.Error(str) + case lg.Critical: + str := r.String() + skip := strings.Contains(str, "EOF") || + strings.Contains(str, "torrent closed") || + strings.Contains(str, "don't want conns") + if skip { + log.Trace(str, "lvl", lvl.LogString()) + break + } + log.Error(str) + default: + str := r.String() + skip := strings.Contains(str, "EOF") || strings.Contains(str, "unhandled response status") || + strings.Contains(str, "error doing webseed request") + if skip { + log.Trace(str, "lvl", lvl.LogString()) + break + } + log.Info("[downloader] "+r.String(), "torrent_log_type", "unknown", "or", lvl.LogString()) + } +} diff --git a/erigon-lib/downloader/downloadercfg/logger_libutp.go b/erigon-lib/downloader/downloadercfg/logger_libutp.go new file mode 100644 index 00000000000..8e0f1a370f2 --- /dev/null +++ b/erigon-lib/downloader/downloadercfg/logger_libutp.go @@ -0,0 +1,27 @@ +//go:build !disable_libutp + +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package downloadercfg + +import ( + utp "github.com/anacrolix/go-libutp" + lg "github.com/anacrolix/log" +) + +func init() { + utp.Logger.Handlers = []lg.Handler{noopHandler{}} +} diff --git a/erigon-lib/downloader/downloadergrpc/client.go b/erigon-lib/downloader/downloadergrpc/client.go new file mode 100644 index 00000000000..c5a85230f78 --- /dev/null +++ b/erigon-lib/downloader/downloadergrpc/client.go @@ -0,0 +1,82 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package downloadergrpc + +import ( + "context" + "encoding/hex" + "fmt" + "time" + + "github.com/anacrolix/torrent/metainfo" + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/gointerfaces" + proto_downloader "github.com/ledgerwatch/erigon-lib/gointerfaces/downloader" + prototypes "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "google.golang.org/grpc" + "google.golang.org/grpc/backoff" + "google.golang.org/grpc/credentials/insecure" + "google.golang.org/grpc/keepalive" +) + +func NewClient(ctx context.Context, downloaderAddr string) (proto_downloader.DownloaderClient, error) { + // creating grpc client connection + var dialOpts []grpc.DialOption + + backoffCfg := backoff.DefaultConfig + backoffCfg.BaseDelay = 500 * time.Millisecond + backoffCfg.MaxDelay = 10 * time.Second + dialOpts = []grpc.DialOption{ + grpc.WithConnectParams(grpc.ConnectParams{Backoff: backoffCfg, MinConnectTimeout: 10 * time.Minute}), + grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(int(16 * datasize.MB))), + grpc.WithKeepaliveParams(keepalive.ClientParameters{}), + } + + dialOpts = append(dialOpts, grpc.WithTransportCredentials(insecure.NewCredentials())) + conn, err := grpc.DialContext(ctx, downloaderAddr, dialOpts...) + if err != nil { + return nil, fmt.Errorf("creating client connection to sentry P2P: %w", err) + } + return proto_downloader.NewDownloaderClient(conn), nil +} + +func InfoHashes2Proto(in []metainfo.Hash) []*prototypes.H160 { + infoHashes := make([]*prototypes.H160, len(in)) + i := 0 + for _, h := range in { + infoHashes[i] = gointerfaces.ConvertAddressToH160(h) + i++ + } + return infoHashes +} + +func Strings2Proto(in []string) []*prototypes.H160 { + infoHashes := make([]*prototypes.H160, len(in)) + i := 0 + for _, h := range in { + infoHashes[i] = String2Proto(h) + i++ + } + return infoHashes +} + +func String2Proto(in string) *prototypes.H160 { + var infoHash [20]byte + inHex, _ := hex.DecodeString(in) + copy(infoHash[:], inHex) + return gointerfaces.ConvertAddressToH160(infoHash) +} diff --git a/erigon-lib/downloader/mdbx_piece_completion.go b/erigon-lib/downloader/mdbx_piece_completion.go new file mode 100644 index 00000000000..6f209cd19c9 --- /dev/null +++ b/erigon-lib/downloader/mdbx_piece_completion.go @@ -0,0 +1,117 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package downloader + +import ( + "context" + "encoding/binary" + + "github.com/anacrolix/torrent/metainfo" + "github.com/anacrolix/torrent/storage" + "github.com/anacrolix/torrent/types/infohash" + "github.com/ledgerwatch/erigon-lib/kv" +) + +const ( + complete = "c" + incomplete = "i" +) + +type mdbxPieceCompletion struct { + db kv.RwDB +} + +var _ storage.PieceCompletion = (*mdbxPieceCompletion)(nil) + +func NewMdbxPieceCompletion(db kv.RwDB) (ret storage.PieceCompletion, err error) { + ret = &mdbxPieceCompletion{db: db} + return +} + +func (m mdbxPieceCompletion) Get(pk metainfo.PieceKey) (cn storage.Completion, err error) { + err = m.db.View(context.Background(), func(tx kv.Tx) error { + var key [infohash.Size + 4]byte + copy(key[:], pk.InfoHash[:]) + binary.BigEndian.PutUint32(key[infohash.Size:], uint32(pk.Index)) + cn.Ok = true + v, err := tx.GetOne(kv.BittorrentCompletion, key[:]) + if err != nil { + return err + } + switch string(v) { + case complete: + cn.Complete = true + case incomplete: + cn.Complete = false + default: + cn.Ok = false + } + return nil + }) + return +} + +func (m mdbxPieceCompletion) Set(pk metainfo.PieceKey, b bool) error { + if c, err := m.Get(pk); err == nil && c.Ok && c.Complete == b { + return nil + } + + var tx kv.RwTx + var err error + // On power-off recent "no-sync" txs may be lost. + // It will cause 2 cases of in-consistency between files on disk and db metadata: + // - Good piece on disk and recent "complete" db marker lost. Self-Heal by re-download. + // - Bad piece on disk and recent "incomplete" db marker lost. No Self-Heal. Means: can't afford loosing recent "incomplete" markers. + // FYI: Fsync of torrent pieces happenng before storing db markers: https://github.com/anacrolix/torrent/blob/master/torrent.go#L2026 + // + // Mainnet stats: + // call amount 2 minutes complete=100K vs incomple=1K + // 1K fsyncs/2minutes it's quite expensive, but even on cloud (high latency) drive it allow download 100mb/s + // and Erigon doesn't do anything when downloading snapshots + if b { + tx, err = m.db.BeginRwNosync(context.Background()) + if err != nil { + return err + } + } else { + tx, err = m.db.BeginRw(context.Background()) + if err != nil { + return err + } + } + defer tx.Rollback() + + var key [infohash.Size + 4]byte + copy(key[:], pk.InfoHash[:]) + binary.BigEndian.PutUint32(key[infohash.Size:], uint32(pk.Index)) + + v := []byte(incomplete) + if b { + v = []byte(complete) + } + err = tx.Put(kv.BittorrentCompletion, key[:], v) + if err != nil { + return err + } + + return tx.Commit() +} + +func (m *mdbxPieceCompletion) Close() error { + m.db.Close() + return nil +} diff --git a/erigon-lib/downloader/mdbx_piece_completion_test.go b/erigon-lib/downloader/mdbx_piece_completion_test.go new file mode 100644 index 00000000000..c2035501ad4 --- /dev/null +++ b/erigon-lib/downloader/mdbx_piece_completion_test.go @@ -0,0 +1,53 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package downloader + +import ( + "testing" + + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/anacrolix/torrent/metainfo" + "github.com/anacrolix/torrent/storage" +) + +func TestMdbxPieceCompletion(t *testing.T) { + db := memdb.NewTestDownloaderDB(t) + pc, err := NewMdbxPieceCompletion(db) + require.NoError(t, err) + defer pc.Close() + + pk := metainfo.PieceKey{} + + b, err := pc.Get(pk) + require.NoError(t, err) + assert.False(t, b.Ok) + + require.NoError(t, pc.Set(pk, false)) + + b, err = pc.Get(pk) + require.NoError(t, err) + assert.Equal(t, storage.Completion{Complete: false, Ok: true}, b) + + require.NoError(t, pc.Set(pk, true)) + + b, err = pc.Get(pk) + require.NoError(t, err) + assert.Equal(t, storage.Completion{Complete: true, Ok: true}, b) +} diff --git a/erigon-lib/downloader/path.go b/erigon-lib/downloader/path.go new file mode 100644 index 00000000000..06ba51865b4 --- /dev/null +++ b/erigon-lib/downloader/path.go @@ -0,0 +1,272 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package filepath implements utility routines for manipulating filename paths +// in a way compatible with the target operating system-defined file paths. +// +// The filepath package uses either forward slashes or backslashes, +// depending on the operating system. To process paths such as URLs +// that always use forward slashes regardless of the operating +// system, see the path package. +package downloader + +import ( + "io/fs" + "os" + "runtime" + "strings" +) + +// A lazybuf is a lazily constructed path buffer. +// It supports append, reading previously appended bytes, +// and retrieving the final string. It does not allocate a buffer +// to hold the output until that output diverges from s. +type lazybuf struct { + path string + buf []byte + w int + volAndPath string + volLen int +} + +func (b *lazybuf) index(i int) byte { + if b.buf != nil { + return b.buf[i] + } + return b.path[i] +} + +func (b *lazybuf) append(c byte) { + if b.buf == nil { + if b.w < len(b.path) && b.path[b.w] == c { + b.w++ + return + } + b.buf = make([]byte, len(b.path)) + copy(b.buf, b.path[:b.w]) + } + b.buf[b.w] = c + b.w++ +} + +func (b *lazybuf) string() string { + if b.buf == nil { + return b.volAndPath[:b.volLen+b.w] + } + return b.volAndPath[:b.volLen] + string(b.buf[:b.w]) +} + +const ( + Separator = os.PathSeparator + ListSeparator = os.PathListSeparator +) + +// Clean returns the shortest path name equivalent to path +// by purely lexical processing. It applies the following rules +// iteratively until no further processing can be done: +// +// 1. Replace multiple Separator elements with a single one. +// 2. Eliminate each . path name element (the current directory). +// 3. Eliminate each inner .. path name element (the parent directory) +// along with the non-.. element that precedes it. +// 4. Eliminate .. elements that begin a rooted path: +// that is, replace "/.." by "/" at the beginning of a path, +// assuming Separator is '/'. +// +// The returned path ends in a slash only if it represents a root directory, +// such as "/" on Unix or `C:\` on Windows. +// +// Finally, any occurrences of slash are replaced by Separator. +// +// If the result of this process is an empty string, Clean +// returns the string ".". +// +// See also Rob Pike, “Lexical File Names in Plan 9 or +// Getting Dot-Dot Right,” +// https://9p.io/sys/doc/lexnames.html +func Clean(path string) string { + originalPath := path + volLen := volumeNameLen(path) + path = path[volLen:] + if path == "" { + if volLen > 1 && os.IsPathSeparator(originalPath[0]) && os.IsPathSeparator(originalPath[1]) { + // should be UNC + return FromSlash(originalPath) + } + return originalPath + "." + } + rooted := os.IsPathSeparator(path[0]) + + // Invariants: + // reading from path; r is index of next byte to process. + // writing to buf; w is index of next byte to write. + // dotdot is index in buf where .. must stop, either because + // it is the leading slash or it is a leading ../../.. prefix. + n := len(path) + out := lazybuf{path: path, volAndPath: originalPath, volLen: volLen} + r, dotdot := 0, 0 + if rooted { + out.append(Separator) + r, dotdot = 1, 1 + } + + for r < n { + switch { + case os.IsPathSeparator(path[r]): + // empty path element + r++ + case path[r] == '.' && (r+1 == n || os.IsPathSeparator(path[r+1])): + // . element + r++ + case path[r] == '.' && path[r+1] == '.' && (r+2 == n || os.IsPathSeparator(path[r+2])): + // .. element: remove to last separator + r += 2 + switch { + case out.w > dotdot: + // can backtrack + out.w-- + for out.w > dotdot && !os.IsPathSeparator(out.index(out.w)) { + out.w-- + } + case !rooted: + // cannot backtrack, but not rooted, so append .. element. + if out.w > 0 { + out.append(Separator) + } + out.append('.') + out.append('.') + dotdot = out.w + } + default: + // real path element. + // add slash if needed + if rooted && out.w != 1 || !rooted && out.w != 0 { + out.append(Separator) + } + // If a ':' appears in the path element at the start of a Windows path, + // insert a .\ at the beginning to avoid converting relative paths + // like a/../c: into c:. + if runtime.GOOS == "windows" && out.w == 0 && out.volLen == 0 && r != 0 { + for i := r; i < n && !os.IsPathSeparator(path[i]); i++ { + if path[i] == ':' { + out.append('.') + out.append(Separator) + break + } + } + } + // copy element + for ; r < n && !os.IsPathSeparator(path[r]); r++ { + out.append(path[r]) + } + } + } + + // Turn empty string into "." + if out.w == 0 { + out.append('.') + } + + return FromSlash(out.string()) +} + +func unixIsLocal(path string) bool { + if IsAbs(path) || path == "" { + return false + } + hasDots := false + for p := path; p != ""; { + var part string + part, p, _ = strings.Cut(p, "/") + if part == "." || part == ".." { + hasDots = true + break + } + } + if hasDots { + path = Clean(path) + } + if path == ".." || strings.HasPrefix(path, "../") { + return false + } + return true +} + +// FromSlash returns the result of replacing each slash ('/') character +// in path with a separator character. Multiple slashes are replaced +// by multiple separators. +func FromSlash(path string) string { + if Separator == '/' { + return path + } + return strings.ReplaceAll(path, "/", string(Separator)) +} + +// Join joins any number of path elements into a single path, +// separating them with an OS specific Separator. Empty elements +// are ignored. The result is Cleaned. However, if the argument +// list is empty or all its elements are empty, Join returns +// an empty string. +// On Windows, the result will only be a UNC path if the first +// non-empty element is a UNC path. +func Join(elem ...string) string { + return join(elem) +} + +// nolint +func unixAbs(path string) (string, error) { + if IsAbs(path) { + return Clean(path), nil + } + wd, err := os.Getwd() + if err != nil { + return "", err + } + return Join(wd, path), nil +} + +// SkipDir is used as a return value from WalkFuncs to indicate that +// the directory named in the call is to be skipped. It is not returned +// as an error by any function. +var SkipDir error = fs.SkipDir + +// WalkFunc is the type of the function called by Walk to visit each +// file or directory. +// +// The path argument contains the argument to Walk as a prefix. +// That is, if Walk is called with root argument "dir" and finds a file +// named "a" in that directory, the walk function will be called with +// argument "dir/a". +// +// The directory and file are joined with Join, which may clean the +// directory name: if Walk is called with the root argument "x/../dir" +// and finds a file named "a" in that directory, the walk function will +// be called with argument "dir/a", not "x/../dir/a". +// +// The info argument is the fs.FileInfo for the named path. +// +// The error result returned by the function controls how Walk continues. +// If the function returns the special value SkipDir, Walk skips the +// current directory (path if info.IsDir() is true, otherwise path's +// parent directory). If the function returns the special value SkipAll, +// Walk skips all remaining files and directories. Otherwise, if the function +// returns a non-nil error, Walk stops entirely and returns that error. +// +// The err argument reports an error related to path, signaling that Walk +// will not walk into that directory. The function can decide how to +// handle that error; as described earlier, returning the error will +// cause Walk to stop walking the entire tree. +// +// Walk calls the function with a non-nil err argument in two cases. +// +// First, if an os.Lstat on the root directory or any directory or file +// in the tree fails, Walk calls the function with path set to that +// directory or file's path, info set to nil, and err set to the error +// from os.Lstat. +// +// Second, if a directory's Readdirnames method fails, Walk calls the +// function with path set to the directory's path, info, set to an +// fs.FileInfo describing the directory, and err set to the error from +// Readdirnames. +type WalkFunc func(path string, info fs.FileInfo, err error) error diff --git a/erigon-lib/downloader/path_plan9.go b/erigon-lib/downloader/path_plan9.go new file mode 100644 index 00000000000..01cb95fc933 --- /dev/null +++ b/erigon-lib/downloader/path_plan9.go @@ -0,0 +1,55 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package downloader + +import "strings" + +func isLocal(path string) bool { + return unixIsLocal(path) +} + +// IsAbs reports whether the path is absolute. +func IsAbs(path string) bool { + return strings.HasPrefix(path, "/") || strings.HasPrefix(path, "#") +} + +// volumeNameLen returns length of the leading volume name on Windows. +// It returns 0 elsewhere. +func volumeNameLen(path string) int { + return 0 +} + +// HasPrefix exists for historical compatibility and should not be used. +// +// Deprecated: HasPrefix does not respect path boundaries and +// does not ignore case when required. +func HasPrefix(p, prefix string) bool { + return strings.HasPrefix(p, prefix) +} + +func splitList(path string) []string { + if path == "" { + return []string{} + } + return strings.Split(path, string(ListSeparator)) +} + +func abs(path string) (string, error) { + return unixAbs(path) +} + +func join(elem []string) string { + // If there's a bug here, fix the logic in ./path_unix.go too. + for i, e := range elem { + if e != "" { + return Clean(strings.Join(elem[i:], string(Separator))) + } + } + return "" +} + +func sameWord(a, b string) bool { + return a == b +} diff --git a/erigon-lib/downloader/path_unix.go b/erigon-lib/downloader/path_unix.go new file mode 100644 index 00000000000..cb3b3bcd491 --- /dev/null +++ b/erigon-lib/downloader/path_unix.go @@ -0,0 +1,34 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build unix || (js && wasm) + +package downloader + +import "strings" + +func isLocal(path string) bool { + return unixIsLocal(path) +} + +// IsAbs reports whether the path is absolute. +func IsAbs(path string) bool { + return strings.HasPrefix(path, "/") +} + +// volumeNameLen returns length of the leading volume name on Windows. +// It returns 0 elsewhere. +func volumeNameLen(path string) int { + return 0 +} + +func join(elem []string) string { + // If there's a bug here, fix the logic in ./path_plan9.go too. + for i, e := range elem { + if e != "" { + return Clean(strings.Join(elem[i:], string(Separator))) + } + } + return "" +} diff --git a/erigon-lib/downloader/path_windows.go b/erigon-lib/downloader/path_windows.go new file mode 100644 index 00000000000..f5f4a01d905 --- /dev/null +++ b/erigon-lib/downloader/path_windows.go @@ -0,0 +1,306 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package downloader + +import ( + "strings" + "syscall" +) + +func isSlash(c uint8) bool { + return c == '\\' || c == '/' +} + +func toUpper(c byte) byte { + if 'a' <= c && c <= 'z' { + return c - ('a' - 'A') + } + return c +} + +// isReservedName reports if name is a Windows reserved device name or a console handle. +// It does not detect names with an extension, which are also reserved on some Windows versions. +// +// For details, search for PRN in +// https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file. +func isReservedName(name string) bool { + if 3 <= len(name) && len(name) <= 4 { + switch string([]byte{toUpper(name[0]), toUpper(name[1]), toUpper(name[2])}) { + case "CON", "PRN", "AUX", "NUL": + return len(name) == 3 + case "COM", "LPT": + return len(name) == 4 && '1' <= name[3] && name[3] <= '9' + } + } + // Passing CONIN$ or CONOUT$ to CreateFile opens a console handle. + // https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilea#consoles + // + // While CONIN$ and CONOUT$ aren't documented as being files, + // they behave the same as CON. For example, ./CONIN$ also opens the console input. + if len(name) == 6 && name[5] == '$' && strings.EqualFold(name, "CONIN$") { + return true + } + if len(name) == 7 && name[6] == '$' && strings.EqualFold(name, "CONOUT$") { + return true + } + return false +} + +func isLocal(path string) bool { + if path == "" { + return false + } + if isSlash(path[0]) { + // Path rooted in the current drive. + return false + } + if strings.IndexByte(path, ':') >= 0 { + // Colons are only valid when marking a drive letter ("C:foo"). + // Rejecting any path with a colon is conservative but safe. + return false + } + hasDots := false // contains . or .. path elements + for p := path; p != ""; { + var part string + part, p, _ = cutPath(p) + if part == "." || part == ".." { + hasDots = true + } + // Trim the extension and look for a reserved name. + base, _, hasExt := strings.Cut(part, ".") + if isReservedName(base) { + if !hasExt { + return false + } + // The path element is a reserved name with an extension. Some Windows + // versions consider this a reserved name, while others do not. Use + // FullPath to see if the name is reserved. + // + // FullPath will convert references to reserved device names to their + // canonical form: \\.\${DEVICE_NAME} + // + // FullPath does not perform this conversion for paths which contain + // a reserved device name anywhere other than in the last element, + // so check the part rather than the full path. + if p, _ := syscall.FullPath(part); len(p) >= 4 && p[:4] == `\\.\` { + return false + } + } + } + if hasDots { + path = Clean(path) + } + if path == ".." || strings.HasPrefix(path, `..\`) { + return false + } + return true +} + +// IsAbs reports whether the path is absolute. +func IsAbs(path string) (b bool) { + l := volumeNameLen(path) + if l == 0 { + return false + } + // If the volume name starts with a double slash, this is an absolute path. + if isSlash(path[0]) && isSlash(path[1]) { + return true + } + path = path[l:] + if path == "" { + return false + } + return isSlash(path[0]) +} + +// volumeNameLen returns length of the leading volume name on Windows. +// It returns 0 elsewhere. +// +// See: https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats +func volumeNameLen(path string) int { + if len(path) < 2 { + return 0 + } + // with drive letter + c := path[0] + if path[1] == ':' && ('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z') { + return 2 + } + // UNC and DOS device paths start with two slashes. + if !isSlash(path[0]) || !isSlash(path[1]) { + return 0 + } + rest := path[2:] + p1, rest, _ := cutPath(rest) + p2, rest, ok := cutPath(rest) + if !ok { + return len(path) + } + if p1 != "." && p1 != "?" { + // This is a UNC path: \\${HOST}\${SHARE}\ + return len(path) - len(rest) - 1 + } + // This is a DOS device path. + if len(p2) == 3 && toUpper(p2[0]) == 'U' && toUpper(p2[1]) == 'N' && toUpper(p2[2]) == 'C' { + // This is a DOS device path that links to a UNC: \\.\UNC\${HOST}\${SHARE}\ + _, rest, _ = cutPath(rest) // host + _, rest, ok = cutPath(rest) // share + if !ok { + return len(path) + } + } + return len(path) - len(rest) - 1 +} + +// cutPath slices path around the first path separator. +func cutPath(path string) (before, after string, found bool) { + for i := range path { + if isSlash(path[i]) { + return path[:i], path[i+1:], true + } + } + return path, "", false +} + +// HasPrefix exists for historical compatibility and should not be used. +// +// Deprecated: HasPrefix does not respect path boundaries and +// does not ignore case when required. +func HasPrefix(p, prefix string) bool { + if strings.HasPrefix(p, prefix) { + return true + } + return strings.HasPrefix(strings.ToLower(p), strings.ToLower(prefix)) +} + +func splitList(path string) []string { + // The same implementation is used in LookPath in os/exec; + // consider changing os/exec when changing this. + + if path == "" { + return []string{} + } + + // Split path, respecting but preserving quotes. + list := []string{} + start := 0 + quo := false + for i := 0; i < len(path); i++ { + switch c := path[i]; { + case c == '"': + quo = !quo + case c == ListSeparator && !quo: + list = append(list, path[start:i]) + start = i + 1 + } + } + list = append(list, path[start:]) + + // Remove quotes. + for i, s := range list { + list[i] = strings.ReplaceAll(s, `"`, ``) + } + + return list +} + +func abs(path string) (string, error) { + if path == "" { + // syscall.FullPath returns an error on empty path, because it's not a valid path. + // To implement Abs behavior of returning working directory on empty string input, + // special-case empty path by changing it to "." path. See golang.org/issue/24441. + path = "." + } + fullPath, err := syscall.FullPath(path) + if err != nil { + return "", err + } + return Clean(fullPath), nil +} + +func join(elem []string) string { + var b strings.Builder + var lastChar byte + for _, e := range elem { + switch { + case b.Len() == 0: + // Add the first non-empty path element unchanged. + case isSlash(lastChar): + // If the path ends in a slash, strip any leading slashes from the next + // path element to avoid creating a UNC path (any path starting with "\\") + // from non-UNC elements. + // + // The correct behavior for Join when the first element is an incomplete UNC + // path (for example, "\\") is underspecified. We currently join subsequent + // elements so Join("\\", "host", "share") produces "\\host\share". + for len(e) > 0 && isSlash(e[0]) { + e = e[1:] + } + case lastChar == ':': + // If the path ends in a colon, keep the path relative to the current directory + // on a drive and don't add a separator. Preserve leading slashes in the next + // path element, which may make the path absolute. + // + // Join(`C:`, `f`) = `C:f` + // Join(`C:`, `\f`) = `C:\f` + default: + // In all other cases, add a separator between elements. + b.WriteByte('\\') + lastChar = '\\' + } + if len(e) > 0 { + b.WriteString(e) + lastChar = e[len(e)-1] + } + } + if b.Len() == 0 { + return "" + } + return Clean(b.String()) +} + +// joinNonEmpty is like join, but it assumes that the first element is non-empty. +func joinNonEmpty(elem []string) string { + if len(elem[0]) == 2 && elem[0][1] == ':' { + // First element is drive letter without terminating slash. + // Keep path relative to current directory on that drive. + // Skip empty elements. + i := 1 + for ; i < len(elem); i++ { + if elem[i] != "" { + break + } + } + return Clean(elem[0] + strings.Join(elem[i:], string(Separator))) + } + // The following logic prevents Join from inadvertently creating a + // UNC path on Windows. Unless the first element is a UNC path, Join + // shouldn't create a UNC path. See golang.org/issue/9167. + p := Clean(strings.Join(elem, string(Separator))) + if !isUNC(p) { + return p + } + // p == UNC only allowed when the first element is a UNC path. + head := Clean(elem[0]) + if isUNC(head) { + return p + } + // head + tail == UNC, but joining two non-UNC paths should not result + // in a UNC path. Undo creation of UNC path. + tail := Clean(strings.Join(elem[1:], string(Separator))) + if head[len(head)-1] == Separator { + return head + tail + } + return head + string(Separator) + tail +} + +// isUNC reports whether path is a UNC path. +func isUNC(path string) bool { + return len(path) > 1 && isSlash(path[0]) && isSlash(path[1]) +} + +func sameWord(a, b string) bool { + return strings.EqualFold(a, b) +} diff --git a/erigon-lib/downloader/snaptype/files.go b/erigon-lib/downloader/snaptype/files.go new file mode 100644 index 00000000000..069707cfe29 --- /dev/null +++ b/erigon-lib/downloader/snaptype/files.go @@ -0,0 +1,257 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package snaptype + +import ( + "encoding/hex" + "errors" + "fmt" + "os" + "path/filepath" + "strconv" + "strings" + + "github.com/anacrolix/torrent/metainfo" + + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/common/dir" + "golang.org/x/exp/slices" +) + +type Type int + +const ( + Headers Type = iota + Bodies + Transactions + BorEvents + BorSpans + NumberOfTypes + BeaconBlocks +) + +var BorSnapshotTypes = []Type{BorEvents, BorSpans} + +func (ft Type) String() string { + switch ft { + case Headers: + return "headers" + case Bodies: + return "bodies" + case Transactions: + return "transactions" + case BorEvents: + return "borevents" + case BorSpans: + return "borspans" + case BeaconBlocks: + return "beaconblocks" + default: + panic(fmt.Sprintf("unknown file type: %d", ft)) + } +} + +func ParseFileType(s string) (Type, bool) { + switch s { + case "headers": + return Headers, true + case "bodies": + return Bodies, true + case "transactions": + return Transactions, true + case "borevents": + return BorEvents, true + case "borspans": + return BorSpans, true + case "beaconblocks": + return BeaconBlocks, true + default: + return NumberOfTypes, false + } +} + +type IdxType string + +const ( + Transactions2Block IdxType = "transactions-to-block" +) + +func (it IdxType) String() string { return string(it) } + +var BlockSnapshotTypes = []Type{Headers, Bodies, Transactions} + +var ( + ErrInvalidFileName = fmt.Errorf("invalid compressed file name") +) + +func FileName(from, to uint64, fileType string) string { + return fmt.Sprintf("v1-%06d-%06d-%s", from/1_000, to/1_000, fileType) +} +func SegmentFileName(from, to uint64, t Type) string { return FileName(from, to, t.String()) + ".seg" } +func DatFileName(from, to uint64, fType string) string { return FileName(from, to, fType) + ".dat" } +func IdxFileName(from, to uint64, fType string) string { return FileName(from, to, fType) + ".idx" } + +func FilterExt(in []FileInfo, expectExt string) (out []FileInfo) { + for _, f := range in { + if f.Ext != expectExt { // filter out only compressed files + continue + } + out = append(out, f) + } + return out +} +func FilesWithExt(dir, expectExt string) ([]FileInfo, error) { + files, err := ParseDir(dir) + if err != nil { + return nil, err + } + return FilterExt(files, expectExt), nil +} + +func IsCorrectFileName(name string) bool { + parts := strings.Split(name, "-") + return len(parts) == 4 +} + +func IsCorrectHistoryFileName(name string) bool { + parts := strings.Split(name, ".") + return len(parts) == 3 +} + +func ParseFileName(dir, fileName string) (res FileInfo, ok bool) { + ext := filepath.Ext(fileName) + onlyName := fileName[:len(fileName)-len(ext)] + parts := strings.Split(onlyName, "-") + if len(parts) < 4 { + return res, ok + } + version := parts[0] + _ = version + from, err := strconv.ParseUint(parts[1], 10, 64) + if err != nil { + return + } + to, err := strconv.ParseUint(parts[2], 10, 64) + if err != nil { + return + } + ft, ok := ParseFileType(parts[3]) + if !ok { + return res, ok + } + return FileInfo{From: from * 1_000, To: to * 1_000, Path: filepath.Join(dir, fileName), T: ft, Ext: ext}, ok +} + +const Erigon3SeedableSteps = 32 + +// Use-cases: +// - produce and seed snapshots earlier on chain tip. reduce depnedency on "good peers with history" at p2p-network. +// Some networks have no much archive peers, also ConsensusLayer clients are not-good(not-incentivised) at serving history. +// - avoiding having too much files: +// more files(shards) - means "more metadata", "more lookups for non-indexed queries", "more dictionaries", "more bittorrent connections", ... +// less files - means small files will be removed after merge (no peers for this files). +const Erigon2RecentMergeLimit = 100_000 //nolint +const Erigon2MergeLimit = 500_000 +const Erigon2MinSegmentSize = 1_000 + +// FileInfo - parsed file metadata +type FileInfo struct { + Version uint8 + From, To uint64 + Path, Ext string + T Type +} + +func (f FileInfo) TorrentFileExists() bool { return dir.FileExist(f.Path + ".torrent") } +func (f FileInfo) Seedable() bool { + return f.To-f.From == Erigon2MergeLimit || f.To-f.From == Erigon2RecentMergeLimit +} +func (f FileInfo) NeedTorrentFile() bool { return f.Seedable() && !f.TorrentFileExists() } + +func IdxFiles(dir string) (res []FileInfo, err error) { return FilesWithExt(dir, ".idx") } +func Segments(dir string) (res []FileInfo, err error) { return FilesWithExt(dir, ".seg") } +func TmpFiles(dir string) (res []string, err error) { + files, err := os.ReadDir(dir) + if err != nil { + if errors.Is(err, os.ErrNotExist) { + return []string{}, nil + } + return nil, err + } + for _, f := range files { + if f.IsDir() || len(f.Name()) < 3 { + continue + } + if filepath.Ext(f.Name()) != ".tmp" { + continue + } + res = append(res, filepath.Join(dir, f.Name())) + } + return res, nil +} + +// ParseDir - reading dir ( +func ParseDir(dir string) (res []FileInfo, err error) { + files, err := os.ReadDir(dir) + if err != nil { + if errors.Is(err, os.ErrNotExist) { + return []FileInfo{}, nil + } + return nil, err + } + for _, f := range files { + fileInfo, err := f.Info() + if err != nil { + return nil, err + } + if f.IsDir() || fileInfo.Size() == 0 || len(f.Name()) < 3 { + continue + } + + meta, ok := ParseFileName(dir, f.Name()) + if !ok { + continue + } + res = append(res, meta) + } + slices.SortFunc(res, func(i, j FileInfo) int { + if i.Version != j.Version { + return cmp.Compare(i.Version, j.Version) + } + if i.From != j.From { + return cmp.Compare(i.From, j.From) + } + if i.To != j.To { + return cmp.Compare(i.To, j.To) + } + if i.T != j.T { + return cmp.Compare(i.T, j.T) + } + return cmp.Compare(i.Ext, j.Ext) + }) + + return res, nil +} + +func Hex2InfoHash(in string) (infoHash metainfo.Hash) { + inHex, err := hex.DecodeString(in) + if err != nil { + panic(err) + } + copy(infoHash[:], inHex) + return infoHash +} diff --git a/erigon-lib/downloader/snaptype/snaptypes.go b/erigon-lib/downloader/snaptype/snaptypes.go new file mode 100644 index 00000000000..c42e9982a2c --- /dev/null +++ b/erigon-lib/downloader/snaptype/snaptypes.go @@ -0,0 +1,14 @@ +package snaptype + +import ( + "net/url" + + "github.com/anacrolix/torrent/metainfo" +) + +// Each provider can provide only 1 WebSeed url per file +// but overall BitTorrent protocol allowing multiple +type WebSeedsFromProvider map[string]string // fileName -> Url, can be Http/Ftp + +type WebSeedUrls map[string]metainfo.UrlList // fileName -> []Url, can be Http/Ftp +type TorrentUrls map[string][]*url.URL diff --git a/erigon-lib/downloader/util.go b/erigon-lib/downloader/util.go new file mode 100644 index 00000000000..053e830c851 --- /dev/null +++ b/erigon-lib/downloader/util.go @@ -0,0 +1,375 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package downloader + +import ( + "context" + "fmt" + "os" + "path/filepath" + "regexp" + "runtime" + "strconv" + "sync/atomic" + "time" + + "github.com/anacrolix/torrent" + "github.com/anacrolix/torrent/bencode" + "github.com/anacrolix/torrent/metainfo" + common2 "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/datadir" + dir2 "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/log/v3" + "golang.org/x/sync/errgroup" +) + +// udpOrHttpTrackers - torrent library spawning several goroutines and producing many requests for each tracker. So we limit amout of trackers by 7 +var udpOrHttpTrackers = []string{ + "udp://tracker.opentrackr.org:1337/announce", + "udp://9.rarbg.com:2810/announce", + "udp://tracker.openbittorrent.com:6969/announce", + "http://tracker.openbittorrent.com:80/announce", + "udp://opentracker.i2p.rocks:6969/announce", + "https://opentracker.i2p.rocks:443/announce", + "udp://tracker.torrent.eu.org:451/announce", + "udp://tracker.moeking.me:6969/announce", +} + +// nolint +var websocketTrackers = []string{ + "wss://tracker.btorrent.xyz", +} + +// Trackers - break down by priority tier +var Trackers = [][]string{ + udpOrHttpTrackers, + //websocketTrackers // TODO: Ws protocol producing too many errors and flooding logs. But it's also very fast and reactive. +} + +func seedableSegmentFiles(dir string) ([]string, error) { + files, err := dir2.ListFiles(dir, ".seg") + if err != nil { + return nil, err + } + res := make([]string, 0, len(files)) + for _, fPath := range files { + _, name := filepath.Split(fPath) + if !snaptype.IsCorrectFileName(name) { + continue + } + ff, ok := snaptype.ParseFileName(dir, name) + if !ok { + continue + } + if !ff.Seedable() { + continue + } + res = append(res, name) + } + return res, nil +} + +var historyFileRegex = regexp.MustCompile("^([[:lower:]]+).([0-9]+)-([0-9]+).(.*)$") + +func seedableSnapshotsBySubDir(dir, subDir string) ([]string, error) { + historyDir := filepath.Join(dir, subDir) + dir2.MustExist(historyDir) + files, err := dir2.ListFiles(historyDir, ".kv", ".v", ".ef") + if err != nil { + return nil, err + } + res := make([]string, 0, len(files)) + for _, fPath := range files { + _, name := filepath.Split(fPath) + if !e3seedable(name) { + continue + } + res = append(res, filepath.Join(subDir, name)) + } + return res, nil +} + +func e3seedable(name string) bool { + subs := historyFileRegex.FindStringSubmatch(name) + if len(subs) != 5 { + return false + } + // Check that it's seedable + from, err := strconv.ParseUint(subs[2], 10, 64) + if err != nil { + return false + } + to, err := strconv.ParseUint(subs[3], 10, 64) + if err != nil { + return false + } + if (to-from)%snaptype.Erigon3SeedableSteps != 0 { + return false + } + return true +} +func ensureCantLeaveDir(fName, root string) (string, error) { + if filepath.IsAbs(fName) { + newFName, err := filepath.Rel(root, fName) + if err != nil { + return fName, err + } + if !IsLocal(newFName) { + return fName, fmt.Errorf("file=%s, is outside of snapshots dir", fName) + } + fName = newFName + } + if !IsLocal(fName) { + return fName, fmt.Errorf("relative paths are not allowed: %s", fName) + } + return fName, nil +} + +func BuildTorrentIfNeed(ctx context.Context, fName, root string) (torrentFilePath string, err error) { + select { + case <-ctx.Done(): + return "", ctx.Err() + default: + } + fName, err = ensureCantLeaveDir(fName, root) + if err != nil { + return "", err + } + + fPath := filepath.Join(root, fName) + if dir2.FileExist(fPath + ".torrent") { + return fPath, nil + } + if !dir2.FileExist(fPath) { + return fPath, nil + } + + info := &metainfo.Info{PieceLength: downloadercfg.DefaultPieceSize, Name: fName} + if err := info.BuildFromFilePath(fPath); err != nil { + return "", fmt.Errorf("createTorrentFileFromSegment: %w", err) + } + info.Name = fName + + return fPath + ".torrent", CreateTorrentFileFromInfo(root, info, nil) +} + +// BuildTorrentFilesIfNeed - create .torrent files from .seg files (big IO) - if .seg files were added manually +func BuildTorrentFilesIfNeed(ctx context.Context, dirs datadir.Dirs) error { + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + + files, err := seedableFiles(dirs) + if err != nil { + return err + } + + g, ctx := errgroup.WithContext(ctx) + g.SetLimit(runtime.GOMAXPROCS(-1) * 4) + var i atomic.Int32 + + for _, file := range files { + file := file + g.Go(func() error { + defer i.Add(1) + if _, err := BuildTorrentIfNeed(ctx, file, dirs.Snap); err != nil { + return err + } + return nil + }) + } + +Loop: + for int(i.Load()) < len(files) { + select { + case <-ctx.Done(): + break Loop // g.Wait() will return right error + case <-logEvery.C: + if int(i.Load()) == len(files) { + break Loop + } + log.Info("[snapshots] Creating .torrent files", "progress", fmt.Sprintf("%d/%d", i.Load(), len(files))) + } + } + if err := g.Wait(); err != nil { + return err + } + return nil +} + +func CreateTorrentFileIfNotExists(root string, info *metainfo.Info, mi *metainfo.MetaInfo) error { + fPath := filepath.Join(root, info.Name) + if dir2.FileExist(fPath + ".torrent") { + return nil + } + if err := CreateTorrentFileFromInfo(root, info, mi); err != nil { + return err + } + return nil +} + +func CreateMetaInfo(info *metainfo.Info, mi *metainfo.MetaInfo) (*metainfo.MetaInfo, error) { + if mi == nil { + infoBytes, err := bencode.Marshal(info) + if err != nil { + return nil, err + } + mi = &metainfo.MetaInfo{ + CreationDate: time.Now().Unix(), + CreatedBy: "erigon", + InfoBytes: infoBytes, + AnnounceList: Trackers, + } + } else { + mi.AnnounceList = Trackers + } + return mi, nil +} +func CreateTorrentFromMetaInfo(root string, info *metainfo.Info, mi *metainfo.MetaInfo) error { + torrentFileName := filepath.Join(root, info.Name+".torrent") + file, err := os.Create(torrentFileName) + if err != nil { + return err + } + defer file.Close() + if err := mi.Write(file); err != nil { + return err + } + file.Sync() + return nil +} +func CreateTorrentFileFromInfo(root string, info *metainfo.Info, mi *metainfo.MetaInfo) (err error) { + mi, err = CreateMetaInfo(info, mi) + if err != nil { + return err + } + return CreateTorrentFromMetaInfo(root, info, mi) +} + +func AllTorrentPaths(dirs datadir.Dirs) ([]string, error) { + files, err := dir2.ListFiles(dirs.Snap, ".torrent") + if err != nil { + return nil, err + } + files2, err := dir2.ListFiles(dirs.SnapHistory, ".torrent") + if err != nil { + return nil, err + } + files = append(files, files2...) + return files, nil +} + +func AllTorrentSpecs(dirs datadir.Dirs) (res []*torrent.TorrentSpec, err error) { + files, err := AllTorrentPaths(dirs) + if err != nil { + return nil, err + } + for _, fPath := range files { + if len(fPath) == 0 { + continue + } + a, err := loadTorrent(fPath) + if err != nil { + return nil, fmt.Errorf("AllTorrentSpecs: %w", err) + } + res = append(res, a) + } + return res, nil +} + +func loadTorrent(torrentFilePath string) (*torrent.TorrentSpec, error) { + mi, err := metainfo.LoadFromFile(torrentFilePath) + if err != nil { + return nil, fmt.Errorf("LoadFromFile: %w, file=%s", err, torrentFilePath) + } + mi.AnnounceList = Trackers + return torrent.TorrentSpecFromMetaInfoErr(mi) +} + +// addTorrentFile - adding .torrent file to torrentClient (and checking their hashes), if .torrent file +// added first time - pieces verification process will start (disk IO heavy) - Progress +// kept in `piece completion storage` (surviving reboot). Once it done - no disk IO needed again. +// Don't need call torrent.VerifyData manually +func addTorrentFile(ctx context.Context, ts *torrent.TorrentSpec, torrentClient *torrent.Client, webseeds *WebSeeds) error { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + wsUrls, ok := webseeds.ByFileName(ts.DisplayName) + if ok { + ts.Webseeds = append(ts.Webseeds, wsUrls...) + } + + _, ok = torrentClient.Torrent(ts.InfoHash) + if !ok { // can set ChunkSize only for new torrents + ts.ChunkSize = downloadercfg.DefaultNetworkChunkSize + } else { + ts.ChunkSize = 0 + } + ts.DisallowDataDownload = true + _, _, err := torrentClient.AddTorrentSpec(ts) + if err != nil { + return fmt.Errorf("addTorrentFile %s: %w", ts.DisplayName, err) + } + return nil +} + +func savePeerID(db kv.RwDB, peerID torrent.PeerID) error { + return db.Update(context.Background(), func(tx kv.RwTx) error { + return tx.Put(kv.BittorrentInfo, []byte(kv.BittorrentPeerID), peerID[:]) + }) +} + +func readPeerID(db kv.RoDB) (peerID []byte, err error) { + if err = db.View(context.Background(), func(tx kv.Tx) error { + peerIDFromDB, err := tx.GetOne(kv.BittorrentInfo, []byte(kv.BittorrentPeerID)) + if err != nil { + return fmt.Errorf("get peer id: %w", err) + } + peerID = common2.Copy(peerIDFromDB) + return nil + }); err != nil { + return nil, err + } + return peerID, nil +} + +// Deprecated: use `filepath.IsLocal` after drop go1.19 support +func IsLocal(path string) bool { + return isLocal(path) +} + +func saveTorrent(torrentFilePath string, res []byte) error { + if len(res) == 0 { + return fmt.Errorf("try to write 0 bytes to file: %s", torrentFilePath) + } + f, err := os.Create(torrentFilePath) + if err != nil { + return err + } + defer f.Close() + if _, err = f.Write(res); err != nil { + return err + } + if err = f.Sync(); err != nil { + return err + } + return nil +} diff --git a/erigon-lib/downloader/webseed.go b/erigon-lib/downloader/webseed.go new file mode 100644 index 00000000000..0c42f17b28d --- /dev/null +++ b/erigon-lib/downloader/webseed.go @@ -0,0 +1,334 @@ +package downloader + +import ( + "bytes" + "context" + "fmt" + "io" + "net/http" + "net/url" + "os" + "path/filepath" + "strings" + "sync" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/config" + "github.com/aws/aws-sdk-go-v2/credentials" + "github.com/aws/aws-sdk-go-v2/service/s3" + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" + "golang.org/x/sync/errgroup" + + "github.com/anacrolix/torrent/bencode" + "github.com/anacrolix/torrent/metainfo" + "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/log/v3" + "github.com/pelletier/go-toml/v2" +) + +// WebSeeds - allow use HTTP-based infrastrucutre to support Bittorrent network +// it allows download .torrent files and data files from trusted url's (for example: S3 signed url) +type WebSeeds struct { + lock sync.Mutex + + byFileName snaptype.WebSeedUrls // HTTP urls of data files + torrentUrls snaptype.TorrentUrls // HTTP urls of .torrent files + downloadTorrentFile bool + torrentsWhitelist snapcfg.Preverified + + logger log.Logger + verbosity log.Lvl +} + +func (d *WebSeeds) Discover(ctx context.Context, s3tokens []string, urls []*url.URL, files []string, rootDir string) { + d.downloadWebseedTomlFromProviders(ctx, s3tokens, urls, files) + d.downloadTorrentFilesFromProviders(ctx, rootDir) +} + +func (d *WebSeeds) downloadWebseedTomlFromProviders(ctx context.Context, s3Providers []string, httpProviders []*url.URL, diskProviders []string) { + log.Debug("[snapshots] webseed providers", "http", len(httpProviders), "s3", len(s3Providers), "disk", len(diskProviders)) + list := make([]snaptype.WebSeedsFromProvider, 0, len(httpProviders)+len(diskProviders)) + for _, webSeedProviderURL := range httpProviders { + select { + case <-ctx.Done(): + break + default: + } + response, err := d.callHttpProvider(ctx, webSeedProviderURL) + if err != nil { // don't fail on error + d.logger.Debug("[snapshots.webseed] get from HTTP provider", "err", err, "url", webSeedProviderURL.EscapedPath()) + continue + } + list = append(list, response) + } + + for _, webSeedProviderURL := range s3Providers { + select { + case <-ctx.Done(): + break + default: + } + response, err := d.callS3Provider(ctx, webSeedProviderURL) + if err != nil { // don't fail on error + d.logger.Debug("[snapshots.webseed] get from S3 provider", "err", err) + continue + } + list = append(list, response) + } + // add to list files from disk + for _, webSeedFile := range diskProviders { + response, err := d.readWebSeedsFile(webSeedFile) + if err != nil { // don't fail on error + d.logger.Debug("[snapshots.webseed] get from File provider", "err", err) + continue + } + list = append(list, response) + } + + webSeedUrls, torrentUrls := snaptype.WebSeedUrls{}, snaptype.TorrentUrls{} + for _, urls := range list { + for name, wUrl := range urls { + if !strings.HasSuffix(name, ".torrent") { + webSeedUrls[name] = append(webSeedUrls[name], wUrl) + continue + } + if !nameWhitelisted(name, d.torrentsWhitelist) { + continue + } + uri, err := url.ParseRequestURI(wUrl) + if err != nil { + d.logger.Debug("[snapshots] url is invalid", "url", wUrl, "err", err) + continue + } + torrentUrls[name] = append(torrentUrls[name], uri) + } + } + + d.lock.Lock() + defer d.lock.Unlock() + d.byFileName = webSeedUrls + d.torrentUrls = torrentUrls +} + +func (d *WebSeeds) TorrentUrls() snaptype.TorrentUrls { + d.lock.Lock() + defer d.lock.Unlock() + return d.torrentUrls +} + +func (d *WebSeeds) Len() int { + d.lock.Lock() + defer d.lock.Unlock() + return len(d.byFileName) +} + +func (d *WebSeeds) ByFileName(name string) (metainfo.UrlList, bool) { + d.lock.Lock() + defer d.lock.Unlock() + v, ok := d.byFileName[name] + return v, ok +} +func (d *WebSeeds) callHttpProvider(ctx context.Context, webSeedProviderUrl *url.URL) (snaptype.WebSeedsFromProvider, error) { + baseUrl := webSeedProviderUrl.String() + ref, err := url.Parse("manifest.txt") + if err != nil { + return nil, err + } + u := webSeedProviderUrl.ResolveReference(ref) + request, err := http.NewRequest(http.MethodGet, u.String(), nil) + if err != nil { + return nil, err + } + + request = request.WithContext(ctx) + resp, err := http.DefaultClient.Do(request) + if err != nil { + return nil, fmt.Errorf("webseed.http: %w, host=%s, url=%s", err, webSeedProviderUrl.Hostname(), webSeedProviderUrl.EscapedPath()) + } + defer resp.Body.Close() + b, err := io.ReadAll(resp.Body) + if err != nil { + return nil, fmt.Errorf("webseed.http: %w, host=%s, url=%s, ", err, webSeedProviderUrl.Hostname(), webSeedProviderUrl.EscapedPath()) + } + response := snaptype.WebSeedsFromProvider{} + fileNames := strings.Split(string(b), "\n") + for _, f := range fileNames { + response[f], err = url.JoinPath(baseUrl, f) + if err != nil { + return nil, err + } + } + d.logger.Debug("[snapshots.webseed] get from HTTP provider", "urls", len(response), "host", webSeedProviderUrl.Hostname(), "url", webSeedProviderUrl.EscapedPath()) + return response, nil +} +func (d *WebSeeds) callS3Provider(ctx context.Context, token string) (snaptype.WebSeedsFromProvider, error) { + //v1:bucketName:accID:accessKeyID:accessKeySecret + l := strings.Split(token, ":") + if len(l) != 5 { + return nil, fmt.Errorf("token has invalid format, exepcing 'v1:tokenInBase64'") + } + version, bucketName, accountId, accessKeyId, accessKeySecret := strings.TrimSpace(l[0]), strings.TrimSpace(l[1]), strings.TrimSpace(l[2]), strings.TrimSpace(l[3]), strings.TrimSpace(l[4]) + if version != "v1" { + return nil, fmt.Errorf("not supported version: %s", version) + } + var fileName = "webseeds.toml" + + r2Resolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) { + return aws.Endpoint{ + URL: fmt.Sprintf("https://%s.r2.cloudflarestorage.com", accountId), + }, nil + }) + cfg, err := config.LoadDefaultConfig(ctx, + config.WithEndpointResolverWithOptions(r2Resolver), + config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(accessKeyId, accessKeySecret, "")), + ) + if err != nil { + return nil, err + } + + client := s3.NewFromConfig(cfg) + // { + // "ChecksumAlgorithm": null, + // "ETag": "\"eb2b891dc67b81755d2b726d9110af16\"", + // "Key": "ferriswasm.png", + // "LastModified": "2022-05-18T17:20:21.67Z", + // "Owner": null, + // "Size": 87671, + // "StorageClass": "STANDARD" + // } + resp, err := client.GetObject(ctx, &s3.GetObjectInput{Bucket: &bucketName, Key: &fileName}) + if err != nil { + return nil, fmt.Errorf("webseed.s3: bucket=%s, %w", bucketName, err) + } + defer resp.Body.Close() + response := snaptype.WebSeedsFromProvider{} + if err := toml.NewDecoder(resp.Body).Decode(&response); err != nil { + return nil, fmt.Errorf("webseed.s3: bucket=%s, %w", bucketName, err) + } + d.logger.Debug("[snapshots.webseed] get from S3 provider", "urls", len(response), "bucket", bucketName) + return response, nil +} +func (d *WebSeeds) readWebSeedsFile(webSeedProviderPath string) (snaptype.WebSeedsFromProvider, error) { + _, fileName := filepath.Split(webSeedProviderPath) + data, err := os.ReadFile(webSeedProviderPath) + if err != nil { + return nil, fmt.Errorf("webseed.readWebSeedsFile: file=%s, %w", fileName, err) + } + response := snaptype.WebSeedsFromProvider{} + if err := toml.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("webseed.readWebSeedsFile: file=%s, %w", fileName, err) + } + d.logger.Debug("[snapshots.webseed] get from File provider", "urls", len(response), "file", fileName) + return response, nil +} + +// downloadTorrentFilesFromProviders - if they are not exist on file-system +func (d *WebSeeds) downloadTorrentFilesFromProviders(ctx context.Context, rootDir string) { + // TODO: need more tests, need handle more forward-compatibility and backward-compatibility case + // - now, if add new type of .torrent files to S3 bucket - existing nodes will start downloading it. maybe need whitelist of file types + // - maybe need download new files if --snap.stop=true + if !d.downloadTorrentFile { + return + } + if len(d.TorrentUrls()) == 0 { + return + } + var addedNew int + e, ctx := errgroup.WithContext(ctx) + urlsByName := d.TorrentUrls() + //TODO: + // - what to do if node already synced? + for name, tUrls := range urlsByName { + tPath := filepath.Join(rootDir, name) + if dir.FileExist(tPath) { + continue + } + addedNew++ + if !strings.HasSuffix(name, ".seg.torrent") { + _, fName := filepath.Split(name) + d.logger.Log(d.verbosity, "[snapshots] webseed has .torrent, but we skip it because this file-type not supported yet", "name", fName) + continue + } + name := name + tUrls := tUrls + e.Go(func() error { + for _, url := range tUrls { + res, err := d.callTorrentHttpProvider(ctx, url, name) + if err != nil { + d.logger.Log(d.verbosity, "[snapshots] got from webseed", "name", name, "err", err) + continue + } + d.logger.Log(d.verbosity, "[snapshots] got from webseed", "name", name) + if err := saveTorrent(tPath, res); err != nil { + d.logger.Debug("[snapshots] saveTorrent", "err", err) + continue + } + return nil + } + return nil + }) + } + if err := e.Wait(); err != nil { + d.logger.Debug("[snapshots] webseed discover", "err", err) + } +} + +func (d *WebSeeds) callTorrentHttpProvider(ctx context.Context, url *url.URL, fileName string) ([]byte, error) { + request, err := http.NewRequest(http.MethodGet, url.String(), nil) + if err != nil { + return nil, err + } + request = request.WithContext(ctx) + resp, err := http.DefaultClient.Do(request) + if err != nil { + return nil, fmt.Errorf("webseed.downloadTorrentFile: host=%s, url=%s, %w", url.Hostname(), url.EscapedPath(), err) + } + defer resp.Body.Close() + //protect against too small and too big data + if resp.ContentLength == 0 || resp.ContentLength > int64(128*datasize.MB) { + return nil, nil + } + res, err := io.ReadAll(resp.Body) + if err != nil { + return nil, fmt.Errorf("webseed.downloadTorrentFile: host=%s, url=%s, %w", url.Hostname(), url.EscapedPath(), err) + } + if err = validateTorrentBytes(fileName, res, d.torrentsWhitelist); err != nil { + return nil, fmt.Errorf("webseed.downloadTorrentFile: host=%s, url=%s, %w", url.Hostname(), url.EscapedPath(), err) + } + return res, nil +} + +func validateTorrentBytes(fileName string, b []byte, whitelist snapcfg.Preverified) error { + var mi metainfo.MetaInfo + if err := bencode.NewDecoder(bytes.NewBuffer(b)).Decode(&mi); err != nil { + return err + } + torrentHash := mi.HashInfoBytes() + // files with different names can have same hash. means need check AND name AND hash. + if !nameAndHashWhitelisted(fileName, torrentHash.String(), whitelist) { + return fmt.Errorf(".torrent file is not whitelisted") + } + return nil +} + +func nameWhitelisted(fileName string, whitelist snapcfg.Preverified) bool { + fileName = strings.TrimSuffix(fileName, ".torrent") + for i := 0; i < len(whitelist); i++ { + if whitelist[i].Name == fileName { + return true + } + } + return false +} + +func nameAndHashWhitelisted(fileName, fileHash string, whitelist snapcfg.Preverified) bool { + fileName = strings.TrimSuffix(fileName, ".torrent") + for i := 0; i < len(whitelist); i++ { + if whitelist[i].Name == fileName && whitelist[i].Hash == fileHash { + return true + } + } + return false +} diff --git a/erigon-lib/etl/ETL-collector.png b/erigon-lib/etl/ETL-collector.png new file mode 100644 index 00000000000..2e88cb2d43b Binary files /dev/null and b/erigon-lib/etl/ETL-collector.png differ diff --git a/erigon-lib/etl/ETL.png b/erigon-lib/etl/ETL.png new file mode 100644 index 00000000000..757921eeff9 Binary files /dev/null and b/erigon-lib/etl/ETL.png differ diff --git a/erigon-lib/etl/README.md b/erigon-lib/etl/README.md new file mode 100644 index 00000000000..9a97c270673 --- /dev/null +++ b/erigon-lib/etl/README.md @@ -0,0 +1,182 @@ +# ETL +ETL framework is most commonly used in [staged sync](https://github.com/ledgerwatch/erigon/blob/devel/eth/stagedsync/README.md). + +It implements a pattern where we extract some data from a database, transform it, +then put it into temp files and insert back to the database in sorted order. + +Inserting entries into our KV storage sorted by keys helps to minimize write +amplification, hence it is much faster, even considering additional I/O that +is generated by storing files. + +It behaves similarly to enterprise [Extract, Tranform, Load](https://en.wikipedia.org/wiki/Extract,_transform,_load) frameworks, hence the name. +We use temporary files because that helps keep RAM usage predictable and allows +using ETL on large amounts of data. + +### Example + +``` +func keyTransformExtractFunc(transformKey func([]byte) ([]byte, error)) etl.ExtractFunc { + return func(k, v []byte, next etl.ExtractNextFunc) error { + newK, err := transformKey(k) + if err != nil { + return err + } + return next(k, newK, v) + } +} + +err := etl.Transform( + db, // database + dbutils.PlainStateBucket, // "from" bucket + dbutils.CurrentStateBucket, // "to" bucket + datadir, // where to store temp files + keyTransformExtractFunc(transformPlainStateKey), // transformFunc on extraction + etl.IdentityLoadFunc, // transform on load + etl.TransformArgs{ // additional arguments + Quit: quit, + }, + ) + if err != nil { + return err + } + +``` + +## Data Transformation + +The whole flow is shown in the image + +![](./ETL.png) + +Data could be transformed in two places along the pipeline: + +* transform on extraction + +* transform on loading + +### Transform On Extraction + +`type ExtractFunc func(k []byte, v []byte, next ExtractNextFunc) error` + +Transform on extraction function receives the current key and value from the +source bucket. + +### Transform On Loading + +`type LoadFunc func(k []byte, value []byte, state State, next LoadNextFunc) error` + +As well as the current key and value, the transform on loading function +receives the `State` object that can receive data from the destination bucket. + +That is used in index generation where we want to extend index entries with new +data instead of just adding new ones. + +### `<...>NextFunc` pattern + +Sometimes we need to produce multiple entries from a single entry when +transforming. + +To do that, each of the transform function receives a next function that should +be called to move data further. That means that each transformation can produce +any number of outputs for a single input. + +It can be one output, like in `IdentityLoadFunc`: + +``` +func IdentityLoadFunc(k []byte, value []byte, _ State, next LoadNextFunc) error { + return next(k, k, value) // go to the next step +} +``` + +It can be multiple outputs like when each entry is a `ChangeSet`: + +``` +func(dbKey, dbValue []byte, next etl.ExtractNextFunc) error { + blockNum, _ := dbutils.DecodeTimestamp(dbKey) + return bytes2walker(dbValue).Walk(func(changesetKey, changesetValue []byte) error { + key := common.CopyBytes(changesetKey) + v := make([]byte, 9) + binary.BigEndian.PutUint64(v, blockNum) + if len(changesetValue) == 0 { + v[8] = 1 + } + return next(dbKey, key, v) // go to the next step + }) + } +``` + +### Buffer Types + +Before the data is being flushed into temp files, it is getting collected into +a buffer until if overflows (`etl.ExtractArgs.BufferSize`). + +There are different types of buffers available with different behaviour. + +* `SortableSliceBuffer` -- just append `(k, v1)`, `(k, v2)` onto a slice. Duplicate keys + will lead to duplicate entries: `[(k, v1) (k, v2)]`. + +* `SortableAppendBuffer` -- on duplicate keys: merge. `(k, v1)`, `(k, v2)` + will lead to `k: [v1 v2]` + +* `SortableOldestAppearedBuffer` -- on duplicate keys: keep the oldest. `(k, + v1)`, `(k v2)` will lead to `k: v1` + +### Transforming Structs + +Both transform functions and next functions allow only byte arrays. +If you need to pass a struct, you will need to marshal it. + +### Loading Into Database + +We load data from the temp files into a database in batches, limited by +`IdealBatchSize()` of an `ethdb.Mutation`. + +(for tests we can also override it) + +### Handling Interruptions + +ETL processes are long, so we need to be able to handle interruptions. + +#### Handing `Ctrl+C` + +You can pass your quit channel into `Quit` parameter into `etl.TransformArgs`. + +When this channel is closed, ETL will be interrupted. + +#### Saving & Restoring State + +Interrupting in the middle of loading can lead to inconsistent state in the +database. + +To avoid that, the ETL framework allows storing progress by setting `OnLoadCommit` in `etl.TransformArgs`. + +Then we can use this data to know the progress the ETL transformation made. + +You can also specify `ExtractStartKey` and `ExtractEndKey` to limit the number +of items transformed. + +## Ways to work with ETL framework + +There might be 2 scenarios on how you want to work with the ETL framework. + +![](./ETL-collector.png) + +### `etl.Transform` function + +The vast majority of use-cases is when we extract data from one bucket and in +the end, load it into another bucket. That is the use-case for `etl.Transform` +function. + +### `etl.Collector` struct + +If you want a more modular behaviour instead of just reading from the DB (like +generating intermediate hashes in `../../core/chain_makers.go`, you can use +`etl.Collector` struct directly. + +It has a `.Collect()` method that you can provide your data to. + + +## Optimizations + +* if all data fits into a single file, we don't write anything to disk and just + use in-memory storage. diff --git a/erigon-lib/etl/buffers.go b/erigon-lib/etl/buffers.go new file mode 100644 index 00000000000..a05f1614c08 --- /dev/null +++ b/erigon-lib/etl/buffers.go @@ -0,0 +1,517 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package etl + +import ( + "bytes" + "encoding/binary" + "fmt" + "io" + "sort" + "strconv" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common" +) + +const ( + //SliceBuffer - just simple slice w + SortableSliceBuffer = iota + //SortableAppendBuffer - map[k] [v1 v2 v3] + SortableAppendBuffer + // SortableOldestAppearedBuffer - buffer that keeps only the oldest entries. + // if first v1 was added under key K, then v2; only v1 will stay + SortableOldestAppearedBuffer + SortableMergeBuffer + + //BufIOSize - 128 pages | default is 1 page | increasing over `64 * 4096` doesn't show speedup on SSD/NVMe, but show speedup in cloud drives + BufIOSize = 128 * 4096 +) + +var BufferOptimalSize = 256 * datasize.MB /* var because we want to sometimes change it from tests or command-line flags */ + +type Buffer interface { + Put(k, v []byte) + Get(i int, keyBuf, valBuf []byte) ([]byte, []byte) + Len() int + Reset() + SizeLimit() int + Prealloc(predictKeysAmount, predictDataAmount int) + Write(io.Writer) error + Sort() + CheckFlushSize() bool +} + +type sortableBufferEntry struct { + key []byte + value []byte +} + +var ( + _ Buffer = &sortableBuffer{} + _ Buffer = &appendSortableBuffer{} + _ Buffer = &oldestEntrySortableBuffer{} +) + +func NewSortableBuffer(bufferOptimalSize datasize.ByteSize) *sortableBuffer { + return &sortableBuffer{ + optimalSize: int(bufferOptimalSize.Bytes()), + } +} + +type sortableBuffer struct { + offsets []int + lens []int + data []byte + optimalSize int +} + +// Put adds key and value to the buffer. These slices will not be accessed later, +// so no copying is necessary +func (b *sortableBuffer) Put(k, v []byte) { + lk, lv := len(k), len(v) + if k == nil { + lk = -1 + } + if v == nil { + lv = -1 + } + b.lens = append(b.lens, lk, lv) + + b.offsets = append(b.offsets, len(b.data)) + b.data = append(b.data, k...) + b.offsets = append(b.offsets, len(b.data)) + b.data = append(b.data, v...) +} + +func (b *sortableBuffer) Size() int { + return len(b.data) + 8*len(b.offsets) + 8*len(b.lens) +} + +func (b *sortableBuffer) Len() int { + return len(b.offsets) / 2 +} + +func (b *sortableBuffer) Less(i, j int) bool { + i2, j2 := i*2, j*2 + ki := b.data[b.offsets[i2] : b.offsets[i2]+b.lens[i2]] + kj := b.data[b.offsets[j2] : b.offsets[j2]+b.lens[j2]] + return bytes.Compare(ki, kj) < 0 +} + +func (b *sortableBuffer) Swap(i, j int) { + i2, j2 := i*2, j*2 + b.offsets[i2], b.offsets[j2] = b.offsets[j2], b.offsets[i2] + b.offsets[i2+1], b.offsets[j2+1] = b.offsets[j2+1], b.offsets[i2+1] + b.lens[i2], b.lens[j2] = b.lens[j2], b.lens[i2] + b.lens[i2+1], b.lens[j2+1] = b.lens[j2+1], b.lens[i2+1] +} + +func (b *sortableBuffer) Get(i int, keyBuf, valBuf []byte) ([]byte, []byte) { + i2 := i * 2 + keyOffset, valOffset := b.offsets[i2], b.offsets[i2+1] + keyLen, valLen := b.lens[i2], b.lens[i2+1] + if keyLen > 0 { + keyBuf = append(keyBuf, b.data[keyOffset:keyOffset+keyLen]...) + } else if keyLen == 0 { + if keyBuf != nil { + keyBuf = keyBuf[:0] + } else { + keyBuf = []byte{} + } + } else { + keyBuf = nil + } + if valLen > 0 { + valBuf = append(valBuf, b.data[valOffset:valOffset+valLen]...) + } else if valLen == 0 { + if valBuf != nil { + valBuf = valBuf[:0] + } else { + valBuf = []byte{} + } + } else { + valBuf = nil + } + return keyBuf, valBuf +} + +func (b *sortableBuffer) Prealloc(predictKeysAmount, predictDataSize int) { + b.lens = make([]int, 0, predictKeysAmount) + b.offsets = make([]int, 0, predictKeysAmount) + b.data = make([]byte, 0, predictDataSize) +} + +func (b *sortableBuffer) Reset() { + b.offsets = b.offsets[:0] + b.lens = b.lens[:0] + b.data = b.data[:0] +} +func (b *sortableBuffer) SizeLimit() int { return b.optimalSize } +func (b *sortableBuffer) Sort() { + if sort.IsSorted(b) { + return + } + sort.Stable(b) +} + +func (b *sortableBuffer) CheckFlushSize() bool { + return b.Size() >= b.optimalSize +} + +func (b *sortableBuffer) Write(w io.Writer) error { + var numBuf [binary.MaxVarintLen64]byte + for i, offset := range b.offsets { + l := b.lens[i] + n := binary.PutVarint(numBuf[:], int64(l)) + if _, err := w.Write(numBuf[:n]); err != nil { + return err + } + if l <= 0 { + continue + } + if _, err := w.Write(b.data[offset : offset+l]); err != nil { + return err + } + } + return nil +} + +func NewAppendBuffer(bufferOptimalSize datasize.ByteSize) *appendSortableBuffer { + return &appendSortableBuffer{ + entries: make(map[string][]byte), + size: 0, + optimalSize: int(bufferOptimalSize.Bytes()), + } +} + +type appendSortableBuffer struct { + entries map[string][]byte + sortedBuf []sortableBufferEntry + size int + optimalSize int +} + +func (b *appendSortableBuffer) Put(k, v []byte) { + stored, ok := b.entries[string(k)] + if !ok { + b.size += len(k) + } + b.size += len(v) + fmt.Printf("put: %d, %x, %x . %x\n", b.size, k, stored, v) + b.entries[string(k)] = append(stored, v...) +} + +func (b *appendSortableBuffer) Size() int { return b.size } +func (b *appendSortableBuffer) SizeLimit() int { return b.optimalSize } + +func (b *appendSortableBuffer) Len() int { + return len(b.entries) +} +func (b *appendSortableBuffer) Sort() { + for key, val := range b.entries { + b.sortedBuf = append(b.sortedBuf, sortableBufferEntry{key: []byte(key), value: val}) + } + sort.Stable(b) +} + +func (b *appendSortableBuffer) Less(i, j int) bool { + return bytes.Compare(b.sortedBuf[i].key, b.sortedBuf[j].key) < 0 +} + +func (b *appendSortableBuffer) Swap(i, j int) { + b.sortedBuf[i], b.sortedBuf[j] = b.sortedBuf[j], b.sortedBuf[i] +} + +func (b *appendSortableBuffer) Get(i int, keyBuf, valBuf []byte) ([]byte, []byte) { + keyBuf = append(keyBuf, b.sortedBuf[i].key...) + valBuf = append(valBuf, b.sortedBuf[i].value...) + return keyBuf, valBuf +} +func (b *appendSortableBuffer) Reset() { + b.sortedBuf = nil + b.entries = make(map[string][]byte) + b.size = 0 +} +func (b *appendSortableBuffer) Prealloc(predictKeysAmount, predictDataSize int) { + b.entries = make(map[string][]byte, predictKeysAmount) + b.sortedBuf = make([]sortableBufferEntry, 0, predictKeysAmount*2) +} + +func (b *appendSortableBuffer) Write(w io.Writer) error { + var numBuf [binary.MaxVarintLen64]byte + entries := b.sortedBuf + for _, entry := range entries { + fmt.Printf("write: %x, %x\n", entry.key, entry.value) + lk := int64(len(entry.key)) + if entry.key == nil { + lk = -1 + } + n := binary.PutVarint(numBuf[:], lk) + if _, err := w.Write(numBuf[:n]); err != nil { + return err + } + if _, err := w.Write(entry.key); err != nil { + return err + } + lv := int64(len(entry.value)) + if entry.value == nil { + lv = -1 + } + n = binary.PutVarint(numBuf[:], lv) + if _, err := w.Write(numBuf[:n]); err != nil { + return err + } + if _, err := w.Write(entry.value); err != nil { + return err + } + } + return nil +} + +func (b *appendSortableBuffer) CheckFlushSize() bool { + return b.size >= b.optimalSize +} + +func NewOldestEntryBuffer(bufferOptimalSize datasize.ByteSize) *oldestEntrySortableBuffer { + return &oldestEntrySortableBuffer{ + entries: make(map[string][]byte), + size: 0, + optimalSize: int(bufferOptimalSize.Bytes()), + } +} + +type oldestEntrySortableBuffer struct { + entries map[string][]byte + sortedBuf []sortableBufferEntry + size int + optimalSize int +} + +func (b *oldestEntrySortableBuffer) Put(k, v []byte) { + _, ok := b.entries[string(k)] + if ok { + // if we already had this entry, we are going to keep it and ignore new value + return + } + + b.size += len(k)*2 + len(v) + b.entries[string(k)] = common.Copy(v) +} + +func (b *oldestEntrySortableBuffer) Size() int { return b.size } +func (b *oldestEntrySortableBuffer) SizeLimit() int { return b.optimalSize } + +func (b *oldestEntrySortableBuffer) Len() int { + return len(b.entries) +} + +func (b *oldestEntrySortableBuffer) Sort() { + for k, v := range b.entries { + b.sortedBuf = append(b.sortedBuf, sortableBufferEntry{key: []byte(k), value: v}) + } + sort.Stable(b) +} + +func (b *oldestEntrySortableBuffer) Less(i, j int) bool { + return bytes.Compare(b.sortedBuf[i].key, b.sortedBuf[j].key) < 0 +} + +func (b *oldestEntrySortableBuffer) Swap(i, j int) { + b.sortedBuf[i], b.sortedBuf[j] = b.sortedBuf[j], b.sortedBuf[i] +} + +func (b *oldestEntrySortableBuffer) Get(i int, keyBuf, valBuf []byte) ([]byte, []byte) { + keyBuf = append(keyBuf, b.sortedBuf[i].key...) + valBuf = append(valBuf, b.sortedBuf[i].value...) + return keyBuf, valBuf +} +func (b *oldestEntrySortableBuffer) Reset() { + b.sortedBuf = nil + b.entries = make(map[string][]byte) + b.size = 0 +} +func (b *oldestEntrySortableBuffer) Prealloc(predictKeysAmount, predictDataSize int) { + b.entries = make(map[string][]byte, predictKeysAmount) + b.sortedBuf = make([]sortableBufferEntry, 0, predictKeysAmount*2) +} + +func (b *oldestEntrySortableBuffer) Write(w io.Writer) error { + var numBuf [binary.MaxVarintLen64]byte + entries := b.sortedBuf + for _, entry := range entries { + lk := int64(len(entry.key)) + if entry.key == nil { + lk = -1 + } + n := binary.PutVarint(numBuf[:], lk) + if _, err := w.Write(numBuf[:n]); err != nil { + return err + } + if _, err := w.Write(entry.key); err != nil { + return err + } + lv := int64(len(entry.value)) + if entry.value == nil { + lv = -1 + } + n = binary.PutVarint(numBuf[:], lv) + if _, err := w.Write(numBuf[:n]); err != nil { + return err + } + if _, err := w.Write(entry.value); err != nil { + return err + } + } + return nil +} +func (b *oldestEntrySortableBuffer) CheckFlushSize() bool { + return b.size >= b.optimalSize +} + +func getBufferByType(tp int, size datasize.ByteSize, prevBuf Buffer) Buffer { + switch tp { + case SortableSliceBuffer: + return NewSortableBuffer(size) + case SortableAppendBuffer: + return NewAppendBuffer(size) + case SortableOldestAppearedBuffer: + return NewOldestEntryBuffer(size) + case SortableMergeBuffer: + return NewLatestMergedEntryMergedBuffer(size, prevBuf.(*oldestMergedEntrySortableBuffer).merge) + default: + panic("unknown buffer type " + strconv.Itoa(tp)) + } +} + +func getTypeByBuffer(b Buffer) int { + switch b.(type) { + case *sortableBuffer: + return SortableSliceBuffer + case *appendSortableBuffer: + return SortableAppendBuffer + case *oldestEntrySortableBuffer: + return SortableOldestAppearedBuffer + case *oldestMergedEntrySortableBuffer: + return SortableMergeBuffer + default: + panic(fmt.Sprintf("unknown buffer type: %T ", b)) + } +} + +func NewLatestMergedEntryMergedBuffer(bufferOptimalSize datasize.ByteSize, merger func([]byte, []byte) []byte) *oldestMergedEntrySortableBuffer { + if merger == nil { + panic("nil merge func") + } + return &oldestMergedEntrySortableBuffer{ + entries: make(map[string][]byte), + size: 0, + merge: merger, + optimalSize: int(bufferOptimalSize.Bytes()), + } +} + +type oldestMergedEntrySortableBuffer struct { + entries map[string][]byte + merge func([]byte, []byte) []byte + sortedBuf []sortableBufferEntry + size int + optimalSize int +} + +func (b *oldestMergedEntrySortableBuffer) Put(k, v []byte) { + prev, ok := b.entries[string(k)] + if ok { + b.size -= len(v) + // if we already had this entry, we are going to keep it and ignore new value + v = b.merge(prev, v) + b.size += len(v) + } else { + b.size += len(k) + len(v) + } + b.entries[string(k)] = common.Copy(v) +} + +func (b *oldestMergedEntrySortableBuffer) Size() int { return b.size } +func (b *oldestMergedEntrySortableBuffer) SizeLimit() int { return b.optimalSize } + +func (b *oldestMergedEntrySortableBuffer) Len() int { + return len(b.entries) +} + +func (b *oldestMergedEntrySortableBuffer) Sort() { + for k, v := range b.entries { + b.sortedBuf = append(b.sortedBuf, sortableBufferEntry{key: []byte(k), value: v}) + } + sort.Stable(b) +} + +func (b *oldestMergedEntrySortableBuffer) Less(i, j int) bool { + return bytes.Compare(b.sortedBuf[i].key, b.sortedBuf[j].key) < 0 +} + +func (b *oldestMergedEntrySortableBuffer) Swap(i, j int) { + b.sortedBuf[i], b.sortedBuf[j] = b.sortedBuf[j], b.sortedBuf[i] +} + +func (b *oldestMergedEntrySortableBuffer) Get(i int, keyBuf, valBuf []byte) ([]byte, []byte) { + keyBuf = append(keyBuf, b.sortedBuf[i].key...) + valBuf = append(valBuf, b.sortedBuf[i].value...) + return keyBuf, valBuf +} +func (b *oldestMergedEntrySortableBuffer) Reset() { + b.sortedBuf = nil + b.entries = make(map[string][]byte) + b.size = 0 +} +func (b *oldestMergedEntrySortableBuffer) Prealloc(predictKeysAmount, predictDataSize int) { + b.entries = make(map[string][]byte, predictKeysAmount) + b.sortedBuf = make([]sortableBufferEntry, 0, predictKeysAmount*2) +} + +func (b *oldestMergedEntrySortableBuffer) Write(w io.Writer) error { + var numBuf [binary.MaxVarintLen64]byte + entries := b.sortedBuf + for _, entry := range entries { + lk := int64(len(entry.key)) + if entry.key == nil { + lk = -1 + } + n := binary.PutVarint(numBuf[:], lk) + if _, err := w.Write(numBuf[:n]); err != nil { + return err + } + if _, err := w.Write(entry.key); err != nil { + return err + } + lv := int64(len(entry.value)) + if entry.value == nil { + lv = -1 + } + n = binary.PutVarint(numBuf[:], lv) + if _, err := w.Write(numBuf[:n]); err != nil { + return err + } + if _, err := w.Write(entry.value); err != nil { + return err + } + } + return nil +} +func (b *oldestMergedEntrySortableBuffer) CheckFlushSize() bool { + return b.size >= b.optimalSize +} diff --git a/erigon-lib/etl/collector.go b/erigon-lib/etl/collector.go new file mode 100644 index 00000000000..4a77ba2d368 --- /dev/null +++ b/erigon-lib/etl/collector.go @@ -0,0 +1,372 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package etl + +import ( + "bytes" + "encoding/hex" + "errors" + "fmt" + "io" + "os" + "path/filepath" + "time" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" +) + +type LoadNextFunc func(originalK, k, v []byte) error +type LoadFunc func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error +type simpleLoadFunc func(k, v []byte) error + +// Collector performs the job of ETL Transform, but can also be used without "E" (Extract) part +// as a Collect Transform Load +type Collector struct { + buf Buffer + logPrefix string + tmpdir string + dataProviders []dataProvider + logLvl log.Lvl + bufType int + allFlushed bool + autoClean bool + logger log.Logger +} + +// NewCollectorFromFiles creates collector from existing files (left over from previous unsuccessful loading) +func NewCollectorFromFiles(logPrefix, tmpdir string, logger log.Logger) (*Collector, error) { + if _, err := os.Stat(tmpdir); os.IsNotExist(err) { + return nil, nil + } + dirEntries, err := os.ReadDir(tmpdir) + if err != nil { + return nil, fmt.Errorf("collector from files - reading directory %s: %w", tmpdir, err) + } + if len(dirEntries) == 0 { + return nil, nil + } + dataProviders := make([]dataProvider, len(dirEntries)) + for i, dirEntry := range dirEntries { + fileInfo, err := dirEntry.Info() + if err != nil { + return nil, fmt.Errorf("collector from files - reading file info %s: %w", dirEntry.Name(), err) + } + var dataProvider fileDataProvider + dataProvider.file, err = os.Open(filepath.Join(tmpdir, fileInfo.Name())) + if err != nil { + return nil, fmt.Errorf("collector from files - opening file %s: %w", fileInfo.Name(), err) + } + dataProviders[i] = &dataProvider + } + return &Collector{dataProviders: dataProviders, allFlushed: true, autoClean: false, logPrefix: logPrefix}, nil +} + +// NewCriticalCollector does not clean up temporary files if loading has failed +func NewCriticalCollector(logPrefix, tmpdir string, sortableBuffer Buffer, logger log.Logger) *Collector { + c := NewCollector(logPrefix, tmpdir, sortableBuffer, logger) + c.autoClean = false + return c +} + +func NewCollector(logPrefix, tmpdir string, sortableBuffer Buffer, logger log.Logger) *Collector { + return &Collector{autoClean: true, bufType: getTypeByBuffer(sortableBuffer), buf: sortableBuffer, logPrefix: logPrefix, tmpdir: tmpdir, logLvl: log.LvlInfo, logger: logger} +} + +func (c *Collector) extractNextFunc(originalK, k []byte, v []byte) error { + c.buf.Put(k, v) + if !c.buf.CheckFlushSize() { + return nil + } + return c.flushBuffer(false) +} + +func (c *Collector) Collect(k, v []byte) error { + return c.extractNextFunc(k, k, v) +} + +func (c *Collector) LogLvl(v log.Lvl) { c.logLvl = v } + +func (c *Collector) flushBuffer(canStoreInRam bool) error { + if c.buf.Len() == 0 { + return nil + } + + var provider dataProvider + if canStoreInRam && len(c.dataProviders) == 0 { + c.buf.Sort() + provider = KeepInRAM(c.buf) + c.allFlushed = true + } else { + fullBuf := c.buf + prevLen, prevSize := fullBuf.Len(), fullBuf.SizeLimit() + c.buf = getBufferByType(c.bufType, datasize.ByteSize(c.buf.SizeLimit()), c.buf) + + doFsync := !c.autoClean /* is critical collector */ + var err error + provider, err = FlushToDisk(c.logPrefix, fullBuf, c.tmpdir, doFsync, c.logLvl) + if err != nil { + return err + } + c.buf.Prealloc(prevLen/8, prevSize/8) + } + if provider != nil { + c.dataProviders = append(c.dataProviders, provider) + } + return nil +} + +// Flush - an optional method (usually user don't need to call it) - forcing sort+flush current buffer. +// it does trigger background sort and flush, reducing RAM-holding, etc... +// it's useful when working with many collectors: to trigger background sort for all of them +func (c *Collector) Flush() error { + if !c.allFlushed { + if e := c.flushBuffer(false); e != nil { + return e + } + } + return nil +} + +func (c *Collector) Load(db kv.RwTx, toBucket string, loadFunc LoadFunc, args TransformArgs) error { + if c.autoClean { + defer c.Close() + } + args.BufferType = c.bufType + + if !c.allFlushed { + if e := c.flushBuffer(true); e != nil { + return e + } + } + + bucket := toBucket + + var cursor kv.RwCursor + haveSortingGuaranties := isIdentityLoadFunc(loadFunc) // user-defined loadFunc may change ordering + var lastKey []byte + if bucket != "" { // passing empty bucket name is valid case for etl when DB modification is not expected + var err error + cursor, err = db.RwCursor(bucket) + if err != nil { + return err + } + var errLast error + lastKey, _, errLast = cursor.Last() + if errLast != nil { + return errLast + } + } + + var canUseAppend bool + isDupSort := kv.ChaindataTablesCfg[bucket].Flags&kv.DupSort != 0 && !kv.ChaindataTablesCfg[bucket].AutoDupSortKeysConversion + + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + + i := 0 + loadNextFunc := func(_, k, v []byte) error { + if i == 0 { + isEndOfBucket := lastKey == nil || bytes.Compare(lastKey, k) == -1 + canUseAppend = haveSortingGuaranties && isEndOfBucket + } + i++ + + select { + default: + case <-logEvery.C: + logArs := []interface{}{"into", bucket} + if args.LogDetailsLoad != nil { + logArs = append(logArs, args.LogDetailsLoad(k, v)...) + } else { + logArs = append(logArs, "current_prefix", makeCurrentKeyStr(k)) + } + + c.logger.Log(c.logLvl, fmt.Sprintf("[%s] ETL [2/2] Loading", c.logPrefix), logArs...) + } + + isNil := (c.bufType == SortableSliceBuffer && v == nil) || + (c.bufType == SortableAppendBuffer && len(v) == 0) || //backward compatibility + (c.bufType == SortableOldestAppearedBuffer && len(v) == 0) + if isNil { + if canUseAppend { + return nil // nothing to delete after end of bucket + } + if err := cursor.Delete(k); err != nil { + return err + } + return nil + } + if canUseAppend { + if isDupSort { + if err := cursor.(kv.RwCursorDupSort).AppendDup(k, v); err != nil { + return fmt.Errorf("%s: bucket: %s, appendDup: k=%x, %w", c.logPrefix, bucket, k, err) + } + } else { + if err := cursor.Append(k, v); err != nil { + return fmt.Errorf("%s: bucket: %s, append: k=%x, v=%x, %w", c.logPrefix, bucket, k, v, err) + } + } + + return nil + } + if err := cursor.Put(k, v); err != nil { + return fmt.Errorf("%s: put: k=%x, %w", c.logPrefix, k, err) + } + return nil + } + + currentTable := ¤tTableReader{db, bucket} + simpleLoad := func(k, v []byte) error { + return loadFunc(k, v, currentTable, loadNextFunc) + } + if err := mergeSortFiles(c.logPrefix, c.dataProviders, simpleLoad, args, c.buf); err != nil { + return fmt.Errorf("loadIntoTable %s: %w", toBucket, err) + } + //logger.Trace(fmt.Sprintf("[%s] ETL Load done", c.logPrefix), "bucket", bucket, "records", i) + return nil +} + +func (c *Collector) reset() { + if c.dataProviders != nil { + for _, p := range c.dataProviders { + p.Dispose() + } + c.dataProviders = nil + } + c.buf.Reset() + c.allFlushed = false +} + +func (c *Collector) Close() { + c.reset() +} + +// mergeSortFiles uses merge-sort to order the elements stored within the slice of providers, +// regardless of ordering within the files the elements will be processed in order. +// The first pass reads the first element from each of the providers and populates a heap with the key/value/provider index. +// Later, the heap is popped to get the first element, the record is processed using the LoadFunc, and the provider is asked +// for the next item, which is then added back to the heap. +// The subsequent iterations pop the heap again and load up the provider associated with it to get the next element after processing LoadFunc. +// this continues until all providers have reached their EOF. +func mergeSortFiles(logPrefix string, providers []dataProvider, loadFunc simpleLoadFunc, args TransformArgs, buf Buffer) (err error) { + for _, provider := range providers { + if err := provider.Wait(); err != nil { + return err + } + } + + h := &Heap{} + heapInit(h) + for i, provider := range providers { + if key, value, err := provider.Next(nil, nil); err == nil { + heapPush(h, &HeapElem{key, value, i}) + } else /* we must have at least one entry per file */ { + eee := fmt.Errorf("%s: error reading first readers: n=%d current=%d provider=%s err=%w", + logPrefix, len(providers), i, provider, err) + panic(eee) + } + } + + var prevK, prevV []byte + + // Main loading loop + for h.Len() > 0 { + if err := common.Stopped(args.Quit); err != nil { + return err + } + + element := heapPop(h) + provider := providers[element.TimeIdx] + + // SortableOldestAppearedBuffer must guarantee that only 1 oldest value of key will appear + // but because size of buffer is limited - each flushed file does guarantee "oldest appeared" + // property, but files may overlap. files are sorted, just skip repeated keys here + if args.BufferType == SortableOldestAppearedBuffer { + if !bytes.Equal(prevK, element.Key) { + if err = loadFunc(element.Key, element.Value); err != nil { + return err + } + // Need to copy k because the underlying space will be re-used for the next key + prevK = common.Copy(element.Key) + } + } else if args.BufferType == SortableAppendBuffer { + if !bytes.Equal(prevK, element.Key) { + if prevK != nil { + if err = loadFunc(prevK, prevV); err != nil { + return err + } + } + // Need to copy k because the underlying space will be re-used for the next key + prevK = common.Copy(element.Key) + prevV = common.Copy(element.Value) + } else { + prevV = append(prevV, element.Value...) + } + } else if args.BufferType == SortableMergeBuffer { + if !bytes.Equal(prevK, element.Key) { + if prevK != nil { + if err = loadFunc(prevK, prevV); err != nil { + return err + } + } + // Need to copy k because the underlying space will be re-used for the next key + prevK = common.Copy(element.Key) + prevV = common.Copy(element.Value) + } else { + prevV = buf.(*oldestMergedEntrySortableBuffer).merge(prevV, element.Value) + } + } else { + if err = loadFunc(element.Key, element.Value); err != nil { + return err + } + } + + if element.Key, element.Value, err = provider.Next(element.Key[:0], element.Value[:0]); err == nil { + heapPush(h, element) + } else if !errors.Is(err, io.EOF) { + return fmt.Errorf("%s: error while reading next element from disk: %w", logPrefix, err) + } + } + + if args.BufferType == SortableAppendBuffer { + if prevK != nil { + if err = loadFunc(prevK, prevV); err != nil { + return err + } + } + } + + return nil +} + +func makeCurrentKeyStr(k []byte) string { + var currentKeyStr string + if k == nil { + currentKeyStr = "final" + } else if len(k) < 4 { + currentKeyStr = hex.EncodeToString(k) + } else if k[0] == 0 && k[1] == 0 && k[2] == 0 && k[3] == 0 && len(k) >= 8 { // if key has leading zeroes, show a bit more info + currentKeyStr = hex.EncodeToString(k) + } else { + currentKeyStr = hex.EncodeToString(k[:4]) + } + return currentKeyStr +} diff --git a/erigon-lib/etl/dataprovider.go b/erigon-lib/etl/dataprovider.go new file mode 100644 index 00000000000..25387da38f1 --- /dev/null +++ b/erigon-lib/etl/dataprovider.go @@ -0,0 +1,178 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package etl + +import ( + "bufio" + "encoding/binary" + "fmt" + "io" + "os" + "path/filepath" + + "github.com/ledgerwatch/log/v3" + "golang.org/x/sync/errgroup" +) + +type dataProvider interface { + Next(keyBuf, valBuf []byte) ([]byte, []byte, error) + Dispose() // Safe for repeated call, doesn't return error - means defer-friendly + Wait() error // join point for async providers +} + +type fileDataProvider struct { + file *os.File + reader io.Reader + byteReader io.ByteReader // Different interface to the same object as reader + wg *errgroup.Group +} + +// FlushToDisk - `doFsync` is true only for 'critical' collectors (which should not loose). +func FlushToDisk(logPrefix string, b Buffer, tmpdir string, doFsync bool, lvl log.Lvl) (dataProvider, error) { + if b.Len() == 0 { + return nil, nil + } + + provider := &fileDataProvider{reader: nil, wg: &errgroup.Group{}} + provider.wg.Go(func() error { + b.Sort() + + // if we are going to create files in the system temp dir, we don't need any + // subfolders. + if tmpdir != "" { + if err := os.MkdirAll(tmpdir, 0755); err != nil { + return err + } + } + + bufferFile, err := os.CreateTemp(tmpdir, "erigon-sortable-buf-") + if err != nil { + return err + } + provider.file = bufferFile + + if doFsync { + defer bufferFile.Sync() //nolint:errcheck + } + + w := bufio.NewWriterSize(bufferFile, BufIOSize) + defer w.Flush() //nolint:errcheck + + _, fName := filepath.Split(bufferFile.Name()) + if err = b.Write(w); err != nil { + return fmt.Errorf("error writing entries to disk: %w", err) + } + log.Log(lvl, fmt.Sprintf("[%s] Flushed buffer file", logPrefix), "name", fName) + return nil + }) + + return provider, nil +} + +func (p *fileDataProvider) Next(keyBuf, valBuf []byte) ([]byte, []byte, error) { + if p.reader == nil { + _, err := p.file.Seek(0, 0) + if err != nil { + return nil, nil, err + } + r := bufio.NewReaderSize(p.file, BufIOSize) + p.reader = r + p.byteReader = r + + } + return readElementFromDisk(p.reader, p.byteReader, keyBuf, valBuf) +} + +func (p *fileDataProvider) Wait() error { return p.wg.Wait() } +func (p *fileDataProvider) Dispose() { + if p.file != nil { //invariant: safe to call multiple time + p.Wait() + _ = p.file.Close() + _ = os.Remove(p.file.Name()) + p.file = nil + } +} + +func (p *fileDataProvider) String() string { + return fmt.Sprintf("%T(file: %s)", p, p.file.Name()) +} + +func readElementFromDisk(r io.Reader, br io.ByteReader, keyBuf, valBuf []byte) ([]byte, []byte, error) { + n, err := binary.ReadVarint(br) + if err != nil { + return nil, nil, err + } + if n >= 0 { + // Reallocate the slice or extend it if there is enough capacity + if keyBuf == nil || len(keyBuf)+int(n) > cap(keyBuf) { + newKeyBuf := make([]byte, len(keyBuf)+int(n)) + copy(newKeyBuf, keyBuf) + keyBuf = newKeyBuf + } else { + keyBuf = keyBuf[:len(keyBuf)+int(n)] + } + if _, err = io.ReadFull(r, keyBuf[len(keyBuf)-int(n):]); err != nil { + return nil, nil, err + } + } else { + keyBuf = nil + } + if n, err = binary.ReadVarint(br); err != nil { + return nil, nil, err + } + if n >= 0 { + // Reallocate the slice or extend it if there is enough capacity + if valBuf == nil || len(valBuf)+int(n) > cap(valBuf) { + newValBuf := make([]byte, len(valBuf)+int(n)) + copy(newValBuf, valBuf) + valBuf = newValBuf + } else { + valBuf = valBuf[:len(valBuf)+int(n)] + } + if _, err = io.ReadFull(r, valBuf[len(valBuf)-int(n):]); err != nil { + return nil, nil, err + } + } else { + valBuf = nil + } + return keyBuf, valBuf, err +} + +type memoryDataProvider struct { + buffer Buffer + currentIndex int +} + +func KeepInRAM(buffer Buffer) dataProvider { + return &memoryDataProvider{buffer, 0} +} + +func (p *memoryDataProvider) Next(keyBuf, valBuf []byte) ([]byte, []byte, error) { + if p.currentIndex >= p.buffer.Len() { + return nil, nil, io.EOF + } + key, value := p.buffer.Get(p.currentIndex, keyBuf, valBuf) + p.currentIndex++ + return key, value, nil +} + +func (p *memoryDataProvider) Wait() error { return nil } +func (p *memoryDataProvider) Dispose() {} + +func (p *memoryDataProvider) String() string { + return fmt.Sprintf("%T(buffer.Len: %d)", p, p.buffer.Len()) +} diff --git a/erigon-lib/etl/etl.go b/erigon-lib/etl/etl.go new file mode 100644 index 00000000000..9bac4418501 --- /dev/null +++ b/erigon-lib/etl/etl.go @@ -0,0 +1,174 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package etl + +import ( + "bytes" + "fmt" + "reflect" + "time" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/log/v3" +) + +type CurrentTableReader interface { + Get([]byte) ([]byte, error) +} + +type ExtractNextFunc func(originalK, k []byte, v []byte) error +type ExtractFunc func(k []byte, v []byte, next ExtractNextFunc) error + +// NextKey generates the possible next key w/o changing the key length. +// for [0x01, 0x01, 0x01] it will generate [0x01, 0x01, 0x02], etc +func NextKey(key []byte) ([]byte, error) { + if len(key) == 0 { + return key, fmt.Errorf("could not apply NextKey for the empty key") + } + nextKey := common.Copy(key) + for i := len(key) - 1; i >= 0; i-- { + b := nextKey[i] + if b < 0xFF { + nextKey[i] = b + 1 + return nextKey, nil + } + if b == 0xFF { + nextKey[i] = 0 + } + } + return key, fmt.Errorf("overflow while applying NextKey") +} + +// LoadCommitHandler is a callback called each time a new batch is being +// loaded from files into a DB +// * `key`: last commited key to the database (use etl.NextKey helper to use in LoadStartKey) +// * `isDone`: true, if everything is processed +type LoadCommitHandler func(db kv.Putter, key []byte, isDone bool) error +type AdditionalLogArguments func(k, v []byte) (additionalLogArguments []interface{}) + +type TransformArgs struct { + Quit <-chan struct{} + LogDetailsExtract AdditionalLogArguments + LogDetailsLoad AdditionalLogArguments + // [ExtractStartKey, ExtractEndKey) + ExtractStartKey []byte + ExtractEndKey []byte + BufferType int + BufferSize int +} + +func Transform( + logPrefix string, + db kv.RwTx, + fromBucket string, + toBucket string, + tmpdir string, + extractFunc ExtractFunc, + loadFunc LoadFunc, + args TransformArgs, + logger log.Logger, +) error { + bufferSize := BufferOptimalSize + if args.BufferSize > 0 { + bufferSize = datasize.ByteSize(args.BufferSize) + } + buffer := getBufferByType(args.BufferType, bufferSize, nil) + collector := NewCollector(logPrefix, tmpdir, buffer, logger) + defer collector.Close() + + t := time.Now() + if err := extractBucketIntoFiles(logPrefix, db, fromBucket, args.ExtractStartKey, args.ExtractEndKey, collector, extractFunc, args.Quit, args.LogDetailsExtract, logger); err != nil { + return err + } + logger.Trace(fmt.Sprintf("[%s] Extraction finished", logPrefix), "took", time.Since(t)) + + defer func(t time.Time) { + logger.Trace(fmt.Sprintf("[%s] Load finished", logPrefix), "took", time.Since(t)) + }(time.Now()) + return collector.Load(db, toBucket, loadFunc, args) +} + +// extractBucketIntoFiles - [startkey, endkey) +func extractBucketIntoFiles( + logPrefix string, + db kv.Tx, + bucket string, + startkey []byte, + endkey []byte, + collector *Collector, + extractFunc ExtractFunc, + quit <-chan struct{}, + additionalLogArguments AdditionalLogArguments, + logger log.Logger, +) error { + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + + c, err := db.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + for k, v, e := c.Seek(startkey); k != nil; k, v, e = c.Next() { + if e != nil { + return e + } + if err := common.Stopped(quit); err != nil { + return err + } + select { + default: + case <-logEvery.C: + logArs := []interface{}{"from", bucket} + if additionalLogArguments != nil { + logArs = append(logArs, additionalLogArguments(k, v)...) + } else { + logArs = append(logArs, "current_prefix", makeCurrentKeyStr(k)) + } + + logger.Info(fmt.Sprintf("[%s] ETL [1/2] Extracting", logPrefix), logArs...) + } + if endkey != nil && bytes.Compare(k, endkey) >= 0 { + // endKey is exclusive bound: [startkey, endkey) + return nil + } + if err := extractFunc(k, v, collector.extractNextFunc); err != nil { + return err + } + } + return collector.flushBuffer(true) +} + +type currentTableReader struct { + getter kv.Tx + bucket string +} + +func (s *currentTableReader) Get(key []byte) ([]byte, error) { + return s.getter.GetOne(s.bucket, key) +} + +// IdentityLoadFunc loads entries as they are, without transformation +var IdentityLoadFunc LoadFunc = func(k []byte, value []byte, _ CurrentTableReader, next LoadNextFunc) error { + return next(k, k, value) +} + +func isIdentityLoadFunc(f LoadFunc) bool { + return f == nil || reflect.ValueOf(IdentityLoadFunc).Pointer() == reflect.ValueOf(f).Pointer() +} diff --git a/erigon-lib/etl/etl_test.go b/erigon-lib/etl/etl_test.go new file mode 100644 index 00000000000..81b257df4b3 --- /dev/null +++ b/erigon-lib/etl/etl_test.go @@ -0,0 +1,647 @@ +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package etl + +import ( + "bytes" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "os" + "strings" + "testing" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func decodeHex(in string) []byte { + payload, err := hex.DecodeString(in) + if err != nil { + panic(err) + } + return payload +} + +func TestEmptyValueIsNotANil(t *testing.T) { + logger := log.New() + t.Run("sortable", func(t *testing.T) { + collector := NewCollector(t.Name(), "", NewSortableBuffer(1), logger) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + if k[0] == 1 { + require.Equal([]byte{}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) + }) + t.Run("append", func(t *testing.T) { + // append buffer doesn't support nil values + collector := NewCollector(t.Name(), "", NewAppendBuffer(1), logger) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + require.Nil(v) + return nil + }, TransformArgs{})) + }) + t.Run("oldest", func(t *testing.T) { + collector := NewCollector(t.Name(), "", NewOldestEntryBuffer(1), logger) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + if k[0] == 1 { + require.Equal([]byte{}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) + }) + t.Run("merge", func(t *testing.T) { + collector := NewCollector(t.Name(), "", NewLatestMergedEntryMergedBuffer(1, func(v1 []byte, v2 []byte) []byte { + return append(v1, v2...) + }), logger) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + if k[0] == 1 { + require.Equal([]byte{}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) + }) +} + +func TestEmptyKeyValue(t *testing.T) { + logger := log.New() + _, tx := memdb.NewTestTx(t) + require := require.New(t) + table := kv.ChaindataTables[0] + collector := NewCollector(t.Name(), "", NewSortableBuffer(1), logger) + defer collector.Close() + require.NoError(collector.Collect([]byte{2}, []byte{})) + require.NoError(collector.Collect([]byte{1}, []byte{1})) + require.NoError(collector.Load(tx, table, IdentityLoadFunc, TransformArgs{})) + v, err := tx.GetOne(table, []byte{2}) + require.NoError(err) + require.Equal([]byte{}, v) + v, err = tx.GetOne(table, []byte{1}) + require.NoError(err) + require.Equal([]byte{1}, v) + + collector = NewCollector(t.Name(), "", NewSortableBuffer(1), logger) + defer collector.Close() + require.NoError(collector.Collect([]byte{}, nil)) + require.NoError(collector.Load(tx, table, IdentityLoadFunc, TransformArgs{})) + v, err = tx.GetOne(table, []byte{}) + require.NoError(err) + require.Nil(v) +} + +func TestWriteAndReadBufferEntry(t *testing.T) { + b := NewSortableBuffer(128) + buffer := bytes.NewBuffer(make([]byte, 0)) + + entries := make([]sortableBufferEntry, 100) + for i := range entries { + entries[i].key = []byte(fmt.Sprintf("key-%d", i)) + entries[i].value = []byte(fmt.Sprintf("value-%d", i)) + b.Put(entries[i].key, entries[i].value) + } + + if err := b.Write(buffer); err != nil { + t.Error(err) + } + + bb := buffer.Bytes() + + readBuffer := bytes.NewReader(bb) + + for i := range entries { + k, v, err := readElementFromDisk(readBuffer, readBuffer, nil, nil) + if err != nil { + t.Error(err) + } + assert.Equal(t, string(entries[i].key), string(k)) + assert.Equal(t, string(entries[i].value), string(v)) + } + + _, _, err := readElementFromDisk(readBuffer, readBuffer, nil, nil) + assert.Equal(t, io.EOF, err) +} + +func TestNextKey(t *testing.T) { + for _, tc := range []string{ + "00000001->00000002", + "000000FF->00000100", + "FEFFFFFF->FF000000", + } { + parts := strings.Split(tc, "->") + input := decodeHex(parts[0]) + expectedOutput := decodeHex(parts[1]) + actualOutput, err := NextKey(input) + assert.NoError(t, err) + assert.Equal(t, expectedOutput, actualOutput) + } +} + +func TestNextKeyErr(t *testing.T) { + for _, tc := range []string{ + "", + "FFFFFF", + } { + input := decodeHex(tc) + _, err := NextKey(input) + assert.Error(t, err) + } +} + +func TestFileDataProviders(t *testing.T) { + logger := log.New() + // test invariant when we go through files (> 1 buffer) + _, tx := memdb.NewTestTx(t) + sourceBucket := kv.ChaindataTables[0] + + generateTestData(t, tx, sourceBucket, 10) + + collector := NewCollector(t.Name(), "", NewSortableBuffer(1), logger) + + err := extractBucketIntoFiles("logPrefix", tx, sourceBucket, nil, nil, collector, testExtractToMapFunc, nil, nil, logger) + assert.NoError(t, err) + + assert.Equal(t, 10, len(collector.dataProviders)) + + for _, p := range collector.dataProviders { + fp, ok := p.(*fileDataProvider) + assert.True(t, ok) + err := fp.Wait() + require.NoError(t, err) + _, err = os.Stat(fp.file.Name()) + assert.NoError(t, err) + } + + collector.Close() + + for _, p := range collector.dataProviders { + fp, ok := p.(*fileDataProvider) + assert.True(t, ok) + _, err = os.Stat(fp.file.Name()) + assert.True(t, os.IsNotExist(err)) + } +} + +func TestRAMDataProviders(t *testing.T) { + logger := log.New() + // test invariant when we go through memory (1 buffer) + _, tx := memdb.NewTestTx(t) + sourceBucket := kv.ChaindataTables[0] + generateTestData(t, tx, sourceBucket, 10) + + collector := NewCollector(t.Name(), "", NewSortableBuffer(BufferOptimalSize), logger) + err := extractBucketIntoFiles("logPrefix", tx, sourceBucket, nil, nil, collector, testExtractToMapFunc, nil, nil, logger) + assert.NoError(t, err) + + assert.Equal(t, 1, len(collector.dataProviders)) + + for _, p := range collector.dataProviders { + mp, ok := p.(*memoryDataProvider) + assert.True(t, ok) + assert.Equal(t, 10, mp.buffer.Len()) + } +} + +func TestTransformRAMOnly(t *testing.T) { + logger := log.New() + // test invariant when we only have one buffer and it fits into RAM (exactly 1 buffer) + _, tx := memdb.NewTestTx(t) + + sourceBucket := kv.ChaindataTables[0] + destBucket := kv.ChaindataTables[1] + generateTestData(t, tx, sourceBucket, 20) + err := Transform( + "logPrefix", + tx, + sourceBucket, + destBucket, + "", // temp dir + testExtractToMapFunc, + testLoadFromMapFunc, + TransformArgs{}, + logger, + ) + assert.Nil(t, err) + compareBuckets(t, tx, sourceBucket, destBucket, nil) +} + +func TestEmptySourceBucket(t *testing.T) { + logger := log.New() + _, tx := memdb.NewTestTx(t) + sourceBucket := kv.ChaindataTables[0] + destBucket := kv.ChaindataTables[1] + err := Transform( + "logPrefix", + tx, + sourceBucket, + destBucket, + "", // temp dir + testExtractToMapFunc, + testLoadFromMapFunc, + TransformArgs{}, + logger, + ) + assert.Nil(t, err) + compareBuckets(t, tx, sourceBucket, destBucket, nil) +} + +func TestTransformExtractStartKey(t *testing.T) { + logger := log.New() + // test invariant when we only have one buffer and it fits into RAM (exactly 1 buffer) + _, tx := memdb.NewTestTx(t) + sourceBucket := kv.ChaindataTables[0] + destBucket := kv.ChaindataTables[1] + generateTestData(t, tx, sourceBucket, 10) + err := Transform( + "logPrefix", + tx, + sourceBucket, + destBucket, + "", // temp dir + testExtractToMapFunc, + testLoadFromMapFunc, + TransformArgs{ExtractStartKey: []byte(fmt.Sprintf("%10d-key-%010d", 5, 5))}, + logger, + ) + assert.Nil(t, err) + compareBuckets(t, tx, sourceBucket, destBucket, []byte(fmt.Sprintf("%10d-key-%010d", 5, 5))) +} + +func TestTransformThroughFiles(t *testing.T) { + logger := log.New() + // test invariant when we go through files (> 1 buffer) + _, tx := memdb.NewTestTx(t) + sourceBucket := kv.ChaindataTables[0] + destBucket := kv.ChaindataTables[1] + generateTestData(t, tx, sourceBucket, 10) + err := Transform( + "logPrefix", + tx, + sourceBucket, + destBucket, + "", // temp dir + testExtractToMapFunc, + testLoadFromMapFunc, + TransformArgs{ + BufferSize: 1, + }, + logger, + ) + assert.Nil(t, err) + compareBuckets(t, tx, sourceBucket, destBucket, nil) +} + +func TestTransformDoubleOnExtract(t *testing.T) { + logger := log.New() + // test invariant when extractFunc multiplies the data 2x + _, tx := memdb.NewTestTx(t) + sourceBucket := kv.ChaindataTables[0] + destBucket := kv.ChaindataTables[1] + generateTestData(t, tx, sourceBucket, 10) + err := Transform( + "logPrefix", + tx, + sourceBucket, + destBucket, + "", // temp dir + testExtractDoubleToMapFunc, + testLoadFromMapFunc, + TransformArgs{}, + logger, + ) + assert.Nil(t, err) + compareBucketsDouble(t, tx, sourceBucket, destBucket) +} + +func TestTransformDoubleOnLoad(t *testing.T) { + logger := log.New() + // test invariant when loadFunc multiplies the data 2x + _, tx := memdb.NewTestTx(t) + sourceBucket := kv.ChaindataTables[0] + destBucket := kv.ChaindataTables[1] + generateTestData(t, tx, sourceBucket, 10) + err := Transform( + "logPrefix", + tx, + sourceBucket, + destBucket, + "", // temp dir + testExtractToMapFunc, + testLoadFromMapDoubleFunc, + TransformArgs{}, + logger, + ) + assert.Nil(t, err) + compareBucketsDouble(t, tx, sourceBucket, destBucket) +} + +func generateTestData(t *testing.T, db kv.Putter, bucket string, count int) { + t.Helper() + for i := 0; i < count; i++ { + k := []byte(fmt.Sprintf("%10d-key-%010d", i, i)) + v := []byte(fmt.Sprintf("val-%099d", i)) + err := db.Put(bucket, k, v) + assert.NoError(t, err) + } +} + +func testExtractToMapFunc(k, v []byte, next ExtractNextFunc) error { + valueMap := make(map[string][]byte) + valueMap["value"] = v + out, err := json.Marshal(valueMap) + if err != nil { + return err + } + return next(k, k, out) +} + +func testExtractDoubleToMapFunc(k, v []byte, next ExtractNextFunc) error { + var err error + valueMap := make(map[string][]byte) + valueMap["value"] = append(v, 0xAA) + k1 := append(k, 0xAA) + out, err := json.Marshal(valueMap) + if err != nil { + panic(err) + } + + err = next(k, k1, out) + if err != nil { + return err + } + + valueMap = make(map[string][]byte) + valueMap["value"] = append(v, 0xBB) + k2 := append(k, 0xBB) + out, err = json.Marshal(valueMap) + if err != nil { + panic(err) + } + return next(k, k2, out) +} + +func testLoadFromMapFunc(k []byte, v []byte, _ CurrentTableReader, next LoadNextFunc) error { + valueMap := make(map[string][]byte) + err := json.Unmarshal(v, &valueMap) + if err != nil { + return err + } + realValue := valueMap["value"] + return next(k, k, realValue) +} + +func testLoadFromMapDoubleFunc(k []byte, v []byte, _ CurrentTableReader, next LoadNextFunc) error { + valueMap := make(map[string][]byte) + err := json.Unmarshal(v, &valueMap) + if err != nil { + return err + } + realValue := valueMap["value"] + + err = next(k, append(k, 0xAA), append(realValue, 0xAA)) + if err != nil { + return err + } + return next(k, append(k, 0xBB), append(realValue, 0xBB)) +} + +func compareBuckets(t *testing.T, db kv.Tx, b1, b2 string, startKey []byte) { + t.Helper() + b1Map := make(map[string]string) + err := db.ForEach(b1, startKey, func(k, v []byte) error { + b1Map[fmt.Sprintf("%x", k)] = fmt.Sprintf("%x", v) + return nil + }) + assert.NoError(t, err) + b2Map := make(map[string]string) + err = db.ForEach(b2, nil, func(k, v []byte) error { + b2Map[fmt.Sprintf("%x", k)] = fmt.Sprintf("%x", v) + return nil + }) + assert.NoError(t, err) + assert.Equal(t, b1Map, b2Map) +} + +func compareBucketsDouble(t *testing.T, db kv.Tx, b1, b2 string) { + t.Helper() + b1Map := make(map[string]string) + err := db.ForEach(b1, nil, func(k, v []byte) error { + b1Map[fmt.Sprintf("%x", append(k, 0xAA))] = fmt.Sprintf("%x", append(v, 0xAA)) + b1Map[fmt.Sprintf("%x", append(k, 0xBB))] = fmt.Sprintf("%x", append(v, 0xBB)) + return nil + }) + assert.NoError(t, err) + b2Map := make(map[string]string) + err = db.ForEach(b2, nil, func(k, v []byte) error { + b2Map[fmt.Sprintf("%x", k)] = fmt.Sprintf("%x", v) + return nil + }) + assert.NoError(t, err) + assert.Equal(t, b1Map, b2Map) +} + +func TestReuseCollectorAfterLoad(t *testing.T) { + logger := log.New() + buf := NewSortableBuffer(128) + c := NewCollector("", t.TempDir(), buf, logger) + + err := c.Collect([]byte{1}, []byte{2}) + require.NoError(t, err) + see := 0 + err = c.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + see++ + return nil + }, TransformArgs{}) + require.NoError(t, err) + require.Equal(t, 1, see) + + // buffers are not lost + require.Zero(t, len(buf.data)) + require.Zero(t, len(buf.lens)) + require.Zero(t, len(buf.offsets)) + require.NotZero(t, cap(buf.data)) + require.NotZero(t, cap(buf.lens)) + require.NotZero(t, cap(buf.offsets)) + + // teset that no data visible + see = 0 + err = c.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + see++ + return nil + }, TransformArgs{}) + require.NoError(t, err) + require.Equal(t, 0, see) + + // reuse + see = 0 + err = c.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + see++ + return nil + }, TransformArgs{}) + require.NoError(t, err) + require.Equal(t, 0, see) + + err = c.Collect([]byte{3}, []byte{4}) + require.NoError(t, err) + see = 0 + err = c.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + see++ + return nil + }, TransformArgs{}) + require.NoError(t, err) + require.Equal(t, 1, see) +} + +func TestMerge(t *testing.T) { + collector := NewCollector(t.Name(), "", NewLatestMergedEntryMergedBuffer(4, func(v1 []byte, v2 []byte) []byte { + return append(v1, v2...) + }), log.New()) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{1})) + require.NoError(collector.Collect([]byte{1}, []byte{2})) + require.NoError(collector.Collect([]byte{1}, []byte{3})) + require.NoError(collector.Collect([]byte{1}, []byte{4})) + require.NoError(collector.Collect([]byte{1}, []byte{5})) + require.NoError(collector.Collect([]byte{1}, []byte{6})) + require.NoError(collector.Collect([]byte{1}, []byte{7})) + require.NoError(collector.Collect([]byte{2}, []byte{10})) + require.NoError(collector.Collect([]byte{2}, []byte{20})) + require.NoError(collector.Collect([]byte{2}, []byte{30})) + require.NoError(collector.Collect([]byte{2}, []byte{40})) + require.NoError(collector.Collect([]byte{2}, []byte{50})) + require.NoError(collector.Collect([]byte{2}, []byte{})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Collect([]byte{3}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + if k[0] == 1 { + require.Equal([]byte{1, 2, 3, 4, 5, 6, 7}, v) + } else if k[0] == 2 { + require.Equal([]byte{10, 20, 30, 40, 50}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) +} + +func TestAppend(t *testing.T) { + // append buffer doesn't support nil values + collector := NewCollector(t.Name(), "", NewAppendBuffer(4), log.New()) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{1})) + require.NoError(collector.Collect([]byte{1}, []byte{2})) + require.NoError(collector.Collect([]byte{1}, []byte{3})) + require.NoError(collector.Collect([]byte{1}, []byte{4})) + require.NoError(collector.Collect([]byte{1}, []byte{5})) + require.NoError(collector.Collect([]byte{1}, []byte{6})) + require.NoError(collector.Collect([]byte{1}, []byte{7})) + require.NoError(collector.Collect([]byte{2}, []byte{10})) + require.NoError(collector.Collect([]byte{2}, []byte{20})) + require.NoError(collector.Collect([]byte{2}, []byte{30})) + require.NoError(collector.Collect([]byte{2}, []byte{40})) + require.NoError(collector.Collect([]byte{2}, []byte{50})) + require.NoError(collector.Collect([]byte{2}, []byte{})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Collect([]byte{3}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + fmt.Printf("%x %x\n", k, v) + if k[0] == 1 { + require.Equal([]byte{1, 2, 3, 4, 5, 6, 7}, v) + } else if k[0] == 2 { + require.Equal([]byte{10, 20, 30, 40, 50}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) +} + +func TestOldest(t *testing.T) { + collector := NewCollector(t.Name(), "", NewOldestEntryBuffer(1), log.New()) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{1})) + require.NoError(collector.Collect([]byte{1}, []byte{2})) + require.NoError(collector.Collect([]byte{1}, []byte{3})) + require.NoError(collector.Collect([]byte{1}, []byte{4})) + require.NoError(collector.Collect([]byte{1}, []byte{5})) + require.NoError(collector.Collect([]byte{1}, []byte{6})) + require.NoError(collector.Collect([]byte{1}, []byte{7})) + require.NoError(collector.Collect([]byte{2}, nil)) + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + if k[0] == 1 { + require.Equal([]byte{1}, v) + } else { + require.Nil(v) + } + return nil + }, TransformArgs{})) +} + +func TestSortable(t *testing.T) { + collector := NewCollector(t.Name(), "", NewSortableBuffer(1), log.New()) + defer collector.Close() + require := require.New(t) + require.NoError(collector.Collect([]byte{1}, []byte{1})) + require.NoError(collector.Collect([]byte{1}, []byte{2})) + require.NoError(collector.Collect([]byte{1}, []byte{3})) + require.NoError(collector.Collect([]byte{1}, []byte{4})) + require.NoError(collector.Collect([]byte{1}, []byte{5})) + require.NoError(collector.Collect([]byte{1}, []byte{6})) + require.NoError(collector.Collect([]byte{1}, []byte{7})) + require.NoError(collector.Collect([]byte{2}, []byte{1})) + require.NoError(collector.Collect([]byte{2}, []byte{20})) + require.NoError(collector.Collect([]byte{2}, nil)) + + keys, vals := [][]byte{}, [][]byte{} + require.NoError(collector.Load(nil, "", func(k, v []byte, table CurrentTableReader, next LoadNextFunc) error { + keys = append(keys, k) + vals = append(vals, v) + return nil + }, TransformArgs{})) + + require.Equal([][]byte{{1}, {1}, {1}, {1}, {1}, {1}, {1}, {2}, {2}, {2}}, keys) + require.Equal([][]byte{{1}, {2}, {3}, {4}, {5}, {6}, {7}, {1}, {20}, nil}, vals) + +} diff --git a/erigon-lib/etl/heap.go b/erigon-lib/etl/heap.go new file mode 100644 index 00000000000..03eea253c81 --- /dev/null +++ b/erigon-lib/etl/heap.go @@ -0,0 +1,122 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distwributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package etl + +import ( + "bytes" +) + +type HeapElem struct { + Key []byte + Value []byte + TimeIdx int +} + +type Heap struct { + elems []*HeapElem +} + +func (h *Heap) Len() int { + return len(h.elems) +} + +func (h *Heap) Less(i, j int) bool { + if c := bytes.Compare(h.elems[i].Key, h.elems[j].Key); c != 0 { + return c < 0 + } + return h.elems[i].TimeIdx < h.elems[j].TimeIdx +} + +func (h *Heap) Swap(i, j int) { + h.elems[i], h.elems[j] = h.elems[j], h.elems[i] +} + +func (h *Heap) Push(x *HeapElem) { + h.elems = append(h.elems, x) +} + +func (h *Heap) Pop() *HeapElem { + old := h.elems + n := len(old) - 1 + x := old[n] + //old[n].Key, old[n].Value, old[n].TimeIdx = nil, nil, 0 + old[n] = nil + h.elems = old[0:n] + return x +} + +// ------ Copy-Paste of `container/heap/heap.go` without interface conversion + +// Init establishes the heap invariants required by the other routines in this package. +// Init is idempotent with respect to the heap invariants +// and may be called whenever the heap invariants may have been invalidated. +// The complexity is O(n) where n = h.Len(). +func heapInit(h *Heap) { + // heapify + n := h.Len() + for i := n/2 - 1; i >= 0; i-- { + down(h, i, n) + } +} + +// Push pushes the element x onto the heap. +// The complexity is O(log n) where n = h.Len(). +func heapPush(h *Heap, x *HeapElem) { + h.Push(x) + up(h, h.Len()-1) +} + +// Pop removes and returns the minimum element (according to Less) from the heap. +// The complexity is O(log n) where n = h.Len(). +// Pop is equivalent to Remove(h, 0). +func heapPop(h *Heap) *HeapElem { + n := h.Len() - 1 + h.Swap(0, n) + down(h, 0, n) + return h.Pop() +} + +func up(h *Heap, j int) { + for { + i := (j - 1) / 2 // parent + if i == j || !h.Less(j, i) { + break + } + h.Swap(i, j) + j = i + } +} + +func down(h *Heap, i0, n int) bool { + i := i0 + for { + j1 := 2*i + 1 + if j1 >= n || j1 < 0 { // j1 < 0 after int overflow + break + } + j := j1 // left child + if j2 := j1 + 1; j2 < n && h.Less(j2, j1) { + j = j2 // = 2*i + 2 // right child + } + if !h.Less(j, i) { + break + } + h.Swap(i, j) + i = j + } + return i > i0 +} diff --git a/erigon-lib/etl/progress.go b/erigon-lib/etl/progress.go new file mode 100644 index 00000000000..600af25ad94 --- /dev/null +++ b/erigon-lib/etl/progress.go @@ -0,0 +1,24 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package etl + +func ProgressFromKey(k []byte) int { + if len(k) < 1 { + return 0 + } + return int(float64(k[0]>>4) * 3.3) +} diff --git a/erigon-lib/go.mod b/erigon-lib/go.mod new file mode 100644 index 00000000000..f041253f649 --- /dev/null +++ b/erigon-lib/go.mod @@ -0,0 +1,150 @@ +module github.com/ledgerwatch/erigon-lib + +go 1.20 + +require ( + github.com/erigontech/mdbx-go v0.27.21 + github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231210032908-6ff6f4c91c60 + github.com/ledgerwatch/interfaces v0.0.0-20231209102305-b17e86fbe07d + github.com/ledgerwatch/log/v3 v3.9.0 + github.com/ledgerwatch/secp256k1 v1.0.0 +) + +require ( + github.com/RoaringBitmap/roaring v1.2.3 + github.com/anacrolix/dht/v2 v2.20.0 + github.com/anacrolix/go-libutp v1.3.1 + github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4 + github.com/anacrolix/torrent v1.52.6-0.20231201115409-7ea994b6bbd8 + github.com/aws/aws-sdk-go-v2 v1.21.2 + github.com/aws/aws-sdk-go-v2/config v1.19.0 + github.com/aws/aws-sdk-go-v2/credentials v1.13.43 + github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 + github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b + github.com/containerd/cgroups/v3 v3.0.2 + github.com/crate-crypto/go-kzg-4844 v0.7.0 + github.com/deckarep/golang-set/v2 v2.3.1 + github.com/edsrzf/mmap-go v1.1.0 + github.com/go-stack/stack v1.8.1 + github.com/gofrs/flock v0.8.1 + github.com/google/btree v1.1.2 + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 + github.com/hashicorp/golang-lru/v2 v2.0.6 + github.com/holiman/uint256 v1.2.3 + github.com/matryer/moq v0.3.3 + github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 + github.com/pelletier/go-toml/v2 v2.1.0 + github.com/prometheus/client_golang v1.17.0 + github.com/prometheus/client_model v0.5.0 + github.com/quasilyte/go-ruleguard/dsl v0.3.22 + github.com/spaolacci/murmur3 v1.1.0 + github.com/stretchr/testify v1.8.4 + github.com/tidwall/btree v1.6.0 + golang.org/x/crypto v0.16.0 + golang.org/x/exp v0.0.0-20230905200255-921286631fa9 + golang.org/x/sync v0.5.0 + golang.org/x/sys v0.15.0 + golang.org/x/time v0.5.0 + google.golang.org/grpc v1.59.0 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 + google.golang.org/protobuf v1.31.0 +) + +require ( + github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 // indirect + github.com/alecthomas/atomic v0.1.0-alpha2 // indirect + github.com/anacrolix/chansync v0.3.0 // indirect + github.com/anacrolix/envpprof v1.3.0 // indirect + github.com/anacrolix/generics v0.0.0-20230816105729-c755655aee45 // indirect + github.com/anacrolix/missinggo v1.3.0 // indirect + github.com/anacrolix/missinggo/perf v1.0.0 // indirect + github.com/anacrolix/missinggo/v2 v2.7.2-0.20230527121029-a582b4f397b9 // indirect + github.com/anacrolix/mmsg v1.0.0 // indirect + github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7 // indirect + github.com/anacrolix/stm v0.4.1-0.20221221005312-96d17df0e496 // indirect + github.com/anacrolix/sync v0.4.0 // indirect + github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect + github.com/anacrolix/utp v0.1.0 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect + github.com/aws/smithy-go v1.15.0 // indirect + github.com/bahlo/generic-list-go v0.2.0 // indirect + github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/bits-and-blooms/bitset v1.7.0 // indirect + github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cilium/ebpf v0.9.1 // indirect + github.com/consensys/bavard v0.1.13 // indirect + github.com/consensys/gnark-crypto v0.12.1 // indirect + github.com/coreos/go-systemd/v22 v22.3.2 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/docker/go-units v0.4.0 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/go-llsqlite/adapter v0.0.0-20230912124304-94ed0e573c23 // indirect + github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/godbus/dbus/v5 v5.0.4 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.3.1 // indirect + github.com/gorilla/websocket v1.5.0 // indirect + github.com/huandu/xstrings v1.4.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/mmcloughlin/addchain v0.4.0 // indirect + github.com/mschoch/smat v0.2.0 // indirect + github.com/opencontainers/runtime-spec v1.0.2 // indirect + github.com/pion/datachannel v1.5.2 // indirect + github.com/pion/dtls/v2 v2.2.4 // indirect + github.com/pion/ice/v2 v2.2.6 // indirect + github.com/pion/interceptor v0.1.11 // indirect + github.com/pion/logging v0.2.2 // indirect + github.com/pion/mdns v0.0.5 // indirect + github.com/pion/randutil v0.1.0 // indirect + github.com/pion/rtcp v1.2.9 // indirect + github.com/pion/rtp v1.7.13 // indirect + github.com/pion/sctp v1.8.2 // indirect + github.com/pion/sdp/v3 v3.0.5 // indirect + github.com/pion/srtp/v2 v2.0.9 // indirect + github.com/pion/stun v0.3.5 // indirect + github.com/pion/transport v0.13.1 // indirect + github.com/pion/transport/v2 v2.0.0 // indirect + github.com/pion/turn/v2 v2.0.8 // indirect + github.com/pion/udp v0.1.4 // indirect + github.com/pion/webrtc/v3 v3.1.42 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.11.1 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect + go.etcd.io/bbolt v1.3.6 // indirect + go.opentelemetry.io/otel v1.8.0 // indirect + go.opentelemetry.io/otel/trace v1.8.0 // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/tools v0.16.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + modernc.org/libc v1.24.1 // indirect + modernc.org/mathutil v1.6.0 // indirect + modernc.org/memory v1.6.0 // indirect + modernc.org/sqlite v1.26.0 // indirect + rsc.io/tmplfunc v0.0.3 // indirect + zombiezen.com/go/sqlite v0.13.1 // indirect +) diff --git a/erigon-lib/go.sum b/erigon-lib/go.sum new file mode 100644 index 00000000000..9cec96b6b6b --- /dev/null +++ b/erigon-lib/go.sum @@ -0,0 +1,686 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +crawshaw.io/iox v0.0.0-20181124134642-c51c3df30797 h1:yDf7ARQc637HoxDho7xjqdvO5ZA2Yb+xzv/fOnnvZzw= +crawshaw.io/iox v0.0.0-20181124134642-c51c3df30797/go.mod h1:sXBiorCo8c46JlQV3oXPKINnZ8mcqnye1EkVkqsectk= +crawshaw.io/sqlite v0.3.2/go.mod h1:igAO5JulrQ1DbdZdtVq48mnZUBAPOeFzer7VhDWNtW4= +filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w= +github.com/RoaringBitmap/roaring v0.4.17/go.mod h1:D3qVegWTmfCaX4Bl5CrBE9hfrSrrXIr8KVNvRsDi1NI= +github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= +github.com/RoaringBitmap/roaring v1.2.3 h1:yqreLINqIrX22ErkKI0vY47/ivtJr6n+kMhVOVmhWBY= +github.com/RoaringBitmap/roaring v1.2.3/go.mod h1:plvDsJQpxOC5bw8LRteu/MLWHsHez/3y6cubLI4/1yE= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 h1:byYvvbfSo3+9efR4IeReh77gVs4PnNDR3AMOE9NJ7a0= +github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0/go.mod h1:q37NoqncT41qKc048STsifIt69LfUJ8SrWWcz/yam5k= +github.com/alecthomas/assert/v2 v2.0.0-alpha3 h1:pcHeMvQ3OMstAWgaeaXIAL8uzB9xMm2zlxt+/4ml8lk= +github.com/alecthomas/atomic v0.1.0-alpha2 h1:dqwXmax66gXvHhsOS4pGPZKqYOlTkapELkLb3MNdlH8= +github.com/alecthomas/atomic v0.1.0-alpha2/go.mod h1:zD6QGEyw49HIq19caJDc2NMXAy8rNi9ROrxtMXATfyI= +github.com/alecthomas/repr v0.0.0-20210801044451-80ca428c5142 h1:8Uy0oSf5co/NZXje7U1z8Mpep++QJOldL2hs/sBQf48= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/anacrolix/chansync v0.3.0 h1:lRu9tbeuw3wl+PhMu/r+JJCRu5ArFXIluOgdF0ao6/U= +github.com/anacrolix/chansync v0.3.0/go.mod h1:DZsatdsdXxD0WiwcGl0nJVwyjCKMDv+knl1q2iBjA2k= +github.com/anacrolix/dht/v2 v2.20.0 h1:eDx9lfE9iCSf5sPK0290GToHURNhEFuUGN8iyvhvJDk= +github.com/anacrolix/dht/v2 v2.20.0/go.mod h1:SDGC+sEs1pnO2sJGYuhvIis7T8749dDHNfcjtdH4e3g= +github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= +github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= +github.com/anacrolix/envpprof v1.1.0/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4= +github.com/anacrolix/envpprof v1.3.0 h1:WJt9bpuT7A/CDCxPOv/eeZqHWlle/Y0keJUvc6tcJDk= +github.com/anacrolix/envpprof v1.3.0/go.mod h1:7QIG4CaX1uexQ3tqd5+BRa/9e2D02Wcertl6Yh0jCB0= +github.com/anacrolix/generics v0.0.0-20230816105729-c755655aee45 h1:Kmcl3I9K2+5AdnnR7hvrnVT0TLeFWWMa9bxnm55aVIg= +github.com/anacrolix/generics v0.0.0-20230816105729-c755655aee45/go.mod h1:ff2rHB/joTV03aMSSn/AZNnaIpUw0h3njetGsaXcMy8= +github.com/anacrolix/go-libutp v1.3.1 h1:idJzreNLl+hNjGC3ZnUOjujEaryeOGgkwHLqSGoige0= +github.com/anacrolix/go-libutp v1.3.1/go.mod h1:heF41EC8kN0qCLMokLBVkB8NXiLwx3t8R8810MTNI5o= +github.com/anacrolix/log v0.3.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU= +github.com/anacrolix/log v0.6.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU= +github.com/anacrolix/log v0.10.1-0.20220123034749-3920702c17f8/go.mod h1:GmnE2c0nvz8pOIPUSC9Rawgefy1sDXqposC2wgtBZE4= +github.com/anacrolix/log v0.13.1/go.mod h1:D4+CvN8SnruK6zIFS/xPoRJmtvtnxs+CSfDQ+BFxZ68= +github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4 h1:01OE3pdiBGIZGyQb6cIAu+QfaNhBR9k5MVmLsl+DVbE= +github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4/go.mod h1:1OmJESOtxQGNMlUO5rcv96Vpp9mfMqXXbe2RdinFLdY= +github.com/anacrolix/lsan v0.0.0-20211126052245-807000409a62 h1:P04VG6Td13FHMgS5ZBcJX23NPC/fiC4cp9bXwYujdYM= +github.com/anacrolix/lsan v0.0.0-20211126052245-807000409a62/go.mod h1:66cFKPCO7Sl4vbFnAaSq7e4OXtdMhRSBagJGWgmpJbM= +github.com/anacrolix/missinggo v0.0.0-20180725070939-60ef2fbf63df/go.mod h1:kwGiTUTZ0+p4vAz3VbAI5a30t2YbvemcmspjKwrAz5s= +github.com/anacrolix/missinggo v1.1.0/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo= +github.com/anacrolix/missinggo v1.1.2-0.20190815015349-b888af804467/go.mod h1:MBJu3Sk/k3ZfGYcS7z18gwfu72Ey/xopPFJJbTi5yIo= +github.com/anacrolix/missinggo v1.2.1/go.mod h1:J5cMhif8jPmFoC3+Uvob3OXXNIhOUikzMt+uUjeM21Y= +github.com/anacrolix/missinggo v1.3.0 h1:06HlMsudotL7BAELRZs0yDZ4yVXsHXGi323QBjAVASw= +github.com/anacrolix/missinggo v1.3.0/go.mod h1:bqHm8cE8xr+15uVfMG3BFui/TxyB6//H5fwlq/TeqMc= +github.com/anacrolix/missinggo/perf v1.0.0 h1:7ZOGYziGEBytW49+KmYGTaNfnwUqP1HBsy6BqESAJVw= +github.com/anacrolix/missinggo/perf v1.0.0/go.mod h1:ljAFWkBuzkO12MQclXzZrosP5urunoLS0Cbvb4V0uMQ= +github.com/anacrolix/missinggo/v2 v2.2.0/go.mod h1:o0jgJoYOyaoYQ4E2ZMISVa9c88BbUBVQQW4QeRkNCGY= +github.com/anacrolix/missinggo/v2 v2.5.1/go.mod h1:WEjqh2rmKECd0t1VhQkLGTdIWXO6f6NLjp5GlMZ+6FA= +github.com/anacrolix/missinggo/v2 v2.5.2/go.mod h1:yNvsLrtZYRYCOI+KRH/JM8TodHjtIE/bjOGhQaLOWIE= +github.com/anacrolix/missinggo/v2 v2.7.2-0.20230527121029-a582b4f397b9 h1:W/oGeHhYwxueeiDjQfmK9G+X9M2xJgfTtow62v0TWAs= +github.com/anacrolix/missinggo/v2 v2.7.2-0.20230527121029-a582b4f397b9/go.mod h1:mIEtp9pgaXqt8VQ3NQxFOod/eQ1H0D1XsZzKUQfwtac= +github.com/anacrolix/mmsg v0.0.0-20180515031531-a4a3ba1fc8bb/go.mod h1:x2/ErsYUmT77kezS63+wzZp8E3byYB0gzirM/WMBLfw= +github.com/anacrolix/mmsg v1.0.0 h1:btC7YLjOn29aTUAExJiVUhQOuf/8rhm+/nWCMAnL3Hg= +github.com/anacrolix/mmsg v1.0.0/go.mod h1:x8kRaJY/dCrY9Al0PEcj1mb/uFHwP6GCJ9fLl4thEPc= +github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7 h1:lOtCD+LzoD1g7bowhYJNR++uV+FyY5bTZXKwnPex9S8= +github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7/go.mod h1:zJv1JF9AqdZiHwxqPgjuOZDGWER6nyE48WBCi/OOrMM= +github.com/anacrolix/stm v0.2.0/go.mod h1:zoVQRvSiGjGoTmbM0vSLIiaKjWtNPeTvXUSdJQA4hsg= +github.com/anacrolix/stm v0.4.1-0.20221221005312-96d17df0e496 h1:aMiRi2kOOd+nG64suAmFMVnNK2E6GsnLif7ia9tI3cA= +github.com/anacrolix/stm v0.4.1-0.20221221005312-96d17df0e496/go.mod h1:DBm8/1OXm4A4RZ6Xa9u/eOsjeAXCaoRYvd2JzlskXeM= +github.com/anacrolix/sync v0.0.0-20180808010631-44578de4e778/go.mod h1:s735Etp3joe/voe2sdaXLcqDdJSay1O0OPnM0ystjqk= +github.com/anacrolix/sync v0.3.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DCOj/I0g= +github.com/anacrolix/sync v0.4.0 h1:T+MdO/u87ir/ijWsTFsPYw5jVm0SMm4kVpg8t4KF38o= +github.com/anacrolix/sync v0.4.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DCOj/I0g= +github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= +github.com/anacrolix/tagflag v1.0.0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= +github.com/anacrolix/tagflag v1.1.0/go.mod h1:Scxs9CV10NQatSmbyjqmqmeQNwGzlNe0CMUMIxqHIG8= +github.com/anacrolix/torrent v1.52.6-0.20231201115409-7ea994b6bbd8 h1:6EyYT2DsEOZ/WwTDsQ0HXHI996IdT0MZCGP2L6xvfNg= +github.com/anacrolix/torrent v1.52.6-0.20231201115409-7ea994b6bbd8/go.mod h1:Ma/WtLey9lU97u2i55LUJ8AnXaL2GfEK6pWh7/9v1hI= +github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 h1:QAVZ3pN/J4/UziniAhJR2OZ9Ox5kOY2053tBbbqUPYA= +github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96/go.mod h1:Wa6n8cYIdaG35x15aH3Zy6d03f7P728QfdcDeD/IEOs= +github.com/anacrolix/utp v0.1.0 h1:FOpQOmIwYsnENnz7tAGohA+r6iXpRjrq8ssKSre2Cp4= +github.com/anacrolix/utp v0.1.0/go.mod h1:MDwc+vsGEq7RMw6lr2GKOEqjWny5hO5OZXRVNaBJ2Dk= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= +github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 h1:Sc82v7tDQ/vdU1WtuSyzZ1I7y/68j//HJ6uozND1IDs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14/go.mod h1:9NCTOURS8OpxvoAVHq79LK81/zC78hfRWFn+aL0SPcY= +github.com/aws/aws-sdk-go-v2/config v1.19.0 h1:AdzDvwH6dWuVARCl3RTLGRc4Ogy+N7yLFxVxXe1ClQ0= +github.com/aws/aws-sdk-go-v2/config v1.19.0/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 h1:wmGLw2i8ZTlHLw7a9ULGfQbuccw8uIiNr6sol5bFzc8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6/go.mod h1:Q0Hq2X/NuL7z8b1Dww8rmOFl+jzusKEcyvkKspwdpyc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 h1:7R8uRYyXzdD71KWVCL78lJZltah6VVznXBazvKjfH58= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15/go.mod h1:26SQUPcTNgV1Tapwdt4a1rOsYRsnBsJHLMPoxK2b0d8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 h1:skaFGzv+3kA+v2BPKhuekeb1Hbb105+44r8ASC+q5SE= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38/go.mod h1:epIZoRSSbRIwLPJU5F+OldHhwZPBdpDeQkRdCeY3+00= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 h1:9ulSU5ClouoPIYhDQdg9tpl83d5Yb91PXTKK+17q+ow= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6/go.mod h1:lnc2taBsR9nTlz9meD+lhFZZ9EWY712QHrRflWpTcOA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 h1:Ll5/YVCOzRB+gxPqs2uD0R7/MyATC0w85626glSKmp4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2/go.mod h1:Zjfqt7KhQK+PO1bbOsFNzKgaq7TcxzmEoDWN8lM0qzQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= +github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= +github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= +github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/immutable v0.2.0/go.mod h1:uc6OHo6PN2++n98KHLxW8ef4W42ylHiQSENghE1ezxI= +github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d h1:2qVb9bsAMtmAfnxXltm+6eBzrrS7SZ52c3SedsulaMI= +github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d/go.mod h1:iAr8OjJGLnLmVUr9MZ/rz4PWUy6Ouc2JLYuMArmvAJM= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bits-and-blooms/bitset v1.7.0 h1:YjAGVd3XmtK9ktAbX8Zg2g2PwLIMjGREZJHlV4j7NEo= +github.com/bits-and-blooms/bitset v1.7.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= +github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= +github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 h1:GKTyiRCL6zVf5wWaqKnf+7Qs6GbEPfd4iMOitWzXJx8= +github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8/go.mod h1:spo1JLcs67NmW1aVLEgtA8Yy1elc+X8y5SRW1sFW4Og= +github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b h1:6+ZFm0flnudZzdSE0JxlhR2hKnGPcNB35BjQf4RYQDY= +github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4= +github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= +github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= +github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= +github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= +github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= +github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= +github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= +github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set/v2 v2.3.1 h1:vjmkvJt/IV27WXPyYQpAh4bRyWJc5Y435D17XQ9QU5A= +github.com/deckarep/golang-set/v2 v2.3.1/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v0.0.0-20180421182945-02af3965c54e/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/edsrzf/mmap-go v1.1.0 h1:6EUwBLQ/Mcr1EYLE4Tn1VdW1A4ckqCQWZBw8Hr0kjpQ= +github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/erigontech/mdbx-go v0.27.21 h1:Pv47QIiRXR8Nv+nltZteLm4xkRwuvqmOCjzZj9X0s1A= +github.com/erigontech/mdbx-go v0.27.21/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4= +github.com/frankban/quicktest v1.9.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/go-unsnap-stream v0.0.0-20190901134440-81cf024a9e0a/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= +github.com/glycerine/goconvey v0.0.0-20190315024820-982ee783a72e/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= +github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-llsqlite/adapter v0.0.0-20230912124304-94ed0e573c23 h1:7krbnPREaxbmEaAkZovTNCMjmiZXEy/Gz9isFbqFK0I= +github.com/go-llsqlite/adapter v0.0.0-20230912124304-94ed0e573c23/go.mod h1:DADrR88ONKPPeSGjFp5iEN55Arx3fi2qXZeKCYDpbmU= +github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c h1:pm7z8uwA2q3s8fAsJmKuGckNohqIrw2PRtv6yJ6z0Ro= +github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c/go.mod h1:UdTSzmN3nr5dJNuZCsbPLfhSQB76u16rWh8pn+WFx9Q= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= +github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= +github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20190309154008-847fc94819f9/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20190910122728-9d188e94fb99/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru/v2 v2.0.6 h1:3xi/Cafd1NaoEnS/yDssIiuVeDVywU0QdFGl3aQaQHM= +github.com/hashicorp/golang-lru/v2 v2.0.6/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= +github.com/holiman/uint256 v1.2.3 h1:K8UWO1HUJpRMXBxbmaY1Y8IAMZC/RsKB+ArEnnK4l5o= +github.com/holiman/uint256 v1.2.3/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= +github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= +github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= +github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= +github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231210032908-6ff6f4c91c60 h1:bsZ6XWPJkNp1DeVHkaX9/+/Tqg7+r5/IkRPlyc4Ztq4= +github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231210032908-6ff6f4c91c60/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= +github.com/ledgerwatch/interfaces v0.0.0-20231209102305-b17e86fbe07d h1:7aB9lKmUGAaWt4TzXnGLzJSZkhyuqREMmaao+Gn5Ky0= +github.com/ledgerwatch/interfaces v0.0.0-20231209102305-b17e86fbe07d/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc= +github.com/ledgerwatch/log/v3 v3.9.0 h1:iDwrXe0PVwBC68Dd94YSsHbMgQ3ufsgjzXtFNFVZFRk= +github.com/ledgerwatch/log/v3 v3.9.0/go.mod h1:EiAY6upmI/6LkNhOVxb4eVsmsP11HZCnZ3PlJMjYiqE= +github.com/ledgerwatch/secp256k1 v1.0.0 h1:Usvz87YoTG0uePIV8woOof5cQnLXGYa162rFf3YnwaQ= +github.com/ledgerwatch/secp256k1 v1.0.0/go.mod h1:SPmqJFciiF/Q0mPt2jVs2dTr/1TZBTIA+kPMmKgBAak= +github.com/matryer/moq v0.3.3 h1:pScMH9VyrdT4S93yiLpVyU8rCDqGQr24uOyBxmktG5Q= +github.com/matryer/moq v0.3.3/go.mod h1:RJ75ZZZD71hejp39j4crZLsEDszGk6iH4v4YsWFKH4s= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mmcloughlin/addchain v0.4.0 h1:SobOdjm2xLj1KkXN5/n0xTIWyZA2+s99UCY1iPfkHRY= +github.com/mmcloughlin/addchain v0.4.0/go.mod h1:A86O+tHqZLMNO4w6ZZ4FlVQEadcoqkyU72HC5wJ4RlU= +github.com/mmcloughlin/profile v0.1.1/go.mod h1:IhHD7q1ooxgwTgjxQYkACGA77oFTDdFVejUS1/tS/qU= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= +github.com/mschoch/smat v0.2.0 h1:8imxQsjDm8yFEAVBe7azKmKSgzSkZXDuKkSq9374khM= +github.com/mschoch/smat v0.2.0/go.mod h1:kc9mz7DoBKqDyiRL7VZN8KvXQMWeTaVnttLRXOlotKw= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0= +github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E= +github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ= +github.com/pion/dtls/v2 v2.1.3/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= +github.com/pion/dtls/v2 v2.1.5/go.mod h1:BqCE7xPZbPSubGasRoDFJeTsyJtdD1FanJYL0JGheqY= +github.com/pion/dtls/v2 v2.2.4 h1:YSfYwDQgrxMYXLBc/m7PFY5BVtWlNm/DN4qoU2CbcWg= +github.com/pion/dtls/v2 v2.2.4/go.mod h1:WGKfxqhrddne4Kg3p11FUMJrynkOY4lb25zHNO49wuw= +github.com/pion/ice/v2 v2.2.6 h1:R/vaLlI1J2gCx141L5PEwtuGAGcyS6e7E0hDeJFq5Ig= +github.com/pion/ice/v2 v2.2.6/go.mod h1:SWuHiOGP17lGromHTFadUe1EuPgFh/oCU6FCMZHooVE= +github.com/pion/interceptor v0.1.11 h1:00U6OlqxA3FFB50HSg25J/8cWi7P6FbSzw4eFn24Bvs= +github.com/pion/interceptor v0.1.11/go.mod h1:tbtKjZY14awXd7Bq0mmWvgtHB5MDaRN7HV3OZ/uy7s8= +github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= +github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= +github.com/pion/mdns v0.0.5 h1:Q2oj/JB3NqfzY9xGZ1fPzZzK7sDSD8rZPOvcIQ10BCw= +github.com/pion/mdns v0.0.5/go.mod h1:UgssrvdD3mxpi8tMxAXbsppL3vJ4Jipw1mTCW+al01g= +github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= +github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= +github.com/pion/rtcp v1.2.9 h1:1ujStwg++IOLIEoOiIQ2s+qBuJ1VN81KW+9pMPsif+U= +github.com/pion/rtcp v1.2.9/go.mod h1:qVPhiCzAm4D/rxb6XzKeyZiQK69yJpbUDJSF7TgrqNo= +github.com/pion/rtp v1.7.13 h1:qcHwlmtiI50t1XivvoawdCGTP4Uiypzfrsap+bijcoA= +github.com/pion/rtp v1.7.13/go.mod h1:bDb5n+BFZxXx0Ea7E5qe+klMuqiBrP+w8XSjiWtCUko= +github.com/pion/sctp v1.8.0/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= +github.com/pion/sctp v1.8.2 h1:yBBCIrUMJ4yFICL3RIvR4eh/H2BTTvlligmSTy+3kiA= +github.com/pion/sctp v1.8.2/go.mod h1:xFe9cLMZ5Vj6eOzpyiKjT9SwGM4KpK/8Jbw5//jc+0s= +github.com/pion/sdp/v3 v3.0.5 h1:ouvI7IgGl+V4CrqskVtr3AaTrPvPisEOxwgpdktctkU= +github.com/pion/sdp/v3 v3.0.5/go.mod h1:iiFWFpQO8Fy3S5ldclBkpXqmWy02ns78NOKoLLL0YQw= +github.com/pion/srtp/v2 v2.0.9 h1:JJq3jClmDFBPX/F5roEb0U19jSU7eUhyDqR/NZ34EKQ= +github.com/pion/srtp/v2 v2.0.9/go.mod h1:5TtM9yw6lsH0ppNCehB/EjEUli7VkUgKSPJqWVqbhQ4= +github.com/pion/stun v0.3.5 h1:uLUCBCkQby4S1cf6CGuR9QrVOKcvUwFeemaC865QHDg= +github.com/pion/stun v0.3.5/go.mod h1:gDMim+47EeEtfWogA37n6qXZS88L5V6LqFcf+DZA2UA= +github.com/pion/transport v0.12.2/go.mod h1:N3+vZQD9HlDP5GWkZ85LohxNsDcNgofQmyL6ojX5d8Q= +github.com/pion/transport v0.12.3/go.mod h1:OViWW9SP2peE/HbwBvARicmAVnesphkNkCVZIWJ6q9A= +github.com/pion/transport v0.13.0/go.mod h1:yxm9uXpK9bpBBWkITk13cLo1y5/ur5VQpG22ny6EP7g= +github.com/pion/transport v0.13.1 h1:/UH5yLeQtwm2VZIPjxwnNFxjS4DFhyLfS4GlfuKUzfA= +github.com/pion/transport v0.13.1/go.mod h1:EBxbqzyv+ZrmDb82XswEE0BjfQFtuw1Nu6sjnjWCsGg= +github.com/pion/transport/v2 v2.0.0 h1:bsMYyqHCbkvHwj+eNCFBuxtlKndKfyGI2vaQmM3fIE4= +github.com/pion/transport/v2 v2.0.0/go.mod h1:HS2MEBJTwD+1ZI2eSXSvHJx/HnzQqRy2/LXxt6eVMHc= +github.com/pion/turn/v2 v2.0.8 h1:KEstL92OUN3k5k8qxsXHpr7WWfrdp7iJZHx99ud8muw= +github.com/pion/turn/v2 v2.0.8/go.mod h1:+y7xl719J8bAEVpSXBXvTxStjJv3hbz9YFflvkpcGPw= +github.com/pion/udp v0.1.1/go.mod h1:6AFo+CMdKQm7UiA0eUPA8/eVCTx8jBIITLZHc9DWX5M= +github.com/pion/udp v0.1.4 h1:OowsTmu1Od3sD6i3fQUJxJn2fEvJO6L1TidgadtbTI8= +github.com/pion/udp v0.1.4/go.mod h1:G8LDo56HsFwC24LIcnT4YIDU5qcB6NepqqjP0keL2us= +github.com/pion/webrtc/v3 v3.1.42 h1:wJEQFIXVanptnQcHOLTuIo4AtGB2+mG2x4OhIhnITOA= +github.com/pion/webrtc/v3 v3.1.42/go.mod h1:ffD9DulDrPxyWvDPUIPAOSAWx9GUlOExiJPf7cCcMLA= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= +github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 h1:Lt9DzQALzHoDwMBGJ6v8ObDPR0dzr2a6sXTB1Fq7IHs= +github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA= +github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a8tTFrMLUcfWwyC0pnifVo2ClaLq+hP8= +github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= +github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff/go.mod h1:KSQcGKpxUMHk3nbYzs/tIBAM2iDooCn0BmttHOJEbLs= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= +github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/willf/bitset v1.1.10/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opentelemetry.io/otel v1.8.0 h1:zcvBFizPbpa1q7FehvFiHbQwGzmPILebO0tyqIR5Djg= +go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM= +go.opentelemetry.io/otel/trace v1.8.0 h1:cSy0DF9eGI5WIfNwZ1q2iUyGj00tGzP24dE1lOlHrfY= +go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201201195509-5d6afe98e0b7/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220401154927-543a649e0bdd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220531201128-c960675eff93/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +modernc.org/libc v1.24.1 h1:uvJSeCKL/AgzBo2yYIPPTy82v21KgGnizcGYfBHaNuM= +modernc.org/libc v1.24.1/go.mod h1:FmfO1RLrU3MHJfyi9eYYmZBfi/R+tqZ6+hQ3yQQUkak= +modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= +modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= +modernc.org/memory v1.6.0 h1:i6mzavxrE9a30whzMfwf7XWVODx2r5OYXvU46cirX7o= +modernc.org/memory v1.6.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/sqlite v1.26.0 h1:SocQdLRSYlA8W99V8YH0NES75thx19d9sB/aFc4R8Lw= +modernc.org/sqlite v1.26.0/go.mod h1:FL3pVXie73rg3Rii6V/u5BoHlSoyeZeIgKZEgHARyCU= +rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= +rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= +zombiezen.com/go/sqlite v0.13.1 h1:qDzxyWWmMtSSEH5qxamqBFmqA2BLSSbtODi3ojaE02o= +zombiezen.com/go/sqlite v0.13.1/go.mod h1:Ht/5Rg3Ae2hoyh1I7gbWtWAl89CNocfqeb/aAMTkJr4= diff --git a/erigon-lib/gointerfaces/downloader/downloader.pb.go b/erigon-lib/gointerfaces/downloader/downloader.pb.go new file mode 100644 index 00000000000..3c1ec9b2d4f --- /dev/null +++ b/erigon-lib/gointerfaces/downloader/downloader.pb.go @@ -0,0 +1,642 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: downloader/downloader.proto + +package downloader + +import ( + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// DownloadItem: +// - if Erigon created new snapshot and want seed it +// - if Erigon wnat download files - it fills only "torrent_hash" field +type AddItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + TorrentHash *types.H160 `protobuf:"bytes,2,opt,name=torrent_hash,json=torrentHash,proto3" json:"torrent_hash,omitempty"` // will be resolved as magnet link +} + +func (x *AddItem) Reset() { + *x = AddItem{} + if protoimpl.UnsafeEnabled { + mi := &file_downloader_downloader_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddItem) ProtoMessage() {} + +func (x *AddItem) ProtoReflect() protoreflect.Message { + mi := &file_downloader_downloader_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddItem.ProtoReflect.Descriptor instead. +func (*AddItem) Descriptor() ([]byte, []int) { + return file_downloader_downloader_proto_rawDescGZIP(), []int{0} +} + +func (x *AddItem) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *AddItem) GetTorrentHash() *types.H160 { + if x != nil { + return x.TorrentHash + } + return nil +} + +type AddRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Items []*AddItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` // single hash will be resolved as magnet link +} + +func (x *AddRequest) Reset() { + *x = AddRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_downloader_downloader_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddRequest) ProtoMessage() {} + +func (x *AddRequest) ProtoReflect() protoreflect.Message { + mi := &file_downloader_downloader_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddRequest.ProtoReflect.Descriptor instead. +func (*AddRequest) Descriptor() ([]byte, []int) { + return file_downloader_downloader_proto_rawDescGZIP(), []int{1} +} + +func (x *AddRequest) GetItems() []*AddItem { + if x != nil { + return x.Items + } + return nil +} + +// DeleteRequest: stop seeding, delete file, delete .torrent +type DeleteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Paths []string `protobuf:"bytes,1,rep,name=paths,proto3" json:"paths,omitempty"` +} + +func (x *DeleteRequest) Reset() { + *x = DeleteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_downloader_downloader_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRequest) ProtoMessage() {} + +func (x *DeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_downloader_downloader_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead. +func (*DeleteRequest) Descriptor() ([]byte, []int) { + return file_downloader_downloader_proto_rawDescGZIP(), []int{2} +} + +func (x *DeleteRequest) GetPaths() []string { + if x != nil { + return x.Paths + } + return nil +} + +type VerifyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *VerifyRequest) Reset() { + *x = VerifyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_downloader_downloader_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VerifyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VerifyRequest) ProtoMessage() {} + +func (x *VerifyRequest) ProtoReflect() protoreflect.Message { + mi := &file_downloader_downloader_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VerifyRequest.ProtoReflect.Descriptor instead. +func (*VerifyRequest) Descriptor() ([]byte, []int) { + return file_downloader_downloader_proto_rawDescGZIP(), []int{3} +} + +type StatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StatsRequest) Reset() { + *x = StatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_downloader_downloader_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatsRequest) ProtoMessage() {} + +func (x *StatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_downloader_downloader_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatsRequest.ProtoReflect.Descriptor instead. +func (*StatsRequest) Descriptor() ([]byte, []int) { + return file_downloader_downloader_proto_rawDescGZIP(), []int{4} +} + +type ProhibitNewDownloadsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ProhibitNewDownloadsRequest) Reset() { + *x = ProhibitNewDownloadsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_downloader_downloader_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProhibitNewDownloadsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProhibitNewDownloadsRequest) ProtoMessage() {} + +func (x *ProhibitNewDownloadsRequest) ProtoReflect() protoreflect.Message { + mi := &file_downloader_downloader_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProhibitNewDownloadsRequest.ProtoReflect.Descriptor instead. +func (*ProhibitNewDownloadsRequest) Descriptor() ([]byte, []int) { + return file_downloader_downloader_proto_rawDescGZIP(), []int{5} +} + +type StatsReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // First step on startup - "resolve metadata": + // - understand total amount of data to download + // - ensure all pieces hashes available + // - validate files after crush + // - when all metadata ready - can start download/upload + MetadataReady int32 `protobuf:"varint,1,opt,name=metadata_ready,json=metadataReady,proto3" json:"metadata_ready,omitempty"` + FilesTotal int32 `protobuf:"varint,2,opt,name=files_total,json=filesTotal,proto3" json:"files_total,omitempty"` + PeersUnique int32 `protobuf:"varint,4,opt,name=peers_unique,json=peersUnique,proto3" json:"peers_unique,omitempty"` + ConnectionsTotal uint64 `protobuf:"varint,5,opt,name=connections_total,json=connectionsTotal,proto3" json:"connections_total,omitempty"` + Completed bool `protobuf:"varint,6,opt,name=completed,proto3" json:"completed,omitempty"` + Progress float32 `protobuf:"fixed32,7,opt,name=progress,proto3" json:"progress,omitempty"` + BytesCompleted uint64 `protobuf:"varint,8,opt,name=bytes_completed,json=bytesCompleted,proto3" json:"bytes_completed,omitempty"` + BytesTotal uint64 `protobuf:"varint,9,opt,name=bytes_total,json=bytesTotal,proto3" json:"bytes_total,omitempty"` + UploadRate uint64 `protobuf:"varint,10,opt,name=upload_rate,json=uploadRate,proto3" json:"upload_rate,omitempty"` // bytes/sec + DownloadRate uint64 `protobuf:"varint,11,opt,name=download_rate,json=downloadRate,proto3" json:"download_rate,omitempty"` // bytes/sec +} + +func (x *StatsReply) Reset() { + *x = StatsReply{} + if protoimpl.UnsafeEnabled { + mi := &file_downloader_downloader_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatsReply) ProtoMessage() {} + +func (x *StatsReply) ProtoReflect() protoreflect.Message { + mi := &file_downloader_downloader_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatsReply.ProtoReflect.Descriptor instead. +func (*StatsReply) Descriptor() ([]byte, []int) { + return file_downloader_downloader_proto_rawDescGZIP(), []int{6} +} + +func (x *StatsReply) GetMetadataReady() int32 { + if x != nil { + return x.MetadataReady + } + return 0 +} + +func (x *StatsReply) GetFilesTotal() int32 { + if x != nil { + return x.FilesTotal + } + return 0 +} + +func (x *StatsReply) GetPeersUnique() int32 { + if x != nil { + return x.PeersUnique + } + return 0 +} + +func (x *StatsReply) GetConnectionsTotal() uint64 { + if x != nil { + return x.ConnectionsTotal + } + return 0 +} + +func (x *StatsReply) GetCompleted() bool { + if x != nil { + return x.Completed + } + return false +} + +func (x *StatsReply) GetProgress() float32 { + if x != nil { + return x.Progress + } + return 0 +} + +func (x *StatsReply) GetBytesCompleted() uint64 { + if x != nil { + return x.BytesCompleted + } + return 0 +} + +func (x *StatsReply) GetBytesTotal() uint64 { + if x != nil { + return x.BytesTotal + } + return 0 +} + +func (x *StatsReply) GetUploadRate() uint64 { + if x != nil { + return x.UploadRate + } + return 0 +} + +func (x *StatsReply) GetDownloadRate() uint64 { + if x != nil { + return x.DownloadRate + } + return 0 +} + +var File_downloader_downloader_proto protoreflect.FileDescriptor + +var file_downloader_downloader_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2f, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x07, 0x41, 0x64, 0x64, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x0c, 0x74, 0x6f, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, 0x36, 0x30, 0x52, 0x0b, 0x74, 0x6f, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0x37, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x22, 0x25, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0x0f, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x50, 0x72, 0x6f, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x4e, 0x65, 0x77, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1f, + 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x73, 0x55, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x61, 0x74, 0x65, 0x32, 0xdb, 0x02, 0x0a, 0x0a, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x4e, 0x65, 0x77, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, + 0x12, 0x27, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x50, 0x72, + 0x6f, 0x68, 0x69, 0x62, 0x69, 0x74, 0x4e, 0x65, 0x77, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x37, 0x0a, 0x03, 0x41, 0x64, 0x64, 0x12, 0x16, 0x2e, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x06, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x19, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x65, 0x72, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2f, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x72, 0x3b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_downloader_downloader_proto_rawDescOnce sync.Once + file_downloader_downloader_proto_rawDescData = file_downloader_downloader_proto_rawDesc +) + +func file_downloader_downloader_proto_rawDescGZIP() []byte { + file_downloader_downloader_proto_rawDescOnce.Do(func() { + file_downloader_downloader_proto_rawDescData = protoimpl.X.CompressGZIP(file_downloader_downloader_proto_rawDescData) + }) + return file_downloader_downloader_proto_rawDescData +} + +var file_downloader_downloader_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_downloader_downloader_proto_goTypes = []interface{}{ + (*AddItem)(nil), // 0: downloader.AddItem + (*AddRequest)(nil), // 1: downloader.AddRequest + (*DeleteRequest)(nil), // 2: downloader.DeleteRequest + (*VerifyRequest)(nil), // 3: downloader.VerifyRequest + (*StatsRequest)(nil), // 4: downloader.StatsRequest + (*ProhibitNewDownloadsRequest)(nil), // 5: downloader.ProhibitNewDownloadsRequest + (*StatsReply)(nil), // 6: downloader.StatsReply + (*types.H160)(nil), // 7: types.H160 + (*emptypb.Empty)(nil), // 8: google.protobuf.Empty +} +var file_downloader_downloader_proto_depIdxs = []int32{ + 7, // 0: downloader.AddItem.torrent_hash:type_name -> types.H160 + 0, // 1: downloader.AddRequest.items:type_name -> downloader.AddItem + 5, // 2: downloader.Downloader.ProhibitNewDownloads:input_type -> downloader.ProhibitNewDownloadsRequest + 1, // 3: downloader.Downloader.Add:input_type -> downloader.AddRequest + 2, // 4: downloader.Downloader.Delete:input_type -> downloader.DeleteRequest + 3, // 5: downloader.Downloader.Verify:input_type -> downloader.VerifyRequest + 4, // 6: downloader.Downloader.Stats:input_type -> downloader.StatsRequest + 8, // 7: downloader.Downloader.ProhibitNewDownloads:output_type -> google.protobuf.Empty + 8, // 8: downloader.Downloader.Add:output_type -> google.protobuf.Empty + 8, // 9: downloader.Downloader.Delete:output_type -> google.protobuf.Empty + 8, // 10: downloader.Downloader.Verify:output_type -> google.protobuf.Empty + 6, // 11: downloader.Downloader.Stats:output_type -> downloader.StatsReply + 7, // [7:12] is the sub-list for method output_type + 2, // [2:7] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_downloader_downloader_proto_init() } +func file_downloader_downloader_proto_init() { + if File_downloader_downloader_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_downloader_downloader_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_downloader_downloader_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_downloader_downloader_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_downloader_downloader_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VerifyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_downloader_downloader_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_downloader_downloader_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProhibitNewDownloadsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_downloader_downloader_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatsReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_downloader_downloader_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_downloader_downloader_proto_goTypes, + DependencyIndexes: file_downloader_downloader_proto_depIdxs, + MessageInfos: file_downloader_downloader_proto_msgTypes, + }.Build() + File_downloader_downloader_proto = out.File + file_downloader_downloader_proto_rawDesc = nil + file_downloader_downloader_proto_goTypes = nil + file_downloader_downloader_proto_depIdxs = nil +} diff --git a/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go b/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go new file mode 100644 index 00000000000..d3a0468ff2c --- /dev/null +++ b/erigon-lib/gointerfaces/downloader/downloader_grpc.pb.go @@ -0,0 +1,270 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.2 +// source: downloader/downloader.proto + +package downloader + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + Downloader_ProhibitNewDownloads_FullMethodName = "/downloader.Downloader/ProhibitNewDownloads" + Downloader_Add_FullMethodName = "/downloader.Downloader/Add" + Downloader_Delete_FullMethodName = "/downloader.Downloader/Delete" + Downloader_Verify_FullMethodName = "/downloader.Downloader/Verify" + Downloader_Stats_FullMethodName = "/downloader.Downloader/Stats" +) + +// DownloaderClient is the client API for Downloader service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type DownloaderClient interface { + // Erigon "download once" - means restart/upgrade will not download files (and will be fast) + // After "download once" - Erigon will produce and seed new files + // Downloader will able: seed new files (already existing on FS), download uncomplete parts of existing files (if Verify found some bad parts) + ProhibitNewDownloads(ctx context.Context, in *ProhibitNewDownloadsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Adding new file to downloader: non-existing files it will download, existing - seed + Add(ctx context.Context, in *AddRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Trigger verification of files + // If some part of file is bad - such part will be re-downloaded (without returning error) + Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (*StatsReply, error) +} + +type downloaderClient struct { + cc grpc.ClientConnInterface +} + +func NewDownloaderClient(cc grpc.ClientConnInterface) DownloaderClient { + return &downloaderClient{cc} +} + +func (c *downloaderClient) ProhibitNewDownloads(ctx context.Context, in *ProhibitNewDownloadsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, Downloader_ProhibitNewDownloads_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *downloaderClient) Add(ctx context.Context, in *AddRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, Downloader_Add_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *downloaderClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, Downloader_Delete_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *downloaderClient) Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, Downloader_Verify_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *downloaderClient) Stats(ctx context.Context, in *StatsRequest, opts ...grpc.CallOption) (*StatsReply, error) { + out := new(StatsReply) + err := c.cc.Invoke(ctx, Downloader_Stats_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// DownloaderServer is the server API for Downloader service. +// All implementations must embed UnimplementedDownloaderServer +// for forward compatibility +type DownloaderServer interface { + // Erigon "download once" - means restart/upgrade will not download files (and will be fast) + // After "download once" - Erigon will produce and seed new files + // Downloader will able: seed new files (already existing on FS), download uncomplete parts of existing files (if Verify found some bad parts) + ProhibitNewDownloads(context.Context, *ProhibitNewDownloadsRequest) (*emptypb.Empty, error) + // Adding new file to downloader: non-existing files it will download, existing - seed + Add(context.Context, *AddRequest) (*emptypb.Empty, error) + Delete(context.Context, *DeleteRequest) (*emptypb.Empty, error) + // Trigger verification of files + // If some part of file is bad - such part will be re-downloaded (without returning error) + Verify(context.Context, *VerifyRequest) (*emptypb.Empty, error) + Stats(context.Context, *StatsRequest) (*StatsReply, error) + mustEmbedUnimplementedDownloaderServer() +} + +// UnimplementedDownloaderServer must be embedded to have forward compatible implementations. +type UnimplementedDownloaderServer struct { +} + +func (UnimplementedDownloaderServer) ProhibitNewDownloads(context.Context, *ProhibitNewDownloadsRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProhibitNewDownloads not implemented") +} +func (UnimplementedDownloaderServer) Add(context.Context, *AddRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method Add not implemented") +} +func (UnimplementedDownloaderServer) Delete(context.Context, *DeleteRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented") +} +func (UnimplementedDownloaderServer) Verify(context.Context, *VerifyRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method Verify not implemented") +} +func (UnimplementedDownloaderServer) Stats(context.Context, *StatsRequest) (*StatsReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Stats not implemented") +} +func (UnimplementedDownloaderServer) mustEmbedUnimplementedDownloaderServer() {} + +// UnsafeDownloaderServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to DownloaderServer will +// result in compilation errors. +type UnsafeDownloaderServer interface { + mustEmbedUnimplementedDownloaderServer() +} + +func RegisterDownloaderServer(s grpc.ServiceRegistrar, srv DownloaderServer) { + s.RegisterService(&Downloader_ServiceDesc, srv) +} + +func _Downloader_ProhibitNewDownloads_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ProhibitNewDownloadsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DownloaderServer).ProhibitNewDownloads(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Downloader_ProhibitNewDownloads_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DownloaderServer).ProhibitNewDownloads(ctx, req.(*ProhibitNewDownloadsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Downloader_Add_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DownloaderServer).Add(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Downloader_Add_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DownloaderServer).Add(ctx, req.(*AddRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Downloader_Delete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DownloaderServer).Delete(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Downloader_Delete_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DownloaderServer).Delete(ctx, req.(*DeleteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Downloader_Verify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(VerifyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DownloaderServer).Verify(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Downloader_Verify_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DownloaderServer).Verify(ctx, req.(*VerifyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Downloader_Stats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DownloaderServer).Stats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Downloader_Stats_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DownloaderServer).Stats(ctx, req.(*StatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Downloader_ServiceDesc is the grpc.ServiceDesc for Downloader service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Downloader_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "downloader.Downloader", + HandlerType: (*DownloaderServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ProhibitNewDownloads", + Handler: _Downloader_ProhibitNewDownloads_Handler, + }, + { + MethodName: "Add", + Handler: _Downloader_Add_Handler, + }, + { + MethodName: "Delete", + Handler: _Downloader_Delete_Handler, + }, + { + MethodName: "Verify", + Handler: _Downloader_Verify_Handler, + }, + { + MethodName: "Stats", + Handler: _Downloader_Stats_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "downloader/downloader.proto", +} diff --git a/erigon-lib/gointerfaces/execution/execution.pb.go b/erigon-lib/gointerfaces/execution/execution.pb.go new file mode 100644 index 00000000000..c331568493b --- /dev/null +++ b/erigon-lib/gointerfaces/execution/execution.pb.go @@ -0,0 +1,2417 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: execution/execution.proto + +package execution + +import ( + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ExecutionStatus int32 + +const ( + ExecutionStatus_Success ExecutionStatus = 0 + ExecutionStatus_BadBlock ExecutionStatus = 1 + ExecutionStatus_TooFarAway ExecutionStatus = 2 + ExecutionStatus_MissingSegment ExecutionStatus = 3 + ExecutionStatus_InvalidForkchoice ExecutionStatus = 4 + ExecutionStatus_Busy ExecutionStatus = 5 +) + +// Enum value maps for ExecutionStatus. +var ( + ExecutionStatus_name = map[int32]string{ + 0: "Success", + 1: "BadBlock", + 2: "TooFarAway", + 3: "MissingSegment", + 4: "InvalidForkchoice", + 5: "Busy", + } + ExecutionStatus_value = map[string]int32{ + "Success": 0, + "BadBlock": 1, + "TooFarAway": 2, + "MissingSegment": 3, + "InvalidForkchoice": 4, + "Busy": 5, + } +) + +func (x ExecutionStatus) Enum() *ExecutionStatus { + p := new(ExecutionStatus) + *p = x + return p +} + +func (x ExecutionStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ExecutionStatus) Descriptor() protoreflect.EnumDescriptor { + return file_execution_execution_proto_enumTypes[0].Descriptor() +} + +func (ExecutionStatus) Type() protoreflect.EnumType { + return &file_execution_execution_proto_enumTypes[0] +} + +func (x ExecutionStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ExecutionStatus.Descriptor instead. +func (ExecutionStatus) EnumDescriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{0} +} + +type ForkChoiceReceipt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status ExecutionStatus `protobuf:"varint,1,opt,name=status,proto3,enum=execution.ExecutionStatus" json:"status,omitempty"` + LatestValidHash *types.H256 `protobuf:"bytes,2,opt,name=latest_valid_hash,json=latestValidHash,proto3" json:"latest_valid_hash,omitempty"` // Return latest valid hash in case of halt of execution. +} + +func (x *ForkChoiceReceipt) Reset() { + *x = ForkChoiceReceipt{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ForkChoiceReceipt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForkChoiceReceipt) ProtoMessage() {} + +func (x *ForkChoiceReceipt) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ForkChoiceReceipt.ProtoReflect.Descriptor instead. +func (*ForkChoiceReceipt) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{0} +} + +func (x *ForkChoiceReceipt) GetStatus() ExecutionStatus { + if x != nil { + return x.Status + } + return ExecutionStatus_Success +} + +func (x *ForkChoiceReceipt) GetLatestValidHash() *types.H256 { + if x != nil { + return x.LatestValidHash + } + return nil +} + +// Result we receive after validation +type ValidationReceipt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ValidationStatus ExecutionStatus `protobuf:"varint,1,opt,name=validation_status,json=validationStatus,proto3,enum=execution.ExecutionStatus" json:"validation_status,omitempty"` + LatestValidHash *types.H256 `protobuf:"bytes,2,opt,name=latest_valid_hash,json=latestValidHash,proto3" json:"latest_valid_hash,omitempty"` +} + +func (x *ValidationReceipt) Reset() { + *x = ValidationReceipt{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidationReceipt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidationReceipt) ProtoMessage() {} + +func (x *ValidationReceipt) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidationReceipt.ProtoReflect.Descriptor instead. +func (*ValidationReceipt) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{1} +} + +func (x *ValidationReceipt) GetValidationStatus() ExecutionStatus { + if x != nil { + return x.ValidationStatus + } + return ExecutionStatus_Success +} + +func (x *ValidationReceipt) GetLatestValidHash() *types.H256 { + if x != nil { + return x.LatestValidHash + } + return nil +} + +type IsCanonicalResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Canonical bool `protobuf:"varint,1,opt,name=canonical,proto3" json:"canonical,omitempty"` // Whether hash is canonical or not. +} + +func (x *IsCanonicalResponse) Reset() { + *x = IsCanonicalResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsCanonicalResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsCanonicalResponse) ProtoMessage() {} + +func (x *IsCanonicalResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IsCanonicalResponse.ProtoReflect.Descriptor instead. +func (*IsCanonicalResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{2} +} + +func (x *IsCanonicalResponse) GetCanonical() bool { + if x != nil { + return x.Canonical + } + return false +} + +// Header is a header for execution +type Header struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParentHash *types.H256 `protobuf:"bytes,1,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"` + Coinbase *types.H160 `protobuf:"bytes,2,opt,name=coinbase,proto3" json:"coinbase,omitempty"` + StateRoot *types.H256 `protobuf:"bytes,3,opt,name=state_root,json=stateRoot,proto3" json:"state_root,omitempty"` + ReceiptRoot *types.H256 `protobuf:"bytes,4,opt,name=receipt_root,json=receiptRoot,proto3" json:"receipt_root,omitempty"` + LogsBloom *types.H2048 `protobuf:"bytes,5,opt,name=logs_bloom,json=logsBloom,proto3" json:"logs_bloom,omitempty"` + PrevRandao *types.H256 `protobuf:"bytes,6,opt,name=prev_randao,json=prevRandao,proto3" json:"prev_randao,omitempty"` + BlockNumber uint64 `protobuf:"varint,7,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + GasLimit uint64 `protobuf:"varint,8,opt,name=gas_limit,json=gasLimit,proto3" json:"gas_limit,omitempty"` + GasUsed uint64 `protobuf:"varint,9,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + Timestamp uint64 `protobuf:"varint,10,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Nonce uint64 `protobuf:"varint,11,opt,name=nonce,proto3" json:"nonce,omitempty"` + ExtraData []byte `protobuf:"bytes,12,opt,name=extra_data,json=extraData,proto3" json:"extra_data,omitempty"` + Difficulty *types.H256 `protobuf:"bytes,13,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + BlockHash *types.H256 `protobuf:"bytes,14,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` // We keep this so that we can validate it + OmmerHash *types.H256 `protobuf:"bytes,15,opt,name=ommer_hash,json=ommerHash,proto3" json:"ommer_hash,omitempty"` + TransactionHash *types.H256 `protobuf:"bytes,16,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` + BaseFeePerGas *types.H256 `protobuf:"bytes,17,opt,name=base_fee_per_gas,json=baseFeePerGas,proto3,oneof" json:"base_fee_per_gas,omitempty"` + WithdrawalHash *types.H256 `protobuf:"bytes,18,opt,name=withdrawal_hash,json=withdrawalHash,proto3,oneof" json:"withdrawal_hash,omitempty"` // added in Shapella (EIP-4895) + BlobGasUsed *uint64 `protobuf:"varint,19,opt,name=blob_gas_used,json=blobGasUsed,proto3,oneof" json:"blob_gas_used,omitempty"` // added in Dencun (EIP-4844) + ExcessBlobGas *uint64 `protobuf:"varint,20,opt,name=excess_blob_gas,json=excessBlobGas,proto3,oneof" json:"excess_blob_gas,omitempty"` // added in Dencun (EIP-4844) + ParentBeaconBlockRoot *types.H256 `protobuf:"bytes,21,opt,name=parent_beacon_block_root,json=parentBeaconBlockRoot,proto3,oneof" json:"parent_beacon_block_root,omitempty"` // added in Dencun (EIP-4788) + // AuRa + AuraStep *uint64 `protobuf:"varint,22,opt,name=aura_step,json=auraStep,proto3,oneof" json:"aura_step,omitempty"` + AuraSeal []byte `protobuf:"bytes,23,opt,name=aura_seal,json=auraSeal,proto3,oneof" json:"aura_seal,omitempty"` +} + +func (x *Header) Reset() { + *x = Header{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Header) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Header) ProtoMessage() {} + +func (x *Header) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Header.ProtoReflect.Descriptor instead. +func (*Header) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{3} +} + +func (x *Header) GetParentHash() *types.H256 { + if x != nil { + return x.ParentHash + } + return nil +} + +func (x *Header) GetCoinbase() *types.H160 { + if x != nil { + return x.Coinbase + } + return nil +} + +func (x *Header) GetStateRoot() *types.H256 { + if x != nil { + return x.StateRoot + } + return nil +} + +func (x *Header) GetReceiptRoot() *types.H256 { + if x != nil { + return x.ReceiptRoot + } + return nil +} + +func (x *Header) GetLogsBloom() *types.H2048 { + if x != nil { + return x.LogsBloom + } + return nil +} + +func (x *Header) GetPrevRandao() *types.H256 { + if x != nil { + return x.PrevRandao + } + return nil +} + +func (x *Header) GetBlockNumber() uint64 { + if x != nil { + return x.BlockNumber + } + return 0 +} + +func (x *Header) GetGasLimit() uint64 { + if x != nil { + return x.GasLimit + } + return 0 +} + +func (x *Header) GetGasUsed() uint64 { + if x != nil { + return x.GasUsed + } + return 0 +} + +func (x *Header) GetTimestamp() uint64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *Header) GetNonce() uint64 { + if x != nil { + return x.Nonce + } + return 0 +} + +func (x *Header) GetExtraData() []byte { + if x != nil { + return x.ExtraData + } + return nil +} + +func (x *Header) GetDifficulty() *types.H256 { + if x != nil { + return x.Difficulty + } + return nil +} + +func (x *Header) GetBlockHash() *types.H256 { + if x != nil { + return x.BlockHash + } + return nil +} + +func (x *Header) GetOmmerHash() *types.H256 { + if x != nil { + return x.OmmerHash + } + return nil +} + +func (x *Header) GetTransactionHash() *types.H256 { + if x != nil { + return x.TransactionHash + } + return nil +} + +func (x *Header) GetBaseFeePerGas() *types.H256 { + if x != nil { + return x.BaseFeePerGas + } + return nil +} + +func (x *Header) GetWithdrawalHash() *types.H256 { + if x != nil { + return x.WithdrawalHash + } + return nil +} + +func (x *Header) GetBlobGasUsed() uint64 { + if x != nil && x.BlobGasUsed != nil { + return *x.BlobGasUsed + } + return 0 +} + +func (x *Header) GetExcessBlobGas() uint64 { + if x != nil && x.ExcessBlobGas != nil { + return *x.ExcessBlobGas + } + return 0 +} + +func (x *Header) GetParentBeaconBlockRoot() *types.H256 { + if x != nil { + return x.ParentBeaconBlockRoot + } + return nil +} + +func (x *Header) GetAuraStep() uint64 { + if x != nil && x.AuraStep != nil { + return *x.AuraStep + } + return 0 +} + +func (x *Header) GetAuraSeal() []byte { + if x != nil { + return x.AuraSeal + } + return nil +} + +// Body is a block body for execution +type BlockBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockHash *types.H256 `protobuf:"bytes,1,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` + BlockNumber uint64 `protobuf:"varint,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + // Raw transactions in byte format. + Transactions [][]byte `protobuf:"bytes,3,rep,name=transactions,proto3" json:"transactions,omitempty"` + Uncles []*Header `protobuf:"bytes,4,rep,name=uncles,proto3" json:"uncles,omitempty"` + Withdrawals []*types.Withdrawal `protobuf:"bytes,5,rep,name=withdrawals,proto3" json:"withdrawals,omitempty"` +} + +func (x *BlockBody) Reset() { + *x = BlockBody{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockBody) ProtoMessage() {} + +func (x *BlockBody) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlockBody.ProtoReflect.Descriptor instead. +func (*BlockBody) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{4} +} + +func (x *BlockBody) GetBlockHash() *types.H256 { + if x != nil { + return x.BlockHash + } + return nil +} + +func (x *BlockBody) GetBlockNumber() uint64 { + if x != nil { + return x.BlockNumber + } + return 0 +} + +func (x *BlockBody) GetTransactions() [][]byte { + if x != nil { + return x.Transactions + } + return nil +} + +func (x *BlockBody) GetUncles() []*Header { + if x != nil { + return x.Uncles + } + return nil +} + +func (x *BlockBody) GetWithdrawals() []*types.Withdrawal { + if x != nil { + return x.Withdrawals + } + return nil +} + +type Block struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Header *Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + Body *BlockBody `protobuf:"bytes,2,opt,name=body,proto3" json:"body,omitempty"` +} + +func (x *Block) Reset() { + *x = Block{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Block) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Block) ProtoMessage() {} + +func (x *Block) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Block.ProtoReflect.Descriptor instead. +func (*Block) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{5} +} + +func (x *Block) GetHeader() *Header { + if x != nil { + return x.Header + } + return nil +} + +func (x *Block) GetBody() *BlockBody { + if x != nil { + return x.Body + } + return nil +} + +type GetHeaderResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Header *Header `protobuf:"bytes,1,opt,name=header,proto3,oneof" json:"header,omitempty"` +} + +func (x *GetHeaderResponse) Reset() { + *x = GetHeaderResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHeaderResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHeaderResponse) ProtoMessage() {} + +func (x *GetHeaderResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHeaderResponse.ProtoReflect.Descriptor instead. +func (*GetHeaderResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{6} +} + +func (x *GetHeaderResponse) GetHeader() *Header { + if x != nil { + return x.Header + } + return nil +} + +type GetTDResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Td *types.H256 `protobuf:"bytes,1,opt,name=td,proto3,oneof" json:"td,omitempty"` +} + +func (x *GetTDResponse) Reset() { + *x = GetTDResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTDResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTDResponse) ProtoMessage() {} + +func (x *GetTDResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetTDResponse.ProtoReflect.Descriptor instead. +func (*GetTDResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{7} +} + +func (x *GetTDResponse) GetTd() *types.H256 { + if x != nil { + return x.Td + } + return nil +} + +type GetBodyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Body *BlockBody `protobuf:"bytes,1,opt,name=body,proto3,oneof" json:"body,omitempty"` +} + +func (x *GetBodyResponse) Reset() { + *x = GetBodyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBodyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBodyResponse) ProtoMessage() {} + +func (x *GetBodyResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBodyResponse.ProtoReflect.Descriptor instead. +func (*GetBodyResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{8} +} + +func (x *GetBodyResponse) GetBody() *BlockBody { + if x != nil { + return x.Body + } + return nil +} + +type GetHeaderHashNumberResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockNumber *uint64 `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3,oneof" json:"block_number,omitempty"` // null if not found. +} + +func (x *GetHeaderHashNumberResponse) Reset() { + *x = GetHeaderHashNumberResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHeaderHashNumberResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHeaderHashNumberResponse) ProtoMessage() {} + +func (x *GetHeaderHashNumberResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHeaderHashNumberResponse.ProtoReflect.Descriptor instead. +func (*GetHeaderHashNumberResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{9} +} + +func (x *GetHeaderHashNumberResponse) GetBlockNumber() uint64 { + if x != nil && x.BlockNumber != nil { + return *x.BlockNumber + } + return 0 +} + +type GetSegmentRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Get headers/body by number or hash, invalid if none set. + BlockNumber *uint64 `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3,oneof" json:"block_number,omitempty"` + BlockHash *types.H256 `protobuf:"bytes,2,opt,name=block_hash,json=blockHash,proto3,oneof" json:"block_hash,omitempty"` +} + +func (x *GetSegmentRequest) Reset() { + *x = GetSegmentRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSegmentRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSegmentRequest) ProtoMessage() {} + +func (x *GetSegmentRequest) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSegmentRequest.ProtoReflect.Descriptor instead. +func (*GetSegmentRequest) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{10} +} + +func (x *GetSegmentRequest) GetBlockNumber() uint64 { + if x != nil && x.BlockNumber != nil { + return *x.BlockNumber + } + return 0 +} + +func (x *GetSegmentRequest) GetBlockHash() *types.H256 { + if x != nil { + return x.BlockHash + } + return nil +} + +type InsertBlocksRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Blocks []*Block `protobuf:"bytes,1,rep,name=blocks,proto3" json:"blocks,omitempty"` +} + +func (x *InsertBlocksRequest) Reset() { + *x = InsertBlocksRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InsertBlocksRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InsertBlocksRequest) ProtoMessage() {} + +func (x *InsertBlocksRequest) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InsertBlocksRequest.ProtoReflect.Descriptor instead. +func (*InsertBlocksRequest) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{11} +} + +func (x *InsertBlocksRequest) GetBlocks() []*Block { + if x != nil { + return x.Blocks + } + return nil +} + +type ForkChoice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HeadBlockHash *types.H256 `protobuf:"bytes,1,opt,name=head_block_hash,json=headBlockHash,proto3" json:"head_block_hash,omitempty"` + Timeout uint64 `protobuf:"varint,2,opt,name=timeout,proto3" json:"timeout,omitempty"` // Timeout in milliseconds for fcu before it becomes async. + FinalizedBlockHash *types.H256 `protobuf:"bytes,3,opt,name=finalized_block_hash,json=finalizedBlockHash,proto3,oneof" json:"finalized_block_hash,omitempty"` + SafeBlockHash *types.H256 `protobuf:"bytes,4,opt,name=safe_block_hash,json=safeBlockHash,proto3,oneof" json:"safe_block_hash,omitempty"` +} + +func (x *ForkChoice) Reset() { + *x = ForkChoice{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ForkChoice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForkChoice) ProtoMessage() {} + +func (x *ForkChoice) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ForkChoice.ProtoReflect.Descriptor instead. +func (*ForkChoice) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{12} +} + +func (x *ForkChoice) GetHeadBlockHash() *types.H256 { + if x != nil { + return x.HeadBlockHash + } + return nil +} + +func (x *ForkChoice) GetTimeout() uint64 { + if x != nil { + return x.Timeout + } + return 0 +} + +func (x *ForkChoice) GetFinalizedBlockHash() *types.H256 { + if x != nil { + return x.FinalizedBlockHash + } + return nil +} + +func (x *ForkChoice) GetSafeBlockHash() *types.H256 { + if x != nil { + return x.SafeBlockHash + } + return nil +} + +type InsertionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result ExecutionStatus `protobuf:"varint,1,opt,name=result,proto3,enum=execution.ExecutionStatus" json:"result,omitempty"` +} + +func (x *InsertionResult) Reset() { + *x = InsertionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InsertionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InsertionResult) ProtoMessage() {} + +func (x *InsertionResult) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InsertionResult.ProtoReflect.Descriptor instead. +func (*InsertionResult) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{13} +} + +func (x *InsertionResult) GetResult() ExecutionStatus { + if x != nil { + return x.Result + } + return ExecutionStatus_Success +} + +type ValidationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hash *types.H256 `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` + Number uint64 `protobuf:"varint,2,opt,name=number,proto3" json:"number,omitempty"` +} + +func (x *ValidationRequest) Reset() { + *x = ValidationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidationRequest) ProtoMessage() {} + +func (x *ValidationRequest) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidationRequest.ProtoReflect.Descriptor instead. +func (*ValidationRequest) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{14} +} + +func (x *ValidationRequest) GetHash() *types.H256 { + if x != nil { + return x.Hash + } + return nil +} + +func (x *ValidationRequest) GetNumber() uint64 { + if x != nil { + return x.Number + } + return 0 +} + +type AssembleBlockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParentHash *types.H256 `protobuf:"bytes,1,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"` + Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + PrevRandao *types.H256 `protobuf:"bytes,3,opt,name=prev_randao,json=prevRandao,proto3" json:"prev_randao,omitempty"` + SuggestedFeeRecipient *types.H160 `protobuf:"bytes,4,opt,name=suggested_fee_recipient,json=suggestedFeeRecipient,proto3" json:"suggested_fee_recipient,omitempty"` + Withdrawals []*types.Withdrawal `protobuf:"bytes,5,rep,name=withdrawals,proto3" json:"withdrawals,omitempty"` // added in Shapella (EIP-4895) + ParentBeaconBlockRoot *types.H256 `protobuf:"bytes,6,opt,name=parent_beacon_block_root,json=parentBeaconBlockRoot,proto3,oneof" json:"parent_beacon_block_root,omitempty"` // added in Dencun (EIP-4788) +} + +func (x *AssembleBlockRequest) Reset() { + *x = AssembleBlockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AssembleBlockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AssembleBlockRequest) ProtoMessage() {} + +func (x *AssembleBlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AssembleBlockRequest.ProtoReflect.Descriptor instead. +func (*AssembleBlockRequest) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{15} +} + +func (x *AssembleBlockRequest) GetParentHash() *types.H256 { + if x != nil { + return x.ParentHash + } + return nil +} + +func (x *AssembleBlockRequest) GetTimestamp() uint64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *AssembleBlockRequest) GetPrevRandao() *types.H256 { + if x != nil { + return x.PrevRandao + } + return nil +} + +func (x *AssembleBlockRequest) GetSuggestedFeeRecipient() *types.H160 { + if x != nil { + return x.SuggestedFeeRecipient + } + return nil +} + +func (x *AssembleBlockRequest) GetWithdrawals() []*types.Withdrawal { + if x != nil { + return x.Withdrawals + } + return nil +} + +func (x *AssembleBlockRequest) GetParentBeaconBlockRoot() *types.H256 { + if x != nil { + return x.ParentBeaconBlockRoot + } + return nil +} + +type AssembleBlockResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Busy bool `protobuf:"varint,2,opt,name=busy,proto3" json:"busy,omitempty"` +} + +func (x *AssembleBlockResponse) Reset() { + *x = AssembleBlockResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AssembleBlockResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AssembleBlockResponse) ProtoMessage() {} + +func (x *AssembleBlockResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AssembleBlockResponse.ProtoReflect.Descriptor instead. +func (*AssembleBlockResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{16} +} + +func (x *AssembleBlockResponse) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *AssembleBlockResponse) GetBusy() bool { + if x != nil { + return x.Busy + } + return false +} + +type GetAssembledBlockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *GetAssembledBlockRequest) Reset() { + *x = GetAssembledBlockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAssembledBlockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAssembledBlockRequest) ProtoMessage() {} + +func (x *GetAssembledBlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAssembledBlockRequest.ProtoReflect.Descriptor instead. +func (*GetAssembledBlockRequest) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{17} +} + +func (x *GetAssembledBlockRequest) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type AssembledBlockData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ExecutionPayload *types.ExecutionPayload `protobuf:"bytes,1,opt,name=execution_payload,json=executionPayload,proto3" json:"execution_payload,omitempty"` + BlockValue *types.H256 `protobuf:"bytes,2,opt,name=block_value,json=blockValue,proto3" json:"block_value,omitempty"` + BlobsBundle *types.BlobsBundleV1 `protobuf:"bytes,3,opt,name=blobs_bundle,json=blobsBundle,proto3" json:"blobs_bundle,omitempty"` +} + +func (x *AssembledBlockData) Reset() { + *x = AssembledBlockData{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AssembledBlockData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AssembledBlockData) ProtoMessage() {} + +func (x *AssembledBlockData) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AssembledBlockData.ProtoReflect.Descriptor instead. +func (*AssembledBlockData) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{18} +} + +func (x *AssembledBlockData) GetExecutionPayload() *types.ExecutionPayload { + if x != nil { + return x.ExecutionPayload + } + return nil +} + +func (x *AssembledBlockData) GetBlockValue() *types.H256 { + if x != nil { + return x.BlockValue + } + return nil +} + +func (x *AssembledBlockData) GetBlobsBundle() *types.BlobsBundleV1 { + if x != nil { + return x.BlobsBundle + } + return nil +} + +type GetAssembledBlockResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *AssembledBlockData `protobuf:"bytes,1,opt,name=data,proto3,oneof" json:"data,omitempty"` + Busy bool `protobuf:"varint,2,opt,name=busy,proto3" json:"busy,omitempty"` +} + +func (x *GetAssembledBlockResponse) Reset() { + *x = GetAssembledBlockResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAssembledBlockResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAssembledBlockResponse) ProtoMessage() {} + +func (x *GetAssembledBlockResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAssembledBlockResponse.ProtoReflect.Descriptor instead. +func (*GetAssembledBlockResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{19} +} + +func (x *GetAssembledBlockResponse) GetData() *AssembledBlockData { + if x != nil { + return x.Data + } + return nil +} + +func (x *GetAssembledBlockResponse) GetBusy() bool { + if x != nil { + return x.Busy + } + return false +} + +type GetBodiesBatchResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bodies []*BlockBody `protobuf:"bytes,1,rep,name=bodies,proto3" json:"bodies,omitempty"` +} + +func (x *GetBodiesBatchResponse) Reset() { + *x = GetBodiesBatchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBodiesBatchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBodiesBatchResponse) ProtoMessage() {} + +func (x *GetBodiesBatchResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBodiesBatchResponse.ProtoReflect.Descriptor instead. +func (*GetBodiesBatchResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{20} +} + +func (x *GetBodiesBatchResponse) GetBodies() []*BlockBody { + if x != nil { + return x.Bodies + } + return nil +} + +type GetBodiesByHashesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hashes []*types.H256 `protobuf:"bytes,1,rep,name=hashes,proto3" json:"hashes,omitempty"` +} + +func (x *GetBodiesByHashesRequest) Reset() { + *x = GetBodiesByHashesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBodiesByHashesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBodiesByHashesRequest) ProtoMessage() {} + +func (x *GetBodiesByHashesRequest) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBodiesByHashesRequest.ProtoReflect.Descriptor instead. +func (*GetBodiesByHashesRequest) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{21} +} + +func (x *GetBodiesByHashesRequest) GetHashes() []*types.H256 { + if x != nil { + return x.Hashes + } + return nil +} + +type GetBodiesByRangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start uint64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + Count uint64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *GetBodiesByRangeRequest) Reset() { + *x = GetBodiesByRangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBodiesByRangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBodiesByRangeRequest) ProtoMessage() {} + +func (x *GetBodiesByRangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBodiesByRangeRequest.ProtoReflect.Descriptor instead. +func (*GetBodiesByRangeRequest) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{22} +} + +func (x *GetBodiesByRangeRequest) GetStart() uint64 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *GetBodiesByRangeRequest) GetCount() uint64 { + if x != nil { + return x.Count + } + return 0 +} + +type ReadyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ready bool `protobuf:"varint,1,opt,name=ready,proto3" json:"ready,omitempty"` +} + +func (x *ReadyResponse) Reset() { + *x = ReadyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadyResponse) ProtoMessage() {} + +func (x *ReadyResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadyResponse.ProtoReflect.Descriptor instead. +func (*ReadyResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{23} +} + +func (x *ReadyResponse) GetReady() bool { + if x != nil { + return x.Ready + } + return false +} + +type FrozenBlocksResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FrozenBlocks uint64 `protobuf:"varint,1,opt,name=frozen_blocks,json=frozenBlocks,proto3" json:"frozen_blocks,omitempty"` +} + +func (x *FrozenBlocksResponse) Reset() { + *x = FrozenBlocksResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_execution_execution_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FrozenBlocksResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FrozenBlocksResponse) ProtoMessage() {} + +func (x *FrozenBlocksResponse) ProtoReflect() protoreflect.Message { + mi := &file_execution_execution_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FrozenBlocksResponse.ProtoReflect.Descriptor instead. +func (*FrozenBlocksResponse) Descriptor() ([]byte, []int) { + return file_execution_execution_proto_rawDescGZIP(), []int{24} +} + +func (x *FrozenBlocksResponse) GetFrozenBlocks() uint64 { + if x != nil { + return x.FrozenBlocks + } + return 0 +} + +var File_execution_execution_proto protoreflect.FileDescriptor + +var file_execution_execution_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x11, 0x46, 0x6f, 0x72, 0x6b, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x32, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x37, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x48, 0x61, 0x73, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x11, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, + 0x47, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, + 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x48, 0x61, 0x73, + 0x68, 0x22, 0x33, 0x0a, 0x13, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x6f, + 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x61, 0x6e, + 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x22, 0xe4, 0x08, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x12, 0x2c, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, + 0x32, 0x35, 0x36, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, + 0x27, 0x0a, 0x08, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, 0x36, 0x30, 0x52, 0x08, + 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x2e, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, + 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x2b, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x6c, 0x6f, + 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x48, 0x32, 0x30, 0x34, 0x38, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x73, 0x42, 0x6c, 0x6f, 0x6f, + 0x6d, 0x12, 0x2c, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, + 0x32, 0x35, 0x36, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, + 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, + 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0a, + 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x0a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x09, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x0a, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x09, 0x6f, 0x6d, 0x6d, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x68, 0x12, 0x36, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x39, 0x0a, 0x10, 0x62, 0x61, + 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, + 0x36, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x46, 0x65, 0x65, 0x50, 0x65, 0x72, 0x47, + 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x48, 0x01, 0x52, 0x0e, 0x77, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, + 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, + 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x47, + 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x78, 0x63, + 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x03, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x62, + 0x47, 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x18, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x48, 0x32, 0x35, 0x36, 0x48, 0x04, 0x52, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x75, 0x72, 0x61, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x08, 0x61, 0x75, 0x72, 0x61, 0x53, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x75, 0x72, 0x61, 0x5f, 0x73, 0x65, 0x61, 0x6c, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x06, 0x52, 0x08, 0x61, 0x75, 0x72, 0x61, 0x53, 0x65, + 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, + 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, + 0x5f, 0x67, 0x61, 0x73, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x62, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x75, 0x72, 0x61, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x75, 0x72, 0x61, 0x5f, 0x73, 0x65, 0x61, 0x6c, 0x22, 0xde, 0x01, + 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x2a, 0x0a, 0x0a, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x09, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, + 0x0a, 0x06, 0x75, 0x6e, 0x63, 0x6c, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x06, 0x75, 0x6e, 0x63, 0x6c, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, + 0x6c, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x22, 0x5c, + 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x12, 0x28, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x4e, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x38, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x54, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, + 0x02, 0x74, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x48, 0x00, 0x52, 0x02, 0x74, 0x64, 0x88, 0x01, 0x01, 0x42, + 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x64, 0x22, 0x49, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x48, 0x00, 0x52, + 0x04, 0x62, 0x6f, 0x64, 0x79, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x62, 0x6f, 0x64, + 0x79, 0x22, 0x56, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x26, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x8c, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x26, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x48, 0x01, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x22, 0x3f, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, + 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x28, 0x0a, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x06, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x22, 0x86, 0x02, 0x0a, 0x0a, 0x46, 0x6f, + 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x33, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, + 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0d, + 0x68, 0x65, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x18, 0x0a, + 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x42, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, + 0x35, 0x36, 0x48, 0x00, 0x52, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0f, 0x73, + 0x61, 0x66, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, + 0x36, 0x48, 0x01, 0x52, 0x0d, 0x73, 0x61, 0x66, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, + 0x73, 0x68, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x22, 0x45, 0x0a, 0x0f, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4c, 0x0a, 0x11, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, + 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, + 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf2, 0x02, 0x0a, 0x14, 0x41, 0x73, 0x73, 0x65, + 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2c, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, + 0x35, 0x36, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2c, 0x0a, 0x0b, + 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0a, + 0x70, 0x72, 0x65, 0x76, 0x52, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x43, 0x0a, 0x17, 0x73, 0x75, + 0x67, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, 0x36, 0x30, 0x52, 0x15, 0x73, 0x75, 0x67, 0x67, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x46, 0x65, 0x65, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, + 0x33, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x61, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x18, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, + 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, + 0x32, 0x35, 0x36, 0x48, 0x00, 0x52, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x65, 0x61, + 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6f, 0x6f, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x61, 0x63, 0x6f, + 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x22, 0x3b, 0x0a, 0x15, + 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x75, 0x73, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x75, 0x73, 0x79, 0x22, 0x2a, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0xc1, 0x01, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, + 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x11, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x2c, 0x0a, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x48, 0x32, 0x35, 0x36, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x37, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, + 0x6c, 0x6f, 0x62, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x31, 0x52, 0x0b, 0x62, 0x6c, + 0x6f, 0x62, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x70, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x12, + 0x0a, 0x04, 0x62, 0x75, 0x73, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x75, + 0x73, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x46, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x62, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x06, 0x62, 0x6f, 0x64, + 0x69, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, + 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x23, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x06, 0x68, 0x61, + 0x73, 0x68, 0x65, 0x73, 0x22, 0x45, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, + 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x25, 0x0a, 0x0d, 0x52, + 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x61, + 0x64, 0x79, 0x22, 0x3b, 0x0a, 0x14, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, + 0x6f, 0x7a, 0x65, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x2a, + 0x71, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x42, 0x61, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x54, 0x6f, 0x6f, 0x46, 0x61, 0x72, 0x41, 0x77, 0x61, 0x79, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x03, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x6b, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x75, 0x73, 0x79, + 0x10, 0x05, 0x32, 0xbf, 0x09, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4a, 0x0a, 0x0c, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, + 0x12, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4b, 0x0a, 0x0d, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1c, 0x2e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x47, 0x0a, 0x10, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x15, 0x2e, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x70, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, + 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x23, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x6d, + 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, + 0x05, 0x47, 0x65, 0x74, 0x54, 0x44, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x47, 0x65, 0x74, 0x54, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, + 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x42, 0x6f, + 0x64, 0x79, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6f, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x22, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6f, + 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x64, 0x69, + 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0f, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x48, 0x32, 0x35, 0x36, 0x1a, 0x1e, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x49, 0x73, 0x43, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x48, 0x61, 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x0b, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x1a, 0x26, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x73, 0x68, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x39, 0x0a, 0x05, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x18, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, + 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x46, + 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x1f, 0x2e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2e, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x3b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_execution_execution_proto_rawDescOnce sync.Once + file_execution_execution_proto_rawDescData = file_execution_execution_proto_rawDesc +) + +func file_execution_execution_proto_rawDescGZIP() []byte { + file_execution_execution_proto_rawDescOnce.Do(func() { + file_execution_execution_proto_rawDescData = protoimpl.X.CompressGZIP(file_execution_execution_proto_rawDescData) + }) + return file_execution_execution_proto_rawDescData +} + +var file_execution_execution_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_execution_execution_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_execution_execution_proto_goTypes = []interface{}{ + (ExecutionStatus)(0), // 0: execution.ExecutionStatus + (*ForkChoiceReceipt)(nil), // 1: execution.ForkChoiceReceipt + (*ValidationReceipt)(nil), // 2: execution.ValidationReceipt + (*IsCanonicalResponse)(nil), // 3: execution.IsCanonicalResponse + (*Header)(nil), // 4: execution.Header + (*BlockBody)(nil), // 5: execution.BlockBody + (*Block)(nil), // 6: execution.Block + (*GetHeaderResponse)(nil), // 7: execution.GetHeaderResponse + (*GetTDResponse)(nil), // 8: execution.GetTDResponse + (*GetBodyResponse)(nil), // 9: execution.GetBodyResponse + (*GetHeaderHashNumberResponse)(nil), // 10: execution.GetHeaderHashNumberResponse + (*GetSegmentRequest)(nil), // 11: execution.GetSegmentRequest + (*InsertBlocksRequest)(nil), // 12: execution.InsertBlocksRequest + (*ForkChoice)(nil), // 13: execution.ForkChoice + (*InsertionResult)(nil), // 14: execution.InsertionResult + (*ValidationRequest)(nil), // 15: execution.ValidationRequest + (*AssembleBlockRequest)(nil), // 16: execution.AssembleBlockRequest + (*AssembleBlockResponse)(nil), // 17: execution.AssembleBlockResponse + (*GetAssembledBlockRequest)(nil), // 18: execution.GetAssembledBlockRequest + (*AssembledBlockData)(nil), // 19: execution.AssembledBlockData + (*GetAssembledBlockResponse)(nil), // 20: execution.GetAssembledBlockResponse + (*GetBodiesBatchResponse)(nil), // 21: execution.GetBodiesBatchResponse + (*GetBodiesByHashesRequest)(nil), // 22: execution.GetBodiesByHashesRequest + (*GetBodiesByRangeRequest)(nil), // 23: execution.GetBodiesByRangeRequest + (*ReadyResponse)(nil), // 24: execution.ReadyResponse + (*FrozenBlocksResponse)(nil), // 25: execution.FrozenBlocksResponse + (*types.H256)(nil), // 26: types.H256 + (*types.H160)(nil), // 27: types.H160 + (*types.H2048)(nil), // 28: types.H2048 + (*types.Withdrawal)(nil), // 29: types.Withdrawal + (*types.ExecutionPayload)(nil), // 30: types.ExecutionPayload + (*types.BlobsBundleV1)(nil), // 31: types.BlobsBundleV1 + (*emptypb.Empty)(nil), // 32: google.protobuf.Empty +} +var file_execution_execution_proto_depIdxs = []int32{ + 0, // 0: execution.ForkChoiceReceipt.status:type_name -> execution.ExecutionStatus + 26, // 1: execution.ForkChoiceReceipt.latest_valid_hash:type_name -> types.H256 + 0, // 2: execution.ValidationReceipt.validation_status:type_name -> execution.ExecutionStatus + 26, // 3: execution.ValidationReceipt.latest_valid_hash:type_name -> types.H256 + 26, // 4: execution.Header.parent_hash:type_name -> types.H256 + 27, // 5: execution.Header.coinbase:type_name -> types.H160 + 26, // 6: execution.Header.state_root:type_name -> types.H256 + 26, // 7: execution.Header.receipt_root:type_name -> types.H256 + 28, // 8: execution.Header.logs_bloom:type_name -> types.H2048 + 26, // 9: execution.Header.prev_randao:type_name -> types.H256 + 26, // 10: execution.Header.difficulty:type_name -> types.H256 + 26, // 11: execution.Header.block_hash:type_name -> types.H256 + 26, // 12: execution.Header.ommer_hash:type_name -> types.H256 + 26, // 13: execution.Header.transaction_hash:type_name -> types.H256 + 26, // 14: execution.Header.base_fee_per_gas:type_name -> types.H256 + 26, // 15: execution.Header.withdrawal_hash:type_name -> types.H256 + 26, // 16: execution.Header.parent_beacon_block_root:type_name -> types.H256 + 26, // 17: execution.BlockBody.block_hash:type_name -> types.H256 + 4, // 18: execution.BlockBody.uncles:type_name -> execution.Header + 29, // 19: execution.BlockBody.withdrawals:type_name -> types.Withdrawal + 4, // 20: execution.Block.header:type_name -> execution.Header + 5, // 21: execution.Block.body:type_name -> execution.BlockBody + 4, // 22: execution.GetHeaderResponse.header:type_name -> execution.Header + 26, // 23: execution.GetTDResponse.td:type_name -> types.H256 + 5, // 24: execution.GetBodyResponse.body:type_name -> execution.BlockBody + 26, // 25: execution.GetSegmentRequest.block_hash:type_name -> types.H256 + 6, // 26: execution.InsertBlocksRequest.blocks:type_name -> execution.Block + 26, // 27: execution.ForkChoice.head_block_hash:type_name -> types.H256 + 26, // 28: execution.ForkChoice.finalized_block_hash:type_name -> types.H256 + 26, // 29: execution.ForkChoice.safe_block_hash:type_name -> types.H256 + 0, // 30: execution.InsertionResult.result:type_name -> execution.ExecutionStatus + 26, // 31: execution.ValidationRequest.hash:type_name -> types.H256 + 26, // 32: execution.AssembleBlockRequest.parent_hash:type_name -> types.H256 + 26, // 33: execution.AssembleBlockRequest.prev_randao:type_name -> types.H256 + 27, // 34: execution.AssembleBlockRequest.suggested_fee_recipient:type_name -> types.H160 + 29, // 35: execution.AssembleBlockRequest.withdrawals:type_name -> types.Withdrawal + 26, // 36: execution.AssembleBlockRequest.parent_beacon_block_root:type_name -> types.H256 + 30, // 37: execution.AssembledBlockData.execution_payload:type_name -> types.ExecutionPayload + 26, // 38: execution.AssembledBlockData.block_value:type_name -> types.H256 + 31, // 39: execution.AssembledBlockData.blobs_bundle:type_name -> types.BlobsBundleV1 + 19, // 40: execution.GetAssembledBlockResponse.data:type_name -> execution.AssembledBlockData + 5, // 41: execution.GetBodiesBatchResponse.bodies:type_name -> execution.BlockBody + 26, // 42: execution.GetBodiesByHashesRequest.hashes:type_name -> types.H256 + 12, // 43: execution.Execution.InsertBlocks:input_type -> execution.InsertBlocksRequest + 15, // 44: execution.Execution.ValidateChain:input_type -> execution.ValidationRequest + 13, // 45: execution.Execution.UpdateForkChoice:input_type -> execution.ForkChoice + 16, // 46: execution.Execution.AssembleBlock:input_type -> execution.AssembleBlockRequest + 18, // 47: execution.Execution.GetAssembledBlock:input_type -> execution.GetAssembledBlockRequest + 32, // 48: execution.Execution.CurrentHeader:input_type -> google.protobuf.Empty + 11, // 49: execution.Execution.GetTD:input_type -> execution.GetSegmentRequest + 11, // 50: execution.Execution.GetHeader:input_type -> execution.GetSegmentRequest + 11, // 51: execution.Execution.GetBody:input_type -> execution.GetSegmentRequest + 23, // 52: execution.Execution.GetBodiesByRange:input_type -> execution.GetBodiesByRangeRequest + 22, // 53: execution.Execution.GetBodiesByHashes:input_type -> execution.GetBodiesByHashesRequest + 26, // 54: execution.Execution.IsCanonicalHash:input_type -> types.H256 + 26, // 55: execution.Execution.GetHeaderHashNumber:input_type -> types.H256 + 32, // 56: execution.Execution.GetForkChoice:input_type -> google.protobuf.Empty + 32, // 57: execution.Execution.Ready:input_type -> google.protobuf.Empty + 32, // 58: execution.Execution.FrozenBlocks:input_type -> google.protobuf.Empty + 14, // 59: execution.Execution.InsertBlocks:output_type -> execution.InsertionResult + 2, // 60: execution.Execution.ValidateChain:output_type -> execution.ValidationReceipt + 1, // 61: execution.Execution.UpdateForkChoice:output_type -> execution.ForkChoiceReceipt + 17, // 62: execution.Execution.AssembleBlock:output_type -> execution.AssembleBlockResponse + 20, // 63: execution.Execution.GetAssembledBlock:output_type -> execution.GetAssembledBlockResponse + 7, // 64: execution.Execution.CurrentHeader:output_type -> execution.GetHeaderResponse + 8, // 65: execution.Execution.GetTD:output_type -> execution.GetTDResponse + 7, // 66: execution.Execution.GetHeader:output_type -> execution.GetHeaderResponse + 9, // 67: execution.Execution.GetBody:output_type -> execution.GetBodyResponse + 21, // 68: execution.Execution.GetBodiesByRange:output_type -> execution.GetBodiesBatchResponse + 21, // 69: execution.Execution.GetBodiesByHashes:output_type -> execution.GetBodiesBatchResponse + 3, // 70: execution.Execution.IsCanonicalHash:output_type -> execution.IsCanonicalResponse + 10, // 71: execution.Execution.GetHeaderHashNumber:output_type -> execution.GetHeaderHashNumberResponse + 13, // 72: execution.Execution.GetForkChoice:output_type -> execution.ForkChoice + 24, // 73: execution.Execution.Ready:output_type -> execution.ReadyResponse + 25, // 74: execution.Execution.FrozenBlocks:output_type -> execution.FrozenBlocksResponse + 59, // [59:75] is the sub-list for method output_type + 43, // [43:59] is the sub-list for method input_type + 43, // [43:43] is the sub-list for extension type_name + 43, // [43:43] is the sub-list for extension extendee + 0, // [0:43] is the sub-list for field type_name +} + +func init() { file_execution_execution_proto_init() } +func file_execution_execution_proto_init() { + if File_execution_execution_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_execution_execution_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ForkChoiceReceipt); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidationReceipt); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsCanonicalResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Header); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Block); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHeaderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTDResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBodyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHeaderHashNumberResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSegmentRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InsertBlocksRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ForkChoice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InsertionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AssembleBlockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AssembleBlockResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAssembledBlockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AssembledBlockData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAssembledBlockResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBodiesBatchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBodiesByHashesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBodiesByRangeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_execution_execution_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FrozenBlocksResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_execution_execution_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_execution_execution_proto_msgTypes[6].OneofWrappers = []interface{}{} + file_execution_execution_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_execution_execution_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_execution_execution_proto_msgTypes[9].OneofWrappers = []interface{}{} + file_execution_execution_proto_msgTypes[10].OneofWrappers = []interface{}{} + file_execution_execution_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_execution_execution_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_execution_execution_proto_msgTypes[19].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_execution_execution_proto_rawDesc, + NumEnums: 1, + NumMessages: 25, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_execution_execution_proto_goTypes, + DependencyIndexes: file_execution_execution_proto_depIdxs, + EnumInfos: file_execution_execution_proto_enumTypes, + MessageInfos: file_execution_execution_proto_msgTypes, + }.Build() + File_execution_execution_proto = out.File + file_execution_execution_proto_rawDesc = nil + file_execution_execution_proto_goTypes = nil + file_execution_execution_proto_depIdxs = nil +} diff --git a/erigon-lib/gointerfaces/execution/execution_grpc.pb.go b/erigon-lib/gointerfaces/execution/execution_grpc.pb.go new file mode 100644 index 00000000000..065a305e8fc --- /dev/null +++ b/erigon-lib/gointerfaces/execution/execution_grpc.pb.go @@ -0,0 +1,686 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.2 +// source: execution/execution.proto + +package execution + +import ( + context "context" + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + Execution_InsertBlocks_FullMethodName = "/execution.Execution/InsertBlocks" + Execution_ValidateChain_FullMethodName = "/execution.Execution/ValidateChain" + Execution_UpdateForkChoice_FullMethodName = "/execution.Execution/UpdateForkChoice" + Execution_AssembleBlock_FullMethodName = "/execution.Execution/AssembleBlock" + Execution_GetAssembledBlock_FullMethodName = "/execution.Execution/GetAssembledBlock" + Execution_CurrentHeader_FullMethodName = "/execution.Execution/CurrentHeader" + Execution_GetTD_FullMethodName = "/execution.Execution/GetTD" + Execution_GetHeader_FullMethodName = "/execution.Execution/GetHeader" + Execution_GetBody_FullMethodName = "/execution.Execution/GetBody" + Execution_GetBodiesByRange_FullMethodName = "/execution.Execution/GetBodiesByRange" + Execution_GetBodiesByHashes_FullMethodName = "/execution.Execution/GetBodiesByHashes" + Execution_IsCanonicalHash_FullMethodName = "/execution.Execution/IsCanonicalHash" + Execution_GetHeaderHashNumber_FullMethodName = "/execution.Execution/GetHeaderHashNumber" + Execution_GetForkChoice_FullMethodName = "/execution.Execution/GetForkChoice" + Execution_Ready_FullMethodName = "/execution.Execution/Ready" + Execution_FrozenBlocks_FullMethodName = "/execution.Execution/FrozenBlocks" +) + +// ExecutionClient is the client API for Execution service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ExecutionClient interface { + // Chain Putters. + InsertBlocks(ctx context.Context, in *InsertBlocksRequest, opts ...grpc.CallOption) (*InsertionResult, error) + // Chain Validation and ForkChoice. + ValidateChain(ctx context.Context, in *ValidationRequest, opts ...grpc.CallOption) (*ValidationReceipt, error) + UpdateForkChoice(ctx context.Context, in *ForkChoice, opts ...grpc.CallOption) (*ForkChoiceReceipt, error) + // Block Assembly + // EAGAIN design here, AssembleBlock initiates the asynchronous request, and GetAssembleBlock just return it if ready. + AssembleBlock(ctx context.Context, in *AssembleBlockRequest, opts ...grpc.CallOption) (*AssembleBlockResponse, error) + GetAssembledBlock(ctx context.Context, in *GetAssembledBlockRequest, opts ...grpc.CallOption) (*GetAssembledBlockResponse, error) + // Chain Getters. + CurrentHeader(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetHeaderResponse, error) + GetTD(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*GetTDResponse, error) + GetHeader(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*GetHeaderResponse, error) + GetBody(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*GetBodyResponse, error) + // Ranges + GetBodiesByRange(ctx context.Context, in *GetBodiesByRangeRequest, opts ...grpc.CallOption) (*GetBodiesBatchResponse, error) + GetBodiesByHashes(ctx context.Context, in *GetBodiesByHashesRequest, opts ...grpc.CallOption) (*GetBodiesBatchResponse, error) + // Chain checkers + IsCanonicalHash(ctx context.Context, in *types.H256, opts ...grpc.CallOption) (*IsCanonicalResponse, error) + GetHeaderHashNumber(ctx context.Context, in *types.H256, opts ...grpc.CallOption) (*GetHeaderHashNumberResponse, error) + GetForkChoice(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ForkChoice, error) + // Misc + // We want to figure out whether we processed snapshots and cleanup sync cycles. + Ready(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ReadyResponse, error) + // Frozen blocks are how many blocks are in snapshots .seg files. + FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FrozenBlocksResponse, error) +} + +type executionClient struct { + cc grpc.ClientConnInterface +} + +func NewExecutionClient(cc grpc.ClientConnInterface) ExecutionClient { + return &executionClient{cc} +} + +func (c *executionClient) InsertBlocks(ctx context.Context, in *InsertBlocksRequest, opts ...grpc.CallOption) (*InsertionResult, error) { + out := new(InsertionResult) + err := c.cc.Invoke(ctx, Execution_InsertBlocks_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) ValidateChain(ctx context.Context, in *ValidationRequest, opts ...grpc.CallOption) (*ValidationReceipt, error) { + out := new(ValidationReceipt) + err := c.cc.Invoke(ctx, Execution_ValidateChain_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) UpdateForkChoice(ctx context.Context, in *ForkChoice, opts ...grpc.CallOption) (*ForkChoiceReceipt, error) { + out := new(ForkChoiceReceipt) + err := c.cc.Invoke(ctx, Execution_UpdateForkChoice_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) AssembleBlock(ctx context.Context, in *AssembleBlockRequest, opts ...grpc.CallOption) (*AssembleBlockResponse, error) { + out := new(AssembleBlockResponse) + err := c.cc.Invoke(ctx, Execution_AssembleBlock_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) GetAssembledBlock(ctx context.Context, in *GetAssembledBlockRequest, opts ...grpc.CallOption) (*GetAssembledBlockResponse, error) { + out := new(GetAssembledBlockResponse) + err := c.cc.Invoke(ctx, Execution_GetAssembledBlock_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) CurrentHeader(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetHeaderResponse, error) { + out := new(GetHeaderResponse) + err := c.cc.Invoke(ctx, Execution_CurrentHeader_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) GetTD(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*GetTDResponse, error) { + out := new(GetTDResponse) + err := c.cc.Invoke(ctx, Execution_GetTD_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) GetHeader(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*GetHeaderResponse, error) { + out := new(GetHeaderResponse) + err := c.cc.Invoke(ctx, Execution_GetHeader_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) GetBody(ctx context.Context, in *GetSegmentRequest, opts ...grpc.CallOption) (*GetBodyResponse, error) { + out := new(GetBodyResponse) + err := c.cc.Invoke(ctx, Execution_GetBody_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) GetBodiesByRange(ctx context.Context, in *GetBodiesByRangeRequest, opts ...grpc.CallOption) (*GetBodiesBatchResponse, error) { + out := new(GetBodiesBatchResponse) + err := c.cc.Invoke(ctx, Execution_GetBodiesByRange_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) GetBodiesByHashes(ctx context.Context, in *GetBodiesByHashesRequest, opts ...grpc.CallOption) (*GetBodiesBatchResponse, error) { + out := new(GetBodiesBatchResponse) + err := c.cc.Invoke(ctx, Execution_GetBodiesByHashes_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) IsCanonicalHash(ctx context.Context, in *types.H256, opts ...grpc.CallOption) (*IsCanonicalResponse, error) { + out := new(IsCanonicalResponse) + err := c.cc.Invoke(ctx, Execution_IsCanonicalHash_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) GetHeaderHashNumber(ctx context.Context, in *types.H256, opts ...grpc.CallOption) (*GetHeaderHashNumberResponse, error) { + out := new(GetHeaderHashNumberResponse) + err := c.cc.Invoke(ctx, Execution_GetHeaderHashNumber_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) GetForkChoice(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ForkChoice, error) { + out := new(ForkChoice) + err := c.cc.Invoke(ctx, Execution_GetForkChoice_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) Ready(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*ReadyResponse, error) { + out := new(ReadyResponse) + err := c.cc.Invoke(ctx, Execution_Ready_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *executionClient) FrozenBlocks(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*FrozenBlocksResponse, error) { + out := new(FrozenBlocksResponse) + err := c.cc.Invoke(ctx, Execution_FrozenBlocks_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ExecutionServer is the server API for Execution service. +// All implementations must embed UnimplementedExecutionServer +// for forward compatibility +type ExecutionServer interface { + // Chain Putters. + InsertBlocks(context.Context, *InsertBlocksRequest) (*InsertionResult, error) + // Chain Validation and ForkChoice. + ValidateChain(context.Context, *ValidationRequest) (*ValidationReceipt, error) + UpdateForkChoice(context.Context, *ForkChoice) (*ForkChoiceReceipt, error) + // Block Assembly + // EAGAIN design here, AssembleBlock initiates the asynchronous request, and GetAssembleBlock just return it if ready. + AssembleBlock(context.Context, *AssembleBlockRequest) (*AssembleBlockResponse, error) + GetAssembledBlock(context.Context, *GetAssembledBlockRequest) (*GetAssembledBlockResponse, error) + // Chain Getters. + CurrentHeader(context.Context, *emptypb.Empty) (*GetHeaderResponse, error) + GetTD(context.Context, *GetSegmentRequest) (*GetTDResponse, error) + GetHeader(context.Context, *GetSegmentRequest) (*GetHeaderResponse, error) + GetBody(context.Context, *GetSegmentRequest) (*GetBodyResponse, error) + // Ranges + GetBodiesByRange(context.Context, *GetBodiesByRangeRequest) (*GetBodiesBatchResponse, error) + GetBodiesByHashes(context.Context, *GetBodiesByHashesRequest) (*GetBodiesBatchResponse, error) + // Chain checkers + IsCanonicalHash(context.Context, *types.H256) (*IsCanonicalResponse, error) + GetHeaderHashNumber(context.Context, *types.H256) (*GetHeaderHashNumberResponse, error) + GetForkChoice(context.Context, *emptypb.Empty) (*ForkChoice, error) + // Misc + // We want to figure out whether we processed snapshots and cleanup sync cycles. + Ready(context.Context, *emptypb.Empty) (*ReadyResponse, error) + // Frozen blocks are how many blocks are in snapshots .seg files. + FrozenBlocks(context.Context, *emptypb.Empty) (*FrozenBlocksResponse, error) + mustEmbedUnimplementedExecutionServer() +} + +// UnimplementedExecutionServer must be embedded to have forward compatible implementations. +type UnimplementedExecutionServer struct { +} + +func (UnimplementedExecutionServer) InsertBlocks(context.Context, *InsertBlocksRequest) (*InsertionResult, error) { + return nil, status.Errorf(codes.Unimplemented, "method InsertBlocks not implemented") +} +func (UnimplementedExecutionServer) ValidateChain(context.Context, *ValidationRequest) (*ValidationReceipt, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValidateChain not implemented") +} +func (UnimplementedExecutionServer) UpdateForkChoice(context.Context, *ForkChoice) (*ForkChoiceReceipt, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateForkChoice not implemented") +} +func (UnimplementedExecutionServer) AssembleBlock(context.Context, *AssembleBlockRequest) (*AssembleBlockResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AssembleBlock not implemented") +} +func (UnimplementedExecutionServer) GetAssembledBlock(context.Context, *GetAssembledBlockRequest) (*GetAssembledBlockResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAssembledBlock not implemented") +} +func (UnimplementedExecutionServer) CurrentHeader(context.Context, *emptypb.Empty) (*GetHeaderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CurrentHeader not implemented") +} +func (UnimplementedExecutionServer) GetTD(context.Context, *GetSegmentRequest) (*GetTDResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTD not implemented") +} +func (UnimplementedExecutionServer) GetHeader(context.Context, *GetSegmentRequest) (*GetHeaderResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHeader not implemented") +} +func (UnimplementedExecutionServer) GetBody(context.Context, *GetSegmentRequest) (*GetBodyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBody not implemented") +} +func (UnimplementedExecutionServer) GetBodiesByRange(context.Context, *GetBodiesByRangeRequest) (*GetBodiesBatchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBodiesByRange not implemented") +} +func (UnimplementedExecutionServer) GetBodiesByHashes(context.Context, *GetBodiesByHashesRequest) (*GetBodiesBatchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBodiesByHashes not implemented") +} +func (UnimplementedExecutionServer) IsCanonicalHash(context.Context, *types.H256) (*IsCanonicalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IsCanonicalHash not implemented") +} +func (UnimplementedExecutionServer) GetHeaderHashNumber(context.Context, *types.H256) (*GetHeaderHashNumberResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHeaderHashNumber not implemented") +} +func (UnimplementedExecutionServer) GetForkChoice(context.Context, *emptypb.Empty) (*ForkChoice, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetForkChoice not implemented") +} +func (UnimplementedExecutionServer) Ready(context.Context, *emptypb.Empty) (*ReadyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Ready not implemented") +} +func (UnimplementedExecutionServer) FrozenBlocks(context.Context, *emptypb.Empty) (*FrozenBlocksResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FrozenBlocks not implemented") +} +func (UnimplementedExecutionServer) mustEmbedUnimplementedExecutionServer() {} + +// UnsafeExecutionServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ExecutionServer will +// result in compilation errors. +type UnsafeExecutionServer interface { + mustEmbedUnimplementedExecutionServer() +} + +func RegisterExecutionServer(s grpc.ServiceRegistrar, srv ExecutionServer) { + s.RegisterService(&Execution_ServiceDesc, srv) +} + +func _Execution_InsertBlocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InsertBlocksRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).InsertBlocks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_InsertBlocks_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).InsertBlocks(ctx, req.(*InsertBlocksRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_ValidateChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).ValidateChain(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_ValidateChain_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).ValidateChain(ctx, req.(*ValidationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_UpdateForkChoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ForkChoice) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).UpdateForkChoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_UpdateForkChoice_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).UpdateForkChoice(ctx, req.(*ForkChoice)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_AssembleBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AssembleBlockRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).AssembleBlock(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_AssembleBlock_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).AssembleBlock(ctx, req.(*AssembleBlockRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_GetAssembledBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAssembledBlockRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).GetAssembledBlock(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_GetAssembledBlock_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).GetAssembledBlock(ctx, req.(*GetAssembledBlockRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_CurrentHeader_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).CurrentHeader(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_CurrentHeader_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).CurrentHeader(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_GetTD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSegmentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).GetTD(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_GetTD_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).GetTD(ctx, req.(*GetSegmentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_GetHeader_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSegmentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).GetHeader(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_GetHeader_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).GetHeader(ctx, req.(*GetSegmentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_GetBody_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSegmentRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).GetBody(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_GetBody_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).GetBody(ctx, req.(*GetSegmentRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_GetBodiesByRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBodiesByRangeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).GetBodiesByRange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_GetBodiesByRange_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).GetBodiesByRange(ctx, req.(*GetBodiesByRangeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_GetBodiesByHashes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBodiesByHashesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).GetBodiesByHashes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_GetBodiesByHashes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).GetBodiesByHashes(ctx, req.(*GetBodiesByHashesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_IsCanonicalHash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(types.H256) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).IsCanonicalHash(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_IsCanonicalHash_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).IsCanonicalHash(ctx, req.(*types.H256)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_GetHeaderHashNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(types.H256) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).GetHeaderHashNumber(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_GetHeaderHashNumber_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).GetHeaderHashNumber(ctx, req.(*types.H256)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_GetForkChoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).GetForkChoice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_GetForkChoice_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).GetForkChoice(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_Ready_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).Ready(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_Ready_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).Ready(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Execution_FrozenBlocks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExecutionServer).FrozenBlocks(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Execution_FrozenBlocks_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExecutionServer).FrozenBlocks(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +// Execution_ServiceDesc is the grpc.ServiceDesc for Execution service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Execution_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "execution.Execution", + HandlerType: (*ExecutionServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "InsertBlocks", + Handler: _Execution_InsertBlocks_Handler, + }, + { + MethodName: "ValidateChain", + Handler: _Execution_ValidateChain_Handler, + }, + { + MethodName: "UpdateForkChoice", + Handler: _Execution_UpdateForkChoice_Handler, + }, + { + MethodName: "AssembleBlock", + Handler: _Execution_AssembleBlock_Handler, + }, + { + MethodName: "GetAssembledBlock", + Handler: _Execution_GetAssembledBlock_Handler, + }, + { + MethodName: "CurrentHeader", + Handler: _Execution_CurrentHeader_Handler, + }, + { + MethodName: "GetTD", + Handler: _Execution_GetTD_Handler, + }, + { + MethodName: "GetHeader", + Handler: _Execution_GetHeader_Handler, + }, + { + MethodName: "GetBody", + Handler: _Execution_GetBody_Handler, + }, + { + MethodName: "GetBodiesByRange", + Handler: _Execution_GetBodiesByRange_Handler, + }, + { + MethodName: "GetBodiesByHashes", + Handler: _Execution_GetBodiesByHashes_Handler, + }, + { + MethodName: "IsCanonicalHash", + Handler: _Execution_IsCanonicalHash_Handler, + }, + { + MethodName: "GetHeaderHashNumber", + Handler: _Execution_GetHeaderHashNumber_Handler, + }, + { + MethodName: "GetForkChoice", + Handler: _Execution_GetForkChoice_Handler, + }, + { + MethodName: "Ready", + Handler: _Execution_Ready_Handler, + }, + { + MethodName: "FrozenBlocks", + Handler: _Execution_FrozenBlocks_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "execution/execution.proto", +} diff --git a/erigon-lib/gointerfaces/grpcutil/utils.go b/erigon-lib/gointerfaces/grpcutil/utils.go new file mode 100644 index 00000000000..a0f7c2883da --- /dev/null +++ b/erigon-lib/gointerfaces/grpcutil/utils.go @@ -0,0 +1,148 @@ +package grpcutil + +import ( + "context" + "crypto/tls" + "crypto/x509" + "errors" + "fmt" + "io" + "os" + "strings" + "time" + + "github.com/c2h5oh/datasize" + grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware" + grpc_recovery "github.com/grpc-ecosystem/go-grpc-middleware/recovery" + "google.golang.org/grpc" + "google.golang.org/grpc/backoff" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/reflection" + "google.golang.org/grpc/status" +) + +func TLS(tlsCACert, tlsCertFile, tlsKeyFile string) (credentials.TransportCredentials, error) { + // load peer cert/key, ca cert + if tlsCACert == "" { + if tlsCertFile == "" && tlsKeyFile == "" { + return nil, nil + } + return credentials.NewServerTLSFromFile(tlsCertFile, tlsKeyFile) + } + var caCert []byte + peerCert, err := tls.LoadX509KeyPair(tlsCertFile, tlsKeyFile) + if err != nil { + return nil, fmt.Errorf("load peer cert/key error:%w", err) + } + caCert, err = os.ReadFile(tlsCACert) + if err != nil { + return nil, fmt.Errorf("read ca cert file error:%w", err) + } + caCertPool := x509.NewCertPool() + caCertPool.AppendCertsFromPEM(caCert) + return credentials.NewTLS(&tls.Config{ + Certificates: []tls.Certificate{peerCert}, + ClientCAs: caCertPool, + ClientAuth: tls.RequireAndVerifyClientCert, + MinVersion: tls.VersionTLS12, + //nolint:gosec + InsecureSkipVerify: true, // This is to make it work when Common Name does not match - remove when procedure is updated for common name + }), nil +} + +func NewServer(rateLimit uint32, creds credentials.TransportCredentials) *grpc.Server { + var ( + streamInterceptors []grpc.StreamServerInterceptor + unaryInterceptors []grpc.UnaryServerInterceptor + ) + streamInterceptors = append(streamInterceptors, grpc_recovery.StreamServerInterceptor()) + unaryInterceptors = append(unaryInterceptors, grpc_recovery.UnaryServerInterceptor()) + + //if metrics.Enabled { + // streamInterceptors = append(streamInterceptors, grpc_prometheus.StreamServerInterceptor) + // unaryInterceptors = append(unaryInterceptors, grpc_prometheus.UnaryServerInterceptor) + //} + + //cpus := uint32(runtime.GOMAXPROCS(-1)) + opts := []grpc.ServerOption{ + //grpc.NumStreamWorkers(cpus), // reduce amount of goroutines + grpc.MaxConcurrentStreams(rateLimit), // to force clients reduce concurrency level + // Don't drop the connection, settings accordign to this comment on GitHub + // https://github.com/grpc/grpc-go/issues/3171#issuecomment-552796779 + grpc.KeepaliveEnforcementPolicy(keepalive.EnforcementPolicy{ + MinTime: 10 * time.Second, + PermitWithoutStream: true, + }), + grpc.StreamInterceptor(grpc_middleware.ChainStreamServer(streamInterceptors...)), + grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer(unaryInterceptors...)), + grpc.Creds(creds), + } + grpcServer := grpc.NewServer(opts...) + reflection.Register(grpcServer) + + //if metrics.Enabled { + // grpc_prometheus.Register(grpcServer) + //} + + return grpcServer +} + +func Connect(creds credentials.TransportCredentials, dialAddress string) (*grpc.ClientConn, error) { + var dialOpts []grpc.DialOption + + backoffCfg := backoff.DefaultConfig + backoffCfg.BaseDelay = 500 * time.Millisecond + backoffCfg.MaxDelay = 10 * time.Second + dialOpts = []grpc.DialOption{ + grpc.WithConnectParams(grpc.ConnectParams{Backoff: backoffCfg, MinConnectTimeout: 10 * time.Minute}), + grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(int(200 * datasize.MB))), + grpc.WithKeepaliveParams(keepalive.ClientParameters{}), + } + if creds == nil { + dialOpts = append(dialOpts, grpc.WithInsecure()) + } else { + dialOpts = append(dialOpts, grpc.WithTransportCredentials(creds)) + } + + //if opts.inMemConn != nil { + // dialOpts = append(dialOpts, grpc.WithContextDialer(func(ctx context.Context, url string) (net.Conn, error) { + // return opts.inMemConn.Dial() + // })) + //} + + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + + return grpc.DialContext(ctx, dialAddress, dialOpts...) +} + +func IsRetryLater(err error) bool { + if s, ok := status.FromError(err); ok { + code := s.Code() + return code == codes.Unavailable || code == codes.Canceled || code == codes.ResourceExhausted + } + return false +} + +func IsEndOfStream(err error) bool { + if errors.Is(err, io.EOF) || errors.Is(err, context.Canceled) { + return true + } + if s, ok := status.FromError(err); ok { + return s.Code() == codes.Canceled || strings.Contains(s.Message(), context.Canceled.Error()) + } + return false +} + +// ErrIs - like `errors.Is` but for grpc errors +func ErrIs(err, target error) bool { + if errors.Is(err, target) { // direct clients do return Go-style errors + return true + } + if s, ok := status.FromError(err); ok { // remote clients do return GRPC-style errors + return strings.Contains(s.Message(), target.Error()) + } + return false +} diff --git a/erigon-lib/gointerfaces/remote/ethbackend.pb.go b/erigon-lib/gointerfaces/remote/ethbackend.pb.go new file mode 100644 index 00000000000..118a3f7637d --- /dev/null +++ b/erigon-lib/gointerfaces/remote/ethbackend.pb.go @@ -0,0 +1,2150 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: remote/ethbackend.proto + +package remote + +import ( + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Event int32 + +const ( + Event_HEADER Event = 0 + Event_PENDING_LOGS Event = 1 + Event_PENDING_BLOCK Event = 2 + // NEW_SNAPSHOT - one or many new snapshots (of snapshot sync) were created, + // client need to close old file descriptors and open new (on new segments), + // then server can remove old files + Event_NEW_SNAPSHOT Event = 3 +) + +// Enum value maps for Event. +var ( + Event_name = map[int32]string{ + 0: "HEADER", + 1: "PENDING_LOGS", + 2: "PENDING_BLOCK", + 3: "NEW_SNAPSHOT", + } + Event_value = map[string]int32{ + "HEADER": 0, + "PENDING_LOGS": 1, + "PENDING_BLOCK": 2, + "NEW_SNAPSHOT": 3, + } +) + +func (x Event) Enum() *Event { + p := new(Event) + *p = x + return p +} + +func (x Event) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Event) Descriptor() protoreflect.EnumDescriptor { + return file_remote_ethbackend_proto_enumTypes[0].Descriptor() +} + +func (Event) Type() protoreflect.EnumType { + return &file_remote_ethbackend_proto_enumTypes[0] +} + +func (x Event) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Event.Descriptor instead. +func (Event) EnumDescriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{0} +} + +type EtherbaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EtherbaseRequest) Reset() { + *x = EtherbaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtherbaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtherbaseRequest) ProtoMessage() {} + +func (x *EtherbaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtherbaseRequest.ProtoReflect.Descriptor instead. +func (*EtherbaseRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{0} +} + +type EtherbaseReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *types.H160 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *EtherbaseReply) Reset() { + *x = EtherbaseReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EtherbaseReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EtherbaseReply) ProtoMessage() {} + +func (x *EtherbaseReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EtherbaseReply.ProtoReflect.Descriptor instead. +func (*EtherbaseReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{1} +} + +func (x *EtherbaseReply) GetAddress() *types.H160 { + if x != nil { + return x.Address + } + return nil +} + +type NetVersionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NetVersionRequest) Reset() { + *x = NetVersionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NetVersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetVersionRequest) ProtoMessage() {} + +func (x *NetVersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NetVersionRequest.ProtoReflect.Descriptor instead. +func (*NetVersionRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{2} +} + +type NetVersionReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *NetVersionReply) Reset() { + *x = NetVersionReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NetVersionReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetVersionReply) ProtoMessage() {} + +func (x *NetVersionReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NetVersionReply.ProtoReflect.Descriptor instead. +func (*NetVersionReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{3} +} + +func (x *NetVersionReply) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type NetPeerCountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *NetPeerCountRequest) Reset() { + *x = NetPeerCountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NetPeerCountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetPeerCountRequest) ProtoMessage() {} + +func (x *NetPeerCountRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NetPeerCountRequest.ProtoReflect.Descriptor instead. +func (*NetPeerCountRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{4} +} + +type NetPeerCountReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count uint64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *NetPeerCountReply) Reset() { + *x = NetPeerCountReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NetPeerCountReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetPeerCountReply) ProtoMessage() {} + +func (x *NetPeerCountReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NetPeerCountReply.ProtoReflect.Descriptor instead. +func (*NetPeerCountReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{5} +} + +func (x *NetPeerCountReply) GetCount() uint64 { + if x != nil { + return x.Count + } + return 0 +} + +type ProtocolVersionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ProtocolVersionRequest) Reset() { + *x = ProtocolVersionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProtocolVersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProtocolVersionRequest) ProtoMessage() {} + +func (x *ProtocolVersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProtocolVersionRequest.ProtoReflect.Descriptor instead. +func (*ProtocolVersionRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{6} +} + +type ProtocolVersionReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *ProtocolVersionReply) Reset() { + *x = ProtocolVersionReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProtocolVersionReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProtocolVersionReply) ProtoMessage() {} + +func (x *ProtocolVersionReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProtocolVersionReply.ProtoReflect.Descriptor instead. +func (*ProtocolVersionReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{7} +} + +func (x *ProtocolVersionReply) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +type ClientVersionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ClientVersionRequest) Reset() { + *x = ClientVersionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientVersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientVersionRequest) ProtoMessage() {} + +func (x *ClientVersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientVersionRequest.ProtoReflect.Descriptor instead. +func (*ClientVersionRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{8} +} + +type ClientVersionReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` +} + +func (x *ClientVersionReply) Reset() { + *x = ClientVersionReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientVersionReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientVersionReply) ProtoMessage() {} + +func (x *ClientVersionReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientVersionReply.ProtoReflect.Descriptor instead. +func (*ClientVersionReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{9} +} + +func (x *ClientVersionReply) GetNodeName() string { + if x != nil { + return x.NodeName + } + return "" +} + +type SubscribeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type Event `protobuf:"varint,1,opt,name=type,proto3,enum=remote.Event" json:"type,omitempty"` +} + +func (x *SubscribeRequest) Reset() { + *x = SubscribeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeRequest) ProtoMessage() {} + +func (x *SubscribeRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead. +func (*SubscribeRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{10} +} + +func (x *SubscribeRequest) GetType() Event { + if x != nil { + return x.Type + } + return Event_HEADER +} + +type SubscribeReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type Event `protobuf:"varint,1,opt,name=type,proto3,enum=remote.Event" json:"type,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` // serialized data +} + +func (x *SubscribeReply) Reset() { + *x = SubscribeReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeReply) ProtoMessage() {} + +func (x *SubscribeReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscribeReply.ProtoReflect.Descriptor instead. +func (*SubscribeReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{11} +} + +func (x *SubscribeReply) GetType() Event { + if x != nil { + return x.Type + } + return Event_HEADER +} + +func (x *SubscribeReply) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type LogsFilterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AllAddresses bool `protobuf:"varint,1,opt,name=all_addresses,json=allAddresses,proto3" json:"all_addresses,omitempty"` + Addresses []*types.H160 `protobuf:"bytes,2,rep,name=addresses,proto3" json:"addresses,omitempty"` + AllTopics bool `protobuf:"varint,3,opt,name=all_topics,json=allTopics,proto3" json:"all_topics,omitempty"` + Topics []*types.H256 `protobuf:"bytes,4,rep,name=topics,proto3" json:"topics,omitempty"` +} + +func (x *LogsFilterRequest) Reset() { + *x = LogsFilterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LogsFilterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogsFilterRequest) ProtoMessage() {} + +func (x *LogsFilterRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogsFilterRequest.ProtoReflect.Descriptor instead. +func (*LogsFilterRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{12} +} + +func (x *LogsFilterRequest) GetAllAddresses() bool { + if x != nil { + return x.AllAddresses + } + return false +} + +func (x *LogsFilterRequest) GetAddresses() []*types.H160 { + if x != nil { + return x.Addresses + } + return nil +} + +func (x *LogsFilterRequest) GetAllTopics() bool { + if x != nil { + return x.AllTopics + } + return false +} + +func (x *LogsFilterRequest) GetTopics() []*types.H256 { + if x != nil { + return x.Topics + } + return nil +} + +type SubscribeLogsReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *types.H160 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + BlockHash *types.H256 `protobuf:"bytes,2,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` + BlockNumber uint64 `protobuf:"varint,3,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` + LogIndex uint64 `protobuf:"varint,5,opt,name=log_index,json=logIndex,proto3" json:"log_index,omitempty"` + Topics []*types.H256 `protobuf:"bytes,6,rep,name=topics,proto3" json:"topics,omitempty"` + TransactionHash *types.H256 `protobuf:"bytes,7,opt,name=transaction_hash,json=transactionHash,proto3" json:"transaction_hash,omitempty"` + TransactionIndex uint64 `protobuf:"varint,8,opt,name=transaction_index,json=transactionIndex,proto3" json:"transaction_index,omitempty"` + Removed bool `protobuf:"varint,9,opt,name=removed,proto3" json:"removed,omitempty"` +} + +func (x *SubscribeLogsReply) Reset() { + *x = SubscribeLogsReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubscribeLogsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubscribeLogsReply) ProtoMessage() {} + +func (x *SubscribeLogsReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubscribeLogsReply.ProtoReflect.Descriptor instead. +func (*SubscribeLogsReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{13} +} + +func (x *SubscribeLogsReply) GetAddress() *types.H160 { + if x != nil { + return x.Address + } + return nil +} + +func (x *SubscribeLogsReply) GetBlockHash() *types.H256 { + if x != nil { + return x.BlockHash + } + return nil +} + +func (x *SubscribeLogsReply) GetBlockNumber() uint64 { + if x != nil { + return x.BlockNumber + } + return 0 +} + +func (x *SubscribeLogsReply) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *SubscribeLogsReply) GetLogIndex() uint64 { + if x != nil { + return x.LogIndex + } + return 0 +} + +func (x *SubscribeLogsReply) GetTopics() []*types.H256 { + if x != nil { + return x.Topics + } + return nil +} + +func (x *SubscribeLogsReply) GetTransactionHash() *types.H256 { + if x != nil { + return x.TransactionHash + } + return nil +} + +func (x *SubscribeLogsReply) GetTransactionIndex() uint64 { + if x != nil { + return x.TransactionIndex + } + return 0 +} + +func (x *SubscribeLogsReply) GetRemoved() bool { + if x != nil { + return x.Removed + } + return false +} + +type BlockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockHeight uint64 `protobuf:"varint,2,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` + BlockHash *types.H256 `protobuf:"bytes,3,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` +} + +func (x *BlockRequest) Reset() { + *x = BlockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockRequest) ProtoMessage() {} + +func (x *BlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlockRequest.ProtoReflect.Descriptor instead. +func (*BlockRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{14} +} + +func (x *BlockRequest) GetBlockHeight() uint64 { + if x != nil { + return x.BlockHeight + } + return 0 +} + +func (x *BlockRequest) GetBlockHash() *types.H256 { + if x != nil { + return x.BlockHash + } + return nil +} + +type BlockReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockRlp []byte `protobuf:"bytes,1,opt,name=block_rlp,json=blockRlp,proto3" json:"block_rlp,omitempty"` + Senders []byte `protobuf:"bytes,2,opt,name=senders,proto3" json:"senders,omitempty"` +} + +func (x *BlockReply) Reset() { + *x = BlockReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockReply) ProtoMessage() {} + +func (x *BlockReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlockReply.ProtoReflect.Descriptor instead. +func (*BlockReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{15} +} + +func (x *BlockReply) GetBlockRlp() []byte { + if x != nil { + return x.BlockRlp + } + return nil +} + +func (x *BlockReply) GetSenders() []byte { + if x != nil { + return x.Senders + } + return nil +} + +type TxnLookupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TxnHash *types.H256 `protobuf:"bytes,1,opt,name=txn_hash,json=txnHash,proto3" json:"txn_hash,omitempty"` +} + +func (x *TxnLookupRequest) Reset() { + *x = TxnLookupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxnLookupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxnLookupRequest) ProtoMessage() {} + +func (x *TxnLookupRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxnLookupRequest.ProtoReflect.Descriptor instead. +func (*TxnLookupRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{16} +} + +func (x *TxnLookupRequest) GetTxnHash() *types.H256 { + if x != nil { + return x.TxnHash + } + return nil +} + +type TxnLookupReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockNumber uint64 `protobuf:"varint,1,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` +} + +func (x *TxnLookupReply) Reset() { + *x = TxnLookupReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxnLookupReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxnLookupReply) ProtoMessage() {} + +func (x *TxnLookupReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxnLookupReply.ProtoReflect.Descriptor instead. +func (*TxnLookupReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{17} +} + +func (x *TxnLookupReply) GetBlockNumber() uint64 { + if x != nil { + return x.BlockNumber + } + return 0 +} + +type NodesInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Limit uint32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` +} + +func (x *NodesInfoRequest) Reset() { + *x = NodesInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodesInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodesInfoRequest) ProtoMessage() {} + +func (x *NodesInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodesInfoRequest.ProtoReflect.Descriptor instead. +func (*NodesInfoRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{18} +} + +func (x *NodesInfoRequest) GetLimit() uint32 { + if x != nil { + return x.Limit + } + return 0 +} + +type AddPeerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *AddPeerRequest) Reset() { + *x = AddPeerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddPeerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPeerRequest) ProtoMessage() {} + +func (x *AddPeerRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPeerRequest.ProtoReflect.Descriptor instead. +func (*AddPeerRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{19} +} + +func (x *AddPeerRequest) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type NodesInfoReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NodesInfo []*types.NodeInfoReply `protobuf:"bytes,1,rep,name=nodes_info,json=nodesInfo,proto3" json:"nodes_info,omitempty"` +} + +func (x *NodesInfoReply) Reset() { + *x = NodesInfoReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodesInfoReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodesInfoReply) ProtoMessage() {} + +func (x *NodesInfoReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodesInfoReply.ProtoReflect.Descriptor instead. +func (*NodesInfoReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{20} +} + +func (x *NodesInfoReply) GetNodesInfo() []*types.NodeInfoReply { + if x != nil { + return x.NodesInfo + } + return nil +} + +type PeersReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peers []*types.PeerInfo `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"` +} + +func (x *PeersReply) Reset() { + *x = PeersReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeersReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeersReply) ProtoMessage() {} + +func (x *PeersReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeersReply.ProtoReflect.Descriptor instead. +func (*PeersReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{21} +} + +func (x *PeersReply) GetPeers() []*types.PeerInfo { + if x != nil { + return x.Peers + } + return nil +} + +type AddPeerReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` +} + +func (x *AddPeerReply) Reset() { + *x = AddPeerReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddPeerReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPeerReply) ProtoMessage() {} + +func (x *AddPeerReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPeerReply.ProtoReflect.Descriptor instead. +func (*AddPeerReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{22} +} + +func (x *AddPeerReply) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type PendingBlockReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockRlp []byte `protobuf:"bytes,1,opt,name=block_rlp,json=blockRlp,proto3" json:"block_rlp,omitempty"` +} + +func (x *PendingBlockReply) Reset() { + *x = PendingBlockReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PendingBlockReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PendingBlockReply) ProtoMessage() {} + +func (x *PendingBlockReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PendingBlockReply.ProtoReflect.Descriptor instead. +func (*PendingBlockReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{23} +} + +func (x *PendingBlockReply) GetBlockRlp() []byte { + if x != nil { + return x.BlockRlp + } + return nil +} + +type EngineGetPayloadBodiesByHashV1Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hashes []*types.H256 `protobuf:"bytes,1,rep,name=hashes,proto3" json:"hashes,omitempty"` +} + +func (x *EngineGetPayloadBodiesByHashV1Request) Reset() { + *x = EngineGetPayloadBodiesByHashV1Request{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EngineGetPayloadBodiesByHashV1Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EngineGetPayloadBodiesByHashV1Request) ProtoMessage() {} + +func (x *EngineGetPayloadBodiesByHashV1Request) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EngineGetPayloadBodiesByHashV1Request.ProtoReflect.Descriptor instead. +func (*EngineGetPayloadBodiesByHashV1Request) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{24} +} + +func (x *EngineGetPayloadBodiesByHashV1Request) GetHashes() []*types.H256 { + if x != nil { + return x.Hashes + } + return nil +} + +type EngineGetPayloadBodiesByRangeV1Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start uint64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` + Count uint64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *EngineGetPayloadBodiesByRangeV1Request) Reset() { + *x = EngineGetPayloadBodiesByRangeV1Request{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EngineGetPayloadBodiesByRangeV1Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EngineGetPayloadBodiesByRangeV1Request) ProtoMessage() {} + +func (x *EngineGetPayloadBodiesByRangeV1Request) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EngineGetPayloadBodiesByRangeV1Request.ProtoReflect.Descriptor instead. +func (*EngineGetPayloadBodiesByRangeV1Request) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{25} +} + +func (x *EngineGetPayloadBodiesByRangeV1Request) GetStart() uint64 { + if x != nil { + return x.Start + } + return 0 +} + +func (x *EngineGetPayloadBodiesByRangeV1Request) GetCount() uint64 { + if x != nil { + return x.Count + } + return 0 +} + +type BorEventRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BorTxHash *types.H256 `protobuf:"bytes,1,opt,name=bor_tx_hash,json=borTxHash,proto3" json:"bor_tx_hash,omitempty"` +} + +func (x *BorEventRequest) Reset() { + *x = BorEventRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BorEventRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BorEventRequest) ProtoMessage() {} + +func (x *BorEventRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BorEventRequest.ProtoReflect.Descriptor instead. +func (*BorEventRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{26} +} + +func (x *BorEventRequest) GetBorTxHash() *types.H256 { + if x != nil { + return x.BorTxHash + } + return nil +} + +type BorEventReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Present bool `protobuf:"varint,1,opt,name=present,proto3" json:"present,omitempty"` + BlockNumber uint64 `protobuf:"varint,2,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + EventRlps [][]byte `protobuf:"bytes,3,rep,name=event_rlps,json=eventRlps,proto3" json:"event_rlps,omitempty"` +} + +func (x *BorEventReply) Reset() { + *x = BorEventReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BorEventReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BorEventReply) ProtoMessage() {} + +func (x *BorEventReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BorEventReply.ProtoReflect.Descriptor instead. +func (*BorEventReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{27} +} + +func (x *BorEventReply) GetPresent() bool { + if x != nil { + return x.Present + } + return false +} + +func (x *BorEventReply) GetBlockNumber() uint64 { + if x != nil { + return x.BlockNumber + } + return 0 +} + +func (x *BorEventReply) GetEventRlps() [][]byte { + if x != nil { + return x.EventRlps + } + return nil +} + +var File_remote_ethbackend_proto protoreflect.FileDescriptor + +var file_remote_ethbackend_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2f, 0x65, 0x74, 0x68, 0x62, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x12, 0x0a, 0x10, 0x45, 0x74, 0x68, 0x65, 0x72, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x37, 0x0a, 0x0e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x62, 0x61, + 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x48, 0x31, 0x36, 0x30, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x13, + 0x0a, 0x11, 0x4e, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x21, 0x0a, 0x0f, 0x4e, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x4e, 0x65, 0x74, 0x50, 0x65, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x29, 0x0a, + 0x11, 0x4e, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x18, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x26, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x31, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x0e, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x21, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa7, 0x01, 0x0a, 0x11, 0x4c, 0x6f, 0x67, 0x73, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, + 0x6c, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x29, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, 0x36, 0x30, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, + 0x6c, 0x6c, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x61, 0x6c, 0x6c, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x22, + 0xdf, 0x02, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x6f, 0x67, + 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x48, 0x31, 0x36, 0x30, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x0a, + 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x09, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x23, 0x0a, + 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, + 0x63, 0x73, 0x12, 0x36, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x64, 0x22, 0x5d, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, + 0x22, 0x43, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, + 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6c, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6c, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x73, 0x22, 0x3a, 0x0a, 0x10, 0x54, 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x08, 0x74, 0x78, 0x6e, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x07, 0x74, 0x78, 0x6e, 0x48, 0x61, 0x73, + 0x68, 0x22, 0x33, 0x0a, 0x0e, 0x54, 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x10, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x22, 0x22, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x22, 0x45, 0x0a, 0x0e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x33, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x33, 0x0a, 0x0a, 0x50, + 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x65, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, + 0x22, 0x28, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x30, 0x0a, 0x11, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, + 0x1b, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x6c, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x6c, 0x70, 0x22, 0x4c, 0x0a, 0x25, + 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x56, 0x31, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, + 0x35, 0x36, 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0x54, 0x0a, 0x26, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, + 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x31, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x3e, 0x0a, 0x0f, 0x42, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0b, 0x62, 0x6f, 0x72, 0x5f, 0x74, 0x78, 0x5f, 0x68, 0x61, + 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x09, 0x62, 0x6f, 0x72, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, + 0x22, 0x6b, 0x0a, 0x0d, 0x42, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, + 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6c, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6c, 0x70, 0x73, 0x2a, 0x4a, 0x0a, + 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, + 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, + 0x47, 0x53, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x57, 0x5f, 0x53, + 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x03, 0x32, 0xd3, 0x07, 0x0a, 0x0a, 0x45, 0x54, + 0x48, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x12, 0x3d, 0x0a, 0x09, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x62, 0x61, + 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x40, 0x0a, 0x0a, 0x4e, 0x65, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, + 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x46, 0x0a, 0x0c, 0x4e, 0x65, 0x74, + 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, + 0x4e, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x36, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0f, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x0d, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3f, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x12, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x2e, 0x4c, 0x6f, 0x67, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x28, 0x01, + 0x30, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x12, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3d, 0x0a, 0x09, 0x54, 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, + 0x75, 0x70, 0x12, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x78, 0x6e, 0x4c, + 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3c, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x65, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x37, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50, 0x65, + 0x65, 0x72, 0x12, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x50, + 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x41, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x42, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x17, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x42, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x42, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, + 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x3b, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_remote_ethbackend_proto_rawDescOnce sync.Once + file_remote_ethbackend_proto_rawDescData = file_remote_ethbackend_proto_rawDesc +) + +func file_remote_ethbackend_proto_rawDescGZIP() []byte { + file_remote_ethbackend_proto_rawDescOnce.Do(func() { + file_remote_ethbackend_proto_rawDescData = protoimpl.X.CompressGZIP(file_remote_ethbackend_proto_rawDescData) + }) + return file_remote_ethbackend_proto_rawDescData +} + +var file_remote_ethbackend_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_remote_ethbackend_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_remote_ethbackend_proto_goTypes = []interface{}{ + (Event)(0), // 0: remote.Event + (*EtherbaseRequest)(nil), // 1: remote.EtherbaseRequest + (*EtherbaseReply)(nil), // 2: remote.EtherbaseReply + (*NetVersionRequest)(nil), // 3: remote.NetVersionRequest + (*NetVersionReply)(nil), // 4: remote.NetVersionReply + (*NetPeerCountRequest)(nil), // 5: remote.NetPeerCountRequest + (*NetPeerCountReply)(nil), // 6: remote.NetPeerCountReply + (*ProtocolVersionRequest)(nil), // 7: remote.ProtocolVersionRequest + (*ProtocolVersionReply)(nil), // 8: remote.ProtocolVersionReply + (*ClientVersionRequest)(nil), // 9: remote.ClientVersionRequest + (*ClientVersionReply)(nil), // 10: remote.ClientVersionReply + (*SubscribeRequest)(nil), // 11: remote.SubscribeRequest + (*SubscribeReply)(nil), // 12: remote.SubscribeReply + (*LogsFilterRequest)(nil), // 13: remote.LogsFilterRequest + (*SubscribeLogsReply)(nil), // 14: remote.SubscribeLogsReply + (*BlockRequest)(nil), // 15: remote.BlockRequest + (*BlockReply)(nil), // 16: remote.BlockReply + (*TxnLookupRequest)(nil), // 17: remote.TxnLookupRequest + (*TxnLookupReply)(nil), // 18: remote.TxnLookupReply + (*NodesInfoRequest)(nil), // 19: remote.NodesInfoRequest + (*AddPeerRequest)(nil), // 20: remote.AddPeerRequest + (*NodesInfoReply)(nil), // 21: remote.NodesInfoReply + (*PeersReply)(nil), // 22: remote.PeersReply + (*AddPeerReply)(nil), // 23: remote.AddPeerReply + (*PendingBlockReply)(nil), // 24: remote.PendingBlockReply + (*EngineGetPayloadBodiesByHashV1Request)(nil), // 25: remote.EngineGetPayloadBodiesByHashV1Request + (*EngineGetPayloadBodiesByRangeV1Request)(nil), // 26: remote.EngineGetPayloadBodiesByRangeV1Request + (*BorEventRequest)(nil), // 27: remote.BorEventRequest + (*BorEventReply)(nil), // 28: remote.BorEventReply + (*types.H160)(nil), // 29: types.H160 + (*types.H256)(nil), // 30: types.H256 + (*types.NodeInfoReply)(nil), // 31: types.NodeInfoReply + (*types.PeerInfo)(nil), // 32: types.PeerInfo + (*emptypb.Empty)(nil), // 33: google.protobuf.Empty + (*types.VersionReply)(nil), // 34: types.VersionReply +} +var file_remote_ethbackend_proto_depIdxs = []int32{ + 29, // 0: remote.EtherbaseReply.address:type_name -> types.H160 + 0, // 1: remote.SubscribeRequest.type:type_name -> remote.Event + 0, // 2: remote.SubscribeReply.type:type_name -> remote.Event + 29, // 3: remote.LogsFilterRequest.addresses:type_name -> types.H160 + 30, // 4: remote.LogsFilterRequest.topics:type_name -> types.H256 + 29, // 5: remote.SubscribeLogsReply.address:type_name -> types.H160 + 30, // 6: remote.SubscribeLogsReply.block_hash:type_name -> types.H256 + 30, // 7: remote.SubscribeLogsReply.topics:type_name -> types.H256 + 30, // 8: remote.SubscribeLogsReply.transaction_hash:type_name -> types.H256 + 30, // 9: remote.BlockRequest.block_hash:type_name -> types.H256 + 30, // 10: remote.TxnLookupRequest.txn_hash:type_name -> types.H256 + 31, // 11: remote.NodesInfoReply.nodes_info:type_name -> types.NodeInfoReply + 32, // 12: remote.PeersReply.peers:type_name -> types.PeerInfo + 30, // 13: remote.EngineGetPayloadBodiesByHashV1Request.hashes:type_name -> types.H256 + 30, // 14: remote.BorEventRequest.bor_tx_hash:type_name -> types.H256 + 1, // 15: remote.ETHBACKEND.Etherbase:input_type -> remote.EtherbaseRequest + 3, // 16: remote.ETHBACKEND.NetVersion:input_type -> remote.NetVersionRequest + 5, // 17: remote.ETHBACKEND.NetPeerCount:input_type -> remote.NetPeerCountRequest + 33, // 18: remote.ETHBACKEND.Version:input_type -> google.protobuf.Empty + 7, // 19: remote.ETHBACKEND.ProtocolVersion:input_type -> remote.ProtocolVersionRequest + 9, // 20: remote.ETHBACKEND.ClientVersion:input_type -> remote.ClientVersionRequest + 11, // 21: remote.ETHBACKEND.Subscribe:input_type -> remote.SubscribeRequest + 13, // 22: remote.ETHBACKEND.SubscribeLogs:input_type -> remote.LogsFilterRequest + 15, // 23: remote.ETHBACKEND.Block:input_type -> remote.BlockRequest + 17, // 24: remote.ETHBACKEND.TxnLookup:input_type -> remote.TxnLookupRequest + 19, // 25: remote.ETHBACKEND.NodeInfo:input_type -> remote.NodesInfoRequest + 33, // 26: remote.ETHBACKEND.Peers:input_type -> google.protobuf.Empty + 20, // 27: remote.ETHBACKEND.AddPeer:input_type -> remote.AddPeerRequest + 33, // 28: remote.ETHBACKEND.PendingBlock:input_type -> google.protobuf.Empty + 27, // 29: remote.ETHBACKEND.BorEvent:input_type -> remote.BorEventRequest + 2, // 30: remote.ETHBACKEND.Etherbase:output_type -> remote.EtherbaseReply + 4, // 31: remote.ETHBACKEND.NetVersion:output_type -> remote.NetVersionReply + 6, // 32: remote.ETHBACKEND.NetPeerCount:output_type -> remote.NetPeerCountReply + 34, // 33: remote.ETHBACKEND.Version:output_type -> types.VersionReply + 8, // 34: remote.ETHBACKEND.ProtocolVersion:output_type -> remote.ProtocolVersionReply + 10, // 35: remote.ETHBACKEND.ClientVersion:output_type -> remote.ClientVersionReply + 12, // 36: remote.ETHBACKEND.Subscribe:output_type -> remote.SubscribeReply + 14, // 37: remote.ETHBACKEND.SubscribeLogs:output_type -> remote.SubscribeLogsReply + 16, // 38: remote.ETHBACKEND.Block:output_type -> remote.BlockReply + 18, // 39: remote.ETHBACKEND.TxnLookup:output_type -> remote.TxnLookupReply + 21, // 40: remote.ETHBACKEND.NodeInfo:output_type -> remote.NodesInfoReply + 22, // 41: remote.ETHBACKEND.Peers:output_type -> remote.PeersReply + 23, // 42: remote.ETHBACKEND.AddPeer:output_type -> remote.AddPeerReply + 24, // 43: remote.ETHBACKEND.PendingBlock:output_type -> remote.PendingBlockReply + 28, // 44: remote.ETHBACKEND.BorEvent:output_type -> remote.BorEventReply + 30, // [30:45] is the sub-list for method output_type + 15, // [15:30] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name +} + +func init() { file_remote_ethbackend_proto_init() } +func file_remote_ethbackend_proto_init() { + if File_remote_ethbackend_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_remote_ethbackend_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtherbaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EtherbaseReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NetVersionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NetVersionReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NetPeerCountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NetPeerCountReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProtocolVersionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProtocolVersionReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientVersionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientVersionReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogsFilterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeLogsReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxnLookupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxnLookupReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodesInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddPeerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodesInfoReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeersReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddPeerReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PendingBlockReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EngineGetPayloadBodiesByHashV1Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EngineGetPayloadBodiesByRangeV1Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BorEventRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BorEventReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_remote_ethbackend_proto_rawDesc, + NumEnums: 1, + NumMessages: 28, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_remote_ethbackend_proto_goTypes, + DependencyIndexes: file_remote_ethbackend_proto_depIdxs, + EnumInfos: file_remote_ethbackend_proto_enumTypes, + MessageInfos: file_remote_ethbackend_proto_msgTypes, + }.Build() + File_remote_ethbackend_proto = out.File + file_remote_ethbackend_proto_rawDesc = nil + file_remote_ethbackend_proto_goTypes = nil + file_remote_ethbackend_proto_depIdxs = nil +} diff --git a/erigon-lib/gointerfaces/remote/ethbackend_grpc.pb.go b/erigon-lib/gointerfaces/remote/ethbackend_grpc.pb.go new file mode 100644 index 00000000000..4a410a32b86 --- /dev/null +++ b/erigon-lib/gointerfaces/remote/ethbackend_grpc.pb.go @@ -0,0 +1,713 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.2 +// source: remote/ethbackend.proto + +package remote + +import ( + context "context" + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + ETHBACKEND_Etherbase_FullMethodName = "/remote.ETHBACKEND/Etherbase" + ETHBACKEND_NetVersion_FullMethodName = "/remote.ETHBACKEND/NetVersion" + ETHBACKEND_NetPeerCount_FullMethodName = "/remote.ETHBACKEND/NetPeerCount" + ETHBACKEND_Version_FullMethodName = "/remote.ETHBACKEND/Version" + ETHBACKEND_ProtocolVersion_FullMethodName = "/remote.ETHBACKEND/ProtocolVersion" + ETHBACKEND_ClientVersion_FullMethodName = "/remote.ETHBACKEND/ClientVersion" + ETHBACKEND_Subscribe_FullMethodName = "/remote.ETHBACKEND/Subscribe" + ETHBACKEND_SubscribeLogs_FullMethodName = "/remote.ETHBACKEND/SubscribeLogs" + ETHBACKEND_Block_FullMethodName = "/remote.ETHBACKEND/Block" + ETHBACKEND_TxnLookup_FullMethodName = "/remote.ETHBACKEND/TxnLookup" + ETHBACKEND_NodeInfo_FullMethodName = "/remote.ETHBACKEND/NodeInfo" + ETHBACKEND_Peers_FullMethodName = "/remote.ETHBACKEND/Peers" + ETHBACKEND_AddPeer_FullMethodName = "/remote.ETHBACKEND/AddPeer" + ETHBACKEND_PendingBlock_FullMethodName = "/remote.ETHBACKEND/PendingBlock" + ETHBACKEND_BorEvent_FullMethodName = "/remote.ETHBACKEND/BorEvent" +) + +// ETHBACKENDClient is the client API for ETHBACKEND service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ETHBACKENDClient interface { + Etherbase(ctx context.Context, in *EtherbaseRequest, opts ...grpc.CallOption) (*EtherbaseReply, error) + NetVersion(ctx context.Context, in *NetVersionRequest, opts ...grpc.CallOption) (*NetVersionReply, error) + NetPeerCount(ctx context.Context, in *NetPeerCountRequest, opts ...grpc.CallOption) (*NetPeerCountReply, error) + // Version returns the service version number + Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) + // ProtocolVersion returns the Ethereum protocol version number (e.g. 66 for ETH66). + ProtocolVersion(ctx context.Context, in *ProtocolVersionRequest, opts ...grpc.CallOption) (*ProtocolVersionReply, error) + // ClientVersion returns the Ethereum client version string using node name convention (e.g. TurboGeth/v2021.03.2-alpha/Linux). + ClientVersion(ctx context.Context, in *ClientVersionRequest, opts ...grpc.CallOption) (*ClientVersionReply, error) + Subscribe(ctx context.Context, in *SubscribeRequest, opts ...grpc.CallOption) (ETHBACKEND_SubscribeClient, error) + // Only one subscription is needed to serve all the users, LogsFilterRequest allows to dynamically modifying the subscription + SubscribeLogs(ctx context.Context, opts ...grpc.CallOption) (ETHBACKEND_SubscribeLogsClient, error) + // High-level method - can read block from db, snapshots or apply any other logic + // it doesn't provide consistency + // Request fields are optional - it's ok to request block only by hash or only by number + Block(ctx context.Context, in *BlockRequest, opts ...grpc.CallOption) (*BlockReply, error) + // High-level method - can find block number by txn hash + // it doesn't provide consistency + TxnLookup(ctx context.Context, in *TxnLookupRequest, opts ...grpc.CallOption) (*TxnLookupReply, error) + // NodeInfo collects and returns NodeInfo from all running sentry instances. + NodeInfo(ctx context.Context, in *NodesInfoRequest, opts ...grpc.CallOption) (*NodesInfoReply, error) + // Peers collects and returns peers information from all running sentry instances. + Peers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PeersReply, error) + AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) + // PendingBlock returns latest built block. + PendingBlock(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PendingBlockReply, error) + BorEvent(ctx context.Context, in *BorEventRequest, opts ...grpc.CallOption) (*BorEventReply, error) +} + +type eTHBACKENDClient struct { + cc grpc.ClientConnInterface +} + +func NewETHBACKENDClient(cc grpc.ClientConnInterface) ETHBACKENDClient { + return &eTHBACKENDClient{cc} +} + +func (c *eTHBACKENDClient) Etherbase(ctx context.Context, in *EtherbaseRequest, opts ...grpc.CallOption) (*EtherbaseReply, error) { + out := new(EtherbaseReply) + err := c.cc.Invoke(ctx, ETHBACKEND_Etherbase_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) NetVersion(ctx context.Context, in *NetVersionRequest, opts ...grpc.CallOption) (*NetVersionReply, error) { + out := new(NetVersionReply) + err := c.cc.Invoke(ctx, ETHBACKEND_NetVersion_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) NetPeerCount(ctx context.Context, in *NetPeerCountRequest, opts ...grpc.CallOption) (*NetPeerCountReply, error) { + out := new(NetPeerCountReply) + err := c.cc.Invoke(ctx, ETHBACKEND_NetPeerCount_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) { + out := new(types.VersionReply) + err := c.cc.Invoke(ctx, ETHBACKEND_Version_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) ProtocolVersion(ctx context.Context, in *ProtocolVersionRequest, opts ...grpc.CallOption) (*ProtocolVersionReply, error) { + out := new(ProtocolVersionReply) + err := c.cc.Invoke(ctx, ETHBACKEND_ProtocolVersion_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) ClientVersion(ctx context.Context, in *ClientVersionRequest, opts ...grpc.CallOption) (*ClientVersionReply, error) { + out := new(ClientVersionReply) + err := c.cc.Invoke(ctx, ETHBACKEND_ClientVersion_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) Subscribe(ctx context.Context, in *SubscribeRequest, opts ...grpc.CallOption) (ETHBACKEND_SubscribeClient, error) { + stream, err := c.cc.NewStream(ctx, ÐBACKEND_ServiceDesc.Streams[0], ETHBACKEND_Subscribe_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &eTHBACKENDSubscribeClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type ETHBACKEND_SubscribeClient interface { + Recv() (*SubscribeReply, error) + grpc.ClientStream +} + +type eTHBACKENDSubscribeClient struct { + grpc.ClientStream +} + +func (x *eTHBACKENDSubscribeClient) Recv() (*SubscribeReply, error) { + m := new(SubscribeReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *eTHBACKENDClient) SubscribeLogs(ctx context.Context, opts ...grpc.CallOption) (ETHBACKEND_SubscribeLogsClient, error) { + stream, err := c.cc.NewStream(ctx, ÐBACKEND_ServiceDesc.Streams[1], ETHBACKEND_SubscribeLogs_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &eTHBACKENDSubscribeLogsClient{stream} + return x, nil +} + +type ETHBACKEND_SubscribeLogsClient interface { + Send(*LogsFilterRequest) error + Recv() (*SubscribeLogsReply, error) + grpc.ClientStream +} + +type eTHBACKENDSubscribeLogsClient struct { + grpc.ClientStream +} + +func (x *eTHBACKENDSubscribeLogsClient) Send(m *LogsFilterRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *eTHBACKENDSubscribeLogsClient) Recv() (*SubscribeLogsReply, error) { + m := new(SubscribeLogsReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *eTHBACKENDClient) Block(ctx context.Context, in *BlockRequest, opts ...grpc.CallOption) (*BlockReply, error) { + out := new(BlockReply) + err := c.cc.Invoke(ctx, ETHBACKEND_Block_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) TxnLookup(ctx context.Context, in *TxnLookupRequest, opts ...grpc.CallOption) (*TxnLookupReply, error) { + out := new(TxnLookupReply) + err := c.cc.Invoke(ctx, ETHBACKEND_TxnLookup_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) NodeInfo(ctx context.Context, in *NodesInfoRequest, opts ...grpc.CallOption) (*NodesInfoReply, error) { + out := new(NodesInfoReply) + err := c.cc.Invoke(ctx, ETHBACKEND_NodeInfo_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) Peers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PeersReply, error) { + out := new(PeersReply) + err := c.cc.Invoke(ctx, ETHBACKEND_Peers_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) { + out := new(AddPeerReply) + err := c.cc.Invoke(ctx, ETHBACKEND_AddPeer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) PendingBlock(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PendingBlockReply, error) { + out := new(PendingBlockReply) + err := c.cc.Invoke(ctx, ETHBACKEND_PendingBlock_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *eTHBACKENDClient) BorEvent(ctx context.Context, in *BorEventRequest, opts ...grpc.CallOption) (*BorEventReply, error) { + out := new(BorEventReply) + err := c.cc.Invoke(ctx, ETHBACKEND_BorEvent_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ETHBACKENDServer is the server API for ETHBACKEND service. +// All implementations must embed UnimplementedETHBACKENDServer +// for forward compatibility +type ETHBACKENDServer interface { + Etherbase(context.Context, *EtherbaseRequest) (*EtherbaseReply, error) + NetVersion(context.Context, *NetVersionRequest) (*NetVersionReply, error) + NetPeerCount(context.Context, *NetPeerCountRequest) (*NetPeerCountReply, error) + // Version returns the service version number + Version(context.Context, *emptypb.Empty) (*types.VersionReply, error) + // ProtocolVersion returns the Ethereum protocol version number (e.g. 66 for ETH66). + ProtocolVersion(context.Context, *ProtocolVersionRequest) (*ProtocolVersionReply, error) + // ClientVersion returns the Ethereum client version string using node name convention (e.g. TurboGeth/v2021.03.2-alpha/Linux). + ClientVersion(context.Context, *ClientVersionRequest) (*ClientVersionReply, error) + Subscribe(*SubscribeRequest, ETHBACKEND_SubscribeServer) error + // Only one subscription is needed to serve all the users, LogsFilterRequest allows to dynamically modifying the subscription + SubscribeLogs(ETHBACKEND_SubscribeLogsServer) error + // High-level method - can read block from db, snapshots or apply any other logic + // it doesn't provide consistency + // Request fields are optional - it's ok to request block only by hash or only by number + Block(context.Context, *BlockRequest) (*BlockReply, error) + // High-level method - can find block number by txn hash + // it doesn't provide consistency + TxnLookup(context.Context, *TxnLookupRequest) (*TxnLookupReply, error) + // NodeInfo collects and returns NodeInfo from all running sentry instances. + NodeInfo(context.Context, *NodesInfoRequest) (*NodesInfoReply, error) + // Peers collects and returns peers information from all running sentry instances. + Peers(context.Context, *emptypb.Empty) (*PeersReply, error) + AddPeer(context.Context, *AddPeerRequest) (*AddPeerReply, error) + // PendingBlock returns latest built block. + PendingBlock(context.Context, *emptypb.Empty) (*PendingBlockReply, error) + BorEvent(context.Context, *BorEventRequest) (*BorEventReply, error) + mustEmbedUnimplementedETHBACKENDServer() +} + +// UnimplementedETHBACKENDServer must be embedded to have forward compatible implementations. +type UnimplementedETHBACKENDServer struct { +} + +func (UnimplementedETHBACKENDServer) Etherbase(context.Context, *EtherbaseRequest) (*EtherbaseReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Etherbase not implemented") +} +func (UnimplementedETHBACKENDServer) NetVersion(context.Context, *NetVersionRequest) (*NetVersionReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method NetVersion not implemented") +} +func (UnimplementedETHBACKENDServer) NetPeerCount(context.Context, *NetPeerCountRequest) (*NetPeerCountReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method NetPeerCount not implemented") +} +func (UnimplementedETHBACKENDServer) Version(context.Context, *emptypb.Empty) (*types.VersionReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Version not implemented") +} +func (UnimplementedETHBACKENDServer) ProtocolVersion(context.Context, *ProtocolVersionRequest) (*ProtocolVersionReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method ProtocolVersion not implemented") +} +func (UnimplementedETHBACKENDServer) ClientVersion(context.Context, *ClientVersionRequest) (*ClientVersionReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method ClientVersion not implemented") +} +func (UnimplementedETHBACKENDServer) Subscribe(*SubscribeRequest, ETHBACKEND_SubscribeServer) error { + return status.Errorf(codes.Unimplemented, "method Subscribe not implemented") +} +func (UnimplementedETHBACKENDServer) SubscribeLogs(ETHBACKEND_SubscribeLogsServer) error { + return status.Errorf(codes.Unimplemented, "method SubscribeLogs not implemented") +} +func (UnimplementedETHBACKENDServer) Block(context.Context, *BlockRequest) (*BlockReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Block not implemented") +} +func (UnimplementedETHBACKENDServer) TxnLookup(context.Context, *TxnLookupRequest) (*TxnLookupReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method TxnLookup not implemented") +} +func (UnimplementedETHBACKENDServer) NodeInfo(context.Context, *NodesInfoRequest) (*NodesInfoReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeInfo not implemented") +} +func (UnimplementedETHBACKENDServer) Peers(context.Context, *emptypb.Empty) (*PeersReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Peers not implemented") +} +func (UnimplementedETHBACKENDServer) AddPeer(context.Context, *AddPeerRequest) (*AddPeerReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddPeer not implemented") +} +func (UnimplementedETHBACKENDServer) PendingBlock(context.Context, *emptypb.Empty) (*PendingBlockReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method PendingBlock not implemented") +} +func (UnimplementedETHBACKENDServer) BorEvent(context.Context, *BorEventRequest) (*BorEventReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method BorEvent not implemented") +} +func (UnimplementedETHBACKENDServer) mustEmbedUnimplementedETHBACKENDServer() {} + +// UnsafeETHBACKENDServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ETHBACKENDServer will +// result in compilation errors. +type UnsafeETHBACKENDServer interface { + mustEmbedUnimplementedETHBACKENDServer() +} + +func RegisterETHBACKENDServer(s grpc.ServiceRegistrar, srv ETHBACKENDServer) { + s.RegisterService(ÐBACKEND_ServiceDesc, srv) +} + +func _ETHBACKEND_Etherbase_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EtherbaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).Etherbase(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_Etherbase_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).Etherbase(ctx, req.(*EtherbaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_NetVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NetVersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).NetVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_NetVersion_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).NetVersion(ctx, req.(*NetVersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_NetPeerCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NetPeerCountRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).NetPeerCount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_NetPeerCount_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).NetPeerCount(ctx, req.(*NetPeerCountRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).Version(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_Version_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).Version(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_ProtocolVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ProtocolVersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).ProtocolVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_ProtocolVersion_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).ProtocolVersion(ctx, req.(*ProtocolVersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_ClientVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ClientVersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).ClientVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_ClientVersion_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).ClientVersion(ctx, req.(*ClientVersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_Subscribe_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(SubscribeRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(ETHBACKENDServer).Subscribe(m, &eTHBACKENDSubscribeServer{stream}) +} + +type ETHBACKEND_SubscribeServer interface { + Send(*SubscribeReply) error + grpc.ServerStream +} + +type eTHBACKENDSubscribeServer struct { + grpc.ServerStream +} + +func (x *eTHBACKENDSubscribeServer) Send(m *SubscribeReply) error { + return x.ServerStream.SendMsg(m) +} + +func _ETHBACKEND_SubscribeLogs_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(ETHBACKENDServer).SubscribeLogs(&eTHBACKENDSubscribeLogsServer{stream}) +} + +type ETHBACKEND_SubscribeLogsServer interface { + Send(*SubscribeLogsReply) error + Recv() (*LogsFilterRequest, error) + grpc.ServerStream +} + +type eTHBACKENDSubscribeLogsServer struct { + grpc.ServerStream +} + +func (x *eTHBACKENDSubscribeLogsServer) Send(m *SubscribeLogsReply) error { + return x.ServerStream.SendMsg(m) +} + +func (x *eTHBACKENDSubscribeLogsServer) Recv() (*LogsFilterRequest, error) { + m := new(LogsFilterRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _ETHBACKEND_Block_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BlockRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).Block(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_Block_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).Block(ctx, req.(*BlockRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_TxnLookup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TxnLookupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).TxnLookup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_TxnLookup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).TxnLookup(ctx, req.(*TxnLookupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_NodeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodesInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).NodeInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_NodeInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).NodeInfo(ctx, req.(*NodesInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_Peers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).Peers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_Peers_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).Peers(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_AddPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddPeerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).AddPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_AddPeer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).AddPeer(ctx, req.(*AddPeerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_PendingBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).PendingBlock(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_PendingBlock_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).PendingBlock(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _ETHBACKEND_BorEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BorEventRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).BorEvent(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_BorEvent_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).BorEvent(ctx, req.(*BorEventRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// ETHBACKEND_ServiceDesc is the grpc.ServiceDesc for ETHBACKEND service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ETHBACKEND_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "remote.ETHBACKEND", + HandlerType: (*ETHBACKENDServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Etherbase", + Handler: _ETHBACKEND_Etherbase_Handler, + }, + { + MethodName: "NetVersion", + Handler: _ETHBACKEND_NetVersion_Handler, + }, + { + MethodName: "NetPeerCount", + Handler: _ETHBACKEND_NetPeerCount_Handler, + }, + { + MethodName: "Version", + Handler: _ETHBACKEND_Version_Handler, + }, + { + MethodName: "ProtocolVersion", + Handler: _ETHBACKEND_ProtocolVersion_Handler, + }, + { + MethodName: "ClientVersion", + Handler: _ETHBACKEND_ClientVersion_Handler, + }, + { + MethodName: "Block", + Handler: _ETHBACKEND_Block_Handler, + }, + { + MethodName: "TxnLookup", + Handler: _ETHBACKEND_TxnLookup_Handler, + }, + { + MethodName: "NodeInfo", + Handler: _ETHBACKEND_NodeInfo_Handler, + }, + { + MethodName: "Peers", + Handler: _ETHBACKEND_Peers_Handler, + }, + { + MethodName: "AddPeer", + Handler: _ETHBACKEND_AddPeer_Handler, + }, + { + MethodName: "PendingBlock", + Handler: _ETHBACKEND_PendingBlock_Handler, + }, + { + MethodName: "BorEvent", + Handler: _ETHBACKEND_BorEvent_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Subscribe", + Handler: _ETHBACKEND_Subscribe_Handler, + ServerStreams: true, + }, + { + StreamName: "SubscribeLogs", + Handler: _ETHBACKEND_SubscribeLogs_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "remote/ethbackend.proto", +} diff --git a/erigon-lib/gointerfaces/remote/kv.pb.go b/erigon-lib/gointerfaces/remote/kv.pb.go new file mode 100644 index 00000000000..a7f659b68a7 --- /dev/null +++ b/erigon-lib/gointerfaces/remote/kv.pb.go @@ -0,0 +1,2392 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: remote/kv.proto + +package remote + +import ( + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Op int32 + +const ( + Op_FIRST Op = 0 + Op_FIRST_DUP Op = 1 + Op_SEEK Op = 2 + Op_SEEK_BOTH Op = 3 + Op_CURRENT Op = 4 + Op_LAST Op = 6 + Op_LAST_DUP Op = 7 + Op_NEXT Op = 8 + Op_NEXT_DUP Op = 9 + Op_NEXT_NO_DUP Op = 11 + Op_PREV Op = 12 + Op_PREV_DUP Op = 13 + Op_PREV_NO_DUP Op = 14 + Op_SEEK_EXACT Op = 15 + Op_SEEK_BOTH_EXACT Op = 16 + Op_OPEN Op = 30 + Op_CLOSE Op = 31 + Op_OPEN_DUP_SORT Op = 32 + Op_COUNT Op = 33 +) + +// Enum value maps for Op. +var ( + Op_name = map[int32]string{ + 0: "FIRST", + 1: "FIRST_DUP", + 2: "SEEK", + 3: "SEEK_BOTH", + 4: "CURRENT", + 6: "LAST", + 7: "LAST_DUP", + 8: "NEXT", + 9: "NEXT_DUP", + 11: "NEXT_NO_DUP", + 12: "PREV", + 13: "PREV_DUP", + 14: "PREV_NO_DUP", + 15: "SEEK_EXACT", + 16: "SEEK_BOTH_EXACT", + 30: "OPEN", + 31: "CLOSE", + 32: "OPEN_DUP_SORT", + 33: "COUNT", + } + Op_value = map[string]int32{ + "FIRST": 0, + "FIRST_DUP": 1, + "SEEK": 2, + "SEEK_BOTH": 3, + "CURRENT": 4, + "LAST": 6, + "LAST_DUP": 7, + "NEXT": 8, + "NEXT_DUP": 9, + "NEXT_NO_DUP": 11, + "PREV": 12, + "PREV_DUP": 13, + "PREV_NO_DUP": 14, + "SEEK_EXACT": 15, + "SEEK_BOTH_EXACT": 16, + "OPEN": 30, + "CLOSE": 31, + "OPEN_DUP_SORT": 32, + "COUNT": 33, + } +) + +func (x Op) Enum() *Op { + p := new(Op) + *p = x + return p +} + +func (x Op) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Op) Descriptor() protoreflect.EnumDescriptor { + return file_remote_kv_proto_enumTypes[0].Descriptor() +} + +func (Op) Type() protoreflect.EnumType { + return &file_remote_kv_proto_enumTypes[0] +} + +func (x Op) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Op.Descriptor instead. +func (Op) EnumDescriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{0} +} + +type Action int32 + +const ( + Action_STORAGE Action = 0 // Change only in the storage + Action_UPSERT Action = 1 // Change of balance or nonce (and optionally storage) + Action_CODE Action = 2 // Change of code (and optionally storage) + Action_UPSERT_CODE Action = 3 // Change in (balance or nonce) and code (and optionally storage) + Action_REMOVE Action = 4 // Account is deleted +) + +// Enum value maps for Action. +var ( + Action_name = map[int32]string{ + 0: "STORAGE", + 1: "UPSERT", + 2: "CODE", + 3: "UPSERT_CODE", + 4: "REMOVE", + } + Action_value = map[string]int32{ + "STORAGE": 0, + "UPSERT": 1, + "CODE": 2, + "UPSERT_CODE": 3, + "REMOVE": 4, + } +) + +func (x Action) Enum() *Action { + p := new(Action) + *p = x + return p +} + +func (x Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Action) Descriptor() protoreflect.EnumDescriptor { + return file_remote_kv_proto_enumTypes[1].Descriptor() +} + +func (Action) Type() protoreflect.EnumType { + return &file_remote_kv_proto_enumTypes[1] +} + +func (x Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Action.Descriptor instead. +func (Action) EnumDescriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{1} +} + +type Direction int32 + +const ( + Direction_FORWARD Direction = 0 + Direction_UNWIND Direction = 1 +) + +// Enum value maps for Direction. +var ( + Direction_name = map[int32]string{ + 0: "FORWARD", + 1: "UNWIND", + } + Direction_value = map[string]int32{ + "FORWARD": 0, + "UNWIND": 1, + } +) + +func (x Direction) Enum() *Direction { + p := new(Direction) + *p = x + return p +} + +func (x Direction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Direction) Descriptor() protoreflect.EnumDescriptor { + return file_remote_kv_proto_enumTypes[2].Descriptor() +} + +func (Direction) Type() protoreflect.EnumType { + return &file_remote_kv_proto_enumTypes[2] +} + +func (x Direction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Direction.Descriptor instead. +func (Direction) EnumDescriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{2} +} + +type Cursor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Op Op `protobuf:"varint,1,opt,name=op,proto3,enum=remote.Op" json:"op,omitempty"` + BucketName string `protobuf:"bytes,2,opt,name=bucket_name,json=bucketName,proto3" json:"bucket_name,omitempty"` + Cursor uint32 `protobuf:"varint,3,opt,name=cursor,proto3" json:"cursor,omitempty"` + K []byte `protobuf:"bytes,4,opt,name=k,proto3" json:"k,omitempty"` + V []byte `protobuf:"bytes,5,opt,name=v,proto3" json:"v,omitempty"` +} + +func (x *Cursor) Reset() { + *x = Cursor{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Cursor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Cursor) ProtoMessage() {} + +func (x *Cursor) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Cursor.ProtoReflect.Descriptor instead. +func (*Cursor) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{0} +} + +func (x *Cursor) GetOp() Op { + if x != nil { + return x.Op + } + return Op_FIRST +} + +func (x *Cursor) GetBucketName() string { + if x != nil { + return x.BucketName + } + return "" +} + +func (x *Cursor) GetCursor() uint32 { + if x != nil { + return x.Cursor + } + return 0 +} + +func (x *Cursor) GetK() []byte { + if x != nil { + return x.K + } + return nil +} + +func (x *Cursor) GetV() []byte { + if x != nil { + return x.V + } + return nil +} + +type Pair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + K []byte `protobuf:"bytes,1,opt,name=k,proto3" json:"k,omitempty"` + V []byte `protobuf:"bytes,2,opt,name=v,proto3" json:"v,omitempty"` + CursorId uint32 `protobuf:"varint,3,opt,name=cursor_id,json=cursorId,proto3" json:"cursor_id,omitempty"` // send once after new cursor open + ViewId uint64 `protobuf:"varint,4,opt,name=view_id,json=viewId,proto3" json:"view_id,omitempty"` // return once after tx open. mdbx's tx.ViewID() - id of write transaction in db + TxId uint64 `protobuf:"varint,5,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // return once after tx open. internal identifier - use it in other methods - to achieve consistent DB view (to read data from same DB tx on server). +} + +func (x *Pair) Reset() { + *x = Pair{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Pair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Pair) ProtoMessage() {} + +func (x *Pair) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Pair.ProtoReflect.Descriptor instead. +func (*Pair) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{1} +} + +func (x *Pair) GetK() []byte { + if x != nil { + return x.K + } + return nil +} + +func (x *Pair) GetV() []byte { + if x != nil { + return x.V + } + return nil +} + +func (x *Pair) GetCursorId() uint32 { + if x != nil { + return x.CursorId + } + return 0 +} + +func (x *Pair) GetViewId() uint64 { + if x != nil { + return x.ViewId + } + return 0 +} + +func (x *Pair) GetTxId() uint64 { + if x != nil { + return x.TxId + } + return 0 +} + +type StorageChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Location *types.H256 `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *StorageChange) Reset() { + *x = StorageChange{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StorageChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StorageChange) ProtoMessage() {} + +func (x *StorageChange) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StorageChange.ProtoReflect.Descriptor instead. +func (*StorageChange) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{2} +} + +func (x *StorageChange) GetLocation() *types.H256 { + if x != nil { + return x.Location + } + return nil +} + +func (x *StorageChange) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type AccountChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *types.H160 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Incarnation uint64 `protobuf:"varint,2,opt,name=incarnation,proto3" json:"incarnation,omitempty"` + Action Action `protobuf:"varint,3,opt,name=action,proto3,enum=remote.Action" json:"action,omitempty"` + Data []byte `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` // nil if there is no UPSERT in action + Code []byte `protobuf:"bytes,5,opt,name=code,proto3" json:"code,omitempty"` // nil if there is no CODE in action + StorageChanges []*StorageChange `protobuf:"bytes,6,rep,name=storage_changes,json=storageChanges,proto3" json:"storage_changes,omitempty"` +} + +func (x *AccountChange) Reset() { + *x = AccountChange{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountChange) ProtoMessage() {} + +func (x *AccountChange) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AccountChange.ProtoReflect.Descriptor instead. +func (*AccountChange) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{3} +} + +func (x *AccountChange) GetAddress() *types.H160 { + if x != nil { + return x.Address + } + return nil +} + +func (x *AccountChange) GetIncarnation() uint64 { + if x != nil { + return x.Incarnation + } + return 0 +} + +func (x *AccountChange) GetAction() Action { + if x != nil { + return x.Action + } + return Action_STORAGE +} + +func (x *AccountChange) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *AccountChange) GetCode() []byte { + if x != nil { + return x.Code + } + return nil +} + +func (x *AccountChange) GetStorageChanges() []*StorageChange { + if x != nil { + return x.StorageChanges + } + return nil +} + +// StateChangeBatch - list of StateDiff done in one DB transaction +type StateChangeBatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StateVersionId uint64 `protobuf:"varint,1,opt,name=state_version_id,json=stateVersionId,proto3" json:"state_version_id,omitempty"` // mdbx's tx.ID() - id of write transaction in db - where this changes happened + ChangeBatch []*StateChange `protobuf:"bytes,2,rep,name=change_batch,json=changeBatch,proto3" json:"change_batch,omitempty"` + PendingBlockBaseFee uint64 `protobuf:"varint,3,opt,name=pending_block_base_fee,json=pendingBlockBaseFee,proto3" json:"pending_block_base_fee,omitempty"` // BaseFee of the next block to be produced + BlockGasLimit uint64 `protobuf:"varint,4,opt,name=block_gas_limit,json=blockGasLimit,proto3" json:"block_gas_limit,omitempty"` // GasLimit of the latest block - proxy for the gas limit of the next block to be produced + FinalizedBlock uint64 `protobuf:"varint,5,opt,name=finalized_block,json=finalizedBlock,proto3" json:"finalized_block,omitempty"` + PendingBlobFeePerGas uint64 `protobuf:"varint,6,opt,name=pending_blob_fee_per_gas,json=pendingBlobFeePerGas,proto3" json:"pending_blob_fee_per_gas,omitempty"` // Base Blob Fee for the next block to be produced +} + +func (x *StateChangeBatch) Reset() { + *x = StateChangeBatch{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StateChangeBatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateChangeBatch) ProtoMessage() {} + +func (x *StateChangeBatch) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StateChangeBatch.ProtoReflect.Descriptor instead. +func (*StateChangeBatch) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{4} +} + +func (x *StateChangeBatch) GetStateVersionId() uint64 { + if x != nil { + return x.StateVersionId + } + return 0 +} + +func (x *StateChangeBatch) GetChangeBatch() []*StateChange { + if x != nil { + return x.ChangeBatch + } + return nil +} + +func (x *StateChangeBatch) GetPendingBlockBaseFee() uint64 { + if x != nil { + return x.PendingBlockBaseFee + } + return 0 +} + +func (x *StateChangeBatch) GetBlockGasLimit() uint64 { + if x != nil { + return x.BlockGasLimit + } + return 0 +} + +func (x *StateChangeBatch) GetFinalizedBlock() uint64 { + if x != nil { + return x.FinalizedBlock + } + return 0 +} + +func (x *StateChangeBatch) GetPendingBlobFeePerGas() uint64 { + if x != nil { + return x.PendingBlobFeePerGas + } + return 0 +} + +// StateChange - changes done by 1 block or by 1 unwind +type StateChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Direction Direction `protobuf:"varint,1,opt,name=direction,proto3,enum=remote.Direction" json:"direction,omitempty"` + BlockHeight uint64 `protobuf:"varint,2,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` + BlockHash *types.H256 `protobuf:"bytes,3,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` + Changes []*AccountChange `protobuf:"bytes,4,rep,name=changes,proto3" json:"changes,omitempty"` + Txs [][]byte `protobuf:"bytes,5,rep,name=txs,proto3" json:"txs,omitempty"` // enable by withTransactions=true +} + +func (x *StateChange) Reset() { + *x = StateChange{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StateChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateChange) ProtoMessage() {} + +func (x *StateChange) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StateChange.ProtoReflect.Descriptor instead. +func (*StateChange) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{5} +} + +func (x *StateChange) GetDirection() Direction { + if x != nil { + return x.Direction + } + return Direction_FORWARD +} + +func (x *StateChange) GetBlockHeight() uint64 { + if x != nil { + return x.BlockHeight + } + return 0 +} + +func (x *StateChange) GetBlockHash() *types.H256 { + if x != nil { + return x.BlockHash + } + return nil +} + +func (x *StateChange) GetChanges() []*AccountChange { + if x != nil { + return x.Changes + } + return nil +} + +func (x *StateChange) GetTxs() [][]byte { + if x != nil { + return x.Txs + } + return nil +} + +type StateChangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + WithStorage bool `protobuf:"varint,1,opt,name=with_storage,json=withStorage,proto3" json:"with_storage,omitempty"` + WithTransactions bool `protobuf:"varint,2,opt,name=with_transactions,json=withTransactions,proto3" json:"with_transactions,omitempty"` +} + +func (x *StateChangeRequest) Reset() { + *x = StateChangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StateChangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateChangeRequest) ProtoMessage() {} + +func (x *StateChangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StateChangeRequest.ProtoReflect.Descriptor instead. +func (*StateChangeRequest) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{6} +} + +func (x *StateChangeRequest) GetWithStorage() bool { + if x != nil { + return x.WithStorage + } + return false +} + +func (x *StateChangeRequest) GetWithTransactions() bool { + if x != nil { + return x.WithTransactions + } + return false +} + +type SnapshotsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SnapshotsRequest) Reset() { + *x = SnapshotsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SnapshotsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SnapshotsRequest) ProtoMessage() {} + +func (x *SnapshotsRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SnapshotsRequest.ProtoReflect.Descriptor instead. +func (*SnapshotsRequest) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{7} +} + +type SnapshotsReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlocksFiles []string `protobuf:"bytes,1,rep,name=blocks_files,json=blocksFiles,proto3" json:"blocks_files,omitempty"` + HistoryFiles []string `protobuf:"bytes,2,rep,name=history_files,json=historyFiles,proto3" json:"history_files,omitempty"` +} + +func (x *SnapshotsReply) Reset() { + *x = SnapshotsReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SnapshotsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SnapshotsReply) ProtoMessage() {} + +func (x *SnapshotsReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SnapshotsReply.ProtoReflect.Descriptor instead. +func (*SnapshotsReply) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{8} +} + +func (x *SnapshotsReply) GetBlocksFiles() []string { + if x != nil { + return x.BlocksFiles + } + return nil +} + +func (x *SnapshotsReply) GetHistoryFiles() []string { + if x != nil { + return x.HistoryFiles + } + return nil +} + +type RangeReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TxId uint64 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx() + // query params + Table string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"` + FromPrefix []byte `protobuf:"bytes,3,opt,name=from_prefix,json=fromPrefix,proto3" json:"from_prefix,omitempty"` + ToPrefix []byte `protobuf:"bytes,4,opt,name=to_prefix,json=toPrefix,proto3" json:"to_prefix,omitempty"` + OrderAscend bool `protobuf:"varint,5,opt,name=order_ascend,json=orderAscend,proto3" json:"order_ascend,omitempty"` + Limit int64 `protobuf:"zigzag64,6,opt,name=limit,proto3" json:"limit,omitempty"` // <= 0 means no limit + // pagination params + PageSize int32 `protobuf:"varint,7,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // <= 0 means server will choose + PageToken string `protobuf:"bytes,8,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *RangeReq) Reset() { + *x = RangeReq{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RangeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RangeReq) ProtoMessage() {} + +func (x *RangeReq) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RangeReq.ProtoReflect.Descriptor instead. +func (*RangeReq) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{9} +} + +func (x *RangeReq) GetTxId() uint64 { + if x != nil { + return x.TxId + } + return 0 +} + +func (x *RangeReq) GetTable() string { + if x != nil { + return x.Table + } + return "" +} + +func (x *RangeReq) GetFromPrefix() []byte { + if x != nil { + return x.FromPrefix + } + return nil +} + +func (x *RangeReq) GetToPrefix() []byte { + if x != nil { + return x.ToPrefix + } + return nil +} + +func (x *RangeReq) GetOrderAscend() bool { + if x != nil { + return x.OrderAscend + } + return false +} + +func (x *RangeReq) GetLimit() int64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *RangeReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *RangeReq) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Temporal methods +type DomainGetReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TxId uint64 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx() + // query params + Table string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"` + K []byte `protobuf:"bytes,3,opt,name=k,proto3" json:"k,omitempty"` + Ts uint64 `protobuf:"varint,4,opt,name=ts,proto3" json:"ts,omitempty"` + K2 []byte `protobuf:"bytes,5,opt,name=k2,proto3" json:"k2,omitempty"` + Latest bool `protobuf:"varint,6,opt,name=latest,proto3" json:"latest,omitempty"` // if true, then `ts` ignored and return latest state (without history lookup) +} + +func (x *DomainGetReq) Reset() { + *x = DomainGetReq{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DomainGetReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DomainGetReq) ProtoMessage() {} + +func (x *DomainGetReq) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DomainGetReq.ProtoReflect.Descriptor instead. +func (*DomainGetReq) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{10} +} + +func (x *DomainGetReq) GetTxId() uint64 { + if x != nil { + return x.TxId + } + return 0 +} + +func (x *DomainGetReq) GetTable() string { + if x != nil { + return x.Table + } + return "" +} + +func (x *DomainGetReq) GetK() []byte { + if x != nil { + return x.K + } + return nil +} + +func (x *DomainGetReq) GetTs() uint64 { + if x != nil { + return x.Ts + } + return 0 +} + +func (x *DomainGetReq) GetK2() []byte { + if x != nil { + return x.K2 + } + return nil +} + +func (x *DomainGetReq) GetLatest() bool { + if x != nil { + return x.Latest + } + return false +} + +type DomainGetReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + V []byte `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + Ok bool `protobuf:"varint,2,opt,name=ok,proto3" json:"ok,omitempty"` +} + +func (x *DomainGetReply) Reset() { + *x = DomainGetReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DomainGetReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DomainGetReply) ProtoMessage() {} + +func (x *DomainGetReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DomainGetReply.ProtoReflect.Descriptor instead. +func (*DomainGetReply) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{11} +} + +func (x *DomainGetReply) GetV() []byte { + if x != nil { + return x.V + } + return nil +} + +func (x *DomainGetReply) GetOk() bool { + if x != nil { + return x.Ok + } + return false +} + +type HistoryGetReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TxId uint64 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx() + Table string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"` + K []byte `protobuf:"bytes,3,opt,name=k,proto3" json:"k,omitempty"` + Ts uint64 `protobuf:"varint,4,opt,name=ts,proto3" json:"ts,omitempty"` +} + +func (x *HistoryGetReq) Reset() { + *x = HistoryGetReq{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoryGetReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryGetReq) ProtoMessage() {} + +func (x *HistoryGetReq) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistoryGetReq.ProtoReflect.Descriptor instead. +func (*HistoryGetReq) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{12} +} + +func (x *HistoryGetReq) GetTxId() uint64 { + if x != nil { + return x.TxId + } + return 0 +} + +func (x *HistoryGetReq) GetTable() string { + if x != nil { + return x.Table + } + return "" +} + +func (x *HistoryGetReq) GetK() []byte { + if x != nil { + return x.K + } + return nil +} + +func (x *HistoryGetReq) GetTs() uint64 { + if x != nil { + return x.Ts + } + return 0 +} + +type HistoryGetReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + V []byte `protobuf:"bytes,1,opt,name=v,proto3" json:"v,omitempty"` + Ok bool `protobuf:"varint,2,opt,name=ok,proto3" json:"ok,omitempty"` +} + +func (x *HistoryGetReply) Reset() { + *x = HistoryGetReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoryGetReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryGetReply) ProtoMessage() {} + +func (x *HistoryGetReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistoryGetReply.ProtoReflect.Descriptor instead. +func (*HistoryGetReply) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{13} +} + +func (x *HistoryGetReply) GetV() []byte { + if x != nil { + return x.V + } + return nil +} + +func (x *HistoryGetReply) GetOk() bool { + if x != nil { + return x.Ok + } + return false +} + +type IndexRangeReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TxId uint64 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx() + // query params + Table string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"` + K []byte `protobuf:"bytes,3,opt,name=k,proto3" json:"k,omitempty"` + FromTs int64 `protobuf:"zigzag64,4,opt,name=from_ts,json=fromTs,proto3" json:"from_ts,omitempty"` // -1 means Inf + ToTs int64 `protobuf:"zigzag64,5,opt,name=to_ts,json=toTs,proto3" json:"to_ts,omitempty"` // -1 means Inf + OrderAscend bool `protobuf:"varint,6,opt,name=order_ascend,json=orderAscend,proto3" json:"order_ascend,omitempty"` + Limit int64 `protobuf:"zigzag64,7,opt,name=limit,proto3" json:"limit,omitempty"` // <= 0 means no limit + // pagination params + PageSize int32 `protobuf:"varint,8,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // <= 0 means server will choose + PageToken string `protobuf:"bytes,9,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *IndexRangeReq) Reset() { + *x = IndexRangeReq{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexRangeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexRangeReq) ProtoMessage() {} + +func (x *IndexRangeReq) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IndexRangeReq.ProtoReflect.Descriptor instead. +func (*IndexRangeReq) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{14} +} + +func (x *IndexRangeReq) GetTxId() uint64 { + if x != nil { + return x.TxId + } + return 0 +} + +func (x *IndexRangeReq) GetTable() string { + if x != nil { + return x.Table + } + return "" +} + +func (x *IndexRangeReq) GetK() []byte { + if x != nil { + return x.K + } + return nil +} + +func (x *IndexRangeReq) GetFromTs() int64 { + if x != nil { + return x.FromTs + } + return 0 +} + +func (x *IndexRangeReq) GetToTs() int64 { + if x != nil { + return x.ToTs + } + return 0 +} + +func (x *IndexRangeReq) GetOrderAscend() bool { + if x != nil { + return x.OrderAscend + } + return false +} + +func (x *IndexRangeReq) GetLimit() int64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *IndexRangeReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *IndexRangeReq) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +type IndexRangeReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Timestamps []uint64 `protobuf:"varint,1,rep,packed,name=timestamps,proto3" json:"timestamps,omitempty"` //TODO: it can be a bitmap + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *IndexRangeReply) Reset() { + *x = IndexRangeReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexRangeReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexRangeReply) ProtoMessage() {} + +func (x *IndexRangeReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IndexRangeReply.ProtoReflect.Descriptor instead. +func (*IndexRangeReply) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{15} +} + +func (x *IndexRangeReply) GetTimestamps() []uint64 { + if x != nil { + return x.Timestamps + } + return nil +} + +func (x *IndexRangeReply) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type HistoryRangeReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TxId uint64 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx() + // query params + Table string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"` + FromTs int64 `protobuf:"zigzag64,4,opt,name=from_ts,json=fromTs,proto3" json:"from_ts,omitempty"` // -1 means Inf + ToTs int64 `protobuf:"zigzag64,5,opt,name=to_ts,json=toTs,proto3" json:"to_ts,omitempty"` // -1 means Inf + OrderAscend bool `protobuf:"varint,6,opt,name=order_ascend,json=orderAscend,proto3" json:"order_ascend,omitempty"` + Limit int64 `protobuf:"zigzag64,7,opt,name=limit,proto3" json:"limit,omitempty"` // <= 0 means no limit + // pagination params + PageSize int32 `protobuf:"varint,8,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // <= 0 means server will choose + PageToken string `protobuf:"bytes,9,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *HistoryRangeReq) Reset() { + *x = HistoryRangeReq{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoryRangeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryRangeReq) ProtoMessage() {} + +func (x *HistoryRangeReq) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistoryRangeReq.ProtoReflect.Descriptor instead. +func (*HistoryRangeReq) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{16} +} + +func (x *HistoryRangeReq) GetTxId() uint64 { + if x != nil { + return x.TxId + } + return 0 +} + +func (x *HistoryRangeReq) GetTable() string { + if x != nil { + return x.Table + } + return "" +} + +func (x *HistoryRangeReq) GetFromTs() int64 { + if x != nil { + return x.FromTs + } + return 0 +} + +func (x *HistoryRangeReq) GetToTs() int64 { + if x != nil { + return x.ToTs + } + return 0 +} + +func (x *HistoryRangeReq) GetOrderAscend() bool { + if x != nil { + return x.OrderAscend + } + return false +} + +func (x *HistoryRangeReq) GetLimit() int64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *HistoryRangeReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *HistoryRangeReq) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +type DomainRangeReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TxId uint64 `protobuf:"varint,1,opt,name=tx_id,json=txId,proto3" json:"tx_id,omitempty"` // returned by .Tx() + // query params + Table string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"` + FromKey []byte `protobuf:"bytes,3,opt,name=from_key,json=fromKey,proto3" json:"from_key,omitempty"` // nil means Inf + ToKey []byte `protobuf:"bytes,4,opt,name=to_key,json=toKey,proto3" json:"to_key,omitempty"` // nil means Inf + Ts uint64 `protobuf:"varint,5,opt,name=ts,proto3" json:"ts,omitempty"` + Latest bool `protobuf:"varint,6,opt,name=latest,proto3" json:"latest,omitempty"` // if true, then `ts` ignored and return latest state (without history lookup) + OrderAscend bool `protobuf:"varint,7,opt,name=order_ascend,json=orderAscend,proto3" json:"order_ascend,omitempty"` + Limit int64 `protobuf:"zigzag64,8,opt,name=limit,proto3" json:"limit,omitempty"` // <= 0 means no limit + // pagination params + PageSize int32 `protobuf:"varint,9,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // <= 0 means server will choose + PageToken string `protobuf:"bytes,10,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *DomainRangeReq) Reset() { + *x = DomainRangeReq{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DomainRangeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DomainRangeReq) ProtoMessage() {} + +func (x *DomainRangeReq) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DomainRangeReq.ProtoReflect.Descriptor instead. +func (*DomainRangeReq) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{17} +} + +func (x *DomainRangeReq) GetTxId() uint64 { + if x != nil { + return x.TxId + } + return 0 +} + +func (x *DomainRangeReq) GetTable() string { + if x != nil { + return x.Table + } + return "" +} + +func (x *DomainRangeReq) GetFromKey() []byte { + if x != nil { + return x.FromKey + } + return nil +} + +func (x *DomainRangeReq) GetToKey() []byte { + if x != nil { + return x.ToKey + } + return nil +} + +func (x *DomainRangeReq) GetTs() uint64 { + if x != nil { + return x.Ts + } + return 0 +} + +func (x *DomainRangeReq) GetLatest() bool { + if x != nil { + return x.Latest + } + return false +} + +func (x *DomainRangeReq) GetOrderAscend() bool { + if x != nil { + return x.OrderAscend + } + return false +} + +func (x *DomainRangeReq) GetLimit() int64 { + if x != nil { + return x.Limit + } + return 0 +} + +func (x *DomainRangeReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *DomainRangeReq) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +type Pairs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keys [][]byte `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys,omitempty"` // TODO: replace by lengtsh+arena? Anyway on server we need copy (serialization happening outside tx) + Values [][]byte `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` + NextPageToken string `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` // uint32 estimateTotal = 3; // send once after stream creation +} + +func (x *Pairs) Reset() { + *x = Pairs{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Pairs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Pairs) ProtoMessage() {} + +func (x *Pairs) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Pairs.ProtoReflect.Descriptor instead. +func (*Pairs) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{18} +} + +func (x *Pairs) GetKeys() [][]byte { + if x != nil { + return x.Keys + } + return nil +} + +func (x *Pairs) GetValues() [][]byte { + if x != nil { + return x.Values + } + return nil +} + +func (x *Pairs) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +type ParisPagination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NextKey []byte `protobuf:"bytes,1,opt,name=next_key,json=nextKey,proto3" json:"next_key,omitempty"` + Limit int64 `protobuf:"zigzag64,2,opt,name=limit,proto3" json:"limit,omitempty"` +} + +func (x *ParisPagination) Reset() { + *x = ParisPagination{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParisPagination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParisPagination) ProtoMessage() {} + +func (x *ParisPagination) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParisPagination.ProtoReflect.Descriptor instead. +func (*ParisPagination) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{19} +} + +func (x *ParisPagination) GetNextKey() []byte { + if x != nil { + return x.NextKey + } + return nil +} + +func (x *ParisPagination) GetLimit() int64 { + if x != nil { + return x.Limit + } + return 0 +} + +type IndexPagination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NextTimeStamp int64 `protobuf:"zigzag64,1,opt,name=next_time_stamp,json=nextTimeStamp,proto3" json:"next_time_stamp,omitempty"` + Limit int64 `protobuf:"zigzag64,2,opt,name=limit,proto3" json:"limit,omitempty"` +} + +func (x *IndexPagination) Reset() { + *x = IndexPagination{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_kv_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexPagination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexPagination) ProtoMessage() {} + +func (x *IndexPagination) ProtoReflect() protoreflect.Message { + mi := &file_remote_kv_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IndexPagination.ProtoReflect.Descriptor instead. +func (*IndexPagination) Descriptor() ([]byte, []int) { + return file_remote_kv_proto_rawDescGZIP(), []int{20} +} + +func (x *IndexPagination) GetNextTimeStamp() int64 { + if x != nil { + return x.NextTimeStamp + } + return 0 +} + +func (x *IndexPagination) GetLimit() int64 { + if x != nil { + return x.Limit + } + return 0 +} + +var File_remote_kv_proto protoreflect.FileDescriptor + +var file_remote_kv_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2f, 0x6b, 0x76, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x79, 0x0a, 0x06, 0x43, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x0a, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4f, 0x70, 0x52, 0x02, 0x6f, 0x70, 0x12, + 0x1f, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x01, 0x6b, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x01, 0x76, 0x22, 0x6d, 0x0a, 0x04, 0x50, 0x61, 0x69, 0x72, 0x12, 0x0c, 0x0a, 0x01, + 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x6b, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x76, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x73, + 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x76, 0x69, 0x65, 0x77, 0x49, 0x64, 0x12, 0x13, + 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, + 0x78, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, + 0x32, 0x35, 0x36, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xe8, 0x01, 0x0a, 0x0d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, 0x36, + 0x30, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, + 0x63, 0x61, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x69, 0x6e, 0x63, 0x61, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x0f, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xb2, 0x02, 0x0a, + 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x74, 0x63, + 0x68, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0c, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x33, 0x0a, 0x16, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x13, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x42, 0x61, 0x73, 0x65, 0x46, 0x65, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x47, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x36, 0x0a, 0x18, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x62, 0x46, 0x65, 0x65, 0x50, 0x65, 0x72, 0x47, 0x61, + 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x44, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2a, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x2f, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x03, 0x74, 0x78, 0x73, 0x22, 0x64, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, + 0x11, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x77, 0x69, 0x74, 0x68, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x58, + 0x0a, 0x0e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x22, 0xe8, 0x01, 0x0a, 0x08, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x74, 0x6f, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x21, + 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x73, 0x63, 0x65, 0x6e, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x12, + 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x7f, 0x0a, 0x0c, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x0c, + 0x0a, 0x01, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x6b, 0x12, 0x0e, 0x0a, 0x02, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, + 0x6b, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x6b, 0x32, 0x12, 0x16, 0x0a, 0x06, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x22, 0x2e, 0x0a, 0x0e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x01, 0x76, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x02, 0x6f, 0x6b, 0x22, 0x58, 0x0a, 0x0d, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x0c, 0x0a, 0x01, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x6b, 0x12, 0x0e, + 0x0a, 0x02, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x74, 0x73, 0x22, 0x2f, + 0x0a, 0x0f, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x76, 0x12, + 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, + 0xeb, 0x01, 0x0a, 0x0d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x04, 0x74, 0x78, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x0c, 0x0a, 0x01, + 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x72, + 0x6f, 0x6d, 0x5f, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x66, 0x72, 0x6f, + 0x6d, 0x54, 0x73, 0x12, 0x13, 0x0a, 0x05, 0x74, 0x6f, 0x5f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x04, 0x74, 0x6f, 0x54, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x61, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x59, 0x0a, + 0x0f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xdf, 0x01, 0x0a, 0x0f, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x13, 0x0a, 0x05, + 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x78, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x12, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x73, + 0x12, 0x13, 0x0a, 0x05, 0x74, 0x6f, 0x5f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x12, 0x52, + 0x04, 0x74, 0x6f, 0x54, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x61, + 0x73, 0x63, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x41, 0x73, 0x63, 0x65, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8a, 0x02, 0x0a, 0x0e, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x13, 0x0a, + 0x05, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x78, + 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, + 0x4b, 0x65, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x63, 0x65, + 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x41, + 0x73, 0x63, 0x65, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5b, 0x0a, 0x05, 0x50, 0x61, 0x69, 0x72, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, + 0x6b, 0x65, 0x79, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x42, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x69, 0x73, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x4b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x4f, 0x0a, 0x0f, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x12, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x12, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x2a, 0x86, 0x02, 0x0a, 0x02, 0x4f, 0x70, + 0x12, 0x09, 0x0a, 0x05, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x46, + 0x49, 0x52, 0x53, 0x54, 0x5f, 0x44, 0x55, 0x50, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, + 0x45, 0x4b, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x45, 0x4b, 0x5f, 0x42, 0x4f, 0x54, + 0x48, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x10, 0x04, + 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x41, 0x53, 0x54, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x41, + 0x53, 0x54, 0x5f, 0x44, 0x55, 0x50, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x45, 0x58, 0x54, + 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x44, 0x55, 0x50, 0x10, 0x09, + 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x45, 0x58, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x55, 0x50, 0x10, + 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x52, 0x45, 0x56, 0x10, 0x0c, 0x12, 0x0c, 0x0a, 0x08, 0x50, + 0x52, 0x45, 0x56, 0x5f, 0x44, 0x55, 0x50, 0x10, 0x0d, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x52, 0x45, + 0x56, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x55, 0x50, 0x10, 0x0e, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, + 0x45, 0x4b, 0x5f, 0x45, 0x58, 0x41, 0x43, 0x54, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, + 0x45, 0x4b, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x5f, 0x45, 0x58, 0x41, 0x43, 0x54, 0x10, 0x10, 0x12, + 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x1e, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4c, 0x4f, + 0x53, 0x45, 0x10, 0x1f, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x44, 0x55, 0x50, + 0x5f, 0x53, 0x4f, 0x52, 0x54, 0x10, 0x20, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x55, 0x4e, 0x54, + 0x10, 0x21, 0x2a, 0x48, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, + 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x53, + 0x45, 0x52, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, + 0x0f, 0x0a, 0x0b, 0x55, 0x50, 0x53, 0x45, 0x52, 0x54, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x03, + 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x04, 0x2a, 0x24, 0x0a, 0x09, + 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4f, 0x52, + 0x57, 0x41, 0x52, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x57, 0x49, 0x4e, 0x44, + 0x10, 0x01, 0x32, 0xba, 0x04, 0x0a, 0x02, 0x4b, 0x56, 0x12, 0x36, 0x0a, 0x07, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x26, 0x0a, 0x02, 0x54, 0x78, 0x12, 0x0e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x1a, 0x0c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x2e, 0x50, 0x61, 0x69, 0x72, 0x28, 0x01, 0x30, 0x01, 0x12, 0x46, 0x0a, 0x0c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x30, + 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x18, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x28, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x47, 0x65, 0x74, 0x12, 0x14, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x15, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x36, 0x0a, 0x0c, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x17, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x0b, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x0d, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x73, 0x42, + 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x3b, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_remote_kv_proto_rawDescOnce sync.Once + file_remote_kv_proto_rawDescData = file_remote_kv_proto_rawDesc +) + +func file_remote_kv_proto_rawDescGZIP() []byte { + file_remote_kv_proto_rawDescOnce.Do(func() { + file_remote_kv_proto_rawDescData = protoimpl.X.CompressGZIP(file_remote_kv_proto_rawDescData) + }) + return file_remote_kv_proto_rawDescData +} + +var file_remote_kv_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_remote_kv_proto_msgTypes = make([]protoimpl.MessageInfo, 21) +var file_remote_kv_proto_goTypes = []interface{}{ + (Op)(0), // 0: remote.Op + (Action)(0), // 1: remote.Action + (Direction)(0), // 2: remote.Direction + (*Cursor)(nil), // 3: remote.Cursor + (*Pair)(nil), // 4: remote.Pair + (*StorageChange)(nil), // 5: remote.StorageChange + (*AccountChange)(nil), // 6: remote.AccountChange + (*StateChangeBatch)(nil), // 7: remote.StateChangeBatch + (*StateChange)(nil), // 8: remote.StateChange + (*StateChangeRequest)(nil), // 9: remote.StateChangeRequest + (*SnapshotsRequest)(nil), // 10: remote.SnapshotsRequest + (*SnapshotsReply)(nil), // 11: remote.SnapshotsReply + (*RangeReq)(nil), // 12: remote.RangeReq + (*DomainGetReq)(nil), // 13: remote.DomainGetReq + (*DomainGetReply)(nil), // 14: remote.DomainGetReply + (*HistoryGetReq)(nil), // 15: remote.HistoryGetReq + (*HistoryGetReply)(nil), // 16: remote.HistoryGetReply + (*IndexRangeReq)(nil), // 17: remote.IndexRangeReq + (*IndexRangeReply)(nil), // 18: remote.IndexRangeReply + (*HistoryRangeReq)(nil), // 19: remote.HistoryRangeReq + (*DomainRangeReq)(nil), // 20: remote.DomainRangeReq + (*Pairs)(nil), // 21: remote.Pairs + (*ParisPagination)(nil), // 22: remote.ParisPagination + (*IndexPagination)(nil), // 23: remote.IndexPagination + (*types.H256)(nil), // 24: types.H256 + (*types.H160)(nil), // 25: types.H160 + (*emptypb.Empty)(nil), // 26: google.protobuf.Empty + (*types.VersionReply)(nil), // 27: types.VersionReply +} +var file_remote_kv_proto_depIdxs = []int32{ + 0, // 0: remote.Cursor.op:type_name -> remote.Op + 24, // 1: remote.StorageChange.location:type_name -> types.H256 + 25, // 2: remote.AccountChange.address:type_name -> types.H160 + 1, // 3: remote.AccountChange.action:type_name -> remote.Action + 5, // 4: remote.AccountChange.storage_changes:type_name -> remote.StorageChange + 8, // 5: remote.StateChangeBatch.change_batch:type_name -> remote.StateChange + 2, // 6: remote.StateChange.direction:type_name -> remote.Direction + 24, // 7: remote.StateChange.block_hash:type_name -> types.H256 + 6, // 8: remote.StateChange.changes:type_name -> remote.AccountChange + 26, // 9: remote.KV.Version:input_type -> google.protobuf.Empty + 3, // 10: remote.KV.Tx:input_type -> remote.Cursor + 9, // 11: remote.KV.StateChanges:input_type -> remote.StateChangeRequest + 10, // 12: remote.KV.Snapshots:input_type -> remote.SnapshotsRequest + 12, // 13: remote.KV.Range:input_type -> remote.RangeReq + 13, // 14: remote.KV.DomainGet:input_type -> remote.DomainGetReq + 15, // 15: remote.KV.HistoryGet:input_type -> remote.HistoryGetReq + 17, // 16: remote.KV.IndexRange:input_type -> remote.IndexRangeReq + 19, // 17: remote.KV.HistoryRange:input_type -> remote.HistoryRangeReq + 20, // 18: remote.KV.DomainRange:input_type -> remote.DomainRangeReq + 27, // 19: remote.KV.Version:output_type -> types.VersionReply + 4, // 20: remote.KV.Tx:output_type -> remote.Pair + 7, // 21: remote.KV.StateChanges:output_type -> remote.StateChangeBatch + 11, // 22: remote.KV.Snapshots:output_type -> remote.SnapshotsReply + 21, // 23: remote.KV.Range:output_type -> remote.Pairs + 14, // 24: remote.KV.DomainGet:output_type -> remote.DomainGetReply + 16, // 25: remote.KV.HistoryGet:output_type -> remote.HistoryGetReply + 18, // 26: remote.KV.IndexRange:output_type -> remote.IndexRangeReply + 21, // 27: remote.KV.HistoryRange:output_type -> remote.Pairs + 21, // 28: remote.KV.DomainRange:output_type -> remote.Pairs + 19, // [19:29] is the sub-list for method output_type + 9, // [9:19] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_remote_kv_proto_init() } +func file_remote_kv_proto_init() { + if File_remote_kv_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_remote_kv_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Cursor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Pair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StorageChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateChangeBatch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StateChangeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SnapshotsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SnapshotsReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RangeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DomainGetReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DomainGetReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoryGetReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoryGetReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexRangeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexRangeReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoryRangeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DomainRangeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Pairs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParisPagination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_kv_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexPagination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_remote_kv_proto_rawDesc, + NumEnums: 3, + NumMessages: 21, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_remote_kv_proto_goTypes, + DependencyIndexes: file_remote_kv_proto_depIdxs, + EnumInfos: file_remote_kv_proto_enumTypes, + MessageInfos: file_remote_kv_proto_msgTypes, + }.Build() + File_remote_kv_proto = out.File + file_remote_kv_proto_rawDesc = nil + file_remote_kv_proto_goTypes = nil + file_remote_kv_proto_depIdxs = nil +} diff --git a/erigon-lib/gointerfaces/remote/kv_grpc.pb.go b/erigon-lib/gointerfaces/remote/kv_grpc.pb.go new file mode 100644 index 00000000000..d0305cb0fb4 --- /dev/null +++ b/erigon-lib/gointerfaces/remote/kv_grpc.pb.go @@ -0,0 +1,528 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.2 +// source: remote/kv.proto + +package remote + +import ( + context "context" + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + KV_Version_FullMethodName = "/remote.KV/Version" + KV_Tx_FullMethodName = "/remote.KV/Tx" + KV_StateChanges_FullMethodName = "/remote.KV/StateChanges" + KV_Snapshots_FullMethodName = "/remote.KV/Snapshots" + KV_Range_FullMethodName = "/remote.KV/Range" + KV_DomainGet_FullMethodName = "/remote.KV/DomainGet" + KV_HistoryGet_FullMethodName = "/remote.KV/HistoryGet" + KV_IndexRange_FullMethodName = "/remote.KV/IndexRange" + KV_HistoryRange_FullMethodName = "/remote.KV/HistoryRange" + KV_DomainRange_FullMethodName = "/remote.KV/DomainRange" +) + +// KVClient is the client API for KV service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type KVClient interface { + // Version returns the service version number + Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) + // Tx exposes read-only transactions for the key-value store + // + // When tx open, client must receive 1 message from server with txID + // When cursor open, client must receive 1 message from server with cursorID + // Then only client can initiate messages from server + Tx(ctx context.Context, opts ...grpc.CallOption) (KV_TxClient, error) + StateChanges(ctx context.Context, in *StateChangeRequest, opts ...grpc.CallOption) (KV_StateChangesClient, error) + // Snapshots returns list of current snapshot files. Then client can just open all of them. + Snapshots(ctx context.Context, in *SnapshotsRequest, opts ...grpc.CallOption) (*SnapshotsReply, error) + // Range [from, to) + // Range(from, nil) means [from, EndOfTable) + // Range(nil, to) means [StartOfTable, to) + // If orderAscend=false server expecting `from`<`to`. Example: Range("B", "A") + Range(ctx context.Context, in *RangeReq, opts ...grpc.CallOption) (*Pairs, error) + // Temporal methods + DomainGet(ctx context.Context, in *DomainGetReq, opts ...grpc.CallOption) (*DomainGetReply, error) + HistoryGet(ctx context.Context, in *HistoryGetReq, opts ...grpc.CallOption) (*HistoryGetReply, error) + IndexRange(ctx context.Context, in *IndexRangeReq, opts ...grpc.CallOption) (*IndexRangeReply, error) + HistoryRange(ctx context.Context, in *HistoryRangeReq, opts ...grpc.CallOption) (*Pairs, error) + DomainRange(ctx context.Context, in *DomainRangeReq, opts ...grpc.CallOption) (*Pairs, error) +} + +type kVClient struct { + cc grpc.ClientConnInterface +} + +func NewKVClient(cc grpc.ClientConnInterface) KVClient { + return &kVClient{cc} +} + +func (c *kVClient) Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) { + out := new(types.VersionReply) + err := c.cc.Invoke(ctx, KV_Version_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *kVClient) Tx(ctx context.Context, opts ...grpc.CallOption) (KV_TxClient, error) { + stream, err := c.cc.NewStream(ctx, &KV_ServiceDesc.Streams[0], KV_Tx_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &kVTxClient{stream} + return x, nil +} + +type KV_TxClient interface { + Send(*Cursor) error + Recv() (*Pair, error) + grpc.ClientStream +} + +type kVTxClient struct { + grpc.ClientStream +} + +func (x *kVTxClient) Send(m *Cursor) error { + return x.ClientStream.SendMsg(m) +} + +func (x *kVTxClient) Recv() (*Pair, error) { + m := new(Pair) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *kVClient) StateChanges(ctx context.Context, in *StateChangeRequest, opts ...grpc.CallOption) (KV_StateChangesClient, error) { + stream, err := c.cc.NewStream(ctx, &KV_ServiceDesc.Streams[1], KV_StateChanges_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &kVStateChangesClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type KV_StateChangesClient interface { + Recv() (*StateChangeBatch, error) + grpc.ClientStream +} + +type kVStateChangesClient struct { + grpc.ClientStream +} + +func (x *kVStateChangesClient) Recv() (*StateChangeBatch, error) { + m := new(StateChangeBatch) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *kVClient) Snapshots(ctx context.Context, in *SnapshotsRequest, opts ...grpc.CallOption) (*SnapshotsReply, error) { + out := new(SnapshotsReply) + err := c.cc.Invoke(ctx, KV_Snapshots_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *kVClient) Range(ctx context.Context, in *RangeReq, opts ...grpc.CallOption) (*Pairs, error) { + out := new(Pairs) + err := c.cc.Invoke(ctx, KV_Range_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *kVClient) DomainGet(ctx context.Context, in *DomainGetReq, opts ...grpc.CallOption) (*DomainGetReply, error) { + out := new(DomainGetReply) + err := c.cc.Invoke(ctx, KV_DomainGet_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *kVClient) HistoryGet(ctx context.Context, in *HistoryGetReq, opts ...grpc.CallOption) (*HistoryGetReply, error) { + out := new(HistoryGetReply) + err := c.cc.Invoke(ctx, KV_HistoryGet_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *kVClient) IndexRange(ctx context.Context, in *IndexRangeReq, opts ...grpc.CallOption) (*IndexRangeReply, error) { + out := new(IndexRangeReply) + err := c.cc.Invoke(ctx, KV_IndexRange_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *kVClient) HistoryRange(ctx context.Context, in *HistoryRangeReq, opts ...grpc.CallOption) (*Pairs, error) { + out := new(Pairs) + err := c.cc.Invoke(ctx, KV_HistoryRange_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *kVClient) DomainRange(ctx context.Context, in *DomainRangeReq, opts ...grpc.CallOption) (*Pairs, error) { + out := new(Pairs) + err := c.cc.Invoke(ctx, KV_DomainRange_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// KVServer is the server API for KV service. +// All implementations must embed UnimplementedKVServer +// for forward compatibility +type KVServer interface { + // Version returns the service version number + Version(context.Context, *emptypb.Empty) (*types.VersionReply, error) + // Tx exposes read-only transactions for the key-value store + // + // When tx open, client must receive 1 message from server with txID + // When cursor open, client must receive 1 message from server with cursorID + // Then only client can initiate messages from server + Tx(KV_TxServer) error + StateChanges(*StateChangeRequest, KV_StateChangesServer) error + // Snapshots returns list of current snapshot files. Then client can just open all of them. + Snapshots(context.Context, *SnapshotsRequest) (*SnapshotsReply, error) + // Range [from, to) + // Range(from, nil) means [from, EndOfTable) + // Range(nil, to) means [StartOfTable, to) + // If orderAscend=false server expecting `from`<`to`. Example: Range("B", "A") + Range(context.Context, *RangeReq) (*Pairs, error) + // Temporal methods + DomainGet(context.Context, *DomainGetReq) (*DomainGetReply, error) + HistoryGet(context.Context, *HistoryGetReq) (*HistoryGetReply, error) + IndexRange(context.Context, *IndexRangeReq) (*IndexRangeReply, error) + HistoryRange(context.Context, *HistoryRangeReq) (*Pairs, error) + DomainRange(context.Context, *DomainRangeReq) (*Pairs, error) + mustEmbedUnimplementedKVServer() +} + +// UnimplementedKVServer must be embedded to have forward compatible implementations. +type UnimplementedKVServer struct { +} + +func (UnimplementedKVServer) Version(context.Context, *emptypb.Empty) (*types.VersionReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Version not implemented") +} +func (UnimplementedKVServer) Tx(KV_TxServer) error { + return status.Errorf(codes.Unimplemented, "method Tx not implemented") +} +func (UnimplementedKVServer) StateChanges(*StateChangeRequest, KV_StateChangesServer) error { + return status.Errorf(codes.Unimplemented, "method StateChanges not implemented") +} +func (UnimplementedKVServer) Snapshots(context.Context, *SnapshotsRequest) (*SnapshotsReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Snapshots not implemented") +} +func (UnimplementedKVServer) Range(context.Context, *RangeReq) (*Pairs, error) { + return nil, status.Errorf(codes.Unimplemented, "method Range not implemented") +} +func (UnimplementedKVServer) DomainGet(context.Context, *DomainGetReq) (*DomainGetReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method DomainGet not implemented") +} +func (UnimplementedKVServer) HistoryGet(context.Context, *HistoryGetReq) (*HistoryGetReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method HistoryGet not implemented") +} +func (UnimplementedKVServer) IndexRange(context.Context, *IndexRangeReq) (*IndexRangeReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method IndexRange not implemented") +} +func (UnimplementedKVServer) HistoryRange(context.Context, *HistoryRangeReq) (*Pairs, error) { + return nil, status.Errorf(codes.Unimplemented, "method HistoryRange not implemented") +} +func (UnimplementedKVServer) DomainRange(context.Context, *DomainRangeReq) (*Pairs, error) { + return nil, status.Errorf(codes.Unimplemented, "method DomainRange not implemented") +} +func (UnimplementedKVServer) mustEmbedUnimplementedKVServer() {} + +// UnsafeKVServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to KVServer will +// result in compilation errors. +type UnsafeKVServer interface { + mustEmbedUnimplementedKVServer() +} + +func RegisterKVServer(s grpc.ServiceRegistrar, srv KVServer) { + s.RegisterService(&KV_ServiceDesc, srv) +} + +func _KV_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KVServer).Version(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: KV_Version_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KVServer).Version(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _KV_Tx_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(KVServer).Tx(&kVTxServer{stream}) +} + +type KV_TxServer interface { + Send(*Pair) error + Recv() (*Cursor, error) + grpc.ServerStream +} + +type kVTxServer struct { + grpc.ServerStream +} + +func (x *kVTxServer) Send(m *Pair) error { + return x.ServerStream.SendMsg(m) +} + +func (x *kVTxServer) Recv() (*Cursor, error) { + m := new(Cursor) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _KV_StateChanges_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(StateChangeRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(KVServer).StateChanges(m, &kVStateChangesServer{stream}) +} + +type KV_StateChangesServer interface { + Send(*StateChangeBatch) error + grpc.ServerStream +} + +type kVStateChangesServer struct { + grpc.ServerStream +} + +func (x *kVStateChangesServer) Send(m *StateChangeBatch) error { + return x.ServerStream.SendMsg(m) +} + +func _KV_Snapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SnapshotsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KVServer).Snapshots(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: KV_Snapshots_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KVServer).Snapshots(ctx, req.(*SnapshotsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _KV_Range_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RangeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KVServer).Range(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: KV_Range_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KVServer).Range(ctx, req.(*RangeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _KV_DomainGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DomainGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KVServer).DomainGet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: KV_DomainGet_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KVServer).DomainGet(ctx, req.(*DomainGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _KV_HistoryGet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HistoryGetReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KVServer).HistoryGet(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: KV_HistoryGet_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KVServer).HistoryGet(ctx, req.(*HistoryGetReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _KV_IndexRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IndexRangeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KVServer).IndexRange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: KV_IndexRange_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KVServer).IndexRange(ctx, req.(*IndexRangeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _KV_HistoryRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HistoryRangeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KVServer).HistoryRange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: KV_HistoryRange_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KVServer).HistoryRange(ctx, req.(*HistoryRangeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _KV_DomainRange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DomainRangeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(KVServer).DomainRange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: KV_DomainRange_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(KVServer).DomainRange(ctx, req.(*DomainRangeReq)) + } + return interceptor(ctx, in, info, handler) +} + +// KV_ServiceDesc is the grpc.ServiceDesc for KV service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var KV_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "remote.KV", + HandlerType: (*KVServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Version", + Handler: _KV_Version_Handler, + }, + { + MethodName: "Snapshots", + Handler: _KV_Snapshots_Handler, + }, + { + MethodName: "Range", + Handler: _KV_Range_Handler, + }, + { + MethodName: "DomainGet", + Handler: _KV_DomainGet_Handler, + }, + { + MethodName: "HistoryGet", + Handler: _KV_HistoryGet_Handler, + }, + { + MethodName: "IndexRange", + Handler: _KV_IndexRange_Handler, + }, + { + MethodName: "HistoryRange", + Handler: _KV_HistoryRange_Handler, + }, + { + MethodName: "DomainRange", + Handler: _KV_DomainRange_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Tx", + Handler: _KV_Tx_Handler, + ServerStreams: true, + ClientStreams: true, + }, + { + StreamName: "StateChanges", + Handler: _KV_StateChanges_Handler, + ServerStreams: true, + }, + }, + Metadata: "remote/kv.proto", +} diff --git a/erigon-lib/gointerfaces/remote/mocks.go b/erigon-lib/gointerfaces/remote/mocks.go new file mode 100644 index 00000000000..8300eb434d2 --- /dev/null +++ b/erigon-lib/gointerfaces/remote/mocks.go @@ -0,0 +1,947 @@ +// Code generated by moq; DO NOT EDIT. +// github.com/matryer/moq + +package remote + +import ( + context "context" + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + grpc "google.golang.org/grpc" + "google.golang.org/grpc/metadata" + emptypb "google.golang.org/protobuf/types/known/emptypb" + sync "sync" +) + +// Ensure, that KVClientMock does implement KVClient. +// If this is not the case, regenerate this file with moq. +var _ KVClient = &KVClientMock{} + +// KVClientMock is a mock implementation of KVClient. +// +// func TestSomethingThatUsesKVClient(t *testing.T) { +// +// // make and configure a mocked KVClient +// mockedKVClient := &KVClientMock{ +// DomainGetFunc: func(ctx context.Context, in *DomainGetReq, opts ...grpc.CallOption) (*DomainGetReply, error) { +// panic("mock out the DomainGet method") +// }, +// DomainRangeFunc: func(ctx context.Context, in *DomainRangeReq, opts ...grpc.CallOption) (*Pairs, error) { +// panic("mock out the DomainRange method") +// }, +// HistoryGetFunc: func(ctx context.Context, in *HistoryGetReq, opts ...grpc.CallOption) (*HistoryGetReply, error) { +// panic("mock out the HistoryGet method") +// }, +// HistoryRangeFunc: func(ctx context.Context, in *HistoryRangeReq, opts ...grpc.CallOption) (*Pairs, error) { +// panic("mock out the HistoryRange method") +// }, +// IndexRangeFunc: func(ctx context.Context, in *IndexRangeReq, opts ...grpc.CallOption) (*IndexRangeReply, error) { +// panic("mock out the IndexRange method") +// }, +// RangeFunc: func(ctx context.Context, in *RangeReq, opts ...grpc.CallOption) (*Pairs, error) { +// panic("mock out the Range method") +// }, +// SnapshotsFunc: func(ctx context.Context, in *SnapshotsRequest, opts ...grpc.CallOption) (*SnapshotsReply, error) { +// panic("mock out the Snapshots method") +// }, +// StateChangesFunc: func(ctx context.Context, in *StateChangeRequest, opts ...grpc.CallOption) (KV_StateChangesClient, error) { +// panic("mock out the StateChanges method") +// }, +// TxFunc: func(ctx context.Context, opts ...grpc.CallOption) (KV_TxClient, error) { +// panic("mock out the Tx method") +// }, +// VersionFunc: func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) { +// panic("mock out the Version method") +// }, +// } +// +// // use mockedKVClient in code that requires KVClient +// // and then make assertions. +// +// } +type KVClientMock struct { + // DomainGetFunc mocks the DomainGet method. + DomainGetFunc func(ctx context.Context, in *DomainGetReq, opts ...grpc.CallOption) (*DomainGetReply, error) + + // DomainRangeFunc mocks the DomainRange method. + DomainRangeFunc func(ctx context.Context, in *DomainRangeReq, opts ...grpc.CallOption) (*Pairs, error) + + // HistoryGetFunc mocks the HistoryGet method. + HistoryGetFunc func(ctx context.Context, in *HistoryGetReq, opts ...grpc.CallOption) (*HistoryGetReply, error) + + // HistoryRangeFunc mocks the HistoryRange method. + HistoryRangeFunc func(ctx context.Context, in *HistoryRangeReq, opts ...grpc.CallOption) (*Pairs, error) + + // IndexRangeFunc mocks the IndexRange method. + IndexRangeFunc func(ctx context.Context, in *IndexRangeReq, opts ...grpc.CallOption) (*IndexRangeReply, error) + + // RangeFunc mocks the Range method. + RangeFunc func(ctx context.Context, in *RangeReq, opts ...grpc.CallOption) (*Pairs, error) + + // SnapshotsFunc mocks the Snapshots method. + SnapshotsFunc func(ctx context.Context, in *SnapshotsRequest, opts ...grpc.CallOption) (*SnapshotsReply, error) + + // StateChangesFunc mocks the StateChanges method. + StateChangesFunc func(ctx context.Context, in *StateChangeRequest, opts ...grpc.CallOption) (KV_StateChangesClient, error) + + // TxFunc mocks the Tx method. + TxFunc func(ctx context.Context, opts ...grpc.CallOption) (KV_TxClient, error) + + // VersionFunc mocks the Version method. + VersionFunc func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) + + // calls tracks calls to the methods. + calls struct { + // DomainGet holds details about calls to the DomainGet method. + DomainGet []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *DomainGetReq + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // DomainRange holds details about calls to the DomainRange method. + DomainRange []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *DomainRangeReq + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // HistoryGet holds details about calls to the HistoryGet method. + HistoryGet []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *HistoryGetReq + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // HistoryRange holds details about calls to the HistoryRange method. + HistoryRange []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *HistoryRangeReq + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // IndexRange holds details about calls to the IndexRange method. + IndexRange []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *IndexRangeReq + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // Range holds details about calls to the Range method. + Range []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *RangeReq + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // Snapshots holds details about calls to the Snapshots method. + Snapshots []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *SnapshotsRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // StateChanges holds details about calls to the StateChanges method. + StateChanges []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *StateChangeRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // Tx holds details about calls to the Tx method. + Tx []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // Version holds details about calls to the Version method. + Version []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *emptypb.Empty + // Opts is the opts argument value. + Opts []grpc.CallOption + } + } + lockDomainGet sync.RWMutex + lockDomainRange sync.RWMutex + lockHistoryGet sync.RWMutex + lockHistoryRange sync.RWMutex + lockIndexRange sync.RWMutex + lockRange sync.RWMutex + lockSnapshots sync.RWMutex + lockStateChanges sync.RWMutex + lockTx sync.RWMutex + lockVersion sync.RWMutex +} + +// DomainGet calls DomainGetFunc. +func (mock *KVClientMock) DomainGet(ctx context.Context, in *DomainGetReq, opts ...grpc.CallOption) (*DomainGetReply, error) { + callInfo := struct { + Ctx context.Context + In *DomainGetReq + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockDomainGet.Lock() + mock.calls.DomainGet = append(mock.calls.DomainGet, callInfo) + mock.lockDomainGet.Unlock() + if mock.DomainGetFunc == nil { + var ( + domainGetReplyOut *DomainGetReply + errOut error + ) + return domainGetReplyOut, errOut + } + return mock.DomainGetFunc(ctx, in, opts...) +} + +// DomainGetCalls gets all the calls that were made to DomainGet. +// Check the length with: +// +// len(mockedKVClient.DomainGetCalls()) +func (mock *KVClientMock) DomainGetCalls() []struct { + Ctx context.Context + In *DomainGetReq + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *DomainGetReq + Opts []grpc.CallOption + } + mock.lockDomainGet.RLock() + calls = mock.calls.DomainGet + mock.lockDomainGet.RUnlock() + return calls +} + +// DomainRange calls DomainRangeFunc. +func (mock *KVClientMock) DomainRange(ctx context.Context, in *DomainRangeReq, opts ...grpc.CallOption) (*Pairs, error) { + callInfo := struct { + Ctx context.Context + In *DomainRangeReq + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockDomainRange.Lock() + mock.calls.DomainRange = append(mock.calls.DomainRange, callInfo) + mock.lockDomainRange.Unlock() + if mock.DomainRangeFunc == nil { + var ( + pairsOut *Pairs + errOut error + ) + return pairsOut, errOut + } + return mock.DomainRangeFunc(ctx, in, opts...) +} + +// DomainRangeCalls gets all the calls that were made to DomainRange. +// Check the length with: +// +// len(mockedKVClient.DomainRangeCalls()) +func (mock *KVClientMock) DomainRangeCalls() []struct { + Ctx context.Context + In *DomainRangeReq + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *DomainRangeReq + Opts []grpc.CallOption + } + mock.lockDomainRange.RLock() + calls = mock.calls.DomainRange + mock.lockDomainRange.RUnlock() + return calls +} + +// HistoryGet calls HistoryGetFunc. +func (mock *KVClientMock) HistoryGet(ctx context.Context, in *HistoryGetReq, opts ...grpc.CallOption) (*HistoryGetReply, error) { + callInfo := struct { + Ctx context.Context + In *HistoryGetReq + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockHistoryGet.Lock() + mock.calls.HistoryGet = append(mock.calls.HistoryGet, callInfo) + mock.lockHistoryGet.Unlock() + if mock.HistoryGetFunc == nil { + var ( + historyGetReplyOut *HistoryGetReply + errOut error + ) + return historyGetReplyOut, errOut + } + return mock.HistoryGetFunc(ctx, in, opts...) +} + +// HistoryGetCalls gets all the calls that were made to HistoryGet. +// Check the length with: +// +// len(mockedKVClient.HistoryGetCalls()) +func (mock *KVClientMock) HistoryGetCalls() []struct { + Ctx context.Context + In *HistoryGetReq + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *HistoryGetReq + Opts []grpc.CallOption + } + mock.lockHistoryGet.RLock() + calls = mock.calls.HistoryGet + mock.lockHistoryGet.RUnlock() + return calls +} + +// HistoryRange calls HistoryRangeFunc. +func (mock *KVClientMock) HistoryRange(ctx context.Context, in *HistoryRangeReq, opts ...grpc.CallOption) (*Pairs, error) { + callInfo := struct { + Ctx context.Context + In *HistoryRangeReq + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockHistoryRange.Lock() + mock.calls.HistoryRange = append(mock.calls.HistoryRange, callInfo) + mock.lockHistoryRange.Unlock() + if mock.HistoryRangeFunc == nil { + var ( + pairsOut *Pairs + errOut error + ) + return pairsOut, errOut + } + return mock.HistoryRangeFunc(ctx, in, opts...) +} + +// HistoryRangeCalls gets all the calls that were made to HistoryRange. +// Check the length with: +// +// len(mockedKVClient.HistoryRangeCalls()) +func (mock *KVClientMock) HistoryRangeCalls() []struct { + Ctx context.Context + In *HistoryRangeReq + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *HistoryRangeReq + Opts []grpc.CallOption + } + mock.lockHistoryRange.RLock() + calls = mock.calls.HistoryRange + mock.lockHistoryRange.RUnlock() + return calls +} + +// IndexRange calls IndexRangeFunc. +func (mock *KVClientMock) IndexRange(ctx context.Context, in *IndexRangeReq, opts ...grpc.CallOption) (*IndexRangeReply, error) { + callInfo := struct { + Ctx context.Context + In *IndexRangeReq + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockIndexRange.Lock() + mock.calls.IndexRange = append(mock.calls.IndexRange, callInfo) + mock.lockIndexRange.Unlock() + if mock.IndexRangeFunc == nil { + var ( + indexRangeReplyOut *IndexRangeReply + errOut error + ) + return indexRangeReplyOut, errOut + } + return mock.IndexRangeFunc(ctx, in, opts...) +} + +// IndexRangeCalls gets all the calls that were made to IndexRange. +// Check the length with: +// +// len(mockedKVClient.IndexRangeCalls()) +func (mock *KVClientMock) IndexRangeCalls() []struct { + Ctx context.Context + In *IndexRangeReq + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *IndexRangeReq + Opts []grpc.CallOption + } + mock.lockIndexRange.RLock() + calls = mock.calls.IndexRange + mock.lockIndexRange.RUnlock() + return calls +} + +// Range calls RangeFunc. +func (mock *KVClientMock) Range(ctx context.Context, in *RangeReq, opts ...grpc.CallOption) (*Pairs, error) { + callInfo := struct { + Ctx context.Context + In *RangeReq + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockRange.Lock() + mock.calls.Range = append(mock.calls.Range, callInfo) + mock.lockRange.Unlock() + if mock.RangeFunc == nil { + var ( + pairsOut *Pairs + errOut error + ) + return pairsOut, errOut + } + return mock.RangeFunc(ctx, in, opts...) +} + +// RangeCalls gets all the calls that were made to Range. +// Check the length with: +// +// len(mockedKVClient.RangeCalls()) +func (mock *KVClientMock) RangeCalls() []struct { + Ctx context.Context + In *RangeReq + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *RangeReq + Opts []grpc.CallOption + } + mock.lockRange.RLock() + calls = mock.calls.Range + mock.lockRange.RUnlock() + return calls +} + +// Snapshots calls SnapshotsFunc. +func (mock *KVClientMock) Snapshots(ctx context.Context, in *SnapshotsRequest, opts ...grpc.CallOption) (*SnapshotsReply, error) { + callInfo := struct { + Ctx context.Context + In *SnapshotsRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockSnapshots.Lock() + mock.calls.Snapshots = append(mock.calls.Snapshots, callInfo) + mock.lockSnapshots.Unlock() + if mock.SnapshotsFunc == nil { + var ( + snapshotsReplyOut *SnapshotsReply + errOut error + ) + return snapshotsReplyOut, errOut + } + return mock.SnapshotsFunc(ctx, in, opts...) +} + +// SnapshotsCalls gets all the calls that were made to Snapshots. +// Check the length with: +// +// len(mockedKVClient.SnapshotsCalls()) +func (mock *KVClientMock) SnapshotsCalls() []struct { + Ctx context.Context + In *SnapshotsRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *SnapshotsRequest + Opts []grpc.CallOption + } + mock.lockSnapshots.RLock() + calls = mock.calls.Snapshots + mock.lockSnapshots.RUnlock() + return calls +} + +// StateChanges calls StateChangesFunc. +func (mock *KVClientMock) StateChanges(ctx context.Context, in *StateChangeRequest, opts ...grpc.CallOption) (KV_StateChangesClient, error) { + callInfo := struct { + Ctx context.Context + In *StateChangeRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockStateChanges.Lock() + mock.calls.StateChanges = append(mock.calls.StateChanges, callInfo) + mock.lockStateChanges.Unlock() + if mock.StateChangesFunc == nil { + var ( + kV_StateChangesClientOut KV_StateChangesClient + errOut error + ) + return kV_StateChangesClientOut, errOut + } + return mock.StateChangesFunc(ctx, in, opts...) +} + +// StateChangesCalls gets all the calls that were made to StateChanges. +// Check the length with: +// +// len(mockedKVClient.StateChangesCalls()) +func (mock *KVClientMock) StateChangesCalls() []struct { + Ctx context.Context + In *StateChangeRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *StateChangeRequest + Opts []grpc.CallOption + } + mock.lockStateChanges.RLock() + calls = mock.calls.StateChanges + mock.lockStateChanges.RUnlock() + return calls +} + +// Tx calls TxFunc. +func (mock *KVClientMock) Tx(ctx context.Context, opts ...grpc.CallOption) (KV_TxClient, error) { + callInfo := struct { + Ctx context.Context + Opts []grpc.CallOption + }{ + Ctx: ctx, + Opts: opts, + } + mock.lockTx.Lock() + mock.calls.Tx = append(mock.calls.Tx, callInfo) + mock.lockTx.Unlock() + if mock.TxFunc == nil { + var ( + kV_TxClientOut KV_TxClient + errOut error + ) + return kV_TxClientOut, errOut + } + return mock.TxFunc(ctx, opts...) +} + +// TxCalls gets all the calls that were made to Tx. +// Check the length with: +// +// len(mockedKVClient.TxCalls()) +func (mock *KVClientMock) TxCalls() []struct { + Ctx context.Context + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + Opts []grpc.CallOption + } + mock.lockTx.RLock() + calls = mock.calls.Tx + mock.lockTx.RUnlock() + return calls +} + +// Version calls VersionFunc. +func (mock *KVClientMock) Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) { + callInfo := struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockVersion.Lock() + mock.calls.Version = append(mock.calls.Version, callInfo) + mock.lockVersion.Unlock() + if mock.VersionFunc == nil { + var ( + versionReplyOut *types.VersionReply + errOut error + ) + return versionReplyOut, errOut + } + return mock.VersionFunc(ctx, in, opts...) +} + +// VersionCalls gets all the calls that were made to Version. +// Check the length with: +// +// len(mockedKVClient.VersionCalls()) +func (mock *KVClientMock) VersionCalls() []struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption + } + mock.lockVersion.RLock() + calls = mock.calls.Version + mock.lockVersion.RUnlock() + return calls +} + +// Ensure, that KV_StateChangesClientMock does implement KV_StateChangesClient. +// If this is not the case, regenerate this file with moq. +var _ KV_StateChangesClient = &KV_StateChangesClientMock{} + +// KV_StateChangesClientMock is a mock implementation of KV_StateChangesClient. +// +// func TestSomethingThatUsesKV_StateChangesClient(t *testing.T) { +// +// // make and configure a mocked KV_StateChangesClient +// mockedKV_StateChangesClient := &KV_StateChangesClientMock{ +// CloseSendFunc: func() error { +// panic("mock out the CloseSend method") +// }, +// ContextFunc: func() context.Context { +// panic("mock out the Context method") +// }, +// HeaderFunc: func() (metadata.MD, error) { +// panic("mock out the Header method") +// }, +// RecvFunc: func() (*StateChangeBatch, error) { +// panic("mock out the Recv method") +// }, +// RecvMsgFunc: func(m any) error { +// panic("mock out the RecvMsg method") +// }, +// SendMsgFunc: func(m any) error { +// panic("mock out the SendMsg method") +// }, +// TrailerFunc: func() metadata.MD { +// panic("mock out the Trailer method") +// }, +// } +// +// // use mockedKV_StateChangesClient in code that requires KV_StateChangesClient +// // and then make assertions. +// +// } +type KV_StateChangesClientMock struct { + // CloseSendFunc mocks the CloseSend method. + CloseSendFunc func() error + + // ContextFunc mocks the Context method. + ContextFunc func() context.Context + + // HeaderFunc mocks the Header method. + HeaderFunc func() (metadata.MD, error) + + // RecvFunc mocks the Recv method. + RecvFunc func() (*StateChangeBatch, error) + + // RecvMsgFunc mocks the RecvMsg method. + RecvMsgFunc func(m any) error + + // SendMsgFunc mocks the SendMsg method. + SendMsgFunc func(m any) error + + // TrailerFunc mocks the Trailer method. + TrailerFunc func() metadata.MD + + // calls tracks calls to the methods. + calls struct { + // CloseSend holds details about calls to the CloseSend method. + CloseSend []struct { + } + // Context holds details about calls to the Context method. + Context []struct { + } + // Header holds details about calls to the Header method. + Header []struct { + } + // Recv holds details about calls to the Recv method. + Recv []struct { + } + // RecvMsg holds details about calls to the RecvMsg method. + RecvMsg []struct { + // M is the m argument value. + M any + } + // SendMsg holds details about calls to the SendMsg method. + SendMsg []struct { + // M is the m argument value. + M any + } + // Trailer holds details about calls to the Trailer method. + Trailer []struct { + } + } + lockCloseSend sync.RWMutex + lockContext sync.RWMutex + lockHeader sync.RWMutex + lockRecv sync.RWMutex + lockRecvMsg sync.RWMutex + lockSendMsg sync.RWMutex + lockTrailer sync.RWMutex +} + +// CloseSend calls CloseSendFunc. +func (mock *KV_StateChangesClientMock) CloseSend() error { + callInfo := struct { + }{} + mock.lockCloseSend.Lock() + mock.calls.CloseSend = append(mock.calls.CloseSend, callInfo) + mock.lockCloseSend.Unlock() + if mock.CloseSendFunc == nil { + var ( + errOut error + ) + return errOut + } + return mock.CloseSendFunc() +} + +// CloseSendCalls gets all the calls that were made to CloseSend. +// Check the length with: +// +// len(mockedKV_StateChangesClient.CloseSendCalls()) +func (mock *KV_StateChangesClientMock) CloseSendCalls() []struct { +} { + var calls []struct { + } + mock.lockCloseSend.RLock() + calls = mock.calls.CloseSend + mock.lockCloseSend.RUnlock() + return calls +} + +// Context calls ContextFunc. +func (mock *KV_StateChangesClientMock) Context() context.Context { + callInfo := struct { + }{} + mock.lockContext.Lock() + mock.calls.Context = append(mock.calls.Context, callInfo) + mock.lockContext.Unlock() + if mock.ContextFunc == nil { + var ( + contextOut context.Context + ) + return contextOut + } + return mock.ContextFunc() +} + +// ContextCalls gets all the calls that were made to Context. +// Check the length with: +// +// len(mockedKV_StateChangesClient.ContextCalls()) +func (mock *KV_StateChangesClientMock) ContextCalls() []struct { +} { + var calls []struct { + } + mock.lockContext.RLock() + calls = mock.calls.Context + mock.lockContext.RUnlock() + return calls +} + +// Header calls HeaderFunc. +func (mock *KV_StateChangesClientMock) Header() (metadata.MD, error) { + callInfo := struct { + }{} + mock.lockHeader.Lock() + mock.calls.Header = append(mock.calls.Header, callInfo) + mock.lockHeader.Unlock() + if mock.HeaderFunc == nil { + var ( + mDOut metadata.MD + errOut error + ) + return mDOut, errOut + } + return mock.HeaderFunc() +} + +// HeaderCalls gets all the calls that were made to Header. +// Check the length with: +// +// len(mockedKV_StateChangesClient.HeaderCalls()) +func (mock *KV_StateChangesClientMock) HeaderCalls() []struct { +} { + var calls []struct { + } + mock.lockHeader.RLock() + calls = mock.calls.Header + mock.lockHeader.RUnlock() + return calls +} + +// Recv calls RecvFunc. +func (mock *KV_StateChangesClientMock) Recv() (*StateChangeBatch, error) { + callInfo := struct { + }{} + mock.lockRecv.Lock() + mock.calls.Recv = append(mock.calls.Recv, callInfo) + mock.lockRecv.Unlock() + if mock.RecvFunc == nil { + var ( + stateChangeBatchOut *StateChangeBatch + errOut error + ) + return stateChangeBatchOut, errOut + } + return mock.RecvFunc() +} + +// RecvCalls gets all the calls that were made to Recv. +// Check the length with: +// +// len(mockedKV_StateChangesClient.RecvCalls()) +func (mock *KV_StateChangesClientMock) RecvCalls() []struct { +} { + var calls []struct { + } + mock.lockRecv.RLock() + calls = mock.calls.Recv + mock.lockRecv.RUnlock() + return calls +} + +// RecvMsg calls RecvMsgFunc. +func (mock *KV_StateChangesClientMock) RecvMsg(m any) error { + callInfo := struct { + M any + }{ + M: m, + } + mock.lockRecvMsg.Lock() + mock.calls.RecvMsg = append(mock.calls.RecvMsg, callInfo) + mock.lockRecvMsg.Unlock() + if mock.RecvMsgFunc == nil { + var ( + errOut error + ) + return errOut + } + return mock.RecvMsgFunc(m) +} + +// RecvMsgCalls gets all the calls that were made to RecvMsg. +// Check the length with: +// +// len(mockedKV_StateChangesClient.RecvMsgCalls()) +func (mock *KV_StateChangesClientMock) RecvMsgCalls() []struct { + M any +} { + var calls []struct { + M any + } + mock.lockRecvMsg.RLock() + calls = mock.calls.RecvMsg + mock.lockRecvMsg.RUnlock() + return calls +} + +// SendMsg calls SendMsgFunc. +func (mock *KV_StateChangesClientMock) SendMsg(m any) error { + callInfo := struct { + M any + }{ + M: m, + } + mock.lockSendMsg.Lock() + mock.calls.SendMsg = append(mock.calls.SendMsg, callInfo) + mock.lockSendMsg.Unlock() + if mock.SendMsgFunc == nil { + var ( + errOut error + ) + return errOut + } + return mock.SendMsgFunc(m) +} + +// SendMsgCalls gets all the calls that were made to SendMsg. +// Check the length with: +// +// len(mockedKV_StateChangesClient.SendMsgCalls()) +func (mock *KV_StateChangesClientMock) SendMsgCalls() []struct { + M any +} { + var calls []struct { + M any + } + mock.lockSendMsg.RLock() + calls = mock.calls.SendMsg + mock.lockSendMsg.RUnlock() + return calls +} + +// Trailer calls TrailerFunc. +func (mock *KV_StateChangesClientMock) Trailer() metadata.MD { + callInfo := struct { + }{} + mock.lockTrailer.Lock() + mock.calls.Trailer = append(mock.calls.Trailer, callInfo) + mock.lockTrailer.Unlock() + if mock.TrailerFunc == nil { + var ( + mDOut metadata.MD + ) + return mDOut + } + return mock.TrailerFunc() +} + +// TrailerCalls gets all the calls that were made to Trailer. +// Check the length with: +// +// len(mockedKV_StateChangesClient.TrailerCalls()) +func (mock *KV_StateChangesClientMock) TrailerCalls() []struct { +} { + var calls []struct { + } + mock.lockTrailer.RLock() + calls = mock.calls.Trailer + mock.lockTrailer.RUnlock() + return calls +} diff --git a/erigon-lib/gointerfaces/remote/sort.go b/erigon-lib/gointerfaces/remote/sort.go new file mode 100644 index 00000000000..f61407bf0fd --- /dev/null +++ b/erigon-lib/gointerfaces/remote/sort.go @@ -0,0 +1,14 @@ +package remote + +import ( + "strings" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" +) + +func NodeInfoReplyCmp(i, j *types.NodeInfoReply) int { + if cmp := strings.Compare(i.Name, j.Name); cmp != 0 { + return cmp + } + return strings.Compare(i.Enode, j.Enode) +} diff --git a/erigon-lib/gointerfaces/remote/sort_test.go b/erigon-lib/gointerfaces/remote/sort_test.go new file mode 100644 index 00000000000..8a32e5a6e17 --- /dev/null +++ b/erigon-lib/gointerfaces/remote/sort_test.go @@ -0,0 +1,56 @@ +package remote_test + +import ( + "testing" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "github.com/stretchr/testify/assert" + "golang.org/x/exp/slices" +) + +func TestSort(t *testing.T) { + tests := []struct { + name string + got *remote.NodesInfoReply + want *remote.NodesInfoReply + }{ + { + name: "sort by name", + got: &remote.NodesInfoReply{ + NodesInfo: []*types.NodeInfoReply{ + {Name: "b", Enode: "c"}, + {Name: "a", Enode: "d"}, + }, + }, + want: &remote.NodesInfoReply{ + NodesInfo: []*types.NodeInfoReply{ + {Name: "a", Enode: "d"}, + {Name: "b", Enode: "c"}, + }, + }, + }, + { + name: "sort by enode", + got: &remote.NodesInfoReply{ + NodesInfo: []*types.NodeInfoReply{ + {Name: "a", Enode: "d"}, + {Name: "a", Enode: "c"}, + }, + }, + want: &remote.NodesInfoReply{ + NodesInfo: []*types.NodeInfoReply{ + {Name: "a", Enode: "c"}, + {Name: "a", Enode: "d"}, + }, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + + slices.SortFunc(tt.got.NodesInfo, remote.NodeInfoReplyCmp) + assert.Equal(t, tt.want, tt.got) + }) + } +} diff --git a/erigon-lib/gointerfaces/sentinel/sentinel.pb.go b/erigon-lib/gointerfaces/sentinel/sentinel.pb.go new file mode 100644 index 00000000000..0fc32fe89d8 --- /dev/null +++ b/erigon-lib/gointerfaces/sentinel/sentinel.pb.go @@ -0,0 +1,750 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: p2psentinel/sentinel.proto + +package sentinel + +import ( + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GossipType int32 + +const ( + // Global gossip topics. + GossipType_BeaconBlockGossipType GossipType = 0 + GossipType_AggregateAndProofGossipType GossipType = 1 + GossipType_VoluntaryExitGossipType GossipType = 2 + GossipType_ProposerSlashingGossipType GossipType = 3 + GossipType_AttesterSlashingGossipType GossipType = 4 + GossipType_BlobSidecarType GossipType = 5 + GossipType_BlsToExecutionChangeGossipType GossipType = 6 +) + +// Enum value maps for GossipType. +var ( + GossipType_name = map[int32]string{ + 0: "BeaconBlockGossipType", + 1: "AggregateAndProofGossipType", + 2: "VoluntaryExitGossipType", + 3: "ProposerSlashingGossipType", + 4: "AttesterSlashingGossipType", + 5: "BlobSidecarType", + 6: "BlsToExecutionChangeGossipType", + } + GossipType_value = map[string]int32{ + "BeaconBlockGossipType": 0, + "AggregateAndProofGossipType": 1, + "VoluntaryExitGossipType": 2, + "ProposerSlashingGossipType": 3, + "AttesterSlashingGossipType": 4, + "BlobSidecarType": 5, + "BlsToExecutionChangeGossipType": 6, + } +) + +func (x GossipType) Enum() *GossipType { + p := new(GossipType) + *p = x + return p +} + +func (x GossipType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GossipType) Descriptor() protoreflect.EnumDescriptor { + return file_p2psentinel_sentinel_proto_enumTypes[0].Descriptor() +} + +func (GossipType) Type() protoreflect.EnumType { + return &file_p2psentinel_sentinel_proto_enumTypes[0] +} + +func (x GossipType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GossipType.Descriptor instead. +func (GossipType) EnumDescriptor() ([]byte, []int) { + return file_p2psentinel_sentinel_proto_rawDescGZIP(), []int{0} +} + +type EmptyMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EmptyMessage) Reset() { + *x = EmptyMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentinel_sentinel_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EmptyMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EmptyMessage) ProtoMessage() {} + +func (x *EmptyMessage) ProtoReflect() protoreflect.Message { + mi := &file_p2psentinel_sentinel_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EmptyMessage.ProtoReflect.Descriptor instead. +func (*EmptyMessage) Descriptor() ([]byte, []int) { + return file_p2psentinel_sentinel_proto_rawDescGZIP(), []int{0} +} + +type Peer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pid string `protobuf:"bytes,1,opt,name=pid,proto3" json:"pid,omitempty"` +} + +func (x *Peer) Reset() { + *x = Peer{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentinel_sentinel_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Peer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Peer) ProtoMessage() {} + +func (x *Peer) ProtoReflect() protoreflect.Message { + mi := &file_p2psentinel_sentinel_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Peer.ProtoReflect.Descriptor instead. +func (*Peer) Descriptor() ([]byte, []int) { + return file_p2psentinel_sentinel_proto_rawDescGZIP(), []int{1} +} + +func (x *Peer) GetPid() string { + if x != nil { + return x.Pid + } + return "" +} + +type GossipData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` // SSZ encoded data + Type GossipType `protobuf:"varint,2,opt,name=type,proto3,enum=sentinel.GossipType" json:"type,omitempty"` + Peer *Peer `protobuf:"bytes,3,opt,name=peer,proto3,oneof" json:"peer,omitempty"` + BlobIndex *uint32 `protobuf:"varint,4,opt,name=blob_index,json=blobIndex,proto3,oneof" json:"blob_index,omitempty"` // Blob identifier for EIP4844 +} + +func (x *GossipData) Reset() { + *x = GossipData{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentinel_sentinel_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GossipData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GossipData) ProtoMessage() {} + +func (x *GossipData) ProtoReflect() protoreflect.Message { + mi := &file_p2psentinel_sentinel_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GossipData.ProtoReflect.Descriptor instead. +func (*GossipData) Descriptor() ([]byte, []int) { + return file_p2psentinel_sentinel_proto_rawDescGZIP(), []int{2} +} + +func (x *GossipData) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *GossipData) GetType() GossipType { + if x != nil { + return x.Type + } + return GossipType_BeaconBlockGossipType +} + +func (x *GossipData) GetPeer() *Peer { + if x != nil { + return x.Peer + } + return nil +} + +func (x *GossipData) GetBlobIndex() uint32 { + if x != nil && x.BlobIndex != nil { + return *x.BlobIndex + } + return 0 +} + +type Status struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ForkDigest uint32 `protobuf:"varint,1,opt,name=fork_digest,json=forkDigest,proto3" json:"fork_digest,omitempty"` // 4 bytes can be repressented in uint32. + FinalizedRoot *types.H256 `protobuf:"bytes,2,opt,name=finalized_root,json=finalizedRoot,proto3" json:"finalized_root,omitempty"` + FinalizedEpoch uint64 `protobuf:"varint,3,opt,name=finalized_epoch,json=finalizedEpoch,proto3" json:"finalized_epoch,omitempty"` + HeadRoot *types.H256 `protobuf:"bytes,4,opt,name=head_root,json=headRoot,proto3" json:"head_root,omitempty"` + HeadSlot uint64 `protobuf:"varint,5,opt,name=head_slot,json=headSlot,proto3" json:"head_slot,omitempty"` +} + +func (x *Status) Reset() { + *x = Status{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentinel_sentinel_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Status) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Status) ProtoMessage() {} + +func (x *Status) ProtoReflect() protoreflect.Message { + mi := &file_p2psentinel_sentinel_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Status.ProtoReflect.Descriptor instead. +func (*Status) Descriptor() ([]byte, []int) { + return file_p2psentinel_sentinel_proto_rawDescGZIP(), []int{3} +} + +func (x *Status) GetForkDigest() uint32 { + if x != nil { + return x.ForkDigest + } + return 0 +} + +func (x *Status) GetFinalizedRoot() *types.H256 { + if x != nil { + return x.FinalizedRoot + } + return nil +} + +func (x *Status) GetFinalizedEpoch() uint64 { + if x != nil { + return x.FinalizedEpoch + } + return 0 +} + +func (x *Status) GetHeadRoot() *types.H256 { + if x != nil { + return x.HeadRoot + } + return nil +} + +func (x *Status) GetHeadSlot() uint64 { + if x != nil { + return x.HeadSlot + } + return 0 +} + +type PeerCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Amount uint64 `protobuf:"varint,1,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *PeerCount) Reset() { + *x = PeerCount{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentinel_sentinel_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerCount) ProtoMessage() {} + +func (x *PeerCount) ProtoReflect() protoreflect.Message { + mi := &file_p2psentinel_sentinel_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerCount.ProtoReflect.Descriptor instead. +func (*PeerCount) Descriptor() ([]byte, []int) { + return file_p2psentinel_sentinel_proto_rawDescGZIP(), []int{4} +} + +func (x *PeerCount) GetAmount() uint64 { + if x != nil { + return x.Amount + } + return 0 +} + +type RequestData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` // SSZ encoded data + Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` +} + +func (x *RequestData) Reset() { + *x = RequestData{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentinel_sentinel_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestData) ProtoMessage() {} + +func (x *RequestData) ProtoReflect() protoreflect.Message { + mi := &file_p2psentinel_sentinel_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequestData.ProtoReflect.Descriptor instead. +func (*RequestData) Descriptor() ([]byte, []int) { + return file_p2psentinel_sentinel_proto_rawDescGZIP(), []int{5} +} + +func (x *RequestData) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *RequestData) GetTopic() string { + if x != nil { + return x.Topic + } + return "" +} + +type ResponseData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` // prefix-stripped SSZ encoded data + Error bool `protobuf:"varint,2,opt,name=error,proto3" json:"error,omitempty"` // did the peer encounter an error + Peer *Peer `protobuf:"bytes,3,opt,name=peer,proto3" json:"peer,omitempty"` +} + +func (x *ResponseData) Reset() { + *x = ResponseData{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentinel_sentinel_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponseData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseData) ProtoMessage() {} + +func (x *ResponseData) ProtoReflect() protoreflect.Message { + mi := &file_p2psentinel_sentinel_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResponseData.ProtoReflect.Descriptor instead. +func (*ResponseData) Descriptor() ([]byte, []int) { + return file_p2psentinel_sentinel_proto_rawDescGZIP(), []int{6} +} + +func (x *ResponseData) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *ResponseData) GetError() bool { + if x != nil { + return x.Error + } + return false +} + +func (x *ResponseData) GetPeer() *Peer { + if x != nil { + return x.Peer + } + return nil +} + +var File_p2psentinel_sentinel_proto protoreflect.FileDescriptor + +var file_p2psentinel_sentinel_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x70, 0x32, 0x70, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2f, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x1a, 0x11, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x0e, 0x0a, 0x0c, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x18, 0x0a, 0x04, 0x50, 0x65, 0x65, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x70, 0x69, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, + 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x27, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, + 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x09, 0x62, 0x6c, 0x6f, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xcd, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x12, 0x32, 0x0a, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0d, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x28, + 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x08, + 0x68, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x65, 0x61, 0x64, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x68, 0x65, 0x61, + 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x22, 0x23, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x22, 0x5c, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x22, 0x0a, + 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x52, 0x04, 0x70, 0x65, 0x65, + 0x72, 0x2a, 0xde, 0x01, 0x0a, 0x0a, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x19, 0x0a, 0x15, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x47, + 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, + 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, + 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x47, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x47, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x47, 0x6f, 0x73, + 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x6c, 0x6f, + 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x22, + 0x0a, 0x1e, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x10, 0x06, 0x32, 0x90, 0x04, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x12, + 0x41, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x47, 0x6f, 0x73, 0x73, + 0x69, 0x70, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e, + 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, + 0x30, 0x01, 0x12, 0x3c, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x15, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, + 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x35, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x2e, + 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, + 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x31, 0x0a, 0x07, 0x42, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x09, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x50, 0x65, 0x65, 0x72, + 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, + 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, + 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, + 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x34, 0x0a, 0x0a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x0e, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x1a, 0x16, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, + 0x65, 0x6c, 0x2e, 0x47, 0x6f, 0x73, 0x73, 0x69, 0x70, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, 0x2e, + 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x15, 0x5a, 0x13, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x69, + 0x6e, 0x65, 0x6c, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x65, 0x6c, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_p2psentinel_sentinel_proto_rawDescOnce sync.Once + file_p2psentinel_sentinel_proto_rawDescData = file_p2psentinel_sentinel_proto_rawDesc +) + +func file_p2psentinel_sentinel_proto_rawDescGZIP() []byte { + file_p2psentinel_sentinel_proto_rawDescOnce.Do(func() { + file_p2psentinel_sentinel_proto_rawDescData = protoimpl.X.CompressGZIP(file_p2psentinel_sentinel_proto_rawDescData) + }) + return file_p2psentinel_sentinel_proto_rawDescData +} + +var file_p2psentinel_sentinel_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_p2psentinel_sentinel_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_p2psentinel_sentinel_proto_goTypes = []interface{}{ + (GossipType)(0), // 0: sentinel.GossipType + (*EmptyMessage)(nil), // 1: sentinel.EmptyMessage + (*Peer)(nil), // 2: sentinel.Peer + (*GossipData)(nil), // 3: sentinel.GossipData + (*Status)(nil), // 4: sentinel.Status + (*PeerCount)(nil), // 5: sentinel.PeerCount + (*RequestData)(nil), // 6: sentinel.RequestData + (*ResponseData)(nil), // 7: sentinel.ResponseData + (*types.H256)(nil), // 8: types.H256 +} +var file_p2psentinel_sentinel_proto_depIdxs = []int32{ + 0, // 0: sentinel.GossipData.type:type_name -> sentinel.GossipType + 2, // 1: sentinel.GossipData.peer:type_name -> sentinel.Peer + 8, // 2: sentinel.Status.finalized_root:type_name -> types.H256 + 8, // 3: sentinel.Status.head_root:type_name -> types.H256 + 2, // 4: sentinel.ResponseData.peer:type_name -> sentinel.Peer + 1, // 5: sentinel.Sentinel.SubscribeGossip:input_type -> sentinel.EmptyMessage + 6, // 6: sentinel.Sentinel.SendRequest:input_type -> sentinel.RequestData + 4, // 7: sentinel.Sentinel.SetStatus:input_type -> sentinel.Status + 1, // 8: sentinel.Sentinel.GetPeers:input_type -> sentinel.EmptyMessage + 2, // 9: sentinel.Sentinel.BanPeer:input_type -> sentinel.Peer + 2, // 10: sentinel.Sentinel.UnbanPeer:input_type -> sentinel.Peer + 2, // 11: sentinel.Sentinel.PenalizePeer:input_type -> sentinel.Peer + 2, // 12: sentinel.Sentinel.RewardPeer:input_type -> sentinel.Peer + 3, // 13: sentinel.Sentinel.PublishGossip:input_type -> sentinel.GossipData + 3, // 14: sentinel.Sentinel.SubscribeGossip:output_type -> sentinel.GossipData + 7, // 15: sentinel.Sentinel.SendRequest:output_type -> sentinel.ResponseData + 1, // 16: sentinel.Sentinel.SetStatus:output_type -> sentinel.EmptyMessage + 5, // 17: sentinel.Sentinel.GetPeers:output_type -> sentinel.PeerCount + 1, // 18: sentinel.Sentinel.BanPeer:output_type -> sentinel.EmptyMessage + 1, // 19: sentinel.Sentinel.UnbanPeer:output_type -> sentinel.EmptyMessage + 1, // 20: sentinel.Sentinel.PenalizePeer:output_type -> sentinel.EmptyMessage + 1, // 21: sentinel.Sentinel.RewardPeer:output_type -> sentinel.EmptyMessage + 1, // 22: sentinel.Sentinel.PublishGossip:output_type -> sentinel.EmptyMessage + 14, // [14:23] is the sub-list for method output_type + 5, // [5:14] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_p2psentinel_sentinel_proto_init() } +func file_p2psentinel_sentinel_proto_init() { + if File_p2psentinel_sentinel_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_p2psentinel_sentinel_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EmptyMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentinel_sentinel_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Peer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentinel_sentinel_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GossipData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentinel_sentinel_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Status); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentinel_sentinel_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerCount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentinel_sentinel_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentinel_sentinel_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponseData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_p2psentinel_sentinel_proto_msgTypes[2].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_p2psentinel_sentinel_proto_rawDesc, + NumEnums: 1, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_p2psentinel_sentinel_proto_goTypes, + DependencyIndexes: file_p2psentinel_sentinel_proto_depIdxs, + EnumInfos: file_p2psentinel_sentinel_proto_enumTypes, + MessageInfos: file_p2psentinel_sentinel_proto_msgTypes, + }.Build() + File_p2psentinel_sentinel_proto = out.File + file_p2psentinel_sentinel_proto_rawDesc = nil + file_p2psentinel_sentinel_proto_goTypes = nil + file_p2psentinel_sentinel_proto_depIdxs = nil +} diff --git a/erigon-lib/gointerfaces/sentinel/sentinel_grpc.pb.go b/erigon-lib/gointerfaces/sentinel/sentinel_grpc.pb.go new file mode 100644 index 00000000000..a62786b600f --- /dev/null +++ b/erigon-lib/gointerfaces/sentinel/sentinel_grpc.pb.go @@ -0,0 +1,433 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.2 +// source: p2psentinel/sentinel.proto + +package sentinel + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + Sentinel_SubscribeGossip_FullMethodName = "/sentinel.Sentinel/SubscribeGossip" + Sentinel_SendRequest_FullMethodName = "/sentinel.Sentinel/SendRequest" + Sentinel_SetStatus_FullMethodName = "/sentinel.Sentinel/SetStatus" + Sentinel_GetPeers_FullMethodName = "/sentinel.Sentinel/GetPeers" + Sentinel_BanPeer_FullMethodName = "/sentinel.Sentinel/BanPeer" + Sentinel_UnbanPeer_FullMethodName = "/sentinel.Sentinel/UnbanPeer" + Sentinel_PenalizePeer_FullMethodName = "/sentinel.Sentinel/PenalizePeer" + Sentinel_RewardPeer_FullMethodName = "/sentinel.Sentinel/RewardPeer" + Sentinel_PublishGossip_FullMethodName = "/sentinel.Sentinel/PublishGossip" +) + +// SentinelClient is the client API for Sentinel service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type SentinelClient interface { + SubscribeGossip(ctx context.Context, in *EmptyMessage, opts ...grpc.CallOption) (Sentinel_SubscribeGossipClient, error) + SendRequest(ctx context.Context, in *RequestData, opts ...grpc.CallOption) (*ResponseData, error) + SetStatus(ctx context.Context, in *Status, opts ...grpc.CallOption) (*EmptyMessage, error) + GetPeers(ctx context.Context, in *EmptyMessage, opts ...grpc.CallOption) (*PeerCount, error) + BanPeer(ctx context.Context, in *Peer, opts ...grpc.CallOption) (*EmptyMessage, error) + UnbanPeer(ctx context.Context, in *Peer, opts ...grpc.CallOption) (*EmptyMessage, error) + PenalizePeer(ctx context.Context, in *Peer, opts ...grpc.CallOption) (*EmptyMessage, error) + RewardPeer(ctx context.Context, in *Peer, opts ...grpc.CallOption) (*EmptyMessage, error) + PublishGossip(ctx context.Context, in *GossipData, opts ...grpc.CallOption) (*EmptyMessage, error) +} + +type sentinelClient struct { + cc grpc.ClientConnInterface +} + +func NewSentinelClient(cc grpc.ClientConnInterface) SentinelClient { + return &sentinelClient{cc} +} + +func (c *sentinelClient) SubscribeGossip(ctx context.Context, in *EmptyMessage, opts ...grpc.CallOption) (Sentinel_SubscribeGossipClient, error) { + stream, err := c.cc.NewStream(ctx, &Sentinel_ServiceDesc.Streams[0], Sentinel_SubscribeGossip_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &sentinelSubscribeGossipClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Sentinel_SubscribeGossipClient interface { + Recv() (*GossipData, error) + grpc.ClientStream +} + +type sentinelSubscribeGossipClient struct { + grpc.ClientStream +} + +func (x *sentinelSubscribeGossipClient) Recv() (*GossipData, error) { + m := new(GossipData) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *sentinelClient) SendRequest(ctx context.Context, in *RequestData, opts ...grpc.CallOption) (*ResponseData, error) { + out := new(ResponseData) + err := c.cc.Invoke(ctx, Sentinel_SendRequest_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentinelClient) SetStatus(ctx context.Context, in *Status, opts ...grpc.CallOption) (*EmptyMessage, error) { + out := new(EmptyMessage) + err := c.cc.Invoke(ctx, Sentinel_SetStatus_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentinelClient) GetPeers(ctx context.Context, in *EmptyMessage, opts ...grpc.CallOption) (*PeerCount, error) { + out := new(PeerCount) + err := c.cc.Invoke(ctx, Sentinel_GetPeers_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentinelClient) BanPeer(ctx context.Context, in *Peer, opts ...grpc.CallOption) (*EmptyMessage, error) { + out := new(EmptyMessage) + err := c.cc.Invoke(ctx, Sentinel_BanPeer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentinelClient) UnbanPeer(ctx context.Context, in *Peer, opts ...grpc.CallOption) (*EmptyMessage, error) { + out := new(EmptyMessage) + err := c.cc.Invoke(ctx, Sentinel_UnbanPeer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentinelClient) PenalizePeer(ctx context.Context, in *Peer, opts ...grpc.CallOption) (*EmptyMessage, error) { + out := new(EmptyMessage) + err := c.cc.Invoke(ctx, Sentinel_PenalizePeer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentinelClient) RewardPeer(ctx context.Context, in *Peer, opts ...grpc.CallOption) (*EmptyMessage, error) { + out := new(EmptyMessage) + err := c.cc.Invoke(ctx, Sentinel_RewardPeer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentinelClient) PublishGossip(ctx context.Context, in *GossipData, opts ...grpc.CallOption) (*EmptyMessage, error) { + out := new(EmptyMessage) + err := c.cc.Invoke(ctx, Sentinel_PublishGossip_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SentinelServer is the server API for Sentinel service. +// All implementations must embed UnimplementedSentinelServer +// for forward compatibility +type SentinelServer interface { + SubscribeGossip(*EmptyMessage, Sentinel_SubscribeGossipServer) error + SendRequest(context.Context, *RequestData) (*ResponseData, error) + SetStatus(context.Context, *Status) (*EmptyMessage, error) + GetPeers(context.Context, *EmptyMessage) (*PeerCount, error) + BanPeer(context.Context, *Peer) (*EmptyMessage, error) + UnbanPeer(context.Context, *Peer) (*EmptyMessage, error) + PenalizePeer(context.Context, *Peer) (*EmptyMessage, error) + RewardPeer(context.Context, *Peer) (*EmptyMessage, error) + PublishGossip(context.Context, *GossipData) (*EmptyMessage, error) + mustEmbedUnimplementedSentinelServer() +} + +// UnimplementedSentinelServer must be embedded to have forward compatible implementations. +type UnimplementedSentinelServer struct { +} + +func (UnimplementedSentinelServer) SubscribeGossip(*EmptyMessage, Sentinel_SubscribeGossipServer) error { + return status.Errorf(codes.Unimplemented, "method SubscribeGossip not implemented") +} +func (UnimplementedSentinelServer) SendRequest(context.Context, *RequestData) (*ResponseData, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendRequest not implemented") +} +func (UnimplementedSentinelServer) SetStatus(context.Context, *Status) (*EmptyMessage, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetStatus not implemented") +} +func (UnimplementedSentinelServer) GetPeers(context.Context, *EmptyMessage) (*PeerCount, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPeers not implemented") +} +func (UnimplementedSentinelServer) BanPeer(context.Context, *Peer) (*EmptyMessage, error) { + return nil, status.Errorf(codes.Unimplemented, "method BanPeer not implemented") +} +func (UnimplementedSentinelServer) UnbanPeer(context.Context, *Peer) (*EmptyMessage, error) { + return nil, status.Errorf(codes.Unimplemented, "method UnbanPeer not implemented") +} +func (UnimplementedSentinelServer) PenalizePeer(context.Context, *Peer) (*EmptyMessage, error) { + return nil, status.Errorf(codes.Unimplemented, "method PenalizePeer not implemented") +} +func (UnimplementedSentinelServer) RewardPeer(context.Context, *Peer) (*EmptyMessage, error) { + return nil, status.Errorf(codes.Unimplemented, "method RewardPeer not implemented") +} +func (UnimplementedSentinelServer) PublishGossip(context.Context, *GossipData) (*EmptyMessage, error) { + return nil, status.Errorf(codes.Unimplemented, "method PublishGossip not implemented") +} +func (UnimplementedSentinelServer) mustEmbedUnimplementedSentinelServer() {} + +// UnsafeSentinelServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to SentinelServer will +// result in compilation errors. +type UnsafeSentinelServer interface { + mustEmbedUnimplementedSentinelServer() +} + +func RegisterSentinelServer(s grpc.ServiceRegistrar, srv SentinelServer) { + s.RegisterService(&Sentinel_ServiceDesc, srv) +} + +func _Sentinel_SubscribeGossip_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(EmptyMessage) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(SentinelServer).SubscribeGossip(m, &sentinelSubscribeGossipServer{stream}) +} + +type Sentinel_SubscribeGossipServer interface { + Send(*GossipData) error + grpc.ServerStream +} + +type sentinelSubscribeGossipServer struct { + grpc.ServerStream +} + +func (x *sentinelSubscribeGossipServer) Send(m *GossipData) error { + return x.ServerStream.SendMsg(m) +} + +func _Sentinel_SendRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RequestData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentinelServer).SendRequest(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentinel_SendRequest_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentinelServer).SendRequest(ctx, req.(*RequestData)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentinel_SetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Status) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentinelServer).SetStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentinel_SetStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentinelServer).SetStatus(ctx, req.(*Status)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentinel_GetPeers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EmptyMessage) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentinelServer).GetPeers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentinel_GetPeers_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentinelServer).GetPeers(ctx, req.(*EmptyMessage)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentinel_BanPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Peer) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentinelServer).BanPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentinel_BanPeer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentinelServer).BanPeer(ctx, req.(*Peer)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentinel_UnbanPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Peer) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentinelServer).UnbanPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentinel_UnbanPeer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentinelServer).UnbanPeer(ctx, req.(*Peer)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentinel_PenalizePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Peer) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentinelServer).PenalizePeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentinel_PenalizePeer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentinelServer).PenalizePeer(ctx, req.(*Peer)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentinel_RewardPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(Peer) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentinelServer).RewardPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentinel_RewardPeer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentinelServer).RewardPeer(ctx, req.(*Peer)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentinel_PublishGossip_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GossipData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentinelServer).PublishGossip(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentinel_PublishGossip_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentinelServer).PublishGossip(ctx, req.(*GossipData)) + } + return interceptor(ctx, in, info, handler) +} + +// Sentinel_ServiceDesc is the grpc.ServiceDesc for Sentinel service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Sentinel_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "sentinel.Sentinel", + HandlerType: (*SentinelServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SendRequest", + Handler: _Sentinel_SendRequest_Handler, + }, + { + MethodName: "SetStatus", + Handler: _Sentinel_SetStatus_Handler, + }, + { + MethodName: "GetPeers", + Handler: _Sentinel_GetPeers_Handler, + }, + { + MethodName: "BanPeer", + Handler: _Sentinel_BanPeer_Handler, + }, + { + MethodName: "UnbanPeer", + Handler: _Sentinel_UnbanPeer_Handler, + }, + { + MethodName: "PenalizePeer", + Handler: _Sentinel_PenalizePeer_Handler, + }, + { + MethodName: "RewardPeer", + Handler: _Sentinel_RewardPeer_Handler, + }, + { + MethodName: "PublishGossip", + Handler: _Sentinel_PublishGossip_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "SubscribeGossip", + Handler: _Sentinel_SubscribeGossip_Handler, + ServerStreams: true, + }, + }, + Metadata: "p2psentinel/sentinel.proto", +} diff --git a/erigon-lib/gointerfaces/sentry/mocks.go b/erigon-lib/gointerfaces/sentry/mocks.go new file mode 100644 index 00000000000..37a446b4470 --- /dev/null +++ b/erigon-lib/gointerfaces/sentry/mocks.go @@ -0,0 +1,1801 @@ +// Code generated by moq; DO NOT EDIT. +// github.com/matryer/moq + +package sentry + +import ( + context "context" + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + grpc "google.golang.org/grpc" + emptypb "google.golang.org/protobuf/types/known/emptypb" + sync "sync" +) + +// Ensure, that SentryServerMock does implement SentryServer. +// If this is not the case, regenerate this file with moq. +var _ SentryServer = &SentryServerMock{} + +// SentryServerMock is a mock implementation of SentryServer. +// +// func TestSomethingThatUsesSentryServer(t *testing.T) { +// +// // make and configure a mocked SentryServer +// mockedSentryServer := &SentryServerMock{ +// AddPeerFunc: func(contextMoqParam context.Context, addPeerRequest *AddPeerRequest) (*AddPeerReply, error) { +// panic("mock out the AddPeer method") +// }, +// HandShakeFunc: func(contextMoqParam context.Context, empty *emptypb.Empty) (*HandShakeReply, error) { +// panic("mock out the HandShake method") +// }, +// MessagesFunc: func(messagesRequest *MessagesRequest, sentry_MessagesServer Sentry_MessagesServer) error { +// panic("mock out the Messages method") +// }, +// NodeInfoFunc: func(contextMoqParam context.Context, empty *emptypb.Empty) (*types.NodeInfoReply, error) { +// panic("mock out the NodeInfo method") +// }, +// PeerByIdFunc: func(contextMoqParam context.Context, peerByIdRequest *PeerByIdRequest) (*PeerByIdReply, error) { +// panic("mock out the PeerById method") +// }, +// PeerCountFunc: func(contextMoqParam context.Context, peerCountRequest *PeerCountRequest) (*PeerCountReply, error) { +// panic("mock out the PeerCount method") +// }, +// PeerEventsFunc: func(peerEventsRequest *PeerEventsRequest, sentry_PeerEventsServer Sentry_PeerEventsServer) error { +// panic("mock out the PeerEvents method") +// }, +// PeerMinBlockFunc: func(contextMoqParam context.Context, peerMinBlockRequest *PeerMinBlockRequest) (*emptypb.Empty, error) { +// panic("mock out the PeerMinBlock method") +// }, +// PeersFunc: func(contextMoqParam context.Context, empty *emptypb.Empty) (*PeersReply, error) { +// panic("mock out the Peers method") +// }, +// PenalizePeerFunc: func(contextMoqParam context.Context, penalizePeerRequest *PenalizePeerRequest) (*emptypb.Empty, error) { +// panic("mock out the PenalizePeer method") +// }, +// SendMessageByIdFunc: func(contextMoqParam context.Context, sendMessageByIdRequest *SendMessageByIdRequest) (*SentPeers, error) { +// panic("mock out the SendMessageById method") +// }, +// SendMessageByMinBlockFunc: func(contextMoqParam context.Context, sendMessageByMinBlockRequest *SendMessageByMinBlockRequest) (*SentPeers, error) { +// panic("mock out the SendMessageByMinBlock method") +// }, +// SendMessageToAllFunc: func(contextMoqParam context.Context, outboundMessageData *OutboundMessageData) (*SentPeers, error) { +// panic("mock out the SendMessageToAll method") +// }, +// SendMessageToRandomPeersFunc: func(contextMoqParam context.Context, sendMessageToRandomPeersRequest *SendMessageToRandomPeersRequest) (*SentPeers, error) { +// panic("mock out the SendMessageToRandomPeers method") +// }, +// SetStatusFunc: func(contextMoqParam context.Context, statusData *StatusData) (*SetStatusReply, error) { +// panic("mock out the SetStatus method") +// }, +// mustEmbedUnimplementedSentryServerFunc: func() { +// panic("mock out the mustEmbedUnimplementedSentryServer method") +// }, +// } +// +// // use mockedSentryServer in code that requires SentryServer +// // and then make assertions. +// +// } +type SentryServerMock struct { + // AddPeerFunc mocks the AddPeer method. + AddPeerFunc func(contextMoqParam context.Context, addPeerRequest *AddPeerRequest) (*AddPeerReply, error) + + // HandShakeFunc mocks the HandShake method. + HandShakeFunc func(contextMoqParam context.Context, empty *emptypb.Empty) (*HandShakeReply, error) + + // MessagesFunc mocks the Messages method. + MessagesFunc func(messagesRequest *MessagesRequest, sentry_MessagesServer Sentry_MessagesServer) error + + // NodeInfoFunc mocks the NodeInfo method. + NodeInfoFunc func(contextMoqParam context.Context, empty *emptypb.Empty) (*types.NodeInfoReply, error) + + // PeerByIdFunc mocks the PeerById method. + PeerByIdFunc func(contextMoqParam context.Context, peerByIdRequest *PeerByIdRequest) (*PeerByIdReply, error) + + // PeerCountFunc mocks the PeerCount method. + PeerCountFunc func(contextMoqParam context.Context, peerCountRequest *PeerCountRequest) (*PeerCountReply, error) + + // PeerEventsFunc mocks the PeerEvents method. + PeerEventsFunc func(peerEventsRequest *PeerEventsRequest, sentry_PeerEventsServer Sentry_PeerEventsServer) error + + // PeerMinBlockFunc mocks the PeerMinBlock method. + PeerMinBlockFunc func(contextMoqParam context.Context, peerMinBlockRequest *PeerMinBlockRequest) (*emptypb.Empty, error) + + // PeersFunc mocks the Peers method. + PeersFunc func(contextMoqParam context.Context, empty *emptypb.Empty) (*PeersReply, error) + + // PenalizePeerFunc mocks the PenalizePeer method. + PenalizePeerFunc func(contextMoqParam context.Context, penalizePeerRequest *PenalizePeerRequest) (*emptypb.Empty, error) + + // SendMessageByIdFunc mocks the SendMessageById method. + SendMessageByIdFunc func(contextMoqParam context.Context, sendMessageByIdRequest *SendMessageByIdRequest) (*SentPeers, error) + + // SendMessageByMinBlockFunc mocks the SendMessageByMinBlock method. + SendMessageByMinBlockFunc func(contextMoqParam context.Context, sendMessageByMinBlockRequest *SendMessageByMinBlockRequest) (*SentPeers, error) + + // SendMessageToAllFunc mocks the SendMessageToAll method. + SendMessageToAllFunc func(contextMoqParam context.Context, outboundMessageData *OutboundMessageData) (*SentPeers, error) + + // SendMessageToRandomPeersFunc mocks the SendMessageToRandomPeers method. + SendMessageToRandomPeersFunc func(contextMoqParam context.Context, sendMessageToRandomPeersRequest *SendMessageToRandomPeersRequest) (*SentPeers, error) + + // SetStatusFunc mocks the SetStatus method. + SetStatusFunc func(contextMoqParam context.Context, statusData *StatusData) (*SetStatusReply, error) + + // mustEmbedUnimplementedSentryServerFunc mocks the mustEmbedUnimplementedSentryServer method. + mustEmbedUnimplementedSentryServerFunc func() + + // calls tracks calls to the methods. + calls struct { + // AddPeer holds details about calls to the AddPeer method. + AddPeer []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // AddPeerRequest is the addPeerRequest argument value. + AddPeerRequest *AddPeerRequest + } + // HandShake holds details about calls to the HandShake method. + HandShake []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // Empty is the empty argument value. + Empty *emptypb.Empty + } + // Messages holds details about calls to the Messages method. + Messages []struct { + // MessagesRequest is the messagesRequest argument value. + MessagesRequest *MessagesRequest + // Sentry_MessagesServer is the sentry_MessagesServer argument value. + Sentry_MessagesServer Sentry_MessagesServer + } + // NodeInfo holds details about calls to the NodeInfo method. + NodeInfo []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // Empty is the empty argument value. + Empty *emptypb.Empty + } + // PeerById holds details about calls to the PeerById method. + PeerById []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // PeerByIdRequest is the peerByIdRequest argument value. + PeerByIdRequest *PeerByIdRequest + } + // PeerCount holds details about calls to the PeerCount method. + PeerCount []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // PeerCountRequest is the peerCountRequest argument value. + PeerCountRequest *PeerCountRequest + } + // PeerEvents holds details about calls to the PeerEvents method. + PeerEvents []struct { + // PeerEventsRequest is the peerEventsRequest argument value. + PeerEventsRequest *PeerEventsRequest + // Sentry_PeerEventsServer is the sentry_PeerEventsServer argument value. + Sentry_PeerEventsServer Sentry_PeerEventsServer + } + // PeerMinBlock holds details about calls to the PeerMinBlock method. + PeerMinBlock []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // PeerMinBlockRequest is the peerMinBlockRequest argument value. + PeerMinBlockRequest *PeerMinBlockRequest + } + // Peers holds details about calls to the Peers method. + Peers []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // Empty is the empty argument value. + Empty *emptypb.Empty + } + // PenalizePeer holds details about calls to the PenalizePeer method. + PenalizePeer []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // PenalizePeerRequest is the penalizePeerRequest argument value. + PenalizePeerRequest *PenalizePeerRequest + } + // SendMessageById holds details about calls to the SendMessageById method. + SendMessageById []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // SendMessageByIdRequest is the sendMessageByIdRequest argument value. + SendMessageByIdRequest *SendMessageByIdRequest + } + // SendMessageByMinBlock holds details about calls to the SendMessageByMinBlock method. + SendMessageByMinBlock []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // SendMessageByMinBlockRequest is the sendMessageByMinBlockRequest argument value. + SendMessageByMinBlockRequest *SendMessageByMinBlockRequest + } + // SendMessageToAll holds details about calls to the SendMessageToAll method. + SendMessageToAll []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // OutboundMessageData is the outboundMessageData argument value. + OutboundMessageData *OutboundMessageData + } + // SendMessageToRandomPeers holds details about calls to the SendMessageToRandomPeers method. + SendMessageToRandomPeers []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // SendMessageToRandomPeersRequest is the sendMessageToRandomPeersRequest argument value. + SendMessageToRandomPeersRequest *SendMessageToRandomPeersRequest + } + // SetStatus holds details about calls to the SetStatus method. + SetStatus []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // StatusData is the statusData argument value. + StatusData *StatusData + } + // mustEmbedUnimplementedSentryServer holds details about calls to the mustEmbedUnimplementedSentryServer method. + mustEmbedUnimplementedSentryServer []struct { + } + } + lockAddPeer sync.RWMutex + lockHandShake sync.RWMutex + lockMessages sync.RWMutex + lockNodeInfo sync.RWMutex + lockPeerById sync.RWMutex + lockPeerCount sync.RWMutex + lockPeerEvents sync.RWMutex + lockPeerMinBlock sync.RWMutex + lockPeers sync.RWMutex + lockPenalizePeer sync.RWMutex + lockSendMessageById sync.RWMutex + lockSendMessageByMinBlock sync.RWMutex + lockSendMessageToAll sync.RWMutex + lockSendMessageToRandomPeers sync.RWMutex + lockSetStatus sync.RWMutex + lockmustEmbedUnimplementedSentryServer sync.RWMutex +} + +// AddPeer calls AddPeerFunc. +func (mock *SentryServerMock) AddPeer(contextMoqParam context.Context, addPeerRequest *AddPeerRequest) (*AddPeerReply, error) { + callInfo := struct { + ContextMoqParam context.Context + AddPeerRequest *AddPeerRequest + }{ + ContextMoqParam: contextMoqParam, + AddPeerRequest: addPeerRequest, + } + mock.lockAddPeer.Lock() + mock.calls.AddPeer = append(mock.calls.AddPeer, callInfo) + mock.lockAddPeer.Unlock() + if mock.AddPeerFunc == nil { + var ( + addPeerReplyOut *AddPeerReply + errOut error + ) + return addPeerReplyOut, errOut + } + return mock.AddPeerFunc(contextMoqParam, addPeerRequest) +} + +// AddPeerCalls gets all the calls that were made to AddPeer. +// Check the length with: +// +// len(mockedSentryServer.AddPeerCalls()) +func (mock *SentryServerMock) AddPeerCalls() []struct { + ContextMoqParam context.Context + AddPeerRequest *AddPeerRequest +} { + var calls []struct { + ContextMoqParam context.Context + AddPeerRequest *AddPeerRequest + } + mock.lockAddPeer.RLock() + calls = mock.calls.AddPeer + mock.lockAddPeer.RUnlock() + return calls +} + +// HandShake calls HandShakeFunc. +func (mock *SentryServerMock) HandShake(contextMoqParam context.Context, empty *emptypb.Empty) (*HandShakeReply, error) { + callInfo := struct { + ContextMoqParam context.Context + Empty *emptypb.Empty + }{ + ContextMoqParam: contextMoqParam, + Empty: empty, + } + mock.lockHandShake.Lock() + mock.calls.HandShake = append(mock.calls.HandShake, callInfo) + mock.lockHandShake.Unlock() + if mock.HandShakeFunc == nil { + var ( + handShakeReplyOut *HandShakeReply + errOut error + ) + return handShakeReplyOut, errOut + } + return mock.HandShakeFunc(contextMoqParam, empty) +} + +// HandShakeCalls gets all the calls that were made to HandShake. +// Check the length with: +// +// len(mockedSentryServer.HandShakeCalls()) +func (mock *SentryServerMock) HandShakeCalls() []struct { + ContextMoqParam context.Context + Empty *emptypb.Empty +} { + var calls []struct { + ContextMoqParam context.Context + Empty *emptypb.Empty + } + mock.lockHandShake.RLock() + calls = mock.calls.HandShake + mock.lockHandShake.RUnlock() + return calls +} + +// Messages calls MessagesFunc. +func (mock *SentryServerMock) Messages(messagesRequest *MessagesRequest, sentry_MessagesServer Sentry_MessagesServer) error { + callInfo := struct { + MessagesRequest *MessagesRequest + Sentry_MessagesServer Sentry_MessagesServer + }{ + MessagesRequest: messagesRequest, + Sentry_MessagesServer: sentry_MessagesServer, + } + mock.lockMessages.Lock() + mock.calls.Messages = append(mock.calls.Messages, callInfo) + mock.lockMessages.Unlock() + if mock.MessagesFunc == nil { + var ( + errOut error + ) + return errOut + } + return mock.MessagesFunc(messagesRequest, sentry_MessagesServer) +} + +// MessagesCalls gets all the calls that were made to Messages. +// Check the length with: +// +// len(mockedSentryServer.MessagesCalls()) +func (mock *SentryServerMock) MessagesCalls() []struct { + MessagesRequest *MessagesRequest + Sentry_MessagesServer Sentry_MessagesServer +} { + var calls []struct { + MessagesRequest *MessagesRequest + Sentry_MessagesServer Sentry_MessagesServer + } + mock.lockMessages.RLock() + calls = mock.calls.Messages + mock.lockMessages.RUnlock() + return calls +} + +// NodeInfo calls NodeInfoFunc. +func (mock *SentryServerMock) NodeInfo(contextMoqParam context.Context, empty *emptypb.Empty) (*types.NodeInfoReply, error) { + callInfo := struct { + ContextMoqParam context.Context + Empty *emptypb.Empty + }{ + ContextMoqParam: contextMoqParam, + Empty: empty, + } + mock.lockNodeInfo.Lock() + mock.calls.NodeInfo = append(mock.calls.NodeInfo, callInfo) + mock.lockNodeInfo.Unlock() + if mock.NodeInfoFunc == nil { + var ( + nodeInfoReplyOut *types.NodeInfoReply + errOut error + ) + return nodeInfoReplyOut, errOut + } + return mock.NodeInfoFunc(contextMoqParam, empty) +} + +// NodeInfoCalls gets all the calls that were made to NodeInfo. +// Check the length with: +// +// len(mockedSentryServer.NodeInfoCalls()) +func (mock *SentryServerMock) NodeInfoCalls() []struct { + ContextMoqParam context.Context + Empty *emptypb.Empty +} { + var calls []struct { + ContextMoqParam context.Context + Empty *emptypb.Empty + } + mock.lockNodeInfo.RLock() + calls = mock.calls.NodeInfo + mock.lockNodeInfo.RUnlock() + return calls +} + +// PeerById calls PeerByIdFunc. +func (mock *SentryServerMock) PeerById(contextMoqParam context.Context, peerByIdRequest *PeerByIdRequest) (*PeerByIdReply, error) { + callInfo := struct { + ContextMoqParam context.Context + PeerByIdRequest *PeerByIdRequest + }{ + ContextMoqParam: contextMoqParam, + PeerByIdRequest: peerByIdRequest, + } + mock.lockPeerById.Lock() + mock.calls.PeerById = append(mock.calls.PeerById, callInfo) + mock.lockPeerById.Unlock() + if mock.PeerByIdFunc == nil { + var ( + peerByIdReplyOut *PeerByIdReply + errOut error + ) + return peerByIdReplyOut, errOut + } + return mock.PeerByIdFunc(contextMoqParam, peerByIdRequest) +} + +// PeerByIdCalls gets all the calls that were made to PeerById. +// Check the length with: +// +// len(mockedSentryServer.PeerByIdCalls()) +func (mock *SentryServerMock) PeerByIdCalls() []struct { + ContextMoqParam context.Context + PeerByIdRequest *PeerByIdRequest +} { + var calls []struct { + ContextMoqParam context.Context + PeerByIdRequest *PeerByIdRequest + } + mock.lockPeerById.RLock() + calls = mock.calls.PeerById + mock.lockPeerById.RUnlock() + return calls +} + +// PeerCount calls PeerCountFunc. +func (mock *SentryServerMock) PeerCount(contextMoqParam context.Context, peerCountRequest *PeerCountRequest) (*PeerCountReply, error) { + callInfo := struct { + ContextMoqParam context.Context + PeerCountRequest *PeerCountRequest + }{ + ContextMoqParam: contextMoqParam, + PeerCountRequest: peerCountRequest, + } + mock.lockPeerCount.Lock() + mock.calls.PeerCount = append(mock.calls.PeerCount, callInfo) + mock.lockPeerCount.Unlock() + if mock.PeerCountFunc == nil { + var ( + peerCountReplyOut *PeerCountReply + errOut error + ) + return peerCountReplyOut, errOut + } + return mock.PeerCountFunc(contextMoqParam, peerCountRequest) +} + +// PeerCountCalls gets all the calls that were made to PeerCount. +// Check the length with: +// +// len(mockedSentryServer.PeerCountCalls()) +func (mock *SentryServerMock) PeerCountCalls() []struct { + ContextMoqParam context.Context + PeerCountRequest *PeerCountRequest +} { + var calls []struct { + ContextMoqParam context.Context + PeerCountRequest *PeerCountRequest + } + mock.lockPeerCount.RLock() + calls = mock.calls.PeerCount + mock.lockPeerCount.RUnlock() + return calls +} + +// PeerEvents calls PeerEventsFunc. +func (mock *SentryServerMock) PeerEvents(peerEventsRequest *PeerEventsRequest, sentry_PeerEventsServer Sentry_PeerEventsServer) error { + callInfo := struct { + PeerEventsRequest *PeerEventsRequest + Sentry_PeerEventsServer Sentry_PeerEventsServer + }{ + PeerEventsRequest: peerEventsRequest, + Sentry_PeerEventsServer: sentry_PeerEventsServer, + } + mock.lockPeerEvents.Lock() + mock.calls.PeerEvents = append(mock.calls.PeerEvents, callInfo) + mock.lockPeerEvents.Unlock() + if mock.PeerEventsFunc == nil { + var ( + errOut error + ) + return errOut + } + return mock.PeerEventsFunc(peerEventsRequest, sentry_PeerEventsServer) +} + +// PeerEventsCalls gets all the calls that were made to PeerEvents. +// Check the length with: +// +// len(mockedSentryServer.PeerEventsCalls()) +func (mock *SentryServerMock) PeerEventsCalls() []struct { + PeerEventsRequest *PeerEventsRequest + Sentry_PeerEventsServer Sentry_PeerEventsServer +} { + var calls []struct { + PeerEventsRequest *PeerEventsRequest + Sentry_PeerEventsServer Sentry_PeerEventsServer + } + mock.lockPeerEvents.RLock() + calls = mock.calls.PeerEvents + mock.lockPeerEvents.RUnlock() + return calls +} + +// PeerMinBlock calls PeerMinBlockFunc. +func (mock *SentryServerMock) PeerMinBlock(contextMoqParam context.Context, peerMinBlockRequest *PeerMinBlockRequest) (*emptypb.Empty, error) { + callInfo := struct { + ContextMoqParam context.Context + PeerMinBlockRequest *PeerMinBlockRequest + }{ + ContextMoqParam: contextMoqParam, + PeerMinBlockRequest: peerMinBlockRequest, + } + mock.lockPeerMinBlock.Lock() + mock.calls.PeerMinBlock = append(mock.calls.PeerMinBlock, callInfo) + mock.lockPeerMinBlock.Unlock() + if mock.PeerMinBlockFunc == nil { + var ( + emptyOut *emptypb.Empty + errOut error + ) + return emptyOut, errOut + } + return mock.PeerMinBlockFunc(contextMoqParam, peerMinBlockRequest) +} + +// PeerMinBlockCalls gets all the calls that were made to PeerMinBlock. +// Check the length with: +// +// len(mockedSentryServer.PeerMinBlockCalls()) +func (mock *SentryServerMock) PeerMinBlockCalls() []struct { + ContextMoqParam context.Context + PeerMinBlockRequest *PeerMinBlockRequest +} { + var calls []struct { + ContextMoqParam context.Context + PeerMinBlockRequest *PeerMinBlockRequest + } + mock.lockPeerMinBlock.RLock() + calls = mock.calls.PeerMinBlock + mock.lockPeerMinBlock.RUnlock() + return calls +} + +// Peers calls PeersFunc. +func (mock *SentryServerMock) Peers(contextMoqParam context.Context, empty *emptypb.Empty) (*PeersReply, error) { + callInfo := struct { + ContextMoqParam context.Context + Empty *emptypb.Empty + }{ + ContextMoqParam: contextMoqParam, + Empty: empty, + } + mock.lockPeers.Lock() + mock.calls.Peers = append(mock.calls.Peers, callInfo) + mock.lockPeers.Unlock() + if mock.PeersFunc == nil { + var ( + peersReplyOut *PeersReply + errOut error + ) + return peersReplyOut, errOut + } + return mock.PeersFunc(contextMoqParam, empty) +} + +// PeersCalls gets all the calls that were made to Peers. +// Check the length with: +// +// len(mockedSentryServer.PeersCalls()) +func (mock *SentryServerMock) PeersCalls() []struct { + ContextMoqParam context.Context + Empty *emptypb.Empty +} { + var calls []struct { + ContextMoqParam context.Context + Empty *emptypb.Empty + } + mock.lockPeers.RLock() + calls = mock.calls.Peers + mock.lockPeers.RUnlock() + return calls +} + +// PenalizePeer calls PenalizePeerFunc. +func (mock *SentryServerMock) PenalizePeer(contextMoqParam context.Context, penalizePeerRequest *PenalizePeerRequest) (*emptypb.Empty, error) { + callInfo := struct { + ContextMoqParam context.Context + PenalizePeerRequest *PenalizePeerRequest + }{ + ContextMoqParam: contextMoqParam, + PenalizePeerRequest: penalizePeerRequest, + } + mock.lockPenalizePeer.Lock() + mock.calls.PenalizePeer = append(mock.calls.PenalizePeer, callInfo) + mock.lockPenalizePeer.Unlock() + if mock.PenalizePeerFunc == nil { + var ( + emptyOut *emptypb.Empty + errOut error + ) + return emptyOut, errOut + } + return mock.PenalizePeerFunc(contextMoqParam, penalizePeerRequest) +} + +// PenalizePeerCalls gets all the calls that were made to PenalizePeer. +// Check the length with: +// +// len(mockedSentryServer.PenalizePeerCalls()) +func (mock *SentryServerMock) PenalizePeerCalls() []struct { + ContextMoqParam context.Context + PenalizePeerRequest *PenalizePeerRequest +} { + var calls []struct { + ContextMoqParam context.Context + PenalizePeerRequest *PenalizePeerRequest + } + mock.lockPenalizePeer.RLock() + calls = mock.calls.PenalizePeer + mock.lockPenalizePeer.RUnlock() + return calls +} + +// SendMessageById calls SendMessageByIdFunc. +func (mock *SentryServerMock) SendMessageById(contextMoqParam context.Context, sendMessageByIdRequest *SendMessageByIdRequest) (*SentPeers, error) { + callInfo := struct { + ContextMoqParam context.Context + SendMessageByIdRequest *SendMessageByIdRequest + }{ + ContextMoqParam: contextMoqParam, + SendMessageByIdRequest: sendMessageByIdRequest, + } + mock.lockSendMessageById.Lock() + mock.calls.SendMessageById = append(mock.calls.SendMessageById, callInfo) + mock.lockSendMessageById.Unlock() + if mock.SendMessageByIdFunc == nil { + var ( + sentPeersOut *SentPeers + errOut error + ) + return sentPeersOut, errOut + } + return mock.SendMessageByIdFunc(contextMoqParam, sendMessageByIdRequest) +} + +// SendMessageByIdCalls gets all the calls that were made to SendMessageById. +// Check the length with: +// +// len(mockedSentryServer.SendMessageByIdCalls()) +func (mock *SentryServerMock) SendMessageByIdCalls() []struct { + ContextMoqParam context.Context + SendMessageByIdRequest *SendMessageByIdRequest +} { + var calls []struct { + ContextMoqParam context.Context + SendMessageByIdRequest *SendMessageByIdRequest + } + mock.lockSendMessageById.RLock() + calls = mock.calls.SendMessageById + mock.lockSendMessageById.RUnlock() + return calls +} + +// SendMessageByMinBlock calls SendMessageByMinBlockFunc. +func (mock *SentryServerMock) SendMessageByMinBlock(contextMoqParam context.Context, sendMessageByMinBlockRequest *SendMessageByMinBlockRequest) (*SentPeers, error) { + callInfo := struct { + ContextMoqParam context.Context + SendMessageByMinBlockRequest *SendMessageByMinBlockRequest + }{ + ContextMoqParam: contextMoqParam, + SendMessageByMinBlockRequest: sendMessageByMinBlockRequest, + } + mock.lockSendMessageByMinBlock.Lock() + mock.calls.SendMessageByMinBlock = append(mock.calls.SendMessageByMinBlock, callInfo) + mock.lockSendMessageByMinBlock.Unlock() + if mock.SendMessageByMinBlockFunc == nil { + var ( + sentPeersOut *SentPeers + errOut error + ) + return sentPeersOut, errOut + } + return mock.SendMessageByMinBlockFunc(contextMoqParam, sendMessageByMinBlockRequest) +} + +// SendMessageByMinBlockCalls gets all the calls that were made to SendMessageByMinBlock. +// Check the length with: +// +// len(mockedSentryServer.SendMessageByMinBlockCalls()) +func (mock *SentryServerMock) SendMessageByMinBlockCalls() []struct { + ContextMoqParam context.Context + SendMessageByMinBlockRequest *SendMessageByMinBlockRequest +} { + var calls []struct { + ContextMoqParam context.Context + SendMessageByMinBlockRequest *SendMessageByMinBlockRequest + } + mock.lockSendMessageByMinBlock.RLock() + calls = mock.calls.SendMessageByMinBlock + mock.lockSendMessageByMinBlock.RUnlock() + return calls +} + +// SendMessageToAll calls SendMessageToAllFunc. +func (mock *SentryServerMock) SendMessageToAll(contextMoqParam context.Context, outboundMessageData *OutboundMessageData) (*SentPeers, error) { + callInfo := struct { + ContextMoqParam context.Context + OutboundMessageData *OutboundMessageData + }{ + ContextMoqParam: contextMoqParam, + OutboundMessageData: outboundMessageData, + } + mock.lockSendMessageToAll.Lock() + mock.calls.SendMessageToAll = append(mock.calls.SendMessageToAll, callInfo) + mock.lockSendMessageToAll.Unlock() + if mock.SendMessageToAllFunc == nil { + var ( + sentPeersOut *SentPeers + errOut error + ) + return sentPeersOut, errOut + } + return mock.SendMessageToAllFunc(contextMoqParam, outboundMessageData) +} + +// SendMessageToAllCalls gets all the calls that were made to SendMessageToAll. +// Check the length with: +// +// len(mockedSentryServer.SendMessageToAllCalls()) +func (mock *SentryServerMock) SendMessageToAllCalls() []struct { + ContextMoqParam context.Context + OutboundMessageData *OutboundMessageData +} { + var calls []struct { + ContextMoqParam context.Context + OutboundMessageData *OutboundMessageData + } + mock.lockSendMessageToAll.RLock() + calls = mock.calls.SendMessageToAll + mock.lockSendMessageToAll.RUnlock() + return calls +} + +// SendMessageToRandomPeers calls SendMessageToRandomPeersFunc. +func (mock *SentryServerMock) SendMessageToRandomPeers(contextMoqParam context.Context, sendMessageToRandomPeersRequest *SendMessageToRandomPeersRequest) (*SentPeers, error) { + callInfo := struct { + ContextMoqParam context.Context + SendMessageToRandomPeersRequest *SendMessageToRandomPeersRequest + }{ + ContextMoqParam: contextMoqParam, + SendMessageToRandomPeersRequest: sendMessageToRandomPeersRequest, + } + mock.lockSendMessageToRandomPeers.Lock() + mock.calls.SendMessageToRandomPeers = append(mock.calls.SendMessageToRandomPeers, callInfo) + mock.lockSendMessageToRandomPeers.Unlock() + if mock.SendMessageToRandomPeersFunc == nil { + var ( + sentPeersOut *SentPeers + errOut error + ) + return sentPeersOut, errOut + } + return mock.SendMessageToRandomPeersFunc(contextMoqParam, sendMessageToRandomPeersRequest) +} + +// SendMessageToRandomPeersCalls gets all the calls that were made to SendMessageToRandomPeers. +// Check the length with: +// +// len(mockedSentryServer.SendMessageToRandomPeersCalls()) +func (mock *SentryServerMock) SendMessageToRandomPeersCalls() []struct { + ContextMoqParam context.Context + SendMessageToRandomPeersRequest *SendMessageToRandomPeersRequest +} { + var calls []struct { + ContextMoqParam context.Context + SendMessageToRandomPeersRequest *SendMessageToRandomPeersRequest + } + mock.lockSendMessageToRandomPeers.RLock() + calls = mock.calls.SendMessageToRandomPeers + mock.lockSendMessageToRandomPeers.RUnlock() + return calls +} + +// SetStatus calls SetStatusFunc. +func (mock *SentryServerMock) SetStatus(contextMoqParam context.Context, statusData *StatusData) (*SetStatusReply, error) { + callInfo := struct { + ContextMoqParam context.Context + StatusData *StatusData + }{ + ContextMoqParam: contextMoqParam, + StatusData: statusData, + } + mock.lockSetStatus.Lock() + mock.calls.SetStatus = append(mock.calls.SetStatus, callInfo) + mock.lockSetStatus.Unlock() + if mock.SetStatusFunc == nil { + var ( + setStatusReplyOut *SetStatusReply + errOut error + ) + return setStatusReplyOut, errOut + } + return mock.SetStatusFunc(contextMoqParam, statusData) +} + +// SetStatusCalls gets all the calls that were made to SetStatus. +// Check the length with: +// +// len(mockedSentryServer.SetStatusCalls()) +func (mock *SentryServerMock) SetStatusCalls() []struct { + ContextMoqParam context.Context + StatusData *StatusData +} { + var calls []struct { + ContextMoqParam context.Context + StatusData *StatusData + } + mock.lockSetStatus.RLock() + calls = mock.calls.SetStatus + mock.lockSetStatus.RUnlock() + return calls +} + +// mustEmbedUnimplementedSentryServer calls mustEmbedUnimplementedSentryServerFunc. +func (mock *SentryServerMock) mustEmbedUnimplementedSentryServer() { + callInfo := struct { + }{} + mock.lockmustEmbedUnimplementedSentryServer.Lock() + mock.calls.mustEmbedUnimplementedSentryServer = append(mock.calls.mustEmbedUnimplementedSentryServer, callInfo) + mock.lockmustEmbedUnimplementedSentryServer.Unlock() + if mock.mustEmbedUnimplementedSentryServerFunc == nil { + return + } + mock.mustEmbedUnimplementedSentryServerFunc() +} + +// mustEmbedUnimplementedSentryServerCalls gets all the calls that were made to mustEmbedUnimplementedSentryServer. +// Check the length with: +// +// len(mockedSentryServer.mustEmbedUnimplementedSentryServerCalls()) +func (mock *SentryServerMock) mustEmbedUnimplementedSentryServerCalls() []struct { +} { + var calls []struct { + } + mock.lockmustEmbedUnimplementedSentryServer.RLock() + calls = mock.calls.mustEmbedUnimplementedSentryServer + mock.lockmustEmbedUnimplementedSentryServer.RUnlock() + return calls +} + +// Ensure, that SentryClientMock does implement SentryClient. +// If this is not the case, regenerate this file with moq. +var _ SentryClient = &SentryClientMock{} + +// SentryClientMock is a mock implementation of SentryClient. +// +// func TestSomethingThatUsesSentryClient(t *testing.T) { +// +// // make and configure a mocked SentryClient +// mockedSentryClient := &SentryClientMock{ +// AddPeerFunc: func(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) { +// panic("mock out the AddPeer method") +// }, +// HandShakeFunc: func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HandShakeReply, error) { +// panic("mock out the HandShake method") +// }, +// MessagesFunc: func(ctx context.Context, in *MessagesRequest, opts ...grpc.CallOption) (Sentry_MessagesClient, error) { +// panic("mock out the Messages method") +// }, +// NodeInfoFunc: func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.NodeInfoReply, error) { +// panic("mock out the NodeInfo method") +// }, +// PeerByIdFunc: func(ctx context.Context, in *PeerByIdRequest, opts ...grpc.CallOption) (*PeerByIdReply, error) { +// panic("mock out the PeerById method") +// }, +// PeerCountFunc: func(ctx context.Context, in *PeerCountRequest, opts ...grpc.CallOption) (*PeerCountReply, error) { +// panic("mock out the PeerCount method") +// }, +// PeerEventsFunc: func(ctx context.Context, in *PeerEventsRequest, opts ...grpc.CallOption) (Sentry_PeerEventsClient, error) { +// panic("mock out the PeerEvents method") +// }, +// PeerMinBlockFunc: func(ctx context.Context, in *PeerMinBlockRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { +// panic("mock out the PeerMinBlock method") +// }, +// PeersFunc: func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PeersReply, error) { +// panic("mock out the Peers method") +// }, +// PenalizePeerFunc: func(ctx context.Context, in *PenalizePeerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { +// panic("mock out the PenalizePeer method") +// }, +// SendMessageByIdFunc: func(ctx context.Context, in *SendMessageByIdRequest, opts ...grpc.CallOption) (*SentPeers, error) { +// panic("mock out the SendMessageById method") +// }, +// SendMessageByMinBlockFunc: func(ctx context.Context, in *SendMessageByMinBlockRequest, opts ...grpc.CallOption) (*SentPeers, error) { +// panic("mock out the SendMessageByMinBlock method") +// }, +// SendMessageToAllFunc: func(ctx context.Context, in *OutboundMessageData, opts ...grpc.CallOption) (*SentPeers, error) { +// panic("mock out the SendMessageToAll method") +// }, +// SendMessageToRandomPeersFunc: func(ctx context.Context, in *SendMessageToRandomPeersRequest, opts ...grpc.CallOption) (*SentPeers, error) { +// panic("mock out the SendMessageToRandomPeers method") +// }, +// SetStatusFunc: func(ctx context.Context, in *StatusData, opts ...grpc.CallOption) (*SetStatusReply, error) { +// panic("mock out the SetStatus method") +// }, +// } +// +// // use mockedSentryClient in code that requires SentryClient +// // and then make assertions. +// +// } +type SentryClientMock struct { + // AddPeerFunc mocks the AddPeer method. + AddPeerFunc func(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) + + // HandShakeFunc mocks the HandShake method. + HandShakeFunc func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HandShakeReply, error) + + // MessagesFunc mocks the Messages method. + MessagesFunc func(ctx context.Context, in *MessagesRequest, opts ...grpc.CallOption) (Sentry_MessagesClient, error) + + // NodeInfoFunc mocks the NodeInfo method. + NodeInfoFunc func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.NodeInfoReply, error) + + // PeerByIdFunc mocks the PeerById method. + PeerByIdFunc func(ctx context.Context, in *PeerByIdRequest, opts ...grpc.CallOption) (*PeerByIdReply, error) + + // PeerCountFunc mocks the PeerCount method. + PeerCountFunc func(ctx context.Context, in *PeerCountRequest, opts ...grpc.CallOption) (*PeerCountReply, error) + + // PeerEventsFunc mocks the PeerEvents method. + PeerEventsFunc func(ctx context.Context, in *PeerEventsRequest, opts ...grpc.CallOption) (Sentry_PeerEventsClient, error) + + // PeerMinBlockFunc mocks the PeerMinBlock method. + PeerMinBlockFunc func(ctx context.Context, in *PeerMinBlockRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + + // PeersFunc mocks the Peers method. + PeersFunc func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PeersReply, error) + + // PenalizePeerFunc mocks the PenalizePeer method. + PenalizePeerFunc func(ctx context.Context, in *PenalizePeerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + + // SendMessageByIdFunc mocks the SendMessageById method. + SendMessageByIdFunc func(ctx context.Context, in *SendMessageByIdRequest, opts ...grpc.CallOption) (*SentPeers, error) + + // SendMessageByMinBlockFunc mocks the SendMessageByMinBlock method. + SendMessageByMinBlockFunc func(ctx context.Context, in *SendMessageByMinBlockRequest, opts ...grpc.CallOption) (*SentPeers, error) + + // SendMessageToAllFunc mocks the SendMessageToAll method. + SendMessageToAllFunc func(ctx context.Context, in *OutboundMessageData, opts ...grpc.CallOption) (*SentPeers, error) + + // SendMessageToRandomPeersFunc mocks the SendMessageToRandomPeers method. + SendMessageToRandomPeersFunc func(ctx context.Context, in *SendMessageToRandomPeersRequest, opts ...grpc.CallOption) (*SentPeers, error) + + // SetStatusFunc mocks the SetStatus method. + SetStatusFunc func(ctx context.Context, in *StatusData, opts ...grpc.CallOption) (*SetStatusReply, error) + + // calls tracks calls to the methods. + calls struct { + // AddPeer holds details about calls to the AddPeer method. + AddPeer []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *AddPeerRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // HandShake holds details about calls to the HandShake method. + HandShake []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *emptypb.Empty + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // Messages holds details about calls to the Messages method. + Messages []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *MessagesRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // NodeInfo holds details about calls to the NodeInfo method. + NodeInfo []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *emptypb.Empty + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // PeerById holds details about calls to the PeerById method. + PeerById []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *PeerByIdRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // PeerCount holds details about calls to the PeerCount method. + PeerCount []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *PeerCountRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // PeerEvents holds details about calls to the PeerEvents method. + PeerEvents []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *PeerEventsRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // PeerMinBlock holds details about calls to the PeerMinBlock method. + PeerMinBlock []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *PeerMinBlockRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // Peers holds details about calls to the Peers method. + Peers []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *emptypb.Empty + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // PenalizePeer holds details about calls to the PenalizePeer method. + PenalizePeer []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *PenalizePeerRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // SendMessageById holds details about calls to the SendMessageById method. + SendMessageById []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *SendMessageByIdRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // SendMessageByMinBlock holds details about calls to the SendMessageByMinBlock method. + SendMessageByMinBlock []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *SendMessageByMinBlockRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // SendMessageToAll holds details about calls to the SendMessageToAll method. + SendMessageToAll []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *OutboundMessageData + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // SendMessageToRandomPeers holds details about calls to the SendMessageToRandomPeers method. + SendMessageToRandomPeers []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *SendMessageToRandomPeersRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } + // SetStatus holds details about calls to the SetStatus method. + SetStatus []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *StatusData + // Opts is the opts argument value. + Opts []grpc.CallOption + } + } + lockAddPeer sync.RWMutex + lockHandShake sync.RWMutex + lockMessages sync.RWMutex + lockNodeInfo sync.RWMutex + lockPeerById sync.RWMutex + lockPeerCount sync.RWMutex + lockPeerEvents sync.RWMutex + lockPeerMinBlock sync.RWMutex + lockPeers sync.RWMutex + lockPenalizePeer sync.RWMutex + lockSendMessageById sync.RWMutex + lockSendMessageByMinBlock sync.RWMutex + lockSendMessageToAll sync.RWMutex + lockSendMessageToRandomPeers sync.RWMutex + lockSetStatus sync.RWMutex +} + +// AddPeer calls AddPeerFunc. +func (mock *SentryClientMock) AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) { + callInfo := struct { + Ctx context.Context + In *AddPeerRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockAddPeer.Lock() + mock.calls.AddPeer = append(mock.calls.AddPeer, callInfo) + mock.lockAddPeer.Unlock() + if mock.AddPeerFunc == nil { + var ( + addPeerReplyOut *AddPeerReply + errOut error + ) + return addPeerReplyOut, errOut + } + return mock.AddPeerFunc(ctx, in, opts...) +} + +// AddPeerCalls gets all the calls that were made to AddPeer. +// Check the length with: +// +// len(mockedSentryClient.AddPeerCalls()) +func (mock *SentryClientMock) AddPeerCalls() []struct { + Ctx context.Context + In *AddPeerRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *AddPeerRequest + Opts []grpc.CallOption + } + mock.lockAddPeer.RLock() + calls = mock.calls.AddPeer + mock.lockAddPeer.RUnlock() + return calls +} + +// HandShake calls HandShakeFunc. +func (mock *SentryClientMock) HandShake(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HandShakeReply, error) { + callInfo := struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockHandShake.Lock() + mock.calls.HandShake = append(mock.calls.HandShake, callInfo) + mock.lockHandShake.Unlock() + if mock.HandShakeFunc == nil { + var ( + handShakeReplyOut *HandShakeReply + errOut error + ) + return handShakeReplyOut, errOut + } + return mock.HandShakeFunc(ctx, in, opts...) +} + +// HandShakeCalls gets all the calls that were made to HandShake. +// Check the length with: +// +// len(mockedSentryClient.HandShakeCalls()) +func (mock *SentryClientMock) HandShakeCalls() []struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption + } + mock.lockHandShake.RLock() + calls = mock.calls.HandShake + mock.lockHandShake.RUnlock() + return calls +} + +// Messages calls MessagesFunc. +func (mock *SentryClientMock) Messages(ctx context.Context, in *MessagesRequest, opts ...grpc.CallOption) (Sentry_MessagesClient, error) { + callInfo := struct { + Ctx context.Context + In *MessagesRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockMessages.Lock() + mock.calls.Messages = append(mock.calls.Messages, callInfo) + mock.lockMessages.Unlock() + if mock.MessagesFunc == nil { + var ( + sentry_MessagesClientOut Sentry_MessagesClient + errOut error + ) + return sentry_MessagesClientOut, errOut + } + return mock.MessagesFunc(ctx, in, opts...) +} + +// MessagesCalls gets all the calls that were made to Messages. +// Check the length with: +// +// len(mockedSentryClient.MessagesCalls()) +func (mock *SentryClientMock) MessagesCalls() []struct { + Ctx context.Context + In *MessagesRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *MessagesRequest + Opts []grpc.CallOption + } + mock.lockMessages.RLock() + calls = mock.calls.Messages + mock.lockMessages.RUnlock() + return calls +} + +// NodeInfo calls NodeInfoFunc. +func (mock *SentryClientMock) NodeInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.NodeInfoReply, error) { + callInfo := struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockNodeInfo.Lock() + mock.calls.NodeInfo = append(mock.calls.NodeInfo, callInfo) + mock.lockNodeInfo.Unlock() + if mock.NodeInfoFunc == nil { + var ( + nodeInfoReplyOut *types.NodeInfoReply + errOut error + ) + return nodeInfoReplyOut, errOut + } + return mock.NodeInfoFunc(ctx, in, opts...) +} + +// NodeInfoCalls gets all the calls that were made to NodeInfo. +// Check the length with: +// +// len(mockedSentryClient.NodeInfoCalls()) +func (mock *SentryClientMock) NodeInfoCalls() []struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption + } + mock.lockNodeInfo.RLock() + calls = mock.calls.NodeInfo + mock.lockNodeInfo.RUnlock() + return calls +} + +// PeerById calls PeerByIdFunc. +func (mock *SentryClientMock) PeerById(ctx context.Context, in *PeerByIdRequest, opts ...grpc.CallOption) (*PeerByIdReply, error) { + callInfo := struct { + Ctx context.Context + In *PeerByIdRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockPeerById.Lock() + mock.calls.PeerById = append(mock.calls.PeerById, callInfo) + mock.lockPeerById.Unlock() + if mock.PeerByIdFunc == nil { + var ( + peerByIdReplyOut *PeerByIdReply + errOut error + ) + return peerByIdReplyOut, errOut + } + return mock.PeerByIdFunc(ctx, in, opts...) +} + +// PeerByIdCalls gets all the calls that were made to PeerById. +// Check the length with: +// +// len(mockedSentryClient.PeerByIdCalls()) +func (mock *SentryClientMock) PeerByIdCalls() []struct { + Ctx context.Context + In *PeerByIdRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *PeerByIdRequest + Opts []grpc.CallOption + } + mock.lockPeerById.RLock() + calls = mock.calls.PeerById + mock.lockPeerById.RUnlock() + return calls +} + +// PeerCount calls PeerCountFunc. +func (mock *SentryClientMock) PeerCount(ctx context.Context, in *PeerCountRequest, opts ...grpc.CallOption) (*PeerCountReply, error) { + callInfo := struct { + Ctx context.Context + In *PeerCountRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockPeerCount.Lock() + mock.calls.PeerCount = append(mock.calls.PeerCount, callInfo) + mock.lockPeerCount.Unlock() + if mock.PeerCountFunc == nil { + var ( + peerCountReplyOut *PeerCountReply + errOut error + ) + return peerCountReplyOut, errOut + } + return mock.PeerCountFunc(ctx, in, opts...) +} + +// PeerCountCalls gets all the calls that were made to PeerCount. +// Check the length with: +// +// len(mockedSentryClient.PeerCountCalls()) +func (mock *SentryClientMock) PeerCountCalls() []struct { + Ctx context.Context + In *PeerCountRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *PeerCountRequest + Opts []grpc.CallOption + } + mock.lockPeerCount.RLock() + calls = mock.calls.PeerCount + mock.lockPeerCount.RUnlock() + return calls +} + +// PeerEvents calls PeerEventsFunc. +func (mock *SentryClientMock) PeerEvents(ctx context.Context, in *PeerEventsRequest, opts ...grpc.CallOption) (Sentry_PeerEventsClient, error) { + callInfo := struct { + Ctx context.Context + In *PeerEventsRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockPeerEvents.Lock() + mock.calls.PeerEvents = append(mock.calls.PeerEvents, callInfo) + mock.lockPeerEvents.Unlock() + if mock.PeerEventsFunc == nil { + var ( + sentry_PeerEventsClientOut Sentry_PeerEventsClient + errOut error + ) + return sentry_PeerEventsClientOut, errOut + } + return mock.PeerEventsFunc(ctx, in, opts...) +} + +// PeerEventsCalls gets all the calls that were made to PeerEvents. +// Check the length with: +// +// len(mockedSentryClient.PeerEventsCalls()) +func (mock *SentryClientMock) PeerEventsCalls() []struct { + Ctx context.Context + In *PeerEventsRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *PeerEventsRequest + Opts []grpc.CallOption + } + mock.lockPeerEvents.RLock() + calls = mock.calls.PeerEvents + mock.lockPeerEvents.RUnlock() + return calls +} + +// PeerMinBlock calls PeerMinBlockFunc. +func (mock *SentryClientMock) PeerMinBlock(ctx context.Context, in *PeerMinBlockRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + callInfo := struct { + Ctx context.Context + In *PeerMinBlockRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockPeerMinBlock.Lock() + mock.calls.PeerMinBlock = append(mock.calls.PeerMinBlock, callInfo) + mock.lockPeerMinBlock.Unlock() + if mock.PeerMinBlockFunc == nil { + var ( + emptyOut *emptypb.Empty + errOut error + ) + return emptyOut, errOut + } + return mock.PeerMinBlockFunc(ctx, in, opts...) +} + +// PeerMinBlockCalls gets all the calls that were made to PeerMinBlock. +// Check the length with: +// +// len(mockedSentryClient.PeerMinBlockCalls()) +func (mock *SentryClientMock) PeerMinBlockCalls() []struct { + Ctx context.Context + In *PeerMinBlockRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *PeerMinBlockRequest + Opts []grpc.CallOption + } + mock.lockPeerMinBlock.RLock() + calls = mock.calls.PeerMinBlock + mock.lockPeerMinBlock.RUnlock() + return calls +} + +// Peers calls PeersFunc. +func (mock *SentryClientMock) Peers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PeersReply, error) { + callInfo := struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockPeers.Lock() + mock.calls.Peers = append(mock.calls.Peers, callInfo) + mock.lockPeers.Unlock() + if mock.PeersFunc == nil { + var ( + peersReplyOut *PeersReply + errOut error + ) + return peersReplyOut, errOut + } + return mock.PeersFunc(ctx, in, opts...) +} + +// PeersCalls gets all the calls that were made to Peers. +// Check the length with: +// +// len(mockedSentryClient.PeersCalls()) +func (mock *SentryClientMock) PeersCalls() []struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *emptypb.Empty + Opts []grpc.CallOption + } + mock.lockPeers.RLock() + calls = mock.calls.Peers + mock.lockPeers.RUnlock() + return calls +} + +// PenalizePeer calls PenalizePeerFunc. +func (mock *SentryClientMock) PenalizePeer(ctx context.Context, in *PenalizePeerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + callInfo := struct { + Ctx context.Context + In *PenalizePeerRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockPenalizePeer.Lock() + mock.calls.PenalizePeer = append(mock.calls.PenalizePeer, callInfo) + mock.lockPenalizePeer.Unlock() + if mock.PenalizePeerFunc == nil { + var ( + emptyOut *emptypb.Empty + errOut error + ) + return emptyOut, errOut + } + return mock.PenalizePeerFunc(ctx, in, opts...) +} + +// PenalizePeerCalls gets all the calls that were made to PenalizePeer. +// Check the length with: +// +// len(mockedSentryClient.PenalizePeerCalls()) +func (mock *SentryClientMock) PenalizePeerCalls() []struct { + Ctx context.Context + In *PenalizePeerRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *PenalizePeerRequest + Opts []grpc.CallOption + } + mock.lockPenalizePeer.RLock() + calls = mock.calls.PenalizePeer + mock.lockPenalizePeer.RUnlock() + return calls +} + +// SendMessageById calls SendMessageByIdFunc. +func (mock *SentryClientMock) SendMessageById(ctx context.Context, in *SendMessageByIdRequest, opts ...grpc.CallOption) (*SentPeers, error) { + callInfo := struct { + Ctx context.Context + In *SendMessageByIdRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockSendMessageById.Lock() + mock.calls.SendMessageById = append(mock.calls.SendMessageById, callInfo) + mock.lockSendMessageById.Unlock() + if mock.SendMessageByIdFunc == nil { + var ( + sentPeersOut *SentPeers + errOut error + ) + return sentPeersOut, errOut + } + return mock.SendMessageByIdFunc(ctx, in, opts...) +} + +// SendMessageByIdCalls gets all the calls that were made to SendMessageById. +// Check the length with: +// +// len(mockedSentryClient.SendMessageByIdCalls()) +func (mock *SentryClientMock) SendMessageByIdCalls() []struct { + Ctx context.Context + In *SendMessageByIdRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *SendMessageByIdRequest + Opts []grpc.CallOption + } + mock.lockSendMessageById.RLock() + calls = mock.calls.SendMessageById + mock.lockSendMessageById.RUnlock() + return calls +} + +// SendMessageByMinBlock calls SendMessageByMinBlockFunc. +func (mock *SentryClientMock) SendMessageByMinBlock(ctx context.Context, in *SendMessageByMinBlockRequest, opts ...grpc.CallOption) (*SentPeers, error) { + callInfo := struct { + Ctx context.Context + In *SendMessageByMinBlockRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockSendMessageByMinBlock.Lock() + mock.calls.SendMessageByMinBlock = append(mock.calls.SendMessageByMinBlock, callInfo) + mock.lockSendMessageByMinBlock.Unlock() + if mock.SendMessageByMinBlockFunc == nil { + var ( + sentPeersOut *SentPeers + errOut error + ) + return sentPeersOut, errOut + } + return mock.SendMessageByMinBlockFunc(ctx, in, opts...) +} + +// SendMessageByMinBlockCalls gets all the calls that were made to SendMessageByMinBlock. +// Check the length with: +// +// len(mockedSentryClient.SendMessageByMinBlockCalls()) +func (mock *SentryClientMock) SendMessageByMinBlockCalls() []struct { + Ctx context.Context + In *SendMessageByMinBlockRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *SendMessageByMinBlockRequest + Opts []grpc.CallOption + } + mock.lockSendMessageByMinBlock.RLock() + calls = mock.calls.SendMessageByMinBlock + mock.lockSendMessageByMinBlock.RUnlock() + return calls +} + +// SendMessageToAll calls SendMessageToAllFunc. +func (mock *SentryClientMock) SendMessageToAll(ctx context.Context, in *OutboundMessageData, opts ...grpc.CallOption) (*SentPeers, error) { + callInfo := struct { + Ctx context.Context + In *OutboundMessageData + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockSendMessageToAll.Lock() + mock.calls.SendMessageToAll = append(mock.calls.SendMessageToAll, callInfo) + mock.lockSendMessageToAll.Unlock() + if mock.SendMessageToAllFunc == nil { + var ( + sentPeersOut *SentPeers + errOut error + ) + return sentPeersOut, errOut + } + return mock.SendMessageToAllFunc(ctx, in, opts...) +} + +// SendMessageToAllCalls gets all the calls that were made to SendMessageToAll. +// Check the length with: +// +// len(mockedSentryClient.SendMessageToAllCalls()) +func (mock *SentryClientMock) SendMessageToAllCalls() []struct { + Ctx context.Context + In *OutboundMessageData + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *OutboundMessageData + Opts []grpc.CallOption + } + mock.lockSendMessageToAll.RLock() + calls = mock.calls.SendMessageToAll + mock.lockSendMessageToAll.RUnlock() + return calls +} + +// SendMessageToRandomPeers calls SendMessageToRandomPeersFunc. +func (mock *SentryClientMock) SendMessageToRandomPeers(ctx context.Context, in *SendMessageToRandomPeersRequest, opts ...grpc.CallOption) (*SentPeers, error) { + callInfo := struct { + Ctx context.Context + In *SendMessageToRandomPeersRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockSendMessageToRandomPeers.Lock() + mock.calls.SendMessageToRandomPeers = append(mock.calls.SendMessageToRandomPeers, callInfo) + mock.lockSendMessageToRandomPeers.Unlock() + if mock.SendMessageToRandomPeersFunc == nil { + var ( + sentPeersOut *SentPeers + errOut error + ) + return sentPeersOut, errOut + } + return mock.SendMessageToRandomPeersFunc(ctx, in, opts...) +} + +// SendMessageToRandomPeersCalls gets all the calls that were made to SendMessageToRandomPeers. +// Check the length with: +// +// len(mockedSentryClient.SendMessageToRandomPeersCalls()) +func (mock *SentryClientMock) SendMessageToRandomPeersCalls() []struct { + Ctx context.Context + In *SendMessageToRandomPeersRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *SendMessageToRandomPeersRequest + Opts []grpc.CallOption + } + mock.lockSendMessageToRandomPeers.RLock() + calls = mock.calls.SendMessageToRandomPeers + mock.lockSendMessageToRandomPeers.RUnlock() + return calls +} + +// SetStatus calls SetStatusFunc. +func (mock *SentryClientMock) SetStatus(ctx context.Context, in *StatusData, opts ...grpc.CallOption) (*SetStatusReply, error) { + callInfo := struct { + Ctx context.Context + In *StatusData + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockSetStatus.Lock() + mock.calls.SetStatus = append(mock.calls.SetStatus, callInfo) + mock.lockSetStatus.Unlock() + if mock.SetStatusFunc == nil { + var ( + setStatusReplyOut *SetStatusReply + errOut error + ) + return setStatusReplyOut, errOut + } + return mock.SetStatusFunc(ctx, in, opts...) +} + +// SetStatusCalls gets all the calls that were made to SetStatus. +// Check the length with: +// +// len(mockedSentryClient.SetStatusCalls()) +func (mock *SentryClientMock) SetStatusCalls() []struct { + Ctx context.Context + In *StatusData + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *StatusData + Opts []grpc.CallOption + } + mock.lockSetStatus.RLock() + calls = mock.calls.SetStatus + mock.lockSetStatus.RUnlock() + return calls +} diff --git a/erigon-lib/gointerfaces/sentry/sentry.pb.go b/erigon-lib/gointerfaces/sentry/sentry.pb.go new file mode 100644 index 00000000000..87710f44292 --- /dev/null +++ b/erigon-lib/gointerfaces/sentry/sentry.pb.go @@ -0,0 +1,2177 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: p2psentry/sentry.proto + +package sentry + +import ( + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type MessageId int32 + +const ( + MessageId_STATUS_65 MessageId = 0 + MessageId_GET_BLOCK_HEADERS_65 MessageId = 1 + MessageId_BLOCK_HEADERS_65 MessageId = 2 + MessageId_BLOCK_HASHES_65 MessageId = 3 + MessageId_GET_BLOCK_BODIES_65 MessageId = 4 + MessageId_BLOCK_BODIES_65 MessageId = 5 + MessageId_GET_NODE_DATA_65 MessageId = 6 + MessageId_NODE_DATA_65 MessageId = 7 + MessageId_GET_RECEIPTS_65 MessageId = 8 + MessageId_RECEIPTS_65 MessageId = 9 + MessageId_NEW_BLOCK_HASHES_65 MessageId = 10 + MessageId_NEW_BLOCK_65 MessageId = 11 + MessageId_TRANSACTIONS_65 MessageId = 12 + MessageId_NEW_POOLED_TRANSACTION_HASHES_65 MessageId = 13 + MessageId_GET_POOLED_TRANSACTIONS_65 MessageId = 14 + MessageId_POOLED_TRANSACTIONS_65 MessageId = 15 + // eth64 announcement messages (no id) + MessageId_STATUS_66 MessageId = 17 + MessageId_NEW_BLOCK_HASHES_66 MessageId = 18 + MessageId_NEW_BLOCK_66 MessageId = 19 + MessageId_TRANSACTIONS_66 MessageId = 20 + // eth65 announcement messages (no id) + MessageId_NEW_POOLED_TRANSACTION_HASHES_66 MessageId = 21 + // eth66 messages with request-id + MessageId_GET_BLOCK_HEADERS_66 MessageId = 22 + MessageId_GET_BLOCK_BODIES_66 MessageId = 23 + MessageId_GET_NODE_DATA_66 MessageId = 24 + MessageId_GET_RECEIPTS_66 MessageId = 25 + MessageId_GET_POOLED_TRANSACTIONS_66 MessageId = 26 + MessageId_BLOCK_HEADERS_66 MessageId = 27 + MessageId_BLOCK_BODIES_66 MessageId = 28 + MessageId_NODE_DATA_66 MessageId = 29 + MessageId_RECEIPTS_66 MessageId = 30 + MessageId_POOLED_TRANSACTIONS_66 MessageId = 31 + // ======= eth 68 protocol =========== + MessageId_NEW_POOLED_TRANSACTION_HASHES_68 MessageId = 32 +) + +// Enum value maps for MessageId. +var ( + MessageId_name = map[int32]string{ + 0: "STATUS_65", + 1: "GET_BLOCK_HEADERS_65", + 2: "BLOCK_HEADERS_65", + 3: "BLOCK_HASHES_65", + 4: "GET_BLOCK_BODIES_65", + 5: "BLOCK_BODIES_65", + 6: "GET_NODE_DATA_65", + 7: "NODE_DATA_65", + 8: "GET_RECEIPTS_65", + 9: "RECEIPTS_65", + 10: "NEW_BLOCK_HASHES_65", + 11: "NEW_BLOCK_65", + 12: "TRANSACTIONS_65", + 13: "NEW_POOLED_TRANSACTION_HASHES_65", + 14: "GET_POOLED_TRANSACTIONS_65", + 15: "POOLED_TRANSACTIONS_65", + 17: "STATUS_66", + 18: "NEW_BLOCK_HASHES_66", + 19: "NEW_BLOCK_66", + 20: "TRANSACTIONS_66", + 21: "NEW_POOLED_TRANSACTION_HASHES_66", + 22: "GET_BLOCK_HEADERS_66", + 23: "GET_BLOCK_BODIES_66", + 24: "GET_NODE_DATA_66", + 25: "GET_RECEIPTS_66", + 26: "GET_POOLED_TRANSACTIONS_66", + 27: "BLOCK_HEADERS_66", + 28: "BLOCK_BODIES_66", + 29: "NODE_DATA_66", + 30: "RECEIPTS_66", + 31: "POOLED_TRANSACTIONS_66", + 32: "NEW_POOLED_TRANSACTION_HASHES_68", + } + MessageId_value = map[string]int32{ + "STATUS_65": 0, + "GET_BLOCK_HEADERS_65": 1, + "BLOCK_HEADERS_65": 2, + "BLOCK_HASHES_65": 3, + "GET_BLOCK_BODIES_65": 4, + "BLOCK_BODIES_65": 5, + "GET_NODE_DATA_65": 6, + "NODE_DATA_65": 7, + "GET_RECEIPTS_65": 8, + "RECEIPTS_65": 9, + "NEW_BLOCK_HASHES_65": 10, + "NEW_BLOCK_65": 11, + "TRANSACTIONS_65": 12, + "NEW_POOLED_TRANSACTION_HASHES_65": 13, + "GET_POOLED_TRANSACTIONS_65": 14, + "POOLED_TRANSACTIONS_65": 15, + "STATUS_66": 17, + "NEW_BLOCK_HASHES_66": 18, + "NEW_BLOCK_66": 19, + "TRANSACTIONS_66": 20, + "NEW_POOLED_TRANSACTION_HASHES_66": 21, + "GET_BLOCK_HEADERS_66": 22, + "GET_BLOCK_BODIES_66": 23, + "GET_NODE_DATA_66": 24, + "GET_RECEIPTS_66": 25, + "GET_POOLED_TRANSACTIONS_66": 26, + "BLOCK_HEADERS_66": 27, + "BLOCK_BODIES_66": 28, + "NODE_DATA_66": 29, + "RECEIPTS_66": 30, + "POOLED_TRANSACTIONS_66": 31, + "NEW_POOLED_TRANSACTION_HASHES_68": 32, + } +) + +func (x MessageId) Enum() *MessageId { + p := new(MessageId) + *p = x + return p +} + +func (x MessageId) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MessageId) Descriptor() protoreflect.EnumDescriptor { + return file_p2psentry_sentry_proto_enumTypes[0].Descriptor() +} + +func (MessageId) Type() protoreflect.EnumType { + return &file_p2psentry_sentry_proto_enumTypes[0] +} + +func (x MessageId) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MessageId.Descriptor instead. +func (MessageId) EnumDescriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{0} +} + +type PenaltyKind int32 + +const ( + PenaltyKind_Kick PenaltyKind = 0 +) + +// Enum value maps for PenaltyKind. +var ( + PenaltyKind_name = map[int32]string{ + 0: "Kick", + } + PenaltyKind_value = map[string]int32{ + "Kick": 0, + } +) + +func (x PenaltyKind) Enum() *PenaltyKind { + p := new(PenaltyKind) + *p = x + return p +} + +func (x PenaltyKind) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PenaltyKind) Descriptor() protoreflect.EnumDescriptor { + return file_p2psentry_sentry_proto_enumTypes[1].Descriptor() +} + +func (PenaltyKind) Type() protoreflect.EnumType { + return &file_p2psentry_sentry_proto_enumTypes[1] +} + +func (x PenaltyKind) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PenaltyKind.Descriptor instead. +func (PenaltyKind) EnumDescriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{1} +} + +type Protocol int32 + +const ( + Protocol_ETH65 Protocol = 0 + Protocol_ETH66 Protocol = 1 + Protocol_ETH67 Protocol = 2 + Protocol_ETH68 Protocol = 3 +) + +// Enum value maps for Protocol. +var ( + Protocol_name = map[int32]string{ + 0: "ETH65", + 1: "ETH66", + 2: "ETH67", + 3: "ETH68", + } + Protocol_value = map[string]int32{ + "ETH65": 0, + "ETH66": 1, + "ETH67": 2, + "ETH68": 3, + } +) + +func (x Protocol) Enum() *Protocol { + p := new(Protocol) + *p = x + return p +} + +func (x Protocol) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Protocol) Descriptor() protoreflect.EnumDescriptor { + return file_p2psentry_sentry_proto_enumTypes[2].Descriptor() +} + +func (Protocol) Type() protoreflect.EnumType { + return &file_p2psentry_sentry_proto_enumTypes[2] +} + +func (x Protocol) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Protocol.Descriptor instead. +func (Protocol) EnumDescriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{2} +} + +type PeerEvent_PeerEventId int32 + +const ( + // Happens after after a successful sub-protocol handshake. + PeerEvent_Connect PeerEvent_PeerEventId = 0 + PeerEvent_Disconnect PeerEvent_PeerEventId = 1 +) + +// Enum value maps for PeerEvent_PeerEventId. +var ( + PeerEvent_PeerEventId_name = map[int32]string{ + 0: "Connect", + 1: "Disconnect", + } + PeerEvent_PeerEventId_value = map[string]int32{ + "Connect": 0, + "Disconnect": 1, + } +) + +func (x PeerEvent_PeerEventId) Enum() *PeerEvent_PeerEventId { + p := new(PeerEvent_PeerEventId) + *p = x + return p +} + +func (x PeerEvent_PeerEventId) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PeerEvent_PeerEventId) Descriptor() protoreflect.EnumDescriptor { + return file_p2psentry_sentry_proto_enumTypes[3].Descriptor() +} + +func (PeerEvent_PeerEventId) Type() protoreflect.EnumType { + return &file_p2psentry_sentry_proto_enumTypes[3] +} + +func (x PeerEvent_PeerEventId) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PeerEvent_PeerEventId.Descriptor instead. +func (PeerEvent_PeerEventId) EnumDescriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{21, 0} +} + +type OutboundMessageData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id MessageId `protobuf:"varint,1,opt,name=id,proto3,enum=sentry.MessageId" json:"id,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *OutboundMessageData) Reset() { + *x = OutboundMessageData{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutboundMessageData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutboundMessageData) ProtoMessage() {} + +func (x *OutboundMessageData) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OutboundMessageData.ProtoReflect.Descriptor instead. +func (*OutboundMessageData) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{0} +} + +func (x *OutboundMessageData) GetId() MessageId { + if x != nil { + return x.Id + } + return MessageId_STATUS_65 +} + +func (x *OutboundMessageData) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +type SendMessageByMinBlockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *OutboundMessageData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + MinBlock uint64 `protobuf:"varint,2,opt,name=min_block,json=minBlock,proto3" json:"min_block,omitempty"` + MaxPeers uint64 `protobuf:"varint,3,opt,name=max_peers,json=maxPeers,proto3" json:"max_peers,omitempty"` +} + +func (x *SendMessageByMinBlockRequest) Reset() { + *x = SendMessageByMinBlockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageByMinBlockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageByMinBlockRequest) ProtoMessage() {} + +func (x *SendMessageByMinBlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendMessageByMinBlockRequest.ProtoReflect.Descriptor instead. +func (*SendMessageByMinBlockRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{1} +} + +func (x *SendMessageByMinBlockRequest) GetData() *OutboundMessageData { + if x != nil { + return x.Data + } + return nil +} + +func (x *SendMessageByMinBlockRequest) GetMinBlock() uint64 { + if x != nil { + return x.MinBlock + } + return 0 +} + +func (x *SendMessageByMinBlockRequest) GetMaxPeers() uint64 { + if x != nil { + return x.MaxPeers + } + return 0 +} + +type SendMessageByIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *OutboundMessageData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + PeerId *types.H512 `protobuf:"bytes,2,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` +} + +func (x *SendMessageByIdRequest) Reset() { + *x = SendMessageByIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageByIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageByIdRequest) ProtoMessage() {} + +func (x *SendMessageByIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendMessageByIdRequest.ProtoReflect.Descriptor instead. +func (*SendMessageByIdRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{2} +} + +func (x *SendMessageByIdRequest) GetData() *OutboundMessageData { + if x != nil { + return x.Data + } + return nil +} + +func (x *SendMessageByIdRequest) GetPeerId() *types.H512 { + if x != nil { + return x.PeerId + } + return nil +} + +type SendMessageToRandomPeersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Data *OutboundMessageData `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + MaxPeers uint64 `protobuf:"varint,2,opt,name=max_peers,json=maxPeers,proto3" json:"max_peers,omitempty"` +} + +func (x *SendMessageToRandomPeersRequest) Reset() { + *x = SendMessageToRandomPeersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendMessageToRandomPeersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendMessageToRandomPeersRequest) ProtoMessage() {} + +func (x *SendMessageToRandomPeersRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendMessageToRandomPeersRequest.ProtoReflect.Descriptor instead. +func (*SendMessageToRandomPeersRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{3} +} + +func (x *SendMessageToRandomPeersRequest) GetData() *OutboundMessageData { + if x != nil { + return x.Data + } + return nil +} + +func (x *SendMessageToRandomPeersRequest) GetMaxPeers() uint64 { + if x != nil { + return x.MaxPeers + } + return 0 +} + +type SentPeers struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peers []*types.H512 `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"` +} + +func (x *SentPeers) Reset() { + *x = SentPeers{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SentPeers) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SentPeers) ProtoMessage() {} + +func (x *SentPeers) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SentPeers.ProtoReflect.Descriptor instead. +func (*SentPeers) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{4} +} + +func (x *SentPeers) GetPeers() []*types.H512 { + if x != nil { + return x.Peers + } + return nil +} + +type PenalizePeerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeerId *types.H512 `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + Penalty PenaltyKind `protobuf:"varint,2,opt,name=penalty,proto3,enum=sentry.PenaltyKind" json:"penalty,omitempty"` +} + +func (x *PenalizePeerRequest) Reset() { + *x = PenalizePeerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PenalizePeerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PenalizePeerRequest) ProtoMessage() {} + +func (x *PenalizePeerRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PenalizePeerRequest.ProtoReflect.Descriptor instead. +func (*PenalizePeerRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{5} +} + +func (x *PenalizePeerRequest) GetPeerId() *types.H512 { + if x != nil { + return x.PeerId + } + return nil +} + +func (x *PenalizePeerRequest) GetPenalty() PenaltyKind { + if x != nil { + return x.Penalty + } + return PenaltyKind_Kick +} + +type PeerMinBlockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeerId *types.H512 `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + MinBlock uint64 `protobuf:"varint,2,opt,name=min_block,json=minBlock,proto3" json:"min_block,omitempty"` +} + +func (x *PeerMinBlockRequest) Reset() { + *x = PeerMinBlockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerMinBlockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerMinBlockRequest) ProtoMessage() {} + +func (x *PeerMinBlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerMinBlockRequest.ProtoReflect.Descriptor instead. +func (*PeerMinBlockRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{6} +} + +func (x *PeerMinBlockRequest) GetPeerId() *types.H512 { + if x != nil { + return x.PeerId + } + return nil +} + +func (x *PeerMinBlockRequest) GetMinBlock() uint64 { + if x != nil { + return x.MinBlock + } + return 0 +} + +type AddPeerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *AddPeerRequest) Reset() { + *x = AddPeerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddPeerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPeerRequest) ProtoMessage() {} + +func (x *AddPeerRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPeerRequest.ProtoReflect.Descriptor instead. +func (*AddPeerRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{7} +} + +func (x *AddPeerRequest) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type InboundMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id MessageId `protobuf:"varint,1,opt,name=id,proto3,enum=sentry.MessageId" json:"id,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + PeerId *types.H512 `protobuf:"bytes,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` +} + +func (x *InboundMessage) Reset() { + *x = InboundMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InboundMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InboundMessage) ProtoMessage() {} + +func (x *InboundMessage) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InboundMessage.ProtoReflect.Descriptor instead. +func (*InboundMessage) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{8} +} + +func (x *InboundMessage) GetId() MessageId { + if x != nil { + return x.Id + } + return MessageId_STATUS_65 +} + +func (x *InboundMessage) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *InboundMessage) GetPeerId() *types.H512 { + if x != nil { + return x.PeerId + } + return nil +} + +type Forks struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Genesis *types.H256 `protobuf:"bytes,1,opt,name=genesis,proto3" json:"genesis,omitempty"` + HeightForks []uint64 `protobuf:"varint,2,rep,packed,name=height_forks,json=heightForks,proto3" json:"height_forks,omitempty"` + TimeForks []uint64 `protobuf:"varint,3,rep,packed,name=time_forks,json=timeForks,proto3" json:"time_forks,omitempty"` +} + +func (x *Forks) Reset() { + *x = Forks{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Forks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Forks) ProtoMessage() {} + +func (x *Forks) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Forks.ProtoReflect.Descriptor instead. +func (*Forks) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{9} +} + +func (x *Forks) GetGenesis() *types.H256 { + if x != nil { + return x.Genesis + } + return nil +} + +func (x *Forks) GetHeightForks() []uint64 { + if x != nil { + return x.HeightForks + } + return nil +} + +func (x *Forks) GetTimeForks() []uint64 { + if x != nil { + return x.TimeForks + } + return nil +} + +type StatusData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NetworkId uint64 `protobuf:"varint,1,opt,name=network_id,json=networkId,proto3" json:"network_id,omitempty"` + TotalDifficulty *types.H256 `protobuf:"bytes,2,opt,name=total_difficulty,json=totalDifficulty,proto3" json:"total_difficulty,omitempty"` + BestHash *types.H256 `protobuf:"bytes,3,opt,name=best_hash,json=bestHash,proto3" json:"best_hash,omitempty"` + ForkData *Forks `protobuf:"bytes,4,opt,name=fork_data,json=forkData,proto3" json:"fork_data,omitempty"` + MaxBlockHeight uint64 `protobuf:"varint,5,opt,name=max_block_height,json=maxBlockHeight,proto3" json:"max_block_height,omitempty"` + MaxBlockTime uint64 `protobuf:"varint,6,opt,name=max_block_time,json=maxBlockTime,proto3" json:"max_block_time,omitempty"` +} + +func (x *StatusData) Reset() { + *x = StatusData{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatusData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusData) ProtoMessage() {} + +func (x *StatusData) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatusData.ProtoReflect.Descriptor instead. +func (*StatusData) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{10} +} + +func (x *StatusData) GetNetworkId() uint64 { + if x != nil { + return x.NetworkId + } + return 0 +} + +func (x *StatusData) GetTotalDifficulty() *types.H256 { + if x != nil { + return x.TotalDifficulty + } + return nil +} + +func (x *StatusData) GetBestHash() *types.H256 { + if x != nil { + return x.BestHash + } + return nil +} + +func (x *StatusData) GetForkData() *Forks { + if x != nil { + return x.ForkData + } + return nil +} + +func (x *StatusData) GetMaxBlockHeight() uint64 { + if x != nil { + return x.MaxBlockHeight + } + return 0 +} + +func (x *StatusData) GetMaxBlockTime() uint64 { + if x != nil { + return x.MaxBlockTime + } + return 0 +} + +type SetStatusReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetStatusReply) Reset() { + *x = SetStatusReply{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetStatusReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetStatusReply) ProtoMessage() {} + +func (x *SetStatusReply) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetStatusReply.ProtoReflect.Descriptor instead. +func (*SetStatusReply) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{11} +} + +type HandShakeReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Protocol Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=sentry.Protocol" json:"protocol,omitempty"` +} + +func (x *HandShakeReply) Reset() { + *x = HandShakeReply{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HandShakeReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HandShakeReply) ProtoMessage() {} + +func (x *HandShakeReply) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HandShakeReply.ProtoReflect.Descriptor instead. +func (*HandShakeReply) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{12} +} + +func (x *HandShakeReply) GetProtocol() Protocol { + if x != nil { + return x.Protocol + } + return Protocol_ETH65 +} + +type MessagesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ids []MessageId `protobuf:"varint,1,rep,packed,name=ids,proto3,enum=sentry.MessageId" json:"ids,omitempty"` +} + +func (x *MessagesRequest) Reset() { + *x = MessagesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessagesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessagesRequest) ProtoMessage() {} + +func (x *MessagesRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessagesRequest.ProtoReflect.Descriptor instead. +func (*MessagesRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{13} +} + +func (x *MessagesRequest) GetIds() []MessageId { + if x != nil { + return x.Ids + } + return nil +} + +type PeersReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peers []*types.PeerInfo `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"` +} + +func (x *PeersReply) Reset() { + *x = PeersReply{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeersReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeersReply) ProtoMessage() {} + +func (x *PeersReply) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeersReply.ProtoReflect.Descriptor instead. +func (*PeersReply) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{14} +} + +func (x *PeersReply) GetPeers() []*types.PeerInfo { + if x != nil { + return x.Peers + } + return nil +} + +type PeerCountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PeerCountRequest) Reset() { + *x = PeerCountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerCountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerCountRequest) ProtoMessage() {} + +func (x *PeerCountRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerCountRequest.ProtoReflect.Descriptor instead. +func (*PeerCountRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{15} +} + +type PeerCountPerProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Protocol Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=sentry.Protocol" json:"protocol,omitempty"` + Count uint64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *PeerCountPerProtocol) Reset() { + *x = PeerCountPerProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerCountPerProtocol) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerCountPerProtocol) ProtoMessage() {} + +func (x *PeerCountPerProtocol) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerCountPerProtocol.ProtoReflect.Descriptor instead. +func (*PeerCountPerProtocol) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{16} +} + +func (x *PeerCountPerProtocol) GetProtocol() Protocol { + if x != nil { + return x.Protocol + } + return Protocol_ETH65 +} + +func (x *PeerCountPerProtocol) GetCount() uint64 { + if x != nil { + return x.Count + } + return 0 +} + +type PeerCountReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count uint64 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` + CountsPerProtocol []*PeerCountPerProtocol `protobuf:"bytes,2,rep,name=counts_per_protocol,json=countsPerProtocol,proto3" json:"counts_per_protocol,omitempty"` +} + +func (x *PeerCountReply) Reset() { + *x = PeerCountReply{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerCountReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerCountReply) ProtoMessage() {} + +func (x *PeerCountReply) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerCountReply.ProtoReflect.Descriptor instead. +func (*PeerCountReply) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{17} +} + +func (x *PeerCountReply) GetCount() uint64 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *PeerCountReply) GetCountsPerProtocol() []*PeerCountPerProtocol { + if x != nil { + return x.CountsPerProtocol + } + return nil +} + +type PeerByIdRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeerId *types.H512 `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` +} + +func (x *PeerByIdRequest) Reset() { + *x = PeerByIdRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerByIdRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerByIdRequest) ProtoMessage() {} + +func (x *PeerByIdRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerByIdRequest.ProtoReflect.Descriptor instead. +func (*PeerByIdRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{18} +} + +func (x *PeerByIdRequest) GetPeerId() *types.H512 { + if x != nil { + return x.PeerId + } + return nil +} + +type PeerByIdReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Peer *types.PeerInfo `protobuf:"bytes,1,opt,name=peer,proto3,oneof" json:"peer,omitempty"` +} + +func (x *PeerByIdReply) Reset() { + *x = PeerByIdReply{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerByIdReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerByIdReply) ProtoMessage() {} + +func (x *PeerByIdReply) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerByIdReply.ProtoReflect.Descriptor instead. +func (*PeerByIdReply) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{19} +} + +func (x *PeerByIdReply) GetPeer() *types.PeerInfo { + if x != nil { + return x.Peer + } + return nil +} + +type PeerEventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PeerEventsRequest) Reset() { + *x = PeerEventsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerEventsRequest) ProtoMessage() {} + +func (x *PeerEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerEventsRequest.ProtoReflect.Descriptor instead. +func (*PeerEventsRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{20} +} + +type PeerEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeerId *types.H512 `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + EventId PeerEvent_PeerEventId `protobuf:"varint,2,opt,name=event_id,json=eventId,proto3,enum=sentry.PeerEvent_PeerEventId" json:"event_id,omitempty"` +} + +func (x *PeerEvent) Reset() { + *x = PeerEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerEvent) ProtoMessage() {} + +func (x *PeerEvent) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerEvent.ProtoReflect.Descriptor instead. +func (*PeerEvent) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{21} +} + +func (x *PeerEvent) GetPeerId() *types.H512 { + if x != nil { + return x.PeerId + } + return nil +} + +func (x *PeerEvent) GetEventId() PeerEvent_PeerEventId { + if x != nil { + return x.EventId + } + return PeerEvent_Connect +} + +type AddPeerReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` +} + +func (x *AddPeerReply) Reset() { + *x = AddPeerReply{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddPeerReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPeerReply) ProtoMessage() {} + +func (x *AddPeerReply) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPeerReply.ProtoReflect.Descriptor instead. +func (*AddPeerReply) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{22} +} + +func (x *AddPeerReply) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +var File_p2psentry_sentry_proto protoreflect.FileDescriptor + +var file_p2psentry_sentry_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x70, 0x32, 0x70, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2f, 0x73, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x4c, 0x0a, 0x13, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x89, + 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, + 0x4d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x0a, + 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x65, 0x72, 0x73, 0x22, 0x6f, 0x0a, 0x16, 0x53, 0x65, + 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4f, 0x75, 0x74, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, + 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x1f, 0x53, + 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x65, 0x72, 0x73, 0x22, 0x2e, 0x0a, 0x09, + 0x53, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x05, 0x70, 0x65, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x6a, 0x0a, 0x13, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, 0x31, + 0x32, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x65, 0x6e, + 0x61, 0x6c, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x4b, 0x69, 0x6e, 0x64, 0x52, + 0x07, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x22, 0x58, 0x0a, 0x13, 0x50, 0x65, 0x65, 0x72, + 0x4d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x24, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, + 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x22, 0x22, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x6d, 0x0a, 0x0e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x24, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, + 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x05, 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x25, + 0x0a, 0x07, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x07, 0x67, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, + 0x66, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, + 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0f, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x28, 0x0a, + 0x09, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x08, 0x62, + 0x65, 0x73, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6b, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6d, + 0x61, 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, + 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x3e, 0x0a, 0x0e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x36, 0x0a, 0x0f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x33, 0x0a, + 0x0a, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x70, + 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x70, 0x65, 0x65, + 0x72, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5a, 0x0a, 0x14, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2c, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x10, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x74, 0x0a, 0x0e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x13, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x37, 0x0a, 0x0f, 0x50, 0x65, 0x65, 0x72, + 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x07, 0x70, + 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, + 0x64, 0x22, 0x42, 0x0a, 0x0d, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x48, 0x00, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x70, 0x65, 0x65, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x09, 0x50, + 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, + 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x52, + 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x10, 0x01, 0x22, 0x28, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2a, 0x80, + 0x06, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x0d, 0x0a, 0x09, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x47, + 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x53, + 0x5f, 0x36, 0x35, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, + 0x45, 0x41, 0x44, 0x45, 0x52, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x03, + 0x12, 0x17, 0x0a, 0x13, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4f, + 0x44, 0x49, 0x45, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x42, 0x4f, 0x44, 0x49, 0x45, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x05, 0x12, 0x14, + 0x0a, 0x10, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, + 0x36, 0x35, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x36, 0x35, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, + 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x52, + 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, + 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, + 0x5f, 0x36, 0x35, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x36, 0x35, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x0c, 0x12, 0x24, 0x0a, 0x20, + 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, 0x36, 0x35, + 0x10, 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, + 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x35, + 0x10, 0x0e, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x0f, 0x12, 0x0d, + 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x11, 0x12, 0x17, 0x0a, + 0x13, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, + 0x53, 0x5f, 0x36, 0x36, 0x10, 0x12, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x36, 0x36, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x14, 0x12, 0x24, 0x0a, + 0x20, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, 0x36, + 0x36, 0x10, 0x15, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x16, 0x12, 0x17, 0x0a, + 0x13, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4f, 0x44, 0x49, 0x45, + 0x53, 0x5f, 0x36, 0x36, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x4f, + 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x36, 0x36, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, + 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x36, 0x10, + 0x19, 0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x36, 0x10, + 0x1a, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, + 0x52, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x42, 0x4f, 0x44, 0x49, 0x45, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1c, 0x12, 0x10, 0x0a, 0x0c, + 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x36, 0x36, 0x10, 0x1d, 0x12, 0x0f, + 0x0a, 0x0b, 0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1e, 0x12, + 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1f, 0x12, 0x24, 0x0a, 0x20, 0x4e, + 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, 0x36, 0x38, 0x10, + 0x20, 0x2a, 0x17, 0x0a, 0x0b, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x4b, 0x69, 0x6e, 0x64, + 0x12, 0x08, 0x0a, 0x04, 0x4b, 0x69, 0x63, 0x6b, 0x10, 0x00, 0x2a, 0x36, 0x0a, 0x08, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x54, 0x48, 0x36, 0x35, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x54, 0x48, 0x36, 0x36, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x45, 0x54, 0x48, 0x36, 0x37, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x54, 0x48, 0x36, 0x38, + 0x10, 0x03, 0x32, 0xdc, 0x07, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x37, 0x0a, + 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x50, + 0x65, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x73, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x3b, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x48, + 0x61, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x50, 0x0a, + 0x15, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4d, 0x69, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x24, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, + 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4d, 0x69, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, + 0x44, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, + 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, + 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x56, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, + 0x73, 0x12, 0x27, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x65, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, + 0x10, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x41, 0x6c, + 0x6c, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x11, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, + 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x17, 0x2e, + 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, + 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x01, + 0x12, 0x33, 0x0a, 0x05, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x73, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, + 0x12, 0x17, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x3c, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x37, + 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, + 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x38, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x3b, 0x73, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_p2psentry_sentry_proto_rawDescOnce sync.Once + file_p2psentry_sentry_proto_rawDescData = file_p2psentry_sentry_proto_rawDesc +) + +func file_p2psentry_sentry_proto_rawDescGZIP() []byte { + file_p2psentry_sentry_proto_rawDescOnce.Do(func() { + file_p2psentry_sentry_proto_rawDescData = protoimpl.X.CompressGZIP(file_p2psentry_sentry_proto_rawDescData) + }) + return file_p2psentry_sentry_proto_rawDescData +} + +var file_p2psentry_sentry_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_p2psentry_sentry_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_p2psentry_sentry_proto_goTypes = []interface{}{ + (MessageId)(0), // 0: sentry.MessageId + (PenaltyKind)(0), // 1: sentry.PenaltyKind + (Protocol)(0), // 2: sentry.Protocol + (PeerEvent_PeerEventId)(0), // 3: sentry.PeerEvent.PeerEventId + (*OutboundMessageData)(nil), // 4: sentry.OutboundMessageData + (*SendMessageByMinBlockRequest)(nil), // 5: sentry.SendMessageByMinBlockRequest + (*SendMessageByIdRequest)(nil), // 6: sentry.SendMessageByIdRequest + (*SendMessageToRandomPeersRequest)(nil), // 7: sentry.SendMessageToRandomPeersRequest + (*SentPeers)(nil), // 8: sentry.SentPeers + (*PenalizePeerRequest)(nil), // 9: sentry.PenalizePeerRequest + (*PeerMinBlockRequest)(nil), // 10: sentry.PeerMinBlockRequest + (*AddPeerRequest)(nil), // 11: sentry.AddPeerRequest + (*InboundMessage)(nil), // 12: sentry.InboundMessage + (*Forks)(nil), // 13: sentry.Forks + (*StatusData)(nil), // 14: sentry.StatusData + (*SetStatusReply)(nil), // 15: sentry.SetStatusReply + (*HandShakeReply)(nil), // 16: sentry.HandShakeReply + (*MessagesRequest)(nil), // 17: sentry.MessagesRequest + (*PeersReply)(nil), // 18: sentry.PeersReply + (*PeerCountRequest)(nil), // 19: sentry.PeerCountRequest + (*PeerCountPerProtocol)(nil), // 20: sentry.PeerCountPerProtocol + (*PeerCountReply)(nil), // 21: sentry.PeerCountReply + (*PeerByIdRequest)(nil), // 22: sentry.PeerByIdRequest + (*PeerByIdReply)(nil), // 23: sentry.PeerByIdReply + (*PeerEventsRequest)(nil), // 24: sentry.PeerEventsRequest + (*PeerEvent)(nil), // 25: sentry.PeerEvent + (*AddPeerReply)(nil), // 26: sentry.AddPeerReply + (*types.H512)(nil), // 27: types.H512 + (*types.H256)(nil), // 28: types.H256 + (*types.PeerInfo)(nil), // 29: types.PeerInfo + (*emptypb.Empty)(nil), // 30: google.protobuf.Empty + (*types.NodeInfoReply)(nil), // 31: types.NodeInfoReply +} +var file_p2psentry_sentry_proto_depIdxs = []int32{ + 0, // 0: sentry.OutboundMessageData.id:type_name -> sentry.MessageId + 4, // 1: sentry.SendMessageByMinBlockRequest.data:type_name -> sentry.OutboundMessageData + 4, // 2: sentry.SendMessageByIdRequest.data:type_name -> sentry.OutboundMessageData + 27, // 3: sentry.SendMessageByIdRequest.peer_id:type_name -> types.H512 + 4, // 4: sentry.SendMessageToRandomPeersRequest.data:type_name -> sentry.OutboundMessageData + 27, // 5: sentry.SentPeers.peers:type_name -> types.H512 + 27, // 6: sentry.PenalizePeerRequest.peer_id:type_name -> types.H512 + 1, // 7: sentry.PenalizePeerRequest.penalty:type_name -> sentry.PenaltyKind + 27, // 8: sentry.PeerMinBlockRequest.peer_id:type_name -> types.H512 + 0, // 9: sentry.InboundMessage.id:type_name -> sentry.MessageId + 27, // 10: sentry.InboundMessage.peer_id:type_name -> types.H512 + 28, // 11: sentry.Forks.genesis:type_name -> types.H256 + 28, // 12: sentry.StatusData.total_difficulty:type_name -> types.H256 + 28, // 13: sentry.StatusData.best_hash:type_name -> types.H256 + 13, // 14: sentry.StatusData.fork_data:type_name -> sentry.Forks + 2, // 15: sentry.HandShakeReply.protocol:type_name -> sentry.Protocol + 0, // 16: sentry.MessagesRequest.ids:type_name -> sentry.MessageId + 29, // 17: sentry.PeersReply.peers:type_name -> types.PeerInfo + 2, // 18: sentry.PeerCountPerProtocol.protocol:type_name -> sentry.Protocol + 20, // 19: sentry.PeerCountReply.counts_per_protocol:type_name -> sentry.PeerCountPerProtocol + 27, // 20: sentry.PeerByIdRequest.peer_id:type_name -> types.H512 + 29, // 21: sentry.PeerByIdReply.peer:type_name -> types.PeerInfo + 27, // 22: sentry.PeerEvent.peer_id:type_name -> types.H512 + 3, // 23: sentry.PeerEvent.event_id:type_name -> sentry.PeerEvent.PeerEventId + 14, // 24: sentry.Sentry.SetStatus:input_type -> sentry.StatusData + 9, // 25: sentry.Sentry.PenalizePeer:input_type -> sentry.PenalizePeerRequest + 10, // 26: sentry.Sentry.PeerMinBlock:input_type -> sentry.PeerMinBlockRequest + 30, // 27: sentry.Sentry.HandShake:input_type -> google.protobuf.Empty + 5, // 28: sentry.Sentry.SendMessageByMinBlock:input_type -> sentry.SendMessageByMinBlockRequest + 6, // 29: sentry.Sentry.SendMessageById:input_type -> sentry.SendMessageByIdRequest + 7, // 30: sentry.Sentry.SendMessageToRandomPeers:input_type -> sentry.SendMessageToRandomPeersRequest + 4, // 31: sentry.Sentry.SendMessageToAll:input_type -> sentry.OutboundMessageData + 17, // 32: sentry.Sentry.Messages:input_type -> sentry.MessagesRequest + 30, // 33: sentry.Sentry.Peers:input_type -> google.protobuf.Empty + 19, // 34: sentry.Sentry.PeerCount:input_type -> sentry.PeerCountRequest + 22, // 35: sentry.Sentry.PeerById:input_type -> sentry.PeerByIdRequest + 24, // 36: sentry.Sentry.PeerEvents:input_type -> sentry.PeerEventsRequest + 11, // 37: sentry.Sentry.AddPeer:input_type -> sentry.AddPeerRequest + 30, // 38: sentry.Sentry.NodeInfo:input_type -> google.protobuf.Empty + 15, // 39: sentry.Sentry.SetStatus:output_type -> sentry.SetStatusReply + 30, // 40: sentry.Sentry.PenalizePeer:output_type -> google.protobuf.Empty + 30, // 41: sentry.Sentry.PeerMinBlock:output_type -> google.protobuf.Empty + 16, // 42: sentry.Sentry.HandShake:output_type -> sentry.HandShakeReply + 8, // 43: sentry.Sentry.SendMessageByMinBlock:output_type -> sentry.SentPeers + 8, // 44: sentry.Sentry.SendMessageById:output_type -> sentry.SentPeers + 8, // 45: sentry.Sentry.SendMessageToRandomPeers:output_type -> sentry.SentPeers + 8, // 46: sentry.Sentry.SendMessageToAll:output_type -> sentry.SentPeers + 12, // 47: sentry.Sentry.Messages:output_type -> sentry.InboundMessage + 18, // 48: sentry.Sentry.Peers:output_type -> sentry.PeersReply + 21, // 49: sentry.Sentry.PeerCount:output_type -> sentry.PeerCountReply + 23, // 50: sentry.Sentry.PeerById:output_type -> sentry.PeerByIdReply + 25, // 51: sentry.Sentry.PeerEvents:output_type -> sentry.PeerEvent + 26, // 52: sentry.Sentry.AddPeer:output_type -> sentry.AddPeerReply + 31, // 53: sentry.Sentry.NodeInfo:output_type -> types.NodeInfoReply + 39, // [39:54] is the sub-list for method output_type + 24, // [24:39] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name +} + +func init() { file_p2psentry_sentry_proto_init() } +func file_p2psentry_sentry_proto_init() { + if File_p2psentry_sentry_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_p2psentry_sentry_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutboundMessageData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageByMinBlockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageByIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendMessageToRandomPeersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SentPeers); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PenalizePeerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerMinBlockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddPeerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InboundMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Forks); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatusData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetStatusReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HandShakeReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessagesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeersReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerCountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerCountPerProtocol); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerCountReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerByIdRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerByIdReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddPeerReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_p2psentry_sentry_proto_msgTypes[19].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_p2psentry_sentry_proto_rawDesc, + NumEnums: 4, + NumMessages: 23, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_p2psentry_sentry_proto_goTypes, + DependencyIndexes: file_p2psentry_sentry_proto_depIdxs, + EnumInfos: file_p2psentry_sentry_proto_enumTypes, + MessageInfos: file_p2psentry_sentry_proto_msgTypes, + }.Build() + File_p2psentry_sentry_proto = out.File + file_p2psentry_sentry_proto_rawDesc = nil + file_p2psentry_sentry_proto_goTypes = nil + file_p2psentry_sentry_proto_depIdxs = nil +} diff --git a/erigon-lib/gointerfaces/sentry/sentry_grpc.pb.go b/erigon-lib/gointerfaces/sentry/sentry_grpc.pb.go new file mode 100644 index 00000000000..1a9d1959b5c --- /dev/null +++ b/erigon-lib/gointerfaces/sentry/sentry_grpc.pb.go @@ -0,0 +1,700 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.2 +// source: p2psentry/sentry.proto + +package sentry + +import ( + context "context" + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + Sentry_SetStatus_FullMethodName = "/sentry.Sentry/SetStatus" + Sentry_PenalizePeer_FullMethodName = "/sentry.Sentry/PenalizePeer" + Sentry_PeerMinBlock_FullMethodName = "/sentry.Sentry/PeerMinBlock" + Sentry_HandShake_FullMethodName = "/sentry.Sentry/HandShake" + Sentry_SendMessageByMinBlock_FullMethodName = "/sentry.Sentry/SendMessageByMinBlock" + Sentry_SendMessageById_FullMethodName = "/sentry.Sentry/SendMessageById" + Sentry_SendMessageToRandomPeers_FullMethodName = "/sentry.Sentry/SendMessageToRandomPeers" + Sentry_SendMessageToAll_FullMethodName = "/sentry.Sentry/SendMessageToAll" + Sentry_Messages_FullMethodName = "/sentry.Sentry/Messages" + Sentry_Peers_FullMethodName = "/sentry.Sentry/Peers" + Sentry_PeerCount_FullMethodName = "/sentry.Sentry/PeerCount" + Sentry_PeerById_FullMethodName = "/sentry.Sentry/PeerById" + Sentry_PeerEvents_FullMethodName = "/sentry.Sentry/PeerEvents" + Sentry_AddPeer_FullMethodName = "/sentry.Sentry/AddPeer" + Sentry_NodeInfo_FullMethodName = "/sentry.Sentry/NodeInfo" +) + +// SentryClient is the client API for Sentry service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type SentryClient interface { + // SetStatus - force new ETH client state of sentry - network_id, max_block, etc... + SetStatus(ctx context.Context, in *StatusData, opts ...grpc.CallOption) (*SetStatusReply, error) + PenalizePeer(ctx context.Context, in *PenalizePeerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + PeerMinBlock(ctx context.Context, in *PeerMinBlockRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // HandShake - pre-requirement for all Send* methods - returns list of ETH protocol versions, + // without knowledge of protocol - impossible encode correct P2P message + HandShake(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HandShakeReply, error) + SendMessageByMinBlock(ctx context.Context, in *SendMessageByMinBlockRequest, opts ...grpc.CallOption) (*SentPeers, error) + SendMessageById(ctx context.Context, in *SendMessageByIdRequest, opts ...grpc.CallOption) (*SentPeers, error) + SendMessageToRandomPeers(ctx context.Context, in *SendMessageToRandomPeersRequest, opts ...grpc.CallOption) (*SentPeers, error) + SendMessageToAll(ctx context.Context, in *OutboundMessageData, opts ...grpc.CallOption) (*SentPeers, error) + // Subscribe to receive messages. + // Calling multiple times with a different set of ids starts separate streams. + // It is possible to subscribe to the same set if ids more than once. + Messages(ctx context.Context, in *MessagesRequest, opts ...grpc.CallOption) (Sentry_MessagesClient, error) + Peers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PeersReply, error) + PeerCount(ctx context.Context, in *PeerCountRequest, opts ...grpc.CallOption) (*PeerCountReply, error) + PeerById(ctx context.Context, in *PeerByIdRequest, opts ...grpc.CallOption) (*PeerByIdReply, error) + // Subscribe to notifications about connected or lost peers. + PeerEvents(ctx context.Context, in *PeerEventsRequest, opts ...grpc.CallOption) (Sentry_PeerEventsClient, error) + AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) + // NodeInfo returns a collection of metadata known about the host. + NodeInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.NodeInfoReply, error) +} + +type sentryClient struct { + cc grpc.ClientConnInterface +} + +func NewSentryClient(cc grpc.ClientConnInterface) SentryClient { + return &sentryClient{cc} +} + +func (c *sentryClient) SetStatus(ctx context.Context, in *StatusData, opts ...grpc.CallOption) (*SetStatusReply, error) { + out := new(SetStatusReply) + err := c.cc.Invoke(ctx, Sentry_SetStatus_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) PenalizePeer(ctx context.Context, in *PenalizePeerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, Sentry_PenalizePeer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) PeerMinBlock(ctx context.Context, in *PeerMinBlockRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, Sentry_PeerMinBlock_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) HandShake(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HandShakeReply, error) { + out := new(HandShakeReply) + err := c.cc.Invoke(ctx, Sentry_HandShake_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) SendMessageByMinBlock(ctx context.Context, in *SendMessageByMinBlockRequest, opts ...grpc.CallOption) (*SentPeers, error) { + out := new(SentPeers) + err := c.cc.Invoke(ctx, Sentry_SendMessageByMinBlock_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) SendMessageById(ctx context.Context, in *SendMessageByIdRequest, opts ...grpc.CallOption) (*SentPeers, error) { + out := new(SentPeers) + err := c.cc.Invoke(ctx, Sentry_SendMessageById_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) SendMessageToRandomPeers(ctx context.Context, in *SendMessageToRandomPeersRequest, opts ...grpc.CallOption) (*SentPeers, error) { + out := new(SentPeers) + err := c.cc.Invoke(ctx, Sentry_SendMessageToRandomPeers_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) SendMessageToAll(ctx context.Context, in *OutboundMessageData, opts ...grpc.CallOption) (*SentPeers, error) { + out := new(SentPeers) + err := c.cc.Invoke(ctx, Sentry_SendMessageToAll_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) Messages(ctx context.Context, in *MessagesRequest, opts ...grpc.CallOption) (Sentry_MessagesClient, error) { + stream, err := c.cc.NewStream(ctx, &Sentry_ServiceDesc.Streams[0], Sentry_Messages_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &sentryMessagesClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Sentry_MessagesClient interface { + Recv() (*InboundMessage, error) + grpc.ClientStream +} + +type sentryMessagesClient struct { + grpc.ClientStream +} + +func (x *sentryMessagesClient) Recv() (*InboundMessage, error) { + m := new(InboundMessage) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *sentryClient) Peers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PeersReply, error) { + out := new(PeersReply) + err := c.cc.Invoke(ctx, Sentry_Peers_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) PeerCount(ctx context.Context, in *PeerCountRequest, opts ...grpc.CallOption) (*PeerCountReply, error) { + out := new(PeerCountReply) + err := c.cc.Invoke(ctx, Sentry_PeerCount_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) PeerById(ctx context.Context, in *PeerByIdRequest, opts ...grpc.CallOption) (*PeerByIdReply, error) { + out := new(PeerByIdReply) + err := c.cc.Invoke(ctx, Sentry_PeerById_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) PeerEvents(ctx context.Context, in *PeerEventsRequest, opts ...grpc.CallOption) (Sentry_PeerEventsClient, error) { + stream, err := c.cc.NewStream(ctx, &Sentry_ServiceDesc.Streams[1], Sentry_PeerEvents_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &sentryPeerEventsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Sentry_PeerEventsClient interface { + Recv() (*PeerEvent, error) + grpc.ClientStream +} + +type sentryPeerEventsClient struct { + grpc.ClientStream +} + +func (x *sentryPeerEventsClient) Recv() (*PeerEvent, error) { + m := new(PeerEvent) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *sentryClient) AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) { + out := new(AddPeerReply) + err := c.cc.Invoke(ctx, Sentry_AddPeer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sentryClient) NodeInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.NodeInfoReply, error) { + out := new(types.NodeInfoReply) + err := c.cc.Invoke(ctx, Sentry_NodeInfo_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SentryServer is the server API for Sentry service. +// All implementations must embed UnimplementedSentryServer +// for forward compatibility +type SentryServer interface { + // SetStatus - force new ETH client state of sentry - network_id, max_block, etc... + SetStatus(context.Context, *StatusData) (*SetStatusReply, error) + PenalizePeer(context.Context, *PenalizePeerRequest) (*emptypb.Empty, error) + PeerMinBlock(context.Context, *PeerMinBlockRequest) (*emptypb.Empty, error) + // HandShake - pre-requirement for all Send* methods - returns list of ETH protocol versions, + // without knowledge of protocol - impossible encode correct P2P message + HandShake(context.Context, *emptypb.Empty) (*HandShakeReply, error) + SendMessageByMinBlock(context.Context, *SendMessageByMinBlockRequest) (*SentPeers, error) + SendMessageById(context.Context, *SendMessageByIdRequest) (*SentPeers, error) + SendMessageToRandomPeers(context.Context, *SendMessageToRandomPeersRequest) (*SentPeers, error) + SendMessageToAll(context.Context, *OutboundMessageData) (*SentPeers, error) + // Subscribe to receive messages. + // Calling multiple times with a different set of ids starts separate streams. + // It is possible to subscribe to the same set if ids more than once. + Messages(*MessagesRequest, Sentry_MessagesServer) error + Peers(context.Context, *emptypb.Empty) (*PeersReply, error) + PeerCount(context.Context, *PeerCountRequest) (*PeerCountReply, error) + PeerById(context.Context, *PeerByIdRequest) (*PeerByIdReply, error) + // Subscribe to notifications about connected or lost peers. + PeerEvents(*PeerEventsRequest, Sentry_PeerEventsServer) error + AddPeer(context.Context, *AddPeerRequest) (*AddPeerReply, error) + // NodeInfo returns a collection of metadata known about the host. + NodeInfo(context.Context, *emptypb.Empty) (*types.NodeInfoReply, error) + mustEmbedUnimplementedSentryServer() +} + +// UnimplementedSentryServer must be embedded to have forward compatible implementations. +type UnimplementedSentryServer struct { +} + +func (UnimplementedSentryServer) SetStatus(context.Context, *StatusData) (*SetStatusReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetStatus not implemented") +} +func (UnimplementedSentryServer) PenalizePeer(context.Context, *PenalizePeerRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method PenalizePeer not implemented") +} +func (UnimplementedSentryServer) PeerMinBlock(context.Context, *PeerMinBlockRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method PeerMinBlock not implemented") +} +func (UnimplementedSentryServer) HandShake(context.Context, *emptypb.Empty) (*HandShakeReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method HandShake not implemented") +} +func (UnimplementedSentryServer) SendMessageByMinBlock(context.Context, *SendMessageByMinBlockRequest) (*SentPeers, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendMessageByMinBlock not implemented") +} +func (UnimplementedSentryServer) SendMessageById(context.Context, *SendMessageByIdRequest) (*SentPeers, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendMessageById not implemented") +} +func (UnimplementedSentryServer) SendMessageToRandomPeers(context.Context, *SendMessageToRandomPeersRequest) (*SentPeers, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendMessageToRandomPeers not implemented") +} +func (UnimplementedSentryServer) SendMessageToAll(context.Context, *OutboundMessageData) (*SentPeers, error) { + return nil, status.Errorf(codes.Unimplemented, "method SendMessageToAll not implemented") +} +func (UnimplementedSentryServer) Messages(*MessagesRequest, Sentry_MessagesServer) error { + return status.Errorf(codes.Unimplemented, "method Messages not implemented") +} +func (UnimplementedSentryServer) Peers(context.Context, *emptypb.Empty) (*PeersReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Peers not implemented") +} +func (UnimplementedSentryServer) PeerCount(context.Context, *PeerCountRequest) (*PeerCountReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method PeerCount not implemented") +} +func (UnimplementedSentryServer) PeerById(context.Context, *PeerByIdRequest) (*PeerByIdReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method PeerById not implemented") +} +func (UnimplementedSentryServer) PeerEvents(*PeerEventsRequest, Sentry_PeerEventsServer) error { + return status.Errorf(codes.Unimplemented, "method PeerEvents not implemented") +} +func (UnimplementedSentryServer) AddPeer(context.Context, *AddPeerRequest) (*AddPeerReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddPeer not implemented") +} +func (UnimplementedSentryServer) NodeInfo(context.Context, *emptypb.Empty) (*types.NodeInfoReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeInfo not implemented") +} +func (UnimplementedSentryServer) mustEmbedUnimplementedSentryServer() {} + +// UnsafeSentryServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to SentryServer will +// result in compilation errors. +type UnsafeSentryServer interface { + mustEmbedUnimplementedSentryServer() +} + +func RegisterSentryServer(s grpc.ServiceRegistrar, srv SentryServer) { + s.RegisterService(&Sentry_ServiceDesc, srv) +} + +func _Sentry_SetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StatusData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).SetStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_SetStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).SetStatus(ctx, req.(*StatusData)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_PenalizePeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PenalizePeerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).PenalizePeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_PenalizePeer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).PenalizePeer(ctx, req.(*PenalizePeerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_PeerMinBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PeerMinBlockRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).PeerMinBlock(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_PeerMinBlock_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).PeerMinBlock(ctx, req.(*PeerMinBlockRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_HandShake_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).HandShake(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_HandShake_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).HandShake(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_SendMessageByMinBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMessageByMinBlockRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).SendMessageByMinBlock(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_SendMessageByMinBlock_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).SendMessageByMinBlock(ctx, req.(*SendMessageByMinBlockRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_SendMessageById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMessageByIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).SendMessageById(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_SendMessageById_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).SendMessageById(ctx, req.(*SendMessageByIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_SendMessageToRandomPeers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMessageToRandomPeersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).SendMessageToRandomPeers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_SendMessageToRandomPeers_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).SendMessageToRandomPeers(ctx, req.(*SendMessageToRandomPeersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_SendMessageToAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OutboundMessageData) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).SendMessageToAll(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_SendMessageToAll_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).SendMessageToAll(ctx, req.(*OutboundMessageData)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_Messages_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(MessagesRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(SentryServer).Messages(m, &sentryMessagesServer{stream}) +} + +type Sentry_MessagesServer interface { + Send(*InboundMessage) error + grpc.ServerStream +} + +type sentryMessagesServer struct { + grpc.ServerStream +} + +func (x *sentryMessagesServer) Send(m *InboundMessage) error { + return x.ServerStream.SendMsg(m) +} + +func _Sentry_Peers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).Peers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_Peers_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).Peers(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_PeerCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PeerCountRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).PeerCount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_PeerCount_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).PeerCount(ctx, req.(*PeerCountRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_PeerById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PeerByIdRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).PeerById(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_PeerById_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).PeerById(ctx, req.(*PeerByIdRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_PeerEvents_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(PeerEventsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(SentryServer).PeerEvents(m, &sentryPeerEventsServer{stream}) +} + +type Sentry_PeerEventsServer interface { + Send(*PeerEvent) error + grpc.ServerStream +} + +type sentryPeerEventsServer struct { + grpc.ServerStream +} + +func (x *sentryPeerEventsServer) Send(m *PeerEvent) error { + return x.ServerStream.SendMsg(m) +} + +func _Sentry_AddPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddPeerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).AddPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_AddPeer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).AddPeer(ctx, req.(*AddPeerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Sentry_NodeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).NodeInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_NodeInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).NodeInfo(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +// Sentry_ServiceDesc is the grpc.ServiceDesc for Sentry service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Sentry_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "sentry.Sentry", + HandlerType: (*SentryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "SetStatus", + Handler: _Sentry_SetStatus_Handler, + }, + { + MethodName: "PenalizePeer", + Handler: _Sentry_PenalizePeer_Handler, + }, + { + MethodName: "PeerMinBlock", + Handler: _Sentry_PeerMinBlock_Handler, + }, + { + MethodName: "HandShake", + Handler: _Sentry_HandShake_Handler, + }, + { + MethodName: "SendMessageByMinBlock", + Handler: _Sentry_SendMessageByMinBlock_Handler, + }, + { + MethodName: "SendMessageById", + Handler: _Sentry_SendMessageById_Handler, + }, + { + MethodName: "SendMessageToRandomPeers", + Handler: _Sentry_SendMessageToRandomPeers_Handler, + }, + { + MethodName: "SendMessageToAll", + Handler: _Sentry_SendMessageToAll_Handler, + }, + { + MethodName: "Peers", + Handler: _Sentry_Peers_Handler, + }, + { + MethodName: "PeerCount", + Handler: _Sentry_PeerCount_Handler, + }, + { + MethodName: "PeerById", + Handler: _Sentry_PeerById_Handler, + }, + { + MethodName: "AddPeer", + Handler: _Sentry_AddPeer_Handler, + }, + { + MethodName: "NodeInfo", + Handler: _Sentry_NodeInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Messages", + Handler: _Sentry_Messages_Handler, + ServerStreams: true, + }, + { + StreamName: "PeerEvents", + Handler: _Sentry_PeerEvents_Handler, + ServerStreams: true, + }, + }, + Metadata: "p2psentry/sentry.proto", +} diff --git a/erigon-lib/gointerfaces/test_util.go b/erigon-lib/gointerfaces/test_util.go new file mode 100644 index 00000000000..25e9b45751d --- /dev/null +++ b/erigon-lib/gointerfaces/test_util.go @@ -0,0 +1,4 @@ +package gointerfaces + +//go:generate moq -stub -out ./sentry/mocks.go ./sentry SentryServer SentryClient +//go:generate moq -stub -out ./remote/mocks.go ./remote KVClient KV_StateChangesClient diff --git a/erigon-lib/gointerfaces/txpool/mining.pb.go b/erigon-lib/gointerfaces/txpool/mining.pb.go new file mode 100644 index 00000000000..20b3e0bd7e6 --- /dev/null +++ b/erigon-lib/gointerfaces/txpool/mining.pb.go @@ -0,0 +1,1153 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: txpool/mining.proto + +package txpool + +import ( + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type OnPendingBlockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OnPendingBlockRequest) Reset() { + *x = OnPendingBlockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnPendingBlockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnPendingBlockRequest) ProtoMessage() {} + +func (x *OnPendingBlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnPendingBlockRequest.ProtoReflect.Descriptor instead. +func (*OnPendingBlockRequest) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{0} +} + +type OnPendingBlockReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RplBlock []byte `protobuf:"bytes,1,opt,name=rpl_block,json=rplBlock,proto3" json:"rpl_block,omitempty"` +} + +func (x *OnPendingBlockReply) Reset() { + *x = OnPendingBlockReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnPendingBlockReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnPendingBlockReply) ProtoMessage() {} + +func (x *OnPendingBlockReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnPendingBlockReply.ProtoReflect.Descriptor instead. +func (*OnPendingBlockReply) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{1} +} + +func (x *OnPendingBlockReply) GetRplBlock() []byte { + if x != nil { + return x.RplBlock + } + return nil +} + +type OnMinedBlockRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OnMinedBlockRequest) Reset() { + *x = OnMinedBlockRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnMinedBlockRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnMinedBlockRequest) ProtoMessage() {} + +func (x *OnMinedBlockRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnMinedBlockRequest.ProtoReflect.Descriptor instead. +func (*OnMinedBlockRequest) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{2} +} + +type OnMinedBlockReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RplBlock []byte `protobuf:"bytes,1,opt,name=rpl_block,json=rplBlock,proto3" json:"rpl_block,omitempty"` +} + +func (x *OnMinedBlockReply) Reset() { + *x = OnMinedBlockReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnMinedBlockReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnMinedBlockReply) ProtoMessage() {} + +func (x *OnMinedBlockReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnMinedBlockReply.ProtoReflect.Descriptor instead. +func (*OnMinedBlockReply) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{3} +} + +func (x *OnMinedBlockReply) GetRplBlock() []byte { + if x != nil { + return x.RplBlock + } + return nil +} + +type OnPendingLogsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OnPendingLogsRequest) Reset() { + *x = OnPendingLogsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnPendingLogsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnPendingLogsRequest) ProtoMessage() {} + +func (x *OnPendingLogsRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnPendingLogsRequest.ProtoReflect.Descriptor instead. +func (*OnPendingLogsRequest) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{4} +} + +type OnPendingLogsReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RplLogs []byte `protobuf:"bytes,1,opt,name=rpl_logs,json=rplLogs,proto3" json:"rpl_logs,omitempty"` +} + +func (x *OnPendingLogsReply) Reset() { + *x = OnPendingLogsReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnPendingLogsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnPendingLogsReply) ProtoMessage() {} + +func (x *OnPendingLogsReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnPendingLogsReply.ProtoReflect.Descriptor instead. +func (*OnPendingLogsReply) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{5} +} + +func (x *OnPendingLogsReply) GetRplLogs() []byte { + if x != nil { + return x.RplLogs + } + return nil +} + +type GetWorkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetWorkRequest) Reset() { + *x = GetWorkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWorkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWorkRequest) ProtoMessage() {} + +func (x *GetWorkRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWorkRequest.ProtoReflect.Descriptor instead. +func (*GetWorkRequest) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{6} +} + +type GetWorkReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HeaderHash string `protobuf:"bytes,1,opt,name=header_hash,json=headerHash,proto3" json:"header_hash,omitempty"` // 32 bytes hex encoded current block header pow-hash + SeedHash string `protobuf:"bytes,2,opt,name=seed_hash,json=seedHash,proto3" json:"seed_hash,omitempty"` // 32 bytes hex encoded seed hash used for DAG + Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` // 32 bytes hex encoded boundary condition ("target"), 2^256/difficulty + BlockNumber string `protobuf:"bytes,4,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` // hex encoded block number +} + +func (x *GetWorkReply) Reset() { + *x = GetWorkReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWorkReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWorkReply) ProtoMessage() {} + +func (x *GetWorkReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWorkReply.ProtoReflect.Descriptor instead. +func (*GetWorkReply) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{7} +} + +func (x *GetWorkReply) GetHeaderHash() string { + if x != nil { + return x.HeaderHash + } + return "" +} + +func (x *GetWorkReply) GetSeedHash() string { + if x != nil { + return x.SeedHash + } + return "" +} + +func (x *GetWorkReply) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +func (x *GetWorkReply) GetBlockNumber() string { + if x != nil { + return x.BlockNumber + } + return "" +} + +type SubmitWorkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockNonce []byte `protobuf:"bytes,1,opt,name=block_nonce,json=blockNonce,proto3" json:"block_nonce,omitempty"` + PowHash []byte `protobuf:"bytes,2,opt,name=pow_hash,json=powHash,proto3" json:"pow_hash,omitempty"` + Digest []byte `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` +} + +func (x *SubmitWorkRequest) Reset() { + *x = SubmitWorkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubmitWorkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubmitWorkRequest) ProtoMessage() {} + +func (x *SubmitWorkRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubmitWorkRequest.ProtoReflect.Descriptor instead. +func (*SubmitWorkRequest) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{8} +} + +func (x *SubmitWorkRequest) GetBlockNonce() []byte { + if x != nil { + return x.BlockNonce + } + return nil +} + +func (x *SubmitWorkRequest) GetPowHash() []byte { + if x != nil { + return x.PowHash + } + return nil +} + +func (x *SubmitWorkRequest) GetDigest() []byte { + if x != nil { + return x.Digest + } + return nil +} + +type SubmitWorkReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` +} + +func (x *SubmitWorkReply) Reset() { + *x = SubmitWorkReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubmitWorkReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubmitWorkReply) ProtoMessage() {} + +func (x *SubmitWorkReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubmitWorkReply.ProtoReflect.Descriptor instead. +func (*SubmitWorkReply) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{9} +} + +func (x *SubmitWorkReply) GetOk() bool { + if x != nil { + return x.Ok + } + return false +} + +type SubmitHashRateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rate uint64 `protobuf:"varint,1,opt,name=rate,proto3" json:"rate,omitempty"` + Id []byte `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *SubmitHashRateRequest) Reset() { + *x = SubmitHashRateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubmitHashRateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubmitHashRateRequest) ProtoMessage() {} + +func (x *SubmitHashRateRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubmitHashRateRequest.ProtoReflect.Descriptor instead. +func (*SubmitHashRateRequest) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{10} +} + +func (x *SubmitHashRateRequest) GetRate() uint64 { + if x != nil { + return x.Rate + } + return 0 +} + +func (x *SubmitHashRateRequest) GetId() []byte { + if x != nil { + return x.Id + } + return nil +} + +type SubmitHashRateReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` +} + +func (x *SubmitHashRateReply) Reset() { + *x = SubmitHashRateReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SubmitHashRateReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SubmitHashRateReply) ProtoMessage() {} + +func (x *SubmitHashRateReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SubmitHashRateReply.ProtoReflect.Descriptor instead. +func (*SubmitHashRateReply) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{11} +} + +func (x *SubmitHashRateReply) GetOk() bool { + if x != nil { + return x.Ok + } + return false +} + +type HashRateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HashRateRequest) Reset() { + *x = HashRateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HashRateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HashRateRequest) ProtoMessage() {} + +func (x *HashRateRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HashRateRequest.ProtoReflect.Descriptor instead. +func (*HashRateRequest) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{12} +} + +type HashRateReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HashRate uint64 `protobuf:"varint,1,opt,name=hash_rate,json=hashRate,proto3" json:"hash_rate,omitempty"` +} + +func (x *HashRateReply) Reset() { + *x = HashRateReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HashRateReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HashRateReply) ProtoMessage() {} + +func (x *HashRateReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HashRateReply.ProtoReflect.Descriptor instead. +func (*HashRateReply) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{13} +} + +func (x *HashRateReply) GetHashRate() uint64 { + if x != nil { + return x.HashRate + } + return 0 +} + +type MiningRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MiningRequest) Reset() { + *x = MiningRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MiningRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiningRequest) ProtoMessage() {} + +func (x *MiningRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiningRequest.ProtoReflect.Descriptor instead. +func (*MiningRequest) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{14} +} + +type MiningReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` + Running bool `protobuf:"varint,2,opt,name=running,proto3" json:"running,omitempty"` +} + +func (x *MiningReply) Reset() { + *x = MiningReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_mining_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MiningReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MiningReply) ProtoMessage() {} + +func (x *MiningReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_mining_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MiningReply.ProtoReflect.Descriptor instead. +func (*MiningReply) Descriptor() ([]byte, []int) { + return file_txpool_mining_proto_rawDescGZIP(), []int{15} +} + +func (x *MiningReply) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *MiningReply) GetRunning() bool { + if x != nil { + return x.Running + } + return false +} + +var File_txpool_mining_proto protoreflect.FileDescriptor + +var file_txpool_mining_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x6d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x1a, 0x1b, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x17, 0x0a, + 0x15, 0x4f, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x32, 0x0a, 0x13, 0x4f, 0x6e, 0x50, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, + 0x09, 0x72, 0x70, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x72, 0x70, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x15, 0x0a, 0x13, 0x4f, 0x6e, + 0x4d, 0x69, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x30, 0x0a, 0x11, 0x4f, 0x6e, 0x4d, 0x69, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x70, 0x6c, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x70, 0x6c, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x22, 0x16, 0x0a, 0x14, 0x4f, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2f, 0x0a, 0x12, 0x4f, + 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x70, 0x6c, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x70, 0x6c, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x10, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x87, + 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, + 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x65, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x67, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, + 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x19, + 0x0a, 0x08, 0x70, 0x6f, 0x77, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x70, 0x6f, 0x77, 0x48, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, + 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x22, 0x21, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x02, 0x6f, 0x6b, 0x22, 0x3b, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x48, 0x61, + 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x72, 0x61, 0x74, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, + 0x64, 0x22, 0x25, 0x0a, 0x13, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x48, 0x61, 0x73, 0x68, 0x52, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0x11, 0x0a, 0x0f, 0x48, 0x61, 0x73, 0x68, + 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2c, 0x0a, 0x0d, 0x48, + 0x61, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, + 0x68, 0x61, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x68, 0x61, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x4d, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x41, 0x0a, 0x0b, 0x4d, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x32, 0xe2, 0x04, + 0x0a, 0x06, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x4e, 0x0a, 0x0e, 0x4f, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x12, 0x1d, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x4f, 0x6e, 0x50, 0x65, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x4f, 0x6e, 0x50, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, + 0x12, 0x48, 0x0a, 0x0c, 0x4f, 0x6e, 0x4d, 0x69, 0x6e, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x1b, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x4f, 0x6e, 0x4d, 0x69, 0x6e, 0x65, + 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, + 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x4f, 0x6e, 0x4d, 0x69, 0x6e, 0x65, 0x64, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0d, 0x4f, 0x6e, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1c, 0x2e, 0x74, 0x78, + 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x4f, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x74, 0x78, 0x70, 0x6f, + 0x6f, 0x6c, 0x2e, 0x4f, 0x6e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x6f, 0x67, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x12, 0x16, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x74, 0x78, 0x70, + 0x6f, 0x6f, 0x6c, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x40, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x19, + 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x74, 0x78, 0x70, 0x6f, + 0x6f, 0x6c, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x4c, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x48, 0x61, 0x73, 0x68, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x48, 0x61, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x48, 0x61, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x3a, 0x0a, 0x08, 0x48, 0x61, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x74, + 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x48, + 0x61, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x34, 0x0a, 0x06, + 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x15, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, + 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, + 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x3b, 0x74, + 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_txpool_mining_proto_rawDescOnce sync.Once + file_txpool_mining_proto_rawDescData = file_txpool_mining_proto_rawDesc +) + +func file_txpool_mining_proto_rawDescGZIP() []byte { + file_txpool_mining_proto_rawDescOnce.Do(func() { + file_txpool_mining_proto_rawDescData = protoimpl.X.CompressGZIP(file_txpool_mining_proto_rawDescData) + }) + return file_txpool_mining_proto_rawDescData +} + +var file_txpool_mining_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_txpool_mining_proto_goTypes = []interface{}{ + (*OnPendingBlockRequest)(nil), // 0: txpool.OnPendingBlockRequest + (*OnPendingBlockReply)(nil), // 1: txpool.OnPendingBlockReply + (*OnMinedBlockRequest)(nil), // 2: txpool.OnMinedBlockRequest + (*OnMinedBlockReply)(nil), // 3: txpool.OnMinedBlockReply + (*OnPendingLogsRequest)(nil), // 4: txpool.OnPendingLogsRequest + (*OnPendingLogsReply)(nil), // 5: txpool.OnPendingLogsReply + (*GetWorkRequest)(nil), // 6: txpool.GetWorkRequest + (*GetWorkReply)(nil), // 7: txpool.GetWorkReply + (*SubmitWorkRequest)(nil), // 8: txpool.SubmitWorkRequest + (*SubmitWorkReply)(nil), // 9: txpool.SubmitWorkReply + (*SubmitHashRateRequest)(nil), // 10: txpool.SubmitHashRateRequest + (*SubmitHashRateReply)(nil), // 11: txpool.SubmitHashRateReply + (*HashRateRequest)(nil), // 12: txpool.HashRateRequest + (*HashRateReply)(nil), // 13: txpool.HashRateReply + (*MiningRequest)(nil), // 14: txpool.MiningRequest + (*MiningReply)(nil), // 15: txpool.MiningReply + (*emptypb.Empty)(nil), // 16: google.protobuf.Empty + (*types.VersionReply)(nil), // 17: types.VersionReply +} +var file_txpool_mining_proto_depIdxs = []int32{ + 16, // 0: txpool.Mining.Version:input_type -> google.protobuf.Empty + 0, // 1: txpool.Mining.OnPendingBlock:input_type -> txpool.OnPendingBlockRequest + 2, // 2: txpool.Mining.OnMinedBlock:input_type -> txpool.OnMinedBlockRequest + 4, // 3: txpool.Mining.OnPendingLogs:input_type -> txpool.OnPendingLogsRequest + 6, // 4: txpool.Mining.GetWork:input_type -> txpool.GetWorkRequest + 8, // 5: txpool.Mining.SubmitWork:input_type -> txpool.SubmitWorkRequest + 10, // 6: txpool.Mining.SubmitHashRate:input_type -> txpool.SubmitHashRateRequest + 12, // 7: txpool.Mining.HashRate:input_type -> txpool.HashRateRequest + 14, // 8: txpool.Mining.Mining:input_type -> txpool.MiningRequest + 17, // 9: txpool.Mining.Version:output_type -> types.VersionReply + 1, // 10: txpool.Mining.OnPendingBlock:output_type -> txpool.OnPendingBlockReply + 3, // 11: txpool.Mining.OnMinedBlock:output_type -> txpool.OnMinedBlockReply + 5, // 12: txpool.Mining.OnPendingLogs:output_type -> txpool.OnPendingLogsReply + 7, // 13: txpool.Mining.GetWork:output_type -> txpool.GetWorkReply + 9, // 14: txpool.Mining.SubmitWork:output_type -> txpool.SubmitWorkReply + 11, // 15: txpool.Mining.SubmitHashRate:output_type -> txpool.SubmitHashRateReply + 13, // 16: txpool.Mining.HashRate:output_type -> txpool.HashRateReply + 15, // 17: txpool.Mining.Mining:output_type -> txpool.MiningReply + 9, // [9:18] is the sub-list for method output_type + 0, // [0:9] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_txpool_mining_proto_init() } +func file_txpool_mining_proto_init() { + if File_txpool_mining_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_txpool_mining_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnPendingBlockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnPendingBlockReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnMinedBlockRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnMinedBlockReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnPendingLogsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnPendingLogsReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWorkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWorkReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitWorkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitWorkReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitHashRateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubmitHashRateReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HashRateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HashRateReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MiningRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_mining_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MiningReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_txpool_mining_proto_rawDesc, + NumEnums: 0, + NumMessages: 16, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_txpool_mining_proto_goTypes, + DependencyIndexes: file_txpool_mining_proto_depIdxs, + MessageInfos: file_txpool_mining_proto_msgTypes, + }.Build() + File_txpool_mining_proto = out.File + file_txpool_mining_proto_rawDesc = nil + file_txpool_mining_proto_goTypes = nil + file_txpool_mining_proto_depIdxs = nil +} diff --git a/erigon-lib/gointerfaces/txpool/mining_grpc.pb.go b/erigon-lib/gointerfaces/txpool/mining_grpc.pb.go new file mode 100644 index 00000000000..c8855bfb6e3 --- /dev/null +++ b/erigon-lib/gointerfaces/txpool/mining_grpc.pb.go @@ -0,0 +1,535 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.2 +// source: txpool/mining.proto + +package txpool + +import ( + context "context" + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + Mining_Version_FullMethodName = "/txpool.Mining/Version" + Mining_OnPendingBlock_FullMethodName = "/txpool.Mining/OnPendingBlock" + Mining_OnMinedBlock_FullMethodName = "/txpool.Mining/OnMinedBlock" + Mining_OnPendingLogs_FullMethodName = "/txpool.Mining/OnPendingLogs" + Mining_GetWork_FullMethodName = "/txpool.Mining/GetWork" + Mining_SubmitWork_FullMethodName = "/txpool.Mining/SubmitWork" + Mining_SubmitHashRate_FullMethodName = "/txpool.Mining/SubmitHashRate" + Mining_HashRate_FullMethodName = "/txpool.Mining/HashRate" + Mining_Mining_FullMethodName = "/txpool.Mining/Mining" +) + +// MiningClient is the client API for Mining service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type MiningClient interface { + // Version returns the service version number + Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) + // subscribe to pending blocks event + OnPendingBlock(ctx context.Context, in *OnPendingBlockRequest, opts ...grpc.CallOption) (Mining_OnPendingBlockClient, error) + // subscribe to mined blocks event + OnMinedBlock(ctx context.Context, in *OnMinedBlockRequest, opts ...grpc.CallOption) (Mining_OnMinedBlockClient, error) + // subscribe to pending blocks event + OnPendingLogs(ctx context.Context, in *OnPendingLogsRequest, opts ...grpc.CallOption) (Mining_OnPendingLogsClient, error) + // GetWork returns a work package for external miner. + // + // The work package consists of 3 strings: + // + // result[0] - 32 bytes hex encoded current block header pow-hash + // result[1] - 32 bytes hex encoded seed hash used for DAG + // result[2] - 32 bytes hex encoded boundary condition ("target"), 2^256/difficulty + // result[3] - hex encoded block number + GetWork(ctx context.Context, in *GetWorkRequest, opts ...grpc.CallOption) (*GetWorkReply, error) + // SubmitWork can be used by external miner to submit their POW solution. + // It returns an indication if the work was accepted. + // Note either an invalid solution, a stale work a non-existent work will return false. + SubmitWork(ctx context.Context, in *SubmitWorkRequest, opts ...grpc.CallOption) (*SubmitWorkReply, error) + // SubmitHashRate can be used for remote miners to submit their hash rate. + // This enables the node to report the combined hash rate of all miners + // which submit work through this node. + // + // It accepts the miner hash rate and an identifier which must be unique + // between nodes. + SubmitHashRate(ctx context.Context, in *SubmitHashRateRequest, opts ...grpc.CallOption) (*SubmitHashRateReply, error) + // HashRate returns the current hashrate for local CPU miner and remote miner. + HashRate(ctx context.Context, in *HashRateRequest, opts ...grpc.CallOption) (*HashRateReply, error) + // Mining returns an indication if this node is currently mining and its mining configuration + Mining(ctx context.Context, in *MiningRequest, opts ...grpc.CallOption) (*MiningReply, error) +} + +type miningClient struct { + cc grpc.ClientConnInterface +} + +func NewMiningClient(cc grpc.ClientConnInterface) MiningClient { + return &miningClient{cc} +} + +func (c *miningClient) Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) { + out := new(types.VersionReply) + err := c.cc.Invoke(ctx, Mining_Version_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *miningClient) OnPendingBlock(ctx context.Context, in *OnPendingBlockRequest, opts ...grpc.CallOption) (Mining_OnPendingBlockClient, error) { + stream, err := c.cc.NewStream(ctx, &Mining_ServiceDesc.Streams[0], Mining_OnPendingBlock_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &miningOnPendingBlockClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Mining_OnPendingBlockClient interface { + Recv() (*OnPendingBlockReply, error) + grpc.ClientStream +} + +type miningOnPendingBlockClient struct { + grpc.ClientStream +} + +func (x *miningOnPendingBlockClient) Recv() (*OnPendingBlockReply, error) { + m := new(OnPendingBlockReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *miningClient) OnMinedBlock(ctx context.Context, in *OnMinedBlockRequest, opts ...grpc.CallOption) (Mining_OnMinedBlockClient, error) { + stream, err := c.cc.NewStream(ctx, &Mining_ServiceDesc.Streams[1], Mining_OnMinedBlock_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &miningOnMinedBlockClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Mining_OnMinedBlockClient interface { + Recv() (*OnMinedBlockReply, error) + grpc.ClientStream +} + +type miningOnMinedBlockClient struct { + grpc.ClientStream +} + +func (x *miningOnMinedBlockClient) Recv() (*OnMinedBlockReply, error) { + m := new(OnMinedBlockReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *miningClient) OnPendingLogs(ctx context.Context, in *OnPendingLogsRequest, opts ...grpc.CallOption) (Mining_OnPendingLogsClient, error) { + stream, err := c.cc.NewStream(ctx, &Mining_ServiceDesc.Streams[2], Mining_OnPendingLogs_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &miningOnPendingLogsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Mining_OnPendingLogsClient interface { + Recv() (*OnPendingLogsReply, error) + grpc.ClientStream +} + +type miningOnPendingLogsClient struct { + grpc.ClientStream +} + +func (x *miningOnPendingLogsClient) Recv() (*OnPendingLogsReply, error) { + m := new(OnPendingLogsReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *miningClient) GetWork(ctx context.Context, in *GetWorkRequest, opts ...grpc.CallOption) (*GetWorkReply, error) { + out := new(GetWorkReply) + err := c.cc.Invoke(ctx, Mining_GetWork_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *miningClient) SubmitWork(ctx context.Context, in *SubmitWorkRequest, opts ...grpc.CallOption) (*SubmitWorkReply, error) { + out := new(SubmitWorkReply) + err := c.cc.Invoke(ctx, Mining_SubmitWork_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *miningClient) SubmitHashRate(ctx context.Context, in *SubmitHashRateRequest, opts ...grpc.CallOption) (*SubmitHashRateReply, error) { + out := new(SubmitHashRateReply) + err := c.cc.Invoke(ctx, Mining_SubmitHashRate_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *miningClient) HashRate(ctx context.Context, in *HashRateRequest, opts ...grpc.CallOption) (*HashRateReply, error) { + out := new(HashRateReply) + err := c.cc.Invoke(ctx, Mining_HashRate_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *miningClient) Mining(ctx context.Context, in *MiningRequest, opts ...grpc.CallOption) (*MiningReply, error) { + out := new(MiningReply) + err := c.cc.Invoke(ctx, Mining_Mining_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MiningServer is the server API for Mining service. +// All implementations must embed UnimplementedMiningServer +// for forward compatibility +type MiningServer interface { + // Version returns the service version number + Version(context.Context, *emptypb.Empty) (*types.VersionReply, error) + // subscribe to pending blocks event + OnPendingBlock(*OnPendingBlockRequest, Mining_OnPendingBlockServer) error + // subscribe to mined blocks event + OnMinedBlock(*OnMinedBlockRequest, Mining_OnMinedBlockServer) error + // subscribe to pending blocks event + OnPendingLogs(*OnPendingLogsRequest, Mining_OnPendingLogsServer) error + // GetWork returns a work package for external miner. + // + // The work package consists of 3 strings: + // + // result[0] - 32 bytes hex encoded current block header pow-hash + // result[1] - 32 bytes hex encoded seed hash used for DAG + // result[2] - 32 bytes hex encoded boundary condition ("target"), 2^256/difficulty + // result[3] - hex encoded block number + GetWork(context.Context, *GetWorkRequest) (*GetWorkReply, error) + // SubmitWork can be used by external miner to submit their POW solution. + // It returns an indication if the work was accepted. + // Note either an invalid solution, a stale work a non-existent work will return false. + SubmitWork(context.Context, *SubmitWorkRequest) (*SubmitWorkReply, error) + // SubmitHashRate can be used for remote miners to submit their hash rate. + // This enables the node to report the combined hash rate of all miners + // which submit work through this node. + // + // It accepts the miner hash rate and an identifier which must be unique + // between nodes. + SubmitHashRate(context.Context, *SubmitHashRateRequest) (*SubmitHashRateReply, error) + // HashRate returns the current hashrate for local CPU miner and remote miner. + HashRate(context.Context, *HashRateRequest) (*HashRateReply, error) + // Mining returns an indication if this node is currently mining and its mining configuration + Mining(context.Context, *MiningRequest) (*MiningReply, error) + mustEmbedUnimplementedMiningServer() +} + +// UnimplementedMiningServer must be embedded to have forward compatible implementations. +type UnimplementedMiningServer struct { +} + +func (UnimplementedMiningServer) Version(context.Context, *emptypb.Empty) (*types.VersionReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Version not implemented") +} +func (UnimplementedMiningServer) OnPendingBlock(*OnPendingBlockRequest, Mining_OnPendingBlockServer) error { + return status.Errorf(codes.Unimplemented, "method OnPendingBlock not implemented") +} +func (UnimplementedMiningServer) OnMinedBlock(*OnMinedBlockRequest, Mining_OnMinedBlockServer) error { + return status.Errorf(codes.Unimplemented, "method OnMinedBlock not implemented") +} +func (UnimplementedMiningServer) OnPendingLogs(*OnPendingLogsRequest, Mining_OnPendingLogsServer) error { + return status.Errorf(codes.Unimplemented, "method OnPendingLogs not implemented") +} +func (UnimplementedMiningServer) GetWork(context.Context, *GetWorkRequest) (*GetWorkReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetWork not implemented") +} +func (UnimplementedMiningServer) SubmitWork(context.Context, *SubmitWorkRequest) (*SubmitWorkReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubmitWork not implemented") +} +func (UnimplementedMiningServer) SubmitHashRate(context.Context, *SubmitHashRateRequest) (*SubmitHashRateReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method SubmitHashRate not implemented") +} +func (UnimplementedMiningServer) HashRate(context.Context, *HashRateRequest) (*HashRateReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method HashRate not implemented") +} +func (UnimplementedMiningServer) Mining(context.Context, *MiningRequest) (*MiningReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Mining not implemented") +} +func (UnimplementedMiningServer) mustEmbedUnimplementedMiningServer() {} + +// UnsafeMiningServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to MiningServer will +// result in compilation errors. +type UnsafeMiningServer interface { + mustEmbedUnimplementedMiningServer() +} + +func RegisterMiningServer(s grpc.ServiceRegistrar, srv MiningServer) { + s.RegisterService(&Mining_ServiceDesc, srv) +} + +func _Mining_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MiningServer).Version(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Mining_Version_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MiningServer).Version(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Mining_OnPendingBlock_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(OnPendingBlockRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(MiningServer).OnPendingBlock(m, &miningOnPendingBlockServer{stream}) +} + +type Mining_OnPendingBlockServer interface { + Send(*OnPendingBlockReply) error + grpc.ServerStream +} + +type miningOnPendingBlockServer struct { + grpc.ServerStream +} + +func (x *miningOnPendingBlockServer) Send(m *OnPendingBlockReply) error { + return x.ServerStream.SendMsg(m) +} + +func _Mining_OnMinedBlock_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(OnMinedBlockRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(MiningServer).OnMinedBlock(m, &miningOnMinedBlockServer{stream}) +} + +type Mining_OnMinedBlockServer interface { + Send(*OnMinedBlockReply) error + grpc.ServerStream +} + +type miningOnMinedBlockServer struct { + grpc.ServerStream +} + +func (x *miningOnMinedBlockServer) Send(m *OnMinedBlockReply) error { + return x.ServerStream.SendMsg(m) +} + +func _Mining_OnPendingLogs_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(OnPendingLogsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(MiningServer).OnPendingLogs(m, &miningOnPendingLogsServer{stream}) +} + +type Mining_OnPendingLogsServer interface { + Send(*OnPendingLogsReply) error + grpc.ServerStream +} + +type miningOnPendingLogsServer struct { + grpc.ServerStream +} + +func (x *miningOnPendingLogsServer) Send(m *OnPendingLogsReply) error { + return x.ServerStream.SendMsg(m) +} + +func _Mining_GetWork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetWorkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MiningServer).GetWork(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Mining_GetWork_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MiningServer).GetWork(ctx, req.(*GetWorkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Mining_SubmitWork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubmitWorkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MiningServer).SubmitWork(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Mining_SubmitWork_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MiningServer).SubmitWork(ctx, req.(*SubmitWorkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Mining_SubmitHashRate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SubmitHashRateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MiningServer).SubmitHashRate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Mining_SubmitHashRate_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MiningServer).SubmitHashRate(ctx, req.(*SubmitHashRateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Mining_HashRate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HashRateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MiningServer).HashRate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Mining_HashRate_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MiningServer).HashRate(ctx, req.(*HashRateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Mining_Mining_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MiningRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MiningServer).Mining(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Mining_Mining_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MiningServer).Mining(ctx, req.(*MiningRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Mining_ServiceDesc is the grpc.ServiceDesc for Mining service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Mining_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "txpool.Mining", + HandlerType: (*MiningServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Version", + Handler: _Mining_Version_Handler, + }, + { + MethodName: "GetWork", + Handler: _Mining_GetWork_Handler, + }, + { + MethodName: "SubmitWork", + Handler: _Mining_SubmitWork_Handler, + }, + { + MethodName: "SubmitHashRate", + Handler: _Mining_SubmitHashRate_Handler, + }, + { + MethodName: "HashRate", + Handler: _Mining_HashRate_Handler, + }, + { + MethodName: "Mining", + Handler: _Mining_Mining_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "OnPendingBlock", + Handler: _Mining_OnPendingBlock_Handler, + ServerStreams: true, + }, + { + StreamName: "OnMinedBlock", + Handler: _Mining_OnMinedBlock_Handler, + ServerStreams: true, + }, + { + StreamName: "OnPendingLogs", + Handler: _Mining_OnPendingLogs_Handler, + ServerStreams: true, + }, + }, + Metadata: "txpool/mining.proto", +} diff --git a/erigon-lib/gointerfaces/txpool/txpool.pb.go b/erigon-lib/gointerfaces/txpool/txpool.pb.go new file mode 100644 index 00000000000..52b9b02def1 --- /dev/null +++ b/erigon-lib/gointerfaces/txpool/txpool.pb.go @@ -0,0 +1,1323 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: txpool/txpool.proto + +package txpool + +import ( + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ImportResult int32 + +const ( + ImportResult_SUCCESS ImportResult = 0 + ImportResult_ALREADY_EXISTS ImportResult = 1 + ImportResult_FEE_TOO_LOW ImportResult = 2 + ImportResult_STALE ImportResult = 3 + ImportResult_INVALID ImportResult = 4 + ImportResult_INTERNAL_ERROR ImportResult = 5 +) + +// Enum value maps for ImportResult. +var ( + ImportResult_name = map[int32]string{ + 0: "SUCCESS", + 1: "ALREADY_EXISTS", + 2: "FEE_TOO_LOW", + 3: "STALE", + 4: "INVALID", + 5: "INTERNAL_ERROR", + } + ImportResult_value = map[string]int32{ + "SUCCESS": 0, + "ALREADY_EXISTS": 1, + "FEE_TOO_LOW": 2, + "STALE": 3, + "INVALID": 4, + "INTERNAL_ERROR": 5, + } +) + +func (x ImportResult) Enum() *ImportResult { + p := new(ImportResult) + *p = x + return p +} + +func (x ImportResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ImportResult) Descriptor() protoreflect.EnumDescriptor { + return file_txpool_txpool_proto_enumTypes[0].Descriptor() +} + +func (ImportResult) Type() protoreflect.EnumType { + return &file_txpool_txpool_proto_enumTypes[0] +} + +func (x ImportResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ImportResult.Descriptor instead. +func (ImportResult) EnumDescriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{0} +} + +type AllReply_TxnType int32 + +const ( + AllReply_PENDING AllReply_TxnType = 0 // All currently processable transactions + AllReply_QUEUED AllReply_TxnType = 1 // Queued but non-processable transactions + AllReply_BASE_FEE AllReply_TxnType = 2 // BaseFee not enough baseFee non-processable transactions +) + +// Enum value maps for AllReply_TxnType. +var ( + AllReply_TxnType_name = map[int32]string{ + 0: "PENDING", + 1: "QUEUED", + 2: "BASE_FEE", + } + AllReply_TxnType_value = map[string]int32{ + "PENDING": 0, + "QUEUED": 1, + "BASE_FEE": 2, + } +) + +func (x AllReply_TxnType) Enum() *AllReply_TxnType { + p := new(AllReply_TxnType) + *p = x + return p +} + +func (x AllReply_TxnType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AllReply_TxnType) Descriptor() protoreflect.EnumDescriptor { + return file_txpool_txpool_proto_enumTypes[1].Descriptor() +} + +func (AllReply_TxnType) Type() protoreflect.EnumType { + return &file_txpool_txpool_proto_enumTypes[1] +} + +func (x AllReply_TxnType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AllReply_TxnType.Descriptor instead. +func (AllReply_TxnType) EnumDescriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{8, 0} +} + +type TxHashes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hashes []*types.H256 `protobuf:"bytes,1,rep,name=hashes,proto3" json:"hashes,omitempty"` +} + +func (x *TxHashes) Reset() { + *x = TxHashes{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TxHashes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TxHashes) ProtoMessage() {} + +func (x *TxHashes) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TxHashes.ProtoReflect.Descriptor instead. +func (*TxHashes) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{0} +} + +func (x *TxHashes) GetHashes() []*types.H256 { + if x != nil { + return x.Hashes + } + return nil +} + +type AddRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RlpTxs [][]byte `protobuf:"bytes,1,rep,name=rlp_txs,json=rlpTxs,proto3" json:"rlp_txs,omitempty"` +} + +func (x *AddRequest) Reset() { + *x = AddRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddRequest) ProtoMessage() {} + +func (x *AddRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddRequest.ProtoReflect.Descriptor instead. +func (*AddRequest) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{1} +} + +func (x *AddRequest) GetRlpTxs() [][]byte { + if x != nil { + return x.RlpTxs + } + return nil +} + +type AddReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Imported []ImportResult `protobuf:"varint,1,rep,packed,name=imported,proto3,enum=txpool.ImportResult" json:"imported,omitempty"` + Errors []string `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` +} + +func (x *AddReply) Reset() { + *x = AddReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddReply) ProtoMessage() {} + +func (x *AddReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddReply.ProtoReflect.Descriptor instead. +func (*AddReply) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{2} +} + +func (x *AddReply) GetImported() []ImportResult { + if x != nil { + return x.Imported + } + return nil +} + +func (x *AddReply) GetErrors() []string { + if x != nil { + return x.Errors + } + return nil +} + +type TransactionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hashes []*types.H256 `protobuf:"bytes,1,rep,name=hashes,proto3" json:"hashes,omitempty"` +} + +func (x *TransactionsRequest) Reset() { + *x = TransactionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionsRequest) ProtoMessage() {} + +func (x *TransactionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransactionsRequest.ProtoReflect.Descriptor instead. +func (*TransactionsRequest) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{3} +} + +func (x *TransactionsRequest) GetHashes() []*types.H256 { + if x != nil { + return x.Hashes + } + return nil +} + +type TransactionsReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RlpTxs [][]byte `protobuf:"bytes,1,rep,name=rlp_txs,json=rlpTxs,proto3" json:"rlp_txs,omitempty"` +} + +func (x *TransactionsReply) Reset() { + *x = TransactionsReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransactionsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransactionsReply) ProtoMessage() {} + +func (x *TransactionsReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransactionsReply.ProtoReflect.Descriptor instead. +func (*TransactionsReply) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{4} +} + +func (x *TransactionsReply) GetRlpTxs() [][]byte { + if x != nil { + return x.RlpTxs + } + return nil +} + +type OnAddRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *OnAddRequest) Reset() { + *x = OnAddRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnAddRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnAddRequest) ProtoMessage() {} + +func (x *OnAddRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnAddRequest.ProtoReflect.Descriptor instead. +func (*OnAddRequest) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{5} +} + +type OnAddReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RplTxs [][]byte `protobuf:"bytes,1,rep,name=rpl_txs,json=rplTxs,proto3" json:"rpl_txs,omitempty"` +} + +func (x *OnAddReply) Reset() { + *x = OnAddReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OnAddReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OnAddReply) ProtoMessage() {} + +func (x *OnAddReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OnAddReply.ProtoReflect.Descriptor instead. +func (*OnAddReply) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{6} +} + +func (x *OnAddReply) GetRplTxs() [][]byte { + if x != nil { + return x.RplTxs + } + return nil +} + +type AllRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AllRequest) Reset() { + *x = AllRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AllRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AllRequest) ProtoMessage() {} + +func (x *AllRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AllRequest.ProtoReflect.Descriptor instead. +func (*AllRequest) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{7} +} + +type AllReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txs []*AllReply_Tx `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"` +} + +func (x *AllReply) Reset() { + *x = AllReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AllReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AllReply) ProtoMessage() {} + +func (x *AllReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AllReply.ProtoReflect.Descriptor instead. +func (*AllReply) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{8} +} + +func (x *AllReply) GetTxs() []*AllReply_Tx { + if x != nil { + return x.Txs + } + return nil +} + +type PendingReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Txs []*PendingReply_Tx `protobuf:"bytes,1,rep,name=txs,proto3" json:"txs,omitempty"` +} + +func (x *PendingReply) Reset() { + *x = PendingReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PendingReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PendingReply) ProtoMessage() {} + +func (x *PendingReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PendingReply.ProtoReflect.Descriptor instead. +func (*PendingReply) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{9} +} + +func (x *PendingReply) GetTxs() []*PendingReply_Tx { + if x != nil { + return x.Txs + } + return nil +} + +type StatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StatusRequest) Reset() { + *x = StatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusRequest) ProtoMessage() {} + +func (x *StatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatusRequest.ProtoReflect.Descriptor instead. +func (*StatusRequest) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{10} +} + +type StatusReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PendingCount uint32 `protobuf:"varint,1,opt,name=pending_count,json=pendingCount,proto3" json:"pending_count,omitempty"` + QueuedCount uint32 `protobuf:"varint,2,opt,name=queued_count,json=queuedCount,proto3" json:"queued_count,omitempty"` + BaseFeeCount uint32 `protobuf:"varint,3,opt,name=base_fee_count,json=baseFeeCount,proto3" json:"base_fee_count,omitempty"` +} + +func (x *StatusReply) Reset() { + *x = StatusReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatusReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusReply) ProtoMessage() {} + +func (x *StatusReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatusReply.ProtoReflect.Descriptor instead. +func (*StatusReply) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{11} +} + +func (x *StatusReply) GetPendingCount() uint32 { + if x != nil { + return x.PendingCount + } + return 0 +} + +func (x *StatusReply) GetQueuedCount() uint32 { + if x != nil { + return x.QueuedCount + } + return 0 +} + +func (x *StatusReply) GetBaseFeeCount() uint32 { + if x != nil { + return x.BaseFeeCount + } + return 0 +} + +type NonceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address *types.H160 `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (x *NonceRequest) Reset() { + *x = NonceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NonceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NonceRequest) ProtoMessage() {} + +func (x *NonceRequest) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NonceRequest.ProtoReflect.Descriptor instead. +func (*NonceRequest) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{12} +} + +func (x *NonceRequest) GetAddress() *types.H160 { + if x != nil { + return x.Address + } + return nil +} + +type NonceReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Found bool `protobuf:"varint,1,opt,name=found,proto3" json:"found,omitempty"` + Nonce uint64 `protobuf:"varint,2,opt,name=nonce,proto3" json:"nonce,omitempty"` +} + +func (x *NonceReply) Reset() { + *x = NonceReply{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NonceReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NonceReply) ProtoMessage() {} + +func (x *NonceReply) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NonceReply.ProtoReflect.Descriptor instead. +func (*NonceReply) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{13} +} + +func (x *NonceReply) GetFound() bool { + if x != nil { + return x.Found + } + return false +} + +func (x *NonceReply) GetNonce() uint64 { + if x != nil { + return x.Nonce + } + return 0 +} + +type AllReply_Tx struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TxnType AllReply_TxnType `protobuf:"varint,1,opt,name=txn_type,json=txnType,proto3,enum=txpool.AllReply_TxnType" json:"txn_type,omitempty"` + Sender *types.H160 `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` + RlpTx []byte `protobuf:"bytes,3,opt,name=rlp_tx,json=rlpTx,proto3" json:"rlp_tx,omitempty"` +} + +func (x *AllReply_Tx) Reset() { + *x = AllReply_Tx{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AllReply_Tx) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AllReply_Tx) ProtoMessage() {} + +func (x *AllReply_Tx) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AllReply_Tx.ProtoReflect.Descriptor instead. +func (*AllReply_Tx) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *AllReply_Tx) GetTxnType() AllReply_TxnType { + if x != nil { + return x.TxnType + } + return AllReply_PENDING +} + +func (x *AllReply_Tx) GetSender() *types.H160 { + if x != nil { + return x.Sender + } + return nil +} + +func (x *AllReply_Tx) GetRlpTx() []byte { + if x != nil { + return x.RlpTx + } + return nil +} + +type PendingReply_Tx struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender *types.H160 `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + RlpTx []byte `protobuf:"bytes,2,opt,name=rlp_tx,json=rlpTx,proto3" json:"rlp_tx,omitempty"` + IsLocal bool `protobuf:"varint,3,opt,name=is_local,json=isLocal,proto3" json:"is_local,omitempty"` +} + +func (x *PendingReply_Tx) Reset() { + *x = PendingReply_Tx{} + if protoimpl.UnsafeEnabled { + mi := &file_txpool_txpool_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PendingReply_Tx) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PendingReply_Tx) ProtoMessage() {} + +func (x *PendingReply_Tx) ProtoReflect() protoreflect.Message { + mi := &file_txpool_txpool_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PendingReply_Tx.ProtoReflect.Descriptor instead. +func (*PendingReply_Tx) Descriptor() ([]byte, []int) { + return file_txpool_txpool_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *PendingReply_Tx) GetSender() *types.H160 { + if x != nil { + return x.Sender + } + return nil +} + +func (x *PendingReply_Tx) GetRlpTx() []byte { + if x != nil { + return x.RlpTx + } + return nil +} + +func (x *PendingReply_Tx) GetIsLocal() bool { + if x != nil { + return x.IsLocal + } + return false +} + +var File_txpool_txpool_proto protoreflect.FileDescriptor + +var file_txpool_txpool_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2f, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x1a, 0x1b, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2f, 0x0a, + 0x08, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x06, 0x68, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0x25, + 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, + 0x72, 0x6c, 0x70, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x72, + 0x6c, 0x70, 0x54, 0x78, 0x73, 0x22, 0x54, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x30, 0x0a, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x08, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x3a, 0x0a, 0x13, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, + 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x22, 0x2c, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x17, 0x0a, 0x07, + 0x72, 0x6c, 0x70, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x72, + 0x6c, 0x70, 0x54, 0x78, 0x73, 0x22, 0x0e, 0x0a, 0x0c, 0x4f, 0x6e, 0x41, 0x64, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x25, 0x0a, 0x0a, 0x4f, 0x6e, 0x41, 0x64, 0x64, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x70, 0x6c, 0x5f, 0x74, 0x78, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x72, 0x70, 0x6c, 0x54, 0x78, 0x73, 0x22, 0x0c, 0x0a, 0x0a, + 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x08, 0x41, + 0x6c, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x41, 0x6c, + 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x54, 0x78, 0x52, 0x03, 0x74, 0x78, 0x73, 0x1a, 0x75, + 0x0a, 0x02, 0x54, 0x78, 0x12, 0x33, 0x0a, 0x08, 0x74, 0x78, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, + 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x54, 0x78, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x07, 0x74, 0x78, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x48, 0x31, 0x36, 0x30, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x15, + 0x0a, 0x06, 0x72, 0x6c, 0x70, 0x5f, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x72, 0x6c, 0x70, 0x54, 0x78, 0x22, 0x30, 0x0a, 0x07, 0x54, 0x78, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0a, 0x0a, + 0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x53, + 0x45, 0x5f, 0x46, 0x45, 0x45, 0x10, 0x02, 0x22, 0x96, 0x01, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x74, 0x78, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x50, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x2e, 0x54, 0x78, 0x52, 0x03, + 0x74, 0x78, 0x73, 0x1a, 0x5b, 0x0a, 0x02, 0x54, 0x78, 0x12, 0x23, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x48, 0x31, 0x36, 0x30, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x15, + 0x0a, 0x06, 0x72, 0x6c, 0x70, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x72, 0x6c, 0x70, 0x54, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x7b, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x61, 0x73, 0x65, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x46, 0x65, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x35, + 0x0a, 0x0c, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, 0x36, 0x30, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x38, 0x0a, 0x0a, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2a, + 0x6c, 0x0a, 0x0c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, + 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x01, + 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x45, 0x45, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x57, 0x10, + 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, + 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, + 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x32, 0xec, 0x03, + 0x0a, 0x06, 0x54, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x31, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, + 0x10, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x78, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x73, 0x1a, 0x10, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x78, 0x48, 0x61, 0x73, + 0x68, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x64, 0x64, 0x12, 0x12, 0x2e, 0x74, 0x78, 0x70, + 0x6f, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, + 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x46, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x1b, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, + 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2b, 0x0a, 0x03, 0x41, 0x6c, 0x6c, 0x12, + 0x12, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x41, 0x6c, 0x6c, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x37, 0x0a, 0x07, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, + 0x6c, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x33, + 0x0a, 0x05, 0x4f, 0x6e, 0x41, 0x64, 0x64, 0x12, 0x14, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, + 0x2e, 0x4f, 0x6e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, + 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x4f, 0x6e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x30, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x2e, + 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x4e, 0x6f, 0x6e, + 0x63, 0x65, 0x12, 0x14, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x74, 0x78, 0x70, 0x6f, 0x6f, + 0x6c, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x11, 0x5a, 0x0f, + 0x2e, 0x2f, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x3b, 0x74, 0x78, 0x70, 0x6f, 0x6f, 0x6c, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_txpool_txpool_proto_rawDescOnce sync.Once + file_txpool_txpool_proto_rawDescData = file_txpool_txpool_proto_rawDesc +) + +func file_txpool_txpool_proto_rawDescGZIP() []byte { + file_txpool_txpool_proto_rawDescOnce.Do(func() { + file_txpool_txpool_proto_rawDescData = protoimpl.X.CompressGZIP(file_txpool_txpool_proto_rawDescData) + }) + return file_txpool_txpool_proto_rawDescData +} + +var file_txpool_txpool_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_txpool_txpool_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_txpool_txpool_proto_goTypes = []interface{}{ + (ImportResult)(0), // 0: txpool.ImportResult + (AllReply_TxnType)(0), // 1: txpool.AllReply.TxnType + (*TxHashes)(nil), // 2: txpool.TxHashes + (*AddRequest)(nil), // 3: txpool.AddRequest + (*AddReply)(nil), // 4: txpool.AddReply + (*TransactionsRequest)(nil), // 5: txpool.TransactionsRequest + (*TransactionsReply)(nil), // 6: txpool.TransactionsReply + (*OnAddRequest)(nil), // 7: txpool.OnAddRequest + (*OnAddReply)(nil), // 8: txpool.OnAddReply + (*AllRequest)(nil), // 9: txpool.AllRequest + (*AllReply)(nil), // 10: txpool.AllReply + (*PendingReply)(nil), // 11: txpool.PendingReply + (*StatusRequest)(nil), // 12: txpool.StatusRequest + (*StatusReply)(nil), // 13: txpool.StatusReply + (*NonceRequest)(nil), // 14: txpool.NonceRequest + (*NonceReply)(nil), // 15: txpool.NonceReply + (*AllReply_Tx)(nil), // 16: txpool.AllReply.Tx + (*PendingReply_Tx)(nil), // 17: txpool.PendingReply.Tx + (*types.H256)(nil), // 18: types.H256 + (*types.H160)(nil), // 19: types.H160 + (*emptypb.Empty)(nil), // 20: google.protobuf.Empty + (*types.VersionReply)(nil), // 21: types.VersionReply +} +var file_txpool_txpool_proto_depIdxs = []int32{ + 18, // 0: txpool.TxHashes.hashes:type_name -> types.H256 + 0, // 1: txpool.AddReply.imported:type_name -> txpool.ImportResult + 18, // 2: txpool.TransactionsRequest.hashes:type_name -> types.H256 + 16, // 3: txpool.AllReply.txs:type_name -> txpool.AllReply.Tx + 17, // 4: txpool.PendingReply.txs:type_name -> txpool.PendingReply.Tx + 19, // 5: txpool.NonceRequest.address:type_name -> types.H160 + 1, // 6: txpool.AllReply.Tx.txn_type:type_name -> txpool.AllReply.TxnType + 19, // 7: txpool.AllReply.Tx.sender:type_name -> types.H160 + 19, // 8: txpool.PendingReply.Tx.sender:type_name -> types.H160 + 20, // 9: txpool.Txpool.Version:input_type -> google.protobuf.Empty + 2, // 10: txpool.Txpool.FindUnknown:input_type -> txpool.TxHashes + 3, // 11: txpool.Txpool.Add:input_type -> txpool.AddRequest + 5, // 12: txpool.Txpool.Transactions:input_type -> txpool.TransactionsRequest + 9, // 13: txpool.Txpool.All:input_type -> txpool.AllRequest + 20, // 14: txpool.Txpool.Pending:input_type -> google.protobuf.Empty + 7, // 15: txpool.Txpool.OnAdd:input_type -> txpool.OnAddRequest + 12, // 16: txpool.Txpool.Status:input_type -> txpool.StatusRequest + 14, // 17: txpool.Txpool.Nonce:input_type -> txpool.NonceRequest + 21, // 18: txpool.Txpool.Version:output_type -> types.VersionReply + 2, // 19: txpool.Txpool.FindUnknown:output_type -> txpool.TxHashes + 4, // 20: txpool.Txpool.Add:output_type -> txpool.AddReply + 6, // 21: txpool.Txpool.Transactions:output_type -> txpool.TransactionsReply + 10, // 22: txpool.Txpool.All:output_type -> txpool.AllReply + 11, // 23: txpool.Txpool.Pending:output_type -> txpool.PendingReply + 8, // 24: txpool.Txpool.OnAdd:output_type -> txpool.OnAddReply + 13, // 25: txpool.Txpool.Status:output_type -> txpool.StatusReply + 15, // 26: txpool.Txpool.Nonce:output_type -> txpool.NonceReply + 18, // [18:27] is the sub-list for method output_type + 9, // [9:18] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_txpool_txpool_proto_init() } +func file_txpool_txpool_proto_init() { + if File_txpool_txpool_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_txpool_txpool_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TxHashes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransactionsReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnAddRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OnAddReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AllRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AllReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PendingReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatusReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NonceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NonceReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AllReply_Tx); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_txpool_txpool_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PendingReply_Tx); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_txpool_txpool_proto_rawDesc, + NumEnums: 2, + NumMessages: 16, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_txpool_txpool_proto_goTypes, + DependencyIndexes: file_txpool_txpool_proto_depIdxs, + EnumInfos: file_txpool_txpool_proto_enumTypes, + MessageInfos: file_txpool_txpool_proto_msgTypes, + }.Build() + File_txpool_txpool_proto = out.File + file_txpool_txpool_proto_rawDesc = nil + file_txpool_txpool_proto_goTypes = nil + file_txpool_txpool_proto_depIdxs = nil +} diff --git a/erigon-lib/gointerfaces/txpool/txpool_grpc.pb.go b/erigon-lib/gointerfaces/txpool/txpool_grpc.pb.go new file mode 100644 index 00000000000..d8c6da0d0a6 --- /dev/null +++ b/erigon-lib/gointerfaces/txpool/txpool_grpc.pb.go @@ -0,0 +1,455 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.2 +// source: txpool/txpool.proto + +package txpool + +import ( + context "context" + types "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + Txpool_Version_FullMethodName = "/txpool.Txpool/Version" + Txpool_FindUnknown_FullMethodName = "/txpool.Txpool/FindUnknown" + Txpool_Add_FullMethodName = "/txpool.Txpool/Add" + Txpool_Transactions_FullMethodName = "/txpool.Txpool/Transactions" + Txpool_All_FullMethodName = "/txpool.Txpool/All" + Txpool_Pending_FullMethodName = "/txpool.Txpool/Pending" + Txpool_OnAdd_FullMethodName = "/txpool.Txpool/OnAdd" + Txpool_Status_FullMethodName = "/txpool.Txpool/Status" + Txpool_Nonce_FullMethodName = "/txpool.Txpool/Nonce" +) + +// TxpoolClient is the client API for Txpool service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type TxpoolClient interface { + // Version returns the service version number + Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) + // preserves incoming order, changes amount, unknown hashes will be omitted + FindUnknown(ctx context.Context, in *TxHashes, opts ...grpc.CallOption) (*TxHashes, error) + // Expecting signed transactions. Preserves incoming order and amount + // Adding txs as local (use P2P to add remote txs) + Add(ctx context.Context, in *AddRequest, opts ...grpc.CallOption) (*AddReply, error) + // preserves incoming order and amount, if some transaction doesn't exists in pool - returns nil in this slot + Transactions(ctx context.Context, in *TransactionsRequest, opts ...grpc.CallOption) (*TransactionsReply, error) + // returns all transactions from tx pool + All(ctx context.Context, in *AllRequest, opts ...grpc.CallOption) (*AllReply, error) + // Returns all pending (processable) transactions, in ready-for-mining order + Pending(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PendingReply, error) + // subscribe to new transactions add event + OnAdd(ctx context.Context, in *OnAddRequest, opts ...grpc.CallOption) (Txpool_OnAddClient, error) + // returns high level status + Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusReply, error) + // returns nonce for given account + Nonce(ctx context.Context, in *NonceRequest, opts ...grpc.CallOption) (*NonceReply, error) +} + +type txpoolClient struct { + cc grpc.ClientConnInterface +} + +func NewTxpoolClient(cc grpc.ClientConnInterface) TxpoolClient { + return &txpoolClient{cc} +} + +func (c *txpoolClient) Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.VersionReply, error) { + out := new(types.VersionReply) + err := c.cc.Invoke(ctx, Txpool_Version_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *txpoolClient) FindUnknown(ctx context.Context, in *TxHashes, opts ...grpc.CallOption) (*TxHashes, error) { + out := new(TxHashes) + err := c.cc.Invoke(ctx, Txpool_FindUnknown_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *txpoolClient) Add(ctx context.Context, in *AddRequest, opts ...grpc.CallOption) (*AddReply, error) { + out := new(AddReply) + err := c.cc.Invoke(ctx, Txpool_Add_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *txpoolClient) Transactions(ctx context.Context, in *TransactionsRequest, opts ...grpc.CallOption) (*TransactionsReply, error) { + out := new(TransactionsReply) + err := c.cc.Invoke(ctx, Txpool_Transactions_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *txpoolClient) All(ctx context.Context, in *AllRequest, opts ...grpc.CallOption) (*AllReply, error) { + out := new(AllReply) + err := c.cc.Invoke(ctx, Txpool_All_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *txpoolClient) Pending(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PendingReply, error) { + out := new(PendingReply) + err := c.cc.Invoke(ctx, Txpool_Pending_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *txpoolClient) OnAdd(ctx context.Context, in *OnAddRequest, opts ...grpc.CallOption) (Txpool_OnAddClient, error) { + stream, err := c.cc.NewStream(ctx, &Txpool_ServiceDesc.Streams[0], Txpool_OnAdd_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &txpoolOnAddClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type Txpool_OnAddClient interface { + Recv() (*OnAddReply, error) + grpc.ClientStream +} + +type txpoolOnAddClient struct { + grpc.ClientStream +} + +func (x *txpoolOnAddClient) Recv() (*OnAddReply, error) { + m := new(OnAddReply) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *txpoolClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusReply, error) { + out := new(StatusReply) + err := c.cc.Invoke(ctx, Txpool_Status_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *txpoolClient) Nonce(ctx context.Context, in *NonceRequest, opts ...grpc.CallOption) (*NonceReply, error) { + out := new(NonceReply) + err := c.cc.Invoke(ctx, Txpool_Nonce_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// TxpoolServer is the server API for Txpool service. +// All implementations must embed UnimplementedTxpoolServer +// for forward compatibility +type TxpoolServer interface { + // Version returns the service version number + Version(context.Context, *emptypb.Empty) (*types.VersionReply, error) + // preserves incoming order, changes amount, unknown hashes will be omitted + FindUnknown(context.Context, *TxHashes) (*TxHashes, error) + // Expecting signed transactions. Preserves incoming order and amount + // Adding txs as local (use P2P to add remote txs) + Add(context.Context, *AddRequest) (*AddReply, error) + // preserves incoming order and amount, if some transaction doesn't exists in pool - returns nil in this slot + Transactions(context.Context, *TransactionsRequest) (*TransactionsReply, error) + // returns all transactions from tx pool + All(context.Context, *AllRequest) (*AllReply, error) + // Returns all pending (processable) transactions, in ready-for-mining order + Pending(context.Context, *emptypb.Empty) (*PendingReply, error) + // subscribe to new transactions add event + OnAdd(*OnAddRequest, Txpool_OnAddServer) error + // returns high level status + Status(context.Context, *StatusRequest) (*StatusReply, error) + // returns nonce for given account + Nonce(context.Context, *NonceRequest) (*NonceReply, error) + mustEmbedUnimplementedTxpoolServer() +} + +// UnimplementedTxpoolServer must be embedded to have forward compatible implementations. +type UnimplementedTxpoolServer struct { +} + +func (UnimplementedTxpoolServer) Version(context.Context, *emptypb.Empty) (*types.VersionReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Version not implemented") +} +func (UnimplementedTxpoolServer) FindUnknown(context.Context, *TxHashes) (*TxHashes, error) { + return nil, status.Errorf(codes.Unimplemented, "method FindUnknown not implemented") +} +func (UnimplementedTxpoolServer) Add(context.Context, *AddRequest) (*AddReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Add not implemented") +} +func (UnimplementedTxpoolServer) Transactions(context.Context, *TransactionsRequest) (*TransactionsReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Transactions not implemented") +} +func (UnimplementedTxpoolServer) All(context.Context, *AllRequest) (*AllReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method All not implemented") +} +func (UnimplementedTxpoolServer) Pending(context.Context, *emptypb.Empty) (*PendingReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Pending not implemented") +} +func (UnimplementedTxpoolServer) OnAdd(*OnAddRequest, Txpool_OnAddServer) error { + return status.Errorf(codes.Unimplemented, "method OnAdd not implemented") +} +func (UnimplementedTxpoolServer) Status(context.Context, *StatusRequest) (*StatusReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Status not implemented") +} +func (UnimplementedTxpoolServer) Nonce(context.Context, *NonceRequest) (*NonceReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Nonce not implemented") +} +func (UnimplementedTxpoolServer) mustEmbedUnimplementedTxpoolServer() {} + +// UnsafeTxpoolServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to TxpoolServer will +// result in compilation errors. +type UnsafeTxpoolServer interface { + mustEmbedUnimplementedTxpoolServer() +} + +func RegisterTxpoolServer(s grpc.ServiceRegistrar, srv TxpoolServer) { + s.RegisterService(&Txpool_ServiceDesc, srv) +} + +func _Txpool_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TxpoolServer).Version(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Txpool_Version_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TxpoolServer).Version(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Txpool_FindUnknown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TxHashes) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TxpoolServer).FindUnknown(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Txpool_FindUnknown_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TxpoolServer).FindUnknown(ctx, req.(*TxHashes)) + } + return interceptor(ctx, in, info, handler) +} + +func _Txpool_Add_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TxpoolServer).Add(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Txpool_Add_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TxpoolServer).Add(ctx, req.(*AddRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Txpool_Transactions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TransactionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TxpoolServer).Transactions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Txpool_Transactions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TxpoolServer).Transactions(ctx, req.(*TransactionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Txpool_All_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AllRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TxpoolServer).All(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Txpool_All_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TxpoolServer).All(ctx, req.(*AllRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Txpool_Pending_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TxpoolServer).Pending(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Txpool_Pending_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TxpoolServer).Pending(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Txpool_OnAdd_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(OnAddRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(TxpoolServer).OnAdd(m, &txpoolOnAddServer{stream}) +} + +type Txpool_OnAddServer interface { + Send(*OnAddReply) error + grpc.ServerStream +} + +type txpoolOnAddServer struct { + grpc.ServerStream +} + +func (x *txpoolOnAddServer) Send(m *OnAddReply) error { + return x.ServerStream.SendMsg(m) +} + +func _Txpool_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TxpoolServer).Status(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Txpool_Status_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TxpoolServer).Status(ctx, req.(*StatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Txpool_Nonce_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NonceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TxpoolServer).Nonce(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Txpool_Nonce_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TxpoolServer).Nonce(ctx, req.(*NonceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Txpool_ServiceDesc is the grpc.ServiceDesc for Txpool service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Txpool_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "txpool.Txpool", + HandlerType: (*TxpoolServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "Version", + Handler: _Txpool_Version_Handler, + }, + { + MethodName: "FindUnknown", + Handler: _Txpool_FindUnknown_Handler, + }, + { + MethodName: "Add", + Handler: _Txpool_Add_Handler, + }, + { + MethodName: "Transactions", + Handler: _Txpool_Transactions_Handler, + }, + { + MethodName: "All", + Handler: _Txpool_All_Handler, + }, + { + MethodName: "Pending", + Handler: _Txpool_Pending_Handler, + }, + { + MethodName: "Status", + Handler: _Txpool_Status_Handler, + }, + { + MethodName: "Nonce", + Handler: _Txpool_Nonce_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "OnAdd", + Handler: _Txpool_OnAdd_Handler, + ServerStreams: true, + }, + }, + Metadata: "txpool/txpool.proto", +} diff --git a/erigon-lib/gointerfaces/type_utils.go b/erigon-lib/gointerfaces/type_utils.go new file mode 100644 index 00000000000..e2dd156a551 --- /dev/null +++ b/erigon-lib/gointerfaces/type_utils.go @@ -0,0 +1,140 @@ +/* + Copyright 2021 Erigon contributors + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package gointerfaces + +import ( + "encoding/binary" + + "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" +) + +func ConvertH2048ToBloom(h2048 *types.H2048) [256]byte { + var bloom [256]byte + copy(bloom[:], ConvertH512ToBytes(h2048.Hi.Hi)) + copy(bloom[64:], ConvertH512ToBytes(h2048.Hi.Lo)) + copy(bloom[128:], ConvertH512ToBytes(h2048.Lo.Hi)) + copy(bloom[192:], ConvertH512ToBytes(h2048.Lo.Lo)) + return bloom +} + +func ConvertBytesToH2048(data []byte) *types.H2048 { + return &types.H2048{ + Hi: &types.H1024{ + Hi: ConvertBytesToH512(data), + Lo: ConvertBytesToH512(data[64:]), + }, + Lo: &types.H1024{ + Hi: ConvertBytesToH512(data[128:]), + Lo: ConvertBytesToH512(data[192:]), + }, + } +} + +func ConvertH256ToHash(h256 *types.H256) [32]byte { + var hash [32]byte + binary.BigEndian.PutUint64(hash[0:], h256.Hi.Hi) + binary.BigEndian.PutUint64(hash[8:], h256.Hi.Lo) + binary.BigEndian.PutUint64(hash[16:], h256.Lo.Hi) + binary.BigEndian.PutUint64(hash[24:], h256.Lo.Lo) + return hash +} + +func ConvertH512ToHash(h512 *types.H512) [64]byte { + var b [64]byte + binary.BigEndian.PutUint64(b[0:], h512.Hi.Hi.Hi) + binary.BigEndian.PutUint64(b[8:], h512.Hi.Hi.Lo) + binary.BigEndian.PutUint64(b[16:], h512.Hi.Lo.Hi) + binary.BigEndian.PutUint64(b[24:], h512.Hi.Lo.Lo) + binary.BigEndian.PutUint64(b[32:], h512.Lo.Hi.Hi) + binary.BigEndian.PutUint64(b[40:], h512.Lo.Hi.Lo) + binary.BigEndian.PutUint64(b[48:], h512.Lo.Lo.Hi) + binary.BigEndian.PutUint64(b[56:], h512.Lo.Lo.Lo) + return b +} + +func ConvertHashesToH256(hashes [][32]byte) []*types.H256 { + res := make([]*types.H256, len(hashes)) + for i := range hashes { + res[i] = ConvertHashToH256(hashes[i]) + } + return res +} + +func ConvertHashToH256(hash [32]byte) *types.H256 { + return &types.H256{ + Lo: &types.H128{Lo: binary.BigEndian.Uint64(hash[24:]), Hi: binary.BigEndian.Uint64(hash[16:])}, + Hi: &types.H128{Lo: binary.BigEndian.Uint64(hash[8:]), Hi: binary.BigEndian.Uint64(hash[0:])}, + } +} + +func ConvertHashToH512(hash [64]byte) *types.H512 { + return ConvertBytesToH512(hash[:]) +} + +func ConvertH160toAddress(h160 *types.H160) [20]byte { + var addr [20]byte + binary.BigEndian.PutUint64(addr[0:], h160.Hi.Hi) + binary.BigEndian.PutUint64(addr[8:], h160.Hi.Lo) + binary.BigEndian.PutUint32(addr[16:], h160.Lo) + return addr +} + +func ConvertAddressToH160(addr [20]byte) *types.H160 { + return &types.H160{ + Lo: binary.BigEndian.Uint32(addr[16:]), + Hi: &types.H128{Lo: binary.BigEndian.Uint64(addr[8:]), Hi: binary.BigEndian.Uint64(addr[0:])}, + } +} + +func ConvertH256ToUint256Int(h256 *types.H256) *uint256.Int { + // Note: uint256.Int is an array of 4 uint64 in little-endian order, i.e. most significant word is [3] + var i uint256.Int + i[3] = h256.Hi.Hi + i[2] = h256.Hi.Lo + i[1] = h256.Lo.Hi + i[0] = h256.Lo.Lo + return &i +} + +func ConvertUint256IntToH256(i *uint256.Int) *types.H256 { + // Note: uint256.Int is an array of 4 uint64 in little-endian order, i.e. most significant word is [3] + return &types.H256{ + Lo: &types.H128{Lo: i[0], Hi: i[1]}, + Hi: &types.H128{Lo: i[2], Hi: i[3]}, + } +} + +func ConvertH512ToBytes(h512 *types.H512) []byte { + b := ConvertH512ToHash(h512) + return b[:] +} + +func ConvertBytesToH512(b []byte) *types.H512 { + if len(b) < 64 { + var b1 [64]byte + copy(b1[:], b) + b = b1[:] + } + return &types.H512{ + Lo: &types.H256{ + Lo: &types.H128{Lo: binary.BigEndian.Uint64(b[56:]), Hi: binary.BigEndian.Uint64(b[48:])}, + Hi: &types.H128{Lo: binary.BigEndian.Uint64(b[40:]), Hi: binary.BigEndian.Uint64(b[32:])}, + }, + Hi: &types.H256{ + Lo: &types.H128{Lo: binary.BigEndian.Uint64(b[24:]), Hi: binary.BigEndian.Uint64(b[16:])}, + Hi: &types.H128{Lo: binary.BigEndian.Uint64(b[8:]), Hi: binary.BigEndian.Uint64(b[0:])}, + }, + } +} diff --git a/erigon-lib/gointerfaces/types/types.pb.go b/erigon-lib/gointerfaces/types/types.pb.go new file mode 100644 index 00000000000..adae72de7ec --- /dev/null +++ b/erigon-lib/gointerfaces/types/types.pb.go @@ -0,0 +1,1520 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.2 +// source: types/types.proto + +package types + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type H128 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hi uint64 `protobuf:"varint,1,opt,name=hi,proto3" json:"hi,omitempty"` + Lo uint64 `protobuf:"varint,2,opt,name=lo,proto3" json:"lo,omitempty"` +} + +func (x *H128) Reset() { + *x = H128{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *H128) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*H128) ProtoMessage() {} + +func (x *H128) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use H128.ProtoReflect.Descriptor instead. +func (*H128) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{0} +} + +func (x *H128) GetHi() uint64 { + if x != nil { + return x.Hi + } + return 0 +} + +func (x *H128) GetLo() uint64 { + if x != nil { + return x.Lo + } + return 0 +} + +type H160 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hi *H128 `protobuf:"bytes,1,opt,name=hi,proto3" json:"hi,omitempty"` + Lo uint32 `protobuf:"varint,2,opt,name=lo,proto3" json:"lo,omitempty"` +} + +func (x *H160) Reset() { + *x = H160{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *H160) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*H160) ProtoMessage() {} + +func (x *H160) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use H160.ProtoReflect.Descriptor instead. +func (*H160) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{1} +} + +func (x *H160) GetHi() *H128 { + if x != nil { + return x.Hi + } + return nil +} + +func (x *H160) GetLo() uint32 { + if x != nil { + return x.Lo + } + return 0 +} + +type H256 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hi *H128 `protobuf:"bytes,1,opt,name=hi,proto3" json:"hi,omitempty"` + Lo *H128 `protobuf:"bytes,2,opt,name=lo,proto3" json:"lo,omitempty"` +} + +func (x *H256) Reset() { + *x = H256{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *H256) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*H256) ProtoMessage() {} + +func (x *H256) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use H256.ProtoReflect.Descriptor instead. +func (*H256) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{2} +} + +func (x *H256) GetHi() *H128 { + if x != nil { + return x.Hi + } + return nil +} + +func (x *H256) GetLo() *H128 { + if x != nil { + return x.Lo + } + return nil +} + +type H512 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hi *H256 `protobuf:"bytes,1,opt,name=hi,proto3" json:"hi,omitempty"` + Lo *H256 `protobuf:"bytes,2,opt,name=lo,proto3" json:"lo,omitempty"` +} + +func (x *H512) Reset() { + *x = H512{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *H512) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*H512) ProtoMessage() {} + +func (x *H512) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use H512.ProtoReflect.Descriptor instead. +func (*H512) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{3} +} + +func (x *H512) GetHi() *H256 { + if x != nil { + return x.Hi + } + return nil +} + +func (x *H512) GetLo() *H256 { + if x != nil { + return x.Lo + } + return nil +} + +type H1024 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hi *H512 `protobuf:"bytes,1,opt,name=hi,proto3" json:"hi,omitempty"` + Lo *H512 `protobuf:"bytes,2,opt,name=lo,proto3" json:"lo,omitempty"` +} + +func (x *H1024) Reset() { + *x = H1024{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *H1024) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*H1024) ProtoMessage() {} + +func (x *H1024) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use H1024.ProtoReflect.Descriptor instead. +func (*H1024) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{4} +} + +func (x *H1024) GetHi() *H512 { + if x != nil { + return x.Hi + } + return nil +} + +func (x *H1024) GetLo() *H512 { + if x != nil { + return x.Lo + } + return nil +} + +type H2048 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Hi *H1024 `protobuf:"bytes,1,opt,name=hi,proto3" json:"hi,omitempty"` + Lo *H1024 `protobuf:"bytes,2,opt,name=lo,proto3" json:"lo,omitempty"` +} + +func (x *H2048) Reset() { + *x = H2048{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *H2048) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*H2048) ProtoMessage() {} + +func (x *H2048) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use H2048.ProtoReflect.Descriptor instead. +func (*H2048) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{5} +} + +func (x *H2048) GetHi() *H1024 { + if x != nil { + return x.Hi + } + return nil +} + +func (x *H2048) GetLo() *H1024 { + if x != nil { + return x.Lo + } + return nil +} + +// Reply message containing the current service version on the service side +type VersionReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Major uint32 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"` + Minor uint32 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"` + Patch uint32 `protobuf:"varint,3,opt,name=patch,proto3" json:"patch,omitempty"` +} + +func (x *VersionReply) Reset() { + *x = VersionReply{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VersionReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VersionReply) ProtoMessage() {} + +func (x *VersionReply) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VersionReply.ProtoReflect.Descriptor instead. +func (*VersionReply) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{6} +} + +func (x *VersionReply) GetMajor() uint32 { + if x != nil { + return x.Major + } + return 0 +} + +func (x *VersionReply) GetMinor() uint32 { + if x != nil { + return x.Minor + } + return 0 +} + +func (x *VersionReply) GetPatch() uint32 { + if x != nil { + return x.Patch + } + return 0 +} + +// ------------------------------------------------------------------------ +// Engine API types +// See https://github.com/ethereum/execution-apis/blob/main/src/engine +type ExecutionPayload struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` // v1 - no withdrawals, v2 - with withdrawals, v3 - with blob gas + ParentHash *H256 `protobuf:"bytes,2,opt,name=parent_hash,json=parentHash,proto3" json:"parent_hash,omitempty"` + Coinbase *H160 `protobuf:"bytes,3,opt,name=coinbase,proto3" json:"coinbase,omitempty"` + StateRoot *H256 `protobuf:"bytes,4,opt,name=state_root,json=stateRoot,proto3" json:"state_root,omitempty"` + ReceiptRoot *H256 `protobuf:"bytes,5,opt,name=receipt_root,json=receiptRoot,proto3" json:"receipt_root,omitempty"` + LogsBloom *H2048 `protobuf:"bytes,6,opt,name=logs_bloom,json=logsBloom,proto3" json:"logs_bloom,omitempty"` + PrevRandao *H256 `protobuf:"bytes,7,opt,name=prev_randao,json=prevRandao,proto3" json:"prev_randao,omitempty"` + BlockNumber uint64 `protobuf:"varint,8,opt,name=block_number,json=blockNumber,proto3" json:"block_number,omitempty"` + GasLimit uint64 `protobuf:"varint,9,opt,name=gas_limit,json=gasLimit,proto3" json:"gas_limit,omitempty"` + GasUsed uint64 `protobuf:"varint,10,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + Timestamp uint64 `protobuf:"varint,11,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + ExtraData []byte `protobuf:"bytes,12,opt,name=extra_data,json=extraData,proto3" json:"extra_data,omitempty"` + BaseFeePerGas *H256 `protobuf:"bytes,13,opt,name=base_fee_per_gas,json=baseFeePerGas,proto3" json:"base_fee_per_gas,omitempty"` + BlockHash *H256 `protobuf:"bytes,14,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` + Transactions [][]byte `protobuf:"bytes,15,rep,name=transactions,proto3" json:"transactions,omitempty"` + Withdrawals []*Withdrawal `protobuf:"bytes,16,rep,name=withdrawals,proto3" json:"withdrawals,omitempty"` + BlobGasUsed *uint64 `protobuf:"varint,17,opt,name=blob_gas_used,json=blobGasUsed,proto3,oneof" json:"blob_gas_used,omitempty"` + ExcessBlobGas *uint64 `protobuf:"varint,18,opt,name=excess_blob_gas,json=excessBlobGas,proto3,oneof" json:"excess_blob_gas,omitempty"` +} + +func (x *ExecutionPayload) Reset() { + *x = ExecutionPayload{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionPayload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionPayload) ProtoMessage() {} + +func (x *ExecutionPayload) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExecutionPayload.ProtoReflect.Descriptor instead. +func (*ExecutionPayload) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{7} +} + +func (x *ExecutionPayload) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *ExecutionPayload) GetParentHash() *H256 { + if x != nil { + return x.ParentHash + } + return nil +} + +func (x *ExecutionPayload) GetCoinbase() *H160 { + if x != nil { + return x.Coinbase + } + return nil +} + +func (x *ExecutionPayload) GetStateRoot() *H256 { + if x != nil { + return x.StateRoot + } + return nil +} + +func (x *ExecutionPayload) GetReceiptRoot() *H256 { + if x != nil { + return x.ReceiptRoot + } + return nil +} + +func (x *ExecutionPayload) GetLogsBloom() *H2048 { + if x != nil { + return x.LogsBloom + } + return nil +} + +func (x *ExecutionPayload) GetPrevRandao() *H256 { + if x != nil { + return x.PrevRandao + } + return nil +} + +func (x *ExecutionPayload) GetBlockNumber() uint64 { + if x != nil { + return x.BlockNumber + } + return 0 +} + +func (x *ExecutionPayload) GetGasLimit() uint64 { + if x != nil { + return x.GasLimit + } + return 0 +} + +func (x *ExecutionPayload) GetGasUsed() uint64 { + if x != nil { + return x.GasUsed + } + return 0 +} + +func (x *ExecutionPayload) GetTimestamp() uint64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *ExecutionPayload) GetExtraData() []byte { + if x != nil { + return x.ExtraData + } + return nil +} + +func (x *ExecutionPayload) GetBaseFeePerGas() *H256 { + if x != nil { + return x.BaseFeePerGas + } + return nil +} + +func (x *ExecutionPayload) GetBlockHash() *H256 { + if x != nil { + return x.BlockHash + } + return nil +} + +func (x *ExecutionPayload) GetTransactions() [][]byte { + if x != nil { + return x.Transactions + } + return nil +} + +func (x *ExecutionPayload) GetWithdrawals() []*Withdrawal { + if x != nil { + return x.Withdrawals + } + return nil +} + +func (x *ExecutionPayload) GetBlobGasUsed() uint64 { + if x != nil && x.BlobGasUsed != nil { + return *x.BlobGasUsed + } + return 0 +} + +func (x *ExecutionPayload) GetExcessBlobGas() uint64 { + if x != nil && x.ExcessBlobGas != nil { + return *x.ExcessBlobGas + } + return 0 +} + +type Withdrawal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Index uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` + ValidatorIndex uint64 `protobuf:"varint,2,opt,name=validator_index,json=validatorIndex,proto3" json:"validator_index,omitempty"` + Address *H160 `protobuf:"bytes,3,opt,name=address,proto3" json:"address,omitempty"` + Amount uint64 `protobuf:"varint,4,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *Withdrawal) Reset() { + *x = Withdrawal{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Withdrawal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Withdrawal) ProtoMessage() {} + +func (x *Withdrawal) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Withdrawal.ProtoReflect.Descriptor instead. +func (*Withdrawal) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{8} +} + +func (x *Withdrawal) GetIndex() uint64 { + if x != nil { + return x.Index + } + return 0 +} + +func (x *Withdrawal) GetValidatorIndex() uint64 { + if x != nil { + return x.ValidatorIndex + } + return 0 +} + +func (x *Withdrawal) GetAddress() *H160 { + if x != nil { + return x.Address + } + return nil +} + +func (x *Withdrawal) GetAmount() uint64 { + if x != nil { + return x.Amount + } + return 0 +} + +type BlobsBundleV1 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // TODO(eip-4844): define a protobuf message for type KZGCommitment + Commitments [][]byte `protobuf:"bytes,1,rep,name=commitments,proto3" json:"commitments,omitempty"` + // TODO(eip-4844): define a protobuf message for type Blob + Blobs [][]byte `protobuf:"bytes,2,rep,name=blobs,proto3" json:"blobs,omitempty"` + Proofs [][]byte `protobuf:"bytes,3,rep,name=proofs,proto3" json:"proofs,omitempty"` +} + +func (x *BlobsBundleV1) Reset() { + *x = BlobsBundleV1{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlobsBundleV1) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlobsBundleV1) ProtoMessage() {} + +func (x *BlobsBundleV1) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlobsBundleV1.ProtoReflect.Descriptor instead. +func (*BlobsBundleV1) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{9} +} + +func (x *BlobsBundleV1) GetCommitments() [][]byte { + if x != nil { + return x.Commitments + } + return nil +} + +func (x *BlobsBundleV1) GetBlobs() [][]byte { + if x != nil { + return x.Blobs + } + return nil +} + +func (x *BlobsBundleV1) GetProofs() [][]byte { + if x != nil { + return x.Proofs + } + return nil +} + +type NodeInfoPorts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Discovery uint32 `protobuf:"varint,1,opt,name=discovery,proto3" json:"discovery,omitempty"` + Listener uint32 `protobuf:"varint,2,opt,name=listener,proto3" json:"listener,omitempty"` +} + +func (x *NodeInfoPorts) Reset() { + *x = NodeInfoPorts{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInfoPorts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfoPorts) ProtoMessage() {} + +func (x *NodeInfoPorts) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeInfoPorts.ProtoReflect.Descriptor instead. +func (*NodeInfoPorts) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{10} +} + +func (x *NodeInfoPorts) GetDiscovery() uint32 { + if x != nil { + return x.Discovery + } + return 0 +} + +func (x *NodeInfoPorts) GetListener() uint32 { + if x != nil { + return x.Listener + } + return 0 +} + +type NodeInfoReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Enode string `protobuf:"bytes,3,opt,name=enode,proto3" json:"enode,omitempty"` + Enr string `protobuf:"bytes,4,opt,name=enr,proto3" json:"enr,omitempty"` + Ports *NodeInfoPorts `protobuf:"bytes,5,opt,name=ports,proto3" json:"ports,omitempty"` + ListenerAddr string `protobuf:"bytes,6,opt,name=listener_addr,json=listenerAddr,proto3" json:"listener_addr,omitempty"` + Protocols []byte `protobuf:"bytes,7,opt,name=protocols,proto3" json:"protocols,omitempty"` +} + +func (x *NodeInfoReply) Reset() { + *x = NodeInfoReply{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeInfoReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfoReply) ProtoMessage() {} + +func (x *NodeInfoReply) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeInfoReply.ProtoReflect.Descriptor instead. +func (*NodeInfoReply) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{11} +} + +func (x *NodeInfoReply) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *NodeInfoReply) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *NodeInfoReply) GetEnode() string { + if x != nil { + return x.Enode + } + return "" +} + +func (x *NodeInfoReply) GetEnr() string { + if x != nil { + return x.Enr + } + return "" +} + +func (x *NodeInfoReply) GetPorts() *NodeInfoPorts { + if x != nil { + return x.Ports + } + return nil +} + +func (x *NodeInfoReply) GetListenerAddr() string { + if x != nil { + return x.ListenerAddr + } + return "" +} + +func (x *NodeInfoReply) GetProtocols() []byte { + if x != nil { + return x.Protocols + } + return nil +} + +type PeerInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Enode string `protobuf:"bytes,3,opt,name=enode,proto3" json:"enode,omitempty"` + Enr string `protobuf:"bytes,4,opt,name=enr,proto3" json:"enr,omitempty"` + Caps []string `protobuf:"bytes,5,rep,name=caps,proto3" json:"caps,omitempty"` + ConnLocalAddr string `protobuf:"bytes,6,opt,name=conn_local_addr,json=connLocalAddr,proto3" json:"conn_local_addr,omitempty"` + ConnRemoteAddr string `protobuf:"bytes,7,opt,name=conn_remote_addr,json=connRemoteAddr,proto3" json:"conn_remote_addr,omitempty"` + ConnIsInbound bool `protobuf:"varint,8,opt,name=conn_is_inbound,json=connIsInbound,proto3" json:"conn_is_inbound,omitempty"` + ConnIsTrusted bool `protobuf:"varint,9,opt,name=conn_is_trusted,json=connIsTrusted,proto3" json:"conn_is_trusted,omitempty"` + ConnIsStatic bool `protobuf:"varint,10,opt,name=conn_is_static,json=connIsStatic,proto3" json:"conn_is_static,omitempty"` +} + +func (x *PeerInfo) Reset() { + *x = PeerInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PeerInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerInfo) ProtoMessage() {} + +func (x *PeerInfo) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerInfo.ProtoReflect.Descriptor instead. +func (*PeerInfo) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{12} +} + +func (x *PeerInfo) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *PeerInfo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PeerInfo) GetEnode() string { + if x != nil { + return x.Enode + } + return "" +} + +func (x *PeerInfo) GetEnr() string { + if x != nil { + return x.Enr + } + return "" +} + +func (x *PeerInfo) GetCaps() []string { + if x != nil { + return x.Caps + } + return nil +} + +func (x *PeerInfo) GetConnLocalAddr() string { + if x != nil { + return x.ConnLocalAddr + } + return "" +} + +func (x *PeerInfo) GetConnRemoteAddr() string { + if x != nil { + return x.ConnRemoteAddr + } + return "" +} + +func (x *PeerInfo) GetConnIsInbound() bool { + if x != nil { + return x.ConnIsInbound + } + return false +} + +func (x *PeerInfo) GetConnIsTrusted() bool { + if x != nil { + return x.ConnIsTrusted + } + return false +} + +func (x *PeerInfo) GetConnIsStatic() bool { + if x != nil { + return x.ConnIsStatic + } + return false +} + +type ExecutionPayloadBodyV1 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Transactions [][]byte `protobuf:"bytes,1,rep,name=transactions,proto3" json:"transactions,omitempty"` + Withdrawals []*Withdrawal `protobuf:"bytes,2,rep,name=withdrawals,proto3" json:"withdrawals,omitempty"` +} + +func (x *ExecutionPayloadBodyV1) Reset() { + *x = ExecutionPayloadBodyV1{} + if protoimpl.UnsafeEnabled { + mi := &file_types_types_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExecutionPayloadBodyV1) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionPayloadBodyV1) ProtoMessage() {} + +func (x *ExecutionPayloadBodyV1) ProtoReflect() protoreflect.Message { + mi := &file_types_types_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExecutionPayloadBodyV1.ProtoReflect.Descriptor instead. +func (*ExecutionPayloadBodyV1) Descriptor() ([]byte, []int) { + return file_types_types_proto_rawDescGZIP(), []int{13} +} + +func (x *ExecutionPayloadBodyV1) GetTransactions() [][]byte { + if x != nil { + return x.Transactions + } + return nil +} + +func (x *ExecutionPayloadBodyV1) GetWithdrawals() []*Withdrawal { + if x != nil { + return x.Withdrawals + } + return nil +} + +var file_types_types_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.FileOptions)(nil), + ExtensionType: (*uint32)(nil), + Field: 50001, + Name: "types.service_major_version", + Tag: "varint,50001,opt,name=service_major_version", + Filename: "types/types.proto", + }, + { + ExtendedType: (*descriptorpb.FileOptions)(nil), + ExtensionType: (*uint32)(nil), + Field: 50002, + Name: "types.service_minor_version", + Tag: "varint,50002,opt,name=service_minor_version", + Filename: "types/types.proto", + }, + { + ExtendedType: (*descriptorpb.FileOptions)(nil), + ExtensionType: (*uint32)(nil), + Field: 50003, + Name: "types.service_patch_version", + Tag: "varint,50003,opt,name=service_patch_version", + Filename: "types/types.proto", + }, +} + +// Extension fields to descriptorpb.FileOptions. +var ( + // optional uint32 service_major_version = 50001; + E_ServiceMajorVersion = &file_types_types_proto_extTypes[0] + // optional uint32 service_minor_version = 50002; + E_ServiceMinorVersion = &file_types_types_proto_extTypes[1] + // optional uint32 service_patch_version = 50003; + E_ServicePatchVersion = &file_types_types_proto_extTypes[2] +) + +var File_types_types_proto protoreflect.FileDescriptor + +var file_types_types_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x26, 0x0a, 0x04, + 0x48, 0x31, 0x32, 0x38, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x68, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x6c, 0x6f, 0x22, 0x33, 0x0a, 0x04, 0x48, 0x31, 0x36, 0x30, 0x12, 0x1b, 0x0a, 0x02, + 0x68, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x48, 0x31, 0x32, 0x38, 0x52, 0x02, 0x68, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x6f, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x6c, 0x6f, 0x22, 0x40, 0x0a, 0x04, 0x48, 0x32, 0x35, + 0x36, 0x12, 0x1b, 0x0a, 0x02, 0x68, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, 0x32, 0x38, 0x52, 0x02, 0x68, 0x69, 0x12, 0x1b, + 0x0a, 0x02, 0x6c, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x48, 0x31, 0x32, 0x38, 0x52, 0x02, 0x6c, 0x6f, 0x22, 0x40, 0x0a, 0x04, 0x48, + 0x35, 0x31, 0x32, 0x12, 0x1b, 0x0a, 0x02, 0x68, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x02, 0x68, 0x69, + 0x12, 0x1b, 0x0a, 0x02, 0x6c, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x02, 0x6c, 0x6f, 0x22, 0x41, 0x0a, + 0x05, 0x48, 0x31, 0x30, 0x32, 0x34, 0x12, 0x1b, 0x0a, 0x02, 0x68, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, + 0x02, 0x68, 0x69, 0x12, 0x1b, 0x0a, 0x02, 0x6c, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x02, 0x6c, 0x6f, + 0x22, 0x43, 0x0a, 0x05, 0x48, 0x32, 0x30, 0x34, 0x38, 0x12, 0x1c, 0x0a, 0x02, 0x68, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, + 0x30, 0x32, 0x34, 0x52, 0x02, 0x68, 0x69, 0x12, 0x1c, 0x0a, 0x02, 0x6c, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, 0x30, 0x32, + 0x34, 0x52, 0x02, 0x6c, 0x6f, 0x22, 0x50, 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, + 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x22, 0x89, 0x06, 0x0a, 0x10, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x27, 0x0a, 0x08, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, + 0x31, 0x36, 0x30, 0x52, 0x08, 0x63, 0x6f, 0x69, 0x6e, 0x62, 0x61, 0x73, 0x65, 0x12, 0x2a, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x2e, 0x0a, 0x0c, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x70, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0b, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x70, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x12, 0x2b, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, + 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x30, 0x34, 0x38, 0x52, 0x09, 0x6c, 0x6f, 0x67, + 0x73, 0x42, 0x6c, 0x6f, 0x6f, 0x6d, 0x12, 0x2c, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x72, + 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x76, 0x52, 0x61, + 0x6e, 0x64, 0x61, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x73, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x67, 0x61, 0x73, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x10, + 0x62, 0x61, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x73, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, + 0x32, 0x35, 0x36, 0x52, 0x0d, 0x62, 0x61, 0x73, 0x65, 0x46, 0x65, 0x65, 0x50, 0x65, 0x72, 0x47, + 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x61, 0x73, 0x68, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, + 0x32, 0x35, 0x36, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, + 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, + 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x62, 0x47, 0x61, 0x73, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x67, 0x61, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0d, 0x65, 0x78, 0x63, + 0x65, 0x73, 0x73, 0x42, 0x6c, 0x6f, 0x62, 0x47, 0x61, 0x73, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x67, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, + 0x67, 0x61, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x0a, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x25, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x31, 0x36, 0x30, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x5f, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, + 0x31, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x73, 0x22, 0x49, 0x0a, 0x0d, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x6f, 0x72, + 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, + 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x22, 0xca, 0x01, 0x0a, + 0x0d, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x72, 0x12, 0x2a, 0x0a, 0x05, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, + 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x22, 0xb2, 0x02, 0x0a, 0x08, 0x50, 0x65, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, + 0x6e, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x61, 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x61, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x28, + 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, + 0x5f, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x73, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x72, 0x75, 0x73, + 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x49, + 0x73, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, + 0x5f, 0x69, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x49, 0x73, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x22, 0x71, + 0x0a, 0x16, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x56, 0x31, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x0b, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x61, 0x6c, 0x52, 0x0b, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, + 0x73, 0x3a, 0x52, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x6a, + 0x6f, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd1, 0x86, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x6a, 0x6f, 0x72, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x52, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd2, 0x86, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x69, 0x6e, + 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x52, 0x0a, 0x15, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0xd3, 0x86, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x61, 0x74, 0x63, 0x68, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x5a, + 0x0d, 0x2e, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x3b, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_types_types_proto_rawDescOnce sync.Once + file_types_types_proto_rawDescData = file_types_types_proto_rawDesc +) + +func file_types_types_proto_rawDescGZIP() []byte { + file_types_types_proto_rawDescOnce.Do(func() { + file_types_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_types_types_proto_rawDescData) + }) + return file_types_types_proto_rawDescData +} + +var file_types_types_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_types_types_proto_goTypes = []interface{}{ + (*H128)(nil), // 0: types.H128 + (*H160)(nil), // 1: types.H160 + (*H256)(nil), // 2: types.H256 + (*H512)(nil), // 3: types.H512 + (*H1024)(nil), // 4: types.H1024 + (*H2048)(nil), // 5: types.H2048 + (*VersionReply)(nil), // 6: types.VersionReply + (*ExecutionPayload)(nil), // 7: types.ExecutionPayload + (*Withdrawal)(nil), // 8: types.Withdrawal + (*BlobsBundleV1)(nil), // 9: types.BlobsBundleV1 + (*NodeInfoPorts)(nil), // 10: types.NodeInfoPorts + (*NodeInfoReply)(nil), // 11: types.NodeInfoReply + (*PeerInfo)(nil), // 12: types.PeerInfo + (*ExecutionPayloadBodyV1)(nil), // 13: types.ExecutionPayloadBodyV1 + (*descriptorpb.FileOptions)(nil), // 14: google.protobuf.FileOptions +} +var file_types_types_proto_depIdxs = []int32{ + 0, // 0: types.H160.hi:type_name -> types.H128 + 0, // 1: types.H256.hi:type_name -> types.H128 + 0, // 2: types.H256.lo:type_name -> types.H128 + 2, // 3: types.H512.hi:type_name -> types.H256 + 2, // 4: types.H512.lo:type_name -> types.H256 + 3, // 5: types.H1024.hi:type_name -> types.H512 + 3, // 6: types.H1024.lo:type_name -> types.H512 + 4, // 7: types.H2048.hi:type_name -> types.H1024 + 4, // 8: types.H2048.lo:type_name -> types.H1024 + 2, // 9: types.ExecutionPayload.parent_hash:type_name -> types.H256 + 1, // 10: types.ExecutionPayload.coinbase:type_name -> types.H160 + 2, // 11: types.ExecutionPayload.state_root:type_name -> types.H256 + 2, // 12: types.ExecutionPayload.receipt_root:type_name -> types.H256 + 5, // 13: types.ExecutionPayload.logs_bloom:type_name -> types.H2048 + 2, // 14: types.ExecutionPayload.prev_randao:type_name -> types.H256 + 2, // 15: types.ExecutionPayload.base_fee_per_gas:type_name -> types.H256 + 2, // 16: types.ExecutionPayload.block_hash:type_name -> types.H256 + 8, // 17: types.ExecutionPayload.withdrawals:type_name -> types.Withdrawal + 1, // 18: types.Withdrawal.address:type_name -> types.H160 + 10, // 19: types.NodeInfoReply.ports:type_name -> types.NodeInfoPorts + 8, // 20: types.ExecutionPayloadBodyV1.withdrawals:type_name -> types.Withdrawal + 14, // 21: types.service_major_version:extendee -> google.protobuf.FileOptions + 14, // 22: types.service_minor_version:extendee -> google.protobuf.FileOptions + 14, // 23: types.service_patch_version:extendee -> google.protobuf.FileOptions + 24, // [24:24] is the sub-list for method output_type + 24, // [24:24] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 21, // [21:24] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name +} + +func init() { file_types_types_proto_init() } +func file_types_types_proto_init() { + if File_types_types_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_types_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*H128); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*H160); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*H256); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*H512); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*H1024); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*H2048); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VersionReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutionPayload); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Withdrawal); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlobsBundleV1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeInfoPorts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeInfoReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_types_types_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExecutionPayloadBodyV1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_types_types_proto_msgTypes[7].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_types_types_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 3, + NumServices: 0, + }, + GoTypes: file_types_types_proto_goTypes, + DependencyIndexes: file_types_types_proto_depIdxs, + MessageInfos: file_types_types_proto_msgTypes, + ExtensionInfos: file_types_types_proto_extTypes, + }.Build() + File_types_types_proto = out.File + file_types_types_proto_rawDesc = nil + file_types_types_proto_goTypes = nil + file_types_types_proto_depIdxs = nil +} diff --git a/erigon-lib/gointerfaces/version.go b/erigon-lib/gointerfaces/version.go new file mode 100644 index 00000000000..3adc946022d --- /dev/null +++ b/erigon-lib/gointerfaces/version.go @@ -0,0 +1,46 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package gointerfaces + +import ( + "fmt" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" +) + +type Version struct { + Major, Minor, Patch uint32 // interface Version of the client - to perform compatibility check when opening +} + +func VersionFromProto(r *types.VersionReply) Version { + return Version{Major: r.Major, Minor: r.Minor, Patch: r.Patch} +} + +// EnsureVersion - Default policy: allow only patch difference +func EnsureVersion(local Version, remote *types.VersionReply) bool { + if remote.Major != local.Major { + return false + } + if remote.Minor != local.Minor { + return false + } + return true +} + +func (v Version) String() string { + return fmt.Sprintf("%d.%d.%d", v.Major, v.Minor, v.Patch) +} diff --git a/erigon-lib/kv/Readme.md b/erigon-lib/kv/Readme.md new file mode 100644 index 00000000000..4075fce0151 --- /dev/null +++ b/erigon-lib/kv/Readme.md @@ -0,0 +1,147 @@ +#### `Ethdb` package hold's bouquet of objects to access DB + +Words "KV" and "DB" have special meaning here: + +- KV - key-value-style API to access data: let developer manage transactions, stateful cursors. +- DB - object-oriented-style API to access data: Get/Put/Delete/WalkOverTable/MultiPut, managing transactions + internally. + +So, DB abstraction fits 95% times and leads to more maintainable code - because it looks stateless. + +About "key-value-style": Modern key-value databases don't provide Get/Put/Delete methods, +because it's very hard-drive-unfriendly - it pushes developers do random-disk-access which +is [order of magnitude slower than sequential read](https://www.seagate.com/sg/en/tech-insights/lies-damn-lies-and-ssd-benchmark-master-ti/). +To enforce sequential-reads - introduced stateful cursors/iterators - they intentionally look as file-api: +open_cursor/seek/write_data_from_current_position/move_to_end/step_back/step_forward/delete_key_on_current_position/append. + +## Class diagram: + +```asciiflow.com +// This is not call graph, just show classes from low-level to high-level. +// And show which classes satisfy which interfaces. + ++-----------------------------------+ +-----------------------------------+ +| github.com/erigonteh/mdbx-go | | google.golang.org/grpc.ClientConn | +| (app-agnostic MDBX go bindings) | | (app-agnostic RPC and streaming) | ++-----------------------------------+ +-----------------------------------+ + | | + | | + v v ++-----------------------------------+ +-----------------------------------+ +| ethdb/kv_mdbx.go | | ethdb/kv_remote.go | +| (tg-specific MDBX implementaion) | | (tg-specific remote DB access) | ++-----------------------------------+ +-----------------------------------+ + | | + | | + v v ++----------------------------------------------------------------------------------------------+ +| eth/kv_interface.go | +| (Common KV interface. DB-friendly, disk-friendly, cpu-cache-friendly. | +| Same app code can work with local or remote database. | +| Allows experiment with another database implementations. | +| Supports context.Context for cancelation. Any operation can return error) | ++----------------------------------------------------------------------------------------------+ + +Then: +turbo/snapshotsync/block_reader.go.go +erigon-lib/state/aggregator_v3.go + +Then: +kv_temporal.go + +``` + +## ethdb.AbstractKV design: + +- InMemory, ReadOnly: `NewMDBX().Flags(mdbx.ReadOnly).InMem().Open()` +- MultipleDatabases, Customization: `NewMDBX().Path(path).WithBucketsConfig(config).Open()` + + +- 1 Transaction object can be used only within 1 goroutine. +- Only 1 write transaction can be active at a time (other will wait). +- Unlimited read transactions can be active concurrently (not blocked by write transaction). + + +- Methods db.Update, db.View - can be used to open and close short transaction. +- Methods Begin/Commit/Rollback - for long transaction. +- it's safe to call .Rollback() after .Commit(), multiple rollbacks are also safe. Common transaction patter: + +``` +tx, err := db.Begin(true, ethdb.RW) +if err != nil { + return err +} +defer tx.Rollback() // important to avoid transactions leak at panic or early return + +// ... code which uses database in transaction + +err := tx.Commit() +if err != nil { + return err +} +``` + +- No internal copies/allocations. It means: 1. app must copy keys/values before put to database. 2. Data after read from + db - valid only during current transaction - copy it if plan use data after transaction Commit/Rollback. +- Methods .Bucket() and .Cursor(), can’t return nil, can't return error. +- Bucket and Cursor - are interfaces - means different classes can satisfy it: for example `MdbxCursor` + and `MdbxDupSortCursor` classes satisfy it. + If your are not familiar with "DupSort" concept, please read [dupsort.md](https://github.com/ledgerwatch/erigon/blob/devel/docs/programmers_guide/dupsort.md) + + + +- If Cursor returns err!=nil then key SHOULD be != nil (can be []byte{} for example). + Then traversal code look as: + +```go +for k, v, err := c.First(); k != nil; k, v, err = c.Next() { +if err != nil { +return err +} +// logic +} +``` + +- Move cursor: `cursor.Seek(key)` + +## ethdb.Database design: + +- Allows pass multiple implementations +- Allows traversal tables by `db.Walk` + +## ethdb.TxDb design: + +- holds inside 1 long-running transaction and 1 cursor per table +- method Begin DOESN'T create new TxDb object, it means this object can be passed into other objects by pointer, + and high-level app code can start/commit transactions when it needs without re-creating all objects which holds + TxDb pointer. +- This is reason why txDb.CommitAndBegin() method works: inside it creating new transaction object, pointer to TxDb stays + valid. + +## How to dump/load table + +Install all database tools: `make db-tools` + +``` +./build/bin/mdbx_dump -a /erigon/chaindata | lz4 > dump.lz4 +lz4 -d < dump.lz4 | ./build/bin/mdbx_load -an /erigon/chaindata +``` + +## How to get table checksum + +``` +./build/bin/mdbx_dump -s table_name /erigon/chaindata | tail -n +4 | sha256sum # tail here is for excluding header + +Header example: +VERSION=3 +geometry=l268435456,c268435456,u25769803776,s268435456,g268435456 +mapsize=756375552 +maxreaders=120 +format=bytevalue +database=TBL0001 +type=btree +db_pagesize=4096 +duplicates=1 +dupsort=1 +HEADER=END +``` diff --git a/erigon-lib/kv/bitmapdb/bitmapdb.go b/erigon-lib/kv/bitmapdb/bitmapdb.go new file mode 100644 index 00000000000..0311eb60712 --- /dev/null +++ b/erigon-lib/kv/bitmapdb/bitmapdb.go @@ -0,0 +1,430 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bitmapdb + +import ( + "bytes" + "encoding/binary" + "math" + "sort" + "sync" + + "github.com/RoaringBitmap/roaring" + "github.com/RoaringBitmap/roaring/roaring64" + "github.com/c2h5oh/datasize" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" +) + +const MaxUint32 = 1<<32 - 1 + +type ToBitamp interface { + ToBitmap() (*roaring64.Bitmap, error) +} + +var roaringPool = sync.Pool{ + New: func() any { + return roaring.New() + }, +} + +func NewBitmap() *roaring.Bitmap { + a := roaringPool.Get().(*roaring.Bitmap) + a.Clear() + return a +} +func ReturnToPool(a *roaring.Bitmap) { + if a == nil { + return + } + roaringPool.Put(a) +} + +var roaring64Pool = sync.Pool{ + New: func() any { + return roaring64.New() + }, +} + +func NewBitmap64() *roaring64.Bitmap { + a := roaring64Pool.Get().(*roaring64.Bitmap) + a.Clear() + return a +} +func ReturnToPool64(a *roaring64.Bitmap) { + if a == nil { + return + } + roaring64Pool.Put(a) +} + +const ChunkLimit = uint64(1950 * datasize.B) // threshold beyond which MDBX overflow pages appear: 4096 / 2 - (keySize + 8) + +// CutLeft - cut from bitmap `targetSize` bytes from left +// removing lft part from `bm` +// returns nil on zero cardinality +func CutLeft(bm *roaring.Bitmap, sizeLimit uint64) *roaring.Bitmap { + if bm.GetCardinality() == 0 { + return nil + } + + sz := bm.GetSerializedSizeInBytes() + if sz <= sizeLimit { + lft := roaring.New() + lft.AddRange(uint64(bm.Minimum()), uint64(bm.Maximum())+1) + lft.And(bm) + lft.RunOptimize() + bm.Clear() + return lft + } + + from := uint64(bm.Minimum()) + minMax := bm.Maximum() - bm.Minimum() + to := sort.Search(int(minMax), func(i int) bool { // can be optimized to avoid "too small steps", but let's leave it for readability + lft := roaring.New() // bitmap.Clear() method intentionally not used here, because then serialized size of bitmap getting bigger + lft.AddRange(from, from+uint64(i)+1) + lft.And(bm) + lft.RunOptimize() + return lft.GetSerializedSizeInBytes() > sizeLimit + }) + + lft := roaring.New() + lft.AddRange(from, from+uint64(to)) // no +1 because sort.Search returns element which is just higher threshold - but we need lower + lft.And(bm) + bm.RemoveRange(from, from+uint64(to)) + lft.RunOptimize() + return lft +} + +func WalkChunks(bm *roaring.Bitmap, sizeLimit uint64, f func(chunk *roaring.Bitmap, isLast bool) error) error { + for bm.GetCardinality() > 0 { + if err := f(CutLeft(bm, sizeLimit), bm.GetCardinality() == 0); err != nil { + return err + } + } + return nil +} + +func WalkChunkWithKeys(k []byte, m *roaring.Bitmap, sizeLimit uint64, f func(chunkKey []byte, chunk *roaring.Bitmap) error) error { + return WalkChunks(m, sizeLimit, func(chunk *roaring.Bitmap, isLast bool) error { + chunkKey := make([]byte, len(k)+4) + copy(chunkKey, k) + if isLast { + binary.BigEndian.PutUint32(chunkKey[len(k):], ^uint32(0)) + } else { + binary.BigEndian.PutUint32(chunkKey[len(k):], chunk.Maximum()) + } + return f(chunkKey, chunk) + }) +} + +// TruncateRange - gets existing bitmap in db and call RemoveRange operator on it. +// starts from hot shard, stops when shard not overlap with [from-to) +// !Important: [from, to) +func TruncateRange(db kv.RwTx, bucket string, key []byte, to uint32) error { + chunkKey := make([]byte, len(key)+4) + copy(chunkKey, key) + binary.BigEndian.PutUint32(chunkKey[len(chunkKey)-4:], to) + bm, err := Get(db, bucket, key, to, MaxUint32) + if err != nil { + return err + } + + if bm.GetCardinality() > 0 && to <= bm.Maximum() { + bm.RemoveRange(uint64(to), uint64(bm.Maximum())+1) + } + + c, err := db.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + if err := Walk(c, chunkKey, 0, func(k, v []byte) (bool, error) { + if !bytes.HasPrefix(k, key) { + return false, nil + } + if err := db.Delete(bucket, k); err != nil { + return false, err + } + return true, nil + }); err != nil { + return err + } + + buf := bytes.NewBuffer(nil) + return WalkChunkWithKeys(key, bm, ChunkLimit, func(chunkKey []byte, chunk *roaring.Bitmap) error { + buf.Reset() + if _, err := chunk.WriteTo(buf); err != nil { + return err + } + return db.Put(bucket, chunkKey, common.Copy(buf.Bytes())) + }) +} + +// Get - reading as much chunks as needed to satisfy [from, to] condition +// join all chunks to 1 bitmap by Or operator +func Get(db kv.Tx, bucket string, key []byte, from, to uint32) (*roaring.Bitmap, error) { + var chunks []*roaring.Bitmap + + fromKey := make([]byte, len(key)+4) + copy(fromKey, key) + binary.BigEndian.PutUint32(fromKey[len(fromKey)-4:], from) + c, err := db.Cursor(bucket) + if err != nil { + return nil, err + } + defer c.Close() + for k, v, err := c.Seek(fromKey); k != nil; k, v, err = c.Next() { + if err != nil { + return nil, err + } + if !bytes.HasPrefix(k, key) { + break + } + bm := NewBitmap() + defer ReturnToPool(bm) + if _, err := bm.ReadFrom(bytes.NewReader(v)); err != nil { + return nil, err + } + chunks = append(chunks, bm) + if binary.BigEndian.Uint32(k[len(k)-4:]) >= to { + break + } + } + if len(chunks) == 0 { + return roaring.New(), nil + } + return roaring.FastOr(chunks...), nil +} + +// SeekInBitmap - returns value in bitmap which is >= n +// +//nolint:deadcode +func SeekInBitmap(m *roaring.Bitmap, n uint32) (found uint32, ok bool) { + i := m.Iterator() + i.AdvanceIfNeeded(n) + ok = i.HasNext() + if ok { + found = i.Next() + } + return found, ok +} + +// CutLeft - cut from bitmap `targetSize` bytes from left +// removing lft part from `bm` +// returns nil on zero cardinality +func CutLeft64(bm *roaring64.Bitmap, sizeLimit uint64) *roaring64.Bitmap { + if bm.GetCardinality() == 0 { + return nil + } + + sz := bm.GetSerializedSizeInBytes() + if sz <= sizeLimit { + lft := roaring64.New() + lft.AddRange(bm.Minimum(), bm.Maximum()+1) + lft.And(bm) + lft.RunOptimize() + bm.Clear() + return lft + } + + from := bm.Minimum() + minMax := bm.Maximum() - bm.Minimum() + to := sort.Search(int(minMax), func(i int) bool { // can be optimized to avoid "too small steps", but let's leave it for readability + lft := roaring64.New() // bitmap.Clear() method intentionally not used here, because then serialized size of bitmap getting bigger + lft.AddRange(from, from+uint64(i)+1) + lft.And(bm) + lft.RunOptimize() + return lft.GetSerializedSizeInBytes() > sizeLimit + }) + + lft := roaring64.New() + lft.AddRange(from, from+uint64(to)) // no +1 because sort.Search returns element which is just higher threshold - but we need lower + lft.And(bm) + bm.RemoveRange(from, from+uint64(to)) + lft.RunOptimize() + return lft +} + +func WalkChunks64(bm *roaring64.Bitmap, sizeLimit uint64, f func(chunk *roaring64.Bitmap, isLast bool) error) error { + for bm.GetCardinality() > 0 { + if err := f(CutLeft64(bm, sizeLimit), bm.GetCardinality() == 0); err != nil { + return err + } + } + return nil +} + +func WalkChunkWithKeys64(k []byte, m *roaring64.Bitmap, sizeLimit uint64, f func(chunkKey []byte, chunk *roaring64.Bitmap) error) error { + return WalkChunks64(m, sizeLimit, func(chunk *roaring64.Bitmap, isLast bool) error { + chunkKey := make([]byte, len(k)+8) + copy(chunkKey, k) + if isLast { + binary.BigEndian.PutUint64(chunkKey[len(k):], ^uint64(0)) + } else { + binary.BigEndian.PutUint64(chunkKey[len(k):], chunk.Maximum()) + } + return f(chunkKey, chunk) + }) +} + +// TruncateRange - gets existing bitmap in db and call RemoveRange operator on it. +// starts from hot shard, stops when shard not overlap with [from-to) +// !Important: [from, to) +func TruncateRange64(db kv.RwTx, bucket string, key []byte, to uint64) error { + chunkKey := make([]byte, len(key)+8) + copy(chunkKey, key) + binary.BigEndian.PutUint64(chunkKey[len(chunkKey)-8:], to) + bm, err := Get64(db, bucket, key, to, math.MaxUint64) + if err != nil { + return err + } + + if bm.GetCardinality() > 0 && to <= bm.Maximum() { + bm.RemoveRange(to, bm.Maximum()+1) + } + + c, err := db.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + cDel, err := db.RwCursor(bucket) + if err != nil { + return err + } + defer cDel.Close() + if err := Walk(c, chunkKey, 0, func(k, v []byte) (bool, error) { + if !bytes.HasPrefix(k, key) { + return false, nil + } + if err := cDel.Delete(k); err != nil { + return false, err + } + return true, nil + }); err != nil { + return err + } + + buf := bytes.NewBuffer(nil) + return WalkChunkWithKeys64(key, bm, ChunkLimit, func(chunkKey []byte, chunk *roaring64.Bitmap) error { + buf.Reset() + if _, err := chunk.WriteTo(buf); err != nil { + return err + } + return db.Put(bucket, chunkKey, common.Copy(buf.Bytes())) + }) +} + +// Get - reading as much chunks as needed to satisfy [from, to] condition +// join all chunks to 1 bitmap by Or operator +func Get64(db kv.Tx, bucket string, key []byte, from, to uint64) (*roaring64.Bitmap, error) { + var chunks []*roaring64.Bitmap + + fromKey := make([]byte, len(key)+8) + copy(fromKey, key) + binary.BigEndian.PutUint64(fromKey[len(fromKey)-8:], from) + + c, err := db.Cursor(bucket) + if err != nil { + return nil, err + } + defer c.Close() + for k, v, err := c.Seek(fromKey); k != nil; k, v, err = c.Next() { + if err != nil { + return nil, err + } + if !bytes.HasPrefix(k, key) { + break + } + bm := NewBitmap64() + defer ReturnToPool64(bm) + _, err := bm.ReadFrom(bytes.NewReader(v)) + if err != nil { + return nil, err + } + chunks = append(chunks, bm) + if binary.BigEndian.Uint64(k[len(k)-8:]) >= to { + break + } + } + + if len(chunks) == 0 { + return roaring64.New(), nil + } + return roaring64.FastOr(chunks...), nil +} + +// SeekInBitmap - returns value in bitmap which is >= n +func SeekInBitmap64(m *roaring64.Bitmap, n uint64) (found uint64, ok bool) { + if m.IsEmpty() { + return 0, false + } + if n == 0 { + return m.Minimum(), true + } + searchRank := m.Rank(n - 1) + if searchRank >= m.GetCardinality() { + return 0, false + } + found, _ = m.Select(searchRank) + return found, true +} + +func Walk(c kv.Cursor, startkey []byte, fixedbits int, walker func(k, v []byte) (bool, error)) error { + fixedbytes, mask := Bytesmask(fixedbits) + k, v, err := c.Seek(startkey) + if err != nil { + return err + } + for k != nil && len(k) >= fixedbytes && (fixedbits == 0 || bytes.Equal(k[:fixedbytes-1], startkey[:fixedbytes-1]) && (k[fixedbytes-1]&mask) == (startkey[fixedbytes-1]&mask)) { + goOn, err := walker(k, v) + if err != nil { + return err + } + if !goOn { + break + } + k, v, err = c.Next() + if err != nil { + return err + } + } + return nil +} + +func Bytesmask(fixedbits int) (fixedbytes int, mask byte) { + fixedbytes = common.BitLenToByteLen(fixedbits) + shiftbits := fixedbits & 7 + mask = byte(0xff) + if shiftbits != 0 { + mask = 0xff << (8 - shiftbits) + } + return fixedbytes, mask +} + +type ToBitmap interface { + ToBitmap() (*roaring64.Bitmap, error) +} + +func ToIter(it roaring64.IntIterable64) *ToIterInterface { return &ToIterInterface{it: it} } + +type ToIterInterface struct{ it roaring64.IntIterable64 } + +func (i *ToIterInterface) HasNext() bool { return i.it.HasNext() } +func (i *ToIterInterface) Next() (uint64, error) { return i.it.Next(), nil } diff --git a/erigon-lib/kv/bitmapdb/bitmapdb_test.go b/erigon-lib/kv/bitmapdb/bitmapdb_test.go new file mode 100644 index 00000000000..b3a4e9bfc02 --- /dev/null +++ b/erigon-lib/kv/bitmapdb/bitmapdb_test.go @@ -0,0 +1,71 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bitmapdb_test + +import ( + "testing" + + "github.com/RoaringBitmap/roaring" + "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" + "github.com/stretchr/testify/require" +) + +func TestCutLeft(t *testing.T) { + bm := roaring.New() + for j := 0; j < 10_000; j += 20 { + bm.AddRange(uint64(j), uint64(j+10)) + } + N := uint64(1024) + for bm.GetCardinality() > 0 { + lft := bitmapdb.CutLeft(bm, N) + lftSz := lft.GetSerializedSizeInBytes() + if bm.GetCardinality() > 0 { + require.True(t, lftSz > N-256 && lftSz < N+256) + } else { + require.True(t, lft.GetSerializedSizeInBytes() > 0) + require.True(t, lftSz < N+256) + } + } + + bm = roaring.New() + for j := 0; j < 10_000; j += 20 { + bm.AddRange(uint64(j), uint64(j+10)) + } + N = uint64(2048) + for bm.GetCardinality() > 0 { + lft := bitmapdb.CutLeft(bm, N) + lftSz := lft.GetSerializedSizeInBytes() + if bm.GetCardinality() > 0 { + require.True(t, lftSz > N-256 && lftSz < N+256) + } else { + require.True(t, lft.GetSerializedSizeInBytes() > 0) + require.True(t, lftSz < N+256) + } + } + + bm = roaring.New() + bm.Add(1) + lft := bitmapdb.CutLeft(bm, N) + require.True(t, lft.GetSerializedSizeInBytes() > 0) + require.True(t, lft.GetCardinality() == 1) + require.True(t, bm.GetCardinality() == 0) + + bm = roaring.New() + lft = bitmapdb.CutLeft(bm, N) + require.True(t, lft == nil) + require.True(t, bm.GetCardinality() == 0) +} diff --git a/erigon-lib/kv/bitmapdb/fixed_size.go b/erigon-lib/kv/bitmapdb/fixed_size.go new file mode 100644 index 00000000000..97bc501b7e7 --- /dev/null +++ b/erigon-lib/kv/bitmapdb/fixed_size.go @@ -0,0 +1,320 @@ +/* +Copyright 2022 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package bitmapdb + +import ( + "bufio" + "encoding/binary" + "fmt" + "os" + "path/filepath" + "reflect" + "time" + "unsafe" + + "github.com/c2h5oh/datasize" + mmap2 "github.com/edsrzf/mmap-go" + "github.com/ledgerwatch/log/v3" +) + +type FixedSizeBitmaps struct { + f *os.File + filePath, fileName string + + data []uint64 + metaData []byte + amount uint64 + version uint8 + + m mmap2.MMap + bitsPerBitmap int + size int + modTime time.Time +} + +func OpenFixedSizeBitmaps(filePath string, bitsPerBitmap int) (*FixedSizeBitmaps, error) { + _, fName := filepath.Split(filePath) + idx := &FixedSizeBitmaps{ + filePath: filePath, + fileName: fName, + bitsPerBitmap: bitsPerBitmap, + } + + var err error + idx.f, err = os.Open(filePath) + if err != nil { + return nil, fmt.Errorf("OpenFile: %w", err) + } + var stat os.FileInfo + if stat, err = idx.f.Stat(); err != nil { + return nil, err + } + idx.size = int(stat.Size()) + idx.modTime = stat.ModTime() + idx.m, err = mmap2.MapRegion(idx.f, idx.size, mmap2.RDONLY, 0, 0) + if err != nil { + return nil, err + } + idx.metaData = idx.m[:MetaHeaderSize] + idx.data = castToArrU64(idx.m[MetaHeaderSize:]) + + idx.version = idx.metaData[0] + idx.amount = binary.BigEndian.Uint64(idx.metaData[1 : 8+1]) + + return idx, nil +} + +func (bm *FixedSizeBitmaps) FileName() string { return bm.fileName } +func (bm *FixedSizeBitmaps) FilePath() string { return bm.filePath } +func (bm *FixedSizeBitmaps) Close() { + if bm.m != nil { + if err := bm.m.Unmap(); err != nil { + log.Trace("unmap", "err", err, "file", bm.FileName()) + } + bm.m = nil + } + if bm.f != nil { + if err := bm.f.Close(); err != nil { + log.Trace("close", "err", err, "file", bm.FileName()) + } + bm.f = nil + } +} + +func (bm *FixedSizeBitmaps) At(item uint64) (res []uint64, err error) { + if item > bm.amount { + return nil, fmt.Errorf("too big item number: %d > %d", item, bm.amount) + } + + n := bm.bitsPerBitmap * int(item) + blkFrom, bitFrom := n/64, n%64 + blkTo := (n+bm.bitsPerBitmap)/64 + 1 + bitTo := 64 + + var j uint64 + for i := blkFrom; i < blkTo; i++ { + if i == blkTo-1 { + bitTo = (n + bm.bitsPerBitmap) % 64 + } + for bit := bitFrom; bit < bitTo; bit++ { + if bm.data[i]&(1< bm.amount { + return 0, 0, false, false, fmt.Errorf("too big item number: %d > %d", item, bm.amount) + } + n := bm.bitsPerBitmap * int(item) + blkFrom, bitFrom := n/64, n%64 + blkTo := (n+bm.bitsPerBitmap)/64 + 1 + bitTo := 64 + + var j uint64 + for i := blkFrom; i < blkTo; i++ { + if i == blkTo-1 { + bitTo = (n + bm.bitsPerBitmap) % 64 + } + for bit := bitFrom; bit < bitTo; bit++ { + if bm.data[i]&(1<= after { + if !ok { + ok = true + fst = j + } else { + ok2 = true + snd = j + return + } + } + } + j++ + } + bitFrom = 0 + } + + return +} + +type FixedSizeBitmapsWriter struct { + f *os.File + + indexFile, tmpIdxFilePath string + data []uint64 // slice of correct size for the index to work with + metaData []byte + m mmap2.MMap + + version uint8 + amount uint64 + size int + bitsPerBitmap uint64 + + logger log.Logger + noFsync bool // fsync is enabled by default, but tests can manually disable +} + +const MetaHeaderSize = 64 + +func NewFixedSizeBitmapsWriter(indexFile string, bitsPerBitmap int, amount uint64, logger log.Logger) (*FixedSizeBitmapsWriter, error) { + pageSize := os.Getpagesize() + //TODO: use math.SafeMul() + bytesAmount := MetaHeaderSize + (bitsPerBitmap*int(amount))/8 + size := (bytesAmount/pageSize + 1) * pageSize // must be page-size-aligned + idx := &FixedSizeBitmapsWriter{ + indexFile: indexFile, + tmpIdxFilePath: indexFile + ".tmp", + bitsPerBitmap: uint64(bitsPerBitmap), + size: size, + amount: amount, + version: 1, + logger: logger, + } + + _ = os.Remove(idx.tmpIdxFilePath) + + var err error + idx.f, err = os.Create(idx.tmpIdxFilePath) + if err != nil { + return nil, err + } + + if err := growFileToSize(idx.f, idx.size); err != nil { + return nil, err + } + + idx.m, err = mmap2.MapRegion(idx.f, idx.size, mmap2.RDWR, 0, 0) + if err != nil { + return nil, err + } + + idx.metaData = idx.m[:MetaHeaderSize] + idx.data = castToArrU64(idx.m[MetaHeaderSize:]) + //if err := mmap.MadviseNormal(idx.m); err != nil { + // return nil, err + //} + idx.metaData[0] = idx.version + binary.BigEndian.PutUint64(idx.metaData[1:], idx.amount) + idx.amount = binary.BigEndian.Uint64(idx.metaData[1 : 8+1]) + + return idx, nil +} +func (w *FixedSizeBitmapsWriter) Close() { + if w.m != nil { + if err := w.m.Unmap(); err != nil { + log.Trace("unmap", "err", err, "file", w.f.Name()) + } + w.m = nil + } + if w.f != nil { + if err := w.f.Close(); err != nil { + log.Trace("close", "err", err, "file", w.f.Name()) + } + w.f = nil + } +} +func growFileToSize(f *os.File, size int) error { + pageSize := os.Getpagesize() + pages := size / pageSize + wr := bufio.NewWriterSize(f, int(4*datasize.MB)) + page := make([]byte, pageSize) + for i := 0; i < pages; i++ { + if _, err := wr.Write(page); err != nil { + return err + } + } + if err := wr.Flush(); err != nil { + return err + } + return nil +} + +// Create a []uint64 view of the file +func castToArrU64(in []byte) []uint64 { + var view []uint64 + header := (*reflect.SliceHeader)(unsafe.Pointer(&view)) + header.Data = (*reflect.SliceHeader)(unsafe.Pointer(&in)).Data + header.Len = len(in) / 8 + header.Cap = header.Len + return view +} + +func (w *FixedSizeBitmapsWriter) AddArray(item uint64, listOfValues []uint64) error { + if item > w.amount { + return fmt.Errorf("too big item number: %d > %d", item, w.amount) + } + offset := item * w.bitsPerBitmap + for _, v := range listOfValues { + if v > w.bitsPerBitmap { + return fmt.Errorf("too big value: %d > %d", v, w.bitsPerBitmap) + } + n := offset + v + blkAt, bitAt := int(n/64), int(n%64) + if blkAt > len(w.data) { + return fmt.Errorf("too big value: %d, %d, max: %d", item, listOfValues, len(w.data)) + } + w.data[blkAt] |= (1 << bitAt) + } + return nil +} + +func (w *FixedSizeBitmapsWriter) Build() error { + if err := w.m.Flush(); err != nil { + return err + } + if err := w.fsync(); err != nil { + return err + } + + if err := w.m.Unmap(); err != nil { + return err + } + w.m = nil + + if err := w.f.Close(); err != nil { + return err + } + w.f = nil + + _ = os.Remove(w.indexFile) + if err := os.Rename(w.tmpIdxFilePath, w.indexFile); err != nil { + return err + } + return nil +} + +func (w *FixedSizeBitmapsWriter) DisableFsync() { w.noFsync = true } + +// fsync - other processes/goroutines must see only "fully-complete" (valid) files. No partial-writes. +// To achieve it: write to .tmp file then `rename` when file is ready. +// Machine may power-off right after `rename` - it means `fsync` must be before `rename` +func (w *FixedSizeBitmapsWriter) fsync() error { + if w.noFsync { + return nil + } + if err := w.f.Sync(); err != nil { + w.logger.Warn("couldn't fsync", "err", err, "file", w.tmpIdxFilePath) + return err + } + return nil +} diff --git a/erigon-lib/kv/bitmapdb/fixed_size_test.go b/erigon-lib/kv/bitmapdb/fixed_size_test.go new file mode 100644 index 00000000000..9f513c5833b --- /dev/null +++ b/erigon-lib/kv/bitmapdb/fixed_size_test.go @@ -0,0 +1,108 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package bitmapdb + +import ( + "os" + "path/filepath" + "testing" + + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" +) + +func TestFixedSizeBitmaps(t *testing.T) { + + tmpDir, require := t.TempDir(), require.New(t) + must := require.NoError + idxPath := filepath.Join(tmpDir, "idx.tmp") + wr, err := NewFixedSizeBitmapsWriter(idxPath, 14, 7, log.New()) + require.NoError(err) + defer wr.Close() + + must(wr.AddArray(0, []uint64{3, 9, 11})) + must(wr.AddArray(1, []uint64{1, 2, 3})) + must(wr.AddArray(2, []uint64{4, 8, 13})) + must(wr.AddArray(3, []uint64{1, 13})) + must(wr.AddArray(4, []uint64{1, 13})) + must(wr.AddArray(5, []uint64{1, 13})) + must(wr.AddArray(6, []uint64{0, 9, 13})) + must(wr.AddArray(7, []uint64{7})) + + require.Error(wr.AddArray(8, []uint64{8})) + err = wr.Build() + require.NoError(err) + + bm, err := OpenFixedSizeBitmaps(idxPath, 14) + require.NoError(err) + defer bm.Close() + + at := func(item uint64) []uint64 { + n, err := bm.At(item) + require.NoError(err) + return n + } + + require.Equal([]uint64{3, 9, 11}, at(0)) + require.Equal([]uint64{1, 2, 3}, at(1)) + require.Equal([]uint64{4, 8, 13}, at(2)) + require.Equal([]uint64{1, 13}, at(3)) + require.Equal([]uint64{1, 13}, at(4)) + require.Equal([]uint64{1, 13}, at(5)) + require.Equal([]uint64{0, 9, 13}, at(6)) + require.Equal([]uint64{7}, at(7)) + + fst, snd, ok, ok2, err := bm.First2At(7, 0) + require.NoError(err) + require.Equal(uint64(7), fst) + require.Equal(uint64(0), snd) + require.Equal(true, ok) + require.Equal(false, ok2) + + fst, snd, ok, ok2, err = bm.First2At(2, 8) + require.NoError(err) + require.Equal(uint64(8), fst) + require.Equal(uint64(13), snd) + require.Equal(true, ok) + require.Equal(true, ok2) + + fst, snd, ok, ok2, err = bm.First2At(2, 9) + require.NoError(err) + require.Equal(uint64(13), fst) + require.Equal(uint64(0), snd) + require.Equal(true, ok) + require.Equal(false, ok2) + + _, err = bm.At(8) + require.Error(err) +} + +func TestPageAlined(t *testing.T) { + tmpDir, require := t.TempDir(), require.New(t) + idxPath := filepath.Join(tmpDir, "idx.tmp") + + bm2, err := NewFixedSizeBitmapsWriter(idxPath, 128, 100, log.New()) + require.NoError(err) + require.Equal((128/8*100/os.Getpagesize()+1)*os.Getpagesize(), bm2.size) + defer bm2.Close() + bm2.Close() + + bm3, err := NewFixedSizeBitmapsWriter(idxPath, 128, 1000, log.New()) + require.NoError(err) + require.Equal((128/8*1000/os.Getpagesize()+1)*os.Getpagesize(), bm3.size) + defer bm3.Close() +} diff --git a/erigon-lib/kv/bitmapdb/stream.go b/erigon-lib/kv/bitmapdb/stream.go new file mode 100644 index 00000000000..59ffe5f0bba --- /dev/null +++ b/erigon-lib/kv/bitmapdb/stream.go @@ -0,0 +1,34 @@ +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package bitmapdb + +import ( + "github.com/RoaringBitmap/roaring/roaring64" +) + +type BitmapStream struct { + bm *roaring64.Bitmap + it roaring64.IntPeekable64 +} + +func NewBitmapStream(bm *roaring64.Bitmap) *BitmapStream { + return &BitmapStream{bm: bm, it: bm.Iterator()} +} +func (it *BitmapStream) HasNext() bool { return it.it.HasNext() } +func (it *BitmapStream) Close() { ReturnToPool64(it.bm) } +func (it *BitmapStream) Next() (uint64, error) { return it.it.Next(), nil } +func (it *BitmapStream) ToBitmap() (*roaring64.Bitmap, error) { return it.bm, nil } diff --git a/common/dbutils/composite_keys.go b/erigon-lib/kv/dbutils/composite_keys.go similarity index 95% rename from common/dbutils/composite_keys.go rename to erigon-lib/kv/dbutils/composite_keys.go index d2274f022e3..2be332fbfee 100644 --- a/common/dbutils/composite_keys.go +++ b/erigon-lib/kv/dbutils/composite_keys.go @@ -174,12 +174,3 @@ func encodeTimestamp(timestamp uint64) []byte { } return suffix } - -func decodeTimestamp(suffix []byte) (uint64, []byte) { - bytecount := int(suffix[0] >> 5) - timestamp := uint64(suffix[0] & 0x1f) - for i := 1; i < bytecount; i++ { - timestamp = (timestamp << 8) | uint64(suffix[i]) - } - return timestamp, suffix[bytecount:] -} diff --git a/common/dbutils/composite_keys_test.go b/erigon-lib/kv/dbutils/composite_keys_test.go similarity index 93% rename from common/dbutils/composite_keys_test.go rename to erigon-lib/kv/dbutils/composite_keys_test.go index 7eac33bcfc1..619225a1b47 100644 --- a/common/dbutils/composite_keys_test.go +++ b/erigon-lib/kv/dbutils/composite_keys_test.go @@ -3,10 +3,9 @@ package dbutils import ( "testing" + "github.com/ledgerwatch/erigon-lib/common" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/stretchr/testify/assert" - - "github.com/ledgerwatch/erigon/common" ) func TestPlainParseStoragePrefix(t *testing.T) { @@ -36,7 +35,7 @@ func TestPlainParseCompositeStorageKey(t *testing.T) { } func TestParseStoragePrefix(t *testing.T) { - expectedAddrHash, _ := common.HashData(libcommon.HexToAddress("0x5A0b54D5dc17e0AadC383d2db43B0a0D3E029c4c").Bytes()) + expectedAddrHash, _ := libcommon.HashData(libcommon.HexToAddress("0x5A0b54D5dc17e0AadC383d2db43B0a0D3E029c4c").Bytes()) expectedIncarnation := uint64(999000999) prefix := GenerateStoragePrefix(expectedAddrHash[:], expectedIncarnation) diff --git a/common/dbutils/helper.go b/erigon-lib/kv/dbutils/helper.go similarity index 100% rename from common/dbutils/helper.go rename to erigon-lib/kv/dbutils/helper.go diff --git a/common/dbutils/history_index.go b/erigon-lib/kv/dbutils/history_index.go similarity index 100% rename from common/dbutils/history_index.go rename to erigon-lib/kv/dbutils/history_index.go diff --git a/common/dbutils/suffix_type.go b/erigon-lib/kv/dbutils/suffix_type.go similarity index 100% rename from common/dbutils/suffix_type.go rename to erigon-lib/kv/dbutils/suffix_type.go diff --git a/erigon-lib/kv/helpers.go b/erigon-lib/kv/helpers.go new file mode 100644 index 00000000000..727a140a124 --- /dev/null +++ b/erigon-lib/kv/helpers.go @@ -0,0 +1,222 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package kv + +import ( + "context" + "fmt" + "os" + "sync" + "sync/atomic" + "time" + + "github.com/erigontech/mdbx-go/mdbx" + "github.com/ledgerwatch/erigon-lib/common" +) + +func DefaultPageSize() uint64 { + osPageSize := os.Getpagesize() + if osPageSize < 4096 { // reduce further may lead to errors (because some data is just big) + osPageSize = 4096 + } else if osPageSize > mdbx.MaxPageSize { + osPageSize = mdbx.MaxPageSize + } + osPageSize = osPageSize / 4096 * 4096 // ensure it's rounded + return uint64(osPageSize) +} + +// BigChunks - read `table` by big chunks - restart read transaction after each 1 minutes +func BigChunks(db RoDB, table string, from []byte, walker func(tx Tx, k, v []byte) (bool, error)) error { + rollbackEvery := time.NewTicker(1 * time.Minute) + + var stop bool + for !stop { + if err := db.View(context.Background(), func(tx Tx) error { + c, err := tx.Cursor(table) + if err != nil { + return err + } + defer c.Close() + + k, v, err := c.Seek(from) + Loop: + for ; k != nil; k, v, err = c.Next() { + if err != nil { + return err + } + + // break loop before walker() call, to make sure all keys are received by walker() exactly once + select { + case <-rollbackEvery.C: + + break Loop + default: + } + + ok, err := walker(tx, k, v) + if err != nil { + return err + } + if !ok { + stop = true + break + } + } + + if k == nil { + stop = true + } + + from = common.Copy(k) // next transaction will start from this key + + return nil + }); err != nil { + return err + } + } + return nil +} + +var ( + bytesTrue = []byte{1} + bytesFalse = []byte{0} +) + +func bytes2bool(in []byte) bool { + if len(in) < 1 { + return false + } + return in[0] == 1 +} + +var ErrChanged = fmt.Errorf("key must not change") + +// EnsureNotChangedBool - used to store immutable config flags in db. protects from human mistakes +func EnsureNotChangedBool(tx GetPut, bucket string, k []byte, value bool) (ok, enabled bool, err error) { + vBytes, err := tx.GetOne(bucket, k) + if err != nil { + return false, enabled, err + } + if vBytes == nil { + if value { + vBytes = bytesTrue + } else { + vBytes = bytesFalse + } + if err := tx.Put(bucket, k, vBytes); err != nil { + return false, enabled, err + } + } + + enabled = bytes2bool(vBytes) + return value == enabled, enabled, nil +} + +func GetBool(tx Getter, bucket string, k []byte) (enabled bool, err error) { + vBytes, err := tx.GetOne(bucket, k) + if err != nil { + return false, err + } + return bytes2bool(vBytes), nil +} + +func ReadAhead(ctx context.Context, db RoDB, progress *atomic.Bool, table string, from []byte, amount uint32) (clean func()) { + if db == nil { + return func() {} + } + if ok := progress.CompareAndSwap(false, true); !ok { + return func() {} + } + ctx, cancel := context.WithCancel(ctx) + wg := sync.WaitGroup{} + clean = func() { + cancel() + wg.Wait() + } + wg.Add(1) + go func() { + defer wg.Done() + defer progress.Store(false) + _ = db.View(ctx, func(tx Tx) error { + c, err := tx.Cursor(table) + if err != nil { + return err + } + defer c.Close() + + for k, v, err := c.Seek(from); k != nil && amount > 0; k, v, err = c.Next() { + if err != nil { + return err + } + if len(v) > 0 { + _, _ = v[0], v[len(v)-1] + } + amount-- + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + } + return nil + }) + }() + return clean +} + +// FirstKey - candidate on move to kv.Tx interface +func FirstKey(tx Tx, table string) ([]byte, error) { + c, err := tx.Cursor(table) + if err != nil { + return nil, err + } + defer c.Close() + k, _, err := c.First() + if err != nil { + return nil, err + } + return k, nil +} + +// LastKey - candidate on move to kv.Tx interface +func LastKey(tx Tx, table string) ([]byte, error) { + c, err := tx.Cursor(table) + if err != nil { + return nil, err + } + defer c.Close() + k, _, err := c.Last() + if err != nil { + return nil, err + } + return k, nil +} + +// NextSubtree does []byte++. Returns false if overflow. +func NextSubtree(in []byte) ([]byte, bool) { + r := make([]byte, len(in)) + copy(r, in) + for i := len(r) - 1; i >= 0; i-- { + if r[i] != 255 { + r[i]++ + return r, true + } + + r = r[:i] // make it shorter, because in tries after 11ff goes 12, but not 1200 + } + return nil, false +} diff --git a/erigon-lib/kv/iter/helpers.go b/erigon-lib/kv/iter/helpers.go new file mode 100644 index 00000000000..05dc18a1015 --- /dev/null +++ b/erigon-lib/kv/iter/helpers.go @@ -0,0 +1,114 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package iter + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/require" +) + +func ToArr[T any](s Unary[T]) (res []T, err error) { + for s.HasNext() { + k, err := s.Next() + if err != nil { + return res, err + } + res = append(res, k) + } + return res, nil +} + +func ToDualArray[K, V any](s Dual[K, V]) (keys []K, values []V, err error) { + for s.HasNext() { + k, v, err := s.Next() + if err != nil { + return keys, values, err + } + keys = append(keys, k) + values = append(values, v) + } + return keys, values, nil +} + +func ExpectEqualU64(tb testing.TB, s1, s2 Unary[uint64]) { + tb.Helper() + ExpectEqual[uint64](tb, s1, s2) +} +func ExpectEqual[V comparable](tb testing.TB, s1, s2 Unary[V]) { + tb.Helper() + for s1.HasNext() && s2.HasNext() { + k1, e1 := s1.Next() + k2, e2 := s2.Next() + require.Equal(tb, e1 == nil, e2 == nil) + require.Equal(tb, k1, k2) + } + + has1 := s1.HasNext() + has2 := s2.HasNext() + var label string + if has1 { + v1, _ := s1.Next() + label = fmt.Sprintf("v1: %v", v1) + } + if has2 { + v2, _ := s2.Next() + label += fmt.Sprintf(" v2: %v", v2) + } + require.False(tb, has1, label) + require.False(tb, has2, label) +} + +// PairsWithErrorIter - return N, keys and then error +type PairsWithErrorIter struct { + errorAt, i int +} + +func PairsWithError(errorAt int) *PairsWithErrorIter { + return &PairsWithErrorIter{errorAt: errorAt} +} +func (m *PairsWithErrorIter) HasNext() bool { return true } +func (m *PairsWithErrorIter) Next() ([]byte, []byte, error) { + if m.i >= m.errorAt { + return nil, nil, fmt.Errorf("expected error at iteration: %d", m.errorAt) + } + m.i++ + return []byte(fmt.Sprintf("%x", m.i)), []byte(fmt.Sprintf("%x", m.i)), nil +} + +func Count[T any](s Unary[T]) (cnt int, err error) { + for s.HasNext() { + _, err := s.Next() + if err != nil { + return cnt, err + } + cnt++ + } + return cnt, err +} + +func CountDual[K, V any](s Dual[K, V]) (cnt int, err error) { + for s.HasNext() { + _, _, err := s.Next() + if err != nil { + return cnt, err + } + cnt++ + } + return cnt, err +} diff --git a/erigon-lib/kv/iter/iter.go b/erigon-lib/kv/iter/iter.go new file mode 100644 index 00000000000..d722caed15e --- /dev/null +++ b/erigon-lib/kv/iter/iter.go @@ -0,0 +1,571 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package iter + +import ( + "bytes" + + "github.com/ledgerwatch/erigon-lib/kv/order" + "golang.org/x/exp/constraints" + "golang.org/x/exp/slices" +) + +type Closer interface { + Close() +} + +var ( + EmptyU64 = &EmptyUnary[uint64]{} + EmptyKV = &EmptyDual[[]byte, []byte]{} +) + +type ( + EmptyUnary[T any] struct{} + EmptyDual[K, V any] struct{} +) + +func (EmptyUnary[T]) HasNext() bool { return false } +func (EmptyUnary[T]) Next() (v T, err error) { return v, err } +func (EmptyDual[K, V]) HasNext() bool { return false } +func (EmptyDual[K, V]) Next() (k K, v V, err error) { return k, v, err } + +type ArrStream[V any] struct { + arr []V + i int +} + +func ReverseArray[V any](arr []V) *ArrStream[V] { + arr = slices.Clone(arr) + for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 { + arr[i], arr[j] = arr[j], arr[i] + } + return Array(arr) +} +func Array[V any](arr []V) *ArrStream[V] { return &ArrStream[V]{arr: arr} } +func (it *ArrStream[V]) HasNext() bool { return it.i < len(it.arr) } +func (it *ArrStream[V]) Close() {} +func (it *ArrStream[V]) Next() (V, error) { + v := it.arr[it.i] + it.i++ + return v, nil +} +func (it *ArrStream[V]) NextBatch() ([]V, error) { + v := it.arr[it.i:] + it.i = len(it.arr) + return v, nil +} + +func Range[T constraints.Integer](from, to T) *RangeIter[T] { + if from == to { + to++ + } + return &RangeIter[T]{i: from, to: to} +} + +type RangeIter[T constraints.Integer] struct { + i, to T +} + +func (it *RangeIter[T]) HasNext() bool { return it.i < it.to } +func (it *RangeIter[T]) Close() {} +func (it *RangeIter[T]) Next() (T, error) { + v := it.i + it.i++ + return v, nil +} + +// UnionKVIter - merge 2 kv.Pairs streams to 1 in lexicographically order +// 1-st stream has higher priority - when 2 streams return same key +type UnionKVIter struct { + x, y KV + xHasNext, yHasNext bool + xNextK, xNextV []byte + yNextK, yNextV []byte + limit int + err error +} + +func UnionKV(x, y KV, limit int) KV { + if x == nil && y == nil { + return EmptyKV + } + if x == nil { + return y + } + if y == nil { + return x + } + m := &UnionKVIter{x: x, y: y, limit: limit} + m.advanceX() + m.advanceY() + return m +} +func (m *UnionKVIter) HasNext() bool { + return m.err != nil || (m.limit != 0 && m.xHasNext) || (m.limit != 0 && m.yHasNext) +} +func (m *UnionKVIter) advanceX() { + if m.err != nil { + return + } + m.xHasNext = m.x.HasNext() + if m.xHasNext { + m.xNextK, m.xNextV, m.err = m.x.Next() + } +} +func (m *UnionKVIter) advanceY() { + if m.err != nil { + return + } + m.yHasNext = m.y.HasNext() + if m.yHasNext { + m.yNextK, m.yNextV, m.err = m.y.Next() + } +} +func (m *UnionKVIter) Next() ([]byte, []byte, error) { + if m.err != nil { + return nil, nil, m.err + } + m.limit-- + if m.xHasNext && m.yHasNext { + cmp := bytes.Compare(m.xNextK, m.yNextK) + if cmp < 0 { + k, v, err := m.xNextK, m.xNextV, m.err + m.advanceX() + return k, v, err + } else if cmp == 0 { + k, v, err := m.xNextK, m.xNextV, m.err + m.advanceX() + m.advanceY() + return k, v, err + } + k, v, err := m.yNextK, m.yNextV, m.err + m.advanceY() + return k, v, err + } + if m.xHasNext { + k, v, err := m.xNextK, m.xNextV, m.err + m.advanceX() + return k, v, err + } + k, v, err := m.yNextK, m.yNextV, m.err + m.advanceY() + return k, v, err +} + +// func (m *UnionKVIter) ToArray() (keys, values [][]byte, err error) { return ToKVArray(m) } +func (m *UnionKVIter) Close() { + if x, ok := m.x.(Closer); ok { + x.Close() + } + if y, ok := m.y.(Closer); ok { + y.Close() + } +} + +// UnionUnary +type UnionUnary[T constraints.Ordered] struct { + x, y Unary[T] + asc bool + xHas, yHas bool + xNextK, yNextK T + err error + limit int +} + +func Union[T constraints.Ordered](x, y Unary[T], asc order.By, limit int) Unary[T] { + if x == nil && y == nil { + return &EmptyUnary[T]{} + } + if x == nil { + return y + } + if y == nil { + return x + } + if !x.HasNext() { + return y + } + if !y.HasNext() { + return x + } + m := &UnionUnary[T]{x: x, y: y, asc: bool(asc), limit: limit} + m.advanceX() + m.advanceY() + return m +} + +func (m *UnionUnary[T]) HasNext() bool { + return m.err != nil || (m.limit != 0 && m.xHas) || (m.limit != 0 && m.yHas) +} +func (m *UnionUnary[T]) advanceX() { + if m.err != nil { + return + } + m.xHas = m.x.HasNext() + if m.xHas { + m.xNextK, m.err = m.x.Next() + } +} +func (m *UnionUnary[T]) advanceY() { + if m.err != nil { + return + } + m.yHas = m.y.HasNext() + if m.yHas { + m.yNextK, m.err = m.y.Next() + } +} + +func (m *UnionUnary[T]) less() bool { + return (m.asc && m.xNextK < m.yNextK) || (!m.asc && m.xNextK > m.yNextK) +} + +func (m *UnionUnary[T]) Next() (res T, err error) { + if m.err != nil { + return res, m.err + } + m.limit-- + if m.xHas && m.yHas { + if m.less() { + k, err := m.xNextK, m.err + m.advanceX() + return k, err + } else if m.xNextK == m.yNextK { + k, err := m.xNextK, m.err + m.advanceX() + m.advanceY() + return k, err + } + k, err := m.yNextK, m.err + m.advanceY() + return k, err + } + if m.xHas { + k, err := m.xNextK, m.err + m.advanceX() + return k, err + } + k, err := m.yNextK, m.err + m.advanceY() + return k, err +} +func (m *UnionUnary[T]) Close() { + if x, ok := m.x.(Closer); ok { + x.Close() + } + if y, ok := m.y.(Closer); ok { + y.Close() + } +} + +// IntersectIter +type IntersectIter[T constraints.Ordered] struct { + x, y Unary[T] + xHasNext, yHasNext bool + xNextK, yNextK T + limit int + err error +} + +func Intersect[T constraints.Ordered](x, y Unary[T], limit int) Unary[T] { + if x == nil || y == nil || !x.HasNext() || !y.HasNext() { + return &EmptyUnary[T]{} + } + m := &IntersectIter[T]{x: x, y: y, limit: limit} + m.advance() + return m +} +func (m *IntersectIter[T]) HasNext() bool { + return m.err != nil || (m.limit != 0 && m.xHasNext && m.yHasNext) +} +func (m *IntersectIter[T]) advance() { + m.advanceX() + m.advanceY() + for m.xHasNext && m.yHasNext { + if m.err != nil { + break + } + if m.xNextK < m.yNextK { + m.advanceX() + continue + } else if m.xNextK == m.yNextK { + return + } else { + m.advanceY() + continue + } + } + m.xHasNext = false +} + +func (m *IntersectIter[T]) advanceX() { + if m.err != nil { + return + } + m.xHasNext = m.x.HasNext() + if m.xHasNext { + m.xNextK, m.err = m.x.Next() + } +} +func (m *IntersectIter[T]) advanceY() { + if m.err != nil { + return + } + m.yHasNext = m.y.HasNext() + if m.yHasNext { + m.yNextK, m.err = m.y.Next() + } +} +func (m *IntersectIter[T]) Next() (T, error) { + if m.err != nil { + return m.xNextK, m.err + } + m.limit-- + k, err := m.xNextK, m.err + m.advance() + return k, err +} +func (m *IntersectIter[T]) Close() { + if x, ok := m.x.(Closer); ok { + x.Close() + } + if y, ok := m.y.(Closer); ok { + y.Close() + } +} + +// TransformDualIter - analog `map` (in terms of map-filter-reduce pattern) +type TransformDualIter[K, V any] struct { + it Dual[K, V] + transform func(K, V) (K, V, error) +} + +func TransformDual[K, V any](it Dual[K, V], transform func(K, V) (K, V, error)) *TransformDualIter[K, V] { + return &TransformDualIter[K, V]{it: it, transform: transform} +} +func (m *TransformDualIter[K, V]) HasNext() bool { return m.it.HasNext() } +func (m *TransformDualIter[K, V]) Next() (K, V, error) { + k, v, err := m.it.Next() + if err != nil { + return k, v, err + } + return m.transform(k, v) +} +func (m *TransformDualIter[K, v]) Close() { + if x, ok := m.it.(Closer); ok { + x.Close() + } +} + +type TransformKV2U64Iter[K, V []byte] struct { + it KV + transform func(K, V) (uint64, error) +} + +func TransformKV2U64[K, V []byte](it KV, transform func(K, V) (uint64, error)) *TransformKV2U64Iter[K, V] { + return &TransformKV2U64Iter[K, V]{it: it, transform: transform} +} +func (m *TransformKV2U64Iter[K, V]) HasNext() bool { return m.it.HasNext() } +func (m *TransformKV2U64Iter[K, V]) Next() (uint64, error) { + k, v, err := m.it.Next() + if err != nil { + return 0, err + } + return m.transform(k, v) +} +func (m *TransformKV2U64Iter[K, v]) Close() { + if x, ok := m.it.(Closer); ok { + x.Close() + } +} + +// FilterDualIter - analog `map` (in terms of map-filter-reduce pattern) +// please avoid reading from Disk/DB more elements and then filter them. Better +// push-down filter conditions to lower-level iterator to reduce disk reads amount. +type FilterDualIter[K, V any] struct { + it Dual[K, V] + filter func(K, V) bool + hasNext bool + err error + nextK K + nextV V +} + +func FilterKV(it KV, filter func(k, v []byte) bool) *FilterDualIter[[]byte, []byte] { + return FilterDual[[]byte, []byte](it, filter) +} +func FilterDual[K, V any](it Dual[K, V], filter func(K, V) bool) *FilterDualIter[K, V] { + i := &FilterDualIter[K, V]{it: it, filter: filter} + i.advance() + return i +} +func (m *FilterDualIter[K, V]) advance() { + if m.err != nil { + return + } + m.hasNext = false + for m.it.HasNext() { + // create new variables, to avoid leaking outside of loop + key, val, err := m.it.Next() + if err != nil { + m.err = err + return + } + if m.filter(key, val) { + m.hasNext = true + m.nextK, m.nextV = key, val + break + } + } +} +func (m *FilterDualIter[K, V]) HasNext() bool { return m.err != nil || m.hasNext } +func (m *FilterDualIter[K, V]) Next() (k K, v V, err error) { + k, v, err = m.nextK, m.nextV, m.err + m.advance() + return k, v, err +} +func (m *FilterDualIter[K, v]) Close() { + if x, ok := m.it.(Closer); ok { + x.Close() + } +} + +// FilterUnaryIter - analog `map` (in terms of map-filter-reduce pattern) +// please avoid reading from Disk/DB more elements and then filter them. Better +// push-down filter conditions to lower-level iterator to reduce disk reads amount. +type FilterUnaryIter[T any] struct { + it Unary[T] + filter func(T) bool + hasNext bool + err error + nextK T +} + +func FilterU64(it U64, filter func(k uint64) bool) *FilterUnaryIter[uint64] { + return FilterUnary[uint64](it, filter) +} +func FilterUnary[T any](it Unary[T], filter func(T) bool) *FilterUnaryIter[T] { + i := &FilterUnaryIter[T]{it: it, filter: filter} + i.advance() + return i +} +func (m *FilterUnaryIter[T]) advance() { + if m.err != nil { + return + } + m.hasNext = false + for m.it.HasNext() { + // create new variables, to avoid leaking outside of loop + key, err := m.it.Next() + if err != nil { + m.err = err + return + } + if m.filter(key) { + m.hasNext, m.nextK = true, key + break + } + } +} +func (m *FilterUnaryIter[T]) HasNext() bool { return m.err != nil || m.hasNext } +func (m *FilterUnaryIter[T]) Next() (k T, err error) { + k, err = m.nextK, m.err + m.advance() + return k, err +} +func (m *FilterUnaryIter[T]) Close() { + if x, ok := m.it.(Closer); ok { + x.Close() + } +} + +// PaginatedIter - for remote-list pagination +// +// Rationale: If an API does not support pagination from the start, supporting it later is troublesome because adding pagination breaks the API's behavior. Clients that are unaware that the API now uses pagination could incorrectly assume that they received a complete result, when in fact they only received the first page. +// +// To support pagination (returning list results in pages) in a List method, the API shall: +// - The client uses this field to request a specific page of the list results. +// - define an int32 field page_size in the List method's request message. Clients use this field to specify the maximum number of results to be returned by the server. The server may further constrain the maximum number of results returned in a single page. If the page_size is 0, the server will decide the number of results to be returned. +// - define a string field next_page_token in the List method's response message. This field represents the pagination token to retrieve the next page of results. If the value is "", it means no further results for the request. +// +// see: https://cloud.google.com/apis/design/design_patterns +type Paginated[T any] struct { + arr []T + i int + err error + nextPage NextPageUnary[T] + nextPageToken string + initialized bool +} + +func Paginate[T any](f NextPageUnary[T]) *Paginated[T] { return &Paginated[T]{nextPage: f} } +func (it *Paginated[T]) HasNext() bool { + if it.err != nil || it.i < len(it.arr) { + return true + } + if it.initialized && it.nextPageToken == "" { + return false + } + it.initialized = true + it.i = 0 + it.arr, it.nextPageToken, it.err = it.nextPage(it.nextPageToken) + return it.err != nil || it.i < len(it.arr) +} +func (it *Paginated[T]) Close() {} +func (it *Paginated[T]) Next() (v T, err error) { + if it.err != nil { + return v, it.err + } + v = it.arr[it.i] + it.i++ + return v, nil +} + +type PaginatedDual[K, V any] struct { + keys []K + values []V + i int + err error + nextPage NextPageDual[K, V] + nextPageToken string + initialized bool +} + +func PaginateDual[K, V any](f NextPageDual[K, V]) *PaginatedDual[K, V] { + return &PaginatedDual[K, V]{nextPage: f} +} +func (it *PaginatedDual[K, V]) HasNext() bool { + if it.err != nil || it.i < len(it.keys) { + return true + } + if it.initialized && it.nextPageToken == "" { + return false + } + it.initialized = true + it.i = 0 + it.keys, it.values, it.nextPageToken, it.err = it.nextPage(it.nextPageToken) + return it.err != nil || it.i < len(it.keys) +} +func (it *PaginatedDual[K, V]) Close() {} +func (it *PaginatedDual[K, V]) Next() (k K, v V, err error) { + if it.err != nil { + return k, v, it.err + } + k, v = it.keys[it.i], it.values[it.i] + it.i++ + return k, v, nil +} diff --git a/erigon-lib/kv/iter/iter_interface.go b/erigon-lib/kv/iter/iter_interface.go new file mode 100644 index 00000000000..dbe0e6ba4f1 --- /dev/null +++ b/erigon-lib/kv/iter/iter_interface.go @@ -0,0 +1,115 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package iter + +// Iterators - composable high-level abstraction to iterate over. It's more high-level than kv.Cursor and provides less controll, less features, but enough to build an app. +// +// for s.HasNext() { +// k, v, err := s.Next() +// if err != nil { +// return err +// } +// } +// Invariants: +// 1. HasNext() is Idempotent +// 2. K, V are valid at-least 2 .Next() calls! It allows zero-copy composition of iterators. Example: iter.Union +// - 1 value used by User and 1 value used internally by iter.Union +// 3. No `Close` method: all streams produced by TemporalTx will be closed inside `tx.Rollback()` (by casting to `kv.Closer`) +// 4. automatically checks cancelation of `ctx` passed to `db.Begin(ctx)`, can skip this +// check in loops on stream. Dual has very limited API - user has no way to +// terminate it - but user can specify more strict conditions when creating stream (then server knows better when to stop) + +// Dual - return 2 items - usually called Key and Value (or `k` and `v`) +// Example: +// +// for s.HasNext() { +// k, v, err := s.Next() +// if err != nil { +// return err +// } +// } +type Dual[K, V any] interface { + Next() (K, V, error) + HasNext() bool +} + +// Unary - return 1 item. Example: +// +// for s.HasNext() { +// v, err := s.Next() +// if err != nil { +// return err +// } +// } +type Unary[V any] interface { + Next() (V, error) + //NextBatch() ([]V, error) + HasNext() bool +} + +// KV - return 2 items of type []byte - usually called Key and Value (or `k` and `v`). Example: +// +// for s.HasNext() { +// k, v, err := s.Next() +// if err != nil { +// return err +// } +// } + +// often used shortcuts +type ( + U64 Unary[uint64] + KV Dual[[]byte, []byte] +) + +func ToU64Arr(s U64) ([]uint64, error) { return ToArr[uint64](s) } +func ToKVArray(s KV) ([][]byte, [][]byte, error) { return ToDualArray[[]byte, []byte](s) } + +func ToArrU64Must(s U64) []uint64 { + arr, err := ToArr[uint64](s) + if err != nil { + panic(err) + } + return arr +} +func ToArrKVMust(s KV) ([][]byte, [][]byte) { + keys, values, err := ToDualArray[[]byte, []byte](s) + if err != nil { + panic(err) + } + return keys, values +} + +func CountU64(s U64) (int, error) { return Count[uint64](s) } +func CountKV(s KV) (int, error) { return CountDual[[]byte, []byte](s) } + +func TransformKV(it KV, transform func(k, v []byte) ([]byte, []byte, error)) *TransformDualIter[[]byte, []byte] { + return TransformDual[[]byte, []byte](it, transform) +} + +// internal types +type ( + NextPageUnary[T any] func(pageToken string) (arr []T, nextPageToken string, err error) + NextPageDual[K, V any] func(pageToken string) (keys []K, values []V, nextPageToken string, err error) +) + +func PaginateKV(f NextPageDual[[]byte, []byte]) *PaginatedDual[[]byte, []byte] { + return PaginateDual[[]byte, []byte](f) +} +func PaginateU64(f NextPageUnary[uint64]) *Paginated[uint64] { + return Paginate[uint64](f) +} diff --git a/erigon-lib/kv/iter/iter_test.go b/erigon-lib/kv/iter/iter_test.go new file mode 100644 index 00000000000..2c0a02a1ba3 --- /dev/null +++ b/erigon-lib/kv/iter/iter_test.go @@ -0,0 +1,416 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package iter_test + +import ( + "bytes" + "context" + "fmt" + "testing" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/stretchr/testify/require" +) + +func TestUnion(t *testing.T) { + t.Run("arrays", func(t *testing.T) { + s1 := iter.Array[uint64]([]uint64{1, 3, 6, 7}) + s2 := iter.Array[uint64]([]uint64{2, 3, 7, 8}) + s3 := iter.Union[uint64](s1, s2, order.Asc, -1) + res, err := iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Equal(t, []uint64{1, 2, 3, 6, 7, 8}, res) + + s1 = iter.ReverseArray[uint64]([]uint64{1, 3, 6, 7}) + s2 = iter.ReverseArray[uint64]([]uint64{2, 3, 7, 8}) + s3 = iter.Union[uint64](s1, s2, order.Desc, -1) + res, err = iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Equal(t, []uint64{8, 7, 6, 3, 2, 1}, res) + + s1 = iter.ReverseArray[uint64]([]uint64{1, 3, 6, 7}) + s2 = iter.ReverseArray[uint64]([]uint64{2, 3, 7, 8}) + s3 = iter.Union[uint64](s1, s2, order.Desc, 2) + res, err = iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Equal(t, []uint64{8, 7}, res) + + }) + t.Run("empty left", func(t *testing.T) { + s1 := iter.EmptyU64 + s2 := iter.Array[uint64]([]uint64{2, 3, 7, 8}) + s3 := iter.Union[uint64](s1, s2, order.Asc, -1) + res, err := iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Equal(t, []uint64{2, 3, 7, 8}, res) + }) + t.Run("empty right", func(t *testing.T) { + s1 := iter.Array[uint64]([]uint64{1, 3, 4, 5, 6, 7}) + s2 := iter.EmptyU64 + s3 := iter.Union[uint64](s1, s2, order.Asc, -1) + res, err := iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Equal(t, []uint64{1, 3, 4, 5, 6, 7}, res) + }) + t.Run("empty", func(t *testing.T) { + s1 := iter.EmptyU64 + s2 := iter.EmptyU64 + s3 := iter.Union[uint64](s1, s2, order.Asc, -1) + res, err := iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Nil(t, res) + }) +} +func TestUnionPairs(t *testing.T) { + db := memdb.NewTestDB(t) + ctx := context.Background() + t.Run("simple", func(t *testing.T) { + require := require.New(t) + tx, _ := db.BeginRw(ctx) + defer tx.Rollback() + _ = tx.Put(kv.E2AccountsHistory, []byte{1}, []byte{1}) + _ = tx.Put(kv.E2AccountsHistory, []byte{3}, []byte{1}) + _ = tx.Put(kv.E2AccountsHistory, []byte{4}, []byte{1}) + _ = tx.Put(kv.PlainState, []byte{2}, []byte{9}) + _ = tx.Put(kv.PlainState, []byte{3}, []byte{9}) + it, _ := tx.Range(kv.E2AccountsHistory, nil, nil) + it2, _ := tx.Range(kv.PlainState, nil, nil) + keys, values, err := iter.ToKVArray(iter.UnionKV(it, it2, -1)) + require.NoError(err) + require.Equal([][]byte{{1}, {2}, {3}, {4}}, keys) + require.Equal([][]byte{{1}, {9}, {1}, {1}}, values) + }) + t.Run("empty 1st", func(t *testing.T) { + require := require.New(t) + tx, _ := db.BeginRw(ctx) + defer tx.Rollback() + _ = tx.Put(kv.PlainState, []byte{2}, []byte{9}) + _ = tx.Put(kv.PlainState, []byte{3}, []byte{9}) + it, _ := tx.Range(kv.E2AccountsHistory, nil, nil) + it2, _ := tx.Range(kv.PlainState, nil, nil) + keys, _, err := iter.ToKVArray(iter.UnionKV(it, it2, -1)) + require.NoError(err) + require.Equal([][]byte{{2}, {3}}, keys) + }) + t.Run("empty 2nd", func(t *testing.T) { + require := require.New(t) + tx, _ := db.BeginRw(ctx) + defer tx.Rollback() + _ = tx.Put(kv.E2AccountsHistory, []byte{1}, []byte{1}) + _ = tx.Put(kv.E2AccountsHistory, []byte{3}, []byte{1}) + _ = tx.Put(kv.E2AccountsHistory, []byte{4}, []byte{1}) + it, _ := tx.Range(kv.E2AccountsHistory, nil, nil) + it2, _ := tx.Range(kv.PlainState, nil, nil) + keys, _, err := iter.ToKVArray(iter.UnionKV(it, it2, -1)) + require.NoError(err) + require.Equal([][]byte{{1}, {3}, {4}}, keys) + }) + t.Run("empty both", func(t *testing.T) { + require := require.New(t) + tx, _ := db.BeginRw(ctx) + defer tx.Rollback() + it, _ := tx.Range(kv.E2AccountsHistory, nil, nil) + it2, _ := tx.Range(kv.PlainState, nil, nil) + m := iter.UnionKV(it, it2, -1) + require.False(m.HasNext()) + }) + t.Run("error handling", func(t *testing.T) { + require := require.New(t) + tx, _ := db.BeginRw(ctx) + defer tx.Rollback() + it := iter.PairsWithError(10) + it2 := iter.PairsWithError(12) + keys, _, err := iter.ToKVArray(iter.UnionKV(it, it2, -1)) + require.Equal("expected error at iteration: 10", err.Error()) + require.Equal(10, len(keys)) + }) +} + +func TestIntersect(t *testing.T) { + t.Run("intersect", func(t *testing.T) { + s1 := iter.Array[uint64]([]uint64{1, 3, 4, 5, 6, 7}) + s2 := iter.Array[uint64]([]uint64{2, 3, 7}) + s3 := iter.Intersect[uint64](s1, s2, -1) + res, err := iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Equal(t, []uint64{3, 7}, res) + + s1 = iter.Array[uint64]([]uint64{1, 3, 4, 5, 6, 7}) + s2 = iter.Array[uint64]([]uint64{2, 3, 7}) + s3 = iter.Intersect[uint64](s1, s2, 1) + res, err = iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Equal(t, []uint64{3}, res) + }) + t.Run("empty left", func(t *testing.T) { + s1 := iter.EmptyU64 + s2 := iter.Array[uint64]([]uint64{2, 3, 7, 8}) + s3 := iter.Intersect[uint64](s1, s2, -1) + res, err := iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Nil(t, res) + + s2 = iter.Array[uint64]([]uint64{2, 3, 7, 8}) + s3 = iter.Intersect[uint64](nil, s2, -1) + res, err = iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Nil(t, res) + }) + t.Run("empty right", func(t *testing.T) { + s1 := iter.Array[uint64]([]uint64{1, 3, 4, 5, 6, 7}) + s2 := iter.EmptyU64 + s3 := iter.Intersect[uint64](s1, s2, -1) + res, err := iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Nil(t, nil, res) + + s1 = iter.Array[uint64]([]uint64{1, 3, 4, 5, 6, 7}) + s3 = iter.Intersect[uint64](s1, nil, -1) + res, err = iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Nil(t, res) + }) + t.Run("empty", func(t *testing.T) { + s1 := iter.EmptyU64 + s2 := iter.EmptyU64 + s3 := iter.Intersect[uint64](s1, s2, -1) + res, err := iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Nil(t, res) + + s3 = iter.Intersect[uint64](nil, nil, -1) + res, err = iter.ToArr[uint64](s3) + require.NoError(t, err) + require.Nil(t, res) + }) +} + +func TestRange(t *testing.T) { + t.Run("range", func(t *testing.T) { + s1 := iter.Range[uint64](1, 4) + res, err := iter.ToArr[uint64](s1) + require.NoError(t, err) + require.Equal(t, []uint64{1, 2, 3}, res) + }) + t.Run("empty", func(t *testing.T) { + s1 := iter.Range[uint64](1, 1) + res, err := iter.ToArr[uint64](s1) + require.NoError(t, err) + require.Equal(t, []uint64{1}, res) + }) +} + +func TestPaginated(t *testing.T) { + t.Run("paginated", func(t *testing.T) { + i := 0 + s1 := iter.Paginate[uint64](func(pageToken string) (arr []uint64, nextPageToken string, err error) { + i++ + switch i { + case 1: + return []uint64{1, 2, 3}, "test", nil + case 2: + return []uint64{4, 5, 6}, "test", nil + case 3: + return []uint64{7}, "", nil + case 4: + panic("must not happen") + } + return + }) + res, err := iter.ToArr[uint64](s1) + require.NoError(t, err) + require.Equal(t, []uint64{1, 2, 3, 4, 5, 6, 7}, res) + + //idempotency + require.False(t, s1.HasNext()) + require.False(t, s1.HasNext()) + }) + t.Run("error", func(t *testing.T) { + i := 0 + testErr := fmt.Errorf("test") + s1 := iter.Paginate[uint64](func(pageToken string) (arr []uint64, nextPageToken string, err error) { + i++ + switch i { + case 1: + return []uint64{1, 2, 3}, "test", nil + case 2: + return nil, "test", testErr + case 3: + panic("must not happen") + } + return + }) + res, err := iter.ToArr[uint64](s1) + require.ErrorIs(t, err, testErr) + require.Equal(t, []uint64{1, 2, 3}, res) + + //idempotency + require.True(t, s1.HasNext()) + require.True(t, s1.HasNext()) + _, err = s1.Next() + require.ErrorIs(t, err, testErr) + }) + t.Run("empty", func(t *testing.T) { + s1 := iter.Paginate[uint64](func(pageToken string) (arr []uint64, nextPageToken string, err error) { + return []uint64{}, "", nil + }) + res, err := iter.ToArr[uint64](s1) + require.NoError(t, err) + require.Nil(t, res) + + //idempotency + require.False(t, s1.HasNext()) + require.False(t, s1.HasNext()) + }) +} + +func TestPaginatedDual(t *testing.T) { + t.Run("paginated", func(t *testing.T) { + i := 0 + s1 := iter.PaginateKV(func(pageToken string) (keys, values [][]byte, nextPageToken string, err error) { + i++ + switch i { + case 1: + return [][]byte{{1}, {2}, {3}}, [][]byte{{1}, {2}, {3}}, "test", nil + case 2: + return [][]byte{{4}, {5}, {6}}, [][]byte{{4}, {5}, {6}}, "test", nil + case 3: + return [][]byte{{7}}, [][]byte{{7}}, "", nil + case 4: + panic("must not happen") + } + return + }) + + keys, values, err := iter.ToKVArray(s1) + require.NoError(t, err) + require.Equal(t, [][]byte{{1}, {2}, {3}, {4}, {5}, {6}, {7}}, keys) + require.Equal(t, [][]byte{{1}, {2}, {3}, {4}, {5}, {6}, {7}}, values) + + //idempotency + require.False(t, s1.HasNext()) + require.False(t, s1.HasNext()) + }) + t.Run("error", func(t *testing.T) { + i := 0 + testErr := fmt.Errorf("test") + s1 := iter.PaginateKV(func(pageToken string) (keys, values [][]byte, nextPageToken string, err error) { + i++ + switch i { + case 1: + return [][]byte{{1}, {2}, {3}}, [][]byte{{1}, {2}, {3}}, "test", nil + case 2: + return nil, nil, "test", testErr + case 3: + panic("must not happen") + } + return + }) + keys, values, err := iter.ToKVArray(s1) + require.ErrorIs(t, err, testErr) + require.Equal(t, [][]byte{{1}, {2}, {3}}, keys) + require.Equal(t, [][]byte{{1}, {2}, {3}}, values) + + //idempotency + require.True(t, s1.HasNext()) + require.True(t, s1.HasNext()) + _, _, err = s1.Next() + require.ErrorIs(t, err, testErr) + }) + t.Run("empty", func(t *testing.T) { + s1 := iter.PaginateKV(func(pageToken string) (keys, values [][]byte, nextPageToken string, err error) { + return [][]byte{}, [][]byte{}, "", nil + }) + keys, values, err := iter.ToKVArray(s1) + require.NoError(t, err) + require.Nil(t, keys) + require.Nil(t, values) + + //idempotency + require.False(t, s1.HasNext()) + require.False(t, s1.HasNext()) + }) +} + +func TestFiler(t *testing.T) { + createKVIter := func() iter.KV { + i := 0 + return iter.PaginateKV(func(pageToken string) (keys, values [][]byte, nextPageToken string, err error) { + i++ + switch i { + case 1: + return [][]byte{{1}, {2}, {3}}, [][]byte{{1}, {2}, {3}}, "test", nil + case 2: + return nil, nil, "", nil + } + return + }) + + } + t.Run("dual", func(t *testing.T) { + s2 := iter.FilterKV(createKVIter(), func(k, v []byte) bool { return bytes.Equal(k, []byte{1}) }) + keys, values, err := iter.ToKVArray(s2) + require.NoError(t, err) + require.Equal(t, [][]byte{{1}}, keys) + require.Equal(t, [][]byte{{1}}, values) + + s2 = iter.FilterKV(createKVIter(), func(k, v []byte) bool { return bytes.Equal(k, []byte{3}) }) + keys, values, err = iter.ToKVArray(s2) + require.NoError(t, err) + require.Equal(t, [][]byte{{3}}, keys) + require.Equal(t, [][]byte{{3}}, values) + + s2 = iter.FilterKV(createKVIter(), func(k, v []byte) bool { return bytes.Equal(k, []byte{4}) }) + keys, values, err = iter.ToKVArray(s2) + require.NoError(t, err) + require.Nil(t, keys) + require.Nil(t, values) + + s2 = iter.FilterKV(iter.EmptyKV, func(k, v []byte) bool { return bytes.Equal(k, []byte{4}) }) + keys, values, err = iter.ToKVArray(s2) + require.NoError(t, err) + require.Nil(t, keys) + require.Nil(t, values) + }) + t.Run("unary", func(t *testing.T) { + s1 := iter.Array[uint64]([]uint64{1, 2, 3}) + s2 := iter.FilterU64(s1, func(k uint64) bool { return k == 1 }) + res, err := iter.ToU64Arr(s2) + require.NoError(t, err) + require.Equal(t, []uint64{1}, res) + + s1 = iter.Array[uint64]([]uint64{1, 2, 3}) + s2 = iter.FilterU64(s1, func(k uint64) bool { return k == 3 }) + res, err = iter.ToU64Arr(s2) + require.NoError(t, err) + require.Equal(t, []uint64{3}, res) + + s1 = iter.Array[uint64]([]uint64{1, 2, 3}) + s2 = iter.FilterU64(s1, func(k uint64) bool { return k == 4 }) + res, err = iter.ToU64Arr(s2) + require.NoError(t, err) + require.Nil(t, res) + + s2 = iter.FilterU64(iter.EmptyU64, func(k uint64) bool { return k == 4 }) + res, err = iter.ToU64Arr(s2) + require.NoError(t, err) + require.Nil(t, res) + }) +} diff --git a/erigon-lib/kv/kv_interface.go b/erigon-lib/kv/kv_interface.go new file mode 100644 index 00000000000..852e08601f6 --- /dev/null +++ b/erigon-lib/kv/kv_interface.go @@ -0,0 +1,554 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package kv + +import ( + "context" + "errors" + "fmt" + "unsafe" + + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/erigon-lib/metrics" +) + +//Variables Naming: +// tx - Database Transaction +// txn - Ethereum Transaction (and TxNum - is also number of Etherum Transaction) +// blockNum - Ethereum block number - same across all nodes. blockID - auto-increment ID - which can be differrent across all nodes +// txNum/txID - same +// RoTx - Read-Only Database Transaction. RwTx - read-write +// k, v - key, value +// ts - TimeStamp. Usually it's Etherum's TransactionNumber (auto-increment ID). Or BlockNumber. +// Cursor - low-level mdbx-tide api to navigate over Table +// Iter - high-level iterator-like api over Table/InvertedIndex/History/Domain. Has less features than Cursor. See package `iter`. + +//Methods Naming: +// Prune: delete old data +// Unwind: delete recent data +// Get: exact match of criterias +// Range: [from, to). from=nil means StartOfTable, to=nil means EndOfTable, rangeLimit=-1 means Unlimited +// Range is analog of SQL's: SELECT * FROM Table WHERE k>=from AND k stream of server-side pushes --- + + // Range [from, to) + // Range(from, nil) means [from, EndOfTable) + // Range(nil, to) means [StartOfTable, to) + Range(table string, fromPrefix, toPrefix []byte) (iter.KV, error) + // Stream is like Range, but for requesting huge data (Example: full table scan). Client can't stop it. + //Stream(table string, fromPrefix, toPrefix []byte) (iter.KV, error) + // RangeAscend - like Range [from, to) but also allow pass Limit parameters + // Limit -1 means Unlimited + RangeAscend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) + //StreamAscend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) + // RangeDescend - is like Range [from, to), but expecing `from`<`to` + // example: RangeDescend("Table", "B", "A", -1) + RangeDescend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) + //StreamDescend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) + // Prefix - is exactly Range(Table, prefix, kv.NextSubtree(prefix)) + Prefix(table string, prefix []byte) (iter.KV, error) + + // RangeDupSort - like Range but for fixed single key and iterating over range of values + RangeDupSort(table string, key []byte, fromPrefix, toPrefix []byte, asc order.By, limit int) (iter.KV, error) + + // --- High-Level methods: 1request -> 1page of values in response -> send next page request --- + // Paginate(table string, fromPrefix, toPrefix []byte) (PairsStream, error) + + // --- High-Level deprecated methods --- + + ForEach(table string, fromPrefix []byte, walker func(k, v []byte) error) error + ForPrefix(table string, prefix []byte, walker func(k, v []byte) error) error + ForAmount(table string, prefix []byte, amount uint32, walker func(k, v []byte) error) error + + // Pointer to the underlying C transaction handle (e.g. *C.MDBX_txn) + CHandle() unsafe.Pointer + BucketSize(table string) (uint64, error) +} + +// RwTx +// +// WARNING: +// - RwTx is not threadsafe and may only be used in the goroutine that created it. +// - ReadOnly transactions do not lock goroutine to thread, RwTx does +// - User Can't call runtime.LockOSThread/runtime.UnlockOSThread in same goroutine until RwTx Commit/Rollback +type RwTx interface { + Tx + StatelessWriteTx + BucketMigrator + + RwCursor(table string) (RwCursor, error) + RwCursorDupSort(table string) (RwCursorDupSort, error) + + // CollectMetrics - does collect all DB-related and Tx-related metrics + // this method exists only in RwTx to avoid concurrency + CollectMetrics() +} + +type BucketMigratorRO interface { + ListBuckets() ([]string, error) +} + +// BucketMigrator used for buckets migration, don't use it in usual app code +type BucketMigrator interface { + BucketMigratorRO + DropBucket(string) error + CreateBucket(string) error + ExistsBucket(string) (bool, error) + ClearBucket(string) error +} + +// Cursor - class for navigating through a database +// CursorDupSort are inherit this class +// +// If methods (like First/Next/Seek) return error, then returned key SHOULD not be nil (can be []byte{} for example). +// Then looping code will look as: +// c := kv.Cursor(bucketName) +// +// for k, v, err := c.First(); k != nil; k, v, err = c.Next() { +// if err != nil { +// return err +// } +// ... logic +// } +type Cursor interface { + First() ([]byte, []byte, error) // First - position at first key/data item + Seek(seek []byte) ([]byte, []byte, error) // Seek - position at first key greater than or equal to specified key + SeekExact(key []byte) ([]byte, []byte, error) // SeekExact - position at exact matching key if exists + Next() ([]byte, []byte, error) // Next - position at next key/value (can iterate over DupSort key/values automatically) + Prev() ([]byte, []byte, error) // Prev - position at previous key + Last() ([]byte, []byte, error) // Last - position at last key and last possible value + Current() ([]byte, []byte, error) // Current - return key/data at current cursor position + + Count() (uint64, error) // Count - fast way to calculate amount of keys in bucket. It counts all keys even if Prefix was set. + + Close() +} + +type RwCursor interface { + Cursor + + Put(k, v []byte) error // Put - based on order + Append(k []byte, v []byte) error // Append - append the given key/data pair to the end of the database. This option allows fast bulk loading when keys are already known to be in the correct order. + Delete(k []byte) error // Delete - short version of SeekExact+DeleteCurrent or SeekBothExact+DeleteCurrent + + // DeleteCurrent This function deletes the key/data pair to which the cursor refers. + // This does not invalidate the cursor, so operations such as MDB_NEXT + // can still be used on it. + // Both MDB_NEXT and MDB_GET_CURRENT will return the same record after + // this operation. + DeleteCurrent() error +} + +// CursorDupSort +// +// Example: +// +// for k, v, err = cursor.First(); k != nil; k, v, err = cursor.NextNoDup() { +// if err != nil { +// return err +// } +// for ; v != nil; _, v, err = cursor.NextDup() { +// if err != nil { +// return err +// } +// +// } +// } +type CursorDupSort interface { + Cursor + + // SeekBothExact - + // second parameter can be nil only if searched key has no duplicates, or return error + SeekBothExact(key, value []byte) ([]byte, []byte, error) + SeekBothRange(key, value []byte) ([]byte, error) // SeekBothRange - exact match of the key, but range match of the value + FirstDup() ([]byte, error) // FirstDup - position at first data item of current key + NextDup() ([]byte, []byte, error) // NextDup - position at next data item of current key + NextNoDup() ([]byte, []byte, error) // NextNoDup - position at first data item of next key + PrevDup() ([]byte, []byte, error) + PrevNoDup() ([]byte, []byte, error) + LastDup() ([]byte, error) // LastDup - position at last data item of current key + + CountDuplicates() (uint64, error) // CountDuplicates - number of duplicates for the current key +} + +type RwCursorDupSort interface { + CursorDupSort + RwCursor + + PutNoDupData(key, value []byte) error // PutNoDupData - inserts key without dupsort + DeleteCurrentDuplicates() error // DeleteCurrentDuplicates - deletes all of the data items for the current key + DeleteExact(k1, k2 []byte) error // DeleteExact - delete 1 value from given key + AppendDup(key, value []byte) error // AppendDup - same as Append, but for sorted dup data +} + +// ---- Temporal part + +type ( + Domain string + History string + InvertedIdx string +) + +type TemporalTx interface { + Tx + DomainGet(name Domain, k, k2 []byte) (v []byte, ok bool, err error) + DomainGetAsOf(name Domain, k, k2 []byte, ts uint64) (v []byte, ok bool, err error) + HistoryGet(name History, k []byte, ts uint64) (v []byte, ok bool, err error) + + // IndexRange - return iterator over range of inverted index for given key `k` + // Asc semantic: [from, to) AND from > to + // Desc semantic: [from, to) AND from < to + // Limit -1 means Unlimited + // from -1, to -1 means unbounded (StartOfTable, EndOfTable) + // Example: IndexRange("IndexName", 10, 5, order.Desc, -1) + // Example: IndexRange("IndexName", -1, -1, order.Asc, 10) + IndexRange(name InvertedIdx, k []byte, fromTs, toTs int, asc order.By, limit int) (timestamps iter.U64, err error) + HistoryRange(name History, fromTs, toTs int, asc order.By, limit int) (it iter.KV, err error) + DomainRange(name Domain, fromKey, toKey []byte, ts uint64, asc order.By, limit int) (it iter.KV, err error) +} diff --git a/erigon-lib/kv/kvcache/cache.go b/erigon-lib/kv/kvcache/cache.go new file mode 100644 index 00000000000..700029a4fa1 --- /dev/null +++ b/erigon-lib/kv/kvcache/cache.go @@ -0,0 +1,971 @@ +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package kvcache + +import ( + "bytes" + "context" + "encoding/binary" + "fmt" + "hash" + "sort" + "sync" + "sync/atomic" + "time" + + "github.com/c2h5oh/datasize" + btree2 "github.com/tidwall/btree" + "golang.org/x/crypto/sha3" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/metrics" +) + +type CacheValidationResult struct { + RequestCancelled bool + Enabled bool + LatestStateBehind bool + CacheCleared bool + LatestStateID uint64 + StateKeysOutOfSync [][]byte + CodeKeysOutOfSync [][]byte +} + +type Cache interface { + // View - returns CacheView consistent with givent kv.Tx + View(ctx context.Context, tx kv.Tx) (CacheView, error) + OnNewBlock(sc *remote.StateChangeBatch) + Len() int + ValidateCurrentRoot(ctx context.Context, tx kv.Tx) (*CacheValidationResult, error) +} +type CacheView interface { + Get(k []byte) ([]byte, error) + GetCode(k []byte) ([]byte, error) +} + +// Coherent works on top of Database Transaction and pair Coherent+ReadTransaction must +// provide "Serializable Isolation Level" semantic: all data form consistent db view at moment +// when read transaction started, read data are immutable until end of read transaction, reader can't see newer updates +// +// Every time a new state change comes, we do the following: +// - Check that prevBlockHeight and prevBlockHash match what is the top values we have, and if they don't we +// invalidate the cache, because we missed some messages and cannot consider the cache coherent anymore. +// - Clone the cache pointer (such that the previous pointer is still accessible, but new one shared the content with it), +// apply state updates to the cloned cache pointer and save under the new identified made from blockHeight and blockHash. +// - If there is a conditional variable corresponding to the identifier, remove it from the map and notify conditional +// variable, waking up the read-only transaction waiting on it. +// +// On the other hand, whenever we have a cache miss (by looking at the top cache), we do the following: +// - Once read the current block height and block hash (canonical) from underlying db transaction +// - Construct the identifier from the current block height and block hash +// - Look for the constructed identifier in the cache. If the identifier is found, use the corresponding +// cache in conjunction with this read-only transaction (it will be consistent with it). If the identifier is +// not found, it means that the transaction has been committed in Erigon, but the state update has not +// arrived yet (as shown in the picture on the right). Insert conditional variable for this identifier and wait on +// it until either cache with the given identifier appears, or timeout (indicating that the cache update +// mechanism is broken and cache is likely invalidated). +// + +// Pair.Value == nil - is a marker of absense key in db + +// Coherent +// High-level guaranties: +// - Keys/Values returned by cache are valid/immutable until end of db transaction +// - CacheView is always coherent with given db transaction - +// +// Rules of set view.isCanonical value: +// - method View can't parent.Clone() - because parent view is not coherent with current kv.Tx +// - only OnNewBlock method may do parent.Clone() and apply StateChanges to create coherent view of kv.Tx +// - parent.Clone() can't be caled if parent.isCanonical=false +// - only OnNewBlock method can set view.isCanonical=true +// +// Rules of filling cache.stateEvict: +// - changes in Canonical View SHOULD reflect in stateEvict +// - changes in Non-Canonical View SHOULD NOT reflect in stateEvict +type Coherent struct { + hasher hash.Hash + codeEvictLen metrics.Gauge + codeKeys metrics.Gauge + keys metrics.Gauge + evict metrics.Gauge + latestStateView *CoherentRoot + codeMiss metrics.Counter + timeout metrics.Counter + hits metrics.Counter + codeHits metrics.Counter + roots map[uint64]*CoherentRoot + stateEvict *ThreadSafeEvictionList + codeEvict *ThreadSafeEvictionList + miss metrics.Counter + cfg CoherentConfig + latestStateVersionID uint64 + lock sync.Mutex + waitExceededCount atomic.Int32 // used as a circuit breaker to stop the cache waiting for new blocks +} + +type CoherentRoot struct { + cache *btree2.BTreeG[*Element] + codeCache *btree2.BTreeG[*Element] + ready chan struct{} // close when ready + readyChanClosed atomic.Bool // protecting `ready` field from double-close (on unwind). Consumers don't need check this field. + + // Views marked as `Canonical` if it received onNewBlock message + // we may drop `Non-Canonical` views even if they had fresh keys + // keys added to `Non-Canonical` views SHOULD NOT be added to stateEvict + // cache.latestStateView is always `Canonical` + isCanonical bool +} + +// CoherentView - dumb object, which proxy all requests to Coherent object. +// It's thread-safe, because immutable +type CoherentView struct { + tx kv.Tx + cache *Coherent + stateVersionID uint64 +} + +func (c *CoherentView) Get(k []byte) ([]byte, error) { return c.cache.Get(k, c.tx, c.stateVersionID) } +func (c *CoherentView) GetCode(k []byte) ([]byte, error) { + return c.cache.GetCode(k, c.tx, c.stateVersionID) +} + +var _ Cache = (*Coherent)(nil) // compile-time interface check +var _ CacheView = (*CoherentView)(nil) // compile-time interface check + +const ( + DEGREE = 32 + MAX_WAITS = 100 +) + +type CoherentConfig struct { + CacheSize datasize.ByteSize + CodeCacheSize datasize.ByteSize + WaitForNewBlock bool // should we wait 10ms for a new block message to arrive when calling View? + WithStorage bool + MetricsLabel string + NewBlockWait time.Duration // how long wait + KeepViews uint64 // keep in memory up to this amount of views, evict older +} + +var DefaultCoherentConfig = CoherentConfig{ + KeepViews: 5, + NewBlockWait: 5 * time.Millisecond, + CacheSize: 2 * datasize.GB, + CodeCacheSize: 2 * datasize.GB, + MetricsLabel: "default", + WithStorage: true, + WaitForNewBlock: true, +} + +func New(cfg CoherentConfig) *Coherent { + if cfg.KeepViews == 0 { + panic("empty config passed") + } + + return &Coherent{ + roots: map[uint64]*CoherentRoot{}, + stateEvict: &ThreadSafeEvictionList{l: NewList()}, + codeEvict: &ThreadSafeEvictionList{l: NewList()}, + hasher: sha3.NewLegacyKeccak256(), + cfg: cfg, + miss: metrics.GetOrCreateCounter(fmt.Sprintf(`cache_total{result="miss",name="%s"}`, cfg.MetricsLabel)), + hits: metrics.GetOrCreateCounter(fmt.Sprintf(`cache_total{result="hit",name="%s"}`, cfg.MetricsLabel)), + timeout: metrics.GetOrCreateCounter(fmt.Sprintf(`cache_timeout_total{name="%s"}`, cfg.MetricsLabel)), + keys: metrics.GetOrCreateGauge(fmt.Sprintf(`cache_keys_total{name="%s"}`, cfg.MetricsLabel)), + evict: metrics.GetOrCreateGauge(fmt.Sprintf(`cache_list_total{name="%s"}`, cfg.MetricsLabel)), + codeMiss: metrics.GetOrCreateCounter(fmt.Sprintf(`cache_code_total{result="miss",name="%s"}`, cfg.MetricsLabel)), + codeHits: metrics.GetOrCreateCounter(fmt.Sprintf(`cache_code_total{result="hit",name="%s"}`, cfg.MetricsLabel)), + codeKeys: metrics.GetOrCreateGauge(fmt.Sprintf(`cache_code_keys_total{name="%s"}`, cfg.MetricsLabel)), + codeEvictLen: metrics.GetOrCreateGauge(fmt.Sprintf(`cache_code_list_total{name="%s"}`, cfg.MetricsLabel)), + } +} + +// selectOrCreateRoot - used for usual getting root +func (c *Coherent) selectOrCreateRoot(versionID uint64) *CoherentRoot { + c.lock.Lock() + defer c.lock.Unlock() + r, ok := c.roots[versionID] + if ok { + return r + } + + r = &CoherentRoot{ + ready: make(chan struct{}), + cache: btree2.NewBTreeG[*Element](Less), + codeCache: btree2.NewBTreeG[*Element](Less), + } + c.roots[versionID] = r + return r +} + +// advanceRoot - used for advancing root onNewBlock +func (c *Coherent) advanceRoot(stateVersionID uint64) (r *CoherentRoot) { + r, rootExists := c.roots[stateVersionID] + + // if nothing has progressed just return the existing root + if c.latestStateVersionID == stateVersionID && rootExists { + return r + } + + if !rootExists { + r = &CoherentRoot{ready: make(chan struct{})} + c.roots[stateVersionID] = r + } + + if prevView, ok := c.roots[stateVersionID-1]; ok && prevView.isCanonical { + //log.Info("advance: clone", "from", viewID-1, "to", viewID) + r.cache = prevView.cache.Copy() + r.codeCache = prevView.codeCache.Copy() + } else { + c.stateEvict.Init() + c.codeEvict.Init() + if r.cache == nil { + //log.Info("advance: new", "to", viewID) + r.cache = btree2.NewBTreeG[*Element](Less) + r.codeCache = btree2.NewBTreeG[*Element](Less) + } else { + r.cache.Walk(func(items []*Element) bool { + for _, i := range items { + c.stateEvict.PushFront(i) + } + return true + }) + r.codeCache.Walk(func(items []*Element) bool { + for _, i := range items { + c.codeEvict.PushFront(i) + } + return true + }) + } + } + r.isCanonical = true + + c.evictRoots() + c.latestStateVersionID = stateVersionID + c.latestStateView = r + + c.keys.SetInt(c.latestStateView.cache.Len()) + c.codeKeys.SetInt(c.latestStateView.codeCache.Len()) + c.evict.SetInt(c.stateEvict.Len()) + c.codeEvictLen.SetInt(c.codeEvict.Len()) + return r +} + +func (c *Coherent) OnNewBlock(stateChanges *remote.StateChangeBatch) { + c.lock.Lock() + defer c.lock.Unlock() + c.waitExceededCount.Store(0) // reset the circuit breaker + id := stateChanges.StateVersionId + r := c.advanceRoot(id) + for _, sc := range stateChanges.ChangeBatch { + for i := range sc.Changes { + switch sc.Changes[i].Action { + case remote.Action_UPSERT: + addr := gointerfaces.ConvertH160toAddress(sc.Changes[i].Address) + v := sc.Changes[i].Data + //fmt.Printf("set: %x,%x\n", addr, v) + c.add(addr[:], v, r, id) + case remote.Action_UPSERT_CODE: + addr := gointerfaces.ConvertH160toAddress(sc.Changes[i].Address) + v := sc.Changes[i].Data + c.add(addr[:], v, r, id) + c.hasher.Reset() + c.hasher.Write(sc.Changes[i].Code) + k := make([]byte, 32) + c.hasher.Sum(k) + c.addCode(k, sc.Changes[i].Code, r, id) + case remote.Action_REMOVE: + addr := gointerfaces.ConvertH160toAddress(sc.Changes[i].Address) + c.add(addr[:], nil, r, id) + case remote.Action_STORAGE: + //skip, will check later + case remote.Action_CODE: + c.hasher.Reset() + c.hasher.Write(sc.Changes[i].Code) + k := make([]byte, 32) + c.hasher.Sum(k) + c.addCode(k, sc.Changes[i].Code, r, id) + default: + panic("not implemented yet") + } + if c.cfg.WithStorage && len(sc.Changes[i].StorageChanges) > 0 { + addr := gointerfaces.ConvertH160toAddress(sc.Changes[i].Address) + for _, change := range sc.Changes[i].StorageChanges { + loc := gointerfaces.ConvertH256ToHash(change.Location) + k := make([]byte, 20+8+32) + copy(k, addr[:]) + binary.BigEndian.PutUint64(k[20:], sc.Changes[i].Incarnation) + copy(k[20+8:], loc[:]) + c.add(k, change.Data, r, id) + } + } + } + } + + switched := r.readyChanClosed.CompareAndSwap(false, true) + if switched { + close(r.ready) //broadcast + } + //log.Info("on new block handled", "viewID", stateChanges.StateVersionID) +} + +func (c *Coherent) View(ctx context.Context, tx kv.Tx) (CacheView, error) { + idBytes, err := tx.GetOne(kv.Sequence, kv.PlainStateVersion) + if err != nil { + return nil, err + } + var id uint64 + if len(idBytes) == 0 { + id = 0 + } else { + id = binary.BigEndian.Uint64(idBytes) + } + r := c.selectOrCreateRoot(id) + + if !c.cfg.WaitForNewBlock || c.waitExceededCount.Load() >= MAX_WAITS { + return &CoherentView{stateVersionID: id, tx: tx, cache: c}, nil + } + + select { // fast non-blocking path + case <-r.ready: + //fmt.Printf("recv broadcast: %d\n", id) + return &CoherentView{stateVersionID: id, tx: tx, cache: c}, nil + default: + } + + select { // slow blocking path + case <-r.ready: + //fmt.Printf("recv broadcast2: %d\n", tx.ViewID()) + case <-ctx.Done(): + return nil, fmt.Errorf("kvcache rootNum=%x, %w", tx.ViewID(), ctx.Err()) + case <-time.After(c.cfg.NewBlockWait): //TODO: switch to timer to save resources + c.timeout.Inc() + c.waitExceededCount.Add(1) + //log.Info("timeout", "db_id", id, "has_btree", r.cache != nil) + } + return &CoherentView{stateVersionID: id, tx: tx, cache: c}, nil +} + +func (c *Coherent) getFromCache(k []byte, id uint64, code bool) (*Element, *CoherentRoot, error) { + // using the full lock here rather than RLock as RLock causes a lot of calls to runtime.usleep degrading + // performance under load + c.lock.Lock() + defer c.lock.Unlock() + r, ok := c.roots[id] + if !ok { + return nil, r, fmt.Errorf("too old ViewID: %d, latestStateVersionID=%d", id, c.latestStateVersionID) + } + isLatest := c.latestStateVersionID == id + + var it *Element + if code { + it, _ = r.codeCache.Get(&Element{K: k}) + } else { + it, _ = r.cache.Get(&Element{K: k}) + } + if it != nil && isLatest { + c.stateEvict.MoveToFront(it) + } + + return it, r, nil +} +func (c *Coherent) Get(k []byte, tx kv.Tx, id uint64) ([]byte, error) { + it, r, err := c.getFromCache(k, id, false) + if err != nil { + return nil, err + } + + if it != nil { + //fmt.Printf("from cache: %#x,%x\n", k, it.(*Element).V) + c.hits.Inc() + return it.V, nil + } + c.miss.Inc() + + v, err := tx.GetOne(kv.PlainState, k) + if err != nil { + return nil, err + } + //fmt.Printf("from db: %#x,%x\n", k, v) + + c.lock.Lock() + defer c.lock.Unlock() + v = c.add(common.Copy(k), common.Copy(v), r, id).V + return v, nil +} + +func (c *Coherent) GetCode(k []byte, tx kv.Tx, id uint64) ([]byte, error) { + it, r, err := c.getFromCache(k, id, true) + if err != nil { + return nil, err + } + + if it != nil { + //fmt.Printf("from cache: %#x,%x\n", k, it.(*Element).V) + c.codeHits.Inc() + return it.V, nil + } + c.codeMiss.Inc() + + v, err := tx.GetOne(kv.Code, k) + if err != nil { + return nil, err + } + //fmt.Printf("from db: %#x,%x\n", k, v) + + c.lock.Lock() + defer c.lock.Unlock() + v = c.addCode(common.Copy(k), common.Copy(v), r, id).V + return v, nil +} +func (c *Coherent) removeOldest(r *CoherentRoot) { + e := c.stateEvict.Oldest() + if e != nil { + c.stateEvict.Remove(e) + r.cache.Delete(e) + } +} +func (c *Coherent) removeOldestCode(r *CoherentRoot) { + e := c.codeEvict.Oldest() + if e != nil { + c.codeEvict.Remove(e) + r.codeCache.Delete(e) + } +} +func (c *Coherent) add(k, v []byte, r *CoherentRoot, id uint64) *Element { + it := &Element{K: k, V: v} + replaced, _ := r.cache.Set(it) + if c.latestStateVersionID != id { + //fmt.Printf("add to non-last viewID: %d<%d\n", c.latestViewID, id) + return it + } + if replaced != nil { + c.stateEvict.Remove(replaced) + } + c.stateEvict.PushFront(it) + + // clear down cache until size below the configured limit + for c.stateEvict.Size() > int(c.cfg.CacheSize.Bytes()) { + c.removeOldest(r) + } + + return it +} +func (c *Coherent) addCode(k, v []byte, r *CoherentRoot, id uint64) *Element { + it := &Element{K: k, V: v} + replaced, _ := r.codeCache.Set(it) + if c.latestStateVersionID != id { + //fmt.Printf("add to non-last viewID: %d<%d\n", c.latestViewID, id) + return it + } + if replaced != nil { + c.codeEvict.Remove(replaced) + } + c.codeEvict.PushFront(it) + + for c.codeEvict.Size() > int(c.cfg.CodeCacheSize.Bytes()) { + c.removeOldestCode(r) + } + + return it +} + +func (c *Coherent) ValidateCurrentRoot(ctx context.Context, tx kv.Tx) (*CacheValidationResult, error) { + + result := &CacheValidationResult{ + Enabled: true, + RequestCancelled: false, + } + + select { + case <-ctx.Done(): + result.RequestCancelled = true + return result, nil + default: + } + + idBytes, err := tx.GetOne(kv.Sequence, kv.PlainStateVersion) + if err != nil { + return nil, err + } + stateID := binary.BigEndian.Uint64(idBytes) + result.LatestStateID = stateID + + // if the latest view id in the cache is not the same as the tx or one below it + // then the cache will be a new one for the next call so return early + if stateID > c.latestStateVersionID { + result.LatestStateBehind = true + return result, nil + } + + root := c.selectOrCreateRoot(c.latestStateVersionID) + + // ensure the root is ready or wait and press on + select { + case <-root.ready: + case <-time.After(c.cfg.NewBlockWait): + } + + // check context again after potentially waiting for root to be ready + select { + case <-ctx.Done(): + result.RequestCancelled = true + return result, nil + default: + } + + clearCache := false + + compare := func(cache *btree2.BTreeG[*Element], bucket string) (bool, [][]byte, error) { + keys := make([][]byte, 0) + + for { + val, ok := cache.PopMax() + if !ok { + break + } + + // check the db + inDb, err := tx.GetOne(bucket, val.K) + if err != nil { + return false, keys, err + } + + if !bytes.Equal(inDb, val.V) { + keys = append(keys, val.K) + clearCache = true + } + + select { + case <-ctx.Done(): + return true, keys, nil + default: + } + } + + return false, keys, nil + } + + cache, codeCache := c.cloneCaches(root) + + cancelled, keys, err := compare(cache, kv.PlainState) + if err != nil { + return nil, err + } + result.StateKeysOutOfSync = keys + if cancelled { + result.RequestCancelled = true + return result, nil + } + + cancelled, keys, err = compare(codeCache, kv.Code) + if err != nil { + return nil, err + } + result.CodeKeysOutOfSync = keys + if cancelled { + result.RequestCancelled = true + return result, nil + } + + if clearCache { + c.clearCaches(root) + } + result.CacheCleared = clearCache + + return result, nil +} + +func (c *Coherent) cloneCaches(r *CoherentRoot) (cache *btree2.BTreeG[*Element], codeCache *btree2.BTreeG[*Element]) { + c.lock.Lock() + defer c.lock.Unlock() + cache = r.cache.Copy() + codeCache = r.codeCache.Copy() + return cache, codeCache +} + +func (c *Coherent) clearCaches(r *CoherentRoot) { + c.lock.Lock() + defer c.lock.Unlock() + r.cache.Clear() + r.codeCache.Clear() +} + +type Stat struct { + BlockNum uint64 + BlockHash [32]byte + Lenght int +} + +func DebugStats(cache Cache) []Stat { + res := []Stat{} + casted, ok := cache.(*Coherent) + if !ok { + return res + } + casted.lock.Lock() + for root, r := range casted.roots { + res = append(res, Stat{ + BlockNum: root, + Lenght: r.cache.Len(), + }) + } + casted.lock.Unlock() + sort.Slice(res, func(i, j int) bool { return res[i].BlockNum < res[j].BlockNum }) + return res +} +func AssertCheckValues(ctx context.Context, tx kv.Tx, cache Cache) (int, error) { + defer func(t time.Time) { fmt.Printf("AssertCheckValues:327: %s\n", time.Since(t)) }(time.Now()) + view, err := cache.View(ctx, tx) + if err != nil { + return 0, err + } + castedView, ok := view.(*CoherentView) + if !ok { + return 0, nil + } + casted, ok := cache.(*Coherent) + if !ok { + return 0, nil + } + checked := 0 + casted.lock.Lock() + defer casted.lock.Unlock() + //log.Info("AssertCheckValues start", "db_id", tx.ViewID(), "mem_id", casted.id.Load(), "len", casted.cache.Len()) + root, ok := casted.roots[castedView.stateVersionID] + if !ok { + return 0, nil + } + root.cache.Walk(func(items []*Element) bool { + for _, i := range items { + k, v := i.K, i.V + var dbV []byte + dbV, err = tx.GetOne(kv.PlainState, k) + if err != nil { + return false + } + if !bytes.Equal(dbV, v) { + err = fmt.Errorf("key: %x, has different values: %x != %x", k, v, dbV) + return false + } + checked++ + } + return true + }) + return checked, err +} +func (c *Coherent) evictRoots() { + if c.latestStateVersionID <= c.cfg.KeepViews { + return + } + if len(c.roots) < int(c.cfg.KeepViews) { + return + } + to := c.latestStateVersionID - c.cfg.KeepViews + toDel := make([]uint64, 0, len(c.roots)) + for txID := range c.roots { + if txID > to { + continue + } + toDel = append(toDel, txID) + } + //log.Info("forget old roots", "list", fmt.Sprintf("%d", toDel)) + for _, txID := range toDel { + delete(c.roots, txID) + } +} +func (c *Coherent) Len() int { + c.lock.Lock() + defer c.lock.Unlock() + if c.latestStateView == nil { + return 0 + } + return c.latestStateView.cache.Len() //todo: is it same with cache.len()? +} + +// Element is an element of a linked list. +type Element struct { + // Next and previous pointers in the doubly-linked list of elements. + // To simplify the implementation, internally a list l is implemented + // as a ring, such that &l.root is both the next element of the last + // list element (l.Back()) and the previous element of the first list + // element (l.Front()). + next, prev *Element + + // The list to which this element belongs. + list *List + + // The value stored with this element. + K, V []byte +} + +func (e *Element) Size() int { return len(e.K) + len(e.V) } + +func Less(a, b *Element) bool { return bytes.Compare(a.K, b.K) < 0 } + +type ThreadSafeEvictionList struct { + l *List + lock sync.Mutex +} + +func (l *ThreadSafeEvictionList) Init() { + l.lock.Lock() + l.l.Init() + l.lock.Unlock() +} +func (l *ThreadSafeEvictionList) PushFront(e *Element) { + l.lock.Lock() + l.l.PushFront(e) + l.lock.Unlock() +} + +func (l *ThreadSafeEvictionList) MoveToFront(e *Element) { + l.lock.Lock() + l.l.MoveToFront(e) + l.lock.Unlock() +} + +func (l *ThreadSafeEvictionList) Remove(e *Element) { + l.lock.Lock() + l.l.Remove(e) + l.lock.Unlock() +} + +func (l *ThreadSafeEvictionList) Oldest() *Element { + l.lock.Lock() + e := l.l.Back() + l.lock.Unlock() + return e +} + +func (l *ThreadSafeEvictionList) Len() int { + l.lock.Lock() + length := l.l.Len() + l.lock.Unlock() + return length +} + +func (l *ThreadSafeEvictionList) Size() int { + l.lock.Lock() + size := l.l.Size() + l.lock.Unlock() + return size +} + +// ========= copypaste of List implementation from stdlib ======== + +// Next returns the next list element or nil. +func (e *Element) Next() *Element { + if p := e.next; e.list != nil && p != &e.list.root { + return p + } + return nil +} + +// Prev returns the previous list element or nil. +func (e *Element) Prev() *Element { + if p := e.prev; e.list != nil && p != &e.list.root { + return p + } + return nil +} + +// List represents a doubly linked list. +// The zero value for List is an empty list ready to use. +type List struct { + root Element // sentinel list element, only &root, root.prev, and root.next are used + len int // current list length excluding (this) sentinel element + size int // size of items in list in bytes +} + +// Init initializes or clears list l. +func (l *List) Init() *List { + l.root.next = &l.root + l.root.prev = &l.root + l.len = 0 + l.size = 0 + return l +} + +// New returns an initialized list. +func NewList() *List { return new(List).Init() } + +// Len returns the number of elements of list l. +// The complexity is O(1). +func (l *List) Len() int { return l.len } + +// Size returns the size of the elements in the list by bytes +func (l *List) Size() int { return l.size } + +// Front returns the first element of list l or nil if the list is empty. +func (l *List) Front() *Element { + if l.len == 0 { + return nil + } + return l.root.next +} + +// Back returns the last element of list l or nil if the list is empty. +func (l *List) Back() *Element { + if l.len == 0 { + return nil + } + return l.root.prev +} + +// lazyInit lazily initializes a zero List value. +func (l *List) lazyInit() { + if l.root.next == nil { + l.Init() + } +} + +// insert inserts e after at, increments l.len, and returns e. +func (l *List) insert(e, at *Element) *Element { + e.prev = at + e.next = at.next + e.prev.next = e + e.next.prev = e + e.list = l + l.len++ + l.size += e.Size() + return e +} + +// insertValue is a convenience wrapper for insert(&Element{Value: v}, at). +func (l *List) insertValue(e, at *Element) *Element { + return l.insert(e, at) +} + +// remove removes e from its list, decrements l.len, and returns e. +func (l *List) remove(e *Element) *Element { + e.prev.next = e.next + e.next.prev = e.prev + e.next = nil // avoid memory leaks + e.prev = nil // avoid memory leaks + e.list = nil + l.len-- + l.size -= e.Size() + return e +} + +// move moves e to next to at and returns e. +func (l *List) move(e, at *Element) *Element { + if e == at { + return e + } + e.prev.next = e.next + e.next.prev = e.prev + + e.prev = at + e.next = at.next + e.prev.next = e + e.next.prev = e + + return e +} + +// Remove removes e from l if e is an element of list l. +// It returns the element value e.Value. +// The element must not be nil. +func (l *List) Remove(e *Element) ([]byte, []byte) { + if e.list == l { + // if e.list == l, l must have been initialized when e was inserted + // in l or l == nil (e is a zero Element) and l.remove will crash + l.remove(e) + } + return e.K, e.V +} + +// PushFront inserts a new element e with value v at the front of list l and returns e. +func (l *List) PushFront(e *Element) *Element { + l.lazyInit() + return l.insertValue(e, &l.root) +} + +// PushBack inserts a new element e with value v at the back of list l and returns e. +func (l *List) PushBack(e *Element) *Element { + l.lazyInit() + return l.insertValue(e, l.root.prev) +} + +// InsertBefore inserts a new element e with value v immediately before mark and returns e. +// If mark is not an element of l, the list is not modified. +// The mark must not be nil. +func (l *List) InsertBefore(e *Element, mark *Element) *Element { + if mark.list != l { + return nil + } + // see comment in List.Remove about initialization of l + return l.insertValue(e, mark.prev) +} + +// InsertAfter inserts a new element e with value v immediately after mark and returns e. +// If mark is not an element of l, the list is not modified. +// The mark must not be nil. +func (l *List) InsertAfter(e *Element, mark *Element) *Element { + if mark.list != l { + return nil + } + // see comment in List.Remove about initialization of l + return l.insertValue(e, mark) +} + +// MoveToFront moves element e to the front of list l. +// If e is not an element of l, the list is not modified. +// The element must not be nil. +func (l *List) MoveToFront(e *Element) { + if e.list != l || l.root.next == e { + return + } + // see comment in List.Remove about initialization of l + l.move(e, &l.root) +} + +// MoveToBack moves element e to the back of list l. +// If e is not an element of l, the list is not modified. +// The element must not be nil. +func (l *List) MoveToBack(e *Element) { + if e.list != l || l.root.prev == e { + return + } + // see comment in List.Remove about initialization of l + l.move(e, l.root.prev) +} + +// MoveBefore moves element e to its new position before mark. +// If e or mark is not an element of l, or e == mark, the list is not modified. +// The element and mark must not be nil. +func (l *List) MoveBefore(e, mark *Element) { + if e.list != l || e == mark || mark.list != l { + return + } + l.move(e, mark.prev) +} + +// MoveAfter moves element e to its new position after mark. +// If e or mark is not an element of l, or e == mark, the list is not modified. +// The element and mark must not be nil. +func (l *List) MoveAfter(e, mark *Element) { + if e.list != l || e == mark || mark.list != l { + return + } + l.move(e, mark) +} diff --git a/erigon-lib/kv/kvcache/cache_test.go b/erigon-lib/kv/kvcache/cache_test.go new file mode 100644 index 00000000000..0f119831afe --- /dev/null +++ b/erigon-lib/kv/kvcache/cache_test.go @@ -0,0 +1,374 @@ +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package kvcache + +import ( + "context" + "encoding/binary" + "fmt" + "sync" + "testing" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/stretchr/testify/require" +) + +func TestEvictionInUnexpectedOrder(t *testing.T) { + // Order: View - 2, OnNewBlock - 2, View - 5, View - 6, OnNewBlock - 3, OnNewBlock - 4, View - 5, OnNewBlock - 5, OnNewBlock - 100 + require := require.New(t) + cfg := DefaultCoherentConfig + cfg.CacheSize = 3 + cfg.NewBlockWait = 0 + c := New(cfg) + c.selectOrCreateRoot(2) + require.Equal(1, len(c.roots)) + require.Equal(0, int(c.latestStateVersionID)) + require.False(c.roots[2].isCanonical) + + c.add([]byte{1}, nil, c.roots[2], 2) + require.Equal(0, c.stateEvict.Len()) + + c.advanceRoot(2) + require.Equal(1, len(c.roots)) + require.Equal(2, int(c.latestStateVersionID)) + require.True(c.roots[2].isCanonical) + + c.add([]byte{1}, nil, c.roots[2], 2) + require.Equal(1, c.stateEvict.Len()) + + c.selectOrCreateRoot(5) + require.Equal(2, len(c.roots)) + require.Equal(2, int(c.latestStateVersionID)) + require.False(c.roots[5].isCanonical) + + c.add([]byte{2}, nil, c.roots[5], 5) // not added to evict list + require.Equal(1, c.stateEvict.Len()) + c.add([]byte{2}, nil, c.roots[2], 2) // added to evict list, because it's latest view + require.Equal(2, c.stateEvict.Len()) + + c.selectOrCreateRoot(6) + require.Equal(3, len(c.roots)) + require.Equal(2, int(c.latestStateVersionID)) + require.False(c.roots[6].isCanonical) // parrent exists, but parent has isCanonical=false + + c.advanceRoot(3) + require.Equal(4, len(c.roots)) + require.Equal(3, int(c.latestStateVersionID)) + require.True(c.roots[3].isCanonical) + + c.advanceRoot(4) + require.Equal(5, len(c.roots)) + require.Equal(4, int(c.latestStateVersionID)) + require.True(c.roots[4].isCanonical) + + c.selectOrCreateRoot(5) + require.Equal(5, len(c.roots)) + require.Equal(4, int(c.latestStateVersionID)) + require.False(c.roots[5].isCanonical) + + c.advanceRoot(5) + require.Equal(5, len(c.roots)) + require.Equal(5, int(c.latestStateVersionID)) + require.True(c.roots[5].isCanonical) + + c.advanceRoot(100) + require.Equal(6, len(c.roots)) + require.Equal(100, int(c.latestStateVersionID)) + require.True(c.roots[100].isCanonical) + + //c.add([]byte{1}, nil, c.roots[2], 2) + require.Equal(0, c.latestStateView.cache.Len()) + require.Equal(0, c.stateEvict.Len()) +} + +func TestEviction(t *testing.T) { + require, ctx := require.New(t), context.Background() + cfg := DefaultCoherentConfig + cfg.CacheSize = 21 + cfg.NewBlockWait = 0 + c := New(cfg) + db := memdb.NewTestDB(t) + k1, k2 := [20]byte{1}, [20]byte{2} + + var id uint64 + _ = db.Update(ctx, func(tx kv.RwTx) error { + _ = tx.Put(kv.PlainState, k1[:], []byte{1}) + id = tx.ViewID() + var versionID [8]byte + binary.BigEndian.PutUint64(versionID[:], id) + _ = tx.Put(kv.Sequence, kv.PlainStateVersion, versionID[:]) + cacheView, _ := c.View(ctx, tx) + view := cacheView.(*CoherentView) + _, _ = c.Get(k1[:], tx, view.stateVersionID) + _, _ = c.Get([]byte{1}, tx, view.stateVersionID) + _, _ = c.Get([]byte{2}, tx, view.stateVersionID) + _, _ = c.Get([]byte{3}, tx, view.stateVersionID) + //require.Equal(c.roots[c.latestViewID].cache.Len(), c.stateEvict.Len()) + return nil + }) + require.Equal(0, c.stateEvict.Len()) + //require.Equal(c.roots[c.latestViewID].cache.Len(), c.stateEvict.Len()) + c.OnNewBlock(&remote.StateChangeBatch{ + StateVersionId: id + 1, + ChangeBatch: []*remote.StateChange{ + { + Direction: remote.Direction_FORWARD, + Changes: []*remote.AccountChange{{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(k1), + Data: []byte{2}, + }}, + }, + }, + }) + require.Equal(21, c.stateEvict.Size()) + require.Equal(1, c.stateEvict.Len()) + require.Equal(c.roots[c.latestStateVersionID].cache.Len(), c.stateEvict.Len()) + _ = db.Update(ctx, func(tx kv.RwTx) error { + _ = tx.Put(kv.PlainState, k1[:], []byte{1}) + id = tx.ViewID() + cacheView, _ := c.View(ctx, tx) + var versionID [8]byte + binary.BigEndian.PutUint64(versionID[:], id) + _ = tx.Put(kv.Sequence, kv.PlainStateVersion, versionID[:]) + view := cacheView.(*CoherentView) + _, _ = c.Get(k1[:], tx, view.stateVersionID) + _, _ = c.Get(k2[:], tx, view.stateVersionID) + _, _ = c.Get([]byte{5}, tx, view.stateVersionID) + _, _ = c.Get([]byte{6}, tx, view.stateVersionID) + return nil + }) + require.Equal(c.roots[c.latestStateVersionID].cache.Len(), c.stateEvict.Len()) + require.Equal(int(cfg.CacheSize.Bytes()), c.stateEvict.Size()) +} + +func TestAPI(t *testing.T) { + require := require.New(t) + c := New(DefaultCoherentConfig) + k1, k2 := [20]byte{1}, [20]byte{2} + db := memdb.NewTestDB(t) + get := func(key [20]byte, expectTxnID uint64) (res [1]chan []byte) { + wg := sync.WaitGroup{} + for i := 0; i < len(res); i++ { + wg.Add(1) + res[i] = make(chan []byte) + go func(out chan []byte) { + require.NoError(db.View(context.Background(), func(tx kv.Tx) error { + if expectTxnID != tx.ViewID() { + panic(fmt.Sprintf("epxected: %d, got: %d", expectTxnID, tx.ViewID())) + } + wg.Done() + cacheView, err := c.View(context.Background(), tx) + view := cacheView.(*CoherentView) + if err != nil { + panic(err) + } + v, err := c.Get(key[:], tx, view.stateVersionID) + if err != nil { + panic(err) + } + out <- common.Copy(v) + return nil + })) + }(res[i]) + } + wg.Wait() // ensure that all goroutines started their transactions + return res + } + put := func(k, v []byte) uint64 { + var txID uint64 + require.NoError(db.Update(context.Background(), func(tx kv.RwTx) error { + _ = tx.Put(kv.PlainState, k, v) + txID = tx.ViewID() + var versionID [8]byte + binary.BigEndian.PutUint64(versionID[:], txID) + _ = tx.Put(kv.Sequence, kv.PlainStateVersion, versionID[:]) + return nil + })) + return txID + } + // block 1 - represents existing state (no notifications about this data will come to client) + txID1 := put(k2[:], []byte{42}) + + wg := sync.WaitGroup{} + + res1, res2 := get(k1, txID1), get(k2, txID1) // will return immediately + wg.Add(1) + go func() { + defer wg.Done() + for i := range res1 { + require.Nil(<-res1[i]) + } + for i := range res2 { + require.Equal([]byte{42}, <-res2[i]) + } + fmt.Printf("done1: \n") + }() + + txID2 := put(k1[:], []byte{2}) + fmt.Printf("-----1 %d, %d\n", txID1, txID2) + res3, res4 := get(k1, txID2), get(k2, txID2) // will see View of transaction 2 + txID3 := put(k1[:], []byte{3}) // even if core already on block 3 + + c.OnNewBlock(&remote.StateChangeBatch{ + StateVersionId: txID2, + PendingBlockBaseFee: 1, + ChangeBatch: []*remote.StateChange{ + { + Direction: remote.Direction_FORWARD, + BlockHeight: 2, + BlockHash: gointerfaces.ConvertHashToH256([32]byte{}), + Changes: []*remote.AccountChange{{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(k1), + Data: []byte{2}, + }}, + }, + }, + }) + + wg.Add(1) + go func() { + defer wg.Done() + for i := range res3 { + require.Equal([]byte{2}, <-res3[i]) + } + for i := range res4 { + require.Equal([]byte{42}, <-res4[i]) + } + fmt.Printf("done2: \n") + }() + fmt.Printf("-----2\n") + + res5, res6 := get(k1, txID3), get(k2, txID3) // will see View of transaction 3, even if notification has not enough changes + c.OnNewBlock(&remote.StateChangeBatch{ + StateVersionId: txID3, + PendingBlockBaseFee: 1, + ChangeBatch: []*remote.StateChange{ + { + Direction: remote.Direction_FORWARD, + BlockHeight: 3, + BlockHash: gointerfaces.ConvertHashToH256([32]byte{}), + Changes: []*remote.AccountChange{{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(k1), + Data: []byte{3}, + }}, + }, + }, + }) + + wg.Add(1) + go func() { + defer wg.Done() + for i := range res5 { + require.Equal([]byte{3}, <-res5[i]) + } + fmt.Printf("-----21\n") + for i := range res6 { + require.Equal([]byte{42}, <-res6[i]) + } + fmt.Printf("done3: \n") + }() + fmt.Printf("-----3\n") + txID4 := put(k1[:], []byte{2}) + _ = txID4 + c.OnNewBlock(&remote.StateChangeBatch{ + StateVersionId: txID4, + PendingBlockBaseFee: 1, + ChangeBatch: []*remote.StateChange{ + { + Direction: remote.Direction_UNWIND, + BlockHeight: 2, + BlockHash: gointerfaces.ConvertHashToH256([32]byte{}), + Changes: []*remote.AccountChange{{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(k1), + Data: []byte{2}, + }}, + }, + }, + }) + fmt.Printf("-----4\n") + txID5 := put(k1[:], []byte{4}) // reorg to new chain + c.OnNewBlock(&remote.StateChangeBatch{ + StateVersionId: txID4, + PendingBlockBaseFee: 1, + ChangeBatch: []*remote.StateChange{ + { + Direction: remote.Direction_FORWARD, + BlockHeight: 3, + BlockHash: gointerfaces.ConvertHashToH256([32]byte{2}), + Changes: []*remote.AccountChange{{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(k1), + Data: []byte{4}, + }}, + }, + }, + }) + fmt.Printf("-----5\n") + + res7, res8 := get(k1, txID5), get(k2, txID5) // will see View of transaction 3, even if notification has not enough changes + + wg.Add(1) + go func() { + defer wg.Done() + for i := range res7 { + require.Equal([]byte{4}, <-res7[i]) + } + for i := range res8 { + require.Equal([]byte{42}, <-res8[i]) + } + fmt.Printf("done4: \n") + }() + err := db.View(context.Background(), func(tx kv.Tx) error { + _, err := AssertCheckValues(context.Background(), tx, c) + require.NoError(err) + return nil + }) + require.NoError(err) + + wg.Wait() +} + +func TestCode(t *testing.T) { + require, ctx := require.New(t), context.Background() + c := New(DefaultCoherentConfig) + db := memdb.NewTestDB(t) + k1, k2 := [20]byte{1}, [20]byte{2} + + _ = db.Update(ctx, func(tx kv.RwTx) error { + _ = tx.Put(kv.Code, k1[:], k2[:]) + cacheView, _ := c.View(ctx, tx) + view := cacheView.(*CoherentView) + + v, err := c.GetCode(k1[:], tx, view.stateVersionID) + require.NoError(err) + require.Equal(k2[:], v) + + v, err = c.GetCode(k1[:], tx, view.stateVersionID) + require.NoError(err) + require.Equal(k2[:], v) + + //require.Equal(c.roots[c.latestViewID].cache.Len(), c.stateEvict.Len()) + return nil + }) +} diff --git a/erigon-lib/kv/kvcache/dummy.go b/erigon-lib/kv/kvcache/dummy.go new file mode 100644 index 00000000000..68697d0039e --- /dev/null +++ b/erigon-lib/kv/kvcache/dummy.go @@ -0,0 +1,54 @@ +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package kvcache + +import ( + "context" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/kv" +) + +// DummyCache - doesn't remember anything - can be used when service is not remote +type DummyCache struct{} + +var _ Cache = (*DummyCache)(nil) // compile-time interface check +var _ CacheView = (*DummyView)(nil) // compile-time interface check + +func NewDummy() *DummyCache { return &DummyCache{} } +func (c *DummyCache) View(_ context.Context, tx kv.Tx) (CacheView, error) { + return &DummyView{cache: c, tx: tx}, nil +} +func (c *DummyCache) OnNewBlock(sc *remote.StateChangeBatch) {} +func (c *DummyCache) Evict() int { return 0 } +func (c *DummyCache) Len() int { return 0 } +func (c *DummyCache) Get(k []byte, tx kv.Tx, id uint64) ([]byte, error) { + return tx.GetOne(kv.PlainState, k) +} +func (c *DummyCache) GetCode(k []byte, tx kv.Tx, id uint64) ([]byte, error) { + return tx.GetOne(kv.Code, k) +} +func (c *DummyCache) ValidateCurrentRoot(_ context.Context, _ kv.Tx) (*CacheValidationResult, error) { + return &CacheValidationResult{Enabled: false}, nil +} + +type DummyView struct { + cache *DummyCache + tx kv.Tx +} + +func (c *DummyView) Get(k []byte) ([]byte, error) { return c.cache.Get(k, c.tx, 0) } +func (c *DummyView) GetCode(k []byte) ([]byte, error) { return c.cache.GetCode(k, c.tx, 0) } diff --git a/erigon-lib/kv/kvcfg/accessors_config.go b/erigon-lib/kv/kvcfg/accessors_config.go new file mode 100644 index 00000000000..5c68771e45d --- /dev/null +++ b/erigon-lib/kv/kvcfg/accessors_config.go @@ -0,0 +1,63 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package kvcfg + +import ( + "context" + + "github.com/ledgerwatch/erigon-lib/kv" +) + +type ConfigKey []byte + +var ( + HistoryV3 = ConfigKey("history.v3") +) + +func (k ConfigKey) Enabled(tx kv.Tx) (bool, error) { return kv.GetBool(tx, kv.DatabaseInfo, k) } +func (k ConfigKey) FromDB(db kv.RoDB) (enabled bool) { + if err := db.View(context.Background(), func(tx kv.Tx) error { + var err error + enabled, err = k.Enabled(tx) + if err != nil { + return err + } + return nil + }); err != nil { + panic(err) + } + return enabled +} +func (k ConfigKey) WriteOnce(tx kv.RwTx, v bool) (bool, error) { + _, enabled, err := kv.EnsureNotChangedBool(tx, kv.DatabaseInfo, k, v) + return enabled, err +} +func (k ConfigKey) EnsureNotChanged(tx kv.RwTx, value bool) (ok, enabled bool, err error) { + return kv.EnsureNotChangedBool(tx, kv.DatabaseInfo, k, value) +} +func (k ConfigKey) ForceWrite(tx kv.RwTx, enabled bool) error { + if enabled { + if err := tx.Put(kv.DatabaseInfo, k, []byte{1}); err != nil { + return err + } + } else { + if err := tx.Put(kv.DatabaseInfo, k, []byte{0}); err != nil { + return err + } + } + return nil +} diff --git a/erigon-lib/kv/mdbx/kv_abstract_test.go b/erigon-lib/kv/mdbx/kv_abstract_test.go new file mode 100644 index 00000000000..a504eac6407 --- /dev/null +++ b/erigon-lib/kv/mdbx/kv_abstract_test.go @@ -0,0 +1,635 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package mdbx_test + +import ( + "context" + "fmt" + "net" + "runtime" + "testing" + + "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon-lib/kv/remotedb" + "github.com/ledgerwatch/erigon-lib/kv/remotedbserver" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "google.golang.org/grpc" + "google.golang.org/grpc/test/bufconn" +) + +func TestSequence(t *testing.T) { + if runtime.GOOS == "windows" { + t.Skip("fix me on win please") + } + + writeDBs, _ := setupDatabases(t, log.New(), func(defaultBuckets kv.TableCfg) kv.TableCfg { + return defaultBuckets + }) + ctx := context.Background() + + for _, db := range writeDBs { + db := db + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + + i, err := tx.ReadSequence(kv.ChaindataTables[0]) + require.NoError(t, err) + require.Equal(t, uint64(0), i) + i, err = tx.IncrementSequence(kv.ChaindataTables[0], 1) + require.NoError(t, err) + require.Equal(t, uint64(0), i) + i, err = tx.IncrementSequence(kv.ChaindataTables[0], 6) + require.NoError(t, err) + require.Equal(t, uint64(1), i) + i, err = tx.IncrementSequence(kv.ChaindataTables[0], 1) + require.NoError(t, err) + require.Equal(t, uint64(7), i) + + i, err = tx.ReadSequence(kv.ChaindataTables[1]) + require.NoError(t, err) + require.Equal(t, uint64(0), i) + i, err = tx.IncrementSequence(kv.ChaindataTables[1], 1) + require.NoError(t, err) + require.Equal(t, uint64(0), i) + i, err = tx.IncrementSequence(kv.ChaindataTables[1], 6) + require.NoError(t, err) + require.Equal(t, uint64(1), i) + i, err = tx.IncrementSequence(kv.ChaindataTables[1], 1) + require.NoError(t, err) + require.Equal(t, uint64(7), i) + tx.Rollback() + } +} + +func TestManagedTx(t *testing.T) { + if runtime.GOOS == "windows" { + t.Skip("fix me on win please") + } + + logger := log.New() + defaultConfig := kv.ChaindataTablesCfg + defer func() { + kv.ChaindataTablesCfg = defaultConfig + }() + + bucketID := 0 + bucket1 := kv.ChaindataTables[bucketID] + bucket2 := kv.ChaindataTables[bucketID+1] + writeDBs, readDBs := setupDatabases(t, logger, func(defaultBuckets kv.TableCfg) kv.TableCfg { + return map[string]kv.TableCfgItem{ + bucket1: { + Flags: kv.DupSort, + AutoDupSortKeysConversion: true, + DupToLen: 4, + DupFromLen: 6, + }, + bucket2: { + Flags: 0, + }, + } + }) + + ctx := context.Background() + + for _, db := range writeDBs { + db := db + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + + c, err := tx.RwCursor(bucket1) + require.NoError(t, err) + c1, err := tx.RwCursor(bucket2) + require.NoError(t, err) + require.NoError(t, c.Append([]byte{0}, []byte{1})) + require.NoError(t, c1.Append([]byte{0}, []byte{1})) + require.NoError(t, c.Append([]byte{0, 0, 0, 0, 0, 1}, []byte{1})) // prefixes of len=FromLen for DupSort test (other keys must be 0 { + opts = opts.DirtySpace(dbg.DirtySpace()) //nolint + } + if dbg.NoSync() { + opts = opts.Flags(func(u uint) uint { return u | mdbx.SafeNoSync }) //nolint + } + if dbg.MergeTr() > 0 { + opts = opts.WriteMergeThreshold(uint64(dbg.MergeTr() * 8192)) //nolint + } + if dbg.MdbxReadAhead() { + opts = opts.Flags(func(u uint) uint { return u &^ mdbx.NoReadahead }) //nolint + } + if opts.flags&mdbx.Accede != 0 || opts.flags&mdbx.Readonly != 0 { + for retry := 0; ; retry++ { + exists := dir.FileExist(filepath.Join(opts.path, "mdbx.dat")) + if exists { + break + } + if retry >= 5 { + return nil, fmt.Errorf("%w, label: %s, path: %s", ErrDBDoesNotExists, opts.label.String(), opts.path) + } + select { + case <-time.After(500 * time.Millisecond): + case <-ctx.Done(): + return nil, ctx.Err() + } + } + + } + + env, err := mdbx.NewEnv() + if err != nil { + return nil, err + } + if opts.verbosity != -1 { + err = env.SetDebug(mdbx.LogLvl(opts.verbosity), mdbx.DbgDoNotChange, mdbx.LoggerDoNotChange) // temporary disable error, because it works if call it 1 time, but returns error if call it twice in same process (what often happening in tests) + if err != nil { + return nil, fmt.Errorf("db verbosity set: %w", err) + } + } + if err = env.SetOption(mdbx.OptMaxDB, 200); err != nil { + return nil, err + } + if err = env.SetOption(mdbx.OptMaxReaders, kv.ReadersLimit); err != nil { + return nil, err + } + + if opts.flags&mdbx.Accede == 0 { + if err = env.SetGeometry(-1, -1, int(opts.mapSize), int(opts.growthStep), opts.shrinkThreshold, int(opts.pageSize)); err != nil { + return nil, err + } + if err = os.MkdirAll(opts.path, 0744); err != nil { + return nil, fmt.Errorf("could not create dir: %s, %w", opts.path, err) + } + } + + err = env.Open(opts.path, opts.flags, 0664) + if err != nil { + if err != nil { + return nil, fmt.Errorf("%w, label: %s, trace: %s", err, opts.label.String(), stack2.Trace().String()) + } + } + + // mdbx will not change pageSize if db already exists. means need read real value after env.open() + in, err := env.Info(nil) + if err != nil { + if err != nil { + return nil, fmt.Errorf("%w, label: %s, trace: %s", err, opts.label.String(), stack2.Trace().String()) + } + } + + opts.pageSize = uint64(in.PageSize) + opts.mapSize = datasize.ByteSize(in.MapSize) + if opts.label == kv.ChainDB { + opts.log.Info("[db] open", "lable", opts.label, "sizeLimit", opts.mapSize, "pageSize", opts.pageSize) + } else { + opts.log.Debug("[db] open", "lable", opts.label, "sizeLimit", opts.mapSize, "pageSize", opts.pageSize) + } + + // erigon using big transactions + // increase "page measured" options. need do it after env.Open() because default are depend on pageSize known only after env.Open() + if !opts.HasFlag(mdbx.Accede) && !opts.HasFlag(mdbx.Readonly) { + // 1/8 is good for transactions with a lot of modifications - to reduce invalidation size. + // But Erigon app now using Batch and etl.Collectors to avoid writing to DB frequently changing data. + // It means most of our writes are: APPEND or "single UPSERT per key during transaction" + //if err = env.SetOption(mdbx.OptSpillMinDenominator, 8); err != nil { + // return nil, err + //} + + txnDpInitial, err := env.GetOption(mdbx.OptTxnDpInitial) + if err != nil { + return nil, err + } + if err = env.SetOption(mdbx.OptTxnDpInitial, txnDpInitial*2); err != nil { + return nil, err + } + dpReserveLimit, err := env.GetOption(mdbx.OptDpReverseLimit) + if err != nil { + return nil, err + } + if err = env.SetOption(mdbx.OptDpReverseLimit, dpReserveLimit*2); err != nil { + return nil, err + } + + if err = env.SetOption(mdbx.OptTxnDpLimit, opts.dirtySpace/opts.pageSize); err != nil { + return nil, err + } + // must be in the range from 12.5% (almost empty) to 50% (half empty) + // which corresponds to the range from 8192 and to 32768 in units respectively + if err = env.SetOption(mdbx.OptMergeThreshold16dot16Percent, opts.mergeThreshold); err != nil { + return nil, err + } + } + + dirtyPagesLimit, err := env.GetOption(mdbx.OptTxnDpLimit) + if err != nil { + return nil, err + } + + if opts.syncPeriod != 0 { + if err = env.SetSyncPeriod(opts.syncPeriod); err != nil { + env.Close() + return nil, err + } + } + //if err := env.SetOption(mdbx.OptSyncBytes, uint64(math2.MaxUint64)); err != nil { + // return nil, err + //} + + if opts.roTxsLimiter == nil { + targetSemCount := int64(runtime.GOMAXPROCS(-1) * 16) + opts.roTxsLimiter = semaphore.NewWeighted(targetSemCount) // 1 less than max to allow unlocking to happen + } + db := &MdbxKV{ + opts: opts, + env: env, + log: opts.log, + wg: &sync.WaitGroup{}, + buckets: kv.TableCfg{}, + txSize: dirtyPagesLimit * opts.pageSize, + roTxsLimiter: opts.roTxsLimiter, + + leakDetector: dbg.NewLeakDetector("db."+opts.label.String(), dbg.SlowTx()), + } + + customBuckets := opts.bucketsCfg(kv.ChaindataTablesCfg) + for name, cfg := range customBuckets { // copy map to avoid changing global variable + db.buckets[name] = cfg + } + + buckets := bucketSlice(db.buckets) + if err := db.openDBIs(buckets); err != nil { + return nil, err + } + + // Configure buckets and open deprecated buckets + if err := env.View(func(tx *mdbx.Txn) error { + for _, name := range buckets { + // Open deprecated buckets if they exist, don't create + if !db.buckets[name].IsDeprecated { + continue + } + cnfCopy := db.buckets[name] + dbi, createErr := tx.OpenDBI(name, mdbx.DBAccede, nil, nil) + if createErr != nil { + if mdbx.IsNotFound(createErr) { + cnfCopy.DBI = NonExistingDBI + db.buckets[name] = cnfCopy + continue // if deprecated bucket couldn't be open - then it's deleted and it's fine + } else { + return fmt.Errorf("bucket: %s, %w", name, createErr) + } + } + cnfCopy.DBI = kv.DBI(dbi) + db.buckets[name] = cnfCopy + } + return nil + }); err != nil { + return nil, err + } + + if !opts.inMem { + if staleReaders, err := db.env.ReaderCheck(); err != nil { + db.log.Error("failed ReaderCheck", "err", err) + } else if staleReaders > 0 { + db.log.Info("cleared reader slots from dead processes", "amount", staleReaders) + } + + } + db.path = opts.path + addToPathDbMap(opts.path, db) + return db, nil +} + +func (opts MdbxOpts) MustOpen() kv.RwDB { + db, err := opts.Open(context.Background()) + if err != nil { + panic(fmt.Errorf("fail to open mdbx: %w", err)) + } + return db +} + +type MdbxKV struct { + log log.Logger + env *mdbx.Env + wg *sync.WaitGroup + buckets kv.TableCfg + roTxsLimiter *semaphore.Weighted // does limit amount of concurrent Ro transactions - in most casess runtime.NumCPU() is good value for this channel capacity - this channel can be shared with other components (like Decompressor) + opts MdbxOpts + txSize uint64 + closed atomic.Bool + path string + + leakDetector *dbg.LeakDetector +} + +func (db *MdbxKV) PageSize() uint64 { return db.opts.pageSize } +func (db *MdbxKV) ReadOnly() bool { return db.opts.HasFlag(mdbx.Readonly) } +func (db *MdbxKV) Accede() bool { return db.opts.HasFlag(mdbx.Accede) } + +func (db *MdbxKV) CHandle() unsafe.Pointer { + return db.env.CHandle() +} + +// openDBIs - first trying to open existing DBI's in RO transaction +// otherwise re-try by RW transaction +// it allow open DB from another process - even if main process holding long RW transaction +func (db *MdbxKV) openDBIs(buckets []string) error { + if db.ReadOnly() || db.Accede() { + return db.View(context.Background(), func(tx kv.Tx) error { + for _, name := range buckets { + if db.buckets[name].IsDeprecated { + continue + } + if err := tx.(kv.BucketMigrator).CreateBucket(name); err != nil { + return err + } + } + return tx.Commit() // when open db as read-only, commit of this RO transaction is required + }) + } + + return db.Update(context.Background(), func(tx kv.RwTx) error { + for _, name := range buckets { + if db.buckets[name].IsDeprecated { + continue + } + if err := tx.(kv.BucketMigrator).CreateBucket(name); err != nil { + return err + } + } + return nil + }) +} + +// Close closes db +// All transactions must be closed before closing the database. +func (db *MdbxKV) Close() { + if ok := db.closed.CompareAndSwap(false, true); !ok { + return + } + db.wg.Wait() + db.env.Close() + db.env = nil + + if db.opts.inMem { + if err := os.RemoveAll(db.opts.path); err != nil { + db.log.Warn("failed to remove in-mem db file", "err", err) + } + } + removeFromPathDbMap(db.path) +} + +func (db *MdbxKV) BeginRo(ctx context.Context) (txn kv.Tx, err error) { + if db.closed.Load() { + return nil, fmt.Errorf("db closed") + } + + // don't try to acquire if the context is already done + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + // otherwise carry on + } + + // will return nil err if context is cancelled (may appear to acquire the semaphore) + if semErr := db.roTxsLimiter.Acquire(ctx, 1); semErr != nil { + return nil, semErr + } + + defer func() { + if txn == nil { + // on error, or if there is whatever reason that we don't return a tx, + // we need to free up the limiter slot, otherwise it could lead to deadlocks + db.roTxsLimiter.Release(1) + } + }() + + tx, err := db.env.BeginTxn(nil, mdbx.Readonly) + if err != nil { + return nil, fmt.Errorf("%w, label: %s, trace: %s", err, db.opts.label.String(), stack2.Trace().String()) + } + db.wg.Add(1) + return &MdbxTx{ + ctx: ctx, + db: db, + tx: tx, + readOnly: true, + id: db.leakDetector.Add(), + }, nil +} + +func (db *MdbxKV) BeginRw(ctx context.Context) (kv.RwTx, error) { + return db.beginRw(ctx, 0) +} +func (db *MdbxKV) BeginRwNosync(ctx context.Context) (kv.RwTx, error) { + return db.beginRw(ctx, mdbx.TxNoSync) +} + +func (db *MdbxKV) beginRw(ctx context.Context, flags uint) (txn kv.RwTx, err error) { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + + if db.closed.Load() { + return nil, fmt.Errorf("db closed") + } + runtime.LockOSThread() + tx, err := db.env.BeginTxn(nil, flags) + if err != nil { + runtime.UnlockOSThread() // unlock only in case of error. normal flow is "defer .Rollback()" + return nil, fmt.Errorf("%w, lable: %s, trace: %s", err, db.opts.label.String(), stack2.Trace().String()) + } + db.wg.Add(1) + return &MdbxTx{ + db: db, + tx: tx, + ctx: ctx, + id: db.leakDetector.Add(), + }, nil +} + +type MdbxTx struct { + tx *mdbx.Txn + db *MdbxKV + cursors map[uint64]*mdbx.Cursor + streams []kv.Closer + statelessCursors map[string]kv.RwCursor + readOnly bool + cursorID uint64 + ctx context.Context + id uint64 // set only if TRACE_TX=true +} + +type MdbxCursor struct { + tx *MdbxTx + c *mdbx.Cursor + bucketName string + bucketCfg kv.TableCfgItem + dbi mdbx.DBI + id uint64 +} + +func (db *MdbxKV) Env() *mdbx.Env { + return db.env +} + +func (db *MdbxKV) AllDBI() map[string]kv.DBI { + res := map[string]kv.DBI{} + for name, cfg := range db.buckets { + res[name] = cfg.DBI + } + return res +} + +func (db *MdbxKV) AllTables() kv.TableCfg { + return db.buckets +} + +func (tx *MdbxTx) IsRo() bool { return tx.readOnly } +func (tx *MdbxTx) ViewID() uint64 { return tx.tx.ID() } + +func (tx *MdbxTx) CollectMetrics() { + if tx.db.opts.label != kv.ChainDB { + return + } + + info, err := tx.db.env.Info(tx.tx) + if err != nil { + return + } + if info.SinceReaderCheck.Hours() > 1 { + if staleReaders, err := tx.db.env.ReaderCheck(); err != nil { + tx.db.log.Error("failed ReaderCheck", "err", err) + } else if staleReaders > 0 { + tx.db.log.Info("cleared reader slots from dead processes", "amount", staleReaders) + } + } + + kv.DbSize.SetUint64(info.Geo.Current) + kv.DbPgopsNewly.SetUint64(info.PageOps.Newly) + kv.DbPgopsCow.SetUint64(info.PageOps.Cow) + kv.DbPgopsClone.SetUint64(info.PageOps.Clone) + kv.DbPgopsSplit.SetUint64(info.PageOps.Split) + kv.DbPgopsMerge.SetUint64(info.PageOps.Merge) + kv.DbPgopsSpill.SetUint64(info.PageOps.Spill) + kv.DbPgopsUnspill.SetUint64(info.PageOps.Unspill) + kv.DbPgopsWops.SetUint64(info.PageOps.Wops) + + txInfo, err := tx.tx.Info(true) + if err != nil { + return + } + + kv.TxDirty.SetUint64(txInfo.SpaceDirty) + kv.TxLimit.SetUint64(tx.db.txSize) + kv.TxSpill.SetUint64(txInfo.Spill) + kv.TxUnspill.SetUint64(txInfo.Unspill) + + gc, err := tx.BucketStat("gc") + if err != nil { + return + } + kv.GcLeafMetric.SetUint64(gc.LeafPages) + kv.GcOverflowMetric.SetUint64(gc.OverflowPages) + kv.GcPagesMetric.SetUint64((gc.LeafPages + gc.OverflowPages) * tx.db.opts.pageSize / 8) +} + +// ListBuckets - all buckets stored as keys of un-named bucket +func (tx *MdbxTx) ListBuckets() ([]string, error) { return tx.tx.ListDBI() } + +func (db *MdbxKV) View(ctx context.Context, f func(tx kv.Tx) error) (err error) { + // can't use db.env.View method - because it calls commit for read transactions - it conflicts with write transactions. + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + return f(tx) +} + +func (db *MdbxKV) UpdateNosync(ctx context.Context, f func(tx kv.RwTx) error) (err error) { + tx, err := db.BeginRwNosync(ctx) + if err != nil { + return err + } + defer tx.Rollback() + err = f(tx) + if err != nil { + return err + } + err = tx.Commit() + if err != nil { + return err + } + return nil +} + +func (db *MdbxKV) Update(ctx context.Context, f func(tx kv.RwTx) error) (err error) { + tx, err := db.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + err = f(tx) + if err != nil { + return err + } + err = tx.Commit() + if err != nil { + return err + } + return nil +} + +func (tx *MdbxTx) CreateBucket(name string) error { + cnfCopy := tx.db.buckets[name] + dbi, err := tx.tx.OpenDBI(name, mdbx.DBAccede, nil, nil) + if err != nil && !mdbx.IsNotFound(err) { + return fmt.Errorf("create table: %s, %w", name, err) + } + if err == nil { + cnfCopy.DBI = kv.DBI(dbi) + var flags uint + flags, err = tx.tx.Flags(dbi) + if err != nil { + return err + } + cnfCopy.Flags = kv.TableFlags(flags) + + tx.db.buckets[name] = cnfCopy + return nil + } + + // if bucket doesn't exists - create it + + var flags = tx.db.buckets[name].Flags + var nativeFlags uint + if !(tx.db.ReadOnly() || tx.db.Accede()) { + nativeFlags |= mdbx.Create + } + + if flags&kv.DupSort != 0 { + nativeFlags |= mdbx.DupSort + flags ^= kv.DupSort + } + if flags != 0 { + return fmt.Errorf("some not supported flag provided for bucket") + } + + dbi, err = tx.tx.OpenDBI(name, nativeFlags, nil, nil) + + if err != nil { + return fmt.Errorf("create table: %s, %w", name, err) + } + cnfCopy.DBI = kv.DBI(dbi) + + tx.db.buckets[name] = cnfCopy + return nil +} + +func (tx *MdbxTx) dropEvenIfBucketIsNotDeprecated(name string) error { + dbi := tx.db.buckets[name].DBI + // if bucket was not open on db start, then it's may be deprecated + // try to open it now without `Create` flag, and if fail then nothing to drop + if dbi == NonExistingDBI { + nativeDBI, err := tx.tx.OpenDBI(name, 0, nil, nil) + if err != nil { + if mdbx.IsNotFound(err) { + return nil // DBI doesn't exists means no drop needed + } + return fmt.Errorf("bucket: %s, %w", name, err) + } + dbi = kv.DBI(nativeDBI) + } + + if err := tx.tx.Drop(mdbx.DBI(dbi), true); err != nil { + return err + } + cnfCopy := tx.db.buckets[name] + cnfCopy.DBI = NonExistingDBI + tx.db.buckets[name] = cnfCopy + return nil +} + +func (tx *MdbxTx) ClearBucket(bucket string) error { + dbi := tx.db.buckets[bucket].DBI + if dbi == NonExistingDBI { + return nil + } + return tx.tx.Drop(mdbx.DBI(dbi), false) +} + +func (tx *MdbxTx) DropBucket(bucket string) error { + if cfg, ok := tx.db.buckets[bucket]; !(ok && cfg.IsDeprecated) { + return fmt.Errorf("%w, bucket: %s", kv.ErrAttemptToDeleteNonDeprecatedBucket, bucket) + } + + return tx.dropEvenIfBucketIsNotDeprecated(bucket) +} + +func (tx *MdbxTx) ExistsBucket(bucket string) (bool, error) { + if cfg, ok := tx.db.buckets[bucket]; ok { + return cfg.DBI != NonExistingDBI, nil + } + return false, nil +} + +func (tx *MdbxTx) Commit() error { + if tx.tx == nil { + return nil + } + defer func() { + tx.tx = nil + tx.db.wg.Done() + if tx.readOnly { + tx.db.roTxsLimiter.Release(1) + } else { + runtime.UnlockOSThread() + } + tx.db.leakDetector.Del(tx.id) + }() + tx.closeCursors() + + //slowTx := 10 * time.Second + //if debug.SlowCommit() > 0 { + // slowTx = debug.SlowCommit() + //} + // + //if debug.BigRoTxKb() > 0 || debug.BigRwTxKb() > 0 { + // tx.PrintDebugInfo() + //} + tx.CollectMetrics() + + latency, err := tx.tx.Commit() + if err != nil { + return fmt.Errorf("lable: %s, %w", tx.db.opts.label, err) + } + + if tx.db.opts.label == kv.ChainDB { + kv.DbCommitPreparation.Observe(latency.Preparation.Seconds()) + //kv.DbCommitAudit.Update(latency.Audit.Seconds()) + kv.DbCommitWrite.Observe(latency.Write.Seconds()) + kv.DbCommitSync.Observe(latency.Sync.Seconds()) + kv.DbCommitEnding.Observe(latency.Ending.Seconds()) + kv.DbCommitTotal.Observe(latency.Whole.Seconds()) + + //kv.DbGcWorkPnlMergeTime.Update(latency.GCDetails.WorkPnlMergeTime.Seconds()) + //kv.DbGcWorkPnlMergeVolume.Set(uint64(latency.GCDetails.WorkPnlMergeVolume)) + //kv.DbGcWorkPnlMergeCalls.Set(uint64(latency.GCDetails.WorkPnlMergeCalls)) + // + //kv.DbGcSelfPnlMergeTime.Update(latency.GCDetails.SelfPnlMergeTime.Seconds()) + //kv.DbGcSelfPnlMergeVolume.Set(uint64(latency.GCDetails.SelfPnlMergeVolume)) + //kv.DbGcSelfPnlMergeCalls.Set(uint64(latency.GCDetails.SelfPnlMergeCalls)) + } + + return nil +} + +func (tx *MdbxTx) Rollback() { + if tx.tx == nil { + return + } + defer func() { + tx.tx = nil + tx.db.wg.Done() + if tx.readOnly { + tx.db.roTxsLimiter.Release(1) + } else { + runtime.UnlockOSThread() + } + tx.db.leakDetector.Del(tx.id) + }() + tx.closeCursors() + //tx.printDebugInfo() + tx.tx.Abort() +} + +func (tx *MdbxTx) SpaceDirty() (uint64, uint64, error) { + txInfo, err := tx.tx.Info(true) + if err != nil { + return 0, 0, err + } + + return txInfo.SpaceDirty, tx.db.txSize, nil +} + +func (tx *MdbxTx) PrintDebugInfo() { + /* + txInfo, err := tx.tx.Info(true) + if err != nil { + panic(err) + } + + txSize := uint(txInfo.SpaceDirty / 1024) + doPrint := debug.BigRoTxKb() == 0 && debug.BigRwTxKb() == 0 || + tx.readOnly && debug.BigRoTxKb() > 0 && txSize > debug.BigRoTxKb() || + (!tx.readOnly && debug.BigRwTxKb() > 0 && txSize > debug.BigRwTxKb()) + if doPrint { + tx.db.log.Info("Tx info", + "id", txInfo.Id, + "read_lag", txInfo.ReadLag, + "ro", tx.readOnly, + //"space_retired_mb", txInfo.SpaceRetired/1024/1024, + "space_dirty_mb", txInfo.SpaceDirty/1024/1024, + //"callers", debug.Callers(7), + ) + } + */ +} + +func (tx *MdbxTx) closeCursors() { + for _, c := range tx.cursors { + if c != nil { + c.Close() + } + } + tx.cursors = nil + for _, c := range tx.streams { + if c != nil { + c.Close() + } + } + tx.statelessCursors = nil +} + +func (tx *MdbxTx) statelessCursor(bucket string) (kv.RwCursor, error) { + if tx.statelessCursors == nil { + tx.statelessCursors = make(map[string]kv.RwCursor) + } + c, ok := tx.statelessCursors[bucket] + if !ok { + var err error + c, err = tx.RwCursor(bucket) + if err != nil { + return nil, err + } + tx.statelessCursors[bucket] = c + } + return c, nil +} + +func (tx *MdbxTx) Put(table string, k, v []byte) error { + c, err := tx.statelessCursor(table) + if err != nil { + return err + } + return c.Put(k, v) +} + +func (tx *MdbxTx) Delete(table string, k []byte) error { + c, err := tx.statelessCursor(table) + if err != nil { + return err + } + return c.Delete(k) +} + +func (tx *MdbxTx) GetOne(bucket string, k []byte) ([]byte, error) { + c, err := tx.statelessCursor(bucket) + if err != nil { + return nil, err + } + _, v, err := c.SeekExact(k) + return v, err +} + +func (tx *MdbxTx) Has(bucket string, key []byte) (bool, error) { + c, err := tx.statelessCursor(bucket) + if err != nil { + return false, err + } + k, _, err := c.Seek(key) + if err != nil { + return false, err + } + return bytes.Equal(key, k), nil +} + +func (tx *MdbxTx) Append(bucket string, k, v []byte) error { + c, err := tx.statelessCursor(bucket) + if err != nil { + return err + } + return c.Append(k, v) +} +func (tx *MdbxTx) AppendDup(bucket string, k, v []byte) error { + c, err := tx.statelessCursor(bucket) + if err != nil { + return err + } + return c.(*MdbxDupSortCursor).AppendDup(k, v) +} + +func (tx *MdbxTx) IncrementSequence(bucket string, amount uint64) (uint64, error) { + c, err := tx.statelessCursor(kv.Sequence) + if err != nil { + return 0, err + } + _, v, err := c.SeekExact([]byte(bucket)) + if err != nil { + return 0, err + } + + var currentV uint64 = 0 + if len(v) > 0 { + currentV = binary.BigEndian.Uint64(v) + } + + newVBytes := make([]byte, 8) + binary.BigEndian.PutUint64(newVBytes, currentV+amount) + err = c.Put([]byte(bucket), newVBytes) + if err != nil { + return 0, err + } + return currentV, nil +} + +func (tx *MdbxTx) ReadSequence(bucket string) (uint64, error) { + c, err := tx.statelessCursor(kv.Sequence) + if err != nil { + return 0, err + } + _, v, err := c.SeekExact([]byte(bucket)) + if err != nil && !mdbx.IsNotFound(err) { + return 0, err + } + + var currentV uint64 + if len(v) > 0 { + currentV = binary.BigEndian.Uint64(v) + } + + return currentV, nil +} + +func (tx *MdbxTx) BucketSize(name string) (uint64, error) { + st, err := tx.BucketStat(name) + if err != nil { + return 0, err + } + return (st.LeafPages + st.BranchPages + st.OverflowPages) * tx.db.opts.pageSize, nil +} + +func (tx *MdbxTx) BucketStat(name string) (*mdbx.Stat, error) { + if name == "freelist" || name == "gc" || name == "free_list" { + return tx.tx.StatDBI(mdbx.DBI(0)) + } + if name == "root" { + return tx.tx.StatDBI(mdbx.DBI(1)) + } + st, err := tx.tx.StatDBI(mdbx.DBI(tx.db.buckets[name].DBI)) + if err != nil { + return nil, fmt.Errorf("bucket: %s, %w", name, err) + } + return st, nil +} + +func (tx *MdbxTx) DBSize() (uint64, error) { + info, err := tx.db.env.Info(tx.tx) + if err != nil { + return 0, err + } + return info.Geo.Current, err +} + +func (tx *MdbxTx) RwCursor(bucket string) (kv.RwCursor, error) { + b := tx.db.buckets[bucket] + if b.AutoDupSortKeysConversion { + return tx.stdCursor(bucket) + } + + if b.Flags&kv.DupSort != 0 { + return tx.RwCursorDupSort(bucket) + } + + return tx.stdCursor(bucket) +} + +func (tx *MdbxTx) Cursor(bucket string) (kv.Cursor, error) { + return tx.RwCursor(bucket) +} + +func (tx *MdbxTx) stdCursor(bucket string) (kv.RwCursor, error) { + b := tx.db.buckets[bucket] + c := &MdbxCursor{bucketName: bucket, tx: tx, bucketCfg: b, dbi: mdbx.DBI(tx.db.buckets[bucket].DBI), id: tx.cursorID} + tx.cursorID++ + + var err error + c.c, err = tx.tx.OpenCursor(c.dbi) + if err != nil { + return nil, fmt.Errorf("table: %s, %w, stack: %s", c.bucketName, err, dbg.Stack()) + } + + // add to auto-cleanup on end of transactions + if tx.cursors == nil { + tx.cursors = map[uint64]*mdbx.Cursor{} + } + tx.cursors[c.id] = c.c + return c, nil +} + +func (tx *MdbxTx) RwCursorDupSort(bucket string) (kv.RwCursorDupSort, error) { + basicCursor, err := tx.stdCursor(bucket) + if err != nil { + return nil, err + } + return &MdbxDupSortCursor{MdbxCursor: basicCursor.(*MdbxCursor)}, nil +} + +func (tx *MdbxTx) CursorDupSort(bucket string) (kv.CursorDupSort, error) { + return tx.RwCursorDupSort(bucket) +} + +// methods here help to see better pprof picture +func (c *MdbxCursor) set(k []byte) ([]byte, []byte, error) { return c.c.Get(k, nil, mdbx.Set) } +func (c *MdbxCursor) getCurrent() ([]byte, []byte, error) { return c.c.Get(nil, nil, mdbx.GetCurrent) } +func (c *MdbxCursor) first() ([]byte, []byte, error) { return c.c.Get(nil, nil, mdbx.First) } +func (c *MdbxCursor) next() ([]byte, []byte, error) { return c.c.Get(nil, nil, mdbx.Next) } +func (c *MdbxCursor) nextDup() ([]byte, []byte, error) { return c.c.Get(nil, nil, mdbx.NextDup) } +func (c *MdbxCursor) nextNoDup() ([]byte, []byte, error) { return c.c.Get(nil, nil, mdbx.NextNoDup) } +func (c *MdbxCursor) prev() ([]byte, []byte, error) { return c.c.Get(nil, nil, mdbx.Prev) } +func (c *MdbxCursor) prevDup() ([]byte, []byte, error) { return c.c.Get(nil, nil, mdbx.PrevDup) } +func (c *MdbxCursor) prevNoDup() ([]byte, []byte, error) { return c.c.Get(nil, nil, mdbx.PrevNoDup) } +func (c *MdbxCursor) last() ([]byte, []byte, error) { return c.c.Get(nil, nil, mdbx.Last) } +func (c *MdbxCursor) delCurrent() error { return c.c.Del(mdbx.Current) } +func (c *MdbxCursor) delAllDupData() error { return c.c.Del(mdbx.AllDups) } +func (c *MdbxCursor) put(k, v []byte) error { return c.c.Put(k, v, 0) } +func (c *MdbxCursor) putCurrent(k, v []byte) error { return c.c.Put(k, v, mdbx.Current) } +func (c *MdbxCursor) putNoOverwrite(k, v []byte) error { return c.c.Put(k, v, mdbx.NoOverwrite) } +func (c *MdbxCursor) getBoth(k, v []byte) ([]byte, error) { + _, v, err := c.c.Get(k, v, mdbx.GetBoth) + return v, err +} +func (c *MdbxCursor) setRange(k []byte) ([]byte, []byte, error) { + return c.c.Get(k, nil, mdbx.SetRange) +} +func (c *MdbxCursor) getBothRange(k, v []byte) ([]byte, error) { + _, v, err := c.c.Get(k, v, mdbx.GetBothRange) + return v, err +} +func (c *MdbxCursor) firstDup() ([]byte, error) { + _, v, err := c.c.Get(nil, nil, mdbx.FirstDup) + return v, err +} +func (c *MdbxCursor) lastDup() ([]byte, error) { + _, v, err := c.c.Get(nil, nil, mdbx.LastDup) + return v, err +} + +func (c *MdbxCursor) Count() (uint64, error) { + st, err := c.tx.tx.StatDBI(c.dbi) + if err != nil { + return 0, err + } + return st.Entries, nil +} + +func (c *MdbxCursor) First() ([]byte, []byte, error) { + return c.Seek(nil) +} + +func (c *MdbxCursor) Last() ([]byte, []byte, error) { + k, v, err := c.last() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + err = fmt.Errorf("failed MdbxKV cursor.Last(): %w, bucket: %s", err, c.bucketName) + return []byte{}, nil, err + } + + b := c.bucketCfg + if b.AutoDupSortKeysConversion && len(k) == b.DupToLen { + keyPart := b.DupFromLen - b.DupToLen + k = append(k, v[:keyPart]...) + v = v[keyPart:] + } + + return k, v, nil +} + +func (c *MdbxCursor) Seek(seek []byte) (k, v []byte, err error) { + if c.bucketCfg.AutoDupSortKeysConversion { + return c.seekDupSort(seek) + } + + if len(seek) == 0 { + k, v, err = c.first() + } else { + k, v, err = c.setRange(seek) + } + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + err = fmt.Errorf("failed MdbxKV cursor.Seek(): %w, bucket: %s, key: %x", err, c.bucketName, seek) + return []byte{}, nil, err + } + + return k, v, nil +} + +func (c *MdbxCursor) seekDupSort(seek []byte) (k, v []byte, err error) { + b := c.bucketCfg + from, to := b.DupFromLen, b.DupToLen + if len(seek) == 0 { + k, v, err = c.first() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, err + } + + if len(k) == to { + k2 := make([]byte, 0, len(k)+from-to) + k2 = append(append(k2, k...), v[:from-to]...) + v = v[from-to:] + k = k2 + } + return k, v, nil + } + + var seek1, seek2 []byte + if len(seek) > to { + seek1, seek2 = seek[:to], seek[to:] + } else { + seek1 = seek + } + k, v, err = c.setRange(seek1) + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + + return []byte{}, nil, err + } + + if seek2 != nil && bytes.Equal(seek1, k) { + v, err = c.getBothRange(seek1, seek2) + if err != nil && mdbx.IsNotFound(err) { + k, v, err = c.next() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, err + } + } else if err != nil { + return []byte{}, nil, err + } + } + if len(k) == to { + k2 := make([]byte, 0, len(k)+from-to) + k2 = append(append(k2, k...), v[:from-to]...) + v = v[from-to:] + k = k2 + } + + return k, v, nil +} + +func (c *MdbxCursor) Next() (k, v []byte, err error) { + k, v, err = c.next() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, fmt.Errorf("failed MdbxKV cursor.Next(): %w", err) + } + + b := c.bucketCfg + if b.AutoDupSortKeysConversion && len(k) == b.DupToLen { + keyPart := b.DupFromLen - b.DupToLen + k = append(k, v[:keyPart]...) + v = v[keyPart:] + } + + return k, v, nil +} + +func (c *MdbxCursor) Prev() (k, v []byte, err error) { + k, v, err = c.prev() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, fmt.Errorf("failed MdbxKV cursor.Prev(): %w", err) + } + + b := c.bucketCfg + if b.AutoDupSortKeysConversion && len(k) == b.DupToLen { + keyPart := b.DupFromLen - b.DupToLen + k = append(k, v[:keyPart]...) + v = v[keyPart:] + } + + return k, v, nil +} + +// Current - return key/data at current cursor position +func (c *MdbxCursor) Current() ([]byte, []byte, error) { + k, v, err := c.getCurrent() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, err + } + + b := c.bucketCfg + if b.AutoDupSortKeysConversion && len(k) == b.DupToLen { + keyPart := b.DupFromLen - b.DupToLen + k = append(k, v[:keyPart]...) + v = v[keyPart:] + } + + return k, v, nil +} + +func (c *MdbxCursor) Delete(k []byte) error { + if c.bucketCfg.AutoDupSortKeysConversion { + return c.deleteDupSort(k) + } + + _, _, err := c.set(k) + if err != nil { + if mdbx.IsNotFound(err) { + return nil + } + return err + } + + if c.bucketCfg.Flags&mdbx.DupSort != 0 { + return c.delAllDupData() + } + return c.delCurrent() +} + +// DeleteCurrent This function deletes the key/data pair to which the cursor refers. +// This does not invalidate the cursor, so operations such as MDB_NEXT +// can still be used on it. +// Both MDB_NEXT and MDB_GET_CURRENT will return the same record after +// this operation. +func (c *MdbxCursor) DeleteCurrent() error { + return c.delCurrent() +} + +func (c *MdbxCursor) deleteDupSort(key []byte) error { + b := c.bucketCfg + from, to := b.DupFromLen, b.DupToLen + if len(key) != from && len(key) >= to { + return fmt.Errorf("delete from dupsort bucket: %s, can have keys of len==%d and len<%d. key: %x,%d", c.bucketName, from, to, key, len(key)) + } + + if len(key) == from { + v, err := c.getBothRange(key[:to], key[to:]) + if err != nil { // if key not found, or found another one - then nothing to delete + if mdbx.IsNotFound(err) { + return nil + } + return err + } + if !bytes.Equal(v[:from-to], key[to:]) { + return nil + } + return c.delCurrent() + } + + _, _, err := c.set(key) + if err != nil { + if mdbx.IsNotFound(err) { + return nil + } + return err + } + + return c.delCurrent() +} + +func (c *MdbxCursor) PutNoOverwrite(key []byte, value []byte) error { + if c.bucketCfg.AutoDupSortKeysConversion { + panic("not implemented") + } + + return c.putNoOverwrite(key, value) +} + +func (c *MdbxCursor) Put(key []byte, value []byte) error { + b := c.bucketCfg + if b.AutoDupSortKeysConversion { + if err := c.putDupSort(key, value); err != nil { + return fmt.Errorf("label: %s, table: %s, err: %w", c.tx.db.opts.label, c.bucketName, err) + } + return nil + } + if err := c.put(key, value); err != nil { + return fmt.Errorf("label: %s, table: %s, err: %w", c.tx.db.opts.label, c.bucketName, err) + } + return nil +} + +func (c *MdbxCursor) putDupSort(key []byte, value []byte) error { + b := c.bucketCfg + from, to := b.DupFromLen, b.DupToLen + if len(key) != from && len(key) >= to { + return fmt.Errorf("label: %s, table: %s, can have keys of len==%d and len<%d. key: %x,%d", c.tx.db.opts.label, c.bucketName, from, to, key, len(key)) + } + + if len(key) != from { + err := c.putNoOverwrite(key, value) + if err != nil { + if mdbx.IsKeyExists(err) { + return c.putCurrent(key, value) + } + return fmt.Errorf("label: %s, putNoOverwrite, bucket: %s, key: %x, val: %x, err: %w", c.tx.db.opts.label, c.bucketName, key, value, err) + } + return nil + } + + value = append(key[to:], value...) + key = key[:to] + v, err := c.getBothRange(key, value[:from-to]) + if err != nil { // if key not found, or found another one - then just insert + if mdbx.IsNotFound(err) { + return c.put(key, value) + } + return err + } + + if bytes.Equal(v[:from-to], value[:from-to]) { + if len(v) == len(value) { // in DupSort case mdbx.Current works only with values of same length + return c.putCurrent(key, value) + } + err = c.delCurrent() + if err != nil { + return err + } + } + + return c.put(key, value) +} + +func (c *MdbxCursor) SeekExact(key []byte) ([]byte, []byte, error) { + b := c.bucketCfg + if b.AutoDupSortKeysConversion && len(key) == b.DupFromLen { + from, to := b.DupFromLen, b.DupToLen + v, err := c.getBothRange(key[:to], key[to:]) + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, err + } + if !bytes.Equal(key[to:], v[:from-to]) { + return nil, nil, nil + } + return key[:to], v[from-to:], nil + } + + k, v, err := c.set(key) + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, err + } + return k, v, nil +} + +// Append - speedy feature of mdbx which is not part of KV interface. +// Cast your cursor to *MdbxCursor to use this method. +// Return error - if provided data will not sorted (or bucket have old records which mess with new in sorting manner). +func (c *MdbxCursor) Append(k []byte, v []byte) error { + if c.bucketCfg.AutoDupSortKeysConversion { + b := c.bucketCfg + from, to := b.DupFromLen, b.DupToLen + if len(k) != from && len(k) >= to { + return fmt.Errorf("label: %s, append dupsort bucket: %s, can have keys of len==%d and len<%d. key: %x,%d", c.tx.db.opts.label, c.bucketName, from, to, k, len(k)) + } + + if len(k) == from { + v = append(k[to:], v...) + k = k[:to] + } + } + + if c.bucketCfg.Flags&mdbx.DupSort != 0 { + if err := c.c.Put(k, v, mdbx.AppendDup); err != nil { + return fmt.Errorf("label: %s, bucket: %s, %w", c.tx.db.opts.label, c.bucketName, err) + } + return nil + } + + if err := c.c.Put(k, v, mdbx.Append); err != nil { + return fmt.Errorf("label: %s, bucket: %s, %w", c.tx.db.opts.label, c.bucketName, err) + } + return nil +} + +func (c *MdbxCursor) Close() { + if c.c != nil { + c.c.Close() + delete(c.tx.cursors, c.id) + c.c = nil + } +} + +type MdbxDupSortCursor struct { + *MdbxCursor +} + +func (c *MdbxDupSortCursor) Internal() *mdbx.Cursor { + return c.c +} + +// DeleteExact - does delete +func (c *MdbxDupSortCursor) DeleteExact(k1, k2 []byte) error { + _, err := c.getBoth(k1, k2) + if err != nil { // if key not found, or found another one - then nothing to delete + if mdbx.IsNotFound(err) { + return nil + } + return err + } + return c.delCurrent() +} + +func (c *MdbxDupSortCursor) SeekBothExact(key, value []byte) ([]byte, []byte, error) { + v, err := c.getBoth(key, value) + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, fmt.Errorf("in SeekBothExact: %w", err) + } + return key, v, nil +} + +func (c *MdbxDupSortCursor) SeekBothRange(key, value []byte) ([]byte, error) { + v, err := c.getBothRange(key, value) + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil + } + return nil, fmt.Errorf("in SeekBothRange, table=%s: %w", c.bucketName, err) + } + return v, nil +} + +func (c *MdbxDupSortCursor) FirstDup() ([]byte, error) { + v, err := c.firstDup() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil + } + return nil, fmt.Errorf("in FirstDup: %w", err) + } + return v, nil +} + +// NextDup - iterate only over duplicates of current key +func (c *MdbxDupSortCursor) NextDup() ([]byte, []byte, error) { + k, v, err := c.nextDup() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, fmt.Errorf("in NextDup: %w", err) + } + return k, v, nil +} + +// NextNoDup - iterate with skipping all duplicates +func (c *MdbxDupSortCursor) NextNoDup() ([]byte, []byte, error) { + k, v, err := c.nextNoDup() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, fmt.Errorf("in NextNoDup: %w", err) + } + return k, v, nil +} + +func (c *MdbxDupSortCursor) PrevDup() ([]byte, []byte, error) { + k, v, err := c.prevDup() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, fmt.Errorf("in PrevDup: %w", err) + } + return k, v, nil +} + +func (c *MdbxDupSortCursor) PrevNoDup() ([]byte, []byte, error) { + k, v, err := c.prevNoDup() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil, nil + } + return []byte{}, nil, fmt.Errorf("in PrevNoDup: %w", err) + } + return k, v, nil +} + +func (c *MdbxDupSortCursor) LastDup() ([]byte, error) { + v, err := c.lastDup() + if err != nil { + if mdbx.IsNotFound(err) { + return nil, nil + } + return nil, fmt.Errorf("in LastDup: %w", err) + } + return v, nil +} + +func (c *MdbxDupSortCursor) Append(k []byte, v []byte) error { + if err := c.c.Put(k, v, mdbx.Append|mdbx.AppendDup); err != nil { + return fmt.Errorf("label: %s, in Append: bucket=%s, %w", c.tx.db.opts.label, c.bucketName, err) + } + return nil +} + +func (c *MdbxDupSortCursor) AppendDup(k []byte, v []byte) error { + if err := c.c.Put(k, v, mdbx.AppendDup); err != nil { + return fmt.Errorf("label: %s, in AppendDup: bucket=%s, %w", c.tx.db.opts.label, c.bucketName, err) + } + return nil +} + +func (c *MdbxDupSortCursor) PutNoDupData(k, v []byte) error { + if err := c.c.Put(k, v, mdbx.NoDupData); err != nil { + return fmt.Errorf("label: %s, in PutNoDupData: %w", c.tx.db.opts.label, err) + } + + return nil +} + +// DeleteCurrentDuplicates - delete all of the data items for the current key. +func (c *MdbxDupSortCursor) DeleteCurrentDuplicates() error { + if err := c.delAllDupData(); err != nil { + return fmt.Errorf("label: %s,in DeleteCurrentDuplicates: %w", c.tx.db.opts.label, err) + } + return nil +} + +// CountDuplicates returns the number of duplicates for the current key. See mdb_cursor_count +func (c *MdbxDupSortCursor) CountDuplicates() (uint64, error) { + res, err := c.c.Count() + if err != nil { + return 0, fmt.Errorf("in CountDuplicates: %w", err) + } + return res, nil +} + +func bucketSlice(b kv.TableCfg) []string { + buckets := make([]string, 0, len(b)) + for name := range b { + buckets = append(buckets, name) + } + sort.Slice(buckets, func(i, j int) bool { + return strings.Compare(buckets[i], buckets[j]) < 0 + }) + return buckets +} + +func (tx *MdbxTx) ForEach(bucket string, fromPrefix []byte, walker func(k, v []byte) error) error { + c, err := tx.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + + for k, v, err := c.Seek(fromPrefix); k != nil; k, v, err = c.Next() { + if err != nil { + return err + } + if err := walker(k, v); err != nil { + return err + } + } + return nil +} + +func (tx *MdbxTx) ForPrefix(bucket string, prefix []byte, walker func(k, v []byte) error) error { + c, err := tx.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + + for k, v, err := c.Seek(prefix); k != nil; k, v, err = c.Next() { + if err != nil { + return err + } + if !bytes.HasPrefix(k, prefix) { + break + } + if err := walker(k, v); err != nil { + return err + } + } + return nil +} + +func (tx *MdbxTx) Prefix(table string, prefix []byte) (iter.KV, error) { + nextPrefix, ok := kv.NextSubtree(prefix) + if !ok { + return tx.Range(table, prefix, nil) + } + return tx.Range(table, prefix, nextPrefix) +} + +func (tx *MdbxTx) Range(table string, fromPrefix, toPrefix []byte) (iter.KV, error) { + return tx.RangeAscend(table, fromPrefix, toPrefix, -1) +} +func (tx *MdbxTx) RangeAscend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) { + return tx.rangeOrderLimit(table, fromPrefix, toPrefix, order.Asc, limit) +} +func (tx *MdbxTx) RangeDescend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) { + return tx.rangeOrderLimit(table, fromPrefix, toPrefix, order.Desc, limit) +} + +type cursor2iter struct { + c kv.Cursor + fromPrefix, toPrefix, nextK, nextV []byte + err error + orderAscend order.By + limit int64 + ctx context.Context +} + +func (tx *MdbxTx) rangeOrderLimit(table string, fromPrefix, toPrefix []byte, orderAscend order.By, limit int) (*cursor2iter, error) { + s := &cursor2iter{ctx: tx.ctx, fromPrefix: fromPrefix, toPrefix: toPrefix, orderAscend: orderAscend, limit: int64(limit)} + tx.streams = append(tx.streams, s) + return s.init(table, tx) +} +func (s *cursor2iter) init(table string, tx kv.Tx) (*cursor2iter, error) { + if s.orderAscend && s.fromPrefix != nil && s.toPrefix != nil && bytes.Compare(s.fromPrefix, s.toPrefix) >= 0 { + return s, fmt.Errorf("tx.Dual: %x must be lexicographicaly before %x", s.fromPrefix, s.toPrefix) + } + if !s.orderAscend && s.fromPrefix != nil && s.toPrefix != nil && bytes.Compare(s.fromPrefix, s.toPrefix) <= 0 { + return s, fmt.Errorf("tx.Dual: %x must be lexicographicaly before %x", s.toPrefix, s.fromPrefix) + } + c, err := tx.Cursor(table) + if err != nil { + return s, err + } + s.c = c + + if s.fromPrefix == nil { // no initial position + if s.orderAscend { + s.nextK, s.nextV, s.err = s.c.First() + } else { + s.nextK, s.nextV, s.err = s.c.Last() + } + return s, s.err + } + + if s.orderAscend { + s.nextK, s.nextV, s.err = s.c.Seek(s.fromPrefix) + return s, s.err + } else { + // seek exactly to given key or previous one + s.nextK, s.nextV, s.err = s.c.SeekExact(s.fromPrefix) + if s.err != nil { + return s, s.err + } + if s.nextK != nil { // go to last value of this key + if casted, ok := s.c.(kv.CursorDupSort); ok { + s.nextV, s.err = casted.LastDup() + } + } else { // key not found, go to prev one + s.nextK, s.nextV, s.err = s.c.Prev() + } + return s, s.err + } +} + +func (s *cursor2iter) Close() { + if s.c != nil { + s.c.Close() + } +} +func (s *cursor2iter) HasNext() bool { + if s.err != nil { // always true, then .Next() call will return this error + return true + } + if s.limit == 0 { // limit reached + return false + } + if s.nextK == nil { // EndOfTable + return false + } + if s.toPrefix == nil { // s.nextK == nil check is above + return true + } + + //Asc: [from, to) AND from > to + //Desc: [from, to) AND from < to + cmp := bytes.Compare(s.nextK, s.toPrefix) + return (bool(s.orderAscend) && cmp < 0) || (!bool(s.orderAscend) && cmp > 0) +} +func (s *cursor2iter) Next() (k, v []byte, err error) { + select { + case <-s.ctx.Done(): + return nil, nil, s.ctx.Err() + default: + } + s.limit-- + k, v, err = s.nextK, s.nextV, s.err + if s.orderAscend { + s.nextK, s.nextV, s.err = s.c.Next() + } else { + s.nextK, s.nextV, s.err = s.c.Prev() + } + return k, v, err +} + +func (tx *MdbxTx) RangeDupSort(table string, key []byte, fromPrefix, toPrefix []byte, asc order.By, limit int) (iter.KV, error) { + s := &cursorDup2iter{ctx: tx.ctx, key: key, fromPrefix: fromPrefix, toPrefix: toPrefix, orderAscend: bool(asc), limit: int64(limit)} + tx.streams = append(tx.streams, s) + return s.init(table, tx) +} + +type cursorDup2iter struct { + c kv.CursorDupSort + key []byte + fromPrefix, toPrefix, nextV []byte + err error + orderAscend bool + limit int64 + ctx context.Context +} + +func (s *cursorDup2iter) init(table string, tx kv.Tx) (*cursorDup2iter, error) { + if s.orderAscend && s.fromPrefix != nil && s.toPrefix != nil && bytes.Compare(s.fromPrefix, s.toPrefix) >= 0 { + return s, fmt.Errorf("tx.Dual: %x must be lexicographicaly before %x", s.fromPrefix, s.toPrefix) + } + if !s.orderAscend && s.fromPrefix != nil && s.toPrefix != nil && bytes.Compare(s.fromPrefix, s.toPrefix) <= 0 { + return s, fmt.Errorf("tx.Dual: %x must be lexicographicaly before %x", s.toPrefix, s.fromPrefix) + } + c, err := tx.CursorDupSort(table) + if err != nil { + return s, err + } + s.c = c + k, _, err := c.SeekExact(s.key) + if err != nil { + return s, err + } + if k == nil { + return s, nil + } + + if s.fromPrefix == nil { // no initial position + if s.orderAscend { + s.nextV, s.err = s.c.FirstDup() + } else { + s.nextV, s.err = s.c.LastDup() + } + return s, s.err + } + + if s.orderAscend { + s.nextV, s.err = s.c.SeekBothRange(s.key, s.fromPrefix) + return s, s.err + } else { + // seek exactly to given key or previous one + _, s.nextV, s.err = s.c.SeekBothExact(s.key, s.fromPrefix) + if s.nextV == nil { // no such key + _, s.nextV, s.err = s.c.PrevDup() + } + return s, s.err + } +} + +func (s *cursorDup2iter) Close() { + if s.c != nil { + s.c.Close() + } +} +func (s *cursorDup2iter) HasNext() bool { + if s.err != nil { // always true, then .Next() call will return this error + return true + } + if s.limit == 0 { // limit reached + return false + } + if s.nextV == nil { // EndOfTable + return false + } + if s.toPrefix == nil { // s.nextK == nil check is above + return true + } + + //Asc: [from, to) AND from > to + //Desc: [from, to) AND from < to + cmp := bytes.Compare(s.nextV, s.toPrefix) + return (s.orderAscend && cmp < 0) || (!s.orderAscend && cmp > 0) +} +func (s *cursorDup2iter) Next() (k, v []byte, err error) { + select { + case <-s.ctx.Done(): + return nil, nil, s.ctx.Err() + default: + } + s.limit-- + v, err = s.nextV, s.err + if s.orderAscend { + _, s.nextV, s.err = s.c.NextDup() + } else { + _, s.nextV, s.err = s.c.PrevDup() + } + return s.key, v, err +} + +func (tx *MdbxTx) ForAmount(bucket string, fromPrefix []byte, amount uint32, walker func(k, v []byte) error) error { + if amount == 0 { + return nil + } + c, err := tx.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + + for k, v, err := c.Seek(fromPrefix); k != nil && amount > 0; k, v, err = c.Next() { + if err != nil { + return err + } + if err := walker(k, v); err != nil { + return err + } + amount-- + } + return nil +} + +func (tx *MdbxTx) CHandle() unsafe.Pointer { + return tx.tx.CHandle() +} diff --git a/erigon-lib/kv/mdbx/kv_mdbx_temporary.go b/erigon-lib/kv/mdbx/kv_mdbx_temporary.go new file mode 100644 index 00000000000..c5e585bffe1 --- /dev/null +++ b/erigon-lib/kv/mdbx/kv_mdbx_temporary.go @@ -0,0 +1,89 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package mdbx + +import ( + "context" + "os" + "unsafe" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/log/v3" +) + +type TemporaryMdbx struct { + db kv.RwDB + path string +} + +func NewTemporaryMdbx(ctx context.Context, tempdir string) (kv.RwDB, error) { + path, err := os.MkdirTemp(tempdir, "mdbx-temp") + if err != nil { + return &TemporaryMdbx{}, err + } + + db, err := NewMDBX(log.New()).Label(kv.InMem).Path(path).Open(ctx) + if err != nil { + return &TemporaryMdbx{}, err + } + + return &TemporaryMdbx{ + db: db, + path: path, + }, nil +} + +func (t *TemporaryMdbx) ReadOnly() bool { return t.db.ReadOnly() } +func (t *TemporaryMdbx) Update(ctx context.Context, f func(kv.RwTx) error) error { + return t.db.Update(ctx, f) +} + +func (t *TemporaryMdbx) UpdateNosync(ctx context.Context, f func(kv.RwTx) error) error { + return t.db.UpdateNosync(ctx, f) +} + +func (t *TemporaryMdbx) BeginRw(ctx context.Context) (kv.RwTx, error) { + return t.db.BeginRw(ctx) +} +func (t *TemporaryMdbx) BeginRwNosync(ctx context.Context) (kv.RwTx, error) { + return t.db.BeginRwNosync(ctx) +} + +func (t *TemporaryMdbx) View(ctx context.Context, f func(kv.Tx) error) error { + return t.db.View(ctx, f) +} + +func (t *TemporaryMdbx) BeginRo(ctx context.Context) (kv.Tx, error) { + return t.db.BeginRo(ctx) +} + +func (t *TemporaryMdbx) AllTables() kv.TableCfg { + return t.db.AllTables() +} + +func (t *TemporaryMdbx) PageSize() uint64 { + return t.db.PageSize() +} + +func (t *TemporaryMdbx) Close() { + t.db.Close() + os.RemoveAll(t.path) +} + +func (t *TemporaryMdbx) CHandle() unsafe.Pointer { + panic("CHandle not implemented") +} diff --git a/erigon-lib/kv/mdbx/kv_mdbx_test.go b/erigon-lib/kv/mdbx/kv_mdbx_test.go new file mode 100644 index 00000000000..e79a852dae2 --- /dev/null +++ b/erigon-lib/kv/mdbx/kv_mdbx_test.go @@ -0,0 +1,775 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package mdbx + +import ( + "context" + "testing" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func BaseCase(t *testing.T) (kv.RwDB, kv.RwTx, kv.RwCursorDupSort) { + t.Helper() + path := t.TempDir() + logger := log.New() + table := "Table" + db := NewMDBX(logger).InMem(path).WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { + return kv.TableCfg{ + table: kv.TableCfgItem{Flags: kv.DupSort}, + kv.Sequence: kv.TableCfgItem{}, + } + }).MapSize(128 * datasize.MB).MustOpen() + t.Cleanup(db.Close) + + tx, err := db.BeginRw(context.Background()) + require.NoError(t, err) + t.Cleanup(tx.Rollback) + + c, err := tx.RwCursorDupSort(table) + require.NoError(t, err) + t.Cleanup(c.Close) + + // Insert some dupsorted records + require.NoError(t, c.Put([]byte("key1"), []byte("value1.1"))) + require.NoError(t, c.Put([]byte("key3"), []byte("value3.1"))) + require.NoError(t, c.Put([]byte("key1"), []byte("value1.3"))) + require.NoError(t, c.Put([]byte("key3"), []byte("value3.3"))) + + return db, tx, c +} + +func iteration(t *testing.T, c kv.RwCursorDupSort, start []byte, val []byte) ([]string, []string) { + t.Helper() + var keys []string + var values []string + var err error + i := 0 + for k, v, err := start, val, err; k != nil; k, v, err = c.Next() { + require.Nil(t, err) + keys = append(keys, string(k)) + values = append(values, string(v)) + i += 1 + } + for ind := i; ind > 1; ind-- { + c.Prev() + } + + return keys, values +} + +func TestSeekBothRange(t *testing.T) { + _, _, c := BaseCase(t) + + v, err := c.SeekBothRange([]byte("key2"), []byte("value1.2")) + require.NoError(t, err) + // SeekBothRange does exact match of the key, but range match of the value, so we get nil here + require.Nil(t, v) + + v, err = c.SeekBothRange([]byte("key3"), []byte("value3.2")) + require.NoError(t, err) + require.Equal(t, "value3.3", string(v)) +} + +func TestRange(t *testing.T) { + t.Run("Asc", func(t *testing.T) { + _, tx, _ := BaseCase(t) + + //[from, to) + it, err := tx.Range("Table", []byte("key1"), []byte("key3")) + require.NoError(t, err) + require.True(t, it.HasNext()) + k, v, err := it.Next() + require.NoError(t, err) + require.Equal(t, "key1", string(k)) + require.Equal(t, "value1.1", string(v)) + + require.True(t, it.HasNext()) + k, v, err = it.Next() + require.NoError(t, err) + require.Equal(t, "key1", string(k)) + require.Equal(t, "value1.3", string(v)) + + require.False(t, it.HasNext()) + require.False(t, it.HasNext()) + + // [from, nil) means [from, INF) + it, err = tx.Range("Table", []byte("key1"), nil) + require.NoError(t, err) + cnt := 0 + for it.HasNext() { + _, _, err := it.Next() + require.NoError(t, err) + cnt++ + } + require.Equal(t, 4, cnt) + }) + t.Run("Desc", func(t *testing.T) { + _, tx, _ := BaseCase(t) + + //[from, to) + it, err := tx.RangeDescend("Table", []byte("key3"), []byte("key1"), kv.Unlim) + require.NoError(t, err) + require.True(t, it.HasNext()) + k, v, err := it.Next() + require.NoError(t, err) + require.Equal(t, "key3", string(k)) + require.Equal(t, "value3.3", string(v)) + + require.True(t, it.HasNext()) + k, v, err = it.Next() + require.NoError(t, err) + require.Equal(t, "key3", string(k)) + require.Equal(t, "value3.1", string(v)) + + require.False(t, it.HasNext()) + + it, err = tx.RangeDescend("Table", nil, nil, 2) + require.NoError(t, err) + + cnt := 0 + for it.HasNext() { + _, _, err := it.Next() + require.NoError(t, err) + cnt++ + } + require.Equal(t, 2, cnt) + }) +} + +func TestRangeDupSort(t *testing.T) { + t.Run("Asc", func(t *testing.T) { + _, tx, _ := BaseCase(t) + + //[from, to) + it, err := tx.RangeDupSort("Table", []byte("key1"), nil, nil, order.Asc, -1) + require.NoError(t, err) + require.True(t, it.HasNext()) + k, v, err := it.Next() + require.NoError(t, err) + require.Equal(t, "key1", string(k)) + require.Equal(t, "value1.1", string(v)) + + require.True(t, it.HasNext()) + k, v, err = it.Next() + require.NoError(t, err) + require.Equal(t, "key1", string(k)) + require.Equal(t, "value1.3", string(v)) + + require.False(t, it.HasNext()) + require.False(t, it.HasNext()) + + // [from, nil) means [from, INF) + it, err = tx.Range("Table", []byte("key1"), nil) + require.NoError(t, err) + cnt := 0 + for it.HasNext() { + _, _, err := it.Next() + require.NoError(t, err) + cnt++ + } + require.Equal(t, 4, cnt) + }) + t.Run("Desc", func(t *testing.T) { + _, tx, _ := BaseCase(t) + + //[from, to) + it, err := tx.RangeDupSort("Table", []byte("key3"), nil, nil, order.Desc, -1) + require.NoError(t, err) + require.True(t, it.HasNext()) + k, v, err := it.Next() + require.NoError(t, err) + require.Equal(t, "key3", string(k)) + require.Equal(t, "value3.3", string(v)) + + require.True(t, it.HasNext()) + k, v, err = it.Next() + require.NoError(t, err) + require.Equal(t, "key3", string(k)) + require.Equal(t, "value3.1", string(v)) + + require.False(t, it.HasNext()) + + it, err = tx.RangeDescend("Table", nil, nil, 2) + require.NoError(t, err) + + cnt := 0 + for it.HasNext() { + _, _, err := it.Next() + require.NoError(t, err) + cnt++ + } + require.Equal(t, 2, cnt) + }) +} + +func TestLastDup(t *testing.T) { + db, tx, _ := BaseCase(t) + + err := tx.Commit() + require.NoError(t, err) + roTx, err := db.BeginRo(context.Background()) + require.NoError(t, err) + defer roTx.Rollback() + + roC, err := roTx.CursorDupSort("Table") + require.NoError(t, err) + defer roC.Close() + + var keys, vals []string + var k, v []byte + for k, _, err = roC.First(); err == nil && k != nil; k, _, err = roC.NextNoDup() { + v, err = roC.LastDup() + require.NoError(t, err) + keys = append(keys, string(k)) + vals = append(vals, string(v)) + } + require.NoError(t, err) + require.Equal(t, []string{"key1", "key3"}, keys) + require.Equal(t, []string{"value1.3", "value3.3"}, vals) +} + +func TestPutGet(t *testing.T) { + _, tx, c := BaseCase(t) + + require.NoError(t, c.Put([]byte(""), []byte("value1.1"))) + + var v []byte + v, err := tx.GetOne("Table", []byte("key1")) + require.Nil(t, err) + require.Equal(t, v, []byte("value1.1")) + + v, err = tx.GetOne("RANDOM", []byte("key1")) + require.Error(t, err) // Error from non-existent bucket returns error + require.Nil(t, v) +} + +func TestIncrementRead(t *testing.T) { + _, tx, _ := BaseCase(t) + + table := "Table" + + _, err := tx.IncrementSequence(table, uint64(12)) + require.Nil(t, err) + chaV, err := tx.ReadSequence(table) + require.Nil(t, err) + require.Equal(t, chaV, uint64(12)) + _, err = tx.IncrementSequence(table, uint64(240)) + require.Nil(t, err) + chaV, err = tx.ReadSequence(table) + require.Nil(t, err) + require.Equal(t, chaV, uint64(252)) +} + +func TestHasDelete(t *testing.T) { + _, tx, _ := BaseCase(t) + + table := "Table" + + require.NoError(t, tx.Put(table, []byte("key2"), []byte("value2.1"))) + require.NoError(t, tx.Put(table, []byte("key4"), []byte("value4.1"))) + require.NoError(t, tx.Put(table, []byte("key5"), []byte("value5.1"))) + + c, err := tx.RwCursorDupSort(table) + require.NoError(t, err) + defer c.Close() + require.NoError(t, c.DeleteExact([]byte("key1"), []byte("value1.1"))) + require.NoError(t, c.DeleteExact([]byte("key1"), []byte("value1.3"))) + require.NoError(t, c.DeleteExact([]byte("key1"), []byte("value1.1"))) //valid but already deleted + require.NoError(t, c.DeleteExact([]byte("key2"), []byte("value1.1"))) //valid key but wrong value + + res, err := tx.Has(table, []byte("key1")) + require.Nil(t, err) + require.False(t, res) + + res, err = tx.Has(table, []byte("key2")) + require.Nil(t, err) + require.True(t, res) + + res, err = tx.Has(table, []byte("key3")) + require.Nil(t, err) + require.True(t, res) //There is another key3 left + + res, err = tx.Has(table, []byte("k")) + require.Nil(t, err) + require.False(t, res) +} + +func TestForAmount(t *testing.T) { + _, tx, _ := BaseCase(t) + + table := "Table" + + require.NoError(t, tx.Put(table, []byte("key2"), []byte("value2.1"))) + require.NoError(t, tx.Put(table, []byte("key4"), []byte("value4.1"))) + require.NoError(t, tx.Put(table, []byte("key5"), []byte("value5.1"))) + + var keys []string + + err := tx.ForAmount(table, []byte("key3"), uint32(2), func(k, v []byte) error { + keys = append(keys, string(k)) + return nil + }) + require.Nil(t, err) + require.Equal(t, []string{"key3", "key3"}, keys) + + var keys1 []string + + err1 := tx.ForAmount(table, []byte("key1"), 100, func(k, v []byte) error { + keys1 = append(keys1, string(k)) + return nil + }) + require.Nil(t, err1) + require.Equal(t, []string{"key1", "key1", "key2", "key3", "key3", "key4", "key5"}, keys1) + + var keys2 []string + + err2 := tx.ForAmount(table, []byte("value"), 100, func(k, v []byte) error { + keys2 = append(keys2, string(k)) + return nil + }) + require.Nil(t, err2) + require.Nil(t, keys2) + + var keys3 []string + + err3 := tx.ForAmount(table, []byte("key1"), 0, func(k, v []byte) error { + keys3 = append(keys3, string(k)) + return nil + }) + require.Nil(t, err3) + require.Nil(t, keys3) +} + +func TestForPrefix(t *testing.T) { + _, tx, _ := BaseCase(t) + + table := "Table" + + var keys []string + + err := tx.ForPrefix(table, []byte("key"), func(k, v []byte) error { + keys = append(keys, string(k)) + return nil + }) + require.Nil(t, err) + require.Equal(t, []string{"key1", "key1", "key3", "key3"}, keys) + + var keys1 []string + + err = tx.ForPrefix(table, []byte("key1"), func(k, v []byte) error { + keys1 = append(keys1, string(k)) + return nil + }) + require.Nil(t, err) + require.Equal(t, []string{"key1", "key1"}, keys1) + + var keys2 []string + + err = tx.ForPrefix(table, []byte("e"), func(k, v []byte) error { + keys2 = append(keys2, string(k)) + return nil + }) + require.Nil(t, err) + require.Nil(t, keys2) +} + +func TestAppendFirstLast(t *testing.T) { + _, tx, c := BaseCase(t) + + table := "Table" + + require.Error(t, tx.Append(table, []byte("key2"), []byte("value2.1"))) + require.NoError(t, tx.Append(table, []byte("key6"), []byte("value6.1"))) + require.Error(t, tx.Append(table, []byte("key4"), []byte("value4.1"))) + require.NoError(t, tx.AppendDup(table, []byte("key2"), []byte("value1.11"))) + + k, v, err := c.First() + require.Nil(t, err) + require.Equal(t, k, []byte("key1")) + require.Equal(t, v, []byte("value1.1")) + + keys, values := iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key1", "key2", "key3", "key3", "key6"}, keys) + require.Equal(t, []string{"value1.1", "value1.3", "value1.11", "value3.1", "value3.3", "value6.1"}, values) + + k, v, err = c.Last() + require.Nil(t, err) + require.Equal(t, k, []byte("key6")) + require.Equal(t, v, []byte("value6.1")) + + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key6"}, keys) + require.Equal(t, []string{"value6.1"}, values) +} + +func TestNextPrevCurrent(t *testing.T) { + _, _, c := BaseCase(t) + + k, v, err := c.First() + require.Nil(t, err) + keys, values := iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key1", "key3", "key3"}, keys) + require.Equal(t, []string{"value1.1", "value1.3", "value3.1", "value3.3"}, values) + + k, v, err = c.Next() + require.Equal(t, []byte("key1"), k) + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key3", "key3"}, keys) + require.Equal(t, []string{"value1.3", "value3.1", "value3.3"}, values) + + k, v, err = c.Current() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key3", "key3"}, keys) + require.Equal(t, []string{"value1.3", "value3.1", "value3.3"}, values) + require.Equal(t, k, []byte("key1")) + require.Equal(t, v, []byte("value1.3")) + + k, v, err = c.Next() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key3", "key3"}, keys) + require.Equal(t, []string{"value3.1", "value3.3"}, values) + + k, v, err = c.Prev() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key3", "key3"}, keys) + require.Equal(t, []string{"value1.3", "value3.1", "value3.3"}, values) + + k, v, err = c.Current() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key3", "key3"}, keys) + require.Equal(t, []string{"value1.3", "value3.1", "value3.3"}, values) + + k, v, err = c.Prev() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key1", "key3", "key3"}, keys) + require.Equal(t, []string{"value1.1", "value1.3", "value3.1", "value3.3"}, values) + + err = c.DeleteCurrent() + require.Nil(t, err) + k, v, err = c.Current() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key3", "key3"}, keys) + require.Equal(t, []string{"value1.3", "value3.1", "value3.3"}, values) + +} + +func TestSeek(t *testing.T) { + _, _, c := BaseCase(t) + + k, v, err := c.Seek([]byte("k")) + require.Nil(t, err) + keys, values := iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key1", "key3", "key3"}, keys) + require.Equal(t, []string{"value1.1", "value1.3", "value3.1", "value3.3"}, values) + + k, v, err = c.Seek([]byte("key3")) + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key3", "key3"}, keys) + require.Equal(t, []string{"value3.1", "value3.3"}, values) + + k, v, err = c.Seek([]byte("xyz")) + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Nil(t, keys) + require.Nil(t, values) +} + +func TestSeekExact(t *testing.T) { + _, _, c := BaseCase(t) + + k, v, err := c.SeekExact([]byte("key3")) + require.Nil(t, err) + keys, values := iteration(t, c, k, v) + require.Equal(t, []string{"key3", "key3"}, keys) + require.Equal(t, []string{"value3.1", "value3.3"}, values) + + k, v, err = c.SeekExact([]byte("key")) + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Nil(t, keys) + require.Nil(t, values) +} + +func TestSeekBothExact(t *testing.T) { + _, _, c := BaseCase(t) + + k, v, err := c.SeekBothExact([]byte("key1"), []byte("value1.2")) + require.Nil(t, err) + keys, values := iteration(t, c, k, v) + require.Nil(t, keys) + require.Nil(t, values) + + k, v, err = c.SeekBothExact([]byte("key2"), []byte("value1.1")) + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Nil(t, keys) + require.Nil(t, values) + + k, v, err = c.SeekBothExact([]byte("key1"), []byte("value1.1")) + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key1", "key3", "key3"}, keys) + require.Equal(t, []string{"value1.1", "value1.3", "value3.1", "value3.3"}, values) + + k, v, err = c.SeekBothExact([]byte("key3"), []byte("value3.3")) + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key3"}, keys) + require.Equal(t, []string{"value3.3"}, values) +} + +func TestNextDups(t *testing.T) { + _, tx, _ := BaseCase(t) + + table := "Table" + + c, err := tx.RwCursorDupSort(table) + require.NoError(t, err) + defer c.Close() + require.NoError(t, c.DeleteExact([]byte("key1"), []byte("value1.1"))) + require.NoError(t, c.DeleteExact([]byte("key1"), []byte("value1.3"))) + require.NoError(t, c.DeleteExact([]byte("key3"), []byte("value3.1"))) //valid but already deleted + require.NoError(t, c.DeleteExact([]byte("key3"), []byte("value3.3"))) //valid key but wrong value + + require.NoError(t, tx.Put(table, []byte("key2"), []byte("value1.1"))) + require.NoError(t, c.Put([]byte("key2"), []byte("value1.2"))) + require.NoError(t, c.Put([]byte("key3"), []byte("value1.6"))) + require.NoError(t, c.Put([]byte("key"), []byte("value1.7"))) + + k, v, err := c.Current() + require.Nil(t, err) + keys, values := iteration(t, c, k, v) + require.Equal(t, []string{"key", "key2", "key2", "key3"}, keys) + require.Equal(t, []string{"value1.7", "value1.1", "value1.2", "value1.6"}, values) + + v, err = c.FirstDup() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key", "key2", "key2", "key3"}, keys) + require.Equal(t, []string{"value1.7", "value1.1", "value1.2", "value1.6"}, values) + + k, v, err = c.NextNoDup() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key2", "key2", "key3"}, keys) + require.Equal(t, []string{"value1.1", "value1.2", "value1.6"}, values) + + k, v, err = c.NextDup() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key2", "key3"}, keys) + require.Equal(t, []string{"value1.2", "value1.6"}, values) + + v, err = c.LastDup() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key2", "key3"}, keys) + require.Equal(t, []string{"value1.2", "value1.6"}, values) + + k, v, err = c.NextDup() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Nil(t, keys) + require.Nil(t, values) + + k, v, err = c.NextNoDup() + require.Nil(t, err) + keys, values = iteration(t, c, k, v) + require.Equal(t, []string{"key3"}, keys) + require.Equal(t, []string{"value1.6"}, values) +} + +func TestCurrentDup(t *testing.T) { + _, _, c := BaseCase(t) + + count, err := c.CountDuplicates() + require.Nil(t, err) + require.Equal(t, count, uint64(2)) + + require.Error(t, c.PutNoDupData([]byte("key3"), []byte("value3.3"))) + require.NoError(t, c.DeleteCurrentDuplicates()) + + k, v, err := c.SeekExact([]byte("key1")) + require.Nil(t, err) + keys, values := iteration(t, c, k, v) + require.Equal(t, []string{"key1", "key1"}, keys) + require.Equal(t, []string{"value1.1", "value1.3"}, values) + + require.Equal(t, []string{"key1", "key1"}, keys) + require.Equal(t, []string{"value1.1", "value1.3"}, values) +} + +func TestDupDelete(t *testing.T) { + _, _, c := BaseCase(t) + + k, _, err := c.Current() + require.Nil(t, err) + require.Equal(t, []byte("key3"), k) + + err = c.DeleteCurrentDuplicates() + require.Nil(t, err) + + err = c.Delete([]byte("key1")) + require.Nil(t, err) + + count, err := c.Count() + require.Nil(t, err) + assert.Zero(t, count) +} + +func baseAutoConversion(t *testing.T) (kv.RwDB, kv.RwTx, kv.RwCursor) { + t.Helper() + path := t.TempDir() + logger := log.New() + db := NewMDBX(logger).InMem(path).MustOpen() + + tx, err := db.BeginRw(context.Background()) + require.NoError(t, err) + + c, err := tx.RwCursor(kv.PlainState) + require.NoError(t, err) + + // Insert some records + require.NoError(t, c.Put([]byte("A"), []byte("0"))) + require.NoError(t, c.Put([]byte("A..........................._______________________________A"), []byte("1"))) + require.NoError(t, c.Put([]byte("A..........................._______________________________C"), []byte("2"))) + require.NoError(t, c.Put([]byte("B"), []byte("8"))) + require.NoError(t, c.Put([]byte("C"), []byte("9"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________A"), []byte("3"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________C"), []byte("4"))) + + return db, tx, c +} + +func TestAutoConversion(t *testing.T) { + db, tx, c := baseAutoConversion(t) + defer db.Close() + defer tx.Rollback() + defer c.Close() + + // key length conflict + require.Error(t, c.Put([]byte("A..........................."), []byte("?"))) + + require.NoError(t, c.Delete([]byte("A..........................._______________________________A"))) + require.NoError(t, c.Put([]byte("B"), []byte("7"))) + require.NoError(t, c.Delete([]byte("C"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________C"), []byte("6"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________E"), []byte("5"))) + + k, v, err := c.First() + require.NoError(t, err) + assert.Equal(t, []byte("A"), k) + assert.Equal(t, []byte("0"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("A..........................._______________________________C"), k) + assert.Equal(t, []byte("2"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("B"), k) + assert.Equal(t, []byte("7"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("D..........................._______________________________A"), k) + assert.Equal(t, []byte("3"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("D..........................._______________________________C"), k) + assert.Equal(t, []byte("6"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("D..........................._______________________________E"), k) + assert.Equal(t, []byte("5"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Nil(t, k) + assert.Nil(t, v) +} + +func TestAutoConversionSeekBothRange(t *testing.T) { + db, tx, nonDupC := baseAutoConversion(t) + nonDupC.Close() + defer db.Close() + defer tx.Rollback() + + c, err := tx.RwCursorDupSort(kv.PlainState) + require.NoError(t, err) + + require.NoError(t, c.Delete([]byte("A..........................._______________________________A"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________C"), []byte("6"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________E"), []byte("5"))) + + v, err := c.SeekBothRange([]byte("A..........................."), []byte("_______________________________A")) + require.NoError(t, err) + assert.Equal(t, []byte("_______________________________C2"), v) + + _, v, err = c.NextDup() + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("A..........................."), []byte("_______________________________X")) + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("B..........................."), []byte("")) + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("C..........................."), []byte("")) + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("D..........................."), []byte("")) + require.NoError(t, err) + assert.Equal(t, []byte("_______________________________A3"), v) + + _, v, err = c.NextDup() + require.NoError(t, err) + assert.Equal(t, []byte("_______________________________C6"), v) + + _, v, err = c.NextDup() + require.NoError(t, err) + assert.Equal(t, []byte("_______________________________E5"), v) + + _, v, err = c.NextDup() + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("X..........................."), []byte("_______________________________Y")) + require.NoError(t, err) + assert.Nil(t, v) +} diff --git a/erigon-lib/kv/mdbx/kv_migrator_test.go b/erigon-lib/kv/mdbx/kv_migrator_test.go new file mode 100644 index 00000000000..05eef49fd91 --- /dev/null +++ b/erigon-lib/kv/mdbx/kv_migrator_test.go @@ -0,0 +1,121 @@ +//go:build !windows + +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package mdbx_test + +import ( + "context" + "errors" + "testing" + "time" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" +) + +func TestBucketCRUD(t *testing.T) { + require := require.New(t) + db, tx := memdb.NewTestTx(t) + + normalBucket := kv.ChaindataTables[15] + deprecatedBucket := kv.ChaindataDeprecatedTables[0] + migrator := tx + + // check thad buckets have unique DBI's + uniquness := map[kv.DBI]bool{} + castedKv, ok := db.(*mdbx.MdbxKV) + if !ok { + t.Skip() + } + for _, dbi := range castedKv.AllDBI() { + if dbi == mdbx.NonExistingDBI { + continue + } + _, ok := uniquness[dbi] + require.False(ok) + uniquness[dbi] = true + } + + require.True(migrator.ExistsBucket(normalBucket)) + require.True(errors.Is(migrator.DropBucket(normalBucket), kv.ErrAttemptToDeleteNonDeprecatedBucket)) + + require.False(migrator.ExistsBucket(deprecatedBucket)) + require.NoError(migrator.CreateBucket(deprecatedBucket)) + require.True(migrator.ExistsBucket(deprecatedBucket)) + + require.NoError(migrator.DropBucket(deprecatedBucket)) + require.False(migrator.ExistsBucket(deprecatedBucket)) + + require.NoError(migrator.CreateBucket(deprecatedBucket)) + require.True(migrator.ExistsBucket(deprecatedBucket)) + + c, err := tx.RwCursor(deprecatedBucket) + require.NoError(err) + err = c.Put([]byte{1}, []byte{1}) + require.NoError(err) + v, err := tx.GetOne(deprecatedBucket, []byte{1}) + require.NoError(err) + require.Equal([]byte{1}, v) + + buckets, err := migrator.ListBuckets() + require.NoError(err) + require.True(len(buckets) > 10) + + // check thad buckets have unique DBI's + uniquness = map[kv.DBI]bool{} + for _, dbi := range castedKv.AllDBI() { + if dbi == mdbx.NonExistingDBI { + continue + } + _, ok := uniquness[dbi] + require.False(ok) + uniquness[dbi] = true + } +} + +func TestReadOnlyMode(t *testing.T) { + path := t.TempDir() + logger := log.New() + db1 := mdbx.NewMDBX(logger).Path(path).MapSize(16 * datasize.MB).WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { + return kv.TableCfg{ + kv.Headers: kv.TableCfgItem{}, + } + }).MustOpen() + db1.Close() + time.Sleep(10 * time.Millisecond) // win sometime need time to close file + + db2 := mdbx.NewMDBX(logger).Readonly().Path(path).MapSize(16 * datasize.MB).WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { + return kv.TableCfg{ + kv.Headers: kv.TableCfgItem{}, + } + }).MustOpen() + defer db2.Close() + + tx, err := db2.BeginRo(context.Background()) + require.NoError(t, err) + defer tx.Rollback() + + c, err := tx.Cursor(kv.Headers) + require.NoError(t, err) + defer c.Close() + _, _, err = c.Seek([]byte("some prefix")) + require.NoError(t, err) +} diff --git a/erigon-lib/kv/mdbx/util.go b/erigon-lib/kv/mdbx/util.go new file mode 100644 index 00000000000..f0a53d60a1f --- /dev/null +++ b/erigon-lib/kv/mdbx/util.go @@ -0,0 +1,48 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package mdbx + +import ( + "context" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/log/v3" +) + +func MustOpen(path string) kv.RwDB { + db, err := Open(context.Background(), path, log.New(), false) + if err != nil { + panic(err) + } + return db +} + +// Open - main method to open database. +func Open(ctx context.Context, path string, logger log.Logger, accede bool) (kv.RwDB, error) { + var db kv.RwDB + var err error + opts := NewMDBX(logger).Path(path) + if accede { + opts = opts.Accede() + } + db, err = opts.Open(ctx) + + if err != nil { + return nil, err + } + return db, nil +} diff --git a/ethdb/olddb/database_test.go b/erigon-lib/kv/membatch/database_test.go similarity index 84% rename from ethdb/olddb/database_test.go rename to erigon-lib/kv/membatch/database_test.go index 7767f3005af..c2b789162cf 100644 --- a/ethdb/olddb/database_test.go +++ b/erigon-lib/kv/membatch/database_test.go @@ -16,7 +16,7 @@ //go:build !js -package olddb +package membatch import ( "bytes" @@ -29,9 +29,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/ethdb" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -207,42 +204,3 @@ func TestParallelPutGet(t *testing.T) { } pending.Wait() } - -var hexEntries = map[string]string{ - "6b": "89c6", - "91": "c476", - "a8": "0a514e", - "bb": "7a", - "bd": "fe76", - "c0": "12", -} - -var startKey = common.FromHex("a0") -var fixedBits = 3 - -var keysInRange = [][]byte{common.FromHex("a8"), common.FromHex("bb"), common.FromHex("bd")} - -func TestWalk(t *testing.T) { - _, tx := memdb.NewTestTx(t) - - for k, v := range hexEntries { - err := tx.Put(testBucket, common.FromHex(k), common.FromHex(v)) - if err != nil { - t.Fatalf("put failed: %v", err) - } - } - - var gotKeys [][]byte - c, err := tx.Cursor(testBucket) - if err != nil { - panic(err) - } - defer c.Close() - err = ethdb.Walk(c, startKey, fixedBits, func(key, val []byte) (bool, error) { - gotKeys = append(gotKeys, common.CopyBytes(key)) - return true, nil - }) - assert.NoError(t, err) - - assert.Equal(t, keysInRange, gotKeys) -} diff --git a/ethdb/olddb/mapmutation.go b/erigon-lib/kv/membatch/mapmutation.go similarity index 65% rename from ethdb/olddb/mapmutation.go rename to erigon-lib/kv/membatch/mapmutation.go index 385d201ddd0..994a042f67f 100644 --- a/ethdb/olddb/mapmutation.go +++ b/erigon-lib/kv/membatch/mapmutation.go @@ -1,8 +1,9 @@ -package olddb +package membatch import ( "context" "encoding/binary" + "errors" "fmt" "sync" "time" @@ -11,13 +12,11 @@ import ( "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - - "github.com/ledgerwatch/erigon/ethdb" ) -type mapmutation struct { +type Mapmutation struct { puts map[string]map[string][]byte // table -> key -> value ie. blocks -> hash -> blockBod - db kv.RwTx + db kv.Tx quit <-chan struct{} clean func() mu sync.RWMutex @@ -32,10 +31,10 @@ type mapmutation struct { // Common pattern: // // batch := db.NewBatch() -// defer batch.Rollback() +// defer batch.Close() // ... some calculations on `batch` // batch.Commit() -func NewHashBatch(tx kv.RwTx, quit <-chan struct{}, tmpdir string, logger log.Logger) *mapmutation { +func NewHashBatch(tx kv.Tx, quit <-chan struct{}, tmpdir string, logger log.Logger) *Mapmutation { clean := func() {} if quit == nil { ch := make(chan struct{}) @@ -43,7 +42,7 @@ func NewHashBatch(tx kv.RwTx, quit <-chan struct{}, tmpdir string, logger log.Lo quit = ch } - return &mapmutation{ + return &Mapmutation{ db: tx, puts: make(map[string]map[string][]byte), quit: quit, @@ -53,14 +52,7 @@ func NewHashBatch(tx kv.RwTx, quit <-chan struct{}, tmpdir string, logger log.Lo } } -func (m *mapmutation) RwKV() kv.RwDB { - if casted, ok := m.db.(ethdb.HasRwKV); ok { - return casted.RwKV() - } - return nil -} - -func (m *mapmutation) getMem(table string, key []byte) ([]byte, bool) { +func (m *Mapmutation) getMem(table string, key []byte) ([]byte, bool) { m.mu.RLock() defer m.mu.RUnlock() if _, ok := m.puts[table]; !ok { @@ -73,7 +65,7 @@ func (m *mapmutation) getMem(table string, key []byte) ([]byte, bool) { return nil, false } -func (m *mapmutation) IncrementSequence(bucket string, amount uint64) (res uint64, err error) { +func (m *Mapmutation) IncrementSequence(bucket string, amount uint64) (res uint64, err error) { v, ok := m.getMem(kv.Sequence, []byte(bucket)) if !ok && m.db != nil { v, err = m.db.GetOne(kv.Sequence, []byte(bucket)) @@ -95,7 +87,7 @@ func (m *mapmutation) IncrementSequence(bucket string, amount uint64) (res uint6 return currentV, nil } -func (m *mapmutation) ReadSequence(bucket string) (res uint64, err error) { +func (m *Mapmutation) ReadSequence(bucket string) (res uint64, err error) { v, ok := m.getMem(kv.Sequence, []byte(bucket)) if !ok && m.db != nil { v, err = m.db.GetOne(kv.Sequence, []byte(bucket)) @@ -112,7 +104,7 @@ func (m *mapmutation) ReadSequence(bucket string) (res uint64, err error) { } // Can only be called from the worker thread -func (m *mapmutation) GetOne(table string, key []byte) ([]byte, error) { +func (m *Mapmutation) GetOne(table string, key []byte) ([]byte, error) { if value, ok := m.getMem(table, key); ok { return value, nil } @@ -127,21 +119,7 @@ func (m *mapmutation) GetOne(table string, key []byte) ([]byte, error) { return nil, nil } -// Can only be called from the worker thread -func (m *mapmutation) Get(table string, key []byte) ([]byte, error) { - value, err := m.GetOne(table, key) - if err != nil { - return nil, err - } - - if value == nil { - return nil, ethdb.ErrKeyNotFound - } - - return value, nil -} - -func (m *mapmutation) Last(table string) ([]byte, []byte, error) { +func (m *Mapmutation) Last(table string) ([]byte, []byte, error) { c, err := m.db.Cursor(table) if err != nil { return nil, nil, err @@ -150,7 +128,7 @@ func (m *mapmutation) Last(table string) ([]byte, []byte, error) { return c.Last() } -func (m *mapmutation) Has(table string, key []byte) (bool, error) { +func (m *Mapmutation) Has(table string, key []byte) (bool, error) { if _, ok := m.getMem(table, key); ok { return ok, nil } @@ -161,7 +139,7 @@ func (m *mapmutation) Has(table string, key []byte) (bool, error) { } // puts a table key with a value and if the table is not found then it appends a table -func (m *mapmutation) Put(table string, k, v []byte) error { +func (m *Mapmutation) Put(table string, k, v []byte) error { m.mu.Lock() defer m.mu.Unlock() if _, ok := m.puts[table]; !ok { @@ -183,40 +161,40 @@ func (m *mapmutation) Put(table string, k, v []byte) error { return nil } -func (m *mapmutation) Append(table string, key []byte, value []byte) error { +func (m *Mapmutation) Append(table string, key []byte, value []byte) error { return m.Put(table, key, value) } -func (m *mapmutation) AppendDup(table string, key []byte, value []byte) error { +func (m *Mapmutation) AppendDup(table string, key []byte, value []byte) error { return m.Put(table, key, value) } -func (m *mapmutation) BatchSize() int { +func (m *Mapmutation) BatchSize() int { m.mu.RLock() defer m.mu.RUnlock() return m.size } -func (m *mapmutation) ForEach(bucket string, fromPrefix []byte, walker func(k, v []byte) error) error { +func (m *Mapmutation) ForEach(bucket string, fromPrefix []byte, walker func(k, v []byte) error) error { m.panicOnEmptyDB() return m.db.ForEach(bucket, fromPrefix, walker) } -func (m *mapmutation) ForPrefix(bucket string, prefix []byte, walker func(k, v []byte) error) error { +func (m *Mapmutation) ForPrefix(bucket string, prefix []byte, walker func(k, v []byte) error) error { m.panicOnEmptyDB() return m.db.ForPrefix(bucket, prefix, walker) } -func (m *mapmutation) ForAmount(bucket string, prefix []byte, amount uint32, walker func(k, v []byte) error) error { +func (m *Mapmutation) ForAmount(bucket string, prefix []byte, amount uint32, walker func(k, v []byte) error) error { m.panicOnEmptyDB() return m.db.ForAmount(bucket, prefix, amount, walker) } -func (m *mapmutation) Delete(table string, k []byte) error { +func (m *Mapmutation) Delete(table string, k []byte) error { return m.Put(table, k, nil) } -func (m *mapmutation) doCommit(tx kv.RwTx) error { +func (m *Mapmutation) doCommit(tx kv.RwTx) error { logEvery := time.NewTicker(30 * time.Second) defer logEvery.Stop() count := 0 @@ -235,7 +213,7 @@ func (m *mapmutation) doCommit(tx kv.RwTx) error { tx.CollectMetrics() } } - if err := collector.Load(m.db, table, etl.IdentityLoadFunc, etl.TransformArgs{Quit: m.quit}); err != nil { + if err := collector.Load(tx, table, etl.IdentityLoadFunc, etl.TransformArgs{Quit: m.quit}); err != nil { return err } } @@ -244,51 +222,43 @@ func (m *mapmutation) doCommit(tx kv.RwTx) error { return nil } -func (m *mapmutation) Commit() error { - if m.db == nil { - return nil +func (m *Mapmutation) Flush(ctx context.Context, tx kv.RwTx) error { + if tx == nil { + return errors.New("rwTx needed") } m.mu.Lock() defer m.mu.Unlock() - if err := m.doCommit(m.db); err != nil { + if err := m.doCommit(tx); err != nil { return err } m.puts = map[string]map[string][]byte{} m.size = 0 m.count = 0 - m.clean() return nil } -func (m *mapmutation) Rollback() { +func (m *Mapmutation) Close() { + if m.clean == nil { + return + } + m.mu.Lock() defer m.mu.Unlock() m.puts = map[string]map[string][]byte{} m.size = 0 m.count = 0 m.size = 0 - m.clean() -} -func (m *mapmutation) Close() { - m.Rollback() -} + m.clean() + m.clean = nil -func (m *mapmutation) Begin(ctx context.Context, flags ethdb.TxFlags) (ethdb.DbWithPendingMutations, error) { - panic("mutation can't start transaction, because doesn't own it") } +func (m *Mapmutation) Commit() error { panic("not db txn, use .Flush method") } +func (m *Mapmutation) Rollback() { panic("not db txn, use .Close method") } -func (m *mapmutation) panicOnEmptyDB() { +func (m *Mapmutation) panicOnEmptyDB() { if m.db == nil { panic("Not implemented") } } - -func (m *mapmutation) SetRwKV(kv kv.RwDB) { - hasRwKV, ok := m.db.(ethdb.HasRwKV) - if !ok { - log.Warn("Failed to convert mapmutation type to HasRwKV interface") - } - hasRwKV.SetRwKV(kv) -} diff --git a/erigon-lib/kv/membatch/mapmutation_test.go b/erigon-lib/kv/membatch/mapmutation_test.go new file mode 100644 index 00000000000..a658c834fa7 --- /dev/null +++ b/erigon-lib/kv/membatch/mapmutation_test.go @@ -0,0 +1,33 @@ +package membatch + +import ( + "context" + "os" + "testing" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" +) + +func TestMapmutation_Flush_Close(t *testing.T) { + db := memdb.NewTestDB(t) + + tx, err := db.BeginRw(context.Background()) + require.NoError(t, err) + defer tx.Rollback() + + batch := NewHashBatch(tx, nil, os.TempDir(), log.New()) + defer func() { + batch.Close() + }() + err = batch.Put(kv.ChaindataTables[0], []byte{1}, []byte{1}) + require.NoError(t, err) + err = batch.Put(kv.ChaindataTables[0], []byte{2}, []byte{2}) + require.NoError(t, err) + err = batch.Flush(context.Background(), tx) + require.NoError(t, err) + batch.Close() + batch.Close() +} diff --git a/erigon-lib/kv/membatchwithdb/memory_mutation.go b/erigon-lib/kv/membatchwithdb/memory_mutation.go new file mode 100644 index 00000000000..c00f93cb2c6 --- /dev/null +++ b/erigon-lib/kv/membatchwithdb/memory_mutation.go @@ -0,0 +1,513 @@ +/* + Copyright 2022 Erigon contributors + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package membatchwithdb + +import ( + "bytes" + "context" + "unsafe" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" +) + +type MemoryMutation struct { + memTx kv.RwTx + memDb kv.RwDB + deletedEntries map[string]map[string]struct{} + clearedTables map[string]struct{} + db kv.Tx + statelessCursors map[string]kv.RwCursor +} + +// NewMemoryBatch - starts in-mem batch +// +// Common pattern: +// +// batch := NewMemoryBatch(db, tmpDir) +// defer batch.Close() +// ... some calculations on `batch` +// batch.Commit() +func NewMemoryBatch(tx kv.Tx, tmpDir string) *MemoryMutation { + tmpDB := mdbx.NewMDBX(log.New()).InMem(tmpDir).GrowthStep(64 * datasize.MB).MapSize(512 * datasize.GB).MustOpen() + memTx, err := tmpDB.BeginRw(context.Background()) + if err != nil { + panic(err) + } + if err := initSequences(tx, memTx); err != nil { + return nil + } + + return &MemoryMutation{ + db: tx, + memDb: tmpDB, + memTx: memTx, + deletedEntries: make(map[string]map[string]struct{}), + clearedTables: make(map[string]struct{}), + } +} + +func NewMemoryBatchWithCustomDB(tx kv.Tx, db kv.RwDB, uTx kv.RwTx, tmpDir string) *MemoryMutation { + return &MemoryMutation{ + db: tx, + memDb: db, + memTx: uTx, + deletedEntries: make(map[string]map[string]struct{}), + clearedTables: make(map[string]struct{}), + } +} + +func (m *MemoryMutation) UpdateTxn(tx kv.Tx) { + m.db = tx + m.statelessCursors = nil +} + +func (m *MemoryMutation) isTableCleared(table string) bool { + _, ok := m.clearedTables[table] + return ok +} + +func (m *MemoryMutation) isEntryDeleted(table string, key []byte) bool { + _, ok := m.deletedEntries[table] + if !ok { + return ok + } + _, ok = m.deletedEntries[table][string(key)] + return ok +} + +func (m *MemoryMutation) DBSize() (uint64, error) { + panic("not implemented") +} + +func initSequences(db kv.Tx, memTx kv.RwTx) error { + cursor, err := db.Cursor(kv.Sequence) + if err != nil { + return err + } + for k, v, err := cursor.First(); k != nil; k, v, err = cursor.Next() { + if err != nil { + return err + } + if err := memTx.Put(kv.Sequence, k, v); err != nil { + return err + } + } + return nil +} + +func (m *MemoryMutation) IncrementSequence(bucket string, amount uint64) (uint64, error) { + return m.memTx.IncrementSequence(bucket, amount) +} + +func (m *MemoryMutation) ReadSequence(bucket string) (uint64, error) { + return m.memTx.ReadSequence(bucket) +} + +func (m *MemoryMutation) ForAmount(bucket string, prefix []byte, amount uint32, walker func(k, v []byte) error) error { + if amount == 0 { + return nil + } + c, err := m.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + + for k, v, err := c.Seek(prefix); k != nil && amount > 0; k, v, err = c.Next() { + if err != nil { + return err + } + if err := walker(k, v); err != nil { + return err + } + amount-- + } + return nil +} + +func (m *MemoryMutation) statelessCursor(table string) (kv.RwCursor, error) { + if m.statelessCursors == nil { + m.statelessCursors = make(map[string]kv.RwCursor) + } + c, ok := m.statelessCursors[table] + if !ok { + var err error + c, err = m.RwCursor(table) + if err != nil { + return nil, err + } + m.statelessCursors[table] = c + } + return c, nil +} + +// Can only be called from the worker thread +func (m *MemoryMutation) GetOne(table string, key []byte) ([]byte, error) { + c, err := m.statelessCursor(table) + if err != nil { + return nil, err + } + _, v, err := c.SeekExact(key) + return v, err +} + +func (m *MemoryMutation) Last(table string) ([]byte, []byte, error) { + panic("not implemented. (MemoryMutation.Last)") +} + +// Has return whether a key is present in a certain table. +func (m *MemoryMutation) Has(table string, key []byte) (bool, error) { + c, err := m.statelessCursor(table) + if err != nil { + return false, err + } + k, _, err := c.Seek(key) + if err != nil { + return false, err + } + return bytes.Equal(key, k), nil +} + +func (m *MemoryMutation) Put(table string, k, v []byte) error { + return m.memTx.Put(table, k, v) +} + +func (m *MemoryMutation) Append(table string, key []byte, value []byte) error { + return m.memTx.Append(table, key, value) +} + +func (m *MemoryMutation) AppendDup(table string, key []byte, value []byte) error { + c, err := m.statelessCursor(table) + if err != nil { + return err + } + return c.(*memoryMutationCursor).AppendDup(key, value) +} + +func (m *MemoryMutation) ForEach(bucket string, fromPrefix []byte, walker func(k, v []byte) error) error { + c, err := m.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + + for k, v, err := c.Seek(fromPrefix); k != nil; k, v, err = c.Next() { + if err != nil { + return err + } + if err := walker(k, v); err != nil { + return err + } + } + return nil +} + +func (m *MemoryMutation) Prefix(table string, prefix []byte) (iter.KV, error) { + nextPrefix, ok := kv.NextSubtree(prefix) + if !ok { + return m.Stream(table, prefix, nil) + } + return m.Stream(table, prefix, nextPrefix) +} +func (m *MemoryMutation) Stream(table string, fromPrefix, toPrefix []byte) (iter.KV, error) { + panic("please implement me") +} +func (m *MemoryMutation) StreamAscend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) { + panic("please implement me") +} +func (m *MemoryMutation) StreamDescend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) { + panic("please implement me") +} +func (m *MemoryMutation) Range(table string, fromPrefix, toPrefix []byte) (iter.KV, error) { + panic("please implement me") +} +func (m *MemoryMutation) RangeAscend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) { + panic("please implement me") +} +func (m *MemoryMutation) RangeDescend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) { + panic("please implement me") +} +func (m *MemoryMutation) RangeDupSort(table string, key []byte, fromPrefix, toPrefix []byte, asc order.By, limit int) (iter.KV, error) { + panic("please implement me") +} + +func (m *MemoryMutation) ForPrefix(bucket string, prefix []byte, walker func(k, v []byte) error) error { + c, err := m.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + + for k, v, err := c.Seek(prefix); k != nil; k, v, err = c.Next() { + if err != nil { + return err + } + if !bytes.HasPrefix(k, prefix) { + break + } + if err := walker(k, v); err != nil { + return err + } + } + return nil +} + +func (m *MemoryMutation) Delete(table string, k []byte) error { + if _, ok := m.deletedEntries[table]; !ok { + m.deletedEntries[table] = make(map[string]struct{}) + } + m.deletedEntries[table][string(k)] = struct{}{} + return m.memTx.Delete(table, k) +} + +func (m *MemoryMutation) Commit() error { + m.statelessCursors = nil + return nil +} + +func (m *MemoryMutation) Rollback() { + m.memTx.Rollback() + m.memDb.Close() + m.statelessCursors = nil +} + +func (m *MemoryMutation) Close() { + m.Rollback() +} + +func (m *MemoryMutation) BucketSize(bucket string) (uint64, error) { + return m.memTx.BucketSize(bucket) +} + +func (m *MemoryMutation) DropBucket(bucket string) error { + panic("Not implemented") +} + +func (m *MemoryMutation) ExistsBucket(bucket string) (bool, error) { + panic("Not implemented") +} + +func (m *MemoryMutation) ListBuckets() ([]string, error) { + panic("Not implemented") +} + +func (m *MemoryMutation) ClearBucket(bucket string) error { + m.clearedTables[bucket] = struct{}{} + return m.memTx.ClearBucket(bucket) +} + +func (m *MemoryMutation) CollectMetrics() { +} + +func (m *MemoryMutation) CreateBucket(bucket string) error { + return m.memTx.CreateBucket(bucket) +} + +func (m *MemoryMutation) Flush(tx kv.RwTx) error { + // Obtain buckets touched. + buckets, err := m.memTx.ListBuckets() + if err != nil { + return err + } + // Obliterate buckets who are to be deleted + for bucket := range m.clearedTables { + if err := tx.ClearBucket(bucket); err != nil { + return err + } + } + // Obliterate entries who are to be deleted + for bucket, keys := range m.deletedEntries { + for key := range keys { + if err := tx.Delete(bucket, []byte(key)); err != nil { + return err + } + } + } + // Iterate over each bucket and apply changes accordingly. + for _, bucket := range buckets { + if isTablePurelyDupsort(bucket) { + cbucket, err := m.memTx.CursorDupSort(bucket) + if err != nil { + return err + } + defer cbucket.Close() + dbCursor, err := tx.RwCursorDupSort(bucket) + if err != nil { + return err + } + defer dbCursor.Close() + for k, v, err := cbucket.First(); k != nil; k, v, err = cbucket.Next() { + if err != nil { + return err + } + if err := dbCursor.Put(k, v); err != nil { + return err + } + } + } else { + cbucket, err := m.memTx.Cursor(bucket) + if err != nil { + return err + } + defer cbucket.Close() + for k, v, err := cbucket.First(); k != nil; k, v, err = cbucket.Next() { + if err != nil { + return err + } + if err := tx.Put(bucket, k, v); err != nil { + return err + } + } + } + } + return nil +} + +func (m *MemoryMutation) Diff() (*MemoryDiff, error) { + memDiff := &MemoryDiff{ + diff: make(map[table][]entry), + deletedEntries: make(map[string][]string), + } + // Obtain buckets touched. + buckets, err := m.memTx.ListBuckets() + if err != nil { + return nil, err + } + // Obliterate buckets who are to be deleted + for bucket := range m.clearedTables { + memDiff.clearedTableNames = append(memDiff.clearedTableNames, bucket) + } + // Obliterate entries who are to be deleted + for bucket, keys := range m.deletedEntries { + for key := range keys { + memDiff.deletedEntries[bucket] = append(memDiff.deletedEntries[bucket], key) + } + } + // Iterate over each bucket and apply changes accordingly. + for _, bucket := range buckets { + if isTablePurelyDupsort(bucket) { + cbucket, err := m.memTx.CursorDupSort(bucket) + if err != nil { + return nil, err + } + defer cbucket.Close() + + t := table{ + name: bucket, + dupsort: true, + } + for k, v, err := cbucket.First(); k != nil; k, v, err = cbucket.Next() { + if err != nil { + return nil, err + } + memDiff.diff[t] = append(memDiff.diff[t], entry{ + k: common.Copy(k), + v: common.Copy(v), + }) + } + } else { + cbucket, err := m.memTx.Cursor(bucket) + if err != nil { + return nil, err + } + defer cbucket.Close() + t := table{ + name: bucket, + dupsort: false, + } + for k, v, err := cbucket.First(); k != nil; k, v, err = cbucket.Next() { + if err != nil { + return nil, err + } + memDiff.diff[t] = append(memDiff.diff[t], entry{ + k: common.Copy(k), + v: common.Copy(v), + }) + } + } + } + return memDiff, nil +} + +// Check if a bucket is dupsorted and has dupsort conversion off +func isTablePurelyDupsort(bucket string) bool { + config, ok := kv.ChaindataTablesCfg[bucket] + // If we do not have the configuration we assume it is not dupsorted + if !ok { + return false + } + return !config.AutoDupSortKeysConversion && config.Flags == kv.DupSort +} + +func (m *MemoryMutation) MemDB() kv.RwDB { + return m.memDb +} + +func (m *MemoryMutation) MemTx() kv.RwTx { + return m.memTx +} + +// Cursor creates a new cursor (the real fun begins here) +func (m *MemoryMutation) makeCursor(bucket string) (kv.RwCursorDupSort, error) { + c := &memoryMutationCursor{} + // We can filter duplicates in dup sorted table + c.table = bucket + + var err error + c.cursor, err = m.db.CursorDupSort(bucket) + if err != nil { + return nil, err + } + c.memCursor, err = m.memTx.RwCursorDupSort(bucket) + if err != nil { + return nil, err + } + c.mutation = m + return c, err +} + +// Cursor creates a new cursor (the real fun begins here) +func (m *MemoryMutation) RwCursorDupSort(bucket string) (kv.RwCursorDupSort, error) { + return m.makeCursor(bucket) +} + +// Cursor creates a new cursor (the real fun begins here) +func (m *MemoryMutation) RwCursor(bucket string) (kv.RwCursor, error) { + return m.makeCursor(bucket) +} + +// Cursor creates a new cursor (the real fun begins here) +func (m *MemoryMutation) CursorDupSort(bucket string) (kv.CursorDupSort, error) { + return m.makeCursor(bucket) +} + +// Cursor creates a new cursor (the real fun begins here) +func (m *MemoryMutation) Cursor(bucket string) (kv.Cursor, error) { + return m.makeCursor(bucket) +} + +func (m *MemoryMutation) ViewID() uint64 { + panic("ViewID Not implemented") +} + +func (m *MemoryMutation) CHandle() unsafe.Pointer { + panic("CHandle not implemented") +} diff --git a/erigon-lib/kv/membatchwithdb/memory_mutation_cursor.go b/erigon-lib/kv/membatchwithdb/memory_mutation_cursor.go new file mode 100644 index 00000000000..c21b9e4015b --- /dev/null +++ b/erigon-lib/kv/membatchwithdb/memory_mutation_cursor.go @@ -0,0 +1,506 @@ +/* + Copyright 2022 Erigon contributors + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package membatchwithdb + +import ( + "bytes" + "fmt" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" +) + +type NextType int + +const ( + Normal NextType = iota + Dup + NoDup +) + +// entry for the cursor +type cursorEntry struct { + key []byte + value []byte +} + +// cursor +type memoryMutationCursor struct { + // entry history + cursor kv.CursorDupSort + memCursor kv.RwCursorDupSort + // we keep the mining mutation so that we can insert new elements in db + mutation *MemoryMutation + table string + currentPair cursorEntry + currentDbEntry cursorEntry + currentMemEntry cursorEntry + isPrevFromDb bool +} + +func (m *memoryMutationCursor) isTableCleared() bool { + return m.mutation.isTableCleared(m.table) +} + +func (m *memoryMutationCursor) isEntryDeleted(key []byte, value []byte, t NextType) bool { + if t == Normal { + return m.mutation.isEntryDeleted(m.table, key) + } else { + return m.mutation.isEntryDeleted(m.table, m.convertAutoDupsort(key, value)) + } +} + +// First move cursor to first position and return key and value accordingly. +func (m *memoryMutationCursor) First() ([]byte, []byte, error) { + memKey, memValue, err := m.memCursor.First() + if err != nil || m.isTableCleared() { + return memKey, memValue, err + } + + dbKey, dbValue, err := m.cursor.First() + if err != nil { + return nil, nil, err + } + + if dbKey != nil && m.isEntryDeleted(dbKey, dbValue, Normal) { + if dbKey, dbValue, err = m.getNextOnDb(Normal); err != nil { + return nil, nil, err + } + } + + return m.resolveCursorPriority(memKey, memValue, dbKey, dbValue, Normal) +} + +func (m *memoryMutationCursor) getNextOnDb(t NextType) (key []byte, value []byte, err error) { + switch t { + case Normal: + key, value, err = m.cursor.Next() + if err != nil { + return + } + case Dup: + key, value, err = m.cursor.NextDup() + if err != nil { + return + } + case NoDup: + key, value, err = m.cursor.NextNoDup() + if err != nil { + return + } + default: + err = fmt.Errorf("invalid next type") + return + } + + for key != nil && value != nil && m.isEntryDeleted(key, value, t) { + switch t { + case Normal: + key, value, err = m.cursor.Next() + if err != nil { + return + } + case Dup: + key, value, err = m.cursor.NextDup() + if err != nil { + return + } + case NoDup: + key, value, err = m.cursor.NextNoDup() + if err != nil { + return + } + default: + err = fmt.Errorf("invalid next type") + return + } + } + return +} + +func (m *memoryMutationCursor) convertAutoDupsort(key []byte, value []byte) []byte { + config, ok := kv.ChaindataTablesCfg[m.table] + // If we do not have the configuration we assume it is not dupsorted + if !ok || !config.AutoDupSortKeysConversion { + return key + } + if len(key) != config.DupToLen { + return key + } + return append(key, value[:config.DupFromLen-config.DupToLen]...) +} + +// Current return the current key and values the cursor is on. +func (m *memoryMutationCursor) Current() ([]byte, []byte, error) { + if m.isTableCleared() { + return m.memCursor.Current() + } + return common.Copy(m.currentPair.key), common.Copy(m.currentPair.value), nil +} + +func (m *memoryMutationCursor) skipIntersection(memKey, memValue, dbKey, dbValue []byte, t NextType) (newDbKey []byte, newDbValue []byte, err error) { + newDbKey = dbKey + newDbValue = dbValue + config, ok := kv.ChaindataTablesCfg[m.table] + dupSortTable := ok && ((config.Flags & kv.DupSort) != 0) + autoKeyConversion := ok && config.AutoDupSortKeysConversion + dupsortOffset := 0 + if autoKeyConversion { + dupsortOffset = config.DupFromLen - config.DupToLen + } + // Check for duplicates + if bytes.Equal(memKey, dbKey) { + var skip bool + if t == Normal { + skip = !dupSortTable || autoKeyConversion || bytes.Equal(memValue, dbValue) + } else { + skip = bytes.Equal(memValue, dbValue) || + (dupsortOffset != 0 && len(memValue) >= dupsortOffset && len(dbValue) >= dupsortOffset && bytes.Equal(memValue[:dupsortOffset], dbValue[:dupsortOffset])) + } + if skip { + if newDbKey, newDbValue, err = m.getNextOnDb(t); err != nil { + return + } + } + } + return +} + +func (m *memoryMutationCursor) resolveCursorPriority(memKey, memValue, dbKey, dbValue []byte, t NextType) ([]byte, []byte, error) { + if memValue == nil && dbValue == nil { + return nil, nil, nil + } + + var err error + dbKey, dbValue, err = m.skipIntersection(memKey, memValue, dbKey, dbValue, t) + if err != nil { + return nil, nil, err + } + + m.currentDbEntry = cursorEntry{dbKey, dbValue} + m.currentMemEntry = cursorEntry{memKey, memValue} + // compare entries + if bytes.Equal(memKey, dbKey) { + m.isPrevFromDb = dbValue != nil && (memValue == nil || bytes.Compare(memValue, dbValue) > 0) + } else { + m.isPrevFromDb = dbValue != nil && (memKey == nil || bytes.Compare(memKey, dbKey) > 0) + } + if dbValue == nil { + m.currentDbEntry = cursorEntry{} + } + if memValue == nil { + m.currentMemEntry = cursorEntry{} + } + if m.isPrevFromDb { + m.currentPair = cursorEntry{dbKey, dbValue} + return dbKey, dbValue, nil + } + + m.currentPair = cursorEntry{memKey, memValue} + return memKey, memValue, nil +} + +// Next returns the next element of the mutation. +func (m *memoryMutationCursor) Next() ([]byte, []byte, error) { + if m.isTableCleared() { + return m.memCursor.Next() + } + + if m.isPrevFromDb { + k, v, err := m.getNextOnDb(Normal) + if err != nil { + return nil, nil, err + } + return m.resolveCursorPriority(m.currentMemEntry.key, m.currentMemEntry.value, k, v, Normal) + } + + memK, memV, err := m.memCursor.Next() + if err != nil { + return nil, nil, err + } + + return m.resolveCursorPriority(memK, memV, m.currentDbEntry.key, m.currentDbEntry.value, Normal) +} + +// NextDup returns the next element of the mutation. +func (m *memoryMutationCursor) NextDup() ([]byte, []byte, error) { + if m.isTableCleared() { + return m.memCursor.NextDup() + } + + if m.isPrevFromDb { + k, v, err := m.getNextOnDb(Dup) + + if err != nil { + return nil, nil, err + } + return m.resolveCursorPriority(m.currentMemEntry.key, m.currentMemEntry.value, k, v, Dup) + } + + memK, memV, err := m.memCursor.NextDup() + if err != nil { + return nil, nil, err + } + + return m.resolveCursorPriority(memK, memV, m.currentDbEntry.key, m.currentDbEntry.value, Dup) +} + +// Seek move pointer to a key at a certain position. +func (m *memoryMutationCursor) Seek(seek []byte) ([]byte, []byte, error) { + if m.isTableCleared() { + return m.memCursor.Seek(seek) + } + + dbKey, dbValue, err := m.cursor.Seek(seek) + if err != nil { + return nil, nil, err + } + + // If the entry is marked as deleted find one that is not + if dbKey != nil && m.isEntryDeleted(dbKey, dbValue, Normal) { + dbKey, dbValue, err = m.getNextOnDb(Normal) + if err != nil { + return nil, nil, err + } + } + + memKey, memValue, err := m.memCursor.Seek(seek) + if err != nil { + return nil, nil, err + } + + return m.resolveCursorPriority(memKey, memValue, dbKey, dbValue, Normal) +} + +// Seek move pointer to a key at a certain position. +func (m *memoryMutationCursor) SeekExact(seek []byte) ([]byte, []byte, error) { + memKey, memValue, err := m.memCursor.SeekExact(seek) + if err != nil || m.isTableCleared() { + return memKey, memValue, err + } + + if memKey != nil { + m.currentMemEntry.key = memKey + m.currentMemEntry.value = memValue + m.currentDbEntry.key, m.currentDbEntry.value, err = m.cursor.Seek(seek) + m.isPrevFromDb = false + m.currentPair = cursorEntry{memKey, memValue} + return memKey, memValue, err + } + + dbKey, dbValue, err := m.cursor.SeekExact(seek) + if err != nil { + return nil, nil, err + } + + if dbKey != nil && !m.mutation.isEntryDeleted(m.table, seek) { + m.currentDbEntry.key = dbKey + m.currentDbEntry.value = dbValue + m.currentMemEntry.key, m.currentMemEntry.value, err = m.memCursor.Seek(seek) + m.isPrevFromDb = true + m.currentPair = cursorEntry{dbKey, dbValue} + return dbKey, dbValue, err + } + return nil, nil, nil +} + +func (m *memoryMutationCursor) Put(k, v []byte) error { + return m.mutation.Put(m.table, common.Copy(k), common.Copy(v)) +} + +func (m *memoryMutationCursor) Append(k []byte, v []byte) error { + return m.mutation.Append(m.table, common.Copy(k), common.Copy(v)) + +} + +func (m *memoryMutationCursor) AppendDup(k []byte, v []byte) error { + return m.memCursor.AppendDup(common.Copy(k), common.Copy(v)) +} + +func (m *memoryMutationCursor) PutNoDupData(key, value []byte) error { + panic("Not implemented") +} + +func (m *memoryMutationCursor) Delete(k []byte) error { + return m.mutation.Delete(m.table, k) +} + +func (m *memoryMutationCursor) DeleteCurrent() error { + panic("DeleteCurrent Not implemented") +} +func (m *memoryMutationCursor) DeleteExact(_, _ []byte) error { + panic("DeleteExact Not implemented") +} + +func (m *memoryMutationCursor) DeleteCurrentDuplicates() error { + config, ok := kv.ChaindataTablesCfg[m.table] + autoKeyConversion := ok && config.AutoDupSortKeysConversion + if autoKeyConversion { + panic("DeleteCurrentDuplicates Not implemented for AutoDupSortKeysConversion tables") + } + + k, _, err := m.Current() + if err != nil { + return err + } + if k != nil { + return m.Delete(k) + } + return nil +} + +// Seek move pointer to a key at a certain position. +func (m *memoryMutationCursor) SeekBothRange(key, value []byte) ([]byte, error) { + if m.isTableCleared() { + return m.memCursor.SeekBothRange(key, value) + } + + dbValue, err := m.cursor.SeekBothRange(key, value) + if err != nil { + return nil, err + } + + if dbValue != nil && m.isEntryDeleted(key, dbValue, Dup) { + _, dbValue, err = m.getNextOnDb(Dup) + if err != nil { + return nil, err + } + } + + memValue, err := m.memCursor.SeekBothRange(key, value) + if err != nil { + return nil, err + } + _, retValue, err := m.resolveCursorPriority(key, memValue, key, dbValue, Dup) + return retValue, err +} + +func (m *memoryMutationCursor) Last() ([]byte, []byte, error) { + memKey, memValue, err := m.memCursor.Last() + if err != nil || m.isTableCleared() { + return memKey, memValue, err + } + + dbKey, dbValue, err := m.cursor.Last() + if err != nil { + return nil, nil, err + } + + dbKey, dbValue, err = m.skipIntersection(memKey, memValue, dbKey, dbValue, Normal) + if err != nil { + return nil, nil, err + } + + m.currentDbEntry = cursorEntry{dbKey, dbValue} + m.currentMemEntry = cursorEntry{memKey, memValue} + + // Basic checks + if dbKey != nil && m.isEntryDeleted(dbKey, dbValue, Normal) { + m.currentDbEntry = cursorEntry{} + m.isPrevFromDb = false + return memKey, memValue, nil + } + + if dbValue == nil { + m.isPrevFromDb = false + return memKey, memValue, nil + } + + if memValue == nil { + m.isPrevFromDb = true + return dbKey, dbValue, nil + } + // Check which one is last and return it + keyCompare := bytes.Compare(memKey, dbKey) + if keyCompare == 0 { + if bytes.Compare(memValue, dbValue) > 0 { + m.currentDbEntry = cursorEntry{} + m.isPrevFromDb = false + return memKey, memValue, nil + } + m.currentMemEntry = cursorEntry{} + m.isPrevFromDb = true + return dbKey, dbValue, nil + } + + if keyCompare > 0 { + m.currentDbEntry = cursorEntry{} + m.isPrevFromDb = false + return memKey, memValue, nil + } + + m.currentMemEntry = cursorEntry{} + m.isPrevFromDb = true + return dbKey, dbValue, nil +} + +func (m *memoryMutationCursor) Prev() ([]byte, []byte, error) { + panic("Prev is not implemented!") +} +func (m *memoryMutationCursor) PrevDup() ([]byte, []byte, error) { + panic("Prev is not implemented!") +} +func (m *memoryMutationCursor) PrevNoDup() ([]byte, []byte, error) { + panic("Prev is not implemented!") +} + +func (m *memoryMutationCursor) Close() { + if m.cursor != nil { + m.cursor.Close() + } + if m.memCursor != nil { + m.memCursor.Close() + } +} + +func (m *memoryMutationCursor) Count() (uint64, error) { + panic("Not implemented") +} + +func (m *memoryMutationCursor) FirstDup() ([]byte, error) { + panic("Not implemented") +} + +func (m *memoryMutationCursor) NextNoDup() ([]byte, []byte, error) { + if m.isTableCleared() { + return m.memCursor.NextNoDup() + } + + if m.isPrevFromDb { + k, v, err := m.getNextOnDb(NoDup) + if err != nil { + return nil, nil, err + } + return m.resolveCursorPriority(m.currentMemEntry.key, m.currentMemEntry.value, k, v, NoDup) + } + + memK, memV, err := m.memCursor.NextNoDup() + if err != nil { + return nil, nil, err + } + + return m.resolveCursorPriority(memK, memV, m.currentDbEntry.key, m.currentDbEntry.value, NoDup) +} + +func (m *memoryMutationCursor) LastDup() ([]byte, error) { + panic("Not implemented") +} + +func (m *memoryMutationCursor) CountDuplicates() (uint64, error) { + panic("Not implemented") +} + +func (m *memoryMutationCursor) SeekBothExact(key, value []byte) ([]byte, []byte, error) { + panic("SeekBothExact Not implemented") +} diff --git a/erigon-lib/kv/membatchwithdb/memory_mutation_diff.go b/erigon-lib/kv/membatchwithdb/memory_mutation_diff.go new file mode 100644 index 00000000000..ed8b12fdb73 --- /dev/null +++ b/erigon-lib/kv/membatchwithdb/memory_mutation_diff.go @@ -0,0 +1,58 @@ +package membatchwithdb + +import "github.com/ledgerwatch/erigon-lib/kv" + +type entry struct { + k []byte + v []byte +} + +type MemoryDiff struct { + diff map[table][]entry // god. + deletedEntries map[string][]string + clearedTableNames []string +} + +type table struct { + name string + dupsort bool +} + +func (m *MemoryDiff) Flush(tx kv.RwTx) error { + // Obliterate buckets who are to be deleted + for _, bucket := range m.clearedTableNames { + if err := tx.ClearBucket(bucket); err != nil { + return err + } + } + // Obliterate entries who are to be deleted + for bucket, keys := range m.deletedEntries { + for _, key := range keys { + if err := tx.Delete(bucket, []byte(key)); err != nil { + return err + } + } + } + // Iterate over each bucket and apply changes accordingly. + for bucketInfo, bucketDiff := range m.diff { + if bucketInfo.dupsort { + dbCursor, err := tx.RwCursorDupSort(bucketInfo.name) + if err != nil { + return err + } + defer dbCursor.Close() + for _, entry := range bucketDiff { + if err := dbCursor.Put(entry.k, entry.v); err != nil { + return err + } + } + } else { + for _, entry := range bucketDiff { + if err := tx.Put(bucketInfo.name, entry.k, entry.v); err != nil { + return err + } + } + } + } + return nil +} diff --git a/erigon-lib/kv/membatchwithdb/memory_mutation_test.go b/erigon-lib/kv/membatchwithdb/memory_mutation_test.go new file mode 100644 index 00000000000..6bbc7d00da6 --- /dev/null +++ b/erigon-lib/kv/membatchwithdb/memory_mutation_test.go @@ -0,0 +1,667 @@ +/* + Copyright 2022 Erigon contributors + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package membatchwithdb + +import ( + "testing" + + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/ledgerwatch/erigon-lib/kv" +) + +func initializeDbNonDupSort(rwTx kv.RwTx) { + rwTx.Put(kv.HashedAccounts, []byte("AAAA"), []byte("value")) + rwTx.Put(kv.HashedAccounts, []byte("CAAA"), []byte("value1")) + rwTx.Put(kv.HashedAccounts, []byte("CBAA"), []byte("value2")) + rwTx.Put(kv.HashedAccounts, []byte("CCAA"), []byte("value3")) +} + +func TestPutAppendHas(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + require.NoError(t, batch.Append(kv.HashedAccounts, []byte("AAAA"), []byte("value1.5"))) + require.Error(t, batch.Append(kv.HashedAccounts, []byte("AAAA"), []byte("value1.3"))) + require.NoError(t, batch.Put(kv.HashedAccounts, []byte("AAAA"), []byte("value1.3"))) + require.NoError(t, batch.Append(kv.HashedAccounts, []byte("CBAA"), []byte("value3.5"))) + require.Error(t, batch.Append(kv.HashedAccounts, []byte("CBAA"), []byte("value3.1"))) + require.NoError(t, batch.AppendDup(kv.HashedAccounts, []byte("CBAA"), []byte("value3.1"))) + require.Error(t, batch.Append(kv.HashedAccounts, []byte("AAAA"), []byte("value1.3"))) + + require.Nil(t, batch.Flush(rwTx)) + + exist, err := batch.Has(kv.HashedAccounts, []byte("AAAA")) + require.Nil(t, err) + require.Equal(t, exist, true) + + val, err := batch.GetOne(kv.HashedAccounts, []byte("AAAA")) + require.Nil(t, err) + require.Equal(t, val, []byte("value1.3")) + + exist, err = batch.Has(kv.HashedAccounts, []byte("KKKK")) + require.Nil(t, err) + require.Equal(t, exist, false) +} + +func TestLastMiningDB(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + batch.Put(kv.HashedAccounts, []byte("BAAA"), []byte("value4")) + batch.Put(kv.HashedAccounts, []byte("BCAA"), []byte("value5")) + + cursor, err := batch.Cursor(kv.HashedAccounts) + require.NoError(t, err) + + key, value, err := cursor.Last() + require.NoError(t, err) + + require.Equal(t, key, []byte("CCAA")) + require.Equal(t, value, []byte("value3")) + + key, value, err = cursor.Next() + require.NoError(t, err) + require.Equal(t, key, []byte(nil)) + require.Equal(t, value, []byte(nil)) +} + +func TestLastMiningMem(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + batch.Put(kv.HashedAccounts, []byte("BAAA"), []byte("value4")) + batch.Put(kv.HashedAccounts, []byte("DCAA"), []byte("value5")) + + cursor, err := batch.Cursor(kv.HashedAccounts) + require.NoError(t, err) + + key, value, err := cursor.Last() + require.NoError(t, err) + + require.Equal(t, key, []byte("DCAA")) + require.Equal(t, value, []byte("value5")) + + key, value, err = cursor.Next() + require.NoError(t, err) + require.Equal(t, key, []byte(nil)) + require.Equal(t, value, []byte(nil)) +} + +func TestDeleteMining(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + batch := NewMemoryBatch(rwTx, "") + batch.Put(kv.HashedAccounts, []byte("BAAA"), []byte("value4")) + batch.Put(kv.HashedAccounts, []byte("DCAA"), []byte("value5")) + batch.Put(kv.HashedAccounts, []byte("FCAA"), []byte("value5")) + + batch.Delete(kv.HashedAccounts, []byte("BAAA")) + batch.Delete(kv.HashedAccounts, []byte("CBAA")) + + cursor, err := batch.Cursor(kv.HashedAccounts) + require.NoError(t, err) + + key, value, err := cursor.SeekExact([]byte("BAAA")) + require.NoError(t, err) + require.Equal(t, key, []byte(nil)) + require.Equal(t, value, []byte(nil)) + + key, value, err = cursor.SeekExact([]byte("CBAA")) + require.NoError(t, err) + require.Equal(t, key, []byte(nil)) + require.Equal(t, value, []byte(nil)) +} + +func TestFlush(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + batch := NewMemoryBatch(rwTx, "") + batch.Put(kv.HashedAccounts, []byte("BAAA"), []byte("value4")) + batch.Put(kv.HashedAccounts, []byte("AAAA"), []byte("value5")) + batch.Put(kv.HashedAccounts, []byte("FCAA"), []byte("value5")) + + require.NoError(t, batch.Flush(rwTx)) + + value, err := rwTx.GetOne(kv.HashedAccounts, []byte("BAAA")) + require.NoError(t, err) + require.Equal(t, value, []byte("value4")) + + value, err = rwTx.GetOne(kv.HashedAccounts, []byte("AAAA")) + require.NoError(t, err) + require.Equal(t, value, []byte("value5")) +} + +func TestForEach(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + batch.Put(kv.HashedAccounts, []byte("FCAA"), []byte("value5")) + require.NoError(t, batch.Flush(rwTx)) + + var keys []string + var values []string + err := batch.ForEach(kv.HashedAccounts, []byte("XYAZ"), func(k, v []byte) error { + keys = append(keys, string(k)) + values = append(values, string(v)) + return nil + }) + require.Nil(t, err) + require.Nil(t, keys) + require.Nil(t, values) + + err = batch.ForEach(kv.HashedAccounts, []byte("CC"), func(k, v []byte) error { + keys = append(keys, string(k)) + values = append(values, string(v)) + return nil + }) + require.Nil(t, err) + require.Equal(t, []string{"CCAA", "FCAA"}, keys) + require.Equal(t, []string{"value3", "value5"}, values) + + var keys1 []string + var values1 []string + + err = batch.ForEach(kv.HashedAccounts, []byte("A"), func(k, v []byte) error { + keys1 = append(keys1, string(k)) + values1 = append(values1, string(v)) + return nil + }) + require.Nil(t, err) + require.Equal(t, []string{"AAAA", "CAAA", "CBAA", "CCAA", "FCAA"}, keys1) + require.Equal(t, []string{"value", "value1", "value2", "value3", "value5"}, values1) +} + +func TestForPrefix(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + var keys1 []string + var values1 []string + + err := batch.ForPrefix(kv.HashedAccounts, []byte("AB"), func(k, v []byte) error { + keys1 = append(keys1, string(k)) + values1 = append(values1, string(v)) + return nil + }) + require.Nil(t, err) + require.Nil(t, keys1) + require.Nil(t, values1) + + err = batch.ForPrefix(kv.HashedAccounts, []byte("AAAA"), func(k, v []byte) error { + keys1 = append(keys1, string(k)) + values1 = append(values1, string(v)) + return nil + }) + require.Nil(t, err) + require.Equal(t, []string{"AAAA"}, keys1) + require.Equal(t, []string{"value"}, values1) + + var keys []string + var values []string + err = batch.ForPrefix(kv.HashedAccounts, []byte("C"), func(k, v []byte) error { + keys = append(keys, string(k)) + values = append(values, string(v)) + return nil + }) + require.Nil(t, err) + require.Equal(t, []string{"CAAA", "CBAA", "CCAA"}, keys) + require.Equal(t, []string{"value1", "value2", "value3"}, values) +} + +func TestForAmount(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + var keys []string + var values []string + err := batch.ForAmount(kv.HashedAccounts, []byte("C"), uint32(3), func(k, v []byte) error { + keys = append(keys, string(k)) + values = append(values, string(v)) + return nil + }) + + require.Nil(t, err) + require.Equal(t, []string{"CAAA", "CBAA", "CCAA"}, keys) + require.Equal(t, []string{"value1", "value2", "value3"}, values) + + var keys1 []string + var values1 []string + err = batch.ForAmount(kv.HashedAccounts, []byte("C"), uint32(10), func(k, v []byte) error { + keys1 = append(keys1, string(k)) + values1 = append(values1, string(v)) + return nil + }) + + require.Nil(t, err) + require.Equal(t, []string{"CAAA", "CBAA", "CCAA"}, keys1) + require.Equal(t, []string{"value1", "value2", "value3"}, values1) +} + +func TestGetOneAfterClearBucket(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + err := batch.ClearBucket(kv.HashedAccounts) + require.Nil(t, err) + + cond := batch.isTableCleared(kv.HashedAccounts) + require.True(t, cond) + + val, err := batch.GetOne(kv.HashedAccounts, []byte("A")) + require.Nil(t, err) + require.Nil(t, val) + + val, err = batch.GetOne(kv.HashedAccounts, []byte("AAAA")) + require.Nil(t, err) + require.Nil(t, val) +} + +func TestSeekExactAfterClearBucket(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + err := batch.ClearBucket(kv.HashedAccounts) + require.Nil(t, err) + + cond := batch.isTableCleared(kv.HashedAccounts) + require.True(t, cond) + + cursor, err := batch.RwCursor(kv.HashedAccounts) + require.NoError(t, err) + + key, val, err := cursor.SeekExact([]byte("AAAA")) + require.Nil(t, err) + assert.Nil(t, key) + assert.Nil(t, val) + + err = cursor.Put([]byte("AAAA"), []byte("valueX")) + require.Nil(t, err) + + key, val, err = cursor.SeekExact([]byte("AAAA")) + require.Nil(t, err) + assert.Equal(t, []byte("AAAA"), key) + assert.Equal(t, []byte("valueX"), val) + + key, val, err = cursor.SeekExact([]byte("BBBB")) + require.Nil(t, err) + assert.Nil(t, key) + assert.Nil(t, val) +} + +func TestFirstAfterClearBucket(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + err := batch.ClearBucket(kv.HashedAccounts) + require.Nil(t, err) + + err = batch.Put(kv.HashedAccounts, []byte("BBBB"), []byte("value5")) + require.Nil(t, err) + + cursor, err := batch.Cursor(kv.HashedAccounts) + require.NoError(t, err) + + key, val, err := cursor.First() + require.Nil(t, err) + assert.Equal(t, []byte("BBBB"), key) + assert.Equal(t, []byte("value5"), val) + + key, val, err = cursor.Next() + require.Nil(t, err) + assert.Nil(t, key) + assert.Nil(t, val) +} + +func TestIncReadSequence(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbNonDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + _, err := batch.IncrementSequence(kv.HashedAccounts, uint64(12)) + require.Nil(t, err) + + val, err := batch.ReadSequence(kv.HashedAccounts) + require.Nil(t, err) + require.Equal(t, val, uint64(12)) +} + +func initializeDbDupSort(rwTx kv.RwTx) { + rwTx.Put(kv.AccountChangeSet, []byte("key1"), []byte("value1.1")) + rwTx.Put(kv.AccountChangeSet, []byte("key3"), []byte("value3.1")) + rwTx.Put(kv.AccountChangeSet, []byte("key1"), []byte("value1.3")) + rwTx.Put(kv.AccountChangeSet, []byte("key3"), []byte("value3.3")) +} + +func TestNext(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + batch.Put(kv.AccountChangeSet, []byte("key1"), []byte("value1.2")) + + cursor, err := batch.CursorDupSort(kv.AccountChangeSet) + require.NoError(t, err) + + k, v, err := cursor.First() + require.Nil(t, err) + assert.Equal(t, []byte("key1"), k) + assert.Equal(t, []byte("value1.1"), v) + + k, v, err = cursor.Next() + require.Nil(t, err) + assert.Equal(t, []byte("key1"), k) + assert.Equal(t, []byte("value1.2"), v) + + k, v, err = cursor.Next() + require.Nil(t, err) + assert.Equal(t, []byte("key1"), k) + assert.Equal(t, []byte("value1.3"), v) + + k, v, err = cursor.Next() + require.Nil(t, err) + assert.Equal(t, []byte("key3"), k) + assert.Equal(t, []byte("value3.1"), v) + + k, v, err = cursor.Next() + require.Nil(t, err) + assert.Equal(t, []byte("key3"), k) + assert.Equal(t, []byte("value3.3"), v) + + k, v, err = cursor.Next() + require.Nil(t, err) + assert.Nil(t, k) + assert.Nil(t, v) +} + +func TestNextNoDup(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + batch.Put(kv.AccountChangeSet, []byte("key2"), []byte("value2.1")) + batch.Put(kv.AccountChangeSet, []byte("key2"), []byte("value2.2")) + + cursor, err := batch.CursorDupSort(kv.AccountChangeSet) + require.NoError(t, err) + + k, _, err := cursor.First() + require.Nil(t, err) + assert.Equal(t, []byte("key1"), k) + + k, _, err = cursor.NextNoDup() + require.Nil(t, err) + assert.Equal(t, []byte("key2"), k) + + k, _, err = cursor.NextNoDup() + require.Nil(t, err) + assert.Equal(t, []byte("key3"), k) +} + +func TestDeleteCurrentDuplicates(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbDupSort(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + cursor, err := batch.RwCursorDupSort(kv.AccountChangeSet) + require.NoError(t, err) + + require.NoError(t, cursor.Put([]byte("key3"), []byte("value3.2"))) + + key, _, err := cursor.SeekExact([]byte("key3")) + require.NoError(t, err) + require.Equal(t, []byte("key3"), key) + + require.NoError(t, cursor.DeleteCurrentDuplicates()) + + require.NoError(t, batch.Flush(rwTx)) + + var keys []string + var values []string + err = rwTx.ForEach(kv.AccountChangeSet, nil, func(k, v []byte) error { + keys = append(keys, string(k)) + values = append(values, string(v)) + return nil + }) + require.NoError(t, err) + + require.Equal(t, []string{"key1", "key1"}, keys) + require.Equal(t, []string{"value1.1", "value1.3"}, values) +} + +func TestSeekBothRange(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + rwTx.Put(kv.AccountChangeSet, []byte("key1"), []byte("value1.1")) + rwTx.Put(kv.AccountChangeSet, []byte("key3"), []byte("value3.3")) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + cursor, err := batch.RwCursorDupSort(kv.AccountChangeSet) + require.NoError(t, err) + + require.NoError(t, cursor.Put([]byte("key3"), []byte("value3.1"))) + require.NoError(t, cursor.Put([]byte("key1"), []byte("value1.3"))) + + v, err := cursor.SeekBothRange([]byte("key2"), []byte("value1.2")) + require.NoError(t, err) + // SeekBothRange does exact match of the key, but range match of the value, so we get nil here + require.Nil(t, v) + + v, err = cursor.SeekBothRange([]byte("key3"), []byte("value3.2")) + require.NoError(t, err) + require.Equal(t, "value3.3", string(v)) +} + +func initializeDbAutoConversion(rwTx kv.RwTx) { + rwTx.Put(kv.PlainState, []byte("A"), []byte("0")) + rwTx.Put(kv.PlainState, []byte("A..........................._______________________________A"), []byte("1")) + rwTx.Put(kv.PlainState, []byte("A..........................._______________________________C"), []byte("2")) + rwTx.Put(kv.PlainState, []byte("B"), []byte("8")) + rwTx.Put(kv.PlainState, []byte("C"), []byte("9")) + rwTx.Put(kv.PlainState, []byte("D..........................._______________________________A"), []byte("3")) + rwTx.Put(kv.PlainState, []byte("D..........................._______________________________C"), []byte("4")) +} + +func TestAutoConversion(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbAutoConversion(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + c, err := batch.RwCursor(kv.PlainState) + require.NoError(t, err) + + // key length conflict + require.Error(t, c.Put([]byte("A..........................."), []byte("?"))) + + require.NoError(t, c.Delete([]byte("A..........................._______________________________A"))) + require.NoError(t, c.Put([]byte("B"), []byte("7"))) + require.NoError(t, c.Delete([]byte("C"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________C"), []byte("6"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________E"), []byte("5"))) + + k, v, err := c.First() + require.NoError(t, err) + assert.Equal(t, []byte("A"), k) + assert.Equal(t, []byte("0"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("A..........................._______________________________C"), k) + assert.Equal(t, []byte("2"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("B"), k) + assert.Equal(t, []byte("7"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("D..........................._______________________________A"), k) + assert.Equal(t, []byte("3"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("D..........................._______________________________C"), k) + assert.Equal(t, []byte("6"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("D..........................._______________________________E"), k) + assert.Equal(t, []byte("5"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Nil(t, k) + assert.Nil(t, v) +} + +func TestAutoConversionDelete(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbAutoConversion(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + c, err := batch.RwCursor(kv.PlainState) + require.NoError(t, err) + + require.NoError(t, c.Delete([]byte("A..........................._______________________________A"))) + require.NoError(t, c.Delete([]byte("A..........................._______________________________C"))) + require.NoError(t, c.Delete([]byte("B"))) + require.NoError(t, c.Delete([]byte("C"))) + + k, v, err := c.First() + require.NoError(t, err) + assert.Equal(t, []byte("A"), k) + assert.Equal(t, []byte("0"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("D..........................._______________________________A"), k) + assert.Equal(t, []byte("3"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Equal(t, []byte("D..........................._______________________________C"), k) + assert.Equal(t, []byte("4"), v) + + k, v, err = c.Next() + require.NoError(t, err) + assert.Nil(t, k) + assert.Nil(t, v) +} + +func TestAutoConversionSeekBothRange(t *testing.T) { + _, rwTx := memdb.NewTestTx(t) + + initializeDbAutoConversion(rwTx) + + batch := NewMemoryBatch(rwTx, "") + defer batch.Close() + + c, err := batch.RwCursorDupSort(kv.PlainState) + require.NoError(t, err) + + require.NoError(t, c.Delete([]byte("A..........................._______________________________A"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________C"), []byte("6"))) + require.NoError(t, c.Put([]byte("D..........................._______________________________E"), []byte("5"))) + + v, err := c.SeekBothRange([]byte("A..........................."), []byte("_______________________________A")) + require.NoError(t, err) + assert.Equal(t, []byte("_______________________________C2"), v) + + _, v, err = c.NextDup() + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("A..........................."), []byte("_______________________________X")) + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("B..........................."), []byte("")) + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("C..........................."), []byte("")) + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("D..........................."), []byte("")) + require.NoError(t, err) + assert.Equal(t, []byte("_______________________________A3"), v) + + _, v, err = c.NextDup() + require.NoError(t, err) + assert.Equal(t, []byte("_______________________________C6"), v) + + _, v, err = c.NextDup() + require.NoError(t, err) + assert.Equal(t, []byte("_______________________________E5"), v) + + _, v, err = c.NextDup() + require.NoError(t, err) + assert.Nil(t, v) + + v, err = c.SeekBothRange([]byte("X..........................."), []byte("_______________________________Y")) + require.NoError(t, err) + assert.Nil(t, v) +} diff --git a/erigon-lib/kv/memdb/memory_database.go b/erigon-lib/kv/memdb/memory_database.go new file mode 100644 index 00000000000..57b90680d5f --- /dev/null +++ b/erigon-lib/kv/memdb/memory_database.go @@ -0,0 +1,132 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package memdb + +import ( + "context" + "testing" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/log/v3" +) + +func New(tmpDir string) kv.RwDB { + return mdbx.NewMDBX(log.New()).InMem(tmpDir).MustOpen() +} + +func NewPoolDB(tmpDir string) kv.RwDB { + return mdbx.NewMDBX(log.New()).InMem(tmpDir).Label(kv.TxPoolDB).WithTableCfg(func(_ kv.TableCfg) kv.TableCfg { return kv.TxpoolTablesCfg }).MustOpen() +} +func NewDownloaderDB(tmpDir string) kv.RwDB { + return mdbx.NewMDBX(log.New()).InMem(tmpDir).Label(kv.DownloaderDB).WithTableCfg(func(_ kv.TableCfg) kv.TableCfg { return kv.DownloaderTablesCfg }).MustOpen() +} +func NewSentryDB(tmpDir string) kv.RwDB { + return mdbx.NewMDBX(log.New()).InMem(tmpDir).Label(kv.SentryDB).WithTableCfg(func(_ kv.TableCfg) kv.TableCfg { return kv.SentryTablesCfg }).MustOpen() +} + +func NewTestDB(tb testing.TB) kv.RwDB { + tb.Helper() + tmpDir := tb.TempDir() + tb.Helper() + db := New(tmpDir) + tb.Cleanup(db.Close) + return db +} + +func BeginRw(tb testing.TB, db kv.RwDB) kv.RwTx { + tb.Helper() + tx, err := db.BeginRw(context.Background()) + if err != nil { + tb.Fatal(err) + } + tb.Cleanup(tx.Rollback) + return tx +} + +func BeginRo(tb testing.TB, db kv.RoDB) kv.Tx { + tb.Helper() + tx, err := db.BeginRo(context.Background()) + if err != nil { + tb.Fatal(err) + } + tb.Cleanup(tx.Rollback) + return tx +} + +func NewTestPoolDB(tb testing.TB) kv.RwDB { + tb.Helper() + tmpDir := tb.TempDir() + db := NewPoolDB(tmpDir) + tb.Cleanup(db.Close) + return db +} + +func NewTestDownloaderDB(tb testing.TB) kv.RwDB { + tb.Helper() + tmpDir := tb.TempDir() + db := NewDownloaderDB(tmpDir) + tb.Cleanup(db.Close) + return db +} + +func NewTestSentrylDB(tb testing.TB) kv.RwDB { + tb.Helper() + tmpDir := tb.TempDir() + db := NewPoolDB(tmpDir) + tb.Cleanup(db.Close) + return db +} + +func NewTestTx(tb testing.TB) (kv.RwDB, kv.RwTx) { + tb.Helper() + tmpDir := tb.TempDir() + db := New(tmpDir) + tb.Cleanup(db.Close) + tx, err := db.BeginRw(context.Background()) + if err != nil { + tb.Fatal(err) + } + tb.Cleanup(tx.Rollback) + return db, tx +} + +func NewTestPoolTx(tb testing.TB) (kv.RwDB, kv.RwTx) { + tb.Helper() + db := NewTestPoolDB(tb) + tx, err := db.BeginRw(context.Background()) //nolint + if err != nil { + tb.Fatal(err) + } + if tb != nil { + tb.Cleanup(tx.Rollback) + } + return db, tx +} + +func NewTestSentryTx(tb testing.TB) (kv.RwDB, kv.RwTx) { + tb.Helper() + db := NewTestSentrylDB(tb) + tx, err := db.BeginRw(context.Background()) //nolint + if err != nil { + tb.Fatal(err) + } + if tb != nil { + tb.Cleanup(tx.Rollback) + } + return db, tx +} diff --git a/erigon-lib/kv/order/order.go b/erigon-lib/kv/order/order.go new file mode 100644 index 00000000000..d8e3d05081b --- /dev/null +++ b/erigon-lib/kv/order/order.go @@ -0,0 +1,24 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package order + +type By bool + +const ( + Asc By = true + Desc By = false +) diff --git a/erigon-lib/kv/rawdbv3/txnum.go b/erigon-lib/kv/rawdbv3/txnum.go new file mode 100644 index 00000000000..f01bae47650 --- /dev/null +++ b/erigon-lib/kv/rawdbv3/txnum.go @@ -0,0 +1,234 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package rawdbv3 + +import ( + "encoding/binary" + "fmt" + "sort" + + "github.com/ledgerwatch/erigon-lib/kv" +) + +type txNums struct{} + +var TxNums txNums + +// Min - returns maxTxNum in given block. If block not found - return last available value (`latest`/`pending` state) +func (txNums) Max(tx kv.Tx, blockNum uint64) (maxTxNum uint64, err error) { + var k [8]byte + binary.BigEndian.PutUint64(k[:], blockNum) + c, err := tx.Cursor(kv.MaxTxNum) + if err != nil { + return 0, err + } + defer c.Close() + _, v, err := c.SeekExact(k[:]) + if err != nil { + return 0, err + } + if len(v) == 0 { + _, v, err = c.Last() + if err != nil { + return 0, err + } + if len(v) == 0 { + return 0, nil + } + } + return binary.BigEndian.Uint64(v), nil +} + +// Min = `max(blockNum-1)+1` returns minTxNum in given block. If block not found - return last available value (`latest`/`pending` state) +func (txNums) Min(tx kv.Tx, blockNum uint64) (maxTxNum uint64, err error) { + if blockNum == 0 { + return 0, nil + } + var k [8]byte + binary.BigEndian.PutUint64(k[:], blockNum-1) + c, err := tx.Cursor(kv.MaxTxNum) + if err != nil { + return 0, err + } + defer c.Close() + + _, v, err := c.SeekExact(k[:]) + if err != nil { + return 0, err + } + if len(v) == 0 { + _, v, err = c.Last() + if err != nil { + return 0, err + } + if len(v) == 0 { + return 0, nil + } + } + return binary.BigEndian.Uint64(v) + 1, nil +} + +func (txNums) Append(tx kv.RwTx, blockNum, maxTxNum uint64) (err error) { + lastK, err := LastKey(tx, kv.MaxTxNum) + if err != nil { + return err + } + if len(lastK) != 0 { + lastBlockNum := binary.BigEndian.Uint64(lastK) + if lastBlockNum > 1 && lastBlockNum+1 != blockNum { //allow genesis + return fmt.Errorf("append with gap blockNum=%d, but current heigh=%d", blockNum, lastBlockNum) + } + } + + var k, v [8]byte + binary.BigEndian.PutUint64(k[:], blockNum) + binary.BigEndian.PutUint64(v[:], maxTxNum) + if err := tx.Append(kv.MaxTxNum, k[:], v[:]); err != nil { + return err + } + return nil +} +func (txNums) WriteForGenesis(tx kv.RwTx, maxTxNum uint64) (err error) { + var k, v [8]byte + binary.BigEndian.PutUint64(k[:], 0) + binary.BigEndian.PutUint64(v[:], maxTxNum) + return tx.Put(kv.MaxTxNum, k[:], v[:]) +} +func (txNums) Truncate(tx kv.RwTx, blockNum uint64) (err error) { + var seek [8]byte + binary.BigEndian.PutUint64(seek[:], blockNum) + c, err := tx.RwCursor(kv.MaxTxNum) + if err != nil { + return err + } + defer c.Close() + for k, _, err := c.Seek(seek[:]); k != nil; k, _, err = c.Next() { + if err != nil { + return err + } + if err = c.DeleteCurrent(); err != nil { + return err + } + + } + return nil +} +func (txNums) FindBlockNum(tx kv.Tx, endTxNumMinimax uint64) (ok bool, blockNum uint64, err error) { + var seek [8]byte + c, err := tx.Cursor(kv.MaxTxNum) + if err != nil { + return false, 0, err + } + defer c.Close() + + cnt, err := c.Count() + if err != nil { + return false, 0, err + } + + blockNum = uint64(sort.Search(int(cnt), func(i int) bool { + binary.BigEndian.PutUint64(seek[:], uint64(i)) + var v []byte + _, v, err = c.SeekExact(seek[:]) + return binary.BigEndian.Uint64(v) >= endTxNumMinimax + })) + if err != nil { + return false, 0, err + } + if blockNum == cnt { + return false, 0, nil + } + return true, blockNum, nil +} +func (txNums) Last(tx kv.Tx) (blockNum, txNum uint64, err error) { + c, err := tx.Cursor(kv.MaxTxNum) + if err != nil { + return 0, 0, err + } + defer c.Close() + + lastK, lastV, err := c.Last() + if err != nil { + return 0, 0, err + } + if lastK == nil || lastV == nil { + return 0, 0, nil + } + return binary.BigEndian.Uint64(lastK), binary.BigEndian.Uint64(lastV), nil +} +func (txNums) First(tx kv.Tx) (blockNum, txNum uint64, err error) { + c, err := tx.Cursor(kv.MaxTxNum) + if err != nil { + return 0, 0, err + } + defer c.Close() + + lastK, lastV, err := c.First() + if err != nil { + return 0, 0, err + } + if lastK == nil || lastV == nil { + return 0, 0, nil + } + return binary.BigEndian.Uint64(lastK), binary.BigEndian.Uint64(lastV), nil +} + +// LastKey +func LastKey(tx kv.Tx, table string) ([]byte, error) { + c, err := tx.Cursor(table) + if err != nil { + return nil, err + } + defer c.Close() + k, _, err := c.Last() + if err != nil { + return nil, err + } + return k, nil +} + +// Last - candidate on move to kv.Tx interface +func Last(tx kv.Tx, table string) ([]byte, []byte, error) { + c, err := tx.Cursor(table) + if err != nil { + return nil, nil, err + } + defer c.Close() + k, v, err := c.Last() + if err != nil { + return nil, nil, err + } + return k, v, nil +} + +// SecondKey - useful if table always has zero-key (for example genesis block) +func SecondKey(tx kv.Tx, table string) ([]byte, error) { + c, err := tx.Cursor(table) + if err != nil { + return nil, err + } + defer c.Close() + _, _, err = c.First() + if err != nil { + return nil, err + } + k, _, err := c.Next() + if err != nil { + return nil, err + } + return k, nil +} diff --git a/erigon-lib/kv/remotedb/kv_remote.go b/erigon-lib/kv/remotedb/kv_remote.go new file mode 100644 index 00000000000..7df14ae88de --- /dev/null +++ b/erigon-lib/kv/remotedb/kv_remote.go @@ -0,0 +1,737 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package remotedb + +import ( + "bytes" + "context" + "encoding/binary" + "fmt" + "runtime" + "unsafe" + + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/log/v3" + "golang.org/x/sync/semaphore" + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/emptypb" + + "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/grpcutil" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/kv" +) + +// generate the messages and services +type remoteOpts struct { + remoteKV remote.KVClient + log log.Logger + bucketsCfg kv.TableCfg + DialAddress string + version gointerfaces.Version +} + +var _ kv.TemporalTx = (*tx)(nil) + +type DB struct { + remoteKV remote.KVClient + log log.Logger + buckets kv.TableCfg + roTxsLimiter *semaphore.Weighted + opts remoteOpts +} + +type tx struct { + stream remote.KV_TxClient + ctx context.Context + streamCancelFn context.CancelFunc + db *DB + statelessCursors map[string]kv.Cursor + cursors []*remoteCursor + streams []kv.Closer + viewID, id uint64 + streamingRequested bool +} + +type remoteCursor struct { + ctx context.Context + stream remote.KV_TxClient + tx *tx + bucketName string + bucketCfg kv.TableCfgItem + id uint32 +} + +type remoteCursorDupSort struct { + *remoteCursor +} + +func (opts remoteOpts) ReadOnly() remoteOpts { + return opts +} + +func (opts remoteOpts) WithBucketsConfig(c kv.TableCfg) remoteOpts { + opts.bucketsCfg = c + return opts +} + +func (opts remoteOpts) Open() (*DB, error) { + targetSemCount := int64(runtime.GOMAXPROCS(-1)) - 1 + if targetSemCount <= 1 { + targetSemCount = 2 + } + + db := &DB{ + opts: opts, + remoteKV: opts.remoteKV, + log: log.New("remote_db", opts.DialAddress), + buckets: kv.TableCfg{}, + roTxsLimiter: semaphore.NewWeighted(targetSemCount), // 1 less than max to allow unlocking + } + customBuckets := opts.bucketsCfg + for name, cfg := range customBuckets { // copy map to avoid changing global variable + db.buckets[name] = cfg + } + + return db, nil +} + +func (opts remoteOpts) MustOpen() kv.RwDB { + db, err := opts.Open() + if err != nil { + panic(err) + } + return db +} + +// NewRemote defines new remove KV connection (without actually opening it) +// version parameters represent the version the KV client is expecting, +// compatibility check will be performed when the KV connection opens +func NewRemote(v gointerfaces.Version, logger log.Logger, remoteKV remote.KVClient) remoteOpts { + return remoteOpts{bucketsCfg: kv.ChaindataTablesCfg, version: v, log: logger, remoteKV: remoteKV} +} + +func (db *DB) PageSize() uint64 { panic("not implemented") } +func (db *DB) ReadOnly() bool { return true } +func (db *DB) AllTables() kv.TableCfg { return db.buckets } + +func (db *DB) EnsureVersionCompatibility() bool { + versionReply, err := db.remoteKV.Version(context.Background(), &emptypb.Empty{}, grpc.WaitForReady(true)) + if err != nil { + db.log.Error("getting Version", "error", err) + return false + } + if !gointerfaces.EnsureVersion(db.opts.version, versionReply) { + db.log.Error("incompatible interface versions", "client", db.opts.version.String(), + "server", fmt.Sprintf("%d.%d.%d", versionReply.Major, versionReply.Minor, versionReply.Patch)) + return false + } + db.log.Info("interfaces compatible", "client", db.opts.version.String(), + "server", fmt.Sprintf("%d.%d.%d", versionReply.Major, versionReply.Minor, versionReply.Patch)) + return true +} + +func (db *DB) Close() {} + +func (db *DB) CHandle() unsafe.Pointer { + panic("CHandle not implemented") +} + +func (db *DB) BeginRo(ctx context.Context) (txn kv.Tx, err error) { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + + if semErr := db.roTxsLimiter.Acquire(ctx, 1); semErr != nil { + return nil, semErr + } + + defer func() { + // ensure we release the semaphore on error + if txn == nil { + db.roTxsLimiter.Release(1) + } + }() + + streamCtx, streamCancelFn := context.WithCancel(ctx) // We create child context for the stream so we can cancel it to prevent leak + stream, err := db.remoteKV.Tx(streamCtx) + if err != nil { + streamCancelFn() + return nil, err + } + msg, err := stream.Recv() + if err != nil { + streamCancelFn() + return nil, err + } + return &tx{ctx: ctx, db: db, stream: stream, streamCancelFn: streamCancelFn, viewID: msg.ViewId, id: msg.TxId}, nil +} +func (db *DB) BeginTemporalRo(ctx context.Context) (kv.TemporalTx, error) { + t, err := db.BeginRo(ctx) + if err != nil { + return nil, err + } + return t.(kv.TemporalTx), nil +} +func (db *DB) BeginRw(ctx context.Context) (kv.RwTx, error) { + return nil, fmt.Errorf("remote db provider doesn't support .BeginRw method") +} +func (db *DB) BeginRwNosync(ctx context.Context) (kv.RwTx, error) { + return nil, fmt.Errorf("remote db provider doesn't support .BeginRw method") +} +func (db *DB) BeginTemporalRw(ctx context.Context) (kv.RwTx, error) { + return nil, fmt.Errorf("remote db provider doesn't support .BeginTemporalRw method") +} +func (db *DB) BeginTemporalRwNosync(ctx context.Context) (kv.RwTx, error) { + return nil, fmt.Errorf("remote db provider doesn't support .BeginTemporalRwNosync method") +} + +func (db *DB) View(ctx context.Context, f func(tx kv.Tx) error) (err error) { + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + return f(tx) +} +func (db *DB) ViewTemporal(ctx context.Context, f func(tx kv.TemporalTx) error) (err error) { + tx, err := db.BeginTemporalRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + return f(tx) +} + +func (db *DB) Update(ctx context.Context, f func(tx kv.RwTx) error) (err error) { + return fmt.Errorf("remote db provider doesn't support .Update method") +} +func (db *DB) UpdateNosync(ctx context.Context, f func(tx kv.RwTx) error) (err error) { + return fmt.Errorf("remote db provider doesn't support .UpdateNosync method") +} + +func (tx *tx) ViewID() uint64 { return tx.viewID } +func (tx *tx) CollectMetrics() {} +func (tx *tx) IncrementSequence(bucket string, amount uint64) (uint64, error) { + panic("not implemented yet") +} +func (tx *tx) ReadSequence(bucket string) (uint64, error) { + panic("not implemented yet") +} +func (tx *tx) Append(bucket string, k, v []byte) error { panic("no write methods") } +func (tx *tx) AppendDup(bucket string, k, v []byte) error { panic("no write methods") } + +func (tx *tx) Commit() error { + panic("remote db is read-only") +} + +func (tx *tx) Rollback() { + // don't close opened cursors - just close stream, server will cleanup everything well + tx.closeGrpcStream() + tx.db.roTxsLimiter.Release(1) + for _, c := range tx.streams { + c.Close() + } +} +func (tx *tx) DBSize() (uint64, error) { panic("not implemented") } + +func (tx *tx) statelessCursor(bucket string) (kv.Cursor, error) { + if tx.statelessCursors == nil { + tx.statelessCursors = make(map[string]kv.Cursor) + } + c, ok := tx.statelessCursors[bucket] + if !ok { + var err error + c, err = tx.Cursor(bucket) + if err != nil { + return nil, err + } + tx.statelessCursors[bucket] = c + } + return c, nil +} + +func (tx *tx) BucketSize(name string) (uint64, error) { panic("not implemented") } + +func (tx *tx) ForEach(bucket string, fromPrefix []byte, walker func(k, v []byte) error) error { + it, err := tx.Range(bucket, fromPrefix, nil) + if err != nil { + return err + } + for it.HasNext() { + k, v, err := it.Next() + if err != nil { + return err + } + if err := walker(k, v); err != nil { + return err + } + } + return nil +} + +func (tx *tx) ForPrefix(bucket string, prefix []byte, walker func(k, v []byte) error) error { + it, err := tx.Prefix(bucket, prefix) + if err != nil { + return err + } + for it.HasNext() { + k, v, err := it.Next() + if err != nil { + return err + } + if err := walker(k, v); err != nil { + return err + } + } + return nil +} + +// TODO: this must be deprecated +func (tx *tx) ForAmount(bucket string, fromPrefix []byte, amount uint32, walker func(k, v []byte) error) error { + if amount == 0 { + return nil + } + c, err := tx.Cursor(bucket) + if err != nil { + return err + } + defer c.Close() + + for k, v, err := c.Seek(fromPrefix); k != nil && amount > 0; k, v, err = c.Next() { + if err != nil { + return err + } + if err := walker(k, v); err != nil { + return err + } + amount-- + } + return nil +} + +func (tx *tx) GetOne(bucket string, k []byte) (val []byte, err error) { + c, err := tx.statelessCursor(bucket) + if err != nil { + return nil, err + } + _, val, err = c.SeekExact(k) + return val, err +} + +func (tx *tx) Has(bucket string, k []byte) (bool, error) { + c, err := tx.statelessCursor(bucket) + if err != nil { + return false, err + } + kk, _, err := c.Seek(k) + if err != nil { + return false, err + } + return bytes.Equal(k, kk), nil +} + +func (c *remoteCursor) SeekExact(k []byte) (key, val []byte, err error) { + return c.seekExact(k) +} + +func (c *remoteCursor) Prev() ([]byte, []byte, error) { + return c.prev() +} + +func (tx *tx) Cursor(bucket string) (kv.Cursor, error) { + b := tx.db.buckets[bucket] + c := &remoteCursor{tx: tx, ctx: tx.ctx, bucketName: bucket, bucketCfg: b, stream: tx.stream} + tx.cursors = append(tx.cursors, c) + if err := c.stream.Send(&remote.Cursor{Op: remote.Op_OPEN, BucketName: c.bucketName}); err != nil { + return nil, err + } + msg, err := c.stream.Recv() + if err != nil { + return nil, err + } + c.id = msg.CursorId + return c, nil +} + +func (tx *tx) ListBuckets() ([]string, error) { + return nil, fmt.Errorf("function ListBuckets is not implemented for remoteTx") +} + +// func (c *remoteCursor) Put(k []byte, v []byte) error { panic("not supported") } +// func (c *remoteCursor) PutNoOverwrite(k []byte, v []byte) error { panic("not supported") } +// func (c *remoteCursor) Append(k []byte, v []byte) error { panic("not supported") } +// func (c *remoteCursor) Delete(k []byte) error { panic("not supported") } +// func (c *remoteCursor) DeleteCurrent() error { panic("not supported") } +func (c *remoteCursor) Count() (uint64, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_COUNT}); err != nil { + return 0, err + } + pair, err := c.stream.Recv() + if err != nil { + return 0, err + } + return binary.BigEndian.Uint64(pair.V), nil + +} + +func (c *remoteCursor) first() ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_FIRST}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} + +func (c *remoteCursor) next() ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_NEXT}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) nextDup() ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_NEXT_DUP}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) nextNoDup() ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_NEXT_NO_DUP}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) prev() ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_PREV}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) prevDup() ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_PREV_DUP}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) prevNoDup() ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_PREV_NO_DUP}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) last() ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_LAST}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) setRange(k []byte) ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_SEEK, K: k}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) seekExact(k []byte) ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_SEEK_EXACT, K: k}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) getBothRange(k, v []byte) ([]byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_SEEK_BOTH, K: k, V: v}); err != nil { + return nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return nil, err + } + return pair.V, nil +} +func (c *remoteCursor) seekBothExact(k, v []byte) ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_SEEK_BOTH_EXACT, K: k, V: v}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} +func (c *remoteCursor) firstDup() ([]byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_FIRST_DUP}); err != nil { + return nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return nil, err + } + return pair.V, nil +} +func (c *remoteCursor) lastDup() ([]byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_LAST_DUP}); err != nil { + return nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return nil, err + } + return pair.V, nil +} +func (c *remoteCursor) getCurrent() ([]byte, []byte, error) { + if err := c.stream.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_CURRENT}); err != nil { + return []byte{}, nil, err + } + pair, err := c.stream.Recv() + if err != nil { + return []byte{}, nil, err + } + return pair.K, pair.V, nil +} + +func (c *remoteCursor) Current() ([]byte, []byte, error) { + return c.getCurrent() +} + +// Seek - doesn't start streaming (because much of code does only several .Seek calls without reading sequence of data) +// .Next() - does request streaming (if configured by user) +func (c *remoteCursor) Seek(seek []byte) ([]byte, []byte, error) { + return c.setRange(seek) +} + +func (c *remoteCursor) First() ([]byte, []byte, error) { + return c.first() +} + +// Next - returns next data element from server, request streaming (if configured by user) +func (c *remoteCursor) Next() ([]byte, []byte, error) { + return c.next() +} + +func (c *remoteCursor) Last() ([]byte, []byte, error) { + return c.last() +} + +func (tx *tx) closeGrpcStream() { + if tx.stream == nil { + return + } + defer tx.streamCancelFn() // hard cancel stream if graceful wasn't successful + + if tx.streamingRequested { + // if streaming is in progress, can't use `CloseSend` - because + // server will not read it right not - it busy with streaming data + // TODO: set flag 'tx.streamingRequested' to false when got terminator from server (nil key or os.EOF) + tx.streamCancelFn() + } else { + // try graceful close stream + err := tx.stream.CloseSend() + if err != nil { + doLog := !grpcutil.IsEndOfStream(err) + if doLog { + log.Warn("couldn't send msg CloseSend to server", "err", err) + } + } else { + _, err = tx.stream.Recv() + if err != nil { + doLog := !grpcutil.IsEndOfStream(err) + if doLog { + log.Warn("received unexpected error from server after CloseSend", "err", err) + } + } + } + } + tx.stream = nil + tx.streamingRequested = false +} + +func (c *remoteCursor) Close() { + if c.stream == nil { + return + } + st := c.stream + c.stream = nil + if err := st.Send(&remote.Cursor{Cursor: c.id, Op: remote.Op_CLOSE}); err == nil { + _, _ = st.Recv() + } +} + +func (tx *tx) CursorDupSort(bucket string) (kv.CursorDupSort, error) { + b := tx.db.buckets[bucket] + c := &remoteCursor{tx: tx, ctx: tx.ctx, bucketName: bucket, bucketCfg: b, stream: tx.stream} + tx.cursors = append(tx.cursors, c) + if err := c.stream.Send(&remote.Cursor{Op: remote.Op_OPEN_DUP_SORT, BucketName: c.bucketName}); err != nil { + return nil, err + } + msg, err := c.stream.Recv() + if err != nil { + return nil, err + } + c.id = msg.CursorId + return &remoteCursorDupSort{remoteCursor: c}, nil +} + +func (c *remoteCursorDupSort) SeekBothExact(k, v []byte) ([]byte, []byte, error) { + return c.seekBothExact(k, v) +} + +func (c *remoteCursorDupSort) SeekBothRange(k, v []byte) ([]byte, error) { + return c.getBothRange(k, v) +} + +func (c *remoteCursorDupSort) DeleteExact(k1, k2 []byte) error { panic("not supported") } +func (c *remoteCursorDupSort) AppendDup(k []byte, v []byte) error { panic("not supported") } +func (c *remoteCursorDupSort) PutNoDupData(k, v []byte) error { panic("not supported") } +func (c *remoteCursorDupSort) DeleteCurrentDuplicates() error { panic("not supported") } +func (c *remoteCursorDupSort) CountDuplicates() (uint64, error) { panic("not supported") } + +func (c *remoteCursorDupSort) FirstDup() ([]byte, error) { return c.firstDup() } +func (c *remoteCursorDupSort) NextDup() ([]byte, []byte, error) { return c.nextDup() } +func (c *remoteCursorDupSort) NextNoDup() ([]byte, []byte, error) { return c.nextNoDup() } +func (c *remoteCursorDupSort) PrevDup() ([]byte, []byte, error) { return c.prevDup() } +func (c *remoteCursorDupSort) PrevNoDup() ([]byte, []byte, error) { return c.prevNoDup() } +func (c *remoteCursorDupSort) LastDup() ([]byte, error) { return c.lastDup() } + +// Temporal Methods +func (tx *tx) DomainGetAsOf(name kv.Domain, k, k2 []byte, ts uint64) (v []byte, ok bool, err error) { + reply, err := tx.db.remoteKV.DomainGet(tx.ctx, &remote.DomainGetReq{TxId: tx.id, Table: string(name), K: k, K2: k2, Ts: ts}) + if err != nil { + return nil, false, err + } + return reply.V, reply.Ok, nil +} + +func (tx *tx) DomainGet(name kv.Domain, k, k2 []byte) (v []byte, ok bool, err error) { + reply, err := tx.db.remoteKV.DomainGet(tx.ctx, &remote.DomainGetReq{TxId: tx.id, Table: string(name), K: k, K2: k2, Latest: true}) + if err != nil { + return nil, false, err + } + return reply.V, reply.Ok, nil +} + +func (tx *tx) DomainRange(name kv.Domain, fromKey, toKey []byte, ts uint64, asc order.By, limit int) (it iter.KV, err error) { + return iter.PaginateKV(func(pageToken string) (keys, vals [][]byte, nextPageToken string, err error) { + reply, err := tx.db.remoteKV.DomainRange(tx.ctx, &remote.DomainRangeReq{TxId: tx.id, Table: string(name), FromKey: fromKey, ToKey: toKey, Ts: ts, OrderAscend: bool(asc), Limit: int64(limit)}) + if err != nil { + return nil, nil, "", err + } + return reply.Keys, reply.Values, reply.NextPageToken, nil + }), nil +} +func (tx *tx) HistoryGet(name kv.History, k []byte, ts uint64) (v []byte, ok bool, err error) { + reply, err := tx.db.remoteKV.HistoryGet(tx.ctx, &remote.HistoryGetReq{TxId: tx.id, Table: string(name), K: k, Ts: ts}) + if err != nil { + return nil, false, err + } + return reply.V, reply.Ok, nil +} +func (tx *tx) HistoryRange(name kv.History, fromTs, toTs int, asc order.By, limit int) (it iter.KV, err error) { + return iter.PaginateKV(func(pageToken string) (keys, vals [][]byte, nextPageToken string, err error) { + reply, err := tx.db.remoteKV.HistoryRange(tx.ctx, &remote.HistoryRangeReq{TxId: tx.id, Table: string(name), FromTs: int64(fromTs), ToTs: int64(toTs), OrderAscend: bool(asc), Limit: int64(limit)}) + if err != nil { + return nil, nil, "", err + } + return reply.Keys, reply.Values, reply.NextPageToken, nil + }), nil +} + +func (tx *tx) IndexRange(name kv.InvertedIdx, k []byte, fromTs, toTs int, asc order.By, limit int) (timestamps iter.U64, err error) { + return iter.PaginateU64(func(pageToken string) (arr []uint64, nextPageToken string, err error) { + req := &remote.IndexRangeReq{TxId: tx.id, Table: string(name), K: k, FromTs: int64(fromTs), ToTs: int64(toTs), OrderAscend: bool(asc), Limit: int64(limit)} + reply, err := tx.db.remoteKV.IndexRange(tx.ctx, req) + if err != nil { + return nil, "", err + } + return reply.Timestamps, reply.NextPageToken, nil + }), nil +} + +func (tx *tx) Prefix(table string, prefix []byte) (iter.KV, error) { + nextPrefix, ok := kv.NextSubtree(prefix) + if !ok { + return tx.Range(table, prefix, nil) + } + return tx.Range(table, prefix, nextPrefix) +} + +func (tx *tx) rangeOrderLimit(table string, fromPrefix, toPrefix []byte, asc order.By, limit int) (iter.KV, error) { + return iter.PaginateKV(func(pageToken string) (keys [][]byte, values [][]byte, nextPageToken string, err error) { + req := &remote.RangeReq{TxId: tx.id, Table: table, FromPrefix: fromPrefix, ToPrefix: toPrefix, OrderAscend: bool(asc), Limit: int64(limit)} + reply, err := tx.db.remoteKV.Range(tx.ctx, req) + if err != nil { + return nil, nil, "", err + } + return reply.Keys, reply.Values, reply.NextPageToken, nil + }), nil +} +func (tx *tx) Range(table string, fromPrefix, toPrefix []byte) (iter.KV, error) { + return tx.rangeOrderLimit(table, fromPrefix, toPrefix, order.Asc, -1) +} +func (tx *tx) RangeAscend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) { + return tx.rangeOrderLimit(table, fromPrefix, toPrefix, order.Asc, limit) +} +func (tx *tx) RangeDescend(table string, fromPrefix, toPrefix []byte, limit int) (iter.KV, error) { + return tx.rangeOrderLimit(table, fromPrefix, toPrefix, order.Desc, limit) +} +func (tx *tx) RangeDupSort(table string, key []byte, fromPrefix, toPrefix []byte, asc order.By, limit int) (iter.KV, error) { + panic("not implemented yet") +} + +func (tx *tx) CHandle() unsafe.Pointer { + panic("CHandle not implemented") +} diff --git a/erigon-lib/kv/remotedbserver/remotedbserver.go b/erigon-lib/kv/remotedbserver/remotedbserver.go new file mode 100644 index 00000000000..07191e55fe6 --- /dev/null +++ b/erigon-lib/kv/remotedbserver/remotedbserver.go @@ -0,0 +1,675 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package remotedbserver + +import ( + "context" + "encoding/base64" + "errors" + "fmt" + "io" + "reflect" + "sync" + "sync/atomic" + "time" + + "github.com/ledgerwatch/log/v3" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/emptypb" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/order" +) + +// MaxTxTTL - kv interface provide high-consistancy guaranties: Serializable Isolations Level https://en.wikipedia.org/wiki/Isolation_(database_systems) +// But it comes with cost: DB will start grow if run too long read transactions (hours) +// We decided limit TTL of transaction to `MaxTxTTL` +// +// It means you sill have `Serializable` if tx living < `MaxTxTTL` +// You start have Read Committed Level if tx living > `MaxTxTTL` +// +// It's done by `renew` method: after `renew` call reader will see all changes committed after last `renew` call. +// +// Erigon has much Historical data - which is immutable: reading of historical data for hours still gives you consistant data. +const MaxTxTTL = 60 * time.Second + +// KvServiceAPIVersion - use it to track changes in API +// 1.1.0 - added pending transactions, add methods eth_getRawTransactionByHash, eth_retRawTransactionByBlockHashAndIndex, eth_retRawTransactionByBlockNumberAndIndex| Yes | | +// 1.2.0 - Added separated services for mining and txpool methods +// 2.0.0 - Rename all buckets +// 3.0.0 - ?? +// 4.0.0 - Server send tx.ViewID() after open tx +// 5.0 - BlockTransaction table now has canonical ids (txs of non-canonical blocks moving to NonCanonicalTransaction table) +// 5.1.0 - Added blockGasLimit to the StateChangeBatch +// 6.0.0 - Blocks now have system-txs - in the begin/end of block +// 6.1.0 - Add methods Range, IndexRange, HistoryGet, HistoryRange +// 6.2.0 - Add HistoryFiles to reply of Snapshots() method +var KvServiceAPIVersion = &types.VersionReply{Major: 6, Minor: 2, Patch: 0} + +type KvServer struct { + remote.UnimplementedKVServer // must be embedded to have forward compatible implementations. + + kv kv.RoDB + stateChangeStreams *StateChangePubSub + blockSnapshots Snapsthots + historySnapshots Snapsthots + ctx context.Context + + //v3 fields + txIdGen atomic.Uint64 + txsMapLock *sync.RWMutex + txs map[uint64]*threadSafeTx + + trace bool + rangeStep int // make sure `s.with` has limited time + logger log.Logger +} + +type threadSafeTx struct { + kv.Tx + sync.Mutex +} + +type Snapsthots interface { + Files() []string +} + +func NewKvServer(ctx context.Context, db kv.RoDB, snapshots Snapsthots, historySnapshots Snapsthots, logger log.Logger) *KvServer { + return &KvServer{ + trace: false, + rangeStep: 1024, + kv: db, stateChangeStreams: newStateChangeStreams(), ctx: ctx, + blockSnapshots: snapshots, historySnapshots: historySnapshots, + txs: map[uint64]*threadSafeTx{}, txsMapLock: &sync.RWMutex{}, + logger: logger, + } +} + +// Version returns the service-side interface version number +func (s *KvServer) Version(context.Context, *emptypb.Empty) (*types.VersionReply, error) { + dbSchemaVersion := &kv.DBSchemaVersion + if KvServiceAPIVersion.Major > dbSchemaVersion.Major { + return KvServiceAPIVersion, nil + } + if dbSchemaVersion.Major > KvServiceAPIVersion.Major { + return dbSchemaVersion, nil + } + if KvServiceAPIVersion.Minor > dbSchemaVersion.Minor { + return KvServiceAPIVersion, nil + } + if dbSchemaVersion.Minor > KvServiceAPIVersion.Minor { + return dbSchemaVersion, nil + } + return dbSchemaVersion, nil +} + +func (s *KvServer) begin(ctx context.Context) (id uint64, err error) { + if s.trace { + s.logger.Info(fmt.Sprintf("[kv_server] begin %d %s\n", id, dbg.Stack())) + } + s.txsMapLock.Lock() + defer s.txsMapLock.Unlock() + tx, errBegin := s.kv.BeginRo(ctx) + if errBegin != nil { + return 0, errBegin + } + id = s.txIdGen.Add(1) + s.txs[id] = &threadSafeTx{Tx: tx} + return id, nil +} + +// renew - rollback and begin tx without changing it's `id` +func (s *KvServer) renew(ctx context.Context, id uint64) (err error) { + if s.trace { + s.logger.Info(fmt.Sprintf("[kv_server] renew %d %s\n", id, dbg.Stack()[:2])) + } + s.txsMapLock.Lock() + defer s.txsMapLock.Unlock() + tx, ok := s.txs[id] + if ok { + tx.Lock() + defer tx.Unlock() + tx.Rollback() + } + newTx, errBegin := s.kv.BeginRo(ctx) + if errBegin != nil { + return fmt.Errorf("kvserver: %w", err) + } + s.txs[id] = &threadSafeTx{Tx: newTx} + return nil +} + +func (s *KvServer) rollback(id uint64) { + if s.trace { + s.logger.Info(fmt.Sprintf("[kv_server] rollback %d %s\n", id, dbg.Stack()[:2])) + } + s.txsMapLock.Lock() + defer s.txsMapLock.Unlock() + tx, ok := s.txs[id] + if ok { + tx.Lock() + defer tx.Unlock() + tx.Rollback() //nolint + delete(s.txs, id) + } +} + +// with - provides exclusive access to `tx` object. Use it if you need open Cursor or run another method of `tx` object. +// it's ok to use same `kv.RoTx` from different goroutines, but such use must be guarded by `with` method. +// +// !Important: client may open multiple Cursors and multiple Streams on same `tx` in same time +// it means server must do limited amount of work inside `with` method (periodically release `tx` for other streams) +// long-living server-side streams must read limited-portion of data inside `with`, send this portion to +// client, portion of data it to client, then read next portion in another `with` call. +// It will allow cooperative access to `tx` object +func (s *KvServer) with(id uint64, f func(kv.Tx) error) error { + s.txsMapLock.RLock() + tx, ok := s.txs[id] + s.txsMapLock.RUnlock() + if !ok { + return fmt.Errorf("txn %d already rollback", id) + } + + if s.trace { + s.logger.Info(fmt.Sprintf("[kv_server] with %d try lock %s\n", id, dbg.Stack()[:2])) + } + tx.Lock() + if s.trace { + s.logger.Info(fmt.Sprintf("[kv_server] with %d can lock %s\n", id, dbg.Stack()[:2])) + } + defer func() { + tx.Unlock() + if s.trace { + s.logger.Info(fmt.Sprintf("[kv_server] with %d unlock %s\n", id, dbg.Stack()[:2])) + } + }() + return f(tx.Tx) +} + +func (s *KvServer) Tx(stream remote.KV_TxServer) error { + id, errBegin := s.begin(stream.Context()) + if errBegin != nil { + return fmt.Errorf("server-side error: %w", errBegin) + } + defer s.rollback(id) + + var viewID uint64 + if err := s.with(id, func(tx kv.Tx) error { + viewID = tx.ViewID() + return nil + }); err != nil { + return fmt.Errorf("kvserver: %w", err) + } + if err := stream.Send(&remote.Pair{ViewId: viewID, TxId: id}); err != nil { + return fmt.Errorf("server-side error: %w", err) + } + + var CursorID uint32 + type CursorInfo struct { + bucket string + c kv.Cursor + k, v []byte //fields to save current position of cursor - used when Tx reopen + } + cursors := map[uint32]*CursorInfo{} + + txTicker := time.NewTicker(MaxTxTTL) + defer txTicker.Stop() + + // send all items to client, if k==nil - still send it to client and break loop + for { + in, recvErr := stream.Recv() + if recvErr != nil { + if errors.Is(recvErr, io.EOF) { // termination + return nil + } + return fmt.Errorf("server-side error: %w", recvErr) + } + + //TODO: protect against client - which doesn't send any requests + select { + default: + case <-txTicker.C: + for _, c := range cursors { // save positions of cursor, will restore after Tx reopening + k, v, err := c.c.Current() + if err != nil { + return fmt.Errorf("kvserver: %w", err) + } + c.k = bytesCopy(k) + c.v = bytesCopy(v) + } + + if err := s.renew(stream.Context(), id); err != nil { + return err + } + if err := s.with(id, func(tx kv.Tx) error { + for _, c := range cursors { // restore all cursors position + var err error + c.c, err = tx.Cursor(c.bucket) + if err != nil { + return err + } + switch casted := c.c.(type) { + case kv.CursorDupSort: + v, err := casted.SeekBothRange(c.k, c.v) + if err != nil { + return fmt.Errorf("server-side error: %w", err) + } + if v == nil { // it may happen that key where we stopped disappeared after transaction reopen, then just move to next key + _, _, err = casted.Next() + if err != nil { + return fmt.Errorf("server-side error: %w", err) + } + } + case kv.Cursor: + if _, _, err := c.c.Seek(c.k); err != nil { + return fmt.Errorf("server-side error: %w", err) + } + } + } + return nil + }); err != nil { + return err + } + } + + var c kv.Cursor + if in.BucketName == "" { + cInfo, ok := cursors[in.Cursor] + if !ok { + return fmt.Errorf("server-side error: unknown Cursor=%d, Op=%s", in.Cursor, in.Op) + } + c = cInfo.c + } + switch in.Op { + case remote.Op_OPEN: + CursorID++ + var err error + if err := s.with(id, func(tx kv.Tx) error { + c, err = tx.Cursor(in.BucketName) + if err != nil { + return err + } + return nil + }); err != nil { + return fmt.Errorf("kvserver: %w", err) + } + cursors[CursorID] = &CursorInfo{ + bucket: in.BucketName, + c: c, + } + if err := stream.Send(&remote.Pair{CursorId: CursorID}); err != nil { + return fmt.Errorf("kvserver: %w", err) + } + continue + case remote.Op_OPEN_DUP_SORT: + CursorID++ + var err error + if err := s.with(id, func(tx kv.Tx) error { + c, err = tx.CursorDupSort(in.BucketName) + if err != nil { + return err + } + return nil + }); err != nil { + return fmt.Errorf("kvserver: %w", err) + } + cursors[CursorID] = &CursorInfo{ + bucket: in.BucketName, + c: c, + } + if err := stream.Send(&remote.Pair{CursorId: CursorID}); err != nil { + return fmt.Errorf("server-side error: %w", err) + } + continue + case remote.Op_CLOSE: + cInfo, ok := cursors[in.Cursor] + if !ok { + return fmt.Errorf("server-side error: unknown Cursor=%d, Op=%s", in.Cursor, in.Op) + } + cInfo.c.Close() + delete(cursors, in.Cursor) + if err := stream.Send(&remote.Pair{}); err != nil { + return fmt.Errorf("server-side error: %w", err) + } + continue + default: + } + + if err := handleOp(c, stream, in); err != nil { + return fmt.Errorf("server-side error: %w", err) + } + } +} + +func handleOp(c kv.Cursor, stream remote.KV_TxServer, in *remote.Cursor) error { + var k, v []byte + var err error + switch in.Op { + case remote.Op_FIRST: + k, v, err = c.First() + case remote.Op_FIRST_DUP: + v, err = c.(kv.CursorDupSort).FirstDup() + case remote.Op_SEEK: + k, v, err = c.Seek(in.K) + case remote.Op_SEEK_BOTH: + v, err = c.(kv.CursorDupSort).SeekBothRange(in.K, in.V) + case remote.Op_CURRENT: + k, v, err = c.Current() + case remote.Op_LAST: + k, v, err = c.Last() + case remote.Op_LAST_DUP: + v, err = c.(kv.CursorDupSort).LastDup() + case remote.Op_NEXT: + k, v, err = c.Next() + case remote.Op_NEXT_DUP: + k, v, err = c.(kv.CursorDupSort).NextDup() + case remote.Op_NEXT_NO_DUP: + k, v, err = c.(kv.CursorDupSort).NextNoDup() + case remote.Op_PREV: + k, v, err = c.Prev() + //case remote.Op_PREV_DUP: + // k, v, err = c.(ethdb.CursorDupSort).Prev() + // if err != nil { + // return err + // } + //case remote.Op_PREV_NO_DUP: + // k, v, err = c.Prev() + // if err != nil { + // return err + // } + case remote.Op_SEEK_EXACT: + k, v, err = c.SeekExact(in.K) + case remote.Op_SEEK_BOTH_EXACT: + k, v, err = c.(kv.CursorDupSort).SeekBothExact(in.K, in.V) + case remote.Op_COUNT: + cnt, err := c.Count() + if err != nil { + return err + } + v = hexutility.EncodeTs(cnt) + default: + return fmt.Errorf("unknown operation: %s", in.Op) + } + if err != nil { + return err + } + + if err := stream.Send(&remote.Pair{K: k, V: v}); err != nil { + return err + } + + return nil +} + +func bytesCopy(b []byte) []byte { + if b == nil { + return nil + } + copiedBytes := make([]byte, len(b)) + copy(copiedBytes, b) + return copiedBytes +} + +func (s *KvServer) StateChanges(req *remote.StateChangeRequest, server remote.KV_StateChangesServer) error { + ch, remove := s.stateChangeStreams.Sub() + defer remove() + for { + select { + case reply := <-ch: + if err := server.Send(reply); err != nil { + return err + } + case <-s.ctx.Done(): + return nil + case <-server.Context().Done(): + return nil + } + } +} + +func (s *KvServer) SendStateChanges(ctx context.Context, sc *remote.StateChangeBatch) { + s.stateChangeStreams.Pub(sc) +} + +func (s *KvServer) Snapshots(ctx context.Context, _ *remote.SnapshotsRequest) (*remote.SnapshotsReply, error) { + if s.blockSnapshots == nil || reflect.ValueOf(s.blockSnapshots).IsNil() { // nolint + return &remote.SnapshotsReply{BlocksFiles: []string{}, HistoryFiles: []string{}}, nil + } + + return &remote.SnapshotsReply{BlocksFiles: s.blockSnapshots.Files(), HistoryFiles: s.historySnapshots.Files()}, nil +} + +type StateChangePubSub struct { + chans map[uint]chan *remote.StateChangeBatch + id uint + mu sync.RWMutex +} + +func newStateChangeStreams() *StateChangePubSub { + return &StateChangePubSub{} +} + +func (s *StateChangePubSub) Sub() (ch chan *remote.StateChangeBatch, remove func()) { + s.mu.Lock() + defer s.mu.Unlock() + if s.chans == nil { + s.chans = make(map[uint]chan *remote.StateChangeBatch) + } + s.id++ + id := s.id + ch = make(chan *remote.StateChangeBatch, 8) + s.chans[id] = ch + return ch, func() { s.remove(id) } +} + +func (s *StateChangePubSub) Pub(reply *remote.StateChangeBatch) { + s.mu.RLock() + defer s.mu.RUnlock() + for _, ch := range s.chans { + common.PrioritizedSend(ch, reply) + } +} + +func (s *StateChangePubSub) Len() int { + s.mu.RLock() + defer s.mu.RUnlock() + return len(s.chans) +} + +func (s *StateChangePubSub) remove(id uint) { + s.mu.Lock() + defer s.mu.Unlock() + ch, ok := s.chans[id] + if !ok { // double-unsubscribe support + return + } + close(ch) + delete(s.chans, id) +} + +// Temporal methods +func (s *KvServer) DomainGet(ctx context.Context, req *remote.DomainGetReq) (reply *remote.DomainGetReply, err error) { + reply = &remote.DomainGetReply{} + if err := s.with(req.TxId, func(tx kv.Tx) error { + ttx, ok := tx.(kv.TemporalTx) + if !ok { + return fmt.Errorf("server DB doesn't implement kv.Temporal interface") + } + if req.Latest { + reply.V, reply.Ok, err = ttx.DomainGet(kv.Domain(req.Table), req.K, req.K2) + if err != nil { + return err + } + } else { + reply.V, reply.Ok, err = ttx.DomainGetAsOf(kv.Domain(req.Table), req.K, req.K2, req.Ts) + if err != nil { + return err + } + } + return nil + }); err != nil { + return nil, err + } + return reply, nil +} +func (s *KvServer) HistoryGet(ctx context.Context, req *remote.HistoryGetReq) (reply *remote.HistoryGetReply, err error) { + reply = &remote.HistoryGetReply{} + if err := s.with(req.TxId, func(tx kv.Tx) error { + ttx, ok := tx.(kv.TemporalTx) + if !ok { + return fmt.Errorf("server DB doesn't implement kv.Temporal interface") + } + reply.V, reply.Ok, err = ttx.HistoryGet(kv.History(req.Table), req.K, req.Ts) + if err != nil { + return err + } + return nil + }); err != nil { + return nil, err + } + return reply, nil +} + +const PageSizeLimit = 4 * 4096 + +func (s *KvServer) IndexRange(ctx context.Context, req *remote.IndexRangeReq) (*remote.IndexRangeReply, error) { + reply := &remote.IndexRangeReply{} + from, limit := int(req.FromTs), int(req.Limit) + if req.PageToken != "" { + var pagination remote.IndexPagination + if err := unmarshalPagination(req.PageToken, &pagination); err != nil { + return nil, err + } + from, limit = int(pagination.NextTimeStamp), int(pagination.Limit) + } + if req.PageSize <= 0 || req.PageSize > PageSizeLimit { + req.PageSize = PageSizeLimit + } + + if err := s.with(req.TxId, func(tx kv.Tx) error { + ttx, ok := tx.(kv.TemporalTx) + if !ok { + return fmt.Errorf("server DB doesn't implement kv.Temporal interface") + } + it, err := ttx.IndexRange(kv.InvertedIdx(req.Table), req.K, from, int(req.ToTs), order.By(req.OrderAscend), limit) + if err != nil { + return err + } + for it.HasNext() { + v, err := it.Next() + if err != nil { + return err + } + reply.Timestamps = append(reply.Timestamps, v) + limit-- + } + if len(reply.Timestamps) == PageSizeLimit && it.HasNext() { + next, err := it.Next() + if err != nil { + return err + } + reply.NextPageToken, err = marshalPagination(&remote.IndexPagination{NextTimeStamp: int64(next), Limit: int64(limit)}) + if err != nil { + return err + } + } + return nil + }); err != nil { + return nil, err + } + return reply, nil +} + +func (s *KvServer) Range(ctx context.Context, req *remote.RangeReq) (*remote.Pairs, error) { + from, limit := req.FromPrefix, int(req.Limit) + if req.PageToken != "" { + var pagination remote.ParisPagination + if err := unmarshalPagination(req.PageToken, &pagination); err != nil { + return nil, err + } + from, limit = pagination.NextKey, int(pagination.Limit) + } + if req.PageSize <= 0 || req.PageSize > PageSizeLimit { + req.PageSize = PageSizeLimit + } + + reply := &remote.Pairs{} + var err error + if err = s.with(req.TxId, func(tx kv.Tx) error { + var it iter.KV + if req.OrderAscend { + it, err = tx.RangeAscend(req.Table, from, req.ToPrefix, limit) + if err != nil { + return err + } + } else { + it, err = tx.RangeDescend(req.Table, from, req.ToPrefix, limit) + if err != nil { + return err + } + } + for it.HasNext() { + k, v, err := it.Next() + if err != nil { + return err + } + reply.Keys = append(reply.Keys, k) + reply.Values = append(reply.Values, v) + limit-- + } + if len(reply.Keys) == PageSizeLimit && it.HasNext() { + nextK, _, err := it.Next() + if err != nil { + return err + } + reply.NextPageToken, err = marshalPagination(&remote.ParisPagination{NextKey: nextK, Limit: int64(limit)}) + if err != nil { + return err + } + } + return nil + }); err != nil { + return nil, err + } + return reply, nil +} + +// see: https://cloud.google.com/apis/design/design_patterns +func marshalPagination(m proto.Message) (string, error) { + pageToken, err := proto.Marshal(m) + if err != nil { + return "", err + } + return base64.StdEncoding.EncodeToString(pageToken), nil +} + +func unmarshalPagination(pageToken string, m proto.Message) error { + token, err := base64.StdEncoding.DecodeString(pageToken) + if err != nil { + return err + } + if err = proto.Unmarshal(token, m); err != nil { + return err + } + return nil +} diff --git a/erigon-lib/kv/remotedbserver/server_test.go b/erigon-lib/kv/remotedbserver/server_test.go new file mode 100644 index 00000000000..fec193f0389 --- /dev/null +++ b/erigon-lib/kv/remotedbserver/server_test.go @@ -0,0 +1,97 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package remotedbserver + +import ( + "context" + "runtime" + "testing" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" + "golang.org/x/sync/errgroup" +) + +func TestKvServer_renew(t *testing.T) { + if runtime.GOOS == "windows" { + t.Skip("fix me on win please") + } + + require, ctx, db := require.New(t), context.Background(), memdb.NewTestDB(t) + require.NoError(db.Update(ctx, func(tx kv.RwTx) error { + wc, err := tx.RwCursorDupSort(kv.PlainState) + require.NoError(err) + require.NoError(wc.Append([]byte{1}, []byte{1})) + require.NoError(wc.Append([]byte{1}, []byte{2})) + require.NoError(wc.Append([]byte{2}, []byte{1})) + require.NoError(wc.Append([]byte{3}, []byte{1})) + return nil + })) + + s := NewKvServer(ctx, db, nil, nil, log.New()) + g, ctx := errgroup.WithContext(ctx) + testCase := func() error { + id, err := s.begin(ctx) + if err != nil { + return err + } + var c, c2 kv.Cursor + if err = s.with(id, func(tx kv.Tx) error { + c, err = tx.Cursor(kv.PlainState) + return err + }); err != nil { + return err + } + k, v, err := c.First() + require.NoError(err) + require.Equal([]byte{1}, k) + require.Equal([]byte{1}, v) + + if err = s.renew(ctx, id); err != nil { + return err + } + + if err = s.with(id, func(tx kv.Tx) error { + c, err = tx.Cursor(kv.PlainState) + if err != nil { + return err + } + c2, err = tx.Cursor(kv.PlainState) + return err + }); err != nil { + return err + } + + k, v, err = c.Next() + require.NoError(err) + require.Equal([]byte{1}, k) + require.Equal([]byte{1}, v) + k, v, err = c2.Next() + require.NoError(err) + require.Equal([]byte{1}, k) + require.Equal([]byte{1}, v) + + s.rollback(id) + return nil + } + for i := 0; i < 10; i++ { + g.Go(testCase) + } + require.NoError(g.Wait()) +} diff --git a/erigon-lib/kv/tables.go b/erigon-lib/kv/tables.go new file mode 100644 index 00000000000..423b7303464 --- /dev/null +++ b/erigon-lib/kv/tables.go @@ -0,0 +1,908 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package kv + +import ( + "fmt" + "sort" + "strings" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" +) + +// DBSchemaVersion versions list +// 5.0 - BlockTransaction table now has canonical ids (txs of non-canonical blocks moving to NonCanonicalTransaction table) +// 6.0 - BlockTransaction table now has system-txs before and after block (records are absent if block has no system-tx, but sequence increasing) +// 6.1 - Canonical/NonCanonical/BadBlock transitions now stored in same table: kv.EthTx. Add kv.BadBlockNumber table +var DBSchemaVersion = types.VersionReply{Major: 6, Minor: 1, Patch: 0} + +// ChaindataTables + +// Dictionary: +// "Plain State" - state where keys arent' hashed. "CurrentState" - same, but keys are hashed. "PlainState" used for blocks execution. "CurrentState" used mostly for Merkle root calculation. +// "incarnation" - uint64 number - how much times given account was SelfDestruct'ed. + +/* +PlainState logical layout: + + Contains Accounts: + key - address (unhashed) + value - account encoded for storage + Contains Storage: + key - address (unhashed) + incarnation + storage key (unhashed) + value - storage value(common.hash) + +Physical layout: + + PlainState and HashedStorage utilises DupSort feature of MDBX (store multiple values inside 1 key). + +------------------------------------------------------------- + + key | value + +------------------------------------------------------------- +[acc_hash] | [acc_value] +[acc_hash]+[inc] | [storage1_hash]+[storage1_value] + + | [storage2_hash]+[storage2_value] // this value has no own key. it's 2nd value of [acc_hash]+[inc] key. + | [storage3_hash]+[storage3_value] + | ... + +[acc_hash]+[old_inc] | [storage1_hash]+[storage1_value] + + | ... + +[acc2_hash] | [acc2_value] + + ... +*/ +const PlainState = "PlainState" + +// PlainContractCode - +// key - address+incarnation +// value - code hash +const PlainContractCode = "PlainCodeHash" + +/* +AccountChangeSet and StorageChangeSet - of block N store values of state before block N changed them. +Because values "after" change stored in PlainState. +Logical format: + + key - blockNum_u64 + key_in_plain_state + value - value_in_plain_state_before_blockNum_changes + +Example: If block N changed account A from value X to Y. Then: + + AccountChangeSet has record: bigEndian(N) + A -> X + PlainState has record: A -> Y + +See also: docs/programmers_guide/db_walkthrough.MD#table-history-of-accounts + +As you can see if block N changes much accounts - then all records have repetitive prefix `bigEndian(N)`. +MDBX can store such prefixes only once - by DupSort feature (see `docs/programmers_guide/dupsort.md`). +Both buckets are DupSort-ed and have physical format: +AccountChangeSet: + + key - blockNum_u64 + value - address + account(encoded) + +StorageChangeSet: + + key - blockNum_u64 + address + incarnation_u64 + value - plain_storage_key + value +*/ +const AccountChangeSet = "AccountChangeSet" +const StorageChangeSet = "StorageChangeSet" + +const ( + + //HashedAccounts + // key - address hash + // value - account encoded for storage + // Contains Storage: + //key - address hash + incarnation + storage key hash + //value - storage value(common.hash) + HashedAccounts = "HashedAccount" + HashedStorage = "HashedStorage" +) + +/* +AccountsHistory and StorageHistory - indices designed to serve next 2 type of requests: +1. what is smallest block number >= X where account A changed +2. get last shard of A - to append there new block numbers + +Task 1. is part of "get historical state" operation (see `core/state:GetAsOf`): +If `db.Seek(A+bigEndian(X))` returns non-last shard - + + then get block number from shard value Y := RoaringBitmap(shard_value).GetGte(X) + and with Y go to ChangeSets: db.Get(ChangeSets, Y+A) + +If `db.Seek(A+bigEndian(X))` returns last shard - + + then we go to PlainState: db.Get(PlainState, A) + +Format: + - index split to shards by 2Kb - RoaringBitmap encoded sorted list of block numbers + (to avoid performance degradation of popular accounts or look deep into history. + Also 2Kb allows avoid Overflow pages inside DB.) + - if shard is not last - then key has suffix 8 bytes = bigEndian(max_block_num_in_this_shard) + - if shard is last - then key has suffix 8 bytes = 0xFF + +It allows: + - server task 1. by 1 db operation db.Seek(A+bigEndian(X)) + - server task 2. by 1 db operation db.Get(A+0xFF) + +see also: docs/programmers_guide/db_walkthrough.MD#table-change-sets + +AccountsHistory: + + key - address + shard_id_u64 + value - roaring bitmap - list of block where it changed + +StorageHistory + + key - address + storage_key + shard_id_u64 + value - roaring bitmap - list of block where it changed +*/ +const E2AccountsHistory = "AccountHistory" +const E2StorageHistory = "StorageHistory" + +const ( + + //key - contract code hash + //value - contract code + Code = "Code" + + //key - addressHash+incarnation + //value - code hash + ContractCode = "HashedCodeHash" + + // IncarnationMap for deleted accounts + //key - address + //value - incarnation of account when it was last deleted + IncarnationMap = "IncarnationMap" + + //TEVMCode - + //key - contract code hash + //value - contract TEVM code + ContractTEVMCode = "TEVMCode" +) + +/* +TrieOfAccounts and TrieOfStorage +hasState,groups - mark prefixes existing in hashed_account table +hasTree - mark prefixes existing in trie_account table (not related with branchNodes) +hasHash - mark prefixes which hashes are saved in current trie_account record (actually only hashes of branchNodes can be saved) +@see UnmarshalTrieNode +@see integrity.Trie + ++-----------------------------------------------------------------------------------------------------+ +| DB record: 0x0B, hasState: 0b1011, hasTree: 0b1001, hasHash: 0b1001, hashes: [x,x] | ++-----------------------------------------------------------------------------------------------------+ + + | | | + v | v + ++---------------------------------------------+ | +--------------------------------------+ +| DB record: 0x0B00, hasState: 0b10001 | | | DB record: 0x0B03, hasState: 0b10010 | +| hasTree: 0, hasHash: 0b10000, hashes: [x] | | | hasTree: 0, hasHash: 0, hashes: [] | ++---------------------------------------------+ | +--------------------------------------+ + + | | | | | + v v v v v + ++------------------+ +----------------------+ +---------------+ +---------------+ +---------------+ +| Account: | | BranchNode: 0x0B0004 | | Account: | | Account: | | Account: | +| 0x0B0000... | | has no record in | | 0x0B01... | | 0x0B0301... | | 0x0B0304... | +| in HashedAccount | | TrieAccount | | | | | | | ++------------------+ +----------------------+ +---------------+ +---------------+ +---------------+ + + | | + v v + +---------------+ +---------------+ + | Account: | | Account: | + | 0x0B000400... | | 0x0B000401... | + +---------------+ +---------------+ + +Invariants: +- hasTree is subset of hasState +- hasHash is subset of hasState +- first level in account_trie always exists if hasState>0 +- TrieStorage record of account.root (length=40) must have +1 hash - it's account.root +- each record in TrieAccount table must have parent (may be not direct) and this parent must have correct bit in hasTree bitmap +- if hasState has bit - then HashedAccount table must have record according to this bit +- each TrieAccount record must cover some state (means hasState is always > 0) +- TrieAccount records with length=1 can satisfy (hasBranch==0&&hasHash==0) condition +- Other records in TrieAccount and TrieStorage must (hasTree!=0 || hasHash!=0) +*/ +const TrieOfAccounts = "TrieAccount" +const TrieOfStorage = "TrieStorage" + +// Mapping [block number] => [Verkle Root] +const VerkleRoots = "VerkleRoots" + +// Mapping [Verkle Root] => [Rlp-Encoded Verkle Node] +const VerkleTrie = "VerkleTrie" + +const ( + // DatabaseInfo is used to store information about data layout. + DatabaseInfo = "DbInfo" + + // Naming: + // NeaderNumber - Ethereum-specific block number. All nodes have same BlockNum. + // NeaderID - auto-increment ID. Depends on order in which node see headers. + // Invariant: for all headers in snapshots Number == ID. It means no reason to store Num/ID for this headers in DB. + // Same about: TxNum/TxID, BlockNum/BlockID + HeaderNumber = "HeaderNumber" // header_hash -> header_num_u64 + BadHeaderNumber = "BadHeaderNumber" // header_hash -> header_num_u64 + HeaderCanonical = "CanonicalHeader" // block_num_u64 -> header hash + Headers = "Header" // block_num_u64 + hash -> header (RLP) + HeaderTD = "HeadersTotalDifficulty" // block_num_u64 + hash -> td (RLP) + + BlockBody = "BlockBody" // block_num_u64 + hash -> block body + + // Naming: + // TxNum - Ethereum canonical transaction number - same across all nodes. + // TxnID - auto-increment ID - can be differrent across all nodes + // BlockNum/BlockID - same + // + // EthTx - stores all transactions of Canonical/NonCanonical/Bad blocks + // TxnID (auto-increment ID) - means nodes in network will have different ID of same transactions + // Snapshots (frozen data): using TxNum (not TxnID) + // + // During ReOrg - txs are not removed/updated + // + // Also this table has system-txs before and after block: if + // block has no system-tx - records are absent, but TxnID increasing + // + // In Erigon3: table MaxTxNum storing TxNum (not TxnID). History/Indices are using TxNum (not TxnID). + EthTx = "BlockTransaction" // tx_id_u64 -> rlp(tx) + NonCanonicalTxs = "NonCanonicalTransaction" // tbl_sequence_u64 -> rlp(tx) + MaxTxNum = "MaxTxNum" // block_number_u64 -> max_tx_num_in_block_u64 + + Receipts = "Receipt" // block_num_u64 -> canonical block receipts (non-canonical are not stored) + Log = "TransactionLog" // block_num_u64 + txId -> logs of transaction + + // Stores bitmap indices - in which block numbers saw logs of given 'address' or 'topic' + // [addr or topic] + [2 bytes inverted shard number] -> bitmap(blockN) + // indices are sharded - because some bitmaps are >1Mb and when new incoming blocks process it + // updates ~300 of bitmaps - by append small amount new values. It cause much big writes (MDBX does copy-on-write). + // + // if last existing shard size merge it with delta + // if serialized size of delta > ShardLimit - break down to multiple shards + // shard number - it's biggest value in bitmap + LogTopicIndex = "LogTopicIndex" + LogAddressIndex = "LogAddressIndex" + + // CallTraceSet is the name of the table that contain the mapping of block number to the set (sorted) of all accounts + // touched by call traces. It is DupSort-ed table + // 8-byte BE block number -> account address -> two bits (one for "from", another for "to") + CallTraceSet = "CallTraceSet" + // Indices for call traces - have the same format as LogTopicIndex and LogAddressIndex + // Store bitmap indices - in which block number we saw calls from (CallFromIndex) or to (CallToIndex) some addresses + CallFromIndex = "CallFromIndex" + CallToIndex = "CallToIndex" + + // Cumulative indexes for estimation of stage execution + CumulativeGasIndex = "CumulativeGasIndex" + CumulativeTransactionIndex = "CumulativeTransactionIndex" + + TxLookup = "BlockTransactionLookup" // hash -> transaction/receipt lookup metadata + + ConfigTable = "Config" // config prefix for the db + + // Progress of sync stages: stageName -> stageData + SyncStageProgress = "SyncStage" + + Clique = "Clique" + CliqueSeparate = "CliqueSeparate" + CliqueSnapshot = "CliqueSnapshot" + CliqueLastSnapshot = "CliqueLastSnapshot" + + // Proof-of-stake + // Beacon chain head that is been executed at the current time + CurrentExecutionPayload = "CurrentExecutionPayload" + + // Node database tables (see nodedb.go) + + // NodeRecords stores P2P node records (ENR) + NodeRecords = "NodeRecord" + // Inodes stores P2P discovery service info about the nodes + Inodes = "Inode" + + // Transaction senders - stored separately from the block bodies + Senders = "TxSender" // block_num_u64 + blockHash -> sendersList (no serialization format, every 20 bytes is new sender) + + // headBlockKey tracks the latest know full block's hash. + HeadBlockKey = "LastBlock" + + HeadHeaderKey = "LastHeader" + + // headBlockHash, safeBlockHash, finalizedBlockHash of the latest Engine API forkchoice + LastForkchoice = "LastForkchoice" + + // TransitionBlockKey tracks the last proof-of-work block + TransitionBlockKey = "TransitionBlock" + + // migrationName -> serialized SyncStageProgress and SyncStageUnwind buckets + // it stores stages progress to understand in which context was executed migration + // in case of bug-report developer can ask content of this bucket + Migrations = "Migration" + + Sequence = "Sequence" // tbl_name -> seq_u64 + + Epoch = "DevEpoch" // block_num_u64+block_hash->transition_proof + PendingEpoch = "DevPendingEpoch" // block_num_u64+block_hash->transition_proof + + Issuance = "Issuance" // block_num_u64->RLP(issuance+burnt[0 if < london]) + + StateAccounts = "StateAccounts" + StateStorage = "StateStorage" + StateCode = "StateCode" + StateCommitment = "StateCommitment" + + // BOR + BorReceipts = "BorReceipt" + BorFinality = "BorFinality" + BorTxLookup = "BlockBorTransactionLookup" // transaction_hash -> block_num_u64 + BorSeparate = "BorSeparate" // persisted snapshots of the Validator Sets, with their proposer priorities + BorEvents = "BorEvents" // event_id -> event_payload + BorEventNums = "BorEventNums" // block_num -> event_id (first event_id in that block) + BorSpans = "BorSpans" // span_id -> span (in JSON encoding) + + // Downloader + BittorrentCompletion = "BittorrentCompletion" + BittorrentInfo = "BittorrentInfo" + + // Domains/Histry/InvertedIndices + // Contants have "Tbl" prefix, to avoid collision with actual Domain names + // This constants is very rarely used in APP, but Domain/History/Idx names are widely used + TblAccountKeys = "AccountKeys" + TblAccountVals = "AccountVals" + TblAccountHistoryKeys = "AccountHistoryKeys" + TblAccountHistoryVals = "AccountHistoryVals" + TblAccountIdx = "AccountIdx" + + TblStorageKeys = "StorageKeys" + TblStorageVals = "StorageVals" + TblStorageHistoryKeys = "StorageHistoryKeys" + TblStorageHistoryVals = "StorageHistoryVals" + TblStorageIdx = "StorageIdx" + + TblCodeKeys = "CodeKeys" + TblCodeVals = "CodeVals" + TblCodeHistoryKeys = "CodeHistoryKeys" + TblCodeHistoryVals = "CodeHistoryVals" + TblCodeIdx = "CodeIdx" + + TblCommitmentKeys = "CommitmentKeys" + TblCommitmentVals = "CommitmentVals" + TblCommitmentHistoryKeys = "CommitmentHistoryKeys" + TblCommitmentHistoryVals = "CommitmentHistoryVals" + TblCommitmentIdx = "CommitmentIdx" + + TblLogAddressKeys = "LogAddressKeys" + TblLogAddressIdx = "LogAddressIdx" + TblLogTopicsKeys = "LogTopicsKeys" + TblLogTopicsIdx = "LogTopicsIdx" + + TblTracesFromKeys = "TracesFromKeys" + TblTracesFromIdx = "TracesFromIdx" + TblTracesToKeys = "TracesToKeys" + TblTracesToIdx = "TracesToIdx" + + Snapshots = "Snapshots" // name -> hash + + //State Reconstitution + RAccountKeys = "RAccountKeys" + RAccountIdx = "RAccountIdx" + RStorageKeys = "RStorageKeys" + RStorageIdx = "RStorageIdx" + RCodeKeys = "RCodeKeys" + RCodeIdx = "RCodeIdx" + + PlainStateR = "PlainStateR" // temporary table for PlainState reconstitution + PlainStateD = "PlainStateD" // temporary table for PlainStare reconstitution, deletes + CodeR = "CodeR" // temporary table for Code reconstitution + CodeD = "CodeD" // temporary table for Code reconstitution, deletes + PlainContractR = "PlainContractR" // temporary table for PlainContract reconstitution + PlainContractD = "PlainContractD" // temporary table for PlainContract reconstitution, deletes + + // Erigon-CL Objects + + // [slot] => [Beacon state] + BeaconState = "BeaconState" + // [slot] => [signature + block without execution payload] + BeaconBlocks = "BeaconBlock" + // [slot] => [attestation list (custom encoding)] + Attestetations = "Attestetations" + + // [slot] => [Canonical block root] + CanonicalBlockRoots = "CanonicalBlockRoots" + // [Root (block root] => Slot + BlockRootToSlot = "BlockRootToSlot" + // [Block Root] => [State Root] + BlockRootToStateRoot = "BlockRootToStateRoot" + StateRootToBlockRoot = "StateRootToBlockRoot" + + BlockRootToBlockNumber = "BlockRootToBlockNumber" + BlockRootToBlockHash = "BlockRootToBlockHash" + + LastBeaconSnapshot = "LastBeaconSnapshot" + LastBeaconSnapshotKey = "LastBeaconSnapshotKey" + + // [Block Root] => [Parent Root] + BlockRootToParentRoot = "BlockRootToParentRoot" + + HighestFinalized = "HighestFinalized" // hash -> transaction/receipt lookup metadata + + // BlockRoot => Beacon Block Header + BeaconBlockHeaders = "BeaconBlockHeaders" + + // LightClientStore => LightClientStore object + // LightClientFinalityUpdate => latest finality update + // LightClientOptimisticUpdate => latest optimistic update + LightClient = "LightClient" + // Period (one every 27 hours) => LightClientUpdate + LightClientUpdates = "LightClientUpdates" + // Beacon historical data + // ValidatorIndex => [Field] + ValidatorPublicKeys = "ValidatorPublickeys" + // ValidatorIndex + Slot => [Field] + ValidatorEffectiveBalance = "ValidatorEffectiveBalance" + ValidatorSlashings = "ValidatorSlashings" + ValidatorBalance = "ValidatorBalance" + StaticValidators = "StaticValidators" + StateEvents = "StateEvents" + + // External data + StateRoot = "StateRoot" + BlockRoot = "BlockRoot" + MinimalBeaconState = "MinimalBeaconState" + InactivityScores = "InactivityScores" + PreviousEpochParticipation = "PreviousEpochParticipation" + CurrentEpochParticipation = "CurrentEpochParticipation" + Checkpoints = "Checkpoints" + NextSyncCommittee = "NextSyncCommittee" + CurrentSyncCommittee = "CurrentSyncCommittee" + HistoricalRoots = "HistoricalRoots" + HistoricalSummaries = "HistoricalSummaries" + CurrentEpochAttestations = "EpochAttestations" + PreviousEpochAttestations = "PreviousAttestations" + Eth1DataVotes = "Eth1DataVotes" + + IntraRandaoMixes = "IntraRandaoMixes" // [validator_index+slot] => [randao_mix] + RandaoMixes = "RandaoMixes" // [validator_index+slot] => [randao_mix] + Proposers = "BlockProposers" // epoch => proposers indicies + + StatesProcessingProgress = "StatesProcessingProgress" +) + +// Keys +var ( + //StorageModeTEVM - does not translate EVM to TEVM + StorageModeTEVM = []byte("smTEVM") + + PruneTypeOlder = []byte("older") + PruneTypeBefore = []byte("before") + + PruneHistory = []byte("pruneHistory") + PruneHistoryType = []byte("pruneHistoryType") + PruneReceipts = []byte("pruneReceipts") + PruneReceiptsType = []byte("pruneReceiptsType") + PruneTxIndex = []byte("pruneTxIndex") + PruneTxIndexType = []byte("pruneTxIndexType") + PruneCallTraces = []byte("pruneCallTraces") + PruneCallTracesType = []byte("pruneCallTracesType") + + DBSchemaVersionKey = []byte("dbVersion") + + BittorrentPeerID = "peerID" + CurrentHeadersSnapshotHash = []byte("CurrentHeadersSnapshotHash") + CurrentHeadersSnapshotBlock = []byte("CurrentHeadersSnapshotBlock") + CurrentBodiesSnapshotHash = []byte("CurrentBodiesSnapshotHash") + CurrentBodiesSnapshotBlock = []byte("CurrentBodiesSnapshotBlock") + PlainStateVersion = []byte("PlainStateVersion") + + HighestFinalizedKey = []byte("HighestFinalized") + LightClientStore = []byte("LightClientStore") + LightClientFinalityUpdate = []byte("LightClientFinalityUpdate") + LightClientOptimisticUpdate = []byte("LightClientOptimisticUpdate") + + StatesProcessingKey = []byte("StatesProcessing") +) + +// ChaindataTables - list of all buckets. App will panic if some bucket is not in this list. +// This list will be sorted in `init` method. +// ChaindataTablesCfg - can be used to find index in sorted version of ChaindataTables list by name +var ChaindataTables = []string{ + E2AccountsHistory, + E2StorageHistory, + Code, + ContractCode, + HeaderNumber, + BadHeaderNumber, + BlockBody, + Receipts, + TxLookup, + ConfigTable, + CurrentExecutionPayload, + DatabaseInfo, + IncarnationMap, + ContractTEVMCode, + CliqueSeparate, + CliqueLastSnapshot, + CliqueSnapshot, + SyncStageProgress, + PlainState, + PlainContractCode, + AccountChangeSet, + StorageChangeSet, + Senders, + HeadBlockKey, + HeadHeaderKey, + LastForkchoice, + Migrations, + LogTopicIndex, + LogAddressIndex, + CallTraceSet, + CallFromIndex, + CallToIndex, + CumulativeGasIndex, + CumulativeTransactionIndex, + Log, + Sequence, + EthTx, + NonCanonicalTxs, + TrieOfAccounts, + TrieOfStorage, + HashedAccounts, + HashedStorage, + HeaderCanonical, + Headers, + HeaderTD, + Epoch, + PendingEpoch, + Issuance, + StateAccounts, + StateStorage, + StateCode, + StateCommitment, + BorReceipts, + BorFinality, + BorTxLookup, + BorSeparate, + BorEvents, + BorEventNums, + BorSpans, + TblAccountKeys, + TblAccountVals, + TblAccountHistoryKeys, + TblAccountHistoryVals, + TblAccountIdx, + + TblStorageKeys, + TblStorageVals, + TblStorageHistoryKeys, + TblStorageHistoryVals, + TblStorageIdx, + + TblCodeKeys, + TblCodeVals, + TblCodeHistoryKeys, + TblCodeHistoryVals, + TblCodeIdx, + + TblCommitmentKeys, + TblCommitmentVals, + TblCommitmentHistoryKeys, + TblCommitmentHistoryVals, + TblCommitmentIdx, + + TblLogAddressKeys, + TblLogAddressIdx, + TblLogTopicsKeys, + TblLogTopicsIdx, + + TblTracesFromKeys, + TblTracesFromIdx, + TblTracesToKeys, + TblTracesToIdx, + + Snapshots, + MaxTxNum, + + RAccountKeys, + RAccountIdx, + RStorageKeys, + RStorageIdx, + RCodeKeys, + RCodeIdx, + + VerkleRoots, + VerkleTrie, + // Beacon stuff + BeaconState, + BeaconBlocks, + CanonicalBlockRoots, + BlockRootToSlot, + BlockRootToStateRoot, + StateRootToBlockRoot, + BlockRootToParentRoot, + BeaconBlockHeaders, + HighestFinalized, + Attestetations, + LightClient, + LightClientUpdates, + BlockRootToBlockHash, + BlockRootToBlockNumber, + LastBeaconSnapshot, + // State Reconstitution + ValidatorPublicKeys, + ValidatorEffectiveBalance, + ValidatorBalance, + ValidatorSlashings, + StaticValidators, + StateEvents, + // Other stuff (related to state reconstitution) + BlockRoot, + StateRoot, + MinimalBeaconState, + RandaoMixes, + Proposers, + StatesProcessingProgress, + PreviousEpochParticipation, + CurrentEpochParticipation, + InactivityScores, + Checkpoints, + NextSyncCommittee, + CurrentSyncCommittee, + HistoricalRoots, + HistoricalSummaries, + CurrentEpochAttestations, + PreviousEpochAttestations, + Eth1DataVotes, + IntraRandaoMixes, +} + +const ( + RecentLocalTransaction = "RecentLocalTransaction" // sequence_u64 -> tx_hash + PoolTransaction = "PoolTransaction" // txHash -> sender_id_u64+tx_rlp + PoolInfo = "PoolInfo" // option_key -> option_value +) + +var TxPoolTables = []string{ + RecentLocalTransaction, + PoolTransaction, + PoolInfo, +} +var SentryTables = []string{} +var DownloaderTables = []string{ + BittorrentCompletion, + BittorrentInfo, +} +var ReconTables = []string{ + PlainStateR, + PlainStateD, + CodeR, + CodeD, + PlainContractR, + PlainContractD, +} + +// ChaindataDeprecatedTables - list of buckets which can be programmatically deleted - for example after migration +var ChaindataDeprecatedTables = []string{ + Clique, + TransitionBlockKey, +} + +type CmpFunc func(k1, k2, v1, v2 []byte) int + +type TableCfg map[string]TableCfgItem +type Bucket string + +type DBI uint +type TableFlags uint + +const ( + Default TableFlags = 0x00 + ReverseKey TableFlags = 0x02 + DupSort TableFlags = 0x04 + IntegerKey TableFlags = 0x08 + IntegerDup TableFlags = 0x20 + ReverseDup TableFlags = 0x40 +) + +type TableCfgItem struct { + Flags TableFlags + // AutoDupSortKeysConversion - enables some keys transformation - to change db layout without changing app code. + // Use it wisely - it helps to do experiments with DB format faster, but better reduce amount of Magic in app. + // If good DB format found, push app code to accept this format and then disable this property. + AutoDupSortKeysConversion bool + IsDeprecated bool + DBI DBI + // DupFromLen - if user provide key of this length, then next transformation applied: + // v = append(k[DupToLen:], v...) + // k = k[:DupToLen] + // And opposite at retrieval + // Works only if AutoDupSortKeysConversion enabled + DupFromLen int + DupToLen int +} + +var ChaindataTablesCfg = TableCfg{ + HashedStorage: { + Flags: DupSort, + AutoDupSortKeysConversion: true, + DupFromLen: 72, + DupToLen: 40, + }, + AccountChangeSet: {Flags: DupSort}, + StorageChangeSet: {Flags: DupSort}, + PlainState: { + Flags: DupSort, + AutoDupSortKeysConversion: true, + DupFromLen: 60, + DupToLen: 28, + }, + CallTraceSet: {Flags: DupSort}, + + TblAccountKeys: {Flags: DupSort}, + TblAccountHistoryKeys: {Flags: DupSort}, + TblAccountHistoryVals: {Flags: DupSort}, + TblAccountIdx: {Flags: DupSort}, + TblStorageKeys: {Flags: DupSort}, + TblStorageHistoryKeys: {Flags: DupSort}, + TblStorageHistoryVals: {Flags: DupSort}, + TblStorageIdx: {Flags: DupSort}, + TblCodeKeys: {Flags: DupSort}, + TblCodeHistoryKeys: {Flags: DupSort}, + TblCodeIdx: {Flags: DupSort}, + TblCommitmentKeys: {Flags: DupSort}, + TblCommitmentHistoryKeys: {Flags: DupSort}, + TblCommitmentIdx: {Flags: DupSort}, + TblLogAddressKeys: {Flags: DupSort}, + TblLogAddressIdx: {Flags: DupSort}, + TblLogTopicsKeys: {Flags: DupSort}, + TblLogTopicsIdx: {Flags: DupSort}, + TblTracesFromKeys: {Flags: DupSort}, + TblTracesFromIdx: {Flags: DupSort}, + TblTracesToKeys: {Flags: DupSort}, + TblTracesToIdx: {Flags: DupSort}, + RAccountKeys: {Flags: DupSort}, + RAccountIdx: {Flags: DupSort}, + RStorageKeys: {Flags: DupSort}, + RStorageIdx: {Flags: DupSort}, + RCodeKeys: {Flags: DupSort}, + RCodeIdx: {Flags: DupSort}, +} + +var BorTablesCfg = TableCfg{ + BorReceipts: {Flags: DupSort}, + BorFinality: {Flags: DupSort}, + BorTxLookup: {Flags: DupSort}, + BorEvents: {Flags: DupSort}, + BorEventNums: {Flags: DupSort}, + BorSpans: {Flags: DupSort}, +} + +var TxpoolTablesCfg = TableCfg{} +var SentryTablesCfg = TableCfg{} +var DownloaderTablesCfg = TableCfg{} +var ReconTablesCfg = TableCfg{ + PlainStateD: {Flags: DupSort}, + CodeD: {Flags: DupSort}, + PlainContractD: {Flags: DupSort}, +} + +func TablesCfgByLabel(label Label) TableCfg { + switch label { + case ChainDB: + return ChaindataTablesCfg + case TxPoolDB: + return TxpoolTablesCfg + case SentryDB: + return SentryTablesCfg + case DownloaderDB: + return DownloaderTablesCfg + default: + panic(fmt.Sprintf("unexpected label: %s", label)) + } +} +func sortBuckets() { + sort.SliceStable(ChaindataTables, func(i, j int) bool { + return strings.Compare(ChaindataTables[i], ChaindataTables[j]) < 0 + }) +} + +func init() { + reinit() +} + +func reinit() { + sortBuckets() + + for _, name := range ChaindataTables { + _, ok := ChaindataTablesCfg[name] + if !ok { + ChaindataTablesCfg[name] = TableCfgItem{} + } + } + + for _, name := range ChaindataDeprecatedTables { + _, ok := ChaindataTablesCfg[name] + if !ok { + ChaindataTablesCfg[name] = TableCfgItem{} + } + tmp := ChaindataTablesCfg[name] + tmp.IsDeprecated = true + ChaindataTablesCfg[name] = tmp + } + + for _, name := range TxPoolTables { + _, ok := TxpoolTablesCfg[name] + if !ok { + TxpoolTablesCfg[name] = TableCfgItem{} + } + } + + for _, name := range SentryTables { + _, ok := SentryTablesCfg[name] + if !ok { + SentryTablesCfg[name] = TableCfgItem{} + } + } + + for _, name := range DownloaderTables { + _, ok := DownloaderTablesCfg[name] + if !ok { + DownloaderTablesCfg[name] = TableCfgItem{} + } + } + + for _, name := range ReconTables { + _, ok := ReconTablesCfg[name] + if !ok { + ReconTablesCfg[name] = TableCfgItem{} + } + } +} + +// Temporal + +const ( + AccountsDomain Domain = "AccountsDomain" + StorageDomain Domain = "StorageDomain" + CodeDomain Domain = "CodeDomain" +) + +const ( + AccountsHistory History = "AccountsHistory" + StorageHistory History = "StorageHistory" + CodeHistory History = "CodeHistory" +) + +const ( + AccountsHistoryIdx InvertedIdx = "AccountsHistoryIdx" + StorageHistoryIdx InvertedIdx = "StorageHistoryIdx" + CodeHistoryIdx InvertedIdx = "CodeHistoryIdx" + + LogTopicIdx InvertedIdx = "LogTopicIdx" + LogAddrIdx InvertedIdx = "LogAddrIdx" + TracesFromIdx InvertedIdx = "TracesFromIdx" + TracesToIdx InvertedIdx = "TracesToIdx" +) diff --git a/erigon-lib/kv/temporal/historyv2/account_changeset.go b/erigon-lib/kv/temporal/historyv2/account_changeset.go new file mode 100644 index 00000000000..db09519f5f4 --- /dev/null +++ b/erigon-lib/kv/temporal/historyv2/account_changeset.go @@ -0,0 +1,78 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package historyv2 + +import ( + "bytes" + "encoding/binary" + "fmt" + "sort" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/kv" +) + +type Encoder func(blockN uint64, s *ChangeSet, f func(k, v []byte) error) error +type Decoder func(dbKey, dbValue []byte) (blockN uint64, k, v []byte, err error) + +func NewAccountChangeSet() *ChangeSet { + return &ChangeSet{ + Changes: make([]Change, 0), + keyLen: length.Addr, + } +} + +func EncodeAccounts(blockN uint64, s *ChangeSet, f func(k, v []byte) error) error { + sort.Sort(s) + newK := hexutility.EncodeTs(blockN) + for _, cs := range s.Changes { + newV := make([]byte, len(cs.Key)+len(cs.Value)) + copy(newV, cs.Key) + copy(newV[len(cs.Key):], cs.Value) + if err := f(newK, newV); err != nil { + return err + } + } + return nil +} + +func DecodeAccounts(dbKey, dbValue []byte) (uint64, []byte, []byte, error) { + blockN := binary.BigEndian.Uint64(dbKey) + if len(dbValue) < length.Addr { + return 0, nil, nil, fmt.Errorf("account changes purged for block %d", blockN) + } + k := dbValue[:length.Addr] + v := dbValue[length.Addr:] + return blockN, k, v, nil +} + +func FindAccount(c kv.CursorDupSort, blockNumber uint64, key []byte) ([]byte, error) { + k := hexutility.EncodeTs(blockNumber) + v, err := c.SeekBothRange(k, key) + if err != nil { + return nil, err + } + _, k, v, err = DecodeAccounts(k, v) + if err != nil { + return nil, err + } + if !bytes.HasPrefix(k, key) { + return nil, nil + } + return v, nil +} diff --git a/erigon-lib/kv/temporal/historyv2/account_changeset_test.go b/erigon-lib/kv/temporal/historyv2/account_changeset_test.go new file mode 100644 index 00000000000..231ce569284 --- /dev/null +++ b/erigon-lib/kv/temporal/historyv2/account_changeset_test.go @@ -0,0 +1,86 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package historyv2 + +import ( + "bytes" + "encoding/hex" + "fmt" + "reflect" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/kv" +) + +func TestEncodingAccount(t *testing.T) { + bkt := kv.AccountChangeSet + m := Mapper[bkt] + + ch := m.New() + // empty StorageChangeSset first + err := m.Encode(1, ch, func(k, v []byte) error { + return fmt.Errorf("must never call") + }) + assert.NoError(t, err) + + vals := [][]byte{ + hexutility.MustDecodeHex("f7f6db1eb17c6d582078e0ffdd0c"), + hexutility.MustDecodeHex("b1e9b5c16355eede662031dd621d08faf4ea"), + hexutility.MustDecodeHex("862cf52b74f1cea41ddd8ffa4b3e7c7790"), + } + numOfElements := 3 + for i := 0; i < numOfElements; i++ { + address := hexutility.MustDecodeHex(fmt.Sprintf("0xBe828AD8B538D1D691891F6c725dEdc5989abBc%d", i)) + err2 := ch.Add(address, vals[i]) + if err2 != nil { + t.Fatal(err) + } + } + + ch2 := m.New() + err = m.Encode(1, ch, func(k, v []byte) error { + var err error + _, k, v, err = m.Decode(k, v) + if err != nil { + return err + } + return ch2.Add(k, v) + }) + if err != nil { + t.Fatal(err) + } + + if !reflect.DeepEqual(ch, ch2) { + fmt.Println("ch", len(ch.Changes), "ch2", len(ch2.Changes)) + for i, v := range ch.Changes { + fmt.Println("Line ", i) + + if !bytes.Equal(v.Key, ch2.Changes[i].Key) || !bytes.Equal(v.Value, ch2.Changes[i].Value) { + fmt.Println("Diff ", i) + fmt.Println("k1", hex.EncodeToString(v.Key), len(v.Key)) + fmt.Println("k2", hex.EncodeToString(ch2.Changes[i].Key)) + fmt.Println("v1", hex.EncodeToString(v.Value)) + fmt.Println("v2", hex.EncodeToString(ch2.Changes[i].Value)) + } + } + fmt.Printf("%+v %+v\n", ch, ch2) + t.Fatal("not equal") + } +} diff --git a/erigon-lib/kv/temporal/historyv2/changeset.go b/erigon-lib/kv/temporal/historyv2/changeset.go new file mode 100644 index 00000000000..4ca0eeadef0 --- /dev/null +++ b/erigon-lib/kv/temporal/historyv2/changeset.go @@ -0,0 +1,260 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package historyv2 + +import ( + "bytes" + "encoding/binary" + "fmt" + math2 "math" + "reflect" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/kv" +) + +func NewChangeSet() *ChangeSet { + return &ChangeSet{ + Changes: make([]Change, 0), + } +} + +type Change struct { + Key []byte + Value []byte +} + +// ChangeSet is a map with keys of the same size. +// Both keys and values are byte strings. +type ChangeSet struct { + // Invariant: all keys are of the same size. + Changes []Change + keyLen int +} + +// BEGIN sort.Interface + +func (s *ChangeSet) Len() int { + return len(s.Changes) +} + +func (s *ChangeSet) Swap(i, j int) { + s.Changes[i], s.Changes[j] = s.Changes[j], s.Changes[i] +} + +func (s *ChangeSet) Less(i, j int) bool { + cmp := bytes.Compare(s.Changes[i].Key, s.Changes[j].Key) + if cmp == 0 { + cmp = bytes.Compare(s.Changes[i].Value, s.Changes[j].Value) + } + return cmp < 0 +} + +// END sort.Interface +func (s *ChangeSet) KeySize() int { + if s.keyLen != 0 { + return s.keyLen + } + for _, c := range s.Changes { + return len(c.Key) + } + return 0 +} + +func (s *ChangeSet) checkKeySize(key []byte) error { + if (s.Len() == 0 && s.KeySize() == 0) || (len(key) == s.KeySize() && len(key) > 0) { + return nil + } + + return fmt.Errorf("wrong key size in AccountChangeSet: expected %d, actual %d", s.KeySize(), len(key)) +} + +// Add adds a new entry to the AccountChangeSet. +// One must not add an existing key +// and may add keys only of the same size. +func (s *ChangeSet) Add(key []byte, value []byte) error { + if err := s.checkKeySize(key); err != nil { + return err + } + + s.Changes = append(s.Changes, Change{ + Key: key, + Value: value, + }) + return nil +} + +func (s *ChangeSet) ChangedKeys() map[string]struct{} { + m := make(map[string]struct{}, len(s.Changes)) + for i := range s.Changes { + m[string(s.Changes[i].Key)] = struct{}{} + } + return m +} + +func (s *ChangeSet) Equals(s2 *ChangeSet) bool { + return reflect.DeepEqual(s.Changes, s2.Changes) +} + +// Encoded Method +func FromDBFormat(dbKey, dbValue []byte) (uint64, []byte, []byte, error) { + if len(dbKey) == 8 { + return DecodeAccounts(dbKey, dbValue) + } else { + return DecodeStorage(dbKey, dbValue) + } +} + +func AvailableFrom(tx kv.Tx) (uint64, error) { + c, err := tx.Cursor(kv.AccountChangeSet) + if err != nil { + return math2.MaxUint64, err + } + defer c.Close() + k, _, err := c.First() + if err != nil { + return math2.MaxUint64, err + } + if len(k) == 0 { + return math2.MaxUint64, nil + } + return binary.BigEndian.Uint64(k), nil +} +func AvailableStorageFrom(tx kv.Tx) (uint64, error) { + c, err := tx.Cursor(kv.StorageChangeSet) + if err != nil { + return math2.MaxUint64, err + } + defer c.Close() + k, _, err := c.First() + if err != nil { + return math2.MaxUint64, err + } + if len(k) == 0 { + return math2.MaxUint64, nil + } + return binary.BigEndian.Uint64(k), nil +} + +func ForEach(db kv.Tx, bucket string, startkey []byte, walker func(blockN uint64, k, v []byte) error) error { + var blockN uint64 + return db.ForEach(bucket, startkey, func(k, v []byte) error { + var err error + blockN, k, v, err = FromDBFormat(k, v) + if err != nil { + return err + } + return walker(blockN, k, v) + }) +} +func ForPrefix(db kv.Tx, bucket string, startkey []byte, walker func(blockN uint64, k, v []byte) error) error { + var blockN uint64 + return db.ForPrefix(bucket, startkey, func(k, v []byte) error { + var err error + blockN, k, v, err = FromDBFormat(k, v) + if err != nil { + return err + } + return walker(blockN, k, v) + }) +} + +func Truncate(tx kv.RwTx, from uint64) error { + keyStart := hexutility.EncodeTs(from) + + { + c, err := tx.RwCursorDupSort(kv.AccountChangeSet) + if err != nil { + return err + } + defer c.Close() + for k, _, err := c.Seek(keyStart); k != nil; k, _, err = c.NextNoDup() { + if err != nil { + return err + } + if err = tx.Delete(kv.AccountChangeSet, k); err != nil { + return err + } + if err != nil { + return err + } + } + } + { + c, err := tx.RwCursorDupSort(kv.StorageChangeSet) + if err != nil { + return err + } + defer c.Close() + for k, _, err := c.Seek(keyStart); k != nil; k, _, err = c.NextNoDup() { + if err != nil { + return err + } + if err = tx.Delete(kv.StorageChangeSet, k); err != nil { + return err + } + } + } + return nil +} + +type CSMapper struct { + IndexBucket string + IndexChunkKey func([]byte, uint64) []byte + Find func(cursor kv.CursorDupSort, blockNumber uint64, key []byte) ([]byte, error) + New func() *ChangeSet + Encode Encoder + Decode Decoder +} + +var Mapper = map[string]CSMapper{ + kv.AccountChangeSet: { + IndexBucket: kv.E2AccountsHistory, + IndexChunkKey: AccountIndexChunkKey, + New: NewAccountChangeSet, + Find: FindAccount, + Encode: EncodeAccounts, + Decode: DecodeAccounts, + }, + kv.StorageChangeSet: { + IndexBucket: kv.E2StorageHistory, + IndexChunkKey: StorageIndexChunkKey, + Find: FindStorage, + New: NewStorageChangeSet, + Encode: EncodeStorage, + Decode: DecodeStorage, + }, +} + +func AccountIndexChunkKey(key []byte, blockNumber uint64) []byte { + blockNumBytes := make([]byte, length.Addr+8) + copy(blockNumBytes, key) + binary.BigEndian.PutUint64(blockNumBytes[length.Addr:], blockNumber) + + return blockNumBytes +} + +func StorageIndexChunkKey(key []byte, blockNumber uint64) []byte { + //remove incarnation and add block number + blockNumBytes := make([]byte, length.Addr+length.Hash+8) + copy(blockNumBytes, key[:length.Addr]) + copy(blockNumBytes[length.Addr:], key[length.Addr+length.Incarnation:]) + binary.BigEndian.PutUint64(blockNumBytes[length.Addr+length.Hash:], blockNumber) + + return blockNumBytes +} diff --git a/erigon-lib/kv/temporal/historyv2/find_by_history.go b/erigon-lib/kv/temporal/historyv2/find_by_history.go new file mode 100644 index 00000000000..42c895f2f9f --- /dev/null +++ b/erigon-lib/kv/temporal/historyv2/find_by_history.go @@ -0,0 +1,78 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package historyv2 + +import ( + "bytes" + "errors" + "fmt" + + "github.com/RoaringBitmap/roaring/roaring64" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" +) + +func FindByHistory(indexC kv.Cursor, changesC kv.CursorDupSort, storage bool, key []byte, timestamp uint64) ([]byte, bool, error) { + var csBucket string + if storage { + csBucket = kv.StorageChangeSet + } else { + csBucket = kv.AccountChangeSet + } + + k, v, seekErr := indexC.Seek(Mapper[csBucket].IndexChunkKey(key, timestamp)) + if seekErr != nil { + return nil, false, seekErr + } + + if k == nil { + return nil, false, nil + } + if storage { + if !bytes.Equal(k[:length.Addr], key[:length.Addr]) || + !bytes.Equal(k[length.Addr:length.Addr+length.Hash], key[length.Addr+length.Incarnation:]) { + return nil, false, nil + } + } else { + if !bytes.HasPrefix(k, key) { + return nil, false, nil + } + } + index := roaring64.New() + if _, err := index.ReadFrom(bytes.NewReader(v)); err != nil { + return nil, false, err + } + found, ok := bitmapdb.SeekInBitmap64(index, timestamp) + changeSetBlock := found + + var data []byte + var err error + if ok { + data, err = Mapper[csBucket].Find(changesC, changeSetBlock, key) + if err != nil { + if !errors.Is(err, ErrNotFound) { + return nil, false, fmt.Errorf("finding %x in the changeset %d: %w", key, changeSetBlock, err) + } + return nil, false, nil + } + } else { + return nil, false, nil + } + + return data, true, nil +} diff --git a/erigon-lib/kv/temporal/historyv2/readme.md b/erigon-lib/kv/temporal/historyv2/readme.md new file mode 100644 index 00000000000..5b35b0d8083 --- /dev/null +++ b/erigon-lib/kv/temporal/historyv2/readme.md @@ -0,0 +1,65 @@ +#Changesets encoding +## Storage changeset encoding +Storage encoding contains several blocks: Address hashes, Incarnations, Length of values, Values. AccountChangeSet is serialized in the following manner in order to facilitate binary search +### Address hashes +There are a lot of address hashes duplication in storage changeset when we have multiple changes in one contract. To avoid it we can store only unique address hashes. +First 4 bytes contains number or unique contract hashes in one changeset. +Then we store address hashes with sum of key hashes from first element. + +For example: for `addrHash1Inc1Key1, addrHash1Inc1Key2, addrHash2Inc1Key1, addrHash2Inc1Key3` it stores +`2,addrHash1,2,addrHash2,4` +### Incarnations +Currently, there are a few not default incarnations(!=1) in current state. That was the reason why we store incarnation only if it's not equal to fffffffe(inverted 1). +First part is 4 byte that contains number of not default incarnations +Then we store array of id of address hash(4 byte) plus incarnation(8 byte) +For example: for `addrHash1fffffffe..., addrHash1fffffffd...` it stores +`1,1,fffffffd` + +### Values lengths +The default value length is 32(common.Hash), but if we remove leading 0 then average size became ~7. Because a length of value could be from 0 to 32 we need this section to be able to find quite fast value by key. +It is contiguous array of accumulating value indexes like `len(val0), len(val0)+len(val1), ..., len(val0)+len(val1)+...+len(val_{N-1})` +To reduce cost of it we have three numbers: numOfUint8, numOfUint16, numOfUint32. They can answer to the question: How many lengths of values we can put to uint8, uint16, uint32. +This number could be huge if one of the contracts was suicided during block execution. Then we could have thousands of empty values, and we are able to store them in uint8(but it depends). +For example for values: "ffa","","faa" it stores `3,0,0,3,3,6` + +### Values +Contiguous array of values. + +### Finally +Value | Type | Comment +------------ | ------------- | ------------- +numOfUniqueElements | uint32 | +Address hashes | [numOfUniqueElements]{[32]byte+[4]byte} | [numOfUniqueElements](common.Hash + uint32) +numOfNotDefaultIncarnations | uint32 | mostly - 0 +Incarnations | [numOfNotDefaultIncarnations]{[4]byte + [8]byte} | []{idOfAddrHash(uint32) + incarnation(uint64)} +Keys | [][32]byte | []common.Hash +numOfUint8 | uint32 | +numOfUint16 | uint32 | +numOfUint32 | uint32 | +Values lengths in uint8 | [numOfUint8]uint8 | +Values lengths in uint16 | [numOfUint16]uint16 | +Values lengths in uint32 | [numOfUint32]uint32 | +Values | [][]byte | + + + + +## Account changeset encoding +AccountChangeSet is serialized in the following manner in order to facilitate binary search. Account changeset encoding contains several blocks: Keys, Length of values, Values. Key is address hash of account. Value is CBOR encoded account without storage root and code hash. + +### Keys +The number of keys N (uint32, 4 bytes) +Contiguous array of keys (N*32 bytes) +### Values lengths + Contiguous array of accumulating value indexes: +len(val0), len(val0)+len(val1), ..., len(val0)+len(val1)+...+len(val_{N-1}) +(4*N bytes since the lengths are treated as uint32). +### Values +Contiguous array of values. +### Finally +Value | Type | Comment +------------ | ------------- | ------------- +num of keys | uint32 | +address hashes | [num of keys][32]byte | [num of keys]common.Hash +values lengths | [num of keys]uint32 +values | [num of keys][]byte diff --git a/erigon-lib/kv/temporal/historyv2/storage_changeset.go b/erigon-lib/kv/temporal/historyv2/storage_changeset.go new file mode 100644 index 00000000000..61b435394c2 --- /dev/null +++ b/erigon-lib/kv/temporal/historyv2/storage_changeset.go @@ -0,0 +1,87 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package historyv2 + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "sort" + + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/kv" +) + +var ( + ErrNotFound = errors.New("not found") +) + +func NewStorageChangeSet() *ChangeSet { + return &ChangeSet{ + Changes: make([]Change, 0), + keyLen: length.Addr + length.Hash + length.Incarnation, + } +} + +func EncodeStorage(blockN uint64, s *ChangeSet, f func(k, v []byte) error) error { + sort.Sort(s) + keyPart := length.Addr + length.Incarnation + for _, cs := range s.Changes { + newK := make([]byte, length.BlockNum+keyPart) + binary.BigEndian.PutUint64(newK, blockN) + copy(newK[8:], cs.Key[:keyPart]) + newV := make([]byte, 0, length.Hash+len(cs.Value)) + newV = append(append(newV, cs.Key[keyPart:]...), cs.Value...) + if err := f(newK, newV); err != nil { + return err + } + } + return nil +} + +func DecodeStorage(dbKey, dbValue []byte) (uint64, []byte, []byte, error) { + blockN := binary.BigEndian.Uint64(dbKey) + if len(dbValue) < length.Hash { + return 0, nil, nil, fmt.Errorf("storage changes purged for block %d", blockN) + } + k := make([]byte, length.Addr+length.Incarnation+length.Hash) + dbKey = dbKey[length.BlockNum:] // remove BlockN bytes + copy(k, dbKey) + copy(k[len(dbKey):], dbValue[:length.Hash]) + v := dbValue[length.Hash:] + if len(v) == 0 { + v = nil + } + + return blockN, k, v, nil +} + +func FindStorage(c kv.CursorDupSort, blockNumber uint64, k []byte) ([]byte, error) { + addWithInc, loc := k[:length.Addr+length.Incarnation], k[length.Addr+length.Incarnation:] + seek := make([]byte, length.BlockNum+length.Addr+length.Incarnation) + binary.BigEndian.PutUint64(seek, blockNumber) + copy(seek[8:], addWithInc) + v, err := c.SeekBothRange(seek, loc) + if err != nil { + return nil, err + } + if !bytes.HasPrefix(v, loc) { + return nil, ErrNotFound + } + return v[length.Hash:], nil +} diff --git a/erigon-lib/metrics/counter.go b/erigon-lib/metrics/counter.go new file mode 100644 index 00000000000..3fd0415015b --- /dev/null +++ b/erigon-lib/metrics/counter.go @@ -0,0 +1,65 @@ +package metrics + +import ( + "fmt" + + "github.com/prometheus/client_golang/prometheus" + dto "github.com/prometheus/client_model/go" +) + +type Counter interface { + prometheus.Counter + ValueGetter + AddInt(v int) + AddUint64(v uint64) +} + +type counter struct { + prometheus.Counter +} + +// GetValue returns native float64 value stored by this counter +func (c *counter) GetValue() float64 { + var m dto.Metric + if err := c.Write(&m); err != nil { + panic(fmt.Errorf("calling GetValue with invalid metric: %w", err)) + } + + return m.GetCounter().GetValue() +} + +// GetValueUint64 returns native float64 value stored by this counter cast to +// an uint64 value for convenience +func (c *counter) GetValueUint64() uint64 { + return uint64(c.GetValue()) +} + +// AddInt adds an int value to the native float64 value stored by this counter. +// +// This is a convenience function for better UX which is safe for int values up +// to 2^53 (mantissa bits). +// +// This is fine for all usages in our codebase, and it is +// unlikely we will hit issues with this. +// +// If, however there is a new requirement that requires accuracy for more than +// 2^53 we can implement our own simple intCounter that satisfies the Counter +// interface. +func (c *counter) AddInt(v int) { + c.Add(float64(v)) +} + +// AddUint64 adds an uint64 value to the native float64 value stored by this counter. +// +// This is a convenience function for better UX which is safe for int values up +// to 2^53 (mantissa bits). +// +// This is fine for all usages in our codebase, and it is +// unlikely we will hit issues with this. +// +// If, however there is a new requirement that requires accuracy for more than +// 2^53 we can implement our own simple uintCounter that satisfies the Counter +// interface. +func (c *counter) AddUint64(v uint64) { + c.Add(float64(v)) +} diff --git a/erigon-lib/metrics/duration_observer.go b/erigon-lib/metrics/duration_observer.go new file mode 100644 index 00000000000..1b6b91d9060 --- /dev/null +++ b/erigon-lib/metrics/duration_observer.go @@ -0,0 +1,14 @@ +package metrics + +import ( + "time" +) + +type DurationObserver interface { + // ObserveDuration observes duration since start time + ObserveDuration(start time.Time) +} + +func secondsSince(start time.Time) float64 { + return time.Since(start).Seconds() +} diff --git a/erigon-lib/metrics/gauge.go b/erigon-lib/metrics/gauge.go new file mode 100644 index 00000000000..f9f7bc07751 --- /dev/null +++ b/erigon-lib/metrics/gauge.go @@ -0,0 +1,76 @@ +package metrics + +import ( + "fmt" + + "github.com/prometheus/client_golang/prometheus" + dto "github.com/prometheus/client_model/go" +) + +type Gauge interface { + prometheus.Gauge + ValueGetter + SetUint32(v uint32) + SetUint64(v uint64) + SetInt(v int) +} + +type gauge struct { + prometheus.Gauge +} + +// GetValue returns native float64 value stored by this gauge +func (g *gauge) GetValue() float64 { + var m dto.Metric + if err := g.Write(&m); err != nil { + panic(fmt.Errorf("calling GetValue with invalid metric: %w", err)) + } + + return m.GetGauge().GetValue() +} + +// GetValueUint64 returns native float64 value stored by this gauge cast to +// an uint64 value for convenience +func (g *gauge) GetValueUint64() uint64 { + return uint64(g.GetValue()) +} + +// SetUint32 sets gauge using an uint32 value. Note under the hood this +// is a cast to float64 which is the native type of prometheus gauges. +// +// This is a convenience function for better UX. +func (g *gauge) SetUint32(v uint32) { + g.Set(float64(v)) +} + +// SetUint64 sets gauge using an uint64 value. Note under the hood this +// is a cast to float64 which is the native type of prometheus gauges. +// +// This is a convenience function for better UX which is safe for uints up +// to 2^53 (mantissa bits). +// +// This is fine for all usages in our codebase, and it is +// unlikely we will hit issues with this. +// +// If, however there is a new requirement that requires accuracy for more than +// 2^53 we can implement our own simple uintGauge that satisfies the Gauge +// interface. +func (g *gauge) SetUint64(v uint64) { + g.Set(float64(v)) +} + +// SetInt sets gauge using an int value. Note under the hood this +// is a cast to float64 which is the native type of prometheus gauges. +// +// This is a convenience function for better UX which is safe for uints up +// to 2^53 (mantissa bits). +// +// This is fine for all usages in our codebase, and it is +// unlikely we will hit issues with this. +// +// If, however there is a new requirement that requires accuracy for more than +// 2^53 we can implement our own simple intGauge that satisfies the Gauge +// interface. +func (g *gauge) SetInt(v int) { + g.Set(float64(v)) +} diff --git a/erigon-lib/metrics/histogram.go b/erigon-lib/metrics/histogram.go new file mode 100644 index 00000000000..3477570eb27 --- /dev/null +++ b/erigon-lib/metrics/histogram.go @@ -0,0 +1,20 @@ +package metrics + +import ( + "time" + + "github.com/prometheus/client_golang/prometheus" +) + +type Histogram interface { + prometheus.Histogram + DurationObserver +} + +type histogram struct { + prometheus.Summary +} + +func (h *histogram) ObserveDuration(start time.Time) { + h.Observe(secondsSince(start)) +} diff --git a/erigon-lib/metrics/parsing.go b/erigon-lib/metrics/parsing.go new file mode 100644 index 00000000000..34e23ccccb2 --- /dev/null +++ b/erigon-lib/metrics/parsing.go @@ -0,0 +1,111 @@ +package metrics + +import ( + "fmt" + "regexp" + "strings" + + "github.com/prometheus/client_golang/prometheus" +) + +func parseMetric(s string) (string, prometheus.Labels, error) { + if len(s) == 0 { + return "", nil, fmt.Errorf("metric cannot be empty") + } + n := strings.IndexByte(s, '{') + if n < 0 { + if err := validateIdent(s); err != nil { + return "", nil, err + } + + return s, nil, nil + } + ident := s[:n] + s = s[n+1:] + if err := validateIdent(ident); err != nil { + return "", nil, err + } + if len(s) == 0 || s[len(s)-1] != '}' { + return "", nil, fmt.Errorf("missing closing curly brace at the end of %q", ident) + } + + tags, err := parseTags(s[:len(s)-1]) + + if err != nil { + return "", nil, err + } + + return ident, tags, nil +} + +func parseTags(s string) (prometheus.Labels, error) { + if len(s) == 0 { + return nil, nil + } + + var labels prometheus.Labels + + for { + n := strings.IndexByte(s, '=') + if n < 0 { + return nil, fmt.Errorf("missing `=` after %q", s) + } + ident := s[:n] + s = s[n+1:] + if err := validateIdent(ident); err != nil { + return nil, err + } + if len(s) == 0 || s[0] != '"' { + return nil, fmt.Errorf("missing starting `\"` for %q value; tail=%q", ident, s) + } + s = s[1:] + + value := "" + + for { + n = strings.IndexByte(s, '"') + if n < 0 { + return nil, fmt.Errorf("missing trailing `\"` for %q value; tail=%q", ident, s) + } + m := n + for m > 0 && s[m-1] == '\\' { + m-- + } + if (n-m)%2 == 1 { + value = value + s[:n] + s = s[n+1:] + continue + } + value = value + s[:n] + if labels == nil { + labels = prometheus.Labels{} + } + labels[ident] = value + s = s[n+1:] + if len(s) == 0 { + return labels, nil + } + if !strings.HasPrefix(s, ",") { + return nil, fmt.Errorf("missing `,` after %q value; tail=%q", ident, s) + } + s = skipSpace(s[1:]) + break + } + } +} + +func skipSpace(s string) string { + for len(s) > 0 && s[0] == ' ' { + s = s[1:] + } + return s +} + +func validateIdent(s string) error { + if !identRegexp.MatchString(s) { + return fmt.Errorf("invalid identifier %q", s) + } + return nil +} + +var identRegexp = regexp.MustCompile("^[a-zA-Z_:.][a-zA-Z0-9_:.]*$") diff --git a/erigon-lib/metrics/register.go b/erigon-lib/metrics/register.go new file mode 100644 index 00000000000..2ac13a6b4ca --- /dev/null +++ b/erigon-lib/metrics/register.go @@ -0,0 +1,173 @@ +package metrics + +import ( + "fmt" +) + +// NewCounter registers and returns new counter with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned counter is safe to use from concurrent goroutines. +func NewCounter(name string) Counter { + c, err := defaultSet.NewCounter(name) + if err != nil { + panic(fmt.Errorf("could not create new counter: %w", err)) + } + + return &counter{c} +} + +// GetOrCreateCounter returns registered counter with the given name +// or creates new counter if the registry doesn't contain counter with +// the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned counter is safe to use from concurrent goroutines. +// +// Performance tip: prefer NewCounter instead of GetOrCreateCounter. +func GetOrCreateCounter(name string) Counter { + c, err := defaultSet.GetOrCreateCounter(name) + if err != nil { + panic(fmt.Errorf("could not get or create new counter: %w", err)) + } + + return &counter{c} +} + +// NewGauge registers and returns gauge with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned gauge is safe to use from concurrent goroutines. +func NewGauge(name string) Gauge { + g, err := defaultSet.NewGauge(name) + if err != nil { + panic(fmt.Errorf("could not create new gauge: %w", err)) + } + + return &gauge{g} +} + +// GetOrCreateGauge returns registered gauge with the given name +// or creates new gauge if the registry doesn't contain gauge with +// the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned gauge is safe to use from concurrent goroutines. +// +// Performance tip: prefer NewGauge instead of GetOrCreateGauge. +func GetOrCreateGauge(name string) Gauge { + g, err := defaultSet.GetOrCreateGauge(name) + if err != nil { + panic(fmt.Errorf("could not get or create new gauge: %w", err)) + } + + return &gauge{g} +} + +// NewSummary creates and returns new summary with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned summary is safe to use from concurrent goroutines. +func NewSummary(name string) Summary { + s, err := defaultSet.NewSummary(name) + if err != nil { + panic(fmt.Errorf("could not create new summary: %w", err)) + } + + return &summary{s} +} + +// GetOrCreateSummary returns registered summary with the given name +// or creates new summary if the registry doesn't contain summary with +// the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned summary is safe to use from concurrent goroutines. +// +// Performance tip: prefer NewSummary instead of GetOrCreateSummary. +func GetOrCreateSummary(name string) Summary { + s, err := defaultSet.GetOrCreateSummary(name) + if err != nil { + panic(fmt.Errorf("could not get or create new summary: %w", err)) + } + + return &summary{s} +} + +// NewHistogram creates and returns new histogram with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned histogram is safe to use from concurrent goroutines. +func NewHistogram(name string) Histogram { + h, err := defaultSet.NewHistogram(name) + if err != nil { + panic(fmt.Errorf("could not create new histogram: %w", err)) + } + + return &histogram{h} +} + +// GetOrCreateHistogram returns registered histogram with the given name +// or creates new histogram if the registry doesn't contain histogram with +// the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned histogram is safe to use from concurrent goroutines. +// +// Performance tip: prefer NewHistogram instead of GetOrCreateHistogram. +func GetOrCreateHistogram(name string) Histogram { + h, err := defaultSet.GetOrCreateHistogram(name) + if err != nil { + panic(fmt.Errorf("could not get or create new histogram: %w", err)) + } + + return &histogram{h} +} diff --git a/erigon-lib/metrics/set.go b/erigon-lib/metrics/set.go new file mode 100644 index 00000000000..2b0418fd2bd --- /dev/null +++ b/erigon-lib/metrics/set.go @@ -0,0 +1,508 @@ +package metrics + +import ( + "fmt" + "sort" + "strings" + "sync" + "time" + + "github.com/prometheus/client_golang/prometheus" +) + +type namedMetric struct { + name string + metric prometheus.Metric + isAux bool +} + +// Set is a set of metrics. +// +// Metrics belonging to a set are exported separately from global metrics. +// +// Set.WritePrometheus must be called for exporting metrics from the set. +type Set struct { + mu sync.Mutex + a []*namedMetric + m map[string]*namedMetric +} + +var defaultSet = NewSet() + +// NewSet creates new set of metrics. +// +// Pass the set to RegisterSet() function in order to export its metrics via global WritePrometheus() call. +func NewSet() *Set { + return &Set{ + m: make(map[string]*namedMetric), + } +} + +func (s *Set) Describe(ch chan<- *prometheus.Desc) { + lessFunc := func(i, j int) bool { + return s.a[i].name < s.a[j].name + } + s.mu.Lock() + if !sort.SliceIsSorted(s.a, lessFunc) { + sort.Slice(s.a, lessFunc) + } + sa := append([]*namedMetric(nil), s.a...) + s.mu.Unlock() + for _, nm := range sa { + ch <- nm.metric.Desc() + } +} + +func (s *Set) Collect(ch chan<- prometheus.Metric) { + lessFunc := func(i, j int) bool { + return s.a[i].name < s.a[j].name + } + s.mu.Lock() + if !sort.SliceIsSorted(s.a, lessFunc) { + sort.Slice(s.a, lessFunc) + } + sa := append([]*namedMetric(nil), s.a...) + s.mu.Unlock() + for _, nm := range sa { + ch <- nm.metric + } +} + +// NewHistogram creates and returns new histogram in s with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned histogram is safe to use from concurrent goroutines. +func (s *Set) NewHistogram(name string, help ...string) (prometheus.Histogram, error) { + h, err := newHistogram(name, help...) + if err != nil { + return nil, err + } + + s.registerMetric(name, h) + return h, nil +} + +func newHistogram(name string, help ...string) (prometheus.Histogram, error) { + name, labels, err := parseMetric(name) + if err != nil { + return nil, err + } + + return prometheus.NewHistogram(prometheus.HistogramOpts{ + Name: name, + ConstLabels: labels, + Help: strings.Join(help, " "), + }), nil +} + +// GetOrCreateHistogram returns registered histogram in s with the given name +// or creates new histogram if s doesn't contain histogram with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned histogram is safe to use from concurrent goroutines. +// +// Performance tip: prefer NewHistogram instead of GetOrCreateHistogram. +func (s *Set) GetOrCreateHistogram(name string, help ...string) (prometheus.Histogram, error) { + s.mu.Lock() + nm := s.m[name] + s.mu.Unlock() + if nm == nil { + metric, err := newHistogram(name, help...) + if err != nil { + return nil, fmt.Errorf("invalid metric name %q: %w", name, err) + } + + nmNew := &namedMetric{ + name: name, + metric: metric, + } + + s.mu.Lock() + nm = s.m[name] + if nm == nil { + nm = nmNew + s.m[name] = nm + s.a = append(s.a, nm) + } + s.mu.Unlock() + } + + h, ok := nm.metric.(prometheus.Histogram) + if !ok { + return nil, fmt.Errorf("metric %q isn't a Histogram. It is %T", name, nm.metric) + } + + return h, nil +} + +// NewCounter registers and returns new counter with the given name in the s. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned counter is safe to use from concurrent goroutines. +func (s *Set) NewCounter(name string, help ...string) (prometheus.Counter, error) { + c, err := newCounter(name, help...) + if err != nil { + return nil, err + } + + s.registerMetric(name, c) + return c, nil +} + +func newCounter(name string, help ...string) (prometheus.Counter, error) { + name, labels, err := parseMetric(name) + if err != nil { + return nil, err + } + + return prometheus.NewCounter(prometheus.CounterOpts{ + Name: name, + Help: strings.Join(help, " "), + ConstLabels: labels, + }), nil +} + +// GetOrCreateCounter returns registered counter in s with the given name +// or creates new counter if s doesn't contain counter with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned counter is safe to use from concurrent goroutines. +// +// Performance tip: prefer NewCounter instead of GetOrCreateCounter. +func (s *Set) GetOrCreateCounter(name string, help ...string) (prometheus.Counter, error) { + s.mu.Lock() + nm := s.m[name] + s.mu.Unlock() + if nm == nil { + // Slow path - create and register missing counter. + metric, err := newCounter(name, help...) + if err != nil { + return nil, fmt.Errorf("invalid metric name %q: %w", name, err) + } + + nmNew := &namedMetric{ + name: name, + metric: metric, + } + s.mu.Lock() + nm = s.m[name] + if nm == nil { + nm = nmNew + s.m[name] = nm + s.a = append(s.a, nm) + } + s.mu.Unlock() + } + + c, ok := nm.metric.(prometheus.Counter) + if !ok { + return nil, fmt.Errorf("metric %q isn't a Counter. It is %T", name, nm.metric) + } + + return c, nil +} + +// NewGauge registers and returns gauge with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// f must be safe for concurrent calls. +// +// The returned gauge is safe to use from concurrent goroutines. +func (s *Set) NewGauge(name string, help ...string) (prometheus.Gauge, error) { + g, err := newGauge(name, help...) + if err != nil { + return nil, err + } + + s.registerMetric(name, g) + return g, nil +} + +func newGauge(name string, help ...string) (prometheus.Gauge, error) { + name, labels, err := parseMetric(name) + if err != nil { + return nil, err + } + + return prometheus.NewGauge(prometheus.GaugeOpts{ + Name: name, + Help: strings.Join(help, " "), + ConstLabels: labels, + }), nil +} + +// GetOrCreateGauge returns registered gauge with the given name in s +// or creates new gauge if s doesn't contain gauge with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned gauge is safe to use from concurrent goroutines. +// +// Performance tip: prefer NewGauge instead of GetOrCreateGauge. +func (s *Set) GetOrCreateGauge(name string, help ...string) (prometheus.Gauge, error) { + s.mu.Lock() + nm := s.m[name] + s.mu.Unlock() + if nm == nil { + // Slow path - create and register missing gauge. + metric, err := newGauge(name, help...) + if err != nil { + return nil, fmt.Errorf("invalid metric name %q: %w", name, err) + } + + nmNew := &namedMetric{ + name: name, + metric: metric, + } + s.mu.Lock() + nm = s.m[name] + if nm == nil { + nm = nmNew + s.m[name] = nm + s.a = append(s.a, nm) + } + s.mu.Unlock() + } + + g, ok := nm.metric.(prometheus.Gauge) + if !ok { + return nil, fmt.Errorf("metric %q isn't a Gauge. It is %T", name, nm.metric) + } + + return g, nil +} + +const defaultSummaryWindow = 5 * time.Minute + +var defaultSummaryQuantiles = map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.97: 0.003, 0.99: 0.001} + +// NewSummary creates and returns new summary with the given name in s. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned summary is safe to use from concurrent goroutines. +func (s *Set) NewSummary(name string, help ...string) (prometheus.Summary, error) { + return s.NewSummaryExt(name, defaultSummaryWindow, defaultSummaryQuantiles, help...) +} + +func newSummary(name string, window time.Duration, quantiles map[float64]float64, help ...string) (prometheus.Summary, error) { + name, labels, err := parseMetric(name) + if err != nil { + return nil, err + } + + return prometheus.NewSummary(prometheus.SummaryOpts{ + Name: name, + ConstLabels: labels, + Objectives: quantiles, + MaxAge: window, + Help: strings.Join(help, " "), + }), nil +} + +// GetOrCreateSummary returns registered summary with the given name in s +// or creates new summary if s doesn't contain summary with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned summary is safe to use from concurrent goroutines. +// +// Performance tip: prefer NewSummary instead of GetOrCreateSummary. +func (s *Set) GetOrCreateSummary(name string, help ...string) (prometheus.Summary, error) { + return s.GetOrCreateSummaryExt(name, defaultSummaryWindow, defaultSummaryQuantiles, help...) +} + +// NewSummaryExt creates and returns new summary in s with the given name, +// window and quantiles. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned summary is safe to use from concurrent goroutines. +func (s *Set) NewSummaryExt(name string, window time.Duration, quantiles map[float64]float64, help ...string) (prometheus.Summary, error) { + metric, err := newSummary(name, window, quantiles, help...) + if err != nil { + return nil, fmt.Errorf("invalid metric name %q: %w", name, err) + } + + s.registerMetric(name, metric) + return metric, nil +} + +// GetOrCreateSummaryExt returns registered summary with the given name, +// window and quantiles in s or creates new summary if s doesn't +// contain summary with the given name. +// +// name must be valid Prometheus-compatible metric with possible labels. +// For instance, +// +// - foo +// - foo{bar="baz"} +// - foo{bar="baz",aaa="b"} +// +// The returned summary is safe to use from concurrent goroutines. +// +// Performance tip: prefer NewSummaryExt instead of GetOrCreateSummaryExt. +func (s *Set) GetOrCreateSummaryExt(name string, window time.Duration, quantiles map[float64]float64, help ...string) (prometheus.Summary, error) { + s.mu.Lock() + nm := s.m[name] + s.mu.Unlock() + if nm == nil { + // Slow path - create and register missing summary. + metric, err := newSummary(name, window, quantiles, help...) + if err != nil { + return nil, fmt.Errorf("invalid metric name %q: %w", name, err) + } + + nmNew := &namedMetric{ + name: name, + metric: metric, + } + s.mu.Lock() + nm = s.m[name] + if nm == nil { + nm = nmNew + s.m[name] = nm + s.a = append(s.a, nm) + } + s.mu.Unlock() + } + + sm, ok := nm.metric.(prometheus.Summary) + if !ok { + return nil, fmt.Errorf("metric %q isn't a Summary. It is %T", name, nm.metric) + } + + return sm, nil +} + +func (s *Set) registerMetric(name string, m prometheus.Metric) { + s.mu.Lock() + defer s.mu.Unlock() + s.mustRegisterLocked(name, m) +} + +// mustRegisterLocked registers given metric with the given name. +// +// Panics if the given name was already registered before. +func (s *Set) mustRegisterLocked(name string, m prometheus.Metric) { + _, ok := s.m[name] + if !ok { + nm := &namedMetric{ + name: name, + metric: m, + } + s.m[name] = nm + s.a = append(s.a, nm) + } + if ok { + panic(fmt.Errorf("metric %q is already registered", name)) + } +} + +// UnregisterMetric removes metric with the given name from s. +// +// True is returned if the metric has been removed. +// False is returned if the given metric is missing in s. +func (s *Set) UnregisterMetric(name string) bool { + s.mu.Lock() + defer s.mu.Unlock() + + nm, ok := s.m[name] + if !ok { + return false + } + return s.unregisterMetricLocked(nm) +} + +func (s *Set) unregisterMetricLocked(nm *namedMetric) bool { + name := nm.name + delete(s.m, name) + + deleteFromList := func(metricName string) { + for i, nm := range s.a { + if nm.name == metricName { + s.a = append(s.a[:i], s.a[i+1:]...) + return + } + } + panic(fmt.Errorf("cannot find metric %q in the list of registered metrics", name)) + } + + // remove metric from s.a + deleteFromList(name) + + return true +} + +// UnregisterAllMetrics de-registers all metrics registered in s. +func (s *Set) UnregisterAllMetrics() { + metricNames := s.ListMetricNames() + for _, name := range metricNames { + s.UnregisterMetric(name) + } +} + +// ListMetricNames returns sorted list of all the metrics in s. +func (s *Set) ListMetricNames() []string { + s.mu.Lock() + defer s.mu.Unlock() + metricNames := make([]string, 0, len(s.m)) + for _, nm := range s.m { + if nm.isAux { + continue + } + metricNames = append(metricNames, nm.name) + } + sort.Strings(metricNames) + return metricNames +} diff --git a/erigon-lib/metrics/setup.go b/erigon-lib/metrics/setup.go new file mode 100644 index 00000000000..e3c6a5e4ef2 --- /dev/null +++ b/erigon-lib/metrics/setup.go @@ -0,0 +1,35 @@ +package metrics + +import ( + "fmt" + "net/http" + + "github.com/ledgerwatch/log/v3" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" +) + +var EnabledExpensive = false + +// Setup starts a dedicated metrics server at the given address. +// This function enables metrics reporting separate from pprof. +func Setup(address string, logger log.Logger) *http.ServeMux { + prometheus.DefaultRegisterer.MustRegister(defaultSet) + + prometheusMux := http.NewServeMux() + prometheusMux.Handle("/debug/metrics/prometheus", promhttp.Handler()) + + promServer := &http.Server{ + Addr: address, + Handler: prometheusMux, + } + + go func() { + if err := promServer.ListenAndServe(); err != nil { + logger.Error("Failure in running Prometheus server", "err", err) + } + }() + + logger.Info("Enabling metrics export to prometheus", "path", fmt.Sprintf("http://%s/debug/metrics/prometheus", address)) + return prometheusMux +} diff --git a/erigon-lib/metrics/summary.go b/erigon-lib/metrics/summary.go new file mode 100644 index 00000000000..615c487edef --- /dev/null +++ b/erigon-lib/metrics/summary.go @@ -0,0 +1,20 @@ +package metrics + +import ( + "time" + + "github.com/prometheus/client_golang/prometheus" +) + +type Summary interface { + prometheus.Summary + DurationObserver +} + +type summary struct { + prometheus.Summary +} + +func (s *summary) ObserveDuration(start time.Time) { + s.Observe(secondsSince(start)) +} diff --git a/metrics/methelp/timer.go b/erigon-lib/metrics/timer.go similarity index 75% rename from metrics/methelp/timer.go rename to erigon-lib/metrics/timer.go index 3aefda89d1b..1608e666d51 100644 --- a/metrics/methelp/timer.go +++ b/erigon-lib/metrics/timer.go @@ -1,48 +1,47 @@ -package methelp +package metrics import ( "fmt" "strings" "time" - - "github.com/VictoriaMetrics/metrics" ) type HistTimer struct { - *metrics.Histogram - + Histogram start time.Time - - name string + name string } func NewHistTimer(name string) *HistTimer { rawName := strings.Split(name, "{") return &HistTimer{ - Histogram: metrics.GetOrCreateCompatibleHistogram(name), + Histogram: GetOrCreateHistogram(name), start: time.Now(), name: rawName[0], } } func (h *HistTimer) PutSince() { - h.Histogram.UpdateDuration(h.start) + h.Histogram.ObserveDuration(h.start) } func (h *HistTimer) Tag(pairs ...string) *HistTimer { if len(pairs)%2 != 0 { pairs = append(pairs, "UNEQUAL_KEY_VALUE_TAGS") } - toJoin := []string{} + + var toJoin []string for i := 0; i < len(pairs); i = i + 2 { toJoin = append(toJoin, fmt.Sprintf(`%s="%s"`, pairs[i], pairs[i+1])) } + tags := "" if len(toJoin) > 0 { tags = "{" + strings.Join(toJoin, ",") + "}" } + return &HistTimer{ - Histogram: metrics.GetOrCreateCompatibleHistogram(h.name + tags), + Histogram: GetOrCreateHistogram(h.name + tags), start: time.Now(), name: h.name, } diff --git a/erigon-lib/metrics/value_getter.go b/erigon-lib/metrics/value_getter.go new file mode 100644 index 00000000000..e4f24e20505 --- /dev/null +++ b/erigon-lib/metrics/value_getter.go @@ -0,0 +1,6 @@ +package metrics + +type ValueGetter interface { + GetValue() float64 + GetValueUint64() uint64 +} diff --git a/erigon-lib/mmap/mmap_unix.go b/erigon-lib/mmap/mmap_unix.go new file mode 100644 index 00000000000..4c98a05b071 --- /dev/null +++ b/erigon-lib/mmap/mmap_unix.go @@ -0,0 +1,112 @@ +//go:build !windows + +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package mmap + +import ( + "errors" + "fmt" + "os" + "syscall" + "unsafe" + + "golang.org/x/sys/unix" +) + +const MaxMapSize = 0xFFFFFFFFFFFF + +// mmap memory maps a DB's data file. +func MmapRw(f *os.File, size int) ([]byte, *[MaxMapSize]byte, error) { + // Map the data file to memory. + mmapHandle1, err := unix.Mmap(int(f.Fd()), 0, size, syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_SHARED) + if err != nil { + return nil, nil, err + } + + // Advise the kernel that the mmap is accessed randomly. + err = unix.Madvise(mmapHandle1, syscall.MADV_RANDOM) + if err != nil && !errors.Is(err, syscall.ENOSYS) { + // Ignore not implemented error in kernel because it still works. + return nil, nil, fmt.Errorf("madvise: %w", err) + } + mmapHandle2 := (*[MaxMapSize]byte)(unsafe.Pointer(&mmapHandle1[0])) + return mmapHandle1, mmapHandle2, nil +} +func Mmap(f *os.File, size int) ([]byte, *[MaxMapSize]byte, error) { + // Map the data file to memory. + mmapHandle1, err := unix.Mmap(int(f.Fd()), 0, size, syscall.PROT_READ, syscall.MAP_SHARED) + if err != nil { + return nil, nil, err + } + + // Advise the kernel that the mmap is accessed randomly. + err = unix.Madvise(mmapHandle1, syscall.MADV_RANDOM) + if err != nil && !errors.Is(err, syscall.ENOSYS) { + // Ignore not implemented error in kernel because it still works. + return nil, nil, fmt.Errorf("madvise: %w", err) + } + mmapHandle2 := (*[MaxMapSize]byte)(unsafe.Pointer(&mmapHandle1[0])) + return mmapHandle1, mmapHandle2, nil +} + +func MadviseSequential(mmapHandle1 []byte) error { + err := unix.Madvise(mmapHandle1, syscall.MADV_SEQUENTIAL) + if err != nil && !errors.Is(err, syscall.ENOSYS) { + // Ignore not implemented error in kernel because it still works. + return fmt.Errorf("madvise: %w", err) + } + return nil +} + +func MadviseNormal(mmapHandle1 []byte) error { + err := unix.Madvise(mmapHandle1, syscall.MADV_NORMAL) + if err != nil && !errors.Is(err, syscall.ENOSYS) { + // Ignore not implemented error in kernel because it still works. + return fmt.Errorf("madvise: %w", err) + } + return nil +} + +func MadviseWillNeed(mmapHandle1 []byte) error { + err := unix.Madvise(mmapHandle1, syscall.MADV_WILLNEED) + if err != nil && !errors.Is(err, syscall.ENOSYS) { + // Ignore not implemented error in kernel because it still works. + return fmt.Errorf("madvise: %w", err) + } + return nil +} + +func MadviseRandom(mmapHandle1 []byte) error { + err := unix.Madvise(mmapHandle1, syscall.MADV_RANDOM) + if err != nil && !errors.Is(err, syscall.ENOSYS) { + // Ignore not implemented error in kernel because it still works. + return fmt.Errorf("madvise: %w", err) + } + return nil +} + +// munmap unmaps a DB's data file from memory. +func Munmap(mmapHandle1 []byte, _ *[MaxMapSize]byte) error { + // Ignore the unmap if we have no mapped data. + if mmapHandle1 == nil { + return nil + } + // Unmap using the original byte slice. + err := unix.Munmap(mmapHandle1) + return err +} diff --git a/erigon-lib/mmap/mmap_windows.go b/erigon-lib/mmap/mmap_windows.go new file mode 100644 index 00000000000..b343ebb4024 --- /dev/null +++ b/erigon-lib/mmap/mmap_windows.go @@ -0,0 +1,68 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package mmap + +import ( + "os" + "unsafe" + + "golang.org/x/sys/windows" +) + +const MaxMapSize = 0xFFFFFFFFFFFF + +func Mmap(f *os.File, size int) ([]byte, *[MaxMapSize]byte, error) { + // Open a file mapping handle. + sizelo := uint32(size >> 32) + sizehi := uint32(size) & 0xffffffff + h, errno := windows.CreateFileMapping(windows.Handle(f.Fd()), nil, windows.PAGE_READONLY, sizelo, sizehi, nil) + if h == 0 { + return nil, nil, os.NewSyscallError("CreateFileMapping", errno) + } + + // Create the memory map. + addr, errno := windows.MapViewOfFile(h, windows.FILE_MAP_READ, 0, 0, uintptr(size)) + if addr == 0 { + return nil, nil, os.NewSyscallError("MapViewOfFile", errno) + } + + // Close mapping handle. + if err := windows.CloseHandle(windows.Handle(h)); err != nil { + return nil, nil, os.NewSyscallError("CloseHandle", err) + } + + // Convert to a byte array. + mmapHandle2 := ((*[MaxMapSize]byte)(unsafe.Pointer(addr))) + return mmapHandle2[:size], mmapHandle2, nil +} + +func MadviseSequential(mmapHandle1 []byte) error { return nil } +func MadviseNormal(mmapHandle1 []byte) error { return nil } +func MadviseWillNeed(mmapHandle1 []byte) error { return nil } +func MadviseRandom(mmapHandle1 []byte) error { return nil } + +func Munmap(_ []byte, mmapHandle2 *[MaxMapSize]byte) error { + if mmapHandle2 == nil { + return nil + } + + addr := (uintptr)(unsafe.Pointer(&mmapHandle2[0])) + if err := windows.UnmapViewOfFile(addr); err != nil { + return os.NewSyscallError("UnmapViewOfFile", err) + } + return nil +} diff --git a/erigon-lib/mmap/total_memory.go b/erigon-lib/mmap/total_memory.go new file mode 100644 index 00000000000..75a2f38d7d8 --- /dev/null +++ b/erigon-lib/mmap/total_memory.go @@ -0,0 +1,22 @@ +package mmap + +import ( + "runtime/debug" + + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/pbnjay/memory" +) + +func TotalMemory() uint64 { + mem := memory.TotalMemory() + + if cgroupsMemLimit, err := cgroupsMemoryLimit(); (err == nil) && (cgroupsMemLimit > 0) { + mem = cmp.Min(mem, cgroupsMemLimit) + } + + if goMemLimit := debug.SetMemoryLimit(-1); goMemLimit > 0 { + mem = cmp.Min(mem, uint64(goMemLimit)) + } + + return mem +} diff --git a/erigon-lib/mmap/total_memory_cgroups.go b/erigon-lib/mmap/total_memory_cgroups.go new file mode 100644 index 00000000000..dbca502d02f --- /dev/null +++ b/erigon-lib/mmap/total_memory_cgroups.go @@ -0,0 +1,118 @@ +//go:build linux + +/* +https://github.com/raulk/go-watchdog +https://github.com/elee1766/go-watchdog + +The MIT License (MIT) + +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. +*/ + +package mmap + +import ( + "errors" + "fmt" + "os" + + "github.com/containerd/cgroups/v3" + "github.com/containerd/cgroups/v3/cgroup1" + "github.com/containerd/cgroups/v3/cgroup2" +) + +// cgroupsMemoryLimit will try to discover +// the memory limit from the cgroup of the process (derived from /proc/self/cgroup), +// or from the root cgroup path if the PID == 1 (which indicates that the process +// is running in a container). +// +// Memory usage is calculated by querying the cgroup stats. +// +// This function will return an error immediately if the OS does not support cgroups, +// or if another error occurs during initialization. +func cgroupsMemoryLimit() (uint64, error) { + switch cgroups.Mode() { + case cgroups.Unified: + return cgroupsV2MemoryLimit() + case cgroups.Legacy: + return cgroupsV1MemoryLimit() + case cgroups.Unavailable: + fallthrough + default: + return 0, errors.New("cgroups not supported in this environment") + } +} + +func cgroupsV1MemoryLimit() (uint64, error) { + // use self path unless our PID is 1, in which case we're running inside + // a container and our limits are in the root path. + path := cgroup1.NestedPath("") + if pid := os.Getpid(); pid == 1 { + path = cgroup1.RootPath + } + + cgroup, err := cgroup1.Load(path, cgroup1.WithHiearchy(func() ([]cgroup1.Subsystem, error) { + system, err := cgroup1.Default() + if err != nil { + return nil, err + } + var out []cgroup1.Subsystem + for _, v := range system { + switch v.Name() { + case cgroup1.Memory: + out = append(out, v) + } + } + return out, nil + })) + if err != nil { + return 0, fmt.Errorf("failed to load cgroup1 for process: %w", err) + } + + if stat, err := cgroup.Stat(); err != nil { + return 0, fmt.Errorf("failed to load memory cgroup1 stats: %w", err) + } else if stat.Memory == nil || stat.Memory.Usage == nil { + return 0, fmt.Errorf("cgroup1 memory stats are nil; aborting") + } else { + return stat.Memory.Usage.Limit, nil + } +} + +func cgroupsV2MemoryLimit() (uint64, error) { + // use self path unless our PID is 1, in which case we're running inside + // a container and our limits are in the root path. + pid := os.Getpid() + path, err := cgroup2.PidGroupPath(pid) + if err != nil { + return 0, fmt.Errorf("failed to load cgroup2 path for process pid %d: %w", pid, err) + } + + cgroup, err := cgroup2.Load(path) + if err != nil { + return 0, fmt.Errorf("failed to load cgroup2 for process: %w", err) + } + + if stat, err := cgroup.Stat(); err != nil { + return 0, fmt.Errorf("failed to load cgroup2 memory stats: %w", err) + } else if stat.Memory == nil { + return 0, fmt.Errorf("cgroup2 memory stats are nil; aborting") + } else { + return stat.Memory.UsageLimit, nil + } +} diff --git a/erigon-lib/mmap/total_memory_cgroups_stub.go b/erigon-lib/mmap/total_memory_cgroups_stub.go new file mode 100644 index 00000000000..0d921aa905b --- /dev/null +++ b/erigon-lib/mmap/total_memory_cgroups_stub.go @@ -0,0 +1,11 @@ +//go:build !linux + +package mmap + +import ( + "errors" +) + +func cgroupsMemoryLimit() (uint64, error) { + return 0, errors.New("cgroups not supported in this environment") +} diff --git a/erigon-lib/patricia/patricia.go b/erigon-lib/patricia/patricia.go new file mode 100644 index 00000000000..f2ccc86c51b --- /dev/null +++ b/erigon-lib/patricia/patricia.go @@ -0,0 +1,795 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package patricia + +import ( + "fmt" + "math/bits" + "strings" + + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/sais" + "golang.org/x/exp/slices" +) + +// Implementation of paticia tree for efficient search of substrings from a dictionary in a given string +type node struct { + val interface{} // value associated with the key + n0 *node + n1 *node + p0 uint32 + p1 uint32 +} + +func tostr(x uint32) string { + str := fmt.Sprintf("%b", x) + for len(str) < 32 { + str = "0" + str + } + return str[:x&0x1f] +} + +// print assumes values are byte slices +func (n *node) print(sb *strings.Builder, indent string) { + sb.WriteString(indent) + fmt.Fprintf(sb, "%p ", n) + sb.WriteString(tostr(n.p0)) + sb.WriteString("\n") + if n.n0 != nil { + n.n0.print(sb, indent+" ") + } + sb.WriteString(indent) + fmt.Fprintf(sb, "%p ", n) + sb.WriteString(tostr(n.p1)) + sb.WriteString("\n") + if n.n1 != nil { + n.n1.print(sb, indent+" ") + } + if n.val != nil { + sb.WriteString(indent) + sb.WriteString("val:") + fmt.Fprintf(sb, " %x", n.val.([]byte)) + sb.WriteString("\n") + } +} + +func (n *node) String() string { + var sb strings.Builder + n.print(&sb, "") + return sb.String() +} + +// state represent a position anywhere inside patricia tree +// position can be identified by combination of node, and the partitioning +// of that node's p0 or p1 into head and tail. +// As with p0 and p1, head and tail are encoded as follows: +// lowest 5 bits encode the length in bits, and the remaining 27 bits +// encode the actual head or tail. +// For example, if the position is at the beginning of a node, +// head would be zero, and tail would be equal to either p0 or p1, +// depending on whether the position corresponds to going left (0) or right (1). +type state struct { + n *node + head uint32 + tail uint32 +} + +func (s *state) String() string { + return fmt.Sprintf("%p head %s tail %s", s.n, tostr(s.head), tostr(s.tail)) +} + +func (s *state) reset(n *node) { + s.n = n + s.head = 0 + s.tail = 0 +} + +func makestate(n *node) *state { + return &state{n: n, head: 0, tail: 0} +} + +// transition consumes next byte of the key, moves the state to corresponding +// node of the patricia tree and returns divergence prefix (0 if there is no divergence) +func (s *state) transition(b byte, readonly bool) uint32 { + bitsLeft := 8 // Bits in b to process + b32 := uint32(b) << 24 + for bitsLeft > 0 { + if s.head == 0 { + // tail has not been determined yet, do it now + if b32&0x80000000 == 0 { + s.tail = s.n.p0 + } else { + s.tail = s.n.p1 + } + } + if s.tail == 0 { + // state positioned at the end of the current node + return b32 | uint32(bitsLeft) + } + tailLen := int(s.tail & 0x1f) + firstDiff := bits.LeadingZeros32(s.tail ^ b32) // First bit where b32 and tail are different + if firstDiff < bitsLeft { + // divergence (where the key being searched and the existing structure of patricia tree becomes incompatible) is within currently supplied byte of the search key, b + if firstDiff >= tailLen { + // divergence is within currently supplied byte of the search key, b, but outside of the current node + bitsLeft -= tailLen + b32 <<= tailLen + // Need to switch to the next node + if (s.head == 0 && s.tail&0x80000000 == 0) || (s.head != 0 && s.head&0x80000000 == 0) { + if s.n.n0 == nil { + panic("") + } + s.n = s.n.n0 + } else { + if s.n.n1 == nil { + panic("") + } + s.n = s.n.n1 + } + s.head = 0 + s.tail = 0 + } else { + // divergence is within currently supplied byte of the search key, b, and within the current node + bitsLeft -= firstDiff + b32 <<= firstDiff + // there is divergence, move head and tail + mask := ^(uint32(1)<<(32-firstDiff) - 1) + s.head |= (s.tail & mask) >> (s.head & 0x1f) + s.head += uint32(firstDiff) + s.tail = (s.tail&0xffffffe0)<> (s.head & 0x1f) + s.head += uint32(bitsLeft) + s.tail = (s.tail&0xffffffe0)< 27 { + mask := ^(uint32(1)<<(headLen+5) - 1) + //fmt.Printf("mask = %b\n", mask) + s.head |= (d32 & mask) >> headLen + s.head += uint32(27 - headLen) + //fmt.Printf("s.head %s\n", tostr(s.head)) + var dn node + if (s.head == 0 && s.tail&0x80000000 == 0) || (s.head != 0 && s.head&0x80000000 == 0) { + s.n.p0 = s.head + s.n.n0 = &dn + } else { + s.n.p1 = s.head + s.n.n1 = &dn + } + s.n = &dn + s.head = 0 + s.tail = 0 + d32 <<= 27 - headLen + dLen -= (27 - headLen) + headLen = 0 + } + //fmt.Printf("headLen %d + dLen %d = %d\n", headLen, dLen, headLen+dLen) + mask := ^(uint32(1)<<(32-dLen) - 1) + //fmt.Printf("mask = %b\n", mask) + s.head |= (d32 & mask) >> headLen + s.head += uint32(dLen) + //fmt.Printf("s.head %s\n", tostr(s.head)) + if (s.head == 0 && s.tail&0x80000000 == 0) || (s.head != 0 && s.head&0x80000000 == 0) { + s.n.p0 = s.head + } else { + s.n.p1 = s.head + } + return + } + // create a new node + var dn node + if divergence&0x80000000 == 0 { + dn.p0 = divergence + dn.p1 = s.tail + if (s.head == 0 && s.tail&0x80000000 == 0) || (s.head != 0 && s.head&0x80000000 == 0) { + dn.n1 = s.n.n0 + } else { + dn.n1 = s.n.n1 + } + } else { + dn.p1 = divergence + dn.p0 = s.tail + if (s.head == 0 && s.tail&0x80000000 == 0) || (s.head != 0 && s.head&0x80000000 == 0) { + dn.n0 = s.n.n0 + } else { + dn.n0 = s.n.n1 + } + } + if (s.head == 0 && s.tail&0x80000000 == 0) || (s.head != 0 && s.head&0x80000000 == 0) { + s.n.n0 = &dn + s.n.p0 = s.head + } else { + s.n.n1 = &dn + s.n.p1 = s.head + } + s.n = &dn + s.head = divergence + s.tail = 0 +} + +func (n *node) insert(key []byte, value interface{}) { + s := makestate(n) + for _, b := range key { + divergence := s.transition(b, false /* readonly */) + if divergence != 0 { + s.diverge(divergence) + } + } + s.insert(value) +} + +func (s *state) insert(value interface{}) { + if s.tail != 0 { + s.diverge(0) + } + if s.head != 0 { + var dn node + if s.head&0x80000000 == 0 { + s.n.n0 = &dn + } else { + s.n.n1 = &dn + } + s.n = &dn + s.head = 0 + } + //fmt.Printf("set val to %p\n", s.n) + s.n.val = value +} + +func (n *node) get(key []byte) (interface{}, bool) { + s := makestate(n) + for _, b := range key { + divergence := s.transition(b, true /* readonly */) + //fmt.Printf("get %x, b = %x, divergence = %s\nstate=%s\n", key, b, tostr(divergence), s) + if divergence != 0 { + return nil, false + } + } + if s.tail != 0 { + return nil, false + } + return s.n.val, s.n.val != nil +} + +type PatriciaTree struct { + root node +} + +func (pt *PatriciaTree) Insert(key []byte, value interface{}) { + //fmt.Printf("%p Insert [%x]\n", pt, key) + pt.root.insert(key, value) +} + +func (pt *PatriciaTree) Get(key []byte) (interface{}, bool) { + return pt.root.get(key) +} + +type Match struct { + Val interface{} + Start int + End int +} + +type Matches []Match + +func (m Matches) Len() int { + return len(m) +} + +func (m Matches) Less(i, j int) bool { + return m[i].Start < m[j].Start +} + +func (m *Matches) Swap(i, j int) { + (*m)[i], (*m)[j] = (*m)[j], (*m)[i] +} + +type MatchFinder struct { + pt *PatriciaTree + s state + matches []Match +} + +func NewMatchFinder(pt *PatriciaTree) *MatchFinder { + return &MatchFinder{pt: pt} +} + +type MatchFinder2 struct { + top *node // Top of nodeStack + pt *PatriciaTree + nodeStack []*node + matchStack []Match + matches Matches + sa []int32 + lcp []int32 + inv []int32 + headLen int + tailLen int + side int // 0, 1, or 2 (if side is not determined yet) +} + +func NewMatchFinder2(pt *PatriciaTree) *MatchFinder2 { + return &MatchFinder2{pt: pt, top: &pt.root, nodeStack: []*node{&pt.root}, side: 2} +} + +// unfold consumes next byte of the key, moves the state to corresponding +// node of the patricia tree and returns divergence prefix (0 if there is no divergence) +func (mf2 *MatchFinder2) unfold(b byte) uint32 { + //fmt.Printf("unfold %x, headLen = %d, tailLen = %d, nodeStackLen = %d\n", b, mf2.headLen, mf2.tailLen, len(mf2.nodeStack)) + //var sb strings.Builder + bitsLeft := 8 // Bits in b to process + b32 := uint32(b) << 24 + for bitsLeft > 0 { + if mf2.side == 2 { + // tail has not been determined yet, do it now + if b32&0x80000000 == 0 { + mf2.side = 0 + mf2.headLen = 0 + mf2.tailLen = int(mf2.top.p0 & 0x1f) + } else { + mf2.side = 1 + mf2.headLen = 0 + mf2.tailLen = int(mf2.top.p1 & 0x1f) + } + if mf2.tailLen == 0 { + // state positioned at the end of the current node + mf2.side = 2 + //fmt.Fprintf(&sb, "1 ") + //fmt.Printf("%s\n", sb.String()) + return b32 | uint32(bitsLeft) + } + } + if mf2.tailLen == 0 { + // Need to switch to the next node + if mf2.side == 0 { + if mf2.top.n0 == nil { + //fmt.Fprintf(&sb, "2 ") + //fmt.Printf("%s\n", sb.String()) + return b32 | uint32(bitsLeft) + } + mf2.nodeStack = append(mf2.nodeStack, mf2.top.n0) + mf2.top = mf2.top.n0 + //fmt.Fprintf(&sb, "a1,0,bl=%d ", bitsLeft) + } else if mf2.side == 1 { + if mf2.top.n1 == nil { + //fmt.Fprintf(&sb, "3 ") + //fmt.Printf("%s\n", sb.String()) + return b32 | uint32(bitsLeft) + } + mf2.nodeStack = append(mf2.nodeStack, mf2.top.n1) + mf2.top = mf2.top.n1 + //fmt.Fprintf(&sb, "a1,1,bl=%d ", bitsLeft) + } else { + panic("") + } + mf2.headLen = 0 + mf2.side = 2 + } + var tail uint32 + if mf2.side == 0 { + tail = (mf2.top.p0 & 0xffffffe0) << mf2.headLen + } else if mf2.side == 1 { + tail = (mf2.top.p1 & 0xffffffe0) << mf2.headLen + } else { + return b32 | uint32(bitsLeft) + } + firstDiff := bits.LeadingZeros32(tail ^ b32) // First bit where b32 and tail are different + if firstDiff < bitsLeft { + // divergence (where the key being searched and the existing structure of patricia tree becomes incompatible) is within currently supplied byte of the search key, b + if firstDiff >= mf2.tailLen { + // divergence is within currently supplied byte of the search key, b, but outside of the current node + //fmt.Fprintf(&sb, "4,tl=%d ", mf2.tailLen) + bitsLeft -= mf2.tailLen + b32 <<= mf2.tailLen + mf2.headLen += mf2.tailLen + mf2.tailLen = 0 + } else { + // divergence is within currently supplied byte of the search key, b, and within the current node + bitsLeft -= firstDiff + b32 <<= firstDiff + // there is divergence, move head and tail + mf2.tailLen -= firstDiff + mf2.headLen += firstDiff + //fmt.Fprintf(&sb, "5 ") + //fmt.Printf("%s\n", sb.String()) + return b32 | uint32(bitsLeft) + } + } else if mf2.tailLen < bitsLeft { + // divergence is outside of currently supplied byte of the search key, b + bitsLeft -= mf2.tailLen + b32 <<= mf2.tailLen + mf2.headLen += mf2.tailLen + mf2.tailLen = 0 + //fmt.Fprintf(&sb, "6 ") + } else { + // key byte is consumed, but stay on the same node + //fmt.Fprintf(&sb, "7,bl=%d ", bitsLeft) + mf2.tailLen -= bitsLeft + mf2.headLen += bitsLeft + bitsLeft = 0 + b32 = 0 + } + if mf2.tailLen == 0 { + // Need to switch to the next node + if mf2.side == 0 { + if mf2.top.n0 == nil { + //fmt.Fprintf(&sb, "8 ") + //fmt.Printf("%s\n", sb.String()) + return b32 | uint32(bitsLeft) + } + mf2.nodeStack = append(mf2.nodeStack, mf2.top.n0) + mf2.top = mf2.top.n0 + //fmt.Fprintf(&sb, "a2,0,bl=%d ", bitsLeft) + } else if mf2.side == 1 { + if mf2.top.n1 == nil { + //fmt.Fprintf(&sb, "9 ") + //fmt.Printf("%s\n", sb.String()) + return b32 | uint32(bitsLeft) + } + mf2.nodeStack = append(mf2.nodeStack, mf2.top.n1) + mf2.top = mf2.top.n1 + //fmt.Fprintf(&sb, "a2,1,bl=%d ", bitsLeft) + } else { + panic("") + } + mf2.headLen = 0 + mf2.side = 2 + } + } + //fmt.Printf("%s\n", sb.String()) + return 0 +} + +// unfold moves the match finder back up the stack by specified number of bits +func (mf2 *MatchFinder2) fold(bits int) { + //fmt.Printf("fold %d, headLen = %d, tailLen = %d, nodeStackLen = %d\n", bits, mf2.headLen, mf2.tailLen, len(mf2.nodeStack)) + bitsLeft := bits + for bitsLeft > 0 { + //fmt.Printf("headLen = %d, bitsLeft = %d, head = %b, tail = %b, nodeStackLen = %d\n", headLen, bitsLeft, mf2.head, mf2.tail, len(mf2.nodeStack)) + if mf2.headLen == bitsLeft { + mf2.headLen = 0 + mf2.tailLen = 0 + mf2.side = 2 + bitsLeft = 0 + } else if mf2.headLen >= bitsLeft { + // folding only affects top node, take bits from end of the head and prepend it to the tail + mf2.headLen -= bitsLeft + mf2.tailLen += bitsLeft + bitsLeft = 0 + } else { + // folding affects not only top node, remove top node + bitsLeft -= mf2.headLen + mf2.nodeStack = mf2.nodeStack[:len(mf2.nodeStack)-1] + prevTop := mf2.top + mf2.top = mf2.nodeStack[len(mf2.nodeStack)-1] + if mf2.top.n0 == prevTop { + mf2.side = 0 + mf2.headLen = int(mf2.top.p0 & 0x1f) + //fmt.Printf("mf2.head = p0 %b\n", mf2.head) + } else if mf2.top.n1 == prevTop { + mf2.side = 1 + mf2.headLen = int(mf2.top.p1 & 0x1f) + //fmt.Printf("mf2.head = p1 %b\n", mf2.head) + } else { + panic("") + } + mf2.tailLen = 0 + } + } +} + +func (mf2 *MatchFinder2) FindLongestMatches(data []byte) []Match { + //fmt.Printf("mf2=%p pt=%p data=[%x]\n", mf2, mf2.pt, data) + mf2.matches = mf2.matches[:0] + if len(data) < 2 { + return mf2.matches + } + mf2.nodeStack = append(mf2.nodeStack[:0], &mf2.pt.root) + mf2.matchStack = mf2.matchStack[:0] + mf2.top = &mf2.pt.root + mf2.side = 2 + mf2.tailLen = 0 + mf2.headLen = 0 + n := len(data) + if cap(mf2.sa) < n { + mf2.sa = make([]int32, n) + } else { + mf2.sa = mf2.sa[:n] + } + if err := sais.Sais(data, mf2.sa); err != nil { + panic(err) + } + if cap(mf2.inv) < n { + mf2.inv = make([]int32, n) + } else { + mf2.inv = mf2.inv[:n] + } + for i := 0; i < n; i++ { + mf2.inv[mf2.sa[i]] = int32(i) + } + var k int + // Process all suffixes one by one starting from + // first suffix in txt[] + if cap(mf2.lcp) < n { + mf2.lcp = make([]int32, n) + } else { + mf2.lcp = mf2.lcp[:n] + } + for i := 0; i < n; i++ { + /* If the current suffix is at n-1, then we don’t + have next substring to consider. So lcp is not + defined for this substring, we put zero. */ + if mf2.inv[i] == int32(n-1) { + k = 0 + continue + } + + /* j contains index of the next substring to + be considered to compare with the present + substring, i.e., next string in suffix array */ + j := int(mf2.sa[mf2.inv[i]+1]) + + // Directly start matching from k'th index as + // at-least k-1 characters will match + for i+k < n && j+k < n && data[i+k] == data[j+k] { + k++ + } + mf2.lcp[mf2.inv[i]] = int32(k) // lcp for the present suffix. + + // Deleting the starting character from the string. + if k > 0 { + k-- + } + } + //fmt.Printf("sa=[%d]\n", mf2.sa) + //fmt.Printf("lcp=[%d]\n", mf2.lcp) + depth := 0 // Depth in bits + var lastMatch *Match + for i := 0; i < n; i++ { + // lcp[i] is the Longest Common Prefix of suffixes starting from sa[i] and sa[i+1] + //fmt.Printf("Suffix [%x], depth = %d\n", data[mf2.sa[i]:n], depth) + if i > 0 { + lcp := int(mf2.lcp[i-1]) + // lcp[i-1] is the Longest Common Prefix of suffixes starting from sa[i-1] and sa[i] + if depth > 8*lcp { + //fmt.Printf("before fold depth = %d, mf2.lcp[i-1] = %d\n", depth, mf2.lcp[i-1]) + mf2.fold(depth - 8*lcp) + depth = 8 * lcp + //b1, d1 := mf2.Current() + //fmt.Printf("current: [%x] %d, depth = %d\n", b1, d1, depth) + //fmt.Printf("after fold depth = %d\n", depth) + for lastMatch != nil && lastMatch.End-lastMatch.Start > lcp { + //fmt.Printf("Popped %d: [%d-%d] [%x]\n", len(mf2.matchStack)-1, lastMatch.Start, lastMatch.End, data[lastMatch.Start:lastMatch.End]) + mf2.matchStack = mf2.matchStack[:len(mf2.matchStack)-1] + if len(mf2.matchStack) == 0 { + lastMatch = nil + } else { + lastMatch = &mf2.matchStack[len(mf2.matchStack)-1] + } + } + } else { + r := depth % 8 + if r > 0 { + mf2.fold(r) + depth -= r + //b1, d1 := mf2.Current() + //fmt.Printf("current: [%x] %d, depth = %d\n", b1, d1, depth) + } + } + } + sa := int(mf2.sa[i]) + start := sa + depth/8 + for end := start + 1; end <= n; end++ { + //fmt.Printf("Looking at [%d-%d] [%x]\n", sa, end, data[sa:end]) + d := mf2.unfold(data[end-1]) + depth += 8 - int(d&0x1f) + //fmt.Printf("after unfold depth=%d\n", depth) + //b1, d1 := mf2.Current() + //fmt.Printf("current: [%x][%x] %d, depth = %d\n", b1, data[sa:end], d1, depth) + if d != 0 { + //fmt.Printf("divergence found: %b\n", d) + break + } + if mf2.tailLen != 0 || mf2.top.val == nil { + //fmt.Printf("tailLen = %d, val == nil %t, p=%p\n", mf2.tailLen, mf2.top.val == nil, mf2.top) + continue + } + if cap(mf2.matchStack) == len(mf2.matchStack) { + mf2.matchStack = append(mf2.matchStack, Match{}) + } else { + mf2.matchStack = mf2.matchStack[:len(mf2.matchStack)+1] + } + lastMatch = &mf2.matchStack[len(mf2.matchStack)-1] + // This possibly overwrites previous match for the same start position + //fmt.Printf("Push on the match stack [%d-%d] [%x]\n", sa, end, data[sa:end]) + lastMatch.Start = sa + lastMatch.End = end + lastMatch.Val = mf2.top.val + } + if lastMatch != nil { + mf2.matches = append(mf2.matches, Match{}) + m := &mf2.matches[len(mf2.matches)-1] + m.Start = sa + m.End = sa + lastMatch.End - lastMatch.Start + m.Val = lastMatch.Val + //fmt.Printf("Added new Match: [%d-%d] [%x]\n", m.Start, m.End, data[m.Start:m.End]) + } + } + //fmt.Printf("before sorting %d matches\n", len(mf2.matches)) + if len(mf2.matches) < 2 { + return mf2.matches + } + //sort.Sort(&mf2.matches) + slices.SortFunc(mf2.matches, func(i, j Match) int { return cmp.Compare(i.Start, j.Start) }) + + lastEnd := mf2.matches[0].End + j := 1 + for i, m := range mf2.matches { + if i > 0 { + if m.End > lastEnd { + if i != j { + mf2.matches[j] = m + } + lastEnd = m.End + j++ + } + } + } + return mf2.matches[:j] +} + +func (mf2 *MatchFinder2) Current() ([]byte, int) { + var b []byte + var depth int + last := len(mf2.nodeStack) - 1 + for i, n := range mf2.nodeStack { + var p uint32 + if i < last { + next := mf2.nodeStack[i+1] + if n.n0 == next { + p = n.p0 + } else if n.n1 == next { + p = n.p1 + } else { + panic("") + } + } else { + if mf2.side == 0 { + p = n.p0 + } else if mf2.side == 1 { + p = n.p1 + } + p = (p & 0xffffffe0) | uint32(mf2.headLen) + } + fmt.Printf("i,p=%d, %b\n", i, p) + // Add bit by bit + for (p & 0x1f) > 0 { + if depth >= 8*len(b) { + b = append(b, 0) + } + if p&0x80000000 != 0 { + b[depth/8] |= uint8(1) << (7 - (depth % 8)) + } + depth++ + p = ((p & 0xffffffe0) << 1) | (p & 0x1f) - 1 + } + } + return b, depth +} + +func (mf *MatchFinder) FindLongestMatches(data []byte) []Match { + matchCount := 0 + s := &mf.s + lastEnd := 0 + for start := 0; start < len(data); start++ { + s.reset(&mf.pt.root) + emitted := false + for end := start + 1; end <= len(data); end++ { + if d := s.transition(data[end-1], true /* readonly */); d != 0 { + break + } + if s.tail != 0 || s.n.val == nil || end <= lastEnd { + continue + } + var m *Match + if emitted { + m = &mf.matches[matchCount-1] + } else { + if matchCount == len(mf.matches) { + mf.matches = append(mf.matches, Match{}) + m = &mf.matches[len(mf.matches)-1] + } else { + m = &mf.matches[matchCount] + } + matchCount++ + emitted = true + } + // This possibly overwrites previous match for the same start position + m.Start = start + m.End = end + m.Val = s.n.val + lastEnd = end + } + } + return mf.matches[:matchCount] +} diff --git a/erigon-lib/patricia/patricia_fuzz_test.go b/erigon-lib/patricia/patricia_fuzz_test.go new file mode 100644 index 00000000000..240096daf68 --- /dev/null +++ b/erigon-lib/patricia/patricia_fuzz_test.go @@ -0,0 +1,149 @@ +//go:build !nofuzz + +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package patricia + +import ( + "bytes" + "encoding/binary" + "fmt" + "testing" +) + +// go test -trimpath -v -fuzz=FuzzPatricia -fuzztime=10s ./patricia + +func FuzzPatricia(f *testing.F) { + f.Fuzz(func(t *testing.T, build []byte, test []byte) { + var n node + keyMap := make(map[string][]byte) + i := 0 + for i < len(build) { + keyLen := int(build[i]>>4) + 1 + valLen := int(build[i]&15) + 1 + i++ + var key []byte + var val []byte + for keyLen > 0 && i < len(build) { + key = append(key, build[i]) + i++ + keyLen-- + } + for valLen > 0 && i < len(build) { + val = append(val, build[i]) + i++ + valLen-- + } + n.insert(key, val) + keyMap[string(key)] = val + } + var testKeys [][]byte + i = 0 + for i < len(test) { + keyLen := int(test[i]>>4) + 1 + i++ + var key []byte + for keyLen > 0 && i < len(test) { + key = append(key, test[i]) + i++ + keyLen-- + } + if _, ok := keyMap[string(key)]; !ok { + testKeys = append(testKeys, key) + } + } + // Test for keys + for key, vals := range keyMap { + v, ok := n.get([]byte(key)) + if ok { + if !bytes.Equal(vals, v.([]byte)) { + t.Errorf("for key %x expected value %x, got %x", key, vals, v.([]byte)) + } + } + } + // Test for non-existent keys + for _, key := range testKeys { + _, ok := n.get(key) + if ok { + t.Errorf("unexpected key found [%x]", key) + } + } + }) +} + +func FuzzLongestMatch(f *testing.F) { + f.Fuzz(func(t *testing.T, build []byte, test []byte) { + var pt PatriciaTree + keyMap := make(map[string][]byte) + i := 0 + for i < len(build) { + keyLen := int(build[i]>>4) + 1 + valLen := int(build[i]&15) + 1 + i++ + var key []byte + var val []byte + for keyLen > 0 && i < len(build) { + key = append(key, build[i]) + i++ + keyLen-- + } + for valLen > 0 && i < len(build) { + val = append(val, build[i]) + i++ + valLen-- + } + pt.Insert(key, val) + keyMap[string(key)] = val + } + var keys []string + for key := range keyMap { + keys = append(keys, key) + } + if len(keys) == 0 { + t.Skip() + } + var data []byte + for i := 0; i < 4*(len(test)/4); i += 4 { + keyIdx := int(binary.BigEndian.Uint32(test[i : i+4])) + keyIdx = keyIdx % len(keys) + key := []byte(keys[keyIdx]) + data = append(data, key...) + for j := 0; j < len(key); j++ { + data = append(data, key[len(key)-1-j]) + } + } + mf := NewMatchFinder(&pt) + m1 := mf.FindLongestMatches(data) + mf2 := NewMatchFinder2(&pt) + m2 := mf2.FindLongestMatches(data) + if len(m1) == len(m2) { + for i, m := range m1 { + mm := m2[i] + if m.Start != mm.Start || m.End != mm.End { + t.Errorf("mismatch, expected %+v, got %+v", m, mm) + } + } + } else { + t.Errorf("matches %d, expected %d", len(m2), len(m1)) + for _, m := range m1 { + fmt.Printf("%+v, match1: [%x]\n", m, data[m.Start:m.End]) + } + for _, m := range m2 { + fmt.Printf("%+v, match2: [%x]\n", m, data[m.Start:m.End]) + } + } + }) +} diff --git a/erigon-lib/patricia/patricia_test.go b/erigon-lib/patricia/patricia_test.go new file mode 100644 index 00000000000..1cf2e85a0e4 --- /dev/null +++ b/erigon-lib/patricia/patricia_test.go @@ -0,0 +1,1644 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package patricia + +import ( + "encoding/hex" + "fmt" + "testing" +) + +func TestInserts1(t *testing.T) { + n := &node{} + s := makestate(n) + d := s.transition(0x34, true) + fmt.Printf("1 tree:\n%sstate: %s\ndivergence %s\n\n", n, s, tostr(d)) + s.diverge(d) + fmt.Printf("2 tree:\n%sstate: %s\n\n", n, s) + d = s.transition(0x56, true) + fmt.Printf("3 tree:\n%sstate: %s\ndivergence %s\n\n", n, s, tostr(d)) + s.diverge(d) + fmt.Printf("4 tree:\n%sstate: %s\n\n", n, s) + d = s.transition(0xff, true) + fmt.Printf("5 tree:\n%sstate: %s\ndivergence %s\n\n", n, s, tostr(d)) + s.diverge(d) + fmt.Printf("6 tree:\n%sstate: %s\n\n", n, s) + d = s.transition(0xcc, true) + fmt.Printf("7 tree:\n%sstate: %s\ndivergence %s\n\n", n, s, tostr(d)) + s.diverge(d) + fmt.Printf("8 tree:\n%sstate: %s\n\n", n, s) + s.insert(nil) + s = makestate(n) + d = s.transition(0x34, true) + fmt.Printf("9 tree:\n%sstate: %s\ndivergence %s\n\n", n, s, tostr(d)) + d = s.transition(0x66, true) + fmt.Printf("10 tree:\n%sstate: %s\ndivergence %s\n\n", n, s, tostr(d)) + s.diverge(d) + fmt.Printf("11 tree:\n%sstate: %s\n\n", n, s) + + n.insert([]byte{0xff, 0xff, 0xff, 0xff, 0xff}, []byte{0x01}) + fmt.Printf("12 tree:\n%s\n", n) + + n.insert([]byte{0xff, 0xff, 0xff, 0xff, 0x0f}, []byte{0x02}) + fmt.Printf("13 tree:\n%s\n", n) + + n.insert([]byte{0xff, 0xff, 0xff, 0xff, 0xff}, []byte{0x03}) + fmt.Printf("14 tree:\n%s\n", n) + + vs, ok := n.get([]byte{0xff, 0xff, 0xff, 0xff, 0x0f}) + fmt.Printf("15 vs = %v, ok = %t\n", vs, ok) + + vs, ok = n.get([]byte{0xff, 0xff, 0xff, 0xff, 0xff}) + fmt.Printf("16 vs = %v, ok = %t\n", vs, ok) + + vs, ok = n.get([]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0x56}) + fmt.Printf("17 vs = %v, ok = %t\n", vs, ok) + + vs, ok = n.get([]byte{0x34, 0x56, 0xff, 0xcc}) + fmt.Printf("18 vs = %v, ok = %t\n", vs, ok) + + vs, ok = n.get([]byte{}) + fmt.Printf("19 vs = %v, ok = %t\n", vs, ok) +} + +func TestInserts2(t *testing.T) { + var n node + n.insert([]byte{0xff}, []byte{0x03, 0x03, 0x03, 0x1a, 0xed, 0xed}) + n.insert([]byte{0xed}, []byte{}) + fmt.Printf("tree:\n%s", &n) + + vs, ok := n.get([]byte{0xff}) + fmt.Printf("vs = %v, ok = %t\n", vs, ok) + + vs, ok = n.get([]byte{0xed}) + fmt.Printf("vs = %v, ok = %t\n", vs, ok) +} + +func TestFindMatches1(t *testing.T) { + var pt PatriciaTree + pt.Insert([]byte("wolf"), []byte{1}) + pt.Insert([]byte("winter"), []byte{2}) + pt.Insert([]byte("wolfs"), []byte{3}) + fmt.Printf("n\n%s", &pt.root) + mf := NewMatchFinder2(&pt) + data := []byte("Who lives here in winter, wolfs") + matches := mf.FindLongestMatches(data) + for _, m := range matches { + fmt.Printf("%+v, match [%s]\n", m, data[m.Start:m.End]) + } + if len(matches) != 2 { + t.Errorf("expected matches: %d, got %d", 2, len(matches)) + } +} + +func TestFindMatches2(t *testing.T) { + var pt PatriciaTree + pt.Insert([]byte("wolf"), []byte{1}) + pt.Insert([]byte("winter"), []byte{2}) + pt.Insert([]byte("wolfs?"), []byte{3}) + fmt.Printf("n\n%s", &pt.root) + mf2 := NewMatchFinder2(&pt) + data := []byte("Who lives here in winter, wolfs?") + matches := mf2.FindLongestMatches(data) + for _, m := range matches { + fmt.Printf("%+v, match: [%s]\n", m, data[m.Start:m.End]) + } + if len(matches) != 2 { + t.Errorf("expected matches: %d, got %d", 2, len(matches)) + } +} + +func decodeHex(in string) []byte { + payload, err := hex.DecodeString(in) + if err != nil { + panic(err) + } + return payload +} + +func TestFindMatches3(t *testing.T) { + var pt PatriciaTree + v := []byte{1} + pt.Insert(decodeHex("00000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("0000000000000000000000000000000000"), v) + pt.Insert(decodeHex("00000000000000000000000000000000"), v) + pt.Insert(decodeHex("000000000000000000000000000000"), v) + pt.Insert(decodeHex("0000000000000000000000000000"), v) + pt.Insert(decodeHex("0100000000000000000000003b30000001000003"), v) + pt.Insert(decodeHex("0000000000000000003b30000001000003000100"), v) + pt.Insert(decodeHex("000000000000000000003b300000010000030001"), v) + pt.Insert(decodeHex("00000000000000000000003b3000000100000300"), v) + pt.Insert(decodeHex("00000000000000000000000000"), v) + pt.Insert(decodeHex("00000000000000003b30000001000003000100"), v) + pt.Insert(decodeHex("000000000000000000000000"), v) + pt.Insert(decodeHex("000000000000003b30000001000003000100"), v) + pt.Insert(decodeHex("0000000000003b30000001000003000100"), v) + pt.Insert(decodeHex("00000000003b30000001000003000100"), v) + pt.Insert(decodeHex("000000003b30000001000003000100"), v) + pt.Insert(decodeHex("0000003b30000001000003000100"), v) + pt.Insert(decodeHex("00003b30000001000003000100"), v) + pt.Insert(decodeHex("0100000000000000"), v) + pt.Insert(decodeHex("003b30000001000003000100"), v) + pt.Insert(decodeHex("3b30000001000003000100"), v) + pt.Insert(decodeHex("00000000000000003b3000000100000300010000"), v) + pt.Insert(decodeHex("0100000000000000000000003a30000001000000"), v) + pt.Insert(decodeHex("000000003a300000010000000000010010000000"), v) + pt.Insert(decodeHex("00000000003a3000000100000000000100100000"), v) + pt.Insert(decodeHex("0000000000003a30000001000000000001001000"), v) + pt.Insert(decodeHex("000000000000003a300000010000000000010010"), v) + pt.Insert(decodeHex("00000000000000003a3000000100000000000100"), v) + pt.Insert(decodeHex("0000000000000000003a30000001000000000001"), v) + pt.Insert(decodeHex("000000000000000000003a300000010000000000"), v) + pt.Insert(decodeHex("00000000000000000000003a3000000100000000"), v) + mf2 := NewMatchFinder2(&pt) + data := decodeHex("0100000000000000000000003a30000001000000000001001000000044004500") + matches := mf2.FindLongestMatches(data) + for _, m := range matches { + fmt.Printf("%+v, match: [%x]\n", m, data[m.Start:m.End]) + } + if len(matches) != 9 { + t.Errorf("expected matches: %d, got %d", 9, len(matches)) + } +} + +func TestFindMatches4(t *testing.T) { + var pt PatriciaTree + v := []byte{1} + pt.Insert(decodeHex("00000000000000000000000000000000000000"), v) + mf2 := NewMatchFinder2(&pt) + data := decodeHex("01") + matches := mf2.FindLongestMatches(data) + for _, m := range matches { + fmt.Printf("%+v, match: [%x]\n", m, data[m.Start:m.End]) + } + if len(matches) != 0 { + t.Errorf("expected matches: %d, got %d", 0, len(matches)) + } +} + +func TestFindMatches5(t *testing.T) { + var pt PatriciaTree + v := []byte{1} + pt.Insert(decodeHex("0434e37673a8e0aaa536828f0d5b0ddba12fece1"), v) + pt.Insert(decodeHex("e28e72fcf78647adce1f1252f240bbfaebd63bcc"), v) + pt.Insert(decodeHex("34e28e72fcf78647adce1f1252f240bbfaebd63b"), v) + pt.Insert(decodeHex("0434e28e72fcf78647adce1f1252f240bbfaebd6"), v) + pt.Insert(decodeHex("090bdc64a7e3632cde8f4689f47acfc0760e35bce43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("00090bdc64a7e3632cde8f4689f47acfc0760e35bce43af50d4b1f5973463bde"), v) + pt.Insert(decodeHex("0000000000"), v) + pt.Insert(decodeHex("00000000000000000000"), v) + pt.Insert(decodeHex("000000000000000000000000000000"), v) + pt.Insert(decodeHex("0000000000000000000000000000"), v) + pt.Insert(decodeHex("000000000000000000"), v) + pt.Insert(decodeHex("0000000000000000"), v) + pt.Insert(decodeHex("00000000000000000000000000"), v) + pt.Insert(decodeHex("000000000000000000000000"), v) + pt.Insert(decodeHex("f47acfc0760e35bce43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("e3632cde8f4689f47acfc0760e35bce43af50d4b"), v) + pt.Insert(decodeHex("de8f4689f47acfc0760e35bce43af50d4b1f5973"), v) + pt.Insert(decodeHex("dc64a7e3632cde8f4689f47acfc0760e35bce43a"), v) + pt.Insert(decodeHex("a7e3632cde8f4689f47acfc0760e35bce43af50d"), v) + pt.Insert(decodeHex("8f4689f47acfc0760e35bce43af50d4b1f597346"), v) + pt.Insert(decodeHex("89f47acfc0760e35bce43af50d4b1f5973463bde"), v) + pt.Insert(decodeHex("64a7e3632cde8f4689f47acfc0760e35bce43af5"), v) + pt.Insert(decodeHex("632cde8f4689f47acfc0760e35bce43af50d4b1f"), v) + pt.Insert(decodeHex("4689f47acfc0760e35bce43af50d4b1f5973463b"), v) + pt.Insert(decodeHex("2cde8f4689f47acfc0760e35bce43af50d4b1f59"), v) + pt.Insert(decodeHex("0bdc64a7e3632cde8f4689f47acfc0760e35bce4"), v) + pt.Insert(decodeHex("7acfc0760e35bce43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("0000000000000000000000"), v) + pt.Insert(decodeHex("cfc0760e35bce43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("00000000000000000000000000000000"), v) + pt.Insert(decodeHex("c0760e35bce43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("0000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("00000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("760e35bce43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("0e35bce43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("0000000000000000000000000000000000"), v) + pt.Insert(decodeHex("35bce43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("bce43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("e43af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("1090bdc64a7e3632cde8f4689f47acfc0760e35bce43af50d4b1f5973463bde6"), v) + pt.Insert(decodeHex("3af50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("f50d4b1f5973463bde62"), v) + pt.Insert(decodeHex("fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126f130193790f769"), v) + pt.Insert(decodeHex("ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db1"), v) + pt.Insert(decodeHex("df415bb7ae2363ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e"), v) + pt.Insert(decodeHex("d417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126f130193790f7698ee4"), v) + pt.Insert(decodeHex("cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126f130193790"), v) + pt.Insert(decodeHex("c2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126f130193790f7"), v) + pt.Insert(decodeHex("bb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126"), v) + pt.Insert(decodeHex("b7ae2363ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7"), v) + pt.Insert(decodeHex("ae2363ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dc"), v) + pt.Insert(decodeHex("6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126f1"), v) + pt.Insert(decodeHex("63ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22d"), v) + pt.Insert(decodeHex("5f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126f13019"), v) + pt.Insert(decodeHex("5bb7ae2363ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fc"), v) + pt.Insert(decodeHex("595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126f130"), v) + pt.Insert(decodeHex("415bb7ae2363ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28"), v) + pt.Insert(decodeHex("34df415bb7ae2363ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d303"), v) + pt.Insert(decodeHex("2363ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf2"), v) + pt.Insert(decodeHex("0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126f130193790f7698e"), v) + pt.Insert(decodeHex("07cbc2fc0fd417d3a29f2962b8badecbf4d3036e28fcd7dcf22db126f1301937"), v) + pt.Insert(decodeHex("0434df415bb7ae2363ecbb6a595f07cbc2fc0fd417d3a29f2962b8badecbf4d3"), v) + pt.Insert(decodeHex("0d4b1f5973463bde62"), v) + pt.Insert(decodeHex("0000000000000000000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("fc0fd417d37e04bc63768597761b6c198fd8bd0feded3970bcdafd3adaa9dce4"), v) + pt.Insert(decodeHex("ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0feded3970"), v) + pt.Insert(decodeHex("df415bb7ae2363ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c198f"), v) + pt.Insert(decodeHex("d417d37e04bc63768597761b6c198fd8bd0feded3970bcdafd3adaa9dce41b48"), v) + pt.Insert(decodeHex("d37e04bc63768597761b6c198fd8bd0feded3970bcdafd3adaa9dce41b48747f"), v) + pt.Insert(decodeHex("cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0feded3970bcdafd3adaa9"), v) + pt.Insert(decodeHex("c2fc0fd417d37e04bc63768597761b6c198fd8bd0feded3970bcdafd3adaa9dc"), v) + pt.Insert(decodeHex("bb6a595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0feded3970bc"), v) + pt.Insert(decodeHex("b7ae2363ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0f"), v) + pt.Insert(decodeHex("ae2363ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0fed"), v) + pt.Insert(decodeHex("6a595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0feded3970bcda"), v) + pt.Insert(decodeHex("63ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0feded39"), v) + pt.Insert(decodeHex("5f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0feded3970bcdafd3a"), v) + pt.Insert(decodeHex("5bb7ae2363ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd"), v) + pt.Insert(decodeHex("595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0feded3970bcdafd"), v) + pt.Insert(decodeHex("415bb7ae2363ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8"), v) + pt.Insert(decodeHex("34df415bb7ae2363ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c19"), v) + pt.Insert(decodeHex("2363ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0feded"), v) + pt.Insert(decodeHex("17d37e04bc63768597761b6c198fd8bd0feded3970bcdafd3adaa9dce41b4874"), v) + pt.Insert(decodeHex("0fd417d37e04bc63768597761b6c198fd8bd0feded3970bcdafd3adaa9dce41b"), v) + pt.Insert(decodeHex("07cbc2fc0fd417d37e04bc63768597761b6c198fd8bd0feded3970bcdafd3ada"), v) + pt.Insert(decodeHex("0434df415bb7ae2363ecbb6a595f07cbc2fc0fd417d37e04bc63768597761b6c"), v) + pt.Insert(decodeHex("df415bb7ae2363ecbb6a595f07cbc2fc0fd417d3"), v) + pt.Insert(decodeHex("34df415bb7ae2363ecbb6a595f07cbc2fc0fd417"), v) + pt.Insert(decodeHex("0434df415bb7ae2363ecbb6a595f07cbc2fc0fd4"), v) + pt.Insert(decodeHex("4b1f5973463bde62"), v) + pt.Insert(decodeHex("415bb7ae2363ecbb6a595f07cbc2fc0fd417d3"), v) + pt.Insert(decodeHex("5bb7ae2363ecbb6a595f07cbc2fc0fd417d3"), v) + pt.Insert(decodeHex("f4689f47acfc0760e35bce43af50d4b1f5973463"), v) + pt.Insert(decodeHex("e8f4689f47acfc0760e35bce43af50d4b1f59734"), v) + pt.Insert(decodeHex("cde8f4689f47acfc0760e35bce43af50d4b1f597"), v) + pt.Insert(decodeHex("c64a7e3632cde8f4689f47acfc0760e35bce43af"), v) + pt.Insert(decodeHex("bdc64a7e3632cde8f4689f47acfc0760e35bce43"), v) + pt.Insert(decodeHex("9f47acfc0760e35bce43af50d4b1f5973463bde6"), v) + pt.Insert(decodeHex("90bdc64a7e3632cde8f4689f47acfc0760e35bce"), v) + pt.Insert(decodeHex("7e3632cde8f4689f47acfc0760e35bce43af50d4"), v) + pt.Insert(decodeHex("689f47acfc0760e35bce43af50d4b1f5973463bd"), v) + pt.Insert(decodeHex("4a7e3632cde8f4689f47acfc0760e35bce43af50"), v) + pt.Insert(decodeHex("3632cde8f4689f47acfc0760e35bce43af50d4b1"), v) + pt.Insert(decodeHex("32cde8f4689f47acfc0760e35bce43af50d4b1f5"), v) + pt.Insert(decodeHex("b7ae2363ecbb6a595f07cbc2fc0fd417d3"), v) + pt.Insert(decodeHex("47acfc0760e35bce43af50d4b1f5973463bde6"), v) + pt.Insert(decodeHex("ae2363ecbb6a595f07cbc2fc0fd417d3"), v) + pt.Insert(decodeHex("acfc0760e35bce43af50d4b1f5973463bde6"), v) + pt.Insert(decodeHex("2363ecbb6a595f07cbc2fc0fd417d3"), v) + pt.Insert(decodeHex("fc0760e35bce43af50d4b1f5973463bde6"), v) + pt.Insert(decodeHex("63ecbb6a595f07cbc2fc0fd417d3"), v) + pt.Insert(decodeHex("0000000000000000000000000000000000000001"), v) + pt.Insert(decodeHex("0760e35bce43af50d4b1f5973463bde6"), v) + pt.Insert(decodeHex("bc63768597761b6c198fd8bd0feded3970bcdafd"), v) + pt.Insert(decodeHex("97761b6c198fd8bd0feded3970bcdafd3adaa9dc"), v) + pt.Insert(decodeHex("8fd8bd0feded3970bcdafd3adaa9dce41b48747f"), v) + pt.Insert(decodeHex("8597761b6c198fd8bd0feded3970bcdafd3adaa9"), v) + pt.Insert(decodeHex("7e04bc63768597761b6c198fd8bd0feded3970bc"), v) + pt.Insert(decodeHex("768597761b6c198fd8bd0feded3970bcdafd3ada"), v) + pt.Insert(decodeHex("761b6c198fd8bd0feded3970bcdafd3adaa9dce4"), v) + pt.Insert(decodeHex("6c198fd8bd0feded3970bcdafd3adaa9dce41b48"), v) + pt.Insert(decodeHex("63768597761b6c198fd8bd0feded3970bcdafd3a"), v) + pt.Insert(decodeHex("1b6c198fd8bd0feded3970bcdafd3adaa9dce41b"), v) + pt.Insert(decodeHex("198fd8bd0feded3970bcdafd3adaa9dce41b4874"), v) + pt.Insert(decodeHex("04bc63768597761b6c198fd8bd0feded3970bcda"), v) + pt.Insert(decodeHex("00000000000000000000000000000000000001"), v) + pt.Insert(decodeHex("0000000000000000000000000000000000000000000000000000000000000002"), v) + pt.Insert(decodeHex("ecbb6a595f07cbc2fc0fd417d3"), v) + pt.Insert(decodeHex("60e35bce43af50d4b1f5973463bde6"), v) + pt.Insert(decodeHex("d8bd0feded3970bcdafd3adaa9dce41b48747f"), v) + pt.Insert(decodeHex("000000000000000000000000000000000001"), v) + pt.Insert(decodeHex("60e3997d5a409c25fe09d77351b6"), v) + pt.Insert(decodeHex("bd0feded3970bcdafd3adaa9dce41b48747f"), v) + mf2 := NewMatchFinder2(&pt) + data := decodeHex("9d7d9d7d082073e2920896915d0e0239a7e852d86b26e03a188bc5b947972aeec206d63b6744043493d38e72c5281e78f6b364eacac6fa907ecba1640000000000000000000000000000000000000000000000000000000007bfa482043493d38e72c5281e78f6b364eacac6fa907ecba1640000000000000000000000000000000000000000000000000000000000000011043493d38e72c5281e78f6b364eacac6fa907ecba1640000000000000000000000000000000000000000000000000000000000000002043493d38e72c5281e78f6b364eacac6fa907ecba164000000000000000000000000000000000000000000000000000000000000001e0820a516e4eeef0852f3c4ee0f11237e5e5127ed67a64e43a2f2ebef2d6bc26bb384082073404b8fb6bb42e5a0c9bb7d6253d9d72084bed3991df1efd25512e7f713e796043493d38e72c5281e78f6b364eacac6fa907ecba164000000000000000000000000000000000000000000000000000000000000001f043493d38e72c5281e78f6b364eacac6fa907ecba1640000000000000000000000000000000000000000000000000000000000000012082010db8a472df5096168436e756dbf37edce306a01f4fa7a889f7ad8195e1154a9043493d38e72c5281e78f6b364eacac6fa907ecba1640000000000000000000000000000000000000000000000000000000000000006") + matches := mf2.FindLongestMatches(data) + for _, m := range matches { + fmt.Printf("%+v, match: [%x]\n", m, data[m.Start:m.End]) + } + if len(matches) != 88 { + t.Errorf("expected matches: %d, got %d", 88, len(matches)) + } +} + +func TestFindMatches6(t *testing.T) { + var pt PatriciaTree + v := []byte{1} + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("73ffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("600160a060020a03"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff16815260200191505060405180910390a1"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff1681"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff168156"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff1681565b"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffffff168152602001908152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffff16815260200190815260200160"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff1681526020019081526020016000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff168152602001908152602001600020"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff16815260200190815260200160002060"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("73ffffffffffffffffffffffffffffffffffffffff1681526020019081526020"), v) + pt.Insert(decodeHex("81526020019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff168152"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff16815260"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1681526020"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("526020019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("6020019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("8152602001908152602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("80806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f16801561"), v) + pt.Insert(decodeHex("60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f16"), v) + pt.Insert(decodeHex("5b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f"), v) + pt.Insert(decodeHex("5180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015"), v) + pt.Insert(decodeHex("405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680"), v) + pt.Insert(decodeHex("20019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("52602001908152602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffff168152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("602001908152602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffff168152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff168152602001908152602001600020600050"), v) + pt.Insert(decodeHex("9081526020016000206000"), v) + pt.Insert(decodeHex("5050604051849350600080"), v) + pt.Insert(decodeHex("2001908152602001600020600050"), v) + pt.Insert(decodeHex("505060405180910390f35b"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("6000506000600060005054815260200190815260200160002060006101000a81"), v) + pt.Insert(decodeHex("00506000600060005054815260200190815260200160002060006101000a8154"), v) + pt.Insert(decodeHex("ffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffff16815260200191505060405180910390a1"), v) + pt.Insert(decodeHex("ffffffffff168152602001"), v) + pt.Insert(decodeHex("8281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a4578082"), v) + pt.Insert(decodeHex("81038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a457808203"), v) + pt.Insert(decodeHex("6020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a4"), v) + pt.Insert(decodeHex("60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020"), v) + pt.Insert(decodeHex("60003373ffffffffffffffffffffffffffffffffffffffff1681526020019081"), v) + pt.Insert(decodeHex("5060003373ffffffffffffffffffffffffffffffffffffffff16815260200190"), v) + pt.Insert(decodeHex("3373ffffffffffffffffffffffffffffffffffffffff16815260200190815260"), v) + pt.Insert(decodeHex("20018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a457"), v) + pt.Insert(decodeHex("038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a45780820380"), v) + pt.Insert(decodeHex("018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a45780"), v) + pt.Insert(decodeHex("005060003373ffffffffffffffffffffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("003373ffffffffffffffffffffffffffffffffffffffff168152602001908152"), v) + pt.Insert(decodeHex("01908152602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff16815260200190"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff1681526020019081"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff168152602001908152"), v) + pt.Insert(decodeHex("ffffffffffffffffffff16815260200190815260"), v) + pt.Insert(decodeHex("ffffffffffffffffff1681526020019081526020"), v) + pt.Insert(decodeHex("ffffffffffffffff168152602001908152602001"), v) + pt.Insert(decodeHex("ffffffffffffff16815260200190815260200160"), v) + pt.Insert(decodeHex("ffffffffffff1681526020019081526020016000"), v) + pt.Insert(decodeHex("ffffffffff168152602001908152602001600020"), v) + pt.Insert(decodeHex("ffffffff16815260200190815260200160002060"), v) + pt.Insert(decodeHex("ffffff1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("81526020016000206000"), v) + pt.Insert(decodeHex("50604051849350600080"), v) + pt.Insert(decodeHex("ffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("5060405180910390f35b"), v) + pt.Insert(decodeHex("168152602001908152602001600020600050"), v) + pt.Insert(decodeHex("ffff16815260200191505060405180910390a1"), v) + pt.Insert(decodeHex("67ffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffff1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("6040518082815260200191505060405180910390"), v) + pt.Insert(decodeHex("ffffffffff1681565b60"), v) + pt.Insert(decodeHex("908152602001600020600050"), v) + pt.Insert(decodeHex("8281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390"), v) + pt.Insert(decodeHex("81038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f3"), v) + pt.Insert(decodeHex("80806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f150905001925050506040"), v) + pt.Insert(decodeHex("806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f15090500192505050604051"), v) + pt.Insert(decodeHex("60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f150905001925050"), v) + pt.Insert(decodeHex("6020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180"), v) + pt.Insert(decodeHex("5b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250"), v) + pt.Insert(decodeHex("5180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060"), v) + pt.Insert(decodeHex("405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f15090500192505050"), v) + pt.Insert(decodeHex("20018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f150905001925050506040518091"), v) + pt.Insert(decodeHex("038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b"), v) + pt.Insert(decodeHex("018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f15090500192505050604051809103"), v) + pt.Insert(decodeHex("ffffffff168152602001"), v) + pt.Insert(decodeHex("5b60405180828152602001915050604051809103"), v) + pt.Insert(decodeHex("565b604051808281526020019150506040518091"), v) + pt.Insert(decodeHex("518082815260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("40518082815260200191505060405180910390f3"), v) + pt.Insert(decodeHex("ff16815260200191505060405180910390a1"), v) + pt.Insert(decodeHex("ffffffffffffffffff1682"), v) + pt.Insert(decodeHex("808281526102cb94909290828280156100d757"), v) + pt.Insert(decodeHex("ff1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("526020016000206000"), v) + pt.Insert(decodeHex("f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f15090509081019060"), v) + pt.Insert(decodeHex("a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff191681556001810180548482559084528284209192849261"), v) + pt.Insert(decodeHex("90f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190"), v) + pt.Insert(decodeHex("8252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60"), v) + pt.Insert(decodeHex("60a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff1916815560018101805484825590845282842091928492"), v) + pt.Insert(decodeHex("602081815260408083206002548452825282208354815467ffffffffffffffff191667ffffffffffffffff919091161781556001848101805491830180548382"), v) + pt.Insert(decodeHex("600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff191681556001810180548482559084528284"), v) + pt.Insert(decodeHex("600160a060020a0333168252602082815260408084208585528252928390206001018054601f810183900490920260a090810190945260808281529293909190"), v) + pt.Insert(decodeHex("600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff191681556001810180548482559084528284209192"), v) + pt.Insert(decodeHex("60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("52838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040"), v) + pt.Insert(decodeHex("52600160a060020a0333168252602082815260408084208585528252928390206001018054601f810183900490920260a0908101909452608082815292939091"), v) + pt.Insert(decodeHex("526000828152604090208054829081101561000257506000908152602090200154905081565b610315600435600160a060020a03331660009081526020818152"), v) + pt.Insert(decodeHex("35600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff1916815560018101805484825590845282842091"), v) + pt.Insert(decodeHex("2081815260408083206002548452825282208354815467ffffffffffffffff191667ffffffffffffffff91909116178155600184810180549183018054838255"), v) + pt.Insert(decodeHex("0435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff19168155600181018054848255908452828420"), v) + pt.Insert(decodeHex("0160a060020a0333168252602082815260408084208585528252928390206001018054601f810183900490920260a09081019094526080828152929390919082"), v) + pt.Insert(decodeHex("0160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff19168155600181018054848255908452828420919284"), v) + pt.Insert(decodeHex("009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("60405180910390f35b"), v) + pt.Insert(decodeHex("8082815260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("ffffffffffffff1682"), v) + pt.Insert(decodeHex("600160a060020a033316600090815261"), v) + pt.Insert(decodeHex("8152602001600020600050"), v) + pt.Insert(decodeHex("90600052602060002090"), v) + pt.Insert(decodeHex("928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402850160405260"), v) + pt.Insert(decodeHex("836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782"), v) + pt.Insert(decodeHex("822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402850160405260608481526100"), v) + pt.Insert(decodeHex("820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080"), v) + pt.Insert(decodeHex("818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402850160"), v) + pt.Insert(decodeHex("8152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490940285016040"), v) + pt.Insert(decodeHex("8152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490940285016040526060"), v) + pt.Insert(decodeHex("815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020"), v) + pt.Insert(decodeHex("80822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501604052606084815261"), v) + pt.Insert(decodeHex("80820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c0908490"), v) + pt.Insert(decodeHex("80519060200190808383829060006004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("80516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c0908490801561"), v) + pt.Insert(decodeHex("6101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de578201919060"), v) + pt.Insert(decodeHex("604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402850160405260608481"), v) + pt.Insert(decodeHex("60243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590"), v) + pt.Insert(decodeHex("6020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490940285"), v) + pt.Insert(decodeHex("6020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de578201"), v) + pt.Insert(decodeHex("60200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b"), v) + pt.Insert(decodeHex("60043560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81"), v) + pt.Insert(decodeHex("6001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de"), v) + pt.Insert(decodeHex("60006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094"), v) + pt.Insert(decodeHex("5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c09084"), v) + pt.Insert(decodeHex("52928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501604052"), v) + pt.Insert(decodeHex("52604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501604052606084"), v) + pt.Insert(decodeHex("5260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782019190600052602060002090"), v) + pt.Insert(decodeHex("516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103"), v) + pt.Insert(decodeHex("4080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490940285016040526060848152"), v) + pt.Insert(decodeHex("3560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185"), v) + pt.Insert(decodeHex("3560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490"), v) + pt.Insert(decodeHex("243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004"), v) + pt.Insert(decodeHex("2090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501604052606084815261006c"), v) + pt.Insert(decodeHex("20818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501"), v) + pt.Insert(decodeHex("20036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191"), v) + pt.Insert(decodeHex("200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81"), v) + pt.Insert(decodeHex("1916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782019190600052602060"), v) + pt.Insert(decodeHex("16815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de578201919060005260206000"), v) + pt.Insert(decodeHex("0a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de578201919060005260"), v) + pt.Insert(decodeHex("043560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101"), v) + pt.Insert(decodeHex("0380516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c09084908015"), v) + pt.Insert(decodeHex("036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782019190"), v) + pt.Insert(decodeHex("031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020"), v) + pt.Insert(decodeHex("0191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154"), v) + pt.Insert(decodeHex("01836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57"), v) + pt.Insert(decodeHex("01000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000"), v) + pt.Insert(decodeHex("006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402"), v) + pt.Insert(decodeHex("000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782019190600052"), v) + pt.Insert(decodeHex("ffffffff1681565b60"), v) + pt.Insert(decodeHex("60006005600a4306101561032f57600190506103"), v) + pt.Insert(decodeHex("600160a060020a033316600090815260"), v) + pt.Insert(decodeHex("ffffff168152602001"), v) + pt.Insert(decodeHex("82815260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("9060006004602084601f0104600302600f01f150"), v) + pt.Insert(decodeHex("8383829060006004602084601f0104600302600f"), v) + pt.Insert(decodeHex("83829060006004602084601f0104600302600f01"), v) + pt.Insert(decodeHex("829060006004602084601f0104600302600f01f1"), v) + pt.Insert(decodeHex("808383829060006004602084601f010460030260"), v) + pt.Insert(decodeHex("60006004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("815260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("0000000000000000000000000000"), v) + pt.Insert(decodeHex("8352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292939290918301828280"), v) + pt.Insert(decodeHex("83526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085529293929091"), v) + pt.Insert(decodeHex("81810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085529293"), v) + pt.Insert(decodeHex("810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552929392"), v) + pt.Insert(decodeHex("808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552929392909183018282"), v) + pt.Insert(decodeHex("8051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280"), v) + pt.Insert(decodeHex("60408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095"), v) + pt.Insert(decodeHex("602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552"), v) + pt.Insert(decodeHex("60043560408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184"), v) + pt.Insert(decodeHex("600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552929392909183018282801561"), v) + pt.Insert(decodeHex("6000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292939290918301"), v) + pt.Insert(decodeHex("6000526020600020"), v) + pt.Insert(decodeHex("52600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085529293929091830182828015"), v) + pt.Insert(decodeHex("526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552929392909183"), v) + pt.Insert(decodeHex("51602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085"), v) + pt.Insert(decodeHex("408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552"), v) + pt.Insert(decodeHex("3560408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190"), v) + pt.Insert(decodeHex("2081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292"), v) + pt.Insert(decodeHex("043560408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401"), v) + pt.Insert(decodeHex("0183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292939290"), v) + pt.Insert(decodeHex("0160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292939290918301828280156101"), v) + pt.Insert(decodeHex("00808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085529293929091830182"), v) + pt.Insert(decodeHex("0160a060020a033316600090815261"), v) + pt.Insert(decodeHex("006005600a4306101561032f57600190506103"), v) + pt.Insert(decodeHex("6020016000206000"), v) + pt.Insert(decodeHex("000000000000000000"), v) + pt.Insert(decodeHex("7c01000000000000000000000000000000000000000000000000000000009004"), v) + pt.Insert(decodeHex("6000357c01000000000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("357c010000000000000000000000000000000000000000000000000000000090"), v) + pt.Insert(decodeHex("0100000000000000000000000000000000000000000000000000000000900480"), v) + pt.Insert(decodeHex("00357c0100000000000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("0000000000000000000000000000000000000000000000000000000090048063"), v) + pt.Insert(decodeHex("0160a060020a033316600090815260"), v) + pt.Insert(decodeHex("405180910390f35b"), v) + pt.Insert(decodeHex("006004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("52602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffff1682"), v) + pt.Insert(decodeHex("600460209081526040808320849055600590"), v) + pt.Insert(decodeHex("928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190"), v) + pt.Insert(decodeHex("836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381"), v) + pt.Insert(decodeHex("822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261"), v) + pt.Insert(decodeHex("820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182"), v) + pt.Insert(decodeHex("818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601"), v) + pt.Insert(decodeHex("8152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185"), v) + pt.Insert(decodeHex("8152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096"), v) + pt.Insert(decodeHex("815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154815260200191508054"), v) + pt.Insert(decodeHex("80822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552"), v) + pt.Insert(decodeHex("80820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001"), v) + pt.Insert(decodeHex("806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156104"), v) + pt.Insert(decodeHex("80516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103"), v) + pt.Insert(decodeHex("6101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181548152"), v) + pt.Insert(decodeHex("604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285"), v) + pt.Insert(decodeHex("60243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101"), v) + pt.Insert(decodeHex("6020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502"), v) + pt.Insert(decodeHex("6020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181"), v) + pt.Insert(decodeHex("60200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181548152602001915080548015"), v) + pt.Insert(decodeHex("60043560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6040805160206024803560048181013560"), v) + pt.Insert(decodeHex("6001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252"), v) + pt.Insert(decodeHex("60006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004"), v) + pt.Insert(decodeHex("5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020"), v) + pt.Insert(decodeHex("52928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501"), v) + pt.Insert(decodeHex("52604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652"), v) + pt.Insert(decodeHex("5260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481526020019150805480"), v) + pt.Insert(decodeHex("5260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382"), v) + pt.Insert(decodeHex("4080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585"), v) + pt.Insert(decodeHex("3560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81"), v) + pt.Insert(decodeHex("3560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590"), v) + pt.Insert(decodeHex("243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185"), v) + pt.Insert(decodeHex("2090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100"), v) + pt.Insert(decodeHex("20818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286"), v) + pt.Insert(decodeHex("20036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154"), v) + pt.Insert(decodeHex("200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154815260200191508054801561"), v) + pt.Insert(decodeHex("1916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481526020019150"), v) + pt.Insert(decodeHex("16815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181548152602001915080"), v) + pt.Insert(decodeHex("0a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181548152602001"), v) + pt.Insert(decodeHex("043560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f"), v) + pt.Insert(decodeHex("0380516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281"), v) + pt.Insert(decodeHex("036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481"), v) + pt.Insert(decodeHex("031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154815260200191"), v) + pt.Insert(decodeHex("0191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481526020019150805480156104"), v) + pt.Insert(decodeHex("01836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283"), v) + pt.Insert(decodeHex("01000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154815260"), v) + pt.Insert(decodeHex("006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485"), v) + pt.Insert(decodeHex("000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481526020"), v) + pt.Insert(decodeHex("600052602060002090"), v) + pt.Insert(decodeHex("820191906000526020600020905b81"), v) + pt.Insert(decodeHex("00000000000000000000000000"), v) + pt.Insert(decodeHex("ffffff1681565b60"), v) + pt.Insert(decodeHex("60a060020a033316600090815261"), v) + pt.Insert(decodeHex("ffff168152602001"), v) + pt.Insert(decodeHex("0000000000000000"), v) + pt.Insert(decodeHex("6004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("000000000000000000000000"), v) + pt.Insert(decodeHex("60a060020a033316600090815260"), v) + pt.Insert(decodeHex("600160a060020a033316"), v) + pt.Insert(decodeHex("0460209081526040808320849055600590"), v) + pt.Insert(decodeHex("f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101906020018083116103c1"), v) + pt.Insert(decodeHex("9250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81548152906001"), v) + pt.Insert(decodeHex("910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b815481529060010190602001808311"), v) + pt.Insert(decodeHex("90f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101906020018083116103"), v) + pt.Insert(decodeHex("9081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467"), v) + pt.Insert(decodeHex("900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffff"), v) + pt.Insert(decodeHex("8252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60"), v) + pt.Insert(decodeHex("81900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ff"), v) + pt.Insert(decodeHex("80910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101906020018083"), v) + pt.Insert(decodeHex("606060405260e060020a60003504630a3b0a4f81146100315780634e71d92d14"), v) + pt.Insert(decodeHex("6060405260e060020a60003504630a3b0a4f81146100315780634e71d92d1461"), v) + pt.Insert(decodeHex("60405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101906020"), v) + pt.Insert(decodeHex("60200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffffffff"), v) + pt.Insert(decodeHex("52519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b6002"), v) + pt.Insert(decodeHex("519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b600254"), v) + pt.Insert(decodeHex("5180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81548152906001019060200180"), v) + pt.Insert(decodeHex("5060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81548152906001019060"), v) + pt.Insert(decodeHex("505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b815481529060010190"), v) + pt.Insert(decodeHex("50505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101"), v) + pt.Insert(decodeHex("405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b815481529060010190602001"), v) + pt.Insert(decodeHex("200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffffffffff"), v) + pt.Insert(decodeHex("0390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81548152906001019060200180831161"), v) + pt.Insert(decodeHex("0360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffffff"), v) + pt.Insert(decodeHex("0190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffffffffffff"), v) + pt.Insert(decodeHex("91906000526020600020905b8154815290600101"), v) + pt.Insert(decodeHex("906000526020600020905b815481529060010190"), v) + pt.Insert(decodeHex("820191906000526020600020905b815481529060"), v) + pt.Insert(decodeHex("6020600020905b81548152906001019060200180"), v) + pt.Insert(decodeHex("60200191505060405180910390f35b"), v) + pt.Insert(decodeHex("6000526020600020905b81548152906001019060"), v) + pt.Insert(decodeHex("600020905b815481529060010190602001808311"), v) + pt.Insert(decodeHex("57820191906000526020600020905b8154815290"), v) + pt.Insert(decodeHex("526020600020905b815481529060010190602001"), v) + pt.Insert(decodeHex("20600020905b8154815290600101906020018083"), v) + pt.Insert(decodeHex("0191906000526020600020905b81548152906001"), v) + pt.Insert(decodeHex("00526020600020905b8154815290600101906020"), v) + pt.Insert(decodeHex("0020905b81548152906001019060200180831161"), v) + pt.Insert(decodeHex("50505060405180910390"), v) + pt.Insert(decodeHex("57823582600050559160200191906001019061"), v) + pt.Insert(decodeHex("0191906000526020600020905b81"), v) + pt.Insert(decodeHex("602001600020600050"), v) + pt.Insert(decodeHex("a060020a033316600090815261"), v) + pt.Insert(decodeHex("04602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("ffff168152602001908152602001600020600050"), v) + pt.Insert(decodeHex("006004602084601f0104600302600f01f1509050"), v) + pt.Insert(decodeHex("906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b"), v) + pt.Insert(decodeHex("9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681"), v) + pt.Insert(decodeHex("81815233600160a060020a031682526001602090815260409283902080549182"), v) + pt.Insert(decodeHex("6101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("60606040526000357c0100000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("606040526000357c010000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("6040526000357c01000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("565b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f15090500192"), v) + pt.Insert(decodeHex("54906101000a900473ffffffffffffffffffffffffffffffffffffffff168156"), v) + pt.Insert(decodeHex("526000357c010000000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("40526000357c0100000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("018367ffffffffffffffff16815260200150600360005060003373ffffffffff"), v) + pt.Insert(decodeHex("20905b81548152906001019060200180831161"), v) + pt.Insert(decodeHex("0052602060002090"), v) + pt.Insert(decodeHex("a060020a033316600090815260"), v) + pt.Insert(decodeHex("9081101561000257"), v) + pt.Insert(decodeHex("0000000000000000000000"), v) + pt.Insert(decodeHex("200191505060405180910390f35b"), v) + pt.Insert(decodeHex("ff168152602001908152602001600020600050"), v) + pt.Insert(decodeHex("6004602084601f0104600302600f01f1509050"), v) + pt.Insert(decodeHex("0160a060020a033316"), v) + pt.Insert(decodeHex("91906000526020600020905b81"), v) + pt.Insert(decodeHex("602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("546802b5e3af16b187ff"), v) + pt.Insert(decodeHex("905b81548152906001019060200180831161"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392"), v) + pt.Insert(decodeHex("ffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290"), v) + pt.Insert(decodeHex("ffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092"), v) + pt.Insert(decodeHex("ffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201"), v) + pt.Insert(decodeHex("ffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191"), v) + pt.Insert(decodeHex("ffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181"), v) + pt.Insert(decodeHex("ffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190"), v) + pt.Insert(decodeHex("ff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084"), v) + pt.Insert(decodeHex("f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080838382906000600460208460"), v) + pt.Insert(decodeHex("f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060"), v) + pt.Insert(decodeHex("935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795"), v) + pt.Insert(decodeHex("9250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001908083"), v) + pt.Insert(decodeHex("918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302"), v) + pt.Insert(decodeHex("915080519060200190808383829060006004602084601f0104600302600f01f1"), v) + pt.Insert(decodeHex("915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080519182525190819003"), v) + pt.Insert(decodeHex("910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080838382906000600460"), v) + pt.Insert(decodeHex("90f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084"), v) + pt.Insert(decodeHex("90935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077"), v) + pt.Insert(decodeHex("9081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f1"), v) + pt.Insert(decodeHex("90815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035"), v) + pt.Insert(decodeHex("90808383829060006004602084601f0104600302600f01f15090509081019060"), v) + pt.Insert(decodeHex("906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffff"), v) + pt.Insert(decodeHex("90602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040"), v) + pt.Insert(decodeHex("9060200190808383829060006004602084601f0104600302600f01f150905090"), v) + pt.Insert(decodeHex("9060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190"), v) + pt.Insert(decodeHex("9060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183"), v) + pt.Insert(decodeHex("9060006004602084601f0104600302600f01f150905090810190601f16801561"), v) + pt.Insert(decodeHex("9060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281"), v) + pt.Insert(decodeHex("9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673"), v) + pt.Insert(decodeHex("9050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001"), v) + pt.Insert(decodeHex("900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffff"), v) + pt.Insert(decodeHex("900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("84601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151"), v) + pt.Insert(decodeHex("8383829060006004602084601f0104600302600f01f150905090810190601f16"), v) + pt.Insert(decodeHex("8383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020"), v) + pt.Insert(decodeHex("83829060006004602084601f0104600302600f01f150905090810190601f1680"), v) + pt.Insert(decodeHex("83829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001"), v) + pt.Insert(decodeHex("838181518152602001915080519060200190808383829060006004602084601f"), v) + pt.Insert(decodeHex("838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080"), v) + pt.Insert(decodeHex("836020036101000a031916815260200191505b509250505060405180910390f3"), v) + pt.Insert(decodeHex("829060006004602084601f0104600302600f01f150905090810190601f168015"), v) + pt.Insert(decodeHex("829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182"), v) + pt.Insert(decodeHex("8281038252838181518152602001915080519060200190808383829060006004"), v) + pt.Insert(decodeHex("82565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382808284"), v) + pt.Insert(decodeHex("8252838181518152602001915080519060200190808383829060006004602084"), v) + pt.Insert(decodeHex("8252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f010460030260"), v) + pt.Insert(decodeHex("820380516001836020036101000a031916815260200191505b50925050506040"), v) + pt.Insert(decodeHex("81900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150"), v) + pt.Insert(decodeHex("8181518152602001915080519060200190808383829060006004602084601f01"), v) + pt.Insert(decodeHex("8181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051"), v) + pt.Insert(decodeHex("8152602001915080519060200190808383829060006004602084601f01046003"), v) + pt.Insert(decodeHex("8152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252"), v) + pt.Insert(decodeHex("815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594"), v) + pt.Insert(decodeHex("81518152602001915080519060200190808383829060006004602084601f0104"), v) + pt.Insert(decodeHex("81518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040805191"), v) + pt.Insert(decodeHex("8103825283818151815260200191508051906020019080838382906000600460"), v) + pt.Insert(decodeHex("80910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004"), v) + pt.Insert(decodeHex("808383829060006004602084601f0104600302600f01f150905090810190601f"), v) + pt.Insert(decodeHex("808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060"), v) + pt.Insert(decodeHex("80820380516001836020036101000a031916815260200191505b509250505060"), v) + pt.Insert(decodeHex("805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494"), v) + pt.Insert(decodeHex("8051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f010460"), v) + pt.Insert(decodeHex("80519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040805191825251908190036020"), v) + pt.Insert(decodeHex("8051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082843750949550"), v) + pt.Insert(decodeHex("80516001836020036101000a031916815260200191505b509250505060405180"), v) + pt.Insert(decodeHex("8035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082843750949550505050505060"), v) + pt.Insert(decodeHex("73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffff"), v) + pt.Insert(decodeHex("6c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff1916815560018101805484825590845282"), v) + pt.Insert(decodeHex("67ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093"), v) + pt.Insert(decodeHex("6101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffff"), v) + pt.Insert(decodeHex("61006c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff191681556001810180548482559084"), v) + pt.Insert(decodeHex("60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f01"), v) + pt.Insert(decodeHex("60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382808284375094"), v) + pt.Insert(decodeHex("60405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060"), v) + pt.Insert(decodeHex("60248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382808284375094955050505050"), v) + pt.Insert(decodeHex("602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381"), v) + pt.Insert(decodeHex("602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280828437509495505050"), v) + pt.Insert(decodeHex("6020036101000a031916815260200191505b509250505060405180910390f35b"), v) + pt.Insert(decodeHex("602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051"), v) + pt.Insert(decodeHex("602001915080519060200190808383829060006004602084601f010460030260"), v) + pt.Insert(decodeHex("602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080519182525190"), v) + pt.Insert(decodeHex("60200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090"), v) + pt.Insert(decodeHex("60200190808383829060006004602084601f0104600302600f01f15090509081"), v) + pt.Insert(decodeHex("60200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f3"), v) + pt.Insert(decodeHex("6020018281038252838181518152602001915080519060200190808383829060"), v) + pt.Insert(decodeHex("601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181"), v) + pt.Insert(decodeHex("600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080"), v) + pt.Insert(decodeHex("6004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252"), v) + pt.Insert(decodeHex("600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001"), v) + pt.Insert(decodeHex("6001836020036101000a031916815260200191505b5092505050604051809103"), v) + pt.Insert(decodeHex("60010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382"), v) + pt.Insert(decodeHex("60006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103"), v) + pt.Insert(decodeHex("6000600050600060016000506000868152602001908152602001600020600050"), v) + pt.Insert(decodeHex("5b61006c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff1916815560018101805484825590"), v) + pt.Insert(decodeHex("5b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f"), v) + pt.Insert(decodeHex("5b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082843750"), v) + pt.Insert(decodeHex("5780820380516001836020036101000a031916815260200191505b5092505050"), v) + pt.Insert(decodeHex("565b61006c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff19168155600181018054848255"), v) + pt.Insert(decodeHex("565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280828437"), v) + pt.Insert(decodeHex("54906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ff"), v) + pt.Insert(decodeHex("5467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490"), v) + pt.Insert(decodeHex("5290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590"), v) + pt.Insert(decodeHex("5283818151815260200191508051906020019080838382906000600460208460"), v) + pt.Insert(decodeHex("52602001915080519060200190808383829060006004602084601f0104600302"), v) + pt.Insert(decodeHex("52602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040805191825251"), v) + pt.Insert(decodeHex("52519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f"), v) + pt.Insert(decodeHex("5220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460"), v) + pt.Insert(decodeHex("51918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f01046003"), v) + pt.Insert(decodeHex("519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01"), v) + pt.Insert(decodeHex("519060200190808383829060006004602084601f0104600302600f01f1509050"), v) + pt.Insert(decodeHex("519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080519182525190819003602001"), v) + pt.Insert(decodeHex("518152602001915080519060200190808383829060006004602084601f010460"), v) + pt.Insert(decodeHex("518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080519182"), v) + pt.Insert(decodeHex("5180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001908083838290600060"), v) + pt.Insert(decodeHex("51602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382808284375094955050"), v) + pt.Insert(decodeHex("516001836020036101000a031916815260200191505b50925050506040518091"), v) + pt.Insert(decodeHex("509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020"), v) + pt.Insert(decodeHex("5080519060200190808383829060006004602084601f0104600302600f01f150"), v) + pt.Insert(decodeHex("5080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360"), v) + pt.Insert(decodeHex("5060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001908083838290"), v) + pt.Insert(decodeHex("505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080838382"), v) + pt.Insert(decodeHex("50505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383"), v) + pt.Insert(decodeHex("50019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190"), v) + pt.Insert(decodeHex("408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104"), v) + pt.Insert(decodeHex("408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280828437509495"), v) + pt.Insert(decodeHex("405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080838382906000"), v) + pt.Insert(decodeHex("248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280828437509495505050505050"), v) + pt.Insert(decodeHex("2084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181"), v) + pt.Insert(decodeHex("20805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044"), v) + pt.Insert(decodeHex("2060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082843750949550505050"), v) + pt.Insert(decodeHex("2002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180"), v) + pt.Insert(decodeHex("2001915080519060200190808383829060006004602084601f0104600302600f"), v) + pt.Insert(decodeHex("2001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081"), v) + pt.Insert(decodeHex("200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f15090509081"), v) + pt.Insert(decodeHex("200190808383829060006004602084601f0104600302600f01f1509050908101"), v) + pt.Insert(decodeHex("200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b"), v) + pt.Insert(decodeHex("2001828103825283818151815260200191508051906020019080838382906000"), v) + pt.Insert(decodeHex("1f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152"), v) + pt.Insert(decodeHex("169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401"), v) + pt.Insert(decodeHex("0f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051"), v) + pt.Insert(decodeHex("0a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffff"), v) + pt.Insert(decodeHex("0473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffff"), v) + pt.Insert(decodeHex("04602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283"), v) + pt.Insert(decodeHex("04600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020"), v) + pt.Insert(decodeHex("0390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001908083838290600060046020"), v) + pt.Insert(decodeHex("0382528381815181526020019150805190602001908083838290600060046020"), v) + pt.Insert(decodeHex("0380516001836020036101000a031916815260200191505b5092505050604051"), v) + pt.Insert(decodeHex("0360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f1509050"), v) + pt.Insert(decodeHex("0302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191"), v) + pt.Insert(decodeHex("02808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080"), v) + pt.Insert(decodeHex("02600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150"), v) + pt.Insert(decodeHex("01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190"), v) + pt.Insert(decodeHex("019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080"), v) + pt.Insert(decodeHex("01915080519060200190808383829060006004602084601f0104600302600f01"), v) + pt.Insert(decodeHex("01915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040805191825251908190"), v) + pt.Insert(decodeHex("0190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f1509050908101"), v) + pt.Insert(decodeHex("0190808383829060006004602084601f0104600302600f01f150905090810190"), v) + pt.Insert(decodeHex("0190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60"), v) + pt.Insert(decodeHex("01836020036101000a031916815260200191505b509250505060405180910390"), v) + pt.Insert(decodeHex("0182810382528381815181526020019150805190602001908083838290600060"), v) + pt.Insert(decodeHex("0182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082"), v) + pt.Insert(decodeHex("0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260"), v) + pt.Insert(decodeHex("010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280"), v) + pt.Insert(decodeHex("01000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffff"), v) + pt.Insert(decodeHex("006c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff19168155600181018054848255908452"), v) + pt.Insert(decodeHex("006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382"), v) + pt.Insert(decodeHex("0060005060006001600050600086815260200190815260200160002060005060"), v) + pt.Insert(decodeHex("000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffff"), v) + + mf2 := NewMatchFinder2(&pt) + data := decodeHex("6060604052361561008a576000357c01000000000000000000000000000000000000000000000000000000009004806301cb3b20146102e357806329dcb0cf14" + + "6102f057806338af3eed146103115780636e66f6e9146103485780637a3a0e841461037f5780637b3e5e7b146103a0578063a035b1fe146103c1578063dc0d3d" + + "ff146103e25761008a565b6102e15b60006000600660005060066000508054600101908181548183558181151161011957600202816002028360005260206000" + + "20918201910161011891906100cf565b808211156101145760006000820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690" + + "556001820160005060009055506001016100cf565b5090565b5b5050508154811015610002579060005260206000209060020201600091509150338282506000" + + "0160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908302179055503482825060010160005081905550818150600101600050" + + "546002600082828250540192505081905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffff" + + "ffffffffffffffffffff166390b98a11336004600050548585506001016000505404604051837c01000000000000000000000000000000000000000000000000" + + "00000000028152600401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506020604051808303816000876161da" + + "5a03f1156100025750505060405151507fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf682825060000160009054906101000a" + + "900473ffffffffffffffffffffffffffffffffffffffff16838350600101600050546001604051808473ffffffffffffffffffffffffffffffffffffffff1681" + + "52602001838152602001828152602001935050505060405180910390a15b5050565b005b6102ee6004506104ec565b005b6102fb60045061045e565b60405180" + + "82815260200191505060405180910390f35b61031c600450610426565b604051808273ffffffffffffffffffffffffffffffffffffffff168152602001915050" + + "60405180910390f35b610353600450610470565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b" + + "61038a60045061044c565b6040518082815260200191505060405180910390f35b6103ab600450610455565b6040518082815260200191505060405180910390" + + "f35b6103cc600450610467565b6040518082815260200191505060405180910390f35b6103f3600480359060200150610496565b604051808373ffffffffffff" + + "ffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b600060009054906101000a900473ffffffffffffffffffffff" + + "ffffffffffffffffff1681565b60016000505481565b60026000505481565b60036000505481565b60046000505481565b600560009054906101000a900473ff" + + "ffffffffffffffffffffffffffffffffffffff1681565b6006600050818154811015610002579060005260206000209060020201600091509050806000016000" + + "9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160005054905082565b6000600360005054421015156107fc57600160" + + "0050546002600050541015156105f357600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffff" + + "ffffffffffffffff166000600260005054604051809050600060405180830381858888f19350505050507fe842aea7a5f1b01049d752008c53c52890b1a6daf6" + + "60cf39e8eec506112bbdf6600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166002600050546000604051808473ffffffff" + + "ffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a16107c1565b7fe842aea7a5f1b01049d752" + + "008c53c52890b1a6daf660cf39e8eec506112bbdf66000600b600060405180848152602001838152602001828152602001935050505060405180910390a16000" + + "90505b6006600050548110156107c057600660005081815481101561000257906000526020600020906002020160005060000160009054906101000a900473ff" + + "ffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660006006600050838154811015610002579060005260" + + "20600020906002020160005060010160005054604051809050600060405180830381858888f19350505050507fe842aea7a5f1b01049d752008c53c52890b1a6" + + "daf660cf39e8eec506112bbdf6600660005082815481101561000257906000526020600020906002020160005060000160009054906101000a900473ffffffff" + + "ffffffffffffffffffffffffffffffff166006600050838154811015610002579060005260206000209060020201600050600101600050546000604051808473" + + "ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15b806001019050805061064256" + + "5b5b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b5056") + matches := mf2.FindLongestMatches(data) + for _, m := range matches { + fmt.Printf("%+v, match: [%x]\n", m, data[m.Start:m.End]) + } + if len(matches) != 234 { + t.Errorf("expected matches: %d, got %d", 234, len(matches)) + } +} + +func TestFindMatches7(t *testing.T) { + var pt PatriciaTree + v := []byte{1} + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("73ffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("600160a060020a03"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff16815260200191505060405180910390a1"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff1681"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff168156"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff1681565b"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffffff168152602001908152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffff16815260200190815260200160"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff1681526020019081526020016000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff168152602001908152602001600020"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff16815260200190815260200160002060"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("73ffffffffffffffffffffffffffffffffffffffff1681526020019081526020"), v) + pt.Insert(decodeHex("81526020019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff168152"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff16815260"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1681526020"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("526020019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("6020019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("8152602001908152602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("80806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f16801561"), v) + pt.Insert(decodeHex("60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f16"), v) + pt.Insert(decodeHex("5b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f"), v) + pt.Insert(decodeHex("5180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f168015"), v) + pt.Insert(decodeHex("405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680"), v) + pt.Insert(decodeHex("20019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("52602001908152602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffff168152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("602001908152602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffffffffff168152602001"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff168152602001908152602001600020600050"), v) + pt.Insert(decodeHex("9081526020016000206000"), v) + pt.Insert(decodeHex("5050604051849350600080"), v) + pt.Insert(decodeHex("2001908152602001600020600050"), v) + pt.Insert(decodeHex("505060405180910390f35b"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("6000506000600060005054815260200190815260200160002060006101000a81"), v) + pt.Insert(decodeHex("00506000600060005054815260200190815260200160002060006101000a8154"), v) + pt.Insert(decodeHex("ffffffffffff1681565b60"), v) + pt.Insert(decodeHex("ffffff16815260200191505060405180910390a1"), v) + pt.Insert(decodeHex("ffffffffff168152602001"), v) + pt.Insert(decodeHex("8281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a4578082"), v) + pt.Insert(decodeHex("81038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a457808203"), v) + pt.Insert(decodeHex("6020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a4"), v) + pt.Insert(decodeHex("60005060003373ffffffffffffffffffffffffffffffffffffffff1681526020"), v) + pt.Insert(decodeHex("60003373ffffffffffffffffffffffffffffffffffffffff1681526020019081"), v) + pt.Insert(decodeHex("5060003373ffffffffffffffffffffffffffffffffffffffff16815260200190"), v) + pt.Insert(decodeHex("3373ffffffffffffffffffffffffffffffffffffffff16815260200190815260"), v) + pt.Insert(decodeHex("20018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a457"), v) + pt.Insert(decodeHex("038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a45780820380"), v) + pt.Insert(decodeHex("018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100a45780"), v) + pt.Insert(decodeHex("005060003373ffffffffffffffffffffffffffffffffffffffff168152602001"), v) + pt.Insert(decodeHex("003373ffffffffffffffffffffffffffffffffffffffff168152602001908152"), v) + pt.Insert(decodeHex("01908152602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff16815260200190"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff1681526020019081"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff168152602001908152"), v) + pt.Insert(decodeHex("ffffffffffffffffffff16815260200190815260"), v) + pt.Insert(decodeHex("ffffffffffffffffff1681526020019081526020"), v) + pt.Insert(decodeHex("ffffffffffffffff168152602001908152602001"), v) + pt.Insert(decodeHex("ffffffffffffff16815260200190815260200160"), v) + pt.Insert(decodeHex("ffffffffffff1681526020019081526020016000"), v) + pt.Insert(decodeHex("ffffffffff168152602001908152602001600020"), v) + pt.Insert(decodeHex("ffffffff16815260200190815260200160002060"), v) + pt.Insert(decodeHex("ffffff1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("81526020016000206000"), v) + pt.Insert(decodeHex("50604051849350600080"), v) + pt.Insert(decodeHex("ffffffffffffffffffff1682"), v) + pt.Insert(decodeHex("5060405180910390f35b"), v) + pt.Insert(decodeHex("168152602001908152602001600020600050"), v) + pt.Insert(decodeHex("ffff16815260200191505060405180910390a1"), v) + pt.Insert(decodeHex("67ffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffff1682"), v) + pt.Insert(decodeHex("ffff1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("6040518082815260200191505060405180910390"), v) + pt.Insert(decodeHex("ffffffffff1681565b60"), v) + pt.Insert(decodeHex("908152602001600020600050"), v) + pt.Insert(decodeHex("8281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390"), v) + pt.Insert(decodeHex("81038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f3"), v) + pt.Insert(decodeHex("80806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f150905001925050506040"), v) + pt.Insert(decodeHex("806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f15090500192505050604051"), v) + pt.Insert(decodeHex("60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f150905001925050"), v) + pt.Insert(decodeHex("6020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180"), v) + pt.Insert(decodeHex("5b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250"), v) + pt.Insert(decodeHex("5180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060"), v) + pt.Insert(decodeHex("405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f15090500192505050"), v) + pt.Insert(decodeHex("20018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f150905001925050506040518091"), v) + pt.Insert(decodeHex("038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b"), v) + pt.Insert(decodeHex("018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f15090500192505050604051809103"), v) + pt.Insert(decodeHex("ffffffff168152602001"), v) + pt.Insert(decodeHex("5b60405180828152602001915050604051809103"), v) + pt.Insert(decodeHex("565b604051808281526020019150506040518091"), v) + pt.Insert(decodeHex("518082815260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("40518082815260200191505060405180910390f3"), v) + pt.Insert(decodeHex("ff16815260200191505060405180910390a1"), v) + pt.Insert(decodeHex("ffffffffffffffffff1682"), v) + pt.Insert(decodeHex("808281526102cb94909290828280156100d757"), v) + pt.Insert(decodeHex("ff1681526020019081526020016000206000"), v) + pt.Insert(decodeHex("526020016000206000"), v) + pt.Insert(decodeHex("f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f15090509081019060"), v) + pt.Insert(decodeHex("a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff191681556001810180548482559084528284209192849261"), v) + pt.Insert(decodeHex("90f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190"), v) + pt.Insert(decodeHex("8252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60"), v) + pt.Insert(decodeHex("60a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff1916815560018101805484825590845282842091928492"), v) + pt.Insert(decodeHex("602081815260408083206002548452825282208354815467ffffffffffffffff191667ffffffffffffffff919091161781556001848101805491830180548382"), v) + pt.Insert(decodeHex("600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff191681556001810180548482559084528284"), v) + pt.Insert(decodeHex("600160a060020a0333168252602082815260408084208585528252928390206001018054601f810183900490920260a090810190945260808281529293909190"), v) + pt.Insert(decodeHex("600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff191681556001810180548482559084528284209192"), v) + pt.Insert(decodeHex("60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("52838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040"), v) + pt.Insert(decodeHex("52600160a060020a0333168252602082815260408084208585528252928390206001018054601f810183900490920260a0908101909452608082815292939091"), v) + pt.Insert(decodeHex("526000828152604090208054829081101561000257506000908152602090200154905081565b610315600435600160a060020a03331660009081526020818152"), v) + pt.Insert(decodeHex("35600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff1916815560018101805484825590845282842091"), v) + pt.Insert(decodeHex("2081815260408083206002548452825282208354815467ffffffffffffffff191667ffffffffffffffff91909116178155600184810180549183018054838255"), v) + pt.Insert(decodeHex("0435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff19168155600181018054848255908452828420"), v) + pt.Insert(decodeHex("0160a060020a0333168252602082815260408084208585528252928390206001018054601f810183900490920260a09081019094526080828152929390919082"), v) + pt.Insert(decodeHex("0160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff19168155600181018054848255908452828420919284"), v) + pt.Insert(decodeHex("009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("60405180910390f35b"), v) + pt.Insert(decodeHex("8082815260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("ffffffffffffff1682"), v) + pt.Insert(decodeHex("600160a060020a033316600090815261"), v) + pt.Insert(decodeHex("8152602001600020600050"), v) + pt.Insert(decodeHex("90600052602060002090"), v) + pt.Insert(decodeHex("928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402850160405260"), v) + pt.Insert(decodeHex("836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782"), v) + pt.Insert(decodeHex("822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402850160405260608481526100"), v) + pt.Insert(decodeHex("820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080"), v) + pt.Insert(decodeHex("818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402850160"), v) + pt.Insert(decodeHex("8152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490940285016040"), v) + pt.Insert(decodeHex("8152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490940285016040526060"), v) + pt.Insert(decodeHex("815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020"), v) + pt.Insert(decodeHex("80822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501604052606084815261"), v) + pt.Insert(decodeHex("80820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c0908490"), v) + pt.Insert(decodeHex("80519060200190808383829060006004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("80516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c0908490801561"), v) + pt.Insert(decodeHex("6101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de578201919060"), v) + pt.Insert(decodeHex("604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402850160405260608481"), v) + pt.Insert(decodeHex("60243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590"), v) + pt.Insert(decodeHex("6020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490940285"), v) + pt.Insert(decodeHex("6020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de578201"), v) + pt.Insert(decodeHex("60200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b"), v) + pt.Insert(decodeHex("60043560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81"), v) + pt.Insert(decodeHex("6001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de"), v) + pt.Insert(decodeHex("60006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094"), v) + pt.Insert(decodeHex("5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c09084"), v) + pt.Insert(decodeHex("52928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501604052"), v) + pt.Insert(decodeHex("52604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501604052606084"), v) + pt.Insert(decodeHex("5260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782019190600052602060002090"), v) + pt.Insert(decodeHex("516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103"), v) + pt.Insert(decodeHex("4080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490940285016040526060848152"), v) + pt.Insert(decodeHex("3560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185"), v) + pt.Insert(decodeHex("3560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f810185900490"), v) + pt.Insert(decodeHex("243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004"), v) + pt.Insert(decodeHex("2090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501604052606084815261006c"), v) + pt.Insert(decodeHex("20818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f81018590049094028501"), v) + pt.Insert(decodeHex("20036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191"), v) + pt.Insert(decodeHex("200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81"), v) + pt.Insert(decodeHex("1916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782019190600052602060"), v) + pt.Insert(decodeHex("16815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de578201919060005260206000"), v) + pt.Insert(decodeHex("0a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de578201919060005260"), v) + pt.Insert(decodeHex("043560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101"), v) + pt.Insert(decodeHex("0380516001836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c09084908015"), v) + pt.Insert(decodeHex("036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782019190"), v) + pt.Insert(decodeHex("031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020"), v) + pt.Insert(decodeHex("0191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154"), v) + pt.Insert(decodeHex("01836020036101000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57"), v) + pt.Insert(decodeHex("01000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000"), v) + pt.Insert(decodeHex("006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6080602060248035600481810135601f8101859004909402"), v) + pt.Insert(decodeHex("000a031916815260200191505b509250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de5782019190600052"), v) + pt.Insert(decodeHex("ffffffff1681565b60"), v) + pt.Insert(decodeHex("60006005600a4306101561032f57600190506103"), v) + pt.Insert(decodeHex("600160a060020a033316600090815260"), v) + pt.Insert(decodeHex("ffffff168152602001"), v) + pt.Insert(decodeHex("82815260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("9060006004602084601f0104600302600f01f150"), v) + pt.Insert(decodeHex("8383829060006004602084601f0104600302600f"), v) + pt.Insert(decodeHex("83829060006004602084601f0104600302600f01"), v) + pt.Insert(decodeHex("829060006004602084601f0104600302600f01f1"), v) + pt.Insert(decodeHex("808383829060006004602084601f010460030260"), v) + pt.Insert(decodeHex("60006004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("815260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("0000000000000000000000000000"), v) + pt.Insert(decodeHex("8352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292939290918301828280"), v) + pt.Insert(decodeHex("83526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085529293929091"), v) + pt.Insert(decodeHex("81810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085529293"), v) + pt.Insert(decodeHex("810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552929392"), v) + pt.Insert(decodeHex("808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552929392909183018282"), v) + pt.Insert(decodeHex("8051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280"), v) + pt.Insert(decodeHex("60408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095"), v) + pt.Insert(decodeHex("602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552"), v) + pt.Insert(decodeHex("60043560408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184"), v) + pt.Insert(decodeHex("600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552929392909183018282801561"), v) + pt.Insert(decodeHex("6000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292939290918301"), v) + pt.Insert(decodeHex("6000526020600020"), v) + pt.Insert(decodeHex("52600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085529293929091830182828015"), v) + pt.Insert(decodeHex("526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552808552929392909183"), v) + pt.Insert(decodeHex("51602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085"), v) + pt.Insert(decodeHex("408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401909552"), v) + pt.Insert(decodeHex("3560408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190"), v) + pt.Insert(decodeHex("2081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292"), v) + pt.Insert(decodeHex("043560408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f8201849004840281018401"), v) + pt.Insert(decodeHex("0183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292939290"), v) + pt.Insert(decodeHex("0160a060020a0333168152808252838120858252825283902060010180548451601f820184900484028101840190955280855292939290918301828280156101"), v) + pt.Insert(decodeHex("00808352600160a060020a0333168152808252838120858252825283902060010180548451601f82018490048402810184019095528085529293929091830182"), v) + pt.Insert(decodeHex("0160a060020a033316600090815261"), v) + pt.Insert(decodeHex("006005600a4306101561032f57600190506103"), v) + pt.Insert(decodeHex("6020016000206000"), v) + pt.Insert(decodeHex("000000000000000000"), v) + pt.Insert(decodeHex("7c01000000000000000000000000000000000000000000000000000000009004"), v) + pt.Insert(decodeHex("6000357c01000000000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("357c010000000000000000000000000000000000000000000000000000000090"), v) + pt.Insert(decodeHex("0100000000000000000000000000000000000000000000000000000000900480"), v) + pt.Insert(decodeHex("00357c0100000000000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("0000000000000000000000000000000000000000000000000000000090048063"), v) + pt.Insert(decodeHex("0160a060020a033316600090815260"), v) + pt.Insert(decodeHex("405180910390f35b"), v) + pt.Insert(decodeHex("006004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("52602001600020600050"), v) + pt.Insert(decodeHex("ffffffffffff1682"), v) + pt.Insert(decodeHex("600460209081526040808320849055600590"), v) + pt.Insert(decodeHex("928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190"), v) + pt.Insert(decodeHex("836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381"), v) + pt.Insert(decodeHex("822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261"), v) + pt.Insert(decodeHex("820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182"), v) + pt.Insert(decodeHex("818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601"), v) + pt.Insert(decodeHex("8152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185"), v) + pt.Insert(decodeHex("8152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096"), v) + pt.Insert(decodeHex("815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154815260200191508054"), v) + pt.Insert(decodeHex("80822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552"), v) + pt.Insert(decodeHex("80820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001"), v) + pt.Insert(decodeHex("806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156104"), v) + pt.Insert(decodeHex("80516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103"), v) + pt.Insert(decodeHex("6101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181548152"), v) + pt.Insert(decodeHex("604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285"), v) + pt.Insert(decodeHex("60243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101"), v) + pt.Insert(decodeHex("6020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502"), v) + pt.Insert(decodeHex("6020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181"), v) + pt.Insert(decodeHex("60200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181548152602001915080548015"), v) + pt.Insert(decodeHex("60043560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b6040805160206024803560048181013560"), v) + pt.Insert(decodeHex("6001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252"), v) + pt.Insert(decodeHex("60006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004"), v) + pt.Insert(decodeHex("5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020"), v) + pt.Insert(decodeHex("52928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501"), v) + pt.Insert(decodeHex("52604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652"), v) + pt.Insert(decodeHex("5260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481526020019150805480"), v) + pt.Insert(decodeHex("5260200191505060405180910390f35b"), v) + pt.Insert(decodeHex("516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382"), v) + pt.Insert(decodeHex("4080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585"), v) + pt.Insert(decodeHex("3560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81"), v) + pt.Insert(decodeHex("3560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590"), v) + pt.Insert(decodeHex("243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185"), v) + pt.Insert(decodeHex("2090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100"), v) + pt.Insert(decodeHex("20818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286"), v) + pt.Insert(decodeHex("20036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154"), v) + pt.Insert(decodeHex("200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154815260200191508054801561"), v) + pt.Insert(decodeHex("1916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481526020019150"), v) + pt.Insert(decodeHex("16815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181548152602001915080"), v) + pt.Insert(decodeHex("0a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281038252838181548152602001"), v) + pt.Insert(decodeHex("043560243560006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f"), v) + pt.Insert(decodeHex("0380516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff168152602001806020018281"), v) + pt.Insert(decodeHex("036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481"), v) + pt.Insert(decodeHex("031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154815260200191"), v) + pt.Insert(decodeHex("0191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481526020019150805480156104"), v) + pt.Insert(decodeHex("01836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283"), v) + pt.Insert(decodeHex("01000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180602001828103825283818154815260"), v) + pt.Insert(decodeHex("006020818152928152604080822090935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485"), v) + pt.Insert(decodeHex("000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff1681526020018060200182810382528381815481526020"), v) + pt.Insert(decodeHex("600052602060002090"), v) + pt.Insert(decodeHex("820191906000526020600020905b81"), v) + pt.Insert(decodeHex("00000000000000000000000000"), v) + pt.Insert(decodeHex("ffffff1681565b60"), v) + pt.Insert(decodeHex("60a060020a033316600090815261"), v) + pt.Insert(decodeHex("ffff168152602001"), v) + pt.Insert(decodeHex("0000000000000000"), v) + pt.Insert(decodeHex("6004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("000000000000000000000000"), v) + pt.Insert(decodeHex("60a060020a033316600090815260"), v) + pt.Insert(decodeHex("600160a060020a033316"), v) + pt.Insert(decodeHex("0460209081526040808320849055600590"), v) + pt.Insert(decodeHex("f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101906020018083116103c1"), v) + pt.Insert(decodeHex("9250505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81548152906001"), v) + pt.Insert(decodeHex("910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b815481529060010190602001808311"), v) + pt.Insert(decodeHex("90f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101906020018083116103"), v) + pt.Insert(decodeHex("9081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467"), v) + pt.Insert(decodeHex("900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffff"), v) + pt.Insert(decodeHex("8252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60"), v) + pt.Insert(decodeHex("81900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ff"), v) + pt.Insert(decodeHex("80910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101906020018083"), v) + pt.Insert(decodeHex("606060405260e060020a60003504630a3b0a4f81146100315780634e71d92d14"), v) + pt.Insert(decodeHex("6060405260e060020a60003504630a3b0a4f81146100315780634e71d92d1461"), v) + pt.Insert(decodeHex("60405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101906020"), v) + pt.Insert(decodeHex("60200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffffffff"), v) + pt.Insert(decodeHex("52519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b6002"), v) + pt.Insert(decodeHex("519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b600254"), v) + pt.Insert(decodeHex("5180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81548152906001019060200180"), v) + pt.Insert(decodeHex("5060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81548152906001019060"), v) + pt.Insert(decodeHex("505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b815481529060010190"), v) + pt.Insert(decodeHex("50505060405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b8154815290600101"), v) + pt.Insert(decodeHex("405180910390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b815481529060010190602001"), v) + pt.Insert(decodeHex("200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffffffffff"), v) + pt.Insert(decodeHex("0390f35b606082815260406080908152825460a081905260c090849080156103de57820191906000526020600020905b81548152906001019060200180831161"), v) + pt.Insert(decodeHex("0360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffffff"), v) + pt.Insert(decodeHex("0190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051918252519081900360200190f35b50815b60025467ffffffffffff"), v) + pt.Insert(decodeHex("91906000526020600020905b8154815290600101"), v) + pt.Insert(decodeHex("906000526020600020905b815481529060010190"), v) + pt.Insert(decodeHex("820191906000526020600020905b815481529060"), v) + pt.Insert(decodeHex("6020600020905b81548152906001019060200180"), v) + pt.Insert(decodeHex("60200191505060405180910390f35b"), v) + pt.Insert(decodeHex("6000526020600020905b81548152906001019060"), v) + pt.Insert(decodeHex("600020905b815481529060010190602001808311"), v) + pt.Insert(decodeHex("57820191906000526020600020905b8154815290"), v) + pt.Insert(decodeHex("526020600020905b815481529060010190602001"), v) + pt.Insert(decodeHex("20600020905b8154815290600101906020018083"), v) + pt.Insert(decodeHex("0191906000526020600020905b81548152906001"), v) + pt.Insert(decodeHex("00526020600020905b8154815290600101906020"), v) + pt.Insert(decodeHex("0020905b81548152906001019060200180831161"), v) + pt.Insert(decodeHex("50505060405180910390"), v) + pt.Insert(decodeHex("57823582600050559160200191906001019061"), v) + pt.Insert(decodeHex("0191906000526020600020905b81"), v) + pt.Insert(decodeHex("602001600020600050"), v) + pt.Insert(decodeHex("a060020a033316600090815261"), v) + pt.Insert(decodeHex("04602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("ffff168152602001908152602001600020600050"), v) + pt.Insert(decodeHex("006004602084601f0104600302600f01f1509050"), v) + pt.Insert(decodeHex("906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b"), v) + pt.Insert(decodeHex("9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681"), v) + pt.Insert(decodeHex("81815233600160a060020a031682526001602090815260409283902080549182"), v) + pt.Insert(decodeHex("6101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60"), v) + pt.Insert(decodeHex("60606040526000357c0100000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("606040526000357c010000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("6040526000357c01000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("565b60405180806020018281038252838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f15090500192"), v) + pt.Insert(decodeHex("54906101000a900473ffffffffffffffffffffffffffffffffffffffff168156"), v) + pt.Insert(decodeHex("526000357c010000000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("40526000357c0100000000000000000000000000000000000000000000000000"), v) + pt.Insert(decodeHex("018367ffffffffffffffff16815260200150600360005060003373ffffffffff"), v) + pt.Insert(decodeHex("20905b81548152906001019060200180831161"), v) + pt.Insert(decodeHex("0052602060002090"), v) + pt.Insert(decodeHex("a060020a033316600090815260"), v) + pt.Insert(decodeHex("9081101561000257"), v) + pt.Insert(decodeHex("0000000000000000000000"), v) + pt.Insert(decodeHex("200191505060405180910390f35b"), v) + pt.Insert(decodeHex("ff168152602001908152602001600020600050"), v) + pt.Insert(decodeHex("6004602084601f0104600302600f01f1509050"), v) + pt.Insert(decodeHex("0160a060020a033316"), v) + pt.Insert(decodeHex("91906000526020600020905b81"), v) + pt.Insert(decodeHex("602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("546802b5e3af16b187ff"), v) + pt.Insert(decodeHex("905b81548152906001019060200180831161"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392"), v) + pt.Insert(decodeHex("ffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290"), v) + pt.Insert(decodeHex("ffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092"), v) + pt.Insert(decodeHex("ffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201"), v) + pt.Insert(decodeHex("ffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191"), v) + pt.Insert(decodeHex("ffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181"), v) + pt.Insert(decodeHex("ffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190"), v) + pt.Insert(decodeHex("ff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084"), v) + pt.Insert(decodeHex("f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080838382906000600460208460"), v) + pt.Insert(decodeHex("f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060"), v) + pt.Insert(decodeHex("935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795"), v) + pt.Insert(decodeHex("9250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001908083"), v) + pt.Insert(decodeHex("918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302"), v) + pt.Insert(decodeHex("915080519060200190808383829060006004602084601f0104600302600f01f1"), v) + pt.Insert(decodeHex("915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080519182525190819003"), v) + pt.Insert(decodeHex("910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080838382906000600460"), v) + pt.Insert(decodeHex("90f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084"), v) + pt.Insert(decodeHex("90935290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077"), v) + pt.Insert(decodeHex("9081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f1"), v) + pt.Insert(decodeHex("90815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035"), v) + pt.Insert(decodeHex("90808383829060006004602084601f0104600302600f01f15090509081019060"), v) + pt.Insert(decodeHex("906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffff"), v) + pt.Insert(decodeHex("90602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040"), v) + pt.Insert(decodeHex("9060200190808383829060006004602084601f0104600302600f01f150905090"), v) + pt.Insert(decodeHex("9060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190"), v) + pt.Insert(decodeHex("9060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183"), v) + pt.Insert(decodeHex("9060006004602084601f0104600302600f01f150905090810190601f16801561"), v) + pt.Insert(decodeHex("9060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281"), v) + pt.Insert(decodeHex("9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673"), v) + pt.Insert(decodeHex("9050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001"), v) + pt.Insert(decodeHex("900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffff"), v) + pt.Insert(decodeHex("900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f15090"), v) + pt.Insert(decodeHex("84601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151"), v) + pt.Insert(decodeHex("8383829060006004602084601f0104600302600f01f150905090810190601f16"), v) + pt.Insert(decodeHex("8383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020"), v) + pt.Insert(decodeHex("83829060006004602084601f0104600302600f01f150905090810190601f1680"), v) + pt.Insert(decodeHex("83829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001"), v) + pt.Insert(decodeHex("838181518152602001915080519060200190808383829060006004602084601f"), v) + pt.Insert(decodeHex("838181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080"), v) + pt.Insert(decodeHex("836020036101000a031916815260200191505b509250505060405180910390f3"), v) + pt.Insert(decodeHex("829060006004602084601f0104600302600f01f150905090810190601f168015"), v) + pt.Insert(decodeHex("829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182"), v) + pt.Insert(decodeHex("8281038252838181518152602001915080519060200190808383829060006004"), v) + pt.Insert(decodeHex("82565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382808284"), v) + pt.Insert(decodeHex("8252838181518152602001915080519060200190808383829060006004602084"), v) + pt.Insert(decodeHex("8252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f010460030260"), v) + pt.Insert(decodeHex("820380516001836020036101000a031916815260200191505b50925050506040"), v) + pt.Insert(decodeHex("81900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150"), v) + pt.Insert(decodeHex("8181518152602001915080519060200190808383829060006004602084601f01"), v) + pt.Insert(decodeHex("8181518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051"), v) + pt.Insert(decodeHex("8152602001915080519060200190808383829060006004602084601f01046003"), v) + pt.Insert(decodeHex("8152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252"), v) + pt.Insert(decodeHex("815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594"), v) + pt.Insert(decodeHex("81518152602001915080519060200190808383829060006004602084601f0104"), v) + pt.Insert(decodeHex("81518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040805191"), v) + pt.Insert(decodeHex("8103825283818151815260200191508051906020019080838382906000600460"), v) + pt.Insert(decodeHex("80910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004"), v) + pt.Insert(decodeHex("808383829060006004602084601f0104600302600f01f150905090810190601f"), v) + pt.Insert(decodeHex("808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060"), v) + pt.Insert(decodeHex("80820380516001836020036101000a031916815260200191505b509250505060"), v) + pt.Insert(decodeHex("805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494"), v) + pt.Insert(decodeHex("8051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f010460"), v) + pt.Insert(decodeHex("80519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040805191825251908190036020"), v) + pt.Insert(decodeHex("8051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082843750949550"), v) + pt.Insert(decodeHex("80516001836020036101000a031916815260200191505b509250505060405180"), v) + pt.Insert(decodeHex("8035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082843750949550505050505060"), v) + pt.Insert(decodeHex("73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffff"), v) + pt.Insert(decodeHex("6c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff1916815560018101805484825590845282"), v) + pt.Insert(decodeHex("67ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093"), v) + pt.Insert(decodeHex("6101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffff"), v) + pt.Insert(decodeHex("61006c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff191681556001810180548482559084"), v) + pt.Insert(decodeHex("60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f01"), v) + pt.Insert(decodeHex("60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382808284375094"), v) + pt.Insert(decodeHex("60405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060"), v) + pt.Insert(decodeHex("60248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382808284375094955050505050"), v) + pt.Insert(decodeHex("602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381"), v) + pt.Insert(decodeHex("602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280828437509495505050"), v) + pt.Insert(decodeHex("6020036101000a031916815260200191505b509250505060405180910390f35b"), v) + pt.Insert(decodeHex("602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051"), v) + pt.Insert(decodeHex("602001915080519060200190808383829060006004602084601f010460030260"), v) + pt.Insert(decodeHex("602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080519182525190"), v) + pt.Insert(decodeHex("60200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090"), v) + pt.Insert(decodeHex("60200190808383829060006004602084601f0104600302600f01f15090509081"), v) + pt.Insert(decodeHex("60200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f3"), v) + pt.Insert(decodeHex("6020018281038252838181518152602001915080519060200190808383829060"), v) + pt.Insert(decodeHex("601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181"), v) + pt.Insert(decodeHex("600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080"), v) + pt.Insert(decodeHex("6004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252"), v) + pt.Insert(decodeHex("600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001"), v) + pt.Insert(decodeHex("6001836020036101000a031916815260200191505b5092505050604051809103"), v) + pt.Insert(decodeHex("60010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382"), v) + pt.Insert(decodeHex("60006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103"), v) + pt.Insert(decodeHex("6000600050600060016000506000868152602001908152602001600020600050"), v) + pt.Insert(decodeHex("5b61006c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff1916815560018101805484825590"), v) + pt.Insert(decodeHex("5b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f"), v) + pt.Insert(decodeHex("5b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082843750"), v) + pt.Insert(decodeHex("5780820380516001836020036101000a031916815260200191505b5092505050"), v) + pt.Insert(decodeHex("565b61006c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff19168155600181018054848255"), v) + pt.Insert(decodeHex("565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280828437"), v) + pt.Insert(decodeHex("54906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ff"), v) + pt.Insert(decodeHex("5467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460449490"), v) + pt.Insert(decodeHex("5290815220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590"), v) + pt.Insert(decodeHex("5283818151815260200191508051906020019080838382906000600460208460"), v) + pt.Insert(decodeHex("52602001915080519060200190808383829060006004602084601f0104600302"), v) + pt.Insert(decodeHex("52602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040805191825251"), v) + pt.Insert(decodeHex("52519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f"), v) + pt.Insert(decodeHex("5220805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100779590359460"), v) + pt.Insert(decodeHex("51918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f01046003"), v) + pt.Insert(decodeHex("519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01"), v) + pt.Insert(decodeHex("519060200190808383829060006004602084601f0104600302600f01f1509050"), v) + pt.Insert(decodeHex("519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080519182525190819003602001"), v) + pt.Insert(decodeHex("518152602001915080519060200190808383829060006004602084601f010460"), v) + pt.Insert(decodeHex("518152602001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b604080519182"), v) + pt.Insert(decodeHex("5180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001908083838290600060"), v) + pt.Insert(decodeHex("51602060248035600481810135601f81018590048502860185019096528585526100779590359460449490939290920191819084018382808284375094955050"), v) + pt.Insert(decodeHex("516001836020036101000a031916815260200191505b50925050506040518091"), v) + pt.Insert(decodeHex("509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020"), v) + pt.Insert(decodeHex("5080519060200190808383829060006004602084601f0104600302600f01f150"), v) + pt.Insert(decodeHex("5080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360"), v) + pt.Insert(decodeHex("5060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001908083838290"), v) + pt.Insert(decodeHex("505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080838382"), v) + pt.Insert(decodeHex("50505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383"), v) + pt.Insert(decodeHex("50019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190"), v) + pt.Insert(decodeHex("408051918252519081900360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104"), v) + pt.Insert(decodeHex("408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280828437509495"), v) + pt.Insert(decodeHex("405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080838382906000"), v) + pt.Insert(decodeHex("248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280828437509495505050505050"), v) + pt.Insert(decodeHex("2084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181"), v) + pt.Insert(decodeHex("20805467ffffffffffffffff169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044"), v) + pt.Insert(decodeHex("2060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082843750949550505050"), v) + pt.Insert(decodeHex("2002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180"), v) + pt.Insert(decodeHex("2001915080519060200190808383829060006004602084601f0104600302600f"), v) + pt.Insert(decodeHex("2001915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081"), v) + pt.Insert(decodeHex("200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f15090509081"), v) + pt.Insert(decodeHex("200190808383829060006004602084601f0104600302600f01f1509050908101"), v) + pt.Insert(decodeHex("200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b"), v) + pt.Insert(decodeHex("1f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60405180806020018281038252838181518152"), v) + pt.Insert(decodeHex("169060010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401"), v) + pt.Insert(decodeHex("0f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051"), v) + pt.Insert(decodeHex("0a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffff"), v) + pt.Insert(decodeHex("0473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffff"), v) + pt.Insert(decodeHex("04602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283"), v) + pt.Insert(decodeHex("04600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020"), v) + pt.Insert(decodeHex("0390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190602001908083838290600060046020"), v) + pt.Insert(decodeHex("0382528381815181526020019150805190602001908083838290600060046020"), v) + pt.Insert(decodeHex("0380516001836020036101000a031916815260200191505b5092505050604051"), v) + pt.Insert(decodeHex("0360200190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f1509050"), v) + pt.Insert(decodeHex("0302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191"), v) + pt.Insert(decodeHex("02808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080"), v) + pt.Insert(decodeHex("02600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150"), v) + pt.Insert(decodeHex("01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382528381815181526020019150805190"), v) + pt.Insert(decodeHex("019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260200191508051906020019080"), v) + pt.Insert(decodeHex("01915080519060200190808383829060006004602084601f0104600302600f01"), v) + pt.Insert(decodeHex("01915080519060200190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b6040805191825251908190"), v) + pt.Insert(decodeHex("0190f35b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f1509050908101"), v) + pt.Insert(decodeHex("0190808383829060006004602084601f0104600302600f01f150905090810190"), v) + pt.Insert(decodeHex("0190602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b60"), v) + pt.Insert(decodeHex("01836020036101000a031916815260200191505b509250505060405180910390"), v) + pt.Insert(decodeHex("0182810382528381815181526020019150805190602001908083838290600060"), v) + pt.Insert(decodeHex("0182565b60408051602060248035600481810135601f810185900485028601850190965285855261007795903594604494909392909201918190840183828082"), v) + pt.Insert(decodeHex("0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b6040518080602001828103825283818151815260"), v) + pt.Insert(decodeHex("010182565b60408051602060248035600481810135601f8101859004850286018501909652858552610077959035946044949093929092019181908401838280"), v) + pt.Insert(decodeHex("01000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffff"), v) + pt.Insert(decodeHex("006c600435600160a060020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff19168155600181018054848255908452"), v) + pt.Insert(decodeHex("006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051808060200182810382"), v) + pt.Insert(decodeHex("0060005060006001600050600086815260200190815260200160002060005060"), v) + pt.Insert(decodeHex("000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffff"), v) + mf2 := NewMatchFinder2(&pt) + data := decodeHex("606060405236156100615760e060020a60003504630a936fe5811461006357806315853113146100d857806339bfc4a11461010b5780636939cd971461014357" + + "8063c36948b5146101d3578063de6f24bb14610205578063fe1e3eca146102f5575b005b6040805160208181018352600080835233600160a060020a03168152" + + "60018252839020805484518184028101840190955280855261036094928301828280156100ce57602002820191906000526020600020905b8160005054815260" + + "200190600101908083116100b7575b5050505050905090565b6103aa600435602435600160205260008281526040902080548290811015610002575060009081" + + "52602090200154905081565b6103aa600435600160a060020a03331660009081526020818152604080832084845290915290205467ffffffffffffffff165b91" + + "9050565b6103bc60043560408051602081810183526000808352600160a060020a0333168152808252838120858252825283902060010180548451601f820184" + + "900484028101840190955280855292939290918301828280156101c757820191906000526020600020905b8154815290600101906020018083116101aa578290" + + "03601f168201915b5050505050905061013e565b61042a60043560243560006020818152928152604080822090935290815220805467ffffffffffffffff1690" + + "60010182565b60408051602060248035600481810135601f81018590048502860185019096528585526100619590359460449490939290920191819084018382" + + "808284375094955050505050506000600082604051808280519060200190808383829060006004602084601f0104600302600f01f15090910182900390912083" + + "5467ffffffffffffffff191642178455915160018054828255818652939550926020601f91909101047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2" + + "b0732d9fcbe2b7fa0cf690810192821561052a579182015b8281111561052a5782518260005055916020019190600101906102d7565b610061600435600160a0" + + "60020a03331660009081526020818152604080832084845282528220805467ffffffffffffffff19168155600181018054848255908452828420919284926104" + + "9592601f01919091048101905b80821115610522576000815560010161034c565b60405180806020018281038252838181518152602001915080519060200190" + + "602002808383829060006004602084601f0104600302600f01f1509050019250505060405180910390f35b60408051918252519081900360200190f35b604051" + + "80806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f16801561" + + "041c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b604051808367ffffffffffffffff16815260200180" + + "602001828103825283818154815260200191508054801561048557820191906000526020600020905b8154815290600101906020018083116104685782900360" + + "1f168201915b5050935050505060405180910390f35b505050600090505b600160a060020a033316600090815260016020526040902054811015610526576040" + + "6000208054839190839081101561000257600091825260209091200154141561051a576001600050600033600160a060020a0316815260200190815260200160" + + "00206000508181548110156100025760009182526020822001555b60010161049d565b5090565b5050565b5061053692915061034c565b5050600160a060020a" + + "038416600090815260208181526040808320858452825282208354815467ffffffffffffffff191667ffffffffffffffff919091161781556001848101805491" + + "8301805483825581875295859020879694959194601f01919091048101929182156105d257600052602060002091601f016020900482015b828111156105d257" + + "82548255916001019190600101906105b7565b506105de92915061034c565b50505050600160a060020a03841660009081526001602052604090208054839190" + + "61000256") + matches := mf2.FindLongestMatches(data) + for _, m := range matches { + fmt.Printf("%+v, match: [%x]\n", m, data[m.Start:m.End]) + } + if len(matches) != 201 { + t.Errorf("expected matches: %d, got %d", 201, len(matches)) + } +} + +func TestFindMatches8(t *testing.T) { + var pt PatriciaTree + v := []byte{1} + mf2 := NewMatchFinder2(&pt) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("73ffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffffff16"), v) + pt.Insert(decodeHex("60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffffff16"), v) + pt.Insert(decodeHex("ffffffffffffff16"), v) + pt.Insert(decodeHex("01000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000"), v) + pt.Insert(decodeHex("81526020019081526020016000208190"), v) + pt.Insert(decodeHex("81526020019081526020016000206000"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff"), v) + pt.Insert(decodeHex("ffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16"), v) + pt.Insert(decodeHex("906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffff"), v) + pt.Insert(decodeHex("9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673"), v) + pt.Insert(decodeHex("900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffff"), v) + pt.Insert(decodeHex("73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffff"), v) + pt.Insert(decodeHex("6101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffff"), v) + pt.Insert(decodeHex("54906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ff"), v) + pt.Insert(decodeHex("0a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffff"), v) + pt.Insert(decodeHex("0473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffff"), v) + pt.Insert(decodeHex("01000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffff"), v) + pt.Insert(decodeHex("000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffff"), v) + pt.Insert(decodeHex("815260016020526040"), v) + pt.Insert(decodeHex("526020019081526020016000208190"), v) + data := decodeHex("60606040523615610103576000357c01000000000000000000000000000000000000000000000000000000009004806311bc5478146103bc578063353d90ec14" + + "6103dd57806343743d93146103fe5780634faa2d541461041f57806350b44712146104405780635c0ecfad1461047d5780635d80c2781461049e578063602a6c" + + "a1146104bf578063806b984f146104d85780638b7bcc86146104f9578063a2fb11751461051a578063a457c2ae14610541578063a59d698614610562578063a5" + + "e01f371461056f578063f000c30914610590578063f18d20be146105b1578063f56f48f2146105be578063f6f0b074146105df578063f961ec87146106005761" + + "0103565b6103ba5b600060006801639e49bba16280003410151561016e57670e398811bec680003404915081503373ffffffffffffffffffffffffffffffffff" + + "ffffff166000670e398811bec680003406604051809050600060405180830381858888f1935050505050610281565b6791b77e5e5d9a0000341015156101d057" + + "670e92596fd62900003404915081503373ffffffffffffffffffffffffffffffffffffffff166000670e92596fd6290000340660405180905060006040518083" + + "0381858888f1935050505050610280565b674c53ecdc18a600003410151561023257670f43fc2c04ee00003404915081503373ffffffffffffffffffffffffff" + + "ffffffffffffff166000670f43fc2c04ee00003406604051809050600060405180830381858888f193505050505061027f565b670ff59ee833b3000034049150" + + "81503373ffffffffffffffffffffffffffffffffffffffff166000670ff59ee833b300003406604051809050600060405180830381858888f19350505050505b" + + "5b5b6007600050543334604051808481526020018373ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182" + + "8152602001935050505060405180910390206007600050819055506103e88260036000505401046103e86003600050540414151561031b574360066000508190" + + "5550600760005054600a6000508190555042600b600050819055505b600060010260016006600050540140141515610345576001600660005054014060096000" + + "50819055505b600190505b818160ff161115156103b5573360016000506000600360008181505480929190600101919050558152602001908152602001600020" + + "60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908302179055505b600181019050805061034a565b5b5050565b005b6103c7" + + "600450610af4565b6040518082815260200191505060405180910390f35b6103e8600450610b5c565b6040518082815260200191505060405180910390f35b61" + + "0409600450610b00565b6040518082815260200191505060405180910390f35b61042a600450610a65565b6040518082815260200191505060405180910390f3" + + "5b610451600480359060200150610b09565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104" + + "88600450610ad5565b6040518082815260200191505060405180910390f35b6104a9600450610ade565b6040518082815260200191505060405180910390f35b" + + "6104d6600480359060200180359060200150610627565b005b6104e3600450610aba565b6040518082815260200191505060405180910390f35b610504600450" + + "610b65565b6040518082815260200191505060405180910390f35b61052b600480359060200150610b41565b6040518082815260200191505060405180910390f" + + "35b61054c600450610ac3565b6040518082815260200191505060405180910390f35b61056d600450610838565b005b61057a600450610b6e565b604051808281" + + "5260200191505060405180910390f35b61059b600450610acc565b6040518082815260200191505060405180910390f35b6105bc60045061094e565b005b6105c" + + "9600450610aed565b6040518082815260200191505060405180910390f35b6105ea600450610ae7565b6040518082815260200191505060405180910390f35b61" + + "0611600480359060200150610a96565b6040518082815260200191505060405180910390f35b60006000600060009054906101000a900473fffffffffffffffff" + + "fffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561068757" + + "610832565b600860005054846040518082815260200191505060405180910390201415806106b857506000600102600860005054145b156106c257610832565b6" + + "103e860036000505410806106e457506103e860036000505403600560005054115b156106ee57610832565b83600a600050546040518083815260200182815260" + + "200192505050604051809103902091506103e86009600050548318600190040660056000505401905060016000506000828152602001908152602001600020600" + + "09054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000670de0b6b3a7640000" + + "6103e802604051809050600060405180830381858888f19350505050507f909c57d5c6ac08245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c816040" + + "518082815260200191505060405180910390a180600260005060006004600081815054809291906001019190505581526020019081526020016000206000508190" + + "55506103e860056000828282505401925050819055506000600b60005081905550826008600050819055505b50505050565b600060006000600b60005054141561" + + "084f5761094a565b62015180600b60005054420310156108665761094a565b60006001026008600050819055506000915060056000505490505b60036000505481" + + "1015610916573373ffffffffffffffffffffffffffffffffffffffff166001600050600083815260200190815260200160002060009054906101000a900473ffff" + + "ffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561090857670de0b6b3a76400008201915081505b5b80" + + "80600101915050610881565b3373ffffffffffffffffffffffffffffffffffffffff16600083604051809050600060405180830381858888f19350505050505b50" + + "50565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ff" + + "ffffffffffffffffffffffffffffffffffffff161415156109ac57610a62565b670de0b6b3a7640000600560005054600360005054030290507f909c57d5c6ac08" + + "245cf2a6de3900e2b868513fa59099b92b27d8db823d92df9c813073ffffffffffffffffffffffffffffffffffffffff1631036040518082815260200191505060" + + "405180910390a13373ffffffffffffffffffffffffffffffffffffffff166000823073ffffffffffffffffffffffffffffffffffffffff16310360405180905060" + + "0060405180830381858888f19350505050505b50565b60006000600b600050541415610a83576105399050610a9356610a92565b600b6000505442039050610a93" + + "565b5b90565b6000816040518082815260200191505060405180910390209050610ab5565b919050565b60066000505481565b60076000505481565b6008600050" + + "5481565b60096000505481565b600a6000505481565b6103e881565b6201518081565b670de0b6b3a764000081565b600b6000505481565b600160005060205280" + + "600052604060002060009150909054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260005060205280600052604060002060" + + "00915090505481565b60036000505481565b60046000505481565b6005600050548156") + matches := mf2.FindLongestMatches(data) + for _, m := range matches { + fmt.Printf("%+v, match: [%x]\n", m, data[m.Start:m.End]) + } + if len(matches) != 144 { + t.Errorf("expected matches: %d, got %d", 144, len(matches)) + } +} diff --git a/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/3a5198b65396851670329467bf211856973858cf006ef30532d6871ea859a12a b/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/3a5198b65396851670329467bf211856973858cf006ef30532d6871ea859a12a new file mode 100644 index 00000000000..bcfb37e95ee --- /dev/null +++ b/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/3a5198b65396851670329467bf211856973858cf006ef30532d6871ea859a12a @@ -0,0 +1,3 @@ +go test fuzz v1 +[]byte("") +[]byte("T\x05\xcd\x11") diff --git a/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/50e6d6e88241b5d113eeb578e3f53211f9d4c2605391a92b5314b1522ddd6613 b/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/50e6d6e88241b5d113eeb578e3f53211f9d4c2605391a92b5314b1522ddd6613 new file mode 100644 index 00000000000..fb3b0189f33 --- /dev/null +++ b/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/50e6d6e88241b5d113eeb578e3f53211f9d4c2605391a92b5314b1522ddd6613 @@ -0,0 +1,3 @@ +go test fuzz v1 +[]byte("q}") +[]byte("q}}}u\xa9\xa9\xa9") diff --git a/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/a6e7cfd5b704609ef4eae0891c8bd6f60cfbe3da1bf98f71ce0c3e107042154e b/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/a6e7cfd5b704609ef4eae0891c8bd6f60cfbe3da1bf98f71ce0c3e107042154e new file mode 100644 index 00000000000..0b21cf8c0bf --- /dev/null +++ b/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/a6e7cfd5b704609ef4eae0891c8bd6f60cfbe3da1bf98f71ce0c3e107042154e @@ -0,0 +1,3 @@ +go test fuzz v1 +[]byte("\xf9\x97") +[]byte("\xf9\x97\x01\xa0") diff --git a/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/eae7318dcf13903566ac6ce58a3188dd26cc3216cdb8a4c398871feb71d79749 b/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/eae7318dcf13903566ac6ce58a3188dd26cc3216cdb8a4c398871feb71d79749 new file mode 100644 index 00000000000..42ead0a2558 --- /dev/null +++ b/erigon-lib/patricia/testdata/fuzz/FuzzLongestMatch/eae7318dcf13903566ac6ce58a3188dd26cc3216cdb8a4c398871feb71d79749 @@ -0,0 +1,3 @@ +go test fuzz v1 +[]byte("\xa8") +[]byte("\xaa") diff --git a/erigon-lib/patricia/testdata/fuzz/FuzzPatricia/1ac0f70817537550272339767003fa71f827da8ab9b1466b539a97b48b0bec89 b/erigon-lib/patricia/testdata/fuzz/FuzzPatricia/1ac0f70817537550272339767003fa71f827da8ab9b1466b539a97b48b0bec89 new file mode 100644 index 00000000000..e25022b4483 --- /dev/null +++ b/erigon-lib/patricia/testdata/fuzz/FuzzPatricia/1ac0f70817537550272339767003fa71f827da8ab9b1466b539a97b48b0bec89 @@ -0,0 +1,3 @@ +go test fuzz v1 +[]byte("\x15\xff\x03\x03\x03\x1a\xed\xed\xed\xed") +[]byte("\x15") diff --git a/erigon-lib/patricia/testdata/fuzz/FuzzPatricia/77fc7eba78cd0b1fa2a157aa2cc7e164eed8ca2c71f13d4e103e5a76887a341b b/erigon-lib/patricia/testdata/fuzz/FuzzPatricia/77fc7eba78cd0b1fa2a157aa2cc7e164eed8ca2c71f13d4e103e5a76887a341b new file mode 100644 index 00000000000..1460fd6e438 --- /dev/null +++ b/erigon-lib/patricia/testdata/fuzz/FuzzPatricia/77fc7eba78cd0b1fa2a157aa2cc7e164eed8ca2c71f13d4e103e5a76887a341b @@ -0,0 +1,3 @@ +go test fuzz v1 +[]byte("\xbb") +[]byte("") diff --git a/erigon-lib/patricia/testdata/fuzz/FuzzPatricia/82c51172146d16d565cd6de38398aba6284e6acc17a97edccb0be3a97624f967 b/erigon-lib/patricia/testdata/fuzz/FuzzPatricia/82c51172146d16d565cd6de38398aba6284e6acc17a97edccb0be3a97624f967 new file mode 100644 index 00000000000..1b53508c228 --- /dev/null +++ b/erigon-lib/patricia/testdata/fuzz/FuzzPatricia/82c51172146d16d565cd6de38398aba6284e6acc17a97edccb0be3a97624f967 @@ -0,0 +1,3 @@ +go test fuzz v1 +[]byte("\xb0\\:'p\xb3") +[]byte("\xb0\\:") diff --git a/erigon-lib/pedersen_hash/LICENSE b/erigon-lib/pedersen_hash/LICENSE new file mode 100644 index 00000000000..b037585c15f --- /dev/null +++ b/erigon-lib/pedersen_hash/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 StarkWare Industries Ltd. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/erigon-lib/pedersen_hash/README.md b/erigon-lib/pedersen_hash/README.md new file mode 100644 index 00000000000..e33ed828652 --- /dev/null +++ b/erigon-lib/pedersen_hash/README.md @@ -0,0 +1,2 @@ +This code comes from StarkWare crypto-cpp library: +https://github.com/starkware-libs/crypto-cpp/blob/master/src/starkware/crypto/pedersen_hash.h diff --git a/erigon-lib/pedersen_hash/big_int.h b/erigon-lib/pedersen_hash/big_int.h new file mode 100644 index 00000000000..d90226be25f --- /dev/null +++ b/erigon-lib/pedersen_hash/big_int.h @@ -0,0 +1,140 @@ +#ifndef STARKWARE_ALGEBRA_BIG_INT_H_ +#define STARKWARE_ALGEBRA_BIG_INT_H_ + +#include +#include +#include +#include +#include +#include + +#include "gsl-lite.hpp" + +#include "error_handling.h" +#include "prng.h" + +namespace starkware { + +static constexpr inline __uint128_t Umul128(uint64_t x, uint64_t y) { + return static_cast<__uint128_t>(x) * static_cast<__uint128_t>(y); +} + +template +class BigInt { + public: + static constexpr size_t kDigits = N * std::numeric_limits::digits; + + BigInt() = default; + + template + constexpr BigInt(const BigInt& v) noexcept; // NOLINT implicit cast. + constexpr explicit BigInt(const std::array& v) noexcept : value_(v) {} + constexpr explicit BigInt(uint64_t v) noexcept : value_(std::array({v})) {} + + static constexpr BigInt One() { return BigInt(std::array({1})); } + static constexpr BigInt Zero() { return BigInt(std::array({0})); } + + static BigInt RandomBigInt(Prng* prng); + + /* + Returns pair of the form (result, overflow_occurred). + */ + static constexpr std::pair Add(const BigInt& a, const BigInt& b); + constexpr BigInt operator+(const BigInt& other) const { return Add(*this, other).first; } + constexpr BigInt operator-(const BigInt& other) const { return Sub(*this, other).first; } + constexpr BigInt operator-() const { return Zero() - *this; } + + /* + Multiplies two BigInt numbers, this and other. Returns the result as a + BigInt<2*N>. + */ + constexpr BigInt<2 * N> operator*(const BigInt& other) const; + + /* + Multiplies two BigInt numbers modulo a third. + */ + static BigInt MulMod(const BigInt& a, const BigInt& b, const BigInt& modulus); + + /* + Computes the inverse of *this in the field GF(prime). + If prime is not a prime number, the behavior is undefined. + */ + BigInt InvModPrime(const BigInt& prime) const; + + /* + Return pair of the form (result, underflow_occurred). + */ + static constexpr std::pair Sub(const BigInt& a, const BigInt& b); + + constexpr bool operator<(const BigInt& b) const; + + constexpr bool operator>=(const BigInt& b) const { return !(*this < b); } + + constexpr bool operator>(const BigInt& b) const { return b < *this; } + + constexpr bool operator<=(const BigInt& b) const { return !(*this > b); } + + /* + Returns the pair (q, r) such that this == q*divisor + r and r < divisor. + */ + std::pair Div(const BigInt& divisor) const; + + /* + Returns the representation of the number as a string of the form "0x...". + */ + std::string ToString() const; + + std::vector ToBoolVector() const; + + /* + Returns (x % target) assuming x is in the range [0, 2*target). + + The function assumes that target.NumLeadingZeros() > 0. + + Typically used after a Montgomery reduction which produces an output that + satisfies the range requirement above. + */ + static constexpr BigInt ReduceIfNeeded(const BigInt& x, const BigInt& target); + + /* + Calculates x*y/2^256 mod modulus, assuming that montgomery_mprime is + (-(modulus^-1)) mod 2^64. Assumes that modulus.NumLeadingZeros() > 0. + */ + static constexpr BigInt MontMul( + const BigInt& x, const BigInt& y, const BigInt& modulus, uint64_t montgomery_mprime); + + constexpr bool operator==(const BigInt& other) const; + + constexpr bool operator!=(const BigInt& other) const { return !(*this == other); } + + constexpr uint64_t& operator[](int i) { return gsl::at(value_, i); } + + constexpr const uint64_t& operator[](int i) const { return gsl::at(value_, i); } + + static constexpr size_t LimbCount() { return N; } + + /* + Returns the number of leading zero's. + */ + constexpr size_t NumLeadingZeros() const; + + private: + std::array value_; +}; + +template +std::ostream& operator<<(std::ostream& os, const BigInt& bigint); + +} // namespace starkware + +/* + Implements the user defined _Z literal that constructs a BigInt of an + arbitrary size. For example: BigInt<4> a = + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_Z; +*/ +template +static constexpr auto operator"" _Z(); + +#include "big_int.inl" + +#endif // STARKWARE_ALGEBRA_BIG_INT_H_ diff --git a/erigon-lib/pedersen_hash/big_int.inl b/erigon-lib/pedersen_hash/big_int.inl new file mode 100644 index 00000000000..3c8607945dd --- /dev/null +++ b/erigon-lib/pedersen_hash/big_int.inl @@ -0,0 +1,284 @@ +#include +#include +#include +#include +#include + +#include "math.h" + +namespace starkware { + +template +BigInt BigInt::RandomBigInt(Prng* prng) { + std::array value{}; + for (size_t i = 0; i < N; ++i) { + gsl::at(value, i) = prng->RandomUint64(); + } + return BigInt(value); +} + +template +template +constexpr BigInt::BigInt(const BigInt& v) noexcept : value_{} { + static_assert(N > K, "trimming is not supported"); + for (size_t i = 0; i < K; ++i) { + gsl::at(value_, i) = v[i]; + } + + for (size_t i = K; i < N; ++i) { + gsl::at(value_, i) = 0; + } +} + +template +constexpr std::pair, bool> BigInt::Add(const BigInt& a, const BigInt& b) { + bool carry{}; + BigInt r{0}; + + for (size_t i = 0; i < N; ++i) { + __uint128_t res = static_cast<__uint128_t>(a[i]) + b[i] + carry; + carry = (res >> 64) != static_cast<__uint128_t>(0); + r[i] = static_cast(res); + } + + return std::make_pair(r, carry); +} + +template +constexpr BigInt<2 * N> BigInt::operator*(const BigInt& other) const { + constexpr auto kResSize = 2 * N; + BigInt final_res = BigInt::Zero(); + // Multiply this by other using long multiplication algorithm. + for (size_t i = 0; i < N; ++i) { + uint64_t carry = static_cast(0U); + for (size_t j = 0; j < N; ++j) { + // For M == UINT64_MAX, we have: a*b+c+d <= M*M + 2M = (M+1)^2 - 1 == + // UINT128_MAX. So we can do a multiplication and an addition without an + // overflow. + __uint128_t res = Umul128((*this)[j], other[i]) + final_res[i + j] + carry; + carry = gsl::narrow_cast(res >> 64); + final_res[i + j] = gsl::narrow_cast(res); + } + final_res[i + N] = static_cast(carry); + } + return final_res; +} + +template +BigInt BigInt::MulMod(const BigInt& a, const BigInt& b, const BigInt& modulus) { + const BigInt<2 * N> mul_res = a * b; + const BigInt<2 * N> mul_res_mod = mul_res.Div(BigInt<2 * N>(modulus)).second; + + BigInt res = Zero(); + + // Trim mul_res_mod to the N lower limbs (this is possible since it must be smaller than modulus). + for (size_t i = 0; i < N; ++i) { + res[i] = mul_res_mod[i]; + } + + return res; +} + +template +BigInt BigInt::InvModPrime(const BigInt& prime) const { + ASSERT(*this != BigInt::Zero(), "Inverse of 0 is not defined."); + return GenericPow( + *this, (prime - BigInt(2)).ToBoolVector(), BigInt::One(), + [&prime](const BigInt& multiplier, BigInt* dst) { *dst = MulMod(*dst, multiplier, prime); }); +} + +template +constexpr std::pair, bool> BigInt::Sub(const BigInt& a, const BigInt& b) { + bool carry{}; + BigInt r{}; + + for (size_t i = 0; i < N; ++i) { + __uint128_t res = static_cast<__uint128_t>(a[i]) - b[i] - carry; + carry = (res >> 127) != static_cast<__uint128_t>(0); + r[i] = static_cast(res); + } + + return std::make_pair(r, carry); +} + +template +constexpr bool BigInt::operator<(const BigInt& b) const { + return Sub(*this, b).second; +} + +template +std::pair, BigInt> BigInt::Div(const BigInt& divisor) const { + // This is a simple long-division implementation. It is not very efficient and can be improved + // if this function becomes a bottleneck. + ASSERT(divisor != BigInt::Zero(), "Divisor must not be zero."); + + bool carry{}; + BigInt res{}; + BigInt shifted_divisor{}, tmp{}; + BigInt a = *this; + + while (a >= divisor) { + tmp = divisor; + int shift = -1; + do { + shifted_divisor = tmp; + shift++; + std::tie(tmp, carry) = Add(shifted_divisor, shifted_divisor); + } while (!carry && tmp <= a); + + a = Sub(a, shifted_divisor).first; + res[shift / 64] |= Pow2(shift % 64); + } + + return {res, a}; +} + +template +std::string BigInt::ToString() const { + std::ostringstream res; + res << "0x"; + for (int i = N - 1; i >= 0; --i) { + res << std::setfill('0') << std::setw(16) << std::hex << (*this)[i]; + } + return res.str(); +} + +template +std::vector BigInt::ToBoolVector() const { + std::vector res; + for (uint64_t value : value_) { + for (int i = 0; i < std::numeric_limits::digits; ++i) { + res.push_back((value & 1) != 0); + value >>= 1; + } + } + return res; +} + +template +constexpr bool BigInt::operator==(const BigInt& other) const { + for (size_t i = 0; i < N; ++i) { + if (gsl::at(value_, i) != gsl::at(other.value_, i)) { + return false; + } + } + return true; +} + +template +constexpr BigInt BigInt::ReduceIfNeeded(const BigInt& x, const BigInt& target) { + ASSERT(target.NumLeadingZeros() > 0, "target must have at least one leading zero."); + return (x >= target) ? x - target : x; +} + +template +constexpr BigInt BigInt::MontMul( + const BigInt& x, const BigInt& y, const BigInt& modulus, uint64_t montgomery_mprime) { + BigInt res{}; + ASSERT(modulus.NumLeadingZeros() > 0, "We require at least one leading zero in the modulus"); + ASSERT(y < modulus, "y is supposed to be smaller then the modulus"); + ASSERT(x < modulus, "x is supposed to be smaller then the modulus."); + for (size_t i = 0; i < N; ++i) { + __uint128_t temp = Umul128(x[i], y[0]) + res[0]; + uint64_t u_i = gsl::narrow_cast(temp) * montgomery_mprime; + uint64_t carry1 = 0, carry2 = 0; + + for (size_t j = 0; j < N; ++j) { + if (j != 0) { + temp = Umul128(x[i], y[j]) + res[j]; + } + uint64_t low = carry1 + gsl::narrow_cast(temp); + carry1 = gsl::narrow_cast(temp >> 64) + static_cast(low < carry1); + temp = Umul128(modulus[j], u_i) + carry2; + res[j] = low + gsl::narrow_cast(temp); + carry2 = gsl::narrow_cast(temp >> 64) + static_cast(res[j] < low); + } + for (size_t j = 0; j < N - 1; ++j) { + res[j] = res[j + 1]; + } + res[N - 1] = carry1 + carry2; + ASSERT(res[N - 1] >= carry1, "There shouldn't be a carry here."); + } + return ReduceIfNeeded(res, modulus); +} + +template +constexpr size_t BigInt::NumLeadingZeros() const { + int i = value_.size() - 1; + size_t res = 0; + + while (i >= 0 && (gsl::at(value_, i) == 0)) { + i--; + res += std::numeric_limits::digits; + } + + if (i >= 0) { + res += __builtin_clzll(gsl::at(value_, i)); + } + + return res; +} + +template +std::ostream& operator<<(std::ostream& os, const BigInt& bigint) { + return os << bigint.ToString(); +} + +namespace bigint { +namespace details { +/* + Converts an hex digit ASCII char to the corresponding int. + Assumes the input is an hex digit. +*/ +inline constexpr uint64_t HexCharToUint64(char c) { + if ('0' <= c && c <= '9') { + return c - '0'; + } + + if ('A' <= c && c <= 'F') { + return c - 'A' + 10; + } + + // The function assumes that the input is an hex digit, so we can assume 'a' + // <= c && c <= 'f' here. + return c - 'a' + 10; +} + +template +constexpr auto HexCharArrayToBigInt() { + constexpr size_t kLen = sizeof...(Chars); + constexpr std::array kDigits{Chars...}; + static_assert(kDigits[0] == '0' && kDigits[1] == 'x', "Only hex input is currently supported"); + + constexpr size_t kNibblesPerUint64 = 2 * sizeof(uint64_t); + constexpr size_t kResLen = (kLen - 2 + kNibblesPerUint64 - 1) / (kNibblesPerUint64); + std::array res{}; + + for (size_t i = 0; i < kDigits.size() - 2; ++i) { + const size_t limb = i / kNibblesPerUint64; + const size_t nibble_offset = i % kNibblesPerUint64; + const uint64_t nibble = HexCharToUint64(gsl::at(kDigits, kDigits.size() - i - 1)); + + gsl::at(res, limb) |= nibble << (4 * nibble_offset); + } + + return BigInt(res); +} +} // namespace details +} // namespace bigint + +template +static constexpr auto operator"" _Z() { + // This function is implemented as wrapper that calls the actual + // implementation and stores it in a constexpr variable as we want to force + // the evaluation to be done in compile time. We need to have the function + // call because "constexpr auto kRes = BigInt(res);" won't work + // unless res is constexpr. + + // Note that the compiler allows HEX and decimal literals but in any case + // it enforces that Chars... contains only HEX (or decimal) characters. + constexpr auto kRes = bigint::details::HexCharArrayToBigInt(); + return kRes; +} + +} // namespace starkware diff --git a/erigon-lib/pedersen_hash/elliptic_curve.h b/erigon-lib/pedersen_hash/elliptic_curve.h new file mode 100644 index 00000000000..ea9adc0300b --- /dev/null +++ b/erigon-lib/pedersen_hash/elliptic_curve.h @@ -0,0 +1,79 @@ +#ifndef STARKWARE_ALGEBRA_ELLIPTIC_CURVE_H_ +#define STARKWARE_ALGEBRA_ELLIPTIC_CURVE_H_ + +#include +#include +#include +#include + +#include "gsl-lite.hpp" + +#include "big_int.h" + +namespace starkware { + +using std::size_t; + +/* + Represents a point on an elliptic curve of the form: y^2 = x^3 + alpha*x + beta. +*/ +template +class EcPoint { + public: + constexpr EcPoint(const FieldElementT& x, const FieldElementT& y) : x(x), y(y) {} + + bool operator==(const EcPoint& rhs) const { return x == rhs.x && y == rhs.y; } + bool operator!=(const EcPoint& rhs) const { return !(*this == rhs); } + + /* + Computes the point added to itself. + */ + EcPoint Double(const FieldElementT& alpha) const; + + /* + Returns the sum of two points. The added point must be different than both the original point + and its negation. + */ + EcPoint operator+(const EcPoint& rhs) const; + EcPoint operator-() const { return EcPoint(x, -y); } + EcPoint operator-(const EcPoint& rhs) const { return (*this) + (-rhs); } + + /* + Returns a random point on the curve: y^2 = x^3 + alpha*x + beta. + */ + static EcPoint Random(const FieldElementT& alpha, const FieldElementT& beta, Prng* prng); + + /* + Returns one of the two points with the given x coordinate or nullopt if there is no such point. + */ + static std::optional GetPointFromX( + const FieldElementT& x, const FieldElementT& alpha, const FieldElementT& beta); + + template + EcPoint ConvertTo() const; + + /* + Given the bool vector representing a scalar, and the alpha of the elliptic curve + "y^2 = x^3 + alpha * x + beta" the point is on, returns scalar*point. + */ + template + EcPoint MultiplyByScalar( + const BigInt& scalar, const FieldElementT& alpha) const; + + FieldElementT x; + FieldElementT y; + + private: + /* + Returns the sum of this point with a point in the form of std::optional, where std::nullopt + represents the curve's zero element. + */ + std::optional> AddOptionalPoint( + const std::optional>& point, const FieldElementT& alpha) const; +}; + +} // namespace starkware + +#include "elliptic_curve.inl" + +#endif // STARKWARE_ALGEBRA_ELLIPTIC_CURVE_H_ diff --git a/erigon-lib/pedersen_hash/elliptic_curve.inl b/erigon-lib/pedersen_hash/elliptic_curve.inl new file mode 100644 index 00000000000..895a1905459 --- /dev/null +++ b/erigon-lib/pedersen_hash/elliptic_curve.inl @@ -0,0 +1,129 @@ +#include "error_handling.h" + +namespace starkware { + +template +auto EcPoint::Double(const FieldElementT& alpha) const -> EcPoint { + // Doubling a point cannot be done by adding the point to itself with the function AddPoints + // because this function assumes that it gets distinct points. Usually, in order to sum two + // points, one should draw a straight line containing these points, find the third point in the + // intersection of the line and the curve, and then negate the y coordinate. In the special case + // where the two points are the same point, one should draw the line that intersects the elliptic + // curve "twice" at that point. This means that the slope of the line should be equal to the slope + // of the curve at this point. That is, the derivative of the function + // y = sqrt(x^3 + alpha * x + beta), which is slope = dy/dx = (3 * x^2 + alpha)/(2 * y). Note that + // if y = 0 then the point is a 2-torsion (doubling it gives infinity). The line is then given by + // y = slope * x + y_intercept. The third intersection point is found using the equation that is + // true for all cases: slope^2 = x_1 + x_2 + x_3 (where x_1, x_2 and x_3 are the x coordinates of + // three points in the intersection of the curve with a line). + ASSERT(y != FieldElementT::Zero(), "Tangent slope of 2 torsion point is infinite."); + const auto x_squared = x * x; + const FieldElementT tangent_slope = (x_squared + x_squared + x_squared + alpha) / (y + y); + const FieldElementT x2 = tangent_slope * tangent_slope - (x + x); + const FieldElementT y2 = tangent_slope * (x - x2) - y; + return {x2, y2}; +} + +template +auto EcPoint::operator+(const EcPoint& rhs) const -> EcPoint { + ASSERT(this->x != rhs.x, "x values should be different for arbitrary points"); + // To sum two points, one should draw a straight line containing these points, find the + // third point in the intersection of the line and the curve, and then negate the y coordinate. + // Notice that if x_1 = x_2 then either they are the same point or their sum is infinity. This + // function doesn't deal with these cases. The straight line is given by the equation: + // y = slope * x + y_intercept. The x coordinate of the third point is found by solving the system + // of equations: + + // y = slope * x + y_intercept + // y^2 = x^3 + alpha * x + beta + + // These equations yield: + // (slope * x + y_intercept)^2 = x^3 + alpha * x + beta + // ==> x^3 - slope^2 * x^2 + (alpha - 2 * slope * y_intercept) * x + (beta - y_intercept^2) = 0 + + // This is a monic polynomial in x whose roots are exactly the x coordinates of the three + // intersection points of the line with the curve. Thus it is equal to the polynomial: + // (x - x_1) * (x - x_2) * (x - x_3) + // where x1, x2, x3 are the x coordinates of those points. + // Notice that the equality of the coefficient of the x^2 term yields: + // slope^2 = x_1 + x_2 + x_3. + const FieldElementT slope = (this->y - rhs.y) / (this->x - rhs.x); + const FieldElementT x3 = slope * slope - this->x - rhs.x; + const FieldElementT y3 = slope * (this->x - x3) - this->y; + return {x3, y3}; +} + +template +auto EcPoint::GetPointFromX( + const FieldElementT& x, const FieldElementT& alpha, const FieldElementT& beta) + -> std::optional { + const FieldElementT y_squared = x * x * x + alpha * x + beta; + if (!y_squared.IsSquare()) { + return std::nullopt; + } + return {{x, y_squared.Sqrt()}}; +} + +template +auto EcPoint::Random( + const FieldElementT& alpha, const FieldElementT& beta, Prng* prng) -> EcPoint { + // Each iteration has probability of ~1/2 to fail. Thus the probability of failing 100 iterations + // is negligible. + for (size_t i = 0; i < 100; ++i) { + const FieldElementT x = FieldElementT::RandomElement(prng); + const std::optional pt = GetPointFromX(x, alpha, beta); + if (pt.has_value()) { + // Change the sign of the returned y coordinate with probability 1/2. + if (prng->RandomUint64(0, 1) == 1) { + return -*pt; + } + return *pt; + } + } + ASSERT(false, "No random point found."); +} + +template +template +EcPoint EcPoint::ConvertTo() const { + return EcPoint(OtherFieldElementT(x), OtherFieldElementT(y)); +} + +template +template +EcPoint EcPoint::MultiplyByScalar( + const BigInt& scalar, const FieldElementT& alpha) const { + std::optional> res; + EcPoint power = *this; + for (const auto& b : scalar.ToBoolVector()) { + if (b) { + res = power.AddOptionalPoint(res, alpha); + } + // If power == -power, then power + power == zero, and will remain zero (so res will not + // change) until the end of the for loop. Therefore there is no point to keep looping. + if (power == -power) { + break; + } + power = power.Double(alpha); + } + ASSERT(res.has_value(), "Result of multiplication is the curve's zero element."); + return *res; +} + +template +std::optional> EcPoint::AddOptionalPoint( + const std::optional>& point, const FieldElementT& alpha) const { + if (!point) { + return *this; + } + // If a == -b, then a+b == zero element. + if (*point == -*this) { + return std::nullopt; + } + if (*point == *this) { + return point->Double(alpha); + } + return *point + *this; +} + +} // namespace starkware diff --git a/erigon-lib/pedersen_hash/elliptic_curve_constants.cc b/erigon-lib/pedersen_hash/elliptic_curve_constants.cc new file mode 100644 index 00000000000..5f88af74d34 --- /dev/null +++ b/erigon-lib/pedersen_hash/elliptic_curve_constants.cc @@ -0,0 +1,2546 @@ +#include "elliptic_curve_constants.h" + +#include "big_int.h" +#include "prime_field_element.h" + +namespace starkware { + +const EllipticCurveConstants& GetEcConstants() { + static auto* prime_field_ec0 = new EllipticCurveConstants( + // k_alpha + 0x1_Z, + // k_beta + 0x6f21413efbe40de150e596d72f7a8c5609ad26c15c915c1f4cdfcb99cee9e89_Z, + // k_order + 0x800000000000010ffffffffffffffffb781126dcae7b2321e66a241adc64d2f_Z, + // k_points + { + {0x49ee3eba8c1600700ee1b87eb599f16716b0b1022947733551fde4050ca6804_Z, + 0x3ca0cfe4b3bc6ddf346d49d06ea0ed34e621062c0e056c1d0405d266e10268a_Z}, + {0x1ef15c18599971b7beced415a40f0c7deacfd9b0d1819e03d723d8bc943cfca_Z, + 0x5668060aa49730b7be4801df46ec62de53ecd11abe43a32873000c36e8dc1f_Z}, + {0x234287dcbaffe7f969c748655fca9e58fa8120b6d56eb0c1080d17957ebe47b_Z, + 0x3b056f100f96fb21e889527d41f4e39940135dd7a6c94cc6ed0268ee89e5615_Z}, + {0x3909690e1123c80678a7ba0fde0e8447f6f02b3f6b960034d1e93524f8b476_Z, + 0x7122e9063d239d89d4e336753845b76f2b33ca0d7f0c1acd4b9fe974994cc19_Z}, + {0x40fd002e38ea01a01b2702eb7c643e9decc2894cbf31765922e281939ab542c_Z, + 0x109f720a79e2a41471f054ca885efd90c8cfbbec37991d1b6343991e0a3e740_Z}, + {0x2f52066635c139fc2f64eb0bd5e3fd7a705f576854ec4f00aa60361fddb981b_Z, + 0x6d78a24d8a5f97fc600318ce16b3c840315979c3273078ec1a285f217ee6a26_Z}, + {0x6a0767a1fd60d5b9027a35af1b68e57a1c366ebcde2006cdd07af27043ef674_Z, + 0x606b72c0ca0498b8c1817ed7922d550894c324f5efdfc85a19a1ae382411ca2_Z}, + {0x7fa463ee2a2d6a585d5c3358918270f6c28c66df1f86803374d1edf3819cc62_Z, + 0xa996edf01598832e644e1cae9a37288865ad80e2787f9bf958aceccc99afae_Z}, + {0x3d4da70d1540da597dbae1651d28487604a4e66a4a1823b97e8e9639393dbec_Z, + 0x45cdef70c35d3b6f0a2273a9886ccb6306d813e8204bdfd30b4efee63c8a3f9_Z}, + {0x1e448fdbcd9896c6fbf5f36cb7e7fcb77a751ff2d942593cae023363cc7750e_Z, + 0x30c81da0f3a8cb64468eaa491c7ae7b4842b62cb4148820da211afc4caffb3a_Z}, + {0x6531acf1a7cb90a4eb27de0b7f915e387a3b0fd063ba6e1289b91f48411be26_Z, + 0x31330f5daa091889981a3ea782ae997f5f171336ed0487a03f051551a2cafa2_Z}, + {0x54be016394d5662d67d7e82f5e889ed2f97ccf95d911f57dd2362c4040ed4f4_Z, + 0xc6cb184053f054d6a59c1bf0986d17090d25089b3fdcdaf185edc87ef113e5_Z}, + {0x35b9ecd0499ca1d5d42dcbb0c6b4042b3733c64b607ca711e706e786ef2afc6_Z, + 0x5624b476a5b21c3a544f0712d4817b06ad380a5a6529d323bf64da8ef862d8d_Z}, + {0x4ce0378e3ee8f77ed58f2ddbd8bb7676c8a38bfb1d3694c275254bd8ca38e23_Z, + 0x5a16fcbff0769c9cf2b02c31621878ec819fff4b8231bff82c6183db2746820_Z}, + {0x648d5c6f98680a1b926bfeb01c00224c56fdcf751b251c4449c8a94f425cfcf_Z, + 0x72c05ac793cd1620a833fbe2214d36900ebe446e095c62fcb740937f98cca8c_Z}, + {0xbd09be3e4e1af8a14189977e334f097c18e4a8bf42577ef5aafa0f807bd89b_Z, + 0x6e0e72ed7eb65c86cee29c411fb4761122558ee81013344ba8509c49de9f9b6_Z}, + {0x35ea4e339b44ae7724419bdfbe07022253137a4afb7cbaffad341ea61249357_Z, + 0x3665d676a026a174f367bb4417780e53a7803cb02d0db32eb4545c267c42f14_Z}, + {0x36457bc744f42e697b825c2d1afd8f4029d696a4514710f81da52d88e178643_Z, + 0x7c93715896735492a68c7969a024b3a8fd538bffc1521538107de1a5f13ce9c_Z}, + {0x5b3a08ebcf9c109cc9082f70d9df2b9c11b5428ee23917b4e790c4c10f6e661_Z, + 0x9d7b42ab0c20f5510df7ea5e196eec99342739077e9a168198c89da859753_Z}, + {0x21883ef8580fc06e59481955d52ece3aca6e82c8c9fc58e216dcf46f96990c6_Z, + 0x51a6423543e6e8a43e71da34cd90f5b520b8d33b67c4bf857573ab9e301aa4c_Z}, + {0x19e86b77f9b581e81092b305c852faf53940a8f15f0a6990c414f04c0fa7ef9_Z, + 0x515630e35d4398c9c79fc4ee08e1023fa47d8e03c6e7819c6d2ccef45398fa_Z}, + {0x888ab8eb4c31bb2ac5b54aa320dbe1a69c96b864e8a5f54d89c1d1a6b86c24_Z, + 0x730e148467f6a55ce22c5296f5380df88f38de76ef0b2de844cd3094aaaf3ea_Z}, + {0x75e79ff13a894e7120dac17b7429c0c32ce7828f726c9973728c0977a5f5977_Z, + 0x4960526e59c1c736561a201bc56f7d762641b39f609d273cc996f5d9197cfb8_Z}, + {0x640fe009249115d7254f72ecafb3006139e4bed7e9041af51458c737282d1d5_Z, + 0x3cc6c978a575246e2ce4f7ef1fcc7f63085db9ff98a1b1f3fe374087c0332c_Z}, + {0x6d6fd09ccab7c26de9b3906191235deb5c34685580c488275356a05e209ca96_Z, + 0x7157f81a34213dd8f91dea4f6df1bcfabc4ee091a3049eeeb3b7923d39b8645_Z}, + {0x5531ca1d00f151d71da820918f74caf2985b24dca20e124721fff507b5a5876_Z, + 0x518529643d3f25e47f72c322223ba60a63d6bfe78cf3f612215d9c19bf29200_Z}, + {0x6192d454e4f8fe212bdfccd5b15dd5056d7622ffe456c6c67e5a7265aea49c4_Z, + 0x2377a45dc630017ae863cb968ddb38333a70c7946d8684e6d7a6213f634b7bc_Z}, + {0x542fb44b4ef3640a64fdb22a2560fb26668065c069cf31d1df424819a39ff18_Z, + 0x5dbae9b0948e0361aea443503840341c322aa1a1366ce5390e71bf161f78f8c_Z}, + {0x299ff3e3412a7eb4cb4a3051b07b1be2e7b1c4b789f39ffb52cba3d048b71de_Z, + 0x1951d3175c02761b291d86b6c0a08387ad5e2a2130ccc33c852530572cb3958_Z}, + {0x628ce3f5367dadc1411133e55eb25e2e3c2880d6e28754a5cb1c5d109627e73_Z, + 0xae3e9b7d50964e28bd15380400b7659b87affdef5d2586cbefcd9be7d67c0d_Z}, + {0x6ea54aff064895eccf9db2283225d62044ae67621192b3346338948382f5933_Z, + 0x6431507e51aadacfaf39f102a8ff387756e9b5e1bc8323d44acae55130d93db_Z}, + {0x28097d50d175a6235320fe8cfe138dd9e46895d189582e472c38ad7a67d923a_Z, + 0x7f9eab4133d7d09a7ff63368d6135c26262b62336eca1b5ca33f2096ce388ba_Z}, + {0x619fd09cdd6ff4323973f256c2cbdcb224f7f25b8aef623af2d4a0105e62e02_Z, + 0x2c95f0ae11d47eeae1bc7f1350f75f9185c5bc840382ceb38a797cae9c40308_Z}, + {0x641c18982ced304512a3f2395942a38add0d6a7156229c2a7c8b8dfbe9beb96_Z, + 0x6f6288c9c659b6af5ac975f4180deffe53d516399b2cc62f31732e9d4ba9837_Z}, + {0x58ab546e51fe49fc5a382e4064a2bd6cfc268904412f86c26de14f28a71d0f2_Z, + 0x124b7217943e7e328408e8afdfa7da00dcbc94a2bb85fd8e01fb162d2c2c0a9_Z}, + {0xa82c2fdedbb26c3c762a12f7e86b0e01e65320e0a25a8399d665f6e266bf74_Z, + 0x1a1de28e253f3e10f44d0111e8074f882d7f42e5900780ccbdc31da372d3fd8_Z}, + {0x744c725a7455a992e3cf5bd007bc234dd4668dba285f553f38350ad94c1615b_Z, + 0x7f721a87f48798bdc4a9c0eb88559e2ad7a74112fd901e70ea159e67a9c33f_Z}, + {0x434df142ddaa60f7881b6348d91687de40457de7ccfb07f0304b9e820705d0c_Z, + 0x7fae425e3b53f97dd1f5b20e49ed9fe24ff1efc341ba5e017ac89cf8df0cc39_Z}, + {0x7a1e2b809dff46277021cbc376f79c37e1b683bbd6bca5317014f0dc0e1ae73_Z, + 0x56790278a231912c334eff05281e08af1558e85516b4411ef64647c13bea431_Z}, + {0x4931b7990348d41cf8907be79f45bb7991fd18f8a57868351c92fa7a34cbcd7_Z, + 0xca35091815cdf0837d396e25aad6052ad32d497a33b123256cffdc008bc50e_Z}, + {0x250b815d352fd89f8210b624b147ea7d0a4f47bcac49f3ac9b777840da93ebe_Z, + 0x1173f10e9691948b7da7632f328520455aadcba46e017f891e0a1d7da2bef04_Z}, + {0x2223b85032fa67292f6e1f822628e6756e5c3cc08fc252ab88d63d624e4dfb2_Z, + 0x55619ba96a7dcec77832fcb22cd5c21c7dcebc0280d730cba0002b67e0a8c63_Z}, + {0x249b131e04de73af9820d3e22492d9ec51bdc0c4c4f34d95352fa44dd61f245_Z, + 0x7576d3b5d136368ff01170a77d8286d0d1c7c40688862fb40813b4af3c6065e_Z}, + {0x6777915d9b4769027eb7e04733f8a2d669c84fe06080f55e8a55674dfbf9efb_Z, + 0x640d0ff384c9635e1af364760f104e058e3c86209fa9d2320aeac887b2e02d8_Z}, + {0x2abe3f237681052f002414399111cf07f8421535af41251edc427a36b5b19c9_Z, + 0x636ce4deaf468a503ab20ccb2f7e5bdc98551656ebf53e9c7786b11dd9090be_Z}, + {0x4d5cc5414758ea1be55be779bd7da296c7e11f1564d9e8797ceea347c16f8ea_Z, + 0x1a680c4c410cf5ddc74e95ff2897c193edaaecce5b2cde4e96bbae5c0054eff_Z}, + {0x46c375c684b30adf4d51de81e92afee52b1a3847e177403372c82109373edca_Z, + 0x1eaadc5783c90a0261306423d52009e991126b3f620e9cb6cffca41ca096f4f_Z}, + {0x2ddfb71f51205888118cbabba8fd07d460a810289bfdeeb7118707e310cb152_Z, + 0x1fd905d07b3933be886f2518246bdafa6f33259a174668808223cd7c28183c7_Z}, + {0x386f3879960713d41fdb3b1e41bbebf26b1c0e27a9a75bb1adcc1a0d3e8547b_Z, + 0x2b21498c0f34ec6f17c720334dc0f36021c2f87afbbbc8847d0bd536eb265e5_Z}, + {0x407eae62c6c4de3b942195afec3f45efec71ddb5e6edee3d427631bcdbf9b90_Z, + 0x436e7f2d78268ef62c4172d2ff1469028bad1f1d0f97ab007064418e61caa8f_Z}, + {0x1b881175e21201d17e095e9b3966b354f47de8c1acee5177f5909e0fd72328f_Z, + 0x69954b1a9b8bfccf8ec384d32924518a935758f3d3662ef754bcc88f1f6f3ec_Z}, + {0x7d545a82bff003b8115be32a0c437f7c0a98f776bcf7fddb0392822844f3c5e_Z, + 0x34b6e53a9565a7daa010711f5bf72254a4e61da3e6a562210a9abc9e8b66d69_Z}, + {0x299b9fcd4fadfc4b6141457a3036aaa68501c23df579de26df69d4def89b913_Z, + 0xb95bf2c2bb303c38bb396382edc798ca6a4847e573ce19b7b08533d1912675_Z}, + {0x551f5a4dae4a341a3e20336a7d2f365ddd45849351ec6dd4fcbedfe4806d5d5_Z, + 0x5865c977a0ecf13ce85ae14c5c316872080bd36f0f614f56b6dfc7ece83792e_Z}, + {0x7a1d69c08e68c80ad8b310736e6247a53bcba0183b9b8798833bc696a0fb6e2_Z, + 0x3ce803a20ebb3b120d5eaf0ad64bed0522fad1a0f2ce39a5c5cbae98c4438f6_Z}, + {0x28acacc0bc41d84e83663f02b36981a2c8272ecd72d3901164be2affb09c504_Z, + 0x7a5aee0b160eaff5b5968ab1a0304ce58c3d5ae0148d9191c39e87668229e5b_Z}, + {0x1f78cfdbcc767b68e69a224a077468cdfcb0afd6952b85bccbdb96d1fb8500b_Z, + 0x4772ba173c6b583284eb001cfc2a124104833f464ff9df096443e10ef3e9dd4_Z}, + {0x2774108962ca9897e7f22c064d2ccedac4fef5fc9569331c27cdc336c95774b_Z, + 0x9e13d79b68e8dc8091c019618f5b07283a710ddf1733dc674a99fc32c12911_Z}, + {0x770d116415cd2c4ace0d8b721dd77e4a2ef766591f9ec9fa0b61304548994ed_Z, + 0x42165d93c82f687635aa2b68492b3adffd516beb4baa94520efa11467a209fd_Z}, + {0x5e6e4ece6621e2275415e1fda1e7c4f496de498b77c0b913073c6a6099394b9_Z, + 0x3d92ce044fc77fa227adc31f6fc17ef8b4ec1c5aafc44630c0d9195075bf56d_Z}, + {0x6e69c717b5d98807ff1e404a5187a9ceaf0110b83aa15a84f930928b1171825_Z, + 0x1ee7cfc3a9744d7fa380ba28604af9df33ac077724374c04588bd71fa16b177_Z}, + {0x404318f2d2ceb44f549c80f9d7de9879d8f7da4b81e7350c00e974ebf2daef1_Z, + 0x3934831b5af70d17a3f1da9d2931bd757e6acf2893236264fc7e0d92ff1a1cb_Z}, + {0x20dcb6f394fea6d549b2e75748f61b7ec03b6e52319cb14163373a9c22bb9dc_Z, + 0x106a8c96cfb95a331618b7416d1498554730499e194a58fbf63019890480fc7_Z}, + {0x119000f277ccee013e6bb121194ec1ab5460fb6a96eb702a14079865f4170aa_Z, + 0x1737a32f5415e8720a5606ec1dd4756f02e7c6817e3723b453d091f2d192773_Z}, + {0x45d0fb5cd95db76d05dec3faa12e467a308eabaad363a062353db3cd2d9b749_Z, + 0xae08691b5b0cdd19ec499132421638f470f493320e4003d123ab1da761b965_Z}, + {0x1257b3e65cdfb6367c6d0942327e799bc66eb221e70c6573a9862889eb51c38_Z, + 0x593309fd45755dd2cc4afd2b9316bc4638b0c5ddb3009694fcb7b250d0c8a2f_Z}, + {0x186dcf9950f72e868014a8accf14aa36e82a7a2a29f86ba37f6632da4189db3_Z, + 0x55684c9f7a043fc523ed78f756f834b4db823d5e4161bd79602c17d55a5cd8c_Z}, + {0x58791d5569f282f5c3b01ecdc9388df7ba3ca223a2dc1eed5edaf2a1d302fb9_Z, + 0x6298d7dd51561a045bb4089deda9f40b2865589ed433e56d54554f8b45e79f0_Z}, + {0x13fd87144aa5aa4b24d5a7bf907d8280d15937fed262d41084898cb688fc28b_Z, + 0x3fa54367770cc4479a857411ddcabe86627b405ce1cd14ad3b2863bde13abe4_Z}, + {0x48118139445415f0c1879224e2dee744ed35280ff00537260402a1741ec3676_Z, + 0x4dfa39dadaabecfc54ecb7a25319444f8e952782d863790e42a9887064fc0c1_Z}, + {0x4ad031bb9eda84f2fe5d354c7948d41558ca657a04508654721810ee72ef158_Z, + 0x620ebd5d0086b92c6009a42777b946a351c2c7ba852b57d3c9905fc337459ef_Z}, + {0x4a34abb016ad8cb4575ea5bd28385d2348e5bcc0cbba90059f90f9c71f86e8b_Z, + 0x4f781829ad83f9ed1e1b6de0e5f4ac60dfdfe7f23cb4411e815817e705e52c8_Z}, + {0x7fc632d7512aab5356b7915dca854c8b12b369ab54f524fbce352f00eb9b9f9_Z, + 0x2ce80b944fc9158005f630b34385d50c3ad84450a9e1e529925b3211dd2a1de_Z}, + {0x65ed10347503cbc0216ca03f7536cca16b6abd18d332a9258685907f2e5c23f_Z, + 0x3be1a18c6bfa6f2f4898ebefad5a8e844c74626d5baa04a820d407fe28bbca6_Z}, + {0x1a8abba1be2e276cdd1f28c912280833a5ede1ec121738fcca47dc070dcc71d_Z, + 0x21b724378bc029a5199799df005922590d4e59cae52976f8e437bf6693eec4a_Z}, + {0x3a99c22dafcfe9004ebb674805736a26aeed7ed5d465ae37226dcbe270a972b_Z, + 0x5bf67552af08e1e6e2a24bf562c23225e89869cab9bef8becb3669175a3c94f_Z}, + {0x4a6a5e4b3501f2b7bbdd8da73ea81ffca347170bdfb6776a037cdd74c560fb4_Z, + 0x5af167ebb259c2da88740ec559ee04052bb66480b836cadd0e2590c32d7111b_Z}, + {0x6890d95308525f0bac9dc25cc1189eb92d29d4b3fe61bc8aee1c716ac17b1e8_Z, + 0xe6f23f78e882026b53ea4fac6950e56e3da461e52339eb43d2fdb2dade7ca9_Z}, + {0x748f4cf4f027efdeaed7c7f91ef3730ff2f2bb0bfc2db8f27aadde947f7d4d5_Z, + 0x3a1cbc550699411052c76293b8c41a3a8a1ecf12cbbc029a1b2b6ea986fca93_Z}, + {0x7321f3f581690922cd0dec40c9c352aae412ec2ccdf718f137f7786ab452cd3_Z, + 0x5be5130c9277cdb76d7409452438ec15d246b211dd1e276ee58e82a81c98fd4_Z}, + {0x6c4d6cb7e7ae70955224b8a912ff57ca218635a2436b36cee25dce8a5cdf51f_Z, + 0x32f8c03c6db3246946e432e4148e69f5628b200c6d7d72449df6eeac0998039_Z}, + {0x1dad5f2e795ea6fa5177f110989516eacf8fb37bd6a091c7c93f1d73a2fe309_Z, + 0x56b2298c538180e99dea3e171dbb5c6fba0bd0a9ed40537277c0c2373a8e2c4_Z}, + {0x1610605baacc9bc62c4cc923dc943347cfece7ae241e746fbe6c2c878221dbd_Z, + 0x431a82d657e0d109d00dea88cf3fa9b999845221b7b5590a20c40fc71368c1c_Z}, + {0x6a4f5c787fb09a5be2b04d2eafa1e6f3d3c863ee22960eb0b64f6eaf6659162_Z, + 0x14dbc3eaea6146ee7eaace5a91ed9430dad3a47e9ca2f68b455171f8fe6a7b3_Z}, + {0x738415b73e55412b0e582e45ff0d7bf4b1bf2922db581783fdcc75559f40e_Z, + 0x33825aeb3fd8459999eb418d15102ba5864b069c6ea517f0c6e9eab8d9aca47_Z}, + {0x2603e72ce53985c70782774057a17944f7b4ce224a809be4e2b5af3606aa1d8_Z, + 0x92822921809c42318f42dac4d773325f41c43069e990adac7818a45e2554dc_Z}, + {0x181cd967ab4615357cc96c82eae9152ce7598c1a1dfdd91a458bddb016ae9fe_Z, + 0x5d562fdaeb0e12647e230e50eaf216bed52fa73c6b7378821a3bfc4cd66d4ff_Z}, + {0x1121726069b9ef5954ba6490100b226e0be53fef3e071b7c58a1286174b789a_Z, + 0x4b25594cf4e9eb2d14b3f52f2661a9992234fc222c0a0d44517cb77deb9c16f_Z}, + {0xe543663969b915337f105f80995a77b356f1a51d8b4a4fb12d44364130e873_Z, + 0x34b2e3c009fdab4cb7349a580df2e64c0098a123280078e5da6623a9ec6b44f_Z}, + {0x4e2f8909bb62de5ef65600e61bbf969293815296b6e23702875e049b3ce5c45_Z, + 0x3cb81f2c21f22a7add26fa38a9ce5d9cce1bb251bd2698f90c34ff0a84f7af_Z}, + {0x37b546e403a1ba970c17b67c2f1361ab9c803f8d2b5cd93803014faa08861ed_Z, + 0x37079184ea46272f5809b523d060686633f7995167897a153be1772fd6566f6_Z}, + {0x27bddca77f7bd7f66b3693567a4238f2e6751d95b0bcb409f6b24d08f84798c_Z, + 0x6417a85cbfd6fc02df560d3963a241a986baacdfa423f65d7227ce49a96c57d_Z}, + {0x2de71a39aa043057d1bc66e45f804542acddf18f7a6d88c0d7fb0ca240debdf_Z, + 0x306c1ce39ab46300f7cca0f3a2fbfa77296a27e24bc66b0b8044968ec0ee413_Z}, + {0x307c877154364c0c03534e7327d5a88e1380ceef6481567ade37a14ee7c1a72_Z, + 0x3404bc7dbfb33b95d922d0693aaf9358f77888d7d95e773c38d83dbe2e5f995_Z}, + {0x79f09ff7c60850e5f5ea020722659a1ed27db4c95dca131f99552f785c8afbc_Z, + 0x40429528c099349b426ddbf129497176951a64a53db5f9d8bd2be0252cb22b2_Z}, + {0x4027dc6b56d446e5972f35464eeac85c5254ef377c902d9fe37aea841bb5292_Z, + 0x7c3ea37689ef679fa2f5c7e031a78e23d484a8317990fd34d44d95cc1db3717_Z}, + {0x645dbf78a3c228c4b7151450b5e65edb58e71f37e1e4bc5f471e0f1abd6d9c2_Z, + 0x15cfe7850f327b256e23b00627451560c5c6ab60db78d45b7ab286afb6f13ab_Z}, + {0x1503ca373757677ad1d911a2b599d01c46eb879d1ce21ae171c7e439846a85f_Z, + 0x583eb269b7030da6a0c324026919de3f9489d2ff6ae0e6320c36f05469ad66c_Z}, + {0x66e1819ba3ec4ad4ae9f7d7588d23baa004e29d3aad2393d52af204a81626ca_Z, + 0x505249980cbe6273b82ad5038fe04a981896f4117345ac1abcc67e2525c0ee4_Z}, + {0x5ec20dbb290254545f9292c0a8e4fbbfb80ad9aab0a0e0e9e9923f784d70ed1_Z, + 0xbdb1ca3a859227cf5d00eaae1f22584e826ed83b7ccdb65483ed5213dc4323_Z}, + {0xa5c1a5011f4b81c5c01ef0b07c0fbf0a166de77280f0ae241f2db6cba15194_Z, + 0x4444521fb9b33d7dfeb1247d0ee1a2b854ad166cb663d9dd2e686909362a689_Z}, + {0x1f35335de40e00c62642dac2fda8b30f071986ce4f11db849df11bc45ad4e0c_Z, + 0x7801a2c761b90fd4477ba0be9a775003d5dfcd959b1ed198b4681f15e7acbf_Z}, + {0x48db4798cf6821c1ffb8178b1d3bb6020e04186c96aaf4670972d367f4ed5f_Z, + 0x781019494df95b888f1578f1b4a3f8e125ea60eca47ef9207a10630671217a3_Z}, + {0x17f653d904210148a8e74d8e719a3061683c164aa6d79c902a19f185ab437bd_Z, + 0x6780e97985932c3860d810af1e065d454b1cb4be0e7ffe2d8cea7d52526e223_Z}, + {0x5c4d0c7432f9b0070436240f9855adae1467cdc9826952ae01b68cd52a3ad89_Z, + 0x1c5747f968ed91261b7ae9bf1023c999da9816e37de602d6a1a50d397752bff_Z}, + {0x6fedd7639fdaa2f7bad4ca0b391710f6f8a7e890250ae8ae4252bb8b39a1e58_Z, + 0x436a215f655a3fd3778b2335ffdc9aca6b98474e43d764c1f8362830b084f0e_Z}, + {0x7fbd45a889c5e9d127bb4f8474d6be7cb9796bbfff923b75e42a1ad4cae37d6_Z, + 0x484bd12622a6ba81cd53049c550d9ed682a8e765b656b1cbff9bbea637bd1f4_Z}, + {0x17d984d47937263f7966a3e7b1eea04071e678494bd749c9e02b48b3234f06d_Z, + 0x7b341ff08722c4e161005d0037204a7a2001fdda7af2cc1a0b04a027f115a0f_Z}, + {0x7f1822045db45ea07e1519c3ee1f7705915f35fe4dd8db1e8921b5d1c740edf_Z, + 0x33d41e06b93320ad1b3d9580380ec797a05dac3f1cc8008899110ebefde2f78_Z}, + {0x7b19453ecb74b7d0e2a66b9890ff73bfbbcd61a266abd6d82dbe665bf32f34d_Z, + 0x6dba2355420dac582b1f349609ea1c89b89bba2d1a68a0642f1dd12d86e73cb_Z}, + {0x273e82a15f395ddf2489a95685bec8bac62c4b459d1b28987d3cb27e4bc9128_Z, + 0x653375b48a4cf5d5b101c9ef533039bedce5dbeef3f59e8f168bdc99b06ca5f_Z}, + {0x3006c9e7fc6a553d8eb4e8a47ce9f10d1a39576ac255ae9e0a4ce3869e76212_Z, + 0x65fe9e2ef2aae608be309332d464f57e28f1df5de1a6a519751b056971f932e_Z}, + {0x5e8f384c8a4607fbe9789fcc52d54249d304d698562597d114c1d81452d3dee_Z, + 0x3c8bc78066b5d947dc1e405e326ee55ea606c7988f666748d259850fa259a22_Z}, + {0x7841b2102e9aa103fb53a642b3e167b21113ea44751ab38e0b5ef8312654db9_Z, + 0x71bf5c8308fcf9c4a7847494cd9bdd946fddf7d3a37e8bb0b201ff2343deb8e_Z}, + {0x40f68027420c11e3ade9aae041978dc18081c4f94943463aac92d887f922a62_Z, + 0x499c6062594a6c7e21a3cb91ea451813393bff365a27a08f1a515439b83cf42_Z}, + {0x6ce77a50d038b222634e87948df0590b79d66087b01e42b9b6d8fa30ebb1465_Z, + 0x35f5c46bb1be8555a93f155a174d54ec048c2ac8676e7c743054ddc52709d37_Z}, + {0x604f8b9f2dacb13d569262864063c2d4bb2b2cd716db6eeb2b1eeabc57746f6_Z, + 0x68c6799e24f3b44eec3049973445174727a66970f1614a782efa2b91ab1e457_Z}, + {0x73d620f3bfe77f672943d448d7dc05327adf64b8e7af50039c469d7f7c994c4_Z, + 0x4859deb36eaf0c802f0d1514602368143a33ec6ce8fd55248b59025debc6afb_Z}, + {0x3fd2bcd1c89d706a3647fbd354097f09c76636e93ae504973f944d8fc3bcc1_Z, + 0x677ef842cf5eb2444941f527abec567725e469469192354ad509a26ebb3d0e0_Z}, + {0x39222ea924ac17b533c72ffb2c47ffdc11d6a7f7c70fbde3a10fb0b8f35eb2f_Z, + 0x20dc4bd1089019bc1d7379b4feb3eae6eb5af59e9f253845da9fd633057e952_Z}, + {0x326f58994e1347f62e4102183215b5db956378d2f61f14aba4dec94577f53c_Z, + 0x7a03284c296003bbe05178a1d82efdb7b8125511d63e20e50aed789c2e52e1_Z}, + {0x53aa8939c74d4ee58f03bc88bace5a45c7bfcf27466201da05dc6723a5f5632_Z, + 0x2e32535ca7732904a048183247b04b426ecf9b39fc393a9cebe92fb1dc7a7f1_Z}, + {0x6cee1a03145e93b3e826e6067005f09c06099c98198c91c222407ba5c8c132e_Z, + 0xbeaecad1274e7c6e5476a100c271aa1a6f86ee5a9fa5c2f26124d5886fa63_Z}, + {0x3ec659b8175e1be1bd5a252108714776b813e330393f587814f5f1f32a73332_Z, + 0x529a5cf9f8c237ae69a94217d173c8d19c156952041f5c980da557990863fa7_Z}, + {0x3d66ec5963d0c534d4139c8cef2e1ac48b3e7965fafabf58be26f903318af4e_Z, + 0x3d3f2de7a95f59b683725ee6283cbaf31f97c4b600df9a4621413223a468740_Z}, + {0x7fb38ace8e0932fac2ea0d3eb676db8d684db1817e2e4d59da7996ce398b4a_Z, + 0x68f92bd5768cdd4710249f9d49ef1d5654e497b9a4ba10bd2971366d83fb400_Z}, + {0x1c4a49314d6b4969cdd142c76ceb7682bfb868ace7f7568b0fc8635bda5a9fb_Z, + 0x5fc0519f1f4cc10b5771312458748c036313b87707ed0540026ac64a5955aa9_Z}, + {0x3073c95d08d3b97caea5f0be16b2789bee766f76b7e5499f8ce8f96abb0f344_Z, + 0x52a8974b4eb9a1f6a0ae2c83cb4715bf18d73f057255fcb3f63b74f7e78f590_Z}, + {0x44485b16d597a5de3604df6f7ed7e00b8aeef9e7e8dea8688255153b8bb16aa_Z, + 0x6cccb0ba170123266f24b5d93a744397dc2c44820edc4f8f5b9a0f5c9b3b940_Z}, + {0x7618f77b7b32d512688dd62e0b48231d9574c6361e8be353a7dc04f7c3a115e_Z, + 0x78ffcd16d80636381ca231aae70d99c9e20298b4f5388fd823ea9fa2b8ddfd9_Z}, + {0x7dc82fee1ef95cf5b3720fcc07f63246654bfe39762627839da40e51c75654d_Z, + 0x4c0ccdd70955da74558de20c88352df8a02aa97e4d5971c500e884740a8cb62_Z}, + {0x7fa5d460dc10cbb418b444d9bde97e92c70a99a222b99f244dccee7e62cc04c_Z, + 0x636163901baa5b7576c38c43407af578b8c4607e01e86011ae2dde587a89f84_Z}, + {0x758930d46006623a756c89bd0cc378f6a3c1f43c9a0edbb42274c35e75c16d2_Z, + 0x1d74dd9f81c2fec811b8cbd6168a745b0a111932b2a345265ef2853b50b6245_Z}, + {0x7332ee0626b044d664ef228f8cb84df7c643e52f6a2591ae1c9007ad61ec16e_Z, + 0x229bd8e630572cbdee54283234cf3e9f060e6382f99943bf234119d47b54470_Z}, + {0x78a16ef803aa20a075bb2f66c61bb2dae5698bebb94a0995fa74c3d53de1614_Z, + 0x246d588b68edb6fed96c128349908c42dcd64c46341b205e79f4aed9b5d3675_Z}, + {0x6e1933939bd03b67bba753cc0cbe7d2f25bad68c993887ef8c9e2fcd59b0647_Z, + 0x599413f7c204a11a5ce315eab11299ab7326603412bb00bc1c59ff75a37d6b4_Z}, + {0x4a79957a5a1888ad063b51c69565a2b48e8eb917183e220a1c8d3374526d30e_Z, + 0x1f092de0e069bba7fc5386e2e9a114c1618f88c4b95e220cd35ffe96f99fcad_Z}, + {0x3148aa3df9ece39aca84f59489f2710522216f14be6055ee0027529d1d55e2d_Z, + 0x617e9a52a92975db0ba1977f71116f7058a0d31b869ac7f3ee2fd80b0c5100c_Z}, + {0x5c1188e72384160ae39d07328346cda4f6c12d227448e6236f04dc971625287_Z, + 0x1643006eb3a3bc6aafd5f685cf054f2a572e6ca58c0118bcec0b833741f116d_Z}, + {0x3f72efc93c9b71adc4c51d8fc69d3940b20d08733af2b7d05140fdb1d1c1004_Z, + 0x7399259987c8f4ebfab46e522380707e58427d3962ee0c2a91760813f76d232_Z}, + {0x3129b34c03c51aa8f611e91d5cfcc9bd3ef108ee66e6d3ee35a0e0e50055bb_Z, + 0x563b18b5650085efb4cf179a029e6afff27b1d3091cd28eaa68d24fa1f801c6_Z}, + {0x16eac0f9fb4c67cf89a7fa4ee615bbe731d8edcb709a1b9b50c7d873a530f52_Z, + 0x7ff8288b6e199ca8f316192881424a37fb080c29daa76b1f0edaccaf580a80e_Z}, + {0x75f6b6028c43ce832f65d7e8e620d43b16cba215b4b94df5b60fc24e9655ee4_Z, + 0x35e9ccfaed2293a8b94b28de03bcb13eb64a26c831e26cc61a39b97969a2ff0_Z}, + {0x3c6152fe093bd6316897917ec56a218640ec1b2148f21db9b14fc7a5ff362e8_Z, + 0x6eef2df27ae7d63a28856b07b73e7aad7ca94f317201a1e675ffc6f9a1710dd_Z}, + {0x54e01b5fe4fd96052aad55b3f26b1d254dfc7e2525fffb9ae0a77eb8cc5579_Z, + 0x7c3d39232ab333675b219abc766ed9b4782c840e6b046614dedb8a619696eb0_Z}, + {0xd1e63f8ea8a76429cf254a6d3b668761f0dc572d4bfac4fd56d9eaf58fb6c0_Z, + 0x2bd0a84d3908a63085824c9329a0983913006ba155b56a58eb3f9becab29c45_Z}, + {0x2d6122f2a702edd4da7385b1580796a71d13bd72be94cfb3fec01149c006c2d_Z, + 0x70eb282fae992efa6f5915e578b640653549f23385ef3a29ab29b1b9b8ad63b_Z}, + {0x752fec14beaadb5ddbba6b3a17fcb86579fa588ef407fad0ea07dbb22a640d3_Z, + 0x3feb6728eca21a1e84e8f9f23010387a53a96a1cb62d86fb37996150a1299ef_Z}, + {0x63f94a92f27acde8f5ed949b459506f51d70c85bcc61a34d647264ecc53c65e_Z, + 0x37e5dce0646ee66f4fdb93b82d54d83a054948fa7d7fa74ab6b36246fc7383e_Z}, + {0xd6aa909287a2f05b9528690c741702c4c5f4d486c19a46c38215f52ef79c7b_Z, + 0x5ebe1128dd81093df4aca0df365d58adab848d1be1a94b95eeb649afd66a018_Z}, + {0x12866812b3053e2f7a9572bdaf5ef2b48c6fb62a0eed9ff0356df50e7d05557_Z, + 0x6785f7eb2cd1c120e4c7167b46861d10117040a2e9f2ca86a71e9d67df90613_Z}, + {0x46a730d05330b1b13673cb8a1b8f45460035e4a9f1a1751cfba099c4355c1c_Z, + 0x76fb0ec6cd16a8141cdcd875c8b2de9fce42d296072643d148ac7e7fa7472df_Z}, + {0x4bd4380a22900bd34835e0a908eacf4b6edb61eda0cf483f9212453b37e7516_Z, + 0x5e9551cd20d8d7ddbf4366880b7d5267385afa1966ff30da4baaf273b009d29_Z}, + {0x71f1994ad40baa2922424ae222663a64f93d8b67929e9a10f9e4c1ab19f3833_Z, + 0x85320fe68ec0d37cc19fdfd03589d66906ffa4046c80e1b094a85f27676346_Z}, + {0x5a63b1bf5232f28f808765c6be7ce1f81c52145b39f01c879fae0f4303bee61_Z, + 0x3bc5d6df68bb6d0577bf9ae2ae59ec0e9b2dc7dd56ea179fb38a41e853db950_Z}, + {0x161ded55ff1087032381e6c1449704f63ad2d88df82dfc44a71890fa09b3941_Z, + 0x78a52e0013842037274ea75daaf8eb4afc04ccc4b07bfaf3f5ee47d165e01b_Z}, + {0x1bfce5229c5fbff5c0f452a22317fcfcd9262f23df41840f84fe7d44cfba1a1_Z, + 0x66b387872c00e63c73006a955d42cf49c46c5708fc9d1579b9ae38341b24a3d_Z}, + {0x56d47dadc9cbd1dcb2ee3efcd5d4af5e6aea71df10815c68b54a14e81d11b44_Z, + 0x47e966ba54df48e9b612a903685e0060a67e4725402e8cb4cf654e54e813a3e_Z}, + {0x4b1c44438afd4ddf20a2cf612df2ee494ce84c7274c5529e857693e73018491_Z, + 0x430403bd31d8f0677e06abff7159384560f27b9622943fea1a3192f14bf40d4_Z}, + {0x7f7281728fc2214aa1dbf13176a4624b53814734abd570eb6ef7c7e32379606_Z, + 0x312da47be347fb3fa2c9089b38df372560dcace2effeeacab4d96ab11567295_Z}, + {0x16a28884a1be8183e0d3fc0db84a9afbf47126fd3be548c2a584aaafbfa7dfe_Z, + 0x7c3f57b3b895564ba562c1cd80b71fda6d2e611665c6ab87744f5390858fe24_Z}, + {0x323339f37b327a731232a9580e79952063c7c232bd1380146d8a83c285f4b8b_Z, + 0x4f16be1d983c7232f92cce6b9690695978d42cecc8eeb8c206e125d1098a265_Z}, + {0x624d26cbaa197e104eb83cebf2adeed09a5cdad359993fe5e3529d4d0def21d_Z, + 0x261b7da3cfb55c788977e0d8d640e3e93ae5a325d962ce85c816d7d32cfc430_Z}, + {0xf24ecb7ee83a3e28dab54a330dc93d0429a7aea36412e922dce8fbff40d60d_Z, + 0xb043e36a258d1df1d21b0cc7be9c4dcae1bd4ed326c110e668ac23d86805a6_Z}, + {0x686cea46b710bde1231483bfdbc700cfa3da6ecd5841c0e0c782f9ea24328ec_Z, + 0x7eb7407aa58edd6911c7c7e8d1e03bb52ead4a2415a0c33325872ff3a521dd6_Z}, + {0x3866ee1186264549df3dfcdf8705c0380c9372eef6d4081c2454d3aded1720e_Z, + 0x634c6d3e8eb8af652a4be73e3b613452c2213104ca875b66b4b15ee5b1716af_Z}, + {0x484c687cd2969a1d20a58cdfb9a60f280a473284503b1ecff5de514aaf8206b_Z, + 0x34d44d26b7427e51a646d1b924084762f5b461685450f21d6a472de565bebd8_Z}, + {0x203561333771fa0fe22c4033349f7b877d15b0542a5598e81e067968768247a_Z, + 0x2b6a533aff6e2163a36a2a89cb7415848bef48db40f952ffd380f47676707c2_Z}, + {0x2ffa6cca6233695760251206fc5e34c8d3692498589478cdd3d5b09f0b7c05d_Z, + 0x6c57d605478fa9626c4ed769554d075daa53e1a1d0bd4d94174d3bfeeb11ad6_Z}, + {0x5dccf0fa46a5571f204d0b033b45f299cbb3d9f80fded57253ea4f1c64faaef_Z, + 0x30a38e131ee8756ee5ea2a3e16618a5dbc28b5b9311308bf037ecc2039dfc7d_Z}, + {0x57b0a2eaebeafd950221facdd24790d7d1ab8883e5c5d55635f0d14a1ee4741_Z, + 0x7b41cc478fa6be38417271db8ed12efc0da6982552c1496025d2df0576bf4ad_Z}, + {0x611b5725101f611c387ccaa13889ecf3bb5595071a179ce350029bfca4ad7f1_Z, + 0x3129755977abc8995fec7eec1123a1561e429fde37ff36af002d3211831ecf4_Z}, + {0x1c06bbd0c52fdab9fcaf680c7a93fb821e538a2ed79f00f3c34d5afb9ea6b31_Z, + 0x3873d3bdfe0be0157bbc141198dc95497823cc222986d24c594b87bd48dc527_Z}, + {0x275cdbabc989c615130d36dabfa55ca9d539ed5f67c187444b0a9a12e5b7234_Z, + 0x2b7f723e68e579e551115d56f0ae71a3b787b843cc04a35b9f11084b006521_Z}, + {0x6cc702eb20f8b5940c7da71f8b1801f55c8c2d8e2e4a3c6c983f00bc1ffdd95_Z, + 0x5d15b3727bc66f3aba6d589acdd139fae115232eb845abe61fbdfc51341352e_Z}, + {0x44defb418700cee8c9bd696b872adb005490512d8bba081f8f99a9f15cc981c_Z, + 0x3b2072cdb1d919b2b65b5cb3557f0a3381d7ca293c267ca4a38f83e77bcc96e_Z}, + {0xfd83ce77b1578b3a9b8c3cbeaddb1504d2fd4a19c901c21ac65961224e4966_Z, + 0x110cbe64fc10c6b9c66f15ca406a35f50b723b35d83c5eb9797a57f8395f4f9_Z}, + {0x9dc6ff90e341875e113bbfb507724dc7095a280d2f32cb6ba61a1e0c2d2aef_Z, + 0x4aeb622896c852c2747454e8f172c9482955a42ecbe522d6ce07ecde79d0a51_Z}, + {0x71c58b0e47b9dd9107ebd8a8c8fa9f0534e78231bac612c1ddc7a94edf33eb7_Z, + 0x7f90edaf4792bf8334adbaa0f4ee7c654312725af188682d75f34874c4eccb9_Z}, + {0x1f6de1f14988778ceb2dfe844f92394f1f1e72fd1581ceb3bf336c95ce50345_Z, + 0x4f6007ed4e022d2ee9fe4ca8207c5f6c766c4f3b85260e941fb24ad0dcbf0bc_Z}, + {0x3ddc3ac25ede4a67a97547ed27dc920239b585fb3624177e2e8d59eba678115_Z, + 0xa9afd8f8bb759cbd1dff2addc63f47da4ba1291ea34229c09c0637dc5c8d24_Z}, + {0xc56b0269d8431556e471cab9d70edda3a37b391696f107b2dc370631de51d_Z, + 0x729c52f6b134f733eb750c14bd9f95c077f0f6f6ff4005701e5bedc6544599d_Z}, + {0x44d32ce19ac6807cb22e4f25fe1486a36a13926f147fbfa054b63ff0446177d_Z, + 0x212a21e8c124c9cd37c80d2dd66913ceaa6b6f666522f115c39382b2d5925e8_Z}, + {0x35dfc16f3ae6ccc06a267bf6d931601e52f3e45359ffc513570b65b96adc4f_Z, + 0x74311d10f4bece01b5ae65a6affe5c931463aa1b73a3320eeb41bbb7bb1ff62_Z}, + {0xe0acd9d2d907031b319b80121dc90699d003d220ea785d50e5033cdb3b1a03_Z, + 0x3911ba78d6e507485d6374b0f7d2e6198f6462a7d6d3cf046404a07af690357_Z}, + {0x3c57918ca254c0cb7dac251ef4e10c7d82327969552eae15d26c4c52660922a_Z, + 0x5fd5f5ff3f14e671548074114c72c48409df8a2e71fc8aa3c8acb506e2a88df_Z}, + {0x222ad8b61e219ba2b581f606b7c996516850a46a3db72fe1f72b5a9be6c324c_Z, + 0x72015a5e2db648112abd284fd867b59fc5606645177d26cf6e9a655c9912d42_Z}, + {0x3c86d5d774bc614469768ad38f7be9a53e9a233942c5c553b82e49aae684764_Z, + 0x480febea8229e130dedffff89c11f3c43e11724e6bd89d5566d78752859d41c_Z}, + {0xadb73bb8352d0c10175df371f7868ef2c9e0c79ac788430c480c0f7d85c187_Z, + 0x60b564785248111502e6f39c4994d6293fac22bc25f4d764b2fb1957d3c9bd8_Z}, + {0x3836ab8b46cf4f453a22532c886940b982029b29c42adca90ded5bf77e6bcb9_Z, + 0x7b15e91d6355f147b171a90b064a9d8b2d7bf3699bbf4987664c61c950d8996_Z}, + {0x12ed96af1a97c45ec31f1531e96f6fb28a03ba52ab8484545fbe0dddc97bb32_Z, + 0x6d1f522b6c6cad0940cff8e23decc72bb8d4164696af031415508b025aa8be1_Z}, + {0x27382994ae5878223ef802e9b4882f481a1b4008f1eec8484483471f7aa742b_Z, + 0xc31750d242b3975b0026a0e86ccdd17d0f680a8c6f53f197fc25eb1f777917_Z}, + {0x431677eba3715455bc235557518a74f3b111a88844ef13e159ad44bc16de3e6_Z, + 0x30000e1eb6a17d9df776981e65c6e500fded1ac12003adc9446b269812c9197_Z}, + {0x4b563e6f42589671579eabfa2cda5502b361c46a5ac8d45c8ed44741a925b33_Z, + 0x627bdb41678443fdd1aa607709e9699b652308615f4bea760a3b79ee0d9ab5c_Z}, + {0x2932fd3f81fc973ca9def6b7f1bb50f980fe589187cfe9e9f52ba4d356cf2c8_Z, + 0x1e6bfd00fa976c4770263a227048214c38850fe0f059e7b3d2c7871ef07d68f_Z}, + {0xe44e4f3d96d9dec775b996be57e57fdc28e7c68023109b221c414a244a0dbc_Z, + 0x58b1e52fa274812e5184e00e9ad812bec2463140adfb4bea3b2d665867dcc9_Z}, + {0x7fcb89be1f4bec745887bb891e53fefd665c53d00a9e74de16b8a7e1f7adfb5_Z, + 0x74af0b06633f779897e199609c71cc5649bbb65bc2c0abd4c678f0480c198d1_Z}, + {0x62a381ffb904ea3ff4d451d4c8459457cdbc3dc2fd2da646a95d8c1e90c0b7b_Z, + 0x1ba058658e09db9e319fa73de8ab4a992b71e4efc22c273725bdcab84e2a315_Z}, + {0x1b0fbb7a84c67e668450a54449c7a46261a2d355589f8b84ebfbaf9a77ee938_Z, + 0x44f8fffa33dd33a6146c35d196595e22cc4a215f61ee9197cd751400970a1b_Z}, + {0x78fe920bd96a356d4d95ee34adafe8fecf071d3107c36f047b4024ddc4b3eea_Z, + 0x6162f29607fdbec10181fbac6e57d5cb41b922c5791fb24bd28bcdd75d16c41_Z}, + {0x5629b849e026e65d119ac11821d7ab7efd9c52226f75c7427505d6818bb0c8d_Z, + 0x1539c0f90970ee8b490e45bbe5568170e5708521a0e59f976be680595906feb_Z}, + {0x62bc853f349bac8c6e5921d27ba85dbd9ba20a375d70a7bc008928f3e123b04_Z, + 0x6acfeb1de05ba43c3ef1a9110a983a320e77b3ca294abbc04aeca19b194f26f_Z}, + {0x4cf4bed663464418285cbae359b5d84ec76b5997d24f3640984c7663421190f_Z, + 0x941f818e3e3e8fb1568da85217d17f9250ebc948379014d900a7b1a848494_Z}, + {0x52ff3d9ffe9a302f6dfaaf74bab57c08027d5cb699a69b30830540c0a2d47a1_Z, + 0x987dd8876873778d933fbfed37aab2f7d6f669c37024f926b1edcb2ca55782_Z}, + {0x1109ee32f0bc53de6bfa457060b366e909d7c18061ec9845f46ac715496897f_Z, + 0x38f36f172bdfd454b9285f86e6bdece8fdffc95182c7d801b03c671cc55139b_Z}, + {0x4b4482f1d84efe23dadf3bb10df3dcaa251312dcdd604f616f1eb540e1f3232_Z, + 0x7c9c149dcae9135f940fb54482f9c3cd8193721643a6e23157b8020410d439c_Z}, + {0x69cb459b9e415b7581ca163611c470d875971d5d7949de732d1f0f200544a73_Z, + 0xa7136fa9dd00c0469863b7def3f83a5611ed628810d7e807e7a873da5a9897_Z}, + {0xb66a4e32ac9a4baa8f64780acd94ed3628b2b0ea874ba4dece629af65f9e62_Z, + 0x24328ba9996a24389658e3467b8b90dc3927ef8419fe28b3f55b1c1aaa51915_Z}, + {0x5ecc3080062dd451236de0e4eb91c5c75100733364bc5469f5fa76f79021ecb_Z, + 0x6da4abb9031a27b5be94529324fad8026e7d871570780081b0f424d4fe543c9_Z}, + {0x1e3146f00880bb22486d5bc73e54367d54251f4002bcf342d0393b05a4b9ce0_Z, + 0x23b6fb8e945d3205f633ba724202db5a99305f807137edf942cd60eef867699_Z}, + {0x2e1da8013285598b899f026c6974185db12c97b4c63509769d3d4ad1d18a4e5_Z, + 0x1e7e7b668674d1593c39d58bc7bccbf568208732b3519bc2cdf93db34366862_Z}, + {0xd26c3f389d81709506f184b53871497c8d36c5c9eee8e3737358204c1acba3_Z, + 0x34649c3d39f3b825947fedbca215ae30c5a5995e93b1c8efca4944cf85a082a_Z}, + {0x91300478a83595d548f32f259033291fc7d083953b0b8bde88c7559660c563_Z, + 0xe5d2bff57fc6551e9b80c06ac7314a71907cdcc66ce82f2cce721a670df10a_Z}, + {0x1f7abcb9d462c63ffe92aa56619ae8590089cca4d93ee3e5f34a63882452cc7_Z, + 0x7e9f85c7b7ca6e9a4f3a026d1048adbeef69ea9d876c6f647c257b879a81bdd_Z}, + {0x4d2caa1323012e4c83b0ad387308b8aef5637bc35ddd882e7f5e41cf2ca410f_Z, + 0x47150e808c81a540b6f8864e9d6636589cacaa516f82caaa96506edfbd6f0e_Z}, + {0x3c10a6083c38351deb3e6d1b386827d0acf48979b66b95249eb8700ec26b069_Z, + 0x47e34bfe561d903cffdd1d849b85aa3cbd31cb4a9bbd8cc2e5fd2f95016cabc_Z}, + {0x758bd54868eec045d0b4d3d2bc415d24bce13fee47cefdfda46425c109b657_Z, + 0x3392a7c66ea3bd7b044680bbe9f78ae86752097404c067e9d2572f55330df83_Z}, + {0x19e718e0ca1d2d6fadbc6006ee7dda7a385430e29f5e239cdd4bb7c3fdcb2f8_Z, + 0x5c68249b7fe03ea2e13481a63b6cd4bf74ce42009a89fee0b3f8f968b3ec709_Z}, + {0x28077f57ea62401806367e6d54fe45d02de5b072db787ffdcc3854e12a3e855_Z, + 0x14f3762689072f5fb41d03e94b01808c739f6d42b7b785b0e464100b150efd2_Z}, + {0x3b8a8cefd017363ce867265af3293cec081fa589fe561830f0078778cbd338f_Z, + 0x69ccf2383cb7b4f9c806d72535812483e7c5e9a1a5928529d64ca7e085e758d_Z}, + {0x77878f388d22161a2953e5aca6bac1ea480e102f329574b4b201640d44a296b_Z, + 0x7eb35706a90a03aff7c2fecca72659136547cee98038746db5aba16fd7178df_Z}, + {0x97332e6da70961f2ef31b7b628f1018d21db8db015922a301fca7d6fc6a8e6_Z, + 0x2e37b06f639fc7a82601b744570a2619e543cbfaf60e474107fcaf4686d3223_Z}, + {0xa81518d452d3aac48bf0386c3ff170ef4e684a4def242c964e129c64f4d647_Z, + 0x37506e44c85908ec7b7adda9547fbdcc2e3605151fefa77fbf127ce3bc938f2_Z}, + {0xe80336b2220b1d666074f6b0dac85353d0e4c2e8bd0f37055a2236a6a9fadc_Z, + 0x1cae76d73eda7a5964c5d9d3ad6748aff51f5543c56441d2fdb7b444a39846a_Z}, + {0x2c01fd8430ecb44e066f352c4f697fc9fda177dbe162f82862d7b9ea8c918de_Z, + 0x6e1dfa99640fdf5b30603d34c7c97c1aa6e6b7f3a2c52a21fc64b0fcac7d591_Z}, + {0x744e37b511cd0ddcfe15f3581947014c159de81ed055d15a13c7a2d1fa39f0f_Z, + 0x685caa8ff6979a6c63640ac638a3f9c75737f2031bd55322a47384357af164d_Z}, + {0x40e627ff84e1a7a9068b4368770f5956128a4d9e9e33e9cf5e24d9a242149fd_Z, + 0x2465bd6cb20bbdf810e2bc5c3c458cecf4f3aa163a7ac99c2579e5f33417f2e_Z}, + {0x5f635af7f554a17bceb6ccb6e637abf89ab6dadd399189b0a0390e87b1896bc_Z, + 0x2aa6238a69f89665646c0e3ca2ba5f709cc6e14351cf71e1b00ec45201417a2_Z}, + {0x5edad3063c9fa8305978d7e6a4e037c9fa519b8023c7608dfc3b66e5c1e8985_Z, + 0x49f405d07d7d01919da51159ecdad1031a5ac208c026fdfc14d38f633d92183_Z}, + {0x2fdf2e8a45858c12926a1f25a62255fb2d02d0149a15ef669f859806683e649_Z, + 0x61cfb686bb31e2524470d4ad2ae09e3cc91b16305a21d748098feb1d8ce3b3d_Z}, + {0xecdbd7c37f1dffa3943977278da3bb429afdf948b4ea6cdebace3d3be82381_Z, + 0x190b67fb34f7f3ad6afd3d6b6427aa327547d8ac0fb4deeb0feeba1f63d6c60_Z}, + {0x233021b483f578dfa5222f8cccba5766ceee0ac65f6d4a3b1673b302a21fb3c_Z, + 0x7d4b6d44d175d4b593f06f5a6dcba2cdbc4eaa2097abaf613123546866cf4ef_Z}, + {0x42db4e953c2a7a743de9fe20c5798f2247f51db4eabc6f40e86c13909a310ce_Z, + 0x12c1a0764a0b9f3666e431923ce15e7fcd0ded5ab153f0b48d362cca1604e65_Z}, + {0x30d539e2b545fb957e40e2255f6463b52d227c9808472cee6a3d521aa283a44_Z, + 0x5f9eccf747fe6313570f99e845db32b40070acee9ce9e34da7f3c29ca53a07a_Z}, + {0x4bd64e5ade3e2733580a6116b4af328751198e7128f9acfe3a3496b545efb5a_Z, + 0x4d584768900dabfc0dbaa086632b8051bb3905ef79b84d96c01514441d0cc93_Z}, + {0x62d6e771f02e591557197d13c3e77dfa2d1794ac1808407bd8227c4be31b466_Z, + 0x5c6f5607c1808e899ba36a425911fa8566b7ea9cc80de8a80538c0fceb837c0_Z}, + {0x5ce406218cb2852b1d2fe1836b19462f664631785216e87ffbce26030e2101f_Z, + 0x5225f107743c255ab50e7be4a090fe39478d1ef4ff558468559d8cfa87bb94_Z}, + {0x670286486e8dda3dc66b0ed3149be7697d3e06c8279844079daa7e42d5af728_Z, + 0x26becabe7430380c56e320f5ae3329569cae7b0af06fd5327ee23979d200eb0_Z}, + {0x3ef448df33a4394c43e93e5850cd0c5a6dcb18ae1cd865d00fe8ede9336a9f5_Z, + 0x56711f6ab7e0e4f7365ac34e284ac2879f40208c46f6febcc1dcf7146ecf015_Z}, + {0x4b63fc130288e92f2d6ba238caa7a6364804e29829ac037c57df32fbf762bc3_Z, + 0x1eb8c80af55278b4113286c038fff2bfad2da62763bb03426506b869139da0e_Z}, + {0x4e7e998557b29a95f805a6e2e26efc1e970108272d4755738c04f28572295c0_Z, + 0x97cfcc2f447bde61bde71049d8200a74a3028b21703bc139143d81a3623f09_Z}, + {0x574b67898f02964c408f68e9470e7b615be037e40b824e6617f89cb56c21219_Z, + 0x49392d5f8e6740a1b0b7444f56d7a17363f8656c6e4c628678c86223f2e46c8_Z}, + {0x7e8cb50ea5d5c1b09e219e7305bcb601d99b6d7185b1c388aa8e36fe1e56554_Z, + 0x47fefa308645455c12ccb5817da338f0c4f423b341aff4a9d158891a4fd69ba_Z}, + {0x67266dea9e71b4ed2bf24a597a823dd048cf31e725db511edceac72998c9ef6_Z, + 0x39babd65850befde1f7c28e41dbdbb4caf82bbcf3bcb5b33161f1c2960b2d8_Z}, + {0x63e99c2cb9c74eb9227d48065e27abb8f606df8fc83b2c44e4ea38b046bad2b_Z, + 0x60494a53dd13ecf34e08079d343c88fb655d6d810785af81f08d5aa9bcdcf9_Z}, + {0x3cf0600b0f5a2a4eb78c487cd385350e8c7848e3f6983231881d7f1bbe28543_Z, + 0x56dee4288528de609976ef6b903b652127c37b0590e91a2fdbebc3f11df2628_Z}, + {0x758f09245fa4b8b23d290ee2b3bfcede199b4fdb11f3cf2502a8ceedd61b129_Z, + 0x622d9baadfde781e985d9722e0a04715666769a4cc7a9bea0b96d6386be1746_Z}, + {0x38e1a45b81492aa95d7abea2b08b8c14dc0b8a41108b036871fb737910ae18c_Z, + 0x145c611262656385e5ed6243568cd3f9f59dbfed7a01ba11e22bb8bb272e08e_Z}, + {0x206e54ca53a2f155bd4fc45bf2edb77798ae6623defd4cf22f2dd4a7d119dad_Z, + 0x6c94e7f0825ad81680e4cdbcaaaf4df806d57a0d1fb2331926c3fe2b79d22e8_Z}, + {0x56e98d2862893caebf66180e84badf19ffc8b53041eaaa313ae7286a8fac3d_Z, + 0x526306f9c01afd6e0c1198ea5de17630f5a39c4ecd02d8e6f0d613c355995c6_Z}, + {0x4fa56f376c83db33f9dab2656558f3399099ec1de5e3018b7a6932dba8aa378_Z, + 0x3fa0984c931c9e38113e0c0e47e4401562761f92a7a23b45168f4e80ff5b54d_Z}, + {0x450cfaadfecdb8a2fbd4b95c44cb1db723ee5ac9677c9c188b3d7c8eff4ca58_Z, + 0x1a552bdfc0c81be734f1f6ca9a6dd3ab4daa61c11fb53ebb7046eee25d617c7_Z}, + {0x6fe20e5c8a8004e33eafc84d16ef770f2f0b7bace19adaaa150f987d295a34d_Z, + 0x28a35040a2ebe9a14a162d3208d5eabc6e2f3a8310f926bd80be65aa71775e2_Z}, + {0x1bd65f45a35bf62ae8f9ffcbd7de2976b90518b6820c219f039c50043bb1edf_Z, + 0xfb5f0f8659f9b6ed7cb0ddd7999506d0c20b26bbe69d1915a31842cfac41eb_Z}, + {0x4ba4cc166be8dec764910f75b45f74b40c690c74709e90f3aa372f0bd2d6997_Z, + 0x40301cf5c1751f4b971e46c4ede85fcac5c59a5ce5ae7c48151f27b24b219c_Z}, + {0x21cfbc678f5a279ebb6ed124273c8df37eaf12a2d04180403ae6b5ec0b1e1ef_Z, + 0x4478ed6a346d899ad7b0b10350270aad39ddd5b68529297e4c91a54357f0a7f_Z}, + {0x350bfefbe3d864eaadac9cc1195c14159bb736be743aed7380d2384cadd2046_Z, + 0x5e2a4b3ad0e1d7b9b8ef72b10d68a80e5ee691d7db591fcfbaad6240d41da8b_Z}, + {0x529acd569127f73c8d34345f87e96cebfb48ee12a00a3861cda209337ed94e6_Z, + 0x3120671a89b705e5bfd99b0e7fd2118b4914a3ac309b3d74527cacb5ad7491_Z}, + {0x55d3d7956a97d10e65a4d8ffeba40deaf0db0b57f8e022cdb3df6df613f5c6d_Z, + 0x159e59a6f92f48fcf85aa96c1a03749a4c4e2cf9e2bc94dd36796daebd9b8b9_Z}, + {0x405f019ee8f2e972a005c549b0884b5051f63d1e78480b73208dc07d8c65a1f_Z, + 0x4301a3d0c285ad309ff24a12c100ead7f48ba1368143712f32ac141ab4d9e8d_Z}, + {0x376d59b298d982f02dccad0edd5bbd4e5e8fad7898750675ed0856850a7babe_Z, + 0x5233b12bbc50564eb61cc098a17d3d97f06ec7a230380e4c5d3b725cc318eba_Z}, + {0x2f55624af6109ef04b2ed035a44a904ace8627f55889f011f768aabf4de9a38_Z, + 0x7f64209ce7dfb63337ccf3d8c14f4093295f86996cabfee23b1655549aca089_Z}, + {0x3b8965e942bed2714bc2e685fb103496e1e3595ac6a343d6df45fb5ef6979ed_Z, + 0x5b7cac7a165cb69ae103dd9052fb39c00ed0aad47989005aee53972d82d45b5_Z}, + {0x7abfe3accdec1eae1a50049efdd9a8eb7c2921a08e8bf1fe606e9d5a4039ec4_Z, + 0x3af178e7e831f8148244d2d2b284a32991852db6212ad0a9d77540ef648a5fe_Z}, + {0x4983196df6ad7d6f0a8d76f86af3863ad8611374a03fc0fd00793181dbde9d_Z, + 0x204c1f91b70f975a21d24a8face664e496f00f602daaafa69a3b56098a4cf89_Z}, + {0x79e2b91c1531a3b16dbd53e72d94e16bf265cbec261658151acfaea3718ea72_Z, + 0x3d9bdb47e8b148c1c5e9e694ffbc2cf71aac74ae1a85e8d8c3f77e580f962eb_Z}, + {0x297efceec61b3be17565843cae465c52524b4ecd9331a4170f54f7de8c4556c_Z, + 0x6ccef1733624cc8b973ac63dd54e7a53604929affe81c3439525ae5ed6af993_Z}, + {0x44f04b1966264a23ccdc870c8563ad2efcd4c8087b5469b90e792287a5581c7_Z, + 0x1c417f0e9829fa3d3cbb7c3cf4dc7aac04c5bf66ff3f86b833a42c533aed1fc_Z}, + {0x6ff83f5d8b51db3be0bda80eed2e2adb7037f2f58f705e88f0f98197431ac26_Z, + 0x64f59b8428894c2b7afd740866065ded42e716c7d48accd3f117f22768ed9fd_Z}, + {0x14aa8187c9559f77cd1cf96b2dfc949182529936f2b0b4050ea56e134073b24_Z, + 0x5f36508c68b1dc586f3fd3f4e2bd29c6d8258491b8a6aa19ede811ce0d3d0a1_Z}, + {0x95e8882a68c5000d1c2be7c0b43e7f2a6f8de906485241f0285a5c73a27a83_Z, + 0x1e4cb67207ab73bc1e5d19fa2146fde6d03021393b77a55df4ddda1fd28f5b1_Z}, + {0x2ae0704dacb3da47d564514b4c3543505b403ba09a248c6e74593cba1867ff5_Z, + 0x5a4b5818088dc9ef4066b90a8893ae80fc89584f987ec1928ef9d72cea2bd67_Z}, + {0x61a10898a76fb99989e51c0e823cb60b95ec7ccccb917c42b2b28014f5fd94d_Z, + 0x23d8ec1de45366d3b86c64c2da05a2ce3d171adf52ca5522e652ffd0eeee795_Z}, + {0x79884133c879cf07734976fd64de220c5a972e04c2a3afb74c362d6c3beecbf_Z, + 0x2aaa0e6d4891b792b5643fdf09873343cd0e3fbba3cbd0601b481a4083f32b6_Z}, + {0x45f73d2fa82be6c5ccd0f62d2237efe8727c479967d27cce28e42b9a44bad5b_Z, + 0x2fa4932215f72d56d8be5205c5851c9b3e5f2a14468e4a7acace5437c6b27dd_Z}, + {0x37f53f771850f52f9c8f87b53c6bf0c93c2bed76f5fd1d5697356d0b2325007_Z, + 0x50f1a052b79b446fbc7b93ffa1a4515f6c3be3a76a2b0bc5eb8ff327549960c_Z}, + {0x71bd6d23e0d2f312d47582efa609101f15b9ccc571fca8ac4fe3457c67fbc9b_Z, + 0x3b3fdf86bd4c7fc26d60540a6439b4d179dcbf7b91efb0ddc60dfbff9a148c6_Z}, + {0x78219ba049438385b829c13a4993874a4a326c4143de0dd581c7b9956f99b06_Z, + 0x5505f1268dcdd4ee01b77abac3bfdcbf3f0513ab097c69ff777b4a631aaf256_Z}, + {0xb81e924a86536dcf68bc5a2ca2065a61103ba6c9eb0ae4cf8cce9dbe286f15_Z, + 0x653a6dfb51acfe8a844fb8362795e5549d424aed88d3a090366a44f840b5b83_Z}, + {0x441c0d7b7aa705046dc0e07ba5f33a7d9df23f694a05192ff8c2d7be2aa3fdc_Z, + 0x4c06568c0902bb99d428bfa0a946ed0f0ca0a51fbf07cad88e06e9c78e38a59_Z}, + {0x2569c8c78b6d6b92533f29f767c95720d377fa63ad5a3b9827ee0a74b0488aa_Z, + 0x4b59c81d3cfe08834f946d9d57614f5366e0bcd9349475aaaebe01341196fe0_Z}, + {0x3f2fa285a0471647b214eac652bbad9d58a9f2dd2e812aff0210d0d8a6eb32f_Z, + 0x4cdb18e1c2848c2b52c1a6557165bd1a8f55c2f7562f5cc0b326f73c25b696c_Z}, + {0x5bb5141ab4fcc5290ae9151b8045a2cd8391547ce7b3b33cbbb10f8fb538092_Z, + 0x5a36bfd52acc6a83a9913b937ec086cc27fed030b5fa70dbc5d3c12c9515f56_Z}, + {0x3f3fed272edf91aa7f8ca5d70005d390fbc67830ffc69c5fa3ae17582d2771_Z, + 0x459057e0883c44d8776fa217405f443e5954f08c4a5db68e437becaa664a999_Z}, + {0x5237ca6656237a717a739a4509f70db1b9dedbb6cd232f60c9bd8c4563a6b1f_Z, + 0x56c7799dd02896dbe7d69dd8bb9718270549592099569d107b7b49c34bf5a49_Z}, + {0x1cf6b8499ac881e0b2fc7def9bc1a28937033b2fc52de99e75909a620c7a281_Z, + 0x5769cf4f735366fa386b6858043dc99a100f86fbc77b16d57d77766197ba27a_Z}, + {0x1b74b8a6b86dbf9638cdb0601e1a332b8d880753423d38c3394902c57f15e40_Z, + 0x6bb2dc10d2ecbb913219d0ebdc8d3337d644ed8b6c4e70637ef4c7e50887488_Z}, + {0x61e4da415661bba52a4737e2bcde1a837787c4796b2e1854778534f1582c29b_Z, + 0x27c43e632cb7652e8508c9c38e3b4ad0d3dd6ba748d42dc84ec2685e64b9aad_Z}, + {0x7c460a204d23f20ce86596dae6ac9b36734e4a9f7c5b43262c97a36c6a41c6e_Z, + 0x481a11f9300ab4c4bf6924c5ca884728cc361247377065920966785d043fbbf_Z}, + {0x124ff5e55e4effa40daa5b9618d75c49c8b6fad95cbe8c0bfdd83cb9bed8316_Z, + 0x33a2ea15d0f71f58a00de71acd7f22ccf9002115e49dd1f7631faa0d32f9987_Z}, + {0x61c9f8fc86715e95ff43583a865c5a6515f93381839d557ef884a68637eaf4c_Z, + 0x5877daaa42bbab9083b571e12648a9d62ced4470d71653092b6546f4a5acceb_Z}, + {0x70a6b9a9e5d1fcc07dd9ebef6d8f5fcf04c6cb34932d0fe2335330ac6dc8d3d_Z, + 0x3f0cbd332ac56922e886656bee74f6e9bb4bb88f7af7bba9098678af1f38fc_Z}, + {0x41db8a0f1ea78443a39e08a54323743c8897eed1ddc28f41aec6f2655040d9f_Z, + 0x7d4bf32f8f4719c2e4af8b7889f3b65cfdd033dc2f971798a12170f2b26efce_Z}, + {0x62f035e01acdfe841104942d6c8c07f0fbd618cb85998ea24bcc24cfac1f8_Z, + 0x1caa886104b7d753fda93645a746989794cd825c62473b526ea34b3d51b5771_Z}, + {0x441c6f016d270e86c19843727b83b864cec060cafc813b23d7e41e5abb1a60a_Z, + 0x29fece4e40400f3acae0586f4fc8ed535e805e472123ec38d662d8a0b01c086_Z}, + {0x2c791ba0fb0b66177815c98191fa6188dba9c795e34a7c3c8a19086215e3cee_Z, + 0x11123151389d4b330db6a665a560407e7cd8c3807c749e2b0cffd9c3074ba77_Z}, + {0x5292da4ca71ae75ed0554c267747e39c7a129b3b863e1af3ebb3e368439c4ea_Z, + 0x63af6a5016deea8cc674c44f16c63c1db31f09af4fb4d2ea7917c28116661fc_Z}, + {0x3367388d5d1b7758dc3d92e244f227bb8a54e3d9909e7b7dd62ab5965e3efc7_Z, + 0x7ffb4833071e4b03ea755ccb9938487a478248fe9b1158a08f1ac298801c092_Z}, + {0x95c863314b7f18090f8eee602403be823a367a1b416d54c32e5f914e67d922_Z, + 0x159c2824f899171deee23e0ed520d4825bd667983df0a8d45d3a1f7156d91f9_Z}, + {0x621c6e08b3c57404644ad49ac7629832c141273fa1f323781b3395393fe985c_Z, + 0x65d1eb0140652958c4371ebec791e03317d6b2e689d90e304666f1b610783dd_Z}, + {0x54313129bf13993952cd2b31ed06013aba85e74c1b8a00e062031f32188a84e_Z, + 0x680129efc9eb8ec07fc180e8f6877e5f0f9f44e3000a2c586ed4ce49d12a313_Z}, + {0x21ea57a1c8286bb45872e78617853c47b89091670ba51c124afa3362e7260d_Z, + 0x7087e5c1536df233ec9bfe2f983e8d7622892b9bf64c450c9823898e2cc2fc8_Z}, + {0x3793b05b99e7a57d88db4ed0dbc3b771285abcd9052da50f88595354409f3f3_Z, + 0x12164105041c056f127e737c7cd63981e05f246bd2b6b65d1f427019c7c3801_Z}, + {0xbefd345cef5fcae22ac37dacd6b9128cc58cbba3e3fd774e11b421c2ba392_Z, + 0x6209d25f24f88f7876ca604db23d05f78e6b3b67fb033f2f1bee221f352b8c8_Z}, + {0x15fa536045fda4c65ff74f10b4e669ce88b9996c6772288289d3ad725987fa6_Z, + 0x30e0c2124a35e265e931ccc66ce5ac3697d982814beb407144ff6762cb691df_Z}, + {0x38b795bd77ac573576dc204857a488cac2cce19809882631ca2069598c577c8_Z, + 0x786ba555d55ebef688b068bb9186a34a08cb00bdfef51619bbf911890ae9a13_Z}, + {0x6c66853592196c3eb8d9526dc155205e2c64097adf8684bb0e15eb460ce1c72_Z, + 0x1bb4ebf654f4250c8dd1061a4e1b464b31a8a9999ac9960446ef8108a66871a_Z}, + {0x5b08dfbc87ad9c00b88e78816973ad2f9c10c70f2156908892cc7b7a2a1fd30_Z, + 0x1151f407a77e2556073173d8f5c9ff561d8a23742121ca15f7d0ac391af50ea_Z}, + {0x309190eba106aa6ead54b5ca5817969aa68b4b4c627700799a49fc6bdd32ba1_Z, + 0x505b6a2bc7b0d78ca6ce2abe7dfb7312369918a4599cccf8a615f6701cfd851_Z}, + {0x89cc205966af08acc8910d563af7443d5dfbb5d88dae79c013c678c65dcecc_Z, + 0x1f8cf955694b246a423ac725791231257b88936e00347ecaa1e17045c0ab540_Z}, + {0x480086b61a80c36cf1e1a350baf554e58ee8d9333186b70c9c512fb9e9d5a84_Z, + 0x511edfe58f8d36a6170df743731da1ff525cfd5108be20e30ac4183d1281570_Z}, + {0x3caf14fb1d2e90a13ad4eb091250fe37133aabf6029633e905e5a93ead41dbb_Z, + 0x49122aff6059dfda19e4b973aba5ebe3804c91728936c6381c1ed1ea9380920_Z}, + {0x66d1b8fb2cabc46cd79741ce1cb7326077ad8ea3227a6427244bdd3806bdadd_Z, + 0x4a52eb74f4d5371ba3265dffd61c844f9e68d4ff0b44dc4936182f9280bb66b_Z}, + {0x373330c5afd53c31257fcc9050fef873e15ea9f81d9810f30744309b04e02b3_Z, + 0x5889806607b3dc97a9c5b0c8a2f16d1792099a22866b879ca480cb89a11ef5c_Z}, + {0x26840d0ec69a22c6818ff64b8b14633b531508c866e21d1dc9239778ae9e8c7_Z, + 0x157971f9a6e3a24d3b307be0e7c8cd352e2eb5cad33cf276270c0f309ee63fc_Z}, + {0xebb84848f1c38c19a754d1b5d9460e39624dadbb30800987c9419c0f933b9f_Z, + 0x517b297cf32f4064e6d6c8e761ba8db89809604a701c7b3aa1a9c6beb370ea7_Z}, + {0x25780380bc0795ed0dca727c55240f1d63593e552d224adb40df2d3721c0f66_Z, + 0x10215fb5a893e0275e9f1f66b217dde35addee91ed0e8f7d79531a2ff57b8c8_Z}, + {0x243e1581cd1abfbf18c31c19a4c3d1cedfe69a40bb57b607c9af2717eefc742_Z, + 0x1296c27929f14535718c3a4ebe045f00afdc60afc74c7d398d8ce1b6609dc0f_Z}, + {0x48babb8649e054bc8e0b902c89e6940c265f48464520649502ef1064eb94562_Z, + 0x3235be7852b0526d1a16f6969ec0e5b0e09cedaadc65863dea4e47f4f398264_Z}, + {0x592db7c27e63489ef4bcef2eafce89f40067cd9a1ba48bc3dc76b5fc62ad9ca_Z, + 0x48b7711b570cd9ac65910e75e752f4b751fdbfb4091a28f59b8c046d3d9f8bc_Z}, + {0x31d133456222586ae42a9ec7ce8539ee04afbe0b2ed00a2564dab0798d9b55d_Z, + 0xa77c52fa1fd718db5c83e7fda6d7d4d9aafef9ad95cad621470f2b753729e5_Z}, + {0x4651668379883521e7983aafcb93811b4a72ef2975b3277773746708ef3e3fc_Z, + 0x512507f3f544d80ba5d47f73b571881e8d70d7b1d305b9704bdad036b7abc47_Z}, + {0x26069e359b2e847affaef604f772f36224608b7642245d0e643889ed231bddc_Z, + 0x75ae1ec379f074ebc91270077c74b4d34347ce183b676b4dbe100bfff143b9e_Z}, + {0x3196d01d1fa11dc3803b4813c4bbc6326869f61410f2bd14bc0f570d875aebe_Z, + 0x20313217cac79875bd2a503db1e86d1e5559911667a02524759344468d9561d_Z}, + {0x483256607f75f06fb126addc60cadddd602154cc4782bcc08351a48745d0b97_Z, + 0x2950a7e500ebbe9775f08be37cc2e62ccf9030de18948d1bab07a4a9173f75d_Z}, + {0x65f07b6050a2fc6eebe2c29ffa62f764060f7f9d3c82d2cb5e4e368aaa442c9_Z, + 0x562c9654b646cb84a213b41de203c871b3eae0a05c9c105a66a53c319c06373_Z}, + {0x284870f6181c43f3b01d94baa9c5b6ada0deb861145523ad9169580eb7bed35_Z, + 0x5e03e6c40c1cfa3cafb01fd0622349871832a9d35499d06408a83edc1b76d02_Z}, + {0x32229810a52137f0e6c3d37595c46f6132822d4b05f42674b48d7a7ac3ad85_Z, + 0x7babde959a0cf2c53ee59fc52c77c3adf899453f077f441965629f9aead30cd_Z}, + {0x1ea8b98a6b85e74e0a2fbc18b206e290f3ed94ce99ca665e8e2351dfade990a_Z, + 0x478e93c4724115fb1648c8d5347422adbc1a0bbf962b2312e14aec80e1be742_Z}, + {0x270cbaa08c79140c85b864475a0bf569cc03ac785e57f543dc444f37ce746cf_Z, + 0x3a9b8d894016680ae9d1bf3deb931d8987d4d8d8bfed45b81ccc595ec79046b_Z}, + {0x6943922708b8ae5b40dd7031ef2e487abc4ac39a3591368285e83d6c9c51f4d_Z, + 0x5f157c37d09634e8cbfbef90ea50af59815d011e419a691c67ca3402b5efc33_Z}, + {0x48ac6a80979fab4912cf0cb557d917a0bd68825d8658ec100496eaae6ff62e1_Z, + 0x2b6931350ab183402e39476340eb1177b7006f7a552915581e29a79bd7203a0_Z}, + {0xe3adf9517d92ef22d1e2a787740a292ba32d5ca69faa9e8675f63ed816dce5_Z, + 0x36bccf69bb12dadd610145a3399213248d193660d8dc90a2e206f23bf2c7997_Z}, + {0x5e6c8ae5afb2fa470f767581f3d578cf6a49547e4b78665edfd45776948bef8_Z, + 0x6cbfc11953dd7e195d2ce74e52a60df524767b44c4608bdd755be4bc85eb74c_Z}, + {0x15a576a1242d39300f0db3ad770983825988da0457718ecd596c63a0a0eb4a6_Z, + 0x69a42e5f6f5a63349b57683a4609bba90f556a1680fa1ec3b02ee7d3211f903_Z}, + {0x274cd14e4fbf2ed07402e8ad8075b320c5f76b7ea45ea36af523e95ed63ab50_Z, + 0x6ca640f9557c5f2d8b27f6ce95b108880ff4e4816b26b70b6506114389ce656_Z}, + {0x4d8284e132e2fe81c5f71be1e3c79ab51b229e2c56c323e207cda179999d123_Z, + 0x116cfc00e9fbee1cf16af6282123cdf20eed13021c2037ef4c86f94eb6e6cba_Z}, + {0x4056194fb5643e97991942ef5b63cadd89080bf57a01489c4398aca03f0980a_Z, + 0x2e2cddb434fa6f6da7859c3d518f0ced8795eea043a6c9613fb3e020103339f_Z}, + {0x5d119d5c5ce532afc0875e0ee9b026d878c8773d34237f90a0d0670da6f01b3_Z, + 0x4a79fc025ce076b6a4742fbcc8cad313d0a8220c58024a41a5a674c0947e64b_Z}, + {0x11800ce4061d99b9d53fd4138802335258f7798c5a935c9979f5a949ce1d483_Z, + 0x36745a4741a5c7290eaa8f2a3f9ec955ccb7ca323272e5d35d35c2a724ffac8_Z}, + {0x4302525bceb97fa642fd5560a4a39fba3d2c06f68e6aff3332ff1854439ebb3_Z, + 0xe31edfd081ce82f8177b2d7d96e69851d09e908c2517114ffb37ee12c0ac64_Z}, + {0x2f5fcbb96f0a66fd3bdfbcc78bda361cb812570f50e7c476533d56eee01c0e3_Z, + 0x527428a34855b5695c479d8fb7e831a299f7897f36682a74169cc60d160df2d_Z}, + {0x52167df045ad0dc999b98de3d035aced9da4434211149b8cf4bf20e774580cf_Z, + 0x19051d2a1ad3fab190c5dfaf45188b49b4e90cca22aae54f0a785562d3d3f41_Z}, + {0x541b5332491dbdb2b6f6bccceb7634970c046963891fae936dd950f4432b961_Z, + 0x78fa54da996a51e3a9c06091d58c2405a806649da2bb1f323807c4eec50eda2_Z}, + {0x5f11e973da659b7738f87ca5bd4f3bd02207dd3c8d978f0d3e83fe81030febd_Z, + 0x137aba7027069f62d25caed416e13537687bb1428e71e5f0a0c52d52f2e65bc_Z}, + {0x15ec941ee6c2110b819b5541be52981c09d83484c9dc735c43f39f5778718b4_Z, + 0x4561826142dc5b56acfcf605a78a4090472bb61235bcd605a765e05d0a7e549_Z}, + {0x68ba398736d659522f484406110b43c68158bf4992094acf797a38979c587a4_Z, + 0x7c1d9e1702e28afddf22fed7a7a79df4315c174d0c6c4f4c75bc77d9b56777f_Z}, + {0x67889cea31c81a429fbae643a4fce0ecd690a5c32b99397e39ed6d7a08702df_Z, + 0x7ea277c80b671146c9e455b98f42f45b941ac95ca2d15c8fa9ea82ee9b45e01_Z}, + {0x596f2c68390ac26505d3c2eca5c77d46f8f3acbed192a2649d8c525a58d2334_Z, + 0x49f3bd8c62c610d5c19c52d970bde24b270c4ff7ae900453b909e72483974a0_Z}, + {0x567779fb8b0afe592cea284629e3621ccfae3c4d7d3dc559c9fed750591a395_Z, + 0x6010bdc33f1cdb374facefff537e7910b72a1120502f312a7ce41df0d552ddd_Z}, + {0xcebed0233e810aa6a29a8b0829d28f1c92f303d14dd73d6b12da98117dfc7_Z, + 0x4bdd51e1192a00df23aa8d0673e4915877ca41ddb8c9eaf21d39dd167fde7b7_Z}, + {0x4c7085f066adeb6781596771972b188177e63f2e2b3788d03e033cdd5af1f06_Z, + 0x2929ee89f525862b0cedb3ab9b5166e1680cb77fb4668f10a6a3d76b5434566_Z}, + {0x760e341bd836899c226176f47685f69438270c150c6fe7744cd723cd1e72359_Z, + 0x1bf09f2f1aac1a10ce8bdf20d5d178db747f01a4aa0aa8a5e4bfeef562cd94e_Z}, + {0x6016b94c00b54920027ef64902c61478244b1936337d2ad41d9a8d43dd6a4b2_Z, + 0x3bf3dd9bce7f6d6f120de87fcbce6219340b59c2c1d75ee0d45105d33aab1cd_Z}, + {0x4929e44ff692eb944d1045bee96e750219cda3bda0500029f0df49a1db30b5b_Z, + 0x2e138dcbd092242699004b4ce98764ffe4e892841f56830af298581cd1e523f_Z}, + {0x5972d0e526311bacb70a04e88969b6c63c7399b578f0dc28bbd00d65ef01da7_Z, + 0x76b22bca9ac12d26530e7b0757e646beb3bbc5680d0f3f82fb8ee57ed4b5e39_Z}, + {0x2ca0a42a26e26934ca2d48db960b4719113d87c5e57fb437d557c5eb4e03ac7_Z, + 0x62778c02561d4ec5d83a132afd7763a8349207c6b5d01fba70b56ba660cba2e_Z}, + {0x5137ee53f076e21a2c23da09f63c0d275408c31e4634a6b6373be5cf13e6c00_Z, + 0x14fb446c077beb78e04de3282a63bfde12f9af85caaca4ddfab506cee31c0c1_Z}, + {0x7d944853d1627b63f560aeda33acf640d35a4ee4d23a744957a2dae9d5b7c6c_Z, + 0xbcb411a210710acbcb9ea12680d89e3e4e652228b6786d3886e95f4d9e6970_Z}, + {0x37d412c2ffb173a728477446b60b2b702d07a5243cb5fc8963e623a5ee75843_Z, + 0x672c79968908f92cd0cb0b4c65ba86e8f359b015623a89441e1bf859bba84cb_Z}, + {0x5b37f472aa80398bff12cc74c8ee784c4fc89757292580d3a498bff17e9f114_Z, + 0x7d79da1aab9cfef58a5f3d1c9ec466956a45f8d2af0c1da6dd4c93f720fae6e_Z}, + {0x25c09b3f1188c562571536202eb0f5fc4b9a7590417b8ea58b4343685d88a63_Z, + 0x3d5b817c73b37e9a1d24ca923351359b42ced2f3cafbcac8c2d6322dc767bb_Z}, + {0x32e60904e73f9756f71e0a918d302aeca17cad4acacc81bab15702ab5ff78f0_Z, + 0xbcf4c0204f8275072f98a65b09ac58b87cdc9c70c4edfe99fe18870a3a5459_Z}, + {0x49c35575996c1517d2daed90d2fe4a58e674d6b4aaa7288d0642c8bf59e562f_Z, + 0x57eeee00adea4ca80eeabab57852cbf03f1a57e21872cd44221e0550b9193b8_Z}, + {0x10e1776b4c2a867bf1b028c6edec224cc6616c747e272f49e69b67b02a893dd_Z, + 0x8d45d62ec8e627b56950f2f7622a0438647f9e9f28e723e4a37cebc039a1b0_Z}, + {0x79a93a75ecbe943acc964fd39ecfc971dc6555b2bc335e7b53f52f4eb16cd36_Z, + 0x146132a68ce2ca8b48363612226771ac547eb3cf52b6eb7981718faac08aa3c_Z}, + {0x6b22d32e0590e169504e7f19864fd646d0994e7ed3e578a5b88f6e095913439_Z, + 0x68c3b22d859fb85e5c8fa0a8aea932285945b230957e603394333e9ad5acd82_Z}, + {0x71ce5ec8286eb8c93b8481c6d19cf0a288ef4da4397e9c80f65023e516bc097_Z, + 0x54470babc742780cd8a05499026e738ccbf81d4170d1731734de68a8e5b402c_Z}, + {0x27beb13a43bc6a1f6ce046da438b0beac5899ff4d57962dcfb6476b563f74b_Z, + 0x14074e9e93ee45394dfbe833998b9d1691961f8ba3166224b36404448c61bb3_Z}, + {0x6b1de6c8f161aa6509a1dcacf2c0aa1bcf6ee9d9b40e032a9d72f77a6fa298c_Z, + 0x5e9312eb5b59d6cbadd7d3dcbc39f1b5bd9a8346fdcfdf1107bada6f9cc048_Z}, + {0x32670fc3fa43bf39974ba72ea51f0d045d92d084a81fe5282dfc8309aa900b9_Z, + 0x518fee521bf1af62356aac3b7e53fdbf57121e030c6e9572b3de69912ca4eb4_Z}, + {0x4b9ca363eabed9c66091a347375f7065cd28f49f914447de7cc1461f1375f1e_Z, + 0x3a1a3a2e5e7e72476befe2571ece708052d740d02cbe6fed58740968ae609c4_Z}, + {0x4cc6da42863a3deca62fa218b7a3b50e034eb4bafd393eccba3f4cbe192ef10_Z, + 0x20bfa683c884f203713953b26d2821287ecd305fa2cb70570474533fc07f918_Z}, + {0x87705353c44a5ccec8de65cf5433be6b3d9bd21eea49b60e6c907cf1a67a6a_Z, + 0x112804b13eee56e3b01aff75fa08fa8374c44fc461aed8a30ad54acd09c24eb_Z}, + {0x6cf6eeeb9d339c0a05f72fd5af73fc7588e6d957100ee8999109437bc126cae_Z, + 0x54fa257cea22032eac272fcd034dadf2e00d602ef9e519cf7072023c130aad1_Z}, + {0x19b32925048c5519d929650c833661b452ef7be7963fab0b6b328ab7dd7a28a_Z, + 0x1bd0c14a10bf9b88ea61011c0b2e64d07da151c6203800d5a5d12063838a510_Z}, + {0x12a5fc5559428bc3b4eff97b21b63668b866e0722807f1db1f19696bacd9b0d_Z, + 0x4c2eb07f0c24047a3d73b560144f3fd32c99d6dbd9fc7cd2fd2a72a6e4b24c7_Z}, + {0x13662b7a7d390aa76eb86a7c3bff6d9913eb28db6bd1a7c42de5cdad2e35ce2_Z, + 0x40626aded7f56f82cc431ae30527b096f57fbfbc04d3e12a5abae3edf301cf1_Z}, + {0x255825bd49b8a2cce114360bd9c8fe8c641af64c8e7710107213cfcb006f43d_Z, + 0x3619cce4482335232f9e76a1460be9d296f2d468d26e4f95a78c71524fe59cc_Z}, + {0x7f83009eeed4f12f54d341bbf06066480cfcdf51dda103ac54d4bcecf6b3b31_Z, + 0x4269519d28faafd7fd68bebfd8404d71ba05d62c4bb6d65d24aa6802fb84ab6_Z}, + {0x2f325650eb316646b4eec903fe44828fcb11054f1bd42ca3a77f7e734110b35_Z, + 0x44f976082271016f9048e22c507d97d628722bb431f8d5cc1890524e6c386bf_Z}, + {0x750b166bb6edc0ee80fae39c7c106879036738df2d79fb2294e1c21e9a24d6b_Z, + 0x54f8aa297a1afafe2a17a3254f45861167414327e918d17003c6aad01d0b24c_Z}, + {0x3aedb10db9cf3285cdeee375879396fac1fb50dd259e1716f8c01e66f67ca72_Z, + 0x7feb9400f621f58c21601f23b7ec7c94a9b6b193c1cd74a8a60846aedadd359_Z}, + {0x4ab7151702de76faa493e7a0b1ac20ee4d10c33b83fec9477547cb1236973eb_Z, + 0x63f1f122e3ef3acc46b0915ac69c3f5772879799cad889a817f55f5853d1235_Z}, + {0x1675ead0d20e5bc3a7a7331999a87ac4c916ae29669e54197bb02aa6364520f_Z, + 0x4d1122da90d49e491922d9b533a6a668e2f65a2737ebb391ebb29fb7c1f8a9d_Z}, + {0x2f7148111ef53c613157aeec12e16a20f13481da4390b6ce18a85d1d8547087_Z, + 0x2eeda779ab395597651d2a0b833ccf53b10280750139916ae2baf4ec57c633d_Z}, + {0x4439c7810e7b2ba772b701ec3acdca0b80c9df23047710b87f7dc3f13b337d3_Z, + 0x5029cfe704c602a8a4662af0a5860ec03fb88f046d0e3400f2ce7638014c621_Z}, + {0x2248eec40b5732a6a488b681f093643af7937071bc73118acae295a32b51b05_Z, + 0x1577e4aec30a97b648de4d0b19cf8891151b4eb11f8de9c6d7312f091552e19_Z}, + {0x4738424e558d4e0d87a3124ca02ea24f0adc6b7a9768b0d3945ed2a6104857c_Z, + 0x33576f92aca3f0c8ae689c3c274c2de6b918940d86a6852e02fc99e35d1614_Z}, + {0x7829edd8b866ebf7baaf604ed13d19a9797578f44bbc51b1cd67ca53803e96b_Z, + 0x5559040a6083f2af1f9133ccaf5bc2ce06e56ddfc7dd410e9635c0116b62722_Z}, + {0x7f927b881f2cdc05e1a69e40bb714af47b630d1425f08ab5d574ee698f33d51_Z, + 0x26a465288e96572de303203bd38f4a03031e8158da0591cb037c0a5111d1056_Z}, + {0x36a65598552f8753580d1655417d645a140966e10a1e1663015f9fdfae44881_Z, + 0x33d5bbfaebf59eae72b89b1aea12ab2ba3c9617f8c3baed1ec16bdf668381b5_Z}, + {0x403becfa545c826782026ff409cc16c9d4fe428f1b5b6e630c92439d2fa5fd_Z, + 0x47bd6f2bf5d74f710ecb479c79b01fb774fbdad590e683a415cdedf33f71dc5_Z}, + {0x3a747826d241b877d3d56b16e0b810cf088eda4fd6048da174c9991a942a5eb_Z, + 0x2c7ba19b0a3486a2cdb84d4a388d34beb077a0e467ba44590166f93f6a09d2e_Z}, + {0x3d60cd375842714b37bda89dd1f13a7e0f3ff133b522209617d031bce05a537_Z, + 0xf77f216451ab01ad5226844d2162a7f32744688bcb4325445539e2ce5cec4_Z}, + {0x235bf66f67c9100e7f0e22bb299cdfaa603644b240e0770aec7e7fd163e2a65_Z, + 0x37110b3fa83ece3990afca2bea8d5ebb3c7aace60a0147f8e6ab733e2f2b4d5_Z}, + {0x3b796d4eb69a55471fa86108f787b3604874e92b6887a7667a6c2bfbbd9a42b_Z, + 0x4912d6dc0419732ef82cb3278415851d4e2d7ca89e0f4d7128cc9de51b810fe_Z}, + {0x48d53516dd51e49faa7ab46c8c10db1befd10f23c6a9d9bc3640a2f0da44518_Z, + 0x73a2fb3d064adadf21aa1362c04affc660598f38a9e069b3afb74d0a99ae9ee_Z}, + {0x48c32cff161ed145da0d5b73084897647abb777adf65738559ceab6939cf3e0_Z, + 0x3d99308978e828f857c382df32b472bda81e8ec8e30c8844077ba6d6d2ba903_Z}, + {0x2947ff091a8ec9684affbc9a62e09e598841c4a6dc638088492aa47dea57097_Z, + 0x19a2cc97975e547f97a4d02e42f89e6ced6f5a953cfccdec347867d26926541_Z}, + {0x1960d85f30475615f82484eba0bdafb7ea7cac3809f0518a757d66f02b01676_Z, + 0x36c8f77baabf0cc8805d993bbe62041fcf4e3239cf9d53278a4fbd91e75eeb7_Z}, + {0x2765f28074d21d5a055340b6d40092d2bbef807e02009fabfa08ec0b9bdf38b_Z, + 0x7fb189e0553d5df52b6843661814824b3f3cbebbd54988f042fb256c6bf30b_Z}, + {0x348836cb2aaa00212f4b1a4e2d7fc5417f246bf2fe5c9a16ebabda449e2e08a_Z, + 0x3f7276fd7d69e0d55ce5ee1d2d830534a27227fe0b6d8a36c93f9a78b872969_Z}, + {0x7afb9d34b6a42ea8c6d870e4b8191c274201dc1f93a1a2219a2392b7e345a31_Z, + 0x42bbc20dc7115e0758b364a110227b16b64ec58fc535ce5ff1a9ad8b8a09fdd_Z}, + {0x2cae0c2afee1767fd4c66f52e1f176d217e92e89cc19eb36d5a6c1715f641a_Z, + 0x5335efe2d9bc3667d25ea88bf76438a4d6ab9ba5c512f9da7d0529b79b62d83_Z}, + {0x1cc5fde334707723c3a06f00c106db88664284a2df47bb6b144d9f960aea3e2_Z, + 0xdbbf610d100316938bcd8bcd078513512ecb50d4579690dbefaa419c05980d_Z}, + {0x54e90cb8f3a2998d2675c5780679e06c0556b1e618f8fdf07f9a4b2466fbf1e_Z, + 0x16248676b6f06ec5e34994bc3115f85c8147b54f34d8500928f2fdc051e2089_Z}, + {0x525c70a2ba0dbdd68d75640f47f13d0d415ea595f7030f533f4625c2a46523b_Z, + 0x58292c8675e5e1a438f49e0c05648d9a7aa997f2f1fd77d5de1944afe5d7eea_Z}, + {0x54726d78d099007393348787a03107ab492e59690a46c87fb02ec554f2353bd_Z, + 0x53b54b77184ba75a3391e0ebfa6d6974db028f3f8e34bbd5460759a5848dd76_Z}, + {0x4ac81a66903537769d3aac6c483ccc08535cb767b6b5e1ec8017a7393ab70ae_Z, + 0x2cb22b77a8a05d26f11a4dec80eff292633aa05553a889c5ab16b6ac6e2ab17_Z}, + {0x21d0175349e21114988a2930b9a607d43245783cb4a0c984ce27f4c4206708_Z, + 0x59f1f49342cc5496213d3329bf4ca7fb0044337449c579bf53147a1dac9e67c_Z}, + {0x167f821b381f4c8adcc39789475fb55ba639e5124fe75f26dd61be396dd5e66_Z, + 0x22002c87d4cafb47ac9d27286d5cf5ff7a6715d69814118269b0729be9e4b3a_Z}, + {0x31010666c6db83a9f9e4db4c48173afd405783ac53852a6e38a8ff925528843_Z, + 0x1f466dc9b5d9094107c741dbf380f9fd98d8549cd50f67169901516f8cce74c_Z}, + {0x1ad3875769a5053388a86edc85dd80fdffbbda6a456aea497ff81a0f1f6707b_Z, + 0x2de7cdec5e2bad56a71bd2f33a4ae4c874e1ad4210a6ac32b443cfa34e85b1b_Z}, + {0xc489650fb7f459ce09cd05a456fc5a46b849b38a671298ed645bcdaab168b0_Z, + 0x45610d092b8af1c43ceed474cd17f7bbee65120aa6fa4d37f949e7e41f25327_Z}, + {0x394256a5ef4d7af5459587a0bd2edb8acaf5ecfef2563c9a04daf34a4abe4c6_Z, + 0x1ebee390dae1403c0c53994e1d064fa64e20fcb45392e209b2b99486a559ffd_Z}, + {0x410a1511fead6151e9bedb089b9832d0fe01fab76d3f8459929f767525aeb27_Z, + 0x361f0a5ffe09fcc3ad4eff3f5e89508ac247af80267100b69de3c59df561cfa_Z}, + {0x38cd437c9f659e110a869605c182ee9fdc26de36baf559d9229e258267bb734_Z, + 0x624b1128ea7739bf1cbd0e423af92a4884323c868d2ba0ee9d362946edee2d1_Z}, + {0x78b126e50b7042d2a019f95cb87a3213c664ca1bafe345999b1e9e2dac1e608_Z, + 0x19e398196b22f4488cbe854c614ad8c353839abc5ab3a4f3f5c03c16ba8a198_Z}, + {0x6d3a5ce91132f385a91823c5c8046c4b638f5fe63357424410d901457cdb867_Z, + 0x7b80bae16d2d487e122495174f7a70992bc5dafbed72bf84127ead7c57302bb_Z}, + {0x32d053a904dc4d88fbe7d0b96e0cbeca22a00aa5c79c753d52b0b60abf31602_Z, + 0x3af6a02e5cae6d6490354ae51185149e3fdb6d0d9caab90e95ff58aa0c40377_Z}, + {0x49b1fbff5bdb0aa6938b066dde0ed772c0d81f9eff52e7fe038b0ccbd78adb5_Z, + 0x1c6e57834eb14d507eed8b36c81ddf92fa91c242467061927a742fafa82b43d_Z}, + {0x2f28b8994ca6f234d9293d26196b43b9d1d5306844348c4a638102c05de85f5_Z, + 0x759cfb172eab065d477248b3569f4ff5791055f01e95fe71b94b8e615d73c96_Z}, + {0x3c2ee954ff534f856f59188fa0f29ed8a022aee0cac52d634f6dc58cd514d70_Z, + 0x22bd162e74925f0a876bd8a206b8767dfdd7c898576a73a490f138d9a7f99c6_Z}, + {0x5763a7cab001e1aaeabf9ab5b9b2fffe6cc2b299ab04ec4933da74d960e1ab_Z, + 0x715ee4f8ee93ab5a1dba00f0a6abc4eec47d49b61254cc27fc36a031e32f0f8_Z}, + {0x19976ad8d7b7f47c785408243a227401996b36e47c7a78a7bc7d4256233ba9a_Z, + 0x896b713c5d7777b0703821a73c1d9a4c3755501042120534ff13990975e1f5_Z}, + {0x61674b992c29827186cab5ff454758dbbed8e89bc23d0bd33193afccc3a04bc_Z, + 0x38e1020744c13903809ea30a0662fdb5226ae760cdcf10800faabec452e00f8_Z}, + {0x2ea2d48bcb83c0c9cda4efe11f07165cfcbc9ccd26526e5fb12556316d4b1df_Z, + 0x1d2d68b74ad384c5c4a9c85453104216357bfcdf635680b40215f0f800974cb_Z}, + {0x7881212050264c40c336ed3a15dd2cd868ec9a558f5b728869eab66e8b8ed54_Z, + 0x21aaefcc8ad8a161b8971d6880321781dbd939570c540da4c330922b8c81e9b_Z}, + {0xb6be88ce0461d20f59c5199573cda0170b61decf6e8e69a6d32f1695adc4ed_Z, + 0x5536e4808370716f2bb3423a9a49a38ddbfe91faf3b7a35eb53d3519238b6cf_Z}, + {0xe5972af1655eb6dde2e8c77cc58044299922441b5ee41ceaf5cafedc765bcc_Z, + 0x550282f37a4783dd60801c237045992d6fbe82a5902e7d837ea25f6f98c7b3a_Z}, + {0x7efc1aad1f580d8f50274f1c114c40056be19a8c96fa8c4cb5bf85e1e7f3e4_Z, + 0x2689f1c3898b114d668be6413643ee9f879913d40c262541fd0316264c60a4f_Z}, + {0x7939db98037f59b0113e9d60051f75ac9c3cfd1a3eb535c73e2d945068c6c5c_Z, + 0x410914ca8bbf3c65cdf3e9772ca790c19131c50068d34b7346c10260a578a8e_Z}, + {0x225b77ad00a2b83d26690190b74867326eca4f55bfbc3a13be036225ca3b1b5_Z, + 0x411faafef89042ce6beb64309fdaff70fa53e9d32d79a21e7f82f80e79ff05e_Z}, + {0x1501e64c99c8b6658b0479f2c05c9142d246eaabfccf2fcec8dc4399539d8e1_Z, + 0x3bab1e3339e42c9ee66c65b0b20236fdd9362d3ce786ad3a9779ab578af50a8_Z}, + {0x59b907b941f24fb8ea2458153e55f07534b388e835af7b69f3c9f54392a335_Z, + 0x1d5438c4f2f68a417f3d56f916d899a6ffe910f5f2989ca31687f1b10f60db8_Z}, + {0x2887d08a26f484546f360e33abbf7a998b7170a5b30070938b84f072c676bf3_Z, + 0x62a78e8d00e5d3a59e2fc424ffa08961567ba1ef24c8531cd7bceee6074a535_Z}, + {0x6e3cc8076b3d45377929033af35aab0c6d19ae4fd47c0daf844079ca04c46eb_Z, + 0x7b90f338e4d848aa8f19d0b5c3bca916a2a9024acbf14bddb278bca2aa39e5f_Z}, + {0x34844dacdd3ec54a3af328bb9d67715ab33425e194ac9977ca02ef22e8f7a88_Z, + 0x3c1affc6372f32a1634748124f9e1a03c4f0c993971da0dc28888b0801279d_Z}, + {0x436b192e03a49796cf9bc5e93c88268b71c9c24f9c3a85322bba634ebea309d_Z, + 0x67a8091ef69d62abcb28ce5df4dc7d53f8dc2b9690344f75ecd03a6d9386044_Z}, + {0x592d25b68baff87a6d7fd41ff0dadbddc1bd1316683de3b2d677501c0eb14e4_Z, + 0x27ad1e1099683f54589010faeefb19e38569ace43653be8787a42b0591e7bc5_Z}, + {0x89a5111ae911512ba62e87b97f643c0219702f235c70f62c6678a129302009_Z, + 0x557fa3d98e9ce7b83b47545013a4498f3de43787fb66b1a54521222242f7c1b_Z}, + {0x1c9b5e53377e72da5066cb08566bbf9ec31ec1877f455d932cd9b1aa375d34e_Z, + 0x72f79555a8bc207863f32d482fca54692825449fd8963fcea3de3a8183a739a_Z}, + {0x574a6e05eb14591729515be239ea8c1fa9e12d4049d42876f76c8ff37bca03_Z, + 0x5f99b3af43ca68c1c73e8190d5f73c8de162ba643d7d5f0cd73cfa8135db6d3_Z}, + {0x513fc5c2e16505b2b25a2f284e167d5401194bcac0dc3ecf8b7c9acb560daa1_Z, + 0x687ee7a1a8954d08d3856e1a16ded808e419e789736d3f55f79f7693bad69f5_Z}, + {0x53d48bd1205274b1c2b0a0ceb3d21c5fcd7c8892a784931603240b288a598b9_Z, + 0x35387abd7ea59c9b956de44d36533cad1f6668c438d666651695ff3862159be_Z}, + {0x213eb1ea99e08825110dd61094eb6e8145119dc1c507636f068730b1e086d44_Z, + 0x744f6853f4f02f4f042468d0739e0c9f64df720b87ed77d1979547084ef7a89_Z}, + {0x735ef017d091ca23264ad0aa7bb9b2be3309b4539605e79ed4a652ccb2fbe3c_Z, + 0x7f0ccc7a5747c4e921fff97d431169f690763427e2cfd1ad74d7a0308d7faa9_Z}, + {0x3f36babc5a30070b610ed97db44997e6d9115c9c0579ad8f75d295a17130001_Z, + 0x79047908a2474e32d5c712a07bf5c4ad522590bb5d6cefda410d30528e12ca8_Z}, + {0x51c04907ae88a5926b242fb2862cb1f2c651a94e6caad5bff8601c079fded74_Z, + 0x10a585a269f460aed43f54c7de13cdf623fc8de5957526997278be939ef32ad_Z}, + {0xc1e1bd626a735aa2c065831317217ecce68e377eb1f67e54ce2e97bc2ef2dc_Z, + 0x53c5af23a9b482f420be6dfd37b6886154cfd130794098e1f51c1885ac2556a_Z}, + {0x5aff3b30775ae4758e604a4a6262803a545f5ef4e7855fa245ac6a6431a9ece_Z, + 0x39a4799e5519047f29333bee9c86c99bfa8056d4aa381c396c4a44331fe795f_Z}, + {0x3d753e9723701a8e9d99b91bb93dee2eda7ffa5072fb2cd5c5fd99aebcdb299_Z, + 0x15798bf5c17d6d5880fed1553af32dd8d8baf2888c715a886575448a24c7975_Z}, + {0x6593e5078466b07a4222d2e544da826d2c583c9cc5f2eaea148b129b00d4aa0_Z, + 0x11b352b08a0a61d3cd67d1dc08069dec3bde907b3da0f56de5011b956bf8744_Z}, + {0x7a6eb353c5be9ff03fe4a06c01fb71aad2b38144179a291ebcbb2c2417cca65_Z, + 0x3de3ecb12f2fa699b46a9d399abf77ca17bebc3e491bfb2542dd0fba991e2bb_Z}, + {0x2c7ead583d6c32162091034a9eddfa775b4e84b8bdbea939edb2a80dcf64f6_Z, + 0x461790ce40d9c276d962b2a1e9a74d66e9d7335962e234e8a2fc6963d31722d_Z}, + {0x34285af023d9b4c2c2b88e8704bf2c05a9b553b00b2e70ff05f8c2970cb134f_Z, + 0x33fe678e7671760a83836107428dbade68c3593fbe568f3f8f1b2c568099c44_Z}, + {0x6222f720a24466263db6a11842f117fc4bb78da6705f140e48869db3e087441_Z, + 0x6eff5b9bf3aeedc962bc5a24b66e7bdad2153450ed53a058bf2c8dbf2907693_Z}, + {0x17c6ec5ea206eb97cbf53851e37ce391080e0d2bf1e5395610f79ab0503f7ce_Z, + 0x3adb71ca3523d88ceb1e365f12dfb24895453c14daf0046b2626cddadfdf5f7_Z}, + {0x70859f9771a713e54974ce11cdaf44b0dcc3e9befa0c0834908d877eeaafd27_Z, + 0xd18f794bf0cc0623b711e7450030424e52326c45ba9b03341883ae4828a5f8_Z}, + {0x2a820cfd0fd4ab0871e7b303cd545a3086caf8fa818c087a4017197da74efbf_Z, + 0x5f992683ff37f6c041b84bfc01503d333ac9763505cc8f69473da01812969d1_Z}, + {0x5b0526de2c07fe7cd73e3884f642d57a0ac5e13c68590ed03a14e530616e8c1_Z, + 0xeec69d0cbd92c9fca31ec967dba848bec368e792d6678797946a5e34fe3487_Z}, + {0x6cf6b3efee707210cb3a72f1e885c3d0953aefb43e5e148c740aa1641725c61_Z, + 0x911cb630b898e2c1a9115f9e45bafe3b819edfb1eab6e15612d14289939984_Z}, + {0x74e913de55f1e46143cb2ecfc580f8d3d3908f200281322b84e21c989cda293_Z, + 0x761d2736c9ac7670ba905bc2629c6c0dbe988820a4454ff415ba68710f7df92_Z}, + {0x44084305e0c911a40b7cbefe5f13cffe9a99375d1a584c4a2200958050af7a9_Z, + 0x249c83877371564708ea525b64b1e7e12785460d83364446531c9adcacba5f0_Z}, + {0x2bf71ad4d1bee1a67fb300477029f54bdb0e09f78bf2ac2e8afc7465a7adbcc_Z, + 0x6244dd6cad282539049be57487bfd9900bb0d5da805d02b535096368fcb4cd5_Z}, + {0x3a62d8f763b62def36e4089458046a49c5ecb91b861549530773e0548ff2bb_Z, + 0x6a10a03ba61e6ac657270465c09aa9526cf1ebe96bdecdf0e7000476a47b9eb_Z}, + {0x284eed3a17c51e0677d4fe897f056abe9def8af07a4630e6ca5723e2aa6677_Z, + 0x516a06ac1d5626ed03d2eee9de6f60f0311eca703a99b0fb31b9c66b01c27c7_Z}, + {0x2a2c63b16cccd685f731d06fe93ce2cffb358d34d03dda9a7368185c1eb0c32_Z, + 0x7180baca0ba81284809f92eca1654cd76b925a9242e5d5e0f18d0a55d13c6ec_Z}, + {0x5f9466017ec09769611389ea5370ad68dda936d3f5816c9e928ff9574abf9a7_Z, + 0x6619b5b145bb5f4f29deb7a4cd68ef4da3995312fa6537f0d01684da4267ece_Z}, + {0x74f229babe01b4962b3307589c1a13019134b1db6822698388bebb55d21c30f_Z, + 0x156ae857ab3279f754facba0db36398dffec8c31e5e160473198f2f891b7531_Z}, + {0x334b9fe3a5fd99bc966ddd1309698fd32afd1f235062f2c275b6616a185de45_Z, + 0x221a60053583cc0607f6f2e6966b62fc9dac00538bb7eb1148e007a92116d2_Z}, + {0x7ad710ba002a67c731efbaba2149d16fec5d2f7aa3d126fd9886172e9f4ea30_Z, + 0x3a10f8e902a7a13aec94d66415347e1314f9bac83a7db176096b809b25ffb86_Z}, + {0x4306dd0a184a3283c3097ff8f7434cec80912e9dc04b7df21ba73fda9f8e6d8_Z, + 0x6d42bd3d1a8dbddafd09e872e2aa3891ae79ec939dc1b382196bc21c4ab749_Z}, + {0x1c3f2124e1135c32a426d1d14e471edd9e0f2c7bd703ee123cbbd608e8c4be7_Z, + 0x3cc607a3c3f1ab68dd5fa56c65996002721b8ad8ad4b0dd9e5b1467d316583_Z}, + {0x294af33272ffcee0b56a436de1b73759cbddebef4c07888b42c2f92b0b68e1_Z, + 0xd837164311d5dca8d37b99ef9eb22708643c83d1cbdfe852f63ea07b06fbad_Z}, + {0x753bdb5439a19bbffdfa02b1dc24e8368f22d0a8276b109c11e6feb26f56f39_Z, + 0x6ed396231af93647633eab467f1a034f38e76823eb85baf97cae56e2dcd9f75_Z}, + {0x5674f0cb892b733fc0b50e121d8679afed0a925c32594cc65ffe83bebe7748e_Z, + 0x7fbf0325dd38dd94905adab2c52758552292a6a103d9edfcb11938828e828c8_Z}, + {0x4a8f053573a0a74251059d0229d89b6660407ba0b491779fd10f87a5117c81f_Z, + 0x21b70112485398bf67ec9d733df24a1df30dea718a93b786f41ed04e3ae3c5e_Z}, + {0x726c01ec4a08df8fc8de173311f50d4f3b97c5a9cf68c1536146f827db95ae8_Z, + 0x15013cafadefa7f1c4e4dfdd70bd4d3979dd18bd7f0332572ce2a3fd8773d12_Z}, + {0x38ac0fbfa98937257460db7e6645d7e5112b6fce7234813fc8a704e8ade8da2_Z, + 0x73c0109f86048aad08c443f781ae60ad13b99f7b9cfdf3128fe6d6eeb799a7b_Z}, + {0x6f6d3a38621582ace092eb50ecfe9eff265df141ebdcab8653299116fcea291_Z, + 0x4a1bf3f39bc919c8f1b720a0b1ce952cad17f2ba98308ee6b76dd9b6f3d7b75_Z}, + {0x6a307fc28e1df8d9ad01766419e097797d65cb674436fa1c8f012d3de2c2a1f_Z, + 0x26911a635ba824db004875d79dd84834a97ac12643e42829015bf88c1fd6f05_Z}, + {0x2a74860e3336d6db916555894cc8028f41508812925db1925457afe40257155_Z, + 0x5f8da573f4c39816ce2dba8a20224223a7cfec53117ec78973930c0e9b60244_Z}, + {0x4d2b49e1ed0799f719b8269f092cb489a466a645bc0ccabafdc678864c176d7_Z, + 0x5410083df7d256f18cbf5697ae5e52c31e075d8a3b27e21d6f5177ca882f6c1_Z}, + {0x110ecb9fbf6c333d168cee473cc5ad98809b6cb9eb5d1f6cd28ab5fab504fd3_Z, + 0x7e3c54d7533d9f8c3310f219dab0cc3ea4d39b418a748eeffd6bae2b8637a43_Z}, + {0x5be4d711b80da70e6d3ac493250bbfd16f20b25f31919b3a91cf14ffbac1096_Z, + 0x7f55a0919f082e8885f1515e83c5b39b6022404503507498e1b4422d79c43e2_Z}, + {0x2605125b95ca4ba93a21cbbba5762898a7cf9e988f07ab9e64cb3868e3b139d_Z, + 0x62f0ccf55b9fc0eaf9736fc8ee484e2acdbe259813af9803cf815829a5e9d3b_Z}, + {0x1092bbbf206f2a3068167c3dd99a72de31e206f6c504c071c8214d105ff814d_Z, + 0x309f489f68a62089f53b96df5d4fbc3ecc5a1a42eb7ece0e49bad17ad490ff4_Z}, + {0x2abdee9409d9c92559ca3f4e6bddd649c31aa09b90bfcb4a612af491241e18d_Z, + 0x3ffa8eac180a29de3f8a69efca84bac046f921f5725e96a6ff0530be1436aaf_Z}, + {0x376313f27d00bb1aae7ec991745efe6ee28c6b50de0c6cd9845cc4bb4f83543_Z, + 0x6a8e0a9389ba528b156fa94ac090a895d7b795818d4941c29415d9e2984c547_Z}, + {0xa80380c71bd466a696b3f0fbf02817c9459d9798f4f3899cf32edf647fe066_Z, + 0x6a09805e814e7cdfc76eba4b79f1df5ae559e0f0aba9f728d3cba4ea5c57471_Z}, + {0x223694b921d247d989a79b9b2b2f07496036c40cb043eab074a9d6a2cd2ffed_Z, + 0xc247217f1b1df35e30d9e15fdaadf42d6fb0edd3a5a7e265d4cdc426c120aa_Z}, + {0x102333620df278c6714bbc880fc087db58c1b9b4d77ed4d61b32a74bfc7c3e2_Z, + 0x6a77d37727ccf71c2caeb151faf4404d4b94e9047f9f0a7c3966367f3b53c65_Z}, + {0x891626f466536929ee7eadcd18b41925706dedab7528ed5f0f7abf039eb9d2_Z, + 0x5f73d11c141c933a35b2d0d06e5cbae614a20d17dc3b439f8bcdc3413c5ea37_Z}, + {0x215c23fd3f073f870e5e80303967391bf173f8adcdbeec72d131c557babc203_Z, + 0x10634332e9d9439a321597dc5b0fac9ff478834c3d6e281735f21a4a5e13266_Z}, + {0x21ea0bdc1332bc36e6aeb43be9071651c27e4ea2eadec636c8d818d4af72a36_Z, + 0x3a523d9643dccc6bb9c7c58413312caa3e60ba9c7c7f0177e0f3f469a3241e3_Z}, + {0x60deaed1bffb6190beed40caaf2bfab5e43d3707aff7ad3f278d571aa247eae_Z, + 0xe41f71ff254c1418e6a66992af307789fe04d6606fb2670900bb1a089fd879_Z}, + {0x1e1fac4a1646253fb1332fadc21fbdd3e3a24a840d129400f520ae4116a4cf5_Z, + 0x69c406f9f46576afad68808de0ab7e8922b6226af748e721d9097e21f1800f3_Z}, + {0x5db0ddcdf79ffe74d6454c12d2bc60b06776db03c75dc413f5be42ea9a91b5e_Z, + 0x134c3d6c699841f17306835bb193785228ffe7ab212a01a861c56b086a18cec_Z}, + {0x626814e320fb5bea505b248fd1c1389ad586c1cfe04923fe2f83173e915f4f8_Z, + 0x7ae407a926e887206a8b85cf485f1f327c9bb8ccbb6897024e2d122877d8ee0_Z}, + {0x23186237dc7d3b570cea645282ad4c359731bbfa54e7f036426bf6493812cd_Z, + 0x7d1fbab7e61a22d3b00993290d9f4cd5d820061573e787f66c2cff9a18e1eaf_Z}, + {0x54302dcb0e6cc1c6e44cca8f61a63bb2ca65048d53fb325d36ff12c49a58202_Z, + 0x1b77b3e37d13504b348046268d8ae25ce98ad783c25561a879dcc77e99c2426_Z}, + {0x13961b56b9fc0e412e468c385c22bd0680a25624ec211ffbb6bc877b2a6926c_Z, + 0x62f7f7792c77cd981fad13cb6863fe099c4d971c1374109185eae99943f16e9_Z}, + {0x47abd7308c70659af3f00fafe6837298af3cb530b6c2ba710ffd07a6bc1ae98_Z, + 0x75d0c8a7377aa9f0663d0c124a5659750847afabc29e39893fd27534a4a03cb_Z}, + {0x2c6276b764fb398fa555857dbe0ce0ec18fab7a233bf23851295739801f0585_Z, + 0x5d8f4897ce44007ec5bfcb9aeb78b8f6e1d40a514f72d213c9300d2770d2b8c_Z}, + {0xbce48a9bf1ba2a868ccb5ec7a281b4adfb35f880a2217d3efc41fa17ec8430_Z, + 0x436e8dd6339b88207b24aeb39c4497e4cecb1508e26706bd72c5450d7e362d_Z}, + {0x7335f3501c51509f0ff19e0996eb27993d2ed57511d741de1039fac608efae1_Z, + 0x3e0f9b7f92024f525bbe638105385ec8cadc3d9d0054c995d5f293c2ecaf2b_Z}, + {0x2f00685b604089a426a0f8025bd4de158a3431d7a818f92a8d12ca3330cfbe4_Z, + 0x3b78bfdc9be254998ac5bf09faf4b3ef85e12cc8392950f069de8d750ce2a6a_Z}, + {0x75164bdac839e799a01b2c97a3c70a063710cbaa60b965fc68e1b7fa9321887_Z, + 0x366a151b55dbbeb05372baa1b753340bab038b82a8457007519406fb005743d_Z}, + {0x4cbad4f94c301d3110a57606374566457d6f2c089364e6636599a521cd52efb_Z, + 0x70926c2c5d53c80bcee63dbd1fda1258006196a5e371bd7508b5c65abfe6d40_Z}, + {0x53fa2bb938fb756579e7496527c6e65c47c59a6dd10c119a55d6cdbad565ff6_Z, + 0x9eee73b8f85c216cc142fbb9ea7d9bbd7cb5c58d2ddcefc9e8a8bbfef55ed2_Z}, + {0x313e19ce77eda23700db871d0a325e84f61ed923e4cf1882d745970a5c9f55a_Z, + 0x64560398fbb3f03b5275bb78db48a7a93890962a9310ad5db0d6310c405141f_Z}, + {0x14d6e814f77b60e99db467e3e137124eb796cb075b2a12a9a06353194a70780_Z, + 0x7a56303bfe394ab06fd59708d58511c0dff923cc2a3f7c3a33e6bdae011ebd5_Z}, + {0x4b98d86614db4ea0304ed019aeff950392b2c9a276f41143f48564138670bb9_Z, + 0x543f62bd0110123b347b89ce1d9fbd794380311adca3cc99dd371fd071b670d_Z}, + {0x3aca36203db64aa6f09b811d1635afe815ddd7451d00145838ccddee9aac4e5_Z, + 0x4ae269ce42b4ccb03d1994aea01e15ba1b4d87709fd843c9dc9504074bb2b90_Z}, + {0xefc778f6a5a796cd7469732da7cb16f8626ee1461a4c2dd62ec1ba0dcebaf_Z, + 0x720e57f989ef2bbfe2b165f1d37fb6643c8de78c736617aab046056b08c0a80_Z}, + {0x7416789c54a831ceca6e04e4c370c4bf66f86230550ffcb3792e726baaee2f0_Z, + 0x7df1bc5ce8bdba2b3fdae7f786280186eb320e7e6f882c5079a155e641c4241_Z}, + {0x376f7203f663be987ef0f2c2cba79b6c0034f42f425c0275540354b60899ac4_Z, + 0x5511b4813e7efa8e0a3eb586258275b9ba47e3d0186cb980e5adfa74a2e7364_Z}, + {0x19913b2836c5f13169f955ac17d5d1f67db6b81e763feac08dec4d3fd3bdd8d_Z, + 0x1a76e77a6f09cdd668946bbabe23d99dd82a414cea788265d30d7c1a3fe1994_Z}, + {0x246584d812cc7b30321272c346bb5a29fa29f923e293cca648986586e7b3a95_Z, + 0x7fe28cb7cf2f3c11573dd09f892b435e9329d173440909a777fff250fdc0771_Z}, + {0x1b0bd9e66e77b8141a657358264c78a4672ee0eab767f8b8992a088fc57982b_Z, + 0x387fcfcb97824bf38cfe46106190a71b240999495d9d7caae0f9b8cf41188bf_Z}, + {0x3f78596df9a080bbee9e98b7bf6c5b517afd962d47cf72b138aebaf656e3f70_Z, + 0x6969d5e25f5a7f3b229cc3bbd5a4367bddb94621ac470e546863970a275c28d_Z}, + {0x32126b03e8781a20a44a92e05c16be70c501bc4e0ee8c09cf0c997ed628c3a0_Z, + 0x100904de59fcaf55c18b7e0866ec50715655793238fde686b9b8d8636fb80c1_Z}, + {0x29bead2f77a4e4c744d4e83c7e439ecee03980a20006da9a7d3c57c7b714636_Z, + 0x44be13d072f7c4f2396dea08a19cbe4acef8a2e072e0c038dde69804ebdeb40_Z}, + {0x4e912475957c58f8ae120592076e6ffa50a4405ff41f5bfb8d20b2c0a28efd6_Z, + 0x2be9f3c03d3696749096b85667fb5044bdc216474a9ad0d8cbd1eace70627ca_Z}, + {0x15df84721fa5bb2994557ac6cab5444bb50d539f9627bd373e77b965c1d1690_Z, + 0x45179abdad31f112c1cf42ef6f17e641d9eb6d19b32b3246c1465f2665fa840_Z}, + {0x795e85f1015d6f85ff303321b38dcf77452f6fd2b5669df41d715fa115ac938_Z, + 0x674da8ce723640f4aa81f3511a7d0a0d225997db7c581143bc009005b365d89_Z}, + {0x2b4d941c72210bae832efc47665bae7cf783b4c1904f51bf5dd512d72bdf108_Z, + 0x309a8300fd432c05f8092778078c26d13719e0354eafc4dae1ec512993c9491_Z}, + {0x5d297cc4ff962982a39ce89842cd87ae01875bc7710524f263eee3ff5ed498d_Z, + 0x36d5336a6f51e2ff5c6995bc8b87defc61a05251103eca8b32ede509374e9ec_Z}, + {0x26815b43b017a41a5ce4f4971cb9fc9035c45f22703296a6996fb98adf65027_Z, + 0x9433f389903812b8399cc6740ae13abdd4ae8aa0d38b12d1b0a5a3f90ad2d4_Z}, + {0x4b3ad725435dd69c69101b3bd073f8ce3e8559ea73f4d9d944c88ec0460285f_Z, + 0x19416e704d0a61305b5f1fefcf037438ae6872c409ed787af13f496eb5a94f9_Z}, + {0x3c40dde269f0a840d857a2dba52023521e3889be597a843f062055fd79631c2_Z, + 0xd4a04943ec16198cef1f05de15ecd6f1bcfe33a41c1502d12487e5244963ba_Z}, + {0x7d418df02fc1dae693c9de50932bf1f182dcf58d6ec0695c20726520fbaaa1a_Z, + 0x60a0699f233b5cb79e121ef4d060088e1262ccdcd6e471fc6d7ea0febc21c45_Z}, + {0x1507ea3ce76d90dc3332dfea74d452b6fe76670eeff3ed208ab049c6ab12715_Z, + 0x6095740c9a874b6242246e6a98816a239d8ea4d35cd08219c2c2f1870d68ff3_Z}, + {0x5458ca1221c99bb056c14a0ac7f77ac45de5416a8639abdc70e567df7ce6f49_Z, + 0x271b0470a1ae9fba5abd17a016e079684532a17c553cdfcd1c17dd07dbee098_Z}, + {0x419375e9e0e03c5461ed4a1fb2a40b1c4f9ecb56947c44fd4ce47c69b2e6663_Z, + 0x3b4f29ba97afc4e1f691cb8e1f3bfdc074334d7f9b2a464e10dd647468102fe_Z}, + {0x25380328908ad9f12905c311507d8125dd586607b232ac544adde8338c6e130_Z, + 0x6ecad58b36d5afdced17f889337a9cb1cffb919dd6dc03cde7500eb6197e4cd_Z}, + {0x150fa7730e4ba5106eb903b351a0fe41fa5f0eca3b961ae4697c3946f5f111_Z, + 0x44c787122ab138ddd4c02e1a61e7ea4b6e24a145f1f4cf7022ffdad4db999b5_Z}, + {0x40bd0f774627782f59bd79a92ba928cefffd2f703771552384c2da1e278ef2d_Z, + 0x134960affd67335df6e6ff910a4813fecab596aecff7a1e81a3a2e1ba838d2d_Z}, + {0x5f254557c28f25ba86a7956aeb684c03ad4770d1e6e85b313ae414a200ef5d5_Z, + 0x40d767bdeffafb30d40abad22ff189d1ab122eaae73ba64dd5ee2b84abc007a_Z}, + {0x103e4a12d4c51f5f724051a2834c64dc8fe1a9a6cfc860deecfbc525c3432d0_Z, + 0x3603dbdbd7e45020d7b5dfac3b7c0da26b10abbec47a771f7afe85e07da9f3a_Z}, + {0x6129433d07b14f2ae1c71e332738f945c4d1536f9c89cf58eb9dd789578f8e0_Z, + 0x2640cd3fbbc579cd64f64a87f9c63e49e27289951bc3640dc6f4799c47667b4_Z}, + {0x5e731a8c7eab559932b816b92deeb7cf012183e3012c15ee9adbcd172625e18_Z, + 0x1c9fc9522014434a5dc9513d5cefacd2f7eda4ba9cf46ca5f941db0fb9c6aea_Z}, + {0x67cf7e4d99b15c3979a012ad4646d077b65507073c0dd0da901e3cc4039e6d1_Z, + 0x13fc08992a882b0aca6af476a597c3022fa91af7477bebe4554d11af7fb172d_Z}, + {0x3d954d3bb9b7f8b10655d0e2b471e3e3fbcb479a061a7604b92c94b99640494_Z, + 0x54b9002f0e61354d6a9bee607f3aec9575b2fd227c20a131c92c3ebe847d461_Z}, + {0x6761c711ab95f185943ca0dc50a11c00ee7d197fbe4b6f45d2a7dd81c641bec_Z, + 0x540db2e2b21c6e22a1e7d7daeb47551101c9993b517b88afbc2d0c54d491a60_Z}, + {0xd835e09e0c1b11265e33a218d5a0736353ee48b534a9a3caf3379509b3fb80_Z, + 0x7a293b0f8e14d0e93822c446fd0d2cf2d6261ab61b187583b85456218ab354e_Z}, + {0x5b2431a65cd0c76a94eff28d4d77257639c205b29e0372fc3613ec19650d46d_Z, + 0x5f5508dae26adfd5feb5ee120eca9e086ef696fb2fcc57ce897d408a9210bf9_Z}, + {0x217a6c9739f11f41625c4b0702d7122ec1c432898d1b0501692e3c021e6cbda_Z, + 0x2d1712f78263d0b175c8743e7c77d8fb9d15469445055672d9be4cf259f76af_Z}, + {0x70af5c202d525c1ca0af1db4105045874c30936850bd9590f3920bd135df01b_Z, + 0xcbc6b907b3c70ffa773cfc09a9a2a6ad8e6a0b566119a922c609385dc8f010_Z}, + {0x4583e0265583b943fc4e26643d9dac77ec5e784790e140cdce0690d8457dc3d_Z, + 0x66761e99440da31940fcaf5c02e261c8512db629cd4ce83d5a6afedcbc6365d_Z}, + {0x6fa066b6070a2e9bdad2e3c88f152af7d217cf14c4c0e2c0f0cb8fd748f2146_Z, + 0x2463c1ada175cc6e3356bb9c96844ff6a67182e4d5fc26f334fe007bc7a8644_Z}, + {0x58158da3994a8e95cb6aa3f638b6981644d4fde0dd1badcdaf5626ba2d4ab6e_Z, + 0x3d3bbd4277c9793c45be600e8fedc66a8fe55becc2c65bcb7c11b49acf26a73_Z}, + {0x2ca60069324a91e1a38d3663dfdb47a27f65c3b7e2d81de1f3f65905e842e09_Z, + 0x3f2acbe89b8a75cc67a049d53e09e291540f7899908f4ce92c293fb0af144a4_Z}, + {0x71e44d03108b6fa350f2a644ab2d845dd04c410cfbb14f9f72b7b54a52dc76_Z, + 0x5a5ba61d27308a8ff7f0403c5c46e443960e7579622c75bd112299c54a434de_Z}, + {0x7eb7d63173c028985094d2c4581b73ab150d0d3f2ba68203d8c639fc013758c_Z, + 0x3cd7c33bddc8fd4342cb1239846a4679cb2b670d88d2d7f75360f887fe93b6b_Z}, + {0x4ad4f2d6ec049bd21d655c633843af4a8ea1d12eb9352aaa044419d91b26296_Z, + 0xbaa70201e2b2858a3508ebbb753617e4f49aab631ed2d18e8c3fe78dd29f4d_Z}, + {0x3669acaf65b4422e1dea26d1dbd1b92f9ce238b61d12a29c3138a9dc5772048_Z, + 0x657c3a618e530c8c3f57a5d6383474fb3158e5c2cfbe1592fabb6f3a22469d4_Z}, + {0x6d4c0ab00ba75074173d4bce4fd82f8623d7a60444157632d975c2bde0b4923_Z, + 0x140a60490c60f77b99ae87687a8025626bc8a61d084a546e0fe757e4c966c3d_Z}, + {0x54681129618499a6409b1c52a7ff03ea56c95e4c5a8fa4d86f10358eb2e9707_Z, + 0x58d39d95a230a8323bee498fcea3f15ee089be54cbeca2e63e54b764b08e890_Z}, + {0x2b4930b3d47d9cba98980ad642c8cb0baf7d1e09c13a2d715d072380bf09400_Z, + 0x6a46ab2f87f23b11d35a6ca43040c73543f53e972132277a76ef1eda32cdc34_Z}, + {0x249c9c191d82d25b864e6debea7ccf5c39b4a355dc4761510253522ba8ace67_Z, + 0x114dbb1963bd906cb8965f149d1d2db7cb86fd8be03591ae5f2dd3489f9f3f6_Z}, + {0x3cc5f417362f8bb2791e0494d6bd2fe339fbf33c83ee7f70c484b43986dcf10_Z, + 0x2c47a96a94993ed1cf1f07b8fc68b2ae45fe691e2ef4b2c4767b9027d645ec9_Z}, + {0x4e55c8fde1b0dc2e2b6c5508f5718eb29edf0e97ae55c2470196dab114732bb_Z, + 0x2eefc04348a85bf96bed3dc61a709cdb0a83294ff004d6813335cbb7aee7d31_Z}, + {0x6e9d46468f414ed3dec19473dc189d1a39640acf616234d88a964a0c32cd86c_Z, + 0x49dd61ffd5b0f96cb69d115649132f558256166a798b33c7545cc64882d3add_Z}, + {0x78bc532b10fc07098403752011edcdb884ec456a2f8899edb88023bb5e43dbb_Z, + 0xf8676f26b26f97d1dae5737b46d0dacf32c3aecb9db9df41a860f85c6c59e8_Z}, + {0x3a2903e3dc45f773bc3ac72728fcb09878e95a0f36e7b798fba2c77fd8f2abe_Z, + 0x369e5f8b59923476657a3d6767c6cc6645ea18a5853ce9705ac3c193b873d70_Z}, + {0x5b715fe20bd24e17eaf74bc155e847a2a6e63e01374cc4853b469ed2304ed7a_Z, + 0x31af84b404359c352663e76a58e5c98f08fdcc4b59990a74a3b81154ed372d9_Z}, + {0x3510d1233edfc535959069b71fd8c510fb94caae7607a83f17a0cad1e9c277f_Z, + 0x1eab9a957fa3a9df1f8d8afefcc98be4792a5bd61a55288dd1eae454ca66f6b_Z}, + {0x87b84c4f139f80f8e52ce24393d895350a56383dce3aa6efbd9757efb70a4a_Z, + 0x1b5032dc6eb8173c4372ccab7300f1c6bff5d52934058f2d6899c28971ecab0_Z}, + {0x3192072e020733ddc8312a7819740b72d8dacf90a9aaefbe5e0a629ef95a25c_Z, + 0x85fe2f9877c5f99fa170a6f2ca74c8f51fc5061f9817aa6c065bdc3834c9a0_Z}, + {0x7e1240bfbfda43377c9c94a364fa768c95a1ace83f05641e30e7f55682d3bf2_Z, + 0x162fe3ec40839cc13f342b0efe8edf4f46ad5557a945db40cfe1d59c8e1abd5_Z}, + {0x70debbaf395d56b5283cb2e340e04fa9e7b67cdc910f15ad679a5f9da45689d_Z, + 0x2dabf0bb233e012ed28c7fce1feee8182ca6b637f0ffd13388a26174e836e53_Z}, + {0x7f1985327c7a51b43b0ecdc776e2af9c522546059309aacab74b3ddd51e65e3_Z, + 0x24cffe79e071b15fd98e33e0449aab000d39a9141bcc6891135fd27c1a255b6_Z}, + {0x5963fe0e56c20ba85f32067681d283f9c6beac6fbde2c38dd88bc5094a045d7_Z, + 0x43b2a353e8dea35b097c7145efda102673de92d02c082511cbe905f5e2983d_Z}, + {0x6b0765d38659e149a115c8e3b94c0287fc1ae2f191e03f08167825aae8b2499_Z, + 0x23aa97ce8127273c38fc9242ce987968e074d6dee8f109144566f39a0f82e76_Z}, + {0x96b91d630f4bb0e7d6c99efe035b17c3b91864fe890efe16bce192194b430b_Z, + 0x2c35efe88ac0c3f0f75f0035fa2fdc84967c0768ad3ee4662572a2d2cbdcfc6_Z}, + {0x32c8087df54545bf151c48a7561cc6626b5a8cee958159bd45bad5457799190_Z, + 0x3fd90e79f86b4d62dec76bd049e89ceb796cf5edbf7dc7a5f590ad17757257b_Z}, + {0xc4443e69dc789f85c674bfa98f6220e107c89a2ed56f39b06a0af6a2e0ab1a_Z, + 0x17fda5fc4354a26a5dcae479028e62e361deee63f04fc42ce790481eebffd71_Z}, + {0x6372a79060e52a49eb5b2b33a51bf4e9291656c70e6c8b86b970af8436f0cc0_Z, + 0x2f25f69b54b8c99dae634912fcd0e4662a696bd9e84bc8680d950074e816e59_Z}, + {0x1d1212f13fb36271dcbfdb08f91a518c27878b599971b6698124960ed84abde_Z, + 0x6e882ce7bb6ec9a57af2adba1524ba41311b927a593c218a9b727965534bbc9_Z}, + {0x411525f3c72367b57275e47a680853a1c7483f1cdeda5efa25792455c281941_Z, + 0xab0aebfc77d7acb1e82cb5facb68156e19468e6de71a32799afb0873eaa861_Z}, + {0xca0ae3bb1d6b50f26d8f08dd29d7ae1a4167ded349d7ad73456e50cb1ad1b_Z, + 0x51ee2496bf3c6ef515c516fd82b4d248566c29142e4d7f6fa160a2c1427e354_Z}, + {0x39f896b3cba0b8aeb8b7973b57adb975cf412acf51f4e2e0dba239d7ed3a131_Z, + 0x762df591bd79c8ee306797c4ad13734937a89517bb53c406398f65b40bdba6d_Z}, + {0x1bf896da13165fa9c669ead6929c44f61361a24cbee12b1024be5a0cff19864_Z, + 0x6b411e8c0411077a328f621f8aa408bd4c9d73dad2b499402430795a7718b97_Z}, + {0x9fda6699915b894342d50e584750703147ba4ed605ea5b2d1395b7111bdd7f_Z, + 0x6faeffb7106923808f12a0ca3a85c64cddaad806dd969c90900c218528cb21a_Z}, + {0x30c257bfb5a3f4cfc2406a1cf0da757bc5ba1fa7a5cc27abef7bcbc36afc9a7_Z, + 0x275e30a10990c7273bc3e62bd3d9487c2d8ec436acfba6ba06a34d92761613e_Z}, + {0x3c18d7011c060f09a93f833b195644cf118c046887385373a280bf82f4b70db_Z, + 0x77391b5f2d28b7ef75fd811aa9fc97b1523d3f2467ceee79df261d325c5f125_Z}, + {0x52e32781eae622e13e96c778d7bf25e9edbcaa8de5c85da593ada0d4380e5fe_Z, + 0x171b3dfd6c8e1a3c2aa3765c38f9e1486e5baccb9451c228d8ea38f655cfb0b_Z}, + {0x281545e88937786549efc352c25e2c994817d2b1aedcd003c79d0bd626514db_Z, + 0x5dd931d55fe2724f164a275baeba8c2e5d61d44675c6697fa72dad05f85045a_Z}, + {0x6a454b70bfd375c1ff4a5e9d2a7b500c3bdf6121b16f56a0ccdbb4073e12b99_Z, + 0x5812b5a39850b16364cd61e949b5a02e285d96025a6376dce578bfb9700ce1b_Z}, + {0x3432b1c8b9da9feb6098d296892842835854a61ba5934a0b78cd3b31c500a82_Z, + 0x5f3b1ead34dcb6e87890ef8fb349f09931c3900d380069c96f25ed9942d177b_Z}, + {0x1a40e292116c4c08eb3f7239b5f40c5d45a5a1fe67bcb09cc41d37235efef5c_Z, + 0x71f125041481517ee5a8ceb9db852906657c2088a5bdb4ca4086931c9f17bdf_Z}, + {0x157c1df7ea04cc62247a5c1f465e0dec62c985922997b12426742243b161e6d_Z, + 0x21af16b389c76b3d067f500b0c7ae96323ff244a30214b671f46fb0e8a2ab15_Z}, + {0x9e72f8c84f2c94f304bd24d110a191119d476f849b69e24e42be641f8d84c3_Z, + 0x4181896441406cf25fdfd7ed916d280842ad6d2e93f703d28ba9d00284dec28_Z}, + {0x4d21bc613726f30cd426926a49ae651a9a53b755bacb3f25c5442c22f91d07d_Z, + 0x206e4d57c48d63ba6a25b942fcc6c4abba62d304f3895977f095a5b1d8b859_Z}, + {0x6889df1f9a1ffe35e43804beb85ace5150146fc7d2937c5cc3e311098896564_Z, + 0x3a2d46e249f860f3386710b3ed998198bc944fe1b1959e52afb53d991bd6063_Z}, + {0x5f0c378443e572caff8eb4fd607752d171354ff9d025ab9ba0c3baafbcabba1_Z, + 0x31d4361df3799be7c0502c958acfe18e399286435efb97da6e4ffdf277853ef_Z}, + {0x7071b515f67b24060d9a3de742a54d84e82735deec91dc9dfa04026f612bea0_Z, + 0x3a661a2dc55805508873ff0e5b6be5bf307f0a604630afdadf88c111cfc991b_Z}, + {0x3827cdfa765694bd3b447bc1afef9c0c5594565c32497262013eb4b97f65ef0_Z, + 0x24f7148d111016d6d2ab9f54f10f75c56d2aff9ce5da6db6fa14f7da285b882_Z}, + {0x7e941bc3fe6568fd5f0049d3a2edd4aa4a021eeddf1676535d3d242c17508eb_Z, + 0x2bc250721f54ec146071a7be83b55574f936a74e93b56e7341b0b927c6f37cf_Z}, + {0x5a9bda630732c2f095a1f088b9acd7526f4d7657b588c57a34aca9eaef7b673_Z, + 0x1938ba9061f7830e7994b213e56c761bc7efdf0372d0036b5130cedcd9c5789_Z}, + {0x26e4e120764c9164fe4224ece58a87c4a5331116d29f38a9a7df4ef4392cfe3_Z, + 0x79cb5a3f67a13051e0afc2fb22c816a02f6d728eb155f59e8d7685010e87ebb_Z}, + {0x180a677de26e87c5b8c92a5f54615cef6a3e28ec45df72d2f56fd0848742c2e_Z, + 0x2ebf878e85a7264c270cedf44c12331827faf56274698fe81bcf27f4c3d5872_Z}, + {0x692cbd1845010fc701f0fda041f6f74567230e8d42c6dac0d214278adfa0bed_Z, + 0x5ea8cd6361234bfb5551e9447b94b4926f928ab2f1b7a657d306ea79b67ed1b_Z}, + {0x420e0fbd48935ac36a90a262c90affe020254a946fad0ea0a0642b61222070e_Z, + 0x700cfbc7fe76f5f62a125ec467ee0fc69ed175c0fef9accd14c673c483c0f98_Z}, + {0x7f33c220700c354e9a50cf7f5afb4146d810b428bb1f948632706b0a485e88c_Z, + 0x507a3cb76d1d1d618e2d2a9e8683a6d81a87af36b32488997b941606fed9894_Z}, + {0x1167220284cceaa7b11c56fb0395f0a55b628a5df7ec8dbfd7a103d9044c05f_Z, + 0x656bc6e80c63d246f42c79dc5f4436a48c35c77217810e4dc77149bf197bdbc_Z}, + {0x72ed3cb1f85fa3eff8e0c6b6b5f76e55d880657ddb63b28cc306659c0f43960_Z, + 0x701677617ef5c6f78ccb3a2c5f05fb3fc01accaa1b0367a1fb988465507052d_Z}, + {0x3c00590dc0c634acf60ca6b254243869e9d41beb438427538023956843cb827_Z, + 0x3bd96f1f05814232828baa730719213b8eb29f0cde1e5f3c127f8efb690e5e8_Z}, + {0x56a995ef7f75038c5746fb3bd1b1a77a22a026a8f1dac3a73af306d116b434c_Z, + 0x48356a48c5d86011d80a2fd2981d4c1a745c504c8b881b423c31b8ef76aadb2_Z}, + {0xfeadf0259835b42ce4853acda2db2a1e5d074ec7a9339b65490458697e9438_Z, + 0x3ba16e49dd440a953518673e9a23b80395cc44e6ff22c40ed821915065272b6_Z}, + {0x418b173df47595f35548c5f95f338d753a39bb76d53b85a32edbc577f6fce01_Z, + 0x1110930e29fe4d70816a056e1eb93d2101615639878349bd516307bd290da3c_Z}, + {0x3b58ab78f462084098ecf0af201b24835ff0a8abf189299be640a7fb5ffc16a_Z, + 0x74041d90572f93d9d70c4ff296803a3df8bc803d8a32ca570165d4c5fe44f8f_Z}, + {0x447cf5b60081e6b469e1954ea3aa9eaa6def674afc3a54f307d35ae01738f2d_Z, + 0x82777c181b4e2b351ff0bed0674bfef8e40e68dd1622fed5a69d72f0446f7_Z}, + {0x4099c98f120b2ca44314de29a169547abd2afc30f345a5c53cc8fd6b0c27019_Z, + 0x720148fb6b50c90e64c4bbdb9729a81f5e3b54b22b9e31de1507c8158e9fbf_Z}, + {0x578dac23670640909fd263caa2a66e7022a8c0c3620f44f75088df308db177c_Z, + 0x4996ea791e650c820a2314d13775720332176e7af68118d017e6127c8ee01ce_Z}, + {0x35dd513e684a32e7bc025663181e50083ddd2af8eb6e4ee0e6756b591d91d81_Z, + 0x3551f2271841091f685d73580d01cb3cc862a0ceacdf4b45b19f4acb75a1565_Z}, + {0x7fa77248b4ce371d0a655269bccf89c20dc28b79b4c55fd6f7b19b636692b51_Z, + 0x2bc688eb8e85702b031d92951adeae37ff22ed8a8b23e1c89a145c5342adf2f_Z}, + {0xe361deefc72b2a8c96070791093414ab741ff9a2791a45d8b58b6f06df4c3b_Z, + 0x9ae31cce210ed516b72d092d173080b63a3472b8d9fc02a0ee13ab51dcbdc7_Z}, + {0x7118de6e756cb435def84c500635de5f7c96645237d47faf912d95b0ec1ebdd_Z, + 0xbbf8a8994c518fb18bfe2aa373b04b98520f2b9698cd43f5000b86ba2d52f0_Z}, + {0x5e6292843027c1509017bd5aeb42ae42dbc4f57392fe45a44d35af3148698c6_Z, + 0x5d3f2803337620eb19233dfebcdc601ef2771b8d2a0af945eb92390ddf375e5_Z}, + {0x4279d92757255e47e88796ca9ff2d61fea8537d491f764278bbca797fc5cd85_Z, + 0x3ffac2d366fd1b050d442098933117a309d766807f6e57dffbdacfd1957cdc6_Z}, + {0x53d57cbf5be2ee853ac196d3e3869c8f3d099dc8de7e9f71372adbaf1febcd0_Z, + 0x3819bfec3da20ed253f15529f902b1ebbe2247806711a81dd9e014e86dcf8b1_Z}, + {0x634755815094f9314d217b6b20d852f3a8144667f4576dc45d6b9c0b9a35553_Z, + 0x1951384679e12801076733678c5b3bf1bfb8d1242c36cf283a7d0fb662060a3_Z}, + {0x29c37191896170f667d1a828e1ac4b4d0af93f4e99d881b331295a47945a174_Z, + 0x702b884cb87ce396d83635d1f00c6e689f86dfc21c2ec72b81e3d03881e5a7e_Z}, + {0x3ed8641f61929a350166f1910277fce32b723829b3ed16749328da154fa01a9_Z, + 0x73258818d0a9589387e30d0f39eb636fd4c9511f1a0f7d14a83c148f991b834_Z}, + {0x81db8474b1641f0be808e74e156c61ed82572138a2479f75aa012180b1ea9c_Z, + 0x6553c3d64eda74afb828670a377f5e7d5228cf43219b46af5046664f11d8da5_Z}, + {0x593ad9a9342864f04c172d2fcead3160449a6aec2e41c83042f9a71d3a700a6_Z, + 0x2650f17d1c7f029f1d88f2cac113cc2874fcdf5ad907eeef82a48ab03d9f240_Z}, + {0x19595dedbd11d08dd365dcffe37dfc0cc923f9fe702f6f92ea14588626f7277_Z, + 0x71657a8b7e6237c9c4476491a4d6d5ba67bcc946a05f681a863bc143bf97a2f_Z}, + {0x4b95feff1d5b9ab1f0dba108419e9c7033bd9646fd5e61ee17087a1e110133d_Z, + 0x7689384f6146c35aa86b3224df6601fcd15cf8cb484cbc6bcb4c9ef9b694d00_Z}, + {0x857e8722c42cb30c23e34af37fe4dc029d59d5258d817921c108dc6cfb6e1e_Z, + 0x3ff63c305b549f1cc06ea56a7b7c2797aab60f216a83a2578f1ce46ad075366_Z}, + {0xc62e4e1f2bd1156ca104b98ae8ae66d836285ac082b34c654841908b051b8f_Z, + 0x5354c777759d8d740835bfe5a6fef8f1f68eca4e43bab151d52a74d673a9d12_Z}, + {0x45048be3a993e349be630354c880c19edc59b40225c0fcf13813e95a5bd524e_Z, + 0x4d4ab0f6c8762ab881695b8fd52c6c2a62fd34b2dfaf6f794dc1428e8a18b02_Z}, + {0x479ad16fb6e221c46f11eaf2238f7e7bc612a85859724c907c844794a590f52_Z, + 0x24a95fa796abf1adf48f3b0bc2a9805afad4f3597952bb6f600b7304e566c9f_Z}, + {0x53c839c8a28f32af284a25b635f3c7664869e06fa937bc7562676468e7b7377_Z, + 0x3ecf21c45ffe4648d1a2370ece904a566c599dc461b0e55628932887bccb08b_Z}, + {0x798f7e55463a870f0ed5d97072996da2cd71df97305ffadcc4ceb09e7101979_Z, + 0x614eacf5529226e69910a12204fbc916e8f4aaa7fd2dec7b41c51a7df8dc103_Z}, + {0x7718564fda3ddbee0f34b8d830be5fcbbe21264d9682339ef48bdd65cea4c7b_Z, + 0x6e0b482d1bdb8b6065f05ae9541862a186f5908da3aa6f684cacf22a5537be1_Z}, + {0xd7fd4e51ea5bf3d0b1814f4befc30bc4b7cb141dcaca85c8be6b840ba95ed1_Z, + 0x22d5096a0ae4950e437a69b82f83da0f0163806429fde5b8ec1eeb66ed0ab33_Z}, + {0x449c1893267c5a83a8841c52dc13d6123d47db32b7e9c6b0dd713771301ce6f_Z, + 0x777bec62dc6e8bed4fc9736925e70220537949191bc07d27fb20580a69857c4_Z}, + {0x42afcd8e0e8698f20e7f3b777c4c3ccb20d2634ff535cbdb3d8a1decb4bc142_Z, + 0x52b840f9b93f808ecf58274c15885952155ae91076106c027300d1afac2ca1a_Z}, + {0x1f8bb9e993e0d60ca720cfed70a295c195da0abc1e7d8c22baf868995d5ecd3_Z, + 0x53a69e2327476f90a9261fda7cf6e53cebb659cb134c2c7964649a46f92aea7_Z}, + {0x3a3782a50a764ea48da8f6e45cd5dc26a319af1ef3dd413604ad76e0757221b_Z, + 0x476ccc625b90b86f7539406327140e075d00e7ffd82585d8b2259582ea6e645_Z}, + {0x37ec303f4008f11731a3ed8ea86d9dfc50d4531ebb9f2ba69a57ccc2f95a22e_Z, + 0x75f6511cdb286d472cd840a512d6bb600207c096b9d3bfa4862e2b7cc1e7507_Z}, + {0xdeea487783b19deb09eadf31b1a67808a24fe73a3a2be3038c6e948eaa1f78_Z, + 0x39e784ede26db861e359134aa306c70ed30a8d3c205a2a9e3750958c1a1c393_Z}, + {0x7d7cb0b35fbaf51b182cf49d446f6cec06c9956633e46b3d82a0e55e5e625ae_Z, + 0x7dc3b01a79de9e48b18e734f05895860215555788fe2308e68822500243d5f1_Z}, + {0x633132ae736272a3b396bd7df7964ba2d796c2280394d7b6a2e5ccdfe167c27_Z, + 0x41184527848d33f60da4f25ceb955b6c33d8a254421ff1cb1db6efb9a2f62bf_Z}, + {0x648ea258f205c068fffe4630b4138f2eef2ff7d7bd313828525f6384fde66c8_Z, + 0x7b4a3f7c56944e49655fef1e57e62ee44cfe65268eff9e040f0280f2b15866f_Z}, + {0x2586aaaa22a4496b4584dde931c62f9f0f429b671ebc5700e90e5f3be3a3501_Z, + 0x266f5b481b199d162999fd5903ac43a60255ec3afe7125cb9a550b42a87eabb_Z}, + {0x7b0fdc234e584225a99e972eb3234356302a5f38685491f135df05657e97fda_Z, + 0xc8fceeea95d693872c5174d4468bea78aa87de092cbc8623375a4b3b16c313_Z}, + {0x5da435d80df1e3f43cfc2fafe57066b6f5cccee278b13a66b300eff7b7c7944_Z, + 0x231f2a772c0c9a50fb17ac251609022aa07881f988666d47daf1898f80c0829_Z}, + {0xb9f6edadae537994f515178794ce527d8e836023a963807ea87d57a50efe41_Z, + 0x64f5e4604a82a441e9f1c9a8c2a2815c741c0e5e2d0cb79be30889b82fe4068_Z}, + {0x63b3313fcfb3f7c45244a8d2ad18a3904a739c49e338e7a06f55202090ad67c_Z, + 0x45fb0e99c46700e4a89c80dcdb381a4a0499fc79c414ed7f839c6767a9fe588_Z}, + {0x3901929f0caa74a6967e0ff50c8f45f8381b4db36682e87204a36ec9da2e63c_Z, + 0x73021b4c55cc3165f2c1cac93f298d95c7f6e5306be9b26a2c705371b6df736_Z}, + {0x3b65dacb517b90cfbc26d382b6db2d91e6de306dcc6a18cb9ee7cb6b0827a48_Z, + 0x17eb8927906a696b313a4dd294db6ad80df7a9b88392408c0447c25ebc74361_Z}, + {0x68194f5511068a47db0629a27160caae1cce6a881c6fed8cdead07cfc1a9425_Z, + 0x1f1420e9cb1c6c4922eb6b40f10f24f15dada3dfdcddaca674e73383ccd78c7_Z}, + {0x5e83fe32f18c97e8ae49712056b314aa66d932d5a77dee8e1b9eddf339da897_Z, + 0x40f69dea65ce3a43675e75a263094f7a32364e08bf8a81991174c0e107f9d22_Z}, + {0x3060eb23ac6a6caf9af47337f0b510f959b8bde88e9c61b0420ace71b7be022_Z, + 0x74b621d1a9acb7d981737684822dc4eb1554c26128ba6ec7a597ffc4d566412_Z}, + {0xee062abe0510b74de3247e25ee93af0ef6b4b4548fd1720b9b96e26385b505_Z, + 0x9bf5b33c229c7c82513fc5cc572dc6e633fa53ee4b72c29387b3456a165395_Z}, + {0x4059eee4397291986401d80515ab7a155c747981fe3a547f02eaf658d83315d_Z, + 0x583b5472ddafeb00fede29a202d079f0a1599e898874e4dc90244e697bc5604_Z}, + {0x30df889a489a4ea1c39631247a2588b100736664d5d9b468c4aa46927fd9a01_Z, + 0x35f98a4e5569cda355997d7c05b92b1afebc0f0eb00c18d627644d4391f153b_Z}, + {0x1b4a7b89426cad1f1139e4a95e424912b28e09ea4ef920f4290670557b340b4_Z, + 0x6deeec12bebac8eb5244cfc774122475a7bc94aefaccb4bd45b676a09dbd5af_Z}, + {0x63f7772aa09ac5c0a88d93f3a8cc60b0df16bb180e99ef00412c38179166e0c_Z, + 0x33e86bf3634f4eca8c88beefdee250257c486ee48fd28e323f1394a5e1c1076_Z}, + {0x247588c4f0c7b37c917b4f42e3b21658097ac7cd0e7644b086b912998d5af41_Z, + 0x5e1c543b5b8561a1c59cdc8a7395f665433989085ffbe84c2a5b4cff3b99c48_Z}, + {0x4b9e758b286080b937b428cbe678628bc992c1e6a6ffc6e244792b82150c35_Z, + 0x53acf792531a89bedc300b80e5363744fd31af737d8dc04cb875af9a1f22cd7_Z}, + {0x29acdc5609d77d4f6eaa984119918f30450143dc289571c0524816273eec65c_Z, + 0xb4cafbf77273cacbaf450c9ae651e2f3dfee4fbbb9067effe47ca82f12ee58_Z}, + {0x2f293cb26feabaf6274a37aee59bccb9efdce19554328c077c21eabd5729ff8_Z, + 0xfd36c9fbad079f5bccc20eedda52b98fcbdcaf792face8d234d3d402542e04_Z}, + {0x63f18e5b9e5ce0e8752aefda835704e5627f95f1b73790fbf815d33cd941acd_Z, + 0x3630acaa86d47055810a49071a854036627aea14444945c81aa120e8505c9ea_Z}, + {0x51b6a4d7a48d4aabd8f6d1355e6694a96e8e0259b58a175d56ca4259d7c95ad_Z, + 0x4dd595ace960f4e10063d98a8476e4a2eec480d2ad2d80ba69196ad0279c470_Z}, + {0x29f80454575d19baa77c9b505bc5f33f0577d8f2ce63780f9213fe7ab18f6cc_Z, + 0x6848ae259cfd050fd46b04b4acc14d7af20b2cf1b3d0c9973fe068658d043f1_Z}, + {0x4c89b6510677f513d789833e9d41694b91aa009ef2d147b5c7caf0ec36128a1_Z, + 0x73d0c5696689fb0dd0a86e70fd2927929d60162d24ffedee43686534f3539fc_Z}, + {0x3a249f87a20b1b5b4db2e26a256217abc47641b944ac4aa433098a5861e856e_Z, + 0x26be6d948015c7b9030c6713c38768e7632320a38493000721d29ab91089ecd_Z}, + {0x754a7f5db51874bad620d86b01cf462e18011e0cac314c9310787c266fc92c5_Z, + 0x1b29e1cdca47382faf98f2588909a7dd593f878f766a6a7b109d4254b0ef8cf_Z}, + {0x48d9fcc542ce46fd5ca669d9ef77747698b757918c6a0cf2d8282faf9ef09fe_Z, + 0x2d6b8804befebfd2f4b9c6bd2eced32bb15ed8585e919cb46ad74ff11c0595e_Z}, + {0x721afb3823d5e2f754bbd6b7a90daccf2dde0c1f9f1bbdee8de9e64cb52b0db_Z, + 0x51e351ee5e73cc5e41be981183fa5a11527fdeed09e290531bfd83e574d534_Z}, + {0x37a286f8bc5d0525c64f028710434d6f832c3e7057ee3f36fb5653ad6afebfd_Z, + 0x50cde5410faa07c33d30188d6cad656590014044895e2bd6a940998dc7516ae_Z}, + {0x3ef6f601b2a1d947ad6a3c6eafb3f21db71d63fbc5ed57a1f2b5418454a3f48_Z, + 0x5783cbde55750bea5e6d93a2893df8fefe8f3491b359c35382883da0b5d5d8c_Z}, + {0x65fa96cda15d5f3b10aac96ee6389477bafbabc0080f81fe336bab6421c733b_Z, + 0x27d19fd7cd38d60baf5f20b064cb941a5d31f48ca8c36e42931b0617db5d780_Z}, + {0x61bc6c2e82eea33335735aee11a976c2830ce6ca853456e1f462eb1caa08c1c_Z, + 0x4251f89865abbd7b86f4f97c2e3c1592ca982a3e65a67d14baa391fd75746b2_Z}, + {0xaade4a6822d0164045dd5f4787cff3a442b538d24f25fa1fc770f8f999c2f7_Z, + 0x1eab702b2009863e2fd3f922e67e13d80f7ee1ec2552ad56d16f3a5fce61c4c_Z}, + {0x6ba561370d1765819e5e3f6ff8bab69ebacb11d9b09e7af00c5b2c1aadbe95b_Z, + 0x6fbb1a8372a5c79abd9a8e3c54365ffb95602eb47ec328f3664f0b90665d561_Z}, + {0x5f6b00f02978e07dd51556c9045218a62ba6a9c5f758e8bd71f256c8c834a0e_Z, + 0x9cf6eb5b793062dda8d59cfe8af5c8409d45f2a10d30d1ff7476a9130df5fb_Z}, + {0x1283cf7179b31667bcd6e95bd9653b34fda5f86ad4f2d7655528b828789442c_Z, + 0x6b40826a1923296e28e9fb1731fd38c0d33e3571836fcb4f44dd634f7515f3c_Z}, + {0x1332b53eb582b13900572c6e7edc988477dc03710251c771b0bc03beb50602b_Z, + 0x5c54c2a2b78840824a1df6e8d68e49e81d14c1a53d2f94b1a8790728453252f_Z}, + {0x6d9daeb3548e6e20760cabf269230bda6d31c863e906ac94becd9da74d60168_Z, + 0x1d7aa3f094beb180479b92a802021e13cb8a90d97e8275b04fc9a323f9b1d12_Z}, + {0x2bb0eb48f444f53fbd8da7eb5c5d0679965557016596ceb1d122a81eec64ab1_Z, + 0x58b80ab0399b6086b2c4a9ca531a58fd205956a2743f47f412cd308e4d1bbbf_Z}, + {0x27520779c7fa5ccc80bcb568ce0f129094c368059cd5786e1f059af0cb247e0_Z, + 0x70c52afde816e2838f6e9a9128b0ffc6f6170c115c5027469d3c42ea5a7613c_Z}, + {0x6670ea7600b2696a3d79f2f537dd0dd654f35a9a400b78955f119a878e43c13_Z, + 0x34193e913f773cec4f3ef2b981b64efd29282748b1651ac116d91ee9b3b7ad0_Z}, + {0x10bb1558dbfbb9fdecce1eea2ac58c5114290f232b031e039293549ae639205_Z, + 0x7540dd1fa8ebc532f8ffffa7eecd7c88f6733ae125d33a0757407d16f0bcdaa_Z}, + {0x6a4a0272dbb1647b6b6b164926d08f58a5c5116e9241c15bc2734015ed33b70_Z, + 0x7aaf4235a6014579b23aac9cb747d96b43e5c56dc7042c5ac6733a1edaf76cf_Z}, + {0x75903abfb45f1af7fdf465aef84feae7043a7304922c6c3461ca54204c211e2_Z, + 0x4ace274430c59d7c72b5c1c3ee701b44585462b0500b1640f0f126044ccd075_Z}, + {0x772b1c338a673f3674f0fa675a6754335099558465d32f0b61d9fcc20a15768_Z, + 0x37b22715631dc08d4fdd4969015fd36da3e9708c2a3eb93f0f9531867eb2c7e_Z}, + {0x289344a7505528b7d83d7eb1e329a37dc3ad3ee62ae0d5bd6bbb3d7364f9365_Z, + 0x464e8226cad85ab44f82297295682df6b7f29bcbfdccf77e33a63edab3482a2_Z}, + {0x12ac4b94bdc9ba032fa6ef13ab4c3cd8f930aa3682a3e72b9b75ce521f17551_Z, + 0x6e20ed9110acaa5e1fe831095b1d73e266be3a42a97fa35657869ef82f5039e_Z}, + {0x312fc9b8952dce8d7400d971a14b9318647af65ded97e8ddb78b02a9b9e48ca_Z, + 0x2509889cb2ae15e82a061e4a283d28825ba80cb04d4b396ae866b3d1f49cd4c_Z}, + {0x4c3ebe4ba6e5943f2598e3d7fada73deef3eb04c1c0a33c6a30e7f9b0d57dd1_Z, + 0x64d65f309326dc2874610c5a32d14b47f2fa589661795cfb35728486696bb6f_Z}, + {0x4a24c797a0d2bedc68e0440895ac2e278939604342d6f17f2fe6910ffa02ce_Z, + 0x65abf261f1f31499b309414385d835a922c639ed7abf111e7d9f9f5a93c8229_Z}, + {0x1e32487c2390fc4e4ab2363c170987305bf649dd594f5fa2d665cdcb23b4b28_Z, + 0x709f0b4d0b4cfaceba4c30c4d4f90b51c68e617813500236339cc7730f1e7e8_Z}, + {0x347647dc2d309bdcfa4ba5258087ca7d5f1494ba7460d444f7eabb2fd7876ad_Z, + 0x350048c6b8154ce3308fdefb5ca1a630b299eadee4e85f535e7eee2383b3b_Z}, + {0x524c9c7da0674535f368ec82c959d01e183866eb1c2c39495a4b1585357bcdd_Z, + 0x6e4108a34f33b515fac2a304078d66b2da3847be3b803d719a2071ef831a94b_Z}, + {0x731e6b87e0ae824e0803c070240d5c9b8f55e0816a4dea1b594116df1ffc41f_Z, + 0xe3d1241ad5cc299ca7bb8469cf5b03ef026e2fa82807874ea53a6c72ac5f94_Z}, + {0x783802df2714b9606271b083c7fa045dc1136d9f3c04935c4e559f96d0b22b9_Z, + 0x6a7890e392b5221f806aeca5f1f5df45f57b3b7845a1d362597dbb50bfaeb63_Z}, + {0x2dfa2e588ecd358f55acd6ff3c298a20b187711adad7fb1de4ee6ea08e0e529_Z, + 0x78098929df65ad32c914dae8edde692d2ea008d0d0a7c59dc46c2a408a98a34_Z}, + {0x3469a5191de32126fdfae979621f81da116cdc49e4839b62371801bd951dbbf_Z, + 0x49863114da9745b7d9c465545cb80c7b8f7b7b04c1d131c8a933b8493d646c7_Z}, + {0x46117b535b2cfebdce8543469874111d856f97f60b4981c37f0b5f2577a1ddd_Z, + 0x2d85b170f9888a4700df782518a878c091b1a308513ad1bda7138c82b8b6a02_Z}, + {0x278dd235b1e06fe7b67e31b9067440ebaba3a7814b513575b8f7d77000f05a5_Z, + 0x66c5569f2d71b2d4bb96347c2f41ef302deb8853d96f8026735acbfe73e17fd_Z}, + {0x1d08e6eda54a930f51e6dea44310a50f6b3cc55fed4efa28cab8dd77946b37f_Z, + 0x4ba19a92d5575b3332a98b831e82c10c54f94ff5895cad3d65d4e9d3d0b8e7f_Z}, + {0x1c937fc16c5f636df5e5deeaa85854236e53eef17031e1f4f54709bbc1e31be_Z, + 0x6f0a94ff110a7e82499d68c0bce06497320d494c5bba8d574a032024e86fa36_Z}, + {0x3ac10559c70ec64e45ac2e1175e6445107278b17e14e85ed5e8572fdb7cab72_Z, + 0x606f496889c861c343f0da76deab855ed401384ec82d789926e70372097a07b_Z}, + {0x5360a9a6b226e690e25d3dea096a017d408f6c8d39f9040e1504e9ab43e2035_Z, + 0x67cd680eb8eab3304f52ea7d07886eee1eeb2ef8374a06ca629e9b774700ae3_Z}, + {0x1a441f62d9824483d34fd6b4665336413a0db92545f82a4bca26ed357f79a99_Z, + 0x142c5f1d249874f407817cc3c59b22ef1b48a0ec2406a8dbbc421cca7504cef_Z}, + {0x68a455849d29c68443021afd6cde779bc30df5cba50303c97913a7739ec4ce_Z, + 0x62bb4f4c55d86545a01aa12f8b7f101793cd0b9584003efd0956b72c19e62d5_Z}, + {0x497f65ab2ce7519b2f7f1724df34a5ffb76c448606b0a7249d19dbc7da2ce47_Z, + 0x781bddc0bea5ae32cc9f80278d4bb069ac5766076ab340aa06d8d7448c4852_Z}, + {0x39dbfce999a9f128d0ac6ee8a6e55976aa7ee7b85731bfd7f5dfd9af68f5034_Z, + 0x1255d957f4d8e03141862aa3092ebf33e793346e5758ef186dfc6b87dce6457_Z}, + {0x7a455afdbe1c2ae3833eb39a771963c89b4fff5017c33d284459fe9b1e0dc17_Z, + 0x5b5caba4463a6cbeecdaa01569ce38e21b755ff5e18860e9fe9f79160c4d7e2_Z}, + {0x52ac708678e9f0972df611994f5c4c31461f42d728c2140f388a658f03ec6a6_Z, + 0x44f1b9e6bdd8918fb058a24af838cd8733f46d99e9f2615d8fafc8c47699579_Z}, + {0x3439b57886902e6ce95cd98c71441dc3971432190e644cf0c43ae17eac79332_Z, + 0x480e9a024b09e0895a82c2acefef7cfb4995146acb1ffce12cf971af0de8ce9_Z}, + {0x4f1ca9d1c16157e8c1c1af8bca7407b9e7e7e461f920a82cfe61ee2ad0bf799_Z, + 0x642cebdb864f19821b0ac2109ef3fabb9a4ef46f6e0738b4a64c477e4bf8089_Z}, + {0x3f8ce9bb8dc5bb555e253ac32e05ce897e8340d0a840d9d2969203edeaf1ff7_Z, + 0x3be0f06708673bdc03da6b1fdc98808ac48436dcaa72515d9a2961476571304_Z}, + {0x75ce80956b7c379f47612153d071f529e1a532ab33add0fc30a12965110a936_Z, + 0x5afd4cc391bf1a1e9965f46b670d01c547e2a874cdfab4e4941d57d8c19568e_Z}, + {0x43bbb28447d013e0d5f6b87537112987552b40bca59410ddba5792dde0b358c_Z, + 0x70ee7fcccba2a3a9c470f945dfe7f5f102f466528fa2e404279747188c56d3d_Z}, + {0x437e18b727e23698b48cf6b2e4db9d0acf9c485afa02d6b4ef244f0db1ecae1_Z, + 0x253a749c48b8712244991dd8f5e3b12c3e488acee188564c23ed8a629cc4308_Z}, + {0x57dc4b3be50eb9f2c4c7f24e42f2a285685c7d7fdad973dad18e4a53c889cdf_Z, + 0x199aa8211afe736e4a3405fe1c700db2d63f04e0f2b05540d5c034888d67e39_Z}, + {0x6dc56b368eae5439ebacd1e8def5161a79d3ec2f77c7e4706911765e9e8e7fa_Z, + 0x5078cdafd1ded955dc10f28b009bd501bf41451a771cc86c9fbc93f7f4cbb66_Z}, + {0x36f4ddba0c7ebbf1845d87e7e0fda7a60c4d90157063ea2781745baefd1fc64_Z, + 0x329d0d91cd2047ef0ed3166217375c9d8604c21c973ffb694c8c8c8da1007bd_Z}, + {0x4ba56b88372f1fa0ac4e15dba3cdb987f04089a470266e79d9e00304c5a20a6_Z, + 0x247c5879d9e9424639655f590b6cd7d9cc44e73c504554b44d1a5896db1a0cf_Z}, + {0x51ee6486f9ef97868475986dc107f23b41c203210ccdb953221ee8be360ab99_Z, + 0x4a9f8279ed1da580fe7c9234205bb0b15d74e5729fa5b8a182e33e501e33475_Z}, + {0x122aaa53eec4eab1dabf34abb82f01e8e9ac01b013d7f868371d8fcee46fb02_Z, + 0x5391b0ee19a008fd81c9a402be1026da730f345d359a5aeaabca7f68804f257_Z}, + {0x5a2d0d278efb0d0db252e01f60e01d18ad9933676acfabafa79aac3613b6308_Z, + 0x385cda0105caff7d04e511b18aa93573c9314d4669d377151828a8f3c523b09_Z}, + {0x1ef156e976d5f3c956ec8abd7ef747c6e697d0ac7e17163980eef8cc92cd6b4_Z, + 0x1e51351d6a5fd1c39510bad0dd0f46b4f0780a6d0cba3af716d5b4dcc3079bd_Z}, + {0x6c9088ac52f0610f60c1f513d5d99e7d02583f7d3a95170bfe28604de6f633f_Z, + 0x203b4475bb155b559ec3143ee76afbaa4ec9a76b20c33239f2f62102670844f_Z}, + {0x6eb6a8059bbbad74a94ac5cf54260de510c38278eb9572c0c0afbe4ce99807f_Z, + 0x1fb5f7bb2b258544443824d0c61edb7e74942c4d0c796583187726c4e2f63b0_Z}, + {0x4aeb7c141dd8346a668da775b07cab6338f9f62540c559c5058328d1b839e23_Z, + 0x41201d9c711f200cfc9ddf2767a664f3243449d05f9c68a6da6ab3d70f036ce_Z}, + {0x5028392ea52427082e2e47a1178909cff59351ac67af08d2f53d98d7d7480d7_Z, + 0x75223ee95a4c4769bd767f237408f101cf5a2fb7a311d583d4f5bcd00c6e9cd_Z}, + {0x4009b3f66daf34172ce1c0dd7fc721dc84bd953b2805002ca34b31ff6848565_Z, + 0xa9499f1d05eb4da0df4781861171e3f874497276c5d3861e3780a20d357392_Z}, + {0x7da6f0ab777574d4edf4062659aa801800b1f1864e8bdd6aa0bc43cbff6f02c_Z, + 0x67dcd8629e7d2fbcb15864cedd3797a58fbbf9cf83de3558345392c9309d123_Z}, + {0x54f05827a66a3ac1a16dd144f5e6a725a46bdb619100d64af7b08ba9c769e5f_Z, + 0x40abe38d69f62d7b4668599eca7f65c9757bae3110a1d92c7de5f8e9236a0d7_Z}, + {0x1601b23cb99bae74cd4cc275c2101fc12130f1793c47d3db36db11c4c0ab7cd_Z, + 0x508bbb0f401bae72aae1b9541518d7d42ddb4952a3f0da31ba2f8c7fbfa5a1a_Z}, + {0x481ca7759003a055b135f503b007bec121ceff1c5cf8c7b85d778a739ebc37_Z, + 0x46e13df3a4c1a837d617d92450f24445086eec02e7927e894b9ea6059b6954b_Z}, + {0x781196d3ef74e292b0509add3bfc55c47cbff4fe914ff1ebefa385b25ec0ae1_Z, + 0x5c711d611deec110e1afbbeccc4d1bbd2138a81f058802078e517503aa96d2f_Z}, + {0x4c454d46137d2a8c17f2ae17089134c0f0fca5b5350a7281d1ee36d332086b_Z, + 0x2f8e59da4ce16de7339f9cc726ac823ef12968e8af41955afc5e68114d85e6d_Z}, + {0x7b4cfe1aad3fb7cc50e7d7abee6bd944287262c7cd3ec521f3e2f7409591778_Z, + 0x41e80cc0d2c46450a68027881f55d08a78e3e8acbc85755cb42ac245469490_Z}, + {0x5b121a76e83791be7a8c769e4a738e66176652e7b0f28e9421ae3e28632cd1b_Z, + 0x3be93fcd4f5e5ec270f62748600bb8320dcc8d9d057deb5a09c641d59419c85_Z}, + {0x38aba78d7303de1bb786cd90c16c35c069794a981f14501cdff81f04809ef36_Z, + 0x61c93ae1d29af35ce83e04166275c460004b4fa6a44a2943892877c5a0b9e95_Z}, + {0x238ff975534b39d4328d2fb09434828202953f0c8508ca1762e22b831db84f1_Z, + 0x77b3f83a3515336fcefc9327b79e6bbd3bebff04b882aff661efca85059037_Z}, + {0x4af8fa59b6d118b188b73af5bc8fe6c622c949ad176c8858570d9ce9c801a03_Z, + 0x11f6bebd56701bb03d0c4d09abba3e9798919f4c91af2ab3e86cc290b4b97d7_Z}, + {0x19ff31fffe94c26623b202805feef4c6b278c653f828bef4fe87026f79f99cc_Z, + 0x3c89d9a61dbdda9993feca6ec58daa403cd9aba21579c336c9b911b2f54a4c5_Z}, + {0x176663c53442e46b1a9ad40e37dd689f03f5f752dd97a7d61aa82b4d582a425_Z, + 0xbe033ae1aaae81a4fb295051274d53690fdc1661e04f6a658594c00812549b_Z}, + {0x4644b372ddfa2aec55326546728f3c2a5d9d8fdaa6df6ff5034116bdc440453_Z, + 0x37cc7dc4842d88e252fe3f7bf177b95deb3b11d097f258ce5522a4fb476741d_Z}, + {0x121aec6903ef3f52a533931b61f5eaa14891b693f37079e95f2da60c5078d23_Z, + 0x1b11a440d1937267596491ec1668715d6efdf1a029e56449dff7d1d065fdac9_Z}, + {0x47c71454919af69a1aa1a798fac0d600a848dcb6eb769e89e498700e0c5db84_Z, + 0x7dce06b0b64fd23cc4b68f13aa5aa7cbba22d2e0d4c09d3008fcf7dd376b7ee_Z}, + {0xbf74a7cf05fd18b3b7902c21563b3ff81b19f41edfb7a5fb06a3f041849950_Z, + 0x3d9dadb167c7ad778af9dfbcadf0135d8df8ec6d9c1a7592c02783b061db55f_Z}, + {0x535b5029d6e00b1afe0b8edce3a426615b188e6afec56a2a0eb0d6cb60d31bd_Z, + 0xdf1105c3c9fc6d5e5710811c1d949d8e41d42f31e782c988658732b29cb4ae_Z}, + {0x6005e128fd5a27b749a30fa56766ec34958d2116a479828ffdf30ffa22a8991_Z, + 0x12158816d08f33bf1c2895eec0b5df2a4bdd2281349af68184834092e41af8f_Z}, + {0x2545ba00a30adb19d1fb7bab616b1ea53c8765bd06c4b6f8f312b01b3284eef_Z, + 0x79fd72dc8a0c42556398d471a3b98d4eca7cae3c0a3d2e26b4f69b63b0c5b1f_Z}, + {0x5388a5709476b0627b3d828eae4fef9c57231da3db781c7324bc98df5484b3_Z, + 0x6843447ef99c9e235f9e74983aec2d7e028ce8d5020d506e2d2a16dc8788bf_Z}, + {0x4e9885148da09a82508eef0a58cddcdfaaa9bb5cb96d23785e00eca2bd26796_Z, + 0x3d3232efde10a157594085ad96354015cd1184f55b739a7c5b576d7cd781221_Z}, + {0x1c06a16f6f297e8d315f6b7ce5ed8b6cc3591b302d4563be99f26f78ce8280c_Z, + 0x3db714410aebfd11faca0a7575258d78b8f1c546666c923aa420e75af637975_Z}, + {0x55134f976dc28ac8268a63aa842b47c94c3be6bc0e36a0b1ed74f58d36f1097_Z, + 0x677dbb3c83300c7b21b9d293c335be073f8e813c13b438b5cacb1ceead1917e_Z}, + {0x3776fa5079139641d326fbc230447e84af274de750b8d727e25970e5f857eef_Z, + 0x7fc740c13f075f45f818f7e68b2aca1b3e5a80bb77ed7b8f2ed92d82543208c_Z}, + {0x3b7c92306b73facb18c97266c726d6441e635056d3a3b7782d85d31afa4fd0c_Z, + 0x5d4446c08c5540b302094fabb709fda15d95732be4ea893bb3f7ddc6eee29b7_Z}, + {0x4953cb98125af9e57906a09b7928162317342a136673b2ff747212b6d74c702_Z, + 0x2089bc2bd5b2b24e7e1da8836b4d35d5360ad9122fdf6c23f1c56ee893c7aa9_Z}, + {0x47a3cac8d25eae7c132aba000d01ab14bca53382552165354b14756124a1e11_Z, + 0x2a82e196de1bdc1a659c98d009510feede1514fe5b7c21b76ede052faa0475d_Z}, + {0x5dfbd7d85c400e3c79e39b72930bbb1e9bf0567904882419908dd84291ae507_Z, + 0x2fb5d589ac6b7579b8478272e44dfa97194ad3b23c3ed9ae7919917ccaf8a36_Z}, + {0x1fb14c5b1ce91a7e899431b2e48ca21721147bcb7b215270e0b5406e35429fa_Z, + 0x56bdd8820fb76adb9c6557da4b38516beadfca90bd77032fe45bb4bfec8942c_Z}, + {0x156783d5ae22b963b7ecc392d06e41d54d4c20041fb68f17dd06d36a3fab20_Z, + 0x43bab810f9fe1c85ce9cb74a990382dc70038b668bc4ccb5519469edfc1c3a5_Z}, + {0x67d7557635a26c4be097d53efbf464a5722b981fb433f4855d58c22378571bc_Z, + 0x38dc41b7789665e99286d57b8e010b92c0414af4f8af86088c956bc11a0e4f8_Z}, + {0x54e64e59b4791d1db806edbd0797a62ba57143ca694e5b530eee284ee51cec7_Z, + 0x61529214c3f319a14ecb3cde2fde41169a8659aaf9c1c5edfabd1fae284f5c4_Z}, + {0x5b5e045838c2b1155a097eb6550e1b81ea3b0f18f0a84ff2b6b5b16a6062704_Z, + 0x5d8e957dfb2c1e4b6f59351280e914da35dac3aa95e13e3935ea9da73b5d1ac_Z}, + {0xe73175a1afb0252c98cd90c75f4e7378159fa9348e1fc83d06b4728bc4f042_Z, + 0x12607d43cb7b7e01676abf0d6187360f8e3d408927cbd1014037a201ce18ea_Z}, + {0x5a79cd6ef96c3a08c214c903604353638f0cda3e6c3ed663feb21a197bbc55a_Z, + 0x7dd8fdacc5e7ed304c925276381f56822e841285aee5db0295b0c11129020b2_Z}, + {0x6ad9f0942d93041b7dd804a617994ef551afc9298488abe9efd96b1d4da2b1f_Z, + 0xc2866244139576ad4e0e22b2bf6c4a84c921d3a924f5e27b92f2cd93d12593_Z}, + {0x7906827c4573bc96eb6cffec41d0a946723f49ba033911f676cc103b81a7cbb_Z, + 0xfcba35fc191a10da4263653e47a09e5209c21164c1367fdae933a9a2ee8eaf_Z}, + {0x7ed61595b843e7563ea1187bd3038e1e597ecfc18366ccf656c81296cfaa8e8_Z, + 0x15cc11c29d87fa4c5c03fb4b04b6cf5415582e50a2a40d5a4d3b37f4c3b8c80_Z}, + {0x43338c31a36188b524713b623f4a9888010da4ca7df7f342115c31fa3e55ba_Z, + 0xae5a37445464fa52b81d29120e50f58812089d1870bc52aa5a986421e57396_Z}, + {0x3f5e18f1626b4f7b5f3b375597906f0ad7680a328ab4290a5f624a35581529e_Z, + 0x71535e5adbd009ef6cfc0988265f48d7d1d504f008b072ba68fd78897c4946e_Z}, + {0x6197cd3f3840e02889ca392e74f029f1274860d40c1e735978dcf9720394efc_Z, + 0x4e7f7c332e85462a9b6c41475d8b680e3d325feee64e8c9fa5b97ea0514bde6_Z}, + {0x45f006cb94c77c4b3ab7e05678bd5408cbd34e766a236b6a21b0bd86b5678d5_Z, + 0x41b2369ec30edfd367cbee13eb4f637970007a83a20661e3df51726e585f88e_Z}, + {0x4bb2055b575cb2cfc5cac5d1063583ae9ca5e8bdb2a3833aedd785ca390eba8_Z, + 0x22ce4f112ef89b8a2d60d8f9e39a4a2c0c67ca68e689563ef2b350d0f2fcb40_Z}, + {0xf62c995c3ad71d588164d287f09e869092108afa19ef1002554973d864f43a_Z, + 0x2b40450b8e008bb7baf8010c404f64b1c6c637253ff9f3640b3652de2f9d757_Z}, + {0x248d90bd9d5b7fb5ac15a1d9ac615da4e117205276bc057809493726104c738_Z, + 0x42591f77ea99e056b4108d8d912abf78792d2f9858344d359a7b3a71f26bf9c_Z}, + {0x7b7f301a2e9cc8c9c2f9033a688385b29a3f542e055e0c813658965deb5a465_Z, + 0x707f0a147ae182e5dedaaf01ccc3704a9b86d99f76e0df26dad86cd2495dd70_Z}, + {0x6cf31ce7646ccdbbb072d09042e930f2d3a2955d113340336bb83130a62d99e_Z, + 0x5a675ebe7793cb8aa3b1e8f0cda248f2dda63860138e3f736f42f685d3fad17_Z}, + {0x1b1cde48a059c857916e3dab95b4da00f65d574e461860a08e5345893b099_Z, + 0x2134b26f97e85b83d73d54944b53782a54a5bfb296a01aa3b8021cb1b8a3a8e_Z}, + {0x35a0f5b87c68d5f818f1b4248af2095afdcdee1671465d29c3ef20bd2b37f49_Z, + 0x4d59435ac0c522f4488c0288e81436e781aaea592e69793d04056cb85353ec_Z}, + {0x2a457e5ee4452f7b1c444902a6e641278d313a00651c96d226b9f80be534b89_Z, + 0x7034d817fbfa5e537977caa1336183fcf638e3a76d23af14eeeada586af7e54_Z}, + {0x18ef354603641b7fcb0e0c0e0bad8c80d8e4df58ed2b550faba9a04609c65a6_Z, + 0x3185dbf54d0054b5341be6f46f91a86ee6cb5bc30c8e475d3bf6dc30146c421_Z}, + {0x2fb25b811dc4c03317d6166cdb4336e874c39b7b4832e52efe03ba510b52ede_Z, + 0x79143c126dbc695e975b12ece1edbbea18596275f3bc041251702a3c0fd44ba_Z}, + {0x70d5652ca45eb6548b9461659eb3499f9e352755619a86749ff37c8437f1c5_Z, + 0x524add209462b7887f152cd410779aef09420f2154614051d2bd5fbfd0f874b_Z}, + {0x4988b924d574364981cc5c420a137b5f3aa3519e79b20e349299782e5a04c71_Z, + 0x299559fd60b20e8f566901a324a6712e8de539231992e7ff0e0ef3a2305af7_Z}, + {0x72fbce3530a5f33c615f6cab16ed5069e637a670350f46d42124713aba6804a_Z, + 0x6c9f81497cef871b11e46c54b0f56fec69f20c39e1f7e6456c1d557846deea4_Z}, + {0x6b94c5fd6397e833ccfecd5c0b0dd003e55513ed795e25d7525333b4249bc76_Z, + 0x1c629a33bf6eb58df451dde2004227caae839acb61da0a84f6351c9b2b49e58_Z}, + {0x1577b1d4c4f3b7eb2ef3fb779d0834d1cb3ac01f92a5c64f1f895a2e8c7809_Z, + 0x11907f1bee9535ff99a928da4074e14032ced9ffc4bc7f22acf50ce5fc6b571_Z}, + {0x29e423af260a41c87ef68f4a47fd60816a4fb834ac716b76d70d827ce2c60ec_Z, + 0x19d9b631d1211cb4ac798954bd01c5c660e4581ddd091c2f87837a07576090c_Z}, + {0x595c10636e5aca55664add69b7da7c1aee69e240449a3bc426f5d232f444118_Z, + 0x6fd321bfaa65a91ff58c1e556ac3962d7626745a179374b8daa431f92391d27_Z}, + {0x401fca5438170be38b64644e04a4b5e0eed041637d2a5d25db9d21c302e0405_Z, + 0x640d4cf3fdb37827f13bbbd1a1d3e2aeed73fe3af7371cc0b390064e0fe807c_Z}, + {0x7d27918e4da91411a3eff411949953c1d1ea92d3daae31985d13700cfbef388_Z, + 0x6dca5b7aadd9e79bb7c80de3d16e1fbd089eae88f025c30e1a8e82b4d06ae98_Z}, + {0x78cb92cceed4be55590b246b75e98edd40af4a08861695a5f8049153851fdc7_Z, + 0x3e8fdf005c92b5bdc12b1934fe33e2ca8997bfdc447763a4ae585ed6c5ebe64_Z}, + {0x72b7d90edd1b88ed7eff953047e0b35ef3ee69037e72cc14070e545d0efc62c_Z, + 0x22d8c9dbba7421033477ad598d905e66dcf28cb298a31102c591aeb716a2be9_Z}, + {0x62501d2a6e7547426e2422f9049468bfde28900cf35bc70496e834f08bcff48_Z, + 0x40f46f6dc3c898ed57c445f42614c48933eefccb9478fe28f03725c3b73a7c5_Z}, + {0x10769e00be1f52801db350f9cfa217f70052fe231a9e4e5f89a8e2826277357_Z, + 0x3c1f18a367f91e6bc742e345fcdb21aeca8d3308f97cc9455375ae64bac8968_Z}, + {0x6ac2a0514f082cb871d745fbaded0acd2b32173f9f305fda3e1263b3394a48f_Z, + 0x6401676cbe781e0672e5db5e3247715e81c5d10be5c17eb15772ef20321d5fa_Z}, + {0x2646f5231bd48c0a60711393f4638696a9fbfd26409efb7b9c3ca19a9c4a947_Z, + 0x708863ee0a3316ff8c37f9ebdb998653dfe1694f2bcdd21725d923a03f6db9c_Z}, + {0x652f896e06dba85a862034d63aa853f3e5f6680e2df8af0cf768687aaaefba6_Z, + 0x58824fee6af2a79b5d147356523b9ff3b7c8b160025c3908878f81e70464777_Z}, + {0x3d87f4f906d142cad9216a5d454498d176ac9130dd8ca93336c5b36d93810d6_Z, + 0x52eb2a2d289c45e7f989dacd22004fb7c4c6c7c80b0ef1affe5860ecf545581_Z}, + {0x75da6243ee773fc35a2fb8e71ede5e7e15804b9ae958d1dfdb83ae347dca5d4_Z, + 0x67aa31147f05550d463b8e8a96bd3124dd64cf1f758fa87c6f60828ffdf3562_Z}, + {0x2e959802e69a1ea0733783f4c8663596f1d9b364d5cc0429645280f271f5d65_Z, + 0x6fae879ebe85bd36d1ffb4daeb1974bfc5fd0da26eb970828691fe879e9920a_Z}, + {0x29a1ae1d2bbe2925e1228a9033b0aab3395fd5659a4d363119bdc26b743663_Z, + 0x69cc6091e847aa3bf9c8675feb8982b556fd2653c5105318261e0d65398c567_Z}, + {0x5c61f16dd6f8f4f319953544c48fa14725198552bebdc23381bb45ac57cb84_Z, + 0x1122ee056b2b0c014c6d13e48d085232fb90714fc4c8529ac0f307dd07ba7b2_Z}, + {0x311f7160881284a32cd3d898fa7506029e9700f89c13cb9f44683c5cf8ed5e2_Z, + 0x304527cd8290a5efc46bb7f14f9a1424f9c9b66a3dcbfeabe46fec6d51f5db0_Z}, + {0xdb90fad7ccfed0fc75cf97b35b6f1d22d7d510ab72c493967bc5a725e365a0_Z, + 0x2c1246aafaa83af43709585fb58fe9268b835d2b3ba422d1810e1ce3b35b4fa_Z}, + {0x5ef446efc4dd2342b4af2039d198e4fadffc6cc9a9df30c16344174754947ef_Z, + 0x5c96520a785a3db8578eb44d6fec9b54301528843c6282fea2872abde592df_Z}, + {0x520027a1b8ae39638dea6298cc3679c1353b9eda5621b741b6ef917129e3fae_Z, + 0xb2a9db68052221e0b4960ceca79a04730f3fcdb4f8f1d3f8a0ebba35305677_Z}, + {0x1faac1fca9a1be6419d7bbb22da16a1b01d85f879015ca263e3644e14ccdac3_Z, + 0x4d8472d5216839936f2f625f8352974d5b1a56caa509697507a7faba9b34589_Z}, + {0x17af7912a3dcfb148596af539bcf834bc610c107c70e8388ca29896304698ca_Z, + 0x44af6671d3d058e2702d211a48367656da00712d2e860743fbd3d67069699b1_Z}, + {0xddfcfdc8a516c64dacd20dcc6f1ad1eb71bb176ce3c1dfba6526b58be8055_Z, + 0x5a7dae83d200cb51e2f05571275e9a97cf496dcf95ec8363224d397ce9598be_Z}, + {0x416b64c265bf0fb88bbe0e228283f126fafd3a4366aa70d12f006e83830c8eb_Z, + 0x40af9648af11d1531c953b5656bba6133589ed89aaad7a644ca8420a16a8b9a_Z}, + {0x773d6a63ee6b87112dc6481856ab103e41db911af31106f1e85ff970d11ad6e_Z, + 0x6cba5fdafee6f73fd4fd628c8e6bcaf912c54529f2e168ed4cb3a4f3234f09d_Z}, + {0xb7b580595f4197afa3e47746aef12836ea3feb91f5866af0fc067c900e9437_Z, + 0xb6657c903612318ad7fc133bae8db9c98d48400d5c293cd69205e3e2ca630e_Z}, + {0x44c7b00a8ae7a0e009777433a04967afc00eda9ea58a5c1b606195a481dd34b_Z, + 0x5c53bfc6507c4da87cc24c956c3d0c54e0c38408cece82015172dfddb917ffa_Z}, + {0x5b808f27c93a36db266495a42568ae7cfe2b904db3ae024852d02b44c5f34b6_Z, + 0x6664c42dd34e331f8f9d7e89b05b75062d0e0cf2f91c5b2dc72b87c663d1823_Z}, + {0x6240cc3bf7700a871631e6c95823ed0ef8b523fec3a28821efd7a79315ff3a7_Z, + 0x1a4d78dae58cc15e38e9b748cf74f209ff5870994efaacfec29b09a91e2928a_Z}, + {0x396a6b34236c379c017fd6f81f1f17815279e3ec8528d485ade529c474dfbfb_Z, + 0x7987bffa88967c22b2af6f83a282199d978c4f32dd71747e6e9422c36bc61ea_Z}, + {0x77ac38b38b75d8105da36832a916ab51394f6050ab8a147855c8e66eb6f9a90_Z, + 0xc896bd901b4cb1877e7f0aeb214b289a2f8d2a7a74fae464203556c6faa9b1_Z}, + {0x33eea635a3989f5f0eb89acf4e61e8fafb5897e537833ec817cf5d82347f054_Z, + 0xbace338a110dbf629ed80cc43b6a410a52bece49ad8c0916c0e811be5120fe_Z}, + {0x1dbcddebb6192166a07411e8693136505b4ae35f9b398f6889b127137adf529_Z, + 0x19f813783936268e2f4797ffcc5ca4d85e0ccfc61b8895872f03ed83aa2fcd7_Z}, + {0x167c5342be653bcf694b5247d16268a55e7be3921e3495177a040a15a421502_Z, + 0x5b9374664465a776833724c88e16cf3bfa0962e01907024d8ea572c62a7dc4f_Z}, + {0x14c48695bda1ffb71ddf882b153d4495a254bbb952e957de36b1f4000d1b884_Z, + 0x2ed2ba0d852244bd6b8b681b5040c02bc6f5df65e810f01330794314d6a4010_Z}, + {0x43cdb4a3040d9a5bc6852a4fd61aff473be2f4309fac4f6d0015c76feeefb30_Z, + 0x3b37352dbf40b38abdc8ed7531b9c8bd9e89cd7bb2cd4bda3496073617164a5_Z}, + {0x5844e3cf59e3b6fd492e3ba8a2581040d75192f02e441f3eb0c18fc35bd541d_Z, + 0x2605a965f9a10275737b2bfa16b1c73d80edfe7d307f197fbb3519a0499e298_Z}, + {0x12c8679fe1aef0913290d120085aed4da0a9a7dfc7d98e78c2ef01ed9b2a8e0_Z, + 0x38e54d038cfa5cf480d69caf84823a8e5f440ad04c276a29543f18fc2284918_Z}, + {0x13dcaf8d1d3473ab2a5b66e98a69a7648adeb50fd55de898adf3b63e673cb3_Z, + 0x4550b4af97821ee2a5736dac408b49735ef9a983798a460e2fc25bd73f12a75_Z}, + {0x4e8b700ea960b81c264226fdff2067b1a6d3d0dafec18f4e61db56459bad40a_Z, + 0x642b4d25e8eab539ccafc71c685de9f769c4d2d8696b28ffaa3c4d05faa530f_Z}, + {0x205699b1c8ce7d29f7f65e821b03629aa31e02170d03bd700ebc8e56f02e879_Z, + 0x5c8a942796ceb27cb13ccd2f25524b6942d0ac49bf881284e0461b91367e664_Z}, + {0x2b89d0330449e735fd402d441796c70543793a112818ce0d4c811fedf044ad1_Z, + 0x6b1d279bb22ba8e19a0d8f453e4e27ff19d5ee5d3c4662b35e9d8df0624cb22_Z}, + {0x22a0d2c8a2d994324287433af77894c6a4aad150dce5641a194b6bf747eab01_Z, + 0x14e3ffbb4560466a7e6ce69ff3920bcb6ecd41ef71e0c429b0c1d534b85f7bf_Z}, + {0x218af58a5eab24e51876f288b7a8eb31669339af0af26c11723aa8689728df_Z, + 0x550dd4c1e5c207eb53c545e7f44f39215eeb422fff565e2ea10d73349333a74_Z}, + {0x690c6eea2e0b8fc38c21c3b124ab94a52831bddc8960d9c0261f28c4ddbee99_Z, + 0x28bb0b5b9de86dc8d4ebef7a47af0bd3b8812c0a930687d6e416858a11bc6d6_Z}, + {0x4644e2f3361876e6ed3ef41b51c81b4f1f2deebcd8de09e27cd790476980f17_Z, + 0x1e396662f2fd58c2e7f318cf3a7a4876734b5ff482df84d05007bf96d3fdd3_Z}, + {0x2adca4e762c7abc025cd2357383915677649764891e64bec49d0430d10ec3cb_Z, + 0xe172edbdf1613cfa320c3038cb39dbb5d2a7b40a38b683c40b5bf4c1bd4051_Z}, + {0x2ae5ec6b394e2f023595f4dc0f683857f9e9f182d4728481f91225f2e568100_Z, + 0x1f3f7828e27b25d71157d4584bc3d05c13213ca6f7d3cb52b007dc899215e27_Z}, + {0x9715519f4d9f5bc79485dc92f62ac47c75b0cf0ab8ab17699f02769fff0b76_Z, + 0x6310eea2c61a3d20150098131f2d3a1a05764d11091caf226757a54f5c443d0_Z}, + {0x7abe13e018a0d5be2e74b1b222458416e6e647299be3a40cba9faf989183546_Z, + 0x5deada7defe77635dc940f02490dde55a5ee4a4f19245f7efc8229d58b23696_Z}, + {0x7d1a26bc6666500dcf8584959afbf92590855d78f280368b23500c739d71677_Z, + 0x109742f7ebc46dfd0518316589e9a83ea714b1d88a99cafa036e8693bd633af_Z}, + {0x22d6a0611db5b8980d9c8aef66fa1f2397f2964b6212c03f345f5582376b836_Z, + 0x62af598c1de730393503f75fb87e760ebcb36469d213db862036fe4bb5f4de5_Z}, + {0x78638c51b590d5978f8a0771aff1bcb291e4c9e61baa69c69b916b3eeeda5cf_Z, + 0x7ff81b9f75926a38b1a7ef12ebb34b86cb2d67d0a1a6f2aa01ca86387a5966_Z}, + {0x3f7e43d034d544eba6cbbb64e2a10005fd78ecddc028a2e1af80216125d7953_Z, + 0x2fc4847abb15e0177af2e9f81eb2ad392076752808db891008850e4a52e9c37_Z}, + {0x7e3280ab174481222150f6aee632713060042cb4231e53fd4128826b1b778f9_Z, + 0x502002e7fddff85e05e5c791870493cd47a718fbe6a3fdc451f72557dec3f27_Z}, + {0x7cc4202b6e4606b49fe165dd8596933b0d6fac15915d3a88df3ab5751ce333e_Z, + 0x72cb41fcb7022234c0c45ed291816d9f2005387404d333f0a0627448cdd59bc_Z}, + {0x47bda44a5e33c31b73f816dd860c6097b8f4c68b09f161a227a30e0625861ea_Z, + 0x6195fe7a34738e4c771e8aee6b21846204bdbcd043686554e2d9bf2ad7abcdc_Z}, + {0x32f186deb230ffac000b2d025de7d3ec876e3148ac806ebbb9935934ec6f81c_Z, + 0x3c636044487012dc195ae8bacfe987e1640099e2cbddf9e07f5f0d613a7571e_Z}, + {0x1e756fa128be69cf8a5ad404fe3c8d194907157d5f3fa097c83c43ef72c95e0_Z, + 0x75d6c9ec9c79ef2fff8ac6de42d4100a1d0b0601136ac9b367a1205c41d8698_Z}, + {0x115b03bf41d9f5e106fdb98d94cc420e7b2251418a2150d94c2584bff93cfec_Z, + 0x3bd42bd645d1bf03018cb9144fd6623137897536d95d73ca9129ed9e7dd87c7_Z}, + {0x34f0578072bc7cfcfed2f8e201144ebbbff86718c9d22f5a4334c7ac002ef85_Z, + 0x2c1c4b5d8189ff2fc6feb4a94a82841c8278f9374343da34e6bf0c74e1762d2_Z}, + {0x461c569e453285487ea3588d59c8480ba0086d6af3d1eff56a27943b4010dba_Z, + 0x4ceda82983567153544f2095b010f64fc1ac641afb1420cb44465d59a05560a_Z}, + {0x4d1bb0fdb75923e420d527a9a3737c65c10d488de81382f19b11aff90bd802e_Z, + 0x56ad20760a145eab94442c7400f033cd429d9d1af68187b6eb1b4491399eb2c_Z}, + {0x50061acb65190ac9f20cf550c030978e30cca4d5c2d15932a61faa6fa509b6e_Z, + 0x4249b6b48c871a77d0239eee6c17178d0a69c5e42e6550c4bc4f4a20e7fc5e6_Z}, + {0x5353c52c6ff6ecb5b11a7819244b474ee7228d3656b4408441496c1993dedc1_Z, + 0xbd2428698558a277a503c5692394c7fe71a6cd2aca0acddd33f5d87b7ac502_Z}, + {0x54a7538c3d59d708cd58a3839d7c8df709bc4cf6d976e04e3fcc039cfeb31eb_Z, + 0x325d079b25b64823f0a2879663988e51cf390b2f0bb1ed844f543a59e58a9ec_Z}, + {0x22e5dd548e9122e72265570aae734e842ddca313b5a5bc7f8da4b64bd029d91_Z, + 0x352e9b98bed95bb719cf77a57e161995a7765ae41f9883ca5deafba652d0865_Z}, + {0x4b261a11ed1754c844bd355425017be06a2fb702b9998858fa81679e758da00_Z, + 0x1791915ff61cb6e051e39095b2d2d2df5a6de6ea2fa93910274cb34ed0fa9c7_Z}, + {0x6ec6fd1c5772bf015f6db5c6c1167cf6132c35ca7ca8df68f9538134b5ab86_Z, + 0x79c6edb2e8ff788110d8b3012f5ab4663ebb72ce79c621629d4e05cf8be9a3d_Z}, + {0x6bda9f06cc36cc49c4a922da29f2c6e8330682542422a463d403c774a99b8d6_Z, + 0x32fe43ca15fe53fa3f1fcac2dfcd5b82a5516f21c19ec1c686fcf12df99c897_Z}, + {0x5acf9cec77a323e4aed7e6babc95eb73efd608e06c7a68b71db2bd1b71acd52_Z, + 0x2a55469622cb952c3184e08e95fee471d8d4dd7a2234f89f77de73f9a5f6f31_Z}, + {0x675252f7625aad5a604622e19e6f78bfe282595cc4784b7e870e298e851afd7_Z, + 0x7e39366c6ee08fb09420b32326837943e90c19710b190e77bb55e148f487c4d_Z}, + {0x18d498f8062ddf66f61798007c5fefc456af2a92eccbaad4f5742f5c7bf9171_Z, + 0x5142a6c4a107e043ba3d2d77a14533d427449773e978b3564753f4a782003c8_Z}, + {0x143c4ed078ca1283342616bca92feaa5f318751d53cd6779dbc1ff9c225620b_Z, + 0x487a1a075d2c7b8db2abf6f2800b45dc611075b04cb727e264e540e60b0b8d3_Z}, + {0x7458a5863bd1ae4d3afba58528a7aa5d21d1584bb210bab466ebd7073e3a50c_Z, + 0x297c1c02aa6f8621c8f9cf51470d743e0f94c1c57f57a513ad4acf8f059a89d_Z}, + {0x79a0299f479ed1db5b4e6f5323ce86c95aa0eb02b01d61841390f502d1fc7f1_Z, + 0x316b33e86fcb5bade46d50256ff2aecdea3706d47ad446a392a1a24c6bd5e6f_Z}, + {0x4c8f3d7ae0535a3c1c5f8648705b0808de4a5b5189779bada9af3047ae38cf2_Z, + 0xb2e1aafaf978fe082cdc8c577a0823d7fc21cd55611835d5a463d47b40809_Z}, + {0x11bdf0480f6fa704690f4f746c72d55b59401840142f39a173163cfe3274ec7_Z, + 0x17f675a570f644a665f47cdcfc639830bd29818a6c1c15eca156ad896b3ab0d_Z}, + {0x2634ebbcd752b223e625e790776730ca3010d49b0aaacdc08bcf481ca2d8502_Z, + 0x1d811c7554197eb1d67ed471ebe37445a9befcc8393bc6a96f91960dffec11f_Z}, + {0x2e623c7397d52c754a883ba540c75161c518ec299fbf430fc919e4b63867c2e_Z, + 0x5aa31e0574e2e083e7a02e779b834f115da926ea737ed5e33b0da7b6907f88_Z}, + {0x1b59ad6781fcc6b8288071b4710c3eababc630114027967a5c8ab65a83e04f9_Z, + 0x6ac976d1bc47507e5a1e5d09d27cb6fdb9d02ee724f623e4ed4869605a05bad_Z}, + {0x1b09750a3898808f9c9e8b1e89d8b54249076976cccad25d4f567b4bcc1658b_Z, + 0x6583e9acbc47da277e255860a25d3b014bcde160cb67ac1dc097dc785888025_Z}, + {0x7b28e913a5287a629620edb25fa48688fc6f04fd4a2b1639968a27b61f0895c_Z, + 0x6e9e1e2a4c436614edefefc208b5d5c83d47525fac35f4676ef561ccac03ea8_Z}, + {0x7c8cc11b3836e0e77006b15a10d58baaa128b2849669b1e97cab277f5f974a2_Z, + 0x2367dc364d06203dd257e35ef8503297ed976964ed35f5a0f17446181d979b0_Z}, + {0x5d4b98d271e027e8580da0a9a2cf007a0481a73b2e59f79642a0b5c4f88bf26_Z, + 0x594d75e358662af89b3d0bb908e8bc7b0f34a356ca449a762a1414b1449ee72_Z}, + {0x4257b6082b933da2f30728a8713ba0d14503eb3fbf3b0364cdfa3a41a3d04fc_Z, + 0x2f611777737d62bb56d77f090091ea03a6f9a6a92f9d78ca4e7c49b8e082255_Z}, + {0x4ce5b109167f77ac01e4ac63c96fa2b22bf6c041993da3ce1b485a5e4eceb64_Z, + 0x7c5003d57f3e1a744c9d866297d2ba0b9ac6901114b750a1bdff662a5f30078_Z}, + {0x15124e3e13a9e69d52ca0a4141190e74d9671e8fe770e1183c03822b44193a7_Z, + 0x7f74309a374574e6f4f732e81b06c714acf36b1d5dde258734a5267f658d3a5_Z}, + {0x42333f4b49089cfee86175af162e66919755819b63dbfc7875639fc5ffef56f_Z, + 0x20639625bb0d6cdc4fd6f386e949b3291fc6c4061c566bad953e96fabf606a6_Z}, + {0x694efd01f4ebc915688c2398849b58e2dacf85b57e941eb24b9fa0c799bb561_Z, + 0x6d2fcca13be65c1db7058e01d8be935834428aa365144b36e4e1d4bee169f97_Z}, + {0x51beffd36160081e4a06fe0ceab50275a776fc3ec3e243eb356127cdd71e9b4_Z, + 0x54f4df7f430434ad0f6022ee4960f57651fa3a14aaaa2a845886c3b9e3f6473_Z}, + {0x34302a16edb497ddc1a13127f4afecf1b67e2efc3a30aa2571e0e367551943c_Z, + 0x5d62cd1e97d96332c1ef1ae66200079e2c34dc0bf2322a8f8db0c9bc1bd9650_Z}, + {0x3b7d7c38eb68b50855b50548b0961bb991668dd27434a98680b2e81e4761a97_Z, + 0x3e4a6944456a6dca9e7cfdde738857d0e8db99526af3de35dcb6e02679349d4_Z}, + {0x6b15707f3694fe19521d42eccbbc57e988d79d1ac65604c241c1fc0bd20b11e_Z, + 0x1b5c76f58eb298bf99a6f916f658210b8034dd9a69143545ea2462b90c3a26b_Z}, + {0x21de44099f98028bdf0363c4d6439902103f8f842a972b3cfa672312c074d2b_Z, + 0x450b08f46348ab45f577aca3e90c5eed4b7190cda97d60b642a487b517af033_Z}, + {0x6e8a30f52f23f6ed7eb4ea3d8b7752449d6df7e84486a89a286543b153b89f0_Z, + 0x7704713a39e8601f7dfa4be91b9c63a47b148153e8eeb2bf54b8c70b67f1a33_Z}, + {0x353dd999e948cfa9acb61f4582ebeab16e775606b5be03d29c3d2a13b4d5e29_Z, + 0x1563a3e89c6b27baad5f2bd1e3bb864c1b59fcaa3cbf6700c3841383084ecc3_Z}, + {0x35fdf8ab25827a3472f22e6fdef7b8e8d01d6d6c8ca2ec2e5d090981af65daf_Z, + 0x6a42399f7f05b4bf5adf84e8331e28215173f372226ca710cd18b2b40f79454_Z}, + {0x67f02aceb9907cee72e549d558c27d30a3776f7e46b6749b3c159d8b97be20b_Z, + 0x8be1ac6d79d57cdaad49aa159fd36b80cba8572d1f5f765cb50985398155d0_Z}, + {0x5554c980c9e9c1009f66adf554ec73b52eb25ae087afa6adf450514b84eacce_Z, + 0x4c4275a2932733d1345d64981b4daab26e65190b613a27cf4e6034cf06c0fb3_Z}, + {0x1eb0f99a2cb77c9fa69860b68a357b48577126d6c8da4a8f9bf84401cb6f81f_Z, + 0x578a0d5f5fdbef207cbec740c5ab162fce0e07261e48a9ca6bf7613f8752604_Z}, + {0x13d7bdd9e39aba8d49f8fc374b2abede20a1bc29fb671a054f45387f1a0e02d_Z, + 0x70c6ad4bdc7277c1d72d9f11fec7df8658762f67fdfe1afcbd8f6e72900ec5a_Z}, + {0x1d980c2825bd694db28240e0069db1e0f9dfd1c151a5668d9b5f42d4351903b_Z, + 0x399db4c47fff7fc6c84708689e72c4edc2dfb29489397652e02f22a2c6babe7_Z}, + {0x73230486ed47e678e76dec21f0ffe22dbcff88071d90f8914febe3cbf1ae6ae_Z, + 0x6c3c1abd07106c220985829a2468088ab1bb4fb0a07b6ffe759f471eda00b8c_Z}, + {0x5e3652d6926d6643ed7810aefc1b40e136d2c8f50d580bb806b1ac106370f97_Z, + 0x7b508bed86cfc1ca3fab9f62b43ab426ae8d421fe2416bef38bdd992f06d946_Z}, + {0x78b5dcc2feb7a50bf0615c6bc52183d462dd4fbf8f8fc8612894d7505ccf7ac_Z, + 0x3281ce9088b825e7a58981bf3b12b6dd6067b298008601fe792f1075a47ab01_Z}, + {0x4705cad2e383b00582da583006b49332f233c581aa9ce35648810e68eaa9c3b_Z, + 0x129085212c231925bafb53736050b6cb6476bf6863c6ac3dec94566ffce3a4a_Z}, + {0x5089efe433fe56d92c8efd50437eac928f1509ed6915db457b18188d439eaf3_Z, + 0x610fb11cfed4a7a6f916853941be547cd2c14542dd6da253c7df5a39f6b4969_Z}, + {0x71c33ba83d090327fcb4469784591ffe7d41909719b13aea7322369d9f4d5e2_Z, + 0x58b3f6d6e61a8ccc48fc0ec43194be0925067b8414ef581c85005c678214bf1_Z}, + {0x28fe0bb11238665014b97bf4c21e2df94bcd67bd5dbf07cbda6e13e1b1b3913_Z, + 0x2b4afa2fedd517b2bd5b30779be6d5d1f0382ee535ae0b73b14130d13291746_Z}, + {0x6913e3ac7ff9eb0f10c39dc746831fe4baaddf6c57b406e0de32f206c802680_Z, + 0x600ca47989675ce328c6bf27813cb426273fc87708258447a721a3b953b9f9_Z}, + {0x42cdfada4a07ff2256e2b7aa5798a6f711c564816d1befa774f8c0f8e8b3f87_Z, + 0x6cb39531e0c7ca77ffad3f7d9c10c26788798baaf1052788008d7465594f1be_Z}, + {0x4a895cb3ae6df92f81b9537c5ca87fa2fe3eccdce51eca7305d39cf94cc0fd_Z, + 0x3076e7f66ef42a3a46488b80cba0c9b5b755ffb3acf50e99a53afe43ddc38df_Z}, + {0x6ba92487422b7717e63c8d9ffced6b1057f0dd4b5d8581f8289fb79bff8f616_Z, + 0x3c31c300acaac2f095416426e587c08fb4e9011df852471a2b4b54c139211f0_Z}, + {0x3873c32471651ef319bef80fc7f885fda79d45341fb88ccf5ba26f542a57535_Z, + 0x55dd960b1f5da0979beb7cfdc3581ff166c52c9dcbbe2ba34b98ade54336e45_Z}, + {0x645f2e1629ef655ad9c6a502f8a13f01d0bbb8167238c3f2ad1814d34a0e863_Z, + 0x7551e3bfef3c322cf0929a92ced1e8e5b13f10d36c656ab5c7480015ee2853c_Z}, + {0x437684dae956f29f97ab427a0cf480800c5dabb074a068e96eae7e9513b7eca_Z, + 0x75b8ff513a7fa3316575c1439f690f06542efac5d8fcccb67cc4b389db29c22_Z}, + {0xb4294b9cfb659b568f79ef5f9384e837e476e406cab18ed7ad43773e616d6c_Z, + 0x343970fccbb7f2678b79a96f9720891cafe6ed4cee2f718add8508bac06df55_Z}, + {0x41558a0e4603aad44213cbcaeedc9da7710f5a069b563f8e4cb493ef701fb36_Z, + 0x75c61fb3a1b07dd94fe1d876e9ee10f7b03cd662e3c89331042a855627d83c_Z}, + {0x6ac9b8bda77b16bc042e45efcdeadbe70eb4ff0f12c06b02f76374661cb4c11_Z, + 0x161d60e17f0e5e70a35437110d5c2f79cfa9722c04e4e92b14f70fdd1c18f6e_Z}, + {0x43aa2b70ef660de80ad8f4c0d5d965633d8686c030b06b6bb6312c35e2ce2b_Z, + 0x517f38a92e44f43eff094ba0b6f1df836ed5b30f23bf4975c2a0f8e19c6d04a_Z}, + {0x5f82db6d6eab266e07179a877351dfbf7ab180ffb42767a9f0cf59aa4bcde05_Z, + 0x67059d8ad9d65a4658381aa549495b1f7f24d167f8b3649656962ba3c56aded_Z}, + {0x40ede50e36ba94099023deb88750cec92bf290a15e9db556f6ccee6d120e51f_Z, + 0x74d312ac4c763ddeab678a5d2b7ab12ac3d0578af6366ce1c5297a881accc3e_Z}, + {0x38f42922f6d1bf2c88834b6ebe4d87089934f4e0fabf22151ce144b72b5caf0_Z, + 0x453d82bf1347c15912f3664c1c3ae8e9266ff67234de5d8e60bab927625dcb_Z}, + {0xfd73c943851baea1781dc61f68b2d004e01d3bfc89af50cb5126095ba9f17e_Z, + 0xfcebfaad59794aaea0e40e0a6d44f0a088374b09ffb4f73c0944bf1d1a0e23_Z}, + {0x60317a7a06a2df8b3f58136510030a8808fdb9cd0c601e3c068af7a53712452_Z, + 0x753e564871eca54c6101c9584a40851c18ae7058e239139cc069fb95bd34574_Z}, + {0x29a3aae0e6484543a413f9013b571659adff12260e6bf0e778d41f0fd754106_Z, + 0x885b9a319dc7b61d64a25bafaa231fa2908e2095dbdcc9bb80aa67cf731b04_Z}, + {0x8bc9095b18a8f7b6154f2adb31b5b0adc38cf2168cd71d04fdd541d27ea768_Z, + 0xdc8b1e50d421768d0be16796fb98a43e0c8cd3aad2131640cd7f6f67131c02_Z}, + {0x2df1cd3162ad44b18fd0055f8e6f19de30856b911b1ee607550dc8a1343c60c_Z, + 0x2417c31469a6572273f77cbbb41602e5028ff783fa12b5da8848ec5e638f21c_Z}, + {0x5c643bc7516efe14436d1c8a5a25ff9f24641dc30b6a79469b922ed076fe9b0_Z, + 0x60b3846dc2d887485b47250903c5bfd5958cfcad24c57b1ff057bc18ebe092d_Z}, + {0x1f0b53787768fd5876ed1ad1b94b6ecce73ad7c75c5586bc7ba1e7463bc0f09_Z, + 0x7850e21d3d691e46a7c1b7e2b5e4af4839cc6bd741ebf5f31311ce577a7384f_Z}, + {0x7881e33114033f21627646bbd2d69a0d10a54f077e8ccf8ad4c95590b8624e4_Z, + 0x6926c34d1fc46982a04d30d466d1cf38de7a2bc1783829bacd42cf27b88a062_Z}, + {0x7e30b347b103a146d5eb9362f33bbec85c820a7a3344c31cc30d422248b8425_Z, + 0x68e087a29ffcd414e29ce5f49b1b511edddcc1093546d2fd6ee1575dc88d941_Z}, + {0x3c1e0130dbb356d5ea89ee6556e151cf22423c1157fbb19e2e055842754b7fe_Z, + 0x6e5ee957943e6eaa0de7dcf400cdd7b131d147e560d1abdfb68acac457787fe_Z}, + {0x4e9db25d49e5a62a5051bc80532fd6d2ca012aef53b21a733870cf854b78337_Z, + 0x45d6d3a33c0afc00f1c7f05ad61c36192f2a2306b44ee8d92e813e99303f87e_Z}, + {0x5c576f52989f45ab512736502917d4468535542437aca24245e786540034dc4_Z, + 0xfeabcc9818622afb386fb06445a38e20ac703ae6c096cfaae8080850d2c24d_Z}, + {0x66a7fe3667d0490bd3ab9a673d13f26f8ba7fcefa2efceb23ed6ec880df9e3a_Z, + 0x1ba405adc3dbc009b17c991388ece076bca24c4fccf5c15d263ca929297a17b_Z}, + {0x49e337be850275fa6ebcb7ce8c265e1569824521dae3bb2b51233ec625337fe_Z, + 0x673d5bdbee6e8cc16a839993143d86d78ab9a93b6b1df3dff15272d58433e83_Z}, + {0x1baa881896903dccfa0490e4b1721d265e6d135089a321f79c3643d89256745_Z, + 0x2e2309caa98f46a21834f3777fae48dcdbfbc7b65c162704f824c4805396d6_Z}, + {0x515eba84e1130dbe07c7f6e8ec6464efcc26981bf740f7c4507c6cddb261ddb_Z, + 0x154955581b77b779b7b0fcbdcb5da3b33a8d23ca28c81051c9d7e7da9dda716_Z}, + {0xf9f5456acc172c31c7333ef38617ad2279a4748968966948f1815ec258a509_Z, + 0x5b54c6c39f90c4941bef128cd8aa62a831b0c4828de5f7c97d0968c16668ced_Z}, + {0x1d77d149acb3f96e20e6613917d13b71f5cfd75761047b3ffac67241a20e66a_Z, + 0x7e573d7b6b93fc261e86df335a8711c5ad678cf3a38485b833d9641457a3cdf_Z}, + {0x2a0f076fa7bb20c9c201d3ef4632b05065a2cb2c0f77a1dc2c793f433c377a2_Z, + 0x79d83b5b8839396eb9a8861d38f37de06443e3a4464f4c3018b3679bdb2a56b_Z}, + {0x369185209d9ca7406512f7edc18de2edb3940553369b8fcbc63fe7cd1b89f56_Z, + 0x469ab82138d8ab813ef58b834f651d4d941d586d3da412ae9bf23f153b18f51_Z}, + {0x4e8f2d5232ee9352e49586f3850488661f3341f40044888661286ceee512429_Z, + 0x619a5fb3c7d289bbf7ccf6142d3726458eddf6208f14d83ba02f59acb451def_Z}, + {0x2747f91c91ab961494d5f5255c6f72103d785be6e272d73fe0a625229b3568e_Z, + 0x2ac74dd2884255b1e3dac3451da96c6b83e284395735a6c642120a5c617b02f_Z}, + {0x34fee10767e32de09259054204496bb26d0f341853778b17295622ef674971e_Z, + 0x1a3587acf23d34eef9dbe6a6f90001080390c20e923d34f052ad9e680d27347_Z}, + {0x4ad8e1a9e2e5b3e3227eca0d75a74043b7f74d232a792cd8f2357c55c930a2_Z, + 0x1ed316966e5e3161367c6e140110fb27fc64061a91abb294b745f12bc540801_Z}, + {0x57e7cfaf0f333c11a0ff343a0cdda6329608ca5d3c8eb9b34f96beb3747249c_Z, + 0x560cc3daeb81fefe7d050522dd12e72300e12991669ed760c59f2f033f5b295_Z}, + {0x51718e417055b3909d776460afa5af6ca100f4b5f27129f9a9cc6c584cb88c_Z, + 0x42ce6a1d312ef5ef72370b6e472561f662d3fe28c07272682401dc14b506ae8_Z}, + {0x2a3101e3602f98739bfda54eb5de107009925f9e736919ad817bd777ef23e89_Z, + 0x4a4fdbecb1ed19b46976519dec4bb0ef6f89ce26bdb6297db1949294c8b48e4_Z}, + {0x179cf026a61750887ec5c12fb9373f53cf50b783e548c0d30ce8f4f8aeb2657_Z, + 0x324f92a1490079175ee248b860306b8abda8d67df16e6b8154171f0b7d2c7e1_Z}, + {0x717d6a597afae02078d0fbb1f5a7d890912f7ae57b3d97daf7955dd4e2ec9e1_Z, + 0x412011fc5eda080ebeb84a90c0b7d80a08d368c60cabed804af3a055c4f9b37_Z}, + {0x4c16c7b9bd26ad227b063bf78565cceb6edb5057a30d281ed359a32610724e2_Z, + 0x4a134c96a461137149e69f9d8834bdbddd9efed68ba1784776c7021e264586c_Z}, + {0xe96fc44c79139addc82377706e7af3c82baf7a8a043907b98c43439e5d2e30_Z, + 0x1032b759c03b49fad3799975ef781336b68da2f3f9a86b10c75d35f4c5b9516_Z}, + {0x40ab909efdd9c9d929ec933ebb9de36bc388b5dc701a2aeca6e9e302151393a_Z, + 0x510cb53bc0aaf2d49db23ae16a0c7653dedeec23dd196a61c00bdf18f32b8fd_Z}, + {0x1f14f576df12a693e41f1e0df40316e80f267aaf9b73a6fc8b86a625b2c6b4e_Z, + 0x5d77054a0d97fca6371c3741de544f7a1b03813b63cedac50b5123a4dfa7c55_Z}, + {0x2dc023f3b323cbcd0702a1aac431498d65e689e27ca4dba0a12a31ccf49f2d0_Z, + 0x5e4d739e15b2c7d031eec12fb308b588da6616cd99c1f7dec783b456684a0d3_Z}, + {0x3080fc9f579d884e3d31482a7b38d3986012ca383d2eb1bc6ec237f4037a680_Z, + 0x6976f6f475ee34406b50e0625deea7e57c1c94ac4abbd62c9e52028be3a1ee2_Z}, + {0x500c83f78817833f09c4aa54e7559f1782b73343888980600ba92280f1400d_Z, + 0x869e9196270ce2f9d7ad3fc51f4ff81245ab66bcfb1f6123a7ed78d8b01da8_Z}, + {0x70ea074c1b2bbc9c17433068ab041eb9fc888e1e257b0e70e7fc1ef5c4f8992_Z, + 0x27b443b728d2ff2765d414a4b63fb23e273b219da7cb37967804d9317e560a6_Z}, + {0x5481f2e4803b7f2db575a267fe20694ba058b93cd6a7beb5cd33284a72dafbd_Z, + 0x247b51d83ae103241196cd7fd9d0312ec3b49a9a6e32fbfdd03a066b6012dd2_Z}, + {0x6a743026c6075fdacf0da6d8d717c577816fa9a78768c74e4ae0a289b394df1_Z, + 0x67ea02eb85f1ceb26d8b90ec1efdc54c1fcb5724d9917280b282beeb6f1692b_Z}, + {0x9e71414e336b991f37d0cd405fc4acc56e6f8f1e28dce6da5f3f114543e3cd_Z, + 0x455ce2dba80c456118ddfc021b8548d12942689a4c49e0620d1ae57163f05db_Z}, + {0x2ac6f01421c7dc90742bcf279bf4bf3413cfe57136ae224c3cae77c39499494_Z, + 0x4a53485a82876c8cf990a685a856e55d7b44eb0c9e663c9c7ba6a58b3f0d164_Z}, + {0x50fe102ffb5664c5da29704a2b23286150182da218db47eefec241fd6b5359a_Z, + 0x82d2461ea8e50308c307be5050614f4ceede8cd5be93b9df8a12c25b46a919_Z}, + {0x2516219050db1e69f5ea2c656ab38b07cb19df02b7313ecdd056ec4c9f4440_Z, + 0x19ec20c066f9341555b616f4f3b2462afd57d5b78ebb4864d341545b819907d_Z}, + {0xcefeb541bf9a77bc74fca9200354e3e8afe3df7fa483984dd539a7f9d6b040_Z, + 0xada3483ddcb274d5c12c5d629dff3c8d61a00be2a478fd6d3e09eae061ffc5_Z}, + {0x4937a380a265c8863f7efebc41a0b3d512861969efb537cf376bb92b383f0e1_Z, + 0x12395864741ab7d8cddc37b3e9b28959110f8a90fe6f5088091528c28f0d722_Z}, + {0x680f583ed47615783be15c08760edcaa27f1b5b605eaef85a48661f98cba480_Z, + 0xb3aa31c239a881b465eef30a48c69d57a119b73c67a6921b4cc3d1a90da941_Z}, + {0x25a56f1c0062bf748c6472fa11ccded695f2b7542562331ad36c4bc1cc755dd_Z, + 0x6e73d0bb790978887d8381596a5f7c614094ed5aa8c4f196d44f32e12f2d9be_Z}, + {0x3a1633fc2ca3a54f96ed0494e9859c4b0b81707b813fe02d6f80a6a2b2ed6af_Z, + 0xaa91ff4b0d449b7b5d73741bc8da8611def01cb042d6147274a6a921b66ece_Z}, + {0x13e2d5b2e6137be89d60b6220bb1f1b4a1f1b2f2768bbdf6ef2137f6b739cf8_Z, + 0x3c87c29f436d2cc941e7f260be058c8fa0ce134446082a80076609d95bc8514_Z}, + {0x27e3dddf634a4efd734b78e74395714143a3fc10c6390b3b89e4df15a573046_Z, + 0xab8ef979cd7ca06d6fa4e670f855109dd70b628150736c627637fcf1689447_Z}, + {0x49928876747da068fc49ec448101c0f65a3346c42555e81d4e11d1d057cd37b_Z, + 0x37eb03ac2b0d0391da35aa19727b6f7ea045ff216a97b7a4bdb84998e0e4135_Z}, + {0xa4e729b05c165101187cc49bf3a27ce854833c11eb8545a3f2f7f71df646c_Z, + 0x442608af3c2dd023ef2773e79ee339be89e36a8ae94c60a9f587ce37bfabfb0_Z}, + {0x5c20a597f2b94ee836aa31de6e21bc642747ee17b6c8c77615f9c29fce19f53_Z, + 0x64a6fe6580cf7373d1f39a5846fc4f92beb636689f86533bee2a62caabfc465_Z}, + {0x792c81a8c4eeac3fe4630bf2daa6a5e3045130fb1e392ec52489296adb614fa_Z, + 0x3efd54cac4852e39d5a970407ecdaea6d6e5b5bcc21ddcc6a5349733d496cd6_Z}, + {0x59748898c332e2208424b81e916f15c18136cc027cbec672197fcaf299debe3_Z, + 0xd8c78205bc6868bd2822ccfc80a8f24301baa635bb34fcf1b4b635ad63639c_Z}, + {0x7a9963851201f75a329351770c2ba63891d075538336574fdaf3ccb4fc7fcef_Z, + 0x65c9b2560a9cfcc16784a2e12dd1fac05333122f660defadef3531796942aef_Z}, + {0x56705874ce12c9cc1d57afc81f15015f3874322f60444f9de57a65fe12458da_Z, + 0x1a82d5cf99ef79261a4e3d906073eb4e38a071ed5c67e8cbb64849e7eab5d95_Z}, + {0x62f84bf5674eb90a848f0ef991f7ac988a3bbc2e217e7b3d6aefd9fd6a9c8f0_Z, + 0xde054544753eeee1aaa29b381b24cac20b5856853d23d35df2091ce1dc610e_Z}, + {0x75be937986547604c1030e45a493fb975e16d43b467586ad72a3fcafb306246_Z, + 0x207163c590b95f3b0a6563bc6c07fc658c1b95319e70647a1bf5d3ec5410494_Z}, + {0x735dbe43a0c9df1c0b85aceca32ed9a1bf6e3c56ea1731cd8e04b54b6777dbd_Z, + 0x4d42712ca8cf1a95ada153bb272830bca5048268f95b3c959a25f5a28ac5783_Z}, + {0x6363de5a4832ee73691d847c0eaf3204f0110a8f67870406f74480468ea6d78_Z, + 0x3f6485799da1943c68602caca14c5bf4caff3958eb1c0e2342ab28e89aa85fc_Z}, + {0x277c51c5f931f01c0893e8d3ae5bb8b5c91feeeab3dc4fa8bfdec413228ddd7_Z, + 0x4230784805147c15e6b01297342b741365ceebb9bd3da1c45bb3f68958a9438_Z}, + {0x331043b70bacaf8b38ecadc7e16a4417280ee97643c18194d401b12544267fd_Z, + 0x53f15698992fdaefccf2f44d5c5393b62e1f511cc51f62c776c27cf89d34089_Z}, + {0x60ea9a8a3246c8f369ba91d224517759f54549fb596aecb81dd47e27a6ddd0_Z, + 0x69ab37615d78e8f00ac111dfe4f72fc02a55c464c72d4fe7e3e26d5b15b2f7a_Z}, + {0x4ffb11a7884dd3c292109d84afb836c377a98c0a74da6bbdf6b42bb4eab237b_Z, + 0x75e7280d170d7830b9207af8dcca064691fb7a99c42a8ed6743624d1794a9b8_Z}, + {0x3f317f7931e8ae4617d1203ba1b6989fc1d938acfaddd1d09c878431e4249d6_Z, + 0x3b2c6b25367c29a30c40b7e343205337d10bf2e003b8c35e7ed721b2580f492_Z}, + {0x5a06c81351ed13de5c28ff1254efd779d2bd617d1387d7b22f7940e822942a8_Z, + 0x58ea74de916e355ef7d1ff94c14a70d921245ced2c9b4e8132375d8146bc2fc_Z}, + {0x57d2114ec52af5d112ca499de7564baa97ba04563655c46a838ea9ff4c73002_Z, + 0x20b994314ce1b34309e3034d51ae32a615ffa13948a0e918a329de7c1dee9c8_Z}, + {0x200f3266af4e0c2a0b3bec3a88ad5c6f138955d20cd6bcb906c337c95eb4415_Z, + 0x176edb1ece81ecf7ef88ccdfdf8f964e64c961660d868d2c4ada454205dad50_Z}, + {0x6a85478cf0ec78b3531dafd9b6c7c24644cc95908192ca4d8982f4c08e8aef4_Z, + 0x4725edc324c9cbb414345b440a078bbb7962c2dab05ec91c766fee37d4857c0_Z}, + {0x7bf511a54b0e0245f20a5824bb6e020c60ce0c7db030d5b955f5b337620f219_Z, + 0x60e54196e1bd4d80a5ff5533f81d89d1221c0061f9d92916afea61367531710_Z}, + {0x377e8b5155730171b79339476f3e23291613a6d4cd24449da37f2dcb18f0061_Z, + 0x6c57475bdd1188891a56d0977185be9974bbb7435ee0c1f514f78080536810f_Z}, + {0x1e6cd71a6ac437a2e610484f03c252581fbcc0382976c4f8d0b1945f9706ba7_Z, + 0x62b49dbb88390c644bea307d87fbfa08ad6d0a81bab414a1de1c47e9d2febb3_Z}, + {0x1f560c6ab420a1a0d2be2d1ea0de11964f6cdd97020a88143ec1e7bdb4c60d4_Z, + 0x5659e102331b3004a5f79011419261b96a0013e0ca88dad953e41a49152b73c_Z}, + {0x3fc7f5d294fa7ec108ba4b88eab8dd875307f2e59a1915c64e5319467494bb8_Z, + 0x3c80befeea7821ac786292f123c616dc8fc321d61751911babaf404a13804b4_Z}, + {0x444fc960b6685225ad8fe92d306aa50622fd3be5414281f16ef62ce799c7237_Z, + 0xa14e5d2cf6089b7c38731e91dc8fb74c3effff69771934b1aecf37817d7921_Z}, + {0x4037b6fe202f20beaa8166ad91d2645e50858982d9bf5dca5293825532f4d85_Z, + 0x45fd440141e4db02d44981ccb9812e255c564cd7e8d2b1955e736fe06eb6f13_Z}, + {0x762168996c3e77b068348dff3a79866a5363a768e58ac534f3f1679343705e5_Z, + 0x5c10dcfbc98b71d73e6ae7c93c90eb4c3cdbf70c1894bc8bdf135fd4d30ae65_Z}, + {0x76d7cd37e8ea31d72a62285defcb8363a39ff88a3d6867c3e8b8be5feeb154c_Z, + 0x20968e6145313a493d459bb568db6d2af09dd1430afc9c4da5f3fcaaaa08223_Z}, + {0x14e13a565d5bffad665aa6e1d93092a486fac7a707f39dbb3ac245355b0e34_Z, + 0x11546bc481a890b7d88273e5722a00ec976ccb4c51c0090342cf0db1979f3b7_Z}, + {0x75f4250929e028054217e764dc22e8eaf9beb8a0027e1f4beaae0a8b4da7caa_Z, + 0x54e9097a3339ab63665e18e15c7f54763c5076d078c3197d7ace9994b286198_Z}, + {0x2e00405441af4832b78d0aa70ea5bb0050ccfcfc819a7a2105f4c63a3bdaaa0_Z, + 0x5a77448f7388085ea6978f40cf5ba8f18d0b0f2be350f4ec0b9d9a1bd6ea500_Z}, + {0x5a420c4d98617112300faa59c23196531dbe77a5083ee6b413da88b103aedd4_Z, + 0x2f5e1e16645838a4198bd8bb12f3461734841e6e591c3be6e849a2bbbe6e7ff_Z}, + {0x4a2d8f8615824de98efcf0b77ea95315eb0bb163a713a19b816a81527dd7edc_Z, + 0x1c337c2ffa49be75e7110d80dfb37866649aaa4f482a9e5d2af71beffa95ce0_Z}, + {0x6c00424c9d851c2e2a922fac4ad52961457dadab9835254473a6a37eeb24ece_Z, + 0x344c85b81b709fe6d701b269004a7b564f673ed8504a605652f30e5a0c9d47a_Z}, + {0x3bff7590d4154411fb768b2a00fb2b5d17f07338c5fbcff9ad63d4247ba16d_Z, + 0x16afe52d9340315d5a2fe2d9f0493fee0921bf37bebf11e4e03bdcdd902157c_Z}, + {0xd0fe726a7c5057c891e955a42df5a33a1b5479a270ea075c8cde350c42b0b2_Z, + 0x239cd33847e8eef3fba2e9a0eadc7f8c5f6a2c6a24aab87152231e24479da5d_Z}, + {0x7d7d66bbbba8cb54a0ecfc732a6df87622c82cfdf9a244263fe3d554f8a0b51_Z, + 0x592167da1bbe7d08362b9ef71bd5fa69f11d27434442db15ab507929103fdd2_Z}, + {0x7bcee06abaa11251a294b041fc21102b1b60bb2dde33a164e9c246dec7de24c_Z, + 0x16003366f985bef69b3b7ef9112f0dd7256f1501f8aa3e525d0f72de5885a32_Z}, + {0x73b43dc6999f3c2c456934226cb7fae52e96c920e193c3c4aebabf38c31149a_Z, + 0x2ee9846999a7809f6a26ba7c0e3ceece2a02e02e03be122fec782a424223e4f_Z}, + {0x5080a7e441e7bd443c39cca3977e3ee001c3e81274c6ab02ab5d36cdeb896a6_Z, + 0x596f2d72a412c6c6d42ae6812d591c89e490dd4e9e7a96315f5c04c3b65c65_Z}, + {0x48c801de150490894a982f8a86f71af65f7c6b6e6cbbb2aef7df35d13c66de4_Z, + 0x6d080bffe4f2214156a8acc6301d9df24dab03e692157ee170e7c6171b600d6_Z}, + {0x2ccd344949a471541296e01e27a2b1edae8d3b8ace42a6e4e2a49ef62ffb9b4_Z, + 0x30e28f3a7b4c218e473fed409187b45f884b6f35cef64188bfb6c22ffac852a_Z}, + {0x6f56805519932fdce386a179a3d011ee48049d58731098235d3b950ef3ad786_Z, + 0x35a1a2360c3fef160d3d2669e5fa01c86714e6a1ce94d9b8042d186b10d48a6_Z}, + {0x3ac5cc607a7ee069c47eda5d753685455b6663fc35787c26933ccef7d3328bb_Z, + 0x16def6807a4794bcf88e3426d4c5f17a5d2e171493e64541a0a4825c0257d41_Z}, + {0x2ba89dfa5b15fe506a0afe4582ba05bfa6c9347e2e95c3089daf79e5518795_Z, + 0x633c5714af166068799767833a573a498a4bef12137d14cde354eb5701b6de3_Z}, + {0x421442d61cbceeae384d3cc37d6960d41388e03a620df5f1cb14c4f241b5600_Z, + 0x2afd64270905442c3bcd12f362f93420ddce90c7e7c8381c2e74beb87a435e9_Z}, + {0x5ce4e2101e5ab063bb01aebed2cca69a58417a139b569377c963f7dddad5cd0_Z, + 0x364ff9b91882f05516eb4fee2f447447aa31af32dedb47b0b8c4c21d27cfbb8_Z}, + {0x147b22050e955f58b85fa97f2d7e256aed0b5cc536f9628f1060acc48292e14_Z, + 0x60e64217e98a5bf2b85a824796b9e45ec204a1e83a3e057b47238d43bc80e0f_Z}, + {0x5a017a8af829b0f1d239e5cf1b5a55ca869c1ab4b3cf8a2f78ae4e560b97415_Z, + 0x79e870c71f05b1dc05ef9f479d3a8c8afcc18574c453a9fc9a05b83894b6661_Z}, + {0x38df2817db7c7d755fb1ad252c858d41ad39f0baadd850d8f0aa009c85a482d_Z, + 0x6841085a5f5b3511fab46413461480cd08ec0fce43619994c795c23b2a64bf8_Z}, + {0x35ab3a2b0db6b2e036da4f2bafec962ee8f967da06d79b11db052d7403ae03c_Z, + 0x78bedea30ea8a832a3376e7502e319243f5df7e628b50a55bf3f17e7d03b60d_Z}, + {0x1b357fa2259b7cbcc36dfdaf49340268d53ea4e0114018dd6c5dace59b5e852_Z, + 0x39a5b269a391cf6b68110df5f9e8f1e0710e36064391bdf429ba82333124cbd_Z}, + {0x4f7148152567c9af0149719bcd7bf7ff7fedb187e0526e93ed3cef310cd32a7_Z, + 0x26a1a51aa8e013de698a0f644530dca83d3a4fc2daefd6e6c71c5e6c074ea64_Z}, + {0x159a8c98e7616b8806a273a8e149e08f297ba52ec397a8e66329e5dfd004d9f_Z, + 0x2bce0a59ddbeb0576ed6db48e65c72aa760cd04840edc07d9cbaceed05d47f1_Z}, + {0x62bba8eb18225b139e96da547e0a4ff135a6b180d2ceff985165ad4c8aa3720_Z, + 0x4c20a20866faf537239f82474cd0ea7dd91aed5e0086355acf285109ad54ae4_Z}, + {0x186f0fe9cf69c8e320d168f98c49bde2074ca75d178c91e6b6e5216374a0bad_Z, + 0xdb0224b7764586b26e8d08e000e18aee5f0d4f1c513c57ee6ef927d37c53fe_Z}, + {0xef766c060dca040a1eb958f8cbf0a183972dc26ef35a1d42ee7745609a5a97_Z, + 0x56ba478b6f35ef829dacc2e1bfd4f85a279d342c302563a5674856a57b79a11_Z}, + {0x40027058e2663824cd5d692c1b6caa1208c70393f072a6b0df34ef90ff9cc7d_Z, + 0x335e52580a582d146938ce928f2ba8e3ba9881bbf4d365289b0c75175f4f0b8_Z}, + {0x50769d9e1b2e7f2a1e7fc679d3cc0831914fae2e0f00ed54b2850b3cfe737d7_Z, + 0x1da30aec069c80bf1a33280d265d28664bc9ef996ce4cf7525217c6bb43083b_Z}, + {0x1cf8fa795bcbe70f8e176dc4e0cbb82f108905a32280cc733a10c35df4c4c51_Z, + 0x3bccecf7ee6d3faf0e50672ca19100b66bed3e43144b7356bf6fb752b8e400a_Z}, + {0x3a1cf7b86267a04c9d018f1bd11976218b8a8097b5ee87a2a20297be723c7f9_Z, + 0x3675846c670987be8b0463f4b745954fe7f38709d7318fd7c9300b350b857c6_Z}, + {0x347ee661c8048c097a546f7a02ab089ad325960ebe3e4dd85143fdbe7ec6fdc_Z, + 0x48602f8a71e65d83a2ef74e6b77e57e517a8baa38516ac58eeab5e6f78d411d_Z}, + {0x701d24b02d5022d842ea70f164c208fc687706f6c2ec8eea58b2241232953ff_Z, + 0x2a3642e63ae5cfdc5db90219332e058cb7437815fe7e5368cbcef039cc955ce_Z}, + {0x24c1279e991ed23a43466d27cb77ea8c69117ae41a310e2d938b647213287c9_Z, + 0x5c38e3df29e5c861334404ee136709bbc08b192f2fa65699afa1f7f91c61d06_Z}, + {0xa9a3513a16a0ec1962072ad81fff8bc3c09e6272b07c2815725592e9dea7f8_Z, + 0x7501eec6647e29f9210dca9862df6ac9a5ceeb49006cf500175cfb81334de02_Z}, + {0xf92f5d803e091914e1633e9ddbe2c2287a6559342e2f1eb1c19ab33fa1a695_Z, + 0x18d236ef77bc4a7e758c9a2084506f7f9f52284805827f411112f34c1518b09_Z}, + {0x12a1d4f4461db0fcac6e15129c514627f3a3f2dac2c4a3b82899c5f02becf72_Z, + 0x2987a7633228ccfb0675890d0f87f65657bb330807597b32958df87d0ce39ce_Z}, + {0x2016475846c25a7e90a12a1a8df7ed4966f4f4eca3d824cb5e6c781b0530e6_Z, + 0x601fdb808d4739bd398315b0d71ecac2569e84667242202a30d97b17ca6f489_Z}, + {0x4254e6cd8e16ea49b9dc718ae9c2ad2de0205c6418e0b6214e55bb1a75f306_Z, + 0x799b2f89383f0c99ac5ac061daaa400871833617852a3369d72a67c6bff860c_Z}, + {0x76acede608b8a2dcea601766dd4bd9b7236703c2b144a4940b05e937fd536d5_Z, + 0x3ed889fb9e591f92f8db79abe60598fadd30bb249bdb2c0c5789c69136cc81f_Z}, + {0x1d176bef7f2a5d61c3a96d2b7115800054679b832c7f28855e56a594d7cfba6_Z, + 0x1d0bcd12c94b5059c5a55bdce5c726563e21b2be58168974deaf4af1a7238bf_Z}, + {0x2042f7df7e0a74d850b9f6aabe748df6dcb61dc747d353f4bf1c5e8e42f86dc_Z, + 0x42069b11d90283d36bc9f0266bb6e436bb6377104751f74e10ec8d89249a8ff_Z}, + {0x2df366d0ca086a2d963e72f3b4cf01de571e19175fa46f70543e37b18751a59_Z, + 0x7565346573c0683e47796cbbc3482333abda0f3e25b0b26ddfa588f85225ef9_Z}, + {0x58121cf9b2562db3e56d78cdfee787f75e09470406eee04ee1c987a84855f74_Z, + 0x7aff5ab2427a9cb50cef8d4fd90826d7b1b85a2634d45dc8c79abacc847adf8_Z}, + {0x349295e173993145173b5082fe5cb5786051fd00db330695b41966e3190ccad_Z, + 0x6b0257ca8e49c67ff1a6208ef609d36aa6846f3637747d32fc8f31b9d288261_Z}, + {0x4dcbab28ad63e729be5462418e8664954a75b67e1c57dd374721d90b72943e5_Z, + 0x14aafbbfd8ea06c270ab90eb57a57c7247ee9350f68412dbeb85797451a111b_Z}, + {0x1a5f2db1e215fb967f56bedc77daaeb192136f11042bdb812ca44423a5b77f7_Z, + 0x2cf8b2742451ab857f642dd36c6c7ae02ff5f8544a683501598ce0f3bb6cb27_Z}, + {0x35f6e6e50c4ba71bc912f6b6da6f71ae00b49ba69a0f4476f7b4bf62e0dd71a_Z, + 0x36d494277dd4b4d74b325ff65510df72d64c333f5ef0a83805b9ce49a67b2eb_Z}, + {0x48d962f990930bd54902ca5ec4e80f263b52a7bd95d70a9142c9534fdb52f78_Z, + 0x6af3fb454883130df9f894527a738df0f188c353302389b317709796ccfe274_Z}, + {0x398a3272127a5bbfad04ac9e9f0c82869c22a2ac486f76f20dad37601552c89_Z, + 0x1987f05fe86d12fe6c57dddd4fb31093fb3fae8a9df1c876960eac2a157674f_Z}, + {0x62c1c29ef8925e3f6f413d40a8e9a4b538f099520673f462dc30119c7554d04_Z, + 0x756d90321c37d49b2f08182ac351eb9ad8d0220167dec9f901f6eaaba801edc_Z}, + {0x3823eac94d69cc1d66b502b9ef270585c46285773a404124c6126c8dc515fe6_Z, + 0x6a1e01483b55d86d3acef79a5977c5c47586758698e28c4a76066cc23c9e302_Z}, + {0xe5cfb8d64ed97c741399d871ec03e6f3d61a4b3028506d36981c5e43ce1d7a_Z, + 0x5a6c21c75aca6bef70da755d4fe14b0e094d51d24716427ac2e2831ce4cfd2e_Z}, + {0xbcc984d2448acf454c19e80aa7e11ebba2b6676831b49c6b622d590ae2005a_Z, + 0x4f730fffbceafeba9576ef2b5da0203a058781dcc0611b37cd6f598a1918b5b_Z}, + {0x7425fc03e2322bd1a85bedf059eabb73ef1ab8980c071acdde4327f9104fb19_Z, + 0x6d37d62b1caf99ebcb5ff7d7b4550edaf6f66b314275783e91458e568f7385e_Z}, + {0xbe03b736e4ad5a955b009e5806e4914910a96c52ac210b0603f0eee2821b9d_Z, + 0x1706994a79713b41bff06c3cfc555b50e232f4eed4e247e1fcf59404c674c86_Z}, + {0x779a94655d788e4ce933ca5695e49d98f6d9a049b29b1f7ca926b7f08ce6931_Z, + 0x1c77a3559d02027a390a03f7147507819b109f3f18c69e9d4924693b96e6984_Z}, + {0x42cb005e2184594ebb065002e9949dc13ee0bb6177cd6fc6403c9ebe90f54ad_Z, + 0x6f65f30bc85222993fb679f53031065c078a76630758007f19be35ef3212558_Z}, + {0x1876c2ecd5c04c4b29e67c41d51ade19291a1775758e2029776c744868aa725_Z, + 0x3bd48ed05be3b33d43bd692ecee9033b213d36df5473180422ab2fffa0578af_Z}, + {0x541da15409bcc67208c9c276b76ac862d25319982816c0ffda209ed97c48a45_Z, + 0x342df7468f749b8a32567aeed07cfd240a3c8d043856f85591b8aaecb78eef5_Z}, + {0x491819c6c4c53f44f8863db3fd75b04ee897cd4955a16bc81c0c49f68d8ee9e_Z, + 0x7c3f86f79dbef3ad22c5ce5a39b4ee40997e6733d96492b6ca145c9d5a737da_Z}, + {0x20624d393ac86f79e72b4416a8bb2581cb7d553ea3873140ff72134354c6fb4_Z, + 0x65149b1ca41b5eb78f3af456293548233940b12c1208ca2fce406a63893f1ce_Z}, + {0x7ed55abc1380f3b690162beefe8561b7418a1bda08b463c6b4ed55488050f0b_Z, + 0x4e7a36b0264aa4b436741539acf618dfe7f99f70893060a6f2bfc25ed77f9f5_Z}, + {0x7da5d4f5154dfa51e72eaa41a8fc3cdc1eee525b93b7a4359071621a72e1979_Z, + 0x4442f5778b290ba0a23497bccfe18f4a42322ba05f4c23ab19da40b5fa1193_Z}, + {0x36f89f3fcf545e54af1f08cb2000dbf1e98f524084945d1f078832b588541ec_Z, + 0x5af9ee0b3fd6ecedcbd753692448229c28cb97de6829f99f5a14b8449b32513_Z}, + {0xd180132945f796820cd975a707b38ed7d01bd846855dd4b1acef48f1f0bbdc_Z, + 0x12a72003fb075f6ab134168aa467066cdce8ef92c996757c959c56609b28e46_Z}, + {0x482276846cd8ff9060dc5b085493f612c3855949102539a239a4d7f509256d4_Z, + 0x98670c286bd93349c04f13ef5915748f6f6295273b23f6147f1a745c7af8f3_Z}, + {0x77f923e5644fa39bd7be79cc3b6b8a1150c8bd14f8db07fa4c79ab7d362fe3a_Z, + 0x720a694b788cd0d9a6f2680eba5f450d242af19797320b8c6279fc5b69a4b85_Z}, + {0x232efd4818f50a538e938473722bcaf379111fe853625a7e52e44090f5927d1_Z, + 0x73dce67bae268037507f4ed844b07b7c0be075650a0e4b31750fb7fa5ab6673_Z}, + {0x51689112de7fe180e0880d5e6ebfbc243518b739b885484ad033895c5363063_Z, + 0x19c4098654bb316cccc3208985f3d5e567a0c0c1bb5e2d504beee3e2fc9faf6_Z}, + {0x5ca31e901478c60cf4bc836598068e107a74b32f6db923742a3322b031c5a1d_Z, + 0x46fc9f1287e2304536d466ef830f0f2375907b0e00204bfe17d676793e91aae_Z}, + {0x162a13e8319007f7b69aa99f36be6988375ba3676ab49c5e132fe5208666211_Z, + 0x1440f2d022c68736e327e762daca9a6b2ba9c684e5b997b56a6cc8d1effb9ae_Z}, + {0x38c47ae4c21bae11a3d83d7b29c174e1491f15914bb9fbc644718f8ef2b5209_Z, + 0x47475f462b6f4f20e9ee9d5ec086dcd4c80d26b8d265b66c1bc637e974f1ec0_Z}, + {0x63f536a51884d99b986637c4bbaf6a0c17303953eeb2cc4e4008b22f43bdc2e_Z, + 0x1ac4127e35c3cd2c3d6e4100a352e6e02832e224df9219516361e9fbf06fc7b_Z}, + {0x34b9f20d0ee806f8020473285b2704c7381d4cbed6145593bf2fa3c7e69ba16_Z, + 0x1fdb8f07562a2e5839fe156c40777f47ca6113377a311e7add9f148f952a2e6_Z}, + {0x444bb42fbfc8273fb814bad9a80e03bd4d6b98258083c4bc17f1f0dae282964_Z, + 0x559fad63173159790b5f96c8991b9f596c756cea51825b452283579feadea4a_Z}, + {0x2d4562ac577393eccf5a379eb70f975436a6e0f50b05b92a2bd2bf549a5cb69_Z, + 0x626d6e2b7312b47a4a1e95728b84fe641220c54f0930ff61b3411795b652018_Z}, + {0x2a10f944742ea5c61f24e03b650b854757e2484754cf83aa66bb6f0ef6055c3_Z, + 0x4b5caaabfc838464fdea5cffdc8450398e7edb21f053a9c72cc6e0b45b3c867_Z}, + {0x33177e04a73480472793505560b593a772b3d22b81b3609d405f685a9afc2d4_Z, + 0x1dc382097614e03e2b55aed5989910c528f18bf6b0ab8288e2c01c6b5222fc_Z}, + {0x528d5aeb02d7fd69c9871cc31d75244fe9cbd103ad7afe490f7aff089ac6555_Z, + 0x375b90398c081c923aa132994fc1eedb206a207beabe523ab2cce1dd7c60083_Z}, + {0x7e807d0ee79f3a0af94b62551827587b7595bafa990884da54675e246f4fe7f_Z, + 0x451184fa0754e7ccae1329719bfd8ba2b5cfe13bec2a26c81e972da41fff646_Z}, + {0x397c0aaa8a7e3f4e13f85ee36543dd873c08a0fe9577343a872a1aca2b445d1_Z, + 0x643eaa4dccd4e4d8ea861c1eeb66d4c998752e5c7f107cca006060991010c2f_Z}, + {0x430f5f9af135bb66cc330088037ff29690d6ee97ea1331a5227783aaa42e880_Z, + 0x647f1dfb86fa9af7b6235b0db991d19d5866407db9868abb8863cc5f3a85203_Z}, + {0x6a52081b70e1477c2078399c473c0073aff03fd2974262d87da6c74e809a98e_Z, + 0x2f90ec03db8694e0b3038f0b96e32df6b265f8f0e426572b26ff9e9d300288c_Z}, + {0x7e94a46e12bea7d5ca3a4dbccbe69b2c0c4cb3af07a814bbb52a46370ab8312_Z, + 0x56ddff1d93bf5cfe557fc6351d0d0d3f52a8404aa46b6c27e5bca698e033790_Z}, + {0x69e703d6a694784466c996c290a4b323b69ce5d84ce27d4509d4c627024904c_Z, + 0x7f987c78c83280ed6a7b7365d5ed8668afd3f36950fac41cc1e807a5d29fd40_Z}, + {0x2b9c6cc778e98fc04d1ee21bcc8a732aedde2870cbd674bd50c4c3a1ab5ba2e_Z, + 0x6f1a2f2c705914c8b0f61baaef1acac04941084da5fc6eb6b2d1a066bf218a5_Z}, + {0x550bd5cb197e0c90f383756968a0399a48557cbf248ccfb5b66983326c463d9_Z, + 0xedd8ca110237e520274fa3bc3e86d9b325805120af8e48e2225ca99288d5a_Z}, + {0xeb6131dcd4a57fd981ecde8d1b29cb19770e6de447967265540dc269b3519a_Z, + 0x2e15b563260ba4d8522c0b5200c5ebfc24b9d0cabad0f659949f105c8ab4331_Z}, + {0x154af063d5646e3b324c70059be76cf52152329cf971ab27bfdf4d6858bdc73_Z, + 0x472e84e7c14a3d6eb7371f0d3f4d370c1803d5c60c8845e8c8a1e18e7b26c86_Z}, + {0x2503fc9f91fb17e1626f5a8b806e55119210cc13abf76a566ef7741a948899f_Z, + 0x117c2b932de38b7473c38397f3869cf11f915da065bba547e7929bda73a0b00_Z}, + {0x704444a259a3a6a08cca78a53893f5764aa0ae7da9d4a330b625e5045c4a6ae_Z, + 0x77c7ee65438d0e23bd2ed761cded7108f37e2f923c99e84221edb4179a2782d_Z}, + {0x1f8965279e84378bcacfe78a3bf8c3ad47d20118c6c08bf36bde36078bc8d1e_Z, + 0xaeed7b7a773cabb4288168f5ce9b5bf3054d0980a11c216a7c9ff130ca6aea_Z}, + {0x6c95617f6cc3ca96850c0ba2a1c4cde0b34f9cec5ae355ba0384d52b2810da9_Z, + 0x13f5984a200ab872f3013c5222640e2aa4ce12f0b99f2fb57406fa860b6621d_Z}, + {0x5bc1f49337b7ae9ef7b1067abba63f36aa3afcc2b718204a7b511ec3984a96d_Z, + 0x2e040a0b79ed82af190b0ad9455c40e10e0882c8fd46ceb9fd96707c7f28212_Z}, + {0x1e365499420c6d9eaebc0469d0a27d1bcd23fb96512f382c37650431d19f1a8_Z, + 0x2a428fce3a585e06168c24bd14f994f6648a07042646819a482d32c1b43b0de_Z}, + {0x7b21d486b6d49a5b5a891e9522b08bac0cebd78dbb9b102d9cf3dd5ab2f9058_Z, + 0x23e478948d098303c865d00d7ba42bc58a9285fd24b7519bcfbc5d0c1c209a8_Z}, + {0x4287b5164f53147c0d83fc49de129b17e9543ffb9c2926b79c16118a2f6d3fc_Z, + 0x91e17d6a5b2adba9a172fb90fc2002eb75d93f589123cbbf5a0a3d060ab4b5_Z}, + {0x71d7c7b174a9ccbab5d191170bd16bbfa3728be318d20a3d0ebbcee7b3fa1c7_Z, + 0x1af36cf8fb35e3a6b27bcab4338fc087cf869b661fa111cc3ba83a2f2bec253_Z}, + {0x341aac79bb5d020e18b9bd79f411be7f53b99d3c37cb88d0ef77b0d884d9bb6_Z, + 0x489cf69c1f5fb8e4c9808ac8a2c5b20dcb90eabef74069585e66533f1e7b21b_Z}, + {0x2d6b4ea44f14119ee276f6810a315ab152503a14d5742cf299e2421c6d87ce2_Z, + 0x62a7155036fac616bf0ec17622cf2160be27f94fc04b6a4d692b6def748f1ed_Z}, + {0x5f623d2d57ac36a4f386468f07f67e82af1ca9a93b093f553a24971612c7ceb_Z, + 0x44309b5973eabdc829d8105b317164d8bbb64d5a567c49fa9aab34f721ee215_Z}, + {0x3ac65082cac12f934d07001e3fe633d43b332f1f14eeecece807679c7e539b_Z, + 0x76f45e08a50db6a706198ab174658c86bdee5a0ce55d4087d542e6c8bcf15ad_Z}, + {0x26e1c9c2abc417b9c095aaccf553892731a469edac08715c80bc03ddd230f9_Z, + 0x4e62b15eba5b911b9ba6b5977addc0b1df71fbe3251d478f069230fc34b5018_Z}, + {0x3e2c8b5fe7574adfaa9f252f847faf9137eebddda126d62964b707aae911a8f_Z, + 0x606490867c30ef7ed9c3c85c50a648803f3a36a512ad89c082489da8dc9f5d1_Z}, + {0x54f62dee981af130c2d2342ea48ae1c2176d762091e83359853b88c4b2baf4e_Z, + 0x34ab726c86b8bdd2605f1a7a37a9deb90a4cecd8da6d73c7625579530a6d913_Z}, + {0x6899430a29798bde6b02dc8a93a365c6248003510670ccda7bfa7708e4f5ffb_Z, + 0x21919db4d4ec664a59b2f77659b8fd307f390464f509e13b751e12fa62da297_Z}, + {0x9f33e056e4bdee7156c2ae18c936210d6b7ef3c452d17b5424c132b9a7f7c9_Z, + 0x2aa8af6bb9a63adea95d46275f9693a4a697a45d6d1540aa3f3322cc600c4ca_Z}, + {0x1263b93a9d44aa4fd1d384dca15b31182a4144ae3586fa3547c2f88c9d2cb98_Z, + 0x2849e96fea308b36c677afd999c1b5b63c4d407dd7b7dddc45b5bff824fbd5a_Z}, + {0x5b69efb0b59d7c3cb3e000f83bf5eee119c26d01784d0e9ca610ea257ad2bdb_Z, + 0x45fd04cabf84be493dd9a47a90182ec4ae643e358db3a14b22053792464d67e_Z}, + {0x2a1253a76225044b7570d52a0b01af8a40009566232463889d19fd5d635efc6_Z, + 0x4355a45710a74ec1851ab2596e92a4c81faf0681fbd322f3d0f8f18856a6f0b_Z}, + {0x7e296fae037055854c61cf8141f72ad1f62af7293190d2d0f7fe6737cd2629c_Z, + 0x29ecab578a1dda484f2893b77efcc70702e6753b8c2cd40044b4015a7175f89_Z}, + {0x7bfa8216ce89a4c360722735f13d484fd20fb221c2f6e34be9e6708ab5592ac_Z, + 0x6df2d64f1aacc72a06fe75383d52e3328efc464716a96c47e47f69d7d5835cf_Z}, + {0x571c6be7385e9acea1a8eedd70270086738480819d5a2ebb91bde58be06ddc1_Z, + 0x2ba3d227d8ded5f4a98826cfa268d1abfbe97a7072e83382653de10e6d44378_Z}, + {0x190a23a7480e1d4833e3662ce87ff618e0c437bdb54d7d82c8193f8819a3255_Z, + 0x57f72e7e6713ff0ce96a1faa5dcd4c7c2412fedb49de63961d81b5377af33d3_Z}, + {0x32d8e8b25dcd84d1cc223e0b7bdf99c04db3fb3955055499d4d91a9545ec5fb_Z, + 0x2177c769e4c84ab8f053498527300bdc5611999945cf1ffc78a7d4cad593d3d_Z}, + {0x3df1cfeb003596452518dadb133fb4449f49063e27bb0e3569e1a20b0a70c11_Z, + 0x758c616eb3074b2f85a915a7696c5ba683fc0150e7fee84487fd566599a9971_Z}, + {0x645dd6a836468b29829869e7f2359c8e95fe08e30f660523c850531356c0d8d_Z, + 0x7b61e97bc7ca81e535fe795a750ce2a7ba792ffc1aa85fd7945ee2b3222eeef_Z}, + {0x3b2b262b7568f12cc4291bdba92ac2fdfe21c3e8b89090d12b8f6bcffe04d89_Z, + 0x340e826874ca13f76a71e60ed1f281839b53bca9e47eb88dae8f8ef9d8265b1_Z}, + {0x432d29695922222abfb1d117951ce2c9dcc108e0a2fde6bab65fe82d9b673f3_Z, + 0x541f4bb81ec0b86779953cc031f2d6753328d660cbfd0ac95f4ec0763895e62_Z}, + {0x1559f1ff03020f8bd0f7704945f9653fa653d874b416e5aeab649c545ff928f_Z, + 0x6c5e9520a2a5743f9ed939094214177c01ae54a766aec3ac0b2a2bfb150e1d6_Z}, + {0x70285a537c5743ad18c507c9fc7b36f7c89d92f1f4b8838b14a3fcc674e3287_Z, + 0x46044c8e9b3f2c3997eada3c6f2ab7850c5521250cd5c8be58b250e09d03cbf_Z}, + {0x19e89768f95f21153f7d5761ea30e8c1e423b688dc7ad57cef583b8d9ba038b_Z, + 0x5568d4089ec4493d5498b434e4c359b6172448d22d70948fa0aae37503abb1f_Z}, + {0x3ca52895174255e5c604353552d0add7ac0383066c7a52a5a6e628bc71e3d73_Z, + 0x4b7113d92fe45b2dba693c72125588d29841e283d53d3471f6aac16fdd92afb_Z}, + {0x72b02492dc9313f4c685484b1a4e9e3a9d66d4d4048512956c8e4d2972268d0_Z, + 0xda3d0bcaf753c75ed7434e0bf15db062e65a1b2ab9c8075ff7f0584f786db3_Z}, + {0x6b65039005a452e7655b2191392c45bc4de40f54c8b0fea343ee8dc5e1ad2e8_Z, + 0x345e91a226e39a6456460bf1d41a8e8aaacec83f7414ba4f37974d0d9e4ec96_Z}, + {0x1912e5ee42b5ca2f8b5424a98202980753341047e9bb4552134f37fac14f676_Z, + 0x7c6e7bfa7feb9171b895c0b1ce6f666a5739009e7a8474210b6c4bdb1bbd4b2_Z}, + {0x48502deb034583aba6b2561fff8b79fe0575f6fdbea905b6aaa8534824adcaa_Z, + 0x78c7d1400fa78bd65fe0228b0a9d39ef52a03ae0be17b3041ab8d62ea74bb62_Z}, + {0x432403d50ea249943adac5035feb01ecb01ffc7afa15f57c4eef8a99eab1fc7_Z, + 0x6e6585f10c8eeee417e39b428573beb81dfc18d21f51cf6bdbc4c96779d8eb4_Z}, + {0x329e2012285ce7853b795c9b49391d5c8f840fa272b4b41ea31c0424d6873e6_Z, + 0x64b7c9332ced6ebca8e286375f0a0a82042e7d18566560939345c14782b19ee_Z}, + {0x6018f13d059ce660df1cf0e39848f7f98f6862122eca13f6d2a4894e4eb0c96_Z, + 0x1351307604eea32271d80d7de43bd14d9193b8bb206721beff30b77cece1efe_Z}, + {0x27d98d968d65a5e8499c93a8c07bd7d06015b7474f50a2da8c3fcb52172ef25_Z, + 0x1b08032d41cc31370de64b7190e2786d8e2fef0089d2cd22dc625f027500f93_Z}, + {0x75abce30534a0fa9dd1e47dec066129c1ed0eb7da1a158af6676e15899450d7_Z, + 0x4b0d6f9ebd604381cd31e0e1aeca8c3eda68d9d0e8070fb461998727b628e8f_Z}, + {0x5171c08605159938775bc44986710deb27da9d9b8c13be44363d64fa9332203_Z, + 0xb8501685ff5a81abca64f511b26e781abd7654cb2d848595cd1eee0d4169e9_Z}, + {0x628e25d795dc2f9e22cd26976c19d5a9426abfd0b32af5ee8e57d3356e6fd76_Z, + 0x17a2b6c94f22377d3b90f9c7073916c98792037e020cb282e910d22ae0ec6c7_Z}, + {0x2d830e65cf45fbff86a69510d1f81f9a25701a85233fa943ddb3f048ed760c4_Z, + 0xe40ee450b343be503d6e0221dfff8300b86db28d3951cc8b92627444d78728_Z}, + {0x33db16f15031a95e038b84aab7c3d811caaf60cdc86c2ac059f3392d9d82f2a_Z, + 0x3e1c6ea96fc16cf45f964042085ba7ffd3939920bb2a8b63477a300e467b82_Z}, + {0x478156135addad99f4d9836ae3679b88198b9618b245ca439ec6922952ddbb8_Z, + 0x74be4449e9995725e3fd329631914837447a6994b5c0fd92a015d1016bb3ea3_Z}, + {0xb078248c627348d14be00d67098ff502824ed0d000f01bc6137f53d57108ce_Z, + 0x3af46e874248384d75b833aa7d6f96153fd1cd68a20be14ba1528e8e27e2b1d_Z}, + {0x43436a0ac6e38ef524622233e962e010e4c3ea8f65d8937b9d0d19368e75f22_Z, + 0x1dcb4bce500942e5e5a1255da1278063123568e5979f746fc09831b57c3c391_Z}, + {0x5fd652881aa2693c6c3c5ce8297f39b1e9df6b1f76a8e7fa37fae4e42c67ac9_Z, + 0x2d7ddb2b3a990fc2a84b239fb5b60e2589fa205bc5527caa7f85693ebd82a2c_Z}, + {0x131bbdc5a18e78e7668cece6358454b59409018242abf5010d4a278489378df_Z, + 0x596732c7866fbb1dae935d243ff370c00c713e7cf227ca08719ef57d418c6e3_Z}, + {0x87eb4a6f86ce8db30cb357d6b312748849534e96fb2064e37bf0e23a2461dd_Z, + 0x6efddd20c82c7bcc41ffd27c33ac2ddd323af83ab126a8b8de0523b76f71a0_Z}, + {0x28036905e8ad4ad24082c3e6187cd37b978e60549ff033f852a2bf39b58d347_Z, + 0x4f55aa9486996ecc55539161f0c00ca0bf1aaf63a3ca065bbd39fd56d0bf1c7_Z}, + {0x2e9b202d9f3add0cc5ee7cf6e539640a2d8c021e0661f9f61fa8b2c0f3025c8_Z, + 0x24fbf10584140f45ccd97b7bdd7e26f4cdc3830f4f1076eacb9c5368f9a1141_Z}, + {0x4fe1d9cd818f16803ff8518096b357e98775d84cd55cef5f6561048a212ccf6_Z, + 0x782ff1acacefb956bbb4db36b53e0abad7eb94c28f8a979e9bc64ee58be6e87_Z}, + {0x5949ccb93fabcd906657018bc59bc7724c7806b02c16067260493e9ed0dfeb4_Z, + 0x11df2be72526fb2c7998995aec224df748f1b01189b4f5cb751a9befffaa62d_Z}, + {0x11bcaaa03c63fa34f4babbcfadcbef45b607ca99fee6cdc206c85772079d23a_Z, + 0xcc0cab40822a3f803d733c1a538791c500143791d3dc95c47cec83aeabe878_Z}, + {0x6a3b80b9f3f77053cfe7607d2a94526d7409361a20eab4601e723ac557400c4_Z, + 0x50fe612b5cdb308da922f8b98426041407f799321544e2303355bb1490f5c43_Z}, + {0x31880b42036960b5650a848ed9e86a67d9e947b8ef5c389a012e3536f679ff1_Z, + 0x3502e2fbf039026aea3779a4d6b452f999520d915829a415e495c19f00b40eb_Z}, + {0x3ba2f7e3ea919e1aeb00afe10bca5a7d940ed15e32877744f5afb7dd3307f72_Z, + 0x7402cb75a1784097932623d7f5dc67aabe5e202fb5683bf144f97f25a1a75c0_Z}, + {0x152a0d759e3d99c4ee1bae5ccb3add41cab2f0a915ebc7994fbe17e8c16c2a6_Z, + 0x2546344519f6b35e94d41ac75d8fce5c48363ef744a849bd947b60dc4da531a_Z}, + {0x6c67f02177664b56fb032c8296f54c738e020bb4a968d7fc74ce255aa2d76c2_Z, + 0x160494da260ef06969ddd1069214d399c25a0cb8e9e796d73df73fd808bc55b_Z}, + {0xca20f58bdd8b2cebf93f9373bc62d94a53325175dfdebcdf259d8df64e505e_Z, + 0x376ad50a444a37554edb7733e9fcdce3f3f5b10e01954c3db1716d049a4586c_Z}, + {0x7069deb975d5c2b160c9f943c403ac0be6df00ffe23606a6708e7abbbbc2110_Z, + 0x3374f89a706fdb690c1e38fdc1e8a91ce2de01c8f4a2f96b748bc7dd7d44c5d_Z}, + {0x7e3b2f6c449e105727a55b7875869acad18b05ef45646baef683c4017b60c24_Z, + 0x3c25cdddf8f7904118a8ff9c81036706a4f39edc1d77ba770309c230a9d0c65_Z}, + {0x16fba8459862e9deadaf846c4b5b92126485fff525e7486e75f2270bcf27dac_Z, + 0x78568c1cfd5541cddb3b78bfae372d71d4094c83a4da2454b0830c88192295_Z}, + {0x7b045f1eccd4828b79ae9f4dda9080f891d1d25dc1d1b7daf82325651880ed5_Z, + 0x38beeee5e7e5339f21a5cc335fc1da4b5e2f265f7c36e541714fe9c328a0dac_Z}, + {0xb0edf652c470bc9e555aa4d3eb66fa5aef80ba9daaf10abccdef3c7a784c1c_Z, + 0x30592c9aaa613a965d224c5d80856cf63bef9a9ce9bb5f2e0ff55e10b4ca630_Z}, + {0x2532a2b4b24dc6b0595c4b9d55e90ddcad124ccf37abe317caa293f233e7e3a_Z, + 0x147ae8b445c1335d4b883d0dfaa3afc3f42d970777cdbd4af027236590e892c_Z}, + {0x2d61d3a719d78ce751eef76cf84e1ed4f144d549cd6e82833e2dfab989787bc_Z, + 0x292efb15f851b384dbaffdf9f5f392bc146f041da01546a60a9b0241251f5bc_Z}, + {0x5c8853d75a7171147709bf2b2a61254bb4253283ce6c31567d0b54a7d4fd614_Z, + 0x3844f4a9c9542c454f21426ce923317ca638536b0c8e21831be64a5f0673187_Z}, + {0x7ed6bb72c544e32d39002f7f42ab053d5d3b4fd30efdc1714b8316e7371447a_Z, + 0x78a39ae4fd507e9e1239559d08e63c2c643f66fa975079c773fe42432de1e9d_Z}, + {0x5b0fb1cd21a15c1adcd1de4181ae9df92beaa790a70f8fe1dd4bb3dcccf0a56_Z, + 0x72b1c419a1769015ebb4ec7574725e56b324adfac6b270c130bf992fc757d54_Z}, + {0x6fcd2d13d76c14b93891bee2f29e41c05eea71bfad6d1a3bb41ae374c442d2e_Z, + 0x6461615f730e6cd45acf5b9731389a6ad6f920aa9e00b5fb9771cddf3c6dcbc_Z}, + {0x34689327933520a0c196345fb520e6357021ff285dbbdc27d011a45dba63c7e_Z, + 0x326dbae561cc9a6e240beff736766d48b929c52951a1d17c378248bcb449bf9_Z}, + {0x5d01c051059f7731f3516f148c6d8f748cd9dd27294e89d1dbfbb7d8719ddf8_Z, + 0x51fc4755e0cb57d1a20ba0da40c1644aeb7e21fe133ae8c48d3a7189e6c4e62_Z}, + {0xd669677be87d87a2aec188a0734ba8b36822d2050ea3ac9c08476332730f63_Z, + 0x747f037ede3d72e0b8a8a61a33470436d2fe57a01e5366d6920abdb3c4241a0_Z}, + {0xf2fcc3e4c01b6f88cec60a180ab39971031fe40037870f1231abbab46774a7_Z, + 0x30a29e5032d74800d2bb64bbff2a7464b09faf3c1163dd60a5b956bf7d37e0_Z}, + {0x30d5fa5a7deb5473bfdf96f48c62e2e74f1e20d725a8b8024e098754500937a_Z, + 0x77ee292c9e674b67b02cb656fb5e5ed797963cde261077826569020f948a400_Z}, + {0x353422847452595eeb42491eef7ff046a489ba204cc7713972d13985adc4799_Z, + 0x43eaa6aee689e456fda5472c7842ae0ffdf34c69e016261329549215930b722_Z}, + {0xff9c8bd9da0f9bba69339ffe26fa4f31d1c8deb61bfc2a0e53f542efa9894f_Z, + 0x6e2956683dd63a6d43c6a63099c9f528d82a2d7a417e5559d95a51ee32741c9_Z}, + {0x25519ad4974d3c51ea09edf3f4ad4992307453b513cac412185b6922190db0f_Z, + 0x5f6e31f8f5218ddb86e47e3585e345a0e4e819d0b33aa3656b160e8ab54e2df_Z}, + {0x534c696772e1677d412797c4ce9848f4940ec47a791868022c08a202afd80e4_Z, + 0x48a1fd856ca958bb2306e6cb4ae2634b307723d58588579fede2f44836bfd4a_Z}, + {0x28f36c7c4993063c0e3556219b0ba1d22a41614983b88734770ab52b86293ea_Z, + 0x57fa579a22d122924386b1b2709ae82e44af5283523408a21854353a4fb7db3_Z}, + {0x7a6bf283d8cb8ee332ccde05cfe39b79f9256e9b67c815731616995f04b37dc_Z, + 0x52f2cc7e99f18aa74055fe27174dd98b13eb62b58820101d490cca785811d19_Z}, + {0x43a3915601111e4b65875d627651162e35ada3ff800a7cd82b45401b437b7b0_Z, + 0x514ea8c6d3d81de7d2f7da64b99ea4b3d513ee09cd0b0b35966c361943ab767_Z}, + {0x6acf2d8696603cf4bd69ea84ceb8965bda071ead5fea9130c2f351af8805775_Z, + 0x6bff1e20909266f70a8093392f06f90b752f0d4dfb3f0251cc197f3813230ec_Z}, + {0xd730ffffba62a7cdd01cfc234a5bb6f0c9e103cff5e186ff21072666220008_Z, + 0x1410f2db1f1b173876015ac4e82d5a7fc2dbbd89c572bdaff4843359c522a_Z}, + {0x4e9176d3f7d8611e5b0dad5358c36c20b07f8f22161b9861fbe8580c2b94725_Z, + 0x5f392ef87f97cf8ba8d16992cd44b5923d96bcf60d299bd0fde7d0c79bee558_Z}, + {0x63ad76e0daf34503a99f189b720b741334846ae2eac1361510b04481635c8f_Z, + 0x3aa055ceec2860c6da9f820a5cfb26ea5bec859c92a8ce79f3c9db82b8b2bdc_Z}, + {0x755956b5bfaf8c29438a06974b51462abdff7ef87fea3cccf64da2d12ca5fc0_Z, + 0xa38380c3c87baa2c6a9bd006ab41dee5e20fe429e2797fb3fccf700b526ade_Z}, + {0x67d11353c4a408c5bc238f22eb8a587e4e45d9ccc0fa368eb58d983bba31b9_Z, + 0x226df7784553b5b581e4b154b695f17f0aba64ed2576baac010deb26209a7d7_Z}, + {0x74699ea52e3a3ddccc266e5103801fdf8f5244dd90a6e956a873e722d41000e_Z, + 0x7bb47c7d17b634f63b4d03f708b213718be0a616a4328a1c2bcbf319d585fa1_Z}, + {0x1aff3c42435c9a2d586951e484b1d99945ea9fdcf4ea4fe886caed837a4a781_Z, + 0x74e136a3ff17c06c7d80636474bba9a3b69efc37d168da3005b9e0cf6d3a32f_Z}, + {0x2af5cdc5d24d0ec821436b7c8d101b86680895e481342867a2f513f65acd588_Z, + 0x5cdc0540c7f914cc74a8d780ae71588bf607ad8678740732483f6d75097383d_Z}, + {0x12e55895598fed285a076a0b67be9a75a18e9782fba04bc3c4596f039d3f91_Z, + 0x415e108362e4bfa184cb1217a86a10ef75a9c1735bd035705d132e135d1487f_Z}, + {0x5b9bb03217304d6e21cb120a29b6b1a7c032fecfdb4267dd972865dd802bb2e_Z, + 0x6744d60e969b91f7bc23023f081405bb630deeb5e7d5f891b6c4a16ce74fd24_Z}, + {0xa19b50cdb68f3ba25914e9e0c256153de8a784983477e666fb9e35dc324b58_Z, + 0x6c3742c8d889c6d78a4457eaf676891b4bb78d31d331556f1e1eb422e00e997_Z}, + {0x1c41af23dd2d880d2cd9e00da34652ededa32d86abda28220d443a6d6d9a526_Z, + 0x32bb392277d245a518ef1b1378dbf475e1971621e8d0b9296ec17e66c796e8f_Z}, + {0x5696362d1996d3ab9590fe6efa5681402218ebfdb62b3823014ca6cb964500_Z, + 0x41369fb45470626fcb91bcf2bb36b37072c099f6e0c02f1186714f3cb43a67e_Z}, + {0x5de0528a7857369e377b7e3cc6a0242c37487fa8498bfe1d5cfbd23a173cef7_Z, + 0x3ba72911f5f741e260b0dcfde93b2e9efa819135847083170911b8a0cc14457_Z}, + {0x2b5f39b9680e1f3455f934ac5f82236c3bef8fbe2d82bb004f1a63ea9d0a078_Z, + 0x7e8c9deb4ab5c7c49cca9b852d9ab01833455a0044be1ea2acd01e35f1d459c_Z}, + {0x5a0fb4a941ea9fc92fada62a9bb70853b436c3bd40a6170703b05198c36ce99_Z, + 0x72d3e0a41851c425a83a413448414214a35d9e785a870d1f9b5555105322bfd_Z}, + {0x7b263af26400af6523cb5371808c2d9e328a8d64f8d64d658d01bc3a55f5896_Z, + 0x1c87ef17d66a92ae07c55592cd75c474698348898dc778545c395a1931fd220_Z}, + {0x3c6987eb0db2455329e2e1bbd3f4fe489d611e34949f18fae1159db5ac90a2c_Z, + 0x7dfeade17a4de80690e4858d0bd2c2ed509a3cc24abf61adbfb1392b9259628_Z}, + {0x41b0908f1b22462f50bea2821a41dfb63bb9c99f0b46a9ddb7e2d3c6e42624f_Z, + 0x4ef9a0000b31d4e4fc6e5333ea3f75cc8c109dae8884ed0842d66bdab98c181_Z}, + {0x5a97c5c22fe6126e616600b9290ca79bb1559c24d17d9be7e2897912627bebc_Z, + 0x290aa7175f9a88bb521229156d95131962a4b9f97019d25cb4e035979b6b83e_Z}, + {0x72fa1ac62d78ffd626c58700286869e0d83f2e654337ca0aba531f4d6c55fe9_Z, + 0x28fdcd3b2f8a05df0b6472d2893f88f063847c558b32484f7a526aa176cde61_Z}, + {0x6288b393a5ee49a2e681441a0000a6bbd93862f5014f8d6118da65b1cec7c3e_Z, + 0x79a757687561f7d3e28c38ac52a5eb9abbad434d5602944f170973400a530b_Z}, + {0x296c0885871770d82e4936ab13ff095106fcff5a6f6a717768404092d27438d_Z, + 0x232357bef69ec966a35d68fb02c4d13a5041b91f97d8bddcb66ebbe8cdc92c0_Z}, + {0x22b74938bc3c0f01bab7d8014f82ed15c2c9e3502584d68b23cc49b061cfeb4_Z, + 0x1bd68eaf1fd0d25b20673cf2beefa40e719219e28027daafb4676186429bfe5_Z}, + {0x6035419487a4c44584b35960f28314998775f92744d2950f12c4a09d850c35e_Z, + 0x5c1dcff4d003601b869fd57606e879906d6f3c5ecc5dd131bf19e23f00c87dc_Z}, + {0x3a8031bb37a07d1fc901f3899542835164d474bd0bbda3515a9927ac2099879_Z, + 0x2975ee8fd8b03850d29b4a5300af7e8a6e6ced3aa92c8572448df80f1330b0_Z}, + {0x3145991f434db6b85e7fe8e6c8b2f4bb86f6269f78bdac2ada40e9ecf3b1023_Z, + 0x2a3456594fa0abdf683853ffcf5e076d0507946a66e8679bb2b975e0fc8c308_Z}, + {0x18d88e5a10ca642a49f4ef6e0800306cda1e3fbdd6b0685252ed95d2214ea80_Z, + 0x1e37cb95beed80d95d37e636b1b8ff544ed46fc2e1f31af943e1c22faeef286_Z}, + {0x46ed465d5a716a91dc4e33e29571823fd3016199daf4ee4ef91dacfe146003b_Z, + 0x7ead4cf3c80595dcf09e52ee7e20076f4dd83a923cc333294acae9434bec0d3_Z}, + {0x7be5fb85294422ff899decf255f7cb2ab92badfda88becdd2c066f6f6f89318_Z, + 0xdecf0e2f89110caf7821d23f74185775e2c083d65edfa14aa9267b18894640_Z}, + {0x2a2370efa4c63b6645cb146952ab856a9043545ab10f48074e74e5b8b7a34ea_Z, + 0x2ad8bda41768f3ec3d9f99e103a36fe49e54ca6c0484fcabfdaf0bd6e39ca1e_Z}, + {0x7c6ae8e5927161976a566d4ded4c185cbf5cb8757f9fdba18ec50491bad075d_Z, + 0x28cc01dbdbf255ba95cffee404953368e2b3dbe2966345ee8852d50eaf90fb1_Z}, + {0x5518b2308ae8e88b9153c1b053ed3ce8ca53e726a45c507ba6fe400f8f1a443_Z, + 0x1e3e5d6aecc7b847e5148b651199fcec653fa4684b2de5a6f0f84579e656a8_Z}, + {0x677e92701efe79e503d601a86ac16316e5e54b8db6866335497d8558047b9e6_Z, + 0x7602c024046aff921dfc9cfba35d4a5b063fbf5a814d02e5e4aa8c64f30a346_Z}, + {0x7affb3f80cc5748494f05cd59e69f777df86443bd4ac7c64ad5c4e304998294_Z, + 0x145eab080128dd81e6ca3937a8b175355ee65aec816237f55035c0859c717a0_Z}, + {0x1feb81cdf33fa17f9cc8b7cab0d5ff3f8eda819f9533c1f96a8c6721ab8273b_Z, + 0x1fc0267c7de843cf4571d69ee16b7e100c1aa5d58fea96014920976727f73e0_Z}, + {0x30695dc5dc203e6dd0b86746db008fe3de796a36815952509bacefb43a969ae_Z, + 0x7c14905354cb90fb75417ea8894ade13b72039df5effd2b1c7a549d75ef5e39_Z}, + {0x17ac9e8bb6fc520b4b181ecb2a763490fb107f6825307fb6de962d1b96ecb15_Z, + 0x5ccf93f17a1c0446f06d0b3e6c6e951a3bbc3754787dad6b13db72a970b24cd_Z}, + {0x79fd139d6123dcc50a56e9bb79782170e660a959ae910195dabb342583ab994_Z, + 0x20ca3d4e48b7091a687070e13840827f44ae3ba0d2cf57d3363cc6c4a105a71_Z}, + {0x5901cc324168796096d09cb91154c574f7fcb2724604b534dee5f5705ff5ee3_Z, + 0x16f8db7dd1294ef466e7cc75e5ade8c4db6bfdc8d3ca5375c3171c5b5602be5_Z}, + {0x774991bfded5676421c6634b0708b57ad795284fdd9b35b2f3eebc9d825de76_Z, + 0x4083e65888bdf72522753ecb6dbebfe515b9046188cdafe1baabb3c6acd1502_Z}, + {0x44117de27481477452862c161e2ebf2f25643c2b153b46ed1cb5b06aa91d75d_Z, + 0x4c82003c7b2c06d3d03ef38c85da2025d6c792008464835f89911d7b629eb79_Z}, + {0x31af6e7496b9fda1af3d921f7c6bde1cc8b44ffd54e7c0bdea631669149029e_Z, + 0x27f265f734c0748b6f27caf14f42b720fa10d3b0a01a9fc61c52b4bbd7db5f7_Z}, + {0x58b80a14442bbca0a0c23e4441a0ff88402d0d8811c20d840590dd172f80f56_Z, + 0x614965f7d864d6bcac190ba8386d45850a53c43d759ff595aa25fd47d819de7_Z}, + {0x71948fef9cf0e2caf918883104ea7153009c305322870d504d44a1868bcb8db_Z, + 0x68a65ec9bea022e156726f8e1c51e36b4a6b5465ebba54ddef0d2f114987886_Z}, + {0x6f790944c01ec08aea6c0a8b8498e6fdebe2f723332c5d1734bd558f1e440_Z, + 0x5e08f859e593bcc5654c918a96248f58e46471ff51ed4cc9a69598cf47d124a_Z}, + {0x7ac66e970a3f7df1a59b6b46936891575d5452fa90f4b813917d644abda6e91_Z, + 0x554090e6f5dd27f78e7c149565ebbe8afe1fc1ca7128e52dc7e2da1f5cf8ba7_Z}, + {0x52c5264bbd83d671820dd2f9221d057ba050a501b6c721ec77404424f74ae7c_Z, + 0x5a407e6a1e1e52609914a468d510f3ffa45be931b881b6fabf3154b86a3724d_Z}, + {0x3e4e94af698b03793a6e0975fc6d4afff3204e1ad5d02f66602f1939942783a_Z, + 0x3ae8774152d576d2c12a94fc347b788853568d4ad49946bc1d6745fbf5f735d_Z}, + {0x3a23b51ef56eda14f929ae715832083da8d8ff1b2b1f40ecef539e60f04167b_Z, + 0x494c7016ea479def3ccfa4c47e551215f29e8905723a69a96b93c0e496efc0e_Z}, + {0x6d45acc5bbe1ccb6cdb703063c74cfa21c1f3a21a59f9cecf716831c54a28f9_Z, + 0x70d4998663cb3042a7f3a278a14741185d97528c79f2583d6397d45125c71d5_Z}, + {0x59d7bf8bf6be9a3e792a86d3b1693b79365354ccd66e3238a3d837e297e5e4c_Z, + 0x6abab3fad87153ca6568efa386c94d7470ac8dc89abf726c0f8b72616009bf5_Z}, + {0x6dac169a2b256442e21d8af8a5fb0db74c48aeabc7ccffed182486156c1a986_Z, + 0x67aec17c79453728a3be44e0a1806d15e433d85bc5eb4eac0edc9153397d542_Z}, + {0x699546888289aebe1795af7cc0d2c83b30327d019e4c9e01665d3450ea4f756_Z, + 0xbdbf4295455701be1e648d03729c26b0bb8a5b4b60f726184bf858be24e46b_Z}, + {0x7286faddf0403fed8fb16840e60f624e88d66dac90c8c8dc7536fcc8f682ab9_Z, + 0x6aef44260d4dc77b5cfc05cab4005631b213939a69835f3523494367a03468c_Z}, + {0x1859dcecf9b2ee187134d76caa6b40e55e699bf822cdbfe0db9c9a1db7f4db4_Z, + 0x20dca845a62654643495067b8613045f3bdc8af69799eb888cc5fbe8e8a998d_Z}, + {0x31d61264dc643821bcb0a6467500933a9418a5ad5d291156c8ab3b796175ab_Z, + 0x33eba79d2c508bbf71b7f5f01903f4488e5e79b1de04ef0f3f9e21adc8ae950_Z}, + {0x58d0811300bf3740fbf522d7d91b524da1fe6eb69bc4478340dc6c25c977f98_Z, + 0x1fcb528cc898516f3ba25c56b9075af57b6ba921c04133df2f45b0f071e8a79_Z}, + {0x6431f995f6050cb9bf592688e3334be4a15d36aa2d4293ad9d8951a0f6522f1_Z, + 0x20d2c1654e7872bc764ae3932ed3e48913f363e95500b04b5213902825854ef_Z}, + {0x7998d1e4b9df95112cde2774571ad4eb5d85b8c994d5cde7ff854f66d446a5b_Z, + 0x65bd3baeec8420de17fb60c14c22f26d13102ae2ab4b40779289c89a3ef8af4_Z}, + {0x6a10729d3426d0e7d4e4ba17ea5e662555b29f177ce8ce76360fe1162e61f4c_Z, + 0x5ad6e4c49bc693224f497a35e29a1cd25d60744c4e072941e8364c9b6db0ba3_Z}, + {0x5bb440cbb07b78c7e161d49302605d9a39c9df08b29866bd1f9460fc865693e_Z, + 0x4f301f2f284b4dedc845dd0233ed2f0e10a831bf44949ce009d81ceeae5d3ad_Z}, + {0x16e671569ddd634b235207a1dd7534fbaeeb1b9ff258666734e8fe854d5b0f0_Z, + 0x29b9716f059c5f50f47f295d51ee9be2bc86781adb29c4777696e0c04515933_Z}, + {0xf7ed43c69ae47d3fb1b003ea46662f99a40c00c3aabc5fc18ed19812e9ace_Z, + 0x6b27b3bd78d428a39b17d14bb67f14eee9f7a9e4f47178fb13b3771b59920e4_Z}, + {0x646b693faac93d996ec8073fdf9872db19164d3b429db0fea51a85f271e3b25_Z, + 0x6c32faae574b9dfdf89c42cfcda3b29b77841928d9f6fd865282b5892a751ad_Z}, + {0x46340adb23ac9d2854acd649d33a369cd0f3d44cf72df48f8d1a54c4ce7ba01_Z, + 0x643607d669dd430b7a89d82a77a3f07c968a6c8ec46bc73fe45f9bce267008e_Z}, + {0x577c3ceb96a6a0d000039fd9172bf1592cde479d6c7027dc3b734f2d93456a3_Z, + 0x3ab8b4194e01015872812892f02ff2c57e1c5447bc974c0dc7e5f23f8ebaeab_Z}, + {0x7e3a579884f8ebbcb037b4dce6fa7c8144abf4150aacf2c92baed923a4539bf_Z, + 0x3b6ab45393c6905097f10a1ca2a2f15e4543654f0b729b6388430a87186bc08_Z}, + {0x57278ccce2f700b98559d59ea2b24d9b710b28c0be45c9ad2b52f18759f4992_Z, + 0x74e9c1347aa9ae6a574ddbeb4808bae7ebdd6d05d74b820dc811b2d3d4e1de3_Z}, + {0x293851117a3c62e9ad3d584fc0271882ce9212c3550e18c0a3dc6435a08f804_Z, + 0x487d363b24ea945d11b948be7c6d431b0f222a42a1643662bfa565b704d4b12_Z}, + {0x2bb40c08016a28a012ada59f8326af6459b32c931369ff5eb0e66e2bfa91839_Z, + 0x6d3c13cfe4442c3cf334bdea918421f0304f84fee0503b37fa254fa9695a7fd_Z}, + {0x41b60152c072939d03382d16008e225296ef34ac904b2ca1b53117ac42a9fc0_Z, + 0x2395c3c6b29c382e472f8a8cdfe115387ee92f0e9effb0950884d447729378c_Z}, + {0x49c91a07842eb149de925554f5cc911d0622477f621af42dc661b6254d92149_Z, + 0x6f6df3d40a3257d8cb1030182345ee33275a9729736559ae2b9493e71b13f66_Z}, + {0x5327c310ff48d8828030be496b732a5c8d4b54d6d33359a55bf86f73338648c_Z, + 0xc5496b84211e0e6c6bfca22b6fe4a90c9ab4b74f38f5aef24063e19f33807f_Z}, + {0xc29502e40237c3cdfb3df12402e00b10ecd34196deb16b9847d16f6a722ea6_Z, + 0x39aac26bf68523e8d0f71f4fe3b57370abb5e93a88b0be25d51933b2ce00ef_Z}, + {0x29e6ff0160618de648e497c1bd71e29fa85e64c5de6384131a45a680106899e_Z, + 0x44489c972cd0206777be0e3d538a50dc41129e9ef6a573ffca463817c4b56b8_Z}, + {0x7abdf663a32846ce3589e251644a0392ae0b2331e2ae9ceee2a8121bbe2f377_Z, + 0x1a6887de903db96dba6ea4ed4da968bf62b9b7cfc0794caf3fbfd8cd2b4e79f_Z}, + {0x57bdd25e214e6d5ac0fcff6d136d883b26a58357a80c2292e734f989568bfcd_Z, + 0x21a4ba863a96efdde95da050be9d1fea4696bd9b9b9c658f2f89a6335aebffc_Z}, + {0x639c23ba45096922137df71352eb293c33b69bb8cab211560fd74337dff135e_Z, + 0x52b4abdfb9884ec8a5e36501042d7bae523ea25ad9cf727b68acb34ed30f9bd_Z}, + {0x296a39feb0d8f12f0338d21bf5d4e41879a2f0bb4e1115cfdf302b0c193efb9_Z, + 0x44111a6871525d015a8953659c0a25c843e73b6c831f3ce0fd61bacebd8645a_Z}, + {0xe0a5fbd6a3040de8fd18a69512df864c9f9a6bac714dd89f63c16dc98d0edc_Z, + 0x5cd6903683197c35e29a53fa9dc7b2dc108d6d5d4c4c1b61bf0a36dc28281f1_Z}, + {0x35b6b70b29b725bdd4abfaa9016424455fef75cf5db8ac105349c22a6cf0c79_Z, + 0x26257545e6c40ce862da7092d0078574b354960625f899bb0459c5fb457b040_Z}, + {0x4ad230e998d6327668c6efb8da326c3cccfaab8318068ede5c35b785f466972_Z, + 0x71d065349d2a37db9c8da8696d6537c83ec5ad9da66d445adc85ad6d14ad4b7_Z}, + {0x4b623eea766641c914601bd0e0dcb05118b99b5be46fcf4016d43270fcbb75b_Z, + 0x4f279640e187ad4a28be5ff7c3f3ae0784c65242f9d8dd8c075f441f0ce6931_Z}, + {0x1113b3c7239bd09c41d279ad7152ccff0846d8205fa9e0d15bf61d18346f4f7_Z, + 0x2724c2af72e534450ed6eba9441674693f54bd82b3f205ae4fbb27bc4fecb7_Z}, + }); + return *prime_field_ec0; +} + +} // namespace starkware diff --git a/erigon-lib/pedersen_hash/elliptic_curve_constants.h b/erigon-lib/pedersen_hash/elliptic_curve_constants.h new file mode 100644 index 00000000000..a3bee807a10 --- /dev/null +++ b/erigon-lib/pedersen_hash/elliptic_curve_constants.h @@ -0,0 +1,119 @@ +#ifndef STARKWARE_CRYPTO_ELLIPTIC_CURVE_CONSTANTS_H_ +#define STARKWARE_CRYPTO_ELLIPTIC_CURVE_CONSTANTS_H_ + +#include +#include +#include + +#include "big_int.h" +#include "elliptic_curve.h" +#include "prime_field_element.h" + +namespace starkware { + +/* + Contains a set of constants that go along with an elliptic curve. + + FieldElementT is the underlying field of the curve. + The equation of the elliptic curve is y^2 = x^3 + k_alpha * x + k_beta. + k_order is the size of the group. + k_points are points on the curve that were generated independently in a "nothing up my sleeve" + manner to ensure that no one knows their discrete log. +*/ +template +struct EllipticCurveConstants { + public: + using ValueType = typename FieldElementT::ValueType; + + const FieldElementT k_alpha; + const FieldElementT k_beta; + const ValueType k_order; + const std::vector> k_points; + + constexpr EllipticCurveConstants( + const FieldElementT& k_alpha, const FieldElementT& k_beta, const ValueType& k_order, + std::vector> k_points) noexcept + : k_alpha(k_alpha), k_beta(k_beta), k_order(k_order), k_points(std::move(k_points)) {} + + constexpr EllipticCurveConstants( + const ValueType& k_alpha, const ValueType& k_beta, const ValueType& k_order, + std::initializer_list> k_points) noexcept + : EllipticCurveConstants( + FieldElementT::FromBigInt(k_alpha), FieldElementT::FromBigInt(k_beta), k_order, + ECPointsVectorFromPairs(std::move(k_points))) {} + + private: + static std::vector> ECPointsVectorFromPairs( + std::initializer_list> k_points) { + std::vector> res; + res.reserve(k_points.size()); + + for (const auto& p : k_points) { + res.emplace_back(FieldElementT::FromBigInt(p.first), FieldElementT::FromBigInt(p.second)); + } + return res; + } +}; + +/* + This elliptic curve over the prime field PrimeFieldElement was chosen in a "nothing up my sleeve" + manner to show that we don't know any special properties of this curve (other than being of prime + order). + + alpha was chosen to be 1 because any elliptic curve has an isomorphic curve with a small alpha, + but we didn't want a zero alpha because then the discriminant is small. + + beta was generated in the following way: + 1) Take beta to be the integer whose digits are the first 76 decimal digits of pi (76 is the + number of digits required to represent a field element). + 2) While [y^2 = x^3 + alpha * x + beta] is not a curve of prime order, increase beta by 1. + + The points were generated by the following steps: + 1) Take the decimal digits of pi and split them into chunks of 76 digits (the number of decimal + digits of the modulus). + + 2) Each chunk of 76 digits is the seed for generating a point, except for the first chunk + which was used for generating the curve. + + 3) For each such seed x: + + 3.1) while (x^3 + alpha * x + beta) is not a square in the prime field: + increase x by 1. + + 3.2) (x, square_root(x^3 + alpha * x + beta)) is a point on the elliptic curve (for square_root + the smaller root). + + + 4) The first two points are taken as-is, as they will be used as the shift point and the + ECDSA generator point. + + 5) Each subsequent point P is expanded to 248 or 4 points alternatingly, by taking the set + {2^i P : 0 <= i < 248} or {2^i P : 0 <= i < 3}. 248 is chosen to be the largest multiple of 8 + lower than 251. + + This is a sage code that implements these steps: + + R = RealField(400000) + long_pi_string = '3' + str(R(pi))[2:] + p = 2^251 + 17 * 2^192 + 1 + beta = GF(p)(long_pi_string[:76]) + 379 + ec = EllipticCurve(GF(p), [1, beta]) + points = [] + for i in range(1, 13): + x = GF(p)(int(long_pi_string[i * 76 : (i+1) * 76])) + while not is_square(x^3 + x + beta): + x += 1 + P = ec((x, sqrt(x^3 + x + beta))) + if i <= 2: + points.append(P.xy()) + continue + for j in range(248 if i%2==1 else 4): + points.append(P.xy()) + P *= 2 + print "".join("{0x%x_Z,0x%x_Z},\n" % p for p in points) +*/ +const EllipticCurveConstants& GetEcConstants(); + +} // namespace starkware + +#endif // STARKWARE_CRYPTO_ELLIPTIC_CURVE_CONSTANTS_H_ diff --git a/erigon-lib/pedersen_hash/error_handling.h b/erigon-lib/pedersen_hash/error_handling.h new file mode 100644 index 00000000000..424420c919c --- /dev/null +++ b/erigon-lib/pedersen_hash/error_handling.h @@ -0,0 +1,31 @@ +#ifndef STARKWARE_UTILS_ERROR_HANDLING_H_ +#define STARKWARE_UTILS_ERROR_HANDLING_H_ + +#include +#include +#include + +namespace starkware { + +class StarkwareException : public std::exception { + public: + explicit StarkwareException(std::string message) : message_(std::move(message)) {} + const char* what() const noexcept { return message_.c_str(); } // NOLINT + + private: + std::string message_; +}; + +/* + We use "do {} while(false);" pattern to force the user to use ; after the macro. +*/ +#define ASSERT(cond, msg) \ + do { \ + if (!(cond)) { \ + throw StarkwareException(msg); \ + } \ + } while (false) + +} // namespace starkware + +#endif // STARKWARE_UTILS_ERROR_HANDLING_H_ diff --git a/erigon-lib/pedersen_hash/ffi_pedersen_hash.cc b/erigon-lib/pedersen_hash/ffi_pedersen_hash.cc new file mode 100644 index 00000000000..fccdfd22bec --- /dev/null +++ b/erigon-lib/pedersen_hash/ffi_pedersen_hash.cc @@ -0,0 +1,56 @@ +#include "ffi_pedersen_hash.h" +#include "pedersen_hash.h" + +#include + +#include "prime_field_element.h" +#include "ffi_utils.h" + +#include "gsl-lite.hpp" + +namespace starkware { + +namespace { + +using ValueType = PrimeFieldElement::ValueType; + +constexpr size_t kElementSize = sizeof(ValueType); +constexpr size_t kOutBufferSize = 1024; +static_assert(kOutBufferSize >= kElementSize, "kOutBufferSize is not big enough"); + +} // namespace + +#ifdef __cplusplus +extern "C" { +#endif + +int Hash( + const gsl::byte in1[kElementSize], const gsl::byte in2[kElementSize], + gsl::byte out[kOutBufferSize]) { + try { + auto hash = PedersenHash( + PrimeFieldElement::FromBigInt(Deserialize(gsl::make_span(in1, kElementSize))), + PrimeFieldElement::FromBigInt(Deserialize(gsl::make_span(in2, kElementSize)))); + Serialize(hash.ToStandardForm(), gsl::make_span(out, kElementSize)); + } catch (const std::exception& e) { + return HandleError(e.what(), gsl::make_span(out, kOutBufferSize)); + } catch (...) { + return HandleError("Unknown c++ exception.", gsl::make_span(out, kOutBufferSize)); + } + return 0; +} + +#ifdef __cplusplus +} // extern C +#endif +} // namespace starkware + + + +int GoHash(const char* in1, const char* in2, char* out) { + return starkware::Hash( + reinterpret_cast(in1), + reinterpret_cast(in2), + reinterpret_cast(out)); +} + diff --git a/erigon-lib/pedersen_hash/ffi_pedersen_hash.h b/erigon-lib/pedersen_hash/ffi_pedersen_hash.h new file mode 100644 index 00000000000..2dd79d45b30 --- /dev/null +++ b/erigon-lib/pedersen_hash/ffi_pedersen_hash.h @@ -0,0 +1,7 @@ +#ifndef STARKWARE_CRYPTO_FFI_PEDERSEN_HASH_H_ +#define STARKWARE_CRYPTO_FFI_PEDERSEN_HASH_H_ + +int Hash(const char* in1, const char* in2, char* out); +int GoHash(const char* in1, const char* in2, char* out); + +#endif // STARKWARE_CRYPTO_FFI_PEDERSEN_HASH_H_ diff --git a/erigon-lib/pedersen_hash/ffi_utils.cc b/erigon-lib/pedersen_hash/ffi_utils.cc new file mode 100644 index 00000000000..e3fd95c1d47 --- /dev/null +++ b/erigon-lib/pedersen_hash/ffi_utils.cc @@ -0,0 +1,38 @@ +#include +#include +#include + +#include "ffi_utils.h" + +namespace starkware { + +using ValueType = PrimeFieldElement::ValueType; + +int HandleError(const char* msg, gsl::span out) { + const size_t copy_len = std::min(strlen(msg), out.size() - 1); + memcpy(out.data(), msg, copy_len); + memset(out.data() + copy_len, 0, out.size() - copy_len); + return 1; +} + +ValueType Deserialize(const gsl::span span) { + const size_t N = ValueType::LimbCount(); + ASSERT(span.size() == N * sizeof(uint64_t), "Source span size mismatches BigInt size."); + std::array value{}; + gsl::copy(span, gsl::byte_span(value)); + for (uint64_t& x : value) { + x = le64toh(x); + } + return ValueType(value); +} + +void Serialize(const ValueType& val, const gsl::span span_out) { + const size_t N = ValueType::LimbCount(); + ASSERT(span_out.size() == N * sizeof(uint64_t), "Span size mismatches BigInt size."); + for (size_t i = 0; i < N; ++i) { + uint64_t limb = htole64(val[i]); + gsl::copy(gsl::byte_span(limb), span_out.subspan(i * sizeof(uint64_t), sizeof(uint64_t))); + } +} + +} // namespace starkware diff --git a/erigon-lib/pedersen_hash/ffi_utils.h b/erigon-lib/pedersen_hash/ffi_utils.h new file mode 100644 index 00000000000..cde1b9ca5ab --- /dev/null +++ b/erigon-lib/pedersen_hash/ffi_utils.h @@ -0,0 +1,31 @@ +#ifndef STARKWARE_CRYPTO_FFI_UTILS_H_ +#define STARKWARE_CRYPTO_FFI_UTILS_H_ + +#include + +#include "pedersen_hash.h" + +#include "gsl-lite.hpp" + +namespace starkware { + +using ValueType = PrimeFieldElement::ValueType; + +/* + Handles an error, and outputs a relevant error message as a C string to out. +*/ +int HandleError(const char* msg, gsl::span out); + +/* + Deserializes a BigInt (PrimeFieldElement::ValueType) from a byte span. +*/ +ValueType Deserialize(const gsl::span span); + +/* + Serializes a BigInt (PrimeFieldElement::ValueType) to a byte span. +*/ +void Serialize(const ValueType& val, const gsl::span span_out); + +} // namespace starkware + +#endif // STARKWARE_CRYPTO_FFI_UTILS_H_ diff --git a/erigon-lib/pedersen_hash/fraction_field_element.h b/erigon-lib/pedersen_hash/fraction_field_element.h new file mode 100644 index 00000000000..5800086ae1b --- /dev/null +++ b/erigon-lib/pedersen_hash/fraction_field_element.h @@ -0,0 +1,75 @@ +#ifndef STARKWARE_ALGEBRA_FRACTION_FIELD_ELEMENT_H_ +#define STARKWARE_ALGEBRA_FRACTION_FIELD_ELEMENT_H_ + +#include "error_handling.h" +#include "prng.h" + +namespace starkware { + +/* + Represents a field element as an element of the fraction field of the original field. The elements + of the fraction field are a/b for a,b in the original field, and b != 0. The representation of + a FieldElementT b is b/1. Addition and multiplication for the fraction field are defined naturally + (see operator+ and operator*). The resulting field is isomorphic to the original field. This + fractional representation of the original field enables to perform an inverse cheaply: the inverse + of a/b is simply b/a. +*/ +template +class FractionFieldElement { + public: + explicit constexpr FractionFieldElement(const FieldElementT& num_val) + : numerator_(num_val), denominator_(FieldElementT::One()) {} + + /* + Creates a FractionFieldElement with the value num_val/denom_val. + denom_val can't be zero. + */ + constexpr FractionFieldElement(const FieldElementT& num_val, const FieldElementT& denom_val) + : numerator_(num_val), denominator_(denom_val) { + ASSERT(denominator_ != FieldElementT::Zero(), "Denominator can't be zero."); + } + + FractionFieldElement operator+(const FractionFieldElement& rhs) const; + + FractionFieldElement operator-(const FractionFieldElement& rhs) const; + + FractionFieldElement operator-() const { return FractionFieldElement(-numerator_, denominator_); } + + FractionFieldElement operator*(const FractionFieldElement& rhs) const; + FractionFieldElement operator/(const FractionFieldElement& rhs) const { + return *this * rhs.Inverse(); + } + + bool operator==(const FractionFieldElement& rhs) const; + bool operator!=(const FractionFieldElement& rhs) const { return !(*this == rhs); } + + FractionFieldElement Inverse() const; + + static constexpr FractionFieldElement Zero() { + return FractionFieldElement(FieldElementT::Zero()); + } + + static constexpr FractionFieldElement One() { return FractionFieldElement(FieldElementT::One()); } + + /* + Returns a fraction field element: its numerator is a random FieldElementT generated by + FieldElementT::RandomElement of and its denominator is FieldElementT::One(). + */ + static FractionFieldElement RandomElement(Prng* prng) { + return FractionFieldElement(FieldElementT::RandomElement(prng)); + } + + FieldElementT ToBaseFieldElement() const { return this->numerator_ * denominator_.Inverse(); } + + explicit operator FieldElementT() const { return ToBaseFieldElement(); } + + private: + FieldElementT numerator_; + FieldElementT denominator_; +}; + +} // namespace starkware + +#include "fraction_field_element.inl" + +#endif // STARKWARE_ALGEBRA_FRACTION_FIELD_ELEMENT_H_ diff --git a/erigon-lib/pedersen_hash/fraction_field_element.inl b/erigon-lib/pedersen_hash/fraction_field_element.inl new file mode 100644 index 00000000000..710bf35e8d2 --- /dev/null +++ b/erigon-lib/pedersen_hash/fraction_field_element.inl @@ -0,0 +1,42 @@ +#include "fraction_field_element.h" + +#include "error_handling.h" + +namespace starkware { + +template +FractionFieldElement FractionFieldElement::operator+( + const FractionFieldElement& rhs) const { + const auto num_value = this->numerator_ * rhs.denominator_ + this->denominator_ * rhs.numerator_; + const auto denom_value = this->denominator_ * rhs.denominator_; + return FractionFieldElement(num_value, denom_value); +} + +template +FractionFieldElement FractionFieldElement::operator-( + const FractionFieldElement& rhs) const { + const auto num_value = this->numerator_ * rhs.denominator_ - this->denominator_ * rhs.numerator_; + const auto denom_value = this->denominator_ * rhs.denominator_; + return FractionFieldElement(num_value, denom_value); +} + +template +FractionFieldElement FractionFieldElement::operator*( + const FractionFieldElement& rhs) const { + return FractionFieldElement( + this->numerator_ * rhs.numerator_, this->denominator_ * rhs.denominator_); +} + +template +bool FractionFieldElement::operator==( + const FractionFieldElement& rhs) const { + return this->numerator_ * rhs.denominator_ == this->denominator_ * rhs.numerator_; +} + +template +FractionFieldElement FractionFieldElement::Inverse() const { + ASSERT(this->numerator_ != FieldElementT::Zero(), "Zero does not have an inverse"); + return FractionFieldElement(denominator_, numerator_); +} + +} // namespace starkware diff --git a/erigon-lib/pedersen_hash/gsl-lite.hpp b/erigon-lib/pedersen_hash/gsl-lite.hpp new file mode 100644 index 00000000000..95f802412a6 --- /dev/null +++ b/erigon-lib/pedersen_hash/gsl-lite.hpp @@ -0,0 +1,2802 @@ +// +// gsl-lite is based on GSL: Guideline Support Library. +// For more information see https://github.com/martinmoene/gsl-lite +// +// Copyright (c) 2015-2018 Martin Moene +// Copyright (c) 2015-2018 Microsoft Corporation. All rights reserved. +// +// This code is licensed under the MIT License (MIT). +// +// 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. + +#pragma once + +#ifndef GSL_GSL_LITE_HPP_INCLUDED +#define GSL_GSL_LITE_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define gsl_lite_MAJOR 0 +#define gsl_lite_MINOR 32 +#define gsl_lite_PATCH 0 +#define gsl_lite_VERSION gsl_STRINGIFY(gsl_lite_MAJOR) "." gsl_STRINGIFY(gsl_lite_MINOR) "." gsl_STRINGIFY(gsl_lite_PATCH) + +// gsl-lite backward compatibility: + +#ifdef gsl_CONFIG_ALLOWS_SPAN_CONTAINER_CTOR +# define gsl_CONFIG_ALLOWS_UNCONSTRAINED_SPAN_CONTAINER_CTOR gsl_CONFIG_ALLOWS_SPAN_CONTAINER_CTOR +# pragma message ("gsl_CONFIG_ALLOWS_SPAN_CONTAINER_CTOR is deprecated since gsl-lite 0.7.0; replace with gsl_CONFIG_ALLOWS_UNCONSTRAINED_SPAN_CONTAINER_CTOR, or consider span(with_container, cont).") +#endif + +// M-GSL compatibility: + +#if defined( GSL_THROW_ON_CONTRACT_VIOLATION ) +# define gsl_CONFIG_CONTRACT_VIOLATION_THROWS 1 +#endif + +#if defined( GSL_TERMINATE_ON_CONTRACT_VIOLATION ) +# define gsl_CONFIG_CONTRACT_VIOLATION_THROWS 0 +#endif + +#if defined( GSL_UNENFORCED_ON_CONTRACT_VIOLATION ) +# define gsl_CONFIG_CONTRACT_LEVEL_OFF 1 +#endif + +// Configuration: Features + +#ifndef gsl_FEATURE_WITH_CONTAINER_TO_STD +# define gsl_FEATURE_WITH_CONTAINER_TO_STD 99 +#endif + +#ifndef gsl_FEATURE_MAKE_SPAN_TO_STD +# define gsl_FEATURE_MAKE_SPAN_TO_STD 99 +#endif + +#ifndef gsl_FEATURE_BYTE_SPAN_TO_STD +# define gsl_FEATURE_BYTE_SPAN_TO_STD 99 +#endif + +#ifndef gsl_FEATURE_HAVE_IMPLICIT_MACRO +# define gsl_FEATURE_HAVE_IMPLICIT_MACRO 1 +#endif + +#ifndef gsl_FEATURE_HAVE_OWNER_MACRO +# define gsl_FEATURE_HAVE_OWNER_MACRO 1 +#endif + +#ifndef gsl_FEATURE_EXPERIMENTAL_RETURN_GUARD +# define gsl_FEATURE_EXPERIMENTAL_RETURN_GUARD 0 +#endif + +// Configuration: Other + +#ifndef gsl_CONFIG_DEPRECATE_TO_LEVEL +# define gsl_CONFIG_DEPRECATE_TO_LEVEL 0 +#endif + +#ifndef gsl_CONFIG_SPAN_INDEX_TYPE +# define gsl_CONFIG_SPAN_INDEX_TYPE size_t +#endif + +#ifndef gsl_CONFIG_NOT_NULL_EXPLICIT_CTOR +# define gsl_CONFIG_NOT_NULL_EXPLICIT_CTOR 0 +#endif + +#ifndef gsl_CONFIG_NOT_NULL_GET_BY_CONST_REF +# define gsl_CONFIG_NOT_NULL_GET_BY_CONST_REF 0 +#endif + +#ifndef gsl_CONFIG_CONFIRMS_COMPILATION_ERRORS +# define gsl_CONFIG_CONFIRMS_COMPILATION_ERRORS 0 +#endif + +#ifndef gsl_CONFIG_ALLOWS_NONSTRICT_SPAN_COMPARISON +# define gsl_CONFIG_ALLOWS_NONSTRICT_SPAN_COMPARISON 1 +#endif + +#ifndef gsl_CONFIG_ALLOWS_UNCONSTRAINED_SPAN_CONTAINER_CTOR +# define gsl_CONFIG_ALLOWS_UNCONSTRAINED_SPAN_CONTAINER_CTOR 0 +#endif + +#if defined( gsl_CONFIG_CONTRACT_LEVEL_ON ) +# define gsl_CONFIG_CONTRACT_LEVEL_MASK 0x11 +#elif defined( gsl_CONFIG_CONTRACT_LEVEL_OFF ) +# define gsl_CONFIG_CONTRACT_LEVEL_MASK 0x00 +#elif defined( gsl_CONFIG_CONTRACT_LEVEL_EXPECTS_ONLY ) +# define gsl_CONFIG_CONTRACT_LEVEL_MASK 0x01 +#elif defined( gsl_CONFIG_CONTRACT_LEVEL_ENSURES_ONLY ) +# define gsl_CONFIG_CONTRACT_LEVEL_MASK 0x10 +#else +# define gsl_CONFIG_CONTRACT_LEVEL_MASK 0x11 +#endif + +#if !defined( gsl_CONFIG_CONTRACT_VIOLATION_THROWS ) && \ + !defined( gsl_CONFIG_CONTRACT_VIOLATION_TERMINATES ) +# define gsl_CONFIG_CONTRACT_VIOLATION_THROWS_V 0 +#elif defined( gsl_CONFIG_CONTRACT_VIOLATION_THROWS ) && \ + !defined( gsl_CONFIG_CONTRACT_VIOLATION_TERMINATES ) +# define gsl_CONFIG_CONTRACT_VIOLATION_THROWS_V 1 +#elif !defined( gsl_CONFIG_CONTRACT_VIOLATION_THROWS ) && \ + defined( gsl_CONFIG_CONTRACT_VIOLATION_TERMINATES ) +# define gsl_CONFIG_CONTRACT_VIOLATION_THROWS_V 0 +#else +# error only one of gsl_CONFIG_CONTRACT_VIOLATION_THROWS and gsl_CONFIG_CONTRACT_VIOLATION_TERMINATES may be defined. +#endif + +// C++ language version detection (C++20 is speculative): +// Note: VC14.0/1900 (VS2015) lacks too much from C++14. + +#ifndef gsl_CPLUSPLUS +# ifdef _MSVC_LANG +# define gsl_CPLUSPLUS (_MSC_VER == 1900 ? 201103L : _MSVC_LANG ) +# else +# define gsl_CPLUSPLUS __cplusplus +# endif +#endif + +#define gsl_CPP98_OR_GREATER ( gsl_CPLUSPLUS >= 199711L ) +#define gsl_CPP11_OR_GREATER ( gsl_CPLUSPLUS >= 201103L ) +#define gsl_CPP14_OR_GREATER ( gsl_CPLUSPLUS >= 201402L ) +#define gsl_CPP17_OR_GREATER ( gsl_CPLUSPLUS >= 201703L ) +#define gsl_CPP20_OR_GREATER ( gsl_CPLUSPLUS >= 202000L ) + +// C++ language version (represent 98 as 3): + +#define gsl_CPLUSPLUS_V ( gsl_CPLUSPLUS / 100 - (gsl_CPLUSPLUS > 200000 ? 2000 : 1994) ) + +// half-open range [lo..hi): +#define gsl_BETWEEN( v, lo, hi ) ( (lo) <= (v) && (v) < (hi) ) + +#if defined( _MSC_VER ) && !defined( __clang__ ) +# define gsl_COMPILER_MSVC_VERSION ( _MSC_VER / 10 - 10 * ( 5 + ( _MSC_VER < 1900 ) ) ) +#else +# define gsl_COMPILER_MSVC_VERSION 0 +#endif + +#define gsl_COMPILER_VERSION( major, minor, patch ) ( 10 * ( 10 * (major) + (minor) ) + (patch) ) + +#if defined __clang__ +# define gsl_COMPILER_CLANG_VERSION gsl_COMPILER_VERSION( __clang_major__, __clang_minor__, __clang_patchlevel__ ) +#else +# define gsl_COMPILER_CLANG_VERSION 0 +#endif + +#if defined __GNUC__ +# define gsl_COMPILER_GNUC_VERSION gsl_COMPILER_VERSION( __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ ) +#else +# define gsl_COMPILER_GNUC_VERSION 0 +#endif + +// Compiler non-strict aliasing: + +#if defined __clang__ || defined __GNUC__ +# define gsl_may_alias __attribute__((__may_alias__)) +#else +# define gsl_may_alias +#endif + +// Presence of gsl, language and library features: + +#define gsl_IN_STD( v ) ( (v) == 98 || (v) >= gsl_CPLUSPLUS_V ) + +#define gsl_DEPRECATE_TO_LEVEL( level ) ( level <= gsl_CONFIG_DEPRECATE_TO_LEVEL ) +#define gsl_FEATURE_TO_STD( feature ) ( gsl_IN_STD( gsl_FEATURE( feature##_TO_STD ) ) ) +#define gsl_FEATURE( feature ) ( gsl_FEATURE_##feature ) +#define gsl_CONFIG( feature ) ( gsl_CONFIG_##feature ) +#define gsl_HAVE( feature ) ( gsl_HAVE_##feature ) + +// Presence of wide character support: + +#ifdef __DJGPP__ +# define gsl_HAVE_WCHAR 0 +#else +# define gsl_HAVE_WCHAR 1 +#endif + +// Presence of language & library features: + +#ifdef _HAS_CPP0X +# define gsl_HAS_CPP0X _HAS_CPP0X +#else +# define gsl_HAS_CPP0X 0 +#endif + +#define gsl_CPP11_100 (gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 100) +#define gsl_CPP11_110 (gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 110) +#define gsl_CPP11_120 (gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 120) +#define gsl_CPP11_140 (gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 140) + +#define gsl_CPP14_000 (gsl_CPP14_OR_GREATER) +#define gsl_CPP14_120 (gsl_CPP14_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 120) +#define gsl_CPP14_140 (gsl_CPP14_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 140) + +#define gsl_CPP17_000 (gsl_CPP17_OR_GREATER) +#define gsl_CPP17_140 (gsl_CPP17_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 140) + +#define gsl_CPP11_140_CPP0X_90 (gsl_CPP11_140 || (gsl_COMPILER_MSVC_VERSION >= 90 && gsl_HAS_CPP0X)) +#define gsl_CPP11_140_CPP0X_100 (gsl_CPP11_140 || (gsl_COMPILER_MSVC_VERSION >= 100 && gsl_HAS_CPP0X)) + +// Presence of C++11 language features: + +#define gsl_HAVE_AUTO gsl_CPP11_100 +#define gsl_HAVE_NULLPTR gsl_CPP11_100 +#define gsl_HAVE_RVALUE_REFERENCE gsl_CPP11_100 + +#define gsl_HAVE_ENUM_CLASS gsl_CPP11_110 + +#define gsl_HAVE_ALIAS_TEMPLATE gsl_CPP11_120 +#define gsl_HAVE_DEFAULT_FUNCTION_TEMPLATE_ARG gsl_CPP11_120 +#define gsl_HAVE_EXPLICIT gsl_CPP11_120 +#define gsl_HAVE_INITIALIZER_LIST gsl_CPP11_120 + +#define gsl_HAVE_CONSTEXPR_11 gsl_CPP11_140 +#define gsl_HAVE_IS_DEFAULT gsl_CPP11_140 +#define gsl_HAVE_IS_DELETE gsl_CPP11_140 +#define gsl_HAVE_NOEXCEPT gsl_CPP11_140 + +#if gsl_CPP11_OR_GREATER +// see above +#endif + +// Presence of C++14 language features: + +#define gsl_HAVE_CONSTEXPR_14 gsl_CPP14_000 +#define gsl_HAVE_DECLTYPE_AUTO gsl_CPP14_140 + +// Presence of C++17 language features: +// MSVC: template parameter deduction guides since Visual Studio 2017 v15.7 + +#define gsl_HAVE_ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE gsl_CPP17_000 +#define gsl_HAVE_DEDUCTION_GUIDES (gsl_CPP17_000 && ! gsl_BETWEEN( gsl_COMPILER_MSVC_VERSION, 1, 999 ) ) + +// Presence of C++ library features: + +#define gsl_HAVE_ADDRESSOF gsl_CPP17_000 +#define gsl_HAVE_ARRAY gsl_CPP11_110 +#define gsl_HAVE_TYPE_TRAITS gsl_CPP11_110 +#define gsl_HAVE_TR1_TYPE_TRAITS gsl_CPP11_110 + +#define gsl_HAVE_CONTAINER_DATA_METHOD gsl_CPP11_140_CPP0X_90 +#define gsl_HAVE_STD_DATA gsl_CPP17_000 + +#define gsl_HAVE_SIZED_TYPES gsl_CPP11_140 + +#define gsl_HAVE_MAKE_SHARED gsl_CPP11_140_CPP0X_100 +#define gsl_HAVE_SHARED_PTR gsl_CPP11_140_CPP0X_100 +#define gsl_HAVE_UNIQUE_PTR gsl_CPP11_140_CPP0X_100 + +#define gsl_HAVE_MAKE_UNIQUE gsl_CPP14_120 + +#define gsl_HAVE_UNCAUGHT_EXCEPTIONS gsl_CPP17_140 + +#define gsl_HAVE_ADD_CONST gsl_HAVE_TYPE_TRAITS +#define gsl_HAVE_INTEGRAL_CONSTANT gsl_HAVE_TYPE_TRAITS +#define gsl_HAVE_REMOVE_CONST gsl_HAVE_TYPE_TRAITS +#define gsl_HAVE_REMOVE_REFERENCE gsl_HAVE_TYPE_TRAITS + +#define gsl_HAVE_TR1_ADD_CONST gsl_HAVE_TR1_TYPE_TRAITS +#define gsl_HAVE_TR1_INTEGRAL_CONSTANT gsl_HAVE_TR1_TYPE_TRAITS +#define gsl_HAVE_TR1_REMOVE_CONST gsl_HAVE_TR1_TYPE_TRAITS +#define gsl_HAVE_TR1_REMOVE_REFERENCE gsl_HAVE_TR1_TYPE_TRAITS + +// C++ feature usage: + +#if gsl_HAVE( ADDRESSOF ) +# define gsl_ADDRESSOF(x) std::addressof(x) +#else +# define gsl_ADDRESSOF(x) (&x) +#endif + +#if gsl_HAVE( CONSTEXPR_11 ) +# define gsl_constexpr constexpr +#else +# define gsl_constexpr /*constexpr*/ +#endif + +#if gsl_HAVE( CONSTEXPR_14 ) +# define gsl_constexpr14 constexpr +#else +# define gsl_constexpr14 /*constexpr*/ +#endif + +#if gsl_HAVE( EXPLICIT ) +# define gsl_explicit explicit +#else +# define gsl_explicit /*explicit*/ +#endif + +#if gsl_FEATURE( HAVE_IMPLICIT_MACRO ) +# define implicit /*implicit*/ +#endif + +#if gsl_HAVE( IS_DELETE ) +# define gsl_is_delete = delete +#else +# define gsl_is_delete +#endif + +#if gsl_HAVE( IS_DELETE ) +# define gsl_is_delete_access public +#else +# define gsl_is_delete_access private +#endif + +#if !gsl_HAVE( NOEXCEPT ) || gsl_CONFIG( CONTRACT_VIOLATION_THROWS_V ) +# define gsl_noexcept /*noexcept*/ +#else +# define gsl_noexcept noexcept +#endif + +#if gsl_HAVE( NULLPTR ) +# define gsl_nullptr nullptr +#else +# define gsl_nullptr NULL +#endif + +#define gsl_DIMENSION_OF( a ) ( sizeof(a) / sizeof(0[a]) ) + +// Other features: + +#define gsl_HAVE_CONSTRAINED_SPAN_CONTAINER_CTOR \ + ( gsl_HAVE_DEFAULT_FUNCTION_TEMPLATE_ARG && gsl_HAVE_CONTAINER_DATA_METHOD ) + +// Note: !defined(__NVCC__) doesn't work with nvcc here: +#define gsl_HAVE_UNCONSTRAINED_SPAN_CONTAINER_CTOR \ + ( gsl_CONFIG_ALLOWS_UNCONSTRAINED_SPAN_CONTAINER_CTOR && (__NVCC__== 0) ) + +// GSL API (e.g. for CUDA platform): + +#ifndef gsl_api +# ifdef __CUDACC__ +# define gsl_api __host__ __device__ +# else +# define gsl_api /*gsl_api*/ +# endif +#endif + +// Additional includes: + +#if gsl_HAVE( ARRAY ) +# include +#endif + +#if gsl_HAVE( TYPE_TRAITS ) +# include +#elif gsl_HAVE( TR1_TYPE_TRAITS ) +# include +#endif + +#if gsl_HAVE( SIZED_TYPES ) +# include +#endif + +// MSVC warning suppression macros: + +#if gsl_COMPILER_MSVC_VERSION >= 140 +# define gsl_SUPPRESS_MSGSL_WARNING(expr) [[gsl::suppress(expr)]] +# define gsl_SUPPRESS_MSVC_WARNING(code, descr) __pragma(warning(suppress: code) ) +# define gsl_DISABLE_MSVC_WARNINGS(codes) __pragma(warning(push)) __pragma(warning(disable: codes)) +# define gsl_RESTORE_MSVC_WARNINGS() __pragma(warning(pop )) +#else +# define gsl_SUPPRESS_MSGSL_WARNING(expr) +# define gsl_SUPPRESS_MSVC_WARNING(code, descr) +# define gsl_DISABLE_MSVC_WARNINGS(codes) +# define gsl_RESTORE_MSVC_WARNINGS() +#endif + +// Suppress the following MSVC GSL warnings: +// - C26410: gsl::r.32: the parameter 'ptr' is a reference to const unique pointer, use const T* or const T& instead +// - C26415: gsl::r.30: smart pointer parameter 'ptr' is used only to access contained pointer. Use T* or T& instead +// - C26418: gsl::r.36: shared pointer parameter 'ptr' is not copied or moved. Use T* or T& instead +// - C26472, gsl::t.1 : don't use a static_cast for arithmetic conversions; +// use brace initialization, gsl::narrow_cast or gsl::narow +// - C26439, gsl::f.6 : special function 'function' can be declared 'noexcept' +// - C26440, gsl::f.6 : function 'function' can be declared 'noexcept' +// - C26473: gsl::t.1 : don't cast between pointer types where the source type and the target type are the same +// - C26481: gsl::b.1 : don't use pointer arithmetic. Use span instead +// - C26482, gsl::b.2 : only index into arrays using constant expressions +// - C26490: gsl::t.1 : don't use reinterpret_cast + +gsl_DISABLE_MSVC_WARNINGS( 26410 26415 26418 26472 26439 26440 26473 26481 26482 26490 ) + +namespace gsl { + +// forward declare span<>: + +template< class T > +class span; + +namespace details { + +// C++11 emulation: + +#if gsl_HAVE( ADD_CONST ) + +using std::add_const; + +#elif gsl_HAVE( TR1_ADD_CONST ) + +using std::tr1::add_const; + +#else + +template< class T > struct add_const { typedef const T type; }; + +#endif // gsl_HAVE( ADD_CONST ) + +#if gsl_HAVE( REMOVE_CONST ) + +using std::remove_cv; +using std::remove_const; +using std::remove_volatile; + +#elif gsl_HAVE( TR1_REMOVE_CONST ) + +using std::tr1::remove_cv; +using std::tr1::remove_const; +using std::tr1::remove_volatile; + +#else + +template< class T > struct remove_const { typedef T type; }; +template< class T > struct remove_const { typedef T type; }; + +template< class T > struct remove_volatile { typedef T type; }; +template< class T > struct remove_volatile { typedef T type; }; + +template< class T > +struct remove_cv +{ + typedef typename details::remove_volatile::type>::type type; +}; + +#endif // gsl_HAVE( REMOVE_CONST ) + +#if gsl_HAVE( INTEGRAL_CONSTANT ) + +using std::integral_constant; +using std::true_type; +using std::false_type; + +#elif gsl_HAVE( TR1_INTEGRAL_CONSTANT ) + +using std::tr1::integral_constant; +using std::tr1::true_type; +using std::tr1::false_type; + +#else + +template< int v > struct integral_constant { enum { value = v }; }; +typedef integral_constant< true > true_type; +typedef integral_constant< false > false_type; + +#endif + +#if gsl_HAVE( TYPE_TRAITS ) + +template< class Q > +struct is_span_oracle : std::false_type{}; + +template< class T> +struct is_span_oracle< span > : std::true_type{}; + +template< class Q > +struct is_span : is_span_oracle< typename std::remove_cv::type >{}; + +template< class Q > +struct is_std_array_oracle : std::false_type{}; + +#if gsl_HAVE( ARRAY ) + +template< class T, std::size_t Extent > +struct is_std_array_oracle< std::array > : std::true_type{}; + +#endif + +template< class Q > +struct is_std_array : is_std_array_oracle< typename std::remove_cv::type >{}; + +template< class Q > +struct is_array : std::false_type {}; + +template< class T > +struct is_array : std::true_type {}; + +template< class T, std::size_t N > +struct is_array : std::true_type {}; + +#endif // gsl_HAVE( TYPE_TRAITS ) + +} // namespace details + +// +// GSL.util: utilities +// + +// index type for all container indexes/subscripts/sizes +typedef gsl_CONFIG_SPAN_INDEX_TYPE index; // p0122r3 uses std::ptrdiff_t + +// +// GSL.owner: ownership pointers +// +#if gsl_HAVE( SHARED_PTR ) + using std::unique_ptr; + using std::shared_ptr; + using std::make_shared; +# if gsl_HAVE( MAKE_UNIQUE ) + using std::make_unique; +# endif +#endif + +#if gsl_HAVE( ALIAS_TEMPLATE ) +# if gsl_HAVE( TYPE_TRAITS ) + template< class T, class = typename std::enable_if< std::is_pointer::value >::type > + using owner = T; +# else + template< class T > using owner = T; +# endif +#else + template< class T > struct owner { typedef T type; }; +#endif + +#define gsl_HAVE_OWNER_TEMPLATE gsl_HAVE_ALIAS_TEMPLATE + +#if gsl_FEATURE( HAVE_OWNER_MACRO ) +# if gsl_HAVE( OWNER_TEMPLATE ) +# define Owner(t) ::gsl::owner +# else +# define Owner(t) ::gsl::owner::type +# endif +#endif + +// +// GSL.assert: assertions +// + +#define gsl_ELIDE_CONTRACT_EXPECTS ( 0 == ( gsl_CONFIG_CONTRACT_LEVEL_MASK & 0x01 ) ) +#define gsl_ELIDE_CONTRACT_ENSURES ( 0 == ( gsl_CONFIG_CONTRACT_LEVEL_MASK & 0x10 ) ) + +#if gsl_ELIDE_CONTRACT_EXPECTS +# define Expects( x ) /* Expects elided */ +#elif gsl_CONFIG( CONTRACT_VIOLATION_THROWS_V ) +# define Expects( x ) ::gsl::fail_fast_assert( (x), "GSL: Precondition failure at " __FILE__ ":" gsl_STRINGIFY(__LINE__) ); +#else +# define Expects( x ) ::gsl::fail_fast_assert( (x) ) +#endif + +#if gsl_ELIDE_CONTRACT_EXPECTS +# define gsl_EXPECTS_UNUSED_PARAM( x ) /* Make param unnamed if Expects elided */ +#else +# define gsl_EXPECTS_UNUSED_PARAM( x ) x +#endif + +#if gsl_ELIDE_CONTRACT_ENSURES +# define Ensures( x ) /* Ensures elided */ +#elif gsl_CONFIG( CONTRACT_VIOLATION_THROWS_V ) +# define Ensures( x ) ::gsl::fail_fast_assert( (x), "GSL: Postcondition failure at " __FILE__ ":" gsl_STRINGIFY(__LINE__) ); +#else +# define Ensures( x ) ::gsl::fail_fast_assert( (x) ) +#endif + +#define gsl_STRINGIFY( x ) gsl_STRINGIFY_( x ) +#define gsl_STRINGIFY_( x ) #x + +struct fail_fast : public std::logic_error +{ + gsl_api explicit fail_fast( char const * const message ) + : std::logic_error( message ) {} +}; + +// workaround for gcc 5 throw/terminate constexpr bug: + +#if gsl_BETWEEN( gsl_COMPILER_GNUC_VERSION, 430, 600 ) && gsl_HAVE( CONSTEXPR_14 ) + +# if gsl_CONFIG( CONTRACT_VIOLATION_THROWS_V ) + +gsl_api inline gsl_constexpr14 auto fail_fast_assert( bool cond, char const * const message ) -> void +{ + !cond ? throw fail_fast( message ) : 0; +} + +# else + +gsl_api inline gsl_constexpr14 auto fail_fast_assert( bool cond ) -> void +{ + struct F { static gsl_constexpr14 void f(){}; }; + + !cond ? std::terminate() : F::f(); +} + +# endif + +#else // workaround + +# if gsl_CONFIG( CONTRACT_VIOLATION_THROWS_V ) + +gsl_api inline gsl_constexpr14 void fail_fast_assert( bool cond, char const * const message ) +{ + if ( !cond ) + throw fail_fast( message ); +} + +# else + +gsl_api inline gsl_constexpr14 void fail_fast_assert( bool cond ) gsl_noexcept +{ + if ( !cond ) + std::terminate(); +} + +# endif +#endif // workaround + +// +// GSL.util: utilities +// + +#if gsl_FEATURE( EXPERIMENTAL_RETURN_GUARD ) + +// Add uncaught_exceptions for pre-2017 MSVC, GCC and Clang +// Return unsigned char to save stack space, uncaught_exceptions can only increase by 1 in a scope + +namespace details { + +inline unsigned char to_uchar( unsigned x ) gsl_noexcept +{ + return static_cast( x ); +} + +#if gsl_HAVE( UNCAUGHT_EXCEPTIONS ) + +inline unsigned char uncaught_exceptions() gsl_noexcept +{ + return to_uchar( std::uncaught_exceptions() ); +} + +#elif gsl_COMPILER_MSVC_VERSION + +extern "C" char * __cdecl _getptd(); +inline unsigned char uncaught_exceptions() gsl_noexcept +{ + return to_uchar( *reinterpret_cast(_getptd() + (sizeof(void*) == 8 ? 0x100 : 0x90) ) ); +} + +#elif gsl_COMPILER_CLANG_VERSION || gsl_COMPILER_GNUC_VERSION + +extern "C" char * __cxa_get_globals(); +inline unsigned char uncaught_exceptions() gsl_noexcept +{ + return to_uchar( *reinterpret_cast(__cxa_get_globals() + sizeof(void*) ) ); +} +#endif +} +#endif + +#if gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 110 + +template< class F > +class final_action +{ +public: + gsl_api explicit final_action( F action ) gsl_noexcept + : action_( std::move( action ) ) + , invoke_( true ) + {} + + gsl_api final_action( final_action && other ) gsl_noexcept + : action_( std::move( other.action_ ) ) + , invoke_( other.invoke_ ) + { + other.invoke_ = false; + } + + gsl_api virtual ~final_action() gsl_noexcept + { + if ( invoke_ ) + action_(); + } + +gsl_is_delete_access: + gsl_api final_action( final_action const & ) gsl_is_delete; + gsl_api final_action & operator=( final_action const & ) gsl_is_delete; + gsl_api final_action & operator=( final_action && ) gsl_is_delete; + +protected: + gsl_api void dismiss() gsl_noexcept + { + invoke_ = false; + } + +private: + F action_; + bool invoke_; +}; + +template< class F > +gsl_api inline final_action finally( F const & action ) gsl_noexcept +{ + return final_action( action ); +} + +template< class F > +gsl_api inline final_action finally( F && action ) gsl_noexcept +{ + return final_action( std::forward( action ) ); +} + +#if gsl_FEATURE( EXPERIMENTAL_RETURN_GUARD ) + +template< class F > +class final_action_return : public final_action +{ +public: + gsl_api explicit final_action_return( F && action ) gsl_noexcept + : final_action( std::move( action ) ) + , exception_count( details::uncaught_exceptions() ) + {} + + gsl_api final_action_return( final_action_return && other ) gsl_noexcept + : final_action( std::move( other ) ) + , exception_count( details::uncaught_exceptions() ) + {} + + gsl_api ~final_action_return() override + { + if ( details::uncaught_exceptions() != exception_count ) + this->dismiss(); + } + +gsl_is_delete_access: + gsl_api final_action_return( final_action_return const & ) gsl_is_delete; + gsl_api final_action_return & operator=( final_action_return const & ) gsl_is_delete; + +private: + unsigned char exception_count; +}; + +template< class F > +gsl_api inline final_action_return on_return( F const & action ) gsl_noexcept +{ + return final_action_return( action ); +} + +template< class F > +gsl_api inline final_action_return on_return( F && action ) gsl_noexcept +{ + return final_action_return( std::forward( action ) ); +} + +template< class F > +class final_action_error : public final_action +{ +public: + gsl_api explicit final_action_error( F && action ) gsl_noexcept + : final_action( std::move( action ) ) + , exception_count( details::uncaught_exceptions() ) + {} + + gsl_api final_action_error( final_action_error && other ) gsl_noexcept + : final_action( std::move( other ) ) + , exception_count( details::uncaught_exceptions() ) + {} + + gsl_api ~final_action_error() override + { + if ( details::uncaught_exceptions() == exception_count ) + this->dismiss(); + } + +gsl_is_delete_access: + gsl_api final_action_error( final_action_error const & ) gsl_is_delete; + gsl_api final_action_error & operator=( final_action_error const & ) gsl_is_delete; + +private: + unsigned char exception_count; +}; + +template< class F > +gsl_api inline final_action_error on_error( F const & action ) gsl_noexcept +{ + return final_action_error( action ); +} + +template< class F > +gsl_api inline final_action_error on_error( F && action ) gsl_noexcept +{ + return final_action_error( std::forward( action ) ); +} + +#endif // gsl_FEATURE( EXPERIMENTAL_RETURN_GUARD ) + +#else // gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 110 + +class final_action +{ +public: + typedef void (*Action)(); + + gsl_api final_action( Action action ) + : action_( action ) + , invoke_( true ) + {} + + gsl_api final_action( final_action const & other ) + : action_( other.action_ ) + , invoke_( other.invoke_ ) + { + other.invoke_ = false; + } + + gsl_api virtual ~final_action() + { + if ( invoke_ ) + action_(); + } + +protected: + gsl_api void dismiss() + { + invoke_ = false; + } + +private: + gsl_api final_action & operator=( final_action const & ); + +private: + Action action_; + mutable bool invoke_; +}; + +template< class F > +gsl_api inline final_action finally( F const & f ) +{ + return final_action(( f )); +} + +#if gsl_FEATURE( EXPERIMENTAL_RETURN_GUARD ) + +class final_action_return : public final_action +{ +public: + gsl_api explicit final_action_return( Action action ) + : final_action( action ) + , exception_count( details::uncaught_exceptions() ) + {} + + gsl_api ~final_action_return() + { + if ( details::uncaught_exceptions() != exception_count ) + this->dismiss(); + } + +private: + gsl_api final_action_return & operator=( final_action_return const & ); + +private: + unsigned char exception_count; +}; + +template< class F > +gsl_api inline final_action_return on_return( F const & action ) +{ + return final_action_return( action ); +} + +class final_action_error : public final_action +{ +public: + gsl_api explicit final_action_error( Action action ) + : final_action( action ) + , exception_count( details::uncaught_exceptions() ) + {} + + gsl_api ~final_action_error() + { + if ( details::uncaught_exceptions() == exception_count ) + this->dismiss(); + } + +private: + gsl_api final_action_error & operator=( final_action_error const & ); + +private: + unsigned char exception_count; +}; + +template< class F > +gsl_api inline final_action_error on_error( F const & action ) +{ + return final_action_error( action ); +} + +#endif // gsl_FEATURE( EXPERIMENTAL_RETURN_GUARD ) + +#endif // gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION == 110 + +#if gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 120 + +template< class T, class U > +gsl_api inline gsl_constexpr T narrow_cast( U && u ) gsl_noexcept +{ + return static_cast( std::forward( u ) ); +} + +#else + +template< class T, class U > +gsl_api inline T narrow_cast( U u ) gsl_noexcept +{ + return static_cast( u ); +} + +#endif // gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 120 + +struct narrowing_error : public std::exception {}; + +#if gsl_HAVE( TYPE_TRAITS ) + +namespace details +{ + template< class T, class U > + struct is_same_signedness : public std::integral_constant::value == std::is_signed::value> + {}; +} +#endif + +template< class T, class U > +gsl_api inline T narrow( U u ) +{ + T t = narrow_cast( u ); + + if ( static_cast( t ) != u ) + { +#if gsl_CONFIG( CONTRACT_VIOLATION_THROWS_V ) + throw narrowing_error(); +#else + std::terminate(); +#endif + } + +#if gsl_HAVE( TYPE_TRAITS ) +# if gsl_COMPILER_MSVC_VERSION + // Suppress MSVC level 4 warning C4127 (conditional expression is constant) + if ( 0, ! details::is_same_signedness::value && ( ( t < T() ) != ( u < U() ) ) ) +# else + if ( ! details::is_same_signedness::value && ( ( t < T() ) != ( u < U() ) ) ) +# endif +#else + // Don't assume T() works: + if ( ( t < 0 ) != ( u < 0 ) ) +#endif + { +#if gsl_CONFIG( CONTRACT_VIOLATION_THROWS_V ) + throw narrowing_error(); +#else + std::terminate(); +#endif + } + return t; +} + +// +// at() - Bounds-checked way of accessing static arrays, std::array, std::vector. +// + +template< class T, size_t N > +gsl_api inline gsl_constexpr14 T & at( T(&arr)[N], size_t index ) +{ + Expects( index < N ); + return arr[index]; +} + +#if gsl_HAVE( ARRAY ) + +template< class T, size_t N > +gsl_api inline gsl_constexpr14 T & at( std::array & arr, size_t index ) +{ + Expects( index < N ); + return arr[index]; +} +#endif + +template< class Container > +gsl_api inline gsl_constexpr14 auto at(Container & cont, size_t index)->decltype(cont[0]) +{ + Expects( index < cont.size() ); + return cont[index]; +} + +#if gsl_HAVE( INITIALIZER_LIST ) + +template< class T > +gsl_api inline const gsl_constexpr14 T & at( std::initializer_list cont, size_t index ) +{ + Expects( index < cont.size() ); + return *( cont.begin() + index ); +} +#endif + +template< class T > +gsl_api inline gsl_constexpr T & at( span s, size_t index ) +{ + return s.at( index ); +} + +// +// GSL.views: views +// + +// +// not_null<> - Wrap any indirection and enforce non-null. +// +template< class T > +class not_null +{ +#if gsl_CONFIG( NOT_NULL_EXPLICIT_CTOR ) +# define gsl_not_null_explicit explicit +#else +# define gsl_not_null_explicit /*explicit*/ +#endif + +#if gsl_CONFIG( NOT_NULL_GET_BY_CONST_REF ) + typedef T const & get_result_t; +#else + typedef T get_result_t; +#endif + +public: +#if gsl_HAVE( TYPE_TRAITS ) + static_assert( std::is_assignable::value, "T cannot be assigned nullptr." ); +#endif + + template< class U +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + , class Dummy = typename std::enable_if::value>::type +#endif + > + gsl_api gsl_constexpr14 gsl_not_null_explicit +#if gsl_HAVE( RVALUE_REFERENCE ) + not_null( U && u ) + : ptr_( std::forward( u ) ) +#else + not_null( U const & u ) + : ptr_( u ) +#endif + { + Expects( ptr_ != gsl_nullptr ); + } +#undef gsl_not_null_explicit + +#if gsl_HAVE( IS_DEFAULT ) + gsl_api ~not_null() = default; + gsl_api gsl_constexpr not_null( not_null && other ) = default; + gsl_api gsl_constexpr not_null( not_null const & other ) = default; + gsl_api not_null & operator=( not_null && other ) = default; + gsl_api not_null & operator=( not_null const & other ) = default; +#else + gsl_api ~not_null() {}; + gsl_api gsl_constexpr not_null( not_null const & other ) : ptr_ ( other.ptr_ ) {} + gsl_api not_null & operator=( not_null const & other ) { ptr_ = other.ptr_; return *this; } +# if gsl_HAVE( RVALUE_REFERENCE ) + gsl_api gsl_constexpr not_null( not_null && other ) : ptr_( std::move( other.get() ) ) {} + gsl_api not_null & operator=( not_null && other ) { ptr_ = std::move( other.get() ); return *this; } +# endif +#endif + + template< class U +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + , class Dummy = typename std::enable_if::value>::type +#endif + > + gsl_api gsl_constexpr not_null( not_null const & other ) + : ptr_( other.get() ) + {} + + gsl_api gsl_constexpr14 get_result_t get() const + { + // Without cheating and changing ptr_ from the outside, this check is superfluous: + Ensures( ptr_ != gsl_nullptr ); + return ptr_; + } + + gsl_api gsl_constexpr operator get_result_t () const { return get(); } + gsl_api gsl_constexpr get_result_t operator->() const { return get(); } + +#if gsl_HAVE( DECLTYPE_AUTO ) + gsl_api gsl_constexpr decltype(auto) operator*() const { return *get(); } +#endif + +gsl_is_delete_access: + // prevent compilation when initialized with a nullptr or literal 0: +#if gsl_HAVE( NULLPTR ) + gsl_api not_null( std::nullptr_t ) gsl_is_delete; + gsl_api not_null & operator=( std::nullptr_t ) gsl_is_delete; +#else + gsl_api not_null( int ) gsl_is_delete; + gsl_api not_null & operator=( int ) gsl_is_delete; +#endif + + // unwanted operators...pointers only point to single objects! + gsl_api not_null & operator++() gsl_is_delete; + gsl_api not_null & operator--() gsl_is_delete; + gsl_api not_null operator++( int ) gsl_is_delete; + gsl_api not_null operator--( int ) gsl_is_delete; + gsl_api not_null & operator+ ( size_t ) gsl_is_delete; + gsl_api not_null & operator+=( size_t ) gsl_is_delete; + gsl_api not_null & operator- ( size_t ) gsl_is_delete; + gsl_api not_null & operator-=( size_t ) gsl_is_delete; + gsl_api not_null & operator+=( std::ptrdiff_t ) gsl_is_delete; + gsl_api not_null & operator-=( std::ptrdiff_t ) gsl_is_delete; + gsl_api void operator[]( std::ptrdiff_t ) const gsl_is_delete; + +private: + T ptr_; +}; + +// not_null with implicit constructor, allowing copy-initialization: + +template< class T > +class not_null_ic : public not_null +{ +public: + template< class U +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + , class Dummy = typename std::enable_if::value>::type +#endif + > + gsl_api gsl_constexpr14 +#if gsl_HAVE( RVALUE_REFERENCE ) + not_null_ic( U && u ) + : not_null( std::forward( u ) ) +#else + not_null_ic( U const & u ) + : not_null( u ) +#endif + {} +}; + +// more not_null unwanted operators + +template< class T, class U > +std::ptrdiff_t operator-( not_null const &, not_null const & ) gsl_is_delete; + +template< class T > +not_null operator-( not_null const &, std::ptrdiff_t ) gsl_is_delete; + +template< class T > +not_null operator+( not_null const &, std::ptrdiff_t ) gsl_is_delete; + +template< class T > +not_null operator+( std::ptrdiff_t, not_null const & ) gsl_is_delete; + +// not_null comparisons + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator==( not_null const & l, not_null const & r ) +{ + return l.get() == r.get(); +} + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator< ( not_null const & l, not_null const & r ) +{ + return l.get() < r.get(); +} + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator!=( not_null const & l, not_null const & r ) +{ + return !( l == r ); +} + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator<=( not_null const & l, not_null const & r ) +{ + return !( r < l ); +} + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator> ( not_null const & l, not_null const & r ) +{ + return ( r < l ); +} + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator>=( not_null const & l, not_null const & r ) +{ + return !( l < r ); +} + +// +// Byte-specific type. +// +#if gsl_HAVE( ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE ) + enum class gsl_may_alias byte : unsigned char {}; +#else + struct gsl_may_alias byte { typedef unsigned char type; type v; }; +#endif + +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) +# define gsl_ENABLE_IF_INTEGRAL_T(T) \ + , class = typename std::enable_if::value>::type +#else +# define gsl_ENABLE_IF_INTEGRAL_T(T) +#endif + +template< class T > +gsl_api inline gsl_constexpr byte to_byte( T v ) gsl_noexcept +{ +#if gsl_HAVE( ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE ) + return static_cast( v ); +#elif gsl_HAVE( CONSTEXPR_11 ) + return { static_cast( v ) }; +#else + byte b = { static_cast( v ) }; return b; +#endif +} + +template< class IntegerType gsl_ENABLE_IF_INTEGRAL_T( IntegerType ) > +gsl_api inline gsl_constexpr IntegerType to_integer( byte b ) gsl_noexcept +{ +#if gsl_HAVE( ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE ) + return static_cast::type>( b ); +#else + return b.v; +#endif +} + +gsl_api inline gsl_constexpr unsigned char to_uchar( byte b ) gsl_noexcept +{ + return to_integer( b ); +} + +gsl_api inline gsl_constexpr unsigned char to_uchar( int i ) gsl_noexcept +{ + return static_cast( i ); +} + +#if ! gsl_HAVE( ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE ) + +gsl_api inline gsl_constexpr bool operator==( byte l, byte r ) gsl_noexcept +{ + return l.v == r.v; +} + +gsl_api inline gsl_constexpr bool operator!=( byte l, byte r ) gsl_noexcept +{ + return !( l == r ); +} + +gsl_api inline gsl_constexpr bool operator< ( byte l, byte r ) gsl_noexcept +{ + return l.v < r.v; +} + +gsl_api inline gsl_constexpr bool operator<=( byte l, byte r ) gsl_noexcept +{ + return !( r < l ); +} + +gsl_api inline gsl_constexpr bool operator> ( byte l, byte r ) gsl_noexcept +{ + return ( r < l ); +} + +gsl_api inline gsl_constexpr bool operator>=( byte l, byte r ) gsl_noexcept +{ + return !( l < r ); +} +#endif + +template< class IntegerType gsl_ENABLE_IF_INTEGRAL_T( IntegerType ) > +gsl_api inline gsl_constexpr14 byte & operator<<=( byte & b, IntegerType shift ) gsl_noexcept +{ +#if gsl_HAVE( ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE ) + return b = to_byte( to_uchar( b ) << shift ); +#else + b.v = to_uchar( b.v << shift ); return b; +#endif +} + +template< class IntegerType gsl_ENABLE_IF_INTEGRAL_T( IntegerType ) > +gsl_api inline gsl_constexpr byte operator<<( byte b, IntegerType shift ) gsl_noexcept +{ + return to_byte( to_uchar( b ) << shift ); +} + +template< class IntegerType gsl_ENABLE_IF_INTEGRAL_T( IntegerType ) > +gsl_api inline gsl_constexpr14 byte & operator>>=( byte & b, IntegerType shift ) gsl_noexcept +{ +#if gsl_HAVE( ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE ) + return b = to_byte( to_uchar( b ) >> shift ); +#else + b.v = to_uchar( b.v >> shift ); return b; +#endif +} + +template< class IntegerType gsl_ENABLE_IF_INTEGRAL_T( IntegerType ) > +gsl_api inline gsl_constexpr byte operator>>( byte b, IntegerType shift ) gsl_noexcept +{ + return to_byte( to_uchar( b ) >> shift ); +} + +gsl_api inline gsl_constexpr14 byte & operator|=( byte & l, byte r ) gsl_noexcept +{ +#if gsl_HAVE( ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE ) + return l = to_byte( to_uchar( l ) | to_uchar( r ) ); +#else + l.v = to_uchar( l ) | to_uchar( r ); return l; +#endif +} + +gsl_api inline gsl_constexpr byte operator|( byte l, byte r ) gsl_noexcept +{ + return to_byte( to_uchar( l ) | to_uchar( r ) ); +} + +gsl_api inline gsl_constexpr14 byte & operator&=( byte & l, byte r ) gsl_noexcept +{ +#if gsl_HAVE( ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE ) + return l = to_byte( to_uchar( l ) & to_uchar( r ) ); +#else + l.v = to_uchar( l ) & to_uchar( r ); return l; +#endif +} + +gsl_api inline gsl_constexpr byte operator&( byte l, byte r ) gsl_noexcept +{ + return to_byte( to_uchar( l ) & to_uchar( r ) ); +} + +gsl_api inline gsl_constexpr14 byte & operator^=( byte & l, byte r ) gsl_noexcept +{ +#if gsl_HAVE( ENUM_CLASS_CONSTRUCTION_FROM_UNDERLYING_TYPE ) + return l = to_byte( to_uchar( l ) ^ to_uchar (r ) ); +#else + l.v = to_uchar( l ) ^ to_uchar (r ); return l; +#endif +} + +gsl_api inline gsl_constexpr byte operator^( byte l, byte r ) gsl_noexcept +{ + return to_byte( to_uchar( l ) ^ to_uchar( r ) ); +} + +gsl_api inline gsl_constexpr byte operator~( byte b ) gsl_noexcept +{ + return to_byte( ~to_uchar( b ) ); +} + +#if gsl_FEATURE_TO_STD( WITH_CONTAINER ) + +// Tag to select span constructor taking a container (prevent ms-gsl warning C26426): + +struct with_container_t { gsl_constexpr with_container_t() gsl_noexcept {} }; +const gsl_constexpr with_container_t with_container; + +#endif + +#if gsl_HAVE( CONSTRAINED_SPAN_CONTAINER_CTOR ) + +namespace details { + +// Can construct from containers that: + +template< + class Container, class ElementType + , class = typename std::enable_if< + ! details::is_span< Container >::value && + ! details::is_array< Container >::value && + ! details::is_std_array< Container >::value && + std::is_convertible().data())>::type(*)[], ElementType(*)[] >::value + >::type +#if gsl_HAVE( STD_DATA ) + // data(cont) and size(cont) well-formed: + , class = decltype( std::data( std::declval() ) ) + , class = decltype( std::size( std::declval() ) ) +#endif +> +struct can_construct_span_from : details::true_type{}; + +} // namespace details +#endif + +// +// span<> - A 1D view of contiguous T's, replace (*,len). +// +template< class T > +class span +{ + template< class U > friend class span; + +public: + typedef index index_type; + + typedef T element_type; + typedef typename details::remove_cv< T >::type value_type; + + typedef T & reference; + typedef T * pointer; + typedef T const * const_pointer; + typedef T const & const_reference; + + typedef pointer iterator; + typedef const_pointer const_iterator; + + typedef std::reverse_iterator< iterator > reverse_iterator; + typedef std::reverse_iterator< const_iterator > const_reverse_iterator; + + typedef typename std::iterator_traits< iterator >::difference_type difference_type; + + // 26.7.3.2 Constructors, copy, and assignment [span.cons] + + gsl_api gsl_constexpr14 span() gsl_noexcept + : first_( gsl_nullptr ) + , last_ ( gsl_nullptr ) + { + Expects( size() == 0 ); + } + +#if ! gsl_DEPRECATE_TO_LEVEL( 5 ) + +#if gsl_HAVE( NULLPTR ) + gsl_api gsl_constexpr14 span( std::nullptr_t, index_type gsl_EXPECTS_UNUSED_PARAM( size_in ) ) + : first_( nullptr ) + , last_ ( nullptr ) + { + Expects( size_in == 0 ); + } +#endif + +#if gsl_HAVE( IS_DELETE ) + gsl_api gsl_constexpr span( reference data_in ) + : span( &data_in, 1 ) + {} + + gsl_api gsl_constexpr span( element_type && ) = delete; +#endif + +#endif // deprecate + + gsl_api gsl_constexpr14 span( pointer data_in, index_type size_in ) + : first_( data_in ) + , last_ ( data_in + size_in ) + { + Expects( size_in == 0 || ( size_in > 0 && data_in != gsl_nullptr ) ); + } + + gsl_api gsl_constexpr14 span( pointer first_in, pointer last_in ) + : first_( first_in ) + , last_ ( last_in ) + { + Expects( first_in <= last_in ); + } + +#if ! gsl_DEPRECATE_TO_LEVEL( 5 ) + + template< class U > + gsl_api gsl_constexpr14 span( U * & data_in, index_type size_in ) + : first_( data_in ) + , last_ ( data_in + size_in ) + { + Expects( size_in == 0 || ( size_in > 0 && data_in != gsl_nullptr ) ); + } + + template< class U > + gsl_api gsl_constexpr14 span( U * const & data_in, index_type size_in ) + : first_( data_in ) + , last_ ( data_in + size_in ) + { + Expects( size_in == 0 || ( size_in > 0 && data_in != gsl_nullptr ) ); + } + +#endif // deprecate + +#if ! gsl_DEPRECATE_TO_LEVEL( 5 ) + template< class U, size_t N > + gsl_api gsl_constexpr span( U (&arr)[N] ) gsl_noexcept + : first_( gsl_ADDRESSOF( arr[0] ) ) + , last_ ( gsl_ADDRESSOF( arr[0] ) + N ) + {} +#else + template< size_t N +# if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + , class = typename std::enable_if< + std::is_convertible::value + >::type +# endif + > + gsl_api gsl_constexpr span( element_type (&arr)[N] ) gsl_noexcept + : first_( gsl_ADDRESSOF( arr[0] ) ) + , last_ ( gsl_ADDRESSOF( arr[0] ) + N ) + {} +#endif // deprecate + +#if gsl_HAVE( ARRAY ) +#if ! gsl_DEPRECATE_TO_LEVEL( 5 ) + + template< class U, size_t N > + gsl_api gsl_constexpr span( std::array< U, N > & arr ) + : first_( arr.data() ) + , last_ ( arr.data() + N ) + {} + + template< class U, size_t N > + gsl_api gsl_constexpr span( std::array< U, N > const & arr ) + : first_( arr.data() ) + , last_ ( arr.data() + N ) + {} + +#else + + template< size_t N +# if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + , class = typename std::enable_if< + std::is_convertible::value + >::type +# endif + > + gsl_api gsl_constexpr span( std::array< value_type, N > & arr ) + : first_( arr.data() ) + , last_ ( arr.data() + N ) + {} + + template< size_t N +# if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + , class = typename std::enable_if< + std::is_convertible::value + >::type +# endif + > + gsl_api gsl_constexpr span( std::array< value_type, N > const & arr ) + : first_( arr.data() ) + , last_ ( arr.data() + N ) + {} + +#endif // deprecate +#endif // gsl_HAVE( ARRAY ) + +#if gsl_HAVE( CONSTRAINED_SPAN_CONTAINER_CTOR ) + template< class Container + , class = typename std::enable_if< + details::can_construct_span_from< Container, element_type >::value + >::type + > + gsl_api gsl_constexpr span( Container & cont ) + : first_( cont.data() ) + , last_ ( cont.data() + cont.size() ) + {} + + template< class Container + , class = typename std::enable_if< + std::is_const< element_type >::value && + details::can_construct_span_from< Container, element_type >::value + >::type + > + gsl_api gsl_constexpr span( Container const & cont ) + : first_( cont.data() ) + , last_ ( cont.data() + cont.size() ) + {} + +#elif gsl_HAVE( UNCONSTRAINED_SPAN_CONTAINER_CTOR ) + + template< class Container > + gsl_api gsl_constexpr span( Container & cont ) + : first_( cont.size() == 0 ? gsl_nullptr : gsl_ADDRESSOF( cont[0] ) ) + , last_ ( cont.size() == 0 ? gsl_nullptr : gsl_ADDRESSOF( cont[0] ) + cont.size() ) + {} + + template< class Container > + gsl_api gsl_constexpr span( Container const & cont ) + : first_( cont.size() == 0 ? gsl_nullptr : gsl_ADDRESSOF( cont[0] ) ) + , last_ ( cont.size() == 0 ? gsl_nullptr : gsl_ADDRESSOF( cont[0] ) + cont.size() ) + {} + +#endif + +#if gsl_FEATURE_TO_STD( WITH_CONTAINER ) + + template< class Container > + gsl_api gsl_constexpr span( with_container_t, Container & cont ) + : first_( cont.size() == 0 ? gsl_nullptr : gsl_ADDRESSOF( cont[0] ) ) + , last_ ( cont.size() == 0 ? gsl_nullptr : gsl_ADDRESSOF( cont[0] ) + cont.size() ) + {} + + template< class Container > + gsl_api gsl_constexpr span( with_container_t, Container const & cont ) + : first_( cont.size() == 0 ? gsl_nullptr : gsl_ADDRESSOF( cont[0] ) ) + , last_ ( cont.size() == 0 ? gsl_nullptr : gsl_ADDRESSOF( cont[0] ) + cont.size() ) + {} + +#endif + +#if ! gsl_DEPRECATE_TO_LEVEL( 4 ) + // constructor taking shared_ptr deprecated since 0.29.0 + +#if gsl_HAVE( SHARED_PTR ) + gsl_api gsl_constexpr span( shared_ptr const & ptr ) + : first_( ptr.get() ) + , last_ ( ptr.get() ? ptr.get() + 1 : 0 ) + {} +#endif + + // constructors taking unique_ptr deprecated since 0.29.0 + +#if gsl_HAVE( UNIQUE_PTR ) +# if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + template< class ArrayElementType = typename std::add_pointer::type > +# else + template< class ArrayElementType > +# endif + gsl_api gsl_constexpr span( unique_ptr const & ptr, index_type count ) + : first_( ptr.get() ) + , last_ ( ptr.get() + count ) + {} + + gsl_api gsl_constexpr span( unique_ptr const & ptr ) + : first_( ptr.get() ) + , last_ ( ptr.get() ? ptr.get() + 1 : 0 ) + {} +#endif + +#endif // deprecate shared_ptr, unique_ptr + +#if gsl_HAVE( IS_DEFAULT ) && ! gsl_BETWEEN( gsl_COMPILER_GNUC_VERSION, 430, 600) + gsl_api gsl_constexpr span( span && ) gsl_noexcept = default; + gsl_api gsl_constexpr span( span const & ) = default; +#else + gsl_api gsl_constexpr span( span const & other ) + : first_( other.begin() ) + , last_ ( other.end() ) + {} +#endif + +#if gsl_HAVE( IS_DEFAULT ) + ~span() = default; +#else + ~span() {} +#endif + +#if gsl_HAVE( IS_DEFAULT ) + gsl_api gsl_constexpr14 span & operator=( span && ) gsl_noexcept = default; + gsl_api gsl_constexpr14 span & operator=( span const & ) gsl_noexcept = default; +#else + gsl_api span & operator=( span other ) gsl_noexcept + { + other.swap( *this ); + return *this; + } +#endif + + template< class U +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + , class = typename std::enable_if< + std::is_convertible::value + >::type +#endif + > + gsl_api gsl_constexpr span( span const & other ) + : first_( other.begin() ) + , last_ ( other.end() ) + {} + +#if 0 + // Converting from other span ? + template< class U > operator=(); +#endif + + // 26.7.3.3 Subviews [span.sub] + + gsl_api gsl_constexpr14 span first( index_type count ) const gsl_noexcept + { + Expects( 0 <= count && count <= this->size() ); + return span( this->data(), count ); + } + + gsl_api gsl_constexpr14 span last( index_type count ) const gsl_noexcept + { + Expects( 0 <= count && count <= this->size() ); + return span( this->data() + this->size() - count, count ); + } + + gsl_api gsl_constexpr14 span subspan( index_type offset ) const gsl_noexcept + { + Expects( 0 <= offset && offset <= this->size() ); + return span( this->data() + offset, this->size() - offset ); + } + + gsl_api gsl_constexpr14 span subspan( index_type offset, index_type count ) const gsl_noexcept + { + Expects( + 0 <= offset && offset <= this->size() && + 0 <= count && count + offset <= this->size() ); + return span( this->data() + offset, count ); + } + + // 26.7.3.4 Observers [span.obs] + + gsl_api gsl_constexpr index_type size() const gsl_noexcept + { + return narrow_cast( last_ - first_ ); + } + + gsl_api gsl_constexpr index_type size_bytes() const gsl_noexcept + { + return size() * narrow_cast( sizeof( element_type ) ); + } + + gsl_api gsl_constexpr bool empty() const gsl_noexcept + { + return size() == 0; + } + + // 26.7.3.5 Element access [span.elem] + + gsl_api gsl_constexpr reference operator[]( index_type index ) const + { + return at( index ); + } + + gsl_api gsl_constexpr reference operator()( index_type index ) const + { + return at( index ); + } + + gsl_api gsl_constexpr14 reference at( index_type index ) const + { + Expects( index < size() ); + return first_[ index ]; + } + + gsl_api gsl_constexpr pointer data() const gsl_noexcept + { + return first_; + } + + // 26.7.3.6 Iterator support [span.iterators] + + gsl_api gsl_constexpr iterator begin() const gsl_noexcept + { + return iterator( first_ ); + } + + gsl_api gsl_constexpr iterator end() const gsl_noexcept + { + return iterator( last_ ); + } + + gsl_api gsl_constexpr const_iterator cbegin() const gsl_noexcept + { +#if gsl_CPP11_OR_GREATER + return { begin() }; +#else + return const_iterator( begin() ); +#endif + } + + gsl_api gsl_constexpr const_iterator cend() const gsl_noexcept + { +#if gsl_CPP11_OR_GREATER + return { end() }; +#else + return const_iterator( end() ); +#endif + } + + gsl_api gsl_constexpr reverse_iterator rbegin() const gsl_noexcept + { + return reverse_iterator( end() ); + } + + gsl_api gsl_constexpr reverse_iterator rend() const gsl_noexcept + { + return reverse_iterator( begin() ); + } + + gsl_api gsl_constexpr const_reverse_iterator crbegin() const gsl_noexcept + { + return const_reverse_iterator( cend() ); + } + + gsl_api gsl_constexpr const_reverse_iterator crend() const gsl_noexcept + { + return const_reverse_iterator( cbegin() ); + } + + gsl_api void swap( span & other ) gsl_noexcept + { + using std::swap; + swap( first_, other.first_ ); + swap( last_ , other.last_ ); + } + +#if ! gsl_DEPRECATE_TO_LEVEL( 3 ) + // member length() deprecated since 0.29.0 + + gsl_api gsl_constexpr index_type length() const gsl_noexcept + { + return size(); + } + + // member length_bytes() deprecated since 0.29.0 + + gsl_api gsl_constexpr index_type length_bytes() const gsl_noexcept + { + return size_bytes(); + } +#endif + +#if ! gsl_DEPRECATE_TO_LEVEL( 2 ) + // member as_bytes(), as_writeable_bytes deprecated since 0.17.0 + + gsl_api span< const byte > as_bytes() const gsl_noexcept + { + return span< const byte >( reinterpret_cast( data() ), size_bytes() ); // NOLINT + } + + gsl_api span< byte > as_writeable_bytes() const gsl_noexcept + { + return span< byte >( reinterpret_cast( data() ), size_bytes() ); // NOLINT + } + +#endif + + template< class U > + gsl_api span< U > as_span() const gsl_noexcept + { + Expects( ( this->size_bytes() % sizeof(U) ) == 0 ); + return span< U >( reinterpret_cast( this->data() ), this->size_bytes() / sizeof( U ) ); // NOLINT + } + +private: + pointer first_; + pointer last_; +}; + +// class template argument deduction guides: + +#if gsl_HAVE( DEDUCTION_GUIDES ) // gsl_CPP17_OR_GREATER + +template< class T, size_t N > +span( T (&)[N] ) -> span; + +template< class T, size_t N > +span( std::array & ) -> span; + +template< class T, size_t N > +span( std::array const & ) -> span; + +template< class Container > +span( Container& ) -> span; + +template< class Container > +span( Container const & ) -> span; + +#endif // gsl_HAVE( DEDUCTION_GUIDES ) + +// 26.7.3.7 Comparison operators [span.comparison] + +#if gsl_CONFIG( ALLOWS_NONSTRICT_SPAN_COMPARISON ) + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator==( span const & l, span const & r ) +{ + return l.size() == r.size() + && (l.begin() == r.begin() || std::equal( l.begin(), l.end(), r.begin() ) ); +} + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator< ( span const & l, span const & r ) +{ + return std::lexicographical_compare( l.begin(), l.end(), r.begin(), r.end() ); +} + +#else + +template< class T > +gsl_api inline gsl_constexpr bool operator==( span const & l, span const & r ) +{ + return l.size() == r.size() + && (l.begin() == r.begin() || std::equal( l.begin(), l.end(), r.begin() ) ); +} + +template< class T > +gsl_api inline gsl_constexpr bool operator< ( span const & l, span const & r ) +{ + return std::lexicographical_compare( l.begin(), l.end(), r.begin(), r.end() ); +} +#endif + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator!=( span const & l, span const & r ) +{ + return !( l == r ); +} + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator<=( span const & l, span const & r ) +{ + return !( r < l ); +} + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator> ( span const & l, span const & r ) +{ + return ( r < l ); +} + +template< class T, class U > +gsl_api inline gsl_constexpr bool operator>=( span const & l, span const & r ) +{ + return !( l < r ); +} + +// span algorithms + +namespace details { + +template< class II, class N, class OI > +gsl_api inline OI copy_n( II first, N count, OI result ) +{ + if ( count > 0 ) + { + *result++ = *first; + for ( N i = 1; i < count; ++i ) + { + *result++ = *++first; + } + } + return result; +} +} + +template< class T, class U > +gsl_api inline void copy( span src, span dest ) +{ +#if gsl_CPP14_OR_GREATER // gsl_HAVE( TYPE_TRAITS ) (circumvent Travis clang 3.4) + static_assert( std::is_assignable::value, "Cannot assign elements of source span to elements of destination span" ); +#endif + Expects( dest.size() >= src.size() ); + details::copy_n( src.data(), src.size(), dest.data() ); +} + +// span creator functions (see ctors) + +template< class T > +gsl_api inline span< const byte > as_bytes( span spn ) gsl_noexcept +{ + return span< const byte >( reinterpret_cast( spn.data() ), spn.size_bytes() ); // NOLINT +} + +template< class T> +gsl_api inline span< byte > as_writeable_bytes( span spn ) gsl_noexcept +{ + return span< byte >( reinterpret_cast( spn.data() ), spn.size_bytes() ); // NOLINT +} + +#if gsl_FEATURE_TO_STD( MAKE_SPAN ) + +template< class T > +gsl_api inline gsl_constexpr span +make_span( T * ptr, typename span::index_type count ) +{ + return span( ptr, count ); +} + +template< class T > +gsl_api inline gsl_constexpr span +make_span( T * first, T * last ) +{ + return span( first, last ); +} + +template< class T, size_t N > +gsl_api inline gsl_constexpr span +make_span( T (&arr)[N] ) +{ + return span( gsl_ADDRESSOF( arr[0] ), N ); +} + +#if gsl_HAVE( ARRAY ) + +template< class T, size_t N > +gsl_api inline gsl_constexpr span +make_span( std::array & arr ) +{ + return span( arr ); +} + +template< class T, size_t N > +gsl_api inline gsl_constexpr span +make_span( std::array const & arr ) +{ + return span( arr ); +} +#endif + +#if gsl_HAVE( CONSTRAINED_SPAN_CONTAINER_CTOR ) && gsl_HAVE( AUTO ) + +template< class Container, class = decltype(std::declval().data()) > +gsl_api inline gsl_constexpr auto +make_span( Container & cont ) -> span< typename Container::value_type > +{ + return span< typename Container::value_type >( cont ); +} + +template< class Container, class = decltype(std::declval().data()) > +gsl_api inline gsl_constexpr auto +make_span( Container const & cont ) -> span< const typename Container::value_type > +{ + return span< const typename Container::value_type >( cont ); +} + +#else + +template< class T > +gsl_api inline span +make_span( std::vector & cont ) +{ + return span( with_container, cont ); +} + +template< class T > +gsl_api inline span +make_span( std::vector const & cont ) +{ + return span( with_container, cont ); +} +#endif + +#if gsl_FEATURE_TO_STD( WITH_CONTAINER ) + +template< class Container > +gsl_api inline gsl_constexpr span +make_span( with_container_t, Container & cont ) gsl_noexcept +{ + return span< typename Container::value_type >( with_container, cont ); +} + +template< class Container > +gsl_api inline gsl_constexpr span +make_span( with_container_t, Container const & cont ) gsl_noexcept +{ + return span< const typename Container::value_type >( with_container, cont ); +} + +#endif // gsl_FEATURE_TO_STD( WITH_CONTAINER ) + +template< class Ptr > +gsl_api inline span +make_span( Ptr & ptr ) +{ + return span( ptr ); +} + +template< class Ptr > +gsl_api inline span +make_span( Ptr & ptr, typename span::index_type count ) +{ + return span( ptr, count); +} + +#endif // gsl_FEATURE_TO_STD( MAKE_SPAN ) + +#if gsl_FEATURE_TO_STD( BYTE_SPAN ) + +template< class T > +gsl_api inline gsl_constexpr span +byte_span( T & t ) gsl_noexcept +{ + return span( reinterpret_cast( &t ), sizeof(T) ); +} + +template< class T > +gsl_api inline gsl_constexpr span +byte_span( T const & t ) gsl_noexcept +{ + return span( reinterpret_cast( &t ), sizeof(T) ); +} + +#endif // gsl_FEATURE_TO_STD( BYTE_SPAN ) + +// +// basic_string_span: +// + +template< class T > +class basic_string_span; + +namespace details { + +template< class T > +struct is_basic_string_span_oracle : false_type {}; + +template< class T > +struct is_basic_string_span_oracle< basic_string_span > : true_type {}; + +template< class T > +struct is_basic_string_span : is_basic_string_span_oracle< typename remove_cv::type > {}; + +template< class T > +gsl_api inline gsl_constexpr14 std::size_t string_length( T * ptr, std::size_t max ) +{ + if ( ptr == gsl_nullptr || max <= 0 ) + return 0; + + std::size_t len = 0; + while ( len < max && ptr[len] ) // NOLINT + ++len; + + return len; +} + +} // namespace details + +// +// basic_string_span<> - A view of contiguous characters, replace (*,len). +// +template< class T > +class basic_string_span +{ +public: + typedef T element_type; + typedef span span_type; + + typedef typename span_type::index_type index_type; + typedef typename span_type::difference_type difference_type; + + typedef typename span_type::pointer pointer ; + typedef typename span_type::reference reference ; + + typedef typename span_type::iterator iterator ; + typedef typename span_type::const_iterator const_iterator ; + typedef typename span_type::reverse_iterator reverse_iterator; + typedef typename span_type::const_reverse_iterator const_reverse_iterator; + + // construction: + +#if gsl_HAVE( IS_DEFAULT ) + gsl_api gsl_constexpr basic_string_span() gsl_noexcept = default; +#else + gsl_api gsl_constexpr basic_string_span() gsl_noexcept {} +#endif + +#if gsl_HAVE( NULLPTR ) + gsl_api gsl_constexpr basic_string_span( std::nullptr_t ptr ) gsl_noexcept + : span_( ptr, index_type( 0 ) ) + {} +#endif + + gsl_api gsl_constexpr basic_string_span( pointer ptr ) + : span_( remove_z( ptr, std::numeric_limits::max() ) ) + {} + + gsl_api gsl_constexpr basic_string_span( pointer ptr, index_type count ) + : span_( ptr, count ) + {} + + gsl_api gsl_constexpr basic_string_span( pointer firstElem, pointer lastElem ) + : span_( firstElem, lastElem ) + {} + + template< std::size_t N > + gsl_api gsl_constexpr basic_string_span( element_type (&arr)[N] ) + : span_( remove_z( gsl_ADDRESSOF( arr[0] ), N ) ) + {} + +#if gsl_HAVE( ARRAY ) + + template< std::size_t N > + gsl_api gsl_constexpr basic_string_span( std::array< typename details::remove_const::type, N> & arr ) + : span_( remove_z( arr ) ) + {} + + template< std::size_t N > + gsl_api gsl_constexpr basic_string_span( std::array< typename details::remove_const::type, N> const & arr ) + : span_( remove_z( arr ) ) + {} + +#endif + +#if gsl_HAVE( CONSTRAINED_SPAN_CONTAINER_CTOR ) + + // Exclude: array, [basic_string,] basic_string_span + + template< + class Container, + class = typename std::enable_if< + ! details::is_std_array< Container >::value + && ! details::is_basic_string_span< Container >::value + && std::is_convertible< typename Container::pointer, pointer >::value + && std::is_convertible< typename Container::pointer, decltype(std::declval().data()) >::value + >::type + > + gsl_api gsl_constexpr basic_string_span( Container & cont ) + : span_( ( cont ) ) + {} + + // Exclude: array, [basic_string,] basic_string_span + + template< + class Container, + class = typename std::enable_if< + ! details::is_std_array< Container >::value + && ! details::is_basic_string_span< Container >::value + && std::is_convertible< typename Container::pointer, pointer >::value + && std::is_convertible< typename Container::pointer, decltype(std::declval().data()) >::value + >::type + > + gsl_api gsl_constexpr basic_string_span( Container const & cont ) + : span_( ( cont ) ) + {} + +#elif gsl_HAVE( UNCONSTRAINED_SPAN_CONTAINER_CTOR ) + + template< class Container > + gsl_api gsl_constexpr basic_string_span( Container & cont ) + : span_( cont ) + {} + + template< class Container > + gsl_api gsl_constexpr basic_string_span( Container const & cont ) + : span_( cont ) + {} + +#else + + template< class U > + gsl_api gsl_constexpr basic_string_span( span const & rhs ) + : span_( rhs ) + {} + +#endif + +#if gsl_FEATURE_TO_STD( WITH_CONTAINER ) + + template< class Container > + gsl_api gsl_constexpr basic_string_span( with_container_t, Container & cont ) + : span_( with_container, cont ) + {} +#endif + +#if gsl_HAVE( IS_DEFAULT ) +# if gsl_BETWEEN( gsl_COMPILER_GNUC_VERSION, 440, 600 ) + gsl_api gsl_constexpr basic_string_span( basic_string_span const & rhs ) = default; + + gsl_api gsl_constexpr basic_string_span( basic_string_span && rhs ) = default; +# else + gsl_api gsl_constexpr basic_string_span( basic_string_span const & rhs ) gsl_noexcept = default; + + gsl_api gsl_constexpr basic_string_span( basic_string_span && rhs ) gsl_noexcept = default; +# endif +#endif + + template< class U +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + , class = typename std::enable_if< std::is_convertible::pointer, pointer>::value >::type +#endif + > + gsl_api gsl_constexpr basic_string_span( basic_string_span const & rhs ) + : span_( reinterpret_cast( rhs.data() ), rhs.length() ) // NOLINT + {} + +#if gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 120 + template< class U + , class = typename std::enable_if< std::is_convertible::pointer, pointer>::value >::type + > + gsl_api gsl_constexpr basic_string_span( basic_string_span && rhs ) + : span_( reinterpret_cast( rhs.data() ), rhs.length() ) // NOLINT + {} +#endif + + template< class CharTraits, class Allocator > + gsl_api gsl_constexpr basic_string_span( + std::basic_string< typename details::remove_const::type, CharTraits, Allocator > & str ) + : span_( gsl_ADDRESSOF( str[0] ), str.length() ) + {} + + template< class CharTraits, class Allocator > + gsl_api gsl_constexpr basic_string_span( + std::basic_string< typename details::remove_const::type, CharTraits, Allocator > const & str ) + : span_( gsl_ADDRESSOF( str[0] ), str.length() ) + {} + + // destruction, assignment: + +#if gsl_HAVE( IS_DEFAULT ) + gsl_api ~basic_string_span() gsl_noexcept = default; + + gsl_api basic_string_span & operator=( basic_string_span const & rhs ) gsl_noexcept = default; + + gsl_api basic_string_span & operator=( basic_string_span && rhs ) gsl_noexcept = default; +#endif + + // sub span: + + gsl_api gsl_constexpr basic_string_span first( index_type count ) const + { + return span_.first( count ); + } + + gsl_api gsl_constexpr basic_string_span last( index_type count ) const + { + return span_.last( count ); + } + + gsl_api gsl_constexpr basic_string_span subspan( index_type offset ) const + { + return span_.subspan( offset ); + } + + gsl_api gsl_constexpr basic_string_span subspan( index_type offset, index_type count ) const + { + return span_.subspan( offset, count ); + } + + // observers: + + gsl_api gsl_constexpr index_type length() const gsl_noexcept + { + return span_.size(); + } + + gsl_api gsl_constexpr index_type size() const gsl_noexcept + { + return span_.size(); + } + + gsl_api gsl_constexpr index_type length_bytes() const gsl_noexcept + { + return span_.size_bytes(); + } + + gsl_api gsl_constexpr index_type size_bytes() const gsl_noexcept + { + return span_.size_bytes(); + } + + gsl_api gsl_constexpr bool empty() const gsl_noexcept + { + return size() == 0; + } + + gsl_api gsl_constexpr reference operator[]( index_type idx ) const + { + return span_[idx]; + } + + gsl_api gsl_constexpr reference operator()( index_type idx ) const + { + return span_[idx]; + } + + gsl_api gsl_constexpr pointer data() const gsl_noexcept + { + return span_.data(); + } + + gsl_api iterator begin() const gsl_noexcept + { + return span_.begin(); + } + + gsl_api iterator end() const gsl_noexcept + { + return span_.end(); + } + + gsl_api reverse_iterator rbegin() const gsl_noexcept + { + return span_.rbegin(); + } + + gsl_api reverse_iterator rend() const gsl_noexcept + { + return span_.rend(); + } + + // const version not in p0123r2: + + gsl_api const_iterator cbegin() const gsl_noexcept + { + return span_.cbegin(); + } + + gsl_api const_iterator cend() const gsl_noexcept + { + return span_.cend(); + } + + gsl_api const_reverse_iterator crbegin() const gsl_noexcept + { + return span_.crbegin(); + } + + gsl_api const_reverse_iterator crend() const gsl_noexcept + { + return span_.crend(); + } + +private: + gsl_api static gsl_constexpr14 span_type remove_z( pointer const & sz, std::size_t max ) + { + return span_type( sz, details::string_length( sz, max ) ); + } + +#if gsl_HAVE( ARRAY ) + template< size_t N > + gsl_api static gsl_constexpr14 span_type remove_z( std::array::type, N> & arr ) + { + return remove_z( gsl_ADDRESSOF( arr[0] ), narrow_cast< std::size_t >( N ) ); + } + + template< size_t N > + gsl_api static gsl_constexpr14 span_type remove_z( std::array::type, N> const & arr ) + { + return remove_z( gsl_ADDRESSOF( arr[0] ), narrow_cast< std::size_t >( N ) ); + } +#endif + +private: + span_type span_; +}; + +// basic_string_span comparison functions: + +#if gsl_CONFIG( ALLOWS_NONSTRICT_SPAN_COMPARISON ) + +template< class T, class U > +gsl_api inline gsl_constexpr14 bool operator==( basic_string_span const & l, U const & u ) gsl_noexcept +{ + const basic_string_span< typename details::add_const::type > r( u ); + + return l.size() == r.size() + && std::equal( l.begin(), l.end(), r.begin() ); +} + +template< class T, class U > +gsl_api inline gsl_constexpr14 bool operator<( basic_string_span const & l, U const & u ) gsl_noexcept +{ + const basic_string_span< typename details::add_const::type > r( u ); + + return std::lexicographical_compare( l.begin(), l.end(), r.begin(), r.end() ); +} + +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + +template< class T, class U, + class = typename std::enable_if::value >::type > +gsl_api inline gsl_constexpr14 bool operator==( U const & u, basic_string_span const & r ) gsl_noexcept +{ + const basic_string_span< typename details::add_const::type > l( u ); + + return l.size() == r.size() + && std::equal( l.begin(), l.end(), r.begin() ); +} + +template< class T, class U, + class = typename std::enable_if::value >::type > +gsl_api inline gsl_constexpr14 bool operator<( U const & u, basic_string_span const & r ) gsl_noexcept +{ + const basic_string_span< typename details::add_const::type > l( u ); + + return std::lexicographical_compare( l.begin(), l.end(), r.begin(), r.end() ); +} +#endif + +#else //gsl_CONFIG( ALLOWS_NONSTRICT_SPAN_COMPARISON ) + +template< class T > +gsl_api inline gsl_constexpr14 bool operator==( basic_string_span const & l, basic_string_span const & r ) gsl_noexcept +{ + return l.size() == r.size() + && std::equal( l.begin(), l.end(), r.begin() ); +} + +template< class T > +gsl_api inline gsl_constexpr14 bool operator<( basic_string_span const & l, basic_string_span const & r ) gsl_noexcept +{ + return std::lexicographical_compare( l.begin(), l.end(), r.begin(), r.end() ); +} + +#endif // gsl_CONFIG( ALLOWS_NONSTRICT_SPAN_COMPARISON ) + +template< class T, class U > +gsl_api inline gsl_constexpr14 bool operator!=( basic_string_span const & l, U const & r ) gsl_noexcept +{ + return !( l == r ); +} + +template< class T, class U > +gsl_api inline gsl_constexpr14 bool operator<=( basic_string_span const & l, U const & r ) gsl_noexcept +{ +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) || ! gsl_CONFIG( ALLOWS_NONSTRICT_SPAN_COMPARISON ) + return !( r < l ); +#else + basic_string_span< typename details::add_const::type > rr( r ); + return !( rr < l ); +#endif +} + +template< class T, class U > +gsl_api inline gsl_constexpr14 bool operator>( basic_string_span const & l, U const & r ) gsl_noexcept +{ +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) || ! gsl_CONFIG( ALLOWS_NONSTRICT_SPAN_COMPARISON ) + return ( r < l ); +#else + basic_string_span< typename details::add_const::type > rr( r ); + return ( rr < l ); +#endif +} + +template< class T, class U > +gsl_api inline gsl_constexpr14 bool operator>=( basic_string_span const & l, U const & r ) gsl_noexcept +{ + return !( l < r ); +} + +#if gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + +template< class T, class U, + class = typename std::enable_if::value >::type > +gsl_api inline gsl_constexpr14 bool operator!=( U const & l, basic_string_span const & r ) gsl_noexcept +{ + return !( l == r ); +} + +template< class T, class U, + class = typename std::enable_if::value >::type > +gsl_api inline gsl_constexpr14 bool operator<=( U const & l, basic_string_span const & r ) gsl_noexcept +{ + return !( r < l ); +} + +template< class T, class U, + class = typename std::enable_if::value >::type > +gsl_api inline gsl_constexpr14 bool operator>( U const & l, basic_string_span const & r ) gsl_noexcept +{ + return ( r < l ); +} + +template< class T, class U, + class = typename std::enable_if::value >::type > +gsl_api inline gsl_constexpr14 bool operator>=( U const & l, basic_string_span const & r ) gsl_noexcept +{ + return !( l < r ); +} + +#endif // gsl_HAVE( DEFAULT_FUNCTION_TEMPLATE_ARG ) + +// convert basic_string_span to byte span: + +template< class T > +gsl_api inline span< const byte > as_bytes( basic_string_span spn ) gsl_noexcept +{ + return span< const byte >( reinterpret_cast( spn.data() ), spn.size_bytes() ); // NOLINT +} + +// +// String types: +// + +typedef char * zstring; +typedef const char * czstring; + +#if gsl_HAVE( WCHAR ) +typedef wchar_t * zwstring; +typedef const wchar_t * cwzstring; +#endif + +typedef basic_string_span< char > string_span; +typedef basic_string_span< char const > cstring_span; + +#if gsl_HAVE( WCHAR ) +typedef basic_string_span< wchar_t > wstring_span; +typedef basic_string_span< wchar_t const > cwstring_span; +#endif + +// to_string() allow (explicit) conversions from string_span to string + +#if 0 + +template< class T > +gsl_api inline std::basic_string< typename std::remove_const::type > to_string( basic_string_span spn ) +{ + std::string( spn.data(), spn.length() ); +} + +#else + +gsl_api inline std::string to_string( string_span const & spn ) +{ + return std::string( spn.data(), spn.length() ); +} + +gsl_api inline std::string to_string( cstring_span const & spn ) +{ + return std::string( spn.data(), spn.length() ); +} + +#if gsl_HAVE( WCHAR ) + +gsl_api inline std::wstring to_string( wstring_span const & spn ) +{ + return std::wstring( spn.data(), spn.length() ); +} + +gsl_api inline std::wstring to_string( cwstring_span const & spn ) +{ + return std::wstring( spn.data(), spn.length() ); +} + +#endif // gsl_HAVE( WCHAR ) +#endif // to_string() + +// +// Stream output for string_span types +// + +namespace details { + +template< class Stream > +gsl_api void write_padding( Stream & os, std::streamsize n ) +{ + for ( std::streamsize i = 0; i < n; ++i ) + os.rdbuf()->sputc( os.fill() ); +} + +template< class Stream, class Span > +gsl_api Stream & write_to_stream( Stream & os, Span const & spn ) +{ + typename Stream::sentry sentry( os ); + + if ( !os ) + return os; + + const std::streamsize length = narrow( spn.length() ); + + // Whether, and how, to pad + const bool pad = ( length < os.width() ); + const bool left_pad = pad && ( os.flags() & std::ios_base::adjustfield ) == std::ios_base::right; + + if ( left_pad ) + write_padding( os, os.width() - length ); + + // Write span characters + os.rdbuf()->sputn( spn.begin(), length ); + + if ( pad && !left_pad ) + write_padding( os, os.width() - length ); + + // Reset output stream width + os.width(0); + + return os; +} + +} // namespace details + +template< typename Traits > +gsl_api std::basic_ostream< char, Traits > & operator<<( std::basic_ostream< char, Traits > & os, string_span const & spn ) +{ + return details::write_to_stream( os, spn ); +} + +template< typename Traits > +gsl_api std::basic_ostream< char, Traits > & operator<<( std::basic_ostream< char, Traits > & os, cstring_span const & spn ) +{ + return details::write_to_stream( os, spn ); +} + +#if gsl_HAVE( WCHAR ) + +template< typename Traits > +gsl_api std::basic_ostream< wchar_t, Traits > & operator<<( std::basic_ostream< wchar_t, Traits > & os, wstring_span const & spn ) +{ + return details::write_to_stream( os, spn ); +} + +template< typename Traits > +gsl_api std::basic_ostream< wchar_t, Traits > & operator<<( std::basic_ostream< wchar_t, Traits > & os, cwstring_span const & spn ) +{ + return details::write_to_stream( os, spn ); +} + +#endif // gsl_HAVE( WCHAR ) + +// +// ensure_sentinel() +// +// Provides a way to obtain a span from a contiguous sequence +// that ends with a (non-inclusive) sentinel value. +// +// Will fail-fast if sentinel cannot be found before max elements are examined. +// +namespace details { + +template< class T, class SizeType, const T Sentinel > +gsl_api static span ensure_sentinel( T * seq, SizeType max = std::numeric_limits::max() ) +{ + typedef T * pointer; + + gsl_SUPPRESS_MSVC_WARNING( 26429, "f.23: symbol 'cur' is never tested for nullness, it can be marked as not_null" ) + + pointer cur = seq; + + while ( static_cast( cur - seq ) < max && *cur != Sentinel ) + ++cur; + + Expects( *cur == Sentinel ); + + return span( seq, narrow_cast< typename span::index_type >( cur - seq ) ); +} +} // namespace details + +// +// ensure_z - creates a string_span for a czstring or cwzstring. +// Will fail fast if a null-terminator cannot be found before +// the limit of size_type. +// + +template< class T > +gsl_api inline span ensure_z( T * const & sz, size_t max = std::numeric_limits::max() ) +{ + return details::ensure_sentinel( sz, max ); +} + +template< class T, size_t N > +gsl_api inline span ensure_z( T (&sz)[N] ) +{ + return ensure_z( gsl_ADDRESSOF( sz[0] ), N ); +} + +# if gsl_HAVE( TYPE_TRAITS ) + +template< class Container > +gsl_api inline span< typename std::remove_pointer::type > +ensure_z( Container & cont ) +{ + return ensure_z( cont.data(), cont.length() ); +} +# endif + +} // namespace gsl + +#if gsl_CPP11_OR_GREATER || gsl_COMPILER_MSVC_VERSION >= 120 + +namespace std { + +template<> +struct hash< gsl::byte > +{ +public: + std::size_t operator()( gsl::byte v ) const gsl_noexcept + { + return gsl::to_integer( v ); + } +}; + +} // namespace std + +#endif + +gsl_RESTORE_MSVC_WARNINGS() + +#endif // GSL_GSL_LITE_HPP_INCLUDED + +// end of file diff --git a/erigon-lib/pedersen_hash/hash.cc b/erigon-lib/pedersen_hash/hash.cc new file mode 100644 index 00000000000..ac9d5400891 --- /dev/null +++ b/erigon-lib/pedersen_hash/hash.cc @@ -0,0 +1,8 @@ +#include "hash.h" +#include "ffi_pedersen_hash.h" + +int CHash(const char* in1, const char* in2, char* out) { + int r = GoHash(in1, in2, out); + return r; +} + diff --git a/erigon-lib/pedersen_hash/hash.go b/erigon-lib/pedersen_hash/hash.go new file mode 100644 index 00000000000..9182efb30a1 --- /dev/null +++ b/erigon-lib/pedersen_hash/hash.go @@ -0,0 +1,56 @@ +//go:build linux +// +build linux + +package hash + +/* +#cgo CXXFLAGS: -std=c++17 +#include +#include "hash.h" +*/ +import "C" + +import ( + "encoding/hex" + "fmt" +) + +func reverseHexEndianRepresentation(s string) string { + rns := []rune(s) + for i, j := 0, len(rns)-2; i < j; i, j = i+2, j-2 { + rns[i], rns[j] = rns[j], rns[i] + rns[i+1], rns[j+1] = rns[j+1], rns[i+1] + } + return string(rns) +} + +func Hash(input1, input2 string) (string, error) { + input1Dec, _ := hex.DecodeString(reverseHexEndianRepresentation(input1)) + input2Dec, _ := hex.DecodeString(reverseHexEndianRepresentation(input2)) + in1 := C.CBytes(input1Dec) + in2 := C.CBytes(input2Dec) + var o [1024]byte + // i dont know why it triggers here, but it's a false positive + // nolint:gocritic + out := C.CBytes(o[:]) + upIn1 := in1 + upIn2 := in2 + upOut := out + defer func() { + C.free(upIn1) + C.free(upIn2) + C.free(upOut) + }() + res := C.CHash( + (*C.char)(upIn1), + (*C.char)(upIn2), + (*C.char)(upOut)) + if res != 0 { + return "", fmt.Errorf("Pedersen hash encountered an error: %s\n", C.GoBytes(out, 1024)) + } + + hashResult := "0x" + reverseHexEndianRepresentation( + hex.EncodeToString(C.GoBytes(out, 32))) + + return hashResult, nil +} diff --git a/erigon-lib/pedersen_hash/hash.h b/erigon-lib/pedersen_hash/hash.h new file mode 100644 index 00000000000..ce14bc87a63 --- /dev/null +++ b/erigon-lib/pedersen_hash/hash.h @@ -0,0 +1,9 @@ +#ifdef __cplusplus +extern "C" { +#endif + +int CHash(const char* in1, const char* in2, char* out); + +#ifdef __cplusplus +} +#endif diff --git a/erigon-lib/pedersen_hash/math.h b/erigon-lib/pedersen_hash/math.h new file mode 100644 index 00000000000..3cfc6a12663 --- /dev/null +++ b/erigon-lib/pedersen_hash/math.h @@ -0,0 +1,54 @@ +#ifndef STARKWARE_UTILS_MATH_H_ +#define STARKWARE_UTILS_MATH_H_ + +#include +#include + +#include "error_handling.h" + +namespace starkware { + +using std::size_t; + +constexpr uint64_t inline Pow2(uint64_t n) { + ASSERT(n < 64, "n must be smaller than 64."); + return UINT64_C(1) << n; +} + +/* + Returns floor(Log_2(n)), n must be > 0. +*/ +constexpr size_t inline Log2Floor(const uint64_t n) { + ASSERT(n != 0, "log2 of 0 is undefined"); + static_assert(sizeof(long long) == 8, "It is assumed that long long is 64bits"); // NOLINT + return 63 - __builtin_clzll(n); +} + +/* + Computes base to the power of the number given by exponent_bits in a generic group, given the + element one in the group and a function mult(const GroupElementT& multiplier, GroupElementT* dst) + that performs: + *dst *= multiplier + in the group. + Note that it is possible that the address of multiplier is the same as dst. +*/ +template +GroupElementT GenericPow( + const GroupElementT& base, const std::vector& exponent_bits, const GroupElementT& one, + const MultFunc& mult) { + GroupElementT power = base; + GroupElementT res = one; + for (const auto&& b : exponent_bits) { + if (b) { + mult(power, &res); + } + + mult(power, &power); + } + + return res; +} + +} // namespace starkware + +#endif // STARKWARE_UTILS_MATH_H_ diff --git a/erigon-lib/pedersen_hash/pedersen_hash.cc b/erigon-lib/pedersen_hash/pedersen_hash.cc new file mode 100644 index 00000000000..4169ba1146f --- /dev/null +++ b/erigon-lib/pedersen_hash/pedersen_hash.cc @@ -0,0 +1,52 @@ +#include "pedersen_hash.h" + +#include + +#include "elliptic_curve.h" +#include "fraction_field_element.h" +#include "elliptic_curve_constants.h" +#include "error_handling.h" + +namespace starkware { + +namespace { + +EcPoint> EcSubsetSumHash( + const EcPoint>& shift_point, + gsl::span> points, const PrimeFieldElement& selector_value) { + using FractionFieldElementT = FractionFieldElement; + const auto selector_value_as_big_int = selector_value.ToStandardForm(); + const std::vector selector_bits = selector_value_as_big_int.ToBoolVector(); + ASSERT(points.size() <= selector_bits.size(), "Too many points."); + + auto partial_sum = shift_point; + for (size_t j = 0; j < points.size(); j++) { + const auto point = points[j].template ConvertTo(); + ASSERT(partial_sum.x != point.x, "Adding a point to itself or to its inverse point."); + if (selector_bits[j]) { + partial_sum = partial_sum + point; + } + } + for (size_t j = points.size(); j < selector_bits.size(); j++) { + ASSERT(selector_bits[j] == 0, "Given selector is too big."); + } + return partial_sum; +} + +} // namespace + +PrimeFieldElement PedersenHash(const PrimeFieldElement& x, const PrimeFieldElement& y) { + const size_t n_element_bits = 252; + const auto& consts = GetEcConstants(); + const auto& shift_point = consts.k_points[0]; + const auto points_span = gsl::make_span(consts.k_points).subspan(2); + + auto cur_sum = shift_point.template ConvertTo>(); + cur_sum = EcSubsetSumHash(cur_sum, points_span.subspan(0, n_element_bits), x); + cur_sum = EcSubsetSumHash(cur_sum, points_span.subspan(n_element_bits, n_element_bits), y); + + const EcPoint res = cur_sum.template ConvertTo(); + return res.x; +} + +} // namespace starkware diff --git a/erigon-lib/pedersen_hash/pedersen_hash.h b/erigon-lib/pedersen_hash/pedersen_hash.h new file mode 100644 index 00000000000..f3f5931522c --- /dev/null +++ b/erigon-lib/pedersen_hash/pedersen_hash.h @@ -0,0 +1,21 @@ +#ifndef STARKWARE_CRYPTO_PEDERSEN_HASH_H_ +#define STARKWARE_CRYPTO_PEDERSEN_HASH_H_ + +#include "gsl-lite.hpp" + +#include "prime_field_element.h" + +namespace starkware { + +/* + Computes the Starkware version of the Pedersen hash of x and y. + The hash is defined by: + shift_point + x_low * P_0 + x_high * P1 + y_low * P2 + y_high * P3 + where x_low is the 248 low bits of x, x_high is the 4 high bits of x and similarly for y. + shift_point, P_0, P_1, P_2, P_3 are constant points generated from the digits of pi. +*/ +PrimeFieldElement PedersenHash(const PrimeFieldElement& x, const PrimeFieldElement& y); + +} // namespace starkware + +#endif // STARKWARE_CRYPTO_PEDERSEN_HASH_H_ diff --git a/erigon-lib/pedersen_hash/prime_field_element.cc b/erigon-lib/pedersen_hash/prime_field_element.cc new file mode 100644 index 00000000000..11bb828388c --- /dev/null +++ b/erigon-lib/pedersen_hash/prime_field_element.cc @@ -0,0 +1,102 @@ +#include "prime_field_element.h" + +namespace starkware { + +PrimeFieldElement PrimeFieldElement::RandomElement(Prng* prng) { + constexpr size_t kMostSignificantLimb = ValueType::LimbCount() - 1; + static_assert( + kModulus[kMostSignificantLimb] != 0, "We assume kModulus[kMostSignificantLimb] is not zero"); + constexpr uint64_t kBitsMask = (Pow2(Log2Floor(kModulus[kMostSignificantLimb]) + 1)) - 1; + + PrimeFieldElement random_element = PrimeFieldElement::Zero(); + do { + random_element.value_ = ValueType::RandomBigInt(prng); + random_element.value_[kMostSignificantLimb] &= kBitsMask; + } while (random_element.value_ >= kModulus); // Required to enforce uniformity. + + return random_element; +} + +PrimeFieldElement PrimeFieldElement::Pow(const std::vector& exponent_bits) const { + return GenericPow( + *this, exponent_bits, PrimeFieldElement::One(), + [](const PrimeFieldElement& multiplier, PrimeFieldElement* dst) { + *dst = *dst * multiplier; + }); +} + +PrimeFieldElement PrimeFieldElement::Pow(const uint64_t exponent) const { + return Pow(BigInt<1>(exponent).ToBoolVector()); +} + +bool PrimeFieldElement::IsSquare() const { + if (*this == PrimeFieldElement::Zero()) { + return true; + } + + // value is a square if and only if value^((p-1) / 2) = 1. + return Pow(kHalfMultiplicativeGroupSize.ToBoolVector()) == PrimeFieldElement::One(); +} + +PrimeFieldElement PrimeFieldElement::Sqrt() const { + if (*this == PrimeFieldElement::Zero()) { + return PrimeFieldElement::Zero(); + } + + // We use the following algorithm to compute the square root of the element: + // Let v be the input, let +r and -r be the roots of v and consider the ring + // R := F[x] / (x^2 - v). + // + // This ring is isomorphic to the ring F x F where the isomorphism is given by the map + // a*x + b --> (ar + b, -ar + b) (recall that we don't know r, so we cannot compute this map). + // + // Pick a random element x + b in R, and compute (x + b)^((p-1)/2). Let's say that the result is + // c*x + d. + // Taking a random element in F to the power of (p-1)/2 gives +1 or -1 with probability + // 0.5. Since R is isomorphic to F x F (where multiplication is pointwise), the result of the + // computation will be one of the four pairs: + // (+1, +1), (-1, -1), (+1, -1), (-1, +1). + // + // If the result is (+1, +1) or (-1, -1) (which are the elements (0*x + 1) and (0*x - 1) in R) - + // try again with another random element. + // + // If the result is (+1, -1) then cr + d = 1 and -cr + d = -1. Therefore r = c^{-1} and d=0. In + // the second case -r = c^{-1}. In both cases c^{-1} will be the returned root. + + // Store an element in R as a pair: first * x + second. + using RingElement = std::pair; + const RingElement one{PrimeFieldElement::Zero(), PrimeFieldElement::One()}; + const RingElement minus_one{PrimeFieldElement::Zero(), -PrimeFieldElement::One()}; + + auto mult = [this](const RingElement& multiplier, RingElement* dst) { + // Compute res * multiplier in the ring. + auto res_first = multiplier.first * dst->second + multiplier.second * dst->first; + auto res_second = multiplier.first * dst->first * *this + multiplier.second * dst->second; + *dst = {res_first, res_second}; + }; + + // Compute q = (p - 1) / 2 and get its bits. + const std::vector q_bits = kHalfMultiplicativeGroupSize.ToBoolVector(); + + Prng prng; + while (true) { + // Pick a random element (x + b) in R. + RingElement random_element{PrimeFieldElement::One(), PrimeFieldElement::RandomElement(&prng)}; + + // Compute the exponentiation: random_element ^ ((p-1) / 2). + RingElement res = GenericPow(random_element, q_bits, one, mult); + + // If res is either 1 or -1, try again. + if (res == one || res == minus_one) { + continue; + } + + const PrimeFieldElement root = res.first.Inverse(); + + ASSERT(root * root == *this, "value does not have a square root."); + + return root; + } +} + +} // namespace starkware diff --git a/erigon-lib/pedersen_hash/prime_field_element.h b/erigon-lib/pedersen_hash/prime_field_element.h new file mode 100644 index 00000000000..441fd216a31 --- /dev/null +++ b/erigon-lib/pedersen_hash/prime_field_element.h @@ -0,0 +1,131 @@ +#ifndef STARKWARE_ALGEBRA_PRIME_FIELD_ELEMENT_H_ +#define STARKWARE_ALGEBRA_PRIME_FIELD_ELEMENT_H_ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "big_int.h" +#include "error_handling.h" +#include "prng.h" + +namespace starkware { + +/* + Represents an element of GF(p) for p = 2^251 + 17 * 2^192 + 1. + The value is stored in Montgomery representation. +*/ +class PrimeFieldElement { + public: + using ValueType = BigInt<4>; + static constexpr ValueType kModulus = + 0x800000000000011000000000000000000000000000000000000000000000001_Z; + static constexpr ValueType kMontgomeryR = + 0x7fffffffffffdf0ffffffffffffffffffffffffffffffffffffffffffffffe1_Z; + static constexpr ValueType kMontgomeryRSquared = + 0x7ffd4ab5e008810ffffffffff6f800000000001330ffffffffffd737e000401_Z; + static constexpr ValueType kMontgomeryRCubed = + 0x38e5f79873c0a6df47d84f8363000187545706677ffcc06cc7177d1406df18e_Z; + static constexpr uint64_t kMontgomeryMPrime = ~uint64_t(0); + static constexpr ValueType kHalfMultiplicativeGroupSize = + 0x400000000000008800000000000000000000000000000000000000000000000_Z; + + PrimeFieldElement() = delete; + + static PrimeFieldElement FromUint(uint64_t val) { + return PrimeFieldElement( + // Note that because MontgomeryMul divides by r we need to multiply by r^2 here. + MontgomeryMul(ValueType(val), kMontgomeryRSquared)); + } + + static constexpr PrimeFieldElement FromBigInt(const ValueType& val) { + return PrimeFieldElement( + // Note that because MontgomeryMul divides by r we need to multiply by r^2 here. + MontgomeryMul(val, kMontgomeryRSquared)); + } + + static PrimeFieldElement RandomElement(Prng* prng); + + static constexpr PrimeFieldElement Zero() { return PrimeFieldElement(ValueType({})); } + + static constexpr PrimeFieldElement One() { return PrimeFieldElement(kMontgomeryR); } + + PrimeFieldElement operator*(const PrimeFieldElement& rhs) const { + return PrimeFieldElement(MontgomeryMul(value_, rhs.value_)); + } + + PrimeFieldElement operator+(const PrimeFieldElement& rhs) const { + return PrimeFieldElement{ValueType::ReduceIfNeeded(value_ + rhs.value_, kModulus)}; + } + + PrimeFieldElement operator-(const PrimeFieldElement& rhs) const { + return PrimeFieldElement{(value_ >= rhs.value_) ? (value_ - rhs.value_) + : (value_ + kModulus - rhs.value_)}; + } + + PrimeFieldElement operator-() const { return Zero() - *this; } + + PrimeFieldElement operator/(const PrimeFieldElement& rhs) const { return *this * rhs.Inverse(); } + + bool operator==(const PrimeFieldElement& rhs) const { return value_ == rhs.value_; } + bool operator!=(const PrimeFieldElement& rhs) const { return !(*this == rhs); } + + PrimeFieldElement Inverse() const { + ASSERT(*this != PrimeFieldElement::Zero(), "Zero does not have an inverse"); + return Pow((kModulus - 0x2_Z).ToBoolVector()); + } + + /* + Returns the power of a field element, where exponent_bits[0] is the least significant bit of the + exponent. + Note that this function doesn't support negative exponents. + */ + PrimeFieldElement Pow(const std::vector& exponent_bits) const; + + /* + Returns the power of a field element for the given exponent. + */ + PrimeFieldElement Pow(const uint64_t exponent) const; + + /* + For a field element x, returns true if there exists a field element y such that x = y^2. + */ + bool IsSquare() const; + + /* + For a field element x, returns an element y such that y^2 = x. If no such y exists, the function + throws an exception. + */ + PrimeFieldElement Sqrt() const; + + /* + Returns the standard representation. + + A value in the range [0, kBigPrimeConstants::kModulus) in non-Montogomery representation. + */ + ValueType ToStandardForm() const { return MontgomeryMul(value_, ValueType::One()); } + + std::string ToString() const { return ToStandardForm().ToString(); } + + private: + explicit constexpr PrimeFieldElement(ValueType val) : value_(val) {} + + static constexpr ValueType MontgomeryMul(const ValueType& x, const ValueType& y) { + return ValueType::MontMul(x, y, kModulus, kMontgomeryMPrime); + } + + ValueType value_; +}; + +inline std::ostream& operator<<(std::ostream& out, const PrimeFieldElement& element) { + return out << element.ToString(); +} + +} // namespace starkware + +#endif // STARKWARE_ALGEBRA_PRIME_FIELD_ELEMENT_H_ diff --git a/erigon-lib/pedersen_hash/prng.h b/erigon-lib/pedersen_hash/prng.h new file mode 100644 index 00000000000..1e7ec33e062 --- /dev/null +++ b/erigon-lib/pedersen_hash/prng.h @@ -0,0 +1,32 @@ +#ifndef STARKWARE_UTILS_PRNG_H_ +#define STARKWARE_UTILS_PRNG_H_ + +#include +#include + +namespace starkware { + +class Prng { + public: + Prng() : mt_prng_(std::random_device()()) {} + + /* + Returns a random integer in the range [lower_bound, upper_bound]. + */ + uint64_t RandomUint64(uint64_t lower_bound, uint64_t upper_bound) { + return std::uniform_int_distribution(lower_bound, upper_bound)(mt_prng_); + } + + /* + Returns a random integer in the range [0, 2^64). + Note: This random number generator is NOT cryptographically secure. + */ + uint64_t RandomUint64() { return RandomUint64(0, std::numeric_limits::max()); } + + private: + std::mt19937 mt_prng_; +}; + +} // namespace starkware + +#endif // STARKWARE_UTILS_PRNG_H_ diff --git a/erigon-lib/recsplit/.gitignore b/erigon-lib/recsplit/.gitignore new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/erigon-lib/recsplit/.gitignore @@ -0,0 +1 @@ + diff --git a/erigon-lib/recsplit/eliasfano16/elias_fano.go b/erigon-lib/recsplit/eliasfano16/elias_fano.go new file mode 100644 index 00000000000..b67a2ab24f4 --- /dev/null +++ b/erigon-lib/recsplit/eliasfano16/elias_fano.go @@ -0,0 +1,566 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package eliasfano16 + +import ( + "encoding/binary" + "fmt" + "io" + "math" + "math/bits" + "unsafe" + + "github.com/ledgerwatch/erigon-lib/common/bitutil" +) + +// EliasFano algo overview https://www.antoniomallia.it/sorted-integers-compression-with-elias-fano-encoding.html +// P. Elias. Efficient storage and retrieval by content and address of static files. J. ACM, 21(2):246–260, 1974. +// Partitioned Elias-Fano Indexes http://groups.di.unipi.it/~ottavian/files/elias_fano_sigir14.pdf + +const ( + log2q uint64 = 8 + q uint64 = 1 << log2q + qMask = q - 1 + superQ uint64 = 1 << 14 + superQMask = superQ - 1 + qPerSuperQ = superQ / q // 64 + superQSize = 1 + qPerSuperQ/4 // 1 + 64/4 = 17 +) + +// EliasFano can be used to encode one monotone sequence +type EliasFano struct { + data []uint64 + lowerBits []uint64 + upperBits []uint64 + jump []uint64 + lowerBitsMask uint64 + count uint64 + u uint64 + l uint64 + maxOffset uint64 + minDelta uint64 + i uint64 + delta uint64 + wordsUpperBits int +} + +func NewEliasFano(count uint64, maxOffset, minDelta uint64) *EliasFano { + //fmt.Printf("count=%d,maxOffset=%d,minDelta=%d\n", count, maxOffset, minDelta) + ef := &EliasFano{ + count: count - 1, + maxOffset: maxOffset, + minDelta: minDelta, + } + ef.u = maxOffset - ef.count*ef.minDelta + 1 + ef.wordsUpperBits = ef.deriveFields() + return ef +} + +func (ef *EliasFano) AddOffset(offset uint64) { + //fmt.Printf("0x%x,\n", offset) + if ef.l != 0 { + setBits(ef.lowerBits, ef.i*ef.l, int(ef.l), (offset-ef.delta)&ef.lowerBitsMask) + } + //pos := ((offset - ef.delta) >> ef.l) + ef.i + set(ef.upperBits, ((offset-ef.delta)>>ef.l)+ef.i) + //fmt.Printf("add:%x, pos=%x, set=%x, res=%x\n", offset, pos, pos/64, uint64(1)<<(pos%64)) + ef.i++ + ef.delta += ef.minDelta +} + +func (ef *EliasFano) jumpSizeWords() int { + size := ((ef.count + 1) / superQ) * superQSize // Whole blocks + if (ef.count+1)%superQ != 0 { + size += 1 + (((ef.count+1)%superQ+q-1)/q+3)/4 // Partial block + } + return int(size) +} + +func (ef *EliasFano) deriveFields() int { + if ef.u/(ef.count+1) == 0 { + ef.l = 0 + } else { + ef.l = 63 ^ uint64(bits.LeadingZeros64(ef.u/(ef.count+1))) // pos of first non-zero bit + //fmt.Printf("lllllllll: %d, %d\n", 63^uint64(bits.LeadingZeros64(24/7)), msb(ef.u/(ef.count+1))) + } + ef.lowerBitsMask = (uint64(1) << ef.l) - 1 + wordsLowerBits := int(((ef.count+1)*ef.l+63)/64 + 1) + wordsUpperBits := int((ef.count + 1 + (ef.u >> ef.l) + 63) / 64) + jumpWords := ef.jumpSizeWords() + totalWords := wordsLowerBits + wordsUpperBits + jumpWords + if ef.data == nil { + ef.data = make([]uint64, totalWords) + } else { + ef.data = ef.data[:totalWords] + } + + ef.lowerBits = ef.data[:wordsLowerBits] + ef.upperBits = ef.data[wordsLowerBits : wordsLowerBits+wordsUpperBits] + ef.jump = ef.data[wordsLowerBits+wordsUpperBits:] + return wordsUpperBits +} + +// Build construct Elias Fano index for a given sequences +func (ef *EliasFano) Build() { + for i, c, lastSuperQ := uint64(0), uint64(0), uint64(0); i < uint64(ef.wordsUpperBits); i++ { + for b := uint64(0); b < 64; b++ { + if ef.upperBits[i]&(uint64(1)<= (1 << 16) { + fmt.Printf("ef.l=%x,ef.u=%x\n", ef.l, ef.u) + fmt.Printf("offset=%x,lastSuperQ=%x,i=%x,b=%x,c=%x\n", offset, lastSuperQ, i, b, c) + fmt.Printf("ef.minDelta=%x\n", ef.minDelta) + //fmt.Printf("ef.upperBits=%x\n", ef.upperBits) + //fmt.Printf("ef.lowerBits=%x\n", ef.lowerBits) + //fmt.Printf("ef.wordsUpperBits=%b\n", ef.wordsUpperBits) + panic("") + } + // c % superQ is the bit index inside the group of 4096 bits + jumpSuperQ := (c / superQ) * superQSize + jumpInsideSuperQ := (c % superQ) / q + idx64 := jumpSuperQ + 1 + (jumpInsideSuperQ >> 2) + shift := 16 * (jumpInsideSuperQ % 4) + mask := uint64(0xffff) << shift + ef.jump[idx64] = (ef.jump[idx64] &^ mask) | (offset << shift) + } + c++ + } + } + } +} + +func (ef *EliasFano) get(i uint64) (val, window uint64, sel int, currWord, lower, delta uint64) { + lower = i * ef.l + idx64 := lower / 64 + shift := lower % 64 + lower = ef.lowerBits[idx64] >> shift + if shift > 0 { + lower |= ef.lowerBits[idx64+1] << (64 - shift) + } + + jumpSuperQ := (i / superQ) * superQSize + jumpInsideSuperQ := (i % superQ) / q + idx64 = jumpSuperQ + 1 + (jumpInsideSuperQ >> 2) + shift = 16 * (jumpInsideSuperQ % 4) + mask := uint64(0xffff) << shift + jump := ef.jump[jumpSuperQ] + (ef.jump[idx64]&mask)>>shift + + currWord = jump / 64 + window = ef.upperBits[currWord] & (uint64(0xffffffffffffffff) << (jump % 64)) + d := int(i & qMask) + + for bitCount := bits.OnesCount64(window); bitCount <= d; bitCount = bits.OnesCount64(window) { + currWord++ + window = ef.upperBits[currWord] + d -= bitCount + } + + sel = bitutil.Select64(window, d) + delta = i * ef.minDelta + val = ((currWord*64+uint64(sel)-i)<>= ef.l + valNext = ((currWord*64+uint64(bits.TrailingZeros64(window))-i-1)< 56 { + panic(fmt.Sprintf("ef.lCumKeys (%d) * 2 + ef.lPosition (%d) > 56", ef.lCumKeys, ef.lPosition)) + } + ef.lowerBitsMaskCumKeys = (uint64(1) << ef.lCumKeys) - 1 + ef.lowerBitsMaskPosition = (uint64(1) << ef.lPosition) - 1 + wordsLowerBits := int(((ef.numBuckets+1)*(ef.lCumKeys+ef.lPosition)+63)/64 + 1) + wordsCumKeys := int((ef.numBuckets + 1 + (ef.uCumKeys >> ef.lCumKeys) + 63) / 64) + wordsPosition := int((ef.numBuckets + 1 + (ef.uPosition >> ef.lPosition) + 63) / 64) + jumpWords := ef.jumpSizeWords() + totalWords := wordsLowerBits + wordsCumKeys + wordsPosition + jumpWords + if ef.data == nil { + ef.data = make([]uint64, totalWords) + } else { + ef.data = ef.data[:totalWords] + } + ef.lowerBits = ef.data[:wordsLowerBits] + ef.upperBitsCumKeys = ef.data[wordsLowerBits : wordsLowerBits+wordsCumKeys] + ef.upperBitsPosition = ef.data[wordsLowerBits+wordsCumKeys : wordsLowerBits+wordsCumKeys+wordsPosition] + ef.jump = ef.data[wordsLowerBits+wordsCumKeys+wordsPosition:] + return wordsCumKeys, wordsPosition +} + +// Build construct double Elias Fano index for two given sequences +func (ef *DoubleEliasFano) Build(cumKeys []uint64, position []uint64) { + //fmt.Printf("cumKeys = %d\nposition = %d\n", cumKeys, position) + if len(cumKeys) != len(position) { + panic("len(cumKeys) != len(position)") + } + ef.numBuckets = uint64(len(cumKeys) - 1) + ef.posMinDelta = math.MaxUint64 + ef.cumKeysMinDelta = math.MaxUint64 + for i := uint64(1); i <= ef.numBuckets; i++ { + if cumKeys[i] < cumKeys[i-1] { + panic("cumKeys[i] <= cumKeys[i-1]") + } + nkeysDelta := cumKeys[i] - cumKeys[i-1] + if nkeysDelta < ef.cumKeysMinDelta { + ef.cumKeysMinDelta = nkeysDelta + } + if position[i] < position[i-1] { + panic("position[i] < position[i-1]") + } + bucketBits := position[i] - position[i-1] + if bucketBits < ef.posMinDelta { + ef.posMinDelta = bucketBits + } + } + //fmt.Printf("cumKeysMinDelta = %d, posMinDelta = %d\n", ef.cumKeysMinDelta, ef.posMinDelta) + ef.uPosition = position[ef.numBuckets] - ef.numBuckets*ef.posMinDelta + 1 + ef.uCumKeys = cumKeys[ef.numBuckets] - ef.numBuckets*ef.cumKeysMinDelta + 1 // Largest possible encoding of the cumKeys + wordsCumKeys, wordsPosition := ef.deriveFields() + + for i, cumDelta, bitDelta := uint64(0), uint64(0), uint64(0); i <= ef.numBuckets; i, cumDelta, bitDelta = i+1, cumDelta+ef.cumKeysMinDelta, bitDelta+ef.posMinDelta { + if ef.lCumKeys != 0 { + //fmt.Printf("i=%d, set_bits cum for %d = %b\n", i, cumKeys[i]-cumDelta, (cumKeys[i]-cumDelta)&ef.lowerBitsMaskCumKeys) + setBits(ef.lowerBits, i*(ef.lCumKeys+ef.lPosition), int(ef.lCumKeys), (cumKeys[i]-cumDelta)&ef.lowerBitsMaskCumKeys) + //fmt.Printf("loweBits %b\n", ef.lowerBits) + } + set(ef.upperBitsCumKeys, ((cumKeys[i]-cumDelta)>>ef.lCumKeys)+i) + //fmt.Printf("i=%d, set cum for %d = %d\n", i, cumKeys[i]-cumDelta, (cumKeys[i]-cumDelta)>>ef.lCumKeys+i) + + if ef.lPosition != 0 { + //fmt.Printf("i=%d, set_bits pos for %d = %b\n", i, position[i]-bitDelta, (position[i]-bitDelta)&ef.lowerBitsMaskPosition) + setBits(ef.lowerBits, i*(ef.lCumKeys+ef.lPosition)+ef.lCumKeys, int(ef.lPosition), (position[i]-bitDelta)&ef.lowerBitsMaskPosition) + //fmt.Printf("lowerBits %b\n", ef.lowerBits) + } + set(ef.upperBitsPosition, ((position[i]-bitDelta)>>ef.lPosition)+i) + //fmt.Printf("i=%d, set pos for %d = %d\n", i, position[i]-bitDelta, (position[i]-bitDelta)>>ef.lPosition+i) + } + //fmt.Printf("loweBits %b\n", ef.lowerBits) + //fmt.Printf("upperBitsCumKeys %b\n", ef.upperBitsCumKeys) + //fmt.Printf("upperBitsPosition %b\n", ef.upperBitsPosition) + // i iterates over the 64-bit words in the wordCumKeys vector + // c iterates over bits in the wordCumKeys + // lastSuperQ is the largest multiple of 2^14 (4096) which is no larger than c + // c/superQ is the index of the current 4096 block of bits + // superQSize is how many words is required to encode one block of 4096 bits. It is 17 words which is 1088 bits + for i, c, lastSuperQ := uint64(0), uint64(0), uint64(0); i < uint64(wordsCumKeys); i++ { + for b := uint64(0); b < 64; b++ { + if ef.upperBitsCumKeys[i]&(uint64(1)<= (1 << 16) { + panic("") + } + // c % superQ is the bit index inside the group of 4096 bits + jumpSuperQ := (c / superQ) * (superQSize * 2) + jumpInsideSuperQ := 2 * (c % superQ) / q + idx64 := jumpSuperQ + 2 + (jumpInsideSuperQ >> 2) + shift := 16 * (jumpInsideSuperQ % 4) + mask := uint64(0xffff) << shift + ef.jump[idx64] = (ef.jump[idx64] &^ mask) | (offset << shift) + } + c++ + } + } + } + + for i, c, lastSuperQ := uint64(0), uint64(0), uint64(0); i < uint64(wordsPosition); i++ { + for b := uint64(0); b < 64; b++ { + if ef.upperBitsPosition[i]&(uint64(1)<= (1 << 16) { + panic("") + } + jumpSuperQ := (c / superQ) * (superQSize * 2) + jumpInsideSuperQ := 2*((c%superQ)/q) + 1 + idx64 := jumpSuperQ + 2 + (jumpInsideSuperQ >> 2) + shift := 16 * (jumpInsideSuperQ % 4) + mask := uint64(0xffff) << shift + ef.jump[idx64] = (ef.jump[idx64] &^ mask) | (offset << shift) + } + c++ + } + } + } + //fmt.Printf("jump: %x\n", ef.jump) +} + +// setBits assumes that bits are set in monotonic order, so that +// we can skip the masking for the second word +func setBits(bits []uint64, start uint64, width int, value uint64) { + shift := int(start & 63) + idx64 := start >> 6 + mask := (uint64(1)< 64 { + // changes two 64-bit words + bits[idx64+1] = value >> (64 - shift) + } +} + +func set(bits []uint64, pos uint64) { + //bits[pos>>6] |= uint64(1) << (pos & 63) + bits[pos/64] |= uint64(1) << (pos % 64) +} + +func (ef *DoubleEliasFano) jumpSizeWords() int { + size := ((ef.numBuckets + 1) / superQ) * superQSize * 2 // Whole blocks + if (ef.numBuckets+1)%superQ != 0 { + size += (1 + (((ef.numBuckets+1)%superQ+q-1)/q+3)/4) * 2 // Partial block + } + return int(size) +} + +// Data returns binary representation of double Ellias-Fano index that has been built +func (ef *DoubleEliasFano) Data() []uint64 { + return ef.data +} + +func (ef *DoubleEliasFano) get2(i uint64) (cumKeys, position uint64, + windowCumKeys uint64, selectCumKeys int, currWordCumKeys, lower, cumDelta uint64) { + posLower := i * (ef.lCumKeys + ef.lPosition) + idx64 := posLower / 64 + shift := posLower % 64 + lower = ef.lowerBits[idx64] >> shift + if shift > 0 { + lower |= ef.lowerBits[idx64+1] << (64 - shift) + } + //fmt.Printf("i = %d, posLower = %d, lower = %b\n", i, posLower, lower) + + jumpSuperQ := (i / superQ) * superQSize * 2 + jumpInsideSuperQ := (i % superQ) / q + idx16 := 4*(jumpSuperQ+2) + 2*jumpInsideSuperQ + idx64 = idx16 / 4 + shift = 16 * (idx16 % 4) + mask := uint64(0xffff) << shift + jumpCumKeys := ef.jump[jumpSuperQ] + (ef.jump[idx64]&mask)>>shift + idx16++ + idx64 = idx16 / 4 + shift = 16 * (idx16 % 4) + mask = uint64(0xffff) << shift + jumpPosition := ef.jump[jumpSuperQ+1] + (ef.jump[idx64]&mask)>>shift + //fmt.Printf("i = %d, jumpCumKeys = %d, jumpPosition = %d\n", i, jumpCumKeys, jumpPosition) + + currWordCumKeys = jumpCumKeys / 64 + currWordPosition := jumpPosition / 64 + windowCumKeys = ef.upperBitsCumKeys[currWordCumKeys] & (uint64(0xffffffffffffffff) << (jumpCumKeys % 64)) + windowPosition := ef.upperBitsPosition[currWordPosition] & (uint64(0xffffffffffffffff) << (jumpPosition % 64)) + deltaCumKeys := int(i & qMask) + deltaPosition := int(i & qMask) + + for bitCount := bits.OnesCount64(windowCumKeys); bitCount <= deltaCumKeys; bitCount = bits.OnesCount64(windowCumKeys) { + //fmt.Printf("i = %d, bitCount cum = %d\n", i, bitCount) + currWordCumKeys++ + windowCumKeys = ef.upperBitsCumKeys[currWordCumKeys] + deltaCumKeys -= bitCount + } + for bitCount := bits.OnesCount64(windowPosition); bitCount <= deltaPosition; bitCount = bits.OnesCount64(windowPosition) { + //fmt.Printf("i = %d, bitCount pos = %d\n", i, bitCount) + currWordPosition++ + windowPosition = ef.upperBitsPosition[currWordPosition] + deltaPosition -= bitCount + } + + selectCumKeys = bitutil.Select64(windowCumKeys, deltaCumKeys) + //fmt.Printf("i = %d, select cum in %b for %d = %d\n", i, windowCumKeys, deltaCumKeys, selectCumKeys) + cumDelta = i * ef.cumKeysMinDelta + cumKeys = ((currWordCumKeys*64+uint64(selectCumKeys)-i)<>= ef.lCumKeys + //fmt.Printf("i = %d, lower = %b\n", i, lower) + selectPosition := bitutil.Select64(windowPosition, deltaPosition) + //fmt.Printf("i = %d, select pos in %b for %d = %d\n", i, windowPosition, deltaPosition, selectPosition) + bitDelta := i * ef.posMinDelta + position = ((currWordPosition*64+uint64(selectPosition)-i)<>= ef.lPosition + cumKeysNext = ((currWordCumKeys*64+uint64(bits.TrailingZeros64(windowCumKeys))-i-1)<> ef.l) + ef.i + set(ef.upperBits, (offset>>ef.l)+ef.i) + //fmt.Printf("add:%x, pos=%x, set=%x, res=%x\n", offset, pos, pos/64, uint64(1)<<(pos%64)) + ef.i++ +} + +func (ef *EliasFano) jumpSizeWords() int { + size := ((ef.count + 1) / superQ) * superQSize // Whole blocks + if (ef.count+1)%superQ != 0 { + size += 1 + (((ef.count+1)%superQ+q-1)/q+3)/2 // Partial block + } + return int(size) +} + +func (ef *EliasFano) deriveFields() int { + if ef.u/(ef.count+1) == 0 { + ef.l = 0 + } else { + ef.l = 63 ^ uint64(bits.LeadingZeros64(ef.u/(ef.count+1))) // pos of first non-zero bit + } + ef.lowerBitsMask = (uint64(1) << ef.l) - 1 + wordsLowerBits := int(((ef.count+1)*ef.l+63)/64 + 1) + wordsUpperBits := int((ef.count + 1 + (ef.u >> ef.l) + 63) / 64) + jumpWords := ef.jumpSizeWords() + totalWords := wordsLowerBits + wordsUpperBits + jumpWords + //fmt.Printf("EF: %d, %d,%d,%d\n", totalWords, wordsLowerBits, wordsUpperBits, jumpWords) + if ef.data == nil { + ef.data = make([]uint64, totalWords) + } else { + ef.data = ef.data[:totalWords] + } + + ef.lowerBits = ef.data[:wordsLowerBits] + ef.upperBits = ef.data[wordsLowerBits : wordsLowerBits+wordsUpperBits] + ef.jump = ef.data[wordsLowerBits+wordsUpperBits:] + return wordsUpperBits +} + +// Build construct Elias Fano index for a given sequences +func (ef *EliasFano) Build() { + for i, c, lastSuperQ := uint64(0), uint64(0), uint64(0); i < uint64(ef.wordsUpperBits); i++ { + for b := uint64(0); b < 64; b++ { + if ef.upperBits[i]&(uint64(1)<= (1 << 32) { + fmt.Printf("ef.l=%x,ef.u=%x\n", ef.l, ef.u) + fmt.Printf("offset=%x,lastSuperQ=%x,i=%x,b=%x,c=%x\n", offset, lastSuperQ, i, b, c) + panic("") + } + // c % superQ is the bit index inside the group of 4096 bits + jumpSuperQ := (c / superQ) * superQSize + jumpInsideSuperQ := (c % superQ) / q + idx64, shift := jumpSuperQ+1+(jumpInsideSuperQ>>1), 32*(jumpInsideSuperQ%2) + mask := uint64(0xffffffff) << shift + ef.jump[idx64] = (ef.jump[idx64] &^ mask) | (offset << shift) + c++ + } + } + } +} + +func (ef *EliasFano) get(i uint64) (val uint64, window uint64, sel int, currWord uint64, lower uint64) { + lower = i * ef.l + idx64, shift := lower/64, lower%64 + lower = ef.lowerBits[idx64] >> shift + if shift > 0 { + lower |= ef.lowerBits[idx64+1] << (64 - shift) + } + + jumpSuperQ := (i / superQ) * superQSize + jumpInsideSuperQ := (i % superQ) / q + idx64, shift = jumpSuperQ+1+(jumpInsideSuperQ>>1), 32*(jumpInsideSuperQ%2) + mask := uint64(0xffffffff) << shift + jump := ef.jump[jumpSuperQ] + (ef.jump[idx64]&mask)>>shift + + currWord = jump / 64 + window = ef.upperBits[currWord] & (uint64(0xffffffffffffffff) << (jump % 64)) + d := int(i & qMask) + + for bitCount := bits.OnesCount64(window); bitCount <= d; bitCount = bits.OnesCount64(window) { + currWord++ + window = ef.upperBits[currWord] + d -= bitCount + } + + sel = bitutil.Select64(window, d) + val = (currWord*64+uint64(sel)-i)<>= ef.l + valNext = (currWord*64+uint64(bits.TrailingZeros64(window))-i-1)<>1), 32*(jumpInsideSuperQ%2) + mask := uint64(0xffffffff) << shift + jump := ef.jump[jumpSuperQ] + (ef.jump[idx64]&mask)>>shift + currWord := jump / 64 + window := ef.upperBits[currWord] & (uint64(0xffffffffffffffff) << (jump % 64)) + d := int(i & qMask) + + for bitCount := bits.OnesCount64(window); bitCount <= d; bitCount = bits.OnesCount64(window) { + currWord++ + window = ef.upperBits[currWord] + d -= bitCount + } + + sel := bitutil.Select64(window, d) + return currWord*64 + uint64(sel) - i +} + +// Search returns the value in the sequence, equal or greater than given value +func (ef *EliasFano) search(v uint64) (nextV uint64, nextI uint64, ok bool) { + if v == 0 { + return ef.Min(), 0, true + } + if v == ef.Max() { + return ef.Max(), ef.count, true + } + if v > ef.Max() { + return 0, 0, false + } + + hi := v >> ef.l + i := sort.Search(int(ef.count+1), func(i int) bool { + return ef.upper(uint64(i)) >= hi + }) + for j := uint64(i); j <= ef.count; j++ { + val, _, _, _, _ := ef.get(j) + if val >= v { + return val, j, true + } + } + return 0, 0, false +} + +func (ef *EliasFano) Search(v uint64) (uint64, bool) { + n, _, ok := ef.search(v) + return n, ok +} + +func (ef *EliasFano) Max() uint64 { + return ef.maxOffset +} + +func (ef *EliasFano) Min() uint64 { + return ef.Get(0) +} + +func (ef *EliasFano) Count() uint64 { + return ef.count + 1 +} + +func (ef *EliasFano) Iterator() *EliasFanoIter { + return &EliasFanoIter{ef: ef, upperMask: 1, upperStep: uint64(1) << ef.l, lowerBits: ef.lowerBits, upperBits: ef.upperBits, count: ef.count, l: ef.l, lowerBitsMask: ef.lowerBitsMask} +} +func (ef *EliasFano) ReverseIterator() *iter.ArrStream[uint64] { + //TODO: this is very un-optimal, need implement proper reverse-iterator + it := ef.Iterator() + var values []uint64 + for it.HasNext() { + v, err := it.Next() + if err != nil { + panic(err) + } + values = append(values, v) + } + return iter.ReverseArray[uint64](values) +} + +type EliasFanoIter struct { + ef *EliasFano + lowerBits []uint64 + upperBits []uint64 + + //constants + count uint64 + lowerBitsMask uint64 + l uint64 + upperStep uint64 + + //fields of current value + upper uint64 + upperIdx uint64 + + //fields of next value + idx uint64 + lowerIdx uint64 + upperMask uint64 +} + +func (efi *EliasFanoIter) HasNext() bool { + return efi.idx <= efi.count +} + +func (efi *EliasFanoIter) Reset() { + efi.upperMask = 1 + efi.upperStep = uint64(1) << efi.l + efi.upperIdx = 0 + + efi.upper = 0 + efi.lowerIdx = 0 + efi.idx = 0 +} + +func (efi *EliasFanoIter) SeekDeprecated(n uint64) { + efi.Reset() + _, i, ok := efi.ef.search(n) + if !ok { + efi.idx = efi.count + 1 + return + } + for j := uint64(0); j < i; j++ { + efi.increment() + } + //fmt.Printf("seek: efi.upperMask(%d)=%d, upperIdx=%d, lowerIdx=%d, idx=%d\n", n, bits.TrailingZeros64(efi.upperMask), efi.upperIdx, efi.lowerIdx, efi.idx) + //fmt.Printf("seek: efi.upper=%d\n", efi.upper) +} + +func (efi *EliasFanoIter) Seek(n uint64) { + //fmt.Printf("b seek2: efi.upperMask(%d)=%d, upperIdx=%d, lowerIdx=%d, idx=%d\n", n, bits.TrailingZeros64(efi.upperMask), efi.upperIdx, efi.lowerIdx, efi.idx) + //fmt.Printf("b seek2: efi.upper=%d\n", efi.upper) + efi.Reset() + nn, nextI, ok := efi.ef.search(n) + _ = nn + if !ok { + efi.idx = efi.count + 1 + return + } + if nextI == 0 { + return + } + + // fields of current value + v, _, sel, currWords, lower := efi.ef.get(nextI - 1) //TODO: search can return same info + efi.upper = v &^ (lower & efi.ef.lowerBitsMask) + efi.upperIdx = currWords + + // fields of next value + efi.lowerIdx = nextI * efi.l + efi.idx = nextI + efi.upperMask = 1 << (sel + 1) + + //fmt.Printf("seek2: efi.upperMask(%d)=%d, upperIdx=%d, lowerIdx=%d, idx=%d\n", n, bits.TrailingZeros64(efi.upperMask), efi.upperIdx, efi.lowerIdx, efi.idx) + //fmt.Printf("seek2: efi.upper=%d\n", efi.upper) +} + +func (efi *EliasFanoIter) increment() { + if efi.upperMask == 0 { + efi.upperIdx++ + efi.upperMask = 1 + } + for efi.upperBits[efi.upperIdx]&efi.upperMask == 0 { + efi.upper += efi.upperStep + efi.upperMask <<= 1 + if efi.upperMask == 0 { + efi.upperIdx++ + efi.upperMask = 1 + } + } + efi.upperMask <<= 1 + efi.lowerIdx += efi.l + efi.idx++ +} + +func (efi *EliasFanoIter) Next() (uint64, error) { + idx64, shift := efi.lowerIdx/64, efi.lowerIdx%64 + lower := efi.lowerBits[idx64] >> shift + if shift > 0 { + lower |= efi.lowerBits[idx64+1] << (64 - shift) + } + efi.increment() + return efi.upper | (lower & efi.lowerBitsMask), nil +} + +// Write outputs the state of golomb rice encoding into a writer, which can be recovered later by Read +func (ef *EliasFano) Write(w io.Writer) error { + var numBuf [8]byte + binary.BigEndian.PutUint64(numBuf[:], ef.count) + if _, e := w.Write(numBuf[:]); e != nil { + return e + } + binary.BigEndian.PutUint64(numBuf[:], ef.u) + if _, e := w.Write(numBuf[:]); e != nil { + return e + } + b := unsafe.Slice((*byte)(unsafe.Pointer(&ef.data[0])), len(ef.data)*uint64Size) + if _, e := w.Write(b); e != nil { + return e + } + return nil +} + +// Write outputs the state of golomb rice encoding into a writer, which can be recovered later by Read +func (ef *EliasFano) AppendBytes(buf []byte) []byte { + var numBuf [8]byte + binary.BigEndian.PutUint64(numBuf[:], ef.count) + buf = append(buf, numBuf[:]...) + binary.BigEndian.PutUint64(numBuf[:], ef.u) + buf = append(buf, numBuf[:]...) + b := unsafe.Slice((*byte)(unsafe.Pointer(&ef.data[0])), len(ef.data)*uint64Size) + buf = append(buf, b...) + return buf +} + +// Read inputs the state of golomb rice encoding from a reader s +func ReadEliasFano(r []byte) (*EliasFano, int) { + ef := &EliasFano{ + count: binary.BigEndian.Uint64(r[:8]), + u: binary.BigEndian.Uint64(r[8:16]), + data: unsafe.Slice((*uint64)(unsafe.Pointer(&r[16])), (len(r)-16)/uint64Size), + } + ef.maxOffset = ef.u - 1 + ef.deriveFields() + return ef, 16 + 8*len(ef.data) +} + +// Reset - like ReadEliasFano, but for existing object +func (ef *EliasFano) Reset(r []byte) { + ef.count = binary.BigEndian.Uint64(r[:8]) + ef.u = binary.BigEndian.Uint64(r[8:16]) + ef.data = unsafe.Slice((*uint64)(unsafe.Pointer(&r[16])), (len(r)-16)/uint64Size) + ef.maxOffset = ef.u - 1 + ef.deriveFields() +} + +func Max(r []byte) uint64 { return binary.BigEndian.Uint64(r[8:16]) - 1 } +func Count(r []byte) uint64 { return binary.BigEndian.Uint64(r[:8]) + 1 } + +const uint64Size = 8 + +func Min(r []byte) uint64 { + count := binary.BigEndian.Uint64(r[:8]) + u := binary.BigEndian.Uint64(r[8:16]) + p := unsafe.Slice((*uint64)(unsafe.Pointer(&r[16])), (len(r)-16)/uint64Size) + var l uint64 + if u/(count+1) == 0 { + l = 0 + } else { + l = 63 ^ uint64(bits.LeadingZeros64(u/(count+1))) // pos of first non-zero bit + } + wordsLowerBits := int(((count+1)*l+63)/64 + 1) + wordsUpperBits := int((count + 1 + (u >> l) + 63) / 64) + lowerBits := p[:wordsLowerBits] + upperBits := p[wordsLowerBits : wordsLowerBits+wordsUpperBits] + jump := p[wordsLowerBits+wordsUpperBits:] + lower := lowerBits[0] + + mask := uint64(0xffffffff) + j := jump[0] + jump[1]&mask + currWord := j / 64 + window := upperBits[currWord] & (uint64(0xffffffffffffffff) << (j % 64)) + + if bitCount := bits.OnesCount64(window); bitCount <= 0 { + currWord++ + window = upperBits[currWord] + } + sel := bitutil.Select64(window, 0) + lowerBitsMask := (uint64(1) << l) - 1 + val := (currWord*64+uint64(sel))< 56 { + panic(fmt.Sprintf("ef.lCumKeys (%d) * 2 + ef.lPosition (%d) > 56", ef.lCumKeys, ef.lPosition)) + } + ef.lowerBitsMaskCumKeys = (uint64(1) << ef.lCumKeys) - 1 + ef.lowerBitsMaskPosition = (uint64(1) << ef.lPosition) - 1 + wordsLowerBits := int(((ef.numBuckets+1)*(ef.lCumKeys+ef.lPosition)+63)/64 + 1) + wordsCumKeys := int((ef.numBuckets + 1 + (ef.uCumKeys >> ef.lCumKeys) + 63) / 64) + wordsPosition := int((ef.numBuckets + 1 + (ef.uPosition >> ef.lPosition) + 63) / 64) + jumpWords := ef.jumpSizeWords() + totalWords := wordsLowerBits + wordsCumKeys + wordsPosition + jumpWords + if ef.data == nil { + ef.data = make([]uint64, totalWords) + } else { + ef.data = ef.data[:totalWords] + } + ef.lowerBits = ef.data[:wordsLowerBits] + ef.upperBitsCumKeys = ef.data[wordsLowerBits : wordsLowerBits+wordsCumKeys] + ef.upperBitsPosition = ef.data[wordsLowerBits+wordsCumKeys : wordsLowerBits+wordsCumKeys+wordsPosition] + ef.jump = ef.data[wordsLowerBits+wordsCumKeys+wordsPosition:] + return wordsCumKeys, wordsPosition +} + +// Build construct double Elias Fano index for two given sequences +func (ef *DoubleEliasFano) Build(cumKeys []uint64, position []uint64) { + //fmt.Printf("cumKeys = %d\nposition = %d\n", cumKeys, position) + if len(cumKeys) != len(position) { + panic("len(cumKeys) != len(position)") + } + ef.numBuckets = uint64(len(cumKeys) - 1) + ef.posMinDelta = math.MaxUint64 + ef.cumKeysMinDelta = math.MaxUint64 + for i := uint64(1); i <= ef.numBuckets; i++ { + if cumKeys[i] < cumKeys[i-1] { + panic("cumKeys[i] <= cumKeys[i-1]") + } + nkeysDelta := cumKeys[i] - cumKeys[i-1] + if nkeysDelta < ef.cumKeysMinDelta { + ef.cumKeysMinDelta = nkeysDelta + } + if position[i] < position[i-1] { + panic("position[i] < position[i-1]") + } + bucketBits := position[i] - position[i-1] + if bucketBits < ef.posMinDelta { + ef.posMinDelta = bucketBits + } + } + //fmt.Printf("cumKeysMinDelta = %d, posMinDelta = %d\n", ef.cumKeysMinDelta, ef.posMinDelta) + ef.uPosition = position[ef.numBuckets] - ef.numBuckets*ef.posMinDelta + 1 + ef.uCumKeys = cumKeys[ef.numBuckets] - ef.numBuckets*ef.cumKeysMinDelta + 1 // Largest possible encoding of the cumKeys + wordsCumKeys, wordsPosition := ef.deriveFields() + + for i, cumDelta, bitDelta := uint64(0), uint64(0), uint64(0); i <= ef.numBuckets; i, cumDelta, bitDelta = i+1, cumDelta+ef.cumKeysMinDelta, bitDelta+ef.posMinDelta { + if ef.lCumKeys != 0 { + //fmt.Printf("i=%d, set_bits cum for %d = %b\n", i, cumKeys[i]-cumDelta, (cumKeys[i]-cumDelta)&ef.lowerBitsMaskCumKeys) + setBits(ef.lowerBits, i*(ef.lCumKeys+ef.lPosition), int(ef.lCumKeys), (cumKeys[i]-cumDelta)&ef.lowerBitsMaskCumKeys) + //fmt.Printf("loweBits %b\n", ef.lowerBits) + } + set(ef.upperBitsCumKeys, ((cumKeys[i]-cumDelta)>>ef.lCumKeys)+i) + //fmt.Printf("i=%d, set cum for %d = %d\n", i, cumKeys[i]-cumDelta, (cumKeys[i]-cumDelta)>>ef.lCumKeys+i) + + if ef.lPosition != 0 { + //fmt.Printf("i=%d, set_bits pos for %d = %b\n", i, position[i]-bitDelta, (position[i]-bitDelta)&ef.lowerBitsMaskPosition) + setBits(ef.lowerBits, i*(ef.lCumKeys+ef.lPosition)+ef.lCumKeys, int(ef.lPosition), (position[i]-bitDelta)&ef.lowerBitsMaskPosition) + //fmt.Printf("lowerBits %b\n", ef.lowerBits) + } + set(ef.upperBitsPosition, ((position[i]-bitDelta)>>ef.lPosition)+i) + //fmt.Printf("i=%d, set pos for %d = %d\n", i, position[i]-bitDelta, (position[i]-bitDelta)>>ef.lPosition+i) + } + //fmt.Printf("loweBits %b\n", ef.lowerBits) + //fmt.Printf("upperBitsCumKeys %b\n", ef.upperBitsCumKeys) + //fmt.Printf("upperBitsPosition %b\n", ef.upperBitsPosition) + // i iterates over the 64-bit words in the wordCumKeys vector + // c iterates over bits in the wordCumKeys + // lastSuperQ is the largest multiple of 2^14 (4096) which is no larger than c + // c/superQ is the index of the current 4096 block of bits + // superQSize is how many words is required to encode one block of 4096 bits. It is 17 words which is 1088 bits + for i, c, lastSuperQ := uint64(0), uint64(0), uint64(0); i < uint64(wordsCumKeys); i++ { + for b := uint64(0); b < 64; b++ { + if ef.upperBitsCumKeys[i]&(uint64(1)<= (1 << 32) { + panic("") + } + // c % superQ is the bit index inside the group of 4096 bits + jumpSuperQ := (c / superQ) * (superQSize * 2) + jumpInsideSuperQ := 2 * (c % superQ) / q + idx64 := jumpSuperQ + 2 + (jumpInsideSuperQ >> 1) + shift := 32 * (jumpInsideSuperQ % 2) + mask := uint64(0xffffffff) << shift + ef.jump[idx64] = (ef.jump[idx64] &^ mask) | (offset << shift) + } + c++ + } + } + } + + for i, c, lastSuperQ := uint64(0), uint64(0), uint64(0); i < uint64(wordsPosition); i++ { + for b := uint64(0); b < 64; b++ { + if ef.upperBitsPosition[i]&(uint64(1)<= (1 << 32) { + panic("") + } + jumpSuperQ := (c / superQ) * (superQSize * 2) + jumpInsideSuperQ := 2*((c%superQ)/q) + 1 + idx64 := jumpSuperQ + 2 + (jumpInsideSuperQ >> 1) + shift := 32 * (jumpInsideSuperQ % 2) + mask := uint64(0xffffffff) << shift + ef.jump[idx64] = (ef.jump[idx64] &^ mask) | (offset << shift) + } + c++ + } + } + } + //fmt.Printf("jump: %x\n", ef.jump) +} + +// setBits assumes that bits are set in monotonic order, so that +// we can skip the masking for the second word +func setBits(bits []uint64, start uint64, width int, value uint64) { + idx64, shift := start>>6, int(start&63) + mask := (uint64(1)< 64 { + // changes two 64-bit words + bits[idx64+1] = value >> (64 - shift) + } +} + +func set(bits []uint64, pos uint64) { + //bits[pos>>6] |= uint64(1) << (pos & 63) + bits[pos/64] |= uint64(1) << (pos % 64) +} + +func (ef *DoubleEliasFano) jumpSizeWords() int { + size := ((ef.numBuckets + 1) / superQ) * superQSize * 2 // Whole blocks + if (ef.numBuckets+1)%superQ != 0 { + size += (1 + (((ef.numBuckets+1)%superQ+q-1)/q+3)/2) * 2 // Partial block + } + return int(size) +} + +// Data returns binary representation of double Ellias-Fano index that has been built +func (ef *DoubleEliasFano) Data() []uint64 { + return ef.data +} + +func (ef *DoubleEliasFano) get2(i uint64) (cumKeys uint64, position uint64, + windowCumKeys uint64, selectCumKeys int, currWordCumKeys uint64, lower uint64, cumDelta uint64) { + posLower := i * (ef.lCumKeys + ef.lPosition) + idx64, shift := posLower/64, posLower%64 + lower = ef.lowerBits[idx64] >> shift + if shift > 0 { + lower |= ef.lowerBits[idx64+1] << (64 - shift) + } + //fmt.Printf("i = %d, posLower = %d, lower = %b\n", i, posLower, lower) + + jumpSuperQ := (i / superQ) * superQSize * 2 + jumpInsideSuperQ := (i % superQ) / q + idx16 := 2*(jumpSuperQ+2) + 2*jumpInsideSuperQ + idx64, shift = idx16/2, 32*(idx16%2) + mask := uint64(0xffffffff) << shift + jumpCumKeys := ef.jump[jumpSuperQ] + (ef.jump[idx64]&mask)>>shift + idx16++ + idx64, shift = idx16/2, 32*(idx16%2) + mask = uint64(0xffffffff) << shift + jumpPosition := ef.jump[jumpSuperQ+1] + (ef.jump[idx64]&mask)>>shift + //fmt.Printf("i = %d, jumpCumKeys = %d, jumpPosition = %d\n", i, jumpCumKeys, jumpPosition) + + currWordCumKeys = jumpCumKeys / 64 + currWordPosition := jumpPosition / 64 + windowCumKeys = ef.upperBitsCumKeys[currWordCumKeys] & (uint64(0xffffffffffffffff) << (jumpCumKeys % 64)) + windowPosition := ef.upperBitsPosition[currWordPosition] & (uint64(0xffffffffffffffff) << (jumpPosition % 64)) + deltaCumKeys := int(i & qMask) + deltaPosition := int(i & qMask) + + for bitCount := bits.OnesCount64(windowCumKeys); bitCount <= deltaCumKeys; bitCount = bits.OnesCount64(windowCumKeys) { + //fmt.Printf("i = %d, bitCount cum = %d\n", i, bitCount) + currWordCumKeys++ + windowCumKeys = ef.upperBitsCumKeys[currWordCumKeys] + deltaCumKeys -= bitCount + } + for bitCount := bits.OnesCount64(windowPosition); bitCount <= deltaPosition; bitCount = bits.OnesCount64(windowPosition) { + //fmt.Printf("i = %d, bitCount pos = %d\n", i, bitCount) + currWordPosition++ + windowPosition = ef.upperBitsPosition[currWordPosition] + deltaPosition -= bitCount + } + + selectCumKeys = bitutil.Select64(windowCumKeys, deltaCumKeys) + //fmt.Printf("i = %d, select cum in %b for %d = %d\n", i, windowCumKeys, deltaCumKeys, selectCumKeys) + cumDelta = i * ef.cumKeysMinDelta + cumKeys = ((currWordCumKeys*64+uint64(selectCumKeys)-i)<>= ef.lCumKeys + //fmt.Printf("i = %d, lower = %b\n", i, lower) + selectPosition := bitutil.Select64(windowPosition, deltaPosition) + //fmt.Printf("i = %d, select pos in %b for %d = %d\n", i, windowPosition, deltaPosition, selectPosition) + bitDelta := i * ef.posMinDelta + position = ((currWordPosition*64+uint64(selectPosition)-i)<>= ef.lPosition + cumKeysNext = ((currWordCumKeys*64+uint64(bits.TrailingZeros64(windowCumKeys))-i-1)< maxOffset { + maxOffset = offset + } + } + ef := NewEliasFano(count, maxOffset) + for _, offset := range offsets { + ef.AddOffset(offset) + } + ef.Build() + for i, offset := range offsets { + offset1 := ef.Get(uint64(i)) + assert.Equal(t, offset, offset1, "offset") + } + v, ok := ef.Search(37) + assert.True(t, ok, "search1") + assert.Equal(t, uint64(37), v, "search1") + v, ok = ef.Search(0) + assert.True(t, ok, "search2") + assert.Equal(t, uint64(1), v, "search2") + _, ok = ef.Search(100) + assert.False(t, ok, "search3") + v, ok = ef.Search(11) + assert.True(t, ok, "search4") + assert.Equal(t, uint64(14), v, "search4") + + buf := bytes.NewBuffer(nil) + ef.Write(buf) + assert.Equal(t, ef.AppendBytes(nil), buf.Bytes()) + + ef2, _ := ReadEliasFano(buf.Bytes()) + assert.Equal(t, ef.Min(), ef2.Min()) + assert.Equal(t, ef.Max(), ef2.Max()) + assert.Equal(t, ef2.Max(), Max(buf.Bytes())) + assert.Equal(t, ef2.Min(), Min(buf.Bytes())) + assert.Equal(t, ef2.Count(), Count(buf.Bytes())) +} + +func TestIterator(t *testing.T) { + offsets := []uint64{1, 4, 6, 8, 10, 14, 16, 19, 22, 34, 37, 39, 41, 43, 48, 51, 54, 58, 62} + count := uint64(len(offsets)) + maxOffset := offsets[0] + for _, offset := range offsets { + if offset > maxOffset { + maxOffset = offset + } + } + ef := NewEliasFano(count, maxOffset) + for _, offset := range offsets { + ef.AddOffset(offset) + } + ef.Build() + t.Run("scan", func(t *testing.T) { + efi := ef.Iterator() + i := 0 + var values []uint64 + for efi.HasNext() { + v, _ := efi.Next() + values = append(values, v) + assert.Equal(t, offsets[i], v, "iter") + i++ + } + iter.ExpectEqualU64(t, iter.ReverseArray(values), ef.ReverseIterator()) + }) + + t.Run("seek", func(t *testing.T) { + iter2 := ef.Iterator() + iter2.Seek(2) + n, err := iter2.Next() + require.NoError(t, err) + require.Equal(t, 4, int(n)) + + iter2.Seek(5) + n, err = iter2.Next() + require.NoError(t, err) + require.Equal(t, 6, int(n)) + + iter2.Seek(62) + n, err = iter2.Next() + require.NoError(t, err) + require.Equal(t, 62, int(n)) + + iter2.Seek(1024) + require.False(t, iter2.HasNext()) + }) +} + +func TestIteratorAndSeekAreBasedOnSameFields(t *testing.T) { + vals := []uint64{1, 123, 789} + ef := NewEliasFano(uint64(len(vals)), vals[len(vals)-1]) + for _, v := range vals { + ef.AddOffset(v) + } + ef.Build() + + for i := range vals { + checkSeek(t, i, ef, vals) + } +} + +func checkSeek(t *testing.T, j int, ef *EliasFano, vals []uint64) { + t.Helper() + efi := ef.Iterator() + // drain iterator to given item + for i := 0; i < j; i++ { + efi.Next() + } + //save all fields values + v1, v2, v3, v4, v5 := efi.upperIdx, efi.upperMask, efi.lowerIdx, efi.upper, efi.idx + // seek to same item and check new fields + efi.Seek(vals[j]) + require.Equal(t, int(v1), int(efi.upperIdx)) + require.Equal(t, int(v3), int(efi.lowerIdx)) + require.Equal(t, int(v4), int(efi.upper)) + require.Equal(t, int(v5), int(efi.idx)) + require.Equal(t, bits.TrailingZeros64(v2), bits.TrailingZeros64(efi.upperMask)) +} + +func BenchmarkName(b *testing.B) { + count := uint64(1_000_000) + maxOffset := (count - 1) * 123 + ef := NewEliasFano(count, maxOffset) + for offset := uint64(0); offset < count; offset++ { + ef.AddOffset(offset * 123) + } + ef.Build() + b.Run("next", func(b *testing.B) { + for i := 0; i < b.N; i++ { + it := ef.Iterator() + for it.HasNext() { + n, _ := it.Next() + if n > 1_000_000 { + break + } + } + } + }) + b.Run("seek", func(b *testing.B) { + for i := 0; i < b.N; i++ { + it := ef.Iterator() + it.SeekDeprecated(1_000_000) + } + }) + b.Run("seek2", func(b *testing.B) { + for i := 0; i < b.N; i++ { + it := ef.Iterator() + it.Seek(1_000_000) + } + }) +} diff --git a/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/17e481a7c1425c40f663d83515ab93ee97d7108181870a3747d4aeca7fbb2648 b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/17e481a7c1425c40f663d83515ab93ee97d7108181870a3747d4aeca7fbb2648 new file mode 100644 index 00000000000..d63c185d56d --- /dev/null +++ b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/17e481a7c1425c40f663d83515ab93ee97d7108181870a3747d4aeca7fbb2648 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0fW33333\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f0\x0f\x0f\x0f\v\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x12\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f") diff --git a/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/1a646c505776a883b2d99ecc5e83f54a70b9cbac79cdad92901d202e481461ae b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/1a646c505776a883b2d99ecc5e83f54a70b9cbac79cdad92901d202e481461ae new file mode 100644 index 00000000000..04df78da858 --- /dev/null +++ b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/1a646c505776a883b2d99ecc5e83f54a70b9cbac79cdad92901d202e481461ae @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\xb4\x15\f\xf4") diff --git a/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/1af797790141e786f451a1d4d47f37452233883d41160cfbadc06e2bfcf17ae9 b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/1af797790141e786f451a1d4d47f37452233883d41160cfbadc06e2bfcf17ae9 new file mode 100644 index 00000000000..e7d12774725 --- /dev/null +++ b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/1af797790141e786f451a1d4d47f37452233883d41160cfbadc06e2bfcf17ae9 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\u007f\u007f\x00\x00\x80֯\xaf\x00\x80\xd6\x00\xd3:\xf4\t") diff --git a/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/5199aaf4a8e7ccb61efaa0a3fc90ecd4d142bce89a912fb84536632b1277a760 b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/5199aaf4a8e7ccb61efaa0a3fc90ecd4d142bce89a912fb84536632b1277a760 new file mode 100644 index 00000000000..2273e885f0f --- /dev/null +++ b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/5199aaf4a8e7ccb61efaa0a3fc90ecd4d142bce89a912fb84536632b1277a760 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\xef)") diff --git a/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/a07f63d0e074619c4fe923533ea5c72af1c00e2aff3206f345b9767ee9ce4101 b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/a07f63d0e074619c4fe923533ea5c72af1c00e2aff3206f345b9767ee9ce4101 new file mode 100644 index 00000000000..88d4d231845 --- /dev/null +++ b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/a07f63d0e074619c4fe923533ea5c72af1c00e2aff3206f345b9767ee9ce4101 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\xf4\f\fg7\xf4") diff --git a/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/b7ae575f1e43328af34baad9490d5639f50d6afda42ef20438d6a1d4a0e5a88e b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/b7ae575f1e43328af34baad9490d5639f50d6afda42ef20438d6a1d4a0e5a88e new file mode 100644 index 00000000000..dd54c284625 --- /dev/null +++ b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzDoubleEliasFano/b7ae575f1e43328af34baad9490d5639f50d6afda42ef20438d6a1d4a0e5a88e @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\x80\x91") diff --git a/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzSingleEliasFano/4ed490ae7dc318c0525e1e514cec72681ec2e72ffb9e5571d1c31ee26cb94a73 b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzSingleEliasFano/4ed490ae7dc318c0525e1e514cec72681ec2e72ffb9e5571d1c31ee26cb94a73 new file mode 100644 index 00000000000..4f854234247 --- /dev/null +++ b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzSingleEliasFano/4ed490ae7dc318c0525e1e514cec72681ec2e72ffb9e5571d1c31ee26cb94a73 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\xd9\xd9\xd9\xd9\xd9\xd9") diff --git a/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzSingleEliasFano/fb292a3777de8fcb809bf1d7bf13bffc3c2b7d8b1df25511af87e0872cebe3c7 b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzSingleEliasFano/fb292a3777de8fcb809bf1d7bf13bffc3c2b7d8b1df25511af87e0872cebe3c7 new file mode 100644 index 00000000000..ccd7d543e38 --- /dev/null +++ b/erigon-lib/recsplit/eliasfano32/testdata/fuzz/FuzzSingleEliasFano/fb292a3777de8fcb809bf1d7bf13bffc3c2b7d8b1df25511af87e0872cebe3c7 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\x11\xe7") diff --git a/erigon-lib/recsplit/golomb_rice.go b/erigon-lib/recsplit/golomb_rice.go new file mode 100644 index 00000000000..98221e1bfcd --- /dev/null +++ b/erigon-lib/recsplit/golomb_rice.go @@ -0,0 +1,183 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package recsplit + +import ( + "encoding/binary" + "io" + "math/bits" + "unsafe" + + "github.com/ledgerwatch/erigon-lib/common/bitutil" +) + +// Optimal Golomb-Rice parameters for leaves +var bijMemo = []uint32{0, 0, 0, 1, 3, 4, 5, 7, 8, 10, 11, 12, 14, 15, 16, 18, 19, 21, 22, 23, 25, 26, 28, 29, 30} + +// GolombRice can build up the golomb-rice encoding of the sequeuce of numbers, as well as read the numbers back from it. +type GolombRice struct { + data []uint64 // Present in the builder and in the reader + bitCount int // Speficic to the builder - number of bits added to the encoding so far +} + +// appendUnaryAll adds the unary encoding of specified sequence of numbers to the end of the +// current encoding +func (g *GolombRice) appendUnaryAll(unary []uint64) { + bitInc := 0 + for _, u := range unary { + // Each number u uses u+1 bits for its unary representation + bitInc += int(u) + 1 + } + targetSize := (g.bitCount + bitInc + 63) / 64 + for len(g.data) < targetSize { + g.data = append(g.data, 0) + } + + for _, u := range unary { + g.bitCount += int(u) + appendPtr := g.bitCount / 64 + g.data[appendPtr] |= uint64(1) << (g.bitCount & 63) + g.bitCount++ + } +} + +// appendFixed encodes the next value using specified Golomb parameter. Since we are using Golomb-Rice encoding, +// all Golomb parameters are powers of two. Therefore we input log2 of golomb parameter, rather than golomn paramter itself, +// for convinience +func (g *GolombRice) appendFixed(v uint64, log2golomb int) { + if log2golomb == 0 { + return + } + lowerBits := v & ((uint64(1) << log2golomb) - 1) // Extract the part of the number that will be encoded using truncated binary encoding + usedBits := g.bitCount & 63 // How many bits of the last element of b.data is used by previous value + targetSize := (g.bitCount + log2golomb + 63) / 64 + //fmt.Printf("g.bitCount = %d, log2golomb = %d, targetSize = %d\n", g.bitCount, log2golomb, targetSize) + for len(g.data) < targetSize { + g.data = append(g.data, 0) + } + appendPtr := g.bitCount / 64 // The index in b.data corresponding to the last element used by previous value, or if previous values fits perfectly, the index of the next free element + curWord := g.data[appendPtr] + curWord |= lowerBits << usedBits // curWord now contains the new value potentially combined with the part of the previous value + if usedBits+log2golomb > 64 { + // New value overflows to the next element + g.data[appendPtr] = curWord + appendPtr++ + curWord = lowerBits >> (64 - usedBits) // curWord now contains the part of the new value that overflows + } + g.data[appendPtr] = curWord + g.bitCount += log2golomb +} + +// Bits returns currrent number of bits in the compact encoding of the hash function representation +func (g *GolombRice) Bits() int { + return g.bitCount +} + +func (g *GolombRiceReader) ReadReset(bitPos, unaryOffset int) { + g.currFixedOffset = bitPos + unaryPos := bitPos + unaryOffset + g.currPtrUnary = unaryPos / 64 + g.currWindowUnary = g.data[g.currPtrUnary] >> (unaryPos & 63) + g.currPtrUnary++ + g.validLowerBitsUnary = 64 - (unaryPos & 63) +} + +func (g *GolombRiceReader) SkipSubtree(nodes, fixedLen int) { + if nodes <= 0 { + panic("nodes <= 0") + } + missing := nodes + var cnt int + for cnt = bits.OnesCount64(g.currWindowUnary); cnt < missing; cnt = bits.OnesCount64(g.currWindowUnary) { + g.currWindowUnary = g.data[g.currPtrUnary] + g.currPtrUnary++ + missing -= cnt + g.validLowerBitsUnary = 64 + } + cnt = bitutil.Select64(g.currWindowUnary, missing-1) + g.currWindowUnary >>= cnt + g.currWindowUnary >>= 1 + g.validLowerBitsUnary -= cnt + 1 + + g.currFixedOffset += fixedLen +} + +func (g *GolombRiceReader) ReadNext(log2golomb int) uint64 { + var result uint64 + + if g.currWindowUnary == 0 { + result += uint64(g.validLowerBitsUnary) + g.currWindowUnary = g.data[g.currPtrUnary] + g.currPtrUnary++ + g.validLowerBitsUnary = 64 + for g.currWindowUnary == 0 { + result += 64 + g.currWindowUnary = g.data[g.currPtrUnary] + g.currPtrUnary++ + } + } + + pos := bits.TrailingZeros64(g.currWindowUnary) + + g.currWindowUnary >>= pos + g.currWindowUnary >>= 1 + g.validLowerBitsUnary -= pos + 1 + + result += uint64(pos) + result <<= log2golomb + + idx64 := g.currFixedOffset >> 6 + var fixed uint64 + shift := g.currFixedOffset & 63 + fixed = g.data[idx64] >> shift + if shift+log2golomb > 64 { + fixed |= g.data[idx64+1] << (64 - shift) + } + result |= fixed & ((uint64(1) << log2golomb) - 1) + g.currFixedOffset += log2golomb + return result +} + +// Data returns the binary representation of the Golomb-Rice code that is built +func (g *GolombRice) Data() []uint64 { + return g.data +} + +const maxDataSize = 0xFFFFFFFFFFFF + +// Write outputs the state of golomb rice encoding into a writer, which can be recovered later by Read +func (g *GolombRice) Write(w io.Writer) error { + var numBuf [8]byte + binary.BigEndian.PutUint64(numBuf[:], uint64(len(g.data))) + if _, e := w.Write(numBuf[:]); e != nil { + return e + } + p := (*[maxDataSize]byte)(unsafe.Pointer(&g.data[0])) + b := (*p)[:] + if _, e := w.Write(b[:len(g.data)*8]); e != nil { + return e + } + return nil +} + +type GolombRiceReader struct { + data []uint64 // Present in the builder and in the reader + currFixedOffset int // Specific to the reader + currWindowUnary uint64 + currPtrUnary int + validLowerBitsUnary int +} diff --git a/erigon-lib/recsplit/index.go b/erigon-lib/recsplit/index.go new file mode 100644 index 00000000000..277db2d5fdf --- /dev/null +++ b/erigon-lib/recsplit/index.go @@ -0,0 +1,368 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package recsplit + +import ( + "bufio" + "encoding/binary" + "fmt" + "math" + "math/bits" + "os" + "path/filepath" + "sync" + "time" + "unsafe" + + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/mmap" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano16" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" +) + +// Index implements index lookup from the file created by the RecSplit +type Index struct { + offsetEf *eliasfano32.EliasFano + f *os.File + mmapHandle2 *[mmap.MaxMapSize]byte // mmap handle for windows (this is used to close mmap) + filePath, fileName string + + grData []uint64 + data []byte // slice of correct size for the index to work with + startSeed []uint64 + golombRice []uint32 + mmapHandle1 []byte // mmap handle for unix (this is used to close mmap) + ef eliasfano16.DoubleEliasFano + bucketSize int + size int64 + modTime time.Time + baseDataID uint64 // Index internaly organized as [0,N) array. Use this field to map EntityID=[M;M+N) to [0,N) + bucketCount uint64 // Number of buckets + keyCount uint64 + recMask uint64 + bytesPerRec int + salt uint32 + leafSize uint16 // Leaf size for recursive split algorithms + secondaryAggrBound uint16 // The lower bound for secondary key aggregation (computed from leadSize) + primaryAggrBound uint16 // The lower bound for primary key aggregation (computed from leafSize) + enums bool + + readers *sync.Pool +} + +func MustOpen(indexFile string) *Index { + idx, err := OpenIndex(indexFile) + if err != nil { + panic(err) + } + return idx +} + +func OpenIndex(indexFilePath string) (*Index, error) { + _, fName := filepath.Split(indexFilePath) + idx := &Index{ + filePath: indexFilePath, + fileName: fName, + } + var err error + idx.f, err = os.Open(indexFilePath) + if err != nil { + return nil, err + } + var stat os.FileInfo + if stat, err = idx.f.Stat(); err != nil { + return nil, err + } + idx.size = stat.Size() + idx.modTime = stat.ModTime() + if idx.mmapHandle1, idx.mmapHandle2, err = mmap.Mmap(idx.f, int(idx.size)); err != nil { + return nil, err + } + idx.data = idx.mmapHandle1[:idx.size] + defer idx.EnableReadAhead().DisableReadAhead() + + // Read number of keys and bytes per record + idx.baseDataID = binary.BigEndian.Uint64(idx.data[:8]) + idx.keyCount = binary.BigEndian.Uint64(idx.data[8:16]) + idx.bytesPerRec = int(idx.data[16]) + idx.recMask = (uint64(1) << (8 * idx.bytesPerRec)) - 1 + offset := 16 + 1 + int(idx.keyCount)*idx.bytesPerRec + + if offset < 0 { + return nil, fmt.Errorf("offset is: %d which is below zero, the file: %s is broken", offset, indexFilePath) + } + + // Bucket count, bucketSize, leafSize + idx.bucketCount = binary.BigEndian.Uint64(idx.data[offset:]) + offset += 8 + idx.bucketSize = int(binary.BigEndian.Uint16(idx.data[offset:])) + offset += 2 + idx.leafSize = binary.BigEndian.Uint16(idx.data[offset:]) + offset += 2 + idx.primaryAggrBound = idx.leafSize * uint16(math.Max(2, math.Ceil(0.35*float64(idx.leafSize)+1./2.))) + if idx.leafSize < 7 { + idx.secondaryAggrBound = idx.primaryAggrBound * 2 + } else { + idx.secondaryAggrBound = idx.primaryAggrBound * uint16(math.Ceil(0.21*float64(idx.leafSize)+9./10.)) + } + // Salt + idx.salt = binary.BigEndian.Uint32(idx.data[offset:]) + offset += 4 + // Start seed + startSeedLen := int(idx.data[offset]) + offset++ + idx.startSeed = make([]uint64, startSeedLen) + for i := 0; i < startSeedLen; i++ { + idx.startSeed[i] = binary.BigEndian.Uint64(idx.data[offset:]) + offset += 8 + } + idx.enums = idx.data[offset] != 0 + offset++ + if idx.enums { + var size int + idx.offsetEf, size = eliasfano32.ReadEliasFano(idx.data[offset:]) + offset += size + } + // Size of golomb rice params + golombParamSize := binary.BigEndian.Uint16(idx.data[offset:]) + offset += 4 + idx.golombRice = make([]uint32, golombParamSize) + for i := uint16(0); i < golombParamSize; i++ { + if i == 0 { + idx.golombRice[i] = (bijMemo[i] << 27) | bijMemo[i] + } else if i <= idx.leafSize { + idx.golombRice[i] = (bijMemo[i] << 27) | (uint32(1) << 16) | bijMemo[i] + } else { + computeGolombRice(i, idx.golombRice, idx.leafSize, idx.primaryAggrBound, idx.secondaryAggrBound) + } + } + + l := binary.BigEndian.Uint64(idx.data[offset:]) + offset += 8 + p := (*[maxDataSize / 8]uint64)(unsafe.Pointer(&idx.data[offset])) + idx.grData = p[:l] + offset += 8 * int(l) + idx.ef.Read(idx.data[offset:]) + + idx.readers = &sync.Pool{ + New: func() interface{} { + return NewIndexReader(idx) + }, + } + return idx, nil +} + +func (idx *Index) DataHandle() unsafe.Pointer { + return unsafe.Pointer(&idx.data[0]) +} + +func (idx *Index) Size() int64 { return idx.size } +func (idx *Index) ModTime() time.Time { return idx.modTime } +func (idx *Index) BaseDataID() uint64 { return idx.baseDataID } +func (idx *Index) FilePath() string { return idx.filePath } +func (idx *Index) FileName() string { return idx.fileName } + +func (idx *Index) Close() { + if idx == nil { + return + } + if idx.f != nil { + if err := mmap.Munmap(idx.mmapHandle1, idx.mmapHandle2); err != nil { + log.Log(dbg.FileCloseLogLevel, "unmap", "err", err, "file", idx.FileName(), "stack", dbg.Stack()) + } + if err := idx.f.Close(); err != nil { + log.Log(dbg.FileCloseLogLevel, "close", "err", err, "file", idx.FileName(), "stack", dbg.Stack()) + } + idx.f = nil + } +} + +func (idx *Index) skipBits(m uint16) int { + return int(idx.golombRice[m] & 0xffff) +} + +func (idx *Index) skipNodes(m uint16) int { + return int(idx.golombRice[m]>>16) & 0x7FF +} + +// golombParam returns the optimal Golomb parameter to use for encoding +// salt for the part of the hash function separating m elements. It is based on +// calculations with assumptions that we draw hash functions at random +func (idx *Index) golombParam(m uint16) int { + return int(idx.golombRice[m] >> 27) +} + +func (idx *Index) Empty() bool { + return idx.keyCount == 0 +} + +func (idx *Index) KeyCount() uint64 { + return idx.keyCount +} + +// Lookup is not thread-safe because it used id.hasher +func (idx *Index) Lookup(bucketHash, fingerprint uint64) uint64 { + if idx.keyCount == 0 { + _, fName := filepath.Split(idx.filePath) + panic("no Lookup should be done when keyCount==0, please use Empty function to guard " + fName) + } + if idx.keyCount == 1 { + return 0 + } + var gr GolombRiceReader + gr.data = idx.grData + + bucket := remap(bucketHash, idx.bucketCount) + cumKeys, cumKeysNext, bitPos := idx.ef.Get3(bucket) + m := uint16(cumKeysNext - cumKeys) // Number of keys in this bucket + gr.ReadReset(int(bitPos), idx.skipBits(m)) + var level int + for m > idx.secondaryAggrBound { // fanout = 2 + d := gr.ReadNext(idx.golombParam(m)) + hmod := remap16(remix(fingerprint+idx.startSeed[level]+d), m) + split := (((m+1)/2 + idx.secondaryAggrBound - 1) / idx.secondaryAggrBound) * idx.secondaryAggrBound + if hmod < split { + m = split + } else { + gr.SkipSubtree(idx.skipNodes(split), idx.skipBits(split)) + m -= split + cumKeys += uint64(split) + } + level++ + } + if m > idx.primaryAggrBound { + d := gr.ReadNext(idx.golombParam(m)) + hmod := remap16(remix(fingerprint+idx.startSeed[level]+d), m) + part := hmod / idx.primaryAggrBound + if idx.primaryAggrBound < m-part*idx.primaryAggrBound { + m = idx.primaryAggrBound + } else { + m = m - part*idx.primaryAggrBound + } + cumKeys += uint64(idx.primaryAggrBound * part) + if part != 0 { + gr.SkipSubtree(idx.skipNodes(idx.primaryAggrBound)*int(part), idx.skipBits(idx.primaryAggrBound)*int(part)) + } + level++ + } + if m > idx.leafSize { + d := gr.ReadNext(idx.golombParam(m)) + hmod := remap16(remix(fingerprint+idx.startSeed[level]+d), m) + part := hmod / idx.leafSize + if idx.leafSize < m-part*idx.leafSize { + m = idx.leafSize + } else { + m = m - part*idx.leafSize + } + cumKeys += uint64(idx.leafSize * part) + if part != 0 { + gr.SkipSubtree(int(part), idx.skipBits(idx.leafSize)*int(part)) + } + level++ + } + b := gr.ReadNext(idx.golombParam(m)) + rec := int(cumKeys) + int(remap16(remix(fingerprint+idx.startSeed[level]+b), m)) + pos := 1 + 8 + idx.bytesPerRec*(rec+1) + + return binary.BigEndian.Uint64(idx.data[pos:]) & idx.recMask +} + +// OrdinalLookup returns the offset of i-th element in the index +// Perfect hash table lookup is not performed, only access to the +// Elias-Fano structure containing all offsets. +func (idx *Index) OrdinalLookup(i uint64) uint64 { + return idx.offsetEf.Get(i) +} + +func (idx *Index) ExtractOffsets() map[uint64]uint64 { + m := map[uint64]uint64{} + pos := 1 + 8 + idx.bytesPerRec + for rec := uint64(0); rec < idx.keyCount; rec++ { + offset := binary.BigEndian.Uint64(idx.data[pos:]) & idx.recMask + m[offset] = 0 + pos += idx.bytesPerRec + } + return m +} + +func (idx *Index) RewriteWithOffsets(w *bufio.Writer, m map[uint64]uint64) error { + // New max offset + var maxOffset uint64 + for _, offset := range m { + if offset > maxOffset { + maxOffset = offset + } + } + bytesPerRec := common.BitLenToByteLen(bits.Len64(maxOffset)) + var numBuf [8]byte + // Write baseDataID + binary.BigEndian.PutUint64(numBuf[:], idx.baseDataID) + if _, err := w.Write(numBuf[:]); err != nil { + return fmt.Errorf("write number of keys: %w", err) + } + + // Write number of keys + binary.BigEndian.PutUint64(numBuf[:], idx.keyCount) + if _, err := w.Write(numBuf[:]); err != nil { + return fmt.Errorf("write number of keys: %w", err) + } + // Write number of bytes per index record + if err := w.WriteByte(byte(bytesPerRec)); err != nil { + return fmt.Errorf("write bytes per record: %w", err) + } + pos := 1 + 8 + idx.bytesPerRec + for rec := uint64(0); rec < idx.keyCount; rec++ { + offset := binary.BigEndian.Uint64(idx.data[pos:]) & idx.recMask + pos += idx.bytesPerRec + binary.BigEndian.PutUint64(numBuf[:], m[offset]) + if _, err := w.Write(numBuf[8-bytesPerRec:]); err != nil { + return err + } + } + // Write the rest as it is (TODO - wrong for indices with enums) + if _, err := w.Write(idx.data[16+1+int(idx.keyCount)*idx.bytesPerRec:]); err != nil { + return err + } + return nil +} + +// DisableReadAhead - usage: `defer d.EnableReadAhead().DisableReadAhead()`. Please don't use this funcs without `defer` to avoid leak. +func (idx *Index) DisableReadAhead() { + if idx == nil || idx.mmapHandle1 == nil { + return + } + _ = mmap.MadviseRandom(idx.mmapHandle1) +} +func (idx *Index) EnableReadAhead() *Index { + _ = mmap.MadviseSequential(idx.mmapHandle1) + return idx +} +func (idx *Index) EnableMadvNormal() *Index { + _ = mmap.MadviseNormal(idx.mmapHandle1) + return idx +} +func (idx *Index) EnableWillNeed() *Index { + _ = mmap.MadviseWillNeed(idx.mmapHandle1) + return idx +} + +func (idx *Index) GetReaderFromPool() *IndexReader { + return idx.readers.Get().(*IndexReader) +} diff --git a/erigon-lib/recsplit/index_reader.go b/erigon-lib/recsplit/index_reader.go new file mode 100644 index 00000000000..0ad10ea0960 --- /dev/null +++ b/erigon-lib/recsplit/index_reader.go @@ -0,0 +1,83 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package recsplit + +import ( + "sync" + + "github.com/spaolacci/murmur3" +) + +// IndexReader encapsulates Hash128 to allow concurrent access to Index +type IndexReader struct { + hasher murmur3.Hash128 + index *Index + mu sync.RWMutex +} + +// NewIndexReader creates new IndexReader +func NewIndexReader(index *Index) *IndexReader { + return &IndexReader{ + hasher: murmur3.New128WithSeed(index.salt), + index: index, + } +} + +func (r *IndexReader) sum(key []byte) (uint64, uint64) { + r.mu.Lock() + defer r.mu.Unlock() + r.hasher.Reset() + r.hasher.Write(key) //nolint:errcheck + return r.hasher.Sum128() +} + +func (r *IndexReader) sum2(key1, key2 []byte) (uint64, uint64) { + r.mu.Lock() + defer r.mu.Unlock() + r.hasher.Reset() + r.hasher.Write(key1) //nolint:errcheck + r.hasher.Write(key2) //nolint:errcheck + return r.hasher.Sum128() +} + +// Lookup wraps index Lookup +func (r *IndexReader) Lookup(key []byte) uint64 { + bucketHash, fingerprint := r.sum(key) + if r.index != nil { + return r.index.Lookup(bucketHash, fingerprint) + } + return 0 +} + +func (r *IndexReader) Lookup2(key1, key2 []byte) uint64 { + bucketHash, fingerprint := r.sum2(key1, key2) + if r.index != nil { + return r.index.Lookup(bucketHash, fingerprint) + } + return 0 +} + +func (r *IndexReader) Empty() bool { + return r.index.Empty() +} + +func (r *IndexReader) Close() { + if r == nil || r.index == nil { + return + } + r.index.readers.Put(r) +} diff --git a/erigon-lib/recsplit/index_test.go b/erigon-lib/recsplit/index_test.go new file mode 100644 index 00000000000..849cdb710be --- /dev/null +++ b/erigon-lib/recsplit/index_test.go @@ -0,0 +1,80 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package recsplit + +import ( + "bufio" + "context" + "fmt" + "os" + "path/filepath" + "testing" + + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" +) + +func TestReWriteIndex(t *testing.T) { + logger := log.New() + tmpDir := t.TempDir() + indexFile := filepath.Join(tmpDir, "index") + rs, err := NewRecSplit(RecSplitArgs{ + KeyCount: 100, + BucketSize: 10, + Salt: 0, + TmpDir: tmpDir, + IndexFile: indexFile, + LeafSize: 8, + }, logger) + if err != nil { + t.Fatal(err) + } + for i := 0; i < 100; i++ { + if err = rs.AddKey([]byte(fmt.Sprintf("key %d", i)), uint64(i*17)); err != nil { + t.Fatal(err) + } + } + if err := rs.Build(context.Background()); err != nil { + t.Fatal(err) + } + idx := MustOpen(indexFile) + defer idx.Close() + offsets := idx.ExtractOffsets() + for i := 0; i < 100; i++ { + _, ok := offsets[uint64(i*17)] + require.True(t, ok) + offsets[uint64(i*17)] = uint64(i * 3965) + } + reindexFile := filepath.Join(tmpDir, "reindex") + f, err := os.Create(reindexFile) + require.NoError(t, err) + defer f.Close() + w := bufio.NewWriter(f) + err = idx.RewriteWithOffsets(w, offsets) + require.NoError(t, err) + require.NoError(t, w.Flush()) + require.NoError(t, f.Close()) + reidx := MustOpen(reindexFile) + defer reidx.Close() + for i := 0; i < 100; i++ { + reader := NewIndexReader(reidx) + offset := reader.Lookup([]byte(fmt.Sprintf("key %d", i))) + if offset != uint64(i*3965) { + t.Errorf("expected offset: %d, looked up: %d", i*3965, offset) + } + } +} diff --git a/erigon-lib/recsplit/recsplit.go b/erigon-lib/recsplit/recsplit.go new file mode 100644 index 00000000000..a019ca9b3f9 --- /dev/null +++ b/erigon-lib/recsplit/recsplit.go @@ -0,0 +1,715 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package recsplit + +import ( + "bufio" + "context" + "crypto/rand" + "encoding/binary" + "fmt" + "io" + "math" + "math/bits" + "os" + "path/filepath" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/log/v3" + "github.com/spaolacci/murmur3" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/assert" + "github.com/ledgerwatch/erigon-lib/etl" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano16" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" +) + +var ErrCollision = fmt.Errorf("duplicate key") + +const RecSplitLogPrefix = "recsplit" + +const MaxLeafSize = 24 + +/** David Stafford's (http://zimbry.blogspot.com/2011/09/better-bit-mixing-improving-on.html) + * 13th variant of the 64-bit finalizer function in Austin Appleby's + * MurmurHash3 (https://github.com/aappleby/smhasher). + * + * @param z a 64-bit integer. + * @return a 64-bit integer obtained by mixing the bits of `z`. + */ + +func remix(z uint64) uint64 { + z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9 + z = (z ^ (z >> 27)) * 0x94d049bb133111eb + return z ^ (z >> 31) +} + +// RecSplit is the implementation of Recursive Split algorithm for constructing perfect hash mapping, described in +// https://arxiv.org/pdf/1910.06416.pdf Emmanuel Esposito, Thomas Mueller Graf, and Sebastiano Vigna. +// Recsplit: Minimal perfect hashing via recursive splitting. In 2020 Proceedings of the Symposium on Algorithm Engineering and Experiments (ALENEX), +// pages 175−185. SIAM, 2020. +type RecSplit struct { + hasher murmur3.Hash128 // Salted hash function to use for splitting into initial buckets and mapping to 64-bit fingerprints + offsetCollector *etl.Collector // Collector that sorts by offsets + indexW *bufio.Writer + indexF *os.File + offsetEf *eliasfano32.EliasFano // Elias Fano instance for encoding the offsets + bucketCollector *etl.Collector // Collector that sorts by buckets + + indexFileName string + indexFile, tmpFilePath string + + tmpDir string + gr GolombRice // Helper object to encode the tree of hash function salts using Golomb-Rice code. + bucketPosAcc []uint64 // Accumulator for position of every bucket in the encoding of the hash function + startSeed []uint64 + count []uint16 + currentBucket []uint64 // 64-bit fingerprints of keys in the current bucket accumulated before the recsplit is performed for that bucket + currentBucketOffs []uint64 // Index offsets for the current bucket + offsetBuffer []uint64 + buffer []uint64 + golombRice []uint32 + bucketSizeAcc []uint64 // Bucket size accumulator + // Helper object to encode the sequence of cumulative number of keys in the buckets + // and the sequence of of cumulative bit offsets of buckets in the Golomb-Rice code. + ef eliasfano16.DoubleEliasFano + lvl log.Lvl + bytesPerRec int + minDelta uint64 // minDelta for Elias Fano encoding of "enum -> offset" index + prevOffset uint64 // Previously added offset (for calculating minDelta for Elias Fano encoding of "enum -> offset" index) + bucketSize int + keyExpectedCount uint64 // Number of keys in the hash table + keysAdded uint64 // Number of keys actually added to the recSplit (to check the match with keyExpectedCount) + maxOffset uint64 // Maximum value of index offset to later decide how many bytes to use for the encoding + currentBucketIdx uint64 // Current bucket being accumulated + baseDataID uint64 // Minimal app-specific ID of entries of this index - helps app understand what data stored in given shard - persistent field + bucketCount uint64 // Number of buckets + etlBufLimit datasize.ByteSize + salt uint32 // Murmur3 hash used for converting keys to 64-bit values and assigning to buckets + leafSize uint16 // Leaf size for recursive split algorithm + secondaryAggrBound uint16 // The lower bound for secondary key aggregation (computed from leadSize) + primaryAggrBound uint16 // The lower bound for primary key aggregation (computed from leafSize) + bucketKeyBuf [16]byte + numBuf [8]byte + collision bool + enums bool // Whether to build two level index with perfect hash table pointing to enumeration and enumeration pointing to offsets + built bool // Flag indicating that the hash function has been built and no more keys can be added + trace bool + logger log.Logger + + noFsync bool // fsync is enabled by default, but tests can manually disable +} + +type RecSplitArgs struct { + // Whether two level index needs to be built, where perfect hash map points to an enumeration, and enumeration points to offsets + // if Enum=false: can have unsorted and duplicated values + // if Enum=true: must have sorted values (can have duplicates) - monotonically growing sequence + Enums bool + + IndexFile string // File name where the index and the minimal perfect hash function will be written to + TmpDir string + StartSeed []uint64 // For each level of recursive split, the hash seed (salt) used for that level - need to be generated randomly and be large enough to accomodate all the levels + KeyCount int + BucketSize int + BaseDataID uint64 + EtlBufLimit datasize.ByteSize + Salt uint32 // Hash seed (salt) for the hash function used for allocating the initial buckets - need to be generated randomly + LeafSize uint16 +} + +// NewRecSplit creates a new RecSplit instance with given number of keys and given bucket size +// Typical bucket size is 100 - 2000, larger bucket sizes result in smaller representations of hash functions, at a cost of slower access +// salt parameters is used to randomise the hash function construction, to ensure that different Erigon instances (nodes) +// are likely to use different hash function, to collision attacks are unlikely to slow down any meaningful number of nodes at the same time +func NewRecSplit(args RecSplitArgs, logger log.Logger) (*RecSplit, error) { + bucketCount := (args.KeyCount + args.BucketSize - 1) / args.BucketSize + rs := &RecSplit{bucketSize: args.BucketSize, keyExpectedCount: uint64(args.KeyCount), bucketCount: uint64(bucketCount), lvl: log.LvlDebug, logger: logger} + if len(args.StartSeed) == 0 { + args.StartSeed = []uint64{0x106393c187cae21a, 0x6453cec3f7376937, 0x643e521ddbd2be98, 0x3740c6412f6572cb, 0x717d47562f1ce470, 0x4cd6eb4c63befb7c, 0x9bfd8c5e18c8da73, + 0x082f20e10092a9a3, 0x2ada2ce68d21defc, 0xe33cb4f3e7c6466b, 0x3980be458c509c59, 0xc466fd9584828e8c, 0x45f0aabe1a61ede6, 0xf6e7b8b33ad9b98d, + 0x4ef95e25f4b4983d, 0x81175195173b92d3, 0x4e50927d8dd15978, 0x1ea2099d1fafae7f, 0x425c8a06fbaaa815, 0xcd4216006c74052a} + } + rs.salt = args.Salt + if rs.salt == 0 { + seedBytes := make([]byte, 4) + if _, err := rand.Read(seedBytes); err != nil { + return nil, err + } + rs.salt = binary.BigEndian.Uint32(seedBytes) + } + rs.hasher = murmur3.New128WithSeed(rs.salt) + rs.tmpDir = args.TmpDir + rs.indexFile = args.IndexFile + rs.tmpFilePath = args.IndexFile + ".tmp" + _, fname := filepath.Split(rs.indexFile) + rs.indexFileName = fname + rs.baseDataID = args.BaseDataID + rs.etlBufLimit = args.EtlBufLimit + if rs.etlBufLimit == 0 { + rs.etlBufLimit = etl.BufferOptimalSize + } + rs.bucketCollector = etl.NewCollector(RecSplitLogPrefix+" "+fname, rs.tmpDir, etl.NewSortableBuffer(rs.etlBufLimit), logger) + rs.bucketCollector.LogLvl(log.LvlDebug) + rs.enums = args.Enums + if args.Enums { + rs.offsetCollector = etl.NewCollector(RecSplitLogPrefix+" "+fname, rs.tmpDir, etl.NewSortableBuffer(rs.etlBufLimit), logger) + rs.offsetCollector.LogLvl(log.LvlDebug) + } + rs.currentBucket = make([]uint64, 0, args.BucketSize) + rs.currentBucketOffs = make([]uint64, 0, args.BucketSize) + rs.maxOffset = 0 + rs.bucketSizeAcc = make([]uint64, 1, bucketCount+1) + rs.bucketPosAcc = make([]uint64, 1, bucketCount+1) + if args.LeafSize > MaxLeafSize { + return nil, fmt.Errorf("exceeded max leaf size %d: %d", MaxLeafSize, args.LeafSize) + } + rs.leafSize = args.LeafSize + rs.primaryAggrBound = rs.leafSize * uint16(math.Max(2, math.Ceil(0.35*float64(rs.leafSize)+1./2.))) + if rs.leafSize < 7 { + rs.secondaryAggrBound = rs.primaryAggrBound * 2 + } else { + rs.secondaryAggrBound = rs.primaryAggrBound * uint16(math.Ceil(0.21*float64(rs.leafSize)+9./10.)) + } + rs.startSeed = args.StartSeed + rs.count = make([]uint16, rs.secondaryAggrBound) + return rs, nil +} + +func (rs *RecSplit) Close() { + if rs.indexF != nil { + rs.indexF.Close() + } + if rs.bucketCollector != nil { + rs.bucketCollector.Close() + } + if rs.offsetCollector != nil { + rs.offsetCollector.Close() + } +} + +func (rs *RecSplit) LogLvl(lvl log.Lvl) { rs.lvl = lvl } + +func (rs *RecSplit) SetTrace(trace bool) { + rs.trace = trace +} + +// remap converts the number x which is assumed to be uniformly distributed over the range [0..2^64) to the number that is uniformly +// distributed over the range [0..n) +func remap(x uint64, n uint64) uint64 { + hi, _ := bits.Mul64(x, n) + return hi +} + +const mask48 uint64 = (1 << 48) - 1 + +// remap converts the number x which is assumed to be uniformly distributed over the range [0..2^64) to the number that is uniformly +// distributed over the range [0..n), under assumption that n is less than 2^16 +func remap16(x uint64, n uint16) uint16 { + return uint16(((x & mask48) * uint64(n)) >> 48) +} + +// ResetNextSalt resets the RecSplit and uses the next salt value to try to avoid collisions +// when mapping keys to 64-bit values +func (rs *RecSplit) ResetNextSalt() { + rs.built = false + rs.collision = false + rs.keysAdded = 0 + rs.salt++ + rs.hasher = murmur3.New128WithSeed(rs.salt) + if rs.bucketCollector != nil { + rs.bucketCollector.Close() + } + rs.bucketCollector = etl.NewCollector(RecSplitLogPrefix+" "+rs.indexFileName, rs.tmpDir, etl.NewSortableBuffer(rs.etlBufLimit), rs.logger) + if rs.offsetCollector != nil { + rs.offsetCollector.Close() + rs.offsetCollector = etl.NewCollector(RecSplitLogPrefix+" "+rs.indexFileName, rs.tmpDir, etl.NewSortableBuffer(rs.etlBufLimit), rs.logger) + } + rs.currentBucket = rs.currentBucket[:0] + rs.currentBucketOffs = rs.currentBucketOffs[:0] + rs.maxOffset = 0 + rs.bucketSizeAcc = rs.bucketSizeAcc[:1] // First entry is always zero + rs.bucketPosAcc = rs.bucketPosAcc[:1] // First entry is always zero +} + +func splitParams(m, leafSize, primaryAggrBound, secondaryAggrBound uint16) (fanout, unit uint16) { + if m > secondaryAggrBound { // High-level aggregation (fanout 2) + unit = secondaryAggrBound * (((m+1)/2 + secondaryAggrBound - 1) / secondaryAggrBound) + fanout = 2 + } else if m > primaryAggrBound { // Second-level aggregation + unit = primaryAggrBound + fanout = (m + primaryAggrBound - 1) / primaryAggrBound + } else { // First-level aggregation + unit = leafSize + fanout = (m + leafSize - 1) / leafSize + } + return +} + +func computeGolombRice(m uint16, table []uint32, leafSize, primaryAggrBound, secondaryAggrBound uint16) { + fanout, unit := splitParams(m, leafSize, primaryAggrBound, secondaryAggrBound) + k := make([]uint16, fanout) + k[fanout-1] = m + for i := uint16(0); i < fanout-1; i++ { + k[i] = unit + k[fanout-1] -= k[i] + } + sqrtProd := float64(1) + for i := uint16(0); i < fanout; i++ { + sqrtProd *= math.Sqrt(float64(k[i])) + } + p := math.Sqrt(float64(m)) / (math.Pow(2*math.Pi, (float64(fanout)-1.)/2.0) * sqrtProd) + golombRiceLength := uint32(math.Ceil(math.Log2(-math.Log((math.Sqrt(5)+1.0)/2.0) / math.Log1p(-p)))) // log2 Golomb modulus + if golombRiceLength > 0x1F { + panic("golombRiceLength > 0x1F") + } + table[m] = golombRiceLength << 27 + for i := uint16(0); i < fanout; i++ { + golombRiceLength += table[k[i]] & 0xFFFF + } + if golombRiceLength > 0xFFFF { + panic("golombRiceLength > 0xFFFF") + } + table[m] |= golombRiceLength // Sum of Golomb-Rice codeslengths in the subtree, stored in the lower 16 bits + nodes := uint32(1) + for i := uint16(0); i < fanout; i++ { + nodes += (table[k[i]] >> 16) & 0x7FF + } + if leafSize >= 3 && nodes > 0x7FF { + panic("rs.leafSize >= 3 && nodes > 0x7FF") + } + table[m] |= nodes << 16 +} + +// golombParam returns the optimal Golomb parameter to use for encoding +// salt for the part of the hash function separating m elements. It is based on +// calculations with assumptions that we draw hash functions at random +func (rs *RecSplit) golombParam(m uint16) int { + s := uint16(len(rs.golombRice)) + for m >= s { + rs.golombRice = append(rs.golombRice, 0) + // For the case where bucket is larger than planned + if s == 0 { + rs.golombRice[0] = (bijMemo[0] << 27) | bijMemo[0] + } else if s <= rs.leafSize { + rs.golombRice[s] = (bijMemo[s] << 27) | (uint32(1) << 16) | bijMemo[s] + } else { + computeGolombRice(s, rs.golombRice, rs.leafSize, rs.primaryAggrBound, rs.secondaryAggrBound) + } + s++ + } + return int(rs.golombRice[m] >> 27) +} + +// Add key to the RecSplit. There can be many more keys than what fits in RAM, and RecSplit +// spills data onto disk to accomodate that. The key gets copied by the collector, therefore +// the slice underlying key is not getting accessed by RecSplit after this invocation. +func (rs *RecSplit) AddKey(key []byte, offset uint64) error { + if rs.built { + return fmt.Errorf("cannot add keys after perfect hash function had been built") + } + rs.hasher.Reset() + rs.hasher.Write(key) //nolint:errcheck + hi, lo := rs.hasher.Sum128() + binary.BigEndian.PutUint64(rs.bucketKeyBuf[:], remap(hi, rs.bucketCount)) + binary.BigEndian.PutUint64(rs.bucketKeyBuf[8:], lo) + binary.BigEndian.PutUint64(rs.numBuf[:], offset) + if offset > rs.maxOffset { + rs.maxOffset = offset + } + if rs.keysAdded > 0 { + delta := offset - rs.prevOffset + if rs.keysAdded == 1 || delta < rs.minDelta { + rs.minDelta = delta + } + } + + if rs.enums { + if err := rs.offsetCollector.Collect(rs.numBuf[:], nil); err != nil { + return err + } + binary.BigEndian.PutUint64(rs.numBuf[:], rs.keysAdded) + if err := rs.bucketCollector.Collect(rs.bucketKeyBuf[:], rs.numBuf[:]); err != nil { + return err + } + } else { + if err := rs.bucketCollector.Collect(rs.bucketKeyBuf[:], rs.numBuf[:]); err != nil { + return err + } + } + rs.keysAdded++ + rs.prevOffset = offset + return nil +} + +func (rs *RecSplit) AddOffset(offset uint64) error { + if rs.enums { + binary.BigEndian.PutUint64(rs.numBuf[:], offset) + if err := rs.offsetCollector.Collect(rs.numBuf[:], nil); err != nil { + return err + } + } + return nil +} + +func (rs *RecSplit) recsplitCurrentBucket() error { + // Extend rs.bucketSizeAcc to accomodate current bucket index + 1 + for len(rs.bucketSizeAcc) <= int(rs.currentBucketIdx)+1 { + rs.bucketSizeAcc = append(rs.bucketSizeAcc, rs.bucketSizeAcc[len(rs.bucketSizeAcc)-1]) + } + rs.bucketSizeAcc[int(rs.currentBucketIdx)+1] += uint64(len(rs.currentBucket)) + // Sets of size 0 and 1 are not further processed, just write them to index + if len(rs.currentBucket) > 1 { + for i, key := range rs.currentBucket[1:] { + if key == rs.currentBucket[i] { + rs.collision = true + return fmt.Errorf("%w: %x", ErrCollision, key) + } + } + bitPos := rs.gr.bitCount + if rs.buffer == nil { + rs.buffer = make([]uint64, len(rs.currentBucket)) + rs.offsetBuffer = make([]uint64, len(rs.currentBucketOffs)) + } else { + for len(rs.buffer) < len(rs.currentBucket) { + rs.buffer = append(rs.buffer, 0) + rs.offsetBuffer = append(rs.offsetBuffer, 0) + } + } + unary, err := rs.recsplit(0 /* level */, rs.currentBucket, rs.currentBucketOffs, nil /* unary */) + if err != nil { + return err + } + rs.gr.appendUnaryAll(unary) + if rs.trace { + fmt.Printf("recsplitBucket(%d, %d, bitsize = %d)\n", rs.currentBucketIdx, len(rs.currentBucket), rs.gr.bitCount-bitPos) + } + } else { + for _, offset := range rs.currentBucketOffs { + binary.BigEndian.PutUint64(rs.numBuf[:], offset) + if _, err := rs.indexW.Write(rs.numBuf[8-rs.bytesPerRec:]); err != nil { + return err + } + } + } + // Extend rs.bucketPosAcc to accomodate current bucket index + 1 + for len(rs.bucketPosAcc) <= int(rs.currentBucketIdx)+1 { + rs.bucketPosAcc = append(rs.bucketPosAcc, rs.bucketPosAcc[len(rs.bucketPosAcc)-1]) + } + rs.bucketPosAcc[int(rs.currentBucketIdx)+1] = uint64(rs.gr.Bits()) + // clear for the next buckey + rs.currentBucket = rs.currentBucket[:0] + rs.currentBucketOffs = rs.currentBucketOffs[:0] + return nil +} + +// recsplit applies recSplit algorithm to the given bucket +func (rs *RecSplit) recsplit(level int, bucket []uint64, offsets []uint64, unary []uint64) ([]uint64, error) { + if rs.trace { + fmt.Printf("recsplit(%d, %d, %x)\n", level, len(bucket), bucket) + } + // Pick initial salt for this level of recursive split + salt := rs.startSeed[level] + m := uint16(len(bucket)) + if m <= rs.leafSize { + // No need to build aggregation levels - just find find bijection + var mask uint32 + for { + mask = 0 + var fail bool + for i := uint16(0); !fail && i < m; i++ { + bit := uint32(1) << remap16(remix(bucket[i]+salt), m) + if mask&bit != 0 { + fail = true + } else { + mask |= bit + } + } + if !fail { + break + } + salt++ + } + for i := uint16(0); i < m; i++ { + j := remap16(remix(bucket[i]+salt), m) + rs.offsetBuffer[j] = offsets[i] + } + for _, offset := range rs.offsetBuffer[:m] { + binary.BigEndian.PutUint64(rs.numBuf[:], offset) + if _, err := rs.indexW.Write(rs.numBuf[8-rs.bytesPerRec:]); err != nil { + return nil, err + } + } + salt -= rs.startSeed[level] + log2golomb := rs.golombParam(m) + if rs.trace { + fmt.Printf("encode bij %d with log2golomn %d at p = %d\n", salt, log2golomb, rs.gr.bitCount) + } + rs.gr.appendFixed(salt, log2golomb) + unary = append(unary, salt>>log2golomb) + } else { + fanout, unit := splitParams(m, rs.leafSize, rs.primaryAggrBound, rs.secondaryAggrBound) + count := rs.count + for { + for i := uint16(0); i < fanout-1; i++ { + count[i] = 0 + } + var fail bool + for i := uint16(0); i < m; i++ { + count[remap16(remix(bucket[i]+salt), m)/unit]++ + } + for i := uint16(0); i < fanout-1; i++ { + fail = fail || (count[i] != unit) + } + if !fail { + break + } + salt++ + } + for i, c := uint16(0), uint16(0); i < fanout; i++ { + count[i] = c + c += unit + } + for i := uint16(0); i < m; i++ { + j := remap16(remix(bucket[i]+salt), m) / unit + rs.buffer[count[j]] = bucket[i] + rs.offsetBuffer[count[j]] = offsets[i] + count[j]++ + } + copy(bucket, rs.buffer) + copy(offsets, rs.offsetBuffer) + salt -= rs.startSeed[level] + log2golomb := rs.golombParam(m) + if rs.trace { + fmt.Printf("encode fanout %d: %d with log2golomn %d at p = %d\n", fanout, salt, log2golomb, rs.gr.bitCount) + } + rs.gr.appendFixed(salt, log2golomb) + unary = append(unary, salt>>log2golomb) + var err error + var i uint16 + for i = 0; i < m-unit; i += unit { + if unary, err = rs.recsplit(level+1, bucket[i:i+unit], offsets[i:i+unit], unary); err != nil { + return nil, err + } + } + if m-i > 1 { + if unary, err = rs.recsplit(level+1, bucket[i:], offsets[i:], unary); err != nil { + return nil, err + } + } else if m-i == 1 { + binary.BigEndian.PutUint64(rs.numBuf[:], offsets[i]) + if _, err := rs.indexW.Write(rs.numBuf[8-rs.bytesPerRec:]); err != nil { + return nil, err + } + } + } + return unary, nil +} + +// loadFuncBucket is required to satisfy the type etl.LoadFunc type, to use with collector.Load +func (rs *RecSplit) loadFuncBucket(k, v []byte, _ etl.CurrentTableReader, _ etl.LoadNextFunc) error { + // k is the BigEndian encoding of the bucket number, and the v is the key that is assigned into that bucket + bucketIdx := binary.BigEndian.Uint64(k) + if rs.currentBucketIdx != bucketIdx { + if rs.currentBucketIdx != math.MaxUint64 { + if err := rs.recsplitCurrentBucket(); err != nil { + return err + } + } + rs.currentBucketIdx = bucketIdx + } + rs.currentBucket = append(rs.currentBucket, binary.BigEndian.Uint64(k[8:])) + rs.currentBucketOffs = append(rs.currentBucketOffs, binary.BigEndian.Uint64(v)) + return nil +} + +func (rs *RecSplit) loadFuncOffset(k, _ []byte, _ etl.CurrentTableReader, _ etl.LoadNextFunc) error { + offset := binary.BigEndian.Uint64(k) + rs.offsetEf.AddOffset(offset) + return nil +} + +// Build has to be called after all the keys have been added, and it initiates the process +// of building the perfect hash function and writing index into a file +func (rs *RecSplit) Build(ctx context.Context) error { + if rs.built { + return fmt.Errorf("already built") + } + if rs.keysAdded != rs.keyExpectedCount { + return fmt.Errorf("expected keys %d, got %d", rs.keyExpectedCount, rs.keysAdded) + } + var err error + if rs.indexF, err = os.Create(rs.tmpFilePath); err != nil { + return fmt.Errorf("create index file %s: %w", rs.indexFile, err) + } + defer rs.indexF.Close() + rs.indexW = bufio.NewWriterSize(rs.indexF, etl.BufIOSize) + // Write minimal app-specific dataID in this index file + binary.BigEndian.PutUint64(rs.numBuf[:], rs.baseDataID) + if _, err = rs.indexW.Write(rs.numBuf[:]); err != nil { + return fmt.Errorf("write number of keys: %w", err) + } + + // Write number of keys + binary.BigEndian.PutUint64(rs.numBuf[:], rs.keysAdded) + if _, err = rs.indexW.Write(rs.numBuf[:]); err != nil { + return fmt.Errorf("write number of keys: %w", err) + } + // Write number of bytes per index record + rs.bytesPerRec = common.BitLenToByteLen(bits.Len64(rs.maxOffset)) + if err = rs.indexW.WriteByte(byte(rs.bytesPerRec)); err != nil { + return fmt.Errorf("write bytes per record: %w", err) + } + + rs.currentBucketIdx = math.MaxUint64 // To make sure 0 bucket is detected + defer rs.bucketCollector.Close() + if rs.lvl < log.LvlTrace { + log.Log(rs.lvl, "[index] calculating", "file", rs.indexFileName) + } + if err := rs.bucketCollector.Load(nil, "", rs.loadFuncBucket, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + if len(rs.currentBucket) > 0 { + if err := rs.recsplitCurrentBucket(); err != nil { + return err + } + } + + if assert.Enable { + rs.indexW.Flush() + rs.indexF.Seek(0, 0) + b, _ := io.ReadAll(rs.indexF) + if len(b) != 9+int(rs.keysAdded)*rs.bytesPerRec { + panic(fmt.Errorf("expected: %d, got: %d; rs.keysAdded=%d, rs.bytesPerRec=%d, %s", 9+int(rs.keysAdded)*rs.bytesPerRec, len(b), rs.keysAdded, rs.bytesPerRec, rs.indexFile)) + } + } + if rs.lvl < log.LvlTrace { + log.Log(rs.lvl, "[index] write", "file", rs.indexFileName) + } + if rs.enums { + rs.offsetEf = eliasfano32.NewEliasFano(rs.keysAdded, rs.maxOffset) + defer rs.offsetCollector.Close() + if err := rs.offsetCollector.Load(nil, "", rs.loadFuncOffset, etl.TransformArgs{}); err != nil { + return err + } + rs.offsetEf.Build() + } + rs.gr.appendFixed(1, 1) // Sentinel (avoids checking for parts of size 1) + // Construct Elias Fano index + rs.ef.Build(rs.bucketSizeAcc, rs.bucketPosAcc) + rs.built = true + + // Write out bucket count, bucketSize, leafSize + binary.BigEndian.PutUint64(rs.numBuf[:], rs.bucketCount) + if _, err := rs.indexW.Write(rs.numBuf[:8]); err != nil { + return fmt.Errorf("writing bucketCount: %w", err) + } + binary.BigEndian.PutUint16(rs.numBuf[:], uint16(rs.bucketSize)) + if _, err := rs.indexW.Write(rs.numBuf[:2]); err != nil { + return fmt.Errorf("writing bucketSize: %w", err) + } + binary.BigEndian.PutUint16(rs.numBuf[:], rs.leafSize) + if _, err := rs.indexW.Write(rs.numBuf[:2]); err != nil { + return fmt.Errorf("writing leafSize: %w", err) + } + // Write out salt + binary.BigEndian.PutUint32(rs.numBuf[:], rs.salt) + if _, err := rs.indexW.Write(rs.numBuf[:4]); err != nil { + return fmt.Errorf("writing salt: %w", err) + } + // Write out start seeds + if err := rs.indexW.WriteByte(byte(len(rs.startSeed))); err != nil { + return fmt.Errorf("writing len of start seeds: %w", err) + } + for _, s := range rs.startSeed { + binary.BigEndian.PutUint64(rs.numBuf[:], s) + if _, err := rs.indexW.Write(rs.numBuf[:8]); err != nil { + return fmt.Errorf("writing start seed: %w", err) + } + } + + if rs.enums { + if err := rs.indexW.WriteByte(1); err != nil { + return fmt.Errorf("writing enums = true: %w", err) + } + } else { + if err := rs.indexW.WriteByte(0); err != nil { + return fmt.Errorf("writing enums = true: %w", err) + } + } + if rs.enums { + // Write out elias fano for offsets + if err := rs.offsetEf.Write(rs.indexW); err != nil { + return fmt.Errorf("writing elias fano for offsets: %w", err) + } + } + // Write out the size of golomb rice params + binary.BigEndian.PutUint16(rs.numBuf[:], uint16(len(rs.golombRice))) + if _, err := rs.indexW.Write(rs.numBuf[:4]); err != nil { + return fmt.Errorf("writing golomb rice param size: %w", err) + } + // Write out golomb rice + if err := rs.gr.Write(rs.indexW); err != nil { + return fmt.Errorf("writing golomb rice: %w", err) + } + // Write out elias fano + if err := rs.ef.Write(rs.indexW); err != nil { + return fmt.Errorf("writing elias fano: %w", err) + } + + if err = rs.indexW.Flush(); err != nil { + return err + } + if err = rs.fsync(); err != nil { + return err + } + if err = rs.indexF.Close(); err != nil { + return err + } + if err = os.Rename(rs.tmpFilePath, rs.indexFile); err != nil { + return err + } + return nil +} + +func (rs *RecSplit) DisableFsync() { rs.noFsync = true } + +// Fsync - other processes/goroutines must see only "fully-complete" (valid) files. No partial-writes. +// To achieve it: write to .tmp file then `rename` when file is ready. +// Machine may power-off right after `rename` - it means `fsync` must be before `rename` +func (rs *RecSplit) fsync() error { + if rs.noFsync { + return nil + } + if err := rs.indexF.Sync(); err != nil { + rs.logger.Warn("couldn't fsync", "err", err, "file", rs.tmpFilePath) + return err + } + return nil +} + +// Stats returns the size of golomb rice encoding and ellias fano encoding +func (rs *RecSplit) Stats() (int, int) { + return len(rs.gr.Data()), len(rs.ef.Data()) +} + +// Collision returns true if there was a collision detected during mapping of keys +// into 64-bit values +// RecSplit needs to be reset, re-populated with keys, and rebuilt +func (rs *RecSplit) Collision() bool { + return rs.collision +} diff --git a/erigon-lib/recsplit/recsplit_fuzz_test.go b/erigon-lib/recsplit/recsplit_fuzz_test.go new file mode 100644 index 00000000000..ef2f58b9dc0 --- /dev/null +++ b/erigon-lib/recsplit/recsplit_fuzz_test.go @@ -0,0 +1,97 @@ +//go:build !nofuzz + +/* +Copyright 2021 Erigon contributors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package recsplit + +import ( + "context" + "path/filepath" + "testing" + + "github.com/ledgerwatch/log/v3" +) + +// go test -trimpath -v -fuzz=FuzzRecSplit -fuzztime=10s ./recsplit + +func FuzzRecSplit(f *testing.F) { + logger := log.New() + f.Add(2, []byte("1stkey2ndkey")) + f.Fuzz(func(t *testing.T, count int, in []byte) { + if count < 1 { + t.Skip() + } + if len(in) < count { + t.Skip() + } + + // split in into count keys + dups := make(map[string]struct{}) + // Length of one key + l := (len(in) + count - 1) / count + var i int + for i = 0; i < len(in)-l; i += l { + dups[string(in[i:i+l])] = struct{}{} + } + dups[string(in[i:])] = struct{}{} + if len(dups) != count { + t.Skip() + } + tmpDir := t.TempDir() + indexFile := filepath.Join(tmpDir, "index") + rs, err := NewRecSplit(RecSplitArgs{ + KeyCount: count, + Enums: true, + BucketSize: 10, + Salt: 0, + TmpDir: tmpDir, + IndexFile: indexFile, + LeafSize: 8, + }, logger) + if err != nil { + t.Fatal(err) + } + var off uint64 + for i = 0; i < len(in)-l; i += l { + if err := rs.AddKey(in[i:i+l], off); err != nil { + t.Fatal(err) + } + off++ + } + if err := rs.AddKey(in[i:], off); err != nil { + t.Fatal(err) + } + if err = rs.Build(context.Background()); err != nil { + t.Fatal(err) + } + // Check that there is a bijection + idx := MustOpen(indexFile) + bitCount := (count + 63) / 64 + bits := make([]uint64, bitCount) + reader := NewIndexReader(idx) + for i = 0; i < len(in)-l; i += l { + off = reader.Lookup(in[i : i+l]) + if int(off) >= count { + t.Errorf("off %d >= count %d", off, count) + } + mask := uint64(1) << (off & 63) + if bits[off>>6]&mask != 0 { + t.Fatalf("no bijection count=%d, i=%d", count, i/l) + } + bits[off>>6] |= mask + } + }) +} diff --git a/erigon-lib/recsplit/recsplit_test.go b/erigon-lib/recsplit/recsplit_test.go new file mode 100644 index 00000000000..ab4f818ebb1 --- /dev/null +++ b/erigon-lib/recsplit/recsplit_test.go @@ -0,0 +1,175 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package recsplit + +import ( + "context" + "fmt" + "path/filepath" + "testing" + + "github.com/ledgerwatch/log/v3" +) + +func TestRecSplit2(t *testing.T) { + logger := log.New() + tmpDir := t.TempDir() + rs, err := NewRecSplit(RecSplitArgs{ + KeyCount: 2, + BucketSize: 10, + Salt: 0, + TmpDir: tmpDir, + IndexFile: filepath.Join(tmpDir, "index"), + LeafSize: 8, + }, logger) + if err != nil { + t.Fatal(err) + } + if err = rs.AddKey([]byte("first_key"), 0); err != nil { + t.Error(err) + } + if err = rs.Build(context.Background()); err == nil { + t.Errorf("test is expected to fail, too few keys added") + } + if err = rs.AddKey([]byte("second_key"), 0); err != nil { + t.Error(err) + } + if err = rs.Build(context.Background()); err != nil { + t.Error(err) + } + if err = rs.Build(context.Background()); err == nil { + t.Errorf("test is expected to fail, hash gunction was built already") + } + if err = rs.AddKey([]byte("key_to_fail"), 0); err == nil { + t.Errorf("test is expected to fail, hash function was built") + } +} + +func TestRecSplitDuplicate(t *testing.T) { + logger := log.New() + tmpDir := t.TempDir() + rs, err := NewRecSplit(RecSplitArgs{ + KeyCount: 2, + BucketSize: 10, + Salt: 0, + TmpDir: tmpDir, + IndexFile: filepath.Join(tmpDir, "index"), + LeafSize: 8, + }, logger) + if err != nil { + t.Fatal(err) + } + if err := rs.AddKey([]byte("first_key"), 0); err != nil { + t.Error(err) + } + if err := rs.AddKey([]byte("first_key"), 0); err != nil { + t.Error(err) + } + if err := rs.Build(context.Background()); err == nil { + t.Errorf("test is expected to fail, duplicate key") + } +} + +func TestRecSplitLeafSizeTooLarge(t *testing.T) { + logger := log.New() + tmpDir := t.TempDir() + _, err := NewRecSplit(RecSplitArgs{ + KeyCount: 2, + BucketSize: 10, + Salt: 0, + TmpDir: tmpDir, + IndexFile: filepath.Join(tmpDir, "index"), + LeafSize: 64, + }, logger) + if err == nil { + t.Errorf("test is expected to fail, leaf size too large") + } +} + +func TestIndexLookup(t *testing.T) { + logger := log.New() + tmpDir := t.TempDir() + indexFile := filepath.Join(tmpDir, "index") + rs, err := NewRecSplit(RecSplitArgs{ + KeyCount: 100, + BucketSize: 10, + Salt: 0, + TmpDir: tmpDir, + IndexFile: indexFile, + LeafSize: 8, + }, logger) + if err != nil { + t.Fatal(err) + } + for i := 0; i < 100; i++ { + if err = rs.AddKey([]byte(fmt.Sprintf("key %d", i)), uint64(i*17)); err != nil { + t.Fatal(err) + } + } + if err := rs.Build(context.Background()); err != nil { + t.Fatal(err) + } + idx := MustOpen(indexFile) + defer idx.Close() + for i := 0; i < 100; i++ { + reader := NewIndexReader(idx) + offset := reader.Lookup([]byte(fmt.Sprintf("key %d", i))) + if offset != uint64(i*17) { + t.Errorf("expected offset: %d, looked up: %d", i*17, offset) + } + } +} + +func TestTwoLayerIndex(t *testing.T) { + logger := log.New() + tmpDir := t.TempDir() + indexFile := filepath.Join(tmpDir, "index") + rs, err := NewRecSplit(RecSplitArgs{ + KeyCount: 100, + BucketSize: 10, + Salt: 0, + TmpDir: tmpDir, + IndexFile: indexFile, + LeafSize: 8, + Enums: true, + }, logger) + if err != nil { + t.Fatal(err) + } + for i := 0; i < 100; i++ { + if err = rs.AddKey([]byte(fmt.Sprintf("key %d", i)), uint64(i*17)); err != nil { + t.Fatal(err) + } + } + if err := rs.Build(context.Background()); err != nil { + t.Fatal(err) + } + + idx := MustOpen(indexFile) + defer idx.Close() + for i := 0; i < 100; i++ { + reader := NewIndexReader(idx) + e := reader.Lookup([]byte(fmt.Sprintf("key %d", i))) + if e != uint64(i) { + t.Errorf("expected enumeration: %d, lookup up: %d", i, e) + } + offset := idx.OrdinalLookup(e) + if offset != uint64(i*17) { + t.Errorf("expected offset: %d, looked up: %d", i*17, offset) + } + } +} diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/0bb14f20865563b5504c292a005834e5e04d6094622a40844dffedb78e560eab b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/0bb14f20865563b5504c292a005834e5e04d6094622a40844dffedb78e560eab new file mode 100644 index 00000000000..78bad378a3a --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/0bb14f20865563b5504c292a005834e5e04d6094622a40844dffedb78e560eab @@ -0,0 +1,3 @@ +go test fuzz v1 +int(21) +[]byte("\xcfE*\xf9\x8e\x89\xee\x18q\xc2\xe9]L'\x199\xbb\xfd\xc7ը\x16\xd5\rՂ_\x15\az +\xc6") diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/13f42b07eca1d28428c3ea36e8ec409764afc9351e3f09e4d91b80626067ea59 b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/13f42b07eca1d28428c3ea36e8ec409764afc9351e3f09e4d91b80626067ea59 new file mode 100644 index 00000000000..a5ae83cf888 --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/13f42b07eca1d28428c3ea36e8ec409764afc9351e3f09e4d91b80626067ea59 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(3) +[]byte("\x1bV\xfa}dd\xc2\xfb\x00\xeb\x11\x11\x11\x11\x11L\x10\x11\x11\x11\x11\x11\x11\a\a\a\a\a\a\xe8\x00\x80\x0e\xb1\x05\xb1\xac\xb1\xb1\x11\x11\x11\x11\x11\xb1d\x13\xf3\x03\xe8\xfe\x11\x11\x11\x11\x11\x11\x11 \x00\x00\x00\x80\xeb\x11\x11\x11") diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/363f36b97269af400b867a8b03e9eff1eeedb2ceb2dfe516a4cef4a74b309b5e b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/363f36b97269af400b867a8b03e9eff1eeedb2ceb2dfe516a4cef4a74b309b5e new file mode 100644 index 00000000000..757ecf5331e --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/363f36b97269af400b867a8b03e9eff1eeedb2ceb2dfe516a4cef4a74b309b5e @@ -0,0 +1,3 @@ +go test fuzz v1 +int(-2) +[]byte("1stkey2ndkek") diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/38b6ae40b3e89854b01ee0627bdb24c634f32809c12ddca378e1d61c617d9649 b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/38b6ae40b3e89854b01ee0627bdb24c634f32809c12ddca378e1d61c617d9649 new file mode 100644 index 00000000000..6e43f5d599d --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/38b6ae40b3e89854b01ee0627bdb24c634f32809c12ddca378e1d61c617d9649 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(222) +[]byte("\x98\xf9\xc2\x10\x00\xc2\xc2\xc2\xc2\xc2\a\x05\xf6mٿ\xca\xf5}M\xc3`4V\xad\xfa3\x87\xecC3c\x8dSa<\xe8.M\xcfw\xef\xf2\x95\xe9\xf88\xa0\x9b\x00\x01\xe5jjq\"\xed[DC\xd8\u007f\xf8N\x05\x90a\xff\xff\xa1\xb9\x02\xb63\xce\xce\xce\xce\xce\xce\xce\xce\x05\xa2\x02ٯ\x05-G\xa7G\xf4B\xac-\xe0m\x9a\x9d\xd9 /\x84\a\x9ch\xa7\xab˼z\x93\xc1X\x1bW\xbcž'\x00k \xdb͢6\x95K?on\xcc[\xd2\x1a\x8a\xafp\xa2\xa61{X\x84|||||||\v\xe7\xa4\xf1\xa9\x19\xe4\x11\x19]\xf1#+E\x8c\xe6\xd7999EF\x15\xd6\xef)\xdf\x12\x9e\xcc\fOrC;4n`\xe7\x83\x1d1\xd4QH\xcfH\x92\x18\xe9d\x00\x00\x00\xb9\xea\xbdDŽ\xfd\x8f\xa4\x92\xa6\xe2ҫ\xe01\xa0{\x98\xf9ª\xbe\xf9\x8dq\x93\xf7\x13\x1a\xc10\x13\xccm\xbeP\x80\xcdʿ\x96s.\xf9w\xff\xc4%\xae\a\x9c\x11f\x1e\xf9\xaf\xe1l\x95qu\x82i\xa1\x89E=\xa6\xe8\xb2\rC\xc3\xed2\x01\xf3,2\x00\x01\x91\x13z\xbfM}\vA\xa0-\xef\xecy'm\xfaE\xc8\x01\xf2y\xa0\xb2Oϯƍ\x96\xac\xf0\xe9\xc6\xd8C\x13\xdfn\xe5}\xcfG\xd4k\xd07upe\x1à\xf0jE%\xac\xaf\x14\xa9\xb5\x83Ѡ\x974hO\x91T\x1e\xbc\xd3\x18G\xcfmz\"\x1bL\xb1\x86\xe2\x9ccB=\x052h\xb2\x15/4\x1bᾒ\xd2\xed\x00\x10N@e\x1b'\xa3\xaḏЌ\xe2v뻬D\x92\xf0H}G\x02øX\xba\x8aב\x80\xe2\xd0L\x9c\xf86\xe72\xd0Q\rJ\xae\xd2ˋ<\x83\x8cF\xbfǀ\xa4\xf7\r\x91\xb1\x16N!\x03\x02\xab\r\xe7\xf9_\x91\xba\xa3$\\\x99b\x92\x05\x02oL\xc1J\xd1[V\xbb\xcaV\x13\xfd\xd9Z\xdb\x1cZ\xcf\xc8\xe5\x1c\xa9\x8f8z<\u007fu\xb5\x970=\xb2\xb9\x1e&\x10 \xebo\x89Bn\xc6}\xf6\x94\xea\xd9\x19닜\xb9Jަ{\xd2h\xe3\xeeQ\xe5撽\b\xb6B|[\xee\xc4zv\xdd.\xa6\xf0\x98$\xb22\"\x0f\x16cw\xda$#@\x1b\xd8\xc6m\xf6\xbde\x10\xa0~\xce\xce\x05\xa2\x02\xd9e\x14ְ\xe7S\xa5\x98\xab\xc6\xdee\x95\x98\xa4\x84\xfd\x8fQ\x94/\xe87\xf6\xa3W\xa9\xf8\xe8\xa4-`ߺ\xcdڷ\xd0\x19\xa7\xe0\x18k\x1d\xffo\xb2\xfb\xa1\xf2\xe4\xb1\xc3V\x0f\x98K\x037\xa7\xff:\xc0<\x1b\x95\xef\x8av\x05\xe1S\xa5_k\x15R\x82p\xe8\xcf\xcf\xdb&\x96\x15\xd6\v\xe7\xa4\xf1\xa9\x19\xe4\x11\x19]\xf1#+E\x8c\xe6\xd7L9\xb7\xa5F\x15\xba\xec\xc4\x06^\x17\xd0\xdb&\xed,\x8e3\xd45\xa3\x84\xc1ԟ\xb5b\xe2\xab\x03I\x16\xbbX\x12=\x8d\x03\xa17R\xa3\xaee\xe9\xe0\x11\x8c\f\xd1\xcaն\xb4\xe1\"\xad\xb3M\xf2\xa4^\x8c\xc5\x13W\xbc\x1cF\xd4zi\x9d\xaf\xea\x0ej\xd0\xd3.\xde=\x95\xaaOӓ:\xed\x00\x80[p\x05\xc2d\xa3\xd62\xb7\x04\xa9\x03`\xc4\u0380P\xa2\xc7ڛ\x90\xf1\x06dY\xcb8ӑ\xc9\xd0E{J6\x8b<\x12h}˾\xafv\xaen\xcd:\xb2X\xaaj\xda\x18\xab\x14\x10\xe9\xd7D\x13V\xcaۈ\xd2\xdb3\x16f\x8bc\b=&\xf84\xb6\x96\xd25\x99\xe4\xd3\xd0b\x18\xa3̨\x11\xb0\x87\x04/\xbb\xe4J,S\xfe\x9fw\U000fc03e\a\x05\xf6mٿ\xca\xf5}M\xc3`4V\xad\xfa3\x87\xecC3c\x8dSa<\xa6\xa6\xa6I\xff'\x98\x0f#\xa185\xe5\xdb\x1cZ\xcf\xc8\xe5\xc71\x1f\x8e\xad\x0e\xaa\x1e\xd7c\x8a\x82\xe0\xea\xdb\xd94?B\x10\x15\xab\xa7\xcc9\xaf\x11\xe1\x957\xa3\x8fS-,6\xf1\x1c\x89\xad\t\xadmz\xb7q\x834\x10\xe9\xd7D\x13VW\x819\x8d\xdbLDB\xb4\xfd8\x81\x96+\x8a5כ\x84\xce\xe8J\xc1$m\xc8\b!:\x98D\x18\xf1\x0f\xc3\x15\xe9ҙ'p\xbb\xd9F~\xe9Ne\x10\x15\xaf\u007f\xff\xff\xffk \xb7\x9e\x95\xe2cz\xe6\xce\x18\x1bt\xaa\x19]\xf1#+Ew@t\x86\x9d\x97\xa5\xbd+p\x80\xde\x1e\x9a\xd39\xee\xe8\xf14\xf3\ttD\x15\x8c\x00\x00\x01\x00j\xc2\xc6\xd3N6/\x10/####/\x03\x10\x00>u\x00\xe3\x15") diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/61bad6c11050935c60bf7f0d15e40fbb20ec1a70dab26f62bf92a49706920440 b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/61bad6c11050935c60bf7f0d15e40fbb20ec1a70dab26f62bf92a49706920440 new file mode 100644 index 00000000000..4f8a952ff19 --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/61bad6c11050935c60bf7f0d15e40fbb20ec1a70dab26f62bf92a49706920440 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(215) +[]byte("\xb3\x1f\x06\xe0 P\xa7\xea\xea\xceꎓ\x93\x00\x00\x00@\xea\xea\xeeo\xea\xea\xea\xea\x93\xeb\xeavvvZ\x93\xf0\xb3\x93|\xee\x93\xea\x93\xeaa\xb8\x11\xea78\x03\xce\xea\x936\xea\x19\xa8\x93\x14?<\xb8\x00\xc46\xff\xe0}\xea\x97j\x93\xf36\x92\xea˓0\x93\x93Gn\xea\x0fꏃl\x96\xde\xfe\x93\x93\x05<\x96\x93\x93\xeaّ\xe4\"\x93\x00\x93l\x91\x93\x12\xea\xea\xff\xff\x80\x00\xea\x8c~~~~\x00\x15\x12\xea\xa3j\xa93\x83Z\x93!\xd0\v &\x81\x93\xb1h\x16\xe5n\vᓽ\xae\x93\x89\xbb\xcfTS\xea\n\x1d\x82\x93Vꓓ\xea\x17%8\x93\xa9,\xdej\xea1\xa2\x1ec\x93\xeac\xe2\r\b\x9e)\x93\x93\x92\x00u\x0ewM\xd5v\x14Z\x00\x1a\xeav\x8fLeRRRR\xc0\x93\x93\x93\x9cRFuў\xde|#\x93\xfb\xaa\x90\x9f\xd5\u007f\xff\x00@\x93\xe4z^S\x93\x933zT^\xe4d\x93\xe4\xf0\x04\x93\x05\xb6Q\x81\xa3\xe4\x90\xe3\xff\x9aOF\x17\x93j\xc3--$\xfc\xc4\xc5c}\xb45\xdc\xea\xea\x12u\xffV_Ⓠ\x9b\xea\x93\xf4\x00\xea\uf4d3\xe0g\x98\x1e\x01\x00b,b\xd2e\x9e\xf8\xf8\xf8\xf8\x93\xee\x80#R\x01:\x93\xac\xf2\xeaAH\x96v\u007f\xae\x00\x93\xfb\"Ѐ\xe0\xea\xd0\x00\xf0Փ\x06\xe4\xfe\x93\xb3\x93\xea\x03u\ue4d3Gf{\x032\x93\xc3@\x89ʓ\xb8U\x00\xc3\n\x8d,\xeb\x8e듎;\x93|\xb9g\xe4h\x93\xa5\x00\x85ϸ\xd2\u05f8)\xda\v\xf5\x1f\v\xddQ=\xf3\x04\x93\x93\xbf\xaf7\xeb\x93\xea\x97z\x86c\x18\x18\x18\x93\x93\xa0P\xff\x1a?sq\xf3\x93\x932\xd32fO\x91\x00\x00\x00\x10\x80$\x02\xa0\xc0\x93\x93\x93\x9c\xa6\x93v\x93\x93\x93\xdev\x0e\"^K\x00\x94\xf1\n\u007f\xf0\x18\xea7\x92a\x05ɓ;\x93\x9e\"\xec\x00\x00\x00@쓓\xb5\x93\x93\xb0\x93\x1b^\xb0\x00\xaf\x16\x19\x9f\xbc\xa5`\xf2\xea\xff\f\xc577\x01\x8e\x17|\xb6ep\xea5\x13\x98\xb3&\xd7\xeax'$\xa0\x92\u007f\xff\xff\u007f\xff\x01\x9c\xea\xff\u007f\xca\x00\x90\xa96\x00\x97\xb3\x13\x93\x92\x80*ۀ+\x93K\x1eIZ\xeaБ+\xcdW\xf9\x1e\x1b\x1b\x1b3\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\xfa]\x93\xeac\x82\xeb̓?\n\x91\ab\xf8%\xf6\x91'\xb8\x93r\xeaDŽ\x93{-\x00\xf0'\x118\xb0\x93\x15\x9c]\x1a\x80\x86\x86\x86\x86\x86\x86\x86\x86\rpzF{\x93\xa6\xeb\xc4?6s\xea}\x97U\n^\xeb\x12\x9e\x93|\x868\xf9\xd5\x00\x8f'ړ#P\x8d\x1b,A\xa9ӓ\x93F\xf0\xea\t\xea\xb7\a\xea\xdf=ۓ\xea\r\x1a\xea\xea\xcb\xe4\xean\x15\x93\x93\xff\xea\x05b\x91\x93\x00\xe4\"ꪓ\xee\x19z&&v\xfb\u007f\x932\u007f\xd3\x05\xe0l~\xea\xe7\xff\xea`\x88\xfb\x93\x93\xebJ\x03\x15X|\xf3\xafw\x93\xb0#\xa4f\xea\x10\x9b\xa6\xd9\xce@vÒA)#\xd7ܼ\x95\x9c\x1ci\x17\xfc\xea\xee\x0e\x13/\x00\x00\x10\x00\xd5S\xb5\xd7\xd4#\x93\xe5\x815G\b\xa4<\x93\xa1\x000z\x007ʩ\xea\x1a\x0ezj\xea(\x933\xa6\x93X\x93!>\x93\x14\x00\xea\xe2\x0e\x93\xe4\x87d\x93U\x80\x97\x93\x8e\x93c\x93K\xc6\xcc\xeaZ\xedJ˩\x9dݒ\x93\x9d6=y\xea\x00\nd\xd3\x1f\x93IZ\x82\u0604v}\xde\r\\\bD\xe2\xea\x93Z\x93}\xe9\xe5|\x04C\x92h\x93\xa5\x00\xda\x1b\xf5\x1f%o\u007fLŞ\"\v\xddQ=\xf3\x04\x93\x93\xea\x1a\x93~\xcf\xf1\xed\xea\xb9\xfb\x93\xc3\xcb:\xea\xf5~K\xd0g7\xa9\xe8\xfe\x93\x93\xce\xea1\xba\xfd\xb2\xea\a2\xea\xea\x1e\x91\xea\u007f\x00\xb5\xea\xc2ē\xfa\x89\x800\xad7\xb3\xfaZڅ\x85\x85\x85\xe4#\xaa\x86&d\x93\xb2a\xea\xf9\xf9\xf9\x02apMv8\x93Vj\xa93\x83Z\x93!Г\x1e\xad\xa6\x18X\xea\xeap\xa9\x92\x93\x9d6\x93햓\xdd\xea\xea\x93\xear\xab\xff\xff@~\xff\x89]\x17A\xa9\vr\x93\xf8&\x1d\x92\x9f\xdd\x00\x80\x938\x00\x88\xd40e\xea\x8e\xeb\xd4\u007fq\u07bd\xb2\x83\x9f\x82E\xd4\xf9~7\x18\x89\x939\u007f\x00GƠ\xf4/\x92l\x18\x80\ndtw\x9a\u007f\xc2Yҳ4\xb8`\x93*\xea\t\x9a\x93\x83\xea\xa4\x01CߓyD\xea\xf1\xeaF\x93\xc0Kv]\xea\xea\x93\x1b\x1b\x1b\x1b \x1b\x1b\xfa8\x00\x88]\x96o\xa4\xb2\x98\vY \x02L\x93{\xb6\x93哢\x00j\x93\x91\xaa>\x19\x02{\x15\x1b&\x93ݓ\x93\xff\xb6!X\xa3\xc5\aM\n\x03ի\x00\x1a\xae\x93\\쓓\xb5Ǔ\xb0\x93\x1b^\xb0\x00\xaf\x16\x19\x93\xbc\xea\x93{\x9b\x9c\x9a\x93\xf9\x93\xearv`I\x93\x93~\x80#c\xf5K\xa6U\n^\xeb\x12\x9e\x93ꓓ\x93\x93\x93\x93\x93||h\x80\xff\xff\x93\xea|\\|||\x81|\x97\xb3***|Z\x00\x00\x00\x93\x93\x93\x93\x93\x93\x93\x9b\x93\x93\x93\x93|\x13\x93\x93\x93\x93\x93\xc3@6") diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/87f7c74ee952d2ef8af8df250b939c4a65677eff54de2393c8f2b896e250813f b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/87f7c74ee952d2ef8af8df250b939c4a65677eff54de2393c8f2b896e250813f new file mode 100644 index 00000000000..73732315088 --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/87f7c74ee952d2ef8af8df250b939c4a65677eff54de2393c8f2b896e250813f @@ -0,0 +1,3 @@ +go test fuzz v1 +int(41) +[]byte("gVVVVV\x00@VV\x18#\x18\x18\xff\xe3\xe3\xe3\xe3\xd1\xe3\xe3\xff\x00\x00VVAVVVwV[VV\x00\x18VV\xd4\xc0\xc0\xa4\xab; ") diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/8dcbe8c6685bcbfb81a3a3e5e8eb005af3edb0f0bf2f653f0430942379c90e7c b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/8dcbe8c6685bcbfb81a3a3e5e8eb005af3edb0f0bf2f653f0430942379c90e7c new file mode 100644 index 00000000000..b8e124b34e4 --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/8dcbe8c6685bcbfb81a3a3e5e8eb005af3edb0f0bf2f653f0430942379c90e7c @@ -0,0 +1,3 @@ +go test fuzz v1 +int(22) +[]byte("\x00y\x00B\x00\xe8\xe8\xbfZ$M\xb0\x11^\x11\xf7\x1f\v|\xff˿\xfa迧S\x00$\x8a\x80888\x86j\xbd\xf2\x1b\x15@R\xa6\x87\xe4\xf0\u007fJ8\a\xf3EE") diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/93906988de1687555e538207931e6022243d7a38d6b2926e04c866dbb8318d54 b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/93906988de1687555e538207931e6022243d7a38d6b2926e04c866dbb8318d54 new file mode 100644 index 00000000000..63d2b6fdf40 --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/93906988de1687555e538207931e6022243d7a38d6b2926e04c866dbb8318d54 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(11) +[]byte("\xc7\xd94?B4\x10\xe9\x05\xf6mٿ\xca\xf5}\xb4\xfd8\x81\x96+\x8a5כ\x84\xce\xe8J\xc1$m\xc8\b!:\x98D\x18\xf1\x0f\xc3\x15\xe9ҙ'p\xbb\xd9F\xc2\xc6\xd3N6/\x10/####/") diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/a62376aebd0437e22ed6eace28704d5225ae77b615952d99e85accd632d416d2 b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/a62376aebd0437e22ed6eace28704d5225ae77b615952d99e85accd632d416d2 new file mode 100644 index 00000000000..3b98d1cbac9 --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/a62376aebd0437e22ed6eace28704d5225ae77b615952d99e85accd632d416d2 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(13) +[]byte("@\x00\xfc0jj\xff\x00\t\t\xff0j\xff\x00\td\t\xff\x00\x00") diff --git a/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/dc722115a839e9b801755d0efbe86e6d9c9199e2ec36d0a4ee4f67f31aab1519 b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/dc722115a839e9b801755d0efbe86e6d9c9199e2ec36d0a4ee4f67f31aab1519 new file mode 100644 index 00000000000..3bf6debf918 --- /dev/null +++ b/erigon-lib/recsplit/testdata/fuzz/FuzzRecSplit/dc722115a839e9b801755d0efbe86e6d9c9199e2ec36d0a4ee4f67f31aab1519 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(24) +[]byte("I\x00U\xc0\xc0\x01\xc0\xff\xad\x00[\x1cE\x80\u007f5%V\x94l\f/\xb5\xbb\xde\xde8/// \x18////\x8c\x8c\xfa\xfa\xfa\xfa/\x00/@\x12\x0fo\x1bB\xd1\xe6ʵ\xb5\xb5//\xd9\xd9\x15p\xff\xff\x05*//\xa7\xa7\xa7\xff\xa7\x00///\x1f\xf5\xa9//./\x93\x93\x93\x93\x93\x93\x93\x93//\u007f\xde\xde\xe2\xde\xde\xde/// //\x8e/\xb8/@/\x05\xdb\xdb\xd8\t\t\t\t !\x9c\x01=\x80\xc8\x01\n\x89\xff=\x00\x00\x02\x00Dssssssssssssssssssssssssssssssssssssssss\x16\x16\x16\x16\x00\x10\xb1`ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssspssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x9asssssssssssssssssssssssssssssssssssssssssssssssssssssss\x00\x01sssssssssssssssssssssssssssssscccccccccccccccCssssssssssssssssssssssssssssssssssssssssssssss\x80sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x05\x05q\x13\u0081ss\xda\xda\xda\xda\xda\xda\xdassssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x8dsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xf5ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\u007f\xde\xde\xe2\xde\x00\x10\x00\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x80ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x80sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss3ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssd\x00sjssssssssssssssssssssssssss\x10sssssssss\x1f\x1f\x1fssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x8cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xa7sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xff\xff\x80\x00ssssssssssssssssssssssssssssssssssssYsssssssssssssssssssssssssssssssssssssssssss\x80\x00\x00\x00ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssszsssssssssssss\xc1\x17\x11Y\xd0\xcbsss\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14ssssssssssssssssssssss\x00\x00\x00\x01sssss\xbb\xbbs\xbbss\xbbssssssssssss\x10sssssssssssss\xa0sssssssssssssssssssssssssssssssssssss\xcd?\xe8c\x02sssmssssssssss\x80\xc8\x01\n\x89sss\x9bssssssssssssssssssssssssssssssssssssssssssssssss\x88\x05\xea/sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrsssssssssssssssssssssssssssssssss[sssssssss\xcc\xcc\xcc\xcc\xcc\xccssssssssmssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x95sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x05\xff\xff\x05ssssssssssssssss\x8es\x81//x\x80\x00\x00sbssssssssssssssssssssssF\xfbd\xb9sssXsssssssssssssksssssssssssssssss\x00\x00\x01\x00s@ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xe0\xc9(DK@\xe0\xeasssssssssssssssssssssssssssssss\x91sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssE\xaa\xff\xd1&jXssssssssssss\xff\xffsssszz\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssqsssssssssssss]]l\xf9ssssssss\xa0\xa0\xa0\xa0\xa0\xa0\xa0ssssssssssssssssssssssssssssssssssssszzssssssssssssssssssssssssssssss\u007fssssssssssssssssssssssssssssssssssssssssssssss\x81sssssssssssssssssssssssssssssssssssssssssssssssssss衵\x8d\x10\xffsSss\x10\x10\x10\x10ssssssssssssssssssssssssssss\x00\x01\x00\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x00\x00\x10\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8csssssssssssssssssssssssssssssssssssssssssssssssssssss\xaasssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssswssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssD\x05]]]]]ۀd-\n\n\x05\xb5\x02\x00\x84\xad\xf8\x04\x1f\t\t\xa91\x00\xefzzsss\u007f?\xf9\x91\x91\x91\x91\x91S\x1d\x05\x05q\x13\xc2sssssss\xd1).\xde.hhh\x17 h\x86hh\x02(\x8d\v\xc0\x1e\xbd\\\x86\xff\xb1:\xff\xfd\u007f\xffF\u007f\x98\xb8/F\x02\x00/i\xbd\xbd\xbd\x8e\xbd\n\n\x05\xb5\xb5\x02\x00\u007f\xbd\xbd\x10\x00\x80d\xe4/\x04\xf0\xf0\xf0\xf0\xf0\x00\x00\x10\x00m$\x8dE@\x00\xbfV \x00\x0e\x0e\x0e\xdb//\x00\x00\x00\u007fE///////\xff/\x02/\x00\x10//\x10\x000///////\n//\xff/P///&\x01\x12:\a#\x97\xf8\x82\x82\x82\x01\x00\x00//:\x11\x00\x00\x00\xdb\xe4\x8d\xed\x1c/L/d\x00///////\u007f\x93\\>\xa2\x8e\x8e\xa7///?//////..yyyyyyyyii\x05\xe7\xe7\xe7\xe7\x80\x00\xff\xff\xa3\U00039e79\xb9\xb9L\x05\x02\x00\x05\x0e\xdb\xe9w\bQ\x8a\x8a\x8a//h\xce\xdb\x0e-.\x00\xff]mssss/(.\x00\x99\x00\xfft\xbdq\x10w\xfb\xc8t\xd3\x0f\xac\xcd\xcd\x00\xfb~\xff.\xd9...\xff//ssssss1\xdb\x10\xdb\xdb\xde\xfa\xf0\xf0\x94\x8e\x10\x02\x80\xff\xff\xdb\xe6\xe6\xe6Gr\xdb\xe5B\xfd\xb2\t\xf8B%\xeb\x951d3\x8c\x8c\x8c\xad\xad`y\xad\xdb\x10\xdb\xe0\xdb\xdb\xe4\x83/\x01\x00\x00\xbe\xe4\x8d\xed\x00\x00\x00\x00W\xe9\bQ\xfa\x00\x00\xfa/\xdcu\xa3\xb0\x12}O\x00\x00\x14@\x05\x05\x05d\xba\x00\x05 \u007f\u007f\u007f\u007f\u007f\u007f\u007f%V\xb0\x96 \x12l\x04/]/\u007f\x00\x00\n-?\x00\x00m\xe4PPP\x00\x80\x80//'\x00\x00\x05\x02\x00\x84@/?///...h]]\x00]]]\x01]]]]]\xdb\xd1]ssssʵ\xae\xb5\xb1\xdb\u007f\x10\x00m$\x8dE\x10\x16\x00\x16\a\x1a\x16\x16\x16\x16\x16\x00\x10\xb1`\xdbۗ\x16\x16\x00\x10\x04\x16\xe9\x00\x00\x00\u007fE//d\xba\xc0(\xfd\xd7\xc0q\xb3/\xf9\x00ssssssssssssssss\t!\x9c\x01=\x80\xc8///@DDDii\xc9G!///\x00\u007f?\xf9S1d-\xe6\n\x05\xb5\x02\x00\x84\xad\xf8\x04\x1f\t\t\xa9\x03ssssss\x10\x10\x10\xf2g\xad,\xd7\x10\x00\xab\x16-///\x00m-G\xde\xf2\xfa\x01\x00\x00\x00\xf0\x85/\x96 \x00\xff\u007fz/\x17\xdbhh{ssssss\x10h....\xff\xffm\xb2\xb2\xb2\xb2..ssssssssssss\\\xbe\xa2\x8e\x8euhh ۄ\xde\xdeR\xff\xff,\xdb") diff --git a/erigon-lib/rlp/commitment.go b/erigon-lib/rlp/commitment.go new file mode 100644 index 00000000000..c554cfe6cea --- /dev/null +++ b/erigon-lib/rlp/commitment.go @@ -0,0 +1,284 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package rlp + +import "io" + +// RLP-related utilities necessary for computing commitments for state root hash + +// generateRlpPrefixLenDouble calculates the length of RLP prefix to encode a string of bytes of length l "twice", +// meaning that it is the prefix for rlp(rlp(data)) +func generateRlpPrefixLenDouble(l int, firstByte byte) int { + if l < 2 { + // firstByte only matters when there is 1 byte to encode + if firstByte >= 0x80 { + return 2 + } + return 0 + } + if l < 55 { + return 2 + } + if l < 56 { // 2 + 1 + return 3 + } + if l < 254 { + return 4 + } + if l < 256 { + return 5 + } + if l < 65533 { + return 6 + } + if l < 65536 { + return 7 + } + return 8 +} + +func multiByteHeaderPrefixOfLen(l int) byte { + // > If a string is more than 55 bytes long, the + // > RLP encoding consists of a single byte with value 0xB7 plus the length + // > of the length of the string in binary form, followed by the length of + // > the string, followed by the string. For example, a length-1024 string + // > would be encoded as 0xB90400 followed by the string. The range of + // > the first byte is thus [0xB8, 0xBF]. + // + // see package rlp/decode.go:887 + return byte(0xB7 + l) +} + +func generateByteArrayLen(buffer []byte, pos int, l int) int { + if l < 56 { + buffer[pos] = byte(0x80 + l) + pos++ + } else if l < 256 { + // len(vn) can be encoded as 1 byte + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l) + pos++ + } else if l < 65536 { + // len(vn) is encoded as two bytes + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte(l >> 8) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } else { + // len(vn) is encoded as three bytes + buffer[pos] = multiByteHeaderPrefixOfLen(3) + pos++ + buffer[pos] = byte(l >> 16) + pos++ + buffer[pos] = byte((l >> 8) & 255) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } + return pos +} + +func generateByteArrayLenDouble(buffer []byte, pos int, l int) int { + if l < 55 { + // After first wrapping, the length will be l + 1 < 56 + buffer[pos] = byte(0x80 + l + 1) + pos++ + buffer[pos] = byte(0x80 + l) + pos++ + } else if l < 56 { + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l + 1) + pos++ + buffer[pos] = byte(0x80 + l) + pos++ + } else if l < 254 { + // After first wrapping, the length will be l + 2 < 256 + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l + 2) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l) + pos++ + } else if l < 256 { + // First wrapping is 2 bytes, second wrapping 3 bytes + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte((l + 2) >> 8) + pos++ + buffer[pos] = byte((l + 2) & 255) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l) + pos++ + } else if l < 65533 { + // Both wrappings are 3 bytes + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte((l + 3) >> 8) + pos++ + buffer[pos] = byte((l + 3) & 255) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte(l >> 8) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } else if l < 65536 { + // First wrapping is 3 bytes, second wrapping is 4 bytes + buffer[pos] = multiByteHeaderPrefixOfLen(3) + pos++ + buffer[pos] = byte((l + 3) >> 16) + pos++ + buffer[pos] = byte(((l + 3) >> 8) & 255) + pos++ + buffer[pos] = byte((l + 3) & 255) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte((l >> 8) & 255) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } else { + // Both wrappings are 4 bytes + buffer[pos] = multiByteHeaderPrefixOfLen(3) + pos++ + buffer[pos] = byte((l + 4) >> 16) + pos++ + buffer[pos] = byte(((l + 4) >> 8) & 255) + pos++ + buffer[pos] = byte((l + 4) & 255) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(3) + pos++ + buffer[pos] = byte(l >> 16) + pos++ + buffer[pos] = byte((l >> 8) & 255) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } + return pos +} + +func generateRlpPrefixLen(l int) int { + if l < 2 { + return 0 + } + if l < 56 { + return 1 + } + if l < 256 { + return 2 + } + if l < 65536 { + return 3 + } + return 4 +} + +// RlpSerializable is a value that can be double-RLP coded. +type RlpSerializable interface { + ToDoubleRLP(io.Writer, []byte) error + DoubleRLPLen() int + RawBytes() []byte +} + +type RlpSerializableBytes []byte + +func (b RlpSerializableBytes) ToDoubleRLP(w io.Writer, prefixBuf []byte) error { + return encodeBytesAsRlpToWriter(b, w, generateByteArrayLenDouble, prefixBuf) +} + +func (b RlpSerializableBytes) RawBytes() []byte { + return b +} + +func (b RlpSerializableBytes) DoubleRLPLen() int { + if len(b) < 1 { + return 0 + } + return generateRlpPrefixLenDouble(len(b), b[0]) + len(b) +} + +type RlpEncodedBytes []byte + +func (b RlpEncodedBytes) ToDoubleRLP(w io.Writer, prefixBuf []byte) error { + return encodeBytesAsRlpToWriter(b, w, generateByteArrayLen, prefixBuf) +} + +func (b RlpEncodedBytes) RawBytes() []byte { + return b +} + +func (b RlpEncodedBytes) DoubleRLPLen() int { + return generateRlpPrefixLen(len(b)) + len(b) +} + +func encodeBytesAsRlpToWriter(source []byte, w io.Writer, prefixGenFunc func([]byte, int, int) int, prefixBuf []byte) error { + // > 1 byte, write a prefix or prefixes first + if len(source) > 1 || (len(source) == 1 && source[0] >= 0x80) { + prefixLen := prefixGenFunc(prefixBuf, 0, len(source)) + + if _, err := w.Write(prefixBuf[:prefixLen]); err != nil { + return err + } + } + + _, err := w.Write(source) + return err +} + +func EncodeByteArrayAsRlp(raw []byte, w io.Writer, prefixBuf []byte) (int, error) { + err := encodeBytesAsRlpToWriter(raw, w, generateByteArrayLen, prefixBuf) + if err != nil { + return 0, err + } + return generateRlpPrefixLen(len(raw)) + len(raw), nil +} + +func GenerateStructLen(buffer []byte, l int) int { + if l < 56 { + buffer[0] = byte(192 + l) + return 1 + } + if l < 256 { + // l can be encoded as 1 byte + buffer[1] = byte(l) + buffer[0] = byte(247 + 1) + return 2 + } + if l < 65536 { + buffer[2] = byte(l & 255) + buffer[1] = byte(l >> 8) + buffer[0] = byte(247 + 2) + return 3 + } + buffer[3] = byte(l & 255) + buffer[2] = byte((l >> 8) & 255) + buffer[1] = byte(l >> 16) + buffer[0] = byte(247 + 3) + return 4 +} diff --git a/erigon-lib/rlp/encode.go b/erigon-lib/rlp/encode.go new file mode 100644 index 00000000000..693db176aae --- /dev/null +++ b/erigon-lib/rlp/encode.go @@ -0,0 +1,298 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package rlp + +import ( + "encoding/binary" + "math/bits" + + "github.com/ledgerwatch/erigon-lib/common" +) + +// General design: +// - rlp package doesn't manage memory - and Caller must ensure buffers are big enough. +// - no io.Writer, because it's incompatible with binary.BigEndian functions and Writer can't be used as temporary buffer +// +// Composition: +// - each Encode method does write to given buffer and return written len +// - each Parse accept position in payload and return new position +// +// General rules: +// - functions to calculate prefix len are fast (and pure). it's ok to call them multiple times during encoding of large object for readability. +// - rlp has 2 data types: List and String (bytes array), and low-level funcs are operate with this types. +// - but for convenience and performance - provided higher-level functions (for example for EncodeHash - for []byte of len 32) +// - functions to Parse (Decode) data - using data type as name (without any prefix): rlp.String(), rlp.List, rlp.U64(), rlp.U256() +// + +func ListPrefixLen(dataLen int) int { + if dataLen >= 56 { + return 1 + common.BitLenToByteLen(bits.Len64(uint64(dataLen))) + } + return 1 +} +func EncodeListPrefix(dataLen int, to []byte) int { + if dataLen >= 56 { + _ = to[9] + beLen := common.BitLenToByteLen(bits.Len64(uint64(dataLen))) + binary.BigEndian.PutUint64(to[1:], uint64(dataLen)) + to[8-beLen] = 247 + byte(beLen) + copy(to, to[8-beLen:9]) + return 1 + beLen + } + to[0] = 192 + byte(dataLen) + return 1 +} + +func U32Len(i uint32) int { + if i < 128 { + return 1 + } + return 1 + common.BitLenToByteLen(bits.Len32(i)) +} + +func U64Len(i uint64) int { + if i < 128 { + return 1 + } + return 1 + common.BitLenToByteLen(bits.Len64(i)) +} + +func EncodeU32(i uint32, to []byte) int { + if i == 0 { + to[0] = 128 + return 1 + } + if i < 128 { + to[0] = byte(i) // fits single byte + return 1 + } + + b := to[1:] + var l int + + // writes i to b in big endian byte order, using the least number of bytes needed to represent i. + switch { + case i < (1 << 8): + b[0] = byte(i) + l = 1 + case i < (1 << 16): + b[0] = byte(i >> 8) + b[1] = byte(i) + l = 2 + case i < (1 << 24): + b[0] = byte(i >> 16) + b[1] = byte(i >> 8) + b[2] = byte(i) + l = 3 + default: + b[0] = byte(i >> 24) + b[1] = byte(i >> 16) + b[2] = byte(i >> 8) + b[3] = byte(i) + l = 4 + } + + to[0] = 128 + byte(l) + return 1 + l +} + +func EncodeU64(i uint64, to []byte) int { + if i == 0 { + to[0] = 128 + return 1 + } + if i < 128 { + to[0] = byte(i) // fits single byte + return 1 + } + + b := to[1:] + var l int + + // writes i to b in big endian byte order, using the least number of bytes needed to represent i. + switch { + case i < (1 << 8): + b[0] = byte(i) + l = 1 + case i < (1 << 16): + b[0] = byte(i >> 8) + b[1] = byte(i) + l = 2 + case i < (1 << 24): + b[0] = byte(i >> 16) + b[1] = byte(i >> 8) + b[2] = byte(i) + l = 3 + case i < (1 << 32): + b[0] = byte(i >> 24) + b[1] = byte(i >> 16) + b[2] = byte(i >> 8) + b[3] = byte(i) + l = 4 + case i < (1 << 40): + b[0] = byte(i >> 32) + b[1] = byte(i >> 24) + b[2] = byte(i >> 16) + b[3] = byte(i >> 8) + b[4] = byte(i) + l = 5 + case i < (1 << 48): + b[0] = byte(i >> 40) + b[1] = byte(i >> 32) + b[2] = byte(i >> 24) + b[3] = byte(i >> 16) + b[4] = byte(i >> 8) + b[5] = byte(i) + l = 6 + case i < (1 << 56): + b[0] = byte(i >> 48) + b[1] = byte(i >> 40) + b[2] = byte(i >> 32) + b[3] = byte(i >> 24) + b[4] = byte(i >> 16) + b[5] = byte(i >> 8) + b[6] = byte(i) + l = 7 + default: + b[0] = byte(i >> 56) + b[1] = byte(i >> 48) + b[2] = byte(i >> 40) + b[3] = byte(i >> 32) + b[4] = byte(i >> 24) + b[5] = byte(i >> 16) + b[6] = byte(i >> 8) + b[7] = byte(i) + l = 8 + } + + to[0] = 128 + byte(l) + return 1 + l +} + +func StringLen(s []byte) int { + sLen := len(s) + switch { + case sLen >= 56: + beLen := common.BitLenToByteLen(bits.Len(uint(sLen))) + return 1 + beLen + sLen + case sLen == 0: + return 1 + case sLen == 1: + if s[0] < 128 { + return 1 + } + return 1 + sLen + default: // 1= 56: + beLen := common.BitLenToByteLen(bits.Len(uint(len(s)))) + binary.BigEndian.PutUint64(to[1:], uint64(len(s))) + _ = to[beLen+len(s)] + + to[8-beLen] = byte(beLen) + 183 + copy(to, to[8-beLen:9]) + copy(to[1+beLen:], s) + return 1 + beLen + len(s) + case len(s) == 0: + to[0] = 128 + return 1 + case len(s) == 1: + if s[0] < 128 { + to[0] = s[0] + return 1 + } + to[0] = 129 + to[1] = s[0] + return 2 + default: // 1= len(payload) { + return 0, fmt.Errorf("%w: unexpected end of payload", ErrParse) + } + if length > 0 && payload[pos] == 0 { + return 0, fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: %x", ErrParse, payload[pos:pos+length]) + } + for _, b := range payload[pos : pos+length] { + r = (r << 8) | int(b) + } + return r, nil +} + +// Prefix parses RLP Prefix from given payload at given position. It returns the offset and length of the RLP element +// as well as the indication of whether it is a list of string +func Prefix(payload []byte, pos int) (dataPos int, dataLen int, isList bool, err error) { + if pos < 0 { + return 0, 0, false, fmt.Errorf("%w: negative position not allowed", ErrParse) + } + if pos >= len(payload) { + return 0, 0, false, fmt.Errorf("%w: unexpected end of payload", ErrParse) + } + switch first := payload[pos]; { + case first < 128: + dataPos = pos + dataLen = 1 + isList = false + case first < 184: + // Otherwise, if a string is 0-55 bytes long, + // the RLP encoding consists of a single byte with value 0x80 plus the + // length of the string followed by the string. The range of the first + // byte is thus [0x80, 0xB7]. + dataPos = pos + 1 + dataLen = int(first) - 128 + isList = false + if dataLen == 1 && dataPos < len(payload) && payload[dataPos] < 128 { + err = fmt.Errorf("%w: non-canonical size information", ErrParse) + } + case first < 192: + // If a string is more than 55 bytes long, the + // RLP encoding consists of a single byte with value 0xB7 plus the length + // of the length of the string in binary form, followed by the length of + // the string, followed by the string. For example, a length-1024 string + // would be encoded as 0xB90400 followed by the string. The range of + // the first byte is thus [0xB8, 0xBF]. + beLen := int(first) - 183 + dataPos = pos + 1 + beLen + dataLen, err = BeInt(payload, pos+1, beLen) + isList = false + if dataLen < 56 { + err = fmt.Errorf("%w: non-canonical size information", ErrParse) + } + case first < 248: + // isList of len < 56 + // If the total payload of a list + // (i.e. the combined length of all its items) is 0-55 bytes long, the + // RLP encoding consists of a single byte with value 0xC0 plus the length + // of the list followed by the concatenation of the RLP encodings of the + // items. The range of the first byte is thus [0xC0, 0xF7]. + dataPos = pos + 1 + dataLen = int(first) - 192 + isList = true + default: + // If the total payload of a list is more than 55 bytes long, + // the RLP encoding consists of a single byte with value 0xF7 + // plus the length of the length of the payload in binary + // form, followed by the length of the payload, followed by + // the concatenation of the RLP encodings of the items. The + // range of the first byte is thus [0xF8, 0xFF]. + beLen := int(first) - 247 + dataPos = pos + 1 + beLen + dataLen, err = BeInt(payload, pos+1, beLen) + isList = true + if dataLen < 56 { + err = fmt.Errorf("%w: : non-canonical size information", ErrParse) + } + } + if err == nil { + if dataPos+dataLen > len(payload) { + err = fmt.Errorf("%w: unexpected end of payload", ErrParse) + } else if dataPos+dataLen < 0 { + err = fmt.Errorf("%w: found too big len", ErrParse) + } + } + return +} + +func List(payload []byte, pos int) (dataPos, dataLen int, err error) { + dataPos, dataLen, isList, err := Prefix(payload, pos) + if err != nil { + return 0, 0, err + } + if !isList { + return 0, 0, fmt.Errorf("%w: must be a list", ErrParse) + } + return +} + +func String(payload []byte, pos int) (dataPos, dataLen int, err error) { + dataPos, dataLen, isList, err := Prefix(payload, pos) + if err != nil { + return 0, 0, err + } + if isList { + return 0, 0, fmt.Errorf("%w: must be a string, instead of a list", ErrParse) + } + return +} +func StringOfLen(payload []byte, pos, expectedLen int) (dataPos int, err error) { + dataPos, dataLen, err := String(payload, pos) + if err != nil { + return 0, err + } + if dataLen != expectedLen { + return 0, fmt.Errorf("%w: expected string of len %d, got %d", ErrParse, expectedLen, dataLen) + } + return +} + +// U64 parses uint64 number from given payload at given position +func U64(payload []byte, pos int) (int, uint64, error) { + dataPos, dataLen, isList, err := Prefix(payload, pos) + if err != nil { + return 0, 0, err + } + if isList { + return 0, 0, fmt.Errorf("%w: uint64 must be a string, not isList", ErrParse) + } + if dataLen > 8 { + return 0, 0, fmt.Errorf("%w: uint64 must not be more than 8 bytes long, got %d", ErrParse, dataLen) + } + if dataLen > 0 && payload[dataPos] == 0 { + return 0, 0, fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: %x", ErrParse, payload[dataPos:dataPos+dataLen]) + } + var r uint64 + for _, b := range payload[dataPos : dataPos+dataLen] { + r = (r << 8) | uint64(b) + } + return dataPos + dataLen, r, nil +} + +// U32 parses uint64 number from given payload at given position +func U32(payload []byte, pos int) (int, uint32, error) { + dataPos, dataLen, isList, err := Prefix(payload, pos) + if err != nil { + return 0, 0, err + } + if isList { + return 0, 0, fmt.Errorf("%w: uint32 must be a string, not isList", ErrParse) + } + if dataLen > 4 { + return 0, 0, fmt.Errorf("%w: uint32 must not be more than 4 bytes long, got %d", ErrParse, dataLen) + } + if dataLen > 0 && payload[dataPos] == 0 { + return 0, 0, fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: %x", ErrParse, payload[dataPos:dataPos+dataLen]) + } + var r uint32 + for _, b := range payload[dataPos : dataPos+dataLen] { + r = (r << 8) | uint32(b) + } + return dataPos + dataLen, r, nil +} + +// U256 parses uint256 number from given payload at given position +func U256(payload []byte, pos int, x *uint256.Int) (int, error) { + dataPos, dataLen, err := String(payload, pos) + if err != nil { + return 0, err + } + if dataLen > 32 { + return 0, fmt.Errorf("%w: uint256 must not be more than 32 bytes long, got %d", ErrParse, dataLen) + } + if dataLen > 0 && payload[dataPos] == 0 { + return 0, fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: %x", ErrParse, payload[dataPos:dataPos+dataLen]) + } + x.SetBytes(payload[dataPos : dataPos+dataLen]) + return dataPos + dataLen, nil +} + +func U256Len(z *uint256.Int) int { + if z == nil { + return 1 + } + nBits := z.BitLen() + if nBits == 0 { + return 1 + } + if nBits <= 7 { + return 1 + } + return 1 + common.BitLenToByteLen(nBits) +} + +func ParseHash(payload []byte, pos int, hashbuf []byte) (int, error) { + pos, err := StringOfLen(payload, pos, 32) + if err != nil { + return 0, fmt.Errorf("%s: hash len: %w", ParseHashErrorPrefix, err) + } + copy(hashbuf, payload[pos:pos+32]) + return pos + 32, nil +} + +const ParseHashErrorPrefix = "parse hash payload" + +const ParseAnnouncementsErrorPrefix = "parse announcement payload" + +func ParseAnnouncements(payload []byte, pos int) ([]byte, []uint32, []byte, int, error) { + pos, totalLen, err := List(payload, pos) + if err != nil { + return nil, nil, nil, pos, err + } + if pos+totalLen > len(payload) { + return nil, nil, nil, pos, fmt.Errorf("%s: totalLen %d is beyond the end of payload", ParseAnnouncementsErrorPrefix, totalLen) + } + pos, typesLen, err := String(payload, pos) + if err != nil { + return nil, nil, nil, pos, err + } + if pos+typesLen > len(payload) { + return nil, nil, nil, pos, fmt.Errorf("%s: typesLen %d is beyond the end of payload", ParseAnnouncementsErrorPrefix, typesLen) + } + types := payload[pos : pos+typesLen] + pos += typesLen + pos, sizesLen, err := List(payload, pos) + if err != nil { + return nil, nil, nil, pos, err + } + if pos+sizesLen > len(payload) { + return nil, nil, nil, pos, fmt.Errorf("%s: sizesLen %d is beyond the end of payload", ParseAnnouncementsErrorPrefix, sizesLen) + } + sizes := make([]uint32, typesLen) + for i := 0; i < len(sizes); i++ { + if pos, sizes[i], err = U32(payload, pos); err != nil { + return nil, nil, nil, pos, err + } + } + pos, hashesLen, err := List(payload, pos) + if err != nil { + return nil, nil, nil, pos, err + } + if pos+hashesLen > len(payload) { + return nil, nil, nil, pos, fmt.Errorf("%s: hashesLen %d is beyond the end of payload", ParseAnnouncementsErrorPrefix, hashesLen) + } + hashes := make([]byte, 32*(hashesLen/33)) + for i := 0; i < len(hashes); i += 32 { + if pos, err = ParseHash(payload, pos, hashes[i:]); err != nil { + return nil, nil, nil, pos, err + } + } + return types, sizes, hashes, pos, nil +} diff --git a/erigon-lib/rlp/parse_test.go b/erigon-lib/rlp/parse_test.go new file mode 100644 index 00000000000..00712776868 --- /dev/null +++ b/erigon-lib/rlp/parse_test.go @@ -0,0 +1,92 @@ +package rlp + +import ( + "fmt" + "testing" + + "github.com/holiman/uint256" + "github.com/stretchr/testify/assert" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" +) + +var parseU64Tests = []struct { + expectErr error + payload []byte + expectPos int + expectRes uint64 +}{ + {payload: hexutility.MustDecodeHex("820400"), expectPos: 3, expectRes: 1024}, + {payload: hexutility.MustDecodeHex("07"), expectPos: 1, expectRes: 7}, + {payload: hexutility.MustDecodeHex("8107"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("B8020004"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("C0"), expectErr: fmt.Errorf("%w: uint64 must be a string, not isList", ErrParse)}, + {payload: hexutility.MustDecodeHex("00"), expectErr: fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: 00", ErrParse)}, + {payload: hexutility.MustDecodeHex("8AFFFFFFFFFFFFFFFFFF7C"), expectErr: fmt.Errorf("%w: uint64 must not be more than 8 bytes long, got 10", ErrParse)}, +} + +var parseU32Tests = []struct { + expectErr error + payload []byte + expectPos int + expectRes uint32 +}{ + {payload: hexutility.MustDecodeHex("820400"), expectPos: 3, expectRes: 1024}, + {payload: hexutility.MustDecodeHex("07"), expectPos: 1, expectRes: 7}, + {payload: hexutility.MustDecodeHex("8107"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("B8020004"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("C0"), expectErr: fmt.Errorf("%w: uint32 must be a string, not isList", ErrParse)}, + {payload: hexutility.MustDecodeHex("00"), expectErr: fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: 00", ErrParse)}, + {payload: hexutility.MustDecodeHex("85FF6738FF7C"), expectErr: fmt.Errorf("%w: uint32 must not be more than 4 bytes long, got 5", ErrParse)}, +} + +var parseU256Tests = []struct { + expectErr error + expectRes *uint256.Int + payload []byte + expectPos int +}{ + {payload: hexutility.MustDecodeHex("8BFFFFFFFFFFFFFFFFFF7C"), expectErr: fmt.Errorf("%w: unexpected end of payload", ErrParse)}, + {payload: hexutility.MustDecodeHex("8AFFFFFFFFFFFFFFFFFF7C"), expectPos: 11, expectRes: new(uint256.Int).SetBytes(hexutility.MustDecodeHex("FFFFFFFFFFFFFFFFFF7C"))}, + {payload: hexutility.MustDecodeHex("85CE05050505"), expectPos: 6, expectRes: new(uint256.Int).SetUint64(0xCE05050505)}, + {payload: hexutility.MustDecodeHex("820400"), expectPos: 3, expectRes: new(uint256.Int).SetUint64(1024)}, + {payload: hexutility.MustDecodeHex("07"), expectPos: 1, expectRes: new(uint256.Int).SetUint64(7)}, + {payload: hexutility.MustDecodeHex("8107"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("B8020004"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("C0"), expectErr: fmt.Errorf("%w: must be a string, instead of a list", ErrParse)}, + {payload: hexutility.MustDecodeHex("00"), expectErr: fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: 00", ErrParse)}, + {payload: hexutility.MustDecodeHex("A101000000000000000000000000000000000000008B000000000000000000000000"), expectErr: fmt.Errorf("%w: uint256 must not be more than 32 bytes long, got 33", ErrParse)}, +} + +func TestPrimitives(t *testing.T) { + for i, tt := range parseU64Tests { + t.Run(fmt.Sprintf("%d", i), func(t *testing.T) { + assert := assert.New(t) + pos, res, err := U64(tt.payload, 0) + assert.Equal(tt.expectErr, err) + assert.Equal(tt.expectPos, pos) + assert.Equal(tt.expectRes, res) + }) + } + for i, tt := range parseU32Tests { + t.Run(fmt.Sprintf("%d", i), func(t *testing.T) { + assert := assert.New(t) + pos, res, err := U32(tt.payload, 0) + assert.Equal(tt.expectErr, err) + assert.Equal(tt.expectPos, pos) + assert.Equal(tt.expectRes, res) + }) + } + for i, tt := range parseU256Tests { + t.Run(fmt.Sprintf("%d", i), func(t *testing.T) { + assert := assert.New(t) + res := new(uint256.Int) + pos, err := U256(tt.payload, 0, res) + assert.Equal(tt.expectErr, err) + assert.Equal(tt.expectPos, pos) + if err == nil { + assert.Equal(tt.expectRes, res) + } + }) + } +} diff --git a/erigon-lib/rlp2/commitment.go b/erigon-lib/rlp2/commitment.go new file mode 100644 index 00000000000..c554cfe6cea --- /dev/null +++ b/erigon-lib/rlp2/commitment.go @@ -0,0 +1,284 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package rlp + +import "io" + +// RLP-related utilities necessary for computing commitments for state root hash + +// generateRlpPrefixLenDouble calculates the length of RLP prefix to encode a string of bytes of length l "twice", +// meaning that it is the prefix for rlp(rlp(data)) +func generateRlpPrefixLenDouble(l int, firstByte byte) int { + if l < 2 { + // firstByte only matters when there is 1 byte to encode + if firstByte >= 0x80 { + return 2 + } + return 0 + } + if l < 55 { + return 2 + } + if l < 56 { // 2 + 1 + return 3 + } + if l < 254 { + return 4 + } + if l < 256 { + return 5 + } + if l < 65533 { + return 6 + } + if l < 65536 { + return 7 + } + return 8 +} + +func multiByteHeaderPrefixOfLen(l int) byte { + // > If a string is more than 55 bytes long, the + // > RLP encoding consists of a single byte with value 0xB7 plus the length + // > of the length of the string in binary form, followed by the length of + // > the string, followed by the string. For example, a length-1024 string + // > would be encoded as 0xB90400 followed by the string. The range of + // > the first byte is thus [0xB8, 0xBF]. + // + // see package rlp/decode.go:887 + return byte(0xB7 + l) +} + +func generateByteArrayLen(buffer []byte, pos int, l int) int { + if l < 56 { + buffer[pos] = byte(0x80 + l) + pos++ + } else if l < 256 { + // len(vn) can be encoded as 1 byte + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l) + pos++ + } else if l < 65536 { + // len(vn) is encoded as two bytes + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte(l >> 8) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } else { + // len(vn) is encoded as three bytes + buffer[pos] = multiByteHeaderPrefixOfLen(3) + pos++ + buffer[pos] = byte(l >> 16) + pos++ + buffer[pos] = byte((l >> 8) & 255) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } + return pos +} + +func generateByteArrayLenDouble(buffer []byte, pos int, l int) int { + if l < 55 { + // After first wrapping, the length will be l + 1 < 56 + buffer[pos] = byte(0x80 + l + 1) + pos++ + buffer[pos] = byte(0x80 + l) + pos++ + } else if l < 56 { + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l + 1) + pos++ + buffer[pos] = byte(0x80 + l) + pos++ + } else if l < 254 { + // After first wrapping, the length will be l + 2 < 256 + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l + 2) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l) + pos++ + } else if l < 256 { + // First wrapping is 2 bytes, second wrapping 3 bytes + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte((l + 2) >> 8) + pos++ + buffer[pos] = byte((l + 2) & 255) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(1) + pos++ + buffer[pos] = byte(l) + pos++ + } else if l < 65533 { + // Both wrappings are 3 bytes + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte((l + 3) >> 8) + pos++ + buffer[pos] = byte((l + 3) & 255) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte(l >> 8) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } else if l < 65536 { + // First wrapping is 3 bytes, second wrapping is 4 bytes + buffer[pos] = multiByteHeaderPrefixOfLen(3) + pos++ + buffer[pos] = byte((l + 3) >> 16) + pos++ + buffer[pos] = byte(((l + 3) >> 8) & 255) + pos++ + buffer[pos] = byte((l + 3) & 255) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(2) + pos++ + buffer[pos] = byte((l >> 8) & 255) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } else { + // Both wrappings are 4 bytes + buffer[pos] = multiByteHeaderPrefixOfLen(3) + pos++ + buffer[pos] = byte((l + 4) >> 16) + pos++ + buffer[pos] = byte(((l + 4) >> 8) & 255) + pos++ + buffer[pos] = byte((l + 4) & 255) + pos++ + buffer[pos] = multiByteHeaderPrefixOfLen(3) + pos++ + buffer[pos] = byte(l >> 16) + pos++ + buffer[pos] = byte((l >> 8) & 255) + pos++ + buffer[pos] = byte(l & 255) + pos++ + } + return pos +} + +func generateRlpPrefixLen(l int) int { + if l < 2 { + return 0 + } + if l < 56 { + return 1 + } + if l < 256 { + return 2 + } + if l < 65536 { + return 3 + } + return 4 +} + +// RlpSerializable is a value that can be double-RLP coded. +type RlpSerializable interface { + ToDoubleRLP(io.Writer, []byte) error + DoubleRLPLen() int + RawBytes() []byte +} + +type RlpSerializableBytes []byte + +func (b RlpSerializableBytes) ToDoubleRLP(w io.Writer, prefixBuf []byte) error { + return encodeBytesAsRlpToWriter(b, w, generateByteArrayLenDouble, prefixBuf) +} + +func (b RlpSerializableBytes) RawBytes() []byte { + return b +} + +func (b RlpSerializableBytes) DoubleRLPLen() int { + if len(b) < 1 { + return 0 + } + return generateRlpPrefixLenDouble(len(b), b[0]) + len(b) +} + +type RlpEncodedBytes []byte + +func (b RlpEncodedBytes) ToDoubleRLP(w io.Writer, prefixBuf []byte) error { + return encodeBytesAsRlpToWriter(b, w, generateByteArrayLen, prefixBuf) +} + +func (b RlpEncodedBytes) RawBytes() []byte { + return b +} + +func (b RlpEncodedBytes) DoubleRLPLen() int { + return generateRlpPrefixLen(len(b)) + len(b) +} + +func encodeBytesAsRlpToWriter(source []byte, w io.Writer, prefixGenFunc func([]byte, int, int) int, prefixBuf []byte) error { + // > 1 byte, write a prefix or prefixes first + if len(source) > 1 || (len(source) == 1 && source[0] >= 0x80) { + prefixLen := prefixGenFunc(prefixBuf, 0, len(source)) + + if _, err := w.Write(prefixBuf[:prefixLen]); err != nil { + return err + } + } + + _, err := w.Write(source) + return err +} + +func EncodeByteArrayAsRlp(raw []byte, w io.Writer, prefixBuf []byte) (int, error) { + err := encodeBytesAsRlpToWriter(raw, w, generateByteArrayLen, prefixBuf) + if err != nil { + return 0, err + } + return generateRlpPrefixLen(len(raw)) + len(raw), nil +} + +func GenerateStructLen(buffer []byte, l int) int { + if l < 56 { + buffer[0] = byte(192 + l) + return 1 + } + if l < 256 { + // l can be encoded as 1 byte + buffer[1] = byte(l) + buffer[0] = byte(247 + 1) + return 2 + } + if l < 65536 { + buffer[2] = byte(l & 255) + buffer[1] = byte(l >> 8) + buffer[0] = byte(247 + 2) + return 3 + } + buffer[3] = byte(l & 255) + buffer[2] = byte((l >> 8) & 255) + buffer[1] = byte(l >> 16) + buffer[0] = byte(247 + 3) + return 4 +} diff --git a/erigon-lib/rlp2/decoder.go b/erigon-lib/rlp2/decoder.go new file mode 100644 index 00000000000..4f41ecd7f9a --- /dev/null +++ b/erigon-lib/rlp2/decoder.go @@ -0,0 +1,277 @@ +package rlp + +import ( + "errors" + "fmt" + "io" +) + +type Decoder struct { + buf *buf +} + +func NewDecoder(buf []byte) *Decoder { + return &Decoder{ + buf: newBuf(buf, 0), + } +} + +func (d *Decoder) String() string { + return fmt.Sprintf(`left=%x pos=%d`, d.buf.Bytes(), d.buf.off) +} + +func (d *Decoder) Consumed() []byte { + return d.buf.u[:d.buf.off] +} + +func (d *Decoder) Underlying() []byte { + return d.buf.Underlying() +} + +func (d *Decoder) Empty() bool { + return d.buf.empty() +} + +func (d *Decoder) Offset() int { + return d.buf.Offset() +} + +func (d *Decoder) Bytes() []byte { + return d.buf.Bytes() +} + +func (d *Decoder) ReadByte() (n byte, err error) { + return d.buf.ReadByte() +} + +func (d *Decoder) PeekByte() (n byte, err error) { + return d.buf.PeekByte() +} + +func (d *Decoder) Rebase() { + d.buf.u = d.Bytes() + d.buf.off = 0 +} +func (d *Decoder) Fork() *Decoder { + return &Decoder{ + buf: newBuf(d.buf.u, d.buf.off), + } +} + +func (d *Decoder) PeekToken() (Token, error) { + prefix, err := d.PeekByte() + if err != nil { + return TokenUnknown, err + } + return identifyToken(prefix), nil +} + +func (d *Decoder) ElemDec() (*Decoder, Token, error) { + a, t, err := d.Elem() + return NewDecoder(a), t, err +} + +func (d *Decoder) RawElemDec() (*Decoder, Token, error) { + a, t, err := d.RawElem() + return NewDecoder(a), t, err +} + +func (d *Decoder) RawElem() ([]byte, Token, error) { + w := d.buf + start := w.Offset() + // figure out what we are reading + prefix, err := w.ReadByte() + if err != nil { + return nil, TokenUnknown, err + } + token := identifyToken(prefix) + + var ( + sz int + lenSz int + ) + // switch on the token + switch token { + case TokenDecimal: + // in this case, the value is just the byte itself + case TokenShortList: + sz = int(token.Diff(prefix)) + _, err = nextFull(w, sz) + case TokenLongList: + lenSz = int(token.Diff(prefix)) + sz, err = nextBeInt(w, lenSz) + if err != nil { + return nil, token, err + } + _, err = nextFull(w, sz) + case TokenShortBlob: + sz := int(token.Diff(prefix)) + _, err = nextFull(w, sz) + case TokenLongBlob: + lenSz := int(token.Diff(prefix)) + sz, err = nextBeInt(w, lenSz) + if err != nil { + return nil, token, err + } + _, err = nextFull(w, sz) + default: + return nil, token, fmt.Errorf("%w: unknown token", ErrDecode) + } + stop := w.Offset() + //log.Printf("%x %s\n", buf, token) + if err != nil { + return nil, token, err + } + return w.Underlying()[start:stop], token, nil +} + +func (d *Decoder) Elem() ([]byte, Token, error) { + w := d.buf + // figure out what we are reading + prefix, err := w.ReadByte() + if err != nil { + return nil, TokenUnknown, err + } + token := identifyToken(prefix) + + var ( + buf []byte + sz int + lenSz int + ) + // switch on the token + switch token { + case TokenDecimal: + // in this case, the value is just the byte itself + buf = []byte{prefix} + case TokenShortList: + sz = int(token.Diff(prefix)) + buf, err = nextFull(w, sz) + case TokenLongList: + lenSz = int(token.Diff(prefix)) + sz, err = nextBeInt(w, lenSz) + if err != nil { + return nil, token, err + } + buf, err = nextFull(w, sz) + case TokenShortBlob: + sz := int(token.Diff(prefix)) + buf, err = nextFull(w, sz) + case TokenLongBlob: + lenSz := int(token.Diff(prefix)) + sz, err = nextBeInt(w, lenSz) + if err != nil { + return nil, token, err + } + buf, err = nextFull(w, sz) + default: + return nil, token, fmt.Errorf("%w: unknown token", ErrDecode) + } + //log.Printf("%x %s\n", buf, token) + if err != nil { + return nil, token, fmt.Errorf("read data: %w", err) + } + return buf, token, nil +} + +func ReadElem[T any](d *Decoder, fn func(*T, []byte) error, receiver *T) error { + buf, token, err := d.Elem() + if err != nil { + return err + } + switch token { + case TokenDecimal, + TokenShortBlob, + TokenLongBlob, + TokenShortList, + TokenLongList: + return fn(receiver, buf) + default: + return fmt.Errorf("%w: ReadElem found unexpected token", ErrDecode) + } +} + +func (d *Decoder) ForList(fn func(*Decoder) error) error { + // grab the list bytes + buf, token, err := d.Elem() + if err != nil { + return err + } + switch token { + case TokenShortList, TokenLongList: + dec := NewDecoder(buf) + for { + if dec.buf.Len() == 0 { + return nil + } + err := fn(dec) + if errors.Is(err, io.EOF) { + return nil + } + if err != nil { + return err + } + // reset the byte + dec = NewDecoder(dec.Bytes()) + } + default: + return fmt.Errorf("%w: ForList on non-list", ErrDecode) + } +} + +type buf struct { + u []byte + off int +} + +func newBuf(u []byte, off int) *buf { + return &buf{u: u, off: off} +} + +func (b *buf) empty() bool { return len(b.u) <= b.off } + +func (b *buf) PeekByte() (n byte, err error) { + if len(b.u) <= b.off { + return 0, io.EOF + } + return b.u[b.off], nil +} +func (b *buf) ReadByte() (n byte, err error) { + if len(b.u) <= b.off { + return 0, io.EOF + } + b.off++ + return b.u[b.off-1], nil +} + +func (b *buf) Next(n int) (xs []byte) { + m := b.Len() + if n > m { + n = m + } + data := b.u[b.off : b.off+n] + b.off += n + return data +} + +func (b *buf) Offset() int { + return b.off +} + +func (b *buf) Bytes() []byte { + return b.u[b.off:] +} + +func (b *buf) String() string { + if b == nil { + // Special case, useful in debugging. + return "" + } + return string(b.u[b.off:]) +} + +func (b *buf) Len() int { return len(b.u) - b.off } + +func (b *buf) Underlying() []byte { + return b.u +} diff --git a/erigon-lib/rlp2/encodel.go b/erigon-lib/rlp2/encodel.go new file mode 100644 index 00000000000..7e075a7b8c0 --- /dev/null +++ b/erigon-lib/rlp2/encodel.go @@ -0,0 +1,298 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package rlp + +import ( + "encoding/binary" + "math/bits" + + "github.com/ledgerwatch/erigon-lib/common" +) + +// General design: +// - rlp package doesn't manage memory - and Caller must ensure buffers are big enough. +// - no io.Writer, because it's incompatible with binary.BigEndian functions and Writer can't be used as temporary buffer +// +// Composition: +// - each Encode method does write to given buffer and return written len +// - each Parse accept position in payload and return new position +// +// General rules: +// - functions to calculate prefix len are fast (and pure). it's ok to call them multiple times during encoding of large object for readability. +// - rlp has 2 data types: List and String (bytes array), and low-level funcs are operate with this types. +// - but for convenience and performance - provided higher-level functions (for example for EncodeHash - for []byte of len 32) +// - functions to Parse (Decode) data - using data type as name (without any prefix): rlp.String(), rlp.List, rlp.U64(), rlp.U256() +// + +func ListPrefixLen(dataLen int) int { + if dataLen >= 56 { + return 1 + common.BitLenToByteLen(bits.Len64(uint64(dataLen))) + } + return 1 +} +func EncodeListPrefix(dataLen int, to []byte) int { + if dataLen >= 56 { + _ = to[9] + beLen := common.BitLenToByteLen(bits.Len64(uint64(dataLen))) + binary.BigEndian.PutUint64(to[1:], uint64(dataLen)) + to[8-beLen] = 247 + byte(beLen) + copy(to, to[8-beLen:9]) + return 1 + beLen + } + to[0] = 192 + byte(dataLen) + return 1 +} + +func U32Len(i uint32) int { + if i < 128 { + return 1 + } + return 1 + common.BitLenToByteLen(bits.Len32(i)) +} + +func U64Len(i uint64) int { + if i < 128 { + return 1 + } + return 1 + common.BitLenToByteLen(bits.Len64(i)) +} + +func EncodeU32(i uint32, to []byte) int { + if i == 0 { + to[0] = 128 + return 1 + } + if i < 128 { + to[0] = byte(i) // fits single byte + return 1 + } + + b := to[1:] + var l int + + // writes i to b in big endian byte order, using the least number of bytes needed to represent i. + switch { + case i < (1 << 8): + b[0] = byte(i) + l = 1 + case i < (1 << 16): + b[0] = byte(i >> 8) + b[1] = byte(i) + l = 2 + case i < (1 << 24): + b[0] = byte(i >> 16) + b[1] = byte(i >> 8) + b[2] = byte(i) + l = 3 + default: + b[0] = byte(i >> 24) + b[1] = byte(i >> 16) + b[2] = byte(i >> 8) + b[3] = byte(i) + l = 4 + } + + to[0] = 128 + byte(l) + return 1 + l +} + +func EncodeU64(i uint64, to []byte) int { + if i == 0 { + to[0] = 128 + return 1 + } + if i < 128 { + to[0] = byte(i) // fits single byte + return 1 + } + + b := to[1:] + var l int + + // writes i to b in big endian byte order, using the least number of bytes needed to represent i. + switch { + case i < (1 << 8): + b[0] = byte(i) + l = 1 + case i < (1 << 16): + b[0] = byte(i >> 8) + b[1] = byte(i) + l = 2 + case i < (1 << 24): + b[0] = byte(i >> 16) + b[1] = byte(i >> 8) + b[2] = byte(i) + l = 3 + case i < (1 << 32): + b[0] = byte(i >> 24) + b[1] = byte(i >> 16) + b[2] = byte(i >> 8) + b[3] = byte(i) + l = 4 + case i < (1 << 40): + b[0] = byte(i >> 32) + b[1] = byte(i >> 24) + b[2] = byte(i >> 16) + b[3] = byte(i >> 8) + b[4] = byte(i) + l = 5 + case i < (1 << 48): + b[0] = byte(i >> 40) + b[1] = byte(i >> 32) + b[2] = byte(i >> 24) + b[3] = byte(i >> 16) + b[4] = byte(i >> 8) + b[5] = byte(i) + l = 6 + case i < (1 << 56): + b[0] = byte(i >> 48) + b[1] = byte(i >> 40) + b[2] = byte(i >> 32) + b[3] = byte(i >> 24) + b[4] = byte(i >> 16) + b[5] = byte(i >> 8) + b[6] = byte(i) + l = 7 + default: + b[0] = byte(i >> 56) + b[1] = byte(i >> 48) + b[2] = byte(i >> 40) + b[3] = byte(i >> 32) + b[4] = byte(i >> 24) + b[5] = byte(i >> 16) + b[6] = byte(i >> 8) + b[7] = byte(i) + l = 8 + } + + to[0] = 128 + byte(l) + return 1 + l +} + +func StringLen(s []byte) int { + sLen := len(s) + switch { + case sLen > 56: + beLen := common.BitLenToByteLen(bits.Len(uint(sLen))) + return 1 + beLen + sLen + case sLen == 0: + return 1 + case sLen == 1: + if s[0] < 128 { + return 1 + } + return 1 + sLen + default: // 1 56: + beLen := common.BitLenToByteLen(bits.Len(uint(len(s)))) + binary.BigEndian.PutUint64(to[1:], uint64(len(s))) + _ = to[beLen+len(s)] + + to[8-beLen] = byte(beLen) + 183 + copy(to, to[8-beLen:9]) + copy(to[1+beLen:], s) + return 1 + beLen + len(s) + case len(s) == 0: + to[0] = 128 + return 1 + case len(s) == 1: + if s[0] < 128 { + to[0] = s[0] + return 1 + } + to[0] = 129 + to[1] = s[0] + return 2 + default: // 1 55 { + return e.LongString(str) + } + return e.ShortString(str) +} + +// String will assume your string is less than 56 bytes long, and do no validation as such +func (e *Encoder) ShortString(str []byte) *Encoder { + return e.Byte(TokenShortBlob.Plus(byte(len(str)))).Bytes(str) +} + +// String will assume your string is greater than 55 bytes long, and do no validation as such +func (e *Encoder) LongString(str []byte) *Encoder { + // write the indicator token + e.Byte(byte(TokenLongBlob)) + // write the integer, knowing that we appended n bytes + n := putUint(e, len(str)) + // so we knw the indicator token was n+1 bytes ago. + e.buf[len(e.buf)-(int(n)+1)] += n + // and now add the actual length + e.buf = append(e.buf, str...) + return e +} + +// List will attempt to write the list of encoder funcs to the buf +func (e *Encoder) List(items ...EncoderFunc) *Encoder { + return e.writeList(true, items...) +} + +// ShortList actually calls List +func (e *Encoder) ShortList(items ...EncoderFunc) *Encoder { + return e.writeList(true, items...) +} + +// LongList will assume that your list payload is more than 55 bytes long, and do no validation as such +func (e *Encoder) LongList(items ...EncoderFunc) *Encoder { + return e.writeList(false, items...) +} + +// writeList will first attempt to write a long list with the dat +// if validate is false, it will just format it like the length is above 55 +// if validate is true, it will format it like it is a shrot list +func (e *Encoder) writeList(validate bool, items ...EncoderFunc) *Encoder { + // write the indicator token + e = e.Byte(byte(TokenLongList)) + // now pad 8 bytes + e = e.Bytes(make([]byte, 8)) + // record the length before encoding items + startLength := len(e.buf) + // now write all the items + for _, v := range items { + e = v(e) + } + // the size is the difference in the lengths now + dataSize := len(e.buf) - startLength + if dataSize <= 55 && validate { + // oh it's actually a short string! awkward. let's set that then. + e.buf[startLength-8-1] = TokenShortList.Plus(byte(dataSize)) + // and then copy the data over + copy(e.buf[startLength-8:], e.buf[startLength:startLength+dataSize]) + // and now set the new size + e.buf = e.buf[:startLength+dataSize-8] + // we are done, return + return e + } + // ok, so it's a long string. + // create a new encoder centered at startLength - 8 + enc := NewEncoder(e.buf[startLength-8:]) + // now write using that encoder the size + n := putUint(enc, dataSize) + // and update the token, which we know is at startLength-8-1 + e.buf[startLength-8-1] += n + // the shift to perform now is 8 - n. + shift := int(8 - n) + // if there is a positive shift, then we must perform the shift + if shift > 0 { + // copy the data + copy(e.buf[startLength-shift:], e.buf[startLength:startLength+dataSize]) + // set the new length + e.buf = e.buf[:startLength-shift+dataSize] + } + return e +} + +func putUint[T constraints.Integer](e *Encoder, t T) (size byte) { + i := uint64(t) + switch { + case i < (1 << 8): + e.buf = append(e.buf, byte(i)) + return 1 + case i < (1 << 16): + e.buf = append(e.buf, + byte(i>>8), + byte(i), + ) + return 2 + case i < (1 << 24): + + e.buf = append(e.buf, + byte(i>>16), + byte(i>>8), + byte(i), + ) + return 3 + case i < (1 << 32): + e.buf = append(e.buf, + byte(i>>24), + byte(i>>16), + byte(i>>8), + byte(i), + ) + return 4 + case i < (1 << 40): + e.buf = append(e.buf, + byte(i>>32), + byte(i>>24), + byte(i>>16), + byte(i>>8), + byte(i), + ) + return 5 + case i < (1 << 48): + e.buf = append(e.buf, + byte(i>>40), + byte(i>>32), + byte(i>>24), + byte(i>>16), + byte(i>>8), + byte(i), + ) + return 6 + case i < (1 << 56): + e.buf = append(e.buf, + byte(i>>48), + byte(i>>40), + byte(i>>32), + byte(i>>24), + byte(i>>16), + byte(i>>8), + byte(i), + ) + return 7 + default: + e.buf = append(e.buf, + byte(i>>56), + byte(i>>48), + byte(i>>40), + byte(i>>32), + byte(i>>24), + byte(i>>16), + byte(i>>8), + byte(i), + ) + return 8 + } +} diff --git a/erigon-lib/rlp2/parse.go b/erigon-lib/rlp2/parse.go new file mode 100644 index 00000000000..449277f0917 --- /dev/null +++ b/erigon-lib/rlp2/parse.go @@ -0,0 +1,289 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package rlp + +import ( + "errors" + "fmt" + + "github.com/holiman/uint256" + + "github.com/ledgerwatch/erigon-lib/common" +) + +var ( + ErrBase = fmt.Errorf("rlp") + ErrParse = fmt.Errorf("%w parse", ErrBase) + ErrDecode = fmt.Errorf("%w decode", ErrBase) + ErrUnexpectedEOF = fmt.Errorf("%w EOF", ErrBase) +) + +func IsRLPError(err error) bool { return errors.Is(err, ErrBase) } + +// BeInt parses Big Endian representation of an integer from given payload at given position +func BeInt(payload []byte, pos, length int) (int, error) { + var r int + if pos+length > len(payload) { + return 0, ErrUnexpectedEOF + } + if length > 0 && payload[pos] == 0 { + return 0, fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: %x", ErrParse, payload[pos:pos+length]) + } + for _, b := range payload[pos : pos+length] { + r = (r << 8) | int(b) + } + return r, nil +} + +// Prefix parses RLP Prefix from given payload at given position. It returns the offset and length of the RLP element +// as well as the indication of whether it is a list of string +func Prefix(payload []byte, pos int) (dataPos int, dataLen int, isList bool, err error) { + if pos < 0 { + return 0, 0, false, fmt.Errorf("%w: negative position not allowed", ErrParse) + } + if pos >= len(payload) { + return 0, 0, false, fmt.Errorf("%w: unexpected end of payload", ErrParse) + } + switch first := payload[pos]; { + case first < 128: + dataPos = pos + dataLen = 1 + isList = false + case first < 184: + // Otherwise, if a string is 0-55 bytes long, + // the RLP encoding consists of a single byte with value 0x80 plus the + // length of the string followed by the string. The range of the first + // byte is thus [0x80, 0xB7]. + dataPos = pos + 1 + dataLen = int(first) - 128 + isList = false + if dataLen == 1 && dataPos < len(payload) && payload[dataPos] < 128 { + err = fmt.Errorf("%w: non-canonical size information", ErrParse) + } + case first < 192: + // If a string is more than 55 bytes long, the + // RLP encoding consists of a single byte with value 0xB7 plus the length + // of the length of the string in binary form, followed by the length of + // the string, followed by the string. For example, a length-1024 string + // would be encoded as 0xB90400 followed by the string. The range of + // the first byte is thus [0xB8, 0xBF]. + beLen := int(first) - 183 + dataPos = pos + 1 + beLen + dataLen, err = BeInt(payload, pos+1, beLen) + isList = false + if dataLen < 56 { + err = fmt.Errorf("%w: non-canonical size information", ErrParse) + } + case first < 248: + // isList of len < 56 + // If the total payload of a list + // (i.e. the combined length of all its items) is 0-55 bytes long, the + // RLP encoding consists of a single byte with value 0xC0 plus the length + // of the list followed by the concatenation of the RLP encodings of the + // items. The range of the first byte is thus [0xC0, 0xF7]. + dataPos = pos + 1 + dataLen = int(first) - 192 + isList = true + default: + // If the total payload of a list is more than 55 bytes long, + // the RLP encoding consists of a single byte with value 0xF7 + // plus the length of the length of the payload in binary + // form, followed by the length of the payload, followed by + // the concatenation of the RLP encodings of the items. The + // range of the first byte is thus [0xF8, 0xFF]. + beLen := int(first) - 247 + dataPos = pos + 1 + beLen + dataLen, err = BeInt(payload, pos+1, beLen) + isList = true + if dataLen < 56 { + err = fmt.Errorf("%w: : non-canonical size information", ErrParse) + } + } + if err == nil { + if dataPos+dataLen > len(payload) { + err = fmt.Errorf("%w: unexpected end of payload", ErrParse) + } else if dataPos+dataLen < 0 { + err = fmt.Errorf("%w: found too big len", ErrParse) + } + } + return +} + +func List(payload []byte, pos int) (dataPos, dataLen int, err error) { + dataPos, dataLen, isList, err := Prefix(payload, pos) + if err != nil { + return 0, 0, err + } + if !isList { + return 0, 0, fmt.Errorf("%w: must be a list", ErrParse) + } + return +} + +func String(payload []byte, pos int) (dataPos, dataLen int, err error) { + dataPos, dataLen, isList, err := Prefix(payload, pos) + if err != nil { + return 0, 0, err + } + if isList { + return 0, 0, fmt.Errorf("%w: must be a string, instead of a list", ErrParse) + } + return +} +func StringOfLen(payload []byte, pos, expectedLen int) (dataPos int, err error) { + dataPos, dataLen, err := String(payload, pos) + if err != nil { + return 0, err + } + if dataLen != expectedLen { + return 0, fmt.Errorf("%w: expected string of len %d, got %d", ErrParse, expectedLen, dataLen) + } + return +} + +// U64 parses uint64 number from given payload at given position +func U64(payload []byte, pos int) (int, uint64, error) { + dataPos, dataLen, isList, err := Prefix(payload, pos) + if err != nil { + return 0, 0, err + } + if isList { + return 0, 0, fmt.Errorf("%w: uint64 must be a string, not isList", ErrParse) + } + if dataLen > 8 { + return 0, 0, fmt.Errorf("%w: uint64 must not be more than 8 bytes long, got %d", ErrParse, dataLen) + } + if dataLen > 0 && payload[dataPos] == 0 { + return 0, 0, fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: %x", ErrParse, payload[dataPos:dataPos+dataLen]) + } + var r uint64 + for _, b := range payload[dataPos : dataPos+dataLen] { + r = (r << 8) | uint64(b) + } + return dataPos + dataLen, r, nil +} + +// U32 parses uint64 number from given payload at given position +func U32(payload []byte, pos int) (int, uint32, error) { + dataPos, dataLen, isList, err := Prefix(payload, pos) + if err != nil { + return 0, 0, err + } + if isList { + return 0, 0, fmt.Errorf("%w: uint32 must be a string, not isList", ErrParse) + } + if dataLen > 4 { + return 0, 0, fmt.Errorf("%w: uint32 must not be more than 4 bytes long, got %d", ErrParse, dataLen) + } + if dataLen > 0 && payload[dataPos] == 0 { + return 0, 0, fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: %x", ErrParse, payload[dataPos:dataPos+dataLen]) + } + var r uint32 + for _, b := range payload[dataPos : dataPos+dataLen] { + r = (r << 8) | uint32(b) + } + return dataPos + dataLen, r, nil +} + +// U256 parses uint256 number from given payload at given position +func U256(payload []byte, pos int, x *uint256.Int) (int, error) { + dataPos, dataLen, err := String(payload, pos) + if err != nil { + return 0, err + } + if dataLen > 32 { + return 0, fmt.Errorf("%w: uint256 must not be more than 32 bytes long, got %d", ErrParse, dataLen) + } + if dataLen > 0 && payload[dataPos] == 0 { + return 0, fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: %x", ErrParse, payload[dataPos:dataPos+dataLen]) + } + x.SetBytes(payload[dataPos : dataPos+dataLen]) + return dataPos + dataLen, nil +} + +func U256Len(z *uint256.Int) int { + if z == nil { + return 1 + } + nBits := z.BitLen() + if nBits == 0 { + return 1 + } + if nBits <= 7 { + return 1 + } + return 1 + common.BitLenToByteLen(nBits) +} + +func ParseHash(payload []byte, pos int, hashbuf []byte) (int, error) { + pos, err := StringOfLen(payload, pos, 32) + if err != nil { + return 0, fmt.Errorf("%s: hash len: %w", ParseHashErrorPrefix, err) + } + copy(hashbuf, payload[pos:pos+32]) + return pos + 32, nil +} + +const ParseHashErrorPrefix = "parse hash payload" + +const ParseAnnouncementsErrorPrefix = "parse announcement payload" + +func ParseAnnouncements(payload []byte, pos int) ([]byte, []uint32, []byte, int, error) { + pos, totalLen, err := List(payload, pos) + if err != nil { + return nil, nil, nil, pos, err + } + if pos+totalLen > len(payload) { + return nil, nil, nil, pos, fmt.Errorf("%s: totalLen %d is beyond the end of payload", ParseAnnouncementsErrorPrefix, totalLen) + } + pos, typesLen, err := String(payload, pos) + if err != nil { + return nil, nil, nil, pos, err + } + if pos+typesLen > len(payload) { + return nil, nil, nil, pos, fmt.Errorf("%s: typesLen %d is beyond the end of payload", ParseAnnouncementsErrorPrefix, typesLen) + } + types := payload[pos : pos+typesLen] + pos += typesLen + pos, sizesLen, err := List(payload, pos) + if err != nil { + return nil, nil, nil, pos, err + } + if pos+sizesLen > len(payload) { + return nil, nil, nil, pos, fmt.Errorf("%s: sizesLen %d is beyond the end of payload", ParseAnnouncementsErrorPrefix, sizesLen) + } + sizes := make([]uint32, typesLen) + for i := 0; i < len(sizes); i++ { + if pos, sizes[i], err = U32(payload, pos); err != nil { + return nil, nil, nil, pos, err + } + } + pos, hashesLen, err := List(payload, pos) + if err != nil { + return nil, nil, nil, pos, err + } + if pos+hashesLen > len(payload) { + return nil, nil, nil, pos, fmt.Errorf("%s: hashesLen %d is beyond the end of payload", ParseAnnouncementsErrorPrefix, hashesLen) + } + hashes := make([]byte, 32*(hashesLen/33)) + for i := 0; i < len(hashes); i += 32 { + if pos, err = ParseHash(payload, pos, hashes[i:]); err != nil { + return nil, nil, nil, pos, err + } + } + return types, sizes, hashes, pos, nil +} diff --git a/erigon-lib/rlp2/parse_test.go b/erigon-lib/rlp2/parse_test.go new file mode 100644 index 00000000000..00712776868 --- /dev/null +++ b/erigon-lib/rlp2/parse_test.go @@ -0,0 +1,92 @@ +package rlp + +import ( + "fmt" + "testing" + + "github.com/holiman/uint256" + "github.com/stretchr/testify/assert" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" +) + +var parseU64Tests = []struct { + expectErr error + payload []byte + expectPos int + expectRes uint64 +}{ + {payload: hexutility.MustDecodeHex("820400"), expectPos: 3, expectRes: 1024}, + {payload: hexutility.MustDecodeHex("07"), expectPos: 1, expectRes: 7}, + {payload: hexutility.MustDecodeHex("8107"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("B8020004"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("C0"), expectErr: fmt.Errorf("%w: uint64 must be a string, not isList", ErrParse)}, + {payload: hexutility.MustDecodeHex("00"), expectErr: fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: 00", ErrParse)}, + {payload: hexutility.MustDecodeHex("8AFFFFFFFFFFFFFFFFFF7C"), expectErr: fmt.Errorf("%w: uint64 must not be more than 8 bytes long, got 10", ErrParse)}, +} + +var parseU32Tests = []struct { + expectErr error + payload []byte + expectPos int + expectRes uint32 +}{ + {payload: hexutility.MustDecodeHex("820400"), expectPos: 3, expectRes: 1024}, + {payload: hexutility.MustDecodeHex("07"), expectPos: 1, expectRes: 7}, + {payload: hexutility.MustDecodeHex("8107"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("B8020004"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("C0"), expectErr: fmt.Errorf("%w: uint32 must be a string, not isList", ErrParse)}, + {payload: hexutility.MustDecodeHex("00"), expectErr: fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: 00", ErrParse)}, + {payload: hexutility.MustDecodeHex("85FF6738FF7C"), expectErr: fmt.Errorf("%w: uint32 must not be more than 4 bytes long, got 5", ErrParse)}, +} + +var parseU256Tests = []struct { + expectErr error + expectRes *uint256.Int + payload []byte + expectPos int +}{ + {payload: hexutility.MustDecodeHex("8BFFFFFFFFFFFFFFFFFF7C"), expectErr: fmt.Errorf("%w: unexpected end of payload", ErrParse)}, + {payload: hexutility.MustDecodeHex("8AFFFFFFFFFFFFFFFFFF7C"), expectPos: 11, expectRes: new(uint256.Int).SetBytes(hexutility.MustDecodeHex("FFFFFFFFFFFFFFFFFF7C"))}, + {payload: hexutility.MustDecodeHex("85CE05050505"), expectPos: 6, expectRes: new(uint256.Int).SetUint64(0xCE05050505)}, + {payload: hexutility.MustDecodeHex("820400"), expectPos: 3, expectRes: new(uint256.Int).SetUint64(1024)}, + {payload: hexutility.MustDecodeHex("07"), expectPos: 1, expectRes: new(uint256.Int).SetUint64(7)}, + {payload: hexutility.MustDecodeHex("8107"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("B8020004"), expectErr: fmt.Errorf("%w: non-canonical size information", ErrParse)}, + {payload: hexutility.MustDecodeHex("C0"), expectErr: fmt.Errorf("%w: must be a string, instead of a list", ErrParse)}, + {payload: hexutility.MustDecodeHex("00"), expectErr: fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: 00", ErrParse)}, + {payload: hexutility.MustDecodeHex("A101000000000000000000000000000000000000008B000000000000000000000000"), expectErr: fmt.Errorf("%w: uint256 must not be more than 32 bytes long, got 33", ErrParse)}, +} + +func TestPrimitives(t *testing.T) { + for i, tt := range parseU64Tests { + t.Run(fmt.Sprintf("%d", i), func(t *testing.T) { + assert := assert.New(t) + pos, res, err := U64(tt.payload, 0) + assert.Equal(tt.expectErr, err) + assert.Equal(tt.expectPos, pos) + assert.Equal(tt.expectRes, res) + }) + } + for i, tt := range parseU32Tests { + t.Run(fmt.Sprintf("%d", i), func(t *testing.T) { + assert := assert.New(t) + pos, res, err := U32(tt.payload, 0) + assert.Equal(tt.expectErr, err) + assert.Equal(tt.expectPos, pos) + assert.Equal(tt.expectRes, res) + }) + } + for i, tt := range parseU256Tests { + t.Run(fmt.Sprintf("%d", i), func(t *testing.T) { + assert := assert.New(t) + res := new(uint256.Int) + pos, err := U256(tt.payload, 0, res) + assert.Equal(tt.expectErr, err) + assert.Equal(tt.expectPos, pos) + if err == nil { + assert.Equal(tt.expectRes, res) + } + }) + } +} diff --git a/erigon-lib/rlp2/readme.md b/erigon-lib/rlp2/readme.md new file mode 100644 index 00000000000..74e9f96eeb4 --- /dev/null +++ b/erigon-lib/rlp2/readme.md @@ -0,0 +1,11 @@ +## rlp + + +TERMINOLOGY: + +``` +RLP string = "Blob" // this is so we don't conflict with existing go name for String +RLP list = "List" // luckily we can keep using list name since go doesn't use it +RLP single byte number = "Decimal" // for numbers from 1-127. a special case +``` + diff --git a/erigon-lib/rlp2/types.go b/erigon-lib/rlp2/types.go new file mode 100644 index 00000000000..f33bdfdc25d --- /dev/null +++ b/erigon-lib/rlp2/types.go @@ -0,0 +1,59 @@ +package rlp + +import ( + "fmt" + + "github.com/holiman/uint256" +) + +func Bytes(dst *[]byte, src []byte) error { + if len(*dst) < len(src) { + (*dst) = make([]byte, len(src)) + } + copy(*dst, src) + return nil +} +func BytesExact(dst *[]byte, src []byte) error { + if len(*dst) != len(src) { + return fmt.Errorf("%w: BytesExact no match", ErrDecode) + } + copy(*dst, src) + return nil +} + +func Uint256(dst *uint256.Int, src []byte) error { + if len(src) > 32 { + return fmt.Errorf("%w: uint256 must not be more than 32 bytes long, got %d", ErrParse, len(src)) + } + if len(src) > 0 && src[0] == 0 { + return fmt.Errorf("%w: integer encoding for RLP must not have leading zeros: %x", ErrParse, src) + } + dst.SetBytes(src) + return nil +} + +func Uint64(dst *uint64, src []byte) error { + var r uint64 + for _, b := range src { + r = (r << 8) | uint64(b) + } + (*dst) = r + return nil +} + +func IsEmpty(dst *bool, src []byte) error { + if len(src) == 0 { + (*dst) = true + } else { + (*dst) = false + } + return nil +} +func BlobLength(dst *int, src []byte) error { + (*dst) = len(src) + return nil +} + +func Skip(dst *int, src []byte) error { + return nil +} diff --git a/erigon-lib/rlp2/unmarshaler.go b/erigon-lib/rlp2/unmarshaler.go new file mode 100644 index 00000000000..16c42a1f2f6 --- /dev/null +++ b/erigon-lib/rlp2/unmarshaler.go @@ -0,0 +1,191 @@ +package rlp + +import ( + "fmt" + "reflect" +) + +type Unmarshaler interface { + UnmarshalRLP(data []byte) error +} + +func Unmarshal(data []byte, val any) error { + buf := newBuf(data, 0) + return unmarshal(buf, val) +} + +func unmarshal(buf *buf, val any) error { + rv := reflect.ValueOf(val) + if rv.Kind() != reflect.Pointer || rv.IsNil() { + return fmt.Errorf("%w: v must be ptr", ErrDecode) + } + v := rv.Elem() + err := reflectAny(buf, v, rv) + if err != nil { + return fmt.Errorf("%w: %w", ErrDecode, err) + } + return nil +} + +func reflectAny(w *buf, v reflect.Value, rv reflect.Value) error { + if um, ok := rv.Interface().(Unmarshaler); ok { + return um.UnmarshalRLP(w.Bytes()) + } + // figure out what we are reading + prefix, err := w.ReadByte() + if err != nil { + return err + } + token := identifyToken(prefix) + // switch + switch token { + case TokenDecimal: + // in this case, the value is just the byte itself + switch v.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + v.SetInt(int64(prefix)) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + v.SetUint(uint64(prefix)) + case reflect.Invalid: + // do nothing + default: + return fmt.Errorf("%w: decimal must be unmarshal into integer type", ErrDecode) + } + case TokenShortBlob: + sz := int(token.Diff(prefix)) + str, err := nextFull(w, sz) + if err != nil { + return err + } + return putBlob(str, v, rv) + case TokenLongBlob: + lenSz := int(token.Diff(prefix)) + sz, err := nextBeInt(w, lenSz) + if err != nil { + return err + } + str, err := nextFull(w, sz) + if err != nil { + return err + } + return putBlob(str, v, rv) + case TokenShortList: + sz := int(token.Diff(prefix)) + buf, err := nextFull(w, sz) + if err != nil { + return err + } + return reflectList(newBuf(buf, 0), v, rv) + case TokenLongList: + lenSz := int(token.Diff(prefix)) + sz, err := nextBeInt(w, lenSz) + if err != nil { + return err + } + buf, err := nextFull(w, sz) + if err != nil { + return err + } + return reflectList(newBuf(buf, 0), v, rv) + case TokenUnknown: + return fmt.Errorf("%w: unknown token", ErrDecode) + } + return nil +} + +func putBlob(w []byte, v reflect.Value, rv reflect.Value) error { + switch v.Kind() { + case reflect.String: + v.SetString(string(w)) + case reflect.Slice: + if v.Type().Elem().Kind() != reflect.Uint8 { + return fmt.Errorf("%w: need to use uint8 as underlying if want slice output from longstring", ErrDecode) + } + v.SetBytes(w) + case reflect.Array: + if v.Type().Elem().Kind() != reflect.Uint8 { + return fmt.Errorf("%w: need to use uint8 as underlying if want array output from longstring", ErrDecode) + } + reflect.Copy(v, reflect.ValueOf(w)) + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + val, err := BeInt(w, 0, len(w)) + if err != nil { + return err + } + v.SetInt(int64(val)) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + val, err := BeInt(w, 0, len(w)) + if err != nil { + return err + } + v.SetUint(uint64(val)) + case reflect.Invalid: + // do nothing + return nil + } + return nil +} + +func reflectList(w *buf, v reflect.Value, rv reflect.Value) error { + switch v.Kind() { + case reflect.Invalid: + // do nothing + return nil + case reflect.Map: + rv1 := reflect.New(v.Type().Key()) + v1 := rv1.Elem() + err := reflectAny(w, v1, rv1) + if err != nil { + return err + } + rv2 := reflect.New(v.Type().Elem()) + v2 := rv2.Elem() + err = reflectAny(w, v2, rv2) + if err != nil { + return err + } + v.SetMapIndex(rv1, rv2) + case reflect.Struct: + for idx := 0; idx < v.NumField(); idx++ { + // Decode into element. + rv1 := v.Field(idx).Addr() + rt1 := v.Type().Field(idx) + v1 := rv1.Elem() + shouldSet := rt1.IsExported() + if shouldSet { + err := reflectAny(w, v1, rv1) + if err != nil { + return err + } + } + } + case reflect.Array, reflect.Slice: + idx := 0 + for { + if idx >= v.Cap() { + v.Grow(1) + } + if idx >= v.Len() { + v.SetLen(idx + 1) + } + if idx < v.Len() { + // Decode into element. + rv1 := v.Index(idx) + v1 := rv1.Elem() + err := reflectAny(w, v1, rv1) + if err != nil { + return err + } + } else { + // Ran out of fixed array: skip. + rv1 := reflect.Value{} + err := reflectAny(w, rv1, rv1) + if err != nil { + return err + } + } + idx++ + } + } + return nil +} diff --git a/erigon-lib/rlp2/unmarshaler_test.go b/erigon-lib/rlp2/unmarshaler_test.go new file mode 100644 index 00000000000..07ad0dc015a --- /dev/null +++ b/erigon-lib/rlp2/unmarshaler_test.go @@ -0,0 +1,66 @@ +package rlp_test + +import ( + "testing" + + rlp "github.com/ledgerwatch/erigon-lib/rlp2" + "github.com/stretchr/testify/require" +) + +type plusOne int + +func (p *plusOne) UnmarshalRLP(data []byte) error { + var s int + err := rlp.Unmarshal(data, &s) + if err != nil { + return err + } + (*p) = plusOne(s + 1) + return nil +} + +func TestDecoder(t *testing.T) { + + type simple struct { + Key string + Value string + } + + t.Run("ShortString", func(t *testing.T) { + t.Run("ToString", func(t *testing.T) { + bts := []byte{0x83, 'd', 'o', 'g'} + var s string + err := rlp.Unmarshal(bts, &s) + require.NoError(t, err) + require.EqualValues(t, "dog", s) + }) + t.Run("ToBytes", func(t *testing.T) { + bts := []byte{0x83, 'd', 'o', 'g'} + var s []byte + err := rlp.Unmarshal(bts, &s) + require.NoError(t, err) + require.EqualValues(t, []byte("dog"), s) + }) + t.Run("ToInt", func(t *testing.T) { + bts := []byte{0x82, 0x04, 0x00} + var s int + err := rlp.Unmarshal(bts, &s) + require.NoError(t, err) + require.EqualValues(t, 1024, s) + }) + t.Run("ToIntUnmarshaler", func(t *testing.T) { + bts := []byte{0x82, 0x04, 0x00} + var s plusOne + err := rlp.Unmarshal(bts, &s) + require.NoError(t, err) + require.EqualValues(t, plusOne(1025), s) + }) + t.Run("ToSimpleStruct", func(t *testing.T) { + bts := []byte{0xc8, 0x83, 'c', 'a', 't', 0x83, 'd', 'o', 'g'} + var s simple + err := rlp.Unmarshal(bts, &s) + require.NoError(t, err) + require.EqualValues(t, simple{Key: "cat", Value: "dog"}, s) + }) + }) +} diff --git a/erigon-lib/rlp2/util.go b/erigon-lib/rlp2/util.go new file mode 100644 index 00000000000..0219e1d3953 --- /dev/null +++ b/erigon-lib/rlp2/util.go @@ -0,0 +1,84 @@ +package rlp + +type Token int32 + +func (T Token) String() string { + switch T { + case TokenDecimal: + return "decimal" + case TokenShortBlob: + return "short_blob" + case TokenLongBlob: + return "long_blob" + case TokenShortList: + return "short_list" + case TokenLongList: + return "long_list" + case TokenEOF: + return "eof" + case TokenUnknown: + return "unknown" + default: + return "nan" + } +} + +func (T Token) Plus(n byte) byte { + return byte(T) + n +} + +func (T Token) Diff(n byte) byte { + return n - byte(T) +} + +func (T Token) IsListType() bool { + return T == TokenLongList || T == TokenShortList +} + +func (T Token) IsBlobType() bool { + return T == TokenLongBlob || T == TokenShortBlob +} + +const ( + TokenDecimal Token = 0x00 + TokenShortBlob Token = 0x80 + TokenLongBlob Token = 0xb7 + TokenShortList Token = 0xc0 + TokenLongList Token = 0xf7 + + TokenUnknown Token = 0xff01 + TokenEOF Token = 0xdead +) + +func identifyToken(b byte) Token { + switch { + case b <= 127: + return TokenDecimal + case b >= 128 && b <= 183: + return TokenShortBlob + case b >= 184 && b <= 191: + return TokenLongBlob + case b >= 192 && b <= 247: + return TokenShortList + case b >= 248 && b <= 255: + return TokenLongList + } + return TokenUnknown +} + +// BeInt parses Big Endian representation of an integer from given payload at given position +func nextBeInt(w *buf, length int) (int, error) { + dat, err := nextFull(w, length) + if err != nil { + return 0, ErrUnexpectedEOF + } + return BeInt(dat, 0, length) +} + +func nextFull(dat *buf, size int) ([]byte, error) { + d := dat.Next(size) + if len(d) != size { + return nil, ErrUnexpectedEOF + } + return d, nil +} diff --git a/erigon-lib/rules.go b/erigon-lib/rules.go new file mode 100644 index 00000000000..7af2a3957e9 --- /dev/null +++ b/erigon-lib/rules.go @@ -0,0 +1,87 @@ +//go:build gorules +// +build gorules + +package gorules + +// https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module +// to apply changes in this file, please do: ./build/bin/golangci-lint cache clean +import ( + "github.com/quasilyte/go-ruleguard/dsl" + //quasilyterules "github.com/quasilyte/ruleguard-rules-test" +) + +func init() { + //dsl.ImportRules("qrules", quasilyterules.Bundle) +} + +func txDeferRollback(m dsl.Matcher) { + // Common pattern for long-living transactions: + // tx, err := db.Begin() + // if err != nil { + // return err + // } + // defer tx.Rollback() + // + // ... code which uses database in transaction + // + // err := tx.Commit() + // if err != nil { + // return err + // } + + m.Match( + `$tx, $err := $db.BeginRw($ctx); $chk; $rollback`, + `$tx, $err = $db.BeginRw($ctx); $chk; $rollback`, + `$tx, $err := $db.Begin($ctx); $chk; $rollback`, + `$tx, $err = $db.Begin($ctx); $chk; $rollback`, + `$tx, $err := $db.BeginRo($ctx); $chk; $rollback`, + `$tx, $err = $db.BeginRo($ctx); $chk; $rollback`, + ). + Where(!m["rollback"].Text.Matches(`defer .*\.Rollback()`)). + //At(m["rollback"]). + Report(`Add "defer $tx.Rollback()" right after transaction creation error check. + If you are in the loop - consider use "$db.View" or "$db.Update" or extract whole transaction to function. + Without rollback in defer - app can deadlock on error or panic. + Rules are in ./rules.go file. + `) +} + +func closeCollector(m dsl.Matcher) { + m.Match(`$c := etl.NewCollector($*_); $close`). + Where(!m["close"].Text.Matches(`defer .*\.Close()`)). + Report(`Add "defer $c.Close()" right after collector creation`) +} + +func closeLockedDir(m dsl.Matcher) { + m.Match(`$c := dir.OpenRw($*_); $close`). + Where(!m["close"].Text.Matches(`defer .*\.Close()`)). + Report(`Add "defer $c.Close()" after locked.OpenDir`) +} + +func passValuesByContext(m dsl.Matcher) { + m.Match(`ctx.WithValue($*_)`).Report(`Don't pass app-level parameters by context, pass them as-is or as typed objects`) +} + +func mismatchingUnlock(m dsl.Matcher) { + // By default, an entire match position is used as a location. + // This can be changed by the At() method that binds the location + // to the provided named submatch. + // + // In the rules below text editor would get mismatching method + // name locations: + // + // defer mu.RUnlock() + // ^^^^^^^ + + m.Match(`$mu.Lock(); defer $mu.$unlock()`). + Where(m["unlock"].Text == "RUnlock"). + At(m["unlock"]). + Report(`maybe $mu.Unlock() was intended? + Rules are in ./rules.go file.`) + + m.Match(`$mu.RLock(); defer $mu.$unlock()`). + Where(m["unlock"].Text == "Unlock"). + At(m["unlock"]). + Report(`maybe $mu.RUnlock() was intended? + Rules are in ./rules.go file.`) +} diff --git a/erigon-lib/sais/README.md b/erigon-lib/sais/README.md new file mode 100644 index 00000000000..60b21535685 --- /dev/null +++ b/erigon-lib/sais/README.md @@ -0,0 +1,2 @@ +sais C code is a fork of sais-lite-LCP by Johannes Fischer: +https://github.com/elventear/sais-lite-lcp diff --git a/erigon-lib/sais/gsa/LICENSE b/erigon-lib/sais/gsa/LICENSE new file mode 100644 index 00000000000..6bce52f179b --- /dev/null +++ b/erigon-lib/sais/gsa/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Felipe A. Louza, Simon Gog, Guilherme P. Telles + +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. \ No newline at end of file diff --git a/erigon-lib/sais/gsa/README.md b/erigon-lib/sais/gsa/README.md new file mode 100644 index 00000000000..ec6eb0b3f1c --- /dev/null +++ b/erigon-lib/sais/gsa/README.md @@ -0,0 +1,2 @@ +gsacak C code is a fork of gsa-is: +https://github.com/felipelouza/gsa-is diff --git a/erigon-lib/sais/gsa/gsa_test.go b/erigon-lib/sais/gsa/gsa_test.go new file mode 100644 index 00000000000..20bb9a68422 --- /dev/null +++ b/erigon-lib/sais/gsa/gsa_test.go @@ -0,0 +1,78 @@ +package gsa + +import ( + "fmt" + "testing" + + "github.com/ledgerwatch/erigon-lib/sais" + "github.com/stretchr/testify/assert" +) + +func TestExampleGSA(t *testing.T) { + R := [][]byte{ + []byte("hihi"), + []byte("alexhihialex"), + []byte("alex"), + } + str, n := ConcatAll(R) + sa := make([]uint, n) + lcp := make([]int, n) + da := make([]int32, n) + _ = GSA(str, sa, lcp, da) + + fmt.Printf("sa: %d, lcp: %d\n", sa, lcp) + PrintArrays(str, sa, lcp, da) + PrintRepeats(str, sa, da) + gsa := SA2GSA(sa, da) + fmt.Printf("gsa: %d, da: %d\n", gsa, da) +} + +func TestGSA(t *testing.T) { + R := [][]byte{{4, 5, 6, 4, 5, 6, 4, 5, 6}} + str, n := ConcatAll(R) + sa := make([]uint, n) + lcp := make([]int, n) + da := make([]int32, n) + _ = GSA(str, sa, lcp, da) + assert.Equal(t, []uint{10, 9, 6, 3, 0, 7, 4, 1, 8, 5, 2}, sa[:n]) +} + +const N = 100_000 + +func BenchmarkName(b *testing.B) { + R := make([][]byte, 0, N) + for i := 0; i < N; i++ { + R = append(R, []byte("hihihi")) + } + superstring := make([]byte, 0, 1024) + + for _, a := range R { + for _, b := range a { + superstring = append(superstring, 1, b) + } + superstring = append(superstring, 0, 0) + } + + sa := make([]int32, len(superstring)) + b.ResetTimer() + for i := 0; i < b.N; i++ { + err := sais.Sais(superstring, sa) + if err != nil { + panic(err) + } + } +} +func BenchmarkName2(b *testing.B) { + R := make([][]byte, 0, N) + for i := 0; i < N; i++ { + R = append(R, []byte("hihihi")) + } + str, n := ConcatAll(R) + sa := make([]uint, n) + lcp := make([]int, n) + da := make([]int32, n) + b.ResetTimer() + for i := 0; i < b.N; i++ { + _ = GSA(str, sa, lcp, da) + } +} diff --git a/erigon-lib/sais/gsa/gsaca.go b/erigon-lib/sais/gsa/gsaca.go new file mode 100644 index 00000000000..fe8facdbe23 --- /dev/null +++ b/erigon-lib/sais/gsa/gsaca.go @@ -0,0 +1,169 @@ +package gsa + +/* +#include "gsacak.h" +#cgo CFLAGS: -DTERMINATOR=0 -DM64=1 -Dm64=1 -std=c99 +*/ +import "C" +import ( + "fmt" + "unsafe" +) + +// Implementation from https://github.com/felipelouza/gsufsort +// see also: https://almob.biomedcentral.com/track/pdf/10.1186/s13015-020-00177-y.pdf +// see also: https://almob.biomedcentral.com/track/pdf/10.1186/s13015-017-0117-9.pdf +func PrintArrays(str []byte, sa []uint, lcp []int, da []int32) { + // remove terminator + n := len(sa) - 1 + sa = sa[1:] + lcp = lcp[1:] + da = da[1:] + + fmt.Printf("i\t") + fmt.Printf("sa\t") + if lcp != nil { + fmt.Printf("lcp\t") + } + if da != nil { + fmt.Printf("gsa\t") + } + fmt.Printf("suffixes\t") + fmt.Printf("\n") + for i := 0; i < n; i++ { + fmt.Printf("%d\t", i) + fmt.Printf("%d\t", sa[i]) + if lcp != nil { + fmt.Printf("%d\t", lcp[i]) + } + + if da != nil { // gsa + value := sa[i] + if da[i] != 0 { + value = sa[i] - sa[da[i]-1] - 1 + } + fmt.Printf("(%d %d)\t", da[i], value) + } + //bwt + // char c = (SA[i])? T[SA[i]-1]-1:terminal; + // if(c==0) c = '$'; + // printf("%c\t",c); + + for j := sa[i]; int(j) < n; j++ { + if str[j] == 1 { + fmt.Printf("$") + break + } else if str[j] == 0 { + fmt.Printf("#") + } else { + fmt.Printf("%c", str[j]-1) + } + } + fmt.Printf("\n") + } +} + +// nolint +// SA2GSA - example func to convert SA+DA to GSA +func SA2GSA(sa []uint, da []int32) []uint { + // remove terminator + sa = sa[1:] + da = da[1:] + n := len(sa) - 1 + + gsa := make([]uint, n) + copy(gsa, sa) + + for i := 0; i < n; i++ { + if da[i] != 0 { + gsa[i] = sa[i] - sa[da[i]-1] - 1 + } + } + return gsa +} + +func PrintRepeats(str []byte, sa []uint, da []int32) { + sa = sa[1:] + da = da[1:] + n := len(sa) - 1 + var repeats int + for i := 0; i < len(da)-1; i++ { + repeats++ + if da[i] < da[i+1] { // same suffix + continue + } + + // new suffix + fmt.Printf(" repeats: %d\t", repeats) + for j := sa[i]; int(j) < n; j++ { + if str[j] == 1 { + //fmt.Printf("$") + break + } else if str[j] == 0 { + fmt.Printf("#") + } else { + fmt.Printf("%c", str[j]-1) + } + } + fmt.Printf("\n") + + repeats = 0 + } +} + +func GSA(data []byte, sa []uint, lcp []int, da []int32) error { + tPtr := unsafe.Pointer(&data[0]) // source "text" + var lcpPtr, saPtr, daPtr unsafe.Pointer + if sa != nil { + saPtr = unsafe.Pointer(&sa[0]) + } + if lcp != nil { + lcpPtr = unsafe.Pointer(&lcp[0]) + } + if da != nil { + daPtr = unsafe.Pointer(&da[0]) + } + depth := C.gsacak( + (*C.uchar)(tPtr), + (*C.uint_t)(saPtr), + (*C.int_t)(lcpPtr), + (*C.int_da)(daPtr), + C.uint_t(len(data)), + ) + _ = depth + return nil +} + +func ConcatAll(R [][]byte) (str []byte, n int) { + for i := 0; i < len(R); i++ { + n += len(R[i]) + 1 + } + + n++ //add 0 at the end + str = make([]byte, n) + var l, max int + k := len(R) + + for i := 0; i < k; i++ { + m := len(R[i]) + if m > max { + max = m + } + for j := 0; j < m; j++ { + if R[i][j] < 255 && R[i][j] > 1 { + str[l] = R[i][j] + 1 + l++ + } + } + if m > 0 { + if str[l-1] > 1 { + str[l] = 1 + l++ + } //add 1 as separator (ignores empty entries) + } + } + str[l] = 0 + l++ + n = l + return str, n +} diff --git a/erigon-lib/sais/gsa/gsacak.c b/erigon-lib/sais/gsa/gsacak.c new file mode 100644 index 00000000000..054ec216676 --- /dev/null +++ b/erigon-lib/sais/gsa/gsacak.c @@ -0,0 +1,2536 @@ +// vim: noai:ts=2:sw=2 + +#include "gsacak.h" + +// set only the highest bit as 1, i.e. 1000... +//const unsigned int EMPTY_k=((unsigned int)1)<<(sizeof(unsigned int)*8-1); +const uint_t EMPTY_k=((uint_t)1)<<(sizeof(uint_t)*8-1); + +// get s[i] at a certain level +#define chr(i) (cs==sizeof(int_t)?((int_t*)s)[i]:(cs==sizeof(int_text)?((int_text*)s)[i]:((unsigned char *)s)[i])) + +#define true 1 +#define false 0 + +#define DEPTH 0 // compute time and size of reduced problem for each recursion call +#define PHASES 0 // compute time for each phase +#define RMQ_L 2 //variants = (1, trivial) (2, using Gog's stack) +#define RMQ_S 2 //variants = (1, trivial) (2, using Gog's stack) + +#define STACK_SIZE_L 894 //to use 10Kb of working space +#define STACK_SIZE_S 894 //to use 10Kb of working space + +#define EMPTY_STRING 0 //check if there is an empty string in the input collection + +typedef struct _pair{ + uint_t idx; + int_t lcp; +} t_pair_k; + +int compare_k (const void * a, const void * b){ + if(*(const uint_t *)a < *(const uint_t *)b) return -1; + if(*(const uint_t *)a > *(const uint_t *)b) return 1; +return 0; +} + +void stack_push_k(t_pair_k* STACK, int_t *top, uint_t idx, int_t lcp){ + + STACK[*top].idx=idx; + STACK[*top].lcp=lcp; + + (*top)++; +} + +void compute_lcp_phi_sparse(int_t *s, uint_t *SA1, + uint_t *RA, int_t *LCP, int_t *PLCP, + uint_t n1, int cs, uint_t separator) { + + uint_t i; + + PLCP[SA1[0]]=0;//PLCP* (lms) is stored in PLCP array + for(i=1; i0; i--) { + j=SA[i]; SA[i]=0; + SA[bkt[chr(j)]--]=j; + } + SA[0]=n-1; // set the single sentinel suffix. +} + +void putSuffix0_generalized(uint_t *SA, + uint_t *s, uint_t *bkt, + uint_t n, unsigned int K, int_t n1, int cs, uint_t separator) { + uint_t i, j; + + // find the end of each bucket. + getBuckets_k((int_t*)s, bkt, n, K, true, cs); + + int_t tmp=bkt[separator]--;// shifts one position left of bkt[separator] + + // put the suffixes into their buckets. + for(i=n1-1; i>0; i--) { + j=SA[i]; SA[i]=0; + SA[bkt[chr(j)]--]=j; + } + + // SA[0]=n-1; // set the single sentinel suffix. + + SA[tmp]=SA[0]-1;// insert the last separator at the end of bkt[separator] + +} + +void putSuffix0_generalized_LCP(uint_t *SA, int_t *LCP, + uint_t *s, uint_t *bkt, + uint_t n, unsigned int K, int_t n1, int cs, uint_t separator) { + uint_t i, j; + int_t l; + + // find the end of each bucket. + getBuckets_k((int_t*)s, bkt, n, K, true, cs); + + int_t tmp=bkt[separator]--;// shifts one position left of bkt[separator] + + // put the suffixes into their buckets. + for(i=n1-1; i>0; i--) { + j=SA[i]; SA[i]=U_MAX; + l=LCP[i]; LCP[i]=0; + + SA[bkt[chr(j)]]=j; + LCP[bkt[chr(j)]--]=l; + } + + // SA[0]=n-1; // set the single sentinel suffix. + + SA[tmp]=SA[0]-1;// insert the last separator at the end of bkt[separator] + +} + +void putSuffix0_generalized_DA(uint_t *SA, int_da *DA, + uint_t *s, uint_t *bkt, + uint_t n, unsigned int K, int_t n1, int cs, uint_t separator) { + uint_t i, j; + + // find the end of each bucket. + getBuckets_k((int_t*)s, bkt, n, K, true, cs); + + int_t tmp=bkt[separator]--;// shifts one position left of bkt[separator] + + // put the suffixes into their buckets. + for(i=n1-1; i>0; i--) { + j=SA[i]; SA[i]=0; + SA[bkt[chr(j)]]=j; + DA[bkt[chr(j)]--]=DA[i]; + } + + // SA[0]=n-1; // set the single sentinel suffix. + + SA[tmp]=SA[0]-1;// insert the last separator at the end of bkt[separator] + DA[tmp]= (int_da) tmp-1; + +} + + +void putSuffix0_generalized_LCP_DA(uint_t *SA, int_t *LCP, int_da *DA, + uint_t *s, uint_t *bkt, + uint_t n, unsigned int K, int_t n1, int cs, uint_t separator) { + uint_t i, j; + int_t l; + + // find the end of each bucket. + getBuckets_k((int_t*)s, bkt, n, K, true, cs); + + int_t tmp=bkt[separator]--;// shifts one position left of bkt[separator] + + // put the suffixes into their buckets. + for(i=n1-1; i>0; i--) { + j=SA[i]; SA[i]=U_MAX; + l=LCP[i]; LCP[i]=0; + + SA[bkt[chr(j)]]=j; + DA[bkt[chr(j)]]=DA[i]; + LCP[bkt[chr(j)]--]=l; + } + + // SA[0]=n-1; // set the single sentinel suffix. + + SA[tmp]=SA[0]-1;// insert the last separator at the end of bkt[separator] + DA[tmp]= (int_da) tmp-1; +} + +/*****************************************************************************/ + +void induceSAl0(uint_t *SA, + int_t *s, uint_t *bkt, + uint_t n, unsigned int K, int_t suffix, int cs) { + uint_t i, j; + + // find the head of each bucket. + getBuckets_k(s, bkt, n, K, false, cs); + + bkt[0]++; // skip the virtual sentinel. + for(i=0; i0) { + j=SA[i]-1; + if(chr(j)>=chr(j+1)) { + SA[bkt[chr(j)]]=j; + bkt[chr(j)]++; + if(!suffix && i>0) SA[i]=0; + } + } +} + +void induceSAs0(uint_t *SA, + int_t *s, uint_t *bkt, + uint_t n, unsigned int K, int_t suffix, int cs) { + uint_t i, j; + + // find the end of each bucket. + getBuckets_k(s, bkt, n, K, true, cs); + + for(i=n-1; i>0; i--) + if(SA[i]>0) { + j=SA[i]-1; + if(chr(j)<=chr(j+1) && bkt[chr(j)]0) { + j=SA[i]-1; + if(chr(j)>=chr(j+1) ) { + if(chr(j)!=separator)//gsa-is + SA[bkt[chr(j)]++]=j; + if(!suffix && i>0) SA[i]=0; + } + } +} + +void induceSAs0_generalized(uint_t *SA, + uint_t *s, uint_t *bkt, + uint_t n, uint_t K, int_t suffix, int cs, uint_t separator) { + uint_t i, j; + + // find the end of each bucket. + getBuckets_k((int_t*)s, bkt, n, K, true, cs); + + for(i=n-1; i>0; i--) + if(SA[i]>0) { + j=SA[i]-1; + if(chr(j)<=chr(j+1) && bkt[chr(j)]LCP[i]) M[k] = max(0,LCP[i]); + #elif RMQ_L == 2 + int_t min_lcp=0; + uint_t last; + + if(!SA[i]) last = 0; + else{ + last = last_occ[chr(SA[i]-1)]; + last_occ[chr(SA[i]-1)] = i+1; + } + + int_t lcp=max(0,LCP[i]); + while(STACK[(top)-1].lcp>=lcp) (top)--; + + stack_push_k(STACK, &top, i+1, lcp); + j = top-1; + + while(STACK[j].idx>last) j--; + min_lcp=STACK[(j+1)].lcp; + + #endif + + if(SA[i]>0) { + j=SA[i]-1; + if(chr(j)>=chr(j+1)) + if(chr(j)!=separator){//gsa-is + SA[bkt[chr(j)]]=j; + + #if RMQ_L == 1 + LCP[bkt[chr(j)]]+=M[chr(j)]+1; + M[chr(j)] = I_MAX; + #elif RMQ_L == 2 + LCP[bkt[chr(j)]]+=min_lcp+1; + #endif + + bkt[chr(j)]++; + } + if(bkt[chr(SA[i])]-1STACK_SIZE_L){//if stack is full + + int_t j; + memcpy(tmp, last_occ, K*sizeof(uint_t)); + qsort(tmp, K, sizeof(uint_t), compare_k); + + int_t curr=1, end=1; + STACK[top].idx=U_MAX; + for(j=0;j=STACK_SIZE_L){ + fprintf(stderr,"ERROR: induceSAl0_LCP\n"); + exit(1); + } + + top = end; + } + #endif + } + } + #if RMQ_L == 1 + free(M); + #elif RMQ_L == 2 + free(STACK); + free(last_occ); + free(tmp); + #endif + +} + +void induceSAs0_generalized_LCP(uint_t *SA, int_t* LCP, + uint_t *s, uint_t *bkt, + uint_t n, uint_t K, int cs, uint_t separator) { + uint_t i, j; + + // find the end of each bucket. + getBuckets_k((int_t*)s, bkt, n, K, true, cs); + + #if RMQ_S == 1 + int_t *M=(int_t *)malloc(sizeof(int_t)*K); + for(i=0;i0; i--){ + if(SA[i]>0) { + j=SA[i]-1; + if(chr(j)<=chr(j+1) && bkt[chr(j)]=0) + LCP[bkt[chr(j)]+1]=M[chr(j)]+1; + + if(LCP[bkt[chr(j)]]>0) + LCP[bkt[chr(j)]]=I_MAX; + + #elif RMQ_S == 2 + int_t min = I_MAX, end = top-1; + + int_t last=last_occ[chr(j)]; + while(STACK[end].idx<=last) end--; + + min=STACK[(end+1)].lcp; + last_occ[chr(j)] = i; + + if(LCP[bkt[chr(j)]+1]>=0) + LCP[bkt[chr(j)]+1]=min+1; + #endif + + + #if RMQ_S == 1 + M[chr(j)] = I_MAX; + #endif + + bkt[chr(j)]--; + + if(SA[bkt[chr(j)]]!=U_MAX) {//L/S-seam + int_t l=0; + while(chr(SA[bkt[chr(j)]+1]+l)==chr(SA[bkt[chr(j)]]+l))++l; + LCP[bkt[chr(j)]+1]=l; + } + } + } + + if(LCP[i]<0) LCP[i]=0; + #if RMQ_S == 1 + int_t k; + for(k=0; kLCP[i]) M[k] = LCP[i]; + #elif RMQ_S == 2 + + int_t lcp=max(0,LCP[i]); + + while(STACK[(top)-1].lcp>=lcp) (top)--; + stack_push_k(STACK, &top, i, lcp); + + if(top>=STACK_SIZE_S){ + + int_t j; + memcpy(tmp, last_occ, K*sizeof(uint_t)); + qsort(tmp, K, sizeof(uint_t), compare_k); + + int_t curr=1, end=1; + + for(j=K-1;j>=0; j--){ + + if(tmp[j] < STACK[end-1].idx){ + + while(STACK[curr].idx>tmp[j] && curr < top) curr++; + if(curr>=top) break; + stack_push_k(STACK, &end, STACK[curr].idx, STACK[curr].lcp); + curr++; + } + } + + if(end>=STACK_SIZE_S){ + fprintf(stderr,"ERROR: induceSAl0_LCP\n"); + exit(1); + } + top = end; + } + #endif + + } + + LCP[0]=0; + + //variant 1 + #if RMQ_S == 1 + free(M); + #elif RMQ_S == 2 + free(STACK); + free(last_occ); + free(tmp); + #endif +} + + +/*****************************************************************************/ + +void induceSAl0_generalized_DA(uint_t *SA, int_da* DA, + uint_t *s, uint_t *bkt, + uint_t n, unsigned int K, int cs, uint_t separator) { + uint_t i, j; + + // find the head of each bucket. + getBuckets_k((int_t*)s, bkt, n, K, false, cs); + + bkt[0]++; // skip the virtual sentinel. + for(i=0; i0) { + j=SA[i]-1; + if(chr(j)>=chr(j+1) ) { + if(chr(j)!=separator){//gsa-is + SA[bkt[chr(j)]]=j; + DA[bkt[chr(j)]++]=DA[i]; + } + } + } +} + +void induceSAs0_generalized_DA(uint_t *SA, int_da* DA, + uint_t *s, uint_t *bkt, + uint_t n, uint_t K, int cs, uint_t separator) { + uint_t i, j; + + // find the end of each bucket. + getBuckets_k((int_t*)s, bkt, n, K, true, cs); + + for(i=n-1; i>0; i--) + if(SA[i]>0) { + j=SA[i]-1; + if(chr(j)<=chr(j+1) && bkt[chr(j)]LCP[i]) M[k] = max(0,LCP[i]); + #elif RMQ_L == 2 + int_t min_lcp=0; + uint_t last; + + if(!SA[i]) last = 0; + else{ + last = last_occ[chr(SA[i]-1)]; + last_occ[chr(SA[i]-1)] = i+1; + } + + int_t lcp=max(0,LCP[i]); + while(STACK[(top)-1].lcp>=lcp) (top)--; + + stack_push_k(STACK, &top, i+1, lcp); + j = top-1; + + while(STACK[j].idx>last) j--; + min_lcp=STACK[(j+1)].lcp; + + #endif + + if(SA[i]>0) { + j=SA[i]-1; + if(chr(j)>=chr(j+1)) + if(chr(j)!=separator){//gsa-is + SA[bkt[chr(j)]]=j; + DA[bkt[chr(j)]]=DA[i]; + + #if RMQ_L == 1 + LCP[bkt[chr(j)]]+=M[chr(j)]+1; + M[chr(j)] = I_MAX; + #elif RMQ_L == 2 + LCP[bkt[chr(j)]]+=min_lcp+1; + #endif + + bkt[chr(j)]++; + } + if(bkt[chr(SA[i])]-1STACK_SIZE_L){//if stack is full + + int_t j; + memcpy(tmp, last_occ, K*sizeof(uint_t)); + qsort(tmp, K, sizeof(uint_t), compare_k); + + int_t curr=1, end=1; + STACK[top].idx=U_MAX; + for(j=0;j=STACK_SIZE_L){ + fprintf(stderr,"ERROR: induceSAl0_LCP\n"); + exit(1); + } + + top = end; + } + #endif + } + } + #if RMQ_L == 1 + free(M); + #elif RMQ_L == 2 + free(STACK); + free(last_occ); + free(tmp); + #endif + +} + +void induceSAs0_generalized_LCP_DA(uint_t *SA, int_t* LCP, int_da* DA, + uint_t *s, uint_t *bkt, + uint_t n, uint_t K, int cs, uint_t separator) { + uint_t i, j; + + // find the end of each bucket. + getBuckets_k((int_t*)s, bkt, n, K, true, cs); + + #if RMQ_S == 1 + int_t *M=(int_t *)malloc(sizeof(int_t)*K); + for(i=0;i0; i--){ + if(SA[i]>0) { + j=SA[i]-1; + if(chr(j)<=chr(j+1) && bkt[chr(j)]=0) + LCP[bkt[chr(j)]+1]=M[chr(j)]+1; + + if(LCP[bkt[chr(j)]]>0) + LCP[bkt[chr(j)]]=I_MAX; + + #elif RMQ_S == 2 + int_t min = I_MAX, end = top-1; + + int_t last=last_occ[chr(j)]; + while(STACK[end].idx<=last) end--; + + min=STACK[(end+1)].lcp; + last_occ[chr(j)] = i; + + if(LCP[bkt[chr(j)]+1]>=0) + LCP[bkt[chr(j)]+1]=min+1; + #endif + + + #if RMQ_S == 1 + M[chr(j)] = I_MAX; + #endif + + bkt[chr(j)]--; + + if(SA[bkt[chr(j)]]!=U_MAX) {//L/S-seam + int_t l=0; + while(chr(SA[bkt[chr(j)]+1]+l)==chr(SA[bkt[chr(j)]]+l))++l; + LCP[bkt[chr(j)]+1]=l; + } + } + } + + if(LCP[i]<0) LCP[i]=0; + #if RMQ_S == 1 + int_t k; + for(k=0; kLCP[i]) M[k] = LCP[i]; + #elif RMQ_S == 2 + + int_t lcp=max(0,LCP[i]); + + while(STACK[(top)-1].lcp>=lcp) (top)--; + stack_push_k(STACK, &top, i, lcp); + + if(top>=STACK_SIZE_S){ + + int_t j; + memcpy(tmp, last_occ, K*sizeof(uint_t)); + qsort(tmp, K, sizeof(uint_t), compare_k); + + int_t curr=1, end=1; + + for(j=K-1;j>=0; j--){ + + if(tmp[j] < STACK[end-1].idx){ + + while(STACK[curr].idx>tmp[j] && curr < top) curr++; + if(curr>=top) break; + stack_push_k(STACK, &end, STACK[curr].idx, STACK[curr].lcp); + curr++; + } + } + + if(end>=STACK_SIZE_S){ + fprintf(stderr,"ERROR: induceSAl0_LCP\n"); + exit(1); + } + top = end; + } + #endif + + } + + LCP[0]=0; + + //variant 1 + #if RMQ_S == 1 + free(M); + #elif RMQ_S == 2 + free(STACK); + free(last_occ); + free(tmp); + #endif +} + + +/*****************************************************************************/ + + +void putSubstr0(uint_t *SA, + int_t *s, uint_t *bkt, + uint_t n, unsigned int K, int cs) { + uint_t i, cur_t, succ_t; + + // find the end of each bucket. + getBuckets_k(s, bkt, n, K, true, cs); + + // set each item in SA as empty. + for(i=0; i0; i--) { + cur_t=(chr(i-1)0; i--) { + cur_t=(chr(i-1)0; i--) { + j=SA[i]; SA[i]=EMPTY_k; + cur=chr(j); + if(cur!=pre) { + pre=cur; pos=cur; + } + SA[pos--]=j; + } +} + +void induceSAl1(int_t *SA, int_t *s, + int_t n, int_t suffix, int cs) { + int_t h, i, j, step=1; + + for(i=0; i=c1; + if(!isL) continue; + + // s[j] is L-type. + + int_t d=SA[c]; + if(d>=0) { + // SA[c] is borrowed by the left + // neighbor bucket. + // shift-left the items in the + // left neighbor bucket. + int_t foo, bar; + foo=SA[c]; + for(h=c-1; SA[h]>=0||SA[h]==EMPTY_k; h--) + { bar=SA[h]; SA[h]=foo; foo=bar; } + SA[h]=foo; + if(hn-1 || SA[pos]!=EMPTY_k) { + // we are running into the right + // neighbor bucket. + // shift-left one step the items + // of bucket(SA, S, j). + for(h=0; h<-d; h++) + SA[c+h]=SA[c+h+1]; + pos--; + if(c(c2=chr(j+2)) || (c1==c2 && c10) { + int_t i1=(step==0)?i-1:i; + SA[i1]=EMPTY_k; + } + } + + // scan to shift-left the items in each bucket + // with its head being reused as a counter. + for(i=1; i0; i-=step) { + step=1; j=SA[i]-1; + if(SA[i]<=0) continue; + int_t c=chr(j), c1=chr(j+1); + int_t isS=(ci); + if(!isS) continue; + + // s[j] is S-type + + int_t d=SA[c]; + if(d>=0) { + // SA[c] is borrowed by the right + // neighbor bucket. + // shift-right the items in the + // right neighbor bucket. + int_t foo, bar; + foo=SA[c]; + for(h=c+1; SA[h]>=0||SA[h]==EMPTY_k; h++) + { bar=SA[h]; SA[h]=foo; foo=bar; } + SA[h]=foo; + if(h>i) step=0; + + d=EMPTY_k; + } + + if(d==EMPTY_k) { // SA[c] is empty. + if(SA[c-1]==EMPTY_k) { + SA[c]=-1; // init the counter. + SA[c-1]=j; + } + else + SA[c]=j; // a size-1 bucket. + } + else { // SA[c] is reused as a counter. + int_t pos=c+d-1; + if(SA[pos]!=EMPTY_k) { + // we are running into the left + // neighbor bucket. + // shift-right one step the items + // of bucket(SA, S, j). + for(h=0; h<-d; h++) + SA[c-h]=SA[c-h-1]; + pos++; + if(c>i) step=0; + } + else + SA[c]--; + + SA[pos]=j; + } + + if(!suffix) { + int_t i1=(step==0)?i+1:i; + SA[i1]=EMPTY_k; + } + } + + // scan to shift-right the items in each bucket + // with its head being reused as a counter. + if(!suffix) + for(i=n-1; i>0; i--) { + j=SA[i]; + if(j<0 && j!=EMPTY_k) { // is SA[i] a counter? + for(h=0; h<-j; h++) + SA[i-h]=SA[i-h-1]; + SA[i-h]=EMPTY_k; + } + } +} + +void putSubstr1(int_t *SA, int_t *s, int_t n, int cs) { + int_t h, i, j; + + for(i=0; i0; i--) { + c=c1; t=t1; + c1=chr(i-1); + t1=c1=0) { + // SA[c] is borrowed by the right + // neighbor bucket. + // shift-right the items in the + // right neighbor bucket. + int_t foo, bar; + foo=SA[c]; + for(h=c+1; SA[h]>=0; h++) + { bar=SA[h]; SA[h]=foo; foo=bar; } + SA[h]=foo; + + SA[c]=EMPTY_k; + } + + int_t d=SA[c]; + if(d==EMPTY_k) { // SA[c] is empty. + if(SA[c-1]==EMPTY_k) { + SA[c]=-1; // init the counter. + SA[c-1]=i; + } + else + SA[c]=i; // a size-1 bucket. + } + else { // SA[c] is reused as a counter + int_t pos=c+d-1; + if(SA[pos]!=EMPTY_k) { + // we are running into the left + // neighbor bucket. + // shift-right one step the items + // of bucket(SA, S, i). + for(h=0; h<-d; h++) + SA[c-h]=SA[c-h-1]; + pos++; + } + else + SA[c]--; + + SA[pos]=i; + } + } + } + + // scan to shift-right the items in each bucket + // with its head being reused as a counter. + for(i=n-1; i>0; i--) { + j=SA[i]; + if(j<0 && j!=EMPTY_k) { // is SA[i] a counter? + for(h=0; h<-j; h++) + SA[i-h]=SA[i-h-1]; + SA[i-h]=EMPTY_k; + } + } + + // put the single sentinel LMS-substring. + SA[0]=n-1; +} + +uint_t getLengthOfLMS(int_t *s, + uint_t n, int level, uint_t x, int cs) { + if(x==n-1) return 1; + + uint_t dist=0, i=1; + while(1) { + if(chr(x+i)n-1 || chr(x+i)>chr(x+i-1)) break; + if(x+i==n-1 || chr(x+i)=n1; i--) + if(SA[i]!=EMPTY_k) SA[j--]=SA[i]; + + // rename each S-type character of the + // interim s1 as the end of its bucket + // to produce the final s1. + succ_t=1; + for(i=n1-1; i>0; i--) { + int_t ch=s1[i], ch1=s1[i-1]; + cur_t=(ch1< ch || (ch1==ch && succ_t==1))?1:0; + if(cur_t==1) { + s1[i-1]+=SA[s1[i-1]]-1; + } + succ_t=cur_t; + } + + return name_ctr; +} + +/*****************************************************************************/ + +uint_t nameSubstr_generalized(uint_t *SA, + uint_t *s, uint_t *s1, uint_t n, + uint_t m, uint_t n1, int level, int cs, uint_t separator) { + uint_t i, j, cur_t, succ_t; + + // init the name array buffer + for(i=n1; i=n1; i--) + if(SA[i]!=EMPTY_k) SA[j--]=SA[i]; + + // rename each S-type character of the + // interim s1 as the end of its bucket + // to produce the final s1. + succ_t=1; + for(i=n1-1; i>0; i--) { + int_t ch=s1[i], ch1=s1[i-1]; + cur_t=(ch1< ch || (ch1==ch && succ_t==1))?1:0; + if(cur_t==1) { + s1[i-1]+=SA[s1[i-1]]-1; + } + succ_t=cur_t; + } + + return name_ctr; +} + +/*****************************************************************************/ + +uint_t nameSubstr_generalized_LCP(uint_t *SA, int_t *LCP, + uint_t *s, uint_t *s1, uint_t n, + uint_t m, uint_t n1, int level, int cs, uint_t separator) { + uint_t i, j, cur_t, succ_t; + + // init the name array buffer + for(i=n1; i=n1; i--) + if(SA[i]!=EMPTY_k) SA[j--]=SA[i]; + + // rename each S-type character of the + // interim s1 as the end of its bucket + // to produce the final s1. + succ_t=1; + for(i=n1-1; i>0; i--) { + int_t ch=s1[i], ch1=s1[i-1]; + cur_t=(ch1< ch || (ch1==ch && succ_t==1))?1:0; + if(cur_t==1) { + s1[i-1]+=SA[s1[i-1]]-1; + } + succ_t=cur_t; + } + + return name_ctr; +} + +/*****************************************************************************/ + +void getSAlms(uint_t *SA, + int_t *s, + uint_t *s1, uint_t n, + uint_t n1, int level, int cs) { + uint_t i, j, cur_t, succ_t; + + j=n1-1; s1[j--]=n-1; + succ_t=0; // s[n-2] must be L-type + for(i=n-2; i>0; i--) { + cur_t=(chr(i-1)0; i--) if(chr(i)==separator)k++; + DA[n1-1]=(int_da) k; +/**/ + + j=n1-1; s1[j--]=n-1; + succ_t=0; // s[n-2] must be L-type + for(i=n-2; i>0; i--) { + + if(chr(i)==separator)k--; + + cur_t=(chr(i-1)0) || (level&&((int_t *)SA)[i]>0)) + SA[n1++]=SA[i]; + + uint_t *SA1=SA, *s1=SA+m-n1; + uint_t name_ctr; + name_ctr=nameSubstr(SA,s,s1,n,m,n1,level,cs); + + #if PHASES + if(!level){ + printf("phase 1:\n"); + time_stop(t_start_phase, c_start_phase); + } + #endif + + #if PHASES + if(!level){ + t_start_phase = time(NULL); + c_start_phase = clock(); + } + #endif + + // stage 2: solve the reduced problem. + int_t depth=1; + // recurse if names are not yet unique. + if(name_ctr0; i--) + if(chr(i)==separator) + SA[bkt[chr(i)]--]=i; + + // now, all the LMS-substrings are sorted and + // stored sparsely in SA. + + // compact all the sorted substrings into + // the first n1 items of SA. + // 2*n1 must be not larger than n. + uint_t n1=0; + for(i=0; i0)) + SA[n1++]=SA[i]; + + uint_t *SA1=SA, *s1=SA+m-n1; + uint_t name_ctr; + name_ctr=nameSubstr_generalized(SA,s,s1,n,m,n1,level,cs,separator); + + #if PHASES + printf("phase 1:\n"); + time_stop(t_start_phase, c_start_phase); + #endif + + #if PHASES + t_start_phase = time(NULL); + c_start_phase = clock(); + #endif + + // stage 2: solve the reduced problem. + int_t depth=1; + // recurse if names are not yet unique. + if(name_ctr0; i--) + if(chr(i)==separator) + SA[bkt[chr(i)]--]=i; + + #if DEBUG + printf("S-type (separators)\n"); + for(i=0; i0)) + SA[n1++]=SA[i]; + + uint_t *SA1=SA, *s1=SA+m-n1; + uint_t name_ctr; + + #if DEBUG + printf("\nSA\n"); + for(i=0; i0; i--) + if(chr(i)==separator) + SA[bkt[chr(i)]--]=i; + + #if DEBUG + printf("S-type (separators)\n"); + for(i=0; i0)) + SA[n1++]=SA[i]; + + uint_t *SA1=SA, *s1=SA+m-n1; + uint_t name_ctr; + + #if DEBUG + printf("\nSA\n"); + for(i=0; i0; i--) + if(chr(i)==separator) + SA[bkt[chr(i)]--]=i; + + #if DEBUG + printf("S-type (separators)\n"); + for(i=0; i0)) + SA[n1++]=SA[i]; + + uint_t *SA1=SA, *s1=SA+m-n1; + uint_t name_ctr; + + #if DEBUG + printf("\nSA\n"); + for(i=0; i +#include +#include +#include +#include +#include + +#define max(a,b) ((a) > (b) ? (a) : (b)) + +#ifndef DEBUG + #define DEBUG 0 +#endif + +#ifndef M64 + #define M64 1 +#endif + +#if M64 + typedef int64_t int_t; + typedef uint64_t uint_t; + #define PRIdN PRId64 + #define U_MAX UINT64_MAX + #define I_MAX INT64_MAX + #define I_MIN INT64_MIN +#else + typedef int32_t int_t; + typedef uint32_t uint_t; + #define PRIdN PRId32 + #define U_MAX UINT32_MAX + #define I_MAX INT32_MAX + #define I_MIN INT32_MIN +#endif + +/*! @option type of s[0,n-1] for integer alphabets + * + * @constraint sizeof(int_t) >= sizeof(int_text) + */ +typedef uint32_t int_text; //4N bytes for s[0..n-1] +#define PRIdT PRIu32 + +/*! @option type for array DA + */ +typedef int32_t int_da; +#define PRIdA PRId32 + +/******************************************************************************/ + +/** @brief computes the suffix array of string s[0..n-1] + * + * @param s input string with s[n-1]=0 + * @param SA suffix array + * @param n string length + * @return -1 if an error occured, otherwise the depth of the recursive calls. + */ +int sacak(unsigned char *s, uint_t *SA, uint_t n); + +/** @brief computes the suffix array of string s[0..n-1] + * + * @param k alphabet size+1 (0 is reserved) + */ +int sacak_int(int_text *s, uint_t *SA, uint_t n, uint_t k); + +/******************************************************************************/ + +/** @brief Computes the suffix array SA (LCP, DA) of T^cat in s[0..n-1] + * + * @param s input concatenated string, using separators s[i]=1 and with s[n-1]=0 + * @param SA Suffix array + * @param LCP LCP array + * @param DA Document array + * @param n String length + * + * @return depth of the recursive calls. + */ +int gsacak(unsigned char *s, uint_t *SA, int_t *LCP, int_da *DA, uint_t n); + +/** @brief Computes the suffix array SA (LCP, DA) of T^cat in s[0..n-1] + * + * @param s input concatenated string, using separators s[i]=1 and with s[n-1]=0 + * @param SA Suffix array + * @param LCP LCP array + * @param DA Document array + * @param n String length + * @param k alphabet size+2 (0 and 1 are reserved) + * + * @return depth of the recursive calls. + */ +int gsacak_int(int_text *s, uint_t *SA, int_t *LCP, int_da *DA, uint_t n, uint_t k); + +/******************************************************************************/ + + + +int_t SACA_K(int_t *s, uint_t *SA, + uint_t n, unsigned int K, + uint_t m, int cs, int level); + +int_t gSACA_K(uint_t *s, uint_t *SA, + uint_t n, unsigned int K, + int cs, uint_t separator, int level); + +#endif diff --git a/erigon-lib/sais/sais.c b/erigon-lib/sais/sais.c new file mode 100644 index 00000000000..bb61968e0f3 --- /dev/null +++ b/erigon-lib/sais/sais.c @@ -0,0 +1,934 @@ +/* + * sais.c for sais-lite + * Copyright (c) 2008-2010 Yuta Mori All Rights Reserved. + * + * 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. + */ + +#include "sais.h" +#include +#include + +#ifndef UCHAR_SIZE +#define UCHAR_SIZE 256 +#endif +#ifndef MINBUCKETSIZE +#define MINBUCKETSIZE 256 +#endif + +#define sais_index_type int +#define sais_bool_type int +#define SAIS_LMSSORT2_LIMIT 0x3fffffff + +#define SAIS_MYMALLOC(_num, _type) ((_type *)malloc((_num) * sizeof(_type))) +#define SAIS_MYFREE(_ptr, _num, _type) free((_ptr)) +#define chr(_a) (cs == sizeof(sais_index_type) ? ((sais_index_type *)T)[(_a)] : ((unsigned char *)T)[(_a)]) + +/* find the start or end of each bucket */ +static void +getCounts(const void *T, sais_index_type *C, sais_index_type n, sais_index_type k, int cs) +{ + sais_index_type i; + for (i = 0; i < k; ++i) + { + C[i] = 0; + } + for (i = 0; i < n; ++i) + { + ++C[chr(i)]; + } +} +static void +getBuckets(const sais_index_type *C, sais_index_type *B, sais_index_type k, sais_bool_type end) +{ + sais_index_type i, sum = 0; + if (end) + { + for (i = 0; i < k; ++i) + { + sum += C[i]; + B[i] = sum; + } + } + else + { + for (i = 0; i < k; ++i) + { + sum += C[i]; + B[i] = sum - C[i]; + } + } +} + +/* sort all type LMS suffixes */ +static void +LMSsort1(const void *T, sais_index_type *SA, + sais_index_type *C, sais_index_type *B, + sais_index_type n, sais_index_type k, int cs) +{ + sais_index_type *b, i, j; + sais_index_type c0, c1; + + /* compute SAl */ + if (C == B) + { + getCounts(T, C, n, k, cs); + } + getBuckets(C, B, k, 0); /* find starts of buckets */ + j = n - 1; + b = SA + B[c1 = chr(j)]; + --j; + *b++ = (chr(j) < c1) ? ~j : j; + for (i = 0; i < n; ++i) + { + if (0 < (j = SA[i])) + { + assert(chr(j) >= chr(j + 1)); + if ((c0 = chr(j)) != c1) + { + B[c1] = b - SA; + b = SA + B[c1 = c0]; + } + assert(i < (b - SA)); + --j; + *b++ = (chr(j) < c1) ? ~j : j; + SA[i] = 0; + } + else if (j < 0) + { + SA[i] = ~j; + } + } + /* compute SAs */ + if (C == B) + { + getCounts(T, C, n, k, cs); + } + getBuckets(C, B, k, 1); /* find ends of buckets */ + for (i = n - 1, b = SA + B[c1 = 0]; 0 <= i; --i) + { + if (0 < (j = SA[i])) + { + assert(chr(j) <= chr(j + 1)); + if ((c0 = chr(j)) != c1) + { + B[c1] = b - SA; + b = SA + B[c1 = c0]; + } + assert((b - SA) <= i); + --j; + *--b = (chr(j) > c1) ? ~(j + 1) : j; + SA[i] = 0; + } + } +} +static sais_index_type +LMSpostproc1(const void *T, sais_index_type *SA, + sais_index_type n, sais_index_type m, int cs) +{ + sais_index_type i, j, p, q, plen, qlen, name; + sais_index_type c0, c1; + sais_bool_type diff; + + /* compact all the sorted substrings into the first m items of SA + 2*m must be not larger than n (proveable) */ + assert(0 < n); + for (i = 0; (p = SA[i]) < 0; ++i) + { + SA[i] = ~p; + assert((i + 1) < n); + } + if (i < m) + { + for (j = i, ++i;; ++i) + { + assert(i < n); + if ((p = SA[i]) < 0) + { + SA[j++] = ~p; + SA[i] = 0; + if (j == m) + { + break; + } + } + } + } + + /* store the length of all substrings */ + i = n - 1; + j = n - 1; + c0 = chr(n - 1); + do + { + c1 = c0; + } while ((0 <= --i) && ((c0 = chr(i)) >= c1)); + for (; 0 <= i;) + { + do + { + c1 = c0; + } while ((0 <= --i) && ((c0 = chr(i)) <= c1)); + if (0 <= i) + { + SA[m + ((i + 1) >> 1)] = j - i; + j = i + 1; + do + { + c1 = c0; + } while ((0 <= --i) && ((c0 = chr(i)) >= c1)); + } + } + + /* find the lexicographic names of all substrings */ + for (i = 0, name = 0, q = n, qlen = 0; i < m; ++i) + { + p = SA[i], plen = SA[m + (p >> 1)], diff = 1; + if ((plen == qlen) && ((q + plen) < n)) + { + for (j = 0; (j < plen) && (chr(p + j) == chr(q + j)); ++j) + { + } + if (j == plen) + { + diff = 0; + } + } + if (diff != 0) + { + ++name, q = p, qlen = plen; + } + SA[m + (p >> 1)] = name; + } + + return name; +} +static void +LMSsort2(const void *T, sais_index_type *SA, + sais_index_type *C, sais_index_type *B, sais_index_type *D, + sais_index_type n, sais_index_type k, int cs) +{ + sais_index_type *b, i, j, t, d; + sais_index_type c0, c1; + assert(C != B); + + /* compute SAl */ + getBuckets(C, B, k, 0); /* find starts of buckets */ + j = n - 1; + b = SA + B[c1 = chr(j)]; + --j; + t = (chr(j) < c1); + j += n; + *b++ = (t & 1) ? ~j : j; + for (i = 0, d = 0; i < n; ++i) + { + if (0 < (j = SA[i])) + { + if (n <= j) + { + d += 1; + j -= n; + } + assert(chr(j) >= chr(j + 1)); + if ((c0 = chr(j)) != c1) + { + B[c1] = b - SA; + b = SA + B[c1 = c0]; + } + assert(i < (b - SA)); + --j; + t = c0; + t = (t << 1) | (chr(j) < c1); + if (D[t] != d) + { + j += n; + D[t] = d; + } + *b++ = (t & 1) ? ~j : j; + SA[i] = 0; + } + else if (j < 0) + { + SA[i] = ~j; + } + } + for (i = n - 1; 0 <= i; --i) + { + if (0 < SA[i]) + { + if (SA[i] < n) + { + SA[i] += n; + for (j = i - 1; SA[j] < n; --j) + { + } + SA[j] -= n; + i = j; + } + } + } + + /* compute SAs */ + getBuckets(C, B, k, 1); /* find ends of buckets */ + for (i = n - 1, d += 1, b = SA + B[c1 = 0]; 0 <= i; --i) + { + if (0 < (j = SA[i])) + { + if (n <= j) + { + d += 1; + j -= n; + } + assert(chr(j) <= chr(j + 1)); + if ((c0 = chr(j)) != c1) + { + B[c1] = b - SA; + b = SA + B[c1 = c0]; + } + assert((b - SA) <= i); + --j; + t = c0; + t = (t << 1) | (chr(j) > c1); + if (D[t] != d) + { + j += n; + D[t] = d; + } + *--b = (t & 1) ? ~(j + 1) : j; + SA[i] = 0; + } + } +} +static sais_index_type +LMSpostproc2(sais_index_type *SA, sais_index_type n, sais_index_type m) +{ + sais_index_type i, j, d, name; + + /* compact all the sorted LMS substrings into the first m items of SA */ + assert(0 < n); + for (i = 0, name = 0; (j = SA[i]) < 0; ++i) + { + j = ~j; + if (n <= j) + { + name += 1; + } + SA[i] = j; + assert((i + 1) < n); + } + if (i < m) + { + for (d = i, ++i;; ++i) + { + assert(i < n); + if ((j = SA[i]) < 0) + { + j = ~j; + if (n <= j) + { + name += 1; + } + SA[d++] = j; + SA[i] = 0; + if (d == m) + { + break; + } + } + } + } + if (name < m) + { + /* store the lexicographic names */ + for (i = m - 1, d = name + 1; 0 <= i; --i) + { + if (n <= (j = SA[i])) + { + j -= n; + --d; + } + SA[m + (j >> 1)] = d; + } + } + else + { + /* unset flags */ + for (i = 0; i < m; ++i) + { + if (n <= (j = SA[i])) + { + j -= n; + SA[i] = j; + } + } + } + + return name; +} + +/* compute SA and BWT */ +static void +induceSA(const void *T, sais_index_type *SA, + sais_index_type *C, sais_index_type *B, + sais_index_type n, sais_index_type k, int cs) +{ + sais_index_type *b, i, j; + sais_index_type c0, c1; + /* compute SAl */ + if (C == B) + { + getCounts(T, C, n, k, cs); + } + getBuckets(C, B, k, 0); /* find starts of buckets */ + j = n - 1; + b = SA + B[c1 = chr(j)]; + *b++ = ((0 < j) && (chr(j - 1) < c1)) ? ~j : j; + for (i = 0; i < n; ++i) + { + j = SA[i], SA[i] = ~j; + if (0 < j) + { + --j; + assert(chr(j) >= chr(j + 1)); + if ((c0 = chr(j)) != c1) + { + B[c1] = b - SA; + b = SA + B[c1 = c0]; + } + assert(i < (b - SA)); + *b++ = ((0 < j) && (chr(j - 1) < c1)) ? ~j : j; + } + } + /* compute SAs */ + if (C == B) + { + getCounts(T, C, n, k, cs); + } + getBuckets(C, B, k, 1); /* find ends of buckets */ + for (i = n - 1, b = SA + B[c1 = 0]; 0 <= i; --i) + { + if (0 < (j = SA[i])) + { + --j; + assert(chr(j) <= chr(j + 1)); + if ((c0 = chr(j)) != c1) + { + B[c1] = b - SA; + b = SA + B[c1 = c0]; + } + assert((b - SA) <= i); + *--b = ((j == 0) || (chr(j - 1) > c1)) ? ~j : j; + } + else + { + SA[i] = ~j; + } + } +} +static sais_index_type +computeBWT(const void *T, sais_index_type *SA, + sais_index_type *C, sais_index_type *B, + sais_index_type n, sais_index_type k, int cs) +{ + sais_index_type *b, i, j, pidx = -1; + sais_index_type c0, c1; + /* compute SAl */ + if (C == B) + { + getCounts(T, C, n, k, cs); + } + getBuckets(C, B, k, 0); /* find starts of buckets */ + j = n - 1; + b = SA + B[c1 = chr(j)]; + *b++ = ((0 < j) && (chr(j - 1) < c1)) ? ~j : j; + for (i = 0; i < n; ++i) + { + if (0 < (j = SA[i])) + { + --j; + assert(chr(j) >= chr(j + 1)); + SA[i] = ~((sais_index_type)(c0 = chr(j))); + if (c0 != c1) + { + B[c1] = b - SA; + b = SA + B[c1 = c0]; + } + assert(i < (b - SA)); + *b++ = ((0 < j) && (chr(j - 1) < c1)) ? ~j : j; + } + else if (j != 0) + { + SA[i] = ~j; + } + } + /* compute SAs */ + if (C == B) + { + getCounts(T, C, n, k, cs); + } + getBuckets(C, B, k, 1); /* find ends of buckets */ + for (i = n - 1, b = SA + B[c1 = 0]; 0 <= i; --i) + { + if (0 < (j = SA[i])) + { + --j; + assert(chr(j) <= chr(j + 1)); + SA[i] = (c0 = chr(j)); + if (c0 != c1) + { + B[c1] = b - SA; + b = SA + B[c1 = c0]; + } + assert((b - SA) <= i); + *--b = ((0 < j) && (chr(j - 1) > c1)) ? ~((sais_index_type)chr(j - 1)) : j; + } + else if (j != 0) + { + SA[i] = ~j; + } + else + { + pidx = i; + } + } + return pidx; +} + +/* find the suffix array SA of T[0..n-1] in {0..255}^n */ +static sais_index_type +sais_main(const void *T, sais_index_type *SA, + sais_index_type fs, sais_index_type n, sais_index_type k, int cs, + sais_bool_type isbwt) +{ + sais_index_type *C, *B, *D, *RA, *b; + sais_index_type i, j, m, p, q, t, name, pidx = 0, newfs; + sais_index_type c0, c1; + unsigned int flags; + + assert((T != NULL) && (SA != NULL)); + assert((0 <= fs) && (0 < n) && (1 <= k)); + + if (k <= MINBUCKETSIZE) + { + if ((C = SAIS_MYMALLOC(k, sais_index_type)) == NULL) + { + return -2; + } + if (k <= fs) + { + B = SA + (n + fs - k); + flags = 1; + } + else + { + if ((B = SAIS_MYMALLOC(k, sais_index_type)) == NULL) + { + SAIS_MYFREE(C, k, sais_index_type); + return -2; + } + flags = 3; + } + } + else if (k <= fs) + { + C = SA + (n + fs - k); + if (k <= (fs - k)) + { + B = C - k; + flags = 0; + } + else if (k <= (MINBUCKETSIZE * 4)) + { + if ((B = SAIS_MYMALLOC(k, sais_index_type)) == NULL) + { + return -2; + } + flags = 2; + } + else + { + B = C; + flags = 8; + } + } + else + { + if ((C = B = SAIS_MYMALLOC(k, sais_index_type)) == NULL) + { + return -2; + } + flags = 4 | 8; + } + if ((n <= SAIS_LMSSORT2_LIMIT) && (2 <= (n / k))) + { + if (flags & 1) + { + flags |= ((k * 2) <= (fs - k)) ? 32 : 16; + } + else if ((flags == 0) && ((k * 2) <= (fs - k * 2))) + { + flags |= 32; + } + } + /* stage 1: reduce the problem by at least 1/2 + sort all the LMS-substrings */ + getCounts(T, C, n, k, cs); + getBuckets(C, B, k, 1); /* find ends of buckets */ + for (i = 0; i < n; ++i) + { + SA[i] = 0; + } + b = &t; + i = n - 1; + j = n; + m = 0; + c0 = chr(n - 1); + do + { + c1 = c0; + } while ((0 <= --i) && ((c0 = chr(i)) >= c1)); + for (; 0 <= i;) + { + do + { + c1 = c0; + } while ((0 <= --i) && ((c0 = chr(i)) <= c1)); + if (0 <= i) + { + *b = j; + b = SA + --B[c1]; + j = i; + ++m; + do + { + c1 = c0; + } while ((0 <= --i) && ((c0 = chr(i)) >= c1)); + } + } + + if (1 < m) + { + if (flags & (16 | 32)) + { + if (flags & 16) + { + if ((D = SAIS_MYMALLOC(k * 2, sais_index_type)) == NULL) + { + if (flags & (1 | 4)) + { + SAIS_MYFREE(C, k, sais_index_type); + } + if (flags & 2) + { + SAIS_MYFREE(B, k, sais_index_type); + } + return -2; + } + } + else + { + D = B - k * 2; + } + assert((j + 1) < n); + ++B[chr(j + 1)]; + for (i = 0, j = 0; i < k; ++i) + { + j += C[i]; + if (B[i] != j) + { + assert(SA[B[i]] != 0); + SA[B[i]] += n; + } + D[i] = D[i + k] = 0; + } + LMSsort2(T, SA, C, B, D, n, k, cs); + name = LMSpostproc2(SA, n, m); + if (flags & 16) + { + SAIS_MYFREE(D, k * 2, sais_index_type); + } + } + else + { + LMSsort1(T, SA, C, B, n, k, cs); + name = LMSpostproc1(T, SA, n, m, cs); + } + } + else if (m == 1) + { + *b = j + 1; + name = 1; + } + else + { + name = 0; + } + + /* stage 2: solve the reduced problem + recurse if names are not yet unique */ + if (name < m) + { + if (flags & 4) + { + SAIS_MYFREE(C, k, sais_index_type); + } + if (flags & 2) + { + SAIS_MYFREE(B, k, sais_index_type); + } + newfs = (n + fs) - (m * 2); + if ((flags & (1 | 4 | 8)) == 0) + { + if ((k + name) <= newfs) + { + newfs -= k; + } + else + { + flags |= 8; + } + } + assert((n >> 1) <= (newfs + m)); + RA = SA + m + newfs; + for (i = m + (n >> 1) - 1, j = m - 1; m <= i; --i) + { + if (SA[i] != 0) + { + RA[j--] = SA[i] - 1; + } + } + if (sais_main(RA, SA, newfs, m, name, sizeof(sais_index_type), 0) != 0) + { + if (flags & 1) + { + SAIS_MYFREE(C, k, sais_index_type); + } + return -2; + } + + i = n - 1; + j = m - 1; + c0 = chr(n - 1); + do + { + c1 = c0; + } while ((0 <= --i) && ((c0 = chr(i)) >= c1)); + for (; 0 <= i;) + { + do + { + c1 = c0; + } while ((0 <= --i) && ((c0 = chr(i)) <= c1)); + if (0 <= i) + { + RA[j--] = i + 1; + do + { + c1 = c0; + } while ((0 <= --i) && ((c0 = chr(i)) >= c1)); + } + } + for (i = 0; i < m; ++i) + { + SA[i] = RA[SA[i]]; + } + if (flags & 4) + { + if ((C = B = SAIS_MYMALLOC(k, int)) == NULL) + { + return -2; + } + } + if (flags & 2) + { + if ((B = SAIS_MYMALLOC(k, int)) == NULL) + { + if (flags & 1) + { + SAIS_MYFREE(C, k, sais_index_type); + } + return -2; + } + } + } + + /* stage 3: induce the result for the original problem */ + if (flags & 8) + { + getCounts(T, C, n, k, cs); + } + /* put all left-most S characters into their buckets */ + if (1 < m) + { + getBuckets(C, B, k, 1); /* find ends of buckets */ + i = m - 1, j = n, p = SA[m - 1], c1 = chr(p); + do + { + q = B[c0 = c1]; + while (q < j) + { + SA[--j] = 0; + } + do + { + SA[--j] = p; + if (--i < 0) + { + break; + } + p = SA[i]; + } while ((c1 = chr(p)) == c0); + } while (0 <= i); + while (0 < j) + { + SA[--j] = 0; + } + } + if (isbwt == 0) + { + induceSA(T, SA, C, B, n, k, cs); + } + else + { + pidx = computeBWT(T, SA, C, B, n, k, cs); + } + if (flags & (1 | 4)) + { + SAIS_MYFREE(C, k, sais_index_type); + } + if (flags & 2) + { + SAIS_MYFREE(B, k, sais_index_type); + } + + return pidx; +} + +/*---------------------------------------------------------------------------*/ + +int sais(const unsigned char *T, int *SA, int n) +{ + + if ((T == NULL) || (SA == NULL) || (n < 0)) + { + return -1; + } + if (n <= 1) + { + if (n == 1) + { + SA[0] = 0; + } + return 0; + } + int result = sais_main(T, SA, 0, n, UCHAR_SIZE, sizeof(unsigned char), 0); + + // for (int i = 0; i < n; i++) + // printf("%d ", SA[i]); + + // printf("\n"); + + return result; +} + +int sais_int(const int *T, int *SA, int n, int k) +{ + if ((T == NULL) || (SA == NULL) || (n < 0) || (k <= 0)) + { + return -1; + } + if (n <= 1) + { + if (n == 1) + { + SA[0] = 0; + } + return 0; + } + return sais_main(T, SA, 0, n, k, sizeof(int), 0); +} + +int sais_bwt(const unsigned char *T, unsigned char *U, int *A, int n) +{ + int i, pidx; + if ((T == NULL) || (U == NULL) || (A == NULL) || (n < 0)) + { + return -1; + } + if (n <= 1) + { + if (n == 1) + { + U[0] = T[0]; + } + return n; + } + pidx = sais_main(T, A, 0, n, UCHAR_SIZE, sizeof(unsigned char), 1); + if (pidx < 0) + { + return pidx; + } + U[0] = T[n - 1]; + for (i = 0; i < pidx; ++i) + { + U[i + 1] = (unsigned char)A[i]; + } + for (i += 1; i < n; ++i) + { + U[i] = (unsigned char)A[i]; + } + pidx += 1; + return pidx; +} + +int sais_int_bwt(const int *T, int *U, int *A, int n, int k) +{ + int i, pidx; + if ((T == NULL) || (U == NULL) || (A == NULL) || (n < 0) || (k <= 0)) + { + return -1; + } + if (n <= 1) + { + if (n == 1) + { + U[0] = T[0]; + } + return n; + } + pidx = sais_main(T, A, 0, n, k, sizeof(int), 1); + if (pidx < 0) + { + return pidx; + } + U[0] = T[n - 1]; + for (i = 0; i < pidx; ++i) + { + U[i + 1] = A[i]; + } + for (i += 1; i < n; ++i) + { + U[i] = A[i]; + } + pidx += 1; + return pidx; +} \ No newline at end of file diff --git a/erigon-lib/sais/sais.go b/erigon-lib/sais/sais.go new file mode 100644 index 00000000000..90be0b6f1d7 --- /dev/null +++ b/erigon-lib/sais/sais.go @@ -0,0 +1,27 @@ +package sais + +/* +#include "sais.h" +#include "utils.h" +*/ +import "C" +import ( + "fmt" + "unsafe" +) + +func Sais(data []byte, sa []int32) error { + size := C.int(len(data)) + tPtr := unsafe.Pointer(&data[0]) // source "text" + saPtr := unsafe.Pointer(&sa[0]) + + result := C.sais( + (*C.uchar)(tPtr), + (*C.int)(saPtr), + size, + ) + if int(result) != 0 { + return fmt.Errorf("sais returned: %d", result) + } + return nil +} diff --git a/erigon-lib/sais/sais.h b/erigon-lib/sais/sais.h new file mode 100644 index 00000000000..6f282cb4ef1 --- /dev/null +++ b/erigon-lib/sais/sais.h @@ -0,0 +1,51 @@ +/* + * sais.h for sais-lite + * Copyright (c) 2008-2010 Yuta Mori All Rights Reserved. + * + * 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. + */ + +#ifndef _SAIS_H +#define _SAIS_H 1 + +// #ifdef __cplusplus +// extern "C" +// { +// #endif /* __cplusplus */ + +// /* find the suffix array SA of T[0..n-1] +// use a working space (excluding T and SA) of at most 2n+O(lg n) */ +// int sais(const unsigned char *T, int *SA, int n); +// /* find the suffix array SA of T[0..n-1] in {0..k-1}^n +// use a working space (excluding T and SA) of at most MAX(4k,2n) */ +// int sais_int(const int *T, int *SA, int n, int k); + +// /* burrows-wheeler transform */ +// int sais_bwt(const unsigned char *T, unsigned char *U, int *A, int n); +// int sais_int_bwt(const int *T, int *U, int *A, int n, int k); + +// #ifdef __cplusplus +// } /* extern "C" */ +// #endif /* __cplusplus */ +extern int sais(const unsigned char *T, int *SA, int n); +#endif /* _SAIS_H */ + diff --git a/erigon-lib/sais/sais_test.go b/erigon-lib/sais/sais_test.go new file mode 100644 index 00000000000..9aed08e73d4 --- /dev/null +++ b/erigon-lib/sais/sais_test.go @@ -0,0 +1,17 @@ +package sais + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestSais(t *testing.T) { + data := []byte{4, 5, 6, 4, 5, 6, 4, 5, 6} + sa := make([]int32, len(data)) + err := Sais(data, sa) + if err != nil { + t.Fatal(err) + } + assert.Equal(t, []int32{6, 3, 0, 7, 4, 1, 8, 5, 2}, sa) +} diff --git a/erigon-lib/sais/utils.c b/erigon-lib/sais/utils.c new file mode 100644 index 00000000000..112f43b5261 --- /dev/null +++ b/erigon-lib/sais/utils.c @@ -0,0 +1,32 @@ +#include "utils.h" + +int lcp_kasai(const unsigned char *T, int *SA, int *LCP, int *FTR, int *INV, int sa_size, int n) +{ + for (int i = 0, j = 0; i < sa_size; i++) + { + if ((SA[i] & 1) == 0) + FTR[j++] = SA[i] >> 1; + } + + for (int i = 0; i < n; i++) + INV[FTR[i]] = i; + + for (int i = 0, k = 0; i < n; i++, k ? k-- : 0) + { + if (INV[i] == n - 1) + { + k = 0; + continue; + } + + int j = FTR[INV[i] + 1]; + + while (i + k < n && j + k < n && (int)T[(i + k) * 2] != 0 && + (int)T[(j + k) * 2] != 0 && T[(i + k) * 2 + 1] == T[(j + k) * 2 + 1]) + k++; + + LCP[INV[i]] = k; + } + + return 0; +} diff --git a/erigon-lib/sais/utils.h b/erigon-lib/sais/utils.h new file mode 100644 index 00000000000..18dbca719c9 --- /dev/null +++ b/erigon-lib/sais/utils.h @@ -0,0 +1,5 @@ +#ifndef _UTILS_H +#define _UTILS_H 1 + +extern int lcp_kasai(const unsigned char *T, int *SA, int *LCP, int *FTR, int *INV, int sa_size, int n); +#endif /* _UTILS_H */ diff --git a/erigon-lib/sse/README.md b/erigon-lib/sse/README.md new file mode 100644 index 00000000000..6cd1b2090c5 --- /dev/null +++ b/erigon-lib/sse/README.md @@ -0,0 +1,8 @@ +## sse + +sse implement server side events also known as eventsource + +see the specification here: https://html.spec.whatwg.org/multipage/server-sent-events.html + + + diff --git a/erigon-lib/sse/conn.go b/erigon-lib/sse/conn.go new file mode 100644 index 00000000000..e6a39224ea7 --- /dev/null +++ b/erigon-lib/sse/conn.go @@ -0,0 +1,40 @@ +package sse + +import ( + "bufio" + "net/http" + "strings" +) + +// EventSink tracks a event source connection between a client and a server +type EventSink struct { + wr http.ResponseWriter + r *http.Request + bw *bufio.Writer + enc *Encoder + + LastEventId string +} + +func Upgrade(wr http.ResponseWriter, r *http.Request) (*EventSink, error) { + if !strings.EqualFold(r.Header.Get("Content-Type"), "text/event-stream") { + return nil, ErrInvalidContentType + } + o := &EventSink{ + wr: wr, + r: r, + bw: bufio.NewWriter(wr), + } + o.LastEventId = r.Header.Get("Last-Event-ID") + wr.Header().Add("Content-Type", "text/event-stream") + o.enc = NewEncoder(o.bw) + return o, nil +} + +func (e *EventSink) Encode(p *Packet) error { + err := e.enc.Encode(p) + if err != nil { + return err + } + return e.bw.Flush() +} diff --git a/erigon-lib/sse/encoder.go b/erigon-lib/sse/encoder.go new file mode 100644 index 00000000000..f1924f10531 --- /dev/null +++ b/erigon-lib/sse/encoder.go @@ -0,0 +1,82 @@ +package sse + +import "io" + +// Packet represents an event to send +// the order in this struct is the order that they will be sent. +type Packet struct { + + // as a special case, an empty value of event will not write an event header + Event string + + // additional headers to be added. + // using the reserved headers event, header, data, id is undefined behavior + // note that this is the canonical way to send the "retry" header + Header map[string]string + + // the io.Reader to source the data from + Data io.Reader + + // whether or not to send an id, and if so, what id to send + // a nil id means to not send an id. + // empty string means to simply send the string "id\n" + // otherwise, the id is sent as is + // id is always sent at the end of the packet + ID *string +} + +func ID(x string) *string { + return &x +} + +// Encoder works at a higher level than the encoder. +// it works on the packet level. +type Encoder struct { + wr *Writer + + firstWriteDone bool +} + +func NewEncoder(w io.Writer) *Encoder { + wr := NewWriter(w) + return &Encoder{ + wr: wr, + } +} + +func (e *Encoder) Encode(p *Packet) error { + if e.firstWriteDone { + err := e.wr.Next() + if err != nil { + return err + } + } + e.firstWriteDone = true + if len(p.Event) > 0 { + if err := e.wr.Header("event", p.Event); err != nil { + return err + } + } + if p.Header != nil { + for k, v := range p.Header { + if err := e.wr.Header(k, v); err != nil { + return err + } + } + } + if p.Data != nil { + if err := e.wr.WriteData(p.Data); err != nil { + return err + } + } + err := e.wr.Flush() + if err != nil { + return err + } + if p.ID != nil { + if err := e.wr.Header("id", *p.ID); err != nil { + return err + } + } + return nil +} diff --git a/erigon-lib/sse/encoder_test.go b/erigon-lib/sse/encoder_test.go new file mode 100644 index 00000000000..9415f86403b --- /dev/null +++ b/erigon-lib/sse/encoder_test.go @@ -0,0 +1,40 @@ +package sse + +import ( + "bytes" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestEncoderSimple(t *testing.T) { + type testCase struct { + xs []*Packet + w string + } + cases := []testCase{{ + []*Packet{ + {Event: "hello", Data: strings.NewReader("some data")}, + {Data: strings.NewReader("some other data with no event header")}, + }, + "event: hello\ndata: some data\n\ndata: some other data with no event header\n", + }, + { + []*Packet{ + {Event: "hello", Data: strings.NewReader("some \n funky\r\n data\r")}, + {Data: strings.NewReader("some other data with an id"), ID: ID("dogs")}, + }, + "event: hello\ndata: some \ndata: funky\r\ndata: data\r\ndata: some other data with an id\nid: dogs\n", + }, + } + for _, v := range cases { + buf := &bytes.Buffer{} + enc := NewEncoder(buf) + for _, p := range v.xs { + require.NoError(t, enc.Encode(p)) + } + assert.EqualValues(t, v.w, buf.String()) + } +} diff --git a/erigon-lib/sse/errors.go b/erigon-lib/sse/errors.go new file mode 100644 index 00000000000..8bf380295fb --- /dev/null +++ b/erigon-lib/sse/errors.go @@ -0,0 +1,8 @@ +package sse + +import "errors" + +var ( + ErrInvalidUTF8Bytes = errors.New("invalid utf8 bytes") + ErrInvalidContentType = errors.New("invalid content type") +) diff --git a/erigon-lib/sse/writer.go b/erigon-lib/sse/writer.go new file mode 100644 index 00000000000..a261d93dbc9 --- /dev/null +++ b/erigon-lib/sse/writer.go @@ -0,0 +1,170 @@ +package sse + +import ( + "io" + "unicode/utf8" + //"github.com/segmentio/asm/utf8" -- can switch to this library in the future if needed +) + +type Option func(*Options) + +func OptionValidateUtf8(enable bool) Option { + return func(o *Options) { + o.validateUTF8 = true + } +} + +type Options struct { + validateUTF8 bool +} + +func (e *Options) ValidateUTF8() bool { + return e.validateUTF8 +} + +type writeState struct { + inMessage bool + trailingCarriage bool +} + +// writer is not thread safe. it is meant for internal usage +type Writer struct { + raw io.Writer + + es writeState + + w io.Writer + + o Options +} + +func NewWriter(w io.Writer, opts ...Option) *Writer { + o := &Options{} + for _, v := range opts { + v(o) + } + return &Writer{ + raw: w, + w: w, + o: *o, + } +} + +func (e *Writer) writeByte(x byte) error { + _, err := e.w.Write([]byte{x}) + return err +} +func (e *Writer) writeString(s string) (int, error) { + return e.w.Write([]byte(s)) +} + +func (e *Writer) Flush() error { + if e.es.inMessage { + // we are in a message, so write a newline to terminate it, as the user did not + err := e.writeByte('\n') + if err != nil { + return err + } + e.es.inMessage = false + } + // and reset the trailingCarriage state as well + e.es.trailingCarriage = false + return nil +} + +// next should be called at the end of an event. it will call Flush and then write a newline +func (e *Writer) Next() error { + + if err := e.Flush(); err != nil { + return err + } + // we write a newline, indicating now that this is a new event + if err := e.writeByte('\n'); err != nil { + return err + } + return nil +} + +// Event will start writing an event with the name topic to the stream +func (e *Writer) Header(name string, topic string) error { + if topic == "" { + return nil + } + if e.o.ValidateUTF8() { + if !utf8.ValidString(topic) { + return ErrInvalidUTF8Bytes + } + } + if len(topic) > 0 { + if _, err := e.writeString(name + ": "); err != nil { + return err + } + // write the supplied topic + if _, err := e.writeString(topic); err != nil { + return err + } + } + if err := e.writeByte('\n'); err != nil { + return err + } + + return nil +} + +// a convenient wrapper for writing data from io.Reader so that one can easily replay events. +func (e *Writer) WriteData(r io.Reader) (err error) { + if _, err = io.Copy(e, r); err != nil { + return err + } + return +} + +// Write underlying write method for piping data. be careful using this! +func (e *Writer) Write(xs []byte) (n int, err error) { + if e.o.ValidateUTF8() && !utf8.Valid(xs) { + return 0, ErrInvalidUTF8Bytes + } + for _, x := range xs { + // now, see if there was a trailing carriage left over from the last write + // only check and write the data if we are do not have a trailing carriage + if !e.es.trailingCarriage { + e.checkMessage() + } + if e.es.trailingCarriage { + // if there is, see if the character is a newline + if x != '\n' { + // its not a newline, so the trailing carriage was a valid end of message. write a new data field + e.es.inMessage = false + e.checkMessage() + } + // in the case that the character is a newline + // we will just write the newline and inMessage=false will be set in the case below + + // in both cases, the trailing carriage is dealt with + e.es.trailingCarriage = false + } + // write the byte no matter what + err = e.writeByte(x) + if err != nil { + return + } + // if success, note that we wrote another byte + n++ + if x == '\n' { + // end message if it's a newline always + e.es.inMessage = false + } else if x == '\r' { + // if x is a carriage return, mark it as trailing carriage + e.es.trailingCarriage = true + e.es.inMessage = false + } + } + return +} + +func (e *Writer) checkMessage() { + if !e.es.inMessage { + e.es.inMessage = true + e.writeString("data: ") + } +} diff --git a/erigon-lib/sse/writer_test.go b/erigon-lib/sse/writer_test.go new file mode 100644 index 00000000000..d25c18cad2f --- /dev/null +++ b/erigon-lib/sse/writer_test.go @@ -0,0 +1,76 @@ +package sse + +import ( + "bytes" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestEncoderWrite(t *testing.T) { + type testCase struct { + e string + i string + w string + } + cases := []testCase{{ + "", + "foo bar\nbar foo\nwowwwwza\n", + `data: foo bar +data: bar foo +data: wowwwwza +`}, { + "hello", + "there\nfriend", + `event: hello +data: there +data: friend +`}, + } + + for _, v := range cases { + buf := &bytes.Buffer{} + enc := NewWriter(buf) + err := enc.Header("event", v.e) + require.NoError(t, err) + _, err = enc.Write([]byte(v.i)) + require.NoError(t, err) + require.NoError(t, enc.Flush()) + assert.EqualValues(t, buf.String(), v.w) + } +} + +func TestEncoderWriteData(t *testing.T) { + type testCase struct { + e string + i string + w string + } + cases := []testCase{{ + "", + "foo bar\nbar foo\nwowwwwza\n", + `data: foo bar +data: bar foo +data: wowwwwza +`}, { + "hello", + "there\nfriend", + `event: hello +data: there +data: friend +`}, + } + + for _, v := range cases { + buf := &bytes.Buffer{} + enc := NewWriter(buf) + err := enc.Header("event", v.e) + require.NoError(t, err) + err = enc.WriteData(strings.NewReader(v.i)) + require.NoError(t, err) + require.NoError(t, enc.Flush()) + assert.EqualValues(t, v.w, buf.String()) + } +} diff --git a/erigon-lib/state/aggregator.go b/erigon-lib/state/aggregator.go new file mode 100644 index 00000000000..e992e27c96a --- /dev/null +++ b/erigon-lib/state/aggregator.go @@ -0,0 +1,1368 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "bytes" + "context" + "fmt" + "math" + "math/bits" + "os" + "sync" + "sync/atomic" + "time" + + "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" + "golang.org/x/sync/errgroup" + + "github.com/ledgerwatch/erigon-lib/commitment" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/erigon-lib/metrics" +) + +// StepsInBiggestFile - files of this size are completely frozen/immutable. +// files of smaller size are also immutable, but can be removed after merge to bigger files. +const StepsInBiggestFile = 32 + +var ( + mxCurrentTx = metrics.GetOrCreateGauge("domain_tx_processed") + mxCurrentBlock = metrics.GetOrCreateGauge("domain_block_current") + mxRunningMerges = metrics.GetOrCreateGauge("domain_running_merges") + mxRunningCollations = metrics.GetOrCreateGauge("domain_running_collations") + mxCollateTook = metrics.GetOrCreateHistogram("domain_collate_took") + mxPruneTook = metrics.GetOrCreateHistogram("domain_prune_took") + mxPruneHistTook = metrics.GetOrCreateHistogram("domain_prune_hist_took") + mxPruningProgress = metrics.GetOrCreateGauge("domain_pruning_progress") + mxCollationSize = metrics.GetOrCreateGauge("domain_collation_size") + mxCollationSizeHist = metrics.GetOrCreateGauge("domain_collation_hist_size") + mxPruneSize = metrics.GetOrCreateCounter("domain_prune_size") + mxBuildTook = metrics.GetOrCreateSummary("domain_build_files_took") + mxStepCurrent = metrics.GetOrCreateGauge("domain_step_current") + mxStepTook = metrics.GetOrCreateHistogram("domain_step_took") + mxCommitmentKeys = metrics.GetOrCreateCounter("domain_commitment_keys") + mxCommitmentRunning = metrics.GetOrCreateGauge("domain_running_commitment") + mxCommitmentTook = metrics.GetOrCreateSummary("domain_commitment_took") + mxCommitmentWriteTook = metrics.GetOrCreateHistogram("domain_commitment_write_took") + mxCommitmentUpdates = metrics.GetOrCreateCounter("domain_commitment_updates") + mxCommitmentUpdatesApplied = metrics.GetOrCreateCounter("domain_commitment_updates_applied") +) + +type Aggregator struct { + db kv.RwDB + aggregationStep uint64 + accounts *Domain + storage *Domain + code *Domain + commitment *DomainCommitted + logAddrs *InvertedIndex + logTopics *InvertedIndex + tracesFrom *InvertedIndex + tracesTo *InvertedIndex + txNum uint64 + seekTxNum uint64 + blockNum uint64 + stepDoneNotice chan [length.Hash]byte + rwTx kv.RwTx + stats FilesStats + tmpdir string + defaultCtx *AggregatorContext + + ps *background.ProgressSet + logger log.Logger +} + +//type exposedMetrics struct { +// CollationSize *metrics.Gauge +// CollationSizeHist *metrics.Gauge +// PruneSize *metrics.Gauge +// +// lastCollSize int +// lastColHistSize int +// lastPruneSize int +//} +// +//func (e exposedMetrics) init() { +// e.CollationSize = metrics.GetOrCreateGauge("domain_collation_size", func() float64 { return 0 }) +// e.CollationSizeHist = metrics.GetOrCreateGauge("domain_collation_hist_size", func() float64 { return 0 }) +// e.PruneSize = metrics.GetOrCreateGauge("domain_prune_size", func() float64 { return e.lastPruneSize }) +//} + +func NewAggregator(dir, tmpdir string, aggregationStep uint64, commitmentMode CommitmentMode, commitTrieVariant commitment.TrieVariant, logger log.Logger) (*Aggregator, error) { + a := &Aggregator{aggregationStep: aggregationStep, ps: background.NewProgressSet(), tmpdir: tmpdir, stepDoneNotice: make(chan [length.Hash]byte, 1), logger: logger} + + closeAgg := true + defer func() { + if closeAgg { + a.Close() + } + }() + err := os.MkdirAll(dir, 0764) + if err != nil { + return nil, err + } + if a.accounts, err = NewDomain(dir, tmpdir, aggregationStep, "accounts", kv.TblAccountKeys, kv.TblAccountVals, kv.TblAccountHistoryKeys, kv.TblAccountHistoryVals, kv.TblAccountIdx, false, false, logger); err != nil { + return nil, err + } + if a.storage, err = NewDomain(dir, tmpdir, aggregationStep, "storage", kv.TblStorageKeys, kv.TblStorageVals, kv.TblStorageHistoryKeys, kv.TblStorageHistoryVals, kv.TblStorageIdx, false, false, logger); err != nil { + return nil, err + } + if a.code, err = NewDomain(dir, tmpdir, aggregationStep, "code", kv.TblCodeKeys, kv.TblCodeVals, kv.TblCodeHistoryKeys, kv.TblCodeHistoryVals, kv.TblCodeIdx, true, true, logger); err != nil { + return nil, err + } + + commitd, err := NewDomain(dir, tmpdir, aggregationStep, "commitment", kv.TblCommitmentKeys, kv.TblCommitmentVals, kv.TblCommitmentHistoryKeys, kv.TblCommitmentHistoryVals, kv.TblCommitmentIdx, false, true, logger) + if err != nil { + return nil, err + } + a.commitment = NewCommittedDomain(commitd, commitmentMode, commitTrieVariant, logger) + + if a.logAddrs, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "logaddrs", kv.TblLogAddressKeys, kv.TblLogAddressIdx, false, nil, logger); err != nil { + return nil, err + } + if a.logTopics, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "logtopics", kv.TblLogTopicsKeys, kv.TblLogTopicsIdx, false, nil, logger); err != nil { + return nil, err + } + if a.tracesFrom, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "tracesfrom", kv.TblTracesFromKeys, kv.TblTracesFromIdx, false, nil, logger); err != nil { + return nil, err + } + if a.tracesTo, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "tracesto", kv.TblTracesToKeys, kv.TblTracesToIdx, false, nil, logger); err != nil { + return nil, err + } + closeAgg = false + + a.seekTxNum = a.EndTxNumMinimax() + return a, nil +} + +func (a *Aggregator) SetDB(db kv.RwDB) { a.db = db } + +func (a *Aggregator) buildMissedIdxBlocking(d *Domain) error { + eg, ctx := errgroup.WithContext(context.Background()) + eg.SetLimit(32) + if err := d.BuildMissedIndices(ctx, eg, a.ps); err != nil { + return err + } + return eg.Wait() +} +func (a *Aggregator) ReopenFolder() (err error) { + { + if err = a.buildMissedIdxBlocking(a.accounts); err != nil { + return err + } + if err = a.buildMissedIdxBlocking(a.storage); err != nil { + return err + } + if err = a.buildMissedIdxBlocking(a.code); err != nil { + return err + } + if err = a.buildMissedIdxBlocking(a.commitment.Domain); err != nil { + return err + } + } + + if err = a.accounts.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.storage.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.code.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.commitment.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.logAddrs.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.logTopics.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.tracesFrom.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.tracesTo.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + return nil +} + +func (a *Aggregator) ReopenList(fNames []string) error { + var err error + if err = a.accounts.OpenList(fNames); err != nil { + return err + } + if err = a.storage.OpenList(fNames); err != nil { + return err + } + if err = a.code.OpenList(fNames); err != nil { + return err + } + if err = a.commitment.OpenList(fNames); err != nil { + return err + } + if err = a.logAddrs.OpenList(fNames); err != nil { + return err + } + if err = a.logTopics.OpenList(fNames); err != nil { + return err + } + if err = a.tracesFrom.OpenList(fNames); err != nil { + return err + } + if err = a.tracesTo.OpenList(fNames); err != nil { + return err + } + return nil +} + +func (a *Aggregator) GetAndResetStats() DomainStats { + stats := DomainStats{HistoryQueries: &atomic.Uint64{}, TotalQueries: &atomic.Uint64{}} + stats.Accumulate(a.accounts.GetAndResetStats()) + stats.Accumulate(a.storage.GetAndResetStats()) + stats.Accumulate(a.code.GetAndResetStats()) + stats.Accumulate(a.commitment.GetAndResetStats()) + + var tto, tfrom, ltopics, laddr DomainStats + tto.FilesCount, tto.DataSize, tto.IndexSize = a.tracesTo.collectFilesStat() + tfrom.FilesCount, tfrom.DataSize, tfrom.DataSize = a.tracesFrom.collectFilesStat() + ltopics.FilesCount, ltopics.DataSize, ltopics.IndexSize = a.logTopics.collectFilesStat() + laddr.FilesCount, laddr.DataSize, laddr.IndexSize = a.logAddrs.collectFilesStat() + + stats.Accumulate(tto) + stats.Accumulate(tfrom) + stats.Accumulate(ltopics) + stats.Accumulate(laddr) + return stats +} + +func (a *Aggregator) Close() { + if a.defaultCtx != nil { + a.defaultCtx.Close() + } + if a.stepDoneNotice != nil { + close(a.stepDoneNotice) + } + if a.accounts != nil { + a.accounts.Close() + } + if a.storage != nil { + a.storage.Close() + } + if a.code != nil { + a.code.Close() + } + if a.commitment != nil { + a.commitment.Close() + } + + if a.logAddrs != nil { + a.logAddrs.Close() + } + if a.logTopics != nil { + a.logTopics.Close() + } + if a.tracesFrom != nil { + a.tracesFrom.Close() + } + if a.tracesTo != nil { + a.tracesTo.Close() + } +} + +func (a *Aggregator) SetTx(tx kv.RwTx) { + a.rwTx = tx + a.accounts.SetTx(tx) + a.storage.SetTx(tx) + a.code.SetTx(tx) + a.commitment.SetTx(tx) + a.logAddrs.SetTx(tx) + a.logTopics.SetTx(tx) + a.tracesFrom.SetTx(tx) + a.tracesTo.SetTx(tx) +} + +func (a *Aggregator) SetTxNum(txNum uint64) { + mxCurrentTx.SetUint64(txNum) + + a.txNum = txNum + a.accounts.SetTxNum(txNum) + a.storage.SetTxNum(txNum) + a.code.SetTxNum(txNum) + a.commitment.SetTxNum(txNum) + a.logAddrs.SetTxNum(txNum) + a.logTopics.SetTxNum(txNum) + a.tracesFrom.SetTxNum(txNum) + a.tracesTo.SetTxNum(txNum) +} + +func (a *Aggregator) SetBlockNum(blockNum uint64) { + a.blockNum = blockNum + mxCurrentBlock.SetUint64(blockNum) +} + +func (a *Aggregator) SetWorkers(i int) { + a.accounts.compressWorkers = i + a.storage.compressWorkers = i + a.code.compressWorkers = i + a.commitment.compressWorkers = i + a.logAddrs.compressWorkers = i + a.logTopics.compressWorkers = i + a.tracesFrom.compressWorkers = i + a.tracesTo.compressWorkers = i +} + +func (a *Aggregator) SetCommitmentMode(mode CommitmentMode) { + a.commitment.mode = mode +} + +func (a *Aggregator) EndTxNumMinimax() uint64 { + min := a.accounts.endTxNumMinimax() + if txNum := a.storage.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.code.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.commitment.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.logAddrs.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.logTopics.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.tracesFrom.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.tracesTo.endTxNumMinimax(); txNum < min { + min = txNum + } + return min +} + +func (a *Aggregator) DomainEndTxNumMinimax() uint64 { + min := a.accounts.endTxNumMinimax() + if txNum := a.storage.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.code.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.commitment.endTxNumMinimax(); txNum < min { + min = txNum + } + return min +} + +func (a *Aggregator) SeekCommitment() (blockNum, txNum uint64, err error) { + filesTxNum := a.EndTxNumMinimax() + blockNum, txNum, err = a.commitment.SeekCommitment(a.aggregationStep, filesTxNum) + if err != nil { + return 0, 0, err + } + if txNum == 0 { + return + } + a.seekTxNum = txNum + 1 + return blockNum, txNum + 1, nil +} + +func (a *Aggregator) mergeDomainSteps(ctx context.Context) error { + mergeStartedAt := time.Now() + maxEndTxNum := a.DomainEndTxNumMinimax() + + var upmerges int + for { + a.defaultCtx.Close() + a.defaultCtx = a.MakeContext() + + somethingMerged, err := a.mergeLoopStep(ctx, maxEndTxNum, 1) + if err != nil { + return err + } + + if !somethingMerged { + break + } + upmerges++ + } + + if upmerges > 1 { + a.logger.Info("[stat] aggregation merged", + "upto_tx", maxEndTxNum, + "merge_took", time.Since(mergeStartedAt), + "merges_count", upmerges) + } + + return nil +} + +func (a *Aggregator) aggregate(ctx context.Context, step uint64) error { + var ( + logEvery = time.NewTicker(time.Second * 30) + wg sync.WaitGroup + errCh = make(chan error, 8) + maxSpan = StepsInBiggestFile * a.aggregationStep + txFrom = step * a.aggregationStep + txTo = (step + 1) * a.aggregationStep + workers = 1 + + stepStartedAt = time.Now() + ) + + defer logEvery.Stop() + + for _, d := range []*Domain{a.accounts, a.storage, a.code, a.commitment.Domain} { + wg.Add(1) + + mxRunningCollations.Inc() + start := time.Now() + collation, err := d.collateStream(ctx, step, txFrom, txTo, d.tx) + mxRunningCollations.Dec() + mxCollateTook.ObserveDuration(start) + + //mxCollationSize.Set(uint64(collation.valuesComp.Count())) + mxCollationSizeHist.SetInt(collation.historyComp.Count()) + + if err != nil { + collation.Close() + return fmt.Errorf("domain collation %q has failed: %w", d.filenameBase, err) + } + + go func(wg *sync.WaitGroup, d *Domain, collation Collation) { + defer wg.Done() + mxRunningMerges.Inc() + + start := time.Now() + sf, err := d.buildFiles(ctx, step, collation, a.ps) + collation.Close() + + if err != nil { + errCh <- err + + sf.Close() + mxRunningMerges.Dec() + return + } + + mxRunningMerges.Dec() + + d.integrateFiles(sf, step*a.aggregationStep, (step+1)*a.aggregationStep) + d.stats.LastFileBuildingTook = time.Since(start) + }(&wg, d, collation) + + mxPruningProgress.Add(2) // domain and history + if err := d.prune(ctx, step, txFrom, txTo, math.MaxUint64, logEvery); err != nil { + return err + } + mxPruningProgress.Dec() + mxPruningProgress.Dec() + + mxPruneTook.Observe(d.stats.LastPruneTook.Seconds()) + mxPruneHistTook.Observe(d.stats.LastPruneHistTook.Seconds()) + } + + // when domain files are build and db is pruned, we can merge them + wg.Add(1) + go func(wg *sync.WaitGroup) { + defer wg.Done() + + if err := a.mergeDomainSteps(ctx); err != nil { + errCh <- err + } + }(&wg) + + // indices are built concurrently + for _, d := range []*InvertedIndex{a.logTopics, a.logAddrs, a.tracesFrom, a.tracesTo} { + wg.Add(1) + + mxRunningCollations.Inc() + start := time.Now() + collation, err := d.collate(ctx, step*a.aggregationStep, (step+1)*a.aggregationStep, d.tx) + mxRunningCollations.Dec() + mxCollateTook.ObserveDuration(start) + + if err != nil { + return fmt.Errorf("index collation %q has failed: %w", d.filenameBase, err) + } + + go func(wg *sync.WaitGroup, d *InvertedIndex, tx kv.Tx) { + defer wg.Done() + + mxRunningMerges.Inc() + start := time.Now() + + sf, err := d.buildFiles(ctx, step, collation, a.ps) + if err != nil { + errCh <- err + sf.Close() + return + } + + mxRunningMerges.Dec() + mxBuildTook.ObserveDuration(start) + + d.integrateFiles(sf, step*a.aggregationStep, (step+1)*a.aggregationStep) + + icx := d.MakeContext() + mxRunningMerges.Inc() + + if err := d.mergeRangesUpTo(ctx, d.endTxNumMinimax(), maxSpan, workers, icx, a.ps); err != nil { + errCh <- err + + mxRunningMerges.Dec() + icx.Close() + return + } + + mxRunningMerges.Dec() + icx.Close() + }(&wg, d, d.tx) + + mxPruningProgress.Inc() + startPrune := time.Now() + if err := d.prune(ctx, txFrom, txTo, math.MaxUint64, logEvery); err != nil { + return err + } + mxPruneTook.ObserveDuration(startPrune) + mxPruningProgress.Dec() + } + + go func() { + wg.Wait() + close(errCh) + }() + + for err := range errCh { + a.logger.Warn("domain collate-buildFiles failed", "err", err) + return fmt.Errorf("domain collate-build failed: %w", err) + } + + a.logger.Info("[stat] aggregation is finished", + "range", fmt.Sprintf("%.2fM-%.2fM", float64(txFrom)/10e5, float64(txTo)/10e5), + "took", time.Since(stepStartedAt)) + + mxStepTook.ObserveDuration(stepStartedAt) + + return nil +} + +func (a *Aggregator) mergeLoopStep(ctx context.Context, maxEndTxNum uint64, workers int) (somethingDone bool, err error) { + closeAll := true + mergeStartedAt := time.Now() + + maxSpan := a.aggregationStep * StepsInBiggestFile + r := a.findMergeRange(maxEndTxNum, maxSpan) + if !r.any() { + return false, nil + } + + outs := a.staticFilesInRange(r, a.defaultCtx) + defer func() { + if closeAll { + outs.Close() + } + }() + + in, err := a.mergeFiles(ctx, outs, r, workers) + if err != nil { + return true, err + } + defer func() { + if closeAll { + in.Close() + } + }() + a.integrateMergedFiles(outs, in) + a.cleanAfterNewFreeze(in) + closeAll = false + + for _, s := range []DomainStats{a.accounts.stats, a.code.stats, a.storage.stats} { + mxBuildTook.Observe(s.LastFileBuildingTook.Seconds()) + } + + a.logger.Info("[stat] finished merge step", + "upto_tx", maxEndTxNum, "merge_step_took", time.Since(mergeStartedAt)) + + return true, nil +} + +type Ranges struct { + accounts DomainRanges + storage DomainRanges + code DomainRanges + commitment DomainRanges +} + +func (r Ranges) String() string { + return fmt.Sprintf("accounts=%s, storage=%s, code=%s, commitment=%s", r.accounts.String(), r.storage.String(), r.code.String(), r.commitment.String()) +} + +func (r Ranges) any() bool { + return r.accounts.any() || r.storage.any() || r.code.any() || r.commitment.any() +} + +func (a *Aggregator) findMergeRange(maxEndTxNum, maxSpan uint64) Ranges { + var r Ranges + r.accounts = a.accounts.findMergeRange(maxEndTxNum, maxSpan) + r.storage = a.storage.findMergeRange(maxEndTxNum, maxSpan) + r.code = a.code.findMergeRange(maxEndTxNum, maxSpan) + r.commitment = a.commitment.findMergeRange(maxEndTxNum, maxSpan) + //if r.any() { + //log.Info(fmt.Sprintf("findMergeRange(%d, %d)=%+v\n", maxEndTxNum, maxSpan, r)) + //} + return r +} + +type SelectedStaticFiles struct { + accounts []*filesItem + accountsIdx []*filesItem + accountsHist []*filesItem + storage []*filesItem + storageIdx []*filesItem + storageHist []*filesItem + code []*filesItem + codeIdx []*filesItem + codeHist []*filesItem + commitment []*filesItem + commitmentIdx []*filesItem + commitmentHist []*filesItem + codeI int + storageI int + accountsI int + commitmentI int +} + +func (sf SelectedStaticFiles) Close() { + for _, group := range [][]*filesItem{ + sf.accounts, sf.accountsIdx, sf.accountsHist, + sf.storage, sf.storageIdx, sf.storageHist, + sf.code, sf.codeIdx, sf.codeHist, + sf.commitment, sf.commitmentIdx, sf.commitmentHist, + } { + for _, item := range group { + if item != nil { + if item.decompressor != nil { + item.decompressor.Close() + } + if item.index != nil { + item.index.Close() + } + if item.bindex != nil { + item.bindex.Close() + } + } + } + } +} + +func (a *Aggregator) staticFilesInRange(r Ranges, ac *AggregatorContext) SelectedStaticFiles { + var sf SelectedStaticFiles + if r.accounts.any() { + sf.accounts, sf.accountsIdx, sf.accountsHist, sf.accountsI = ac.accounts.staticFilesInRange(r.accounts) + } + if r.storage.any() { + sf.storage, sf.storageIdx, sf.storageHist, sf.storageI = ac.storage.staticFilesInRange(r.storage) + } + if r.code.any() { + sf.code, sf.codeIdx, sf.codeHist, sf.codeI = ac.code.staticFilesInRange(r.code) + } + if r.commitment.any() { + sf.commitment, sf.commitmentIdx, sf.commitmentHist, sf.commitmentI = ac.commitment.staticFilesInRange(r.commitment) + } + return sf +} + +type MergedFiles struct { + accounts *filesItem + accountsIdx, accountsHist *filesItem + storage *filesItem + storageIdx, storageHist *filesItem + code *filesItem + codeIdx, codeHist *filesItem + commitment *filesItem + commitmentIdx, commitmentHist *filesItem +} + +func (mf MergedFiles) Close() { + for _, item := range []*filesItem{ + mf.accounts, mf.accountsIdx, mf.accountsHist, + mf.storage, mf.storageIdx, mf.storageHist, + mf.code, mf.codeIdx, mf.codeHist, + mf.commitment, mf.commitmentIdx, mf.commitmentHist, + //mf.logAddrs, mf.logTopics, mf.tracesFrom, mf.tracesTo, + } { + if item != nil { + if item.decompressor != nil { + item.decompressor.Close() + } + if item.decompressor != nil { + item.index.Close() + } + if item.bindex != nil { + item.bindex.Close() + } + } + } +} + +func (a *Aggregator) mergeFiles(ctx context.Context, files SelectedStaticFiles, r Ranges, workers int) (MergedFiles, error) { + started := time.Now() + defer func(t time.Time) { + a.logger.Info("[snapshots] domain files has been merged", + "range", fmt.Sprintf("%d-%d", r.accounts.valuesStartTxNum/a.aggregationStep, r.accounts.valuesEndTxNum/a.aggregationStep), + "took", time.Since(t)) + }(started) + + var mf MergedFiles + closeFiles := true + defer func() { + if closeFiles { + mf.Close() + } + }() + + var ( + errCh = make(chan error, 4) + wg sync.WaitGroup + predicates sync.WaitGroup + ) + + wg.Add(4) + predicates.Add(2) + + go func() { + mxRunningMerges.Inc() + defer mxRunningMerges.Dec() + defer wg.Done() + + var err error + if r.code.any() { + if mf.code, mf.codeIdx, mf.codeHist, err = a.code.mergeFiles(ctx, files.code, files.codeIdx, files.codeHist, r.code, workers, a.ps); err != nil { + errCh <- err + } + } + }() + + go func(predicates *sync.WaitGroup) { + mxRunningMerges.Inc() + defer mxRunningMerges.Dec() + + defer wg.Done() + defer predicates.Done() + var err error + if r.accounts.any() { + if mf.accounts, mf.accountsIdx, mf.accountsHist, err = a.accounts.mergeFiles(ctx, files.accounts, files.accountsIdx, files.accountsHist, r.accounts, workers, a.ps); err != nil { + errCh <- err + } + } + }(&predicates) + go func(predicates *sync.WaitGroup) { + mxRunningMerges.Inc() + defer mxRunningMerges.Dec() + + defer wg.Done() + defer predicates.Done() + var err error + if r.storage.any() { + if mf.storage, mf.storageIdx, mf.storageHist, err = a.storage.mergeFiles(ctx, files.storage, files.storageIdx, files.storageHist, r.storage, workers, a.ps); err != nil { + errCh <- err + } + } + }(&predicates) + + go func(predicates *sync.WaitGroup) { + defer wg.Done() + predicates.Wait() + + mxRunningMerges.Inc() + defer mxRunningMerges.Dec() + + var err error + // requires storage|accounts to be merged at this point + if r.commitment.any() { + if mf.commitment, mf.commitmentIdx, mf.commitmentHist, err = a.commitment.mergeFiles(ctx, files, mf, r.commitment, workers, a.ps); err != nil { + errCh <- err + } + } + }(&predicates) + + go func() { + wg.Wait() + close(errCh) + }() + + var lastError error + for err := range errCh { + lastError = err + } + if lastError == nil { + closeFiles = false + } + return mf, lastError +} + +func (a *Aggregator) integrateMergedFiles(outs SelectedStaticFiles, in MergedFiles) { + a.accounts.integrateMergedFiles(outs.accounts, outs.accountsIdx, outs.accountsHist, in.accounts, in.accountsIdx, in.accountsHist) + a.storage.integrateMergedFiles(outs.storage, outs.storageIdx, outs.storageHist, in.storage, in.storageIdx, in.storageHist) + a.code.integrateMergedFiles(outs.code, outs.codeIdx, outs.codeHist, in.code, in.codeIdx, in.codeHist) + a.commitment.integrateMergedFiles(outs.commitment, outs.commitmentIdx, outs.commitmentHist, in.commitment, in.commitmentIdx, in.commitmentHist) +} + +func (a *Aggregator) cleanAfterNewFreeze(in MergedFiles) { + a.accounts.cleanAfterFreeze(in.accountsHist.endTxNum) + a.storage.cleanAfterFreeze(in.storageHist.endTxNum) + a.code.cleanAfterFreeze(in.codeHist.endTxNum) + a.commitment.cleanAfterFreeze(in.commitment.endTxNum) +} + +// ComputeCommitment evaluates commitment for processed state. +// If `saveStateAfter`=true, then trie state will be saved to DB after commitment evaluation. +func (a *Aggregator) ComputeCommitment(saveStateAfter, trace bool) (rootHash []byte, err error) { + // if commitment mode is Disabled, there will be nothing to compute on. + mxCommitmentRunning.Inc() + rootHash, branchNodeUpdates, err := a.commitment.ComputeCommitment(trace) + mxCommitmentRunning.Dec() + + if err != nil { + return nil, err + } + if a.seekTxNum > a.txNum { + saveStateAfter = false + } + + mxCommitmentKeys.AddUint64(a.commitment.comKeys) + mxCommitmentTook.Observe(a.commitment.comTook.Seconds()) + + defer func(t time.Time) { mxCommitmentWriteTook.ObserveDuration(t) }(time.Now()) + + for pref, update := range branchNodeUpdates { + prefix := []byte(pref) + + stateValue, err := a.defaultCtx.ReadCommitment(prefix, a.rwTx) + if err != nil { + return nil, err + } + mxCommitmentUpdates.Inc() + stated := commitment.BranchData(stateValue) + merged, err := a.commitment.branchMerger.Merge(stated, update) + if err != nil { + return nil, err + } + if bytes.Equal(stated, merged) { + continue + } + if trace { + fmt.Printf("computeCommitment merge [%x] [%x]+[%x]=>[%x]\n", prefix, stated, update, merged) + } + if err = a.UpdateCommitmentData(prefix, merged); err != nil { + return nil, err + } + mxCommitmentUpdatesApplied.Inc() + } + + if saveStateAfter { + if err := a.commitment.storeCommitmentState(a.blockNum, a.txNum); err != nil { + return nil, err + } + } + + return rootHash, nil +} + +// AggregatedRoots Provides channel which receives commitment hash each time aggregation is occured +func (a *Aggregator) AggregatedRoots() chan [length.Hash]byte { + return a.stepDoneNotice +} + +func (a *Aggregator) notifyAggregated(rootHash []byte) { + rh := (*[length.Hash]byte)(rootHash) + select { + case a.stepDoneNotice <- *rh: + default: + } +} + +func (a *Aggregator) ReadyToFinishTx() bool { + return (a.txNum+1)%a.aggregationStep == 0 && a.seekTxNum < a.txNum +} + +func (a *Aggregator) FinishTx() (err error) { + atomic.AddUint64(&a.stats.TxCount, 1) + + if !a.ReadyToFinishTx() { + return nil + } + + mxRunningMerges.Inc() + defer mxRunningMerges.Dec() + + a.commitment.patriciaTrie.ResetFns(a.defaultCtx.branchFn, a.defaultCtx.accountFn, a.defaultCtx.storageFn) + rootHash, err := a.ComputeCommitment(true, false) + if err != nil { + return err + } + step := a.txNum / a.aggregationStep + mxStepCurrent.SetUint64(step) + + if step == 0 { + a.notifyAggregated(rootHash) + return nil + } + step-- // Leave one step worth in the DB + + ctx := context.Background() + if err := a.Flush(ctx); err != nil { + return err + } + + if err := a.aggregate(ctx, step); err != nil { + return err + } + + a.notifyAggregated(rootHash) + return nil +} + +func (a *Aggregator) UpdateAccountData(addr []byte, account []byte) error { + a.commitment.TouchPlainKey(addr, account, a.commitment.TouchPlainKeyAccount) + return a.accounts.Put(addr, nil, account) +} + +func (a *Aggregator) UpdateAccountCode(addr []byte, code []byte) error { + a.commitment.TouchPlainKey(addr, code, a.commitment.TouchPlainKeyCode) + if len(code) == 0 { + return a.code.Delete(addr, nil) + } + return a.code.Put(addr, nil, code) +} + +func (a *Aggregator) UpdateCommitmentData(prefix []byte, code []byte) error { + return a.commitment.Put(prefix, nil, code) +} + +func (a *Aggregator) DeleteAccount(addr []byte) error { + a.commitment.TouchPlainKey(addr, nil, a.commitment.TouchPlainKeyAccount) + + if err := a.accounts.Delete(addr, nil); err != nil { + return err + } + if err := a.code.Delete(addr, nil); err != nil { + return err + } + var e error + if err := a.storage.defaultDc.IteratePrefix(addr, func(k, _ []byte) { + a.commitment.TouchPlainKey(k, nil, a.commitment.TouchPlainKeyStorage) + if e == nil { + e = a.storage.Delete(k, nil) + } + }); err != nil { + return err + } + return e +} + +func (a *Aggregator) WriteAccountStorage(addr, loc []byte, value []byte) error { + composite := make([]byte, len(addr)+len(loc)) + copy(composite, addr) + copy(composite[length.Addr:], loc) + + a.commitment.TouchPlainKey(composite, value, a.commitment.TouchPlainKeyStorage) + if len(value) == 0 { + return a.storage.Delete(addr, loc) + } + return a.storage.Put(addr, loc, value) +} + +func (a *Aggregator) AddTraceFrom(addr []byte) error { + return a.tracesFrom.Add(addr) +} + +func (a *Aggregator) AddTraceTo(addr []byte) error { + return a.tracesTo.Add(addr) +} + +func (a *Aggregator) AddLogAddr(addr []byte) error { + return a.logAddrs.Add(addr) +} + +func (a *Aggregator) AddLogTopic(topic []byte) error { + return a.logTopics.Add(topic) +} + +// StartWrites - pattern: `defer agg.StartWrites().FinishWrites()` +func (a *Aggregator) StartWrites() *Aggregator { + a.accounts.StartWrites() + a.storage.StartWrites() + a.code.StartWrites() + a.commitment.StartWrites() + a.logAddrs.StartWrites() + a.logTopics.StartWrites() + a.tracesFrom.StartWrites() + a.tracesTo.StartWrites() + + if a.defaultCtx != nil { + a.defaultCtx.Close() + } + a.defaultCtx = &AggregatorContext{ + a: a, + accounts: a.accounts.defaultDc, + storage: a.storage.defaultDc, + code: a.code.defaultDc, + commitment: a.commitment.defaultDc, + logAddrs: a.logAddrs.MakeContext(), + logTopics: a.logTopics.MakeContext(), + tracesFrom: a.tracesFrom.MakeContext(), + tracesTo: a.tracesTo.MakeContext(), + } + a.commitment.patriciaTrie.ResetFns(a.defaultCtx.branchFn, a.defaultCtx.accountFn, a.defaultCtx.storageFn) + return a +} + +func (a *Aggregator) FinishWrites() { + a.accounts.FinishWrites() + a.storage.FinishWrites() + a.code.FinishWrites() + a.commitment.FinishWrites() + a.logAddrs.FinishWrites() + a.logTopics.FinishWrites() + a.tracesFrom.FinishWrites() + a.tracesTo.FinishWrites() +} + +// Flush - must be called before Collate, if you did some writes +func (a *Aggregator) Flush(ctx context.Context) error { + flushers := []flusher{ + a.accounts.Rotate(), + a.storage.Rotate(), + a.code.Rotate(), + a.commitment.Domain.Rotate(), + a.logAddrs.Rotate(), + a.logTopics.Rotate(), + a.tracesFrom.Rotate(), + a.tracesTo.Rotate(), + } + defer func(t time.Time) { a.logger.Debug("[snapshots] history flush", "took", time.Since(t)) }(time.Now()) + for _, f := range flushers { + if err := f.Flush(ctx, a.rwTx); err != nil { + return err + } + } + return nil +} + +type FilesStats struct { + HistoryReads uint64 + TotalReads uint64 + IdxAccess time.Duration + TxCount uint64 + FilesCount uint64 + IdxSize uint64 + DataSize uint64 +} + +func (a *Aggregator) Stats() FilesStats { + res := a.stats + stat := a.GetAndResetStats() + res.IdxSize = stat.IndexSize + res.DataSize = stat.DataSize + res.FilesCount = stat.FilesCount + res.HistoryReads = stat.HistoryQueries.Load() + res.TotalReads = stat.TotalQueries.Load() + res.IdxAccess = stat.EfSearchTime + return res +} + +type AggregatorContext struct { + a *Aggregator + accounts *DomainContext + storage *DomainContext + code *DomainContext + commitment *DomainContext + logAddrs *InvertedIndexContext + logTopics *InvertedIndexContext + tracesFrom *InvertedIndexContext + tracesTo *InvertedIndexContext + keyBuf []byte +} + +func (a *Aggregator) MakeContext() *AggregatorContext { + return &AggregatorContext{ + a: a, + accounts: a.accounts.MakeContext(), + storage: a.storage.MakeContext(), + code: a.code.MakeContext(), + commitment: a.commitment.MakeContext(), + logAddrs: a.logAddrs.MakeContext(), + logTopics: a.logTopics.MakeContext(), + tracesFrom: a.tracesFrom.MakeContext(), + tracesTo: a.tracesTo.MakeContext(), + } +} + +func (ac *AggregatorContext) ReadAccountData(addr []byte, roTx kv.Tx) ([]byte, error) { + return ac.accounts.Get(addr, nil, roTx) +} + +func (ac *AggregatorContext) ReadAccountDataBeforeTxNum(addr []byte, txNum uint64, roTx kv.Tx) ([]byte, error) { + v, err := ac.accounts.GetBeforeTxNum(addr, txNum, roTx) + return v, err +} + +func (ac *AggregatorContext) ReadAccountStorage(addr []byte, loc []byte, roTx kv.Tx) ([]byte, error) { + return ac.storage.Get(addr, loc, roTx) +} + +func (ac *AggregatorContext) ReadAccountStorageBeforeTxNum(addr []byte, loc []byte, txNum uint64, roTx kv.Tx) ([]byte, error) { + if cap(ac.keyBuf) < len(addr)+len(loc) { + ac.keyBuf = make([]byte, len(addr)+len(loc)) + } else if len(ac.keyBuf) != len(addr)+len(loc) { + ac.keyBuf = ac.keyBuf[:len(addr)+len(loc)] + } + copy(ac.keyBuf, addr) + copy(ac.keyBuf[len(addr):], loc) + v, err := ac.storage.GetBeforeTxNum(ac.keyBuf, txNum, roTx) + return v, err +} + +func (ac *AggregatorContext) ReadAccountCode(addr []byte, roTx kv.Tx) ([]byte, error) { + return ac.code.Get(addr, nil, roTx) +} + +func (ac *AggregatorContext) ReadCommitment(addr []byte, roTx kv.Tx) ([]byte, error) { + return ac.commitment.Get(addr, nil, roTx) +} + +func (ac *AggregatorContext) ReadCommitmentBeforeTxNum(addr []byte, txNum uint64, roTx kv.Tx) ([]byte, error) { + v, err := ac.commitment.GetBeforeTxNum(addr, txNum, roTx) + return v, err +} + +func (ac *AggregatorContext) ReadAccountCodeBeforeTxNum(addr []byte, txNum uint64, roTx kv.Tx) ([]byte, error) { + v, err := ac.code.GetBeforeTxNum(addr, txNum, roTx) + return v, err +} + +func (ac *AggregatorContext) ReadAccountCodeSize(addr []byte, roTx kv.Tx) (int, error) { + code, err := ac.code.Get(addr, nil, roTx) + if err != nil { + return 0, err + } + return len(code), nil +} + +func (ac *AggregatorContext) ReadAccountCodeSizeBeforeTxNum(addr []byte, txNum uint64, roTx kv.Tx) (int, error) { + code, err := ac.code.GetBeforeTxNum(addr, txNum, roTx) + if err != nil { + return 0, err + } + return len(code), nil +} + +func (ac *AggregatorContext) branchFn(prefix []byte) ([]byte, error) { + // Look in the summary table first + stateValue, err := ac.ReadCommitment(prefix, ac.a.rwTx) + if err != nil { + return nil, fmt.Errorf("failed read branch %x: %w", commitment.CompactedKeyToHex(prefix), err) + } + if stateValue == nil { + return nil, nil + } + // fmt.Printf("Returning branch data prefix [%x], mergeVal=[%x]\n", commitment.CompactedKeyToHex(prefix), stateValue) + return stateValue[2:], nil // Skip touchMap but keep afterMap +} + +func (ac *AggregatorContext) accountFn(plainKey []byte, cell *commitment.Cell) error { + encAccount, err := ac.ReadAccountData(plainKey, ac.a.rwTx) + if err != nil { + return err + } + cell.Nonce = 0 + cell.Balance.Clear() + copy(cell.CodeHash[:], commitment.EmptyCodeHash) + if len(encAccount) > 0 { + nonce, balance, chash := DecodeAccountBytes(encAccount) + cell.Nonce = nonce + cell.Balance.Set(balance) + if chash != nil { + copy(cell.CodeHash[:], chash) + } + } + + code, err := ac.ReadAccountCode(plainKey, ac.a.rwTx) + if err != nil { + return err + } + if code != nil { + ac.a.commitment.keccak.Reset() + ac.a.commitment.keccak.Write(code) + copy(cell.CodeHash[:], ac.a.commitment.keccak.Sum(nil)) + } + cell.Delete = len(encAccount) == 0 && len(code) == 0 + return nil +} + +func (ac *AggregatorContext) storageFn(plainKey []byte, cell *commitment.Cell) error { + // Look in the summary table first + enc, err := ac.ReadAccountStorage(plainKey[:length.Addr], plainKey[length.Addr:], ac.a.rwTx) + if err != nil { + return err + } + cell.StorageLen = len(enc) + copy(cell.Storage[:], enc) + cell.Delete = cell.StorageLen == 0 + return nil +} + +func (ac *AggregatorContext) LogAddrIterator(addr []byte, startTxNum, endTxNum int, roTx kv.Tx) (iter.U64, error) { + return ac.logAddrs.IdxRange(addr, startTxNum, endTxNum, order.Asc, -1, roTx) +} + +func (ac *AggregatorContext) LogTopicIterator(topic []byte, startTxNum, endTxNum int, roTx kv.Tx) (iter.U64, error) { + return ac.logTopics.IdxRange(topic, startTxNum, endTxNum, order.Asc, -1, roTx) +} + +func (ac *AggregatorContext) TraceFromIterator(addr []byte, startTxNum, endTxNum int, roTx kv.Tx) (iter.U64, error) { + return ac.tracesFrom.IdxRange(addr, startTxNum, endTxNum, order.Asc, -1, roTx) +} + +func (ac *AggregatorContext) TraceToIterator(addr []byte, startTxNum, endTxNum int, roTx kv.Tx) (iter.U64, error) { + return ac.tracesTo.IdxRange(addr, startTxNum, endTxNum, order.Asc, -1, roTx) +} + +func (ac *AggregatorContext) Close() { + ac.accounts.Close() + ac.storage.Close() + ac.code.Close() + ac.commitment.Close() + ac.logAddrs.Close() + ac.logTopics.Close() + ac.tracesFrom.Close() + ac.tracesTo.Close() +} + +func DecodeAccountBytes(enc []byte) (nonce uint64, balance *uint256.Int, hash []byte) { + balance = new(uint256.Int) + + if len(enc) > 0 { + pos := 0 + nonceBytes := int(enc[pos]) + pos++ + if nonceBytes > 0 { + nonce = bytesToUint64(enc[pos : pos+nonceBytes]) + pos += nonceBytes + } + balanceBytes := int(enc[pos]) + pos++ + if balanceBytes > 0 { + balance.SetBytes(enc[pos : pos+balanceBytes]) + pos += balanceBytes + } + codeHashBytes := int(enc[pos]) + pos++ + if codeHashBytes > 0 { + codeHash := make([]byte, length.Hash) + copy(codeHash, enc[pos:pos+codeHashBytes]) + } + } + return +} + +func EncodeAccountBytes(nonce uint64, balance *uint256.Int, hash []byte, incarnation uint64) []byte { + l := 1 + if nonce > 0 { + l += common.BitLenToByteLen(bits.Len64(nonce)) + } + l++ + if !balance.IsZero() { + l += balance.ByteLen() + } + l++ + if len(hash) == length.Hash { + l += 32 + } + l++ + if incarnation > 0 { + l += common.BitLenToByteLen(bits.Len64(incarnation)) + } + value := make([]byte, l) + pos := 0 + + if nonce == 0 { + value[pos] = 0 + pos++ + } else { + nonceBytes := common.BitLenToByteLen(bits.Len64(nonce)) + value[pos] = byte(nonceBytes) + var nonce = nonce + for i := nonceBytes; i > 0; i-- { + value[pos+i] = byte(nonce) + nonce >>= 8 + } + pos += nonceBytes + 1 + } + if balance.IsZero() { + value[pos] = 0 + pos++ + } else { + balanceBytes := balance.ByteLen() + value[pos] = byte(balanceBytes) + pos++ + balance.WriteToSlice(value[pos : pos+balanceBytes]) + pos += balanceBytes + } + if len(hash) == 0 { + value[pos] = 0 + pos++ + } else { + value[pos] = 32 + pos++ + copy(value[pos:pos+32], hash) + pos += 32 + } + if incarnation == 0 { + value[pos] = 0 + } else { + incBytes := common.BitLenToByteLen(bits.Len64(incarnation)) + value[pos] = byte(incBytes) + var inc = incarnation + for i := incBytes; i > 0; i-- { + value[pos+i] = byte(inc) + inc >>= 8 + } + } + return value +} + +func bytesToUint64(buf []byte) (x uint64) { + for i, b := range buf { + x = x<<8 + uint64(b) + if i == 7 { + return + } + } + return +} diff --git a/erigon-lib/state/aggregator_bench_test.go b/erigon-lib/state/aggregator_bench_test.go new file mode 100644 index 00000000000..16b748fd997 --- /dev/null +++ b/erigon-lib/state/aggregator_bench_test.go @@ -0,0 +1,254 @@ +package state + +import ( + "bytes" + "context" + "fmt" + "math/rand" + "os" + "path" + "path/filepath" + "testing" + "time" + + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" + + "github.com/ledgerwatch/erigon-lib/commitment" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon-lib/recsplit" +) + +func testDbAndAggregatorBench(b *testing.B, aggStep uint64) (string, kv.RwDB, *Aggregator) { + b.Helper() + logger := log.New() + path := b.TempDir() + b.Cleanup(func() { os.RemoveAll(path) }) + db := mdbx.NewMDBX(logger).InMem(path).WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { + return kv.ChaindataTablesCfg + }).MustOpen() + b.Cleanup(db.Close) + agg, err := NewAggregator(path, path, aggStep, CommitmentModeDirect, commitment.VariantHexPatriciaTrie, logger) + require.NoError(b, err) + b.Cleanup(agg.Close) + return path, db, agg +} + +func BenchmarkAggregator_Processing(b *testing.B) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + longKeys := queueKeys(ctx, 64, length.Addr+length.Hash) + vals := queueKeys(ctx, 53, length.Hash) + + aggStep := uint64(100_00) + _, db, agg := testDbAndAggregatorBench(b, aggStep) + + tx, err := db.BeginRw(ctx) + require.NoError(b, err) + defer func() { + if tx != nil { + tx.Rollback() + } + }() + + agg.SetTx(tx) + defer agg.StartWrites().FinishWrites() + require.NoError(b, err) + + b.ReportAllocs() + b.ResetTimer() + + for i := 0; i < b.N; i++ { + key := <-longKeys + val := <-vals + txNum := uint64(i) + agg.SetTxNum(txNum) + err := agg.WriteAccountStorage(key[:length.Addr], key[length.Addr:], val) + require.NoError(b, err) + err = agg.FinishTx() + require.NoError(b, err) + } +} + +func queueKeys(ctx context.Context, seed, ofSize uint64) <-chan []byte { + rnd := rand.New(rand.NewSource(int64(seed))) + keys := make(chan []byte, 1) + go func() { + for { + if ctx.Err() != nil { + break + } + bb := make([]byte, ofSize) + rnd.Read(bb) + + keys <- bb + } + close(keys) + }() + return keys +} + +func Benchmark_BtreeIndex_Allocation(b *testing.B) { + rnd := rand.New(rand.NewSource(time.Now().UnixNano())) + for i := 0; i < b.N; i++ { + now := time.Now() + count := rnd.Intn(1000000000) + bt := newBtAlloc(uint64(count), uint64(1<<12), true) + bt.traverseDfs() + fmt.Printf("alloc %v\n", time.Since(now)) + } +} + +func Benchmark_BtreeIndex_Search(b *testing.B) { + logger := log.New() + rnd := rand.New(rand.NewSource(time.Now().UnixNano())) + tmp := b.TempDir() + defer os.RemoveAll(tmp) + dataPath := "../../data/storage.256-288.kv" + + indexPath := path.Join(tmp, filepath.Base(dataPath)+".bti") + err := BuildBtreeIndex(dataPath, indexPath, logger) + require.NoError(b, err) + + M := 1024 + bt, err := OpenBtreeIndex(indexPath, dataPath, uint64(M)) + + require.NoError(b, err) + + idx := NewBtIndexReader(bt) + + keys, err := pivotKeysFromKV(dataPath) + require.NoError(b, err) + + for i := 0; i < b.N; i++ { + p := rnd.Intn(len(keys)) + cur, err := idx.Seek(keys[p]) + require.NoErrorf(b, err, "i=%d", i) + require.EqualValues(b, keys[p], cur.key) + require.NotEmptyf(b, cur.Value(), "i=%d", i) + } + + bt.Close() +} + +func benchInitBtreeIndex(b *testing.B, M uint64) (*BtIndex, [][]byte, string) { + b.Helper() + + logger := log.New() + tmp := b.TempDir() + b.Cleanup(func() { os.RemoveAll(tmp) }) + + dataPath := generateCompressedKV(b, tmp, 52, 10, 1000000, logger) + indexPath := path.Join(tmp, filepath.Base(dataPath)+".bt") + bt, err := CreateBtreeIndex(indexPath, dataPath, M, logger) + require.NoError(b, err) + + keys, err := pivotKeysFromKV(dataPath) + require.NoError(b, err) + return bt, keys, dataPath +} + +func Benchmark_BTree_Seek(b *testing.B) { + M := uint64(1024) + bt, keys, _ := benchInitBtreeIndex(b, M) + defer bt.Close() + + rnd := rand.New(rand.NewSource(time.Now().UnixNano())) + + b.Run("seek_only", func(b *testing.B) { + for i := 0; i < b.N; i++ { + p := rnd.Intn(len(keys)) + + cur, err := bt.Seek(keys[p]) + require.NoError(b, err) + + require.EqualValues(b, keys[p], cur.key) + } + }) + + b.Run("seek_then_next", func(b *testing.B) { + for i := 0; i < b.N; i++ { + p := rnd.Intn(len(keys)) + + cur, err := bt.Seek(keys[p]) + require.NoError(b, err) + + require.EqualValues(b, keys[p], cur.key) + + prevKey := common.Copy(keys[p]) + ntimer := time.Duration(0) + nextKeys := 5000 + for j := 0; j < nextKeys; j++ { + ntime := time.Now() + + if !cur.Next() { + break + } + ntimer += time.Since(ntime) + + nk := cur.Key() + if bytes.Compare(prevKey, nk) > 0 { + b.Fatalf("prev %s cur %s, next key should be greater", prevKey, nk) + } + prevKey = nk + } + if i%1000 == 0 { + fmt.Printf("next_access_last[of %d keys] %v\n", nextKeys, ntimer/time.Duration(nextKeys)) + } + + } + }) +} + +// requires existing KV index file at ../../data/storage.kv +func Benchmark_Recsplit_Find_ExternalFile(b *testing.B) { + dataPath := "../../data/storage.kv" + f, err := os.Stat(dataPath) + if err != nil || f.IsDir() { + b.Skip("requires existing KV index file at ../../data/storage.kv") + } + + rnd := rand.New(rand.NewSource(time.Now().UnixNano())) + tmp := b.TempDir() + + defer os.RemoveAll(tmp) + + indexPath := dataPath + "i" + idx, err := recsplit.OpenIndex(indexPath) + require.NoError(b, err) + idxr := recsplit.NewIndexReader(idx) + + decomp, err := compress.NewDecompressor(dataPath) + require.NoError(b, err) + defer decomp.Close() + + getter := decomp.MakeGetter() + + keys, err := pivotKeysFromKV(dataPath) + require.NoError(b, err) + + for i := 0; i < b.N; i++ { + p := rnd.Intn(len(keys)) + + offset := idxr.Lookup(keys[p]) + getter.Reset(offset) + + require.True(b, getter.HasNext()) + + key, pa := getter.Next(nil) + require.NotEmpty(b, key) + + value, pb := getter.Next(nil) + if pb-pa != 1 { + require.NotEmpty(b, value) + } + + require.NoErrorf(b, err, "i=%d", i) + require.EqualValues(b, keys[p], key) + } +} diff --git a/erigon-lib/state/aggregator_fuzz_test.go b/erigon-lib/state/aggregator_fuzz_test.go new file mode 100644 index 00000000000..0b471a92380 --- /dev/null +++ b/erigon-lib/state/aggregator_fuzz_test.go @@ -0,0 +1,24 @@ +//go:build !nofuzz + +package state + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func Fuzz_BtreeIndex_Allocation(f *testing.F) { + f.Add(uint64(1_000_000), uint64(1024)) + f.Fuzz(func(t *testing.T, keyCount, M uint64) { + if keyCount < M*4 || M < 4 { + t.Skip() + } + bt := newBtAlloc(keyCount, M, false) + bt.traverseDfs() + require.GreaterOrEqual(t, bt.N, keyCount) + + require.LessOrEqual(t, float64(bt.N-keyCount)/float64(bt.N), 0.05) + + }) +} diff --git a/erigon-lib/state/aggregator_test.go b/erigon-lib/state/aggregator_test.go new file mode 100644 index 00000000000..1db7ca3a48b --- /dev/null +++ b/erigon-lib/state/aggregator_test.go @@ -0,0 +1,637 @@ +package state + +import ( + "context" + "encoding/binary" + "fmt" + "math/rand" + "os" + "path" + "path/filepath" + "sync/atomic" + "testing" + "time" + + "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" + + "github.com/ledgerwatch/erigon-lib/commitment" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" +) + +func testDbAndAggregator(t *testing.T, aggStep uint64) (string, kv.RwDB, *Aggregator) { + t.Helper() + path := t.TempDir() + logger := log.New() + db := mdbx.NewMDBX(logger).InMem(filepath.Join(path, "db4")).WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { + return kv.ChaindataTablesCfg + }).MustOpen() + t.Cleanup(db.Close) + agg, err := NewAggregator(filepath.Join(path, "e4"), filepath.Join(path, "e4tmp"), aggStep, CommitmentModeDirect, commitment.VariantHexPatriciaTrie, logger) + require.NoError(t, err) + return path, db, agg +} + +func TestAggregator_WinAccess(t *testing.T) { + _, db, agg := testDbAndAggregator(t, 100) + defer agg.Close() + + tx, err := db.BeginRwNosync(context.Background()) + require.NoError(t, err) + defer func() { + if tx != nil { + tx.Rollback() + } + }() + agg.SetTx(tx) + + agg.StartWrites() + + rnd := rand.New(rand.NewSource(time.Now().UnixNano())) + for txNum := uint64(1); txNum <= 100; txNum++ { + agg.SetTxNum(txNum) + + addr := make([]byte, length.Addr) + n, err := rnd.Read(addr) + require.NoError(t, err) + require.EqualValues(t, length.Addr, n) + + buf := EncodeAccountBytes(1, uint256.NewInt(uint64(rand.Intn(10e9))), nil, 0) + err = agg.UpdateAccountData(addr, buf) + require.NoError(t, err) + + var v [8]byte + binary.BigEndian.PutUint64(v[:], txNum) + require.NoError(t, err) + require.NoError(t, agg.FinishTx()) + } + agg.FinishWrites() + + require.NoError(t, err) + err = tx.Commit() + require.NoError(t, err) + tx = nil +} + +func TestAggregator_Merge(t *testing.T) { + _, db, agg := testDbAndAggregator(t, 1000) + defer agg.Close() + + tx, err := db.BeginRwNosync(context.Background()) + require.NoError(t, err) + defer func() { + if tx != nil { + tx.Rollback() + } + }() + agg.SetTx(tx) + + agg.StartWrites() + + txs := uint64(10000) + rnd := rand.New(rand.NewSource(time.Now().UnixNano())) + + // keys are encodings of numbers 1..31 + // each key changes value on every txNum which is multiple of the key + var maxWrite, otherMaxWrite uint64 + for txNum := uint64(1); txNum <= txs; txNum++ { + agg.SetTxNum(txNum) + + addr, loc := make([]byte, length.Addr), make([]byte, length.Hash) + + n, err := rnd.Read(addr) + require.NoError(t, err) + require.EqualValues(t, length.Addr, n) + + n, err = rnd.Read(loc) + require.NoError(t, err) + require.EqualValues(t, length.Hash, n) + //keys[txNum-1] = append(addr, loc...) + + buf := EncodeAccountBytes(1, uint256.NewInt(0), nil, 0) + err = agg.UpdateAccountData(addr, buf) + require.NoError(t, err) + + err = agg.WriteAccountStorage(addr, loc, []byte{addr[0], loc[0]}) + require.NoError(t, err) + + var v [8]byte + binary.BigEndian.PutUint64(v[:], txNum) + if txNum%135 == 0 { + err = agg.UpdateCommitmentData([]byte("otherroothash"), v[:]) + otherMaxWrite = txNum + } else { + err = agg.UpdateCommitmentData([]byte("roothash"), v[:]) + maxWrite = txNum + } + require.NoError(t, err) + require.NoError(t, agg.FinishTx()) + } + agg.FinishWrites() + require.NoError(t, err) + err = tx.Commit() + require.NoError(t, err) + tx = nil + + // Check the history + roTx, err := db.BeginRo(context.Background()) + require.NoError(t, err) + defer roTx.Rollback() + + dc := agg.MakeContext() + + v, err := dc.ReadCommitment([]byte("roothash"), roTx) + require.NoError(t, err) + + require.EqualValues(t, maxWrite, binary.BigEndian.Uint64(v[:])) + + v, err = dc.ReadCommitment([]byte("otherroothash"), roTx) + require.NoError(t, err) + dc.Close() + + require.EqualValues(t, otherMaxWrite, binary.BigEndian.Uint64(v[:])) +} + +// here we create a bunch of updates for further aggregation. +// FinishTx should merge underlying files several times +// Expected that: +// - we could close first aggregator and open another with previous data still available +// - new aggregator SeekCommitment must return txNum equal to amount of total txns +func TestAggregator_RestartOnDatadir(t *testing.T) { + logger := log.New() + aggStep := uint64(50) + path, db, agg := testDbAndAggregator(t, aggStep) + + tx, err := db.BeginRw(context.Background()) + require.NoError(t, err) + defer func() { + if tx != nil { + tx.Rollback() + } + }() + agg.SetTx(tx) + agg.StartWrites() + + var latestCommitTxNum uint64 + + rnd := rand.New(rand.NewSource(time.Now().Unix())) + + txs := (aggStep / 2) * 19 + t.Logf("step=%d tx_count=%d", aggStep, txs) + var aux [8]byte + // keys are encodings of numbers 1..31 + // each key changes value on every txNum which is multiple of the key + var maxWrite uint64 + for txNum := uint64(1); txNum <= txs; txNum++ { + agg.SetTxNum(txNum) + binary.BigEndian.PutUint64(aux[:], txNum) + + addr, loc := make([]byte, length.Addr), make([]byte, length.Hash) + n, err := rnd.Read(addr) + require.NoError(t, err) + require.EqualValues(t, length.Addr, n) + + n, err = rnd.Read(loc) + require.NoError(t, err) + require.EqualValues(t, length.Hash, n) + //keys[txNum-1] = append(addr, loc...) + + buf := EncodeAccountBytes(1, uint256.NewInt(0), nil, 0) + err = agg.UpdateAccountData(addr, buf) + require.NoError(t, err) + + err = agg.WriteAccountStorage(addr, loc, []byte{addr[0], loc[0]}) + require.NoError(t, err) + + err = agg.UpdateCommitmentData([]byte("key"), aux[:]) + require.NoError(t, err) + maxWrite = txNum + + require.NoError(t, agg.FinishTx()) + } + agg.FinishWrites() + agg.Close() + + err = tx.Commit() + require.NoError(t, err) + tx = nil + + // Start another aggregator on same datadir + anotherAgg, err := NewAggregator(filepath.Join(path, "e4"), filepath.Join(path, "e4tmp"), aggStep, CommitmentModeDirect, commitment.VariantHexPatriciaTrie, logger) + require.NoError(t, err) + require.NoError(t, anotherAgg.ReopenFolder()) + + defer anotherAgg.Close() + + rwTx, err := db.BeginRw(context.Background()) + require.NoError(t, err) + defer func() { + if rwTx != nil { + rwTx.Rollback() + } + }() + + anotherAgg.SetTx(rwTx) + startTx := anotherAgg.EndTxNumMinimax() + _, sstartTx, err := anotherAgg.SeekCommitment() + require.NoError(t, err) + require.GreaterOrEqual(t, sstartTx, startTx) + require.GreaterOrEqual(t, sstartTx, latestCommitTxNum) + _ = sstartTx + rwTx.Rollback() + rwTx = nil + + // Check the history + roTx, err := db.BeginRo(context.Background()) + require.NoError(t, err) + defer roTx.Rollback() + + dc := anotherAgg.MakeContext() + v, err := dc.ReadCommitment([]byte("key"), roTx) + require.NoError(t, err) + dc.Close() + + require.EqualValues(t, maxWrite, binary.BigEndian.Uint64(v[:])) +} + +func TestAggregator_RestartOnFiles(t *testing.T) { + logger := log.New() + aggStep := uint64(100) + + path, db, agg := testDbAndAggregator(t, aggStep) + + tx, err := db.BeginRw(context.Background()) + require.NoError(t, err) + defer func() { + if tx != nil { + tx.Rollback() + } + }() + agg.SetTx(tx) + agg.StartWrites() + + txs := aggStep * 5 + t.Logf("step=%d tx_count=%d\n", aggStep, txs) + + rnd := rand.New(rand.NewSource(0)) + keys := make([][]byte, txs) + + for txNum := uint64(1); txNum <= txs; txNum++ { + agg.SetTxNum(txNum) + + addr, loc := make([]byte, length.Addr), make([]byte, length.Hash) + n, err := rnd.Read(addr) + require.NoError(t, err) + require.EqualValues(t, length.Addr, n) + + n, err = rnd.Read(loc) + require.NoError(t, err) + require.EqualValues(t, length.Hash, n) + + buf := EncodeAccountBytes(txNum, uint256.NewInt(1000000000000), nil, 0) + err = agg.UpdateAccountData(addr, buf[:]) + require.NoError(t, err) + + err = agg.WriteAccountStorage(addr, loc, []byte{addr[0], loc[0]}) + require.NoError(t, err) + + keys[txNum-1] = append(addr, loc...) + + err = agg.FinishTx() + require.NoError(t, err) + } + agg.FinishWrites() + + err = tx.Commit() + require.NoError(t, err) + tx = nil + db.Close() + agg.Close() + + require.NoError(t, os.RemoveAll(filepath.Join(path, "db4"))) + + newDb, err := mdbx.NewMDBX(logger).InMem(filepath.Join(path, "db4")).WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { + return kv.ChaindataTablesCfg + }).Open(context.Background()) + require.NoError(t, err) + t.Cleanup(newDb.Close) + + newTx, err := newDb.BeginRw(context.Background()) + require.NoError(t, err) + defer newTx.Rollback() + + newAgg, err := NewAggregator(path, path, aggStep, CommitmentModeDirect, commitment.VariantHexPatriciaTrie, logger) + require.NoError(t, err) + require.NoError(t, newAgg.ReopenFolder()) + + newAgg.SetTx(newTx) + newAgg.StartWrites() + + _, latestTx, err := newAgg.SeekCommitment() + require.NoError(t, err) + t.Logf("seek to latest_tx=%d", latestTx) + + ctx := newAgg.defaultCtx + miss := uint64(0) + for i, key := range keys { + if uint64(i+1) >= txs-aggStep { + continue // finishtx always stores last agg step in db which we deleted, so missing values which were not aggregated is expected + } + stored, err := ctx.ReadAccountData(key[:length.Addr], newTx) + require.NoError(t, err) + if len(stored) == 0 { + miss++ + fmt.Printf("%x [%d/%d]", key, miss, i+1) // txnum starts from 1 + continue + } + + nonce, _, _ := DecodeAccountBytes(stored) + require.EqualValues(t, i+1, nonce) + + storedV, err := ctx.ReadAccountStorage(key[:length.Addr], key[length.Addr:], newTx) + require.NoError(t, err) + require.EqualValues(t, key[0], storedV[0]) + require.EqualValues(t, key[length.Addr], storedV[1]) + } + newAgg.FinishWrites() + ctx.Close() + newAgg.Close() + + require.NoError(t, err) +} + +func TestAggregator_ReplaceCommittedKeys(t *testing.T) { + aggStep := uint64(500) + + _, db, agg := testDbAndAggregator(t, aggStep) + t.Cleanup(agg.Close) + + tx, err := db.BeginRw(context.Background()) + require.NoError(t, err) + defer func() { + if tx != nil { + tx.Rollback() + } + }() + agg.SetTx(tx) + defer agg.StartWrites().FinishWrites() + + var latestCommitTxNum uint64 + commit := func(txn uint64) error { + err = tx.Commit() + require.NoError(t, err) + tx, err = db.BeginRw(context.Background()) + require.NoError(t, err) + t.Logf("commit to db txn=%d", txn) + + atomic.StoreUint64(&latestCommitTxNum, txn) + agg.SetTx(tx) + return nil + } + + roots := agg.AggregatedRoots() + txs := (aggStep) * StepsInBiggestFile + t.Logf("step=%d tx_count=%d", aggStep, txs) + + rnd := rand.New(rand.NewSource(0)) + keys := make([][]byte, txs/2) + + for txNum := uint64(1); txNum <= txs/2; txNum++ { + agg.SetTxNum(txNum) + + addr, loc := make([]byte, length.Addr), make([]byte, length.Hash) + n, err := rnd.Read(addr) + require.NoError(t, err) + require.EqualValues(t, length.Addr, n) + + n, err = rnd.Read(loc) + require.NoError(t, err) + require.EqualValues(t, length.Hash, n) + keys[txNum-1] = append(addr, loc...) + + buf := EncodeAccountBytes(1, uint256.NewInt(0), nil, 0) + err = agg.UpdateAccountData(addr, buf) + require.NoError(t, err) + + err = agg.WriteAccountStorage(addr, loc, []byte{addr[0], loc[0]}) + require.NoError(t, err) + + err = agg.FinishTx() + require.NoError(t, err) + select { + case <-roots: + require.NoError(t, commit(txNum)) + default: + continue + } + } + + half := txs / 2 + for txNum := txs/2 + 1; txNum <= txs; txNum++ { + agg.SetTxNum(txNum) + + addr, loc := keys[txNum-1-half][:length.Addr], keys[txNum-1-half][length.Addr:] + + err = agg.WriteAccountStorage(addr, loc, []byte{addr[0], loc[0]}) + require.NoError(t, err) + + err = agg.FinishTx() + require.NoError(t, err) + } + + err = tx.Commit() + tx = nil + + tx, err = db.BeginRw(context.Background()) + require.NoError(t, err) + + ctx := agg.defaultCtx + for _, key := range keys { + storedV, err := ctx.ReadAccountStorage(key[:length.Addr], key[length.Addr:], tx) + require.NoError(t, err) + require.EqualValues(t, key[0], storedV[0]) + require.EqualValues(t, key[length.Addr], storedV[1]) + } + require.NoError(t, err) +} + +func Test_EncodeCommitmentState(t *testing.T) { + cs := commitmentState{ + txNum: rand.Uint64(), + trieState: make([]byte, 1024), + } + n, err := rand.Read(cs.trieState) + require.NoError(t, err) + require.EqualValues(t, len(cs.trieState), n) + + buf, err := cs.Encode() + require.NoError(t, err) + require.NotEmpty(t, buf) + + var dec commitmentState + err = dec.Decode(buf) + require.NoError(t, err) + require.EqualValues(t, cs.txNum, dec.txNum) + require.EqualValues(t, cs.trieState, dec.trieState) +} + +func Test_BtreeIndex_Seek(t *testing.T) { + tmp := t.TempDir() + logger := log.New() + + keyCount, M := 120000, 1024 + dataPath := generateCompressedKV(t, tmp, 52, 180 /*val size*/, keyCount, logger) + defer os.RemoveAll(tmp) + + indexPath := path.Join(tmp, filepath.Base(dataPath)+".bti") + err := BuildBtreeIndex(dataPath, indexPath, logger) + require.NoError(t, err) + + bt, err := OpenBtreeIndex(indexPath, dataPath, uint64(M)) + require.NoError(t, err) + require.EqualValues(t, bt.KeyCount(), keyCount) + + keys, err := pivotKeysFromKV(dataPath) + require.NoError(t, err) + + for i := 0; i < len(keys); i++ { + cur, err := bt.Seek(keys[i]) + require.NoErrorf(t, err, "i=%d", i) + require.EqualValues(t, keys[i], cur.key) + require.NotEmptyf(t, cur.Value(), "i=%d", i) + // require.EqualValues(t, uint64(i), cur.Value()) + } + for i := 1; i < len(keys); i++ { + alt := common.Copy(keys[i]) + for j := len(alt) - 1; j >= 0; j-- { + if alt[j] > 0 { + alt[j] -= 1 + break + } + } + cur, err := bt.Seek(keys[i]) + require.NoError(t, err) + require.EqualValues(t, keys[i], cur.Key()) + } + + bt.Close() +} + +func pivotKeysFromKV(dataPath string) ([][]byte, error) { + decomp, err := compress.NewDecompressor(dataPath) + if err != nil { + return nil, err + } + + getter := decomp.MakeGetter() + getter.Reset(0) + + key := make([]byte, 0, 64) + + listing := make([][]byte, 0, 1000) + + for getter.HasNext() { + if len(listing) > 100000 { + break + } + key, _ := getter.Next(key[:0]) + listing = append(listing, common.Copy(key)) + getter.Skip() + } + decomp.Close() + + return listing, nil +} + +func generateCompressedKV(tb testing.TB, tmp string, keySize, valueSize, keyCount int, logger log.Logger) string { + tb.Helper() + + args := BtIndexWriterArgs{ + IndexFile: path.Join(tmp, fmt.Sprintf("%dk.bt", keyCount/1000)), + TmpDir: tmp, + KeyCount: 12, + } + + iw, err := NewBtIndexWriter(args, logger) + require.NoError(tb, err) + + defer iw.Close() + rnd := rand.New(rand.NewSource(0)) + values := make([]byte, valueSize) + + dataPath := path.Join(tmp, fmt.Sprintf("%dk.kv", keyCount/1000)) + comp, err := compress.NewCompressor(context.Background(), "cmp", dataPath, tmp, compress.MinPatternScore, 1, log.LvlDebug, logger) + require.NoError(tb, err) + + for i := 0; i < keyCount; i++ { + key := make([]byte, keySize) + n, err := rnd.Read(key[:]) + require.EqualValues(tb, keySize, n) + binary.BigEndian.PutUint64(key[keySize-8:], uint64(i)) + require.NoError(tb, err) + err = comp.AddWord(key[:]) + require.NoError(tb, err) + + n, err = rnd.Read(values[:rnd.Intn(valueSize)+1]) + require.NoError(tb, err) + + err = comp.AddWord(values[:n]) + require.NoError(tb, err) + } + + err = comp.Compress() + require.NoError(tb, err) + comp.Close() + + decomp, err := compress.NewDecompressor(dataPath) + require.NoError(tb, err) + + getter := decomp.MakeGetter() + getter.Reset(0) + + var pos uint64 + key := make([]byte, keySize) + for i := 0; i < keyCount; i++ { + if !getter.HasNext() { + tb.Fatalf("not enough values at %d", i) + break + } + + keys, _ := getter.Next(key[:0]) + err = iw.AddKey(keys[:], pos) + + pos, _ = getter.Skip() + require.NoError(tb, err) + } + decomp.Close() + + require.NoError(tb, iw.Build()) + iw.Close() + + return decomp.FilePath() +} + +func Test_InitBtreeIndex(t *testing.T) { + logger := log.New() + tmp := t.TempDir() + + keyCount, M := 100, uint64(4) + compPath := generateCompressedKV(t, tmp, 52, 300, keyCount, logger) + decomp, err := compress.NewDecompressor(compPath) + require.NoError(t, err) + defer decomp.Close() + + err = BuildBtreeIndexWithDecompressor(tmp+".bt", decomp, &background.Progress{}, tmp, logger) + require.NoError(t, err) + + bt, err := OpenBtreeIndexWithDecompressor(tmp+".bt", M, decomp) + require.NoError(t, err) + require.EqualValues(t, bt.KeyCount(), keyCount) + bt.Close() +} diff --git a/erigon-lib/state/aggregator_v3.go b/erigon-lib/state/aggregator_v3.go new file mode 100644 index 00000000000..af226789c8a --- /dev/null +++ b/erigon-lib/state/aggregator_v3.go @@ -0,0 +1,1642 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "context" + "encoding/binary" + "errors" + "fmt" + math2 "math" + "runtime" + "strings" + "sync" + "sync/atomic" + "time" + + "github.com/RoaringBitmap/roaring/roaring64" + common2 "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/log/v3" + "golang.org/x/sync/errgroup" +) + +type AggregatorV3 struct { + rwTx kv.RwTx + db kv.RoDB + storage *History + tracesTo *InvertedIndex + backgroundResult *BackgroundResult + code *History + logAddrs *InvertedIndex + logTopics *InvertedIndex + tracesFrom *InvertedIndex + accounts *History + logPrefix string + dir string + tmpdir string + aggregationStep uint64 + keepInDB uint64 + + minimaxTxNumInFiles atomic.Uint64 + + filesMutationLock sync.Mutex + + // To keep DB small - need move data to small files ASAP. + // It means goroutine which creating small files - can't be locked by merge or indexing. + buildingFiles atomic.Bool + mergeingFiles atomic.Bool + buildingOptionalIndices atomic.Bool + + //warmupWorking atomic.Bool + ctx context.Context + ctxCancel context.CancelFunc + + needSaveFilesListInDB atomic.Bool + wg sync.WaitGroup + + onFreeze OnFreezeFunc + walLock sync.RWMutex + + ps *background.ProgressSet + + // next fields are set only if agg.doTraceCtx is true. can enable by env: TRACE_AGG=true + leakDetector *dbg.LeakDetector + logger log.Logger +} + +type OnFreezeFunc func(frozenFileNames []string) + +func NewAggregatorV3(ctx context.Context, dir, tmpdir string, aggregationStep uint64, db kv.RoDB, logger log.Logger) (*AggregatorV3, error) { + ctx, ctxCancel := context.WithCancel(ctx) + a := &AggregatorV3{ + ctx: ctx, + ctxCancel: ctxCancel, + onFreeze: func(frozenFileNames []string) {}, + dir: dir, + tmpdir: tmpdir, + aggregationStep: aggregationStep, + db: db, + keepInDB: 2 * aggregationStep, + leakDetector: dbg.NewLeakDetector("agg", dbg.SlowTx()), + ps: background.NewProgressSet(), + backgroundResult: &BackgroundResult{}, + logger: logger, + } + var err error + if a.accounts, err = NewHistory(dir, a.tmpdir, aggregationStep, "accounts", kv.TblAccountHistoryKeys, kv.TblAccountIdx, kv.TblAccountHistoryVals, false, nil, false, logger); err != nil { + return nil, err + } + if a.storage, err = NewHistory(dir, a.tmpdir, aggregationStep, "storage", kv.TblStorageHistoryKeys, kv.TblStorageIdx, kv.TblStorageHistoryVals, false, nil, false, logger); err != nil { + return nil, err + } + if a.code, err = NewHistory(dir, a.tmpdir, aggregationStep, "code", kv.TblCodeHistoryKeys, kv.TblCodeIdx, kv.TblCodeHistoryVals, true, nil, true, logger); err != nil { + return nil, err + } + if a.logAddrs, err = NewInvertedIndex(dir, a.tmpdir, aggregationStep, "logaddrs", kv.TblLogAddressKeys, kv.TblLogAddressIdx, false, nil, logger); err != nil { + return nil, err + } + if a.logTopics, err = NewInvertedIndex(dir, a.tmpdir, aggregationStep, "logtopics", kv.TblLogTopicsKeys, kv.TblLogTopicsIdx, false, nil, logger); err != nil { + return nil, err + } + if a.tracesFrom, err = NewInvertedIndex(dir, a.tmpdir, aggregationStep, "tracesfrom", kv.TblTracesFromKeys, kv.TblTracesFromIdx, false, nil, logger); err != nil { + return nil, err + } + if a.tracesTo, err = NewInvertedIndex(dir, a.tmpdir, aggregationStep, "tracesto", kv.TblTracesToKeys, kv.TblTracesToIdx, false, nil, logger); err != nil { + return nil, err + } + a.recalcMaxTxNum() + + return a, nil +} +func (a *AggregatorV3) OnFreeze(f OnFreezeFunc) { a.onFreeze = f } + +func (a *AggregatorV3) OpenFolder() error { + a.filesMutationLock.Lock() + defer a.filesMutationLock.Unlock() + var err error + if err = a.accounts.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.storage.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.code.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.logAddrs.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.logTopics.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.tracesFrom.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + if err = a.tracesTo.OpenFolder(); err != nil { + return fmt.Errorf("OpenFolder: %w", err) + } + a.recalcMaxTxNum() + return nil +} +func (a *AggregatorV3) OpenList(fNames []string) error { + a.filesMutationLock.Lock() + defer a.filesMutationLock.Unlock() + + var err error + if err = a.accounts.OpenList(fNames); err != nil { + return err + } + if err = a.storage.OpenList(fNames); err != nil { + return err + } + if err = a.code.OpenList(fNames); err != nil { + return err + } + if err = a.logAddrs.OpenList(fNames); err != nil { + return err + } + if err = a.logTopics.OpenList(fNames); err != nil { + return err + } + if err = a.tracesFrom.OpenList(fNames); err != nil { + return err + } + if err = a.tracesTo.OpenList(fNames); err != nil { + return err + } + a.recalcMaxTxNum() + return nil +} + +func (a *AggregatorV3) Close() { + a.ctxCancel() + a.wg.Wait() + + a.filesMutationLock.Lock() + defer a.filesMutationLock.Unlock() + + a.accounts.Close() + a.storage.Close() + a.code.Close() + a.logAddrs.Close() + a.logTopics.Close() + a.tracesFrom.Close() + a.tracesTo.Close() +} + +// CleanDir - call it manually on startup of Main application (don't call it from utilities or nother processes) +// - remove files ignored during opening of aggregator +// - remove files which marked as deleted but have no readers (usually last reader removing files marked as deleted) +func (a *AggregatorV3) CleanDir() { + a.accounts.deleteGarbageFiles() + a.storage.deleteGarbageFiles() + a.code.deleteGarbageFiles() + a.logAddrs.deleteGarbageFiles() + a.logTopics.deleteGarbageFiles() + a.tracesFrom.deleteGarbageFiles() + a.tracesTo.deleteGarbageFiles() + + ac := a.MakeContext() + defer ac.Close() + ac.a.accounts.cleanAfterFreeze(ac.accounts.frozenTo()) + ac.a.storage.cleanAfterFreeze(ac.storage.frozenTo()) + ac.a.code.cleanAfterFreeze(ac.code.frozenTo()) + ac.a.logAddrs.cleanAfterFreeze(ac.logAddrs.frozenTo()) + ac.a.logTopics.cleanAfterFreeze(ac.logTopics.frozenTo()) + ac.a.tracesFrom.cleanAfterFreeze(ac.tracesFrom.frozenTo()) + ac.a.tracesTo.cleanAfterFreeze(ac.tracesTo.frozenTo()) +} + +func (a *AggregatorV3) SetWorkers(i int) { + a.accounts.compressWorkers = i + a.storage.compressWorkers = i + a.code.compressWorkers = i + a.logAddrs.compressWorkers = i + a.logTopics.compressWorkers = i + a.tracesFrom.compressWorkers = i + a.tracesTo.compressWorkers = i +} + +func (a *AggregatorV3) HasBackgroundFilesBuild() bool { return a.ps.Has() } +func (a *AggregatorV3) BackgroundProgress() string { return a.ps.String() } + +func (a *AggregatorV3) Files() (res []string) { + a.filesMutationLock.Lock() + defer a.filesMutationLock.Unlock() + + res = append(res, a.accounts.Files()...) + res = append(res, a.storage.Files()...) + res = append(res, a.code.Files()...) + res = append(res, a.logAddrs.Files()...) + res = append(res, a.logTopics.Files()...) + res = append(res, a.tracesFrom.Files()...) + res = append(res, a.tracesTo.Files()...) + return res +} +func (a *AggregatorV3) BuildOptionalMissedIndicesInBackground(ctx context.Context, workers int) { + if ok := a.buildingOptionalIndices.CompareAndSwap(false, true); !ok { + return + } + a.wg.Add(1) + go func() { + defer a.wg.Done() + defer a.buildingOptionalIndices.Store(false) + aggCtx := a.MakeContext() + defer aggCtx.Close() + if err := aggCtx.BuildOptionalMissedIndices(ctx, workers); err != nil { + if errors.Is(err, context.Canceled) { + return + } + log.Warn("[snapshots] merge", "err", err) + } + }() +} + +func (ac *AggregatorV3Context) BuildOptionalMissedIndices(ctx context.Context, workers int) error { + g, ctx := errgroup.WithContext(ctx) + g.SetLimit(workers) + if ac.accounts != nil { + g.Go(func() error { return ac.accounts.BuildOptionalMissedIndices(ctx) }) + } + if ac.storage != nil { + g.Go(func() error { return ac.storage.BuildOptionalMissedIndices(ctx) }) + } + if ac.code != nil { + g.Go(func() error { return ac.code.BuildOptionalMissedIndices(ctx) }) + } + return g.Wait() +} + +func (a *AggregatorV3) BuildMissedIndices(ctx context.Context, workers int) error { + startIndexingTime := time.Now() + { + ps := background.NewProgressSet() + + g, ctx := errgroup.WithContext(ctx) + g.SetLimit(workers) + go func() { + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + for { + select { + case <-ctx.Done(): + return + case <-logEvery.C: + var m runtime.MemStats + dbg.ReadMemStats(&m) + log.Info("[snapshots] Indexing", "progress", ps.String(), "total-indexing-time", time.Since(startIndexingTime).Round(time.Second).String(), "alloc", common2.ByteCount(m.Alloc), "sys", common2.ByteCount(m.Sys)) + } + } + }() + + a.accounts.BuildMissedIndices(ctx, g, ps) + a.storage.BuildMissedIndices(ctx, g, ps) + a.code.BuildMissedIndices(ctx, g, ps) + a.logAddrs.BuildMissedIndices(ctx, g, ps) + a.logTopics.BuildMissedIndices(ctx, g, ps) + a.tracesFrom.BuildMissedIndices(ctx, g, ps) + a.tracesTo.BuildMissedIndices(ctx, g, ps) + + if err := g.Wait(); err != nil { + return err + } + if err := a.OpenFolder(); err != nil { + return err + } + } + + ac := a.MakeContext() + defer ac.Close() + return ac.BuildOptionalMissedIndices(ctx, workers) +} + +func (a *AggregatorV3) SetLogPrefix(v string) { a.logPrefix = v } + +func (a *AggregatorV3) SetTx(tx kv.RwTx) { + a.rwTx = tx + a.accounts.SetTx(tx) + a.storage.SetTx(tx) + a.code.SetTx(tx) + a.logAddrs.SetTx(tx) + a.logTopics.SetTx(tx) + a.tracesFrom.SetTx(tx) + a.tracesTo.SetTx(tx) +} + +func (a *AggregatorV3) SetTxNum(txNum uint64) { + a.accounts.SetTxNum(txNum) + a.storage.SetTxNum(txNum) + a.code.SetTxNum(txNum) + a.logAddrs.SetTxNum(txNum) + a.logTopics.SetTxNum(txNum) + a.tracesFrom.SetTxNum(txNum) + a.tracesTo.SetTxNum(txNum) +} + +type AggV3Collation struct { + logAddrs map[string]*roaring64.Bitmap + logTopics map[string]*roaring64.Bitmap + tracesFrom map[string]*roaring64.Bitmap + tracesTo map[string]*roaring64.Bitmap + accounts HistoryCollation + storage HistoryCollation + code HistoryCollation +} + +func (c AggV3Collation) Close() { + c.accounts.Close() + c.storage.Close() + c.code.Close() + + for _, b := range c.logAddrs { + bitmapdb.ReturnToPool64(b) + } + for _, b := range c.logTopics { + bitmapdb.ReturnToPool64(b) + } + for _, b := range c.tracesFrom { + bitmapdb.ReturnToPool64(b) + } + for _, b := range c.tracesTo { + bitmapdb.ReturnToPool64(b) + } +} + +func (a *AggregatorV3) buildFiles(ctx context.Context, step, txFrom, txTo uint64) (AggV3StaticFiles, error) { + //logEvery := time.NewTicker(60 * time.Second) + //defer logEvery.Stop() + //defer func(t time.Time) { + // log.Info(fmt.Sprintf("[snapshot] build %d-%d", step, step+1), "took", time.Since(t)) + //}(time.Now()) + var sf AggV3StaticFiles + var ac AggV3Collation + closeColl := true + defer func() { + if closeColl { + ac.Close() + } + }() + //var wg sync.WaitGroup + //wg.Add(7) + //errCh := make(chan error, 7) + //go func() { + // defer wg.Done() + var err error + if err = a.db.View(ctx, func(tx kv.Tx) error { + ac.accounts, err = a.accounts.collate(step, txFrom, txTo, tx) + return err + }); err != nil { + return sf, err + //errCh <- err + } + + if sf.accounts, err = a.accounts.buildFiles(ctx, step, ac.accounts, a.ps); err != nil { + return sf, err + //errCh <- err + } + //}() + // + //go func() { + // defer wg.Done() + // var err error + if err = a.db.View(ctx, func(tx kv.Tx) error { + ac.storage, err = a.storage.collate(step, txFrom, txTo, tx) + return err + }); err != nil { + return sf, err + //errCh <- err + } + + if sf.storage, err = a.storage.buildFiles(ctx, step, ac.storage, a.ps); err != nil { + return sf, err + //errCh <- err + } + //}() + //go func() { + // defer wg.Done() + // var err error + if err = a.db.View(ctx, func(tx kv.Tx) error { + ac.code, err = a.code.collate(step, txFrom, txTo, tx) + return err + }); err != nil { + return sf, err + //errCh <- err + } + + if sf.code, err = a.code.buildFiles(ctx, step, ac.code, a.ps); err != nil { + return sf, err + //errCh <- err + } + //}() + //go func() { + // defer wg.Done() + // var err error + if err = a.db.View(ctx, func(tx kv.Tx) error { + ac.logAddrs, err = a.logAddrs.collate(ctx, txFrom, txTo, tx) + return err + }); err != nil { + return sf, err + //errCh <- err + } + + if sf.logAddrs, err = a.logAddrs.buildFiles(ctx, step, ac.logAddrs, a.ps); err != nil { + return sf, err + //errCh <- err + } + //}() + //go func() { + // defer wg.Done() + // var err error + if err = a.db.View(ctx, func(tx kv.Tx) error { + ac.logTopics, err = a.logTopics.collate(ctx, txFrom, txTo, tx) + return err + }); err != nil { + return sf, err + //errCh <- err + } + + if sf.logTopics, err = a.logTopics.buildFiles(ctx, step, ac.logTopics, a.ps); err != nil { + return sf, err + //errCh <- err + } + //}() + //go func() { + // defer wg.Done() + // var err error + if err = a.db.View(ctx, func(tx kv.Tx) error { + ac.tracesFrom, err = a.tracesFrom.collate(ctx, txFrom, txTo, tx) + return err + }); err != nil { + return sf, err + //errCh <- err + } + + if sf.tracesFrom, err = a.tracesFrom.buildFiles(ctx, step, ac.tracesFrom, a.ps); err != nil { + return sf, err + //errCh <- err + } + //}() + //go func() { + // defer wg.Done() + // var err error + if err = a.db.View(ctx, func(tx kv.Tx) error { + ac.tracesTo, err = a.tracesTo.collate(ctx, txFrom, txTo, tx) + return err + }); err != nil { + return sf, err + //errCh <- err + } + + if sf.tracesTo, err = a.tracesTo.buildFiles(ctx, step, ac.tracesTo, a.ps); err != nil { + return sf, err + // errCh <- err + } + //}() + //go func() { + // wg.Wait() + //close(errCh) + //}() + //var lastError error + //for err := range errCh { + // if err != nil { + // lastError = err + // } + //} + //if lastError == nil { + closeColl = false + //} + return sf, nil +} + +type AggV3StaticFiles struct { + accounts HistoryFiles + storage HistoryFiles + code HistoryFiles + logAddrs InvertedFiles + logTopics InvertedFiles + tracesFrom InvertedFiles + tracesTo InvertedFiles +} + +func (sf AggV3StaticFiles) Close() { + sf.accounts.Close() + sf.storage.Close() + sf.code.Close() + sf.logAddrs.Close() + sf.logTopics.Close() + sf.tracesFrom.Close() + sf.tracesTo.Close() +} + +func (a *AggregatorV3) BuildFiles(toTxNum uint64) (err error) { + a.BuildFilesInBackground(toTxNum) + if !(a.buildingFiles.Load() || a.mergeingFiles.Load() || a.buildingOptionalIndices.Load()) { + return nil + } + + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() +Loop: + for { + select { + case <-a.ctx.Done(): + return a.ctx.Err() + case <-logEvery.C: + if !(a.buildingFiles.Load() || a.mergeingFiles.Load() || a.buildingOptionalIndices.Load()) { + break Loop + } + if a.HasBackgroundFilesBuild() { + log.Info("[snapshots] Files build", "progress", a.BackgroundProgress()) + } + } + } + + return nil +} + +func (a *AggregatorV3) buildFilesInBackground(ctx context.Context, step uint64) (err error) { + closeAll := true + //log.Info("[snapshots] history build", "step", fmt.Sprintf("%d-%d", step, step+1)) + sf, err := a.buildFiles(ctx, step, step*a.aggregationStep, (step+1)*a.aggregationStep) + if err != nil { + return err + } + defer func() { + if closeAll { + sf.Close() + } + }() + a.integrateFiles(sf, step*a.aggregationStep, (step+1)*a.aggregationStep) + //a.notifyAboutNewSnapshots() + + closeAll = false + return nil +} + +func (a *AggregatorV3) mergeLoopStep(ctx context.Context, workers int) (somethingDone bool, err error) { + ac := a.MakeContext() // this need, to ensure we do all operations on files in "transaction-style", maybe we will ensure it on type-level in future + defer ac.Close() + + closeAll := true + maxSpan := a.aggregationStep * StepsInBiggestFile + r := ac.findMergeRange(a.minimaxTxNumInFiles.Load(), maxSpan) + if !r.any() { + return false, nil + } + + outs, err := ac.staticFilesInRange(r) + defer func() { + if closeAll { + outs.Close() + } + }() + if err != nil { + return false, err + } + + in, err := ac.mergeFiles(ctx, outs, r, workers) + if err != nil { + return true, err + } + defer func() { + if closeAll { + in.Close() + } + }() + a.integrateMergedFiles(outs, in) + a.onFreeze(in.FrozenList()) + closeAll = false + return true, nil +} +func (a *AggregatorV3) MergeLoop(ctx context.Context, workers int) error { + for { + somethingMerged, err := a.mergeLoopStep(ctx, workers) + if err != nil { + return err + } + if !somethingMerged { + return nil + } + } +} + +func (a *AggregatorV3) integrateFiles(sf AggV3StaticFiles, txNumFrom, txNumTo uint64) { + a.filesMutationLock.Lock() + defer a.filesMutationLock.Unlock() + defer a.needSaveFilesListInDB.Store(true) + defer a.recalcMaxTxNum() + a.accounts.integrateFiles(sf.accounts, txNumFrom, txNumTo) + a.storage.integrateFiles(sf.storage, txNumFrom, txNumTo) + a.code.integrateFiles(sf.code, txNumFrom, txNumTo) + a.logAddrs.integrateFiles(sf.logAddrs, txNumFrom, txNumTo) + a.logTopics.integrateFiles(sf.logTopics, txNumFrom, txNumTo) + a.tracesFrom.integrateFiles(sf.tracesFrom, txNumFrom, txNumTo) + a.tracesTo.integrateFiles(sf.tracesTo, txNumFrom, txNumTo) +} + +func (a *AggregatorV3) HasNewFrozenFiles() bool { + return a.needSaveFilesListInDB.CompareAndSwap(true, false) +} + +func (a *AggregatorV3) Unwind(ctx context.Context, txUnwindTo uint64) error { + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + if err := a.accounts.prune(ctx, txUnwindTo, math2.MaxUint64, math2.MaxUint64, logEvery); err != nil { + return err + } + if err := a.storage.prune(ctx, txUnwindTo, math2.MaxUint64, math2.MaxUint64, logEvery); err != nil { + return err + } + if err := a.code.prune(ctx, txUnwindTo, math2.MaxUint64, math2.MaxUint64, logEvery); err != nil { + return err + } + if err := a.logAddrs.prune(ctx, txUnwindTo, math2.MaxUint64, math2.MaxUint64, logEvery); err != nil { + return err + } + if err := a.logTopics.prune(ctx, txUnwindTo, math2.MaxUint64, math2.MaxUint64, logEvery); err != nil { + return err + } + if err := a.tracesFrom.prune(ctx, txUnwindTo, math2.MaxUint64, math2.MaxUint64, logEvery); err != nil { + return err + } + if err := a.tracesTo.prune(ctx, txUnwindTo, math2.MaxUint64, math2.MaxUint64, logEvery); err != nil { + return err + } + return nil +} + +func (a *AggregatorV3) Warmup(ctx context.Context, txFrom, limit uint64) error { + if a.db == nil { + return nil + } + e, ctx := errgroup.WithContext(ctx) + e.Go(func() error { + return a.db.View(ctx, func(tx kv.Tx) error { return a.accounts.warmup(ctx, txFrom, limit, tx) }) + }) + e.Go(func() error { + return a.db.View(ctx, func(tx kv.Tx) error { return a.storage.warmup(ctx, txFrom, limit, tx) }) + }) + e.Go(func() error { + return a.db.View(ctx, func(tx kv.Tx) error { return a.code.warmup(ctx, txFrom, limit, tx) }) + }) + e.Go(func() error { + return a.db.View(ctx, func(tx kv.Tx) error { return a.logAddrs.warmup(ctx, txFrom, limit, tx) }) + }) + e.Go(func() error { + return a.db.View(ctx, func(tx kv.Tx) error { return a.logTopics.warmup(ctx, txFrom, limit, tx) }) + }) + e.Go(func() error { + return a.db.View(ctx, func(tx kv.Tx) error { return a.tracesFrom.warmup(ctx, txFrom, limit, tx) }) + }) + e.Go(func() error { + return a.db.View(ctx, func(tx kv.Tx) error { return a.tracesTo.warmup(ctx, txFrom, limit, tx) }) + }) + return e.Wait() +} + +// StartWrites - pattern: `defer agg.StartWrites().FinishWrites()` +func (a *AggregatorV3) DiscardHistory() *AggregatorV3 { + a.accounts.DiscardHistory() + a.storage.DiscardHistory() + a.code.DiscardHistory() + a.logAddrs.DiscardHistory(a.tmpdir) + a.logTopics.DiscardHistory(a.tmpdir) + a.tracesFrom.DiscardHistory(a.tmpdir) + a.tracesTo.DiscardHistory(a.tmpdir) + return a +} + +// StartWrites - pattern: `defer agg.StartWrites().FinishWrites()` +func (a *AggregatorV3) StartWrites() *AggregatorV3 { + a.walLock.Lock() + defer a.walLock.Unlock() + a.accounts.StartWrites() + a.storage.StartWrites() + a.code.StartWrites() + a.logAddrs.StartWrites() + a.logTopics.StartWrites() + a.tracesFrom.StartWrites() + a.tracesTo.StartWrites() + return a +} +func (a *AggregatorV3) StartUnbufferedWrites() *AggregatorV3 { + a.walLock.Lock() + defer a.walLock.Unlock() + a.accounts.StartWrites() + a.storage.StartWrites() + a.code.StartWrites() + a.logAddrs.StartWrites() + a.logTopics.StartWrites() + a.tracesFrom.StartWrites() + a.tracesTo.StartWrites() + return a +} +func (a *AggregatorV3) FinishWrites() { + a.walLock.Lock() + defer a.walLock.Unlock() + a.accounts.FinishWrites() + a.storage.FinishWrites() + a.code.FinishWrites() + a.logAddrs.FinishWrites() + a.logTopics.FinishWrites() + a.tracesFrom.FinishWrites() + a.tracesTo.FinishWrites() +} + +type flusher interface { + Flush(ctx context.Context, tx kv.RwTx) error +} + +func (a *AggregatorV3) rotate() []flusher { + a.walLock.Lock() + defer a.walLock.Unlock() + return []flusher{ + a.accounts.Rotate(), + a.storage.Rotate(), + a.code.Rotate(), + a.logAddrs.Rotate(), + a.logTopics.Rotate(), + a.tracesFrom.Rotate(), + a.tracesTo.Rotate(), + } +} +func (a *AggregatorV3) Flush(ctx context.Context, tx kv.RwTx) error { + flushers := a.rotate() + defer func(t time.Time) { log.Debug("[snapshots] history flush", "took", time.Since(t)) }(time.Now()) + for _, f := range flushers { + if err := f.Flush(ctx, tx); err != nil { + return err + } + } + return nil +} + +func (a *AggregatorV3) CanPrune(tx kv.Tx) bool { + return a.CanPruneFrom(tx) < a.minimaxTxNumInFiles.Load() +} +func (a *AggregatorV3) CanPruneFrom(tx kv.Tx) uint64 { + fst, _ := kv.FirstKey(tx, kv.TblTracesToKeys) + fst2, _ := kv.FirstKey(tx, kv.TblStorageHistoryKeys) + if len(fst) > 0 && len(fst2) > 0 { + fstInDb := binary.BigEndian.Uint64(fst) + fstInDb2 := binary.BigEndian.Uint64(fst2) + return cmp.Min(fstInDb, fstInDb2) + } + return math2.MaxUint64 +} + +func (a *AggregatorV3) PruneWithTiemout(ctx context.Context, timeout time.Duration) error { + t := time.Now() + for a.CanPrune(a.rwTx) && time.Since(t) < timeout { + if err := a.Prune(ctx, 1_000); err != nil { // prune part of retired data, before commit + return err + } + } + return nil +} + +func (a *AggregatorV3) StepsRangeInDBAsStr(tx kv.Tx) string { + return strings.Join([]string{ + a.accounts.stepsRangeInDBAsStr(tx), + a.storage.stepsRangeInDBAsStr(tx), + a.code.stepsRangeInDBAsStr(tx), + a.logAddrs.stepsRangeInDBAsStr(tx), + a.logTopics.stepsRangeInDBAsStr(tx), + a.tracesFrom.stepsRangeInDBAsStr(tx), + a.tracesTo.stepsRangeInDBAsStr(tx), + }, ", ") +} + +func (a *AggregatorV3) Prune(ctx context.Context, limit uint64) error { + //if limit/a.aggregationStep > StepsInBiggestFile { + // ctx, cancel := context.WithCancel(ctx) + // defer cancel() + // + // a.wg.Add(1) + // go func() { + // defer a.wg.Done() + // _ = a.Warmup(ctx, 0, cmp.Max(a.aggregationStep, limit)) // warmup is asyn and moving faster than data deletion + // }() + //} + return a.prune(ctx, 0, a.minimaxTxNumInFiles.Load(), limit) +} + +func (a *AggregatorV3) prune(ctx context.Context, txFrom, txTo, limit uint64) error { + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + if err := a.accounts.prune(ctx, txFrom, txTo, limit, logEvery); err != nil { + return err + } + if err := a.storage.prune(ctx, txFrom, txTo, limit, logEvery); err != nil { + return err + } + if err := a.code.prune(ctx, txFrom, txTo, limit, logEvery); err != nil { + return err + } + if err := a.logAddrs.prune(ctx, txFrom, txTo, limit, logEvery); err != nil { + return err + } + if err := a.logTopics.prune(ctx, txFrom, txTo, limit, logEvery); err != nil { + return err + } + if err := a.tracesFrom.prune(ctx, txFrom, txTo, limit, logEvery); err != nil { + return err + } + if err := a.tracesTo.prune(ctx, txFrom, txTo, limit, logEvery); err != nil { + return err + } + return nil +} + +func (a *AggregatorV3) LogStats(tx kv.Tx, tx2block func(endTxNumMinimax uint64) uint64) { + if a.minimaxTxNumInFiles.Load() == 0 { + return + } + histBlockNumProgress := tx2block(a.minimaxTxNumInFiles.Load()) + str := make([]string, 0, a.accounts.InvertedIndex.files.Len()) + a.accounts.InvertedIndex.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + bn := tx2block(item.endTxNum) + str = append(str, fmt.Sprintf("%d=%dK", item.endTxNum/a.aggregationStep, bn/1_000)) + } + return true + }) + + c, err := tx.CursorDupSort(a.accounts.InvertedIndex.indexTable) + if err != nil { + // TODO pass error properly around + panic(err) + } + _, v, err := c.First() + if err != nil { + // TODO pass error properly around + panic(err) + } + var firstHistoryIndexBlockInDB uint64 + if len(v) != 0 { + firstHistoryIndexBlockInDB = tx2block(binary.BigEndian.Uint64(v)) + } + + var m runtime.MemStats + dbg.ReadMemStats(&m) + log.Info("[snapshots] History Stat", + "blocks", fmt.Sprintf("%dk", (histBlockNumProgress+1)/1000), + "txs", fmt.Sprintf("%dm", a.minimaxTxNumInFiles.Load()/1_000_000), + "txNum2blockNum", strings.Join(str, ","), + "first_history_idx_in_db", firstHistoryIndexBlockInDB, + "alloc", common2.ByteCount(m.Alloc), "sys", common2.ByteCount(m.Sys)) +} + +func (a *AggregatorV3) EndTxNumMinimax() uint64 { return a.minimaxTxNumInFiles.Load() } +func (a *AggregatorV3) EndTxNumFrozenAndIndexed() uint64 { + return cmp.Min( + cmp.Min( + a.accounts.endIndexedTxNumMinimax(true), + a.storage.endIndexedTxNumMinimax(true), + ), + a.code.endIndexedTxNumMinimax(true), + ) +} +func (a *AggregatorV3) recalcMaxTxNum() { + min := a.accounts.endTxNumMinimax() + if txNum := a.storage.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.code.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.logAddrs.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.logTopics.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.tracesFrom.endTxNumMinimax(); txNum < min { + min = txNum + } + if txNum := a.tracesTo.endTxNumMinimax(); txNum < min { + min = txNum + } + a.minimaxTxNumInFiles.Store(min) +} + +type RangesV3 struct { + accounts HistoryRanges + storage HistoryRanges + code HistoryRanges + logTopicsStartTxNum uint64 + logAddrsEndTxNum uint64 + logAddrsStartTxNum uint64 + logTopicsEndTxNum uint64 + tracesFromStartTxNum uint64 + tracesFromEndTxNum uint64 + tracesToStartTxNum uint64 + tracesToEndTxNum uint64 + logAddrs bool + logTopics bool + tracesFrom bool + tracesTo bool +} + +func (r RangesV3) any() bool { + return r.accounts.any() || r.storage.any() || r.code.any() || r.logAddrs || r.logTopics || r.tracesFrom || r.tracesTo +} + +func (ac *AggregatorV3Context) findMergeRange(maxEndTxNum, maxSpan uint64) RangesV3 { + var r RangesV3 + r.accounts = ac.a.accounts.findMergeRange(maxEndTxNum, maxSpan) + r.storage = ac.a.storage.findMergeRange(maxEndTxNum, maxSpan) + r.code = ac.a.code.findMergeRange(maxEndTxNum, maxSpan) + r.logAddrs, r.logAddrsStartTxNum, r.logAddrsEndTxNum = ac.a.logAddrs.findMergeRange(maxEndTxNum, maxSpan) + r.logTopics, r.logTopicsStartTxNum, r.logTopicsEndTxNum = ac.a.logTopics.findMergeRange(maxEndTxNum, maxSpan) + r.tracesFrom, r.tracesFromStartTxNum, r.tracesFromEndTxNum = ac.a.tracesFrom.findMergeRange(maxEndTxNum, maxSpan) + r.tracesTo, r.tracesToStartTxNum, r.tracesToEndTxNum = ac.a.tracesTo.findMergeRange(maxEndTxNum, maxSpan) + //log.Info(fmt.Sprintf("findMergeRange(%d, %d)=%+v\n", maxEndTxNum, maxSpan, r)) + return r +} + +type SelectedStaticFilesV3 struct { + logTopics []*filesItem + accountsHist []*filesItem + tracesTo []*filesItem + storageIdx []*filesItem + storageHist []*filesItem + tracesFrom []*filesItem + codeIdx []*filesItem + codeHist []*filesItem + accountsIdx []*filesItem + logAddrs []*filesItem + codeI int + logAddrsI int + logTopicsI int + storageI int + tracesFromI int + accountsI int + tracesToI int +} + +func (sf SelectedStaticFilesV3) Close() { + for _, group := range [][]*filesItem{sf.accountsIdx, sf.accountsHist, sf.storageIdx, sf.accountsHist, sf.codeIdx, sf.codeHist, + sf.logAddrs, sf.logTopics, sf.tracesFrom, sf.tracesTo} { + for _, item := range group { + if item != nil { + if item.decompressor != nil { + item.decompressor.Close() + } + if item.index != nil { + item.index.Close() + } + } + } + } +} + +func (ac *AggregatorV3Context) staticFilesInRange(r RangesV3) (sf SelectedStaticFilesV3, err error) { + if r.accounts.any() { + sf.accountsIdx, sf.accountsHist, sf.accountsI, err = ac.accounts.staticFilesInRange(r.accounts) + if err != nil { + return sf, err + } + } + if r.storage.any() { + sf.storageIdx, sf.storageHist, sf.storageI, err = ac.storage.staticFilesInRange(r.storage) + if err != nil { + return sf, err + } + } + if r.code.any() { + sf.codeIdx, sf.codeHist, sf.codeI, err = ac.code.staticFilesInRange(r.code) + if err != nil { + return sf, err + } + } + if r.logAddrs { + sf.logAddrs, sf.logAddrsI = ac.logAddrs.staticFilesInRange(r.logAddrsStartTxNum, r.logAddrsEndTxNum) + } + if r.logTopics { + sf.logTopics, sf.logTopicsI = ac.logTopics.staticFilesInRange(r.logTopicsStartTxNum, r.logTopicsEndTxNum) + } + if r.tracesFrom { + sf.tracesFrom, sf.tracesFromI = ac.tracesFrom.staticFilesInRange(r.tracesFromStartTxNum, r.tracesFromEndTxNum) + } + if r.tracesTo { + sf.tracesTo, sf.tracesToI = ac.tracesTo.staticFilesInRange(r.tracesToStartTxNum, r.tracesToEndTxNum) + } + return sf, err +} + +type MergedFilesV3 struct { + accountsIdx, accountsHist *filesItem + storageIdx, storageHist *filesItem + codeIdx, codeHist *filesItem + logAddrs *filesItem + logTopics *filesItem + tracesFrom *filesItem + tracesTo *filesItem +} + +func (mf MergedFilesV3) FrozenList() (frozen []string) { + if mf.accountsHist != nil && mf.accountsHist.frozen { + frozen = append(frozen, mf.accountsHist.decompressor.FileName()) + } + if mf.accountsIdx != nil && mf.accountsIdx.frozen { + frozen = append(frozen, mf.accountsIdx.decompressor.FileName()) + } + + if mf.storageHist != nil && mf.storageHist.frozen { + frozen = append(frozen, mf.storageHist.decompressor.FileName()) + } + if mf.storageIdx != nil && mf.storageIdx.frozen { + frozen = append(frozen, mf.storageIdx.decompressor.FileName()) + } + + if mf.codeHist != nil && mf.codeHist.frozen { + frozen = append(frozen, mf.codeHist.decompressor.FileName()) + } + if mf.codeIdx != nil && mf.codeIdx.frozen { + frozen = append(frozen, mf.codeIdx.decompressor.FileName()) + } + + if mf.logAddrs != nil && mf.logAddrs.frozen { + frozen = append(frozen, mf.logAddrs.decompressor.FileName()) + } + if mf.logTopics != nil && mf.logTopics.frozen { + frozen = append(frozen, mf.logTopics.decompressor.FileName()) + } + if mf.tracesFrom != nil && mf.tracesFrom.frozen { + frozen = append(frozen, mf.tracesFrom.decompressor.FileName()) + } + if mf.tracesTo != nil && mf.tracesTo.frozen { + frozen = append(frozen, mf.tracesTo.decompressor.FileName()) + } + return frozen +} +func (mf MergedFilesV3) Close() { + for _, item := range []*filesItem{mf.accountsIdx, mf.accountsHist, mf.storageIdx, mf.storageHist, mf.codeIdx, mf.codeHist, + mf.logAddrs, mf.logTopics, mf.tracesFrom, mf.tracesTo} { + if item != nil { + if item.decompressor != nil { + item.decompressor.Close() + } + if item.index != nil { + item.index.Close() + } + } + } +} + +func (ac *AggregatorV3Context) mergeFiles(ctx context.Context, files SelectedStaticFilesV3, r RangesV3, workers int) (MergedFilesV3, error) { + var mf MergedFilesV3 + g, ctx := errgroup.WithContext(ctx) + g.SetLimit(workers) + closeFiles := true + defer func() { + if closeFiles { + mf.Close() + } + }() + if r.accounts.any() { + g.Go(func() error { + var err error + mf.accountsIdx, mf.accountsHist, err = ac.a.accounts.mergeFiles(ctx, files.accountsIdx, files.accountsHist, r.accounts, workers, ac.a.ps) + return err + }) + } + + if r.storage.any() { + g.Go(func() error { + var err error + mf.storageIdx, mf.storageHist, err = ac.a.storage.mergeFiles(ctx, files.storageIdx, files.storageHist, r.storage, workers, ac.a.ps) + return err + }) + } + if r.code.any() { + g.Go(func() error { + var err error + mf.codeIdx, mf.codeHist, err = ac.a.code.mergeFiles(ctx, files.codeIdx, files.codeHist, r.code, workers, ac.a.ps) + return err + }) + } + if r.logAddrs { + g.Go(func() error { + var err error + mf.logAddrs, err = ac.a.logAddrs.mergeFiles(ctx, files.logAddrs, r.logAddrsStartTxNum, r.logAddrsEndTxNum, workers, ac.a.ps) + return err + }) + } + if r.logTopics { + g.Go(func() error { + var err error + mf.logTopics, err = ac.a.logTopics.mergeFiles(ctx, files.logTopics, r.logTopicsStartTxNum, r.logTopicsEndTxNum, workers, ac.a.ps) + return err + }) + } + if r.tracesFrom { + g.Go(func() error { + var err error + mf.tracesFrom, err = ac.a.tracesFrom.mergeFiles(ctx, files.tracesFrom, r.tracesFromStartTxNum, r.tracesFromEndTxNum, workers, ac.a.ps) + return err + }) + } + if r.tracesTo { + g.Go(func() error { + var err error + mf.tracesTo, err = ac.a.tracesTo.mergeFiles(ctx, files.tracesTo, r.tracesToStartTxNum, r.tracesToEndTxNum, workers, ac.a.ps) + return err + }) + } + err := g.Wait() + if err == nil { + closeFiles = false + } + return mf, err +} + +func (a *AggregatorV3) integrateMergedFiles(outs SelectedStaticFilesV3, in MergedFilesV3) (frozen []string) { + a.filesMutationLock.Lock() + defer a.filesMutationLock.Unlock() + defer a.needSaveFilesListInDB.Store(true) + defer a.recalcMaxTxNum() + a.accounts.integrateMergedFiles(outs.accountsIdx, outs.accountsHist, in.accountsIdx, in.accountsHist) + a.storage.integrateMergedFiles(outs.storageIdx, outs.storageHist, in.storageIdx, in.storageHist) + a.code.integrateMergedFiles(outs.codeIdx, outs.codeHist, in.codeIdx, in.codeHist) + a.logAddrs.integrateMergedFiles(outs.logAddrs, in.logAddrs) + a.logTopics.integrateMergedFiles(outs.logTopics, in.logTopics) + a.tracesFrom.integrateMergedFiles(outs.tracesFrom, in.tracesFrom) + a.tracesTo.integrateMergedFiles(outs.tracesTo, in.tracesTo) + a.cleanAfterNewFreeze(in) + return frozen +} +func (a *AggregatorV3) cleanAfterNewFreeze(in MergedFilesV3) { + if in.accountsHist != nil && in.accountsHist.frozen { + a.accounts.cleanAfterFreeze(in.accountsHist.endTxNum) + } + if in.storageHist != nil && in.storageHist.frozen { + a.storage.cleanAfterFreeze(in.storageHist.endTxNum) + } + if in.codeHist != nil && in.codeHist.frozen { + a.code.cleanAfterFreeze(in.codeHist.endTxNum) + } + if in.logAddrs != nil && in.logAddrs.frozen { + a.logAddrs.cleanAfterFreeze(in.logAddrs.endTxNum) + } + if in.logTopics != nil && in.logTopics.frozen { + a.logTopics.cleanAfterFreeze(in.logTopics.endTxNum) + } + if in.tracesFrom != nil && in.tracesFrom.frozen { + a.tracesFrom.cleanAfterFreeze(in.tracesFrom.endTxNum) + } + if in.tracesTo != nil && in.tracesTo.frozen { + a.tracesTo.cleanAfterFreeze(in.tracesTo.endTxNum) + } +} + +// KeepInDB - usually equal to one a.aggregationStep, but when we exec blocks from snapshots +// we can set it to 0, because no re-org on this blocks are possible +func (a *AggregatorV3) KeepInDB(v uint64) { a.keepInDB = v } + +func (a *AggregatorV3) BuildFilesInBackground(txNum uint64) { + if (txNum + 1) <= a.minimaxTxNumInFiles.Load()+a.aggregationStep+a.keepInDB { // Leave one step worth in the DB + return + } + + if ok := a.buildingFiles.CompareAndSwap(false, true); !ok { + return + } + + step := a.minimaxTxNumInFiles.Load() / a.aggregationStep + toTxNum := (step + 1) * a.aggregationStep + hasData := false + a.wg.Add(1) + go func() { + defer a.wg.Done() + defer a.buildingFiles.Store(false) + + // check if db has enough data (maybe we didn't commit them yet) + lastInDB := lastIdInDB(a.db, a.accounts.indexKeysTable) + hasData = lastInDB >= toTxNum + if !hasData { + return + } + + // trying to create as much small-step-files as possible: + // - to reduce amount of small merges + // - to remove old data from db as early as possible + // - during files build, may happen commit of new data. on each loop step getting latest id in db + for step < lastIdInDB(a.db, a.accounts.indexKeysTable)/a.aggregationStep { + if err := a.buildFilesInBackground(a.ctx, step); err != nil { + if errors.Is(err, context.Canceled) { + return + } + log.Warn("[snapshots] buildFilesInBackground", "err", err) + break + } + step++ + } + + if ok := a.mergeingFiles.CompareAndSwap(false, true); !ok { + return + } + a.wg.Add(1) + go func() { + defer a.wg.Done() + defer a.mergeingFiles.Store(false) + if err := a.MergeLoop(a.ctx, 1); err != nil { + if errors.Is(err, context.Canceled) { + return + } + log.Warn("[snapshots] merge", "err", err) + } + + a.BuildOptionalMissedIndicesInBackground(a.ctx, 1) + }() + }() +} + +func (a *AggregatorV3) BatchHistoryWriteStart() *AggregatorV3 { + a.walLock.RLock() + return a +} +func (a *AggregatorV3) BatchHistoryWriteEnd() { + a.walLock.RUnlock() +} + +func (a *AggregatorV3) AddAccountPrev(addr []byte, prev []byte) error { + return a.accounts.AddPrevValue(addr, nil, prev) +} + +func (a *AggregatorV3) AddStoragePrev(addr []byte, loc []byte, prev []byte) error { + return a.storage.AddPrevValue(addr, loc, prev) +} + +// AddCodePrev - addr+inc => code +func (a *AggregatorV3) AddCodePrev(addr []byte, prev []byte) error { + return a.code.AddPrevValue(addr, nil, prev) +} + +// nolint +func (a *AggregatorV3) PutIdx(idx kv.InvertedIdx, key []byte) error { + switch idx { + case kv.TblTracesFromIdx: + return a.tracesFrom.Add(key) + case kv.TblTracesToIdx: + return a.tracesTo.Add(key) + case kv.TblLogAddressIdx: + return a.logAddrs.Add(key) + case kv.LogTopicIndex: + return a.logTopics.Add(key) + default: + panic(idx) + } +} + +// DisableReadAhead - usage: `defer d.EnableReadAhead().DisableReadAhead()`. Please don't use this funcs without `defer` to avoid leak. +func (a *AggregatorV3) DisableReadAhead() { + a.accounts.DisableReadAhead() + a.storage.DisableReadAhead() + a.code.DisableReadAhead() + a.logAddrs.DisableReadAhead() + a.logTopics.DisableReadAhead() + a.tracesFrom.DisableReadAhead() + a.tracesTo.DisableReadAhead() +} +func (a *AggregatorV3) EnableReadAhead() *AggregatorV3 { + a.accounts.EnableReadAhead() + a.storage.EnableReadAhead() + a.code.EnableReadAhead() + a.logAddrs.EnableReadAhead() + a.logTopics.EnableReadAhead() + a.tracesFrom.EnableReadAhead() + a.tracesTo.EnableReadAhead() + return a +} +func (a *AggregatorV3) EnableMadvWillNeed() *AggregatorV3 { + a.accounts.EnableMadvWillNeed() + a.storage.EnableMadvWillNeed() + a.code.EnableMadvWillNeed() + a.logAddrs.EnableMadvWillNeed() + a.logTopics.EnableMadvWillNeed() + a.tracesFrom.EnableMadvWillNeed() + a.tracesTo.EnableMadvWillNeed() + return a +} +func (a *AggregatorV3) EnableMadvNormal() *AggregatorV3 { + a.accounts.EnableMadvNormalReadAhead() + a.storage.EnableMadvNormalReadAhead() + a.code.EnableMadvNormalReadAhead() + a.logAddrs.EnableMadvNormalReadAhead() + a.logTopics.EnableMadvNormalReadAhead() + a.tracesFrom.EnableMadvNormalReadAhead() + a.tracesTo.EnableMadvNormalReadAhead() + return a +} + +func (ac *AggregatorV3Context) IndexRange(name kv.InvertedIdx, k []byte, fromTs, toTs int, asc order.By, limit int, tx kv.Tx) (timestamps iter.U64, err error) { + switch name { + case kv.AccountsHistoryIdx: + return ac.accounts.IdxRange(k, fromTs, toTs, asc, limit, tx) + case kv.StorageHistoryIdx: + return ac.storage.IdxRange(k, fromTs, toTs, asc, limit, tx) + case kv.CodeHistoryIdx: + return ac.code.IdxRange(k, fromTs, toTs, asc, limit, tx) + case kv.LogTopicIdx: + return ac.logTopics.IdxRange(k, fromTs, toTs, asc, limit, tx) + case kv.LogAddrIdx: + return ac.logAddrs.IdxRange(k, fromTs, toTs, asc, limit, tx) + case kv.TracesFromIdx: + return ac.tracesFrom.IdxRange(k, fromTs, toTs, asc, limit, tx) + case kv.TracesToIdx: + return ac.tracesTo.IdxRange(k, fromTs, toTs, asc, limit, tx) + default: + return nil, fmt.Errorf("unexpected history name: %s", name) + } +} + +// -- range end + +func (ac *AggregatorV3Context) ReadAccountDataNoStateWithRecent(addr []byte, txNum uint64, tx kv.Tx) ([]byte, bool, error) { + return ac.accounts.GetNoStateWithRecent(addr, txNum, tx) +} + +func (ac *AggregatorV3Context) ReadAccountDataNoState(addr []byte, txNum uint64) ([]byte, bool, error) { + return ac.accounts.GetNoState(addr, txNum) +} + +func (ac *AggregatorV3Context) ReadAccountStorageNoStateWithRecent(addr []byte, loc []byte, txNum uint64, tx kv.Tx) ([]byte, bool, error) { + if cap(ac.keyBuf) < len(addr)+len(loc) { + ac.keyBuf = make([]byte, len(addr)+len(loc)) + } else if len(ac.keyBuf) != len(addr)+len(loc) { + ac.keyBuf = ac.keyBuf[:len(addr)+len(loc)] + } + copy(ac.keyBuf, addr) + copy(ac.keyBuf[len(addr):], loc) + return ac.storage.GetNoStateWithRecent(ac.keyBuf, txNum, tx) +} +func (ac *AggregatorV3Context) ReadAccountStorageNoStateWithRecent2(key []byte, txNum uint64, tx kv.Tx) ([]byte, bool, error) { + return ac.storage.GetNoStateWithRecent(key, txNum, tx) +} + +func (ac *AggregatorV3Context) ReadAccountStorageNoState(addr []byte, loc []byte, txNum uint64) ([]byte, bool, error) { + if cap(ac.keyBuf) < len(addr)+len(loc) { + ac.keyBuf = make([]byte, len(addr)+len(loc)) + } else if len(ac.keyBuf) != len(addr)+len(loc) { + ac.keyBuf = ac.keyBuf[:len(addr)+len(loc)] + } + copy(ac.keyBuf, addr) + copy(ac.keyBuf[len(addr):], loc) + return ac.storage.GetNoState(ac.keyBuf, txNum) +} + +func (ac *AggregatorV3Context) ReadAccountCodeNoStateWithRecent(addr []byte, txNum uint64, tx kv.Tx) ([]byte, bool, error) { + return ac.code.GetNoStateWithRecent(addr, txNum, tx) +} +func (ac *AggregatorV3Context) ReadAccountCodeNoState(addr []byte, txNum uint64) ([]byte, bool, error) { + return ac.code.GetNoState(addr, txNum) +} + +func (ac *AggregatorV3Context) ReadAccountCodeSizeNoStateWithRecent(addr []byte, txNum uint64, tx kv.Tx) (int, bool, error) { + code, noState, err := ac.code.GetNoStateWithRecent(addr, txNum, tx) + if err != nil { + return 0, false, err + } + return len(code), noState, nil +} +func (ac *AggregatorV3Context) ReadAccountCodeSizeNoState(addr []byte, txNum uint64) (int, bool, error) { + code, noState, err := ac.code.GetNoState(addr, txNum) + if err != nil { + return 0, false, err + } + return len(code), noState, nil +} + +func (ac *AggregatorV3Context) AccountHistoryRange(startTxNum, endTxNum int, asc order.By, limit int, tx kv.Tx) (iter.KV, error) { + return ac.accounts.HistoryRange(startTxNum, endTxNum, asc, limit, tx) +} + +func (ac *AggregatorV3Context) StorageHistoryRange(startTxNum, endTxNum int, asc order.By, limit int, tx kv.Tx) (iter.KV, error) { + return ac.storage.HistoryRange(startTxNum, endTxNum, asc, limit, tx) +} + +func (ac *AggregatorV3Context) CodeHistoryRange(startTxNum, endTxNum int, asc order.By, limit int, tx kv.Tx) (iter.KV, error) { + return ac.code.HistoryRange(startTxNum, endTxNum, asc, limit, tx) +} + +func (ac *AggregatorV3Context) AccountHistoricalStateRange(startTxNum uint64, from, to []byte, limit int, tx kv.Tx) iter.KV { + return ac.accounts.WalkAsOf(startTxNum, from, to, tx, limit) +} + +func (ac *AggregatorV3Context) StorageHistoricalStateRange(startTxNum uint64, from, to []byte, limit int, tx kv.Tx) iter.KV { + return ac.storage.WalkAsOf(startTxNum, from, to, tx, limit) +} + +func (ac *AggregatorV3Context) CodeHistoricalStateRange(startTxNum uint64, from, to []byte, limit int, tx kv.Tx) iter.KV { + return ac.code.WalkAsOf(startTxNum, from, to, tx, limit) +} + +type FilesStats22 struct { +} + +func (a *AggregatorV3) Stats() FilesStats22 { + var fs FilesStats22 + return fs +} + +type AggregatorV3Context struct { + a *AggregatorV3 + accounts *HistoryContext + storage *HistoryContext + code *HistoryContext + logAddrs *InvertedIndexContext + logTopics *InvertedIndexContext + tracesFrom *InvertedIndexContext + tracesTo *InvertedIndexContext + keyBuf []byte + + id uint64 // set only if TRACE_AGG=true +} + +func (a *AggregatorV3) MakeContext() *AggregatorV3Context { + ac := &AggregatorV3Context{ + a: a, + accounts: a.accounts.MakeContext(), + storage: a.storage.MakeContext(), + code: a.code.MakeContext(), + logAddrs: a.logAddrs.MakeContext(), + logTopics: a.logTopics.MakeContext(), + tracesFrom: a.tracesFrom.MakeContext(), + tracesTo: a.tracesTo.MakeContext(), + + id: a.leakDetector.Add(), + } + + return ac +} +func (ac *AggregatorV3Context) Close() { + ac.a.leakDetector.Del(ac.id) + ac.accounts.Close() + ac.storage.Close() + ac.code.Close() + ac.logAddrs.Close() + ac.logTopics.Close() + ac.tracesFrom.Close() + ac.tracesTo.Close() +} + +// BackgroundResult - used only indicate that some work is done +// no much reason to pass exact results by this object, just get latest state when need +type BackgroundResult struct { + err error + has bool +} + +func (br *BackgroundResult) Has() bool { return br.has } +func (br *BackgroundResult) Set(err error) { br.has, br.err = true, err } +func (br *BackgroundResult) GetAndReset() (bool, error) { + has, err := br.has, br.err + br.has, br.err = false, nil + return has, err +} + +func lastIdInDB(db kv.RoDB, table string) (lstInDb uint64) { + if err := db.View(context.Background(), func(tx kv.Tx) error { + lst, _ := kv.LastKey(tx, table) + if len(lst) > 0 { + lstInDb = binary.BigEndian.Uint64(lst) + } + return nil + }); err != nil { + log.Warn("[snapshots] lastIdInDB", "err", err) + } + return lstInDb +} + +// AggregatorStep is used for incremental reconstitution, it allows +// accessing history in isolated way for each step +type AggregatorStep struct { + a *AggregatorV3 + accounts *HistoryStep + storage *HistoryStep + code *HistoryStep + keyBuf []byte +} + +func (a *AggregatorV3) MakeSteps() ([]*AggregatorStep, error) { + frozenAndIndexed := a.EndTxNumFrozenAndIndexed() + accountSteps := a.accounts.MakeSteps(frozenAndIndexed) + codeSteps := a.code.MakeSteps(frozenAndIndexed) + storageSteps := a.storage.MakeSteps(frozenAndIndexed) + if len(accountSteps) != len(storageSteps) || len(storageSteps) != len(codeSteps) { + return nil, fmt.Errorf("different limit of steps (try merge snapshots): accountSteps=%d, storageSteps=%d, codeSteps=%d", len(accountSteps), len(storageSteps), len(codeSteps)) + } + steps := make([]*AggregatorStep, len(accountSteps)) + for i, accountStep := range accountSteps { + steps[i] = &AggregatorStep{ + a: a, + accounts: accountStep, + storage: storageSteps[i], + code: codeSteps[i], + } + } + return steps, nil +} + +func (as *AggregatorStep) TxNumRange() (uint64, uint64) { + return as.accounts.indexFile.startTxNum, as.accounts.indexFile.endTxNum +} + +func (as *AggregatorStep) IterateAccountsTxs() *ScanIteratorInc { + return as.accounts.iterateTxs() +} + +func (as *AggregatorStep) IterateStorageTxs() *ScanIteratorInc { + return as.storage.iterateTxs() +} + +func (as *AggregatorStep) IterateCodeTxs() *ScanIteratorInc { + return as.code.iterateTxs() +} + +func (as *AggregatorStep) ReadAccountDataNoState(addr []byte, txNum uint64) ([]byte, bool, uint64) { + return as.accounts.GetNoState(addr, txNum) +} + +func (as *AggregatorStep) ReadAccountStorageNoState(addr []byte, loc []byte, txNum uint64) ([]byte, bool, uint64) { + if cap(as.keyBuf) < len(addr)+len(loc) { + as.keyBuf = make([]byte, len(addr)+len(loc)) + } else if len(as.keyBuf) != len(addr)+len(loc) { + as.keyBuf = as.keyBuf[:len(addr)+len(loc)] + } + copy(as.keyBuf, addr) + copy(as.keyBuf[len(addr):], loc) + return as.storage.GetNoState(as.keyBuf, txNum) +} + +func (as *AggregatorStep) ReadAccountCodeNoState(addr []byte, txNum uint64) ([]byte, bool, uint64) { + return as.code.GetNoState(addr, txNum) +} + +func (as *AggregatorStep) ReadAccountCodeSizeNoState(addr []byte, txNum uint64) (int, bool, uint64) { + code, noState, stateTxNum := as.code.GetNoState(addr, txNum) + return len(code), noState, stateTxNum +} + +func (as *AggregatorStep) MaxTxNumAccounts(addr []byte) (bool, uint64) { + return as.accounts.MaxTxNum(addr) +} + +func (as *AggregatorStep) MaxTxNumStorage(addr []byte, loc []byte) (bool, uint64) { + if cap(as.keyBuf) < len(addr)+len(loc) { + as.keyBuf = make([]byte, len(addr)+len(loc)) + } else if len(as.keyBuf) != len(addr)+len(loc) { + as.keyBuf = as.keyBuf[:len(addr)+len(loc)] + } + copy(as.keyBuf, addr) + copy(as.keyBuf[len(addr):], loc) + return as.storage.MaxTxNum(as.keyBuf) +} + +func (as *AggregatorStep) MaxTxNumCode(addr []byte) (bool, uint64) { + return as.code.MaxTxNum(addr) +} + +func (as *AggregatorStep) IterateAccountsHistory(txNum uint64) *HistoryIteratorInc { + return as.accounts.interateHistoryBeforeTxNum(txNum) +} + +func (as *AggregatorStep) IterateStorageHistory(txNum uint64) *HistoryIteratorInc { + return as.storage.interateHistoryBeforeTxNum(txNum) +} + +func (as *AggregatorStep) IterateCodeHistory(txNum uint64) *HistoryIteratorInc { + return as.code.interateHistoryBeforeTxNum(txNum) +} + +func (as *AggregatorStep) Clone() *AggregatorStep { + return &AggregatorStep{ + a: as.a, + accounts: as.accounts.Clone(), + storage: as.storage.Clone(), + code: as.code.Clone(), + } +} diff --git a/erigon-lib/state/btree_index.go b/erigon-lib/state/btree_index.go new file mode 100644 index 00000000000..00d2b9e1374 --- /dev/null +++ b/erigon-lib/state/btree_index.go @@ -0,0 +1,1146 @@ +package state + +import ( + "bufio" + "bytes" + "context" + "encoding/binary" + "errors" + "fmt" + "math" + "math/bits" + "os" + "path" + "path/filepath" + "time" + + "github.com/c2h5oh/datasize" + "github.com/edsrzf/mmap-go" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/common/background" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/etl" +) + +func logBase(n, base uint64) uint64 { + return uint64(math.Ceil(math.Log(float64(n)) / math.Log(float64(base)))) +} + +func min64(a, b uint64) uint64 { + if a < b { + return a + } + return b +} + +type markupCursor struct { + l uint64 //l - level + p uint64 //p - pos inside level + di uint64 //di - data array index + si uint64 //si - current, actual son index +} + +type node struct { + p uint64 // pos inside level + d uint64 + s uint64 // sons pos inside level + fc uint64 + key []byte + val []byte +} + +type Cursor struct { + ctx context.Context + ix *btAlloc + + key []byte + value []byte + d uint64 +} + +func (a *btAlloc) newCursor(ctx context.Context, k, v []byte, d uint64) *Cursor { + return &Cursor{ + ctx: ctx, + key: common.Copy(k), + value: common.Copy(v), + d: d, + ix: a, + } +} + +func (c *Cursor) Key() []byte { + return c.key +} + +func (c *Cursor) Ordinal() uint64 { + return c.d +} + +func (c *Cursor) Value() []byte { + return c.value +} + +func (c *Cursor) Next() bool { + if c.d > c.ix.K-1 { + return false + } + k, v, err := c.ix.dataLookup(c.d + 1) + if err != nil { + return false + } + c.key = common.Copy(k) + c.value = common.Copy(v) + c.d++ + return true +} + +type btAlloc struct { + d uint64 // depth + M uint64 // child limit of any node + N uint64 + K uint64 + vx []uint64 // vertex count on level + sons [][]uint64 // i - level; 0 <= i < d; j_k - amount, j_k+1 - child count + cursors []markupCursor + nodes [][]node + naccess uint64 + trace bool + + dataLookup func(di uint64) ([]byte, []byte, error) +} + +func newBtAlloc(k, M uint64, trace bool) *btAlloc { + if k == 0 { + return nil + } + + d := logBase(k, M) + a := &btAlloc{ + vx: make([]uint64, d+1), + sons: make([][]uint64, d+1), + cursors: make([]markupCursor, d), + nodes: make([][]node, d), + M: M, + K: k, + d: d, + trace: trace, + } + if trace { + fmt.Printf("k=%d d=%d, M=%d\n", k, d, M) + } + a.vx[0], a.vx[d] = 1, k + + if k < M/2 { + a.N = k + a.nodes = make([][]node, 1) + return a + } + + //nnc := func(vx uint64) uint64 { + // return uint64(math.Ceil(float64(vx) / float64(M))) + //} + nvc := func(vx uint64) uint64 { + return uint64(math.Ceil(float64(vx) / float64(M>>1))) + } + + for i := a.d - 1; i > 0; i-- { + nnc := uint64(math.Ceil(float64(a.vx[i+1]) / float64(M))) + //nvc := uint64(math.Floor(float64(a.vx[i+1]) / float64(m))-1) + //nnc := a.vx[i+1] / M + //nvc := a.vx[i+1] / m + //bvc := a.vx[i+1] / (m + (m >> 1)) + a.vx[i] = min64(uint64(math.Pow(float64(M), float64(i))), nnc) + } + + ncount := uint64(0) + pnv := uint64(0) + for l := a.d - 1; l > 0; l-- { + //s := nnc(a.vx[l+1]) + sh := nvc(a.vx[l+1]) + + if sh&1 == 1 { + a.sons[l] = append(a.sons[l], sh>>1, M, 1, M>>1) + } else { + a.sons[l] = append(a.sons[l], sh>>1, M) + } + + for ik := 0; ik < len(a.sons[l]); ik += 2 { + ncount += a.sons[l][ik] * a.sons[l][ik+1] + if l == 1 { + pnv += a.sons[l][ik] + } + } + } + a.sons[0] = []uint64{1, pnv} + ncount += a.sons[0][0] * a.sons[0][1] // last one + a.N = ncount + + if trace { + for i, v := range a.sons { + fmt.Printf("L%d=%v\n", i, v) + } + } + + return a +} + +// nolint +// another implementation of traverseDfs supposed to be a bit cleaner but buggy yet +func (a *btAlloc) traverseTrick() { + for l := 0; l < len(a.sons)-1; l++ { + if len(a.sons[l]) < 2 { + panic("invalid btree allocation markup") + } + a.cursors[l] = markupCursor{uint64(l), 1, 0, 0} + a.nodes[l] = make([]node, 0) + } + + lf := a.cursors[len(a.cursors)-1] + c := a.cursors[(len(a.cursors) - 2)] + + var d uint64 + var fin bool + + lf.di = d + lf.si++ + d++ + a.cursors[len(a.cursors)-1] = lf + + moved := true + for int(c.p) <= len(a.sons[c.l]) { + if fin || d > a.K { + break + } + c, lf = a.cursors[c.l], a.cursors[lf.l] + + c.di = d + c.si++ + + sons := a.sons[lf.l][lf.p] + for i := uint64(1); i < sons; i++ { + lf.si++ + d++ + } + lf.di = d + d++ + + a.nodes[lf.l] = append(a.nodes[lf.l], node{p: lf.p, s: lf.si, d: lf.di}) + a.nodes[c.l] = append(a.nodes[c.l], node{p: c.p, s: c.si, d: c.di}) + a.cursors[lf.l] = lf + a.cursors[c.l] = c + + for l := lf.l; l >= 0; l-- { + sc := a.cursors[l] + sons, gsons := a.sons[sc.l][sc.p-1], a.sons[sc.l][sc.p] + if l < c.l && moved { + sc.di = d + a.nodes[sc.l] = append(a.nodes[sc.l], node{d: sc.di}) + sc.si++ + d++ + } + moved = (sc.si-1)/gsons != sc.si/gsons + if sc.si/gsons >= sons { + sz := uint64(len(a.sons[sc.l]) - 1) + if sc.p+2 > sz { + fin = l == lf.l + break + } else { + sc.p += 2 + sc.si, sc.di = 0, 0 + } + //moved = true + } + if l == lf.l { + sc.si++ + sc.di = d + d++ + } + a.cursors[l] = sc + if l == 0 { + break + } + } + moved = false + } +} + +func (a *btAlloc) traverseDfs() { + for l := 0; l < len(a.sons)-1; l++ { + a.cursors[l] = markupCursor{uint64(l), 1, 0, 0} + a.nodes[l] = make([]node, 0) + } + + if len(a.cursors) <= 1 { + if a.nodes[0] == nil { + a.nodes[0] = make([]node, 0) + } + a.nodes[0] = append(a.nodes[0], node{d: a.K}) + a.N = a.K + if a.trace { + fmt.Printf("ncount=%d ∂%.5f\n", a.N, float64(a.N-a.K)/float64(a.N)) + } + return + } + + c := a.cursors[len(a.cursors)-1] + pc := a.cursors[(len(a.cursors) - 2)] + root := new(node) + trace := false + + var di uint64 + for stop := false; !stop; { + // fill leaves, mark parent if needed (until all grandparents not marked up until root) + // check if eldest parent has brothers + // -- has bros -> fill their leaves from the bottom + // -- no bros -> shift cursor (tricky) + if di > a.K { + a.N = di - 1 // actually filled node count + if a.trace { + fmt.Printf("ncount=%d ∂%.5f\n", a.N, float64(a.N-a.K)/float64(a.N)) + } + break + } + + bros, parents := a.sons[c.l][c.p], a.sons[c.l][c.p-1] + for i := uint64(0); i < bros; i++ { + c.di = di + if trace { + fmt.Printf("L%d |%d| d %2d s %2d\n", c.l, c.p, c.di, c.si) + } + c.si++ + di++ + + if i == 0 { + pc.di = di + if trace { + fmt.Printf("P%d |%d| d %2d s %2d\n", pc.l, pc.p, pc.di, pc.si) + } + pc.si++ + di++ + } + if di > a.K { + a.N = di - 1 // actually filled node count + stop = true + break + } + } + + a.nodes[c.l] = append(a.nodes[c.l], node{p: c.p, d: c.di, s: c.si}) + a.nodes[pc.l] = append(a.nodes[pc.l], node{p: pc.p, d: pc.di, s: pc.si, fc: uint64(len(a.nodes[c.l]) - 1)}) + + pid := c.si / bros + if pid >= parents { + if c.p+2 >= uint64(len(a.sons[c.l])) { + stop = true // end of row + if trace { + fmt.Printf("F%d |%d| d %2d\n", c.l, c.p, c.di) + } + } else { + c.p += 2 + c.si = 0 + c.di = 0 + } + } + a.cursors[c.l] = c + a.cursors[pc.l] = pc + + //nolint + for l := pc.l; l >= 0; l-- { + pc := a.cursors[l] + uncles := a.sons[pc.l][pc.p] + grands := a.sons[pc.l][pc.p-1] + + pi1 := pc.si / uncles + pc.si++ + pc.di = 0 + + pi2 := pc.si / uncles + moved := pi2-pi1 != 0 + + switch { + case pc.l > 0: + gp := a.cursors[pc.l-1] + if gp.di == 0 { + gp.di = di + di++ + if trace { + fmt.Printf("P%d |%d| d %2d s %2d\n", gp.l, gp.p, gp.di, gp.si) + } + a.nodes[gp.l] = append(a.nodes[gp.l], node{p: gp.p, d: gp.di, s: gp.si, fc: uint64(len(a.nodes[l]) - 1)}) + a.cursors[gp.l] = gp + } + default: + if root.d == 0 { + root.d = di + //di++ + if trace { + fmt.Printf("ROOT | d %2d\n", root.d) + } + } + } + + //fmt.Printf("P%d |%d| d %2d s %2d pid %d\n", pc.l, pc.p, pc.di, pc.si-1) + if pi2 >= grands { // skip one step of si due to different parental filling order + if pc.p+2 >= uint64(len(a.sons[pc.l])) { + if trace { + fmt.Printf("EoRow %d |%d|\n", pc.l, pc.p) + } + break // end of row + } + //fmt.Printf("N %d d%d s%d\n", pc.l, pc.di, pc.si) + //fmt.Printf("P%d |%d| d %2d s %2d pid %d\n", pc.l, pc.p, pc.di, pc.si, pid) + pc.p += 2 + pc.si = 0 + pc.di = 0 + } + a.cursors[pc.l] = pc + + if !moved { + break + } + } + } + + if a.trace { + fmt.Printf("ncount=%d ∂%.5f\n", a.N, float64(a.N-a.K)/float64(a.N)) + } +} + +func (a *btAlloc) bsKey(x []byte, l, r uint64) (*Cursor, error) { + for l <= r { + di := (l + r) >> 1 + + mk, value, err := a.dataLookup(di) + a.naccess++ + + cmp := bytes.Compare(mk, x) + switch { + case err != nil: + if errors.Is(err, ErrBtIndexLookupBounds) { + return nil, nil + } + return nil, err + case cmp == 0: + return a.newCursor(context.TODO(), mk, value, di), nil + case cmp == -1: + l = di + 1 + default: + r = di + } + if l == r { + break + } + } + k, v, err := a.dataLookup(l) + if err != nil { + if errors.Is(err, ErrBtIndexLookupBounds) { + return nil, nil + } + return nil, fmt.Errorf("key >= %x was not found. %w", x, err) + } + return a.newCursor(context.TODO(), k, v, l), nil +} + +func (a *btAlloc) bsNode(i, l, r uint64, x []byte) (n node, lm int64, rm int64) { + lm, rm = -1, -1 + var m uint64 + + for l < r { + m = (l + r) >> 1 + + a.naccess++ + cmp := bytes.Compare(a.nodes[i][m].key, x) + switch { + case cmp == 0: + return a.nodes[i][m], int64(m), int64(m) + case cmp > 0: + r = m + rm = int64(m) + case cmp < 0: + lm = int64(m) + l = m + 1 + default: + panic(fmt.Errorf("compare error %d, %x ? %x", cmp, n.key, x)) + } + } + return a.nodes[i][m], lm, rm +} + +// find position of key with node.di <= d at level lvl +func (a *btAlloc) seekLeast(lvl, d uint64) uint64 { + for i := range a.nodes[lvl] { + if a.nodes[lvl][i].d >= d { + return uint64(i) + } + } + return uint64(len(a.nodes[lvl])) +} + +func (a *btAlloc) Seek(ik []byte) (*Cursor, error) { + if a.trace { + fmt.Printf("seek key %x\n", ik) + } + + var ( + lm, rm int64 + L, R = uint64(0), uint64(len(a.nodes[0]) - 1) + minD, maxD = uint64(0), a.K + ln node + ) + + for l, level := range a.nodes { + if len(level) == 1 && l == 0 { + ln = a.nodes[0][0] + maxD = ln.d + break + } + ln, lm, rm = a.bsNode(uint64(l), L, R, ik) + if ln.key == nil { // should return node which is nearest to key from the left so never nil + if a.trace { + fmt.Printf("found nil key %x pos_range[%d-%d] naccess_ram=%d\n", l, lm, rm, a.naccess) + } + return nil, fmt.Errorf("bt index nil node at level %d", l) + } + + switch bytes.Compare(ln.key, ik) { + case 1: // key > ik + maxD = ln.d + case -1: // key < ik + minD = ln.d + case 0: + if a.trace { + fmt.Printf("found key %x v=%x naccess_ram=%d\n", ik, ln.val /*level[m].d,*/, a.naccess) + } + return a.newCursor(context.TODO(), common.Copy(ln.key), common.Copy(ln.val), ln.d), nil + } + + if rm-lm >= 1 { + break + } + if lm >= 0 { + minD = a.nodes[l][lm].d + L = level[lm].fc + } else if l+1 != len(a.nodes) { + L = a.seekLeast(uint64(l+1), minD) + if L == uint64(len(a.nodes[l+1])) { + L-- + } + } + if rm >= 0 { + maxD = a.nodes[l][rm].d + R = level[rm].fc + } else if l+1 != len(a.nodes) { + R = a.seekLeast(uint64(l+1), maxD) + if R == uint64(len(a.nodes[l+1])) { + R-- + } + } + + if a.trace { + fmt.Printf("range={%x d=%d p=%d} (%d, %d) L=%d naccess_ram=%d\n", ln.key, ln.d, ln.p, minD, maxD, l, a.naccess) + } + } + + a.naccess = 0 // reset count before actually go to disk + cursor, err := a.bsKey(ik, minD, maxD) + if err != nil { + if a.trace { + fmt.Printf("key %x not found\n", ik) + } + return nil, err + } + + if a.trace { + fmt.Printf("finally found key %x v=%x naccess_disk=%d\n", cursor.key, cursor.value, a.naccess) + } + return cursor, nil +} + +func (a *btAlloc) fillSearchMx() { + for i, n := range a.nodes { + if a.trace { + fmt.Printf("D%d |%d| ", i, len(n)) + } + for j, s := range n { + if a.trace { + fmt.Printf("%d ", s.d) + } + if s.d >= a.K { + break + } + + kb, v, err := a.dataLookup(s.d) + if err != nil { + fmt.Printf("d %d not found %v\n", s.d, err) + } + a.nodes[i][j].key = common.Copy(kb) + a.nodes[i][j].val = common.Copy(v) + } + if a.trace { + fmt.Printf("\n") + } + } +} + +// deprecated +type BtIndexReader struct { + index *BtIndex +} + +func NewBtIndexReader(index *BtIndex) *BtIndexReader { + return &BtIndexReader{ + index: index, + } +} + +// Lookup wraps index Lookup +func (r *BtIndexReader) Lookup(key []byte) uint64 { + if r.index != nil { + return r.index.Lookup(key) + } + return 0 +} + +func (r *BtIndexReader) Lookup2(key1, key2 []byte) uint64 { + fk := make([]byte, 52) + copy(fk[:length.Addr], key1) + copy(fk[length.Addr:], key2) + + if r.index != nil { + return r.index.Lookup(fk) + } + return 0 +} + +func (r *BtIndexReader) Seek(x []byte) (*Cursor, error) { + if r.index != nil { + cursor, err := r.index.alloc.Seek(x) + if err != nil { + return nil, fmt.Errorf("seek key %x: %w", x, err) + } + return cursor, nil + } + return nil, fmt.Errorf("seek has been failed") +} + +func (r *BtIndexReader) Empty() bool { + return r.index.Empty() +} + +type BtIndexWriter struct { + built bool + lvl log.Lvl + maxOffset uint64 + prevOffset uint64 + minDelta uint64 + indexW *bufio.Writer + indexF *os.File + bucketCollector *etl.Collector // Collector that sorts by buckets + + indexFileName string + indexFile, tmpFilePath string + + tmpDir string + numBuf [8]byte + keyCount uint64 + etlBufLimit datasize.ByteSize + bytesPerRec int + logger log.Logger + noFsync bool // fsync is enabled by default, but tests can manually disable +} + +type BtIndexWriterArgs struct { + IndexFile string // File name where the index and the minimal perfect hash function will be written to + TmpDir string + KeyCount int + EtlBufLimit datasize.ByteSize +} + +const BtreeLogPrefix = "btree" + +// NewBtIndexWriter creates a new BtIndexWriter instance with given number of keys +// Typical bucket size is 100 - 2048, larger bucket sizes result in smaller representations of hash functions, at a cost of slower access +// salt parameters is used to randomise the hash function construction, to ensure that different Erigon instances (nodes) +// are likely to use different hash function, to collision attacks are unlikely to slow down any meaningful number of nodes at the same time +func NewBtIndexWriter(args BtIndexWriterArgs, logger log.Logger) (*BtIndexWriter, error) { + btw := &BtIndexWriter{lvl: log.LvlDebug, logger: logger} + btw.tmpDir = args.TmpDir + btw.indexFile = args.IndexFile + btw.tmpFilePath = args.IndexFile + ".tmp" + + _, fname := filepath.Split(btw.indexFile) + btw.indexFileName = fname + btw.etlBufLimit = args.EtlBufLimit + if btw.etlBufLimit == 0 { + btw.etlBufLimit = etl.BufferOptimalSize + } + + btw.bucketCollector = etl.NewCollector(BtreeLogPrefix+" "+fname, btw.tmpDir, etl.NewSortableBuffer(btw.etlBufLimit), logger) + btw.bucketCollector.LogLvl(log.LvlDebug) + + btw.maxOffset = 0 + return btw, nil +} + +// loadFuncBucket is required to satisfy the type etl.LoadFunc type, to use with collector.Load +func (btw *BtIndexWriter) loadFuncBucket(k, v []byte, _ etl.CurrentTableReader, _ etl.LoadNextFunc) error { + // k is the BigEndian encoding of the bucket number, and the v is the key that is assigned into that bucket + //if uint64(len(btw.vals)) >= btw.batchSizeLimit { + // if err := btw.drainBatch(); err != nil { + // return err + // } + //} + + // if _, err := btw.indexW.Write(k); err != nil { + // return err + // } + if _, err := btw.indexW.Write(v[8-btw.bytesPerRec:]); err != nil { + return err + } + + //btw.keys = append(btw.keys, binary.BigEndian.Uint64(k), binary.BigEndian.Uint64(k[8:])) + //btw.vals = append(btw.vals, binary.BigEndian.Uint64(v)) + return nil +} + +// Build has to be called after all the keys have been added, and it initiates the process +// of building the perfect hash function and writing index into a file +func (btw *BtIndexWriter) Build() error { + if btw.built { + return fmt.Errorf("already built") + } + //if btw.keysAdded != btw.keyCount { + // return fmt.Errorf("expected keys %d, got %d", btw.keyCount, btw.keysAdded) + //} + var err error + if btw.indexF, err = os.Create(btw.tmpFilePath); err != nil { + return fmt.Errorf("create index file %s: %w", btw.indexFile, err) + } + defer btw.indexF.Close() + btw.indexW = bufio.NewWriterSize(btw.indexF, etl.BufIOSize) + + // Write number of keys + binary.BigEndian.PutUint64(btw.numBuf[:], btw.keyCount) + if _, err = btw.indexW.Write(btw.numBuf[:]); err != nil { + return fmt.Errorf("write number of keys: %w", err) + } + // Write number of bytes per index record + btw.bytesPerRec = common.BitLenToByteLen(bits.Len64(btw.maxOffset)) + if err = btw.indexW.WriteByte(byte(btw.bytesPerRec)); err != nil { + return fmt.Errorf("write bytes per record: %w", err) + } + + defer btw.bucketCollector.Close() + log.Log(btw.lvl, "[index] calculating", "file", btw.indexFileName) + if err := btw.bucketCollector.Load(nil, "", btw.loadFuncBucket, etl.TransformArgs{}); err != nil { + return err + } + + btw.logger.Log(btw.lvl, "[index] write", "file", btw.indexFileName) + btw.built = true + + if err = btw.indexW.Flush(); err != nil { + return err + } + if err = btw.fsync(); err != nil { + return err + } + if err = btw.indexF.Close(); err != nil { + return err + } + if err = os.Rename(btw.tmpFilePath, btw.indexFile); err != nil { + return err + } + return nil +} + +func (btw *BtIndexWriter) DisableFsync() { btw.noFsync = true } + +// fsync - other processes/goroutines must see only "fully-complete" (valid) files. No partial-writes. +// To achieve it: write to .tmp file then `rename` when file is ready. +// Machine may power-off right after `rename` - it means `fsync` must be before `rename` +func (btw *BtIndexWriter) fsync() error { + if btw.noFsync { + return nil + } + if err := btw.indexF.Sync(); err != nil { + btw.logger.Warn("couldn't fsync", "err", err, "file", btw.tmpFilePath) + return err + } + return nil +} + +func (btw *BtIndexWriter) Close() { + if btw.indexF != nil { + btw.indexF.Close() + } + if btw.bucketCollector != nil { + btw.bucketCollector.Close() + } + //if btw.offsetCollector != nil { + // btw.offsetCollector.Close() + //} +} + +func (btw *BtIndexWriter) AddKey(key []byte, offset uint64) error { + if btw.built { + return fmt.Errorf("cannot add keys after perfect hash function had been built") + } + + binary.BigEndian.PutUint64(btw.numBuf[:], offset) + if offset > btw.maxOffset { + btw.maxOffset = offset + } + if btw.keyCount > 0 { + delta := offset - btw.prevOffset + if btw.keyCount == 1 || delta < btw.minDelta { + btw.minDelta = delta + } + } + + if err := btw.bucketCollector.Collect(key, btw.numBuf[:]); err != nil { + return err + } + btw.keyCount++ + btw.prevOffset = offset + return nil +} + +type BtIndex struct { + alloc *btAlloc + m mmap.MMap + data []byte + file *os.File + size int64 + modTime time.Time + filePath string + keyCount uint64 + bytesPerRec int + dataoffset uint64 + auxBuf []byte + decompressor *compress.Decompressor + getter *compress.Getter +} + +func CreateBtreeIndex(indexPath, dataPath string, M uint64, logger log.Logger) (*BtIndex, error) { + err := BuildBtreeIndex(dataPath, indexPath, logger) + if err != nil { + return nil, err + } + return OpenBtreeIndex(indexPath, dataPath, M) +} + +var DefaultBtreeM = uint64(2048) + +func CreateBtreeIndexWithDecompressor(indexPath string, M uint64, decompressor *compress.Decompressor, p *background.Progress, tmpdir string, logger log.Logger) (*BtIndex, error) { + err := BuildBtreeIndexWithDecompressor(indexPath, decompressor, p, tmpdir, logger) + if err != nil { + return nil, err + } + return OpenBtreeIndexWithDecompressor(indexPath, M, decompressor) +} + +func BuildBtreeIndexWithDecompressor(indexPath string, kv *compress.Decompressor, p *background.Progress, tmpdir string, logger log.Logger) error { + defer kv.EnableReadAhead().DisableReadAhead() + + args := BtIndexWriterArgs{ + IndexFile: indexPath, + TmpDir: tmpdir, + } + + iw, err := NewBtIndexWriter(args, logger) + if err != nil { + return err + } + + getter := kv.MakeGetter() + getter.Reset(0) + + key := make([]byte, 0, 64) + ks := make(map[int]int) + + var pos, kp uint64 + emptys := 0 + for getter.HasNext() { + p.Processed.Add(1) + key, kp = getter.Next(key[:0]) + err = iw.AddKey(key, pos) + if err != nil { + return err + } + + pos, _ = getter.Skip() + if pos-kp == 1 { + ks[len(key)]++ + emptys++ + } + } + //fmt.Printf("emptys %d %#+v\n", emptys, ks) + + if err := iw.Build(); err != nil { + return err + } + iw.Close() + return nil +} + +// Opens .kv at dataPath and generates index over it to file 'indexPath' +func BuildBtreeIndex(dataPath, indexPath string, logger log.Logger) error { + decomp, err := compress.NewDecompressor(dataPath) + if err != nil { + return err + } + defer decomp.Close() + + defer decomp.EnableReadAhead().DisableReadAhead() + + args := BtIndexWriterArgs{ + IndexFile: indexPath, + TmpDir: filepath.Dir(indexPath), + } + + iw, err := NewBtIndexWriter(args, logger) + if err != nil { + return err + } + defer iw.Close() + + getter := decomp.MakeGetter() + getter.Reset(0) + + key := make([]byte, 0, 64) + + var pos uint64 + for getter.HasNext() { + key, _ = getter.Next(key[:0]) + err = iw.AddKey(key, pos) + if err != nil { + return err + } + + pos, _ = getter.Skip() + } + decomp.Close() + + if err := iw.Build(); err != nil { + return err + } + iw.Close() + return nil +} + +func OpenBtreeIndexWithDecompressor(indexPath string, M uint64, kv *compress.Decompressor) (*BtIndex, error) { + s, err := os.Stat(indexPath) + if err != nil { + return nil, err + } + + idx := &BtIndex{ + filePath: indexPath, + size: s.Size(), + modTime: s.ModTime(), + auxBuf: make([]byte, 64), + } + + idx.file, err = os.Open(indexPath) + if err != nil { + return nil, err + } + + idx.m, err = mmap.MapRegion(idx.file, int(idx.size), mmap.RDONLY, 0, 0) + if err != nil { + return nil, err + } + idx.data = idx.m[:idx.size] + + // Read number of keys and bytes per record + pos := 8 + idx.keyCount = binary.BigEndian.Uint64(idx.data[:pos]) + if idx.keyCount == 0 { + return idx, nil + } + idx.bytesPerRec = int(idx.data[pos]) + pos += 1 + + //p := (*[]byte)(unsafe.Pointer(&idx.data[pos])) + //l := int(idx.keyCount)*idx.bytesPerRec + (16 * int(idx.keyCount)) + + idx.getter = kv.MakeGetter() + + idx.dataoffset = uint64(pos) + idx.alloc = newBtAlloc(idx.keyCount, M, false) + if idx.alloc != nil { + idx.alloc.dataLookup = idx.dataLookup + idx.alloc.traverseDfs() + defer idx.decompressor.EnableReadAhead().DisableReadAhead() + idx.alloc.fillSearchMx() + } + return idx, nil +} + +func OpenBtreeIndex(indexPath, dataPath string, M uint64) (*BtIndex, error) { + s, err := os.Stat(indexPath) + if err != nil { + return nil, err + } + + idx := &BtIndex{ + filePath: indexPath, + size: s.Size(), + modTime: s.ModTime(), + auxBuf: make([]byte, 64), + } + + idx.file, err = os.Open(indexPath) + if err != nil { + return nil, err + } + + idx.m, err = mmap.MapRegion(idx.file, int(idx.size), mmap.RDONLY, 0, 0) + if err != nil { + return nil, err + } + idx.data = idx.m[:idx.size] + + // Read number of keys and bytes per record + pos := 8 + idx.keyCount = binary.BigEndian.Uint64(idx.data[:pos]) + idx.bytesPerRec = int(idx.data[pos]) + pos += 1 + + // offset := int(idx.keyCount) * idx.bytesPerRec //+ (idx.keySize * int(idx.keyCount)) + // if offset < 0 { + // return nil, fmt.Errorf("offset is: %d which is below zero, the file: %s is broken", offset, indexPath) + // } + + //p := (*[]byte)(unsafe.Pointer(&idx.data[pos])) + //l := int(idx.keyCount)*idx.bytesPerRec + (16 * int(idx.keyCount)) + + idx.decompressor, err = compress.NewDecompressor(dataPath) + if err != nil { + idx.Close() + return nil, err + } + idx.getter = idx.decompressor.MakeGetter() + + idx.dataoffset = uint64(pos) + idx.alloc = newBtAlloc(idx.keyCount, M, false) + if idx.alloc != nil { + idx.alloc.dataLookup = idx.dataLookup + idx.alloc.traverseDfs() + defer idx.decompressor.EnableReadAhead().DisableReadAhead() + idx.alloc.fillSearchMx() + } + return idx, nil +} + +var ErrBtIndexLookupBounds = errors.New("BtIndex: lookup di bounds error") + +// dataLookup fetches key and value from data file by di (data index) +// di starts from 0 so di is never >= keyCount +func (b *BtIndex) dataLookup(di uint64) ([]byte, []byte, error) { + if di >= b.keyCount { + return nil, nil, fmt.Errorf("%w: keyCount=%d, item %d requested. file: %s", ErrBtIndexLookupBounds, b.keyCount, di+1, b.FileName()) + } + p := int(b.dataoffset) + int(di)*b.bytesPerRec + if len(b.data) < p+b.bytesPerRec { + return nil, nil, fmt.Errorf("data lookup gone too far (%d after %d). keyCount=%d, requesed item %d. file: %s", p+b.bytesPerRec-len(b.data), len(b.data), b.keyCount, di, b.FileName()) + } + + var aux [8]byte + dst := aux[8-b.bytesPerRec:] + copy(dst, b.data[p:p+b.bytesPerRec]) + + offset := binary.BigEndian.Uint64(aux[:]) + b.getter.Reset(offset) + if !b.getter.HasNext() { + return nil, nil, fmt.Errorf("pair %d not found. keyCount=%d. file: %s", di, b.keyCount, b.FileName()) + } + + key, kp := b.getter.Next(nil) + + if !b.getter.HasNext() { + return nil, nil, fmt.Errorf("pair %d not found. keyCount=%d. file: %s", di, b.keyCount, b.FileName()) + } + val, vp := b.getter.Next(nil) + _, _ = kp, vp + return key, val, nil +} + +func (b *BtIndex) Size() int64 { return b.size } + +func (b *BtIndex) ModTime() time.Time { return b.modTime } + +func (b *BtIndex) FilePath() string { return b.filePath } + +func (b *BtIndex) FileName() string { return path.Base(b.filePath) } + +func (b *BtIndex) Empty() bool { return b == nil || b.keyCount == 0 } + +func (b *BtIndex) KeyCount() uint64 { return b.keyCount } + +func (b *BtIndex) Close() { + if b == nil { + return + } + if b.file != nil { + if err := b.m.Unmap(); err != nil { + log.Log(dbg.FileCloseLogLevel, "unmap", "err", err, "file", b.FileName(), "stack", dbg.Stack()) + } + b.m = nil + if err := b.file.Close(); err != nil { + log.Log(dbg.FileCloseLogLevel, "close", "err", err, "file", b.FileName(), "stack", dbg.Stack()) + } + b.file = nil + } + if b.decompressor != nil { + b.decompressor.Close() + b.decompressor = nil + } +} + +func (b *BtIndex) Seek(x []byte) (*Cursor, error) { + if b.alloc == nil { + return nil, nil + } + cursor, err := b.alloc.Seek(x) + if err != nil { + return nil, fmt.Errorf("seek key %x: %w", x, err) + } + // cursor could be nil along with err if nothing found + return cursor, nil +} + +// deprecated +func (b *BtIndex) Lookup(key []byte) uint64 { + if b.alloc == nil { + return 0 + } + cursor, err := b.alloc.Seek(key) + if err != nil { + panic(err) + } + return binary.BigEndian.Uint64(cursor.value) +} + +func (b *BtIndex) OrdinalLookup(i uint64) *Cursor { + if b.alloc == nil { + return nil + } + if i > b.alloc.K { + return nil + } + k, v, err := b.dataLookup(i) + if err != nil { + return nil + } + + return &Cursor{ + key: k, value: v, d: i, ix: b.alloc, + } +} diff --git a/erigon-lib/state/domain.go b/erigon-lib/state/domain.go new file mode 100644 index 00000000000..93dfd13082b --- /dev/null +++ b/erigon-lib/state/domain.go @@ -0,0 +1,1574 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "bytes" + "container/heap" + "context" + "encoding/binary" + "fmt" + "math" + "os" + "path/filepath" + "regexp" + "strconv" + "strings" + "sync/atomic" + "time" + + "github.com/RoaringBitmap/roaring/roaring64" + "github.com/ledgerwatch/log/v3" + btree2 "github.com/tidwall/btree" + "golang.org/x/sync/errgroup" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" + "github.com/ledgerwatch/erigon-lib/recsplit" +) + +// filesItem corresponding to a pair of files (.dat and .idx) +type filesItem struct { + decompressor *compress.Decompressor + index *recsplit.Index + bindex *BtIndex + startTxNum uint64 + endTxNum uint64 + + // Frozen: file of size StepsInBiggestFile. Completely immutable. + // Cold: file of size < StepsInBiggestFile. Immutable, but can be closed/removed after merge to bigger file. + // Hot: Stored in DB. Providing Snapshot-Isolation by CopyOnWrite. + frozen bool // immutable, don't need atomic + refcount atomic.Int32 // only for `frozen=false` + + // file can be deleted in 2 cases: 1. when `refcount == 0 && canDelete == true` 2. on app startup when `file.isSubsetOfFrozenFile()` + // other processes (which also reading files, may have same logic) + canDelete atomic.Bool +} + +func newFilesItem(startTxNum, endTxNum uint64, stepSize uint64) *filesItem { + startStep := startTxNum / stepSize + endStep := endTxNum / stepSize + frozen := endStep-startStep == StepsInBiggestFile + return &filesItem{startTxNum: startTxNum, endTxNum: endTxNum, frozen: frozen} +} + +func (i *filesItem) isSubsetOf(j *filesItem) bool { + return (j.startTxNum <= i.startTxNum && i.endTxNum <= j.endTxNum) && (j.startTxNum != i.startTxNum || i.endTxNum != j.endTxNum) +} + +func filesItemLess(i, j *filesItem) bool { + if i.endTxNum == j.endTxNum { + return i.startTxNum > j.startTxNum + } + return i.endTxNum < j.endTxNum +} +func (i *filesItem) closeFilesAndRemove() { + if i.decompressor != nil { + i.decompressor.Close() + // paranoic-mode on: don't delete frozen files + if !i.frozen { + if err := os.Remove(i.decompressor.FilePath()); err != nil { + log.Trace("close", "err", err, "file", i.decompressor.FileName()) + } + } + i.decompressor = nil + } + if i.index != nil { + i.index.Close() + // paranoic-mode on: don't delete frozen files + if !i.frozen { + if err := os.Remove(i.index.FilePath()); err != nil { + log.Trace("close", "err", err, "file", i.index.FileName()) + } + } + i.index = nil + } + if i.bindex != nil { + i.bindex.Close() + if err := os.Remove(i.bindex.FilePath()); err != nil { + log.Trace("close", "err", err, "file", i.bindex.FileName()) + } + i.bindex = nil + } +} + +type DomainStats struct { + MergesCount uint64 + LastCollationTook time.Duration + LastPruneTook time.Duration + LastPruneHistTook time.Duration + LastFileBuildingTook time.Duration + LastCollationSize uint64 + LastPruneSize uint64 + + HistoryQueries *atomic.Uint64 + TotalQueries *atomic.Uint64 + EfSearchTime time.Duration + DataSize uint64 + IndexSize uint64 + FilesCount uint64 +} + +func (ds *DomainStats) Accumulate(other DomainStats) { + ds.HistoryQueries.Add(other.HistoryQueries.Load()) + ds.TotalQueries.Add(other.TotalQueries.Load()) + ds.EfSearchTime += other.EfSearchTime + ds.IndexSize += other.IndexSize + ds.DataSize += other.DataSize + ds.FilesCount += other.FilesCount +} + +// Domain is a part of the state (examples are Accounts, Storage, Code) +// Domain should not have any go routines or locks +type Domain struct { + /* + not large: + keys: key -> ^step + vals: key -> ^step+value (DupSort) + large: + keys: key -> ^step + vals: key + ^step -> value + */ + + *History + files *btree2.BTreeG[*filesItem] // thread-safe, but maybe need 1 RWLock for all trees in AggregatorV3 + // roFiles derivative from field `file`, but without garbage (canDelete=true, overlaps, etc...) + // MakeContext() using this field in zero-copy way + roFiles atomic.Pointer[[]ctxItem] + defaultDc *DomainContext + keysTable string // key -> invertedStep , invertedStep = ^(txNum / aggregationStep), Needs to be table with DupSort + valsTable string // key + invertedStep -> values + stats DomainStats + mergesCount uint64 + + garbageFiles []*filesItem // files that exist on disk, but ignored on opening folder - because they are garbage + logger log.Logger +} + +func NewDomain(dir, tmpdir string, aggregationStep uint64, + filenameBase, keysTable, valsTable, indexKeysTable, historyValsTable, indexTable string, + compressVals, largeValues bool, logger log.Logger) (*Domain, error) { + d := &Domain{ + keysTable: keysTable, + valsTable: valsTable, + files: btree2.NewBTreeGOptions[*filesItem](filesItemLess, btree2.Options{Degree: 128, NoLocks: false}), + stats: DomainStats{HistoryQueries: &atomic.Uint64{}, TotalQueries: &atomic.Uint64{}}, + logger: logger, + } + d.roFiles.Store(&[]ctxItem{}) + + var err error + if d.History, err = NewHistory(dir, tmpdir, aggregationStep, filenameBase, indexKeysTable, indexTable, historyValsTable, compressVals, []string{"kv"}, largeValues, logger); err != nil { + return nil, err + } + + return d, nil +} + +// LastStepInDB - return the latest available step in db (at-least 1 value in such step) +func (d *Domain) LastStepInDB(tx kv.Tx) (lstInDb uint64) { + lst, _ := kv.FirstKey(tx, d.valsTable) + if len(lst) > 0 { + lstInDb = ^binary.BigEndian.Uint64(lst[len(lst)-8:]) + } + return lstInDb +} + +func (d *Domain) StartWrites() { + d.defaultDc = d.MakeContext() + d.History.StartWrites() +} + +func (d *Domain) FinishWrites() { + d.defaultDc.Close() + d.History.FinishWrites() +} + +// OpenList - main method to open list of files. +// It's ok if some files was open earlier. +// If some file already open: noop. +// If some file already open but not in provided list: close and remove from `files` field. +func (d *Domain) OpenList(fNames []string) error { + if err := d.History.OpenList(fNames); err != nil { + return err + } + return d.openList(fNames) +} + +func (d *Domain) openList(fNames []string) error { + d.closeWhatNotInList(fNames) + d.garbageFiles = d.scanStateFiles(fNames) + if err := d.openFiles(); err != nil { + return fmt.Errorf("History.OpenList: %s, %w", d.filenameBase, err) + } + return nil +} + +func (d *Domain) OpenFolder() error { + files, err := d.fileNamesOnDisk() + if err != nil { + return err + } + return d.OpenList(files) +} + +func (d *Domain) GetAndResetStats() DomainStats { + r := d.stats + r.DataSize, r.IndexSize, r.FilesCount = d.collectFilesStats() + + d.stats = DomainStats{} + return r +} + +func (d *Domain) scanStateFiles(fileNames []string) (garbageFiles []*filesItem) { + re := regexp.MustCompile("^" + d.filenameBase + ".([0-9]+)-([0-9]+).kv$") + var err error +Loop: + for _, name := range fileNames { + subs := re.FindStringSubmatch(name) + if len(subs) != 3 { + if len(subs) != 0 { + d.logger.Warn("File ignored by domain scan, more than 3 submatches", "name", name, "submatches", len(subs)) + } + continue + } + var startStep, endStep uint64 + if startStep, err = strconv.ParseUint(subs[1], 10, 64); err != nil { + d.logger.Warn("File ignored by domain scan, parsing startTxNum", "error", err, "name", name) + continue + } + if endStep, err = strconv.ParseUint(subs[2], 10, 64); err != nil { + d.logger.Warn("File ignored by domain scan, parsing endTxNum", "error", err, "name", name) + continue + } + if startStep > endStep { + d.logger.Warn("File ignored by domain scan, startTxNum > endTxNum", "name", name) + continue + } + + startTxNum, endTxNum := startStep*d.aggregationStep, endStep*d.aggregationStep + var newFile = newFilesItem(startTxNum, endTxNum, d.aggregationStep) + + for _, ext := range d.integrityFileExtensions { + requiredFile := fmt.Sprintf("%s.%d-%d.%s", d.filenameBase, startStep, endStep, ext) + if !dir.FileExist(filepath.Join(d.dir, requiredFile)) { + d.logger.Debug(fmt.Sprintf("[snapshots] skip %s because %s doesn't exists", name, requiredFile)) + garbageFiles = append(garbageFiles, newFile) + continue Loop + } + } + + if _, has := d.files.Get(newFile); has { + continue + } + + addNewFile := true + var subSets []*filesItem + d.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.isSubsetOf(newFile) { + subSets = append(subSets, item) + continue + } + + if newFile.isSubsetOf(item) { + if item.frozen { + addNewFile = false + garbageFiles = append(garbageFiles, newFile) + } + continue + } + } + return true + }) + if addNewFile { + d.files.Set(newFile) + } + } + return garbageFiles +} + +func (d *Domain) openFiles() (err error) { + var totalKeys uint64 + + invalidFileItems := make([]*filesItem, 0) + d.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.decompressor != nil { + continue + } + fromStep, toStep := item.startTxNum/d.aggregationStep, item.endTxNum/d.aggregationStep + datPath := filepath.Join(d.dir, fmt.Sprintf("%s.%d-%d.kv", d.filenameBase, fromStep, toStep)) + if !dir.FileExist(datPath) { + invalidFileItems = append(invalidFileItems, item) + continue + } + if item.decompressor, err = compress.NewDecompressor(datPath); err != nil { + return false + } + + if item.index != nil { + continue + } + idxPath := filepath.Join(d.dir, fmt.Sprintf("%s.%d-%d.kvi", d.filenameBase, fromStep, toStep)) + if dir.FileExist(idxPath) { + if item.index, err = recsplit.OpenIndex(idxPath); err != nil { + d.logger.Debug("InvertedIndex.openFiles: %w, %s", err, idxPath) + return false + } + totalKeys += item.index.KeyCount() + } + if item.bindex == nil { + bidxPath := filepath.Join(d.dir, fmt.Sprintf("%s.%d-%d.bt", d.filenameBase, fromStep, toStep)) + if item.bindex, err = OpenBtreeIndexWithDecompressor(bidxPath, 2048, item.decompressor); err != nil { + d.logger.Debug("InvertedIndex.openFiles: %w, %s", err, bidxPath) + return false + } + //totalKeys += item.bindex.KeyCount() + } + } + return true + }) + if err != nil { + return err + } + for _, item := range invalidFileItems { + d.files.Delete(item) + } + + d.reCalcRoFiles() + return nil +} + +func (d *Domain) closeWhatNotInList(fNames []string) { + var toDelete []*filesItem + d.files.Walk(func(items []*filesItem) bool { + Loop1: + for _, item := range items { + for _, protectName := range fNames { + if item.decompressor != nil && item.decompressor.FileName() == protectName { + continue Loop1 + } + } + toDelete = append(toDelete, item) + } + return true + }) + for _, item := range toDelete { + if item.decompressor != nil { + item.decompressor.Close() + item.decompressor = nil + } + if item.index != nil { + item.index.Close() + item.index = nil + } + if item.bindex != nil { + item.bindex.Close() + item.bindex = nil + } + d.files.Delete(item) + } +} + +func (d *Domain) reCalcRoFiles() { + roFiles := ctxFiles(d.files) + d.roFiles.Store(&roFiles) +} + +func (d *Domain) Close() { + d.History.Close() + d.closeWhatNotInList([]string{}) + d.reCalcRoFiles() +} + +func (dc *DomainContext) get(key []byte, fromTxNum uint64, roTx kv.Tx) ([]byte, bool, error) { + //var invertedStep [8]byte + dc.d.stats.TotalQueries.Add(1) + + invertedStep := dc.numBuf + binary.BigEndian.PutUint64(invertedStep[:], ^(fromTxNum / dc.d.aggregationStep)) + keyCursor, err := roTx.CursorDupSort(dc.d.keysTable) + if err != nil { + return nil, false, err + } + defer keyCursor.Close() + foundInvStep, err := keyCursor.SeekBothRange(key, invertedStep[:]) + if err != nil { + return nil, false, err + } + if len(foundInvStep) == 0 { + dc.d.stats.HistoryQueries.Add(1) + return dc.readFromFiles(key, fromTxNum) + } + //keySuffix := make([]byte, len(key)+8) + copy(dc.keyBuf[:], key) + copy(dc.keyBuf[len(key):], foundInvStep) + v, err := roTx.GetOne(dc.d.valsTable, dc.keyBuf[:len(key)+8]) + if err != nil { + return nil, false, err + } + return v, true, nil +} + +func (dc *DomainContext) Get(key1, key2 []byte, roTx kv.Tx) ([]byte, error) { + //key := make([]byte, len(key1)+len(key2)) + copy(dc.keyBuf[:], key1) + copy(dc.keyBuf[len(key1):], key2) + // keys larger than 52 bytes will panic + v, _, err := dc.get(dc.keyBuf[:len(key1)+len(key2)], dc.d.txNum, roTx) + return v, err +} + +func (d *Domain) update(key, original []byte) error { + var invertedStep [8]byte + binary.BigEndian.PutUint64(invertedStep[:], ^(d.txNum / d.aggregationStep)) + if err := d.tx.Put(d.keysTable, key, invertedStep[:]); err != nil { + return err + } + return nil +} + +func (d *Domain) Put(key1, key2, val []byte) error { + key := make([]byte, len(key1)+len(key2)) + copy(key, key1) + copy(key[len(key1):], key2) + original, _, err := d.defaultDc.get(key, d.txNum, d.tx) + if err != nil { + return err + } + if bytes.Equal(original, val) { + return nil + } + // This call to update needs to happen before d.tx.Put() later, because otherwise the content of `original`` slice is invalidated + if err = d.History.AddPrevValue(key1, key2, original); err != nil { + return err + } + if err = d.update(key, original); err != nil { + return err + } + invertedStep := ^(d.txNum / d.aggregationStep) + keySuffix := make([]byte, len(key)+8) + copy(keySuffix, key) + binary.BigEndian.PutUint64(keySuffix[len(key):], invertedStep) + if err = d.tx.Put(d.valsTable, keySuffix, val); err != nil { + return err + } + return nil +} + +func (d *Domain) Delete(key1, key2 []byte) error { + key := make([]byte, len(key1)+len(key2)) + copy(key, key1) + copy(key[len(key1):], key2) + original, found, err := d.defaultDc.get(key, d.txNum, d.tx) + if err != nil { + return err + } + if !found { + return nil + } + // This call to update needs to happen before d.tx.Delete() later, because otherwise the content of `original`` slice is invalidated + if err = d.History.AddPrevValue(key1, key2, original); err != nil { + return err + } + if err = d.update(key, original); err != nil { + return err + } + invertedStep := ^(d.txNum / d.aggregationStep) + keySuffix := make([]byte, len(key)+8) + copy(keySuffix, key) + binary.BigEndian.PutUint64(keySuffix[len(key):], invertedStep) + if err = d.tx.Delete(d.valsTable, keySuffix); err != nil { + return err + } + return nil +} + +type CursorType uint8 + +const ( + FILE_CURSOR CursorType = iota + DB_CURSOR +) + +// CursorItem is the item in the priority queue used to do merge interation +// over storage of a given account +type CursorItem struct { + c kv.CursorDupSort + dg *compress.Getter + dg2 *compress.Getter + key []byte + val []byte + endTxNum uint64 + t CursorType // Whether this item represents state file or DB record, or tree + reverse bool +} + +type CursorHeap []*CursorItem + +func (ch CursorHeap) Len() int { + return len(ch) +} + +func (ch CursorHeap) Less(i, j int) bool { + cmp := bytes.Compare(ch[i].key, ch[j].key) + if cmp == 0 { + // when keys match, the items with later blocks are preferred + if ch[i].reverse { + return ch[i].endTxNum > ch[j].endTxNum + } + return ch[i].endTxNum < ch[j].endTxNum + } + return cmp < 0 +} + +func (ch *CursorHeap) Swap(i, j int) { + (*ch)[i], (*ch)[j] = (*ch)[j], (*ch)[i] +} + +func (ch *CursorHeap) Push(x interface{}) { + *ch = append(*ch, x.(*CursorItem)) +} + +func (ch *CursorHeap) Pop() interface{} { + old := *ch + n := len(old) + x := old[n-1] + old[n-1] = nil + *ch = old[0 : n-1] + return x +} + +// filesItem corresponding to a pair of files (.dat and .idx) +type ctxItem struct { + getter *compress.Getter + reader *recsplit.IndexReader + startTxNum uint64 + endTxNum uint64 + + i int + src *filesItem +} + +type ctxLocalityIdx struct { + reader *recsplit.IndexReader + bm *bitmapdb.FixedSizeBitmaps + file *ctxItem +} + +func ctxItemLess(i, j ctxItem) bool { //nolint + if i.endTxNum == j.endTxNum { + return i.startTxNum > j.startTxNum + } + return i.endTxNum < j.endTxNum +} + +// DomainContext allows accesing the same domain from multiple go-routines +type DomainContext struct { + d *Domain + files []ctxItem + getters []*compress.Getter + readers []*BtIndex + hc *HistoryContext + keyBuf [60]byte // 52b key and 8b for inverted step + numBuf [8]byte +} + +func (dc *DomainContext) statelessGetter(i int) *compress.Getter { + if dc.getters == nil { + dc.getters = make([]*compress.Getter, len(dc.files)) + } + r := dc.getters[i] + if r == nil { + r = dc.files[i].src.decompressor.MakeGetter() + dc.getters[i] = r + } + return r +} + +func (dc *DomainContext) statelessBtree(i int) *BtIndex { + if dc.readers == nil { + dc.readers = make([]*BtIndex, len(dc.files)) + } + r := dc.readers[i] + if r == nil { + r = dc.files[i].src.bindex + dc.readers[i] = r + } + return r +} + +func (d *Domain) collectFilesStats() (datsz, idxsz, files uint64) { + d.History.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.index == nil { + return false + } + datsz += uint64(item.decompressor.Size()) + idxsz += uint64(item.index.Size()) + files += 2 + } + return true + }) + + d.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.index == nil { + return false + } + datsz += uint64(item.decompressor.Size()) + idxsz += uint64(item.index.Size()) + idxsz += uint64(item.bindex.Size()) + files += 3 + } + return true + }) + + fcnt, fsz, isz := d.History.InvertedIndex.collectFilesStat() + datsz += fsz + files += fcnt + idxsz += isz + return +} + +func (d *Domain) MakeContext() *DomainContext { + dc := &DomainContext{ + d: d, + hc: d.History.MakeContext(), + files: *d.roFiles.Load(), + } + for _, item := range dc.files { + if !item.src.frozen { + item.src.refcount.Add(1) + } + } + + return dc +} + +// Collation is the set of compressors created after aggregation +type Collation struct { + valuesComp *compress.Compressor + historyComp *compress.Compressor + indexBitmaps map[string]*roaring64.Bitmap + valuesPath string + historyPath string + valuesCount int + historyCount int +} + +func (c Collation) Close() { + if c.valuesComp != nil { + c.valuesComp.Close() + } + if c.historyComp != nil { + c.historyComp.Close() + } +} + +type kvpair struct { + k, v []byte +} + +func (d *Domain) writeCollationPair(valuesComp *compress.Compressor, pairs chan kvpair) (count int, err error) { + for kv := range pairs { + if err = valuesComp.AddUncompressedWord(kv.k); err != nil { + return count, fmt.Errorf("add %s values key [%x]: %w", d.filenameBase, kv.k, err) + } + mxCollationSize.Inc() + count++ // Only counting keys, not values + if err = valuesComp.AddUncompressedWord(kv.v); err != nil { + return count, fmt.Errorf("add %s values val [%x]=>[%x]: %w", d.filenameBase, kv.k, kv.v, err) + } + } + return count, nil +} + +// nolint +func (d *Domain) aggregate(ctx context.Context, step uint64, txFrom, txTo uint64, tx kv.Tx, ps *background.ProgressSet) (err error) { + mxRunningCollations.Inc() + start := time.Now() + collation, err := d.collateStream(ctx, step, txFrom, txTo, tx) + mxRunningCollations.Dec() + mxCollateTook.ObserveDuration(start) + + mxCollationSize.SetInt(collation.valuesComp.Count()) + mxCollationSizeHist.SetInt(collation.historyComp.Count()) + + if err != nil { + collation.Close() + //return fmt.Errorf("domain collation %q has failed: %w", d.filenameBase, err) + return err + } + + mxRunningMerges.Inc() + + start = time.Now() + sf, err := d.buildFiles(ctx, step, collation, ps) + collation.Close() + defer sf.Close() + + if err != nil { + sf.Close() + mxRunningMerges.Dec() + return + } + + mxRunningMerges.Dec() + + d.integrateFiles(sf, step*d.aggregationStep, (step+1)*d.aggregationStep) + d.stats.LastFileBuildingTook = time.Since(start) + return nil +} + +// collate gathers domain changes over the specified step, using read-only transaction, +// and returns compressors, elias fano, and bitmaps +// [txFrom; txTo) +func (d *Domain) collateStream(ctx context.Context, step, txFrom, txTo uint64, roTx kv.Tx) (Collation, error) { + started := time.Now() + defer func() { + d.stats.LastCollationTook = time.Since(started) + }() + + hCollation, err := d.History.collate(step, txFrom, txTo, roTx) + if err != nil { + return Collation{}, err + } + + var valuesComp *compress.Compressor + closeComp := true + defer func() { + if closeComp { + if valuesComp != nil { + valuesComp.Close() + } + } + }() + + valuesPath := filepath.Join(d.dir, fmt.Sprintf("%s.%d-%d.kv", d.filenameBase, step, step+1)) + if valuesComp, err = compress.NewCompressor(context.Background(), "collate values", valuesPath, d.tmpdir, compress.MinPatternScore, 1, log.LvlTrace, d.logger); err != nil { + return Collation{}, fmt.Errorf("create %s values compressor: %w", d.filenameBase, err) + } + + keysCursor, err := roTx.CursorDupSort(d.keysTable) + if err != nil { + return Collation{}, fmt.Errorf("create %s keys cursor: %w", d.filenameBase, err) + } + defer keysCursor.Close() + + var ( + k, v []byte + pos uint64 + valCount int + pairs = make(chan kvpair, 1024) + ) + + //totalKeys, err := keysCursor.Count() + //if err != nil { + // return Collation{}, fmt.Errorf("failed to obtain keys count for domain %q", d.filenameBase) + //} + + eg, _ := errgroup.WithContext(ctx) + eg.Go(func() error { + valCount, err = d.writeCollationPair(valuesComp, pairs) + return err + }) + + var ( + stepBytes = make([]byte, 8) + keySuffix = make([]byte, 256+8) + ) + binary.BigEndian.PutUint64(stepBytes, ^step) + + for k, _, err = keysCursor.First(); err == nil && k != nil; k, _, err = keysCursor.NextNoDup() { + pos++ + + if v, err = keysCursor.LastDup(); err != nil { + return Collation{}, fmt.Errorf("find last %s key for aggregation step k=[%x]: %w", d.filenameBase, k, err) + } + if bytes.Equal(v, stepBytes) { + copy(keySuffix, k) + copy(keySuffix[len(k):], v) + ks := len(k) + len(v) + + v, err := roTx.GetOne(d.valsTable, keySuffix[:ks]) + if err != nil { + return Collation{}, fmt.Errorf("find last %s value for aggregation step k=[%x]: %w", d.filenameBase, k, err) + } + + select { + case <-ctx.Done(): + return Collation{}, ctx.Err() + default: + } + + pairs <- kvpair{k: k, v: v} + } + } + close(pairs) + if err != nil { + return Collation{}, fmt.Errorf("iterate over %s keys cursor: %w", d.filenameBase, err) + } + + if err := eg.Wait(); err != nil { + return Collation{}, fmt.Errorf("collate over %s keys cursor: %w", d.filenameBase, err) + } + + closeComp = false + return Collation{ + valuesPath: valuesPath, + valuesComp: valuesComp, + valuesCount: valCount, + historyPath: hCollation.historyPath, + historyComp: hCollation.historyComp, + historyCount: hCollation.historyCount, + indexBitmaps: hCollation.indexBitmaps, + }, nil +} + +// collate gathers domain changes over the specified step, using read-only transaction, +// and returns compressors, elias fano, and bitmaps +// [txFrom; txTo) +func (d *Domain) collate(ctx context.Context, step, txFrom, txTo uint64, roTx kv.Tx, logEvery *time.Ticker) (Collation, error) { + started := time.Now() + defer func() { + d.stats.LastCollationTook = time.Since(started) + }() + + hCollation, err := d.History.collate(step, txFrom, txTo, roTx) + if err != nil { + return Collation{}, err + } + var valuesComp *compress.Compressor + closeComp := true + defer func() { + if closeComp { + hCollation.Close() + if valuesComp != nil { + valuesComp.Close() + } + } + }() + valuesPath := filepath.Join(d.dir, fmt.Sprintf("%s.%d-%d.kv", d.filenameBase, step, step+1)) + if valuesComp, err = compress.NewCompressor(context.Background(), "collate values", valuesPath, d.tmpdir, compress.MinPatternScore, 1, log.LvlTrace, d.logger); err != nil { + return Collation{}, fmt.Errorf("create %s values compressor: %w", d.filenameBase, err) + } + keysCursor, err := roTx.CursorDupSort(d.keysTable) + if err != nil { + return Collation{}, fmt.Errorf("create %s keys cursor: %w", d.filenameBase, err) + } + defer keysCursor.Close() + + var ( + k, v []byte + pos uint64 + valuesCount uint + ) + + //TODO: use prorgesSet + //totalKeys, err := keysCursor.Count() + //if err != nil { + // return Collation{}, fmt.Errorf("failed to obtain keys count for domain %q", d.filenameBase) + //} + for k, _, err = keysCursor.First(); err == nil && k != nil; k, _, err = keysCursor.NextNoDup() { + if err != nil { + return Collation{}, err + } + pos++ + select { + case <-ctx.Done(): + d.logger.Warn("[snapshots] collate domain cancelled", "name", d.filenameBase, "err", ctx.Err()) + return Collation{}, ctx.Err() + default: + } + + if v, err = keysCursor.LastDup(); err != nil { + return Collation{}, fmt.Errorf("find last %s key for aggregation step k=[%x]: %w", d.filenameBase, k, err) + } + s := ^binary.BigEndian.Uint64(v) + if s == step { + keySuffix := make([]byte, len(k)+8) + copy(keySuffix, k) + copy(keySuffix[len(k):], v) + v, err := roTx.GetOne(d.valsTable, keySuffix) + if err != nil { + return Collation{}, fmt.Errorf("find last %s value for aggregation step k=[%x]: %w", d.filenameBase, k, err) + } + if err = valuesComp.AddUncompressedWord(k); err != nil { + return Collation{}, fmt.Errorf("add %s values key [%x]: %w", d.filenameBase, k, err) + } + valuesCount++ // Only counting keys, not values + if err = valuesComp.AddUncompressedWord(v); err != nil { + return Collation{}, fmt.Errorf("add %s values val [%x]=>[%x]: %w", d.filenameBase, k, v, err) + } + } + } + if err != nil { + return Collation{}, fmt.Errorf("iterate over %s keys cursor: %w", d.filenameBase, err) + } + closeComp = false + return Collation{ + valuesPath: valuesPath, + valuesComp: valuesComp, + valuesCount: int(valuesCount), + historyPath: hCollation.historyPath, + historyComp: hCollation.historyComp, + historyCount: hCollation.historyCount, + indexBitmaps: hCollation.indexBitmaps, + }, nil +} + +type StaticFiles struct { + valuesDecomp *compress.Decompressor + valuesIdx *recsplit.Index + valuesBt *BtIndex + historyDecomp *compress.Decompressor + historyIdx *recsplit.Index + efHistoryDecomp *compress.Decompressor + efHistoryIdx *recsplit.Index +} + +func (sf StaticFiles) Close() { + if sf.valuesDecomp != nil { + sf.valuesDecomp.Close() + } + if sf.valuesIdx != nil { + sf.valuesIdx.Close() + } + if sf.valuesBt != nil { + sf.valuesBt.Close() + } + if sf.historyDecomp != nil { + sf.historyDecomp.Close() + } + if sf.historyIdx != nil { + sf.historyIdx.Close() + } + if sf.efHistoryDecomp != nil { + sf.efHistoryDecomp.Close() + } + if sf.efHistoryIdx != nil { + sf.efHistoryIdx.Close() + } +} + +// buildFiles performs potentially resource intensive operations of creating +// static files and their indices +func (d *Domain) buildFiles(ctx context.Context, step uint64, collation Collation, ps *background.ProgressSet) (StaticFiles, error) { + hStaticFiles, err := d.History.buildFiles(ctx, step, HistoryCollation{ + historyPath: collation.historyPath, + historyComp: collation.historyComp, + historyCount: collation.historyCount, + indexBitmaps: collation.indexBitmaps, + }, ps) + if err != nil { + return StaticFiles{}, err + } + valuesComp := collation.valuesComp + var valuesDecomp *compress.Decompressor + var valuesIdx *recsplit.Index + closeComp := true + defer func() { + if closeComp { + hStaticFiles.Close() + if valuesComp != nil { + valuesComp.Close() + } + if valuesDecomp != nil { + valuesDecomp.Close() + } + if valuesIdx != nil { + valuesIdx.Close() + } + } + }() + if d.noFsync { + valuesComp.DisableFsync() + } + if err = valuesComp.Compress(); err != nil { + return StaticFiles{}, fmt.Errorf("compress %s values: %w", d.filenameBase, err) + } + valuesComp.Close() + valuesComp = nil + if valuesDecomp, err = compress.NewDecompressor(collation.valuesPath); err != nil { + return StaticFiles{}, fmt.Errorf("open %s values decompressor: %w", d.filenameBase, err) + } + + valuesIdxFileName := fmt.Sprintf("%s.%d-%d.kvi", d.filenameBase, step, step+1) + valuesIdxPath := filepath.Join(d.dir, valuesIdxFileName) + { + p := ps.AddNew(valuesIdxFileName, uint64(valuesDecomp.Count()*2)) + defer ps.Delete(p) + if valuesIdx, err = buildIndexThenOpen(ctx, valuesDecomp, valuesIdxPath, d.tmpdir, collation.valuesCount, false, p, d.logger, d.noFsync); err != nil { + return StaticFiles{}, fmt.Errorf("build %s values idx: %w", d.filenameBase, err) + } + } + + var bt *BtIndex + { + btFileName := strings.TrimSuffix(valuesIdxFileName, "kvi") + "bt" + btPath := filepath.Join(d.dir, btFileName) + p := ps.AddNew(btFileName, uint64(valuesDecomp.Count()*2)) + defer ps.Delete(p) + bt, err = CreateBtreeIndexWithDecompressor(btPath, DefaultBtreeM, valuesDecomp, p, d.tmpdir, d.logger) + if err != nil { + return StaticFiles{}, fmt.Errorf("build %s values bt idx: %w", d.filenameBase, err) + } + } + + closeComp = false + return StaticFiles{ + valuesDecomp: valuesDecomp, + valuesIdx: valuesIdx, + valuesBt: bt, + historyDecomp: hStaticFiles.historyDecomp, + historyIdx: hStaticFiles.historyIdx, + efHistoryDecomp: hStaticFiles.efHistoryDecomp, + efHistoryIdx: hStaticFiles.efHistoryIdx, + }, nil +} + +func (d *Domain) missedIdxFiles() (l []*filesItem) { + d.files.Walk(func(items []*filesItem) bool { // don't run slow logic while iterating on btree + for _, item := range items { + fromStep, toStep := item.startTxNum/d.aggregationStep, item.endTxNum/d.aggregationStep + if !dir.FileExist(filepath.Join(d.dir, fmt.Sprintf("%s.%d-%d.bt", d.filenameBase, fromStep, toStep))) { + l = append(l, item) + } + } + return true + }) + return l +} + +// BuildMissedIndices - produce .efi/.vi/.kvi from .ef/.v/.kv +func (d *Domain) BuildMissedIndices(ctx context.Context, g *errgroup.Group, ps *background.ProgressSet) (err error) { + d.History.BuildMissedIndices(ctx, g, ps) + d.InvertedIndex.BuildMissedIndices(ctx, g, ps) + for _, item := range d.missedIdxFiles() { + //TODO: build .kvi + fitem := item + g.Go(func() error { + idxPath := filepath.Join(fitem.decompressor.FilePath(), fitem.decompressor.FileName()) + idxPath = strings.TrimSuffix(idxPath, "kv") + "bt" + + p := ps.AddNew("fixme", uint64(fitem.decompressor.Count())) + defer ps.Delete(p) + if err := BuildBtreeIndexWithDecompressor(idxPath, fitem.decompressor, p, d.tmpdir, d.logger); err != nil { + return fmt.Errorf("failed to build btree index for %s: %w", fitem.decompressor.FileName(), err) + } + return nil + }) + } + return nil +} + +func buildIndexThenOpen(ctx context.Context, d *compress.Decompressor, idxPath, tmpdir string, count int, values bool, p *background.Progress, logger log.Logger, noFsync bool) (*recsplit.Index, error) { + if err := buildIndex(ctx, d, idxPath, tmpdir, count, values, p, logger, noFsync); err != nil { + return nil, err + } + return recsplit.OpenIndex(idxPath) +} + +func buildIndex(ctx context.Context, d *compress.Decompressor, idxPath, tmpdir string, count int, values bool, p *background.Progress, logger log.Logger, noFsync bool) error { + var rs *recsplit.RecSplit + var err error + if rs, err = recsplit.NewRecSplit(recsplit.RecSplitArgs{ + KeyCount: count, + Enums: false, + BucketSize: 2000, + LeafSize: 8, + TmpDir: tmpdir, + IndexFile: idxPath, + }, logger); err != nil { + return fmt.Errorf("create recsplit: %w", err) + } + defer rs.Close() + rs.LogLvl(log.LvlTrace) + if noFsync { + rs.DisableFsync() + } + defer d.EnableMadvNormal().DisableReadAhead() + + word := make([]byte, 0, 256) + var keyPos, valPos uint64 + g := d.MakeGetter() + for { + if err := ctx.Err(); err != nil { + logger.Warn("recsplit index building cancelled", "err", err) + return err + } + g.Reset(0) + for g.HasNext() { + word, valPos = g.Next(word[:0]) + if values { + if err = rs.AddKey(word, valPos); err != nil { + return fmt.Errorf("add idx key [%x]: %w", word, err) + } + } else { + if err = rs.AddKey(word, keyPos); err != nil { + return fmt.Errorf("add idx key [%x]: %w", word, err) + } + } + // Skip value + keyPos, _ = g.Skip() + + p.Processed.Add(1) + } + if err = rs.Build(ctx); err != nil { + if rs.Collision() { + logger.Info("Building recsplit. Collision happened. It's ok. Restarting...") + rs.ResetNextSalt() + } else { + return fmt.Errorf("build idx: %w", err) + } + } else { + break + } + } + return nil +} + +func (d *Domain) integrateFiles(sf StaticFiles, txNumFrom, txNumTo uint64) { + d.History.integrateFiles(HistoryFiles{ + historyDecomp: sf.historyDecomp, + historyIdx: sf.historyIdx, + efHistoryDecomp: sf.efHistoryDecomp, + efHistoryIdx: sf.efHistoryIdx, + }, txNumFrom, txNumTo) + + fi := newFilesItem(txNumFrom, txNumTo, d.aggregationStep) + fi.decompressor = sf.valuesDecomp + fi.index = sf.valuesIdx + fi.bindex = sf.valuesBt + d.files.Set(fi) + + d.reCalcRoFiles() +} + +// [txFrom; txTo) +func (d *Domain) prune(ctx context.Context, step uint64, txFrom, txTo, limit uint64, logEvery *time.Ticker) error { + defer func(t time.Time) { d.stats.LastPruneTook = time.Since(t) }(time.Now()) + mxPruningProgress.Inc() + defer mxPruningProgress.Dec() + + var ( + _state = "scan steps" + pos atomic.Uint64 + totalKeys uint64 + ) + + keysCursor, err := d.tx.RwCursorDupSort(d.keysTable) + if err != nil { + return fmt.Errorf("%s keys cursor: %w", d.filenameBase, err) + } + defer keysCursor.Close() + + totalKeys, err = keysCursor.Count() + if err != nil { + return fmt.Errorf("get count of %s keys: %w", d.filenameBase, err) + } + + var ( + k, v, stepBytes []byte + keyMaxSteps = make(map[string]uint64) + c = 0 + ) + stepBytes = make([]byte, 8) + binary.BigEndian.PutUint64(stepBytes, ^step) + + for k, v, err = keysCursor.First(); err == nil && k != nil; k, v, err = keysCursor.Next() { + if bytes.Equal(v, stepBytes) { + c++ + kl, vl, err := keysCursor.PrevDup() + if err != nil { + break + } + if kl == nil && vl == nil { + continue + } + s := ^binary.BigEndian.Uint64(vl) + if s > step { + _, vn, err := keysCursor.NextDup() + if err != nil { + break + } + if bytes.Equal(vn, stepBytes) { + if err := keysCursor.DeleteCurrent(); err != nil { + return fmt.Errorf("prune key %x: %w", k, err) + } + mxPruneSize.Inc() + keyMaxSteps[string(k)] = s + } + } + } + pos.Add(1) + + if ctx.Err() != nil { + d.logger.Warn("[snapshots] prune domain cancelled", "name", d.filenameBase, "err", ctx.Err()) + return ctx.Err() + } + + select { + case <-ctx.Done(): + return ctx.Err() + case <-logEvery.C: + d.logger.Info("[snapshots] prune domain", "name", d.filenameBase, + "stage", _state, + "range", fmt.Sprintf("%.2f-%.2f", float64(txFrom)/float64(d.aggregationStep), float64(txTo)/float64(d.aggregationStep)), + "progress", fmt.Sprintf("%.2f%%", (float64(pos.Load())/float64(totalKeys))*100)) + default: + } + } + if err != nil { + return fmt.Errorf("iterate of %s keys: %w", d.filenameBase, err) + } + + pos.Store(0) + // It is important to clean up tables in a specific order + // First keysTable, because it is the first one access in the `get` function, i.e. if the record is deleted from there, other tables will not be accessed + var valsCursor kv.RwCursor + if valsCursor, err = d.tx.RwCursor(d.valsTable); err != nil { + return fmt.Errorf("%s vals cursor: %w", d.filenameBase, err) + } + defer valsCursor.Close() + + for k, _, err := valsCursor.First(); err == nil && k != nil; k, _, err = valsCursor.Next() { + if bytes.HasSuffix(k, stepBytes) { + if _, ok := keyMaxSteps[string(k)]; !ok { + continue + } + if err := valsCursor.DeleteCurrent(); err != nil { + return fmt.Errorf("prune val %x: %w", k, err) + } + mxPruneSize.Inc() + } + pos.Add(1) + //_prog = 100 * (float64(pos) / float64(totalKeys)) + + select { + case <-ctx.Done(): + return ctx.Err() + case <-logEvery.C: + d.logger.Info("[snapshots] prune domain", "name", d.filenameBase, "step", step) + //"steps", fmt.Sprintf("%.2f-%.2f", float64(txFrom)/float64(d.aggregationStep), float64(txTo)/float64(d.aggregationStep))) + default: + } + } + if err != nil { + return fmt.Errorf("iterate over %s vals: %w", d.filenameBase, err) + } + + defer func(t time.Time) { d.stats.LastPruneHistTook = time.Since(t) }(time.Now()) + + if err = d.History.prune(ctx, txFrom, txTo, limit, logEvery); err != nil { + return fmt.Errorf("prune history at step %d [%d, %d): %w", step, txFrom, txTo, err) + } + return nil +} + +func (d *Domain) isEmpty(tx kv.Tx) (bool, error) { + k, err := kv.FirstKey(tx, d.keysTable) + if err != nil { + return false, err + } + k2, err := kv.FirstKey(tx, d.valsTable) + if err != nil { + return false, err + } + isEmptyHist, err := d.History.isEmpty(tx) + if err != nil { + return false, err + } + return k == nil && k2 == nil && isEmptyHist, nil +} + +// nolint +func (d *Domain) warmup(ctx context.Context, txFrom, limit uint64, tx kv.Tx) error { + domainKeysCursor, err := tx.CursorDupSort(d.keysTable) + if err != nil { + return fmt.Errorf("create %s domain cursor: %w", d.filenameBase, err) + } + defer domainKeysCursor.Close() + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], txFrom) + idxC, err := tx.CursorDupSort(d.keysTable) + if err != nil { + return err + } + defer idxC.Close() + valsC, err := tx.Cursor(d.valsTable) + if err != nil { + return err + } + defer valsC.Close() + k, v, err := domainKeysCursor.Seek(txKey[:]) + if err != nil { + return err + } + if k == nil { + return nil + } + txFrom = binary.BigEndian.Uint64(k) + txTo := txFrom + d.aggregationStep + if limit != math.MaxUint64 && limit != 0 { + txTo = txFrom + limit + } + for ; err == nil && k != nil; k, v, err = domainKeysCursor.Next() { + txNum := binary.BigEndian.Uint64(k) + if txNum >= txTo { + break + } + _, _, _ = valsC.Seek(v[len(v)-8:]) + _, _ = idxC.SeekBothRange(v[:len(v)-8], k) + + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + } + if err != nil { + return fmt.Errorf("iterate over %s domain keys: %w", d.filenameBase, err) + } + + return d.History.warmup(ctx, txFrom, limit, tx) +} + +var COMPARE_INDEXES = false // if true, will compare values from Btree and INvertedIndex + +func (dc *DomainContext) readFromFiles(filekey []byte, fromTxNum uint64) ([]byte, bool, error) { + var val []byte + var found bool + + for i := len(dc.files) - 1; i >= 0; i-- { + if dc.files[i].endTxNum < fromTxNum { + break + } + reader := dc.statelessBtree(i) + if reader.Empty() { + continue + } + cur, err := reader.Seek(filekey) + if err != nil { + //return nil, false, nil //TODO: uncomment me + return nil, false, err + } + if cur == nil { + continue + } + + if bytes.Equal(cur.Key(), filekey) { + val = cur.Value() + found = true + break + } + } + return val, found, nil +} + +// historyBeforeTxNum searches history for a value of specified key before txNum +// second return value is true if the value is found in the history (even if it is nil) +func (dc *DomainContext) historyBeforeTxNum(key []byte, txNum uint64, roTx kv.Tx) ([]byte, bool, error) { + dc.d.stats.HistoryQueries.Add(1) + + v, found, err := dc.hc.GetNoState(key, txNum) + if err != nil { + return nil, false, err + } + if found { + return v, true, nil + } + + var anyItem bool + var topState ctxItem + for _, item := range dc.hc.ic.files { + if item.endTxNum < txNum { + continue + } + anyItem = true + topState = item + break + } + if anyItem { + // If there were no changes but there were history files, the value can be obtained from value files + var val []byte + for i := len(dc.files) - 1; i >= 0; i-- { + if dc.files[i].startTxNum > topState.startTxNum { + continue + } + reader := dc.statelessBtree(i) + if reader.Empty() { + continue + } + cur, err := reader.Seek(key) + if err != nil { + dc.d.logger.Warn("failed to read history before from file", "key", key, "err", err) + return nil, false, err + } + if cur == nil { + continue + } + if bytes.Equal(cur.Key(), key) { + val = cur.Value() + break + } + } + return val, true, nil + } + // Value not found in history files, look in the recent history + if roTx == nil { + return nil, false, fmt.Errorf("roTx is nil") + } + return dc.hc.getNoStateFromDB(key, txNum, roTx) +} + +// GetBeforeTxNum does not always require usage of roTx. If it is possible to determine +// historical value based only on static files, roTx will not be used. +func (dc *DomainContext) GetBeforeTxNum(key []byte, txNum uint64, roTx kv.Tx) ([]byte, error) { + v, hOk, err := dc.historyBeforeTxNum(key, txNum, roTx) + if err != nil { + return nil, err + } + if hOk { + // if history returned marker of key creation + // domain must return nil + if len(v) == 0 { + return nil, nil + } + return v, nil + } + if v, _, err = dc.get(key, txNum-1, roTx); err != nil { + return nil, err + } + return v, nil +} + +func (dc *DomainContext) Close() { + for _, item := range dc.files { + if item.src.frozen { + continue + } + refCnt := item.src.refcount.Add(-1) + //GC: last reader responsible to remove useles files: close it and delete + if refCnt == 0 && item.src.canDelete.Load() { + item.src.closeFilesAndRemove() + } + } + dc.hc.Close() +} + +// IteratePrefix iterates over key-value pairs of the domain that start with given prefix +// Such iteration is not intended to be used in public API, therefore it uses read-write transaction +// inside the domain. Another version of this for public API use needs to be created, that uses +// roTx instead and supports ending the iterations before it reaches the end. +func (dc *DomainContext) IteratePrefix(prefix []byte, it func(k, v []byte)) error { + dc.d.stats.HistoryQueries.Add(1) + + var cp CursorHeap + heap.Init(&cp) + var k, v []byte + var err error + keysCursor, err := dc.d.tx.CursorDupSort(dc.d.keysTable) + if err != nil { + return err + } + defer keysCursor.Close() + if k, v, err = keysCursor.Seek(prefix); err != nil { + return err + } + if bytes.HasPrefix(k, prefix) { + keySuffix := make([]byte, len(k)+8) + copy(keySuffix, k) + copy(keySuffix[len(k):], v) + step := ^binary.BigEndian.Uint64(v) + txNum := step * dc.d.aggregationStep + if v, err = dc.d.tx.GetOne(dc.d.valsTable, keySuffix); err != nil { + return err + } + heap.Push(&cp, &CursorItem{t: DB_CURSOR, key: common.Copy(k), val: common.Copy(v), c: keysCursor, endTxNum: txNum, reverse: true}) + } + + for i, item := range dc.files { + bg := dc.statelessBtree(i) + if bg.Empty() { + continue + } + + cursor, err := bg.Seek(prefix) + if err != nil { + continue + } + + g := dc.statelessGetter(i) + key := cursor.Key() + if bytes.HasPrefix(key, prefix) { + val := cursor.Value() + heap.Push(&cp, &CursorItem{t: FILE_CURSOR, key: key, val: val, dg: g, endTxNum: item.endTxNum, reverse: true}) + } + } + for cp.Len() > 0 { + lastKey := common.Copy(cp[0].key) + lastVal := common.Copy(cp[0].val) + // Advance all the items that have this key (including the top) + for cp.Len() > 0 && bytes.Equal(cp[0].key, lastKey) { + ci1 := cp[0] + switch ci1.t { + case FILE_CURSOR: + if ci1.dg.HasNext() { + ci1.key, _ = ci1.dg.Next(ci1.key[:0]) + if bytes.HasPrefix(ci1.key, prefix) { + ci1.val, _ = ci1.dg.Next(ci1.val[:0]) + heap.Fix(&cp, 0) + } else { + heap.Pop(&cp) + } + } else { + heap.Pop(&cp) + } + case DB_CURSOR: + k, v, err = ci1.c.NextNoDup() + if err != nil { + return err + } + if k != nil && bytes.HasPrefix(k, prefix) { + ci1.key = common.Copy(k) + keySuffix := make([]byte, len(k)+8) + copy(keySuffix, k) + copy(keySuffix[len(k):], v) + if v, err = dc.d.tx.GetOne(dc.d.valsTable, keySuffix); err != nil { + return err + } + ci1.val = common.Copy(v) + heap.Fix(&cp, 0) + } else { + heap.Pop(&cp) + } + } + } + if len(lastVal) > 0 { + it(lastKey, lastVal) + } + } + return nil +} diff --git a/erigon-lib/state/domain_committed.go b/erigon-lib/state/domain_committed.go new file mode 100644 index 00000000000..9c046975c7d --- /dev/null +++ b/erigon-lib/state/domain_committed.go @@ -0,0 +1,718 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "bytes" + "container/heap" + "context" + "encoding/binary" + "fmt" + "hash" + "path/filepath" + "strings" + "time" + + "github.com/google/btree" + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/log/v3" + "golang.org/x/crypto/sha3" + + "github.com/ledgerwatch/erigon-lib/commitment" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/compress" +) + +// Defines how to evaluate commitments +type CommitmentMode uint + +const ( + CommitmentModeDisabled CommitmentMode = 0 + CommitmentModeDirect CommitmentMode = 1 + CommitmentModeUpdate CommitmentMode = 2 +) + +func (m CommitmentMode) String() string { + switch m { + case CommitmentModeDisabled: + return "disabled" + case CommitmentModeDirect: + return "direct" + case CommitmentModeUpdate: + return "update" + default: + return "unknown" + } +} + +func ParseCommitmentMode(s string) CommitmentMode { + var mode CommitmentMode + switch s { + case "off": + mode = CommitmentModeDisabled + case "update": + mode = CommitmentModeUpdate + default: + mode = CommitmentModeDirect + } + return mode +} + +type ValueMerger func(prev, current []byte) (merged []byte, err error) + +type DomainCommitted struct { + *Domain + mode CommitmentMode + trace bool + commTree *btree.BTreeG[*CommitmentItem] + keccak hash.Hash + patriciaTrie commitment.Trie + branchMerger *commitment.BranchMerger + + comKeys uint64 + comTook time.Duration + logger log.Logger +} + +func NewCommittedDomain(d *Domain, mode CommitmentMode, trieVariant commitment.TrieVariant, logger log.Logger) *DomainCommitted { + return &DomainCommitted{ + Domain: d, + patriciaTrie: commitment.InitializeTrie(trieVariant), + commTree: btree.NewG[*CommitmentItem](32, commitmentItemLess), + keccak: sha3.NewLegacyKeccak256(), + mode: mode, + branchMerger: commitment.NewHexBranchMerger(8192), + logger: logger, + } +} + +func (d *DomainCommitted) SetCommitmentMode(m CommitmentMode) { d.mode = m } + +// TouchPlainKey marks plainKey as updated and applies different fn for different key types +// (different behaviour for Code, Account and Storage key modifications). +func (d *DomainCommitted) TouchPlainKey(key, val []byte, fn func(c *CommitmentItem, val []byte)) { + if d.mode == CommitmentModeDisabled { + return + } + c := &CommitmentItem{plainKey: common.Copy(key), hashedKey: d.hashAndNibblizeKey(key)} + if d.mode > CommitmentModeDirect { + fn(c, val) + } + d.commTree.ReplaceOrInsert(c) +} + +func (d *DomainCommitted) TouchPlainKeyAccount(c *CommitmentItem, val []byte) { + if len(val) == 0 { + c.update.Flags = commitment.DeleteUpdate + return + } + c.update.DecodeForStorage(val) + c.update.Flags = commitment.BalanceUpdate | commitment.NonceUpdate + item, found := d.commTree.Get(&CommitmentItem{hashedKey: c.hashedKey}) + if !found { + return + } + if item.update.Flags&commitment.CodeUpdate != 0 { + c.update.Flags |= commitment.CodeUpdate + copy(c.update.CodeHashOrStorage[:], item.update.CodeHashOrStorage[:]) + } +} + +func (d *DomainCommitted) TouchPlainKeyStorage(c *CommitmentItem, val []byte) { + c.update.ValLength = len(val) + if len(val) == 0 { + c.update.Flags = commitment.DeleteUpdate + } else { + c.update.Flags = commitment.StorageUpdate + copy(c.update.CodeHashOrStorage[:], val) + } +} + +func (d *DomainCommitted) TouchPlainKeyCode(c *CommitmentItem, val []byte) { + c.update.Flags = commitment.CodeUpdate + item, found := d.commTree.Get(c) + if !found { + d.keccak.Reset() + d.keccak.Write(val) + copy(c.update.CodeHashOrStorage[:], d.keccak.Sum(nil)) + return + } + if item.update.Flags&commitment.BalanceUpdate != 0 { + c.update.Flags |= commitment.BalanceUpdate + c.update.Balance.Set(&item.update.Balance) + } + if item.update.Flags&commitment.NonceUpdate != 0 { + c.update.Flags |= commitment.NonceUpdate + c.update.Nonce = item.update.Nonce + } + if item.update.Flags == commitment.DeleteUpdate && len(val) == 0 { + c.update.Flags = commitment.DeleteUpdate + } else { + d.keccak.Reset() + d.keccak.Write(val) + copy(c.update.CodeHashOrStorage[:], d.keccak.Sum(nil)) + } +} + +type CommitmentItem struct { + plainKey []byte + hashedKey []byte + update commitment.Update +} + +func commitmentItemLess(i, j *CommitmentItem) bool { + return bytes.Compare(i.hashedKey, j.hashedKey) < 0 +} + +// Returns list of both plain and hashed keys. If .mode is CommitmentModeUpdate, updates also returned. +func (d *DomainCommitted) TouchedKeyList() ([][]byte, [][]byte, []commitment.Update) { + plainKeys := make([][]byte, d.commTree.Len()) + hashedKeys := make([][]byte, d.commTree.Len()) + updates := make([]commitment.Update, d.commTree.Len()) + + j := 0 + d.commTree.Ascend(func(item *CommitmentItem) bool { + plainKeys[j] = item.plainKey + hashedKeys[j] = item.hashedKey + updates[j] = item.update + j++ + return true + }) + + d.commTree.Clear(true) + return plainKeys, hashedKeys, updates +} + +// TODO(awskii): let trie define hashing function +func (d *DomainCommitted) hashAndNibblizeKey(key []byte) []byte { + hashedKey := make([]byte, length.Hash) + + d.keccak.Reset() + d.keccak.Write(key[:length.Addr]) + copy(hashedKey[:length.Hash], d.keccak.Sum(nil)) + + if len(key[length.Addr:]) > 0 { + hashedKey = append(hashedKey, make([]byte, length.Hash)...) + d.keccak.Reset() + d.keccak.Write(key[length.Addr:]) + copy(hashedKey[length.Hash:], d.keccak.Sum(nil)) + } + + nibblized := make([]byte, len(hashedKey)*2) + for i, b := range hashedKey { + nibblized[i*2] = (b >> 4) & 0xf + nibblized[i*2+1] = b & 0xf + } + return nibblized +} + +func (d *DomainCommitted) storeCommitmentState(blockNum, txNum uint64) error { + var state []byte + var err error + + switch trie := (d.patriciaTrie).(type) { + case *commitment.HexPatriciaHashed: + state, err = trie.EncodeCurrentState(nil) + if err != nil { + return err + } + default: + return fmt.Errorf("unsupported state storing for patricia trie type: %T", d.patriciaTrie) + } + cs := &commitmentState{txNum: txNum, trieState: state, blockNum: blockNum} + encoded, err := cs.Encode() + if err != nil { + return err + } + + var stepbuf [2]byte + step := uint16(txNum / d.aggregationStep) + binary.BigEndian.PutUint16(stepbuf[:], step) + if err = d.Domain.Put(keyCommitmentState, stepbuf[:], encoded); err != nil { + return err + } + return nil +} + +// nolint +func (d *DomainCommitted) replaceKeyWithReference(fullKey, shortKey []byte, typeAS string, list ...*filesItem) bool { + numBuf := [2]byte{} + var found bool + for _, item := range list { + //g := item.decompressor.MakeGetter() + //index := recsplit.NewIndexReader(item.index) + + cur, err := item.bindex.Seek(fullKey) + if err != nil { + continue + } + step := uint16(item.endTxNum / d.aggregationStep) + binary.BigEndian.PutUint16(numBuf[:], step) + + shortKey = encodeU64(cur.Ordinal(), numBuf[:]) + + if d.trace { + fmt.Printf("replacing %s [%x] => {%x} [step=%d, offset=%d, file=%s.%d-%d]\n", typeAS, fullKey, shortKey, step, cur.Ordinal(), typeAS, item.startTxNum, item.endTxNum) + } + found = true + break + } + //if !found { + // log.Warn("bt index key replacement seek failed", "key", fmt.Sprintf("%x", fullKey)) + //} + return found +} + +// nolint +func (d *DomainCommitted) lookupShortenedKey(shortKey, fullKey []byte, typAS string, list []*filesItem) bool { + fileStep, offset := shortenedKey(shortKey) + expected := uint64(fileStep) * d.aggregationStep + + var found bool + for _, item := range list { + if item.startTxNum > expected || item.endTxNum < expected { + continue + } + + cur := item.bindex.OrdinalLookup(offset) + //nolint + fullKey = cur.Key() + if d.trace { + fmt.Printf("offsetToKey %s [%x]=>{%x} step=%d offset=%d, file=%s.%d-%d.kv\n", typAS, fullKey, shortKey, fileStep, offset, typAS, item.startTxNum, item.endTxNum) + } + found = true + break + } + return found +} + +// commitmentValTransform parses the value of the commitment record to extract references +// to accounts and storage items, then looks them up in the new, merged files, and replaces them with +// the updated references +func (d *DomainCommitted) commitmentValTransform(files *SelectedStaticFiles, merged *MergedFiles, val commitment.BranchData) ([]byte, error) { + if len(val) == 0 { + return nil, nil + } + accountPlainKeys, storagePlainKeys, err := val.ExtractPlainKeys() + if err != nil { + return nil, err + } + + transAccountPks := make([][]byte, 0, len(accountPlainKeys)) + var apkBuf, spkBuf []byte + for _, accountPlainKey := range accountPlainKeys { + if len(accountPlainKey) == length.Addr { + // Non-optimised key originating from a database record + apkBuf = append(apkBuf[:0], accountPlainKey...) + } else { + f := d.lookupShortenedKey(accountPlainKey, apkBuf, "account", files.accounts) + if !f { + fmt.Printf("lost key %x\n", accountPlainKeys) + } + } + d.replaceKeyWithReference(apkBuf, accountPlainKey, "account", merged.accounts) + transAccountPks = append(transAccountPks, accountPlainKey) + } + + transStoragePks := make([][]byte, 0, len(storagePlainKeys)) + for _, storagePlainKey := range storagePlainKeys { + if len(storagePlainKey) == length.Addr+length.Hash { + // Non-optimised key originating from a database record + spkBuf = append(spkBuf[:0], storagePlainKey...) + } else { + // Optimised key referencing a state file record (file number and offset within the file) + f := d.lookupShortenedKey(storagePlainKey, spkBuf, "storage", files.storage) + if !f { + fmt.Printf("lost skey %x\n", storagePlainKey) + } + } + + d.replaceKeyWithReference(spkBuf, storagePlainKey, "storage", merged.storage) + transStoragePks = append(transStoragePks, storagePlainKey) + } + + transValBuf, err := val.ReplacePlainKeys(transAccountPks, transStoragePks, nil) + if err != nil { + return nil, err + } + return transValBuf, nil +} + +func (d *DomainCommitted) mergeFiles(ctx context.Context, oldFiles SelectedStaticFiles, mergedFiles MergedFiles, r DomainRanges, workers int, ps *background.ProgressSet) (valuesIn, indexIn, historyIn *filesItem, err error) { + if !r.any() { + return + } + + domainFiles := oldFiles.commitment + indexFiles := oldFiles.commitmentIdx + historyFiles := oldFiles.commitmentHist + + var comp *compress.Compressor + var closeItem bool = true + defer func() { + if closeItem { + if comp != nil { + comp.Close() + } + if indexIn != nil { + if indexIn.decompressor != nil { + indexIn.decompressor.Close() + } + if indexIn.index != nil { + indexIn.index.Close() + } + if indexIn.bindex != nil { + indexIn.bindex.Close() + } + } + if historyIn != nil { + if historyIn.decompressor != nil { + historyIn.decompressor.Close() + } + if historyIn.index != nil { + historyIn.index.Close() + } + if historyIn.bindex != nil { + historyIn.bindex.Close() + } + } + if valuesIn != nil { + if valuesIn.decompressor != nil { + valuesIn.decompressor.Close() + } + if valuesIn.index != nil { + valuesIn.index.Close() + } + if valuesIn.bindex != nil { + valuesIn.bindex.Close() + } + } + } + }() + if indexIn, historyIn, err = d.History.mergeFiles(ctx, indexFiles, historyFiles, + HistoryRanges{ + historyStartTxNum: r.historyStartTxNum, + historyEndTxNum: r.historyEndTxNum, + history: r.history, + indexStartTxNum: r.indexStartTxNum, + indexEndTxNum: r.indexEndTxNum, + index: r.index}, workers, ps); err != nil { + return nil, nil, nil, err + } + + if r.values { + datFileName := fmt.Sprintf("%s.%d-%d.kv", d.filenameBase, r.valuesStartTxNum/d.aggregationStep, r.valuesEndTxNum/d.aggregationStep) + datPath := filepath.Join(d.dir, datFileName) + p := ps.AddNew(datFileName, 1) + defer ps.Delete(p) + + if comp, err = compress.NewCompressor(ctx, "merge", datPath, d.dir, compress.MinPatternScore, workers, log.LvlTrace, d.logger); err != nil { + return nil, nil, nil, fmt.Errorf("merge %s compressor: %w", d.filenameBase, err) + } + var cp CursorHeap + heap.Init(&cp) + for _, item := range domainFiles { + g := item.decompressor.MakeGetter() + g.Reset(0) + if g.HasNext() { + key, _ := g.NextUncompressed() + var val []byte + if d.compressVals { + val, _ = g.Next(nil) + } else { + val, _ = g.NextUncompressed() + } + if d.trace { + fmt.Printf("merge: read value '%x'\n", key) + } + heap.Push(&cp, &CursorItem{ + t: FILE_CURSOR, + dg: g, + key: key, + val: val, + endTxNum: item.endTxNum, + reverse: true, + }) + } + } + keyCount := 0 + // In the loop below, the pair `keyBuf=>valBuf` is always 1 item behind `lastKey=>lastVal`. + // `lastKey` and `lastVal` are taken from the top of the multi-way merge (assisted by the CursorHeap cp), but not processed right away + // instead, the pair from the previous iteration is processed first - `keyBuf=>valBuf`. After that, `keyBuf` and `valBuf` are assigned + // to `lastKey` and `lastVal` correspondingly, and the next step of multi-way merge happens. Therefore, after the multi-way merge loop + // (when CursorHeap cp is empty), there is a need to process the last pair `keyBuf=>valBuf`, because it was one step behind + var keyBuf, valBuf []byte + for cp.Len() > 0 { + lastKey := common.Copy(cp[0].key) + lastVal := common.Copy(cp[0].val) + // Advance all the items that have this key (including the top) + for cp.Len() > 0 && bytes.Equal(cp[0].key, lastKey) { + ci1 := cp[0] + if ci1.dg.HasNext() { + ci1.key, _ = ci1.dg.NextUncompressed() + if d.compressVals { + ci1.val, _ = ci1.dg.Next(ci1.val[:0]) + } else { + ci1.val, _ = ci1.dg.NextUncompressed() + } + heap.Fix(&cp, 0) + } else { + heap.Pop(&cp) + } + } + // For the rest of types, empty value means deletion + skip := r.valuesStartTxNum == 0 && len(lastVal) == 0 + if !skip { + if keyBuf != nil { + if err = comp.AddUncompressedWord(keyBuf); err != nil { + return nil, nil, nil, err + } + keyCount++ // Only counting keys, not values + switch d.compressVals { + case true: + if err = comp.AddWord(valBuf); err != nil { + return nil, nil, nil, err + } + default: + if err = comp.AddUncompressedWord(valBuf); err != nil { + return nil, nil, nil, err + } + } + } + keyBuf = append(keyBuf[:0], lastKey...) + valBuf = append(valBuf[:0], lastVal...) + } + } + if keyBuf != nil { + if err = comp.AddUncompressedWord(keyBuf); err != nil { + return nil, nil, nil, err + } + keyCount++ // Only counting keys, not values + //fmt.Printf("last heap key %x\n", keyBuf) + valBuf, err = d.commitmentValTransform(&oldFiles, &mergedFiles, valBuf) + if err != nil { + return nil, nil, nil, fmt.Errorf("merge: 2valTransform [%x] %w", valBuf, err) + } + if d.compressVals { + if err = comp.AddWord(valBuf); err != nil { + return nil, nil, nil, err + } + } else { + if err = comp.AddUncompressedWord(valBuf); err != nil { + return nil, nil, nil, err + } + } + } + if err = comp.Compress(); err != nil { + return nil, nil, nil, err + } + comp.Close() + comp = nil + valuesIn = newFilesItem(r.valuesStartTxNum, r.valuesEndTxNum, d.aggregationStep) + if valuesIn.decompressor, err = compress.NewDecompressor(datPath); err != nil { + return nil, nil, nil, fmt.Errorf("merge %s decompressor [%d-%d]: %w", d.filenameBase, r.valuesStartTxNum, r.valuesEndTxNum, err) + } + ps.Delete(p) + + idxFileName := fmt.Sprintf("%s.%d-%d.kvi", d.filenameBase, r.valuesStartTxNum/d.aggregationStep, r.valuesEndTxNum/d.aggregationStep) + idxPath := filepath.Join(d.dir, idxFileName) + + p = ps.AddNew(datFileName, uint64(keyCount)) + defer ps.Delete(p) + if valuesIn.index, err = buildIndexThenOpen(ctx, valuesIn.decompressor, idxPath, d.dir, keyCount, false /* values */, p, d.logger, d.noFsync); err != nil { + return nil, nil, nil, fmt.Errorf("merge %s buildIndex [%d-%d]: %w", d.filenameBase, r.valuesStartTxNum, r.valuesEndTxNum, err) + } + + btPath := strings.TrimSuffix(idxPath, "kvi") + "bt" + valuesIn.bindex, err = CreateBtreeIndexWithDecompressor(btPath, 2048, valuesIn.decompressor, p, d.tmpdir, d.logger) + if err != nil { + return nil, nil, nil, fmt.Errorf("create btindex %s [%d-%d]: %w", d.filenameBase, r.valuesStartTxNum, r.valuesEndTxNum, err) + } + } + closeItem = false + d.stats.MergesCount++ + d.mergesCount++ + return +} + +// Evaluates commitment for processed state. Commit=true - store trie state after evaluation +func (d *DomainCommitted) ComputeCommitment(trace bool) (rootHash []byte, branchNodeUpdates map[string]commitment.BranchData, err error) { + defer func(s time.Time) { d.comTook = time.Since(s) }(time.Now()) + + touchedKeys, hashedKeys, updates := d.TouchedKeyList() + d.comKeys = uint64(len(touchedKeys)) + + if len(touchedKeys) == 0 { + rootHash, err = d.patriciaTrie.RootHash() + return rootHash, nil, err + } + + // data accessing functions should be set once before + d.patriciaTrie.Reset() + d.patriciaTrie.SetTrace(trace) + + switch d.mode { + case CommitmentModeDirect: + rootHash, branchNodeUpdates, err = d.patriciaTrie.ReviewKeys(touchedKeys, hashedKeys) + if err != nil { + return nil, nil, err + } + case CommitmentModeUpdate: + rootHash, branchNodeUpdates, err = d.patriciaTrie.ProcessUpdates(touchedKeys, hashedKeys, updates) + if err != nil { + return nil, nil, err + } + case CommitmentModeDisabled: + return nil, nil, nil + default: + return nil, nil, fmt.Errorf("invalid commitment mode: %d", d.mode) + } + return rootHash, branchNodeUpdates, err +} + +var keyCommitmentState = []byte("state") + +// SeekCommitment searches for last encoded state from DomainCommitted +// and if state found, sets it up to current domain +func (d *DomainCommitted) SeekCommitment(aggStep, sinceTx uint64) (blockNum, txNum uint64, err error) { + if d.patriciaTrie.Variant() != commitment.VariantHexPatriciaTrie { + return 0, 0, fmt.Errorf("state storing is only supported hex patricia trie") + } + // todo add support of bin state dumping + + var ( + latestState []byte + stepbuf [2]byte + step = uint16(sinceTx/aggStep) - 1 + latestTxNum uint64 = sinceTx - 1 + ) + + d.SetTxNum(latestTxNum) + ctx := d.MakeContext() + defer ctx.Close() + + for { + binary.BigEndian.PutUint16(stepbuf[:], step) + + s, err := ctx.Get(keyCommitmentState, stepbuf[:], d.tx) + if err != nil { + return 0, 0, err + } + if len(s) < 8 { + break + } + v := binary.BigEndian.Uint64(s) + if v == latestTxNum && len(latestState) != 0 { + break + } + latestTxNum, latestState = v, s + lookupTxN := latestTxNum + aggStep + step = uint16(latestTxNum/aggStep) + 1 + d.SetTxNum(lookupTxN) + } + + var latest commitmentState + if err := latest.Decode(latestState); err != nil { + return 0, 0, nil + } + + if hext, ok := d.patriciaTrie.(*commitment.HexPatriciaHashed); ok { + if err := hext.SetState(latest.trieState); err != nil { + return 0, 0, err + } + } else { + return 0, 0, fmt.Errorf("state storing is only supported hex patricia trie") + } + + return latest.blockNum, latest.txNum, nil +} + +type commitmentState struct { + txNum uint64 + blockNum uint64 + trieState []byte +} + +func (cs *commitmentState) Decode(buf []byte) error { + if len(buf) < 10 { + return fmt.Errorf("ivalid commitment state buffer size") + } + pos := 0 + cs.txNum = binary.BigEndian.Uint64(buf[pos : pos+8]) + pos += 8 + cs.blockNum = binary.BigEndian.Uint64(buf[pos : pos+8]) + pos += 8 + cs.trieState = make([]byte, binary.BigEndian.Uint16(buf[pos:pos+2])) + pos += 2 + if len(cs.trieState) == 0 && len(buf) == 10 { + return nil + } + copy(cs.trieState, buf[pos:pos+len(cs.trieState)]) + return nil +} + +func (cs *commitmentState) Encode() ([]byte, error) { + buf := bytes.NewBuffer(nil) + var v [18]byte + binary.BigEndian.PutUint64(v[:], cs.txNum) + binary.BigEndian.PutUint64(v[8:16], cs.blockNum) + binary.BigEndian.PutUint16(v[16:18], uint16(len(cs.trieState))) + if _, err := buf.Write(v[:]); err != nil { + return nil, err + } + if _, err := buf.Write(cs.trieState); err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +func decodeU64(from []byte) uint64 { + var i uint64 + for _, b := range from { + i = (i << 8) | uint64(b) + } + return i +} + +func encodeU64(i uint64, to []byte) []byte { + // writes i to b in big endian byte order, using the least number of bytes needed to represent i. + switch { + case i < (1 << 8): + return append(to, byte(i)) + case i < (1 << 16): + return append(to, byte(i>>8), byte(i)) + case i < (1 << 24): + return append(to, byte(i>>16), byte(i>>8), byte(i)) + case i < (1 << 32): + return append(to, byte(i>>24), byte(i>>16), byte(i>>8), byte(i)) + case i < (1 << 40): + return append(to, byte(i>>32), byte(i>>24), byte(i>>16), byte(i>>8), byte(i)) + case i < (1 << 48): + return append(to, byte(i>>40), byte(i>>32), byte(i>>24), byte(i>>16), byte(i>>8), byte(i)) + case i < (1 << 56): + return append(to, byte(i>>48), byte(i>>40), byte(i>>32), byte(i>>24), byte(i>>16), byte(i>>8), byte(i)) + default: + return append(to, byte(i>>56), byte(i>>48), byte(i>>40), byte(i>>32), byte(i>>24), byte(i>>16), byte(i>>8), byte(i)) + } +} + +// Optimised key referencing a state file record (file number and offset within the file) +func shortenedKey(apk []byte) (step uint16, offset uint64) { + step = binary.BigEndian.Uint16(apk[:2]) + return step, decodeU64(apk[1:]) +} diff --git a/erigon-lib/state/domain_shared.go b/erigon-lib/state/domain_shared.go new file mode 100644 index 00000000000..39e37884a73 --- /dev/null +++ b/erigon-lib/state/domain_shared.go @@ -0,0 +1,25 @@ +package state + +// KvList sort.Interface to sort write list by keys +type KvList struct { + Keys []string + Vals [][]byte +} + +func (l *KvList) Push(key string, val []byte) { + l.Keys = append(l.Keys, key) + l.Vals = append(l.Vals, val) +} + +func (l *KvList) Len() int { + return len(l.Keys) +} + +func (l *KvList) Less(i, j int) bool { + return l.Keys[i] < l.Keys[j] +} + +func (l *KvList) Swap(i, j int) { + l.Keys[i], l.Keys[j] = l.Keys[j], l.Keys[i] + l.Vals[i], l.Vals[j] = l.Vals[j], l.Vals[i] +} diff --git a/erigon-lib/state/domain_test.go b/erigon-lib/state/domain_test.go new file mode 100644 index 00000000000..4dd41f8b6f6 --- /dev/null +++ b/erigon-lib/state/domain_test.go @@ -0,0 +1,791 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, VerSsion 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "context" + "encoding/binary" + "fmt" + "math" + "os" + "strings" + "testing" + "time" + + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" + btree2 "github.com/tidwall/btree" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon-lib/recsplit" +) + +func testDbAndDomain(t *testing.T, logger log.Logger) (string, kv.RwDB, *Domain) { + t.Helper() + path := t.TempDir() + keysTable := "Keys" + valsTable := "Vals" + historyKeysTable := "HistoryKeys" + historyValsTable := "HistoryVals" + settingsTable := "Settings" //nolint + indexTable := "Index" + db := mdbx.NewMDBX(logger).InMem(path).WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { + return kv.TableCfg{ + keysTable: kv.TableCfgItem{Flags: kv.DupSort}, + valsTable: kv.TableCfgItem{}, + historyKeysTable: kv.TableCfgItem{Flags: kv.DupSort}, + historyValsTable: kv.TableCfgItem{Flags: kv.DupSort}, + settingsTable: kv.TableCfgItem{}, + indexTable: kv.TableCfgItem{Flags: kv.DupSort}, + } + }).MustOpen() + t.Cleanup(db.Close) + d, err := NewDomain(path, path, 16, "base", keysTable, valsTable, historyKeysTable, historyValsTable, indexTable, true, false, logger) + require.NoError(t, err) + t.Cleanup(d.Close) + d.DisableFsync() + return path, db, d +} + +// btree index should work correctly if K < m +func TestCollationBuild(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + _, db, d := testDbAndDomain(t, logger) + ctx := context.Background() + defer d.Close() + + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + d.SetTx(tx) + d.StartWrites() + defer d.FinishWrites() + + d.SetTxNum(2) + err = d.Put([]byte("key1"), nil, []byte("value1.1")) + require.NoError(t, err) + + d.SetTxNum(3) + err = d.Put([]byte("key2"), nil, []byte("value2.1")) + require.NoError(t, err) + + d.SetTxNum(6) + err = d.Put([]byte("key1"), nil, []byte("value1.2")) + require.NoError(t, err) + + err = d.Rotate().Flush(ctx, tx) + require.NoError(t, err) + + c, err := d.collate(ctx, 0, 0, 7, tx, logEvery) + + require.NoError(t, err) + require.True(t, strings.HasSuffix(c.valuesPath, "base.0-1.kv")) + require.Equal(t, 2, c.valuesCount) + require.True(t, strings.HasSuffix(c.historyPath, "base.0-1.v")) + require.Equal(t, 3, c.historyCount) + require.Equal(t, 2, len(c.indexBitmaps)) + require.Equal(t, []uint64{3}, c.indexBitmaps["key2"].ToArray()) + require.Equal(t, []uint64{2, 6}, c.indexBitmaps["key1"].ToArray()) + + sf, err := d.buildFiles(ctx, 0, c, background.NewProgressSet()) + require.NoError(t, err) + defer sf.Close() + c.Close() + + g := sf.valuesDecomp.MakeGetter() + g.Reset(0) + var words []string + for g.HasNext() { + w, _ := g.Next(nil) + words = append(words, string(w)) + } + require.Equal(t, []string{"key1", "value1.2", "key2", "value2.1"}, words) + // Check index + require.Equal(t, 2, int(sf.valuesIdx.KeyCount())) + + r := recsplit.NewIndexReader(sf.valuesIdx) + defer r.Close() + for i := 0; i < len(words); i += 2 { + offset := r.Lookup([]byte(words[i])) + g.Reset(offset) + w, _ := g.Next(nil) + require.Equal(t, words[i], string(w)) + w, _ = g.Next(nil) + require.Equal(t, words[i+1], string(w)) + } +} + +func TestIterationBasic(t *testing.T) { + logger := log.New() + _, db, d := testDbAndDomain(t, logger) + ctx := context.Background() + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + d.SetTx(tx) + d.StartWrites() + defer d.FinishWrites() + + d.SetTxNum(2) + err = d.Put([]byte("addr1"), []byte("loc1"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr1"), []byte("loc2"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr1"), []byte("loc3"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr2"), []byte("loc1"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr2"), []byte("loc2"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr3"), []byte("loc1"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr3"), []byte("loc2"), []byte("value1")) + require.NoError(t, err) + + var keys, vals []string + dc := d.MakeContext() + defer dc.Close() + err = dc.IteratePrefix([]byte("addr2"), func(k, v []byte) { + keys = append(keys, string(k)) + vals = append(vals, string(v)) + }) + require.NoError(t, err) + require.Equal(t, []string{"addr2loc1", "addr2loc2"}, keys) + require.Equal(t, []string{"value1", "value1"}, vals) +} + +func TestAfterPrune(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + _, db, d := testDbAndDomain(t, logger) + ctx := context.Background() + + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + d.SetTx(tx) + d.StartWrites() + defer d.FinishWrites() + + d.SetTxNum(2) + err = d.Put([]byte("key1"), nil, []byte("value1.1")) + require.NoError(t, err) + + d.SetTxNum(3) + err = d.Put([]byte("key2"), nil, []byte("value2.1")) + require.NoError(t, err) + + d.SetTxNum(6) + err = d.Put([]byte("key1"), nil, []byte("value1.2")) + require.NoError(t, err) + + d.SetTxNum(17) + err = d.Put([]byte("key1"), nil, []byte("value1.3")) + require.NoError(t, err) + + d.SetTxNum(18) + err = d.Put([]byte("key2"), nil, []byte("value2.2")) + require.NoError(t, err) + + err = d.Rotate().Flush(ctx, tx) + require.NoError(t, err) + + c, err := d.collate(ctx, 0, 0, 16, tx, logEvery) + require.NoError(t, err) + + sf, err := d.buildFiles(ctx, 0, c, background.NewProgressSet()) + require.NoError(t, err) + + d.integrateFiles(sf, 0, 16) + var v []byte + dc := d.MakeContext() + defer dc.Close() + v, err = dc.Get([]byte("key1"), nil, tx) + require.NoError(t, err) + require.Equal(t, []byte("value1.3"), v) + v, err = dc.Get([]byte("key2"), nil, tx) + require.NoError(t, err) + require.Equal(t, []byte("value2.2"), v) + + err = d.prune(ctx, 0, 0, 16, math.MaxUint64, logEvery) + require.NoError(t, err) + + isEmpty, err := d.isEmpty(tx) + require.NoError(t, err) + require.False(t, isEmpty) + + v, err = dc.Get([]byte("key1"), nil, tx) + require.NoError(t, err) + require.Equal(t, []byte("value1.3"), v) + v, err = dc.Get([]byte("key2"), nil, tx) + require.NoError(t, err) + require.Equal(t, []byte("value2.2"), v) +} + +func filledDomain(t *testing.T, logger log.Logger) (string, kv.RwDB, *Domain, uint64) { + t.Helper() + path, db, d := testDbAndDomain(t, logger) + ctx := context.Background() + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + d.SetTx(tx) + d.StartWrites() + defer d.FinishWrites() + + txs := uint64(1000) + // keys are encodings of numbers 1..31 + // each key changes value on every txNum which is multiple of the key + for txNum := uint64(1); txNum <= txs; txNum++ { + d.SetTxNum(txNum) + for keyNum := uint64(1); keyNum <= uint64(31); keyNum++ { + if txNum%keyNum == 0 { + valNum := txNum / keyNum + var k [8]byte + var v [8]byte + binary.BigEndian.PutUint64(k[:], keyNum) + binary.BigEndian.PutUint64(v[:], valNum) + err = d.Put(k[:], nil, v[:]) + require.NoError(t, err) + } + } + if txNum%10 == 0 { + err = d.Rotate().Flush(ctx, tx) + require.NoError(t, err) + } + } + err = d.Rotate().Flush(ctx, tx) + require.NoError(t, err) + err = tx.Commit() + require.NoError(t, err) + return path, db, d, txs +} + +func checkHistory(t *testing.T, db kv.RwDB, d *Domain, txs uint64) { + t.Helper() + ctx := context.Background() + var err error + // Check the history + var roTx kv.Tx + dc := d.MakeContext() + defer dc.Close() + for txNum := uint64(0); txNum <= txs; txNum++ { + if txNum == 976 { + // Create roTx obnly for the last several txNum, because all history before that + // we should be able to read without any DB access + roTx, err = db.BeginRo(ctx) + require.NoError(t, err) + defer roTx.Rollback() + } + for keyNum := uint64(1); keyNum <= uint64(31); keyNum++ { + valNum := txNum / keyNum + var k [8]byte + var v [8]byte + label := fmt.Sprintf("txNum=%d, keyNum=%d", txNum, keyNum) + binary.BigEndian.PutUint64(k[:], keyNum) + binary.BigEndian.PutUint64(v[:], valNum) + val, err := dc.GetBeforeTxNum(k[:], txNum+1, roTx) + require.NoError(t, err, label) + if txNum >= keyNum { + require.Equal(t, v[:], val, label) + } else { + require.Nil(t, val, label) + } + if txNum == txs { + val, err := dc.Get(k[:], nil, roTx) + require.NoError(t, err) + require.EqualValues(t, v[:], val) + } + } + } +} + +func TestHistory(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + _, db, d, txs := filledDomain(t, logger) + ctx := context.Background() + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + d.SetTx(tx) + defer tx.Rollback() + + // Leave the last 2 aggregation steps un-collated + for step := uint64(0); step < txs/d.aggregationStep-1; step++ { + func() { + c, err := d.collate(ctx, step, step*d.aggregationStep, (step+1)*d.aggregationStep, tx, logEvery) + require.NoError(t, err) + sf, err := d.buildFiles(ctx, step, c, background.NewProgressSet()) + require.NoError(t, err) + d.integrateFiles(sf, step*d.aggregationStep, (step+1)*d.aggregationStep) + + err = d.prune(ctx, step, step*d.aggregationStep, (step+1)*d.aggregationStep, math.MaxUint64, logEvery) + require.NoError(t, err) + }() + } + err = tx.Commit() + require.NoError(t, err) + checkHistory(t, db, d, txs) +} + +func TestIterationMultistep(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + _, db, d := testDbAndDomain(t, logger) + ctx := context.Background() + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + d.SetTx(tx) + d.StartWrites() + defer d.FinishWrites() + + d.SetTxNum(2) + err = d.Put([]byte("addr1"), []byte("loc1"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr1"), []byte("loc2"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr1"), []byte("loc3"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr2"), []byte("loc1"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr2"), []byte("loc2"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr3"), []byte("loc1"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr3"), []byte("loc2"), []byte("value1")) + require.NoError(t, err) + + d.SetTxNum(2 + 16) + err = d.Put([]byte("addr2"), []byte("loc1"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr2"), []byte("loc2"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr2"), []byte("loc3"), []byte("value1")) + require.NoError(t, err) + err = d.Put([]byte("addr2"), []byte("loc4"), []byte("value1")) + require.NoError(t, err) + + d.SetTxNum(2 + 16 + 16) + err = d.Delete([]byte("addr2"), []byte("loc1")) + require.NoError(t, err) + + err = d.Rotate().Flush(ctx, tx) + require.NoError(t, err) + + for step := uint64(0); step <= 2; step++ { + func() { + c, err := d.collate(ctx, step, step*d.aggregationStep, (step+1)*d.aggregationStep, tx, logEvery) + require.NoError(t, err) + sf, err := d.buildFiles(ctx, step, c, background.NewProgressSet()) + require.NoError(t, err) + d.integrateFiles(sf, step*d.aggregationStep, (step+1)*d.aggregationStep) + err = d.prune(ctx, step, step*d.aggregationStep, (step+1)*d.aggregationStep, math.MaxUint64, logEvery) + require.NoError(t, err) + }() + } + + var keys []string + var vals []string + dc := d.MakeContext() + defer dc.Close() + err = dc.IteratePrefix([]byte("addr2"), func(k, v []byte) { + keys = append(keys, string(k)) + vals = append(vals, string(v)) + }) + require.NoError(t, err) + require.Equal(t, []string{"addr2loc2", "addr2loc3", "addr2loc4"}, keys) + require.Equal(t, []string{"value1", "value1", "value1"}, vals) +} + +func collateAndMerge(t *testing.T, db kv.RwDB, tx kv.RwTx, d *Domain, txs uint64) { + t.Helper() + + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + var err error + useExternalTx := tx != nil + if !useExternalTx { + tx, err = db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + } + d.SetTx(tx) + // Leave the last 2 aggregation steps un-collated + for step := uint64(0); step < txs/d.aggregationStep-1; step++ { + c, err := d.collate(ctx, step, step*d.aggregationStep, (step+1)*d.aggregationStep, tx, logEvery) + require.NoError(t, err) + sf, err := d.buildFiles(ctx, step, c, background.NewProgressSet()) + require.NoError(t, err) + d.integrateFiles(sf, step*d.aggregationStep, (step+1)*d.aggregationStep) + err = d.prune(ctx, step, step*d.aggregationStep, (step+1)*d.aggregationStep, math.MaxUint64, logEvery) + require.NoError(t, err) + } + var r DomainRanges + maxEndTxNum := d.endTxNumMinimax() + maxSpan := d.aggregationStep * StepsInBiggestFile + + for { + if stop := func() bool { + dc := d.MakeContext() + defer dc.Close() + r = d.findMergeRange(maxEndTxNum, maxSpan) + if !r.any() { + return true + } + valuesOuts, indexOuts, historyOuts, _ := dc.staticFilesInRange(r) + valuesIn, indexIn, historyIn, err := d.mergeFiles(ctx, valuesOuts, indexOuts, historyOuts, r, 1, background.NewProgressSet()) + require.NoError(t, err) + d.integrateMergedFiles(valuesOuts, indexOuts, historyOuts, valuesIn, indexIn, historyIn) + return false + }(); stop { + break + } + } + if !useExternalTx { + err := tx.Commit() + require.NoError(t, err) + } +} + +func collateAndMergeOnce(t *testing.T, d *Domain, step uint64) { + t.Helper() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + txFrom, txTo := (step)*d.aggregationStep, (step+1)*d.aggregationStep + + c, err := d.collate(ctx, step, txFrom, txTo, d.tx, logEvery) + require.NoError(t, err) + + sf, err := d.buildFiles(ctx, step, c, background.NewProgressSet()) + require.NoError(t, err) + d.integrateFiles(sf, txFrom, txTo) + + err = d.prune(ctx, step, txFrom, txTo, math.MaxUint64, logEvery) + require.NoError(t, err) + + var r DomainRanges + maxEndTxNum := d.endTxNumMinimax() + maxSpan := d.aggregationStep * StepsInBiggestFile + for r = d.findMergeRange(maxEndTxNum, maxSpan); r.any(); r = d.findMergeRange(maxEndTxNum, maxSpan) { + dc := d.MakeContext() + valuesOuts, indexOuts, historyOuts, _ := dc.staticFilesInRange(r) + valuesIn, indexIn, historyIn, err := d.mergeFiles(ctx, valuesOuts, indexOuts, historyOuts, r, 1, background.NewProgressSet()) + require.NoError(t, err) + + d.integrateMergedFiles(valuesOuts, indexOuts, historyOuts, valuesIn, indexIn, historyIn) + dc.Close() + } +} + +func TestDomain_MergeFiles(t *testing.T) { + logger := log.New() + _, db, d, txs := filledDomain(t, logger) + + collateAndMerge(t, db, nil, d, txs) + checkHistory(t, db, d, txs) +} + +func TestDomain_ScanFiles(t *testing.T) { + logger := log.New() + path, db, d, txs := filledDomain(t, logger) + _ = path + collateAndMerge(t, db, nil, d, txs) + // Recreate domain and re-scan the files + txNum := d.txNum + d.closeWhatNotInList([]string{}) + d.OpenFolder() + + d.SetTxNum(txNum) + // Check the history + checkHistory(t, db, d, txs) +} + +func TestDomain_Delete(t *testing.T) { + logger := log.New() + _, db, d := testDbAndDomain(t, logger) + ctx, require := context.Background(), require.New(t) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + d.SetTx(tx) + d.StartWrites() + defer d.FinishWrites() + + // Put on even txNum, delete on odd txNum + for txNum := uint64(0); txNum < uint64(1000); txNum++ { + d.SetTxNum(txNum) + if txNum%2 == 0 { + err = d.Put([]byte("key1"), nil, []byte("value1")) + } else { + err = d.Delete([]byte("key1"), nil) + } + require.NoError(err) + } + err = d.Rotate().Flush(ctx, tx) + require.NoError(err) + collateAndMerge(t, db, tx, d, 1000) + // Check the history + dc := d.MakeContext() + defer dc.Close() + for txNum := uint64(0); txNum < 1000; txNum++ { + label := fmt.Sprintf("txNum=%d", txNum) + //val, ok, err := dc.GetBeforeTxNum([]byte("key1"), txNum+1, tx) + //require.NoError(err) + //require.True(ok) + //if txNum%2 == 0 { + // require.Equal([]byte("value1"), val, label) + //} else { + // require.Nil(val, label) + //} + //if txNum == 976 { + val, err := dc.GetBeforeTxNum([]byte("key2"), txNum+1, tx) + require.NoError(err) + //require.False(ok, label) + require.Nil(val, label) + //} + } +} + +func filledDomainFixedSize(t *testing.T, keysCount, txCount uint64, logger log.Logger) (string, kv.RwDB, *Domain, map[string][]bool) { + t.Helper() + path, db, d := testDbAndDomain(t, logger) + ctx := context.Background() + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + d.SetTx(tx) + d.StartWrites() + defer d.FinishWrites() + + // keys are encodings of numbers 1..31 + // each key changes value on every txNum which is multiple of the key + dat := make(map[string][]bool) // K:V is key -> list of bools. If list[i] == true, i'th txNum should persists + + for txNum := uint64(1); txNum <= txCount; txNum++ { + d.SetTxNum(txNum) + for keyNum := uint64(1); keyNum <= keysCount; keyNum++ { + if keyNum == txNum%d.aggregationStep { + continue + } + var k [8]byte + var v [8]byte + binary.BigEndian.PutUint64(k[:], keyNum) + binary.BigEndian.PutUint64(v[:], txNum) + err = d.Put(k[:], nil, v[:]) + require.NoError(t, err) + + if _, ok := dat[fmt.Sprintf("%d", keyNum)]; !ok { + dat[fmt.Sprintf("%d", keyNum)] = make([]bool, txCount+1) + } + dat[fmt.Sprintf("%d", keyNum)][txNum] = true + } + if txNum%d.aggregationStep == 0 { + err = d.Rotate().Flush(ctx, tx) + require.NoError(t, err) + } + } + err = tx.Commit() + require.NoError(t, err) + return path, db, d, dat +} + +// firstly we write all the data to domain +// then we collate-merge-prune +// then check. +// in real life we periodically do collate-merge-prune without stopping adding data +func TestDomain_Prune_AfterAllWrites(t *testing.T) { + logger := log.New() + keyCount, txCount := uint64(4), uint64(64) + _, db, dom, data := filledDomainFixedSize(t, keyCount, txCount, logger) + + collateAndMerge(t, db, nil, dom, txCount) + + ctx := context.Background() + roTx, err := db.BeginRo(ctx) + require.NoError(t, err) + defer roTx.Rollback() + + // Check the history + dc := dom.MakeContext() + defer dc.Close() + for txNum := uint64(1); txNum <= txCount; txNum++ { + for keyNum := uint64(1); keyNum <= keyCount; keyNum++ { + var k [8]byte + var v [8]byte + label := fmt.Sprintf("txNum=%d, keyNum=%d\n", txNum, keyNum) + binary.BigEndian.PutUint64(k[:], keyNum) + binary.BigEndian.PutUint64(v[:], txNum) + + val, err := dc.GetBeforeTxNum(k[:], txNum+1, roTx) + // during generation such keys are skipped so value should be nil for this call + require.NoError(t, err, label) + if !data[fmt.Sprintf("%d", keyNum)][txNum] { + if txNum > 1 { + binary.BigEndian.PutUint64(v[:], txNum-1) + } else { + require.Nil(t, val, label) + continue + } + } + require.EqualValues(t, v[:], val) + } + } + + var v [8]byte + binary.BigEndian.PutUint64(v[:], txCount) + + for keyNum := uint64(1); keyNum <= keyCount; keyNum++ { + var k [8]byte + label := fmt.Sprintf("txNum=%d, keyNum=%d\n", txCount, keyNum) + binary.BigEndian.PutUint64(k[:], keyNum) + + storedV, err := dc.Get(k[:], nil, roTx) + require.NoError(t, err, label) + require.EqualValues(t, v[:], storedV, label) + } +} + +func TestDomain_PruneOnWrite(t *testing.T) { + logger := log.New() + keysCount, txCount := uint64(16), uint64(64) + + path, db, d := testDbAndDomain(t, logger) + ctx := context.Background() + defer os.Remove(path) + + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + d.SetTx(tx) + d.StartWrites() + defer d.FinishWrites() + + // keys are encodings of numbers 1..31 + // each key changes value on every txNum which is multiple of the key + data := make(map[string][]uint64) + + for txNum := uint64(1); txNum <= txCount; txNum++ { + d.SetTxNum(txNum) + for keyNum := uint64(1); keyNum <= keysCount; keyNum++ { + if keyNum == txNum%d.aggregationStep { + continue + } + var k [8]byte + var v [8]byte + binary.BigEndian.PutUint64(k[:], keyNum) + binary.BigEndian.PutUint64(v[:], txNum) + err = d.Put(k[:], nil, v[:]) + require.NoError(t, err) + + list, ok := data[fmt.Sprintf("%d", keyNum)] + if !ok { + data[fmt.Sprintf("%d", keyNum)] = make([]uint64, 0) + } + data[fmt.Sprintf("%d", keyNum)] = append(list, txNum) + } + if txNum%d.aggregationStep == 0 { + step := txNum/d.aggregationStep - 1 + if step == 0 { + continue + } + step-- + err = d.Rotate().Flush(ctx, tx) + require.NoError(t, err) + + collateAndMergeOnce(t, d, step) + } + } + err = d.Rotate().Flush(ctx, tx) + require.NoError(t, err) + + // Check the history + dc := d.MakeContext() + defer dc.Close() + for txNum := uint64(1); txNum <= txCount; txNum++ { + for keyNum := uint64(1); keyNum <= keysCount; keyNum++ { + valNum := txNum + var k [8]byte + var v [8]byte + label := fmt.Sprintf("txNum=%d, keyNum=%d\n", txNum, keyNum) + binary.BigEndian.PutUint64(k[:], keyNum) + binary.BigEndian.PutUint64(v[:], valNum) + + val, err := dc.GetBeforeTxNum(k[:], txNum+1, tx) + require.NoError(t, err) + if keyNum == txNum%d.aggregationStep { + if txNum > 1 { + binary.BigEndian.PutUint64(v[:], txNum-1) + require.EqualValues(t, v[:], val) + continue + } else { + require.Nil(t, val, label) + continue + } + } + require.NoError(t, err, label) + require.EqualValues(t, v[:], val, label) + } + } + + var v [8]byte + binary.BigEndian.PutUint64(v[:], txCount) + + for keyNum := uint64(1); keyNum <= keysCount; keyNum++ { + var k [8]byte + label := fmt.Sprintf("txNum=%d, keyNum=%d\n", txCount, keyNum) + binary.BigEndian.PutUint64(k[:], keyNum) + + storedV, err := dc.Get(k[:], nil, tx) + require.NoError(t, err, label) + require.EqualValues(t, v[:], storedV, label) + } +} + +func TestScanStaticFilesD(t *testing.T) { + logger := log.New() + ii := &Domain{History: &History{InvertedIndex: &InvertedIndex{filenameBase: "test", aggregationStep: 1, logger: logger}, logger: logger}, + files: btree2.NewBTreeG[*filesItem](filesItemLess), + logger: logger, + } + files := []string{ + "test.0-1.kv", + "test.1-2.kv", + "test.0-4.kv", + "test.2-3.kv", + "test.3-4.kv", + "test.4-5.kv", + } + ii.scanStateFiles(files) + var found []string + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + found = append(found, fmt.Sprintf("%d-%d", item.startTxNum, item.endTxNum)) + } + return true + }) + require.Equal(t, 6, len(found)) +} diff --git a/erigon-lib/state/gc_test.go b/erigon-lib/state/gc_test.go new file mode 100644 index 00000000000..a159b766da1 --- /dev/null +++ b/erigon-lib/state/gc_test.go @@ -0,0 +1,175 @@ +package state + +import ( + "context" + "testing" + "time" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" +) + +func TestGCReadAfterRemoveFile(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + + test := func(t *testing.T, h *History, db kv.RwDB, txs uint64) { + t.Helper() + require := require.New(t) + collateAndMergeHistory(t, db, h, txs) + + t.Run("read after: remove when have reader", func(t *testing.T) { + tx, err := db.BeginRo(ctx) + require.NoError(err) + defer tx.Rollback() + + // - create immutable view + // - del cold file + // - read from canDelete file + // - close view + // - open new view + // - make sure there is no canDelete file + hc := h.MakeContext() + _ = hc + lastOnFs, _ := h.files.Max() + require.False(lastOnFs.frozen) // prepared dataset must have some non-frozen files. or it's bad dataset. + h.integrateMergedFiles(nil, []*filesItem{lastOnFs}, nil, nil) + require.NotNil(lastOnFs.decompressor) + + lastInView := hc.files[len(hc.files)-1] + g := lastInView.src.decompressor.MakeGetter() + require.Equal(lastInView.startTxNum, lastOnFs.startTxNum) + require.Equal(lastInView.endTxNum, lastOnFs.endTxNum) + if g.HasNext() { + k, _ := g.Next(nil) + require.Equal(8, len(k)) + v, _ := g.Next(nil) + require.Equal(8, len(v)) + } + + require.NotNil(lastOnFs.decompressor) + loc := hc.ic.loc // replace of locality index must not affect current HistoryContext, but expect to be closed after last reader + h.localityIndex.integrateFiles(LocalityIndexFiles{}, 0, 0) + require.NotNil(loc.file) + hc.Close() + require.Nil(lastOnFs.decompressor) + require.NotNil(loc.file) + + nonDeletedOnFs, _ := h.files.Max() + require.False(nonDeletedOnFs.frozen) + require.NotNil(nonDeletedOnFs.decompressor) // non-canDelete files are not closed + + hc = h.MakeContext() + newLastInView := hc.files[len(hc.files)-1] + require.False(lastOnFs.frozen) + require.False(lastInView.startTxNum == newLastInView.startTxNum && lastInView.endTxNum == newLastInView.endTxNum) + + hc.Close() + }) + + t.Run("read after: remove when no readers", func(t *testing.T) { + tx, err := db.BeginRo(ctx) + require.NoError(err) + defer tx.Rollback() + + // - del cold file + // - new reader must not see canDelete file + hc := h.MakeContext() + lastOnFs, _ := h.files.Max() + require.False(lastOnFs.frozen) // prepared dataset must have some non-frozen files. or it's bad dataset. + h.integrateMergedFiles(nil, []*filesItem{lastOnFs}, nil, nil) + + require.NotNil(lastOnFs.decompressor) + hc.Close() + require.Nil(lastOnFs.decompressor) + }) + } + t.Run("large_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, true, logger) + test(t, h, db, txs) + }) + t.Run("small_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, false, logger) + test(t, h, db, txs) + }) +} + +func TestDomainGCReadAfterRemoveFile(t *testing.T) { + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + + test := func(t *testing.T, h *Domain, db kv.RwDB, txs uint64) { + t.Helper() + require := require.New(t) + collateAndMerge(t, db, nil, h, txs) + + t.Run("read after: remove when have reader", func(t *testing.T) { + tx, err := db.BeginRo(ctx) + require.NoError(err) + defer tx.Rollback() + + // - create immutable view + // - del cold file + // - read from canDelete file + // - close view + // - open new view + // - make sure there is no canDelete file + hc := h.MakeContext() + _ = hc + lastOnFs, _ := h.files.Max() + require.False(lastOnFs.frozen) // prepared dataset must have some non-frozen files. or it's bad dataset. + h.integrateMergedFiles([]*filesItem{lastOnFs}, nil, nil, nil, nil, nil) + require.NotNil(lastOnFs.decompressor) + + lastInView := hc.files[len(hc.files)-1] + g := lastInView.src.decompressor.MakeGetter() + require.Equal(lastInView.startTxNum, lastOnFs.startTxNum) + require.Equal(lastInView.endTxNum, lastOnFs.endTxNum) + if g.HasNext() { + k, _ := g.Next(nil) + require.Equal(8, len(k)) + v, _ := g.Next(nil) + require.Equal(8, len(v)) + } + + require.NotNil(lastOnFs.decompressor) + hc.Close() + require.Nil(lastOnFs.decompressor) + + nonDeletedOnFs, _ := h.files.Max() + require.False(nonDeletedOnFs.frozen) + require.NotNil(nonDeletedOnFs.decompressor) // non-canDelete files are not closed + + hc = h.MakeContext() + newLastInView := hc.files[len(hc.files)-1] + require.False(lastOnFs.frozen) + require.False(lastInView.startTxNum == newLastInView.startTxNum && lastInView.endTxNum == newLastInView.endTxNum) + + hc.Close() + }) + + t.Run("read after: remove when no readers", func(t *testing.T) { + tx, err := db.BeginRo(ctx) + require.NoError(err) + defer tx.Rollback() + + // - del cold file + // - new reader must not see canDelete file + hc := h.MakeContext() + lastOnFs, _ := h.files.Max() + require.False(lastOnFs.frozen) // prepared dataset must have some non-frozen files. or it's bad dataset. + h.integrateMergedFiles([]*filesItem{lastOnFs}, nil, nil, nil, nil, nil) + + require.NotNil(lastOnFs.decompressor) + hc.Close() + require.Nil(lastOnFs.decompressor) + }) + } + logger := log.New() + _, db, d, txs := filledDomain(t, logger) + test(t, d, db, txs) +} diff --git a/erigon-lib/state/history.go b/erigon-lib/state/history.go new file mode 100644 index 00000000000..23fad025128 --- /dev/null +++ b/erigon-lib/state/history.go @@ -0,0 +1,2210 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "bytes" + "container/heap" + "context" + "encoding/binary" + "fmt" + "math" + "path/filepath" + "regexp" + "strconv" + "sync/atomic" + "time" + + "github.com/RoaringBitmap/roaring/roaring64" + "github.com/ledgerwatch/log/v3" + btree2 "github.com/tidwall/btree" + "golang.org/x/exp/slices" + "golang.org/x/sync/errgroup" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/etl" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" +) + +type History struct { + *InvertedIndex + + // Files: + // .v - list of values + // .vi - txNum+key -> offset in .v + files *btree2.BTreeG[*filesItem] // thread-safe, but maybe need 1 RWLock for all trees in AggregatorV3 + + // roFiles derivative from field `file`, but without garbage (canDelete=true, overlaps, etc...) + // MakeContext() using this field in zero-copy way + roFiles atomic.Pointer[[]ctxItem] + + historyValsTable string // key1+key2+txnNum -> oldValue , stores values BEFORE change + compressWorkers int + compressVals bool + integrityFileExtensions []string + + // not large: + // keys: txNum -> key1+key2 + // vals: key1+key2 -> txNum + value (DupSort) + // large: + // keys: txNum -> key1+key2 + // vals: key1+key2+txNum -> value (not DupSort) + largeValues bool // can't use DupSort optimization (aka. prefix-compression) if values size > 4kb + + garbageFiles []*filesItem // files that exist on disk, but ignored on opening folder - because they are garbage + + wal *historyWAL + logger log.Logger +} + +func NewHistory(dir, tmpdir string, aggregationStep uint64, + filenameBase, indexKeysTable, indexTable, historyValsTable string, + compressVals bool, integrityFileExtensions []string, largeValues bool, logger log.Logger) (*History, error) { + h := History{ + files: btree2.NewBTreeGOptions[*filesItem](filesItemLess, btree2.Options{Degree: 128, NoLocks: false}), + historyValsTable: historyValsTable, + compressVals: compressVals, + compressWorkers: 1, + integrityFileExtensions: integrityFileExtensions, + largeValues: largeValues, + logger: logger, + } + h.roFiles.Store(&[]ctxItem{}) + var err error + h.InvertedIndex, err = NewInvertedIndex(dir, tmpdir, aggregationStep, filenameBase, indexKeysTable, indexTable, true, append(slices.Clone(h.integrityFileExtensions), "v"), logger) + if err != nil { + return nil, fmt.Errorf("NewHistory: %s, %w", filenameBase, err) + } + + return &h, nil +} + +// OpenList - main method to open list of files. +// It's ok if some files was open earlier. +// If some file already open: noop. +// If some file already open but not in provided list: close and remove from `files` field. +func (h *History) OpenList(fNames []string) error { + if err := h.InvertedIndex.OpenList(fNames); err != nil { + return err + } + return h.openList(fNames) + +} +func (h *History) openList(fNames []string) error { + h.closeWhatNotInList(fNames) + h.garbageFiles = h.scanStateFiles(fNames) + if err := h.openFiles(); err != nil { + return fmt.Errorf("History.OpenList: %s, %w", h.filenameBase, err) + } + return nil +} + +func (h *History) OpenFolder() error { + files, err := h.fileNamesOnDisk() + if err != nil { + return err + } + return h.OpenList(files) +} + +// scanStateFiles +// returns `uselessFiles` where file "is useless" means: it's subset of frozen file. such files can be safely deleted. subset of non-frozen file may be useful +func (h *History) scanStateFiles(fNames []string) (garbageFiles []*filesItem) { + re := regexp.MustCompile("^" + h.filenameBase + ".([0-9]+)-([0-9]+).v$") + var err error +Loop: + for _, name := range fNames { + subs := re.FindStringSubmatch(name) + if len(subs) != 3 { + if len(subs) != 0 { + h.logger.Warn("[snapshots] file ignored by inverted index scan, more than 3 submatches", "name", name, "submatches", len(subs)) + } + continue + } + var startStep, endStep uint64 + if startStep, err = strconv.ParseUint(subs[1], 10, 64); err != nil { + h.logger.Warn("[snapshots] file ignored by inverted index scan, parsing startTxNum", "error", err, "name", name) + continue + } + if endStep, err = strconv.ParseUint(subs[2], 10, 64); err != nil { + h.logger.Warn("[snapshots] file ignored by inverted index scan, parsing endTxNum", "error", err, "name", name) + continue + } + if startStep > endStep { + h.logger.Warn("[snapshots] file ignored by inverted index scan, startTxNum > endTxNum", "name", name) + continue + } + + startTxNum, endTxNum := startStep*h.aggregationStep, endStep*h.aggregationStep + var newFile = newFilesItem(startTxNum, endTxNum, h.aggregationStep) + + for _, ext := range h.integrityFileExtensions { + requiredFile := fmt.Sprintf("%s.%d-%d.%s", h.filenameBase, startStep, endStep, ext) + if !dir.FileExist(filepath.Join(h.dir, requiredFile)) { + h.logger.Debug(fmt.Sprintf("[snapshots] skip %s because %s doesn't exists", name, requiredFile)) + garbageFiles = append(garbageFiles, newFile) + continue Loop + } + } + + if _, has := h.files.Get(newFile); has { + continue + } + + addNewFile := true + var subSets []*filesItem + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.isSubsetOf(newFile) { + subSets = append(subSets, item) + continue + } + + if newFile.isSubsetOf(item) { + if item.frozen { + addNewFile = false + garbageFiles = append(garbageFiles, newFile) + } + continue + } + } + return true + }) + if addNewFile { + h.files.Set(newFile) + } + } + return garbageFiles +} + +func (h *History) openFiles() error { + var totalKeys uint64 + var err error + invalidFileItems := make([]*filesItem, 0) + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.decompressor != nil { + continue + } + fromStep, toStep := item.startTxNum/h.aggregationStep, item.endTxNum/h.aggregationStep + datPath := filepath.Join(h.dir, fmt.Sprintf("%s.%d-%d.v", h.filenameBase, fromStep, toStep)) + if !dir.FileExist(datPath) { + invalidFileItems = append(invalidFileItems, item) + continue + } + if item.decompressor, err = compress.NewDecompressor(datPath); err != nil { + h.logger.Debug("Hisrory.openFiles: %w, %s", err, datPath) + return false + } + + if item.index != nil { + continue + } + idxPath := filepath.Join(h.dir, fmt.Sprintf("%s.%d-%d.vi", h.filenameBase, fromStep, toStep)) + if dir.FileExist(idxPath) { + if item.index, err = recsplit.OpenIndex(idxPath); err != nil { + h.logger.Debug(fmt.Errorf("Hisrory.openFiles: %w, %s", err, idxPath).Error()) + return false + } + totalKeys += item.index.KeyCount() + } + } + return true + }) + if err != nil { + return err + } + for _, item := range invalidFileItems { + h.files.Delete(item) + } + + h.reCalcRoFiles() + return nil +} + +func (h *History) closeWhatNotInList(fNames []string) { + var toDelete []*filesItem + h.files.Walk(func(items []*filesItem) bool { + Loop1: + for _, item := range items { + for _, protectName := range fNames { + if item.decompressor != nil && item.decompressor.FileName() == protectName { + continue Loop1 + } + } + toDelete = append(toDelete, item) + } + return true + }) + for _, item := range toDelete { + if item.decompressor != nil { + item.decompressor.Close() + item.decompressor = nil + } + if item.index != nil { + item.index.Close() + item.index = nil + } + h.files.Delete(item) + } +} + +func (h *History) Close() { + h.InvertedIndex.Close() + h.closeWhatNotInList([]string{}) + h.reCalcRoFiles() +} + +func (h *History) Files() (res []string) { + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.decompressor != nil { + res = append(res, item.decompressor.FileName()) + } + } + return true + }) + res = append(res, h.InvertedIndex.Files()...) + return res +} + +func (h *History) missedIdxFiles() (l []*filesItem) { + h.files.Walk(func(items []*filesItem) bool { // don't run slow logic while iterating on btree + for _, item := range items { + fromStep, toStep := item.startTxNum/h.aggregationStep, item.endTxNum/h.aggregationStep + if !dir.FileExist(filepath.Join(h.dir, fmt.Sprintf("%s.%d-%d.vi", h.filenameBase, fromStep, toStep))) { + l = append(l, item) + } + } + return true + }) + return l +} + +// BuildMissedIndices - produce .efi/.vi/.kvi from .ef/.v/.kv +func (hc *HistoryContext) BuildOptionalMissedIndices(ctx context.Context) (err error) { + return hc.h.localityIndex.BuildMissedIndices(ctx, hc.ic) +} + +func (h *History) buildVi(ctx context.Context, item *filesItem, p *background.Progress) (err error) { + search := &filesItem{startTxNum: item.startTxNum, endTxNum: item.endTxNum} + iiItem, ok := h.InvertedIndex.files.Get(search) + if !ok { + return nil + } + + fromStep, toStep := item.startTxNum/h.aggregationStep, item.endTxNum/h.aggregationStep + fName := fmt.Sprintf("%s.%d-%d.vi", h.filenameBase, fromStep, toStep) + idxPath := filepath.Join(h.dir, fName) + + //h.logger.Info("[snapshots] build idx", "file", fName) + + p.Name.Store(&fName) + p.Total.Store(uint64(iiItem.decompressor.Count()) * 2) + + count, err := iterateForVi(item, iiItem, p, h.compressVals, func(v []byte) error { return nil }) + if err != nil { + return err + } + return buildVi(ctx, item, iiItem, idxPath, h.tmpdir, count, p, h.compressVals, h.logger) +} + +func (h *History) BuildMissedIndices(ctx context.Context, g *errgroup.Group, ps *background.ProgressSet) { + h.InvertedIndex.BuildMissedIndices(ctx, g, ps) + missedFiles := h.missedIdxFiles() + for _, item := range missedFiles { + item := item + g.Go(func() error { + p := &background.Progress{} + ps.Add(p) + defer ps.Delete(p) + return h.buildVi(ctx, item, p) + }) + } +} + +func iterateForVi(historyItem, iiItem *filesItem, p *background.Progress, compressVals bool, f func(v []byte) error) (count int, err error) { + var cp CursorHeap + heap.Init(&cp) + g := iiItem.decompressor.MakeGetter() + g.Reset(0) + if g.HasNext() { + g2 := historyItem.decompressor.MakeGetter() + key, _ := g.NextUncompressed() + val, _ := g.NextUncompressed() + heap.Push(&cp, &CursorItem{ + t: FILE_CURSOR, + dg: g, + dg2: g2, + key: key, + val: val, + endTxNum: iiItem.endTxNum, + reverse: false, + }) + } + + // In the loop below, the pair `keyBuf=>valBuf` is always 1 item behind `lastKey=>lastVal`. + // `lastKey` and `lastVal` are taken from the top of the multi-way merge (assisted by the CursorHeap cp), but not processed right away + // instead, the pair from the previous iteration is processed first - `keyBuf=>valBuf`. After that, `keyBuf` and `valBuf` are assigned + // to `lastKey` and `lastVal` correspondingly, and the next step of multi-way merge happens. Therefore, after the multi-way merge loop + // (when CursorHeap cp is empty), there is a need to process the last pair `keyBuf=>valBuf`, because it was one step behind + var valBuf []byte + for cp.Len() > 0 { + lastKey := common.Copy(cp[0].key) + // Advance all the items that have this key (including the top) + //var mergeOnce bool + for cp.Len() > 0 && bytes.Equal(cp[0].key, lastKey) { + ci1 := cp[0] + keysCount := eliasfano32.Count(ci1.val) + for i := uint64(0); i < keysCount; i++ { + if compressVals { + valBuf, _ = ci1.dg2.Next(valBuf[:0]) + } else { + valBuf, _ = ci1.dg2.NextUncompressed() + } + if err = f(valBuf); err != nil { + return count, err + } + } + count += int(keysCount) + if ci1.dg.HasNext() { + ci1.key, _ = ci1.dg.NextUncompressed() + ci1.val, _ = ci1.dg.NextUncompressed() + heap.Fix(&cp, 0) + } else { + heap.Remove(&cp, 0) + } + + p.Processed.Add(1) + } + } + return count, nil +} + +func buildVi(ctx context.Context, historyItem, iiItem *filesItem, historyIdxPath, tmpdir string, count int, p *background.Progress, compressVals bool, logger log.Logger) error { + rs, err := recsplit.NewRecSplit(recsplit.RecSplitArgs{ + KeyCount: count, + Enums: false, + BucketSize: 2000, + LeafSize: 8, + TmpDir: tmpdir, + IndexFile: historyIdxPath, + EtlBufLimit: etl.BufferOptimalSize / 2, + }, logger) + if err != nil { + return fmt.Errorf("create recsplit: %w", err) + } + rs.LogLvl(log.LvlTrace) + defer rs.Close() + var historyKey []byte + var txKey [8]byte + var valOffset uint64 + + defer iiItem.decompressor.EnableMadvNormal().DisableReadAhead() + defer historyItem.decompressor.EnableMadvNormal().DisableReadAhead() + + g := iiItem.decompressor.MakeGetter() + g2 := historyItem.decompressor.MakeGetter() + var keyBuf, valBuf []byte + for { + g.Reset(0) + g2.Reset(0) + valOffset = 0 + for g.HasNext() { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + + keyBuf, _ = g.NextUncompressed() + valBuf, _ = g.NextUncompressed() + ef, _ := eliasfano32.ReadEliasFano(valBuf) + efIt := ef.Iterator() + for efIt.HasNext() { + txNum, _ := efIt.Next() + binary.BigEndian.PutUint64(txKey[:], txNum) + historyKey = append(append(historyKey[:0], txKey[:]...), keyBuf...) + if err = rs.AddKey(historyKey, valOffset); err != nil { + return err + } + if compressVals { + valOffset, _ = g2.Skip() + } else { + valOffset, _ = g2.SkipUncompressed() + } + } + + p.Processed.Add(1) + } + if err = rs.Build(ctx); err != nil { + if rs.Collision() { + logger.Info("Building recsplit. Collision happened. It's ok. Restarting...") + rs.ResetNextSalt() + } else { + return fmt.Errorf("build %s idx: %w", historyIdxPath, err) + } + } else { + break + } + } + return nil +} + +func (h *History) AddPrevValue(key1, key2, original []byte) (err error) { + if original == nil { + original = []byte{} + } + return h.wal.addPrevValue(key1, key2, original) +} + +func (h *History) DiscardHistory() { + h.InvertedIndex.StartWrites() + h.wal = h.newWriter(h.tmpdir, false, true) +} +func (h *History) StartUnbufferedWrites() { + h.InvertedIndex.StartUnbufferedWrites() + h.wal = h.newWriter(h.tmpdir, false, false) +} +func (h *History) StartWrites() { + h.InvertedIndex.StartWrites() + h.wal = h.newWriter(h.tmpdir, true, false) +} +func (h *History) FinishWrites() { + h.InvertedIndex.FinishWrites() + h.wal.close() + h.wal = nil +} + +func (h *History) Rotate() historyFlusher { + w := h.wal + h.wal = h.newWriter(h.wal.tmpdir, h.wal.buffered, h.wal.discard) + return historyFlusher{h: w, i: h.InvertedIndex.Rotate()} +} + +type historyFlusher struct { + h *historyWAL + i *invertedIndexWAL +} + +func (f historyFlusher) Flush(ctx context.Context, tx kv.RwTx) error { + if err := f.i.Flush(ctx, tx); err != nil { + return err + } + if err := f.h.flush(ctx, tx); err != nil { + return err + } + return nil +} + +type historyWAL struct { + h *History + historyVals *etl.Collector + tmpdir string + autoIncrementBuf []byte + historyKey []byte + buffered bool + discard bool + + // not large: + // keys: txNum -> key1+key2 + // vals: key1+key2 -> txNum + value (DupSort) + // large: + // keys: txNum -> key1+key2 + // vals: key1+key2+txNum -> value (not DupSort) + largeValues bool +} + +func (h *historyWAL) close() { + if h == nil { // allow dobule-close + return + } + if h.historyVals != nil { + h.historyVals.Close() + } +} + +func (h *History) newWriter(tmpdir string, buffered, discard bool) *historyWAL { + w := &historyWAL{h: h, + tmpdir: tmpdir, + buffered: buffered, + discard: discard, + + autoIncrementBuf: make([]byte, 8), + historyKey: make([]byte, 0, 128), + largeValues: h.largeValues, + } + if buffered { + w.historyVals = etl.NewCollector(h.historyValsTable, tmpdir, etl.NewSortableBuffer(WALCollectorRAM), h.logger) + w.historyVals.LogLvl(log.LvlTrace) + } + return w +} + +func (h *historyWAL) flush(ctx context.Context, tx kv.RwTx) error { + if h.discard || !h.buffered { + return nil + } + if err := h.historyVals.Load(tx, h.h.historyValsTable, loadFunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + h.close() + return nil +} + +func (h *historyWAL) addPrevValue(key1, key2, original []byte) error { + if h.discard { + return nil + } + + ii := h.h.InvertedIndex + if h.largeValues { + lk := len(key1) + len(key2) + historyKey := h.historyKey[:lk+8] + copy(historyKey, key1) + if len(key2) > 0 { + copy(historyKey[len(key1):], key2) + } + copy(historyKey[lk:], h.h.InvertedIndex.txNumBytes[:]) + + if !h.buffered { + if err := h.h.tx.Put(h.h.historyValsTable, historyKey, original); err != nil { + return err + } + if err := ii.tx.Put(ii.indexKeysTable, ii.txNumBytes[:], historyKey[:lk]); err != nil { + return err + } + return nil + } + if err := h.historyVals.Collect(historyKey, original); err != nil { + return err + } + if err := ii.wal.indexKeys.Collect(ii.txNumBytes[:], historyKey[:lk]); err != nil { + return err + } + return nil + } + + lk := len(key1) + len(key2) + historyKey := h.historyKey[:lk+8+len(original)] + copy(historyKey, key1) + copy(historyKey[len(key1):], key2) + copy(historyKey[lk:], h.h.InvertedIndex.txNumBytes[:]) + copy(historyKey[lk+8:], original) + historyKey1 := historyKey[:lk] + historyVal := historyKey[lk:] + invIdxVal := historyKey[:lk] + + if !h.buffered { + if err := h.h.tx.Put(h.h.historyValsTable, historyKey1, historyVal); err != nil { + return err + } + if err := ii.tx.Put(ii.indexKeysTable, ii.txNumBytes[:], invIdxVal); err != nil { + return err + } + return nil + } + if err := h.historyVals.Collect(historyKey1, historyVal); err != nil { + return err + } + if err := ii.wal.indexKeys.Collect(ii.txNumBytes[:], invIdxVal); err != nil { + return err + } + return nil +} + +type HistoryCollation struct { + historyComp *compress.Compressor + indexBitmaps map[string]*roaring64.Bitmap + historyPath string + historyCount int +} + +func (c HistoryCollation) Close() { + if c.historyComp != nil { + c.historyComp.Close() + } + for _, b := range c.indexBitmaps { + bitmapdb.ReturnToPool64(b) + } +} + +func (h *History) collate(step, txFrom, txTo uint64, roTx kv.Tx) (HistoryCollation, error) { + var historyComp *compress.Compressor + var err error + closeComp := true + defer func() { + if closeComp { + if historyComp != nil { + historyComp.Close() + } + } + }() + historyPath := filepath.Join(h.dir, fmt.Sprintf("%s.%d-%d.v", h.filenameBase, step, step+1)) + if historyComp, err = compress.NewCompressor(context.Background(), "collate history", historyPath, h.tmpdir, compress.MinPatternScore, h.compressWorkers, log.LvlTrace, h.logger); err != nil { + return HistoryCollation{}, fmt.Errorf("create %s history compressor: %w", h.filenameBase, err) + } + keysCursor, err := roTx.CursorDupSort(h.indexKeysTable) + if err != nil { + return HistoryCollation{}, fmt.Errorf("create %s history cursor: %w", h.filenameBase, err) + } + defer keysCursor.Close() + indexBitmaps := map[string]*roaring64.Bitmap{} + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], txFrom) + var k, v []byte + for k, v, err = keysCursor.Seek(txKey[:]); err == nil && k != nil; k, v, err = keysCursor.Next() { + txNum := binary.BigEndian.Uint64(k) + if txNum >= txTo { + break + } + var bitmap *roaring64.Bitmap + var ok bool + if bitmap, ok = indexBitmaps[string(v)]; !ok { + bitmap = bitmapdb.NewBitmap64() + indexBitmaps[string(v)] = bitmap + } + bitmap.Add(txNum) + } + if err != nil { + return HistoryCollation{}, fmt.Errorf("iterate over %s history cursor: %w", h.filenameBase, err) + } + keys := make([]string, 0, len(indexBitmaps)) + for key := range indexBitmaps { + keys = append(keys, key) + } + slices.Sort(keys) + historyCount := 0 + keyBuf := make([]byte, 256) + + var c kv.Cursor + var cd kv.CursorDupSort + if h.largeValues { + c, err = roTx.Cursor(h.historyValsTable) + if err != nil { + return HistoryCollation{}, err + } + defer c.Close() + } else { + cd, err = roTx.CursorDupSort(h.historyValsTable) + if err != nil { + return HistoryCollation{}, err + } + defer cd.Close() + } + for _, key := range keys { + bitmap := indexBitmaps[key] + it := bitmap.Iterator() + copy(keyBuf, key) + keyBuf = keyBuf[:len(key)+8] + for it.HasNext() { + txNum := it.Next() + binary.BigEndian.PutUint64(keyBuf[len(key):], txNum) + //TODO: use cursor range + if h.largeValues { + val, err := roTx.GetOne(h.historyValsTable, keyBuf) + if err != nil { + return HistoryCollation{}, fmt.Errorf("get %s history val [%x]: %w", h.filenameBase, k, err) + } + if len(val) == 0 { + val = nil + } + if err = historyComp.AddUncompressedWord(val); err != nil { + return HistoryCollation{}, fmt.Errorf("add %s history val [%x]=>[%x]: %w", h.filenameBase, k, val, err) + } + } else { + val, err := cd.SeekBothRange(keyBuf[:len(key)], keyBuf[len(key):]) + if err != nil { + return HistoryCollation{}, err + } + if val != nil && binary.BigEndian.Uint64(val) == txNum { + val = val[8:] + } else { + val = nil + } + if err = historyComp.AddUncompressedWord(val); err != nil { + return HistoryCollation{}, fmt.Errorf("add %s history val [%x]=>[%x]: %w", h.filenameBase, k, val, err) + } + } + historyCount++ + } + } + closeComp = false + return HistoryCollation{ + historyPath: historyPath, + historyComp: historyComp, + historyCount: historyCount, + indexBitmaps: indexBitmaps, + }, nil +} + +type HistoryFiles struct { + historyDecomp *compress.Decompressor + historyIdx *recsplit.Index + efHistoryDecomp *compress.Decompressor + efHistoryIdx *recsplit.Index +} + +func (sf HistoryFiles) Close() { + if sf.historyDecomp != nil { + sf.historyDecomp.Close() + } + if sf.historyIdx != nil { + sf.historyIdx.Close() + } + if sf.efHistoryDecomp != nil { + sf.efHistoryDecomp.Close() + } + if sf.efHistoryIdx != nil { + sf.efHistoryIdx.Close() + } +} +func (h *History) reCalcRoFiles() { + roFiles := ctxFiles(h.files) + h.roFiles.Store(&roFiles) +} + +// buildFiles performs potentially resource intensive operations of creating +// static files and their indices +func (h *History) buildFiles(ctx context.Context, step uint64, collation HistoryCollation, ps *background.ProgressSet) (HistoryFiles, error) { + historyComp := collation.historyComp + if h.noFsync { + historyComp.DisableFsync() + } + var historyDecomp, efHistoryDecomp *compress.Decompressor + var historyIdx, efHistoryIdx *recsplit.Index + var efHistoryComp *compress.Compressor + var rs *recsplit.RecSplit + closeComp := true + defer func() { + if closeComp { + if historyComp != nil { + historyComp.Close() + } + if historyDecomp != nil { + historyDecomp.Close() + } + if historyIdx != nil { + historyIdx.Close() + } + if efHistoryComp != nil { + efHistoryComp.Close() + } + if efHistoryDecomp != nil { + efHistoryDecomp.Close() + } + if efHistoryIdx != nil { + efHistoryIdx.Close() + } + if rs != nil { + rs.Close() + } + } + }() + + var historyIdxPath, efHistoryPath string + + { + historyIdxFileName := fmt.Sprintf("%s.%d-%d.vi", h.filenameBase, step, step+1) + p := ps.AddNew(historyIdxFileName, 1) + defer ps.Delete(p) + historyIdxPath = filepath.Join(h.dir, historyIdxFileName) + if err := historyComp.Compress(); err != nil { + return HistoryFiles{}, fmt.Errorf("compress %s history: %w", h.filenameBase, err) + } + historyComp.Close() + historyComp = nil + ps.Delete(p) + } + + keys := make([]string, 0, len(collation.indexBitmaps)) + for key := range collation.indexBitmaps { + keys = append(keys, key) + } + slices.Sort(keys) + + { + var err error + if historyDecomp, err = compress.NewDecompressor(collation.historyPath); err != nil { + return HistoryFiles{}, fmt.Errorf("open %s history decompressor: %w", h.filenameBase, err) + } + + // Build history ef + efHistoryFileName := fmt.Sprintf("%s.%d-%d.ef", h.filenameBase, step, step+1) + + p := ps.AddNew(efHistoryFileName, 1) + defer ps.Delete(p) + efHistoryPath = filepath.Join(h.dir, efHistoryFileName) + efHistoryComp, err = compress.NewCompressor(ctx, "ef history", efHistoryPath, h.tmpdir, compress.MinPatternScore, h.compressWorkers, log.LvlTrace, h.logger) + if err != nil { + return HistoryFiles{}, fmt.Errorf("create %s ef history compressor: %w", h.filenameBase, err) + } + if h.noFsync { + efHistoryComp.DisableFsync() + } + var buf []byte + for _, key := range keys { + if err = efHistoryComp.AddUncompressedWord([]byte(key)); err != nil { + return HistoryFiles{}, fmt.Errorf("add %s ef history key [%x]: %w", h.InvertedIndex.filenameBase, key, err) + } + bitmap := collation.indexBitmaps[key] + ef := eliasfano32.NewEliasFano(bitmap.GetCardinality(), bitmap.Maximum()) + it := bitmap.Iterator() + for it.HasNext() { + txNum := it.Next() + ef.AddOffset(txNum) + } + ef.Build() + buf = ef.AppendBytes(buf[:0]) + if err = efHistoryComp.AddUncompressedWord(buf); err != nil { + return HistoryFiles{}, fmt.Errorf("add %s ef history val: %w", h.filenameBase, err) + } + } + if err = efHistoryComp.Compress(); err != nil { + return HistoryFiles{}, fmt.Errorf("compress %s ef history: %w", h.filenameBase, err) + } + efHistoryComp.Close() + efHistoryComp = nil + ps.Delete(p) + } + + var err error + if efHistoryDecomp, err = compress.NewDecompressor(efHistoryPath); err != nil { + return HistoryFiles{}, fmt.Errorf("open %s ef history decompressor: %w", h.filenameBase, err) + } + efHistoryIdxFileName := fmt.Sprintf("%s.%d-%d.efi", h.filenameBase, step, step+1) + efHistoryIdxPath := filepath.Join(h.dir, efHistoryIdxFileName) + p := ps.AddNew(efHistoryIdxFileName, uint64(len(keys)*2)) + defer ps.Delete(p) + if efHistoryIdx, err = buildIndexThenOpen(ctx, efHistoryDecomp, efHistoryIdxPath, h.tmpdir, len(keys), false /* values */, p, h.logger, h.noFsync); err != nil { + return HistoryFiles{}, fmt.Errorf("build %s ef history idx: %w", h.filenameBase, err) + } + if rs, err = recsplit.NewRecSplit(recsplit.RecSplitArgs{ + KeyCount: collation.historyCount, + Enums: false, + BucketSize: 2000, + LeafSize: 8, + TmpDir: h.tmpdir, + IndexFile: historyIdxPath, + }, h.logger); err != nil { + return HistoryFiles{}, fmt.Errorf("create recsplit: %w", err) + } + rs.LogLvl(log.LvlTrace) + if h.noFsync { + rs.DisableFsync() + } + var historyKey []byte + var txKey [8]byte + var valOffset uint64 + g := historyDecomp.MakeGetter() + for { + g.Reset(0) + valOffset = 0 + for _, key := range keys { + bitmap := collation.indexBitmaps[key] + it := bitmap.Iterator() + for it.HasNext() { + txNum := it.Next() + binary.BigEndian.PutUint64(txKey[:], txNum) + historyKey = append(append(historyKey[:0], txKey[:]...), key...) + if err = rs.AddKey(historyKey, valOffset); err != nil { + return HistoryFiles{}, fmt.Errorf("add %s history idx [%x]: %w", h.filenameBase, historyKey, err) + } + valOffset, _ = g.Skip() + } + } + if err = rs.Build(ctx); err != nil { + if rs.Collision() { + log.Info("Building recsplit. Collision happened. It's ok. Restarting...") + rs.ResetNextSalt() + } else { + return HistoryFiles{}, fmt.Errorf("build idx: %w", err) + } + } else { + break + } + } + rs.Close() + rs = nil + if historyIdx, err = recsplit.OpenIndex(historyIdxPath); err != nil { + return HistoryFiles{}, fmt.Errorf("open idx: %w", err) + } + closeComp = false + return HistoryFiles{ + historyDecomp: historyDecomp, + historyIdx: historyIdx, + efHistoryDecomp: efHistoryDecomp, + efHistoryIdx: efHistoryIdx, + }, nil +} + +func (h *History) integrateFiles(sf HistoryFiles, txNumFrom, txNumTo uint64) { + h.InvertedIndex.integrateFiles(InvertedFiles{ + decomp: sf.efHistoryDecomp, + index: sf.efHistoryIdx, + }, txNumFrom, txNumTo) + + fi := newFilesItem(txNumFrom, txNumTo, h.aggregationStep) + fi.decompressor = sf.historyDecomp + fi.index = sf.historyIdx + h.files.Set(fi) + + h.reCalcRoFiles() +} + +func (h *History) warmup(ctx context.Context, txFrom, limit uint64, tx kv.Tx) error { + historyKeysCursor, err := tx.CursorDupSort(h.indexKeysTable) + if err != nil { + return fmt.Errorf("create %s history cursor: %w", h.filenameBase, err) + } + defer historyKeysCursor.Close() + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], txFrom) + valsC, err := tx.Cursor(h.historyValsTable) + if err != nil { + return err + } + defer valsC.Close() + k, v, err := historyKeysCursor.Seek(txKey[:]) + if err != nil { + return err + } + if k == nil { + return nil + } + txFrom = binary.BigEndian.Uint64(k) + txTo := txFrom + h.aggregationStep + if limit != math.MaxUint64 && limit != 0 { + txTo = txFrom + limit + } + keyBuf := make([]byte, 256) + for ; err == nil && k != nil; k, v, err = historyKeysCursor.Next() { + if err != nil { + return err + } + txNum := binary.BigEndian.Uint64(k) + if txNum >= txTo { + break + } + copy(keyBuf, v) + binary.BigEndian.PutUint64(keyBuf[len(v):], txNum) + _, _, _ = valsC.Seek(keyBuf) + + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + } + if err != nil { + return fmt.Errorf("iterate over %s history keys: %w", h.filenameBase, err) + } + + return nil +} + +func (h *History) isEmpty(tx kv.Tx) (bool, error) { + if h.largeValues { + k, err := kv.FirstKey(tx, h.historyValsTable) + if err != nil { + return false, err + } + k2, err := kv.FirstKey(tx, h.indexKeysTable) + if err != nil { + return false, err + } + return k == nil && k2 == nil, nil + } + k, err := kv.FirstKey(tx, h.historyValsTable) + if err != nil { + return false, err + } + k2, err := kv.FirstKey(tx, h.indexKeysTable) + if err != nil { + return false, err + } + return k == nil && k2 == nil, nil +} + +func (h *History) prune(ctx context.Context, txFrom, txTo, limit uint64, logEvery *time.Ticker) error { + historyKeysCursorForDeletes, err := h.tx.RwCursorDupSort(h.indexKeysTable) + if err != nil { + return fmt.Errorf("create %s history cursor: %w", h.filenameBase, err) + } + defer historyKeysCursorForDeletes.Close() + historyKeysCursor, err := h.tx.RwCursorDupSort(h.indexKeysTable) + if err != nil { + return fmt.Errorf("create %s history cursor: %w", h.filenameBase, err) + } + defer historyKeysCursor.Close() + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], txFrom) + var k, v []byte + var valsC kv.RwCursor + var valsCDup kv.RwCursorDupSort + if h.largeValues { + valsC, err = h.tx.RwCursor(h.historyValsTable) + if err != nil { + return err + } + defer valsC.Close() + } else { + valsCDup, err = h.tx.RwCursorDupSort(h.historyValsTable) + if err != nil { + return err + } + defer valsCDup.Close() + } + for k, v, err = historyKeysCursor.Seek(txKey[:]); err == nil && k != nil; k, v, err = historyKeysCursor.Next() { + txNum := binary.BigEndian.Uint64(k) + if txNum >= txTo { + break + } + if limit == 0 { + return nil + } + limit-- + + if h.largeValues { + seek := append(common.Copy(v), k...) + if err := valsC.Delete(seek); err != nil { + return err + } + } else { + vv, err := valsCDup.SeekBothRange(v, k) + if err != nil { + return err + } + if binary.BigEndian.Uint64(vv) != txNum { + continue + } + if err = valsCDup.DeleteCurrent(); err != nil { + return err + } + } + + // This DeleteCurrent needs to the last in the loop iteration, because it invalidates k and v + if _, _, err = historyKeysCursorForDeletes.SeekBothExact(k, v); err != nil { + return err + } + if err = historyKeysCursorForDeletes.DeleteCurrent(); err != nil { + return err + } + } + return nil +} + +type HistoryContext struct { + h *History + ic *InvertedIndexContext + + files []ctxItem // have no garbage (canDelete=true, overlaps, etc...) + getters []*compress.Getter + readers []*recsplit.IndexReader + + trace bool +} + +func (h *History) MakeContext() *HistoryContext { + + var hc = HistoryContext{ + h: h, + ic: h.InvertedIndex.MakeContext(), + files: *h.roFiles.Load(), + + trace: false, + } + for _, item := range hc.files { + if !item.src.frozen { + item.src.refcount.Add(1) + } + } + + return &hc +} + +func (hc *HistoryContext) statelessGetter(i int) *compress.Getter { + if hc.getters == nil { + hc.getters = make([]*compress.Getter, len(hc.files)) + } + r := hc.getters[i] + if r == nil { + r = hc.files[i].src.decompressor.MakeGetter() + hc.getters[i] = r + } + return r +} +func (hc *HistoryContext) statelessIdxReader(i int) *recsplit.IndexReader { + if hc.readers == nil { + hc.readers = make([]*recsplit.IndexReader, len(hc.files)) + } + r := hc.readers[i] + if r == nil { + r = hc.files[i].src.index.GetReaderFromPool() + hc.readers[i] = r + } + return r +} + +func (hc *HistoryContext) Close() { + hc.ic.Close() + for _, item := range hc.files { + if item.src.frozen { + continue + } + refCnt := item.src.refcount.Add(-1) + //if hc.h.filenameBase == "accounts" && item.src.canDelete.Load() { + // log.Warn("[history] HistoryContext.Close: check file to remove", "refCnt", refCnt, "name", item.src.decompressor.FileName()) + //} + //GC: last reader responsible to remove useles files: close it and delete + if refCnt == 0 && item.src.canDelete.Load() { + item.src.closeFilesAndRemove() + } + } + for _, r := range hc.readers { + r.Close() + } + +} + +func (hc *HistoryContext) getFile(from, to uint64) (it ctxItem, ok bool) { + for _, item := range hc.files { + if item.startTxNum == from && item.endTxNum == to { + return item, true + } + } + return it, false +} + +func (hc *HistoryContext) GetNoState(key []byte, txNum uint64) ([]byte, bool, error) { + exactStep1, exactStep2, lastIndexedTxNum, foundExactShard1, foundExactShard2 := hc.h.localityIndex.lookupIdxFiles(hc.ic.loc, key, txNum) + + //fmt.Printf("GetNoState [%x] %d\n", key, txNum) + var foundTxNum uint64 + var foundEndTxNum uint64 + var foundStartTxNum uint64 + var found bool + var findInFile = func(item ctxItem) bool { + reader := hc.ic.statelessIdxReader(item.i) + if reader.Empty() { + return true + } + offset := reader.Lookup(key) + g := hc.ic.statelessGetter(item.i) + g.Reset(offset) + k, _ := g.NextUncompressed() + + if !bytes.Equal(k, key) { + //if bytes.Equal(key, hex.MustDecodeString("009ba32869045058a3f05d6f3dd2abb967e338f6")) { + // fmt.Printf("not in this shard: %x, %d, %d-%d\n", k, txNum, item.startTxNum/hc.h.aggregationStep, item.endTxNum/hc.h.aggregationStep) + //} + return true + } + eliasVal, _ := g.NextUncompressed() + ef, _ := eliasfano32.ReadEliasFano(eliasVal) + n, ok := ef.Search(txNum) + if hc.trace { + n2, _ := ef.Search(n + 1) + n3, _ := ef.Search(n - 1) + fmt.Printf("hist: files: %s %d<-%d->%d->%d, %x\n", hc.h.filenameBase, n3, txNum, n, n2, key) + } + if ok { + foundTxNum = n + foundEndTxNum = item.endTxNum + foundStartTxNum = item.startTxNum + found = true + return false + } + return true + } + + // -- LocaliyIndex opimization -- + // check up to 2 exact files + if foundExactShard1 { + from, to := exactStep1*hc.h.aggregationStep, (exactStep1+StepsInBiggestFile)*hc.h.aggregationStep + item, ok := hc.ic.getFile(from, to) + if ok { + findInFile(item) + } + //for _, item := range hc.invIndexFiles { + // if item.startTxNum == from && item.endTxNum == to { + // findInFile(item) + // } + //} + //exactShard1, ok := hc.invIndexFiles.Get(ctxItem{startTxNum: exactStep1 * hc.h.aggregationStep, endTxNum: (exactStep1 + StepsInBiggestFile) * hc.h.aggregationStep}) + //if ok { + // findInFile(exactShard1) + //} + } + if !found && foundExactShard2 { + from, to := exactStep2*hc.h.aggregationStep, (exactStep2+StepsInBiggestFile)*hc.h.aggregationStep + item, ok := hc.ic.getFile(from, to) + if ok { + findInFile(item) + } + //exactShard2, ok := hc.invIndexFiles.Get(ctxItem{startTxNum: exactStep2 * hc.h.aggregationStep, endTxNum: (exactStep2 + StepsInBiggestFile) * hc.h.aggregationStep}) + //if ok { + // findInFile(exactShard2) + //} + } + // otherwise search in recent non-fully-merged files (they are out of LocalityIndex scope) + // searchFrom - variable already set for this + // if there is no LocaliyIndex available + // -- LocaliyIndex opimization End -- + + if !found { + for _, item := range hc.ic.files { + if item.endTxNum <= lastIndexedTxNum { + continue + } + if !findInFile(item) { + break + } + } + //hc.invIndexFiles.AscendGreaterOrEqual(ctxItem{startTxNum: lastIndexedTxNum, endTxNum: lastIndexedTxNum}, findInFile) + } + + if found { + historyItem, ok := hc.getFile(foundStartTxNum, foundEndTxNum) + if !ok { + return nil, false, fmt.Errorf("hist file not found: key=%x, %s.%d-%d", key, hc.h.filenameBase, foundStartTxNum/hc.h.aggregationStep, foundEndTxNum/hc.h.aggregationStep) + } + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], foundTxNum) + reader := hc.statelessIdxReader(historyItem.i) + offset := reader.Lookup2(txKey[:], key) + //fmt.Printf("offset = %d, txKey=[%x], key=[%x]\n", offset, txKey[:], key) + g := hc.statelessGetter(historyItem.i) + g.Reset(offset) + if hc.h.compressVals { + v, _ := g.Next(nil) + return v, true, nil + } + v, _ := g.NextUncompressed() + return v, true, nil + } + return nil, false, nil +} + +func (hs *HistoryStep) GetNoState(key []byte, txNum uint64) ([]byte, bool, uint64) { + //fmt.Printf("GetNoState [%x] %d\n", key, txNum) + if hs.indexFile.reader.Empty() { + return nil, false, txNum + } + offset := hs.indexFile.reader.Lookup(key) + g := hs.indexFile.getter + g.Reset(offset) + k, _ := g.NextUncompressed() + if !bytes.Equal(k, key) { + return nil, false, txNum + } + //fmt.Printf("Found key=%x\n", k) + eliasVal, _ := g.NextUncompressed() + ef, _ := eliasfano32.ReadEliasFano(eliasVal) + n, ok := ef.Search(txNum) + if !ok { + return nil, false, ef.Max() + } + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], n) + offset = hs.historyFile.reader.Lookup2(txKey[:], key) + //fmt.Printf("offset = %d, txKey=[%x], key=[%x]\n", offset, txKey[:], key) + g = hs.historyFile.getter + g.Reset(offset) + if hs.compressVals { + v, _ := g.Next(nil) + return v, true, txNum + } + v, _ := g.NextUncompressed() + return v, true, txNum +} + +func (hs *HistoryStep) MaxTxNum(key []byte) (bool, uint64) { + if hs.indexFile.reader.Empty() { + return false, 0 + } + offset := hs.indexFile.reader.Lookup(key) + g := hs.indexFile.getter + g.Reset(offset) + k, _ := g.NextUncompressed() + if !bytes.Equal(k, key) { + return false, 0 + } + //fmt.Printf("Found key=%x\n", k) + eliasVal, _ := g.NextUncompressed() + return true, eliasfano32.Max(eliasVal) +} + +// GetNoStateWithRecent searches history for a value of specified key before txNum +// second return value is true if the value is found in the history (even if it is nil) +func (hc *HistoryContext) GetNoStateWithRecent(key []byte, txNum uint64, roTx kv.Tx) ([]byte, bool, error) { + v, ok, err := hc.GetNoState(key, txNum) + if err != nil { + return nil, ok, err + } + if ok { + return v, true, nil + } + + // Value not found in history files, look in the recent history + if roTx == nil { + return nil, false, fmt.Errorf("roTx is nil") + } + return hc.getNoStateFromDB(key, txNum, roTx) +} + +func (hc *HistoryContext) getNoStateFromDB(key []byte, txNum uint64, tx kv.Tx) ([]byte, bool, error) { + if hc.h.largeValues { + c, err := tx.Cursor(hc.h.historyValsTable) + if err != nil { + return nil, false, err + } + defer c.Close() + seek := make([]byte, len(key)+8) + copy(seek, key) + binary.BigEndian.PutUint64(seek[len(key):], txNum) + kAndTxNum, val, err := c.Seek(seek) + if err != nil { + return nil, false, err + } + if kAndTxNum == nil || !bytes.Equal(kAndTxNum[:len(kAndTxNum)-8], key) { + return nil, false, nil + } + // val == []byte{},m eans key was created in this txNum and doesn't exists before. + return val, true, nil + } + c, err := tx.CursorDupSort(hc.h.historyValsTable) + if err != nil { + return nil, false, err + } + defer c.Close() + seek := make([]byte, len(key)+8) + copy(seek, key) + binary.BigEndian.PutUint64(seek[len(key):], txNum) + val, err := c.SeekBothRange(key, seek[len(key):]) + if err != nil { + return nil, false, err + } + if val == nil { + return nil, false, nil + } + // `val == []byte{}` means key was created in this txNum and doesn't exists before. + return val[8:], true, nil +} + +func (hc *HistoryContext) WalkAsOf(startTxNum uint64, from, to []byte, roTx kv.Tx, limit int) iter.KV { + hi := &StateAsOfIterF{ + from: from, to: to, limit: limit, + + hc: hc, + compressVals: hc.h.compressVals, + startTxNum: startTxNum, + } + for _, item := range hc.ic.files { + if item.endTxNum <= startTxNum { + continue + } + // TODO: seek(from) + g := item.src.decompressor.MakeGetter() + g.Reset(0) + if g.HasNext() { + key, offset := g.NextUncompressed() + heap.Push(&hi.h, &ReconItem{g: g, key: key, startTxNum: item.startTxNum, endTxNum: item.endTxNum, txNum: item.endTxNum, startOffset: offset, lastOffset: offset}) + } + } + binary.BigEndian.PutUint64(hi.startTxKey[:], startTxNum) + if err := hi.advanceInFiles(); err != nil { + panic(err) + } + + dbit := &StateAsOfIterDB{ + largeValues: hc.h.largeValues, + roTx: roTx, + valsTable: hc.h.historyValsTable, + from: from, to: to, limit: limit, + + startTxNum: startTxNum, + } + binary.BigEndian.PutUint64(dbit.startTxKey[:], startTxNum) + if err := dbit.advance(); err != nil { + panic(err) + } + return iter.UnionKV(hi, dbit, limit) +} + +// StateAsOfIter - returns state range at given time in history +type StateAsOfIterF struct { + hc *HistoryContext + limit int + + from, to []byte + nextVal []byte + nextKey []byte + + h ReconHeap + startTxNum uint64 + startTxKey [8]byte + txnKey [8]byte + compressVals bool + + k, v, kBackup, vBackup []byte +} + +func (hi *StateAsOfIterF) Close() { +} + +func (hi *StateAsOfIterF) advanceInFiles() error { + for hi.h.Len() > 0 { + top := heap.Pop(&hi.h).(*ReconItem) + key := top.key + var idxVal []byte + if hi.compressVals { + idxVal, _ = top.g.Next(nil) + } else { + idxVal, _ = top.g.NextUncompressed() + } + if top.g.HasNext() { + if hi.compressVals { + top.key, _ = top.g.Next(nil) + } else { + top.key, _ = top.g.NextUncompressed() + } + if hi.to == nil || bytes.Compare(top.key, hi.to) < 0 { + heap.Push(&hi.h, top) + } + } + + if hi.from != nil && bytes.Compare(key, hi.from) < 0 { //TODO: replace by Seek() + continue + } + + if bytes.Equal(key, hi.nextKey) { + continue + } + ef, _ := eliasfano32.ReadEliasFano(idxVal) + n, ok := ef.Search(hi.startTxNum) + if !ok { + continue + } + + hi.nextKey = key + binary.BigEndian.PutUint64(hi.txnKey[:], n) + historyItem, ok := hi.hc.getFile(top.startTxNum, top.endTxNum) + if !ok { + return fmt.Errorf("no %s file found for [%x]", hi.hc.h.filenameBase, hi.nextKey) + } + reader := hi.hc.statelessIdxReader(historyItem.i) + offset := reader.Lookup2(hi.txnKey[:], hi.nextKey) + g := hi.hc.statelessGetter(historyItem.i) + g.Reset(offset) + if hi.compressVals { + hi.nextVal, _ = g.Next(nil) + } else { + hi.nextVal, _ = g.NextUncompressed() + } + return nil + } + hi.nextKey = nil + return nil +} + +func (hi *StateAsOfIterF) HasNext() bool { + return hi.limit != 0 && hi.nextKey != nil +} + +func (hi *StateAsOfIterF) Next() ([]byte, []byte, error) { + hi.limit-- + hi.k, hi.v = append(hi.k[:0], hi.nextKey...), append(hi.v[:0], hi.nextVal...) + + // Satisfy iter.Dual Invariant 2 + hi.k, hi.kBackup, hi.v, hi.vBackup = hi.kBackup, hi.k, hi.vBackup, hi.v + if err := hi.advanceInFiles(); err != nil { + return nil, nil, err + } + return hi.kBackup, hi.vBackup, nil +} + +// StateAsOfIterDB - returns state range at given time in history +type StateAsOfIterDB struct { + largeValues bool + roTx kv.Tx + valsC kv.Cursor + valsCDup kv.CursorDupSort + valsTable string + + from, to []byte + limit int + + nextKey, nextVal []byte + + startTxNum uint64 + startTxKey [8]byte + + k, v, kBackup, vBackup []byte + err error +} + +func (hi *StateAsOfIterDB) Close() { + if hi.valsC != nil { + hi.valsC.Close() + } +} + +func (hi *StateAsOfIterDB) advance() (err error) { + // not large: + // keys: txNum -> key1+key2 + // vals: key1+key2 -> txNum + value (DupSort) + // large: + // keys: txNum -> key1+key2 + // vals: key1+key2+txNum -> value (not DupSort) + if hi.largeValues { + return hi.advanceLargeVals() + } + return hi.advanceSmallVals() +} +func (hi *StateAsOfIterDB) advanceLargeVals() error { + var seek []byte + var err error + if hi.valsC == nil { + if hi.valsC, err = hi.roTx.Cursor(hi.valsTable); err != nil { + return err + } + firstKey, _, err := hi.valsC.Seek(hi.from) + if err != nil { + return err + } + if firstKey == nil { + hi.nextKey = nil + return nil + } + seek = append(common.Copy(firstKey[:len(firstKey)-8]), hi.startTxKey[:]...) + } else { + next, ok := kv.NextSubtree(hi.nextKey) + if !ok { + hi.nextKey = nil + return nil + } + + seek = append(next, hi.startTxKey[:]...) + } + for k, v, err := hi.valsC.Seek(seek); k != nil; k, v, err = hi.valsC.Seek(seek) { + if err != nil { + return err + } + if hi.to != nil && bytes.Compare(k[:len(k)-8], hi.to) >= 0 { + break + } + if !bytes.Equal(seek[:len(k)-8], k[:len(k)-8]) { + copy(seek[:len(k)-8], k[:len(k)-8]) + continue + } + hi.nextKey = k[:len(k)-8] + hi.nextVal = v + return nil + } + hi.nextKey = nil + return nil +} +func (hi *StateAsOfIterDB) advanceSmallVals() error { + var seek []byte + var err error + if hi.valsCDup == nil { + if hi.valsCDup, err = hi.roTx.CursorDupSort(hi.valsTable); err != nil { + return err + } + seek = hi.from + } else { + next, ok := kv.NextSubtree(hi.nextKey) + if !ok { + hi.nextKey = nil + return nil + } + seek = next + } + for k, _, err := hi.valsCDup.Seek(seek); k != nil; k, _, err = hi.valsCDup.NextNoDup() { + if err != nil { + return err + } + if hi.to != nil && bytes.Compare(k, hi.to) >= 0 { + break + } + v, err := hi.valsCDup.SeekBothRange(k, hi.startTxKey[:]) + if err != nil { + return err + } + if v == nil { + continue + } + hi.nextKey = k + hi.nextVal = v[8:] + return nil + } + hi.nextKey = nil + return nil +} + +func (hi *StateAsOfIterDB) HasNext() bool { + if hi.err != nil { + return true + } + return hi.limit != 0 && hi.nextKey != nil +} + +func (hi *StateAsOfIterDB) Next() ([]byte, []byte, error) { + if hi.err != nil { + return nil, nil, hi.err + } + hi.limit-- + hi.k, hi.v = hi.nextKey, hi.nextVal + + // Satisfy iter.Dual Invariant 2 + hi.k, hi.kBackup, hi.v, hi.vBackup = hi.kBackup, hi.k, hi.vBackup, hi.v + if err := hi.advance(); err != nil { + return nil, nil, err + } + return hi.kBackup, hi.vBackup, nil +} + +func (hc *HistoryContext) iterateChangedFrozen(fromTxNum, toTxNum int, asc order.By, limit int) (iter.KV, error) { + if asc == false { + panic("not supported yet") + } + if len(hc.ic.files) == 0 { + return iter.EmptyKV, nil + } + + if fromTxNum >= 0 && hc.ic.files[len(hc.ic.files)-1].endTxNum <= uint64(fromTxNum) { + return iter.EmptyKV, nil + } + + hi := &HistoryChangesIterFiles{ + hc: hc, + compressVals: hc.h.compressVals, + startTxNum: cmp.Max(0, uint64(fromTxNum)), + endTxNum: toTxNum, + limit: limit, + } + if fromTxNum >= 0 { + binary.BigEndian.PutUint64(hi.startTxKey[:], uint64(fromTxNum)) + } + for _, item := range hc.ic.files { + if fromTxNum >= 0 && item.endTxNum <= uint64(fromTxNum) { + continue + } + if toTxNum >= 0 && item.startTxNum >= uint64(toTxNum) { + break + } + g := item.src.decompressor.MakeGetter() + g.Reset(0) + if g.HasNext() { + key, offset := g.NextUncompressed() + heap.Push(&hi.h, &ReconItem{g: g, key: key, startTxNum: item.startTxNum, endTxNum: item.endTxNum, txNum: item.endTxNum, startOffset: offset, lastOffset: offset}) + } + } + if err := hi.advance(); err != nil { + return nil, err + } + return hi, nil +} + +func (hc *HistoryContext) iterateChangedRecent(fromTxNum, toTxNum int, asc order.By, limit int, roTx kv.Tx) (iter.KV, error) { + if asc == order.Desc { + panic("not supported yet") + } + rangeIsInFiles := toTxNum >= 0 && len(hc.ic.files) > 0 && hc.ic.files[len(hc.ic.files)-1].endTxNum >= uint64(toTxNum) + if rangeIsInFiles { + return iter.EmptyKV, nil + } + dbi := &HistoryChangesIterDB{ + endTxNum: toTxNum, + roTx: roTx, + largeValues: hc.h.largeValues, + valsTable: hc.h.historyValsTable, + limit: limit, + } + if fromTxNum >= 0 { + binary.BigEndian.PutUint64(dbi.startTxKey[:], uint64(fromTxNum)) + } + if err := dbi.advance(); err != nil { + return nil, err + } + return dbi, nil +} + +func (hc *HistoryContext) HistoryRange(fromTxNum, toTxNum int, asc order.By, limit int, roTx kv.Tx) (iter.KV, error) { + if asc == order.Desc { + panic("not supported yet") + } + itOnFiles, err := hc.iterateChangedFrozen(fromTxNum, toTxNum, asc, limit) + if err != nil { + return nil, err + } + itOnDB, err := hc.iterateChangedRecent(fromTxNum, toTxNum, asc, limit, roTx) + if err != nil { + return nil, err + } + + return iter.UnionKV(itOnFiles, itOnDB, limit), nil +} + +type HistoryChangesIterFiles struct { + hc *HistoryContext + nextVal []byte + nextKey []byte + h ReconHeap + startTxNum uint64 + endTxNum int + startTxKey [8]byte + txnKey [8]byte + compressVals bool + + k, v, kBackup, vBackup []byte + err error + limit int +} + +func (hi *HistoryChangesIterFiles) Close() { +} + +func (hi *HistoryChangesIterFiles) advance() error { + for hi.h.Len() > 0 { + top := heap.Pop(&hi.h).(*ReconItem) + key := top.key + var idxVal []byte + if hi.compressVals { + idxVal, _ = top.g.Next(nil) + } else { + idxVal, _ = top.g.NextUncompressed() + } + if top.g.HasNext() { + if hi.compressVals { + top.key, _ = top.g.Next(nil) + } else { + top.key, _ = top.g.NextUncompressed() + } + heap.Push(&hi.h, top) + } + + if bytes.Equal(key, hi.nextKey) { + continue + } + ef, _ := eliasfano32.ReadEliasFano(idxVal) + n, ok := ef.Search(hi.startTxNum) //TODO: if startTxNum==0, can do ef.Get(0) + if !ok { + continue + } + if int(n) >= hi.endTxNum { + continue + } + + hi.nextKey = key + binary.BigEndian.PutUint64(hi.txnKey[:], n) + historyItem, ok := hi.hc.getFile(top.startTxNum, top.endTxNum) + if !ok { + return fmt.Errorf("HistoryChangesIterFiles: no %s file found for [%x]", hi.hc.h.filenameBase, hi.nextKey) + } + reader := hi.hc.statelessIdxReader(historyItem.i) + offset := reader.Lookup2(hi.txnKey[:], hi.nextKey) + g := hi.hc.statelessGetter(historyItem.i) + g.Reset(offset) + if hi.compressVals { + hi.nextVal, _ = g.Next(nil) + } else { + hi.nextVal, _ = g.NextUncompressed() + } + return nil + } + hi.nextKey = nil + return nil +} + +func (hi *HistoryChangesIterFiles) HasNext() bool { + if hi.err != nil { // always true, then .Next() call will return this error + return true + } + if hi.limit == 0 { // limit reached + return false + } + if hi.nextKey == nil { // EndOfTable + return false + } + return true + //if hi.toPrefix == nil { // s.nextK == nil check is above + // return true + //} +} + +func (hi *HistoryChangesIterFiles) Next() ([]byte, []byte, error) { + if hi.err != nil { + return nil, nil, hi.err + } + hi.limit-- + hi.k, hi.v = append(hi.k[:0], hi.nextKey...), append(hi.v[:0], hi.nextVal...) + + // Satisfy iter.Dual Invariant 2 + hi.k, hi.kBackup, hi.v, hi.vBackup = hi.kBackup, hi.k, hi.vBackup, hi.v + if err := hi.advance(); err != nil { + return nil, nil, err + } + return hi.kBackup, hi.vBackup, nil +} + +type HistoryChangesIterDB struct { + largeValues bool + roTx kv.Tx + valsC kv.Cursor + valsCDup kv.CursorDupSort + valsTable string + limit, endTxNum int + startTxKey [8]byte + + nextKey, nextVal []byte + k, v []byte + err error +} + +func (hi *HistoryChangesIterDB) Close() { + if hi.valsC != nil { + hi.valsC.Close() + } + if hi.valsCDup != nil { + hi.valsCDup.Close() + } +} +func (hi *HistoryChangesIterDB) advance() (err error) { + // not large: + // keys: txNum -> key1+key2 + // vals: key1+key2 -> txNum + value (DupSort) + // large: + // keys: txNum -> key1+key2 + // vals: key1+key2+txNum -> value (not DupSort) + if hi.largeValues { + return hi.advanceLargeVals() + } + return hi.advanceSmallVals() +} +func (hi *HistoryChangesIterDB) advanceLargeVals() error { + var seek []byte + var err error + if hi.valsC == nil { + if hi.valsC, err = hi.roTx.Cursor(hi.valsTable); err != nil { + return err + } + firstKey, _, err := hi.valsC.First() + if err != nil { + return err + } + if firstKey == nil { + hi.nextKey = nil + return nil + } + seek = append(common.Copy(firstKey[:len(firstKey)-8]), hi.startTxKey[:]...) + } else { + next, ok := kv.NextSubtree(hi.nextKey) + if !ok { + hi.nextKey = nil + return nil + } + + seek = append(next, hi.startTxKey[:]...) + } + for k, v, err := hi.valsC.Seek(seek); k != nil; k, v, err = hi.valsC.Seek(seek) { + if err != nil { + return err + } + if hi.endTxNum >= 0 && int(binary.BigEndian.Uint64(k[len(k)-8:])) >= hi.endTxNum { + next, ok := kv.NextSubtree(k[:len(k)-8]) + if !ok { + hi.nextKey = nil + return nil + } + seek = append(next, hi.startTxKey[:]...) + continue + } + if !bytes.Equal(seek[:len(k)-8], k[:len(k)-8]) { + copy(seek[:len(k)-8], k[:len(k)-8]) + continue + } + hi.nextKey = k[:len(k)-8] + hi.nextVal = v + return nil + } + hi.nextKey = nil + return nil +} +func (hi *HistoryChangesIterDB) advanceSmallVals() (err error) { + var k []byte + if hi.valsCDup == nil { + if hi.valsCDup, err = hi.roTx.CursorDupSort(hi.valsTable); err != nil { + return err + } + + if k, _, err = hi.valsCDup.First(); err != nil { + return err + } + } else { + if k, _, err = hi.valsCDup.NextNoDup(); err != nil { + return err + } + } + for ; k != nil; k, _, err = hi.valsCDup.NextNoDup() { + if err != nil { + return err + } + v, err := hi.valsCDup.SeekBothRange(k, hi.startTxKey[:]) + if err != nil { + return err + } + if v == nil { + continue + } + foundTxNumVal := v[:8] + if hi.endTxNum >= 0 && int(binary.BigEndian.Uint64(foundTxNumVal)) >= hi.endTxNum { + continue + } + hi.nextKey = k + hi.nextVal = v[8:] + return nil + } + hi.nextKey = nil + return nil +} + +func (hi *HistoryChangesIterDB) HasNext() bool { + if hi.err != nil { // always true, then .Next() call will return this error + return true + } + if hi.limit == 0 { // limit reached + return false + } + if hi.nextKey == nil { // EndOfTable + return false + } + return true +} + +func (hi *HistoryChangesIterDB) Next() ([]byte, []byte, error) { + if hi.err != nil { + return nil, nil, hi.err + } + hi.limit-- + hi.k, hi.v = hi.nextKey, hi.nextVal + if err := hi.advance(); err != nil { + return nil, nil, err + } + return hi.k, hi.v, nil +} + +func (h *History) DisableReadAhead() { + h.InvertedIndex.DisableReadAhead() + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + item.decompressor.DisableReadAhead() + if item.index != nil { + item.index.DisableReadAhead() + } + } + return true + }) +} + +func (h *History) EnableReadAhead() *History { + h.InvertedIndex.EnableReadAhead() + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + item.decompressor.EnableReadAhead() + if item.index != nil { + item.index.EnableReadAhead() + } + } + return true + }) + return h +} +func (h *History) EnableMadvWillNeed() *History { + h.InvertedIndex.EnableMadvWillNeed() + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + item.decompressor.EnableWillNeed() + if item.index != nil { + item.index.EnableWillNeed() + } + } + return true + }) + return h +} +func (h *History) EnableMadvNormalReadAhead() *History { + h.InvertedIndex.EnableMadvNormalReadAhead() + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + item.decompressor.EnableMadvNormal() + if item.index != nil { + item.index.EnableMadvNormal() + } + } + return true + }) + return h +} + +// HistoryStep used for incremental state reconsitution, it isolates only one snapshot interval +type HistoryStep struct { + compressVals bool + indexItem *filesItem + indexFile ctxItem + historyItem *filesItem + historyFile ctxItem +} + +// MakeSteps [0, toTxNum) +func (h *History) MakeSteps(toTxNum uint64) []*HistoryStep { + var steps []*HistoryStep + h.InvertedIndex.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.index == nil || !item.frozen || item.startTxNum >= toTxNum { + continue + } + + step := &HistoryStep{ + compressVals: h.compressVals, + indexItem: item, + indexFile: ctxItem{ + startTxNum: item.startTxNum, + endTxNum: item.endTxNum, + getter: item.decompressor.MakeGetter(), + reader: recsplit.NewIndexReader(item.index), + }, + } + steps = append(steps, step) + } + return true + }) + i := 0 + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.index == nil || !item.frozen || item.startTxNum >= toTxNum { + continue + } + steps[i].historyItem = item + steps[i].historyFile = ctxItem{ + startTxNum: item.startTxNum, + endTxNum: item.endTxNum, + getter: item.decompressor.MakeGetter(), + reader: recsplit.NewIndexReader(item.index), + } + i++ + } + return true + }) + return steps +} + +func (hs *HistoryStep) Clone() *HistoryStep { + return &HistoryStep{ + compressVals: hs.compressVals, + indexItem: hs.indexItem, + indexFile: ctxItem{ + startTxNum: hs.indexFile.startTxNum, + endTxNum: hs.indexFile.endTxNum, + getter: hs.indexItem.decompressor.MakeGetter(), + reader: recsplit.NewIndexReader(hs.indexItem.index), + }, + historyItem: hs.historyItem, + historyFile: ctxItem{ + startTxNum: hs.historyFile.startTxNum, + endTxNum: hs.historyFile.endTxNum, + getter: hs.historyItem.decompressor.MakeGetter(), + reader: recsplit.NewIndexReader(hs.historyItem.index), + }, + } +} + +func (hc *HistoryContext) idxRangeRecent(key []byte, startTxNum, endTxNum int, asc order.By, limit int, roTx kv.Tx) (iter.U64, error) { + var dbIt iter.U64 + if hc.h.largeValues { + if asc { + from := make([]byte, len(key)+8) + copy(from, key) + var fromTxNum uint64 + if startTxNum >= 0 { + fromTxNum = uint64(startTxNum) + } + binary.BigEndian.PutUint64(from[len(key):], fromTxNum) + + to := common.Copy(from) + toTxNum := uint64(math.MaxUint64) + if endTxNum >= 0 { + toTxNum = uint64(endTxNum) + } + binary.BigEndian.PutUint64(to[len(key):], toTxNum) + + it, err := roTx.RangeAscend(hc.h.historyValsTable, from, to, limit) + if err != nil { + return nil, err + } + dbIt = iter.TransformKV2U64(it, func(k, _ []byte) (uint64, error) { + return binary.BigEndian.Uint64(k[len(k)-8:]), nil + }) + } else { + panic("implement me") + } + } else { + if asc { + var from, to []byte + if startTxNum >= 0 { + from = make([]byte, 8) + binary.BigEndian.PutUint64(from, uint64(startTxNum)) + } + if endTxNum >= 0 { + to = make([]byte, 8) + binary.BigEndian.PutUint64(to, uint64(endTxNum)) + } + it, err := roTx.RangeDupSort(hc.h.historyValsTable, key, from, to, asc, limit) + if err != nil { + return nil, err + } + dbIt = iter.TransformKV2U64(it, func(_, v []byte) (uint64, error) { + return binary.BigEndian.Uint64(v), nil + }) + } else { + panic("implement me") + } + } + + return dbIt, nil +} +func (hc *HistoryContext) IdxRange(key []byte, startTxNum, endTxNum int, asc order.By, limit int, roTx kv.Tx) (iter.U64, error) { + frozenIt, err := hc.ic.iterateRangeFrozen(key, startTxNum, endTxNum, asc, limit) + if err != nil { + return nil, err + } + recentIt, err := hc.idxRangeRecent(key, startTxNum, endTxNum, asc, limit, roTx) + if err != nil { + return nil, err + } + return iter.Union[uint64](frozenIt, recentIt, asc, limit), nil +} diff --git a/erigon-lib/state/history_test.go b/erigon-lib/state/history_test.go new file mode 100644 index 00000000000..f1ca17d1f74 --- /dev/null +++ b/erigon-lib/state/history_test.go @@ -0,0 +1,832 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "context" + "encoding/binary" + "fmt" + "math" + "strings" + "testing" + "time" + + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" + btree2 "github.com/tidwall/btree" +) + +func testDbAndHistory(tb testing.TB, largeValues bool, logger log.Logger) (string, kv.RwDB, *History) { + tb.Helper() + path := tb.TempDir() + keysTable := "AccountKeys" + indexTable := "AccountIndex" + valsTable := "AccountVals" + settingsTable := "Settings" //nolint + db := mdbx.NewMDBX(logger).InMem(path).WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { + return kv.TableCfg{ + keysTable: kv.TableCfgItem{Flags: kv.DupSort}, + indexTable: kv.TableCfgItem{Flags: kv.DupSort}, + valsTable: kv.TableCfgItem{Flags: kv.DupSort}, + settingsTable: kv.TableCfgItem{}, + } + }).MustOpen() + h, err := NewHistory(path, path, 16, "hist", keysTable, indexTable, valsTable, false, nil, false, logger) + require.NoError(tb, err) + h.DisableFsync() + tb.Cleanup(db.Close) + tb.Cleanup(h.Close) + return path, db, h +} + +func TestHistoryCollationBuild(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + + test := func(t *testing.T, h *History, db kv.RwDB) { + t.Helper() + require := require.New(t) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + h.SetTx(tx) + h.StartWrites() + defer h.FinishWrites() + + h.SetTxNum(2) + err = h.AddPrevValue([]byte("key1"), nil, nil) + require.NoError(err) + + h.SetTxNum(3) + err = h.AddPrevValue([]byte("key2"), nil, nil) + require.NoError(err) + + h.SetTxNum(6) + err = h.AddPrevValue([]byte("key1"), nil, []byte("value1.1")) + require.NoError(err) + err = h.AddPrevValue([]byte("key2"), nil, []byte("value2.1")) + require.NoError(err) + + flusher := h.Rotate() + + h.SetTxNum(7) + err = h.AddPrevValue([]byte("key2"), nil, []byte("value2.2")) + require.NoError(err) + err = h.AddPrevValue([]byte("key3"), nil, nil) + require.NoError(err) + + err = flusher.Flush(ctx, tx) + require.NoError(err) + + err = h.Rotate().Flush(ctx, tx) + require.NoError(err) + + c, err := h.collate(0, 0, 8, tx) + require.NoError(err) + require.True(strings.HasSuffix(c.historyPath, "hist.0-1.v")) + require.Equal(6, c.historyCount) + require.Equal(3, len(c.indexBitmaps)) + require.Equal([]uint64{7}, c.indexBitmaps["key3"].ToArray()) + require.Equal([]uint64{3, 6, 7}, c.indexBitmaps["key2"].ToArray()) + require.Equal([]uint64{2, 6}, c.indexBitmaps["key1"].ToArray()) + + sf, err := h.buildFiles(ctx, 0, c, background.NewProgressSet()) + require.NoError(err) + defer sf.Close() + var valWords []string + g := sf.historyDecomp.MakeGetter() + g.Reset(0) + for g.HasNext() { + w, _ := g.Next(nil) + valWords = append(valWords, string(w)) + } + require.Equal([]string{"", "value1.1", "", "value2.1", "value2.2", ""}, valWords) + require.Equal(6, int(sf.historyIdx.KeyCount())) + g = sf.efHistoryDecomp.MakeGetter() + g.Reset(0) + var keyWords []string + var intArrs [][]uint64 + for g.HasNext() { + w, _ := g.Next(nil) + keyWords = append(keyWords, string(w)) + w, _ = g.Next(w[:0]) + ef, _ := eliasfano32.ReadEliasFano(w) + ints, err := iter.ToU64Arr(ef.Iterator()) + require.NoError(err) + intArrs = append(intArrs, ints) + } + require.Equal([]string{"key1", "key2", "key3"}, keyWords) + require.Equal([][]uint64{{2, 6}, {3, 6, 7}, {7}}, intArrs) + r := recsplit.NewIndexReader(sf.efHistoryIdx) + for i := 0; i < len(keyWords); i++ { + offset := r.Lookup([]byte(keyWords[i])) + g.Reset(offset) + w, _ := g.Next(nil) + require.Equal(keyWords[i], string(w)) + } + r = recsplit.NewIndexReader(sf.historyIdx) + g = sf.historyDecomp.MakeGetter() + var vi int + for i := 0; i < len(keyWords); i++ { + ints := intArrs[i] + for j := 0; j < len(ints); j++ { + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], ints[j]) + offset := r.Lookup2(txKey[:], []byte(keyWords[i])) + g.Reset(offset) + w, _ := g.Next(nil) + require.Equal(valWords[vi], string(w)) + vi++ + } + } + } + t.Run("large_values", func(t *testing.T) { + _, db, h := testDbAndHistory(t, true, logger) + test(t, h, db) + }) + t.Run("small_values", func(t *testing.T) { + _, db, h := testDbAndHistory(t, false, logger) + test(t, h, db) + }) +} + +func TestHistoryAfterPrune(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + test := func(t *testing.T, h *History, db kv.RwDB) { + t.Helper() + require := require.New(t) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + h.SetTx(tx) + h.StartWrites() + defer h.FinishWrites() + + h.SetTxNum(2) + err = h.AddPrevValue([]byte("key1"), nil, nil) + require.NoError(err) + + h.SetTxNum(3) + err = h.AddPrevValue([]byte("key2"), nil, nil) + require.NoError(err) + + h.SetTxNum(6) + err = h.AddPrevValue([]byte("key1"), nil, []byte("value1.1")) + require.NoError(err) + err = h.AddPrevValue([]byte("key2"), nil, []byte("value2.1")) + require.NoError(err) + + h.SetTxNum(7) + err = h.AddPrevValue([]byte("key2"), nil, []byte("value2.2")) + require.NoError(err) + err = h.AddPrevValue([]byte("key3"), nil, nil) + require.NoError(err) + + err = h.Rotate().Flush(ctx, tx) + require.NoError(err) + + c, err := h.collate(0, 0, 16, tx) + require.NoError(err) + + sf, err := h.buildFiles(ctx, 0, c, background.NewProgressSet()) + require.NoError(err) + + h.integrateFiles(sf, 0, 16) + + err = h.prune(ctx, 0, 16, math.MaxUint64, logEvery) + require.NoError(err) + h.SetTx(tx) + + for _, table := range []string{h.indexKeysTable, h.historyValsTable, h.indexTable} { + var cur kv.Cursor + cur, err = tx.Cursor(table) + require.NoError(err) + defer cur.Close() + var k []byte + k, _, err = cur.First() + require.NoError(err) + require.Nil(k, table) + } + } + t.Run("large_values", func(t *testing.T) { + _, db, h := testDbAndHistory(t, true, logger) + test(t, h, db) + }) + t.Run("small_values", func(t *testing.T) { + _, db, h := testDbAndHistory(t, false, logger) + test(t, h, db) + }) +} + +func filledHistory(tb testing.TB, largeValues bool, logger log.Logger) (string, kv.RwDB, *History, uint64) { + tb.Helper() + path, db, h := testDbAndHistory(tb, largeValues, logger) + ctx := context.Background() + tx, err := db.BeginRw(ctx) + require.NoError(tb, err) + defer tx.Rollback() + h.SetTx(tx) + h.StartWrites() + defer h.FinishWrites() + + txs := uint64(1000) + // keys are encodings of numbers 1..31 + // each key changes value on every txNum which is multiple of the key + var prevVal [32][]byte + var flusher flusher + for txNum := uint64(1); txNum <= txs; txNum++ { + h.SetTxNum(txNum) + for keyNum := uint64(1); keyNum <= uint64(31); keyNum++ { + if txNum%keyNum == 0 { + valNum := txNum / keyNum + var k [8]byte + var v [8]byte + binary.BigEndian.PutUint64(k[:], keyNum) + binary.BigEndian.PutUint64(v[:], valNum) + k[0] = 1 //mark key to simplify debug + v[0] = 255 //mark value to simplify debug + err = h.AddPrevValue(k[:], nil, prevVal[keyNum]) + require.NoError(tb, err) + prevVal[keyNum] = v[:] + } + } + if flusher != nil { + err = flusher.Flush(ctx, tx) + require.NoError(tb, err) + flusher = nil + } + if txNum%10 == 0 { + flusher = h.Rotate() + } + } + if flusher != nil { + err = flusher.Flush(ctx, tx) + require.NoError(tb, err) + } + err = h.Rotate().Flush(ctx, tx) + require.NoError(tb, err) + err = tx.Commit() + require.NoError(tb, err) + + return path, db, h, txs +} + +func checkHistoryHistory(t *testing.T, h *History, txs uint64) { + t.Helper() + // Check the history + hc := h.MakeContext() + defer hc.Close() + + for txNum := uint64(0); txNum <= txs; txNum++ { + for keyNum := uint64(1); keyNum <= uint64(31); keyNum++ { + valNum := txNum / keyNum + var k [8]byte + var v [8]byte + label := fmt.Sprintf("txNum=%d, keyNum=%d", txNum, keyNum) + //fmt.Printf("label=%s\n", label) + binary.BigEndian.PutUint64(k[:], keyNum) + binary.BigEndian.PutUint64(v[:], valNum) + k[0], v[0] = 0x01, 0xff + val, ok, err := hc.GetNoState(k[:], txNum+1) + //require.Equal(t, ok, txNum < 976) + if ok { + require.NoError(t, err, label) + if txNum >= keyNum { + require.Equal(t, v[:], val, label) + } else { + require.Equal(t, []byte{}, val, label) + } + } + } + } +} + +func TestHistoryHistory(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + test := func(t *testing.T, h *History, db kv.RwDB, txs uint64) { + t.Helper() + require := require.New(t) + tx, err := db.BeginRw(ctx) + require.NoError(err) + h.SetTx(tx) + defer tx.Rollback() + + // Leave the last 2 aggregation steps un-collated + for step := uint64(0); step < txs/h.aggregationStep-1; step++ { + func() { + c, err := h.collate(step, step*h.aggregationStep, (step+1)*h.aggregationStep, tx) + require.NoError(err) + sf, err := h.buildFiles(ctx, step, c, background.NewProgressSet()) + require.NoError(err) + h.integrateFiles(sf, step*h.aggregationStep, (step+1)*h.aggregationStep) + err = h.prune(ctx, step*h.aggregationStep, (step+1)*h.aggregationStep, math.MaxUint64, logEvery) + require.NoError(err) + }() + } + checkHistoryHistory(t, h, txs) + } + t.Run("large_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, true, logger) + test(t, h, db, txs) + }) + t.Run("small_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, false, logger) + test(t, h, db, txs) + }) + +} + +func collateAndMergeHistory(tb testing.TB, db kv.RwDB, h *History, txs uint64) { + tb.Helper() + require := require.New(tb) + + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + tx, err := db.BeginRwNosync(ctx) + require.NoError(err) + h.SetTx(tx) + defer tx.Rollback() + + // Leave the last 2 aggregation steps un-collated + for step := uint64(0); step < txs/h.aggregationStep-1; step++ { + c, err := h.collate(step, step*h.aggregationStep, (step+1)*h.aggregationStep, tx) + require.NoError(err) + sf, err := h.buildFiles(ctx, step, c, background.NewProgressSet()) + require.NoError(err) + h.integrateFiles(sf, step*h.aggregationStep, (step+1)*h.aggregationStep) + err = h.prune(ctx, step*h.aggregationStep, (step+1)*h.aggregationStep, math.MaxUint64, logEvery) + require.NoError(err) + } + + var r HistoryRanges + maxEndTxNum := h.endTxNumMinimax() + + maxSpan := h.aggregationStep * StepsInBiggestFile + + for { + if stop := func() bool { + hc := h.MakeContext() + defer hc.Close() + r = h.findMergeRange(maxEndTxNum, maxSpan) + if !r.any() { + return true + } + indexOuts, historyOuts, _, err := hc.staticFilesInRange(r) + require.NoError(err) + indexIn, historyIn, err := h.mergeFiles(ctx, indexOuts, historyOuts, r, 1, background.NewProgressSet()) + require.NoError(err) + h.integrateMergedFiles(indexOuts, historyOuts, indexIn, historyIn) + return false + }(); stop { + break + } + } + + hc := h.MakeContext() + defer hc.Close() + err = hc.BuildOptionalMissedIndices(ctx) + require.NoError(err) + + err = tx.Commit() + require.NoError(err) +} + +func TestHistoryMergeFiles(t *testing.T) { + logger := log.New() + test := func(t *testing.T, h *History, db kv.RwDB, txs uint64) { + t.Helper() + collateAndMergeHistory(t, db, h, txs) + checkHistoryHistory(t, h, txs) + } + + t.Run("large_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, true, logger) + test(t, h, db, txs) + }) + t.Run("small_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, false, logger) + test(t, h, db, txs) + }) +} + +func TestHistoryScanFiles(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + test := func(t *testing.T, h *History, db kv.RwDB, txs uint64) { + t.Helper() + require := require.New(t) + + collateAndMergeHistory(t, db, h, txs) + // Recreate domain and re-scan the files + txNum := h.txNum + require.NoError(h.OpenFolder()) + h.SetTxNum(txNum) + // Check the history + checkHistoryHistory(t, h, txs) + } + + t.Run("large_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, true, logger) + test(t, h, db, txs) + }) + t.Run("small_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, false, logger) + test(t, h, db, txs) + }) +} + +func TestIterateChanged(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + + test := func(t *testing.T, h *History, db kv.RwDB, txs uint64) { + t.Helper() + require := require.New(t) + + collateAndMergeHistory(t, db, h, txs) + + tx, err := db.BeginRo(ctx) + require.NoError(err) + defer tx.Rollback() + var keys, vals []string + ic := h.MakeContext() + defer ic.Close() + + it, err := ic.HistoryRange(2, 20, order.Asc, -1, tx) + require.NoError(err) + for it.HasNext() { + k, v, err := it.Next() + require.NoError(err) + keys = append(keys, fmt.Sprintf("%x", k)) + vals = append(vals, fmt.Sprintf("%x", v)) + } + require.Equal([]string{ + "0100000000000001", + "0100000000000002", + "0100000000000003", + "0100000000000004", + "0100000000000005", + "0100000000000006", + "0100000000000007", + "0100000000000008", + "0100000000000009", + "010000000000000a", + "010000000000000b", + "010000000000000c", + "010000000000000d", + "010000000000000e", + "010000000000000f", + "0100000000000010", + "0100000000000011", + "0100000000000012", + "0100000000000013"}, keys) + require.Equal([]string{ + "ff00000000000001", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""}, vals) + it, err = ic.HistoryRange(995, 1000, order.Asc, -1, tx) + require.NoError(err) + keys, vals = keys[:0], vals[:0] + for it.HasNext() { + k, v, err := it.Next() + require.NoError(err) + keys = append(keys, fmt.Sprintf("%x", k)) + vals = append(vals, fmt.Sprintf("%x", v)) + } + require.Equal([]string{ + "0100000000000001", + "0100000000000002", + "0100000000000003", + "0100000000000004", + "0100000000000005", + "0100000000000006", + "0100000000000009", + "010000000000000c", + "010000000000001b", + }, keys) + + require.Equal([]string{ + "ff000000000003e2", + "ff000000000001f1", + "ff0000000000014b", + "ff000000000000f8", + "ff000000000000c6", + "ff000000000000a5", + "ff0000000000006e", + "ff00000000000052", + "ff00000000000024"}, vals) + + // no upper bound + it, err = ic.HistoryRange(995, -1, order.Asc, -1, tx) + require.NoError(err) + keys, vals = keys[:0], vals[:0] + for it.HasNext() { + k, v, err := it.Next() + require.NoError(err) + keys = append(keys, fmt.Sprintf("%x", k)) + vals = append(vals, fmt.Sprintf("%x", v)) + } + require.Equal([]string{"0100000000000001", "0100000000000002", "0100000000000003", "0100000000000004", "0100000000000005", "0100000000000006", "0100000000000008", "0100000000000009", "010000000000000a", "010000000000000c", "0100000000000014", "0100000000000019", "010000000000001b"}, keys) + require.Equal([]string{"ff000000000003e2", "ff000000000001f1", "ff0000000000014b", "ff000000000000f8", "ff000000000000c6", "ff000000000000a5", "ff0000000000007c", "ff0000000000006e", "ff00000000000063", "ff00000000000052", "ff00000000000031", "ff00000000000027", "ff00000000000024"}, vals) + + // no upper bound, limit=2 + it, err = ic.HistoryRange(995, -1, order.Asc, 2, tx) + require.NoError(err) + keys, vals = keys[:0], vals[:0] + for it.HasNext() { + k, v, err := it.Next() + require.NoError(err) + keys = append(keys, fmt.Sprintf("%x", k)) + vals = append(vals, fmt.Sprintf("%x", v)) + } + require.Equal([]string{"0100000000000001", "0100000000000002"}, keys) + require.Equal([]string{"ff000000000003e2", "ff000000000001f1"}, vals) + + // no lower bound, limit=2 + it, err = ic.HistoryRange(-1, 1000, order.Asc, 2, tx) + require.NoError(err) + keys, vals = keys[:0], vals[:0] + for it.HasNext() { + k, v, err := it.Next() + require.NoError(err) + keys = append(keys, fmt.Sprintf("%x", k)) + vals = append(vals, fmt.Sprintf("%x", v)) + } + require.Equal([]string{"0100000000000001", "0100000000000002"}, keys) + require.Equal([]string{"ff000000000003cf", "ff000000000001e7"}, vals) + } + t.Run("large_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, true, logger) + test(t, h, db, txs) + }) + t.Run("small_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, false, logger) + test(t, h, db, txs) + }) +} + +func TestIterateChanged2(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + + test := func(t *testing.T, h *History, db kv.RwDB, txs uint64) { + t.Helper() + roTx, err := db.BeginRo(ctx) + require.NoError(t, err) + defer roTx.Rollback() + + type testCase struct { + k, v string + txNum uint64 + } + testCases := []testCase{ + {txNum: 0, k: "0100000000000001", v: ""}, + {txNum: 900, k: "0100000000000001", v: "ff00000000000383"}, + {txNum: 1000, k: "0100000000000001", v: "ff000000000003e7"}, + } + var keys, vals []string + t.Run("before merge", func(t *testing.T) { + hc, require := h.MakeContext(), require.New(t) + defer hc.Close() + + it, err := hc.HistoryRange(2, 20, order.Asc, -1, roTx) + require.NoError(err) + for it.HasNext() { + k, v, err := it.Next() + require.NoError(err) + keys = append(keys, fmt.Sprintf("%x", k)) + vals = append(vals, fmt.Sprintf("%x", v)) + } + require.NoError(err) + require.Equal([]string{ + "0100000000000001", + "0100000000000002", + "0100000000000003", + "0100000000000004", + "0100000000000005", + "0100000000000006", + "0100000000000007", + "0100000000000008", + "0100000000000009", + "010000000000000a", + "010000000000000b", + "010000000000000c", + "010000000000000d", + "010000000000000e", + "010000000000000f", + "0100000000000010", + "0100000000000011", + "0100000000000012", + "0100000000000013"}, keys) + require.Equal([]string{ + "ff00000000000001", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""}, vals) + keys, vals = keys[:0], vals[:0] + + it, err = hc.HistoryRange(995, 1000, order.Asc, -1, roTx) + require.NoError(err) + for it.HasNext() { + k, v, err := it.Next() + require.NoError(err) + keys = append(keys, fmt.Sprintf("%x", k)) + vals = append(vals, fmt.Sprintf("%x", v)) + } + require.NoError(err) + require.Equal([]string{ + "0100000000000001", + "0100000000000002", + "0100000000000003", + "0100000000000004", + "0100000000000005", + "0100000000000006", + "0100000000000009", + "010000000000000c", + "010000000000001b", + }, keys) + + require.Equal([]string{ + "ff000000000003e2", + "ff000000000001f1", + "ff0000000000014b", + "ff000000000000f8", + "ff000000000000c6", + "ff000000000000a5", + "ff0000000000006e", + "ff00000000000052", + "ff00000000000024"}, vals) + + // single Get test-cases + tx, err := db.BeginRo(ctx) + require.NoError(err) + defer tx.Rollback() + + v, ok, err := hc.GetNoStateWithRecent(hexutility.MustDecodeHex("0100000000000001"), 900, tx) + require.NoError(err) + require.True(ok) + require.Equal(hexutility.MustDecodeHex("ff00000000000383"), v) + v, ok, err = hc.GetNoStateWithRecent(hexutility.MustDecodeHex("0100000000000001"), 0, tx) + require.NoError(err) + require.True(ok) + require.Equal([]byte{}, v) + v, ok, err = hc.GetNoStateWithRecent(hexutility.MustDecodeHex("0100000000000001"), 1000, tx) + require.NoError(err) + require.True(ok) + require.Equal(hexutility.MustDecodeHex("ff000000000003e7"), v) + _ = testCases + }) + t.Run("after merge", func(t *testing.T) { + collateAndMergeHistory(t, db, h, txs) + hc, require := h.MakeContext(), require.New(t) + defer hc.Close() + + keys = keys[:0] + it, err := hc.HistoryRange(2, 20, order.Asc, -1, roTx) + require.NoError(err) + for it.HasNext() { + k, _, err := it.Next() + require.NoError(err) + keys = append(keys, fmt.Sprintf("%x", k)) + } + require.NoError(err) + require.Equal([]string{ + "0100000000000001", + "0100000000000002", + "0100000000000003", + "0100000000000004", + "0100000000000005", + "0100000000000006", + "0100000000000007", + "0100000000000008", + "0100000000000009", + "010000000000000a", + "010000000000000b", + "010000000000000c", + "010000000000000d", + "010000000000000e", + "010000000000000f", + "0100000000000010", + "0100000000000011", + "0100000000000012", + "0100000000000013"}, keys) + + // single Get test-cases + tx, err := db.BeginRo(ctx) + require.NoError(err) + defer tx.Rollback() + + v, ok, err := hc.GetNoStateWithRecent(hexutility.MustDecodeHex("0100000000000001"), 900, tx) + require.NoError(err) + require.True(ok) + require.Equal(hexutility.MustDecodeHex("ff00000000000383"), v) + v, ok, err = hc.GetNoStateWithRecent(hexutility.MustDecodeHex("0100000000000001"), 0, tx) + require.NoError(err) + require.True(ok) + require.Equal([]byte{}, v) + v, ok, err = hc.GetNoStateWithRecent(hexutility.MustDecodeHex("0100000000000001"), 1000, tx) + require.NoError(err) + require.True(ok) + require.Equal(hexutility.MustDecodeHex("ff000000000003e7"), v) + }) + } + t.Run("large_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, true, logger) + test(t, h, db, txs) + }) + t.Run("small_values", func(t *testing.T) { + _, db, h, txs := filledHistory(t, false, logger) + test(t, h, db, txs) + }) +} + +func TestScanStaticFilesH(t *testing.T) { + logger := log.New() + h := &History{InvertedIndex: &InvertedIndex{filenameBase: "test", aggregationStep: 1, logger: logger}, + files: btree2.NewBTreeG[*filesItem](filesItemLess), + logger: logger, + } + files := []string{ + "test.0-1.v", + "test.1-2.v", + "test.0-4.v", + "test.2-3.v", + "test.3-4.v", + "test.4-5.v", + } + h.scanStateFiles(files) + require.Equal(t, 6, h.files.Len()) + + h.files.Clear() + h.integrityFileExtensions = []string{"kv"} + h.scanStateFiles(files) + require.Equal(t, 0, h.files.Len()) + +} diff --git a/erigon-lib/state/inverted_index.go b/erigon-lib/state/inverted_index.go new file mode 100644 index 00000000000..4fe6ba6c03b --- /dev/null +++ b/erigon-lib/state/inverted_index.go @@ -0,0 +1,1482 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "bytes" + "container/heap" + "context" + "encoding/binary" + "fmt" + "math" + "os" + "path/filepath" + "regexp" + "strconv" + "sync/atomic" + "time" + + "github.com/RoaringBitmap/roaring/roaring64" + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/etl" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" + "github.com/ledgerwatch/log/v3" + btree2 "github.com/tidwall/btree" + "golang.org/x/exp/slices" + "golang.org/x/sync/errgroup" +) + +type InvertedIndex struct { + files *btree2.BTreeG[*filesItem] // thread-safe, but maybe need 1 RWLock for all trees in AggregatorV3 + + // roFiles derivative from field `file`, but without garbage (canDelete=true, overlaps, etc...) + // MakeContext() using this field in zero-copy way + roFiles atomic.Pointer[[]ctxItem] + + indexKeysTable string // txnNum_u64 -> key (k+auto_increment) + indexTable string // k -> txnNum_u64 , Needs to be table with DupSort + dir, tmpdir string // Directory where static files are created + filenameBase string + aggregationStep uint64 + compressWorkers int + + integrityFileExtensions []string + withLocalityIndex bool + localityIndex *LocalityIndex + tx kv.RwTx + + garbageFiles []*filesItem // files that exist on disk, but ignored on opening folder - because they are garbage + + // fields for history write + txNum uint64 + txNumBytes [8]byte + wal *invertedIndexWAL + logger log.Logger + + noFsync bool // fsync is enabled by default, but tests can manually disable +} + +func NewInvertedIndex( + dir, tmpdir string, + aggregationStep uint64, + filenameBase string, + indexKeysTable string, + indexTable string, + withLocalityIndex bool, + integrityFileExtensions []string, + logger log.Logger, +) (*InvertedIndex, error) { + ii := InvertedIndex{ + dir: dir, + tmpdir: tmpdir, + files: btree2.NewBTreeGOptions[*filesItem](filesItemLess, btree2.Options{Degree: 128, NoLocks: false}), + aggregationStep: aggregationStep, + filenameBase: filenameBase, + indexKeysTable: indexKeysTable, + indexTable: indexTable, + compressWorkers: 1, + integrityFileExtensions: integrityFileExtensions, + withLocalityIndex: withLocalityIndex, + logger: logger, + } + ii.roFiles.Store(&[]ctxItem{}) + + if ii.withLocalityIndex { + var err error + ii.localityIndex, err = NewLocalityIndex(ii.dir, ii.tmpdir, ii.aggregationStep, ii.filenameBase, ii.logger) + if err != nil { + return nil, fmt.Errorf("NewHistory: %s, %w", ii.filenameBase, err) + } + } + return &ii, nil +} + +func (ii *InvertedIndex) fileNamesOnDisk() ([]string, error) { + files, err := os.ReadDir(ii.dir) + if err != nil { + return nil, err + } + filteredFiles := make([]string, 0, len(files)) + for _, f := range files { + if !f.Type().IsRegular() { + continue + } + filteredFiles = append(filteredFiles, f.Name()) + } + return filteredFiles, nil +} + +func (ii *InvertedIndex) OpenList(fNames []string) error { + if err := ii.localityIndex.OpenList(fNames); err != nil { + return err + } + ii.closeWhatNotInList(fNames) + ii.garbageFiles = ii.scanStateFiles(fNames) + if err := ii.openFiles(); err != nil { + return fmt.Errorf("NewHistory.openFiles: %s, %w", ii.filenameBase, err) + } + return nil +} + +func (ii *InvertedIndex) OpenFolder() error { + files, err := ii.fileNamesOnDisk() + if err != nil { + return err + } + return ii.OpenList(files) +} + +func (ii *InvertedIndex) scanStateFiles(fileNames []string) (garbageFiles []*filesItem) { + re := regexp.MustCompile("^" + ii.filenameBase + ".([0-9]+)-([0-9]+).ef$") + var err error +Loop: + for _, name := range fileNames { + subs := re.FindStringSubmatch(name) + if len(subs) != 3 { + if len(subs) != 0 { + ii.logger.Warn("File ignored by inverted index scan, more than 3 submatches", "name", name, "submatches", len(subs)) + } + continue + } + var startStep, endStep uint64 + if startStep, err = strconv.ParseUint(subs[1], 10, 64); err != nil { + ii.logger.Warn("File ignored by inverted index scan, parsing startTxNum", "error", err, "name", name) + continue + } + if endStep, err = strconv.ParseUint(subs[2], 10, 64); err != nil { + ii.logger.Warn("File ignored by inverted index scan, parsing endTxNum", "error", err, "name", name) + continue + } + if startStep > endStep { + ii.logger.Warn("File ignored by inverted index scan, startTxNum > endTxNum", "name", name) + continue + } + + startTxNum, endTxNum := startStep*ii.aggregationStep, endStep*ii.aggregationStep + var newFile = newFilesItem(startTxNum, endTxNum, ii.aggregationStep) + + for _, ext := range ii.integrityFileExtensions { + requiredFile := fmt.Sprintf("%s.%d-%d.%s", ii.filenameBase, startStep, endStep, ext) + if !dir.FileExist(filepath.Join(ii.dir, requiredFile)) { + ii.logger.Debug(fmt.Sprintf("[snapshots] skip %s because %s doesn't exists", name, requiredFile)) + garbageFiles = append(garbageFiles, newFile) + continue Loop + } + } + + if _, has := ii.files.Get(newFile); has { + continue + } + + addNewFile := true + var subSets []*filesItem + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.isSubsetOf(newFile) { + subSets = append(subSets, item) + continue + } + + if newFile.isSubsetOf(item) { + if item.frozen { + addNewFile = false + garbageFiles = append(garbageFiles, newFile) + } + continue + } + } + return true + }) + //for _, subSet := range subSets { + // ii.files.Delete(subSet) + //} + if addNewFile { + ii.files.Set(newFile) + } + } + + return garbageFiles +} + +func ctxFiles(files *btree2.BTreeG[*filesItem]) (roItems []ctxItem) { + roFiles := make([]ctxItem, 0, files.Len()) + files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.canDelete.Load() { + continue + } + + // `kill -9` may leave small garbage files, but if big one already exists we assume it's good(fsynced) and no reason to merge again + // see super-set file, just drop sub-set files from list + for len(roFiles) > 0 && roFiles[len(roFiles)-1].src.isSubsetOf(item) { + roFiles[len(roFiles)-1].src = nil + roFiles = roFiles[:len(roFiles)-1] + } + roFiles = append(roFiles, ctxItem{ + startTxNum: item.startTxNum, + endTxNum: item.endTxNum, + i: len(roFiles), + src: item, + }) + } + return true + }) + if roFiles == nil { + roFiles = []ctxItem{} + } + return roFiles +} + +func (ii *InvertedIndex) reCalcRoFiles() { + roFiles := ctxFiles(ii.files) + ii.roFiles.Store(&roFiles) +} + +func (ii *InvertedIndex) missedIdxFiles() (l []*filesItem) { + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + fromStep, toStep := item.startTxNum/ii.aggregationStep, item.endTxNum/ii.aggregationStep + if !dir.FileExist(filepath.Join(ii.dir, fmt.Sprintf("%s.%d-%d.efi", ii.filenameBase, fromStep, toStep))) { + l = append(l, item) + } + } + return true + }) + return l +} + +func (ii *InvertedIndex) buildEfi(ctx context.Context, item *filesItem, p *background.Progress) (err error) { + fromStep, toStep := item.startTxNum/ii.aggregationStep, item.endTxNum/ii.aggregationStep + fName := fmt.Sprintf("%s.%d-%d.efi", ii.filenameBase, fromStep, toStep) + idxPath := filepath.Join(ii.dir, fName) + p.Name.Store(&fName) + p.Total.Store(uint64(item.decompressor.Count())) + //ii.logger.Info("[snapshots] build idx", "file", fName) + return buildIndex(ctx, item.decompressor, idxPath, ii.tmpdir, item.decompressor.Count()/2, false, p, ii.logger, ii.noFsync) +} + +// BuildMissedIndices - produce .efi/.vi/.kvi from .ef/.v/.kv +func (ii *InvertedIndex) BuildMissedIndices(ctx context.Context, g *errgroup.Group, ps *background.ProgressSet) { + missedFiles := ii.missedIdxFiles() + for _, item := range missedFiles { + item := item + g.Go(func() error { + p := &background.Progress{} + ps.Add(p) + defer ps.Delete(p) + return ii.buildEfi(ctx, item, p) + }) + } +} + +func (ii *InvertedIndex) openFiles() error { + var err error + var totalKeys uint64 + var invalidFileItems []*filesItem + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.decompressor != nil { + continue + } + fromStep, toStep := item.startTxNum/ii.aggregationStep, item.endTxNum/ii.aggregationStep + datPath := filepath.Join(ii.dir, fmt.Sprintf("%s.%d-%d.ef", ii.filenameBase, fromStep, toStep)) + if !dir.FileExist(datPath) { + invalidFileItems = append(invalidFileItems, item) + continue + } + + if item.decompressor, err = compress.NewDecompressor(datPath); err != nil { + ii.logger.Debug("InvertedIndex.openFiles: %w, %s", err, datPath) + continue + } + + if item.index != nil { + continue + } + idxPath := filepath.Join(ii.dir, fmt.Sprintf("%s.%d-%d.efi", ii.filenameBase, fromStep, toStep)) + if dir.FileExist(idxPath) { + if item.index, err = recsplit.OpenIndex(idxPath); err != nil { + ii.logger.Debug("InvertedIndex.openFiles: %w, %s", err, idxPath) + return false + } + totalKeys += item.index.KeyCount() + } + } + return true + }) + for _, item := range invalidFileItems { + ii.files.Delete(item) + } + if err != nil { + return err + } + + ii.reCalcRoFiles() + return nil +} + +func (ii *InvertedIndex) closeWhatNotInList(fNames []string) { + var toDelete []*filesItem + ii.files.Walk(func(items []*filesItem) bool { + Loop1: + for _, item := range items { + for _, protectName := range fNames { + if item.decompressor != nil && item.decompressor.FileName() == protectName { + continue Loop1 + } + } + toDelete = append(toDelete, item) + } + return true + }) + for _, item := range toDelete { + if item.decompressor != nil { + item.decompressor.Close() + item.decompressor = nil + } + if item.index != nil { + item.index.Close() + item.index = nil + } + ii.files.Delete(item) + } +} + +func (ii *InvertedIndex) Close() { + ii.localityIndex.Close() + ii.closeWhatNotInList([]string{}) + ii.reCalcRoFiles() +} + +// DisableFsync - just for tests +func (ii *InvertedIndex) DisableFsync() { ii.noFsync = true } + +func (ii *InvertedIndex) Files() (res []string) { + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.decompressor != nil { + res = append(res, item.decompressor.FileName()) + } + } + return true + }) + return res +} + +func (ii *InvertedIndex) SetTx(tx kv.RwTx) { + ii.tx = tx +} + +func (ii *InvertedIndex) SetTxNum(txNum uint64) { + ii.txNum = txNum + binary.BigEndian.PutUint64(ii.txNumBytes[:], ii.txNum) +} + +// Add - !NotThreadSafe. Must use WalRLock/BatchHistoryWriteEnd +func (ii *InvertedIndex) Add(key []byte) error { + return ii.wal.add(key, key) +} +func (ii *InvertedIndex) add(key, indexKey []byte) error { //nolint + return ii.wal.add(key, indexKey) +} + +func (ii *InvertedIndex) DiscardHistory(tmpdir string) { + ii.wal = ii.newWriter(tmpdir, false, true) +} +func (ii *InvertedIndex) StartWrites() { + ii.wal = ii.newWriter(ii.tmpdir, true, false) +} +func (ii *InvertedIndex) StartUnbufferedWrites() { + ii.wal = ii.newWriter(ii.tmpdir, false, false) +} +func (ii *InvertedIndex) FinishWrites() { + ii.wal.close() + ii.wal = nil +} + +func (ii *InvertedIndex) Rotate() *invertedIndexWAL { + wal := ii.wal + if wal != nil { + ii.wal = ii.newWriter(ii.wal.tmpdir, ii.wal.buffered, ii.wal.discard) + } + return wal +} + +type invertedIndexWAL struct { + ii *InvertedIndex + index *etl.Collector + indexKeys *etl.Collector + tmpdir string + buffered bool + discard bool +} + +// loadFunc - is analog of etl.Identity, but it signaling to etl - use .Put instead of .AppendDup - to allow duplicates +// maybe in future we will improve etl, to sort dupSort values in the way that allow use .AppendDup +func loadFunc(k, v []byte, table etl.CurrentTableReader, next etl.LoadNextFunc) error { + return next(k, k, v) +} + +func (ii *invertedIndexWAL) Flush(ctx context.Context, tx kv.RwTx) error { + if ii.discard || !ii.buffered { + return nil + } + if err := ii.index.Load(tx, ii.ii.indexTable, loadFunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + if err := ii.indexKeys.Load(tx, ii.ii.indexKeysTable, loadFunc, etl.TransformArgs{Quit: ctx.Done()}); err != nil { + return err + } + ii.close() + return nil +} + +func (ii *invertedIndexWAL) close() { + if ii == nil { + return + } + if ii.index != nil { + ii.index.Close() + } + if ii.indexKeys != nil { + ii.indexKeys.Close() + } +} + +// 3 history + 4 indices = 10 etl collectors, 10*256Mb/8 = 512mb - for all indices buffers +var WALCollectorRAM = 2 * (etl.BufferOptimalSize / 8) + +func init() { + v, _ := os.LookupEnv("ERIGON_WAL_COLLETOR_RAM") + if v != "" { + var err error + WALCollectorRAM, err = datasize.ParseString(v) + if err != nil { + panic(err) + } + } +} + +func (ii *InvertedIndex) newWriter(tmpdir string, buffered, discard bool) *invertedIndexWAL { + w := &invertedIndexWAL{ii: ii, + buffered: buffered, + discard: discard, + tmpdir: tmpdir, + } + if buffered { + // etl collector doesn't fsync: means if have enough ram, all files produced by all collectors will be in ram + w.index = etl.NewCollector(ii.indexTable, tmpdir, etl.NewSortableBuffer(WALCollectorRAM), ii.logger) + w.indexKeys = etl.NewCollector(ii.indexKeysTable, tmpdir, etl.NewSortableBuffer(WALCollectorRAM), ii.logger) + w.index.LogLvl(log.LvlTrace) + w.indexKeys.LogLvl(log.LvlTrace) + } + return w +} + +func (ii *invertedIndexWAL) add(key, indexKey []byte) error { + if ii.discard { + return nil + } + + if ii.buffered { + if err := ii.indexKeys.Collect(ii.ii.txNumBytes[:], key); err != nil { + return err + } + + if err := ii.index.Collect(indexKey, ii.ii.txNumBytes[:]); err != nil { + return err + } + } else { + if err := ii.ii.tx.Put(ii.ii.indexKeysTable, ii.ii.txNumBytes[:], key); err != nil { + return err + } + if err := ii.ii.tx.Put(ii.ii.indexTable, indexKey, ii.ii.txNumBytes[:]); err != nil { + return err + } + } + return nil +} + +func (ii *InvertedIndex) MakeContext() *InvertedIndexContext { + var ic = InvertedIndexContext{ + ii: ii, + files: *ii.roFiles.Load(), + loc: ii.localityIndex.MakeContext(), + } + for _, item := range ic.files { + if !item.src.frozen { + item.src.refcount.Add(1) + } + } + return &ic +} +func (ic *InvertedIndexContext) Close() { + for _, item := range ic.files { + if item.src.frozen { + continue + } + refCnt := item.src.refcount.Add(-1) + //GC: last reader responsible to remove useles files: close it and delete + if refCnt == 0 && item.src.canDelete.Load() { + item.src.closeFilesAndRemove() + } + } + + for _, r := range ic.readers { + r.Close() + } + + ic.loc.Close(ic.ii.logger) +} + +type InvertedIndexContext struct { + ii *InvertedIndex + files []ctxItem // have no garbage (overlaps, etc...) + getters []*compress.Getter + readers []*recsplit.IndexReader + loc *ctxLocalityIdx +} + +func (ic *InvertedIndexContext) statelessGetter(i int) *compress.Getter { + if ic.getters == nil { + ic.getters = make([]*compress.Getter, len(ic.files)) + } + r := ic.getters[i] + if r == nil { + r = ic.files[i].src.decompressor.MakeGetter() + ic.getters[i] = r + } + return r +} +func (ic *InvertedIndexContext) statelessIdxReader(i int) *recsplit.IndexReader { + if ic.readers == nil { + ic.readers = make([]*recsplit.IndexReader, len(ic.files)) + } + r := ic.readers[i] + if r == nil { + r = ic.files[i].src.index.GetReaderFromPool() + ic.readers[i] = r + } + return r +} + +func (ic *InvertedIndexContext) getFile(from, to uint64) (it ctxItem, ok bool) { + for _, item := range ic.files { + if item.startTxNum == from && item.endTxNum == to { + return item, true + } + } + return it, false +} + +// IdxRange - return range of txNums for given `key` +// is to be used in public API, therefore it relies on read-only transaction +// so that iteration can be done even when the inverted index is being updated. +// [startTxNum; endNumTx) +func (ic *InvertedIndexContext) IdxRange(key []byte, startTxNum, endTxNum int, asc order.By, limit int, roTx kv.Tx) (iter.U64, error) { + frozenIt, err := ic.iterateRangeFrozen(key, startTxNum, endTxNum, asc, limit) + if err != nil { + return nil, err + } + recentIt, err := ic.recentIterateRange(key, startTxNum, endTxNum, asc, limit, roTx) + if err != nil { + return nil, err + } + return iter.Union[uint64](frozenIt, recentIt, asc, limit), nil +} + +func (ic *InvertedIndexContext) recentIterateRange(key []byte, startTxNum, endTxNum int, asc order.By, limit int, roTx kv.Tx) (iter.U64, error) { + //optimization: return empty pre-allocated iterator if range is frozen + if asc { + isFrozenRange := len(ic.files) > 0 && endTxNum >= 0 && ic.files[len(ic.files)-1].endTxNum >= uint64(endTxNum) + if isFrozenRange { + return iter.EmptyU64, nil + } + } else { + isFrozenRange := len(ic.files) > 0 && startTxNum >= 0 && ic.files[len(ic.files)-1].endTxNum >= uint64(startTxNum) + if isFrozenRange { + return iter.EmptyU64, nil + } + } + + var from []byte + if startTxNum >= 0 { + from = make([]byte, 8) + binary.BigEndian.PutUint64(from, uint64(startTxNum)) + } + + var to []byte + if endTxNum >= 0 { + to = make([]byte, 8) + binary.BigEndian.PutUint64(to, uint64(endTxNum)) + } + + it, err := roTx.RangeDupSort(ic.ii.indexTable, key, from, to, asc, limit) + if err != nil { + return nil, err + } + return iter.TransformKV2U64(it, func(_, v []byte) (uint64, error) { + return binary.BigEndian.Uint64(v), nil + }), nil +} + +// IdxRange is to be used in public API, therefore it relies on read-only transaction +// so that iteration can be done even when the inverted index is being updated. +// [startTxNum; endNumTx) +func (ic *InvertedIndexContext) iterateRangeFrozen(key []byte, startTxNum, endTxNum int, asc order.By, limit int) (*FrozenInvertedIdxIter, error) { + if asc && (startTxNum >= 0 && endTxNum >= 0) && startTxNum > endTxNum { + return nil, fmt.Errorf("startTxNum=%d epected to be lower than endTxNum=%d", startTxNum, endTxNum) + } + if !asc && (startTxNum >= 0 && endTxNum >= 0) && startTxNum < endTxNum { + return nil, fmt.Errorf("startTxNum=%d epected to be bigger than endTxNum=%d", startTxNum, endTxNum) + } + + it := &FrozenInvertedIdxIter{ + key: key, + startTxNum: startTxNum, + endTxNum: endTxNum, + indexTable: ic.ii.indexTable, + orderAscend: asc, + limit: limit, + ef: eliasfano32.NewEliasFano(1, 1), + } + if asc { + for i := len(ic.files) - 1; i >= 0; i-- { + // [from,to) && from < to + if endTxNum >= 0 && int(ic.files[i].startTxNum) >= endTxNum { + continue + } + if startTxNum >= 0 && ic.files[i].endTxNum <= uint64(startTxNum) { + break + } + it.stack = append(it.stack, ic.files[i]) + it.stack[len(it.stack)-1].getter = it.stack[len(it.stack)-1].src.decompressor.MakeGetter() + it.stack[len(it.stack)-1].reader = it.stack[len(it.stack)-1].src.index.GetReaderFromPool() + it.hasNext = true + } + } else { + for i := 0; i < len(ic.files); i++ { + // [from,to) && from > to + if endTxNum >= 0 && int(ic.files[i].endTxNum) <= endTxNum { + continue + } + if startTxNum >= 0 && ic.files[i].startTxNum > uint64(startTxNum) { + break + } + + it.stack = append(it.stack, ic.files[i]) + it.stack[len(it.stack)-1].getter = it.stack[len(it.stack)-1].src.decompressor.MakeGetter() + it.stack[len(it.stack)-1].reader = it.stack[len(it.stack)-1].src.index.GetReaderFromPool() + it.hasNext = true + } + } + it.advance() + return it, nil +} + +// FrozenInvertedIdxIter allows iteration over range of tx numbers +// Iteration is not implmented via callback function, because there is often +// a requirement for interators to be composable (for example, to implement AND and OR for indices) +// FrozenInvertedIdxIter must be closed after use to prevent leaking of resources like cursor +type FrozenInvertedIdxIter struct { + key []byte + startTxNum, endTxNum int + limit int + orderAscend order.By + + efIt iter.Unary[uint64] + indexTable string + stack []ctxItem + + nextN uint64 + hasNext bool + err error + + ef *eliasfano32.EliasFano +} + +func (it *FrozenInvertedIdxIter) Close() { + for _, item := range it.stack { + item.reader.Close() + } +} + +func (it *FrozenInvertedIdxIter) advance() { + if it.orderAscend { + if it.hasNext { + it.advanceInFiles() + } + } else { + if it.hasNext { + it.advanceInFiles() + } + } +} + +func (it *FrozenInvertedIdxIter) HasNext() bool { + if it.err != nil { // always true, then .Next() call will return this error + return true + } + if it.limit == 0 { // limit reached + return false + } + return it.hasNext +} + +func (it *FrozenInvertedIdxIter) Next() (uint64, error) { return it.next(), nil } + +func (it *FrozenInvertedIdxIter) next() uint64 { + it.limit-- + n := it.nextN + it.advance() + return n +} + +func (it *FrozenInvertedIdxIter) advanceInFiles() { + for { + for it.efIt == nil { //TODO: this loop may be optimized by LocalityIndex + if len(it.stack) == 0 { + it.hasNext = false + return + } + item := it.stack[len(it.stack)-1] + it.stack = it.stack[:len(it.stack)-1] + offset := item.reader.Lookup(it.key) + g := item.getter + g.Reset(offset) + k, _ := g.NextUncompressed() + if bytes.Equal(k, it.key) { + eliasVal, _ := g.NextUncompressed() + it.ef.Reset(eliasVal) + if it.orderAscend { + efiter := it.ef.Iterator() + if it.startTxNum > 0 { + efiter.Seek(uint64(it.startTxNum)) + } + it.efIt = efiter + } else { + it.efIt = it.ef.ReverseIterator() + } + } + } + + //TODO: add seek method + //Asc: [from, to) AND from > to + //Desc: [from, to) AND from < to + if it.orderAscend { + for it.efIt.HasNext() { + n, _ := it.efIt.Next() + if it.endTxNum >= 0 && int(n) >= it.endTxNum { + it.hasNext = false + return + } + if int(n) >= it.startTxNum { + it.hasNext = true + it.nextN = n + return + } + } + } else { + for it.efIt.HasNext() { + n, _ := it.efIt.Next() + if int(n) <= it.endTxNum { + it.hasNext = false + return + } + if it.startTxNum >= 0 && int(n) <= it.startTxNum { + it.hasNext = true + it.nextN = n + return + } + } + } + it.efIt = nil // Exhausted this iterator + } +} + +// RecentInvertedIdxIter allows iteration over range of tx numbers +// Iteration is not implmented via callback function, because there is often +// a requirement for interators to be composable (for example, to implement AND and OR for indices) +type RecentInvertedIdxIter struct { + key []byte + startTxNum, endTxNum int + limit int + orderAscend order.By + + roTx kv.Tx + cursor kv.CursorDupSort + indexTable string + + nextN uint64 + hasNext bool + err error + + bm *roaring64.Bitmap +} + +func (it *RecentInvertedIdxIter) Close() { + if it.cursor != nil { + it.cursor.Close() + } + bitmapdb.ReturnToPool64(it.bm) +} + +func (it *RecentInvertedIdxIter) advanceInDB() { + var v []byte + var err error + if it.cursor == nil { + if it.cursor, err = it.roTx.CursorDupSort(it.indexTable); err != nil { + // TODO pass error properly around + panic(err) + } + var k []byte + if k, _, err = it.cursor.SeekExact(it.key); err != nil { + panic(err) + } + if k == nil { + it.hasNext = false + return + } + //Asc: [from, to) AND from > to + //Desc: [from, to) AND from < to + var keyBytes [8]byte + if it.startTxNum > 0 { + binary.BigEndian.PutUint64(keyBytes[:], uint64(it.startTxNum)) + } + if v, err = it.cursor.SeekBothRange(it.key, keyBytes[:]); err != nil { + panic(err) + } + if v == nil { + if !it.orderAscend { + _, v, _ = it.cursor.PrevDup() + if err != nil { + panic(err) + } + } + if v == nil { + it.hasNext = false + return + } + } + } else { + if it.orderAscend { + _, v, err = it.cursor.NextDup() + if err != nil { + // TODO pass error properly around + panic(err) + } + } else { + _, v, err = it.cursor.PrevDup() + if err != nil { + panic(err) + } + } + } + + //Asc: [from, to) AND from > to + //Desc: [from, to) AND from < to + if it.orderAscend { + for ; v != nil; _, v, err = it.cursor.NextDup() { + if err != nil { + // TODO pass error properly around + panic(err) + } + n := binary.BigEndian.Uint64(v) + if it.endTxNum >= 0 && int(n) >= it.endTxNum { + it.hasNext = false + return + } + if int(n) >= it.startTxNum { + it.hasNext = true + it.nextN = n + return + } + } + } else { + for ; v != nil; _, v, err = it.cursor.PrevDup() { + if err != nil { + // TODO pass error properly around + panic(err) + } + n := binary.BigEndian.Uint64(v) + if int(n) <= it.endTxNum { + it.hasNext = false + return + } + if it.startTxNum >= 0 && int(n) <= it.startTxNum { + it.hasNext = true + it.nextN = n + return + } + } + } + + it.hasNext = false +} + +func (it *RecentInvertedIdxIter) advance() { + if it.orderAscend { + if it.hasNext { + it.advanceInDB() + } + } else { + if it.hasNext { + it.advanceInDB() + } + } +} + +func (it *RecentInvertedIdxIter) HasNext() bool { + if it.err != nil { // always true, then .Next() call will return this error + return true + } + if it.limit == 0 { // limit reached + return false + } + return it.hasNext +} + +func (it *RecentInvertedIdxIter) Next() (uint64, error) { + if it.err != nil { + return 0, it.err + } + it.limit-- + n := it.nextN + it.advance() + return n, nil +} + +type InvertedIterator1 struct { + roTx kv.Tx + cursor kv.CursorDupSort + indexTable string + key []byte + h ReconHeap + nextKey []byte + nextFileKey []byte + nextDbKey []byte + endTxNum uint64 + startTxNum uint64 + startTxKey [8]byte + hasNextInDb bool + hasNextInFiles bool +} + +func (it *InvertedIterator1) Close() { + if it.cursor != nil { + it.cursor.Close() + } +} + +func (it *InvertedIterator1) advanceInFiles() { + for it.h.Len() > 0 { + top := heap.Pop(&it.h).(*ReconItem) + key := top.key + val, _ := top.g.NextUncompressed() + if top.g.HasNext() { + top.key, _ = top.g.NextUncompressed() + heap.Push(&it.h, top) + } + if !bytes.Equal(key, it.key) { + ef, _ := eliasfano32.ReadEliasFano(val) + min := ef.Get(0) + max := ef.Max() + if min < it.endTxNum && max >= it.startTxNum { // Intersection of [min; max) and [it.startTxNum; it.endTxNum) + it.key = key + it.nextFileKey = key + return + } + } + } + it.hasNextInFiles = false +} + +func (it *InvertedIterator1) advanceInDb() { + var k, v []byte + var err error + if it.cursor == nil { + if it.cursor, err = it.roTx.CursorDupSort(it.indexTable); err != nil { + // TODO pass error properly around + panic(err) + } + if k, _, err = it.cursor.First(); err != nil { + // TODO pass error properly around + panic(err) + } + } else { + if k, _, err = it.cursor.NextNoDup(); err != nil { + panic(err) + } + } + for k != nil { + if v, err = it.cursor.SeekBothRange(k, it.startTxKey[:]); err != nil { + panic(err) + } + if v != nil { + txNum := binary.BigEndian.Uint64(v) + if txNum < it.endTxNum { + it.nextDbKey = append(it.nextDbKey[:0], k...) + return + } + } + if k, _, err = it.cursor.NextNoDup(); err != nil { + panic(err) + } + } + it.cursor.Close() + it.cursor = nil + it.hasNextInDb = false +} + +func (it *InvertedIterator1) advance() { + if it.hasNextInFiles { + if it.hasNextInDb { + c := bytes.Compare(it.nextFileKey, it.nextDbKey) + if c < 0 { + it.nextKey = append(it.nextKey[:0], it.nextFileKey...) + it.advanceInFiles() + } else if c > 0 { + it.nextKey = append(it.nextKey[:0], it.nextDbKey...) + it.advanceInDb() + } else { + it.nextKey = append(it.nextKey[:0], it.nextFileKey...) + it.advanceInDb() + it.advanceInFiles() + } + } else { + it.nextKey = append(it.nextKey[:0], it.nextFileKey...) + it.advanceInFiles() + } + } else if it.hasNextInDb { + it.nextKey = append(it.nextKey[:0], it.nextDbKey...) + it.advanceInDb() + } else { + it.nextKey = nil + } +} + +func (it *InvertedIterator1) HasNext() bool { + return it.hasNextInFiles || it.hasNextInDb || it.nextKey != nil +} + +func (it *InvertedIterator1) Next(keyBuf []byte) []byte { + result := append(keyBuf, it.nextKey...) + it.advance() + return result +} + +func (ic *InvertedIndexContext) IterateChangedKeys(startTxNum, endTxNum uint64, roTx kv.Tx) InvertedIterator1 { + var ii1 InvertedIterator1 + ii1.hasNextInDb = true + ii1.roTx = roTx + ii1.indexTable = ic.ii.indexTable + for _, item := range ic.files { + if item.endTxNum <= startTxNum { + continue + } + if item.startTxNum >= endTxNum { + break + } + if item.endTxNum >= endTxNum { + ii1.hasNextInDb = false + } + g := item.src.decompressor.MakeGetter() + if g.HasNext() { + key, _ := g.NextUncompressed() + heap.Push(&ii1.h, &ReconItem{startTxNum: item.startTxNum, endTxNum: item.endTxNum, g: g, txNum: ^item.endTxNum, key: key}) + ii1.hasNextInFiles = true + } + } + binary.BigEndian.PutUint64(ii1.startTxKey[:], startTxNum) + ii1.startTxNum = startTxNum + ii1.endTxNum = endTxNum + ii1.advanceInDb() + ii1.advanceInFiles() + ii1.advance() + return ii1 +} + +func (ii *InvertedIndex) collate(ctx context.Context, txFrom, txTo uint64, roTx kv.Tx) (map[string]*roaring64.Bitmap, error) { + keysCursor, err := roTx.CursorDupSort(ii.indexKeysTable) + if err != nil { + return nil, fmt.Errorf("create %s keys cursor: %w", ii.filenameBase, err) + } + defer keysCursor.Close() + indexBitmaps := map[string]*roaring64.Bitmap{} + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], txFrom) + var k, v []byte + for k, v, err = keysCursor.Seek(txKey[:]); err == nil && k != nil; k, v, err = keysCursor.Next() { + txNum := binary.BigEndian.Uint64(k) + if txNum >= txTo { + break + } + var bitmap *roaring64.Bitmap + var ok bool + if bitmap, ok = indexBitmaps[string(v)]; !ok { + bitmap = bitmapdb.NewBitmap64() + indexBitmaps[string(v)] = bitmap + } + bitmap.Add(txNum) + + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + } + if err != nil { + return nil, fmt.Errorf("iterate over %s keys cursor: %w", ii.filenameBase, err) + } + return indexBitmaps, nil +} + +type InvertedFiles struct { + decomp *compress.Decompressor + index *recsplit.Index +} + +func (sf InvertedFiles) Close() { + if sf.decomp != nil { + sf.decomp.Close() + } + if sf.index != nil { + sf.index.Close() + } +} + +func (ii *InvertedIndex) buildFiles(ctx context.Context, step uint64, bitmaps map[string]*roaring64.Bitmap, ps *background.ProgressSet) (InvertedFiles, error) { + var decomp *compress.Decompressor + var index *recsplit.Index + var comp *compress.Compressor + var err error + closeComp := true + defer func() { + if closeComp { + if comp != nil { + comp.Close() + } + if decomp != nil { + decomp.Close() + } + if index != nil { + index.Close() + } + } + }() + txNumFrom := step * ii.aggregationStep + txNumTo := (step + 1) * ii.aggregationStep + datFileName := fmt.Sprintf("%s.%d-%d.ef", ii.filenameBase, txNumFrom/ii.aggregationStep, txNumTo/ii.aggregationStep) + datPath := filepath.Join(ii.dir, datFileName) + keys := make([]string, 0, len(bitmaps)) + for key := range bitmaps { + keys = append(keys, key) + } + slices.Sort(keys) + { + p := ps.AddNew(datFileName, 1) + defer ps.Delete(p) + comp, err = compress.NewCompressor(ctx, "ef", datPath, ii.tmpdir, compress.MinPatternScore, ii.compressWorkers, log.LvlTrace, ii.logger) + if err != nil { + return InvertedFiles{}, fmt.Errorf("create %s compressor: %w", ii.filenameBase, err) + } + var buf []byte + for _, key := range keys { + if err = comp.AddUncompressedWord([]byte(key)); err != nil { + return InvertedFiles{}, fmt.Errorf("add %s key [%x]: %w", ii.filenameBase, key, err) + } + bitmap := bitmaps[key] + ef := eliasfano32.NewEliasFano(bitmap.GetCardinality(), bitmap.Maximum()) + it := bitmap.Iterator() + for it.HasNext() { + ef.AddOffset(it.Next()) + } + ef.Build() + buf = ef.AppendBytes(buf[:0]) + if err = comp.AddUncompressedWord(buf); err != nil { + return InvertedFiles{}, fmt.Errorf("add %s val: %w", ii.filenameBase, err) + } + } + if err = comp.Compress(); err != nil { + return InvertedFiles{}, fmt.Errorf("compress %s: %w", ii.filenameBase, err) + } + comp.Close() + comp = nil + ps.Delete(p) + } + if decomp, err = compress.NewDecompressor(datPath); err != nil { + return InvertedFiles{}, fmt.Errorf("open %s decompressor: %w", ii.filenameBase, err) + } + + idxFileName := fmt.Sprintf("%s.%d-%d.efi", ii.filenameBase, txNumFrom/ii.aggregationStep, txNumTo/ii.aggregationStep) + idxPath := filepath.Join(ii.dir, idxFileName) + p := ps.AddNew(idxFileName, uint64(decomp.Count()*2)) + defer ps.Delete(p) + if index, err = buildIndexThenOpen(ctx, decomp, idxPath, ii.tmpdir, len(keys), false /* values */, p, ii.logger, ii.noFsync); err != nil { + return InvertedFiles{}, fmt.Errorf("build %s efi: %w", ii.filenameBase, err) + } + closeComp = false + return InvertedFiles{decomp: decomp, index: index}, nil +} + +func (ii *InvertedIndex) integrateFiles(sf InvertedFiles, txNumFrom, txNumTo uint64) { + fi := newFilesItem(txNumFrom, txNumTo, ii.aggregationStep) + fi.decompressor = sf.decomp + fi.index = sf.index + ii.files.Set(fi) + + ii.reCalcRoFiles() +} + +func (ii *InvertedIndex) warmup(ctx context.Context, txFrom, limit uint64, tx kv.Tx) error { + keysCursor, err := tx.CursorDupSort(ii.indexKeysTable) + if err != nil { + return fmt.Errorf("create %s keys cursor: %w", ii.filenameBase, err) + } + defer keysCursor.Close() + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], txFrom) + var k, v []byte + idxC, err := tx.CursorDupSort(ii.indexTable) + if err != nil { + return err + } + defer idxC.Close() + k, v, err = keysCursor.Seek(txKey[:]) + if err != nil { + return err + } + if k == nil { + return nil + } + txFrom = binary.BigEndian.Uint64(k) + txTo := txFrom + ii.aggregationStep + if limit != math.MaxUint64 && limit != 0 { + txTo = txFrom + limit + } + for ; k != nil; k, v, err = keysCursor.Next() { + if err != nil { + return fmt.Errorf("iterate over %s keys: %w", ii.filenameBase, err) + } + txNum := binary.BigEndian.Uint64(k) + if txNum >= txTo { + break + } + _, _ = idxC.SeekBothRange(v, k) + + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + } + return nil +} + +// [txFrom; txTo) +func (ii *InvertedIndex) prune(ctx context.Context, txFrom, txTo, limit uint64, logEvery *time.Ticker) error { + keysCursor, err := ii.tx.RwCursorDupSort(ii.indexKeysTable) + if err != nil { + return fmt.Errorf("create %s keys cursor: %w", ii.filenameBase, err) + } + defer keysCursor.Close() + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], txFrom) + k, v, err := keysCursor.Seek(txKey[:]) + if err != nil { + return err + } + if k == nil { + return nil + } + txFrom = binary.BigEndian.Uint64(k) + if limit != math.MaxUint64 && limit != 0 { + txTo = cmp.Min(txTo, txFrom+limit) + } + if txFrom >= txTo { + return nil + } + + collector := etl.NewCollector("snapshots", ii.tmpdir, etl.NewOldestEntryBuffer(etl.BufferOptimalSize), ii.logger) + defer collector.Close() + + idxCForDeletes, err := ii.tx.RwCursorDupSort(ii.indexTable) + if err != nil { + return err + } + defer idxCForDeletes.Close() + idxC, err := ii.tx.RwCursorDupSort(ii.indexTable) + if err != nil { + return err + } + defer idxC.Close() + + // Invariant: if some `txNum=N` pruned - it's pruned Fully + // Means: can use DeleteCurrentDuplicates all values of given `txNum` + for ; k != nil; k, v, err = keysCursor.NextNoDup() { + if err != nil { + return err + } + txNum := binary.BigEndian.Uint64(k) + if txNum >= txTo { + break + } + for ; v != nil; _, v, err = keysCursor.NextDup() { + if err != nil { + return err + } + if err := collector.Collect(v, nil); err != nil { + return err + } + } + + // This DeleteCurrent needs to the last in the loop iteration, because it invalidates k and v + if err = ii.tx.Delete(ii.indexKeysTable, k); err != nil { + return err + } + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + } + if err != nil { + return fmt.Errorf("iterate over %s keys: %w", ii.filenameBase, err) + } + + if err := collector.Load(ii.tx, "", func(key, _ []byte, table etl.CurrentTableReader, next etl.LoadNextFunc) error { + for v, err := idxC.SeekBothRange(key, txKey[:]); v != nil; _, v, err = idxC.NextDup() { + if err != nil { + return err + } + txNum := binary.BigEndian.Uint64(v) + if txNum >= txTo { + break + } + + if _, _, err = idxCForDeletes.SeekBothExact(key, v); err != nil { + return err + } + if err = idxCForDeletes.DeleteCurrent(); err != nil { + return err + } + + select { + case <-logEvery.C: + ii.logger.Info("[snapshots] prune history", "name", ii.filenameBase, "to_step", fmt.Sprintf("%.2f", float64(txTo)/float64(ii.aggregationStep)), "prefix", fmt.Sprintf("%x", key[:8])) //nolint + default: + } + } + return nil + }, etl.TransformArgs{}); err != nil { + return err + } + + return nil +} + +func (ii *InvertedIndex) DisableReadAhead() { + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + item.decompressor.DisableReadAhead() + if item.index != nil { + item.index.DisableReadAhead() + } + } + return true + }) +} + +func (ii *InvertedIndex) EnableReadAhead() *InvertedIndex { + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + item.decompressor.EnableReadAhead() + if item.index != nil { + item.index.EnableReadAhead() + } + } + return true + }) + return ii +} +func (ii *InvertedIndex) EnableMadvWillNeed() *InvertedIndex { + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + item.decompressor.EnableWillNeed() + if item.index != nil { + item.index.EnableWillNeed() + } + } + return true + }) + return ii +} +func (ii *InvertedIndex) EnableMadvNormalReadAhead() *InvertedIndex { + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + item.decompressor.EnableMadvNormal() + if item.index != nil { + item.index.EnableMadvNormal() + } + } + return true + }) + return ii +} + +func (ii *InvertedIndex) collectFilesStat() (filesCount, filesSize, idxSize uint64) { + if ii.files == nil { + return 0, 0, 0 + } + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.index == nil { + return false + } + filesSize += uint64(item.decompressor.Size()) + idxSize += uint64(item.index.Size()) + filesCount += 2 + } + return true + }) + return filesCount, filesSize, idxSize +} + +func (ii *InvertedIndex) stepsRangeInDBAsStr(tx kv.Tx) string { + a1, a2 := ii.stepsRangeInDB(tx) + return fmt.Sprintf("%s: %.1f-%.1f", ii.filenameBase, a1, a2) +} +func (ii *InvertedIndex) stepsRangeInDB(tx kv.Tx) (from, to float64) { + fst, _ := kv.FirstKey(tx, ii.indexKeysTable) + if len(fst) > 0 { + from = float64(binary.BigEndian.Uint64(fst)) / float64(ii.aggregationStep) + } + lst, _ := kv.LastKey(tx, ii.indexKeysTable) + if len(lst) > 0 { + to = float64(binary.BigEndian.Uint64(lst)) / float64(ii.aggregationStep) + } + return from, to +} diff --git a/erigon-lib/state/inverted_index_test.go b/erigon-lib/state/inverted_index_test.go new file mode 100644 index 00000000000..c23dcb5d0a0 --- /dev/null +++ b/erigon-lib/state/inverted_index_test.go @@ -0,0 +1,566 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "context" + "encoding/binary" + "fmt" + "math" + "os" + "testing" + "time" + + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/kv/iter" + "github.com/ledgerwatch/erigon-lib/kv/order" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" + btree2 "github.com/tidwall/btree" + + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" +) + +func testDbAndInvertedIndex(tb testing.TB, aggStep uint64, logger log.Logger) (string, kv.RwDB, *InvertedIndex) { + tb.Helper() + path := tb.TempDir() + tb.Cleanup(func() { os.RemoveAll(path) }) + keysTable := "Keys" + indexTable := "Index" + db := mdbx.NewMDBX(logger).InMem(path).WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { + return kv.TableCfg{ + keysTable: kv.TableCfgItem{Flags: kv.DupSort}, + indexTable: kv.TableCfgItem{Flags: kv.DupSort}, + } + }).MustOpen() + tb.Cleanup(db.Close) + ii, err := NewInvertedIndex(path, path, aggStep, "inv" /* filenameBase */, keysTable, indexTable, false, nil, logger) + require.NoError(tb, err) + ii.DisableFsync() + tb.Cleanup(ii.Close) + return path, db, ii +} + +func TestInvIndexCollationBuild(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + _, db, ii := testDbAndInvertedIndex(t, 16, logger) + ctx := context.Background() + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + ii.SetTx(tx) + ii.StartWrites() + defer ii.FinishWrites() + + ii.SetTxNum(2) + err = ii.Add([]byte("key1")) + require.NoError(t, err) + + ii.SetTxNum(3) + err = ii.Add([]byte("key2")) + require.NoError(t, err) + + ii.SetTxNum(6) + err = ii.Add([]byte("key1")) + require.NoError(t, err) + err = ii.Add([]byte("key3")) + require.NoError(t, err) + + err = ii.Rotate().Flush(ctx, tx) + require.NoError(t, err) + err = tx.Commit() + require.NoError(t, err) + + roTx, err := db.BeginRo(ctx) + require.NoError(t, err) + defer roTx.Rollback() + + bs, err := ii.collate(ctx, 0, 7, roTx) + require.NoError(t, err) + require.Equal(t, 3, len(bs)) + require.Equal(t, []uint64{3}, bs["key2"].ToArray()) + require.Equal(t, []uint64{2, 6}, bs["key1"].ToArray()) + require.Equal(t, []uint64{6}, bs["key3"].ToArray()) + + sf, err := ii.buildFiles(ctx, 0, bs, background.NewProgressSet()) + require.NoError(t, err) + defer sf.Close() + + g := sf.decomp.MakeGetter() + g.Reset(0) + var words []string + var intArrs [][]uint64 + for g.HasNext() { + w, _ := g.Next(nil) + words = append(words, string(w)) + w, _ = g.Next(w[:0]) + ef, _ := eliasfano32.ReadEliasFano(w) + var ints []uint64 + it := ef.Iterator() + for it.HasNext() { + v, _ := it.Next() + ints = append(ints, v) + } + intArrs = append(intArrs, ints) + } + require.Equal(t, []string{"key1", "key2", "key3"}, words) + require.Equal(t, [][]uint64{{2, 6}, {3}, {6}}, intArrs) + r := recsplit.NewIndexReader(sf.index) + for i := 0; i < len(words); i++ { + offset := r.Lookup([]byte(words[i])) + g.Reset(offset) + w, _ := g.Next(nil) + require.Equal(t, words[i], string(w)) + } +} + +func TestInvIndexAfterPrune(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + _, db, ii := testDbAndInvertedIndex(t, 16, logger) + ctx := context.Background() + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer func() { + if tx != nil { + tx.Rollback() + } + }() + ii.SetTx(tx) + ii.StartWrites() + defer ii.FinishWrites() + + ii.SetTxNum(2) + err = ii.Add([]byte("key1")) + require.NoError(t, err) + + ii.SetTxNum(3) + err = ii.Add([]byte("key2")) + require.NoError(t, err) + + ii.SetTxNum(6) + err = ii.Add([]byte("key1")) + require.NoError(t, err) + err = ii.Add([]byte("key3")) + require.NoError(t, err) + + err = ii.Rotate().Flush(ctx, tx) + require.NoError(t, err) + err = tx.Commit() + require.NoError(t, err) + + roTx, err := db.BeginRo(ctx) + require.NoError(t, err) + defer roTx.Rollback() + + bs, err := ii.collate(ctx, 0, 16, roTx) + require.NoError(t, err) + + sf, err := ii.buildFiles(ctx, 0, bs, background.NewProgressSet()) + require.NoError(t, err) + + tx, err = db.BeginRw(ctx) + require.NoError(t, err) + ii.SetTx(tx) + + ii.integrateFiles(sf, 0, 16) + + err = ii.prune(ctx, 0, 16, math.MaxUint64, logEvery) + require.NoError(t, err) + err = tx.Commit() + require.NoError(t, err) + tx, err = db.BeginRw(ctx) + require.NoError(t, err) + ii.SetTx(tx) + + for _, table := range []string{ii.indexKeysTable, ii.indexTable} { + var cur kv.Cursor + cur, err = tx.Cursor(table) + require.NoError(t, err) + defer cur.Close() + var k []byte + k, _, err = cur.First() + require.NoError(t, err) + require.Nil(t, k, table) + } +} + +func filledInvIndex(tb testing.TB, logger log.Logger) (string, kv.RwDB, *InvertedIndex, uint64) { + tb.Helper() + return filledInvIndexOfSize(tb, uint64(1000), 16, 31, logger) +} + +func filledInvIndexOfSize(tb testing.TB, txs, aggStep, module uint64, logger log.Logger) (string, kv.RwDB, *InvertedIndex, uint64) { + tb.Helper() + path, db, ii := testDbAndInvertedIndex(tb, aggStep, logger) + ctx, require := context.Background(), require.New(tb) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + ii.SetTx(tx) + ii.StartWrites() + defer ii.FinishWrites() + + var flusher flusher + + // keys are encodings of numbers 1..31 + // each key changes value on every txNum which is multiple of the key + for txNum := uint64(1); txNum <= txs; txNum++ { + ii.SetTxNum(txNum) + for keyNum := uint64(1); keyNum <= module; keyNum++ { + if txNum%keyNum == 0 { + var k [8]byte + binary.BigEndian.PutUint64(k[:], keyNum) + err = ii.Add(k[:]) + require.NoError(err) + } + } + if flusher != nil { + require.NoError(flusher.Flush(ctx, tx)) + } + if txNum%10 == 0 { + flusher = ii.Rotate() + } + } + if flusher != nil { + require.NoError(flusher.Flush(ctx, tx)) + } + err = ii.Rotate().Flush(ctx, tx) + require.NoError(err) + err = tx.Commit() + require.NoError(err) + return path, db, ii, txs +} + +func checkRanges(t *testing.T, db kv.RwDB, ii *InvertedIndex, txs uint64) { + t.Helper() + ctx := context.Background() + ic := ii.MakeContext() + defer ic.Close() + + // Check the iterator ranges first without roTx + for keyNum := uint64(1); keyNum <= uint64(31); keyNum++ { + var k [8]byte + binary.BigEndian.PutUint64(k[:], keyNum) + var values []uint64 + t.Run("asc", func(t *testing.T) { + it, err := ic.IdxRange(k[:], 0, 976, order.Asc, -1, nil) + require.NoError(t, err) + for i := keyNum; i < 976; i += keyNum { + label := fmt.Sprintf("keyNum=%d, txNum=%d", keyNum, i) + require.True(t, it.HasNext(), label) + n, err := it.Next() + require.NoError(t, err) + require.Equal(t, i, n, label) + values = append(values, n) + } + require.False(t, it.HasNext()) + }) + + t.Run("desc", func(t *testing.T) { + reverseStream, err := ic.IdxRange(k[:], 976-1, 0, order.Desc, -1, nil) + require.NoError(t, err) + iter.ExpectEqualU64(t, iter.ReverseArray(values), reverseStream) + }) + t.Run("unbounded asc", func(t *testing.T) { + forwardLimited, err := ic.IdxRange(k[:], -1, 976, order.Asc, 2, nil) + require.NoError(t, err) + iter.ExpectEqualU64(t, iter.Array(values[:2]), forwardLimited) + }) + t.Run("unbounded desc", func(t *testing.T) { + reverseLimited, err := ic.IdxRange(k[:], 976-1, -1, order.Desc, 2, nil) + require.NoError(t, err) + iter.ExpectEqualU64(t, iter.ReverseArray(values[len(values)-2:]), reverseLimited) + }) + t.Run("tiny bound asc", func(t *testing.T) { + it, err := ic.IdxRange(k[:], 100, 102, order.Asc, -1, nil) + require.NoError(t, err) + expect := iter.FilterU64(iter.Array(values), func(k uint64) bool { return k >= 100 && k < 102 }) + iter.ExpectEqualU64(t, expect, it) + }) + t.Run("tiny bound desc", func(t *testing.T) { + it, err := ic.IdxRange(k[:], 102, 100, order.Desc, -1, nil) + require.NoError(t, err) + expect := iter.FilterU64(iter.ReverseArray(values), func(k uint64) bool { return k <= 102 && k > 100 }) + iter.ExpectEqualU64(t, expect, it) + }) + } + // Now check ranges that require access to DB + roTx, err := db.BeginRo(ctx) + require.NoError(t, err) + defer roTx.Rollback() + for keyNum := uint64(1); keyNum <= uint64(31); keyNum++ { + var k [8]byte + binary.BigEndian.PutUint64(k[:], keyNum) + it, err := ic.IdxRange(k[:], 400, 1000, true, -1, roTx) + require.NoError(t, err) + var values []uint64 + for i := keyNum * ((400 + keyNum - 1) / keyNum); i < txs; i += keyNum { + label := fmt.Sprintf("keyNum=%d, txNum=%d", keyNum, i) + require.True(t, it.HasNext(), label) + n, err := it.Next() + require.NoError(t, err) + require.Equal(t, i, n, label) + values = append(values, n) + } + require.False(t, it.HasNext()) + + reverseStream, err := ic.IdxRange(k[:], 1000-1, 400-1, false, -1, roTx) + require.NoError(t, err) + arr := iter.ToArrU64Must(reverseStream) + expect := iter.ToArrU64Must(iter.ReverseArray(values)) + require.Equal(t, expect, arr) + } +} + +func mergeInverted(tb testing.TB, db kv.RwDB, ii *InvertedIndex, txs uint64) { + tb.Helper() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + ctx := context.Background() + // Leave the last 2 aggregation steps un-collated + tx, err := db.BeginRw(ctx) + require.NoError(tb, err) + defer tx.Rollback() + ii.SetTx(tx) + + // Leave the last 2 aggregation steps un-collated + for step := uint64(0); step < txs/ii.aggregationStep-1; step++ { + func() { + bs, err := ii.collate(ctx, step*ii.aggregationStep, (step+1)*ii.aggregationStep, tx) + require.NoError(tb, err) + sf, err := ii.buildFiles(ctx, step, bs, background.NewProgressSet()) + require.NoError(tb, err) + ii.integrateFiles(sf, step*ii.aggregationStep, (step+1)*ii.aggregationStep) + err = ii.prune(ctx, step*ii.aggregationStep, (step+1)*ii.aggregationStep, math.MaxUint64, logEvery) + require.NoError(tb, err) + var found bool + var startTxNum, endTxNum uint64 + maxEndTxNum := ii.endTxNumMinimax() + maxSpan := ii.aggregationStep * StepsInBiggestFile + + for { + if stop := func() bool { + ic := ii.MakeContext() + defer ic.Close() + found, startTxNum, endTxNum = ii.findMergeRange(maxEndTxNum, maxSpan) + if !found { + return true + } + outs, _ := ic.staticFilesInRange(startTxNum, endTxNum) + in, err := ii.mergeFiles(ctx, outs, startTxNum, endTxNum, 1, background.NewProgressSet()) + require.NoError(tb, err) + ii.integrateMergedFiles(outs, in) + require.NoError(tb, err) + return false + }(); stop { + break + } + } + }() + } + err = tx.Commit() + require.NoError(tb, err) +} + +func TestInvIndexRanges(t *testing.T) { + logger := log.New() + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + _, db, ii, txs := filledInvIndex(t, logger) + ctx := context.Background() + tx, err := db.BeginRw(ctx) + require.NoError(t, err) + defer tx.Rollback() + ii.SetTx(tx) + + // Leave the last 2 aggregation steps un-collated + for step := uint64(0); step < txs/ii.aggregationStep-1; step++ { + func() { + bs, err := ii.collate(ctx, step*ii.aggregationStep, (step+1)*ii.aggregationStep, tx) + require.NoError(t, err) + sf, err := ii.buildFiles(ctx, step, bs, background.NewProgressSet()) + require.NoError(t, err) + ii.integrateFiles(sf, step*ii.aggregationStep, (step+1)*ii.aggregationStep) + err = ii.prune(ctx, step*ii.aggregationStep, (step+1)*ii.aggregationStep, math.MaxUint64, logEvery) + require.NoError(t, err) + }() + } + err = tx.Commit() + require.NoError(t, err) + + checkRanges(t, db, ii, txs) +} + +func TestInvIndexMerge(t *testing.T) { + logger := log.New() + _, db, ii, txs := filledInvIndex(t, logger) + + mergeInverted(t, db, ii, txs) + checkRanges(t, db, ii, txs) +} + +func TestInvIndexScanFiles(t *testing.T) { + logger := log.New() + path, db, ii, txs := filledInvIndex(t, logger) + + // Recreate InvertedIndex to scan the files + var err error + ii, err = NewInvertedIndex(path, path, ii.aggregationStep, ii.filenameBase, ii.indexKeysTable, ii.indexTable, false, nil, logger) + require.NoError(t, err) + defer ii.Close() + + mergeInverted(t, db, ii, txs) + checkRanges(t, db, ii, txs) +} + +func TestChangedKeysIterator(t *testing.T) { + logger := log.New() + _, db, ii, txs := filledInvIndex(t, logger) + ctx := context.Background() + mergeInverted(t, db, ii, txs) + roTx, err := db.BeginRo(ctx) + require.NoError(t, err) + defer func() { + roTx.Rollback() + }() + ic := ii.MakeContext() + defer ic.Close() + it := ic.IterateChangedKeys(0, 20, roTx) + defer func() { + it.Close() + }() + var keys []string + for it.HasNext() { + k := it.Next(nil) + keys = append(keys, fmt.Sprintf("%x", k)) + } + it.Close() + require.Equal(t, []string{ + "0000000000000001", + "0000000000000002", + "0000000000000003", + "0000000000000004", + "0000000000000005", + "0000000000000006", + "0000000000000007", + "0000000000000008", + "0000000000000009", + "000000000000000a", + "000000000000000b", + "000000000000000c", + "000000000000000d", + "000000000000000e", + "000000000000000f", + "0000000000000010", + "0000000000000011", + "0000000000000012", + "0000000000000013"}, keys) + it = ic.IterateChangedKeys(995, 1000, roTx) + keys = keys[:0] + for it.HasNext() { + k := it.Next(nil) + keys = append(keys, fmt.Sprintf("%x", k)) + } + it.Close() + require.Equal(t, []string{ + "0000000000000001", + "0000000000000002", + "0000000000000003", + "0000000000000004", + "0000000000000005", + "0000000000000006", + "0000000000000009", + "000000000000000c", + "000000000000001b", + }, keys) +} + +func TestScanStaticFiles(t *testing.T) { + logger := log.New() + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, + files: btree2.NewBTreeG[*filesItem](filesItemLess), + logger: logger, + } + files := []string{ + "test.0-1.ef", + "test.1-2.ef", + "test.0-4.ef", + "test.2-3.ef", + "test.3-4.ef", + "test.4-5.ef", + } + ii.scanStateFiles(files) + require.Equal(t, 6, ii.files.Len()) + + //integrity extension case + ii.files.Clear() + ii.integrityFileExtensions = []string{"v"} + ii.scanStateFiles(files) + require.Equal(t, 0, ii.files.Len()) +} + +func TestCtxFiles(t *testing.T) { + logger := log.New() + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, + files: btree2.NewBTreeG[*filesItem](filesItemLess), + logger: logger, + } + files := []string{ + "test.0-1.ef", // overlap with same `endTxNum=4` + "test.1-2.ef", + "test.0-4.ef", + "test.2-3.ef", + "test.3-4.ef", + "test.4-5.ef", // no overlap + "test.480-484.ef", // overlap with same `startTxNum=480` + "test.480-488.ef", + "test.480-496.ef", + "test.480-512.ef", + } + ii.scanStateFiles(files) + require.Equal(t, 10, ii.files.Len()) + + roFiles := ctxFiles(ii.files) + for i, item := range roFiles { + if item.src.canDelete.Load() { + require.Failf(t, "deleted file", "%d-%d", item.src.startTxNum, item.src.endTxNum) + } + if i == 0 { + continue + } + if item.src.isSubsetOf(roFiles[i-1].src) || roFiles[i-1].src.isSubsetOf(item.src) { + require.Failf(t, "overlaping files", "%d-%d, %d-%d", item.src.startTxNum, item.src.endTxNum, roFiles[i-1].src.startTxNum, roFiles[i-1].src.endTxNum) + } + } + require.Equal(t, 3, len(roFiles)) + + require.Equal(t, 0, int(roFiles[0].startTxNum)) + require.Equal(t, 4, int(roFiles[0].endTxNum)) + + require.Equal(t, 4, int(roFiles[1].startTxNum)) + require.Equal(t, 5, int(roFiles[1].endTxNum)) + + require.Equal(t, 480, int(roFiles[2].startTxNum)) + require.Equal(t, 512, int(roFiles[2].endTxNum)) +} diff --git a/erigon-lib/state/locality_index.go b/erigon-lib/state/locality_index.go new file mode 100644 index 00000000000..8d126a08751 --- /dev/null +++ b/erigon-lib/state/locality_index.go @@ -0,0 +1,504 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "bytes" + "container/heap" + "context" + "fmt" + "os" + "path/filepath" + "regexp" + "strconv" + "sync/atomic" + "time" + + "github.com/ledgerwatch/erigon-lib/common/assert" + "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/log/v3" +) + +const LocalityIndexUint64Limit = 64 //bitmap spend 1 bit per file, stored as uint64 + +// LocalityIndex - has info in which .ef files exists given key +// Format: key -> bitmap(step_number_list) +// step_number_list is list of .ef files where exists given key +type LocalityIndex struct { + filenameBase string + dir, tmpdir string // Directory where static files are created + aggregationStep uint64 // immutable + + file *filesItem + bm *bitmapdb.FixedSizeBitmaps + + roFiles atomic.Pointer[ctxItem] + roBmFile atomic.Pointer[bitmapdb.FixedSizeBitmaps] + logger log.Logger +} + +func NewLocalityIndex( + dir, tmpdir string, + aggregationStep uint64, + filenameBase string, + logger log.Logger, +) (*LocalityIndex, error) { + li := &LocalityIndex{ + dir: dir, + tmpdir: tmpdir, + aggregationStep: aggregationStep, + filenameBase: filenameBase, + logger: logger, + } + return li, nil +} +func (li *LocalityIndex) closeWhatNotInList(fNames []string) { + if li == nil || li.bm == nil { + return + } + + for _, protectName := range fNames { + if li.bm.FileName() == protectName { + return + } + } + li.closeFiles() +} + +func (li *LocalityIndex) OpenList(fNames []string) error { + if li == nil { + return nil + } + li.closeWhatNotInList(fNames) + _ = li.scanStateFiles(fNames) + if err := li.openFiles(); err != nil { + return fmt.Errorf("NewHistory.openFiles: %s, %w", li.filenameBase, err) + } + return nil +} + +func (li *LocalityIndex) scanStateFiles(fNames []string) (uselessFiles []*filesItem) { + if li == nil { + return nil + } + + re := regexp.MustCompile("^" + li.filenameBase + ".([0-9]+)-([0-9]+).li$") + var err error + for _, name := range fNames { + subs := re.FindStringSubmatch(name) + if len(subs) != 3 { + if len(subs) != 0 { + li.logger.Warn("File ignored by inverted index scan, more than 3 submatches", "name", name, "submatches", len(subs)) + } + continue + } + var startStep, endStep uint64 + if startStep, err = strconv.ParseUint(subs[1], 10, 64); err != nil { + li.logger.Warn("File ignored by inverted index scan, parsing startTxNum", "error", err, "name", name) + continue + } + if endStep, err = strconv.ParseUint(subs[2], 10, 64); err != nil { + li.logger.Warn("File ignored by inverted index scan, parsing endTxNum", "error", err, "name", name) + continue + } + if startStep > endStep { + li.logger.Warn("File ignored by inverted index scan, startTxNum > endTxNum", "name", name) + continue + } + + if startStep != 0 { + li.logger.Warn("LocalityIndex must always starts from step 0") + continue + } + if endStep > StepsInBiggestFile*LocalityIndexUint64Limit { + li.logger.Warn("LocalityIndex does store bitmaps as uint64, means it can't handle > 2048 steps. But it's possible to implement") + continue + } + + startTxNum, endTxNum := startStep*li.aggregationStep, endStep*li.aggregationStep + if li.file == nil { + li.file = newFilesItem(startTxNum, endTxNum, li.aggregationStep) + li.file.frozen = false // LocalityIndex files are never frozen + } else if li.file.endTxNum < endTxNum { + uselessFiles = append(uselessFiles, li.file) + li.file = newFilesItem(startTxNum, endTxNum, li.aggregationStep) + li.file.frozen = false // LocalityIndex files are never frozen + } + } + return uselessFiles +} + +func (li *LocalityIndex) openFiles() (err error) { + if li == nil || li.file == nil { + return nil + } + + fromStep, toStep := li.file.startTxNum/li.aggregationStep, li.file.endTxNum/li.aggregationStep + if li.bm == nil { + dataPath := filepath.Join(li.dir, fmt.Sprintf("%s.%d-%d.l", li.filenameBase, fromStep, toStep)) + if dir.FileExist(dataPath) { + li.bm, err = bitmapdb.OpenFixedSizeBitmaps(dataPath, int((toStep-fromStep)/StepsInBiggestFile)) + if err != nil { + return err + } + } + } + if li.file.index == nil { + idxPath := filepath.Join(li.dir, fmt.Sprintf("%s.%d-%d.li", li.filenameBase, fromStep, toStep)) + if dir.FileExist(idxPath) { + li.file.index, err = recsplit.OpenIndex(idxPath) + if err != nil { + return fmt.Errorf("LocalityIndex.openFiles: %w, %s", err, idxPath) + } + } + } + li.reCalcRoFiles() + return nil +} + +func (li *LocalityIndex) closeFiles() { + if li == nil { + return + } + if li.file != nil && li.file.index != nil { + li.file.index.Close() + li.file = nil + } + if li.bm != nil { + li.bm.Close() + li.bm = nil + } +} +func (li *LocalityIndex) reCalcRoFiles() { + if li == nil || li.file == nil { + return + } + li.roFiles.Store(&ctxItem{ + startTxNum: li.file.startTxNum, + endTxNum: li.file.endTxNum, + i: 0, + src: li.file, + }) + li.roBmFile.Store(li.bm) +} + +func (li *LocalityIndex) MakeContext() *ctxLocalityIdx { + if li == nil { + return nil + } + x := &ctxLocalityIdx{ + file: li.roFiles.Load(), + bm: li.roBmFile.Load(), + } + if x.file != nil && x.file.src != nil { + x.file.src.refcount.Add(1) + } + return x +} + +func (out *ctxLocalityIdx) Close(logger log.Logger) { + if out == nil || out.file == nil || out.file.src == nil { + return + } + refCnt := out.file.src.refcount.Add(-1) + if refCnt == 0 && out.file.src.canDelete.Load() { + closeLocalityIndexFilesAndRemove(out, logger) + } +} + +func closeLocalityIndexFilesAndRemove(i *ctxLocalityIdx, logger log.Logger) { + if i.file.src != nil { + i.file.src.closeFilesAndRemove() + i.file.src = nil + } + if i.bm != nil { + i.bm.Close() + if err := os.Remove(i.bm.FilePath()); err != nil { + logger.Trace("os.Remove", "err", err, "file", i.bm.FileName()) + } + i.bm = nil + } +} + +func (li *LocalityIndex) Close() { + li.closeWhatNotInList([]string{}) + li.reCalcRoFiles() +} +func (li *LocalityIndex) Files() (res []string) { return res } +func (li *LocalityIndex) NewIdxReader() *recsplit.IndexReader { + if li != nil && li.file != nil && li.file.index != nil { + return recsplit.NewIndexReader(li.file.index) + } + return nil +} + +// LocalityIndex return exactly 2 file (step) +// prevents searching key in many files +func (li *LocalityIndex) lookupIdxFiles(loc *ctxLocalityIdx, key []byte, fromTxNum uint64) (exactShard1, exactShard2 uint64, lastIndexedTxNum uint64, ok1, ok2 bool) { + if li == nil || loc == nil || loc.bm == nil { + return 0, 0, 0, false, false + } + if loc.reader == nil { + loc.reader = recsplit.NewIndexReader(loc.file.src.index) + } + + if fromTxNum >= loc.file.endTxNum { + return 0, 0, fromTxNum, false, false + } + + fromFileNum := fromTxNum / li.aggregationStep / StepsInBiggestFile + fn1, fn2, ok1, ok2, err := loc.bm.First2At(loc.reader.Lookup(key), fromFileNum) + if err != nil { + panic(err) + } + return fn1 * StepsInBiggestFile, fn2 * StepsInBiggestFile, loc.file.endTxNum, ok1, ok2 +} + +func (li *LocalityIndex) missedIdxFiles(ii *InvertedIndexContext) (toStep uint64, idxExists bool) { + if len(ii.files) == 0 { + return 0, true + } + var item *ctxItem + for i := len(ii.files) - 1; i >= 0; i-- { + if ii.files[i].src.frozen { + item = &ii.files[i] + break + } + } + if item != nil { + toStep = item.endTxNum / li.aggregationStep + } + fName := fmt.Sprintf("%s.%d-%d.li", li.filenameBase, 0, toStep) + return toStep, dir.FileExist(filepath.Join(li.dir, fName)) +} +func (li *LocalityIndex) buildFiles(ctx context.Context, ic *InvertedIndexContext, toStep uint64) (files *LocalityIndexFiles, err error) { + defer ic.ii.EnableMadvNormalReadAhead().DisableReadAhead() + + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + + fromStep := uint64(0) + count := 0 + it := ic.iterateKeysLocality(toStep * li.aggregationStep) + for it.HasNext() { + _, _ = it.Next() + count++ + } + + fName := fmt.Sprintf("%s.%d-%d.li", li.filenameBase, fromStep, toStep) + idxPath := filepath.Join(li.dir, fName) + filePath := filepath.Join(li.dir, fmt.Sprintf("%s.%d-%d.l", li.filenameBase, fromStep, toStep)) + + rs, err := recsplit.NewRecSplit(recsplit.RecSplitArgs{ + KeyCount: count, + Enums: false, + BucketSize: 2000, + LeafSize: 8, + TmpDir: li.tmpdir, + IndexFile: idxPath, + }, li.logger) + if err != nil { + return nil, fmt.Errorf("create recsplit: %w", err) + } + defer rs.Close() + rs.LogLvl(log.LvlTrace) + + i := uint64(0) + for { + dense, err := bitmapdb.NewFixedSizeBitmapsWriter(filePath, int(it.FilesAmount()), uint64(count), li.logger) + if err != nil { + return nil, err + } + defer dense.Close() + + it = ic.iterateKeysLocality(toStep * li.aggregationStep) + for it.HasNext() { + k, inFiles := it.Next() + if err := dense.AddArray(i, inFiles); err != nil { + return nil, err + } + if err = rs.AddKey(k, 0); err != nil { + return nil, err + } + i++ + + select { + case <-ctx.Done(): + return nil, ctx.Err() + case <-logEvery.C: + li.logger.Info("[LocalityIndex] build", "name", li.filenameBase, "progress", fmt.Sprintf("%.2f%%", 50+it.Progress()/2)) + default: + } + } + + if err := dense.Build(); err != nil { + return nil, err + } + + if err = rs.Build(ctx); err != nil { + if rs.Collision() { + li.logger.Debug("Building recsplit. Collision happened. It's ok. Restarting...") + rs.ResetNextSalt() + } else { + return nil, fmt.Errorf("build idx: %w", err) + } + } else { + break + } + } + + idx, err := recsplit.OpenIndex(idxPath) + if err != nil { + return nil, err + } + bm, err := bitmapdb.OpenFixedSizeBitmaps(filePath, int(it.FilesAmount())) + if err != nil { + return nil, err + } + return &LocalityIndexFiles{index: idx, bm: bm}, nil +} + +func (li *LocalityIndex) integrateFiles(sf LocalityIndexFiles, txNumFrom, txNumTo uint64) { + if li.file != nil { + li.file.canDelete.Store(true) + } + li.file = &filesItem{ + startTxNum: txNumFrom, + endTxNum: txNumTo, + index: sf.index, + frozen: false, + } + li.bm = sf.bm + li.reCalcRoFiles() +} + +func (li *LocalityIndex) BuildMissedIndices(ctx context.Context, ii *InvertedIndexContext) error { + if li == nil { + return nil + } + toStep, idxExists := li.missedIdxFiles(ii) + if idxExists || toStep == 0 { + return nil + } + fromStep := uint64(0) + f, err := li.buildFiles(ctx, ii, toStep) + if err != nil { + return err + } + li.integrateFiles(*f, fromStep*li.aggregationStep, toStep*li.aggregationStep) + return nil +} + +type LocalityIndexFiles struct { + index *recsplit.Index + bm *bitmapdb.FixedSizeBitmaps +} + +func (sf LocalityIndexFiles) Close() { + if sf.index != nil { + sf.index.Close() + } + if sf.bm != nil { + sf.bm.Close() + } +} + +type LocalityIterator struct { + hc *InvertedIndexContext + h ReconHeapOlderFirst + files, nextFiles []uint64 + key, nextKey []byte + progress uint64 + hasNext bool + + totalOffsets, filesAmount uint64 +} + +func (si *LocalityIterator) advance() { + for si.h.Len() > 0 { + top := heap.Pop(&si.h).(*ReconItem) + key := top.key + _, offset := top.g.NextUncompressed() + si.progress += offset - top.lastOffset + top.lastOffset = offset + inStep := uint32(top.startTxNum / si.hc.ii.aggregationStep) + if top.g.HasNext() { + top.key, _ = top.g.NextUncompressed() + heap.Push(&si.h, top) + } + + inFile := inStep / StepsInBiggestFile + + if !bytes.Equal(key, si.key) { + if si.key == nil { + si.key = key + si.files = append(si.files, uint64(inFile)) + continue + } + + si.nextFiles, si.files = si.files, si.nextFiles[:0] + si.nextKey = si.key + + si.files = append(si.files, uint64(inFile)) + si.key = key + si.hasNext = true + return + } + si.files = append(si.files, uint64(inFile)) + } + si.nextFiles, si.files = si.files, si.nextFiles[:0] + si.nextKey = si.key + si.hasNext = false +} + +func (si *LocalityIterator) HasNext() bool { return si.hasNext } +func (si *LocalityIterator) Progress() float64 { + return (float64(si.progress) / float64(si.totalOffsets)) * 100 +} +func (si *LocalityIterator) FilesAmount() uint64 { return si.filesAmount } + +func (si *LocalityIterator) Next() ([]byte, []uint64) { + si.advance() + return si.nextKey, si.nextFiles +} + +func (ic *InvertedIndexContext) iterateKeysLocality(uptoTxNum uint64) *LocalityIterator { + si := &LocalityIterator{hc: ic} + for _, item := range ic.files { + if !item.src.frozen || item.startTxNum > uptoTxNum { + continue + } + if assert.Enable { + if (item.endTxNum-item.startTxNum)/ic.ii.aggregationStep != StepsInBiggestFile { + panic(fmt.Errorf("frozen file of small size: %s", item.src.decompressor.FileName())) + } + } + g := item.src.decompressor.MakeGetter() + if g.HasNext() { + key, offset := g.NextUncompressed() + + heapItem := &ReconItem{startTxNum: item.startTxNum, endTxNum: item.endTxNum, g: g, txNum: ^item.endTxNum, key: key, startOffset: offset, lastOffset: offset} + heap.Push(&si.h, heapItem) + } + si.totalOffsets += uint64(g.Size()) + si.filesAmount++ + } + si.advance() + return si +} diff --git a/erigon-lib/state/locality_index_test.go b/erigon-lib/state/locality_index_test.go new file mode 100644 index 00000000000..ef70496972c --- /dev/null +++ b/erigon-lib/state/locality_index_test.go @@ -0,0 +1,105 @@ +package state + +import ( + "context" + "encoding/binary" + "math" + "sync/atomic" + "testing" + + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/require" +) + +func BenchmarkName2(b *testing.B) { + b.Run("1", func(b *testing.B) { + j := atomic.Int32{} + for i := 0; i < b.N; i++ { + j.Add(1) + } + }) + b.Run("2", func(b *testing.B) { + j := &atomic.Int32{} + for i := 0; i < b.N; i++ { + j.Add(1) + } + }) +} + +func TestLocality(t *testing.T) { + logger := log.New() + ctx, require := context.Background(), require.New(t) + const Module uint64 = 31 + path, db, ii, txs := filledInvIndexOfSize(t, 300, 4, Module, logger) + mergeInverted(t, db, ii, txs) + ic := ii.MakeContext() + defer ic.Close() + li, _ := NewLocalityIndex(path, path, 4, "inv", logger) + defer li.Close() + err := li.BuildMissedIndices(ctx, ic) + require.NoError(err) + t.Run("locality iterator", func(t *testing.T) { + ic := ii.MakeContext() + defer ic.Close() + it := ic.iterateKeysLocality(math.MaxUint64) + require.True(it.HasNext()) + key, bitmap := it.Next() + require.Equal(uint64(2), binary.BigEndian.Uint64(key)) + require.Equal([]uint64{0, 1}, bitmap) + require.True(it.HasNext()) + key, bitmap = it.Next() + require.Equal(uint64(3), binary.BigEndian.Uint64(key)) + require.Equal([]uint64{0, 1}, bitmap) + + var last []byte + for it.HasNext() { + key, _ = it.Next() + last = key + } + require.Equal(Module, binary.BigEndian.Uint64(last)) + }) + + files, err := li.buildFiles(ctx, ic, ii.endTxNumMinimax()/ii.aggregationStep) + require.NoError(err) + defer files.Close() + t.Run("locality index: get full bitamp", func(t *testing.T) { + res, err := files.bm.At(0) + require.NoError(err) + require.Equal([]uint64{0, 1}, res) + res, err = files.bm.At(1) + require.NoError(err) + require.Equal([]uint64{0, 1}, res) + res, err = files.bm.At(32) //too big, must error + require.Error(err) + require.Empty(res) + }) + + t.Run("locality index: search from given position", func(t *testing.T) { + fst, snd, ok1, ok2, err := files.bm.First2At(0, 1) + require.NoError(err) + require.True(ok1) + require.False(ok2) + require.Equal(uint64(1), fst) + require.Zero(snd) + }) + t.Run("locality index: search from given position in future", func(t *testing.T) { + fst, snd, ok1, ok2, err := files.bm.First2At(0, 2) + require.NoError(err) + require.False(ok1) + require.False(ok2) + require.Zero(fst) + require.Zero(snd) + }) + t.Run("locality index: lookup", func(t *testing.T) { + liCtx := li.MakeContext() + defer liCtx.Close(logger) + var k [8]byte + binary.BigEndian.PutUint64(k[:], 1) + v1, v2, from, ok1, ok2 := li.lookupIdxFiles(liCtx, k[:], 1*li.aggregationStep*StepsInBiggestFile) + require.True(ok1) + require.False(ok2) + require.Equal(uint64(1*StepsInBiggestFile), v1) + require.Equal(uint64(0*StepsInBiggestFile), v2) + require.Equal(2*li.aggregationStep*StepsInBiggestFile, from) + }) +} diff --git a/erigon-lib/state/merge.go b/erigon-lib/state/merge.go new file mode 100644 index 00000000000..1a45bb55021 --- /dev/null +++ b/erigon-lib/state/merge.go @@ -0,0 +1,1296 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "bytes" + "container/heap" + "context" + "encoding/binary" + "fmt" + "os" + "path/filepath" + "strings" + + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" +) + +func (d *Domain) endTxNumMinimax() uint64 { + minimax := d.History.endTxNumMinimax() + if max, ok := d.files.Max(); ok { + endTxNum := max.endTxNum + if minimax == 0 || endTxNum < minimax { + minimax = endTxNum + } + } + return minimax +} + +func (ii *InvertedIndex) endTxNumMinimax() uint64 { + var minimax uint64 + if max, ok := ii.files.Max(); ok { + endTxNum := max.endTxNum + if minimax == 0 || endTxNum < minimax { + minimax = endTxNum + } + } + return minimax +} +func (ii *InvertedIndex) endIndexedTxNumMinimax(needFrozen bool) uint64 { + var max uint64 + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.index == nil || (needFrozen && !item.frozen) { + continue + } + max = cmp.Max(max, item.endTxNum) + } + return true + }) + return max +} + +func (h *History) endTxNumMinimax() uint64 { + minimax := h.InvertedIndex.endTxNumMinimax() + if max, ok := h.files.Max(); ok { + endTxNum := max.endTxNum + if minimax == 0 || endTxNum < minimax { + minimax = endTxNum + } + } + return minimax +} +func (h *History) endIndexedTxNumMinimax(needFrozen bool) uint64 { + var max uint64 + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.index == nil || (needFrozen && !item.frozen) { + continue + } + max = cmp.Max(max, item.endTxNum) + } + return true + }) + return cmp.Min(max, h.InvertedIndex.endIndexedTxNumMinimax(needFrozen)) +} + +type DomainRanges struct { + valuesStartTxNum uint64 + valuesEndTxNum uint64 + historyStartTxNum uint64 + historyEndTxNum uint64 + indexStartTxNum uint64 + indexEndTxNum uint64 + values bool + history bool + index bool +} + +func (r DomainRanges) String() string { + var b strings.Builder + if r.values { + b.WriteString(fmt.Sprintf("Values: [%d, %d)", r.valuesStartTxNum, r.valuesEndTxNum)) + } + if r.history { + if b.Len() > 0 { + b.WriteString(", ") + } + b.WriteString(fmt.Sprintf("History: [%d, %d)", r.historyStartTxNum, r.historyEndTxNum)) + } + if r.index { + if b.Len() > 0 { + b.WriteString(", ") + } + b.WriteString(fmt.Sprintf("Index: [%d, %d)", r.indexStartTxNum, r.indexEndTxNum)) + } + return b.String() +} + +func (r DomainRanges) any() bool { + return r.values || r.history || r.index +} + +// findMergeRange assumes that all fTypes in d.files have items at least as far as maxEndTxNum +// That is why only Values type is inspected +func (d *Domain) findMergeRange(maxEndTxNum, maxSpan uint64) DomainRanges { + hr := d.History.findMergeRange(maxEndTxNum, maxSpan) + r := DomainRanges{ + historyStartTxNum: hr.historyStartTxNum, + historyEndTxNum: hr.historyEndTxNum, + history: hr.history, + indexStartTxNum: hr.indexStartTxNum, + indexEndTxNum: hr.indexEndTxNum, + index: hr.index, + } + d.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.endTxNum > maxEndTxNum { + return false + } + endStep := item.endTxNum / d.aggregationStep + spanStep := endStep & -endStep // Extract rightmost bit in the binary representation of endStep, this corresponds to size of maximally possible merge ending at endStep + span := cmp.Min(spanStep*d.aggregationStep, maxSpan) + start := item.endTxNum - span + if start < item.startTxNum { + if !r.values || start < r.valuesStartTxNum { + r.values = true + r.valuesStartTxNum = start + r.valuesEndTxNum = item.endTxNum + } + } + } + return true + }) + return r +} + +// 0-1,1-2,2-3,3-4: allow merge 0-1 +// 0-2,2-3,3-4: allow merge 0-4 +// 0-2,2-4: allow merge 0-4 +// +// 0-1,1-2,2-3: allow merge 0-2 +// +// 0-2,2-3: nothing to merge +func (ii *InvertedIndex) findMergeRange(maxEndTxNum, maxSpan uint64) (bool, uint64, uint64) { + var minFound bool + var startTxNum, endTxNum uint64 + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.endTxNum > maxEndTxNum { + continue + } + endStep := item.endTxNum / ii.aggregationStep + spanStep := endStep & -endStep // Extract rightmost bit in the binary representation of endStep, this corresponds to size of maximally possible merge ending at endStep + span := cmp.Min(spanStep*ii.aggregationStep, maxSpan) + start := item.endTxNum - span + foundSuperSet := startTxNum == item.startTxNum && item.endTxNum >= endTxNum + if foundSuperSet { + minFound = false + startTxNum = start + endTxNum = item.endTxNum + } else if start < item.startTxNum { + if !minFound || start < startTxNum { + minFound = true + startTxNum = start + endTxNum = item.endTxNum + } + } + } + return true + }) + return minFound, startTxNum, endTxNum +} + +func (ii *InvertedIndex) mergeRangesUpTo(ctx context.Context, maxTxNum, maxSpan uint64, workers int, ictx *InvertedIndexContext, ps *background.ProgressSet) (err error) { + closeAll := true + for updated, startTx, endTx := ii.findMergeRange(maxSpan, maxTxNum); updated; updated, startTx, endTx = ii.findMergeRange(maxTxNum, maxSpan) { + staticFiles, _ := ictx.staticFilesInRange(startTx, endTx) + defer func() { + if closeAll { + for _, i := range staticFiles { + i.decompressor.Close() + i.index.Close() + } + } + }() + + mergedIndex, err := ii.mergeFiles(ctx, staticFiles, startTx, endTx, workers, ps) + if err != nil { + return err + } + defer func() { + if closeAll { + mergedIndex.decompressor.Close() + mergedIndex.index.Close() + } + }() + + ii.integrateMergedFiles(staticFiles, mergedIndex) + if mergedIndex.frozen { + ii.cleanAfterFreeze(mergedIndex.endTxNum) + } + } + closeAll = false + return nil +} + +type HistoryRanges struct { + historyStartTxNum uint64 + historyEndTxNum uint64 + indexStartTxNum uint64 + indexEndTxNum uint64 + history bool + index bool +} + +func (r HistoryRanges) String(aggStep uint64) string { + var str string + if r.history { + str += fmt.Sprintf("hist: %d-%d, ", r.historyStartTxNum/aggStep, r.historyEndTxNum/aggStep) + } + if r.index { + str += fmt.Sprintf("idx: %d-%d", r.indexStartTxNum/aggStep, r.indexEndTxNum/aggStep) + } + return str +} +func (r HistoryRanges) any() bool { + return r.history || r.index +} + +func (h *History) findMergeRange(maxEndTxNum, maxSpan uint64) HistoryRanges { + var r HistoryRanges + r.index, r.indexStartTxNum, r.indexEndTxNum = h.InvertedIndex.findMergeRange(maxEndTxNum, maxSpan) + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.endTxNum > maxEndTxNum { + continue + } + endStep := item.endTxNum / h.aggregationStep + spanStep := endStep & -endStep // Extract rightmost bit in the binary representation of endStep, this corresponds to size of maximally possible merge ending at endStep + span := cmp.Min(spanStep*h.aggregationStep, maxSpan) + start := item.endTxNum - span + foundSuperSet := r.indexStartTxNum == item.startTxNum && item.endTxNum >= r.historyEndTxNum + if foundSuperSet { + r.history = false + r.historyStartTxNum = start + r.historyEndTxNum = item.endTxNum + } else if start < item.startTxNum { + if !r.history || start < r.historyStartTxNum { + r.history = true + r.historyStartTxNum = start + r.historyEndTxNum = item.endTxNum + } + } + } + return true + }) + + if r.history && r.index { + // history is behind idx: then merge only history + historyIsAgead := r.historyEndTxNum > r.indexEndTxNum + if historyIsAgead { + r.history, r.historyStartTxNum, r.historyEndTxNum = false, 0, 0 + return r + } + + historyIsBehind := r.historyEndTxNum < r.indexEndTxNum + if historyIsBehind { + r.index, r.indexStartTxNum, r.indexEndTxNum = false, 0, 0 + return r + } + } + return r +} + +// staticFilesInRange returns list of static files with txNum in specified range [startTxNum; endTxNum) +// files are in the descending order of endTxNum +func (dc *DomainContext) staticFilesInRange(r DomainRanges) (valuesFiles, indexFiles, historyFiles []*filesItem, startJ int) { + if r.index || r.history { + var err error + indexFiles, historyFiles, startJ, err = dc.hc.staticFilesInRange(HistoryRanges{ + historyStartTxNum: r.historyStartTxNum, + historyEndTxNum: r.historyEndTxNum, + history: r.history, + indexStartTxNum: r.indexStartTxNum, + indexEndTxNum: r.indexEndTxNum, + index: r.index, + }) + if err != nil { + panic(err) + } + } + if r.values { + for _, item := range dc.files { + if item.startTxNum < r.valuesStartTxNum { + startJ++ + continue + } + if item.endTxNum > r.valuesEndTxNum { + break + } + valuesFiles = append(valuesFiles, item.src) + } + for _, f := range valuesFiles { + if f == nil { + panic("must not happen") + } + } + } + return +} + +// nolint +func (d *Domain) staticFilesInRange(r DomainRanges, dc *DomainContext) (valuesFiles, indexFiles, historyFiles []*filesItem, startJ int) { + panic("deprecated: use DomainContext.staticFilesInRange") +} +func (ic *InvertedIndexContext) staticFilesInRange(startTxNum, endTxNum uint64) ([]*filesItem, int) { + files := make([]*filesItem, 0, len(ic.files)) + var startJ int + + for _, item := range ic.files { + if item.startTxNum < startTxNum { + startJ++ + continue + } + if item.endTxNum > endTxNum { + break + } + files = append(files, item.src) + } + for _, f := range files { + if f == nil { + panic("must not happen") + } + } + + return files, startJ +} + +// nolint +func (ii *InvertedIndex) staticFilesInRange(startTxNum, endTxNum uint64, ic *InvertedIndexContext) ([]*filesItem, int) { + panic("deprecated: use InvertedIndexContext.staticFilesInRange") +} + +func (hc *HistoryContext) staticFilesInRange(r HistoryRanges) (indexFiles, historyFiles []*filesItem, startJ int, err error) { + if !r.history && r.index { + indexFiles, startJ = hc.ic.staticFilesInRange(r.indexStartTxNum, r.indexEndTxNum) + return indexFiles, historyFiles, startJ, nil + } + + if r.history { + // Get history files from HistoryContext (no "garbage/overalps"), but index files not from InvertedIndexContext + // because index files may already be merged (before `kill -9`) and it means not visible in InvertedIndexContext + startJ = 0 + for _, item := range hc.files { + if item.startTxNum < r.historyStartTxNum { + startJ++ + continue + } + if item.endTxNum > r.historyEndTxNum { + break + } + + historyFiles = append(historyFiles, item.src) + idxFile, ok := hc.h.InvertedIndex.files.Get(item.src) + if ok { + indexFiles = append(indexFiles, idxFile) + } else { + walkErr := fmt.Errorf("History.staticFilesInRange: required file not found: %s.%d-%d.efi", hc.h.filenameBase, item.startTxNum/hc.h.aggregationStep, item.endTxNum/hc.h.aggregationStep) + return nil, nil, 0, walkErr + } + } + + for _, f := range historyFiles { + if f == nil { + panic("must not happen") + } + } + if r.index && len(indexFiles) != len(historyFiles) { + var sIdx, sHist []string + for _, f := range indexFiles { + if f.index != nil { + _, fName := filepath.Split(f.index.FilePath()) + sIdx = append(sIdx, fmt.Sprintf("%+v", fName)) + } + } + for _, f := range historyFiles { + if f.decompressor != nil { + _, fName := filepath.Split(f.decompressor.FilePath()) + sHist = append(sHist, fmt.Sprintf("%+v", fName)) + } + } + log.Warn("[snapshots] something wrong with files for merge", "idx", strings.Join(sIdx, ","), "hist", strings.Join(sHist, ",")) + } + } + return +} + +// nolint +func (h *History) staticFilesInRange(r HistoryRanges, hc *HistoryContext) (indexFiles, historyFiles []*filesItem, startJ int, err error) { + panic("deprecated: use HistoryContext.staticFilesInRange") +} + +func mergeEfs(preval, val, buf []byte) ([]byte, error) { + preef, _ := eliasfano32.ReadEliasFano(preval) + ef, _ := eliasfano32.ReadEliasFano(val) + preIt := preef.Iterator() + efIt := ef.Iterator() + newEf := eliasfano32.NewEliasFano(preef.Count()+ef.Count(), ef.Max()) + for preIt.HasNext() { + v, err := preIt.Next() + if err != nil { + return nil, err + } + newEf.AddOffset(v) + } + for efIt.HasNext() { + v, err := efIt.Next() + if err != nil { + return nil, err + } + newEf.AddOffset(v) + } + newEf.Build() + return newEf.AppendBytes(buf), nil +} + +func (d *Domain) mergeFiles(ctx context.Context, valuesFiles, indexFiles, historyFiles []*filesItem, r DomainRanges, workers int, ps *background.ProgressSet) (valuesIn, indexIn, historyIn *filesItem, err error) { + if !r.any() { + return + } + var comp *compress.Compressor + closeItem := true + + defer func() { + if closeItem { + if comp != nil { + comp.Close() + } + if indexIn != nil { + if indexIn.decompressor != nil { + indexIn.decompressor.Close() + } + if indexIn.index != nil { + indexIn.index.Close() + } + if indexIn.bindex != nil { + indexIn.bindex.Close() + } + } + if historyIn != nil { + if historyIn.decompressor != nil { + historyIn.decompressor.Close() + } + if historyIn.index != nil { + historyIn.index.Close() + } + if historyIn.bindex != nil { + historyIn.bindex.Close() + } + } + if valuesIn != nil { + if valuesIn.decompressor != nil { + valuesIn.decompressor.Close() + } + if valuesIn.index != nil { + valuesIn.index.Close() + } + if valuesIn.bindex != nil { + valuesIn.bindex.Close() + } + } + } + }() + if indexIn, historyIn, err = d.History.mergeFiles(ctx, indexFiles, historyFiles, + HistoryRanges{ + historyStartTxNum: r.historyStartTxNum, + historyEndTxNum: r.historyEndTxNum, + history: r.history, + indexStartTxNum: r.indexStartTxNum, + indexEndTxNum: r.indexEndTxNum, + index: r.index}, workers, ps); err != nil { + return nil, nil, nil, err + } + if r.values { + for _, f := range valuesFiles { + defer f.decompressor.EnableMadvNormal().DisableReadAhead() + } + datFileName := fmt.Sprintf("%s.%d-%d.kv", d.filenameBase, r.valuesStartTxNum/d.aggregationStep, r.valuesEndTxNum/d.aggregationStep) + datPath := filepath.Join(d.dir, datFileName) + if comp, err = compress.NewCompressor(ctx, "merge", datPath, d.tmpdir, compress.MinPatternScore, workers, log.LvlTrace, d.logger); err != nil { + return nil, nil, nil, fmt.Errorf("merge %s history compressor: %w", d.filenameBase, err) + } + if d.noFsync { + comp.DisableFsync() + } + p := ps.AddNew("merege "+datFileName, 1) + defer ps.Delete(p) + + var cp CursorHeap + heap.Init(&cp) + for _, item := range valuesFiles { + g := item.decompressor.MakeGetter() + g.Reset(0) + if g.HasNext() { + key, _ := g.NextUncompressed() + var val []byte + if d.compressVals { + val, _ = g.Next(nil) + } else { + val, _ = g.NextUncompressed() + } + heap.Push(&cp, &CursorItem{ + t: FILE_CURSOR, + dg: g, + key: key, + val: val, + endTxNum: item.endTxNum, + reverse: true, + }) + } + } + keyCount := 0 + // In the loop below, the pair `keyBuf=>valBuf` is always 1 item behind `lastKey=>lastVal`. + // `lastKey` and `lastVal` are taken from the top of the multi-way merge (assisted by the CursorHeap cp), but not processed right away + // instead, the pair from the previous iteration is processed first - `keyBuf=>valBuf`. After that, `keyBuf` and `valBuf` are assigned + // to `lastKey` and `lastVal` correspondingly, and the next step of multi-way merge happens. Therefore, after the multi-way merge loop + // (when CursorHeap cp is empty), there is a need to process the last pair `keyBuf=>valBuf`, because it was one step behind + var keyBuf, valBuf []byte + for cp.Len() > 0 { + lastKey := common.Copy(cp[0].key) + lastVal := common.Copy(cp[0].val) + // Advance all the items that have this key (including the top) + for cp.Len() > 0 && bytes.Equal(cp[0].key, lastKey) { + ci1 := cp[0] + if ci1.dg.HasNext() { + ci1.key, _ = ci1.dg.NextUncompressed() + if d.compressVals { + ci1.val, _ = ci1.dg.Next(ci1.val[:0]) + } else { + ci1.val, _ = ci1.dg.NextUncompressed() + } + heap.Fix(&cp, 0) + } else { + heap.Pop(&cp) + } + } + + // empty value means deletion + deleted := r.valuesStartTxNum == 0 && len(lastVal) == 0 + if !deleted { + if keyBuf != nil { + if err = comp.AddUncompressedWord(keyBuf); err != nil { + return nil, nil, nil, err + } + keyCount++ // Only counting keys, not values + switch d.compressVals { + case true: + if err = comp.AddWord(valBuf); err != nil { + return nil, nil, nil, err + } + default: + if err = comp.AddUncompressedWord(valBuf); err != nil { + return nil, nil, nil, err + } + } + } + keyBuf = append(keyBuf[:0], lastKey...) + valBuf = append(valBuf[:0], lastVal...) + } + } + if keyBuf != nil { + if err = comp.AddUncompressedWord(keyBuf); err != nil { + return nil, nil, nil, err + } + keyCount++ // Only counting keys, not values + if d.compressVals { + if err = comp.AddWord(valBuf); err != nil { + return nil, nil, nil, err + } + } else { + if err = comp.AddUncompressedWord(valBuf); err != nil { + return nil, nil, nil, err + } + } + } + if err = comp.Compress(); err != nil { + return nil, nil, nil, err + } + comp.Close() + comp = nil + ps.Delete(p) + valuesIn = newFilesItem(r.valuesStartTxNum, r.valuesEndTxNum, d.aggregationStep) + if valuesIn.decompressor, err = compress.NewDecompressor(datPath); err != nil { + return nil, nil, nil, fmt.Errorf("merge %s decompressor [%d-%d]: %w", d.filenameBase, r.valuesStartTxNum, r.valuesEndTxNum, err) + } + + idxFileName := fmt.Sprintf("%s.%d-%d.kvi", d.filenameBase, r.valuesStartTxNum/d.aggregationStep, r.valuesEndTxNum/d.aggregationStep) + idxPath := filepath.Join(d.dir, idxFileName) + p = ps.AddNew("merge "+idxFileName, uint64(keyCount*2)) + defer ps.Delete(p) + ps.Delete(p) + + // if valuesIn.index, err = buildIndex(valuesIn.decompressor, idxPath, d.dir, keyCount, false /* values */); err != nil { + if valuesIn.index, err = buildIndexThenOpen(ctx, valuesIn.decompressor, idxPath, d.tmpdir, keyCount, false /* values */, p, d.logger, d.noFsync); err != nil { + return nil, nil, nil, fmt.Errorf("merge %s buildIndex [%d-%d]: %w", d.filenameBase, r.valuesStartTxNum, r.valuesEndTxNum, err) + } + + btFileName := strings.TrimSuffix(idxFileName, "kvi") + "bt" + p = ps.AddNew(btFileName, uint64(keyCount*2)) + defer ps.Delete(p) + btPath := filepath.Join(d.dir, btFileName) + err = BuildBtreeIndexWithDecompressor(btPath, valuesIn.decompressor, p, d.tmpdir, d.logger) + if err != nil { + return nil, nil, nil, fmt.Errorf("merge %s btindex [%d-%d]: %w", d.filenameBase, r.valuesStartTxNum, r.valuesEndTxNum, err) + } + + bt, err := OpenBtreeIndexWithDecompressor(btPath, DefaultBtreeM, valuesIn.decompressor) + if err != nil { + return nil, nil, nil, fmt.Errorf("merge %s btindex2 [%d-%d]: %w", d.filenameBase, r.valuesStartTxNum, r.valuesEndTxNum, err) + } + valuesIn.bindex = bt + } + closeItem = false + d.stats.MergesCount++ + return +} + +func (ii *InvertedIndex) mergeFiles(ctx context.Context, files []*filesItem, startTxNum, endTxNum uint64, workers int, ps *background.ProgressSet) (*filesItem, error) { + for _, h := range files { + defer h.decompressor.EnableMadvNormal().DisableReadAhead() + } + + var outItem *filesItem + var comp *compress.Compressor + var decomp *compress.Decompressor + var err error + var closeItem = true + defer func() { + if closeItem { + if comp != nil { + comp.Close() + } + if decomp != nil { + decomp.Close() + } + if outItem != nil { + if outItem.decompressor != nil { + outItem.decompressor.Close() + } + if outItem.index != nil { + outItem.index.Close() + } + outItem = nil + } + } + }() + if ctx.Err() != nil { + return nil, ctx.Err() + } + + datFileName := fmt.Sprintf("%s.%d-%d.ef", ii.filenameBase, startTxNum/ii.aggregationStep, endTxNum/ii.aggregationStep) + datPath := filepath.Join(ii.dir, datFileName) + if comp, err = compress.NewCompressor(ctx, "Snapshots merge", datPath, ii.tmpdir, compress.MinPatternScore, workers, log.LvlTrace, ii.logger); err != nil { + return nil, fmt.Errorf("merge %s inverted index compressor: %w", ii.filenameBase, err) + } + if ii.noFsync { + comp.DisableFsync() + } + p := ps.AddNew("merge "+datFileName, 1) + defer ps.Delete(p) + + var cp CursorHeap + heap.Init(&cp) + + for _, item := range files { + g := item.decompressor.MakeGetter() + g.Reset(0) + if g.HasNext() { + key, _ := g.Next(nil) + val, _ := g.Next(nil) + //fmt.Printf("heap push %s [%d] %x\n", item.decompressor.FilePath(), item.endTxNum, key) + heap.Push(&cp, &CursorItem{ + t: FILE_CURSOR, + dg: g, + key: key, + val: val, + endTxNum: item.endTxNum, + reverse: true, + }) + } + } + keyCount := 0 + + // In the loop below, the pair `keyBuf=>valBuf` is always 1 item behind `lastKey=>lastVal`. + // `lastKey` and `lastVal` are taken from the top of the multi-way merge (assisted by the CursorHeap cp), but not processed right away + // instead, the pair from the previous iteration is processed first - `keyBuf=>valBuf`. After that, `keyBuf` and `valBuf` are assigned + // to `lastKey` and `lastVal` correspondingly, and the next step of multi-way merge happens. Therefore, after the multi-way merge loop + // (when CursorHeap cp is empty), there is a need to process the last pair `keyBuf=>valBuf`, because it was one step behind + var keyBuf, valBuf []byte + for cp.Len() > 0 { + lastKey := common.Copy(cp[0].key) + lastVal := common.Copy(cp[0].val) + var mergedOnce bool + + // Advance all the items that have this key (including the top) + for cp.Len() > 0 && bytes.Equal(cp[0].key, lastKey) { + ci1 := cp[0] + if mergedOnce { + if lastVal, err = mergeEfs(ci1.val, lastVal, nil); err != nil { + return nil, fmt.Errorf("merge %s inverted index: %w", ii.filenameBase, err) + } + } else { + mergedOnce = true + } + //fmt.Printf("multi-way %s [%d] %x\n", ii.indexKeysTable, ci1.endTxNum, ci1.key) + if ci1.dg.HasNext() { + ci1.key, _ = ci1.dg.NextUncompressed() + ci1.val, _ = ci1.dg.NextUncompressed() + //fmt.Printf("heap next push %s [%d] %x\n", ii.indexKeysTable, ci1.endTxNum, ci1.key) + heap.Fix(&cp, 0) + } else { + heap.Pop(&cp) + } + } + if keyBuf != nil { + if err = comp.AddUncompressedWord(keyBuf); err != nil { + return nil, err + } + keyCount++ // Only counting keys, not values + if err = comp.AddUncompressedWord(valBuf); err != nil { + return nil, err + } + } + keyBuf = append(keyBuf[:0], lastKey...) + valBuf = append(valBuf[:0], lastVal...) + } + if keyBuf != nil { + if err = comp.AddUncompressedWord(keyBuf); err != nil { + return nil, err + } + keyCount++ // Only counting keys, not values + if err = comp.AddUncompressedWord(valBuf); err != nil { + return nil, err + } + } + if err = comp.Compress(); err != nil { + return nil, err + } + comp.Close() + comp = nil + outItem = newFilesItem(startTxNum, endTxNum, ii.aggregationStep) + if outItem.decompressor, err = compress.NewDecompressor(datPath); err != nil { + return nil, fmt.Errorf("merge %s decompressor [%d-%d]: %w", ii.filenameBase, startTxNum, endTxNum, err) + } + ps.Delete(p) + + idxFileName := fmt.Sprintf("%s.%d-%d.efi", ii.filenameBase, startTxNum/ii.aggregationStep, endTxNum/ii.aggregationStep) + idxPath := filepath.Join(ii.dir, idxFileName) + p = ps.AddNew("merge "+idxFileName, uint64(outItem.decompressor.Count()*2)) + defer ps.Delete(p) + if outItem.index, err = buildIndexThenOpen(ctx, outItem.decompressor, idxPath, ii.tmpdir, keyCount, false /* values */, p, ii.logger, ii.noFsync); err != nil { + return nil, fmt.Errorf("merge %s buildIndex [%d-%d]: %w", ii.filenameBase, startTxNum, endTxNum, err) + } + closeItem = false + return outItem, nil +} + +func (h *History) mergeFiles(ctx context.Context, indexFiles, historyFiles []*filesItem, r HistoryRanges, workers int, ps *background.ProgressSet) (indexIn, historyIn *filesItem, err error) { + if !r.any() { + return nil, nil, nil + } + var closeIndex = true + defer func() { + if closeIndex { + if indexIn != nil { + indexIn.decompressor.Close() + indexIn.index.Close() + } + } + }() + if indexIn, err = h.InvertedIndex.mergeFiles(ctx, indexFiles, r.indexStartTxNum, r.indexEndTxNum, workers, ps); err != nil { + return nil, nil, err + } + if r.history { + for _, f := range indexFiles { + defer f.decompressor.EnableMadvNormal().DisableReadAhead() + } + for _, f := range historyFiles { + defer f.decompressor.EnableMadvNormal().DisableReadAhead() + } + + var comp *compress.Compressor + var decomp *compress.Decompressor + var rs *recsplit.RecSplit + var index *recsplit.Index + var closeItem = true + defer func() { + if closeItem { + if comp != nil { + comp.Close() + } + if decomp != nil { + decomp.Close() + } + if rs != nil { + rs.Close() + } + if index != nil { + index.Close() + } + if historyIn != nil { + if historyIn.decompressor != nil { + historyIn.decompressor.Close() + } + if historyIn.index != nil { + historyIn.index.Close() + } + } + } + }() + datFileName := fmt.Sprintf("%s.%d-%d.v", h.filenameBase, r.historyStartTxNum/h.aggregationStep, r.historyEndTxNum/h.aggregationStep) + idxFileName := fmt.Sprintf("%s.%d-%d.vi", h.filenameBase, r.historyStartTxNum/h.aggregationStep, r.historyEndTxNum/h.aggregationStep) + datPath := filepath.Join(h.dir, datFileName) + idxPath := filepath.Join(h.dir, idxFileName) + if comp, err = compress.NewCompressor(ctx, "merge", datPath, h.tmpdir, compress.MinPatternScore, workers, log.LvlTrace, h.logger); err != nil { + return nil, nil, fmt.Errorf("merge %s history compressor: %w", h.filenameBase, err) + } + if h.noFsync { + comp.DisableFsync() + } + p := ps.AddNew("merge "+datFileName, 1) + defer ps.Delete(p) + var cp CursorHeap + heap.Init(&cp) + for _, item := range indexFiles { + g := item.decompressor.MakeGetter() + g.Reset(0) + if g.HasNext() { + var g2 *compress.Getter + for _, hi := range historyFiles { // full-scan, because it's ok to have different amount files. by unclean-shutdown. + if hi.startTxNum == item.startTxNum && hi.endTxNum == item.endTxNum { + g2 = hi.decompressor.MakeGetter() + break + } + } + if g2 == nil { + panic(fmt.Sprintf("for file: %s, not found corresponding file to merge", g.FileName())) + } + key, _ := g.NextUncompressed() + val, _ := g.NextUncompressed() + heap.Push(&cp, &CursorItem{ + t: FILE_CURSOR, + dg: g, + dg2: g2, + key: key, + val: val, + endTxNum: item.endTxNum, + reverse: false, + }) + } + } + // In the loop below, the pair `keyBuf=>valBuf` is always 1 item behind `lastKey=>lastVal`. + // `lastKey` and `lastVal` are taken from the top of the multi-way merge (assisted by the CursorHeap cp), but not processed right away + // instead, the pair from the previous iteration is processed first - `keyBuf=>valBuf`. After that, `keyBuf` and `valBuf` are assigned + // to `lastKey` and `lastVal` correspondingly, and the next step of multi-way merge happens. Therefore, after the multi-way merge loop + // (when CursorHeap cp is empty), there is a need to process the last pair `keyBuf=>valBuf`, because it was one step behind + var valBuf []byte + var keyCount int + for cp.Len() > 0 { + lastKey := common.Copy(cp[0].key) + // Advance all the items that have this key (including the top) + for cp.Len() > 0 && bytes.Equal(cp[0].key, lastKey) { + ci1 := cp[0] + count := eliasfano32.Count(ci1.val) + for i := uint64(0); i < count; i++ { + if !ci1.dg2.HasNext() { + panic(fmt.Errorf("assert: no value??? %s, i=%d, count=%d, lastKey=%x, ci1.key=%x", ci1.dg2.FileName(), i, count, lastKey, ci1.key)) + } + + if h.compressVals { + valBuf, _ = ci1.dg2.Next(valBuf[:0]) + if err = comp.AddWord(valBuf); err != nil { + return nil, nil, err + } + } else { + valBuf, _ = ci1.dg2.NextUncompressed() + if err = comp.AddUncompressedWord(valBuf); err != nil { + return nil, nil, err + } + } + } + keyCount += int(count) + if ci1.dg.HasNext() { + ci1.key, _ = ci1.dg.NextUncompressed() + ci1.val, _ = ci1.dg.NextUncompressed() + heap.Fix(&cp, 0) + } else { + heap.Remove(&cp, 0) + } + } + } + if err = comp.Compress(); err != nil { + return nil, nil, err + } + comp.Close() + comp = nil + if decomp, err = compress.NewDecompressor(datPath); err != nil { + return nil, nil, err + } + ps.Delete(p) + + p = ps.AddNew("merge "+idxFileName, uint64(2*keyCount)) + defer ps.Delete(p) + if rs, err = recsplit.NewRecSplit(recsplit.RecSplitArgs{ + KeyCount: keyCount, + Enums: false, + BucketSize: 2000, + LeafSize: 8, + TmpDir: h.tmpdir, + IndexFile: idxPath, + }, h.logger); err != nil { + return nil, nil, fmt.Errorf("create recsplit: %w", err) + } + rs.LogLvl(log.LvlTrace) + if h.noFsync { + rs.DisableFsync() + } + var historyKey []byte + var txKey [8]byte + var valOffset uint64 + g := indexIn.decompressor.MakeGetter() + g2 := decomp.MakeGetter() + var keyBuf []byte + for { + g.Reset(0) + g2.Reset(0) + valOffset = 0 + for g.HasNext() { + keyBuf, _ = g.NextUncompressed() + valBuf, _ = g.NextUncompressed() + ef, _ := eliasfano32.ReadEliasFano(valBuf) + efIt := ef.Iterator() + for efIt.HasNext() { + txNum, _ := efIt.Next() + binary.BigEndian.PutUint64(txKey[:], txNum) + historyKey = append(append(historyKey[:0], txKey[:]...), keyBuf...) + if err = rs.AddKey(historyKey, valOffset); err != nil { + return nil, nil, err + } + if h.compressVals { + valOffset, _ = g2.Skip() + } else { + valOffset, _ = g2.SkipUncompressed() + } + } + p.Processed.Add(1) + } + if err = rs.Build(ctx); err != nil { + if rs.Collision() { + log.Info("Building recsplit. Collision happened. It's ok. Restarting...") + rs.ResetNextSalt() + } else { + return nil, nil, fmt.Errorf("build %s idx: %w", h.filenameBase, err) + } + } else { + break + } + } + rs.Close() + rs = nil + if index, err = recsplit.OpenIndex(idxPath); err != nil { + return nil, nil, fmt.Errorf("open %s idx: %w", h.filenameBase, err) + } + historyIn = newFilesItem(r.historyStartTxNum, r.historyEndTxNum, h.aggregationStep) + historyIn.decompressor = decomp + historyIn.index = index + + closeItem = false + } + + closeIndex = false + return +} + +func (d *Domain) integrateMergedFiles(valuesOuts, indexOuts, historyOuts []*filesItem, valuesIn, indexIn, historyIn *filesItem) { + d.History.integrateMergedFiles(indexOuts, historyOuts, indexIn, historyIn) + if valuesIn != nil { + d.files.Set(valuesIn) + + // `kill -9` may leave some garbage + // but it still may be useful for merges, until we finish merge frozen file + if historyIn != nil && historyIn.frozen { + d.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.frozen || item.endTxNum > valuesIn.endTxNum { + continue + } + valuesOuts = append(valuesOuts, item) + } + return true + }) + } + } + for _, out := range valuesOuts { + if out == nil { + panic("must not happen") + } + d.files.Delete(out) + out.canDelete.Store(true) + } + d.reCalcRoFiles() +} + +func (ii *InvertedIndex) integrateMergedFiles(outs []*filesItem, in *filesItem) { + if in != nil { + ii.files.Set(in) + + // `kill -9` may leave some garbage + // but it still may be useful for merges, until we finish merge frozen file + if in.frozen { + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.frozen || item.endTxNum > in.endTxNum { + continue + } + outs = append(outs, item) + } + return true + }) + } + } + for _, out := range outs { + if out == nil { + panic("must not happen: " + ii.filenameBase) + } + ii.files.Delete(out) + out.canDelete.Store(true) + } + ii.reCalcRoFiles() +} + +func (h *History) integrateMergedFiles(indexOuts, historyOuts []*filesItem, indexIn, historyIn *filesItem) { + h.InvertedIndex.integrateMergedFiles(indexOuts, indexIn) + //TODO: handle collision + if historyIn != nil { + h.files.Set(historyIn) + + // `kill -9` may leave some garbage + // but it still may be useful for merges, until we finish merge frozen file + if historyIn.frozen { + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.frozen || item.endTxNum > historyIn.endTxNum { + continue + } + historyOuts = append(historyOuts, item) + } + return true + }) + } + } + for _, out := range historyOuts { + if out == nil { + panic("must not happen: " + h.filenameBase) + } + h.files.Delete(out) + out.canDelete.Store(true) + } + h.reCalcRoFiles() +} + +// nolint +func (dc *DomainContext) frozenTo() uint64 { + if len(dc.files) == 0 { + return 0 + } + for i := len(dc.files) - 1; i >= 0; i-- { + if dc.files[i].src.frozen { + return cmp.Min(dc.files[i].endTxNum, dc.hc.frozenTo()) + } + } + return 0 +} + +func (hc *HistoryContext) frozenTo() uint64 { + if len(hc.files) == 0 { + return 0 + } + for i := len(hc.files) - 1; i >= 0; i-- { + if hc.files[i].src.frozen { + return cmp.Min(hc.files[i].endTxNum, hc.ic.frozenTo()) + } + } + return 0 +} +func (ic *InvertedIndexContext) frozenTo() uint64 { + if len(ic.files) == 0 { + return 0 + } + for i := len(ic.files) - 1; i >= 0; i-- { + if ic.files[i].src.frozen { + return ic.files[i].endTxNum + } + } + return 0 +} + +func (d *Domain) cleanAfterFreeze(frozenTo uint64) { + if frozenTo == 0 { + return + } + + var outs []*filesItem + // `kill -9` may leave some garbage + // but it may be useful for merges, until merge `frozen` file + d.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.frozen || item.endTxNum > frozenTo { + continue + } + outs = append(outs, item) + } + return true + }) + + for _, out := range outs { + if out == nil { + panic("must not happen: " + d.filenameBase) + } + d.files.Delete(out) + if out.refcount.Load() == 0 { + // if it has no readers (invisible even for us) - it's safe to remove file right here + out.closeFilesAndRemove() + } + out.canDelete.Store(true) + } + d.History.cleanAfterFreeze(frozenTo) +} + +// cleanAfterFreeze - mark all small files before `f` as `canDelete=true` +func (h *History) cleanAfterFreeze(frozenTo uint64) { + if frozenTo == 0 { + return + } + //if h.filenameBase == "accounts" { + // log.Warn("[history] History.cleanAfterFreeze", "frozenTo", frozenTo/h.aggregationStep, "stack", dbg.Stack()) + //} + var outs []*filesItem + // `kill -9` may leave some garbage + // but it may be useful for merges, until merge `frozen` file + h.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.frozen || item.endTxNum > frozenTo { + continue + } + outs = append(outs, item) + } + return true + }) + + for _, out := range outs { + if out == nil { + panic("must not happen: " + h.filenameBase) + } + out.canDelete.Store(true) + + //if out.refcount.Load() == 0 { + // if h.filenameBase == "accounts" { + // log.Warn("[history] History.cleanAfterFreeze: immediately delete", "name", out.decompressor.FileName()) + // } + //} else { + // if h.filenameBase == "accounts" { + // log.Warn("[history] History.cleanAfterFreeze: mark as 'canDelete=true'", "name", out.decompressor.FileName()) + // } + //} + + // if it has no readers (invisible even for us) - it's safe to remove file right here + if out.refcount.Load() == 0 { + out.closeFilesAndRemove() + } + h.files.Delete(out) + } + h.InvertedIndex.cleanAfterFreeze(frozenTo) +} + +// cleanAfterFreeze - mark all small files before `f` as `canDelete=true` +func (ii *InvertedIndex) cleanAfterFreeze(frozenTo uint64) { + if frozenTo == 0 { + return + } + var outs []*filesItem + // `kill -9` may leave some garbage + // but it may be useful for merges, until merge `frozen` file + ii.files.Walk(func(items []*filesItem) bool { + for _, item := range items { + if item.frozen || item.endTxNum > frozenTo { + continue + } + outs = append(outs, item) + } + return true + }) + + for _, out := range outs { + if out == nil { + panic("must not happen: " + ii.filenameBase) + } + out.canDelete.Store(true) + if out.refcount.Load() == 0 { + // if it has no readers (invisible even for us) - it's safe to remove file right here + out.closeFilesAndRemove() + } + ii.files.Delete(out) + } +} + +// nolint +func (d *Domain) deleteGarbageFiles() { + for _, item := range d.garbageFiles { + // paranoic-mode: don't delete frozen files + steps := item.endTxNum/d.aggregationStep - item.startTxNum/d.aggregationStep + if steps%StepsInBiggestFile == 0 { + continue + } + f1 := fmt.Sprintf("%s.%d-%d.kv", d.filenameBase, item.startTxNum/d.aggregationStep, item.endTxNum/d.aggregationStep) + os.Remove(filepath.Join(d.dir, f1)) + log.Debug("[snapshots] delete garbage", f1) + f2 := fmt.Sprintf("%s.%d-%d.kvi", d.filenameBase, item.startTxNum/d.aggregationStep, item.endTxNum/d.aggregationStep) + os.Remove(filepath.Join(d.dir, f2)) + log.Debug("[snapshots] delete garbage", f2) + } + d.garbageFiles = nil + d.History.deleteGarbageFiles() +} +func (h *History) deleteGarbageFiles() { + for _, item := range h.garbageFiles { + // paranoic-mode: don't delete frozen files + if item.endTxNum/h.aggregationStep-item.startTxNum/h.aggregationStep == StepsInBiggestFile { + continue + } + f1 := fmt.Sprintf("%s.%d-%d.v", h.filenameBase, item.startTxNum/h.aggregationStep, item.endTxNum/h.aggregationStep) + os.Remove(filepath.Join(h.dir, f1)) + log.Debug("[snapshots] delete garbage", f1) + f2 := fmt.Sprintf("%s.%d-%d.vi", h.filenameBase, item.startTxNum/h.aggregationStep, item.endTxNum/h.aggregationStep) + os.Remove(filepath.Join(h.dir, f2)) + log.Debug("[snapshots] delete garbage", f2) + } + h.garbageFiles = nil + h.InvertedIndex.deleteGarbageFiles() +} +func (ii *InvertedIndex) deleteGarbageFiles() { + for _, item := range ii.garbageFiles { + // paranoic-mode: don't delete frozen files + if item.endTxNum/ii.aggregationStep-item.startTxNum/ii.aggregationStep == StepsInBiggestFile { + continue + } + f1 := fmt.Sprintf("%s.%d-%d.ef", ii.filenameBase, item.startTxNum/ii.aggregationStep, item.endTxNum/ii.aggregationStep) + os.Remove(filepath.Join(ii.dir, f1)) + log.Debug("[snapshots] delete garbage", f1) + f2 := fmt.Sprintf("%s.%d-%d.efi", ii.filenameBase, item.startTxNum/ii.aggregationStep, item.endTxNum/ii.aggregationStep) + os.Remove(filepath.Join(ii.dir, f2)) + log.Debug("[snapshots] delete garbage", f2) + } + ii.garbageFiles = nil +} diff --git a/erigon-lib/state/merge_test.go b/erigon-lib/state/merge_test.go new file mode 100644 index 00000000000..24b63de76a3 --- /dev/null +++ b/erigon-lib/state/merge_test.go @@ -0,0 +1,373 @@ +package state + +import ( + "sort" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + btree2 "github.com/tidwall/btree" + + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" +) + +func TestFindMergeRangeCornerCases(t *testing.T) { + t.Run("> 2 unmerged files", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-2.ef", + "test.2-3.ef", + "test.3-4.ef", + }) + ii.reCalcRoFiles() + + ic := ii.MakeContext() + defer ic.Close() + + needMerge, from, to := ii.findMergeRange(4, 32) + assert.True(t, needMerge) + assert.Equal(t, 0, int(from)) + assert.Equal(t, 4, int(to)) + + idxF, _ := ic.staticFilesInRange(from, to) + assert.Equal(t, 3, len(idxF)) + + ii = &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-1.ef", + "test.1-2.ef", + "test.2-3.ef", + "test.3-4.ef", + }) + ii.reCalcRoFiles() + ic = ii.MakeContext() + defer ic.Close() + + needMerge, from, to = ii.findMergeRange(4, 32) + assert.True(t, needMerge) + assert.Equal(t, 0, int(from)) + assert.Equal(t, 2, int(to)) + + h := &History{InvertedIndex: ii, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + h.scanStateFiles([]string{ + "test.0-1.v", + "test.1-2.v", + "test.2-3.v", + "test.3-4.v", + }) + h.reCalcRoFiles() + ic = ii.MakeContext() + defer ic.Close() + + r := h.findMergeRange(4, 32) + assert.True(t, r.history) + assert.Equal(t, 2, int(r.historyEndTxNum)) + assert.Equal(t, 2, int(r.indexEndTxNum)) + }) + t.Run("not equal amount of files", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-1.ef", + "test.1-2.ef", + "test.2-3.ef", + "test.3-4.ef", + }) + ii.reCalcRoFiles() + + h := &History{InvertedIndex: ii, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + h.scanStateFiles([]string{ + "test.0-1.v", + "test.1-2.v", + }) + h.reCalcRoFiles() + + hc := h.MakeContext() + defer hc.Close() + + r := h.findMergeRange(4, 32) + assert.True(t, r.index) + assert.True(t, r.history) + assert.Equal(t, 0, int(r.historyStartTxNum)) + assert.Equal(t, 2, int(r.historyEndTxNum)) + assert.Equal(t, 2, int(r.indexEndTxNum)) + }) + t.Run("idx merged, history not yet", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-2.ef", + "test.2-3.ef", + "test.3-4.ef", + }) + ii.reCalcRoFiles() + + h := &History{InvertedIndex: ii, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + h.scanStateFiles([]string{ + "test.0-1.v", + "test.1-2.v", + }) + h.reCalcRoFiles() + + hc := h.MakeContext() + defer hc.Close() + + r := h.findMergeRange(4, 32) + assert.True(t, r.history) + assert.False(t, r.index) + assert.Equal(t, 0, int(r.historyStartTxNum)) + assert.Equal(t, 2, int(r.historyEndTxNum)) + }) + t.Run("idx merged, history not yet, 2", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-1.ef", + "test.1-2.ef", + "test.2-3.ef", + "test.3-4.ef", + "test.0-4.ef", + }) + ii.reCalcRoFiles() + + h := &History{InvertedIndex: ii, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + h.scanStateFiles([]string{ + "test.0-1.v", + "test.1-2.v", + "test.2-3.v", + "test.3-4.v", + }) + h.reCalcRoFiles() + + hc := h.MakeContext() + defer hc.Close() + + r := h.findMergeRange(4, 32) + assert.False(t, r.index) + assert.True(t, r.history) + assert.Equal(t, 2, int(r.historyEndTxNum)) + idxFiles, histFiles, _, err := hc.staticFilesInRange(r) + require.NoError(t, err) + require.Equal(t, 2, len(idxFiles)) + require.Equal(t, 2, len(histFiles)) + }) + t.Run("idx merged and small files lost", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-4.ef", + }) + ii.reCalcRoFiles() + + h := &History{InvertedIndex: ii, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + h.scanStateFiles([]string{ + "test.0-1.v", + "test.1-2.v", + "test.2-3.v", + "test.3-4.v", + }) + h.reCalcRoFiles() + + hc := h.MakeContext() + defer hc.Close() + + r := h.findMergeRange(4, 32) + assert.False(t, r.index) + assert.True(t, r.history) + assert.Equal(t, 2, int(r.historyEndTxNum)) + _, _, _, err := hc.staticFilesInRange(r) + require.Error(t, err) + }) + + t.Run("history merged, but index not and history garbage left", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-1.ef", + "test.1-2.ef", + }) + ii.reCalcRoFiles() + + // `kill -9` may leave small garbage files, but if big one already exists we assume it's good(fsynced) and no reason to merge again + h := &History{InvertedIndex: ii, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + h.scanStateFiles([]string{ + "test.0-1.v", + "test.1-2.v", + "test.0-2.v", + }) + h.reCalcRoFiles() + + hc := h.MakeContext() + defer hc.Close() + + r := h.findMergeRange(4, 32) + assert.True(t, r.index) + assert.False(t, r.history) + assert.Equal(t, uint64(2), r.indexEndTxNum) + idxFiles, histFiles, _, err := hc.staticFilesInRange(r) + require.NoError(t, err) + require.Equal(t, 2, len(idxFiles)) + require.Equal(t, 0, len(histFiles)) + }) + t.Run("history merge progress ahead of idx", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-1.ef", + "test.1-2.ef", + "test.0-2.ef", + "test.2-3.ef", + "test.3-4.ef", + }) + ii.reCalcRoFiles() + + h := &History{InvertedIndex: ii, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + h.scanStateFiles([]string{ + "test.0-1.v", + "test.1-2.v", + "test.0-2.v", + "test.2-3.v", + "test.3-4.v", + }) + h.reCalcRoFiles() + + hc := h.MakeContext() + defer hc.Close() + + r := h.findMergeRange(4, 32) + assert.True(t, r.index) + assert.True(t, r.history) + assert.Equal(t, 4, int(r.indexEndTxNum)) + idxFiles, histFiles, _, err := hc.staticFilesInRange(r) + require.NoError(t, err) + require.Equal(t, 3, len(idxFiles)) + require.Equal(t, 3, len(histFiles)) + }) + t.Run("idx merge progress ahead of history", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-1.ef", + "test.1-2.ef", + "test.0-2.ef", + "test.2-3.ef", + }) + ii.reCalcRoFiles() + + h := &History{InvertedIndex: ii, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + h.scanStateFiles([]string{ + "test.0-1.v", + "test.1-2.v", + "test.2-3.v", + }) + h.reCalcRoFiles() + + hc := h.MakeContext() + defer hc.Close() + + r := h.findMergeRange(4, 32) + assert.False(t, r.index) + assert.True(t, r.history) + assert.Equal(t, 2, int(r.historyEndTxNum)) + idxFiles, histFiles, _, err := hc.staticFilesInRange(r) + require.NoError(t, err) + require.Equal(t, 2, len(idxFiles)) + require.Equal(t, 2, len(histFiles)) + }) + t.Run("idx merged, but garbage left", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-1.ef", + "test.1-2.ef", + "test.0-2.ef", + }) + ii.reCalcRoFiles() + + h := &History{InvertedIndex: ii, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + h.scanStateFiles([]string{ + "test.0-1.v", + "test.1-2.v", + "test.0-2.v", + "test.2-3.v", + }) + h.reCalcRoFiles() + + hc := h.MakeContext() + defer hc.Close() + r := h.findMergeRange(4, 32) + assert.False(t, r.index) + assert.False(t, r.history) + }) + t.Run("idx merged, but garbage left2", func(t *testing.T) { + ii := &InvertedIndex{filenameBase: "test", aggregationStep: 1, files: btree2.NewBTreeG[*filesItem](filesItemLess)} + ii.scanStateFiles([]string{ + "test.0-1.ef", + "test.1-2.ef", + "test.0-2.ef", + "test.2-3.ef", + "test.3-4.ef", + }) + ii.reCalcRoFiles() + ic := ii.MakeContext() + defer ic.Close() + needMerge, from, to := ii.findMergeRange(4, 32) + assert.True(t, needMerge) + require.Equal(t, 0, int(from)) + require.Equal(t, 4, int(to)) + idxFiles, _ := ic.staticFilesInRange(from, to) + require.Equal(t, 3, len(idxFiles)) + }) +} +func Test_mergeEliasFano(t *testing.T) { + t.Skip() + + firstList := []int{1, 298164, 298163, 13, 298160, 298159} + sort.Ints(firstList) + uniq := make(map[int]struct{}) + + first := eliasfano32.NewEliasFano(uint64(len(firstList)), uint64(firstList[len(firstList)-1])) + for _, v := range firstList { + uniq[v] = struct{}{} + first.AddOffset(uint64(v)) + } + first.Build() + firstBytes := first.AppendBytes(nil) + + fit := first.Iterator() + for fit.HasNext() { + v, _ := fit.Next() + require.Contains(t, firstList, int(v)) + } + + secondList := []int{ + 1, 644951, 644995, 682653, 13, + 644988, 644987, 644946, 644994, + 644942, 644945, 644941, 644940, + 644939, 644938, 644792, 644787} + sort.Ints(secondList) + second := eliasfano32.NewEliasFano(uint64(len(secondList)), uint64(secondList[len(secondList)-1])) + + for _, v := range secondList { + second.AddOffset(uint64(v)) + uniq[v] = struct{}{} + } + second.Build() + secondBytes := second.AppendBytes(nil) + + sit := second.Iterator() + for sit.HasNext() { + v, _ := sit.Next() + require.Contains(t, secondList, int(v)) + } + + menc, err := mergeEfs(firstBytes, secondBytes, nil) + require.NoError(t, err) + + merged, _ := eliasfano32.ReadEliasFano(menc) + require.NoError(t, err) + require.EqualValues(t, len(uniq), merged.Count()) + require.EqualValues(t, merged.Count(), eliasfano32.Count(menc)) + mergedLists := append(firstList, secondList...) + sort.Ints(mergedLists) + require.EqualValues(t, mergedLists[len(mergedLists)-1], merged.Max()) + require.EqualValues(t, merged.Max(), eliasfano32.Max(menc)) + + mit := merged.Iterator() + for mit.HasNext() { + v, _ := mit.Next() + require.Contains(t, mergedLists, int(v)) + } +} diff --git a/erigon-lib/state/state_recon.go b/erigon-lib/state/state_recon.go new file mode 100644 index 00000000000..31babca99a4 --- /dev/null +++ b/erigon-lib/state/state_recon.go @@ -0,0 +1,216 @@ +/* + Copyright 2022 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package state + +import ( + "bytes" + "encoding/binary" + + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/erigon-lib/recsplit/eliasfano32" +) + +// Algorithms for reconstituting the state from state history + +type ReconItem struct { + g *compress.Getter + key []byte + txNum uint64 + startTxNum uint64 + endTxNum uint64 + startOffset uint64 + lastOffset uint64 +} + +type ReconHeap []*ReconItem + +func (rh ReconHeap) Len() int { + return len(rh) +} + +// Less (part of heap.Interface) compares two links. For persisted links, those with the lower block heights get evicted first. This means that more recently persisted links are preferred. +// For non-persisted links, those with the highest block heights get evicted first. This is to prevent "holes" in the block heights that may cause inability to +// insert headers in the ascending order of their block heights. +func (rh ReconHeap) Less(i, j int) bool { + c := bytes.Compare(rh[i].key, rh[j].key) + if c == 0 { + return rh[i].txNum < rh[j].txNum + } + return c < 0 +} + +// Swap (part of heap.Interface) moves two links in the queue into each other's places. Note that each link has idx attribute that is getting adjusted during +// the swap. The idx attribute allows the removal of links from the middle of the queue (in case if links are getting invalidated due to +// failed verification of unavailability of parent headers) +func (rh ReconHeap) Swap(i, j int) { + rh[i], rh[j] = rh[j], rh[i] +} + +// Push (part of heap.Interface) places a new link onto the end of queue. Note that idx attribute is set to the correct position of the new link +func (rh *ReconHeap) Push(x interface{}) { + // Push and Pop use pointer receivers because they modify the slice's length, + // not just its contents. + l := x.(*ReconItem) + *rh = append(*rh, l) +} + +// Pop (part of heap.Interface) removes the first link from the queue +func (rh *ReconHeap) Pop() interface{} { + old := *rh + n := len(old) + x := old[n-1] + old[n-1] = nil + *rh = old[0 : n-1] + return x +} + +type ReconHeapOlderFirst struct { + ReconHeap +} + +func (rh ReconHeapOlderFirst) Less(i, j int) bool { + c := bytes.Compare(rh.ReconHeap[i].key, rh.ReconHeap[j].key) + if c == 0 { + return rh.ReconHeap[i].txNum >= rh.ReconHeap[j].txNum + } + return c < 0 +} + +type ScanIteratorInc struct { + g *compress.Getter + key []byte + nextTxNum uint64 + hasNext bool +} + +func (sii *ScanIteratorInc) advance() { + if !sii.hasNext { + return + } + if sii.key == nil { + sii.hasNext = false + return + } + val, _ := sii.g.NextUncompressed() + max := eliasfano32.Max(val) + sii.nextTxNum = max + if sii.g.HasNext() { + sii.key, _ = sii.g.NextUncompressed() + } else { + sii.key = nil + } +} + +func (sii *ScanIteratorInc) HasNext() bool { + return sii.hasNext +} + +func (sii *ScanIteratorInc) Next() (uint64, error) { + n := sii.nextTxNum + sii.advance() + return n, nil +} + +func (hs *HistoryStep) iterateTxs() *ScanIteratorInc { + var sii ScanIteratorInc + sii.g = hs.indexFile.getter + sii.g.Reset(0) + if sii.g.HasNext() { + sii.key, _ = sii.g.NextUncompressed() + sii.hasNext = true + } else { + sii.hasNext = false + } + sii.advance() + return &sii +} + +type HistoryIteratorInc struct { + uptoTxNum uint64 + indexG *compress.Getter + historyG *compress.Getter + r *recsplit.IndexReader + key []byte + nextKey []byte + nextVal []byte + hasNext bool + compressVals bool +} + +func (hs *HistoryStep) interateHistoryBeforeTxNum(txNum uint64) *HistoryIteratorInc { + var hii HistoryIteratorInc + hii.indexG = hs.indexFile.getter + hii.historyG = hs.historyFile.getter + hii.r = hs.historyFile.reader + hii.compressVals = hs.compressVals + hii.indexG.Reset(0) + if hii.indexG.HasNext() { + hii.key, _ = hii.indexG.NextUncompressed() + hii.uptoTxNum = txNum + hii.hasNext = true + } else { + hii.hasNext = false + } + hii.advance() + return &hii +} + +func (hii *HistoryIteratorInc) advance() { + if !hii.hasNext { + return + } + if hii.key == nil { + hii.hasNext = false + return + } + hii.nextKey = nil + for hii.nextKey == nil && hii.key != nil { + val, _ := hii.indexG.NextUncompressed() + ef, _ := eliasfano32.ReadEliasFano(val) + if n, ok := ef.Search(hii.uptoTxNum); ok { + var txKey [8]byte + binary.BigEndian.PutUint64(txKey[:], n) + offset := hii.r.Lookup2(txKey[:], hii.key) + hii.historyG.Reset(offset) + hii.nextKey = hii.key + if hii.compressVals { + hii.nextVal, _ = hii.historyG.Next(nil) + } else { + hii.nextVal, _ = hii.historyG.NextUncompressed() + } + } + if hii.indexG.HasNext() { + hii.key, _ = hii.indexG.NextUncompressed() + } else { + hii.key = nil + } + } + if hii.nextKey == nil { + hii.hasNext = false + } +} + +func (hii *HistoryIteratorInc) HasNext() bool { + return hii.hasNext +} + +func (hii *HistoryIteratorInc) Next() ([]byte, []byte, error) { + k, v := hii.nextKey, hii.nextVal + hii.advance() + return k, v, nil +} diff --git a/erigon-lib/tools.go b/erigon-lib/tools.go new file mode 100644 index 00000000000..5188efdc85c --- /dev/null +++ b/erigon-lib/tools.go @@ -0,0 +1,31 @@ +//go:build tools + +package tools + +// https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module +// +// This module is just a hack for 'go mod tidy' command +// +// Problem is - 'go mod tidy' removes from go.mod file lines if you don't use them in source code +// +// But code generators we use as binaries - not by including them into source code +// To provide reproducible builds - go.mod file must be source of truth about code generators version +// 'go mod tidy' will not remove binary deps from go.mod file if you add them here +// +// use `make devtools` - does install all binary deps of right version + +// build tag 'trick_go_mod_tidy' - is used to hide warnings of IDEA (because we can't import `main` packages in go) + +import ( + _ "github.com/ledgerwatch/interfaces" + _ "github.com/ledgerwatch/interfaces/downloader" + _ "github.com/ledgerwatch/interfaces/execution" + _ "github.com/ledgerwatch/interfaces/p2psentinel" + _ "github.com/ledgerwatch/interfaces/p2psentry" + _ "github.com/ledgerwatch/interfaces/remote" + _ "github.com/ledgerwatch/interfaces/txpool" + _ "github.com/ledgerwatch/interfaces/types" + _ "github.com/ledgerwatch/interfaces/web3" + _ "github.com/matryer/moq" + _ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" +) diff --git a/erigon-lib/tools/golangci_lint.sh b/erigon-lib/tools/golangci_lint.sh new file mode 100755 index 00000000000..b569f88e239 --- /dev/null +++ b/erigon-lib/tools/golangci_lint.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +scriptDir=$(dirname "${BASH_SOURCE[0]}") +scriptName=$(basename "${BASH_SOURCE[0]}") +version="v1.55.2" + +if [[ "$1" == "--install-deps" ]] +then + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "$(go env GOPATH)/bin" "$version" + exit +fi + +if ! which golangci-lint > /dev/null +then + echo "golangci-lint tool is not found, install it with:" + echo " make lint-deps" + echo "or follow https://golangci-lint.run/usage/install/" + exit 2 +fi + +golangci-lint run --config ./.golangci.yml diff --git a/erigon-lib/tools/licenses_check.sh b/erigon-lib/tools/licenses_check.sh new file mode 100755 index 00000000000..264c2599b25 --- /dev/null +++ b/erigon-lib/tools/licenses_check.sh @@ -0,0 +1,63 @@ +#!/bin/bash + +scriptDir=$(dirname "${BASH_SOURCE[0]}") +scriptName=$(basename "${BASH_SOURCE[0]}") +projectDir="$scriptDir/.." +goLicensesVersion="v1.6.0" + +if [[ "$1" == "--install-deps" ]] +then + go install "github.com/google/go-licenses@$goLicensesVersion" + exit +fi + +if ! which go-licenses > /dev/null +then + echo "go-licenses tool is not found, install it with:" + echo " go install github.com/google/go-licenses@$goLicensesVersion" + exit 2 +fi + +# enable build tags to cover maximum .go files +export GOFLAGS="-tags=gorules,linux,tools" + +output=$(find "$projectDir" -type 'd' -maxdepth 1 \ + -not -name ".*" \ + -not -name tools \ + -not -name build \ + | xargs go-licenses report 2>&1 \ + `# exceptions` \ + | grep -v "erigon-lib has empty version" `# self` \ + | grep -v "golang.org/x/" `# a part of Go` \ + | grep -v "crawshaw.io/sqlite" `# ISC` \ + | grep -v "erigon-lib/sais" `# MIT` \ + | grep -v "github.com/anacrolix/go-libutp" `# MIT` \ + | grep -v "github.com/cespare/xxhash/v2" `# MIT` \ + | grep -v "github.com/anacrolix/mmsg" `# MPL-2.0` \ + | grep -v "github.com/anacrolix/multiless" `# MPL-2.0` \ + | grep -v "github.com/anacrolix/sync" `# MPL-2.0` \ + | grep -v "github.com/anacrolix/upnp" `# MPL-2.0` \ + | grep -v "github.com/go-llsqlite/adapter" `# MPL-2.0` \ + | grep -v "github.com/go-llsqlite/crawshaw" `# ISC` \ + | grep -v "github.com/consensys/gnark-crypto" `# Apache-2.0` \ + | grep -v "github.com/erigontech/mdbx-go" `# Apache-2.0` \ + | grep -v "github.com/ledgerwatch/secp256k1" `# BSD-3-Clause` \ + | grep -v "github.com/RoaringBitmap/roaring" `# Apache-2.0` \ + | grep -v "github.com/!roaring!bitmap/roaring" `# Apache-2.0` \ + | grep -v "pedersen_hash" `# Apache-2.0` \ + `# approved licenses` \ + | grep -Ev "Apache-2.0$" \ + | grep -Ev "BSD-2-Clause$" \ + | grep -Ev "BSD-3-Clause$" \ + | grep -Ev "ISC$" \ + | grep -Ev "MIT$" \ + | grep -Ev "MPL-2.0$" \ +) + +if [[ -n "$output" ]] +then + echo "ERROR: $scriptName has found issues!" 1>&2 + echo "ERROR: If it is a false positive, add it to the exceptions list in the script:" 1>&2 + echo "$output" 1>&2 + exit 1 +fi diff --git a/erigon-lib/tools/mod_tidy_check.sh b/erigon-lib/tools/mod_tidy_check.sh new file mode 100755 index 00000000000..96513bccf94 --- /dev/null +++ b/erigon-lib/tools/mod_tidy_check.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +go mod tidy + +if ! git diff --exit-code -- go.mod go.sum +then + echo "ERROR: go.mod/sum is not tidy. Run 'go mod tidy' in $PWD and commit the changes." + exit 1 +fi diff --git a/erigon-lib/txpool/fetch.go b/erigon-lib/txpool/fetch.go new file mode 100644 index 00000000000..e5097a7f706 --- /dev/null +++ b/erigon-lib/txpool/fetch.go @@ -0,0 +1,533 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package txpool + +import ( + "context" + "errors" + "fmt" + "sync" + "time" + + "github.com/ledgerwatch/erigon-lib/common/cmp" + + "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/direct" + "github.com/ledgerwatch/erigon-lib/gointerfaces/grpcutil" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/rlp" + types2 "github.com/ledgerwatch/erigon-lib/types" + "github.com/ledgerwatch/log/v3" + "google.golang.org/grpc" + "google.golang.org/protobuf/types/known/emptypb" +) + +// Fetch connects to sentry and implements eth/66 protocol regarding the transaction +// messages. It tries to "prime" the sentry with StatusData message containing given +// genesis hash and list of forks, but with zero max block and total difficulty +// Sentry should have a logic not to overwrite statusData with messages from tx pool +type Fetch struct { + ctx context.Context // Context used for cancellation and closing of the fetcher + pool Pool // Transaction pool implementation + coreDB kv.RoDB + db kv.RwDB + stateChangesClient StateChangesClient + wg *sync.WaitGroup // used for synchronisation in the tests (nil when not in tests) + stateChangesParseCtx *types2.TxParseContext + pooledTxsParseCtx *types2.TxParseContext + sentryClients []direct.SentryClient // sentry clients that will be used for accessing the network + stateChangesParseCtxLock sync.Mutex + pooledTxsParseCtxLock sync.Mutex + logger log.Logger +} + +type StateChangesClient interface { + StateChanges(ctx context.Context, in *remote.StateChangeRequest, opts ...grpc.CallOption) (remote.KV_StateChangesClient, error) +} + +// NewFetch creates a new fetch object that will work with given sentry clients. Since the +// SentryClient here is an interface, it is suitable for mocking in tests (mock will need +// to implement all the functions of the SentryClient interface). +func NewFetch(ctx context.Context, sentryClients []direct.SentryClient, pool Pool, stateChangesClient StateChangesClient, coreDB kv.RoDB, db kv.RwDB, + chainID uint256.Int, logger log.Logger) *Fetch { + f := &Fetch{ + ctx: ctx, + sentryClients: sentryClients, + pool: pool, + coreDB: coreDB, + db: db, + stateChangesClient: stateChangesClient, + stateChangesParseCtx: types2.NewTxParseContext(chainID).ChainIDRequired(), //TODO: change ctx if rules changed + pooledTxsParseCtx: types2.NewTxParseContext(chainID).ChainIDRequired(), + logger: logger, + } + f.pooledTxsParseCtx.ValidateRLP(f.pool.ValidateSerializedTxn) + f.stateChangesParseCtx.ValidateRLP(f.pool.ValidateSerializedTxn) + + return f +} + +func (f *Fetch) SetWaitGroup(wg *sync.WaitGroup) { + f.wg = wg +} + +func (f *Fetch) threadSafeParsePooledTxn(cb func(*types2.TxParseContext) error) error { + f.pooledTxsParseCtxLock.Lock() + defer f.pooledTxsParseCtxLock.Unlock() + return cb(f.pooledTxsParseCtx) +} + +func (f *Fetch) threadSafeParseStateChangeTxn(cb func(*types2.TxParseContext) error) error { + f.stateChangesParseCtxLock.Lock() + defer f.stateChangesParseCtxLock.Unlock() + return cb(f.stateChangesParseCtx) +} + +// ConnectSentries initialises connection to the sentry +func (f *Fetch) ConnectSentries() { + for i := range f.sentryClients { + go func(i int) { + f.receiveMessageLoop(f.sentryClients[i]) + }(i) + go func(i int) { + f.receivePeerLoop(f.sentryClients[i]) + }(i) + } +} +func (f *Fetch) ConnectCore() { + go func() { + for { + select { + case <-f.ctx.Done(): + return + default: + } + if err := f.handleStateChanges(f.ctx, f.stateChangesClient); err != nil { + if grpcutil.IsRetryLater(err) || grpcutil.IsEndOfStream(err) { + time.Sleep(3 * time.Second) + continue + } + f.logger.Warn("[txpool.handleStateChanges]", "err", err) + } + } + }() +} + +func (f *Fetch) receiveMessageLoop(sentryClient sentry.SentryClient) { + for { + select { + case <-f.ctx.Done(): + return + default: + } + if _, err := sentryClient.HandShake(f.ctx, &emptypb.Empty{}, grpc.WaitForReady(true)); err != nil { + if grpcutil.IsRetryLater(err) || grpcutil.IsEndOfStream(err) { + time.Sleep(3 * time.Second) + continue + } + // Report error and wait more + f.logger.Warn("[txpool.recvMessage] sentry not ready yet", "err", err) + continue + } + + if err := f.receiveMessage(f.ctx, sentryClient); err != nil { + if grpcutil.IsRetryLater(err) || grpcutil.IsEndOfStream(err) { + time.Sleep(3 * time.Second) + continue + } + f.logger.Warn("[txpool.recvMessage]", "err", err) + } + } +} + +func (f *Fetch) receiveMessage(ctx context.Context, sentryClient sentry.SentryClient) error { + streamCtx, cancel := context.WithCancel(ctx) + defer cancel() + stream, err := sentryClient.Messages(streamCtx, &sentry.MessagesRequest{Ids: []sentry.MessageId{ + sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_66, + sentry.MessageId_GET_POOLED_TRANSACTIONS_66, + sentry.MessageId_TRANSACTIONS_66, + sentry.MessageId_POOLED_TRANSACTIONS_66, + sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_68, + }}, grpc.WaitForReady(true)) + if err != nil { + select { + case <-f.ctx.Done(): + return ctx.Err() + default: + } + return err + } + + var req *sentry.InboundMessage + for req, err = stream.Recv(); ; req, err = stream.Recv() { + if err != nil { + select { + case <-f.ctx.Done(): + return ctx.Err() + default: + } + return err + } + if req == nil { + return nil + } + if err := f.handleInboundMessage(streamCtx, req, sentryClient); err != nil { + if grpcutil.IsRetryLater(err) || grpcutil.IsEndOfStream(err) { + time.Sleep(3 * time.Second) + continue + } + f.logger.Debug("[txpool.fetch] Handling incoming message", "msg", req.Id.String(), "err", err) + } + if f.wg != nil { + f.wg.Done() + } + } +} + +func (f *Fetch) handleInboundMessage(ctx context.Context, req *sentry.InboundMessage, sentryClient sentry.SentryClient) (err error) { + defer func() { + if rec := recover(); rec != nil { + err = fmt.Errorf("%+v, trace: %s, rlp: %x", rec, dbg.Stack(), req.Data) + } + }() + + if !f.pool.Started() { + return nil + } + tx, err := f.db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + + switch req.Id { + case sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_66: + hashCount, pos, err := types2.ParseHashesCount(req.Data, 0) + if err != nil { + return fmt.Errorf("parsing NewPooledTransactionHashes: %w", err) + } + hashes := make([]byte, 32*hashCount) + for i := 0; i < len(hashes); i += 32 { + if _, pos, err = types2.ParseHash(req.Data, pos, hashes[i:]); err != nil { + return err + } + } + unknownHashes, err := f.pool.FilterKnownIdHashes(tx, hashes) + if err != nil { + return err + } + if len(unknownHashes) > 0 { + var encodedRequest []byte + var messageID sentry.MessageId + if encodedRequest, err = types2.EncodeGetPooledTransactions66(unknownHashes, uint64(1), nil); err != nil { + return err + } + messageID = sentry.MessageId_GET_POOLED_TRANSACTIONS_66 + if _, err = sentryClient.SendMessageById(f.ctx, &sentry.SendMessageByIdRequest{ + Data: &sentry.OutboundMessageData{Id: messageID, Data: encodedRequest}, + PeerId: req.PeerId, + }, &grpc.EmptyCallOption{}); err != nil { + return err + } + } + case sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_68: + _, _, hashes, _, err := rlp.ParseAnnouncements(req.Data, 0) + if err != nil { + return fmt.Errorf("parsing NewPooledTransactionHashes88: %w", err) + } + unknownHashes, err := f.pool.FilterKnownIdHashes(tx, hashes) + if err != nil { + return err + } + + if len(unknownHashes) > 0 { + var encodedRequest []byte + var messageID sentry.MessageId + if encodedRequest, err = types2.EncodeGetPooledTransactions66(unknownHashes, uint64(1), nil); err != nil { + return err + } + messageID = sentry.MessageId_GET_POOLED_TRANSACTIONS_66 + if _, err = sentryClient.SendMessageById(f.ctx, &sentry.SendMessageByIdRequest{ + Data: &sentry.OutboundMessageData{Id: messageID, Data: encodedRequest}, + PeerId: req.PeerId, + }, &grpc.EmptyCallOption{}); err != nil { + return err + } + } + case sentry.MessageId_GET_POOLED_TRANSACTIONS_66: + //TODO: handleInboundMessage is single-threaded - means it can accept as argument couple buffers (or analog of txParseContext). Protobuf encoding will copy data anyway, but DirectClient doesn't + var encodedRequest []byte + var messageID sentry.MessageId + messageID = sentry.MessageId_POOLED_TRANSACTIONS_66 + requestID, hashes, _, err := types2.ParseGetPooledTransactions66(req.Data, 0, nil) + if err != nil { + return err + } + + // limit to max 256 transactions in a reply + const hashSize = 32 + hashes = hashes[:cmp.Min(len(hashes), 256*hashSize)] + + var txs [][]byte + responseSize := 0 + processed := len(hashes) + + for i := 0; i < len(hashes); i += hashSize { + if responseSize >= p2pTxPacketLimit { + processed = i + log.Debug("txpool.Fetch.handleInboundMessage PooledTransactions reply truncated to fit p2pTxPacketLimit", "requested", len(hashes), "processed", processed) + break + } + + txnHash := hashes[i:cmp.Min(i+hashSize, len(hashes))] + txn, err := f.pool.GetRlp(tx, txnHash) + if err != nil { + return err + } + if txn == nil { + continue + } + + txs = append(txs, txn) + responseSize += len(txn) + } + + encodedRequest = types2.EncodePooledTransactions66(txs, requestID, nil) + if len(encodedRequest) > p2pTxPacketLimit { + log.Debug("txpool.Fetch.handleInboundMessage PooledTransactions reply exceeds p2pTxPacketLimit", "requested", len(hashes), "processed", processed) + } + + if _, err := sentryClient.SendMessageById(f.ctx, &sentry.SendMessageByIdRequest{ + Data: &sentry.OutboundMessageData{Id: messageID, Data: encodedRequest}, + PeerId: req.PeerId, + }, &grpc.EmptyCallOption{}); err != nil { + return err + } + case sentry.MessageId_POOLED_TRANSACTIONS_66, sentry.MessageId_TRANSACTIONS_66: + txs := types2.TxSlots{} + if err := f.threadSafeParsePooledTxn(func(parseContext *types2.TxParseContext) error { + return nil + }); err != nil { + return err + } + + switch req.Id { + case sentry.MessageId_TRANSACTIONS_66: + if err := f.threadSafeParsePooledTxn(func(parseContext *types2.TxParseContext) error { + if _, err := types2.ParseTransactions(req.Data, 0, parseContext, &txs, func(hash []byte) error { + known, err := f.pool.IdHashKnown(tx, hash) + if err != nil { + return err + } + if known { + return types2.ErrRejected + } + return nil + }); err != nil { + return err + } + return nil + }); err != nil { + return err + } + case sentry.MessageId_POOLED_TRANSACTIONS_66: + if err := f.threadSafeParsePooledTxn(func(parseContext *types2.TxParseContext) error { + if _, _, err := types2.ParsePooledTransactions66(req.Data, 0, parseContext, &txs, func(hash []byte) error { + known, err := f.pool.IdHashKnown(tx, hash) + if err != nil { + return err + } + if known { + return types2.ErrRejected + } + return nil + }); err != nil { + return err + } + return nil + }); err != nil { + return err + } + default: + return fmt.Errorf("unexpected message: %s", req.Id.String()) + } + if len(txs.Txs) == 0 { + return nil + } + f.pool.AddRemoteTxs(ctx, txs) + default: + defer f.logger.Trace("[txpool] dropped p2p message", "id", req.Id) + } + + return nil +} + +func (f *Fetch) receivePeerLoop(sentryClient sentry.SentryClient) { + for { + select { + case <-f.ctx.Done(): + return + default: + } + if _, err := sentryClient.HandShake(f.ctx, &emptypb.Empty{}, grpc.WaitForReady(true)); err != nil { + if grpcutil.IsRetryLater(err) || grpcutil.IsEndOfStream(err) { + time.Sleep(3 * time.Second) + continue + } + // Report error and wait more + f.logger.Warn("[txpool.recvPeers] sentry not ready yet", "err", err) + time.Sleep(time.Second) + continue + } + if err := f.receivePeer(sentryClient); err != nil { + if grpcutil.IsRetryLater(err) || grpcutil.IsEndOfStream(err) { + time.Sleep(3 * time.Second) + continue + } + + f.logger.Warn("[txpool.recvPeers]", "err", err) + } + } +} + +func (f *Fetch) receivePeer(sentryClient sentry.SentryClient) error { + streamCtx, cancel := context.WithCancel(f.ctx) + defer cancel() + + stream, err := sentryClient.PeerEvents(streamCtx, &sentry.PeerEventsRequest{}) + if err != nil { + select { + case <-f.ctx.Done(): + return f.ctx.Err() + default: + } + return err + } + + var req *sentry.PeerEvent + for req, err = stream.Recv(); ; req, err = stream.Recv() { + if err != nil { + return err + } + if req == nil { + return nil + } + if err = f.handleNewPeer(req); err != nil { + return err + } + if f.wg != nil { + f.wg.Done() + } + } +} + +func (f *Fetch) handleNewPeer(req *sentry.PeerEvent) error { + if req == nil { + return nil + } + switch req.EventId { + case sentry.PeerEvent_Connect: + f.pool.AddNewGoodPeer(req.PeerId) + } + + return nil +} + +func (f *Fetch) handleStateChanges(ctx context.Context, client StateChangesClient) error { + streamCtx, cancel := context.WithCancel(ctx) + defer cancel() + stream, err := client.StateChanges(streamCtx, &remote.StateChangeRequest{WithStorage: false, WithTransactions: true}, grpc.WaitForReady(true)) + if err != nil { + return err + } + for req, err := stream.Recv(); ; req, err = stream.Recv() { + if err != nil { + return err + } + if req == nil { + return nil + } + if err := f.handleStateChangesRequest(ctx, req); err != nil { + f.logger.Warn("[fetch] onNewBlock", "err", err) + } + + if f.wg != nil { // to help tests + f.wg.Done() + } + } +} + +func (f *Fetch) handleStateChangesRequest(ctx context.Context, req *remote.StateChangeBatch) error { + var unwindTxs, minedTxs types2.TxSlots + for _, change := range req.ChangeBatch { + if change.Direction == remote.Direction_FORWARD { + minedTxs.Resize(uint(len(change.Txs))) + for i := range change.Txs { + minedTxs.Txs[i] = &types2.TxSlot{} + if err := f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error { + _, err := parseContext.ParseTransaction(change.Txs[i], 0, minedTxs.Txs[i], minedTxs.Senders.At(i), false /* hasEnvelope */, false /* wrappedWithBlobs */, nil) + return err + }); err != nil && !errors.Is(err, context.Canceled) { + f.logger.Warn("[txpool.fetch] stream.Recv", "err", err) + continue // 1 tx handling error must not stop batch processing + } + } + } else if change.Direction == remote.Direction_UNWIND { + for i := range change.Txs { + if err := f.threadSafeParseStateChangeTxn(func(parseContext *types2.TxParseContext) error { + utx := &types2.TxSlot{} + sender := make([]byte, 20) + _, err := parseContext.ParseTransaction(change.Txs[i], 0, utx, sender, false /* hasEnvelope */, false /* wrappedWithBlobs */, nil) + if err != nil { + return err + } + if utx.Type == types2.BlobTxType { + var knownBlobTxn *metaTx + //TODO: don't check `KnownBlobTxn()` here - because each call require `txpool.mutex.lock()`. Better add all hashes here and do check inside `OnNewBlock` + if err := f.db.View(ctx, func(tx kv.Tx) error { + knownBlobTxn, err = f.pool.GetKnownBlobTxn(tx, utx.IDHash[:]) + return err + }); err != nil { + return err + } + // Get the blob tx from cache; ignore altogether if it isn't there + if knownBlobTxn != nil { + unwindTxs.Append(knownBlobTxn.Tx, sender, false) + } + } else { + unwindTxs.Append(utx, sender, false) + } + return nil + }); err != nil && !errors.Is(err, context.Canceled) { + f.logger.Warn("[txpool.fetch] stream.Recv", "err", err) + continue // 1 tx handling error must not stop batch processing + } + } + } + } + + if err := f.db.View(ctx, func(tx kv.Tx) error { + return f.pool.OnNewBlock(ctx, req, unwindTxs, minedTxs, tx) + }); err != nil && !errors.Is(err, context.Canceled) { + return err + } + return nil +} diff --git a/erigon-lib/txpool/fetch_test.go b/erigon-lib/txpool/fetch_test.go new file mode 100644 index 00000000000..b000f7d38e9 --- /dev/null +++ b/erigon-lib/txpool/fetch_test.go @@ -0,0 +1,192 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package txpool + +import ( + "context" + "encoding/hex" + "fmt" + "io" + "sync" + "testing" + + "github.com/ledgerwatch/erigon-lib/common/u256" + "github.com/ledgerwatch/erigon-lib/direct" + "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + types3 "github.com/ledgerwatch/erigon-lib/types" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "google.golang.org/grpc" +) + +func TestFetch(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + m := NewMockSentry(ctx) + sentryClient := direct.NewSentryClientDirect(direct.ETH66, m) + pool := &PoolMock{} + + fetch := NewFetch(ctx, []direct.SentryClient{sentryClient}, pool, &remote.KVClientMock{}, nil, nil, *u256.N1, log.New()) + var wg sync.WaitGroup + fetch.SetWaitGroup(&wg) + m.StreamWg.Add(2) + fetch.ConnectSentries() + m.StreamWg.Wait() + // Send one transaction id + wg.Add(1) + errs := m.Send(&sentry.InboundMessage{ + Id: sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_66, + Data: decodeHex("e1a0595e27a835cd79729ff1eeacec3120eeb6ed1464a04ec727aaca734ead961328"), + PeerId: peerID, + }) + for i, err := range errs { + if err != nil { + t.Errorf("sending new pool tx hashes 66 (%d): %v", i, err) + } + } + wg.Wait() + +} + +func TestSendTxPropagate(t *testing.T) { + ctx, cancelFn := context.WithCancel(context.Background()) + defer cancelFn() + t.Run("few remote byHash", func(t *testing.T) { + m := NewMockSentry(ctx) + send := NewSend(ctx, []direct.SentryClient{direct.NewSentryClientDirect(direct.ETH68, m)}, nil, log.New()) + send.BroadcastPooledTxs(testRlps(2), 100) + send.AnnouncePooledTxs([]byte{0, 1}, []uint32{10, 15}, toHashes(1, 42), 100) + + calls := m.SendMessageToRandomPeersCalls() + require.Equal(t, 2, len(calls)) + + txsMessage := calls[0].SendMessageToRandomPeersRequest.Data + assert.Equal(t, sentry.MessageId_TRANSACTIONS_66, txsMessage.Id) + assert.Equal(t, 3, len(txsMessage.Data)) + + txnHashesMessage := calls[1].SendMessageToRandomPeersRequest.Data + assert.Equal(t, sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_68, txnHashesMessage.Id) + assert.Equal(t, 76, len(txnHashesMessage.Data)) + }) + t.Run("much remote byHash", func(t *testing.T) { + m := NewMockSentry(ctx) + send := NewSend(ctx, []direct.SentryClient{direct.NewSentryClientDirect(direct.ETH68, m)}, nil, log.New()) + list := make(types3.Hashes, p2pTxPacketLimit*3) + for i := 0; i < len(list); i += 32 { + b := []byte(fmt.Sprintf("%x", i)) + copy(list[i:i+32], b) + } + send.BroadcastPooledTxs(testRlps(len(list)/32), 100) + send.AnnouncePooledTxs([]byte{0, 1, 2}, []uint32{10, 12, 14}, list, 100) + + calls := m.SendMessageToRandomPeersCalls() + require.Equal(t, 2, len(calls)) + + txsMessage := calls[0].SendMessageToRandomPeersRequest.Data + require.Equal(t, sentry.MessageId_TRANSACTIONS_66, txsMessage.Id) + require.True(t, len(txsMessage.Data) > 0) + + txnHashesMessage := calls[1].SendMessageToRandomPeersRequest.Data + require.Equal(t, sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_68, txnHashesMessage.Id) + require.True(t, len(txnHashesMessage.Data) > 0) + }) + t.Run("few local byHash", func(t *testing.T) { + m := NewMockSentry(ctx) + m.SendMessageToAllFunc = func(contextMoqParam context.Context, outboundMessageData *sentry.OutboundMessageData) (*sentry.SentPeers, error) { + return &sentry.SentPeers{Peers: make([]*types.H512, 5)}, nil + } + send := NewSend(ctx, []direct.SentryClient{direct.NewSentryClientDirect(direct.ETH68, m)}, nil, log.New()) + send.BroadcastPooledTxs(testRlps(2), 100) + send.AnnouncePooledTxs([]byte{0, 1}, []uint32{10, 15}, toHashes(1, 42), 100) + + calls := m.SendMessageToRandomPeersCalls() + require.Equal(t, 2, len(calls)) + + txsMessage := calls[0].SendMessageToRandomPeersRequest.Data + assert.Equal(t, sentry.MessageId_TRANSACTIONS_66, txsMessage.Id) + assert.True(t, len(txsMessage.Data) > 0) + + txnHashesMessage := calls[1].SendMessageToRandomPeersRequest.Data + assert.Equal(t, sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_68, txnHashesMessage.Id) + assert.Equal(t, 76, len(txnHashesMessage.Data)) + }) + t.Run("sync with new peer", func(t *testing.T) { + m := NewMockSentry(ctx) + + m.SendMessageToAllFunc = func(contextMoqParam context.Context, outboundMessageData *sentry.OutboundMessageData) (*sentry.SentPeers, error) { + return &sentry.SentPeers{Peers: make([]*types.H512, 5)}, nil + } + send := NewSend(ctx, []direct.SentryClient{direct.NewSentryClientDirect(direct.ETH68, m)}, nil, log.New()) + expectPeers := toPeerIDs(1, 2, 42) + send.PropagatePooledTxsToPeersList(expectPeers, []byte{0, 1}, []uint32{10, 15}, toHashes(1, 42)) + + calls := m.SendMessageByIdCalls() + require.Equal(t, 3, len(calls)) + for i, call := range calls { + req := call.SendMessageByIdRequest + assert.Equal(t, expectPeers[i], types3.PeerID(req.PeerId)) + assert.Equal(t, sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_68, req.Data.Id) + assert.True(t, len(req.Data.Data) > 0) + } + }) +} + +func decodeHex(in string) []byte { + payload, err := hex.DecodeString(in) + if err != nil { + panic(err) + } + return payload +} +func TestOnNewBlock(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + coreDB, db := memdb.NewTestDB(t), memdb.NewTestDB(t) + + i := 0 + stream := &remote.KV_StateChangesClientMock{ + RecvFunc: func() (*remote.StateChangeBatch, error) { + if i > 0 { + return nil, io.EOF + } + i++ + return &remote.StateChangeBatch{ + StateVersionId: 1, + ChangeBatch: []*remote.StateChange{ + {Txs: [][]byte{decodeHex(types3.TxParseMainnetTests[0].PayloadStr), decodeHex(types3.TxParseMainnetTests[1].PayloadStr), decodeHex(types3.TxParseMainnetTests[2].PayloadStr)}, BlockHeight: 1, BlockHash: gointerfaces.ConvertHashToH256([32]byte{})}, + }, + }, nil + }, + } + stateChanges := &remote.KVClientMock{ + StateChangesFunc: func(ctx context.Context, in *remote.StateChangeRequest, opts ...grpc.CallOption) (remote.KV_StateChangesClient, error) { + return stream, nil + }, + } + pool := &PoolMock{} + fetch := NewFetch(ctx, nil, pool, stateChanges, coreDB, db, *u256.N1, log.New()) + err := fetch.handleStateChanges(ctx, stateChanges) + assert.ErrorIs(t, io.EOF, err) + assert.Equal(t, 1, len(pool.OnNewBlockCalls())) + assert.Equal(t, 3, len(pool.OnNewBlockCalls()[0].MinedTxs.Txs)) +} diff --git a/erigon-lib/txpool/mocks_test.go b/erigon-lib/txpool/mocks_test.go new file mode 100644 index 00000000000..22e8e8121af --- /dev/null +++ b/erigon-lib/txpool/mocks_test.go @@ -0,0 +1,563 @@ +// Code generated by moq; DO NOT EDIT. +// github.com/matryer/moq + +package txpool + +import ( + "context" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" + types2 "github.com/ledgerwatch/erigon-lib/types" + "sync" +) + +// Ensure, that PoolMock does implement Pool. +// If this is not the case, regenerate this file with moq. +var _ Pool = &PoolMock{} + +// PoolMock is a mock implementation of Pool. +// +// func TestSomethingThatUsesPool(t *testing.T) { +// +// // make and configure a mocked Pool +// mockedPool := &PoolMock{ +// AddLocalTxsFunc: func(ctx context.Context, newTxs types2.TxSlots, tx kv.Tx) ([]txpoolcfg.DiscardReason, error) { +// panic("mock out the AddLocalTxs method") +// }, +// AddNewGoodPeerFunc: func(peerID types2.PeerID) { +// panic("mock out the AddNewGoodPeer method") +// }, +// AddRemoteTxsFunc: func(ctx context.Context, newTxs types2.TxSlots) { +// panic("mock out the AddRemoteTxs method") +// }, +// FilterKnownIdHashesFunc: func(tx kv.Tx, hashes types2.Hashes) (types2.Hashes, error) { +// panic("mock out the FilterKnownIdHashes method") +// }, +// GetKnownBlobTxnFunc: func(tx kv.Tx, hash []byte) (*metaTx, error) { +// panic("mock out the GetKnownBlobTxn method") +// }, +// GetRlpFunc: func(tx kv.Tx, hash []byte) ([]byte, error) { +// panic("mock out the GetRlp method") +// }, +// IdHashKnownFunc: func(tx kv.Tx, hash []byte) (bool, error) { +// panic("mock out the IdHashKnown method") +// }, +// OnNewBlockFunc: func(ctx context.Context, stateChanges *remote.StateChangeBatch, unwindTxs types2.TxSlots, minedTxs types2.TxSlots, tx kv.Tx) error { +// panic("mock out the OnNewBlock method") +// }, +// StartedFunc: func() bool { +// panic("mock out the Started method") +// }, +// ValidateSerializedTxnFunc: func(serializedTxn []byte) error { +// panic("mock out the ValidateSerializedTxn method") +// }, +// } +// +// // use mockedPool in code that requires Pool +// // and then make assertions. +// +// } +type PoolMock struct { + // AddLocalTxsFunc mocks the AddLocalTxs method. + AddLocalTxsFunc func(ctx context.Context, newTxs types2.TxSlots, tx kv.Tx) ([]txpoolcfg.DiscardReason, error) + + // AddNewGoodPeerFunc mocks the AddNewGoodPeer method. + AddNewGoodPeerFunc func(peerID types2.PeerID) + + // AddRemoteTxsFunc mocks the AddRemoteTxs method. + AddRemoteTxsFunc func(ctx context.Context, newTxs types2.TxSlots) + + // FilterKnownIdHashesFunc mocks the FilterKnownIdHashes method. + FilterKnownIdHashesFunc func(tx kv.Tx, hashes types2.Hashes) (types2.Hashes, error) + + // GetKnownBlobTxnFunc mocks the GetKnownBlobTxn method. + GetKnownBlobTxnFunc func(tx kv.Tx, hash []byte) (*metaTx, error) + + // GetRlpFunc mocks the GetRlp method. + GetRlpFunc func(tx kv.Tx, hash []byte) ([]byte, error) + + // IdHashKnownFunc mocks the IdHashKnown method. + IdHashKnownFunc func(tx kv.Tx, hash []byte) (bool, error) + + // OnNewBlockFunc mocks the OnNewBlock method. + OnNewBlockFunc func(ctx context.Context, stateChanges *remote.StateChangeBatch, unwindTxs types2.TxSlots, minedTxs types2.TxSlots, tx kv.Tx) error + + // StartedFunc mocks the Started method. + StartedFunc func() bool + + // ValidateSerializedTxnFunc mocks the ValidateSerializedTxn method. + ValidateSerializedTxnFunc func(serializedTxn []byte) error + + // calls tracks calls to the methods. + calls struct { + // AddLocalTxs holds details about calls to the AddLocalTxs method. + AddLocalTxs []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // NewTxs is the newTxs argument value. + NewTxs types2.TxSlots + // Tx is the tx argument value. + Tx kv.Tx + } + // AddNewGoodPeer holds details about calls to the AddNewGoodPeer method. + AddNewGoodPeer []struct { + // PeerID is the peerID argument value. + PeerID types2.PeerID + } + // AddRemoteTxs holds details about calls to the AddRemoteTxs method. + AddRemoteTxs []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // NewTxs is the newTxs argument value. + NewTxs types2.TxSlots + } + // FilterKnownIdHashes holds details about calls to the FilterKnownIdHashes method. + FilterKnownIdHashes []struct { + // Tx is the tx argument value. + Tx kv.Tx + // Hashes is the hashes argument value. + Hashes types2.Hashes + } + // GetKnownBlobTxn holds details about calls to the GetKnownBlobTxn method. + GetKnownBlobTxn []struct { + // Tx is the tx argument value. + Tx kv.Tx + // Hash is the hash argument value. + Hash []byte + } + // GetRlp holds details about calls to the GetRlp method. + GetRlp []struct { + // Tx is the tx argument value. + Tx kv.Tx + // Hash is the hash argument value. + Hash []byte + } + // IdHashKnown holds details about calls to the IdHashKnown method. + IdHashKnown []struct { + // Tx is the tx argument value. + Tx kv.Tx + // Hash is the hash argument value. + Hash []byte + } + // OnNewBlock holds details about calls to the OnNewBlock method. + OnNewBlock []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // StateChanges is the stateChanges argument value. + StateChanges *remote.StateChangeBatch + // UnwindTxs is the unwindTxs argument value. + UnwindTxs types2.TxSlots + // MinedTxs is the minedTxs argument value. + MinedTxs types2.TxSlots + // Tx is the tx argument value. + Tx kv.Tx + } + // Started holds details about calls to the Started method. + Started []struct { + } + // ValidateSerializedTxn holds details about calls to the ValidateSerializedTxn method. + ValidateSerializedTxn []struct { + // SerializedTxn is the serializedTxn argument value. + SerializedTxn []byte + } + } + lockAddLocalTxs sync.RWMutex + lockAddNewGoodPeer sync.RWMutex + lockAddRemoteTxs sync.RWMutex + lockFilterKnownIdHashes sync.RWMutex + lockGetKnownBlobTxn sync.RWMutex + lockGetRlp sync.RWMutex + lockIdHashKnown sync.RWMutex + lockOnNewBlock sync.RWMutex + lockStarted sync.RWMutex + lockValidateSerializedTxn sync.RWMutex +} + +// AddLocalTxs calls AddLocalTxsFunc. +func (mock *PoolMock) AddLocalTxs(ctx context.Context, newTxs types2.TxSlots, tx kv.Tx) ([]txpoolcfg.DiscardReason, error) { + callInfo := struct { + Ctx context.Context + NewTxs types2.TxSlots + Tx kv.Tx + }{ + Ctx: ctx, + NewTxs: newTxs, + Tx: tx, + } + mock.lockAddLocalTxs.Lock() + mock.calls.AddLocalTxs = append(mock.calls.AddLocalTxs, callInfo) + mock.lockAddLocalTxs.Unlock() + if mock.AddLocalTxsFunc == nil { + var ( + discardReasonsOut []txpoolcfg.DiscardReason + errOut error + ) + return discardReasonsOut, errOut + } + return mock.AddLocalTxsFunc(ctx, newTxs, tx) +} + +// AddLocalTxsCalls gets all the calls that were made to AddLocalTxs. +// Check the length with: +// +// len(mockedPool.AddLocalTxsCalls()) +func (mock *PoolMock) AddLocalTxsCalls() []struct { + Ctx context.Context + NewTxs types2.TxSlots + Tx kv.Tx +} { + var calls []struct { + Ctx context.Context + NewTxs types2.TxSlots + Tx kv.Tx + } + mock.lockAddLocalTxs.RLock() + calls = mock.calls.AddLocalTxs + mock.lockAddLocalTxs.RUnlock() + return calls +} + +// AddNewGoodPeer calls AddNewGoodPeerFunc. +func (mock *PoolMock) AddNewGoodPeer(peerID types2.PeerID) { + callInfo := struct { + PeerID types2.PeerID + }{ + PeerID: peerID, + } + mock.lockAddNewGoodPeer.Lock() + mock.calls.AddNewGoodPeer = append(mock.calls.AddNewGoodPeer, callInfo) + mock.lockAddNewGoodPeer.Unlock() + if mock.AddNewGoodPeerFunc == nil { + return + } + mock.AddNewGoodPeerFunc(peerID) +} + +// AddNewGoodPeerCalls gets all the calls that were made to AddNewGoodPeer. +// Check the length with: +// +// len(mockedPool.AddNewGoodPeerCalls()) +func (mock *PoolMock) AddNewGoodPeerCalls() []struct { + PeerID types2.PeerID +} { + var calls []struct { + PeerID types2.PeerID + } + mock.lockAddNewGoodPeer.RLock() + calls = mock.calls.AddNewGoodPeer + mock.lockAddNewGoodPeer.RUnlock() + return calls +} + +// AddRemoteTxs calls AddRemoteTxsFunc. +func (mock *PoolMock) AddRemoteTxs(ctx context.Context, newTxs types2.TxSlots) { + callInfo := struct { + Ctx context.Context + NewTxs types2.TxSlots + }{ + Ctx: ctx, + NewTxs: newTxs, + } + mock.lockAddRemoteTxs.Lock() + mock.calls.AddRemoteTxs = append(mock.calls.AddRemoteTxs, callInfo) + mock.lockAddRemoteTxs.Unlock() + if mock.AddRemoteTxsFunc == nil { + return + } + mock.AddRemoteTxsFunc(ctx, newTxs) +} + +// AddRemoteTxsCalls gets all the calls that were made to AddRemoteTxs. +// Check the length with: +// +// len(mockedPool.AddRemoteTxsCalls()) +func (mock *PoolMock) AddRemoteTxsCalls() []struct { + Ctx context.Context + NewTxs types2.TxSlots +} { + var calls []struct { + Ctx context.Context + NewTxs types2.TxSlots + } + mock.lockAddRemoteTxs.RLock() + calls = mock.calls.AddRemoteTxs + mock.lockAddRemoteTxs.RUnlock() + return calls +} + +// FilterKnownIdHashes calls FilterKnownIdHashesFunc. +func (mock *PoolMock) FilterKnownIdHashes(tx kv.Tx, hashes types2.Hashes) (types2.Hashes, error) { + callInfo := struct { + Tx kv.Tx + Hashes types2.Hashes + }{ + Tx: tx, + Hashes: hashes, + } + mock.lockFilterKnownIdHashes.Lock() + mock.calls.FilterKnownIdHashes = append(mock.calls.FilterKnownIdHashes, callInfo) + mock.lockFilterKnownIdHashes.Unlock() + if mock.FilterKnownIdHashesFunc == nil { + var ( + unknownHashesOut types2.Hashes + errOut error + ) + return unknownHashesOut, errOut + } + return mock.FilterKnownIdHashesFunc(tx, hashes) +} + +// FilterKnownIdHashesCalls gets all the calls that were made to FilterKnownIdHashes. +// Check the length with: +// +// len(mockedPool.FilterKnownIdHashesCalls()) +func (mock *PoolMock) FilterKnownIdHashesCalls() []struct { + Tx kv.Tx + Hashes types2.Hashes +} { + var calls []struct { + Tx kv.Tx + Hashes types2.Hashes + } + mock.lockFilterKnownIdHashes.RLock() + calls = mock.calls.FilterKnownIdHashes + mock.lockFilterKnownIdHashes.RUnlock() + return calls +} + +// GetKnownBlobTxn calls GetKnownBlobTxnFunc. +func (mock *PoolMock) GetKnownBlobTxn(tx kv.Tx, hash []byte) (*metaTx, error) { + callInfo := struct { + Tx kv.Tx + Hash []byte + }{ + Tx: tx, + Hash: hash, + } + mock.lockGetKnownBlobTxn.Lock() + mock.calls.GetKnownBlobTxn = append(mock.calls.GetKnownBlobTxn, callInfo) + mock.lockGetKnownBlobTxn.Unlock() + if mock.GetKnownBlobTxnFunc == nil { + var ( + metaTxMoqParamOut *metaTx + errOut error + ) + return metaTxMoqParamOut, errOut + } + return mock.GetKnownBlobTxnFunc(tx, hash) +} + +// GetKnownBlobTxnCalls gets all the calls that were made to GetKnownBlobTxn. +// Check the length with: +// +// len(mockedPool.GetKnownBlobTxnCalls()) +func (mock *PoolMock) GetKnownBlobTxnCalls() []struct { + Tx kv.Tx + Hash []byte +} { + var calls []struct { + Tx kv.Tx + Hash []byte + } + mock.lockGetKnownBlobTxn.RLock() + calls = mock.calls.GetKnownBlobTxn + mock.lockGetKnownBlobTxn.RUnlock() + return calls +} + +// GetRlp calls GetRlpFunc. +func (mock *PoolMock) GetRlp(tx kv.Tx, hash []byte) ([]byte, error) { + callInfo := struct { + Tx kv.Tx + Hash []byte + }{ + Tx: tx, + Hash: hash, + } + mock.lockGetRlp.Lock() + mock.calls.GetRlp = append(mock.calls.GetRlp, callInfo) + mock.lockGetRlp.Unlock() + if mock.GetRlpFunc == nil { + var ( + bytesOut []byte + errOut error + ) + return bytesOut, errOut + } + return mock.GetRlpFunc(tx, hash) +} + +// GetRlpCalls gets all the calls that were made to GetRlp. +// Check the length with: +// +// len(mockedPool.GetRlpCalls()) +func (mock *PoolMock) GetRlpCalls() []struct { + Tx kv.Tx + Hash []byte +} { + var calls []struct { + Tx kv.Tx + Hash []byte + } + mock.lockGetRlp.RLock() + calls = mock.calls.GetRlp + mock.lockGetRlp.RUnlock() + return calls +} + +// IdHashKnown calls IdHashKnownFunc. +func (mock *PoolMock) IdHashKnown(tx kv.Tx, hash []byte) (bool, error) { + callInfo := struct { + Tx kv.Tx + Hash []byte + }{ + Tx: tx, + Hash: hash, + } + mock.lockIdHashKnown.Lock() + mock.calls.IdHashKnown = append(mock.calls.IdHashKnown, callInfo) + mock.lockIdHashKnown.Unlock() + if mock.IdHashKnownFunc == nil { + var ( + bOut bool + errOut error + ) + return bOut, errOut + } + return mock.IdHashKnownFunc(tx, hash) +} + +// IdHashKnownCalls gets all the calls that were made to IdHashKnown. +// Check the length with: +// +// len(mockedPool.IdHashKnownCalls()) +func (mock *PoolMock) IdHashKnownCalls() []struct { + Tx kv.Tx + Hash []byte +} { + var calls []struct { + Tx kv.Tx + Hash []byte + } + mock.lockIdHashKnown.RLock() + calls = mock.calls.IdHashKnown + mock.lockIdHashKnown.RUnlock() + return calls +} + +// OnNewBlock calls OnNewBlockFunc. +func (mock *PoolMock) OnNewBlock(ctx context.Context, stateChanges *remote.StateChangeBatch, unwindTxs types2.TxSlots, minedTxs types2.TxSlots, tx kv.Tx) error { + callInfo := struct { + Ctx context.Context + StateChanges *remote.StateChangeBatch + UnwindTxs types2.TxSlots + MinedTxs types2.TxSlots + Tx kv.Tx + }{ + Ctx: ctx, + StateChanges: stateChanges, + UnwindTxs: unwindTxs, + MinedTxs: minedTxs, + Tx: tx, + } + mock.lockOnNewBlock.Lock() + mock.calls.OnNewBlock = append(mock.calls.OnNewBlock, callInfo) + mock.lockOnNewBlock.Unlock() + if mock.OnNewBlockFunc == nil { + var ( + errOut error + ) + return errOut + } + return mock.OnNewBlockFunc(ctx, stateChanges, unwindTxs, minedTxs, tx) +} + +// OnNewBlockCalls gets all the calls that were made to OnNewBlock. +// Check the length with: +// +// len(mockedPool.OnNewBlockCalls()) +func (mock *PoolMock) OnNewBlockCalls() []struct { + Ctx context.Context + StateChanges *remote.StateChangeBatch + UnwindTxs types2.TxSlots + MinedTxs types2.TxSlots + Tx kv.Tx +} { + var calls []struct { + Ctx context.Context + StateChanges *remote.StateChangeBatch + UnwindTxs types2.TxSlots + MinedTxs types2.TxSlots + Tx kv.Tx + } + mock.lockOnNewBlock.RLock() + calls = mock.calls.OnNewBlock + mock.lockOnNewBlock.RUnlock() + return calls +} + +// Started calls StartedFunc. +func (mock *PoolMock) Started() bool { + callInfo := struct { + }{} + mock.lockStarted.Lock() + mock.calls.Started = append(mock.calls.Started, callInfo) + mock.lockStarted.Unlock() + if mock.StartedFunc == nil { + var ( + bOut bool + ) + return bOut + } + return mock.StartedFunc() +} + +// StartedCalls gets all the calls that were made to Started. +// Check the length with: +// +// len(mockedPool.StartedCalls()) +func (mock *PoolMock) StartedCalls() []struct { +} { + var calls []struct { + } + mock.lockStarted.RLock() + calls = mock.calls.Started + mock.lockStarted.RUnlock() + return calls +} + +// ValidateSerializedTxn calls ValidateSerializedTxnFunc. +func (mock *PoolMock) ValidateSerializedTxn(serializedTxn []byte) error { + callInfo := struct { + SerializedTxn []byte + }{ + SerializedTxn: serializedTxn, + } + mock.lockValidateSerializedTxn.Lock() + mock.calls.ValidateSerializedTxn = append(mock.calls.ValidateSerializedTxn, callInfo) + mock.lockValidateSerializedTxn.Unlock() + if mock.ValidateSerializedTxnFunc == nil { + var ( + errOut error + ) + return errOut + } + return mock.ValidateSerializedTxnFunc(serializedTxn) +} + +// ValidateSerializedTxnCalls gets all the calls that were made to ValidateSerializedTxn. +// Check the length with: +// +// len(mockedPool.ValidateSerializedTxnCalls()) +func (mock *PoolMock) ValidateSerializedTxnCalls() []struct { + SerializedTxn []byte +} { + var calls []struct { + SerializedTxn []byte + } + mock.lockValidateSerializedTxn.RLock() + calls = mock.calls.ValidateSerializedTxn + mock.lockValidateSerializedTxn.RUnlock() + return calls +} diff --git a/erigon-lib/txpool/pool.go b/erigon-lib/txpool/pool.go new file mode 100644 index 00000000000..1a4b3b8ad74 --- /dev/null +++ b/erigon-lib/txpool/pool.go @@ -0,0 +1,2705 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package txpool + +import ( + "bytes" + "container/heap" + "context" + "encoding/binary" + "encoding/hex" + "encoding/json" + "errors" + "fmt" + "math" + "math/big" + "runtime" + "sort" + "sync" + "sync/atomic" + "time" + + gokzg4844 "github.com/crate-crypto/go-kzg-4844" + mapset "github.com/deckarep/golang-set/v2" + "github.com/go-stack/stack" + "github.com/google/btree" + "github.com/hashicorp/golang-lru/v2/simplelru" + "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/assert" + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/common/fixedgas" + "github.com/ledgerwatch/erigon-lib/common/u256" + libkzg "github.com/ledgerwatch/erigon-lib/crypto/kzg" + "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/grpcutil" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + proto_txpool "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/kvcache" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" + "github.com/ledgerwatch/erigon-lib/types" +) + +var ( + processBatchTxsTimer = metrics.NewSummary(`pool_process_remote_txs`) + addRemoteTxsTimer = metrics.NewSummary(`pool_add_remote_txs`) + newBlockTimer = metrics.NewSummary(`pool_new_block`) + writeToDBTimer = metrics.NewSummary(`pool_write_to_db`) + propagateToNewPeerTimer = metrics.NewSummary(`pool_propagate_to_new_peer`) + propagateNewTxsTimer = metrics.NewSummary(`pool_propagate_new_txs`) + writeToDBBytesCounter = metrics.GetOrCreateGauge(`pool_write_to_db_bytes`) + pendingSubCounter = metrics.GetOrCreateGauge(`txpool_pending`) + queuedSubCounter = metrics.GetOrCreateGauge(`txpool_queued`) + basefeeSubCounter = metrics.GetOrCreateGauge(`txpool_basefee`) +) + +// Pool is interface for the transaction pool +// This interface exists for the convenience of testing, and not yet because +// there are multiple implementations +type Pool interface { + ValidateSerializedTxn(serializedTxn []byte) error + + // Handle 3 main events - new remote txs from p2p, new local txs from RPC, new blocks from execution layer + AddRemoteTxs(ctx context.Context, newTxs types.TxSlots) + AddLocalTxs(ctx context.Context, newTxs types.TxSlots, tx kv.Tx) ([]txpoolcfg.DiscardReason, error) + OnNewBlock(ctx context.Context, stateChanges *remote.StateChangeBatch, unwindTxs, minedTxs types.TxSlots, tx kv.Tx) error + // IdHashKnown check whether transaction with given Id hash is known to the pool + IdHashKnown(tx kv.Tx, hash []byte) (bool, error) + FilterKnownIdHashes(tx kv.Tx, hashes types.Hashes) (unknownHashes types.Hashes, err error) + Started() bool + GetRlp(tx kv.Tx, hash []byte) ([]byte, error) + GetKnownBlobTxn(tx kv.Tx, hash []byte) (*metaTx, error) + + AddNewGoodPeer(peerID types.PeerID) +} + +var _ Pool = (*TxPool)(nil) // compile-time interface check + +// SubPoolMarker is an ordered bitset of five bits that's used to sort transactions into sub-pools. Bits meaning: +// 1. Absence of nonce gaps. Set to 1 for transactions whose nonce is N, state nonce for the sender is M, and there are transactions for all nonces between M and N from the same sender. Set to 0 is the transaction's nonce is divided from the state nonce by one or more nonce gaps. +// 2. Sufficient balance for gas. Set to 1 if the balance of sender's account in the state is B, nonce of the sender in the state is M, nonce of the transaction is N, and the sum of feeCap x gasLimit + transferred_value of all transactions from this sender with nonces N+1 ... M is no more than B. Set to 0 otherwise. In other words, this bit is set if there is currently a guarantee that the transaction and all its required prior transactions will be able to pay for gas. +// 3. Not too much gas: Set to 1 if the transaction doesn't use too much gas +// 4. Dynamic fee requirement. Set to 1 if feeCap of the transaction is no less than baseFee of the currently pending block. Set to 0 otherwise. +// 5. Local transaction. Set to 1 if transaction is local. +type SubPoolMarker uint8 + +const ( + NoNonceGaps = 0b010000 + EnoughBalance = 0b001000 + NotTooMuchGas = 0b000100 + EnoughFeeCapBlock = 0b000010 + IsLocal = 0b000001 + + BaseFeePoolBits = NoNonceGaps + EnoughBalance + NotTooMuchGas +) + +// metaTx holds transaction and some metadata +type metaTx struct { + Tx *types.TxSlot + minFeeCap uint256.Int + nonceDistance uint64 // how far their nonces are from the state's nonce for the sender + cumulativeBalanceDistance uint64 // how far their cumulativeRequiredBalance are from the state's balance for the sender + minTip uint64 + bestIndex int + worstIndex int + timestamp uint64 // when it was added to pool + subPool SubPoolMarker + currentSubPool SubPoolType + alreadyYielded bool + minedBlockNum uint64 +} + +func newMetaTx(slot *types.TxSlot, isLocal bool, timestamp uint64) *metaTx { + mt := &metaTx{Tx: slot, worstIndex: -1, bestIndex: -1, timestamp: timestamp} + if isLocal { + mt.subPool = IsLocal + } + return mt +} + +type SubPoolType uint8 + +const PendingSubPool SubPoolType = 1 +const BaseFeeSubPool SubPoolType = 2 +const QueuedSubPool SubPoolType = 3 + +func (sp SubPoolType) String() string { + switch sp { + case PendingSubPool: + return "Pending" + case BaseFeeSubPool: + return "BaseFee" + case QueuedSubPool: + return "Queued" + } + return fmt.Sprintf("Unknown:%d", sp) +} + +// sender - immutable structure which stores only nonce and balance of account +type sender struct { + balance uint256.Int + nonce uint64 +} + +func newSender(nonce uint64, balance uint256.Int) *sender { + return &sender{nonce: nonce, balance: balance} +} + +var emptySender = newSender(0, *uint256.NewInt(0)) + +func SortByNonceLess(a, b *metaTx) bool { + if a.Tx.SenderID != b.Tx.SenderID { + return a.Tx.SenderID < b.Tx.SenderID + } + return a.Tx.Nonce < b.Tx.Nonce +} + +// TxPool - holds all pool-related data structures and lock-based tiny methods +// most of logic implemented by pure tests-friendly functions +// +// txpool doesn't start any goroutines - "leave concurrency to user" design +// txpool has no DB-TX fields - "leave db transactions management to user" design +// txpool has _chainDB field - but it must maximize local state cache hit-rate - and perform minimum _chainDB transactions +// +// It preserve TxSlot objects immutable +type TxPool struct { + _chainDB kv.RoDB // remote db - use it wisely + _stateCache kvcache.Cache + lock *sync.Mutex + recentlyConnectedPeers *recentlyConnectedPeers // all txs will be propagated to this peers eventually, and clear list + senders *sendersBatch + // batch processing of remote transactions + // handling is fast enough without batching, but batching allows: + // - fewer _chainDB transactions + // - batch notifications about new txs (reduced P2P spam to other nodes about txs propagation) + // - and as a result reducing lock contention + unprocessedRemoteTxs *types.TxSlots + unprocessedRemoteByHash map[string]int // to reject duplicates + byHash map[string]*metaTx // tx_hash => tx : only those records not committed to db yet + discardReasonsLRU *simplelru.LRU[string, txpoolcfg.DiscardReason] // tx_hash => discard_reason : non-persisted + pending *PendingPool + baseFee *SubPool + queued *SubPool + minedBlobTxsByBlock map[uint64][]*metaTx // (blockNum => slice): cache of recently mined blobs + minedBlobTxsByHash map[string]*metaTx // (hash => mt): map of recently mined blobs + isLocalLRU *simplelru.LRU[string, struct{}] // tx_hash => is_local : to restore isLocal flag of unwinded transactions + newPendingTxs chan types.Announcements // notifications about new txs in Pending sub-pool + all *BySenderAndNonce // senderID => (sorted map of tx nonce => *metaTx) + deletedTxs []*metaTx // list of discarded txs since last db commit + promoted types.Announcements + cfg txpoolcfg.Config + chainID uint256.Int + lastSeenBlock atomic.Uint64 + lastFinalizedBlock atomic.Uint64 + started atomic.Bool + pendingBaseFee atomic.Uint64 + pendingBlobFee atomic.Uint64 // For gas accounting for blobs, which has its own dimension + blockGasLimit atomic.Uint64 + shanghaiTime *uint64 + isPostShanghai atomic.Bool + agraBlock *uint64 + isPostAgra atomic.Bool + cancunTime *uint64 + isPostCancun atomic.Bool + maxBlobsPerBlock uint64 + logger log.Logger +} + +func New(newTxs chan types.Announcements, coreDB kv.RoDB, cfg txpoolcfg.Config, cache kvcache.Cache, + chainID uint256.Int, shanghaiTime, agraBlock, cancunTime *big.Int, maxBlobsPerBlock uint64, logger log.Logger, +) (*TxPool, error) { + localsHistory, err := simplelru.NewLRU[string, struct{}](10_000, nil) + if err != nil { + return nil, err + } + discardHistory, err := simplelru.NewLRU[string, txpoolcfg.DiscardReason](10_000, nil) + if err != nil { + return nil, err + } + + byNonce := &BySenderAndNonce{ + tree: btree.NewG[*metaTx](32, SortByNonceLess), + search: &metaTx{Tx: &types.TxSlot{}}, + senderIDTxnCount: map[uint64]int{}, + senderIDBlobCount: map[uint64]uint64{}, + } + tracedSenders := make(map[common.Address]struct{}) + for _, sender := range cfg.TracedSenders { + tracedSenders[common.BytesToAddress([]byte(sender))] = struct{}{} + } + + res := &TxPool{ + lock: &sync.Mutex{}, + byHash: map[string]*metaTx{}, + isLocalLRU: localsHistory, + discardReasonsLRU: discardHistory, + all: byNonce, + recentlyConnectedPeers: &recentlyConnectedPeers{}, + pending: NewPendingSubPool(PendingSubPool, cfg.PendingSubPoolLimit), + baseFee: NewSubPool(BaseFeeSubPool, cfg.BaseFeeSubPoolLimit), + queued: NewSubPool(QueuedSubPool, cfg.QueuedSubPoolLimit), + newPendingTxs: newTxs, + _stateCache: cache, + senders: newSendersCache(tracedSenders), + _chainDB: coreDB, + cfg: cfg, + chainID: chainID, + unprocessedRemoteTxs: &types.TxSlots{}, + unprocessedRemoteByHash: map[string]int{}, + minedBlobTxsByBlock: map[uint64][]*metaTx{}, + minedBlobTxsByHash: map[string]*metaTx{}, + maxBlobsPerBlock: maxBlobsPerBlock, + logger: logger, + } + + if shanghaiTime != nil { + if !shanghaiTime.IsUint64() { + return nil, errors.New("shanghaiTime overflow") + } + shanghaiTimeU64 := shanghaiTime.Uint64() + res.shanghaiTime = &shanghaiTimeU64 + } + if agraBlock != nil { + if !agraBlock.IsUint64() { + return nil, errors.New("agraBlock overflow") + } + agraBlockU64 := agraBlock.Uint64() + res.agraBlock = &agraBlockU64 + } + if cancunTime != nil { + if !cancunTime.IsUint64() { + return nil, errors.New("cancunTime overflow") + } + cancunTimeU64 := cancunTime.Uint64() + res.cancunTime = &cancunTimeU64 + } + + return res, nil +} + +func (p *TxPool) OnNewBlock(ctx context.Context, stateChanges *remote.StateChangeBatch, unwindTxs, minedTxs types.TxSlots, tx kv.Tx) error { + if err := minedTxs.Valid(); err != nil { + return err + } + + defer newBlockTimer.ObserveDuration(time.Now()) + //t := time.Now() + + coreDB, cache := p.coreDBWithCache() + cache.OnNewBlock(stateChanges) + coreTx, err := coreDB.BeginRo(ctx) + if err != nil { + return err + } + defer coreTx.Rollback() + + p.lastSeenBlock.Store(stateChanges.ChangeBatch[len(stateChanges.ChangeBatch)-1].BlockHeight) + if !p.started.Load() { + if err := p.fromDBWithLock(ctx, tx, coreTx); err != nil { + return fmt.Errorf("OnNewBlock: loading txs from DB: %w", err) + } + } + cacheView, err := cache.View(ctx, coreTx) + if err != nil { + return err + } + + p.lock.Lock() + defer p.lock.Unlock() + + if assert.Enable { + if _, err := kvcache.AssertCheckValues(ctx, coreTx, cache); err != nil { + p.logger.Error("AssertCheckValues", "err", err, "stack", stack.Trace().String()) + } + } + baseFee := stateChanges.PendingBlockBaseFee + + pendingBaseFee, baseFeeChanged := p.setBaseFee(baseFee) + // Update pendingBase for all pool queues and slices + if baseFeeChanged { + p.pending.best.pendingBaseFee = pendingBaseFee + p.pending.worst.pendingBaseFee = pendingBaseFee + p.baseFee.best.pendingBastFee = pendingBaseFee + p.baseFee.worst.pendingBaseFee = pendingBaseFee + p.queued.best.pendingBastFee = pendingBaseFee + p.queued.worst.pendingBaseFee = pendingBaseFee + } + + pendingBlobFee := stateChanges.PendingBlobFeePerGas + p.setBlobFee(pendingBlobFee) + + p.blockGasLimit.Store(stateChanges.BlockGasLimit) + if err := p.senders.onNewBlock(stateChanges, unwindTxs, minedTxs, p.logger); err != nil { + return err + } + _, unwindTxs, err = p.validateTxs(&unwindTxs, cacheView) + if err != nil { + return err + } + + if assert.Enable { + for _, txn := range unwindTxs.Txs { + if txn.SenderID == 0 { + panic(fmt.Errorf("onNewBlock.unwindTxs: senderID can't be zero")) + } + } + for _, txn := range minedTxs.Txs { + if txn.SenderID == 0 { + panic(fmt.Errorf("onNewBlock.minedTxs: senderID can't be zero")) + } + } + } + + if err := p.processMinedFinalizedBlobs(coreTx, minedTxs.Txs, stateChanges.FinalizedBlock); err != nil { + return err + } + if err := removeMined(p.all, minedTxs.Txs, p.pending, p.baseFee, p.queued, p.discardLocked, p.logger); err != nil { + return err + } + + //p.logger.Debug("[txpool] new block", "unwinded", len(unwindTxs.txs), "mined", len(minedTxs.txs), "baseFee", baseFee, "blockHeight", blockHeight) + + announcements, err := addTxsOnNewBlock(p.lastSeenBlock.Load(), cacheView, stateChanges, p.senders, unwindTxs, /* newTxs */ + pendingBaseFee, stateChanges.BlockGasLimit, + p.pending, p.baseFee, p.queued, p.all, p.byHash, p.addLocked, p.discardLocked, p.logger) + if err != nil { + return err + } + p.pending.EnforceWorstInvariants() + p.baseFee.EnforceInvariants() + p.queued.EnforceInvariants() + promote(p.pending, p.baseFee, p.queued, pendingBaseFee, pendingBlobFee, p.discardLocked, &announcements, p.logger) + p.pending.EnforceBestInvariants() + p.promoted.Reset() + p.promoted.AppendOther(announcements) + + if p.started.CompareAndSwap(false, true) { + p.logger.Info("[txpool] Started") + } + + if p.promoted.Len() > 0 { + select { + case p.newPendingTxs <- p.promoted.Copy(): + default: + } + } + + //p.logger.Info("[txpool] new block", "number", p.lastSeenBlock.Load(), "pendngBaseFee", pendingBaseFee, "in", time.Since(t)) + return nil +} + +func (p *TxPool) processRemoteTxs(ctx context.Context) error { + if !p.started.Load() { + return fmt.Errorf("txpool not started yet") + } + + defer processBatchTxsTimer.ObserveDuration(time.Now()) + coreDB, cache := p.coreDBWithCache() + coreTx, err := coreDB.BeginRo(ctx) + if err != nil { + return err + } + defer coreTx.Rollback() + cacheView, err := cache.View(ctx, coreTx) + if err != nil { + return err + } + + //t := time.Now() + p.lock.Lock() + defer p.lock.Unlock() + + l := len(p.unprocessedRemoteTxs.Txs) + if l == 0 { + return nil + } + + err = p.senders.registerNewSenders(p.unprocessedRemoteTxs, p.logger) + if err != nil { + return err + } + + _, newTxs, err := p.validateTxs(p.unprocessedRemoteTxs, cacheView) + if err != nil { + return err + } + + announcements, _, err := addTxs(p.lastSeenBlock.Load(), cacheView, p.senders, newTxs, + p.pendingBaseFee.Load(), p.pendingBlobFee.Load(), p.blockGasLimit.Load(), p.pending, p.baseFee, p.queued, p.all, p.byHash, p.addLocked, p.discardLocked, true, p.logger) + if err != nil { + return err + } + p.promoted.Reset() + p.promoted.AppendOther(announcements) + + if p.promoted.Len() > 0 { + select { + case <-ctx.Done(): + return nil + case p.newPendingTxs <- p.promoted.Copy(): + default: + } + } + + p.unprocessedRemoteTxs.Resize(0) + p.unprocessedRemoteByHash = map[string]int{} + + //p.logger.Info("[txpool] on new txs", "amount", len(newPendingTxs.txs), "in", time.Since(t)) + return nil +} +func (p *TxPool) getRlpLocked(tx kv.Tx, hash []byte) (rlpTxn []byte, sender common.Address, isLocal bool, err error) { + txn, ok := p.byHash[string(hash)] + if ok && txn.Tx.Rlp != nil { + return txn.Tx.Rlp, p.senders.senderID2Addr[txn.Tx.SenderID], txn.subPool&IsLocal > 0, nil + } + v, err := tx.GetOne(kv.PoolTransaction, hash) + if err != nil { + return nil, common.Address{}, false, err + } + if v == nil { + return nil, common.Address{}, false, nil + } + return v[20:], *(*[20]byte)(v[:20]), txn != nil && txn.subPool&IsLocal > 0, nil +} +func (p *TxPool) GetRlp(tx kv.Tx, hash []byte) ([]byte, error) { + p.lock.Lock() + defer p.lock.Unlock() + rlpTx, _, _, err := p.getRlpLocked(tx, hash) + return common.Copy(rlpTx), err +} +func (p *TxPool) AppendLocalAnnouncements(types []byte, sizes []uint32, hashes []byte) ([]byte, []uint32, []byte) { + p.lock.Lock() + defer p.lock.Unlock() + for hash, txn := range p.byHash { + if txn.subPool&IsLocal == 0 { + continue + } + types = append(types, txn.Tx.Type) + sizes = append(sizes, txn.Tx.Size) + hashes = append(hashes, hash...) + } + return types, sizes, hashes +} +func (p *TxPool) AppendRemoteAnnouncements(types []byte, sizes []uint32, hashes []byte) ([]byte, []uint32, []byte) { + p.lock.Lock() + defer p.lock.Unlock() + + for hash, txn := range p.byHash { + if txn.subPool&IsLocal != 0 { + continue + } + types = append(types, txn.Tx.Type) + sizes = append(sizes, txn.Tx.Size) + hashes = append(hashes, hash...) + } + for hash, txIdx := range p.unprocessedRemoteByHash { + txSlot := p.unprocessedRemoteTxs.Txs[txIdx] + types = append(types, txSlot.Type) + sizes = append(sizes, txSlot.Size) + hashes = append(hashes, hash...) + } + return types, sizes, hashes +} +func (p *TxPool) AppendAllAnnouncements(types []byte, sizes []uint32, hashes []byte) ([]byte, []uint32, []byte) { + types, sizes, hashes = p.AppendLocalAnnouncements(types, sizes, hashes) + types, sizes, hashes = p.AppendRemoteAnnouncements(types, sizes, hashes) + return types, sizes, hashes +} +func (p *TxPool) idHashKnown(tx kv.Tx, hash []byte, hashS string) (bool, error) { + if _, ok := p.unprocessedRemoteByHash[hashS]; ok { + return true, nil + } + if _, ok := p.discardReasonsLRU.Get(hashS); ok { + return true, nil + } + if _, ok := p.byHash[hashS]; ok { + return true, nil + } + if _, ok := p.minedBlobTxsByHash[hashS]; ok { + return true, nil + } + return tx.Has(kv.PoolTransaction, hash) +} +func (p *TxPool) IdHashKnown(tx kv.Tx, hash []byte) (bool, error) { + hashS := string(hash) + p.lock.Lock() + defer p.lock.Unlock() + return p.idHashKnown(tx, hash, hashS) +} +func (p *TxPool) FilterKnownIdHashes(tx kv.Tx, hashes types.Hashes) (unknownHashes types.Hashes, err error) { + p.lock.Lock() + defer p.lock.Unlock() + for i := 0; i < len(hashes); i += 32 { + known, err := p.idHashKnown(tx, hashes[i:i+32], string(hashes[i:i+32])) + if err != nil { + return unknownHashes, err + } + if !known { + unknownHashes = append(unknownHashes, hashes[i:i+32]...) + } + } + return unknownHashes, err +} + +func (p *TxPool) getUnprocessedTxn(hashS string) (*types.TxSlot, bool) { + if i, ok := p.unprocessedRemoteByHash[hashS]; ok { + return p.unprocessedRemoteTxs.Txs[i], true + } + return nil, false +} + +func (p *TxPool) GetKnownBlobTxn(tx kv.Tx, hash []byte) (*metaTx, error) { + hashS := string(hash) + p.lock.Lock() + defer p.lock.Unlock() + if mt, ok := p.minedBlobTxsByHash[hashS]; ok { + return mt, nil + } + if txn, ok := p.getUnprocessedTxn(hashS); ok { + return newMetaTx(txn, false, 0), nil + } + if mt, ok := p.byHash[hashS]; ok { + return mt, nil + } + has, err := tx.Has(kv.PoolTransaction, hash) + if err != nil { + return nil, err + } + if !has { + return nil, nil + } + + txn, err := tx.GetOne(kv.PoolTransaction, hash) + if err != nil { + return nil, err + } + parseCtx := types.NewTxParseContext(p.chainID) + parseCtx.WithSender(false) + txSlot := &types.TxSlot{} + parseCtx.ParseTransaction(txn, 0, txSlot, nil, false, true, nil) + return newMetaTx(txSlot, false, 0), nil +} + +func (p *TxPool) IsLocal(idHash []byte) bool { + hashS := string(idHash) + p.lock.Lock() + defer p.lock.Unlock() + return p.isLocalLRU.Contains(hashS) +} +func (p *TxPool) AddNewGoodPeer(peerID types.PeerID) { p.recentlyConnectedPeers.AddPeer(peerID) } +func (p *TxPool) Started() bool { return p.started.Load() } + +func (p *TxPool) best(n uint16, txs *types.TxsRlp, tx kv.Tx, onTopOf, availableGas, availableBlobGas uint64, toSkip mapset.Set[[32]byte]) (bool, int, error) { + // First wait for the corresponding block to arrive + if p.lastSeenBlock.Load() < onTopOf { + return false, 0, nil // Too early + } + + isShanghai := p.isShanghai() || p.isAgra() + best := p.pending.best + + txs.Resize(uint(cmp.Min(int(n), len(best.ms)))) + var toRemove []*metaTx + count := 0 + + for i := 0; count < int(n) && i < len(best.ms); i++ { + // if we wouldn't have enough gas for a standard transaction then quit out early + if availableGas < fixedgas.TxGas { + break + } + + mt := best.ms[i] + + if toSkip.Contains(mt.Tx.IDHash) { + continue + } + + if mt.Tx.Gas >= p.blockGasLimit.Load() { + // Skip transactions with very large gas limit + continue + } + + rlpTx, sender, isLocal, err := p.getRlpLocked(tx, mt.Tx.IDHash[:]) + if err != nil { + return false, count, err + } + if len(rlpTx) == 0 { + toRemove = append(toRemove, mt) + continue + } + + // Skip transactions that require more blob gas than is available + blobCount := uint64(len(mt.Tx.BlobHashes)) + if blobCount*fixedgas.BlobGasPerBlob > availableBlobGas { + continue + } + availableBlobGas -= blobCount * fixedgas.BlobGasPerBlob + + // make sure we have enough gas in the caller to add this transaction. + // not an exact science using intrinsic gas but as close as we could hope for at + // this stage + intrinsicGas, _ := txpoolcfg.CalcIntrinsicGas(uint64(mt.Tx.DataLen), uint64(mt.Tx.DataNonZeroLen), nil, mt.Tx.Creation, true, true, isShanghai) + if intrinsicGas > availableGas { + // we might find another TX with a low enough intrinsic gas to include so carry on + continue + } + availableGas -= intrinsicGas + + txs.Txs[count] = rlpTx + copy(txs.Senders.At(count), sender.Bytes()) + txs.IsLocal[count] = isLocal + toSkip.Add(mt.Tx.IDHash) // TODO: Is this unnecessary + count++ + } + + txs.Resize(uint(count)) + if len(toRemove) > 0 { + for _, mt := range toRemove { + p.pending.Remove(mt) + } + } + return true, count, nil +} + +func (p *TxPool) ResetYieldedStatus() { + p.lock.Lock() + defer p.lock.Unlock() + best := p.pending.best + for i := 0; i < len(best.ms); i++ { + best.ms[i].alreadyYielded = false + } +} + +func (p *TxPool) YieldBest(n uint16, txs *types.TxsRlp, tx kv.Tx, onTopOf, availableGas, availableBlobGas uint64, toSkip mapset.Set[[32]byte]) (bool, int, error) { + p.lock.Lock() + defer p.lock.Unlock() + return p.best(n, txs, tx, onTopOf, availableGas, availableBlobGas, toSkip) +} + +func (p *TxPool) PeekBest(n uint16, txs *types.TxsRlp, tx kv.Tx, onTopOf, availableGas, availableBlobGas uint64) (bool, error) { + set := mapset.NewThreadUnsafeSet[[32]byte]() + p.lock.Lock() + defer p.lock.Unlock() + onTime, _, err := p.best(n, txs, tx, onTopOf, availableGas, availableBlobGas, set) + return onTime, err +} + +func (p *TxPool) CountContent() (int, int, int) { + p.lock.Lock() + defer p.lock.Unlock() + return p.pending.Len(), p.baseFee.Len(), p.queued.Len() +} +func (p *TxPool) AddRemoteTxs(_ context.Context, newTxs types.TxSlots) { + if p.cfg.NoGossip { + // if no gossip, then + // disable adding remote transactions + // consume remote tx from fetch + return + } + + defer addRemoteTxsTimer.ObserveDuration(time.Now()) + p.lock.Lock() + defer p.lock.Unlock() + for i, txn := range newTxs.Txs { + hashS := string(txn.IDHash[:]) + _, ok := p.unprocessedRemoteByHash[hashS] + if ok { + continue + } + p.unprocessedRemoteByHash[hashS] = len(p.unprocessedRemoteTxs.Txs) + p.unprocessedRemoteTxs.Append(txn, newTxs.Senders.At(i), false) + } +} + +func toBlobs(_blobs [][]byte) []gokzg4844.Blob { + blobs := make([]gokzg4844.Blob, len(_blobs)) + for i, _blob := range _blobs { + var b gokzg4844.Blob + copy(b[:], _blob) + blobs[i] = b + } + return blobs +} + +func (p *TxPool) validateTx(txn *types.TxSlot, isLocal bool, stateCache kvcache.CacheView) txpoolcfg.DiscardReason { + isShanghai := p.isShanghai() || p.isAgra() + if isShanghai { + if txn.DataLen > fixedgas.MaxInitCodeSize { + return txpoolcfg.InitCodeTooLarge + } + } + if txn.Type == types.BlobTxType { + if !p.isCancun() { + return txpoolcfg.TypeNotActivated + } + if txn.Creation { + return txpoolcfg.CreateBlobTxn + } + blobCount := uint64(len(txn.BlobHashes)) + if blobCount == 0 { + return txpoolcfg.NoBlobs + } + if blobCount > p.maxBlobsPerBlock { + return txpoolcfg.TooManyBlobs + } + equalNumber := len(txn.BlobHashes) == len(txn.Blobs) && + len(txn.Blobs) == len(txn.Commitments) && + len(txn.Commitments) == len(txn.Proofs) + + if !equalNumber { + return txpoolcfg.UnequalBlobTxExt + } + + for i := 0; i < len(txn.Commitments); i++ { + if libkzg.KZGToVersionedHash(txn.Commitments[i]) != libkzg.VersionedHash(txn.BlobHashes[i]) { + return txpoolcfg.BlobHashCheckFail + } + } + + // https://github.com/ethereum/consensus-specs/blob/017a8495f7671f5fff2075a9bfc9238c1a0982f8/specs/deneb/polynomial-commitments.md#verify_blob_kzg_proof_batch + kzgCtx := libkzg.Ctx() + err := kzgCtx.VerifyBlobKZGProofBatch(toBlobs(txn.Blobs), txn.Commitments, txn.Proofs) + if err != nil { + return txpoolcfg.UnmatchedBlobTxExt + } + } + + // Drop non-local transactions under our own minimal accepted gas price or tip + if !isLocal && uint256.NewInt(p.cfg.MinFeeCap).Cmp(&txn.FeeCap) == 1 { + if txn.Traced { + p.logger.Info(fmt.Sprintf("TX TRACING: validateTx underpriced idHash=%x local=%t, feeCap=%d, cfg.MinFeeCap=%d", txn.IDHash, isLocal, txn.FeeCap, p.cfg.MinFeeCap)) + } + return txpoolcfg.UnderPriced + } + gas, reason := txpoolcfg.CalcIntrinsicGas(uint64(txn.DataLen), uint64(txn.DataNonZeroLen), nil, txn.Creation, true, true, isShanghai) + if txn.Traced { + p.logger.Info(fmt.Sprintf("TX TRACING: validateTx intrinsic gas idHash=%x gas=%d", txn.IDHash, gas)) + } + if reason != txpoolcfg.Success { + if txn.Traced { + p.logger.Info(fmt.Sprintf("TX TRACING: validateTx intrinsic gas calculated failed idHash=%x reason=%s", txn.IDHash, reason)) + } + return reason + } + if gas > txn.Gas { + if txn.Traced { + p.logger.Info(fmt.Sprintf("TX TRACING: validateTx intrinsic gas > txn.gas idHash=%x gas=%d, txn.gas=%d", txn.IDHash, gas, txn.Gas)) + } + return txpoolcfg.IntrinsicGas + } + if !isLocal && uint64(p.all.count(txn.SenderID)) > p.cfg.AccountSlots { + if txn.Traced { + log.Info(fmt.Sprintf("TX TRACING: validateTx marked as spamming idHash=%x slots=%d, limit=%d", txn.IDHash, p.all.count(txn.SenderID), p.cfg.AccountSlots)) + } + return txpoolcfg.Spammer + } + if !isLocal && p.all.blobCount(txn.SenderID) > p.cfg.BlobSlots { + if txn.Traced { + log.Info(fmt.Sprintf("TX TRACING: validateTx marked as spamming (too many blobs) idHash=%x slots=%d, limit=%d", txn.IDHash, p.all.count(txn.SenderID), p.cfg.AccountSlots)) + } + return txpoolcfg.Spammer + } + + // check nonce and balance + senderNonce, senderBalance, _ := p.senders.info(stateCache, txn.SenderID) + if senderNonce > txn.Nonce { + if txn.Traced { + p.logger.Info(fmt.Sprintf("TX TRACING: validateTx nonce too low idHash=%x nonce in state=%d, txn.nonce=%d", txn.IDHash, senderNonce, txn.Nonce)) + } + return txpoolcfg.NonceTooLow + } + // Transactor should have enough funds to cover the costs + total := requiredBalance(txn) + if senderBalance.Cmp(total) < 0 { + if txn.Traced { + p.logger.Info(fmt.Sprintf("TX TRACING: validateTx insufficient funds idHash=%x balance in state=%d, txn.gas*txn.tip=%d", txn.IDHash, senderBalance, total)) + } + return txpoolcfg.InsufficientFunds + } + return txpoolcfg.Success +} + +var maxUint256 = new(uint256.Int).SetAllOne() + +// Sender should have enough balance for: gasLimit x feeCap + blobGas x blobFeeCap + transferred_value +// See YP, Eq (61) in Section 6.2 "Execution" +func requiredBalance(txn *types.TxSlot) *uint256.Int { + // See https://github.com/ethereum/EIPs/pull/3594 + total := uint256.NewInt(txn.Gas) + _, overflow := total.MulOverflow(total, &txn.FeeCap) + if overflow { + return maxUint256 + } + // and https://eips.ethereum.org/EIPS/eip-4844#gas-accounting + blobCount := uint64(len(txn.BlobHashes)) + if blobCount != 0 { + maxBlobGasCost := uint256.NewInt(fixedgas.BlobGasPerBlob) + maxBlobGasCost.Mul(maxBlobGasCost, uint256.NewInt(blobCount)) + _, overflow = maxBlobGasCost.MulOverflow(maxBlobGasCost, &txn.BlobFeeCap) + if overflow { + return maxUint256 + } + _, overflow = total.AddOverflow(total, maxBlobGasCost) + if overflow { + return maxUint256 + } + } + + _, overflow = total.AddOverflow(total, &txn.Value) + if overflow { + return maxUint256 + } + return total +} + +func (p *TxPool) isShanghai() bool { + // once this flag has been set for the first time we no longer need to check the timestamp + set := p.isPostShanghai.Load() + if set { + return true + } + if p.shanghaiTime == nil { + return false + } + shanghaiTime := *p.shanghaiTime + + // a zero here means Shanghai is always active + if shanghaiTime == 0 { + p.isPostShanghai.Swap(true) + return true + } + + now := time.Now().Unix() + activated := uint64(now) >= shanghaiTime + if activated { + p.isPostShanghai.Swap(true) + } + return activated +} + +func (p *TxPool) isAgra() bool { + // once this flag has been set for the first time we no longer need to check the timestamp + set := p.isPostAgra.Load() + if set { + return true + } + if p.agraBlock == nil { + return false + } + agraBlock := *p.agraBlock + + // a zero here means Agra is always active + if agraBlock == 0 { + p.isPostAgra.Swap(true) + return true + } + + tx, err := p._chainDB.BeginRo(context.Background()) + if err != nil { + return false + } + defer tx.Rollback() + + head_block, err := chain.CurrentBlockNumber(tx) + if head_block == nil || err != nil { + return false + } + // A new block is built on top of the head block, so when the head is agraBlock-1, + // the new block should use the Agra rules. + activated := (*head_block + 1) >= agraBlock + if activated { + p.isPostAgra.Swap(true) + } + return activated +} + +func (p *TxPool) isCancun() bool { + // once this flag has been set for the first time we no longer need to check the timestamp + set := p.isPostCancun.Load() + if set { + return true + } + if p.cancunTime == nil { + return false + } + cancunTime := *p.cancunTime + + // a zero here means Cancun is always active + if cancunTime == 0 { + p.isPostCancun.Swap(true) + return true + } + + now := time.Now().Unix() + activated := uint64(now) >= cancunTime + if activated { + p.isPostCancun.Swap(true) + } + return activated +} + +// Check that that the serialized txn should not exceed a certain max size +func (p *TxPool) ValidateSerializedTxn(serializedTxn []byte) error { + const ( + // txSlotSize is used to calculate how many data slots a single transaction + // takes up based on its size. The slots are used as DoS protection, ensuring + // that validating a new transaction remains a constant operation (in reality + // O(maxslots), where max slots are 4 currently). + txSlotSize = 32 * 1024 + + // txMaxSize is the maximum size a single transaction can have. This field has + // non-trivial consequences: larger transactions are significantly harder and + // more expensive to propagate; larger transactions also take more resources + // to validate whether they fit into the pool or not. + txMaxSize = 4 * txSlotSize // 128KB + + // Should be enough for a transaction with 6 blobs + blobTxMaxSize = 800_000 + ) + txType, err := types.PeekTransactionType(serializedTxn) + if err != nil { + return err + } + maxSize := txMaxSize + if txType == types.BlobTxType { + maxSize = blobTxMaxSize + } + if len(serializedTxn) > maxSize { + return types.ErrRlpTooBig + } + return nil +} + +func (p *TxPool) validateTxs(txs *types.TxSlots, stateCache kvcache.CacheView) (reasons []txpoolcfg.DiscardReason, goodTxs types.TxSlots, err error) { + // reasons is pre-sized for direct indexing, with the default zero + // value DiscardReason of NotSet + reasons = make([]txpoolcfg.DiscardReason, len(txs.Txs)) + + if err := txs.Valid(); err != nil { + return reasons, goodTxs, err + } + + goodCount := 0 + for i, txn := range txs.Txs { + reason := p.validateTx(txn, txs.IsLocal[i], stateCache) + if reason == txpoolcfg.Success { + goodCount++ + // Success here means no DiscardReason yet, so leave it NotSet + continue + } + if reason == txpoolcfg.Spammer { + p.punishSpammer(txn.SenderID) + } + reasons[i] = reason + } + + goodTxs.Resize(uint(goodCount)) + + j := 0 + for i, txn := range txs.Txs { + if reasons[i] == txpoolcfg.NotSet { + goodTxs.Txs[j] = txn + goodTxs.IsLocal[j] = txs.IsLocal[i] + copy(goodTxs.Senders.At(j), txs.Senders.At(i)) + j++ + } + } + return reasons, goodTxs, nil +} + +// punishSpammer by drop half of it's transactions with high nonce +func (p *TxPool) punishSpammer(spammer uint64) { + count := p.all.count(spammer) / 2 + if count > 0 { + txsToDelete := make([]*metaTx, 0, count) + p.all.descend(spammer, func(mt *metaTx) bool { + txsToDelete = append(txsToDelete, mt) + count-- + return count > 0 + }) + for _, mt := range txsToDelete { + p.discardLocked(mt, txpoolcfg.Spammer) // can't call it while iterating by all + } + } +} + +func fillDiscardReasons(reasons []txpoolcfg.DiscardReason, newTxs types.TxSlots, discardReasonsLRU *simplelru.LRU[string, txpoolcfg.DiscardReason]) []txpoolcfg.DiscardReason { + for i := range reasons { + if reasons[i] != txpoolcfg.NotSet { + continue + } + reason, ok := discardReasonsLRU.Get(string(newTxs.Txs[i].IDHash[:])) + if ok { + reasons[i] = reason + } else { + reasons[i] = txpoolcfg.Success + } + } + return reasons +} + +func (p *TxPool) AddLocalTxs(ctx context.Context, newTransactions types.TxSlots, tx kv.Tx) ([]txpoolcfg.DiscardReason, error) { + coreDb, cache := p.coreDBWithCache() + coreTx, err := coreDb.BeginRo(ctx) + if err != nil { + return nil, err + } + defer coreTx.Rollback() + + cacheView, err := cache.View(ctx, coreTx) + if err != nil { + return nil, err + } + + p.lock.Lock() + defer p.lock.Unlock() + + if !p.Started() { + if err := p.fromDB(ctx, tx, coreTx); err != nil { + return nil, fmt.Errorf("AddLocalTxs: loading txs from DB: %w", err) + } + if p.started.CompareAndSwap(false, true) { + p.logger.Info("[txpool] Started") + } + } + + if err = p.senders.registerNewSenders(&newTransactions, p.logger); err != nil { + return nil, err + } + + reasons, newTxs, err := p.validateTxs(&newTransactions, cacheView) + if err != nil { + return nil, err + } + + announcements, addReasons, err := addTxs(p.lastSeenBlock.Load(), cacheView, p.senders, newTxs, + p.pendingBaseFee.Load(), p.pendingBlobFee.Load(), p.blockGasLimit.Load(), p.pending, p.baseFee, p.queued, p.all, p.byHash, p.addLocked, p.discardLocked, true, p.logger) + if err == nil { + for i, reason := range addReasons { + if reason != txpoolcfg.NotSet { + reasons[i] = reason + } + } + } else { + return nil, err + } + p.promoted.Reset() + p.promoted.AppendOther(announcements) + + reasons = fillDiscardReasons(reasons, newTxs, p.discardReasonsLRU) + for i, reason := range reasons { + if reason == txpoolcfg.Success { + txn := newTxs.Txs[i] + if txn.Traced { + p.logger.Info(fmt.Sprintf("TX TRACING: AddLocalTxs promotes idHash=%x, senderId=%d", txn.IDHash, txn.SenderID)) + } + p.promoted.Append(txn.Type, txn.Size, txn.IDHash[:]) + } + } + if p.promoted.Len() > 0 { + select { + case p.newPendingTxs <- p.promoted.Copy(): + default: + } + } + return reasons, nil +} +func (p *TxPool) coreDBWithCache() (kv.RoDB, kvcache.Cache) { + p.lock.Lock() + defer p.lock.Unlock() + return p._chainDB, p._stateCache +} +func addTxs(blockNum uint64, cacheView kvcache.CacheView, senders *sendersBatch, + newTxs types.TxSlots, pendingBaseFee, pendingBlobFee, blockGasLimit uint64, + pending *PendingPool, baseFee, queued *SubPool, + byNonce *BySenderAndNonce, byHash map[string]*metaTx, add func(*metaTx, *types.Announcements) txpoolcfg.DiscardReason, discard func(*metaTx, txpoolcfg.DiscardReason), collect bool, + logger log.Logger) (types.Announcements, []txpoolcfg.DiscardReason, error) { + if assert.Enable { + for _, txn := range newTxs.Txs { + if txn.SenderID == 0 { + panic(fmt.Errorf("senderID can't be zero")) + } + } + } + // This can be thought of a reverse operation from the one described before. + // When a block that was deemed "the best" of its height, is no longer deemed "the best", the + // transactions contained in it, are now viable for inclusion in other blocks, and therefore should + // be returned into the transaction pool. + // An interesting note here is that if the block contained any transactions local to the node, + // by being first removed from the pool (from the "local" part of it), and then re-injected, + // they effective lose their priority over the "remote" transactions. In order to prevent that, + // somehow the fact that certain transactions were local, needs to be remembered for some + // time (up to some "immutability threshold"). + sendersWithChangedState := map[uint64]struct{}{} + discardReasons := make([]txpoolcfg.DiscardReason, len(newTxs.Txs)) + announcements := types.Announcements{} + for i, txn := range newTxs.Txs { + if found, ok := byHash[string(txn.IDHash[:])]; ok { + discardReasons[i] = txpoolcfg.DuplicateHash + // In case if the transition is stuck, "poke" it to rebroadcast + if collect && newTxs.IsLocal[i] && (found.currentSubPool == PendingSubPool || found.currentSubPool == BaseFeeSubPool) { + announcements.Append(found.Tx.Type, found.Tx.Size, found.Tx.IDHash[:]) + } + continue + } + mt := newMetaTx(txn, newTxs.IsLocal[i], blockNum) + if reason := add(mt, &announcements); reason != txpoolcfg.NotSet { + discardReasons[i] = reason + continue + } + discardReasons[i] = txpoolcfg.NotSet // unnecessary + if txn.Traced { + logger.Info(fmt.Sprintf("TX TRACING: schedule sendersWithChangedState idHash=%x senderId=%d", txn.IDHash, mt.Tx.SenderID)) + } + sendersWithChangedState[mt.Tx.SenderID] = struct{}{} + } + + for senderID := range sendersWithChangedState { + nonce, balance, err := senders.info(cacheView, senderID) + if err != nil { + return announcements, discardReasons, err + } + onSenderStateChange(senderID, nonce, balance, byNonce, + blockGasLimit, pending, baseFee, queued, discard, logger) + } + + promote(pending, baseFee, queued, pendingBaseFee, pendingBlobFee, discard, &announcements, logger) + pending.EnforceBestInvariants() + + return announcements, discardReasons, nil +} + +// TODO: Looks like a copy of the above +func addTxsOnNewBlock(blockNum uint64, cacheView kvcache.CacheView, stateChanges *remote.StateChangeBatch, + senders *sendersBatch, newTxs types.TxSlots, pendingBaseFee uint64, blockGasLimit uint64, + pending *PendingPool, baseFee, queued *SubPool, + byNonce *BySenderAndNonce, byHash map[string]*metaTx, add func(*metaTx, *types.Announcements) txpoolcfg.DiscardReason, discard func(*metaTx, txpoolcfg.DiscardReason), + logger log.Logger) (types.Announcements, error) { + if assert.Enable { + for _, txn := range newTxs.Txs { + if txn.SenderID == 0 { + panic(fmt.Errorf("senderID can't be zero")) + } + } + } + // This can be thought of a reverse operation from the one described before. + // When a block that was deemed "the best" of its height, is no longer deemed "the best", the + // transactions contained in it, are now viable for inclusion in other blocks, and therefore should + // be returned into the transaction pool. + // An interesting note here is that if the block contained any transactions local to the node, + // by being first removed from the pool (from the "local" part of it), and then re-injected, + // they effective lose their priority over the "remote" transactions. In order to prevent that, + // somehow the fact that certain transactions were local, needs to be remembered for some + // time (up to some "immutability threshold"). + sendersWithChangedState := map[uint64]struct{}{} + announcements := types.Announcements{} + for i, txn := range newTxs.Txs { + if _, ok := byHash[string(txn.IDHash[:])]; ok { + continue + } + mt := newMetaTx(txn, newTxs.IsLocal[i], blockNum) + if reason := add(mt, &announcements); reason != txpoolcfg.NotSet { + discard(mt, reason) + continue + } + sendersWithChangedState[mt.Tx.SenderID] = struct{}{} + } + // add senders changed in state to `sendersWithChangedState` list + for _, changesList := range stateChanges.ChangeBatch { + for _, change := range changesList.Changes { + switch change.Action { + case remote.Action_UPSERT, remote.Action_UPSERT_CODE: + if change.Incarnation > 0 { + continue + } + addr := gointerfaces.ConvertH160toAddress(change.Address) + id, ok := senders.getID(addr) + if !ok { + continue + } + sendersWithChangedState[id] = struct{}{} + } + } + } + + for senderID := range sendersWithChangedState { + nonce, balance, err := senders.info(cacheView, senderID) + if err != nil { + return announcements, err + } + onSenderStateChange(senderID, nonce, balance, byNonce, + blockGasLimit, pending, baseFee, queued, discard, logger) + } + + return announcements, nil +} + +func (p *TxPool) setBaseFee(baseFee uint64) (uint64, bool) { + changed := false + if baseFee > 0 { + changed = baseFee != p.pendingBaseFee.Load() + p.pendingBaseFee.Store(baseFee) + } + return p.pendingBaseFee.Load(), changed +} + +func (p *TxPool) setBlobFee(blobFee uint64) { + if blobFee > 0 { + p.pendingBaseFee.Store(blobFee) + } +} + +func (p *TxPool) addLocked(mt *metaTx, announcements *types.Announcements) txpoolcfg.DiscardReason { + // Insert to pending pool, if pool doesn't have txn with same Nonce and bigger Tip + found := p.all.get(mt.Tx.SenderID, mt.Tx.Nonce) + if found != nil { + if found.Tx.Type == types.BlobTxType && mt.Tx.Type != types.BlobTxType { + return txpoolcfg.BlobTxReplace + } + priceBump := p.cfg.PriceBump + + //Blob txn threshold checks for replace txn + if mt.Tx.Type == types.BlobTxType { + priceBump = p.cfg.BlobPriceBump + blobFeeThreshold, overflow := (&uint256.Int{}).MulDivOverflow( + &found.Tx.BlobFeeCap, + uint256.NewInt(100+priceBump), + uint256.NewInt(100), + ) + if mt.Tx.BlobFeeCap.Lt(blobFeeThreshold) && !overflow { + if bytes.Equal(found.Tx.IDHash[:], mt.Tx.IDHash[:]) { + return txpoolcfg.NotSet + } + return txpoolcfg.ReplaceUnderpriced // TODO: This is the same as NotReplaced + } + } + + //Regular txn threshold checks + tipThreshold := uint256.NewInt(0) + tipThreshold = tipThreshold.Mul(&found.Tx.Tip, uint256.NewInt(100+priceBump)) + tipThreshold.Div(tipThreshold, u256.N100) + feecapThreshold := uint256.NewInt(0) + feecapThreshold.Mul(&found.Tx.FeeCap, uint256.NewInt(100+priceBump)) + feecapThreshold.Div(feecapThreshold, u256.N100) + if mt.Tx.Tip.Cmp(tipThreshold) < 0 || mt.Tx.FeeCap.Cmp(feecapThreshold) < 0 { + // Both tip and feecap need to be larger than previously to replace the transaction + // In case if the transition is stuck, "poke" it to rebroadcast + if mt.subPool&IsLocal != 0 && (found.currentSubPool == PendingSubPool || found.currentSubPool == BaseFeeSubPool) { + announcements.Append(found.Tx.Type, found.Tx.Size, found.Tx.IDHash[:]) + } + if bytes.Equal(found.Tx.IDHash[:], mt.Tx.IDHash[:]) { + return txpoolcfg.NotSet + } + return txpoolcfg.NotReplaced + } + + switch found.currentSubPool { + case PendingSubPool: + p.pending.Remove(found) + case BaseFeeSubPool: + p.baseFee.Remove(found) + case QueuedSubPool: + p.queued.Remove(found) + default: + //already removed + } + + p.discardLocked(found, txpoolcfg.ReplacedByHigherTip) + } + + // Don't add blob tx to queued if it's less than current pending blob base fee + if mt.Tx.Type == types.BlobTxType && mt.Tx.BlobFeeCap.LtUint64(p.pendingBlobFee.Load()) { + return txpoolcfg.FeeTooLow + } + + hashStr := string(mt.Tx.IDHash[:]) + p.byHash[hashStr] = mt + + if replaced := p.all.replaceOrInsert(mt); replaced != nil { + if assert.Enable { + panic("must never happen") + } + } + + if mt.subPool&IsLocal != 0 { + p.isLocalLRU.Add(hashStr, struct{}{}) + } + // All transactions are first added to the queued pool and then immediately promoted from there if required + p.queued.Add(mt, p.logger) + // Remove from mined cache as we are now "resurrecting" it to a sub-pool + p.deleteMinedBlobTxn(hashStr) + return txpoolcfg.NotSet +} + +// dropping transaction from all sub-structures and from db +// Important: don't call it while iterating by all +func (p *TxPool) discardLocked(mt *metaTx, reason txpoolcfg.DiscardReason) { + hashStr := string(mt.Tx.IDHash[:]) + delete(p.byHash, hashStr) + p.deletedTxs = append(p.deletedTxs, mt) + p.all.delete(mt) + p.discardReasonsLRU.Add(hashStr, reason) +} + +// Cache recently mined blobs in anticipation of reorg, delete finalized ones +func (p *TxPool) processMinedFinalizedBlobs(coreTx kv.Tx, minedTxs []*types.TxSlot, finalizedBlock uint64) error { + p.lastFinalizedBlock.Store(finalizedBlock) + // Remove blobs in the finalized block and older, loop through all entries + for l := len(p.minedBlobTxsByBlock); l > 0 && finalizedBlock > 0; l-- { + // delete individual hashes + for _, mt := range p.minedBlobTxsByBlock[finalizedBlock] { + delete(p.minedBlobTxsByHash, string(mt.Tx.IDHash[:])) + } + // delete the map entry for this block num + delete(p.minedBlobTxsByBlock, finalizedBlock) + // move on to older blocks, if present + finalizedBlock-- + } + + // Add mined blobs + minedBlock := p.lastSeenBlock.Load() + p.minedBlobTxsByBlock[minedBlock] = make([]*metaTx, 0) + for _, txn := range minedTxs { + if txn.Type == types.BlobTxType { + mt := &metaTx{Tx: txn, minedBlockNum: minedBlock} + p.minedBlobTxsByBlock[minedBlock] = append(p.minedBlobTxsByBlock[minedBlock], mt) + mt.bestIndex = len(p.minedBlobTxsByBlock[minedBlock]) - 1 + p.minedBlobTxsByHash[string(txn.IDHash[:])] = mt + } + } + return nil +} + +// Delete individual hash entries from minedBlobTxs cache +func (p *TxPool) deleteMinedBlobTxn(hash string) { + mt, exists := p.minedBlobTxsByHash[hash] + if !exists { + return + } + l := len(p.minedBlobTxsByBlock[mt.minedBlockNum]) + if l > 1 { + p.minedBlobTxsByBlock[mt.minedBlockNum][mt.bestIndex] = p.minedBlobTxsByBlock[mt.minedBlockNum][l-1] + } + p.minedBlobTxsByBlock[mt.minedBlockNum] = p.minedBlobTxsByBlock[mt.minedBlockNum][:l-1] + delete(p.minedBlobTxsByHash, hash) +} + +func (p *TxPool) NonceFromAddress(addr [20]byte) (nonce uint64, inPool bool) { + p.lock.Lock() + defer p.lock.Unlock() + senderID, found := p.senders.getID(addr) + if !found { + return 0, false + } + return p.all.nonce(senderID) +} + +// removeMined - apply new highest block (or batch of blocks) +// +// 1. New best block arrives, which potentially changes the balance and the nonce of some senders. +// We use senderIds data structure to find relevant senderId values, and then use senders data structure to +// modify state_balance and state_nonce, potentially remove some elements (if transaction with some nonce is +// included into a block), and finally, walk over the transaction records and update SubPool fields depending on +// the actual presence of nonce gaps and what the balance is. +func removeMined(byNonce *BySenderAndNonce, minedTxs []*types.TxSlot, pending *PendingPool, baseFee, queued *SubPool, discard func(*metaTx, txpoolcfg.DiscardReason), logger log.Logger) error { + noncesToRemove := map[uint64]uint64{} + for _, txn := range minedTxs { + nonce, ok := noncesToRemove[txn.SenderID] + if !ok || txn.Nonce > nonce { + noncesToRemove[txn.SenderID] = txn.Nonce + } + } + + var toDel []*metaTx // can't delete items while iterate them + for senderID, nonce := range noncesToRemove { + //if sender.all.Len() > 0 { + //logger.Debug("[txpool] removing mined", "senderID", tx.senderID, "sender.all.len()", sender.all.Len()) + //} + // delete mined transactions from everywhere + byNonce.ascend(senderID, func(mt *metaTx) bool { + //logger.Debug("[txpool] removing mined, cmp nonces", "tx.nonce", it.metaTx.Tx.nonce, "sender.nonce", sender.nonce) + if mt.Tx.Nonce > nonce { + return false + } + if mt.Tx.Traced { + logger.Info(fmt.Sprintf("TX TRACING: removeMined idHash=%x senderId=%d, currentSubPool=%s", mt.Tx.IDHash, mt.Tx.SenderID, mt.currentSubPool)) + } + toDel = append(toDel, mt) + // del from sub-pool + switch mt.currentSubPool { + case PendingSubPool: + pending.Remove(mt) + case BaseFeeSubPool: + baseFee.Remove(mt) + case QueuedSubPool: + queued.Remove(mt) + default: + //already removed + } + return true + }) + + for _, mt := range toDel { + discard(mt, txpoolcfg.Mined) + } + toDel = toDel[:0] + } + return nil +} + +// onSenderStateChange is the function that recalculates ephemeral fields of transactions and determines +// which sub pool they will need to go to. Since this depends on other transactions from the same sender by with lower +// nonces, and also affect other transactions from the same sender with higher nonce, it loops through all transactions +// for a given senderID +func onSenderStateChange(senderID uint64, senderNonce uint64, senderBalance uint256.Int, byNonce *BySenderAndNonce, + blockGasLimit uint64, pending *PendingPool, baseFee, queued *SubPool, discard func(*metaTx, txpoolcfg.DiscardReason), logger log.Logger) { + noGapsNonce := senderNonce + cumulativeRequiredBalance := uint256.NewInt(0) + minFeeCap := uint256.NewInt(0).SetAllOne() + minTip := uint64(math.MaxUint64) + var toDel []*metaTx // can't delete items while iterate them + byNonce.ascend(senderID, func(mt *metaTx) bool { + if mt.Tx.Traced { + logger.Info(fmt.Sprintf("TX TRACING: onSenderStateChange loop iteration idHash=%x senderID=%d, senderNonce=%d, txn.nonce=%d, currentSubPool=%s", mt.Tx.IDHash, senderID, senderNonce, mt.Tx.Nonce, mt.currentSubPool)) + } + deleteAndContinueReasonLog := "" + if senderNonce > mt.Tx.Nonce { + deleteAndContinueReasonLog = "low nonce" + } else if mt.Tx.Nonce != noGapsNonce && mt.Tx.Type == types.BlobTxType { // Discard nonce-gapped blob txns + deleteAndContinueReasonLog = "nonce-gapped blob txn" + } + if deleteAndContinueReasonLog != "" { + if mt.Tx.Traced { + logger.Info(fmt.Sprintf("TX TRACING: removing due to %s for idHash=%x senderID=%d, senderNonce=%d, txn.nonce=%d, currentSubPool=%s", deleteAndContinueReasonLog, mt.Tx.IDHash, senderID, senderNonce, mt.Tx.Nonce, mt.currentSubPool)) + } + // del from sub-pool + switch mt.currentSubPool { + case PendingSubPool: + pending.Remove(mt) + case BaseFeeSubPool: + baseFee.Remove(mt) + case QueuedSubPool: + queued.Remove(mt) + default: + //already removed + } + toDel = append(toDel, mt) + return true + } + + if minFeeCap.Gt(&mt.Tx.FeeCap) { + *minFeeCap = mt.Tx.FeeCap + } + mt.minFeeCap = *minFeeCap + if mt.Tx.Tip.IsUint64() { + minTip = cmp.Min(minTip, mt.Tx.Tip.Uint64()) + } + mt.minTip = minTip + + mt.nonceDistance = 0 + if mt.Tx.Nonce > senderNonce { // no uint underflow + mt.nonceDistance = mt.Tx.Nonce - senderNonce + } + + needBalance := requiredBalance(mt.Tx) + + // 2. Absence of nonce gaps. Set to 1 for transactions whose nonce is N, state nonce for + // the sender is M, and there are transactions for all nonces between M and N from the same + // sender. Set to 0 is the transaction's nonce is divided from the state nonce by one or more nonce gaps. + mt.subPool &^= NoNonceGaps + if noGapsNonce == mt.Tx.Nonce { + mt.subPool |= NoNonceGaps + noGapsNonce++ + } + + // 3. Sufficient balance for gas. Set to 1 if the balance of sender's account in the + // state is B, nonce of the sender in the state is M, nonce of the transaction is N, and the + // sum of feeCap x gasLimit + transferred_value of all transactions from this sender with + // nonces N+1 ... M is no more than B. Set to 0 otherwise. In other words, this bit is + // set if there is currently a guarantee that the transaction and all its required prior + // transactions will be able to pay for gas. + mt.subPool &^= EnoughBalance + mt.cumulativeBalanceDistance = math.MaxUint64 + if mt.Tx.Nonce >= senderNonce { + cumulativeRequiredBalance = cumulativeRequiredBalance.Add(cumulativeRequiredBalance, needBalance) // already deleted all transactions with nonce <= sender.nonce + if senderBalance.Gt(cumulativeRequiredBalance) || senderBalance.Eq(cumulativeRequiredBalance) { + mt.subPool |= EnoughBalance + } else { + if cumulativeRequiredBalance.IsUint64() && senderBalance.IsUint64() { + mt.cumulativeBalanceDistance = cumulativeRequiredBalance.Uint64() - senderBalance.Uint64() + } + } + } + + mt.subPool &^= NotTooMuchGas + if mt.Tx.Gas < blockGasLimit { + mt.subPool |= NotTooMuchGas + } + + if mt.Tx.Traced { + logger.Info(fmt.Sprintf("TX TRACING: onSenderStateChange loop iteration idHash=%x senderId=%d subPool=%b", mt.Tx.IDHash, mt.Tx.SenderID, mt.subPool)) + } + + // Some fields of mt might have changed, need to fix the invariants in the subpool best and worst queues + switch mt.currentSubPool { + case PendingSubPool: + pending.Updated(mt) + case BaseFeeSubPool: + baseFee.Updated(mt) + case QueuedSubPool: + queued.Updated(mt) + } + return true + }) + for _, mt := range toDel { + discard(mt, txpoolcfg.NonceTooLow) + } +} + +// promote reasserts invariants of the subpool and returns the list of transactions that ended up +// being promoted to the pending or basefee pool, for re-broadcasting +func promote(pending *PendingPool, baseFee, queued *SubPool, pendingBaseFee uint64, pendingBlobFee uint64, discard func(*metaTx, txpoolcfg.DiscardReason), announcements *types.Announcements, + logger log.Logger) { + // Demote worst transactions that do not qualify for pending sub pool anymore, to other sub pools, or discard + for worst := pending.Worst(); pending.Len() > 0 && (worst.subPool < BaseFeePoolBits || worst.minFeeCap.LtUint64(pendingBaseFee) || (worst.Tx.Type == types.BlobTxType && worst.Tx.BlobFeeCap.LtUint64(pendingBlobFee))); worst = pending.Worst() { + if worst.subPool >= BaseFeePoolBits { + tx := pending.PopWorst() + announcements.Append(tx.Tx.Type, tx.Tx.Size, tx.Tx.IDHash[:]) + baseFee.Add(tx, logger) + } else { + queued.Add(pending.PopWorst(), logger) + } + } + + // Promote best transactions from base fee pool to pending pool while they qualify + for best := baseFee.Best(); baseFee.Len() > 0 && best.subPool >= BaseFeePoolBits && best.minFeeCap.CmpUint64(pendingBaseFee) >= 0 && (best.Tx.Type != types.BlobTxType || best.Tx.BlobFeeCap.CmpUint64(pendingBlobFee) >= 0); best = baseFee.Best() { + tx := baseFee.PopBest() + announcements.Append(tx.Tx.Type, tx.Tx.Size, tx.Tx.IDHash[:]) + pending.Add(tx, logger) + } + + // Demote worst transactions that do not qualify for base fee pool anymore, to queued sub pool, or discard + for worst := baseFee.Worst(); baseFee.Len() > 0 && worst.subPool < BaseFeePoolBits; worst = baseFee.Worst() { + queued.Add(baseFee.PopWorst(), logger) + } + + // Promote best transactions from the queued pool to either pending or base fee pool, while they qualify + for best := queued.Best(); queued.Len() > 0 && best.subPool >= BaseFeePoolBits; best = queued.Best() { + if best.minFeeCap.Cmp(uint256.NewInt(pendingBaseFee)) >= 0 { + tx := queued.PopBest() + announcements.Append(tx.Tx.Type, tx.Tx.Size, tx.Tx.IDHash[:]) + pending.Add(tx, logger) + } else { + baseFee.Add(queued.PopBest(), logger) + } + } + + // Discard worst transactions from the queued sub pool if they do not qualify + // + + // Discard worst transactions from pending pool until it is within capacity limit + for pending.Len() > pending.limit { + discard(pending.PopWorst(), txpoolcfg.PendingPoolOverflow) + } + + // Discard worst transactions from pending sub pool until it is within capacity limits + for baseFee.Len() > baseFee.limit { + discard(baseFee.PopWorst(), txpoolcfg.BaseFeePoolOverflow) + } + + // Discard worst transactions from the queued sub pool until it is within its capacity limits + for _ = queued.Worst(); queued.Len() > queued.limit; _ = queued.Worst() { + discard(queued.PopWorst(), txpoolcfg.QueuedPoolOverflow) + } +} + +// txMaxBroadcastSize is the max size of a transaction that will be broadcasted. +// All transactions with a higher size will be announced and need to be fetched +// by the peer. +const txMaxBroadcastSize = 4 * 1024 + +// MainLoop - does: +// send pending byHash to p2p: +// - new byHash +// - all pooled byHash to recently connected peers +// - all local pooled byHash to random peers periodically +// +// promote/demote transactions +// reorgs +func MainLoop(ctx context.Context, db kv.RwDB, coreDB kv.RoDB, p *TxPool, newTxs chan types.Announcements, send *Send, newSlotsStreams *NewSlotsStreams, notifyMiningAboutNewSlots func()) { + syncToNewPeersEvery := time.NewTicker(p.cfg.SyncToNewPeersEvery) + defer syncToNewPeersEvery.Stop() + processRemoteTxsEvery := time.NewTicker(p.cfg.ProcessRemoteTxsEvery) + defer processRemoteTxsEvery.Stop() + commitEvery := time.NewTicker(p.cfg.CommitEvery) + defer commitEvery.Stop() + logEvery := time.NewTicker(p.cfg.LogEvery) + defer logEvery.Stop() + + for { + select { + case <-ctx.Done(): + _, _ = p.flush(ctx, db) + return + case <-logEvery.C: + p.logStats() + case <-processRemoteTxsEvery.C: + if !p.Started() { + continue + } + + if err := p.processRemoteTxs(ctx); err != nil { + if grpcutil.IsRetryLater(err) || grpcutil.IsEndOfStream(err) { + time.Sleep(3 * time.Second) + continue + } + + p.logger.Error("[txpool] process batch remote txs", "err", err) + } + case <-commitEvery.C: + if db != nil && p.Started() { + t := time.Now() + written, err := p.flush(ctx, db) + if err != nil { + p.logger.Error("[txpool] flush is local history", "err", err) + continue + } + writeToDBBytesCounter.SetUint64(written) + p.logger.Debug("[txpool] Commit", "written_kb", written/1024, "in", time.Since(t)) + } + case announcements := <-newTxs: + go func() { + for i := 0; i < 16; i++ { // drain more events from channel, then merge and dedup them + select { + case a := <-newTxs: + announcements.AppendOther(a) + continue + default: + } + break + } + if announcements.Len() == 0 { + return + } + defer propagateNewTxsTimer.ObserveDuration(time.Now()) + + announcements = announcements.DedupCopy() + + notifyMiningAboutNewSlots() + + if p.cfg.NoGossip { + // drain newTxs for emptying newTx channel + // newTx channel will be filled only with local transactions + // early return to avoid outbound transaction propagation + log.Debug("[txpool] tx gossip disabled", "state", "drain new transactions") + return + } + + var localTxTypes []byte + var localTxSizes []uint32 + var localTxHashes types.Hashes + var localTxRlps [][]byte + var remoteTxTypes []byte + var remoteTxSizes []uint32 + var remoteTxHashes types.Hashes + var remoteTxRlps [][]byte + var broadCastedHashes types.Hashes + slotsRlp := make([][]byte, 0, announcements.Len()) + + if err := db.View(ctx, func(tx kv.Tx) error { + for i := 0; i < announcements.Len(); i++ { + t, size, hash := announcements.At(i) + slotRlp, err := p.GetRlp(tx, hash) + if err != nil { + return err + } + if len(slotRlp) == 0 { + continue + } + + // Empty rlp can happen if a transaction we want to broadcast has just been mined, for example + slotsRlp = append(slotsRlp, slotRlp) + if p.IsLocal(hash) { + localTxTypes = append(localTxTypes, t) + localTxSizes = append(localTxSizes, size) + localTxHashes = append(localTxHashes, hash...) + + // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844 + if t != types.BlobTxType { + localTxRlps = append(localTxRlps, slotRlp) + broadCastedHashes = append(broadCastedHashes, hash...) + } + } else { + remoteTxTypes = append(remoteTxTypes, t) + remoteTxSizes = append(remoteTxSizes, size) + remoteTxHashes = append(remoteTxHashes, hash...) + + // "Nodes MUST NOT automatically broadcast blob transactions to their peers" - EIP-4844 + if t != types.BlobTxType && len(slotRlp) < txMaxBroadcastSize { + remoteTxRlps = append(remoteTxRlps, slotRlp) + } + } + } + return nil + }); err != nil { + p.logger.Error("[txpool] collect info to propagate", "err", err) + return + } + if newSlotsStreams != nil { + // TODO(eip-4844) What is this for? Is it OK to broadcast blob transactions? + newSlotsStreams.Broadcast(&proto_txpool.OnAddReply{RplTxs: slotsRlp}, p.logger) + } + + // broadcast local transactions + const localTxsBroadcastMaxPeers uint64 = 10 + txSentTo := send.BroadcastPooledTxs(localTxRlps, localTxsBroadcastMaxPeers) + for i, peer := range txSentTo { + p.logger.Info("Local tx broadcasted", "txHash", hex.EncodeToString(broadCastedHashes.At(i)), "to peer", peer) + } + hashSentTo := send.AnnouncePooledTxs(localTxTypes, localTxSizes, localTxHashes, localTxsBroadcastMaxPeers*2) + for i := 0; i < localTxHashes.Len(); i++ { + hash := localTxHashes.At(i) + p.logger.Info("local tx announced", "tx_hash", hex.EncodeToString(hash), "to peer", hashSentTo[i], "baseFee", p.pendingBaseFee.Load()) + } + + // broadcast remote transactions + const remoteTxsBroadcastMaxPeers uint64 = 3 + send.BroadcastPooledTxs(remoteTxRlps, remoteTxsBroadcastMaxPeers) + send.AnnouncePooledTxs(remoteTxTypes, remoteTxSizes, remoteTxHashes, remoteTxsBroadcastMaxPeers*2) + }() + case <-syncToNewPeersEvery.C: // new peer + newPeers := p.recentlyConnectedPeers.GetAndClean() + if len(newPeers) == 0 { + continue + } + if p.cfg.NoGossip { + // avoid transaction gossiping for new peers + log.Debug("[txpool] tx gossip disabled", "state", "sync new peers") + continue + } + t := time.Now() + var hashes types.Hashes + var types []byte + var sizes []uint32 + types, sizes, hashes = p.AppendAllAnnouncements(types, sizes, hashes[:0]) + go send.PropagatePooledTxsToPeersList(newPeers, types, sizes, hashes) + propagateToNewPeerTimer.ObserveDuration(t) + } + } +} + +func (p *TxPool) flushNoFsync(ctx context.Context, db kv.RwDB) (written uint64, err error) { + p.lock.Lock() + defer p.lock.Unlock() + //it's important that write db tx is done inside lock, to make last writes visible for all read operations + if err := db.UpdateNosync(ctx, func(tx kv.RwTx) error { + err = p.flushLocked(tx) + if err != nil { + return err + } + written, _, err = tx.(*mdbx.MdbxTx).SpaceDirty() + if err != nil { + return err + } + return nil + }); err != nil { + return 0, err + } + return written, nil +} + +func (p *TxPool) flush(ctx context.Context, db kv.RwDB) (written uint64, err error) { + defer writeToDBTimer.ObserveDuration(time.Now()) + // 1. get global lock on txpool and flush it to db, without fsync (to release lock asap) + // 2. then fsync db without txpool lock + written, err = p.flushNoFsync(ctx, db) + if err != nil { + return 0, err + } + + // fsync + if err := db.Update(ctx, func(tx kv.RwTx) error { return nil }); err != nil { + return 0, err + } + return written, nil +} +func (p *TxPool) flushLocked(tx kv.RwTx) (err error) { + for i, mt := range p.deletedTxs { + id := mt.Tx.SenderID + idHash := mt.Tx.IDHash[:] + if !p.all.hasTxs(id) { + addr, ok := p.senders.senderID2Addr[id] + if ok { + delete(p.senders.senderID2Addr, id) + delete(p.senders.senderIDs, addr) + } + } + //fmt.Printf("del:%d,%d,%d\n", mt.Tx.senderID, mt.Tx.nonce, mt.Tx.tip) + has, err := tx.Has(kv.PoolTransaction, idHash) + if err != nil { + return err + } + if has { + if err := tx.Delete(kv.PoolTransaction, idHash); err != nil { + return err + } + } + p.deletedTxs[i] = nil // for gc + } + + txHashes := p.isLocalLRU.Keys() + encID := make([]byte, 8) + if err := tx.ClearBucket(kv.RecentLocalTransaction); err != nil { + return err + } + for i, txHash := range txHashes { + binary.BigEndian.PutUint64(encID, uint64(i)) + if err := tx.Append(kv.RecentLocalTransaction, encID, []byte(txHash)); err != nil { + return err + } + } + + v := make([]byte, 0, 1024) + for txHash, metaTx := range p.byHash { + if metaTx.Tx.Rlp == nil { + continue + } + v = common.EnsureEnoughSize(v, 20+len(metaTx.Tx.Rlp)) + + addr, ok := p.senders.senderID2Addr[metaTx.Tx.SenderID] + if !ok { + p.logger.Warn("[txpool] flush: sender address not found by ID", "senderID", metaTx.Tx.SenderID) + continue + } + + copy(v[:20], addr.Bytes()) + copy(v[20:], metaTx.Tx.Rlp) + + has, err := tx.Has(kv.PoolTransaction, []byte(txHash)) + if err != nil { + return err + } + if !has { + if err := tx.Put(kv.PoolTransaction, []byte(txHash), v); err != nil { + return err + } + } + metaTx.Tx.Rlp = nil + } + + binary.BigEndian.PutUint64(encID, p.pendingBaseFee.Load()) + if err := tx.Put(kv.PoolInfo, PoolPendingBaseFeeKey, encID); err != nil { + return err + } + binary.BigEndian.PutUint64(encID, p.pendingBlobFee.Load()) + if err := tx.Put(kv.PoolInfo, PoolPendingBlobFeeKey, encID); err != nil { + return err + } + if err := PutLastSeenBlock(tx, p.lastSeenBlock.Load(), encID); err != nil { + return err + } + + // clean - in-memory data structure as later as possible - because if during this Tx will happen error, + // DB will stay consistent but some in-memory structures may be already cleaned, and retry will not work + // failed write transaction must not create side-effects + p.deletedTxs = p.deletedTxs[:0] + return nil +} + +func (p *TxPool) fromDBWithLock(ctx context.Context, tx kv.Tx, coreTx kv.Tx) error { + p.lock.Lock() + defer p.lock.Unlock() + return p.fromDB(ctx, tx, coreTx) +} +func (p *TxPool) fromDB(ctx context.Context, tx kv.Tx, coreTx kv.Tx) error { + if p.lastSeenBlock.Load() == 0 { + lastSeenBlock, err := LastSeenBlock(tx) + if err != nil { + return err + } + p.lastSeenBlock.Store(lastSeenBlock) + } + + cacheView, err := p._stateCache.View(ctx, coreTx) + if err != nil { + return err + } + it, err := tx.Range(kv.RecentLocalTransaction, nil, nil) + if err != nil { + return err + } + for it.HasNext() { + _, v, err := it.Next() + if err != nil { + return err + } + p.isLocalLRU.Add(string(v), struct{}{}) + } + + txs := types.TxSlots{} + parseCtx := types.NewTxParseContext(p.chainID) + parseCtx.WithSender(false) + + i := 0 + it, err = tx.Range(kv.PoolTransaction, nil, nil) + if err != nil { + return err + } + for it.HasNext() { + k, v, err := it.Next() + if err != nil { + return err + } + addr, txRlp := *(*[20]byte)(v[:20]), v[20:] + txn := &types.TxSlot{} + + // TODO(eip-4844) ensure wrappedWithBlobs when transactions are saved to the DB + _, err = parseCtx.ParseTransaction(txRlp, 0, txn, nil, false /* hasEnvelope */, true /*wrappedWithBlobs*/, nil) + if err != nil { + err = fmt.Errorf("err: %w, rlp: %x", err, txRlp) + p.logger.Warn("[txpool] fromDB: parseTransaction", "err", err) + continue + } + txn.Rlp = nil // means that we don't need store it in db anymore + + txn.SenderID, txn.Traced = p.senders.getOrCreateID(addr, p.logger) + binary.BigEndian.Uint64(v) // TODO - unnecessary line, remove + + isLocalTx := p.isLocalLRU.Contains(string(k)) + + if reason := p.validateTx(txn, isLocalTx, cacheView); reason != txpoolcfg.NotSet && reason != txpoolcfg.Success { + return nil // TODO: Clarify - if one of the txs has the wrong reason, no pooled txs! + } + txs.Resize(uint(i + 1)) + txs.Txs[i] = txn + txs.IsLocal[i] = isLocalTx + copy(txs.Senders.At(i), addr[:]) + i++ + } + + var pendingBaseFee uint64 + { + v, err := tx.GetOne(kv.PoolInfo, PoolPendingBaseFeeKey) + if err != nil { + return err + } + if len(v) > 0 { + pendingBaseFee = binary.BigEndian.Uint64(v) + } + } + var pendingBlobFee uint64 = 1 // MIN_BLOB_GAS_PRICE A/EIP-4844 + { + v, err := tx.GetOne(kv.PoolInfo, PoolPendingBlobFeeKey) + if err != nil { + return err + } + if len(v) > 0 { + pendingBlobFee = binary.BigEndian.Uint64(v) + } + } + + err = p.senders.registerNewSenders(&txs, p.logger) + if err != nil { + return err + } + if _, _, err := addTxs(p.lastSeenBlock.Load(), cacheView, p.senders, txs, + pendingBaseFee, pendingBlobFee, math.MaxUint64 /* blockGasLimit */, p.pending, p.baseFee, p.queued, p.all, p.byHash, p.addLocked, p.discardLocked, false, p.logger); err != nil { + return err + } + p.pendingBaseFee.Store(pendingBaseFee) + p.pendingBlobFee.Store(pendingBlobFee) + return nil +} +func LastSeenBlock(tx kv.Getter) (uint64, error) { + v, err := tx.GetOne(kv.PoolInfo, PoolLastSeenBlockKey) + if err != nil { + return 0, err + } + if len(v) == 0 { + return 0, nil + } + return binary.BigEndian.Uint64(v), nil +} +func PutLastSeenBlock(tx kv.Putter, n uint64, buf []byte) error { + buf = common.EnsureEnoughSize(buf, 8) + binary.BigEndian.PutUint64(buf, n) + err := tx.Put(kv.PoolInfo, PoolLastSeenBlockKey, buf) + if err != nil { + return err + } + return nil +} +func ChainConfig(tx kv.Getter) (*chain.Config, error) { + v, err := tx.GetOne(kv.PoolInfo, PoolChainConfigKey) + if err != nil { + return nil, err + } + if len(v) == 0 { + return nil, nil + } + var config chain.Config + if err := json.Unmarshal(v, &config); err != nil { + return nil, fmt.Errorf("invalid chain config JSON in pool db: %w", err) + } + return &config, nil +} +func PutChainConfig(tx kv.Putter, cc *chain.Config, buf []byte) error { + wr := bytes.NewBuffer(buf) + if err := json.NewEncoder(wr).Encode(cc); err != nil { + return fmt.Errorf("invalid chain config JSON in pool db: %w", err) + } + if err := tx.Put(kv.PoolInfo, PoolChainConfigKey, wr.Bytes()); err != nil { + return err + } + return nil +} + +// nolint +func (p *TxPool) printDebug(prefix string) { + fmt.Printf("%s.pool.byHash\n", prefix) + for _, j := range p.byHash { + fmt.Printf("\tsenderID=%d, nonce=%d, tip=%d\n", j.Tx.SenderID, j.Tx.Nonce, j.Tx.Tip) + } + fmt.Printf("%s.pool.queues.len: %d,%d,%d\n", prefix, p.pending.Len(), p.baseFee.Len(), p.queued.Len()) + for _, mt := range p.pending.best.ms { + mt.Tx.PrintDebug(fmt.Sprintf("%s.pending: %b,%d,%d,%d", prefix, mt.subPool, mt.Tx.SenderID, mt.Tx.Nonce, mt.Tx.Tip)) + } + for _, mt := range p.baseFee.best.ms { + mt.Tx.PrintDebug(fmt.Sprintf("%s.baseFee : %b,%d,%d,%d", prefix, mt.subPool, mt.Tx.SenderID, mt.Tx.Nonce, mt.Tx.Tip)) + } + for _, mt := range p.queued.best.ms { + mt.Tx.PrintDebug(fmt.Sprintf("%s.queued : %b,%d,%d,%d", prefix, mt.subPool, mt.Tx.SenderID, mt.Tx.Nonce, mt.Tx.Tip)) + } +} +func (p *TxPool) logStats() { + if !p.started.Load() { + //p.logger.Info("[txpool] Not started yet, waiting for new blocks...") + return + } + + p.lock.Lock() + defer p.lock.Unlock() + + var m runtime.MemStats + dbg.ReadMemStats(&m) + ctx := []interface{}{ + //"block", p.lastSeenBlock.Load(), + "pending", p.pending.Len(), + "baseFee", p.baseFee.Len(), + "queued", p.queued.Len(), + } + cacheKeys := p._stateCache.Len() + if cacheKeys > 0 { + ctx = append(ctx, "cache_keys", cacheKeys) + } + ctx = append(ctx, "alloc", common.ByteCount(m.Alloc), "sys", common.ByteCount(m.Sys)) + p.logger.Info("[txpool] stat", ctx...) + pendingSubCounter.SetInt(p.pending.Len()) + basefeeSubCounter.SetInt(p.baseFee.Len()) + queuedSubCounter.SetInt(p.queued.Len()) +} + +// Deprecated need switch to streaming-like +func (p *TxPool) deprecatedForEach(_ context.Context, f func(rlp []byte, sender common.Address, t SubPoolType), tx kv.Tx) { + p.lock.Lock() + defer p.lock.Unlock() + p.all.ascendAll(func(mt *metaTx) bool { + slot := mt.Tx + slotRlp := slot.Rlp + if slot.Rlp == nil { + v, err := tx.GetOne(kv.PoolTransaction, slot.IDHash[:]) + if err != nil { + p.logger.Warn("[txpool] foreach: get tx from db", "err", err) + return true + } + if v == nil { + p.logger.Warn("[txpool] foreach: tx not found in db") + return true + } + slotRlp = v[20:] + } + if sender, found := p.senders.senderID2Addr[slot.SenderID]; found { + f(slotRlp, sender, mt.currentSubPool) + } + return true + }) +} + +var PoolChainConfigKey = []byte("chain_config") +var PoolLastSeenBlockKey = []byte("last_seen_block") +var PoolPendingBaseFeeKey = []byte("pending_base_fee") +var PoolPendingBlobFeeKey = []byte("pending_blob_fee") + +// recentlyConnectedPeers does buffer IDs of recently connected good peers +// then sync of pooled Transaction can happen to all of then at once +// DoS protection and performance saving +// it doesn't track if peer disconnected, it's fine +type recentlyConnectedPeers struct { + peers []types.PeerID + lock sync.Mutex +} + +func (l *recentlyConnectedPeers) AddPeer(p types.PeerID) { + l.lock.Lock() + defer l.lock.Unlock() + l.peers = append(l.peers, p) +} + +func (l *recentlyConnectedPeers) GetAndClean() []types.PeerID { + l.lock.Lock() + defer l.lock.Unlock() + peers := l.peers + l.peers = nil + return peers +} + +// nolint +func (sc *sendersBatch) printDebug(prefix string) { + fmt.Printf("%s.sendersBatch.sender\n", prefix) + //for i, j := range sc.senderInfo { + // fmt.Printf("\tid=%d,nonce=%d,balance=%d\n", i, j.nonce, j.balance.Uint64()) + //} +} + +// sendersBatch stores in-memory senders-related objects - which are different from DB (updated/dirty) +// flushing to db periodically. it doesn't play as read-cache (because db is small and memory-mapped - doesn't need cache) +// non thread-safe +type sendersBatch struct { + senderIDs map[common.Address]uint64 + senderID2Addr map[uint64]common.Address + tracedSenders map[common.Address]struct{} + senderID uint64 +} + +func newSendersCache(tracedSenders map[common.Address]struct{}) *sendersBatch { + return &sendersBatch{senderIDs: map[common.Address]uint64{}, senderID2Addr: map[uint64]common.Address{}, tracedSenders: tracedSenders} +} + +func (sc *sendersBatch) getID(addr common.Address) (uint64, bool) { + id, ok := sc.senderIDs[addr] + return id, ok +} +func (sc *sendersBatch) getOrCreateID(addr common.Address, logger log.Logger) (uint64, bool) { + _, traced := sc.tracedSenders[addr] + id, ok := sc.senderIDs[addr] + if !ok { + sc.senderID++ + id = sc.senderID + sc.senderIDs[addr] = id + sc.senderID2Addr[id] = addr + if traced { + logger.Info(fmt.Sprintf("TX TRACING: allocated senderID %d to sender %x", id, addr)) + } + } + return id, traced +} +func (sc *sendersBatch) info(cacheView kvcache.CacheView, id uint64) (nonce uint64, balance uint256.Int, err error) { + addr, ok := sc.senderID2Addr[id] + if !ok { + panic("must not happen") + } + encoded, err := cacheView.Get(addr.Bytes()) + if err != nil { + return 0, emptySender.balance, err + } + if len(encoded) == 0 { + return emptySender.nonce, emptySender.balance, nil + } + nonce, balance, err = types.DecodeSender(encoded) + if err != nil { + return 0, emptySender.balance, err + } + return nonce, balance, nil +} + +func (sc *sendersBatch) registerNewSenders(newTxs *types.TxSlots, logger log.Logger) (err error) { + for i, txn := range newTxs.Txs { + txn.SenderID, txn.Traced = sc.getOrCreateID(newTxs.Senders.AddressAt(i), logger) + } + return nil +} +func (sc *sendersBatch) onNewBlock(stateChanges *remote.StateChangeBatch, unwindTxs, minedTxs types.TxSlots, logger log.Logger) error { + for _, diff := range stateChanges.ChangeBatch { + for _, change := range diff.Changes { // merge state changes + addrB := gointerfaces.ConvertH160toAddress(change.Address) + sc.getOrCreateID(addrB, logger) + } + + for i, txn := range unwindTxs.Txs { + txn.SenderID, txn.Traced = sc.getOrCreateID(unwindTxs.Senders.AddressAt(i), logger) + } + + for i, txn := range minedTxs.Txs { + txn.SenderID, txn.Traced = sc.getOrCreateID(minedTxs.Senders.AddressAt(i), logger) + } + } + return nil +} + +// BySenderAndNonce - designed to perform most expensive operation in TxPool: +// "recalculate all ephemeral fields of all transactions" by algo +// - for all senders - iterate over all transactions in nonce growing order +// +// Performances decisions: +// - All senders stored inside 1 large BTree - because iterate over 1 BTree is faster than over map[senderId]BTree +// - sortByNonce used as non-pointer wrapper - because iterate over BTree of pointers is 2x slower +type BySenderAndNonce struct { + tree *btree.BTreeG[*metaTx] + search *metaTx + senderIDTxnCount map[uint64]int // count of sender's txns in the pool - may differ from nonce + senderIDBlobCount map[uint64]uint64 // count of sender's total number of blobs in the pool +} + +func (b *BySenderAndNonce) nonce(senderID uint64) (nonce uint64, ok bool) { + s := b.search + s.Tx.SenderID = senderID + s.Tx.Nonce = math.MaxUint64 + + b.tree.DescendLessOrEqual(s, func(mt *metaTx) bool { + if mt.Tx.SenderID == senderID { + nonce = mt.Tx.Nonce + ok = true + } + return false + }) + return nonce, ok +} +func (b *BySenderAndNonce) ascendAll(f func(*metaTx) bool) { + b.tree.Ascend(func(mt *metaTx) bool { + return f(mt) + }) +} +func (b *BySenderAndNonce) ascend(senderID uint64, f func(*metaTx) bool) { + s := b.search + s.Tx.SenderID = senderID + s.Tx.Nonce = 0 + b.tree.AscendGreaterOrEqual(s, func(mt *metaTx) bool { + if mt.Tx.SenderID != senderID { + return false + } + return f(mt) + }) +} +func (b *BySenderAndNonce) descend(senderID uint64, f func(*metaTx) bool) { + s := b.search + s.Tx.SenderID = senderID + s.Tx.Nonce = math.MaxUint64 + b.tree.DescendLessOrEqual(s, func(mt *metaTx) bool { + if mt.Tx.SenderID != senderID { + return false + } + return f(mt) + }) +} +func (b *BySenderAndNonce) count(senderID uint64) int { + return b.senderIDTxnCount[senderID] +} +func (b *BySenderAndNonce) blobCount(senderID uint64) uint64 { + return b.senderIDBlobCount[senderID] +} +func (b *BySenderAndNonce) hasTxs(senderID uint64) bool { + has := false + b.ascend(senderID, func(*metaTx) bool { + has = true + return false + }) + return has +} +func (b *BySenderAndNonce) get(senderID, txNonce uint64) *metaTx { + s := b.search + s.Tx.SenderID = senderID + s.Tx.Nonce = txNonce + if found, ok := b.tree.Get(s); ok { + return found + } + return nil +} + +// nolint +func (b *BySenderAndNonce) has(mt *metaTx) bool { + return b.tree.Has(mt) +} +func (b *BySenderAndNonce) delete(mt *metaTx) { + if _, ok := b.tree.Delete(mt); ok { + senderID := mt.Tx.SenderID + count := b.senderIDTxnCount[senderID] + if count > 1 { + b.senderIDTxnCount[senderID] = count - 1 + } else { + delete(b.senderIDTxnCount, senderID) + } + + if mt.Tx.Type == types.BlobTxType && mt.Tx.Blobs != nil { + accBlobCount := b.senderIDBlobCount[senderID] + txnBlobCount := len(mt.Tx.Blobs) + if txnBlobCount > 1 { + b.senderIDBlobCount[senderID] = accBlobCount - uint64(txnBlobCount) + } else { + delete(b.senderIDBlobCount, senderID) + } + } + } +} +func (b *BySenderAndNonce) replaceOrInsert(mt *metaTx) *metaTx { + it, ok := b.tree.ReplaceOrInsert(mt) + if ok { + return it + } + b.senderIDTxnCount[mt.Tx.SenderID]++ + if mt.Tx.Type == types.BlobTxType && mt.Tx.Blobs != nil { + b.senderIDBlobCount[mt.Tx.SenderID] += uint64(len(mt.Tx.Blobs)) + } + return nil +} + +// PendingPool - is different from other pools - it's best is Slice instead of Heap +// It's more expensive to maintain "slice sort" invariant, but it allow do cheap copy of +// pending.best slice for mining (because we consider txs and metaTx are immutable) +type PendingPool struct { + best *bestSlice + worst *WorstQueue + limit int + t SubPoolType +} + +func NewPendingSubPool(t SubPoolType, limit int) *PendingPool { + return &PendingPool{limit: limit, t: t, best: &bestSlice{ms: []*metaTx{}}, worst: &WorstQueue{ms: []*metaTx{}}} +} + +// bestSlice - is similar to best queue, but uses a linear structure with O(n log n) sort complexity and +// it maintains element.bestIndex field +type bestSlice struct { + ms []*metaTx + pendingBaseFee uint64 +} + +func (s *bestSlice) Len() int { return len(s.ms) } +func (s *bestSlice) Swap(i, j int) { + s.ms[i], s.ms[j] = s.ms[j], s.ms[i] + s.ms[i].bestIndex, s.ms[j].bestIndex = i, j +} +func (s *bestSlice) Less(i, j int) bool { + return s.ms[i].better(s.ms[j], *uint256.NewInt(s.pendingBaseFee)) +} +func (s *bestSlice) UnsafeRemove(i *metaTx) { + s.Swap(i.bestIndex, len(s.ms)-1) + s.ms[len(s.ms)-1].bestIndex = -1 + s.ms[len(s.ms)-1] = nil + s.ms = s.ms[:len(s.ms)-1] +} +func (s *bestSlice) UnsafeAdd(i *metaTx) { + i.bestIndex = len(s.ms) + s.ms = append(s.ms, i) +} + +func (p *PendingPool) EnforceWorstInvariants() { + heap.Init(p.worst) +} +func (p *PendingPool) EnforceBestInvariants() { + sort.Sort(p.best) +} + +func (p *PendingPool) Best() *metaTx { //nolint + if len(p.best.ms) == 0 { + return nil + } + return p.best.ms[0] +} +func (p *PendingPool) Worst() *metaTx { //nolint + if len(p.worst.ms) == 0 { + return nil + } + return (p.worst.ms)[0] +} +func (p *PendingPool) PopWorst() *metaTx { //nolint + i := heap.Pop(p.worst).(*metaTx) + if i.bestIndex >= 0 { + p.best.UnsafeRemove(i) + } + return i +} +func (p *PendingPool) Updated(mt *metaTx) { + heap.Fix(p.worst, mt.worstIndex) +} +func (p *PendingPool) Len() int { return len(p.best.ms) } + +func (p *PendingPool) Remove(i *metaTx) { + if i.worstIndex >= 0 { + heap.Remove(p.worst, i.worstIndex) + } + if i.bestIndex >= 0 { + p.best.UnsafeRemove(i) + } + i.currentSubPool = 0 +} + +func (p *PendingPool) Add(i *metaTx, logger log.Logger) { + if i.Tx.Traced { + logger.Info(fmt.Sprintf("TX TRACING: moved to subpool %s, IdHash=%x, sender=%d", p.t, i.Tx.IDHash, i.Tx.SenderID)) + } + i.currentSubPool = p.t + heap.Push(p.worst, i) + p.best.UnsafeAdd(i) +} +func (p *PendingPool) DebugPrint(prefix string) { + for i, it := range p.best.ms { + fmt.Printf("%s.best: %d, %d, %d,%d\n", prefix, i, it.subPool, it.bestIndex, it.Tx.Nonce) + } + for i, it := range p.worst.ms { + fmt.Printf("%s.worst: %d, %d, %d,%d\n", prefix, i, it.subPool, it.worstIndex, it.Tx.Nonce) + } +} + +type SubPool struct { + best *BestQueue + worst *WorstQueue + limit int + t SubPoolType +} + +func NewSubPool(t SubPoolType, limit int) *SubPool { + return &SubPool{limit: limit, t: t, best: &BestQueue{}, worst: &WorstQueue{}} +} + +func (p *SubPool) EnforceInvariants() { + heap.Init(p.worst) + heap.Init(p.best) +} +func (p *SubPool) Best() *metaTx { //nolint + if len(p.best.ms) == 0 { + return nil + } + return p.best.ms[0] +} +func (p *SubPool) Worst() *metaTx { //nolint + if len(p.worst.ms) == 0 { + return nil + } + return p.worst.ms[0] +} +func (p *SubPool) PopBest() *metaTx { //nolint + i := heap.Pop(p.best).(*metaTx) + heap.Remove(p.worst, i.worstIndex) + return i +} +func (p *SubPool) PopWorst() *metaTx { //nolint + i := heap.Pop(p.worst).(*metaTx) + heap.Remove(p.best, i.bestIndex) + return i +} +func (p *SubPool) Len() int { return p.best.Len() } +func (p *SubPool) Add(i *metaTx, logger log.Logger) { + if i.Tx.Traced { + logger.Info(fmt.Sprintf("TX TRACING: moved to subpool %s, IdHash=%x, sender=%d", p.t, i.Tx.IDHash, i.Tx.SenderID)) + } + i.currentSubPool = p.t + heap.Push(p.best, i) + heap.Push(p.worst, i) +} + +func (p *SubPool) Remove(i *metaTx) { + heap.Remove(p.best, i.bestIndex) + heap.Remove(p.worst, i.worstIndex) + i.currentSubPool = 0 +} + +func (p *SubPool) Updated(i *metaTx) { + heap.Fix(p.best, i.bestIndex) + heap.Fix(p.worst, i.worstIndex) +} + +func (p *SubPool) DebugPrint(prefix string) { + for i, it := range p.best.ms { + fmt.Printf("%s.best: %d, %d, %d\n", prefix, i, it.subPool, it.bestIndex) + } + for i, it := range p.worst.ms { + fmt.Printf("%s.worst: %d, %d, %d\n", prefix, i, it.subPool, it.worstIndex) + } +} + +type BestQueue struct { + ms []*metaTx + pendingBastFee uint64 +} + +// Returns true if the txn "mt" is better than the parameter txn "than" +// it first compares the subpool markers of the two meta txns, then, +// (since they have the same subpool marker, and thus same pool) +// depending on the pool - pending (P), basefee (B), queued (Q) - +// it compares the effective tip (for P), nonceDistance (for both P,Q) +// minFeeCap (for B), and cumulative balance distance (for P, Q) +func (mt *metaTx) better(than *metaTx, pendingBaseFee uint256.Int) bool { + subPool := mt.subPool + thanSubPool := than.subPool + if mt.minFeeCap.Cmp(&pendingBaseFee) >= 0 { + subPool |= EnoughFeeCapBlock + } + if than.minFeeCap.Cmp(&pendingBaseFee) >= 0 { + thanSubPool |= EnoughFeeCapBlock + } + if subPool != thanSubPool { + return subPool > thanSubPool + } + + switch mt.currentSubPool { + case PendingSubPool: + var effectiveTip, thanEffectiveTip uint256.Int + if mt.minFeeCap.Cmp(&pendingBaseFee) >= 0 { + difference := uint256.NewInt(0) + difference.Sub(&mt.minFeeCap, &pendingBaseFee) + if difference.Cmp(uint256.NewInt(mt.minTip)) <= 0 { + effectiveTip = *difference + } else { + effectiveTip = *uint256.NewInt(mt.minTip) + } + } + if than.minFeeCap.Cmp(&pendingBaseFee) >= 0 { + difference := uint256.NewInt(0) + difference.Sub(&than.minFeeCap, &pendingBaseFee) + if difference.Cmp(uint256.NewInt(than.minTip)) <= 0 { + thanEffectiveTip = *difference + } else { + thanEffectiveTip = *uint256.NewInt(than.minTip) + } + } + if effectiveTip.Cmp(&thanEffectiveTip) != 0 { + return effectiveTip.Cmp(&thanEffectiveTip) > 0 + } + // Compare nonce and cumulative balance. Just as a side note, it doesn't + // matter if they're from same sender or not because we're comparing + // nonce distance of the sender from state's nonce and not the actual + // value of nonce. + if mt.nonceDistance != than.nonceDistance { + return mt.nonceDistance < than.nonceDistance + } + if mt.cumulativeBalanceDistance != than.cumulativeBalanceDistance { + return mt.cumulativeBalanceDistance < than.cumulativeBalanceDistance + } + case BaseFeeSubPool: + if mt.minFeeCap.Cmp(&than.minFeeCap) != 0 { + return mt.minFeeCap.Cmp(&than.minFeeCap) > 0 + } + case QueuedSubPool: + if mt.nonceDistance != than.nonceDistance { + return mt.nonceDistance < than.nonceDistance + } + if mt.cumulativeBalanceDistance != than.cumulativeBalanceDistance { + return mt.cumulativeBalanceDistance < than.cumulativeBalanceDistance + } + } + return mt.timestamp < than.timestamp +} + +func (mt *metaTx) worse(than *metaTx, pendingBaseFee uint256.Int) bool { + subPool := mt.subPool + thanSubPool := than.subPool + if mt.minFeeCap.Cmp(&pendingBaseFee) >= 0 { + subPool |= EnoughFeeCapBlock + } + if than.minFeeCap.Cmp(&pendingBaseFee) >= 0 { + thanSubPool |= EnoughFeeCapBlock + } + if subPool != thanSubPool { + return subPool < thanSubPool + } + + switch mt.currentSubPool { + case PendingSubPool: + if mt.minFeeCap != than.minFeeCap { + return mt.minFeeCap.Cmp(&than.minFeeCap) < 0 + } + if mt.nonceDistance != than.nonceDistance { + return mt.nonceDistance > than.nonceDistance + } + if mt.cumulativeBalanceDistance != than.cumulativeBalanceDistance { + return mt.cumulativeBalanceDistance > than.cumulativeBalanceDistance + } + case BaseFeeSubPool, QueuedSubPool: + if mt.nonceDistance != than.nonceDistance { + return mt.nonceDistance > than.nonceDistance + } + if mt.cumulativeBalanceDistance != than.cumulativeBalanceDistance { + return mt.cumulativeBalanceDistance > than.cumulativeBalanceDistance + } + } + return mt.timestamp > than.timestamp +} + +func (p BestQueue) Len() int { return len(p.ms) } +func (p BestQueue) Less(i, j int) bool { + return p.ms[i].better(p.ms[j], *uint256.NewInt(p.pendingBastFee)) +} +func (p BestQueue) Swap(i, j int) { + p.ms[i], p.ms[j] = p.ms[j], p.ms[i] + p.ms[i].bestIndex = i + p.ms[j].bestIndex = j +} +func (p *BestQueue) Push(x interface{}) { + n := len(p.ms) + item := x.(*metaTx) + item.bestIndex = n + p.ms = append(p.ms, item) +} + +func (p *BestQueue) Pop() interface{} { + old := p.ms + n := len(old) + item := old[n-1] + old[n-1] = nil // avoid memory leak + item.bestIndex = -1 // for safety + item.currentSubPool = 0 // for safety + p.ms = old[0 : n-1] + return item +} + +type WorstQueue struct { + ms []*metaTx + pendingBaseFee uint64 +} + +func (p WorstQueue) Len() int { return len(p.ms) } +func (p WorstQueue) Less(i, j int) bool { + return p.ms[i].worse(p.ms[j], *uint256.NewInt(p.pendingBaseFee)) +} +func (p WorstQueue) Swap(i, j int) { + p.ms[i], p.ms[j] = p.ms[j], p.ms[i] + p.ms[i].worstIndex = i + p.ms[j].worstIndex = j +} +func (p *WorstQueue) Push(x interface{}) { + n := len(p.ms) + item := x.(*metaTx) + item.worstIndex = n + p.ms = append(p.ms, x.(*metaTx)) +} +func (p *WorstQueue) Pop() interface{} { + old := p.ms + n := len(old) + item := old[n-1] + old[n-1] = nil // avoid memory leak + item.worstIndex = -1 // for safety + item.currentSubPool = 0 // for safety + p.ms = old[0 : n-1] + return item +} diff --git a/erigon-lib/txpool/pool_fuzz_test.go b/erigon-lib/txpool/pool_fuzz_test.go new file mode 100644 index 00000000000..e81d316910a --- /dev/null +++ b/erigon-lib/txpool/pool_fuzz_test.go @@ -0,0 +1,581 @@ +//go:build !nofuzz + +package txpool + +import ( + "bytes" + "context" + "encoding/binary" + "testing" + + "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/fixedgas" + "github.com/ledgerwatch/erigon-lib/common/u256" + "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/kvcache" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon-lib/rlp" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" + "github.com/ledgerwatch/erigon-lib/types" +) + +// https://go.dev/doc/fuzz/ +// golang.org/s/draft-fuzzing-design +//go doc testing +//go doc testing.F +//go doc testing.F.AddRemoteTxs +//go doc testing.F.Fuzz + +// go test -trimpath -v -fuzz=Fuzz -fuzztime=10s ./txpool + +func init() { + log.Root().SetHandler(log.LvlFilterHandler(log.LvlWarn, log.StderrHandler)) +} + +/* + func FuzzTwoQueue(f *testing.F) { + f.Add([]uint8{0b1000, 0b0101, 0b0111}) + f.Add([]uint8{0b0101, 0b1110, 0b1101, 0b0001}) + f.Fuzz(func(t *testing.T, in []uint8) { + t.Parallel() + assert := assert.New(t) + { + sub := NewPendingSubPool(PendingSubPool, 1024) + for _, i := range in { + sub.Add(&metaTx{subPool: SubPoolMarker(i & 0b1111), Tx: &TxSlot{nonce: 1, value: *uint256.NewInt(1)}}) + } + sub.EnforceWorstInvariants() + sub.EnforceBestInvariants() + assert.Equal(len(in), sub.best.Len()) + assert.Equal(len(in), sub.worst.Len()) + assert.Equal(len(in), sub.Len()) + + var prevBest *uint8 + for i := range sub.best.ms { + current := uint8(sub.best.ms[i].subPool) + if prevBest != nil { + assert.LessOrEqual(current, *prevBest) + } + assert.Equal(i, sub.best.ms[i].bestIndex) + prevBest = ¤t + } + } + { + sub := NewSubPool(BaseFeeSubPool, 1024) + for _, i := range in { + sub.Add(&metaTx{subPool: SubPoolMarker(i & 0b1111), Tx: &TxSlot{nonce: 1, value: *uint256.NewInt(1)}}) + } + assert.Equal(len(in), sub.best.Len()) + assert.Equal(len(in), sub.worst.Len()) + assert.Equal(len(in), sub.Len()) + + for i := range sub.best.ms { + assert.Equal(i, (sub.best.ms)[i].bestIndex) + } + for i := range sub.worst.ms { + assert.Equal(i, (sub.worst.ms)[i].worstIndex) + } + + var prevBest *uint8 + i := sub.Len() + for sub.Len() > 0 { + best := uint8(sub.Best().subPool) + assert.Equal(best, uint8(sub.PopBest().subPool)) + if prevBest != nil { + assert.LessOrEqual(best, *prevBest) + } + prevBest = &best + i-- + } + assert.Zero(i) + assert.Zero(sub.Len()) + assert.Zero(sub.best.Len()) + assert.Zero(sub.worst.Len()) + } + + { + sub := NewSubPool(QueuedSubPool, 1024) + for _, i := range in { + sub.Add(&metaTx{subPool: SubPoolMarker(i & 0b1111), Tx: &TxSlot{nonce: 1, value: *uint256.NewInt(1)}}) + } + var prev *uint8 + i := sub.Len() + for sub.Len() > 0 { + worst := uint8(sub.Worst().subPool) + assert.Equal(worst, uint8(sub.PopWorst().subPool)) + if prev != nil { + assert.GreaterOrEqual(worst, *prev) + } + prev = &worst + i-- + } + assert.Zero(i) + assert.Zero(sub.Len()) + assert.Zero(sub.best.Len()) + assert.Zero(sub.worst.Len()) + } + }) + } +*/ +func u64Slice(in []byte) ([]uint64, bool) { + if len(in) < 8 { + return nil, false + } + res := make([]uint64, len(in)/8) + for i := 0; i < len(res); i++ { + res[i] = binary.BigEndian.Uint64(in[i*8:]) + } + return res, true +} +func u8Slice(in []byte) ([]uint64, bool) { + if len(in) < 1 { + return nil, false + } + res := make([]uint64, len(in)) + for i := 0; i < len(res); i++ { + res[i] = uint64(in[i] % 32) + } + return res, true +} +func u256Slice(in []byte) ([]uint256.Int, bool) { + if len(in) < 1 { + return nil, false + } + res := make([]uint256.Int, len(in)) + for i := 0; i < len(res); i++ { + res[i].SetUint64(uint64(in[i] % 32)) + } + return res, true +} + +func parseSenders(in []byte) (nonces []uint64, balances []uint256.Int) { + for i := 0; i < len(in)-(1+1-1); i += 1 + 1 { + nonce := uint64(in[i] % 8) + if nonce == 0 { + nonce = 1 + } + nonces = append(nonces, nonce) + balances = append(balances, *uint256.NewInt(uint64(in[i+1]))) + } + return +} + +func poolsFromFuzzBytes(rawTxNonce, rawValues, rawTips, rawFeeCap, rawSender []byte) (sendersInfo map[uint64]*sender, senderIDs map[common.Address]uint64, txs types.TxSlots, ok bool) { + if len(rawTxNonce) < 1 || len(rawValues) < 1 || len(rawTips) < 1 || len(rawFeeCap) < 1 || len(rawSender) < 1+1 { + return nil, nil, txs, false + } + senderNonce, senderBalance := parseSenders(rawSender) + txNonce, ok := u8Slice(rawTxNonce) + if !ok { + return nil, nil, txs, false + } + feeCap, ok := u8Slice(rawFeeCap) + if !ok { + return nil, nil, txs, false + } + tips, ok := u8Slice(rawTips) + if !ok { + return nil, nil, txs, false + } + values, ok := u256Slice(rawValues) + if !ok { + return nil, nil, txs, false + } + + sendersInfo = map[uint64]*sender{} + senderIDs = map[common.Address]uint64{} + senders := make(types.Addresses, 20*len(senderNonce)) + for i := 0; i < len(senderNonce); i++ { + senderID := uint64(i + 1) //non-zero expected + binary.BigEndian.PutUint64(senders.At(i%senders.Len()), senderID) + sendersInfo[senderID] = newSender(senderNonce[i], senderBalance[i%len(senderBalance)]) + senderIDs[senders.AddressAt(i%senders.Len())] = senderID + } + txs.Txs = make([]*types.TxSlot, len(txNonce)) + parseCtx := types.NewTxParseContext(*u256.N1) + parseCtx.WithSender(false) + for i := range txNonce { + txs.Txs[i] = &types.TxSlot{ + Nonce: txNonce[i], + Value: values[i%len(values)], + Tip: *uint256.NewInt(tips[i%len(tips)]), + FeeCap: *uint256.NewInt(feeCap[i%len(feeCap)]), + } + txRlp := fakeRlpTx(txs.Txs[i], senders.At(i%senders.Len())) + _, err := parseCtx.ParseTransaction(txRlp, 0, txs.Txs[i], nil, false /* hasEnvelope */, true /* wrappedWithBlobs */, nil) + if err != nil { + panic(err) + } + txs.Senders = append(txs.Senders, senders.At(i%senders.Len())...) + txs.IsLocal = append(txs.IsLocal, true) + } + + return sendersInfo, senderIDs, txs, true +} + +// fakeRlpTx add anything what identifying tx to `data` to make hash unique +func fakeRlpTx(slot *types.TxSlot, data []byte) []byte { + dataLen := rlp.U64Len(1) + //chainID + rlp.U64Len(slot.Nonce) + rlp.U256Len(&slot.Tip) + rlp.U256Len(&slot.FeeCap) + + rlp.U64Len(0) + // gas + rlp.StringLen([]byte{}) + // dest addr + rlp.U256Len(&slot.Value) + + rlp.StringLen(data) + // data + rlp.ListPrefixLen(0) + //access list + +3 // v,r,s + + buf := make([]byte, 1+rlp.ListPrefixLen(dataLen)+dataLen) + buf[0] = types.DynamicFeeTxType + p := 1 + p += rlp.EncodeListPrefix(dataLen, buf[p:]) + p += rlp.EncodeU64(1, buf[p:]) //chainID + p += rlp.EncodeU64(slot.Nonce, buf[p:]) + bb := bytes.NewBuffer(buf[p:p]) + _ = slot.Tip.EncodeRLP(bb) + p += rlp.U256Len(&slot.Tip) + bb = bytes.NewBuffer(buf[p:p]) + _ = slot.FeeCap.EncodeRLP(bb) + p += rlp.U256Len(&slot.FeeCap) + p += rlp.EncodeU64(0, buf[p:]) //gas + p += rlp.EncodeString([]byte{}, buf[p:]) //destrination addr + bb = bytes.NewBuffer(buf[p:p]) + _ = slot.Value.EncodeRLP(bb) + p += rlp.U256Len(&slot.Value) + p += rlp.EncodeString(data, buf[p:]) //data + p += rlp.EncodeListPrefix(0, buf[p:]) // access list + p += rlp.EncodeU64(1, buf[p:]) //v + p += rlp.EncodeU64(1, buf[p:]) //r + p += rlp.EncodeU64(1, buf[p:]) //s + _ = p + return buf[:] +} + +func iterateSubPoolUnordered(subPool *SubPool, f func(tx *metaTx)) { + for i := 0; i < subPool.best.Len(); i++ { + f((subPool.best.ms)[i]) + } +} + +func splitDataset(in types.TxSlots) (types.TxSlots, types.TxSlots, types.TxSlots, types.TxSlots) { + p1, p2, p3, p4 := types.TxSlots{}, types.TxSlots{}, types.TxSlots{}, types.TxSlots{} + l := len(in.Txs) / 4 + + p1.Txs = in.Txs[:l] + p1.IsLocal = in.IsLocal[:l] + p1.Senders = in.Senders[:l*20] + + p2.Txs = in.Txs[l : 2*l] + p2.IsLocal = in.IsLocal[l : 2*l] + p2.Senders = in.Senders[l*20 : 2*l*20] + + p3.Txs = in.Txs[2*l : 3*l] + p3.IsLocal = in.IsLocal[2*l : 3*l] + p3.Senders = in.Senders[2*l*20 : 3*l*20] + + p4.Txs = in.Txs[3*l : 4*l] + p4.IsLocal = in.IsLocal[3*l : 4*l] + p4.Senders = in.Senders[3*l*20 : 4*l*20] + + return p1, p2, p3, p4 +} + +func FuzzOnNewBlocks(f *testing.F) { + var u64 = [1 * 4]byte{1} + var senderAddr = [1 + 1 + 1]byte{1} + f.Add(u64[:], u64[:], u64[:], u64[:], senderAddr[:], uint8(12)) + f.Add(u64[:], u64[:], u64[:], u64[:], senderAddr[:], uint8(14)) + f.Add(u64[:], u64[:], u64[:], u64[:], senderAddr[:], uint8(123)) + f.Fuzz(func(t *testing.T, txNonce, values, tips, feeCap, senderAddr []byte, pendingBaseFee1 uint8) { + //t.Parallel() + ctx := context.Background() + + pendingBaseFee := uint64(pendingBaseFee1%16 + 1) + if pendingBaseFee == 0 { + t.Skip() + } + senders, senderIDs, txs, ok := poolsFromFuzzBytes(txNonce, values, tips, feeCap, senderAddr) + if !ok { + t.Skip() + } + + assert, require := assert.New(t), require.New(t) + assert.NoError(txs.Valid()) + + var prevHashes types.Hashes + ch := make(chan types.Announcements, 100) + db, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t) + + cfg := txpoolcfg.DefaultConfig + sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + assert.NoError(err) + pool.senders.senderIDs = senderIDs + for addr, id := range senderIDs { + pool.senders.senderID2Addr[id] = addr + } + pool.senders.senderID = uint64(len(senderIDs)) + check := func(unwindTxs, minedTxs types.TxSlots, msg string) { + pending, baseFee, queued := pool.pending, pool.baseFee, pool.queued + best, worst := pending.Best(), pending.Worst() + assert.LessOrEqual(pending.Len(), cfg.PendingSubPoolLimit) + assert.False(worst != nil && best == nil, msg) + assert.False(worst == nil && best != nil, msg) + if worst != nil && worst.subPool < 0b1110 { + t.Fatalf("pending worst too small %b", worst.subPool) + } + for _, tx := range pending.best.ms { + i := tx.Tx + if tx.subPool&NoNonceGaps > 0 { + assert.GreaterOrEqual(i.Nonce, senders[i.SenderID].nonce, msg, i.SenderID) + } + if tx.subPool&EnoughFeeCapBlock > 0 { + assert.LessOrEqual(pendingBaseFee, tx.Tx.FeeCap, msg) + } + + // side data structures must have all txs + assert.True(pool.all.has(tx), msg) + _, ok = pool.byHash[string(i.IDHash[:])] + assert.True(ok) + + // pools can't have more then 1 tx with same SenderID+Nonce + iterateSubPoolUnordered(baseFee, func(mtx2 *metaTx) { + tx2 := mtx2.Tx + assert.False(tx2.SenderID == i.SenderID && tx2.Nonce == i.Nonce, msg) + }) + iterateSubPoolUnordered(queued, func(mtx2 *metaTx) { + tx2 := mtx2.Tx + assert.False(tx2.SenderID == i.SenderID && tx2.Nonce == i.Nonce, msg) + }) + } + + best, worst = baseFee.Best(), baseFee.Worst() + + assert.False(worst != nil && best == nil, msg) + assert.False(worst == nil && best != nil, msg) + assert.LessOrEqual(baseFee.Len(), cfg.BaseFeeSubPoolLimit, msg) + if worst != nil && worst.subPool < 0b1100 { + t.Fatalf("baseFee worst too small %b", worst.subPool) + } + iterateSubPoolUnordered(baseFee, func(tx *metaTx) { + i := tx.Tx + if tx.subPool&NoNonceGaps > 0 { + assert.GreaterOrEqual(i.Nonce, senders[i.SenderID].nonce, msg) + } + if tx.subPool&EnoughFeeCapBlock > 0 { + assert.LessOrEqual(pendingBaseFee, tx.Tx.FeeCap, msg) + } + + assert.True(pool.all.has(tx), msg) + _, ok = pool.byHash[string(i.IDHash[:])] + assert.True(ok, msg) + }) + + best, worst = queued.Best(), queued.Worst() + assert.LessOrEqual(queued.Len(), cfg.QueuedSubPoolLimit) + assert.False(worst != nil && best == nil, msg) + assert.False(worst == nil && best != nil, msg) + iterateSubPoolUnordered(queued, func(tx *metaTx) { + i := tx.Tx + if tx.subPool&NoNonceGaps > 0 { + assert.GreaterOrEqual(i.Nonce, senders[i.SenderID].nonce, msg, i.SenderID, senders[i.SenderID].nonce) + } + if tx.subPool&EnoughFeeCapBlock > 0 { + assert.LessOrEqual(pendingBaseFee, tx.Tx.FeeCap, msg) + } + + assert.True(pool.all.has(tx), "%s, %d, %x", msg, tx.Tx.Nonce, tx.Tx.IDHash) + _, ok = pool.byHash[string(i.IDHash[:])] + assert.True(ok, msg) + assert.GreaterOrEqual(tx.Tx.FeeCap, pool.cfg.MinFeeCap) + }) + + // all txs in side data structures must be in some queue + for _, txn := range pool.byHash { + require.True(txn.bestIndex >= 0, msg) + assert.True(txn.worstIndex >= 0, msg) + } + for id := range senders { + //assert.True(senders[i].all.Len() > 0) + pool.all.ascend(id, func(mt *metaTx) bool { + require.True(mt.worstIndex >= 0, msg) + assert.True(mt.bestIndex >= 0, msg) + return true + }) + } + + // mined txs must be removed + for i := range minedTxs.Txs { + _, ok = pool.byHash[string(minedTxs.Txs[i].IDHash[:])] + assert.False(ok, msg) + } + + if queued.Len() > 3 { + // Less func must be transitive (choose 3 semi-random elements) + i := queued.Len() - 1 + if queued.best.Less(i, i-1) && queued.best.Less(i-1, i-2) { + assert.True(queued.best.Less(i, i-2)) + } + } + } + + checkNotify := func(unwindTxs, minedTxs types.TxSlots, msg string) { + select { + case newAnnouncements := <-ch: + assert.Greater(newAnnouncements.Len(), 0) + for i := 0; i < newAnnouncements.Len(); i++ { + _, _, newHash := newAnnouncements.At(i) + for j := range unwindTxs.Txs { + if bytes.Equal(unwindTxs.Txs[j].IDHash[:], newHash) { + mt := pool.all.get(unwindTxs.Txs[j].SenderID, unwindTxs.Txs[j].Nonce) + require.True(mt != nil && mt.currentSubPool == PendingSubPool, msg) + } + } + for j := range minedTxs.Txs { + if bytes.Equal(minedTxs.Txs[j].IDHash[:], newHash) { + mt := pool.all.get(unwindTxs.Txs[j].SenderID, unwindTxs.Txs[j].Nonce) + require.True(mt != nil && mt.currentSubPool == PendingSubPool, msg) + } + } + } + default: // no notifications - means pools must be unchanged or drop some txs + pendingHashes := copyHashes(pool.pending) + require.Zero(extractNewHashes(pendingHashes, prevHashes).Len()) + } + prevHashes = copyHashes(pool.pending) + } + + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + // start blocks from 0, set empty hash - then kvcache will also work on this + h0, h22 := gointerfaces.ConvertHashToH256([32]byte{}), gointerfaces.ConvertHashToH256([32]byte{22}) + + var txID uint64 + _ = coreDB.View(ctx, func(tx kv.Tx) error { + txID = tx.ViewID() + return nil + }) + change := &remote.StateChangeBatch{ + StateVersionId: txID, + PendingBlockBaseFee: pendingBaseFee, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 0, BlockHash: h0}, + }, + } + for id, sender := range senders { + addr := pool.senders.senderID2Addr[id] + v := make([]byte, types.EncodeSenderLengthForStorage(sender.nonce, sender.balance)) + types.EncodeSender(sender.nonce, sender.balance, v) + change.ChangeBatch[0].Changes = append(change.ChangeBatch[0].Changes, &remote.AccountChange{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(addr), + Data: v, + }) + } + // go to first fork + txs1, txs2, p2pReceived, txs3 := splitDataset(txs) + err = pool.OnNewBlock(ctx, change, txs1, types.TxSlots{}, tx) + assert.NoError(err) + check(txs1, types.TxSlots{}, "fork1") + checkNotify(txs1, types.TxSlots{}, "fork1") + + _, _, _ = p2pReceived, txs2, txs3 + change = &remote.StateChangeBatch{ + StateVersionId: txID, + PendingBlockBaseFee: pendingBaseFee, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 1, BlockHash: h0}, + }, + } + err = pool.OnNewBlock(ctx, change, types.TxSlots{}, txs2, tx) + assert.NoError(err) + check(types.TxSlots{}, txs2, "fork1 mined") + checkNotify(types.TxSlots{}, txs2, "fork1 mined") + + // unwind everything and switch to new fork (need unwind mined now) + change = &remote.StateChangeBatch{ + StateVersionId: txID, + PendingBlockBaseFee: pendingBaseFee, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 0, BlockHash: h0, Direction: remote.Direction_UNWIND}, + }, + } + err = pool.OnNewBlock(ctx, change, txs2, types.TxSlots{}, tx) + assert.NoError(err) + check(txs2, types.TxSlots{}, "fork2") + checkNotify(txs2, types.TxSlots{}, "fork2") + + change = &remote.StateChangeBatch{ + StateVersionId: txID, + PendingBlockBaseFee: pendingBaseFee, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 1, BlockHash: h22}, + }, + } + err = pool.OnNewBlock(ctx, change, types.TxSlots{}, txs3, tx) + assert.NoError(err) + check(types.TxSlots{}, txs3, "fork2 mined") + checkNotify(types.TxSlots{}, txs3, "fork2 mined") + + // add some remote txs from p2p + pool.AddRemoteTxs(ctx, p2pReceived) + err = pool.processRemoteTxs(ctx) + assert.NoError(err) + check(p2pReceived, types.TxSlots{}, "p2pmsg1") + checkNotify(p2pReceived, types.TxSlots{}, "p2pmsg1") + + err = pool.flushLocked(tx) // we don't test eviction here, because dedicated test exists + require.NoError(err) + check(p2pReceived, types.TxSlots{}, "after_flush") + checkNotify(p2pReceived, types.TxSlots{}, "after_flush") + + p2, err := New(ch, coreDB, txpoolcfg.DefaultConfig, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + assert.NoError(err) + p2.senders = pool.senders // senders are not persisted + err = coreDB.View(ctx, func(coreTx kv.Tx) error { return p2.fromDB(ctx, tx, coreTx) }) + require.NoError(err) + for _, txn := range p2.byHash { + assert.Nil(txn.Tx.Rlp) + } + + check(txs2, types.TxSlots{}, "fromDB") + checkNotify(txs2, types.TxSlots{}, "fromDB") + assert.Equal(pool.senders.senderID, p2.senders.senderID) + assert.Equal(pool.lastSeenBlock.Load(), p2.lastSeenBlock.Load()) + assert.Equal(pool.pending.Len(), p2.pending.Len()) + assert.Equal(pool.baseFee.Len(), p2.baseFee.Len()) + require.Equal(pool.queued.Len(), p2.queued.Len()) + assert.Equal(pool.pendingBaseFee.Load(), p2.pendingBaseFee.Load()) + }) +} + +func copyHashes(p *PendingPool) (hashes types.Hashes) { + for i := range p.best.ms { + hashes = append(hashes, p.best.ms[i].Tx.IDHash[:]...) + } + return hashes +} + +// extractNewHashes - extract from h1 hashes which do not exist in h2 +func extractNewHashes(h1, h2 types.Hashes) (result types.Hashes) { + for i := 0; i < h1.Len(); i++ { + found := false + for j := 0; j < h2.Len(); j++ { + if bytes.Equal(h1.At(i), h2.At(j)) { + found = true + break + } + } + if !found { + result = append(result, h1.At(i)...) + } + } + return result +} diff --git a/erigon-lib/txpool/pool_test.go b/erigon-lib/txpool/pool_test.go new file mode 100644 index 00000000000..a438be399e6 --- /dev/null +++ b/erigon-lib/txpool/pool_test.go @@ -0,0 +1,1045 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package txpool + +import ( + "bytes" + "context" + // "crypto/rand" + "fmt" + "math" + "math/big" + "testing" + + gokzg4844 "github.com/crate-crypto/go-kzg-4844" + "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/fixedgas" + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/u256" + "github.com/ledgerwatch/erigon-lib/crypto/kzg" + "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/kvcache" + "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" + "github.com/ledgerwatch/erigon-lib/types" +) + +func TestNonceFromAddress(t *testing.T) { + assert, require := assert.New(t), require.New(t) + ch := make(chan types.Announcements, 100) + db, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t) + + cfg := txpoolcfg.DefaultConfig + sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + assert.NoError(err) + require.True(pool != nil) + ctx := context.Background() + var stateVersionID uint64 = 0 + pendingBaseFee := uint64(200000) + // start blocks from 0, set empty hash - then kvcache will also work on this + h1 := gointerfaces.ConvertHashToH256([32]byte{}) + change := &remote.StateChangeBatch{ + StateVersionId: stateVersionID, + PendingBlockBaseFee: pendingBaseFee, + BlockGasLimit: 1000000, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 0, BlockHash: h1}, + }, + } + var addr [20]byte + addr[0] = 1 + v := make([]byte, types.EncodeSenderLengthForStorage(2, *uint256.NewInt(1 * common.Ether))) + types.EncodeSender(2, *uint256.NewInt(1 * common.Ether), v) + change.ChangeBatch[0].Changes = append(change.ChangeBatch[0].Changes, &remote.AccountChange{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(addr), + Data: v, + }) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + err = pool.OnNewBlock(ctx, change, types.TxSlots{}, types.TxSlots{}, tx) + assert.NoError(err) + + { + var txSlots types.TxSlots + txSlot1 := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 3, + } + txSlot1.IDHash[0] = 1 + txSlots.Append(txSlot1, addr[:], true) + + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + } + + { + txSlots := types.TxSlots{} + txSlot2 := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 4, + } + txSlot2.IDHash[0] = 2 + txSlot3 := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 6, + } + txSlot3.IDHash[0] = 3 + txSlots.Append(txSlot2, addr[:], true) + txSlots.Append(txSlot3, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + nonce, ok := pool.NonceFromAddress(addr) + assert.True(ok) + assert.Equal(uint64(6), nonce) + } + // test too expensive tx + { + var txSlots types.TxSlots + txSlot1 := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(9 * common.Ether), + Gas: 100000, + Nonce: 3, + } + txSlot1.IDHash[0] = 4 + txSlots.Append(txSlot1, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.InsufficientFunds, reason, reason.String()) + } + } + + // test too low nonce + { + var txSlots types.TxSlots + txSlot1 := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 1, + } + txSlot1.IDHash[0] = 5 + txSlots.Append(txSlot1, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.NonceTooLow, reason, reason.String()) + } + } +} + +func TestReplaceWithHigherFee(t *testing.T) { + assert, require := assert.New(t), require.New(t) + ch := make(chan types.Announcements, 100) + db, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t) + + cfg := txpoolcfg.DefaultConfig + sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + assert.NoError(err) + require.NotEqual(nil, pool) + ctx := context.Background() + var stateVersionID uint64 = 0 + pendingBaseFee := uint64(200000) + // start blocks from 0, set empty hash - then kvcache will also work on this + h1 := gointerfaces.ConvertHashToH256([32]byte{}) + change := &remote.StateChangeBatch{ + StateVersionId: stateVersionID, + PendingBlockBaseFee: pendingBaseFee, + BlockGasLimit: 1000000, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 0, BlockHash: h1}, + }, + } + var addr [20]byte + addr[0] = 1 + v := make([]byte, types.EncodeSenderLengthForStorage(2, *uint256.NewInt(1 * common.Ether))) + types.EncodeSender(2, *uint256.NewInt(1 * common.Ether), v) + change.ChangeBatch[0].Changes = append(change.ChangeBatch[0].Changes, &remote.AccountChange{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(addr), + Data: v, + }) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + err = pool.OnNewBlock(ctx, change, types.TxSlots{}, types.TxSlots{}, tx) + assert.NoError(err) + + { + var txSlots types.TxSlots + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 3, + } + txSlot.IDHash[0] = 1 + txSlots.Append(txSlot, addr[:], true) + + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + } + // Bumped only feeCap, transaction not accepted + { + txSlots := types.TxSlots{} + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(3000000), + Gas: 100000, + Nonce: 3, + } + txSlot.IDHash[0] = 2 + txSlots.Append(txSlot, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.NotReplaced, reason, reason.String()) + } + nonce, ok := pool.NonceFromAddress(addr) + assert.True(ok) + assert.Equal(uint64(3), nonce) + } + // Bumped only tip, transaction not accepted + { + txSlots := types.TxSlots{} + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(3000000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 3, + } + txSlot.IDHash[0] = 3 + txSlots.Append(txSlot, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.NotReplaced, reason, reason.String()) + } + nonce, ok := pool.NonceFromAddress(addr) + assert.True(ok) + assert.Equal(uint64(3), nonce) + } + // Bumped both tip and feeCap by 10%, tx accepted + { + txSlots := types.TxSlots{} + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(330000), + FeeCap: *uint256.NewInt(330000), + Gas: 100000, + Nonce: 3, + } + txSlot.IDHash[0] = 4 + txSlots.Append(txSlot, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + nonce, ok := pool.NonceFromAddress(addr) + assert.True(ok) + assert.Equal(uint64(3), nonce) + } +} + +func TestReverseNonces(t *testing.T) { + assert, require := assert.New(t), require.New(t) + ch := make(chan types.Announcements, 100) + db, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t) + + cfg := txpoolcfg.DefaultConfig + sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + assert.NoError(err) + require.True(pool != nil) + ctx := context.Background() + var stateVersionID uint64 = 0 + pendingBaseFee := uint64(1_000_000) + // start blocks from 0, set empty hash - then kvcache will also work on this + h1 := gointerfaces.ConvertHashToH256([32]byte{}) + change := &remote.StateChangeBatch{ + StateVersionId: stateVersionID, + PendingBlockBaseFee: pendingBaseFee, + BlockGasLimit: 1000000, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 0, BlockHash: h1}, + }, + } + var addr [20]byte + addr[0] = 1 + v := make([]byte, types.EncodeSenderLengthForStorage(2, *uint256.NewInt(1 * common.Ether))) + types.EncodeSender(2, *uint256.NewInt(1 * common.Ether), v) + change.ChangeBatch[0].Changes = append(change.ChangeBatch[0].Changes, &remote.AccountChange{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(addr), + Data: v, + }) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + err = pool.OnNewBlock(ctx, change, types.TxSlots{}, types.TxSlots{}, tx) + assert.NoError(err) + // 1. Send high fee transaction with nonce gap + { + var txSlots types.TxSlots + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(500_000), + FeeCap: *uint256.NewInt(3_000_000), + Gas: 100000, + Nonce: 3, + } + txSlot.IDHash[0] = 1 + txSlots.Append(txSlot, addr[:], true) + + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + } + fmt.Printf("AFTER TX 1\n") + select { + case annoucements := <-ch: + for i := 0; i < annoucements.Len(); i++ { + _, _, hash := annoucements.At(i) + fmt.Printf("propagated hash %x\n", hash) + } + default: + + } + // 2. Send low fee (below base fee) transaction without nonce gap + { + var txSlots types.TxSlots + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(500_000), + FeeCap: *uint256.NewInt(500_000), + Gas: 100000, + Nonce: 2, + } + txSlot.IDHash[0] = 2 + txSlots.Append(txSlot, addr[:], true) + + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + } + fmt.Printf("AFTER TX 2\n") + select { + case annoucements := <-ch: + for i := 0; i < annoucements.Len(); i++ { + _, _, hash := annoucements.At(i) + fmt.Printf("propagated hash %x\n", hash) + } + default: + + } + + { + var txSlots types.TxSlots + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(600_000), + FeeCap: *uint256.NewInt(3_000_000), + Gas: 100000, + Nonce: 2, + } + txSlot.IDHash[0] = 3 + txSlots.Append(txSlot, addr[:], true) + + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + } + fmt.Printf("AFTER TX 3\n") + select { + case annoucements := <-ch: + for i := 0; i < annoucements.Len(); i++ { + _, _, hash := annoucements.At(i) + fmt.Printf("propagated hash %x\n", hash) + } + default: + + } +} + +// When local transaction is send to the pool, but it cannot replace existing transaction, +// the existing transaction gets "poked" and is getting re-broadcasted +// this is a workaround for cases when transactions are getting stuck for strange reasons +// even though logs show they are broadcast +func TestTxPoke(t *testing.T) { + assert, require := assert.New(t), require.New(t) + ch := make(chan types.Announcements, 100) + db, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t) + + cfg := txpoolcfg.DefaultConfig + sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, nil, nil, nil, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + assert.NoError(err) + require.True(pool != nil) + ctx := context.Background() + var stateVersionID uint64 = 0 + pendingBaseFee := uint64(200000) + // start blocks from 0, set empty hash - then kvcache will also work on this + h1 := gointerfaces.ConvertHashToH256([32]byte{}) + change := &remote.StateChangeBatch{ + StateVersionId: stateVersionID, + PendingBlockBaseFee: pendingBaseFee, + BlockGasLimit: 1000000, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 0, BlockHash: h1}, + }, + } + var addr [20]byte + addr[0] = 1 + v := make([]byte, types.EncodeSenderLengthForStorage(2, *uint256.NewInt(1 * common.Ether))) + types.EncodeSender(2, *uint256.NewInt(1 * common.Ether), v) + change.ChangeBatch[0].Changes = append(change.ChangeBatch[0].Changes, &remote.AccountChange{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(addr), + Data: v, + }) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + err = pool.OnNewBlock(ctx, change, types.TxSlots{}, types.TxSlots{}, tx) + assert.NoError(err) + + var idHash types.Hashes + { + var txSlots types.TxSlots + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 2, + } + txSlot.IDHash[0] = 1 + idHash = append(idHash, txSlot.IDHash[:]...) + txSlots.Append(txSlot, addr[:], true) + + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + } + var promoted types.Announcements + select { + case promoted = <-ch: + if !bytes.Equal(idHash, promoted.DedupHashes()) { + t.Errorf("expected promoted %x, got %x", idHash, promoted) + } + default: + t.Errorf("expected promotion") + } + // Send the same transaction, not accepted + { + txSlots := types.TxSlots{} + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 2, + } + txSlot.IDHash[0] = 1 + txSlots.Append(txSlot, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.DuplicateHash, reason, reason.String()) + } + nonce, ok := pool.NonceFromAddress(addr) + assert.True(ok) + assert.Equal(uint64(2), nonce) + } + // Even though transaction not replaced, it gets poked + select { + case promoted = <-ch: + if !bytes.Equal(idHash, promoted.Hashes()) { + t.Errorf("expected promoted %x, got %x", idHash, promoted) + } + default: + t.Errorf("expected promotion") + } + // Send different transaction, but only with tip bumped + { + txSlots := types.TxSlots{} + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(3000000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 2, + } + txSlot.IDHash[0] = 2 + txSlots.Append(txSlot, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.NotReplaced, reason, reason.String()) + } + nonce, ok := pool.NonceFromAddress(addr) + assert.True(ok) + assert.Equal(uint64(2), nonce) + } + // Even though transaction not replaced, it gets poked + select { + case promoted = <-ch: + if !bytes.Equal(idHash, promoted.Hashes()) { + t.Errorf("expected promoted %x, got %x", idHash, promoted) + } + default: + t.Errorf("expected promotion") + } + + // Send the same transaction, but as remote + { + txSlots := types.TxSlots{} + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(300000), + FeeCap: *uint256.NewInt(300000), + Gas: 100000, + Nonce: 2, + } + txSlot.IDHash[0] = 1 + txSlots.Append(txSlot, addr[:], true) + pool.AddRemoteTxs(ctx, txSlots) + nonce, ok := pool.NonceFromAddress(addr) + assert.True(ok) + assert.Equal(uint64(2), nonce) + } + // Remote transactions do not cause pokes + select { + case <-ch: + t.Errorf("remote transactions should not cause re-broadcast") + default: + } + // Send different transaction, but only with tip bumped, as a remote + { + txSlots := types.TxSlots{} + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(3000000), + FeeCap: *uint256.NewInt(3000000), + Gas: 100000, + Nonce: 2, + } + txSlot.IDHash[0] = 2 + txSlots.Append(txSlot, addr[:], true) + pool.AddRemoteTxs(ctx, txSlots) + nonce, ok := pool.NonceFromAddress(addr) + assert.True(ok) + assert.Equal(uint64(2), nonce) + } + // Remote transactions do not cause pokes + select { + case <-ch: + t.Errorf("remote transactions should not cause re-broadcast") + default: + } +} + +func TestShanghaiIntrinsicGas(t *testing.T) { + cases := map[string]struct { + expected uint64 + dataLen uint64 + dataNonZeroLen uint64 + creation bool + isShanghai bool + }{ + "simple no data": { + expected: 21000, + dataLen: 0, + dataNonZeroLen: 0, + creation: false, + isShanghai: false, + }, + "simple with data": { + expected: 21512, + dataLen: 32, + dataNonZeroLen: 32, + creation: false, + isShanghai: false, + }, + "creation with data no shanghai": { + expected: 53512, + dataLen: 32, + dataNonZeroLen: 32, + creation: true, + isShanghai: false, + }, + "creation with single word and shanghai": { + expected: 53514, // additional gas for single word + dataLen: 32, + dataNonZeroLen: 32, + creation: true, + isShanghai: true, + }, + "creation between word 1 and 2 and shanghai": { + expected: 53532, // additional gas for going into 2nd word although not filling it + dataLen: 33, + dataNonZeroLen: 33, + creation: true, + isShanghai: true, + }, + } + + for name, c := range cases { + t.Run(name, func(t *testing.T) { + gas, reason := txpoolcfg.CalcIntrinsicGas(c.dataLen, c.dataNonZeroLen, nil, c.creation, true, true, c.isShanghai) + if reason != txpoolcfg.Success { + t.Errorf("expected success but got reason %v", reason) + } + if gas != c.expected { + t.Errorf("expected %v but got %v", c.expected, gas) + } + }) + } +} + +func TestShanghaiValidateTx(t *testing.T) { + asrt := assert.New(t) + tests := map[string]struct { + expected txpoolcfg.DiscardReason + dataLen int + isShanghai bool + }{ + "no shanghai": { + expected: txpoolcfg.Success, + dataLen: 32, + isShanghai: false, + }, + "shanghai within bounds": { + expected: txpoolcfg.Success, + dataLen: 32, + isShanghai: true, + }, + "shanghai exactly on bound": { + expected: txpoolcfg.Success, + dataLen: fixedgas.MaxInitCodeSize, + isShanghai: true, + }, + "shanghai one over bound": { + expected: txpoolcfg.InitCodeTooLarge, + dataLen: fixedgas.MaxInitCodeSize + 1, + isShanghai: true, + }, + } + + logger := log.New() + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + ch := make(chan types.Announcements, 100) + _, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t) + cfg := txpoolcfg.DefaultConfig + + var shanghaiTime *big.Int + if test.isShanghai { + shanghaiTime = big.NewInt(0) + } + + cache := &kvcache.DummyCache{} + pool, err := New(ch, coreDB, cfg, cache, *u256.N1, shanghaiTime, nil /* agraBlock */, nil /* cancunTime */, fixedgas.DefaultMaxBlobsPerBlock, logger) + asrt.NoError(err) + ctx := context.Background() + tx, err := coreDB.BeginRw(ctx) + defer tx.Rollback() + asrt.NoError(err) + + sndr := sender{nonce: 0, balance: *uint256.NewInt(math.MaxUint64)} + sndrBytes := make([]byte, types.EncodeSenderLengthForStorage(sndr.nonce, sndr.balance)) + types.EncodeSender(sndr.nonce, sndr.balance, sndrBytes) + err = tx.Put(kv.PlainState, []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, sndrBytes) + asrt.NoError(err) + + txn := &types.TxSlot{ + DataLen: test.dataLen, + FeeCap: *uint256.NewInt(21000), + Gas: 500000, + SenderID: 0, + Creation: true, + } + + txns := types.TxSlots{ + Txs: append([]*types.TxSlot{}, txn), + Senders: types.Addresses{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + } + err = pool.senders.registerNewSenders(&txns, logger) + asrt.NoError(err) + view, err := cache.View(ctx, tx) + asrt.NoError(err) + + reason := pool.validateTx(txn, false, view) + + if reason != test.expected { + t.Errorf("expected %v, got %v", test.expected, reason) + } + }) + } +} + +// Blob gas price bump + other requirements to replace existing txns in the pool +func TestBlobTxReplacement(t *testing.T) { + assert, require := assert.New(t), require.New(t) + ch := make(chan types.Announcements, 5) + db, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t) + cfg := txpoolcfg.DefaultConfig + sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) + pool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, common.Big0, nil, common.Big0, fixedgas.DefaultMaxBlobsPerBlock, log.New()) + assert.NoError(err) + require.True(pool != nil) + ctx := context.Background() + var stateVersionID uint64 = 0 + + h1 := gointerfaces.ConvertHashToH256([32]byte{}) + change := &remote.StateChangeBatch{ + StateVersionId: stateVersionID, + PendingBlockBaseFee: 200_000, + BlockGasLimit: 1000000, + PendingBlobFeePerGas: 100_000, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 0, BlockHash: h1}, + }, + } + var addr [20]byte + addr[0] = 1 + + // Add 1 eth to the user account, as a part of change + v := make([]byte, types.EncodeSenderLengthForStorage(2, *uint256.NewInt(1 * common.Ether))) + types.EncodeSender(2, *uint256.NewInt(1 * common.Ether), v) + + change.ChangeBatch[0].Changes = append(change.ChangeBatch[0].Changes, &remote.AccountChange{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(addr), + Data: v, + }) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + err = pool.OnNewBlock(ctx, change, types.TxSlots{}, types.TxSlots{}, tx) + assert.NoError(err) + + tip, feeCap, blobFeeCap := uint256.NewInt(100_000), uint256.NewInt(200_000), uint256.NewInt(200_000) + + //add a blob txn to the pool + { + txSlots := types.TxSlots{} + blobTxn := makeBlobTx() + + blobTxn.IDHash[0] = 0x00 + blobTxn.Nonce = 0x2 + txSlots.Append(&blobTxn, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + t.Logf("Reasons %v", reasons) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + } + + { + // try to replace it with 5% extra blob gas, 2x higher tx fee - should fail + txSlots := types.TxSlots{} + blobTxn := makeBlobTx() + blobTxn.Nonce = 0x2 + blobTxn.FeeCap.Mul(uint256.NewInt(2), feeCap) + blobTxn.Tip.Mul(uint256.NewInt(2), tip) + //increase blobFeeCap by 10% - no good + blobTxn.BlobFeeCap.Add(blobFeeCap, uint256.NewInt(1).Div(blobFeeCap, uint256.NewInt(10))) + blobTxn.IDHash[0] = 0x01 + txSlots.Append(&blobTxn, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + t.Logf("Reasons %v", reasons) + for _, reason := range reasons { + assert.Equal(txpoolcfg.ReplaceUnderpriced, reason, reason.String()) + } + } + + { + txSlots := types.TxSlots{} + //try to replace it with a regular txn - should fail + regularTx := types.TxSlot{ + DataLen: 32, + FeeCap: *uint256.NewInt(1).Mul(uint256.NewInt(10), feeCap), //10x the previous + Tip: *uint256.NewInt(1).Mul(uint256.NewInt(10), tip), + BlobFeeCap: *uint256.NewInt(1).Mul(uint256.NewInt(10), blobFeeCap), + Gas: 500000, + SenderID: 0, + Creation: true, + Nonce: 0x2, + } + regularTx.IDHash[0] = 0x02 + txSlots.Append(®ularTx, addr[:], true) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + t.Logf("Reasons %v", reasons) + for _, reason := range reasons { + assert.Equal(txpoolcfg.BlobTxReplace, reason, reason.String()) + } + } + + // Try to replace it with required price bump (configured in pool.cfg.BlobPriceBump for blob txns) to all transaction fields - should be successful only if all are bumped + { + blobTxn := makeBlobTx() + origTip := blobTxn.Tip + origFee := blobTxn.FeeCap + blobTxn.Nonce = 0x2 + blobTxn.IDHash[0] = 0x03 + txSlots := types.TxSlots{} + txSlots.Append(&blobTxn, addr[:], true) + + // Get the config of the pool for BlobPriceBump and bump prices + requiredPriceBump := pool.cfg.BlobPriceBump + + // Bump the tip only + blobTxn.Tip.MulDivOverflow(tip, uint256.NewInt(requiredPriceBump+100), uint256.NewInt(100)) + reasons, err := pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + assert.Equal(txpoolcfg.ReplaceUnderpriced, reasons[0], reasons[0].String()) + + // Bump the fee + tip + blobTxn.FeeCap.MulDivOverflow(feeCap, uint256.NewInt(requiredPriceBump+100), uint256.NewInt(100)) + reasons, err = pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + assert.Equal(txpoolcfg.ReplaceUnderpriced, reasons[0], reasons[0].String()) + + // Bump only Feecap + blobTxn.Tip = origTip + reasons, err = pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + assert.Equal(txpoolcfg.ReplaceUnderpriced, reasons[0], reasons[0].String()) + + // Bump fee cap + blobFee cap + blobTxn.BlobFeeCap.MulDivOverflow(blobFeeCap, uint256.NewInt(requiredPriceBump+100), uint256.NewInt(100)) + reasons, err = pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + assert.Equal(txpoolcfg.NotReplaced, reasons[0], reasons[0].String()) + + // Bump only blobFee cap + blobTxn.FeeCap = origFee + reasons, err = pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + assert.Equal(txpoolcfg.NotReplaced, reasons[0], reasons[0].String()) + + // Bump all prices + blobTxn.Tip.MulDivOverflow(tip, uint256.NewInt(requiredPriceBump+100), uint256.NewInt(100)) + blobTxn.FeeCap.MulDivOverflow(feeCap, uint256.NewInt(requiredPriceBump+100), uint256.NewInt(100)) + reasons, err = pool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + assert.Equal(txpoolcfg.Success, reasons[0], reasons[0].String()) + } +} + +// Todo, make the tx more realistic with good values +func makeBlobTx() types.TxSlot { + // Some arbitrary hardcoded example + bodyRlpHex := "f9012705078502540be4008506fc23ac008357b58494811a752c8cd697e3cb27" + + "279c330ed1ada745a8d7808204f7f872f85994de0b295669a9fd93d5f28d9ec85e40f4cb697b" + + "aef842a00000000000000000000000000000000000000000000000000000000000000003a000" + + "00000000000000000000000000000000000000000000000000000000000007d694bb9bc244d7" + + "98123fde783fcc1c72d3bb8c189413c07bf842a0c6bdd1de713471bd6cfa62dd8b5a5b42969e" + + "d09e26212d3377f3f8426d8ec210a08aaeccaf3873d07cef005aca28c39f8a9f8bdb1ec8d79f" + + "fc25afc0a4fa2ab73601a036b241b061a36a32ab7fe86c7aa9eb592dd59018cd0443adc09035" + + "90c16b02b0a05edcc541b4741c5cc6dd347c5ed9577ef293a62787b4510465fadbfe39ee4094" + bodyRlp := hexutility.MustDecodeHex(bodyRlpHex) + + blobsRlpPrefix := hexutility.MustDecodeHex("fa040008") + blobRlpPrefix := hexutility.MustDecodeHex("ba020000") + + var blob0, blob1 = gokzg4844.Blob{}, gokzg4844.Blob{} + copy(blob0[:], hexutility.MustDecodeHex(validBlob1)) + copy(blob1[:], hexutility.MustDecodeHex(validBlob2)) + + var err error + proofsRlpPrefix := hexutility.MustDecodeHex("f862") + commitment0, _ := kzg.Ctx().BlobToKZGCommitment(blob0, 0) + commitment1, _ := kzg.Ctx().BlobToKZGCommitment(blob1, 0) + + proof0, err := kzg.Ctx().ComputeBlobKZGProof(blob0, commitment0, 0) + if err != nil { + fmt.Println("error", err) + } + proof1, err := kzg.Ctx().ComputeBlobKZGProof(blob1, commitment1, 0) + if err != nil { + fmt.Println("error", err) + } + + wrapperRlp := hexutility.MustDecodeHex("03fa0401fe") + wrapperRlp = append(wrapperRlp, bodyRlp...) + wrapperRlp = append(wrapperRlp, blobsRlpPrefix...) + wrapperRlp = append(wrapperRlp, blobRlpPrefix...) + wrapperRlp = append(wrapperRlp, blob0[:]...) + wrapperRlp = append(wrapperRlp, blobRlpPrefix...) + wrapperRlp = append(wrapperRlp, blob1[:]...) + wrapperRlp = append(wrapperRlp, proofsRlpPrefix...) + wrapperRlp = append(wrapperRlp, 0xb0) + wrapperRlp = append(wrapperRlp, commitment0[:]...) + wrapperRlp = append(wrapperRlp, 0xb0) + wrapperRlp = append(wrapperRlp, commitment1[:]...) + wrapperRlp = append(wrapperRlp, proofsRlpPrefix...) + wrapperRlp = append(wrapperRlp, 0xb0) + wrapperRlp = append(wrapperRlp, proof0[:]...) + wrapperRlp = append(wrapperRlp, 0xb0) + wrapperRlp = append(wrapperRlp, proof1[:]...) + + tip, feeCap, blobFeeCap := uint256.NewInt(100_000), uint256.NewInt(200_000), uint256.NewInt(200_000) + + blobTx := types.TxSlot{} + tctx := types.NewTxParseContext(*uint256.NewInt(5)) + tctx.WithSender(false) + tctx.ParseTransaction(wrapperRlp, 0, &blobTx, nil, false, true, nil) + blobTx.BlobHashes = make([]common.Hash, 2) + blobTx.BlobHashes[0] = common.Hash(kzg.KZGToVersionedHash(commitment0)) + blobTx.BlobHashes[1] = common.Hash(kzg.KZGToVersionedHash(commitment1)) + + blobTx.Tip = *tip + blobTx.FeeCap = *feeCap + blobTx.BlobFeeCap = *blobFeeCap + return blobTx +} + +func TestDropRemoteAtNoGossip(t *testing.T) { + assert, require := assert.New(t), require.New(t) + ch := make(chan types.Announcements, 100) + db, coreDB := memdb.NewTestPoolDB(t), memdb.NewTestDB(t) + + cfg := txpoolcfg.DefaultConfig + cfg.NoGossip = true + + logger := log.New() + sendersCache := kvcache.New(kvcache.DefaultCoherentConfig) + + txPool, err := New(ch, coreDB, cfg, sendersCache, *u256.N1, big.NewInt(0), big.NewInt(0), nil, fixedgas.DefaultMaxBlobsPerBlock, logger) + assert.NoError(err) + require.True(txPool != nil) + + ctx := context.Background() + var stateVersionID uint64 = 0 + pendingBaseFee := uint64(1_000_000) + // start blocks from 0, set empty hash - then kvcache will also work on this + h1 := gointerfaces.ConvertHashToH256([32]byte{}) + change := &remote.StateChangeBatch{ + StateVersionId: stateVersionID, + PendingBlockBaseFee: pendingBaseFee, + BlockGasLimit: 1000000, + ChangeBatch: []*remote.StateChange{ + {BlockHeight: 0, BlockHash: h1}, + }, + } + var addr [20]byte + addr[0] = 1 + v := make([]byte, types.EncodeSenderLengthForStorage(2, *uint256.NewInt(1 * common.Ether))) + types.EncodeSender(2, *uint256.NewInt(1 * common.Ether), v) + change.ChangeBatch[0].Changes = append(change.ChangeBatch[0].Changes, &remote.AccountChange{ + Action: remote.Action_UPSERT, + Address: gointerfaces.ConvertAddressToH160(addr), + Data: v, + }) + tx, err := db.BeginRw(ctx) + require.NoError(err) + defer tx.Rollback() + err = txPool.OnNewBlock(ctx, change, types.TxSlots{}, types.TxSlots{}, tx) + assert.NoError(err) + // 1. Try Local Tx + { + var txSlots types.TxSlots + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(500_000), + FeeCap: *uint256.NewInt(3_000_000), + Gas: 100000, + Nonce: 3, + } + txSlot.IDHash[0] = 1 + txSlots.Append(txSlot, addr[:], true) + + reasons, err := txPool.AddLocalTxs(ctx, txSlots, tx) + assert.NoError(err) + for _, reason := range reasons { + assert.Equal(txpoolcfg.Success, reason, reason.String()) + } + } + select { + case annoucements := <-ch: + for i := 0; i < annoucements.Len(); i++ { + _, _, hash := annoucements.At(i) + fmt.Printf("propagated hash %x\n", hash) + } + default: + + } + + // 2. Try same Tx, but as remote; tx must be dropped + { + var txSlots types.TxSlots + txSlot := &types.TxSlot{ + Tip: *uint256.NewInt(500_000), + FeeCap: *uint256.NewInt(3_000_000), + Gas: 100000, + Nonce: 3, + } + txSlot.IDHash[0] = 1 + txSlots.Append(txSlot, addr[:], true) + + txPool.AddRemoteTxs(ctx, txSlots) + } + + // empty because AddRemoteTxs logic is intentionally empty + assert.Equal(0, len(txPool.unprocessedRemoteByHash)) + assert.Equal(0, len(txPool.unprocessedRemoteTxs.Txs)) + + assert.NoError(txPool.processRemoteTxs(ctx)) + + checkAnnouncementEmpty := func() bool { + select { + case <-ch: + return false + default: + return true + } + } + // no announcement because unprocessedRemoteTxs is already empty + assert.True(checkAnnouncementEmpty()) +} diff --git a/erigon-lib/txpool/send.go b/erigon-lib/txpool/send.go new file mode 100644 index 00000000000..aa1c9f763f7 --- /dev/null +++ b/erigon-lib/txpool/send.go @@ -0,0 +1,269 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package txpool + +import ( + "context" + "fmt" + "sync" + + "github.com/ledgerwatch/erigon-lib/direct" + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" + "github.com/ledgerwatch/erigon-lib/rlp" + types2 "github.com/ledgerwatch/erigon-lib/types" + "github.com/ledgerwatch/log/v3" + "google.golang.org/grpc" +) + +type SentryClient interface { + sentry.SentryClient + Protocol() uint +} + +// Send - does send concrete P2P messages to Sentry. Same as Fetch but for outbound traffic +// does not initiate any messages by self +type Send struct { + ctx context.Context + pool Pool + wg *sync.WaitGroup + sentryClients []direct.SentryClient // sentry clients that will be used for accessing the network + logger log.Logger +} + +func NewSend(ctx context.Context, sentryClients []direct.SentryClient, pool Pool, logger log.Logger) *Send { + return &Send{ + ctx: ctx, + pool: pool, + sentryClients: sentryClients, + logger: logger, + } +} + +func (f *Send) SetWaitGroup(wg *sync.WaitGroup) { + f.wg = wg +} + +const ( + // This is the target size for the packs of transactions or announcements. A + // pack can get larger than this if a single transactions exceeds this size. + p2pTxPacketLimit = 100 * 1024 +) + +func (f *Send) notifyTests() { + if f.wg != nil { + f.wg.Done() + } +} + +// Broadcast given RLPs to random peers +func (f *Send) BroadcastPooledTxs(rlps [][]byte, maxPeers uint64) (txSentTo []int) { + defer f.notifyTests() + if len(rlps) == 0 { + return + } + txSentTo = make([]int, len(rlps)) + var prev, size int + for i, l := 0, len(rlps); i < len(rlps); i++ { + size += len(rlps[i]) + // Wait till the combined size of rlps so far is greater than a threshold and + // send them all at once. Then wait till end of array or this threshold hits again + if i == l-1 || size >= p2pTxPacketLimit { + txsData := types2.EncodeTransactions(rlps[prev:i+1], nil) + var txs66 *sentry.SendMessageToRandomPeersRequest + for _, sentryClient := range f.sentryClients { + if !sentryClient.Ready() { + continue + } + if txs66 == nil { + txs66 = &sentry.SendMessageToRandomPeersRequest{ + Data: &sentry.OutboundMessageData{ + Id: sentry.MessageId_TRANSACTIONS_66, + Data: txsData, + }, + MaxPeers: maxPeers, + } + } + peers, err := sentryClient.SendMessageToRandomPeers(f.ctx, txs66) + if err != nil { + f.logger.Debug("[txpool.send] BroadcastPooledTxs", "err", err) + } + if peers != nil { + for j := prev; j <= i; j++ { + txSentTo[j] = len(peers.Peers) + } + } + } + prev = i + 1 + size = 0 + } + } + return +} + +func (f *Send) AnnouncePooledTxs(types []byte, sizes []uint32, hashes types2.Hashes, maxPeers uint64) (hashSentTo []int) { + defer f.notifyTests() + hashSentTo = make([]int, len(types)) + if len(types) == 0 { + return + } + prevI := 0 + prevJ := 0 + for prevI < len(hashes) || prevJ < len(types) { + // Prepare two versions of the announcement message, one for pre-eth/68 peers, another for post-eth/68 peers + i := prevI + for i < len(hashes) && rlp.HashesLen(hashes[prevI:i+32]) < p2pTxPacketLimit { + i += 32 + } + j := prevJ + for j < len(types) && rlp.AnnouncementsLen(types[prevJ:j+1], sizes[prevJ:j+1], hashes[32*prevJ:32*j+32]) < p2pTxPacketLimit { + j++ + } + iSize := rlp.HashesLen(hashes[prevI:i]) + jSize := rlp.AnnouncementsLen(types[prevJ:j], sizes[prevJ:j], hashes[32*prevJ:32*j]) + iData := make([]byte, iSize) + jData := make([]byte, jSize) + if s := rlp.EncodeHashes(hashes[prevI:i], iData); s != iSize { + panic(fmt.Sprintf("Serialised hashes encoding len mismatch, expected %d, got %d", iSize, s)) + } + if s := rlp.EncodeAnnouncements(types[prevJ:j], sizes[prevJ:j], hashes[32*prevJ:32*j], jData); s != jSize { + panic(fmt.Sprintf("Serialised announcements encoding len mismatch, expected %d, got %d", jSize, s)) + } + for _, sentryClient := range f.sentryClients { + if !sentryClient.Ready() { + continue + } + switch sentryClient.Protocol() { + case direct.ETH66, direct.ETH67: + if i > prevI { + req := &sentry.SendMessageToRandomPeersRequest{ + Data: &sentry.OutboundMessageData{ + Id: sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_66, + Data: iData, + }, + MaxPeers: maxPeers, + } + peers, err := sentryClient.SendMessageToRandomPeers(f.ctx, req) + if err != nil { + f.logger.Debug("[txpool.send] AnnouncePooledTxs", "err", err) + } + if peers != nil { + for k := prevI; k < i; k += 32 { + hashSentTo[k/32] += len(peers.Peers) + } + } + } + case direct.ETH68: + + if j > prevJ { + req := &sentry.SendMessageToRandomPeersRequest{ + Data: &sentry.OutboundMessageData{ + Id: sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_68, + Data: jData, + }, + MaxPeers: maxPeers, + } + peers, err := sentryClient.SendMessageToRandomPeers(f.ctx, req) + if err != nil { + f.logger.Debug("[txpool.send] AnnouncePooledTxs68", "err", err) + } + if peers != nil { + for k := prevJ; k < j; k++ { + hashSentTo[k] += len(peers.Peers) + } + } + } + + } + } + prevI = i + prevJ = j + } + return +} + +func (f *Send) PropagatePooledTxsToPeersList(peers []types2.PeerID, types []byte, sizes []uint32, hashes []byte) { + defer f.notifyTests() + + if len(types) == 0 { + return + } + + prevI := 0 + prevJ := 0 + for prevI < len(hashes) || prevJ < len(types) { + // Prepare two versions of the annoucement message, one for pre-eth/68 peers, another for post-eth/68 peers + i := prevI + for i < len(hashes) && rlp.HashesLen(hashes[prevI:i+32]) < p2pTxPacketLimit { + i += 32 + } + j := prevJ + for j < len(types) && rlp.AnnouncementsLen(types[prevJ:j+1], sizes[prevJ:j+1], hashes[32*prevJ:32*j+32]) < p2pTxPacketLimit { + j++ + } + iSize := rlp.HashesLen(hashes[prevI:i]) + jSize := rlp.AnnouncementsLen(types[prevJ:j], sizes[prevJ:j], hashes[32*prevJ:32*j]) + iData := make([]byte, iSize) + jData := make([]byte, jSize) + if s := rlp.EncodeHashes(hashes[prevI:i], iData); s != iSize { + panic(fmt.Sprintf("Serialised hashes encoding len mismatch, expected %d, got %d", iSize, s)) + } + if s := rlp.EncodeAnnouncements(types[prevJ:j], sizes[prevJ:j], hashes[32*prevJ:32*j], jData); s != jSize { + panic(fmt.Sprintf("Serialised annoucements encoding len mismatch, expected %d, got %d", jSize, s)) + } + + for _, sentryClient := range f.sentryClients { + if !sentryClient.Ready() { + continue + } + + for _, peer := range peers { + switch sentryClient.Protocol() { + case direct.ETH66, direct.ETH67: + if i > prevI { + req := &sentry.SendMessageByIdRequest{ + PeerId: peer, + Data: &sentry.OutboundMessageData{ + Id: sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_66, + Data: iData, + }, + } + if _, err := sentryClient.SendMessageById(f.ctx, req, &grpc.EmptyCallOption{}); err != nil { + f.logger.Debug("[txpool.send] PropagatePooledTxsToPeersList", "err", err) + } + } + case direct.ETH68: + + if j > prevJ { + req := &sentry.SendMessageByIdRequest{ + PeerId: peer, + Data: &sentry.OutboundMessageData{ + Id: sentry.MessageId_NEW_POOLED_TRANSACTION_HASHES_68, + Data: jData, + }, + } + if _, err := sentryClient.SendMessageById(f.ctx, req, &grpc.EmptyCallOption{}); err != nil { + f.logger.Debug("[txpool.send] PropagatePooledTxsToPeersList68", "err", err) + } + } + + } + } + } + prevI = i + prevJ = j + } +} diff --git a/erigon-lib/txpool/test_util.go b/erigon-lib/txpool/test_util.go new file mode 100644 index 00000000000..93c52f810a9 --- /dev/null +++ b/erigon-lib/txpool/test_util.go @@ -0,0 +1,116 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package txpool + +import ( + "context" + "sync" + + "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" + "github.com/ledgerwatch/erigon-lib/types" + "google.golang.org/protobuf/types/known/emptypb" +) + +//go:generate moq -stub -out mocks_test.go . Pool + +type MockSentry struct { + ctx context.Context + *sentry.SentryServerMock + streams map[sentry.MessageId][]sentry.Sentry_MessagesServer + peersStreams []sentry.Sentry_PeerEventsServer + StreamWg sync.WaitGroup + lock sync.RWMutex +} + +func NewMockSentry(ctx context.Context) *MockSentry { + return &MockSentry{ctx: ctx, SentryServerMock: &sentry.SentryServerMock{}} +} + +var peerID types.PeerID = gointerfaces.ConvertHashToH512([64]byte{0x12, 0x34, 0x50}) // "12345" + +func (ms *MockSentry) Send(req *sentry.InboundMessage) (errs []error) { + ms.lock.RLock() + defer ms.lock.RUnlock() + for _, stream := range ms.streams[req.Id] { + if err := stream.Send(req); err != nil { + errs = append(errs, err) + } + } + return errs +} + +func (ms *MockSentry) SetStatus(context.Context, *sentry.StatusData) (*sentry.SetStatusReply, error) { + return &sentry.SetStatusReply{}, nil +} +func (ms *MockSentry) HandShake(context.Context, *emptypb.Empty) (*sentry.HandShakeReply, error) { + return &sentry.HandShakeReply{Protocol: sentry.Protocol_ETH68}, nil +} +func (ms *MockSentry) Messages(req *sentry.MessagesRequest, stream sentry.Sentry_MessagesServer) error { + ms.lock.Lock() + if ms.streams == nil { + ms.streams = map[sentry.MessageId][]sentry.Sentry_MessagesServer{} + } + for _, id := range req.Ids { + ms.streams[id] = append(ms.streams[id], stream) + } + ms.lock.Unlock() + ms.StreamWg.Done() + select { + case <-ms.ctx.Done(): + return nil + case <-stream.Context().Done(): + return nil + } +} + +func (ms *MockSentry) PeerEvents(req *sentry.PeerEventsRequest, stream sentry.Sentry_PeerEventsServer) error { + ms.lock.Lock() + ms.peersStreams = append(ms.peersStreams, stream) + ms.lock.Unlock() + ms.StreamWg.Done() + select { + case <-ms.ctx.Done(): + return nil + case <-stream.Context().Done(): + return nil + } +} + +func toHashes(h ...byte) (out types.Hashes) { + for i := range h { + hash := [32]byte{h[i]} + out = append(out, hash[:]...) + } + return out +} + +func testRlps(num int) [][]byte { + rlps := make([][]byte, num) + for i := 0; i < num; i++ { + rlps[i] = []byte{1} + } + return rlps +} + +func toPeerIDs(h ...byte) (out []types.PeerID) { + for i := range h { + hash := [64]byte{h[i]} + out = append(out, gointerfaces.ConvertHashToH512(hash)) + } + return out +} diff --git a/erigon-lib/txpool/testdata.go b/erigon-lib/txpool/testdata.go new file mode 100644 index 00000000000..9668ee688ab --- /dev/null +++ b/erigon-lib/txpool/testdata.go @@ -0,0 +1,8 @@ +package txpool + +const ( + // Just an encoded valid blob txn + validBlob1 string = "824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc6092c566b31415be66313fbfb2f13fd56212dfe8000d200800000007fffffff84d37e37a3c8aae349928a7775c40a7a570681bcd001be41100000010ffffffef26821fa14f77df20ff1776e6aedf77458d12939700396c2300000022ffffffdd4d043f429eefbe41fe2eedcd5dbeee8b1a25272e0072d84600000045ffffffba261ad7321441ff3bc9240392b1dc0510e08caa5900e7548d0000008cffffff734c35ae642883fe779248072563b80a21c11954b201cea91a00000119fffffee6247db575276a7fa6f1563642bdce3c3e2e750561039ef63500000234fffffdcb48fb6aea4ed4ff4de2ac6c857b9c787c5cea0ac2073dec6a00000469fffffb961e092e81740c8153921f0102ed9718f3661671810e7d7cd5000008d4fffff72b3c125d02e81902a7243e0205db2e31e6cc2ce3021cfaf9aa000011a9ffffee56043712b2a694880615422c03acba8bc8449c220139f7975500002354ffffdcab086e25654d29100c2a845807597517908938440273ef2eaa000046a9ffffb95610dc4aca9a5220185508b00eb2ea2f2112708804e7de5d5400008d53ffff72ac21b8959534a44030aa11601d65d45e4224e11009cfbcbaa800011aa7fffee55843712b2a694880615422c03acba8bc8449c220139f7975500002354ffffdcab012f4af01a8f3837a750ba86d8dafa1033fc69c243ef48ea100046aa0fffb955f25e95e0351e706f4ea1750db1b5f42067f8d38487de91d420008d541fff72abe4bd2bc06a3ce0de9d42ea1b636be840cff1a7090fbd23a840011aa83ffee557c23b7d0ba1dfe9e8b75236b6463db3014aa773d1ef7a6190900235508ffdcaaf7476fa1743bfd3d16ea46d6c8c7b6602954ee7a3def4c32120046aa11ffb955ee1af19b954e5cfce5a153d58985cae84d561f5078de9a0825008d5424ff72abdb35e3372a9cb9f9cb42a7ab130b95d09aac3ea0f1bd34104a011aa849fee557b66bc66e553973f396854f5626172ba135587d41e37a68209402355093fdcaaf6c639f3557494a69e4d764d44424b56a655d3cdfc3f4d1e529046aa128fb955ed75350c35b68f756817b8fd0803fc8fcc566bc1b84e9a56e5308d54252f72abdad32b3df63a8512fbac3e5c8f875f0218579ba9306d34c80a711aa84a6ee557b596567bec750a25f7587cb91f0ebe0430af375260da699014e2355094ddcaaf6b256e1d63b77a741a2dc5d4bd9ce1eae10932ca8184d33a69d46aa129cb955ed6339d60523c5b105fd8580bfab929b841bd29bac2d9a68f13b8d54253a72abdac573ac0a478b620bfb0b017f5725370837a537585b34d1e2771aa84a74e557b58a736a6d3bed269aade2c926a640cc3869f6b10cb369a568ef355094eacaaf6b1372e73324b0afb8139258754477f698ce99a47563d34c75df6aa129d6955ed62571e0bef637c1f2def1771280e64b5997df8b46c4a69a8fbfd54253ae2abdac496fd3d69945e66875afb44cf9c2f4db2a6b58e9864d36c380aa84a75d557b58916bba05df622f53a32c2ec1eb7c47de4f82f42f099a6f2b0255094ebbaaf6b1216386646b9ac129fe2523abceeeede499b22aba1034dffa05aa129d7855ed6241531f21840be4d6b4170d7f95d439f12e1097d01d69c1980c54253af1abdac48132509bb4ee2c301ffae127239ed20a56cd71fc37d384d419a84a75e457b5890164a13769dc58603ff5c24e473da414ad9ae3f86fa709a8335094ebc8af6b12025554c7808f134337b84ac48671a65155e20a4cdc4e14f467a129d7925ed6240336bbe7adf48909273d5bb104d9aacaa67056f5b59c2b8cd04253af25bdac48056d77cf5be912124e7ab76209b355954ce0adeb6b385719a084a75e4b7b58900a6701f764a886a754c234ec0b5d0952946d9e32d370afd742094ebc97f6b120135a164776276fd1615130000eb070cd23877ec1a3e1615285129d7930ed624025403ee7992542257a6f262815573fc241bb3fdf44c2c4490b253af262dac480490c9027df20e6cdacab127822a4ddac7e22c21a86858a36174a75e4c6b589009119204fbe41cd9b595624f04549bb58fc4584350d0b146c2e94ebc98d6b12012232409f7c839b36b2ac49e08a9376b1f88b086a1a1628d85d29d7931ad624024464813ef907366d655893c11526ed63f11610d4342c51b0ba53af2635ac4804885514d69ee4cf5d827dedaa224438efdcd864046558a50575a75e4c6c5890090f363c05eaa0013dbcc8a17c3c7ed007b45d0a64c7b14baeec4ebc98d9b120121d6c780bd540027b799142f878fda00f68ba14c98f62975dd89d7931b36240243a65027057566779aaef4c18e9f19e46cc206bef1bc5305fb23af26367c48048735617395b8331760dab5e59cbd99ab592ed1a3a348a62636575e4c6d0890090e53840cb63dcc56ed32382db8fa99393208676d06614c66acbebc98da2120121c9708196c7b98adda64705b71f532726410ceda0cc298cd597d7931b44240243926d15863c49783e045ad196369cac747cc61d9d95531b4f30af26368948048723663d65256952fec0826954652fb710f4387d9727a63842625e4c6d1390090e45588d22f7a9088038d198d0c255cc49e31d3d8a4c4c7228c5bc98da2820121c893d2c9e9c287383296ff7c97ca1f6bbc0e6bd709598e5f58c7931b45140243911066b95e52749890aacb5baf13a4b9f7c79bd3d2831cd8f19f26368a3804872210cd72bca4e931215596b75e274973ef8f37a7a50639b1e33e4c6d1470090e44219ae57949d26242ab2d6ebc4e92e7df1e6f4f4a0c7363c67c98da28e0121c884335caf293a4c485565add789d25cfbe3cde9e9418e6c78cf931b451c0243910866b95e52749890aacb5baf13a4b9f7c79bd3d2831cd8f19f26368a380487221059851551bf93a40d637d861f3fd21789e3ea010339b3873f4c6d1471090e441f3f1c83505589cad293c134367602570e74165e037368b27f98da28e3121c883d0a4b5f4d8176185cf4489064e262d617946f1803e6d3090031b451c7243910791496be9b02ec30b9e89120c9c4c5ac2f28de3007cda612006368a38e487220f2292d7d3605d86173d1224193898b585e51bc600f9b4c2400c6d1471c90e441e4525afa6c0bb0c2e7a24483271316b0bca378c01f369848018da28e3921c883c830c84d84edc40887114f2e461c8b8973f333dc3b6d3234041b451c734391078f61909b09db88110e229e5c8c391712e7e667b876da646808368a38e687220f1e4f338ec08d72a4d41202e110688c4dca7911cceab4ca74116d1471ce0e441e3b2a79762df147cc5ff0cbea18c776c38f9e65f5d269968c23da28e39d1c883c7554f2ec5be28f98bfe197d4318eed871f3ccbeba4d32d1847b451c73a391078ea35f831649b81b4378ff5d05b1439363925da3346a65bd49068a38e757220f1d36bf062c93703686f1feba0b628726c724bb4668d4cb7a920d1471ceae441e3a663f31e3f446953960c9d6964474300df43ab29179970f642a28e39d6c883c74b53f8952b5f3529e3e600fac084e429b93398ae2c32e39086451c73ae91078e953403830394ccd67f98c81d7900267b6d1373b85565c8c50d8a38e75e220f1d29680706072999acff31903af2004cf6da26e770aacb918a1b1471cebc441e3a525c2064bb2995dcb62fe69ddbf6f815aefa113d529724b83728e39d79883c74a344532223298e3c242c9363afe44e5358a064d6a22e4b146f51c73af41078e94514b89cf3297efb0025ecef57befaceabed0c09415c97ccdfa38e75e920f1d289297139e652fdf6004bd9deaf7df59d57da181282b92f99bf471cebd241e3a51252e273cca5fbec0097b3bd5efbeb3aafb4302505725f337e8e39d7a483c74a2431d74046225a5ab8fc2da2b5ee349d5a14a2a607e4c00afe1c73af4a078e944763ae808c44b4b571f85b456bdc693ab429454c0fc98015fc38e75e940f1d288e536f59c55fcbed9bbd7cb2cfaf309d62feccf41c9301cff971cebd291e3a511b32f10c3795fa5def47bf8d9754bf62c0a9dc4436260543f3e39d7a533c74a23565e2186f2bf4bbde8f7f1b2ea97ec58153b8886c4c0a87e7c73af4a678e9446a57d6898b2e4bfa74ebc45e55495bb2fd53b36cd59816b3d08e75e94df1d288d33bbf6bc332fa77a1a44ee4a289158df553a935a8302f0ba21cebd29ce3a511a5039130333c5771fb1563f13d088943e55394c74d605fbb4539d7a53ac74a23490722606678aee3f62ac7e27a111287caa7298e9ac0bf768a73af4a758e9446920e44c0ccf15dc7ec558fc4f422250f954e531d35817eed14e75e94eb1d288d241c898199e2bb8fd8ab1f89e8444a1f2a9ca63a6b02fdda29cebd29d63a511a4839130333c5771fb1563f13d088943e55394c74d605fbb4539d7a53ac74a23490722606678aee3f62ac7e27a111287caa7298e9ac0bf768a73af4a758e9446920705e657bec3f017d25c2773a18af214f91742f5517f0754f75e94eb2d288d23f6ccf23a4aee085b2184b166c27bc6a99cf2abaa72fe28e9febd29d66a511a47d65b09ff634238e1bfd5c54d045d6fd2e4a97d14b5fc6c140d7a53ace4a2348f9577398993ea99eefc77ed198820c22574171fe93bf8f2682af4a759d944691f13af989df53b5c0975bc3cb28fa766ca92f2659247f1ff1065e94eb3c288d23e102056c6b7dce03e6844dbe49eb4b014d0a8f0e45fe41860dbd29d679511a47c1040ad8d6fb9c07cd089b7c93d696029a151e1c8bfc830c1b7a53acf2a2348f820815b1adf7380f9a1136f927ad2c05342a3c3917f9061836f4a759e544691f04102b635bee701f34226df24f5a580a685478722ff20c306de94eb3ca88d23e082056c6b7dce03e6844dbe49eb4b014d0a8f0e45fe41860dbd29d679511a47c1040ad8d6fb9c07cd089b7c93d696029a151e1c8bfc830c1b7a53acf2a2348f8200d6d738c49e37c58e035ba72c91e7b3d5005ed7c906327704a759e554691f03f1adae71893c6f8b1c06b74e5923cf67aa00bdaf920c64ee094eb3caa8d23e07e35b5ce31278df16380d6e9cb2479ecf54017b5f2418c9dc129d679551a47c0fc6b6b9c624f1be2c701add39648f3d9ea802f6be483193b8253acf2aa348f81f862e99171749a4845d021cf248845dbcfaca133c606341b05a759e555691f03ef51e57b8fbf9713436d09c64106e9df9a0584c3890c69da0c4eb3caabd23e07dd2fdd4fcc5590a93ea6d9b47a0431e72eb74be30f18d558199d679558a47c0fb95fba9f98ab21527d4db368f40863ce5d6e97c61e31aab0333acf2ab148f81f724b8797de2ca527b2682cf9e00725c4b58971e83963570467759e556391f03ee3232188692facd21c9d201bb804a9b165bf262c6fc6afaccfeb3caac823e07dc5464310d25f59a4393a403770095362cb7e4c58df8d5f599fd679559047c0fb8a18987a519515cb2a414696d80904ed91a8db0dbc1ac05740acf2ab218f81f7133130f4a32a2b9654828d2db01209db2351b61b783580ae8159e556431f03ee266261e94654572ca9051a5b602413b646a36c36f06b015d02b3caac863e07dc4c50d62b397f10dc09d6fadeb83e859487f31ac9ddd6045e066795590d7c0fb8972dbeaf1fd4843acb7abbe5687369510a9277efb8ac0a600dcf2ab21bf81f712d5b7d5e3fa9087596f577cad0e6d2a21524efdf715814c01b9e556437f03ee25a430d152c28736de5b7b5bd99c4036c24f6221adfb02b24383caac870e07dc4b3122c830527495e833c31a32b7e650044988691bc6057ec71795590e2c0fb89652459060a4e92bd0678634656fcca0089310d2378c0afd8e2f2ab21c581f712ca48b20c149d257a0cf0c68cadf9940112621a46f1815fb1c5e556438b03ee25941d7670d610ad76d1ae534153e9862a1f7076e9e002c1078ccaac871707dc4b273aece1ac215aeda35ca682a7d30c543ee0edd3c005820f1995590e2e0fb8964e01ec1c0519185dfe86132d479c76d0786e1e037d0b05c2342ab21c5d1f712c9b03d8380a3230bbfd0c265a8f38eda0f0dc3c06fa160b8468556438ba3ee2593607b07014646177fa184cb51e71db41e1b8780df42c1708d0aac871747dc4b26c0f60e028c8c2eff430996a3ce3b683c370f01be8582e11a15590e2e8fb8964d81ec1c0519185dfe86132d479c76d0786e1e037d0b05c2342ab21c5d1f712c9b03d8380a3230bbfd0c265a8f38eda0f0dc3c06fa160b8468556438ba3ee259360071959f31c7a0259519179df1412461633c33b3fc172310bac871748dc4b26bf0e32b3e638f404b2a322f3be28248c2c6786767f82e46217590e2e91b8964d7e1c6567cc71e809654645e77c50491858cf0cecff05c8c42eb21c5d23712c9afc38cacf98e3d012ca8c8bcef8a09230b19e19d9fe0b91885d6438ba46e25935f871959f31c7a0259519179df1412461633c33b3fc172310bac871748dc4b26bf06f3d971065a2cde1fef563da78a6eac124a9c3f52e47c57690e2e91c8964d7df6a8d86cda1a81e7bcab0eface7abfd7cf595e3e75c912eee21c5d23a12c9afbd612d664819b2bfaf62280751c5b622f4976e23cbb92401dd438ba47525935f794e6d253d09c802169116369b81ca6de3db1ea3947249a7bb871748eb4b26bef128eca326e9f286e4eef2952ef9f303c2627fa325e494f3780e2e91d7964d7de151d9464dd3e50dc9dde52a5df3e60784c4ff464bc929e6f01c5d23af2c9afbc22fc4e5487e2c9e4b88907cb3de2a37043640e894925571e138ba475f5935f7835f89ca90fc593c971120f967bc546e086c81d12924aae3c271748ebeb26bef064b25edcecf14fbe5ef081ac76f07040b8545fe4f49576b85e2e91d7e64d7de0b225e344a748c7a83aad65d86d46c3011b6ce589b92b07b0cc5d23afdc9afbc1544bc6894e918f50755acbb0da8d860236d9cb1372560f6198ba475fb935f782a158b29d6a8946cc6781f9e13480ee841877bbe6b4ac390341748ebf826bef0532b1653ad5128d98cf03f3c26901dd0830ef77cd6958720682e91d7f04d7de0a6562ca75aa251b319e07e784d203ba1061deef9ad2b0e40d05d23afe09afbc14c386ba7621b05e8eb8dc3189236d56a06e8204f57561e25a1ba475fc235f7829770d74ec4360bd1d71b8631246daad40dd0409eaeac3c4b43748ebf846bef052e6dc0f635427a266603d28a40d1b3d0164cc3995a587a3a87e91d7f09d7de0a5b679445175b56cf83d46b3c7999c5c82745c98eb1b0f61910d23afe14afbc14b55b3ae2db8d1021bf759ca0eb29e9b84937d5796061edd622a475fc2a5f78296942881e63f082c636b7ff69ce4a31988d1bed4ebdc3dd504648ebf855bef052d111229574b7680f253cc4fb948ac15914e41cf97887bc448d91d7f0ac7de0a5a122452ae96ed01e4a7989f7291582b229c839f2f10f78891b23afe158fbc14b42448a55d2dda03c94f313ee522b0564539073e5e21ef11236475fc2b1f78296841527045291a2fbe1b2ee049c4c68f0a1cd2a27c13de3c86d8ebf8564ef052d072a4e08a52345f7c365dc093898d1e1439a544f827bc790db1d7f0ac9de0a5a0e549c114a468bef86cbb8127131a3c28734a89f04f78f21b63afe1593bc14b41c354a7b41637a61c564364cda59a5ad0915939a06ef1fe76d75fc2b28782968376a94f682c6f4c38ac86c99b4b34b5a122b27340dde3fcedaebf85650f052d06e613c45b2644c09cd5d9f5b615cf4dc1f0290c418bc8141b6d7f0aca2e0a5a0db4e8ae4119efa96528804debab047e038b163e42e7904276eafe15946c14b41b5292820d01457af5cdccfe56d56ede86c0f0a2459f209f2de5fc2b28e82968369525041a028af5eb9b99fcadaaddbd0d81e1448b3e413e5bcbf85651d052d06d230b2dbed27c1402b4005bdad5215c9aae86aed64c8296f7a7f0aca3b0a5a0da36165b7da4f828056800b7b5aa42b9355d0d5dac99052def4fe15947614b41b464eddc86175678364ccdd1ead3eb54ea64dee119020a761eafc2b28ed2968368b29cde96fc13189816680655273c8c547481e7f1d415067d6f85651db52d06d15539bd2df82631302cd00caa4e7918a8e903cfe3a82a0cfadf0aca3b6a5a0da2a3349fe6bdb28a8bd66c7bd41c5813d17ccbc58720543435ce159476e4b41b4536693fcd7b651517acd8f7a838b027a2f9978b0e40a8686b9c2b28edc968368a6593a525c430525ad67e51cff0c631c59df33bdc5150eb17485651dba2d06d14b3e86fd655c6cce129c9061f60f2460ae6aa9d7872a1f06ea0aca3b755a0da295092053778f3c1edd05e6ebe414a6e95781960b0b543fb1d5159476ebb41b45291240a6ef1e783dba0bcdd7c8294dd2af032c1616a87f63aa2b28edd768368a5224814dde3cf07b74179baf90529ba55e06582c2d50fec7545651dbaed06d14a449029bbc79e0f6e82f375f20a5374abc0cb0585aa1fd8ea8aca3b75da0da29481e179025ca2470882b34e63940ccbd72c5a30cb243fcc15259476ebc41b4528f3c2f204b9448e1105669cc7281997ae58b46196487f982a4b28edd788368a51e04709943fef444d87999c0dcf9911dc5c2ce8ec60ff4a94a651dbaf206d14a3b08e13287fde889b0f33381b9f3223b8b859d1d8c1fe95294ca3b75e40da2947611c2650ffbd11361e6670373e64477170b3a3b183fd2a5299476ebc81b4528ec2384ca1ff7a226c3ccce06e7cc88ee2e167476307fa54a5328edd790368a51d84709943fef444d87999c0dcf9911dc5c2ce8ec60ff4a94a651dbaf206d14a3b01a25812cb4eb1dc6fffe43972881e0b3061434befe96cd4da3b75e41da29475f344b025969d63b8dfffc872e5103c1660c28697dfd2d9a9b476ebc83b4528ebe689604b2d3ac771bfff90e5ca20782cc1850d2fbfa5b35368edd790768a51d7c5d3e62127dbb70efccb844b13a6d2d92dce401f4f4b80e6e1dbaf20fd14a3af7468f1cd1d1d964976636b15a6b388320660a5fe6e971c0dd3b75e420a29475ed193092507a154be699338aaccccf2e3b78571bcad2e525bb76ebc8424528ebd9326124a0f42a97cd32671559999e5c76f0ae3795a5ca4b76edd790848a51d7b264c24941e8552f9a64ce2ab3333cb8ede15c6f2b4b9496eddbaf210914a3af645596eb30a70ce1ec96627d5e5cd799d66efb3a53972ad1dcb75e421329475ec737402f0e247c4690f98b22b4b00d5ba78a38d0a42e5747ba6ebc8427528ebd8d6e805e1c48f88d21f3164569601ab74f1471a1485cae8f74dd79084ea51d7b1a691314e568539cfbb2f2b2cab6939698d5259e8db95ec2eabaf2109e4a3af6335e388277a709bcaf32ab8d8d6385552c568d991872bf29d675e4213d9475ec6548835d9c2475fc16321d4312bd68d253595d8e2de57ff7adebc8427c28ebd8c91d1913e51f4e7ae43100ae1d712fcca15efd7858cb01935cd79084f951d7b1913a3227ca3e9cf5c862015c3ae25f9942bdfaf0b1960326b9af2109f2a3af63220076a841539c6e4890c8e06dbb1d5a8028383d602c07f1745e4213e6475ec64300ed5082a738dc912191c0db763ab50050707ac0580fe2e8bc8427cc8ebd8c8601daa1054e71b922432381b6ec756a00a0e0f580b01fc5d179084f991d7b190c03b5420a9ce372448647036dd8ead40141c1eb01603f8ba2f2109f323af63218076a841539c6e4890c8e06dbb1d5a8028383d602c07f1745e4213e6475ec64300ed5082a738dc912191c0db763ab50050707ac0580fe2e8bc8427cc8ebd8c8601daa1054e71b922432381b6ec756a00a0e0f580b01fc5d179084f991d7b190c03b5420a9ce372448647036dd8ead40141c1eb01603f8ba2f2109f323af63218002ba9a0072d0cb4895a695b313b8a822e47fbc2907f3185f4213e6485ec642ff05753400e5a196912b4d2b6627715045c8ff78520fe630be8427cc90bd8c85fe0aea6801cb432d22569a56cc4ee2a08b91fef0a41fcc617d084f99217b190bfc15d4d00396865a44ad34ad989dc5411723fde1483f98c2fa109f3242f63217f82ba9a0072d0cb4895a695b313b8a822e47fbc2907f3185f4213e6485ec642ff05753400e5a196912b4d2b6627715045c8ff78520fe630be8427cc90bd8c85fe03ab8d8c98a9554dd366b94bce48830b3cc31663efcc7bbd184f99218b190bfbf01840a3feb8d2c72399d5171bf6e896244a5287af9911ba409f3243263217f7d0308147fd71a58e4733aa2e37edd12c4894a50f5f322374813e64864c642fefa061028ffae34b1c8e67545c6fdba25891294a1ebe6446e9027cc90c98c85fdf40c2051ff5c696391ccea8b8dfb744b12252943d7cc88dd204f992193190bfbe81840a3feb8d2c72399d5171bf6e896244a5287af9911ba409f3243263217f7d0308147fd71a58e4733aa2e37edd12c4894a50f5f322374813e64864c642fefa061028ffae34b1c8e67545c6fdba25891294a1ebe6446e9027cc90c98c85fdf404e1778a29cf8bbd49b6ee0d7ada2d91cfed69979c88f7605f992193290bfbe7f284149f21053fa6103a3e9a751a3da34a9ef8ef09120900cf3243266217f7cfd508293e420a7f4c20747d34ea347b46953df1de122412019e64864cc42fef9fa2d17807517b26c3bdb55ce953ced90cd540097bf4483e434cc90c99985fdf3f35a2f00ea2f64d877b6ab9d2a79db219aa8012f7e8907c869992193330bfbe7e640705a81352c33a73a1d624cea146b2ffc44bafa121134d43243266717f7cfcb0cf30daf40baea064100ec91ca86fe5aa4cbd1f124240da964864ccf2fef9f9519e61b5e8175d40c8201d923950dfcb54997a3e248481b52c90c999e5fdf3f2a33cc36bd02eba8190403b2472a1bf96a932f47c4909036a59219333cbfbe7e5467986d7a05d750320807648e5437f2d5265e8f8921206d4b243266797f7cfca85b4333a0e211231bdcd4f1149ece0da4f8ff7b0f42427e974864ccf3fef9f94f4298bfee9a84c8ef86700a2133fa43449e41521b8486a12f90c999e8fdf3f29d1143d88a0b6c1496d9a63c3a5e52ae83e8c50034090ee660219333d2fbe7e5392287b11416d8292db34c7874bca55d07d18a0068121dccc0432667a5f7cfca72450f62282db0525b6698f0e9794aba0fa31400d0243b9980864ccf4bef9f94e416311cfd31c3276e99f809cae8f39c19f26a5d9d4878d7020c999e98df3f29c72c6239fa63864edd33f01395d1e73833e4d4bb3a90f1ae0419333d31be7e538e58c473f4c70c9dba67e0272ba3ce7067c9a9767521e35c0832667a637cfca71c3d9b4096647bbe2c9c86764f3dfb08ca3f9548e743c85c1164ccf4c7f9f94e370748d9d99f59ff1105d314967254398f2b6cedcb87925c23c999e990f3f29c6d0e91b3b33eb3fe220ba6292ce4a8731e56d9db970f24b8479333d321e7e538da1d2367667d67fc44174c5259c950e63cadb3b72e1e49708f2667a643cfca71b43a46ceccfacff8882e98a4b392a1cc795b676e5c3c92e11e4ccf4c879f94e368009ff646cc0273c829f7715f1ba1c0ed631138b57927663d999e99103f29c6cf013fec8d9804e79053eee2be374381dac622716af24ecc7b333d32207e538d9e027fd91b3009cf20a7ddc57c6e8703b58c44e2d5e49d98f6667a6440fca71b3c04ffb23660139e414fbb8af8dd0e076b1889c5abc93b31ecccf4c881f94e367809ff646cc0273c829f7715f1ba1c0ed631138b57927663d999e99103f29c6cf013fec8d9804e79053eee2be374381dac622716af24ecc7b333d32207e538d9e027fd91b3009cf20a7ddc57c6e8703b58c44e2d5e49d98f6667a6440fca71b3c04ffb23660139e414fbb8af8dd0e076b1889c5abc93b31ecccf4c881f94e367802c089f78d8d64ae1c4378713981f155dbd7b11762767e19a9e99104029c6ceff58113ef1b1ac95c3886f0e27303e2abb7af622ec4ecfc3353d322080538d9dfe3c34d69039bbae3edda4444656da7d71a22ea1d59da12a6b7a644101a71b3bfb047c05cd49d9df35880eb084a41322ddf09f9fa83b43f8d7f4c882044e3677f508f80b9a93b3be6b101d6109482645bbe13f3f507687f1afe99104089c6cefea11f0173527677cd6203ac212904c8b77c27e7ea0ed0fe35fd322081138d9dfd423e02e6a4ecef9ac40758425209916ef84fcfd41da1fc6bfa644102271b3bfa847c05cd49d9df35880eb084a41322ddf09f9fa83b43f8d7f4c882044e3677f501b931256119e6968ce9c388c78c283b8c03651046880beff9910408ac6cefe9f372624ac233cd2d19d387118f1850771806ca208d1017dff322081158d9dfd3e6e4c49584679a5a33a70e231e30a0ee300d94411a202fbfe6441022b1b3bfa7c68aaeb5d6355cdfe41a7ec5bbc7245c0adf4e42044079bfdc88204573677f4f75d682f679d0e1eb4501600af6f42b37c082c243d8810dbfc910408af6cefe9ed46e2b77c107ec0206cf22956d4e38ef2bc9aa47810235bfa2208115fd9dfd3d919d7c7a4f76002f8a6aa7aa5a02545e02577a4ed20485bf5441022c0b3bfa7b133af8f49eec005f14d54f54b404a8bc04aef49da4090b7ea88204581677f4f62675f1e93dd800be29aa9ea968095178095de93b481216fd510408b02cefe9ec45ad095d491629a7d0219fd24f78856fbd7ff8366024483ab208116069dfd3d8741b38455f927b7b1d0fa2241e56ed5f25c4162c9048aab5741022c0e3bfa7b0d0f796158c8b1f21b6eba6c7bc13bd3df64c5218f0916faaf8204581d77f4f6191ef2c2b19163e436dd74d8f78277a7bec98a431e122df55f0408b03aefe9ec323de5856322c7c86dbae9b1ef04ef4f7d9314863c245beabe08116075dfd3d86407dd63731bf2139342998bd6003cc6f5d26b687548b9797d1022c0ecbfa7b0c70fbac6e637e42726853317ac00798deba4d6d0ea9172f2fa204581d97f4f618e1f758dcc6fc84e4d0a662f5800f31bd749ada1d522e5e5f4408b03b2fe9ec31c3eeb1b98df909c9a14cc5eb001e637ae935b43aa45cbcbe881160765fd3d863809e88fde9583bbebf65ee557fa2a9757d2f8e3518b993bd2022c0eccfa7b0c6f13d11fbd2b0777d7ecbdcaaff4552eafa5f1c6a3173277a404581d99f4f618de27a23f7a560eefafd97b955fe8aa5d5f4be38d462e64ef4808b03b33e9ec31bc4f447ef4ac1ddf5fb2f72abfd154babe97c71a8c5cc9de9011607667d3d863782a9b56962e9e417732b47d7799079d77dbd09115b995612122c0ecd0a7b0c6ef5536ad2c5d3c82ee6568faef320f3aefb7a1222b732ac2424581d9a14f618dde367fb30590db889497981dd65a7c9dda1b84a053e65728858b03b3439ec31bbb6cff660b21b711292f303bacb4f93bb4370940a7ccae510b160766873d863776661124c319d0a50a2b269f5160509f631a54dd4c995e46172c0ecd0f7b0c6eeb5834a2330a03cccc2313669ab6ff66c0e0ec169632be302f581d9a1ff618ddd53c7b9d12ea6a1c5012ecf52d645cf57c6e1a8929657e045fb03b3440ec31bba9050992d2ab36bb57f2a01252bf1812f388776e4fcafdacc060766882d86377510a1325a5566d76afe54024a57e3025e710eedc9f95fb5980c0ecd105b0c6eea214264b4aacdaed5fca80494afc604bce21ddb93f2bf6b30181d9a20b618ddd44284c969559b5dabf95009295f8c0979c43bb727e57ed660303b34416c31bba8850992d2ab36bb57f2a01252bf1812f388776e4fcafdacc060766882d863775102d44b3023d39edb620c8724fd960866bbb3025f65fb73c0d0ecd105c0c6eea1f5a8966047a73db6c4190e49fb2c10cd776604becbf6e781a1d9a20b818ddd43e412524b5cb4a39904fe7f1375be041a99902f3d67ede94353b34417131bba87b0e5ca2186cf6f5d86c960a66ae1eab4dde4843a9fdbecc6b766882e3637750f51cb94430d9edebb0d92c14cd5c3d569bbc908753fb7d98d6ecd105c6c6eea1ea39728861b3dbd761b258299ab87aad3779210ea7f6fb31add9a20b8d8ddd43d472e510c367b7aec364b0533570f55a6ef2421d4fedf6635bb344171b1bba87a871dc7a33a5d1e03e9626ce62d848dcd890c6969cdbee6ab866882e3737750f4f6fcb4d1422064334f913c4bda6efe1abcdcf8936b7de7971cd105c6f6eea1e9d6ba8f2d51a6f0921beedb173443deb5247e16e6a6fbe96e49a20b8dfddd43d3963643e570b4094fb4aa18ade7ed9fe9f3c0538d1df7ed1ca344171c0bba87a7152dad55aece3acae62093db4f4122539244ccda0beff47956882e3827750f4e131c80362b029dc1490d8a361de82726cf4dbf73e7e00332bd105c705eea1e9c1639006c56053b82921b146c3bd04e4d9e9b7ee7cfc006657a20b8e0bdd43d382533266379709f30a1028b57f7067f1ae7fb238f6f80270b044171c18ba87a7033277251c047668cbed1792f6d72e0b57aba6cdeaf0068561882e3832750f4e0564ee4a3808ecd197da2f25edae5c16af574d9bd5e00d0ac3105c7064ea1e9c0a55eeed1ce83c25e7812473d3531655595add93a8c01bb98720b8e0cad43d381337f032e6a6dace86cf0f0f9e9c8ad2ad61fd834e8039170f4171c196a87a70256fe065cd4db59d0d9e1e1f3d3915a55ac3fb069d00722e1e82e3832d50f4e04a6bd3244771cdbcd309026672688972b03438693700e6003e05c7065ba1e9c09363b8a13bb9fdfc5ddecaf4dcc7710d5b14b32e6b01cda47d0b8e0cb843d3812553839b244a5e7b738a5c11b1854042b0d5a8b8d3039cecfb171c197187a7024933198ef56b1f799ee17e4b5b00dead5c5793cda3073b7df72e3832e40f4e049166331dead63ef33dc2fc96b601bd5ab8af279b460e76fbee5c7065c81e9c09225878948282e0693352bf5563f9d8dd6c0a9192891cef9bddb8e0cb913d3812433d0381b1dc23551e7244d2bfea0fe2d2c165810f39e0dbbc71c197237a70248506195c108ea92cf4b14fcd77ca7deda02f0d5e1b73c35b79e3832e47f4e049090c32b8211d5259e9629f9aef94fbdb405e1abc36e786b6f3c7065c8fe9c09212186570423aa4b3d2c53f35df29f7b680bc35786dcf0d6de78e0cb91fd381242430cae084754967a58a7e6bbe53ef6d01786af0db9e1adbcf1c19723fa70248486195c108ea92cf4b14fcd77ca7deda02f0d5e1b73c35b79e3832e47f4e0490904f3ddabeab88214df6bfd6f1461bdc008dee1f6b786d133d7065c8ff9c09211f2a8e0e2a2d72c553ba45d5da8295dffbc81e9ad3f0dbca7be0cb92003812423d551c1c545ae58aa7748babb5052bbff7903d35a7e1b794f7c19724007024847a364a91558c2d9806b5dd7f6200b5a7e9ccbcc74cc370cdf0832e4801e04908f36c9522ab185b300d6bbafec4016b4fd399798e9986e19be1065c9003c09211e6653c9e030718e2d2a43c257ff934c7a1df3579300dc4dbc30cb92008812423cb568b94b2e494485d153e72f7e8c7b73e6aad4e5d1b8b5b871972401202484795392982129f8b1371f7430de7c7ed9677819cf8b737185b0f32e4802504908f29725304253f1626e3ee861bcf8fdb2cef0339f16e6e30b61e65c9004a09211e5270b860f7548ed07fa9d25f97161481d8b2b63ed9dc63103dcb92009512423ca36d831a9b7f8023b7206ae72622872bac11aed9b0b8c7c47c9724012b2484794567188de3d562ca260d9bf6443b6c7f52cfa00f5e71912cfa2e4802574908f2895a43747481281703e7fe14806d3726a04b827ab9e323fdf55c9004af9211e51140994195d8b2b0bf9cc250f8d0cc753b43475170c6499febb92009602423ca210d44dbd887c7e437064ac9e997f7127132d0fede8c94e3d8724012c1484794411a89b7b10f8fc86e0c9593d32fee24e265a1fdbd1929c7b0e4802582908f288235136f621f1f90dc192b27a65fdc49c4cb43fb7a32538f61c9004b05211e51046a26dec43e3f21b832564f4cbfb893899687f6f464a71ec39200960a423ca2086060163552e0c6283172c69175cf4f0dd95249e5c94fe18824012c158479440f4cd285177c240f082fabb51ae1fcc6165ee6efc892a167114802582c08f2881d25b762dbceaaa0c82c1d922dba57b4276a103b8e254472239004b05911e510394b6ec5b79d554190583b245b74af684ed420771c4a88e447200960b223ca207222efe41c110d05d87d3c70aedfbcf89854834a3595136c8f4012c165479440e345dfc838221a0bb0fa78e15dbf79f130a906946b2a26d91e802582ca8f2881c617d1e91d1a969a19c1b7eab375520a5bfe4f84d3544f563e004b05961e51038b2fa3d23a352d3433836fd566eaa414b7fc9f09a6a89eac7c00960b2c3ca207165f47a4746a5a686706dfaacdd548296ff93e134d513d58f8012c165879440e2c4aa1a195ab175385da857d93a0ee7ada9ebe8297a27c55f102582cb1f2881c5721559bd82c9129c381d1231f383b1dafe9bf612c44fa4fe304b05964e51038ad42ab37b05922538703a2463e70763b5fd37ec25889f49fc60960b2c9ca20715a1168c80d88a729c5d40ab474d74a9eba533fe0ae13eae38d12c165949440e2b322d1901b114e538ba81568e9ae953d74a67fc15c27d5c71a2582cb292881c56645a32036229ca717502ad1d35d2a7ae94cff82b84fab8e344b05965251038acc175899191b9bd0e66d1bcb9eb0b31dcd4641616d9f58c069960b2ca5a20715972eb132323737a1ccda37973d61663b9a8c82c2db3eb180d32c16594b440e2b2e5d6264646e6f4399b46f2e7ac2cc7735190585b67d6301a6582cb296881c565c46d72175b34109eb35a484ed7bf71664de4d6769fac7a74db059652e1038acb719c09b983ce4968e380f31d2ee4c54c468dd2ad0f590f29c60b2ca5d2071596d3381373079c92d1c701e63a5dc98a988d1ba55a1eb21e538c16594ba40e2b2da67026e60f3925a38e03cc74bb9315311a374ab43d643ca7182cb297481c565b45a17356ebd8737298d3fb68f68c0ce1df32bb284ac8938e4059652ea038acb674040c38a5170f10ae7459516c7dfc4369299c106591415c90b2ca5d5071596cd0c93dfc1794464cd9b515225861db067d175de09b229cf9316594bab0e2b2d991927bf82f288c99b36a2a44b0c3b60cfa2ebbc1364539f262cb297561c565b32324f7f05e51193366d4548961876c19f45d77826c8a73e4c59652eac38acb664649efe0bca23266cda8a912c30ed833e8baef04d914e7c98b2ca5d5871596cc8555054c46aa8cf9181db4a5058392e77c3a03c98229e9d326594bab1e2b2d98f36b30235abb421dad07cbc98a6d084ea3382d52d453ede65cb297564c565b31d6d66046b576843b5a0f979314da109d46705aa5a8a7dbccb9652eac98acb663a66de618385330a230eb91a5a91a03ba37a4db0b214fd1d982ca5d5941596cc7359cf1bb3e0c896fdea385cad199e9f41a0ddbd6129fbdf31594bab292b2d98e53fb0901497f3b0b3a136e152299b667dedfdd6bf53f96263b2975653565b31c90b7378d60649e41f0f33ea9c4994f4f6883e097ba7f468c8652eaca7acb6639116e6f1ac0c93c83e1e67d5389329e9ed107c12f74fe8d190ca5d594f596cc7222dcde3581927907c3ccfaa712653d3da20f825ee9fd1a32194bab29eb2d98e445b9bc6b0324f20f8799f54e24ca7a7b441f04bdd3fa346432975653d65b31c884349e60d3b00c4a8c004d1bc8fad77633022f3b77f48308752eaca7bcb66390f12a624c74c640c094ccfcb7115b916c10c88436bfe92050fa5d594f896cc721d254c498e98c81812999f96e22b722d82191086d7fd240a1f4bab29f12d98e43a4a98931d31903025333f2dc456e45b0432210daffa48143e975653e25b31c87421437ee73982e30233448380a426de031084775cf491cc7e2eaca7c5b66390e74286fdce7305c60466890701484dbc062108eeb9e92398fc5d594f8b6cc721ce11205449bc6e0ec099d835fa86f9a006ee543970d248d5f9bab29f17d98e439b2240a89378dc1d8133b06bf50df3400ddca872e1a491abf375653e2fb31c873644815126f1b83b026760d7ea1be6801bb950e5c3492357e6eaca7c5f66390e6c1514fafab9d2f8bc9b87d7cc2e2b28321ee42783924853ced594f8bfcc721cd72a29f5f573a5f179370faf985c5650643dc84f072490a79dab29f17f98e439ae5453ebeae74be2f26e1f5f30b8aca0c87b909e0e49214f3b5653e2ff31c8735c34ba3082a4fa489ca904e65967b7698ba363981992444277aca7c5ff6390e6b76974610549f491395209ccb2cf6ed31746c73033248884ef594f8bfec721cd6e5efb1ab76a4ba52a70d9c15d953bce2939d0bc634912addfb29f17fe8e439adb4a088e1baaf9cd0cae79aab320d5c44d1fe3d4c39226ffc0653e2ffe1c8735b5202374e42c561cd129b97d5e3809b094ec0a0584244fa381ca7c5ffd390e6b694046e9c858ac39a25372fabc70136129d8140b08489f470394f8bffa721cd6d20ca02c3d87baf5fc73ac1d70d684ea4e5c6a720d9140320829f17ff5e439ada31940587b0f75ebf8e7583ae1ad09d49cb8d4e41b2280641053e2ffebc8735b463280b0f61eebd7f1ceb075c35a13a93971a9c8364500c820a7c5ffd790e6b68c650161ec3dd7afe39d60eb86b4275272e353906c8a0190414f8bffaf21cd6d1856151c855211e27f0787ff055eaccce072e97cd61404c4839f17ff5f439ada2f383c91b77a8647b5dbd62602b3b7c1bb921555a9280b2d083e2ffebf8735b45d7079236ef50c8f6bb7ac4c05676f8377242aab5250165a107c5ffd7f0e6b68ba6d049f8ac07ba18f3c1ec002c53d2ee8f497b2a1a02e5821f8bffaff1cd6d173661b97c25759c5d64503a7fd80d885cc9571c140405e5444f17ff5ff39ada2e55849883185160e6456cd77f2f80f3393d725de7d80be4c8ae2ffebff735b45c93ca5690fe08e9f807a6117dde67c8f225a8e18f8017e3d16c5ffd7ffe6b68b91055d2acc977fc1b8c18857b3c357463f615e8ded02fe1e2e8bffb000cd6d17210aba55992eff83718310af6786ae8c7ec2bd1bda05fc3c5d17ff60019ada2e421574ab325dff06e306215ecf0d5d18fd857a37b40bf878ba2ffec00335b45c842ae95664bbfe0dc60c42bd9e1aba31fb0af46f6817f0f1745ffd80066b68b90855d2acc977fc1b8c18857b3c357463f615e8ded02fe1e2e8bffb000cd6d1721037b7b23fc65ab9cffdd11e706146efe6d814199d5fc569d27ff6001aada2e41f6f6f647f8cb5739ffba23ce0c28ddfcdb028333abf8ad3a4ffec00355b45c83e6af121abefcd69f7c40aa1b97b79e7960c92c2727f174b4affd8006bb68b907b61f49c04b5fd56a754db6b6aed51f726c567e0e1fe303a96ffb000d86d1720f54ffb90b6425d3006767cfecdd102164837121dc0fc62192eff6001b1da2e41e92c097a195b1ce2c4b9c025939862548b1a66977ef8c5d65efec00364b45c83d15812f432b639c58973804b2730c4a91634cd2efdf18bacbdfd8006c968b907a23c38411242d60dcab3c6be4657e77a2715dcb9f8e318fd7cfb000d93d1720f430482dad15c0e9e4d3453a484a62d1c48d7fbcfeec6339efaf6001b28a2e41e850905b5a2b81d3c9a68a749094c5a3891aff79fdd8c673df5ec00365145c83d0a120b6b45703a7934d14e921298b471235fef3fbb18ce7bebd8006ca28b907a142416d68ae074f269a29d24253168e246bfde7f76319cf7d7b000d9451720f428482dad15c0e9e4d3453a484a62d1c48d7fbcfeec6339efaf6001b28a2e41e8501c6db2d858364c5e573ab88cbc01b115abbc59d5c675835fc00365155c83d09f38db65b0b06c98bcae7571197803622b5778b3ab8ceb06bf8006ca2ab907a13e71b6cb6160d931795ceae232f006c456aef1675719d60d7f000d9455720f427c6f7fef6f9814e5aa869bec5dd66bb0a80a252aab33adbeff001b28abe41e84f76b12378c068c4e0cd9fe00b3a335894ac08cb153675d21ff00365158c83d09ed6236c7c4e37b1ed180c2295f3cc93a902d5bbea3cebbe7ff006ca2b2907a13d9507fe8369d58c05ace4a7ab66ff09d1b06f9d9449d7973ff00d9456620f427b12d12291a1114036d695b1d64d63f6230ba360e863af48bff01b28acd41e84f615a245234222806dad2b63ac9ac7ec461746c1d0c75e917fe0365159a83d09ec2405afd151ab2906d72329d8b4f5bb0bd951a9615ebd3d3fd06ca2b3607a13d830cc852d70bc7a392b12b630e95158975d6778828d7a94bfb0d94566d0f427b051990a5ae178f47256256c61d2a2b12ebacef1051af5297f61b28acda1e84f60a33214b5c2f1e8e4ac4ad8c3a545625d759de20a35ea52fec365159b43d09ec14664296b85e3d1c95895b1874a8ac4baeb3bc4146bd4a5fd86ca2b3687a13d8285897861d92dcbbe2df7c58e147b6bf5813bade8a7a9663b1d94566d1f427b04f3d4164e7fc1bfa7d8bbed9ba85cba6aad3b81911f52e6b64b28acda4e84f609d0695227cce9a77b2e443db6d01f5755053b28e20ea5e7aca65159b4ad09ec1390d2a44f99d34ef65c887b6da03eaeaa0a7651c41d4bcf594ca2b3695a13d82721a5489f33a69decb910f6db407d5d5414eca3883a979eb2994566d2b427b04e434a913e674d3bd97221edb680fabaa829d94710752f3d65328acda5684f609c8695227cce9a77b2e443db6d01f5755053b28e20ea5e7aca65159b4ad09ec13905eb6a846a9b1791455419598350cd2052294201a4bd0fd4da2b3695b13d8271f497fa93a29c574e0774953286077cc04f16a9c3197a39e9c4566d2b727b04e3d1f11ab2129ed6c78bb58ce48b74dc0048f1794602f48e1398acda56f4f609c793e23564253dad8f176b19c916e9b80091e2f28c05e91c273159b4ade9ec138f2085905317e18349aba29611ad395280ce8a0ad7dbd2528e72b3695be3d8271e310b20a62fc3069357452c235a72a5019d1415afb7a4a51ce566d2b7c7b04e3c6216414c5f860d26ae8a5846b4e54a033a282b5f6f494a39cacda56f8f609c78c42c8298bf0c1a4d5d14b08d69ca9406745056bede929473959b4adf1ec138f1811a2abc4b7e5cc636f5c39a52fb0a8c9364d33d8d2543273b3695be4d8271e2f234557896fcb98c6deb8734a5f6151926c9a67b1a4a864e766d2b7c9b04e3c5e468aaf12df97318dbd70e694bec2a324d934cf634950c9cecda56f93609c78bc1927b6d29590e5d347a7f52173e36e445eabfac392a3379e9b4adf27c138f177324f6da52b21cba68f4fea42e7c6dc88bd57f58725466f3d3695be4f8271e2ee649edb4a5643974d1e9fd485cf8db9117aafeb0e4a8cde7a6d2b7c9f04e3c5dc55500f4182e9b1520a05d10395799a1da1a23219951b60f5da56f93f09c78bb736b2772fdc35e55be0d1c9ff21515c35ef86c0302a3865ecb4adf27f138f176d6d64ee5fb86bcab7c1a393fe42a2b86bdf0d80605470cbd9695be4fe271e2eda66dc356c473a1827500d4ff47ba398d26a5d5cbda8e33bb3d2b7c9fd4e3c5db359cac38564d6b3066ce0c7e0eda5599f80fd157851c81b68a56f93fb9c78bb653fa7dfb7a00fe8c4a687b7b9d1a8db39ae3c86eda391dad24adf27f838f176c90b62181c1682544119d5976b99afde6e08bb69d8472559a595be4ff171e2ed9116c430382d04a88233ab2ed7335fbcdc1176d3b08e4ab34b2b7c9fe2e3c5db222d8860705a09510467565dae66bf79b822eda7611c95669656f93fc5c78bb6445b10c0e0b412a208ceacbb5ccd7ef37045db4ec2392acd2cadf27f8b8f176c884233da6e3e87c6c96a1f9eb1915c0edb37f8f98172573e5a5be4ff181e2ed90f107a0d895372104aa105655b191645b11c344effe4b020b5b7c9fe313c5db21d20f41b12a6e42095420acab6322c8b6238689dffc960416b6f93fc6278bb643a41e836254dc8412a8415956c645916c470d13bff92c082d6df27f8c4f176c8740fe2c4f771f3050cd4f152d0bf1055838de4d3fc2582a9aebe4ff18ae2ed90e71fc589eee3e60a19a9e2a5a17e20ab071bc9a7f84b05535d7c9fe315c5db21ce3f8b13ddc7cc143353c54b42fc41560e37934ff0960aa6baf93fc62b8bb6439c0b28806865faab1e7450be7deee0d4171b68fbde2c16f176f27f8c58176c8737165100d0cbf5563ce8a17cfbddc1a82e36d1f7bc582de2ede4ff18b02ed90e6e2ca201a197eaac79d142f9f7bb83505c6da3ef78b05bc5dbc9fe31605db21cdc594403432fd558f3a285f3ef7706a0b8db47def160b78bb793fc62c0bb6439b83e9a5f33360d349f11d20fd6e46b696c62d219dfc170bb7027f8c58276c8736f09471713427cebf5f06a47a5bf34fad371e68fbc82e31ae14ff18b05ed90e6dd128e2e2684f9d7ebe0d48f4b7e69f5a6e3cd1f7905c635c29fe3160bdb21cdba251c5c4d09f3afd7c1a91e96fcd3eb4dc79a3ef20b8c6b853fc62c17b6439b744a38b89a13e75faf83523d2df9a7d69b8f347de41718d70a7f8c582f6c8736e82083c9e0fe314216d36aa253e9add531caab57c52e335215ff18b05fd90e6dcf410793c1fc62842da6d544a7d35baa639556af8a5c66a42bfe3160bfb21cdb9e0e218030cf278b131a70b1479d157cc1d6efbb11b8ceec58fc62c1806439b73b1c4300619e4f162634e1628f3a2af983addf7623719dd8b1f8c58300c8736e76388600c33c9e2c4c69c2c51e7455f3075bbeec46e33bb163f18b060190e6dcec710c0186793c5898d3858a3ce8abe60eb77dd88dc67762c7e3160c0321cdb9d86e2a5bb9c8db33e973d13c71c7b5f4181b3e0d188cf06990c62c1807439b73af686710206818ea8ab468a0db85ca102ae2be762e19e277228c58300f8736e75d5ce078eda69457cd359769af01f2485071bf485933c6924618b060200e6dceb945d34a88238b325237f4fb55fa42b89b8fc0ecaf678ec88d3160c0411cdb9d7117b8edbd1d78e75c3cb01ea3eae39931cbc4355bcf1f351b62c1808339b73ae12f71db7a3af1ceb879603d47d5c7326397886ab79e3e6a36c5830106736e75c25ee3b6f475e39d70f2c07a8fab8e64c72f10d56f3c7cd46d8b06020ce6dceb8449d9c695c229bd99b2471d174d7af1890a6406db78fb4cdc160c041acdb9d7071fc5e5d85ab5fdeb3154622691540b0cc10a69b3f1f83db92c1808369b73ae0d3f8bcbb0b56bfbd662a8c44d22a816198214d367e3f07b725830106d36e75c1a0b29f00e413a7a649217b0923bae542db06c02ccc7e29ae5b06020db6dceb8331653e01c8274f4c9242f6124775ca85b60d805998fc535cb60c041b6db9d70662ca7c03904e9e992485ec248eeb950b6c1b00b331f8a6b96c180836db73ae0cc594f807209d3d32490bd8491dd72a16d836016663f14d72d830106db6e75c1983eb15990ea0a2900ee41311bb1436ad5b30288c97e2b525c06020db7dceb832f09750bceaa76d4b9a9488a2f58e4fda612476d8ffc5848b90c041b70b9d7065d12ea179d54eda9735291145eb1c9fb4c248edb1ff8b09172180836e173ae0cba25d42f3aa9db52e6a52228bd6393f698491db63ff16122e430106dc2e75c19744ba85e7553b6a5cd4a44517ac727ed30923b6c7fe2c245c86020db85ceb832e8236315977dcfce52614ecaed84ae025bd0b934fcc5862f91c041b70c9d7065cf46c62b2efb9f9ca4c29d95db095c04b7a17269f98b0c5f2380836e193ae0cb9e199eaf0acda1bc01520153ae09163169ef272ff0161a62480106dc3375c1973b333d5e159b437802a402a75c122c62d3de4e5fe02c34c490020db866eb832e76667abc2b3686f00548054eb82458c5a7bc9cbfc058698920041b70cdd7065cec5907d103437062c25cd0c5683f0fb34a257bdb7db0d4b6410836e19cae0cb9d73e21fab35d43483c8667b2c8747d8e8ef73a12f861ab1083106dc33a5c1973ad08564e1390e91330d9958d88df5945189ab681edc357c50720db8675b832e75910ac9c2721d22661b32b1b11beb28a31356d03db86af8a0e41b70ceb7065ceb22159384e43a44cc3665636237d6514626ada07b70d5f141c836e19d6e0cb9d6442b2709c87489986ccac6c46faca28c4d5b40f6e1abe283906dc33adc1973ac8117739e5e4f3b5c5661f0085ebf2798457aa7ad9357df4730db8675c832e758f22ee73cbc9e76b8acc3e010bd7e4f308af54f5b26afbe8e61b70ceb9065ceb1e45dce79793ced715987c0217afc9e6115ea9eb64d5f7d1cc36e19d720cb9d63c17cc27dbfe0030e2fdbe2c2755f1f41d699632c6abf147996dc33ae51973ac772f984fb7fc0061c5fb7c584eabe3e83ad32c658d57e28f32db8675ca32e758ee5f309f6ff800c38bf6f8b09d57c7d075a658cb1aafc51e65b70ceb9465ceb1dc4a73978cc66409cfbab78932a5edc8e5f8f3f2325f8be0cc6e19d729cb9d63b720f987c6632a965742353a5d4239b9c69e2a4061bf196599dc33ae54973ac76d41f30f8cc6552cae846a74ba8473738d3c5480c37e32cb33b8675ca92e758eda0ff877c6630cdc14d59b116cff450f1524eb5d83fc673a6870ceb9535ceb1db31ff0ef8cc619b829ab3622d9fe8a1e2a49d6bb07f8ce74d0e19d72a6b9d63b663fe1df198c337053566c45b3fd143c5493ad760ff19ce9a1c33ae54d73ac76cc0bd616dfeec9635e799eb35ff086a0a3d39d481ce33b77448675ca9be758ed9717ac2dbfdd92c6bcf33d66bfe10d4147a73a9039c676ee890ceb9537ceb1db2e2f585b7fbb258d79e67acd7fc21a828f4e7520738ceddd1219d72a6f9d63b65c5eb0b6ff764b1af3ccf59aff8435051e9cea40e719dbba2433ae54df3ac76cb84973c6abc2f8b89f66b15df6fec83237e616ddcb33b91849675ca9bf758ed96f1ef9e6045c53f3f69a28e3e5f3ee8c6a787017936773d493ceb9537feb1db2dd3df3cc08b8a7e7ed3451c7cbe7dd18d4f0e02f26cee7a9279d72a6ffd63b65ba07f9f0be47b252923569b78fc61859a48e02ba4a9dd0f6503ae54e00ac76cb730ff3e17c8f64a5246ad36f1f8c30b3491c0574953ba1eca075ca9c0158ed96e61fe7c2f91ec94a48d5a6de3f18616692380ae92a7743d940eb953802b1db2dcc3fcf85f23d929491ab4dbc7e30c2cd247015d254ee87b281d72a700563b65b980bb164915187abdb2361a0f457e3c2438c6e00a6dd110904ae54e00bc76cb72f1762c922a30f57b646c341e8afc7848718dc014dba2212095ca9c0178ed96e5e2ec59245461eaf6c8d8683d15f8f090e31b8029b74442412b953802f1db2dcbc5d8b248a8c3d5ed91b0d07a2bf1e121c63700536e888482572a7005e3b65b9784728a1c1eedd406a02e0373d749a4c337322666ad112344be54e00bd76cb72ef1a639c30b41d038bd2869672df92c061928728d2a2260c98ca9c017bed96e5dd34c73861683a0717a50d2ce5bf2580c3250e51a5444c1931953802f7db2dcbba698e70c2d0740e2f4a1a59cb7e4b01864a1ca34a889832632a7005efb65b97745f2f3a32774a9f1660fadb8ef2f42b07407ba292113208c754e00be06cb72ee74a70cd11c4f7c0e48ebbdf15dc467e092d39a1212265b58fa9c017c1d96e5dcd20f3f2d060520480ea3de623aeeb240d06b59e3f44cd0f2053802f84b2dcbb9941e7e5a0c0a40901d47bcc475dd6481a0d6b3c7e899a1e40a7005f0965b977320fe223ee57aa94bb75bdc086b20ab82ec718d4fa1335e0824e00be13cb72ee631fc447dcaf552976eb7b810d6415705d8e31a9f4266bc1049c017c2796e5dcc63f888fb95eaa52edd6f7021ac82ae0bb1c6353e84cd782093802f84f2dcbb98c0b23781f93b728937ab42c2d86b3e970e50903cd99b0a8137005f09f5b9773171646f03f276e5126f568585b0d67d2e1ca12079b33615026e00be13eb72ee62e2c8de07e4edca24dead0b0b61acfa5c394240f3666c2a04dc017c27d6e5dcc5c591bc0fc9db9449bd5a1616c359f4b8728481e6ccd85409b802f84fadcbb98b83e49daa611d50bef7808ead0619cbf08fcd298d69b0c2538005f09f6b977316f08a60df8fa0c9a96bcd7fd98b997a60ca5e78daa3619ee7100be13ee72ee62dd114c1bf1f419352d79affb31732f4c194bcf1b546c33dce2017c27dce5dcc5ba229837e3e8326a5af35ff662e65e9832979e36a8d867b9c402f84fb9cbb98b7445306fc7d064d4b5e6bfecc5ccbd30652f3c6d51b0cf738805f09f73977316e81673383c772c2c239a4601838fd888c50abb36a061a08b110be13ee82ee62dcf2ce67078ee585847348c03071fb1118a15766d40c341162217c27dd05dcc5b9e59cce0f1dcb0b08e6918060e3f6223142aecda8186822c442f84fba0bb98b73c3fac1a908fc3e3d49ef6341475226e23021c11000d05fc895f09f74277316e770b6a8dcdf5ea4a610ab29020e0a30440b07a7dfd1a0d9d13be13ee85ee62dced16d51b9bebd494c215652041c146088160f4fbfa341b3a277c27dd0bdcc5b9da2daa3737d7a929842aca4083828c1102c1e9f7f46836744ef84fba17b98b73b45b546e6faf525308559481070518220583d3efe8d06ce89df09f742f7316e76842bb358c350728c877ef2a06008e6c05b3ea3bcea0db753ce13ee85fe62dcecf1188c3c54070d448bca47c03f77b00061416d39a41b88e7ac27dd0c0cc5b9d9d2311878a80e1a8917948f807eef6000c282da73483711cf584fba18198b73b3a46230f1501c35122f291f00fddec0018505b4e6906e239eb09f74303316e7674185876d6d9e924fdb1ea0817b236282b4cf8f8cf0dc617d713ee860762dcece730b0edadb3d249fb63d4102f646c505699f1f19e1b8c2fae27dd0c0ec5b9d9ce6161db5b67a493f6c7a8205ec8d8a0ad33e3e33c37185f5c4fba181d8b73b39c4ed60f63a5abaaa55c1668b5880f6955140a22756e3262b99f74303c16e7673729be777421b9d80284f2f963067cfaa4d456a0e7dc6669743ee860792dcece6d537ceee84373b00509e5f2c60cf9f549a8ad41cfb8ccd2e87dd0c0f25b9d9cda330c367d5d49e2c1e0920d841052128dfd9cdf9c719b49d1fba181e5b73b39b366186cfaba93c583c1241b0820a4251bfb39bf38e33693a3f74303cb6e767366584332a24b8a0dbf4f0e5e0837a67232a2b5da6ec66ecb48ee860797dcece6cb3c98bdf16d769e366ae2e40865ab0c5ff1ae10da8cdf3a92dd0c0f30b9d9cd950543d48fb14fbf24a28bf008c1b440ba8f9e7db219c01926ba181e6273b39b290a87a91f629f7e494517e011836881751f3cfb643380324d74303cc4e7673652150f523ec53efc928a2fc02306d102ea3e79f6c86700649ae8607989cece6ca42a1ea47d8a7df925145f80460da205d47cf3ed90ce00c935d0c0f3139d9cd948543d48fb14fbf24a28bf008c1b440ba8f9e7db219c01926ba181e6273b39b290348ceaa3005a674c1e4429102ce63f4ca01212403804c8d84303cc4f7673651f6919d54600b4ce983c88522059cc7e9940242480700991b08607989eece6ca3e5e460338d7cc1fe845d6cc38a9f7252d2c8aa4fde014c7620c0f313ed9cd947b489e5f1e85fac2885873c0694a4c72550557a5f8c02b32c5181e627eb39b28f51d4f16e9e25807c87dada8ca8af70ca4b6f1a7ee8058098b303cc4fe673651e93a9e2dd3c4b00f90fb5b519515ee19496de34fdd00b01316607989fcce6ca3d2014eb4545fc2a1d9c37ccb22223a5a8d8808fbb70161ca2dc0f313fa9cd947a3029d68a8bf8543b386f996444474b51b1011f76e02c3945b81e627f539b28f46053ad1517f0a87670df32c8888e96a362023eedc058728b703cc4fea73651e8c0a75a2a2fe150ece1be6591111d2d46c4047ddb80b0e516e07989fd4e6ca3d1814eb4545fc2a1d9c37ccb22223a5a8d8808fbb70161ca2dc0f313fa9cd947a3029d68a8bf8543b386f996444474b51b1011f76e02c3945b81e627f539b28f46053ad1517f0a87670df32c8888e96a362023eedc058728b703cc4fea73651e8c0336c82dcb7b36f998b2bb909138b6ebeb0c0377db0e6bae17989fd4f6ca3d17f66d905b96f66df33165772122716dd7d61806efb61cd75c2f313fa9ed947a2fe59c4641fb530411df9750c1c448be2f56f4339f3c39c8f86e627f53eb28f45fb3f9b20ec40c304f3bfb040307f75ede58ac8cfe4873ac30ecc4fea7e651e8bf50b489a8557e88c9f4c26a858f54a03c5c1d3fbc60e772a1e989fd4fdca3d17e91691350aafd1193e984d50b1ea94078b83a7f78c1cee543d313fa9fb947a2fd22d226a155fa2327d309aa163d5280f17074fef1839dca87a627f53f728f45fa45a44d42abf4464fa613542c7aa501e2e0e9fde3073b950f4c4fea7ee51e8bf48409c010254eb4cac8f30ad874afe6456c982185de77445ea89fd4fdda3d17e8f0d4a5ab180391c10eb2783068c5af0a83f468cb8ceea2fd613fa9fbc47a2fd1d1a94b56300723821d64f060d18b5e1507e8d19719dd45fac27f53f788f45fa3a35296ac600e47043ac9e0c1a316bc2a0fd1a32e33ba8bf584fea7ef11e8bf4746a52d58c01c8e087593c183462d78541fa3465c677517eb09fd4fde23d17e8e860b803c4d9f443c67f3e5860bc0d327ea0ab2789eea4a1623fa9fbc57a2fd1cf4d8260368a4b0a44cb42d8b96e788cf7ed98ab10dd4ae6c57f53f78bf45fa39d27171919eaf89741634bd96ad34f41ea8773b21eba97718bfea7ef18e8bf47394e2e3233d5f12e82c697b2d5a69e83d50ee7643d752ee317fd4fde31d17e8e72286ebd148244dfbd59f58da3439b2fa4ca112477ea5f6a30fa9fbc64a2fd1ce350dd7a290489bf7ab3eb1b4687365f49942248efd4bed461f53f78c945fa39c62dcd4cfedf7601ad349c5e8504cae68dd486eddca97f4cc4ea7ef1938bf4738b5b9a99fdbeec035a6938bd0a0995cd1ba90ddbb952fe9989d4fde32717e8e71643478ca8543a896c9f37a20c0989c231fe5e136fa5fed714a9fbc64f2fd1ce2b12a171fd7ed795910b356c100971ac5ea8fe82dc4bff522a53f78c9f5fa39c552542e3fafdaf2b22166ad82012e358bd51fd05b897fea454a7ef193ebf4738aa4a85c7f5fb5e56442cd5b04025c6b17aa3fa0b712ffd48a94fde327d7e8e7154211de898cd1f2f402671887841eb8aeff43672df5ffc35539fbc64fbfd1ce2a7423bd1319a3e5e804ce310f083d715dfe86ce5bebff86aa73f78c9f7fa39c54e1089fb100adf3fb8668c49d8fe0c53ba7d1c277a7ff2794f7ef193f0f4738a9b2113f62015be7f70cd1893b1fc18a774fa384ef4ffe4f29efde327e1e8e715364227ec402b7cfee19a312763f8314ee9f4709de9ffc9e53dfbc64fc3d1ce2a6c1062312d2d5c807b012876bfe6c0c5ce952397d0ff956e7cf78c9f88a39c54d720c4625a5ab900f60250ed7fcd818b9d2a472fa1ff2adcf9ef193f114738a9ae4188c4b4b57201ec04a1daff9b03173a548e5f43fe55b9f3de327e228e71535c0f23e2164146868fd609ddf72c64566f555f1a84fcad17e8bc64fc461ce2a6b71e47c42c828d0d1fac13bbee58c8acdeaabe3509f95a2fd178c9f88c39c54d6e3c8f8859051a1a3f582777dcb19159bd557c6a13f2b45fa2f193f118738a9adc0531695ee096b7367d1517b15980db75573b3024e56a6346e327e231e71535b70a62d2bdc12d6e6cfa2a2f62b301b6eaae766049cad4c68dc64fc463ce2a6b6e14c5a57b825adcd9f4545ec566036dd55cecc09395a98d1b8c9f88c79c54d6dc298b4af704b5b9b3e8a8bd8acc06dbaab9d981272b531a37193f118f38a9adb8531695ee096b7367d1517b15980db75573b3024e56a6346e327e231e71535b70323f8488e93969876f691e23267996a593a86099ad4e0cdd64fc463de2a6b6df647f0911d272d30eded23c464cf32d4b2750c1335a9c19bac9f88c7bc54d6dbe55106ad07b4828d58a6aa08490448290fae3de63b539d77693f118f88a9adb7b36332e4dccf2d462e19b690116e72d1ca20a18c46a7552ee27e231f21535b6f56c665c9b99e5a8c5c336d2022dce5a3944143188d4eaa5dc4fc463e42a6b6dea64df11e40a2dd4435333cbfc51fadc6d346abf0ea9d6efb99f88c7c954d6dbd355d07c74eabe2b3e732dbff09a53e0d51517da1a53af83743f118f93a9adb7a537b35196abded934b321a7d92b05e9a4d6721031a760aae97e231f28535b6f496f66a32d57bdb26966434fb2560bd349ace420634ec155d2fc463e50a6b6de926adf9f0785dde78a994cc75ca275ce8e060a9cc39d844fa6f88c7ca24d6dbd2361d196bbe21e51ccff5fb6b13b49c516b85795843b0a434ef118f9459adb7a454fb586249a9f2651cb85955a6cf1b2281cf1870576162a9ee231f28c35b6f4892b7d64f60ba0cf5b63d152acd0418c4ae6256a07ec2df93ec463e5196b6de91156fac9ec17419eb6c7a2a559a0831895cc4ad40fd85bf27d88c7ca32d6dbd2223a07ec8504e5c0255c0b72ab3764592644d8041cb0b988fc118f9466adb7a443002231b6e02e030284dd0d4e6526da4735f264366174b5f9231f28ce5b6f48850044636dc05c060509ba1a9cca4db48e6be4c86cc2e96bf2463e519cb6de910a0088c6db80b80c0a13743539949b691cd7c990d985d2d7e48c7ca3396dbd221401118db70170181426e86a732936d239af9321b30ba5afc918f94672db7a442802231b6e02e030284dd0d4e6526da4735f264366174b5f9231f28ce5b6f48850044636dc05c060509ba1a9cca4db48e6be4c86cc2e96bf2463e519cb6de910a0088c6db80b80c0a13743539949b691cd7c990d985d2d7e48c7ca3396dbd221401118db70170181426e86a732936d239af9321b30ba5afc918f94672db7a442802231b6e02e030284dd0d4e6526da4735f264366174b5f9231f28ce5b6f48850044636dc05c060509ba1a9cca4db48e6be4c86cc2e96bf2463e519cb6de910a0014d9342d8e6e8ccb40fb618c91c744d275d33582d2d9888d7ca3396ebd2213ff29b2685b1cdd199681f6c319238e89a4eba66b05a5b3111af94672dd7a4427fe5364d0b639ba332d03ed8632471d1349d74cd60b4b662235f28ce5baf4884ffc32dbfa1949d6e911d4a1345c84984e8e5adc081396cde86ce519cb76e9109ff765b7f43293add223a94268b909309d1cb5b810272d9bd0d9ca3396edd2213fee57824111fdbe26ff1f4af96a08bf623417b27c4b5b3945b494672ddca4427fdb3b16dad0d1ded0b60b5c1acc07dcec62dba75493b6742f6a28ce5bba4884ffb502400e4e7a202423e37e5d90061800c0639105246cea02d5519cb7759109ff6904801c9cf4404847c6fcbb200c300180c7220a48d9d405aaa3396eeb2213fed209003939e880908f8df97640186003018e441491b3a80b554672ddd64427fda412007273d101211f1bf2ec8030c006031c882923675016aa8ce5bbac884ffb482400e4e7a202423e37e5d90061800c0639105246cea02d5519cb7759109ff6904801c9cf4404847c6fcbb200c300180c7220a48d9d405aaa3396eeb2213fed201c15ec4b5e6b8bb0ac5d8bf97c5e58139083a5183a825955672ddd65427fda3f382bd896bcd7176158bb17f2f8bcb02721074a307504b2aace5bbaca84ffb47e7057b12d79ae2ec2b1762fe5f179604e420e9460ea0965559cb7759509ff68fc6cc1bb07c9bee03d2fb287c3d950e897305f84bed4146eac396eeb2b13fed1f76595cebc69e043322c2b377fa8fff9290d01657aa82a815972ddd65727fda3ed573df625aa23091c251c96f7485e1a4cc64526f25056a6b3e5bbacaf4ffb47d93a8e44f82aa894f016ff55e6871a5c9438cca9e1a0aef168cb77595f9ff68fb1012ee29d2bb3ac97fac4d3c50492e1231ddbafc0415f86d296eeb2c03fed1f61025dc53a5767592ff589a78a0925c2463bb75f8082bf0da52ddd65807fda3ec204bb8a74aeceb25feb134f14124b848c776ebf01057e1b4a5bbacb00ffb47d84097714e95d9d64bfd6269e2824970918eedd7e020afc3694b7759601ff68fb0812ee29d2bb3ac97fac4d3c50492e1231ddbafc0415f86d296eeb2c03fed1f61025dc53a5767592ff589a78a0925c2463bb75f8082bf0da52ddd65807fda3ec204bb8a74aeceb25feb134f14124b848c776ebf01057e1b4a5bbacb00ffb47d8402383a742b038ceb52f300a7a3fceb9899a1a3c1dafc50d4c77596020f68fb07f47074e8560719d6a5e6014f47f9d73133434783b5f8a1a98eeb2c041ed1f60fe1a20f5b79745bd8c898651e0f5990e2114ab4c73bf15d932dd658084da3ec1fb3441eb6f2e8b7b19130ca3c1eb321c42295698e77e2bb265bacb0109b47d83f66883d6de5d16f63226194783d664388452ad31cefc5764cb7596021368fb07ec5d1a066990906f1c18f8b6ffa3269903519cbf9af8b06d97eb2c0427d1f60fd74646657ff78360effeb795f73cab5a014f7bdb32f1627f30d6580850a3ec1fad189f23acc5694497ca3553e66fb4dbfd4b3a1262e2c6a262acb010a247d83f59313e47598ad2892f946aa7ccdf69b7fa967424c5c58d44c5596021448fb07eb2627c8eb315a5125f28d54f99bed36ff52ce8498b8b1a898ab2c042891f60fd64510b761301aca7761e70c72b740507e50612ef141636b716658085133ec1fac72e2944d2d9bbd1a409a7b64ede6837c4b8683a252c6f122dcb010a277d83f58d5c5289a5b377a348134f6c9dbcd06f8970d0744a58de245b9602144efb07eb1a44b76bf83d51c947f36501336fff070d8de34491b1bdecb82c04289ef60fd6331581309d51061547b3902a5ed65c3615c808e520637d7d715808513eec1fac652b02613aa20c2a8f672054bdacb86c2b9011ca40c6fafae2b010a27dd83f58ca5604c2754418551ece40a97b5970d857202394818df5f5c5602144fbb07eb194381bdd975e932cf569477aeea93fd8a8ec8985001bed8f8bc04289f860fd63277037bb2ebd2659ead28ef5dd527fb151d9130a0037db1f17808513f0c1fac64e6c81cf0a50af368d71e413b29b5d8a9e5e686ffd6fb7e230010a27e283f58c9b6515f6c177c0efd2b08e4f5d2d193d3769133bf7df71686102144fc607eb1935563e462fc5e4625d2de2c6b25090a2697e68d3ecbee474c304289f8d0fd63269388ee50c622b4772288bb55c977f6ccda91403d67dca8d8708513f1b1fac64d1711dca18c4568ee451176ab92efed99b522807acfb951b0e10a27e363f58c9a26e4decde5f0fa0806ef4fd6a545bdb3150926b56f72bda1d2144fc6d7eb1934368ae32699481c3b8aab022cc9f15de5d4d6732aaee59583b4289f8dbfd6326855d6ebd7fff660a2922266d913489e4b54710c152dcb454778513f1b8fac64d0946efd3acd52e970a1113031a5f71f1653a63dea2b96a4cf00a27e372f58c9a1119f2000680bfb0cbeeec2e2cb5420ac5210a194272d63de1144fc6e6eb19342133e4000d017f6197ddd85c596a84158a42143284e5ac7bc2289f8dcdd632684267c8001a02fec32fbbb0b8b2d5082b1484286509cb58f784513f1b9bac64d0845ba258e0dc6009174427995da06e7e23b493261096b39309a27e373858c9a10743570a6e8f2294e655155ab3373b24421568a81e2d68ca1444fc6e71b193420d12c06d89f4a7ac8476f0dd5e64d4707ed713ac395ad3382989f8dce4632684192580db13e94f5908ede1babcc9a8e0fdae275872b5a6705313f1b9c8c64d08324b01b627d29eb211dbc375799351c1fb5c4eb0e56b4ce0a627e373918c9a10642215c4fc7b9fe6db844d12eb1d01abf164dfbdc7d69b654d4fc6e724193420c7442b89f8f73fcdb7089a25d63a0357e2c9bf7b8fad36ca9a9f8dce483268418e14696c9ec4e21e25ddfa73a46a64d7c03fc1531c5a6f39363f1b9c9164d0831b28d2d93d89c43c4bbbf4e748d4c9af807f82a638b4de726c7e373922c9a1063651a5b27b1388789777e9ce91a9935f00ff054c7169bce4d8fc6e724593420c6c2f5dbda2fd7373e6bc99c51b4984e5fcaa4cf4dfd37b6db2f8dce48c268418d75ebb7b45fae6e7cd79338a369309cbf95499e9bfa6f6db65f1b9c9184d0831ae49894f38cc305252bf2d3c651c71bfed55762f7c4def5acce37392319a10635b1f24f71e6ec3275d4b20a0c22f41a7d5572ebaf59be0599ac6e724643420c6b53e49ee3cdd864eba964141845e834faaae5d75eb37c0b3358dce48c868418d6a08a63526916f202cf948ab00b364c75008fd47d36f830a6c1b9c9191d0831ad3114c6a4d22de4059f291560166c98ea011fa8fa6df0614d837392323a10635a62298d49a45bc80b3e522ac02cd931d4023f51f4dbe0c29b06e724647420c6b4c4531a9348b790167ca4558059b263a8047ea3e9b7c185360dce48c8e8418d6981675ab15ed5485876150d8032caa9cfb3c16d933f8324ac2b9c9191e0831ad2f2ceb562bdaa90b0ec2a1b006595539f6782db267f06495857392323c10635a5e59d6ac57b552161d8543600cb2aa73ecf05b64cfe0c92b0ae724647820c6b4bc3fbfb15c4106aef2d74ce8115bb30fd48cf9259cc193fa16ce48c8f1418d69770b91bb65586fe09d7b5ff81aadc447a3c634a7368329982e9c9191e3831ad2ed172376cab0dfc13af6bff0355b888f478c694e6d0653305d392323c70635a5da2e46ed9561bf8275ed7fe06ab7111e8f18d29cda0ca660ba7246478e0c6b4bb45c8ddb2ac37f04ebdaffc0d56e223d1e31a539b4194cc174e48c8f1c18d69768452e0f025d608c8f82c5a9a2d2a2a2370f8ccf65329b26eac9191e3931ad2ecf166e76b191239bd6d2517b3d9ba36c68cb5bfac76537f1d692323c73635a5d9d2cdced63224737ada4a2f67b3746d8d196b7f58eca6fe3ad246478e6c6b4bb3a59b9dac6448e6f5b4945ecf66e8db1a32d6feb1d94dfc75a48c8f1cd8d6976743f860e395f7f616e5f5201e4d3798b410722323829c132b59191e39c1ad2ece70b1e751f956145948b6a2bc19d513e7cba86c06d5384096c2323c73935a5d9cd163cea3f2ac28b2916d457833aa27cf9750d80daa70812d846478e726b4bb39a2c79d47e558516522da8af067544f9f2ea1b01b54e1025b08c8f1ce4d697673458f3a8fcab0a2ca45b515e0cea89f3e5d436036a9c204b61191e39c9ad2ece683df9aaa62c76dc008368e411cb720fc654ae62d238423ac3323c73945a5d9ccf0805adf92f503ab8d397f01b8d424787559f21a1708619876478e729b4bb399d100b5bf25ea07571a72fe0371a848f0eab3e4342e10c330ec8f1ce536976733a2016b7e4bd40eae34e5fc06e35091e1d567c8685c218661d91e39ca6d2ece674402d6fc97a81d5c69cbf80dc6a123c3aacf90d0b8430cc3b23c7394da5d9cce80c6d383fcb662e45064529b0ca82a0700634761408633c77478e729c4bb399cf18da707f96cc5c8a0c8a5361950540e00c68ec2810c678ee8f1ce5389767339e31b4e0ff2d98b9141914a6c32a0a81c018d1d850218cf1dd1e39ca712ece673c6369c1fe5b31722832294d865415038031a3b0a04319e3ba3c7394e25d9cce7852e5dca98cc567083118c3049e882efb0f89bd3d86356b7578e729c5bb399cef31de11ffefed50c82ef7ae01336e85f0cb55d6780c6c7aebf1ce538c767339dd63bc23ffdfdaa1905def5c0266dd0be196abacf018d8f5d7e39ca718ece673ba538aa0ac9617c5d888a4dffcc4183fbdd999b5dd31b38fb0c7394e32d9cce77333279a0602920e68de0fe7f17e8ea7765f75c7b76368c3628e729c66b399cee5664f340c05241cd1bc1fcfe2fd1d4eecbeeb8f6ec6d186c51ce538cd67339dca58b0c0c4e0aabc5b4505c7bdf098c5d42a197ada8da4b18b39ca719bce673b933d73da3697b7fb6e56d1b773d78fb3a3007551b21b4b07177394e3389cce772506fa0d1a05d279947a6996dfa57d8f40ad2cff613697b22fe729c672399cee490df41a340ba4f328f4d32dbf4afb1e815a59fec26d2f645fce538ce47339dc921be834681749e651e9a65b7e95f63d02b4b3fd84da5ec8bf9ca719c8e673b92437d068d02e93cca3d34cb6fd2bec7a056967fb09b4bd917f394e3391cce772486fa0d1a05d279947a6996dfa57d8f40ad2cff613697b22fe729c672399cee4906b53fbed90b1b54719f903eca610101051e24823d2f7e9fde538ce48339dc91f62ba5087f7c5ed4600b82fd1427e481b5006ec44a5f177fcca719c91673b923d5186f9bcc5ee5d43ce36879a7b5ab8314c5034864be493fa94e33923ce7724792f204c26623f3d3f6933372ced13985d44e2c50997cacbf629c672489cee48f15e40984cc47e7a7ed2666e59da2730ba89c58a132f9597ec538ce49139dc91e2489389465f5f77b5719304abaaac896fbfcd70235f2cd3d9a719c92373b923c31d396b3995217222afec314f4bb73ada2bdd3c43be5b4bb44e339247e77247853a72d6732a42e4455fd8629e976e75b457ba78877cb697689c67248fcee48f0a00f805932ae84b428c76ed35253b13635bb74d0bf96ed2d238ce49209dc91e1301f00b2655d0968518edda6a4a7626c6b76e9a17f2dda5a4719c92413b923c2603e0164caba12d0a31dbb4d494ec4d8d6edd342fe5bb4b48e33924827724784c07c02c9957425a1463b769a929d89b1addba685fcb769691c6724904ee48f0980f805932ae84b428c76ed35253b13635bb74d0bf96ed2d238ce49209dc91e1301f00b2655d0968518edda6a4a7626c6b76e9a17f2dda5a4719c92413b923c2603e0164caba12d0a31dbb4d494ec4d8d6edd342fe5bb4b48e33924827724784c0081522424a8823fe083cc28a93e7d9a887e8e1f9b76b0d1d6724904fe48f097f102a4484951047fc1079851527cfb3510fd1c3f36ed61a3ace49209fc91e12fe205489092a208ff820f30a2a4f9f66a21fa387e6ddac34759c92413f923c25fc40a9121254411ff041e614549f3ecd443f470fcdbb5868eb3924827f24784bf80d647cd17ee4c298509250a134dbc2832ad07b9876b275d7724904ff48f097ef1ac8f9a2fdc98530a124a14269b7850655a0f730ed64ebaee49209fe91e12fde3591f345fb930a6142494284d36f0a0cab41ee61dac9d75dc92413fd23c25fbc6b23e68bf72614c284928509a6de14195683dcc3b593aebb924827fa4784bf78625a25c4c4aeac3cd5eb320b441a502d594a15846b29017824904ff58f097eef50c6a4365fbfdb31789c8c0e7e92c8555ed68705d653a6f149209fec1e12fddd2d9fa11995e2391abdff4014f383b8a569ef6a08aca8f1e392413fd93c25fbb95b3f42332bc472357bfe8029e707714ad3ded4115951e3c724827fb2784bf7724290dd132deb6722c4c3284bc46d0a905400041fb2a56b8f4904ff65f097eee3113412d3323950fd564c788f7f383d1b5442643c654c7b1f9209fecce12fddc5226825a66472a1faac98f11efe707a36a884c878ca98f63f2413fd99c25fbb8a44d04b4cc8e543f55931e23dfce0f46d510990f19531ec7e4827fb3384bf771415b2ef46682d0aa27f29ec73f02010d54e557de02a657cfd904ff668097eee272b65de8cd05a1544fe53d8e7e04021aa9caafbc054caf9fb209fecd012fddc4e56cbbd19a0b42a89fca7b1cfc08043553955f780a995f3f6413fd9a025fbb89c39a9d2e017cad7cbc6158b97775eaea51eee4afe532d8bed827fb3414bf771377353a5c02f95af978c2b172eeebd5d4a3ddc95fca65b17db04ff668297eee26e72b9a42d358de1e6e51c5655d3d8e28f27fb87f64cb7d3b709fecd062fddc4db7185a107417e468596fed4a39e0fed18fc396be999714b6f13fd9a0d5fbb89b56f1d9abb595f0fc2fac3d13f327e022ca4b533d032e43adf27fb341bbf7713696a4d8e238920a23dc24dca765b5a2c53f5acc39d65ca19bf4ff668387eee26d160ad74f3e8a3c7335161bce4ad1280a2979be337cb95d77f9fecd071fddc4da14d6d4294a7aa111e6f89a1c15083293fdb7a226c972d53003fd9a0e4fbb89b4126ecddd625b6a4f4abd96b7a97647a7a6336a0d62e5c4a017fb341caf77136814dd9bbac4b6d49e957b2d6f52ec8f4f4c66d41ac5cb89402ff668395eee26d0227c5d0056d3d168a7c2bd5e253f011e4391cdf55b972cc06fecd072cddc4da034f8ba00ada7a2d14f857abc4a7e023c87239beab72e5980dfd9a0e59bb89b4062b2998c28b56dce1bd757f81461e6f8b90b5d953e5ccd41cfb341cb47713680b5653318516adb9c37aeaff028c3cdf17216bb2a7cb99a839f6683968ee26d01638b8bbb703bdf63ec29c25fd0ed7e628ef19c14c9734f474ecd072d2dc4da02b7171776e077bec7d85384bfa1dafcc51de3382992e69e8e9d9a0e5a5b89b40566ef54788e55a5bb2d736bfec31bdc09e68a9612f5cd575d4b341cb4c713680ab69fce7bea1173a1d7b33a7d059d9a9377d951e5bb9ac8faa66839699e26d0155600c282a1890f6f2c32d7798aa117a69a76c98b4735ac355cd072d34c4da02a94c2aa9010784709d532117294a811ccdfb1b8d65e6b72aac9a0e5a6a89b405512467aaaee56b63f27308564a8b606196a27976c8cd6ff95a341cb4d613680aa148cf555dcad6c7e4e610ac9516c0c32d44f2ed919adff2b4683969ac26d015421db103686c10128198e7812223dfae553628372035c18969d072d3594da02a833b6206d0d820250331cf024447bf5caa6c506e406b8312d3a0e5a6b29b40550602d6664e86a2ccbe30642c8085dce14f84e3387dd707c9a841cb4d663680aa0b05accc9d0d45997c60c859010bb9c29f09c670fbae0f935083969acc6d0154160b59993a1a8b32f8c190b2021773853e138ce1f75c1f26a1072d3598da02a82c16b33274351665f1832164042ee70a7c2719c3eeb83e4d420e5a6b31b40550582d6664e86a2ccbe30642c8085dce14f84e3387dd707c9a841cb4d663680aa0b05accc9d0d45997c60c859010bb9c29f09c670fbae0f935083969acc6d015416041abec4e7f15b243e5d148196d967bdbe5107b72c1f40e1172d3598ea02a82bf0f6a3149d48de73f9868b82ad18b1fb2766352e283e9c023e5a6b31e4055057d1ed46293a91bce7f30d17055a3163f64ecc6a5c507d38047cb4d663c80aa0afa3da8c52752379cfe61a2e0ab462c7ec9d98d4b8a0fa7008f969acc79015415f40763e2fb7ad1bcb4900be94e82b7258e5f5cf3111f4fa5202d3598f302a82be70ec7c5f6f5a379692017d29d056e4b1cbeb9e6223e9f4a405a6b31e6055057ce1d8f8bedeb46f2d2402fa53a0adc96397d73cc447d3e9480b4d663cc0aa0af9c3b1f17dbd68de5a4805f4a7415b92c72fae79888fa7d290169acc79815415f3802508864837e4e00cd84bce021d080e0a2118d0ef4fbf603d3598f312a82be6f04a110c906fc9c019b0979c043a101c144231a1de9f7ec07a6b31e6255057cde094221920df938033612f380874203828846343bd3efd80f4d663cc4aa0af9bc128443241bf270066c25e7010e840705108c6877a7dfb01e9acc79895415f3782508864837e4e00cd84bce021d080e0a2118d0ef4fbf603d3598f312a82be6f04a110c906fc9c019b0979c043a101c144231a1de9f7ec07a6b31e6255057cde0203471cdb5f602eb2df560006a7e602330a59fba3eff24f5d663cc4ba0af9bbf4068e39b6bec05d65beac000d4fcc046614b3f747dfe49ebacc79897415f377e0ce41fe3ae3a8e64849ba7f9a057a8876ed8dae5fbfe37d8598f312f82be6efb19c83fc75c751cc909374ff340af510eddb1b5cbf7fc6fb0b31e625f057cddf633907f8eb8ea3992126e9fe6815ea21dbb636b97eff8df61663cc4be0af9bbec6720ff1d71d4732424dd3fcd02bd443b76c6d72fdff1bec2cc79897c15f377d85a5456e7ba0b69001680a791fbd8b07199d00a5cbfe5218698f312f92be6efaf40bb067c4a7954b7f9c7771bee0f88dddfe270b67fcbe70e31e625f357cddf5d0d8865a56b552c27c055162fd27d39b66c073d69ff99721d63cc4be7af9bbeb91b10cb4ad6aa584f80aa2c5fa4fa736cd80e7ad3ff32e43ac79897cf5f377d7236219695ad54b09f015458bf49f4e6d9b01cf5a7fe65c8758f312f9ebe6efae46c432d2b5aa9613e02a8b17e93e9cdb36039eb4ffccb90eb1e625f3d7cddf5c86498b3038bb54533d2178af51e31c3616cb6329cf998c5d73cc4be7bf9bbeb8f5543beb3edcd0d1f70f53de232c1aebd85aec136f3332faf79897cf8f377d71d3699d614b1fc9cf6aeb0a3bc5be18575b79fde6ae668035ff312f9f2e6efae396d33ac2963f939ed5d614778b7c30aeb6f3fbcd5ccd006bfe625f3e5cddf5c726679b0ff9e54f6928788b6e965e43dd18ac1d5a899a1b180cc4be7cc9bbeb8e35905baac130c6fdcdbd795cac226a39dc1c6074e334507029897cf9a377d71c53e1dce04fc7b62718475538d7aab6f362fce6a99668bb206312f9f356efae389084df4b6cf59479ad5b0cf12ebb506670bdf312fcd19080d625f3e6bddf5c711109be96d9eb28f35ab619e25d76a0cce17be625f9a32101ac4be7cd7bbeb8e222137d2db3d651e6b56c33c4baed4199c2f7cc4bf34642035897cf9af77d71c44426fa5b67aca3cd6ad8678975da833385ef9897e68c8406b12f9f35eefae388810f1a419cbf6fc6527d31926b1ae8e6b6a356ef9d19224d725f3e6bedf5c710f21e3483397edf8ca4fa6324d635d1cd6d46addf3a32449ae4be7cd7dbeb8e21e43c690672fdbf1949f4c649ac6ba39ada8d5bbe74648935c97cf9afb7d71c43c139f797b361a65e10b5ef12d83d29b55fdedd3cb8c92caba2f9f35f7fae38877273ef2f66c34cbc216bde25b07a536abfbdba797192595745f3e6beff5c710ee4e7de5ecd86997842d7bc4b60f4a6d57f7b74f2e324b2ae8be7cd7dfeb8e21dc290e24868735b1c027bdb16414f302aa9bb0fa596497f9d27cf9afc0d71c43b7521c490d0e6b63804f7b62c829e605553761f4b2c92ff3a4f9f35f81ae38876e304aeac6f33949b86bbced884a2a32a51b06456292618b4af3e6bf045c710edb6095d58de6729370d779db109454654a360c8ac524c31695e7cd7e08b8e21db64d3e03c8a347a9997bb9de191f06f28f185b71874987d12ccf9afc1271c43b6b268e603e1cf1d5eac439e42a346c0d18dcf93f0b9311465a9f35f825e38876d54d1cc07c39e3abd58873c85468d81a31b9f27e1726228cb53e6bf04bc710edaa264bd9a54a29da62ddadb8a0c80e5c5e2027582b4c46bd6b7cd7e0988e21db534c97b34a9453b4c5bb5b7141901cb8bc404eb056988d7ad6f9afc1311c43b6a62541bf41ff09ec43437d0a7b169799732cdfbcaa311c99aef35f826338876d4b4a837e83fe13d88686fa14f62d2f32e659bf79546239335de6bf04c6710eda96211955b4d28a33c4daba51e450bc8dc75fc14ea5c4740abccd7e098de21db52b4232ab69a5146789b574a3c8a1791b8ebf829d4b88e815799afc131bc43b6a561077af80208b51cb37af6f8939505f182b47969411d1cef435f826388876d4ab20ef5f004116a3966f5edf1272a0be30568f2d2823a39de86bf04c7110eda95641debe00822d472cdebdbe24e5417c60ad1e5a5047473bd0d7e098e221db52ac0fcfd4addabd11118a41a441c0e120bc067f109d8e901ba2afc131c543b6a5571f9fa95bb57a22231483488381c241780cfe213b1d2037455f82638a876d4aae3f3f52b76af4444629069107038482f019fc42763a406e8abf04c7150eda955c0a90fe1bac4b0b441ed34a05fd672ddae03ae0e9748281167e098e2b1db52ab71521fc37589616883da6940bface5bb5c075c1d2e905022cfc131c563b6a556e2a43f86eb12c2d107b4d2817f59cb76b80eb83a5d20a0459f82638ac76d4aadc5487f0dd62585a20f69a502feb396ed701d7074ba41408b3f04c7158eda955b835223a679b1336f9b9fac857ccd105a8aff06a944829b568e098e2b2db52ab6f6a4474cf36266df373f590af99a20b515fe0d52890536ad1c131c565b6a556de609b424b42af5e9eb4b1495729a23e9d6c04064e20a879a482638acc6d4aadbb4d48dd435bc13ff53628baa649a2a535844a68994152974a04c71599da955b7526a413338de502a239179d4489a37265b4d72d2f82a6d295098e2b34b52ab6e94d4826671bca0544722f3a891346e4cb69ae5a5f054da52a131c56696a556dd226a2a57b0df68d40b1249d0a1cebf1917f9f10bb0a9cee552638acd3d4aadba34d454af61bed1a8162493a1439d7e322ff3e21761539dcaa4c7159a7a955b746269cee990e3cb7ba91589c206a0dee40aabe9ee92a755d5598e2b35052ab6e8b4d39dd321c796f7522b13840d41bdc81557d3dd254eabaab31c566a0a556dd16268613110f5561a2122898799e95e0fd573cd7a1a9d71957638acd424aadba2b4d0c26221eaac344245130f33d2bc1faae79af4353ae32aec7159a84955b7456262aa4f113b80940156889de70b5abf00935ba83a75e095e8e2b350a2ab6e8ab4c5549e2277012802ad113bce16b57e0126b75074ebc12bd1c566a14556dd15624bcec712542a7b822684f71b934d7bad119460b9d79c97b38acd429aadba2ab4979d8e24a854f7044d09ee37269af75a2328c173af392f67159a85355b745561f060a716b6d2198566765bedb3186e5f0a7742b75e8c9ede2b350a7ab6e8aab3e0c14e2d6da4330accecb7db6630dcbe14ee856ebd193dbc566a14f56dd1556082a8272841709192663bef3632443926ee02caad7a4cbb88acd429fadba2aab105504e5082e12324cc77de6c6488724ddc05955af499771159a853f5b74555620aa09ca105c2464998efbcd8c910e49bb80b2ab5e932ee22b350a7eb6e8aaac4154139420b848c9331df79b19221c9377016556bd265dc4566a14fd6dd155580eba7fd517d3144a3302172e28a261219a4526aa7a4e5f89acd429fbdba2aaaf1d74ffaa2fa6289466042e5c5144c243348a4d54f49cbf1359a853f7b745555e3ae9ff545f4c5128cc085cb8a289848669149aa9e9397e26b350a7ef6e8aaabc01e6575594fb250964d6e1693b7131077e6b9150d274a04e66a14fdfdd15557703ccaeab29f64a12c9adc2d276e2620efcd722a1a4e9409ccd429fbfba2aaaee07995d5653ec9425935b85a4edc4c41df9ae454349d281399a853f7f745555dc0f32baaca7d9284b26b70b49db89883bf35c8a8693a50273350a7efee8aaabb81e6575594fb250964d6e1693b7131077e6b9150d274a04e66a14fdfdd15557703ccaeab29f64a12c9adc2d276e2620efcd722a1a4e9409ccd429fbfba2aaaee005a82e12152bc511027e8246d2aa69da4726b0319d29b79aa853f7f845555dbf0b505c242a578a2204fd048da554d3b48e4d60633a536f3550a7eff08aaabb7e16a0b84854af144409fa091b4aa9a7691c9ac0c674a6de6aa14fdfe1155576fc2d417090a95e288813f4123695534ed23935818ce94dbcd5429fbfc22aaaedf85a82e12152bc511027e8246d2aa69da4726b0319d29b79aa853f7f845555dbf041181aef7bdb24d81c9670d24bab634391186230a53897560a7eff09aaabb7df0e428e8bce18cc6805f3099c8db4ee81ce73205e4a72d2ad14fdfe1455576fbd1c851d179c3198d00be613391b69dd039ce640bc94e5a55a29fbfc28aaaedf7a390a3a2f386331a017cc267236d3ba0739cc817929cb4ab453f7f851555dbef47214745e70c663402f984ce46da7740e739902f253969568a7eff0a2aabb7de8703b4169b7ef49382bf6c1c0d1ad1017937461e1a72eced24fdfe1465576fbcf6c88db804641152824b3ab7999b84829d32b1fc04e5f41a59fbfc28daaedf79d65240fad62e4ad08162d7eeb29ceb84e52989b7d9cc0274c3f7f851c55dbef39565a78079c2bdcc7f92125ce49fb9897517392f83981f2997eff0a39abb7de7138c748bc0eba3c47bf0873948a5559294f2981ed73058933fdfe1474576fbce1718e91781d74788f7e10e72914aab2529e5303dae60b1267fbfc28e8aedf79c26f2f7b9d114b73d6c8e7f64a1fb38c9fe8e863b2cc17c8d0f7f851d25dbef3836a714fe6f8f96a655e96148c35c5413a7e132362983135a2eff0a3a5bb7de70560f4f87ac855578289f2511061e8aa6fa868a2c230640f46dfe1474c76fbce094dfc49a2670d31bce0aaca18ba2f7cd9fd13a18160c9c28ebfc28e99edf79c11280aebf1a47ce6318e1bbc296abd21aea6699effc195291e7f851d34dbef38215015d7e348f9cc631c377852d57a435d4cd33dff832a523cff0a3a69b7de70422c3e087368561b7e0535189da152aeb545e8d7fc0656487afe1474d46fbce083587c10e6d0ac36fc0a6a313b42a55d6a8bd1aff80cac90f5fc28e9a8df79c1063d0a7a7a77baf0afe19a8a6e7ba8e2cfc3e5bbed195ac5ecf851d352bef3820b06274da1c5d864178ffb3cd4edafed9a340dd3d732b72fdaf0a3a6a67de704150c4e9b438bb0c82f1ff679a9db5fdb34681ba7ae656e5fb5e1474d4cfbce082a189d36871761905e3fecf353b6bfb668d0374f5ccadcbf6bc28e9a99f79c1054313a6d0e2ec320bc7fd9e6a76d7f6cd1a06e9eb995b97ed7851d3533ef3820a86274da1c5d864178ffb3cd4edafed9a340dd3d732b72fdaf0a3a6a67de70415050fc0ce5916f05a9cc2dc295ac5bdb412dfcd6e356e79f5f1474d4d0bce0829f2e0a7277f9408e0b6521ad234f15de7d083c09c3add0e2bf28e9a9a279c1053d5c14e4eff2811c16ca435a469e2bbcfa107813875ba1c57e51d35344f3820a7a443c228cbb64bae5614cdc8532b5a1eecd32830bb7452efda3a6a68ae70414f3148a9dc64d2bf8828f5fe1025bc96bd846a762146e8c01fc474d4d16ce0829e529153b8c9a57f1051ebfc204b792d7b08d4ec428dd1803f88e9a9a2d9c1053ca522a771934afe20a3d7f84096f25af611a9d8851ba3007f11d35345b3820a794306746df3fc246cc47c5300ad4a986bce17d6ca07461b3e33a6a68b770414f2760ce8dbe7f848d988f8a6015a9530d79c2fad940e8c367c674d4d16ee0829e4e4daf7429d56b9de8ebdae823490442ee32380e7ed188738de9a9a2dec1053c9b277141008139be89a47bf83e8866add710b278faa3128b1cd35345be820a79354ee2820102737d1348f7f07d10cd5bae2164f1f546251639a6a68b7d0414f26a29d75caedb497cde5eb608f217f8df56ef0c3fe78c4bd0744d4d16fb0829e4d353aeb95db692f9bcbd6c11e42ff1beadde187fcf1897a0e89a9a2df61053c9a6336fcb6843887631479e4bc05641a55668735b9b3130e5d235345bed20a7934b66df96d08710ec628f3c9780ac834aacd0e6b7366261cba46a68b7da414f269659d1864de4845b7ceb3f56f94f64bd544e0fca69c4c53b49d4d16fb5829e4d2b3fb565489f6b39b1a344d5ea9527a2a34861f0d0898c1a94a9a2df6c053c9a550b7d233e1538f61b134fd3cd20ad6d413d063d9e1319d92a5345bed90a7934a916fa467c2a71ec36269fa79a415ada827a0c7b3c2633b254a68b7db214f269522df48cf854e3d86c4d3f4f3482b5b504f418f6784c6764a94d16fb6429e4d2a45be919f0a9c7b0d89a7e9e69056b6a09e831ecf098cec9529a2df6c853c9a54843e48c8e29f1e46901c364ca0134fc0e7ca635de319f36a6345bed91a7934a8f13db71c92a464b89d04cf18bf8c82017a58ec7b96340114d68b7db244f26951d27b6e392548c9713a099e317f190402f4b1d8f72c680229ad16fb6489e4d2a3a4f6dc724a9192e274133c62fe320805e963b1ee58d004535a2df6c913c9a54742aede6f62894df064f2db457bc9f28b7d8b899c81a022e6c45bed9237934a8e755dbcdec5129be0c9e5b68af793e516fb171339034045cd88b7db246f26951ce37c9f48578b5fed1097cf956e8dacada0f24c31d680a5db216fb648ee4d2a39b6f93e90af16bfda212f9f2add1b595b41e49863ad014bb642df6c91dc9a547366b3a2ac2b93a7dfbf2ba0d5399c95362e8d56872a02b1ac95bed923c934a8e6b6286ae3248d77eafb23a429f29f0cec07ded2ce24057d993b7db247a26951cd5511fb51168118017313aad364a3fc57ba81cb5c180b157286fb648f54d2a39a92e51c2cfa68582e62f3b82648addb2f1fc7bc78001645251df6c91eb9a5473515ca3859f4d0b05cc5e7704c915bb65e3f8f78f0002c8a4a3bed923d734a8e6a2455963eb70788e5089b4318a21d4f3c29e3179fd0592ed487db247af6951cd4316c52083b7539f58e02e8b0c3a080f7fe8a54ff70b277e91fb648f5fd2a39a852d8a41076ea73eb1c05d161874101effd14a9fee164efd23f6c91ebfa547350a5b14820edd4e7d6380ba2c30e8203dffa2953fdc2c9dfa47ed923d7f4a8e6a14423b5cca90ff7d7ece3a8059c69ea3f9f16cdbb5593d9890db247aff951cd42710891241f8617db5693b28ab839b6fee8f1c1367b27cd522b648f6002a39a84d21122483f0c2fb6ad27651570736dfdd1e3826cf64f9aa456c91ec005473509a42244907e185f6d5a4eca2ae0e6dbfba3c704d9ec9f3548ad923d800a8e6a134105aeabc996e7063169f6d541339a76f2522f73a93e84d16b247b00251cd426720b5d57932dce0c62d3edaa826734ede4a45ee7527d09a2d648f6004a39a84ce416baaf265b9c18c5a7db5504ce69dbc948bdcea4fa1345ac91ec0094735099c0ee9ae91a1d605d081c19298902b6373d55a15d19f440cb6923d80138e6a13371dd35d2343ac0ba1038325312056c6e7aab42ba33e88196d247b00271cd4266e3ba6ba468758174207064a6240ad8dcf556857467d1032da48f6004e39a84cdc035fcd39e512b13bdad2bcbc77b9439957130a89fa2209b591ec009d735099b706bf9a73ca256277b5a57978ef728732ae261513f444136b23d8013ae6a1336e0d7f34e7944ac4ef6b4af2f1dee50e655c4c2a27e88826d647b00275cd4266dc1afe69cf289589ded695e5e3bdca1ccab898544fd1104dac8f6004eb9a84cdb835fcd39e512b13bdad2bcbc77b9439957130a89fa2209b591ec009d735099b706bf9a73ca256277b5a57978ef728732ae261513f444136b23d8013ae6a1336e06405a7261b0ed1ae81755715e4af0e507104fe7b888411657b00275dd4266dbf541da6f90c802614cfb0d623bfbc449b8e4c58f41109c6cbf6004ebca84cdb7d344da69eef62cee16c27d43f75d6b131c8db0de522153198ec009d7a5099b6f9689b4d3ddec59dc2d84fa87eebad626391b61bca442a6331d8013af4a1336df25d48f32893edbe3d7d6578f5cdb8ecc1cfae939188566a64b00275ea4266dbe346a43efdfe3dff32c79119e391d0017e4b9f832010ae78ca6004ebd584cdb7c5195ad6a8d2de811d5be85bbf19fe2af74381623d215e9595c009d7ac099b6f8932b5ad51a5bd023ab7d0b77e33fc55ee8702c47a42bd2b2b8013af581336df12656b5aa34b7a04756fa16efc67f8abdd0e0588f4857a565700275eb0266dbe2456e90df36d568ba2ac0905f0c64f7fb4c84d6de60af650af004ebd614cdb7c4739e47493b10f99fd24d833d982fd27643cdd37c915ee455f009d7ac399b6f88d73c8e927621f33fa49b067b305fa4ec879ba6f922bdc8abe013af587336df11a73a42afb9aa0eaac6026f75e0252c58b9fb73b2157bab97d0275eb0f66dbe233735aaea40ba458108d1416b3fb03b311ebb0d23faf7716fb04ebd61fcdb7c46572c7b5f4edab32d8e6ee555fec658e1e83a4007c5eefd1f709d7ac409b6f88c971a1c496b1b8e8699aa2d2b7cf294437b38a5cf5bde147ef13af588236df11916f55e1da39d4538b020bcd6794b0b06a135715e87bc433df275eb1056dbe23216abe1c614a0b29cdd0ddc2c71fbf88ced2f087cdf78a0bbf4ebd620bdb7c4641618e916f6a78d6536e81ad8635dd399852236b98ef15bb7f9d7ac418b6f88c814f2f7b8bab542f5ea9c9830462189b2b5089332ede2d1b003af588326df119012a714fc42d0ae17520592e00ba8f5e514d54c25abc5bda0175eb1065dbe2320154e29f885a15c2ea40b25c01751ebca29aa984b578b7b402ebd620cbb7c4640235d797bd8a8e088c4e2adffae09ba13fe1956567f1710c06d7ac41986f88c8036baf2f7b151c11189c55bff5c137427fc32acacfe2e2180daf588330df1190066370b7a3009aa4e90571a7e378ccacfa3297f19cc5c5d41c5eb10662be23200b52f3c7f2d797cc89d7a977bee7f781ef11723f368b8d4c39bd620cc67c46401531f9e89285921bcb7c191775c64d2bd8cf26da6a171c3c747ac4198df88c802963f3d1250b243796f8322eeb8c9a57b19e4db4d42e3878e8f588331bf119005253f9faf6ecaaf1e5bd2a85cf0f92d75de8ddc5a55c7295d2eb106638e23200a334064e9aafb86683471b33961583d6b67dfde747b8e6cfa6d620cc72c4640145680c9d355f70cd068e36672c2b07ad6cfbfbce8f71cd9f4dac4198e588c8028a5c2b931795441cc4e932f6504c6d82d4a439f91be39ce29c588331cc1190051344697edc00eabc419f2c14988f392da3f4b64e34c73b6939b106639923200a2514e55664d837fb3b0b1e512914d0834295aef8668e787674620cc7334640144929caacc9b06ff676163ca25229a106852b5df0cd1cf0ece8c4198e668c8028925395599360dfecec2c7944a453420d0a56bbe19a39e1d9d188331ccd19005124333d0bd398225c9025b8b1409ce2420f59ba1f3173c557a41066399b3200a247667a17a73044b9204b71628139c4841eb3743e62e78aaf4820cc73366401448e590687fb36ebf4f863a8ecfa69e73038132ad8c2cf1702914198e66dc802891b3e1f68a3443a6ca8941801ecca2c886ad2980d829e2fa9238331ccdc90051235085129f35ed75c08f4f62bd18ab738d0517277023c60f648066399ba200a246910a253e6bdaeb811e9ec57a3156e71a0a2e4ee0478c1ec900cc73374401448d22144a7cd7b5d7023d3d8af462adce34145c9dc08f183d920198e66e8802891a442894f9af6bae047a7b15e8c55b9c6828b93b811e307b240331ccdd1005123481124f7e2c3d843471c28e510a1d1b4ffc369cc20c611088166399ba300a2468f2249efc587b0868e3851ca2143a369ff86d398418c221102cc73374601448d1e4493df8b0f610d1c70a394428746d3ff0da730831844220598e66e8c02891a3c153a17c2f5249cf0ae0d507d04ebcff8c790bd033089e80c31ccdd19051234772a742f85ea4939e15c1aa0fa09d79ff18f217a066113d0186399ba320a2468ee54e85f0bd49273c2b83541f413af3fe31e42f40cc227a030c73374641448d1dc35e316c47f876a3d3d30abe01dbca7c0e8c844168450e4628e66e8c92891a3b76bc62d88ff0ed47a7a6157c03b794f81d190882d08a1c8c51ccdd1925123476e639eb3bed4802bacc188d7786d50c6fe4f636c571145358b399ba325a2468edb534fc02a7f62da114fd7d6e8d0ffb5f74b0934ab228c0f177337464c448d1db532b1d901d52836da6c75d5c9985d93e94254c5534519c22fe66e8c99891a3b696563b203aa506db4d8ebab9330bb27d284a98aa68a33845fccdd1933123476d256d9bcb42b035e217e9d7f1e57d4779fb595714a1468acc099ba32672468eda339c5d2152c693efaca012634a607173a176d3e9128d2fd82337464cf48d1db45738ba42a58d27df594024c694c0e2e742eda7d2251a5fb0466e8c99e91a3b68a7329a10188077ea2f4cac0ca8e7a84e309f75641a34d9a09cdd1933e23476d1372659aafe6717ffdb65ba98d135331c0c0310880469cd8149ba3267d468eda2570dd8e0ca34582b3397d7b121d048b7c2ca46cfd8d3b542a37464cfb8d1db4496dcd74c61ced881e3fc11e1c30673ef3058b35f81a784c556e8c99f81a3b689167ad4239103d92f44c486430572ca5e0b758c7ed34f23cabdd1933f13476d1215b6cdd1ef6dda8a06556f058a4b773bc1af3ebd769e61d58ba3267e368eda24142ec12eac41dd3f8977408a93fcd0f72e22a33abd3cddeb27464cfc7d1db448111ea7e825e9e2aa8fbae394a75f846e07096c354a79d6165e8c99f90a3b6890123d4fd04bd3c5551f75c7294ebf08dc0e12d86a94f3ac2cbd1933f21476d120247a9fa097a78aaa3eeb8e529d7e11b81c25b0d529e758597a3267e428eda24041b664cbfcb53d7ffaa37f24ba6205efe30f876a23cecaf30464cfc861db4480736cc997f96a7afff546fe4974c40bdfc61f0ed4479d95e608c99f90c3b68900e6d9932ff2d4f5ffea8dfc92e98817bf8c3e1da88f3b2bcc11933f21876d1201c6744beab310142b51e85ba5527611fec3406110ee7671d833267e431eda240375a9bd6033865082209d19ca2452067d3144e7e1acecfdf0764cfc864db44806d414a04b3472c92fbe069613c809ef7a0d4df58329da1620fc99f90cab68900d90ea6621364bba8af8d98ea70f79c173c56010c623b446820933f21966d1201b11d4cc426c977515f1b31d4e1ef382e78ac0218c47688d041267e432cda2403623a99884d92eea2be3663a9c3de705cf158043188ed11a0824cfc8659b44806c401456947fc3fc834398d7b7fb33ee1dd5c4abf0eda24e50599f90cb468900d87028ad28ff87f9068731af6ff667dc3bab8957e1db449ca0b33f21968d1201b0e0515a51ff0ff20d0e635edfeccfb8775712afc3b6893941667e432d1a240361c0a2b4a3fe1fe41a1cc6bdbfd99f70eeae255f876d127282ccfc865a344806c381456947fc3fc834398d7b7fb33ee1dd5c4abf0eda24e50599f90cb468900d87028ad28ff87f9068731af6ff667dc3bab8957e1db449ca0b33f21968d1201b0e0515a51ff0ff20d0e635edfeccfb8775712afc3b6893941667e432d1a240361c02ec6fcaaf6469cd49383e7d195cf16a8d1a1e36a127426cdfc865a354806c37f5d8df955ec8d39a92707cfa32b9e2d51a343c6d424e84d9bf90cb46a900d86fe472e4b58af7cf60a1ad5c73e4d9a829df2c9e9a549d23f38f21968d6201b0dfb1a6eef5e355c6ecc0271b67491932d3691d62f4793a62272e432d1ad40361bf534dddebc6ab8dd9804e36ce923265a6d23ac5e8f274c44e5c865a35a806c37ea69bbbd78d571bb3009c6d9d2464cb4da4758bd1e4e9889cb90cb46b500d86fd45f89d39e8145f917e053db9c82f791af3af3d6399d32b79821968d6b01b0dfa74b25ffe9d8ee74e78d6ddf30fc4d4b59222a08703a671331432d1ad70361bf4d225e5880883f6c86e7a1e659eef8beacf0966cdd74cfca63865a35af06c37e9944bcb101107ed90dcf43ccb3ddf17d59e12cd9bae99f94c70cb46b5e0d86fd32158bbaaef76034d36b4dc15fb24122ae6e9c0f72d340cd8f1968d6bd1b0dfa632b17755deec069a6d69b82bf6482455cdd381ee5a6819b1e32d1ad7a361bf4c6562eeabbdd80d34dad37057ec9048ab9ba703dcb4d03363c65a35af46c37e98c38702e2491642953273432f588673d6e2122d7939a081079cb46b5e9d86fd31770e05c4922c852a64e6865eb10ce7adc4245af27341020f3968d6bd3b0dfa62e6dd3113f1bf328046996f3ce17fb1db330cdba4b6821e5e82d1ad7a861bf4c5b67b87b2b0e48d2c09ff40f94265463610dddd093d0456fd15a35af51c37e98b55b834f02f2f428390cae47204306eebcc7fdfd24a08c83a3b46b5ea486fd31694318f6b2bc4ad329e622b6387c6c05743c3e5646411aab4868d6bd4a0dfa62d1124446124ef8290b990b9468ef3632e324bf08898236fa91d1ad7a951bf4c5a124888c249df05217321728d1de6c65c6497e1113046df523a35af52a37e98b42491118493be0a42e642e51a3bcd8cb8c92fc222608dbea4746b5ea546fd316841e34893f4e23cb149522cb3f700fbf13d23aa04911b9788f8d6bd4a9dfa62d073c69127e9c4796292a45967ee01f7e27a47540922372f11f1ad7a953bf4c5a0e04e47daa0ef1af0a215154f5b69d2449f52cdd2146e7863f35af52a87e98b41b09c8fb541de35e1442a2a9eb6d3a4893ea59ba428dcf0c7e6b5ea550fd3168361391f6a83bc6bc28854553d6da749127d4b374851b9e18fcd6bd4aa1fa62d06c2723ed50778d78510a8aa7adb4e9224fa966e90a373c31f9ad7a9543f4c5a0d84e47daa0ef1af0a215154f5b69d2449f52cdd2146e7863f35af52a87e98b41b028a20deeb49863fbf6f0c6aeca02b13951de0025dcf26be7b5ea5510d316835f51441bdd6930c7f7ede18d5d94056272a3bc004bb9e4d7cf6bd4aa21a62d06be2e9a9067a8c412a7a88942b31e68ecdff3ba5c9473cb539fd7a954444c5a0d7b5d3520cf5188254f511285663cd1d9bfe774b928e796a73faf52a88898b41af6467c9a4b7972cd566eeb32c47001db7a7b2bce4ecf2ef2805ea55112316835eb190b8d43c9481d64aa9c8d80d661deefa299f89a9e5f8901bd4aa22562d06bd532171a8792903ac955391b01acc3bddf4533f1353cbf12037a95444ac5a0d7aa642e350f25207592aa72360359877bbe8a67e26a797e2406f52a88958b41af54546ec2cb20a36ddd21aa93fea96d1f77c11220d1f2fdec0eea55112c16835ea734efde4317a95e72101b4ff5493866ea2e669da0e5fd7c1ed4aa22592d06bd4d69dfbc862f52bce420369fea9270cdd45ccd3b41cbfaf83da95444b25a0d7a9a5fd1d1b93507fc800d3367cd1b3fc3a365dcd28097f7947c52a88965b41af5334bb5fc1f40727bb7e72cf7922cddaf4177fc00fe2ff0ccf9a55112cc6835ea65237e50eb57477a279b20171c5019867d9c3a5df95fe33df44aa22599d06bd4c946fca1d6ae8ef44f36402e38a0330cfb3874bbf2bfc67be895444b33a0d7a9921a0b9c5a33806b563946846936c441f11d2bd3e27f8e9bd22a88966841af5323341738b46700d6ac728d08d26d8883e23a57a7c4ff1d37a455112cd0835ea646682e7168ce01ad58e51a11a4db1107c474af4f89fe3a6f48aa2259a106bd4c8c5c6f3b7e7265dd6996fa4b41ac80378395a0fb10fc7682925444b3430d7a991744f0cfa9bb2e3d8afababe7b4f5e9701d784521ef8eea925a88966871af5322d15f3f8004cbefdcdc23ba4ee951b55fe5b4b003af1def64c5112cd0f35ea64592be7f000997dfb9b847749dd2a36abfcb6960075e3bdec98a2259a1e6bd4c8b257cfe00132fbf73708ee93ba546d57f96d2c00ebc77bd931444b343cd7a991643bb218af3c5a7125dea34f6c9f38d7ed869a5dd48ef956638896687aaf5322c703768a0b4f1765038a0cc6d134cfd7d5b97717a61df450c8112cd0f65ea6458d06ed14169e2eca0714198da2699fafab72ee2f4c3be8a1902259a1ecbd4c8b1a0dda282d3c5d940e28331b44d33f5f56e5dc5e9877d1432044b343d97a9916341bb4505a78bb281c50663689a67ebeadcbb8bd30efa28640896687b2f5322c683768a0b4f1765038a0cc6d134cfd7d5b97717a61df450c8112cd0f65ea6458d06ed14169e2eca0714198da2699fafab72ee2f4c3be8a1902259a1ecbd4c8b1a069b4db809c3bc39a4ff7dc452a541d690a0845847d15d6054b343d98a991633f5f7c0fae0eda09ec6cb5e0824b0662ccc052e705fa2d500b96687b325322c67d4b0a7808f4169690a631e8fc8c6aed942ce82a08f45c44182cd0f665a6458cf9222748bebe8fafd91929f9f10f3403230612b00ee8ba2c3159a1eccc4c8b19f1444e917d7d1f5fb23253f3e21e6806460c25601dd1745862b343d998991633e214af7ba7d0a1421c316e0fbc332e3486c48d1c38a2ea54c66687b332322c67c3295ef74fa142843862dc1f78665c690d891a387145d4a98ccd0f66646458cf8652bdee9f42850870c5b83ef0ccb8d21b123470e28ba953199a1eccc8c8b19f0c318e35eb5b6c93995836a5d98fcfcc30d0ab3dc217544a34343d999291633e17631c6bd6b6d92732b06d4bb31f9f9861a1567b842ea89468687b332522c67c2e524b305a4414d11d2da0bf5e359d58bdeeef53055d52ccd1d0f6664b458cf85b30a8b9615e8c24f22807a6b46198d9768a210207baa73da4a1eccc978b19f0b5615172c2bd1849e4500f4d68c331b2ed1442040f754e7b4943d9992f1633e16a4eb53e32509316806ce4c2c97cc18dd4d4c6641bea9e9a9387b3325f2c67c2d3297cd5117788afb8a68fad8aefe143a455cf2434d53ed9280f6664bf58cf85a552f9aa22ef115f714d1f5b15dfc28748ab9e4869aa7db2501eccc97eb19f0b4a3205acf2b485419a6704de23b5e3368c037eecd054fd08a13d9992fe633e1693640b59e5690a8334ce09bc476bc66d1806fdd9a0a9fa11427b3325fcc67c2d2654290c77a877892168d9a086cdeb022aba3e0f3e53f5c685f6664bfa8cf85a4b3464719c275194fa9e79690592342c5020be7a79a7ed310ceccc97f619f0b49568c8e3384ea329f53cf2d20b246858a0417cf4f34fda6219d9992fec33e1692a5da41f1d73a8d6a246abcc0e3f2ed93b2f3c45e39fb66834b3325fd967c2d253475a96e7bdb42ffc5a1dc01474bbda710abae7c43f6e746a6664bfb3cf85a4a51ac7867c51cae2b08101a820dfd5dcdcc1b82b857ede8cd5ccc97f689f0b4949358f0cf8a395c56102035041bfabb9b98370570afdbd19ab9992fed13e1692926b1e19f1472b8ac20406a0837f57737306e0ae15fb7a33573325fda27c2d2524624e8c8f64b9983bd4d368fef50d0ee0ba03b828f6f60aaf664bfb45f85a4a4750af71cb9fd5b32f766cf9f5e07845bc2049cc4eededb95fcc97f68cf0b4948d2d713c44160de916b9a01be3b74eb372ecd5f49adbdd16c0992fed1ae16929195ae278882c1bd22d734037c76e9d66e5d9abe935b7ba2d81325fda35c2d2523241d749bd2e9a2712b3469786d398f5c65f9a2e686f75ff0364bfb46c85a4a4630fc0ec273396d0dd335357059d9013876b76b8cddeeda207c97f68da0b4948c51f81d84e672da1ba66a6ae0b3b20270ed6ed719bbddb440f92fed1b41692918a3f03b09cce5b4374cd4d5c1676404e1daddae3377bb6881f25fda3682d2523140a19b9e6731909a16760e024e2dec43607f8226bf76eb43f4bfb46d15a4a4627143373cce6321342cec1c049c5bd886c0ff044d7eedd687e97f68da2b4948c4e2866e799cc6426859d8380938b7b10d81fe089afddbad0fd2fed1b456929189c50cdcf3398c84d0b3b07012716f621b03fc1135fbb75a1fa5fda368ad25231382dadf71407f31cce42d42a46244a6b5b2bc482bc76ece7f5bfb46d16a4a4626f5b5bee280fe6399c85a8548c4894d6b657890578edd9cfeb7f68da2d4948c4de42ca34fcf62ef5f0d816d1108787d5675b5466eedbb543d7fed1b45b929189bb11a6c2a6c2c06e997cf3ca19056dd2c962eb29dab76c2bb0fda368b825231375234d854d8580dd32f9e794320adba592c5d653b56ed85761fb46d1704a4626ea469b0a9b0b01ba65f3cf286415b74b258baca76addb0aec3f68da2e0948c4dd419486de2ec65f783b46478c021ccbe45c39baad2bb630188ed1b45c229189ba73290dbc5d8cbef0768c8f18043997c8b873755a576c60311da368b845231374e6521b78bb197de0ed191e3008732f9170e6eab4aed8c0623b46d1708a4626e9c5655c7c439923ed56fe9edf904c41a28c91fb292db19b04868da2e1248c4dd3738bde83549870062ac9a03e9ffe65c4c3e81c122b6350491d1b45c259189ba6d717bd06a930e00c5593407d3ffccb8987d0382456c6a0923a368b84b231374da6f09f981fc7e84427f2e379ff5f7992ba6496087d8d5b64846d170974626e9b36a264bb0cf5f8b3ccb229737e24d5a51f8d51d0cb1ad10918da2e12f8c4dd365605ef00e75219931630b5667baf8dc9e9dec9616635bc5241b45c260189ba6c94cd038c9c0a5b51a92dcd4c76c4fe137e81b8829c6b92e49368b84c131374d9125b2ca4057adececf27fd186cefdea6a7c796c508d7400936d170983626e9b214b659480af5bd9d9e4ffa30d9dfbd4d4f8f2d8a11ae80126da2e1306c4dd364222dd81ae351a366b96c56e133255d1a49e280d3f35d1a64eb45c260e89ba6c8345bb035c6a346cd72d8adc2664aba3493c501a7e6ba34c9d68b84c1d1374d90617885f65aacb5c6627dbe044bfb56e8d24e290f9d7483d3bd170983b26e9b20b2f10becb5596b8cc4fb7c0897f6add1a49c521f3ae907a77a2e130764dd364165e217d96ab2d71989f6f8112fed5ba34938a43e75d20f4ef45c260ec9ba6c82c485553da2cbd65e90ba52a1df4099c63d356e3cbba438ddf8b84c1da374d90571cbd00612fdd4e89e4107c33de7160c252f023947488bfc0170983b56e9b20ad397a00c25fba9d13c820f867bce2c184a5e04728e9117f802e13076add36415a72f40184bf753a279041f0cf79c583094bc08e51d222ff005c260ed5ba6c82b471fa5bb6554cf706ed4a0996e9e92e0d43c378a0a447a201b84c1dac74d905677007101980fc70c5a75a3b25ca30841533c94d3e4890e80470983b59e9b20acd6c2078dfd85b64431b7a9e438abf302513d4f67991237409e13076b4d364159964534a6c87194b3e03bb647f0bdc8844d3ec48f022488c14c260ed6aa6c82b3154b8ed85e4951933d43cf0f60e173884541aeddd4492bc2a84c1dad64d905661358433b89f8cb51f754009e4128c9903547837b789271c560983b5ad9b20acc16b0867713f196a3eea8013c825193206a8f06f6f124e38ac13076b5b364159826223278f54955735a1c64f8840908c07fe233adb249e1559260ed6b76c82b3035058a7cb7f8d31231052c708777f400aa888d1b3493dceb34c1dad6fd90566052cc3a843d57ce4fded6bb608e55ca80ffd53ff63927d4167983b5ae0b20acc0959875087aaf9c9fbdad76c11cab9501ffaa7fec724fa82cf3076b5c1641598123f20f9bc2c5616af8275001b8bd0c83aa192598b49f6a99f60ed6b83c82b30230a544c252f0eb016d1b0282f0dffb86fef670f1393eef73fc1dad7089056604514a8984a5e1d602da360505e1bff70dfdece1e2727ddee7f83b5ae1120acc08a29513094bc3ac05b46c0a0bc37fee1bfbd9c3c4e4fbbdcff076b5c224159811452a26129787580b68d8141786ffdc37f7b38789c9f77b9fe0ed6b84482b3022831571affc74d8424e7c8aae8d659aef9a2b34d363ef117fd1dad708a0566044f62ae35ff8e9b0849cf9155d1acb35df345669a6c7de22ffa3b5ae1140acc089e516ec4abf398934b6be8d39b4fc4e3e1370f90d5fbc603f576b5c2291598113b2eefe204bd93a94ea497cf2e95e7efbd1a617da8f78dabebed6b84532b3022755ddfc4097b27529d492f9e5d2bcfdf7a34c2fb51ef1b57d7dad708a6566044ea47d1e0bfccb127f25f2564b24dfde6ef15c852a0de3853b0b5ae114dacc089d31bb61a2c6fc4d29c8b10f15c9259f5d8d7d3013ebc724b626b5c229c598113a5376c3458df89a5391621e2b924b3ebb1afa6027d78e496c4d6b84538b302274a6ed868b1bf134a722c43c5724967d7635f4c04faf1c92d89ad708a7166044e9469c32a105489179c254db2dc892dd6c16ada65f2e393ff145ae114e3cc089d275f98accd7f74b1f017618db108b9d57d81f727e2c729a229b5c229c898113a4d4b43b247d54be697fb89435a07d1d2f5b030abc28e54e8546b845392302274992299bd3c80fa4fe7c3d8aeac0601cde60ca3b3821cab74a9d708a7256044e93145337a7901f49fcf87b15d580c039bcc194767043956e953ae114e4ac089d26216794d9eda4bc256dc28e2a80e655f92ded12a0572af76a85c229c968113a4c32cf29b3db49784adb851c5501ccabf25bda2540ae55eed50b845392d0227498659e5367b692f095b70a38aa039957e4b7b44a815cabddaa1708a725a044e930c3fdcc5a3a8c0956eae0d3d3869892491a2cbac28957d5943e114e4b5089d26170bcbe3f427e3ad9528e0a268c970711df1d9b44e2afc5688c229c96b113a4c2d1797c7e84fc75b2a51c144d192e0e23be3b3689c55f8ad11845392d62274985a2f2f8fd09f8eb654a38289a325c1c477c766d138abf15a2308a725ac44e930b45e5f1fa13f1d6ca9470513464b8388ef8ecda27157e2b446114e4b5889d2616848d097ef549d5c0a5ad04e848d6539d9c9dda0dfafc70c8d229c96b213a4c2cf1db3888b7f9d3acc8266c50111289bae3ffd9dbc5f8fbd1b45392d652749859d3b671116ff3a759904cd8a022251375c7ffb3b78bf1f7a368a725aca4e930b3a02e07adad4d76de9d6613bfc3b0096b3ac38d2ee7e40986e14e4b5959d26167305c0f5b5a9aedbd3acc277f876012d675871a5dcfc8130dc29c96b2b3a4c2ce60b81eb6b535db7a75984eff0ec025aceb0e34bb9f90261b85392d656749859cc1703d6d6a6bb6f4eb309dfe1d804b59d61c69773f204c370a725acace930b3982e07adad4d76de9d6613bfc3b0096b3ac38d2ee7e40986e14e4b5959d26167305c0f5b5a9aedbd3acc277f876012d675871a5dcfc8130dc29c96b2b3a4c2ce6044310f620c3dfd2d65152706b683d4e5ba77179c9027bf86392d656849859cbf14747770eede7d1296f076056365d1c621308b362051230d725acad1930b397d28e8eee1ddbcfa252de0ec0ac6cba38c4261166c40a2461ae4b595a3261672fa51d1ddc3bb79f44a5bc1d8158d97471884c22cd881448c35c96b2b464c2ce5f42fb614344d566b4c8449d823118cb62bb5c6b5ae028abc6c92d6568d9859cbe75f6c28689aacd6990893b04623196c576b8d6b5c051578d925acad1b30b397ce4aeaa97e0bbc2fe9dded88843c9100a9835d32b50a2c95b34b595a3761672f9b21e7aba8eddae28b88a139006f80294db2fcc167145acf6796b2b46fc2ce5f3543cf5751dbb5c51711427200df00529b65f982ce28b59ecf2d6568df859cbe6a13b107508dce0ce5ef4b0bf9b45ecd3178356199516ce19f5acad1c00b397cd327620ea11b9c19cbde9617f368bd9a62f06ac332a2d9c33eb595a3801672f9a64ec41d4237383397bd2c2fe6d17b34c5e0d5866545b3867d6b2b47002ce5f34c299a933144d2e9e7471e87c5995491866ded68c78b68b0fbd6568e0159cbe6975335266289a5d3ce8e3d0f8b32a9230cdbdad18f16d161f7acad1c02b397cd2e327ca571e9ae2a54e940470e5bb06e1463f7ff1b2da467f0595a3806672f9a5b64f94ae3d35c54a9d2808e1cb760dc28c7effe365b48cfe0b2b4700cce5f34b65604ee747d1b2c0b71c74431651fe04c3c225869b69343c26568e01a9cbe696b381c3595d098daceb054b05ac09de89324870cd06d282b85cad1c036397cd2d570386b2ba131b59d60a960b5813bd126490e19a0da50570b95a3806c72f9a5aa6c832f0418c5edf28e18e962f8d5ca473e5e8f3eb4a252182b4700d9e5f34b536518b6b507ee5e9ce8f7fabde809bc8928ff7a7a69464831568e01b4cbe696a55643c616e63f3ff19eb61d73c671a10cfe4150f1d28e3463ad1c036a97cd2d493899e4daa2e1029b0a3262df83416a14a8c4fde0a51e0cc85a3806d62f9a5a917133c9b545c205361464c5bf0682d4295189fbc14a3c1990b4700dac5f34b5226e79ec1761e68d23f58fb3760363d04d4f56537f9479d72268e01b59be696a43690630db9a2f9cffb7e58ee3fd25c8954aef02fc28f55245d1c036b47cd2d4855e1eba640ac1bcb73c9145bff0a9b925422061f551ec488ca3806d69f9a5a909484fcd74ebe5fc2645e8b377d7b19a4530831fe7a3da351a4700dad4f34b52111cb1f396ae2e7b0458978ee7a5c15c850d489bcc47b60e358e01b5aae696a4213963e72d5c5cf608b12f1dcf4b82b90a1a9137988f6c1c6b1c036b55cd2d484272c7ce5ab8b9ec11625e3b9e9705721435226f311ed838d63806d6ab9a5a908471a1f56247d65ada91829f3524690c2316873a5f3db215ad700dad5834b521076f564371660f386cefcb66623f304040d950d0bb7b65cf5be01b5ab1696a420d6abedf8fa280f391ac5cf4bc74bea87c5ee3fd73f6cd42b8c036b563d2d48419619017cc1b6469db25801170dfdb78f36a0a56e4ed9c2972806d6ac8a5a908314f3288450d2b566e17c64ad9b61519e1805709c6db39f6e600dad5924b5210612a776936f0b92f93fc52bdab62885bbdacf06f8ab67591cd01b5ab2596a420c154eed26de1725f27f8a57b56c510b77b59e0df156ceb239a036b564b2d48418235effd8899474107be111ea5807f96f160041a27d9d7eb3506d6ac975a9083036bdffb11328e820f7c223d4b00ff2de2c008344fb3afd66a0dad592eb521060663d24ecf3b7f86d6c50aa28df85c83c02c52c49c676150d51b5ab25e6a420c0b53b6f64b4d61906556db6d13e7172f7b04e7e535cec445ab36b564bdd4841815338045437125a3827a7d021fc48c86f0b61226689d8a2f576d6ac97ca908302967008a86e24b4704f4fa043f89190de16c244cd13b145eaedad592f9521060525a136dba9af910c1b6ba3077089043bd848af59f762a615eb5ab25f3a420c0a3403934220c54a43b3a3a88e6077eaf75b558473bec5666be6b564be8484181450c84c0f0ef0bcb2e413b39c4055b86e616f2ea74d8ae717dd6ac97d190830289190981e1de17965c827673880ab70dcc2de5d4e9b15ce2fbad592fa321060512321303c3bc2f2cb904ece710156e1b985bcba9d362b9c5f75ab25f46420c0a2464260787785e597209d9ce202adc3730b79753a6c5738beeb564be8c84181448545e67bbc71f359be079c4384c16965c1b71034a8ae8bbde6ac97d1a0830288f34cf282464a0edef8db9b0688e8b54b2e324629215d31bbdd592fa351060511d699e5048c941dbdf1b7360d11d16a965c648c5242ba6377bab25f46a20c0a23a5f4ef93e68e63a7603ace99a308b7ac638d3e645574e12f8564be8d5418144734ab04b29a82ef7a3d41ffb2c57751d871dea2887ae9dc9f1ac97d1ab830288e52172ef0026c071ff75061e50a5486308e816ad0c5d3d37e4592fa358060511c942e5de004d80e3feea0c3ca14a90c611d02d5a18ba7a6fc8b25f46b00c0a239211de14ad71644ab5a0dea13a8b7fb41e4c9d102e74f6839264be8d611814472323bc295ae2c8956b41bd427516ff683c993a205ce9ed0724c97d1ac230288e46477852b5c5912ad6837a84ea2dfed079327440b9d3da0e4992fa358460511c8c1b02fe186184d864d3bb31cc525bc8ed112add70a7b5c09425f46b09c0a239173605fc30c309b0c9a7766398a4b791da2255bae14f6b81284be8d6138144722e6c0bf861861361934eecc731496f23b444ab75c29ed7025097d1ac270288e45c642a496fe28945de6a9fb65a893c6f63359947823dafa8a22fa3584f0511c8b75466eb8c9b750e74a20594ad08d706c11774eb017b60f5455f46b09f0a23916d34e02fc60d4c9fa110d15152080c357cdb2c31fff6c38e8bbe8d613f144722d969c05f8c1a993f4221a2a2a410186af9b65863ffed871d177d1ac27e288e45b25f9317c50b95013c100b6d40168efdee18f323fcdb0fde2ffa3584fd511c8b634b388836ed8c852fecdd0278237c23d6de28a3f6b6216060f46b09fba23916c52283691ab17b8d17a6802ce83d566fa86893a3ea6c4464c2e8d613f844722d894506d23562f71a2f4d0059d07aacdf50d12747d4d888c985d1ac27f088e45b12161ffd179c50b71666c6db98ebb7e69c4e90eba6b113370ca3584fe211c8b6232c3ffa2f38a16e2ccd8db731d76fcd389d21d74d62266e1946b09fc423916c46587ff45e7142dc599b1b6e63aedf9a713a43ae9ac44cdc328d613f884722d88c3d124169b8e83b6b02fd04bf541d5cdd20c9b932889b5c661ac27f118e45b1170636db804832f98dd2c031769e98e1b4edd5ce6211385ccd3584fe241c8b622d0c6db7009065f31ba58062ed3d31c369dbab9cc42270b99a6b09fc483916c45a18db6e0120cbe6374b00c5da7a6386d3b757398844e17334d613f890722d88b431b6dc024197cc6e96018bb4f4c70da76eae731089c2e669ac27f120e45b1168636db804832f98dd2c031769e98e1b4edd5ce6211385ccd3584fe241c8b622d052edc8b5dcc1b47224cc56cbc97a5e9866fc283f270d3da7b09fc484916c459f31edea188fe5eb9c165ed58f8952e52b7a3aac7b4e1c1f50613f890a22d88b3d63dbd4311fcbd7382cbdab1f12a5ca56f47558f69c383ea0c27f121445b1167a53ca010f15fa312826417e361ba9bca8952d0dea3872214284fe24298b622cf333a65acb0256e508194924642db1a14bd69c77d170e5e68609fc485416c459e5674cb59604adca10329248c85b634297ad38efa2e1cbcd0c13f890a82d88b3ca5aabc3d8dfbe16d831eab988ad24ad2a06b43b42c3993e1927f121515b1167934169e05e95deb068309b9b0950a7824eb9aad282873420334fe242a3b622cf250ee6196a021fe3882dfd5e0a97ad2c981f9801020e69e4679fc485486c459e491dcc32d4043fc7105bfabc152f5a59303f3002041cd3c8cf3f890a90d88b3c923b9865a8087f8e20b7f5782a5eb4b2607e60040839a7919e7f121521b1167924034323fce7619ef93cb1184cb3c78cbba902640d7350c73dfe242a44622cf247068647f9cec33df279623099678f19775204c81ae6a18e7bfc485488c459e48e0d0c8ff39d867be4f2c46132cf1e32eea4099035cd431cf7f890a91188b3c91c1a191fe73b0cf7c9e588c2659e3c65dd4813206b9a8639eff12152231167923834323fce7619ef93cb1184cb3c78cbba902640d7350c73dfe242a44622cf247068647f9cec33df279623099678f19775204c81ae6a18e7bfc485488c459e48e05cdb57e6aeca4106f90c3b24e84156e4ecdb5f59d4337380890a91198b3c91bf45c9087a33f704c5bede9e41c6e0d5c485f91ab0a8688b02121522341679237d17a469a13e508c434a83647b841fd383b834915e50d2ba05242a44692cf246f92f48d3427ca118869506c8f7083fa707706922bca1a5740a485488d259e48df25e91a684f942310d2a0d91ee107f4e0ee0d24579434ae81490a911a4b3c91be44935a5b6c8e6e4d220e14bd4175cc4186de6e6ef8697742a2152234a679237c71e7da41a68304c5c0e88bfa02517b02b881029dc0d308c5542a44695cf246f8d3cfb4834d06098b81d117f404a2f6057102053b81a6118aa85488d2b9e48df1a0608e9167723b42806e926788abce8a8cc83036d34c3d5560a911a583c91be330c11d22cee4768500dd24cf11579d151990606da6987aaac152234b079237c661823a459dc8ed0a01ba499e22af3a2a3320c0db4d30f55582a446960f246f8cc304748b3b91da140374933c455e7454664181b69a61eaab05488d2c1e48df198608e9167723b42806e926788abce8a8cc83036d34c3d5560a911a583c91be3304d2f7b7bbad907b8a9eaf7094dfb3d143ca2c9a3987c4ec252234b089237c65f26714fa44c149229209c160a9254a2232587ef4430fa4185a4469612246f8cbd4ce29f489829245241382c1524a944464b0fde8861f4830b488d2c2448df197a25d7973e06b4cb5c4f3680223fb0b0874262190dc3eaaa17911a584991be32f34baf2e7c0d6996b89e6d00447f61610e84c4321b87d5542f2234b093237c65e62370b5a4f135b02909a02880f520ea17b5cac0340fac4c5f4469612746f8cbcb46e16b49e26b605213405101ea41d42f6b9580681f5898be88d2c24e8df1979619d52f409b39435bf346c9fbcae1d059836d5ccd3eb2d57e11a5849e1be32f2b33aa5e81367286b7e68d93f795c3a0b306dab99a7d65aafc234b093c37c65e566754bd026ce50d6fcd1b27ef2b8741660db57334facb55f8469612786f8cbcac5abbd2b1b02c9d9766fc77d64d6caac6c7ad4266f5984ff18d2c24f1df1979574189fe1036bbbde69abf17a491377d883b9ce0caeb3243e41a5849e4be32f2ad0f2654cd43d9fe850244574118cd230b237c1d92d6662bc934b093ca7c65e5591e4ca99a87b3fd0a0488ae82319a461646f83b25accc579269612794f8cbcab23c9953350f67fa1409115d0463348c2c8df0764b5998af24d2c24f29f19795640544ff16f53276dfdee8e200bcc74053c8234893b333024aa5849e54e32f2ac70a89fe2dea64edbfbdd1c401798e80a790469127666604954b093ca9c65e558e1513fc5bd4c9db7f7ba38802f31d014f208d224ecccc092a961279538cbcab1c2a27f8b7a993b6fef7471005e63a029e411a449d999812552c24f2a719795638544ff16f53276dfdee8e200bcc74053c8234893b333024aa5849e54e32f2ac7034b23b8b7cb15eb3a9e2680f8f463273b0ab6e736661ed55b093ca9d65e558df69647716f962bd6753c4d01f1e8c64e76156dce6ccc3daab6127953acbcab1be5edb46dac927fd86744fc8363376f1c96ef015ca99895957c24f2a769795637b49c8e66268b27dc4b565b8645d4c0b8d8a228792331456b0849e54ee2f2ac6f51fa42571a7c77e41379198c0b0f63f15c0876b21662a5162093ca9dd5e558de93f484ae34f8efc826f23318161ec7e2b810ed642cc54a2c4127953babcab1bd20aa2ee7375807bbcab0c8afaba372451ae60088298aae98924f2a776795637a31545dce6eb00f779561915f5746e48a35cc011053155d31249e54eecf2ac6f462a8bb9cdd601eef2ac322beae8dc9146b980220a62aba62493ca9dd9e558de8c5517739bac03dde5586457d5d1b9228d73004414c5574c4927953bb3cab1bd1836413fe42e6a3e827d8ed7a399d06d159242e4268ab03c934f2a776895637a2f6c827fc85cd47d04fb1daf4733a0da2b2485c84d156079269e54eed12ac6f45e6517583d900b7cc1c30186865d9fdc50f54dec972ac2964e3ca9dda3558de8bb56410927f6797c3b52c93504b19de09c96de352b5586d09d7953bb47ab1bd17538946afcc3557b2e725892015999e933d9fec653ab0f453bf2a776905637a2e97128d5f986aaf65ce4b12402b333d267b3fd8ca7561e8a77e54eed20ac6f45d26e64049fe3b86f7196286ffd5cc5ccca143d754bac3eb8f0ca9dda4258de8ba368da61ec9dd3619af91707f2afe9c18ed4bd4694587f15e2953bb485b1bd17455dc71c86120945edbef437dd5631ab1855bce925b0ffcfc62a77690c637a2e8947a091b8fa750e934aae97b2a2c17e2b57bc2e486201438d54eed219c6f45d111b537c1ecb4c9fde6223575d3be124515bbab88dc4042b1ba9dda4348de8ba2136a6f83d96993fbcc446aeba77c248a2b775711b8808563753bb48691bd174426d4df07b2d327f79888d5d74ef8491456eeae2371010ac6ea77690d237a2e88466ae39a330c781aadde0e2e1d5674a858a18206b2022fcde4eed21a56f45d107596ecbf337f1860d8887edbba12cbd05c0729cd340479dbd9dda434bde8ba20d3eeff09346458ed2ddd6036f38b7a2062d2795a38090df7c3bb48698bd17441909f239d362eda05d88722ed667cd6c0706918744012362f977690d327a2e883113e473a6c5db40bb10e45daccf9ad80e0d230e880246c5f2eed21a64f45d106227c8e74d8bb6817621c8bb599f35b01c1a461d10048d8be5dda434c9e8ba20c44f91ce9b176d02ec439176b33e6b6038348c3a20091b17cbbb486993d17441882b35f5e3053c889053e9155e7334e86b155ad03d1237d3987690d328a2e8830f566bebc60a791120a7d22abce669d0d62ab5a07a246fa730ed21a65145d1061e38ea3038eb54a4f91c6a7d71c331c9a701ad9cf148e0f262da434ca38ba20c3b71d46071d6a949f238d4fae38663934e035b39e291c1e4c5b4869947174418766fbb199083b5169c3e701dbf03254e96b2f8cfc223856d8c690d328f2e8830eb6b888bcdddccaff049a66375fca8c5281233fb81470c7f19d21a651f5d1061d56323704891fbe2986012eee3efafb24ad0aa52ff8e1aa234a434ca3fba20c3a95259393dfa5a47e88cec05bfd5bd8c904d9701fc1c36e86a486994807441875130c4cb28cb171288e69e3377a1d9411b47705ff5386f74d590d32901e8830ea161899651962e2511cd3c66ef43b282368ee0bfea70dee9ab21a65203d1061d424f25855002beccdb673ef5d67dc32c67ca03dbd1e1bf7757434ca408a20c3a832a5d634cdbe01c6e9b4413a4f1e480ca404a13a0c38092af869948124418750554bac699b7c038dd36882749e3c90194809427418701255f0d3290248830ea0a3587e5e045e2f47239d6768bbdf02b23ad6aaa800e03eebf1a65204a1061d4136b0fcbc08bc5e8e473aced177be056475ad555001c07dd7e34ca409420c3a8266231f02dedee5480b4200226ee1ed48961ed05fd38115efd699481294187504b50763908b23f2bb935062c45d29bd10d701c67f7702461fbd3290253830ea0952cfecabe3ae0da2a36d280839b95ca158c7b2bebe04a67f8a65204a8061d412959fd957c75c1b4546da50107372b942b18f657d7c094cff14ca409500c3a8252400d83a5c1e5eb60a8102a0664b55050de2f0bac812b43e3994812a1187504a30c2d5ff85a2e59791ce67c04bfc8c89c68a0735602582bc83290254330ea0945185abff0b45cb2f239ccf8097f919138d140e6ac04b0579065204a8661d4128a30b57fe168b965e47399f012ff232271a281cd580960af20ca40950cc3a82514616affc2d172cbc8e733e025fe4644e345039ab012c15e4194812a1987504a284ee8583279481a499b2de843f2eab1c13649915d25846084290254340ea0944f29e30911c8f2b74b0321f87fdc338b7d18d57eb74b0a65095204a8691d41289d53c6122391e56e960643f0ffb86716fa31aafd6e9614ca12a40950d23a82513a339e7cf3fa2d5fe3d94e09f7672c55ef0f9856da2c2b38264812a1a57504a273673cf9e7f45abfc7b29c13eece58abde1f30adb45856704c9025434aea0944e65a8c4c7cbf18024731fe4fd5930f7fb6eaa3b765b0ae849a204a8696d41289cb412af1a65492874630c2c7a31c7d27688189cac8615ead3540950d2ea82513950e683bf97f8791442e4bb73e2f5876cbaf55f18dc2befe6b812a1a5e504a27291cd077f2ff0f22885c976e7c5eb0ed975eabe31b857dfcd7025434bca0944e5239a0efe5fe1e4510b92edcf8bd61db2ebd57c6370afbf9ae04a8697941289ca47341dfcbfc3c8a21725db9f17ac3b65d7aaf8c6e15f7f35c0950d2f28251394872961844cedb96fab1819bdaebe594b5a1a174d92bf18ab912a1a5e604a2728f713e89367419b0ad2fc95fadce295165ef8545af57e4b97325434bcd0944e51d6e8f6b19be95e4122c58e75392b0cac68b4ce75bafcb16e74a86979b1289ca3969312ee0538e4adc2577f69f1bbfbd87c2dc2ab45f97d1cf950d2f37251394715e74b66d7d7f187017b615362ddda30a31fab165bf3147a02a1a5e6f4a2728e148fbc587d160b397fc32526452196e0f1037bec87e6433415434bcdf944e51c11e09e3bc7923e9e7c52accc09a910418ccb1d98dfcca0a83a86979c0289ca3813c13c778f247d3cf8a559981352208319963b31bf994150750d2f380513947020439e79ebaf22a56e1715afa60a2385ddf09c234f329ce0fa1a5e701a2728e030873cf3d75e454adc2e2b5f4c14470bbbe138469e6539c1f434bce0344e51c0610e79e7aebc8a95b85c56be98288e1777c2708d3cca7383e86979c0689ca380c21cf3cf5d79152b70b8ad7d30511c2eef84e11a7994e707d0d2f380d13947018439e79ebaf22a56e1715afa60a2385ddf09c234f329ce0fa1a5e701a2728e030134f4c8434a7cd93faf187440aa533b68d7aa29b653b65f534bce0354e51c05f269e9908694f9b27f5e30e88154a676d1af54536ca76cbea6979c06a9ca380be4d3d3210d29f364febc61d102a94ceda35ea8a6d94ed97d4d2f380d53947017c268cbcce7ba0ef57a45262184b87c5af181770d829dcd3aaa5e701ab728e02f74d19799cf741deaf48a4c430970f8b5e302ee1b053b9a7554bce0356e51c05ee26454be6c4e640165e0fb059247d3eb70ca01f5da774f2ab979c06aeca380bdb4c8a97cd89cc802cbc1f60b248fa7d6e19403ebb4ee9e5572f380d5d947017b625278847e9fb83114504e95c885322d6dec2d9739dd56eaf5e701abc28e02f6b4a4f108fd3f706228a09d2b910a645adbd85b2e73baadd5ebce0357851c05ed620b079cc7e508efce0d9cd6a17aab356274dc1cb77575ebe79c06af1a380bdab4160f398fca11df9c1b39ad42f5566ac4e9b8396eeaebd7cf380d5e347017b560ed43fdecfa4beab502d5da05508f5534979632add5f1efae701abc78e02f6ab1da87fbd9f497d56a05abb40aa11eaa692f2c655babe3df5ce03578f1c05ed563b50ff7b3e92faad40b576815423d54d25e58cab757c7beb9c06af1e380bdaac02b457a3538878124e3114fa9ea5d294f80d7553eafa9bd8380d5e3d7017b5570568af46a710f0249c6229f53d4ba529f01aeaa7d5f537b0701abc7ae02f6aae0ad15e8d4e21e04938c453ea7a974a53e035d54fabea6f60e03578f5c05ed55c15a2bd1a9c43c0927188a7d4f52e94a7c06baa9f57d4dec1c06af1eb80bdaab82b457a3538878124e3114fa9ea5d294f80d7553eafa9bd8380d5e3d7017b5570568af46a710f0249c6229f53d4ba529f01aeaa7d5f537b0701abc7ae02f6aae039284181b880874b590b669f9fd2cd38af9fb0f7bea89a0f03578f5d05ed55bf7250830371010e96b216cd3f3fa59a715f3f61ef7d51341e06af1eba0bdaab7e70b35eb3b8649fe530f3c27675a95cdd6ac11fdbfaa40c3d0d5e3d7517b556fb6d791614472bc2822eadace4e1b0e1b581c49bb4f549bc7b1abc7aeb2f6aadf5670484d564ba07bc2a2181c1b9bfeb65afcb9366ea951cf73578f5d75ed55be95a1b62579fd6923021092b7b69ddfec60bd982cad52bddef6af1ebafbdaab7d140491d5c160fa7180ed87eeeca1a2586c3f56192aa595fdfd5e3d7607b556fa10ca493650281d0e7ea7725d58a927308342d1f2254b463c0abc7aec1f6aadf41194926ca0503a1cfd4ee4bab1524e610685a3e44a968c781578f5d83ed55be8232924d940a07439fa9dc97562a49cc20d0b47c8952d18f02af1ebb07daab7d0465249b28140e873f53b92eac54939841a168f912a5a31e055e3d760fb556fa08565b8efcfe7f9136743885509f85587def144e224b47e00bbc7aec206aadf40f38c976a6d361a524b53732993568d8f68a6af8419691641878f5d841d55be81d7192ed4da6c34a496a6e65326ad1b1ed14d5f0832d22c830f1ebb083aab7d03a6f38334823e9174aa1a2f25ccc018bd4d5ee3d035a473462e3d76108556fa0736a82bf3d1e34b14d100c0cb18e613fa4581ed603b4900cc6c7aec211aadf40e56117d72712cbe551ecde415b1320a7435c8008046921bd8e8f5d842455be81c94e4206fafbfa4d5ba682aaae1c9f768165426c05d2451f1e1ebb0849ab7d0391289666a2ce571d6f19cb7d542f9d14fd76c73408a48be23d3d76109456fa0721512ccd459cae3ade3396faa85f3a29faed8e68114917c47a7aec2128adf40e422e6bf3380fbef87433f41d48b4d27bf0875f2c1f92312cf5f5d842525be81c835cd7e6701f7df0e867e83a9169a4f7e10ebe583f246259ebebb084a4b7d0390645c2258d155e64889c969d1ac9a817bcc9bf0c7b48c657d8d761094a6fa0720b1796a3c7011f4bc905f3622d89ae57743fc074f3918e53b2aec21295df40e4152f2d478e023e97920be6c45b135caee87f80e9e7231ca7655d84252bbe81c82a5e5a8f1c047d2f2417cd88b626b95dd0ff01d3ce46394ecabb084a577d03905448c776e4df5ce0fffc61396443d0e39caa4603998c744196761094affa0720a71da14676951c44b7c5889ac07dffef3400ce633018ea272dec212960f40e414d3b428ced2a38896f8b113580fbffde68019cc66031d44e5bd84252c1e81c829a029772872ad39596e2e892f9ee5de4caaf7be8bd63aa40b8b084a584d0390533052ee50e55a72b2dc5d125f3dcbbc9955ef7d17ac754817161094b09a0720a660a5dca1cab4e565b8ba24be7b977932abdefa2f58ea902e2c212961340e414cc14bb9439569cacb7174497cf72ef26557bdf45eb1d5205c584252c2681c8299829772872ad39596e2e892f9ee5de4caaf7be8bd63aa40b8b084a584d0390533052ee50e55a72b2dc5d125f3dcbbc9955ef7d17ac754817161094b09a0720a66031eefa778b47e87086eae6738dd75aa68b3c8b55ea91d22d212961350e414cbf63ddf4ef168fd0e10dd5cce71baeb54d167916abd523a45a4252c26a1c82997e53ce428b03822479e871c1c62dbb9294d9348954aa48ecb584a584d5390532fb33aeddc2dd66cbab9da9ab8451d54d245eab6ea654937d6c094b09ab720a65f5675dbb85bacd97573b535708a3aa9a48bd56dd4ca926fad812961356e414cbea5acdcfb84bfdb166436cd6093db35c8c26f01696524f99b1252c26aec82997d341adf81d6e5de584539fd40a71c4e112fa228929a4a0d7634a584d5e90532fa50f6e48e7b31e4dc07405d00cd9e7ea20a0876e50494352c794b09abe20a65f491edc91cf663c9b80e80ba019b3cfd441410edca09286a58f2961357c414cbe923db9239ecc793701d0174033679fa882821db941250d4b1e52c26af882997d2407849fea6f54f0bb6cf4a85ec59d78ffb07dce7f4a1c3a3da584d5f20532fa470f093fd4dea9e176d9e950bd8b3af1ff60fb9cfe9438747b4b09abe40a65f48e1e127fa9bd53c2edb3d2a17b1675e3fec1f739fd2870e8f6961357c814cbe91c3c24ff537aa785db67a542f62cebc7fd83ee73fa50e1d1ed2c26af902997d238045c5753cbb18e6e9c10ade45035b7f5b41f43f1a1c547db584d5f21532fa46f08b8aea797631cdd38215bc8a06b6feb683e87e3438a8fb6b09abe42a65f48de11715d4f2ec639ba7042b79140d6dfd6d07d0fc687151f6d61357c854cbe91bc22e2ba9e5d8c7374e0856f2281adbfada0fa1f8d0e2a3edac26af90a997d237845c5753cbb18e6e9c10ade45035b7f5b41f43f1a1c547db584d5f21532fa46f0179d43264c94508b4edbe481fd1526b1302ada3138aa9f6c09abe42b65f48ddf2f3a864c9928a1169db7c903fa2a4d626055b46271553ed81357c856cbe91bbe5e750c993251422d3b6f9207f4549ac4c0ab68c4e2aa7db026af90ad97d2377c48fc71df3b05071243a54c07df075d842d992d86c5569f614d5f215c2fa46ef71e0b3c6b4c6c90dc5410c007b46ce3030774b70a8aaee2c39abe42b95f48dded3c1678d698d921b8a821800f68d9c6060ee96e15155dc587357c8572be91bbda043f4a5a0814c6291d092816c811b406ca1538272abd2f0f6af90ae67d2377b3087e94b410298c523a12502d9023680d942a704e557a5e1ed5f215ccfa46ef6610fd2968205318a47424a05b2046d01b2854e09caaf4bc3dabe42b99f48ddecc21fa52d040a63148e84940b6408da03650a9c13955e9787b57c85733e91bbd9843f4a5a0814c6291d092816c811b406ca1538272abd2f0f6af90ae67d2377b3013fba3edd8fb47db6deb2ad0f894a8d3eee960e257a785ee5f215cd0a46ef65f27f747dbb1f68fb6dbd655a1f12951a7ddd2c1c4af4f0bdcbe42b9a148ddecbe4fee8fb763ed1f6db7acab43e252a34fbba583895e9e17b97c85734291bbd97c2bef781b9e3cc1933c1f7e7fbb036e9a238d630fbd3dd373f90ae6862377b2f757def0373c798326783efcff7606dd34471ac61f7a7ba6e7f215cd0c46ef65ee3bd0391b4f558904bd4421f6e26be2633a77e83bf4f8f1d0e42b9a198ddecbdb03b2cae3750d94c1474e6be5bb35ecc121322c74e9f387a2c85734341bbd97b5076595c6ea1b29828e9cd7cb766bd982426458e9d3e70f4590ae6868377b2f6a0ecb2b8dd43653051d39af96ecd7b30484c8b1d3a7ce1e8b215cd0d06ef65ed41d96571ba86ca60a3a735f2dd9af6609099163a74f9c3d1642b9a1a0ddecbda83b2cae3750d94c1474e6be5bb35ecc121322c74e9f387a2c85734341bbd97b50026bb51b78151ae0b693a4af5d1bc01ed287ea9a3e72985a0ae6868477b2f69f04d76a36f02a35c16d27495eba37803da50fd5347ce530b415cd0d08ef65ed3e09aed46de0546b82da4e92bd746f007b4a1faa68f9ca61682b9a1a11decbda7c135da8dbc0a8d705b49d257ae8de00f6943f54d1f394c2d057343423bd97b4f826bb51b78151ae0b693a4af5d1bc01ed287ea9a3e72985a0ae6868477b2f69f04d76a36f02a35c16d27495eba37803da50fd5347ce530b415cd0d08ef65ed3e026ff9f8adba93ae571af53cf3d4e2faf4e3d028c9ca7ba83b9a1a11eecbda7bf4dff3f15b75275cae35ea79e7a9c5f5e9c7a0519394f75077343423dd97b4f7e2810d6d845076e4d93837734eb96e6b7e536662f72a08e0fe686847cb2f69efb5021adb08a0edc9b2706ee69d72dcd6fca6ccc5ee5411c1fcd0d08f965ed3df62c55b40dea803bee1ad404cba4b9c2da411bf4baca83dc409a1a11f3cbda7beb58ab681bd50077dc35a80997497385b48237e9759507b881343423e797b4f7d63d6928e48063727038163b2689453363b0b22ee82a111503686847d02f69efab06e4aa75d72967983cf29e4508e88ec20da6b9cd5423ce07d0d08fa15ed3df550dc954ebae52cf3079e53c8a11d11d841b4d739aa8479c0fa1a11f42bda7beaa1b92a9d75ca59e60f3ca791423a23b08369ae735508f381f43423e857b4f7d54372553aeb94b3cc1e794f228474476106d35ce6aa11e703e86847d0af69efaa86e4aa75d72967983cf29e4508e88ec20da6b9cd5423ce07d0d08fa15ed3df55068a7a767bb8f75bf6b19f0991370003c611995a7847b64fb1a11f42cda7bea9f5d61a77c4d816e36a2fa092a1d3e28736e75874c08f86df73423e85ab4f7d53d46d5a7a571655f2512ba3a4c30da78e1892d6a9511f27fef6847d0b669efaa7919bda7f7b92d4101f23a9c90581319bdbe9d312723e6a3dfd08fa16dd3df54f1337b4fef725a8203e4753920b026337b7d3a624e47cd47bfa11f42dba7bea9e266f69fdee4b50407c8ea7241604c66f6fa74c49c8f9a8f7f423e85b74f7d53c459ff986a9fcc8ac75e9b0c7ab6f6f5e8a12be5361f36c2ff847d0b6f9efaa7874011898215fb984689fc40ed644c13cbee9a26693e6f2a0008fa16e03df54f0d0c356bb10259b344e0bea9d2bef64f928976a8cf7cdff80111f42dc17bea9e19186ad76204b36689c17d53a57dec9f2512ed519ef9bff00223e85b82f7d53c3230d5aec40966cd1382faa74afbd93e4a25daa33df37fe00447d0b705efaa786461ab5d8812cd9a2705f54e95f7b27c944bb5467be6ffc0088fa16e0bdf54f0c84f6913bcfbfdb705d8b0c523e5c3212343ace8f4ce0124121f42dc18bea9e18f2ae48026ce5df0c37e27b23fc1e46a41339c2de69c03ec253e85b8327d53c31d55c9004d9cbbe186fc4f647f83c8d48267385bcd3807d84a7d0b7064faa7863a37a459480fda45c5c564f0f6fdefd0ff7ab3139770115495fa16e0caf54f0c736f48b2901fb48b8b8ac9e1edfbdfa1fef566272ee022a92bf42dc195ea9e18e66aa3bdcd15cb99cee259ebd3ee1d6bf8970eaa5ac046f658e85b832cd53c31cb6159d44701f9b6559179ff9fd298ffebda5fb0b2808f90b2d0b7065aaa7863954ec6013ada55ef62efba27379b9027d26101bd620120c566a16e0cb654f0c729299e5b228b0e617dac3a76672d7e779f6e45d6c102432ece42dc196da9e18e51533cb645161cc2fb5874ecce5afcef3edc8bad8204865d9c85b832db53c31ca2328bc537029c08ae7db00194ac5806786559b701090e5f3a0b7065b7a786394365178a6e0538115cfb60032958b00cf0cab36e02121cbe7416e0cb6f4f0c728656416d88e0d2a571c3862e4aa7be41dc41a93801243b20e92dc196df9e18e50b389533be9807cd9b53d2848d45daabb32f94cbff4877e5d35b832dc03c31ca15712a677d300f9b36a7a5091a8bb557665f2997fe90efcba6b7065b807863942a6e6727a73681b9251c103a2d0dc8d6c76a958bfa21e13b4e6e0cb701f0c7285368e0a7fb4365f50204e69c5211efd589816d73f143c41a9ddc196e04e18e50a55dd3a8a35d2e6cbbd693609c1a3dd30daf1d43df8789d93cb832dc0ac31ca14947b9a9f390bf5c2f79ece9302ad9ce160a7ce3bc0f15567a7065b816863942911b85ac93f7e13b16c09ffa584c11c426c13c23751e2c50f5e0cb702e0c728521370b5927efc2762d813ff4b09823884d827846ea3c58a1ebc196e05c18e50a426e16b24fdf84ec5b027fe9613047109b04f08dd478b143d7832dc0b831ca1484683fbd4c956c5b6dd1c5faba56ec4930b62377a5f1642bb0065b8171639429075c91d346013b399370521d6ca436ba5c18894b48e2c9fb610cb702e3c728520d4535ff38d8d8f5dead6a62d13ecb9cb2dd54f28ec5959ac3196e05c88e50a419167e571e88146e75279aed9a73f5616066ec411a8b2cd98732dc0b921ca148312cfcae3d1028dcea4f35db34e7eac2c0cdd882351659b30e65b817243942906259f95c7a2051b9d49e6bb669cfd585819bb1046a2cb3661ccb702e48728520c4400511a11705f661099d94cb960932fde3a464d15968703a96e05c91e50a41870c1c7bef046e6f79e001518f22708df6738b259fb2d284762dc0b924ca14830d1838f7de08dcdef3c002a31e44e11bece7164b3f65a508ec5b8172499429061a3071efbc11b9bde78005463c89c237d9ce2c967ecb4a11d8b702e49328520c3460e3df7823737bcf000a8c7913846fb39c592cfd969423b16e05c92650a418684dda179d1d497a55ccdb40ea1d670761e4f4b5f82d29eb63dc0b924da14830cf27c687e710f57763667ca9cc312c36be762bc7ed5a557ac8b817249c4290619d4f8d0fce21eaeec6ccf9539862586d7cec578fdab4aaf591702e49388520c33a2b2c78491a38604566b8cf28bb0f02f484f17bb269578f23e05c92720a4186735658f0923470c08acd719e51761e05e909e2f764d2af1e47c0b924e414830ce638c439d13f4403cd67a9649ae29a33ccc0084ac6a55fe090817249c9290619cb718873a27e88079acf52c935c53467998010958d4abfc12102e49392520c33966f233ff1d37291ed6b6bba6380c6f72dac6387179581264305c92725a418672b6a58d8907d47a692a39d9cbef7ec165605096a2c2b03f0870b924e4c4830ce5560c409cdd0f1cfdd14016175e63654a6b65530555609850f17249c9990619ca94d9a6c4878462271f4c8eae3c2cad14818ecbca7ac14ae1f2e49393420c339512747313dc6eec79bb657fdbf7bf3ca8ade1bd54c582b003f5c927269418672a14e8e627b8ddd8f376caffb7ef7e79515bc37aa98b056007eb924e4d2830ce542292f1da3f21da126a6261ef5e62d522624b1b12e60ada4fe7249c9a60619ca83525e3b47e43b424d4c4c3debcc5aa44c4963625cc15b49fce493934c0c33950630cecf3c9ed90752655ea3cf8f1370933f0920b682b837fac927269918672a0b619d9e793db20ea4cabd479f1e26e1267e12416d05706ff5924e4d3230ce54164f4d959f51c6a0016240b73632abea47a866ded70ae283ec249c9a65619ca82b2aad83eb79efc2ba914796645bb5fc89fd1019ab15c6abd9493934cbc3395055555b07d6f3df8575228f2cc8b76bf913fa2033562b8d57b2927269978672a0aa36c8685abe218da211e4818965361a22a082c2a9571c536624e4d3300ce541536d90d0b57c431b4423c90312ca6c344541058552ae38a6cc49c9a66019ca82a66733fa17cee8b94014582e1d8b3690852e4d66a25c72f19993934cc13395054b5a7a4cdc7433f537f57684330ccb490508dd2941b8e7873427269983672a0a954106f265beca6d27b7b3305e0ff4ba04bdfcae8071d0b2694e4d3307ce5415290e203d7853f75d073c2c88b416479c04283bb8fde3a308d39c9a66109ca82a511c407af0a7eeba0e785911682c8f3808507771fbc74611a73934cc21395054a23880f5e14fdd741cf0b222d0591e7010a0eee3f78e8c234e7269984272a0a9447101ebc29fbae839e16445a0b23ce02141ddc7ef1d18469ce4d33084e54152886e16303215d8532b8f8eb3395ad7e83d2ffdebdb3a32313ac9a6610aca82a50f683eb9110213290eebe38e6aac0df8750c3e33b374660676934cc21695054a1d5c8fcaceda88d4d5a48d44cd4e7a18e4c4bec363e8cdb0ee2699842e2a0a94394531ee4a8b742c6315e0b192935259c435bfe2c4d19d05dd4d33085d5415287116763541ed4adb7df8878b1d1d02db8317c22186a33bafbb9a6610bba82a50e12cec6a83da95b6fbf10f163a3a05b7062f84430d46775f7734cc21775054a1c259d8d507b52b6df7e21e2c74740b6e0c5f08861a8ceebeee699842eea0a943843fc402bc40b95ea7910280e0de7504136a53683219df21ddd33085de415287070b9a5e2557d54006eecb29b9b348302180e92c6133bfe7bca6610bbd82a50e0d1734bc4aafaa800ddd9653736690604301d258c2677fcf794cc2177b054a1c1a2e6978955f55001bbb2ca6e6cd20c08603a4b184ceff9ef299842ef60a9438345cd2f12abeaa003776594dcd9a41810c074963099dff3de533085dec1528706845b83b0253b68326b978c3932ae12a12bad522103c001fcb6610bbd92a50e0cf1782ceb17dcf89053fb7af1e4c207c2021eca01d7801e397cc2177b354a1c19d2f059d62fb9f120a7f6f5e3c9840f84043d9403af003c72f9842ef66a943833a5e0b3ac5f73e2414fedebc793081f08087b28075e0078e5f3085decd528706744828ce38c4decae1ca83a0ea576208fbbba75ce8c010c0bf610bbd9ba50e0ce71c63f51e6020187b61cd69cca52239f2239115ce8023257fc2177b384a1c19cd38c7ea3cc04030f6c39ad3994a4473e447222b9d00464aff842ef6709438339a718fd479808061ed8735a7329488e7c88e44573a008c95ff085dece1287067346f32019fd7634692db31765d1f6ff78bc8cb0a71011acfff10bbd9c350e0ce676a765bec85290fdd832914b2353e17123dd870df023743ff2177b387a1c19ccd60ff1085e0b4a272d318515c60da561f27f33dbb04702bff42ef6710438339994e1079b897cbc79d72f6cab0b812d438fc28d77308e1fbff85dece218706733128334c1e05fa11f2b2b3bd596683d06ca4940ae311c59c000bbd9c440e0ce6615066983c0bf423e565677ab2cd07a0d9492815c6238b3800177b38881c19ccc22cdf8924ee4aca8297951d5d906d69ad3e928789471814012ef671113833998359bf1249dc9595052f2a3abb20dad35a7d250f128e3028025dece222706733063f907d408f8dacc22b1a9d6e3813ceafa68c7a221c61f405bbd9c445e0ce660b0b33532df57ddc3c22fb62d46685c559f95b504138c58c0c77b3888cc19ccc151666a65beafbb87845f6c5a8cd0b8ab3f2b6a082718b1818ef6711198339982a2ccd4cb7d5f770f08bed8b519a171567e56d4104e3163031dece223306733054599a996fabeee1e117db16a3342e2acfcada8209c62c6063bd9c44660ce660a83f478b8c2e404679fc7c553e5eba7d9a41f760108c5a64c87b3888cd19ccc14f0aa16fc532e30fabc5bed274b3d3232f30311c1e18b66d91f671119b3399829d1542df8a65c61f578b7da4e967a6465e6062383c316cdb23ece223366733053a2a85bf14cb8c3eaf16fb49d2cf4c8cbcc0c4707862d9b647d9c4466cce660a74550b7e2997187d5e2df693a59e9919798188e0f0c5b36c8fb3888cd99ccc14e83629550004937d7428b34f4333905aedaf541dde8b687d20671119b4399829cf6c52aa000926fae851669e866720b5db5ea83bbd16d0fa40ce2233687330539e64b7acace8b078886f936504c49f93b16992d3772da398829c4466d1e660a73b5581b206a7c373c8abecf2017f9d4f5d7f6802eb5b48d5063888cda4ccc14e753715bcba25e96a4924a00bfaf598c6b5ab1261d3b6934e0d71119b4a99829ce96e2b79744bd2d492494017f5eb318d6b5624c3a76d269c1ae2233695330539d268694b956e082bdc5f4657e3ccc142d1588be34bda4edc36c4466d2b660a73a35ce4efd7b272da708b52d7bf8fe0ad9d5d5a2294b49f5c6e888cda57cc14e74545dc385c3b483798e36bd777161f833566f6a12669405cde1119b4b09829ce8917cac9654cf2f1e9939dd6e6229d2e657a2f9e49d2825dbd2233696230539d112f9592ca99e5e3d3273badcc453a5ccaf45f3c93a504bb7a4466d2c460a73a225f2b259533cbc7a64e775b988a74b995e8be79274a0976f488cda588c14e74444a68a3d73dfa120469b4df290b479b267dbf4e4b941491ea119b4b12829ce88720e3a05b5256a6c0a02fe64a0ced5e47a7c0f894282ac7d5233696260539d10d41c740b6a4ad4d81405fcc9419dabc8f4f81f12850558faa466d2c4c0a73a21a0fa0da1a1fbd1dba4d85c1202a13a1194b463e4da0acc3558cda589914e744331f41b4343f7a3b749b0b824054274232968c7c9b415986ab19b4b13229ce88663e8368687ef476e936170480a84e84652d18f93682b30d5633696264539d10cc0919297dd44b708a38f430f946fb30c506744e6a0567bead66d2c4c9a73a2197123252fba896e11471e861f28df6618a0ce89cd40acf7d5acda589934e74432e2464a5f7512dc228e3d0c3e51becc31419d139a8159efab59b4b13269ce8865c48c94beea25b8451c7a187ca37d9862833a273502b3df56b3696264d39d10cb81da4f08a1b198b5b5c09378c6611344b1387429d567d8ed76d2c4c9b73a2196f3b49e114363316b6b8126f18cc226896270e853aacfb1daeda589936e74432de02a61ad542c8b0253ceb06298ea2f926fa5f667259f7df5eb4b1326ece8865bb054c35aa8591604a79d60c531d45f24df4becce4b3efbebd696264dd9d10cb760a986b550b22c094f3ac18a63a8be49be97d99c967df7d7ad2c4c9bb3a2196ec1530d6aa16458129e758314c7517c937d2fb3392cfbefaf5a589937674432dd82a61ad542c8b0253ceb06298ea2f926fa5f667259f7df5eb4b1326ece8865bb054c35aa8591604a79d60c531d45f24df4becce4b3efbebd696264dd9d10cb76035990dfd888e8c070787b25b9f1c71b9441bf8937df97bae2c4c9bb4a2196ebf6b321bfb111d180e0f0f64b73e38e3728837f126fbf2f75c589937694432dd7e627690a2f89cb2d3eae4f16672cfeedfbcb23e4af7e792b9b1326ed38865bafb50ff79f2c79be85fa2900ac4dbfe05ba25a6d892efd0c9746264dda810cb75f52e114c92659a537711e63d81ae5a336ef7900d22dfa336e9c4c9bb512196ebe95c229924cb34a6ee23cc7b035cb466ddef201a45bf466dd3899376a2432dd7d244578af66ccbd094145f1dfeafc6f5b68a8290887e8e7fa81326ed45865bafa314c16e99affa23dff58463f555ec1367c1477d0dfd1ea351264dda8c0cb75f452982dd335ff447bfeb08c7eaabd826cf828efa1bfa3d46a24c9bb518196ebe8a5305ba66bfe88f7fd6118fd557b04d9f051df437f47a8d4499376a3032dd7d14321dcd7a5633a1b778e947a2a5bec338b67e446ce8f6be8a326ed46165bafa27643b9af4ac67436ef1d28f454b7d86716cfc88d9d1ed7d1464dda8c2cb75f44e54898e962f310995b06b46828d5934dd863b6db0a3dc9e29c9bb518696ebe89b352575d934c495e32d9cb4fd111091b5b8b9375e47bae0549376a30e2dd7d1356a4aebb269892bc65b3969fa2221236b71726ebc8f75c0a926ed461c5bafa26a60a83011a974da448338fbec3aa06ed18f2739761eed25534dda8c39b75f44d34d62b8d0294c3740d3381fd06b9f059dca90cee93ddbeea79bb518746ebe89a526d7ca4d28faf13973366798cd9c33364163f9cf7bb98150376a30e9dd7d13494daf949a51f5e272e66ccf319b38666c82c7f39ef77302a06ed461d3bafa2692277181e17a4e479d999fc65b2ccef4d3b1d2433aeee7a941dda8c3a875f44d234ee303c2f49c8f3b333f8cb6599de9a763a48675ddcf5283bb518750ebe89a4629d86032bf9ba12e33454164a999fb49738b68e8bba0490876a30ea2d7d1348b53b0c0657f37425c668a82c95333f692e716d1d177409210ed461d45afa269163373d977d4d1077099db2d8a9cc615207a6fff9fee82c822da8c3a8c5f44d22b66e7b2efa9a20ee133b65b15398c2a40f4dfff3fdd059045b5187518be89a45659e1be8c29a6a07a3432de2269767c7c96025a7cba0cc48c6a30ea327d1348ab3fd5d5c529afc3ac352be43cc94b20f3d84710f6741b2d19d461d465fa2691550bbe043729c20a10371df07188f469e25cd07de9e837fe34a8c3a8ccf44d22a9177c086e538414206e3be0e311e8d3c4b9a0fbd3d06ffc6951875199e89a45522ef810dca7082840dc77c1c623d1a7897341f7a7a0dff8d2a30ea333d1348aa45df021b94e105081b8ef838c47a34f12e683ef4f41bff1a5461d4667a269154847f29c1f728323bb3ea52f1085a4c620794a3a9b8381874b8c3a8cd044d22a8f1bf790ebbb68ca2e4a10861901a7b43b9ed6d1340704b298187519a189a4551d37ef21d776d1945c94210c32034f68773dada2680e09653030ea33431348aa3a6fde43aeeda328b928421864069ed0ee7b5b44d01c12ca6061d46686269154746bcee00ab1a8d42a1d4a58c0039bc9d7a2f8e59d382738c1c3a8cd0d4d22a8e763b018c239b42b0c075ad977fd95bba9f23427377050158487519a1b9a4551cd53728a3149cad8cfdb7bdae7f1899f4e90aaaa6be0a1cf0a0ea33438348aa39932f76d0f69f8345783bdddc7d9716697cd97b0d4c14542151d4668716915473165eeda1ed3f068af077bbb8fb2e2cd2f9b2f61a9828a842a3a8cd0e2d22a8e6257f00cea7e435415dbbd9f175c23c259e2a11f500516ac557519a1c6a4551cc33bf27281d2e92ae384416626aea5acae71849a9d0a2efcabea33438e48aa398503f73db07c34d87ed548f44553a981578f4b9137145f9d58d466871d9154730907ee7b60f869b0fdaa91e88aa75302af1e97226e28bf3ab1a8cd0e3b22a8e6120fdcf6c1f0d361fb5523d1154ea6055e3d2e44dc517e7563519a1c764551cc241fb9ed83e1a6c3f6aa47a22a9d4c0abc7a5c89b8a2fceac6a33438ec8aa398483f73db07c34d87ed548f44553a981578f4b9137145f9d58d466871d9154730900afa0ebc5cfd929275e4b0a26b8e52ec95b482df8bf54f1b8cd0e3b32a8e611f15f41d78b9fb2524ebc96144d71ca5d92b6905bf17ea9e3719a1c766551cc23e2be83af173f64a49d792c289ae394bb256d20b7e2fd53c6e33438eccaa39847c57d075e2e7ec9493af2585135c729764ada416fc5faa78dc66871d99547308f83bb34472a63babdf2b11321eaf4356c4078a89f5bf5695b9cd0e3b33a8e611ef0378e19222d9da7622e88c3554e4d582bb576fe87eaecf749a1c766851cc23dd06f1c32445b3b4ec45d1186aa9c9ab0576aedfd0fd5d9ee93438ecd0a39847ba0de386488b6769d88ba230d55393560aed5dbfa1fabb3dd26871d9a147308f741bc70c9116ced3b1174461aaa726ac15dabb7f43f5767ba4d0e3b3428e611ee8378e19222d9da7622e88c3554e4d582bb576fe87eaecf749a1c766851cc23dd06f1c32445b3b4ec45d1186aa9c9ab0576aedfd0fd5d9ee93438ecd0a39847ba06a4abd358cd9204086e9354d2f9388a9821e561cabb58127871d9a157308f73f60a7d317f014c338da9892925585394db07f0836576ca6500e3b342be611ee7d4d61fedcb68c092981f74d1ca1689a960d406c69aedaf0a11c766858cc23dcf926d65666437a950ad0b4c231392f5d26c6c334d05db7854338ecd0b29847b9f14dacaccc86f52a15a1698462725eba4d8d8669a0bb6f0a8671d9a165308f73e2276bb245e44cd6e30f9930bcdb1b9c95c74f2f3e76dfb90de3b342cb611ee7c34ed7648bc899adc61f326179b637392b8e9e5e7cedbf721bc7668596c23dcf8629c121c46795de440b2aeaeb62cc9a51c97f18f6db8088388ecd0b2e847b9f0b53824388cf2bbc881655d5d6c59934a392fe31edb70110711d9a165d08f73e163316dfbe74b9fbc7f971d3a581909141d23ebfd86e03c4e33b342cbb11ee7c2b662dbf7ce973f78ff2e3a74b03212283a47d7fb0dc0789c67668597623dcf856586dd7a6a94a71d7b28d768dfca06d01f53d5b5eb810b78decd0b2ed47b9f0ab3cee07fa28f7666731e11513ef9f01fe96bd12ba7023131cd9a165db8f73e15505ee68a128514f863088521fd59c2bf7d9bc8171e047ca3ab342cbb81ee7c2a90bdcd14250a29f0c6110a43fab3857efb37902e3c08f9475668597703dcf855217b9a284a1453e18c221487f5670afdf66f205c7811f28eacd0b2ee07b9f0aa42f734509428a7c31844290feace15fbecde40b8f023e51d59a165dc0f73e15485ee68a128514f863088521fd59c2bf7d9bc8171e047ca3ab342cbb81ee7c2a9049df6cd1e08c737dddd06bf2a9e3a6f5e3d28a3908faeb5768597704dcf8551f1fd13250977b69b38866ffdd4a2575e673e7706f11f77aafd0b2ee0ab9f0aa3d3fa264a12ef6d36710cdffba944aebcce7cee0de23eef55fa165dc1573e1547a0b5721ef34502985ee62276d1ef3ff947be01db947df8ec042cbb82be7c2a8f316ae43de68a0530bdcc44eda3de7ff28f7c03b728fbf1d8085977057cf8551e62d5c87bcd140a617b9889db47bcffe51ef8076e51f7e3b010b2ee0af9f0aa3cc5ab90f79a2814c2f73113b68f79ffca3df00edca3efc7602165dc15f3e154798418477a01b651b16b2e89ec9e59e21426a4437917dfa90052cbb82bf7c2a8f2f0f1b47ed0d2cb8e53297658bc19a6a7f80cacb1ffbf6c40b5977057ff8551e5d1e368fda1a5971ca652ecb178334d4ff0195963ff7ed8816b2ee0afff0aa3cba3c6d1fb434b2e394ca5d962f0669a9fe032b2c7fefdb102d65dc15ffe154797404ec98153fc849e16181545603317bf6b298b4fcdfb7c45bcbb82c00c2a8f2e709d9302a7f9093c2c302a8ac0662f7ed653169f9bf6f88b7977058018551e5ce13b26054ff212785860551580cc5efdaca62d3f37edf116f2ee0b0030aa3cb9c2764c0a9fe424f0b0c0aa2b0198bdfb594c5a7e6fdbe22de5dc16006154797384ec98153fc849e16181545603317bf6b298b4fcdfb7c45bcbb82c00c2a8f2e7029a55b54cf6bbee3fcf0b2b85c8da6d0ff58fb98f6fa2f7a77058019551e5cdf534ab6a99ed77dc7f9e16570b91b4da1feb1f731edf45ef4ee0b0032aa3cb9be32a7c60014117e47c088f2d96894c33ea9a64a60dbea61eadc1600665479737b654f8c002822fc8f8111e5b2d129867d534c94c1b7d4c3d5b82c00cca8f2e6f656b170ad26a87bd6cee9f35d98b134f552db85806fab2bac7058019a51e5cdeb39753a0723b37a656a9a0eb327c091e551f966fddf57fb59e0b00335a3cb9bd572ea740e4766f4cad5341d664f8123caa3f2cdfbbeaff6b3c160066b479737aa71e740c965306c4d772e62c495606f8ff427f7f47d61916882c00cd78f2e6f536fe0da3fa0c35b52bb22ed81211f071a94924be5fac4c6d2058019b01e5cdea56bd40d2c17e9395d430c02fa389c362fd566f3c8f58b31a50b0033613cb9bd4963ba73050634f57252de2dec6796945a5710438eeb18074b160066c379737a9153873eb6e2cc6d9c728283d0c58b50af5a62e31ad631b2972c00cd87f2e6f5213320d61a9bfb5df0b1cb2f998174c95961082232ac65092f58019b10e5cdea416641ac3537f6bbe163965f3302e992b2c210446558ca125eb0033621cb9bd4825895b117464ffa7a93f2e65dfc314d603062e4c7b195c8be60066c449737a9033d3dbadb630277acf4abf4b3eec0c2bb0d08258c632d357dc00cd88a2e6f5205068dce639c677211b61e115fd3dfad70c652a715c65c0efc8019b1155cdea4090d1b9cc738cee4236c3c22bfa7bf5ae18ca54e2b8cb81df90033622ab9bd48121a37398e719dc846d878457f4f7eb5c3194a9c5719703bf20066c455737a9024346e731ce33b908db0f08afe9efd6b86329538ae32e077e400cd88aae6f5204868dce639c677211b61e115fd3dfad70c652a715c65c0efc8019b1155cdea40905dcc25206350c4ee908853f27253d61376973eb5cb838391033622ac9bd4811f47aaa2ed9d040c94edd6cfdcdb05d4219970d9689708ab23066c455a37a9023d1b679e88106a9be1a873c7b1ac69d03ddf240ece2e12fa470cd88ab56f52047936cf3d1020d537c350e78f6358d3a07bbe481d9c5c25f48e19b1156adea408f26d9e7a2041aa6f86a1cf1ec6b1a740f77c903b38b84be91c33622ad5bd4811e4674f4ced59b761c51064658559aca9e9a562d26e7099763966c455ac7a9023c75ab0f28789d14641ed8ef302a9b77bcdf70800d9e1349073cd88ab59f520478d41743dbbea050f3ba7e40dfd49cd1f969a525db0c26ac4e89b1156b4ea408f190efad424aa6ca12f1c8e43f289f86727e0e7175e84d72dd23622ad6ad4811e311df5a84954d9425e391c87e513f0ce4fc1ce2ebd09ae5ba46c455ad5a9023c623beb5092a9b284bc72390fca27e19c9f839c5d7a135cb748d88ab5ab520478c403e8f9d229c78c30b138478c46216139b37b16f126bb1292b1156b57a408f18707d1f3a4538f186162708f188c42c27366f62de24d762525622ad6af4811e30e0fa3e748a71e30c2c4e11e31188584e6cdec5bc49aec4a4ac455ad5e9023c61c1f47ce914e3c618589c23c62310b09cd9bd8b78935d8949588ab5abd20478c383e8f9d229c78c30b138478c46216139b37b16f126bb1292b1156b57a408f1870093192f20f5408cdf3cf1980ba8a4f311ba53a21d763f65722ad6af5811e30df126325e41ea8119be79e330175149e62374a7443aec7ecae455ad5eb023c61be24c64bc83d502337cf3c6602ea293cc46e94e8875d8fd95c8ab5abd60478c37c498c97907aa0466f9e78cc05d4527988dd29d10ebb1fb2b9156b57ac08f186f81f2b87cdcba30f9709b7c0039f031b0c6695fe1a764109732ad6af5911e30def3e570f9b97461f2e136f80073e063618cd2bfc34ec8212e655ad5eb223c61bde08c077e404eec113f3a52806726a942c469a5466d905c9cdab5abd65478c37bb1180efc809dd8227e74a500ce4d528588d34a8cdb20b939b56b57aca8f186f762301df9013bb044fce94a019c9aa50b11a69519b64172736ad6af5951e30deec4603bf202776089f9d2940339354a16234d2a336c82e4e6d5ad5eb2a3c61bdd81819d6ed254e93f70718a85f1d076abf15e7a26a905e40dbb5abd65578c37baf3033adda4a9d27ee0e3150be3a0ed57e2bcf44d520bc81b76b57acaaf186f75e60675bb4953a4fdc1c62a17c741daafc579e89aa4179036ed6af5955e30deebc4ce1101600d72270058b6af0de997df35b7f6f5182f3aadead5eb2acc61bdd7725d478d8d810c797d7dcfdd9b39123e163413aa005e8f9be5abd655a8c37baed4ba8f1b1b0218f2fafb9fbb3672247c2c68275400bd1f37cb57acab5186f75da23643c1036a5a1172c3a1f5ec4a2b7803947467d17a58afa6af5956b30deebb346c878206d4b422e58743ebd89456f00728e8cfa2f4b15f4d5eb2ad661bdd76619a348edb0f907147daea57308e905fb915f75f15e97cfeaabd655adc37baecb334691db61f20e28fb5d4ae611d20bf722beebe2bd2f9fd557acab5b86f75d96668d23b6c3e41c51f6ba95cc23a417ee457dd7c57a5f3faaaf5956b70deebb2c592ca01a5e2abb5bba3b53903da657d7373e0b87f4c023565eb2ad6f1bdd76573e6b98e192b7f96f413ccf1871aad7a91abe730ce981eaadbd655adf37baecad08e98a6ffbd275964f3fc628d9b3d74ce1bf4216d305795c7acab5bf6f75d95911d314dff7a4eb2c9e7f8c51b367ae99c37e842da60af2b8f5956b7edeebb2b223a629bfef49d6593cff18a366cf5d3386fd085b4c15e571eb2ad6fdbdd76564474c537fde93acb279fe3146cd9eba670dfa10b6982bcae3d655adfb7baecac81aaaffac9389dc1cc0c28a85919b9cc8c8367d6a305939c8acab5bf7f75d958f3555ff592713b8398185150b23373991906cfad460b273915956b7efeebb2b1e6aabfeb24e277073030a2a16466e732320d9f5a8c164e722b2ad6fdfdd76563c616a561172b1639dd2da7c24833b0e40edf6474e82cb7246655adfc0baecac774ee704cfbbc549f3727b2040fcd4447c882eea9a0598888dcab5bf8275d958ed29e0624c4ded169eb1bc6879f006b0f3bca031310b32b51c956b7f05ebb2b1d953c0c4989bda2d3d6378d0f3e00d61e77940626216656a392ad6fe0bd76563b23393e1de0e16dd3293b7c9dfb678ebc99ec320c12ccc787355adfc18aecac7636727c3bc1c2dba65276f93bf6cf1d7933d8641825998f0e6ab5bf8315d958ec65a61e0250ebdf7821ba54f76d041d721274edf01b33385ce56b7f063bb2b1d8b40d618f6f3de71bc0410c6e596e1d63cfae01a006668af9dad6fe0c876563b150dbe8a9abe1f662fd4e7b5c32421d474a2028ffdccd3033c5adfc191ecac76291b7d15357c3ecc5fa9cf6b864843a8e944051ffb99a60678b5bf8323d958ec5236fa2a6af87d98bf539ed70c908751d2880a3ff7334c0cf16b7f0647b2b1d8a46df454d5f0fb317ea73dae19210ea3a510147fee669819e2d6fe0c8f6563b14867fb0258b858e5b51b41842a387b6f44cc6b5bd9cd31d7c6adfc191fcac7628f5c085d5e47144e220349304c67550684451913b09a65538e5bf83240958ec51d44231369648b1efbd3588890c50835033674835e34cc4b1db7f064822b1d8a3914587f7f9f78c0af73773919806e9201192b62b9699a3a3c6fe0c905563b147128b0feff3ef1815ee6ee723300dd24023256c572d3347478dfc1920aac7628e25161fdfe7de302bdcddce46601ba480464ad8ae5a668e8f1bf83241558ec51c42ed654a9d2288833687ff0c3f9d2b803759d71c84cd375e47f06482bb1d8a3875daca953a4511066d0ffe187f3a57006eb3ae39099a6ebc8fe0c905763b1470e476bab541f04a3856ec5eb07dda9080882b8231e334f7b92fc1920afc7628e1b1ae9af55146bc9c2aa51fe07b1b0380bb1b2a23966a09b26f83241608ec51c3535d35eaa28d7938554a3fc0f6360701763654472cd41364df06482c11d8a386a6ba6bd5451af270aa947f81ec6c0e02ec6ca88e59a826c9be0c905823b1470d4635fd35579c0d0cd1f56183583dfe85839d76dc835067d38c1920b057628e1a752d1ff57c9e424520b725862fe1df8ab1ff1378d6a0e9e728324160bec51c34d31b6575c6a2acb5be3aad8bdf29a1950ec24cb17d41ee0e606482c18d8a38699636caeb8d45596b7c755b17be53432a1d849962fa83dc1cc0c905831b1470d3252ebb61e7f0db0275b718aefc0c68d3e5cd5885c507d27991920b064628e1a6331e9c4e9d47de30683a93dd777eb427765ed6cb5a0fbf333324160c9c51c34c563d389d3a8fbc60d07527baeefd684eecbdad96b41f7e6666482c1938a38698a53b96c54285a0ed1db6b1f55d60b31d843f80ed383f170cdc90583281470d313338531552716a05b839c66a3a2748bab343279a407e4859c920b065128e1a625670a62aa4e2d40b70738cd4744e917566864f3480fc90b3924160ca251c34c4a5a271e0172bd0425db37c286803056a77d0c428d1f93ba73482c1945a3869893406094afbbdc8b038335ad04f6bed549a65ae1173f2918e79058328c470d31250cd3820c4e1b98bed3318201e3dbd28df8f81e2b7e53d5d020b065198e1a624919a704189c37317da6630403c7b7a51bf1f03c56fca7aba04160ca331c34c492334e0831386e62fb4cc608078f6f4a37e3e078adf94f574082c1946638698924669c106270dcc5f6998c100f1ede946fc7c0f15bf29eae81058328cc70d31248594a7971b81c0ea4ffde4816341b50da3bc43eb4e53f01030b065199e1a6248f3ea74b90469aa001cc82b8245e94c9af23cad966ca7fa607160ca334c34c491d0960efcd6397c2bb65cb9840b387bb58f3d80eca9500f00f2c19466a8698923912c1df9ac72f8576cb973081670f76b1e7b01d952a01e01e58328cd50d3124722583bf358e5f0aed972e6102ce1eed63cf603b2a5403c03cb06519aa1a6248e44b077e6b1cbe15db2e5cc2059c3ddac79ec07654a807807960ca335434c491c8222155830fdeae6e297fac032ed9dd89e9c348a65010a4f3c19466a96989238f4442ab061fbd5cdc52ff58065db3bb13d386914ca02149e78328cd52d312471e1497aeb915dd3c7072c4d804b1c59e22534f7e96404437d006519aa6a6248e3b292f5d722bba78e0e589b009638b3c44a69efd2c80886fa00ca3354d4c491c76525ebae45774f1c1cb136012c71678894d3dfa590110df4019466a9a989238ec30cfce75854c663b62ece81d848b190d46be50af02236281328cd536312471d7619f9ceb0a98cc76c5d9d03b0916321a8d7ca15e0446c5026519aa6c6248e3ae4f519282eb941ba55879c86e088a8c2fc73b9eb9088f2e05ca3354d9c491c75b2ab57db2ad8aba027db9b8d40773405a3ab9996f1120000c9466a9b489238eb5556afb655b157404fb7371a80ee680b4757332de2240001928cd536912471d6a36e84f778c8d6ac1c3ad0b48142b29639728c1b94481a433519aa6d3248e3ad36dd09eef191ad583875a1690285652c72e51837289034866a3354da6491c75a667b3968b08982dbedb7a5518470acd8908e562e2120834ce466a9b4d9238eb4b5b7985c2e792de3583bad2288473c30cbe0d21c124120d9d8cd5369c2471d69543056432a5883f22d43bcc48ff45ae14285c9f7f4825bf3c19aa6d3948e3ad29121d2112217300fd753dc089f4e98422fcfb9afb904d22793354da7391c75a51243a422442e601faea7b8113e9d30845f9f735f7209a44f266a9b4e7238eb4a24874844885cc03f5d4f70227d3a6108bf3ee6bee413489e4cd5369ce471d69441cfb613de1fa8aa376b42c479daa4912941f33d9826ab7ca9aa6d39d8e3ad28739f6c27bc3f51546ed68588f3b549225283e67b304d56f95354da73b1c75a50e73ed84f787ea2a8ddad0b11e76a9244a507ccf6609aadf2a6a9b4e7638eb4a1c73ed629be636d7d382678a34e3b0708f4d3bfac913576255d5369ced71d6943773ed1de4a2d0325ed1953c61bdbf091946ba518f26b068acaa6d39dbe3ad286d73ec94761c02e7756ff0a0bb71dc3a2d39b6ff1b4d62755a54da73b8c75a50d973eb81990e6851a2aca7696eda169c551fb05a339ac68eb5a9b4e7728eb4a1b173e95bdef33325fd2614fad5aa8b60a4eba31064358ec16c5369cee61d69436173e5106abcc8ceb218f01da34b74e94483887cc56b1f26d9a6d39dcd3ad286c173dc79824ff4201bfea6633e8d47fa83b3535587d63ff1b44da73b9b75a50d8173cb4bb1764ac2efca12ee7510ee1d0212e9070cac8187699b4e7737eb4a1b0173a8f00fc2f8089760ec04e2183a61fed2146a165904b2d4369cee70d6943601736438cc5c5293e68e9e31bc26d2ebf8506b3029b20b09a96d39dce2ad286c0172daca458f07aa84ea028b704403ffeb4d18bc506417b753da73b9c65a50d80171c7ed37f471d7c1a0cb3ed87e6627d14673d49dc83112a8b4e7738db4a1b0016fa2331cbf46323b0e5ca5a8f32a779d392a05389063c95269cee71c694360016b56bee654eee72de97f7349dcb317351e96666e20c936a5d39dce39d286c00162bfd679804051139fc50e8bafc45664e96f28d94194114ca73b9c74a50d80015192059fd6e324df0c50450f55e6d4c47f20adaf8329c69a4e7738ea4a1b00012f3663ec8428cc75e566b216a22bd183aa83b75c065531359cee71d5943600015e6cc7d9085198ebcacd642d4457a30755076eb80caa626b39dce3ab286c000248ebe85ee705b48f6260f0527f0d6e095651396d195668d773b9c75750d800031dea296aa46debd69188089cf479040d58e4ced732ae75afe7738eafa1b000053bd452d548dbd7ad23101139e8f2081ab1c99dae655ceb5fcee71d5f4360000a03bafe57681a321212e64a6bc84238300fd59759cabb7ac09dce3abf86c000130775fcaed034642425cc94d7908470601fab2eb39576f5813b9c757f0d8000260eebf95da068c8484b9929af2108e0c03f565d672aedeb027738eafe1b00004c1dd7f2bb40d190909732535e4211c1807eacbace55dbd604ee71d5fc360000983bafe57681a321212e64a6bc84238300fd59759cabb7ac09dce3abf86c00013003722399d9a8c4fa298f7570fea52dfca6f547365770fc14b9c757f1d800025f06e44733b35189f4531eeae1fd4a5bf94dea8e6caee1f829738eafe3b00004be0dc88e6766a313e8a63dd5c3fa94b7f29bd51cd95dc3f052e71d5fc76000097c1b911ccecd4627d14c7bab87f5296fe537aa39b2bb87e0a5ce3abf8ec00012f83722399d9a8c4fa298f7570fea52dfca6f547365770fc14b9c757f1d800025f06e44733b35189f4531eeae1fd4a5bf94dea8e6caee1f829738eafe3b00004be0689b3f234093c14230a384379fa9a72469942992dc40a92f71d5fc77000097bf5d48d6f3578a053c2e0d306735b176437f6aaf22b882f65fe3abf8ef00012f7d46a4069385768d3028e088c661c11481ab17ba42710790c0c757f1df00025ef9195a65d3e14f9d181e873984b9e050fe0271d081e210c5828eafe3bf0004bdf132b4cba7c29f3a303d0e730973c0a1fc04e3a103c4218b051d5fc77e00097be26569974f853e74607a1ce612e78143f809c742078843160a3abf8efc0012f7c456e5874be0df6b78c0fff41dc560afeabfd0e00c1087d015757f1df90025ef8739dd6744982159a94ec61033811f87d02be41c152111442beafe3bf3004bdf0d73bace893042b3529d8c2067023f0fa057c8382a42228857d5fc77e60097be1a7387f5bf36e7e95d07de68c5fadc473b5bd2cc518446b4b0abf8efcd012f7c337322442b44325571dc82f983ec16b67163e7f4a0088f0d6257f1df9b025ef8657256e1035ec72d9b85cc1affce8b94dd7412453d111fbec5afe3bf3704bdf0c970c01ab393f0ddeed85e5df7937551b59466e6772241218c5fc77e6f097be1916d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321673774d4d2eaffe2c7cbefc630efbec65662add3890972347f1df9bf25ef86415a8142567c38827d5c5e0784583da5875907b7a412148869fe3bf37f4bdf0c814114dd59ced387b285823700a6d973095e51cb45242ab4d4fc77e6ff97be19010e3c13607409921cd7ca95f944110e0d68e5f28748570daaf8efce002f7c32011c7826c0e8132439af952bf288221c1ad1cbe50e90ae1b55f1df9c005ef8640238f04d81d02648735f2a57e510443835a397ca1d215c36abe3bf3800bdf0c80471e09b03a04c90e6be54afca2088706b472f943a42b86d57c77e70017be190086fd38eb416fba485496f878c376f08d13aa1847185727eb08efce003f7c3200f6bb976150459cbc25fa53710653c399d218564e00ae6a1621df9c008ef86401d638544d6df161a3c8c109618c0d69b34ef4d25bd15cee6c53bf38012df0c8039531ce25a948eb730e4e75429780b5e648adca7772b9f718b77e70026be190071324c1d61ff7ff1199694d04ae674e4c3c1fbaaeb57408717efce004e7c3200e164983ac3feffe2332d29a095cce9c98783f755d6ae810e2fdf9c009cf86401c25542ce34d462471e271969239031bb09b43107aa5d03c060bf38013af0c803833697f5167f2710f41af8fa3f16c19e0e14a46b51ba0924c27e700276e19007056d2fea2cfe4e21e835f1f47e2d833c1c2948d6a374124984fce004edc3200e0a66722d06d2fec68838aa10f45164a032fed40943e826370af9c009dc86401c1358f6b2ba7c600fc83e1a49e099276860a9ea6e84d04e1216f38013ba0c8038253dffbe21cf22a24848fabbb928acf8bc00173906a09dc82ee7002775190070490811d4f074a7c7485ebb9f6a47b81972ac70ce0a413d345ece004eeb3200e0911023a9e0e94f8e90bd773ed48f7032e558e19c14827a68bd9c009dd66401c122204753c1d29f1d217aee7da91ee065cab1c3382904f4d17b38013bacc8038244408ea783a53e3a42f5dcfb523dc0cb956386705209e9a2f670027759900704880d2fa7b420def73db8801e9c71dfbf25734f3ca113d4e9ede004eeb4200e090f1a5f4f6841bdee7b71003d38e3bf7e4ae69e794227a9d3dbc009dd68401c121e34be9ed0837bdcf6e2007a71c77efc95cd3cf2844f53a7b78013bad08038243c697d3da106f7b9edc400f4e38efdf92b9a79e5089ea74f6f002775a1007048785f0cd3eee451f69354c811bf145a1a51e136260e3d5042df004eeb4300e090ef4a2c008a9f066fde76564b761f125c9e6eaea8197aa229bf009dd68701c121dd206a59c2146f6274b972bee43482e137899fac2ff545f77f013bad0f038243b940d4b38428dec4e972e57dc86905c26f133f585fea8beefe02775a1e070487720dbbbfb528200c8ab2912388c869acd8d2c10cbcd51981fd04eeb43d0e090ee31b777f6a504019156522471190d359b1a5821979aa3303fa09dd687a1c121dc636eefed4a080322aca448e2321a6b3634b0432f3546607f413bad0f438243b8c6dddfda94100645594891c46434d66c6960865e6a8cc0fe82775a1e87048771867ce53ff58634b62f5d860847cf8f587d85327ca5199c3d14eeb43d1e090ee2f5baf00ab8729197db876e900f050130a5ce8ab91a3352ba39dd687a4c121dc5d43705a03e4b4b5b33db3f9f9d6fe4e0f6613b320466bfb483bad0f4a8243b8b912f30cb49fcbee1e482e1beba45ac4197869c23d8cd99a91775a1e960487717125e619693f97dc3c905c37d748b58832f0d3847b19b33522eeb43d2c090ee2e24bcc32d27f2fb87920b86fae916b1065e1a708f633666a45dd687a58121dc5c423aabe51d4c1f3aa0e370755193448c66f906de966ce788cbad0f4b1243b8b8747557ca3a983e7541c6e0eaa3268918cdf20dbd2cd9cf11975a1e9624877170e1abd51f4296a516005a2454c5b2f4b146a8413a29b3b8633eb43d2c590ee2e1b357aa3e852d4a2c00b448a98b65e9628d508274536770c67d687a58b21dc5c366af547d0a5a94580168915316cbd2c51aa104e8a6cee18cfad0f4b1643b8b86c61fce84e21b50db7f9d8525acfd8809e0062f911d9ddd5a05a1e962d877170d7500c294919cc9e27c076ccad960f2936ad084e20b3bd4f41b43d2c5c0ee2e1ad2c2aab3f09fbbf074db3c153227c7a680652f83e677c4284687a58b91dc5c3595855567e13f77e0e9b6782a644f8f4d00ca5f07ccef88508d0f4b1723b8b86b23cbd05a8fe517ed503952d448050119ac58e3cf69df2ae12a1e962e577170d63058c63fed3058061d3f08280f6fe4b30375ed5ea3be7002643d2c5cbee2e1ac50b18c7fda60b00c3a7e10501edfc96606ebdabd477ce004c87a58b97dc5c358a16318ffb4c1601874fc20a03dbf92cc0dd7b57a8ef9c00990f4b172fb8b86b142c631ff6982c030e9f841407b7f25981baf6af51df3801321e962e5f7170d62858c63fed3058061d3f08280f6fe4b30375ed5ea3be7002643d2c5cbee2e1ac503d9ed88737128ef24ad67816d6278e01981d19447ce1a8c97a58b97ec5c3589f075009bb4487a09c62731825a2ad43fddc7c8e85f9c4f593f4b172fe8b86b13d0ea01376890f4138c4e6304b455a87fbb8f91d0bf389eb27e962e5fd170d627a1d4026ed121e827189cc60968ab50ff771f23a17e713d64fd2c5cbfa2e1ac4f43a804dda243d04e31398c12d156a1feee3e4742fce27ac9fa58b97f45c3589e80112f4611edc8c7df3f7aa52213267d8740b445c9c50fd404b172fe9b86b13cf0225e8c23db918fbe7ef54a44264cfb0e81688b938a1fa80962e5fd370d6279e044bd1847b7231f7cfdea94884c99f61d02d11727143f5012c5cbfa6e1ac4f3c0897a308f6e463ef9fbd529109933ec3a05a22e4e287ea0258b97f4dc3589e78112f4611edc8c7df3f7aa52213267d8740b445c9c50fd404b172fe9b86b13cf0225e8c23db918fbe7ef54a44264cfb0e81688b938a1fa80962e5fd370d6279e044bd1847b7231f7cfdea94884c99f61d02d11727143f5012c5cbfa6e1ac4f3c0158c893c44a8c1b1c89b51088f921434b1e48a4b288044268b97f4dd3589e77f2b191278895183639136a2111f24286963c914965100884d172fe9ba6b13cefe563224f112a306c7226d44223e4850d2c792292ca201109a2e5fd374d6279dfc3876a28efba8904611a0b03c72eec9a03b66ae564403c5355cbfa6eaac4f3bf770ed451df751208c23416078e5dd934076cd5cac88078a6ab97f4dd5589e77ee6dece2e8c504c3d01348e8e9c2194e7b99dd15561010b8d672fe9babb13cefdb67ec1e7e606c0a57f357f9cb7a90c4f1dffc86a9202315ade5fd37586279dfb55bea95a9973a9767b3761b8eeb7fb1de6c3b694f4047cf5ccbfa6eb1c4f3bf6943e7840004d7b18733b25f15cd5d8bb784b92e9b809142ba97f4dd6489e77ed113e160ace011e5c6342ae62391193f69b5b4b934012429762fe9baca13cefda127c2c159c023cb8c6855cc4722327ed36b697268024852ec5fd37594279dfb424f8582b380479718d0ab988e4464fda6d6d2e4d00490a5d8bfa6eb284f3bf6842b1d5e13d6f1b0e96e1d59147f28234859e8259d0922efb27f4dd6519e77ed07563abc27ade361d2dc3ab228fe504690b3d04b3a1245df64fe9baca33cefda0e3887d0fc3229465d853b8c49f2feb51c13e2f271248d62cafd37594779dfb41b710fa1f864528cbb0a771893e5fd6a3827c5e4e2491ac595fa6eb28ef3bf68366e319c9d9f079c2de1b4591fc258fc6afbce25c192372f2cf4dd651ee77ed06b687591e81471bb13902eda377b1020d0a3dea7802470025ae9baca3ecefda0d55cfd7c7cff45f8deed23dc66ec7e699bf3ffaafd48e1a8b6d375947e9dfb41a9460d51a6d4ee7475a70de0c5cf5afb329441b1f791c4f56ea6eb28fe3bf68351182cfbfa803f6ba31ae1e98395141e5fd4c5bfec238b8ede4dd651fd77ed06a13059f7f5007ed74635c3d3072a283cbfa98b7fd847171dbc9baca3faefda0d4260b3efea00fdae8c6b87a60e5450797f5316ffb08e2e3b79375947f5dfb41a844d7a3880d85ddfd0a3d574149eff1af952705b5e1c5e1af36eb28fecbf6835072706c9ae871e425914711021345c5ded512312b938bdd9e7dd651fda7ed06a0d4e0d935d0e3c84b228e2204268b8bbdaa2462572717bb3cfbaca3fb4fda0d41a282d7f66f2db8c1c1e8a687cc7cf9faff0cea6e1e2f90ba075947f6afb41a833505afecde5b718383d14d0f98f9f3f5fe19d4dc3c5f21740eb28fed5f68350662cc85648a1d0b32846efc9eb159ca6ba6f7cf7848be5d282d651fdaced06a0cb5990ac9143a166508ddf93d62b394d74def9ef0917cba505aca3fb59da0d41963f33b1cf5da54f58e8854fa44cd0c2e46a363a0f2f98ee0c5947f6b4b41a832b0a79bc4b91ad21699dd0c7408fffadc380aed01b5f338019b28fed6a6835065514f37897235a42d33ba18e811fff5b87015da036be670033651fdad4d06a0caa29e6f12e46b485a677431d023ffeb70e02bb406d7cce0066ca3fb5a9a0d4195453cde25c8d690b4cee863a047ffd6e1c057680daf99c00cd947f6b5341a832a833ae1d65f1349951a9d29c00f6590432b72f5db2f339a59c28fed6a78350654f675c3acbe26932a353a53801ecb208656e5ebb65e6734b3851fdad4f06a0ca9e5acace449b34e7fe741097fbcfc238c588ffd2c8cce83a71a3fb5a9f0d41953b41a7f5360ccc52b4b4e757ef95e29985be42018e99d218e447f6b53f1a832a750f624318effb28213694d7d722235b0628c65f1a33a5d5c98fed6a7f350654e91ec48631dff650426d29afae4446b60c518cbe34674bab931fdad4fe6a0ca9d23d890c63bfeca084da535f5c888d6c18a3197c68ce9757263fb5a9fcd41953a407247174563bc3c1816ce6b10779002bf27554ce9d30524d7f6b53faa832a7470e48e2e8ac77878302d9cd620ef20057e4eaa99d3a60a49afed6a7f550654e8e1c91c5d158ef0f0605b39ac41de400afc9d5533a74c14935fdad4feaa0ca9d1c39238ba2b1de1e0c0b6735883bc8015f93aaa674e982926bfb5a9fd541953a387247174563bc3c1816ce6b10779002bf27554ce9d30524d7f6b53faa832a747070a087379ddafae7fa62fe18e57e2d78faecf5d0a60bedb0ed6a7f560654e8df6d53671c12187887c18c2429c15a82eca21c479e4c197f62dad4fead0ca9d1bd66b926e4fa9373c74fde704b79132dd3f07aeb399834a2c6b5a9fd5b1953a3795984a676cb896a466c83088ee88483a28d383270306ae98e6b53fab732a746f13f1ba59a6d755744a5cc3915c7672f3fc6b2c0dd60d7771dd6a7f56f654e8de10a49a3e1b14d3141185e9a23852c867a39a7ddb7c1b0923cad4feadfca9d1bc1149347c3629a628230bd34470a590cf4734fbb6f836124795a9fd5bf953a378229268f86c534c504617a688e14b219e8e69f76df06c248f2b53fab7f2a746f04524d1f0d8a698a08c2f4d11c296433d1cd3eedbe0d8491e56a7f56fe54e8de0830ac96c7eb3596c952afca3049268f9e46c037791b0ac7cbd4feadfda9d1bc0f61592d8fd66b2d92a55f9460924d1f3c8d806ef236158f97a9fd5bfb53a3781e4ec4b3cc8338dddd178550b91af86673c74339e16c2cc33053fab7f7a746f03b299bc045dcd43e71fbd0c96a2c4ef4e23ac8cfbfd85b2a61a7f56ff04e8de0755337808bb9a87ce3f7a192d4589de9c475919f7fb0b654c34feadfe09d1bc0ea328159c449b37c7fbc094da0a799fb8397659afc616e4d879fd5bfc23a3781d36502b3889366f8ff78129b414f33f7072ecb35f8c2dc9b0f3fab7f84746f03a65617bfbdfd3074b6bceb5e7a94c6160909d8c7ee85bada1f7f56ff09e8de074b3841d828d0c36c25469ce4ed1fea540cbff3ebda0b77583ffeadfe14d1bc0e957083b051a186d84a8d39c9da3fd4a8197fe7d7b416eeb07ffd5bfc29a3781d2a6d19b9501970334ce739bbac7607782dac120b652ddf0500fab7f85446f03a536645cb4d0942e9519b399f50e26d1856046672c75bbfae02f56ff0a98de074a5589def46e8e8555b03396699bb3858a6b50f418bb7810006eadfe1541bc0e9493d4e373aa8332d6dd338f52b6cced9481660df146f03a40ed5bfc2a93781d29106aec72226c8dd937338124ecffbda8ad9041a25de08ec1eab7f85536f03a5210d5d8e444d91bb26e670249d9ff7b515b208344bbc11d83d56ff0aa6de074a421abb1c889b23764dcce0493b3fef6a2b641068977823b07aadfe154dbc0e9484357639113646ec9b99c092767fded456c820d12ef04760f55bfc2a9b781d29086aec72226c8dd937338124ecffbda8ad9041a25de08ec1eab7f85536f03a521061eb3cf1af7e352633c871d1f5d97955ccc5a0b8c11f27d66ff0aa6ee074a41f4fe8d290355eed0434570b9be2111aa645cd9d6e823ff3addfe154dec0e9483d2be3fdcd41205cc035743f2fba805d4737dd96da04818b5cbfc2a9be81d2907957c7fb9a8240b9806ae87e5f7500ba8e6fbb2db4090316b97f85537d03a520f23ba24fe1dae3f5b8a29724b6e05f9d178bb8b7651207d173ff0aa6fb074a41e30356f8708c2a6e2911f47165b71d6229c3b3cac7241146e8fe154df70e9483c506adf0e11854dc5223e8e2cb6e3ac4538767958e48228dd1fc2a9bee1d29078a0d5be1c230a9b8a447d1c596dc7588a70ecf2b1c90451ba3f85537dc3a520f141ab7c384615371488fa38b2db8eb114e1d9e5639208a3747f0aa6fb874a41e28356f8708c2a6e2911f47165b71d6229c3b3cac7241146e8fe154df70e9483c506adf0e11854dc5223e8e2cb6e3ac4538767958e48228dd1fc2a9bee1d29078a061d074cfe0fe0cfc49e28165bdb6b26b99350dc604535e4085537dc4a520f13f4fb3424c985e9cb0608b2ac371cb8cd1deac778908a860820aa6fb8a4a41e27d2b78dd46071fbc188ddc7d7ed9f5419e699b4b0f11526505154df7159483c4f956f1ba8c0e3f78311bb8fafdb3ea833cd336961e22a4ca0a2a9bee2b290789f239f5cdc4f2e1731a04381df35e332e7452af8839454b38155537dc57520f13e373eb9b89e5c2e63408703be6bc665ce8a55f10728a96702aaa6fb8aea41e27c673e98fc0a1e84f1fdda69fc56f2ae1cbf7007ce2152e845654df715e483c4f8b73e5782e1a3320f788136782d4b3eb929a4355c12a5eacada9bee2bd90789f1573dd49090ac8c4a6dcecf6fd9fc5ff1fe0c9077f54befd5c537dc57c20f13e2973cceabeebf40c0586a015f335ea263a6dd46afba97f9eb9a6fb8af941e27c5173ac2e2aae4a9ac2da0653de6232746f87eb31f45300e1744df715f383c4f8a1736ab50232f7b83d80d2cfb4bac310d9bc18bfe5a60366e99bee2be80789f14172e7c2b13c51f332ce6bc7616be449ae2473dbc84c0871d437dc57d10f13e28171e1de0f4f06691d699db6bace26bb56f52a138d981287a96fb8afa31e27c5016fd614cb746f54f2a001956d92ab9ea8969683183026b353df715f473c4f8a016bbe8243bf412c9d0cc952d31bb5654bd96f622d604f0aa8bee2be8f789f1401638f5d3454e4dbf1e658cd9e2dc8f2925f212057c09fb9527dc57d1ff13e280153311315802c3a9b9977c33451f00d1f6a849cac814116a5fb8afa40e27c500132747ed7d6baf7eeffb5ae609a3e4239814b95560283d14cf715f482c4f8a00164e8fdafad75efddff6b5cc1347c847302972aac0507a299ee2be90589f1400255e4540c314e6273cb9ce17a5f5730e0b170b1550a10e934dc57d20c13e2800337db00c538ff479f63ffeaecb50c89bc0f23bea71423766ab8afa41927c500056fb6018a71fe8f3ec7ffd5d96a1913781e477d4e2846ecd5715f48324f8a000a6b7e5bc1ba5fa1355cc5d3aaca904eeae8d15699508f7dabe2be90659f140013630f10304b21c5228651cf4d8b7ec5d07de5092fa1209f58c57d20cc3e2800255230790d6ca60cfcd969c6930d5bb39ba80c6e5c4242e2b28afa41997c50004930734ac7afae9cb17f99b51e11158f31fc5b38b58487696615f48333f8a0009160e6958f5f5d3962ff336a3c222b1e63f8b6716b090ed2cc2be90667f14001224ddf83cb951cf57dcb2cfc703ab464c29daf3ed3121f499957d20cd0e280024327d16044009c6db3632020d86bc6f17fe7a0d9a324403733afa419a2c50004854fa2c0880138db66c64041b0d78de2ffcf41b34648806e675f4833458a00090a2b57d9bcd8d439855946ab59a579edfa4ac5c289910280cfbe90668c1400121356afb379b1a8730ab28d56b34af3dbf4958b85132205019f7d20cd18280024263971bfa039b368cd31e0d55e8c45dfe3d7596623440ba73ffa419a315000484b72e37f407366d19a63c1aabd188bbfc7aeb2cc4688174e7ff4833462a000909671d9572dbd3025ec94497d722775a78a09a7f48a10304100e90668c64001212b6fc5070850c2ce90f55922dc4549770ebf92451120622602d20cd18d800242556b9c66bd77e81fd9b7786db080f116182b66e61f40c5f006a419a31c000484a9634b2627c632c26b3bb70358f840542b0310283b818d840e483346390009095152a8a4fc62c8078e44342ea9e6ded050b262ac74031cac1d90668c73001212a13163a2a59bf291d4552e854bc41bc89c1107b4e5063afc3c20cd18e70024254162c7454b37e523a8aa5d0a9788379138220f69ca0c75f878419a31ce00484a8251a0e343462cca0921803d2706cd4a6af0612f9118ed94f18334639d009095032f541f3362bc16ca0fc6a24603f8bcd08d04bb1f31dccde40668c73b01212a055ea83e66c5782d941f8d448c07f179a11a09763e63b99bc80cd18e760242540a4962d57a6152dde00be0b11006411b3ce0554879c774db9119a31ced0484a8131ed803a199083e77e4878a1802e05e746cececf08eeb5b23334639db090950253db0074332107cefc90f143005c0bce8d9d9d9e11dd6b646668c73b61212a04a077267333a837c975ee4505801dfa1cc5ff60fbf3baf108dcd18e76d242540930ee4ce667506f92ebdc8a0b003bf4398bfec1f7e775e211b9a31ceda484a81261dc99cccea0df25d7b914160077e87317fd83efceebc423734639db49095024c3b933999d41be4baf72282c00efd0e62ffb07df9dd78846e68c73b69212a04980338cbe07e9a4c2dbb0b2d78145844c0aba357f0baf2acddd18e76d34254092f067197c0fd34985b76165af028b089815746afe175e559bba31ceda684a8125e0ce32f81fa6930b6ec2cb5e051611302ae8d5fc2ebcab3774639db4d095024bc19c65f03f4d2616dd8596bc0a2c226055d1abf85d79566ee8c73b69a12a04978338cbe07e9a4c2dbb0b2d78145844c0aba357f0baf2acddd18e76d34254092f067197c0fd34985b76165af028b089815746afe175e559bba31ceda684a8125e05a4550cc7cf58e268f9185fd0c6f58259518582bbcacdb75639db4d195024bbf409cfa45d04d9f04ebe933f20f3cd845d6730c54795b5aebc73b69a42a04977d0d4c4d3876fdc0c1a4988fdc14d7d886592874a5f2b859d88e76d34954092ef91a989a70edfb818349311fb829afb10cb250e94be570b3b11ceda692a8125df2353134e1dbf7030692623f70535f621964a1d297cae1676239db4d255024bbe46a6269c3b7ee060d24c47ee0a6bec432c943a52f95c2cec473b69a4aa04977c860d72c34463e8ed2164f25b943dbb0603ec9a65c2b874189e76d34964092ef8f4dc0b11562dfa05bf964736a7e1588bb29d5a8b557102714ceda692d8125df1d2793bad79c21c36fbf8f0eccf2893970ffedad67ae21f22a9db4d25c024bbe394f2775af384386df7f1e1d99e51272e1ffdb5acf5c43e4553b69a4b804977c722a61440b46e99076cb02632bc0830dbeabf9119bb8896cab76d34971092ef8e354c288168dd320ed9604c65781061b7d57f223377112d956eda692e2125df1c6359768d9f208c492f8cfb4a6f86a5ef55c26a26be22756aedb4d25c524bbe38b6b2ed1b3e4118925f19f694df0d4bdeab84d44d7c44ead5db69a4b8a4977c716626ffc149e859503b004fa93d807a3d01cdce5ac889efebc6d34971592ef8e2b50f250d6136dacbf2cd01d1fa66d6f9ae5fc2756113fa179da692e2c25df1c552df6fa58fd3ddc362666623743390730783aaaa92280e6f4b4d25c594bbe38a95bedf4b1fa7bb86c4cccc46e86720e60f07555524501cde969a4b8b2977c715243ee4210cb59f390665fb0d5034244bc8d2d06a18a053fd3d34971662ef8e2a313eedcce6d1669d8998589a1fce2b173c69c6940140c23a8a692e2cd5df1c54527ddb99cda2cd3b1330b1343f9c562e78d38d280281847514d25c59abbe38a8a4fbb7339b459a76266162687f38ac5cf1a71a50050308ea29a4b8b3577c715142b893f203f15d17c98f27507dd73b398e125a5fda062c1463497166bef8e2a2757127e407e2ba2f931e4ea0fbae76731c24b4bfb40c5828c692e2cd7df1c544e3a37552dd2b9c8aa308ffc176c2cf65e30d8f3f3818ca919d25c59b0be38a89b008103087bd6140c2de62026ceb814b70df443e4031af634a4b8b3627c71513501020610f7ac28185bcc404d9d70296e1be887c80635ec69497166c4f8e2a26a02040c21ef585030b798809b3ae052dc37d10f900c6bd8d292e2cd89f1c544d404081843deb0a0616f31013675c0a5b86fa21f2018d7b1a525c59b13e38a89a808103087bd6140c2de62026ceb814b70df443e4031af634a4b8b3627c71513501020610f7ac28185bcc404d9d70296e1be887c80635ec69497166c4f8e2a26a02040c21ef585030b798809b3ae052dc37d10f900c6bd8d292e2cd89f1c544d404081843deb0a0616f31013675c0a5b86fa21f2018d7b1a525c59b13e38a89a800d156128ac768ee5b2e64ec6ae72df08a08640001af7d8a5b8b3627d715134ff1a2ac25158ed1dcb65cc9d8d5ce5be11410c800035efb14b7166c4fae2a269fe345584a2b1da3b96cb993b1ab9cb7c22821900006bdf6296e2cd89f5c544d3fc68ab094563b4772d973276357396f84504320000d7bec52dc59b13eb8a89a7f85d686b379dcb7112fb2b1462dd8c1884b4a65bfeaf7f2e5c8b3627d815134fef46e32f1c11f964ddc31c50bdb1765904158f13fa5f0000ba166c4fb12a269fdd19d8b6e4fa554c7352fec973594ada02d76083f1be01a5752cd89f63544d3fb933b16dc9f4aa98e6a5fd92e6b295b405aec107e37c034aea59b13ec6a89a7f726762db93e95531cd4bfb25cd652b680b5d820fc6f80695d4b3627d8d5134fee45ad80fd4a90ce65264bc7392c0b4f81167467b8af00ecfaa66c4fb1ba269fdc741c27856287c4f5c963f0f1d77c8181d7acf5312e01f4355cd89f63844d3fb8d0f974959275b2170f9444632e5ee5835a1e10222c0402aac9b13ec7189a7f7191f2e92b24eb642e1f2888c65cbdcb06b43c20445808055593627d8e3134fee323e5d25649d6c85c3e51118cb97b960d68784088b0100aab26c4fb1c6269fdc6408cca376113b8e3f96e8598f25d0e9a7bb4a6d130202f965d89f638d4d3fb8c7119946ec22771c7f2dd0b31e4ba1d34f7694da260405f2cbb13ec71a9a7f718e23328dd844ee38fe5ba1663c9743a69eed29b44c080be597627d8e3534fee31c46651bb089dc71fcb742cc792e874d3dda5368981017cb2ec4fb1c6a69fdc63818dc900dea1b66b13b4bc0ea536cc27660e92d2d20313a5e89f638d5d3fb8c6f31b9201bd436cd62769781d4a6d984ecc1d25a5a406274bd13ec71aba7f718de63724037a86d9ac4ed2f03a94db309d983a4b4b480c4e97a27d8e3574fee31bc52f6d91c273db841a7242f4a91c43badb38bc566018b76f54fb1c6af9fdc637732000ae524ddf33b1b0e868d19e69f561359e6c9031891eb9f638d603fb8c6ed640015ca49bbe676361d0d1a33cd3eac26b3cd92063123d73ec71ac07f718dda5412844169da4fa43900422c5df8a552f9a9f7210c63ebaf7d8e3581fee31bb33437612faa1722003ec6ac50b24f72a09f964a3f18c97b5ffb1c6b04fdc63765686ec25f542e44007d8d58a1649ee5413f2c947e3192f6bff638d609fb8c6eca5cefdd6b7ebf0ab8c7e0d93abf9bf27d2a9b84f963279180ec71ac14f718dd9345f21383d3e098295c87da6d75960cf5017965efc650c702d8e3582aee31bb2517f67fb47e23b30a85d5dcd2e18a41e4af3527dc8ca33206b1c6b056dc6376492fecff68fc4766150babb9a5c31483c95e6a4fb91946640d638d60adb8c6ec925fd9fed1f88ecc2a1757734b86290792bcd49f72328cc81ac71ac15b718dd9244bc65650c7801b0bfb750e8f02b0372025eb9ae1651b34368e3582b7e31bb247239f054e6562b8cfc3b04515fbbe963af81991bfca380c6e1c6b0570c637648d473e0a9ccac5719f87608a2bf77d2c75f033237f947018dc38d60ae18c6ec91a1a8e6de66bed65f6db873c4fe55880e68ca8a2fc28e1d5b971ac15c418dd9233351cdbccd7dacbedb70e789fcab101cd195145f851c3ab72e3582b8831bb24666a39b799afb597db6e1cf13f9562039a32a28bf0a38756e5c6b05710637648cc6085c7e035cdb26ea9000a7721222f2f118773de471051cc8d60ae21c6ec91974d1de86d41fde7951ec63ce638a28658cf5143b98e22479a1ac15c448dd9232d264e29875a5e51e20a52a1c467a334ac4ae4e3701c4633353582b88a1bb246594c9c530eb4bca3c414a54388cf46695895c9c6e0388c666a6b05711437648cb2254afeca3fdbca3ff610af0994eafaabd7d5e9bd711a70d5d60ae2296ec919634a95fd947fb7947fec215e1329d5f557afabd37ae234e1abac15c452dd9232c6213e53d5d5d1abb7a508e41e4a0a12aa0b9a02f2c46b6758582b88a6bb24658b427ca7ababa3576f4a11c83c94142554173405e588d6ceb0b057114d7648cb16110ba8042da9319660e9b8711e8672a2daaa67c811af416260ae229bec91962b221750085b52632cc1d370e23d0ce545b554cf90235e82c4c15c4537d9232c56442ea010b6a4c65983a6e1c47a19ca8b6aa99f2046bd058982b88a6fb24658ac146f98ce43ac0f6ad413eb80ea91bd1181959a3d8d7baf14057114e0648cb15728df319c87581ed5a827d701d5237a23032b347b1af75e280ae229c0c91962ae51be63390eb03dab504fae03aa46f446065668f635eebc5015c453819232c55c2f8f1f1ef3c2fe0e6d6583ff4aec1086b8ef2de96bdf1ca12b88a70424658ab75f1e3e3de785fc1cdacb07fe95d8210d71de5bd2d7be394257114e0848cb156e4a4ed528a56e7af1825c37f5220e6a158fff13a2af7e1685ae229c1191962adb20b002fe213f789ad17e97e23a7afc25cc4083425efdd10c5c453824232c55b5416005fc427ef135a2fd2fc474f5f84b98810684bdfba218b88a70484658ab6a0ed264a55b60652312c08780e04a1891dd4469067bf8e8327114e0918cb156d31da4c94ab6c0ca4625810f01c0943123ba88d20cf7f1d064e229c1231962ada63b4992956d81948c4b021e03812862477511a419efe3a0c9c453824632c55b4c02a57dd7b165abd062ca63fef8aeec899665a430dfc8e59488a7048d658ab697054afbaf62cb57a0c594c7fdf15dd9132ccb4861bf91cb29114e091acb156d2e0a95f75ec596af418b298ffbe2bbb226599690c37f239652229c1235962ada5c152beebd8b2d5e8316531ff7c577644cb32d2186fe472ca44538246b2c55b4b82a57dd7b165abd062ca63fef8aeec899665a430dfc8e59488a7048d658ab697054afbaf62cb57a0c594c7fdf15dd9132ccb4861bf91cb29114e091acb156d2e03571ce992fcd76d07f5f27b622194a6045ab6834f23b092329c1235a62ada5bf6ae39d325f9aeda0febe4f6c443294c08b56d069e4761246538246b4c55b4b7e61d9931195985df9ca42c6d07ec3517bc2effcd0c8edc88da7048d6a8ab696fb4fc57ed001933eab614bb598f3e4caf23222559e91dd351c4e091ad6156d2df52b9d564cd989000e8f5d9329de27bddf1087073a23bc0e399c1235ad2ada5be9573aac99b312001d1ebb2653bc4f7bbe210e0e7447781c7338246b5a55b4b7d23a87b1e03c8682f20a3c749f6efd1f76ee5e78e58ef1dce77048d6b5ab696fa30121bc6d4f6f889be13f1136d45866e888ff4dc81de55dcfe091ad6c56d2df45024378da9edf1137c27e226da8b0cdd111fe9b903bcabb9fc1235ad8ada5be8a0486f1b53dbe226f84fc44db51619ba223fd37207795773f8246b5b15b4b7d14090de36a7b7c44df09f889b6a2c3374447fa6e40ef2aee7f048d6b62b696fa28121bc6d4f6f889be13f1136d45866e888ff4dc81de55dcfe091ad6c56d2df45024378da9edf1137c27e226da8b0cdd111fe9b903bcabb9fc1235ad8ada5be8a0486f1b53dbe226f84fc44db51619ba223fd37207795773f8246b5b15b4b7d1401cf08f548e26d0a86c4ec36222919c3f2be9400bf2b08bf148d6b62c696fa27f39e11ea91c4da150d89d86c44523387e57d28017e56117e291ad6c58d2df44fe73c23d52389b42a1b13b0d888a4670fcafa5002fcac22fc5235ad8b1a5be89fc7396d351479907fb2f3c43090aeb09f40b8c5c5c9586038b46b5b1644b7d13f7733fff4f659492ae2b3eae0a0c343be2c35b14b62b0dab178d6b62c996fa27ed7292574ba18ba8142343840c0ec69fc032f88569561cfa301ad6c5942df44fd9713707441979d2e0134d301013eb677b123366cfac3b986135ad8b295be89fb16e80673509562877f36088181e34f6f0d0a9299c5878d4c36b5b1653b7d13f6169132716e90ed3a7b387382832c815dc4d94af35b0f34d87d6b62ca86fa27ec15e38a6daa8802a0733d498485bee53b3476bba6861e83f10ad6c5951df44fd814883a6622762d6c6346f5888ae3acf613b19d0cdc3d222225ad8b2a4be89fb011d19a5712528304435a4d90952d3c6bd2275fd9887a5e845b5b1654a7d13f6013a334ae24a5060886b49b212a5a78d7a44ebfb310f4bd08b6b62ca94fa27ec020078ee716b0343c8a3598c1d41ad42ef361a525f1e994517d6c5952af44fd80300f1dce2d606879146b3183a835a85de6c34a4be3d328a2fad8b2a55e89fb00601e3b9c5ac0d0f228d66307506b50bbcd869497c7a65145f5b1654abd13f600c03c7738b581a1e451acc60ea0d6a1779b0d292f8f4ca28beb62ca957a27ec018078ee716b0343c8a3598c1d41ad42ef361a525f1e994517d6c5952af44fd80300f1dce2d606879146b3183a835a85de6c34a4be3d328a2fad8b2a55e89fb00601e3b9c5ac0d0f228d66307506b50bbcd869497c7a65145f5b1654abd13f600c03c7738b581a1e451acc60ea0d6a1779b0d292f8f4ca28beb62ca957a27ec01800500ca17d9a64b5b26524539a3a11730c694bb1b9946bbd7c5952af54fd802ff0a01942fb34c96b64ca48a7347422e618d297637328d77af8b2a55ea9fb005fe1403285f66992d6c994914e68e845cc31a52ec6e651aef5f1654abd53f600bfc280650becd325ad9329229cd1d08b98634a5d8dcca35debe2ca957aa7ec017f8500ca17d9a64b5b26524539a3a11730c694bb1b9946bbd7c5952af54fd802ff02c2b9ba80b2bee1c970ecf2c6a810e137ed9bf7028d91ef9b2a55eaafb005fdf585737501657dc392e1d9e58d5021c26fdb37ee051b23df3654abd55f600bfbe3cc0c74d03123b2a290164a9a0626048a7a959bda3661fe7ca957aacec017f7b0593e746dc86f90c1ec8f14b3722e88bfb950f7846cde3d0952af55ad802fef50b27ce8db90df2183d91e2966e45d117f72a1ef08d9bc7a12a55eab5b005fdea164f9d1b721be4307b23c52cdc8ba22fee543de11b378f4254abd56b600bfbd42c9f3a36e437c860f6478a59b917445fdca87bc2366f1e84a957aad6c017f7a8593e746dc86f90c1ec8f14b3722e88bfb950f7846cde3d0952af55ad802fef503e8f41886741a43ba5e4515edabb397a1ee44b05d9be1e13a55eab5c005fde9f0930dbbda4e5cb2f188ecab5abd49aeeea0af208b37de0284abd56b900bfbd3d1261b77b49cb965e311d956b57a935ddd415e41166fbc050957aad72017f7a7a24c36ef693972cbc623b2ad6af526bbba82bc822cdf780a12af55ae402fef4f44986dded272e5978c47655ad5ea4d777505790459bef014255eab5c805fde9e81f20148724bf35a955b2d352b3a7d6e94cf17c8837dfa685abd56b910bfbd3cf3e40290e497e6b52ab65a6a5674fadd299e2f9106fbf4d0b57aad72217f7a79e0892aac9695f595d23917542c4fd839fe0084e1ddf803e17af55ae452fef4f3b11255592d2beb2ba4722ea8589fb073fc0109c3bbf007c2f5eab5c8a5fde9e76224aab25a57d65748e45d50b13f60e7f802138777e00f85ebd56b914bfbd3cec4495564b4afacae91c8baa1627ec1cff004270eefc01f0bd7aad72297f7a79d8153d05436c58188a05dd7c24463661f8acc73ddaf805857bf55ae453fef4f3af2a7a0a86d8b031140bbaf8488c6cc3f1598e7bb5f00b0af7eab5c8a7fde9e75e54f4150db16062281775f09118d987e2b31cf76be01615efd56b914ffbd3cebc35fa82c839234707fbb2091a281137c0127c4ad4c02dcfe0aad722a0f7a79d776bf5059072468e0ff764123450226f8024f895a9805b9fc155ae4541ef4f3aee63fc63cdbaef9ed7bb8e4c6096a306faf633875000b8e383ab5c8a84de9e75db540b20484c41c06743e2c0b923a435f098a96a9d01736b0856b9150abd3cebb53428993d6ee60386548ba96a3da693dbdd95313702e87a11ad722a167a79d7696851327addcc070ca91752d47b4d27b7bb2a626e05d0f4235ae4542cf4f3aed25cb4bda291fa90d11ef4cda0ecf8776a229720d90ba38c47b5c8a85ae9e75da3457bd3f1fa57a45a0aafc339d04f16cef1709daf1748bc906b9150b6d3cebb45170a0090cb11cb6be225ae6b96fc55988f23975b2e931d21d722a16ea79d76892e140121962396d7c44b5cd72df8ab311e472eb65d263a43ae4542dd4f3aed125c2802432c472daf8896b9ae5bf156623c8e5d6cba4c74875c8a85ba9e75da2444625d332ef0de16ddf39b54ae40d4bf255f16d6749a8d0fb9150b763cebb44714d7131334443ee588ad5ea152dfd178f70089a9e936be20722a16ed79d7688d29ae262668887dcb115abd42a5bfa2f1ee011353d26d7c40e4542ddaf3aed11a535c4c4cd110fb9622b57a854b7f45e3dc0226a7a4daf881c8a85bb5e75da23432caf146788479e412311d028d5cb3c26446a94c49b795049150b76ccebb44676595e28cf108f3c824623a051ab96784c88d5298936f2a0922a16ed99d7688ce573e1dc6b8746a48158a9c022bd0f7043d5d012e26dff8134542ddb43aed119b3a8e943a474b5747f7db5ffc4e00160326fc5e594dc194278a85bb6975da2335012f812164f93147bc7ce7f0925e5400fa3b18af9b84cc50150b76d3ebb44669025f0242c9f2628f78f9cfe124bca801f476315f370998a02a16eda7d7688cd204be048593e4c51ef1f39fc249795003e8ec62be6e133140542ddb4faed119a4097c090b27c98a3de3e73f8492f2a007d1d8c57cdc266280a85bb69f5da2334812f812164f93147bc7ce7f0925e5400fa3b18af9b84cc50150b76d3ebb44669025f0242c9f2628f78f9cfe124bca801f476315f370998a02a16eda7d7688cd204be048593e4c51ef1f39fc249795003e8ec62be6e133140542ddb4faed119a4023d2e95f52fb26960b3a204125882877c9ceb3cac267cc0b85bb69f6da23347f47a5d2bea5f64d2c167440824b1050ef939d679584cf98170b76d3edb44668fe1b5dfe2a224f1d0ff9aea8fc8c7ec9d9d37d2b2809a0d42f16eda7dc688cd1fb36bbfc54449e3a1ff35d51f918fd93b3a6fa56501341a85e2ddb4fb8d119a3f66d77f8a8893c743fe6baa3f231fb27674df4aca0268350bc5bb69f71a23347ec670249fde8db6b379a3b6fdc5a5476c9482bb53d4d084579b76d3ee444668fd75a16eca8a8195927013d07b0ab07158d3c99c6779a122ef46eda7dc988cd1fad404031fe26953505cf4037594c6c53152575e8ec342601e9ddb4fb94119a3f590c92bca9238cecc36b4696aa8f36ce24f72e2dd5684da7d4bb69f72923347eb1192579524719d986d68d2d551e6d9c49ee5c5baad09b4fa976d3ee524668fd62324af2a48e33b30dad1a5aaa3cdb3893dcb8b755a1369f52eda7dca48cd1fac46495e5491c67661b5a34b55479b67127b9716eab426d3ea5db4fb94919a3f588553e233f0f314eee812f92a0e9cb0a4a1f25395384dc214cb69f72933347eb0f368e9f2af4c52094cf254d39c9f43c8eea8ccea409b9e69a6d3ee527668fd61d6d1d3e55e98a41299e4a9a7393e8791dd5199d481373cd34da7dca4ecd1fac3a664cd558a977050b095b5cdf1e2f1a365675968d26e93e6ab4fb949e9a3f587358ac035e29508ccddf7ce1b632bc5c67592d89174dd420d669f7293e347eb0e53d6a5f6929039c538bbfeb645bd6e0c95e9d6e2b9ba9e5add3ee527d68fd61c906e7177f2869bb5ee445fec0ae0be98d697d385437556f5ca7dca4fbd1fac3910dce2efe50d376bdc88bfd815c17d31ad2fa70a86eaadeb94fb949f7a3f587221b9c5dfca1a6ed7b9117fb02b82fa635a5f4e150dd55bd729f7293ef47eb0e443738bbf9434ddaf7222ff605705f4c6b4be9c2a1baab7ae53ee527de8fd61c886e7177f2869bb5ee445fec0ae0be98d697d385437556f5ca7dca4fbd1fac391068f54891e399ee945586000db7db59a7dbe96683eaaf8f95fb949f7b3f58721f5dfce9d09d965fe077d228136614db4a64152904d560c32cf7293ef77eb0e43d480c2c4e118f4278bc6a781ec287de8f746cae06aac32a5aee527deffd61c8791c2ab148f98107a9459b18357b6de519951bb80a5587f8b6dca4fbe0fac390f138556291f3020f528b36306af6dbca332a377014ab0ff16db949f7c1f58721e270aac523e6041ea5166c60d5edb79466546ee029561fe2db7293ef83eb0e43c46d67e2f4a26ac001f99ee9a3d1cd50c755201c4fac4169b7e527df08d61c878766e21e961b3802bbc003fb3f99f8c9895682949c58847770ca4fbe12ac390f0d59d695d90cd2882f4cce1e772a4fbb0d59478535b10a92e2949f7c2658721e193fbf845ef0079316666264e64afd9e155ed166686216c9c6293ef84db0e43c310b91616ab671a8e4998af1c48c59642569e528cdc42f378d527df09c61c878611722c2d56ce351c93315e38918b2c84ad3ca519b885e6f1aa4fbe138c390f0c22e4585aad9c6a392662bc71231659095a794a33710bcde3549f7c2718721e1845c8b0b55b38d4724cc578e2462cb212b4f29466e2179bc6a93ef84e30e43c30845286f583d7d110165754440bbf46a514a94e8d942f51cd627df09c71c87860f1663375d515ca4ba97b0b0796e46fc9d416c2daf85ebddad4fbe138f390f0c1d2cc66ebaa2b949752f6160f2dc8df93a82d85b5f0bd7bb5a9f7c271e721e183a598cdd75457292ea5ec2c1e5b91bf27505b0b6be17af76b53ef84e3ce43c30743f2c13976147a88c8a4babc368960ce4b7a3c9792f60916b7df09c7ac87860e70a6a7fdb98f1d3d0e15d7f7ec78a41c41b89eeef5ec2c6d7fbe138f690f0c1cd14d4ffb731e3a7a1c2bafefd8f1483883713dddebd858daff7c271ed21e1839a29a9ff6e63c74f438575fdfb1e2907106e27bbbd7b0b1b5fef84e3da43c307345353fedcc78e9e870aebfbf63c520e20dc4f777af61636bfdf09c7b487860e6832ba5666657fbfc5e29e1fe46f02443c64e14af2ec2e1180be138f6a0f0c1ccf6574accccaff7f8bc53c3fc8de048878c9c295e5d85c23017c271ed41e18399e56fbb2466c6181cf573ea789b26738ec3fc787c8b0b9ea03f84e3da93c30733b3a09bd39af2586567b43770b5b2c99d32bd16b8e61757808f09c7b537860e6750025d32034ad8f64c34d160eacb75ba103e53319c2ec9412e138f6a7f0c1cce9004ba640695b1ec9869a2c1d596eb74207ca663385d92825c271ed4fe18399d200974c80d2b63d930d34583ab2dd6e840f94cc670bb2504b84e3da9fc30733a4012e9901a56c7b261a68b07565badd081f2998ce1764a09709c7b53f860e6748025d32034ad8f64c34d160eacb75ba103e53319c2ec9412e138f6a7f0c1cce9004ba640695b1ec9869a2c1d596eb74207ca663385d92825c271ed4fe18399d200974c80d2b63d930d34583ab2dd6e840f94cc670bb2504b84e3da9fc30733a4012e9901a56c7b261a68b07565badd081f2998ce1764a09709c7b53f860e6748025d32034ad8f64c34d160eacb75ba103e53319c2ec9412e138f6a7f0c1cce9004ba640695b1ec9869a2c1d596eb74207ca663385d92825c271ed4fe18399d200235ed97f8ca015c5011e62aad3ccac0a410ec308b251ef85e3da9fc40733a3ff46bdb2ff19402b8a023cc555a7995814821d861164a3df0bc7b53f880e6747fe198dbeab08e2d9cbd13fb2a34590d823b07d681fc94962188f6a7f111cce8ffb331b7d5611c5b397a27f65468b21b04760fad03f9292c4311ed4fe22399d1ff66636faac238b672f44feca8d1643608ec1f5a07f252588623da9fc44733a3fec58804e051d79511656c3bd1222e4e918302d9cfb4a4cb4c57b53f889e6747fd73d12f4b7115524e47a4da21c3c27fa2b0c9d95f3949b0d8bf6a7f114cce8ffad0638421af90ccc80c1616c306eae1c50c57d87e42937bf18ed4fe22a99d1ff590c708435f219990182c2d860dd5c38a18afb0fc8526f7e31da9fc45533a3feb218e1086be43332030585b0c1bab8714315f61f90a4defc63b53f88aa6747fd6431c210d7c86664060b0b61837570e2862bec3f2149bdf8c76a7f1154ce8ffac8638421af90ccc80c1616c306eae1c50c57d87e42937bf18ed4fe22a99d1ff590531a9c0bf7fc12cff8f3ae05cc21b2135bf3588226f9871ea9fc45543a3feb1f324790c4c65aa857bead84038ea18c2164290d014df4b23e53f88aa9747fd63d648f21898cb550af7d5b08071d431842c8521a029be9647ca7f11552e8ffac7a55309bbfefcd2416c77c380630e458803ce6900237d46cfa4fe22aa6d1ff58f33673902cb5fccae55bbe98045826d8fb260f7c016faa7df59fc4554ea3feb1e56ce720596bf995cab77d3008b04db1f64c1ef802df54fbeb3f88aa9d47fd63ca65e0995fae55ae4d3bc0880956f98be744804c02beab9bd77f11553b8ffac79357d38b6c330ddf524447380aa4513fc93542f4027d58dbaffe22aa781ff58f253bb96f853c7e415c5554980d3f00a78d16c84401fab35b60fc4554f13feb1e49038537b74f5f0570776f5812745f7714d9d2e400f5685ac2f88aa9e37fd63c91070a6f6e9ebe0ae0eedeb024e8beee29b3a5c801ead0b585f11553c6ffac79220e14dedd3d7c15c1ddbd6049d17ddc53674b9003d5a16b0be22aa78dff58f2441c29bdba7af82b83bb7ac093a2fbb8a6ce972007ab42d617c4554f1bfeb1e48838537b74f5f0570776f5812745f7714d9d2e400f5685ac2f88aa9e37fd63c91070a6f6e9ebe0ae0eedeb024e8beee29b3a5c801ead0b585f11553c6ffac792206d604680ae23ded5a89c2c950e3bed3120fb5c3a5a1854bf22aa78e0f58f243f66d2e5ae32aa40631dfe812212d6025cee391471b4324d7f4554f1c2eb1e487d59b824093bb7037e08c32a3c1c0a2cb488b484e068663eff8aa9e386d63c90f93f82a0bf4dd089b3de4c7c702e728163bdab65bdd0ce22001553c70eac7921f10b179a2b7203961f895f20d853432ac227992778a19de8012aa78e1e58f243e1162f3456e4072c3f12be41b0a68655844f324ef1433bd002554f1c3cb1e487c22c5e68adc80e587e257c83614d0cab089e649de28677a004aa9e387963c90f8458bcd15b901cb0fc4af906c29a1956113cc93bc50cef4009553c70f2c7921f083d8bfb63f69be4b062b8357d2a90d41d25d4d38719e02413aa78e1e68f243e0f072a4f74c39a4c18923692f24b7fd034f7ec030b33c1ec2854f1c3ce1e487c1d0e549ee987349831246d25e496ffa069efd806166783d850a9e3879c3c90f83a1ca93dd30e69306248da4bc92dff40d3dfb00c2ccf07b0a153c70f387921f07439527ba61cd260c491b497925bfe81a7bf6018599e0f6142a78e1e70f243e0e872a4f74c39a4c18923692f24b7fd034f7ec030b33c1ec2854f1c3ce1e487c1d0715c474549ac05ca1398864166582e99a9c2bd63783f290b9e3879c4c90f839f6ecae73769ba8e4bf3f7347ac30e852dffc7d6c3f07ff6183c70f38a921f073d69a8271ba9d79f4fb4b490ed7c7b3256abd20984e101903178e1e716243e0e795f62a6e42a11c157362f49d2ef548ca803e66f06c204c463f1c3ce2d487c1cf14ad7a6752a8605663924bb9dd507414ab40f3a0a840b2cc8e3879c5b90f839e121c1a5972b6e8d843f0f9f33a06caa901460d0120817fd92c70f38b821f073c143834b2e56dd1b087e1f3e6740d9552028c1a024102ffb258e1e717043e0e7821318ef09841cb8c8c904a4c67810d23afdc59c4520619a4c1c3ce2e187c1cf032631de13083971919209498cf021a475fb8b388a40c334983879c5c30f839e064c63bc261072e32324129319e04348ebf71671148186693070f38b861f073c0c24d9d0f8f74848fe14eb4e2bb6e4b9d29a6f3e26030e7661e1e7170d3e0e781749b3a1f1ee9091fc29d69c576dc973a534de7c4c061cecc3c3ce2e1a7c1cf02e1f799c90b383a6b0207360a6d1f10f4515ff54950c3b7d88879c5c35f839e05b3ef3392167074d6040e6c14da3e21e8a2bfea92a1876fb110f38b86bf073c0b609f8caefa4711d784e93aa933e22650f043fae5130ef9a231e7170d8e0e7816b13f195df48e23af09d2755267c44ca1e087f5ca261df34463ce2e1b1c1cf02d627e32bbe91c475e13a4eaa4cf889943c10feb944c3be688c79c5c363839e05ac4fc6577d2388ebc2749d5499f113287821fd7289877cd118f38b86c7073c0b582b9f07a71d745a3cb600d12bd88478eaf03d41100efb4632e7170d8f0e7816af573e0f4e3ae8b4796c01a257b108f1d5e07a82201df68c65ce2e1b1e1cf02d5e3a8e77494c33ebaaa4c96ca758700ba66d37603d3beebccc9c5c363d39e05abb012f473f6eca5a0d16590146a73e3f4786b11c7777df1d9a38b86c7b73c0b575025e8e7edd94b41a2cb2028d4e7c7e8f0d6238eeefbe3b347170d8f6e7816aea04bd1cfdbb2968345964051a9cf8fd1e1ac471dddf7c7668e2e1b1edcf02d5d4097a39fb7652d068b2c80a3539f1fa3c3588e3bbbef8ecd1c5c363db9e05aba812f473f6eca5a0d16590146a73e3f4786b11c7777df1d9a38b86c7b73c0b575025e8e7edd94b41a2cb2028d4e7c7e8f0d6238eeefbe3b347170d8f6e7816aea04bd1cfdbb2968345964051a9cf8fd1e1ac471dddf7c7668e2e1b1edcf02d5d4023b5f8643b8f8942f946cb4b957dcbbe04d097b8ef90711d5c363dbae05aba7f476bf0c8771f1285f28d96972afb977c09a12f71df20e23ab86c7b75c0b574fe1aea3a3dc4a0a7c3b1e155264c5556f2bf84bae0be43687670d8f6ec816ae9fb35d4747b89414f8763c2aa4c98aaade57f0975c17c86d0ece1b1edd902d5d3f66ba8e8f712829f0ec785549931555bcafe12eb82f90da1d9c363dbb205aba7ec63642a9afb67c0d55bd0d12a5908df90a8683302f21ce7b486c7b7650b574fd752daade2cd3204628467ca4ca86fe71bfd12c202e43b736a0d8f6ecb16ae9fad31c7b47270c68b7cd595bc91473df632a667e002c8788ad51b1edd972d5d3f59638f68e4e18d16f9ab2b79228e7bec654ccfc00590f115aa363dbb2e5aba7eb253312a76997cb0ab231d1a3d135600c545e1dc0821e3cf556c7b765db574fd633274ad9a095be40e13005c721d0a29853806140d43c942abd8f6ecbc6ae9fac564e95b3412b7c81c2600b8e43a14530a700c281a87928557b1edd978d5d3f58a55e50f14fbd212f018c799c06a86ce0f8c5aac320f26aeb063dbb2f2aba7eb1337dc76d6ce06a897fe555b78cb6bc419c4f7b4611e4f0161c7b765e6574fd6256fb8edad9c0d512ffcaab6f196d7883389ef68c23c9e02c38f6ecbccae9fac4a6b8434080e7d2517c61b95db240d3861c0212d81793da9881edd979a5d3f5893631ac0bcf35ccce758fd53ae3e7898be2c84b6fff27cf7113dbb2f35ba7eb1255247da26bd1c1c867ec0cf54734f5977054bc9fce4fb92237b765e6c74fd624930a20cfa509abbc4ca47c6a0dcfcdae8b6d9eff6c9f8c847f6ecbcd9e9fac491614419f4a1357789948f8d41b9f9b5d16db3dfed93f1908fedd979b3d3f589224e9a8c9618cd71caf5e5427b6a51939d87aa1bd827e4c520dbb2f368a7eb1243294771d907fd664db890aceecb014f35bb9693ad4fcb2e42b765e6d24fd62485528ee3b20ffacc9b712159dd96029e6b772d275a9f965c856ecbcda49fac490a31302010f6581beeaf08dbb3226364d19a9caab23f2e5d0bdd979b4a3f58921362604021ecb037dd5e11b76644c6c9a3353955647e5cba17bb2f36947eb1242650d2d8f0afc2f27288e996c47febbb4116b506c5fcbb1830765e6d29fd62484b2db80a8e35e8679cde995580f6359e7cd9ac6988f977d461ecbcda54fac490955b70151c6bd0cf39bd32ab01ec6b3cf9b358d311f2efa8c3d979b4a9f589212a42f282e5ae04212b472b7dfbcf34a1ee12f40220e5e0f588b2f36954eb12425311f75e78326ac50e5b1d23ef94c76bd6d22a603ecbc38f1265e6d2aad62484a523eebcf064d58a1cb63a47df298ed7ada454c07d97871e24cbcda555ac49094a47dd79e0c9ab14396c748fbe531daf5b48a980fb2f0e3c49979b4aab589212941bcd4c6e69b8ab2aa5af47749c9986b13d955df35e1e1c942f369557b1242527379a98dcd37156554b5e8ee939330d627b2abbe6bc3c39285e6d2aaf62484a4e6f3531b9a6e2acaa96bd1dd272661ac4f65577cd78787250bcda555ec490949c6a7cbc202427dc0cfa40639cdb2a5d8498ed4b97f0f288a279b4aabe89212937610bd0ed1eb23ad1c146ef31acb2e303de1cf32ce1e6b545f369557e1242526d4e29fa8713c6f85b4f54065b4fc3ee02687c4256c3cf0e8ce6d2aafd2484a4d928664dbafdf0736e6b6e34ae95e603ff7d3ae0aa879fc11acda555fb490949b150cc9b75fbe0e6dcd6dc695d2bcc07fefa75c1550f3f82359b4aabf6921293622dab8f98ce2450717a7efab24df637f8a12ddea71e80a86c369557ee242526c35b571f319c48a0e2f4fdf5649bec6ff1425bbd4e3d0150d86d2aafdc484a4d8642c097100ef3c47db6c212c12e3707dd30f9d6997a0445b1da555fb990949b0b119386ccf44a0bb33a4a4d7a52cc37b50e36092ff40a2f64b4aabf742129361523270d99e894176674949af4a5986f6a1c6c125fe8145ec969557ee842526c2a464e1b33d1282ecce92935e94b30ded438d824bfd028bd92d2aafdd084a4d85418ae8f1478b2e0519f1893ca8cbfe5a31df2a57ca0531f26a555fba20949b0a7315d1e28f165c0a33e312795197fcb463be54af940a63e4d4aabf7441293614e62ba3c51e2cb81467c624f2a32ff968c77ca95f2814c7c9a9557ee882526c29c5186d1509bf98544c58ac64c5c5d55139bd787e2029a9d362aafdd114a4d85372f1ffb4e0e558d4157dbb490af18d221e3f16bc10536de6d555fba23949b0a6d5e3ff69c1cab1a82afb769215e31a443c7e2d7820a6dbcdaaabf7447293614da489245e50fb8b7bd2c34fa3ab2c170823c080b0114dd1db6557ee88f526c29b31d36e476f5d3f23225301c6d5be108ff245271ff29bbdf6daafdd11fa4d853653a6dc8edeba7e4644a6038dab7c211fe48a4e3fe5377bedb55fba23f49b0a6ca00edea88adb24b80618699ad65e24bf73d8c23f9a6f121b7abf7447f93614d9301dbd5115b649700c30d335acbc497ee7b1847f34de2436f57ee88ff26c29b2603b7aa22b6c92e01861a66b597892fdcf6308fe69bc486deafdd11fe4d85364c076f54456d925c030c34cd6b2f125fb9ec611fcd37890dbd5fba23fc9b0a6c980edea88adb24b80618699ad65e24bf73d8c23f9a6f121b7abf7447f93614d9301dbd5115b649700c30d335acbc497ee7b1847f34de2436f57ee88ff26c29b2603b7aa22b6c92e01861a66b597892fdcf6308fe69bc486deafdd11fe4d85364c003079d03af8842e89012feaae7842399725458d078927fd6fba23fcab0a6c97f060f3a075f1085d12025fd55cf084732e4a8b1a0f124ffadf7447f95614d92fe0c1e740ebe210ba2404bfaab9e108e65c9516341e249ff5bee88ff2ac29b25fc183ce81d7c4217448097f5573c211ccb92a2c683c493feb7dd11fe5585364bf83079d03af8842e89012feaae7842399725458d078927fd6fba23fcab0a6c97f060f3a075f1085d12025fd55cf084732e4a8b1a0f124ffadf7447f95614d92fe04df99998b8733cdbd185d2b1d7670e574158901b24a199bfe88ff2ad29b25fbf28058bde4748fc6f6fd1cd5ba52c44a92ef37c334944d780d11fe55b5364bf7d500b17bc8e91f8dedfa39ab74a5889525de6f8669289af01a23fcab6a6c97efa2c288825f38674758c0d5d668b0f3a9f68104cca25150204447f956e4d92fdf35851104be70ce8eb181abacd161e753ed02099944a2a040888ff2adc9b25fbe63cb47944a47c548dfcfb9d92229b12784c838f259455ac1211fe55ba364bf7cb057b4b361f5b2bd3c6bd631c3b944ceb45497a4828acfc2523fcab756c97ef950af6966c3eb657a78d7ac638772899d68a92f4905159f84a47f956ead92fdf2a15ed2cd87d6caf4f1af58c70ee5133ad1525e920a2b3f0948ff2add5b25fbe542bda59b0fad95e9e35eb18e1dca2675a2a4bd2414567e1291fe55bab64bf7ca857b4b361f5b2bd3c6bd631c3b944ceb45497a4828acfc2523fcab756c97ef9503b7bbf70c1c7fd30a4728b7f68e7c5635571a50215a128a57f956eae92fdf29f0309d78e59f27d1915ab3ef6c82db2c15725a6012b43f54bff2add5e25fbe53d0613af1cb3e4fa322b567ded905b6582ae4b4c025687ea97fe55babc4bf7ca7a0c275e3967c9f46456acfbdb20b6cb055c969804ad0fd52ffcab757897ef94f4184ebc72cf93e8c8ad59f7b6416d960ab92d30095a1faa5ff956eaf12fdf29e8309d78e59f27d1915ab3ef6c82db2c15725a6012b43f54bff2add5e25fbe53d0613af1cb3e4fa322b567ded905b6582ae4b4c025687ea97fe55babc4bf7ca7a04e883c435301c8fd3795e5aa01cad85075abdc47d0fef700cab7578a7ef94f3f2922d1337c6614b23bf1f34bf9f3d89b979a148ca1ff9202956eaf15fdf29e7d5245a266f8cc296477e3e697f3e7b1372f34291943ff24052add5e2bfbe53cfa309d9d7ac7fad580bc8df527de2d8a690aaaae2f87ffec0b55babc58f7ca79f3613b3af58ff5ab01791bea4fbc5b14d215555c5f0fffd816ab7578b1ef94f3e64e88ce97f64dd8babefdfc976f14519ed6ed14bb2001542e56eaf164df29e7cb2923f5dcc2fe342d4ac22126d486cb385a1c857340044c5dadd5e2cabe53cf955247ebb985fc685a9584424da90d9670b4390ae6800898bb5babc5957ca79f2a30a2301fe25b536cf7ceac93487954dc14b471ca0012d577b7578b2bf94f3e536144603fc4b6a6d9ef9d592690f2a9b82968e3940025aaef6eaf1657f29e7ca64e9b192c5fcfd06bac00da4518437b6aff142325004cf9dfdd5e2cb0e53cf94b29488b059602238f24c7dc8226e51ed0aa6aa247009b97c0babc5962ca79f2955291160b2c04471e498fb9044dca3da154d5448e01372f817578b2c594f3e52a313484c32e6b10f45fe59a0091f2a33d55ece51902700303eaf1658c29e7ca53626909865cd621e8bfcb340123e5467aabd9ca3204e00607d5e2cb1853cf94a650e46bb9900ec6894c5c8ffa3e28b4f003f5f06109c1b010abc59631a79f294b2ddb301ff6800fca657f47ec72af91dab42e3cbf13850422578b2c644f3e52955bb6603fed001f94cafe8fd8e55f23b5685c797e270a0844af1658c89e7ca52a437f192cb062c1e162c347a9c11c6f657cfb4ef94e15b48a5e2cb1923cf94a5313108b063728067a924cb74b789706c5a638f9ef9c2d0d15bc59632579f294a52621160c6e500cf524996e96f12e0d8b4c71f3df385a1a2b78b2c64af3e5294a4c422c18dca019ea4932dd2de25c1b1698e3e7be70b43456f1658c95e7ca52942496b0de8fa2b68c5f2be253bb165e27de0a2b79e16a0caee2cb192ccf94a527492d61bd1f456d18be57c4a7762cbc4fbc1456f3c2d4195dc59632599f294a4e1e6d1c2714ed5ce94975b146e2b7a09a246b09e485a9d6bc8b2c64b43e52949b3cda384e29dab9d292eb628dc56f413448d613c90b53ad791658c9687ca5293605c6c9492a17f65cf29ced13813caa633dee838f16a8fef32cb192d1f94a526b0b8d9292542fecb9e539da27027954c67bdd071e2d51fde6596325a3f294a4d6171b2524a85fd973ca73b44e04f2a98cf7ba0e3c5aa3fbccb2c64b47e52949ac2e364a4950bfb2e794e7689c09e55319ef741c78b547f799658c968fca5293585c6c9492a17f65cf29ced13813caa633dee838f16a8fef32cb192d1f94a526b044eb81d219614e562063ca681df374626a12cddfd521826696325a40294a4d5f15e95c5109251f640d8dbcc8324510bf8067f7bcaa44a8ce2c64b48152949abd2bd2b8a2124a3ec81b1b7990648a217f00cfef795489519c58c96902a529357a57a5714424947d903636f320c91442fe019fdef2a912a338b192d2054a526af43b5d3b351f8b7dd839340e398886adf6af8219e25226ea726325a40b94a4d5e702cccf1715797e683f2e446b076b83e80b468fc1a44f78e5c64b48182949abcd05999e2e2af2fcd07e5c88d60ed707d0168d1f83489ef1cb8c9690305293579a0b333c5c55e5f9a0fcb911ac1dae0fa02d1a3f06913de397192d2060a526af34166678b8abcbf341f97223583b5c1f405a347e0d227bc72e325a40c14a4d5e682cccf1715797e683f2e446b076b83e80b468fc1a44f78e5c64b48182949abcd05999e2e2af2fcd07e5c88d60ed707d0168d1f83489ef1cb8c9690305293579a03f461e7234c21cc7985742b9d13f21fd7de64c6613dfdd7292d2060b526af33f0a9e95913fe6bc46fd74ad6b98dc6bf5a80ef4c927c15ee625a40c17a4d5e67d153d2b227fcd788dfae95ad731b8d7eb501de9924f82bdcc4b48182f49abccfa2a7a5644ff9af11bf5d2b5ae6371afd6a03bd3249f057b989690305e935799f454f4ac89ff35e237eba56b5cc6e35fad4077a6493e0af7312d2060bd26af33e835fbb1c0d4ce4727a410feb18424e7552d31a88f7c1792635a40c17b4d5e67cf6bf76381a99c8e4f4821fd630849ceaa5a63511ef82f24c6b48182f69abccf9e64011fb0299b9f565d0a22be06f1c54f6108fe3af05fed8e690305ee35799f3b5414980d2999c16486da6d740441b2996e545872e0c17f1dd2060bdd6af33e75343b88c729960580da7b02dffee18d2d88eb0ce2c184a23ca40c17bbd5e67ce96877118e532c0b01b4f605bffdc31a5b11d619c58309447948182f77abccf9d25d007bc97cba98bb36b23377f1e45cb0cfee8f8806142cf390305ef05799f3a34613503fcfd7b42e3a2a8ee7da26e15c4c1f7b0d0c29fde82060bde1af33e7451838f92c7611eb14411b45c7aaabeab34481521718559fd140c17bc45e67ce893071f258ec23d62882368b8f5557d5668902a42e30ab3fa28182f788bccf9d1260e3e4b1d847ac51046d171eaaafaacd1205485c61567f450305ef11799f3a244dda221086f1db59d5a056354bbd7d94d04cecb5c2aea28b060bde23f33e744727c69ccde446396b7806d4628dd923244cdc3568855ee9170c17bc48e67ce88d4f8d399bc88c72d6f00da8c51bb2464899b86ad10abdd22e182f7891ccf9d11a2b2ccbe4677b6865ace179822dc2b48bdfb3319f157d485d305ef12499f3a233565997c8cef6d0cb59c2f3045b856917bf66633e2afa90ba60bde24933e7446638c5883e7450244e804c0e00ad68fa2a2b0f227955f6c575c17bc49367ce88cb718b107ce8a0489d00981c015ad1f454561e44f2abed8aeb82f78926cf9d11966f2879a6a7a313f1cdf65ffaac0210a3587ee5e257dcb9d805ef124e9f3a232b6a634bfa25a8aa9b68b2e7ed4e6249415d4027c1afbb17b10bde249e3e74465560d8f0a121b3d7ee9e2bf7d29322ba7d66c2ab805f77d36317bc493d7ce88ca94dc439ef19ca3295091e179d1ca39cf579c7b2fdbef14ac72f78927bf9d11951279acc8b09f6e7e1df0257322fa561e59fd1c1f87de4398f5ef124f8f3a232a14f35991613edcfc3be04ae645f4ac3cb3fa383f0fbc8731ebde249f1e74465422a7d8ad8fe3e223f48cf84c0b4f3af912b8963def7928a3e7bc493e4ce88ca8354fb15b1fc7c447e919f098169e75f225712c7bdef25147cf78927c99d11950636088410cf5b0bb4f0043afaca2ce63f5a67eb78de4bccfaef124f943a232a0b6c1108219eb61769e00875f59459cc7eb4cfd6f1bc9799f5de249f2874465416643468f013ceb18b8cd713e31f11c0f815e209e07930d7ecbc493e51e88ca82b547b2a8cfdffe5cee6744fbe3481a9ead8066fbdf26353da78927ca4d11950553508adc6d2624e5599aec7745f617bd05c4f3b78e4c84bb5f124f94aa232a0a96a115b8da4c49cab335d8ee8bec2f7a0b89e76f1c990976be249f2954465415260350fc81febbc0e338145c973e4173c1d7f49e09322d2d8c493e52b88ca82a34c7c783d1639fad433c8b38ade265672e740efbe264749b28927ca5811950545250b492702d6786034578f0db2aad4e07ac43b794c903766124f94b1232a0a894a16924e05acf0c068af1e1b6555a9c0f58876f299206ecc249f296246541512203f7d48e1bc64389e24642ec1097b7c975349e232428199493e52c58ca82a23407efa91c378c8713c48c85d8212f6f92ea693c464850332927ca58b195054460d104dd05d54139a4557b8b2fa8415ed098f8385c90baa6624f94b1732a0a88b1a209ba0baa827348aaf7165f5082bda131f070b921754cc49f2962e654151163441374175504e69155ee2cbea1057b4263e0e17242ea99893e52c5cca82a22c68826e82eaa09cd22abdc597d420af684c7c1c2e485d533127ca58b9950544585d1735b2aba3bc5c2241b3279e9f86cb453a945990bc4a634f94b1742a0a88af4640c4122da9fb7011498e47339d359136b784b0217a38c79f2962e95415115d1893e0d131b67997ef5944865d98931d19b1655d42f615903e52c5d3a82a22b93127c1a2636cf32fdeb2890cbb31263a3362caba85ec2b207ca58ba750544572624f8344c6d9e65fbd65121976624c7466c595750bd85640f94b174ea0a88ae450b15f3664164f7747904c2ae322c0e379cd86e717b25082f2962e9e415115c72d7517199e8f21a65be6c04dbca3a9c19fdd69cb2f664506e52c5d3d82a22b8d5aea2e333d1e434cb7cd809b794753833fbad3965ecc8a0dca58ba7b0544571a41e6b513509f09513c61292ee8eccf012bb80329bd9ab81c94b174f70a88ae330fdfc2d377a0955a45887a55c837c5fd03b262507b37143a2962e9ef15115c651fbf85a6ef412ab48b10f4ab906f8bfa0764c4a0f66e287452c5d3de2a22b8ca3f7f0b4dde8255691621e95720df17f40ec98941ecdc50e8a58ba7bc544571940b106f4893672d89f909faa6381c57e2c9d56e80d9ba45d24b174f79a88ae3271620de9126ce5b13f213f54c7038afc593aadd01b3748ba4962e9ef35115c64e2c41bd224d9cb627e427ea98e0715f8b2755ba0366e917492c5d3de6a22b8c9c58837a449b396c4fc84fd531c0e2bf164eab7406cdd22e9258ba7bcd445719383d194d360cd55b575d65d25b7823a6274999440a9ba60125b174f79b88ae326f0644f318f00d39668791ccaee6a574493f74e412374da64c62e9ef38115c64dd0c89e631e01a72cd0f23995dcd4ae8927ee9c8246e9b4c98c5d3de7022b8c9ba1913cc63c034e59a1e4732bb9a95d124fdd39048dd3699318ba7bce045719374322798c78069cb343c8e6577352ba249fba72091ba6d3263174f79c08ae326e8644f318f00d39668791ccaee6a574493f74e412374da64c62e9ef38115c64dd054b0bbcad809af88beffbdd4cb0cb1229adede43e9b66d8d5d3de7032b8c9b9f3573d0428675e1c94ac5a3a18c778a3fe2001884d36e7f1bba7bce075719373d6ae7a0850cebc392958b474318ef147fc4003109a6dcfe3774f79c0eae326e7a61e199b6f03a09dcf7dcb67e283c50fa3442be104dbba06fe9ef381e5c64dcf34fd58c1ab6d69671bc7f94f446d6c9ef14c7d81d9b78e4e0d3de703db8c9b9e52bbd70e2440faf9b45c551e0840bbbd8d5d20c3836f36dc2a7bce07c719373c9577ae1c4881f5f368b8aa3c1081777b1aba418706de6db854f79c0f8e326e7923b081c35e6a14124e3db6f7a068d175e038a8cdddbcf5b0b9ef381f2c64dcf2302229118a3a50501947d06ec037856b6b35775b8b7a05a183de703e68c9b9e4504452231474a0a0328fa0dd806f0ad6d66aeeb716f40b4307bce07cd19373c8a088a44628e94140651f41bb00de15adacd5dd6e2de816860f79c0f9a326e7914111488c51d28280ca3e837601bc2b5b59abbadc5bd02d0c1ef381f3464dcf2282229118a3a50501947d06ec037856b6b35775b8b7a05a183de703e68c9b9e4504452231474a0a0328fa0dd806f0ad6d66aeeb716f40b4307bce07cd19373c8a014b69ed5bfa3c31cec07e2f8d473d5a7821fca2ae8182a1079c0f9a426e7913f296d3dab7f478639d80fc5f1a8e7ab4f043f9455d0305420f381f3484dcf227e52da7b56fe8f0c73b01f8be351cf569e087f28aba060a841e703e6909b9e44fc31c74f5ad3809b9f2d053fbe99fcd536bd40ad5440c2f484ce07cd22373c89f7638e9eb5a701373e5a0a7f7d33f9aa6d7a815aa88185e9099c0f9a446e7913ee532f96182464f13480db26f25e517cd5a145114e030d7614381f3489dcf227db327184dd1f2c6520ce7c75dcb30121a5eecc7e99061c9029703e6914b9e44fb564e309ba3e58ca419cf8ebb96602434bdd98fd320c392052e07cd22973c89f6a55d86c215314173b06b7ff6ac262ae92677456611873e4a6c0f9a453e7913ed337c330ef7c8ab12dda3626cd7b23851f7b2b08bf30e96d4e81f348a8cf227da56f8661def915625bb46c4d9af6470a3ef656117e61d2da9d03e691519e44fb4a6b1f1c6ac88d476f359ec32de2ec3c7898ee7ef9c3a7593b07cd22a43c89f69362509182677d11963803ae53bc36a0ebde1f59f0875056770f9a45497913ed2550b37bb1a55ca5e43ccd849f6ecb69d268810fde0ea250ef1f348a93f227da492d795010211bce8046613136d3f4fb9f7d447bb91d4645df3e691528e44fb4915af2a02042379d008cc2626da7e9f73efa88f7723a8c8bbe7cd22a51c89f692241f798ed5ad1bcb8e64aecd346321678a1544ae1751abb7df9a454a4913ed24310018a878c05fc29995c019e82c254ebeeeaf1bfea371afcf348a94a227da4852003150f180bf85332b8033d0584a9d7ddd5e37fd46e35f9e691529444fb490a40062a1e3017f0a66570067a0b0953afbbabc6ffa8dc6bf3cd22a52889f692140c1eace93692640497a634ec0c70cf5a2399e9fc51ba7be89a454a5213ed2427183d59d26d24c8092f4c69d818e19eb44733d3f8a374f7d1348a94a427da484e307ab3a4da4990125e98d3b031c33d688e67a7f146e9efa2691529484fb4909c60f56749b4932024bd31a76063867ad11ccf4fe28dd3df44d22a52909f6921384dfd27403f88c301472976b8bd6b1d9ce5e0fbc21ba9628aa454a5223ed2426f280ca72d557408ba5b19156971346334780453813754691648a94a457da484dd50194e5aaae81174b6322ad2e268c668f008a7026ea8d22c9152948afb4909ba2c44f5622c32a5a1392a7d9dbb2fb4cc8c53aa01dd53485a22a52916f69213735889eac458654b427254fb3b765f699918a75403baa690b4454a522ded2426e63d262e35872d193cb1701e6ee31cfb2cdd910404754ec5698a94a45cda484dcb065eb517e4bcb5312fa664d5bc981e5467646405ea9f2ed4152948bab4909b950cbd6a2fc9796a625f4cc9ab79303ca8cec8c80bd53e5da82a5291756921372a197ad45f92f2d4c4be999356f26079519d919017aa7cbb5054a522ead2426e5432f5a8bf25e5a9897d3326ade4c0f2a33b23202f54f976a0a94a45d5a484dca865eb517e4bcb5312fa664d5bc981e5467646405ea9f2ed4152948bab4909b95057e8fba96df928ddc192c2af8961f28798cedcba53e77e83a52917579213729f3be44fffb254d4734febad5709220d09dde01571a7d0a1084a522eb02426e53d03daf8ac3b0c2b9e6c9d82a608a2420e680286e04fa2e61194a45d61484dca7907b5f1587618573cd93b054c1144841cd0050dc09f45cc232948bac2909b94f20f6be2b0ec30ae79b2760a9822890839a00a1b813e8b984652917585213729e41ed7c561d8615cf364ec153045121073401437027d17308ca522eb0a426e53c83daf8ac3b0c2b9e6c9d82a608a2420e680286e04fa2e61194a45d61484dca79007716e3437e7f68560767cb90aa669c7ac933806f45e6633948bac2a09b94f1f0ee2dc686fcfed0ac0ecf972154cd38f5926700de8bccc672917585413729e3e1dc5b8d0df9fda1581d9f2e42a99a71eb24ce01bd17998ce522eb0a826e53c7c3b8b71a1bf3fb42b03b3e5c855334e3d6499c037a2f3319ca45d61504dca78f803293bf054e1eb0dd42df388a0c4c4757575dc6c45e8073a48bac2a19b94f1ef065277e0a9c3d61ba85be711418988eaeaebb8d88bd00e74917585433729e3de0ca4efc15387ac3750b7ce22831311d5d5d771b117a01ce922eb0a866e53c7bc1949df82a70f586ea16f9c45062623ababaee3622f4039d245d6150cdca78f783293bf054e1eb0dd42df388a0c4c4757575dc6c45e8073a48bac2a19b94f1ef065277e0a9c3d61ba85be711418988eaeaebb8d88bd00e74917585433729e3de0566154c20edd462cd8430a20278f455809b9770e7a0372932eb0a867e53c7bbf38d50230f41d0f117d4c3c38457cb2aabfb54a19f40889275d6150d0ca78f77d71aa0461e83a1e22fa9878708af965557f6a9433e811124ebac2a1a194f1eefa6f666170a6d6befdc1f718d90c50f2a5ab178464d023c89e7585434429e3ddf36adf1b8e241000b350b459aa0f000d46027164c6a049353deb0a868953c7bbe561d08fc91e82841e6e2edb4c145e4286b125258a40940e7cd6150d13a78f77c94fb3783f13678af4a923de901f1aad080e8ca7118129c0faac2a1a284f1eef912b79492afd3198a11f0de5183493820ac95baa20025525f6585434519e3ddf2156f29255fa6331423e1bca306927041592b7544004aa4becb0a868a33c7bbe4239f77d58cb28e53c48fdbc58c8ac3025d1b1047d09563bda6150d14778f77c830001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe414000a9af365a26982f60d054c3db442327d2327b89570ddae150d147f8f77c828001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe414000a9af365a26982f60d054c3db442327d2327b89570ddae150d147f8f77c828001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe414000a9af365a26982f60d054c3db442327d2327b89570ddae150d147f8f77c828001535e6cb44d305ec1a0a987b688464fa464f712ae1bb5c2a1a28ff1eef9050002a6bcd9689a60bd8341530f6d108c9f48c9ee255c376b8543451fe3ddf20a00054d79b2d134c17b0682a61eda21193e9193dc4ab86ed70a868a3fc7bbe41400035c18f06fcfab2189d1aebd33a814fccdebde5540ddc8551d147f8f87c827fff6b831e0df9f564313a35d7a675029f99bd7bcaa81bb90aa3a28ff1f0f904fffe631894c8ca4d4b1a4131d744e063672e2739f14d3773b948451fe3e2f209fffb5243823e6afd18ec4f29d681b724f656fab63e976ee916918a3fc7c6e413fff530995d29ac5cb4906b19d4fb64a814a8a1aed92bddd3d124147f8f8ec827ffe96132ba5358b96920d633a9f6c9502951435db257bba7a24828ff1f1d904fffd24e77cd5387d554f9792d7be588fe7a9d32fdc0ac7750e89151fe3e3c209fffa32901f353e60d2caabf211fc3085b1d35123ddd55eea37523a3fc7c79413fff455203e6a7cc1a59557e423f8610b63a6a247bbaabdd46ea4747f8f8f2827ffe8a301a25fc6e973562c94aa70417ca9ccef539d154ba8f788f8ff1f1e604fffd1360344bf8dd2e6ac592954e082f95399dea73a2a9751ef11f1fe3e3cc09fffa264c7af09e90bf5842f1f0c40855889b368129a14fea3f863f3fc7c79913fff44b250839e9f7e1333db0a7b008a16f5e67ae959e9cd480b07f7f8f8f3327ffe8954a1073d3efc2667b614f601142debccf5d2b3d39a90160feff1f1e664fffd12a20334054b5e74fae8f64e81a7c1ba1996698d670520465fefe3e3ccd9fffa253406680a96bce9f5d1ec9d034f8374332cd31ace0a408cbfdfc7c799b3fff44a60cdf59ffadffc1720a59c861e6ccae6046a5b5be48133bfcf8f8f3377ffe894b19beb3ff5bff82e414b390c3cd995cc08d4b6b7c902677f9f1f1e66efffd1296337d67feb7ff05c8296721879b32b9811a96d6f9204ceff3e3e3ccddfffa252c66facffd6ffe0b9052ce430f36657302352dadf24099dfe7c7c799bbfff44a585a07f8a7b65e99d87262ae1663290dff169db7e1813563d08f8f3378ffe894af402249fc431fb668b18b8424bcb043f8d97dcbc0026c6ba21f1e66f2ffd1295d0c56eca55ca1ef892fdd30416fbeafec5f3df37d04da7b453e3ccde6ffa252b918add94ab943df125fba6082df7d5fd8be7be6fa09b4f68a7c799bcdff44a572315bb2957287be24bf74c105befabfb17cf7cdf41369ed14f8f3379bfe894ae462b7652ae50f7c497ee9820b7df57f62f9ef9be826d3da29f1e66f37fd1295c851812302a0817b4aca992c0ef24926c0a02193cd4da95854e3ccde70fa252b8f2f149eb21765794d61f88015daf0757bec8583979b5454aac799bce2f44a571d5e293d642ecaf29ac3f1002bb5e0eaf7d90b072f36a8a9558f3379c5e894ae3a4864d37533f867ed54a8284f621ffdea5e586a5b6d52f6ac1e66f38cd1295c731cdbff973e53529276167896ba9e23cf68f330b3daa791593ccde71aa252b8e539b7ff2e7ca6a524ec2cf12d753c479ed1e66167b54f22b2799bce3544a571ca736ffe5cf94d4a49d859e25aea788f3da3ccc2cf6a9e4564f3379c6a894ae39472f25566c8fd174b7d79ecadcb4f4675f3dbe19bd53e2ecae66f38d61295c72771f7037a685cb14ec7ba01538cfcb4e693fa1f34aa7e0196ccde71ad252b8e4d70005fa1a71be5555c3a2a9f105791c7d4369a6654fda72e99bce35b4a571c996c1317f0249a4d62853a7d36170d4b8a54af90c9a9fcf25e3379c6b794ae39316438888d1f971d7cd73b22642478bf0f55a17d9053fb88bd66f38d70295c7261548369c71590bdb17b3c6cc03f4fa6195785571da7f8b57bcde71ae152b8e4c135192c3b0183fe1ac33f017874fd742d5b4d0a384ff30ef89bce35c3a571c9816a3258760307fc35867e02f0e9fae85ab69a14709fe61df1379c6b874ae3930260770998dc727b22d9c22dd9ca53f8b0197684de3fcddfe36f38d70f95c726034d006bde8f4778fd804a83ab8b06195adf2f65b97f9d63c7de71ae202b8e4c0526133069f4f174b2cd5b2f4f0c6a5ab06aa1276fff3c6b90bce35c41571c98094c2660d3e9e2e9659ab65e9e18d4b560d5424edffe78d72179c6b882ae393012245f1a54aa2855830232e534280792bc56c6f9bcfcf35243f38d71065c72602348be34a95450ab060465ca68500f2578ad8df379f9e6a487e71ae20cb8e4c0461d8ec1ff7f03d8c3d591bcc8967c72ec075e42f0f3ceed10ce35c41a71c9808b3b1d83fefe07b187ab2379912cf8e5d80ebc85e1e79dda219c6b8834e3930116024d60aad271e5c7230d1b1a504ff3aac9bb67c0cf3d584438d7106ac726022b049ac155a4e3cb8e461a3634a09fe7559376cf819e7ab08871ae20d58e4c0456093582ab49c7971c8c346c69413fceab26ed9f033cf56110e35c41ab1c9808ac126b0556938f2e391868d8d2827f9d564ddb3e0679eac221c6b883563930115824d60aad271e5c7230d1b1a504ff3aac9bb67c0cf3d584438d7106ac726022b049ac155a4e3cb8e461a3634a09fe7559376cf819e7ab08871ae20d58e4c045601f6a836172dbf480900cee8c0a5b12ad1b1c4c30cf57b50f35c41ab2c9808abf3ed506c2e5b7e9012019dd1814b6255a363898619eaf6a1e6b8835659301157e09bc6632a1d254ba0cf9e2281fca72af18b38cc03d60783dd7106acc26022afb1378cc6543a4a97419f3c4503f94e55e316719807ac0f07bae20d5984c0455f626f198ca874952e833e788a07f29cabc62ce3300f581e0f75c41ab309808abec4de331950e92a5d067cf1140fe539578c59c6601eb03c1eeb8835661301157d827d8bbd6f387ce589c644a79f30552ec377b2800d60927de7106acc36022afaf4fb177ade70f9cb138c894f3e60aa5d86ef65001ac124fbce20d5986c0455f5e2b754808a481bc1a3e5751dfc27373ab8a2efc005826437ac41ab30e808abebb56ea9011490378347caea3bf84e6e757145df800b04c86f58835661d01157d7639e778cf68697320c6236f77002bf6a8d4fe4bfe609ab1ec106acc3b022afaeb73cef19ed0d2e6418c46deee0057ed51a9fc97fcc13563d820d598760455f5d673b03bea78084f3ae553e5d3f70e029e003b8bf6826c6bb141ab30ed08abebab7372d081c673212d976df39fe47a2d36acb973ea04da7b63835661db1157d75572f7f9b06348c512fba20f37bf52826805b543d109b69ac806acc3b722afaea972024c0d9cf40cddc40a466775032ccab7ace39f136ed9910d59876f455f5d517016f0c8104a9c7354dab4c6e06481901b9c233b26df57231ab30edf8abebaa16c403a3cf6f7bb9e767b9185b7272b1ae37aa2734dc0524735661dc0157d75416492cd26c451f9f4b9bd4b0364ac7e307337a0e39b82488f6acc3b812afaea815537f2fa5f0676a14040bdfebfb7245b92b19dc43706351fd598770355f5d50136823ea1946f6ffa4d47a3f575cc70b1d1a597856e0e0e40ab30ee07abebaa016d047d4328dedff49a8f47eaeb98e163a34b2f0adc1c1c815661dc0f57d75402661b5333282042a101e4b7cdcd8feac1f2d8ba12b839dd03acc3b81fafaea8035848ff1326a307f9d08f9793917dfd7e91f3d02270755e08598770405f5d50053ca456d323a892ab6de5571f195a22f7d029fc41e0ec6011b30ee081bebaa009055b06531db3a80ea890d63629126dea4c965480c1da6424661dc1047d7540110ab60ca63b67501d5121ac6c5224dbd4992ca90183b4c848cc3b8208faea8022156c194c76cea03aa24358d8a449b7a9325952030769909198770411f5d500442ad83298ed9d40754486b1b148936f5264b2a4060ed3212330ee0823ebaa008855b06531db3a80ea890d63629126dea4c965480c1da6424661dc1047d7540110377323108cd7848cdee0eebd18abe5443f0cec153b4e288dc3b82090aea8021f6ee6462119af0919bdc1dd7a3157ca887e19d82a769c511b877041215d50043e69dee4ef09c094eb4849e2ec590dbd0ba8760c51ed3a46380ee08243baa0087b5fd0228ae9e3ac8e5d59edd0a879a211fd2e74a0da7630711dc10488754010f54bb29dc2aa29dbd4877a039947516c1ea69f453eb4ee04e33b820911ea8021e9237794322ab63a60dbba2f2a85010037f980e67a69ddadc777041224d50043d146ef2864556c74c1b7745e550a02006ff301ccf4d3bb5b8eee082449aa0087a219f0a975813b6c3b3baee4a20a6228da9245f5e6a7785b1edc10489454010f4333e152eb0276d876775dc94414c451b5248bebcd4ef0b63db8209128a8021e8667c2a5d604edb0eceebb92882988a36a4917d79a9de16c7b7041225150043d0c5b97a458e03de491aa3d4d08496f6ecf3e720b323bc47cf7e08244a3a0087a174341a15e96de4bdb2140c208893d059929267261778a9df0c10489484010f42d12959b6a041f1a6e0f47ac0908d8332cfe8f40bfef16dfe2820912918021e859252b36d4083e34dc1e8f581211b06659fd1e817fde2dbfc5041225230043d0b24a566da8107c69b83d1eb0242360ccb3fa3d02ffbc5b7f8a08244a460087a16420bf33fcf75b5628470388403d1fc162a0bc61fc78b8a3151048948d010f42c7417e67f9eeb6ac508e0710807a3f82c54178c3f8f171462a2091291a021e858e0f0f28a0b3cfdb58e8d448f8eadd2d852f33e3eee2e4305541225235043d0b1b1e1e5141679fb6b1d1a891f1d5ba5b0a5e67c7ddc5c860aa8244a46a087a16363c3ca282cf3f6d63a35123e3ab74b614bccf8fbb8b90c155048948d410f42c6c048b9db274e15d7f13686fbf4d47942425e17b74172326ab091291a921e858d709173b64e9c2bafe26d0df7e9a8f28484bc2f6e82e464d561225235243d0b1ae122e76c9d38575fc4da1befd351e50909785edd05c8c9aac244a46a487a1635c245ced93a70aebf89b437dfa6a3ca1212f0bdba0b919355848948d490f42c6b848b9db274e15d7f13686fbf4d47942425e17b74172326ab091291a921e858d701d860efb728e329a39d41fe19f50ac7f6871ca7fe4667962225235253d0b1adf3b0c1df6e51c653473a83fc33ea158fed0e394ffc8ccf2c444a46a4a7a1635be022a949aa09b4d20b416a77e73a0d9f84e0985fc919b89898948d495f42c6b7b0455293541369a41682d4efce741b3f09c130bf9233713131291a92be858d6f608aa526a826d3482d05a9df9ce8367e1382617f2466e262625235257d0b1adec1154a4d504da6905a0b53bf39d06cfc2704c2fe48cdc4c4c4a46a4afa1635bd822a949aa09b4d20b416a77e73a0d9f84e0985fc919b89898948d495f42c6b7b0455293541369a41682d4efce741b3f09c130bf9233713131291a92be858d6f6016b77f54fd35cae4d2700794de94a60e2ea3db2166e406635235257e0b1adebf2d6efea9fa6b95c9a4e00f29bd294c1c5d47b642cdc80cc6a46a4afc1635bd7e5addfd53f4d72b9349c01e537a529838ba8f6c859b90198d48d495f82c6b7afc41ce5354c010d9de6046649eeb03586c216135083721d71b91a92bf158d6f5f70faeff56568436748d52f135cc64d8d2ef04c60d6e455238235257e3b1adebed1f5dfeacad086ce91aa5e26b98c9b1a5de098c1adc8aa47046a4afc7635bd7da3ebbfd595a10d9d2354bc4d73193634bbc131835b91548e08d495f8ec6b7afb4098a535f8a84365c375db1a65984ee9224688c68722c35c21a92bf1e8d6f5f671314a6bf15086cb86ebb634cb309dd2448d118d0e4586b8435257e3d1adebece26294d7e2a10d970dd76c6996613ba4891a231a1c8b0d7086a4afc7a35bd7d9c4c529afc5421b2e1baed8d32cc277491234463439161ae10d495f8f46b7afb3824b78ea57ea5e87b42a1425d8ead111cf2cb228422c50022a92bf1e9d6f5f66f496f1d4afd4bd0f6854284bb1d5a2239e5964508458a00455257e3d3adebecde1ef09342d0fa24a4d74b316e31126c6e776ee60d8b15a48ba4afc7a85bd7d9bb3de12685a1f44949ae9662dc6224d8dceeddcc1b162b4917495f8f50b7afb37607d4a5b81a4b154b29f2edb0baa7d9b489fdf4332c58362f92bf1ea26f5f66eb0fa94b7034962a9653e5db61754fb36913fbe86658b06c5f257e3d44debecdd61f5296e0692c552ca7cbb6c2ea9f66d227f7d0ccb160d8be4afc7a89bd7d9bac3ea52dc0d258aa594f976d85d53ecda44fefa19962c1b17c95f8f5137afb3758095cb42e7b13d76a6bf50303a0dbc3434c219f2fc58506fa2bf1ea27f5f66eaf12b9685cf627aed4d7ea060741b7868698433e5f8b0a0df457e3d44febecdd5e2572d0b9ec4f5da9afd40c0e836f0d0d30867cbf16141be8afc7a89fd7d9babc4ae5a173d89ebb535fa8181d06de1a1a610cf97e2c2837d15f8f513fafb3757821dd9b94879ff95e8c165832041a5c2f6e5c4ef9585213a3bf1ea2805f66eaef43bb37290f3ff2bd182cb0640834b85edcb89df2b0a427477e3d4500becdd5de1388c6fef4e26831fd1f88c006c798b865b397e26149f28ffc7a8a027d9babbb27118dfde9c4d063fa3f11800d8f3170cb672fc4c293e51ff8f51404fb3757764e231bfbd389a0c7f47e23001b1e62e196ce5f898527ca3ff1ea2809f66eaeec285890a47d75c447b5c26df82c9aedbdd9df1b100a513880e3d45014ecdd5dd750b12148faeb888f6b84dbf05935db7bb3be362014a27101c7a8a029d9babbae2d749b3ecc3993d6a3cfdfd8a8c9def213bec83d294686048f514054b375775b5ae9367d987327ad479fbfb15193bde4277d907a528d0c091ea280a966eaeeb641e4c5a80748d2125c05a75a9985a3c2fb3d7cf1a51bbc133d450153cdd5dd6b0fdbe3fce4f426dc84d176ad29696f80a2bd55e04a391c277a8a02a89babbad51fb7c7f9c9e84db909a2ed5a52d2df01457aabc09472384ef5140551375775aa3f6f8ff393d09b721345dab4a5a5be028af5578128e4709dea280aa26eaeeb540af17893fe03b99bf351dd6141a9a3ffc22d0aff51ca853cd4501545dd5dd6a715e2f127fc077337e6a3bac2835347ff845a15fea3950a79a8a02a8bbabbad4e2bc5e24ff80ee66fcd47758506a68fff08b42bfd472a14f35140551775775a9c578bc49ff01dccdf9a8eeb0a0d4d1ffe116857fa8e5429e6a280aa2eeaeeb5383b29e1ecb69e1c7701e3fe0c10f867f6cf130bf21ca9f7ce4501545ed5dd6a6f02661c86439ebba5d08e2410184ef7e84a6873e13955939d8a02a8beabbad4dd04cc390c873d774ba11c4820309defd094d0e7c272ab273b1405517d5775a9ba099872190e7aee9742389040613bdfa129a1cf84e5564e76280aa2faaeeb53741330e4321cf5dd2e84712080c277bf4253439f09caac9cec501545f55dd6a6e82661c86439ebba5d08e2410184ef7e84a6873e13955939d8a02a8beabbad4dd04cc390c873d774ba11c4820309defd094d0e7c272ab273b1405517d5775a9ba025997a3dbe116c2bf04f2bfe0a1c220d465f544b55668b6380aa2fabeeb5373f4b32f47b7c22d857e09e57fc1438441a8cbea896aacd16c701545f57dd6a6e7e227841a3cea833678e02d7f01eceb02fc5bfad2a559bd18f02a8beb0bad4dcfb44f083479d5066cf1c05afe03d9d605f8b7f5a54ab37a31e05517d6175a9b9f615f35f3c1103505604d187b87198e8b9c34110a65670ea3d0aa2fac3eb5373eb2be6be782206a0ac09a30f70e331d1738682214cace1d47a1545f587d6a6e7d657cd7cf0440d415813461ee1c663a2e70d04429959c3a8f42a8beb0fad4dcfac3bad528d5e7d0567f35265bb83256dc8c64ae12fb388f5e95517d6205a9b9f57036cfdc7935c8d87b36af36efca9038c38d81e5c67138fd3aa2fac41b5373ead06d9fb8f26b91b0f66d5e6ddf952071871b03cb8ce271fa7545f58836a6e7d5a0db3f71e4d72361ecdabcdbbf2a40e30e36079719c4e3f4ea8beb106d4dcfab41b67ee3c9ae46c3d9b579b77e5481c61c6c0f2e3389c7e9d517d620da9b9f56836cfdc7935c8d87b36af36efca9038c38d81e5c67138fd3aa2fac41b5373ead06d9fb8f26b91b0f66d5e6ddf952071871b03cb8ce271fa7545f58836a6e7d5a06751ca91ad85e4a4a78303b7209f0b08e249f316c4e598eb8beb106e4dcfab3f5ab5edd0316e4c011bcc2f66379c3e0c70d6422a89ccd5d817d620dd9b9f567d417e344d393f1aba045e86c46596a4138deee052139b4fb12fac41bc373eacf90f0ec14748e0b82bd5833580c18b7021c8201ca1273843635f5883796e7d59f11e1d828e91c17057ab066b018316e043904039424e7086c6beb106f2dcfab3e23c3b051d2382e0af560cd603062dc087208072849ce10d8d7d620de5b9f567c4048862e71d68441678dfd3fe02b9a908ed43410639c3bf1bfac41bcc73eacf870910c5ce3ad0882cf1bfa7fc05735211da86820c73877e37f5883798e7d59f0e12218b9c75a11059e37f4ff80ae6a423b50d0418e70efc6feb106f31cfab3e1c24431738eb4220b3c6fe9ff015cd48476a1a0831ce1df8dfd620de639f567c3848862e71d68441678dfd3fe02b9a908ed43410639c3bf1bfac41bcc73eacf8701d1eb590836b0586e8c0a7b84d93491854aa7cc4387987805883798f7d59f0df3a3d6b2106d60b0dd1814f709b269230a954f98870f30f00b106f31efab3e1be008d2eeee40e98d36fc8c6d92cab4c5bfeec4f0de1e7c202620de63ef567c37b011a5dddc81d31a6df918db2595698b7fdd89e1bc3cf8404c41bcc7deacf86f60234bbbb903a634dbf231b64b2ad316ffbb13c37879f0809883798fbd59f0dec046977772074c69b7e4636c9655a62dff762786f0f3e1013106f31f7ab3e1bd808d2eeee40e98d36fc8c6d92cab4c5bfeec4f0de1e7c202620de63ef567c37b011a5dddc81d31a6df918db2595698b7fdd89e1bc3cf8404c41bcc7deacf86f60234bbbb903a634dbf231b64b2ad316ffbb13c37879f0809883798fbd59f0dec046977772074c69b7e4636c9655a62dff762786f0f3e1013106f31f7ab3e1bd8019414790e4fb5627958d0124a1aa83f9989169dee7c3a6630de63ef667c37aff32828f21c9f6ac4f2b1a0249435507f33122d3bdcf874cc61bcc7deccf86f5fe65051e4393ed589e5634049286aa0fe66245a77b9f0e998c3798fbd99f0debfc561c9533fe3d33f4792e311d03b247c770cdaaf43e1ed7196f31f7b43e1bd7f7384b8314d2dceaa0bf228a31fdc2b7898dddb1e57c3f5233de63ef697c37afed70970629a5b9d5417e451463fb856f131bbb63caf87ea467bcc7ded2f86f5fda6d40650021d62d3ac95050bfed690620e3b92392f0feecd0798fbda6f0debfb3669322ad1a0edd2d5f66c977d130343c73b4a322e1ff7da1f31f7b4ee1bd7f6559389e070a803d128b93bae798be907393aba242c4009f44e63ef69ec37afec93e8394baeb62fcdce3ed9dc727db48e1d399a0828802e28acc7ded3e86f5fd9109198222ad287c7194a163864614b9be53759d021007691698fbda7e0debfb21123304455a50f8e32942c70c8c29737ca6eb3a04200ed22d31f7b4fc1bd7f6422466088ab4a1f1c652858e191852e6f94dd67408401da45a63ef69f837afec8448cc11156943e38ca50b1c3230a5cdf29bace810803b48b4c7ded3f06f5fd9081daa7ad7a8ea49d116dc605c57a9c3dfe39c2c1e0078356a8fbda7e1debfb20f3b54f5af51d493a22db8c0b8af5387bfc738583c00f06ad51f7b4fc3bd7f641e02bc440b7a0ba9fc2837a9695505377a3ab30c7501e279ab3ef69f887afec83b05788816f41753f8506f52d2aa0a6ef4756618ea03c4f3567ded3f10f5fd90760af1102de82ea7f0a0dea5a55414dde8eacc31d40789e6acfbda7e21ebfb20ec15e2205bd05d4fe141bd4b4aa829bbd1d59863a80f13cd59f7b4fc43d7f641d82bc440b7a0ba9fc2837a9695505377a3ab30c7501e279ab3ef69f887afec83b05788816f41753f8506f52d2aa0a6ef4756618ea03c4f3567ded3f10f5fd907603b235b8b594d01c1dab0824d37ac06895905793d78a00ed0bda7e21fbfb20ebf02590fc388fc863b82272c9265b6350d5e4d4e77f141c1a27b4fc4407f641d7d04b21f8711f90c77044e5924cb6c6a1abc9a9cefe2838344f69f8880fec83afa09643f0e23f218ee089cb24996d8d435793539dfc5070689ed3f1101fd9075f412c87e1c47e431dc113964932db1a86af26a73bf8a0e0d13da7e2203fb20ebe82590fc388fc863b82272c9265b6350d5e4d4e77f141c1a27b4fc4407f641d7d04b21f8711f90c77044e5924cb6c6a1abc9a9cefe2838344f69f8880fec83afa02256498f1584119856914c9163eb6b523f95f9f950720c9fd3f11020d9075f3f44ac931e2b082330ad229922c7d6d6a47f2bf3f2a0e4193fa7e22041b20ebe7e156b7ee92c72c919270b5a3d860bd543aa9a43e241c9d6804fc44084641d7cfb2ad6fdd258e592324e16b47b0c17aa87553487c48393ad009f888108c83af9f655adfba4b1cb24649c2d68f6182f550eaa690f8907275a013f1102119075f3ec376e4ff639f8cb810520f9e426bcd21801147b0f0e5058037e22042420ebe7d76edc9fec73f197020a41f3c84d79a4300228f61e1ca0b006fc44084841d7cfae69cb9885be45b0bbe14a0f889151705ab09448393943040ef888109183af9f5b5fa989b852ede42f8f5a4709190108b00d6aec6f7287ac1ef1102124075f3eb54b656c1d7c3e4b16eb7ab60a2860395ac71834dbe510fc3ee22042490ebe7d6922dd30e7cedf18e5a3bb940c471e9ab03a72c5b4ca239c7ec44084931d7cfad145ba61cf9dbe31cb477728188e3d356074e58b69944738fd888109263af9f5a217871c4c11dee64e5bb4782912d892bb960d72d0289015fc1102124d75f3eb432f0e389823bdcc9cb768f05225b125772c1ae5a051202bf82204249aebe7d6865e1c7130477b99396ed1e0a44b624aee5835cb40a24057f044084935d7cfad0c484b3b0d6559b52aaa69e9408d22bdd75cadf27e448253e18810926caf9f5a171ca8cec7a115ed0d2199fa7910a3a3a9659e40f989064bc4102124da5f3eb42d39519d8f422bda1a4333f4f221474752cb3c81f3120c9788204249b4be7d685a72a33b1e8457b4348667e9e4428e8ea5967903e624192f10408493697cfad0b47158cee9df11eb20d995fbc07b7b4545d93463c948340221810926d3f9f5a1676ec3f680948658f97ff21f78ed54b2865eab238f9069a84402124da8f3eb42cd699a45adff6f34aaccaa66e9d1078d076998a31c20d4f48904249b52e7d685995f46e408d540ec0d661af5cb986d42097f73a23541ab8d13084936a6cfad0b314aa020be80e45ad298fc138f2738ac0dab29a0678358be2710926d4e9f5a166121529a29d82b385cfebe4f1644cf801602959ccc06b3204f2124da9e3eb42cc142a53453b05670b9fd7c9e2c899f002c052b39980d66409e4249b53c7d685982115cc154370f642bc7bf6451099c2852b698cf2d1ace253d84936a79fad0b30322b982a86e1ec8578f7ec8a2133850a56d319e5a359c4a7b0926d4f3f5a1660645730550dc3d90af1efd91442670a14ada633cb46b3894f6124da9e7eb42cc0c16f8634e8edda4160ac14a80433f6a906108d565d672cded249b53d0d68598172df0c69d1dbb482c15829500867ed520c211aacbace59bda4936a7a1ad0b302e5be18d3a3b7690582b052a010cfdaa418423559759cb37b4926d4f435a16605c43d573214d4fa36822d07bfa10597c7db489072bb398136a24da9e87b42cc0b713bd3eef7101c98812671fec171120f615546a546731cad549b53d106859816d277a7ddee203931024ce3fd82e2241ec2aa8d4a8ce6395aa936a7a20d0b302da4ef4fbbdc4072620499c7fb05c4483d85551a9519cc72b5526d4f441a16605b429fc50285e70cef85fff2758aee72fab56e5aea0398ffaab4da9e88442cc0b6753f8a050bce19df0bffe4eb15dce5f56adcb5d40731ff5569b53d108859816ce3403994e5025be994cc2c55ab1fae6a807d9167de6418eae36a7a2120b302d9b6807329ca04b7d3299858ab563f5cd500fb22cfbcc831d5c6d4f442416605b365c20bde616f97d1cffd13d62be49c29acba6b5f49907deb9da9e88492cc0b66b4453d47904557cf1cc68a2bd72f1ad30438fc7e632116174b53d109359816cd514ba019edf0d7c9b65976d72dc41825b3361ebc9642466ea6a7a2127b302d9a92974033dbe1af936cb2edae5b88304b666c3d792c848cdd4d4f4424f6605b35252e8067b7c35f26d965db5cb7106096ccd87af2590919ba9a9e8849ecc0b66a431e265a3cece6792f981938ed86a3ad44751ba482124db5453d1093e9816cd4763c4cb479d9ccf25f303271db0d475a88ea374904249b6a8a7a2127d302d9a8e539bef3c119c2103b2cc76335807134bc989451d849511524f4424fb605b351b334a3724f99ac4bf325f145ea66c4e923f54e638092bc6a59e8849f7c0b66a3566946e49f335897e64be28bd4cd89d247ea9cc7012578d4b3d1093ef816cd46a593b3540bccd95b496427972900f6243a995f4dd24b0be977a2127e002d9a8d33e88c32e4ffdae20f94b1add167cec81ff6e45b74963212ff4424fc105b351a50923df09765ddef9bf5c5db2235800feab1ee76b92c7e660e8849f830b66a3491247be12ecbbbdf37eb8bb6446b001fd563dced7258fccc1d1093f0616cd4692248f7c25d9777be6fd7176c88d6003faac7b9dae4b1f9983a2127e0c2d9a8d24491ef84bb2eef7cdfae2ed911ac007f558f73b5c963f33074424fc185b351a481e5049443c407253c28c031a2bde37e55e30d2b62c800a0f8849f831b66a348f3ca092887880e4a78518063457bc6fcabc61a56c5900141f1093f0636cd4691e05537dbdc7644c06d6f63460a5d707902505a6d5b201cc3f2127e0c7d9a8d23b0aa6fb7b8ec8980dadec68c14bae0f204a0b4dab6403987e424fc18fb351a476154df6f71d91301b5bd8d182975c1e4094169b56c80730fc849f831f66a348ec2a9bedee3b226036b7b1a3052eb83c81282d36ad900e61f9093f063ecd4691d85537dbdc7644c06d6f63460a5d707902505a6d5b201cc3f2127e0c7d9a8d23b036821065c2ec0392ab8cb40cb13f19ff4cf736b3403b2be524fc18fc351a475f6d0420cb85d8072557196819627e33fe99ee6d66807657ca49f831f86a348ebe661a9a43e21291027af8f82abb5a8ff7e01f36ca00ee539593f063f1d4691d7b58478d349a87a4bcc2b8184d6d1347ea6c80c99101de4b2c27e0c7e4a8d23af53ca173160b71cc3152365892d084b7cf8543ef1f03be3a594fc18fca51a475e905553ed8ed461b1a7132d91d97679799b6ca3a3b077e18b39f831f95a348ebd10aaa7db1da8c3634e265b23b2ecf2f336d9474760efc31673f063f2b4691d7a21554fb63b5186c69c4cb64765d9e5e66db28e8ec1df862ce7e0c7e568d23af442aa9f6c76a30d8d38996c8ecbb3cbccdb651d1d83bf0c59cfc18fcad1a475e885553ed8ed461b1a7132d91d97679799b6ca3a3b077e18b39f831f95a348ebd1036ba33ca7f25e605f3214baae3511b318589a35defc4ba74f063f2b5691d7a1f6d746794fe4bcc0be6429755c6a236630b1346bbdf8974e9e0c7e56ad23af43e66fb27d6d2fa1acf994b56a383a294c0c268e974bf148dd4c18fcad6a475e87b5a08a85a7c56b856ff5cd53efda3517c31142ee67e2abfaa831f95ae48ebd0f54023a961cf0ff365cb7fd275f1a4caf30e6ab9c9fc572356063f2b5d91d7a1e90c59ab707482698363c5cce3d9a7bde0c917cf90f8afeaad0c7e56bc23af43d118b356e0e904d306c78b99c7b34f7bc1922f9f21f15fd55a18fcad78475e87a23166adc1d209a60d8f17338f669ef783245f3e43e2bfaab431f95af08ebd0f4462cd5b83a4134c1b1e2e671ecd3def0648be7c87c57f556863f2b5e11d7a1e8851ad0fb41e891aee0922f63590da06073dbf550c8b004ed1c7e56bc33af43d0f2f6c78151374b893df0c14631812340927c10616160241a48fcad78775e87a1d5ed8f02a26e97127be1828c6302468124f820c2c2c0483491f95af0eebd0f43a49c439012435650748f6798456a6f81f4b467455580aaa933f2b5e1ed7a1e8731f9acaaf1ecd4cc65eb31b00a3ac183942cf44a7b016f9277e56bc3eaf43d0e53f35955e3d9a998cbd66360147583072859e894f602df24efcad787d5e87a1ca0a7d83695197b5d1479293fa850e88dfb77f6e9bc05d889ef95af0fbbd0f439314fb06d2a32f6ba28f2527f50a1d11bf6efedd3780bb113df2b5e1f77a1e872629f60da5465ed7451e4a4fea143a237eddfdba6f0176227be56bc3eef43d0e4c53ec1b4a8cbdae8a3c949fd4287446fdbbfb74de02ec44f7cad787dde87a1c9833ea8f41efdddfcc45ef67a04746b5f6243945b905da2df095af0fbcd0f4392f67d51e83dfbbbf988bdecf408e8d6bec48728b720bb45be12b5e1f79a1e8725e5bbc95b495da01e8e483c6791378ffd33d2772e1176a5bc356bc3ef443d0e4bb438b84160216868995cdb4ea1d5027a1269141bf2ed65b87ad787de987a1c975132960d8da8f8fcaf86191cc30fe773cf964df7b5dae5b105af0fbd40f4392e92652c1b1b51f1f95f0c3239861fcee79f2c9bef6bb5cb620b5e1f7a81e8725d24ca583636a3e3f2be1864730c3f9dcf3e5937ded76b96c416bc3ef503d0e4ba4255d5f73aadf010f8fd2b6597e51e1e2776957d7ed747c83d787dea17a1c97474ababee755be021f1fa56cb2fca3c3c4eed2afafdae8f907af0fbd42f4392e8e2187d67b81de86f60c11015defa5af8489e7bb5cb5d396105e1f7a86e8725d1b430facf703bd0dec182202bbdf4b5f0913cf76b96ba72c20bc3ef50dd0e4ba361231b29adddc9e8ffd0a2d6fb4f4e60cd3e1496fd74ffc42787dea1ca1c9746b24636535bbb93d1ffa145adf69e9cc19a7c292dfae9ff884f0fbd4394392e8d648c6ca6b77727a3ff428b5bed3d398334f8525bf5d3ff109e1f7a8728725d1ac1d9fed83c5477737b51793759e0558614b4ca77bba818614c3ef50e60e4ba3573b3fdb078a8eee6f6a2f26eb3c0ab0c296994ef775030c2987dea1cc1c9746ae02920ebbeb805f96a12475ce6e73897fd974f9ebea07bc540fbd4399392e8d5b05241d77d700bf2d4248eb9cdce712ffb2e9f3d7d40f78a81f7a8732725d1ab60a483aefae017e5a8491d739b9ce25ff65d3e7afa81ef1503ef50e64e4ba356c149075df5c02fcb50923ae73739c4bfecba7cf5f503de2a07dea1cc9c9746ad82920ebbeb805f96a12475ce6e73897fd974f9ebea07bc540fbd4399392e8d5b05241d77d700bf2d4248eb9cdce712ffb2e9f3d7d40f78a81f7a8732725d1ab60309607a7b67a686015e39b93934087f10980d6f781f0b904ef50e64f4ba356bf612c0f4f6cf4d0c02bc7372726810fe21301adef03e17209dea1cc9e9746ad7e4e6a774bb04c243824549646436047bed245b7db07c48814bd43993e2e8d5afb28e7474436facb28156f54847d1eb77850cdcbb30f8ab42a7a87327d5d1ab5f551ce8e886df596502adea908fa3d6ef0a19b97661f156854f50e64faba356bea2faf75bdb24daf5822837a09ead905dbef798ac93e2c74aaea1cc9f6746ad7d35f5eeb7b649b5eb04506f413d5b20bb7def315927c58e955d43993ece8d5afa64ad02fa39f99401856d4101fa1c23f6a6a288721f8b376aca87327dad1ab5f4b21b2b7f4159502e87a6e483739e2a6cf80936a40f168915a50e64fb6a356be9543656fe82b2a05d0f4dc906e73c54d9f0126d481e2d122b4a1cc9f6d46ad7d2a12dd387d2cb68e59b67f48d4dde8c338ae900500c5a3e96a43993edb8d5afa5325ba70fa596d1cb36cfe91a9bbd186715d200a018b47d2d487327db71ab5f4a64b74e1f4b2da3966d9fd235377a30ce2ba401403168fa5a90e64fb6e356be94c22fc1c963c16f58580c06e9ee5a441c020c284032d20ef531cc9f6dd6ad7d29745f8392c782deb0b0180dd3dcb488380418508065a41dea63993edbad5afa52e1802cb05c6be58cdcfc7e2738cef2efb2f4c6c09b485614d7327db76ab5f4a5b3005960b8d7cb19b9f8fc4e719de5df65e98d813690ac29ae64fb6ed56be94b6600b2c171af963373f1f89ce33bcbbecbd31b026d2158535cc9f6ddaad7d296c4c28b0db0c5549264b053b945dd79fd426a5bc4aa42cae6c993edbb65afa52d72463ba62ef0d150462d09f20b20d67a2f98dd492485b00da327db76db5f4a5ad48c774c5de1a2a08c5a13e41641acf45f31ba92490b601b464fb6edb6be94b5a1da142389296d6c95808a47abe93c6869279ae46216da769c9f6ddb7d7d296b33b428471252dad92b01148f57d278d0d24f35c8c42db4ed393edbb6fafa52d660297618f20bddddd2ce8b9e2f0ad4214f629151585b841a827db76e05f4a5acb052ec31e417bbbba59d173c5e15a8429ec522a2b0b7083504fb6edc0be94b5960a5d863c82f77774b3a2e78bc2b50853d8a4545616e106a09f6ddb817d296b2c14bb0c7905eeeee96745cf17856a10a7b148a8ac2dc20d413edbb702fa52d658297618f20bddddd2ce8b9e2f0ad4214f629151585b841a827db76e05f4a5acb052ec31e417bbbba59d173c5e15a8429ec522a2b0b7083504fb6edc0be94b596031eabc7505d9fa0306f4a0b421aead383687a15e6e120e0af6ddb818d296b2bf63d578ea0bb3f4060de94168435d5a706d0f42bcdc241c15edbb7031a52d657e53bd4a80edca6ac3e898aac87d18dcdb8660e176b849dc2cdb76e0644a5acafb338cedaeb1f7583f9df77d88f08fe1b1b9041eea70955c5ab6edc0c994b595f56719db5d63eeb07f3beefb11e11fc36372083dd4e12ab8b56ddb8193296b2bea5a460f679e3fe3b644a41e1bb89daec19052d7a6c257156bdbb7032752d657d3409e777c12e24a24560e642f6799857dcce80b4a84afced8b76e064fa5acafa50d4f47a4fc27170078e2f056c59132f646127292096141b26edc0ca04b595f491a9e8f49f84e2e00f1c5e0ad8b2265ec8c24e52412c28364ddb8194096b2be92353d1e93f09c5c01e38bc15b1644cbd91849ca48258506c9bb7032812d657d246a7a3d27e138b803c71782b62c8997b2309394904b0a0d9376e065025acafa486106d2fc98d3f2bf5af52d644f71575f0d69851d9615bf27edc0ca05b595f48f4e1ffea6080a683682b082c09540d6b8c71566382c2d2250db81940c6b2be91d285255f8e6775324d2272d7920dfd56c3a6d286d585be8a2b7032819d657d23950a4abf1cceea649a44e5af241bfaad874da50dab0b7d1456e065033acafa4722d5bb090703fcf4b1562dddc79dd7dab95f6fdb26171468bdc0ca068595f48e35ab76120e07f9e962ac5bbb8f3bafb572bedfb64c2e28d17b81940d0b2be91c641811aee9761bfe422519f69ddd41ea9041e52c685c6be30703281a2657d238b0f148e8a05260280116966cbb206654cb47f018a0b8f2061e0650345cafa47151e291d140a4c050022d2cd97640cca9968fe0314171e40c3c0ca068b95f48e2a3c523a2814980a0045a59b2ec8199532d1fc06282e3c818781940d172be91c5404b6ccfcff9296b858115e5586915260503a684d5c7aa71003281a2f57d238a7096d99f9ff252d70b022bcab0d22a4c0a074d09ab8f54e200650345eafa4714e12db33f3fe4a5ae1604579561a45498140e9a13571ea9c400ca068bd5f48e29c25b667e7fc94b5c2c08af2ac348a930281d3426ae3d538801940d17abe91c5384b6ccfcff9296b858115e5586915260503a684d5c7aa71003281a2f57d238a7022ebf84cc8b559c2cef1f2a8c8887404b38f65a88f568601650345ebfa4714df45d7f099916ab3859de3e5519110e809671ecb511ead0c02ca068bd7f48e29be17c239dff937e9c3088df29b187ff80d7a7ff29f3d5bbc06940d17b0e91c537b2f8473bff26fd386111be53630fff01af4ffe53e7ab7780d281a2f61d238a6f65f08e77fe4dfa70c2237ca6c61ffe035e9ffca7cf56ef01a50345ec3a4714dec4a2427aca021d0d01135bcd0ba5de8668041f0f6eadf8435a068bd8848e29bd7205aa80616a62457ef31a1996b19f8c7acc63dead5c0ac6c40d17b1191c537ad40b5500c2d4c48afde634332d633f18f598c7bd5ab8158d881a2f623238a6f5a0d7cf8c530fb1417898cae5da2c60b195f5b53a8570455b20345ec474714deb31af9f18a61f6282f13195cbb458c1632beb6a750ae08ab64068bd88e8e29bd6635f3e314c3ec505e2632b9768b182c657d6d4ea15c1156c80d17b11d1c537acc6be7c62987d8a0bc4c6572ed163058cafada9d42b822ad901a2f623a38a6f59863e1e4ffe613c43065910dd222bed990a1f796827046ff21345ec475714deb2f53d622aca28a0b1897e8439c3bdbdb1bf0318901e08fa24368bd88ebe29bd65d33be9e061b7698e8fc96af306e15de328ca56e00c120e887d17b11d8c537acb9677d3c0c36ed31d1f92d5e60dc2bbc65194adc018241d10fa2f623b18a6f59725b0cd0c5443ce65bbf20e4b9aeb5a0c4ded814000485462045ec476414deb2e3422bfa375edc4f6f4b07f16b53c9698469f283fd090c30418bd88ec929bd65c5106a4d1b941b219662d60ace9df0fb03802763f7121a048417b11d93537acb8920d49a372836432cc5ac159d3be1f607004ec7ee243409082f623b26a6f5971241a9346e506c86598b582b3a77c3ec0e009d8fdc486812105ec4764d4deb2e240f64c189773b8f6ae3767e6ce5e60016ad7d7bb590d1c821bd88ec9b9bd65c471ec98312ee771ed5c6ecfcd9cbcc002d5afaf76b21a390437b11d93737acb88e3d930625dcee3dab8dd9f9b39798005ab5f5eed643472086f623b26e6f59711c073864f8903efe0ee87a1b5f258e28b0182e39a9868fe50eec4764dddeb2e2370e70c9f1207dfc1dd0f436be4b1c5160305c73530d1fca1dd88ec9bbbd65c46e1ce193e240fbf83ba1e86d7c9638a2c060b8e6a61a3f943bb11d93777acb88dc39c327c481f7f07743d0daf92c714580c171cd4c347f2877623b26eef59711b873864f8903efe0ee87a1b5f258e28b0182e39a9868fe50eec4764dddeb2e2370731ef7bede424494dc0993dca8233dfdb209912dd1fe45de88ec9bbcd65c46df7250482a92e70be184d94fb146a4a3f610557e58a3fe2fbe11d9377aacb88dbd70b2e901fc309a7ad678c75a83a76fe6cced58ae47fe037d23b26ef659711b796d782ab0cec3b7ad79b7b6acfdad07c8461d0d598ffdaafb4764ddedb2e236f16702ae0e73e9f212c0359551f1b8378b387c76b01ffcf9f78ec9bbdc65c46de15a17b4c9be3666dd4d31529bd9ce97111d3b495d3ffb97f01d9377b9cb88dbc14041c24052cf50726728cd2fa9fb561ce6b8eeb77ff8d3e13b26ef749711b7810c95dd2d7c01239c9b17c2574a54d43479b4396bfff34bc3764ddeea2e236f01192bba5af8024739362f84ae94a9a868f36872d7ffe69786ec9bbdd45c46de02325774b5f0048e726c5f095d295350d1e6d0e5afffcd2f0dd9377ba8b88dbc0464aee96be0091ce4d8be12ba52a6a1a3cda1cb5fff9a5e1bb26ef751711b780855702b849674bc817e424d6c9bab6b424785f2bcff36603864ddeea3e236f00f36f2afb6034bfbbac94ac2d12db4fe7f3b4e4176fe6e6471c9bbdd48c46de01d6de55f6c0697f775929585a25b69fcfe769c82edfcdcc8e39377ba9188dbc03a67dd1784e39271a2f1f1333cad3221f7997b61d8f9bb35c826ef752411b780735bcc87b69d8765fdb0a88e7150c26be9df391faef3780f914ddeea49236f00e543ab681a11714eb32e1744da97e2ffce6ab49b5ae6f1c3239bbdd49346de01c9136928e0f945201e28f4b1ad2624279781ab92b2cde52a48377ba9278dbc039126d251c1f28a403c51e9635a4c484f2f035725659bca54906ef7524f1b7807224da4a383e5148078a3d2c6b498909e5e06ae4acb3794a920ddeea49e36f00e44275b9fb4a08b83a9146bb561277f64b6b99ef1936f2af642bbdd493d6de01c874eb73f694117075228d76ac24efec96d733de326de55ec8577ba927adbc0390e2980d77f5890915c1e74fd7c945bbad592be224abcad7d0bef7524f6b780721b5301aefeb12122b83ce9faf928b775ab257c4495795afa17deea49ed6f00e4363215b6aa38a4c828469a1dea47cd1350f73ae527f2b79830bdd493dbde01c86b642b6d54714990508d343bd48f9a26a1ee75ca4fe56f30617ba927b7bc0390d654693355b8f5a358e72e9fa11592753e892df09ccae004c3f7524f70780721ab34e4bf58484dc9699b23673a21831277be9e3d3695c1ad88eea49ee1f00e435569c97eb0909b92d33646ce74430624ef7d3c7a6d2b835b11dd493dc3e01c86aa5fa5560df799a85e3953c4e07c6a71d9a6bb50d757085a24ba927b88c0390d534b5d04c8c595d3743f6db1b8ef330badf9b8fdabae12584a7524f71280721aa522cc623e618e29a04ba18b69d4c43f569fb457545c265495ea49ee2600e435494598c47cc31c5340974316d3a9887ead3f68aea8b84ca92bd493dc4c01c86a921743e1a65c9b2938fb4c559f496f25552b13b94e709af658a927b8990390d5232e87c34cb9365271f698ab3e92de4aaa5627729ce135ecb1524f71320721aa465d0f8699726ca4e3ed31567d25bc9554ac4ee539c26bd962a49ee2640e43548c463165dfbb3bcc7fa728d4f241d752a404e0267084d956c6493dc4c91c86a9171875246c4cda1bb71b17d1dc7a0ccd42b602a8de09b4518d927b8993390d522d30ea48d899b4376e362fa3b8f4199a856c0551bc1368a31b24f71326721aa45a61d491b133686edc6c5f4771e833350ad80aa37826d1463649ee264ce43548b44fbb7c0f3d336070a584b6dbc6c492105c57a2ed4da4306d93dc4c9ac86a91672b8950cb50c9439917cf95af83e74c1b64f1a1d79b4a04dc27b8993690d522cd5712a196a19287322f9f2b5f07ce9836c9e343af369409b84f71326d21aa459a3a379bda1987911c2c047eb605fb58684008e35b6d29b7719ee264db43548b33008190610971a4f024cf25640254d8cb2c5422b3da5512e43dc4c9b786a91665010320c212e349e0499e4ac804a9b19658a84567b4aa25c87b89936f0d522cca0206418425c693c0933c95900953632cb1508acf69544b90f71326de1aa45994040c83084b8d278126792b2012a6c65962a1159ed2a89721ee264dbc3548b32808190610971a4f024cf25640254d8cb2c5422b3da5512e43dc4c9b786a91665010320c212e349e0499e4ac804a9b19658a84567b4aa25c87b89936f0d522cca0206418425c693c0933c95900953632cb1508acf69544b90f71326de1aa45994040c83084b8d278126792b2012a6c65962a1159ed2a89721ee264dbc3548b32800da2b9b6480772dc9beb8bfa4b36f32700650fd75514883ec4c9b787a91664ff1b45736c900ee5b937d717f4966de64e00ca1faeaa29107d89936f0f522cc9fe368ae6d9201dcb726fae2fe92cdbcc9c01943f5d545220fb1326de1ea45993fc6d15cdb2403b96e4df5c5fd259b7993803287ebaa8a441f6264dbc3d48b327f8663df41156d9b0818b7ee79ca9cd5a6ab2935972514a27ed4c9b787b91664fef588e40cf8415e3bae3c3f73149f8dcd011690ee1a295f3db9936f0f822cc9fdd3d2eda4bde8e4a2d944e165a8a4fe19acf1479c0452d8bb8326de1f145993fb906700d44937f1712f56254ad0afdeb304a6b4f7d8a5cbb7164dbc3e38b327f710ce01a8926fe2e25eac4a95a15fbd66094d69efb14b976e2c9b787c71664fee219c035124dfc5c4bd58952b42bf7acc129ad3df62972edc5936f0f8e2cc9fdc433806a249bf8b897ab12a56857ef5982535a7bec52e5db8b26de1f1c5993fb886700d44937f1712f56254ad0afdeb304a6b4f7d8a5cbb7164dbc3e38b327f7105a14013f464565167910bd99561b8e03f9ac4bae4b99122d9b787c72664fee1f403a5b2b62ed4ce4bee7a32aa29544029f9af3599733c85c36f0f8e5cc9fdc3d0c870f039c3d1c814a956e4d3b88afffeb7842b02e6934b96de1f1cc993fb879190e1e07387a3902952adc9a77115fffd6f085605cd26972dbc3e399327f70f2321c3c0e70f472052a55b934ee22bfffade10ac0b9a4d2e5b787c73264fee1e46438781ce1e8e40a54ab7269dc457fff5bc215817349a5cb6f0f8e64c9fdc3c8548348e69a344acc761d0ccbaee927f963c686ffe694ef97de1f1cca93fb878f3518ea7a0acb1850b900418f543077ed73cf69fccd2b8330bc3e399627f70f1d6a31d4f4159630a17200831ea860efdae79ed3f99a570661787c732c4fee1e3a60760295018ee3fab0c72e35472007b07b8003f034afb0c3f0f8e6599fdc3c734cfe5dd6d9804aad2e548462849e375ba34263dd69610588e1f1ccb43fb878e5260f145a89631812296f30bcff9a96b1f2c723b7d2c3af12c3e399697f70f1c94c1e28b512c6302452de6179ff352d63e58e476fa5875e2587c732d2fee1e392244eaa16fbeee3007282eaebf4c882c2775eeadc4b10604c0f8e65a6fdc3c723489d542df7ddc600e505d5d7e9910584eebdd5b89620c0981f1ccb4dfb878e461d4d0108c61e0eb996d1d3a7c980330489be076e2c4325313e39969cf70f1c8b3a9a02118c3c1d732da3a74f93006609137c0edc58864a627c732d39ee1e391601465ccfeedabd9e280d76971c5ef40cd33a79b5b10e38c5f8e65a74dc3c722b028cb99fddb57b3c501aed2e38bde819a674f36b621c718bf1ccb4e9b878e4560519733fbb6af678a035da5c717bd0334ce9e6d6c438e317e39969d370f1c8ac0a32e67f76d5ecf1406bb4b8e2f7a06699d3cdad8871c62fc732d3a6e1e391581465ccfeedabd9e280d76971c5ef40cd33a79b5b10e38c5f8e65a74dc3c722b028cb99fddb57b3c501aed2e38bde819a674f36b621c718bf1ccb4e9b878e4560519733fbb6af678a035da5c717bd0334ce9e6d6c438e317e39969d370f1c8ac02f40c0a443c151cbd381738625d82e64497f36d5871e06fd732d3a6f1e39157f5e8181488782a397a702e70c4bb05cc892fe6dab0e3c0dfae65a74de3c722afe49155b3de567c9e71acbf6108dbee18bd23f37531c79bff6ccb4e9bd78e455fb1e3d0f28a1321686025e141911dbeb1250c0caa338f523ee9969d37bf1c8abf53c7a1e5142642d0c04bc283223b7d624a181954671ea47dd32d3a6f7e39157ea0506954f5b2adccfd63e785c3dcdd443ef458689e3d633bb65a74df0c722afd30a0d2a9eb655b99fac7cf0b87b9ba887de8b0d13c7ac6776cb4e9be18e455fa6141a553d6cab733f58f9e170f737510fbd161a278f58ceed969d37c31c8abf4c2834aa7ad956e67eb1f3c2e1ee6ea21f7a2c344f1eb19ddb2d3a6f8639157e98506954f5b2adccfd63e785c3dcdd443ef458689e3d633bb65a74df0c722afd302ce502983bbe1cb29495337fb018b07894f32d397ac81b6db4e9be19e455fa5f59ca0530777c3965292a66ff603160f129e65a72f59036db69d37c33c8abf4be3fa6630dc55af5821f1af5f6b6c0e9dd000f10e2eb2211b7d3a6f8689157e97b0b5f1ec861186dbc0afc13e563dffbb4ac607dc2d645c770a74df0d222afd2f516be3d90c230db7815f827cac7bff76958c0fb85ac8b8ee14e9be1a4455fa5ea2d7c7b218461b6f02bf04f958f7feed2b181f70b59171dc29d37c3488abf4bd45af8f64308c36de057e09f2b1effdda56303ee16b22e3b853a6f8691157e97a842044532e7e95e787c87664e345de345724a382a645e1b0b74df0d232afd2f4f101ae312a6353fa8c5d4f4945f19ee8590d6cc51c8bdda17e9be1a4755fa5e9d2035c6254c6a7f518ba9e928be33dd0b21ad98a3917bb42fd37c348eabf4bd3a406b8c4a98d4fea31753d2517c67ba16435b314722f7685fa6f8691d57e97a740ce97142080c7ffdfb6dcc9aef2d9c2732f8be8b45f074c04df0d23bafd2f4e719d2e2841018fffbf6db9935de5b384e65f17d168be0e9809be1a4775fa5e9ce33a5c5082031fff7edb7326bbcb6709ccbe2fa2d17c1d30137c348eebf4bd39c674b8a104063ffefdb6e64d7796ce13997c5f45a2f83a6026f8691dd7e97a7385aa96ccd572a829783a2f1a6e937ea6ddbce44b15f08f005df0d23bbfd2f4e6f4165324784b787e6d40c0b45c8cdfcd663dee55fbe13840cbe1a4778fa5e9cdd0edcbd3bdfd1928574de3e8387fa21a7740026bc7c28ac1a7c348ef2f4bd39b91db97a77bfa3250ae9bc7d070ff4434ee8004d78f8515834f8691de5e97a73723b72f4ef7f464a15d378fa0e1fe8869dd0009af1f0a2b069f0d23bcbd2f4e6e402f8428bd4ef16e373b81c14362f35364c4391e0e14704d4e1a47798a5e9cdc705f08517a9de2dc6e77038286c5e6a6c988723c1c28e09a9c348ef314bd39b8e0be10a2f53bc5b8dcee07050d8bcd4d9310e4783851c13538691de6297a7371c17c2145ea778b71b9dc0e0a1b179a9b2621c8f070a3826a70d23bcc52f4e6e382f8428bd4ef16e373b81c14362f35364c4391e0e14704d4e1a47798a5e9cdc705f08517a9de2dc6e77038286c5e6a6c988723c1c28e09a9c348ef314bd39b8e04a22fba212283b94bacd2d05822b758dbd26d43551c2d939691de62a7a7371bf20584ff0fab2f9e142608202fab5131626900467a3875673d23bcc55f4e6e37d40b09fe1f565f3c284c10405f56a262c4d2008cf470eace7a47798abe9cdc6fa0d739870c12e6a3cd6483003e132745346826d9b8e1efdd048ef3158d39b8df31ae730e1825cd479ac906007c264e8a68d04db371c3dfba091de62b1a7371be635ce61c304b9a8f35920c00f84c9d14d1a09b66e387bf74123bcc5634e6e37cc6b9cc386097351e6b241801f0993a29a34136cdc70f7ee8247798ac69cdc6f98634bdfb8e94926853149283609856d2f146935b5e1f181058ef3158e39b8df2f52aa181ea8f4cfc22f58786409690258d514c768c3e4a60c1de62b1d7371be5d316688ea284c223c2b7718c009302cac566beace87caf0193bcc563be6e37cb962cd11d45098447856ee318012605958acd7d59d0f95e0327798ac77cdc6f97251ac7c5577930ba87aa28af81b1edaac05f207371f2d6465ef3158f09b8df2e32f6b5157c5889a08c20b3de82c9bdd52b8266a6b3e5c6cccde62b1e2371be5c55ed6a2af8b11341184167bd05937baa5704cd4d67cb8d999bcc563c46e37cb8a49bf9e0bec84eadad4f31f98a8cd9d458cdc05a9f9735734798ac789dc6f97131f9194c4af6c586d76ac672947f96285c5fa6750f2e85269f3158f14b8df2e253f2329895ed8b0daed58ce528ff2c50b8bf4cea1e5d0a4d3e62b1e2971be5c4a0a58abbf9413e46da777c49d1643b211c42bf940cba2eda8cc563c53e37cb89314b1577f2827c8db4eef893a2c8764238857f2819745db5198ac78a7c6f971262962aefe504f91b69ddf1274590ec84710afe5032e8bb6a33158f14f8df2e24c52c55dfca09f236d3bbe24e8b21d908e215fca065d176d4662b1e29f1be5c498319d14a617a0c992444271c95a994916ef01f009ba307e8dc563c53f37cb892f633a294c2f4193248884e392b532922dde03e0137460fd1b8ac78a7e6f97125e5286ab4534e5a900ddcfef1d60c34c56684a1c23e8c39e38158f14fddf2e24bb311faf37402dd4b988660632b7e4c0a77cd69444d188e0712b1e29fcbe5c4975623f5e6e805ba97310cc0c656fc9814ef9ad2889a311c0e2563c53f97cb892ea50911589d719d59dee5e40c2d5f12a989f9cad10462525c5ac78a7f3f97125d32d3483c084962df3a982a97da2407d2beb7bb61d8c4bef8c58f14fe8f2e24ba55a690781092c5be7530552fb4480fa57d6f76c3b1897df18b1e29fd1e5c4974a40e467aee8bb3a8672d0cdee7f601caa5a3134733131623263c53fa4cb892e930ddb280aa7d8f7c4b267c3d4f51e614f60a4c4e362646865c78a7f4a97125d251bb650154fb1ef8964cf87a9ea3cc29ec14989c6c4c8d0cb8f14fe952e24ba4a376ca02a9f63df12c99f0f53d479853d8293138d8991a1971e29fd2a5c4974946ed940553ec7be25933e1ea7a8f30a7b0526271b1323432e3c53fa54b892e92869c4d95753f1ff02f342654748443cf0b68eaa3326482a5d78a7f4aa7125d24f5f9c0b5b7e4680bdb34af28686e6a1dc195fb0634c91f8bbf14fe955e24ba49d4b4a6f63d2ef8433335c0d05042b6bb2df01bcc399259578e29fd2acc497493922a737747c418b1e337e4201feb4ff606a45d584324ccef2c53fa55a892e9271454e6ee8f883163c66fc8403fd69fec0d48bab0864999de58a7f4ab5125d24e216af367ec768af309abf2ffff132257c5559b20dc934dfcc14fe956b24ba49c32d5e6cfd8ed15e61357e5fffe2644af8aab3641b9269bf9829fd2ad6497493865abcd9fb1da2bcc26afcbfffc4c895f15566c83724d37f3053fa55ac92e9270c418c0ca311a7fc3ca2bfa7f77fef53dd570fec6b49a8a261a7f4ab5a25d24e170f2a71f2f9b27b31124577e6f63ccfb55a6234d39352e8c44fe956b54ba49c2d1e54e3e5f364f662248aefcdec799f6ab4c469a726a5d1889fd2ad6a9749385a3ca9c7cbe6c9ecc44915df9bd8f33ed56988d34e4d4ba3113fa55ad52e9270b40565e844a3f65c405ef1e72fa844a5a57f5402999a98ea237f4ab5ab5d24e1670acbd08947ecb880bde3ce5f50894b4afea805333531d446fe956b56ba49c2ce1597a1128fd971017bc79cbea1129695fd500a666a63a88dfd2ad6ad7493859c2b2f42251fb2e202f78f397d42252d2bfaa014ccd4c7511bfa55ad5ae9270b38565e844a3f65c405ef1e72fa844a5a57f5402999a98ea237f4ab5ab5d24e167038cf6141552e0ac3ab030decfef2dcaa96c2af30531ee870e956b56ca49c2cdf719ec282aa5c158756061bd9fde5b9552d855e60a63dd0e1d2ad6ad9493859be6f4fddb22b1aadc678d25fabf2299aa5074d18be4c7d45c4a55ad5b39270b37b6ab214112c97de44be6ae74fdab15d44badc8d7998fc2f8a4ab5ab6824e166f5617680cf2f923f41499bf697abc0e28421fb76f031fa0315956b56d149c2cde94eff5a4b3587013a5ffe15274ddfed02f03949dd63f5aa2c2ad6ada393859bd12a110d434170852c8cc25246921e02008cb4efb7c7ecf85955ad5b48270b37a154221a8682e10a591984a48d243c04011969df6f8fd9f0b2ab5ab6904e166f4234568db9dc249769ffcf71123ed62ffcdf161adc1fb5856656b56d219c2cde8368ad1b73b8492ed3ff9ee2247dac5ff9be2c35b83f6b0accad6ada433859bd065d6c8f9446f4e05fcc03ec40f1b6e7ee289ac76d7ed7b99a5ad5b48770b37a0b46eb77d5644c437764ce0079d9cbf7d6fd77ead7fdb11735b5ab690fe166f41519e948579efb09a6966228eba9f617a8a73231acfb63d26c6b56d220c2cde82933d290af3df6134d2cc451d753ec2f514e646359f6c7a4d8d6ada441859bd05267a5215e7bec269a5988a3aea7d85ea29cc8c6b3ed8f49b1ad5b48830b37a0a45b5c9b69ce3acfec7fd76f55460ee53fe5d3e964db2037645ab69107166f414742cb8f8072d82290cc7506a2827bf27a77ea2ec6b64212c9b56d220f2cde828d11a977adbc12c7d965b0353cfb560cef9c16b98a6c85c9946ada441f59bd05192352ef5b78258fb2cb606a79f6ac19df382d7314d90b9328d5b4883eb37a0a3246a5deb6f04b1f6596c0d4f3ed5833be705ae629b2172651ab69107d66f41464195e161ab6f8c182fa47d1dfd10e8f778cf82850642ff0a456d220fbcde828c732bc2c356df18305f48fa3bfa21d1eef19f050a0c85fe148ada441f79bd0518e6578586adbe3060be91f477f443a3dde33e0a14190bfc2915b4883ef37a0a31c570309828e288ecf9f04b6f67ed2a3b714039e8021812923b69107df6f4146373a186bb1f2b3a0570acf95e4f4036f68d44998fd4303f6486d220fbfde828c6d00433010bbc9c365e26553c1de6506cc54d58df786099091da441f80bd0518d900866021779386cbc4caa783bcca0d98a9ab1bef0c132123b4883f017a0a31b2010cc042ef270d9789954f0779941b31535637de1826424769107e02f414636402198085de4e1b2f132a9e0ef3283662a6ac6fbc304c848ed220fc05e828c6c80433010bbc9c365e26553c1de6506cc54d58df786099091da441f80bd0518d900866021779386cbc4caa783bcca0d98a9ab1bef0c132123b4883f017a0a31b2010cc042ef270d9789954f0779941b31535637de1826424769107e02f414636402198085de4e1b2f132a9e0ef3283662a6ac6fbc304c848ed220fc05e828c6c80433010bbc9c365e26553c1de6506cc54d58df786099091da441f80bd0518d90012727a2469e94e7c976dabb4c06bc0a4575e4b091322c7b5883f017b0a31b1ff24e4f448d3d29cf92edb576980d78148aebc961226458f6b107e02f6146363fe49c9e891a7a539f25db6aed301af02915d792c244c8b1ed620fc05ec28c6c7fc1fa629d025acf69c8833859df9bc2d1d6734b4459917e1ad41f80bd9518d8ff73f4c53a04b59ed3910670b3bf3785a3ace69688b322fc35a83f017b2a31b1fee0aaaffed6d165d29ed943e6fdd4edc7049152d1364612ab607e02f6646363fdb1555ffdada2cba53db287cdfba9db8e0922a5a26c8c2556c0fc05ecc8c6c7fb62aabffb5b45974a7b650f9bf753b71c12454b44d9184aad81f80bd9918d8ff6c5557ff6b68b2e94f6ca1f37eea76e38248a9689b230955b03f017b3231b1fed836c25783a7c85556a60a0ef5cb4beeff3d952d3346144f617e02f6656363fdaf6d84af074f90aaad4c141deb9697ddfe7b2a5a668c289ec2fc05eccac6c7fb5e671bb6bb7583d81264ee63cf238de3f7a29710ca1852e186f80bd9968d8ff6bb5a49c623c16a32dc96a2ef963d79efe9f1707d9130a7670ef017b32e1b1fed7540a5e4f45936e870fa0c0724715207ce8f23571f6150721ee02f665d363fdae90d5e229588d05399c0de3640d9023797ca890a3bc2a2883ec05eccbb6c7fb5d11abc452b11a0a73381bc6c81b2046f2f951214778545107d80bd9976d8ff6ba235788a5623414e670378d9036408de5f2a2428ef0a8a20fb017b32edb1fed7446af114ac46829cce06f1b206c811bcbe544851de151441f602f665db63fdae8861f482056367bc53daa98c058681a17754d2ffb92a2a27ed05eccbb7c7fb5d0f4ffb5cb79d31fb5f8219400303616ae955e85b6f5455f3db0bd997708ff6ba1d2c09121c10c67976d0f8a7fdfd20fdcd581312dba8ad8bb717b32ee21fed743958122438218cf2eda1f14ffbfa41fb9ab02625b7515b176e2f665dc43fdae8723c36a11d197c689310a8c7efeae21f300c8ea76ba2b7d2dd5eccbb897fb5d0e3047f9ae7095b53ddee17b7d7cc22665ac55faad4457149bbbd997713ff6ba1c508ff35ce12b6a7bbdc2f6faf9844ccb58abf55a88ae293777b32ee27fed7438a11fe6b9c256d4f77b85edf5f3089996b157eab5115c526eef665dc4ffdae871423fcd7384ada9eef70bdbebe611332d62afd56a22b8a4dddeccbb89ffb5d0e2847f9ae7095b53ddee17b7d7cc22665ac55faad4457149bbbd997713ff6ba1c501c05b58e01ccfe758fbd22f17aaaf3535837b685ae2adb78b32ee280ed74389f380b6b1c0399fceb1f7a45e2f555e6a6b06f6d0b5c55b6f1665dc501dae8713e7016d6380733f9d63ef48bc5eaabcd4d60deda16b8ab6de2ccbb8a03b5d0e27c6c40051ce4ca76644aaf3f83cbb5c2956e00102a71587fc6997714086ba1c4f7649262e69ff76f806224a6ff8dc9ad2588427c51e2b2a38e32ee2811d74389ed55371e7a165161b8910f75f711f18245bcc754a0c566eb1d65dc5024ae8713d9368095a103054628eee513e61a412c8625d1053e8acf7a3bcbb8a04a5d0e27b16d012b42060a8c51ddca27cc3482590c4ba20a7d159ef47797714094ba1c4f626614af30e2779b5b885a77905f62da13438670f72b3f8cf02ee2812a74389ec3583bb70e9b51b96edd7b1718b523dc21334f3deb5680bde15dc50255e8713d853c89c6ca0d05f59587bc562960a5e03d12e0d7d3ad031fc3bb8a04acd0e27b090525e640f06e6de2dc3ed44ab7a9e874d2040ba45a07e3887714095aa1c4f6110a4bcc81e0dcdbc5b87da8956f53d0e9a4081748b40fc710ee2812b54389ec2214979903c1b9b78b70fb512adea7a1d348102e91681f8e21dc50256a8713d844292f320783736f16e1f6a255bd4f43a690205d22d03f1c43b8a04ad50e27b088525e640f06e6de2dc3ed44ab7a9e874d2040ba45a07e3887714095aa1c4f611030cf20cae4303f1354a0b14eeb9b3694ecc3d08840fe150fe2812b55389ec21f619e4195c8607e26a941629dd7366d29d987a11081fc2a1fc50256aa713d843e4f4edbd867237f051f48ed33a4cb024e5f519e1e03f9f8408a04ad55e27b087b2ab0105da4a980c20b58025f3ff42c976ae5983907f5948214095aacc4f610f5556020bb4953018416b004be7fe8592ed5cb30720feb29042812b55989ec21ea36d29a23690885bffa263174f62eda5857d8bce11fd7f60950256ab413d843d36da53446d2110b7ff44c62e9ec5db4b0afb179c23fafec12a04ad56827b087a6675cc13a7a8499b7b55eedcbcf19915c0ba54f817f617c264095aad14f610f4b5acbdb21cb6bb6273784038f94914ab2c38cfafffec49c4d812b55a39ec21e9541aa0ef06d39ef063bce2f171f80bd60335c51fcfd8adc9c0256ab483d843d290f66768db0d660c444628626355fa2bb12fafff6fb175d3904ad56917b087a511ecced1b61acc18888c50c4c6abf457625f5ffedf62eba72095aad22f610f4a23d99da36c3598311118a1898d57e8aec4bebffdbec5d74e412b55a45ec21e94407460d1a5d1588d9efda5929a15b3dd3441a5bb4d8bc8dc9256ab48cd843d2870e8c1a34ba2b11b3dfb4b25342b67ba68834b769b1791b924ad56919b087a50e1d18346974562367bf6964a6856cf74d10696ed362f2372495aad233610f4a1c3a3068d2e8ac46cf7ed2c94d0ad9ee9a20d2dda6c5e46e492b55a466c21e943800732a52a7bb1056ca6bba920c12052eede8174a8bca809356ab48ce843d286f00e654a54f7620ad94d7752418240a5ddbd02e9517950126ad56919d087a50de01cca94a9eec415b29aeea48304814bbb7a05d2a2f2a024d5aad233a10f4a1bc039952953dd882b6535dd490609029776f40ba545e54049ab55a467421e943780732a52a7bb1056ca6bba920c12052eede8174a8bca809356ab48ce843d286f00e654a54f7620ad94d7752418240a5ddbd02e9517950126ad56919d087a50de01cca94a9eec415b29aeea48304814bbb7a05d2a2f2a024d5aad233a10f4a1bc039952953dd882b6535dd490609029776f40ba545e54049ab55a467421e943780732a52a7bb1056ca6bba920c12052eede8174a8bca809356ab48ce843d286f007266fdfc4c83304ca43b4c101a6885d67c70f1149502caae56919d097a50ddff70e054a56f68e351153cc0182b2f33a7a5243e262a07395dad233a13f4a1bbfd6dd301f7b5344959f73fa8284cbc8f49f68ad849541016bc5a467428e94377f967b85c9c40cb156bbb4578488fd7468e99580c8fa821d179b48ce852d286eff15b8311e557f8ad8f43511889160cb517def2751c504546f46919d0a6a50ddfe143187c778653ddd65368590a2277922a6a274635a08c31e9d233a14e4a1bbfc11243519be30a3e647396da0c3b4d4c4f8090e868411a07d4a467429d94377f812486a337c6147cc8e72db418769a989f0121d0d082340fa948ce853b286eff02490d466f8c28f991ce5b6830ed35313e0243a1a104681f52919d0a7650ddfe041e2ce58beeb475db697cf859d0c88a76b0c99f3f08d1e2a6233a14eda1bbfc073c59cb17dd68ebb6d2f9f0b3a19114ed61933e7e11a3c54c467429db4377f80e04c5eedc91345a2572ba095f398051d56f68d8f923492e998ce853b786eff01b098bddb92268b44ae57412be7300a3aaded1b1f246925d3319d0a76f0ddfe0361317bb7244d16895cae8257ce6014755bda363e48d24ba6633a14ede1bbfc06c262f76e489a2d12b95d04af9cc028eab7b46c7c91a4974cc67429dbc377f80d84c5eedc91345a2572ba095f398051d56f68d8f923492e998ce853b786eff01b024d0343efcedc766240753df266862a8995d7b21692777329d0a76f1ddfe035f49a0687df9db8ecc480ea7be4cd0c55132baf642d24eee653a14ede3bbfc06be1f5329a8ca19a0505ce377748fffb29d11b84882a49f80cb7429dbc877f80d7b3ea65351943340a0b9c6eee91fff653a23709105493f0196e853b790eff01af6095eff4ffec903f9405405ca365cf26ef3237e07927fa72ed0a76f22dfe035eb12bdfe9ffd9207f280a80b946cb9e4dde646fc0f24ff4e5da14ede45bfc06bd6257bfd3ffb240fe501501728d973c9bbcc8df81e49fe9cbb429dbc8b7f80d7ac4af7fa7ff6481fca02a02e51b2e79377991bf03c93fd3976853b7916ff01af5822024dacc2f2c24bd206849b5c2d4ee9de7a3c7627fc16ee0a76f22efe035eaf44049b5985e58497a40d0936b85a9dd3bcf478ec4ff82ddc14ede45dfc06bd5e141b8f5fe22d8be714e03a65671363a2262b4dd59ff1ffb929dbc8bcf80d7abb28371ebfc45b17ce29c074cace26c7444c569bab3fe3ff7253b79179f01af576506e3d7f88b62f9c5380e9959c4d8e8898ad37567fc7fee4a76f22f3e035eaec2ceed3abe7cee1f073c7fb232ef9450bdd9ccaa9ff91a1ca4ede45e8c06bd5d759dda757cf9dc3e0e78ff6465df28a17bb399553ff2343949dbc8bd180d7abae3fcda75c759e0a799be61484b2433c2a22b586a4fe482b2a3b7917a401af575b0bada765c19e97ab049251015ae4a04ef1ad6946fc91fa5576f22f49035eaeb5175b4ecb833d2f560924a202b5c9409de35ad28df923f4aaede45e9206bd5d6a2eb69d97067a5eac124944056b92813bc6b5a51bf247e955dbc8bd240d7abad45d6d3b2e0cf4bd582492880ad72502778d6b4a37e48fd2abb7917a481af575a846eccf08f04bfd6815eb380da4a82ce9c718f06cc92149586f22f49135eaeb4f19ebf6beb6fa7d87f89c98133fae81ce3a743cd6924436b1de45e9236bd5d69d33d7ed7d6df4fb0ff13930267f5d039c74e879ad24886d63bc8bd246d7abad3a67afdafadbe9f61fe272604cfeba0738e9d0f35a4910dac77917a48daf575a745b720ea28e366ef791aae891f3d2366c7fe442b19223598ff22f491c5eaeb4e742f675f1f2cf60a6f01bf91bde0294d3ac0ae16024485720e45e9239bd5d69cd11ff4490bc014405acfe1a2fb26351a204581ebd48925242c8bd24747abad39923fe89217802880b59fc345f64c6a34408b03d7a9124a485917a48e8f575a73247fd1242f0051016b3f868bec98d468811607af52249490b22f491d1eaeb4e641c0c7d32b66ca2e534b6f9758978b50acf0351e74494361745e923a4d5d69cc73818fa656cd945ca696df2eb12f16a159e06a3ce89286c2e8bd24749abad398e7031f4cad9b28b94d2dbe5d625e2d42b3c0d479d1250d85d17a48e93575a731c6c76424289c799e1727df3a44223d051245ceb3724a354bb2f491d27aeb4e63764fedd31e9f1b67ab1c20f407aa5c89cf4fc326b49484d775e923a505d69cc6d56101310aa45efad304a4678eba9b934963ac0d392923eefbd2474a1bad398d938327ece2aee62122d5ab4e9cdb19a63d8b7dda4252621e07a48e94475a731b17064fd9c55dcc4245ab569d39b6334c7b16fbb484a4c43c0f491d288eb4e63626cdc53e5821c0b008230fb9f2d24918a0f21d28d949a2b82e923a512d69cc6c365cb0077da9a98b8d1281f3650a74b0eca8601182935fb06d2474a26ad398d8557a8599c8b97b4296f16666497acbe18414e5e2d526d9a0ea48e944e5a731b093b630be5ed91eb0aaaf2f4c125b7a42b2edf1857a4dcd81e491d289db4e6361102d87078b18658cd22ac117a41cd70510a008cac49bb543d923a513c69cc6c2105b0e0f1630cb19a455822f4839ae0a2140119589376a87b2474a278d398d8420b61c1e2c61963348ab045e90735c144280232b126ed50f648e944f1a731b08416c383c58c32c66915608bd20e6b8288500465624ddaa1ec91d289e34e6361082d87078b18658cd22ac117a41cd70510a008cac49bb543d923a513c69cc6c2105b0e0f1630cb19a455822f4839ae0a2140119589376a87b2474a278d398d8420422e76d937f8b60077ca868869ba3c3d2c65870f6ed6b3658e944f1b731b083f106f465f4653eeb8bc5b3508c9d2a075050d6a1bddaf0acc1d289e37e636107d20de8cbe8ca7dd7178b66a1193a540ea0a1ad437bb5e15983a513c6fcc6c20fa41bd197d194fbae2f16cd423274a81d41435a86f76bc2b3074a278df98d841f40f8c8ba70901f87daf9fd03e44f32ba2d4adacdbed79fa61e944f1c031b083e71f19174e1203f0fb5f3fa07c89e65745a95b59b7daf3f4c3d289e380636107ce3e322e9c2407e1f6be7f40f913ccae8b52b6b36fb5e7e987a513c700c6c20f9c0876b5e51e7246a549c4a9ea1df7851151afc2dc6bd177104a278e028d841f3710ed6bca3ce48d4a938953d43bef0a22a35f85b8d7a2ee20944f1c051b083e6e21dad79479c91a952712a7a877de144546bf0b71af45dc41289e380a36107cdc43b5af28f392352a4e254f50efbc288a8d7e16e35e8bb882513c70146c20f9b8137db6febd86ed0c6910c699d5d6790fc73e89c3bd191505a278e029d841f36f26fb6dfd7b0dda18d2218d33abacf21f8e7d13877a322a0b44f1c053b083e6de4df6dbfaf61bb431a4431a675759e43f1cfa270ef464541689e380a76107cdbc280010a2c299eb1b154c5cc6a511f078e636aa1ae8ca4c2e13c7014fc20f9b77500021458533d6362a98b98d4a23e0f1cc6d5435d194985c278e029f841f36ee2c129b37e0ca2f2421f79b128aa5e9de451d0468a32ad4b94f1c0540083e6ddb5825366fc1945e4843ef3625154bd3bc8a3a08d14655a9729e380a80107cdbb63c5cc58c598b3f4854a4944220f5cf73c0b66d9f8cacf6e63c70150120f9b76b04cbe3c589790148760f507c3849c6e22daf373c195b91cd78e02a0341f36ed50997c78b12f20290ec1ea0f870938dc45b5e6e7832b7239af1c0540683e6ddaa132f8f1625e40521d83d41f0e1271b88b6bcdcf0656e4735e380a80d07cdbb54265f1e2c4bc80a43b07a83e1c24e37116d79b9e0cadc8e6bc701501a0f9b76a84cbe3c589790148760f507c3849c6e22daf373c195b91cd78e02a0341f36ed50258ed15e0582abc68eb0377eff970440622943802b73ddb01c0540693e6dda9f4b1da2bc0b05578d1d606efdff2e0880c452870056e7bb60380a80d27cdbb53e224d9e24ec6d31d2078705f3f4ba38fc34e769fdadd11ac1701501a5f9b76a7b449b3c49d8da63a40f0e0be7e97471f869ced3fb5ba23582e02a034bf36ed4f61548d140881749ffeae23fc7c9470beb7fe003f3b7460f06c0540698e6dda9eb2a91a281102e93ffd5c47f8f928e17d6ffc007e76e8c1e0d80a80d31cdbb53d655234502205d27ffab88ff1f251c2fadff800fcedd183c1b01501a639b76a7ac3658e2b1171cd2b723d8263640968756ab427b9aba321c3702a034c836ed4f576cb1c5622e39a56e47b04c6c812d0ead5684f7357464386e054069906dda9eae6575e37132d5cd945c26c0d0f8b84555594c4a67e8ca14dd0a80d321dbb53d5b56fe1f8f3c0e1de08513a999e7ceb2a55edaf0ccd195cdbb1501a644b76a7ab53a0e97cb4e7ebe78d6ed7b2bc5fb8d4569f83d96a32d3f772a034c8a6ed4f569002f8843735fffa97aa11e4f825542858032d72a465c22ef54069915dda9ead1005f1086e6bfff52f5423c9f04aa850b0065ae548cb845dea80d322bbb53d5a200be210dcd7ffea5ea84793e09550a1600cb5ca919708bbd501a645776a7ab44017c421b9afffd4bd508f27c12aa142c0196b95232e1177aa034c8aeed4f568802f8843735fffa97aa11e4f825542858032d72a465c22ef54069915dda9ead1005f1086e6bfff52f5423c9f04aa850b0065ae548cb845dea80d322bbb53d5a200be210dcd7ffea5ea84793e09550a1600cb5ca919708bbd501a645776a7ab44017c421b9afffd4bd508f27c12aa142c0196b95232e1177aa034c8aeed4f568802f8843735fffa97aa11e4f825542858032d72a465c22ef54069915dda9ead1005f1086e6bfff52f5423c9f04aa850b0065ae548cb845dea80d322bbb53d5a2004a33667a566128a2513f66014b683dfb779f0516708d61511a645777a7ab43ff207925a18324d3fc6f44f3fa8d2ea3f19b806629e11c66a334c8aef04f5687fd40f24b430649a7f8de89e7f51a5d47e33700cc53c238cd4669915de09ead0ffa0df6ef32e2f5d2a989d9f7e22b18b7c11a43f4a484733e8dd322bbc23d5a1ff31bedde65c5eba55313b3efc456316f823487e94908e67d1ba64577847ab43fe637dbbccb8bd74aa62767df88ac62df04690fd29211ccfa374c8aef08f5687fcc6fb7799717ae954c4ecfbf1158c5be08d21fa5242399f46e9915de11ead0ff986b814bdb05bfad506a65a61aa7e9a40c5081a64547358cde322bbc24d5a1ff2f6314f062e1e1dd58a191742d463170134d45a8878e6cbdbd6457784aab43fe5d523c39729a263d690fe9105282c1082146cdad0c1cdb1f7bc8aef0965687fcb9308acb920aaefd89ec98489cfbe0383d39ddb61539b7e2f8915de12dad0ff97161159724155dfb13d9309139f7c0707a73bb6c2a736fc5f122bbc25b5a1ff2e24e3d86f5011e78df7f274a6be5df08ef93b93451e6e12fe3457784b7b43fe5c3288d6696d89f7476cb14bccfc21c39d9d3b4c4a0cdc403c78aef0970687fcb85511acd2db13ee8ed9629799f843873b3a76989419b88078f15de12e0d0ff970a2e47f30838e05492f9191b36fecf0f61fb156e803711b31f2bbc25c2a1ff2e135c8fe61071c0a925f232366dfd9e1ec3f62add006e23663e57784b8543fe5c26453224cdb9e3d503b12a94d3f19a6582989815fddc48707daef0970b87fcb84b1676a2484a2a2cbf2f1b519fd992f2ffdd7287f8b89284fc5de12e180ff970952ced44909454597e5e36a33fb325e5ffbae50ff1712509f8bbc25c301ff2e12a59da892128a8b2fcbc6d467f664bcbff75ca1fe2e24a13f17784b8603fe5c2543fc76aef27b3e8b145a0b4f6c2f5bff997d69bc2c495cbe3ef0970c17fcb84a70ba12e8b25ca541a580791e57c49a7eddbef9382892d3bc8de12e183ff97094d17425d164b94a834b00f23caf8934fdbb7df2705125a7791bc25c307ff2e129a2e84ba2c97295069601e4795f1269fb76fbe4e0a24b4ef23784b860ffe5c25345d0974592e52a0d2c03c8f2be24d3f6edf7c9c144969de46f0970c1ffcb84a684625415f3307c45d4d3f464fbaf8a6d86b3b942592d5608ee12e1840f97094cf185cdb6b3c720b726744b4976c4f75ab82b9844825ac651ec25c3082f2e1299d30b9b6d678e416e4ce89692ed89eeb57057308904b58ca3d84b86105e5c2533a61736dacf1c82dc99d12d25db13dd6ae0ae6112096b1947b0970c20bcb84a6744ef93406b9f2de4b06ebccb358d9d556c20e7e3e2d64ccf712e1841897094ce72a04c0ba4a483f4dda9dc15ea811d2a8305f58795acb3def25c308322e1299cd5409817494907e9bb53b82bd5023a55060beb0f2b5967bde4b8610645c25339a34255b95ff837fef373d2d7296a5729b6dbfbde26b2e9bbd970c20c9b84a6733684ab72bff06ffde6e7a5ae52d4ae536db7f7bc4d65d377b2e1841937094ce665ca7c704d4708274a9baddc250f3f26863415386acbc12f75c308327e1299ccb4561e6b67f4387a1203be37c98460ccb72c5030a5979c9efb8610650c253399516d62619d4e991fa0d3deef126ea419191cc6211b2f537e070c20ca284a673292dac4c33a9d323f41a7bdde24dd483232398c42365ea6fc0e1841945094ce6525b58986753a647e834f7bbc49ba9064647318846cbd4df81c308328a1299cca442c3897b7daf128836b59f812db034873aa56c8a97ab6304861065152533994711996ba3d1c0a7c83a3166fa51be9109218d35122f586a0a0c20ca2b4a67328d2332d747a3814f907462cdf4a37d2212431a6a245eb0d4141841945694ce651a4665ae8f47029f20e8c59be946fa44248634d448bd61a828308328ad299cca3418ddb5cb6467c0f99e515fca8452b043b8ac048e7ac4f4516106515b5339946731bb6b96c8cf81f33ca2bf9508a560877158091cf589e8a2c20ca2b6a67328ce6376d72d919f03e679457f2a114ac10ee2b01239eb13d1458419456d4ce6519c53000707f9a08a84bf51264c18f3aa1871a28070d629468c08328adb99cca337321266bcc9a397c14b68749028457c2b8f875cdeac543119106515b83399466d6424cd7993472f8296d0e920508af8571f0eb9bd58a8623220ca2b7067328cda545bf39ffcf0e1bcfa67fa38977418a8ea5fcf77b1526865419456e1ce6519b334ca3fecd0444631c1961c692546594c8101faec62a674cb8328adc49cca336569947fd9a0888c63832c38d24a8cb2990203f5d8c54ce99706515b89399466ca5f3b586017739b7ed31e999c8b778d2cb04a47ae8a9b772f0ca2b7137328cd934a89096d0549b9b573035b310d4d42540cd6eb5a1538925f19456e27e6519b2521246b86e0f5f622b2ccde5a10f8aca2c5f032b12a72c8bf328adc50cca336494248d70dc1ebec456599bcb421f159458be0656254e5917e6515b8a199466c9210a406c85a3a5b4297f9a1603a40da85c40326c1a9ccc6fdca2b7144328cd92321480d90b474b6852ff342c07481b50b88064d8353998dfb9456e2886519b24642901b2168e96d0a5fe68580e9036a17100c9b06a7331bf728adc510ca33648c11328eefa8355ccc8c9332f9c864fc28cc5b920a4e67dbef515b8a229466c91722651ddf506ab999192665f390c9f85198b724149ccfb7dea2b7144528cd922e44ca3bbea0d57332324ccbe72193f0a3316e4829399f6fbd456e288a519b245c15a6d02a180d691c315fbfc6398609410f1eec4f7340837b8adc5115a33648b72b4da054301ad23862bf7f8c730c12821e3dd89ee68106f715b8a22b466c916e569b40a86035a470c57eff18e61825043c7bb13dcd020dee2b7144568cd922dc3948d9fd96cdcb9957c42629c28e72032539be789a05bfdd56e288ae19b245b77291b3fb2d9b9732af884c53851ce4064a737cf1340b7fbaadc5115c33648b6e7135c0a33199b11d2bd6c09f0097f007412955df6818a3765b8a22b966c916db6e7dd9f33995e4f22473a935f78e08092e9507bbd032eaedb7144573cd922db5690e0c93498e4c9c15ad7a63e57a380d096c6b74a06779dc6e288ae89b245b695e2e71d3697f1beff8211cbfc1529814bf1b32e640d097b9dc5115d23648b6d1486f3c53a960ba97bd086177790358242a78c1c981a2d374b8a22ba56c916da11cf0d1542923f7e746d6eae6e864d8430133df9003474aea7144574bd922db4139e1a2a85247efce8dadd5cdd0c9b0860267bf20068e95d4e288ae97b245b68273c34550a48fdf9d1b5bab9ba193610c04cf7e400d1d2ba9c5115d2f648b6d047398e34e1f8241f2037d7f2f3984ea12b5e1587d1a3bfb548a22ba5fc916da0773441f491567069bd3c126566967fc2018050cf734799aaa144574c0922db40d729a973f01308fef744874a4c92e203adc4c75eb68f4d955288ae982245b68197147872ad8c3a296b557114188ba687064db47d3d1eb56ab5115d30548b6d0316ea1670287e9c7e537744a7b07d2f8db75f8eba4a3d85157a22ba60b916da061695526b1e63612823baebcee060419b19834334647b246b044574c1822db40c15ebca610a2cea7bc4423a1d402665b5ddcaac2898f66316188ae983145b68181498ba4ce1bffd230550d6b9ffb2adeb66597e1101ece06c4115d30638b6d03011f29a2490e62271876e0ff37ecb3e56777721e1d3d9db18922ba60c816da06013e5344921cc44e30edc1fe6fd967caceeee43c3a7b3b63124574c1902db40c0208b8e1d10feb1f19a84a24d7a92dbd988a0ad471f6786a258ae983215b6818031171c3a21fd63e33509449af525b7b311415a8e3ecf0d44b15d30642b6d0300622e387443fac7c66a128935ea4b6f662282b51c7d9e1a8962ba60c856da0600c45c70e887f58f8cd425126bd496decc45056a38fb3c3512c574c190adb40c01817a075bdd514745251687572893a01834cefa31c67884659ae983216b681802f2f40eb7baa28e8a4a2d0eae51274030699df4638cf108cb35d30642d6d03005e5e81d6f75451d14945a1d5ca24e8060d33be8c719e211966ba60c85ada0600bc4916069b7f06254a5809d38c402e341513bf74e03c43d6ce74c190b6b40c01771e3e65e3d46ecd4c7cd9cf1076ba9024d3c145bd7889519de983216e681802ed3c7ccbc7a8dd9a98f9b39e20ed752049a7828b7af112a33bd30642dcd03005da050bf03c281db7e9c02d6439d148688dfb4772f2e226ea78a60c85baa0600bb30a17e078503b6fd3805ac873a290d11bf68ee5e5c44dd4f14c190b7540c01766142fc0f0a076dfa700b590e74521a237ed1dcbcb889ba9e2983216ea81802ecc285f81e140edbf4e016b21ce8a43446fda3b9797113753c530642dd503005d9850bf03c281db7e9c02d6439d148688dfb4772f2e226ea78a60c85baa0600bb302d906031da197fefd272af321f6b39ba1530ba5944def315c190b7550c01765f5b20c063b432ffdfa4e55e643ed673742a6174b289bde62b83216eaa1802ecbe4253d9743ec882771690e4c0740b0ee301054562137d70580642dd553005d97b10ba0b9553f387a5f9e7f178de7445c0ae4ce6c126fc84b10c85baab600bb2f52174172aa7e70f4bf3cfe2f1bce88b815c99cd824df90962190b7556c01765ea42e82e554fce1e97e79fc5e379d11702b9339b049bf212c43216eaad802ecbd411e2b55775febfe79c05b3beea0056001ea9920637e5c989642dd55c005d97a723c56aaeebfd7fcf380b677dd400ac003d53240c6fcb9312c85baab800bb2f4e478ad55dd7faff9e7016cefba80158007aa64818df97262590b7557001765e9c1b280368865881f4acf3c5ef4660d7fba18eec2ebf2ff04c216eaae102ecbd37365006d10cb103e959e78bde8cc1aff7431dd85d7e5fe09842dd55c205d97a6e6ca00da2196207d2b3cf17bd19835fee863bb0bafcbfc13085baab840bb2f4dc655273f10926925d346457722964e7d7b8b9bd72f98126620b7557091765e9b756b7408ee8afa772358ed6dc4927f7aa1db5d6e2f303f0c516eaae132ecbd36d3980d9caa7c1d19c37e3d5b088ae174ee7ae09c2e609858b2dd55c275d97a6d97301b3954f83a3386fc7ab61115c2e9dcf5c1385cc130b165baab84ebb2f4db27215bfd77569c928ac557eba191685364afa83089827ba2db755709e765e9b63703dd85bc13615092571256c288b32674237620e3051185c6eaae13decbd36c56c8e096458ceacca17a872d047748cc930b1201960a3d4b9dd55c27cd97a6d89652e6b7587ffdc4bfc170d988547418d0da49c2fc1494d74baab84fab2f4db11566f2f97e6623b4fc4f4432900ecab14c78b945c82943eea755709f665e9b62138f0b7dca326f95756aeae49f8377e243b5984b6052a21d5eaae13edcbd36c4171e16fb9464df2aead5d5c93f06efc4876b3096c0a5443abd55c27db97a6d8826fd5381f62fe68152780e11fd73c208b99a86ed514aa2b58aab84fb82f4db1036bbcc8eb9c5f52e21bc7ea37a4d66911df9339a72955fab255709f715e9b6205638bea840f21287c0455fc67400afa1e6b68cf4b52ad9965aae13ee3bd36c409532a2db4f4a4d3afd57220c676741c378313fa93a55cd6cc55c27dc87a6d88113266b416bfac2a1777aa6984e3466069b26a51244abb5199ab84fb91f4db102164cd682d7f58542eef54d309c68cc0d364d4a2489576a3335709f723e9b6204255ad2907d5132b15ab6fce0b8377a9a175eba08e2aeeea67ae13ee48d36c4083376caabc8088d8e323a5c40efd4d7b3d98199d1955df78d05c27dc92a6d881056ed955790111b1c6474b881dfa9af67b30333a32abbef1a0b84fb9254db1020a69c5039ed885e6445b5d3833eb9414f10ca8d062577f8742709f724b9b6204135f9c5fea876e4f408380985fcd8651dcc593fcc1af00b285e13ee49836c408254b4b1881e53f2138d3c758b7916acbb4376a55805e03090cc27dc9316d88104922a889b0a0e0c5297454d9671933bf631b1706fdbc07b61a84fb9263db1020914551136141c18a52e8a9b2ce32677ec6362e0dfb780f6c3509f724c7b620412216b47f6f59e5975d9e198d945b2d2587189e77f3f0207c6b13ee49906c4082432d68fedeb3cb2ebb3c331b28b65a4b0e313cefe7e040f8d627dc9320d88104865ad1fdbd67965d76786636516cb4961c6279dfcfc081f1ac4fb92641b102090c41b65427a58f3da4bd92949acfc7543371361b9c810587599f724c84620412170f7f00fc2180fe0147eb512d95ecd0618eae9336020cb2b43ee49909c408242d1efe01f84301fc028fd6a25b2bd9a0c31d5d266c041965687dc932138810485a3dfc03f08603f8051fad44b657b341863aba4cd80832cad0fb926427102090b4080a608de26a72c20c20b164a5c4ab0721b6f5ad106739a2f724c84f204121671014c11bc4d4e584184162c94b89560e436deb5a20ce7345ee49909e408242ce2029823789a9cb083082c5929712ac1c86dbd6b4419ce68bdc93213c8104859c4053046f1353961061058b252e2558390db7ad688339cd17b926427902090b380cb8618afd09aed88ed13e4252a8d86cc7b1b6ce06753e30724c84f30412166f1970c315fa135db11da27c84a551b0d98f636d9c0cea7c60e49909e608242cde32e1862bf426bb623b44f9094aa361b31ec6db3819d4f8c1c93213cc104859bc65c30c57e84d76c47689f2129546c3663d8db67033a9f183926427982090b3785798715ca6fd7040b9da0c1d20ebaec7275dc8dd6755870824c84f31412166ef3b433b66245d6339407a403238358588fafdedb7ceacb21149909e638242cddd0298cf791f1d492a4dbaa85c66c9330ca23e376c9d5b082393213cc804859bb905319ef23e3a92549b7550b8cd926619447c6ed93ab6104726427990090b37720a633de47c7524a936eaa1719b24cc3288f8ddb2756c208e4c84f32012166ee414c67bc8f8ea49526dd542e33649986511f1bb64ead8411c9909e640242cddc8298cf791f1d492a4dbaa85c66c9330ca23e376c9d5b082393213cc804859bb905319ef23e3a92549b7550b8cd926619447c6ed93ab6104726427990090b37720324636f49db4cd4b3b703f11a8aaeb233bd0372456c3ace5c84f32022166ee3f648c6de93b699a9676e07e235155d64677a06e48ad8759cb909e640442cddc7e552b347f4d35b7e4ba87243e9909d4879b83388e5b105798213cc809859bb8fb3668c1ab70cdf28141d470752871d109e348cd19b6225331427990140b3771f56cd18356e19be50283a8e0ea50e3a213c6919a336c44a66284f32028166ee3ea65b55f5a999a4cbcd417e9cc98256c2239659063d88af0c609e640512cddc7d3577d176209971c3174f5fb9126a9003f1f0d7cc4b117858d13cc80a359bb8fa53b0c8770e990bb1ab6b21f1a43b02878ea5d55866230af1b27990147b3771f49022b678ea983f8ed3a2a662c7dbe78ec80fd0709c46302374f32029066ee3e910456cf1d5307f1da7454cc58fb7cf1d901fa0e1388c6046e9e640520cddc7d2208ad9e3aa60fe3b4e8a998b1f6f9e3b203f41c27118c08dd3cc80a419bb8fa44115b3c754c1fc769d1533163edf3c76407e8384e231811ba799014833771f48822b678ea983f8ed3a2a662c7dbe78ec80fd0709c46302374f32029066ee3e910456cf1d5307f1da7454cc58fb7cf1d901fa0e1388c6046e9e640520cddc7d22016ec3c573760be06575fb31765fc631aeb841e6e18c231d4cc80a41abb8fa43f2dd878ae6ec17c0caebf662ecbf8c635d7083cdc318463a999014835771f487e5bb0f15cdd82f8195d7ecc5d97f18c6bae1079b86308c7533202906aee3e90fc43743b66916872ea87c3c0b3264140d208634f6dc61332a7640520d6dc7d21f712facf79f933688cdc4da95e42e0a99ebd08fad88c28094fc80a41aeb8fa43ed25f59ef3f266d119b89b52bc85c1533d7a11f5b11850129f9014835d71f487da4beb3de7e4cda2337136a5790b82a67af423eb6230a0253f202906bae3e90fb423e8d47c9ffdc71eaf3372ea0d6374f0948a32c16141ee7f40520d76c7d21f6747d1a8f93ffb8e3d5e66e5d41ac6e9e129146582c283dcfe80a41aed8fa43ece1bb5aa9f56599f328993f3a02bebfbbcfe6b270285095dfe014835dc1f487d9b376b553eacb33e651327e74057d7f779fcd64e050a12bbfc02906bb83e90fb366ed6aa7d59667cca264fce80afafeef3f9ac9c0a142577f80520d7707d21f66c69bfada7892f7c4c1965c4f955be05e29f9b9411284c93f10a41aee1fa43ecd75f91b3fbe8c17b4fff91b1eaa1da33bfeb79841f509acbe314835dc4f487d9ad4b35c0a4a7e57957cbe98bcd3a128f7a8335643ba1373bc72906bb8ae90fb359227dd9f6262d756764993f926a8346efb2ad247442701b8f520d7716d21f66b144fbb3ec4c5aeacec9327f24d5068ddf655a48e884e0371ea41aee2da43ecd621609c0856f1858555f2b2641a06b43b976f6edce09c2123e4835dc5c487d9ac32c13810ade30b0aabe564c8340d68772ededdb9c1384247c906bb8b890fb358658270215bc6161557cac990681ad0ee5dbdbb738270848f920d7717121f66b0c3c605cd84f254562c61f5a04f9b845c663f9ca6d4e1235f341aee2e343ecd61704d3125d74ad0d7d5904dc01e9ceb3877435f0d79c260fe7835dc5c787d9ac2d09a624bae95a1afab209b803d39d670ee86be1af384c1fcf06bb8b8f0fb3585a134c4975d2b435f564137007a73ace1dd0d7c35e70983f9e0d77171e1f66b0b4269892eba5686beac826e00f4e759c3ba1af86bce1307f3c1aee2e3c3ecd61684d3125d74ad0d7d5904dc01e9ceb3877435f0d79c260fe7835dc5c787d9ac2d02674a45b6c043262ed61a835303498e9330076f084c3a0f16bb8b8f1fb35859f4ce948b6d80864c5dac3506a606931d26600ede1098741e2d77171e3f66b0b3e25e4ea1a86734c43824cc8ccb7308b9f784437bf131027c6aee2e3c8ecd6167b4bc9d4350ce69887049991996e61173ef0886f7e26204f8d5dc5c791d9ac2cf623a60116f02fb3c5d5f94b2ad32056788d533af94c42431bbb8b8f24b35859eb474c022de05f678babf29655a640acf11aa675f29884863777171e4966b0b3d61aaa5d08972151cf24ab54a342df81dce18f47e2310ab06fee2e3c93cd6167ab3554ba112e42a39e4956a94685bf03b9c31e8fc4621560dfdc5c79279ac2cf566aa974225c85473c92ad528d0b7e0773863d1f88c42ac1bfb8b8f24f35859eac616540f18f6d1130f220cd120d5a36e1b8bc9b0e885727807171e49f6b0b3d574edcda8ff53ca519b107c21c111295be1dbb921a10aff301e2e3c93fd6167aad29cc0dccc0dbcceb2ed5ac3018835376e7b9803121618a04c5c79280ac2cf55953981b9981b799d65dab58603106a6edcf73006242c314098b8f25015859eab233428fdfd9d1b664881cd8b8586b75d64b285cc18587cc14171e4a03b0b3d56366851fbfb3a36cc91039b170b0d6ebac9650b9830b0f98282e3c94076167aac6591c982c3da95c49ed398ad9580bff53d8e3cf031620d4515c79280fc2cf558b3e4b890551b53b4ba7393daaa67626a25e09fa032c434ca3b8f25020859eab1508a96ab779ccf94f1b38a34d434a753f6856500358883d4871e4a0420b3d56291152d56ef399f29e3671469a8694ea7ed0aca006b1107a90e3c94084167aac5222a5aadde733e53c6ce28d350d29d4fda159400d6220f521c79281082cf558a4454b55bbce67ca78d9c51a6a1a53a9fb42b2801ac441ea438f25021059eab14816a90424733217a980505ccc2b057bf131a75c32888578881e4a0421b3d5628f2d520848e6642f5300a0b998560af7e2634eb865110af1103c94084367aac51e5aa41091ccc85ea601417330ac15efc4c69d70ca2215e22079281086cf558a3c415a79d06ff34003cf490e594e8a0784397d3d91442d6841f250210e9eab14770ec74c4db64902bf6b5844aa937237031f3cd71f885c7484e4a0421e3d5628ed1d8e989b6c92057ed6b0895526e46e063e79ae3f10b8e909c940843c7aac51da3b1d3136d9240afdad6112aa4dc8dc0c7cf35c7e2171d21392810878f558a3b4024cbb1a88aa98b327884d4c91efe013a62914f942e54828250210f2eab1476704997635115531664f109a9923dfc0274c5229f285ca90504a0421e5d5628ece0932ec6a22aa62cc9e21353247bf804e98a453e50b9520a0940843cbaac51d9c1265d8d44554c5993c426a648f7f009d3148a7ca172a414128108797558a3b3824cbb1a88aa98b327884d4c91efe013a62914f942e54828250210f2eab1476704997635115531664f109a9923dfc0274c5229f285ca90504a0421e5d5628ece01f411f4f0108af81aed97b1c72562ce436879a4db953ae0a40843cbbac51d9bf3e823e9e02115f035db2f638e4ac59c86d0f349b72a75c148108797758a3b37e0916d5e8da8540be882c1469bfb6db8b8660c533e5505c2a0210f2efb14766fb122dabd1b50a817d105828d37f6db7170cc18a67caa0b8540421e5df628ecdf6245b57a36a1502fa20b051a6fedb6e2e198314cf954170a80843cbbec51d9bec48b6af46d42a05f44160a34dfdb6dc5c3306299f2a82e1501087977d8a3b37d81d7fb73a7eb68ea04f876e93f1cbe0b3124eaf3b550766a1210f2efc14766faf3aff6e74fd6d1d409f0edd27e397c166249d5e76aa0ecd42421e5df828ecdf5e02113596d13cbd390ae3e247bd8daac6f57d18ea541f3e85843cbbf151d9bebb04226b2da2797a7215c7c48f7b1b558deafa31d4a83e7d0b087977e2a3b37d760844d65b44f2f4e42b8f891ef636ab1bd5f463a9507cfa1610f2efc54766faec1089acb689e5e9c8571f123dec6d5637abe8c752a0f9f42c21e5df8a8ecdf5d82113596d13cbd390ae3e247bd8daac6f57d18ea541f3e85843cbbf151d9bebb04226b2da2797a7215c7c48f7b1b558deafa31d4a83e7d0b087977e2a3b37d760105fbe612591d0fa85beb9e759c8d9b80b88969207d145620f2efc55766faebf20bf7cc24b23a1f50b7d73ceb391b37017112d240fa28ac41e5df8aaecdf5d7e417ef984964743ea16fae79d672366e02e225a481f4515883cbbf155d9bebafc0f104bb602f10a8bfabbf732c4a4f5bb0887108d3e8bcf117977e2acb37d75f71e20976c05e21517f577ee658949eb76110e211a7d179e22f2efc55966faebee3c412ed80bc42a2feaefdccb1293d6ec221c4234fa2f3c45e5df8ab2cdf5d7dc0494b65cedead717a2a5e18e1b85d5d2f07ae066f4601c8ccbbf15669bebafb709296cb9dbd5ae2f454bc31c370baba5e0f5c0cde8c03919977e2acd37d75f6e1252d973b7ab5c5e8a9786386e17574bc1eb819bd18072332efc559a6faebedc24a5b2e76f56b8bd152f0c70dc2eae9783d70337a300e4665df8ab34df5d7db8494b65cedead717a2a5e18e1b85d5d2f07ae066f4601c8ccbbf15669bebafb701ea9244a93bd65ac218259bb6718e258bb9e68db8c05359a77e2acd47d75f6df3d524895277acb584304b376ce31c4b1773cd1b7180a6b34efc559a8faebedbe06b6e9d72558196852cf8ee592c1b15d9abbff6b30167a6adf8ab352f5d7db7b0d6dd3ae4ab032d0a59f1dcb258362bb3577fed6602cf4d5bf1566a5ebafb6f61adba75c956065a14b3e3b964b06c5766aeffdacc059e9ab7e2acd4bd75f6dec35b74eb92ac0cb42967c772c960d8aecd5dffb5980b3d356fc559a97aebedbd86b6e9d72558196852cf8ee592c1b15d9abbff6b30167a6adf8ab352f5d7db7b062ef93918165afc226b804aa4e9453ae03c2496302d0f15cf1566a5fbafb6f5f51f17fcfd92de23c1a36314c9386cf56b3c6eec305a386bae2acd4c075f6debd2ff5584c88be473001328a911d6bc6a813d039830b48b176c559a981ebedbd795feab099117c8e60026515223ad78d5027a07306169162ed8ab35303d7db7af24be7b9def95b9f77d190523c6c0d429afb8342092d2469dc1566a608afb6f5e323e1cc6ac919c1a76fe6cc70ce78ad30a348e00f5a4a77b92acd4c125f6debc547c398d59233834edfcd98e19cf15a614691c01eb494ef72559a9824bedbd78a1b998a57fac989558c6159bb3040dcbd3965dc3a692b82e5ab35304a7db7af13373314aff59312ab18c2b3766081b97a72cbb874d25705cb566a6094fb6f5e266e66295feb262556318566ecc10372f4e59770e9a4ae0b96acd4c129f6debc4c68deab6cacaecd642fd0f5d178650de477713dd0495dbb2e59a98254edbd78975dcfaf862fc01d802c68139ae72843c39b24d79d92bd1a5db35304aadb7af12d47b1b7b935e2bdb825964f2dc4aeaf81e28c0b38257bd8bc66a60956b6f5e2591b75c81f4227fe2817f2c6537fbb86fe715a726d4af95579cd4c12ae6debc4b136eb903e844ffc502fe58ca6ff770dfce2b4e4da95f2aaf39a98255cdbd789626dd7207d089ff8a05fcb194dfeee1bf9c569c9b52be555e735304ab9b7af12c467c099a6e7a273f88c5c5a93f43a5fee3715ef6757cc4fcf6a6095746f5e25875b938bfaa5a76aa8e57edd1fded2e7d71a6e3acbaf9a439fd4c12ae9debc4b0d433970a221b1580997c3e237b403f7a8e11ed1945f362b40a98255d4bd789619128539f119c532cafc4dec675e66174c6e7fff25be6dfa825304abaa7af12c31250a73e2338a6595f89bd8cebccc2e98dcfffe4b7cdbf504a6095754f5e258624a14e7c46714cb2bf137b19d79985d31b9fffc96f9b7ea094c12aea9ebc4b0c4203c2835a48c190faf358b32e98ee25e2042552af371781398255d54d78961874078506b4918321f5e6b1665d31dc4bc4084aa55e6e2f027304abaa9af12c30e0d02f9836892e6f6899c54c39c99b1732d4bb0a8cdc7844f609575545e25861b1a05f306d125cded1338a987393362e65a9761519b8f089ec12aeaa8bc4b0c36340be60da24b9bda2671530e7266c5ccb52ec2a3371e113d8255d5517896186c6817cc1b449737b44ce2a61ce4cd8b996a5d85466e3c227b04abaaa2f12c30d85c41f0e35f90f220668b7431bff93f2d80fd6689dc79e8f709575546e25861af44963a73958466f899dd105b7650a655ae3d2910b8f575ef12aeaa8ec4b0c35d153ecd94016b50a9008048aee2ff74a608bcae1e71ec8fdf255d551e896186b92a7d9b2802d6a1520100915dc5fee94c11795c3ce3d91fbe4abaaa3d12c30d7254fb365005ad42a4020122bb8bfdd29822f2b879c7b23f7c9575547a25861ae43608c54ce1bd07ffd0c86d6f0e59cd2af227ccf08f6622fa2aeaa8f54b0c35c76c118a99c37a0fffa190dade1cb39a55e44f99e11ecc45f455d551ea96186b8e64356de05d56a2b70fe7ddb42fc55ca674e18fbf3d9a2fe9abaaa3d62c30d71b547d346d910fc825ec95e36055e8e14796057b7b7b3603d4575547ad5861ae35350cc187f8821303a5f1eeb8a22fea89d84d52f3f66daba9aeaa8f5bb0c35c696a19830ff10426074be3dd71445fd513b09aa5e7ecdb57535d551eb76186b8d260455eccb86acec6648de2da7f1dd2220d77a7ccd9b852a7baaa3d6fc30d71a34c9d16464738204495e1edacf499cc3ec731ab96b372495075547ae0861ae345254c853964d2c340f88a0351df91c0783aa5b32a66e636a1eaa8f5c20c35c6894a990a72c9a58681f11406a3bf2380f0754b6654cdcc6d43d551eb84186b8d1221446d9269ad8fbbaeee353f74a529db96d928a69b9a7e88aaa3d70930d71a234288db24d35b1f775ddc6a7ee94a53b72db2514d3734fd115547ae1261ae344611240ef67d18c1a6887efcf5c8f2cf6907a6fe976e6b9e23aa8f5c25c35c688b22481decfa31834d10fdf9eb91e59ed20f4dfd2edcd73c47551eb84b86b8d11644903bd9f463069a21fbf3d723cb3da41e9bfa5db9ae788eaa3d70970d71a22c1532d060bf288fec10be0fa63df4a342e97a50b8735e951e547ae12f1ae344572a65a0c17e511fd8217c1f4c7be94685d2f4a170e6bd2a3ca8f5c25e35c688ae54cb4182fca23fb042f83e98f7d28d0ba5e942e1cd7a547951eb84bc6b8d115c35a8dbb2cfa7021852b6a529e6034211f814e1c09af64cf3a3d70979d71a22b76b51b7659f4e0430a56d4a53cc068423f029c38135ec99e747ae12f3ae34456e62b5c77814fe8b1917a0bc9f8e6b30428c95e2ff6bdad7cf8f5c25e85c688adb517de79d005f98e9fc07a1371334887fc56e21fbd7b753a01eb84bd1b8d115b52f0e27e6d721b48bc4d56a661cc738fa371e9ff4af704b413d7097a471a22b695e1c4fcdae43691789aad4cc398e71f46e3d3fe95ee096827ae12f48e34456d2484af84832e954e6e01bd190697b0be388bcdbcfbdc2d105f5c25e92c688ada31ca8493d3c352c858cfdcb18c9543fc1bdbc139c7b87460ceb84bd268d115b453950927a786a590b19fb963192a87f837b782738f70e8c19d7097a4d1a22b68a72a124f4f0d4b21633f72c632550ff06f6f04e71ee1d1833ae12f49a34456d147154a296b80be6e434b480be410026089a22f8e0dc3bd4685c25e935688ada276ebb9dda467a5080362f2974785e740be0884dbeb8794cd1b84bd26bd115b44d69899461635723b839247ae0e71b10126d52f77a70f43da47097a4d8a22b68995f25816f9d10ca283f0f1db9c494481f86e84af1e1ea1f49e12f49b24456d1314a5d5b8c108417084ae4636b7f86b839ba12f1e0c3d5e294c25e936588ada26120cd0fc4f76ab0c8628eeecef56b986e20683fbe87ad692a84bd26cc115b44c1419a1f89eed56190c51ddd9dead730dc40d07f7d0f5ad255097a4d9822b689820f4697c0b40d45d95701e333cc0c89b32de35af71eb748ab12f49b31456d13031e8d2f81681a8bb2ae03c667981913665bc6b5ee3d6e915625e936628ada26063d1a5f02d03517655c078ccf303226ccb78d6bdc7add22ac4bd26cc515b44c0c064716b276ccb18284d5419656c275941b5d33b5f5bbe95997a4d98b2b6898170c8e2d64ed99630509aa832cad84eb2836ba676beb77d2b32f49b31656d1302e191c5ac9db32c60a135506595b09d6506d74ced7d6efa5665e93662cada2605c3238b593b6658c1426aa0cb2b613aca0dae99dafaddf4accbd26cc595b44c0b864716b276ccb18284d5419656c275941b5d33b5f5bbe95997a4d98b2b689817054f52efbaff8b308676e5ac2ceacda7e17e8d2bbb77ecf33f49b31666d1302df35fcb6a43653e8c89ba2dd7d93b7dcf6dc1401746eff4268e93662cdda2605bd6bf96d486ca7d1913745bafb276fb9edb82802e8ddfe84d1d26cc59bb44c0b7a6405333dafb225da3b519dee453d9bd61c9261cebbfeada4a4d98b38689816f3541cbf2835c6ce6c436963d480d95fa6e5671f9a77feff4a49b31671d1302de5344bd6fd41f01f905398efa0f810e74877109b31efffa29593662ce4a2605bc96897adfa83e03f20a731df41f021ce90ee213663dfff452b26cc59c944c0b7925d41b4a1de2300f91b29e67bd6a1c51c8884c8c4c0002e574d98b39389816f234695c1f092a884aa0319f4efa3a1b233bd4bed86800200af9b3167281302de45193ddc8dfbb38c0bd2fa11d73da18c6226da370a0005a5603662ce512605bc89327bb91bf7671817a5f423ae7b4318c44db46e14000b4ac06cc59ca24c0b791264f77237eece302f4be8475cf68631889b68dc2800169580d98b39449816f22456013d1cb3fee3166496b6b1e36a8b0be314144d002ecf02b316728a302de4473814d2e63e6048e495f3955bbd333e12726a8497005f4206662ce515605bc88d7029a5cc7cc091c92be72ab77a667c24e4d5092e00be840ccc59ca2ac0b7911a6c65a445cfe3a64a24947d66eb2b204475ec6e59017eac1a98b39456816f223364dda1387629cf4c15ef22c5ccb46883981b38af02fefc36316728ae02de446555cd9b1dc2b6214ff8a46d838fc6f901dc78cd5b05ff9c6d62ce515d05bc88c937ad8ee85bcec557be0f02ff15ec19fe6533f6b30c00dcdbc59ca2bb0b7911916f5b1dd0b79d8aaf7c1e05fe2bd833fcca67ed661801b9b78b39457616f223226ac8944e459d9816c50233f44e0e8ff4411236c93005177016728aed2de4464361a38149619db2e556ca8fe0927b47e32e66c98f600bd2e12ce515db5bc88c854f595b3f999de8827a5b47b91b54b7c1090fef1bc01949c359ca2bb7b79119092ac50f2c099e53bcc17cb76a2d07977cbe623a3480343787b39457706f223211558a1e58133ca77982f96ed45a0f2ef97cc4746900686f0f6728aee0de4464223726955cfcdbd1aad2b905a0aa7c85eda5cb44cf00d2821fce515dc2bc88c8436e4d2ab9f9b7a355a5720b4154f90bdb4b96899e01a5043f9ca2bb857911908668acae20c9d1c96317aa3e7aa0503fb1436f6f39034bac803945770bf223210b5d6bb4ee6a06157dfc1aa4ed36fea75d33213a6f0698fd01728aee18e446421546e9c289aa6eadb3c4fb71d2645b76b51284d0db0d339e03e515dc32c88c842919e5ddc02b3fde1f56bd0b9cbf151564d14bfdb31a68e008ca2bb8669119085133cbbb80567fbc3ead7a17397e2a2ac9a297fb6634d1c011945770cd223210a267977700acff787d5af42e72fc545593452ff6cc69a3802328aee19a446421445b4146ae306173b282ae84ddef06d32136a24995d348a447515dc33588c842874294e60937256a1cd22331b3d46bce3d1986ef28a692ec8fa2bb866c1190850d113c24bf44ad56f1710c8b5f9f35c474df503a4e4d277d2045770cd923210a192278497e895aade2e21916bf3e6b88e9bea0749c9a4efa408aee19b24642143244f092fd12b55bc5c4322d7e7cd711d37d40e939349df48115dc33648c84286415f37ea6fbcd3a43552a82f4f00c4ba1a6c42e6f693d8d032bb866ca190850c72be6fd4df79a7486aa5505e9e01897434d885cded27b1a065770cd943210a18e57cdfa9bef34e90d54aa0bd3c0312e869b10b9bda4f6340caee19b286421431c3bae4de4b4cc54d2761a3f9f76c08507e263cf7849ee0c1a5dc33651c8428637036ef4763ffb2c5cb8faa736e3df320a7109faed93ddbc35bb866ca490850c6d06dde8ec7ff658b971f54e6dc7be6414e213f5db27bb786b770cd949210a18da0dbbd1d8ffecb172e3ea9cdb8f7cc829c427ebb64f76f0d6ee19b292421431b41b77a3b1ffd962e5c7d539b71ef99053884fd76c9eede1addc3365248428636836ef4763ffb2c5cb8faa736e3df320a7109faed93ddbc35bb866ca490850c6d06dde8ec7ff658b971f54e6dc7be6414e213f5db27bb786b770cd949210a18da067cf763cd52d99e60b6ff5b0ee2aaa96eec11761f770b16fe19b292521431b3f5bb1452680bdb683e3a61359d2b37d2889c48ac0eee306e0c336524b4286367d4374e2f9d7ddefbf94124eab9bc5224bbfcb717eddc7b1c2866ca497850c6cf912fc1ea0861e6236f4eac54f2de86c922bd93efabb9107860cd949300a18d9f125f83d410c3cc46de9d58a9e5bd0d92457b27df577220f0c19b292601431b3e24bf07a82187988dbd3ab153cb7a1b248af64fbeaee441e18336524c0286367c423f34db10755946f741c527165a18c8c0b0c53d2dc89e03166ca498150c6cf8747e69b620eab28dee838a4e2cb4319181618a7a5b913c062cd949302a18d9f0e1bdf8f70f3b8d4759d3771bd8ce45a2ad873ab48722924c69b292606431b3e1b37bf1ee1e771a8eb3a6ee37b19c8b455b0e75690e452498d36524c0c86367c366f7e3dc3cee351d674ddc6f6339168ab61cead21c8a4931a6ca498190c6cf86c6b0ed43474292664b681b5e45d80f9516fdfb640914aca35d949303318d9f0d762300115beb4cf8139c993c0b1601a9d8c01c87e2297386cb292606731b3e1ad50725ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c3592cf70e5d7dfac62c4d78c6eaa89ae26634ce35ef8a61cdb5ca49819fc6cf86b159ee1cbafbf58c589af18dd55135c4cc699c6bdf14c39b6b9493033f8d9f0d623fee9222ce4d9b6902a943a298c9b1937f7b33bb2988dad8292606801b3e1ac30bef7cf272fdb989d218af3d27f18b21ab38c373531359b1524c0d01367c358517def9e4e5fb7313a4315e7a4fe31643567186e6a626b362a4981a026cf86b0a2fbdf3c9cbf6e6274862bcf49fc62c86ace30dcd4c4d66c549303404d9f0d6145f7be79397edcc4e90c579e93f8c590d59c61b9a989acd8a92606809b3e1ac284b0a27d4063e1b54ee511bca7576da155fce933231373f1624c0d01467c3584f2226a854e2deb961a9685f8ce14bdc256bdf82616270222d4981a029cf86b09d444d50a9c5bd72c352d0bf19c297b84ad7bf04c2c4e0445a930340539f0d613a14acfa0061dd683e7267a62b7b8d98905bc0658289c22cb6260680a83e1ac273" + + validBlob2 string = "73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" +) diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/031b5468dd4ee8aa b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/031b5468dd4ee8aa new file mode 100644 index 00000000000..c66129f7d24 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/031b5468dd4ee8aa @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0575660696010bb14ad331b850e3d4d1f4b30c8c4e735815bd1b6fa338397d8e b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0575660696010bb14ad331b850e3d4d1f4b30c8c4e735815bd1b6fa338397d8e new file mode 100644 index 00000000000..ff2008cd538 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0575660696010bb14ad331b850e3d4d1f4b30c8c4e735815bd1b6fa338397d8e @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("f\x03\xcc\x16\x92\x95\x80\x00") +[]byte("\x9a") +[]byte("\x01") +[]byte("\x9a") +[]byte("f\x90\x90\x90\x90\x90\x90\x90\x90f\x95") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/08cd725229a87596 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/08cd725229a87596 new file mode 100644 index 00000000000..dc6cdd374cf --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/08cd725229a87596 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("M") +[]byte("0") +[]byte("z") +[]byte("%00(0000") +[]byte("aZ") +byte('F') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0a8b1f449653d512ac00e798566a2da9679092432eb7bea67396b4f080069e67 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0a8b1f449653d512ac00e798566a2da9679092432eb7bea67396b4f080069e67 new file mode 100644 index 00000000000..7a2c02a47f5 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0a8b1f449653d512ac00e798566a2da9679092432eb7bea67396b4f080069e67 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("010") +[]byte("1") +[]byte("7") +[]byte("8") +[]byte("80") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0ac54290179bf6ef b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0ac54290179bf6ef new file mode 100644 index 00000000000..cc473ef5433 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0ac54290179bf6ef @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("120") +[]byte("0") +[]byte("ZC1zX9XZ0B0Y0") +byte('h') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0c41865a11bcac8f b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0c41865a11bcac8f new file mode 100644 index 00000000000..6b97301a25b --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0c41865a11bcac8f @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000000000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0127") +[]byte("000000") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0c661f76a0c6b791ed4fb2d7f60f6da6706a2c25e81302f8f4fef62733689d2e b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0c661f76a0c6b791ed4fb2d7f60f6da6706a2c25e81302f8f4fef62733689d2e new file mode 100644 index 00000000000..ec70faf4b8d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0c661f76a0c6b791ed4fb2d7f60f6da6706a2c25e81302f8f4fef62733689d2e @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\xdf") +[]byte("\xdfuQ\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0d69569d199ef72dbbfe082414ec505212f8ad0dbf751c1ecc1d6c088ba99aa0 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0d69569d199ef72dbbfe082414ec505212f8ad0dbf751c1ecc1d6c088ba99aa0 new file mode 100644 index 00000000000..6108e0dca19 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0d69569d199ef72dbbfe082414ec505212f8ad0dbf751c1ecc1d6c088ba99aa0 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xec\xec\x01\x00") +[]byte("\xec") +[]byte("\x01") +[]byte("\xff") +[]byte("\xec\xec\x01") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0dea9613d08d0546 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0dea9613d08d0546 new file mode 100644 index 00000000000..4f5cc32fce4 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0dea9613d08d0546 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("000000000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0f23e70134217855 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0f23e70134217855 new file mode 100644 index 00000000000..ca8369fed96 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0f23e70134217855 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0000") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0f336f154886e0e569dda236c4bb6a35d4cd52a48764ee57bb7a91be67a4a2fa b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0f336f154886e0e569dda236c4bb6a35d4cd52a48764ee57bb7a91be67a4a2fa new file mode 100644 index 00000000000..7bef26a9d92 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/0f336f154886e0e569dda236c4bb6a35d4cd52a48764ee57bb7a91be67a4a2fa @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("f\xef\xe3\xfa\xa5\x8e\x03\xcc\x16\x92\x95\x80\x00") +[]byte("\x9a") +[]byte("\x01") +[]byte("\x9a") +[]byte("ff\x95") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/10d1b8428204585c77904cca3e21f23183b2f4b9c1c07e101bb45e79dde1dc18 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/10d1b8428204585c77904cca3e21f23183b2f4b9c1c07e101bb45e79dde1dc18 new file mode 100644 index 00000000000..5398dbb40a1 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/10d1b8428204585c77904cca3e21f23183b2f4b9c1c07e101bb45e79dde1dc18 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6i!!!!!!!!!!!!!!!!!!!!iiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\x00\x01\x00\x00ii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/11069168737a2a9e b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/11069168737a2a9e new file mode 100644 index 00000000000..ff03eec8a4e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/11069168737a2a9e @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("20$X") +[]byte("y") +[]byte("0") +[]byte("0127") +[]byte("*0.0.2") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1149d4a5fc6b1b33ceeb225b3499b827cf2cb689aaad2b72f29501784d8b467f b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1149d4a5fc6b1b33ceeb225b3499b827cf2cb689aaad2b72f29501784d8b467f new file mode 100644 index 00000000000..44678801bb3 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1149d4a5fc6b1b33ceeb225b3499b827cf2cb689aaad2b72f29501784d8b467f @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00000000") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/132b2d4bc4fd7fc58b57d1bb5e52f2dac12d351ca8c44f9bb552dbfb62376648 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/132b2d4bc4fd7fc58b57d1bb5e52f2dac12d351ca8c44f9bb552dbfb62376648 new file mode 100644 index 00000000000..d9224adf5e7 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/132b2d4bc4fd7fc58b57d1bb5e52f2dac12d351ca8c44f9bb552dbfb62376648 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("f\x03\xcc\x16\x92\x95\x80\x00") +[]byte("\x9a") +[]byte("\x01") +[]byte("\x9a") +[]byte("ff\x95") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/13a0e557328e6bf3f795dcd6e8af1771b69a9f454c87ec44d3f32e3053368237 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/13a0e557328e6bf3f795dcd6e8af1771b69a9f454c87ec44d3f32e3053368237 new file mode 100644 index 00000000000..fcc245195d9 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/13a0e557328e6bf3f795dcd6e8af1771b69a9f454c87ec44d3f32e3053368237 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\xa6iiiii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/14a21bc246dcb474 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/14a21bc246dcb474 new file mode 100644 index 00000000000..a79078be956 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/14a21bc246dcb474 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("\xff") +[]byte("CC8") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/14cab1d854913a30 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/14cab1d854913a30 new file mode 100644 index 00000000000..3424b81f1ce --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/14cab1d854913a30 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("00000000000000000000000000000000") +[]byte("0") +[]byte("00") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/16402edb3d27369e47b23367304fca2018bccc5a4f23d5fa55bc7b274912848f b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/16402edb3d27369e47b23367304fca2018bccc5a4f23d5fa55bc7b274912848f new file mode 100644 index 00000000000..1088f35b947 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/16402edb3d27369e47b23367304fca2018bccc5a4f23d5fa55bc7b274912848f @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xec\xec\x01\x00") +[]byte("\xec") +[]byte("\xa1b\x19Ib\xf3\xb9\xc8\xe7m\x10\xad\x8e\x9a\f\xa2\x10Ùre\x01\x01") +[]byte("\"\xde\xc0\x84_\xd0\x04:") +[]byte("\xec\xec\x01") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1768f5f2354f556a1fcd1517427a39a317db5d59e62243cd5e7d313db42bafb4 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1768f5f2354f556a1fcd1517427a39a317db5d59e62243cd5e7d313db42bafb4 new file mode 100644 index 00000000000..7059ef1399f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1768f5f2354f556a1fcd1517427a39a317db5d59e62243cd5e7d313db42bafb4 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("f\x03\xcc \x92\x95\x80\x00\xff\x02\x01\r\r\x03") +[]byte("\x90\x14ިL\x96k\xc7") +[]byte("\x90\x14\xde") +[]byte(" ") +[]byte(" \x00 \x00#") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/183413db397e4b3eb89459522129442c90ef0eb2beb4c7e2ff0f5337d928a22d b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/183413db397e4b3eb89459522129442c90ef0eb2beb4c7e2ff0f5337d928a22d new file mode 100644 index 00000000000..fedef3687d1 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/183413db397e4b3eb89459522129442c90ef0eb2beb4c7e2ff0f5337d928a22d @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdf\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\xdf") +[]byte("\xdfutQ\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1a0acf41b03a59b9a18da3bfad33d5f4d2bc3a96977d967e0cf6912904bdf8fa b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1a0acf41b03a59b9a18da3bfad33d5f4d2bc3a96977d967e0cf6912904bdf8fa new file mode 100644 index 00000000000..aa2199dd8c2 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1a0acf41b03a59b9a18da3bfad33d5f4d2bc3a96977d967e0cf6912904bdf8fa @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[\xf2?f\xf2\xf2\xae\x1fo\aB\xf7") +[]byte("C\bˣ]\x80\x14\x1f\xcbS\x8e\xefd3\xe8\bˣ]\x80\x14\x1f\xc1@'\xa6\xe4\xdf") +[]byte("\xdfut~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Q\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1a5ad15fc9bbdd6a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1a5ad15fc9bbdd6a new file mode 100644 index 00000000000..6a84fa3d690 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1a5ad15fc9bbdd6a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("\x80") +[]byte("0") +[]byte("00000000") +[]byte("08") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1cd2ee51303a010a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1cd2ee51303a010a new file mode 100644 index 00000000000..c379053e5dc --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1cd2ee51303a010a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("7") +[]byte("0") +[]byte("0200") +[]byte("19") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1d3bc8cea4840be26f5a92e7966d41a5e3cd0407c19a97e7369e56112011fd0f b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1d3bc8cea4840be26f5a92e7966d41a5e3cd0407c19a97e7369e56112011fd0f new file mode 100644 index 00000000000..a5ab6373f93 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1d3bc8cea4840be26f5a92e7966d41a5e3cd0407c19a97e7369e56112011fd0f @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xec\xec\x01\x00") +[]byte("\xec") +[]byte("\xff\x96|E\xe1\x95\xd1\x01") +[]byte("\"") +[]byte("\xec\xec\x01") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1d918c65115fa74b b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1d918c65115fa74b new file mode 100644 index 00000000000..0a945f4934a --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1d918c65115fa74b @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000") +[]byte(" ") +[]byte("0") +[]byte(" ") +[]byte("00") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1db35749fc80a92c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1db35749fc80a92c new file mode 100644 index 00000000000..1dc3f49882f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/1db35749fc80a92c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0000000000000000") +[]byte("00") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/20e871ae7f07881f9658636c8c510bd3b6f30344bce11296d558a375d075c640 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/20e871ae7f07881f9658636c8c510bd3b6f30344bce11296d558a375d075c640 new file mode 100644 index 00000000000..cbaaf54fd1f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/20e871ae7f07881f9658636c8c510bd3b6f30344bce11296d558a375d075c640 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\x80") +[]byte("\xdfuQ\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2180ddbb5cd3a283d898339db926fb4914d519ba4f13c1626c0897ff51b01912 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2180ddbb5cd3a283d898339db926fb4914d519ba4f13c1626c0897ff51b01912 new file mode 100644 index 00000000000..dffbb2577fc --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2180ddbb5cd3a283d898339db926fb4914d519ba4f13c1626c0897ff51b01912 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xa7\xec\x01a") +[]byte("\xa7") +[]byte("!") +[]byte("#") +[]byte("CAXZ") +byte('=') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/21e90bfa162081777c615b93d26fa0a842b47e0bba32106faa664a6cdd910e2f b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/21e90bfa162081777c615b93d26fa0a842b47e0bba32106faa664a6cdd910e2f new file mode 100644 index 00000000000..0023a4f0c6a --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/21e90bfa162081777c615b93d26fa0a842b47e0bba32106faa664a6cdd910e2f @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("C\xcbS\x8e\xefd3\xe8\bˣ]\x80\x14\x1f\xc1@'\xa6\xe4\xdf") +[]byte("\xdfut~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Q\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2232e00f4cf291e5 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2232e00f4cf291e5 new file mode 100644 index 00000000000..97ae062c635 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2232e00f4cf291e5 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x01\x00\x00\x00") +[]byte("\x01\xff\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00\x00") +byte('\f') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2517166c5a21ae56 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2517166c5a21ae56 new file mode 100644 index 00000000000..0239697360e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2517166c5a21ae56 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x01XM\x8d\x04") +[]byte("\x01\x00") +[]byte("\xcb") +[]byte("\xcbX\x01M\x8d\"\x04") +[]byte("X\x8d'MX#%\x00") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/258cb72390f12d44 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/258cb72390f12d44 new file mode 100644 index 00000000000..40fcddd5c80 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/258cb72390f12d44 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +byte('\t') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/277a8dd40c96504eca5d82227b879aad0e9a58b66bd3e642a8fc9badd57e753c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/277a8dd40c96504eca5d82227b879aad0e9a58b66bd3e642a8fc9badd57e753c new file mode 100644 index 00000000000..ea0bc2058f2 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/277a8dd40c96504eca5d82227b879aad0e9a58b66bd3e642a8fc9badd57e753c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdf\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("T\x88u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\xdf") +[]byte("\xdfutQ\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/27c07831038bb604 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/27c07831038bb604 new file mode 100644 index 00000000000..780692da6e3 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/27c07831038bb604 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte(" ") +[]byte("0") +[]byte(" ") +[]byte("0") +[]byte("00") +byte('?') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/283aecbf9ad942b1 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/283aecbf9ad942b1 new file mode 100644 index 00000000000..e005d101484 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/283aecbf9ad942b1 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("8") +[]byte("0") +[]byte("0") +[]byte("(2") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/293335c4369a7812 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/293335c4369a7812 new file mode 100644 index 00000000000..5c67c10924b --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/293335c4369a7812 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("+\x01XM\x8d\xde=\xf1\\\xc9\xf1\t'4ׅ\ue538\x95\xb1\"\r_\xbfGL\x1c%\t\xa3\x84\x04") +[]byte("2") +[]byte("\xcb") +[]byte("\xcbX\x01M\x8d\"\x04") +[]byte("20") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2cf3e4bb7c12d79f b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2cf3e4bb7c12d79f new file mode 100644 index 00000000000..c03a331bbe1 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2cf3e4bb7c12d79f @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("000000000000000000000000000000000000000000") +byte('\x03') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2ec0e55367a622ff b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2ec0e55367a622ff new file mode 100644 index 00000000000..6e0b541876d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2ec0e55367a622ff @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00000000000000000000000000000000") +[]byte("00") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2f93157de97b7de6 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2f93157de97b7de6 new file mode 100644 index 00000000000..2986a890583 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/2f93157de97b7de6 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("9") +[]byte("0B") +[]byte("7B0") +[]byte(" ") +[]byte("282") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3107ce1575f9f732 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3107ce1575f9f732 new file mode 100644 index 00000000000..08a7048632a --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3107ce1575f9f732 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("B") +[]byte("\x01\x01") +[]byte("2") +[]byte("1") +[]byte("02") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/31a6943437a2267a8aa5b948d8fcb84951c43d6a01ee607c1fbb4c2e08445aa6 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/31a6943437a2267a8aa5b948d8fcb84951c43d6a01ee607c1fbb4c2e08445aa6 new file mode 100644 index 00000000000..50d91e69d5a --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/31a6943437a2267a8aa5b948d8fcb84951c43d6a01ee607c1fbb4c2e08445aa6 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xa7\xec") +[]byte("\xa7") +[]byte("!") +[]byte("\xa7") +[]byte("\xa7\xec\x01a") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3227a680e8c45d97 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3227a680e8c45d97 new file mode 100644 index 00000000000..85542913a94 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3227a680e8c45d97 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3261c7e8b18a8ad2 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3261c7e8b18a8ad2 new file mode 100644 index 00000000000..c10f6f04058 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3261c7e8b18a8ad2 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("\x00") +[]byte("0000000000000000") +[]byte("00") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/335eb6018c909912 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/335eb6018c909912 new file mode 100644 index 00000000000..dcb67be995c --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/335eb6018c909912 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\b\x00\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("7") +[]byte("21") +byte('\x0e') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/36812261c46c7ee3 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/36812261c46c7ee3 new file mode 100644 index 00000000000..caeda169301 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/36812261c46c7ee3 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("1") +[]byte("00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/37b5245d92542265 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/37b5245d92542265 new file mode 100644 index 00000000000..874428ee79d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/37b5245d92542265 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0000000000000000000000000000000000") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/392c1b3fea5f7c25 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/392c1b3fea5f7c25 new file mode 100644 index 00000000000..35d71389552 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/392c1b3fea5f7c25 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('2') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3a39e33504867a3b b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3a39e33504867a3b new file mode 100644 index 00000000000..c0b30da875c --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3a39e33504867a3b @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0000000000000000000000000000000000000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("00") +byte('\t') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3c5ce2b7a8ca79ec b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3c5ce2b7a8ca79ec new file mode 100644 index 00000000000..724dffe5b24 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3c5ce2b7a8ca79ec @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("k") +[]byte("yyz") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3d83e32c8b42dd084f7a2ea07e0354626615a3bb369f900db1a49ff9b99d46b1 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3d83e32c8b42dd084f7a2ea07e0354626615a3bb369f900db1a49ff9b99d46b1 new file mode 100644 index 00000000000..08097c36f68 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3d83e32c8b42dd084f7a2ea07e0354626615a3bb369f900db1a49ff9b99d46b1 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\xdf") +[]byte("\xdfutQ\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3f33fcca3c967e9d1a1ccfc53dfddf5e4ff3bc49fbc0de0d3c9343fc7679f6e2 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3f33fcca3c967e9d1a1ccfc53dfddf5e4ff3bc49fbc0de0d3c9343fc7679f6e2 new file mode 100644 index 00000000000..7d32d963393 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3f33fcca3c967e9d1a1ccfc53dfddf5e4ff3bc49fbc0de0d3c9343fc7679f6e2 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\x00\x01\x00\x00ii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3f9a8e8b240af40ef9c1a5634cc12437b8a2e7aeae427d56bc47fd2c10e01061 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3f9a8e8b240af40ef9c1a5634cc12437b8a2e7aeae427d56bc47fd2c10e01061 new file mode 100644 index 00000000000..3e43329b703 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/3f9a8e8b240af40ef9c1a5634cc12437b8a2e7aeae427d56bc47fd2c10e01061 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("d") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0\xb3\xf7.s\x99\xe7\xd4g5k\aT\xa5\xf3Tݖ\x8cRؕ\x1d\xae\x84N?Ҋ\xc5O^\xfc\xc9\xfcl\xa2\x10\xd1\xe4I\x91S\xf3\x9c\xbeH\xaf\xc0\xc0\x1d\x81\xffD\xb4\xbf\x8f\x94\xf7\x06\x01\x89\xeaV\xc2}\xdb\xf5VRء\xf1\x86 K좑۽\x8f\x8e<\x96\xf2\v\xc0\x88\x02\x16\x921*:\xe7صg\xf8\xfb\xdf\xc7\x15\x8b^\xd8\xc5\x1d7p\xfbk\xa3\xfdAA\x91\x83\t\xa3%\x92FI\xd1\xc7\bG\xd4c\xc3\n\x8cR\xc5\xef\xe7f\x01\xde\x05\x13\xacN\xe2݁J\xff/\u007f;W\uefeefg\xa8\xb0PF\xf9\x1a\x0f\x02\xd85*\x85\x02\vO)\xf6\x18\t\xa5\x8f=\xb5\xd2\x05\xca\xdf\x05\xa2\t/92\xb2(Ň\x85\xa9{\xddz<,X\x03h!\xf7\xacۍ)\xb2\x003zg\xe0\xe9\xf0\xc9\xee\x99\xc0X\xdd#\x1f\r\xf1\x80\xac6kYy\xb8Q2\xf4ո\xb6\xbf\x02g\x9b\x06ǣb{~\x80\xf4\x99\xeeۗ\xe3\n(3\x14\xd7\x02vi$\xea=\x05;y\x9d\x9b\xf5\x87|(\x9fpU\x18\x89V\x1a\xf8\x93\xe5\x98\x19Њ\x00;Z\xa9\xb05\x87\xd2\x1b\a\xb9*\b\xdd\x1d|\x1c!\xe2p\xb5=n^X\x8f\x86\xd8*\xf7Z\xe1\u007f\fQ\"\xaf;WN\x1bNU|Asl\xce:\x8a\xcaL\x8b/\xeb\v\xa7N)5\xed_\x8a\x06S\xac0\x9b\xfb\u007fy6\x8eQ*Y\xe1\xf4\xca+G=\xb3x\xbf\bP\xf8\x04\x92Cz\x8a\xf2N\xea\xf6\xa8\xf6\x12-\xe8'#~\xefe\x19c\x85U\x11\xc2z4\x8b\xe8\x8eJ\xc6\xc9\xfb\x9fGm#yf.\xfb\xa7\x9b\xc3\x1a~\x1f\x98f\xe5\xf7\tS_\xf9\xa6\x1cY\xf3{\xb9/\xd1\x1a}#T\xb6_e\xcf\x02F\xfd\b\x06\x86̅\xf1,\"+\xc6\xe3\x1f\xf1\v\x18)\xfc.$\xfe\\b\xb9\xea\xf5\x90\xd4\r\xa8XvLX\x16(\xb8\xac\x144\x18Άa&C\x15\xf4\x1567\xe4!\xe1\x00\xec\x86\"\xa3Y\x14R0\x00\xac[q\xbe\xd4M\xd3\xc8\x00\xe36(ռ\xed%\x10\x81\xe6@7\xedo\xec\xf5\xbbY\xfa\xb5\xe2m\xa7f'\xd1\"\xe5_w0\xecc2\xaf\xc0\xe51y6\x9ce\x87\xddQ\xbeo\xa6\x1e\xf0\xf4\xaf\u007f\xf9\xe3p\x8a\x96\xf8p\x1d\x17\x9f\x95\xba\x0e5\xf8LJ\x97x-\x95AB\xda#U\xb4E>\xedA?\xf3b\t.\x0e\x15Ϻ\x00s\xf83\x1e\x88\x9f\x1dv$J\x93_s\x98\xe2\xffgJ|\xf9\x9f\v\xe7n\xa8\x12\xaa\x879\xa9\xa0>\xbbJw{\x80\x18xN\xfc@\xf5\xf8\xbf~\xe7\x93R!\xcb\xc0\xf1x\xe2@\xb8>\x8b/\x913\x02\xb3\xf0\xa2\xa4SM.z\xa5&\xb4\x95\x0eǕ~\xe5+\xf7\nQ\xa8\x0f\xf9\xc3|\xe4\xea\x8dq\x90죗\xd2\xce\x1a\xb6\xab\x91\x9d$Lm;?\xf3 \x898'\xd0\t\xfd\x15\xcc}\xa9j\xa0X\xff\x10p>\x8a\xbe\xfako\x03\b\x04\xbc\xed\xe3b\x8f\x15\xf6\xcbP\xfdR\r\xb9\x1fE\xc4\x18\xb3)\xd0\r]7\x88\xbf\xf86\x0f\x9e\xdbM\x8f\x87\xc0\xb8)\xcc\x10/paZ\xe0\x05\x92\xbd[\xcc\x19+`.\xd2w?o\xf5\xa0Np\xa6\x01/v\xff\xa1\x9bq\x94\xa5\xaa\xa6\xee)}B\x92c\xa7\x9bڅ\xa5AW\x17\xff\xd5\xefػr=Q=\x9ar\xfb\xa40\xeaQ\xf1;O\x03EN\vI{\x11!\xa2\xc9\xc6\xc7i\xd1UPL\xb7\xb3K\x01Ѩ\xaeD\xea\x80*5\xd1\xd5/\xb6\xe2\xd5N\x9e\xd3") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4195fee9ba765a9d2fdce0821cd3719033a6cc7ad2551fb0e2d0c1fecfc6cc59 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4195fee9ba765a9d2fdce0821cd3719033a6cc7ad2551fb0e2d0c1fecfc6cc59 new file mode 100644 index 00000000000..b65ebf20483 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4195fee9ba765a9d2fdce0821cd3719033a6cc7ad2551fb0e2d0c1fecfc6cc59 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xec\xec\x01\x00") +[]byte("\xec") +[]byte("\xa1b\x19Ib\xf3\xb9\xc8\xe7m\x10\xad\x8e\x9a\f\xa2\x10Ùre\x01\x01") +[]byte("\"") +[]byte("\xec\xec\x01") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/425d6c98562f0b61 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/425d6c98562f0b61 new file mode 100644 index 00000000000..3819e7bbd82 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/425d6c98562f0b61 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("$") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("#%\x161\x1f") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/440ad72e9cc066215453870075777f4fbdee9222976dd926390656efd7bfa32b b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/440ad72e9cc066215453870075777f4fbdee9222976dd926390656efd7bfa32b new file mode 100644 index 00000000000..56462a9edb7 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/440ad72e9cc066215453870075777f4fbdee9222976dd926390656efd7bfa32b @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte(" ") +[]byte(" ") +[]byte("0") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4415f5762aa84c6fce4ae46fedfb5bf373ace5caccaea33376f3ec804ea52cd4 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4415f5762aa84c6fce4ae46fedfb5bf373ace5caccaea33376f3ec804ea52cd4 new file mode 100644 index 00000000000..94eeeb5e9fc --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4415f5762aa84c6fce4ae46fedfb5bf373ace5caccaea33376f3ec804ea52cd4 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xf2\xf2\xf2\xae\x1fo\aB\xf7") +[]byte("C\bˣ]\x80\x14\x1f\xcbS\x8e\xefd3\xe8\bˣ]\x80\x14\x1f\xc1@'\xa6\xe4\xdf") +[]byte("\xdfut~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Q\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/482961ec519214d30d06694b020fb6a794cdb5861a3337e64433209f4751bb58 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/482961ec519214d30d06694b020fb6a794cdb5861a3337e64433209f4751bb58 new file mode 100644 index 00000000000..888fd1462ce --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/482961ec519214d30d06694b020fb6a794cdb5861a3337e64433209f4751bb58 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("f\x03\xcc\x16\x92\x95\x80\x00\xff\x02\x01\r\r\x03") +[]byte("\x90\x14ިL\x96k\xc7") +[]byte("\x90\x14\xde") +[]byte(" ") +[]byte(" \x00#") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4a65116dd6e8a601 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4a65116dd6e8a601 new file mode 100644 index 00000000000..cf740f31ecc --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4a65116dd6e8a601 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("000000") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4df776d6b0542639 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4df776d6b0542639 new file mode 100644 index 00000000000..d63676264bb --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4df776d6b0542639 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x01XM\x8d\x04") +[]byte("0") +[]byte("2") +[]byte("\xcbX\x01M\x8d\x8d\x04") +[]byte("2001010X") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4f5fc32b64c4e0c3 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4f5fc32b64c4e0c3 new file mode 100644 index 00000000000..8adac27c3aa --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4f5fc32b64c4e0c3 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x011\x00\x00") +[]byte(")Y\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00 \x00") +[]byte("\x01\x00\x00\x00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4fab3f9fb0d8320f b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4fab3f9fb0d8320f new file mode 100644 index 00000000000..17b08d06938 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4fab3f9fb0d8320f @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000000000000") +[]byte("0") +[]byte(" ") +[]byte(" ") +[]byte("00") +byte('¬') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4fe0cb3bd36e5426 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4fe0cb3bd36e5426 new file mode 100644 index 00000000000..f47d01b405d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/4fe0cb3bd36e5426 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\a\xd4\xdf0\xac\x870") +[]byte("\a\xd4\xdf0") +[]byte("0") +[]byte("\a") +[]byte("\a\xd4\xdf0\xac\x870") +byte('\t') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/511b6e9fb88f5aa460b33143b7860b1f6bab2c39ecb56e6f937504929edfeed6 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/511b6e9fb88f5aa460b33143b7860b1f6bab2c39ecb56e6f937504929edfeed6 new file mode 100644 index 00000000000..baa26d9e26c --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/511b6e9fb88f5aa460b33143b7860b1f6bab2c39ecb56e6f937504929edfeed6 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte(" ") +[]byte("0") +[]byte("0") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/53872473537386d04aceb53085c4e9460b4d1570159608e3a6f1035caee05de4 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/53872473537386d04aceb53085c4e9460b4d1570159608e3a6f1035caee05de4 new file mode 100644 index 00000000000..ba103e13d63 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/53872473537386d04aceb53085c4e9460b4d1570159608e3a6f1035caee05de4 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x01XM\x8d\x04") +[]byte("\x01\x00") +[]byte("\xcb") +[]byte("\xcbX\x01M\x8d\x8d\x04") +[]byte("\xcbX\x01M\x8d\x8d\x04\x00") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/54129e4ff403946ef1453fcc3694543d3de1e934ea8ee0ba5d9fe189efc46db6 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/54129e4ff403946ef1453fcc3694543d3de1e934ea8ee0ba5d9fe189efc46db6 new file mode 100644 index 00000000000..f2ae8d930e3 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/54129e4ff403946ef1453fcc3694543d3de1e934ea8ee0ba5d9fe189efc46db6 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xa7\xec\x01a") +[]byte("\xa7") +[]byte("!") +[]byte("\xa7") +[]byte("\xa7\xec\x01a") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/54c829cb66f8bf6a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/54c829cb66f8bf6a new file mode 100644 index 00000000000..a7ac55e673f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/54c829cb66f8bf6a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000000000000000000000000") +[]byte("00000000 ") +[]byte("0") +[]byte("0") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5551744a9729a660 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5551744a9729a660 new file mode 100644 index 00000000000..69fcb8868c4 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5551744a9729a660 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000000000000") +[]byte(" ") +[]byte("0") +[]byte("0") +[]byte("00") +byte('2') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/570d4a0a58f06c78b6d3dab98eb83075bc07cefe48037535ac7e9eaffde6b5bd b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/570d4a0a58f06c78b6d3dab98eb83075bc07cefe48037535ac7e9eaffde6b5bd new file mode 100644 index 00000000000..70713cc6929 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/570d4a0a58f06c78b6d3dab98eb83075bc07cefe48037535ac7e9eaffde6b5bd @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\x00\x01\x00\x00ii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m['''''''''''''''''''''''''''\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/57cd4868aa9f53f8a13ded7080da45c1dad94fb91f9dd605a9f2778659395965 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/57cd4868aa9f53f8a13ded7080da45c1dad94fb91f9dd605a9f2778659395965 new file mode 100644 index 00000000000..5390f1b3eb5 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/57cd4868aa9f53f8a13ded7080da45c1dad94fb91f9dd605a9f2778659395965 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("+Ԯ{\x13\xfb\xad\xb3zSS\x06l\x94\x99T\xd3ys\xf6\\\x95Jϟ\xc7ؓ[s\xb8\x92\x13k\xf6n\x82N\xf8\xb2/A\xaeX\xe8\x1b\xe2\xfb\x88\xb1\x8c+\xb6\x93\xdc?\x1bZ6Ax\xac\x96\xb3\xfe\xa3g\xfa\x96\xbcjo\x1a\x93\xcb\xe5\x9as]\x02?\x1f,Z\xa4\x19\xa3\xf0\x82*6\u007f5\xf9\x10\ae\xa3UTl\xaa\x92(iy\x9a\x98\x88w\xad]\x84+\x9d@|C\x9f\x91n]|֧\xd5\x05\xb1.!\x1e\xd1Z{ƃ\x99R\x15S\xf0\x12\xe3\x88E\x85\xa8\xa8\xaf\x15w:\xfa\x17G\xb8\xc8]I\xe1\xff\x99\xb2j\xfd\"\xa6\xbbVݎ\xa2\x98\xa5\x85}\x95>d\xd5\xdfA(V\xfc\v\"\xa7ۄ\x831\x9fC4}\xdb\xe8w\xdb\xd1\xfd\xf6\x86\x9d؆\xd5\xedM\xfb\x00\xa7vT\x89\x12\x99BRU@9\xfc\\Gz\xa1hu[\x98;\xe0\x84@\f\xb1\xe5\x06\x81\xef\xfa\\\x8f\xf1\xa0\x92\xed\xf1\xefCmP\xf7\xe5(\x9b\xd0W\xc9FH\xd6q\x9b\xc9x\xa8\xb7V\xd5x Һ\x00\xa0\xc1ٮ\xce\xc4J>\xe9\xd0\x01\x18\xc7D2**\x19\x9b\xad\xa8\xf6- \xf5\x9d\xbc\xa9Ԣ\x1d\xaa\xe9k\xe0ފo\aD\x82\xedy\x13\vnt\xd3\xf9\x1cBa\xf8x\\'B\x8c;\xa0\xeeA\xae\t\xd9ں\x1d\xb7\x11\xca-p\xe8\xa0d\xff\r=\x04a-\x9e\xa2X\x06\x18m\xcem\x04\xc4\xe4\xc6}\xf43\xc1\xa4\x96ɤa>\x92\x81\xae\xdet\x9a=\xf5\xb2$[j\x12\u007f5\x95\a\x82\x10\x90\v9ҐO\xc1\xce\xe2j\xf7J\xca\xc67|\u007f2qb\xb6-;\xa4\x90\x9b\x12ČT\x83\x15\x01]\x0f\xaa\x89G\xa5\xb8\x06^)'T\xec\x90gT,\xac\xbc\xd0Y\n\x0e\x17\x1c\xfat>\x94\xf5\x8d\x84U\xd1V\tY\x06T\xe5h\x19\x15A=\xbc\x81\xfd\b2\xe5sE\x10\xcf\t\r\x9c\x18\xcc\xca\xdb\xf1Teq>Ư\xce\xf5\xa6\n\xea\x8b\b\x05=\r\x89`y\xccr\xa5B\x10\u007f\xe2<\xafh\xfdM\xc9b\xe6w\x86`\xcf\x00\x1c\xee^\x06,\xdfZ\xd7\x1e\xbc\x19?\xa5\x86\xe5\x9b\xe6N\xbc\xd3\xfd\x8aM{\x05v\xc3K~qj\xc7\x1a\xe3\xfa^\xeb-\x84\xda\xd1\xf7\xd62/\xe1\x9fG;#\x91.\xfc\xc75$\xbd=ķ_\xe1\b\xfd\xee") +byte('\x0e') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/592958e76ba4c4b8 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/592958e76ba4c4b8 new file mode 100644 index 00000000000..f5b857f99cd --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/592958e76ba4c4b8 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000") +[]byte("0") +[]byte("120") +[]byte("0") +[]byte("00") +byte('-') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/59c2366b6c454e0f0285cde4e3417ff2212a9e98c859505eb2b6e465271aac77 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/59c2366b6c454e0f0285cde4e3417ff2212a9e98c859505eb2b6e465271aac77 new file mode 100644 index 00000000000..5c5eb03474d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/59c2366b6c454e0f0285cde4e3417ff2212a9e98c859505eb2b6e465271aac77 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\xdf") +[]byte("\xdfutQ\b\x16\xb6") +byte('\r') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5ab37706d578b70e b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5ab37706d578b70e new file mode 100644 index 00000000000..4d2a6dcd424 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5ab37706d578b70e @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("7") +[]byte("7") +[]byte("2") +[]byte("1") +[]byte("07002007007110") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5e28788089091e34 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5e28788089091e34 new file mode 100644 index 00000000000..60f8be4950a --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5e28788089091e34 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000") +[]byte("0") +[]byte("0\x9e\xa6\xa8\xa1ŭ\"\xcb") +[]byte("0") +[]byte("00") +byte('O') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5f60c893359960df b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5f60c893359960df new file mode 100644 index 00000000000..20f1124353d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/5f60c893359960df @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("2") +[]byte("1") +[]byte("2") +[]byte("0") +[]byte("00") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/60221d93724986a9af6290b616aac2f19e86fb49f2cc6e52d1eda17a83d75e7d b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/60221d93724986a9af6290b616aac2f19e86fb49f2cc6e52d1eda17a83d75e7d new file mode 100644 index 00000000000..30827867458 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/60221d93724986a9af6290b616aac2f19e86fb49f2cc6e52d1eda17a83d75e7d @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('\f') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/611f922a438ff4d2 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/611f922a438ff4d2 new file mode 100644 index 00000000000..0f45f80bff1 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/611f922a438ff4d2 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("M") +[]byte("2") +[]byte("0") +[]byte("00000000") +[]byte("00") +byte('F') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/612e7b2496b80c05704feacd832c816a6be66d5d9d2f23e42ddf65dbd367e6db b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/612e7b2496b80c05704feacd832c816a6be66d5d9d2f23e42ddf65dbd367e6db new file mode 100644 index 00000000000..9ae5e9e9fff --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/612e7b2496b80c05704feacd832c816a6be66d5d9d2f23e42ddf65dbd367e6db @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte(" ") +[]byte("0\xb3\xf7.s\x99\xe7\xd4g5k\aT\xa5\xf3Tݖ\x8cRؕ\x1d\xae\x84N?Ҋ\xc5O^\xfc\xc9\xfcl\xa2\x10\xd1\xe4I\x91S\xf3\x9c\xbeH\xaf\xc0\xc0\x1d\x81\xffD\xb4\xbf\x8f\x94\xf7\x06\x01\x89\xeaV\xc2}\xdb\xf5VRء\xf1\x86 K좑۽\x8f\x8e<\x96\xf2\v\xc0\x88\x02\x16\x921*:\xe7صg\xfb\xdf\xc7\x15\x8b^\xd8\xc5\x1d7p\xfbk\xa3\xfdAA\x91\x83\t\xa3%\x92FI\xd1\xc7\bG\xd4c\xc3\n\x8cR\xc5\xef\xe7f\x01\xde\x05\x13\xacN\xe2݁J\xff/\u007f;W\uefeefg\xa8\xb0PF\xf9\x1a\x0f\x02\xd85*\x85\x02\vO)\xf6\x18\t\xa5\x8f=\xb5\xd2\x05\xca\xdf\x05\xa2\t/92\xb2(Ň\x85\xa9{\xddz<,X\x03h!\xf7\xacۍ)\xb2\x003zg\xe0\xe9\xf0\xc9\xee\x99\xc0X\xdd#\x1f\r\xf1\x80\xac6kYy\xb8Q2\xf4ո\xb6\xbf\x02g\x9b\x06ǣb{~\x80\xf4\x99\xeeۗ\xe3\n(3\x14\xd7\x02vi$\xea=\x05;y\x9d\x9b\xf5\x87|(\x9fpU\x18\x89V\x1a\xf8\x93\xe5\x98\x19Њ\x00;Z\xa9\xb05\x87\xd2\x1b\a\xb9*\b\xdd\x1d|\x1c!\xe2p\xb5=n^X\x8f\x86\xd8*\xf7Z\xe1\u007f\fQ\"\xaf;WN\x1bNU|Asl\xce:\x8a\xcaL\x8b/\xeb\v\xa7N)5\xed_\x8a\x06S\xac0\x9b\xfb\u007fy6\x8eQ*Y\xe1\xf4\xca+G=\xb3x\xbf\bP\xf8\x04\x92Cz\x8a\xf2N\xea\xf6\xa8\xf6\x12-\xe8'#~\xefe\x19c\x85U\x11\xc2z4\x8b\xe8\x8eJ\xc6\xc9\xfb\x9fGm#yf.\xfb\xa7\x9b\xc3\x1a~\x1f\x98f\xe5\xf7\tS_\xf9\xa6\x1cY\xf3{\xb9/\xd1\x1a}#T\xb6_e\xcf\x02F\xfd\b\x06\x86̅\xf1,\"+\xc6\xe3\x1f\xf1\v\x18)\xfc.$\xfe\\b\xb9\xea\xf5\x90\xd4\r\xa8XvLX\x16(\xb8\xac\x144\x18Άa&C\x15\xf4\x1567\xe4!\xe1\x00\xec\x86\"\xa3Y\x14R0\x00\xac[q\xbe\xd4M\xd3\xc8\x00\xe36(ռ\xed%\x10\x81\xe6@7\xedo\xec\xf5\xbbY\xfa\xb5\xe2m\xa7f'\xd1\"\xe5_w0\xecc2\xaf\xc0\xe51y6\x9ce\x87\xddQ\xbeo\xa6\x1e\xf0\xf4\xaf\u007f\xf9\xe3p\x8a\x96\xf8p\x1d\x17\x9f\x95\xba\x0e5\xf8LJ\x97x-\x95AB\xda#U\xb4E>\xedA?\xf3b\t.\x0e\x15Ϻ\x00s\xf83\x1e\x88\x9f\x1dv$J\x93_s\x98\xe2\xffgJ|\xf9\x9f\v\xe7n\xa8\x12\xaa\x879\xa9\xa0>\xbbJw{\x80\x18xN\xfc@\xf5\xf8\xbf~\xe7\x93R!\xcb\xc0\xf1x\xe2@\xb8>\x8b/\x913\x02\xb3\xf0\xa2\xa4SM.z\xa5&\xb4\x95\x0eǕ~\xe5+\xf7\nQ\xa8\x0f\xf9\xc3|\xe4\xea\x8dq\x90죗\xd2\xce\x1a\xb6\xab\x91\x9d$Lm;?\xf3 \x898'\xd0\t\xfd\x15\xcc}\xa9j\xa0X\xff\x10p>\x8a\xbe\xfako\x03\b\x04\xbc\xed\xe3b\x8f\x15\xf6\xcbP\xfdR\r\xb9\x1fE\xc4\x18\xb3)\xd0\r]7\x88\xbf\xf86\x0f\x9e\xdbM\x8f\x87\xc0\xb8)\xcc\x10/paZ\xe0\x05\x92\xbd[\xcc\x19+`.\xd2w?o\xf5\xa0Np\xa6\x01/v\xff\xa1\x9bq\x94\xa5\xaa\xa6\xee)}B\x92c\xa7\x9bڅ\xa5AW\x17\xff\xd5\xefػr=Q=\x9ar\xfb\xa40\xeaQ\xf1;O\x03EN\vI{\x11!\xa2\xc9\xc6\xc7i\xd1UPL\xb7\xb3K\x01Ѩ\xaeD\xea\x80*5\xd1\xd5/\xb6\xe2\xd5N\x9e\xd3") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/636b2af939e9f493bbc3d01676d8e68e217221114ffeab890af2fe1e98b868a7 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/636b2af939e9f493bbc3d01676d8e68e217221114ffeab890af2fe1e98b868a7 new file mode 100644 index 00000000000..30698157cc4 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/636b2af939e9f493bbc3d01676d8e68e217221114ffeab890af2fe1e98b868a7 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6553f3b16e413698 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6553f3b16e413698 new file mode 100644 index 00000000000..a25df0fa902 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6553f3b16e413698 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("1") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("122089710z1210AAX901b9200108") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/67c54eb87af25be1 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/67c54eb87af25be1 new file mode 100644 index 00000000000..692972a747c --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/67c54eb87af25be1 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte(" ") +[]byte(" ") +[]byte("0") +[]byte("00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/69e5878d85648ade b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/69e5878d85648ade new file mode 100644 index 00000000000..a24460d54bd --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/69e5878d85648ade @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("1") +[]byte("1") +[]byte("2") +[]byte("0") +[]byte("00") +byte('&') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/69e7bce1a7fb58439308891c9e98001988490ff60aeb9b9243d8332802173fef b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/69e7bce1a7fb58439308891c9e98001988490ff60aeb9b9243d8332802173fef new file mode 100644 index 00000000000..284740ae42e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/69e7bce1a7fb58439308891c9e98001988490ff60aeb9b9243d8332802173fef @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xec\xec\x01\x00") +[]byte("0") +[]byte("\xa1b\x19Ib\xf3\xb9\xc8\xe7m\x10\xad\x8e\x9a\f\xa2\x10Ùre\x01\x01") +[]byte("\"\xde\xc0\x84_\xd0\x04:") +[]byte("79") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6cd4e3d0f1b84c2beae785ac28a840e2a3ac1f359f83df0c0cbf49c998d7b07b b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6cd4e3d0f1b84c2beae785ac28a840e2a3ac1f359f83df0c0cbf49c998d7b07b new file mode 100644 index 00000000000..461342e2f6d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6cd4e3d0f1b84c2beae785ac28a840e2a3ac1f359f83df0c0cbf49c998d7b07b @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xf2\xf2\xf2\xae\x1fo\aB\xf7") +[]byte("C\xcbS\x8e\xefd3\xe8\bˣ]\x80\x14\x1f\xc1@'\xa6\xe4\xdf") +[]byte("\xdfut~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Q\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6d1f2cfa77856642374f73cd7c80ff6cf9aad7deb9965cccfe0fa49eff8406d4 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6d1f2cfa77856642374f73cd7c80ff6cf9aad7deb9965cccfe0fa49eff8406d4 new file mode 100644 index 00000000000..e906c5321ef --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6d1f2cfa77856642374f73cd7c80ff6cf9aad7deb9965cccfe0fa49eff8406d4 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte(" ") +[]byte("0") +[]byte("0") +[]byte("0\x00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6d8fe0cadac03533 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6d8fe0cadac03533 new file mode 100644 index 00000000000..3f894800e1e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6d8fe0cadac03533 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("02") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6e0755fb78f94582 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6e0755fb78f94582 new file mode 100644 index 00000000000..a7722b128d0 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6e0755fb78f94582 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("8") +[]byte("0") +[]byte("7") +[]byte("0") +[]byte("11") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6f74df7b7889b3a6 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6f74df7b7889b3a6 new file mode 100644 index 00000000000..1f6f455a8f0 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6f74df7b7889b3a6 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6fad5d3460432a6c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6fad5d3460432a6c new file mode 100644 index 00000000000..eb4c68f594a --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/6fad5d3460432a6c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("A") +[]byte("0") +[]byte("0") +[]byte("0C000000") +[]byte("\xc7\xc7\xc7\xc7\xc7\xc7\xc7\xc700") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7014865c34218763 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7014865c34218763 new file mode 100644 index 00000000000..2e1b603c7ec --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7014865c34218763 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("f\x03\xcc\x16\x92\x95\x80\x00\xff\x02\x01\r\r\x03") +[]byte("\x90\x14ިL\x96k\xc7") +[]byte("\x90,0") +[]byte("c") +[]byte("08") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/70fab60190356106fd342ef842d24c3d1e92189286b6d6210b131ff7a760feeb b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/70fab60190356106fd342ef842d24c3d1e92189286b6d6210b131ff7a760feeb new file mode 100644 index 00000000000..f941882d372 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/70fab60190356106fd342ef842d24c3d1e92189286b6d6210b131ff7a760feeb @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("C\xcbS\x8e\xefd3\xe8\bˣ]\x80\x14\x1f\xc1@'\xa6\xe4\xdf") +[]byte("\xdfut~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>+\x82yhĭ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Q\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/71d08575bac1187a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/71d08575bac1187a new file mode 100644 index 00000000000..0b9a1de4260 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/71d08575bac1187a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000") +[]byte("0") +[]byte("01") +[]byte("A") +[]byte("000000") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/74019f4cf0b1e4f0 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/74019f4cf0b1e4f0 new file mode 100644 index 00000000000..5adc85b989c --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/74019f4cf0b1e4f0 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000$$00") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('\x1d') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/74364dc0d7b55cdb b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/74364dc0d7b55cdb new file mode 100644 index 00000000000..277fbbc341f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/74364dc0d7b55cdb @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0000000000000000") +[]byte("0") +[]byte("0") +[]byte("00") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7481c7f5446e09681b2db138cc7cbcda0d4d0f960e3e8c6a551a3c85e445c6c5 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7481c7f5446e09681b2db138cc7cbcda0d4d0f960e3e8c6a551a3c85e445c6c5 new file mode 100644 index 00000000000..d6f888a63ac --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7481c7f5446e09681b2db138cc7cbcda0d4d0f960e3e8c6a551a3c85e445c6c5 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("yy\xe7\x01m[\xa6iiii\x11iiiiiiiii\x00\x00\x00\x00 iii\xd5G\x82i") +[]byte("yy\xe7\x01m[\xa6iiii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/760a70c9812dbebe b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/760a70c9812dbebe new file mode 100644 index 00000000000..ed3f1b6a3a6 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/760a70c9812dbebe @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("1010") +[]byte("1") +[]byte("7") +[]byte("1") +[]byte("009") +byte('\x06') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7625027b6ab0d751 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7625027b6ab0d751 new file mode 100644 index 00000000000..c8aaab7d6d8 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7625027b6ab0d751 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("3") +[]byte("7") +[]byte("2") +[]byte("1") +[]byte("88%ca0Y7a$B2") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/77225716368e90b097c8cf2b789f4f039d6c398f1ae4487dd0b713a716318b08 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/77225716368e90b097c8cf2b789f4f039d6c398f1ae4487dd0b713a716318b08 new file mode 100644 index 00000000000..da39e34551b --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/77225716368e90b097c8cf2b789f4f039d6c398f1ae4487dd0b713a716318b08 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiii[\xa6iiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m[\xa6iiiii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe4\x1c\xe7\x01m[\xa6") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7a38294a110c1b9a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7a38294a110c1b9a new file mode 100644 index 00000000000..87bbf229c7d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7a38294a110c1b9a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000") +[]byte("0") +[]byte("0") +[]byte("A") +[]byte("00000000") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7c42ba72f5d2ec31bac5aca511a40b1fe59af096fa104f50c1e14e94462ebd2e b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7c42ba72f5d2ec31bac5aca511a40b1fe59af096fa104f50c1e14e94462ebd2e new file mode 100644 index 00000000000..a8736ef62b8 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7c42ba72f5d2ec31bac5aca511a40b1fe59af096fa104f50c1e14e94462ebd2e @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("f\x03\xcc \x92\x95\x80\x00\xff\x02\x01\r\r\x03") +[]byte("\x90\x14ިL\x96k\xc7") +[]byte("\x90\x14\xde") +[]byte(" ") +[]byte(" \x00#") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7d43ba109342836fb454ec50bda61903156547e90512cbd6810950f97452e9d3 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7d43ba109342836fb454ec50bda61903156547e90512cbd6810950f97452e9d3 new file mode 100644 index 00000000000..32dabd0fb88 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/7d43ba109342836fb454ec50bda61903156547e90512cbd6810950f97452e9d3 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii@\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\xa6iiiiiz\xf1\xf2\x0fka\x81Em\x8cUL\xbfv\xb1\xa29\x13\x91\x9c\x89*\x0e\xc6\xd8}\x9ee\x02[Kq*\xfa\x1a\xaa,\x9a\x1f\xfc\r\xb7\xa3\x9dȷeg\xcfd\v-5v\xeb\x13|FG\x8f9\xed\xb6Q\xaaIJ[\xbb,\xa8\xacd\x18*\x91\xfe\x964\xc3u\xff\x84\xfc\xfb\xe3 F\x19ACd\xecۓq\x1cl\x1a\xf40\a[\xe9\x03mu\\\xad\xa6\xa2q\x91\x91D\xb5\x8d+K\x1d܇\x14\x11\xa5\x13\xb9>\xe2t`7CD\x85\xf1p]\r\xf8&\x82v\x01\xaf\xbe\xe4q\x8f8\xd3\xf0\xe0\x8b\x0e\xfa\xc8h}\xa6\xe4\xa7\xe2b\xd9\aݷx\x13n9\r\xf9\x9fՠ$}\xf2`\xc4\x18\x05J\xb7k\xbf-\xff\xa4д\xc2I\x8d\xfads\xe0\x06\xee\b\xc0\f4z\xb4\x14.-2-\\6Ɗt\xbe$\xd4䭆\xb2Ris\xec#\x03ܷ\x80<\xf5\x02\xf6\xfd\xf4\x03qꖻ\xaf\a\xd9\xea\xfd,6\xff\"\xbcOk3\a]\x9c\x02\x0f\x14\x812n*\xaf\t\x9a\xb7Հ\xbaz<\xd8\b\xd4:\xcd\xdc\x03\x84\"\x047\n\x8b[\xb2B\xd6D\xca\\\x82\x8f\xb4d\xfe\xff\x87OQJH\x120%m\x9e3NB\x95HZ\xcd.\x97ژd\x8c\x88\xfa\xf7ݟ\x92 \v\xf8\v\xfd\x97嬜'4\x85\xe2\x99>\x8d3\x15\r]\x02(\x8a\xf6.\xa9\xb0\xe4\xf4\xb2\xd9\xeeO\xd1G\xcd՟\x19^\x1akЯ\xb8\xcd\x1d\x1al>\xc6\xf7N<\x1c,\x14r\xe5\xc0\xa1Fwcf\x96[\x83\xfajhϧ\xceJ0\xef7\xff\xe0\x1fã\xb4v\x8b\xca\x18%\xfb\xe3\x9at\xba\xc1;\x00\r\xc7d \xea\xbc\"G\x86\xc4\xeai{\xb0\xed8\xb6>M\xffb\xf7O\x1e\v\x8cca\xebU\xac\t\xd15\xd7\x04S\x98\xd05\xc9|آ\xc1\xf7\x9aK0\xa9;\r\x86\x19\t/\x90\xf8Ӱ$\x91\xbf\\\xc0\x8e\xc0\xcfd\x93\x90\xaa\x0e\xc0[\x17\xf7T\x99\xac\xfd\xd1\xea]\u0379\x13\u007f\xad\xf1\xb01\x00\xd3P\x80\x19}\xe9\xfc\xb1\xf2\x83\xee\xbf۰\xf5K\xfb1\xbaq\x05\x1a\xbf\xac\n!Iq%\xfd`E#\x9975븅\xe5\x82`\xf8f9\xbe*\xd2\x18{J\x11\xbd5W(\xf8\xa9p9\x89\x15L$\x92\x98\x8c\xe0d,Xe\x11\xf6%\xbb0W|\x05\xf7ߢ`\xc3Kz\x94\x83&\xb2U\x90vjўJ\x15\xedN\x1e\xc3\xe2y\xde \x8b6q}\xed\xd2i\xa8\x90&\xd0\U000eba5d\xad\x1cV\xe6\xed'\xd7\xd8[5\xa7j-\xe5\x89tsE\xd6jI\xc0O\xfeS*Qm\xe6\xa0\xe6倴\xe8է\x8b̝\xbd\xf1\x0e^\xb6Aw\xa2>k8\xa7\x9aJY\xb5\xb3G\x95\n\xf6\ue4a7\f\xfa\xaa\xf4,V\xbf\xfdQ\x0e\xb10\xfbi\xf7dz\xceE\xad\xd6b\xa2\xfd\xac'\xbe_\x16\u007f=\xb8\x06r1TR\xa3\x8aok\xe2Il\xbd6y\x02~h\xf4s\xee\x04o!\xa9\x8a\xb1B\xd09\x9d\x16\x1fޯ\x95y\xac\xfcx!:\xdc\xc2b5ͤ[\x03_\xdf\xcfH\xf5\x90K\x1ey\U0001ac7eD\xaa\x1f\xba\xbc\x1c-\xbeH\xc6RQ\x90 \x98\x1a\x8e,N\x84\x93R\x97\x1ec\x93\x83,\x12\xd5ԝ\x938\xb0\xf9\xf3\x1c\xf7\xee\x1e*\x18\xc1\xef\xff\xda\xf0\x9f#\xfd\xd9\xeaA\xd2\xd0\x1f\xc7e\x00\xb4\xe6#\xb2v\x1c{v\xeaSS\x94g\xb3\x00A#\xe8C\xcdp\x8f\x9bQ\x16\xf1\xa4\x06\x01\xd02\"8\xc0\x8fT\xe4\x12\xe5\xd5\xe3\xfd") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/80a7cfc969f02f43 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/80a7cfc969f02f43 new file mode 100644 index 00000000000..e8c341ab786 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/80a7cfc969f02f43 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000000000000000000000000000000000") +[]byte("0000000 ") +[]byte("0 0") +[]byte("0") +[]byte("00") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8266009464e80359 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8266009464e80359 new file mode 100644 index 00000000000..abbb4fbf698 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8266009464e80359 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("21") +[]byte("7") +[]byte("Z") +[]byte("(02") +[]byte(".c&a") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/83051cafaef01d551779c76d074c5be01eea5da36cf554be801fbf1f64b92171 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/83051cafaef01d551779c76d074c5be01eea5da36cf554be801fbf1f64b92171 new file mode 100644 index 00000000000..15a5a58384d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/83051cafaef01d551779c76d074c5be01eea5da36cf554be801fbf1f64b92171 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x03XM\x8dC\x04'\xc2") +[]byte("\x01\x00") +[]byte("\x01") +[]byte("\xcb") +[]byte("\x01\x00\x00\x00") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8643665bb19a4e64a92412fdbb624789a40309e7fc761df2b497b1dda7c9340e b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8643665bb19a4e64a92412fdbb624789a40309e7fc761df2b497b1dda7c9340e new file mode 100644 index 00000000000..76fd684ec21 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8643665bb19a4e64a92412fdbb624789a40309e7fc761df2b497b1dda7c9340e @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xec\xec\x01\x00") +[]byte("\xec") +[]byte("\x01") +[]byte("\"") +[]byte("\xec\xec\x01") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/86eab8f298e0d934 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/86eab8f298e0d934 new file mode 100644 index 00000000000..b0b41f2290e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/86eab8f298e0d934 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0000000000") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8745e7699e04335442f4c64b1c36045d966e372213cc9015c9418271cf334a42 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8745e7699e04335442f4c64b1c36045d966e372213cc9015c9418271cf334a42 new file mode 100644 index 00000000000..35c01b6b1d2 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8745e7699e04335442f4c64b1c36045d966e372213cc9015c9418271cf334a42 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("ȯ\xbaO\xeb\xcde\xc9ؒQ=\xfd0") +[]byte("0") +[]byte("x") +[]byte("x") +[]byte("x\x02E\a\xd5\x16 \xd6\xff\xff\b\x96D\xe6\x81\xe1\x02~\x896hj=G\vk\xb7ӯ\x8d\x12\x99ɡ\xf9\xb4\xca\xf2-\x03\u007f\xda3\x89\x06\x99Y\xbb\v\xf3\xec4\x9e+]P楤\xfa\xe11]\xa4\x9bQ\xdf\x03\t\x91\xf8\xadZnl\xdc\xc5\xf8\xcb\xd70\xa7\x10y\x1b\xb3\xc6_p\xca\b\xe6\xe2\x19|\x03mD\xadx\x18\x82\xd5\xe1,\vV\xcd\xfaVA\xb2\x1e\x8c5\x90L\x03/y)H\x96\xea\x01A$/\xb9/\x874k\xfdZށ1\xf3:y\xd3&\a\xea\xf7\\,\xc6\xf6\xafyñ\x1b\a \xd1`(r\xf3\xa5\xa2@\x06\x1eERI\x16\x83K\xa1\x86jf\xe2\n\xdcQ\xec}PI\xf3f\xd8۸Q\xf3\x05") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/87d5115d5cf06bea0b5878b0ea065409be4663e4ae060b414a9a567d5af8d1a3 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/87d5115d5cf06bea0b5878b0ea065409be4663e4ae060b414a9a567d5af8d1a3 new file mode 100644 index 00000000000..aeb455019e2 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/87d5115d5cf06bea0b5878b0ea065409be4663e4ae060b414a9a567d5af8d1a3 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xc8ؒQ=\xfd0") +[]byte("0") +[]byte("x") +[]byte("x") +[]byte("x\x02E\a\xd5\x16 \xd6\xff\xff\b\x96D\xe6\x81\xe1\x02~\x896hj=G\vk\xb7ӯ\x8d\x12\x99ɡ\xf9\xb4\xca\xf2-\x03\u007f\xda3\x89\x06\x99Y\xbb\v\xf3\xec4\x9e+]P楤\xfa\xe11]\xa4\x9bQ\xdf\x03\t\x91\xf8\xadZnl\xdc\xc5\xf8\xcb\xd70\xa7\x10y\x1b\xb3\xc6_p\xca\b\xe6\xe2\x19|\x03mD\xadx\x18\x82\xd5\xe1,\vV\xcd\xfaVA\xb2\x1e\x8c5\x90L\x03/y)H\x96\xea\x01A$/\xb9/\x874k\xfdZށ1\xf3:y\xd3&\a\xea\xf7\\,\xc6\xf6\xafyñ\x1b\a \xd1`(r\xf3\xa5\xa2@\x06\x1eERI\x16\x83K\xa1\x86jf\xe2\n\xdcQ\xec}PI\xf3f\xd8۸Q\xf3\x05") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8a792d25488fb8d9c56ab4c8ac4110735807bc7f54c4ef29aadd976937d40325 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8a792d25488fb8d9c56ab4c8ac4110735807bc7f54c4ef29aadd976937d40325 new file mode 100644 index 00000000000..02df2d7820e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8a792d25488fb8d9c56ab4c8ac4110735807bc7f54c4ef29aadd976937d40325 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8bb44fe3de88aa52 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8bb44fe3de88aa52 new file mode 100644 index 00000000000..4802b4f2bfa --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8bb44fe3de88aa52 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000,s+\xe120000000000000000.0000\"%000000002&10800") +[]byte("0") +[]byte("y") +[]byte("0") +[]byte("00") +byte('°') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8c4ccbd55eb40e3c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8c4ccbd55eb40e3c new file mode 100644 index 00000000000..432b7ca3adf --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8c4ccbd55eb40e3c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00000000") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8cba2922ddf362c4 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8cba2922ddf362c4 new file mode 100644 index 00000000000..bebc3a7d030 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8cba2922ddf362c4 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiii[\xa6iiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("0") +[]byte("08") +[]byte("y\xe7\x01m[\xa6i") +[]byte("A82Z1Ya7xBA1") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8ccc94a4891b102d b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8ccc94a4891b102d new file mode 100644 index 00000000000..0c2ce325cac --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8ccc94a4891b102d @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00") +[]byte("2") +[]byte("1") +[]byte("027") +[]byte("110") +byte('\x14') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8d534a36ee4867cf b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8d534a36ee4867cf new file mode 100644 index 00000000000..c11016cf843 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8d534a36ee4867cf @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\"002+0010.9 00%.$zX00000&0+0X010") +[]byte("7.\xe7\xeb+") +[]byte("'B\xe7") +[]byte(" ") +[]byte("0B") +byte('¬') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8f4a9335b20a4c90ae5c90ba97c907eeeae7071e227c4eabb94aacd4d0c55aab b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8f4a9335b20a4c90ae5c90ba97c907eeeae7071e227c4eabb94aacd4d0c55aab new file mode 100644 index 00000000000..aaf2ba9299f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/8f4a9335b20a4c90ae5c90ba97c907eeeae7071e227c4eabb94aacd4d0c55aab @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6i!!!!!!!!\x00\x80\xff\xff!!!!!!!!iiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\x00\x01\x00\x00ii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/938fdcb295d9272a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/938fdcb295d9272a new file mode 100644 index 00000000000..1c20ef662cc --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/938fdcb295d9272a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x00\x10") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/93a268ec92f31ad5 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/93a268ec92f31ad5 new file mode 100644 index 00000000000..f525aea9054 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/93a268ec92f31ad5 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("8") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9426411803b6686c713892091ab7233a3dd83a8ad6d14cc4529daf4dff96eb9e b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9426411803b6686c713892091ab7233a3dd83a8ad6d14cc4529daf4dff96eb9e new file mode 100644 index 00000000000..6627d3b8583 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9426411803b6686c713892091ab7233a3dd83a8ad6d14cc4529daf4dff96eb9e @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x17\x1dDʢ\xa2\xa2\xa2\x00\xa2\xa2\xa2\xa2\xcb1\xf9^\xc0ƪ=") +[]byte("\xcd") +[]byte("\x01") +[]byte("\xcd") +[]byte("\x17\x1dO\xca\xf9^\xc0ƪ=\xf8S\x05\x1dB\x94\xc0V\x12\x19=ʩ\x80") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/952fd56b52f5bcf8 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/952fd56b52f5bcf8 new file mode 100644 index 00000000000..732d6ff811b --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/952fd56b52f5bcf8 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00000000000000000000000000000000000000") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/95fea26f1ec6e657 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/95fea26f1ec6e657 new file mode 100644 index 00000000000..58a52a51085 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/95fea26f1ec6e657 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/96210a12cf076cd6 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/96210a12cf076cd6 new file mode 100644 index 00000000000..8d96942a341 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/96210a12cf076cd6 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x00\x02\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("72c") +byte('\t') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/984d3b671a7cd2c96b4af770c9539022b0c86db6380ed4d30816a0eff88609c2 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/984d3b671a7cd2c96b4af770c9539022b0c86db6380ed4d30816a0eff88609c2 new file mode 100644 index 00000000000..0e45f222511 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/984d3b671a7cd2c96b4af770c9539022b0c86db6380ed4d30816a0eff88609c2 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte(" \x00\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00\x00") +byte('\x0e') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/986769c9616764b29befa62e07dd2d69c4486cf649c448ca60cb1118b047e4ec b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/986769c9616764b29befa62e07dd2d69c4486cf649c448ca60cb1118b047e4ec new file mode 100644 index 00000000000..ec8760d2bf3 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/986769c9616764b29befa62e07dd2d69c4486cf649c448ca60cb1118b047e4ec @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0\xf46\xf1\xf8N\xef\xbf\xc0\x99aū\xee\xc0\xe5'\xf7+1*\x14\xa7\\\xa7\xc7c\xbafG\xd0%\xab\xf3k\xf83W\xd1\xf7g\x11\xb5v\xe3`\xe1ߦ\xafũ\xb0\xaa\xb7YIT!\xdca{t\xb6\xb0#\xbe\xb7\xf4\x98\xf6\x88\x98Va\x1f\f\x89\x96.b\xb8\xb4a\xe4EA\x01\x15p\x05\xf0\xcf\xf5\x1c\x87\xb0\xe6\u0092/!\xcc\\\xa3,F\u007f\xdb\xeb6p˝IlE\xe9\xc7\xe6\x97L꾕\xd0\xfd\xf8Mw|\xff&]\aͼDR)\xc1\x95A\x9e;9\x03\xa6\x9c\xf1\xc2\a2\xbfe\x06XzC\x85IW\x9dq\xc2\x0e\xb8\xeb\\\x99I\xdd\x1c\xd1\xcaɱ7\x9c\xd7Ʒ[\x8d)\x86G\x9aP\x9e<\x8c9*\xc6)\x14\xbeQ\xd8i\x8e\x02\x00\xd9Q3ne\xb8\x8cJ\xd7(+\xcf\xfdvD\xdf\f\xeb\x04\xc3\xed\xcd\xd9\xe5k\xcc+P98\x89$\x86;\xf6\x12\xe1$\x1fH\xa2\xe0\xe9\xaaR\xe9\xdb\xca}\x98\x89\x8d蜻^8\x9f\x84\xd8oP\x15E\x01D\xc3\x11\x9726\x00\xe5\xfd^)AN2\x19Z\xf7\x91\x18\n\x8cj\x1c\xd3\x0e\x9b\x12\xcc\xeb\x06\xcc\xc0^\xe4\xabh\xb6i\x95Nݫ]!\x17\xb4\x8d\xf7") +[]byte("00000000") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9a8c922f8273f70c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9a8c922f8273f70c new file mode 100644 index 00000000000..4d106c64338 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9a8c922f8273f70c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x011\x00\x00") +[]byte("\x00Y\x00)") +[]byte("\x00Y\x00)") +[]byte("\x01\x00 \x00") +[]byte("\x01\x00\x00\x00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9afc3e2938c7d658 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9afc3e2938c7d658 new file mode 100644 index 00000000000..db0a738d089 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9afc3e2938c7d658 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("9") +[]byte("1") +[]byte("0") +[]byte("70") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9b53b7328856e794 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9b53b7328856e794 new file mode 100644 index 00000000000..1ea10154c0e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9b53b7328856e794 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x8c") +[]byte("\x80") +[]byte("z") +[]byte("00000000") +[]byte("\x8c\xbc") +byte('H') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9c43daf54dff2ee6 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9c43daf54dff2ee6 new file mode 100644 index 00000000000..4e95368f26e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9c43daf54dff2ee6 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000100") +[]byte("0") +[]byte("0") +[]byte("A") +[]byte("00") +byte('2') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9c6f74e3c4d4bb36 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9c6f74e3c4d4bb36 new file mode 100644 index 00000000000..02acfc4e6a3 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9c6f74e3c4d4bb36 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("9") +[]byte("0") +[]byte("0000000000") +byte('Ä') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9e070c3535760ef1 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9e070c3535760ef1 new file mode 100644 index 00000000000..731e981b62d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9e070c3535760ef1 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00000000") +[]byte("00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9e1195c23477b728 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9e1195c23477b728 new file mode 100644 index 00000000000..03c67e33cc8 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/9e1195c23477b728 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("000000000000000000000000000000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a0dd6b3db9136eec33f441194cbfc480b8f716cf9b9ba145620c6dac7a5eebc1 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a0dd6b3db9136eec33f441194cbfc480b8f716cf9b9ba145620c6dac7a5eebc1 new file mode 100644 index 00000000000..b5c373f4412 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a0dd6b3db9136eec33f441194cbfc480b8f716cf9b9ba145620c6dac7a5eebc1 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x17\x1dDʢ\xa2\xa2\xa2\x00\xa2\xa2\xa2\xa2\xf9^\xc0ƪ=") +[]byte("\xcd") +[]byte("\x01") +[]byte("\xcd") +[]byte("\x17\x1dO\xca\xf9^\xc0ƪ=\xf8S\x05\x1dB\x94\xc0V\x12\x19=ʩ\x80") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a105bfe19478b90f b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a105bfe19478b90f new file mode 100644 index 00000000000..cc2baeab157 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a105bfe19478b90f @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("8") +[]byte("1") +[]byte("0127") +[]byte("000000") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a372d6fb3cd244bf b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a372d6fb3cd244bf new file mode 100644 index 00000000000..a0e7216794e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a372d6fb3cd244bf @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000010000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("000100000000000000000000000000") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a3c5b8c990919bd9 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a3c5b8c990919bd9 new file mode 100644 index 00000000000..dd16b37e3ba --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a3c5b8c990919bd9 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\xa6iiiii") +[]byte("@\xe7\x01m[\xfci") +[]byte("y\xe7+m[\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a40b66f7d13c72f9 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a40b66f7d13c72f9 new file mode 100644 index 00000000000..c468c2f73bf --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a40b66f7d13c72f9 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000000000000") +[]byte("0") +[]byte("012") +[]byte(" ") +[]byte("00000000") +byte('\u008a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a4e7a9fbd99ef2be b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a4e7a9fbd99ef2be new file mode 100644 index 00000000000..3c7680f388c --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a4e7a9fbd99ef2be @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xa7\xec\x01a") +[]byte("\xa7") +[]byte("\xff") +[]byte("#") +[]byte("C\x80\x00Z") +byte('2') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a8e21c52d77a4f7f4f77135a518476a8947b0c7675ea458dc0c912533de9fd43 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a8e21c52d77a4f7f4f77135a518476a8947b0c7675ea458dc0c912533de9fd43 new file mode 100644 index 00000000000..ac1a8691200 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a8e21c52d77a4f7f4f77135a518476a8947b0c7675ea458dc0c912533de9fd43 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("x") +[]byte("x") +[]byte("x\x02E\a\xd5\x16 \xd6\xff\xff\b\x96D\xe6\x81\xe1\x02~\x896hj=G\vk\xb7ӯ\x8d\x12\x99ɡ\xf9\xb4\xca\xf2-\x03\u007f\xda3\x89\x06\x99Y\xbb\v\xf3\xec4\x9e+]P楤\xfa\xe11]\xa4\x9bQ\xdf\x03\t\x91\xf8\xadZnl\xdc\xc5\xf8\xcb\xd70\xa7\x10y\x1b\xb3\xc6_p\xca\b\xe6\xe2\x19|\x03mD\xadx\x18\x82\xd5\xe1,\vV\xcd\xfaVA\xb2\x1e\x8c5\x90L\x03/y)H\x96\xea\x01A$/\xb9/\x874k\xfdZށ1\xf3:y\xd3&\a\xea\xf7\\,\xc6\xf6\xafyñ\x1b\a \xd1`(r\xf3\xa5\xa2@\x06\x1eERI\x16\x83K\xa1\x86jf\xe2\n\xdcQ\xec}PI\xf3f\xd8۸Q\xf3\x05") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a9e56991344685d83bc24b83d4cf6a22c6b6d55d50a96eeaab6adca19fc84f38 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a9e56991344685d83bc24b83d4cf6a22c6b6d55d50a96eeaab6adca19fc84f38 new file mode 100644 index 00000000000..aeac4c55a4b --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/a9e56991344685d83bc24b83d4cf6a22c6b6d55d50a96eeaab6adca19fc84f38 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("\x00") +[]byte("0") +[]byte("0") +[]byte("0\xb3\xf7.s\x99\xe7\xd4g5k\aT\xa5\xf3Tݖ\x8cRؕ\x1d\xae\x84N?Ҋ\xc5O^\xfc\xc9\xfcl\xa2\x10\xd1\xe4I\x91S\xf3\x9c\xbeH\xaf\xc0\xc0\x1d\x81\xffD\xb4\xbf\x8f\x94\xf7\x06\x01\x89\xeaV\xc2}\xdb\xf5VRء\xf1\x86 K좑۽\x8f\x8e<\x96\xf2\v\xc0\x88\x02\x16\x921*:\xe7صg\xfb\xdf\xc7\x15\x8b^\xd8\xc5\x1d7p\xfbk\xa3\xfdAA\x91\x83\t\xa3%\x92FI\xd1\xc7\bG\xd4c\xc3\n\x8cR\xc5\xef\xe7f\x01\xde\x05\x13\xacN\xe2݁J\xff/\u007f;W\uefeefg\xa8\xb0PF\xf9\x1a\x0f\x02\xd85*\x85\x02\vO)\xf6\x18\t\xa5\x8f=\xb5\xd2\x05\xca\xdf\x05\xa2\t/92\xb2(Ň\x85\xa9{\xddz<,X\x03h!\xf7\xacۍ)\xb2\x003zg\xe0\xe9\xf0\xc9\xee\x99\xc0X\xdd#\x1f\r\xf1\x80\xac6kYy\xb8Q2\xf4ո\xb6\xbf\x02g\x9b\x06ǣb{~\x80\xf4\x99\xeeۗ\xe3\n(3\x14\xd7\x02vi$\xea=\x05;y\x9d\x9b\xf5\x87|(\x9fpU\x18\x89V\x1a\xf8\x93\xe5\x98\x19Њ\x00;Z\xa9\xb05\x87\xd2\x1b\a\xb9*\b\xdd\x1d|\x1c!\xe2p\xb5=n^X\x8f\x86\xd8*\xf7Z\xe1\u007f\fQ\"\xaf;WN\x1bNU|Asl\xce:\x8a\xcaL\x8b/\xeb\v\xa7N)5\xed_\x8a\x06S\xac0\x9b\xfb\u007fy6\x8eQ*Y\xe1\xf4\xca+G=\xb3x\xbf\bP\xf8\x04\x92Cz\x8a\xf2N\xea\xf6\xa8\xf6\x12-\xe8'#~\xefe\x19c\x85U\x11\xc2z4\x8b\xe8\x8eJ\xc6\xc9\xfb\x9fGm#yf.\xfb\xa7\x9b\xc3\x1a~\x1f\x98f\xe5\xf7\tS_\xf9\xa6\x1cY\xf3{\xb9/\xd1\x1a}#T\xb6_e\xcf\x02F\xfd\b\x06\x86̅\xf1,\"+\xc6\xe3\x1f\xf1\v\x18)\xfc.$\xfe\\b\xb9\xea\xf5\x90\xd4\r\xa8XvLX\x16(\xb8\xac\x144\x18Άa&C\x15\xf4\x1567\xe4!\xe1\x00\xec\x86\"\xa3Y\x14R0\x00\xac[q\xbe\xd4M\xd3\xc8\x00\xe36(ռ\xed%\x10\x81\xe6@7\xedo\xec\xf5\xbbY\xfa\xb5\xe2m\xa7f'\xd1\"\xe5_w0\xecc2\xaf\xc0\xe51y6\x9ce\x87\xddQ\xbeo\xa6\x1e\xf0\xf4\xaf\u007f\xf9\xe3p\x8a\x96\xf8p\x1d\x17\x9f\x95\xba\x0e5\xf8LJ\x97x-\x95AB\xda#U\xb4E>\xedA?\xf3b\t.\x0e\x15Ϻ\x00s\xf83\x1e\x88\x9f\x1dv$J\x93_s\x98\xe2\xffgJ|\xf9\x9f\v\xe7n\xa8\x12\xaa\x879\xa9\xa0>\xbbJw{\x80\x18xN\xfc@\xf5\xf8\xbf~\xe7\x93R!\xcb\xc0\xf1x\xe2@\xb8>\x8b/\x913\x02\xb3\xf0\xa2\xa4SM.z\xa5&\xb4\x95\x0eǕ~\xe5+\xf7\nQ\xa8\x0f\xf9\xc3|\xe4\xea\x8dq\x90죗\xd2\xce\x1a\xb6\xab\x91\x9d$Lm;?\xf3 \x898'\xd0\t\xfd\x15\xcc}\xa9j\xa0X\xff\x10p>\x8a\xbe\xfako\x03\b\x04\xbc\xed\xe3b\x8f\x15\xf6\xcbP\xfdR\r\xb9\x1fE\xc4\x18\xb3)\xd0\r]7\x88\xbf\xf86\x0f\x9e\xdbM\x8f\x87\xc0\xb8)\xcc\x10/paZ\xe0\x05\x92\xbd[\xcc\x19+`.\xd2w?o\xf5\xa0Np\xa6\x01/v\xff\xa1\x9bq\x94\xa5\xaa\xa6\xee)}B\x92c\xa7\x9bڅ\xa5AW\x17\xff\xd5\xefػr=Q=\x9ar\xfb\xa40\xeaQ\xf1;O\x03EN\vI{\x11!\xa2\xc9\xc6\xc7i\xd1UPL\xb7\xb3K\x01Ѩ\xaeD\xea\x80*5\xd1\xd5/\xb6\xe2\xd5N\x9e\xd3") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/aa8dd4d5e1cd3d7c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/aa8dd4d5e1cd3d7c new file mode 100644 index 00000000000..8e6bd264137 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/aa8dd4d5e1cd3d7c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('O') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/af0cff582dea0a45 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/af0cff582dea0a45 new file mode 100644 index 00000000000..58981dd6ac4 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/af0cff582dea0a45 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0000000000000000000000000000000000000000000000000000000000000000") +[]byte("0") +[]byte("00") +byte('\f') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b25164ebd6e73e27 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b25164ebd6e73e27 new file mode 100644 index 00000000000..6f798c195c8 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b25164ebd6e73e27 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("f\x03\xcc\x16\x92\x95\x80\x00") +[]byte("\x9a") +[]byte("Y") +[]byte("\x8c") +[]byte("0X") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b2a9891c4bef161b3d1d3b580d2e6b92a52bafb48612f6e60fdca171e1dd2edb b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b2a9891c4bef161b3d1d3b580d2e6b92a52bafb48612f6e60fdca171e1dd2edb new file mode 100644 index 00000000000..8ec06d28a38 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b2a9891c4bef161b3d1d3b580d2e6b92a52bafb48612f6e60fdca171e1dd2edb @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m[\xa6iiiii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe4\x1c\xe7\x01m[\xa6") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b2ec4f4ac33c6140 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b2ec4f4ac33c6140 new file mode 100644 index 00000000000..85449ae0641 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b2ec4f4ac33c6140 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("000") +[]byte("2") +[]byte("0") +[]byte("0") +[]byte("$8+y0#090B+#0.0,00A8A+x'Xb9X8") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b48eeae2d3e0ad5a5b8312b402cf17cc73863ffd1b96bb446bbe6665849ea403 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b48eeae2d3e0ad5a5b8312b402cf17cc73863ffd1b96bb446bbe6665849ea403 new file mode 100644 index 00000000000..4ade80823a4 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b48eeae2d3e0ad5a5b8312b402cf17cc73863ffd1b96bb446bbe6665849ea403 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xc8ؒQ=\xfd0") +[]byte("0") +[]byte("x") +[]byte("x") +[]byte("x\x02E\a\xd5\x16 \xd6\xff\xff\b\x96D\xe6\x81\xe1\x02~\x896hj=G\vk\xb7ӯ\x8d\x12\x99ɡ\xf9\xb4\xca\xf2-\x03\u007f\xda3\x89\x06\x99Y\xbb\v\xf3\xec4\x9e+]P楤\xfa\xe11]\xa4\x9bQ\xdf\x03\t\x91\xf8\xadZnl\xdc\xc5\xf8\xcb\xd70\xa7\x10y\x1b\xb3\xc6_p\xca\b\xe6\xe2\x19|\x03mD\xadx\x18\x82\xd5\xe1,\x9a\vV\xcd\xfaVA\xb2\x1e\x8c5\x90L\x03/y)H\x96\xea\x01A$/\xb9/\x874k\xfdZށ1\xf3:y\xd3&\a\xea\xf7\\,\xc6\xf6\xafyñ\x1b\a \xd1`(r\xf3\xa5\xa2@\x06\x1eERI\x16\x83K\xa1\x86jf\xe2\n\xdcQ\xec}PI\xf3f\xd8۸Q\xf3\x05") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b588596fe5fecb2a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b588596fe5fecb2a new file mode 100644 index 00000000000..1f3bcefab80 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b588596fe5fecb2a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x01XM\x8d\xde=\xf1\\\xc9\xf1\t'4ׅ\ue538\x95\xb1\"\r_\xbfG%\t\xa3\x84\x04") +[]byte("\x01\x00") +[]byte("\xcb") +[]byte("\xcbX\x01M\x8d\"\x04") +[]byte("X\x8d'MX#%\x00") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b5cd7077a07b79ab b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b5cd7077a07b79ab new file mode 100644 index 00000000000..ad8ce860301 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b5cd7077a07b79ab @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xa2\xec\x01a") +[]byte("\xa7") +[]byte("\xa2") +[]byte("\xa7\xec\x01") +[]byte("\xa2\xec\x01a") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b6b579c95a9f2032 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b6b579c95a9f2032 new file mode 100644 index 00000000000..4b6d8ced8e1 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b6b579c95a9f2032 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("B") +[]byte("81") +[]byte("z0x") +byte('\u0093') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b86a252eec71c70037eb21f9df61718d0d817fbf207d911a3754bd0e97f7afe8 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b86a252eec71c70037eb21f9df61718d0d817fbf207d911a3754bd0e97f7afe8 new file mode 100644 index 00000000000..8f5b90edc88 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b86a252eec71c70037eb21f9df61718d0d817fbf207d911a3754bd0e97f7afe8 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b8b7fcb7e40cdc42942be76e828c692d1d61cfca15d86f3d520379a33f67a767 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b8b7fcb7e40cdc42942be76e828c692d1d61cfca15d86f3d520379a33f67a767 new file mode 100644 index 00000000000..3ec131e1394 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b8b7fcb7e40cdc42942be76e828c692d1d61cfca15d86f3d520379a33f67a767 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\xdf") +[]byte("\xdfuQ\b\x16\xb6") +byte('!') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b91a7a020d7503d751f03ec88810602e75e4e2c816977b85ffc32e7cee51fff1 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b91a7a020d7503d751f03ec88810602e75e4e2c816977b85ffc32e7cee51fff1 new file mode 100644 index 00000000000..e087203e6e9 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/b91a7a020d7503d751f03ec88810602e75e4e2c816977b85ffc32e7cee51fff1 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x01X+\x8d\x04") +[]byte("\x01\x00") +[]byte("\xcb") +[]byte("\xcbX\x01M\x8d\x8d\x04") +[]byte("\xcbX\x01M\x8d\x8d\x04\x00") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bc6aed70917e0ad389786593534d68699bbf040e8a81cae987c5a39269de1437 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bc6aed70917e0ad389786593534d68699bbf040e8a81cae987c5a39269de1437 new file mode 100644 index 00000000000..548eb8a7cc9 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bc6aed70917e0ad389786593534d68699bbf040e8a81cae987c5a39269de1437 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0LE\xe6") +[]byte("0LE\xe6W\xef") +[]byte("0") +[]byte("0LE") +[]byte("0LE\xe6W\xef.YᦹF\x9a\xd1\xfaO^J\x99W\x16\x02\xa3\xa1H8\xa0\x04j\x91\x14\x9e\xd0") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bc6d4b77ba5ae31d7cae96bf145cb3baf72ae9b3b6aebe798ae96061f221355c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bc6d4b77ba5ae31d7cae96bf145cb3baf72ae9b3b6aebe798ae96061f221355c new file mode 100644 index 00000000000..7e6b68c0923 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bc6d4b77ba5ae31d7cae96bf145cb3baf72ae9b3b6aebe798ae96061f221355c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m[\xa6iiiii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bc70f430feaeef2c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bc70f430feaeef2c new file mode 100644 index 00000000000..6c3388320a1 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bc70f430feaeef2c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("\x80") +[]byte("\x80") +[]byte("\x80") +[]byte("0B000A00") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/beedaf68a441c47d54d538f0ed089be88b83cd5e7644d9e43be76dce5df05104 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/beedaf68a441c47d54d538f0ed089be88b83cd5e7644d9e43be76dce5df05104 new file mode 100644 index 00000000000..eecd8d63bdf --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/beedaf68a441c47d54d538f0ed089be88b83cd5e7644d9e43be76dce5df05104 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("22") +byte('\x00') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bff70686510c5cced0cb2db9f9242b6776fe84b88279970ccdd0a624c144c61e b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bff70686510c5cced0cb2db9f9242b6776fe84b88279970ccdd0a624c144c61e new file mode 100644 index 00000000000..901fa6cd610 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/bff70686510c5cced0cb2db9f9242b6776fe84b88279970ccdd0a624c144c61e @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\x00\x01\x00\x00ii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c0526c4ad2d93dbe9a9aa04aeec9f8e7b57d72b3f95cb630ee45499500f2b6c3 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c0526c4ad2d93dbe9a9aa04aeec9f8e7b57d72b3f95cb630ee45499500f2b6c3 new file mode 100644 index 00000000000..5403d73f638 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c0526c4ad2d93dbe9a9aa04aeec9f8e7b57d72b3f95cb630ee45499500f2b6c3 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("C\xcbS\x8e\xefd3\xe8\bˣ]\x80\x14\x1f\xc1@'\xa6\xe4\xdf") +[]byte("\xdfutQ\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c0b4e99f15ba7fac b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c0b4e99f15ba7fac new file mode 100644 index 00000000000..480c736dc0e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c0b4e99f15ba7fac @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0127") +[]byte("000000") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c12326ae90a8f4e745c92e49d678d9b91b67bf57263d7c43ceba1b1a67eb67a1 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c12326ae90a8f4e745c92e49d678d9b91b67bf57263d7c43ceba1b1a67eb67a1 new file mode 100644 index 00000000000..da0bac79605 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c12326ae90a8f4e745c92e49d678d9b91b67bf57263d7c43ceba1b1a67eb67a1 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x03XM\x8dC\x04'\xc2") +[]byte("\x01\x00") +[]byte("\x01") +[]byte("\xcb") +[]byte("\x01\x00\x00") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c17cc1da48f7d408 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c17cc1da48f7d408 new file mode 100644 index 00000000000..33a6aa2c4d3 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c17cc1da48f7d408 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x01XM\x8d\x04") +[]byte("\x01\x01") +[]byte("\xcb") +[]byte("\xcbX\x01M\x8d\x8d\x04") +[]byte("7A2") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c24a1a6f986841fa b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c24a1a6f986841fa new file mode 100644 index 00000000000..6cf7875f0cb --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c24a1a6f986841fa @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('°') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c32ec3b62a3829bf b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c32ec3b62a3829bf new file mode 100644 index 00000000000..f4ff0511596 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c32ec3b62a3829bf @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("1Y91a") +[]byte("Z2\x00\x00") +[]byte("7\x00 \x00") +[]byte("\x00") +[]byte("007") +byte('\f') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c5f67b9db9785b095cba597383ba6c5d452b32e8f1c760ebf7ff24d99d20c27c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c5f67b9db9785b095cba597383ba6c5d452b32e8f1c760ebf7ff24d99d20c27c new file mode 100644 index 00000000000..43cc5f6b2b5 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c5f67b9db9785b095cba597383ba6c5d452b32e8f1c760ebf7ff24d99d20c27c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("d") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0\xb3\xf7.s\x99\xe7\xd4g5k\aT\xa5\xf3Tݖ\x8cRؕ\x1d\xae\x84N?Ҋ\xc5O^\xfc\xc9\xfcl\xa2\x10\xd1\xe4I\x91S\xf3\x9c\xbeH\xaf\xc0\xc0\x1d\x81\xffD\xb4\xbf\x8f\x94\xf7\x06\x01\x89\xeaV\xc2}\xdb\xf5VRء\xf1\x86 K좑۽\x8f\x8e<\x96\xf2\v\xc0\x88\x02\x16\x921*:\xe7صg\xfb\xdf\xc7\x15\x8b^\xd8\xc5\x1d7p\xfbk\xa3\xfdAA\x91\x83\t\xa3%\x92FI\xd1\xc7\bG\xd4c\xc3\n\x8cR\xc5\xef\xe7f\x01\xde\x05\x13\xacN\xe2݁J\xff/\u007f;W\uefeefg\xa8\xb0PF\xf9\x1a\x0f\x02\xd85*\x85\x02\vO)\xf6\x18\t\xa5\x8f=\xb5\xd2\x05\xca\xdf\x05\xa2\t/92\xb2(Ň\x85\xa9{\xddz<,X\x03h!\xf7\xacۍ)\xb2\x003zg\xe0\xe9\xf0\xc9\xee\x99\xc0X\xdd#\x1f\r\xf1\x80\xac6kYy\xb8Q2\xf4ո\xb6\xbf\x02g\x9b\x06ǣb{~\x80\xf4\x99\xeeۗ\xe3\n(3\x14\xd7\x02vi$\xea=\x05;y\x9d\x9b\xf5\x87|(\x9fpU\x18\x89V\x1a\xf8\x93\xe5\x98\x19Њ\x00;Z\xa9\xb05\x87\xd2\x1b\a\xb9*\b\xdd\x1d|\x1c!\xe2p\xb5=n^X\x8f\x86\xd8*\xf7Z\xe1\u007f\fQ\"\xaf;WN\x1bNU|Asl\xce:\x8a\xcaL\x8b/\xeb\v\xa7N)5\xed_\x8a\x06S\xac0\x9b\xfb\u007fy6\x8eQ*Y\xe1\xf4\xca+G=\xb3x\xbf\bP\xf8\x04\x92Cz\x8a\xf2N\xea\xf6\xa8\xf6\x12-\xe8'#~\xefe\x19c\x85U\x11\xc2z4\x8b\xe8\x8eJ\xc6\xc9\xfb\x9fGm#yf.\xfb\xa7\x9b\xc3\x1a~\x1f\x98f\xe5\xf7\tS_\xf9\xa6\x1cY\xf3{\xb9/\xd1\x1a}#T\xb6_e\xcf\x02F\xfd\b\x06\x86̅\xf1,\"+\xc6\xe3\x1f\xf1\v\x18)\xfc.$\xfe\\b\xb9\xea\xf5\x90\xd4\r\xa8XvLX\x16(\xb8\xac\x144\x18Άa&C\x15\xf4\x1567\xe4!\xe1\x00\xec\x86\"\xa3Y\x14R0\x00\xac[q\xbe\xd4M\xd3\xc8\x00\xe36(ռ\xed%\x10\x81\xe6@7\xedo\xec\xf5\xbbY\xfa\xb5\xe2m\xa7f'\xd1\"\xe5_w0\xecc2\xaf\xc0\xe51y6\x9ce\x87\xddQ\xbeo\xa6\x1e\xf0\xf4\xaf\u007f\xf9\xe3p\x8a\x96\xf8p\x1d\x17\x9f\x95\xba\x0e5\xf8LJ\x97x-\x95AB\xda#U\xb4E>\xedA?\xf3b\t.\x0e\x15Ϻ\x00s\xf83\x1e\x88\x9f\x1dv$J\x93_s\x98\xe2\xffgJ|\xf9\x9f\v\xe7n\xa8\x12\xaa\x879\xa9\xa0>\xbbJw{\x80\x18xN\xfc@\xf5\xf8\xbf~\xe7\x93R!\xcb\xc0\xf1x\xe2@\xb8>\x8b/\x913\x02\xb3\xf0\xa2\xa4SM.z\xa5&\xb4\x95\x0eǕ~\xe5+\xf7\nQ\xa8\x0f\xf9\xc3|\xe4\xea\x8dq\x90죗\xd2\xce\x1a\xb6\xab\x91\x9d$Lm;?\xf3 \x898'\xd0\t\xfd\x15\xcc}\xa9j\xa0X\xff\x10p>\x8a\xbe\xfako\x03\b\x04\xbc\xed\xe3b\x8f\x15\xf6\xcbP\xfdR\r\xb9\x1fE\xc4\x18\xb3)\xd0\r]7\x88\xbf\xf86\x0f\x9e\xdbM\x8f\x87\xc0\xb8)\xcc\x10/paZ\xe0\x05\x92\xbd[\xcc\x19+`.\xd2w?o\xf5\xa0Np\xa6\x01/v\xff\xa1\x9bq\x94\xa5\xaa\xa6\xee)}B\x92c\xa7\x9bڅ\xa5AW\x17\xff\xd5\xefػr=Q=\x9ar\xfb\xa40\xeaQ\xf1;O\x03EN\vI{\x11!\xa2\xc9\xc6\xc7i\xd1UPL\xb7\xb3K\x01Ѩ\xaeD\xea\x80*5\xd1\xd5/\xb6\xe2\xd5N\x9e\xd3") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c8f39cdb47e0e791c39b54720de0ef50d41fcc0e94e0a68bea360a5ba3c1afee b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c8f39cdb47e0e791c39b54720de0ef50d41fcc0e94e0a68bea360a5ba3c1afee new file mode 100644 index 00000000000..f58930b2420 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/c8f39cdb47e0e791c39b54720de0ef50d41fcc0e94e0a68bea360a5ba3c1afee @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte(" \xad\x16\xc4\x1f") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/ca3f9f1a99647d26 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/ca3f9f1a99647d26 new file mode 100644 index 00000000000..25c2277f2ce --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/ca3f9f1a99647d26 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("C") +[]byte("9") +[]byte("0") +[]byte("0000000000") +byte('Ä') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/cb2b3e19a54f7b1148a2c8c46550b00c4323c25bdbb73983a9c954594084e6d8 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/cb2b3e19a54f7b1148a2c8c46550b00c4323c25bdbb73983a9c954594084e6d8 new file mode 100644 index 00000000000..85c2d9f6ee3 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/cb2b3e19a54f7b1148a2c8c46550b00c4323c25bdbb73983a9c954594084e6d8 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xa7\xec\x01a") +[]byte("\xa7") +[]byte("!") +[]byte("\xa7\xec\x01") +[]byte("\xa7\xec\x01a") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/cd232ca4732cee3912581ab2b60cab102b92d5de1624e8f3ae7afaa05eafe7ec b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/cd232ca4732cee3912581ab2b60cab102b92d5de1624e8f3ae7afaa05eafe7ec new file mode 100644 index 00000000000..2b6849818c1 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/cd232ca4732cee3912581ab2b60cab102b92d5de1624e8f3ae7afaa05eafe7ec @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x17\x1dDʢ\xa2\xa2\xa2\x00\xa2\xa2\xa2\xa2\xf9^\xc0ƪ=") +[]byte("\xcd") +[]byte("\xe8") +[]byte("\xe8") +[]byte("\x17\x1dO\xca\xf9^\xc0ƪ=\xf8S\x05\x1dB\x94\xc0V\x12\x19=ʩ\x80") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/cf2ad641c6d15aaf b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/cf2ad641c6d15aaf new file mode 100644 index 00000000000..3553ee9538a --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/cf2ad641c6d15aaf @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("7") +[]byte("X") +[]byte("1") +[]byte("A12") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d04bfeab54c0f1a2c645005dc14bfd6c7b4c47f3eb105e8b43d4a0fee256c47b b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d04bfeab54c0f1a2c645005dc14bfd6c7b4c47f3eb105e8b43d4a0fee256c47b new file mode 100644 index 00000000000..3dc3b2e7d6f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d04bfeab54c0f1a2c645005dc14bfd6c7b4c47f3eb105e8b43d4a0fee256c47b @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x80") +[]byte(" ") +[]byte("&") +[]byte(" ") +[]byte("70") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d172fff99c82ebb42fcdc45cbbcaf5046c9ff3da3f5fa4b42c89dcc1ecd90a42 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d172fff99c82ebb42fcdc45cbbcaf5046c9ff3da3f5fa4b42c89dcc1ecd90a42 new file mode 100644 index 00000000000..d4b390dfb38 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d172fff99c82ebb42fcdc45cbbcaf5046c9ff3da3f5fa4b42c89dcc1ecd90a42 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00\xc7\xdfu\xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\xdf") +[]byte("\xdfuQ\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d1803357dbaac00a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d1803357dbaac00a new file mode 100644 index 00000000000..e7a90fab048 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d1803357dbaac00a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0000000000000000000000000000000000") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d2af8bc122cb6223 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d2af8bc122cb6223 new file mode 100644 index 00000000000..608b625f523 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d2af8bc122cb6223 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("120") +[]byte("0") +[]byte("ZC1zX9XZ0B0Y0") +byte('-') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d31defd969621711 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d31defd969621711 new file mode 100644 index 00000000000..da7ecbee820 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d31defd969621711 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("M") +[]byte("0") +[]byte("0") +[]byte("00000000") +[]byte("00") +byte('F') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d3a4ac3ba0f78575d887fd4081b9db065fd6e438d016aeed8241eca8efaf7986 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d3a4ac3ba0f78575d887fd4081b9db065fd6e438d016aeed8241eca8efaf7986 new file mode 100644 index 00000000000..cbc592ba186 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d3a4ac3ba0f78575d887fd4081b9db065fd6e438d016aeed8241eca8efaf7986 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x01XM\x8d\x04") +[]byte("\x01\x00") +[]byte("\xcb") +[]byte("\xcbX\x01M\x8d\x8d\x04") +[]byte("\xcbX\x01M\x8d\x8d\x04\x00") +byte('(') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d545a1f08f6c8304744182c12491dce389aa094eb7ba0c26189b5e11092ff4bf b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d545a1f08f6c8304744182c12491dce389aa094eb7ba0c26189b5e11092ff4bf new file mode 100644 index 00000000000..3d5b4a63e8f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d545a1f08f6c8304744182c12491dce389aa094eb7ba0c26189b5e11092ff4bf @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xcb\x01X+\x8d\x04") +[]byte("\x01\x00") +[]byte("\xcb") +[]byte("\xcbX\x01M\x8d\x8dU\xf7\x14\x86D̥\\\xed\xc9\xe8`\xf4J8\xfd\xc1\xa1\xb7\xb1Ġ\b4&\x04") +[]byte("\xcbX\x01M\x8d\x8d\x04\x00") +byte('\a') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d68db16d56595759 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d68db16d56595759 new file mode 100644 index 00000000000..adcc13f53d1 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d68db16d56595759 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte(" ") +[]byte(" ") +[]byte(" ") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d840212e7358e2558eafb1f52ad3020067c83196950237ea0a450f9af1e2fc90 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d840212e7358e2558eafb1f52ad3020067c83196950237ea0a450f9af1e2fc90 new file mode 100644 index 00000000000..5218ebf1a1a --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d840212e7358e2558eafb1f52ad3020067c83196950237ea0a450f9af1e2fc90 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00UBY\x89pU\x00\x00") +[]byte("\x01\x00\x00\x00") +[]byte("\x01\x00\x00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d97d641a7d126aff1bf7be2fd7a8c033118400950372d459cf3abd72bd3d567e b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d97d641a7d126aff1bf7be2fd7a8c033118400950372d459cf3abd72bd3d567e new file mode 100644 index 00000000000..7fa0874db1d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d97d641a7d126aff1bf7be2fd7a8c033118400950372d459cf3abd72bd3d567e @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00iii\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("yy\xe7\x01m[\xa6iiii\x11iiiiiiiii\x00\x00\x00\x00 iii\xd5G\x82i") +[]byte("yy\xe7\x01m[\xa6iiii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d9a79eaef0920c969764a6530cbd97a5713c166105c09e3fbfa591b1924e3abc b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d9a79eaef0920c969764a6530cbd97a5713c166105c09e3fbfa591b1924e3abc new file mode 100644 index 00000000000..dbf28bd9e17 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d9a79eaef0920c969764a6530cbd97a5713c166105c09e3fbfa591b1924e3abc @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xff\xec") +[]byte("\xa7") +[]byte("!") +[]byte("\xa7") +[]byte("\xa7\xec\x01 ") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d9b61f439ffc2bebcbebdac0064fdceec1378a1bdf22ec3acbd0a88c428e9e52 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d9b61f439ffc2bebcbebdac0064fdceec1378a1bdf22ec3acbd0a88c428e9e52 new file mode 100644 index 00000000000..31f376cf1f2 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/d9b61f439ffc2bebcbebdac0064fdceec1378a1bdf22ec3acbd0a88c428e9e52 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0\xb3\xf7.s\x99\xe7\xd4g5k\aT\xa5\xf3Tݖ\x8cRؕ\x1d\xae\x84N?Ҋ\xc5O^\xfc\xc9\xfcl\xa2\x10\xd1\xe4I\x91S\xf3\x9c\xbeH\xaf\xc0\xc0\x1d\x81\xffD\xb4\xbf\x8f\x94\xf7\x06\x01\x89\xeaV\xc2}\xdb\xf5VRء\xf1\x86 K좑۽\x8f\x8e<\x96\xf2\v\xc0\x88\x02\x16\x921*:\xe7صg\xfb\xdf\xc7\x15\x8b^\xd8\xc5\x1d7p\xfbk\xa3\xfdAA\x91\x83\t\xa3%\x92FI\xd1\xc7\bG\xd4c\xc3\n\x8cR\xc5\xef\xe7f\x01\xde\x05\x13\xacN\xe2݁J\xff/\u007f;W\uefeefg\xa8\xb0PF\xf9\x1a\x0f\x02\xd85*\x85\x02\vO)\xf6\x18\t\xa5\x8f=\xb5\xd2\x05\xca\xdf\x05\xa2\t/92\xb2(Ň\x85\xa9{\xddz<,X\x03h!\xf7\xacۍ)\xb2\x003zg\xe0\xe9\xf0\xc9\xee\x99\xc0X\xdd#\x1f\r\xf1\x80\xac6kYy\xb8Q2\xf4ո\xb6\xbf\x02g\x9b\x06ǣb{~\x80\xf4\x99\xeeۗ\xe3\n(3\x14\xd7\x02vi$\xea=\x05;y\x9d\x9b\xf5\x87|(\x9fpU\x18\x89V\x1a\xf8\x93\xe5\x98\x19Њ\x00;Z\xa9\xb05\x87\xd2\x1b\a\xb9*\b\xdd\x1d|\x1c!\xe2p\xb5=n^X\x8f\x86\xd8*\xf7Z\xe1\u007f\fQ\"\xaf;WN\x1bNU|Asl\xce:\x8a\xcaL\x8b/\xeb\v\xa7N)5\xed_\x8a\x06S\xac0\x9b\xfb\u007fy6\x8eQ*Y\xe1\xf4\xca+G=\xb3x\xbf\bP\xf8\x04\x92Cz\x8a\xf2N\xea\xf6\xa8\xf6\x12-\xe8'#~\xefe\x19c\x85U\x11\xc2z4\x8b\xe8\x8eJ\xc6\xc9\xfb\x9fGm#yf.\xfb\xa7\x9b\xc3\x1a~\x1f\x98f\xe5\xf7\tS_\xf9\xa6\x1cY\xf3{\xb9/\xd1\x1a}#T\xb6_e\xcf\x02F\xfd\b\x06\x86̅\xf1,\"+\xc6\xe3\x1f\xf1\v\x18)\xfc.$\xfe\\b\xb9\xea\xf5\x90\xd4\r\xa8XvLX\x16(\xb8\xac\x144\x18Άa&C\x15\xf4\x1567\xe4!\xe1\x00\xec\x86\"\xa3Y\x14R0\x00\xac[q\xbe\xd4M\xd3\xc8\x00\xe36(ռ\xed%\x10\x81\xe6@7\xedo\xec\xf5\xbbY\xfa\xb5\xe2m\xa7f'\xd1\"\xe5_w0\xecc2\xaf\xc0\xe51y6\x9ce\x87\xddQ\xbeo\xa6\x1e\xf0\xf4\xaf\u007f\xf9\xe3p\x8a\x96\xf8p\x1d\x17\x9f\x95\xba\x0e5\xf8LJ\x97x-\x95AB\xda#U\xb4E>\xedA?\xf3b\t.\x0e\x15Ϻ\x00s\xf83\x1e\x88\x9f\x1dv$J\x93_s\x98\xe2\xffgJ|\xf9\x9f\v\xe7n\xa8\x12\xaa\x879\xa9\xa0>\xbbJw{\x80\x18xN\xfc@\xf5\xf8\xbf~\xe7\x93R!\xcb\xc0\xf1x\xe2@\xb8>\x8b/\x913\x02\xb3\xf0\xa2\xa4SM.z\xa5&\xb4\x95\x0eǕ~\xe5+\xf7\nQ\xa8\x0f\xf9\xc3|\xe4\xea\x8dq\x90죗\xd2\xce\x1a\xb6\xab\x91\x9d$Lm;?\xf3 \x898'\xd0\t\xfd\x15\xcc}\xa9j\xa0X\xff\x10p>\x8a\xbe\xfako\x03\b\x04\xbc\xed\xe3b\x8f\x15\xf6\xcbP\xfdR\r\xb9\x1fE\xc4\x18\xb3)\xd0\r]7\x88\xbf\xf86\x0f\x9e\xdbM\x8f\x87\xc0\xb8)\xcc\x10/paZ\xe0\x05\x92\xbd[\xcc\x19+`.\xd2w?o\xf5\xa0Np\xa6\x01/v\xff\xa1\x9bq\x94\xa5\xaa\xa6\xee)}B\x92c\xa7\x9bڅ\xa5AW\x17\xff\xd5\xefػr=Q=\x9ar\xfb\xa40\xeaQ\xf1;O\x03EN\vI{\x11!\xa2\xc9\xc6\xc7i\xd1UPL\xb7\xb3K\x01Ѩ\xaeD\xea\x80*5\xd1\xd5/\xb6\xe2\xd5N\x9e\xd3") +byte('\x01') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/db08e1d09af84a94 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/db08e1d09af84a94 new file mode 100644 index 00000000000..93aaacc209a --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/db08e1d09af84a94 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0000000000000000000000000000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/db4436256e1918dc b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/db4436256e1918dc new file mode 100644 index 00000000000..942b427ff04 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/db4436256e1918dc @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("f\x03\xcc\x16\x92\x95\x80\x00") +[]byte("\x9a") +[]byte("Y") +[]byte("\xc9") +[]byte("0X") +byte('2') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/ddee2f30fd0ced2d b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/ddee2f30fd0ced2d new file mode 100644 index 00000000000..641c0125b4f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/ddee2f30fd0ced2d @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00000000000000000000000000000000") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e116bec86aad6799 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e116bec86aad6799 new file mode 100644 index 00000000000..c16e41e43af --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e116bec86aad6799 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('_') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e1cdb71537fc53949dd34d1102edb4b726de54ba3c14fa5923a41499f6d43231 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e1cdb71537fc53949dd34d1102edb4b726de54ba3c14fa5923a41499f6d43231 new file mode 100644 index 00000000000..45d26ed2e8f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e1cdb71537fc53949dd34d1102edb4b726de54ba3c14fa5923a41499f6d43231 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0\xf46\xf1\xf8N\xef\xbf\xc0\x99aū\xee\xc0\xe5'\xf7+1*\x14\xa7\\\xa7\xc7c\xbafG\xd0%\xab\xf3k\xf83W\xd1\xf7g\x11\xb5v\xe3`\xe1ߦ\xafũ\xb0\xaa\xb7YIT!\xdca{t\xb6\xb0#\xbe\xb7\xf4\x98\xf6\x88\x98Va\x1f\f\x89\x96.b\xb8\xb4a\xe4EA\x01\x15p\x05\xf0\xcf\xf5\x1c\x87\xb0\xe6\u0092/!\xcc\\\xa3,F\u007f\xdb\xeb6p˝IlE\xe9\xc7\xe6\x97L꾕\xd0\xfd\xf8Mw|\xff&]\aͼDR)\xc1\x95A\x9e;9\x03\xa6\x9c\xf1\xc2\a2\xbfe\x06XzC\x85IW\x9dq\xc2\x0e\xb8\xeb\\\x99I\xdd\x1c\xd1\xcaɱ7\x9c\xd7Ʒ[\x8d)\x86G\x9aP\x9e<\x8c9*\xc6)\x14\xbeQ\xd8i\x8e\x02\x00\xd9Q3ne\xb8\x8cJ\xd7(+\xcf\xfdvD\xdf\f\xeb\x04\xc3\xed\xcd\xd9\xe5k\xcc+P98\x89$\x86;\xf6\x12\xe1$\x1fH\xa2\xe0\xe9\xaaR\xe9\xdb\xca}\x98\x89\x8d蜻^8\x9f\x84\xd8oP\x15E\x01D\xc3\xd2d\f\x10-\x9f\x1f\xf6\x11\x9726\x00\xe5\xfd^)AN2\x19Z\xf7\x91\x18\n\x8cj\x1c\xd3\x0e\x9b\x12\xcc\xeb\x06\xcc\xc0^\xe4\xabh\xb6i\x95Nݫ]!\x17\xb4\x8d\xf7") +[]byte("00000000") +[]byte("00") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e1d7591c7410c871499be14484e259354d7154dbeaa4d2451c6fdbd75376de2f b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e1d7591c7410c871499be14484e259354d7154dbeaa4d2451c6fdbd75376de2f new file mode 100644 index 00000000000..4681b96e907 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e1d7591c7410c871499be14484e259354d7154dbeaa4d2451c6fdbd75376de2f @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00Ǔ \xd2\x00 aG\xdeGa") +[]byte("u") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\xff") +[]byte("\xdfuQ\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e2c3ac1d8b3a2c62f0c4546d0a1a86483073205855e6b20719629bc1d3aaa1b5 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e2c3ac1d8b3a2c62f0c4546d0a1a86483073205855e6b20719629bc1d3aaa1b5 new file mode 100644 index 00000000000..5ba04083e91 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e2c3ac1d8b3a2c62f0c4546d0a1a86483073205855e6b20719629bc1d3aaa1b5 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x17\x1dDʢ\xa2\xa2\xa2\x00\xa2\xa2\xa2\xa2\xf9^\xc0ƪ=") +[]byte("\xcd") +[]byte("\x01") +[]byte("\xcd") +[]byte("\x17\x1dO\xca\xf9^\xc0ƪ=\xf8S\x05\x1dB\x94\xc0V\x12\x19=ʩ\x80") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e313080d525daa83 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e313080d525daa83 new file mode 100644 index 00000000000..b3f72ab9f70 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e313080d525daa83 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("400000000000") +[]byte(" ") +[]byte("4") +[]byte("z") +[]byte("00") +byte('û') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e3a5234dfe52cf5d b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e3a5234dfe52cf5d new file mode 100644 index 00000000000..54801cb5698 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e3a5234dfe52cf5d @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("00000000000000000000000000000000") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('2') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e46e3202b5de2064 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e46e3202b5de2064 new file mode 100644 index 00000000000..ea601e4f7b1 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e46e3202b5de2064 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("00") +byte('L') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e99d98a7070b9740 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e99d98a7070b9740 new file mode 100644 index 00000000000..6b71411d1cc --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e99d98a7070b9740 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("1") +[]byte("!") +[]byte("\xa7\xec\x01") +[]byte("00") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e9ff902cd55a14b6fcc788771976e9e0e9705dca0e1e97383c40ec19c5f025b0 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e9ff902cd55a14b6fcc788771976e9e0e9705dca0e1e97383c40ec19c5f025b0 new file mode 100644 index 00000000000..c6eeef65c73 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/e9ff902cd55a14b6fcc788771976e9e0e9705dca0e1e97383c40ec19c5f025b0 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xdfuQ\b\x00\x00\xc7\xdfu\xd2\x00 aG\xdeGa") +[]byte("!") +[]byte("u]Qa\x16\xb66\xf6\x13}\xddRx[f?\xae\x1fo\aB\xf7") +[]byte("\xdf") +[]byte("\xdfuQ\b\x16\xb6") +byte('\x04') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/ed1187e2b11d2e03 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/ed1187e2b11d2e03 new file mode 100644 index 00000000000..cb94f39b87c --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/ed1187e2b11d2e03 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x80") +[]byte("\x80") +[]byte("z") +[]byte("00000000") +[]byte("00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/efa4981c756bc5ae3db729125786da45aa29da53e2b617918357b21969dc1d65 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/efa4981c756bc5ae3db729125786da45aa29da53e2b617918357b21969dc1d65 new file mode 100644 index 00000000000..56071b1097d --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/efa4981c756bc5ae3db729125786da45aa29da53e2b617918357b21969dc1d65 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x17\x1dDʢ\xa2\xa2\xa2\x00\xa2\xa2\xa2\n\x8dFf\x1a\xe2\xa2\xcb1\xf9^\xc0ƪ=") +[]byte("\xcd") +[]byte("\x01") +[]byte("\xcdV\x95\\AHeX\xf3") +[]byte("\x17\x1dO\xca\xf9^\xc0ƪ=\xf8S\x05\x1dB\x94\xc0V\x12\x19=ʩ\x80") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f060280a7ec0cc24d368c664a8f5a9f11cd7b2ec20f1d1a617b44c7bec81efea b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f060280a7ec0cc24d368c664a8f5a9f11cd7b2ec20f1d1a617b44c7bec81efea new file mode 100644 index 00000000000..57ab3bafeaf --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f060280a7ec0cc24d368c664a8f5a9f11cd7b2ec20f1d1a617b44c7bec81efea @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xa7\xec\x01a") +[]byte("\xa7") +[]byte("!") +[]byte("\xa7\xec\x01") +[]byte("\xa7\xec\x19\xadMx\xc1};E;/\x80\x01a") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f0f172c1b84cede1588c50a7581c4f26e733fd9aaa1234c23049ebd1f7fedcf5 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f0f172c1b84cede1588c50a7581c4f26e733fd9aaa1234c23049ebd1f7fedcf5 new file mode 100644 index 00000000000..8fd4f1df3e6 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f0f172c1b84cede1588c50a7581c4f26e733fd9aaa1234c23049ebd1f7fedcf5 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00i") +[]byte("y\xe7\x01m[\xa6iiiii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("[\xa6") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f26c7ba7a79565e9 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f26c7ba7a79565e9 new file mode 100644 index 00000000000..dcdff85e722 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f26c7ba7a79565e9 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("\xe8") +[]byte("0") +[]byte("01") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f2bf2a5224eb4c93 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f2bf2a5224eb4c93 new file mode 100644 index 00000000000..ab095c7af48 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f2bf2a5224eb4c93 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("0") +[]byte("0") +[]byte("1") +[]byte(" 0") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f2e46905ce6c482a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f2e46905ce6c482a new file mode 100644 index 00000000000..cf015354fe6 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f2e46905ce6c482a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\xa6iiiii") +[]byte("y\xe7\x01m[\xfci") +[]byte("y\xe7+m[\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f46052c7735aaa57136d3ef415c203061ee1c5fc2120c3755e8b20cf38f040d1 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f46052c7735aaa57136d3ef415c203061ee1c5fc2120c3755e8b20cf38f040d1 new file mode 100644 index 00000000000..96efcc15185 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f46052c7735aaa57136d3ef415c203061ee1c5fc2120c3755e8b20cf38f040d1 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01\xb2iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m[\xa6iiiii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe4\x1c\xe7\x01m[\xa6") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f4b4021a5d03f4ee254eed62271d8816352eabb127e7a96c00f955656143d56a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f4b4021a5d03f4ee254eed62271d8816352eabb127e7a96c00f955656143d56a new file mode 100644 index 00000000000..829dae41a8f --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f4b4021a5d03f4ee254eed62271d8816352eabb127e7a96c00f955656143d56a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G") +[]byte("y\xe7\x01m\xe0\xe0\xe0\xe0\xe0[\xa6iiiiiz\xf1\xf2\x0fka\x81Em\x8cUL\xbfv\xb1\xa29\x13\x91\x9c\x89*\x0e\xc6\xd8}\x9ee\x02[Kq*\xfa\x1a\xaa,\x9a\x1f\xfc\r\xb7\xa3\x9dȷeg\xcfd\v-5v\xeb\x13|FG\x8f9\xed\xb6Q\xaaIJ[\xbb,\xa8\xacd\x18*\x91\xfe\x964\xc3u\xff\x84\xfc\xfb\xe3 F\x19ACd\xecۓq\x1cl\x1a\xf40\a[\xe9\x03mu\\\xad\xa6\xa2q\x91\x91D\xb5\x8d+K\x1d܇\x14\x11\xa5\x13\xb9>\xe2t`7CD\x85\xf1p]\r\xf8&\x82v\x01\xaf\xbe\xe4q\x8f8\xd3\xf0\xe0\x8b\x0e\xfa\xc8h}\xa6\xe4\xa7\xe2b\xd9\aݷx\x13n9\r\xf9\x9fՠ$}\xf2`\xc4\x18\x05J\xb7k\xbf-\xff\xa4д\xc2I\x8d\xfads\xe0\x06\xee\b\xc0\f4z\xb4\x14.-2-\\6Ɗt\xbe$\xd4䭆\xb2Ris\xec#\x03ܷ\x80<\xf5\x02\xf6\xfd\xf4\x03qꖻ\xaf\a\xd9\xea\xfd,6\xff\"\xbcOk3\a]\x9c\x02\x0f\x14\x812n*\xaf\t\x9a\xb7Հ\xbaz<\xd8\b\xd4:\xcd\xdc\x03\x84\"\x047\n\x8b[\xb2B\xd6D\xca\\\x82\x8f\xb4d\xfe\xff\x87OQJH\x120%m\x9e3NB\x95HZ\xcd.\x97ژd\x8c\x88\xfa\xf7ݟ\x92 \v\xf8\v\xfd\x97嬜'4\x85\xe2\x99>\x8d3\x15\r]\x02(\x8a\xf6.\xa9\xb0\xe4\xf4\xb2\xd9\xeeO\xd1G\xcd՟\x19^\x1akЯ\xb8\xcd\x1d\x1al>\xc6\xf7N<\x1c,\x14r\xe5\xc0\xa1Fwcf\x96[\x83\xfajhϧ\xceJ0\xef7\xff\xe0\x1fã\xb4v\x8b\xca\x18%\xfb\xe3\x9at\xba\xc1;\x00\r\xc7d \xea\xbc\"G\x86\xc4\xeai{\xb0\xed8\xb6>M\xffb\xf7O\x1e\v\x8cca\xebU\xac\t\xd15\xd7\x04S\x98\xd05\xc9|آ\xc1\xf7\x9aK0\xa9;\r\x86\x19\t/\x90\xf8Ӱ$\x91\xbf\\\xc0\x8e\xc0\xcfd\x93\x90\xaa\x0e\xc0[\x17\xf7T\x99\xac\xfd\xd1\xea]\u0379\x13\u007f\xad\xf1\xb01\x00\xd3P\x80\x19}\xe9\xfc\xb1\xf2\x83\xee\xbf۰\xf5K\xfb1\xbaq\x05\x1a\xbf\xac\n!Iq%\xfd`E#\x9975븅\xe5\x82`\xf8f9\xbe*\xd2\x18{J\x11\xbd5W(\xf8\xa9p9\x89\x15L$\x92\x98\x8c\xe0d,Xe\x11\xf6%\xbb0W|\x05\xf7ߢ`\xc3Kz\x94\x83&\xb2U\x90vjўJ\x15\xedN\x1e\xc3\xe2y\xde \x8b6q}\xed\xd2i\xa8\x90&\xd0\U000eba5d\xad\x1cV\xe6\xed'\xd7\xd8[5\xa7j-\xe5\x89tsE\xd6jI\xc0O\xfeS*Qm\xe6\xa0\xe6倴\xe8է\x8b̝\xbd\xf1\x0e^\xb6Aw\xa2>k8\xa7\x9aJY\xb5\xb3G\x95\n\xf6\ue4a7\f\xfa\xaa\xf4,V\xbf\xfdQ\x0e\xb10\xfbi\xf7dz\xceE\xad\xd6b\xa2\xfd\xac'\xbe_\x16\u007f=\xb8\x06r1TR\xa3\x8aok\xe2Il\xbd6y\x02~h\xf4s\xee\x04o!\xa9\x8a\xb1B\xd09\x9d\x16\x1fޯ\x95y\xac\xfcx!:\xdc\xc2b5ͤ[\x03_\xdf\xcfH\xf5\x90K\x1ey\U0001ac7eD\xaa\x1f\xba\xbc\x1c-\xbeH\xc6RQ\x90 \x98\x1a\x8e,N\x84\x93R\x97\x1ec\x93\x83,\x12\xd5ԝ\x938\xb0\xf9\xf3\x1c\xf7\xee\x1e*\x18\xc1\xef\xff\xda\xf0\x9f#\xfd\xd9\xeaA\xd2\xd0\x1f\xc7e\x00\xb4\xe6#\xb2v\x1c{v\xeaSS\x94g\xb3\x00A#\xe8C\xcdp\x8f\x9bQ\x16\xf1\xa4\x06\x01\xd02\"8\xc0\x8fT\xe4\x12\xe5\xd5\xe3\xfd") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe7\x01m[\xa6") +byte('©') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f510e7a10865786c46481205fe7373cf6681a07b884ee932ea645c501a9d9b2a b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f510e7a10865786c46481205fe7373cf6681a07b884ee932ea645c501a9d9b2a new file mode 100644 index 00000000000..adba0d8b61e --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f510e7a10865786c46481205fe7373cf6681a07b884ee932ea645c501a9d9b2a @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00iiii \x82\xd5G\x9a\x00\x00") +[]byte("y\xe7\x01m[\xa6iiiii\x01iiiiiiiii\x00\x00\x00\x00i") +[]byte("y\xe7\x01m[\xa6iiiii") +[]byte("y\xe7\x01m[\xa6i") +[]byte("y\xe4\x1c\xe7\x01m[\xa6") +byte('ð') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f6b86e85dba81b71 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f6b86e85dba81b71 new file mode 100644 index 00000000000..3d5547d1ee3 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f6b86e85dba81b71 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\xa7\xec\x01a") +[]byte("\xa7") +[]byte("\xff") +[]byte("#") +[]byte("CAXZ") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f94a9848151c073c b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f94a9848151c073c new file mode 100644 index 00000000000..4a650564b09 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/f94a9848151c073c @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("200B97Ay0B10C17c9") +[]byte("C+") +[]byte("7B0") +[]byte(" ") +[]byte("208") +byte('\x02') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/fa2ba582a32f3c4d b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/fa2ba582a32f3c4d new file mode 100644 index 00000000000..5492957f111 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/fa2ba582a32f3c4d @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte("$") +[]byte("z") +[]byte("0") +[]byte("00") +byte('{') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/fa73cf98e372e378981b8aec0926ae20f036bac5f7ebc1ce94811e88bfb05ff7 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/fa73cf98e372e378981b8aec0926ae20f036bac5f7ebc1ce94811e88bfb05ff7 new file mode 100644 index 00000000000..94445b63c6c --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/fa73cf98e372e378981b8aec0926ae20f036bac5f7ebc1ce94811e88bfb05ff7 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("\x17\x1dDʢ\xa2\xa2\xa2\x00\xa2\xa2\xa2\xa2\xcb1\xf9^\xc0ƪ=") +[]byte("\xcd") +[]byte("\x01") +[]byte("\xcdV\x95\\AHeX\xf3") +[]byte("\x17\x1dO\xca\xf9^\xc0ƪ=\xf8S\x05\x1dB\x94\xc0V\x12\x19=ʩ\x80") +byte('*') diff --git a/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/fc249f6a6ead5679f61b6f95377742005c33c7a95241a82125bc3362c5eff390 b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/fc249f6a6ead5679f61b6f95377742005c33c7a95241a82125bc3362c5eff390 new file mode 100644 index 00000000000..1ddf1b531c2 --- /dev/null +++ b/erigon-lib/txpool/testdata/fuzz/FuzzOnNewBlocks/fc249f6a6ead5679f61b6f95377742005c33c7a95241a82125bc3362c5eff390 @@ -0,0 +1,7 @@ +go test fuzz v1 +[]byte("0") +[]byte(" ") +[]byte(" ") +[]byte("0") +[]byte("00\x99\x1e`?\xc3\xee8`\xf4\x17y\xd5|z)Mt\xd1Ŭ\xf5\x8b\x84$~\x0eV\xe3\x16\xe3x\xe9\x00*\xa2}\xc9#\xfb\xbee\xab\xe5\x83\x1dO\x16\xba\x838\"\x96JH\xb8\xa5L\xc8a˹6\x1b\xe8\xd8\xf8\xfctX\x8c\xc9\xd8\f\x03\xc6&\xc7R\xe3\f\xeaN\x90\xa3\x8a\x03\xe6\xb1@\x9d\xf7\x0eL\x8fR\xc5l\x98Ya\xd4\x1c\u007f\xe6^D]\x9d\x10*\xa2\xc9\xc5\xf7Q\xd7\x13 a\xc65\x9b(\xfcZ/\xeb#\xe6\x8d\x1f.\xdc\xdb}n\a9VlI\x9a\x06\x8fFB\xa0vf\x8f\xe0\x8a\x8f\xe2\xe8h!\xa6\x8a=\x18\x8e\x89\x8dN\x99\xf1~\xe9\x994\x10^\x92\x9a\x85\x8f\b\x1c\xe0\x8f\xe0۟@\x0fk\xd8\xf5\u05ce\xdb\x1d\x99\xaf\xb7=9\x9b\xa3\xbf\xd16\x1e뢷\xb4\x88\xf4\xd1\xe8\xed!J\x99\xaf\x16\xdd\xf9gW\x96_ՅF<\r\xce\xec8(5d\v\xb8\xcd1TR\xd7.q\xa4v|\xecg\x81\xab$\xf0\xa8M\xa8\x94\xf7Z=\x9d\x02\xe5\xecVa\xa9\xa6\xea\x13\x021e\xa5\x9e]خ#\xfb;F\x8e}{DU\xbb\x18\x01\xca\xfat5\xe7\xe7֎\xf7\x9bH\xb7\x1d4\\m\x17\xd3k\xaa\xf5\xdaK\xf3u\x0e\xf5\x1fœ\xff\x9b\xd0Yw\xa7\xfb,<\x8f\xdbfU.\xec*VEI!\x976\x04\xae\xb0\x02\xde砀\x11CЕx{\xd00m\xdeB\xe0\xef5\xa3*m\x04\x9b\xe7\xc3+홵ƿŞj\x8a\xf26\xeb\x83m\xf5\xc0})\xf4Cs$\x92=\x85\x04Ƭ\xf7DJ[\xecv\xd8\x1b<'/\U00019fa1\xe23\xd5\xf5Ն35\xa5Qɯ\x05\x9c\xfa;\xb8\u007f\x91y\xf6\xb8\xd7\xd2aMk\x03!R\xdf>\xfc\xab\x96$\x87\\\x86J\xe2Pbd@\x11\x80K}\x11q\xdaX[9\xeaHWݱ\xfa\x93\x16/\x00\x1d\x9e\xdc\xfb\x8f놣\xe4\xa2\u0088}^\xea\xb0ҭ\xe6#\xc6\xf2\xfb\xfe\xe4\xc7\xc8V*\xd82\x83\xfdO\xc6^\x17\x06\xc0S\x81\xd4\xd6g?C/\xbeb^u\x00\xe3\x15") diff --git a/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/61bad6c11050935c60bf7f0d15e40fbb20ec1a70dab26f62bf92a49706920440 b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/61bad6c11050935c60bf7f0d15e40fbb20ec1a70dab26f62bf92a49706920440 new file mode 100644 index 00000000000..4f8a952ff19 --- /dev/null +++ b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/61bad6c11050935c60bf7f0d15e40fbb20ec1a70dab26f62bf92a49706920440 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(215) +[]byte("\xb3\x1f\x06\xe0 P\xa7\xea\xea\xceꎓ\x93\x00\x00\x00@\xea\xea\xeeo\xea\xea\xea\xea\x93\xeb\xeavvvZ\x93\xf0\xb3\x93|\xee\x93\xea\x93\xeaa\xb8\x11\xea78\x03\xce\xea\x936\xea\x19\xa8\x93\x14?<\xb8\x00\xc46\xff\xe0}\xea\x97j\x93\xf36\x92\xea˓0\x93\x93Gn\xea\x0fꏃl\x96\xde\xfe\x93\x93\x05<\x96\x93\x93\xeaّ\xe4\"\x93\x00\x93l\x91\x93\x12\xea\xea\xff\xff\x80\x00\xea\x8c~~~~\x00\x15\x12\xea\xa3j\xa93\x83Z\x93!\xd0\v &\x81\x93\xb1h\x16\xe5n\vᓽ\xae\x93\x89\xbb\xcfTS\xea\n\x1d\x82\x93Vꓓ\xea\x17%8\x93\xa9,\xdej\xea1\xa2\x1ec\x93\xeac\xe2\r\b\x9e)\x93\x93\x92\x00u\x0ewM\xd5v\x14Z\x00\x1a\xeav\x8fLeRRRR\xc0\x93\x93\x93\x9cRFuў\xde|#\x93\xfb\xaa\x90\x9f\xd5\u007f\xff\x00@\x93\xe4z^S\x93\x933zT^\xe4d\x93\xe4\xf0\x04\x93\x05\xb6Q\x81\xa3\xe4\x90\xe3\xff\x9aOF\x17\x93j\xc3--$\xfc\xc4\xc5c}\xb45\xdc\xea\xea\x12u\xffV_Ⓠ\x9b\xea\x93\xf4\x00\xea\uf4d3\xe0g\x98\x1e\x01\x00b,b\xd2e\x9e\xf8\xf8\xf8\xf8\x93\xee\x80#R\x01:\x93\xac\xf2\xeaAH\x96v\u007f\xae\x00\x93\xfb\"Ѐ\xe0\xea\xd0\x00\xf0Փ\x06\xe4\xfe\x93\xb3\x93\xea\x03u\ue4d3Gf{\x032\x93\xc3@\x89ʓ\xb8U\x00\xc3\n\x8d,\xeb\x8e듎;\x93|\xb9g\xe4h\x93\xa5\x00\x85ϸ\xd2\u05f8)\xda\v\xf5\x1f\v\xddQ=\xf3\x04\x93\x93\xbf\xaf7\xeb\x93\xea\x97z\x86c\x18\x18\x18\x93\x93\xa0P\xff\x1a?sq\xf3\x93\x932\xd32fO\x91\x00\x00\x00\x10\x80$\x02\xa0\xc0\x93\x93\x93\x9c\xa6\x93v\x93\x93\x93\xdev\x0e\"^K\x00\x94\xf1\n\u007f\xf0\x18\xea7\x92a\x05ɓ;\x93\x9e\"\xec\x00\x00\x00@쓓\xb5\x93\x93\xb0\x93\x1b^\xb0\x00\xaf\x16\x19\x9f\xbc\xa5`\xf2\xea\xff\f\xc577\x01\x8e\x17|\xb6ep\xea5\x13\x98\xb3&\xd7\xeax'$\xa0\x92\u007f\xff\xff\u007f\xff\x01\x9c\xea\xff\u007f\xca\x00\x90\xa96\x00\x97\xb3\x13\x93\x92\x80*ۀ+\x93K\x1eIZ\xeaБ+\xcdW\xf9\x1e\x1b\x1b\x1b3\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\x1b\xfa]\x93\xeac\x82\xeb̓?\n\x91\ab\xf8%\xf6\x91'\xb8\x93r\xeaDŽ\x93{-\x00\xf0'\x118\xb0\x93\x15\x9c]\x1a\x80\x86\x86\x86\x86\x86\x86\x86\x86\rpzF{\x93\xa6\xeb\xc4?6s\xea}\x97U\n^\xeb\x12\x9e\x93|\x868\xf9\xd5\x00\x8f'ړ#P\x8d\x1b,A\xa9ӓ\x93F\xf0\xea\t\xea\xb7\a\xea\xdf=ۓ\xea\r\x1a\xea\xea\xcb\xe4\xean\x15\x93\x93\xff\xea\x05b\x91\x93\x00\xe4\"ꪓ\xee\x19z&&v\xfb\u007f\x932\u007f\xd3\x05\xe0l~\xea\xe7\xff\xea`\x88\xfb\x93\x93\xebJ\x03\x15X|\xf3\xafw\x93\xb0#\xa4f\xea\x10\x9b\xa6\xd9\xce@vÒA)#\xd7ܼ\x95\x9c\x1ci\x17\xfc\xea\xee\x0e\x13/\x00\x00\x10\x00\xd5S\xb5\xd7\xd4#\x93\xe5\x815G\b\xa4<\x93\xa1\x000z\x007ʩ\xea\x1a\x0ezj\xea(\x933\xa6\x93X\x93!>\x93\x14\x00\xea\xe2\x0e\x93\xe4\x87d\x93U\x80\x97\x93\x8e\x93c\x93K\xc6\xcc\xeaZ\xedJ˩\x9dݒ\x93\x9d6=y\xea\x00\nd\xd3\x1f\x93IZ\x82\u0604v}\xde\r\\\bD\xe2\xea\x93Z\x93}\xe9\xe5|\x04C\x92h\x93\xa5\x00\xda\x1b\xf5\x1f%o\u007fLŞ\"\v\xddQ=\xf3\x04\x93\x93\xea\x1a\x93~\xcf\xf1\xed\xea\xb9\xfb\x93\xc3\xcb:\xea\xf5~K\xd0g7\xa9\xe8\xfe\x93\x93\xce\xea1\xba\xfd\xb2\xea\a2\xea\xea\x1e\x91\xea\u007f\x00\xb5\xea\xc2ē\xfa\x89\x800\xad7\xb3\xfaZڅ\x85\x85\x85\xe4#\xaa\x86&d\x93\xb2a\xea\xf9\xf9\xf9\x02apMv8\x93Vj\xa93\x83Z\x93!Г\x1e\xad\xa6\x18X\xea\xeap\xa9\x92\x93\x9d6\x93햓\xdd\xea\xea\x93\xear\xab\xff\xff@~\xff\x89]\x17A\xa9\vr\x93\xf8&\x1d\x92\x9f\xdd\x00\x80\x938\x00\x88\xd40e\xea\x8e\xeb\xd4\u007fq\u07bd\xb2\x83\x9f\x82E\xd4\xf9~7\x18\x89\x939\u007f\x00GƠ\xf4/\x92l\x18\x80\ndtw\x9a\u007f\xc2Yҳ4\xb8`\x93*\xea\t\x9a\x93\x83\xea\xa4\x01CߓyD\xea\xf1\xeaF\x93\xc0Kv]\xea\xea\x93\x1b\x1b\x1b\x1b \x1b\x1b\xfa8\x00\x88]\x96o\xa4\xb2\x98\vY \x02L\x93{\xb6\x93哢\x00j\x93\x91\xaa>\x19\x02{\x15\x1b&\x93ݓ\x93\xff\xb6!X\xa3\xc5\aM\n\x03ի\x00\x1a\xae\x93\\쓓\xb5Ǔ\xb0\x93\x1b^\xb0\x00\xaf\x16\x19\x93\xbc\xea\x93{\x9b\x9c\x9a\x93\xf9\x93\xearv`I\x93\x93~\x80#c\xf5K\xa6U\n^\xeb\x12\x9e\x93ꓓ\x93\x93\x93\x93\x93||h\x80\xff\xff\x93\xea|\\|||\x81|\x97\xb3***|Z\x00\x00\x00\x93\x93\x93\x93\x93\x93\x93\x9b\x93\x93\x93\x93|\x13\x93\x93\x93\x93\x93\xc3@6") diff --git a/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/863f4df5673bd59166d2194b83ba85150963f17e0cfd89e44eb5129cb0d514ec b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/863f4df5673bd59166d2194b83ba85150963f17e0cfd89e44eb5129cb0d514ec new file mode 100644 index 00000000000..49a1dbea533 --- /dev/null +++ b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/863f4df5673bd59166d2194b83ba85150963f17e0cfd89e44eb5129cb0d514ec @@ -0,0 +1,3 @@ +go test fuzz v1 +int(21) +[]byte("I\x00U\xc0\xc0\x01\xc0\xff\xad\x00[\x1cE\x80\u007f5%V\x94l\f/\xb5\xbb\xde\xde8/// \x18////\x8c\x8c\xfa\xfa\xfa\xfa/\x00/@\x12\x0fo\x1bB\xd1\xe6ʵ\xb5\xb5//\xd9\xd9\x15p\xff\xff\x05*//\xa7\xa7\xa7\xff\xa7\x00///\x1f\xf5\xa9//./\x93\x93\x93\x93\x93\x93\x93\x93//\u007f\xde\xde\xe2\xde\xde\xde/// //\x8e/\xb8/@/\x05\xdb\xdb\xd8\t\t\t\t !\x9c\x01=\x80\xc8\x01\n\x89\xff=\x00\x00\x02\x00Dssssssssssssssssssssssssssssssssssssssss\x16\x16\x16\x16\x00\x10\xb1`ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssspssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x9asssssssssssssssssssssssssssssssssssssssssssssssssssssss\x00\x01sssssssssssssssssssssssssssssscccccccccccccccCssssssssssssssssssssssssssssssssssssssssssssss\x80sssssssssssssswssssssssssssssssssssssssssssssssssssssssssssssssss\x05\x05q\x13\u0081ss\xda\xda\xda\xda\xda\xda\xdassssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x8dsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xf5ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\u007f\xde\xde\xe2\xde\x00\x10\x00\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x80ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x80sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss3ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssd\x00sjssssssssssssssssssssssssss\x10sssssssss\x1f\x1f\x1fssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x8cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xa7sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xff\xff\x80\x00ssssssssssssssssssssssssssssssssssssYsssssssssssssssssssssssssssssssssssssssssss\x80\x00\x00\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssDDDDDDDDsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssszsssssssssssss\xc1\x17\x11Y\xd0\xcbsss\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14ssssssssssssssssssssss\x00\x00\x00\x01sssss\xbb\xbbs\xbbss\xbbssssssssssss\x10sssssssssssss\xa0sssssssssssssssssssssssssssssssssssss\xcd?\xe8c\x02sssmssssssssss\x80\xc8\x01\n\x89sss\x9bssssssssssssssssssssssssssssssssssssssssssssssss\x88\x05\xea/sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrsssssssssssssssssssssssssssssssss[sssssssss\xcc\xcc\xcc\xcc\xcc\xccssssssssmssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x95sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x05\xff\xff\x05ssssssssssssssss\x8es\x81//x\x80\x00\x00sbssssssssssssssssssssssF\xfbd\xb9sssXsssssssssssssksssssssssssssssss\x00\x00\x01\x00s@ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xe0\xc9(DK@\xe0\xeasssssssssssssssssssssssssssssss\x91sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssE\xaa\xff\xd1&jXssssssssssss\xff\xffsssszz\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssqsssssssssssss]]l\xf9ssssssss\xa0\xa0\xa0\xa0\xa0\xa0\xa0ssssssssssssssssssssssssssssssssssssszzssssssssssssssssssssssssssssss\u007fssssssssssssssssssssssssssssssssssssssssssssss\x81sssssssssssssssssssssssssssssssssssssssssssssssssss衵\x8d\x10\xffsSss\x10\x10\x10\x10ssssssssssssssssssssssssssss\x00\x01\x00\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x00\x00\x10\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8csssssssssssssssssssssssssssssssssssssssssssssssssssss\xaasssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssswssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssD\x05]]]]]ۀd-\n\n\x05\xb5\x02\x00\x84\xad\xf8\x04\x1f\t\t\xa91\x00\xefzzsss\u007f?\xf9\x91\x91\x91\x91\x91S\x1d\x05\x05q\x13\xc2sssssss\xd1).\xde.hhh\x17 h\x86hh\x02(\x8d\v\xc0\x1e\xbd\\\x86\xff\xb1:\xff\xfd\u007f\xffF\u007f\x98\xb8/F\x02\x00/i\xbd\xbd\xbd\x8e\xbd\n\n\x05\xb5\xb5\x02\x00\u007f\xbd\xbd\x10\x00\x80d\xe4/\x04\xf0\xf0\xf0\xf0\xf0\x00\x00\x10\x00m$\x8dE@\x00\xbfV \x00\x0e\x0e\x0e\xdb//\x00\x00\x00\u007fE///////\xff/\x02/\x00\x10//\x10\x000///////\n//\xff/P///&\x01\x12:\a#\x97\xf8\x82\x82\x82\x01\x00\x00//:\x11\x00\x00\x00\xdb\xe4\x8d\xed\x1c/L/d\x00///////\u007f\x93\\>\xa2\x8e\x8e\xa7///?//////..yyyyyyyyii\x05\xe7\xe7\xe7\xe7\x80\x00\xff\xff\xa3\U00039e79\xb9\xb9L\x05\x02\x00\x05\x0e\xdb\xe9w\bQ\x8a\x8a\x8a//h\xce\xdb\x0e-.\x00\xff]mssss/(.\x00\x99\x00\xfft\xbdq\x10w\xfb\xc8t\xd3\x0f\xac\xcd\xcd\x00\xfb~\xff.\xd9...\xff//ssssss1\xdb\x10\xdb\xdb\xde\xfa\xf0\xf0\x94\x8e\x10\x02\x80\xff\xff\xdb\xe6\xe6\xe6Gr\xdb\xe5B\xfd\xb2\t\xf8B%\xeb\x951d3\x8c\x8c\x8c\xad\xad`y\xad\xdb\x10\xdb\xe0\xdb\xdb\xe4\x83/\x01\x00\x00\xbe\xe4\x8d\xed\x00\x00\x00\x00W\xe9\bQ\xfa\x00\x00\xfa/\xdcu\xa3\xb0\x12}O\x00\x00\x14@\x05\x05\x05d\xba\x00\x05 \u007f\u007f\u007f\u007f\u007f\u007f\u007f%V\xb0\x96 \x12l\x04/]/\u007f\x00\x00\n-?\x00\x00m\xe4PPP\x00\x80\x80//'\x00\x00\x05\x02\x00\x84@/?///...h]]\x00]]]\x01]]]]]\xdb\xd1]ssssʵ\xae\xb5\xb1\xdb\u007f\x10\x00m$\x8dE\x10\x16\x00\x16\a\x1a\x16\x16\x16\x16\x16\x00\x10\xb1`\xdbۗ\x16\x16\x00\x10\x04\x16\xe9\x00\x00\x00\u007fE//d\xba\xc0(\xfd\xd7\xc0q\xb3/\xf9\x00ssssssssssssssss\t!\x9c\x01=\x80\xc8///@DDDii\xc9G!///\x00\u007f?\xf9S1d-\xe6\n\x05\xb5\x02\x00\x84\xad\xf8\x04\x1f\t\t\xa9\x03ssssss\x10\x10\x10\xf2g\xad,\xd7\x10\x00\xab\x16-///\x00m-G\xde\xf2\xfa\x01\x00\x00\x00\xf0\x85/\x96 \x00\xff\u007fz/\x17\xdbhh{ssssss\x10h....\xff\xffm\xb2\xb2\xb2\xb2..ssssssssssss\\\xbe\xa2\x8e\x8euhh ۄ\xde\xdeR\xff\xff,\xdb") diff --git a/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/87f7c74ee952d2ef8af8df250b939c4a65677eff54de2393c8f2b896e250813f b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/87f7c74ee952d2ef8af8df250b939c4a65677eff54de2393c8f2b896e250813f new file mode 100644 index 00000000000..73732315088 --- /dev/null +++ b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/87f7c74ee952d2ef8af8df250b939c4a65677eff54de2393c8f2b896e250813f @@ -0,0 +1,3 @@ +go test fuzz v1 +int(41) +[]byte("gVVVVV\x00@VV\x18#\x18\x18\xff\xe3\xe3\xe3\xe3\xd1\xe3\xe3\xff\x00\x00VVAVVVwV[VV\x00\x18VV\xd4\xc0\xc0\xa4\xab; ") diff --git a/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/8dcbe8c6685bcbfb81a3a3e5e8eb005af3edb0f0bf2f653f0430942379c90e7c b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/8dcbe8c6685bcbfb81a3a3e5e8eb005af3edb0f0bf2f653f0430942379c90e7c new file mode 100644 index 00000000000..b8e124b34e4 --- /dev/null +++ b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/8dcbe8c6685bcbfb81a3a3e5e8eb005af3edb0f0bf2f653f0430942379c90e7c @@ -0,0 +1,3 @@ +go test fuzz v1 +int(22) +[]byte("\x00y\x00B\x00\xe8\xe8\xbfZ$M\xb0\x11^\x11\xf7\x1f\v|\xff˿\xfa迧S\x00$\x8a\x80888\x86j\xbd\xf2\x1b\x15@R\xa6\x87\xe4\xf0\u007fJ8\a\xf3EE") diff --git a/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/93906988de1687555e538207931e6022243d7a38d6b2926e04c866dbb8318d54 b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/93906988de1687555e538207931e6022243d7a38d6b2926e04c866dbb8318d54 new file mode 100644 index 00000000000..63d2b6fdf40 --- /dev/null +++ b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/93906988de1687555e538207931e6022243d7a38d6b2926e04c866dbb8318d54 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(11) +[]byte("\xc7\xd94?B4\x10\xe9\x05\xf6mٿ\xca\xf5}\xb4\xfd8\x81\x96+\x8a5כ\x84\xce\xe8J\xc1$m\xc8\b!:\x98D\x18\xf1\x0f\xc3\x15\xe9ҙ'p\xbb\xd9F\xc2\xc6\xd3N6/\x10/####/") diff --git a/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/a62376aebd0437e22ed6eace28704d5225ae77b615952d99e85accd632d416d2 b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/a62376aebd0437e22ed6eace28704d5225ae77b615952d99e85accd632d416d2 new file mode 100644 index 00000000000..3b98d1cbac9 --- /dev/null +++ b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/a62376aebd0437e22ed6eace28704d5225ae77b615952d99e85accd632d416d2 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(13) +[]byte("@\x00\xfc0jj\xff\x00\t\t\xff0j\xff\x00\td\t\xff\x00\x00") diff --git a/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/c5fe4a7d971f6b57feba5390d5b03015c577f6a930d1a45bda4a5eb69db9dd5d b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/c5fe4a7d971f6b57feba5390d5b03015c577f6a930d1a45bda4a5eb69db9dd5d new file mode 100644 index 00000000000..d2f6ddca5cd --- /dev/null +++ b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/c5fe4a7d971f6b57feba5390d5b03015c577f6a930d1a45bda4a5eb69db9dd5d @@ -0,0 +1,3 @@ +go test fuzz v1 +int(10) +[]byte("\xd8\xf9\xa5\x05\x00\xc2\xc2\xc2\xc2\xc2\a\x05\xf6mٲ^\xb0\xbccB\xa5\x12ϠWW4Vi\xfa3\x87\xecC3c\x8dWWWWWWWWW\xff\xff\xff\u007fW8WWWWWAWWWWW\xfa\x00\x00\xfaWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW \x00WWWWWWWWWWWWWWWW\x00\x80WWWWWWWWWWWW\x8cWWWWWWWWWWWnWWWWWWWWWW\x00\x00\x02\x00WWWWWWWWWWWWWWWWWWĜ\x9eA]WWWWH\xbd\x1dWWWWWWWWWW\xc8WWWWWWWWWW\x00WWWWWWWWW8WWWWWWWW>WWWWWWWWWWWWWAWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\xff\xffWWWWWWWWWWWWWWWWW\xa0\x00\x00\x00\x10\xa0WW ]\xa0\xe5\xf9/\xc3*\x00\x00\x80\xc5\xc5\xc5WWWWWWWW\x96\x96WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW`WWWWWWWWWWWWW\x00\x01\x00\x00WWWWWWWWWWWWWWWWWWWWWW\x00WWWWWWWWWWWWWWmWWbWW\x00dWWWWWWWWWWWWWWWWxWWWWWWWWWWWWWWWWWWWWWWWWWW\xc8HWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\x10WWWWWWWWWZWWWWWBWWW\x93WWWW\xbfW\x8e\x8e\x8e\x8e\x8eZWWWW\xa1WWWWWWW\x1dWWWWWWWWWWWKWWW\x96WWWWWW\u007fWWWWWWW}WWWWWWW\xb2WWWNWWWWWWWWWWWWWWWGWWWWWWWWWWWWWWWz\x1dWWW\x05WW\x8eWWWWWWWWW_WWWWVWWW\xa4WWWWWWWWWWWWWWWWW\x8eWWWWWWWWWWWWWtWWWWWWWWWWWWWWWWWWWWWWWWWWiWWWWWWWWWWWWWW\x1d,WWWWWWWWWWWWWWvWW\x8eWWjWWWWWWWWWWWWWWWWWWWWWWWWWWWWW\x01\x00WWW\x00\x00\x80\x00WWW\x1b\x1b\x1b\x1bWWWWWWWWWWWWWWWWWWWWWWWW\x00\x00WWWWWWGWWWWWWWWWWWWWWWWWWWWWW\xf2WWWWW\x01WWWW\x00\x00WWWWWWWWW\x00\x00\x00\x10WWW_WWWWVWWWWWWWWWWW@WWWWWW\xffWWWWWWWWWWWWWWWWWWWWlWWWWWWWWWWvWWWWWWWWWWWWWWWWWWW\u007f\xffd\x00\x00\x00WWWWWW7\x02\x81\x85\x1b\xa0WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW@WWWWWWWgWWW\xd1\xd1\xd1\xd1\xd1WWWWWWWWiWWwWWWWWWWWWWWW@\x00WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWIWWWWWWW\\WWWWWW\x96\x96\x00\x10\x96\x96\x96\x96\x96\x96\x96\x80@WWWWWWW\x96\x96\x96\x96\x96\xa4\x96\x96\x96\x96\x96WWWW\x00WWW:WWWWWWWWWW<\xb9\x96WWWWW\xe3o_Z\x82\xe0\xa5\xcc\xe1\xbfƜ\xd7I\xa5\x03\xe7\xe6tS\xa9M<\x0fhh\xf3\xc8@\xfca<\xe8.M\xebw\xefa\xf4B\xce\xce\xcecQO\x9d!WWWWWWW\x00\x96\x11W\x14\x9d`\xccWWW\x96/*1S11T#\xef1\xb9\xc4m\x05\xc3A\x9aWW\xba\xa2\xac\xb6\x03R\a\xe2\xf8\xd48\v\xa4H\xe3L\xc5{\xaa\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0]\x1as\xa9\xda&\xba\x9b\xc0\xe8ۀG\x04\xfe\xfe\xfe\xfe\xfe\xee\xb3˥\x9c\xd5\xfeBZ\x9e-\xf5C\x1f\xbe\xe0ԛ\xb7\xecY:D\xe6q~'\x17\xf4\x9c>\x1d\xe2\tLဨs\x1b\xd8\vVR\xe8\x17j \x9c\x9e\xd9\x1cos\xa3\xab\xefY\xc3\xf0\xcbG\xe0\xdf\xc1kI5Q\x12\x90\xffbi\x94-\xa3\xdcYPO՚\x86\rR~+\xf5\x92\xfc\xbd\xb1\x04\xc4>nD>J\xf3\x95\x8fWWWWWWWWx\xc1\xcb\"\xda\x14%!'O\xe2gWWWWW>\xfd\bLLLLLLLWWW\t\xf3{\x8f\xa0\x02V1\xaf\xde\xc8\x19\xafY\x96\xae\x16k\xde\nPp\x00;\xaa1\xb8\u007f\xb6*\x1e\x8cfr\xad\xcbۯ\v\xd8\x15\xadf\x87\f\xf6\x1fr\xa6\xc7\x1fn\xa9\x85Q\x8d\xf5\x00\xd0\xd0\xd0W\x8a\x8a\xb8P4\x19\x82B\x9b3\x13g\x19\xd4\x16\xdb\xc6J\xdb\x066#\x0eĘ\xec\xe0\x04\xfe\xd0>s\xdd\xddݣ\xd1 n\xe5\"\x16\xe9\xdd\xdd\xdd\xdd\x14ē\xdc\x1e\xfb\n\xeaݹBA\x15\xbb\"-\xb3\xfczA\x97\xcfWWWWWWW\x96\x12.]\xef(\x18\xdeX\x82\xe5\xbcW\xc1\xed\x0f!\x05k\x97\xedk\xb9\xc9\xe3\x1a\x16]\xd2(\xc0x\xaf\xb3\xd59\x14\a\xf0\xb3n\xd3𦗏ߞ\xd1\xf0\xf0\xbbE\x99\f\xa0\xe1\tGU\x1ftPWi\x18\x9f.\xc4\xe7\xe9\x9c-\xf0\x98\x17\x80N/9\xe1\xf5W\xe6\xc3.\a\xd97\xf9W~\x87}\xad\xde.y\xee?yv~q\x85\xeb\x90Zo\x1dMw\x95WWWWWWWWWWWWWWW\xba\xfdw@Z$\"\x01\x15\u007f\xbc\xa9\xefC\x10E%%%%%\xb4njr\x04\x8da!\xb7\xd9s\x0f0<\x95t5\xf6\xbcMs\"\x19\xe49H \x8d\x05\xa3I\xae\xae\xae\x10\xae\xae\x02\x0f\x0f\x0f\x0f\x0f\x0f\x8er\x1a\x0e1\x8eֆ1\x8b\xb9:\x15'\xa0\xc8?\x99}\x91\x87.\\V\xff\xf5`Oz?\xf8\xa8\xe1)iO\x10\xabS~\xe5R\xb3\xf6H\xf7\xbe\xb9\xda\xfd\x02\xabs&(b\xaaa\xf3\x01\xb6\xf8\xb6rqTFZ\x8bU\xe2\x8cye?\xbc\xea\x03\xf2\xf0Ȯ\xa7k#8\x86\xa7\xa7\xa7_6[r_\x8c\xb4(WWWW\x8eWWWWW\x00WWWWWWWWW\x19\xb1\xb1\xb1") diff --git a/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/dc722115a839e9b801755d0efbe86e6d9c9199e2ec36d0a4ee4f67f31aab1519 b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/dc722115a839e9b801755d0efbe86e6d9c9199e2ec36d0a4ee4f67f31aab1519 new file mode 100644 index 00000000000..3bf6debf918 --- /dev/null +++ b/erigon-lib/txpool/testdata/recsplit/FuzzRecSplit/dc722115a839e9b801755d0efbe86e6d9c9199e2ec36d0a4ee4f67f31aab1519 @@ -0,0 +1,3 @@ +go test fuzz v1 +int(24) +[]byte("I\x00U\xc0\xc0\x01\xc0\xff\xad\x00[\x1cE\x80\u007f5%V\x94l\f/\xb5\xbb\xde\xde8/// \x18////\x8c\x8c\xfa\xfa\xfa\xfa/\x00/@\x12\x0fo\x1bB\xd1\xe6ʵ\xb5\xb5//\xd9\xd9\x15p\xff\xff\x05*//\xa7\xa7\xa7\xff\xa7\x00///\x1f\xf5\xa9//./\x93\x93\x93\x93\x93\x93\x93\x93//\u007f\xde\xde\xe2\xde\xde\xde/// //\x8e/\xb8/@/\x05\xdb\xdb\xd8\t\t\t\t !\x9c\x01=\x80\xc8\x01\n\x89\xff=\x00\x00\x02\x00Dssssssssssssssssssssssssssssssssssssssss\x16\x16\x16\x16\x00\x10\xb1`ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssspssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x9asssssssssssssssssssssssssssssssssssssssssssssssssssssss\x00\x01sssssssssssssssssssssssssssssscccccccccccccccCssssssssssssssssssssssssssssssssssssssssssssss\x80sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x05\x05q\x13\u0081ss\xda\xda\xda\xda\xda\xda\xdassssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x8dsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xf5ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\u007f\xde\xde\xe2\xde\x00\x10\x00\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x80ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x80sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss3ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssd\x00sjssssssssssssssssssssssssss\x10sssssssss\x1f\x1f\x1fssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x8cssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xa7sssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xff\xff\x80\x00ssssssssssssssssssssssssssssssssssssYsssssssssssssssssssssssssssssssssssssssssss\x80\x00\x00\x00ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssszsssssssssssss\xc1\x17\x11Y\xd0\xcbsss\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14\x14ssssssssssssssssssssss\x00\x00\x00\x01sssss\xbb\xbbs\xbbss\xbbssssssssssss\x10sssssssssssss\xa0sssssssssssssssssssssssssssssssssssss\xcd?\xe8c\x02sssmssssssssss\x80\xc8\x01\n\x89sss\x9bssssssssssssssssssssssssssssssssssssssssssssssss\x88\x05\xea/sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssrrrrrsssssssssssssssssssssssssssssssss[sssssssss\xcc\xcc\xcc\xcc\xcc\xccssssssssmssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x95sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x05\xff\xff\x05ssssssssssssssss\x8es\x81//x\x80\x00\x00sbssssssssssssssssssssssF\xfbd\xb9sssXsssssssssssssksssssssssssssssss\x00\x00\x01\x00s@ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\xe0\xc9(DK@\xe0\xeasssssssssssssssssssssssssssssss\x91sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssE\xaa\xff\xd1&jXssssssssssss\xff\xffsssszz\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssqsssssssssssss]]l\xf9ssssssss\xa0\xa0\xa0\xa0\xa0\xa0\xa0ssssssssssssssssssssssssssssssssssssszzssssssssssssssssssssssssssssss\u007fssssssssssssssssssssssssssssssssssssssssssssss\x81sssssssssssssssssssssssssssssssssssssssssssssssssss衵\x8d\x10\xffsSss\x10\x10\x10\x10ssssssssssssssssssssssssssss\x00\x01\x00\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x00\x00\x10\x00sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8c\x8csssssssssssssssssssssssssssssssssssssssssssssssssssss\xaasssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssswssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssD\x05]]]]]ۀd-\n\n\x05\xb5\x02\x00\x84\xad\xf8\x04\x1f\t\t\xa91\x00\xefzzsss\u007f?\xf9\x91\x91\x91\x91\x91S\x1d\x05\x05q\x13\xc2sssssss\xd1).\xde.hhh\x17 h\x86hh\x02(\x8d\v\xc0\x1e\xbd\\\x86\xff\xb1:\xff\xfd\u007f\xffF\u007f\x98\xb8/F\x02\x00/i\xbd\xbd\xbd\x8e\xbd\n\n\x05\xb5\xb5\x02\x00\u007f\xbd\xbd\x10\x00\x80d\xe4/\x04\xf0\xf0\xf0\xf0\xf0\x00\x00\x10\x00m$\x8dE@\x00\xbfV \x00\x0e\x0e\x0e\xdb//\x00\x00\x00\u007fE///////\xff/\x02/\x00\x10//\x10\x000///////\n//\xff/P///&\x01\x12:\a#\x97\xf8\x82\x82\x82\x01\x00\x00//:\x11\x00\x00\x00\xdb\xe4\x8d\xed\x1c/L/d\x00///////\u007f\x93\\>\xa2\x8e\x8e\xa7///?//////..yyyyyyyyii\x05\xe7\xe7\xe7\xe7\x80\x00\xff\xff\xa3\U00039e79\xb9\xb9L\x05\x02\x00\x05\x0e\xdb\xe9w\bQ\x8a\x8a\x8a//h\xce\xdb\x0e-.\x00\xff]mssss/(.\x00\x99\x00\xfft\xbdq\x10w\xfb\xc8t\xd3\x0f\xac\xcd\xcd\x00\xfb~\xff.\xd9...\xff//ssssss1\xdb\x10\xdb\xdb\xde\xfa\xf0\xf0\x94\x8e\x10\x02\x80\xff\xff\xdb\xe6\xe6\xe6Gr\xdb\xe5B\xfd\xb2\t\xf8B%\xeb\x951d3\x8c\x8c\x8c\xad\xad`y\xad\xdb\x10\xdb\xe0\xdb\xdb\xe4\x83/\x01\x00\x00\xbe\xe4\x8d\xed\x00\x00\x00\x00W\xe9\bQ\xfa\x00\x00\xfa/\xdcu\xa3\xb0\x12}O\x00\x00\x14@\x05\x05\x05d\xba\x00\x05 \u007f\u007f\u007f\u007f\u007f\u007f\u007f%V\xb0\x96 \x12l\x04/]/\u007f\x00\x00\n-?\x00\x00m\xe4PPP\x00\x80\x80//'\x00\x00\x05\x02\x00\x84@/?///...h]]\x00]]]\x01]]]]]\xdb\xd1]ssssʵ\xae\xb5\xb1\xdb\u007f\x10\x00m$\x8dE\x10\x16\x00\x16\a\x1a\x16\x16\x16\x16\x16\x00\x10\xb1`\xdbۗ\x16\x16\x00\x10\x04\x16\xe9\x00\x00\x00\u007fE//d\xba\xc0(\xfd\xd7\xc0q\xb3/\xf9\x00ssssssssssssssss\t!\x9c\x01=\x80\xc8///@DDDii\xc9G!///\x00\u007f?\xf9S1d-\xe6\n\x05\xb5\x02\x00\x84\xad\xf8\x04\x1f\t\t\xa9\x03ssssss\x10\x10\x10\xf2g\xad,\xd7\x10\x00\xab\x16-///\x00m-G\xde\xf2\xfa\x01\x00\x00\x00\xf0\x85/\x96 \x00\xff\u007fz/\x17\xdbhh{ssssss\x10h....\xff\xffm\xb2\xb2\xb2\xb2..ssssssssssss\\\xbe\xa2\x8e\x8euhh ۄ\xde\xdeR\xff\xff,\xdb") diff --git a/erigon-lib/txpool/txpool_grpc_server.go b/erigon-lib/txpool/txpool_grpc_server.go new file mode 100644 index 00000000000..de4c26db372 --- /dev/null +++ b/erigon-lib/txpool/txpool_grpc_server.go @@ -0,0 +1,413 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package txpool + +import ( + "context" + "errors" + "fmt" + "math" + "net" + "sync" + "time" + + grpc_middleware "github.com/grpc-ecosystem/go-grpc-middleware" + grpc_recovery "github.com/grpc-ecosystem/go-grpc-middleware/recovery" + "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" + "github.com/ledgerwatch/log/v3" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/health" + "google.golang.org/grpc/health/grpc_health_v1" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/reflection" + "google.golang.org/protobuf/types/known/emptypb" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/gointerfaces" + txpool_proto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" + types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/types" +) + +// TxPoolAPIVersion +var TxPoolAPIVersion = &types2.VersionReply{Major: 1, Minor: 0, Patch: 0} + +type txPool interface { + ValidateSerializedTxn(serializedTxn []byte) error + + PeekBest(n uint16, txs *types.TxsRlp, tx kv.Tx, onTopOf, availableGas, availableBlobGas uint64) (bool, error) + GetRlp(tx kv.Tx, hash []byte) ([]byte, error) + AddLocalTxs(ctx context.Context, newTxs types.TxSlots, tx kv.Tx) ([]txpoolcfg.DiscardReason, error) + deprecatedForEach(_ context.Context, f func(rlp []byte, sender common.Address, t SubPoolType), tx kv.Tx) + CountContent() (int, int, int) + IdHashKnown(tx kv.Tx, hash []byte) (bool, error) + NonceFromAddress(addr [20]byte) (nonce uint64, inPool bool) +} + +var _ txpool_proto.TxpoolServer = (*GrpcServer)(nil) // compile-time interface check +var _ txpool_proto.TxpoolServer = (*GrpcDisabled)(nil) // compile-time interface check + +var ErrPoolDisabled = fmt.Errorf("TxPool Disabled") + +type GrpcDisabled struct { + txpool_proto.UnimplementedTxpoolServer +} + +func (*GrpcDisabled) Version(ctx context.Context, empty *emptypb.Empty) (*types2.VersionReply, error) { + return nil, ErrPoolDisabled +} +func (*GrpcDisabled) FindUnknown(ctx context.Context, hashes *txpool_proto.TxHashes) (*txpool_proto.TxHashes, error) { + return nil, ErrPoolDisabled +} +func (*GrpcDisabled) Add(ctx context.Context, request *txpool_proto.AddRequest) (*txpool_proto.AddReply, error) { + return nil, ErrPoolDisabled +} +func (*GrpcDisabled) Transactions(ctx context.Context, request *txpool_proto.TransactionsRequest) (*txpool_proto.TransactionsReply, error) { + return nil, ErrPoolDisabled +} +func (*GrpcDisabled) All(ctx context.Context, request *txpool_proto.AllRequest) (*txpool_proto.AllReply, error) { + return nil, ErrPoolDisabled +} +func (*GrpcDisabled) Pending(ctx context.Context, empty *emptypb.Empty) (*txpool_proto.PendingReply, error) { + return nil, ErrPoolDisabled +} +func (*GrpcDisabled) OnAdd(request *txpool_proto.OnAddRequest, server txpool_proto.Txpool_OnAddServer) error { + return ErrPoolDisabled +} +func (*GrpcDisabled) Status(ctx context.Context, request *txpool_proto.StatusRequest) (*txpool_proto.StatusReply, error) { + return nil, ErrPoolDisabled +} +func (*GrpcDisabled) Nonce(ctx context.Context, request *txpool_proto.NonceRequest) (*txpool_proto.NonceReply, error) { + return nil, ErrPoolDisabled +} + +type GrpcServer struct { + txpool_proto.UnimplementedTxpoolServer + ctx context.Context + txPool txPool + db kv.RoDB + NewSlotsStreams *NewSlotsStreams + + chainID uint256.Int + logger log.Logger +} + +func NewGrpcServer(ctx context.Context, txPool txPool, db kv.RoDB, chainID uint256.Int, logger log.Logger) *GrpcServer { + return &GrpcServer{ctx: ctx, txPool: txPool, db: db, NewSlotsStreams: &NewSlotsStreams{}, chainID: chainID, logger: logger} +} + +func (s *GrpcServer) Version(context.Context, *emptypb.Empty) (*types2.VersionReply, error) { + return TxPoolAPIVersion, nil +} +func convertSubPoolType(t SubPoolType) txpool_proto.AllReply_TxnType { + switch t { + case PendingSubPool: + return txpool_proto.AllReply_PENDING + case BaseFeeSubPool: + return txpool_proto.AllReply_BASE_FEE + case QueuedSubPool: + return txpool_proto.AllReply_QUEUED + default: + panic("unknown") + } +} +func (s *GrpcServer) All(ctx context.Context, _ *txpool_proto.AllRequest) (*txpool_proto.AllReply, error) { + tx, err := s.db.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + reply := &txpool_proto.AllReply{} + reply.Txs = make([]*txpool_proto.AllReply_Tx, 0, 32) + s.txPool.deprecatedForEach(ctx, func(rlp []byte, sender common.Address, t SubPoolType) { + reply.Txs = append(reply.Txs, &txpool_proto.AllReply_Tx{ + Sender: gointerfaces.ConvertAddressToH160(sender), + TxnType: convertSubPoolType(t), + RlpTx: common.Copy(rlp), + }) + }, tx) + return reply, nil +} + +func (s *GrpcServer) Pending(ctx context.Context, _ *emptypb.Empty) (*txpool_proto.PendingReply, error) { + tx, err := s.db.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + reply := &txpool_proto.PendingReply{} + reply.Txs = make([]*txpool_proto.PendingReply_Tx, 0, 32) + txSlots := types.TxsRlp{} + if _, err := s.txPool.PeekBest(math.MaxInt16, &txSlots, tx, 0 /* onTopOf */, math.MaxUint64 /* availableGas */, math.MaxUint64 /* availableBlobGas */); err != nil { + return nil, err + } + var senderArr [20]byte + for i := range txSlots.Txs { + copy(senderArr[:], txSlots.Senders.At(i)) // TODO: optimize + reply.Txs = append(reply.Txs, &txpool_proto.PendingReply_Tx{ + Sender: gointerfaces.ConvertAddressToH160(senderArr), + RlpTx: txSlots.Txs[i], + IsLocal: txSlots.IsLocal[i], + }) + } + return reply, nil +} + +func (s *GrpcServer) FindUnknown(ctx context.Context, in *txpool_proto.TxHashes) (*txpool_proto.TxHashes, error) { + return nil, fmt.Errorf("unimplemented") +} + +func (s *GrpcServer) Add(ctx context.Context, in *txpool_proto.AddRequest) (*txpool_proto.AddReply, error) { + tx, err := s.db.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + + var slots types.TxSlots + parseCtx := types.NewTxParseContext(s.chainID).ChainIDRequired() + parseCtx.ValidateRLP(s.txPool.ValidateSerializedTxn) + + reply := &txpool_proto.AddReply{Imported: make([]txpool_proto.ImportResult, len(in.RlpTxs)), Errors: make([]string, len(in.RlpTxs))} + + j := 0 + for i := 0; i < len(in.RlpTxs); i++ { // some incoming txs may be rejected, so - need second index + slots.Resize(uint(j + 1)) + slots.Txs[j] = &types.TxSlot{} + slots.IsLocal[j] = true + if _, err := parseCtx.ParseTransaction(in.RlpTxs[i], 0, slots.Txs[j], slots.Senders.At(j), false /* hasEnvelope */, true /* wrappedWithBlobs */, func(hash []byte) error { + if known, _ := s.txPool.IdHashKnown(tx, hash); known { + return types.ErrAlreadyKnown + } + return nil + }); err != nil { + if errors.Is(err, types.ErrAlreadyKnown) { // Noop, but need to handle to not count these + reply.Errors[i] = txpoolcfg.AlreadyKnown.String() + reply.Imported[i] = txpool_proto.ImportResult_ALREADY_EXISTS + } else if errors.Is(err, types.ErrRlpTooBig) { // Noop, but need to handle to not count these + reply.Errors[i] = txpoolcfg.RLPTooLong.String() + reply.Imported[i] = txpool_proto.ImportResult_INVALID + } else { + reply.Errors[i] = err.Error() + reply.Imported[i] = txpool_proto.ImportResult_INTERNAL_ERROR + } + continue + } + j++ + } + + discardReasons, err := s.txPool.AddLocalTxs(ctx, slots, tx) + if err != nil { + return nil, err + } + + j = 0 + for i := range reply.Imported { + if reply.Imported[i] != txpool_proto.ImportResult_SUCCESS { + j++ + continue + } + + reply.Imported[i] = mapDiscardReasonToProto(discardReasons[j]) + reply.Errors[i] = discardReasons[j].String() + j++ + } + return reply, nil +} + +func mapDiscardReasonToProto(reason txpoolcfg.DiscardReason) txpool_proto.ImportResult { + switch reason { + case txpoolcfg.Success: + return txpool_proto.ImportResult_SUCCESS + case txpoolcfg.AlreadyKnown: + return txpool_proto.ImportResult_ALREADY_EXISTS + case txpoolcfg.UnderPriced, txpoolcfg.ReplaceUnderpriced, txpoolcfg.FeeTooLow: + return txpool_proto.ImportResult_FEE_TOO_LOW + case txpoolcfg.InvalidSender, txpoolcfg.NegativeValue, txpoolcfg.OversizedData, txpoolcfg.InitCodeTooLarge, txpoolcfg.RLPTooLong, txpoolcfg.CreateBlobTxn, txpoolcfg.NoBlobs, txpoolcfg.TooManyBlobs, txpoolcfg.TypeNotActivated, txpoolcfg.UnequalBlobTxExt, txpoolcfg.BlobHashCheckFail, txpoolcfg.UnmatchedBlobTxExt: + // TODO(eip-4844) TypeNotActivated may be transient (e.g. a blob transaction is submitted 1 sec prior to Cancun activation) + return txpool_proto.ImportResult_INVALID + default: + return txpool_proto.ImportResult_INTERNAL_ERROR + } +} + +func (s *GrpcServer) OnAdd(req *txpool_proto.OnAddRequest, stream txpool_proto.Txpool_OnAddServer) error { + s.logger.Info("New txs subscriber joined") + //txpool.Loop does send messages to this streams + remove := s.NewSlotsStreams.Add(stream) + defer remove() + select { + case <-stream.Context().Done(): + return stream.Context().Err() + case <-s.ctx.Done(): + return s.ctx.Err() + } +} + +func (s *GrpcServer) Transactions(ctx context.Context, in *txpool_proto.TransactionsRequest) (*txpool_proto.TransactionsReply, error) { + tx, err := s.db.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + + reply := &txpool_proto.TransactionsReply{RlpTxs: make([][]byte, len(in.Hashes))} + for i := range in.Hashes { + h := gointerfaces.ConvertH256ToHash(in.Hashes[i]) + txnRlp, err := s.txPool.GetRlp(tx, h[:]) + if err != nil { + return nil, err + } + if txnRlp == nil { + reply.RlpTxs[i] = []byte{} + continue + } + reply.RlpTxs[i] = txnRlp + } + + return reply, nil +} + +func (s *GrpcServer) Status(_ context.Context, _ *txpool_proto.StatusRequest) (*txpool_proto.StatusReply, error) { + pending, baseFee, queued := s.txPool.CountContent() + return &txpool_proto.StatusReply{ + PendingCount: uint32(pending), + QueuedCount: uint32(queued), + BaseFeeCount: uint32(baseFee), + }, nil +} + +// returns nonce for address +func (s *GrpcServer) Nonce(ctx context.Context, in *txpool_proto.NonceRequest) (*txpool_proto.NonceReply, error) { + addr := gointerfaces.ConvertH160toAddress(in.Address) + nonce, inPool := s.txPool.NonceFromAddress(addr) + return &txpool_proto.NonceReply{ + Nonce: nonce, + Found: inPool, + }, nil +} + +// NewSlotsStreams - it's safe to use this class as non-pointer +type NewSlotsStreams struct { + chans map[uint]txpool_proto.Txpool_OnAddServer + mu sync.Mutex + id uint +} + +func (s *NewSlotsStreams) Add(stream txpool_proto.Txpool_OnAddServer) (remove func()) { + s.mu.Lock() + defer s.mu.Unlock() + if s.chans == nil { + s.chans = make(map[uint]txpool_proto.Txpool_OnAddServer) + } + s.id++ + id := s.id + s.chans[id] = stream + return func() { s.remove(id) } +} + +func (s *NewSlotsStreams) Broadcast(reply *txpool_proto.OnAddReply, logger log.Logger) { + s.mu.Lock() + defer s.mu.Unlock() + for id, stream := range s.chans { + err := stream.Send(reply) + if err != nil { + logger.Debug("failed send to mined block stream", "err", err) + select { + case <-stream.Context().Done(): + delete(s.chans, id) + default: + } + } + } +} + +func (s *NewSlotsStreams) remove(id uint) { + s.mu.Lock() + defer s.mu.Unlock() + _, ok := s.chans[id] + if !ok { // double-unsubscribe support + return + } + delete(s.chans, id) +} + +func StartGrpc(txPoolServer txpool_proto.TxpoolServer, miningServer txpool_proto.MiningServer, addr string, creds *credentials.TransportCredentials, logger log.Logger) (*grpc.Server, error) { + lis, err := net.Listen("tcp", addr) + if err != nil { + return nil, fmt.Errorf("could not create listener: %w, addr=%s", err, addr) + } + + var ( + streamInterceptors []grpc.StreamServerInterceptor + unaryInterceptors []grpc.UnaryServerInterceptor + ) + streamInterceptors = append(streamInterceptors, grpc_recovery.StreamServerInterceptor()) + unaryInterceptors = append(unaryInterceptors, grpc_recovery.UnaryServerInterceptor()) + + //if metrics.Enabled { + // streamInterceptors = append(streamInterceptors, grpc_prometheus.StreamServerInterceptor) + // unaryInterceptors = append(unaryInterceptors, grpc_prometheus.UnaryServerInterceptor) + //} + + //cpus := uint32(runtime.GOMAXPROCS(-1)) + opts := []grpc.ServerOption{ + //grpc.NumStreamWorkers(cpus), // reduce amount of goroutines + grpc.ReadBufferSize(0), // reduce buffers to save mem + grpc.WriteBufferSize(0), // reduce buffers to save mem + // Don't drop the connection, settings accordign to this comment on GitHub + // https://github.com/grpc/grpc-go/issues/3171#issuecomment-552796779 + grpc.KeepaliveEnforcementPolicy(keepalive.EnforcementPolicy{ + MinTime: 10 * time.Second, + PermitWithoutStream: true, + }), + grpc.StreamInterceptor(grpc_middleware.ChainStreamServer(streamInterceptors...)), + grpc.UnaryInterceptor(grpc_middleware.ChainUnaryServer(unaryInterceptors...)), + } + if creds == nil { + // no specific opts + } else { + opts = append(opts, grpc.Creds(*creds)) + } + grpcServer := grpc.NewServer(opts...) + reflection.Register(grpcServer) // Register reflection service on gRPC server. + if txPoolServer != nil { + txpool_proto.RegisterTxpoolServer(grpcServer, txPoolServer) + } + if miningServer != nil { + txpool_proto.RegisterMiningServer(grpcServer, miningServer) + } + + //if metrics.Enabled { + // grpc_prometheus.Register(grpcServer) + //} + + healthServer := health.NewServer() + grpc_health_v1.RegisterHealthServer(grpcServer, healthServer) + + go func() { + defer healthServer.Shutdown() + if err := grpcServer.Serve(lis); err != nil { + logger.Error("private RPC server fail", "err", err) + } + }() + logger.Info("Started gRPC server", "on", addr) + return grpcServer, nil +} diff --git a/erigon-lib/txpool/txpoolcfg/txpoolcfg.go b/erigon-lib/txpool/txpoolcfg/txpoolcfg.go new file mode 100644 index 00000000000..4dc6169c948 --- /dev/null +++ b/erigon-lib/txpool/txpoolcfg/txpoolcfg.go @@ -0,0 +1,255 @@ +/* + Copyright 2022 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package txpoolcfg + +import ( + "fmt" + "math" + "math/big" + "time" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common/fixedgas" + emath "github.com/ledgerwatch/erigon-lib/common/math" + "github.com/ledgerwatch/erigon-lib/types" +) + +type Config struct { + DBDir string + TracedSenders []string // List of senders for which tx pool should print out debugging info + PendingSubPoolLimit int + BaseFeeSubPoolLimit int + QueuedSubPoolLimit int + MinFeeCap uint64 + AccountSlots uint64 // Number of executable transaction slots guaranteed per account + BlobSlots uint64 // Total number of blobs (not txs) allowed per account + PriceBump uint64 // Price bump percentage to replace an already existing transaction + BlobPriceBump uint64 //Price bump percentage to replace an existing 4844 blob tx (type-3) + OverrideCancunTime *big.Int + + // regular batch tasks processing + SyncToNewPeersEvery time.Duration + ProcessRemoteTxsEvery time.Duration + CommitEvery time.Duration + LogEvery time.Duration + + //txpool db + MdbxPageSize datasize.ByteSize + MdbxDBSizeLimit datasize.ByteSize + MdbxGrowthStep datasize.ByteSize + + NoGossip bool // this mode doesn't broadcast any txs, and if receive remote-txn - skip it +} + +var DefaultConfig = Config{ + SyncToNewPeersEvery: 5 * time.Second, + ProcessRemoteTxsEvery: 100 * time.Millisecond, + CommitEvery: 15 * time.Second, + LogEvery: 30 * time.Second, + + PendingSubPoolLimit: 10_000, + BaseFeeSubPoolLimit: 10_000, + QueuedSubPoolLimit: 10_000, + + MinFeeCap: 1, + AccountSlots: 16, //TODO: to choose right value (16 to be compatible with Geth) + BlobSlots: 48, // Default for a total of 8 txs for 6 blobs each - for hive tests + PriceBump: 10, // Price bump percentage to replace an already existing transaction + BlobPriceBump: 100, + + NoGossip: false, +} + +type DiscardReason uint8 + +const ( + NotSet DiscardReason = 0 // analog of "nil-value", means it will be set in future + Success DiscardReason = 1 + AlreadyKnown DiscardReason = 2 + Mined DiscardReason = 3 + ReplacedByHigherTip DiscardReason = 4 + UnderPriced DiscardReason = 5 + ReplaceUnderpriced DiscardReason = 6 // if a transaction is attempted to be replaced with a different one without the required price bump. + FeeTooLow DiscardReason = 7 + OversizedData DiscardReason = 8 + InvalidSender DiscardReason = 9 + NegativeValue DiscardReason = 10 // ensure no one is able to specify a transaction with a negative value. + Spammer DiscardReason = 11 + PendingPoolOverflow DiscardReason = 12 + BaseFeePoolOverflow DiscardReason = 13 + QueuedPoolOverflow DiscardReason = 14 + GasUintOverflow DiscardReason = 15 + IntrinsicGas DiscardReason = 16 + RLPTooLong DiscardReason = 17 + NonceTooLow DiscardReason = 18 + InsufficientFunds DiscardReason = 19 + NotReplaced DiscardReason = 20 // There was an existing transaction with the same sender and nonce, not enough price bump to replace + DuplicateHash DiscardReason = 21 // There was an existing transaction with the same hash + InitCodeTooLarge DiscardReason = 22 // EIP-3860 - transaction init code is too large + TypeNotActivated DiscardReason = 23 // For example, an EIP-4844 transaction is submitted before Cancun activation + CreateBlobTxn DiscardReason = 24 // Blob transactions cannot have the form of a create transaction + NoBlobs DiscardReason = 25 // Blob transactions must have at least one blob + TooManyBlobs DiscardReason = 26 // There's a limit on how many blobs a block (and thus any transaction) may have + UnequalBlobTxExt DiscardReason = 27 // blob_versioned_hashes, blobs, commitments and proofs must have equal number + BlobHashCheckFail DiscardReason = 28 // KZGcommitment's versioned hash has to be equal to blob_versioned_hash at the same index + UnmatchedBlobTxExt DiscardReason = 29 // KZGcommitments must match the corresponding blobs and proofs + BlobTxReplace DiscardReason = 30 // Cannot replace type-3 blob txn with another type of txn +) + +func (r DiscardReason) String() string { + switch r { + case NotSet: + return "not set" + case Success: + return "success" + case AlreadyKnown: + return "already known" + case Mined: + return "mined" + case ReplacedByHigherTip: + return "replaced by transaction with higher tip" + case UnderPriced: + return "underpriced" + case ReplaceUnderpriced: + return "replacement transaction underpriced" + case FeeTooLow: + return "fee too low" + case OversizedData: + return "oversized data" + case InvalidSender: + return "invalid sender" + case NegativeValue: + return "negative value" + case Spammer: + return "spammer" + case PendingPoolOverflow: + return "pending sub-pool is full" + case BaseFeePoolOverflow: + return "baseFee sub-pool is full" + case QueuedPoolOverflow: + return "queued sub-pool is full" + case GasUintOverflow: + return "GasUintOverflow" + case IntrinsicGas: + return "IntrinsicGas" + case RLPTooLong: + return "RLPTooLong" + case NonceTooLow: + return "nonce too low" + case InsufficientFunds: + return "insufficient funds" + case NotReplaced: + return "could not replace existing tx" + case DuplicateHash: + return "existing tx with same hash" + case InitCodeTooLarge: + return "initcode too large" + case TypeNotActivated: + return "fork supporting this transaction type is not activated yet" + case CreateBlobTxn: + return "blob transactions cannot have the form of a create transaction" + case NoBlobs: + return "blob transactions must have at least one blob" + case TooManyBlobs: + return "max number of blobs exceeded" + case BlobTxReplace: + return "can't replace blob-txn with a non-blob-txn" + default: + panic(fmt.Sprintf("discard reason: %d", r)) + } +} + +// CalcIntrinsicGas computes the 'intrinsic gas' for a message with the given data. +func CalcIntrinsicGas(dataLen, dataNonZeroLen uint64, accessList types.AccessList, isContractCreation, isHomestead, isEIP2028, isShanghai bool) (uint64, DiscardReason) { + // Set the starting gas for the raw transaction + var gas uint64 + if isContractCreation && isHomestead { + gas = fixedgas.TxGasContractCreation + } else { + gas = fixedgas.TxGas + } + // Bump the required gas by the amount of transactional data + if dataLen > 0 { + // Zero and non-zero bytes are priced differently + nz := dataNonZeroLen + // Make sure we don't exceed uint64 for all data combinations + nonZeroGas := fixedgas.TxDataNonZeroGasFrontier + if isEIP2028 { + nonZeroGas = fixedgas.TxDataNonZeroGasEIP2028 + } + + product, overflow := emath.SafeMul(nz, nonZeroGas) + if overflow { + return 0, GasUintOverflow + } + gas, overflow = emath.SafeAdd(gas, product) + if overflow { + return 0, GasUintOverflow + } + + z := dataLen - nz + + product, overflow = emath.SafeMul(z, fixedgas.TxDataZeroGas) + if overflow { + return 0, GasUintOverflow + } + gas, overflow = emath.SafeAdd(gas, product) + if overflow { + return 0, GasUintOverflow + } + + if isContractCreation && isShanghai { + numWords := toWordSize(dataLen) + product, overflow = emath.SafeMul(numWords, fixedgas.InitCodeWordGas) + if overflow { + return 0, GasUintOverflow + } + gas, overflow = emath.SafeAdd(gas, product) + if overflow { + return 0, GasUintOverflow + } + } + } + if accessList != nil { + product, overflow := emath.SafeMul(uint64(len(accessList)), fixedgas.TxAccessListAddressGas) + if overflow { + return 0, GasUintOverflow + } + gas, overflow = emath.SafeAdd(gas, product) + if overflow { + return 0, GasUintOverflow + } + + product, overflow = emath.SafeMul(uint64(accessList.StorageKeys()), fixedgas.TxAccessListStorageKeyGas) + if overflow { + return 0, GasUintOverflow + } + gas, overflow = emath.SafeAdd(gas, product) + if overflow { + return 0, GasUintOverflow + } + } + return gas, Success +} + +// toWordSize returns the ceiled word size required for memory expansion. +func toWordSize(size uint64) uint64 { + if size > math.MaxUint64-31 { + return math.MaxUint64/32 + 1 + } + return (size + 31) / 32 +} diff --git a/erigon-lib/txpool/txpooluitl/all_components.go b/erigon-lib/txpool/txpooluitl/all_components.go new file mode 100644 index 00000000000..8ab31eca862 --- /dev/null +++ b/erigon-lib/txpool/txpooluitl/all_components.go @@ -0,0 +1,159 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package txpooluitl + +import ( + "context" + "fmt" + "math/big" + "time" + + "github.com/c2h5oh/datasize" + "github.com/holiman/uint256" + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/direct" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/kvcache" + "github.com/ledgerwatch/erigon-lib/kv/mdbx" + "github.com/ledgerwatch/erigon-lib/txpool" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" + "github.com/ledgerwatch/erigon-lib/types" +) + +func SaveChainConfigIfNeed(ctx context.Context, coreDB kv.RoDB, txPoolDB kv.RwDB, force bool, logger log.Logger) (cc *chain.Config, blockNum uint64, err error) { + if err = txPoolDB.View(ctx, func(tx kv.Tx) error { + cc, err = txpool.ChainConfig(tx) + if err != nil { + return err + } + blockNum, err = txpool.LastSeenBlock(tx) + if err != nil { + return err + } + return nil + }); err != nil { + return nil, 0, err + } + if cc != nil && !force { + if cc.ChainID.Uint64() == 0 { + return nil, 0, fmt.Errorf("wrong chain config") + } + return cc, blockNum, nil + } + + for { + if err = coreDB.View(ctx, func(tx kv.Tx) error { + cc, err = chain.GetConfig(tx, nil) + if err != nil { + return err + } + n, err := chain.CurrentBlockNumber(tx) + if err != nil { + return err + } + if n != nil { + blockNum = *n + } + return nil + }); err != nil { + logger.Error("cant read chain config from core db", "err", err) + time.Sleep(5 * time.Second) + continue + } else if cc == nil { + logger.Error("cant read chain config from core db") + time.Sleep(5 * time.Second) + continue + } + break + } + + if err = txPoolDB.Update(ctx, func(tx kv.RwTx) error { + if err = txpool.PutChainConfig(tx, cc, nil); err != nil { + return err + } + if err = txpool.PutLastSeenBlock(tx, blockNum, nil); err != nil { + return err + } + return nil + }); err != nil { + return nil, 0, err + } + if cc.ChainID.Uint64() == 0 { + return nil, 0, fmt.Errorf("wrong chain config") + } + return cc, blockNum, nil +} + +func AllComponents(ctx context.Context, cfg txpoolcfg.Config, cache kvcache.Cache, newTxs chan types.Announcements, chainDB kv.RoDB, + sentryClients []direct.SentryClient, stateChangesClient txpool.StateChangesClient, logger log.Logger) (kv.RwDB, *txpool.TxPool, *txpool.Fetch, *txpool.Send, *txpool.GrpcServer, error) { + opts := mdbx.NewMDBX(log.New()).Label(kv.TxPoolDB).Path(cfg.DBDir). + WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { return kv.TxpoolTablesCfg }). + WriteMergeThreshold(3 * 8192). + PageSize(uint64(16 * datasize.KB)). + GrowthStep(16 * datasize.MB). + DirtySpace(uint64(128 * datasize.MB)). + MapSize(1 * datasize.TB) + + if cfg.MdbxPageSize.Bytes() > 0 { + opts = opts.PageSize(cfg.MdbxPageSize.Bytes()) + } + if cfg.MdbxDBSizeLimit > 0 { + opts = opts.MapSize(cfg.MdbxDBSizeLimit) + } + if cfg.MdbxGrowthStep > 0 { + opts = opts.GrowthStep(cfg.MdbxGrowthStep) + } + + txPoolDB, err := opts.Open(ctx) + + if err != nil { + return nil, nil, nil, nil, nil, err + } + + chainConfig, _, err := SaveChainConfigIfNeed(ctx, chainDB, txPoolDB, true, logger) + if err != nil { + return nil, nil, nil, nil, nil, err + } + + chainID, _ := uint256.FromBig(chainConfig.ChainID) + maxBlobsPerBlock := chainConfig.GetMaxBlobsPerBlock() + + shanghaiTime := chainConfig.ShanghaiTime + var agraBlock *big.Int + if chainConfig.Bor != nil { + agraBlock = chainConfig.Bor.AgraBlock + } + cancunTime := chainConfig.CancunTime + if cfg.OverrideCancunTime != nil { + cancunTime = cfg.OverrideCancunTime + } + + txPool, err := txpool.New(newTxs, chainDB, cfg, cache, *chainID, shanghaiTime, agraBlock, cancunTime, maxBlobsPerBlock, logger) + if err != nil { + return nil, nil, nil, nil, nil, err + } + + fetch := txpool.NewFetch(ctx, sentryClients, txPool, stateChangesClient, chainDB, txPoolDB, *chainID, logger) + //fetch.ConnectCore() + //fetch.ConnectSentries() + + send := txpool.NewSend(ctx, sentryClients, txPool, logger) + txpoolGrpcServer := txpool.NewGrpcServer(ctx, txPool, txPoolDB, *chainID, logger) + return txPoolDB, txPool, fetch, send, txpoolGrpcServer, nil +} diff --git a/erigon-lib/types/clonable/clonable.go b/erigon-lib/types/clonable/clonable.go new file mode 100644 index 00000000000..ae109de5fd6 --- /dev/null +++ b/erigon-lib/types/clonable/clonable.go @@ -0,0 +1,21 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package clonable + +type Clonable interface { + Clone() Clonable +} diff --git a/erigon-lib/types/ssz/errors.go b/erigon-lib/types/ssz/errors.go new file mode 100644 index 00000000000..2f24553dd5a --- /dev/null +++ b/erigon-lib/types/ssz/errors.go @@ -0,0 +1,27 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package ssz + +import "errors" + +var ( + ErrLowBufferSize = errors.New("ssz(DecodeSSZ): bad encoding size") + ErrBadDynamicLength = errors.New("ssz(DecodeSSZ): bad dynamic length") + ErrBadOffset = errors.New("ssz(DecodeSSZ): invalid offset") + ErrBufferNotRounded = errors.New("ssz(DecodeSSZ): badly rounded operator") + ErrTooBigList = errors.New("ssz(DecodeSSZ): list too big") +) diff --git a/erigon-lib/types/ssz/ssz.go b/erigon-lib/types/ssz/ssz.go new file mode 100644 index 00000000000..6ecae5a1328 --- /dev/null +++ b/erigon-lib/types/ssz/ssz.go @@ -0,0 +1,224 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package ssz + +import ( + "encoding/binary" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/types/clonable" +) + +var ( + BaseExtraDataSSZOffsetHeader = 536 + BaseExtraDataSSZOffsetBlock = 508 +) + +type HashableSSZ interface { + HashSSZ() ([32]byte, error) +} + +type EncodableSSZ interface { + Marshaler + Unmarshaler +} + +type Marshaler interface { + EncodeSSZ([]byte) ([]byte, error) + EncodingSizeSSZ() int +} + +type Unmarshaler interface { + DecodeSSZ(buf []byte, version int) error + clonable.Clonable +} + +func MarshalUint64SSZ(buf []byte, x uint64) { + binary.LittleEndian.PutUint64(buf, x) +} + +func Uint64SSZ(x uint64) []byte { + b := make([]byte, 8) + binary.LittleEndian.PutUint64(b, x) + return b +} + +func BoolSSZ(b bool) byte { + if b { + return 1 + } + return 0 +} + +func OffsetSSZ(x uint32) []byte { + b := make([]byte, 4) + binary.LittleEndian.PutUint32(b, x) + return b +} + +// EncodeOffset marshals a little endian uint32 to buf +func EncodeOffset(buf []byte, offset uint32) { + binary.LittleEndian.PutUint32(buf, offset) +} + +// ReadOffset unmarshals a little endian uint32 to dst +func DecodeOffset(x []byte) uint32 { + return binary.LittleEndian.Uint32(x) +} + +func UnmarshalUint64SSZ(x []byte) uint64 { + return binary.LittleEndian.Uint64(x) +} + +func DecodeDynamicList[T Unmarshaler](bytes []byte, start, end uint32, max uint64, version int) ([]T, error) { + if start > end || len(bytes) < int(end) { + return nil, ErrBadOffset + } + buf := bytes[start:end] + var elementsNum, currentOffset uint32 + if len(buf) > 4 { + currentOffset = DecodeOffset(buf) + elementsNum = currentOffset / 4 + } + inPos := 4 + if uint64(elementsNum) > max { + return nil, ErrTooBigList + } + objs := make([]T, elementsNum) + for i := range objs { + endOffset := uint32(len(buf)) + if i != len(objs)-1 { + if len(buf[inPos:]) < 4 { + return nil, ErrLowBufferSize + } + endOffset = DecodeOffset(buf[inPos:]) + } + inPos += 4 + if endOffset < currentOffset || len(buf) < int(endOffset) { + return nil, ErrBadOffset + } + objs[i] = objs[i].Clone().(T) + if err := objs[i].DecodeSSZ(buf[currentOffset:endOffset], version); err != nil { + return nil, err + } + currentOffset = endOffset + } + return objs, nil +} + +func DecodeStaticList[T Unmarshaler](bytes []byte, start, end, bytesPerElement uint32, max uint64, version int) ([]T, error) { + if start > end || len(bytes) < int(end) { + return nil, ErrBadOffset + } + buf := bytes[start:end] + elementsNum := uint64(len(buf)) / uint64(bytesPerElement) + // Check for errors + if uint32(len(buf))%bytesPerElement != 0 { + return nil, ErrBufferNotRounded + } + if elementsNum > max { + return nil, ErrTooBigList + } + objs := make([]T, elementsNum) + for i := range objs { + objs[i] = objs[i].Clone().(T) + if err := objs[i].DecodeSSZ(buf[i*int(bytesPerElement):], version); err != nil { + return nil, err + } + } + return objs, nil +} + +func DecodeHashList(bytes []byte, start, end, max uint32) ([]common.Hash, error) { + if start > end || len(bytes) < int(end) { + return nil, ErrBadOffset + } + buf := bytes[start:end] + elementsNum := uint32(len(buf)) / length.Hash + // Check for errors + if uint32(len(buf))%length.Hash != 0 { + return nil, ErrBufferNotRounded + } + if elementsNum > max { + return nil, ErrTooBigList + } + objs := make([]common.Hash, elementsNum) + for i := range objs { + copy(objs[i][:], buf[i*length.Hash:]) + } + return objs, nil +} + +func DecodeNumbersList(bytes []byte, start, end uint32, max uint64) ([]uint64, error) { + if start > end || len(bytes) < int(end) { + return nil, ErrBadOffset + } + buf := bytes[start:end] + elementsNum := uint64(len(buf)) / length.BlockNum + // Check for errors + if uint64(len(buf))%length.BlockNum != 0 { + return nil, ErrBufferNotRounded + } + if elementsNum > max { + return nil, ErrTooBigList + } + objs := make([]uint64, elementsNum) + for i := range objs { + objs[i] = UnmarshalUint64SSZ(buf[i*length.BlockNum:]) + } + return objs, nil +} + +func CalculateIndiciesLimit(maxCapacity, numItems, size uint64) uint64 { + limit := (maxCapacity*size + 31) / 32 + if limit != 0 { + return limit + } + if numItems == 0 { + return 1 + } + return numItems +} + +func DecodeString(bytes []byte, start, end, max uint64) ([]byte, error) { + if start > end || len(bytes) < int(end) { + return nil, ErrBadOffset + } + buf := bytes[start:end] + if uint64(len(buf)) > max { + return nil, ErrTooBigList + } + return buf, nil +} + +func EncodeDynamicList[T Marshaler](buf []byte, objs []T) (dst []byte, err error) { + dst = buf + // Attestation + subOffset := len(objs) * 4 + for _, attestation := range objs { + dst = append(dst, OffsetSSZ(uint32(subOffset))...) + subOffset += attestation.EncodingSizeSSZ() + } + for _, obj := range objs { + dst, err = obj.EncodeSSZ(dst) + if err != nil { + return + } + } + return +} diff --git a/erigon-lib/types/testdata.go b/erigon-lib/types/testdata.go new file mode 100644 index 00000000000..e41f8c83993 --- /dev/null +++ b/erigon-lib/types/testdata.go @@ -0,0 +1,98 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package types + +import ( + "github.com/holiman/uint256" +) + +type parseTxTest struct { + PayloadStr string + SenderStr string + IdHashStr string + SignHashStr string + Nonce uint64 +} + +var TxParseMainnetTests = []parseTxTest{ + // Legacy unprotected + {PayloadStr: "f86a808459682f0082520894fe3b557e8fb62b89f4916b721be55ceb828dbd73872386f26fc10000801ca0d22fc3eed9b9b9dbef9eec230aa3fb849eff60356c6b34e86155dca5c03554c7a05e3903d7375337f103cb9583d97a59dcca7472908c31614ae240c6a8311b02d6", + SenderStr: "fe3b557e8fb62b89f4916b721be55ceb828dbd73", IdHashStr: "595e27a835cd79729ff1eeacec3120eeb6ed1464a04ec727aaca734ead961328", + SignHashStr: "e2b043ecdbcfed773fe7b5ffc2e23ec238081c77137134a06d71eedf9cdd81d3", Nonce: 0}, + + {PayloadStr: "02f86a0180843b9aca00843b9aca0082520894e80d2a018c813577f33f9e69387dc621206fb3a48080c001a02c73a04cd144e5a84ceb6da942f83763c2682896b51f7922e2e2f9a524dd90b7a0235adda5f87a1d098e2739e40e83129ff82837c9042e6ad61d0481334dcb6f1a", + SenderStr: "81f5daee2c61807d0fc5e4c8b4e1d3c3e028d9ab", IdHashStr: "b4a8cd0b91310b0f84216c834c4cfa25a4ffc116b54692ac1f4e682be7fa73c9", + SignHashStr: "c63673a5d989925d01a6c1339252f546e99b6957ce566a488154e169ae9bd49c", Nonce: 0}, + {PayloadStr: "01f86b01018203e882520894236ff1e97419ae93ad80cafbaa21220c5d78fb7d880de0b6b3a764000080c080a0987e3d8d0dcd86107b041e1dca2e0583118ff466ad71ad36a8465dd2a166ca2da02361c5018e63beea520321b290097cd749febc2f437c7cb41fdd085816742060", + SenderStr: "91406aebf7370d6db8d1796bc8fe97ca4b6bed78", IdHashStr: "7edf4b1a1594b252eb80edcf51605eb1a3b17ccdf891b303a8be146269821b65", + SignHashStr: "ae2a02407f345601507c52d1af6a89bafd4622fbcdac0001272ebca42cf7f7c2", Nonce: 1}, + {PayloadStr: "f86780862d79883d2000825208945df9b87991262f6ba471f09758cde1c0fc1de734827a69801ca088ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0a045e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33a", + SenderStr: "a1e4380a3b1f749673e270229993ee55f35663b4", IdHashStr: "5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060", + SignHashStr: "19b1e28c14f33e74b96b88eba97d4a4fc8a97638d72e972310025b7e1189b049", Nonce: 0}, + {PayloadStr: "b903a301f9039f018218bf85105e34df0083048a949410a0847c2d170008ddca7c3a688124f49363003280b902e4c11695480000000000000000000000004b274e4a9af31c20ed4151769a88ffe63d9439960000000000000000000000008510211a852f0c5994051dd85eaef73112a82eb5000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000bad4de000000000000000000000000607816a600000000000000000000000000000000000000000000000000000000000002200000000000000000000000000000000000000000000000000000001146aa2600000000000000000000000000000000000000000000000000000000000001bc9b000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee000000000000000000000000482579f93dc13e6b434e38b5a0447ca543d88a4600000000000000000000000000000000000000000000000000000000000000c42df546f40000000000000000000000004b274e4a9af31c20ed4151769a88ffe63d943996000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0000000000000000000000007d93f93d41604572119e4be7757a7a4a43705f080000000000000000000000000000000000000000000000003782dace9d90000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082b5a61569b5898ac347c82a594c86699f1981aa88ca46a6a00b8e4f27b3d17bdf3714e7c0ca6a8023b37cca556602fce7dc7daac3fcee1ab04bbb3b94c10dec301cc57266db6567aa073efaa1fa6669bdc6f0877b0aeab4e33d18cb08b8877f08931abf427f11bade042177db48ca956feb114d6f5d56d1f5889047189562ec545e1c000000000000000000000000000000000000000000000000000000000000f84ff7946856ccf24beb7ed77f1f24eee5742f7ece5557e2e1a00000000000000000000000000000000000000000000000000000000000000001d694b1dd690cc9af7bb1a906a9b5a94f94191cc553cec080a0d52f3dbcad3530e73fcef6f4a75329b569a8903bf6d8109a960901f251a37af3a00ecf570e0c0ffa6efdc6e6e49be764b6a1a77e47de7bb99e167544ffbbcd65bc", + SenderStr: "1ced2cef30d40bb3617f8d455071b69f3b12d06f", IdHashStr: "851bad0415758075a1eb86776749c829b866d43179c57c3e4a4b9359a0358231", + SignHashStr: "894d999ea27537def37534b3d55df3fed4e1492b31e9f640774432d21cf4512c", Nonce: 6335}, + {PayloadStr: "02f8cf01038502540be40085174876e8008301869f94e77162b7d2ceb3625a4993bab557403a7b706f18865af3107a400080f85bf85994de0b295669a9fd93d5f28d9ec85e40f4cb697baef842a00000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000780a0f73da48f3f5c9f324dfd28d106dcf911b53f33c92ae068cf6135352300e7291aa06ee83d0f59275d90000ac8cf912c6eb47261d244c9db19ffefc49e52869ff197", + SenderStr: "e252dd9e8b19f4bcdc0f542e04e732fed2047f00", IdHashStr: "f08b9885d48a1307c5d5841fb2f92adaa35815846ac071cba65376ccfbc99c5d", + SignHashStr: "aeda585cd1f1dc0812d7c9ef0396fe3fb9102c9b927a14724180d4616f4568f2", Nonce: 3}, + // Access list + {PayloadStr: "01f889018201f30a8301e241808080f838f7940000000000000000000000000000000000000001e1a0000000000000000000000000000000000000000000000000000000000000000080a0a2196512ef8325b781e32d96d283a9d4cf3946947da77f3cd310eee050c537d5a00144af5513a24363bf49abed9a25476cb7c33df6e0c0053b63ee8dac64b027aa", + SenderStr: "4d8286232b1f058d8bdb1702d0f6a1e887ced385", IdHashStr: "bde66bd7925917db9e49e38a12ed0dcd6f9422f8db90de26d34a4523f8861d1e", + SignHashStr: "7f69febd06ddc1e72d9cd34524c82b3a8a116a02a10757be34cf536d6992d51c", Nonce: 499}, + {PayloadStr: "01f84b01018080808080c080a0382d06e968cc18373209a2532b2c9df494c36475e479020730c918b1b6f73f6ba0084b433c82339de844e2531363f59fa64218e965016cc55069828d88959b58fe", Nonce: 1}, +} + +var txParseCalaverasTests = []parseTxTest{ + // Legacy protected (EIP-155) from calveras, with chainId 123 + {PayloadStr: "f86d808459682f0082520894e80d2a018c813577f33f9e69387dc621206fb3a48856bc75e2d63100008082011aa04ae3cae463329a32573f4fbf1bd9b011f93aecf80e4185add4682a03ba4a4919a02b8f05f3f4858b0da24c93c2a65e51b2fbbecf5ffdf97c1f8cc1801f307dc107", + IdHashStr: "f4a91979624effdb45d2ba012a7995c2652b62ebbeb08cdcab00f4923807aa8a", + SignHashStr: "ff44cf01ee9b831f09910309a689e8da83d19aa60bad325ee9154b7c25cf4de8", Nonce: 0}, +} + +var txParseDevNetTests = []parseTxTest{ + {PayloadStr: "f8620101830186a09400000000000000000000000000000000000000006401820a96a04f353451b272c6b183cedf20787dab556db5afadf16733a3c6bffb0d2fcd2563a0773cd45f7cc62250f7ee715b9e19f0489176f8966f75c8eed2fbf1ac861cb50c", + IdHashStr: "35767571787cd95dd71e2081ac4f667076f012b854fc314ed3b131e12623cbbd", + SignHashStr: "a2719fbc84efd65eee79201e46f5110edc4731c90ffe1cebf8644c8ddd62528d", + SenderStr: "67b1d87101671b127f5f8714789c7192f7ad340e", Nonce: 1}, +} + +var txRopstenTests = []parseTxTest{ + {PayloadStr: "f868188902000000000000000082520894000000000000000000000000000000000000004380801ba01d852f75e0bdbdf3c2b770be97eb3b74d9a3b2450fb58aa6cfbc9e9faa1c4b24a079aef959a5f032ed90b2e44b74a2e850043a3e0ab83f994ab0619638173fe035", + Nonce: 24, SenderStr: "874b54a8bd152966d63f706bae1ffeb0411921e5", IdHashStr: "5928c90044b9d2add2fc7f580e0c6ea1b2dca2ea8c254dfa4092c251f895ed52"}, +} + +var allNetsTestCases = []struct { + tests []parseTxTest + chainID uint256.Int +}{ + { + chainID: *uint256.NewInt(1), + tests: TxParseMainnetTests, + }, + { + chainID: *uint256.NewInt(123), + tests: txParseCalaverasTests, + }, + { + chainID: *uint256.NewInt(1337), + tests: txParseDevNetTests, + }, + { + chainID: *uint256.NewInt(3), + tests: txRopstenTests, + }, +} diff --git a/erigon-lib/types/testdata/fuzz/FuzzGetPooledTransactions66/35ee0280203b07f8c31d8fe5709ceebe1cc40a6a58ceafb2c03cb61f382ba47b b/erigon-lib/types/testdata/fuzz/FuzzGetPooledTransactions66/35ee0280203b07f8c31d8fe5709ceebe1cc40a6a58ceafb2c03cb61f382ba47b new file mode 100644 index 00000000000..bd42d90cc9a --- /dev/null +++ b/erigon-lib/types/testdata/fuzz/FuzzGetPooledTransactions66/35ee0280203b07f8c31d8fe5709ceebe1cc40a6a58ceafb2c03cb61f382ba47b @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\xe6\x83\x06\xf8T\xe1\xa0Y^'\xa85\xcdyr\x9f\x00\x80\xac\xec1\x87\xd4S_\xfc\xee\xee\xb6\xed\x14d\xa0N\xc7'\xaa\xca\xe1\xa0Y^'\xa85\xcdyr\x9f\x00\x80\xac\xec1\x87\xd4S_\xfc\xee\xeesN\xad\x96\xd8q\x8d\x03\xab\xc5\xfc\x13(") diff --git a/erigon-lib/types/testdata/fuzz/FuzzPooledTransactions66/495796522cf9f672fef390129494776063de46bedc6461b3fde47a3fed63701f b/erigon-lib/types/testdata/fuzz/FuzzPooledTransactions66/495796522cf9f672fef390129494776063de46bedc6461b3fde47a3fed63701f new file mode 100644 index 00000000000..b29ea115727 --- /dev/null +++ b/erigon-lib/types/testdata/fuzz/FuzzPooledTransactions66/495796522cf9f672fef390129494776063de46bedc6461b3fde47a3fed63701f @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("\xe8\xbf\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffq\xe8ffff\x95^\xf9\f\x91\xf9\xfa\b\xf9n\xbf\xbf\xbf\x00}vPY\xef\xfe3") diff --git a/erigon-lib/types/testdata/fuzz/FuzzPooledTransactions66/8d3f97ae581a3b81e90f7bbcdfef335dbcb36807a6efc576624e518f9fb7e929 b/erigon-lib/types/testdata/fuzz/FuzzPooledTransactions66/8d3f97ae581a3b81e90f7bbcdfef335dbcb36807a6efc576624e518f9fb7e929 new file mode 100644 index 00000000000..0f0e01586b6 --- /dev/null +++ b/erigon-lib/types/testdata/fuzz/FuzzPooledTransactions66/8d3f97ae581a3b81e90f7bbcdfef335dbcb36807a6efc576624e518f9fb7e929 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("ׂW\xf8\xd2\xf8555\x82\x02\x00\x80%\xa0\x00\x10p-\xfe\xcc\xc5}\xd2\xd2\xd2\xd2\xd2\xd22*F:\xd5U\xa2\x01\x8d+\xad\x02\x039\n\n\n\n\n\n\n%m\x01\xf6+E\xb2\xe1\xc2\x1c") diff --git a/erigon-lib/types/testdata/fuzz/FuzzPooledTransactions66/c6652a57f98dde9e244c20ff8fb4bd1b2e347a597f2d3e2a71edc4118d4e1ce5 b/erigon-lib/types/testdata/fuzz/FuzzPooledTransactions66/c6652a57f98dde9e244c20ff8fb4bd1b2e347a597f2d3e2a71edc4118d4e1ce5 new file mode 100644 index 00000000000..b99330e27db --- /dev/null +++ b/erigon-lib/types/testdata/fuzz/FuzzPooledTransactions66/c6652a57f98dde9e244c20ff8fb4bd1b2e347a597f2d3e2a71edc4118d4e1ce5 @@ -0,0 +1,2 @@ +go test fuzz v1 +[]byte("ؿ\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82W̪l\xe1\xd5\xf8\xb9\x97\x97\x9c") diff --git a/erigon-lib/types/txn.go b/erigon-lib/types/txn.go new file mode 100644 index 00000000000..d7f96d78146 --- /dev/null +++ b/erigon-lib/types/txn.go @@ -0,0 +1,986 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package types + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "hash" + "io" + "math/bits" + "sort" + + gokzg4844 "github.com/crate-crypto/go-kzg-4844" + "github.com/holiman/uint256" + "github.com/ledgerwatch/secp256k1" + "golang.org/x/crypto/sha3" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/fixedgas" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/common/u256" + "github.com/ledgerwatch/erigon-lib/crypto" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "github.com/ledgerwatch/erigon-lib/rlp" +) + +type TxParseConfig struct { + ChainID uint256.Int +} + +// TxParseContext is object that is required to parse transactions and turn transaction payload into TxSlot objects +// usage of TxContext helps avoid extra memory allocations +type TxParseContext struct { + Keccak2 hash.Hash + Keccak1 hash.Hash + validateRlp func([]byte) error + ChainID uint256.Int // Signature values + R uint256.Int // Signature values + S uint256.Int // Signature values + V uint256.Int // Signature values + ChainIDMul uint256.Int + DeriveChainID uint256.Int // pre-allocated variable to calculate Sub(&ctx.v, &ctx.chainIDMul) + cfg TxParseConfig + buf [65]byte // buffer needs to be enough for hashes (32 bytes) and for public key (65 bytes) + Sig [65]byte + Sighash [32]byte + withSender bool + allowPreEip2s bool // Allow s > secp256k1n/2; see EIP-2 + chainIDRequired bool + IsProtected bool +} + +func NewTxParseContext(chainID uint256.Int) *TxParseContext { + if chainID.IsZero() { + panic("wrong chainID") + } + ctx := &TxParseContext{ + withSender: true, + Keccak1: sha3.NewLegacyKeccak256(), + Keccak2: sha3.NewLegacyKeccak256(), + } + + // behave as of London enabled + ctx.cfg.ChainID.Set(&chainID) + ctx.ChainIDMul.Mul(&chainID, u256.N2) + return ctx +} + +// TxSlot contains information extracted from an Ethereum transaction, which is enough to manage it inside the transaction. +// Also, it contains some auxillary information, like ephemeral fields, and indices within priority queues +type TxSlot struct { + Rlp []byte // Is set to nil after flushing to db, frees memory, later we look for it in the db, if needed + Value uint256.Int // Value transferred by the transaction + Tip uint256.Int // Maximum tip that transaction is giving to miner/block proposer + FeeCap uint256.Int // Maximum fee that transaction burns and gives to the miner/block proposer + SenderID uint64 // SenderID - require external mapping to it's address + Nonce uint64 // Nonce of the transaction + DataLen int // Length of transaction's data (for calculation of intrinsic gas) + DataNonZeroLen int + AlAddrCount int // Number of addresses in the access list + AlStorCount int // Number of storage keys in the access list + Gas uint64 // Gas limit of the transaction + IDHash [32]byte // Transaction hash for the purposes of using it as a transaction Id + Traced bool // Whether transaction needs to be traced throughout transaction pool code and generate debug printing + Creation bool // Set to true if "To" field of the transaction is not set + Type byte // Transaction type + Size uint32 // Size of the payload (without the RLP string envelope for typed transactions) + + // EIP-4844: Shard Blob Transactions + BlobFeeCap uint256.Int // max_fee_per_blob_gas + BlobHashes []common.Hash + Blobs [][]byte + Commitments []gokzg4844.KZGCommitment + Proofs []gokzg4844.KZGProof +} + +const ( + LegacyTxType byte = 0 + AccessListTxType byte = 1 // EIP-2930 + DynamicFeeTxType byte = 2 // EIP-1559 + BlobTxType byte = 3 // EIP-4844 +) + +var ErrParseTxn = fmt.Errorf("%w transaction", rlp.ErrParse) + +var ErrRejected = errors.New("rejected") +var ErrAlreadyKnown = errors.New("already known") +var ErrRlpTooBig = errors.New("txn rlp too big") + +// Set the RLP validate function +func (ctx *TxParseContext) ValidateRLP(f func(txnRlp []byte) error) { ctx.validateRlp = f } + +// Set the with sender flag +func (ctx *TxParseContext) WithSender(v bool) { ctx.withSender = v } + +// Set the AllowPreEIP2s flag +func (ctx *TxParseContext) WithAllowPreEip2s(v bool) { ctx.allowPreEip2s = v } + +// Set ChainID-Required flag in the Parse context and return it +func (ctx *TxParseContext) ChainIDRequired() *TxParseContext { + ctx.chainIDRequired = true + return ctx +} + +func PeekTransactionType(serialized []byte) (byte, error) { + dataPos, _, legacy, err := rlp.Prefix(serialized, 0) + if err != nil { + return LegacyTxType, fmt.Errorf("%w: size Prefix: %s", ErrParseTxn, err) //nolint + } + if legacy { + return LegacyTxType, nil + } + return serialized[dataPos], nil +} + +// ParseTransaction extracts all the information from the transactions's payload (RLP) necessary to build TxSlot. +// It also performs syntactic validation of the transactions. +// wrappedWithBlobs means that for blob (type 3) transactions the full version with blobs/commitments/proofs is expected +// (see https://eips.ethereum.org/EIPS/eip-4844#networking). +func (ctx *TxParseContext) ParseTransaction(payload []byte, pos int, slot *TxSlot, sender []byte, hasEnvelope, wrappedWithBlobs bool, validateHash func([]byte) error) (p int, err error) { + if len(payload) == 0 { + return 0, fmt.Errorf("%w: empty rlp", ErrParseTxn) + } + if ctx.withSender && len(sender) != 20 { + return 0, fmt.Errorf("%w: expect sender buffer of len 20", ErrParseTxn) + } + + // Legacy transactions have list Prefix, whereas EIP-2718 transactions have string Prefix + // therefore we assign the first returned value of Prefix function (list) to legacy variable + dataPos, dataLen, legacy, err := rlp.Prefix(payload, pos) + if err != nil { + return 0, fmt.Errorf("%w: size Prefix: %s", ErrParseTxn, err) //nolint + } + // This handles the transactions coming from other Erigon peers of older versions, which add 0x80 (empty) transactions into packets + if dataLen == 0 { + return 0, fmt.Errorf("%w: transaction must be either 1 list or 1 string", ErrParseTxn) + } + if dataLen == 1 && !legacy { + if hasEnvelope { + return 0, fmt.Errorf("%w: expected envelope in the payload, got %x", ErrParseTxn, payload[dataPos:dataPos+dataLen]) + } + } + + p = dataPos + + var wrapperDataPos, wrapperDataLen int + + // If it is non-legacy transaction, the transaction type follows, and then the the list + if !legacy { + slot.Type = payload[p] + if slot.Type > BlobTxType { + return 0, fmt.Errorf("%w: unknown transaction type: %d", ErrParseTxn, slot.Type) + } + p++ + if p >= len(payload) { + return 0, fmt.Errorf("%w: unexpected end of payload after txType", ErrParseTxn) + } + dataPos, dataLen, err = rlp.List(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: envelope Prefix: %s", ErrParseTxn, err) //nolint + } + // For legacy transaction, the entire payload in expected to be in "rlp" field + // whereas for non-legacy, only the content of the envelope (start with position p) + slot.Rlp = payload[p-1 : dataPos+dataLen] + + if slot.Type == BlobTxType && wrappedWithBlobs { + p = dataPos + wrapperDataPos = dataPos + wrapperDataLen = dataLen + dataPos, dataLen, err = rlp.List(payload, dataPos) + if err != nil { + return 0, fmt.Errorf("%w: wrapped blob tx: %s", ErrParseTxn, err) //nolint + } + } + } else { + slot.Type = LegacyTxType + slot.Rlp = payload[pos : dataPos+dataLen] + } + + p, err = ctx.parseTransactionBody(payload, pos, p, slot, sender, validateHash) + if err != nil { + return p, err + } + + if slot.Type == BlobTxType && wrappedWithBlobs { + if p != dataPos+dataLen { + return 0, fmt.Errorf("%w: unexpected leftover after blob tx body", ErrParseTxn) + } + + dataPos, dataLen, err = rlp.List(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: blobs len: %s", ErrParseTxn, err) //nolint + } + blobPos := dataPos + for blobPos < dataPos+dataLen { + blobPos, err = rlp.StringOfLen(payload, blobPos, fixedgas.BlobSize) + if err != nil { + return 0, fmt.Errorf("%w: blob: %s", ErrParseTxn, err) //nolint + } + slot.Blobs = append(slot.Blobs, payload[blobPos:blobPos+fixedgas.BlobSize]) + blobPos += fixedgas.BlobSize + } + if blobPos != dataPos+dataLen { + return 0, fmt.Errorf("%w: extraneous space in blobs", ErrParseTxn) + } + p = blobPos + + dataPos, dataLen, err = rlp.List(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: commitments len: %s", ErrParseTxn, err) //nolint + } + commitmentPos := dataPos + for commitmentPos < dataPos+dataLen { + commitmentPos, err = rlp.StringOfLen(payload, commitmentPos, 48) + if err != nil { + return 0, fmt.Errorf("%w: commitment: %s", ErrParseTxn, err) //nolint + } + var commitment gokzg4844.KZGCommitment + copy(commitment[:], payload[commitmentPos:commitmentPos+48]) + slot.Commitments = append(slot.Commitments, commitment) + commitmentPos += 48 + } + if commitmentPos != dataPos+dataLen { + return 0, fmt.Errorf("%w: extraneous space in commitments", ErrParseTxn) + } + p = commitmentPos + + dataPos, dataLen, err = rlp.List(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: proofs len: %s", ErrParseTxn, err) //nolint + } + proofPos := dataPos + for proofPos < dataPos+dataLen { + proofPos, err = rlp.StringOfLen(payload, proofPos, 48) + if err != nil { + return 0, fmt.Errorf("%w: proof: %s", ErrParseTxn, err) //nolint + } + var proof gokzg4844.KZGProof + copy(proof[:], payload[proofPos:proofPos+48]) + slot.Proofs = append(slot.Proofs, proof) + proofPos += 48 + } + if proofPos != dataPos+dataLen { + return 0, fmt.Errorf("%w: extraneous space in proofs", ErrParseTxn) + } + p = proofPos + + if p != wrapperDataPos+wrapperDataLen { + return 0, fmt.Errorf("%w: extraneous elements in blobs wrapper", ErrParseTxn) + } + } + + slot.Size = uint32(len(slot.Rlp)) + + return p, err +} + +func (ctx *TxParseContext) parseTransactionBody(payload []byte, pos, p0 int, slot *TxSlot, sender []byte, validateHash func([]byte) error) (p int, err error) { + p = p0 + legacy := slot.Type == LegacyTxType + + // Compute transaction hash + ctx.Keccak1.Reset() + ctx.Keccak2.Reset() + if !legacy { + typeByte := []byte{slot.Type} + if _, err = ctx.Keccak1.Write(typeByte); err != nil { + return 0, fmt.Errorf("%w: computing IdHash (hashing type Prefix): %s", ErrParseTxn, err) //nolint + } + if _, err = ctx.Keccak2.Write(typeByte); err != nil { + return 0, fmt.Errorf("%w: computing signHash (hashing type Prefix): %s", ErrParseTxn, err) //nolint + } + dataPos, dataLen, err := rlp.List(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: envelope Prefix: %s", ErrParseTxn, err) //nolint + } + // Hash the content of envelope, not the full payload + if _, err = ctx.Keccak1.Write(payload[p : dataPos+dataLen]); err != nil { + return 0, fmt.Errorf("%w: computing IdHash (hashing the envelope): %s", ErrParseTxn, err) //nolint + } + p = dataPos + } + + if ctx.validateRlp != nil { + if err := ctx.validateRlp(slot.Rlp); err != nil { + return p, err + } + } + + // Remember where signing hash data begins (it will need to be wrapped in an RLP list) + sigHashPos := p + if !legacy { + p, err = rlp.U256(payload, p, &ctx.ChainID) + if err != nil { + return 0, fmt.Errorf("%w: chainId len: %s", ErrParseTxn, err) //nolint + } + if ctx.ChainID.IsZero() { // zero indicates that the chain ID was not specified in the tx. + if ctx.chainIDRequired { + return 0, fmt.Errorf("%w: chainID is required", ErrParseTxn) + } + ctx.ChainID.Set(&ctx.cfg.ChainID) + } + if !ctx.ChainID.Eq(&ctx.cfg.ChainID) { + return 0, fmt.Errorf("%w: %s, %d (expected %d)", ErrParseTxn, "invalid chainID", ctx.ChainID.Uint64(), ctx.cfg.ChainID.Uint64()) + } + } + // Next follows the nonce, which we need to parse + p, slot.Nonce, err = rlp.U64(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: nonce: %s", ErrParseTxn, err) //nolint + } + // Next follows gas price or tip + p, err = rlp.U256(payload, p, &slot.Tip) + if err != nil { + return 0, fmt.Errorf("%w: tip: %s", ErrParseTxn, err) //nolint + } + // Next follows feeCap, but only for dynamic fee transactions, for legacy transaction, it is + // equal to tip + if slot.Type < DynamicFeeTxType { + slot.FeeCap = slot.Tip + } else { + p, err = rlp.U256(payload, p, &slot.FeeCap) + if err != nil { + return 0, fmt.Errorf("%w: feeCap: %s", ErrParseTxn, err) //nolint + } + } + // Next follows gas + p, slot.Gas, err = rlp.U64(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: gas: %s", ErrParseTxn, err) //nolint + } + // Next follows the destination address (if present) + dataPos, dataLen, err := rlp.String(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: to len: %s", ErrParseTxn, err) //nolint + } + if dataLen != 0 && dataLen != 20 { + return 0, fmt.Errorf("%w: unexpected length of to field: %d", ErrParseTxn, dataLen) + } + + // Only note if To field is empty or not + slot.Creation = dataLen == 0 + p = dataPos + dataLen + // Next follows value + p, err = rlp.U256(payload, p, &slot.Value) + if err != nil { + return 0, fmt.Errorf("%w: value: %s", ErrParseTxn, err) //nolint + } + // Next goes data, but we are only interesting in its length + dataPos, dataLen, err = rlp.String(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: data len: %s", ErrParseTxn, err) //nolint + } + slot.DataLen = dataLen + + // Zero and non-zero bytes are priced differently + slot.DataNonZeroLen = 0 + for _, byt := range payload[dataPos : dataPos+dataLen] { + if byt != 0 { + slot.DataNonZeroLen++ + } + } + + p = dataPos + dataLen + + // Next follows access list for non-legacy transactions, we are only interesting in number of addresses and storage keys + if !legacy { + dataPos, dataLen, err = rlp.List(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: access list len: %s", ErrParseTxn, err) //nolint + } + tuplePos := dataPos + for tuplePos < dataPos+dataLen { + var tupleLen int + tuplePos, tupleLen, err = rlp.List(payload, tuplePos) + if err != nil { + return 0, fmt.Errorf("%w: tuple len: %s", ErrParseTxn, err) //nolint + } + var addrPos int + addrPos, err = rlp.StringOfLen(payload, tuplePos, 20) + if err != nil { + return 0, fmt.Errorf("%w: tuple addr len: %s", ErrParseTxn, err) //nolint + } + slot.AlAddrCount++ + var storagePos, storageLen int + storagePos, storageLen, err = rlp.List(payload, addrPos+20) + if err != nil { + return 0, fmt.Errorf("%w: storage key list len: %s", ErrParseTxn, err) //nolint + } + skeyPos := storagePos + for skeyPos < storagePos+storageLen { + skeyPos, err = rlp.StringOfLen(payload, skeyPos, 32) + if err != nil { + return 0, fmt.Errorf("%w: tuple storage key len: %s", ErrParseTxn, err) //nolint + } + slot.AlStorCount++ + skeyPos += 32 + } + if skeyPos != storagePos+storageLen { + return 0, fmt.Errorf("%w: extraneous space in the tuple after storage key list", ErrParseTxn) + } + tuplePos += tupleLen + } + if tuplePos != dataPos+dataLen { + return 0, fmt.Errorf("%w: extraneous space in the access list after all tuples", ErrParseTxn) + } + p = dataPos + dataLen + } + if slot.Type == BlobTxType { + p, err = rlp.U256(payload, p, &slot.BlobFeeCap) + if err != nil { + return 0, fmt.Errorf("%w: blob fee cap: %s", ErrParseTxn, err) //nolint + } + dataPos, dataLen, err = rlp.List(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: blob hashes len: %s", ErrParseTxn, err) //nolint + } + hashPos := dataPos + for hashPos < dataPos+dataLen { + var hash common.Hash + hashPos, err = rlp.ParseHash(payload, hashPos, hash[:]) + if err != nil { + return 0, fmt.Errorf("%w: blob hash: %s", ErrParseTxn, err) //nolint + } + slot.BlobHashes = append(slot.BlobHashes, hash) + } + if hashPos != dataPos+dataLen { + return 0, fmt.Errorf("%w: extraneous space in the blob versioned hashes", ErrParseTxn) + } + p = dataPos + dataLen + } + // This is where the data for Sighash ends + // Next follows V of the signature + var vByte byte + sigHashEnd := p + sigHashLen := uint(sigHashEnd - sigHashPos) + var chainIDBits, chainIDLen int + if legacy { + p, err = rlp.U256(payload, p, &ctx.V) + if err != nil { + return 0, fmt.Errorf("%w: V: %s", ErrParseTxn, err) //nolint + } + ctx.IsProtected = ctx.V.Eq(u256.N27) || ctx.V.Eq(u256.N28) + // Compute chainId from V + if ctx.IsProtected { + // Do not add chain id and two extra zeros + vByte = byte(ctx.V.Uint64() - 27) + ctx.ChainID.Set(&ctx.cfg.ChainID) + } else { + ctx.ChainID.Sub(&ctx.V, u256.N35) + ctx.ChainID.Rsh(&ctx.ChainID, 1) + if !ctx.ChainID.Eq(&ctx.cfg.ChainID) { + return 0, fmt.Errorf("%w: %s, %d (expected %d)", ErrParseTxn, "invalid chainID", ctx.ChainID.Uint64(), ctx.cfg.ChainID.Uint64()) + } + + chainIDBits = ctx.ChainID.BitLen() + if chainIDBits <= 7 { + chainIDLen = 1 + } else { + chainIDLen = common.BitLenToByteLen(chainIDBits) // It is always < 56 bytes + sigHashLen++ // For chainId len Prefix + } + sigHashLen += uint(chainIDLen) // For chainId + sigHashLen += 2 // For two extra zeros + + ctx.DeriveChainID.Sub(&ctx.V, &ctx.ChainIDMul) + vByte = byte(ctx.DeriveChainID.Sub(&ctx.DeriveChainID, u256.N8).Uint64() - 27) + } + } else { + var v uint64 + p, v, err = rlp.U64(payload, p) + if err != nil { + return 0, fmt.Errorf("%w: V: %s", ErrParseTxn, err) //nolint + } + if v > 1 { + return 0, fmt.Errorf("%w: V is loo large: %d", ErrParseTxn, v) + } + vByte = byte(v) + ctx.IsProtected = true + } + + // Next follows R of the signature + p, err = rlp.U256(payload, p, &ctx.R) + if err != nil { + return 0, fmt.Errorf("%w: R: %s", ErrParseTxn, err) //nolint + } + // New follows S of the signature + p, err = rlp.U256(payload, p, &ctx.S) + if err != nil { + return 0, fmt.Errorf("%w: S: %s", ErrParseTxn, err) //nolint + } + + // For legacy transactions, hash the full payload + if legacy { + if _, err = ctx.Keccak1.Write(payload[pos:p]); err != nil { + return 0, fmt.Errorf("%w: computing IdHash: %s", ErrParseTxn, err) //nolint + } + } + //ctx.keccak1.Sum(slot.IdHash[:0]) + _, _ = ctx.Keccak1.(io.Reader).Read(slot.IDHash[:32]) + if validateHash != nil { + if err := validateHash(slot.IDHash[:32]); err != nil { + return p, err + } + } + + if !ctx.withSender { + return p, nil + } + + if !crypto.TransactionSignatureIsValid(vByte, &ctx.R, &ctx.S, ctx.allowPreEip2s && legacy) { + return 0, fmt.Errorf("%w: invalid v, r, s: %d, %s, %s", ErrParseTxn, vByte, &ctx.R, &ctx.S) + } + + // Computing sigHash (hash used to recover sender from the signature) + // Write len Prefix to the Sighash + if sigHashLen < 56 { + ctx.buf[0] = byte(sigHashLen) + 192 + if _, err := ctx.Keccak2.Write(ctx.buf[:1]); err != nil { + return 0, fmt.Errorf("%w: computing signHash (hashing len Prefix): %s", ErrParseTxn, err) //nolint + } + } else { + beLen := common.BitLenToByteLen(bits.Len(sigHashLen)) + binary.BigEndian.PutUint64(ctx.buf[1:], uint64(sigHashLen)) + ctx.buf[8-beLen] = byte(beLen) + 247 + if _, err := ctx.Keccak2.Write(ctx.buf[8-beLen : 9]); err != nil { + return 0, fmt.Errorf("%w: computing signHash (hashing len Prefix): %s", ErrParseTxn, err) //nolint + } + } + if _, err = ctx.Keccak2.Write(payload[sigHashPos:sigHashEnd]); err != nil { + return 0, fmt.Errorf("%w: computing signHash: %s", ErrParseTxn, err) //nolint + } + if legacy { + if chainIDLen > 0 { + if chainIDBits <= 7 { + ctx.buf[0] = byte(ctx.ChainID.Uint64()) + if _, err := ctx.Keccak2.Write(ctx.buf[:1]); err != nil { + return 0, fmt.Errorf("%w: computing signHash (hashing legacy chainId): %s", ErrParseTxn, err) //nolint + } + } else { + binary.BigEndian.PutUint64(ctx.buf[1:9], ctx.ChainID[3]) + binary.BigEndian.PutUint64(ctx.buf[9:17], ctx.ChainID[2]) + binary.BigEndian.PutUint64(ctx.buf[17:25], ctx.ChainID[1]) + binary.BigEndian.PutUint64(ctx.buf[25:33], ctx.ChainID[0]) + ctx.buf[32-chainIDLen] = 128 + byte(chainIDLen) + if _, err = ctx.Keccak2.Write(ctx.buf[32-chainIDLen : 33]); err != nil { + return 0, fmt.Errorf("%w: computing signHash (hashing legacy chainId): %s", ErrParseTxn, err) //nolint + } + } + // Encode two zeros + ctx.buf[0] = 128 + ctx.buf[1] = 128 + if _, err := ctx.Keccak2.Write(ctx.buf[:2]); err != nil { + return 0, fmt.Errorf("%w: computing signHash (hashing zeros after legacy chainId): %s", ErrParseTxn, err) //nolint + } + } + } + // Squeeze Sighash + _, _ = ctx.Keccak2.(io.Reader).Read(ctx.Sighash[:32]) + //ctx.keccak2.Sum(ctx.Sighash[:0]) + binary.BigEndian.PutUint64(ctx.Sig[0:8], ctx.R[3]) + binary.BigEndian.PutUint64(ctx.Sig[8:16], ctx.R[2]) + binary.BigEndian.PutUint64(ctx.Sig[16:24], ctx.R[1]) + binary.BigEndian.PutUint64(ctx.Sig[24:32], ctx.R[0]) + binary.BigEndian.PutUint64(ctx.Sig[32:40], ctx.S[3]) + binary.BigEndian.PutUint64(ctx.Sig[40:48], ctx.S[2]) + binary.BigEndian.PutUint64(ctx.Sig[48:56], ctx.S[1]) + binary.BigEndian.PutUint64(ctx.Sig[56:64], ctx.S[0]) + ctx.Sig[64] = vByte + // recover sender + if _, err = secp256k1.RecoverPubkeyWithContext(secp256k1.DefaultContext, ctx.Sighash[:], ctx.Sig[:], ctx.buf[:0]); err != nil { + return 0, fmt.Errorf("%w: recovering sender from signature: %s", ErrParseTxn, err) //nolint + } + //apply keccak to the public key + ctx.Keccak2.Reset() + if _, err = ctx.Keccak2.Write(ctx.buf[1:65]); err != nil { + return 0, fmt.Errorf("%w: computing sender from public key: %s", ErrParseTxn, err) //nolint + } + // squeeze the hash of the public key + //ctx.keccak2.Sum(ctx.buf[:0]) + _, _ = ctx.Keccak2.(io.Reader).Read(ctx.buf[:32]) + //take last 20 bytes as address + copy(sender, ctx.buf[12:32]) + + return p, nil +} + +type PeerID *types.H512 + +type Hashes []byte // flatten list of 32-byte hashes + +func (h Hashes) At(i int) []byte { return h[i*length.Hash : (i+1)*length.Hash] } +func (h Hashes) Len() int { return len(h) / length.Hash } +func (h Hashes) Less(i, j int) bool { + return bytes.Compare(h[i*length.Hash:(i+1)*length.Hash], h[j*length.Hash:(j+1)*length.Hash]) < 0 +} +func (h Hashes) Swap(i, j int) { + ii := i * length.Hash + jj := j * length.Hash + for k := 0; k < length.Hash; k++ { + h[ii], h[jj] = h[jj], h[ii] + ii++ + jj++ + } +} + +// DedupCopy sorts hashes, and creates deduplicated copy +func (h Hashes) DedupCopy() Hashes { + if len(h) == 0 { + return h + } + sort.Sort(h) + unique := 1 + for i := length.Hash; i < len(h); i += length.Hash { + if !bytes.Equal(h[i:i+length.Hash], h[i-length.Hash:i]) { + unique++ + } + } + c := make(Hashes, unique*length.Hash) + copy(c[:], h[0:length.Hash]) + dest := length.Hash + for i := dest; i < len(h); i += length.Hash { + if !bytes.Equal(h[i:i+length.Hash], h[i-length.Hash:i]) { + copy(c[dest:dest+length.Hash], h[i:i+length.Hash]) + dest += length.Hash + } + } + return c +} + +type Announcements struct { + ts []byte + sizes []uint32 + hashes []byte +} + +func (a *Announcements) Append(t byte, size uint32, hash []byte) { + a.ts = append(a.ts, t) + a.sizes = append(a.sizes, size) + a.hashes = append(a.hashes, hash...) +} + +func (a *Announcements) AppendOther(other Announcements) { + a.ts = append(a.ts, other.ts...) + a.sizes = append(a.sizes, other.sizes...) + a.hashes = append(a.hashes, other.hashes...) +} + +func (a *Announcements) Reset() { + a.ts = a.ts[:0] + a.sizes = a.sizes[:0] + a.hashes = a.hashes[:0] +} + +func (a Announcements) At(i int) (byte, uint32, []byte) { + return a.ts[i], a.sizes[i], a.hashes[i*length.Hash : (i+1)*length.Hash] +} +func (a Announcements) Len() int { return len(a.ts) } +func (a Announcements) Less(i, j int) bool { + return bytes.Compare(a.hashes[i*length.Hash:(i+1)*length.Hash], a.hashes[j*length.Hash:(j+1)*length.Hash]) < 0 +} +func (a Announcements) Swap(i, j int) { + a.ts[i], a.ts[j] = a.ts[j], a.ts[i] + a.sizes[i], a.sizes[j] = a.sizes[j], a.sizes[i] + ii := i * length.Hash + jj := j * length.Hash + for k := 0; k < length.Hash; k++ { + a.hashes[ii], a.hashes[jj] = a.hashes[jj], a.hashes[ii] + ii++ + jj++ + } +} + +// DedupCopy sorts hashes, and creates deduplicated copy +func (a Announcements) DedupCopy() Announcements { + if len(a.ts) == 0 { + return a + } + sort.Sort(a) + unique := 1 + for i := length.Hash; i < len(a.hashes); i += length.Hash { + if !bytes.Equal(a.hashes[i:i+length.Hash], a.hashes[i-length.Hash:i]) { + unique++ + } + } + c := Announcements{ + ts: make([]byte, unique), + sizes: make([]uint32, unique), + hashes: make([]byte, unique*length.Hash), + } + copy(c.hashes, a.hashes[0:length.Hash]) + c.ts[0] = a.ts[0] + c.sizes[0] = a.sizes[0] + dest := length.Hash + j := 1 + origin := length.Hash + for i := 1; i < len(a.ts); i++ { + if !bytes.Equal(a.hashes[origin:origin+length.Hash], a.hashes[origin-length.Hash:origin]) { + copy(c.hashes[dest:dest+length.Hash], a.hashes[origin:origin+length.Hash]) + c.ts[j] = a.ts[i] + c.sizes[j] = a.sizes[i] + dest += length.Hash + j++ + } + origin += length.Hash + } + return c +} + +func (a Announcements) DedupHashes() Hashes { + if len(a.ts) == 0 { + return Hashes{} + } + sort.Sort(a) + unique := 1 + for i := length.Hash; i < len(a.hashes); i += length.Hash { + if !bytes.Equal(a.hashes[i:i+length.Hash], a.hashes[i-length.Hash:i]) { + unique++ + } + } + c := make(Hashes, unique*length.Hash) + copy(c[:], a.hashes[0:length.Hash]) + dest := length.Hash + j := 1 + origin := length.Hash + for i := 1; i < len(a.ts); i++ { + if !bytes.Equal(a.hashes[origin:origin+length.Hash], a.hashes[origin-length.Hash:origin]) { + copy(c[dest:dest+length.Hash], a.hashes[origin:origin+length.Hash]) + dest += length.Hash + j++ + } + origin += length.Hash + } + return c +} + +func (a Announcements) Hashes() Hashes { + return Hashes(a.hashes) +} + +func (a Announcements) Copy() Announcements { + if len(a.ts) == 0 { + return a + } + c := Announcements{ + ts: common.Copy(a.ts), + sizes: make([]uint32, len(a.sizes)), + hashes: common.Copy(a.hashes), + } + copy(c.sizes, a.sizes) + return c +} + +type Addresses []byte // flatten list of 20-byte addresses + +// AddressAt returns an address at the given index in the flattened list. +// Use this method if you want to reduce memory allocations +func (h Addresses) AddressAt(i int) common.Address { + return *(*[20]byte)(h[i*length.Addr : (i+1)*length.Addr]) +} + +func (h Addresses) At(i int) []byte { return h[i*length.Addr : (i+1)*length.Addr] } +func (h Addresses) Len() int { return len(h) / length.Addr } + +type TxSlots struct { + Txs []*TxSlot + Senders Addresses + IsLocal []bool +} + +func (s *TxSlots) Valid() error { + if len(s.Txs) != len(s.IsLocal) { + return fmt.Errorf("TxSlots: expect equal len of isLocal=%d and txs=%d", len(s.IsLocal), len(s.Txs)) + } + if len(s.Txs) != s.Senders.Len() { + return fmt.Errorf("TxSlots: expect equal len of senders=%d and txs=%d", s.Senders.Len(), len(s.Txs)) + } + return nil +} + +var zeroAddr = make([]byte, 20) + +// Resize internal arrays to len=targetSize, shrinks if need. It rely on `append` algorithm to realloc +func (s *TxSlots) Resize(targetSize uint) { + for uint(len(s.Txs)) < targetSize { + s.Txs = append(s.Txs, nil) + } + for uint(s.Senders.Len()) < targetSize { + s.Senders = append(s.Senders, addressesGrowth...) + } + for uint(len(s.IsLocal)) < targetSize { + s.IsLocal = append(s.IsLocal, false) + } + //todo: set nil to overflow txs + oldLen := uint(len(s.Txs)) + s.Txs = s.Txs[:targetSize] + for i := oldLen; i < targetSize; i++ { + s.Txs[i] = nil + } + s.Senders = s.Senders[:length.Addr*targetSize] + for i := oldLen; i < targetSize; i++ { + copy(s.Senders.At(int(i)), zeroAddr) + } + s.IsLocal = s.IsLocal[:targetSize] + for i := oldLen; i < targetSize; i++ { + s.IsLocal[i] = false + } +} +func (s *TxSlots) Append(slot *TxSlot, sender []byte, isLocal bool) { + n := len(s.Txs) + s.Resize(uint(len(s.Txs) + 1)) + s.Txs[n] = slot + s.IsLocal[n] = isLocal + copy(s.Senders.At(n), sender) +} + +type TxsRlp struct { + Txs [][]byte + Senders Addresses + IsLocal []bool +} + +// Resize internal arrays to len=targetSize, shrinks if need. It rely on `append` algorithm to realloc +func (s *TxsRlp) Resize(targetSize uint) { + for uint(len(s.Txs)) < targetSize { + s.Txs = append(s.Txs, nil) + } + for uint(s.Senders.Len()) < targetSize { + s.Senders = append(s.Senders, addressesGrowth...) + } + for uint(len(s.IsLocal)) < targetSize { + s.IsLocal = append(s.IsLocal, false) + } + //todo: set nil to overflow txs + s.Txs = s.Txs[:targetSize] + s.Senders = s.Senders[:length.Addr*targetSize] + s.IsLocal = s.IsLocal[:targetSize] +} + +var addressesGrowth = make([]byte, length.Addr) + +func EncodeSenderLengthForStorage(nonce uint64, balance uint256.Int) uint { + var structLength uint = 1 // 1 byte for fieldset + if !balance.IsZero() { + structLength += uint(balance.ByteLen()) + 1 + } + if nonce > 0 { + structLength += uint(common.BitLenToByteLen(bits.Len64(nonce))) + 1 + } + return structLength +} + +// Encode the details of txn sender into the given "buffer" byte-slice that should be big enough +func EncodeSender(nonce uint64, balance uint256.Int, buffer []byte) { + var fieldSet = 0 // start with first bit set to 0 + var pos = 1 + if nonce > 0 { + fieldSet = 1 + nonceBytes := common.BitLenToByteLen(bits.Len64(nonce)) + buffer[pos] = byte(nonceBytes) + var nonce = nonce + for i := nonceBytes; i > 0; i-- { + buffer[pos+i] = byte(nonce) + nonce >>= 8 + } + pos += nonceBytes + 1 + } + + // Encoding balance + if !balance.IsZero() { + fieldSet |= 2 + balanceBytes := balance.ByteLen() + buffer[pos] = byte(balanceBytes) + pos++ + balance.WriteToSlice(buffer[pos : pos+balanceBytes]) + pos += balanceBytes //nolint + } + + buffer[0] = byte(fieldSet) +} + +// Decode the sender's balance and nonce from encoded byte-slice +func DecodeSender(enc []byte) (nonce uint64, balance uint256.Int, err error) { + if len(enc) == 0 { + return + } + + var fieldSet = enc[0] + var pos = 1 + + if fieldSet&1 > 0 { + decodeLength := int(enc[pos]) + + if len(enc) < pos+decodeLength+1 { + return nonce, balance, fmt.Errorf( + "malformed CBOR for Account.Nonce: %s, Length %d", + enc[pos+1:], decodeLength) + } + + nonce = bytesToUint64(enc[pos+1 : pos+decodeLength+1]) + pos += decodeLength + 1 + } + + if fieldSet&2 > 0 { + decodeLength := int(enc[pos]) + + if len(enc) < pos+decodeLength+1 { + return nonce, balance, fmt.Errorf( + "malformed CBOR for Account.Nonce: %s, Length %d", + enc[pos+1:], decodeLength) + } + + (&balance).SetBytes(enc[pos+1 : pos+decodeLength+1]) + } + return +} + +func bytesToUint64(buf []byte) (x uint64) { + for i, b := range buf { + x = x<<8 + uint64(b) + if i == 7 { + return + } + } + return +} + +// nolint +func (tx *TxSlot) PrintDebug(prefix string) { + fmt.Printf("%s: senderID=%d,nonce=%d,tip=%d,v=%d\n", prefix, tx.SenderID, tx.Nonce, tx.Tip, tx.Value.Uint64()) + //fmt.Printf("%s: senderID=%d,nonce=%d,tip=%d,hash=%x\n", prefix, tx.senderID, tx.nonce, tx.tip, tx.IdHash) +} + +// AccessList is an EIP-2930 access list. +type AccessList []AccessTuple + +// AccessTuple is the element type of an access list. +type AccessTuple struct { + Address common.Address `json:"address"` + StorageKeys []common.Hash `json:"storageKeys"` +} + +// StorageKeys returns the total number of storage keys in the access list. +func (al AccessList) StorageKeys() int { + sum := 0 + for _, tuple := range al { + sum += len(tuple.StorageKeys) + } + return sum +} diff --git a/erigon-lib/types/txn_packets.go b/erigon-lib/types/txn_packets.go new file mode 100644 index 00000000000..3f7ed58bd3f --- /dev/null +++ b/erigon-lib/types/txn_packets.go @@ -0,0 +1,223 @@ +/* + Copyright 2021 Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package types + +import ( + "errors" + "fmt" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/rlp" +) + +type NewPooledTransactionHashesPacket [][length.Hash]byte + +// ParseHashesCount looks at the RLP length Prefix for list of 32-byte hashes +// and returns number of hashes in the list to expect +func ParseHashesCount(payload []byte, pos int) (count int, dataPos int, err error) { + dataPos, dataLen, err := rlp.List(payload, pos) + if err != nil { + return 0, 0, fmt.Errorf("%s: hashes len: %w", rlp.ParseHashErrorPrefix, err) + } + if dataLen%33 != 0 { + return 0, 0, fmt.Errorf("%s: hashes len must be multiple of 33", rlp.ParseHashErrorPrefix) + } + return dataLen / 33, dataPos, nil +} + +// EncodeHashes produces RLP encoding of given number of hashes, as RLP list +// It appends encoding to the given given slice (encodeBuf), reusing the space +// there is there is enough capacity. +// The first returned value is the slice where encodinfg +func EncodeHashes(hashes []byte, encodeBuf []byte) []byte { + hashesLen := len(hashes) / length.Hash * 33 + dataLen := hashesLen + encodeBuf = common.EnsureEnoughSize(encodeBuf, rlp.ListPrefixLen(hashesLen)+dataLen) + rlp.EncodeHashes(hashes, encodeBuf) + return encodeBuf +} + +// ParseHash extracts the next hash from the RLP encoding (payload) from a given position. +// It appends the hash to the given slice, reusing the space if there is enough capacity +// The first returned value is the slice where hash is appended to. +// The second returned value is the new position in the RLP payload after the extraction +// of the hash. +func ParseHash(payload []byte, pos int, hashbuf []byte) ([]byte, int, error) { + hashbuf = common.EnsureEnoughSize(hashbuf, length.Hash) + pos, err := rlp.ParseHash(payload, pos, hashbuf) + if err != nil { + return nil, 0, fmt.Errorf("%s: hash len: %w", rlp.ParseHashErrorPrefix, err) + } + return hashbuf, pos, nil +} + +// EncodeGetPooledTransactions66 produces encoding of GetPooledTransactions66 packet +func EncodeGetPooledTransactions66(hashes []byte, requestID uint64, encodeBuf []byte) ([]byte, error) { + pos := 0 + hashesLen := len(hashes) / length.Hash * 33 + dataLen := rlp.ListPrefixLen(hashesLen) + hashesLen + rlp.U64Len(requestID) + encodeBuf = common.EnsureEnoughSize(encodeBuf, rlp.ListPrefixLen(dataLen)+dataLen) + // Length Prefix for the entire structure + pos += rlp.EncodeListPrefix(dataLen, encodeBuf[pos:]) + pos += rlp.EncodeU64(requestID, encodeBuf[pos:]) + pos += rlp.EncodeHashes(hashes, encodeBuf[pos:]) + _ = pos + return encodeBuf, nil +} + +func ParseGetPooledTransactions66(payload []byte, pos int, hashbuf []byte) (requestID uint64, hashes []byte, newPos int, err error) { + pos, _, err = rlp.List(payload, pos) + if err != nil { + return 0, hashes, 0, err + } + + pos, requestID, err = rlp.U64(payload, pos) + if err != nil { + return 0, hashes, 0, err + } + var hashesCount int + hashesCount, pos, err = ParseHashesCount(payload, pos) + if err != nil { + return 0, hashes, 0, err + } + hashes = common.EnsureEnoughSize(hashbuf, length.Hash*hashesCount) + + for i := 0; i < hashesCount; i++ { + pos, err = rlp.ParseHash(payload, pos, hashes[i*length.Hash:]) + if err != nil { + return 0, hashes, 0, err + } + } + return requestID, hashes, pos, nil +} + +// == Pooled transactions == + +// TODO(eip-4844) wrappedWithBlobs = true? +func EncodePooledTransactions66(txsRlp [][]byte, requestID uint64, encodeBuf []byte) []byte { + pos := 0 + txsRlpLen := 0 + for i := range txsRlp { + _, _, isLegacy, _ := rlp.Prefix(txsRlp[i], 0) + if isLegacy { + txsRlpLen += len(txsRlp[i]) + } else { + txsRlpLen += rlp.StringLen(txsRlp[i]) + } + } + dataLen := rlp.U64Len(requestID) + rlp.ListPrefixLen(txsRlpLen) + txsRlpLen + + encodeBuf = common.EnsureEnoughSize(encodeBuf, rlp.ListPrefixLen(dataLen)+dataLen) + + // Length Prefix for the entire structure + pos += rlp.EncodeListPrefix(dataLen, encodeBuf[pos:]) + pos += rlp.EncodeU64(requestID, encodeBuf[pos:]) + pos += rlp.EncodeListPrefix(txsRlpLen, encodeBuf[pos:]) + for i := range txsRlp { + _, _, isLegacy, _ := rlp.Prefix(txsRlp[i], 0) + if isLegacy { + copy(encodeBuf[pos:], txsRlp[i]) + pos += len(txsRlp[i]) + } else { + pos += rlp.EncodeString(txsRlp[i], encodeBuf[pos:]) + } + } + _ = pos + return encodeBuf +} + +// TODO(eip-4844) wrappedWithBlobs = false? +func EncodeTransactions(txsRlp [][]byte, encodeBuf []byte) []byte { + pos := 0 + dataLen := 0 + for i := range txsRlp { + _, _, isLegacy, _ := rlp.Prefix(txsRlp[i], 0) + if isLegacy { + dataLen += len(txsRlp[i]) + } else { + dataLen += rlp.StringLen(txsRlp[i]) + } + } + + encodeBuf = common.EnsureEnoughSize(encodeBuf, rlp.ListPrefixLen(dataLen)+dataLen) + // Length Prefix for the entire structure + pos += rlp.EncodeListPrefix(dataLen, encodeBuf[pos:]) + for i := range txsRlp { + _, _, isLegacy, _ := rlp.Prefix(txsRlp[i], 0) + if isLegacy { + copy(encodeBuf[pos:], txsRlp[i]) + pos += len(txsRlp[i]) + } else { + pos += rlp.EncodeString(txsRlp[i], encodeBuf[pos:]) + } + } + _ = pos + return encodeBuf +} + +func ParseTransactions(payload []byte, pos int, ctx *TxParseContext, txSlots *TxSlots, validateHash func([]byte) error) (newPos int, err error) { + pos, _, err = rlp.List(payload, pos) + if err != nil { + return 0, err + } + + for i := 0; pos < len(payload); i++ { + txSlots.Resize(uint(i + 1)) + txSlots.Txs[i] = &TxSlot{} + pos, err = ctx.ParseTransaction(payload, pos, txSlots.Txs[i], txSlots.Senders.At(i), true /* hasEnvelope */, true /* wrappedWithBlobs */, validateHash) + if err != nil { + if errors.Is(err, ErrRejected) { + txSlots.Resize(uint(i)) + i-- + continue + } + return 0, err + } + } + return pos, nil +} + +func ParsePooledTransactions66(payload []byte, pos int, ctx *TxParseContext, txSlots *TxSlots, validateHash func([]byte) error) (requestID uint64, newPos int, err error) { + p, _, err := rlp.List(payload, pos) + if err != nil { + return requestID, 0, err + } + p, requestID, err = rlp.U64(payload, p) + if err != nil { + return requestID, 0, err + } + p, _, err = rlp.List(payload, p) + if err != nil { + return requestID, 0, err + } + + for i := 0; p < len(payload); i++ { + txSlots.Resize(uint(i + 1)) + txSlots.Txs[i] = &TxSlot{} + p, err = ctx.ParseTransaction(payload, p, txSlots.Txs[i], txSlots.Senders.At(i), true /* hasEnvelope */, true /* wrappedWithBlobs */, validateHash) + if err != nil { + if errors.Is(err, ErrRejected) { + txSlots.Resize(uint(i)) + i-- + continue + } + return requestID, 0, err + } + } + return requestID, p, nil +} diff --git a/erigon-lib/types/txn_packets_fuzz_test.go b/erigon-lib/types/txn_packets_fuzz_test.go new file mode 100644 index 00000000000..dfb5932281e --- /dev/null +++ b/erigon-lib/types/txn_packets_fuzz_test.go @@ -0,0 +1,52 @@ +//go:build !nofuzz + +package types + +import ( + "testing" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/u256" +) + +func FuzzPooledTransactions66(f *testing.F) { + f.Add([]byte{}) + f.Add(hexutility.MustDecodeHex("f8d7820457f8d2f867088504a817c8088302e2489435353535353535353535353535353535353535358202008025a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c12a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10f867098504a817c809830334509435353535353535353535353535353535353535358202d98025a052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afba052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb")) + f.Add(hexutility.MustDecodeHex("d78257f8d2f83535358202008025a00010702dfeccc57dd2d2d2d2d2d2322a463ad555a2018d2bad0203390a0a0a0a0a0a0a256d01f62b45b2e1c21c")) + f.Add(hexutility.MustDecodeHex("e8bfffffffffffffffffffffffff71e866666666955ef90c91f9fa08f96ebfbfbf007d765059effe33")) + f.Fuzz(func(t *testing.T, in []byte) { + t.Parallel() + ctx := NewTxParseContext(*u256.N1) + slots := TxSlots{} + reqId, _, err := ParsePooledTransactions66(in, 0, ctx, &slots, nil) + if err != nil { + t.Skip() + } + + var rlpTxs [][]byte + for i := range slots.Txs { + rlpTxs = append(rlpTxs, slots.Txs[i].Rlp) + } + _ = EncodePooledTransactions66(rlpTxs, reqId, nil) + if err != nil { + t.Skip() + } + }) +} + +func FuzzGetPooledTransactions66(f *testing.F) { + f.Add([]byte{}) + f.Add(hexutility.MustDecodeHex("e68306f854e1a0595e27a835cd79729ff1eeacec3120eeb6ed1464a04ec727aaca734ead961328")) + f.Fuzz(func(t *testing.T, in []byte) { + t.Parallel() + reqId, hashes, _, err := ParseGetPooledTransactions66(in, 0, nil) + if err != nil { + t.Skip() + } + + _, err = EncodeGetPooledTransactions66(hashes, reqId, nil) + if err != nil { + t.Skip() + } + }) +} diff --git a/erigon-lib/types/txn_packets_test.go b/erigon-lib/types/txn_packets_test.go new file mode 100644 index 00000000000..a21c523fd2e --- /dev/null +++ b/erigon-lib/types/txn_packets_test.go @@ -0,0 +1,233 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package types + +import ( + "fmt" + "strconv" + "testing" + + "github.com/holiman/uint256" + "github.com/stretchr/testify/require" + + "github.com/ledgerwatch/erigon-lib/common/hexutility" +) + +var hashParseTests = []struct { + payloadStr string + hashStr string + expectedErr bool +}{ + {payloadStr: "a0595e27a835cd79729ff1eeacec3120eeb6ed1464a04ec727aaca734ead961328", hashStr: "595e27a835cd79729ff1eeacec3120eeb6ed1464a04ec727aaca734ead961328", expectedErr: false}, +} + +func TestParseHash(t *testing.T) { + for i, tt := range hashParseTests { + t.Run(strconv.Itoa(i), func(t *testing.T) { + require := require.New(t) + var hashBuf [32]byte + payload := hexutility.MustDecodeHex(tt.payloadStr) + _, parseEnd, err := ParseHash(payload, 0, hashBuf[:0]) + require.Equal(tt.expectedErr, err != nil) + require.Equal(len(payload), parseEnd) + require.Equal(hexutility.MustDecodeHex(tt.hashStr), hashBuf[:]) + }) + } +} + +var hashEncodeTests = []struct { + payloadStr string + hashesStr string + hashCount int + expectedErr bool +}{ + {payloadStr: "e1a0595e27a835cd79729ff1eeacec3120eeb6ed1464a04ec727aaca734ead961328", + hashesStr: "595e27a835cd79729ff1eeacec3120eeb6ed1464a04ec727aaca734ead961328", hashCount: 1, expectedErr: false}, + {hashesStr: fmt.Sprintf("%x", toHashes(1, 2, 3)), + payloadStr: "f863a00100000000000000000000000000000000000000000000000000000000000000a00200000000000000000000000000000000000000000000000000000000000000a00300000000000000000000000000000000000000000000000000000000000000", hashCount: 3, expectedErr: false}, +} + +func TestEncodeHash(t *testing.T) { + for i, tt := range hashEncodeTests { + t.Run(strconv.Itoa(i), func(t *testing.T) { + require := require.New(t) + var encodeBuf []byte + encodeBuf = EncodeHashes(hexutility.MustDecodeHex(tt.hashesStr), encodeBuf) + require.Equal(hexutility.MustDecodeHex(tt.payloadStr), encodeBuf) + }) + } +} + +var gpt66EncodeTests = []struct { + payloadStr string + hashesStr string + hashCount int + requestID uint64 + expectedErr bool +}{ + {payloadStr: "e68306f854e1a0595e27a835cd79729ff1eeacec3120eeb6ed1464a04ec727aaca734ead961328", + hashesStr: "595e27a835cd79729ff1eeacec3120eeb6ed1464a04ec727aaca734ead961328", hashCount: 1, requestID: 456788, expectedErr: false}, +} + +// TestEncodeGPT66 tests the encoding of GetPoolTransactions66 packet +func TestEncodeGPT66(t *testing.T) { + for i, tt := range gpt66EncodeTests { + t.Run(strconv.Itoa(i), func(t *testing.T) { + require := require.New(t) + var encodeBuf []byte + var err error + encodeBuf, err = EncodeGetPooledTransactions66(hexutility.MustDecodeHex(tt.hashesStr), tt.requestID, encodeBuf) + require.Equal(tt.expectedErr, err != nil) + require.Equal(hexutility.MustDecodeHex(tt.payloadStr), encodeBuf) + if err != nil { + return + } + requestID, hashes, _, err := ParseGetPooledTransactions66(encodeBuf, 0, nil) + require.Equal(tt.expectedErr, err != nil) + require.Equal(tt.requestID, requestID) + require.Equal(hexutility.MustDecodeHex(tt.hashesStr), hashes) + }) + } +} + +var ptp66EncodeTests = []struct { + txs [][]byte + encoded string + requestID uint64 + chainID uint64 + expectedErr bool +}{ + { + txs: [][]byte{ + hexutility.MustDecodeHex("02f870051b8477359400847735940a82520894c388750a661cc0b99784bab2c55e1f38ff91643b861319718a500080c080a028bf802cf4be66f51ab0570fa9fc06365c1b816b8a7ffe40bc05f9a0d2d12867a012c2ce1fc908e7a903b750388c8c2ae82383a476bc345b7c2826738fc321fcab"), + }, + encoded: "f88088a4e61e8ad32f4845f875b87302f870051b8477359400847735940a82520894c388750a661cc0b99784bab2c55e1f38ff91643b861319718a500080c080a028bf802cf4be66f51ab0570fa9fc06365c1b816b8a7ffe40bc05f9a0d2d12867a012c2ce1fc908e7a903b750388c8c2ae82383a476bc345b7c2826738fc321fcab", requestID: 11882218248461043781, expectedErr: false, chainID: 5, + }, + { + txs: [][]byte{ + hexutility.MustDecodeHex("f867088504a817c8088302e2489435353535353535353535353535353535353535358202008025a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c12a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10"), + hexutility.MustDecodeHex("f867098504a817c809830334509435353535353535353535353535353535353535358202d98025a052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afba052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb"), + }, + encoded: "f8d7820457f8d2f867088504a817c8088302e2489435353535353535353535353535353535353535358202008025a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c12a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10f867098504a817c809830334509435353535353535353535353535353535353535358202d98025a052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afba052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb", requestID: 1111, expectedErr: false, chainID: 1, + }, +} + +func TestPooledTransactionsPacket(t *testing.T) { + b := hexutility.MustDecodeHex("e317e1a084a64018534279c4d3f05ea8cc7c9bfaa6f72d09c1d0a5f3be337e8b9226a680") + requestID, out, pos, err := ParseGetPooledTransactions66(b, 0, nil) + require.NoError(t, err) + require.Equal(t, uint64(23), requestID) + require.Equal(t, hexutility.MustDecodeHex("84a64018534279c4d3f05ea8cc7c9bfaa6f72d09c1d0a5f3be337e8b9226a680"), out) + require.Equal(t, 36, pos) +} + +func TestPooledTransactionsPacket66(t *testing.T) { + for i, tt := range ptp66EncodeTests { + t.Run(strconv.Itoa(i), func(t *testing.T) { + require := require.New(t) + var encodeBuf []byte + encodeBuf = EncodePooledTransactions66(tt.txs, tt.requestID, encodeBuf) + require.Equal(tt.encoded, fmt.Sprintf("%x", encodeBuf)) + + ctx := NewTxParseContext(*uint256.NewInt(tt.chainID)) + slots := &TxSlots{} + requestID, _, err := ParsePooledTransactions66(encodeBuf, 0, ctx, slots, nil) + require.NoError(err) + require.Equal(tt.requestID, requestID) + require.Equal(len(tt.txs), len(slots.Txs)) + for i, txn := range tt.txs { + require.Equal(fmt.Sprintf("%x", txn), fmt.Sprintf("%x", slots.Txs[i].Rlp)) + } + }) + } + for i, tt := range ptp66EncodeTests { + t.Run("reject_all_"+strconv.Itoa(i), func(t *testing.T) { + require := require.New(t) + var encodeBuf []byte + encodeBuf = EncodePooledTransactions66(tt.txs, tt.requestID, encodeBuf) + require.Equal(tt.encoded, fmt.Sprintf("%x", encodeBuf)) + + chainID := uint256.NewInt(tt.chainID) + ctx := NewTxParseContext(*chainID) + slots := &TxSlots{} + requestID, _, err := ParsePooledTransactions66(encodeBuf, 0, ctx, slots, func(bytes []byte) error { return ErrRejected }) + require.NoError(err) + require.Equal(tt.requestID, requestID) + require.Equal(0, len(slots.Txs)) + require.Equal(0, slots.Senders.Len()) + require.Equal(0, len(slots.IsLocal)) + }) + } +} + +var tpEncodeTests = []struct { + txs [][]byte + encoded string + chainID uint64 + expectedErr bool +}{ + { + txs: [][]byte{ + hexutility.MustDecodeHex("02f870051b8477359400847735940a82520894c388750a661cc0b99784bab2c55e1f38ff91643b861319718a500080c080a028bf802cf4be66f51ab0570fa9fc06365c1b816b8a7ffe40bc05f9a0d2d12867a012c2ce1fc908e7a903b750388c8c2ae82383a476bc345b7c2826738fc321fcab"), + }, + encoded: "f875b87302f870051b8477359400847735940a82520894c388750a661cc0b99784bab2c55e1f38ff91643b861319718a500080c080a028bf802cf4be66f51ab0570fa9fc06365c1b816b8a7ffe40bc05f9a0d2d12867a012c2ce1fc908e7a903b750388c8c2ae82383a476bc345b7c2826738fc321fcab", expectedErr: false, chainID: 5, + }, + { + txs: [][]byte{ + hexutility.MustDecodeHex("f867088504a817c8088302e2489435353535353535353535353535353535353535358202008025a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c12a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10"), + hexutility.MustDecodeHex("f867098504a817c809830334509435353535353535353535353535353535353535358202d98025a052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afba052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb"), + }, + encoded: "f8d2f867088504a817c8088302e2489435353535353535353535353535353535353535358202008025a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c12a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10f867098504a817c809830334509435353535353535353535353535353535353535358202d98025a052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afba052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb", expectedErr: false, chainID: 1, + }, +} + +func TestTransactionsPacket(t *testing.T) { + for i, tt := range tpEncodeTests { + t.Run(strconv.Itoa(i), func(t *testing.T) { + require := require.New(t) + var encodeBuf []byte + encodeBuf = EncodeTransactions(tt.txs, encodeBuf) + require.Equal(tt.encoded, fmt.Sprintf("%x", encodeBuf)) + + ctx := NewTxParseContext(*uint256.NewInt(tt.chainID)) + slots := &TxSlots{} + _, err := ParseTransactions(encodeBuf, 0, ctx, slots, nil) + require.NoError(err) + require.Equal(len(tt.txs), len(slots.Txs)) + for i, txn := range tt.txs { + require.Equal(fmt.Sprintf("%x", txn), fmt.Sprintf("%x", slots.Txs[i].Rlp)) + } + }) + } + for i, tt := range tpEncodeTests { + t.Run("reject_all_"+strconv.Itoa(i), func(t *testing.T) { + require := require.New(t) + var encodeBuf []byte + encodeBuf = EncodeTransactions(tt.txs, encodeBuf) + require.Equal(tt.encoded, fmt.Sprintf("%x", encodeBuf)) + + chainID := uint256.NewInt(tt.chainID) + ctx := NewTxParseContext(*chainID) + slots := &TxSlots{} + _, err := ParseTransactions(encodeBuf, 0, ctx, slots, func(bytes []byte) error { return ErrRejected }) + require.NoError(err) + require.Equal(0, len(slots.Txs)) + require.Equal(0, slots.Senders.Len()) + require.Equal(0, len(slots.IsLocal)) + }) + } +} diff --git a/erigon-lib/types/txn_test.go b/erigon-lib/types/txn_test.go new file mode 100644 index 00000000000..1a0eb1200a0 --- /dev/null +++ b/erigon-lib/types/txn_test.go @@ -0,0 +1,294 @@ +/* + Copyright 2021 The Erigon contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package types + +import ( + "bytes" + "crypto/rand" + "strconv" + "testing" + + gokzg4844 "github.com/crate-crypto/go-kzg-4844" + "github.com/holiman/uint256" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/ledgerwatch/erigon-lib/common/fixedgas" + "github.com/ledgerwatch/erigon-lib/common/hexutility" +) + +func TestParseTransactionRLP(t *testing.T) { + for _, testSet := range allNetsTestCases { + testSet := testSet + t.Run(strconv.Itoa(int(testSet.chainID.Uint64())), func(t *testing.T) { + require := require.New(t) + ctx := NewTxParseContext(testSet.chainID) + tx, txSender := &TxSlot{}, [20]byte{} + for i, tt := range testSet.tests { + tt := tt + t.Run(strconv.Itoa(i), func(t *testing.T) { + payload := hexutility.MustDecodeHex(tt.PayloadStr) + parseEnd, err := ctx.ParseTransaction(payload, 0, tx, txSender[:], false /* hasEnvelope */, true /* wrappedWithBlobs */, nil) + require.NoError(err) + require.Equal(len(payload), parseEnd) + if tt.SignHashStr != "" { + signHash := hexutility.MustDecodeHex(tt.SignHashStr) + if !bytes.Equal(signHash, ctx.Sighash[:]) { + t.Errorf("signHash expected %x, got %x", signHash, ctx.Sighash) + } + } + if tt.IdHashStr != "" { + idHash := hexutility.MustDecodeHex(tt.IdHashStr) + if !bytes.Equal(idHash, tx.IDHash[:]) { + t.Errorf("IdHash expected %x, got %x", idHash, tx.IDHash) + } + } + if tt.SenderStr != "" { + expectSender := hexutility.MustDecodeHex(tt.SenderStr) + if !bytes.Equal(expectSender, txSender[:]) { + t.Errorf("expectSender expected %x, got %x", expectSender, txSender) + } + } + require.Equal(tt.Nonce, tx.Nonce) + }) + } + }) + } +} + +func TestTransactionSignatureValidity1(t *testing.T) { + chainId := new(uint256.Int).SetUint64(1) + ctx := NewTxParseContext(*chainId) + ctx.WithAllowPreEip2s(true) + + tx, txSender := &TxSlot{}, [20]byte{} + validTxn := hexutility.MustDecodeHex("f83f800182520894095e7baea6a6c7c4c2dfeb977efac326af552d870b801ba048b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a3664935301") + _, err := ctx.ParseTransaction(validTxn, 0, tx, txSender[:], false /* hasEnvelope */, true /* wrappedWithBlobs */, nil) + assert.NoError(t, err) + + preEip2Txn := hexutility.MustDecodeHex("f85f800182520894095e7baea6a6c7c4c2dfeb977efac326af552d870b801ba048b55bfa915ac795c431978d8a6a992b628d557da5ff759b307d495a36649353a07fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1") + _, err = ctx.ParseTransaction(preEip2Txn, 0, tx, txSender[:], false /* hasEnvelope */, true /* wrappedWithBlobs */, nil) + assert.NoError(t, err) + + // Now enforce EIP-2 + ctx.WithAllowPreEip2s(false) + _, err = ctx.ParseTransaction(validTxn, 0, tx, txSender[:], false /* hasEnvelope */, true /* wrappedWithBlobs */, nil) + assert.NoError(t, err) + + _, err = ctx.ParseTransaction(preEip2Txn, 0, tx, txSender[:], false /* hasEnvelope */, true /* wrappedWithBlobs */, nil) + assert.Error(t, err) +} + +// Problematic txn included in a bad block on Görli +func TestTransactionSignatureValidity2(t *testing.T) { + chainId := new(uint256.Int).SetUint64(5) + ctx := NewTxParseContext(*chainId) + slot, sender := &TxSlot{}, [20]byte{} + rlp := hexutility.MustDecodeHex("02f8720513844190ab00848321560082520894cab441d2f45a3fee83d15c6b6b6c36a139f55b6288054607fc96a6000080c001a0dffe4cb5651e663d0eac8c4d002de734dd24db0f1109b062d17da290a133cc02a0913fb9f53f7a792bcd9e4d7cced1b8545d1ab82c77432b0bc2e9384ba6c250c5") + _, err := ctx.ParseTransaction(rlp, 0, slot, sender[:], false /* hasEnvelope */, true /* wrappedWithBlobs */, nil) + assert.Error(t, err) + + // Only legacy transactions can happen before EIP-2 + ctx.WithAllowPreEip2s(true) + _, err = ctx.ParseTransaction(rlp, 0, slot, sender[:], false /* hasEnvelope */, true /* wrappedWithBlobs */, nil) + assert.Error(t, err) +} + +func TestTxSlotsGrowth(t *testing.T) { + assert := assert.New(t) + s := &TxSlots{} + s.Resize(11) + assert.Equal(11, len(s.Txs)) + assert.Equal(11, s.Senders.Len()) + s.Resize(23) + assert.Equal(23, len(s.Txs)) + assert.Equal(23, s.Senders.Len()) + + s = &TxSlots{Txs: make([]*TxSlot, 20), Senders: make(Addresses, 20*20)} + s.Resize(20) + assert.Equal(20, len(s.Txs)) + assert.Equal(20, s.Senders.Len()) + s.Resize(23) + assert.Equal(23, len(s.Txs)) + assert.Equal(23, s.Senders.Len()) + + s.Resize(2) + assert.Equal(2, len(s.Txs)) + assert.Equal(2, s.Senders.Len()) +} + +func TestDedupHashes(t *testing.T) { + assert := assert.New(t) + h := toHashes(2, 6, 2, 5, 2, 4) + c := h.DedupCopy() + assert.Equal(6, h.Len()) + assert.Equal(4, c.Len()) + assert.Equal(toHashes(2, 2, 2, 4, 5, 6), h) + assert.Equal(toHashes(2, 4, 5, 6), c) + + h = toHashes(2, 2) + c = h.DedupCopy() + assert.Equal(toHashes(2, 2), h) + assert.Equal(toHashes(2), c) + + h = toHashes(1) + c = h.DedupCopy() + assert.Equal(1, h.Len()) + assert.Equal(1, c.Len()) + assert.Equal(toHashes(1), h) + assert.Equal(toHashes(1), c) + + h = toHashes() + c = h.DedupCopy() + assert.Zero(h.Len()) + assert.Zero(c.Len()) + assert.Zero(len(h)) + assert.Zero(len(c)) + + h = toHashes(1, 2, 3, 4) + c = h.DedupCopy() + assert.Equal(toHashes(1, 2, 3, 4), h) + assert.Equal(toHashes(1, 2, 3, 4), c) + + h = toHashes(4, 2, 1, 3) + c = h.DedupCopy() + assert.Equal(toHashes(1, 2, 3, 4), h) + assert.Equal(toHashes(1, 2, 3, 4), c) + +} + +func toHashes(h ...byte) (out Hashes) { + for i := range h { + hash := [32]byte{h[i]} + out = append(out, hash[:]...) + } + return out +} + +func TestBlobTxParsing(t *testing.T) { + // First parse a blob transaction body (no blobs/commitments/proofs) + wrappedWithBlobs := false + // Some arbitrary hardcoded example + bodyRlpHex := "f9012705078502540be4008506fc23ac008357b58494811a752c8cd697e3cb27" + + "279c330ed1ada745a8d7808204f7f872f85994de0b295669a9fd93d5f28d9ec85e40f4cb697b" + + "aef842a00000000000000000000000000000000000000000000000000000000000000003a000" + + "00000000000000000000000000000000000000000000000000000000000007d694bb9bc244d7" + + "98123fde783fcc1c72d3bb8c189413c07bf842a0c6bdd1de713471bd6cfa62dd8b5a5b42969e" + + "d09e26212d3377f3f8426d8ec210a08aaeccaf3873d07cef005aca28c39f8a9f8bdb1ec8d79f" + + "fc25afc0a4fa2ab73601a036b241b061a36a32ab7fe86c7aa9eb592dd59018cd0443adc09035" + + "90c16b02b0a05edcc541b4741c5cc6dd347c5ed9577ef293a62787b4510465fadbfe39ee4094" + bodyRlp := hexutility.MustDecodeHex(bodyRlpHex) + + hasEnvelope := true + bodyEnvelopePrefix := hexutility.MustDecodeHex("b9012b") + var bodyEnvelope []byte + bodyEnvelope = append(bodyEnvelope, bodyEnvelopePrefix...) + bodyEnvelope = append(bodyEnvelope, BlobTxType) + bodyEnvelope = append(bodyEnvelope, bodyRlp...) + + ctx := NewTxParseContext(*uint256.NewInt(5)) + ctx.withSender = false + + var thinTx TxSlot // only tx body, no blobs + txType, err := PeekTransactionType(bodyEnvelope) + require.NoError(t, err) + assert.Equal(t, BlobTxType, txType) + + p, err := ctx.ParseTransaction(bodyEnvelope, 0, &thinTx, nil, hasEnvelope, wrappedWithBlobs, nil) + require.NoError(t, err) + assert.Equal(t, len(bodyEnvelope), p) + assert.Equal(t, len(bodyEnvelope)-len(bodyEnvelopePrefix), int(thinTx.Size)) + assert.Equal(t, bodyEnvelope[3:], thinTx.Rlp) + assert.Equal(t, BlobTxType, thinTx.Type) + assert.Equal(t, 2, len(thinTx.BlobHashes)) + assert.Equal(t, 0, len(thinTx.Blobs)) + assert.Equal(t, 0, len(thinTx.Commitments)) + assert.Equal(t, 0, len(thinTx.Proofs)) + + // Now parse the same tx body, but wrapped with blobs/commitments/proofs + wrappedWithBlobs = true + hasEnvelope = false + + blobsRlpPrefix := hexutility.MustDecodeHex("fa040008") + blobRlpPrefix := hexutility.MustDecodeHex("ba020000") + blob0 := make([]byte, fixedgas.BlobSize) + rand.Read(blob0) + blob1 := make([]byte, fixedgas.BlobSize) + rand.Read(blob1) + + proofsRlpPrefix := hexutility.MustDecodeHex("f862") + var commitment0, commitment1 gokzg4844.KZGCommitment + rand.Read(commitment0[:]) + rand.Read(commitment1[:]) + var proof0, proof1 gokzg4844.KZGProof + rand.Read(proof0[:]) + rand.Read(proof1[:]) + + wrapperRlp := hexutility.MustDecodeHex("03fa0401fe") + wrapperRlp = append(wrapperRlp, bodyRlp...) + wrapperRlp = append(wrapperRlp, blobsRlpPrefix...) + wrapperRlp = append(wrapperRlp, blobRlpPrefix...) + wrapperRlp = append(wrapperRlp, blob0...) + wrapperRlp = append(wrapperRlp, blobRlpPrefix...) + wrapperRlp = append(wrapperRlp, blob1...) + wrapperRlp = append(wrapperRlp, proofsRlpPrefix...) + wrapperRlp = append(wrapperRlp, 0xb0) + wrapperRlp = append(wrapperRlp, commitment0[:]...) + wrapperRlp = append(wrapperRlp, 0xb0) + wrapperRlp = append(wrapperRlp, commitment1[:]...) + wrapperRlp = append(wrapperRlp, proofsRlpPrefix...) + wrapperRlp = append(wrapperRlp, 0xb0) + wrapperRlp = append(wrapperRlp, proof0[:]...) + wrapperRlp = append(wrapperRlp, 0xb0) + wrapperRlp = append(wrapperRlp, proof1[:]...) + + var fatTx TxSlot // with blobs/commitments/proofs + txType, err = PeekTransactionType(wrapperRlp) + require.NoError(t, err) + assert.Equal(t, BlobTxType, txType) + + p, err = ctx.ParseTransaction(wrapperRlp, 0, &fatTx, nil, hasEnvelope, wrappedWithBlobs, nil) + require.NoError(t, err) + assert.Equal(t, len(wrapperRlp), p) + assert.Equal(t, len(wrapperRlp), int(fatTx.Size)) + assert.Equal(t, wrapperRlp, fatTx.Rlp) + assert.Equal(t, BlobTxType, fatTx.Type) + + assert.Equal(t, thinTx.Value, fatTx.Value) + assert.Equal(t, thinTx.Tip, fatTx.Tip) + assert.Equal(t, thinTx.FeeCap, fatTx.FeeCap) + assert.Equal(t, thinTx.Nonce, fatTx.Nonce) + assert.Equal(t, thinTx.DataLen, fatTx.DataLen) + assert.Equal(t, thinTx.DataNonZeroLen, fatTx.DataNonZeroLen) + assert.Equal(t, thinTx.AlAddrCount, fatTx.AlAddrCount) + assert.Equal(t, thinTx.AlStorCount, fatTx.AlStorCount) + assert.Equal(t, thinTx.Gas, fatTx.Gas) + assert.Equal(t, thinTx.IDHash, fatTx.IDHash) + assert.Equal(t, thinTx.Creation, fatTx.Creation) + assert.Equal(t, thinTx.BlobFeeCap, fatTx.BlobFeeCap) + assert.Equal(t, thinTx.BlobHashes, fatTx.BlobHashes) + + require.Equal(t, 2, len(fatTx.Blobs)) + require.Equal(t, 2, len(fatTx.Commitments)) + require.Equal(t, 2, len(fatTx.Proofs)) + assert.Equal(t, blob0, fatTx.Blobs[0]) + assert.Equal(t, blob1, fatTx.Blobs[1]) + assert.Equal(t, commitment0, fatTx.Commitments[0]) + assert.Equal(t, commitment1, fatTx.Commitments[1]) + assert.Equal(t, proof0, fatTx.Proofs[0]) + assert.Equal(t, proof1, fatTx.Proofs[1]) +} diff --git a/erigon-lib/types/txn_types_fuzz_test.go b/erigon-lib/types/txn_types_fuzz_test.go new file mode 100644 index 00000000000..1f43a695d37 --- /dev/null +++ b/erigon-lib/types/txn_types_fuzz_test.go @@ -0,0 +1,32 @@ +//go:build !nofuzz + +package types + +import ( + "testing" + + "github.com/ledgerwatch/erigon-lib/common/u256" +) + +// golang.org/s/draft-fuzzing-design +//go doc testing +//go doc testing.F +//go doc testing.F.AddRemoteTxs +//go doc testing.F.Fuzz + +// go test -trimpath -v -fuzz=Fuzz -fuzztime=10s ./txpool + +//func init() { +// log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StderrHandler)) +//} + +func FuzzParseTx(f *testing.F) { + f.Add([]byte{1}, 0) + f.Fuzz(func(t *testing.T, in []byte, pos int) { + t.Parallel() + ctx := NewTxParseContext(*u256.N1) + txn := &TxSlot{} + sender := make([]byte, 20) + _, _ = ctx.ParseTransaction(in, pos, txn, sender, false /* hasEnvelope */, true /* wrappedWithBlobs */, nil) + }) +} diff --git a/eth/backend.go b/eth/backend.go index 228a0d38567..90d943e3788 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -31,21 +31,33 @@ import ( "sync" "time" + lru "github.com/hashicorp/golang-lru/arc/v2" + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon-lib/downloader/downloadergrpc" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/cltypes" "github.com/ledgerwatch/erigon/cl/fork" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format/getters" + clcore "github.com/ledgerwatch/erigon/cl/phase1/core" "github.com/ledgerwatch/erigon/cl/phase1/execution_client" + "github.com/ledgerwatch/erigon/cl/sentinel" + "github.com/ledgerwatch/erigon/cl/sentinel/service" + "github.com/ledgerwatch/erigon/core/rawdb/blockio" "github.com/ledgerwatch/erigon/ethdb/prune" - "github.com/ledgerwatch/erigon/params/networkname" + "github.com/ledgerwatch/erigon/p2p/sentry" + "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client" "github.com/ledgerwatch/erigon/turbo/builder" "github.com/ledgerwatch/erigon/turbo/engineapi" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_block_downloader" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_helpers" "github.com/ledgerwatch/erigon/turbo/execution/eth1" + "github.com/ledgerwatch/erigon/turbo/execution/eth1/eth1_chain_reader.go" "github.com/ledgerwatch/erigon/turbo/jsonrpc" + "github.com/ledgerwatch/erigon/turbo/silkworm" "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" "github.com/ledgerwatch/erigon/turbo/snapshotsync/snap" @@ -59,7 +71,6 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" - "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon-lib/direct" downloader3 "github.com/ledgerwatch/erigon-lib/downloader" "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" @@ -77,19 +88,20 @@ import ( "github.com/ledgerwatch/erigon-lib/txpool/txpooluitl" types2 "github.com/ledgerwatch/erigon-lib/types" - clcore "github.com/ledgerwatch/erigon/cl/phase1/core" - "github.com/ledgerwatch/erigon/cmd/caplin-phase1/caplin1" + "github.com/ledgerwatch/erigon/cmd/caplin/caplin1" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel" - "github.com/ledgerwatch/erigon/cmd/sentinel/sentinel/service" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/common/debug" + rpcsentinel "github.com/ledgerwatch/erigon-lib/gointerfaces/sentinel" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/bor" + "github.com/ledgerwatch/erigon/consensus/bor/finality/flags" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall" + "github.com/ledgerwatch/erigon/consensus/bor/heimdallgrpc" "github.com/ledgerwatch/erigon/consensus/clique" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/consensus/merge" + "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/state/temporal" @@ -137,6 +149,7 @@ type Ethereum struct { lock sync.RWMutex // Protects the variadic fields (e.g. gas price and etherbase) chainConfig *chain.Config + apiList []rpc.API genesisBlock *types.Block genesisHash libcommon.Hash @@ -154,7 +167,7 @@ type Ethereum struct { // downloader fields sentryCtx context.Context sentryCancel context.CancelFunc - sentriesClient *sentry.MultiClient + sentriesClient *sentry_multi_client.MultiClient sentryServers []*sentry.GrpcServer stagedSync *stagedsync.Sync @@ -187,6 +200,12 @@ type Ethereum struct { blockWriter *blockio.BlockWriter kvRPC *remotedbserver.KvServer logger log.Logger + + sentinel rpcsentinel.SentinelClient + + silkworm *silkworm.Silkworm + silkwormRPCDaemonService *silkworm.RpcDaemonService + silkwormSentryService *silkworm.SentryService } func splitAddrIntoHostAndPort(addr string) (host string, port int, err error) { @@ -203,7 +222,7 @@ const blockBufferSize = 128 // New creates a new Ethereum object (including the // initialisation of the common Ethereum object) -func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethereum, error) { +func New(ctx context.Context, stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethereum, error) { config.Snapshot.Enabled = config.Sync.UseSnapshots if config.Miner.GasPrice == nil || config.Miner.GasPrice.Cmp(libcommon.Big0) <= 0 { logger.Warn("Sanitizing invalid miner gas price", "provided", config.Miner.GasPrice, "updated", ethconfig.Defaults.Miner.GasPrice) @@ -217,7 +236,7 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere } // Assemble the Ethereum object - chainKv, err := node.OpenDatabase(stack.Config(), kv.ChainDB, "", false, logger) + chainKv, err := node.OpenDatabase(ctx, stack.Config(), kv.ChainDB, "", false, logger) if err != nil { return nil, err } @@ -272,17 +291,9 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere logger: logger, } - blockReader, blockWriter, allSnapshots, agg, err := setUpBlockReader(ctx, chainKv, config.Dirs, config.Snapshot, config.HistoryV3, logger) - if err != nil { - return nil, err - } - backend.agg, backend.blockSnapshots, backend.blockReader, backend.blockWriter = agg, allSnapshots, blockReader, blockWriter - - // Check if we have an already initialized chain and fall back to - // that if so. Otherwise we need to generate a new genesis spec. var chainConfig *chain.Config var genesis *types.Block - if err := chainKv.Update(context.Background(), func(tx kv.RwTx) error { + if err := backend.chainDB.Update(context.Background(), func(tx kv.RwTx) error { h, err := rawdb.ReadCanonicalHash(tx, 0) if err != nil { panic(err) @@ -301,40 +312,88 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere }); err != nil { panic(err) } - backend.chainConfig = chainConfig backend.genesisBlock = genesis backend.genesisHash = genesis.Hash() logger.Info("Initialised chain configuration", "config", chainConfig, "genesis", genesis.Hash()) - if err := backend.setUpSnapDownloader(ctx, config.Downloader); err != nil { + // Check if we have an already initialized chain and fall back to + // that if so. Otherwise we need to generate a new genesis spec. + blockReader, blockWriter, allSnapshots, agg, err := setUpBlockReader(ctx, chainKv, config.Dirs, config.Snapshot, config.HistoryV3, chainConfig.Bor != nil, logger) + if err != nil { return nil, err } + backend.agg, backend.blockSnapshots, backend.blockReader, backend.blockWriter = agg, allSnapshots, blockReader, blockWriter if config.HistoryV3 { - backend.chainDB, err = temporal.New(backend.chainDB, agg, systemcontracts.SystemContractCodeLookup[chainConfig.ChainName]) + backend.chainDB, err = temporal.New(backend.chainDB, agg, systemcontracts.SystemContractCodeLookup[config.Genesis.Config.ChainName]) if err != nil { return nil, err } - chainKv = backend.chainDB + chainKv = backend.chainDB //nolint } - kvRPC := remotedbserver.NewKvServer(ctx, chainKv, allSnapshots, agg, logger) + if err := backend.setUpSnapDownloader(ctx, config.Downloader); err != nil { + return nil, err + } + + kvRPC := remotedbserver.NewKvServer(ctx, backend.chainDB, allSnapshots, agg, logger) backend.notifications.StateChangesConsumer = kvRPC backend.kvRPC = kvRPC backend.gasPrice, _ = uint256.FromBig(config.Miner.GasPrice) + if config.SilkwormExecution || config.SilkwormRpcDaemon || config.SilkwormSentry { + backend.silkworm, err = silkworm.New(config.Dirs.DataDir) + if err != nil { + return nil, err + } + } + var sentries []direct.SentryClient if len(stack.Config().P2P.SentryAddr) > 0 { for _, addr := range stack.Config().P2P.SentryAddr { - sentryClient, err := sentry.GrpcClient(backend.sentryCtx, addr) + sentryClient, err := sentry_multi_client.GrpcClient(backend.sentryCtx, addr) if err != nil { return nil, err } sentries = append(sentries, sentryClient) } + } else if config.SilkwormSentry { + apiPort := 53774 + apiAddr := fmt.Sprintf("127.0.0.1:%d", apiPort) + p2pConfig := stack.Config().P2P + + collectNodeURLs := func(nodes []*enode.Node) []string { + var urls []string + for _, n := range nodes { + urls = append(urls, n.URLv4()) + } + return urls + } + + settings := silkworm.SentrySettings{ + ClientId: p2pConfig.Name, + ApiPort: apiPort, + Port: p2pConfig.ListenPort(), + Nat: p2pConfig.NATSpec, + NetworkId: config.NetworkID, + NodeKey: crypto.FromECDSA(p2pConfig.PrivateKey), + StaticPeers: collectNodeURLs(p2pConfig.StaticNodes), + Bootnodes: collectNodeURLs(p2pConfig.BootstrapNodes), + NoDiscover: p2pConfig.NoDiscovery, + MaxPeers: p2pConfig.MaxPeers, + } + + silkwormSentryService := silkworm.NewSentryService(backend.silkworm, settings) + backend.silkwormSentryService = &silkwormSentryService + + sentryClient, err := sentry_multi_client.GrpcClient(backend.sentryCtx, apiAddr) + if err != nil { + return nil, err + } + sentries = append(sentries, sentryClient) } else { var readNodeInfo = func() *eth.NodeInfo { var res *eth.NodeInfo @@ -398,7 +457,7 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere } go func() { - logEvery := time.NewTicker(120 * time.Second) + logEvery := time.NewTicker(180 * time.Second) defer logEvery.Stop() var logItems []interface{} @@ -450,21 +509,31 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere } else { consensusConfig = &config.Ethash } + var heimdallClient heimdall.IHeimdallClient + if chainConfig.Bor != nil { + if !config.WithoutHeimdall { + if config.HeimdallgRPCAddress != "" { + heimdallClient = heimdallgrpc.NewHeimdallGRPCClient(config.HeimdallgRPCAddress, logger) + } else { + heimdallClient = heimdall.NewHeimdallClient(config.HeimdallURL, logger) + } + } - backend.engine = ethconsensusconfig.CreateConsensusEngine(stack.Config(), chainConfig, consensusConfig, config.Miner.Notify, config.Miner.Noverify, config.HeimdallgRPCAddress, config.HeimdallURL, - config.WithoutHeimdall, false /* readonly */, logger) + flags.Milestone = config.WithHeimdallMilestones + } + + backend.engine = ethconsensusconfig.CreateConsensusEngine(ctx, stack.Config(), chainConfig, consensusConfig, config.Miner.Notify, config.Miner.Noverify, heimdallClient, config.WithoutHeimdall, blockReader, false /* readonly */, logger) inMemoryExecution := func(batch kv.RwTx, header *types.Header, body *types.RawBody, unwindPoint uint64, headersChain []*types.Header, bodiesChain []*types.RawBody, notifications *shards.Notifications) error { + terseLogger := log.New() + terseLogger.SetHandler(log.LvlFilterHandler(log.LvlWarn, log.StderrHandler)) // Needs its own notifications to not update RPC daemon and txpool about pending blocks - stateSync, err := stages2.NewInMemoryExecution(backend.sentryCtx, backend.chainDB, config, backend.sentriesClient, - dirs, notifications, blockReader, blockWriter, backend.agg, log.New() /* logging will be discarded */) - if err != nil { - return err - } - chainReader := stagedsync.NewChainReaderImpl(chainConfig, batch, blockReader) + stateSync := stages2.NewInMemoryExecution(backend.sentryCtx, backend.chainDB, config, backend.sentriesClient, + dirs, notifications, blockReader, blockWriter, backend.agg, backend.silkworm, terseLogger) + chainReader := stagedsync.NewChainReaderImpl(chainConfig, batch, blockReader, logger) // We start the mining step - if err := stages2.StateStep(ctx, chainReader, backend.engine, batch, backend.blockWriter, stateSync, backend.sentriesClient.Bd, header, body, unwindPoint, headersChain, bodiesChain); err != nil { + if err := stages2.StateStep(ctx, chainReader, backend.engine, batch, backend.blockWriter, stateSync, backend.sentriesClient.Bd, header, body, unwindPoint, headersChain, bodiesChain, config.HistoryV3); err != nil { logger.Warn("Could not validate block", "err", err) return err } @@ -479,11 +548,32 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere } backend.forkValidator = engine_helpers.NewForkValidator(ctx, currentBlockNumber, inMemoryExecution, tmpdir, backend.blockReader) - backend.sentriesClient, err = sentry.NewMultiClient( + // limit "new block" broadcasts to at most 10 random peers at time + maxBlockBroadcastPeers := func(header *types.Header) uint { return 10 } + + // unlimited "new block" broadcasts to all peers for blocks announced by Bor validators + if borEngine, ok := backend.engine.(*bor.Bor); ok { + defaultValue := maxBlockBroadcastPeers(nil) + maxBlockBroadcastPeers = func(header *types.Header) uint { + isValidator, err := borEngine.IsValidator(header) + if err != nil { + logger.Warn("maxBlockBroadcastPeers: borEngine.IsValidator has failed", "err", err) + return defaultValue + } + if isValidator { + // 0 means send to all + return 0 + } + return defaultValue + } + } + + backend.sentriesClient, err = sentry_multi_client.NewMultiClient( chainKv, stack.Config().NodeName(), chainConfig, genesis.Hash(), + genesis.Time(), backend.engine, backend.config.NetworkID, sentries, @@ -492,13 +582,14 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere blockBufferSize, stack.Config().SentryLogPeerInfo, backend.forkValidator, - config.DropUselessPeers, + maxBlockBroadcastPeers, logger, ) if err != nil { return nil, err } + config.TxPool.NoGossip = config.DisableTxPoolGossip var miningRPC txpool_proto.MiningServer stateDiffClient := direct.NewStateDiffClientDirect(kvRPC) if config.DeprecatedTxPool.Disable { @@ -526,10 +617,21 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere backend.pendingBlocks = miner.PendingResultCh backend.minedBlocks = miner.MiningResultCh + var ( + snapDb kv.RwDB + recents *lru.ARCCache[libcommon.Hash, *bor.Snapshot] + signatures *lru.ARCCache[libcommon.Hash, libcommon.Address] + ) + if bor, ok := backend.engine.(*bor.Bor); ok { + snapDb = bor.DB + recents = bor.Recents + signatures = bor.Signatures + } // proof-of-work mining mining := stagedsync.New( stagedsync.MiningStages(backend.sentryCtx, stagedsync.StageMiningCreateBlockCfg(backend.chainDB, miner, *backend.chainConfig, backend.engine, backend.txPoolDB, nil, tmpdir, backend.blockReader), + stagedsync.StageBorHeimdallCfg(backend.chainDB, snapDb, miner, *backend.chainConfig, heimdallClient, backend.blockReader, nil, nil, recents, signatures), stagedsync.StageMiningExecCfg(backend.chainDB, miner, backend.notifications.Events, *backend.chainConfig, backend.engine, &vm.Config{}, tmpdir, nil, 0, backend.txPool, backend.txPoolDB, blockReader), stagedsync.StageHashStateCfg(backend.chainDB, dirs, config.HistoryV3), stagedsync.StageTrieCfg(backend.chainDB, false, true, true, tmpdir, blockReader, nil, config.HistoryV3, backend.agg), @@ -549,6 +651,7 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere proposingSync := stagedsync.New( stagedsync.MiningStages(backend.sentryCtx, stagedsync.StageMiningCreateBlockCfg(backend.chainDB, miningStatePos, *backend.chainConfig, backend.engine, backend.txPoolDB, param, tmpdir, backend.blockReader), + stagedsync.StageBorHeimdallCfg(backend.chainDB, snapDb, miningStatePos, *backend.chainConfig, heimdallClient, backend.blockReader, nil, nil, recents, signatures), stagedsync.StageMiningExecCfg(backend.chainDB, miningStatePos, backend.notifications.Events, *backend.chainConfig, backend.engine, &vm.Config{}, tmpdir, interrupt, param.PayloadId, backend.txPool, backend.txPoolDB, blockReader), stagedsync.StageHashStateCfg(backend.chainDB, dirs, config.HistoryV3), stagedsync.StageTrieCfg(backend.chainDB, false, true, true, tmpdir, blockReader, nil, config.HistoryV3, backend.agg), @@ -606,11 +709,18 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere time.Sleep(10 * time.Millisecond) baseFee := uint64(0) if currentBlock.BaseFee() != nil { - baseFee = currentBlock.BaseFee().Uint64() + baseFee = misc.CalcBaseFee(chainConfig, currentBlock.Header()).Uint64() + } + blobFee := chainConfig.GetMinBlobGasPrice() + if currentBlock.Header().ExcessBlobGas != nil { + excessBlobGas := misc.CalcExcessBlobGas(chainConfig, currentBlock.Header()) + b, err := misc.GetBlobGasPrice(chainConfig, excessBlobGas) + if err == nil { + blobFee = b.Uint64() + } } backend.notifications.Accumulator.StartChange(currentBlock.NumberU64(), currentBlock.Hash(), nil, false) - backend.notifications.Accumulator.SendAndReset(ctx, backend.notifications.StateChangesConsumer, baseFee, currentBlock.GasLimit()) - + backend.notifications.Accumulator.SendAndReset(ctx, backend.notifications.StateChangesConsumer, baseFee, blobFee, currentBlock.GasLimit(), 0) }() if !config.DeprecatedTxPool.Disable { @@ -674,17 +784,18 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere backend.ethBackendRPC, backend.miningRPC, backend.stateChangesClient = ethBackendRPC, miningRPC, stateDiffClient - backend.syncStages = stages2.NewDefaultStages(backend.sentryCtx, backend.chainDB, stack.Config().P2P, config, backend.sentriesClient, backend.notifications, backend.downloaderClient, blockReader, blockRetire, backend.agg, backend.forkValidator, logger) + backend.syncStages = stages2.NewDefaultStages(backend.sentryCtx, backend.chainDB, snapDb, stack.Config().P2P, config, backend.sentriesClient, backend.notifications, backend.downloaderClient, + blockReader, blockRetire, backend.agg, backend.silkworm, backend.forkValidator, heimdallClient, recents, signatures, logger) backend.syncUnwindOrder = stagedsync.DefaultUnwindOrder backend.syncPruneOrder = stagedsync.DefaultPruneOrder backend.stagedSync = stagedsync.New(backend.syncStages, backend.syncUnwindOrder, backend.syncPruneOrder, logger) - hook := stages2.NewHook(backend.sentryCtx, backend.notifications, backend.stagedSync, backend.blockReader, backend.chainConfig, backend.logger, backend.sentriesClient.UpdateHead) + hook := stages2.NewHook(backend.sentryCtx, backend.chainDB, backend.notifications, backend.stagedSync, backend.blockReader, backend.chainConfig, backend.logger, backend.sentriesClient.UpdateHead) checkStateRoot := true - pipelineStages := stages2.NewPipelineStages(ctx, chainKv, config, backend.sentriesClient, backend.notifications, backend.downloaderClient, blockReader, blockRetire, backend.agg, backend.forkValidator, logger, checkStateRoot) + pipelineStages := stages2.NewPipelineStages(ctx, chainKv, config, backend.sentriesClient, backend.notifications, backend.downloaderClient, blockReader, blockRetire, backend.agg, backend.silkworm, backend.forkValidator, logger, checkStateRoot) backend.pipelineStagedSync = stagedsync.New(pipelineStages, stagedsync.PipelineUnwindOrder, stagedsync.PipelinePruneOrder, logger) - backend.eth1ExecutionServer = eth1.NewEthereumExecutionModule(blockReader, chainKv, backend.pipelineStagedSync, backend.forkValidator, chainConfig, assembleBlockPOS, hook, backend.notifications.Accumulator, backend.notifications.StateChangesConsumer, logger, config.HistoryV3) + backend.eth1ExecutionServer = eth1.NewEthereumExecutionModule(blockReader, chainKv, backend.pipelineStagedSync, backend.forkValidator, chainConfig, assembleBlockPOS, hook, backend.notifications.Accumulator, backend.notifications.StateChangesConsumer, logger, backend.engine, config.HistoryV3) executionRpc := direct.NewExecutionClientDirect(backend.eth1ExecutionServer) engineBackendRPC := engineapi.NewEngineServer( ctx, @@ -698,7 +809,7 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere false, config.Miner.EnabledPOS) backend.engineBackendRPC = engineBackendRPC - engine, err = execution_client.NewExecutionClientDirect(ctx, engineBackendRPC) + engine, err = execution_client.NewExecutionClientDirect(ctx, eth1_chain_reader.NewChainReaderEth1(ctx, chainConfig, executionRpc, 1000)) if err != nil { return nil, err } @@ -719,6 +830,8 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere return nil, err } + rawBeaconBlockChainDb, _ := persistence.AferoRawBeaconBlockChainFromOsPath(beaconCfg, dirs.CaplinHistory) + client, err := service.StartSentinelService(&sentinel.SentinelConfig{ IpAddr: config.LightClientDiscoveryAddr, Port: int(config.LightClientDiscoveryPort), @@ -727,7 +840,7 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere NetworkConfig: networkCfg, BeaconConfig: beaconCfg, TmpDir: tmpdir, - }, chainKv, &service.ServerConfig{Network: "tcp", Addr: fmt.Sprintf("%s:%d", config.SentinelAddr, config.SentinelPort)}, creds, &cltypes.Status{ + }, rawBeaconBlockChainDb, &service.ServerConfig{Network: "tcp", Addr: fmt.Sprintf("%s:%d", config.SentinelAddr, config.SentinelPort)}, creds, &cltypes.Status{ ForkDigest: forkDigest, FinalizedRoot: state.FinalizedCheckpoint().BlockRoot(), FinalizedEpoch: state.FinalizedCheckpoint().Epoch(), @@ -738,7 +851,15 @@ func New(stack *node.Node, config *ethconfig.Config, logger log.Logger) (*Ethere return nil, err } - go caplin1.RunCaplinPhase1(ctx, client, beaconCfg, genesisCfg, engine, state, nil) + backend.sentinel = client + + go func() { + eth1Getter := getters.NewExecutionSnapshotReader(ctx, blockReader, backend.chainDB) + if err := caplin1.RunCaplinPhase1(ctx, client, engine, beaconCfg, genesisCfg, state, nil, dirs, config.BeaconRouter, eth1Getter, backend.downloaderClient, config.CaplinConfig.Backfilling, config.CaplinConfig.Archive); err != nil { + logger.Error("could not start caplin", "err", err) + } + ctxCancel() + }() } return backend, nil @@ -766,7 +887,7 @@ func (s *Ethereum) Init(stack *node.Node, config *ethconfig.Config) error { if badBlockHeader != nil { unwindPoint := badBlockHeader.Number.Uint64() - 1 - s.stagedSync.UnwindTo(unwindPoint, config.BadBlockHash) + s.stagedSync.UnwindTo(unwindPoint, stagedsync.BadBlock(config.BadBlockHash, fmt.Errorf("Init unwind"))) } } @@ -791,18 +912,20 @@ func (s *Ethereum) Init(stack *node.Node, config *ethconfig.Config) error { return err } - var borDb kv.RoDB - if casted, ok := s.engine.(*bor.Bor); ok { - borDb = casted.DB + s.apiList = jsonrpc.APIList(chainKv, ethRpcClient, txPoolRpcClient, miningRpcClient, ff, stateCache, blockReader, s.agg, &httpRpcCfg, s.engine, s.logger) + + if config.SilkwormRpcDaemon && httpRpcCfg.Enabled { + silkwormRPCDaemonService := silkworm.NewRpcDaemonService(s.silkworm, chainKv) + s.silkwormRPCDaemonService = &silkwormRPCDaemonService + } else { + go func() { + if err := cli.StartRpcServer(ctx, &httpRpcCfg, s.apiList, s.logger); err != nil { + s.logger.Error("cli.StartRpcServer error", "err", err) + } + }() } - apiList := jsonrpc.APIList(chainKv, borDb, ethRpcClient, txPoolRpcClient, miningRpcClient, ff, stateCache, blockReader, s.agg, httpRpcCfg, s.engine, s.logger) - go func() { - if err := cli.StartRpcServer(ctx, httpRpcCfg, apiList, s.logger); err != nil { - s.logger.Error(err.Error()) - return - } - }() - go s.engineBackendRPC.Start(httpRpcCfg, s.chainDB, s.blockReader, ff, stateCache, s.agg, s.engine, ethRpcClient, txPoolRpcClient, miningRpcClient) + + go s.engineBackendRPC.Start(&httpRpcCfg, s.chainDB, s.blockReader, ff, stateCache, s.agg, s.engine, ethRpcClient, txPoolRpcClient, miningRpcClient) // Register the backend on the node stack.RegisterLifecycle(s) @@ -810,7 +933,7 @@ func (s *Ethereum) Init(stack *node.Node, config *ethconfig.Config) error { } func (s *Ethereum) APIs() []rpc.API { - return []rpc.API{} + return s.apiList } func (s *Ethereum) Etherbase() (eb libcommon.Address, err error) { @@ -870,9 +993,11 @@ func (s *Ethereum) StartMining(ctx context.Context, db kv.RwDB, mining *stagedsy var borcfg *bor.Bor if b, ok := s.engine.(*bor.Bor); ok { borcfg = b + b.HeaderProgress(s.sentriesClient.Hd) } else if br, ok := s.engine.(*merge.Merge); ok { if b, ok := br.InnerEngine().(*bor.Bor); ok { borcfg = b + b.HeaderProgress(s.sentriesClient.Hd) } } @@ -952,12 +1077,17 @@ func (s *Ethereum) StartMining(ctx context.Context, db kv.RwDB, mining *stagedsy errc := make(chan error, 1) for { + // Only reset if some work was done previously as we'd like to rely + // on the `miner.recommit` as backup. + if hasWork { + mineEvery.Reset(cfg.Recommit) + } + // Only check for case if you're already mining (i.e. works = true) and // waiting for error or you don't have any work yet (i.e. hasWork = false). if works || !hasWork { select { case <-newHeadCh: - s.logger.Debug("Start mining new block based on new head channel") hasWork = true case <-s.notifyMiningAboutNewTxs: // Skip mining based on new tx notif for bor consensus @@ -1034,7 +1164,7 @@ func (s *Ethereum) NodesInfo(limit int) (*remote.NodesInfoReply, error) { } nodesInfo := &remote.NodesInfoReply{NodesInfo: nodes} - slices.SortFunc(nodesInfo.NodesInfo, remote.NodeInfoReplyLess) + slices.SortFunc(nodesInfo.NodesInfo, remote.NodeInfoReplyCmp) return nodesInfo, nil } @@ -1045,16 +1175,27 @@ func (s *Ethereum) setUpSnapDownloader(ctx context.Context, downloaderCfg *downl if s.config.Snapshot.NoDownloader { return nil } + var discover bool + if err := s.chainDB.View(ctx, func(tx kv.Tx) error { + p, err := stages.GetStageProgress(tx, stages.Snapshots) + if err != nil { + return err + } + discover = p == 0 + return nil + }); err != nil { + return err + } if s.config.Snapshot.DownloaderAddr != "" { // connect to external Downloader s.downloaderClient, err = downloadergrpc.NewClient(ctx, s.config.Snapshot.DownloaderAddr) } else { // start embedded Downloader - s.downloader, err = downloader3.New(ctx, downloaderCfg) + s.downloader, err = downloader3.New(ctx, downloaderCfg, s.config.Dirs, s.logger, log.LvlDebug, discover) if err != nil { return err } - s.downloader.MainLoopInBackground(ctx, true) + s.downloader.MainLoopInBackground(true) bittorrentServer, err := downloader3.NewGrpcServer(s.downloader) if err != nil { return fmt.Errorf("new server: %w", err) @@ -1066,13 +1207,13 @@ func (s *Ethereum) setUpSnapDownloader(ctx context.Context, downloaderCfg *downl events := s.notifications.Events events.OnNewSnapshot() if s.downloaderClient != nil { - req := &proto_downloader.DownloadRequest{Items: make([]*proto_downloader.DownloadItem, 0, len(frozenFileNames))} + req := &proto_downloader.AddRequest{Items: make([]*proto_downloader.AddItem, 0, len(frozenFileNames))} for _, fName := range frozenFileNames { - req.Items = append(req.Items, &proto_downloader.DownloadItem{ + req.Items = append(req.Items, &proto_downloader.AddItem{ Path: filepath.Join("history", fName), }) } - if _, err := s.downloaderClient.Download(ctx, req); err != nil { + if _, err := s.downloaderClient.Add(ctx, req); err != nil { s.logger.Warn("[snapshots] notify downloader", "err", err) } } @@ -1080,16 +1221,22 @@ func (s *Ethereum) setUpSnapDownloader(ctx context.Context, downloaderCfg *downl return err } -func setUpBlockReader(ctx context.Context, db kv.RwDB, dirs datadir.Dirs, snConfig ethconfig.BlocksFreezing, histV3 bool, logger log.Logger) (services.FullBlockReader, *blockio.BlockWriter, *freezeblocks.RoSnapshots, *libstate.AggregatorV3, error) { +func setUpBlockReader(ctx context.Context, db kv.RwDB, dirs datadir.Dirs, snConfig ethconfig.BlocksFreezing, histV3 bool, isBor bool, logger log.Logger) (services.FullBlockReader, *blockio.BlockWriter, *freezeblocks.RoSnapshots, *libstate.AggregatorV3, error) { allSnapshots := freezeblocks.NewRoSnapshots(snConfig, dirs.Snap, logger) + var allBorSnapshots *freezeblocks.BorRoSnapshots + if isBor { + allBorSnapshots = freezeblocks.NewBorRoSnapshots(snConfig, dirs.Snap, logger) + } var err error if !snConfig.NoDownloader { allSnapshots.OptimisticalyReopenWithDB(db) + if isBor { + allBorSnapshots.OptimisticalyReopenWithDB(db) + } } - blockReader := freezeblocks.NewBlockReader(allSnapshots) + blockReader := freezeblocks.NewBlockReader(allSnapshots, allBorSnapshots) blockWriter := blockio.NewBlockWriter(histV3) - dir.MustExist(dirs.SnapHistory) agg, err := libstate.NewAggregatorV3(ctx, dirs.SnapHistory, dirs.Tmp, ethconfig.HistoryV3AggregationStep, db, logger) if err != nil { return nil, nil, nil, nil, err @@ -1109,9 +1256,33 @@ func (s *Ethereum) Peers(ctx context.Context) (*remote.PeersReply, error) { } reply.Peers = append(reply.Peers, peers.Peers...) } + return &reply, nil } +func (s *Ethereum) DiagnosticsPeersData() map[string]*diagnostics.PeerStatistics { + var reply map[string]*diagnostics.PeerStatistics = make(map[string]*diagnostics.PeerStatistics) + for _, sentryServer := range s.sentryServers { + peers := sentryServer.DiagnosticsPeersData() + + for key, value := range peers { + reply[key] = value + } + } + + return reply +} + +func (s *Ethereum) AddPeer(ctx context.Context, req *remote.AddPeerRequest) (*remote.AddPeerReply, error) { + for _, sentryClient := range s.sentriesClient.Sentries() { + _, err := sentryClient.AddPeer(ctx, &proto_sentry.AddPeerRequest{Url: req.Url}) + if err != nil { + return nil, fmt.Errorf("ethereum backend MultiClient.AddPeers error: %w", err) + } + } + return &remote.AddPeerReply{Success: true}, nil +} + // Protocols returns all the currently configured // network protocols to start. func (s *Ethereum) Protocols() []p2p.Protocol { @@ -1128,20 +1299,36 @@ func (s *Ethereum) Start() error { s.sentriesClient.StartStreamLoops(s.sentryCtx) time.Sleep(10 * time.Millisecond) // just to reduce logs order confusion - hook := stages2.NewHook(s.sentryCtx, s.notifications, s.stagedSync, s.blockReader, s.chainConfig, s.logger, s.sentriesClient.UpdateHead) - var currentTD *big.Int - if err := s.chainDB.View(s.sentryCtx, func(tx kv.Tx) error { - h := rawdb.ReadCurrentHeader(tx) - var err error - currentTD, err = rawdb.ReadTd(tx, h.Hash(), h.Number.Uint64()) - return err - }); err != nil { - return err + hook := stages2.NewHook(s.sentryCtx, s.chainDB, s.notifications, s.stagedSync, s.blockReader, s.chainConfig, s.logger, s.sentriesClient.UpdateHead) + + currentTDProvider := func() *big.Int { + currentTD, err := readCurrentTotalDifficulty(s.sentryCtx, s.chainDB, s.blockReader) + if err != nil { + panic(err) + } + return currentTD } - if isChainPoS(s.chainConfig, currentTD) { + + if params.IsChainPoS(s.chainConfig, currentTDProvider) { + s.waitForStageLoopStop = nil // TODO: Ethereum.Stop should wait for execution_server shutdown go s.eth1ExecutionServer.Start(s.sentryCtx) } else { - go stages2.StageLoop(s.sentryCtx, s.chainDB, s.stagedSync, s.sentriesClient.Hd, s.waitForStageLoopStop, s.config.Sync.LoopThrottle, s.logger, s.blockReader, hook) + go stages2.StageLoop(s.sentryCtx, s.chainDB, s.stagedSync, s.sentriesClient.Hd, s.waitForStageLoopStop, s.config.Sync.LoopThrottle, s.logger, s.blockReader, hook, s.config.ForcePartialCommit) + } + + if s.chainConfig.Bor != nil { + s.engine.(*bor.Bor).Start(s.chainDB) + } + + if s.silkwormRPCDaemonService != nil { + if err := s.silkwormRPCDaemonService.Start(); err != nil { + s.logger.Error("silkworm.StartRpcDaemon error", "err", err) + } + } + if s.silkwormSentryService != nil { + if err := s.silkwormSentryService.Start(); err != nil { + s.logger.Error("silkworm.SentryStart error", "err", err) + } } return nil @@ -1171,9 +1358,10 @@ func (s *Ethereum) Stop() error { } } libcommon.SafeClose(s.sentriesClient.Hd.QuitPoWMining) - _ = s.engine.Close() - <-s.waitForStageLoopStop + if s.waitForStageLoopStop != nil { + <-s.waitForStageLoopStop + } if s.config.Miner.Enabled { <-s.waitForMiningStop } @@ -1187,6 +1375,23 @@ func (s *Ethereum) Stop() error { s.agg.Close() } s.chainDB.Close() + + if s.silkwormRPCDaemonService != nil { + if err := s.silkwormRPCDaemonService.Stop(); err != nil { + s.logger.Error("silkworm.StopRpcDaemon error", "err", err) + } + } + if s.silkwormSentryService != nil { + if err := s.silkwormSentryService.Stop(); err != nil { + s.logger.Error("silkworm.SentryStop error", "err", err) + } + } + if s.silkworm != nil { + if err := s.silkworm.Close(); err != nil { + s.logger.Error("silkworm.Close error", "err", err) + } + } + return nil } @@ -1210,18 +1415,24 @@ func (s *Ethereum) SentryCtx() context.Context { return s.sentryCtx } -func (s *Ethereum) SentryControlServer() *sentry.MultiClient { +func (s *Ethereum) SentryControlServer() *sentry_multi_client.MultiClient { return s.sentriesClient } func (s *Ethereum) BlockIO() (services.FullBlockReader, *blockio.BlockWriter) { return s.blockReader, s.blockWriter } +func (s *Ethereum) TxpoolServer() txpool_proto.TxpoolServer { + return s.txPoolGrpcServer +} + // RemoveContents is like os.RemoveAll, but preserve dir itself func RemoveContents(dir string) error { d, err := os.Open(dir) if err != nil { if errors.Is(err, fs.ErrNotExist) { + // ignore due to windows + _ = os.MkdirAll(dir, 0o755) return nil } return err @@ -1249,11 +1460,24 @@ func checkPortIsFree(addr string) (free bool) { return false } -func isChainPoS(chainConfig *chain.Config, currentTD *big.Int) bool { - id := chainConfig.ChainID.Int64() - return id == 1 || - id == 5 || - id == 11155111 || - id == 100 || - id == 10200 || chainConfig.TerminalTotalDifficulty.Cmp(currentTD) <= 0 || chainConfig.TerminalTotalDifficultyPassed +func readCurrentTotalDifficulty(ctx context.Context, db kv.RwDB, blockReader services.FullBlockReader) (*big.Int, error) { + var currentTD *big.Int + err := db.View(ctx, func(tx kv.Tx) error { + h, err := blockReader.CurrentBlock(tx) + if err != nil { + return err + } + if h == nil { + currentTD = nil + return nil + } + + currentTD, err = rawdb.ReadTd(tx, h.Hash(), h.NumberU64()) + return err + }) + return currentTD, err +} + +func (s *Ethereum) Sentinel() rpcsentinel.SentinelClient { + return s.sentinel } diff --git a/eth/calltracer/calltracer.go b/eth/calltracer/calltracer.go index 7271a088f29..c4ca57e06c1 100644 --- a/eth/calltracer/calltracer.go +++ b/eth/calltracer/calltracer.go @@ -45,7 +45,7 @@ func (ct *CallTracer) captureStartOrEnter(from, to libcommon.Address, create boo } } -func (ct *CallTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (ct *CallTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { ct.captureStartOrEnter(from, to, create, code) } func (ct *CallTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { diff --git a/eth/ethconfig/config.go b/eth/ethconfig/config.go index 7a89efe6fd0..f103987ce1b 100644 --- a/eth/ethconfig/config.go +++ b/eth/ethconfig/config.go @@ -28,18 +28,20 @@ import ( "github.com/c2h5oh/datasize" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" + "github.com/ledgerwatch/erigon/cl/beacon/beacon_router_configuration" + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/consensus/ethash/ethashcfg" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/ethconfig/estimate" "github.com/ledgerwatch/erigon/eth/gasprice/gaspricecfg" "github.com/ledgerwatch/erigon/ethdb/prune" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" ) // AggregationStep number of transactions in smallest static file @@ -74,7 +76,7 @@ var Defaults = Config{ ExecWorkerCount: estimate.ReconstituteState.WorkersHalf(), //only half of CPU, other half will spend for snapshots build/merge/prune ReconWorkerCount: estimate.ReconstituteState.Workers(), BodyCacheLimit: 256 * 1024 * 1024, - BodyDownloadTimeoutSeconds: 30, + BodyDownloadTimeoutSeconds: 2, }, Ethash: ethashcfg.Config{ CachesInMem: 2, @@ -101,7 +103,6 @@ var Defaults = Config{ KeepBlocks: false, Produce: true, }, - DropUselessPeers: false, } func init() { @@ -177,8 +178,6 @@ type Config struct { // for nodes to connect to. EthDiscoveryURLs []string - P2PEnabled bool - Prune prune.Mode BatchSize datasize.ByteSize // Batch size for execution stage @@ -186,8 +185,10 @@ type Config struct { BadBlockHash common.Hash // hash of the block marked as bad - Snapshot BlocksFreezing - Downloader *downloadercfg.Cfg + Snapshot BlocksFreezing + Downloader *downloadercfg.Cfg + BeaconRouter beacon_router_configuration.RouterConfiguration + CaplinConfig clparams.CaplinConfig Dirs datadir.Dirs @@ -235,6 +236,8 @@ type Config struct { // No heimdall service WithoutHeimdall bool + // Heimdall services active + WithHeimdallMilestones bool // Ethstats service Ethstats string // Consensus layer @@ -247,7 +250,14 @@ type Config struct { OverrideCancunTime *big.Int `toml:",omitempty"` - DropUselessPeers bool + ForcePartialCommit bool + + // Embedded Silkworm support + SilkwormExecution bool + SilkwormRpcDaemon bool + SilkwormSentry bool + + DisableTxPoolGossip bool } type Sync struct { @@ -267,6 +277,7 @@ var ChainsWithSnapshots = map[string]struct{}{ networkname.SepoliaChainName: {}, networkname.GoerliChainName: {}, networkname.MumbaiChainName: {}, + networkname.AmoyChainName: {}, networkname.BorMainnetChainName: {}, networkname.GnosisChainName: {}, networkname.ChiadoChainName: {}, diff --git a/eth/ethconfig/estimate/esitmated_ram.go b/eth/ethconfig/estimate/esitmated_ram.go index 7487fcc2fb9..278d1ec0373 100644 --- a/eth/ethconfig/estimate/esitmated_ram.go +++ b/eth/ethconfig/estimate/esitmated_ram.go @@ -1,13 +1,11 @@ package estimate import ( - "os" "runtime" "github.com/c2h5oh/datasize" "github.com/ledgerwatch/erigon-lib/common/cmp" - "github.com/pbnjay/memory" - "github.com/shirou/gopsutil/v3/docker" + "github.com/ledgerwatch/erigon-lib/mmap" ) type estimatedRamPerWorker datasize.ByteSize @@ -15,16 +13,24 @@ type estimatedRamPerWorker datasize.ByteSize // Workers - return max workers amount based on total Memory/CPU's and estimated RAM per worker func (r estimatedRamPerWorker) Workers() int { // 50% of TotalMemory. Better don't count on 100% because OOM Killer may have aggressive defaults and other software may need RAM - maxWorkersForGivenMemory := (totalMemory() / 2) / uint64(r) - return cmp.Min(AlmostAllCPUs(), int(maxWorkersForGivenMemory)) + maxWorkersForGivenMemory := (mmap.TotalMemory() / 2) / uint64(r) + res := cmp.Min(AlmostAllCPUs(), int(maxWorkersForGivenMemory)) + return cmp.Max(1, res) // must have at-least 1 worker } + func (r estimatedRamPerWorker) WorkersHalf() int { return cmp.Max(1, r.Workers()/2) } func (r estimatedRamPerWorker) WorkersQuarter() int { return cmp.Max(1, r.Workers()/4) } const ( - IndexSnapshot = estimatedRamPerWorker(2 * datasize.GB) //elias-fano index building is single-threaded - CompressSnapshot = estimatedRamPerWorker(1 * datasize.GB) //1-file-compression is multi-threaded - ReconstituteState = estimatedRamPerWorker(512 * datasize.MB) //state-reconstitution is multi-threaded + //elias-fano index building is single-threaded + // when set it to 3GB - observed OOM-kil at server with 128Gb ram and 32CPU + IndexSnapshot = estimatedRamPerWorker(4 * datasize.GB) + + //1-file-compression is multi-threaded + CompressSnapshot = estimatedRamPerWorker(1 * datasize.GB) + + //state-reconstitution is multi-threaded + ReconstituteState = estimatedRamPerWorker(512 * datasize.MB) ) // AlmostAllCPUs - return all-but-one cpus. Leaving 1 cpu for "work producer", also cloud-providers do recommend leave 1 CPU for their IO software @@ -32,29 +38,3 @@ const ( func AlmostAllCPUs() int { return cmp.Max(1, runtime.GOMAXPROCS(-1)-1) } -func totalMemory() uint64 { - mem := memory.TotalMemory() - - if cgroupsMemLimit, ok := cgroupsMemoryLimit(); ok { - mem = cmp.Min(mem, cgroupsMemLimit) - } - - return mem -} - -// apply limit from docker if can, treat errors as "not available or maybe non-docker environment -// supports only cgroups v1, for v2 see: https://github.com/shirou/gopsutil/issues/1416 -func cgroupsMemoryLimit() (mem uint64, ok bool) { - hostname, err := os.Hostname() - if err != nil { - return 0, false - } - cgmem, err := docker.CgroupMemDocker(hostname) - if err != nil { - return 0, false - } - if cgmem == nil || cgmem.MemLimitInBytes <= 0 { - return 0, false - } - return cgmem.MemLimitInBytes, true -} diff --git a/eth/ethconfig/gen_config.go b/eth/ethconfig/gen_config.go index 5d9db0e26cb..f5432c115b4 100644 --- a/eth/ethconfig/gen_config.go +++ b/eth/ethconfig/gen_config.go @@ -22,7 +22,6 @@ func (c Config) MarshalTOML() (interface{}, error) { Genesis *types.Genesis `toml:",omitempty"` NetworkID uint64 EthDiscoveryURLs []string - P2PEnabled bool Prune prune.Mode BatchSize datasize.ByteSize ImportMode bool @@ -47,7 +46,6 @@ func (c Config) MarshalTOML() (interface{}, error) { enc.Genesis = c.Genesis enc.NetworkID = c.NetworkID enc.EthDiscoveryURLs = c.EthDiscoveryURLs - enc.P2PEnabled = c.P2PEnabled enc.Prune = c.Prune enc.BatchSize = c.BatchSize enc.ImportMode = c.ImportMode @@ -73,7 +71,6 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error { Genesis *types.Genesis `toml:",omitempty"` NetworkID *uint64 EthDiscoveryURLs []string - P2PEnabled *bool Prune *prune.Mode BatchSize *datasize.ByteSize ImportMode *bool @@ -107,9 +104,6 @@ func (c *Config) UnmarshalTOML(unmarshal func(interface{}) error) error { if dec.EthDiscoveryURLs != nil { c.EthDiscoveryURLs = dec.EthDiscoveryURLs } - if dec.P2PEnabled != nil { - c.P2PEnabled = *dec.P2PEnabled - } if dec.Prune != nil { c.Prune = *dec.Prune } diff --git a/eth/ethconfig/tx_pool.go b/eth/ethconfig/tx_pool.go index e345b80837b..69f2131ef1e 100644 --- a/eth/ethconfig/tx_pool.go +++ b/eth/ethconfig/tx_pool.go @@ -60,15 +60,18 @@ var DeprecatedDefaultTxPoolConfig = DeprecatedTxPoolConfig{ Lifetime: 3 * time.Hour, } -var DefaultTxPool2Config = func(pool1Cfg DeprecatedTxPoolConfig) txpoolcfg.Config { +var DefaultTxPool2Config = func(fullCfg *Config) txpoolcfg.Config { + pool1Cfg := &fullCfg.DeprecatedTxPool cfg := txpoolcfg.DefaultConfig cfg.PendingSubPoolLimit = int(pool1Cfg.GlobalSlots) cfg.BaseFeeSubPoolLimit = int(pool1Cfg.GlobalBaseFeeQueue) cfg.QueuedSubPoolLimit = int(pool1Cfg.GlobalQueue) cfg.PriceBump = pool1Cfg.PriceBump + cfg.BlobPriceBump = fullCfg.TxPool.BlobPriceBump cfg.MinFeeCap = pool1Cfg.PriceLimit cfg.AccountSlots = pool1Cfg.AccountSlots - cfg.LogEvery = 1 * time.Minute + cfg.BlobSlots = fullCfg.TxPool.BlobSlots + cfg.LogEvery = 3 * time.Minute cfg.CommitEvery = 5 * time.Minute cfg.TracedSenders = pool1Cfg.TracedSenders cfg.CommitEvery = pool1Cfg.CommitEvery diff --git a/eth/ethconsensusconfig/config.go b/eth/ethconsensusconfig/config.go index 6e73cea561e..72ff681393e 100644 --- a/eth/ethconsensusconfig/config.go +++ b/eth/ethconsensusconfig/config.go @@ -1,6 +1,7 @@ package ethconsensusconfig import ( + "context" "path/filepath" "github.com/davecgh/go-spew/spew" @@ -15,7 +16,6 @@ import ( "github.com/ledgerwatch/erigon/consensus/bor/contract" "github.com/ledgerwatch/erigon/consensus/bor/heimdall" "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" - "github.com/ledgerwatch/erigon/consensus/bor/heimdallgrpc" "github.com/ledgerwatch/erigon/consensus/clique" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/consensus/ethash/ethashcfg" @@ -23,10 +23,11 @@ import ( "github.com/ledgerwatch/erigon/node" "github.com/ledgerwatch/erigon/node/nodecfg" "github.com/ledgerwatch/erigon/params" + "github.com/ledgerwatch/erigon/turbo/services" ) -func CreateConsensusEngine(nodeConfig *nodecfg.Config, chainConfig *chain.Config, config interface{}, notify []string, noVerify bool, - heimdallGrpcAddress string, heimdallUrl string, withoutHeimdall bool, readonly bool, +func CreateConsensusEngine(ctx context.Context, nodeConfig *nodecfg.Config, chainConfig *chain.Config, config interface{}, notify []string, noVerify bool, + heimdallClient heimdall.IHeimdallClient, withoutHeimdall bool, blockReader services.FullBlockReader, readonly bool, logger log.Logger, ) consensus.Engine { var eng consensus.Engine @@ -70,7 +71,7 @@ func CreateConsensusEngine(nodeConfig *nodecfg.Config, chainConfig *chain.Config var err error var db kv.RwDB - db, err = node.OpenDatabase(nodeConfig, kv.ConsensusDB, "clique", readonly, logger) + db, err = node.OpenDatabase(ctx, nodeConfig, kv.ConsensusDB, "clique", readonly, logger) if err != nil { panic(err) @@ -83,7 +84,7 @@ func CreateConsensusEngine(nodeConfig *nodecfg.Config, chainConfig *chain.Config var err error var db kv.RwDB - db, err = node.OpenDatabase(nodeConfig, kv.ConsensusDB, "aura", readonly, logger) + db, err = node.OpenDatabase(ctx, nodeConfig, kv.ConsensusDB, "aura", readonly, logger) if err != nil { panic(err) @@ -106,23 +107,13 @@ func CreateConsensusEngine(nodeConfig *nodecfg.Config, chainConfig *chain.Config var err error var db kv.RwDB - db, err = node.OpenDatabase(nodeConfig, kv.ConsensusDB, "bor", readonly, logger) + db, err = node.OpenDatabase(ctx, nodeConfig, kv.ConsensusDB, "bor", readonly, logger) if err != nil { panic(err) } - var heimdallClient bor.IHeimdallClient - if withoutHeimdall { - return bor.New(chainConfig, db, spanner, nil, genesisContractsClient, logger) - } else { - if heimdallGrpcAddress != "" { - heimdallClient = heimdallgrpc.NewHeimdallGRPCClient(heimdallGrpcAddress, logger) - } else { - heimdallClient = heimdall.NewHeimdallClient(heimdallUrl, logger) - } - eng = bor.New(chainConfig, db, spanner, heimdallClient, genesisContractsClient, logger) - } + eng = bor.New(chainConfig, db, blockReader, spanner, heimdallClient, genesisContractsClient, logger) } } @@ -137,21 +128,21 @@ func CreateConsensusEngine(nodeConfig *nodecfg.Config, chainConfig *chain.Config } } -func CreateConsensusEngineBareBones(chainConfig *chain.Config, logger log.Logger) consensus.Engine { +func CreateConsensusEngineBareBones(ctx context.Context, chainConfig *chain.Config, logger log.Logger) consensus.Engine { var consensusConfig interface{} if chainConfig.Clique != nil { consensusConfig = params.CliqueSnapshot } else if chainConfig.Aura != nil { - consensusConfig = &chainConfig.Aura + consensusConfig = chainConfig.Aura } else if chainConfig.Bor != nil { - consensusConfig = &chainConfig.Bor + consensusConfig = chainConfig.Bor } else { var ethashCfg ethashcfg.Config ethashCfg.PowMode = ethashcfg.ModeFake consensusConfig = ðashCfg } - return CreateConsensusEngine(&nodecfg.Config{}, chainConfig, consensusConfig, nil /* notify */, true, /* noVerify */ - "" /* heimdallGrpcAddress */, "" /* heimdallUrl */, true /* withoutHeimdall */, false /* readonly */, logger) + return CreateConsensusEngine(ctx, &nodecfg.Config{}, chainConfig, consensusConfig, nil /* notify */, true, /* noVerify */ + nil /* heimdallClient */, true /* withoutHeimdall */, nil /* blockReader */, false /* readonly */, logger) } diff --git a/eth/filters/api.go b/eth/filters/api.go index a0c0ad7e48a..c8059b02d7c 100644 --- a/eth/filters/api.go +++ b/eth/filters/api.go @@ -20,13 +20,13 @@ import ( "encoding/json" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" ethereum "github.com/ledgerwatch/erigon" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/eth/filters/api_test.go b/eth/filters/api_test.go index fff24b819d9..9c7ae790a99 100644 --- a/eth/filters/api_test.go +++ b/eth/filters/api_test.go @@ -57,7 +57,7 @@ func TestUnmarshalJSONNewFilterArgs(t *testing.T) { // from, to block number var test1 FilterCriteria - vector := fmt.Sprintf(`{"fromBlock":"0x%x","toBlock":"0x%x"}`, fromBlock, toBlock) + vector := fmt.Sprintf(`{"fromBlock":"0x%x","toBlock":"0x%x"}`, fromBlock.Int64(), toBlock.Int64()) if err := json.Unmarshal([]byte(vector), &test1); err != nil { t.Fatal(err) } diff --git a/eth/gasprice/gasprice.go b/eth/gasprice/gasprice.go index 2d4036423f9..81c47fc161d 100644 --- a/eth/gasprice/gasprice.go +++ b/eth/gasprice/gasprice.go @@ -197,7 +197,7 @@ func (t *transactionsByGasPrice) Pop() interface{} { old := t.txs n := len(old) x := old[n-1] - old[n-1] = nil + old[n-1] = nil // avoid memory leak t.txs = old[0 : n-1] return x } @@ -276,7 +276,7 @@ func (s *sortingHeap) Pop() interface{} { old := *s n := len(old) x := old[n-1] - old[n-1] = nil + old[n-1] = nil // avoid memory leak *s = old[0 : n-1] return x } diff --git a/eth/gasprice/gasprice_test.go b/eth/gasprice/gasprice_test.go index 501c2bc3264..96184ffc296 100644 --- a/eth/gasprice/gasprice_test.go +++ b/eth/gasprice/gasprice_test.go @@ -118,7 +118,7 @@ func newTestBackend(t *testing.T) *testBackend { t.Error(err) } // Construct testing chain - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Error(err) } return &testBackend{db: m.DB, cfg: params.TestChainConfig, blockReader: m.BlockReader} diff --git a/eth/integrity/no_gaps_in_canonical_headers.go b/eth/integrity/no_gaps_in_canonical_headers.go new file mode 100644 index 00000000000..b5900e10e69 --- /dev/null +++ b/eth/integrity/no_gaps_in_canonical_headers.go @@ -0,0 +1,59 @@ +package integrity + +import ( + "context" + "fmt" + "time" + + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/eth/stagedsync/stages" + "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + "github.com/ledgerwatch/log/v3" +) + +func NoGapsInCanonicalHeaders(tx kv.Tx, ctx context.Context, br services.BlockReader) { + logEvery := time.NewTicker(10 * time.Second) + defer logEvery.Stop() + + if err := br.(*freezeblocks.BlockReader).Integrity(ctx); err != nil { + panic(err) + } + + firstBlockInDB := br.(*freezeblocks.BlockReader).FrozenBlocks() + 1 + lastBlockNum, err := stages.GetStageProgress(tx, stages.Headers) + if err != nil { + panic(err) + } + + for i := firstBlockInDB; i < lastBlockNum; i++ { + hash, err := rawdb.ReadCanonicalHash(tx, i) + if err != nil { + panic(err) + } + if hash == (common.Hash{}) { + err = fmt.Errorf("canonical marker not found: %d\n", i) + panic(err) + } + header := rawdb.ReadHeader(tx, hash, i) + if header == nil { + err = fmt.Errorf("header not found: %d\n", i) + panic(err) + } + body, _, _ := rawdb.ReadBody(tx, hash, i) + if body == nil { + err = fmt.Errorf("header not found: %d\n", i) + panic(err) + } + + select { + case <-ctx.Done(): + return + case <-logEvery.C: + log.Info("[integrity] NoGapsInCanonicalHeaders", "progress", fmt.Sprintf("%dK/%dK", i/1000, lastBlockNum/1000)) + default: + } + } +} diff --git a/eth/integrity/trie.go b/eth/integrity/trie.go index 92f4a48200f..ac6b1c7c9e6 100644 --- a/eth/integrity/trie.go +++ b/eth/integrity/trie.go @@ -6,13 +6,13 @@ import ( "encoding/binary" "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/bits" "sync/atomic" "time" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/ethdb" "github.com/ledgerwatch/erigon/turbo/trie" diff --git a/eth/protocols/eth/handler_test.go b/eth/protocols/eth/handler_test.go index a3cb2c50dcb..a373858c043 100644 --- a/eth/protocols/eth/handler_test.go +++ b/eth/protocols/eth/handler_test.go @@ -137,7 +137,7 @@ func mockWithGenerator(t *testing.T, blocks int, generator func(int, *core.Block }, testKey, false) if blocks > 0 { chain, _ := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, blocks, generator) - err := m.InsertChain(chain, nil) + err := m.InsertChain(chain) require.NoError(t, err) } return m diff --git a/eth/protocols/eth/protocol.go b/eth/protocols/eth/protocol.go index cda5d7206ca..1818bf25879 100644 --- a/eth/protocols/eth/protocol.go +++ b/eth/protocols/eth/protocol.go @@ -17,16 +17,14 @@ package eth import ( - "encoding/binary" - "errors" "fmt" "io" "math/big" - "math/bits" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/direct" proto_sentry "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" + rlp2 "github.com/ledgerwatch/erigon-lib/rlp" "github.com/ledgerwatch/erigon/core/forkid" "github.com/ledgerwatch/erigon/core/types" @@ -184,73 +182,6 @@ type NewBlockHashesPacket []struct { Number uint64 // Number of one particular block being announced } -// TransactionsPacket is the network packet for broadcasting new transactions. -type TransactionsPacket []types.Transaction - -func (tp TransactionsPacket) EncodeRLP(w io.Writer) error { - encodingSize := 0 - // size of Transactions - encodingSize++ - var txsLen int - for _, tx := range tp { - txsLen++ - var txLen int - switch t := tx.(type) { - case *types.LegacyTx: - txLen = t.EncodingSize() - case *types.AccessListTx: - txLen = t.EncodingSize() - case *types.DynamicFeeTransaction: - txLen = t.EncodingSize() - } - if txLen >= 56 { - txsLen += libcommon.BitLenToByteLen(bits.Len(uint(txLen))) - } - txsLen += txLen - } - if txsLen >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen))) - } - encodingSize += txsLen - // encode Transactions - var b [33]byte - if err := types.EncodeStructSizePrefix(encodingSize, w, b[:]); err != nil { - return err - } - for _, tx := range tp { - switch t := tx.(type) { - case *types.LegacyTx: - if err := t.EncodeRLP(w); err != nil { - return err - } - case *types.AccessListTx: - if err := t.EncodeRLP(w); err != nil { - return err - } - case *types.DynamicFeeTransaction: - if err := t.EncodeRLP(w); err != nil { - return err - } - } - } - return nil -} - -func (tp *TransactionsPacket) DecodeRLP(s *rlp.Stream) error { - _, err := s.List() - if err != nil { - return err - } - var tx types.Transaction - for tx, err = types.DecodeRLPTransaction(s); err == nil; tx, err = types.DecodeRLPTransaction(s) { - *tp = append(*tp, tx) - } - if !errors.Is(err, rlp.EOL) { - return err - } - return s.ListEnd() -} - // GetBlockHeadersPacket represents a block header query. type GetBlockHeadersPacket struct { Origin HashOrNumber // Block from which to retrieve headers @@ -319,12 +250,8 @@ type NewBlockPacket struct { func (nbp NewBlockPacket) EncodeRLP(w io.Writer) error { encodingSize := 0 // size of Block - encodingSize++ blockLen := nbp.Block.EncodingSize() - if blockLen >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(blockLen))) - } - encodingSize += blockLen + encodingSize += rlp2.ListPrefixLen(blockLen) + blockLen // size of TD encodingSize++ var tdBitLen, tdLen int @@ -443,24 +370,6 @@ func (p *BlockRawBodiesPacket) Unpack() ([][][]byte, [][]*types.Header, []types. return txSet, uncleSet, withdrawalSet } -// GetNodeDataPacket represents a trie node data query. -type GetNodeDataPacket []libcommon.Hash - -// GetNodeDataPacket represents a trie node data query over eth/66. -type GetNodeDataPacket66 struct { - RequestId uint64 - GetNodeDataPacket -} - -// NodeDataPacket is the network packet for trie node data distribution. -type NodeDataPacket [][]byte - -// NodeDataPacket is the network packet for trie node data distribution over eth/66. -type NodeDataPacket66 struct { - RequestId uint64 - NodeDataPacket -} - // GetReceiptsPacket represents a block receipts query. type GetReceiptsPacket []libcommon.Hash @@ -488,203 +397,12 @@ type ReceiptsRLPPacket66 struct { ReceiptsRLPPacket } -// NewPooledTransactionHashesPacket represents a transaction announcement packet. -type NewPooledTransactionHashesPacket []libcommon.Hash - -// GetPooledTransactionsPacket represents a transaction query. -type GetPooledTransactionsPacket []libcommon.Hash - -type GetPooledTransactionsPacket66 struct { - RequestId uint64 - GetPooledTransactionsPacket -} - -// PooledTransactionsPacket is the network packet for transaction distribution. -type PooledTransactionsPacket []types.Transaction - -func (ptp PooledTransactionsPacket) EncodeRLP(w io.Writer) error { - encodingSize := 0 - // size of Transactions - encodingSize++ - var txsLen int - for _, tx := range ptp { - txsLen++ - var txLen int - switch t := tx.(type) { - case *types.LegacyTx: - txLen = t.EncodingSize() - case *types.AccessListTx: - txLen = t.EncodingSize() - case *types.DynamicFeeTransaction: - txLen = t.EncodingSize() - } - if txLen >= 56 { - txsLen += libcommon.BitLenToByteLen(bits.Len(uint(txLen))) - } - txsLen += txLen - } - if txsLen >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen))) - } - encodingSize += txsLen - // encode Transactions - var b [33]byte - if err := types.EncodeStructSizePrefix(encodingSize, w, b[:]); err != nil { - return err - } - for _, tx := range ptp { - switch t := tx.(type) { - case *types.LegacyTx: - if err := t.EncodeRLP(w); err != nil { - return err - } - case *types.AccessListTx: - if err := t.EncodeRLP(w); err != nil { - return err - } - case *types.DynamicFeeTransaction: - if err := t.EncodeRLP(w); err != nil { - return err - } - } - } - return nil -} - -func (ptp *PooledTransactionsPacket) DecodeRLP(s *rlp.Stream) error { - _, err := s.List() - if err != nil { - return err - } - var tx types.Transaction - for tx, err = types.DecodeRLPTransaction(s); err == nil; tx, err = types.DecodeRLPTransaction(s) { - *ptp = append(*ptp, tx) - } - if !errors.Is(err, rlp.EOL) { - return err - } - return s.ListEnd() -} - -// PooledTransactionsPacket is the network packet for transaction distribution over eth/66. -type PooledTransactionsPacket66 struct { - RequestId uint64 - PooledTransactionsPacket -} - -func (ptp66 PooledTransactionsPacket66) EncodeRLP(w io.Writer) error { - encodingSize := 0 - // Size of RequestID - encodingSize++ - requestIdLen := rlp.IntLenExcludingHead(ptp66.RequestId) - encodingSize += requestIdLen - // size of Transactions - encodingSize++ - var txsLen int - for _, tx := range ptp66.PooledTransactionsPacket { - txsLen++ - var txLen int - switch t := tx.(type) { - case *types.LegacyTx: - txLen = t.EncodingSize() - case *types.AccessListTx: - txLen = t.EncodingSize() - case *types.DynamicFeeTransaction: - txLen = t.EncodingSize() - } - if txLen >= 56 { - txsLen += libcommon.BitLenToByteLen(bits.Len(uint(txLen))) - } - txsLen += txLen - } - if txsLen >= 56 { - encodingSize += libcommon.BitLenToByteLen(bits.Len(uint(txsLen))) - } - encodingSize += txsLen - var b [33]byte - // prefix - if err := types.EncodeStructSizePrefix(encodingSize, w, b[:]); err != nil { - return err - } - // encode RequestId - if ptp66.RequestId > 0 && ptp66.RequestId < 128 { - b[0] = byte(ptp66.RequestId) - if _, err := w.Write(b[:1]); err != nil { - return err - } - } else { - binary.BigEndian.PutUint64(b[1:], ptp66.RequestId) - b[8-requestIdLen] = 128 + byte(requestIdLen) - if _, err := w.Write(b[8-requestIdLen : 9]); err != nil { - return err - } - } - // encode Transactions - if err := types.EncodeStructSizePrefix(txsLen, w, b[:]); err != nil { - return err - } - for _, tx := range ptp66.PooledTransactionsPacket { - switch t := tx.(type) { - case *types.LegacyTx: - if err := t.EncodeRLP(w); err != nil { - return err - } - case *types.AccessListTx: - if err := t.EncodeRLP(w); err != nil { - return err - } - case *types.DynamicFeeTransaction: - if err := t.EncodeRLP(w); err != nil { - return err - } - } - } - return nil -} - -func (ptp66 *PooledTransactionsPacket66) DecodeRLP(s *rlp.Stream) error { - _, err := s.List() - if err != nil { - return err - } - if ptp66.RequestId, err = s.Uint(); err != nil { - return fmt.Errorf("read RequestId: %w", err) - } - if _, err = s.List(); err != nil { - return err - } - var tx types.Transaction - for tx, err = types.DecodeRLPTransaction(s); err == nil; tx, err = types.DecodeRLPTransaction(s) { - ptp66.PooledTransactionsPacket = append(ptp66.PooledTransactionsPacket, tx) - } - if !errors.Is(err, rlp.EOL) { - return err - } - if err = s.ListEnd(); err != nil { - return err - } - return s.ListEnd() -} - -// PooledTransactionsPacket is the network packet for transaction distribution, used -// in the cases we already have them in rlp-encoded form -type PooledTransactionsRLPPacket []rlp.RawValue - -// PooledTransactionsRLPPacket66 is the eth/66 form of PooledTransactionsRLPPacket -type PooledTransactionsRLPPacket66 struct { - RequestId uint64 - PooledTransactionsRLPPacket -} - func (*StatusPacket) Name() string { return "Status" } func (*StatusPacket) Kind() byte { return StatusMsg } func (*NewBlockHashesPacket) Name() string { return "NewBlockHashes" } func (*NewBlockHashesPacket) Kind() byte { return NewBlockHashesMsg } -func (*TransactionsPacket) Name() string { return "Transactions" } -func (*TransactionsPacket) Kind() byte { return TransactionsMsg } - func (*GetBlockHeadersPacket) Name() string { return "GetBlockHeaders" } func (*GetBlockHeadersPacket) Kind() byte { return GetBlockHeadersMsg } @@ -700,23 +418,8 @@ func (*BlockBodiesPacket) Kind() byte { return BlockBodiesMsg } func (*NewBlockPacket) Name() string { return "NewBlock" } func (*NewBlockPacket) Kind() byte { return NewBlockMsg } -func (*GetNodeDataPacket) Name() string { return "GetNodeData" } -func (*GetNodeDataPacket) Kind() byte { return GetNodeDataMsg } - -func (*NodeDataPacket) Name() string { return "NodeData" } -func (*NodeDataPacket) Kind() byte { return NodeDataMsg } - func (*GetReceiptsPacket) Name() string { return "GetReceipts" } func (*GetReceiptsPacket) Kind() byte { return GetReceiptsMsg } func (*ReceiptsPacket) Name() string { return "Receipts" } func (*ReceiptsPacket) Kind() byte { return ReceiptsMsg } - -func (*NewPooledTransactionHashesPacket) Name() string { return "NewPooledTransactionHashes" } -func (*NewPooledTransactionHashesPacket) Kind() byte { return NewPooledTransactionHashesMsg } - -func (*GetPooledTransactionsPacket) Name() string { return "GetPooledTransactions" } -func (*GetPooledTransactionsPacket) Kind() byte { return GetPooledTransactionsMsg } - -func (*PooledTransactionsPacket) Name() string { return "PooledTransactions" } -func (*PooledTransactionsPacket) Kind() byte { return PooledTransactionsMsg } diff --git a/eth/protocols/eth/protocol_test.go b/eth/protocols/eth/protocol_test.go index 74766533582..b99caaf8e10 100644 --- a/eth/protocols/eth/protocol_test.go +++ b/eth/protocols/eth/protocol_test.go @@ -22,7 +22,6 @@ import ( "testing" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/stretchr/testify/assert" "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types" @@ -86,16 +85,9 @@ func TestEth66EmptyMessages(t *testing.T) { GetBlockBodiesPacket66{1111, nil}, BlockBodiesPacket66{1111, nil}, BlockBodiesRLPPacket66{1111, nil}, - // Node data - GetNodeDataPacket66{1111, nil}, - NodeDataPacket66{1111, nil}, // Receipts GetReceiptsPacket66{1111, nil}, ReceiptsPacket66{1111, nil}, - // Transactions - GetPooledTransactionsPacket66{1111, nil}, - PooledTransactionsPacket66{1111, nil}, - PooledTransactionsRLPPacket66{1111, nil}, // Headers BlockHeadersPacket66{1111, BlockHeadersPacket([]*types.Header{})}, @@ -103,16 +95,9 @@ func TestEth66EmptyMessages(t *testing.T) { GetBlockBodiesPacket66{1111, GetBlockBodiesPacket([]libcommon.Hash{})}, BlockBodiesPacket66{1111, BlockBodiesPacket([]*types.Body{})}, BlockBodiesRLPPacket66{1111, BlockBodiesRLPPacket([]rlp.RawValue{})}, - // Node data - GetNodeDataPacket66{1111, GetNodeDataPacket([]libcommon.Hash{})}, - NodeDataPacket66{1111, NodeDataPacket([][]byte{})}, // Receipts GetReceiptsPacket66{1111, GetReceiptsPacket([]libcommon.Hash{})}, ReceiptsPacket66{1111, ReceiptsPacket([][]*types.Receipt{})}, - // Transactions - GetPooledTransactionsPacket66{1111, GetPooledTransactionsPacket([]libcommon.Hash{})}, - PooledTransactionsPacket66{1111, PooledTransactionsPacket([]types.Transaction{})}, - PooledTransactionsRLPPacket66{1111, PooledTransactionsRLPPacket([]rlp.RawValue{})}, } { if have, _ := rlp.EncodeToBytes(msg); !bytes.Equal(have, want) { t.Errorf("test %d, type %T, have\n\t%x\nwant\n\t%x", i, msg, have, want) @@ -130,7 +115,6 @@ func TestEth66Messages(t *testing.T) { blockBody *types.Body blockBodyRlp rlp.RawValue txs []types.Transaction - txRlps []rlp.RawValue hashes []libcommon.Hash receipts []*types.Receipt receiptsRlp rlp.RawValue @@ -158,7 +142,6 @@ func TestEth66Messages(t *testing.T) { t.Fatal(err1) } txs = append(txs, tx) - txRlps = append(txRlps, rlpdata) } } // init the block body data, both object and rlp form @@ -175,10 +158,6 @@ func TestEth66Messages(t *testing.T) { libcommon.HexToHash("deadc0de"), libcommon.HexToHash("feedbeef"), } - byteSlices := [][]byte{ - common.FromHex("deadc0de"), - common.FromHex("feedbeef"), - } // init the receipts { receipts = []*types.Receipt{ @@ -232,14 +211,6 @@ func TestEth66Messages(t *testing.T) { BlockBodiesRLPPacket66{1111, BlockBodiesRLPPacket([]rlp.RawValue{blockBodyRlp})}, common.FromHex("f902dc820457f902d6f902d3f8d2f867088504a817c8088302e2489435353535353535353535353535353535353535358202008025a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c12a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10f867098504a817c809830334509435353535353535353535353535353535353535358202d98025a052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afba052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afbf901fcf901f9a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000b90100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008208ae820d0582115c8215b3821a0a827788a00000000000000000000000000000000000000000000000000000000000000000880000000000000000"), }, - { - GetNodeDataPacket66{1111, GetNodeDataPacket(hashes)}, - common.FromHex("f847820457f842a000000000000000000000000000000000000000000000000000000000deadc0dea000000000000000000000000000000000000000000000000000000000feedbeef"), - }, - { - NodeDataPacket66{1111, NodeDataPacket(byteSlices)}, - common.FromHex("ce820457ca84deadc0de84feedbeef"), - }, { GetReceiptsPacket66{1111, GetReceiptsPacket(hashes)}, common.FromHex("f847820457f842a000000000000000000000000000000000000000000000000000000000deadc0dea000000000000000000000000000000000000000000000000000000000feedbeef"), @@ -252,34 +223,9 @@ func TestEth66Messages(t *testing.T) { ReceiptsRLPPacket66{1111, ReceiptsRLPPacket([]rlp.RawValue{receiptsRlp})}, common.FromHex("f90172820457f9016cf90169f901668001b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f85ff85d940000000000000000000000000000000000000011f842a0000000000000000000000000000000000000000000000000000000000000deada0000000000000000000000000000000000000000000000000000000000000beef830100ff"), }, - { - GetPooledTransactionsPacket66{1111, GetPooledTransactionsPacket(hashes)}, - common.FromHex("f847820457f842a000000000000000000000000000000000000000000000000000000000deadc0dea000000000000000000000000000000000000000000000000000000000feedbeef"), - }, - { - PooledTransactionsPacket66{1111, PooledTransactionsPacket(txs)}, - common.FromHex("f8d7820457f8d2f867088504a817c8088302e2489435353535353535353535353535353535353535358202008025a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c12a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10f867098504a817c809830334509435353535353535353535353535353535353535358202d98025a052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afba052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb"), - }, - { - PooledTransactionsRLPPacket66{1111, PooledTransactionsRLPPacket(txRlps)}, - common.FromHex("f8d7820457f8d2f867088504a817c8088302e2489435353535353535353535353535353535353535358202008025a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c12a064b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10f867098504a817c809830334509435353535353535353535353535353535353535358202d98025a052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afba052f8f61201b2b11a78d6e866abc9c3db2ae8631fa656bfe5cb53668255367afb"), - }, } { if have, _ := rlp.EncodeToBytes(tc.message); !bytes.Equal(have, tc.want) { t.Errorf("test %d, type %T, have\n\t%x\nwant\n\t%x", i, tc.message, have, tc.want) } } } -func TestDecodePooledTx(t *testing.T) { - in := []string{ - "f90420a0e2c35c05dbb07cf2e0784116966bd5d582846bdb54c928e740492262ccfeb40ca0c4fd5ae5baa1180ff6dd8c4b01cc2d93f8907de27ac2016648c6373478bef503a0b35dca76c30d732374041438c26b9ee8f643744446ab53c7f38fa2074eaac992a08518fdec2a229d82884b323937f4a0f09b02ac746aaf6773d482e40b597c05c7a08f8d9110ea6acca9554e2f80cac3cedbb143fbe4a1ab3e60ed31f4c74d748deca016b0027c133e3372deffb4e86e1bc5e975d1d610a9f2fdea3a74e4d60ef864baa00c6332c83e85ebb9a3a7afd313df4a82c7e5decb5872e264a3f11da610245f00a08bedc14cf929b536e30df8538b870518016096a4870c7c20e5b48da7b03df384a05a9ff87469a5332cbd18520dcdf25c17425de71d9efb56072e023246617145ffa08a165cd6bdc433f6b97e8a6e204ad59cbee4084421aa810a1e2cf9c828e949e8a09521157629d905e3337a9b54522709ccf8890cfd717def560b053926c1862ed3a0284d676704a205a5c932dba13672caafe13a727b3a3cd7dc56bc49a6c6c9a7e8a09f12e7753596116fd9ebe554428f927e8afc99bad30ad28cd9deeeaebe21cd99a09497716972c5f7ff311769f185f64adac8c54f096cab5beb7ad80cfc7e773ccfa00e0036fd7086e15f045b11d7a22df7dc99958124ccc7100d499d182becb7ed59a000d8094ecdee29e6c916360f1594d68cda566d9bd2a17a19312eb0487d46b537a03b1bc9e360c01b2d6cf9ba42a06b91b30692a086daf3ba6db2b661cfd5f1fb61a08cdd05c1605609f1979fd55ff7de0a16e41decb7ab3e340b9b729a88ea8cbb5ca0151bc4c1e0cbd896cabdaf5d08830cb608337ac247347786b2191f79bd367d96a0c9d895b6094195745740ff05e2fd4e55b33ae554843cabc70ad64b71a1a8093ca0ffdf8f28142597911de68d59e7f73209aa2573583bc3c2aaa144e2727153a1aea0535a8ccc5eb9f69005021093017da51b54289e24fb24f8f36ee8d421e3df99b7a0b0428184b221db9f5bd7c2c3ab1b4e21cf961f9218bce2308a1f1be2da40195ba0294f7127f5306e5a5a57127b1300351dac1affef78fb7e822fab1175e021c261a03b2d6b186168a6ec0a364ff65e58b34c1b4d85cf0d30cf3158c68b3ff9987621a0eba6b975d9d964dd2db4f0e562cb16ca1b51d42c659df15f28a84c31e2fb7a9aa00d9b8879c571278d965e847752f9b97b12a965b44bfb1a653fa0b983949bad8da0752d870c51884688996ebe5c561f7b05602fe7939b5f3651fb2a848921d3a88ea0bc73d7980607d967aca0c8b07a44a62fcc6f5813587987cf65d972396e45b448a0c3fc9e18bf84f8dbc72f1e5d106f760055982ceabb0fe9b62c37cb73ee0d04d1a083bcb5e1bf1871154a16c9d50c40656feeca78ba66d5f2851a031952f2e4f96ba085fe3f02e443d6be1ddbe9ea3949045e9787350caa744f9432e92046d2331e86", - "f90252a08300b9b4eafc34783aa73c7cb838a57dfc67297a3b1d8257246bd185a4f93b3aa02f34818121bf0ba43a72b792c082958f3d5f228b21a2eac269817fb3599a84e2a063aa50744b161d468fe18ea34dae296dad9cb12dd379817705381d891fdc5597a0ad9655f53ba172b838cf806abe28c77f3b264403b67ae1542a45fe37b7d4a863a03509363a668176aa2199689909c506996aaef511a41259d8f76768c4bb6d4752a0d1701f189b824587e22751ea6d58a7c5c1f7c80c5b09e3f3f92661ff32acb8f6a014f08af42770974caca620efa32c794d8a36496c873bf1921c12be196d096579a0c7377d2c6550bb5dc4bbffba41cac186c33b2d6252d1e0e24f5b0a0bace59472a02c2ba0c1f3555dc2256e528751f30ccc52112359258a70bb0a8fc18ece48381ca07d614cb5a2b817db6513993c8e7bbd6c1797e8e9bda6682f5e1df513ed2034f2a03b4b85d126965773ceb1786b11f2c5a949a87b0f6fe8d872ad89cccfd1f87ed1a0656647ae904635ff87dbaa5ca911a3be660932170eba4a21d0dbdbe97d20eeeaa0389b40fccf0dbb545062f2191469605c1840adf1f0a0a894813220fcacf64159a00e9fee2d2799359f2f30fdf4730b975a8c2bd88580bcae9ada7207727307dad9a03ba2575ccf8cd5e5cfb3a49ee7e7eca5d848769633eef17555568bcd6f67dfcaa047257e61f349efa356983cafa152f5709b7e98d237aa1e56909f9e68e3c570dda046afb04e1863bee5f4b2295df87345cf2c57634b5009c6c4422a6f0b2585f9fea015f91ab0306be4a339b8d273e574657112543d3414bbcb1541ed087e950c5732", - "f92100a0457dbea9ad7a3ac599afe2918a92588ce4f09a7f0fcad832386e455143d3efc1a0e68ce70766ffa9b0dcb672d5806289c6ac94fbbc86702bd99778bd344c7311c9a0416da3c5b9d7ff5534102eefd90fac19e3501f730be4875496c79690f1250887a0db85964d4463f5c06c86f038b5ef19ee16be469b120e875ba0d1a7e9d2c9914da03a77f75d108289f8318601d27a18e149efee678f5438e48ee0b3242242de9861a04084aca085236dde3b4c21bf2167a44a550d2378d1b157472a3d114c37bf3f74a0f7e3253460b1065766a297e2df2e9ac33f844b3b3512b5b7a8df427d41ce27e2a050f68e46ed07feee900ffeaa670fee83bd4d47bb3deba88178de2ae09b7c8216a0e0a3cdbf78229fa645f7f7b6bf77bb68f4bfc28f2064d8d059f591af1ba0e1f5a05f64e70da5f5c60d38c3cecd908e1adcaf546fd430558fcfc023680e8b4f29c7a0de12e201d4c361d34f5bf6f6d4beebb32fc2494499155a1cb765c9e94a3fb4efa0ca79e282d9b5f78160c2b4bd3ca60554c9d24b778f44cd5462dbbdf2d54b5f01a013d6cddcc76c44e139e815376d7abe6ab641b36f3157e6649cabfec2880414c9a0b886f616f5ff7ee6500a9338968f074df49aa11971660637e3e34492358ee47ea0ee99c6fbdf5662030fef6425efcbfa8078f0f431fde3be1b8aae4aea3ba580bda07f1a853063aa035138b76ed0135110b5a10ea8d0e47ed31bf2a591042a13707da0a72b949c7db6ec8a676f86c7e3d8fa598dce0ce5949db92e5b82cb0151633098a000df9aaf75db347c35895b51f9e066b3fa49950b4a8ef81ed4bf8acbef7f3075a07945ece5f3c656551faf4d1ded4e3c7b392a3b85c662b30544a6a3f04a57643fa0055b598c472aebcf8028244900926e2d94b9caa7f8e67b2a0d88e0cffa9e7cfba0a8083261ec9d81591b2b1837f4bd756e509637191ada6e08fe6b3cd42de08de4a0d0b17671335c7173cc7aafe9fa9af8b7e52ec056d459547ae627957c332b2d0fa08f8fa96861da8464ee1aebc7c106eeaf3630e69d3f3490de77ef415f2472700ea06b370755efc2aa04857953e4697f487cd26c0f85d7b1c1a223b26f0cd186a9d0a00484268c6711b9455ba4b48e1b6f5e88b1dad5e77971ead0f5e68a1c7748c367a07b0a2946456ce64edb7c7361d518ec90b0630884d14bebee345db053781dfa17a01aaf2e5e97053a511044aa31477fbbc22d1f6dee5c0ccc830c4a6240fc4d6484a0540f6302b6900a3403af090b0439a9cc9441d6518a58001ded05693dfddcc7b0a0cd989d5ce499b59cadcbf8c725cc2faf5aa21d66915d505914d7ad0aa6f8de2ea04e49fc458aaf05fe5c017d7c48bd02a246921086ab509dfd66546b1ee51b434fa0df2b1cfe7b2c6ab27c058a55432d60c79f02abe1c9c26e360e5c9819a89e7918a0cf076e52950132ae35163f836c378bded5303ea7e857ece11baf28ac5b1c98aea0f9d36cc0621b69d71e85f48a949f7c388cc3a920760c76705fc70b46c7ec338ea0a72ac1227bacd06bd244249d2b7c58ca96748d6028860849d07cc8a1591d7cb6a0a2d3bc56974ab12c9b26e649b333f6a0e9d6c92a7e9d25eee725f915892f7139a099b67b2e993f1bc2aed218b9a4919e29688ef06a93d0fd1867f065da154eb161a04f74601c3749db0ce93d86b4721b2dacf5a658367aee6cd96a2b748ac5beee83a0891342c798f6f0fd07ac5c39cd9467ebc2c314a2cd2130fb7622f8d68046caaca08825e19c1ff6fd9c67a9ce3c78ddc80dd5b787a70929562701cdbf785b540f0da01e3d5f79156f0f32620a9d9b3fbe4b80e8124786fd73995bad39a8e0c135ae12a0728b79e3b6d77a24051ac98ae5ee961ea7287c4dc727c428ed637bd87a9de051a0e1e5d2f1c040557a81c93ab0d598be7a81badf8d6baeb378dc9a707764fa2334a0525d7ab8fa251a7dae7900ca104e0a7539eb3cdec22a65f2f947b71e5f6c956fa031720eb289af647dabff6f862a28d2e9b8d5f4102164a86e1858fe0efd174bcda0742aa0021a0b75ee7a93997d275f51a3da3b3f74ab6eb16a95ae6e12e23f8416a05233dae563d95d477c30a30ec026eab0ea53634db75593db8624799b3afe626aa0f5d46e0b4ede7515a12b8a01d7673e115616d98760478f5a41bd7820ab484c26a0297f1c66544bf893349f2763fc49fcdd8e4128de69dd3d3dad7dcc2682df0383a0422d0f4fa436234e72d1759ff9d8e6ea40b8cec7fa6ffb5f3980c9ba024afda1a07258445f1348421cf54b444bb7ccf9c98310782fb06b6e8a4e676f500c1ef934a00830a8ec772df28f54eafa2877515fdf7deca28c628214686a02c9dbfdd84e0aa0d99365c88ca5a5a632bbd4bd9bd5669bc741ec11c06c1760613b47b8ac2bff33a0a54c236eb6ea525b27f911f243d22352b007df8b8c06ab887c5873700a91942da08af147c4e085d12cde5878ae562fa91a299bb6a690b281632d58b06fae9663bea068ff2a28ccd20dbaa322f52e316d77cb3656bd7a0f15bd8eac03c318802e668ba09f1e547d55b063db182ab3b91e7e70d9af30610b4c5004d77a5c38a6615cab6da043681701d663cbb8a5ef553fa7e77b25a1deecb7ace737761309dd0d7da490baa092c353ee88ca09089c897550e68300dab326dbcb0f885feee8f443a932b07292a09acfd8cc59962b4a8e80df5c6721104e9612e7b441e26017d4b3a5e5b2fc213aa02745d5cabffecf871a73680f831458d7e5af0ed35348b6d68fab7e820d5ba93da06730f4166cb883480201397b47d431d16206a960a9a5e9735ed9848d3649fd90a010426bef092103c93a7fa8bf13bec68031788f77b7d8140d478d35b33f867437a0ef08ce558e2bb64d694a5e64b8313d6fc66c1b3ffd48bb031cbae5694580dd1fa06ac7933a0e1e01c0b2f0e9f6be3fbad7ee8183bcbd81532b682e71dfd14c7efba06d78df5495c0465163b88637dd9913cba30eec7b7d2466fdccdaf3475220d960a08868dda844d63222530d8f3d8ad0964af9826b19d259ca3043ab37b5c29c898aa056c41fc0eb3da9b31c784d3ba48f01b469f33df93025901f42b3cf2a45801a93a0dab91a6346667d23c4f2dc2ba5fefbf9c69064458bf4d745b9e5df458bc47729a0bf91c7803f7a6f0c40800ad80a355072fad51fb17f036b1c6018b4eac122c366a03ec19d9c9d75ece9dad232037b2ade4e5919f6e7c9a1dfa7d5be10ac6ece13e1a0d6b29ed45e2cc6eee398b64148ff39fbd4399b633f05c08588457c2daa65a139a0aa969bb7524b1dd2705abdb4ccf91ed7302eb6c0cf1af073860ae86ca5c3e06aa004fa852789a7bfec993fc9564e177f80db5dd00a4748c6342b3679a2d0bffc36a01e3dcf24966b08b355bf126a882900b41509e47523bbc77b2e191ca518a0fe15a06fab12009a9d490cc738b14f3b964b020acfa7525197796dd0222a4ee4a203f4a0966b9fc8caec86efaba02e09fe9bf17129c423e40f345156677bc51043e54798a0c5b485ca74898f3e9c025d41f430f8d2ba7d86e59ed248c391671f24c8894434a064bccacb8a84a451c9c1faaacd55896279581ea3f87ba2aba159611d0693a54aa0413d94148abee1deaab41d3db3541c15f09948118415bb586dd2776ceab8c71ba0ba3948b8e4bfe6a9943472296d13bdec9da21e91ad8ed33aca0572d9f60412aea059bb512969957b22ba85dec033fde835ce34b8f1b084684e574684ea413977eca01c8353e15e462fee048ca1c0bc3d7dbb430ee795ca395e582075fcb868113140a07a29ce5466da30a7f13d6d49f72c87c925feb699cc27fca7d2c8791e707ac926a0c2305e480ed70e9a13b0abba33148ad254cfd41a2db1c6a3f8df8a5fa8ab5417a0f60a1b008093a93b29eba15399d6dc5fb813ef07cf4d0c6a1974f0469d15ca50a013ad4bebb81c5b104cd7f39a75e2c0a0b00d57a20d3a0de890b1560bc8616141a0dce2cce7d0ed35b4bbf672296127217cd1385eee4618cc14c99ab293dbc9c3bda091dfee49f4865b4a5eb365ac4bec7d0af28859c3b1f73826bff80835027afbcca01186acb6582e6514c3278a04d5aa923934acb3a28781811e654f313189b326a7a0191a8daccb6f08ef5b8f1cdcaaf7f7d16150c7e616d64fa6a733e30e03c92ec7a0d886ff68ead70ef7857f2578a4d09509072dbc474a2ee49adf58b2a1ddc12101a04d6ed9dae79ab736ef6f377a6d59a4d23dbf6326832eb23d198ad11edde20d81a0fdbdb62324d8fc480f9dd10dbd330fe8a64f7370cc75b473d2ebe178b5ca8319a05ab97c3f8780d72ad46beb1af9472a836a74c9262e3221586cfc90c1839b93baa04bb7692bfc0bd42f0aaecb2faa7fc9322d267b9109c73c83e8651817db82e229a0106e0f1277527b5161d59186a6ed8a3c720d431e863a6308842e3e7c35cdfa95a04e76483b655fa39ddca148b56e2245604db9c732a27f04b7542c9f22c0e3fe98a0fef5f8c2e54e9bbd82b33debb3a985be5733ff5117325f46a703a03423347d75a0901312021016391e31b0b2b669556700795c86799b6e2536521113d74902ac15a0ac33dfff755cee38b0c1f2ed08a87d5d7ee4facdcb631c95e154332a59113e9aa0f689b57325189a547b7051e34e4921466ef2819225026ea6726dfbb38d481ea5a0ca8ed97e53739e3e0cf71d798e94102c2cc66613785885377b919ed0e5918177a06c0682783f6c7851dd0cf20e2807e5d88ce92c2f439e28f9aedf1cee8c2eb55ea07c726e60fba908cf1846af2c36e8c3be732f954129ebe6f38103518ec22ffa85a03012453f04460ccf8ef43be0b2918200e919a030755fe740c00fc0ef447d26a0a005d6e87101ae85a321d03963b4ed7bd9deb2146ac1275d7e6d7662804d456c8fa08d60aac1234b9daf6b8f6606eda5e744066446e95c83fb4f7b316215191d8f53a0b15da00fe1f119b98c328c3bc0932879bebdc5e59d6df9901dac97b383669acaa0f61cb61a050170400e8c176e445e958cfdf6286b82f3156f9a222db38482fe65a045484737f57987bbd2e1ce6e7fc5e6e82b301dd97bd7fc6422d9dd67d1a6d2f3a053d8371cd24ef9db5f238eec50dcf6dab4284ffdd4882a3e1863f196ff4870bda0dd39aa33f267560be1d88c4bd6a1bf2810338097395d52438dd8e4b02cb84978a079586605fd6153de3d1f1c140c528109e0538f5dc5c63c0d04e4f324589df564a0b5834225c7ed87e0e112f89cd79adeb9d44e314d93cb7b4e21ef277bc3acaa43a0de452afb52a5fd9a20d651ee00bbc348d9bfd23fa69df029b98e3cac50a658fea0662f43b6b2dfc870822fb1c7865f54db04b50679089f9f084647477e86c18917a0ed21bac1b980827276827fee6248b2cea6f8c00a71711e1a95af10e395b11112a08303e88de0a4630e30a95054452cde82856b2ff0ede847719acfb5c06bab5a06a0f06a4b2b27de217b48dd082f0154a9d62f528535ba9f0ffc3a4bedbe00a53cfba0155d26a32b2a3e7b171962da6a30f39335e3954caecc16cb99ef7bce209ff2c9a09691c7d7efb6fe112620fe6ef88d7b6fba53980838cb190da738e0912de3af4aa0eb954bdb5d41c66be4bb38101a9e2ba7e8857d8130b2840a5755c0cc21bd8e0ba0d9667f0cfcc923b80348f189e6f6ca81284e9a1ddda64aef5f346eb5846d3dd5a07de91fa272b5233c007842dd9df5bce1b51776ad9d2bb8b2780023f34e039e63a06680b64e290f34bb395542b117fe27e4f66225f2545d11db1bbd0bd92ca9fca1a02e7c285811f50f35185b3a85d5129a17614de21496b7f5aae5dc5eb55207a167a0b3f63e45c4d670a5bf764d41c6430d6c8a99f3c7191a698f33411a94fc4ac638a04551cb007c5e17f3e9514abe5c4795fb435e63a7e78e71e45dbe3c45fc0f9bd2a0175fd2a244cf6e6ff1247650ee1cd951c81e1d842da9429399a795be4b7366d2a05c39878a681f05c3ff2da0c199afbd37659188df97c983b47ec1a1d7efbb598fa022205aff97dceb64b8a9869fd93325098dd1f2947ab9e8deaefe8dd27b2885f1a00072318dbfcb25b92dd6cb8e5e46824cdb4c9c80019b7de74f7c6e7b0ef4e79ca03eb33c156a4f352f44bbb5d180df4f37c757dcb55ef6bc3406cbd06ce93693b8a0e708d9c6742117260a51d5a4a35013711949d73b16a53437482424cf9cb1d285a0d5b034e2c7782eb827d11119246c85e4be9df88a6cd8581ef15a9c31007b7faca0a23bfb8987002339b017beb01ef612fccc0e2be882d3d13b62789d7ee997a0cfa0ec21e67193e8022dceb7fbc4f519c02e04c12c392d73815a9ab76c18147a8906a0a10cf2794edc9a214ec8af0d7a2d19fcb7aae7b922be1354e31012ab12fea91da00e557cf37dabead6ca434ab7b1e14ceb4e00beecebf84f134bc6241dcfea1065a0683eb17abee39938bbb9fdc8a59b84be1d52a6787345ba0f0fc7290f1e125da9a0998a415478c4d3d852b8d6dfe82b6b172ae40e0789f6c6fb20aca859ce62760ba0f3ca748eef38d808616bfb37ae4475bb8c04a4e4783d7cd1a2edf57dfd9f7306a01f7989f763430c1c1ec3b9b775ce9f1cf2014521b5a01d564cbf678a42d051eaa0e94f98c9099a6cfc66ebb116c233b31b70b1b08c753abae139071262f1816116a0e2da38061116fe543adcba3df34c6245f7310c54e994667fe9930c02b1939dbba0a7d65101a127c971c961a7f6705a48870f7215af5930167aa963aa69ff09846ba0ea35e6495b610495e37ab6fbadc6c04992a602a1797556ee52c59e823189c3e8a0ed699bca16703f0d71f09d72b91bda433f8f3a73ee9440ef6972bac7137c98a8a0b07e3af5035e64940a7ae59001cf9dca43a2f570526b69f7325e610a2280303ea07bb35ca599293bea45afccbdc86a3dcbdbcaac814ec1e3a32a32295ecca5b31ca02252d170dd12c70c5ae3abf9c712d16d28f06276e1df770980392da0488e57d8a073881b9be9e9330aa527c1a92f4d519c42c2252634b1cad345d1c39a4c926641a053b13afff7cb2065f7fd7f0629c74bbf44c38454f51bd59c3153d65e6184ea83a05fbd7fcaf9b67925fa5c07bd121fa6f246eedd2ac1cc9156327520a79bdadee2a0c463853e2b359520f75ea1fcb026a1bbecdc6529c1dcab780b25415caa5e133ea05bc3aeef63a0131e375fa9227dd8203d1e0a1d88f89246cca730c2a093b89bb9a093f9065d1c292cfe90187d8316b5d77f63baa8a3cbacb7dab251e52bb2647992a072caa42fa06337e7a40855ba72ab91bc543af6277b55f45752b2df464aa5980ca0aba9dca288fe67c1a4725c3037b949d1bd601ec66fb08b856a0d0bb3d9746bc6a0c8baeed7aad9f3405c3ec9975af506d0716d9d9c81b0f7583cfb0b4ab23c8411a04549aa50e29845b24bcaccdd73c05ea3f9339fc1b36e674d2d26d1cbebd21707a09ad8a2d70f8fe1bd53e2fe41fb3500cdfe96f2a107391a99e87caff10552bc5aa08274abdd8d2f49a67d2b76a05fc98fe1a6fc61deb8b331d8b9bffe6e5f5b418aa0c44067f13f198366426b116f33f4c4986699834d72235642002687050fc7598fa0079219259c4b66570878e61e68f1ba9bd735db772bd37f1f3a070d3080de6dc7a0dd977bb9b2a8b79015a099ca4fbe1cc03e2bad3a2a5fa6a51556e0a234315b20a00dc885f251fe1d9bb83ea7290bdb2afa4eb7859caa8a5a3c1f09acffc046f931a0a72ebe0ce41209d9d11d05f28e624048089600696a39856e9b99fad176eb1944a05b6118efcf9c6df825e2c11ce1253efa092d9ff62f7973fb9174c982a8261adba06810b59888a32a2b86d66efa776f030cc4d7b47dffbcea30cd59edd04df6c3c2a0f92dbbc2411f5cbe13c11bb174f6d52a15582ab867ad047e17c8b8048ef46073a0a6b6ee59bb9c1ca8bf29789c78bb86d95a426cf7e662149babf37ea1ddd94494a0d41d52b7cf14932699f021dc7d12f29629cfd14bf97ffc448e889f111c59eb25a09cd662bf24415538f1e75e99efed323b3a167488e18d1f06b7518c2cfa8f9f5aa075b09e9c4ddc1675cf3500ebcbddf941d256aeeb746fea4180a5d0b972b38368a0b6c7690d32446df1b5ecda799a68b9e2720999af705b96a59c60e8d5a89ea719a0b59d284f9a25e0c869ac8ab36fc5908b7b511d5bf5dfbe8d4822661bfb7d6215a0caf75cf6533d419e703780fc113a9e8f0b7809e0caa575895ec8953b169af610a00e4beb0e2a7fd498343cdb5d235ee5359405bd759ce4829e5f8ad3ec59250d28a00f0cd100400e2d0f353b9990a73669744951a241bbeda58b81c0d62f2192f405a050ed76f92ef11fd357616ba32cc1174dbad0a859b0a138db4edce0766413321ea033a10af3361aa7900353dbc7439c5623ce3ae18c22e78ae20a885bdc35c7f843a0b91f5bdfc38418e2e675065370d02a7a36adc814c35966849c519c216bdb8af1a01ea59f31ee94703624208b3f87422eebc2852940589bc47d0e5c92afa7c48effa09b20ed326c942ac172c747e28b254f41ba45622a267be543bc9a9eda62dc9a2ca0dda7062f933f07806e2cd3353860f26108e0c1dd4b5975e043715470122818f2a03c405ba0d9b38a1387bf80678d2e1c7e50da7e0440449ff31227ca8debad3728a064ab8d1c3a0a2eb45c9ada53781f44711cab49f8796a6bb2d594379ae5d15027a00fc8ca547ed7b1653eecd6a53f0c59769bc72c6441e1352d58b3c76e07adb105a0afef30ffd851bb7e6a2b4676ac08d62687d5e03fa5890efab7c9922dbd5ecb61a00165d066cabf8c19979ef7253a69680ebb04668d6c5b4897d00792d93351c7dfa01f4c644d845e50fd54608e60d685f4c5e749287d4bbbe43452853268a5b47a0da0d91d97a003adeb26b666f6616092b6dd72b656b1acaabcf91d78bd931fb01884a0c8737e15221df6d9fd90087802abdce3fed99c932cac2593cadb17b9229f9f16a0bed33f5452c61b27d6f1c3f14eecd0092df8526ea5bd8a93461ba27d7f9a75efa0c2b3c6c4869664c2420b0b9f0bbd9718eb6532463949b39f6d345be91c5f9d6fa054d2e5a9275d7c7d8328110bf85631ba36f3a7a21927f840e6a889117171cd9ea044242e49d4c21146e7607350c884a0d3e26e5c3097e1758b482314fe0577aec2a00cd8c8c1ed792f9f6dbfc89b09786c7730b2957d17f79611587aed3fda70d2b8a083fe46d767b5d7e394769fd45f41ef882dcbac6ffb38e96c37eaf6597a42d21aa099e4f39264efb9505d3052fc3eafca2907e2fef0c5b85b0ccc6bc88b6a356c4ea0e4b77f82e45643442713b5c8b46e03f6fb76422177389833290d6bf42a26ab6da03074c90c37ee2a2b219ea7d78d98e6c079ef7bb07aeab5147a302f3366155fb8a05f9ed7bca1374783e7bad9c82a0c353c479ca7e09895d51fed2f5629bcc6abf5a01581b664d619d7627d55862022e4036a76eb2f9cf8a882a40a62f216b990afaca00c3d6f4af686377fd7fcb8c40ac5bc30495f04fe164ee4ee852b9d48425983d7a0c4070b1bd6de7be5e1ea3cb95382f983686b23f4da6f6fd95aa761df6bb90730a02f4725e56a14701a8e1dfef58dad20dca92b4a61a7317789157a388aaf7e6ae5a0f678b9006f0087e46777d82a5b25e11e59ee309925feb9a1d62ac4393082ffcba07460dc419cb17232afb654322ef234f73f8074b819e4c4a6fbdbfc8492392a3da0a5b7291d1afd426b40a99736507c2694865c192f4b436d3d4301fb707a9d5d11a042b9801c4f2615d58ffddf13f716ce02a0650b4f4e40e38d4c6026c0f94ea77fa0fd50fda4772dfee606321698eda27aecd44d3e7bfa130b8e0d6864e305b67ec4a03144dae304be1734ca992969d08316cd0789b55584520c1adca76cf7cab8bceba0d69a4b3e8e8e95f3b8b71aa5b41bd0449c2dad2d46a731a8d347da1127d423cea0babaf47cb6c5d4689316a40c4dd8b382c38191e9a176dc71cea669e9f9cde68ba003cbc12b1c051c2c2c7adfb55cf89e5e32e00f32693736313b1a84bd092b535aa004cce849d28a52d72ba2e4823c51ae543dfed021265c55cb347fbd6f423d8b3ba0126605dee90587eb8e65649f5baa87b826f793df6ff1bcfd91a571c7e81b9838a066fab64e8d0625ede7728e12c42cb56f549caca5b5df21b9fe616b717cda384aa0db8c15c88061ea97e7ae2975c6283011ab2e40396ec8270fba673a2d93da33b8a03b21aae10523f4f023af58b48613d69d103217a9f5a325bb26718c3549d49185a0f5db6576ade94e11674cca382098499d195d70abcd947c63bbcf4efc8ff1b5c8a081995a3a0fbe5b4a60d2f91389b9d49c43501f9107f112c59230d766f1a6e714a09f6bc642a71dfba44745420fd4ffa7af1f8bebbd9c63464bf526757595915f2ea006363434244dde18d1a84dc7e74261534ef4384bd2957a94ad1196788ae1a6a8a09bb434fc8b655cdc080bc47f01de0e0f9bf37c728532e3453dd374af3edc042ea067aa2fd972ef541d3d2401b9be7118bd90e22b3b46682657fc437d6529036fe0a09bba08016ba641e78b95735ead1fa8f470b69fe316a5e2e355eefdb59f0ff6a1a0fc1b26d7ed19e8e4723f1450ad019da802297dd54c446934bb1c1ff971458540a0906ca50e73f23f4647987e0194aec2d0113562af2754219efbfc8cab5bb8d52ea063e21ef62f649f03705954ae8a6a763c7a1083495d74e0152bf6ca7f10e7e059a0177a17caba5d8e38b88dc64aec4766cce2f51f3a8f86c1190ea3400b4148c5a0a0b9d0fea8852f96d3a2b1c21b947be44bd3e8e69d0cc452a38bd0c50036f9236ba0748f73cec222e79796d9a051b3247a648b70174746116ccf2c6d44b7c5ca92dda0581393bfaa60b5ce83b2c08969b94197d8ce70900ee03d1944366ee9353236aba05bd17ccc2f8f82b53db52190ceb8e3938962411d02aac797a817d66366c214a6a0730033ce8b0c0da4eae4f9848e1a362f3f4dbe735a09e062ea5a115c4561cf9ca006b589e2210092bace9e9fcc63f6a7f564458049b4c0f0bfe06d10d1652710c6a0b2b3f246c4b195ddbc314f8844b501e50afd103b8b7568044a521e6f36f9a8eba0f91c990673b78bf5abc5538328089cf89c8302bf1904056f839dec7371a30c3ca0d1dd1ffed2a0b770bd03bd212b1bc20c6fd2eb2059c6e90d4dff6626730a27c3a08cb427dedc8ba43453ee3d4164ae1a155a9543c4c08db060d400b2158b999e34a06316d1af10873beb39a908e7c2766178f3cc431a9208e3f5f846f2b2fc20a760a0d81786e90402d275b01e281d522d140fda5b88a2f0786347e1b7aadafa03347fa0e93df0dfb320fd493a8f9ae3eb1083748fa7cd18e503b4d80f1e48a7a8d6611ea078165a0ea0547cd56dde852729cfdc14c8bddc3800304eb591ae5123e7b87de8a07af0fdb8183c5e3603b52038bf44f85677658f07bb7b99f9584f8d8596671ecba0daba8b73ce81af08b267bfe2d4319079f782dd5c7a58b727c800abeb1564c884a0eb8a0f0c09f3672f7840b08bf889bef596e2f55a63a365545d2d91ebd9b752f9a02dc9a3c2796ec2c87f65064f22d7f75ecaceb3a4a629f785cf1d62342b3392c8a0cf3a3fca53a0831c8fb90601d1ec6907299d8627d4b5debd3fd71ee795e11704a0beb3fc6f07969a7a0c72c8238607188ee4df3fb8b76123cd018bf64f976d38d4a085504c2f09cd7a8e080a20ca2e94b0c6c264b751170e7ec61b1b44a643e29186a0cd46e49571a79e8b76d48cafe0ecaba5e7ecbe82a1aca06a0623e9e8a21374c2a031c3934e927c3130fa162842ecdc82290e10cccddd93365b9b5065e7296f2e2d", - } - - for i := range in { - p := &PooledTransactionsRLPPacket{} - err := rlp.DecodeBytes(common.FromHex(in[i]), p) - assert.NoError(t, err) - } -} diff --git a/eth/stagedsync/all_stages.go b/eth/stagedsync/all_stages.go index c3a88ecbdc0..32c28750593 100644 --- a/eth/stagedsync/all_stages.go +++ b/eth/stagedsync/all_stages.go @@ -3,17 +3,18 @@ package stagedsync import ( "fmt" - "github.com/VictoriaMetrics/metrics" "github.com/huandu/xstrings" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" ) -var syncMetrics = map[stages.SyncStage]*metrics.Counter{} +var syncMetrics = map[stages.SyncStage]metrics.Gauge{} func init() { for _, v := range stages.AllStages { - syncMetrics[v] = metrics.GetOrCreateCounter( + syncMetrics[v] = metrics.GetOrCreateGauge( fmt.Sprintf( `sync{stage="%s"}`, xstrings.ToSnakeCase(string(v)), @@ -30,7 +31,7 @@ func UpdateMetrics(tx kv.Tx) error { if err != nil { return err } - m.Set(progress) + m.SetUint64(progress) } return nil } diff --git a/eth/stagedsync/chain_reader.go b/eth/stagedsync/chain_reader.go index e09a145c0dc..862cae5710a 100644 --- a/eth/stagedsync/chain_reader.go +++ b/eth/stagedsync/chain_reader.go @@ -7,6 +7,7 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/log/v3" @@ -79,3 +80,11 @@ func (cr ChainReader) GetTd(hash libcommon.Hash, number uint64) *big.Int { func (cr ChainReader) FrozenBlocks() uint64 { return cr.BlockReader.FrozenBlocks() } + +func (cr ChainReader) BorEventsByBlock(hash libcommon.Hash, number uint64) []rlp.RawValue { + panic("") +} + +func (cr ChainReader) BorSpan(spanId uint64) []byte { + panic("") +} diff --git a/eth/stagedsync/default_stages.go b/eth/stagedsync/default_stages.go index 8f81b99d598..e4b52eefdb4 100644 --- a/eth/stagedsync/default_stages.go +++ b/eth/stagedsync/default_stages.go @@ -9,7 +9,22 @@ import ( "github.com/ledgerwatch/log/v3" ) -func DefaultStages(ctx context.Context, snapshots SnapshotsCfg, headers HeadersCfg, blockHashCfg BlockHashesCfg, bodies BodiesCfg, senders SendersCfg, exec ExecuteBlockCfg, hashState HashStateCfg, trieCfg TrieCfg, history HistoryCfg, logIndex LogIndexCfg, callTraces CallTracesCfg, txLookup TxLookupCfg, finish FinishCfg, test bool) []*Stage { +func DefaultStages(ctx context.Context, + snapshots SnapshotsCfg, + headers HeadersCfg, + borHeimdallCfg BorHeimdallCfg, + blockHashCfg BlockHashesCfg, + bodies BodiesCfg, + senders SendersCfg, + exec ExecuteBlockCfg, + hashState HashStateCfg, + trieCfg TrieCfg, + history HistoryCfg, + logIndex LogIndexCfg, + callTraces CallTracesCfg, + txLookup TxLookupCfg, + finish FinishCfg, + test bool) []*Stage { return []*Stage{ { ID: stages.Snapshots, @@ -40,7 +55,23 @@ func DefaultStages(ctx context.Context, snapshots SnapshotsCfg, headers HeadersC return HeadersUnwind(u, s, tx, headers, test) }, Prune: func(firstCycle bool, p *PruneState, tx kv.RwTx, logger log.Logger) error { - return HeadersPrune(p, tx, headers, ctx) + return nil + }, + }, + { + ID: stages.BorHeimdall, + Description: "Download Bor-specific data from Heimdall", + Forward: func(firstCycle bool, badBlockUnwind bool, s *StageState, u Unwinder, tx kv.RwTx, logger log.Logger) error { + if badBlockUnwind { + return nil + } + return BorHeimdallForward(s, u, ctx, tx, borHeimdallCfg, false, logger) + }, + Unwind: func(firstCycle bool, u *UnwindState, s *StageState, tx kv.RwTx, logger log.Logger) error { + return BorHeimdallUnwind(u, ctx, s, tx, borHeimdallCfg) + }, + Prune: func(firstCycle bool, p *PruneState, tx kv.RwTx, logger log.Logger) error { + return BorHeimdallPrune(p, ctx, tx, borHeimdallCfg) }, }, { @@ -66,7 +97,7 @@ func DefaultStages(ctx context.Context, snapshots SnapshotsCfg, headers HeadersC return UnwindBodiesStage(u, tx, bodies, ctx) }, Prune: func(firstCycle bool, p *PruneState, tx kv.RwTx, logger log.Logger) error { - return PruneBodiesStage(p, tx, bodies, ctx) + return nil }, }, { @@ -413,7 +444,7 @@ func StateStages(ctx context.Context, headers HeadersCfg, bodies BodiesCfg, bloc ID: stages.Bodies, Description: "Download block bodies", Forward: func(firstCycle bool, badBlockUnwind bool, s *StageState, u Unwinder, tx kv.RwTx, logger log.Logger) error { - return BodiesForward(s, u, ctx, tx, bodies, false, false, logger) + return nil }, Unwind: func(firstCycle bool, u *UnwindState, s *StageState, tx kv.RwTx, logger log.Logger) error { return UnwindBodiesStage(u, tx, bodies, ctx) @@ -476,6 +507,7 @@ func StateStages(ctx context.Context, headers HeadersCfg, bodies BodiesCfg, bloc var DefaultForwardOrder = UnwindOrder{ stages.Snapshots, stages.Headers, + stages.BorHeimdall, stages.BlockHashes, stages.Bodies, @@ -516,6 +548,7 @@ var DefaultUnwindOrder = UnwindOrder{ stages.Bodies, stages.BlockHashes, + stages.BorHeimdall, stages.Headers, } @@ -556,7 +589,7 @@ var DefaultPruneOrder = PruneOrder{ stages.AccountHistoryIndex, stages.CallTraces, - // Unwinding of IHashes needs to happen after unwinding HashState + // Pruning of IHashes needs to happen after pruning HashState stages.HashState, stages.IntermediateHashes, @@ -565,6 +598,7 @@ var DefaultPruneOrder = PruneOrder{ stages.Bodies, stages.BlockHashes, + stages.BorHeimdall, stages.Headers, stages.Snapshots, } diff --git a/eth/stagedsync/exec3.go b/eth/stagedsync/exec3.go index f2596b488fc..3191ccf0b5f 100644 --- a/eth/stagedsync/exec3.go +++ b/eth/stagedsync/exec3.go @@ -13,8 +13,11 @@ import ( "sync/atomic" "time" - "github.com/VictoriaMetrics/metrics" "github.com/c2h5oh/datasize" + "github.com/erigontech/mdbx-go/mdbx" + "github.com/ledgerwatch/log/v3" + "golang.org/x/sync/errgroup" + "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" @@ -24,15 +27,12 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" kv2 "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" + "github.com/ledgerwatch/erigon-lib/metrics" libstate "github.com/ledgerwatch/erigon-lib/state" state2 "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/common/math" - "github.com/ledgerwatch/log/v3" - "github.com/torquem-ch/mdbx-go/mdbx" - "golang.org/x/sync/errgroup" - "github.com/ledgerwatch/erigon/cmd/state/exec22" "github.com/ledgerwatch/erigon/cmd/state/exec3" + "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb/rawdbhelpers" @@ -44,9 +44,9 @@ import ( "github.com/ledgerwatch/erigon/turbo/services" ) -var ExecStepsInDB = metrics.NewCounter(`exec_steps_in_db`) //nolint -var ExecRepeats = metrics.NewCounter(`exec_repeats`) //nolint -var ExecTriggers = metrics.NewCounter(`exec_triggers`) //nolint +var execStepsInDB = metrics.NewGauge(`exec_steps_in_db`) //nolint +var execRepeats = metrics.NewCounter(`exec_repeats`) //nolint +var execTriggers = metrics.NewCounter(`exec_triggers`) //nolint func NewProgress(prevOutputBlockNum, commitThreshold uint64, workersCount int, logPrefix string, logger log.Logger) *Progress { return &Progress{prevTime: time.Now(), prevOutputBlockNum: prevOutputBlockNum, commitThreshold: commitThreshold, workersCount: workersCount, logPrefix: logPrefix, logger: logger} @@ -65,7 +65,7 @@ type Progress struct { } func (p *Progress) Log(rs *state.StateV3, in *exec22.QueueWithRetry, rws *exec22.ResultsQueue, doneCount, inputBlockNum, outputBlockNum, outTxNum, repeatCount uint64, idxStepsAmountInDB float64) { - ExecStepsInDB.Set(uint64(idxStepsAmountInDB * 100)) + execStepsInDB.Set(idxStepsAmountInDB * 100) var m runtime.MemStats dbg.ReadMemStats(&m) sizeEstimate := rs.SizeEstimate() @@ -280,10 +280,10 @@ func ExecV3(ctx context.Context, return err } - ExecRepeats.Add(conflicts) - ExecTriggers.Add(triggers) + execRepeats.AddInt(conflicts) + execTriggers.AddInt(triggers) if processedBlockNum > lastBlockNum { - outputBlockNum.Set(processedBlockNum) + outputBlockNum.SetUint64(processedBlockNum) lastBlockNum = processedBlockNum } if processedTxNum > 0 { @@ -334,7 +334,7 @@ func ExecV3(ctx context.Context, case <-logEvery.C: stepsInDB := rawdbhelpers.IdxStepsCountV3(tx) - progress.Log(rs, in, rws, rs.DoneCount(), inputBlockNum.Load(), outputBlockNum.Get(), outputTxNum.Load(), ExecRepeats.Get(), stepsInDB) + progress.Log(rs, in, rws, rs.DoneCount(), inputBlockNum.Load(), outputBlockNum.GetValueUint64(), outputTxNum.Load(), execRepeats.GetValueUint64(), stepsInDB) if agg.HasBackgroundFilesBuild() { logger.Info(fmt.Sprintf("[%s] Background files build", logPrefix), "progress", agg.BackgroundProgress()) } @@ -369,10 +369,10 @@ func ExecV3(ctx context.Context, return err } - ExecRepeats.Add(conflicts) - ExecTriggers.Add(triggers) + execRepeats.AddInt(conflicts) + execTriggers.AddInt(triggers) if processedBlockNum > 0 { - outputBlockNum.Set(processedBlockNum) + outputBlockNum.SetUint64(processedBlockNum) } if processedTxNum > 0 { outputTxNum.Store(processedTxNum) @@ -411,7 +411,7 @@ func ExecV3(ctx context.Context, } t3 = time.Since(tt) - if err = execStage.Update(tx, outputBlockNum.Get()); err != nil { + if err = execStage.Update(tx, outputBlockNum.GetValueUint64()); err != nil { return err } @@ -449,7 +449,7 @@ func ExecV3(ctx context.Context, if err = agg.Flush(ctx, tx); err != nil { return err } - if err = execStage.Update(tx, outputBlockNum.Get()); err != nil { + if err = execStage.Update(tx, outputBlockNum.GetValueUint64()); err != nil { return err } if err = tx.Commit(); err != nil { @@ -628,7 +628,9 @@ Loop: gasUsed += txTask.UsedGas if gasUsed != txTask.Header.GasUsed { if txTask.BlockNum > 0 { //Disable check for genesis. Maybe need somehow improve it in future - to satisfy TestExecutionSpec - return fmt.Errorf("gas used by execution: %d, in header: %d, headerNum=%d, %x", gasUsed, txTask.Header.GasUsed, txTask.Header.Number.Uint64(), txTask.Header.Hash()) + return fmt.Errorf("%w: gas used by execution: %d, in header: %d, headerNum=%d, %x", + consensus.ErrInvalidBlock, gasUsed, txTask.Header.GasUsed, + txTask.Header.Number.Uint64(), txTask.Header.Hash()) } } gasUsed = 0 @@ -637,7 +639,7 @@ Loop: } return nil }(); err != nil { - if errors.Is(err, context.Canceled) || errors.Is(err, common.ErrStopped) { + if !errors.Is(err, consensus.ErrInvalidBlock) { return err } else { logger.Warn(fmt.Sprintf("[%s] Execution failed", logPrefix), "block", blockNum, "hash", header.Hash().String(), "err", err) @@ -648,14 +650,14 @@ Loop: return err } } - u.UnwindTo(blockNum-1, header.Hash()) + u.UnwindTo(blockNum-1, BadBlock(header.Hash(), err)) break Loop } if err := rs.ApplyState(applyTx, txTask, agg); err != nil { return fmt.Errorf("StateV3.Apply: %w", err) } - ExecTriggers.Add(rs.CommitTxNum(txTask.Sender, txTask.TxNum, in)) + execTriggers.AddInt(rs.CommitTxNum(txTask.Sender, txTask.TxNum, in)) outputTxNum.Add(1) if err := rs.ApplyHistory(txTask, agg); err != nil { @@ -667,12 +669,12 @@ Loop: } if !parallel { - outputBlockNum.Set(blockNum) + outputBlockNum.SetUint64(blockNum) select { case <-logEvery.C: stepsInDB := rawdbhelpers.IdxStepsCountV3(applyTx) - progress.Log(rs, in, rws, count, inputBlockNum.Load(), outputBlockNum.Get(), outputTxNum.Load(), ExecRepeats.Get(), stepsInDB) + progress.Log(rs, in, rws, count, inputBlockNum.Load(), outputBlockNum.GetValueUint64(), outputTxNum.Load(), execRepeats.GetValueUint64(), stepsInDB) if rs.SizeEstimate() < commitThreshold { break } @@ -693,7 +695,7 @@ Loop: } t3 = time.Since(tt) - if err = execStage.Update(applyTx, outputBlockNum.Get()); err != nil { + if err = execStage.Update(applyTx, outputBlockNum.GetValueUint64()); err != nil { return err } @@ -993,7 +995,7 @@ func reconstituteStep(last bool, logger.Info(fmt.Sprintf("[%s] State reconstitution", s.LogPrefix()), "overall progress", fmt.Sprintf("%.2f%%", progress), "step progress", fmt.Sprintf("%.2f%%", stepProgress), "tx/s", fmt.Sprintf("%.1f", speedTx), "workCh", fmt.Sprintf("%d/%d", len(workCh), cap(workCh)), - "repeat ratio", fmt.Sprintf("%.2f%%", repeatRatio), "queue.len", rs.QueueLen(), "blk", syncMetrics[stages.Execution].Get(), + "repeat ratio", fmt.Sprintf("%.2f%%", repeatRatio), "queue.len", rs.QueueLen(), "blk", syncMetrics[stages.Execution].GetValueUint64(), "buffer", fmt.Sprintf("%s/%s", common.ByteCount(sizeEstimate), common.ByteCount(commitThreshold)), "alloc", common.ByteCount(m.Alloc), "sys", common.ByteCount(m.Sys)) if sizeEstimate >= commitThreshold { @@ -1104,7 +1106,7 @@ func reconstituteStep(last bool, inputTxNum++ } - syncMetrics[stages.Execution].Set(bn) + syncMetrics[stages.Execution].SetUint64(bn) } return err }(); err != nil { @@ -1390,7 +1392,7 @@ func ReconstituteState(ctx context.Context, s *StageState, dirs datadir.Dirs, wo }). PageSize(uint64(8 * datasize.KB)). WithTableCfg(func(defaultBuckets kv.TableCfg) kv.TableCfg { return kv.ReconTablesCfg }). - Open() + Open(ctx) if err != nil { return err } diff --git a/eth/stagedsync/stage.go b/eth/stagedsync/stage.go index 60db9d10b7f..17607787155 100644 --- a/eth/stagedsync/stage.go +++ b/eth/stagedsync/stage.go @@ -1,10 +1,10 @@ package stagedsync import ( - libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" ) @@ -51,7 +51,7 @@ func (s *StageState) LogPrefix() string { return s.state.LogPrefix() } // Update updates the stage state (current block number) in the database. Can be called multiple times during stage execution. func (s *StageState) Update(db kv.Putter, newBlockNum uint64) error { if m, ok := syncMetrics[s.ID]; ok { - m.Set(newBlockNum) + m.SetUint64(newBlockNum) } return stages.SaveStageProgress(db, s.ID, newBlockNum) } @@ -72,10 +72,34 @@ func (s *StageState) IntermediateHashesAt(db kv.Getter) (uint64, error) { return progress, err } +type UnwindReason struct { + // If we;re unwinding due to a fork - we want to unlink blocks but not mark + // them as bad - as they may get replayed then deselected + Block *libcommon.Hash + // If unwind is caused by a bad block, this error is not empty + Err error +} + +func (u UnwindReason) IsBadBlock() bool { + return u.Err != nil +} + +var StagedUnwind = UnwindReason{nil, nil} +var ExecUnwind = UnwindReason{nil, nil} +var ForkChoice = UnwindReason{nil, nil} + +func BadBlock(badBlock libcommon.Hash, err error) UnwindReason { + return UnwindReason{&badBlock, err} +} + +func ForkReset(badBlock libcommon.Hash) UnwindReason { + return UnwindReason{&badBlock, nil} +} + // Unwinder allows the stage to cause an unwind. type Unwinder interface { // UnwindTo begins staged sync unwind to the specified block. - UnwindTo(unwindPoint uint64, badBlock libcommon.Hash) + UnwindTo(unwindPoint uint64, reason UnwindReason) } // UnwindState contains the information about unwind. @@ -84,9 +108,8 @@ type UnwindState struct { // UnwindPoint is the block to unwind to. UnwindPoint uint64 CurrentBlockNumber uint64 - // If unwind is caused by a bad block, this hash is not empty - BadBlock libcommon.Hash - state *Sync + Reason UnwindReason + state *Sync } func (u *UnwindState) LogPrefix() string { return u.state.LogPrefix() } diff --git a/eth/stagedsync/stage_bodies.go b/eth/stagedsync/stage_bodies.go index 08d64adf233..bf2feb97c9b 100644 --- a/eth/stagedsync/stage_bodies.go +++ b/eth/stagedsync/stage_bodies.go @@ -196,7 +196,7 @@ func BodiesForward( err = cfg.bd.Engine.VerifyUncles(cr, header, rawBody.Uncles) if err != nil { logger.Error(fmt.Sprintf("[%s] Uncle verification failed", logPrefix), "number", blockHeight, "hash", header.Hash().String(), "err", err) - u.UnwindTo(blockHeight-1, header.Hash()) + u.UnwindTo(blockHeight-1, BadBlock(header.Hash(), fmt.Errorf("Uncle verification failed: %w", err))) return true, nil } @@ -349,21 +349,3 @@ func UnwindBodiesStage(u *UnwindState, tx kv.RwTx, cfg BodiesCfg, ctx context.Co } return nil } - -func PruneBodiesStage(s *PruneState, tx kv.RwTx, cfg BodiesCfg, ctx context.Context) (err error) { - useExternalTx := tx != nil - if !useExternalTx { - tx, err = cfg.db.BeginRw(ctx) - if err != nil { - return err - } - defer tx.Rollback() - } - - if !useExternalTx { - if err = tx.Commit(); err != nil { - return err - } - } - return nil -} diff --git a/eth/stagedsync/stage_bor_heimdall.go b/eth/stagedsync/stage_bor_heimdall.go new file mode 100644 index 00000000000..41c5645b6d0 --- /dev/null +++ b/eth/stagedsync/stage_bor_heimdall.go @@ -0,0 +1,822 @@ +package stagedsync + +import ( + "bytes" + "context" + "encoding/binary" + "encoding/json" + "fmt" + "math/big" + "sort" + "strconv" + "time" + + lru "github.com/hashicorp/golang-lru/arc/v2" + "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/common" + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/accounts/abi" + "github.com/ledgerwatch/erigon/consensus" + "github.com/ledgerwatch/erigon/consensus/bor" + "github.com/ledgerwatch/erigon/consensus/bor/contract" + "github.com/ledgerwatch/erigon/consensus/bor/finality/generics" + "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall/span" + "github.com/ledgerwatch/erigon/consensus/bor/valset" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/dataflow" + "github.com/ledgerwatch/erigon/eth/ethconfig/estimate" + "github.com/ledgerwatch/erigon/eth/stagedsync/stages" + "github.com/ledgerwatch/erigon/rlp" + "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/erigon/turbo/stages/headerdownload" + "github.com/ledgerwatch/log/v3" + "golang.org/x/sync/errgroup" +) + +const ( + spanLength = 6400 // Number of blocks in a span + zerothSpanEnd = 255 // End block of 0th span + inmemorySnapshots = 128 // Number of recent vote snapshots to keep in memory + inmemorySignatures = 4096 // Number of recent block signatures to keep in memory + snapshotPersistInterval = 1024 // Number of blocks after which to persist the vote snapshot to the database + extraVanity = 32 // Fixed number of extra-data prefix bytes reserved for signer vanity + extraSeal = 65 // Fixed number of extra-data suffix bytes reserved for signer seal +) + +type BorHeimdallCfg struct { + db kv.RwDB + snapDb kv.RwDB // Database to store and retrieve snapshot checkpoints + miningState MiningState + chainConfig chain.Config + heimdallClient heimdall.IHeimdallClient + blockReader services.FullBlockReader + hd *headerdownload.HeaderDownload + penalize func(context.Context, []headerdownload.PenaltyItem) + stateReceiverABI abi.ABI + recents *lru.ARCCache[libcommon.Hash, *bor.Snapshot] + signatures *lru.ARCCache[libcommon.Hash, libcommon.Address] +} + +func StageBorHeimdallCfg( + db kv.RwDB, + snapDb kv.RwDB, + miningState MiningState, + chainConfig chain.Config, + heimdallClient heimdall.IHeimdallClient, + blockReader services.FullBlockReader, + hd *headerdownload.HeaderDownload, + penalize func(context.Context, []headerdownload.PenaltyItem), + recents *lru.ARCCache[libcommon.Hash, *bor.Snapshot], + signatures *lru.ARCCache[libcommon.Hash, libcommon.Address], +) BorHeimdallCfg { + return BorHeimdallCfg{ + db: db, + snapDb: snapDb, + miningState: miningState, + chainConfig: chainConfig, + heimdallClient: heimdallClient, + blockReader: blockReader, + hd: hd, + penalize: penalize, + stateReceiverABI: contract.StateReceiver(), + recents: recents, + signatures: signatures, + } +} + +func BorHeimdallForward( + s *StageState, + u Unwinder, + ctx context.Context, + tx kv.RwTx, + cfg BorHeimdallCfg, + mine bool, + logger log.Logger, +) (err error) { + processStart := time.Now() + + if cfg.chainConfig.Bor == nil { + return + } + if cfg.heimdallClient == nil { + return + } + useExternalTx := tx != nil + if !useExternalTx { + var err error + tx, err = cfg.db.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + } + + var header *types.Header + var headNumber uint64 + + headNumber, err = stages.GetStageProgress(tx, stages.Headers) + + if err != nil { + return err + } + + service := whitelist.GetWhitelistingService() + + if generics.BorMilestoneRewind.Load() != nil && *generics.BorMilestoneRewind.Load() != 0 { + unwindPoint := *generics.BorMilestoneRewind.Load() + var reset uint64 = 0 + generics.BorMilestoneRewind.Store(&reset) + + if service != nil && unwindPoint < headNumber { + header, err = cfg.blockReader.HeaderByNumber(ctx, tx, headNumber) + logger.Debug("[BorHeimdall] Verification failed for header", "hash", header.Hash(), "height", headNumber, "err", err) + cfg.penalize(ctx, []headerdownload.PenaltyItem{ + {Penalty: headerdownload.BadBlockPenalty, PeerID: cfg.hd.SourcePeerId(header.Hash())}}) + + dataflow.HeaderDownloadStates.AddChange(headNumber, dataflow.HeaderInvalidated) + s.state.UnwindTo(unwindPoint, ForkReset(header.Hash())) + return fmt.Errorf("verification failed for header %d: %x", headNumber, header.Hash()) + } + } + + if mine { + minedHeader := cfg.miningState.MiningBlock.Header + + if minedHeadNumber := minedHeader.Number.Uint64(); minedHeadNumber > headNumber { + // Whitelist service is called to check if the bor chain is + // on the cannonical chain according to milestones + if service != nil { + if !service.IsValidChain(minedHeadNumber, []*types.Header{minedHeader}) { + logger.Debug("[BorHeimdall] Verification failed for mined header", "hash", minedHeader.Hash(), "height", minedHeadNumber, "err", err) + dataflow.HeaderDownloadStates.AddChange(minedHeadNumber, dataflow.HeaderInvalidated) + s.state.UnwindTo(minedHeadNumber-1, ForkReset(minedHeader.Hash())) + return fmt.Errorf("mining on a wrong fork %d:%x", minedHeadNumber, minedHeader.Hash()) + } + } + } else { + return fmt.Errorf("attempting to mine %d, which is behind current head: %d", minedHeadNumber, headNumber) + } + } + + if err != nil { + return fmt.Errorf("getting headers progress: %w", err) + } + + if s.BlockNumber == headNumber { + return nil + } + + // Find out the latest event Id + cursor, err := tx.Cursor(kv.BorEvents) + if err != nil { + return err + } + defer cursor.Close() + k, _, err := cursor.Last() + if err != nil { + return err + } + + var lastEventId uint64 + if k != nil { + lastEventId = binary.BigEndian.Uint64(k) + } + type LastFrozen interface { + LastFrozenEventID() uint64 + LastFrozenSpanID() uint64 + } + snapshotLastEventId := cfg.blockReader.(LastFrozen).LastFrozenEventID() + if snapshotLastEventId > lastEventId { + lastEventId = snapshotLastEventId + } + sCursor, err := tx.Cursor(kv.BorSpans) + if err != nil { + return err + } + defer sCursor.Close() + k, _, err = sCursor.Last() + if err != nil { + return err + } + var nextSpanId uint64 + if k != nil { + nextSpanId = binary.BigEndian.Uint64(k) + 1 + } + snapshotLastSpanId := cfg.blockReader.(LastFrozen).LastFrozenSpanID() + if snapshotLastSpanId+1 > nextSpanId { + nextSpanId = snapshotLastSpanId + 1 + } + var endSpanID uint64 + if headNumber > zerothSpanEnd { + endSpanID = 2 + (headNumber-zerothSpanEnd)/spanLength + } + + lastBlockNum := s.BlockNumber + if cfg.blockReader.FrozenBorBlocks() > lastBlockNum { + lastBlockNum = cfg.blockReader.FrozenBorBlocks() + } + recents, err := lru.NewARC[libcommon.Hash, *bor.Snapshot](inmemorySnapshots) + if err != nil { + return err + } + signatures, err := lru.NewARC[libcommon.Hash, libcommon.Address](inmemorySignatures) + if err != nil { + return err + } + chain := NewChainReaderImpl(&cfg.chainConfig, tx, cfg.blockReader, logger) + + var blockNum uint64 + var fetchTime time.Duration + var eventRecords int + var lastSpanId uint64 + + logTimer := time.NewTicker(logInterval) + defer logTimer.Stop() + + if endSpanID >= nextSpanId { + logger.Info("["+s.LogPrefix()+"] Processing spans...", "from", nextSpanId, "to", endSpanID) + } + for spanID := nextSpanId; spanID <= endSpanID; spanID++ { + if lastSpanId, err = fetchAndWriteSpans(ctx, spanID, tx, cfg.heimdallClient, s.LogPrefix(), logger); err != nil { + return err + } + } + if !mine { + logger.Info("["+s.LogPrefix()+"] Processing sync events...", "from", lastBlockNum+1, "to", headNumber) + } + for blockNum = lastBlockNum + 1; blockNum <= headNumber; blockNum++ { + select { + default: + case <-logTimer.C: + logger.Info("["+s.LogPrefix()+"] StateSync Progress", "progress", blockNum, "lastSpanId", lastSpanId, "lastEventId", lastEventId, "total records", eventRecords, "fetch time", fetchTime, "process time", time.Since(processStart)) + } + + if !mine { + header, err = cfg.blockReader.HeaderByNumber(ctx, tx, blockNum) + if err != nil { + return err + } + if header == nil { + return fmt.Errorf("["+s.LogPrefix()+"] header not found: %d", blockNum) + } + + // Whitelist service is called to check if the bor chain is + // on the cannonical chain according to milestones + if service != nil { + if !service.IsValidChain(blockNum, []*types.Header{header}) { + logger.Debug("["+s.LogPrefix()+"] Verification failed for header", "height", blockNum, "hash", header.Hash()) + cfg.penalize(ctx, []headerdownload.PenaltyItem{ + {Penalty: headerdownload.BadBlockPenalty, PeerID: cfg.hd.SourcePeerId(header.Hash())}}) + dataflow.HeaderDownloadStates.AddChange(blockNum, dataflow.HeaderInvalidated) + s.state.UnwindTo(blockNum-1, ForkReset(header.Hash())) + return fmt.Errorf("["+s.LogPrefix()+"] verification failed for header %d: %x", blockNum, header.Hash()) + } + } + } + + if blockNum%cfg.chainConfig.Bor.CalculateSprint(blockNum) == 0 { + var callTime time.Duration + var records int + if lastEventId, records, callTime, err = fetchAndWriteBorEvents(ctx, cfg.blockReader, cfg.chainConfig.Bor, header, lastEventId, cfg.chainConfig.ChainID.String(), tx, cfg.heimdallClient, cfg.stateReceiverABI, s.LogPrefix(), logger); err != nil { + return err + } + + eventRecords += records + fetchTime += callTime + } + + var snap *bor.Snapshot + + if header != nil { + snap = loadSnapshot(blockNum, header.Hash(), cfg.chainConfig.Bor, recents, signatures, cfg.snapDb, logger) + + if snap == nil { + snap, err = initValidatorSets(ctx, tx, cfg.blockReader, cfg.chainConfig.Bor, + chain, blockNum, recents, signatures, cfg.snapDb, logger, s.LogPrefix()) + + if err != nil { + return fmt.Errorf("can't initialise validator sets: %w", err) + } + } + + if err = persistValidatorSets(ctx, snap, u, tx, cfg.blockReader, cfg.chainConfig.Bor, chain, blockNum, header.Hash(), recents, signatures, cfg.snapDb, logger, s.LogPrefix()); err != nil { + return fmt.Errorf("can't persist validator sets: %w", err) + } + + if !mine { + sprintLength := cfg.chainConfig.Bor.CalculateSprint(blockNum) + if blockNum > zerothSpanEnd && ((blockNum+1)%sprintLength == 0) { + if err = checkHeaderExtraData(u, ctx, chain, blockNum, header, cfg.chainConfig.Bor); err != nil { + return err + } + } + } + } + } + + if err = s.Update(tx, headNumber); err != nil { + return err + } + + if !useExternalTx { + if err = tx.Commit(); err != nil { + return err + } + } + + logger.Info("["+s.LogPrefix()+"] Sync events processed", "progress", blockNum-1, "lastSpanId", lastSpanId, "lastEventId", lastEventId, "total records", eventRecords, "fetch time", fetchTime, "process time", time.Since(processStart)) + + return +} + +func checkHeaderExtraData( + u Unwinder, + ctx context.Context, + chain consensus.ChainHeaderReader, + blockNum uint64, + header *types.Header, + config *chain.BorConfig, +) error { + var spanID uint64 + if blockNum+1 > zerothSpanEnd { + spanID = 1 + (blockNum+1-zerothSpanEnd-1)/spanLength + } + spanBytes := chain.BorSpan(spanID) + var sp span.HeimdallSpan + if err := json.Unmarshal(spanBytes, &sp); err != nil { + return err + } + producerSet := make([]*valset.Validator, len(sp.SelectedProducers)) + for i := range sp.SelectedProducers { + producerSet[i] = &sp.SelectedProducers[i] + } + + sort.Sort(valset.ValidatorsByAddress(producerSet)) + + headerVals, err := valset.ParseValidators(bor.GetValidatorBytes(header, config)) + if err != nil { + return err + } + + if len(producerSet) != len(headerVals) { + return bor.ErrInvalidSpanValidators + } + + for i, val := range producerSet { + if !bytes.Equal(val.HeaderBytes(), headerVals[i].HeaderBytes()) { + return bor.ErrInvalidSpanValidators + } + } + return nil +} + +func fetchAndWriteBorEvents( + ctx context.Context, + blockReader services.FullBlockReader, + config *chain.BorConfig, + header *types.Header, + lastEventId uint64, + chainID string, + tx kv.RwTx, + heimdallClient heimdall.IHeimdallClient, + stateReceiverABI abi.ABI, + logPrefix string, + logger log.Logger, +) (uint64, int, time.Duration, error) { + fetchStart := time.Now() + + // Find out the latest eventId + var ( + from uint64 + to time.Time + ) + + if header == nil { + return 0, 0, 0, fmt.Errorf("can't fetch events for nil header") + } + + blockNum := header.Number.Uint64() + + if config.IsIndore(blockNum) { + stateSyncDelay := config.CalculateStateSyncDelay(blockNum) + to = time.Unix(int64(header.Time-stateSyncDelay), 0) + } else { + pHeader, err := blockReader.HeaderByNumber(ctx, tx, blockNum-config.CalculateSprint(blockNum)) + if err != nil { + return lastEventId, 0, time.Since(fetchStart), err + } + to = time.Unix(int64(pHeader.Time), 0) + } + + from = lastEventId + 1 + + logger.Debug( + fmt.Sprintf("[%s] Fetching state updates from Heimdall", logPrefix), + "fromID", from, + "to", to.Format(time.RFC3339), + ) + + eventRecords, err := heimdallClient.StateSyncEvents(ctx, from, to.Unix()) + + if err != nil { + return lastEventId, 0, time.Since(fetchStart), err + } + + if config.OverrideStateSyncRecords != nil { + if val, ok := config.OverrideStateSyncRecords[strconv.FormatUint(blockNum, 10)]; ok { + eventRecords = eventRecords[0:val] + } + } + + if len(eventRecords) > 0 { + var key, val [8]byte + binary.BigEndian.PutUint64(key[:], blockNum) + binary.BigEndian.PutUint64(val[:], lastEventId+1) + } + const method = "commitState" + + wroteIndex := false + for i, eventRecord := range eventRecords { + if eventRecord.ID <= lastEventId { + continue + } + if lastEventId+1 != eventRecord.ID || eventRecord.ChainID != chainID || !eventRecord.Time.Before(to) { + return lastEventId, i, time.Since(fetchStart), fmt.Errorf("invalid event record received blockNum=%d, eventId=%d (exp %d), chainId=%s (exp %s), time=%s (exp to %s)", blockNum, eventRecord.ID, lastEventId+1, eventRecord.ChainID, chainID, eventRecord.Time, to) + } + + eventRecordWithoutTime := eventRecord.BuildEventRecord() + + recordBytes, err := rlp.EncodeToBytes(eventRecordWithoutTime) + if err != nil { + return lastEventId, i, time.Since(fetchStart), err + } + + data, err := stateReceiverABI.Pack(method, big.NewInt(eventRecord.Time.Unix()), recordBytes) + if err != nil { + logger.Error(fmt.Sprintf("[%s] Unable to pack tx for commitState", logPrefix), "err", err) + return lastEventId, i, time.Since(fetchStart), err + } + var eventIdBuf [8]byte + binary.BigEndian.PutUint64(eventIdBuf[:], eventRecord.ID) + if err = tx.Put(kv.BorEvents, eventIdBuf[:], data); err != nil { + return lastEventId, i, time.Since(fetchStart), err + } + if !wroteIndex { + var blockNumBuf [8]byte + binary.BigEndian.PutUint64(blockNumBuf[:], blockNum) + binary.BigEndian.PutUint64(eventIdBuf[:], eventRecord.ID) + if err = tx.Put(kv.BorEventNums, blockNumBuf[:], eventIdBuf[:]); err != nil { + return lastEventId, i, time.Since(fetchStart), err + } + wroteIndex = true + } + + lastEventId++ + } + + return lastEventId, len(eventRecords), time.Since(fetchStart), nil +} + +func fetchAndWriteSpans( + ctx context.Context, + spanId uint64, + tx kv.RwTx, + heimdallClient heimdall.IHeimdallClient, + logPrefix string, + logger log.Logger, +) (uint64, error) { + response, err := heimdallClient.Span(ctx, spanId) + if err != nil { + return 0, err + } + spanBytes, err := json.Marshal(response) + if err != nil { + return 0, err + } + var spanIDBytes [8]byte + binary.BigEndian.PutUint64(spanIDBytes[:], spanId) + if err = tx.Put(kv.BorSpans, spanIDBytes[:], spanBytes); err != nil { + return 0, err + } + logger.Debug(fmt.Sprintf("[%s] Wrote span", logPrefix), "id", spanId) + return spanId, nil +} + +func loadSnapshot(blockNum uint64, hash libcommon.Hash, config *chain.BorConfig, recents *lru.ARCCache[libcommon.Hash, *bor.Snapshot], + signatures *lru.ARCCache[libcommon.Hash, libcommon.Address], + snapDb kv.RwDB, + logger log.Logger) *bor.Snapshot { + + if s, ok := recents.Get(hash); ok { + return s + } + + if blockNum%snapshotPersistInterval == 0 { + if s, err := bor.LoadSnapshot(config, signatures, snapDb, hash); err == nil { + logger.Trace("Loaded snapshot from disk", "number", blockNum, "hash", hash) + return s + } + } + + return nil +} + +func persistValidatorSets( + ctx context.Context, + snap *bor.Snapshot, + u Unwinder, + tx kv.Tx, + blockReader services.FullBlockReader, + config *chain.BorConfig, + chain consensus.ChainHeaderReader, + blockNum uint64, + hash libcommon.Hash, + recents *lru.ARCCache[libcommon.Hash, *bor.Snapshot], + signatures *lru.ARCCache[libcommon.Hash, libcommon.Address], + snapDb kv.RwDB, + logger log.Logger, + logPrefix string) error { + + logEvery := time.NewTicker(logInterval) + defer logEvery.Stop() + // Search for a snapshot in memory or on disk for checkpoints + + headers := make([]*types.Header, 0, 16) + var parent *types.Header + + if s, ok := recents.Get(hash); ok { + snap = s + } + + //nolint:govet + for snap == nil { + // If an on-disk snapshot can be found, use that + if blockNum%snapshotPersistInterval == 0 { + if s, err := bor.LoadSnapshot(config, signatures, snapDb, hash); err == nil { + logger.Trace("Loaded snapshot from disk", "number", blockNum, "hash", hash) + + snap = s + + break + } + } + + // No snapshot for this header, gather the header and move backward + var header *types.Header + // No explicit parents (or no more left), reach out to the database + if parent != nil { + header = parent + } else if chain != nil { + header = chain.GetHeader(hash, blockNum) + //logger.Info(fmt.Sprintf("header %d %x => %+v\n", header.Number.Uint64(), header.Hash(), header)) + } + + if header == nil { + return consensus.ErrUnknownAncestor + } + + if blockNum == 0 { + break + } + + headers = append(headers, header) + blockNum, hash = blockNum-1, header.ParentHash + if chain != nil { + parent = chain.GetHeader(hash, blockNum) + } + + // If an in-memory snapshot was found, use that + if s, ok := recents.Get(hash); ok { + snap = s + break + } + + select { + case <-logEvery.C: + logger.Info(fmt.Sprintf("[%s] Gathering headers for validator proposer prorities (backwards)", logPrefix), "blockNum", blockNum) + default: + } + } + + // check if snapshot is nil + if snap == nil { + return fmt.Errorf("unknown error while retrieving snapshot at block number %v", blockNum) + } + + // Previous snapshot found, apply any pending headers on top of it + for i := 0; i < len(headers)/2; i++ { + headers[i], headers[len(headers)-1-i] = headers[len(headers)-1-i], headers[i] + } + + if len(headers) > 0 { + var err error + if snap, err = snap.Apply(parent, headers, logger); err != nil { + if snap != nil { + var badHash common.Hash + for _, header := range headers { + if header.Number.Uint64() == snap.Number+1 { + badHash = header.Hash() + break + } + } + u.UnwindTo(snap.Number, BadBlock(badHash, err)) + } else { + return fmt.Errorf("snap.Apply %d, headers %d-%d: %w", blockNum, headers[0].Number.Uint64(), headers[len(headers)-1].Number.Uint64(), err) + } + } + } + + recents.Add(snap.Hash, snap) + + // If we've generated a new persistent snapshot, save to disk + if snap.Number%snapshotPersistInterval == 0 && len(headers) > 0 { + if err := snap.Store(snapDb); err != nil { + return fmt.Errorf("snap.Store: %w", err) + } + + logger.Debug(fmt.Sprintf("[%s] Stored proposer snapshot to disk", logPrefix), "number", snap.Number, "hash", snap.Hash) + } + + return nil +} + +func initValidatorSets( + ctx context.Context, + tx kv.Tx, + blockReader services.FullBlockReader, + config *chain.BorConfig, + chain consensus.ChainHeaderReader, + blockNum uint64, + recents *lru.ARCCache[libcommon.Hash, *bor.Snapshot], + signatures *lru.ARCCache[libcommon.Hash, libcommon.Address], + snapDb kv.RwDB, + logger log.Logger, + logPrefix string) (*bor.Snapshot, error) { + + logEvery := time.NewTicker(logInterval) + defer logEvery.Stop() + + var snap *bor.Snapshot + + // Special handling of the headers in the snapshot + zeroHeader := chain.GetHeaderByNumber(0) + if zeroHeader != nil { + // get checkpoint data + hash := zeroHeader.Hash() + + if zeroSnap := loadSnapshot(0, hash, config, recents, signatures, snapDb, logger); zeroSnap != nil { + return nil, nil + } + + // get validators and current span + zeroSpanBytes, err := blockReader.Span(ctx, tx, 0) + if err != nil { + return nil, err + } + + if zeroSpanBytes == nil { + return nil, fmt.Errorf("zero span not found") + } + + var zeroSpan span.HeimdallSpan + if err = json.Unmarshal(zeroSpanBytes, &zeroSpan); err != nil { + return nil, err + } + + // new snap shot + snap = bor.NewSnapshot(config, signatures, 0, hash, zeroSpan.ValidatorSet.Validators, logger) + if err := snap.Store(snapDb); err != nil { + return nil, fmt.Errorf("snap.Store (0): %w", err) + } + logger.Debug(fmt.Sprintf("[%s] Stored proposer snapshot to disk", logPrefix), "number", 0, "hash", hash) + g := errgroup.Group{} + g.SetLimit(estimate.AlmostAllCPUs()) + defer g.Wait() + + batchSize := 128 // must be < inmemorySignatures + initialHeaders := make([]*types.Header, 0, batchSize) + parentHeader := zeroHeader + for i := uint64(1); i <= blockNum; i++ { + header := chain.GetHeaderByNumber(i) + { + // `snap.apply` bottleneck - is recover of signer. + // to speedup: recover signer in background goroutines and save in `sigcache` + // `batchSize` < `inmemorySignatures`: means all current batch will fit in cache - and `snap.apply` will find it there. + g.Go(func() error { + if header == nil { + return nil + } + _, _ = bor.Ecrecover(header, signatures, config) + return nil + }) + } + if header == nil { + return nil, fmt.Errorf("missing header persisting validator sets: (inside loop at %d)", i) + } + initialHeaders = append(initialHeaders, header) + if len(initialHeaders) == cap(initialHeaders) { + if snap, err = snap.Apply(parentHeader, initialHeaders, logger); err != nil { + return nil, fmt.Errorf("snap.Apply (inside loop): %w", err) + } + parentHeader = initialHeaders[len(initialHeaders)-1] + initialHeaders = initialHeaders[:0] + } + select { + case <-logEvery.C: + logger.Info(fmt.Sprintf("[%s] Computing validator proposer prorities (forward)", logPrefix), "blockNum", i) + default: + } + } + if snap, err = snap.Apply(parentHeader, initialHeaders, logger); err != nil { + return nil, fmt.Errorf("snap.Apply (outside loop): %w", err) + } + } + + return snap, nil +} + +func BorHeimdallUnwind(u *UnwindState, ctx context.Context, s *StageState, tx kv.RwTx, cfg BorHeimdallCfg) (err error) { + if cfg.chainConfig.Bor == nil { + return + } + useExternalTx := tx != nil + if !useExternalTx { + tx, err = cfg.db.BeginRw(ctx) + if err != nil { + return err + } + defer tx.Rollback() + } + cursor, err := tx.RwCursor(kv.BorEventNums) + if err != nil { + return err + } + defer cursor.Close() + var blockNumBuf [8]byte + binary.BigEndian.PutUint64(blockNumBuf[:], u.UnwindPoint+1) + k, v, err := cursor.Seek(blockNumBuf[:]) + if err != nil { + return err + } + if k != nil { + // v is the encoding of the first eventId to be removed + eventCursor, err := tx.RwCursor(kv.BorEvents) + if err != nil { + return err + } + defer eventCursor.Close() + for v, _, err = eventCursor.Seek(v); err == nil && v != nil; v, _, err = eventCursor.Next() { + if err = eventCursor.DeleteCurrent(); err != nil { + return err + } + } + if err != nil { + return err + } + } + for ; err == nil && k != nil; k, _, err = cursor.Next() { + if err = cursor.DeleteCurrent(); err != nil { + return err + } + } + if err != nil { + return err + } + // Removing spans + spanCursor, err := tx.RwCursor(kv.BorSpans) + if err != nil { + return err + } + defer spanCursor.Close() + var lastSpanToKeep uint64 + if u.UnwindPoint > zerothSpanEnd { + lastSpanToKeep = 1 + (u.UnwindPoint-zerothSpanEnd-1)/spanLength + } + var spanIdBytes [8]byte + binary.BigEndian.PutUint64(spanIdBytes[:], lastSpanToKeep+1) + for k, _, err = spanCursor.Seek(spanIdBytes[:]); err == nil && k != nil; k, _, err = spanCursor.Next() { + if err = spanCursor.DeleteCurrent(); err != nil { + return err + } + } + + if err = u.Done(tx); err != nil { + return err + } + if !useExternalTx { + if err = tx.Commit(); err != nil { + return err + } + } + return +} + +func BorHeimdallPrune(s *PruneState, ctx context.Context, tx kv.RwTx, cfg BorHeimdallCfg) (err error) { + if cfg.chainConfig.Bor == nil { + return + } + return +} diff --git a/eth/stagedsync/stage_execute.go b/eth/stagedsync/stage_execute.go index ea4753a15a0..8a512eba3e2 100644 --- a/eth/stagedsync/stage_execute.go +++ b/eth/stagedsync/stage_execute.go @@ -10,6 +10,9 @@ import ( "time" "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/log/v3" + "golang.org/x/sync/errgroup" + "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/cmp" @@ -19,14 +22,13 @@ import ( "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" + "github.com/ledgerwatch/erigon-lib/kv/membatch" + "github.com/ledgerwatch/erigon-lib/kv/membatchwithdb" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" libstate "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/log/v3" - "golang.org/x/sync/errgroup" - "github.com/ledgerwatch/erigon/common/changeset" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core" @@ -40,15 +42,14 @@ import ( "github.com/ledgerwatch/erigon/eth/ethconfig/estimate" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" trace_logger "github.com/ledgerwatch/erigon/eth/tracers/logger" - "github.com/ledgerwatch/erigon/ethdb" - "github.com/ledgerwatch/erigon/ethdb/olddb" "github.com/ledgerwatch/erigon/ethdb/prune" "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/erigon/turbo/shards" + "github.com/ledgerwatch/erigon/turbo/silkworm" ) const ( - logInterval = 20 * time.Second + logInterval = 30 * time.Second // stateStreamLimit - don't accumulate state changes if jump is bigger than this amount of blocks stateStreamLimit uint64 = 1_000 @@ -84,6 +85,8 @@ type ExecuteBlockCfg struct { syncCfg ethconfig.Sync genesis *types.Genesis agg *libstate.AggregatorV3 + + silkworm *silkworm.Silkworm } func StageExecuteBlocksCfg( @@ -105,6 +108,7 @@ func StageExecuteBlocksCfg( genesis *types.Genesis, syncCfg ethconfig.Sync, agg *libstate.AggregatorV3, + silkworm *silkworm.Silkworm, ) ExecuteBlockCfg { if genesis == nil { panic("assert: nil genesis") @@ -127,13 +131,14 @@ func StageExecuteBlocksCfg( historyV3: historyV3, syncCfg: syncCfg, agg: agg, + silkworm: silkworm, } } func executeBlock( block *types.Block, tx kv.RwTx, - batch ethdb.Database, + batch kv.StatelessRwTx, cfg ExecuteBlockCfg, vmConfig vm.Config, // emit copy, because will modify it writeChangesets bool, @@ -168,9 +173,9 @@ func executeBlock( var execRs *core.EphemeralExecResult getHashFn := core.GetHashFn(block.Header(), getHeader) - execRs, err = core.ExecuteBlockEphemerally(cfg.chainConfig, &vmConfig, getHashFn, cfg.engine, block, stateReader, stateWriter, ChainReaderImpl{config: cfg.chainConfig, tx: tx, blockReader: cfg.blockReader}, getTracer, logger) + execRs, err = core.ExecuteBlockEphemerally(cfg.chainConfig, &vmConfig, getHashFn, cfg.engine, block, stateReader, stateWriter, NewChainReaderImpl(cfg.chainConfig, tx, cfg.blockReader, logger), getTracer, logger) if err != nil { - return err + return fmt.Errorf("%w: %v", consensus.ErrInvalidBlock, err) } receipts = execRs.Receipts stateSyncReceipt = execRs.StateSyncReceipt @@ -199,7 +204,7 @@ func executeBlock( } func newStateReaderWriter( - batch ethdb.Database, + batch kv.StatelessRwTx, tx kv.RwTx, block *types.Block, writeChangesets bool, @@ -408,12 +413,12 @@ func SpawnExecuteBlocksStage(s *StageState, u Unwinder, tx kv.RwTx, toBlock uint var stoppedErr error - var batch ethdb.DbWithPendingMutations + var batch kv.PendingMutations // state is stored through ethdb batches - batch = olddb.NewHashBatch(tx, quit, cfg.dirs.Tmp, logger) + batch = membatch.NewHashBatch(tx, quit, cfg.dirs.Tmp, logger) // avoids stacking defers within the loop defer func() { - batch.Rollback() + batch.Close() }() var readAhead chan uint64 @@ -457,17 +462,43 @@ Loop: writeChangeSets := nextStagesExpectData || blockNum > cfg.prune.History.PruneTo(to) writeReceipts := nextStagesExpectData || blockNum > cfg.prune.Receipts.PruneTo(to) writeCallTraces := nextStagesExpectData || blockNum > cfg.prune.CallTraces.PruneTo(to) - if err = executeBlock(block, tx, batch, cfg, *cfg.vmConfig, writeChangeSets, writeReceipts, writeCallTraces, initialCycle, stateStream, logger); err != nil { + + _, isMemoryMutation := tx.(*membatchwithdb.MemoryMutation) + if cfg.silkworm != nil && !isMemoryMutation { + blockNum, err = silkworm.ExecuteBlocks(cfg.silkworm, tx, cfg.chainConfig.ChainID, blockNum, to, uint64(cfg.batchSize), writeChangeSets, writeReceipts, writeCallTraces) + } else { + err = executeBlock(block, tx, batch, cfg, *cfg.vmConfig, writeChangeSets, writeReceipts, writeCallTraces, initialCycle, stateStream, logger) + } + + if err != nil { + if errors.Is(err, silkworm.ErrInterrupted) { + logger.Warn(fmt.Sprintf("[%s] Execution interrupted", logPrefix), "block", blockNum, "err", err) + // Remount the termination signal + p, err := os.FindProcess(os.Getpid()) + if err != nil { + return err + } + p.Signal(os.Interrupt) + return nil + } if !errors.Is(err, context.Canceled) { - logger.Warn(fmt.Sprintf("[%s] Execution failed", logPrefix), "block", blockNum, "hash", block.Hash().String(), "err", err) - if cfg.hd != nil { - cfg.hd.ReportBadHeaderPoS(blockHash, block.ParentHash()) + if cfg.silkworm != nil { + logger.Warn(fmt.Sprintf("[%s] Execution failed", logPrefix), "block", blockNum, "err", err) + } else { + logger.Warn(fmt.Sprintf("[%s] Execution failed", logPrefix), "block", blockNum, "hash", blockHash.String(), "err", err) + } + if cfg.hd != nil && errors.Is(err, consensus.ErrInvalidBlock) { + cfg.hd.ReportBadHeaderPoS(blockHash, block.ParentHash() /* lastValidAncestor */) } if cfg.badBlockHalt { return err } } - u.UnwindTo(blockNum-1, block.Hash()) + if errors.Is(err, consensus.ErrInvalidBlock) { + u.UnwindTo(blockNum-1, BadBlock(blockHash, err)) + } else { + u.UnwindTo(blockNum-1, ExecUnwind) + } break Loop } stageProgress = blockNum @@ -476,7 +507,7 @@ Loop: if shouldUpdateProgress { logger.Info("Committed State", "gas reached", currentStateGas, "gasTarget", gasState) currentStateGas = 0 - if err = batch.Commit(); err != nil { + if err = batch.Flush(ctx, tx); err != nil { return err } if err = s.Update(tx, stageProgress); err != nil { @@ -493,7 +524,7 @@ Loop: // TODO: This creates stacked up deferrals defer tx.Rollback() } - batch = olddb.NewHashBatch(tx, quit, cfg.dirs.Tmp, logger) + batch = membatch.NewHashBatch(tx, quit, cfg.dirs.Tmp, logger) } gas = gas + block.GasUsed() @@ -504,14 +535,14 @@ Loop: logBlock, logTx, logTime = logProgress(logPrefix, logBlock, logTime, blockNum, logTx, lastLogTx, gas, float64(currentStateGas)/float64(gasState), batch, logger) gas = 0 tx.CollectMetrics() - syncMetrics[stages.Execution].Set(blockNum) + syncMetrics[stages.Execution].SetUint64(blockNum) } } if err = s.Update(batch, stageProgress); err != nil { return err } - if err = batch.Commit(); err != nil { + if err = batch.Flush(ctx, tx); err != nil { return fmt.Errorf("batch commit: %w", err) } @@ -584,6 +615,8 @@ func blocksReadAheadFunc(ctx context.Context, tx kv.Tx, cfg *ExecuteBlockCfg, bl if block == nil { return nil } + _, _ = cfg.engine.Author(block.HeaderNoCopy()) // Bor consensus: this calc is heavy and has cache + senders := block.Body().SendersFromTxs() //TODO: BlockByNumber can return senders stateReader := state.NewPlainStateReader(tx) //TODO: can do on batch! if make batch thread-safe for _, sender := range senders { @@ -615,7 +648,7 @@ func blocksReadAheadFunc(ctx context.Context, tx kv.Tx, cfg *ExecuteBlockCfg, bl } func logProgress(logPrefix string, prevBlock uint64, prevTime time.Time, currentBlock uint64, prevTx, currentTx uint64, gas uint64, - gasState float64, batch ethdb.DbWithPendingMutations, logger log.Logger) (uint64, uint64, time.Time) { + gasState float64, batch kv.PendingMutations, logger log.Logger) (uint64, uint64, time.Time) { currentTime := time.Now() interval := currentTime.Sub(prevTime) speed := float64(currentBlock-prevBlock) / (float64(interval) / float64(time.Second)) @@ -756,7 +789,7 @@ func unwindExecutionStage(u *UnwindState, s *StageState, tx kv.RwTx, ctx context copy(address[:], k[:length.Addr]) incarnation = binary.BigEndian.Uint64(k[length.Addr:]) copy(location[:], k[length.Addr+length.Incarnation:]) - log.Debug(fmt.Sprintf("un ch st: %x, %d, %x, %x\n", address, incarnation, location, common.Copy(v))) + logger.Debug(fmt.Sprintf("un ch st: %x, %d, %x, %x\n", address, incarnation, location, common.Copy(v))) accumulator.ChangeStorage(address, incarnation, location, common.Copy(v)) } if len(v) > 0 { diff --git a/eth/stagedsync/stage_finish.go b/eth/stagedsync/stage_finish.go index 39bdd191cc1..9a96e47f0e0 100644 --- a/eth/stagedsync/stage_finish.go +++ b/eth/stagedsync/stage_finish.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -17,8 +18,6 @@ import ( "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/log/v3" - common2 "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/ethdb/cbor" @@ -161,7 +160,7 @@ func NotifyNewHeaders(ctx context.Context, finishStageBeforeSync uint64, finishS headerHash := libcommon.BytesToHash(k[8:]) if notifyToHash == headerHash { - headersRlp = append(headersRlp, common2.CopyBytes(headerRLP)) + headersRlp = append(headersRlp, libcommon.CopyBytes(headerRLP)) } return libcommon.Stopped(ctx.Done()) diff --git a/eth/stagedsync/stage_hashstate.go b/eth/stagedsync/stage_hashstate.go index 64231c2179c..823eee4b3d5 100644 --- a/eth/stagedsync/stage_hashstate.go +++ b/eth/stagedsync/stage_hashstate.go @@ -7,6 +7,7 @@ import ( "encoding/hex" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "runtime" "time" @@ -23,8 +24,6 @@ import ( "github.com/ledgerwatch/log/v3" "golang.org/x/sync/errgroup" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/eth/ethconfig/estimate" @@ -340,16 +339,16 @@ func transformPlainStateKey(key []byte) ([]byte, error) { switch len(key) { case length.Addr: // account - hash, err := common.HashData(key) + hash, err := libcommon.HashData(key) return hash[:], err case length.Addr + length.Incarnation + length.Hash: // storage - addrHash, err := common.HashData(key[:length.Addr]) + addrHash, err := libcommon.HashData(key[:length.Addr]) if err != nil { return nil, err } inc := binary.BigEndian.Uint64(key[length.Addr:]) - secKey, err := common.HashData(key[length.Addr+length.Incarnation:]) + secKey, err := libcommon.HashData(key[length.Addr+length.Incarnation:]) if err != nil { return nil, err } @@ -367,7 +366,7 @@ func transformContractCodeKey(key []byte) ([]byte, error) { } address, incarnation := dbutils.PlainParseStoragePrefix(key) - addrHash, err := common.HashData(address[:]) + addrHash, err := libcommon.HashData(address[:]) if err != nil { return nil, err } diff --git a/eth/stagedsync/stage_headers.go b/eth/stagedsync/stage_headers.go index 7ce8f34d462..6dc0a9a3b27 100644 --- a/eth/stagedsync/stage_headers.go +++ b/eth/stagedsync/stage_headers.go @@ -48,6 +48,8 @@ type HeadersCfg struct { blockWriter *blockio.BlockWriter forkValidator *engine_helpers.ForkValidator notifications *shards.Notifications + + loopBreakCheck func() bool } func StageHeadersCfg( @@ -64,7 +66,8 @@ func StageHeadersCfg( blockWriter *blockio.BlockWriter, tmpdir string, notifications *shards.Notifications, - forkValidator *engine_helpers.ForkValidator) HeadersCfg { + forkValidator *engine_helpers.ForkValidator, + loopBreakCheck func() bool) HeadersCfg { return HeadersCfg{ db: db, hd: headerDownload, @@ -80,6 +83,7 @@ func StageHeadersCfg( blockWriter: blockWriter, forkValidator: forkValidator, notifications: notifications, + loopBreakCheck: loopBreakCheck, } } @@ -90,7 +94,7 @@ func SpawnStageHeaders( tx kv.RwTx, cfg HeadersCfg, initialCycle bool, - test bool, // Set to true in tests, allows the stage to fail rather than wait indefinitely + test bool, // Returns true to allow the stage to stop rather than wait indefinitely logger log.Logger, ) error { useExternalTx := tx != nil @@ -120,7 +124,7 @@ func HeadersPOW( tx kv.RwTx, cfg HeadersCfg, initialCycle bool, - test bool, // Set to true in tests, allows the stage to fail rather than wait indefinitely + test bool, // Returns true to allow the stage to stop rather than wait indefinitely useExternalTx bool, logger log.Logger, ) error { @@ -200,6 +204,7 @@ Loop: if req != nil { peer, sentToPeer = cfg.headerReqSend(ctx, req) if sentToPeer { + logger.Debug(fmt.Sprintf("[%s] Requested header", logPrefix), "from", req.Number, "length", req.Length) cfg.hd.UpdateStats(req, false /* skeleton */, peer) cfg.hd.UpdateRetryTime(req, currentTime, 5*time.Second /* timeout */) } @@ -229,6 +234,7 @@ Loop: if req != nil { peer, sentToPeer = cfg.headerReqSend(ctx, req) if sentToPeer { + logger.Debug(fmt.Sprintf("[%s] Requested skeleton", logPrefix), "from", req.Number, "length", req.Length) cfg.hd.UpdateStats(req, true /* skeleton */, peer) lastSkeletonTime = time.Now() } @@ -240,13 +246,6 @@ Loop: return err } - if test { - announces := cfg.hd.GrabAnnounces() - if len(announces) > 0 { - cfg.announceNewHashes(ctx, announces) - } - } - if headerInserter.BestHeaderChanged() { // We do not break unless there best header changed noProgressCounter = 0 wasProgress = true @@ -255,17 +254,28 @@ Loop: break } } + + if cfg.loopBreakCheck != nil && cfg.loopBreakCheck() { + break + } + if test { + announces := cfg.hd.GrabAnnounces() + if len(announces) > 0 { + cfg.announceNewHashes(ctx, announces) + } + break } + timer := time.NewTimer(1 * time.Second) select { case <-ctx.Done(): stopped = true case <-logEvery.C: progress := cfg.hd.Progress() - logProgressHeaders(logPrefix, prevProgress, progress, logger) stats := cfg.hd.ExtractStats() + logProgressHeaders(logPrefix, prevProgress, progress, stats, logger) if prevProgress == progress { noProgressCounter++ } else { @@ -290,7 +300,7 @@ Loop: timer.Stop() } if headerInserter.Unwind() { - u.UnwindTo(headerInserter.UnwindPoint(), libcommon.Hash{}) + u.UnwindTo(headerInserter.UnwindPoint(), StagedUnwind) } if headerInserter.GetHighest() != 0 { if !headerInserter.Unwind() { @@ -366,9 +376,14 @@ func HeadersUnwind(u *UnwindState, s *StageState, tx kv.RwTx, cfg HeadersCfg, te defer tx.Rollback() } // Delete canonical hashes that are being unwound - badBlock := u.BadBlock != (libcommon.Hash{}) - if badBlock { - cfg.hd.ReportBadHeader(u.BadBlock) + unwindBlock := (u.Reason.Block != nil) + if unwindBlock { + if u.Reason.IsBadBlock() { + cfg.hd.ReportBadHeader(*u.Reason.Block) + } + + cfg.hd.UnlinkHeader(*u.Reason.Block) + // Mark all descendants of bad block as bad too headerCursor, cErr := tx.Cursor(kv.Headers) if cErr != nil { @@ -389,10 +404,10 @@ func HeadersUnwind(u *UnwindState, s *StageState, tx kv.RwTx, cfg HeadersCfg, te return fmt.Errorf("iterate over headers to mark bad headers: %w", err) } } - if err := rawdb.TruncateCanonicalHash(tx, u.UnwindPoint+1, badBlock); err != nil { + if err := rawdb.TruncateCanonicalHash(tx, u.UnwindPoint+1, unwindBlock); err != nil { return err } - if badBlock { + if unwindBlock { var maxTd big.Int var maxHash libcommon.Hash var maxNum uint64 = 0 @@ -461,32 +476,45 @@ func HeadersUnwind(u *UnwindState, s *StageState, tx kv.RwTx, cfg HeadersCfg, te return nil } -func logProgressHeaders(logPrefix string, prev, now uint64, logger log.Logger) uint64 { +func logProgressHeaders( + logPrefix string, + prev uint64, + now uint64, + stats headerdownload.Stats, + logger log.Logger, +) uint64 { speed := float64(now-prev) / float64(logInterval/time.Second) + + var message string if speed == 0 { - logger.Info(fmt.Sprintf("[%s] No block headers to write in this log period", logPrefix), "block number", now) - return now + message = "No block headers to write in this log period" + } else { + message = "Wrote block headers" } var m runtime.MemStats dbg.ReadMemStats(&m) - logger.Info(fmt.Sprintf("[%s] Wrote block headers", logPrefix), + logger.Info(fmt.Sprintf("[%s] %s", logPrefix, message), "number", now, "blk/second", speed, "alloc", libcommon.ByteCount(m.Alloc), - "sys", libcommon.ByteCount(m.Sys)) + "sys", libcommon.ByteCount(m.Sys), + "invalidHeaders", stats.InvalidHeaders, + "rejectedBadHeaders", stats.RejectedBadHeaders, + ) return now } type ChainReaderImpl struct { config *chain.Config - tx kv.Getter + tx kv.Tx blockReader services.FullBlockReader + logger log.Logger } -func NewChainReaderImpl(config *chain.Config, tx kv.Getter, blockReader services.FullBlockReader) *ChainReaderImpl { - return &ChainReaderImpl{config, tx, blockReader} +func NewChainReaderImpl(config *chain.Config, tx kv.Tx, blockReader services.FullBlockReader, logger log.Logger) *ChainReaderImpl { + return &ChainReaderImpl{config, tx, blockReader, logger} } func (cr ChainReaderImpl) Config() *chain.Config { return cr.config } @@ -520,30 +548,33 @@ func (cr ChainReaderImpl) GetHeaderByHash(hash libcommon.Hash) *types.Header { func (cr ChainReaderImpl) GetTd(hash libcommon.Hash, number uint64) *big.Int { td, err := rawdb.ReadTd(cr.tx, hash, number) if err != nil { - log.Error("ReadTd failed", "err", err) + cr.logger.Error("ReadTd failed", "err", err) return nil } return td } - func (cr ChainReaderImpl) FrozenBlocks() uint64 { return cr.blockReader.FrozenBlocks() } - -func HeadersPrune(p *PruneState, tx kv.RwTx, cfg HeadersCfg, ctx context.Context) (err error) { - useExternalTx := tx != nil - if !useExternalTx { - tx, err = cfg.db.BeginRw(ctx) - if err != nil { - return err - } - defer tx.Rollback() +func (cr ChainReaderImpl) GetBlock(hash libcommon.Hash, number uint64) *types.Block { + panic("") +} +func (cr ChainReaderImpl) HasBlock(hash libcommon.Hash, number uint64) bool { + panic("") +} +func (cr ChainReaderImpl) BorEventsByBlock(hash libcommon.Hash, number uint64) []rlp.RawValue { + events, err := cr.blockReader.EventsByBlock(context.Background(), cr.tx, hash, number) + if err != nil { + cr.logger.Error("BorEventsByBlock failed", "err", err) + return nil } - - if !useExternalTx { - if err = tx.Commit(); err != nil { - return err - } + return events +} +func (cr ChainReaderImpl) BorSpan(spanId uint64) []byte { + span, err := cr.blockReader.Span(context.Background(), cr.tx, spanId) + if err != nil { + cr.logger.Error("BorSpan failed", "err", err) + return nil } - return nil + return span } diff --git a/eth/stagedsync/stage_indexes.go b/eth/stagedsync/stage_indexes.go index 383b01d61b9..8aeb4e6bcd4 100644 --- a/eth/stagedsync/stage_indexes.go +++ b/eth/stagedsync/stage_indexes.go @@ -7,6 +7,7 @@ import ( "encoding/hex" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "runtime" "time" @@ -24,7 +25,6 @@ import ( "golang.org/x/exp/slices" "github.com/ledgerwatch/erigon/common/changeset" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/ethdb" "github.com/ledgerwatch/erigon/ethdb/prune" ) diff --git a/eth/stagedsync/stage_indexes_test.go b/eth/stagedsync/stage_indexes_test.go index 2d9d8f847f5..dca9e0e989b 100644 --- a/eth/stagedsync/stage_indexes_test.go +++ b/eth/stagedsync/stage_indexes_test.go @@ -4,6 +4,8 @@ import ( "context" "encoding/binary" "fmt" + common2 "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "reflect" "sort" "strconv" @@ -21,7 +23,6 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/ethdb/prune" @@ -284,7 +285,7 @@ func generateAddrs(numOfAddrs int, isPlain bool) ([][]byte, error) { addrs[i] = addr.Bytes() continue } - hash, err := common.HashData(addr.Bytes()) + hash, err := common2.HashData(addr.Bytes()) if err != nil { return nil, err } diff --git a/eth/stagedsync/stage_interhashes.go b/eth/stagedsync/stage_interhashes.go index 32297d55912..92404c5a76d 100644 --- a/eth/stagedsync/stage_interhashes.go +++ b/eth/stagedsync/stage_interhashes.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/bits" "sync/atomic" @@ -20,9 +21,8 @@ import ( "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/math" + "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/services" @@ -126,7 +126,7 @@ func SpawnIntermediateHashesStage(s *StageState, u Unwinder, tx kv.RwTx, cfg Tri if cfg.checkRoot && root != expectedRootHash { logger.Error(fmt.Sprintf("[%s] Wrong trie root of block %d: %x, expected (from header): %x. Block hash: %x", logPrefix, to, root, expectedRootHash, headerHash)) if cfg.badBlockHalt { - return trie.EmptyRoot, fmt.Errorf("wrong trie root") + return trie.EmptyRoot, fmt.Errorf("%w: wrong trie root", consensus.ErrInvalidBlock) } if cfg.hd != nil { cfg.hd.ReportBadHeaderPoS(headerHash, syncHeadHeader.ParentHash) @@ -135,7 +135,7 @@ func SpawnIntermediateHashesStage(s *StageState, u Unwinder, tx kv.RwTx, cfg Tri if to > s.BlockNumber { unwindTo := (to + s.BlockNumber) / 2 // Binary search for the correct block, biased to the lower numbers logger.Warn("Unwinding due to incorrect root hash", "to", unwindTo) - u.UnwindTo(unwindTo, headerHash) + u.UnwindTo(unwindTo, BadBlock(headerHash, fmt.Errorf("Incorrect root hash"))) } } else if err = s.Update(tx, to); err != nil { return trie.EmptyRoot, err @@ -228,11 +228,11 @@ func (p *HashPromoter) PromoteOnHistoryV3(logPrefix string, from, to uint64, sto if err != nil { return err } - addrHash, err := common.HashData(k[:length.Addr]) + addrHash, err := libcommon.HashData(k[:length.Addr]) if err != nil { return err } - secKey, err := common.HashData(k[length.Addr:]) + secKey, err := libcommon.HashData(k[length.Addr:]) if err != nil { return err } @@ -346,7 +346,7 @@ func (p *HashPromoter) Promote(logPrefix string, from, to uint64, storage bool, } if !storage { // delete Intermediate hashes of deleted accounts - slices.SortFunc(deletedAccounts, func(a, b []byte) bool { return bytes.Compare(a, b) < 0 }) + slices.SortFunc(deletedAccounts, bytes.Compare) for _, k := range deletedAccounts { if err := p.tx.ForPrefix(kv.TrieOfStorage, k, func(k, v []byte) error { if err := p.tx.Delete(kv.TrieOfStorage, k); err != nil { @@ -444,7 +444,7 @@ func (p *HashPromoter) UnwindOnHistoryV3(logPrefix string, unwindFrom, unwindTo } // delete Intermediate hashes of deleted accounts - slices.SortFunc(deletedAccounts, func(a, b []byte) bool { return bytes.Compare(a, b) < 0 }) + slices.SortFunc(deletedAccounts, bytes.Compare) for _, k := range deletedAccounts { if err := p.tx.ForPrefix(kv.TrieOfStorage, k, func(k, v []byte) error { if err := p.tx.Delete(kv.TrieOfStorage, k); err != nil { @@ -532,7 +532,7 @@ func (p *HashPromoter) Unwind(logPrefix string, s *StageState, u *UnwindState, s } if !storage { // delete Intermediate hashes of deleted accounts - slices.SortFunc(deletedAccounts, func(a, b []byte) bool { return bytes.Compare(a, b) < 0 }) + slices.SortFunc(deletedAccounts, bytes.Compare) for _, k := range deletedAccounts { if err := p.tx.ForPrefix(kv.TrieOfStorage, k, func(k, v []byte) error { if err := p.tx.Delete(kv.TrieOfStorage, k); err != nil { diff --git a/eth/stagedsync/stage_interhashes_test.go b/eth/stagedsync/stage_interhashes_test.go index 4eb31cad287..3bf6c7faac3 100644 --- a/eth/stagedsync/stage_interhashes_test.go +++ b/eth/stagedsync/stage_interhashes_test.go @@ -3,6 +3,7 @@ package stagedsync_test import ( "context" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "testing" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -15,7 +16,6 @@ import ( "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/turbo/trie" @@ -80,7 +80,7 @@ func TestAccountAndStorageTrie(t *testing.T) { // ---------------------------------------------------------------- historyV3 := false - blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) + blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New()), freezeblocks.NewBorRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) cfg := stagedsync.StageTrieCfg(db, false, true, false, t.TempDir(), blockReader, nil, historyV3, nil) _, err := stagedsync.RegenerateIntermediateHashes("IH", tx, cfg, libcommon.Hash{} /* expectedRootHash */, ctx, log.New()) assert.Nil(t, err) @@ -91,7 +91,7 @@ func TestAccountAndStorageTrie(t *testing.T) { accountTrieA := make(map[string][]byte) err = tx.ForEach(kv.TrieOfAccounts, nil, func(k, v []byte) error { - accountTrieA[string(k)] = common.CopyBytes(v) + accountTrieA[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -118,7 +118,7 @@ func TestAccountAndStorageTrie(t *testing.T) { storageTrie := make(map[string][]byte) err = tx.ForEach(kv.TrieOfStorage, nil, func(k, v []byte) error { - storageTrie[string(k)] = common.CopyBytes(v) + storageTrie[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -141,7 +141,7 @@ func TestAccountAndStorageTrie(t *testing.T) { // ---------------------------------------------------------------- newAddress := libcommon.HexToAddress("0x4f61f2d5ebd991b85aa1677db97307caf5215c91") - hash4b, err := common.HashData(newAddress[:]) + hash4b, err := libcommon.HashData(newAddress[:]) assert.Nil(t, err) assert.Equal(t, hash4a[0], hash4b[0]) @@ -157,7 +157,7 @@ func TestAccountAndStorageTrie(t *testing.T) { accountTrieB := make(map[string][]byte) err = tx.ForEach(kv.TrieOfAccounts, nil, func(k, v []byte) error { - accountTrieB[string(k)] = common.CopyBytes(v) + accountTrieB[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -202,7 +202,7 @@ func TestAccountTrieAroundExtensionNode(t *testing.T) { hash6 := libcommon.HexToHash("0x3100000000000000000000000000000000000000000000000000000000000000") assert.Nil(t, tx.Put(kv.HashedAccounts, hash6[:], encoded)) - blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) + blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New()), freezeblocks.NewBorRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) _, err := stagedsync.RegenerateIntermediateHashes("IH", tx, stagedsync.StageTrieCfg(db, false, true, false, t.TempDir(), blockReader, nil, historyV3, nil), libcommon.Hash{} /* expectedRootHash */, ctx, log.New()) assert.Nil(t, err) @@ -235,21 +235,21 @@ func TestStorageDeletion(t *testing.T) { ctx := context.Background() address := libcommon.HexToAddress("0x1000000000000000000000000000000000000000") - hashedAddress, err := common.HashData(address[:]) + hashedAddress, err := libcommon.HashData(address[:]) assert.Nil(t, err) incarnation := uint64(1) assert.Nil(t, addTestAccount(tx, hashedAddress, params.Ether, incarnation)) plainLocation1 := libcommon.HexToHash("0x1000000000000000000000000000000000000000000000000000000000000000") - hashedLocation1, err := common.HashData(plainLocation1[:]) + hashedLocation1, err := libcommon.HashData(plainLocation1[:]) assert.Nil(t, err) plainLocation2 := libcommon.HexToHash("0x1A00000000000000000000000000000000000000000000000000000000000000") - hashedLocation2, err := common.HashData(plainLocation2[:]) + hashedLocation2, err := libcommon.HashData(plainLocation2[:]) assert.Nil(t, err) plainLocation3 := libcommon.HexToHash("0x1E00000000000000000000000000000000000000000000000000000000000000") - hashedLocation3, err := common.HashData(plainLocation3[:]) + hashedLocation3, err := libcommon.HashData(plainLocation3[:]) assert.Nil(t, err) value1 := common.FromHex("0xABCD") @@ -265,7 +265,7 @@ func TestStorageDeletion(t *testing.T) { // Populate account & storage trie DB tables // ---------------------------------------------------------------- historyV3 := false - blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) + blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New()), freezeblocks.NewBorRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) cfg := stagedsync.StageTrieCfg(db, false, true, false, t.TempDir(), blockReader, nil, historyV3, nil) _, err = stagedsync.RegenerateIntermediateHashes("IH", tx, cfg, libcommon.Hash{} /* expectedRootHash */, ctx, log.New()) assert.Nil(t, err) @@ -276,7 +276,7 @@ func TestStorageDeletion(t *testing.T) { storageTrieA := make(map[string][]byte) err = tx.ForEach(kv.TrieOfStorage, nil, func(k, v []byte) error { - storageTrieA[string(k)] = common.CopyBytes(v) + storageTrieA[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -307,7 +307,7 @@ func TestStorageDeletion(t *testing.T) { storageTrieB := make(map[string][]byte) err = tx.ForEach(kv.TrieOfStorage, nil, func(k, v []byte) error { - storageTrieB[string(k)] = common.CopyBytes(v) + storageTrieB[string(k)] = libcommon.CopyBytes(v) return nil }) assert.Nil(t, err) @@ -319,72 +319,72 @@ func TestHiveTrieRoot(t *testing.T) { db, tx := memdb.NewTestTx(t) ctx := context.Background() - hashedAddress1, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000000")) + hashedAddress1, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000000")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress1[:], common.FromHex("02081bc5e32fd4403800"))) - hashedAddress2, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000314")) + hashedAddress2, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000314")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress2[:], common.FromHex("0c0101203e6de602146067c01322e2528a8f320c504fd3d19a4d6c4c53b54d2b2f9357ec"))) - hashedLocA, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000000")) + hashedLocA, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000000")) require.Nil(t, tx.Put(kv.HashedStorage, dbutils.GenerateCompositeStorageKey(hashedAddress2, 1, hashedLocA), common.FromHex("1234"))) - hashedLocB, _ := common.HashData(common.FromHex("6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9")) + hashedLocB, _ := libcommon.HashData(common.FromHex("6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9")) require.Nil(t, tx.Put(kv.HashedStorage, dbutils.GenerateCompositeStorageKey(hashedAddress2, 1, hashedLocB), common.FromHex("01"))) - hashedAddress3, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000315")) + hashedAddress3, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000315")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress3[:], common.FromHex("0e100999999999999999999999999999999901012052de487a82a5e45f90f7fb0edf025b1d23f85c308ae7543736a91ac6295217f3"))) - hashedAddress4, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000316")) + hashedAddress4, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000316")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress4[:], common.FromHex("0c010120803ac275052ba5360d44e51a7d4a49ed9156c461a21119ff650506869827f2c8"))) - hashedLocC, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000001")) + hashedLocC, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000000000000000000000000000001")) require.Nil(t, tx.Put(kv.HashedStorage, dbutils.GenerateCompositeStorageKey(hashedAddress4, 1, hashedLocC), common.FromHex("030000"))) - hashedAddress5, _ := common.HashData(common.FromHex("0000000000000000000000000000000000000317")) + hashedAddress5, _ := libcommon.HashData(common.FromHex("0000000000000000000000000000000000000317")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress5[:], common.FromHex("0c010120247c40b032c36acb07ca105280db053d204d3133302420f403dfbb54f775d0e2"))) - hashedAddress6, _ := common.HashData(common.FromHex("0161e041aad467a890839d5b08b138c1e6373072")) + hashedAddress6, _ := libcommon.HashData(common.FromHex("0161e041aad467a890839d5b08b138c1e6373072")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress6[:], common.FromHex("020b0123450000000000000000"))) - hashedAddress7, _ := common.HashData(common.FromHex("6e53b788a8e675377c5f160e5c6cca6b46074af8")) + hashedAddress7, _ := libcommon.HashData(common.FromHex("6e53b788a8e675377c5f160e5c6cca6b46074af8")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress7[:], common.FromHex("02081bc16d674ec80000"))) - hashedAddress8, _ := common.HashData(common.FromHex("87da6a8c6e9eff15d703fc2773e32f6af8dbe301")) + hashedAddress8, _ := libcommon.HashData(common.FromHex("87da6a8c6e9eff15d703fc2773e32f6af8dbe301")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress8[:], common.FromHex("020b0123450000000000000000"))) - hashedAddress9, _ := common.HashData(common.FromHex("b97de4b8c857e4f6bc354f226dc3249aaee49209")) + hashedAddress9, _ := libcommon.HashData(common.FromHex("b97de4b8c857e4f6bc354f226dc3249aaee49209")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress9[:], common.FromHex("020b0123450000000000000000"))) - hashedAddress10, _ := common.HashData(common.FromHex("c5065c9eeebe6df2c2284d046bfc906501846c51")) + hashedAddress10, _ := libcommon.HashData(common.FromHex("c5065c9eeebe6df2c2284d046bfc906501846c51")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress10[:], common.FromHex("020b0123450000000000000000"))) - hashedAddress11, _ := common.HashData(common.FromHex("cf49fda3be353c69b41ed96333cd24302da4556f")) + hashedAddress11, _ := libcommon.HashData(common.FromHex("cf49fda3be353c69b41ed96333cd24302da4556f")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress11[:], common.FromHex("0301010b012344fffb67ea09bf8000"))) - hashedAddress12, _ := common.HashData(common.FromHex("e0840414c530d72e5c2f1fe64f6311cc3136cab1")) + hashedAddress12, _ := libcommon.HashData(common.FromHex("e0840414c530d72e5c2f1fe64f6311cc3136cab1")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress12[:], common.FromHex("02081bc16d674ec80000"))) - hashedAddress13, _ := common.HashData(common.FromHex("f8e0e7f6f1d0514ddfbc00bec204641f1f4d8cc8")) + hashedAddress13, _ := libcommon.HashData(common.FromHex("f8e0e7f6f1d0514ddfbc00bec204641f1f4d8cc8")) require.Nil(t, tx.Put(kv.HashedAccounts, hashedAddress13[:], common.FromHex("02081bc16d674ec80000"))) historyV3 := false - blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) + blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New()), freezeblocks.NewBorRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) cfg := stagedsync.StageTrieCfg(db, false, true, false, t.TempDir(), blockReader, nil, historyV3, nil) logger := log.New() _, err := stagedsync.RegenerateIntermediateHashes("IH", tx, cfg, libcommon.Hash{} /* expectedRootHash */, ctx, logger) @@ -392,7 +392,7 @@ func TestHiveTrieRoot(t *testing.T) { // Now add a new account newAddress := libcommon.HexToAddress("0xf76fefb6608ca3d826945a9571d1f8e53bb6f366") - newHash, err := common.HashData(newAddress[:]) + newHash, err := libcommon.HashData(newAddress[:]) require.Nil(t, err) require.Nil(t, tx.Put(kv.HashedAccounts, newHash[:], common.FromHex("02081bc16d674ec80000"))) diff --git a/eth/stagedsync/stage_log_index.go b/eth/stagedsync/stage_log_index.go index 0f10c1b576b..1c7e3f01208 100644 --- a/eth/stagedsync/stage_log_index.go +++ b/eth/stagedsync/stage_log_index.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "runtime" "time" @@ -19,7 +20,6 @@ import ( "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/ethdb/cbor" "github.com/ledgerwatch/erigon/ethdb/prune" diff --git a/eth/stagedsync/stage_mining_create_block.go b/eth/stagedsync/stage_mining_create_block.go index 75247d42510..5016d4afa02 100644 --- a/eth/stagedsync/stage_mining_create_block.go +++ b/eth/stagedsync/stage_mining_create_block.go @@ -7,7 +7,7 @@ import ( "math/big" "time" - mapset "github.com/deckarep/golang-set" + mapset "github.com/deckarep/golang-set/v2" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/turbo/services" @@ -159,15 +159,15 @@ func SpawnMiningCreateBlockStage(s *StageState, tx kv.RwTx, cfg MiningCreateBloc type envT struct { signer *types.Signer - ancestors mapset.Set // ancestor set (used for checking uncle parent validity) - family mapset.Set // family set (used for checking uncle invalidity) - uncles mapset.Set // uncle set + ancestors mapset.Set[libcommon.Hash] // ancestor set (used for checking uncle parent validity) + family mapset.Set[libcommon.Hash] // family set (used for checking uncle invalidity) + uncles mapset.Set[libcommon.Hash] // uncle set } env := &envT{ signer: types.MakeSigner(&cfg.chainConfig, blockNum, timestamp), - ancestors: mapset.NewSet(), - family: mapset.NewSet(), - uncles: mapset.NewSet(), + ancestors: mapset.NewSet[libcommon.Hash](), + family: mapset.NewSet[libcommon.Hash](), + uncles: mapset.NewSet[libcommon.Hash](), } header := core.MakeEmptyHeader(parent, &cfg.chainConfig, timestamp, &cfg.miner.MiningConfig.GasLimit) @@ -211,14 +211,9 @@ func SpawnMiningCreateBlockStage(s *StageState, tx kv.RwTx, cfg MiningCreateBloc } // analog of miner.Worker.updateSnapshot - var makeUncles = func(proposedUncles mapset.Set) []*types.Header { + var makeUncles = func(proposedUncles mapset.Set[libcommon.Hash]) []*types.Header { var uncles []*types.Header - proposedUncles.Each(func(item interface{}) bool { - hash, ok := item.(libcommon.Hash) - if !ok { - return false - } - + proposedUncles.Each(func(hash libcommon.Hash) bool { uncle, exist := localUncles[hash] if !exist { uncle, exist = remoteUncles[hash] diff --git a/eth/stagedsync/stage_mining_exec.go b/eth/stagedsync/stage_mining_exec.go index cfcba196c32..d2ad47f6fb0 100644 --- a/eth/stagedsync/stage_mining_exec.go +++ b/eth/stagedsync/stage_mining_exec.go @@ -10,22 +10,19 @@ import ( mapset "github.com/deckarep/golang-set/v2" "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/kv/membatch" "github.com/ledgerwatch/log/v3" "golang.org/x/net/context" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/fixedgas" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon-lib/kv/memdb" types2 "github.com/ledgerwatch/erigon-lib/types" "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/state" - "github.com/ledgerwatch/erigon/core/systemcontracts" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/core/vm" @@ -91,10 +88,9 @@ func SpawnMiningExecStage(s *StageState, tx kv.RwTx, cfg MiningExecCfg, quit <-c stateReader := state.NewPlainStateReader(tx) ibs := state.New(stateReader) stateWriter := state.NewPlainStateWriter(tx, tx, current.Header.Number.Uint64()) - if cfg.chainConfig.DAOForkBlock != nil && cfg.chainConfig.DAOForkBlock.Cmp(current.Header.Number) == 0 { - misc.ApplyDAOHardFork(ibs) - } - systemcontracts.UpgradeBuildInSystemContract(&cfg.chainConfig, current.Header.Number, ibs, logger) + + chainReader := ChainReader{Cfg: cfg.chainConfig, Db: tx, BlockReader: cfg.blockReader} + core.InitializeBlockExecution(cfg.engine, chainReader, current.Header, &cfg.chainConfig, ibs, logger) // Create an empty block based on temporary copied state for // sealing in advance without waiting block execution finished. @@ -118,8 +114,11 @@ func SpawnMiningExecStage(s *StageState, tx kv.RwTx, cfg MiningExecCfg, quit <-c } else { yielded := mapset.NewSet[[32]byte]() - simulationTx := memdb.NewMemoryBatch(tx, cfg.tmpdir) - defer simulationTx.Rollback() + var simulationTx kv.StatelessRwTx + m := membatch.NewHashBatch(tx, quit, cfg.tmpdir, logger) + defer m.Close() + simulationTx = m + executionAt, err := s.ExecutionAt(tx) if err != nil { return err @@ -183,7 +182,7 @@ func getNextTransactions( header *types.Header, amount uint16, executionAt uint64, - simulationTx *memdb.MemoryMutation, + simulationTx kv.StatelessRwTx, alreadyYielded mapset.Set[[32]byte], logger log.Logger, ) (types.TransactionsStream, int, error) { @@ -193,11 +192,11 @@ func getNextTransactions( if err := cfg.txPool2DB.View(context.Background(), func(poolTx kv.Tx) error { var err error counter := 0 - for !onTime && counter < 1000 { + for !onTime && counter < 500 { remainingGas := header.GasLimit - header.GasUsed remainingBlobGas := uint64(0) if header.BlobGasUsed != nil { - remainingBlobGas = fixedgas.MaxBlobGasPerBlock - *header.BlobGasUsed + remainingBlobGas = cfg.chainConfig.GetMaxBlobGasPerBlock() - *header.BlobGasUsed } if onTime, count, err = cfg.txPool2.YieldBest(amount, &txSlots, poolTx, executionAt, remainingGas, remainingBlobGas, alreadyYielded); err != nil { return err @@ -240,7 +239,7 @@ func getNextTransactions( return types.NewTransactionsFixedOrder(txs), count, nil } -func filterBadTransactions(transactions []types.Transaction, config chain.Config, blockNumber uint64, baseFee *big.Int, simulationTx *memdb.MemoryMutation, logger log.Logger) ([]types.Transaction, error) { +func filterBadTransactions(transactions []types.Transaction, config chain.Config, blockNumber uint64, baseFee *big.Int, simulationTx kv.StatelessRwTx, logger log.Logger) ([]types.Transaction, error) { initialCnt := len(transactions) var filtered []types.Transaction gasBailout := false @@ -364,6 +363,9 @@ func addTransactionsToMiningBlock(logPrefix string, current *MiningBlock, chainC header := current.Header tcount := 0 gasPool := new(core.GasPool).AddGas(header.GasLimit - header.GasUsed) + if header.BlobGasUsed != nil { + gasPool.AddBlobGas(chainConfig.GetMaxBlobGasPerBlock() - *header.BlobGasUsed) + } signer := types.MakeSigner(&chainConfig, header.Number.Uint64(), header.Time) var coalescedLogs types.Logs diff --git a/eth/stagedsync/stage_mining_finish.go b/eth/stagedsync/stage_mining_finish.go index 7c3f0a02f63..16d90e00667 100644 --- a/eth/stagedsync/stage_mining_finish.go +++ b/eth/stagedsync/stage_mining_finish.go @@ -93,7 +93,7 @@ func SpawnMiningFinishStage(s *StageState, tx kv.RwTx, cfg MiningFinishCfg, quit select { case cfg.sealCancel <- struct{}{}: default: - logger.Trace("None in-flight sealing task.") + logger.Trace("No in-flight sealing task.") } chain := ChainReader{Cfg: cfg.chainConfig, Db: tx, BlockReader: cfg.blockReader} if err := cfg.engine.Seal(chain, block, cfg.miningState.MiningResultCh, cfg.sealCancel); err != nil { diff --git a/eth/stagedsync/stage_senders.go b/eth/stagedsync/stage_senders.go index 8bf8dba1af4..453562c4e20 100644 --- a/eth/stagedsync/stage_senders.go +++ b/eth/stagedsync/stage_senders.go @@ -9,6 +9,8 @@ import ( "sync" "time" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" + "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/cmp" @@ -16,11 +18,11 @@ import ( "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/secp256k1" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/common/debug" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" @@ -204,6 +206,15 @@ Loop: continue } + var header *types.Header + if header, err = cfg.blockReader.Header(ctx, tx, blockHash, blockNumber); err != nil { + return err + } + if header == nil { + logger.Warn(fmt.Sprintf("[%s] senders stage can't find header", logPrefix), "num", blockNumber, "hash", blockHash) + continue + } + var body *types.Body if body, err = cfg.blockReader.BodyWithTransactions(ctx, tx, blockHash, blockNumber); err != nil { return err @@ -222,7 +233,13 @@ Loop: } break Loop } - case jobs <- &senderRecoveryJob{body: body, key: k, blockNumber: blockNumber, blockHash: blockHash, index: int(blockNumber - s.BlockNumber - 1)}: + case jobs <- &senderRecoveryJob{ + body: body, + key: k, + blockNumber: blockNumber, + blockTime: header.Time, + blockHash: blockHash, + index: int(blockNumber - s.BlockNumber - 1)}: } } @@ -243,12 +260,12 @@ Loop: return minBlockErr } minHeader := rawdb.ReadHeader(tx, minBlockHash, minBlockNum) - if cfg.hd != nil { + if cfg.hd != nil && errors.Is(minBlockErr, consensus.ErrInvalidBlock) { cfg.hd.ReportBadHeaderPoS(minBlockHash, minHeader.ParentHash) } if to > s.BlockNumber { - u.UnwindTo(minBlockNum-1, minBlockHash) + u.UnwindTo(minBlockNum-1, BadBlock(minBlockHash, minBlockErr)) } } else { if err := collectorSenders.Load(tx, kv.Senders, etl.IdentityLoadFunc, etl.TransformArgs{ @@ -284,6 +301,7 @@ type senderRecoveryJob struct { senders []byte blockHash libcommon.Hash blockNumber uint64 + blockTime uint64 index int err error } @@ -307,13 +325,13 @@ func recoverSenders(ctx context.Context, logPrefix string, cryptoContext *secp25 } body := job.body - blockTime := uint64(0) // TODO(yperbasis) proper timestamp - signer := types.MakeSigner(config, job.blockNumber, blockTime) + signer := types.MakeSigner(config, job.blockNumber, job.blockTime) job.senders = make([]byte, len(body.Transactions)*length.Addr) for i, tx := range body.Transactions { from, err := signer.SenderWithContext(cryptoContext, tx) if err != nil { - job.err = fmt.Errorf("%s: error recovering sender for tx=%x, %w", logPrefix, tx.Hash(), err) + job.err = fmt.Errorf("%w: error recovering sender for tx=%x, %v", + consensus.ErrInvalidBlock, tx.Hash(), err) break } copy(job.senders[i*length.Addr:], from[:]) diff --git a/eth/stagedsync/stage_snapshots.go b/eth/stagedsync/stage_snapshots.go index 7d140b93f7c..3e1c03f3625 100644 --- a/eth/stagedsync/stage_snapshots.go +++ b/eth/stagedsync/stage_snapshots.go @@ -24,6 +24,7 @@ import ( "github.com/ledgerwatch/erigon/eth/ethconfig/estimate" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/erigon/turbo/silkworm" "github.com/ledgerwatch/erigon/turbo/snapshotsync" ) @@ -38,15 +39,22 @@ type SnapshotsCfg struct { dbEventNotifier services.DBEventNotifier historyV3 bool + caplin bool agg *state.AggregatorV3 + silkworm *silkworm.Silkworm } func StageSnapshotsCfg(db kv.RwDB, - chainConfig chain.Config, dirs datadir.Dirs, + chainConfig chain.Config, + dirs datadir.Dirs, blockRetire services.BlockRetire, snapshotDownloader proto_downloader.DownloaderClient, - blockReader services.FullBlockReader, dbEventNotifier services.DBEventNotifier, - historyV3 bool, agg *state.AggregatorV3, + blockReader services.FullBlockReader, + dbEventNotifier services.DBEventNotifier, + historyV3 bool, + agg *state.AggregatorV3, + caplin bool, + silkworm *silkworm.Silkworm, ) SnapshotsCfg { return SnapshotsCfg{ db: db, @@ -57,7 +65,9 @@ func StageSnapshotsCfg(db kv.RwDB, blockReader: blockReader, dbEventNotifier: dbEventNotifier, historyV3: historyV3, + caplin: caplin, agg: agg, + silkworm: silkworm, } } @@ -111,11 +121,20 @@ func DownloadAndIndexSnapshotsIfNeed(s *StageState, ctx context.Context, tx kv.R if !cfg.blockReader.FreezingCfg().Enabled { return nil } + cstate := snapshotsync.NoCaplin + if cfg.caplin { //TODO(Giulio2002): uncomment + cstate = snapshotsync.AlsoCaplin + } - if err := snapshotsync.WaitForDownloader(s.LogPrefix(), ctx, cfg.historyV3, cfg.agg, tx, cfg.blockReader, cfg.dbEventNotifier, &cfg.chainConfig, cfg.snapshotDownloader); err != nil { + if err := snapshotsync.WaitForDownloader(s.LogPrefix(), ctx, cfg.historyV3, cstate, cfg.agg, tx, cfg.blockReader, &cfg.chainConfig, cfg.snapshotDownloader); err != nil { return err } + // It's ok to notify before tx.Commit(), because RPCDaemon does read list of files by gRPC (not by reading from db) + if cfg.dbEventNotifier != nil { + cfg.dbEventNotifier.OnNewSnapshot() + } + cfg.blockReader.Snapshots().LogStat() cfg.agg.LogStats(tx, func(endTxNumMinimax uint64) uint64 { _, histBlockNumProgress, _ := rawdbv3.TxNums.FindBlockNum(tx, endTxNumMinimax) return histBlockNumProgress @@ -125,6 +144,12 @@ func DownloadAndIndexSnapshotsIfNeed(s *StageState, ctx context.Context, tx kv.R return err } + if cfg.silkworm != nil { + if err := cfg.blockReader.Snapshots().(silkworm.CanAddSnapshotsToSilkwarm).AddSnapshotsToSilkworm(cfg.silkworm); err != nil { + return err + } + } + if cfg.historyV3 { cfg.agg.CleanDir() @@ -287,7 +312,7 @@ func SnapshotsPrune(s *PruneState, initialCycle bool, cfg SnapshotsCfg, ctx cont freezingCfg := cfg.blockReader.FreezingCfg() if freezingCfg.Enabled { - if err := cfg.blockRetire.PruneAncientBlocks(tx, 100); err != nil { + if err := cfg.blockRetire.PruneAncientBlocks(tx, 100, cfg.chainConfig.Bor != nil); err != nil { return err } } @@ -299,13 +324,17 @@ func SnapshotsPrune(s *PruneState, initialCycle bool, cfg SnapshotsCfg, ctx cont } } - cfg.blockRetire.RetireBlocksInBackground(ctx, s.ForwardProgress, log.LvlDebug, func(downloadRequest []services.DownloadRequest) error { - if cfg.snapshotDownloader != nil && !reflect.ValueOf(cfg.snapshotDownloader).IsNil() { - if err := snapshotsync.RequestSnapshotsDownload(ctx, downloadRequest, cfg.snapshotDownloader); err != nil { - return err - } + cfg.blockRetire.RetireBlocksInBackground(ctx, s.ForwardProgress, cfg.chainConfig.Bor != nil, log.LvlInfo, func(downloadRequest []services.DownloadRequest) error { + if cfg.snapshotDownloader == nil || reflect.ValueOf(cfg.snapshotDownloader).IsNil() { + return nil } - return nil + return snapshotsync.RequestSnapshotsDownload(ctx, downloadRequest, cfg.snapshotDownloader) + }, func(l []string) error { + if cfg.snapshotDownloader == nil || reflect.ValueOf(cfg.snapshotDownloader).IsNil() { + return nil + } + _, err := cfg.snapshotDownloader.Delete(ctx, &proto_downloader.DeleteRequest{Paths: l}) + return err }) //cfg.agg.BuildFilesInBackground() } diff --git a/eth/stagedsync/stage_txlookup.go b/eth/stagedsync/stage_txlookup.go index 53f6fed30c0..3c0223e3393 100644 --- a/eth/stagedsync/stage_txlookup.go +++ b/eth/stagedsync/stage_txlookup.go @@ -121,8 +121,9 @@ func txnLookupTransform(logPrefix string, tx kv.RwTx, blockFrom, blockTo uint64, if err != nil { return err } - if body == nil { - return fmt.Errorf("transform: empty block body %d, hash %x", blocknum, v) + if body == nil { // tolerate such an error, because likely it's corner-case - and not critical one + log.Warn(fmt.Sprintf("[%s] transform: empty block body %d, hash %x", logPrefix, blocknum, v)) + return nil } blockNumBytes := bigNum.SetUint64(blocknum).Bytes() diff --git a/eth/stagedsync/stage_verkle_trie.go b/eth/stagedsync/stage_verkle_trie.go index c4df40efafe..1c29dc50578 100644 --- a/eth/stagedsync/stage_verkle_trie.go +++ b/eth/stagedsync/stage_verkle_trie.go @@ -32,11 +32,11 @@ func SpawnVerkleTrie(s *StageState, u Unwinder, tx kv.RwTx, cfg TrieCfg, ctx con return libcommon.Hash{}, err } verkleWriter := verkletrie.NewVerkleTreeWriter(tx, cfg.tmpDir, logger) - if err := verkletrie.IncrementAccount(tx, tx, 10, verkleWriter, from, to); err != nil { + if err := verkletrie.IncrementAccount(tx, tx, 10, verkleWriter, from, to, cfg.tmpDir); err != nil { return libcommon.Hash{}, err } var newRoot libcommon.Hash - if newRoot, err = verkletrie.IncrementStorage(tx, tx, 10, verkleWriter, from, to); err != nil { + if newRoot, err = verkletrie.IncrementStorage(tx, tx, 10, verkleWriter, from, to, cfg.tmpDir); err != nil { return libcommon.Hash{}, err } if cfg.checkRoot { @@ -72,10 +72,10 @@ func UnwindVerkleTrie(u *UnwindState, s *StageState, tx kv.RwTx, cfg TrieCfg, ct return err } verkleWriter := verkletrie.NewVerkleTreeWriter(tx, cfg.tmpDir, logger) - if err := verkletrie.IncrementAccount(tx, tx, 10, verkleWriter, from, to); err != nil { + if err := verkletrie.IncrementAccount(tx, tx, 10, verkleWriter, from, to, cfg.tmpDir); err != nil { return err } - if _, err = verkletrie.IncrementStorage(tx, tx, 10, verkleWriter, from, to); err != nil { + if _, err = verkletrie.IncrementStorage(tx, tx, 10, verkleWriter, from, to, cfg.tmpDir); err != nil { return err } if err := s.Update(tx, from); err != nil { diff --git a/eth/stagedsync/stagebuilder.go b/eth/stagedsync/stagebuilder.go index 3639c213e2e..05ed4183ca6 100644 --- a/eth/stagedsync/stagebuilder.go +++ b/eth/stagedsync/stagebuilder.go @@ -20,6 +20,7 @@ type ChainEventNotifier interface { func MiningStages( ctx context.Context, createBlockCfg MiningCreateBlockCfg, + borHeimdallCfg BorHeimdallCfg, execCfg MiningExecCfg, hashStateCfg HashStateCfg, trieCfg TrieCfg, @@ -35,10 +36,28 @@ func MiningStages( Unwind: func(firstCycle bool, u *UnwindState, s *StageState, tx kv.RwTx, logger log.Logger) error { return nil }, Prune: func(firstCycle bool, u *PruneState, tx kv.RwTx, logger log.Logger) error { return nil }, }, + { + ID: stages.BorHeimdall, + Description: "Download Bor-specific data from Heimdall", + Forward: func(firstCycle bool, badBlockUnwind bool, s *StageState, u Unwinder, tx kv.RwTx, logger log.Logger) error { + if badBlockUnwind { + return nil + } + return BorHeimdallForward(s, u, ctx, tx, borHeimdallCfg, true, logger) + }, + Unwind: func(firstCycle bool, u *UnwindState, s *StageState, tx kv.RwTx, logger log.Logger) error { + return BorHeimdallUnwind(u, ctx, s, tx, borHeimdallCfg) + }, + Prune: func(firstCycle bool, p *PruneState, tx kv.RwTx, logger log.Logger) error { + return BorHeimdallPrune(p, ctx, tx, borHeimdallCfg) + }, + }, { ID: stages.MiningExecution, - Description: "Mining: construct new block from tx pool", + Description: "Mining: execute new block from tx pool", Forward: func(firstCycle bool, badBlockUnwind bool, s *StageState, u Unwinder, tx kv.RwTx, logger log.Logger) error { + //fmt.Println("SpawnMiningExecStage") + //defer fmt.Println("SpawnMiningExecStage", "DONE") return SpawnMiningExecStage(s, tx, execCfg, ctx.Done(), logger) }, Unwind: func(firstCycle bool, u *UnwindState, s *StageState, tx kv.RwTx, logger log.Logger) error { return nil }, diff --git a/eth/stagedsync/stages/stages.go b/eth/stagedsync/stages/stages.go index 7009842c1eb..bf3c9fba6ae 100644 --- a/eth/stagedsync/stages/stages.go +++ b/eth/stagedsync/stages/stages.go @@ -31,6 +31,7 @@ type SyncStage string var ( Snapshots SyncStage = "Snapshots" // Snapshots Headers SyncStage = "Headers" // Headers are downloaded, their Proof-Of-Work validity and chaining is verified + BorHeimdall SyncStage = "BorHeimdall" // Downloading data from heimdall corresponding to the downloaded headers (validator sets and sync events) CumulativeIndex SyncStage = "CumulativeIndex" // Calculate how much gas has been used up to each block. BlockHashes SyncStage = "BlockHashes" // Headers Number are written, fills blockHash => number bucket Bodies SyncStage = "Bodies" // Block bodies are downloaded, TxHash and UncleHash are getting verified @@ -61,6 +62,7 @@ var ( var AllStages = []SyncStage{ Snapshots, Headers, + BorHeimdall, BlockHashes, Bodies, Senders, diff --git a/eth/stagedsync/sync.go b/eth/stagedsync/sync.go index f63f4ca0335..1112fad19bf 100644 --- a/eth/stagedsync/sync.go +++ b/eth/stagedsync/sync.go @@ -16,7 +16,7 @@ import ( type Sync struct { unwindPoint *uint64 // used to run stages prevUnwindPoint *uint64 // used to get value from outside of staged sync after cycle (for example to notify RPCDaemon) - badBlock libcommon.Hash + unwindReason UnwindReason stages []*Stage unwindOrder []*Stage @@ -38,7 +38,7 @@ func (s *Sync) Len() int { return len(s.stages) } func (s *Sync) PrevUnwindPoint() *uint64 { return s.prevUnwindPoint } func (s *Sync) NewUnwindState(id stages.SyncStage, unwindPoint, currentProgress uint64) *UnwindState { - return &UnwindState{id, unwindPoint, currentProgress, libcommon.Hash{}, s} + return &UnwindState{id, unwindPoint, currentProgress, UnwindReason{nil, nil}, s} } func (s *Sync) PruneStageState(id stages.SyncStage, forwardProgress uint64, tx kv.Tx, db kv.RwDB) (*PruneState, error) { @@ -106,10 +106,15 @@ func (s *Sync) IsAfter(stage1, stage2 stages.SyncStage) bool { return idx1 > idx2 } -func (s *Sync) UnwindTo(unwindPoint uint64, badBlock libcommon.Hash) { - s.logger.Debug("UnwindTo", "block", unwindPoint, "bad_block_hash", badBlock.String()) +func (s *Sync) UnwindTo(unwindPoint uint64, reason UnwindReason) { + if reason.Block != nil { + s.logger.Debug("UnwindTo", "block", unwindPoint, "block_hash", reason.Block.String(), "err", reason.Err) + } else { + s.logger.Debug("UnwindTo", "block", unwindPoint) + } + s.unwindPoint = &unwindPoint - s.badBlock = badBlock + s.unwindReason = reason } func (s *Sync) IsDone() bool { @@ -205,7 +210,7 @@ func (s *Sync) RunUnwind(db kv.RwDB, tx kv.RwTx) error { } s.prevUnwindPoint = s.unwindPoint s.unwindPoint = nil - s.badBlock = libcommon.Hash{} + s.unwindReason = UnwindReason{} if err := s.SetCurrentStage(s.stages[0].ID); err != nil { return err } @@ -229,10 +234,10 @@ func (s *Sync) RunNoInterrupt(db kv.RwDB, tx kv.RwTx, firstCycle bool) error { } s.prevUnwindPoint = s.unwindPoint s.unwindPoint = nil - if s.badBlock != (libcommon.Hash{}) { + if s.unwindReason.IsBadBlock() { badBlockUnwind = true } - s.badBlock = libcommon.Hash{} + s.unwindReason = UnwindReason{} if err := s.SetCurrentStage(s.stages[0].ID); err != nil { return err } @@ -292,10 +297,10 @@ func (s *Sync) Run(db kv.RwDB, tx kv.RwTx, firstCycle bool) error { } s.prevUnwindPoint = s.unwindPoint s.unwindPoint = nil - if s.badBlock != (libcommon.Hash{}) { + if s.unwindReason.IsBadBlock() { badBlockUnwind = true } - s.badBlock = libcommon.Hash{} + s.unwindReason = UnwindReason{} if err := s.SetCurrentStage(s.stages[0].ID); err != nil { return err } @@ -448,7 +453,7 @@ func (s *Sync) unwindStage(firstCycle bool, stage *Stage, db kv.RwDB, tx kv.RwTx } unwind := s.NewUnwindState(stage.ID, *s.unwindPoint, stageState.BlockNumber) - unwind.BadBlock = s.badBlock + unwind.Reason = s.unwindReason if stageState.BlockNumber <= unwind.UnwindPoint { return nil diff --git a/eth/stagedsync/sync_test.go b/eth/stagedsync/sync_test.go index bf731cd151b..8992c31c5a0 100644 --- a/eth/stagedsync/sync_test.go +++ b/eth/stagedsync/sync_test.go @@ -5,7 +5,6 @@ import ( "fmt" "testing" - libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/memdb" "github.com/ledgerwatch/log/v3" @@ -179,7 +178,7 @@ func TestUnwindSomeStagesBehindUnwindPoint(t *testing.T) { flow = append(flow, stages.Senders) if !unwound { unwound = true - u.UnwindTo(1500, libcommon.Hash{}) + u.UnwindTo(1500, UnwindReason{}) return nil } return nil @@ -272,7 +271,7 @@ func TestUnwind(t *testing.T) { flow = append(flow, stages.Senders) if !unwound { unwound = true - u.UnwindTo(500, libcommon.Hash{}) + u.UnwindTo(500, UnwindReason{}) return s.Update(tx, 3000) } return nil @@ -326,7 +325,7 @@ func TestUnwind(t *testing.T) { //check that at unwind disabled stage not appear flow = flow[:0] state.unwindOrder = []*Stage{s[3], s[2], s[1], s[0]} - state.UnwindTo(100, libcommon.Hash{}) + state.UnwindTo(100, UnwindReason{}) err = state.Run(db, tx, true /* initialCycle */) assert.NoError(t, err) @@ -376,7 +375,7 @@ func TestUnwindEmptyUnwinder(t *testing.T) { flow = append(flow, stages.Senders) if !unwound { unwound = true - u.UnwindTo(500, libcommon.Hash{}) + u.UnwindTo(500, UnwindReason{}) return s.Update(tx, 3000) } return nil @@ -564,7 +563,7 @@ func TestSyncInterruptLongUnwind(t *testing.T) { flow = append(flow, stages.Senders) if !unwound { unwound = true - u.UnwindTo(500, libcommon.Hash{}) + u.UnwindTo(500, UnwindReason{}) return s.Update(tx, 3000) } return nil diff --git a/eth/stagedsync/testutil.go b/eth/stagedsync/testutil.go index 28ce1bf2169..812eba9a508 100644 --- a/eth/stagedsync/testutil.go +++ b/eth/stagedsync/testutil.go @@ -9,7 +9,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" state2 "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/eth/ethconfig" @@ -167,7 +166,7 @@ func generateBlocks2(t *testing.T, from uint64, numberOfBlocks uint64, blockWrit if blockNumber == 1 || updateIncarnation || difficulty == changeCodeIndepenentlyOfIncarnations { if newAcc.Incarnation > 0 { code := []byte(fmt.Sprintf("acc-code-%v", blockNumber)) - codeHash, _ := common.HashData(code) + codeHash, _ := libcommon.HashData(code) if blockNumber >= from { if err := blockWriter.UpdateAccountCode(addr, newAcc.Incarnation, codeHash, code); err != nil { t.Fatal(err) @@ -238,7 +237,7 @@ func generateBlocks(t *testing.T, from uint64, numberOfBlocks uint64, stateWrite if blockNumber == 1 || updateIncarnation || difficulty == changeCodeIndepenentlyOfIncarnations { if newAcc.Incarnation > 0 { code := []byte(fmt.Sprintf("acc-code-%v", blockNumber)) - codeHash, _ := common.HashData(code) + codeHash, _ := libcommon.HashData(code) if blockNumber >= from { if err := blockWriter.UpdateAccountCode(addr, newAcc.Incarnation, codeHash, code); err != nil { t.Fatal(err) diff --git a/eth/tracers/api.go b/eth/tracers/api.go index d2464999248..c55055a0ed5 100644 --- a/eth/tracers/api.go +++ b/eth/tracers/api.go @@ -3,6 +3,7 @@ package tracers import ( "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon/eth/tracers/logger" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" ) @@ -19,4 +20,5 @@ type TraceConfig struct { BorTraceEnabled *bool BorTx *bool + TxIndex *hexutil.Uint } diff --git a/eth/tracers/internal/tracetest/calltrace_test.go b/eth/tracers/internal/tracetest/calltrace_test.go index 16aeca773cb..d24847d551b 100644 --- a/eth/tracers/internal/tracetest/calltrace_test.go +++ b/eth/tracers/internal/tracetest/calltrace_test.go @@ -25,13 +25,14 @@ import ( "testing" "github.com/holiman/uint256" + "github.com/stretchr/testify/require" + "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" @@ -39,13 +40,11 @@ import ( "github.com/ledgerwatch/erigon/core/vm/evmtypes" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/eth/tracers" + _ "github.com/ledgerwatch/erigon/eth/tracers/js" + _ "github.com/ledgerwatch/erigon/eth/tracers/native" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/tests" "github.com/ledgerwatch/erigon/turbo/stages/mock" - - // Force-load native and js packages, to trigger registration - _ "github.com/ledgerwatch/erigon/eth/tracers/js" - _ "github.com/ledgerwatch/erigon/eth/tracers/native" ) type callContext struct { @@ -58,6 +57,7 @@ type callContext struct { // callLog is the result of LOG opCode type callLog struct { + Index uint64 `json:"index"` Address libcommon.Address `json:"address"` Topics []libcommon.Hash `json:"topics"` Data hexutility.Bytes `json:"data"` @@ -357,7 +357,7 @@ func TestZeroValueToNotExitCall(t *testing.T) { if err != nil { t.Fatalf("failed to retrieve trace result: %v", err) } - wantStr := `{"from":"0x682a80a6f560eec50d54e63cbeda1c324c5f8d1b","gas":"0x7148","gasUsed":"0x54d8","to":"0x00000000000000000000000000000000deadbeef","input":"0x","calls":[{"from":"0x00000000000000000000000000000000deadbeef","gas":"0x6cbf","gasUsed":"0x0","to":"0x00000000000000000000000000000000000000ff","input":"0x","value":"0x0","type":"CALL"}],"value":"0x0","type":"CALL"}` + wantStr := `{"from":"0x682a80a6f560eec50d54e63cbeda1c324c5f8d1b","gas":"0xc350","gasUsed":"0x54d8","to":"0x00000000000000000000000000000000deadbeef","input":"0x","calls":[{"from":"0x00000000000000000000000000000000deadbeef","gas":"0x6cbf","gasUsed":"0x0","to":"0x00000000000000000000000000000000000000ff","input":"0x","value":"0x0","type":"CALL"}],"value":"0x0","type":"CALL"}` if string(res) != wantStr { t.Fatalf("trace mismatch\n have: %v\n want: %v\n", string(res), wantStr) } diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/create.json b/eth/tracers/internal/tracetest/testdata/call_tracer/create.json index 4e70c7eb728..6a5f2ab786a 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/create.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/create.json @@ -45,7 +45,7 @@ "input": "0xf907ef098504e3b29200830897be8080b9079c606060405260405160208061077c83398101604052808051906020019091905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561007d57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006101000a81548160ff02191690831515021790555050610653806101296000396000f300606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e4382a146100855780631c02708d146100ae5780632e1a7d4d146100c35780635114cb52146100e6578063a37dda2c146100fe578063ae200e7914610153578063b5769f70146101a8575b005b341561009057600080fd5b6100986101d1565b6040518082815260200191505060405180910390f35b34156100b957600080fd5b6100c16101d7565b005b34156100ce57600080fd5b6100e460048080359060200190919050506102eb565b005b6100fc6004808035906020019091905050610513565b005b341561010957600080fd5b6101116105d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561015e57600080fd5b6101666105fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b357600080fd5b6101bb610621565b6040518082815260200191505060405180910390f35b60025481565b60011515600460009054906101000a900460ff1615151415156101f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102a15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156102ac57600080fd5b6000600460006101000a81548160ff0219169083151502179055506003543073ffffffffffffffffffffffffffffffffffffffff163103600281905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103935750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561039e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561048357600060025411801561040757506002548111155b151561041257600080fd5b80600254036002819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561047e57600080fd5b610510565b600060035411801561049757506003548111155b15156104a257600080fd5b8060035403600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561050f57600080fd5b5b50565b60011515600460009054906101000a900460ff16151514151561053557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561059657506003548160035401115b80156105bd575080600354013073ffffffffffffffffffffffffffffffffffffffff163110155b15156105c857600080fd5b806003540160038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600354815600a165627a7a72305820c3b849e8440987ce43eae3097b77672a69234d516351368b03fe5b7de03807910029000000000000000000000000c65e620a3a55451316168d57e268f5702ef56a1129a01060f46676a5dff6f407f0f51eb6f37f5c8c54e238c70221e18e65fc29d3ea65a0557b01c50ff4ffaac8ed6e5d31237a4ecbac843ab1bfe8bb0165a0060df7c54f", "result": { "from": "0x13e4acefe6a6700604929946e70e6443e4e73447", - "gas": "0x5e106", + "gas": "0x897be", "gasUsed": "0x897be", "input": "0x606060405260405160208061077c83398101604052808051906020019091905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561007d57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006101000a81548160ff02191690831515021790555050610653806101296000396000f300606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e4382a146100855780631c02708d146100ae5780632e1a7d4d146100c35780635114cb52146100e6578063a37dda2c146100fe578063ae200e7914610153578063b5769f70146101a8575b005b341561009057600080fd5b6100986101d1565b6040518082815260200191505060405180910390f35b34156100b957600080fd5b6100c16101d7565b005b34156100ce57600080fd5b6100e460048080359060200190919050506102eb565b005b6100fc6004808035906020019091905050610513565b005b341561010957600080fd5b6101116105d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561015e57600080fd5b6101666105fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b357600080fd5b6101bb610621565b6040518082815260200191505060405180910390f35b60025481565b60011515600460009054906101000a900460ff1615151415156101f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102a15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156102ac57600080fd5b6000600460006101000a81548160ff0219169083151502179055506003543073ffffffffffffffffffffffffffffffffffffffff163103600281905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103935750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561039e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561048357600060025411801561040757506002548111155b151561041257600080fd5b80600254036002819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561047e57600080fd5b610510565b600060035411801561049757506003548111155b15156104a257600080fd5b8060035403600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561050f57600080fd5b5b50565b60011515600460009054906101000a900460ff16151514151561053557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561059657506003548160035401115b80156105bd575080600354013073ffffffffffffffffffffffffffffffffffffffff163110155b15156105c857600080fd5b806003540160038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600354815600a165627a7a72305820c3b849e8440987ce43eae3097b77672a69234d516351368b03fe5b7de03807910029000000000000000000000000c65e620a3a55451316168d57e268f5702ef56a11", "output": "0x606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e4382a146100855780631c02708d146100ae5780632e1a7d4d146100c35780635114cb52146100e6578063a37dda2c146100fe578063ae200e7914610153578063b5769f70146101a8575b005b341561009057600080fd5b6100986101d1565b6040518082815260200191505060405180910390f35b34156100b957600080fd5b6100c16101d7565b005b34156100ce57600080fd5b6100e460048080359060200190919050506102eb565b005b6100fc6004808035906020019091905050610513565b005b341561010957600080fd5b6101116105d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561015e57600080fd5b6101666105fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b357600080fd5b6101bb610621565b6040518082815260200191505060405180910390f35b60025481565b60011515600460009054906101000a900460ff1615151415156101f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102a15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156102ac57600080fd5b6000600460006101000a81548160ff0219169083151502179055506003543073ffffffffffffffffffffffffffffffffffffffff163103600281905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103935750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561039e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561048357600060025411801561040757506002548111155b151561041257600080fd5b80600254036002819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561047e57600080fd5b610510565b600060035411801561049757506003548111155b15156104a257600080fd5b8060035403600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561050f57600080fd5b5b50565b60011515600460009054906101000a900460ff16151514151561053557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561059657506003548160035401115b80156105bd575080600354013073ffffffffffffffffffffffffffffffffffffffff163110155b15156105c857600080fd5b806003540160038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600354815600a165627a7a72305820c3b849e8440987ce43eae3097b77672a69234d516351368b03fe5b7de03807910029", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/deep_calls.json b/eth/tracers/internal/tracetest/testdata/call_tracer/deep_calls.json index 5c7f20f38f4..ace05a6394e 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/deep_calls.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/deep_calls.json @@ -397,7 +397,7 @@ } ], "from": "0x70c9217d814985faef62b124420f8dfbddd96433", - "gas": "0x37b38", + "gas": "0x3d090", "gasUsed": "0x1810b", "input": "0x51a34eb80000000000000000000000000000000000000000000000280faf689c35ac0000", "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/delegatecall.json b/eth/tracers/internal/tracetest/testdata/call_tracer/delegatecall.json index a18518236de..9ba67a9bf46 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/delegatecall.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/delegatecall.json @@ -84,7 +84,7 @@ } ], "from": "0xa529806c67cc6486d4d62024471772f47f6fd672", - "gas": "0x2d6e28", + "gas": "0x2dc6c0", "gasUsed": "0xbd55", "input": "0x7065cb480000000000000000000000001523e55a1ca4efbae03355775ae89f8d7699ad9e", "to": "0x269296dddce321a6bcbaa2f0181127593d732cba", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_create_oog_outer_throw.json b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_create_oog_outer_throw.json index 8dd7e731cda..5c5d5a09195 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_create_oog_outer_throw.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_create_oog_outer_throw.json @@ -66,7 +66,7 @@ ], "error": "invalid jump destination", "from": "0xe4a13bc304682a903e9472f469c33801dd18d9e8", - "gas": "0x435c8", + "gas": "0x493e0", "gasUsed": "0x493e0", "input": "0x3b91f506000000000000000000000000a14bdd7e5666d784dcce98ad24d383a6b1cd4182000000000000000000000000e4a13bc304682a903e9472f469c33801dd18d9e8", "to": "0x1d3ddf7caf024f253487e18bc4a15b1a360c170a", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_instafail.json b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_instafail.json index da76d6ec62b..e3fd2ecc271 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_instafail.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_instafail.json @@ -52,7 +52,7 @@ "from": "0x66fdfd05e46126a07465ad24e40cc0597bc1ef31", "to": "0x6c06b16512b332e6cd8293a2974872674716ce18", "value": "0x0", - "gas": "0x1a466", + "gas": "0x1f97e", "gasUsed": "0x72de", "input": "0x2e1a7d4d00000000000000000000000000000000000000000000000014d1120d7b160000" } diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_revert_reason.json b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_revert_reason.json index 0bd36442c2f..28e47c1deca 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_revert_reason.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_revert_reason.json @@ -50,7 +50,7 @@ "result": { "from": "0x3623191d4ccfbbdf09e8ebf6382a1f8257417bc1", "to": "0x0000000000000000000000000000000000000000", - "gas": "0x2cd774", + "gas": "0x2dc6c0", "gasUsed": "0x25590", "input": "0x608060405234801561001057600080fd5b50600060405161001f906100a2565b604051809103906000f08015801561003b573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff1663c04062266040518163ffffffff1660e01b815260040160006040518083038186803b15801561008457600080fd5b505afa158015610098573d6000803e3d6000fd5b50505050506100af565b610145806100fc83390190565b603f806100bd6000396000f3fe6080604052600080fdfea264697066735822122077f7dbd3450d6e817079cf3fe27107de5768bb3163a402b94e2206b468eb025664736f6c63430008070033608060405234801561001057600080fd5b50610125806100206000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063c040622614602d575b600080fd5b60336035565b005b60036002116076576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401606d906097565b60405180910390fd5b565b6000608360128360b5565b9150608c8260c6565b602082019050919050565b6000602082019050818103600083015260ae816078565b9050919050565b600082825260208201905092915050565b7f546869732063616c6c6564206661696c6564000000000000000000000000000060008201525056fea264697066735822122033f8d92e29d467e5ea08d0024eab0b36b86b8cdb3542c6e89dbaabeb8ffaa42064736f6c63430008070033", "output": "0x08c379a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000012546869732063616c6c6564206661696c65640000000000000000000000000000", @@ -82,4 +82,4 @@ "value": "0x0", "type": "CREATE" } -} +} \ No newline at end of file diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_throw_outer_revert.json b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_throw_outer_revert.json index fb4d0f50dbf..27b7c67c65d 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/inner_throw_outer_revert.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/inner_throw_outer_revert.json @@ -69,7 +69,7 @@ ], "error": "execution reverted", "from": "0xd4fcab9f0a6dc0493af47c864f6f17a8a5e2e826", - "gas": "0x78d9e", + "gas": "0x7dfa6", "gasUsed": "0x7c1c8", "input": "0x", "to": "0x33056b5dcac09a9b4becad0e1dcf92c19bd0af76", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/oog.json b/eth/tracers/internal/tracetest/testdata/call_tracer/oog.json index 4a3876c4f9e..d1bcd59a8f3 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/oog.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/oog.json @@ -48,7 +48,7 @@ "result": { "error": "out of gas", "from": "0x94194bc2aaf494501d7880b61274a169f6502a54", - "gas": "0x7045", + "gas": "0xca1d", "gasUsed": "0xca1d", "input": "0xa9059cbb000000000000000000000000e77b1ac803616503510bed0086e3a7be2627a69900000000000000000000000000000000000000000000000000000009502f9000", "to": "0x43064693d3d38ad6a7cb579e0d6d9718c8aa6b62", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/revert.json b/eth/tracers/internal/tracetest/testdata/call_tracer/revert.json index 139edd8d521..04157940b08 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/revert.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/revert.json @@ -46,7 +46,7 @@ "result": { "error": "execution reverted", "from": "0x0f6cef2b7fbb504782e35aa82a2207e816a2b7a9", - "gas": "0x2d55e8", + "gas": "0x2dc6c0", "gasUsed": "0x719b", "input": "0x73b40a5c000000000000000000000000400de2e016bda6577407dfc379faba9899bc73ef0000000000000000000000002cc31912b2b0f3075a87b3640923d45a26cef3ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d79d8e6c7265636f76657279416464726573730000000000000000000000000000000000000000000000000000000000383e3ec32dc0f66d8fe60dbdc2f6815bdf73a988383e3ec32dc0f66d8fe60dbdc2f6815bdf73a98800000000000000000000000000000000000000000000000000000000000000000000000000000000", "to": "0xabbcd5b340c80b5f1c0545c04c987b87310296ae", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/revert_reason.json b/eth/tracers/internal/tracetest/testdata/call_tracer/revert_reason.json index 746facb36c3..f5c0ba18424 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/revert_reason.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/revert_reason.json @@ -27,7 +27,7 @@ "byzantiumBlock": 0, "constantinopleBlock": 0, "petersburgBlock": 0, - "IstanbulBlock":1561651, + "IstanbulBlock": 1561651, "chainId": 5, "eip150Block": 0, "eip155Block": 10, @@ -51,7 +51,7 @@ "result": { "error": "execution reverted", "from": "0xf7579c3d8a669c89d5ed246a22eb6db8f6fedbf1", - "gas": "0x2d7308", + "gas": "0x2dc6c0", "gasUsed": "0x5940", "input": "0x5c19a95c000000000000000000000000f7579c3d8a669c89d5ed246a22eb6db8f6fedbf1", "to": "0xf58833cf0c791881b494eb79d461e08a1f043f52", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/selfdestruct.json b/eth/tracers/internal/tracetest/testdata/call_tracer/selfdestruct.json index ede894c5f9f..c252becd4ed 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/selfdestruct.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/selfdestruct.json @@ -62,7 +62,7 @@ } ], "from": "0xb436ba50d378d4bbc8660d312a13df6af6e89dfb", - "gas": "0x10738", + "gas": "0x15f90", "gasUsed": "0x6fcb", "input": "0x63e4bff40000000000000000000000000024f658a46fbb89d8ac105e98d7ac7cbbaf27c5", "to": "0x3b873a919aa0512d5a0f09e6dcceaa4a6727fafe", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/simple.json b/eth/tracers/internal/tracetest/testdata/call_tracer/simple.json index b98ad9612c2..d82b252d6a4 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/simple.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/simple.json @@ -67,7 +67,7 @@ } ], "from": "0xb436ba50d378d4bbc8660d312a13df6af6e89dfb", - "gas": "0x10738", + "gas": "0x15f90", "gasUsed": "0x9751", "input": "0x63e4bff40000000000000000000000000024f658a46fbb89d8ac105e98d7ac7cbbaf27c5", "output": "0x0000000000000000000000000000000000000000000000000000000000000001", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/simple_onlytop.json b/eth/tracers/internal/tracetest/testdata/call_tracer/simple_onlytop.json index 81da7bf6b1b..9ee084825d7 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/simple_onlytop.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/simple_onlytop.json @@ -59,7 +59,7 @@ }, "result": { "from": "0xb436ba50d378d4bbc8660d312a13df6af6e89dfb", - "gas": "0x10738", + "gas": "0x15f90", "gasUsed": "0x9751", "input": "0x63e4bff40000000000000000000000000024f658a46fbb89d8ac105e98d7ac7cbbaf27c5", "output": "0x0000000000000000000000000000000000000000000000000000000000000001", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer/throw.json b/eth/tracers/internal/tracetest/testdata/call_tracer/throw.json index 4aeb475a253..94215de2163 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer/throw.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer/throw.json @@ -50,7 +50,7 @@ "result": { "error": "invalid jump destination", "from": "0x70c9217d814985faef62b124420f8dfbddd96433", - "gas": "0x37b38", + "gas": "0x3d090", "gasUsed": "0x3d090", "input": "0x51a34eb8000000000000000000000000000000000000000000000027fad02094277c0000", "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/create.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/create.json index 4e70c7eb728..6a5f2ab786a 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/create.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/create.json @@ -45,7 +45,7 @@ "input": "0xf907ef098504e3b29200830897be8080b9079c606060405260405160208061077c83398101604052808051906020019091905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561007d57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006101000a81548160ff02191690831515021790555050610653806101296000396000f300606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e4382a146100855780631c02708d146100ae5780632e1a7d4d146100c35780635114cb52146100e6578063a37dda2c146100fe578063ae200e7914610153578063b5769f70146101a8575b005b341561009057600080fd5b6100986101d1565b6040518082815260200191505060405180910390f35b34156100b957600080fd5b6100c16101d7565b005b34156100ce57600080fd5b6100e460048080359060200190919050506102eb565b005b6100fc6004808035906020019091905050610513565b005b341561010957600080fd5b6101116105d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561015e57600080fd5b6101666105fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b357600080fd5b6101bb610621565b6040518082815260200191505060405180910390f35b60025481565b60011515600460009054906101000a900460ff1615151415156101f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102a15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156102ac57600080fd5b6000600460006101000a81548160ff0219169083151502179055506003543073ffffffffffffffffffffffffffffffffffffffff163103600281905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103935750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561039e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561048357600060025411801561040757506002548111155b151561041257600080fd5b80600254036002819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561047e57600080fd5b610510565b600060035411801561049757506003548111155b15156104a257600080fd5b8060035403600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561050f57600080fd5b5b50565b60011515600460009054906101000a900460ff16151514151561053557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561059657506003548160035401115b80156105bd575080600354013073ffffffffffffffffffffffffffffffffffffffff163110155b15156105c857600080fd5b806003540160038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600354815600a165627a7a72305820c3b849e8440987ce43eae3097b77672a69234d516351368b03fe5b7de03807910029000000000000000000000000c65e620a3a55451316168d57e268f5702ef56a1129a01060f46676a5dff6f407f0f51eb6f37f5c8c54e238c70221e18e65fc29d3ea65a0557b01c50ff4ffaac8ed6e5d31237a4ecbac843ab1bfe8bb0165a0060df7c54f", "result": { "from": "0x13e4acefe6a6700604929946e70e6443e4e73447", - "gas": "0x5e106", + "gas": "0x897be", "gasUsed": "0x897be", "input": "0x606060405260405160208061077c83398101604052808051906020019091905050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561007d57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006101000a81548160ff02191690831515021790555050610653806101296000396000f300606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e4382a146100855780631c02708d146100ae5780632e1a7d4d146100c35780635114cb52146100e6578063a37dda2c146100fe578063ae200e7914610153578063b5769f70146101a8575b005b341561009057600080fd5b6100986101d1565b6040518082815260200191505060405180910390f35b34156100b957600080fd5b6100c16101d7565b005b34156100ce57600080fd5b6100e460048080359060200190919050506102eb565b005b6100fc6004808035906020019091905050610513565b005b341561010957600080fd5b6101116105d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561015e57600080fd5b6101666105fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b357600080fd5b6101bb610621565b6040518082815260200191505060405180910390f35b60025481565b60011515600460009054906101000a900460ff1615151415156101f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102a15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156102ac57600080fd5b6000600460006101000a81548160ff0219169083151502179055506003543073ffffffffffffffffffffffffffffffffffffffff163103600281905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103935750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561039e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561048357600060025411801561040757506002548111155b151561041257600080fd5b80600254036002819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561047e57600080fd5b610510565b600060035411801561049757506003548111155b15156104a257600080fd5b8060035403600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561050f57600080fd5b5b50565b60011515600460009054906101000a900460ff16151514151561053557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561059657506003548160035401115b80156105bd575080600354013073ffffffffffffffffffffffffffffffffffffffff163110155b15156105c857600080fd5b806003540160038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600354815600a165627a7a72305820c3b849e8440987ce43eae3097b77672a69234d516351368b03fe5b7de03807910029000000000000000000000000c65e620a3a55451316168d57e268f5702ef56a11", "output": "0x606060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305e4382a146100855780631c02708d146100ae5780632e1a7d4d146100c35780635114cb52146100e6578063a37dda2c146100fe578063ae200e7914610153578063b5769f70146101a8575b005b341561009057600080fd5b6100986101d1565b6040518082815260200191505060405180910390f35b34156100b957600080fd5b6100c16101d7565b005b34156100ce57600080fd5b6100e460048080359060200190919050506102eb565b005b6100fc6004808035906020019091905050610513565b005b341561010957600080fd5b6101116105d6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561015e57600080fd5b6101666105fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101b357600080fd5b6101bb610621565b6040518082815260200191505060405180910390f35b60025481565b60011515600460009054906101000a900460ff1615151415156101f957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102a15750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156102ac57600080fd5b6000600460006101000a81548160ff0219169083151502179055506003543073ffffffffffffffffffffffffffffffffffffffff163103600281905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103935750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561039e57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561048357600060025411801561040757506002548111155b151561041257600080fd5b80600254036002819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561047e57600080fd5b610510565b600060035411801561049757506003548111155b15156104a257600080fd5b8060035403600381905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561050f57600080fd5b5b50565b60011515600460009054906101000a900460ff16151514151561053557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561059657506003548160035401115b80156105bd575080600354013073ffffffffffffffffffffffffffffffffffffffff163110155b15156105c857600080fd5b806003540160038190555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600354815600a165627a7a72305820c3b849e8440987ce43eae3097b77672a69234d516351368b03fe5b7de03807910029", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/deep_calls.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/deep_calls.json index c3bf956b147..f01980efa33 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/deep_calls.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/deep_calls.json @@ -402,7 +402,7 @@ } ], "from": "0x70c9217d814985faef62b124420f8dfbddd96433", - "gas": "0x37b38", + "gas": "0x3d090", "gasUsed": "0x1810b", "input": "0x51a34eb80000000000000000000000000000000000000000000000280faf689c35ac0000", "output": "0x", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/delegatecall.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/delegatecall.json index bf8e5a8ef6f..8cdc722cbd7 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/delegatecall.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/delegatecall.json @@ -84,7 +84,7 @@ } ], "from": "0xa529806c67cc6486d4d62024471772f47f6fd672", - "gas": "0x2d6e28", + "gas": "0x2dc6c0", "gasUsed": "0xbd55", "input": "0x7065cb480000000000000000000000001523e55a1ca4efbae03355775ae89f8d7699ad9e", "output": "0x", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_create_oog_outer_throw.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_create_oog_outer_throw.json index 209603609bd..76c602cf0b8 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_create_oog_outer_throw.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_create_oog_outer_throw.json @@ -65,7 +65,7 @@ ], "error": "invalid jump destination", "from": "0xe4a13bc304682a903e9472f469c33801dd18d9e8", - "gas": "0x435c8", + "gas": "0x493e0", "gasUsed": "0x493e0", "input": "0x3b91f506000000000000000000000000a14bdd7e5666d784dcce98ad24d383a6b1cd4182000000000000000000000000e4a13bc304682a903e9472f469c33801dd18d9e8", "to": "0x1d3ddf7caf024f253487e18bc4a15b1a360c170a", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_instafail.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_instafail.json index b2a6742bf46..77c0b73ad1e 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_instafail.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_instafail.json @@ -52,7 +52,7 @@ "from": "0x66fdfd05e46126a07465ad24e40cc0597bc1ef31", "to": "0x6c06b16512b332e6cd8293a2974872674716ce18", "value": "0x0", - "gas": "0x1a466", + "gas": "0x1f97e", "gasUsed": "0x72de", "input": "0x2e1a7d4d00000000000000000000000000000000000000000000000014d1120d7b160000", "output": "0x", @@ -62,7 +62,7 @@ "from": "0x6c06b16512b332e6cd8293a2974872674716ce18", "to": "0x66fdfd05e46126a07465ad24e40cc0597bc1ef31", "value": "0x14d1120d7b160000", - "error":"internal failure", + "error": "internal failure", "input": "0x" } ] diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_throw_outer_revert.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_throw_outer_revert.json index fb4d0f50dbf..27b7c67c65d 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_throw_outer_revert.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/inner_throw_outer_revert.json @@ -69,7 +69,7 @@ ], "error": "execution reverted", "from": "0xd4fcab9f0a6dc0493af47c864f6f17a8a5e2e826", - "gas": "0x78d9e", + "gas": "0x7dfa6", "gasUsed": "0x7c1c8", "input": "0x", "to": "0x33056b5dcac09a9b4becad0e1dcf92c19bd0af76", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/oog.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/oog.json index 4a3876c4f9e..d1bcd59a8f3 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/oog.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/oog.json @@ -48,7 +48,7 @@ "result": { "error": "out of gas", "from": "0x94194bc2aaf494501d7880b61274a169f6502a54", - "gas": "0x7045", + "gas": "0xca1d", "gasUsed": "0xca1d", "input": "0xa9059cbb000000000000000000000000e77b1ac803616503510bed0086e3a7be2627a69900000000000000000000000000000000000000000000000000000009502f9000", "to": "0x43064693d3d38ad6a7cb579e0d6d9718c8aa6b62", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/revert.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/revert.json index 139edd8d521..04157940b08 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/revert.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/revert.json @@ -46,7 +46,7 @@ "result": { "error": "execution reverted", "from": "0x0f6cef2b7fbb504782e35aa82a2207e816a2b7a9", - "gas": "0x2d55e8", + "gas": "0x2dc6c0", "gasUsed": "0x719b", "input": "0x73b40a5c000000000000000000000000400de2e016bda6577407dfc379faba9899bc73ef0000000000000000000000002cc31912b2b0f3075a87b3640923d45a26cef3ee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000064d79d8e6c7265636f76657279416464726573730000000000000000000000000000000000000000000000000000000000383e3ec32dc0f66d8fe60dbdc2f6815bdf73a988383e3ec32dc0f66d8fe60dbdc2f6815bdf73a98800000000000000000000000000000000000000000000000000000000000000000000000000000000", "to": "0xabbcd5b340c80b5f1c0545c04c987b87310296ae", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/revert_reason.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/revert_reason.json index 716cf884e0a..000a33eb248 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/revert_reason.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/revert_reason.json @@ -51,7 +51,7 @@ "result": { "error": "execution reverted", "from": "0xf7579c3d8a669c89d5ed246a22eb6db8f6fedbf1", - "gas": "0x2d7308", + "gas": "0x2dc6c0", "gasUsed": "0x5940", "input": "0x5c19a95c000000000000000000000000f7579c3d8a669c89d5ed246a22eb6db8f6fedbf1", "to": "0xf58833cf0c791881b494eb79d461e08a1f043f52", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/selfdestruct.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/selfdestruct.json index 4f915919e85..a2c76847a80 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/selfdestruct.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/selfdestruct.json @@ -60,7 +60,7 @@ } ], "from": "0xb436ba50d378d4bbc8660d312a13df6af6e89dfb", - "gas": "0x10738", + "gas": "0x15f90", "gasUsed": "0x6fcb", "input": "0x63e4bff40000000000000000000000000024f658a46fbb89d8ac105e98d7ac7cbbaf27c5", "output": "0x", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/simple.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/simple.json index f279251f1e0..ac6f536cc0e 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/simple.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/simple.json @@ -65,7 +65,7 @@ } ], "from": "0xb436ba50d378d4bbc8660d312a13df6af6e89dfb", - "gas": "0x10738", + "gas": "0x15f90", "gasUsed": "0x9751", "input": "0x63e4bff40000000000000000000000000024f658a46fbb89d8ac105e98d7ac7cbbaf27c5", "output": "0x0000000000000000000000000000000000000000000000000000000000000001", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/throw.json b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/throw.json index 4aeb475a253..94215de2163 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/throw.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_legacy/throw.json @@ -50,7 +50,7 @@ "result": { "error": "invalid jump destination", "from": "0x70c9217d814985faef62b124420f8dfbddd96433", - "gas": "0x37b38", + "gas": "0x3d090", "gasUsed": "0x3d090", "input": "0x51a34eb8000000000000000000000000000000000000000000000027fad02094277c0000", "to": "0xc212e03b9e060e36facad5fd8f4435412ca22e6b", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/calldata.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/calldata.json index 4c473d3e145..b88d0ba85d7 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/calldata.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/calldata.json @@ -75,7 +75,7 @@ }, "result": { "from": "0x4f5777744b500616697cb655dcb02ee6cd51deb5", - "gas": "0x2dced", + "gas": "0x33085", "gasUsed": "0x1a9e5", "to": "0x200edd17f30485a8735878661960cd7a9a95733f", "input": "0xba51a6df0000000000000000000000000000000000000000000000000000000000000000", @@ -89,6 +89,7 @@ "input": "0xba51a6df0000000000000000000000000000000000000000000000000000000000000000", "logs": [ { + "index": 0, "address": "0x200edd17f30485a8735878661960cd7a9a95733f", "topics": [ "0xe1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda" @@ -96,6 +97,7 @@ "data": "0x0000000000000000000000004f5777744b500616697cb655dcb02ee6cd51deb5be96016bb57376da7a6d296e0a405ee1501778227dfa604df0a81cb1ae018598" }, { + "index": 1, "address": "0x200edd17f30485a8735878661960cd7a9a95733f", "topics": [ "0xacbdb084c721332ac59f9b8e392196c9eb0e4932862da8eb9beaf0dad4f550da" diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/delegatecall.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/delegatecall.json index 24cb088661e..bc13bc25068 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/delegatecall.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/delegatecall.json @@ -132,7 +132,7 @@ }, "result": { "from": "0x3de712784baf97260455ae25fb74f574ec9c1add", - "gas": "0x7e2c0", + "gas": "0x84398", "gasUsed": "0x27ec3", "to": "0x6ca7f214ab2ddbb9a8e1a1e2c8550e3164e9dba5", "input": "0xbbd4f854e9efd3ab89acad6a3edf9828c3b00ed1c4a74e974d05d32d3b2fb15aa16fc3770000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000000000000000000000000000080d29fa5cccfadac", @@ -242,6 +242,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 0, "address": "0x92f1dbea03ce08225e31e95cc926ddbe0198e6f2", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -263,6 +264,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 1, "address": "0x92f1dbea03ce08225e31e95cc926ddbe0198e6f2", "topics": [ "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", @@ -292,6 +294,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 2, "address": "0x92f1dbea03ce08225e31e95cc926ddbe0198e6f2", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -313,6 +316,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 3, "address": "0x92f1dbea03ce08225e31e95cc926ddbe0198e6f2", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -376,6 +380,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 4, "address": "0xf4cbd7e037b80c2e67b80512d482685f15b1fb28", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/multi_contracts.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/multi_contracts.json index 918ce56836c..e014a3f765e 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/multi_contracts.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/multi_contracts.json @@ -297,7 +297,7 @@ }, "result": { "from": "0xbe3ae5cb97c253dda67181c6e34e43f5c275e08b", - "gas": "0x3514c8", + "gas": "0x3567e0", "gasUsed": "0x26e1ef", "to": "0x03e3d4561a8f8e975fdcd798d32857a20cf25e7e", "input": "0xbe9a6555", @@ -349,6 +349,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 0, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -364,6 +365,7 @@ ], "logs": [ { + "index": 1, "address": "0xc0ee9db1a9e07ca63e4ff0d5fb6f86bf68d47b89", "topics": [ "0x69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2" @@ -483,6 +485,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 2, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -498,6 +501,7 @@ ], "logs": [ { + "index": 3, "address": "0xf835a0247b0063c04ef22006ebe57c5f11977cc4", "topics": [ "0x69ca02dd4edd7bf0a4abb9ed3b7af3f14778db5d61921c7dc7cd545266326de2" @@ -684,6 +688,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 5, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -866,6 +871,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 7, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -885,6 +891,7 @@ ], "logs": [ { + "index": 8, "address": "0xad3ecf23c0c8983b07163708be6d763b5f056193", "topics": [ "0x9735b0cb909f3d21d5c16bbcccd272d85fa11446f6d679f6ecb170d2dabfecfc", @@ -907,6 +914,7 @@ ], "logs": [ { + "index": 9, "address": "0xad3ecf23c0c8983b07163708be6d763b5f056193", "topics": [ "0x9735b0cb909f3d21d5c16bbcccd272d85fa11446f6d679f6ecb170d2dabfecfc", @@ -931,6 +939,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 10, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -946,6 +955,7 @@ ], "logs": [ { + "index": 4, "address": "0x6e715ab4f598eacf0016b9b35ef33e4141844ccc", "topics": [ "0x07cf7e805770612a8b2ee8e0bcbba8aa908df5f85fbc4f9e2ef384cf75315038" @@ -953,6 +963,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000000" }, { + "index": 6, "address": "0x6e715ab4f598eacf0016b9b35ef33e4141844ccc", "topics": [ "0x7027eecbd2a688fc1fa281702b311ed7168571514adfd17014a55d828cb43382" @@ -1027,6 +1038,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 11, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -1154,6 +1166,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 14, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -1169,6 +1182,7 @@ ], "logs": [ { + "index": 12, "address": "0x6dbfc63479ffc031f23e94dc91befa38bec2c25f", "topics": [ "0x4b0bc4f25f8d0b92d2e12b686ba96cd75e4e69325e6cf7b1f3119d14eaf2cbdf" @@ -1176,6 +1190,7 @@ "data": "0x000000000000000000000000da4a4626d3e16e094de3225a751aab7128e96526" }, { + "index": 13, "address": "0x6dbfc63479ffc031f23e94dc91befa38bec2c25f", "topics": [ "0xf340c079d598119636d42046c6a2d2faf7a68c04aecee516f0e0b8a9e79b8666" @@ -1223,6 +1238,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 15, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -1317,6 +1333,7 @@ ], "logs": [ { + "index": 16, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -1410,6 +1427,7 @@ ], "logs": [ { + "index": 17, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -1503,6 +1521,7 @@ ], "logs": [ { + "index": 18, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -1596,6 +1615,7 @@ ], "logs": [ { + "index": 19, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -1689,6 +1709,7 @@ ], "logs": [ { + "index": 20, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -1782,6 +1803,7 @@ ], "logs": [ { + "index": 21, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -1875,6 +1897,7 @@ ], "logs": [ { + "index": 22, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -1968,6 +1991,7 @@ ], "logs": [ { + "index": 23, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -2061,6 +2085,7 @@ ], "logs": [ { + "index": 24, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -2154,6 +2179,7 @@ ], "logs": [ { + "index": 25, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0x5790de2c279e58269b93b12828f56fd5f2bc8ad15e61ce08572585c81a38756f", @@ -2205,6 +2231,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 26, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -2226,6 +2253,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 28, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -2247,6 +2275,7 @@ "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 30, "address": "0x304a554a310c7e546dfe434669c62820b7d83490", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", @@ -2262,6 +2291,7 @@ ], "logs": [ { + "index": 27, "address": "0x4fd27b205895e698fa350f7ea57cec8a21927fcd", "topics": [ "0xc6d8c0af6d21f291e7c359603aa97e0ed500f04db6e983b9fce75a91c6b8da6b" @@ -2269,6 +2299,7 @@ "data": "0x00000000000000000000000000000000000000000001010d8bfbbbe40fe7518c" }, { + "index": 29, "address": "0x4fd27b205895e698fa350f7ea57cec8a21927fcd", "topics": [ "0xc6d8c0af6d21f291e7c359603aa97e0ed500f04db6e983b9fce75a91c6b8da6b" @@ -2276,6 +2307,7 @@ "data": "0x00000000000000000000000000000000000000000001010d8bfbbbe40fe7518c" }, { + "index": 31, "address": "0x4fd27b205895e698fa350f7ea57cec8a21927fcd", "topics": [ "0xc6d8c0af6d21f291e7c359603aa97e0ed500f04db6e983b9fce75a91c6b8da6b" diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/multilogs.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/multilogs.json index b8387dcf580..42a0671b2fc 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/multilogs.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/multilogs.json @@ -165,13 +165,14 @@ }, "result": { "from": "0x3fcb0342353c541e210013aaddc2e740b9a33d08", - "gas": "0x2b0868", + "gas": "0x2dc6c0", "gasUsed": "0x2570bf", "to": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "input": "0xe021fadb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000006e00000000000000000000000000000000000000000000000000000000000000d4000000000000000000000000000000000000000000000000000000000000013a00000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000002fd000000000000000000000000000000000000000000000000000000000000034300000000000000000000000000000000000000000000000000000000000002fd0000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000003900000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035000000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b00000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e00000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003700000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000039000000000000000000000000000000000000000000000000000000000000003900000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035000000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b00000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c00000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033000000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000038000000000000000000000000000000000000000000000000000000000000003800000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000032fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebebebffffffffffffffffffffffffffffffffffffffffffffffffffffffffff888888ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3b3b3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3e3e3effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbdbdbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f4fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a0a0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b5b5bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbababaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeaeaeaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa9a9a9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9b9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbababaffffffffffffffffffffffffffffffffffffffffffffffffffffffffff636363fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeaeaeaffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c9c9cfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfcfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4d4e53ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f494b00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e080000000000000000000000000000000000000000000000000000011c37937e08000", "output": "0x0000000000000000000000000000000000000000000000000000000000000001", "logs": [ { + "index": 0, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -179,6 +180,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 1, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -186,6 +188,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff00000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfd0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 2, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -193,6 +196,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebebeb0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 3, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -200,6 +204,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8888880000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 4, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -207,6 +212,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000341000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb3b3b30000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 5, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -214,6 +220,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff00000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfc0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 6, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -221,6 +228,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 7, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -228,6 +236,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000003b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe3e3e30000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 8, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -235,6 +244,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000341000000000000000000000000000000000000000000000000000000000000003b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3e3e3e0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 9, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -242,6 +252,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff00000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 10, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -249,6 +260,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 11, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -256,6 +268,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 12, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -263,6 +276,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000341000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdbdbdb0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 13, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -270,6 +284,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff00000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 14, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -277,6 +292,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4f4f40000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 15, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -284,6 +300,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000003d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 16, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -291,6 +308,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000341000000000000000000000000000000000000000000000000000000000000003d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 17, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -298,6 +316,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 18, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -305,6 +324,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 19, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -312,6 +332,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002ff000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 20, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -319,6 +340,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000341000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 21, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -326,6 +348,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb0b0b00000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 22, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -333,6 +356,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 23, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -340,6 +364,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0a0a00000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 24, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -347,6 +372,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b5b5b0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 25, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -354,6 +380,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbababa0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 26, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -361,6 +388,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 27, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -368,6 +396,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeaeaea0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 28, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -375,6 +404,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa9a9a90000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 29, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -382,6 +412,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb9b9b90000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 30, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -389,6 +420,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000342000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfbfb0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 31, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -396,6 +428,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 32, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -403,6 +436,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefe0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 33, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -410,6 +444,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000003b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbababa0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 34, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -417,6 +452,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000342000000000000000000000000000000000000000000000000000000000000003b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6363630000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 35, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -424,6 +460,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 36, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -431,6 +468,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9f9f90000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 37, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -438,6 +476,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeaeaea0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 38, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -445,6 +484,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000342000000000000000000000000000000000000000000000000000000000000003c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9c9c9c0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 39, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -452,6 +492,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f8f80000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 40, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -459,6 +500,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 41, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -466,6 +508,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000003d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfd0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 42, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -473,6 +516,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000342000000000000000000000000000000000000000000000000000000000000003d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 43, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -480,6 +524,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 44, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -487,6 +532,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034200000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffcfcfc0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 45, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -494,6 +540,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fe000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfdfd0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 46, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -501,6 +548,7 @@ "data": "0x0000000000000000000000000000000000000000000000000000000000000342000000000000000000000000000000000000000000000000000000000000003e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 47, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -508,6 +556,7 @@ "data": "0x00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4d4e530000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 48, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" @@ -515,6 +564,7 @@ "data": "0x000000000000000000000000000000000000000000000000000000000000034300000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003fcb0342353c541e210013aaddc2e740b9a33d08ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000011c37937e08000" }, { + "index": 49, "address": "0x350e0ffc780a6a75b44cc52e1ff9092870668945", "topics": [ "0xcacb62d8acea4678658eb5dc4aaa889b34d893b967c96a5f8c066e6549fa3f42" diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/notopic.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/notopic.json index 1f60043fde4..26933fc8f96 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/notopic.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/notopic.json @@ -100,7 +100,7 @@ }, "result": { "from": "0x6412becf35cc7e2a9e7e47966e443f295e1e4f4a", - "gas": "0x2bb38", + "gas": "0x30d40", "gasUsed": "0x249eb", "to": "0x50739060a2c32dc076e507ae1a893aab28ecfe68", "input": "0x", @@ -260,6 +260,7 @@ ], "logs": [ { + "index": 1, "address": "0x88e1315687aec48a72786c6b3b3f075208b62713", "topics": [ "0xaf30e4d66b2f1f23e63ef4591058a897f67e6867233e33ca3508b982dcc4129b" @@ -273,6 +274,7 @@ ], "logs": [ { + "index": 0, "address": "0x50739060a2c32dc076e507ae1a893aab28ecfe68", "topics": [], "data": "0x62616e6b726f6c6c5f6d69736d61746368" diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/simple.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/simple.json index de34de93fb1..c816f635e76 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/simple.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/simple.json @@ -61,12 +61,13 @@ }, "result": { "from": "0xd1220a0cf47c7b9be7a2e6ba89f429762e7b9adb", - "gas": "0x1f36d", + "gas": "0x24d45", "gasUsed": "0xc6a5", "to": "0xf4eced2f682ce333f96f2d8966c613ded8fc95dd", "input": "0xa9059cbb000000000000000000000000dbf03b407c01e7cd3cbea99509d93f8dddc8c6fb0000000000000000000000000000000000000000000000000000000000989680", "logs": [ { + "index": 0, "address": "0xf4eced2f682ce333f96f2d8966c613ded8fc95dd", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/tx_failed.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/tx_failed.json index af2117ae3ab..5bf1355472d 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/tx_failed.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/tx_failed.json @@ -135,7 +135,7 @@ }, "result": { "from": "0xe6002189a74b43e6868b20c1311bc108e38aac57", - "gas": "0xa59c8", + "gas": "0xaae60", "gasUsed": "0xaae60", "to": "0x630a0cd35d5bd57e61410fda76fea850225cda18", "input": "0xe1fa763800000000000000000000000000000000000000000000000000000000000001100000000000000000000000000000000000000000000000000000000000000000", diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/tx_partial_failed.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/tx_partial_failed.json index 22bfe61b2bd..d380d56aa1d 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/tx_partial_failed.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/tx_partial_failed.json @@ -73,7 +73,7 @@ }, "result": { "from": "0x01115b41bd2731353dd3e6abf44818fdc035aaf1", - "gas": "0x28e28", + "gas": "0x30d40", "gasUsed": "0x288c9", "to": "0xcf1476387d780169410d4e936d75a206fda2a68c", "input": "0xb61d27f6000000000000000000000000bb9bc244d798123fde783fcc1c72d3bb8c18941300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008861393035396362623030303030303030303030303030303030303030303030303930643363313831326465323636396266383037626437373538636562316533343937616337653430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303031633662663532363334303030000000000000000000000000000000000000000000000000", @@ -92,6 +92,7 @@ ], "logs": [ { + "index": 0, "address": "0xcf1476387d780169410d4e936d75a206fda2a68c", "topics": [ "0x92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004" diff --git a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/with_onlyTopCall.json b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/with_onlyTopCall.json index 3661985926c..bd6d710a87b 100644 --- a/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/with_onlyTopCall.json +++ b/eth/tracers/internal/tracetest/testdata/call_tracer_withLog/with_onlyTopCall.json @@ -76,7 +76,7 @@ }, "result": { "from": "0x4f5777744b500616697cb655dcb02ee6cd51deb5", - "gas": "0x2dced", + "gas": "0x33085", "gasUsed": "0x1a9e5", "to": "0x200edd17f30485a8735878661960cd7a9a95733f", "input": "0xba51a6df0000000000000000000000000000000000000000000000000000000000000000", diff --git a/eth/tracers/js/goja.go b/eth/tracers/js/goja.go index cd057c9f5d1..a38983d39fa 100644 --- a/eth/tracers/js/goja.go +++ b/eth/tracers/js/goja.go @@ -95,7 +95,7 @@ func fromBuf(vm *goja.Runtime, bufType goja.Value, buf goja.Value, allowString b // JS functions on the relevant EVM hooks. It uses Goja as its JS engine. type jsTracer struct { vm *goja.Runtime - env vm.VMInterface + env *vm.EVM toBig toBigFn // Converts a hex string into a JS bigint toBuf toBufFn // Converts a []byte into a JS buffer fromBuf fromBufFn // Converts an array, hex string or Uint8Array to a []byte @@ -224,7 +224,7 @@ func (t *jsTracer) CaptureTxEnd(restGas uint64) { } // CaptureStart implements the Tracer interface to initialize the tracing operation. -func (t *jsTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *jsTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { t.env = env db := &dbObj{ibs: env.IntraBlockState(), vm: t.vm, toBig: t.toBig, toBuf: t.toBuf, fromBuf: t.fromBuf} t.dbValue = db.setupObject() @@ -236,17 +236,17 @@ func (t *jsTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to l t.ctx["from"] = t.vm.ToValue(from.Bytes()) t.ctx["to"] = t.vm.ToValue(to.Bytes()) t.ctx["input"] = t.vm.ToValue(input) - t.ctx["gas"] = t.vm.ToValue(gas) - t.ctx["gasPrice"] = t.vm.ToValue(env.TxContext().GasPrice.ToBig()) + t.ctx["gas"] = t.vm.ToValue(t.gasLimit) + t.ctx["gasPrice"] = t.vm.ToValue(env.GasPrice.ToBig()) valueBig, err := t.toBig(t.vm, value.ToBig().String()) if err != nil { t.err = err return } t.ctx["value"] = valueBig - t.ctx["block"] = t.vm.ToValue(env.Context().BlockNumber) + t.ctx["block"] = t.vm.ToValue(env.Context.BlockNumber) // Update list of precompiles based on current block - rules := env.ChainConfig().Rules(env.Context().BlockNumber, env.Context().Time) + rules := env.ChainRules() t.activePrecompiles = vm.ActivePrecompiles(rules) } @@ -307,7 +307,7 @@ func (t *jsTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, to libcom t.frame.typ = typ.String() t.frame.from = from t.frame.to = to - t.frame.input = common.CopyBytes(input) + t.frame.input = libcommon.CopyBytes(input) t.frame.gas = uint(gas) t.frame.value = nil if value != nil { @@ -327,7 +327,7 @@ func (t *jsTracer) CaptureExit(output []byte, gasUsed uint64, err error) { } t.frameResult.gasUsed = uint(gasUsed) - t.frameResult.output = common.CopyBytes(output) + t.frameResult.output = libcommon.CopyBytes(output) t.frameResult.err = err if _, err := t.exit(t.obj, t.frameResultValue); err != nil { @@ -437,7 +437,7 @@ func (t *jsTracer) setBuiltinFunctions() { vm.Interrupt(err) return nil } - code = common.CopyBytes(code) + code = libcommon.CopyBytes(code) codeHash := crypto.Keccak256(code) b := crypto.CreateAddress2(addr, libcommon.HexToHash(salt), codeHash).Bytes() res, err := t.toBuf(vm, b) @@ -783,7 +783,7 @@ func (co *contractObj) GetValue() goja.Value { } func (co *contractObj) GetInput() goja.Value { - input := common.CopyBytes(co.contract.Input) + input := libcommon.CopyBytes(co.contract.Input) res, err := co.toBuf(co.vm, input) if err != nil { co.vm.Interrupt(err) diff --git a/eth/tracers/js/tracer_test.go b/eth/tracers/js/tracer_test.go index 32251acc700..080230f7cc0 100644 --- a/eth/tracers/js/tracer_test.go +++ b/eth/tracers/js/tracer_test.go @@ -70,7 +70,7 @@ func runTrace(tracer tracers.Tracer, vmctx *vmContext, chaincfg *chain.Config, c gasLimit uint64 = 31000 startGas uint64 = 10000 value = uint256.NewInt(0) - contract = vm.NewContract(account{}, account{}, value, startGas, false /* skipAnalysis */) + contract = vm.NewContract(account{}, libcommon.Address{}, value, startGas, false /* skipAnalysis */) ) contract.Code = []byte{byte(vm.PUSH1), 0x1, byte(vm.PUSH1), 0x1, 0x0} if contractCode != nil { @@ -186,7 +186,7 @@ func TestHaltBetweenSteps(t *testing.T) { } env := vm.NewEVM(evmtypes.BlockContext{BlockNumber: 1}, evmtypes.TxContext{GasPrice: uint256.NewInt(1)}, &dummyStatedb{}, params.TestChainConfig, vm.Config{Debug: true, Tracer: tracer}) scope := &vm.ScopeContext{ - Contract: vm.NewContract(&account{}, &account{}, uint256.NewInt(0), 0, false /* skipAnalysis */), + Contract: vm.NewContract(&account{}, libcommon.Address{}, uint256.NewInt(0), 0, false /* skipAnalysis */), } tracer.CaptureStart(env, libcommon.Address{}, libcommon.Address{}, false /* precompile */, false /* create */, []byte{}, 0, uint256.NewInt(0), []byte{} /* code */) tracer.CaptureState(0, 0, 0, 0, scope, nil, 0, nil) @@ -277,7 +277,7 @@ func TestEnterExit(t *testing.T) { t.Fatal(err) } scope := &vm.ScopeContext{ - Contract: vm.NewContract(&account{}, &account{}, uint256.NewInt(0), 0, false /* skipAnalysis */), + Contract: vm.NewContract(&account{}, libcommon.Address{}, uint256.NewInt(0), 0, false /* skipAnalysis */), } tracer.CaptureEnter(vm.CALL, scope.Contract.Caller(), scope.Contract.Address(), false, false, []byte{}, 1000, new(uint256.Int), []byte{}) tracer.CaptureExit([]byte{}, 400, nil) diff --git a/eth/tracers/logger/access_list_tracer.go b/eth/tracers/logger/access_list_tracer.go index e41ab87abaf..fa78ee15a52 100644 --- a/eth/tracers/logger/access_list_tracer.go +++ b/eth/tracers/logger/access_list_tracer.go @@ -17,11 +17,15 @@ package logger import ( + "sort" + "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" types2 "github.com/ledgerwatch/erigon-lib/types" "github.com/ledgerwatch/erigon/core/vm" + "github.com/ledgerwatch/erigon/core/vm/evmtypes" + "github.com/ledgerwatch/erigon/crypto" ) // accessList is an accumulator for the set of accounts and storage slots an EVM @@ -92,6 +96,10 @@ func (al accessList) equal(other accessList) bool { return true } +func (al accessList) Equal(other accessList) bool { + return al.equal(other) +} + // accesslist converts the accesslist to a types2.AccessList. func (al accessList) accessList() types2.AccessList { acl := make(types2.AccessList, 0, len(al)) @@ -105,22 +113,44 @@ func (al accessList) accessList() types2.AccessList { return acl } +// accesslist converts the accesslist to a types2.AccessList. +func (al accessList) accessListSorted() types2.AccessList { + acl := make(types2.AccessList, 0, len(al)) + for addr, slots := range al { + storageKeys := make([]libcommon.Hash, 0, len(slots)) + for slot := range slots { + storageKeys = append(storageKeys, slot) + } + sort.Slice(storageKeys, func(i, j int) bool { + return storageKeys[i].String() < storageKeys[j].String() + }) + acl = append(acl, types2.AccessTuple{ + Address: addr, + StorageKeys: storageKeys, + }) + } + return acl +} + // AccessListTracer is a tracer that accumulates touched accounts and storage // slots into an internal set. type AccessListTracer struct { - excl map[libcommon.Address]struct{} // Set of account to exclude from the list - list accessList // Set of accounts and storage slots touched + excl map[libcommon.Address]struct{} // Set of account to exclude from the list + list accessList // Set of accounts and storage slots touched + state evmtypes.IntraBlockState // State for nonce calculation of created contracts + createdContracts map[libcommon.Address]struct{} // Set of all addresses of contracts created during tx execution + usedBeforeCreation map[libcommon.Address]struct{} // Set of all contract addresses first used before creation } // NewAccessListTracer creates a new tracer that can generate AccessLists. // An optional AccessList can be specified to occupy slots and addresses in // the resulting accesslist. -func NewAccessListTracer(acl types2.AccessList, from, to libcommon.Address, precompiles []libcommon.Address) *AccessListTracer { - excl := map[libcommon.Address]struct{}{ - from: {}, to: {}, - } - for _, addr := range precompiles { - excl[addr] = struct{}{} +// An optional set of addresses to be excluded from the resulting accesslist can +// also be specified. +func NewAccessListTracer(acl types2.AccessList, exclude map[libcommon.Address]struct{}, state evmtypes.IntraBlockState) *AccessListTracer { + excl := make(map[libcommon.Address]struct{}) + if exclude != nil { + excl = exclude } list := newAccessList() for _, al := range acl { @@ -132,8 +162,11 @@ func NewAccessListTracer(acl types2.AccessList, from, to libcommon.Address, prec } } return &AccessListTracer{ - excl: excl, - list: list, + excl: excl, + list: list, + state: state, + createdContracts: make(map[libcommon.Address]struct{}), + usedBeforeCreation: make(map[libcommon.Address]struct{}), } } @@ -141,7 +174,7 @@ func (a *AccessListTracer) CaptureTxStart(gasLimit uint64) {} func (a *AccessListTracer) CaptureTxEnd(restGas uint64) {} -func (a *AccessListTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (a *AccessListTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { } func (a *AccessListTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { @@ -151,25 +184,60 @@ func (a *AccessListTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, t func (a *AccessListTracer) CaptureState(pc uint64, op vm.OpCode, gas, cost uint64, scope *vm.ScopeContext, rData []byte, depth int, err error) { stack := scope.Stack contract := scope.Contract + caller := contract.Address() stackData := stack.Data stackLen := len(stackData) if (op == vm.SLOAD || op == vm.SSTORE) && stackLen >= 1 { + addr := contract.Address() slot := libcommon.Hash(stackData[stackLen-1].Bytes32()) - a.list.addSlot(contract.Address(), slot) + if _, ok := a.excl[addr]; !ok { + a.list.addSlot(addr, slot) + if _, ok := a.createdContracts[addr]; !ok { + a.usedBeforeCreation[addr] = struct{}{} + } + } } if (op == vm.EXTCODECOPY || op == vm.EXTCODEHASH || op == vm.EXTCODESIZE || op == vm.BALANCE || op == vm.SELFDESTRUCT) && stackLen >= 1 { addr := libcommon.Address(stackData[stackLen-1].Bytes20()) if _, ok := a.excl[addr]; !ok { a.list.addAddress(addr) + if _, ok := a.createdContracts[addr]; !ok { + a.usedBeforeCreation[addr] = struct{}{} + } } } if (op == vm.DELEGATECALL || op == vm.CALL || op == vm.STATICCALL || op == vm.CALLCODE) && stackLen >= 5 { addr := libcommon.Address(stackData[stackLen-2].Bytes20()) if _, ok := a.excl[addr]; !ok { a.list.addAddress(addr) + if _, ok := a.createdContracts[addr]; !ok { + a.usedBeforeCreation[addr] = struct{}{} + } + } + } + if op == vm.CREATE { + // contract address for CREATE can only be generated with state + if a.state != nil { + nonce := a.state.GetNonce(caller) + addr := crypto.CreateAddress(caller, nonce) + if _, ok := a.excl[addr]; !ok { + a.createdContracts[addr] = struct{}{} + } + } + } + if op == vm.CREATE2 && stackLen >= 4 { + offset := stackData[stackLen-2] + size := stackData[stackLen-3] + init := scope.Memory.GetCopy(int64(offset.Uint64()), int64(size.Uint64())) + inithash := crypto.Keccak256(init) + salt := stackData[stackLen-4] + addr := crypto.CreateAddress2(caller, salt.Bytes32(), inithash) + if _, ok := a.excl[addr]; !ok { + a.createdContracts[addr] = struct{}{} } } + } func (*AccessListTracer) CaptureFault(pc uint64, op vm.OpCode, gas, cost uint64, scope *vm.ScopeContext, depth int, err error) { @@ -184,6 +252,22 @@ func (a *AccessListTracer) AccessList() types2.AccessList { return a.list.accessList() } +// AccessList returns the current accesslist maintained by the tracer. +func (a *AccessListTracer) AccessListSorted() types2.AccessList { + return a.list.accessListSorted() +} + +// CreatedContracts returns the set of all addresses of contracts created during tx execution. +func (a *AccessListTracer) CreatedContracts() map[libcommon.Address]struct{} { + return a.createdContracts +} + +// UsedBeforeCreation returns for a given address whether it was first used before creation. +func (a *AccessListTracer) UsedBeforeCreation(addr libcommon.Address) bool { + _, contained := a.usedBeforeCreation[addr] + return contained +} + // Equal returns if the content of two access list traces are equal. func (a *AccessListTracer) Equal(other *AccessListTracer) bool { return a.list.equal(other.list) diff --git a/eth/tracers/logger/access_list_tracer_test.go b/eth/tracers/logger/access_list_tracer_test.go new file mode 100644 index 00000000000..02f719689ff --- /dev/null +++ b/eth/tracers/logger/access_list_tracer_test.go @@ -0,0 +1,40 @@ +package logger + +import ( + "testing" + + "github.com/ledgerwatch/erigon-lib/common" + types2 "github.com/ledgerwatch/erigon-lib/types" + "github.com/stretchr/testify/require" +) + +var ( + addr = common.BytesToAddress([]byte{0x01, 0x71}) + + slot1 = common.BytesToHash([]byte{0x01}) + slot2 = common.BytesToHash([]byte{0x02}) + slot3 = common.BytesToHash([]byte{0x03}) + slot4 = common.BytesToHash([]byte{0x04}) + + ordered = types2.AccessList{{ + Address: addr, + StorageKeys: []common.Hash{ + slot1, + slot2, + slot3, + slot4, + }, + }} +) + +func TestTracer_AccessList_Order(t *testing.T) { + al := newAccessList() + al.addAddress(addr) + al.addSlot(addr, slot1) + al.addSlot(addr, slot4) + al.addSlot(addr, slot3) + al.addSlot(addr, slot2) + require.NotEqual(t, ordered, al.accessList()) + require.Equal(t, ordered, al.accessListSorted()) + require.True(t, al.Equal(al)) +} diff --git a/eth/tracers/logger/json_stream.go b/eth/tracers/logger/json_stream.go index 3f272ed6196..5b616e81e7f 100644 --- a/eth/tracers/logger/json_stream.go +++ b/eth/tracers/logger/json_stream.go @@ -30,7 +30,7 @@ type JsonStreamLogger struct { logs []StructLog output []byte //nolint err error //nolint - env vm.VMInterface + env *vm.EVM } // NewStructLogger returns a new logger @@ -52,7 +52,7 @@ func (l *JsonStreamLogger) CaptureTxStart(gasLimit uint64) {} func (l *JsonStreamLogger) CaptureTxEnd(restGas uint64) {} // CaptureStart implements the Tracer interface to initialize the tracing operation. -func (l *JsonStreamLogger) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (l *JsonStreamLogger) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { l.env = env } diff --git a/eth/tracers/logger/logger.go b/eth/tracers/logger/logger.go index 3beb7e7d96c..c49a6c4ca85 100644 --- a/eth/tracers/logger/logger.go +++ b/eth/tracers/logger/logger.go @@ -116,7 +116,7 @@ type StructLogger struct { logs []StructLog output []byte err error - env vm.VMInterface + env *vm.EVM } // NewStructLogger returns a new logger @@ -135,7 +135,7 @@ func (l *StructLogger) CaptureTxStart(gasLimit uint64) {} func (l *StructLogger) CaptureTxEnd(restGas uint64) {} // CaptureStart implements the Tracer interface to initialize the tracing operation. -func (l *StructLogger) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (l *StructLogger) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { l.env = env } @@ -339,7 +339,7 @@ func WriteLogs(writer io.Writer, logs []*types.Log) { type mdLogger struct { out io.Writer cfg *LogConfig - env vm.VMInterface + env *vm.EVM } // NewMarkdownLogger creates a logger which outputs information in a format adapted @@ -373,7 +373,7 @@ func (t *mdLogger) captureStartOrEnter(from, to libcommon.Address, create bool, `) } -func (t *mdLogger) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { //nolint:interfacer +func (t *mdLogger) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { //nolint:interfacer t.env = env t.captureStartOrEnter(from, to, create, input, gas, value) } @@ -391,7 +391,7 @@ func (t *mdLogger) CaptureState(pc uint64, op vm.OpCode, gas, cost uint64, scope // format stack var a []string for _, elem := range stack.Data { - a = append(a, fmt.Sprintf("%v", elem.String())) + a = append(a, elem.String()) } b := fmt.Sprintf("[%v]", strings.Join(a, ",")) fmt.Fprintf(t.out, "%10v |", b) diff --git a/eth/tracers/logger/logger_json.go b/eth/tracers/logger/logger_json.go index b2c90f3509e..c06b4769226 100644 --- a/eth/tracers/logger/logger_json.go +++ b/eth/tracers/logger/logger_json.go @@ -32,7 +32,7 @@ import ( type JSONLogger struct { encoder *json.Encoder cfg *LogConfig - env vm.VMInterface + env *vm.EVM } // NewJSONLogger creates a new EVM tracer that prints execution steps as JSON objects @@ -49,7 +49,7 @@ func (l *JSONLogger) CaptureTxStart(gasLimit uint64) {} func (l *JSONLogger) CaptureTxEnd(restGas uint64) {} -func (l *JSONLogger) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (l *JSONLogger) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { l.env = env } diff --git a/eth/tracers/logger/logger_test.go b/eth/tracers/logger/logger_test.go index 730b5fbca57..b4b41213754 100644 --- a/eth/tracers/logger/logger_test.go +++ b/eth/tracers/logger/logger_test.go @@ -60,7 +60,7 @@ func TestStoreCapture(t *testing.T) { logger = NewStructLogger(nil) mem = vm.NewMemory() stack = stack.New() - contract = vm.NewContract(&dummyContractRef{}, &dummyContractRef{}, new(uint256.Int), 0, false /* skipAnalysis */) + contract = vm.NewContract(&dummyContractRef{}, libcommon.Address{}, new(uint256.Int), 0, false /* skipAnalysis */) ) stack.Push(uint256.NewInt(1)) stack.Push(uint256.NewInt(0)) diff --git a/eth/tracers/native/4byte.go b/eth/tracers/native/4byte.go index 41900f17b16..c61617171f0 100644 --- a/eth/tracers/native/4byte.go +++ b/eth/tracers/native/4byte.go @@ -81,9 +81,9 @@ func (t *fourByteTracer) store(id []byte, size int) { } // CaptureStart implements the EVMLogger interface to initialize the tracing operation. -func (t *fourByteTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *fourByteTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { // Update list of precompiles based on current block - rules := env.ChainConfig().Rules(env.Context().BlockNumber, env.Context().Time) + rules := env.ChainRules() t.activePrecompiles = vm.ActivePrecompiles(rules) // Save the outer calldata also diff --git a/eth/tracers/native/call.go b/eth/tracers/native/call.go index 1f66554e50a..013de55bbf0 100644 --- a/eth/tracers/native/call.go +++ b/eth/tracers/native/call.go @@ -25,11 +25,10 @@ import ( "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon/accounts/abi" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/eth/tracers" ) @@ -41,6 +40,7 @@ func init() { } type callLog struct { + Index uint64 `json:"index"` Address libcommon.Address `json:"address"` Topics []libcommon.Hash `json:"topics"` Data hexutility.Bytes `json:"data"` @@ -72,7 +72,7 @@ func (f callFrame) failed() bool { } func (f *callFrame) processOutput(output []byte, err error) { - output = common.CopyBytes(output) + output = libcommon.CopyBytes(output) if err == nil { f.Output = output return @@ -109,6 +109,8 @@ type callTracer struct { gasLimit uint64 interrupt uint32 // Atomic flag to signal execution interruption reason error // Textual reason for the interruption + logIndex uint64 + logGaps map[uint64]int } type callTracerConfig struct { @@ -131,13 +133,13 @@ func newCallTracer(ctx *tracers.Context, cfg json.RawMessage) (tracers.Tracer, e } // CaptureStart implements the EVMLogger interface to initialize the tracing operation. -func (t *callTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *callTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { t.callstack[0] = callFrame{ Type: vm.CALL, From: from, To: to, - Input: common.CopyBytes(input), - Gas: gas, + Input: libcommon.CopyBytes(input), + Gas: t.gasLimit, // gas has intrinsicGas already subtracted } if value != nil { t.callstack[0].Value = value.ToBig() @@ -187,7 +189,8 @@ func (t *callTracer) CaptureState(pc uint64, op vm.OpCode, gas, cost uint64, sco } data := scope.Memory.GetCopy(int64(mStart.Uint64()), int64(mSize.Uint64())) - log := callLog{Address: scope.Contract.Address(), Topics: topics, Data: hexutility.Bytes(data)} + log := callLog{Address: scope.Contract.Address(), Topics: topics, Data: hexutility.Bytes(data), Index: t.logIndex} + t.logIndex++ t.callstack[len(t.callstack)-1].Logs = append(t.callstack[len(t.callstack)-1].Logs, log) } } @@ -206,7 +209,7 @@ func (t *callTracer) CaptureEnter(typ vm.OpCode, from libcommon.Address, to libc Type: typ, From: from, To: to, - Input: common.CopyBytes(input), + Input: libcommon.CopyBytes(input), Gas: gas, } if value != nil { @@ -237,14 +240,19 @@ func (t *callTracer) CaptureExit(output []byte, gasUsed uint64, err error) { func (t *callTracer) CaptureTxStart(gasLimit uint64) { t.gasLimit = gasLimit + t.logIndex = 0 + t.logGaps = make(map[uint64]int) } func (t *callTracer) CaptureTxEnd(restGas uint64) { t.callstack[0].GasUsed = t.gasLimit - restGas if t.config.WithLog { // Logs are not emitted when the call fails - clearFailedLogs(&t.callstack[0], false) + clearFailedLogs(&t.callstack[0], false, 0, t.logGaps) + fixLogIndexGap(&t.callstack[0], t.logGaps) } + t.logIndex = 0 + t.logGaps = nil } // GetResult returns the json-encoded nested list of call traces, and any @@ -268,13 +276,35 @@ func (t *callTracer) Stop(err error) { // clearFailedLogs clears the logs of a callframe and all its children // in case of execution failure. -func clearFailedLogs(cf *callFrame, parentFailed bool) { +func clearFailedLogs(cf *callFrame, parentFailed bool, gap int, logGaps map[uint64]int) { failed := cf.failed() || parentFailed // Clear own logs if failed { + gap += len(cf.Logs) + if gap > 0 { + lastIdx := len(cf.Logs) - 1 + if lastIdx > 0 && logGaps != nil { + idx := cf.Logs[lastIdx].Index + logGaps[idx] = gap + } + } cf.Logs = nil } for i := range cf.Calls { - clearFailedLogs(&cf.Calls[i], failed) + clearFailedLogs(&cf.Calls[i], failed, gap, logGaps) + } +} + +func fixLogIndexGap(cf *callFrame, logGaps map[uint64]int) { + if len(cf.Logs) > 0 { + gap := logGaps[cf.Logs[0].Index-1] + if gap > 0 { + for _, log := range cf.Logs { + log.Index -= uint64(gap) + } + } + } + for i := range cf.Calls { + fixLogIndexGap(&cf.Calls[i], logGaps) } } diff --git a/eth/tracers/native/gen_account_json.go b/eth/tracers/native/gen_account_json.go index d4f00b2a4e2..4a016137f38 100644 --- a/eth/tracers/native/gen_account_json.go +++ b/eth/tracers/native/gen_account_json.go @@ -4,12 +4,11 @@ package native import ( "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - - "github.com/ledgerwatch/erigon/common/hexutil" ) var _ = (*accountMarshaling)(nil) diff --git a/eth/tracers/native/gen_callframe_json.go b/eth/tracers/native/gen_callframe_json.go index 9a49f0f7cc5..8dbba5c07a7 100644 --- a/eth/tracers/native/gen_callframe_json.go +++ b/eth/tracers/native/gen_callframe_json.go @@ -4,12 +4,12 @@ package native import ( "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/vm" ) diff --git a/eth/tracers/native/mux.go b/eth/tracers/native/mux.go index 77809c64fa7..e8a14bb4ad2 100644 --- a/eth/tracers/native/mux.go +++ b/eth/tracers/native/mux.go @@ -60,7 +60,7 @@ func newMuxTracer(ctx *tracers.Context, cfg json.RawMessage) (tracers.Tracer, er } // CaptureStart implements the EVMLogger interface to initialize the tracing operation. -func (t *muxTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *muxTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { for _, t := range t.tracers { t.CaptureStart(env, from, to, precompile, create, input, gas, value, code) } diff --git a/eth/tracers/native/noop.go b/eth/tracers/native/noop.go index ff04a23a000..29365d00d86 100644 --- a/eth/tracers/native/noop.go +++ b/eth/tracers/native/noop.go @@ -40,7 +40,7 @@ func newNoopTracer(ctx *tracers.Context, _ json.RawMessage) (tracers.Tracer, err } // CaptureStart implements the EVMLogger interface to initialize the tracing operation. -func (t *noopTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *noopTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { } // CaptureEnd is called after the call finishes to finalize the tracing. diff --git a/eth/tracers/native/prestate.go b/eth/tracers/native/prestate.go index 3bce65a17d0..133ca8bcc8a 100644 --- a/eth/tracers/native/prestate.go +++ b/eth/tracers/native/prestate.go @@ -19,6 +19,7 @@ package native import ( "bytes" "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "sync/atomic" @@ -27,7 +28,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/eth/tracers" @@ -59,7 +59,7 @@ type accountMarshaling struct { type prestateTracer struct { noopTracer - env vm.VMInterface + env *vm.EVM pre state post state create bool @@ -93,14 +93,14 @@ func newPrestateTracer(ctx *tracers.Context, cfg json.RawMessage) (tracers.Trace } // CaptureStart implements the EVMLogger interface to initialize the tracing operation. -func (t *prestateTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precomplile, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *prestateTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { t.env = env t.create = create t.to = to t.lookupAccount(from) t.lookupAccount(to) - t.lookupAccount(env.Context().Coinbase) + t.lookupAccount(env.Context.Coinbase) // The recipient balance includes the value transferred. toBal := new(big.Int).Sub(t.pre[to].Balance, value.ToBig()) @@ -109,11 +109,13 @@ func (t *prestateTracer) CaptureStart(env vm.VMInterface, from libcommon.Address // The sender balance is after reducing: value and gasLimit. // We need to re-add them to get the pre-tx balance. fromBal := new(big.Int).Set(t.pre[from].Balance) - gasPrice := env.TxContext().GasPrice + gasPrice := env.GasPrice consumedGas := new(big.Int).Mul(gasPrice.ToBig(), new(big.Int).SetUint64(t.gasLimit)) fromBal.Add(fromBal, new(big.Int).Add(value.ToBig(), consumedGas)) t.pre[from].Balance = fromBal - t.pre[from].Nonce-- + if t.pre[from].Nonce > 0 { + t.pre[from].Nonce-- + } if create && t.config.DiffMode { t.created[to] = true diff --git a/eth/tracers/tracers_test.go b/eth/tracers/tracers_test.go index da79af92fa4..378f8ff7488 100644 --- a/eth/tracers/tracers_test.go +++ b/eth/tracers/tracers_test.go @@ -20,11 +20,11 @@ import ( "crypto/ecdsa" "crypto/rand" "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "testing" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" diff --git a/ethdb/Readme.md b/ethdb/Readme.md index 162eefae459..4624a6d658a 100644 --- a/ethdb/Readme.md +++ b/ethdb/Readme.md @@ -17,7 +17,7 @@ About "key-value-style": Modern key-value databases don't provide Get/Put/Delete // And show which classes satisfy which interfaces. +-----------------------------------+ +-----------------------------------+ - | github.com/torquem-ch/mdbx-go | | google.golang.org/grpc.ClientConn | + | github.com/erigontech/mdbx-go | | google.golang.org/grpc.ClientConn | | (app-agnostic MDBX go bindings) | | (app-agnostic RPC and streaming) | +-----------------------------------+ +-----------------------------------+ | | @@ -127,7 +127,7 @@ for k, v, err := c.First(); k != nil; k, v, err = c.Next() { - method Begin DOESN'T create new TxDb object, it means this object can be passed into other objects by pointer, and high-level app code can start/commit transactions when it needs without re-creating all objects which holds TxDb pointer. -- This is the reason why txDb.CommitAndBegin() method works: inside it creating new transaction object, pinter to TxDb stays valid. +- This is the reason why txDb.CommitAndBegin() method works: inside it creating new transaction object, pointer to TxDb stays valid. ## How to dump/load table diff --git a/ethdb/db_interface.go b/ethdb/db_interface.go index d8a1cf590f9..ab131be8800 100644 --- a/ethdb/db_interface.go +++ b/ethdb/db_interface.go @@ -17,7 +17,6 @@ package ethdb import ( - "context" "errors" "github.com/ledgerwatch/erigon-lib/kv" @@ -28,85 +27,6 @@ import ( // ErrKeyNotFound is returned when key isn't found in the database. var ErrKeyNotFound = errors.New("db: key not found") -type TxFlags uint - -const ( - RW TxFlags = 0x00 // default - RO TxFlags = 0x02 -) - -// DBGetter wraps the database read operations. -type DBGetter interface { - kv.Getter - - // Get returns the value for a given key if it's present. - Get(bucket string, key []byte) ([]byte, error) -} - -// Database wraps all database operations. All methods are safe for concurrent use. -type Database interface { - DBGetter - kv.Putter - kv.Deleter - kv.Closer - - Begin(ctx context.Context, flags TxFlags) (DbWithPendingMutations, error) // starts db transaction - Last(bucket string) ([]byte, []byte, error) - - IncrementSequence(bucket string, amount uint64) (uint64, error) - ReadSequence(bucket string) (uint64, error) - RwKV() kv.RwDB -} - -// MinDatabase is a minimalistic version of the Database interface. -type MinDatabase interface { - Get(bucket string, key []byte) ([]byte, error) - Put(table string, k, v []byte) error - Delete(table string, k []byte) error -} - -// DbWithPendingMutations is an extended version of the Database, -// where all changes are first made in memory. -// Later they can either be committed to the database or rolled back. -type DbWithPendingMutations interface { - Database - - // Commit - commits transaction (or flush data into underlying db object in case of `mutation`) - // - // Common pattern: - // - // tx := db.Begin() - // defer tx.Rollback() - // ... some calculations on `tx` - // tx.Commit() - // - Commit() error - - Rollback() - BatchSize() int -} - -type HasRwKV interface { - RwKV() kv.RwDB - SetRwKV(kv kv.RwDB) -} - type HasTx interface { Tx() kv.Tx } - -type BucketsMigrator interface { - BucketExists(bucket string) (bool, error) // makes them empty - ClearBuckets(buckets ...string) error // makes them empty - DropBuckets(buckets ...string) error // drops them, use of them after drop will panic -} - -func GetOneWrapper(dat []byte, err error) ([]byte, error) { - if err != nil { - return nil, err - } - if dat == nil { - return nil, ErrKeyNotFound - } - return dat, nil -} diff --git a/ethdb/olddb/mutation.go b/ethdb/olddb/mutation.go deleted file mode 100644 index ee39868dabb..00000000000 --- a/ethdb/olddb/mutation.go +++ /dev/null @@ -1,345 +0,0 @@ -package olddb - -import ( - "bytes" - "context" - "encoding/binary" - "fmt" - "strings" - "sync" - "time" - "unsafe" - - "github.com/google/btree" - "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/ethdb" - "github.com/ledgerwatch/log/v3" -) - -type mutation struct { - puts *btree.BTree - db kv.RwTx - quit <-chan struct{} - clean func() - searchItem MutationItem - mu sync.RWMutex - size int -} - -type MutationItem struct { - table string - key []byte - value []byte -} - -// NewBatch - starts in-mem batch -// -// Common pattern: -// -// batch := db.NewBatch() -// defer batch.Rollback() -// ... some calculations on `batch` -// batch.Commit() -func NewBatch(tx kv.RwTx, quit <-chan struct{}) *mutation { - clean := func() {} - if quit == nil { - ch := make(chan struct{}) - clean = func() { close(ch) } - quit = ch - } - return &mutation{ - db: tx, - puts: btree.New(32), - quit: quit, - clean: clean, - } -} - -func (mi *MutationItem) Less(than btree.Item) bool { - i, ok := than.(*MutationItem) - if !ok { - log.Warn("Failed to convert btree.Item to MutationItem pointer") - } - c := strings.Compare(mi.table, i.table) - if c != 0 { - return c < 0 - } - return bytes.Compare(mi.key, i.key) < 0 -} - -func (m *mutation) ReadOnly() bool { return false } -func (m *mutation) RwKV() kv.RwDB { - if casted, ok := m.db.(ethdb.HasRwKV); ok { - return casted.RwKV() - } - return nil -} - -func (m *mutation) getMem(table string, key []byte) ([]byte, bool) { - m.mu.RLock() - defer m.mu.RUnlock() - m.searchItem.table = table - m.searchItem.key = key - i := m.puts.Get(&m.searchItem) - if i == nil { - return nil, false - } - return i.(*MutationItem).value, true -} - -func (m *mutation) IncrementSequence(bucket string, amount uint64) (res uint64, err error) { - v, ok := m.getMem(kv.Sequence, []byte(bucket)) - if !ok && m.db != nil { - v, err = m.db.GetOne(kv.Sequence, []byte(bucket)) - if err != nil { - return 0, err - } - } - - var currentV uint64 = 0 - if len(v) > 0 { - currentV = binary.BigEndian.Uint64(v) - } - - newVBytes := make([]byte, 8) - binary.BigEndian.PutUint64(newVBytes, currentV+amount) - if err = m.Put(kv.Sequence, []byte(bucket), newVBytes); err != nil { - return 0, err - } - - return currentV, nil -} -func (m *mutation) ReadSequence(bucket string) (res uint64, err error) { - v, ok := m.getMem(kv.Sequence, []byte(bucket)) - if !ok && m.db != nil { - v, err = m.db.GetOne(kv.Sequence, []byte(bucket)) - if err != nil { - return 0, err - } - } - var currentV uint64 = 0 - if len(v) > 0 { - currentV = binary.BigEndian.Uint64(v) - } - - return currentV, nil -} - -// Can only be called from the worker thread -func (m *mutation) GetOne(table string, key []byte) ([]byte, error) { - if value, ok := m.getMem(table, key); ok { - if value == nil { - return nil, nil - } - return value, nil - } - if m.db != nil { - // TODO: simplify when tx can no longer be parent of mutation - value, err := m.db.GetOne(table, key) - if err != nil { - return nil, err - } - - return value, nil - } - return nil, nil -} - -// Can only be called from the worker thread -func (m *mutation) Get(table string, key []byte) ([]byte, error) { - value, err := m.GetOne(table, key) - if err != nil { - return nil, err - } - - if value == nil { - return nil, ethdb.ErrKeyNotFound - } - - return value, nil -} - -func (m *mutation) Last(table string) ([]byte, []byte, error) { - c, err := m.db.Cursor(table) - if err != nil { - return nil, nil, err - } - defer c.Close() - return c.Last() -} - -func (m *mutation) hasMem(table string, key []byte) bool { - m.mu.RLock() - defer m.mu.RUnlock() - m.searchItem.table = table - m.searchItem.key = key - return m.puts.Has(&m.searchItem) -} - -func (m *mutation) Has(table string, key []byte) (bool, error) { - if m.hasMem(table, key) { - return true, nil - } - if m.db != nil { - return m.db.Has(table, key) - } - return false, nil -} - -func (m *mutation) Put(table string, k, v []byte) error { - m.mu.Lock() - defer m.mu.Unlock() - - newMi := &MutationItem{table: table, key: k, value: v} - i := m.puts.ReplaceOrInsert(newMi) - m.size += int(unsafe.Sizeof(newMi)) + len(k) + len(v) - if i != nil { - oldMi := i.(*MutationItem) - m.size -= int(unsafe.Sizeof(oldMi)) + len(oldMi.key) + len(oldMi.value) - } - return nil -} - -func (m *mutation) Append(table string, key []byte, value []byte) error { - return m.Put(table, key, value) -} - -func (m *mutation) AppendDup(table string, key []byte, value []byte) error { - return m.Put(table, key, value) -} - -func (m *mutation) BatchSize() int { - m.mu.RLock() - defer m.mu.RUnlock() - return m.size -} - -func (m *mutation) ForEach(bucket string, fromPrefix []byte, walker func(k, v []byte) error) error { - m.panicOnEmptyDB() - return m.db.ForEach(bucket, fromPrefix, walker) -} - -func (m *mutation) ForPrefix(bucket string, prefix []byte, walker func(k, v []byte) error) error { - m.panicOnEmptyDB() - return m.db.ForPrefix(bucket, prefix, walker) -} - -func (m *mutation) ForAmount(bucket string, prefix []byte, amount uint32, walker func(k, v []byte) error) error { - m.panicOnEmptyDB() - return m.db.ForAmount(bucket, prefix, amount, walker) -} - -func (m *mutation) Delete(table string, k []byte) error { - //m.puts.Delete(table, k) - return m.Put(table, k, nil) -} - -func (m *mutation) doCommit(tx kv.RwTx) error { - var prevTable string - var c kv.RwCursor - var innerErr error - var isEndOfBucket bool - logEvery := time.NewTicker(30 * time.Second) - defer logEvery.Stop() - count := 0 - total := float64(m.puts.Len()) - - m.puts.Ascend(func(i btree.Item) bool { - mi := i.(*MutationItem) - if mi.table != prevTable { - if c != nil { - c.Close() - } - var err error - c, err = tx.RwCursor(mi.table) - if err != nil { - innerErr = err - return false - } - prevTable = mi.table - firstKey, _, err := c.Seek(mi.key) - if err != nil { - innerErr = err - return false - } - isEndOfBucket = firstKey == nil - } - if isEndOfBucket { - if len(mi.value) > 0 { - if err := c.Append(mi.key, mi.value); err != nil { - innerErr = err - return false - } - } - } else if len(mi.value) == 0 { - if err := c.Delete(mi.key); err != nil { - innerErr = err - return false - } - } else { - if err := c.Put(mi.key, mi.value); err != nil { - innerErr = err - return false - } - } - - count++ - - select { - default: - case <-logEvery.C: - progress := fmt.Sprintf("%.1fM/%.1fM", float64(count)/1_000_000, total/1_000_000) - log.Info("Write to db", "progress", progress, "current table", mi.table) - tx.CollectMetrics() - case <-m.quit: - innerErr = common.ErrStopped - return false - } - return true - }) - tx.CollectMetrics() - return innerErr -} - -func (m *mutation) Commit() error { - if m.db == nil { - return nil - } - m.mu.Lock() - defer m.mu.Unlock() - if err := m.doCommit(m.db); err != nil { - return err - } - - m.puts.Clear(false /* addNodesToFreelist */) - m.size = 0 - m.clean() - return nil -} - -func (m *mutation) Rollback() { - m.mu.Lock() - defer m.mu.Unlock() - m.puts.Clear(false /* addNodesToFreelist */) - m.size = 0 - m.clean() -} - -func (m *mutation) Close() { - m.Rollback() -} - -func (m *mutation) Begin(ctx context.Context, flags ethdb.TxFlags) (ethdb.DbWithPendingMutations, error) { - panic("mutation can't start transaction, because doesn't own it") -} - -func (m *mutation) panicOnEmptyDB() { - if m.db == nil { - panic("Not implemented") - } -} - -func (m *mutation) SetRwKV(kv kv.RwDB) { - m.db.(ethdb.HasRwKV).SetRwKV(kv) -} diff --git a/ethdb/olddb/object_db.go b/ethdb/olddb/object_db.go deleted file mode 100644 index 24d03523175..00000000000 --- a/ethdb/olddb/object_db.go +++ /dev/null @@ -1,248 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package ethdb defines the interfaces for an Ethereum data store. -package olddb - -import ( - "context" - "fmt" - - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/ethdb" - "github.com/ledgerwatch/log/v3" -) - -// ObjectDatabase - is an object-style interface of DB accessing -type ObjectDatabase struct { - kv kv.RwDB -} - -// NewObjectDatabase returns a AbstractDB wrapper. -// Deprecated -func NewObjectDatabase(kv kv.RwDB) *ObjectDatabase { - return &ObjectDatabase{ - kv: kv, - } -} - -// Put inserts or updates a single entry. -func (db *ObjectDatabase) Put(table string, k, v []byte) error { - err := db.kv.Update(context.Background(), func(tx kv.RwTx) error { - return tx.Put(table, k, v) - }) - return err -} - -// Append appends a single entry to the end of the bucket. -func (db *ObjectDatabase) Append(bucket string, key []byte, value []byte) error { - err := db.kv.Update(context.Background(), func(tx kv.RwTx) error { - c, err := tx.RwCursor(bucket) - if err != nil { - return err - } - return c.Append(key, value) - }) - return err -} - -// AppendDup appends a single entry to the end of the bucket. -func (db *ObjectDatabase) AppendDup(bucket string, key []byte, value []byte) error { - err := db.kv.Update(context.Background(), func(tx kv.RwTx) error { - c, err := tx.RwCursorDupSort(bucket) - if err != nil { - return err - } - return c.AppendDup(key, value) - }) - return err -} - -func (db *ObjectDatabase) Has(bucket string, key []byte) (bool, error) { - var has bool - err := db.kv.View(context.Background(), func(tx kv.Tx) error { - v, err := tx.GetOne(bucket, key) - if err != nil { - return err - } - has = v != nil - return nil - }) - return has, err -} - -func (db *ObjectDatabase) IncrementSequence(bucket string, amount uint64) (res uint64, err error) { - err = db.kv.Update(context.Background(), func(tx kv.RwTx) error { - res, err = tx.IncrementSequence(bucket, amount) - return err - }) - return res, err -} -func (db *ObjectDatabase) ReadSequence(bucket string) (res uint64, err error) { - err = db.kv.View(context.Background(), func(tx kv.Tx) error { - res, err = tx.ReadSequence(bucket) - return err - }) - return res, err -} - -// Get returns the value for a given key if it's present. -func (db *ObjectDatabase) GetOne(bucket string, key []byte) ([]byte, error) { - var dat []byte - err := db.kv.View(context.Background(), func(tx kv.Tx) error { - v, err := tx.GetOne(bucket, key) - if err != nil { - return err - } - if v != nil { - dat = make([]byte, len(v)) - copy(dat, v) - } - return nil - }) - return dat, err -} - -func (db *ObjectDatabase) Get(bucket string, key []byte) ([]byte, error) { - dat, err := db.GetOne(bucket, key) - return ethdb.GetOneWrapper(dat, err) -} - -func (db *ObjectDatabase) Last(bucket string) ([]byte, []byte, error) { - var key, value []byte - if err := db.kv.View(context.Background(), func(tx kv.Tx) error { - c, err := tx.Cursor(bucket) - if err != nil { - return err - } - k, v, err := c.Last() - if err != nil { - return err - } - if k != nil { - key, value = common.CopyBytes(k), common.CopyBytes(v) - } - return nil - }); err != nil { - return nil, nil, err - } - return key, value, nil -} - -func (db *ObjectDatabase) ForEach(bucket string, fromPrefix []byte, walker func(k, v []byte) error) error { - return db.kv.View(context.Background(), func(tx kv.Tx) error { - return tx.ForEach(bucket, fromPrefix, walker) - }) -} -func (db *ObjectDatabase) ForAmount(bucket string, fromPrefix []byte, amount uint32, walker func(k, v []byte) error) error { - return db.kv.View(context.Background(), func(tx kv.Tx) error { - return tx.ForAmount(bucket, fromPrefix, amount, walker) - }) -} - -func (db *ObjectDatabase) ForPrefix(bucket string, prefix []byte, walker func(k, v []byte) error) error { - return db.kv.View(context.Background(), func(tx kv.Tx) error { - return tx.ForPrefix(bucket, prefix, walker) - }) -} - -// Delete deletes the key from the queue and database -func (db *ObjectDatabase) Delete(table string, k []byte) error { - // Execute the actual operation - err := db.kv.Update(context.Background(), func(tx kv.RwTx) error { - return tx.Delete(table, k) - }) - return err -} - -func (db *ObjectDatabase) BucketExists(name string) (bool, error) { - exists := false - if err := db.kv.View(context.Background(), func(tx kv.Tx) (err error) { - migrator, ok := tx.(kv.BucketMigrator) - if !ok { - return fmt.Errorf("%T doesn't implement ethdb.TxMigrator interface", db.kv) - } - exists, err = migrator.ExistsBucket(name) - if err != nil { - return err - } - return nil - }); err != nil { - return false, err - } - return exists, nil -} - -func (db *ObjectDatabase) ClearBuckets(buckets ...string) error { - for i := range buckets { - name := buckets[i] - if err := db.kv.Update(context.Background(), func(tx kv.RwTx) error { - migrator, ok := tx.(kv.BucketMigrator) - if !ok { - return fmt.Errorf("%T doesn't implement ethdb.TxMigrator interface", db.kv) - } - if err := migrator.ClearBucket(name); err != nil { - return err - } - return nil - }); err != nil { - return err - } - } - - return nil -} - -func (db *ObjectDatabase) DropBuckets(buckets ...string) error { - for i := range buckets { - name := buckets[i] - log.Info("Dropping bucket", "name", name) - if err := db.kv.Update(context.Background(), func(tx kv.RwTx) error { - migrator, ok := tx.(kv.BucketMigrator) - if !ok { - return fmt.Errorf("%T doesn't implement ethdb.TxMigrator interface", db.kv) - } - if err := migrator.DropBucket(name); err != nil { - return err - } - return nil - }); err != nil { - return err - } - } - return nil -} - -func (db *ObjectDatabase) Close() { - db.kv.Close() -} - -func (db *ObjectDatabase) RwKV() kv.RwDB { - return db.kv -} - -func (db *ObjectDatabase) SetRwKV(kv kv.RwDB) { - db.kv = kv -} - -func (db *ObjectDatabase) Begin(ctx context.Context, flags ethdb.TxFlags) (ethdb.DbWithPendingMutations, error) { - batch := &TxDb{db: db} - if err := batch.begin(ctx, flags); err != nil { - return batch, err - } - return batch, nil -} diff --git a/ethdb/olddb/tx_db.go b/ethdb/olddb/tx_db.go deleted file mode 100644 index f54727ba04e..00000000000 --- a/ethdb/olddb/tx_db.go +++ /dev/null @@ -1,238 +0,0 @@ -package olddb - -import ( - "context" - "fmt" - - "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/ethdb" - "github.com/ledgerwatch/log/v3" -) - -// TxDb - provides Database interface around ethdb.Tx -// It's not thread-safe! -// TxDb not usable after .Commit()/.Rollback() call, but usable after .CommitAndBegin() call -// you can put unlimited amount of data into this class -// Walk and MultiWalk methods - work outside of Tx object yet, will implement it later -// Deprecated -// nolint -type TxDb struct { - db ethdb.Database - tx kv.Tx - cursors map[string]kv.Cursor - txFlags ethdb.TxFlags - len uint64 -} - -// nolint -func WrapIntoTxDB(tx kv.RwTx) *TxDb { - return &TxDb{tx: tx, cursors: map[string]kv.Cursor{}} -} - -func (m *TxDb) Close() { - panic("don't call me") -} - -func (m *TxDb) Begin(ctx context.Context, flags ethdb.TxFlags) (ethdb.DbWithPendingMutations, error) { - batch := m - if m.tx != nil { - panic("nested transactions not supported") - } - - if err := batch.begin(ctx, flags); err != nil { - return nil, err - } - return batch, nil -} - -func (m *TxDb) cursor(bucket string) (kv.Cursor, error) { - c, ok := m.cursors[bucket] - if !ok { - var err error - c, err = m.tx.Cursor(bucket) - if err != nil { - return nil, err - } - m.cursors[bucket] = c - } - return c, nil -} - -func (m *TxDb) IncrementSequence(bucket string, amount uint64) (res uint64, err error) { - return m.tx.(kv.RwTx).IncrementSequence(bucket, amount) -} - -func (m *TxDb) ReadSequence(bucket string) (res uint64, err error) { - return m.tx.ReadSequence(bucket) -} - -func (m *TxDb) Put(table string, k, v []byte) error { - m.len += uint64(len(k) + len(v)) - c, err := m.cursor(table) - if err != nil { - return err - } - return c.(kv.RwCursor).Put(k, v) -} - -func (m *TxDb) Append(bucket string, key []byte, value []byte) error { - m.len += uint64(len(key) + len(value)) - c, err := m.cursor(bucket) - if err != nil { - return err - } - return c.(kv.RwCursor).Append(key, value) -} - -func (m *TxDb) AppendDup(bucket string, key []byte, value []byte) error { - m.len += uint64(len(key) + len(value)) - c, err := m.cursor(bucket) - if err != nil { - return err - } - return c.(kv.RwCursorDupSort).AppendDup(key, value) -} - -func (m *TxDb) Delete(table string, k []byte) error { - m.len += uint64(len(k)) - c, err := m.cursor(table) - if err != nil { - return err - } - return c.(kv.RwCursor).Delete(k) -} - -func (m *TxDb) begin(ctx context.Context, flags ethdb.TxFlags) error { - db := m.db.(ethdb.HasRwKV).RwKV() - - var tx kv.Tx - var err error - if flagsðdb.RO != 0 { - tx, err = db.BeginRo(ctx) - } else { - tx, err = db.BeginRw(ctx) - } - if err != nil { - return err - } - m.tx = tx - m.cursors = make(map[string]kv.Cursor, 16) - return nil -} - -func (m *TxDb) RwKV() kv.RwDB { - panic("not allowed to get KV interface because you will loose transaction, please use .Tx() method") -} - -// Last can only be called from the transaction thread -func (m *TxDb) Last(bucket string) ([]byte, []byte, error) { - c, err := m.cursor(bucket) - if err != nil { - return []byte{}, nil, err - } - return c.Last() -} - -func (m *TxDb) GetOne(bucket string, key []byte) ([]byte, error) { - c, err := m.cursor(bucket) - if err != nil { - return nil, err - } - _, v, err := c.SeekExact(key) - return v, err -} - -func (m *TxDb) Get(bucket string, key []byte) ([]byte, error) { - dat, err := m.GetOne(bucket, key) - return ethdb.GetOneWrapper(dat, err) -} - -func (m *TxDb) Has(bucket string, key []byte) (bool, error) { - v, err := m.Get(bucket, key) - if err != nil { - return false, err - } - return v != nil, nil -} - -func (m *TxDb) BatchSize() int { - return int(m.len) -} - -func (m *TxDb) ForEach(bucket string, fromPrefix []byte, walker func(k, v []byte) error) error { - return m.tx.ForEach(bucket, fromPrefix, walker) -} - -func (m *TxDb) ForPrefix(bucket string, prefix []byte, walker func(k, v []byte) error) error { - return m.tx.ForPrefix(bucket, prefix, walker) -} - -func (m *TxDb) ForAmount(bucket string, prefix []byte, amount uint32, walker func(k, v []byte) error) error { - return m.tx.ForAmount(bucket, prefix, amount, walker) -} - -func (m *TxDb) Commit() error { - if m.tx == nil { - return fmt.Errorf("second call .Commit() on same transaction") - } - if err := m.tx.Commit(); err != nil { - return err - } - m.tx = nil - m.cursors = nil - m.len = 0 - return nil -} - -func (m *TxDb) Rollback() { - if m.tx == nil { - return - } - m.tx.Rollback() - m.cursors = nil - m.tx = nil - m.len = 0 -} - -func (m *TxDb) Tx() kv.Tx { - return m.tx -} - -func (m *TxDb) BucketExists(name string) (bool, error) { - migrator, ok := m.tx.(kv.BucketMigrator) - if !ok { - return false, fmt.Errorf("%T doesn't implement ethdb.TxMigrator interface", m.tx) - } - return migrator.ExistsBucket(name) -} - -func (m *TxDb) ClearBuckets(buckets ...string) error { - for i := range buckets { - name := buckets[i] - - migrator, ok := m.tx.(kv.BucketMigrator) - if !ok { - return fmt.Errorf("%T doesn't implement ethdb.TxMigrator interface", m.tx) - } - if err := migrator.ClearBucket(name); err != nil { - return err - } - } - - return nil -} - -func (m *TxDb) DropBuckets(buckets ...string) error { - for i := range buckets { - name := buckets[i] - log.Info("Dropping bucket", "name", name) - migrator, ok := m.tx.(kv.BucketMigrator) - if !ok { - return fmt.Errorf("%T doesn't implement ethdb.TxMigrator interface", m.tx) - } - if err := migrator.DropBucket(name); err != nil { - return err - } - } - return nil -} diff --git a/ethdb/privateapi/ethbackend.go b/ethdb/privateapi/ethbackend.go index cc8f3f6d183..1e0bb3bc1f5 100644 --- a/ethdb/privateapi/ethbackend.go +++ b/ethdb/privateapi/ethbackend.go @@ -53,6 +53,7 @@ type EthBackend interface { NetPeerCount() (uint64, error) NodesInfo(limit int) (*remote.NodesInfoReply, error) Peers(ctx context.Context) (*remote.PeersReply, error) + AddPeer(ctx context.Context, url *remote.AddPeerRequest) (*remote.AddPeerReply, error) } func NewEthBackendServer(ctx context.Context, eth EthBackend, db kv.RwDB, events *shards.Events, blockReader services.FullBlockReader, @@ -95,10 +96,19 @@ func (s *EthBackendServer) Version(context.Context, *emptypb.Empty) (*types2.Ver return EthBackendAPIVersion, nil } -func (s *EthBackendServer) PendingBlock(_ context.Context, _ *emptypb.Empty) (*remote.PendingBlockReply, error) { +func (s *EthBackendServer) PendingBlock(ctx context.Context, _ *emptypb.Empty) (*remote.PendingBlockReply, error) { pendingBlock := s.latestBlockBuiltStore.BlockBuilt() if pendingBlock == nil { - return nil, nil + tx, err := s.db.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + // use latest + pendingBlock, err = s.blockReader.CurrentBlock(tx) + if err != nil { + return nil, err + } } blockRlp, err := rlp.EncodeToBytes(pendingBlock) @@ -237,9 +247,29 @@ func (s *EthBackendServer) Peers(ctx context.Context, _ *emptypb.Empty) (*remote return s.eth.Peers(ctx) } +func (s *EthBackendServer) AddPeer(ctx context.Context, req *remote.AddPeerRequest) (*remote.AddPeerReply, error) { + return s.eth.AddPeer(ctx, req) +} + func (s *EthBackendServer) SubscribeLogs(server remote.ETHBACKEND_SubscribeLogsServer) (err error) { if s.logsFilter != nil { return s.logsFilter.subscribeLogs(server) } return fmt.Errorf("no logs filter available") } + +func (s *EthBackendServer) BorEvent(ctx context.Context, req *remote.BorEventRequest) (*remote.BorEventReply, error) { + tx, err := s.db.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + _, ok, err := s.blockReader.EventLookup(ctx, tx, gointerfaces.ConvertH256ToHash(req.BorTxHash)) + if err != nil { + return nil, err + } + if !ok { + return &remote.BorEventReply{}, nil + } + return &remote.BorEventReply{}, nil +} diff --git a/ethdb/privateapi/mining.go b/ethdb/privateapi/mining.go index 414fb9891e7..0413b2b957f 100644 --- a/ethdb/privateapi/mining.go +++ b/ethdb/privateapi/mining.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "sync" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -12,7 +13,6 @@ import ( "github.com/ledgerwatch/log/v3" "google.golang.org/protobuf/types/known/emptypb" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rlp" diff --git a/ethstats/ethstats.go b/ethstats/ethstats.go index 45f67ab8de2..a2556f9b551 100644 --- a/ethstats/ethstats.go +++ b/ethstats/ethstats.go @@ -37,12 +37,12 @@ import ( "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/erigon/node" + "github.com/ledgerwatch/erigon/p2p/sentry" ) const ( diff --git a/go.mod b/go.mod index ec0ebad5bc3..306eb4dd623 100644 --- a/go.mod +++ b/go.mod @@ -1,42 +1,43 @@ module github.com/ledgerwatch/erigon -go 1.19 +go 1.20 require ( - github.com/ledgerwatch/erigon-lib v0.0.0-20230806094003-563a68124b44 - github.com/ledgerwatch/erigon-snapshot v1.2.1-0.20230622075030-1d69651854c2 - github.com/ledgerwatch/log/v3 v3.8.0 + github.com/erigontech/mdbx-go v0.27.21 + github.com/erigontech/silkworm-go v0.10.0 + github.com/ledgerwatch/erigon-lib v1.0.0 + github.com/ledgerwatch/log/v3 v3.9.0 github.com/ledgerwatch/secp256k1 v1.0.0 - github.com/ledgerwatch/trackerslist v1.1.0 // indirect - github.com/torquem-ch/mdbx-go v0.27.10 ) +replace github.com/ledgerwatch/erigon-lib => ./erigon-lib + require ( - gfx.cafe/util/go/generic v0.0.0-20230502013805-237fcc25d586 - github.com/99designs/gqlgen v0.17.33 - github.com/Giulio2002/bls v0.0.0-20230611172327-c0b9800e7b57 + gfx.cafe/util/go/generic v0.0.0-20230721185457-c559e86c829c + github.com/99designs/gqlgen v0.17.40 + github.com/Giulio2002/bls v0.0.0-20230906201036-c2330c97dc7d github.com/RoaringBitmap/roaring v1.2.3 github.com/VictoriaMetrics/fastcache v1.12.1 - github.com/VictoriaMetrics/metrics v1.23.1 github.com/alecthomas/kong v0.8.0 + github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4 github.com/anacrolix/sync v0.4.0 - github.com/anacrolix/torrent v1.52.0 + github.com/anacrolix/torrent v1.52.6-0.20231201115409-7ea994b6bbd8 github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b github.com/btcsuite/btcd/btcec/v2 v2.1.3 github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b - github.com/consensys/gnark-crypto v0.10.0 + github.com/consensys/gnark-crypto v0.12.1 github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc - github.com/crate-crypto/go-kzg-4844 v0.3.0 + github.com/crate-crypto/go-kzg-4844 v0.7.0 github.com/davecgh/go-spew v1.1.1 github.com/deckarep/golang-set v1.8.0 - github.com/deckarep/golang-set/v2 v2.3.0 + github.com/deckarep/golang-set/v2 v2.3.1 github.com/docker/docker v1.6.2 github.com/dop251/goja v0.0.0-20220405120441-9037c2b61cbf github.com/edsrzf/mmap-go v1.1.0 - github.com/emicklei/dot v1.4.2 + github.com/emicklei/dot v1.6.0 github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c github.com/gballet/go-verkle v0.0.0-20221121182333-31427a1f2d35 - github.com/go-chi/chi/v5 v5.0.8 + github.com/go-chi/chi/v5 v5.0.10 github.com/goccy/go-json v0.9.11 github.com/gofrs/flock v0.8.1 github.com/golang-jwt/jwt/v4 v4.5.0 @@ -46,34 +47,33 @@ require ( github.com/google/gofuzz v1.2.0 github.com/gorilla/websocket v1.5.0 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 - github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d - github.com/hashicorp/golang-lru/arc/v2 v2.0.4 - github.com/hashicorp/golang-lru/v2 v2.0.4 + github.com/hashicorp/golang-lru/arc/v2 v2.0.6 + github.com/hashicorp/golang-lru/v2 v2.0.6 github.com/holiman/uint256 v1.2.3 github.com/huandu/xstrings v1.4.0 github.com/huin/goupnp v1.2.0 github.com/jackpal/go-nat-pmp v1.0.2 + github.com/jedib0t/go-pretty/v6 v6.4.7 github.com/json-iterator/go v1.1.12 github.com/julienschmidt/httprouter v1.3.0 - github.com/libp2p/go-libp2p v0.28.0 + github.com/klauspost/compress v1.17.3 + github.com/libp2p/go-libp2p v0.31.0 + github.com/libp2p/go-libp2p-mplex v0.9.0 github.com/libp2p/go-libp2p-pubsub v0.9.3 github.com/maticnetwork/crand v1.0.2 - github.com/maticnetwork/polyproto v0.0.2 - github.com/multiformats/go-multiaddr v0.9.0 + github.com/maticnetwork/polyproto v0.0.3-0.20230216113155-340ea926ca53 + github.com/multiformats/go-multiaddr v0.11.0 github.com/nxadm/tail v1.4.9-0.20211216163028-4472660a31a6 - github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 github.com/pelletier/go-toml v1.9.5 - github.com/pelletier/go-toml/v2 v2.0.8 + github.com/pelletier/go-toml/v2 v2.1.0 + github.com/pierrec/lz4 v2.6.1+incompatible github.com/pion/randutil v0.1.0 github.com/pion/stun v0.6.0 - github.com/prometheus/client_golang v1.16.0 - github.com/prometheus/common v0.44.0 github.com/protolambda/ztyp v0.2.2 github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7 - github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230510131438-bf992328364a + github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230502123415-aafd8b3ca202 github.com/quasilyte/go-ruleguard/dsl v0.3.22 - github.com/rs/cors v1.9.0 - github.com/shirou/gopsutil/v3 v3.23.4 + github.com/rs/cors v1.10.1 github.com/spf13/afero v1.9.5 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 @@ -84,55 +84,73 @@ require ( github.com/ugorji/go/codec/codecgen v1.1.13 github.com/urfave/cli/v2 v2.25.7 github.com/valyala/fastjson v1.6.4 - github.com/vektah/gqlparser/v2 v2.5.6 + github.com/vektah/gqlparser/v2 v2.5.10 github.com/xsleonard/go-merkle v1.1.0 - go.uber.org/zap v1.24.0 - golang.org/x/crypto v0.11.0 - golang.org/x/exp v0.0.0-20230711023510-fffb14384f22 - golang.org/x/net v0.12.0 - golang.org/x/sync v0.3.0 - golang.org/x/sys v0.10.0 - golang.org/x/time v0.3.0 - google.golang.org/grpc v1.56.2 + go.uber.org/zap v1.26.0 + golang.org/x/crypto v0.16.0 + golang.org/x/exp v0.0.0-20230905200255-921286631fa9 + golang.org/x/net v0.19.0 + golang.org/x/sync v0.5.0 + golang.org/x/sys v0.15.0 + golang.org/x/time v0.5.0 + google.golang.org/grpc v1.59.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/protobuf v1.31.0 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.1 - modernc.org/sqlite v1.23.1 - pgregory.net/rapid v1.0.0 + modernc.org/sqlite v1.27.0 + pgregory.net/rapid v1.1.0 ) require ( - crawshaw.io/sqlite v0.3.3-0.20220618202545-d1964889ea3c // indirect github.com/agnivade/levenshtein v1.1.1 // indirect github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 // indirect github.com/alecthomas/atomic v0.1.0-alpha2 // indirect github.com/anacrolix/chansync v0.3.0 // indirect - github.com/anacrolix/dht/v2 v2.19.2-0.20221121215055-066ad8494444 // indirect - github.com/anacrolix/envpprof v1.2.1 // indirect - github.com/anacrolix/generics v0.0.0-20230428105757-683593396d68 // indirect - github.com/anacrolix/go-libutp v1.3.0 // indirect - github.com/anacrolix/log v0.14.0 // indirect + github.com/anacrolix/dht/v2 v2.20.0 // indirect + github.com/anacrolix/envpprof v1.3.0 // indirect + github.com/anacrolix/generics v0.0.0-20230816105729-c755655aee45 // indirect + github.com/anacrolix/go-libutp v1.3.1 // indirect github.com/anacrolix/missinggo v1.3.0 // indirect github.com/anacrolix/missinggo/perf v1.0.0 // indirect github.com/anacrolix/missinggo/v2 v2.7.2-0.20230527121029-a582b4f397b9 // indirect github.com/anacrolix/mmsg v1.0.0 // indirect - github.com/anacrolix/multiless v0.3.0 // indirect - github.com/anacrolix/stm v0.4.0 // indirect + github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7 // indirect + github.com/anacrolix/stm v0.4.1-0.20221221005312-96d17df0e496 // indirect github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 // indirect github.com/anacrolix/utp v0.1.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.21.2 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 // indirect + github.com/aws/aws-sdk-go-v2/config v1.19.0 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.43 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 // indirect + github.com/aws/smithy-go v1.15.0 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/benbjohnson/clock v1.3.5 // indirect - github.com/benbjohnson/immutable v0.3.0 // indirect + github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bits-and-blooms/bitset v1.5.0 // indirect + github.com/bits-and-blooms/bitset v1.7.0 // indirect github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cilium/ebpf v0.9.1 // indirect github.com/consensys/bavard v0.1.13 // indirect github.com/containerd/cgroups v1.1.0 // indirect + github.com/containerd/cgroups/v3 v3.0.2 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect @@ -145,9 +163,10 @@ require ( github.com/francoispqt/gojay v1.2.13 // indirect github.com/fsnotify/fsnotify v1.5.4 // indirect github.com/garslo/gogen v0.0.0-20170307003452-d6ebae628c7c // indirect + github.com/go-llsqlite/adapter v0.0.0-20230912124304-94ed0e573c23 // indirect + github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect github.com/go-stack/stack v1.8.1 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect @@ -155,19 +174,19 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/gopacket v1.1.19 // indirect - github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b // indirect + github.com/google/uuid v1.3.1 // indirect github.com/ianlancetaylor/cgosymbolizer v0.0.0-20220405231054-a1ae3e4bba26 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/ipfs/go-cid v0.4.1 // indirect github.com/ipfs/go-log/v2 v2.5.1 // indirect github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect - github.com/klauspost/compress v1.16.5 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/koron/go-ssdp v0.0.4 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect + github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231210032908-6ff6f4c91c60 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-cidranger v1.1.0 // indirect github.com/libp2p/go-flow-metrics v0.1.0 // indirect @@ -176,15 +195,14 @@ require ( github.com/libp2p/go-msgio v0.3.0 // indirect github.com/libp2p/go-nat v0.2.0 // indirect github.com/libp2p/go-netroute v0.2.1 // indirect - github.com/libp2p/go-reuseport v0.3.0 // indirect - github.com/libp2p/go-yamux/v4 v4.0.0 // indirect - github.com/lispad/go-generics-tools v1.1.0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/libp2p/go-reuseport v0.4.0 // indirect + github.com/libp2p/go-yamux/v4 v4.0.1 // indirect github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-runewidth v0.0.13 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/miekg/dns v1.1.54 // indirect + github.com/miekg/dns v1.1.55 // indirect github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect github.com/minio/sha256-simd v1.0.1 // indirect @@ -200,11 +218,12 @@ require ( github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect github.com/multiformats/go-multibase v0.2.0 // indirect github.com/multiformats/go-multicodec v0.9.0 // indirect - github.com/multiformats/go-multihash v0.2.2 // indirect + github.com/multiformats/go-multihash v0.2.3 // indirect github.com/multiformats/go-multistream v0.4.1 // indirect github.com/multiformats/go-varint v0.0.7 // indirect - github.com/onsi/ginkgo/v2 v2.9.7 // indirect - github.com/opencontainers/runtime-spec v1.0.2 // indirect + github.com/onsi/ginkgo/v2 v2.11.0 // indirect + github.com/opencontainers/runtime-spec v1.1.0 // indirect + github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect github.com/pion/datachannel v1.5.2 // indirect github.com/pion/dtls/v2 v2.2.7 // indirect github.com/pion/ice/v2 v2.2.6 // indirect @@ -222,53 +241,48 @@ require ( github.com/pion/webrtc/v3 v3.1.42 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_model v0.4.0 // indirect - github.com/prometheus/procfs v0.10.1 // indirect + github.com/prometheus/client_golang v1.17.0 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.11.1 // indirect github.com/quic-go/qpack v0.4.0 // indirect - github.com/quic-go/qtls-go1-19 v0.3.2 // indirect - github.com/quic-go/qtls-go1-20 v0.2.2 // indirect - github.com/quic-go/quic-go v0.33.0 // indirect + github.com/quic-go/qtls-go1-20 v0.3.3 // indirect + github.com/quic-go/quic-go v0.38.1 // indirect github.com/quic-go/webtransport-go v0.5.3 // indirect github.com/raulk/go-watchdog v1.3.0 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/rivo/uniseg v0.2.0 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/shoenig/go-m1cpu v0.1.5 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect + github.com/sosodev/duration v1.1.0 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect - github.com/supranational/blst v0.3.10 // indirect - github.com/tklauser/go-sysconf v0.3.11 // indirect - github.com/tklauser/numcpus v0.6.0 // indirect - github.com/valyala/fastrand v1.1.0 // indirect - github.com/valyala/histogram v1.2.0 // indirect + github.com/supranational/blst v0.3.11 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect - github.com/yusufpapurcu/wmi v1.2.2 // indirect go.etcd.io/bbolt v1.3.6 // indirect go.opentelemetry.io/otel v1.8.0 // indirect go.opentelemetry.io/otel/trace v1.8.0 // indirect - go.uber.org/atomic v1.11.0 // indirect go.uber.org/dig v1.17.0 // indirect - go.uber.org/fx v1.19.2 // indirect + go.uber.org/fx v1.20.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/mod v0.11.0 // indirect - golang.org/x/text v0.11.0 // indirect - golang.org/x/tools v0.9.3 // indirect - google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/tools v0.16.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect lukechampine.com/blake3 v1.2.1 // indirect lukechampine.com/uint128 v1.3.0 // indirect - modernc.org/cc/v3 v3.40.0 // indirect - modernc.org/ccgo/v3 v3.16.13 // indirect - modernc.org/libc v1.22.5 // indirect - modernc.org/mathutil v1.5.0 // indirect - modernc.org/memory v1.5.0 // indirect + modernc.org/cc/v3 v3.41.0 // indirect + modernc.org/ccgo/v3 v3.16.15 // indirect + modernc.org/libc v1.29.0 // indirect + modernc.org/mathutil v1.6.0 // indirect + modernc.org/memory v1.7.2 // indirect modernc.org/opt v0.1.3 // indirect - modernc.org/strutil v1.1.3 // indirect + modernc.org/strutil v1.2.0 // indirect modernc.org/token v1.1.0 // indirect rsc.io/tmplfunc v0.0.3 // indirect + zombiezen.com/go/sqlite v0.13.1 // indirect ) replace github.com/tendermint/tendermint => github.com/bnb-chain/tendermint v0.31.12 - -replace github.com/VictoriaMetrics/metrics => github.com/ourzora/erigon-metrics v0.0.0-20230808214014-887c5bbc7969 diff --git a/go.sum b/go.sum index 7e0d18845f4..528cb061d4c 100644 --- a/go.sum +++ b/go.sum @@ -40,23 +40,21 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f crawshaw.io/iox v0.0.0-20181124134642-c51c3df30797 h1:yDf7ARQc637HoxDho7xjqdvO5ZA2Yb+xzv/fOnnvZzw= crawshaw.io/iox v0.0.0-20181124134642-c51c3df30797/go.mod h1:sXBiorCo8c46JlQV3oXPKINnZ8mcqnye1EkVkqsectk= crawshaw.io/sqlite v0.3.2/go.mod h1:igAO5JulrQ1DbdZdtVq48mnZUBAPOeFzer7VhDWNtW4= -crawshaw.io/sqlite v0.3.3-0.20220618202545-d1964889ea3c h1:wvzox0eLO6CKQAMcOqz7oH3UFqMpMmK7kwmwV+22HIs= -crawshaw.io/sqlite v0.3.3-0.20220618202545-d1964889ea3c/go.mod h1:igAO5JulrQ1DbdZdtVq48mnZUBAPOeFzer7VhDWNtW4= dmitri.shuralyov.com/app/changes v0.0.0-20180602232624-0a106ad413e3/go.mod h1:Yl+fi1br7+Rr3LqpNJf1/uxUdtRUV+Tnj0o93V2B9MU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/html/belt v0.0.0-20180602232347-f7d459c86be0/go.mod h1:JLBrvjyP0v+ecvNYvCpyZgu5/xkfAUhi6wJj28eUfSU= dmitri.shuralyov.com/service/change v0.0.0-20181023043359-a85b471d5412/go.mod h1:a1inKt/atXimZ4Mv927x+r7UpyzRUf4emIoiiSC2TN4= dmitri.shuralyov.com/state v0.0.0-20180228185332-28bcc343414c/go.mod h1:0PRwlb0D6DFvNNtx+9ybjezNCa8XF0xaYcETyp6rHWU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= -gfx.cafe/util/go/generic v0.0.0-20230502013805-237fcc25d586 h1:dlvliDuuuI3E+HtVeZVQgKuGcf0fGNNNadt04fgTyX8= -gfx.cafe/util/go/generic v0.0.0-20230502013805-237fcc25d586/go.mod h1:WvSX4JsCRBuIXj0FRBFX9YLg+2SoL3w8Ww19uZO9yNE= +gfx.cafe/util/go/generic v0.0.0-20230721185457-c559e86c829c h1:alCfDKmPC0EC0KGlZWrNF0hilVWBkzMz+aAYTJ/2hY4= +gfx.cafe/util/go/generic v0.0.0-20230721185457-c559e86c829c/go.mod h1:WvSX4JsCRBuIXj0FRBFX9YLg+2SoL3w8Ww19uZO9yNE= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= -github.com/99designs/gqlgen v0.17.33 h1:VTUpAtElDszatPSe26N0SD0deJCSxb7TZLlUb6JnVRY= -github.com/99designs/gqlgen v0.17.33/go.mod h1:ygDK+m8zGpoQuSh8xoq80UfisR5JTZr7mN57qXlSIZs= +github.com/99designs/gqlgen v0.17.40 h1:/l8JcEVQ93wqIfmH9VS1jsAkwm6eAF1NwQn3N+SDqBY= +github.com/99designs/gqlgen v0.17.40/go.mod h1:b62q1USk82GYIVjC60h02YguAZLqYZtvWml8KkhJps4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/Giulio2002/bls v0.0.0-20230611172327-c0b9800e7b57 h1:583GFQgWYOAz3dKqHqARVY3KkgebRcJtU4tzy+87gzc= -github.com/Giulio2002/bls v0.0.0-20230611172327-c0b9800e7b57/go.mod h1:vwm1rY/WKYdwv5Ii5US2bZ3MQVcHadnev+1Ml2QYWFk= +github.com/Giulio2002/bls v0.0.0-20230906201036-c2330c97dc7d h1:fAztVLpjcVcd2al4GL8xYr9Yp7LmXXSTuLqu83U8hKo= +github.com/Giulio2002/bls v0.0.0-20230906201036-c2330c97dc7d/go.mod h1:nCQrFU6/QsJtLS+SBLWRn9UG2nds1f3hQKfWHCrtUqw= github.com/RoaringBitmap/roaring v0.4.7/go.mod h1:8khRDP4HmeXns4xIj9oGrKSz7XTQiJx2zgh7AcNke4w= github.com/RoaringBitmap/roaring v0.4.17/go.mod h1:D3qVegWTmfCaX4Bl5CrBE9hfrSrrXIr8KVNvRsDi1NI= github.com/RoaringBitmap/roaring v0.4.23/go.mod h1:D0gp8kJQgE1A4LQ5wFLggQEyvDi06Mq5mKs52e1TwOo= @@ -84,23 +82,23 @@ github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM= github.com/anacrolix/chansync v0.3.0 h1:lRu9tbeuw3wl+PhMu/r+JJCRu5ArFXIluOgdF0ao6/U= github.com/anacrolix/chansync v0.3.0/go.mod h1:DZsatdsdXxD0WiwcGl0nJVwyjCKMDv+knl1q2iBjA2k= -github.com/anacrolix/dht/v2 v2.19.2-0.20221121215055-066ad8494444 h1:8V0K09lrGoeT2KRJNOtspA7q+OMxGwQqK/Ug0IiaaRE= -github.com/anacrolix/dht/v2 v2.19.2-0.20221121215055-066ad8494444/go.mod h1:MctKM1HS5YYDb3F30NGJxLE+QPuqWoT5ReW/4jt8xew= +github.com/anacrolix/dht/v2 v2.20.0 h1:eDx9lfE9iCSf5sPK0290GToHURNhEFuUGN8iyvhvJDk= +github.com/anacrolix/dht/v2 v2.20.0/go.mod h1:SDGC+sEs1pnO2sJGYuhvIis7T8749dDHNfcjtdH4e3g= github.com/anacrolix/envpprof v0.0.0-20180404065416-323002cec2fa/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= github.com/anacrolix/envpprof v1.0.0/go.mod h1:KgHhUaQMc8cC0+cEflSgCFNFbKwi5h54gqtVn8yhP7c= github.com/anacrolix/envpprof v1.1.0/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4= -github.com/anacrolix/envpprof v1.2.1 h1:25TJe6t/i0AfzzldiGFKCpD+s+dk8lONBcacJZB2rdE= -github.com/anacrolix/envpprof v1.2.1/go.mod h1:My7T5oSqVfEn4MD4Meczkw/f5lSIndGAKu/0SM/rkf4= -github.com/anacrolix/generics v0.0.0-20230428105757-683593396d68 h1:fyXlBfnlFzZSFckJ8QLb2lfmWfY++4RiUnae7ZMuv0A= -github.com/anacrolix/generics v0.0.0-20230428105757-683593396d68/go.mod h1:ff2rHB/joTV03aMSSn/AZNnaIpUw0h3njetGsaXcMy8= -github.com/anacrolix/go-libutp v1.3.0 h1:D18Pvhzq3kvTlMRmjcG0rXM7INfVdfNtfxaoJwzZm9o= -github.com/anacrolix/go-libutp v1.3.0/go.mod h1:heF41EC8kN0qCLMokLBVkB8NXiLwx3t8R8810MTNI5o= +github.com/anacrolix/envpprof v1.3.0 h1:WJt9bpuT7A/CDCxPOv/eeZqHWlle/Y0keJUvc6tcJDk= +github.com/anacrolix/envpprof v1.3.0/go.mod h1:7QIG4CaX1uexQ3tqd5+BRa/9e2D02Wcertl6Yh0jCB0= +github.com/anacrolix/generics v0.0.0-20230816105729-c755655aee45 h1:Kmcl3I9K2+5AdnnR7hvrnVT0TLeFWWMa9bxnm55aVIg= +github.com/anacrolix/generics v0.0.0-20230816105729-c755655aee45/go.mod h1:ff2rHB/joTV03aMSSn/AZNnaIpUw0h3njetGsaXcMy8= +github.com/anacrolix/go-libutp v1.3.1 h1:idJzreNLl+hNjGC3ZnUOjujEaryeOGgkwHLqSGoige0= +github.com/anacrolix/go-libutp v1.3.1/go.mod h1:heF41EC8kN0qCLMokLBVkB8NXiLwx3t8R8810MTNI5o= github.com/anacrolix/log v0.3.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU= github.com/anacrolix/log v0.6.0/go.mod h1:lWvLTqzAnCWPJA08T2HCstZi0L1y2Wyvm3FJgwU9jwU= github.com/anacrolix/log v0.10.1-0.20220123034749-3920702c17f8/go.mod h1:GmnE2c0nvz8pOIPUSC9Rawgefy1sDXqposC2wgtBZE4= github.com/anacrolix/log v0.13.1/go.mod h1:D4+CvN8SnruK6zIFS/xPoRJmtvtnxs+CSfDQ+BFxZ68= -github.com/anacrolix/log v0.14.0 h1:mYhTSemILe/Z8tIxbGdTIWWpPspI8W/fhZHpoFbDaL0= -github.com/anacrolix/log v0.14.0/go.mod h1:1OmJESOtxQGNMlUO5rcv96Vpp9mfMqXXbe2RdinFLdY= +github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4 h1:01OE3pdiBGIZGyQb6cIAu+QfaNhBR9k5MVmLsl+DVbE= +github.com/anacrolix/log v0.14.3-0.20230823030427-4b296d71a6b4/go.mod h1:1OmJESOtxQGNMlUO5rcv96Vpp9mfMqXXbe2RdinFLdY= github.com/anacrolix/lsan v0.0.0-20211126052245-807000409a62 h1:P04VG6Td13FHMgS5ZBcJX23NPC/fiC4cp9bXwYujdYM= github.com/anacrolix/lsan v0.0.0-20211126052245-807000409a62/go.mod h1:66cFKPCO7Sl4vbFnAaSq7e4OXtdMhRSBagJGWgmpJbM= github.com/anacrolix/missinggo v0.0.0-20180725070939-60ef2fbf63df/go.mod h1:kwGiTUTZ0+p4vAz3VbAI5a30t2YbvemcmspjKwrAz5s= @@ -119,11 +117,11 @@ github.com/anacrolix/missinggo/v2 v2.7.2-0.20230527121029-a582b4f397b9/go.mod h1 github.com/anacrolix/mmsg v0.0.0-20180515031531-a4a3ba1fc8bb/go.mod h1:x2/ErsYUmT77kezS63+wzZp8E3byYB0gzirM/WMBLfw= github.com/anacrolix/mmsg v1.0.0 h1:btC7YLjOn29aTUAExJiVUhQOuf/8rhm+/nWCMAnL3Hg= github.com/anacrolix/mmsg v1.0.0/go.mod h1:x8kRaJY/dCrY9Al0PEcj1mb/uFHwP6GCJ9fLl4thEPc= -github.com/anacrolix/multiless v0.3.0 h1:5Bu0DZncjE4e06b9r1Ap2tUY4Au0NToBP5RpuEngSis= -github.com/anacrolix/multiless v0.3.0/go.mod h1:TrCLEZfIDbMVfLoQt5tOoiBS/uq4y8+ojuEVVvTNPX4= +github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7 h1:lOtCD+LzoD1g7bowhYJNR++uV+FyY5bTZXKwnPex9S8= +github.com/anacrolix/multiless v0.3.1-0.20221221005021-2d12701f83f7/go.mod h1:zJv1JF9AqdZiHwxqPgjuOZDGWER6nyE48WBCi/OOrMM= github.com/anacrolix/stm v0.2.0/go.mod h1:zoVQRvSiGjGoTmbM0vSLIiaKjWtNPeTvXUSdJQA4hsg= -github.com/anacrolix/stm v0.4.0 h1:tOGvuFwaBjeu1u9X1eIh9TX8OEedEiEQ1se1FjhFnXY= -github.com/anacrolix/stm v0.4.0/go.mod h1:GCkwqWoAsP7RfLW+jw+Z0ovrt2OO7wRzcTtFYMYY5t8= +github.com/anacrolix/stm v0.4.1-0.20221221005312-96d17df0e496 h1:aMiRi2kOOd+nG64suAmFMVnNK2E6GsnLif7ia9tI3cA= +github.com/anacrolix/stm v0.4.1-0.20221221005312-96d17df0e496/go.mod h1:DBm8/1OXm4A4RZ6Xa9u/eOsjeAXCaoRYvd2JzlskXeM= github.com/anacrolix/sync v0.0.0-20180808010631-44578de4e778/go.mod h1:s735Etp3joe/voe2sdaXLcqDdJSay1O0OPnM0ystjqk= github.com/anacrolix/sync v0.3.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DCOj/I0g= github.com/anacrolix/sync v0.4.0 h1:T+MdO/u87ir/ijWsTFsPYw5jVm0SMm4kVpg8t4KF38o= @@ -131,18 +129,53 @@ github.com/anacrolix/sync v0.4.0/go.mod h1:BbecHL6jDSExojhNtgTFSBcdGerzNc64tz3DC github.com/anacrolix/tagflag v0.0.0-20180109131632-2146c8d41bf0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/anacrolix/tagflag v1.0.0/go.mod h1:1m2U/K6ZT+JZG0+bdMK6qauP49QT4wE5pmhJXOKKCHw= github.com/anacrolix/tagflag v1.1.0/go.mod h1:Scxs9CV10NQatSmbyjqmqmeQNwGzlNe0CMUMIxqHIG8= -github.com/anacrolix/torrent v1.52.0 h1:bjhmB3OmwXS/dpvvLoBEfsg8GUl9r5BVnTYk3Jfmge0= -github.com/anacrolix/torrent v1.52.0/go.mod h1:+XzcWXQU97PPEWSvpC85MJyqzP1vz47M5BYGno4vIHg= +github.com/anacrolix/torrent v1.52.6-0.20231201115409-7ea994b6bbd8 h1:6EyYT2DsEOZ/WwTDsQ0HXHI996IdT0MZCGP2L6xvfNg= +github.com/anacrolix/torrent v1.52.6-0.20231201115409-7ea994b6bbd8/go.mod h1:Ma/WtLey9lU97u2i55LUJ8AnXaL2GfEK6pWh7/9v1hI= github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96 h1:QAVZ3pN/J4/UziniAhJR2OZ9Ox5kOY2053tBbbqUPYA= github.com/anacrolix/upnp v0.1.3-0.20220123035249-922794e51c96/go.mod h1:Wa6n8cYIdaG35x15aH3Zy6d03f7P728QfdcDeD/IEOs= github.com/anacrolix/utp v0.1.0 h1:FOpQOmIwYsnENnz7tAGohA+r6iXpRjrq8ssKSre2Cp4= github.com/anacrolix/utp v0.1.0/go.mod h1:MDwc+vsGEq7RMw6lr2GKOEqjWny5hO5OZXRVNaBJ2Dk= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= +github.com/aws/aws-sdk-go-v2 v1.21.2 h1:+LXZ0sgo8quN9UOKXXzAWRT3FWd4NxeXWOZom9pE7GA= +github.com/aws/aws-sdk-go-v2 v1.21.2/go.mod h1:ErQhvNuEMhJjweavOYhxVkn2RUx7kQXVATHrjKtxIpM= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14 h1:Sc82v7tDQ/vdU1WtuSyzZ1I7y/68j//HJ6uozND1IDs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.14/go.mod h1:9NCTOURS8OpxvoAVHq79LK81/zC78hfRWFn+aL0SPcY= +github.com/aws/aws-sdk-go-v2/config v1.19.0 h1:AdzDvwH6dWuVARCl3RTLGRc4Ogy+N7yLFxVxXe1ClQ0= +github.com/aws/aws-sdk-go-v2/config v1.19.0/go.mod h1:ZwDUgFnQgsazQTnWfeLWk5GjeqTQTL8lMkoE1UXzxdE= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43 h1:LU8vo40zBlo3R7bAvBVy/ku4nxGEyZe9N8MqAeFTzF8= +github.com/aws/aws-sdk-go-v2/credentials v1.13.43/go.mod h1:zWJBz1Yf1ZtX5NGax9ZdNjhhI4rgjfgsyk6vTY1yfVg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13 h1:PIktER+hwIG286DqXyvVENjgLTAwGgoeriLDD5C+YlQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.13/go.mod h1:f/Ib/qYjhV2/qdsf79H3QP/eRE4AkVyEf6sk7XfZ1tg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43 h1:nFBQlGtkbPzp/NjZLuFxRqmT91rLJkgvsEQs68h962Y= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.43/go.mod h1:auo+PiyLl0n1l8A0e8RIeR8tOzYPfZZH/JNlrJ8igTQ= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37 h1:JRVhO25+r3ar2mKGP7E0LDl8K9/G36gjlqca5iQbaqc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.37/go.mod h1:Qe+2KtKml+FEsQF/DHmDV+xjtche/hwoF75EG4UlHW8= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45 h1:hze8YsjSh8Wl1rYa1CJpRmXP21BvOBuc76YhW0HsuQ4= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.45/go.mod h1:lD5M20o09/LCuQ2mE62Mb/iSdSlCNuj6H5ci7tW7OsE= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6 h1:wmGLw2i8ZTlHLw7a9ULGfQbuccw8uIiNr6sol5bFzc8= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.1.6/go.mod h1:Q0Hq2X/NuL7z8b1Dww8rmOFl+jzusKEcyvkKspwdpyc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15 h1:7R8uRYyXzdD71KWVCL78lJZltah6VVznXBazvKjfH58= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15/go.mod h1:26SQUPcTNgV1Tapwdt4a1rOsYRsnBsJHLMPoxK2b0d8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38 h1:skaFGzv+3kA+v2BPKhuekeb1Hbb105+44r8ASC+q5SE= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.38/go.mod h1:epIZoRSSbRIwLPJU5F+OldHhwZPBdpDeQkRdCeY3+00= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37 h1:WWZA/I2K4ptBS1kg0kV1JbBtG/umed0vwHRrmcr9z7k= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.37/go.mod h1:vBmDnwWXWxNPFRMmG2m/3MKOe+xEcMDo1tanpaWCcck= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6 h1:9ulSU5ClouoPIYhDQdg9tpl83d5Yb91PXTKK+17q+ow= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.15.6/go.mod h1:lnc2taBsR9nTlz9meD+lhFZZ9EWY712QHrRflWpTcOA= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2 h1:Ll5/YVCOzRB+gxPqs2uD0R7/MyATC0w85626glSKmp4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.40.2/go.mod h1:Zjfqt7KhQK+PO1bbOsFNzKgaq7TcxzmEoDWN8lM0qzQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2 h1:JuPGc7IkOP4AaqcZSIcyqLpFSqBWK32rM9+a1g6u73k= +github.com/aws/aws-sdk-go-v2/service/sso v1.15.2/go.mod h1:gsL4keucRCgW+xA85ALBpRFfdSLH4kHOVSnLMSuBECo= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3 h1:HFiiRkf1SdaAmV3/BHOFZ9DjFynPHj8G/UIO1lQS+fk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.17.3/go.mod h1:a7bHA82fyUXOm+ZSWKU6PIoBxrjSprdLoM8xPYvzYVg= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2 h1:0BkLfgeDjfZnZ+MhB3ONb01u9pwFYTCZVhlsSSBvlbU= +github.com/aws/aws-sdk-go-v2/service/sts v1.23.2/go.mod h1:Eows6e1uQEsc4ZaHANmsPRzAKcVDrcmjjWiih2+HUUQ= +github.com/aws/smithy-go v1.15.0 h1:PS/durmlzvAFpQHDs4wi4sNNP9ExsqZh6IlfdHXgKK8= +github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -150,8 +183,8 @@ github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZx github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/immutable v0.2.0/go.mod h1:uc6OHo6PN2++n98KHLxW8ef4W42ylHiQSENghE1ezxI= -github.com/benbjohnson/immutable v0.3.0 h1:TVRhuZx2wG9SZ0LRdqlbs9S5BZ6Y24hJEHTCgWHZEIw= -github.com/benbjohnson/immutable v0.3.0/go.mod h1:uc6OHo6PN2++n98KHLxW8ef4W42ylHiQSENghE1ezxI= +github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d h1:2qVb9bsAMtmAfnxXltm+6eBzrrS7SZ52c3SedsulaMI= +github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d/go.mod h1:iAr8OjJGLnLmVUr9MZ/rz4PWUy6Ouc2JLYuMArmvAJM= github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b h1:5JgaFtHFRnOPReItxvhMDXbvuBkjSWE+9glJyF466yw= github.com/benesch/cgosymbolizer v0.0.0-20190515212042-bec6fe6e597b/go.mod h1:eMD2XUcPsHYbakFEocKrWZp47G0MRJYoC60qFblGjpA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -159,8 +192,8 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= -github.com/bits-and-blooms/bitset v1.5.0 h1:NpE8frKRLGHIcEzkR+gZhiioW1+WbYV6fKwD6ZIpQT8= -github.com/bits-and-blooms/bitset v1.5.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bits-and-blooms/bitset v1.7.0 h1:YjAGVd3XmtK9ktAbX8Zg2g2PwLIMjGREZJHlV4j7NEo= +github.com/bits-and-blooms/bitset v1.7.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= github.com/bradfitz/iter v0.0.0-20190303215204-33e6a9893b0c/go.mod h1:PyRFw1Lt2wKX4ZVSQ2mk+PeDa1rxyObEDlApuIsUKuo= @@ -181,17 +214,21 @@ github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWR github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4= +github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/consensys/bavard v0.1.13 h1:oLhMLOFGTLdlda/kma4VOJazblc7IM5y5QPd2A/YjhQ= github.com/consensys/bavard v0.1.13/go.mod h1:9ItSMtA/dXMAiL7BG6bqW2m3NdSEObYWoH223nGHukI= -github.com/consensys/gnark-crypto v0.10.0 h1:zRh22SR7o4K35SoNqouS9J/TKHTyU2QWaj5ldehyXtA= -github.com/consensys/gnark-crypto v0.10.0/go.mod h1:Iq/P3HHl0ElSjsg2E1gsMwhAyxnxoKK5nVyZKd+/KhU= +github.com/consensys/gnark-crypto v0.12.1 h1:lHH39WuuFgVHONRl3J0LRBtuYdQTumFSDtJF7HpyG8M= +github.com/consensys/gnark-crypto v0.12.1/go.mod h1:v2Gy7L/4ZRosZ7Ivs+9SfUDr0f5UlG+EM5t7MPHiLuY= github.com/containerd/cgroups v0.0.0-20201119153540-4cbc285b3327/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= +github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= +github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= @@ -202,8 +239,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHH github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc h1:mtR7MuscVeP/s0/ERWA2uSr5QOrRYy1pdvZqG1USfXI= github.com/crate-crypto/go-ipa v0.0.0-20221111143132-9aa5d42120bc/go.mod h1:gFnFS95y8HstDP6P9pPwzrxOOC5TRDkwbM+ao15ChAI= -github.com/crate-crypto/go-kzg-4844 v0.3.0 h1:UBlWE0CgyFqqzTI+IFyCzA7A3Zw4iip6uzRv5NIXG0A= -github.com/crate-crypto/go-kzg-4844 v0.3.0/go.mod h1:SBP7ikXEgDnUPONgm33HtuDZEDtWa3L4QtN1ocJSEQ4= +github.com/crate-crypto/go-kzg-4844 v0.7.0 h1:C0vgZRk4q4EZ/JgPfzuSoxdCq3C3mOZMBShovmncxvA= +github.com/crate-crypto/go-kzg-4844 v0.7.0/go.mod h1:1kMhvPgI0Ky3yIa+9lFySEBUBXkYxeOi8ZF1sYioxhc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -212,8 +249,8 @@ github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c h1:pFUpOrbxDR github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c/go.mod h1:6UhI8N9EjYm1c2odKpFpAYeR8dsBeM7PtzQhRgxRr9U= github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= -github.com/deckarep/golang-set/v2 v2.3.0 h1:qs18EKUfHm2X9fA50Mr/M5hccg2tNnVqsiBImnyDs0g= -github.com/deckarep/golang-set/v2 v2.3.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/deckarep/golang-set/v2 v2.3.1 h1:vjmkvJt/IV27WXPyYQpAh4bRyWJc5Y435D17XQ9QU5A= +github.com/deckarep/golang-set/v2 v2.3.1/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= @@ -242,14 +279,18 @@ github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8E github.com/elastic/gosigar v0.12.0/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= github.com/elastic/gosigar v0.14.2 h1:Dg80n8cr90OZ7x+bAax/QjoW/XqTI11RmA79ZwIm9/4= github.com/elastic/gosigar v0.14.2/go.mod h1:iXRIGg2tLnu7LBdpqzyQfGDEidKCfWcCMS0WKyPWoMs= -github.com/emicklei/dot v1.4.2 h1:UbK6gX4yvrpHKlxuUQicwoAis4zl8Dzwit9SnbBAXWw= -github.com/emicklei/dot v1.4.2/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= +github.com/emicklei/dot v1.6.0 h1:vUzuoVE8ipzS7QkES4UfxdpCwdU2U97m2Pb2tQCoYRY= +github.com/emicklei/dot v1.6.0/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/erigontech/mdbx-go v0.27.21 h1:Pv47QIiRXR8Nv+nltZteLm4xkRwuvqmOCjzZj9X0s1A= +github.com/erigontech/mdbx-go v0.27.21/go.mod h1:FAMxbOgqOnRDx51j8HjuJZIgznbDwjX7LItd+/UWyA4= +github.com/erigontech/silkworm-go v0.10.0 h1:oAoptLtJbQXk63mrKYs6qliQlbDrXTSNiZfzv1OMp+Q= +github.com/erigontech/silkworm-go v0.10.0/go.mod h1:O50ux0apICEVEGyRWiE488K8qz8lc3PA/SXbQQAc8SU= github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c h1:CndMRAH4JIwxbW8KYq6Q+cGWcGHz0FjGR3QqcInWcW0= github.com/fjl/gencodec v0.0.0-20220412091415-8bb9e558978c/go.mod h1:AzA8Lj6YtixmJWL+wkKoBGsLWy9gFrAzi4g+5bCKwpY= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= @@ -258,7 +299,7 @@ github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwU github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= github.com/frankban/quicktest v1.9.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= @@ -276,8 +317,8 @@ github.com/glycerine/go-unsnap-stream v0.0.0-20190901134440-81cf024a9e0a/go.mod github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/glycerine/goconvey v0.0.0-20190315024820-982ee783a72e/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= -github.com/go-chi/chi/v5 v5.0.8 h1:lD+NLqFcAi1ovnVZpsnObHGW4xb4J8lNmoYVfECH1Y0= -github.com/go-chi/chi/v5 v5.0.8/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= +github.com/go-chi/chi/v5 v5.0.10 h1:rLz5avzKpjqxrYwXNfmjkrYYXOyLJd37pz53UFHC6vk= +github.com/go-chi/chi/v5 v5.0.10/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -285,6 +326,10 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-llsqlite/adapter v0.0.0-20230912124304-94ed0e573c23 h1:7krbnPREaxbmEaAkZovTNCMjmiZXEy/Gz9isFbqFK0I= +github.com/go-llsqlite/adapter v0.0.0-20230912124304-94ed0e573c23/go.mod h1:DADrR88ONKPPeSGjFp5iEN55Arx3fi2qXZeKCYDpbmU= +github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c h1:pm7z8uwA2q3s8fAsJmKuGckNohqIrw2PRtv6yJ6z0Ro= +github.com/go-llsqlite/crawshaw v0.0.0-20230910110433-7e901377eb6c/go.mod h1:UdTSzmN3nr5dJNuZCsbPLfhSQB76u16rWh8pn+WFx9Q= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= @@ -293,8 +338,6 @@ github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -370,9 +413,8 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -393,13 +435,14 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 h1:hR7/MlvK23p6+lIw9SN1TigNLn9ZnF3W4SYRKq2gAHs= -github.com/google/pprof v0.0.0-20230602150820-91b7bce49751/go.mod h1:Jh3hGz2jkYak8qXPD19ryItVnUgpgeqzdkY/D0EaeuA= +github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b h1:h9U78+dx9a4BKdQkBBos92HalKpaGKHrp+3Uo6yTodo= +github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4= +github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go v2.0.0+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.3/go.mod h1:LLvjysVCY1JZeum8Z6l8qUty8fiNwE08qbEPm1M08qg= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -419,12 +462,10 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vb github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= -github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/golang-lru/arc/v2 v2.0.4 h1:+tHnVSaabYlClRqUq4/+xzeyy9nAf8ju/JJsb4KTNBc= -github.com/hashicorp/golang-lru/arc/v2 v2.0.4/go.mod h1:rbQ1sKlUmbE1QbWxZbqtbpw8frA8ecNEhI0cQBxYtaU= -github.com/hashicorp/golang-lru/v2 v2.0.4 h1:7GHuZcgid37q8o5i3QI9KMT4nCWQQ3Kx3Ov6bb9MfK0= -github.com/hashicorp/golang-lru/v2 v2.0.4/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/golang-lru/arc/v2 v2.0.6 h1:4NU7uP5vSoK6TbaMj3NtY478TTAWLso/vL1gpNrInHg= +github.com/hashicorp/golang-lru/arc/v2 v2.0.6/go.mod h1:cfdDIX05DWvYV6/shsxDfa/OVcRieOt+q4FnM8x+Xno= +github.com/hashicorp/golang-lru/v2 v2.0.6 h1:3xi/Cafd1NaoEnS/yDssIiuVeDVywU0QdFGl3aQaQHM= +github.com/hashicorp/golang-lru/v2 v2.0.6/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/holiman/uint256 v1.2.3 h1:K8UWO1HUJpRMXBxbmaY1Y8IAMZC/RsKB+ArEnnK4l5o= @@ -455,7 +496,11 @@ github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7Bd github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jbenet/go-temp-err-catcher v0.1.0 h1:zpb3ZH6wIE8Shj2sKS+khgRvf7T7RABoLk/+KKHggpk= github.com/jbenet/go-temp-err-catcher v0.1.0/go.mod h1:0kJRvmDZXNMIiJirNPEYfhpPwbGVtZVWC34vc5WLsDk= +github.com/jedib0t/go-pretty/v6 v6.4.7 h1:lwiTJr1DEkAgzljsUsORmWsVn5MQjt1BPJdPCtJ6KXE= +github.com/jedib0t/go-pretty/v6 v6.4.7/go.mod h1:Ndk3ase2CkQbXLLNf5QDHoYb6J9WtVfmHZu9n8rk2xs= github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -472,8 +517,8 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:C github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.16.5 h1:IFV2oUNUzZaz+XyusxpLzpzS8Pt5rh0Z16For/djlyI= -github.com/klauspost/compress v1.16.5/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.3 h1:qkRjuerhUU1EmXLYGkSH6EZL+vPSxIrYjLNAK4slzwA= +github.com/klauspost/compress v1.17.3/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -495,26 +540,24 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170224010052-a616ab194758 h1:0D5M2HQSGD3PYPwICLl+/9oulQauOuETfgFvhBDffs0= github.com/leanovate/gopter v0.2.9 h1:fQjYxZaynp97ozCzfOyOuAGOU4aU/z37zf/tOujFk7c= github.com/leanovate/gopter v0.2.9/go.mod h1:U2L/78B+KVFIx2VmW6onHJQzXtFb+p5y3y2Sh+Jxxv8= -github.com/ledgerwatch/erigon-lib v0.0.0-20230806094003-563a68124b44 h1:5tmiUuLlj94snkO1Ljq12dmqBDG+ncO2IQNPe9fU0HA= -github.com/ledgerwatch/erigon-lib v0.0.0-20230806094003-563a68124b44/go.mod h1:vMETmlckriMRtrg81+YGcmA4/V3XFmjScMqjCojPr3g= -github.com/ledgerwatch/erigon-snapshot v1.2.1-0.20230622075030-1d69651854c2 h1:Ls2itRGHMOr2PbHRDA4g1HH8HQdwfJhRVfMPEaLQe94= -github.com/ledgerwatch/erigon-snapshot v1.2.1-0.20230622075030-1d69651854c2/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= -github.com/ledgerwatch/log/v3 v3.8.0 h1:gCpp7uGtIerEz1jKVPeDnbIopFPud9ZnCpBLlLBGqPU= -github.com/ledgerwatch/log/v3 v3.8.0/go.mod h1:J2Jl6zV/58LeA6LTaVVnCGyf1/cYYSEOOLHY4ZN8S2A= +github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231210032908-6ff6f4c91c60 h1:bsZ6XWPJkNp1DeVHkaX9/+/Tqg7+r5/IkRPlyc4Ztq4= +github.com/ledgerwatch/erigon-snapshot v1.3.1-0.20231210032908-6ff6f4c91c60/go.mod h1:3AuPxZc85jkehh/HA9h8gabv5MSi3kb/ddtzBsTVJFo= +github.com/ledgerwatch/log/v3 v3.9.0 h1:iDwrXe0PVwBC68Dd94YSsHbMgQ3ufsgjzXtFNFVZFRk= +github.com/ledgerwatch/log/v3 v3.9.0/go.mod h1:EiAY6upmI/6LkNhOVxb4eVsmsP11HZCnZ3PlJMjYiqE= github.com/ledgerwatch/secp256k1 v1.0.0 h1:Usvz87YoTG0uePIV8woOof5cQnLXGYa162rFf3YnwaQ= github.com/ledgerwatch/secp256k1 v1.0.0/go.mod h1:SPmqJFciiF/Q0mPt2jVs2dTr/1TZBTIA+kPMmKgBAak= -github.com/ledgerwatch/trackerslist v1.1.0 h1:eKhgeURD9x/J3qzMnL6C0e0cLy6Ld7Ck/VR/yF+7cZQ= -github.com/ledgerwatch/trackerslist v1.1.0/go.mod h1:wWU/V810cpsEl//o49ebwAWf0BL0WOJiu/577L4IVok= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/libp2p/go-cidranger v1.1.0 h1:ewPN8EZ0dd1LSnrtuwd4709PXVcITVeuwbag38yPW7c= github.com/libp2p/go-cidranger v1.1.0/go.mod h1:KWZTfSr+r9qEo9OkI9/SIEeAtw+NNoU0dXIXt15Okic= github.com/libp2p/go-flow-metrics v0.1.0 h1:0iPhMI8PskQwzh57jB9WxIuIOQ0r+15PChFGkx3Q3WM= github.com/libp2p/go-flow-metrics v0.1.0/go.mod h1:4Xi8MX8wj5aWNDAZttg6UPmc0ZrnFNsMtpsYUClFtro= -github.com/libp2p/go-libp2p v0.28.0 h1:zO8cY98nJiPzZpFv5w5gqqb8aVzt4ukQ0nVOSaaKhJ8= -github.com/libp2p/go-libp2p v0.28.0/go.mod h1:s3Xabc9LSwOcnv9UD4nORnXKTsWkPMkIMB/JIGXVnzk= +github.com/libp2p/go-libp2p v0.31.0 h1:LFShhP8F6xthWiBBq3euxbKjZsoRajVEyBS9snfHxYg= +github.com/libp2p/go-libp2p v0.31.0/go.mod h1:W/FEK1c/t04PbRH3fA9i5oucu5YcgrG0JVoBWT1B7Eg= github.com/libp2p/go-libp2p-asn-util v0.3.0 h1:gMDcMyYiZKkocGXDQ5nsUQyquC9+H+iLEQHwOCZ7s8s= github.com/libp2p/go-libp2p-asn-util v0.3.0/go.mod h1:B1mcOrKUE35Xq/ASTmQ4tN3LNzVVaMNmq2NACuqyB9w= +github.com/libp2p/go-libp2p-mplex v0.9.0 h1:R58pDRAmuBXkYugbSSXR9wrTX3+1pFM1xP2bLuodIq8= +github.com/libp2p/go-libp2p-mplex v0.9.0/go.mod h1:ro1i4kuwiFT+uMPbIDIFkcLs1KRbNp0QwnUXM+P64Og= github.com/libp2p/go-libp2p-pubsub v0.9.3 h1:ihcz9oIBMaCK9kcx+yHWm3mLAFBMAUsM4ux42aikDxo= github.com/libp2p/go-libp2p-pubsub v0.9.3/go.mod h1:RYA7aM9jIic5VV47WXu4GkcRxRhrdElWf8xtyli+Dzc= github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= @@ -526,37 +569,34 @@ github.com/libp2p/go-nat v0.2.0 h1:Tyz+bUFAYqGyJ/ppPPymMGbIgNRH+WqC5QrT5fKrrGk= github.com/libp2p/go-nat v0.2.0/go.mod h1:3MJr+GRpRkyT65EpVPBstXLvOlAPzUVlG6Pwg9ohLJk= github.com/libp2p/go-netroute v0.2.1 h1:V8kVrpD8GK0Riv15/7VN6RbUQ3URNZVosw7H2v9tksU= github.com/libp2p/go-netroute v0.2.1/go.mod h1:hraioZr0fhBjG0ZRXJJ6Zj2IVEVNx6tDTFQfSmcq7mQ= -github.com/libp2p/go-reuseport v0.3.0 h1:iiZslO5byUYZEg9iCwJGf5h+sf1Agmqx2V2FDjPyvUw= -github.com/libp2p/go-reuseport v0.3.0/go.mod h1:laea40AimhtfEqysZ71UpYj4S+R9VpH8PgqLo7L+SwI= -github.com/libp2p/go-yamux/v4 v4.0.0 h1:+Y80dV2Yx/kv7Y7JKu0LECyVdMXm1VUoko+VQ9rBfZQ= -github.com/libp2p/go-yamux/v4 v4.0.0/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= -github.com/lispad/go-generics-tools v1.1.0 h1:mbSgcxdFVmpoyso1X/MJHXbSbSL3dD+qhRryyxk+/XY= -github.com/lispad/go-generics-tools v1.1.0/go.mod h1:2csd1EJljo/gy5qG4khXol7ivCPptNjG5Uv2X8MgK84= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/libp2p/go-reuseport v0.4.0 h1:nR5KU7hD0WxXCJbmw7r2rhRYruNRl2koHw8fQscQm2s= +github.com/libp2p/go-reuseport v0.4.0/go.mod h1:ZtI03j/wO5hZVDFo2jKywN6bYKWLOy8Se6DrI2E1cLU= +github.com/libp2p/go-yamux/v4 v4.0.1 h1:FfDR4S1wj6Bw2Pqbc8Uz7pCxeRBPbwsBbEdfwiCypkQ= +github.com/libp2p/go-yamux/v4 v4.0.1/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd h1:br0buuQ854V8u83wA0rVZ8ttrq5CpaPZdvrK0LP2lOk= github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd/go.mod h1:QuCEs1Nt24+FYQEqAAncTDPJIuGs+LxK1MCiFL25pMU= github.com/maticnetwork/crand v1.0.2 h1:Af0tAivC8zrxXDpGWNWVT/0s1fOz8w0eRbahZgURS8I= github.com/maticnetwork/crand v1.0.2/go.mod h1:/NRNL3bj2eYdqpWmoIP5puxndTpi0XRxpj5ZKxfHjyg= -github.com/maticnetwork/polyproto v0.0.2 h1:cPxuxbIDItdwGnucc3lZB58U8Zfe1mH73PWTGd15554= -github.com/maticnetwork/polyproto v0.0.2/go.mod h1:e1mU2EXSwEpn5jM7GfNwu3AupsV6WAGoPFFfswXOF0o= +github.com/maticnetwork/polyproto v0.0.3-0.20230216113155-340ea926ca53 h1:PjYV+lghs106JKkrYgOnrsfDLoTc11BxZd4rUa4Rus4= +github.com/maticnetwork/polyproto v0.0.3-0.20230216113155-340ea926ca53/go.mod h1:e1mU2EXSwEpn5jM7GfNwu3AupsV6WAGoPFFfswXOF0o= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= +github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= -github.com/miekg/dns v1.1.54 h1:5jon9mWcb0sFJGpnI99tOMhCPyJ+RPVz5b63MQG0VWI= -github.com/miekg/dns v1.1.54/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= +github.com/miekg/dns v1.1.55 h1:GoQ4hpsj0nFLYe+bWiCToyrBEJXkQfOOIvFGFy0lEgo= +github.com/miekg/dns v1.1.55/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY= github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c h1:bzE/A84HN25pxAuk9Eej1Kz9OUelF97nAc82bDquQI8= github.com/mikioh/tcp v0.0.0-20190314235350-803a9b46060c/go.mod h1:0SQS9kMwD2VsyFEB++InYyBJroV/FRmBgcydeSUcJms= github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b h1:z78hV3sbSMAUoyUMM0I83AUIT6Hu17AWfgjzIbtrYFc= @@ -591,8 +631,8 @@ github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9 github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= github.com/multiformats/go-multiaddr v0.1.1/go.mod h1:aMKBKNEYmzmDmxfX88/vz+J5IU55txyt0p4aiWVohjo= github.com/multiformats/go-multiaddr v0.2.0/go.mod h1:0nO36NvPpyV4QzvTLi/lafl2y95ncPj0vFwVF6k6wJ4= -github.com/multiformats/go-multiaddr v0.9.0 h1:3h4V1LHIk5w4hJHekMKWALPXErDfz/sggzwC/NcqbDQ= -github.com/multiformats/go-multiaddr v0.9.0/go.mod h1:mI67Lb1EeTOYb8GQfL/7wpIZwc46ElrvzhYnoJOmTT0= +github.com/multiformats/go-multiaddr v0.11.0 h1:XqGyJ8ufbCE0HmTDwx2kPdsrQ36AGPZNZX6s6xfJH10= +github.com/multiformats/go-multiaddr v0.11.0/go.mod h1:gWUm0QLR4thQ6+ZF6SXUw8YjtwQSPapICM+NmCkxHSM= github.com/multiformats/go-multiaddr-dns v0.3.1 h1:QgQgR+LQVt3NPTjbrLLpsaT2ufAA2y0Mkk+QRVJbW3A= github.com/multiformats/go-multiaddr-dns v0.3.1/go.mod h1:G/245BRQ6FJGmryJCrOuTdB37AMA5AMOVuO6NY3JwTk= github.com/multiformats/go-multiaddr-fmt v0.1.0 h1:WLEFClPycPkp4fnIzoFoV9FVd49/eQsuaL3/CWe167E= @@ -602,8 +642,8 @@ github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6o github.com/multiformats/go-multicodec v0.9.0 h1:pb/dlPnzee/Sxv/j4PmkDRxCOi3hXTz3IbPKOXWJkmg= github.com/multiformats/go-multicodec v0.9.0/go.mod h1:L3QTQvMIaVBkXOXXtVmYE+LI16i14xuaojr/H7Ai54k= github.com/multiformats/go-multihash v0.0.8/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpKa63epEDmG8nTduyAew= -github.com/multiformats/go-multihash v0.2.2 h1:Uu7LWs/PmWby1gkj1S1DXx3zyd3aVabA4FiMKn/2tAc= -github.com/multiformats/go-multihash v0.2.2/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= +github.com/multiformats/go-multihash v0.2.3 h1:7Lyc8XfX/IY2jWb/gI7JP+o7JEq9hOa7BFvVU9RSh+U= +github.com/multiformats/go-multihash v0.2.3/go.mod h1:dXgKXCXjBzdscBLk9JkjINiEsCKRVch90MdaGiKsvSM= github.com/multiformats/go-multistream v0.4.1 h1:rFy0Iiyn3YT0asivDUIR05leAdwZq3de4741sbiSdfo= github.com/multiformats/go-multistream v0.4.1/go.mod h1:Mz5eykRVAjJWckE2U78c6xqdtyNUEhKSM0Lwar2p77Q= github.com/multiformats/go-varint v0.0.1/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= @@ -622,15 +662,16 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108 github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.9.7 h1:06xGQy5www2oN160RtEZoTvnP2sPhEfePYmCDc2szss= -github.com/onsi/ginkgo/v2 v2.9.7/go.mod h1:cxrmXWykAwTwhQsJOPfdIDiJ+l2RYq7U8hFU+M/1uw0= +github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= +github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.27.7 h1:fVih9JD6ogIiHUN6ePK7HJidyEDpWGVB5mzM7cWNXoU= -github.com/opencontainers/runtime-spec v1.0.2 h1:UfAcuLBJB9Coz72x1hgl8O5RVzTdNiaglX6v2DM6FI0= +github.com/onsi/gomega v1.27.8 h1:gegWiwZjBsf2DgiSbf5hpokZ98JVDMcWkUiigk6/KXc= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= +github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= @@ -640,10 +681,12 @@ github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2D github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= +github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pion/datachannel v1.5.2 h1:piB93s8LGmbECrpO84DnkIVWasRMk3IimbcXkTQLE6E= github.com/pion/datachannel v1.5.2/go.mod h1:FTGQWaHrdCwIJ1rw6xBIfZVkslikjShim5yr05XFuCQ= github.com/pion/dtls/v2 v2.1.3/go.mod h1:o6+WvyLDAlXF7YiPB/RlskRoeK+/JtuaZa5emwQcWus= @@ -691,25 +734,24 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.6.0/go.mod h1:qBsxPvzyUincmltOk6iyRVxHYg4adc0OFOv72ZdLa18= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/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/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8= -github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY= -github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.0.0-20180801064454-c7de2306084e/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -722,40 +764,39 @@ github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= -github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/protolambda/ztyp v0.2.2 h1:rVcL3vBu9W/aV646zF6caLS/dyn9BN8NYiuJzicLNyY= github.com/protolambda/ztyp v0.2.2/go.mod h1:9bYgKGqg3wJqT9ac1gI2hnVb0STQq7p/1lapqrqY1dU= github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7 h1:0tVE4tdWQK9ZpYygoV7+vS6QkDvQVySboMVEIxBJmXw= github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7/go.mod h1:wmuf/mdK4VMD+jA9ThwcUKjg3a2XWM9cVfFYjDyY4j4= -github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230510131438-bf992328364a h1:po9GKr5APkGj8blcsaPYj/EBlZbvCmoKE/oGLZE+PNI= -github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230510131438-bf992328364a/go.mod h1:4pWaT30XoEx1j8KNJf3TV+E3mQkaufn7mf+jRNb/Fuk= +github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230502123415-aafd8b3ca202 h1:ZsFouPKy81vvQo/Zup5gASVdOm6aiuwUhp7GxvQmjIA= +github.com/prysmaticlabs/gohashtree v0.0.3-alpha.0.20230502123415-aafd8b3ca202/go.mod h1:4pWaT30XoEx1j8KNJf3TV+E3mQkaufn7mf+jRNb/Fuk= github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo= github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A= -github.com/quic-go/qtls-go1-19 v0.3.2 h1:tFxjCFcTQzK+oMxG6Zcvp4Dq8dx4yD3dDiIiyc86Z5U= -github.com/quic-go/qtls-go1-19 v0.3.2/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI= -github.com/quic-go/qtls-go1-20 v0.2.2 h1:WLOPx6OY/hxtTxKV1Zrq20FtXtDEkeY00CGQm8GEa3E= -github.com/quic-go/qtls-go1-20 v0.2.2/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM= -github.com/quic-go/quic-go v0.33.0 h1:ItNoTDN/Fm/zBlq769lLJc8ECe9gYaW40veHCCco7y0= -github.com/quic-go/quic-go v0.33.0/go.mod h1:YMuhaAV9/jIu0XclDXwZPAsP/2Kgr5yMYhe9oxhhOFA= +github.com/quic-go/qtls-go1-20 v0.3.3 h1:17/glZSLI9P9fDAeyCHBFSWSqJcwx1byhLwP5eUIDCM= +github.com/quic-go/qtls-go1-20 v0.3.3/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k= +github.com/quic-go/quic-go v0.38.1 h1:M36YWA5dEhEeT+slOu/SwMEucbYd0YFidxG3KlGPZaE= +github.com/quic-go/quic-go v0.38.1/go.mod h1:ijnZM7JsFIkp4cRyjxJNIzdSfCLmUMg9wdyhGmg+SN4= github.com/quic-go/webtransport-go v0.5.3 h1:5XMlzemqB4qmOlgIus5zB45AcZ2kCgCy2EptUrfOPWU= github.com/quic-go/webtransport-go v0.5.3/go.mod h1:OhmmgJIzTTqXK5xvtuX0oBpLV2GkLWNDA+UeTGJXErU= github.com/raulk/go-watchdog v1.3.0 h1:oUmdlHxdkXRJlwfG0O9omj8ukerm8MEQavSiDTEtBsk= github.com/raulk/go-watchdog v1.3.0/go.mod h1:fIvOnLbF0b0ZwkB9YU4mOW9Did//4vPZtDqv66NfsMU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= -github.com/rs/cors v1.9.0 h1:l9HGsTsHJcvW14Nk7J9KFz8bzeAWXn3CG6bgt7LsrAE= -github.com/rs/cors v1.9.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= +github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 h1:Lt9DzQALzHoDwMBGJ6v8ObDPR0dzr2a6sXTB1Fq7IHs= github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= @@ -767,13 +808,6 @@ github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5P github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/shirou/gopsutil/v3 v3.23.4 h1:hZwmDxZs7Ewt75DV81r4pFMqbq+di2cbt9FsQBqLD2o= -github.com/shirou/gopsutil/v3 v3.23.4/go.mod h1:ZcGxyfzAMRevhUR2+cfhXDH6gQdFYE/t8j1nsU4mPI8= -github.com/shoenig/go-m1cpu v0.1.5 h1:LF57Z/Fpb/WdGLjt2HZilNnmZOxg/q2bSKTQhgbrLrQ= -github.com/shoenig/go-m1cpu v0.1.5/go.mod h1:Wwvst4LR89UxjeFtLRMrpgRiyY4xPsejnVZym39dbAQ= -github.com/shoenig/test v0.6.3 h1:GVXWJFk9PiOjN0KoJ7VrJGH6uLPnqxR7/fe3HUPfE0c= -github.com/shoenig/test v0.6.3/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= @@ -800,10 +834,14 @@ github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5k github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20190215210624-980c5ac6f3ac/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/goconvey v0.0.0-20190306220146-200a235640ff/go.mod h1:KSQcGKpxUMHk3nbYzs/tIBAM2iDooCn0BmttHOJEbLs= +github.com/sosodev/duration v1.1.0 h1:kQcaiGbJaIsRqgQy7VGlZrVw1giWO+lDoX3MCPnpVO4= +github.com/sosodev/duration v1.1.0/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= github.com/sourcegraph/annotate v0.0.0-20160123013949-f4cad6c6324d/go.mod h1:UdhH50NIW0fCiwBSr0co2m7BnFLdv4fQTgdqdJTHFeE= github.com/sourcegraph/syntaxhighlight v0.0.0-20170531221838-bd320f5d308e/go.mod h1:HuIsMU8RRBOtsCgI77wP899iHVBQpCmg4ErYMZB+2IA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= @@ -826,13 +864,13 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.4/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/supranational/blst v0.3.10 h1:CMciDZ/h4pXDDXQASe8ZGTNKUiVNxVVA5hpci2Uuhuk= -github.com/supranational/blst v0.3.10/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= +github.com/supranational/blst v0.3.11 h1:LyU6FolezeWAhvQk0k6O/d49jqgO52MSDDfYgbeoEm4= +github.com/supranational/blst v0.3.11/go.mod h1:jZJtfjgudtNl4en1tzwPIV3KjUnQUvG3/j+w+fVonLw= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/thomaso-mirodin/intmath v0.0.0-20160323211736-5dc6d854e46e h1:cR8/SYRgyQCt5cNCMniB/ZScMkhI9nk8U5C7SbISXjo= github.com/thomaso-mirodin/intmath v0.0.0-20160323211736-5dc6d854e46e/go.mod h1:Tu4lItkATkonrYuvtVjG0/rhy15qrNGNTjPdaphtZ/8= @@ -841,12 +879,6 @@ github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EU github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.0/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= -github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= -github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= -github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= -github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= -github.com/torquem-ch/mdbx-go v0.27.10 h1:iwb8Wn9gse4MEYIltAna+pxMPCY7hA1/5LLN/Qrcsx0= -github.com/torquem-ch/mdbx-go v0.27.10/go.mod h1:T2fsoJDVppxfAPTLd1svUgH1kpPmeXdPESmroSHcL1E= github.com/ugorji/go v1.1.13/go.mod h1:jxau1n+/wyTGLQoCkjok9r5zFa/FxT6eI5HiHKQszjc= github.com/ugorji/go/codec v1.1.13 h1:013LbFhocBoIqgHeIHKlV4JWYhqogATYWZhIcH0WHn4= github.com/ugorji/go/codec v1.1.13/go.mod h1:oNVt3Dq+FO91WNQ/9JnHKQP2QJxTzoN7wCBFCq1OeuU= @@ -857,12 +889,8 @@ github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs= github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ= github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= -github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8= -github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= -github.com/valyala/histogram v1.2.0 h1:wyYGAZZt3CpwUiIb9AU/Zbllg1llXyrtApRS815OLoQ= -github.com/valyala/histogram v1.2.0/go.mod h1:Hb4kBwb4UxsaNbbbh+RRz8ZR6pdodR57tzWUS3BUzXY= -github.com/vektah/gqlparser/v2 v2.5.6 h1:Ou14T0N1s191eRMZ1gARVqohcbe1e8FrcONScsq8cRU= -github.com/vektah/gqlparser/v2 v2.5.6/go.mod h1:z8xXUff237NntSuH8mLFijZ+1tjV1swDbpDqjJmk6ME= +github.com/vektah/gqlparser/v2 v2.5.10 h1:6zSM4azXC9u4Nxy5YmdmGu4uKamfwsdKTwp5zsEealU= +github.com/vektah/gqlparser/v2 v2.5.10/go.mod h1:1rCcfwB2ekJofmluGWXMSEnPMZgbxzwj6FaZ/4OT8Cc= github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= @@ -877,8 +905,6 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= -github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= @@ -896,21 +922,20 @@ go.opentelemetry.io/otel/trace v1.8.0 h1:cSy0DF9eGI5WIfNwZ1q2iUyGj00tGzP24dE1lOl go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/dig v1.17.0 h1:5Chju+tUvcC+N7N6EV08BJz41UZuO3BmHcN4A287ZLI= go.uber.org/dig v1.17.0/go.mod h1:rTxpf7l5I0eBTlE6/9RL+lDybC7WFwY2QH55ZSjy1mU= -go.uber.org/fx v1.19.2 h1:SyFgYQFr1Wl0AYstE8vyYIzP4bFz2URrScjwC4cwUvY= -go.uber.org/fx v1.19.2/go.mod h1:43G1VcqSzbIv77y00p1DRAsyZS8WdzuYdhZXmEUkMyQ= +go.uber.org/fx v1.20.0 h1:ZMC/pnRvhsthOZh9MZjMq5U8Or3mA9zBSPaLnzs3ihQ= +go.uber.org/fx v1.20.0/go.mod h1:qCUj0btiR3/JnanEr1TYEePfSw6o/4qYJscgvzQ5Ub0= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.1.11-0.20210813005559-691160354723/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20190111050920-041ab4dc3f9d/go.mod h1:OWs+y06UdEOHN4y+MfF/py+xQ/tYqIWW03b70/CG9Rw= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -931,8 +956,8 @@ golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220516162934-403b01795ae8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= -golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY= +golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -943,8 +968,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230711023510-fffb14384f22 h1:FqrVOBQxQ8r/UwwXibI0KMolVhvFiGobSfdE33deHJM= -golang.org/x/exp v0.0.0-20230711023510-fffb14384f22/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -972,8 +997,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1027,8 +1052,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= -golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50= -golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1054,8 +1079,8 @@ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180810173357-98c5dad5d1a0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1074,7 +1099,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1103,7 +1127,6 @@ golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1121,15 +1144,16 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= @@ -1144,14 +1168,14 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= -golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030000716-a0a13e073c7b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1210,8 +1234,8 @@ golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.9.3 h1:Gn1I8+64MsuTb/HpH+LmQtNas23LhUVr3rYZ0eKuaMM= -golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= +golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM= +golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1289,8 +1313,8 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= -google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -1310,8 +1334,8 @@ google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI= -google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -1366,30 +1390,30 @@ lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI= lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k= lukechampine.com/uint128 v1.3.0 h1:cDdUVfRwDUDovz610ABgFD17nXD4/uDgVHl2sC3+sbo= lukechampine.com/uint128 v1.3.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= -modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw= -modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0= -modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw= -modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY= +modernc.org/cc/v3 v3.41.0 h1:QoR1Sn3YWlmA1T4vLaKZfawdVtSiGx8H+cEojbC7v1Q= +modernc.org/cc/v3 v3.41.0/go.mod h1:Ni4zjJYJ04CDOhG7dn640WGfwBzfE0ecX8TyMB0Fv0Y= +modernc.org/ccgo/v3 v3.16.15 h1:KbDR3ZAVU+wiLyMESPtbtE/Add4elztFyfsWoNTgxS0= +modernc.org/ccgo/v3 v3.16.15/go.mod h1:yT7B+/E2m43tmMOT51GMoM98/MtHIcQQSleGnddkUNI= modernc.org/ccorpus v1.11.6 h1:J16RXiiqiCgua6+ZvQot4yUuUy8zxgqbqEEUuGPlISk= modernc.org/httpfs v1.0.6 h1:AAgIpFZRXuYnkjftxTAZwMIiwEqAfk8aVB2/oA6nAeM= -modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE= -modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY= -modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= -modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/libc v1.29.0 h1:tTFRFq69YKCF2QyGNuRUQxKBm1uZZLubf6Cjh/pVHXs= +modernc.org/libc v1.29.0/go.mod h1:DaG/4Q3LRRdqpiLyP0C2m1B8ZMGkQ+cCgOIjEtQlYhQ= +modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= +modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= +modernc.org/memory v1.7.2 h1:Klh90S215mmH8c9gO98QxQFsY+W451E8AnzjoE2ee1E= +modernc.org/memory v1.7.2/go.mod h1:NO4NVCQy0N7ln+T9ngWqOQfi7ley4vpwvARR+Hjw95E= modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM= -modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk= -modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY= -modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/sqlite v1.27.0 h1:MpKAHoyYB7xqcwnUwkuD+npwEa0fojF0B5QRbN+auJ8= +modernc.org/sqlite v1.27.0/go.mod h1:Qxpazz0zH8Z1xCFyi5GSL3FzbtZ3fvbjmywNogldEW0= +modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= +modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0= modernc.org/tcl v1.15.2 h1:C4ybAYCGJw968e+Me18oW55kD/FexcHbqH2xak1ROSY= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= modernc.org/z v1.7.3 h1:zDJf6iHjrnB+WRD88stbXokugjyc0/pB91ri1gO6LZY= -pgregory.net/rapid v1.0.0 h1:iQaM2w5PZ6xvt6x7hbd7tiDS+nk7YPp5uCaEba+T/F4= -pgregory.net/rapid v1.0.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= @@ -1397,3 +1421,5 @@ rsc.io/tmplfunc v0.0.3 h1:53XFQh69AfOa8Tw0Jm7t+GV7KZhOi6jzsCzTtKbMvzU= rsc.io/tmplfunc v0.0.3/go.mod h1:AG3sTPzElb1Io3Yg4voV9AGZJuleGAwaVRxL9M49PhA= sourcegraph.com/sourcegraph/go-diff v0.5.0/go.mod h1:kuch7UrkMzY0X+p9CRK03kfuPQ2zzQcaEFbx8wA8rck= sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= +zombiezen.com/go/sqlite v0.13.1 h1:qDzxyWWmMtSSEH5qxamqBFmqA2BLSSbtODi3ojaE02o= +zombiezen.com/go/sqlite v0.13.1/go.mod h1:Ht/5Rg3Ae2hoyh1I7gbWtWAl89CNocfqeb/aAMTkJr4= diff --git a/metrics/FORK.md b/metrics/FORK.md deleted file mode 100644 index b19985bf56e..00000000000 --- a/metrics/FORK.md +++ /dev/null @@ -1 +0,0 @@ -This repo has been forked from https://github.com/rcrowley/go-metrics at commit e181e09 diff --git a/metrics/LICENSE b/metrics/LICENSE deleted file mode 100644 index 363fa9ee77b..00000000000 --- a/metrics/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -Copyright 2012 Richard Crowley. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -THIS SOFTWARE IS PROVIDED BY RICHARD CROWLEY ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL RICHARD CROWLEY OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -THE POSSIBILITY OF SUCH DAMAGE. - -The views and conclusions contained in the software and documentation -are those of the authors and should not be interpreted as representing -official policies, either expressed or implied, of Richard Crowley. diff --git a/metrics/counter.go b/metrics/counter.go deleted file mode 100644 index f2f079fe576..00000000000 --- a/metrics/counter.go +++ /dev/null @@ -1,10 +0,0 @@ -package metrics - -// Counters hold an int64 value that can be incremented and decremented. -type Counter interface { - Clear() - Count() int64 - Dec(int64) - Inc(int64) - Snapshot() Counter -} diff --git a/metrics/debug_test.go b/metrics/debug_test.go deleted file mode 100644 index c4fe1a87bf4..00000000000 --- a/metrics/debug_test.go +++ /dev/null @@ -1,39 +0,0 @@ -package metrics - -import ( - "runtime" - "runtime/debug" - "testing" - "time" -) - -func TestDebugGCStatsBlocking(t *testing.T) { - if g := runtime.GOMAXPROCS(0); g < 2 { - t.Skipf("skipping TestDebugGCMemStatsBlocking with GOMAXPROCS=%d\n", g) - return - } - ch := make(chan int) - go testDebugGCStatsBlocking(ch) - var gcStats debug.GCStats - t0 := time.Now() - debug.ReadGCStats(&gcStats) - t1 := time.Now() - t.Log("i++ during debug.ReadGCStats:", <-ch) - go testDebugGCStatsBlocking(ch) - d := t1.Sub(t0) - t.Log(d) - time.Sleep(d) - t.Log("i++ during time.Sleep:", <-ch) -} - -func testDebugGCStatsBlocking(ch chan int) { - i := 0 - for { - select { - case ch <- i: - return - default: - i++ - } - } -} diff --git a/metrics/doc.go b/metrics/doc.go deleted file mode 100644 index d9f37f4dc0c..00000000000 --- a/metrics/doc.go +++ /dev/null @@ -1,3 +0,0 @@ -package metrics - -const epsilon = 0.0000000000000001 diff --git a/metrics/ewma.go b/metrics/ewma.go deleted file mode 100644 index 039286493eb..00000000000 --- a/metrics/ewma.go +++ /dev/null @@ -1,116 +0,0 @@ -package metrics - -import ( - "math" - "sync" - "sync/atomic" - "time" -) - -// EWMAs continuously calculate an exponentially-weighted moving average -// based on an outside source of clock ticks. -type EWMA interface { - Rate() float64 - Snapshot() EWMA - Tick() - Update(int64) -} - -// NewEWMA constructs a new EWMA with the given alpha. -func NewEWMA(alpha float64) EWMA { - return &StandardEWMA{alpha: alpha} -} - -// NewEWMA1 constructs a new EWMA for a one-minute moving average. -func NewEWMA1() EWMA { - return NewEWMA(1 - math.Exp(-5.0/60.0/1)) -} - -// NewEWMA5 constructs a new EWMA for a five-minute moving average. -func NewEWMA5() EWMA { - return NewEWMA(1 - math.Exp(-5.0/60.0/5)) -} - -// NewEWMA15 constructs a new EWMA for a fifteen-minute moving average. -func NewEWMA15() EWMA { - return NewEWMA(1 - math.Exp(-5.0/60.0/15)) -} - -// EWMASnapshot is a read-only copy of another EWMA. -type EWMASnapshot float64 - -// Rate returns the rate of events per second at the time the snapshot was -// taken. -func (a EWMASnapshot) Rate() float64 { return float64(a) } - -// Snapshot returns the snapshot. -func (a EWMASnapshot) Snapshot() EWMA { return a } - -// Tick panics. -func (EWMASnapshot) Tick() { - panic("Tick called on an EWMASnapshot") -} - -// Update panics. -func (EWMASnapshot) Update(int64) { - panic("Update called on an EWMASnapshot") -} - -// NilEWMA is a no-op EWMA. -type NilEWMA struct{} - -// Rate is a no-op. -func (NilEWMA) Rate() float64 { return 0.0 } - -// Snapshot is a no-op. -func (NilEWMA) Snapshot() EWMA { return NilEWMA{} } - -// Tick is a no-op. -func (NilEWMA) Tick() {} - -// Update is a no-op. -func (NilEWMA) Update(n int64) {} - -// StandardEWMA is the standard implementation of an EWMA and tracks the number -// of uncounted events and processes them on each tick. It uses the -// sync/atomic package to manage uncounted events. -type StandardEWMA struct { - uncounted int64 // /!\ this should be the first member to ensure 64-bit alignment - alpha float64 - rate float64 - init bool - mutex sync.Mutex -} - -// Rate returns the moving average rate of events per second. -func (a *StandardEWMA) Rate() float64 { - a.mutex.Lock() - defer a.mutex.Unlock() - return a.rate * float64(time.Second) -} - -// Snapshot returns a read-only copy of the EWMA. -func (a *StandardEWMA) Snapshot() EWMA { - return EWMASnapshot(a.Rate()) -} - -// Tick ticks the clock to update the moving average. It assumes it is called -// every five seconds. -func (a *StandardEWMA) Tick() { - count := atomic.LoadInt64(&a.uncounted) - atomic.AddInt64(&a.uncounted, -count) - instantRate := float64(count) / float64(5*time.Second) - a.mutex.Lock() - defer a.mutex.Unlock() - if a.init { - a.rate += a.alpha * (instantRate - a.rate) - } else { - a.init = true - a.rate = instantRate - } -} - -// Update adds n uncounted events. -func (a *StandardEWMA) Update(n int64) { - atomic.AddInt64(&a.uncounted, n) -} diff --git a/metrics/ewma_test.go b/metrics/ewma_test.go deleted file mode 100644 index 5b244191616..00000000000 --- a/metrics/ewma_test.go +++ /dev/null @@ -1,228 +0,0 @@ -package metrics - -import ( - "math" - "testing" -) - -func BenchmarkEWMA(b *testing.B) { - a := NewEWMA1() - b.ResetTimer() - for i := 0; i < b.N; i++ { - a.Update(1) - a.Tick() - } -} - -func TestEWMA1(t *testing.T) { - a := NewEWMA1() - a.Update(3) - a.Tick() - if rate := a.Rate(); math.Abs(0.6-rate) > epsilon { - t.Errorf("initial a.Rate(): 0.6 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.22072766470286553-rate) > epsilon { - t.Errorf("1 minute a.Rate(): 0.22072766470286553 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.08120116994196772-rate) > epsilon { - t.Errorf("2 minute a.Rate(): 0.08120116994196772 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.029872241020718428-rate) > epsilon { - t.Errorf("3 minute a.Rate(): 0.029872241020718428 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.01098938333324054-rate) > epsilon { - t.Errorf("4 minute a.Rate(): 0.01098938333324054 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.004042768199451294-rate) > epsilon { - t.Errorf("5 minute a.Rate(): 0.004042768199451294 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.0014872513059998212-rate) > epsilon { - t.Errorf("6 minute a.Rate(): 0.0014872513059998212 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.0005471291793327122-rate) > epsilon { - t.Errorf("7 minute a.Rate(): 0.0005471291793327122 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.00020127757674150815-rate) > epsilon { - t.Errorf("8 minute a.Rate(): 0.00020127757674150815 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(7.404588245200814e-05-rate) > epsilon { - t.Errorf("9 minute a.Rate(): 7.404588245200814e-05 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(2.7239957857491083e-05-rate) > epsilon { - t.Errorf("10 minute a.Rate(): 2.7239957857491083e-05 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(1.0021020474147462e-05-rate) > epsilon { - t.Errorf("11 minute a.Rate(): 1.0021020474147462e-05 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(3.6865274119969525e-06-rate) > epsilon { - t.Errorf("12 minute a.Rate(): 3.6865274119969525e-06 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(1.3561976441886433e-06-rate) > epsilon { - t.Errorf("13 minute a.Rate(): 1.3561976441886433e-06 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(4.989172314621449e-07-rate) > epsilon { - t.Errorf("14 minute a.Rate(): 4.989172314621449e-07 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(1.8354139230109722e-07-rate) > epsilon { - t.Errorf("15 minute a.Rate(): 1.8354139230109722e-07 != %v\n", rate) - } -} - -func TestEWMA5(t *testing.T) { - a := NewEWMA5() - a.Update(3) - a.Tick() - if rate := a.Rate(); math.Abs(0.6-rate) > epsilon { - t.Errorf("initial a.Rate(): 0.6 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.49123845184678905-rate) > epsilon { - t.Errorf("1 minute a.Rate(): 0.49123845184678905 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.4021920276213837-rate) > epsilon { - t.Errorf("2 minute a.Rate(): 0.4021920276213837 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.32928698165641596-rate) > epsilon { - t.Errorf("3 minute a.Rate(): 0.32928698165641596 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.269597378470333-rate) > epsilon { - t.Errorf("4 minute a.Rate(): 0.269597378470333 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.2207276647028654-rate) > epsilon { - t.Errorf("5 minute a.Rate(): 0.2207276647028654 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.18071652714732128-rate) > epsilon { - t.Errorf("6 minute a.Rate(): 0.18071652714732128 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.14795817836496392-rate) > epsilon { - t.Errorf("7 minute a.Rate(): 0.14795817836496392 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.12113791079679326-rate) > epsilon { - t.Errorf("8 minute a.Rate(): 0.12113791079679326 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.09917933293295193-rate) > epsilon { - t.Errorf("9 minute a.Rate(): 0.09917933293295193 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.08120116994196763-rate) > epsilon { - t.Errorf("10 minute a.Rate(): 0.08120116994196763 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.06648189501740036-rate) > epsilon { - t.Errorf("11 minute a.Rate(): 0.06648189501740036 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.05443077197364752-rate) > epsilon { - t.Errorf("12 minute a.Rate(): 0.05443077197364752 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.04456414692860035-rate) > epsilon { - t.Errorf("13 minute a.Rate(): 0.04456414692860035 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.03648603757513079-rate) > epsilon { - t.Errorf("14 minute a.Rate(): 0.03648603757513079 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.0298722410207183831020718428-rate) > epsilon { - t.Errorf("15 minute a.Rate(): 0.0298722410207183831020718428 != %v\n", rate) - } -} - -func TestEWMA15(t *testing.T) { - a := NewEWMA15() - a.Update(3) - a.Tick() - if rate := a.Rate(); math.Abs(0.6-rate) > epsilon { - t.Errorf("initial a.Rate(): 0.6 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.5613041910189706-rate) > epsilon { - t.Errorf("1 minute a.Rate(): 0.5613041910189706 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.5251039914257684-rate) > epsilon { - t.Errorf("2 minute a.Rate(): 0.5251039914257684 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.4912384518467888184678905-rate) > epsilon { - t.Errorf("3 minute a.Rate(): 0.4912384518467888184678905 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.459557003018789-rate) > epsilon { - t.Errorf("4 minute a.Rate(): 0.459557003018789 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.4299187863442732-rate) > epsilon { - t.Errorf("5 minute a.Rate(): 0.4299187863442732 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.4021920276213831-rate) > epsilon { - t.Errorf("6 minute a.Rate(): 0.4021920276213831 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.37625345116383313-rate) > epsilon { - t.Errorf("7 minute a.Rate(): 0.37625345116383313 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.3519877317060185-rate) > epsilon { - t.Errorf("8 minute a.Rate(): 0.3519877317060185 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.3292869816564153165641596-rate) > epsilon { - t.Errorf("9 minute a.Rate(): 0.3292869816564153165641596 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.3080502714195546-rate) > epsilon { - t.Errorf("10 minute a.Rate(): 0.3080502714195546 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.2881831806538789-rate) > epsilon { - t.Errorf("11 minute a.Rate(): 0.2881831806538789 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.26959737847033216-rate) > epsilon { - t.Errorf("12 minute a.Rate(): 0.26959737847033216 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.2522102307052083-rate) > epsilon { - t.Errorf("13 minute a.Rate(): 0.2522102307052083 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.23594443252115815-rate) > epsilon { - t.Errorf("14 minute a.Rate(): 0.23594443252115815 != %v\n", rate) - } - elapseMinute(a) - if rate := a.Rate(); math.Abs(0.2207276647028646247028654470286553-rate) > epsilon { - t.Errorf("15 minute a.Rate(): 0.2207276647028646247028654470286553 != %v\n", rate) - } -} - -func elapseMinute(a EWMA) { - for i := 0; i < 12; i++ { - a.Tick() - } -} diff --git a/metrics/exp/exp.go b/metrics/exp/exp.go deleted file mode 100644 index c2081b10683..00000000000 --- a/metrics/exp/exp.go +++ /dev/null @@ -1,41 +0,0 @@ -// Hook go-metrics into expvar -// on any /debug/metrics request, load all vars from the registry into expvar, and execute regular expvar handler -package exp - -import ( - "fmt" - "net/http" - - metrics2 "github.com/VictoriaMetrics/metrics" - "github.com/ledgerwatch/log/v3" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/common/expfmt" -) - -// Setup starts a dedicated metrics server at the given address. -// This function enables metrics reporting separate from pprof. -func Setup(address string, logger log.Logger) { - http.HandleFunc("/debug/metrics/prometheus", func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Access-Control-Allow-Origin", "*") - metrics2.WritePrometheus(w, true) - contentType := expfmt.Negotiate(r.Header) - enc := expfmt.NewEncoder(w, contentType) - mf, err := prometheus.DefaultGatherer.Gather() - if err != nil { - return - } - for _, m := range mf { - enc.Encode(m) - } - }) - //m.Handle("/debug/metrics", ExpHandler(metrics.DefaultRegistry)) - //http.Handle("/debug/metrics/prometheus2", promhttp.HandlerFor(prometheus.DefaultGatherer, promhttp.HandlerOpts{})) - logger.Info("Starting metrics server", "addr", - fmt.Sprintf("http://%s/debug/metrics/prometheus", address), - ) - go func() { - if err := http.ListenAndServe(address, nil); err != nil { // nolint:gosec - logger.Error("Failure in running metrics server", "err", err) - } - }() -} diff --git a/metrics/gauge.go b/metrics/gauge.go deleted file mode 100644 index f45f9557718..00000000000 --- a/metrics/gauge.go +++ /dev/null @@ -1,10 +0,0 @@ -package metrics - -// Gauges hold an int64 value that can be set arbitrarily. -type Gauge interface { - Snapshot() Gauge - Update(int64) - Dec(int64) - Inc(int64) - Value() int64 -} diff --git a/metrics/gauge_float64.go b/metrics/gauge_float64.go deleted file mode 100644 index 4873eaa7f8a..00000000000 --- a/metrics/gauge_float64.go +++ /dev/null @@ -1,8 +0,0 @@ -package metrics - -// GaugeFloat64s hold a float64 value that can be set arbitrarily. -type GaugeFloat64 interface { - Snapshot() GaugeFloat64 - Update(float64) - Value() float64 -} diff --git a/metrics/healthcheck.go b/metrics/healthcheck.go deleted file mode 100644 index 09cf7482bdb..00000000000 --- a/metrics/healthcheck.go +++ /dev/null @@ -1,9 +0,0 @@ -package metrics - -// Healthchecks hold an error value describing an arbitrary up/down status. -type Healthcheck interface { - Check() - Error() error - Healthy() - Unhealthy(error) -} diff --git a/metrics/histogram.go b/metrics/histogram.go deleted file mode 100644 index 6cfaa7cd2b8..00000000000 --- a/metrics/histogram.go +++ /dev/null @@ -1,18 +0,0 @@ -package metrics - -// Histograms calculate distribution statistics from a series of int64 values. -type Histogram interface { - Clear() - Count() int64 - Max() int64 - Mean() float64 - Min() int64 - Percentile(float64) float64 - Percentiles([]float64) []float64 - Sample() Sample - Snapshot() Histogram - StdDev() float64 - Sum() int64 - Update(int64) - Variance() float64 -} diff --git a/metrics/json.go b/metrics/json.go deleted file mode 100644 index 8c368010744..00000000000 --- a/metrics/json.go +++ /dev/null @@ -1,11 +0,0 @@ -package metrics - -import ( - "encoding/json" -) - -// MarshalJSON returns a byte slice containing a JSON representation of all -// the metrics in the Registry. -func (r *StandardRegistry) MarshalJSON() ([]byte, error) { - return json.Marshal(r.GetAll()) -} diff --git a/metrics/memory.md b/metrics/memory.md deleted file mode 100644 index 47454f54b64..00000000000 --- a/metrics/memory.md +++ /dev/null @@ -1,285 +0,0 @@ -Memory usage -============ - -(Highly unscientific.) - -Command used to gather static memory usage: - -```sh -grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status" -``` - -Program used to gather baseline memory usage: - -```go -package main - -import "time" - -func main() { - time.Sleep(600e9) -} -``` - -Baseline --------- - -``` -VmPeak: 42604 kB -VmSize: 42604 kB -VmLck: 0 kB -VmHWM: 1120 kB -VmRSS: 1120 kB -VmData: 35460 kB -VmStk: 136 kB -VmExe: 1020 kB -VmLib: 1848 kB -VmPTE: 36 kB -VmSwap: 0 kB -``` - -Program used to gather metric memory usage (with other metrics being similar): - -```go -package main - -import ( - "fmt" - "metrics" - "time" -) - -func main() { - fmt.Sprintf("foo") - metrics.NewRegistry() - time.Sleep(600e9) -} -``` - -1000 counters registered ------------------------- - -``` -VmPeak: 44016 kB -VmSize: 44016 kB -VmLck: 0 kB -VmHWM: 1928 kB -VmRSS: 1928 kB -VmData: 36868 kB -VmStk: 136 kB -VmExe: 1024 kB -VmLib: 1848 kB -VmPTE: 40 kB -VmSwap: 0 kB -``` - -**1.412 kB virtual, TODO 0.808 kB resident per counter.** - -100000 counters registered --------------------------- - -``` -VmPeak: 55024 kB -VmSize: 55024 kB -VmLck: 0 kB -VmHWM: 12440 kB -VmRSS: 12440 kB -VmData: 47876 kB -VmStk: 136 kB -VmExe: 1024 kB -VmLib: 1848 kB -VmPTE: 64 kB -VmSwap: 0 kB -``` - -**0.1242 kB virtual, 0.1132 kB resident per counter.** - -1000 gauges registered ----------------------- - -``` -VmPeak: 44012 kB -VmSize: 44012 kB -VmLck: 0 kB -VmHWM: 1928 kB -VmRSS: 1928 kB -VmData: 36868 kB -VmStk: 136 kB -VmExe: 1020 kB -VmLib: 1848 kB -VmPTE: 40 kB -VmSwap: 0 kB -``` - -**1.408 kB virtual, 0.808 kB resident per counter.** - -100000 gauges registered ------------------------- - -``` -VmPeak: 55020 kB -VmSize: 55020 kB -VmLck: 0 kB -VmHWM: 12432 kB -VmRSS: 12432 kB -VmData: 47876 kB -VmStk: 136 kB -VmExe: 1020 kB -VmLib: 1848 kB -VmPTE: 60 kB -VmSwap: 0 kB -``` - -**0.12416 kB virtual, 0.11312 resident per gauge.** - -1000 histograms with a uniform sample size of 1028 --------------------------------------------------- - -``` -VmPeak: 72272 kB -VmSize: 72272 kB -VmLck: 0 kB -VmHWM: 16204 kB -VmRSS: 16204 kB -VmData: 65100 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 80 kB -VmSwap: 0 kB -``` - -**29.668 kB virtual, TODO 15.084 resident per histogram.** - -10000 histograms with a uniform sample size of 1028 ---------------------------------------------------- - -``` -VmPeak: 256912 kB -VmSize: 256912 kB -VmLck: 0 kB -VmHWM: 146204 kB -VmRSS: 146204 kB -VmData: 249740 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 448 kB -VmSwap: 0 kB -``` - -**21.4308 kB virtual, 14.5084 kB resident per histogram.** - -50000 histograms with a uniform sample size of 1028 ---------------------------------------------------- - -``` -VmPeak: 908112 kB -VmSize: 908112 kB -VmLck: 0 kB -VmHWM: 645832 kB -VmRSS: 645588 kB -VmData: 900940 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 1716 kB -VmSwap: 1544 kB -``` - -**17.31016 kB virtual, 12.88936 kB resident per histogram.** - -1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015 -------------------------------------------------------------------------------------- - -``` -VmPeak: 62480 kB -VmSize: 62480 kB -VmLck: 0 kB -VmHWM: 11572 kB -VmRSS: 11572 kB -VmData: 55308 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 64 kB -VmSwap: 0 kB -``` - -**19.876 kB virtual, 10.452 kB resident per histogram.** - -10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015 --------------------------------------------------------------------------------------- - -``` -VmPeak: 153296 kB -VmSize: 153296 kB -VmLck: 0 kB -VmHWM: 101176 kB -VmRSS: 101176 kB -VmData: 146124 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 240 kB -VmSwap: 0 kB -``` - -**11.0692 kB virtual, 10.0056 kB resident per histogram.** - -50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015 --------------------------------------------------------------------------------------- - -``` -VmPeak: 557264 kB -VmSize: 557264 kB -VmLck: 0 kB -VmHWM: 501056 kB -VmRSS: 501056 kB -VmData: 550092 kB -VmStk: 136 kB -VmExe: 1048 kB -VmLib: 1848 kB -VmPTE: 1032 kB -VmSwap: 0 kB -``` - -**10.2932 kB virtual, 9.99872 kB resident per histogram.** - -1000 meters ------------ - -``` -VmPeak: 74504 kB -VmSize: 74504 kB -VmLck: 0 kB -VmHWM: 24124 kB -VmRSS: 24124 kB -VmData: 67340 kB -VmStk: 136 kB -VmExe: 1040 kB -VmLib: 1848 kB -VmPTE: 92 kB -VmSwap: 0 kB -``` - -**31.9 kB virtual, 23.004 kB resident per meter.** - -10000 meters ------------- - -``` -VmPeak: 278920 kB -VmSize: 278920 kB -VmLck: 0 kB -VmHWM: 227300 kB -VmRSS: 227300 kB -VmData: 271756 kB -VmStk: 136 kB -VmExe: 1040 kB -VmLib: 1848 kB -VmPTE: 488 kB -VmSwap: 0 kB -``` - -**23.6316 kB virtual, 22.618 kB resident per meter.** diff --git a/metrics/meter.go b/metrics/meter.go deleted file mode 100644 index 64517cdd884..00000000000 --- a/metrics/meter.go +++ /dev/null @@ -1,241 +0,0 @@ -package metrics - -import ( - "sync" - "sync/atomic" - "time" - - "github.com/ledgerwatch/erigon/common/debug" -) - -// Meters count events to produce exponentially-weighted moving average rates -// at one-, five-, and fifteen-minutes and a mean rate. -type Meter interface { - Count() int64 - Mark(int64) - Rate1() float64 - Rate5() float64 - Rate15() float64 - RateMean() float64 - Snapshot() Meter - Stop() -} - -// NewMeterForced constructs a new StandardMeter and launches a goroutine no matter -// the global switch is enabled or not. -// Be sure to call Stop() once the meter is of no use to allow for garbage collection. -func NewMeterForced() Meter { - m := newStandardMeter() - arbiter.mu.Lock() - defer arbiter.mu.Unlock() - arbiter.meters[m] = struct{}{} - if !arbiter.started { - arbiter.started = true - go arbiter.tick() - } - return m -} - -// MeterSnapshot is a read-only copy of another Meter. -type MeterSnapshot struct { - // WARNING: The `temp` field is accessed atomically. - // On 32 bit platforms, only 64-bit aligned fields can be atomic. The struct is - // guaranteed to be so aligned, so take advantage of that. For more information, - // see https://golang.org/pkg/sync/atomic/#pkg-note-BUG. - temp int64 - count int64 - rate1, rate5, rate15, rateMean float64 -} - -// Count returns the count of events at the time the snapshot was taken. -func (m *MeterSnapshot) Count() int64 { return m.count } - -// Mark panics. -func (*MeterSnapshot) Mark(n int64) { - panic("Mark called on a MeterSnapshot") -} - -// Rate1 returns the one-minute moving average rate of events per second at the -// time the snapshot was taken. -func (m *MeterSnapshot) Rate1() float64 { return m.rate1 } - -// Rate5 returns the five-minute moving average rate of events per second at -// the time the snapshot was taken. -func (m *MeterSnapshot) Rate5() float64 { return m.rate5 } - -// Rate15 returns the fifteen-minute moving average rate of events per second -// at the time the snapshot was taken. -func (m *MeterSnapshot) Rate15() float64 { return m.rate15 } - -// RateMean returns the meter's mean rate of events per second at the time the -// snapshot was taken. -func (m *MeterSnapshot) RateMean() float64 { return m.rateMean } - -// Snapshot returns the snapshot. -func (m *MeterSnapshot) Snapshot() Meter { return m } - -// Stop is a no-op. -func (m *MeterSnapshot) Stop() {} - -// NilMeter is a no-op Meter. -type NilMeter struct{} - -// Count is a no-op. -func (NilMeter) Count() int64 { return 0 } - -// Mark is a no-op. -func (NilMeter) Mark(n int64) {} - -// Rate1 is a no-op. -func (NilMeter) Rate1() float64 { return 0.0 } - -// Rate5 is a no-op. -func (NilMeter) Rate5() float64 { return 0.0 } - -// Rate15 is a no-op. -func (NilMeter) Rate15() float64 { return 0.0 } - -// RateMean is a no-op. -func (NilMeter) RateMean() float64 { return 0.0 } - -// Snapshot is a no-op. -func (NilMeter) Snapshot() Meter { return NilMeter{} } - -// Stop is a no-op. -func (NilMeter) Stop() {} - -// StandardMeter is the standard implementation of a Meter. -type StandardMeter struct { - lock sync.RWMutex - snapshot *MeterSnapshot - a1, a5, a15 EWMA - startTime time.Time - stopped uint32 -} - -func newStandardMeter() *StandardMeter { - return &StandardMeter{ - snapshot: &MeterSnapshot{}, - a1: NewEWMA1(), - a5: NewEWMA5(), - a15: NewEWMA15(), - startTime: time.Now(), - } -} - -// Stop stops the meter, Mark() will be a no-op if you use it after being stopped. -func (m *StandardMeter) Stop() { - stopped := atomic.SwapUint32(&m.stopped, 1) - if stopped != 1 { - arbiter.mu.Lock() - delete(arbiter.meters, m) - arbiter.mu.Unlock() - } -} - -// Count returns the number of events recorded. -// It updates the meter to be as accurate as possible -func (m *StandardMeter) Count() int64 { - m.lock.Lock() - defer m.lock.Unlock() - m.updateMeter() - return m.snapshot.count -} - -// Mark records the occurrence of n events. -func (m *StandardMeter) Mark(n int64) { - m.lock.Lock() - m.snapshot.temp = n - m.lock.Unlock() -} - -// Rate1 returns the one-minute moving average rate of events per second. -func (m *StandardMeter) Rate1() float64 { - m.lock.RLock() - defer m.lock.RUnlock() - return m.snapshot.rate1 -} - -// Rate5 returns the five-minute moving average rate of events per second. -func (m *StandardMeter) Rate5() float64 { - m.lock.RLock() - defer m.lock.RUnlock() - return m.snapshot.rate5 -} - -// Rate15 returns the fifteen-minute moving average rate of events per second. -func (m *StandardMeter) Rate15() float64 { - m.lock.RLock() - defer m.lock.RUnlock() - return m.snapshot.rate15 -} - -// RateMean returns the meter's mean rate of events per second. -func (m *StandardMeter) RateMean() float64 { - m.lock.RLock() - defer m.lock.RUnlock() - return m.snapshot.rateMean -} - -// Snapshot returns a read-only copy of the meter. -func (m *StandardMeter) Snapshot() Meter { - m.lock.RLock() - snapshot := *m.snapshot - m.lock.RUnlock() - return &snapshot -} - -func (m *StandardMeter) updateSnapshot() { - // should run with write lock held on m.lock - snapshot := m.snapshot - snapshot.rate1 = m.a1.Rate() - snapshot.rate5 = m.a5.Rate() - snapshot.rate15 = m.a15.Rate() - snapshot.rateMean = float64(snapshot.count) / time.Since(m.startTime).Seconds() -} - -func (m *StandardMeter) updateMeter() { - // should only run with write lock held on m.lock - n := atomic.SwapInt64(&m.snapshot.temp, 0) - m.snapshot.count += n - m.a1.Update(n) - m.a5.Update(n) - m.a15.Update(n) -} - -func (m *StandardMeter) tick() { - m.lock.Lock() - defer m.lock.Unlock() - m.updateMeter() - m.a1.Tick() - m.a5.Tick() - m.a15.Tick() - m.updateSnapshot() -} - -// meterArbiter ticks meters every 5s from a single goroutine. -// meters are references in a set for future stopping. -type meterArbiter struct { - mu sync.RWMutex - started bool - meters map[*StandardMeter]struct{} - ticker *time.Ticker -} - -var arbiter = meterArbiter{ticker: time.NewTicker(5 * time.Second), meters: make(map[*StandardMeter]struct{})} - -// Ticks meters on the scheduled interval -func (ma *meterArbiter) tick() { - defer debug.LogPanic() - for range ma.ticker.C { - ma.tickMeters() - } -} - -func (ma *meterArbiter) tickMeters() { - ma.mu.RLock() - defer ma.mu.RUnlock() - for meter := range ma.meters { - meter.tick() - } -} diff --git a/metrics/meter_test.go b/metrics/meter_test.go deleted file mode 100644 index 75322314c69..00000000000 --- a/metrics/meter_test.go +++ /dev/null @@ -1,24 +0,0 @@ -package metrics - -import ( - "testing" - "time" -) - -func TestMeterDecay(t *testing.T) { - ma := meterArbiter{ - ticker: time.NewTicker(time.Millisecond), - meters: make(map[*StandardMeter]struct{}), - } - defer ma.ticker.Stop() - m := newStandardMeter() - ma.meters[m] = struct{}{} - m.Mark(1) - ma.tickMeters() - rateMean := m.RateMean() - time.Sleep(100 * time.Millisecond) - ma.tickMeters() - if m.RateMean() >= rateMean { - t.Error("m.RateMean() didn't decrease") - } -} diff --git a/metrics/metrics.go b/metrics/metrics.go deleted file mode 100644 index f74fa44e789..00000000000 --- a/metrics/metrics.go +++ /dev/null @@ -1,22 +0,0 @@ -// Go port of Coda Hale's Metrics library -// -// -// -// Coda Hale's original work: -package metrics - -import ( - "runtime/metrics" - "sync/atomic" -) - -// callbacks - storing list of callbacks as type []func() -// use metrics.AddCallback to add your function to metrics collection loop (to avoid multiple goroutines collecting metrics) -var callbacks atomic.Value - -func init() { - metrics.All() - callbacks.Store([]func(){}) -} - -// Calling Load method diff --git a/metrics/registry.go b/metrics/registry.go deleted file mode 100644 index c5887e7bf54..00000000000 --- a/metrics/registry.go +++ /dev/null @@ -1,236 +0,0 @@ -package metrics - -import ( - "fmt" - "reflect" - "sync" -) - -// DuplicateMetric is the error returned by Registry.Register when a metric -// already exists. If you mean to Register that metric you must first -// Unregister the existing metric. -type DuplicateMetric string - -func (err DuplicateMetric) Error() string { - return fmt.Sprintf("duplicate metric: %s", string(err)) -} - -// A Registry holds references to a set of metrics by name and can iterate -// over them, calling callback functions provided by the user. -// -// This is an interface so as to encourage other structs to implement -// the Registry API as appropriate. -type Registry interface { - - // Call the given function for each registered metric. - Each(func(string, interface{})) - - // Get the metric by the given name or nil if none is registered. - Get(string) interface{} - - // GetAll metrics in the Registry. - GetAll() map[string]map[string]interface{} - - // Gets an existing metric or registers the given one. - // The interface can be the metric to register if not found in registry, - // or a function returning the metric for lazy instantiation. - GetOrRegister(string, interface{}) interface{} - - // Register the given metric under the given name. - Register(string, interface{}) error - - // Run all registered healthchecks. - RunHealthchecks() - - // Unregister the metric with the given name. - Unregister(string) - - // Unregister all metrics. (Mostly for testing.) - UnregisterAll() -} - -// The standard implementation of a Registry is a mutex-protected map -// of names to metrics. -type StandardRegistry struct { - metrics map[string]interface{} - mutex sync.Mutex -} - -// Create a new registry. -func NewRegistry() Registry { - return &StandardRegistry{metrics: make(map[string]interface{})} -} - -// Call the given function for each registered metric. -func (r *StandardRegistry) Each(f func(string, interface{})) { - for name, i := range r.registered() { - f(name, i) - } -} - -// Get the metric by the given name or nil if none is registered. -func (r *StandardRegistry) Get(name string) interface{} { - r.mutex.Lock() - defer r.mutex.Unlock() - return r.metrics[name] -} - -// Gets an existing metric or creates and registers a new one. Threadsafe -// alternative to calling Get and Register on failure. -// The interface can be the metric to register if not found in registry, -// or a function returning the metric for lazy instantiation. -func (r *StandardRegistry) GetOrRegister(name string, i interface{}) interface{} { - r.mutex.Lock() - defer r.mutex.Unlock() - if metric, ok := r.metrics[name]; ok { - return metric - } - if v := reflect.ValueOf(i); v.Kind() == reflect.Func { - i = v.Call(nil)[0].Interface() - } - r.register(name, i) - return i -} - -// Register the given metric under the given name. Returns a DuplicateMetric -// if a metric by the given name is already registered. -func (r *StandardRegistry) Register(name string, i interface{}) error { - r.mutex.Lock() - defer r.mutex.Unlock() - return r.register(name, i) -} - -// Run all registered healthchecks. -func (r *StandardRegistry) RunHealthchecks() { - r.mutex.Lock() - defer r.mutex.Unlock() - for _, i := range r.metrics { - if h, ok := i.(Healthcheck); ok { - h.Check() - } - } -} - -// GetAll metrics in the Registry -func (r *StandardRegistry) GetAll() map[string]map[string]interface{} { - data := make(map[string]map[string]interface{}) - r.Each(func(name string, i interface{}) { - values := make(map[string]interface{}) - switch metric := i.(type) { - case Counter: - values["count"] = metric.Count() - case Gauge: - values["value"] = metric.Value() - case GaugeFloat64: - values["value"] = metric.Value() - case Healthcheck: - values["error"] = nil - metric.Check() - if err := metric.Error(); nil != err { - values["error"] = metric.Error().Error() - } - case Histogram: - h := metric.Snapshot() - ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - values["count"] = h.Count() - values["min"] = h.Min() - values["max"] = h.Max() - values["mean"] = h.Mean() - values["stddev"] = h.StdDev() - values["median"] = ps[0] - values["75%"] = ps[1] - values["95%"] = ps[2] - values["99%"] = ps[3] - values["99.9%"] = ps[4] - case Meter: - m := metric.Snapshot() - values["count"] = m.Count() - values["1m.rate"] = m.Rate1() - values["5m.rate"] = m.Rate5() - values["15m.rate"] = m.Rate15() - values["mean.rate"] = m.RateMean() - case Timer: - t := metric.Snapshot() - ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999}) - values["count"] = t.Count() - values["min"] = t.Min() - values["max"] = t.Max() - values["mean"] = t.Mean() - values["stddev"] = t.StdDev() - values["median"] = ps[0] - values["75%"] = ps[1] - values["95%"] = ps[2] - values["99%"] = ps[3] - values["99.9%"] = ps[4] - values["1m.rate"] = t.Rate1() - values["5m.rate"] = t.Rate5() - values["15m.rate"] = t.Rate15() - values["mean.rate"] = t.RateMean() - } - data[name] = values - }) - return data -} - -// Unregister the metric with the given name. -func (r *StandardRegistry) Unregister(name string) { - r.mutex.Lock() - defer r.mutex.Unlock() - r.stop(name) - delete(r.metrics, name) -} - -// Unregister all metrics. (Mostly for testing.) -func (r *StandardRegistry) UnregisterAll() { - r.mutex.Lock() - defer r.mutex.Unlock() - for name := range r.metrics { - r.stop(name) - delete(r.metrics, name) - } -} - -func (r *StandardRegistry) register(name string, i interface{}) error { - if _, ok := r.metrics[name]; ok { - return DuplicateMetric(name) - } - switch i.(type) { - case Counter, Gauge, GaugeFloat64, Healthcheck, Histogram, Meter, Timer, ResettingTimer: - r.metrics[name] = i - } - return nil -} - -func (r *StandardRegistry) registered() map[string]interface{} { - r.mutex.Lock() - defer r.mutex.Unlock() - metrics := make(map[string]interface{}, len(r.metrics)) - for name, i := range r.metrics { - metrics[name] = i - } - return metrics -} - -func (r *StandardRegistry) stop(name string) { - if i, ok := r.metrics[name]; ok { - if s, ok := i.(Stoppable); ok { - s.Stop() - } - } -} - -// Stoppable defines the metrics which has to be stopped. -type Stoppable interface { - Stop() -} - -var ( - DefaultRegistry = NewRegistry() - EphemeralRegistry = NewRegistry() - AccountingRegistry = NewRegistry() // registry used in swarm -) - -// Get the metric by the given name or nil if none is registered. -func Get(name string) interface{} { - return DefaultRegistry.Get(name) -} diff --git a/metrics/resetting_timer.go b/metrics/resetting_timer.go deleted file mode 100644 index d5e5f49c97b..00000000000 --- a/metrics/resetting_timer.go +++ /dev/null @@ -1,16 +0,0 @@ -package metrics - -import ( - "time" -) - -// ResettingTimer is used for storing aggregated values for timers, which are reset on every flush interval. -type ResettingTimer interface { - Values() []int64 - Snapshot() ResettingTimer - Percentiles([]float64) []int64 - Mean() float64 - Time(func()) - Update(time.Duration) - UpdateSince(time.Time) -} diff --git a/metrics/runtime_test.go b/metrics/runtime_test.go deleted file mode 100644 index 202a8565b44..00000000000 --- a/metrics/runtime_test.go +++ /dev/null @@ -1,39 +0,0 @@ -package metrics - -import ( - "runtime" - "testing" - "time" - - "github.com/ledgerwatch/erigon-lib/common/dbg" -) - -func TestRuntimeMemStatsBlocking(t *testing.T) { - if g := runtime.GOMAXPROCS(0); g < 2 { - t.Skipf("skipping TestRuntimeMemStatsBlocking with GOMAXPROCS=%d\n", g) - } - ch := make(chan int) - go testRuntimeMemStatsBlocking(ch) - var memStats runtime.MemStats - t0 := time.Now() - dbg.ReadMemStats(&memStats) - t1 := time.Now() - t.Log("i++ during runtime.ReadMemStats:", <-ch) - go testRuntimeMemStatsBlocking(ch) - d := t1.Sub(t0) - t.Log(d) - time.Sleep(d) - t.Log("i++ during time.Sleep:", <-ch) -} - -func testRuntimeMemStatsBlocking(ch chan int) { - i := 0 - for { - select { - case ch <- i: - return - default: - i++ - } - } -} diff --git a/metrics/sample.go b/metrics/sample.go deleted file mode 100644 index d9263d89e18..00000000000 --- a/metrics/sample.go +++ /dev/null @@ -1,20 +0,0 @@ -package metrics - -// Samples maintain a statistically-significant selection of values from -// a stream. -type Sample interface { - Clear() - Count() int64 - Max() int64 - Mean() float64 - Min() int64 - Percentile(float64) float64 - Percentiles([]float64) []float64 - Size() int - Snapshot() Sample - StdDev() float64 - Sum() int64 - Update(int64) - Values() []int64 - Variance() float64 -} diff --git a/metrics/timer.go b/metrics/timer.go deleted file mode 100644 index 2f4a9aa2a9e..00000000000 --- a/metrics/timer.go +++ /dev/null @@ -1,27 +0,0 @@ -package metrics - -import ( - "time" -) - -// Timers capture the duration and rate of events. -type Timer interface { - Count() int64 - Max() int64 - Mean() float64 - Min() int64 - Percentile(float64) float64 - Percentiles([]float64) []float64 - Rate1() float64 - Rate5() float64 - Rate15() float64 - RateMean() float64 - Snapshot() Timer - StdDev() float64 - Stop() - Sum() int64 - Time(func()) - Update(time.Duration) - UpdateSince(time.Time) - Variance() float64 -} diff --git a/metrics/validate.sh b/metrics/validate.sh deleted file mode 100755 index c4ae91e642d..00000000000 --- a/metrics/validate.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -# check there are no formatting issues -GOFMT_LINES=`gofmt -l . | wc -l | xargs` -test $GOFMT_LINES -eq 0 || echo "gofmt needs to be run, ${GOFMT_LINES} files have issues" - -# run the tests for the root package -go test -race . diff --git a/migrations/migrations.go b/migrations/migrations.go index d69e523bcf9..9f734d1ac9e 100644 --- a/migrations/migrations.go +++ b/migrations/migrations.go @@ -4,11 +4,11 @@ import ( "bytes" "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common" "path/filepath" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/log/v3" diff --git a/migrations/txs_begin_end.go b/migrations/txs_begin_end.go index bae1019f259..f2063bd4ac1 100644 --- a/migrations/txs_begin_end.go +++ b/migrations/txs_begin_end.go @@ -16,7 +16,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" @@ -238,7 +237,7 @@ func writeTransactionsNewDeprecated(db kv.RwTx, txs []types.Transaction, baseTxI return fmt.Errorf("broken tx rlp: %w", err) } // If next Append returns KeyExists error - it means you need to open transaction in App code before calling this func. Batch is also fine. - if err := db.Put(kv.EthTx, txIdKey, common.CopyBytes(buf.Bytes())); err != nil { + if err := db.Put(kv.EthTx, txIdKey, common2.CopyBytes(buf.Bytes())); err != nil { return err } txId++ diff --git a/migrations/txs_v3.go b/migrations/txs_v3.go index 6047585626d..f34789f3591 100644 --- a/migrations/txs_v3.go +++ b/migrations/txs_v3.go @@ -14,7 +14,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/rawdb" ) @@ -66,7 +65,7 @@ var TxsV3 = Migration{ } // Copying k because otherwise the same memory will be reused // for the next key and Delete below will end up deleting 1 more record than required - kCopy := common.CopyBytes(k) + kCopy := common2.CopyBytes(k) if err = tx.Delete(kv.Senders, kCopy); err != nil { return err } diff --git a/migrations/txs_v3_test.go b/migrations/txs_v3_test.go index 50ac319f12a..5d3071400c7 100644 --- a/migrations/txs_v3_test.go +++ b/migrations/txs_v3_test.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "testing" "time" @@ -14,7 +15,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/u256" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/migrations" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/log/v3" diff --git a/node/endpoints.go b/node/endpoints.go index 3855b6dc8d3..5a2a1051735 100644 --- a/node/endpoints.go +++ b/node/endpoints.go @@ -19,29 +19,102 @@ package node import ( "context" "errors" + "fmt" "net" "net/http" + "net/url" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/rpc/rpccfg" "github.com/ledgerwatch/log/v3" + "golang.org/x/net/http2" + "golang.org/x/net/http2/h2c" ) +type HttpEndpointConfig struct { + Timeouts rpccfg.HTTPTimeouts + HTTPS bool + CertFile string + KeyFile string +} + // StartHTTPEndpoint starts the HTTP RPC endpoint. -func StartHTTPEndpoint(endpoint string, timeouts rpccfg.HTTPTimeouts, handler http.Handler) (*http.Server, net.Addr, error) { +func StartHTTPEndpoint(urlEndpoint string, cfg *HttpEndpointConfig, handler http.Handler) (*http.Server, net.Addr, error) { // start the HTTP listener var ( listener net.Listener err error ) - if listener, err = net.Listen("tcp", endpoint); err != nil { + socketUrl, err := url.Parse(urlEndpoint) + if err != nil { + return nil, nil, fmt.Errorf("malformatted http listen url %s: %w", urlEndpoint, err) + } + if listener, err = net.Listen(socketUrl.Scheme, socketUrl.Host+socketUrl.EscapedPath()); err != nil { + return nil, nil, err + } + // make sure timeout values are meaningful + CheckTimeouts(&cfg.Timeouts) + // create the http2 server for handling h2c + h2 := &http2.Server{} + // enable h2c support + handler = h2c.NewHandler(handler, h2) + // Bundle the http server + httpSrv := &http.Server{ + Handler: handler, + ReadTimeout: cfg.Timeouts.ReadTimeout, + WriteTimeout: cfg.Timeouts.WriteTimeout, + IdleTimeout: cfg.Timeouts.IdleTimeout, + ReadHeaderTimeout: cfg.Timeouts.ReadTimeout, + } + // start the HTTP server + go func() { + var serveErr error + if cfg.HTTPS { + serveErr = httpSrv.ServeTLS(listener, cfg.CertFile, cfg.KeyFile) + if serveErr != nil && !isIgnoredHttpServerError(serveErr) { + log.Warn("Failed to serve https endpoint", "err", serveErr) + } + } else { + serveErr = httpSrv.Serve(listener) + if serveErr != nil && !isIgnoredHttpServerError(serveErr) { + log.Warn("Failed to serve http endpoint", "err", serveErr) + } + } + }() + return httpSrv, listener.Addr(), err +} + +func isIgnoredHttpServerError(serveErr error) bool { + return (errors.Is(serveErr, context.Canceled) || errors.Is(serveErr, libcommon.ErrStopped) || errors.Is(serveErr, http.ErrServerClosed)) + +} + +// StartHTTPEndpoint starts the HTTP RPC endpoint. +func StartHTTPSEndpoint(urlEndpoint string, + keyFile string, certFile string, + timeouts rpccfg.HTTPTimeouts, handler http.Handler, +) (*http.Server, net.Addr, error) { + // start the HTTP listener + var ( + listener net.Listener + err error + ) + socketUrl, err := url.Parse(urlEndpoint) + if err != nil { + return nil, nil, fmt.Errorf("malformatted http listen url %s: %w", urlEndpoint, err) + } + if listener, err = net.Listen(socketUrl.Scheme, socketUrl.Host+socketUrl.EscapedPath()); err != nil { return nil, nil, err } // make sure timeout values are meaningful CheckTimeouts(&timeouts) - // Bundle and start the HTTP server + // create the http2 server for handling h2c + h2 := &http2.Server{} + // enable h2c support + handler = h2c.NewHandler(handler, h2) + // Bundle the http server httpSrv := &http.Server{ Handler: handler, ReadTimeout: timeouts.ReadTimeout, @@ -49,8 +122,9 @@ func StartHTTPEndpoint(endpoint string, timeouts rpccfg.HTTPTimeouts, handler ht IdleTimeout: timeouts.IdleTimeout, ReadHeaderTimeout: timeouts.ReadTimeout, } + // start the HTTP server go func() { - serveErr := httpSrv.Serve(listener) + serveErr := httpSrv.ServeTLS(listener, certFile, keyFile) if serveErr != nil && !(errors.Is(serveErr, context.Canceled) || errors.Is(serveErr, libcommon.ErrStopped) || errors.Is(serveErr, http.ErrServerClosed)) { log.Warn("Failed to serve http endpoint", "err", serveErr) diff --git a/node/errors.go b/node/errors.go index c6ac5c7aab7..bbde510727c 100644 --- a/node/errors.go +++ b/node/errors.go @@ -20,24 +20,13 @@ import ( "errors" "fmt" "reflect" - "syscall" ) var ( - ErrDataDirUsed = errors.New("datadir already used by another process") ErrNodeStopped = errors.New("node not started") ErrNodeRunning = errors.New("node already running") - - datadirInUseErrNos = map[uint]bool{11: true, 32: true, 35: true} ) -func convertFileLockError(err error) error { - if errno, ok := err.(syscall.Errno); ok && datadirInUseErrNos[uint(errno)] { - return ErrDataDirUsed - } - return err -} - // StopError is returned if a Node fails to stop either any of its registered // services or itself. type StopError struct { diff --git a/node/node.go b/node/node.go index 60a12240f93..1bd78c6b084 100644 --- a/node/node.go +++ b/node/node.go @@ -20,25 +20,28 @@ import ( "context" "errors" "fmt" - "os" "path/filepath" "reflect" "strings" "sync" + "time" "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common/datadir" + "golang.org/x/sync/semaphore" + "github.com/ledgerwatch/erigon/cmd/utils" "github.com/ledgerwatch/erigon/node/nodecfg" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/turbo/debug" - "golang.org/x/sync/semaphore" "github.com/gofrs/flock" + "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon-lib/kv/memdb" "github.com/ledgerwatch/erigon/migrations" - "github.com/ledgerwatch/log/v3" ) // Node is a container on which services can be registered. @@ -63,7 +66,7 @@ const ( ) // New creates a new P2P node, ready for protocol registration. -func New(conf *nodecfg.Config, logger log.Logger) (*Node, error) { +func New(ctx context.Context, conf *nodecfg.Config, logger log.Logger) (*Node, error) { // Copy config and resolve the datadir so future changes to the current // working directory don't affect the node. confCopy := *conf @@ -86,7 +89,7 @@ func New(conf *nodecfg.Config, logger log.Logger) (*Node, error) { } // Acquire the instance directory lock. - if err := node.openDataDir(); err != nil { + if err := node.openDataDir(ctx); err != nil { return nil, err } @@ -221,27 +224,35 @@ func (n *Node) stopServices(running []Lifecycle) error { return nil } -func (n *Node) openDataDir() error { +func (n *Node) openDataDir(ctx context.Context) error { if n.config.Dirs.DataDir == "" { return nil // ephemeral } instdir := n.config.Dirs.DataDir - if err := os.MkdirAll(instdir, 0700); err != nil { + if err := datadir.ApplyMigrations(n.config.Dirs); err != nil { return err } - // Lock the instance directory to prevent concurrent use by another instance as well as - // accidental use of the instance directory as a database. - l := flock.New(filepath.Join(instdir, "LOCK")) - - locked, err := l.TryLock() - if err != nil { - return convertFileLockError(err) - } - if !locked { - return fmt.Errorf("%w: %s", ErrDataDirUsed, instdir) + for retry := 0; ; retry++ { + l, locked, err := datadir.TryFlock(n.config.Dirs) + if err != nil { + return err + } + if !locked { + if retry >= 10 { + return fmt.Errorf("%w: %s", datadir.ErrDataDirLocked, instdir) + } + log.Error(datadir.ErrDataDirLocked.Error() + ", retry in 2 sec") + select { + case <-ctx.Done(): + return ctx.Err() + case <-time.After(2 * time.Second): + } + continue + } + n.dirLock = l + break } - n.dirLock = l return nil } @@ -284,7 +295,7 @@ func (n *Node) DataDir() string { return n.config.Dirs.DataDir } -func OpenDatabase(config *nodecfg.Config, label kv.Label, name string, readonly bool, logger log.Logger) (kv.RwDB, error) { +func OpenDatabase(ctx context.Context, config *nodecfg.Config, label kv.Label, name string, readonly bool, logger log.Logger) (kv.RwDB, error) { switch label { case kv.ChainDB: name = "chaindata" @@ -292,7 +303,7 @@ func OpenDatabase(config *nodecfg.Config, label kv.Label, name string, readonly name = "txpool" case kv.ConsensusDB: if len(name) == 0 { - return nil, fmt.Errorf("Expected a consensus name") + return nil, fmt.Errorf("expected a consensus name") } default: name = "test" @@ -313,8 +324,9 @@ func OpenDatabase(config *nodecfg.Config, label kv.Label, name string, readonly roTxLimit = int64(config.Http.DBReadConcurrency) } roTxsLimiter := semaphore.NewWeighted(roTxLimit) // 1 less than max to allow unlocking to happen - opts := mdbx.NewMDBX(log.Root()). + opts := mdbx.NewMDBX(logger). Path(dbPath).Label(label). + GrowthStep(16 * datasize.MB). DBVerbosity(config.DatabaseVerbosity).RoTxsLimiter(roTxsLimiter) if readonly { @@ -325,7 +337,7 @@ func OpenDatabase(config *nodecfg.Config, label kv.Label, name string, readonly } switch label { - case kv.ChainDB, kv.ConsensusDB: + case kv.ChainDB: if config.MdbxPageSize.Bytes() > 0 { opts = opts.PageSize(config.MdbxPageSize.Bytes()) } @@ -335,11 +347,22 @@ func OpenDatabase(config *nodecfg.Config, label kv.Label, name string, readonly if config.MdbxGrowthStep > 0 { opts = opts.GrowthStep(config.MdbxGrowthStep) } + case kv.ConsensusDB: + if config.MdbxPageSize.Bytes() > 0 { + opts = opts.PageSize(config.MdbxPageSize.Bytes()) + } + // Don't adjust up the consensus DB - this will lead to resource exhaustion lor large map sizes + if config.MdbxDBSizeLimit > 0 && config.MdbxDBSizeLimit < mdbx.DefaultMapSize { + opts = opts.MapSize(config.MdbxDBSizeLimit) + } + // Don't adjust up the consensus DB - to align with db size limit above + if config.MdbxGrowthStep > 0 && config.MdbxGrowthStep < mdbx.DefaultGrowthStep { + opts = opts.GrowthStep(config.MdbxGrowthStep) + } default: - opts = opts.GrowthStep(16 * datasize.MB) } - return opts.Open() + return opts.Open(ctx) } var err error db, err = openFunc(false) diff --git a/node/node_example_test.go b/node/node_example_test.go index 82d42723b08..17cdfd6b466 100644 --- a/node/node_example_test.go +++ b/node/node_example_test.go @@ -17,6 +17,7 @@ package node_test import ( + "context" "fmt" log2 "log" @@ -38,7 +39,7 @@ func (s *SampleLifecycle) Stop() error { fmt.Println("Service stopping..."); re func ExampleLifecycle() { // Create a network node to run protocols with the default values. - stack, err := node.New(&nodecfg.Config{}, log.New()) + stack, err := node.New(context.Background(), &nodecfg.Config{}, log.New()) if err != nil { log2.Fatalf("Failed to create network node: %v", err) } diff --git a/node/node_test.go b/node/node_test.go index b2d8c7f2c40..ed662a2f78f 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -50,7 +50,7 @@ func TestNodeCloseMultipleTimes(t *testing.T) { t.Skip("fix me on win please") } - stack, err := New(testNodeConfig(t), log.New()) + stack, err := New(context.Background(), testNodeConfig(t), log.New()) if err != nil { t.Fatalf("failed to create protocol stack: %v", err) } @@ -69,7 +69,7 @@ func TestNodeStartMultipleTimes(t *testing.T) { t.Skip("fix me on win please") } - stack, err := New(testNodeConfig(t), log.New()) + stack, err := New(context.Background(), testNodeConfig(t), log.New()) if err != nil { t.Fatalf("failed to create protocol stack: %v", err) } @@ -100,7 +100,7 @@ func TestNodeUsedDataDir(t *testing.T) { dir := t.TempDir() // Create a new node based on the data directory - original, originalErr := New(&nodecfg.Config{Dirs: datadir.New(dir)}, log.New()) + original, originalErr := New(context.Background(), &nodecfg.Config{Dirs: datadir.New(dir)}, log.New()) if originalErr != nil { t.Fatalf("failed to create original protocol stack: %v", originalErr) } @@ -110,14 +110,14 @@ func TestNodeUsedDataDir(t *testing.T) { } // Create a second node based on the same data directory and ensure failure - if _, err := New(&nodecfg.Config{Dirs: datadir.New(dir)}, log.New()); !errors.Is(err, ErrDataDirUsed) { - t.Fatalf("duplicate datadir failure mismatch: have %v, want %v", err, ErrDataDirUsed) + if _, err := New(context.Background(), &nodecfg.Config{Dirs: datadir.New(dir)}, log.New()); !errors.Is(err, datadir.ErrDataDirLocked) { + t.Fatalf("duplicate datadir failure mismatch: have %v, want %v", err, datadir.ErrDataDirLocked) } } // Tests whether a Lifecycle can be registered. func TestLifecycleRegistry_Successful(t *testing.T) { - stack, err := New(testNodeConfig(t), log.New()) + stack, err := New(context.Background(), testNodeConfig(t), log.New()) if err != nil { t.Fatalf("failed to create protocol stack: %v", err) } @@ -144,10 +144,10 @@ func TestNodeCloseClosesDB(t *testing.T) { } logger := log.New() - stack, _ := New(testNodeConfig(t), logger) + stack, _ := New(context.Background(), testNodeConfig(t), logger) defer stack.Close() - db, err := OpenDatabase(stack.Config(), kv.SentryDB, "", false, logger) + db, err := OpenDatabase(context.Background(), stack.Config(), kv.SentryDB, "", false, logger) if err != nil { t.Fatal("can't open DB:", err) } @@ -172,14 +172,14 @@ func TestNodeOpenDatabaseFromLifecycleStart(t *testing.T) { } logger := log.New() - stack, err := New(testNodeConfig(t), logger) + stack, err := New(context.Background(), testNodeConfig(t), logger) require.NoError(t, err) defer stack.Close() var db kv.RwDB stack.RegisterLifecycle(&InstrumentedService{ startHook: func() { - db, err = OpenDatabase(stack.Config(), kv.SentryDB, "", false, logger) + db, err = OpenDatabase(context.Background(), stack.Config(), kv.SentryDB, "", false, logger) if err != nil { t.Fatal("can't open DB:", err) } @@ -200,12 +200,12 @@ func TestNodeOpenDatabaseFromLifecycleStop(t *testing.T) { } logger := log.New() - stack, _ := New(testNodeConfig(t), logger) + stack, _ := New(context.Background(), testNodeConfig(t), logger) defer stack.Close() stack.RegisterLifecycle(&InstrumentedService{ stopHook: func() { - db, err := OpenDatabase(stack.Config(), kv.ChainDB, "", false, logger) + db, err := OpenDatabase(context.Background(), stack.Config(), kv.ChainDB, "", false, logger) if err != nil { t.Fatal("can't open DB:", err) } @@ -219,7 +219,7 @@ func TestNodeOpenDatabaseFromLifecycleStop(t *testing.T) { // Tests that registered Lifecycles get started and stopped correctly. func TestLifecycleLifeCycle(t *testing.T) { - stack, _ := New(testNodeConfig(t), log.New()) + stack, _ := New(context.Background(), testNodeConfig(t), log.New()) defer stack.Close() started := make(map[string]bool) @@ -274,7 +274,7 @@ func TestLifecycleStartupError(t *testing.T) { t.Skip("fix me on win please") } - stack, err := New(testNodeConfig(t), log.New()) + stack, err := New(context.Background(), testNodeConfig(t), log.New()) if err != nil { t.Fatalf("failed to create protocol stack: %v", err) } @@ -324,7 +324,7 @@ func TestLifecycleStartupError(t *testing.T) { // Tests that even if a registered Lifecycle fails to shut down cleanly, it does // not influence the rest of the shutdown invocations. func TestLifecycleTerminationGuarantee(t *testing.T) { - stack, err := New(testNodeConfig(t), log.New()) + stack, err := New(context.Background(), testNodeConfig(t), log.New()) if err != nil { t.Fatalf("failed to create protocol stack: %v", err) } diff --git a/node/nodecfg/config.go b/node/nodecfg/config.go index 42e8e18a894..698f2d71f66 100644 --- a/node/nodecfg/config.go +++ b/node/nodecfg/config.go @@ -155,10 +155,9 @@ type Config struct { TLSConnection bool TLSCertFile string - // AllowUnprotectedTxs allows non EIP-155 protected transactions to be send over RPC. - AllowUnprotectedTxs bool `toml:",omitempty"` - TLSKeyFile string - TLSCACert string + + TLSKeyFile string + TLSCACert string MdbxPageSize datasize.ByteSize MdbxDBSizeLimit datasize.ByteSize diff --git a/node/nodecfg/config_test.go b/node/nodecfg/config_test.go index fe1e4d10a1a..51284fe2306 100644 --- a/node/nodecfg/config_test.go +++ b/node/nodecfg/config_test.go @@ -17,6 +17,7 @@ package nodecfg_test import ( + "context" "os" "path/filepath" "runtime" @@ -36,7 +37,7 @@ func TestDataDirCreation(t *testing.T) { } // Create a temporary data dir and check that it can be used by a node dir := t.TempDir() - node, err := node2.New(&nodecfg.Config{Dirs: datadir.New(dir)}, log.New()) + node, err := node2.New(context.Background(), &nodecfg.Config{Dirs: datadir.New(dir)}, log.New()) if err != nil { t.Fatalf("failed to create stack with existing datadir: %v", err) } @@ -45,7 +46,7 @@ func TestDataDirCreation(t *testing.T) { } // Generate a long non-existing datadir path and check that it gets created by a node dir = filepath.Join(dir, "a", "b", "c", "d", "e", "f") - node, err = node2.New(&nodecfg.Config{Dirs: datadir.New(dir)}, log.New()) + node, err = node2.New(context.Background(), &nodecfg.Config{Dirs: datadir.New(dir)}, log.New()) if err != nil { t.Fatalf("failed to create stack with creatable datadir: %v", err) } @@ -61,16 +62,6 @@ func TestDataDirCreation(t *testing.T) { t.Fatalf("failed to create temporary file: %v", err) } defer os.Remove(file.Name()) - - dir = filepath.Join(file.Name(), "invalid/path") - node, err = node2.New(&nodecfg.Config{Dirs: datadir.New(dir)}, log.New()) - if err == nil { - t.Fatalf("protocol stack created with an invalid datadir") - if err := node.Close(); err != nil { - t.Fatalf("failed to close node: %v", err) - } - } - _ = node } // Tests that IPC paths are correctly resolved to valid endpoints of different diff --git a/node/nodecfg/defaults.go b/node/nodecfg/defaults.go index 7ba748370f8..da16d7ab990 100644 --- a/node/nodecfg/defaults.go +++ b/node/nodecfg/defaults.go @@ -17,10 +17,8 @@ package nodecfg import ( - "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/direct" - "github.com/ledgerwatch/erigon/common/paths" "github.com/ledgerwatch/erigon/p2p" "github.com/ledgerwatch/erigon/p2p/nat" "github.com/ledgerwatch/erigon/rpc/rpccfg" @@ -40,7 +38,6 @@ const ( // DefaultConfig contains reasonable default settings. var DefaultConfig = Config{ - Dirs: datadir.New(paths.DefaultDataDir()), HTTPPort: DefaultHTTPPort, HTTPModules: []string{"net", "web3"}, HTTPVirtualHosts: []string{"localhost"}, diff --git a/node/rpcstack.go b/node/rpcstack.go index 2959aca0b74..6bb42db6c59 100644 --- a/node/rpcstack.go +++ b/node/rpcstack.go @@ -265,7 +265,7 @@ func (h *httpServer) enableRPC(apis []rpc.API, config httpConfig, allowList rpc. } // Create RPC server and handler. - srv := rpc.NewServer(50, false /* traceRequests */, true, h.logger) + srv := rpc.NewServer(50, false /* traceRequests */, true, h.logger, 0) srv.SetAllowList(allowList) if err := RegisterApisFromWhitelist(apis, config.Modules, srv, false, h.logger); err != nil { return err @@ -298,7 +298,7 @@ func (h *httpServer) enableWS(apis []rpc.API, config wsConfig, allowList rpc.All } // Create RPC server and handler. - srv := rpc.NewServer(50, false /* traceRequests */, true, h.logger) + srv := rpc.NewServer(50, false /* traceRequests */, true, h.logger, 0) srv.SetAllowList(allowList) if err := RegisterApisFromWhitelist(apis, config.Modules, srv, false, h.logger); err != nil { return err diff --git a/node/rpcstack_test.go b/node/rpcstack_test.go index 0280ab84e41..d9b4a643d07 100644 --- a/node/rpcstack_test.go +++ b/node/rpcstack_test.go @@ -19,6 +19,7 @@ package node import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon-lib/common" "io" "net/http" "net/url" @@ -86,20 +87,6 @@ type originTest struct { expFail []string } -// splitAndTrim splits input separated by a comma -// and trims excessive white space from the substrings. -// Copied over from flags.go -func splitAndTrim(input string) (ret []string) { - l := strings.Split(input, ",") - for _, r := range l { - r = strings.TrimSpace(r) - if len(r) > 0 { - ret = append(ret, r) - } - } - return ret -} - // TestWebsocketOrigins makes sure the websocket origins are properly handled on the websocket server. func TestWebsocketOrigins(t *testing.T) { tests := []originTest{ @@ -165,7 +152,7 @@ func TestWebsocketOrigins(t *testing.T) { }, } for _, tc := range tests { - srv := createAndStartServer(t, &httpConfig{}, true, &wsConfig{Origins: splitAndTrim(tc.spec)}) + srv := createAndStartServer(t, &httpConfig{}, true, &wsConfig{Origins: common.CliString2Array(tc.spec)}) url := fmt.Sprintf("ws://%v", srv.listenAddr()) for _, origin := range tc.expOk { if err := wsRequest(t, url, origin); err != nil { diff --git a/p2p/dial.go b/p2p/dial.go index cadb821d5ef..8bb3934ebe4 100644 --- a/p2p/dial.go +++ b/p2p/dial.go @@ -43,7 +43,6 @@ const ( // Config for the "Looking for peers" message. dialStatsLogInterval = 60 * time.Second // printed at most this often - dialStatsPeerLimit = 20 // but not if more than this many dialed peers // Endpoint resolution is throttled with bounded backoff. initialResolveDelay = 60 * time.Second @@ -94,6 +93,7 @@ var ( // to create peer connections to nodes arriving through the iterator. type dialScheduler struct { dialConfig + mutex sync.Mutex setupFunc dialSetupFunc wg sync.WaitGroup cancel context.CancelFunc @@ -126,8 +126,8 @@ type dialScheduler struct { historyTimerTime mclock.AbsTime // for logStats - lastStatsLog mclock.AbsTime - doneSinceLastLog int + dialed int + errors map[string]uint } type dialSetupFunc func(net.Conn, connFlag, *enode.Node) error @@ -177,8 +177,9 @@ func newDialScheduler(config dialConfig, it enode.Iterator, setupFunc dialSetupF remPeerCh: make(chan *conn), subProtocolVersion: subProtocolVersion, + errors: map[string]uint{}, } - d.lastStatsLog = d.clock.Now() + d.ctx, d.cancel = context.WithCancel(context.Background()) d.wg.Add(2) go d.readNodes(it) @@ -232,6 +233,9 @@ func (d *dialScheduler) loop(it enode.Iterator) { historyExp = make(chan struct{}, 1) ) + logTimer := time.NewTicker(dialStatsLogInterval) + defer logTimer.Stop() + loop: for { // Launch new dials if slots are available. @@ -243,13 +247,15 @@ loop: nodesCh = nil } d.rearmHistoryTimer(historyExp) - //d.logStats() select { case <-d.ctx.Done(): it.Close() break loop + case <-logTimer.C: + d.logStats() + case node := <-nodesCh: if err := d.checkDial(node); err != nil { d.log.Trace("Discarding dial candidate", "id", node.ID(), "ip", node.IP(), "reason", err) @@ -261,7 +267,7 @@ loop: id := task.dest.ID() delete(d.dialing, id) d.updateStaticPool(id) - d.doneSinceLastLog++ + d.dialed++ case c := <-d.addPeerCh: if c.is(dynDialedConn) || c.is(staticDialedConn) { @@ -337,15 +343,16 @@ func (d *dialScheduler) readNodes(it enode.Iterator) { // or comes back online. // nolint func (d *dialScheduler) logStats() { - now := d.clock.Now() - if d.lastStatsLog.Add(dialStatsLogInterval) > now { - return - } - if d.dialPeers < dialStatsPeerLimit && d.dialPeers < d.maxDialPeers { - d.log.Info("[p2p] Looking for peers", "protocol", d.subProtocolVersion, "peers", fmt.Sprintf("%d/%d", len(d.peers), d.maxDialPeers), "tried", d.doneSinceLastLog, "static", len(d.static)) + vals := []interface{}{"protocol", d.subProtocolVersion, + "peers", fmt.Sprintf("%d/%d", len(d.peers), d.maxDialPeers), "tried", d.dialed, "static", len(d.static)} + + d.mutex.Lock() + for err, count := range d.errors { + vals = append(vals, err, count) } - d.doneSinceLastLog = 0 - d.lastStatsLog = now + d.mutex.Unlock() + + d.log.Debug("[p2p] Dial scheduler", vals...) } // rearmHistoryTimer configures d.historyTimer to fire when the @@ -543,7 +550,12 @@ func (t *dialTask) resolve(d *dialScheduler) bool { func (t *dialTask) dial(d *dialScheduler, dest *enode.Node) error { fd, err := d.dialer.Dial(d.ctx, t.dest) if err != nil { - d.log.Trace("Dial error", "id", t.dest.ID(), "addr", nodeAddr(t.dest), "conn", t.flags, "err", cleanupDialErr(err)) + cleanErr := cleanupDialErr(err) + d.log.Trace("Dial error", "id", t.dest.ID(), "addr", nodeAddr(t.dest), "conn", t.flags, "err", cleanErr) + + d.mutex.Lock() + d.errors[cleanErr.Error()] = d.errors[cleanErr.Error()] + 1 + d.mutex.Unlock() return &dialError{err} } mfd := newMeteredConn(fd, false, &net.TCPAddr{IP: dest.IP(), Port: dest.TCP()}) diff --git a/p2p/discover/common.go b/p2p/discover/common.go index 6ee5c4c0bd1..da45e7b6d0d 100644 --- a/p2p/discover/common.go +++ b/p2p/discover/common.go @@ -86,8 +86,8 @@ func (cfg Config) withDefaults(defaultReplyTimeout time.Duration) Config { } // ListenUDP starts listening for discovery packets on the given UDP socket. -func ListenUDP(ctx context.Context, c UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv4, error) { - return ListenV4(ctx, c, ln, cfg) +func ListenUDP(ctx context.Context, protocol string, c UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv4, error) { + return ListenV4(ctx, protocol, c, ln, cfg) } // ReadPacket is a packet that couldn't be handled. Those packets are sent to the unhandled @@ -96,3 +96,8 @@ type ReadPacket struct { Data []byte Addr *net.UDPAddr } + +type UnhandledPacket struct { + ReadPacket + Reason error +} diff --git a/p2p/discover/lookup.go b/p2p/discover/lookup.go index 0e03daa30f2..87ba2c2d55e 100644 --- a/p2p/discover/lookup.go +++ b/p2p/discover/lookup.go @@ -155,6 +155,7 @@ func (it *lookup) slowdown() { func (it *lookup) query(n *node, reply chan<- []*node) { fails := it.tab.db.FindFails(n.ID(), n.IP()) r, err := it.queryfunc(n) + if err == errClosed { // Avoid recording failures on shutdown. reply <- nil @@ -180,6 +181,7 @@ func (it *lookup) query(n *node, reply chan<- []*node) { for _, n := range r { it.tab.addSeenNode(n) } + reply <- r } diff --git a/p2p/discover/table.go b/p2p/discover/table.go index eaa79403447..feaf5d39788 100644 --- a/p2p/discover/table.go +++ b/p2p/discover/table.go @@ -55,12 +55,13 @@ const ( bucketIPLimit, bucketSubnet = 2, 24 // at most 2 addresses from the same /24 tableIPLimit, tableSubnet = 10, 24 - refreshInterval = 30 * time.Minute - revalidateInterval = 5 * time.Second - copyNodesInterval = 30 * time.Second - seedMinTableTime = 5 * time.Minute - seedCount = 30 - seedMaxAge = 5 * 24 * time.Hour + minRefreshInterval = 30 * time.Second + refreshInterval = 30 * time.Minute + revalidateInterval = 5 * time.Second + maintenanceInterval = 60 * time.Second + seedMinTableTime = 5 * time.Minute + seedCount = 30 + seedMaxAge = 5 * 24 * time.Hour ) // Table is the 'node table', a Kademlia-like index of neighbor nodes. The table keeps @@ -84,6 +85,12 @@ type Table struct { closed chan struct{} nodeAddedHook func(*node) // for testing + + // diagnostics + errors map[string]uint + dbseeds int + revalidates int + protocol string } // transport is implemented by the UDP transports. @@ -93,6 +100,9 @@ type transport interface { lookupRandom() []*enode.Node lookupSelf() []*enode.Node ping(*enode.Node) (seq uint64, err error) + Version() string + Errors() map[string]uint + LenUnsolicited() int } // bucket contains nodes, ordered by their last activity. the entry @@ -105,24 +115,25 @@ type bucket struct { func newTable( t transport, + protocol string, db *enode.DB, bootnodes []*enode.Node, revalidateInterval time.Duration, logger log.Logger, ) (*Table, error) { tab := &Table{ - net: t, - db: db, - refreshReq: make(chan chan struct{}), - initDone: make(chan struct{}), - closeReq: make(chan struct{}), - closed: make(chan struct{}), - rand: mrand.New(mrand.NewSource(0)), // nolint: gosec - ips: netutil.DistinctNetSet{Subnet: tableSubnet, Limit: tableIPLimit}, - + net: t, + db: db, + refreshReq: make(chan chan struct{}), + initDone: make(chan struct{}), + closeReq: make(chan struct{}), + closed: make(chan struct{}), + rand: mrand.New(mrand.NewSource(0)), // nolint: gosec + ips: netutil.DistinctNetSet{Subnet: tableSubnet, Limit: tableIPLimit}, + errors: map[string]uint{}, revalidateInterval: revalidateInterval, - - log: logger, + protocol: protocol, + log: logger, } if err := tab.setFallbackNodes(bootnodes); err != nil { return nil, err @@ -147,8 +158,8 @@ func (tab *Table) seedRand() { crand.Read(b[:]) tab.mutex.Lock() + defer tab.mutex.Unlock() tab.rand.Seed(int64(binary.BigEndian.Uint64(b[:]))) - tab.mutex.Unlock() } // ReadRandomNodes fills the given slice with random nodes from the table. The results @@ -157,6 +168,7 @@ func (tab *Table) ReadRandomNodes(buf []*enode.Node) (n int) { if !tab.isInitDone() { return 0 } + tab.mutex.Lock() defer tab.mutex.Unlock() @@ -230,21 +242,29 @@ func (tab *Table) refresh() <-chan struct{} { // loop schedules runs of doRefresh, doRevalidate and copyLiveNodes. func (tab *Table) loop() { var ( - revalidate = time.NewTimer(tab.revalidateInterval) - refresh = time.NewTicker(refreshInterval) - copyNodes = time.NewTicker(copyNodesInterval) - refreshDone = make(chan struct{}) // where doRefresh reports completion - revalidateDone chan struct{} // where doRevalidate reports completion - waiting = []chan struct{}{tab.initDone} // holds waiting callers while doRefresh runs + revalidate = time.NewTimer(tab.revalidateInterval) + refresh = time.NewTicker(refreshInterval) + tableMainenance = time.NewTicker(maintenanceInterval) + refreshDone = make(chan struct{}) // where doRefresh reports completion + revalidateDone chan struct{} // where doRevalidate reports completion + waiting = []chan struct{}{tab.initDone} // holds waiting callers while doRefresh runs ) defer debug.LogPanic() defer refresh.Stop() defer revalidate.Stop() - defer copyNodes.Stop() + defer tableMainenance.Stop() // Start initial refresh. go tab.doRefresh(refreshDone) + var minRefreshTimer *time.Timer + + defer func() { + if minRefreshTimer != nil { + minRefreshTimer.Stop() + } + }() + loop: for { select { @@ -266,13 +286,49 @@ loop: } waiting, refreshDone = nil, nil case <-revalidate.C: - revalidateDone = make(chan struct{}) - go tab.doRevalidate(revalidateDone) + if revalidateDone == nil { + revalidateDone = make(chan struct{}) + go tab.doRevalidate(revalidateDone) + } case <-revalidateDone: revalidate.Reset(tab.revalidateInterval) + if tab.live() == 0 && len(waiting) == 0 && minRefreshTimer == nil { + minRefreshTimer = time.AfterFunc(minRefreshInterval, func() { + minRefreshTimer = nil + tab.net.lookupRandom() + tab.refresh() + }) + } revalidateDone = nil - case <-copyNodes.C: - go tab.copyLiveNodes() + case <-tableMainenance.C: + live := tab.live() + + vals := []interface{}{"protocol", tab.protocol, "version", tab.net.Version(), + "len", tab.len(), "live", tab.live(), "unsol", tab.net.LenUnsolicited(), "ips", tab.ips.Len(), "db", tab.dbseeds, "reval", tab.revalidates} + + func() { + tab.mutex.Lock() + defer tab.mutex.Unlock() + + for err, count := range tab.errors { + vals = append(vals, err, count) + } + + for err, count := range tab.net.Errors() { + vals = append(vals, err, count) + } + }() + + tab.log.Debug("[p2p] Discovery table", vals...) + + if live != 0 { + if revalidateDone == nil { + revalidateDone = make(chan struct{}) + go tab.doRevalidate(revalidateDone) + } + } else { + go tab.copyLiveNodes() + } case <-tab.closeReq: break loop } @@ -316,7 +372,10 @@ func (tab *Table) doRefresh(done chan struct{}) { } func (tab *Table) loadSeedNodes() { - seeds := wrapNodes(tab.db.QuerySeeds(seedCount, seedMaxAge)) + dbseeds := tab.db.QuerySeeds(seedCount, seedMaxAge) + tab.dbseeds = len(dbseeds) + + seeds := wrapNodes(dbseeds) tab.log.Debug("QuerySeeds read nodes from the node DB", "count", len(seeds)) seeds = append(seeds, tab.nursery...) for i := range seeds { @@ -333,6 +392,8 @@ func (tab *Table) doRevalidate(done chan<- struct{}) { defer debug.LogPanic() defer func() { done <- struct{}{} }() + tab.revalidates++ + last, bi := tab.nodeToRevalidate() if last == nil { // No non-empty bucket found. @@ -343,11 +404,14 @@ func (tab *Table) doRevalidate(done chan<- struct{}) { remoteSeq, rErr := tab.net.ping(unwrapNode(last)) // Also fetch record if the node replied and returned a higher sequence number. - if last.Seq() < remoteSeq { - if n, err := tab.net.RequestENR(unwrapNode(last)); err != nil { - tab.log.Trace("ENR request failed", "id", last.ID(), "addr", last.addr(), "err", err) - } else { - last = &node{Node: *n, addedAt: last.addedAt, livenessChecks: last.livenessChecks} + if rErr == nil { + if last.Seq() < remoteSeq { + if n, err := tab.net.RequestENR(unwrapNode(last)); err != nil { + rErr = err + tab.log.Trace("ENR request failed", "id", last.ID(), "addr", last.addr(), "err", err) + } else { + last = &node{Node: *n, addedAt: last.addedAt, livenessChecks: last.livenessChecks} + } } } @@ -360,7 +424,10 @@ func (tab *Table) doRevalidate(done chan<- struct{}) { tab.log.Trace("Revalidated node", "b", bi, "id", last.ID(), "checks", last.livenessChecks) tab.bumpInBucket(b, last) return + } else { + tab.addError(rErr) } + // No reply received, pick a replacement or delete the node if there aren't // any replacements. if r := tab.replace(b, last); r != nil { @@ -444,6 +511,26 @@ func (tab *Table) len() (n int) { return n } +func (tab *Table) live() (n int) { + tab.mutex.Lock() + defer tab.mutex.Unlock() + + for _, b := range &tab.buckets { + for _, e := range b.entries { + if e.livenessChecks > 0 { + n++ + } + } + } + + return n +} + +func (tab *Table) addError(err error) { + str := err.Error() + tab.errors[str] = tab.errors[str] + 1 +} + // bucketLen returns the number of nodes in the bucket for the given ID. func (tab *Table) bucketLen(id enode.ID) int { tab.mutex.Lock() @@ -477,6 +564,7 @@ func (tab *Table) addSeenNode(n *node) { tab.mutex.Lock() defer tab.mutex.Unlock() + b := tab.bucket(n.ID()) if contains(b.entries, n.ID()) { // Already in bucket, don't add. @@ -519,6 +607,7 @@ func (tab *Table) addVerifiedNode(n *node) { tab.mutex.Lock() defer tab.mutex.Unlock() + b := tab.bucket(n.ID()) if tab.bumpInBucket(b, n) { // Already in bucket, moved to front. diff --git a/p2p/discover/table_util_test.go b/p2p/discover/table_util_test.go index 8d7d501a7b9..e4613192884 100644 --- a/p2p/discover/table_util_test.go +++ b/p2p/discover/table_util_test.go @@ -18,6 +18,7 @@ package discover import ( "bytes" + "context" "crypto/ecdsa" "encoding/hex" "errors" @@ -43,11 +44,11 @@ func init() { } func newTestTable(t transport, tmpDir string) (*Table, *enode.DB) { - db, err := enode.OpenDB("", tmpDir) + db, err := enode.OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } - tab, _ := newTable(t, db, nil, time.Hour, log.Root()) + tab, _ := newTable(t, "test", db, nil, time.Hour, log.Root()) go tab.loop() return tab, db } @@ -155,6 +156,9 @@ func (t *pingRecorder) updateRecord(n *enode.Node) { // Stubs to satisfy the transport interface. func (t *pingRecorder) Self() *enode.Node { return nullNode } +func (t *pingRecorder) Version() string { return "none" } +func (t *pingRecorder) Errors() map[string]uint { return nil } +func (t *pingRecorder) LenUnsolicited() int { return 0 } func (t *pingRecorder) lookupSelf() []*enode.Node { return nil } func (t *pingRecorder) lookupRandom() []*enode.Node { return nil } diff --git a/p2p/discover/v4_lookup_test.go b/p2p/discover/v4_lookup_test.go index f4083764bac..07078b4de21 100644 --- a/p2p/discover/v4_lookup_test.go +++ b/p2p/discover/v4_lookup_test.go @@ -33,7 +33,7 @@ import ( ) func TestUDPv4_Lookup(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -72,7 +72,7 @@ func TestUDPv4_Lookup(t *testing.T) { } func TestUDPv4_LookupIterator(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() diff --git a/p2p/discover/v4_udp.go b/p2p/discover/v4_udp.go index 38687292d3f..bc665d0a1c3 100644 --- a/p2p/discover/v4_udp.go +++ b/p2p/discover/v4_udp.go @@ -28,6 +28,7 @@ import ( "sync" "time" + lru "github.com/hashicorp/golang-lru/v2" "github.com/ledgerwatch/erigon/common/debug" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/discover/v4wire" @@ -47,8 +48,14 @@ var ( errLowPort = errors.New("low port") ) +var ( + errExpiredStr = errExpired.Error() + errUnsolicitedReplyStr = errUnsolicitedReply.Error() + errUnknownNodeStr = errUnknownNode.Error() +) + const ( - respTimeout = 500 * time.Millisecond + respTimeout = 750 * time.Millisecond expiration = 20 * time.Second bondExpiration = 24 * time.Hour @@ -65,6 +72,7 @@ const ( // UDPv4 implements the v4 wire protocol. type UDPv4 struct { + mutex sync.Mutex conn UDPConn log log.Logger netrestrict *netutil.Netlist @@ -75,13 +83,18 @@ type UDPv4 struct { closeOnce sync.Once wg sync.WaitGroup - addReplyMatcher chan *replyMatcher - gotreply chan reply - replyTimeout time.Duration - pingBackDelay time.Duration - closeCtx context.Context - cancelCloseCtx context.CancelFunc - + addReplyMatcher chan *replyMatcher + addReplyMatcherMutex sync.Mutex + + gotreply chan reply + gotkey chan v4wire.Pubkey + gotnodes chan nodes + replyTimeout time.Duration + pingBackDelay time.Duration + closeCtx context.Context + cancelCloseCtx context.CancelFunc + errors map[string]uint + unsolicitedNodes *lru.Cache[enode.ID, *enode.Node] privateKeyGenerator func() (*ecdsa.PrivateKey, error) } @@ -98,6 +111,7 @@ type replyMatcher struct { // these fields must match in the reply. from enode.ID ip net.IP + port int ptype byte // time when the request must complete @@ -124,33 +138,44 @@ type replyMatchFunc func(v4wire.Packet) (matched bool, requestDone bool) type reply struct { from enode.ID ip net.IP + port int data v4wire.Packet // loop indicates whether there was // a matching request by sending on this channel. matched chan<- bool } -func ListenV4(ctx context.Context, c UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv4, error) { +type nodes struct { + addr *net.UDPAddr + nodes []v4wire.Node +} + +func ListenV4(ctx context.Context, protocol string, c UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv4, error) { cfg = cfg.withDefaults(respTimeout) closeCtx, cancel := context.WithCancel(ctx) - t := &UDPv4{ - conn: c, - priv: cfg.PrivateKey, - netrestrict: cfg.NetRestrict, - localNode: ln, - db: ln.Database(), - gotreply: make(chan reply), - addReplyMatcher: make(chan *replyMatcher), - replyTimeout: cfg.ReplyTimeout, - pingBackDelay: cfg.PingBackDelay, - closeCtx: closeCtx, - cancelCloseCtx: cancel, - log: cfg.Log, + unsolicitedNodes, _ := lru.New[enode.ID, *enode.Node](500) + t := &UDPv4{ + conn: c, + priv: cfg.PrivateKey, + netrestrict: cfg.NetRestrict, + localNode: ln, + db: ln.Database(), + gotreply: make(chan reply, 10), + addReplyMatcher: make(chan *replyMatcher, 10), + gotkey: make(chan v4wire.Pubkey, 10), + gotnodes: make(chan nodes, 10), + replyTimeout: cfg.ReplyTimeout, + pingBackDelay: cfg.PingBackDelay, + closeCtx: closeCtx, + cancelCloseCtx: cancel, + log: cfg.Log, + errors: map[string]uint{}, + unsolicitedNodes: unsolicitedNodes, privateKeyGenerator: cfg.PrivateKeyGenerator, } - tab, err := newTable(t, ln.Database(), cfg.Bootnodes, cfg.TableRevalidateInterval, cfg.Log) + tab, err := newTable(t, protocol, ln.Database(), cfg.Bootnodes, cfg.TableRevalidateInterval, cfg.Log) if err != nil { return nil, err } @@ -168,6 +193,28 @@ func (t *UDPv4) Self() *enode.Node { return t.localNode.Node() } +func (t *UDPv4) Version() string { + return "v4" +} + +func (t *UDPv4) Errors() map[string]uint { + errors := map[string]uint{} + + t.mutex.Lock() + for key, value := range t.errors { + errors[key] = value + } + t.mutex.Unlock() + + return errors +} + +func (t *UDPv4) LenUnsolicited() int { + t.mutex.Lock() + defer t.mutex.Unlock() + return t.unsolicitedNodes.Len() +} + // Close shuts down the socket and aborts any running queries. func (t *UDPv4) Close() { t.closeOnce.Do(func() { @@ -241,7 +288,7 @@ func (t *UDPv4) sendPing(toid enode.ID, toaddr *net.UDPAddr, callback func()) *r } // Add a matcher for the reply to the pending reply queue. Pongs are matched if they // reference the ping we're about to send. - rm := t.pending(toid, toaddr.IP, v4wire.PongPacket, func(p v4wire.Packet) (matched bool, requestDone bool) { + rm := t.pending(toid, toaddr.IP, toaddr.Port, v4wire.PongPacket, func(p v4wire.Packet) (matched bool, requestDone bool) { matched = bytes.Equal(p.(*v4wire.Pong).ReplyTok, hash) if matched && callback != nil { callback() @@ -301,6 +348,7 @@ func (t *UDPv4) newRandomLookup(ctx context.Context) *lookup { func (t *UDPv4) newLookup(ctx context.Context, targetKey *ecdsa.PublicKey) *lookup { targetKeyEnc := v4wire.EncodePubkey(targetKey) target := enode.PubkeyEncoded(targetKeyEnc).ID() + it := newLookup(ctx, t.tab, target, func(n *node) ([]*node, error) { return t.findnode(n.ID(), n.addr(), targetKeyEnc) }) @@ -322,7 +370,7 @@ func (t *UDPv4) findnode(toid enode.ID, toaddr *net.UDPAddr, target v4wire.Pubke // active until enough nodes have been received. nodes := make([]*node, 0, bucketSize) nreceived := 0 - rm := t.pending(toid, toaddr.IP, v4wire.NeighborsPacket, func(r v4wire.Packet) (matched bool, requestDone bool) { + rm := t.pending(toid, toaddr.IP, toaddr.Port, v4wire.NeighborsPacket, func(r v4wire.Packet) (matched bool, requestDone bool) { reply := r.(*v4wire.Neighbors) for _, rn := range reply.Nodes { nreceived++ @@ -374,7 +422,7 @@ func (t *UDPv4) RequestENR(n *enode.Node) (*enode.Node, error) { // Add a matcher for the reply to the pending reply queue. Responses are matched if // they reference the request we're about to send. - rm := t.pending(n.ID(), addr.IP, v4wire.ENRResponsePacket, func(r v4wire.Packet) (matched bool, requestDone bool) { + rm := t.pending(n.ID(), addr.IP, addr.Port, v4wire.ENRResponsePacket, func(r v4wire.Packet) (matched bool, requestDone bool) { matched = bytes.Equal(r.(*v4wire.ENRResponse).ReplyTok, hash) return matched, matched }) @@ -406,9 +454,17 @@ func (t *UDPv4) RequestENR(n *enode.Node) (*enode.Node, error) { // pending adds a reply matcher to the pending reply queue. // see the documentation of type replyMatcher for a detailed explanation. -func (t *UDPv4) pending(id enode.ID, ip net.IP, ptype byte, callback replyMatchFunc) *replyMatcher { +func (t *UDPv4) pending(id enode.ID, ip net.IP, port int, ptype byte, callback replyMatchFunc) *replyMatcher { ch := make(chan error, 1) - p := &replyMatcher{from: id, ip: ip, ptype: ptype, callback: callback, errc: ch} + p := &replyMatcher{from: id, ip: ip, port: port, ptype: ptype, callback: callback, errc: ch} + + t.addReplyMatcherMutex.Lock() + defer t.addReplyMatcherMutex.Unlock() + if t.addReplyMatcher == nil { + ch <- errClosed + return p + } + select { case t.addReplyMatcher <- p: // loop will handle it @@ -420,10 +476,10 @@ func (t *UDPv4) pending(id enode.ID, ip net.IP, ptype byte, callback replyMatchF // handleReply dispatches a reply packet, invoking reply matchers. It returns // whether any matcher considered the packet acceptable. -func (t *UDPv4) handleReply(from enode.ID, fromIP net.IP, req v4wire.Packet) bool { +func (t *UDPv4) handleReply(from enode.ID, fromIP net.IP, port int, req v4wire.Packet) bool { matched := make(chan bool, 1) select { - case t.gotreply <- reply{from, fromIP, req, matched}: + case t.gotreply <- reply{from, fromIP, port, req, matched}: // loop will handle it return <-matched case <-t.closeCtx.Done(): @@ -439,89 +495,216 @@ func (t *UDPv4) loop() { var ( plist = list.New() - timeout = time.NewTimer(0) - nextTimeout *replyMatcher // head of plist when timeout was last reset - contTimeouts = 0 // number of continuous timeouts to do NTP checks + mutex = sync.Mutex{} + contTimeouts = 0 // number of continuous timeouts to do NTP checks ntpWarnTime = time.Unix(0, 0) ) - <-timeout.C // ignore first timeout - defer timeout.Stop() - resetTimeout := func() { - if plist.Front() == nil || nextTimeout == plist.Front().Value { - return + listUpdate := make(chan *list.Element, 10) + + go func() { + var ( + timeout = time.NewTimer(0) + nextTimeout *replyMatcher // head of plist when timeout was last reset + ) + + <-timeout.C // ignore first timeout + defer timeout.Stop() + + resetTimeout := func() { + mutex.Lock() + defer mutex.Unlock() + + if plist.Front() == nil || nextTimeout == plist.Front().Value { + return + } + + // Start the timer so it fires when the next pending reply has expired. + now := time.Now() + for el := plist.Front(); el != nil; el = el.Next() { + nextTimeout = el.Value.(*replyMatcher) + if dist := nextTimeout.deadline.Sub(now); dist < 2*t.replyTimeout { + timeout.Reset(dist) + return + } + // Remove pending replies whose deadline is too far in the + // future. These can occur if the system clock jumped + // backwards after the deadline was assigned. + nextTimeout.errc <- errClockWarp + plist.Remove(el) + } + + nextTimeout = nil + timeout.Stop() } - // Start the timer so it fires when the next pending reply has expired. - now := time.Now() - for el := plist.Front(); el != nil; el = el.Next() { - nextTimeout = el.Value.(*replyMatcher) - if dist := nextTimeout.deadline.Sub(now); dist < 2*t.replyTimeout { - timeout.Reset(dist) + + for { + select { + case <-t.closeCtx.Done(): return + + case now := <-timeout.C: + func() { + mutex.Lock() + defer mutex.Unlock() + + nextTimeout = nil + // Notify and remove callbacks whose deadline is in the past. + for el := plist.Front(); el != nil; el = el.Next() { + p := el.Value.(*replyMatcher) + if !now.Before(p.deadline) { + p.errc <- errTimeout + plist.Remove(el) + contTimeouts++ + } + } + // If we've accumulated too many timeouts, do an NTP time sync check + if contTimeouts > ntpFailureThreshold { + if time.Since(ntpWarnTime) >= ntpWarningCooldown { + ntpWarnTime = time.Now() + go checkClockDrift() + } + contTimeouts = 0 + } + }() + + resetTimeout() + + case el := <-listUpdate: + if el == nil { + return + } + + resetTimeout() } - // Remove pending replies whose deadline is too far in the - // future. These can occur if the system clock jumped - // backwards after the deadline was assigned. - nextTimeout.errc <- errClockWarp - plist.Remove(el) } - nextTimeout = nil - timeout.Stop() - } + }() for { - resetTimeout() - select { case <-t.closeCtx.Done(): - for el := plist.Front(); el != nil; el = el.Next() { - el.Value.(*replyMatcher).errc <- errClosed + listUpdate <- nil + func() { + mutex.Lock() + defer mutex.Unlock() + for el := plist.Front(); el != nil; el = el.Next() { + el.Value.(*replyMatcher).errc <- errClosed + } + }() + + t.addReplyMatcherMutex.Lock() + defer t.addReplyMatcherMutex.Unlock() + close(t.addReplyMatcher) + for matcher := range t.addReplyMatcher { + matcher.errc <- errClosed } + t.addReplyMatcher = nil return case p := <-t.addReplyMatcher: - p.deadline = time.Now().Add(t.replyTimeout) - plist.PushBack(p) + func() { + mutex.Lock() + defer mutex.Unlock() + p.deadline = time.Now().Add(t.replyTimeout) + listUpdate <- plist.PushBack(p) + }() case r := <-t.gotreply: - var matched bool // whether any replyMatcher considered the reply acceptable. + + type matchCandidate struct { + el *list.Element + errc chan error + } + + var matchCandidates []matchCandidate + + mutex.Lock() for el := plist.Front(); el != nil; el = el.Next() { p := el.Value.(*replyMatcher) if p.from == r.from && p.ptype == r.data.Kind() && p.ip.Equal(r.ip) { + candidate := matchCandidate{el, p.errc} + p.errc = make(chan error, 1) + matchCandidates = append(matchCandidates, candidate) + } + } + mutex.Unlock() + + if len(matchCandidates) == 0 { + // if there are no matched candidates try again matching against + // ip & port to handle node key changes + mutex.Lock() + for el := plist.Front(); el != nil; el = el.Next() { + p := el.Value.(*replyMatcher) + if p.ptype == r.data.Kind() && p.ip.Equal(r.ip) && p.port == r.port { + candidate := matchCandidate{el, p.errc} + p.errc = make(chan error, 1) + matchCandidates = append(matchCandidates, candidate) + } + } + mutex.Unlock() + + if len(matchCandidates) == 0 { + r.matched <- false + } + } + + go func(r reply) { + var matched bool // whether any replyMatcher considered the reply acceptable. + for _, candidate := range matchCandidates { + p := candidate.el.Value.(*replyMatcher) ok, requestDone := p.callback(r.data) matched = matched || ok p.reply = r.data + // Remove the matcher if callback indicates that all replies have been received. if requestDone { - p.errc <- nil - plist.Remove(el) + mutex.Lock() + plist.Remove(candidate.el) + mutex.Unlock() + candidate.errc <- nil + listUpdate <- candidate.el + } else { + select { + case err := <-p.errc: + candidate.errc <- err + default: + p.errc = candidate.errc + } } - // Reset the continuous timeout counter (time drift detection) - contTimeouts = 0 } - } - r.matched <- matched - case now := <-timeout.C: - nextTimeout = nil + r.matched <- matched + }(r) - // Notify and remove callbacks whose deadline is in the past. - for el := plist.Front(); el != nil; el = el.Next() { - p := el.Value.(*replyMatcher) - if now.After(p.deadline) || now.Equal(p.deadline) { - p.errc <- errTimeout - plist.Remove(el) - contTimeouts++ + // Reset the continuous timeout counter (time drift detection) + contTimeouts = 0 + case key := <-t.gotkey: + go func() { + if key, err := v4wire.DecodePubkey(crypto.S256(), key); err == nil { + nodes := t.LookupPubkey(key) + mutex.Lock() + defer mutex.Unlock() + + for _, n := range nodes { + t.unsolicitedNodes.Add(n.ID(), n) + } } - } - // If we've accumulated too many timeouts, do an NTP time sync check - if contTimeouts > ntpFailureThreshold { - if time.Since(ntpWarnTime) >= ntpWarningCooldown { - ntpWarnTime = time.Now() - go checkClockDrift() + }() + + case nodes := <-t.gotnodes: + + func() { + mutex.Lock() + defer mutex.Unlock() + for _, rn := range nodes.nodes { + n, err := t.nodeFromRPC(nodes.addr, rn) + if err != nil { + t.log.Trace("Invalid neighbor node received", "ip", rn.IP, "addr", nodes.addr, "err", err) + continue + } + t.unsolicitedNodes.Add(n.ID(), &n.Node) } - contTimeouts = 0 - } + }() } } } @@ -545,10 +728,13 @@ func (t *UDPv4) write(toaddr *net.UDPAddr, toid enode.ID, what string, packet [] func (t *UDPv4) readLoop(unhandled chan<- ReadPacket) { defer t.wg.Done() defer debug.LogPanic() + if unhandled != nil { defer close(unhandled) } + unknownKeys, _ := lru.New[v4wire.Pubkey, any](100) + buf := make([]byte, maxPacketSize) for { nbytes, from, err := t.conn.ReadFromUDP(buf) @@ -563,11 +749,35 @@ func (t *UDPv4) readLoop(unhandled chan<- ReadPacket) { } return } - if t.handlePacket(from, buf[:nbytes]) != nil && unhandled != nil { - select { - case unhandled <- ReadPacket{buf[:nbytes], from}: - default: - } + if err := t.handlePacket(from, buf[:nbytes]); err != nil { + func() { + switch { + case errors.Is(err, errUnsolicitedReply): + if packet, fromKey, _, err := v4wire.Decode(buf[:nbytes]); err == nil { + switch packet.Kind() { + case v4wire.PongPacket: + if _, ok := unknownKeys.Get(fromKey); !ok { + fromId := enode.PubkeyEncoded(fromKey).ID() + t.log.Trace("Unsolicited packet", "type", packet.Name(), "from", fromId, "addr", from) + unknownKeys.Add(fromKey, nil) + t.gotkey <- fromKey + } + case v4wire.NeighborsPacket: + neighbors := packet.(*v4wire.Neighbors) + t.gotnodes <- nodes{from, neighbors.Nodes} + default: + fromId := enode.PubkeyEncoded(fromKey).ID() + t.log.Trace("Unsolicited packet", "type", packet.Name(), "from", fromId, "addr", from) + } + } else { + t.log.Trace("Unsolicited packet handling failed", "addr", from, "err", err) + } + default: + if unhandled != nil { + unhandled <- ReadPacket{buf[:nbytes], from} + } + } + }() } } } @@ -580,6 +790,7 @@ func (t *UDPv4) handlePacket(from *net.UDPAddr, buf []byte) error { } packet := t.wrapPacket(rawpacket) fromID := enode.PubkeyEncoded(fromKey).ID() + if packet.preverify != nil { err = packet.preverify(packet, from, fromID, fromKey) } @@ -677,9 +888,15 @@ func (t *UDPv4) verifyPing(h *packetHandlerV4, from *net.UDPAddr, fromID enode.I senderKey, err := v4wire.DecodePubkey(crypto.S256(), fromKey) if err != nil { + t.mutex.Lock() + t.errors[err.Error()] = t.errors[err.Error()] + 1 + t.mutex.Unlock() return err } if v4wire.Expired(req.Expiration) { + t.mutex.Lock() + t.errors[errExpiredStr] = t.errors[errExpiredStr] + 1 + t.mutex.Unlock() return errExpired } h.senderKey = senderKey @@ -719,9 +936,15 @@ func (t *UDPv4) verifyPong(h *packetHandlerV4, from *net.UDPAddr, fromID enode.I req := h.Packet.(*v4wire.Pong) if v4wire.Expired(req.Expiration) { + t.mutex.Lock() + t.errors[errExpiredStr] = t.errors[errExpiredStr] + 1 + t.mutex.Unlock() return errExpired } - if !t.handleReply(fromID, from.IP, req) { + if !t.handleReply(fromID, from.IP, from.Port, req) { + t.mutex.Lock() + t.errors[errUnsolicitedReplyStr] = t.errors[errUnsolicitedReplyStr] + 1 + t.mutex.Unlock() return errUnsolicitedReply } t.localNode.UDPEndpointStatement(from, &net.UDPAddr{IP: req.To.IP, Port: int(req.To.UDP)}) @@ -735,6 +958,9 @@ func (t *UDPv4) verifyFindnode(h *packetHandlerV4, from *net.UDPAddr, fromID eno req := h.Packet.(*v4wire.Findnode) if v4wire.Expired(req.Expiration) { + t.mutex.Lock() + t.errors[errExpiredStr] = t.errors[errExpiredStr] + 1 + t.mutex.Unlock() return errExpired } if !t.checkBond(fromID, from.IP) { @@ -744,6 +970,9 @@ func (t *UDPv4) verifyFindnode(h *packetHandlerV4, from *net.UDPAddr, fromID eno // and UDP port of the target as the source address. The recipient of the findnode // packet would then send a neighbors packet (which is a much bigger packet than // findnode) to the victim. + t.mutex.Lock() + t.errors[errUnknownNodeStr] = t.errors[errUnknownNodeStr] + 1 + t.mutex.Unlock() return errUnknownNode } return nil @@ -781,9 +1010,15 @@ func (t *UDPv4) verifyNeighbors(h *packetHandlerV4, from *net.UDPAddr, fromID en req := h.Packet.(*v4wire.Neighbors) if v4wire.Expired(req.Expiration) { + t.mutex.Lock() + t.errors[errExpiredStr] = t.errors[errExpiredStr] + 1 + t.mutex.Unlock() return errExpired } - if !t.handleReply(fromID, from.IP, h.Packet) { + if !t.handleReply(fromID, from.IP, from.Port, h.Packet) { + t.mutex.Lock() + t.errors[errUnsolicitedReplyStr] = t.errors[errUnsolicitedReplyStr] + 1 + t.mutex.Unlock() return errUnsolicitedReply } return nil @@ -795,26 +1030,40 @@ func (t *UDPv4) verifyENRRequest(h *packetHandlerV4, from *net.UDPAddr, fromID e req := h.Packet.(*v4wire.ENRRequest) if v4wire.Expired(req.Expiration) { + t.mutex.Lock() + t.errors[errExpiredStr] = t.errors[errExpiredStr] + 1 + t.mutex.Unlock() return errExpired } if !t.checkBond(fromID, from.IP) { + t.mutex.Lock() + t.errors[errUnknownNodeStr] = t.errors[errUnknownNodeStr] + 1 + t.mutex.Unlock() return errUnknownNode } return nil } func (t *UDPv4) handleENRRequest(h *packetHandlerV4, from *net.UDPAddr, fromID enode.ID, mac []byte) { - //nolint:errcheck - t.send(from, fromID, &v4wire.ENRResponse{ + _, err := t.send(from, fromID, &v4wire.ENRResponse{ ReplyTok: mac, Record: *t.localNode.Node().Record(), }) + + if err != nil { + t.mutex.Lock() + t.errors[err.Error()] = t.errors[err.Error()] + 1 + t.mutex.Unlock() + } } // ENRRESPONSE/v4 func (t *UDPv4) verifyENRResponse(h *packetHandlerV4, from *net.UDPAddr, fromID enode.ID, fromKey v4wire.Pubkey) error { - if !t.handleReply(fromID, from.IP, h.Packet) { + if !t.handleReply(fromID, from.IP, from.Port, h.Packet) { + t.mutex.Lock() + t.errors[errUnsolicitedReplyStr] = t.errors[errUnsolicitedReplyStr] + 1 + t.mutex.Unlock() return errUnsolicitedReply } return nil diff --git a/p2p/discover/v4_udp_test.go b/p2p/discover/v4_udp_test.go index 71d86277e04..8811e4c41df 100644 --- a/p2p/discover/v4_udp_test.go +++ b/p2p/discover/v4_udp_test.go @@ -82,12 +82,12 @@ func newUDPTestContext(ctx context.Context, t *testing.T, logger log.Logger) *ud tmpDir := t.TempDir() var err error - test.db, err = enode.OpenDB("", tmpDir) + test.db, err = enode.OpenDB(ctx, "", tmpDir) if err != nil { panic(err) } ln := enode.NewLocalNode(test.db, test.localkey, logger) - test.udp, err = ListenV4(ctx, test.pipe, ln, Config{ + test.udp, err = ListenV4(ctx, "test", test.pipe, ln, Config{ PrivateKey: test.localkey, Log: testlog.Logger(t, log.LvlError), @@ -237,7 +237,7 @@ func TestUDPv4_responseTimeouts(t *testing.T) { p.errc = nilErr test.udp.addReplyMatcher <- p time.AfterFunc(randomDuration(60*time.Millisecond), func() { - if !test.udp.handleReply(p.from, p.ip, testPacket(p.ptype)) { + if !test.udp.handleReply(p.from, p.ip, p.port, testPacket(p.ptype)) { t.Logf("not matched: %v", p) } }) @@ -548,9 +548,8 @@ func TestUDPv4_EIP868(t *testing.T) { // This test verifies that a small network of nodes can boot up into a healthy state. func TestUDPv4_smallNetConvergence(t *testing.T) { - if runtime.GOOS == "windows" { - t.Skip("fix me on win please") - } + t.Skip("FIXME: https://github.com/ledgerwatch/erigon/issues/8731") + t.Parallel() logger := log.New() @@ -620,7 +619,7 @@ func startLocalhostV4(ctx context.Context, t *testing.T, cfg Config, logger log. cfg.PrivateKey = newkey() tmpDir := t.TempDir() - db, err := enode.OpenDB("", tmpDir) + db, err := enode.OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } @@ -643,7 +642,7 @@ func startLocalhostV4(ctx context.Context, t *testing.T, cfg Config, logger log. realaddr := socket.LocalAddr().(*net.UDPAddr) ln.SetStaticIP(realaddr.IP) ln.SetFallbackUDP(realaddr.Port) - udp, err := ListenV4(ctx, socket, ln, cfg) + udp, err := ListenV4(ctx, "test", socket, ln, cfg) if err != nil { t.Fatal(err) } diff --git a/p2p/discover/v5_lookup_test.go b/p2p/discover/v5_lookup_test.go index dbb87101584..556ba2c2955 100644 --- a/p2p/discover/v5_lookup_test.go +++ b/p2p/discover/v5_lookup_test.go @@ -16,7 +16,7 @@ import ( // This test checks that lookup works. func TestUDPv5_lookup(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -77,7 +77,7 @@ func TestUDPv5_lookup(t *testing.T) { // Real sockets, real crypto: this test checks end-to-end connectivity for UDPv5. func TestUDPv5_lookupE2E(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() diff --git a/p2p/discover/v5_udp.go b/p2p/discover/v5_udp.go index 686bd267879..d66d44e36f0 100644 --- a/p2p/discover/v5_udp.go +++ b/p2p/discover/v5_udp.go @@ -97,6 +97,7 @@ type UDPv5 struct { closeCtx context.Context cancelCloseCtx context.CancelFunc wg sync.WaitGroup + errors map[string]uint } // TalkRequestHandler callback processes a talk request and optionally returns a reply @@ -125,8 +126,8 @@ type callTimeout struct { } // ListenV5 listens on the given connection. -func ListenV5(ctx context.Context, conn UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv5, error) { - t, err := newUDPv5(ctx, conn, ln, cfg) +func ListenV5(ctx context.Context, protocol string, conn UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv5, error) { + t, err := newUDPv5(ctx, protocol, conn, ln, cfg) if err != nil { return nil, err } @@ -138,7 +139,7 @@ func ListenV5(ctx context.Context, conn UDPConn, ln *enode.LocalNode, cfg Config } // newUDPv5 creates a UDPv5 transport, but doesn't start any goroutines. -func newUDPv5(ctx context.Context, conn UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv5, error) { +func newUDPv5(ctx context.Context, protocol string, conn UDPConn, ln *enode.LocalNode, cfg Config) (*UDPv5, error) { closeCtx, cancelCloseCtx := context.WithCancel(ctx) cfg = cfg.withDefaults(respTimeoutV5) t := &UDPv5{ @@ -167,8 +168,9 @@ func newUDPv5(ctx context.Context, conn UDPConn, ln *enode.LocalNode, cfg Config // shutdown closeCtx: closeCtx, cancelCloseCtx: cancelCloseCtx, + errors: map[string]uint{}, } - tab, err := newTable(t, t.db, cfg.Bootnodes, cfg.TableRevalidateInterval, cfg.Log) + tab, err := newTable(t, protocol, t.db, cfg.Bootnodes, cfg.TableRevalidateInterval, cfg.Log) if err != nil { return nil, err } @@ -181,6 +183,18 @@ func (t *UDPv5) Self() *enode.Node { return t.localNode.Node() } +func (t *UDPv5) Version() string { + return "v5" +} + +func (t *UDPv5) Errors() map[string]uint { + return t.errors +} + +func (t *UDPv5) LenUnsolicited() int { + return 0 +} + // Close shuts down packet processing. func (t *UDPv5) Close() { t.closeOnce.Do(func() { diff --git a/p2p/discover/v5_udp_integration_test.go b/p2p/discover/v5_udp_integration_test.go index f9f03fb299e..e9b5b34a5ab 100644 --- a/p2p/discover/v5_udp_integration_test.go +++ b/p2p/discover/v5_udp_integration_test.go @@ -15,7 +15,7 @@ import ( // This test checks that pending calls are re-sent when a handshake happens. func TestUDPv5_callResend(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -56,7 +56,7 @@ func TestUDPv5_callResend(t *testing.T) { // This test checks that calls with n replies may take up to n * respTimeout. func TestUDPv5_callTimeoutReset(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() diff --git a/p2p/discover/v5_udp_test.go b/p2p/discover/v5_udp_test.go index b7fc0176cf0..9e0c70f6f07 100644 --- a/p2p/discover/v5_udp_test.go +++ b/p2p/discover/v5_udp_test.go @@ -41,7 +41,7 @@ import ( func startLocalhostV5(t *testing.T, cfg Config, logger log.Logger) *UDPv5 { cfg.PrivateKey = newkey() tmpDir := t.TempDir() - db, err := enode.OpenDB("", tmpDir) + db, err := enode.OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } @@ -67,7 +67,7 @@ func startLocalhostV5(t *testing.T, cfg Config, logger log.Logger) *UDPv5 { ln.SetFallbackUDP(realaddr.Port) ctx := context.Background() ctx = disableLookupSlowdown(ctx) - udp, err := ListenV5(ctx, socket, ln, cfg) + udp, err := ListenV5(ctx, "test", socket, ln, cfg) if err != nil { t.Fatal(err) } @@ -76,7 +76,7 @@ func startLocalhostV5(t *testing.T, cfg Config, logger log.Logger) *UDPv5 { // This test checks that incoming PING calls are handled correctly. func TestUDPv5_pingHandling(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -97,7 +97,7 @@ func TestUDPv5_pingHandling(t *testing.T) { // This test checks that incoming 'unknown' packets trigger the handshake. func TestUDPv5_unknownPacket(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -137,7 +137,7 @@ func TestUDPv5_unknownPacket(t *testing.T) { // This test checks that incoming FINDNODE calls are handled correctly. func TestUDPv5_findnodeHandling(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -225,7 +225,7 @@ func (test *udpV5Test) expectNodes(wantReqID []byte, wantTotal uint8, wantNodes // This test checks that outgoing PING calls work. func TestUDPv5_pingCall(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -275,7 +275,7 @@ func TestUDPv5_pingCall(t *testing.T) { // This test checks that outgoing FINDNODE calls work and multiple NODES // replies are aggregated. func TestUDPv5_findnodeCall(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -328,7 +328,7 @@ func TestUDPv5_findnodeCall(t *testing.T) { // This test ensures we don't allow multiple rounds of WHOAREYOU for a single call. func TestUDPv5_multipleHandshakeRounds(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -358,7 +358,7 @@ func TestUDPv5_multipleHandshakeRounds(t *testing.T) { // This test checks that TALKREQ calls the registered handler function. func TestUDPv5_talkHandling(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -412,7 +412,7 @@ func TestUDPv5_talkHandling(t *testing.T) { // This test checks that outgoing TALKREQ calls work. func TestUDPv5_talkRequest(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -457,7 +457,7 @@ func TestUDPv5_talkRequest(t *testing.T) { // This test checks the local node can be utilised to set key-values. func TestUDPv5_LocalNode(t *testing.T) { - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } t.Parallel() @@ -573,7 +573,7 @@ func newUDPV5TestContext(ctx context.Context, t *testing.T, logger log.Logger) * t.Cleanup(test.close) var err error tmpDir := t.TempDir() - test.db, err = enode.OpenDB("", tmpDir) + test.db, err = enode.OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } @@ -581,7 +581,7 @@ func newUDPV5TestContext(ctx context.Context, t *testing.T, logger log.Logger) * ln := enode.NewLocalNode(test.db, test.localkey, logger) ln.SetStaticIP(net.IP{10, 0, 0, 1}) ln.Set(enr.UDP(30303)) - test.udp, err = ListenV5(ctx, test.pipe, ln, Config{ + test.udp, err = ListenV5(ctx, "test", test.pipe, ln, Config{ PrivateKey: test.localkey, Log: testlog.Logger(t, log.LvlError), ValidSchemes: enode.ValidSchemesForTesting, @@ -627,7 +627,7 @@ func (test *udpV5Test) getNode(key *ecdsa.PrivateKey, addr *net.UDPAddr, logger ln := test.nodesByID[id] if ln == nil { tmpDir := test.t.TempDir() - db, err := enode.OpenDB("", tmpDir) + db, err := enode.OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } diff --git a/p2p/discover/v5wire/crypto_test.go b/p2p/discover/v5wire/crypto_test.go index c5ce9c66ec7..1c27f37372e 100644 --- a/p2p/discover/v5wire/crypto_test.go +++ b/p2p/discover/v5wire/crypto_test.go @@ -21,11 +21,11 @@ import ( "crypto/ecdsa" "crypto/elliptic" "crypto/sha256" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "strings" "testing" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/enode" "github.com/ledgerwatch/log/v3" diff --git a/p2p/discover/v5wire/encoding_test.go b/p2p/discover/v5wire/encoding_test.go index ebfea2e21ee..0eee9ed8d64 100644 --- a/p2p/discover/v5wire/encoding_test.go +++ b/p2p/discover/v5wire/encoding_test.go @@ -18,6 +18,7 @@ package v5wire import ( "bytes" + "context" "crypto/ecdsa" "encoding/hex" "flag" @@ -30,8 +31,9 @@ import ( "strings" "testing" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/davecgh/go-spew/spew" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/mclock" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/enode" @@ -167,7 +169,7 @@ func TestHandshake_norecord(t *testing.T) { func TestHandshake_rekey(t *testing.T) { // runtime: setevent failed; errno=6 // fatal error: runtime.semawakeup - if runtime.GOOS == "windows" { + if runtime.GOOS != "linux" { t.Skip("fix me on win please") } @@ -535,7 +537,7 @@ func (t *handshakeTest) close() { } func (n *handshakeTestNode) init(key *ecdsa.PrivateKey, ip net.IP, clock mclock.Clock, tmpDir string, logger log.Logger) { - db, err := enode.OpenDB("", tmpDir) + db, err := enode.OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } diff --git a/p2p/dnsdisc/client_test.go b/p2p/dnsdisc/client_test.go index 7ab1f9ed586..0b9f3d3005c 100644 --- a/p2p/dnsdisc/client_test.go +++ b/p2p/dnsdisc/client_test.go @@ -20,12 +20,12 @@ import ( "context" "crypto/ecdsa" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "testing" "time" "github.com/davecgh/go-spew/spew" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/mclock" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/enode" diff --git a/p2p/dnsdisc/tree.go b/p2p/dnsdisc/tree.go index 63f2207bd22..8329e6667c2 100644 --- a/p2p/dnsdisc/tree.go +++ b/p2p/dnsdisc/tree.go @@ -183,7 +183,7 @@ func (t *Tree) build(entries []entry) entry { } func sortByID(nodes []*enode.Node) []*enode.Node { - slices.SortFunc(nodes, func(i, j *enode.Node) bool { return bytes.Compare(i.ID().Bytes(), j.ID().Bytes()) < 0 }) + slices.SortFunc(nodes, func(i, j *enode.Node) int { return bytes.Compare(i.ID().Bytes(), j.ID().Bytes()) }) return nodes } diff --git a/p2p/dnsdisc/tree_test.go b/p2p/dnsdisc/tree_test.go index 73ffafa6a8e..828d0c61645 100644 --- a/p2p/dnsdisc/tree_test.go +++ b/p2p/dnsdisc/tree_test.go @@ -17,11 +17,11 @@ package dnsdisc import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "reflect" "testing" "github.com/davecgh/go-spew/spew" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/p2p/enode" ) diff --git a/p2p/enode/localnode_test.go b/p2p/enode/localnode_test.go index a09a7086982..2046dfd23f1 100644 --- a/p2p/enode/localnode_test.go +++ b/p2p/enode/localnode_test.go @@ -17,6 +17,7 @@ package enode import ( + "context" "math/rand" "net" "testing" @@ -28,7 +29,7 @@ import ( ) func newLocalNodeForTesting(tmpDir string, logger log.Logger) (*LocalNode, *DB) { - db, err := OpenDB("", tmpDir) + db, err := OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } diff --git a/p2p/enode/nodedb.go b/p2p/enode/nodedb.go index e3d5d1b9368..fb4b27e4c85 100644 --- a/p2p/enode/nodedb.go +++ b/p2p/enode/nodedb.go @@ -33,11 +33,10 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/mdbx" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/log/v3" - mdbx1 "github.com/torquem-ch/mdbx-go/mdbx" + mdbx1 "github.com/erigontech/mdbx-go/mdbx" ) // Keys in the node database. @@ -83,12 +82,12 @@ type DB struct { // OpenDB opens a node database for storing and retrieving infos about known peers in the // network. If no path is given an in-memory, temporary database is constructed. -func OpenDB(path string, tmpDir string) (*DB, error) { +func OpenDB(ctx context.Context, path string, tmpDir string) (*DB, error) { logger := log.New() //TODO: move higher if path == "" { return newMemoryDB(logger, tmpDir) } - return newPersistentDB(logger, path) + return newPersistentDB(ctx, logger, path) } func bucketsConfig(_ kv.TableCfg) kv.TableCfg { @@ -102,7 +101,7 @@ func bucketsConfig(_ kv.TableCfg) kv.TableCfg { func newMemoryDB(logger log.Logger, tmpDir string) (*DB, error) { db := &DB{quit: make(chan struct{})} var err error - db.kv, err = mdbx.NewMDBX(logger).InMem(tmpDir).Label(kv.SentryDB).WithTableCfg(bucketsConfig).MapSize(1 * datasize.GB).Open() + db.kv, err = mdbx.NewMDBX(logger).InMem(tmpDir).Label(kv.SentryDB).WithTableCfg(bucketsConfig).MapSize(1 * datasize.GB).Open(context.Background()) if err != nil { return nil, err } @@ -111,18 +110,19 @@ func newMemoryDB(logger log.Logger, tmpDir string) (*DB, error) { // newPersistentNodeDB creates/opens a persistent node database, // also flushing its contents in case of a version mismatch. -func newPersistentDB(logger log.Logger, path string) (*DB, error) { +func newPersistentDB(ctx context.Context, logger log.Logger, path string) (*DB, error) { var db kv.RwDB var err error db, err = mdbx.NewMDBX(logger). Path(path). Label(kv.SentryDB). WithTableCfg(bucketsConfig). - MapSize(1024 * datasize.MB). + MapSize(8 * datasize.GB). GrowthStep(16 * datasize.MB). + DirtySpace(uint64(128 * datasize.MB)). Flags(func(f uint) uint { return f ^ mdbx1.Durable | mdbx1.SafeNoSync }). SyncPeriod(2 * time.Second). - Open() + Open(ctx) if err != nil { return nil, err } @@ -156,7 +156,7 @@ func newPersistentDB(logger log.Logger, path string) (*DB, error) { if err := os.RemoveAll(path); err != nil { return nil, err } - return newPersistentDB(logger, path) + return newPersistentDB(ctx, logger, path) } return &DB{kv: db, quit: make(chan struct{})}, nil } @@ -251,7 +251,7 @@ func (db *DB) storeInt64(key []byte, n int64) error { blob := make([]byte, binary.MaxVarintLen64) blob = blob[:binary.PutVarint(blob, n)] return db.kv.Update(context.Background(), func(tx kv.RwTx) error { - return tx.Put(kv.Inodes, common.CopyBytes(key), blob) + return tx.Put(kv.Inodes, libcommon.CopyBytes(key), blob) }) } @@ -278,7 +278,7 @@ func (db *DB) storeUint64(key []byte, n uint64) error { blob := make([]byte, binary.MaxVarintLen64) blob = blob[:binary.PutUvarint(blob, n)] return db.kv.Update(context.Background(), func(tx kv.RwTx) error { - return tx.Put(kv.Inodes, common.CopyBytes(key), blob) + return tx.Put(kv.Inodes, libcommon.CopyBytes(key), blob) }) } diff --git a/p2p/enode/nodedb_test.go b/p2p/enode/nodedb_test.go index 503d69a7e3b..313f424b947 100644 --- a/p2p/enode/nodedb_test.go +++ b/p2p/enode/nodedb_test.go @@ -18,6 +18,7 @@ package enode import ( "bytes" + "context" "fmt" "net" "path/filepath" @@ -88,7 +89,7 @@ var nodeDBInt64Tests = []struct { func TestDBInt64(t *testing.T) { tmpDir := t.TempDir() - db, err := OpenDB("", tmpDir) + db, err := OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } @@ -124,7 +125,7 @@ func TestDBFetchStore(t *testing.T) { inst := time.Now() num := 314 - db, err := OpenDB("", tmpDir) + db, err := OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } @@ -267,7 +268,7 @@ func TestDBSeedQuery(t *testing.T) { } func testSeedQuery(tmpDir string) error { - db, err := OpenDB("", tmpDir) + db, err := OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } @@ -317,7 +318,7 @@ func TestDBPersistency(t *testing.T) { ) // Create a persistent database and store some values - db, err := OpenDB(filepath.Join(root, "database"), root) + db, err := OpenDB(context.Background(), filepath.Join(root, "database"), root) if err != nil { t.Fatalf("failed to create persistent database: %v", err) } @@ -328,7 +329,7 @@ func TestDBPersistency(t *testing.T) { db.Close() // ReopenSegments the database and check the value - db, err = OpenDB(filepath.Join(root, "database"), root) + db, err = OpenDB(context.Background(), filepath.Join(root, "database"), root) if err != nil { t.Fatalf("failed to open persistent database: %v", err) } @@ -431,7 +432,7 @@ var nodeDBExpirationNodes = []struct { func TestDBExpiration(t *testing.T) { tmpDir := t.TempDir() - db, err := OpenDB("", tmpDir) + db, err := OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } @@ -478,7 +479,7 @@ func TestDBExpiration(t *testing.T) { // in the database. func TestDBExpireV5(t *testing.T) { tmpDir := t.TempDir() - db, err := OpenDB("", tmpDir) + db, err := OpenDB(context.Background(), "", tmpDir) if err != nil { panic(err) } diff --git a/p2p/message.go b/p2p/message.go index ed1067c9a43..90c29164513 100644 --- a/p2p/message.go +++ b/p2p/message.go @@ -56,7 +56,7 @@ type Msg struct { func (msg Msg) Decode(val interface{}) error { s := rlp.NewStream(msg.Payload, uint64(msg.Size)) if err := s.Decode(val); err != nil { - return newPeerError(errInvalidMsg, "(code %x) (size %d) %v", msg.Code, msg.Size, err) + return NewPeerError(PeerErrorInvalidMessage, DiscProtocolError, err, fmt.Sprintf("(code %x) (size %d)", msg.Code, msg.Size)) } return nil } diff --git a/p2p/metrics.go b/p2p/metrics.go index 985f0491e42..26190bbd925 100644 --- a/p2p/metrics.go +++ b/p2p/metrics.go @@ -21,7 +21,7 @@ package p2p import ( "net" - "github.com/VictoriaMetrics/metrics" + "github.com/ledgerwatch/erigon-lib/metrics" ) const ( @@ -34,7 +34,7 @@ var ( ingressTrafficMeter = metrics.GetOrCreateCounter(ingressMeterName) egressConnectMeter = metrics.GetOrCreateCounter("p2p_dials") egressTrafficMeter = metrics.GetOrCreateCounter(egressMeterName) - activePeerGauge = metrics.GetOrCreateCounter("p2p_peers") + activePeerGauge = metrics.GetOrCreateGauge("p2p_peers") ) // meteredConn is a wrapper around a net.Conn that meters both the @@ -61,7 +61,7 @@ func newMeteredConn(conn net.Conn, ingress bool, addr *net.TCPAddr) net.Conn { // and the peer ingress traffic meters along the way. func (c *meteredConn) Read(b []byte) (n int, err error) { n, err = c.Conn.Read(b) - ingressTrafficMeter.Add(n) + ingressTrafficMeter.AddInt(n) return n, err } @@ -69,7 +69,7 @@ func (c *meteredConn) Read(b []byte) (n int, err error) { // and the peer egress traffic meters along the way. func (c *meteredConn) Write(b []byte) (n int, err error) { n, err = c.Conn.Write(b) - egressTrafficMeter.Add(n) + egressTrafficMeter.AddInt(n) return n, err } diff --git a/p2p/netutil/net.go b/p2p/netutil/net.go index d5da3c694f8..2c9818c8f1e 100644 --- a/p2p/netutil/net.go +++ b/p2p/netutil/net.go @@ -24,6 +24,7 @@ import ( "net" "sort" "strings" + "sync" ) var lan4, lan6, special4, special6 Netlist @@ -221,7 +222,7 @@ type DistinctNetSet struct { Subnet uint // number of common prefix bits Limit uint // maximum number of IPs in each subnet - members map[string]uint + members *sync.Map buf net.IP } @@ -229,9 +230,12 @@ type DistinctNetSet struct { // number of existing IPs in the defined range exceeds the limit. func (s *DistinctNetSet) Add(ip net.IP) bool { key := s.key(ip) - n := s.members[string(key)] + n := uint(0) + if value, ok := s.members.Load(string(key)); ok { + n = value.(uint) + } if n < s.Limit { - s.members[string(key)] = n + 1 + s.members.Store(string(key), n+1) return true } return false @@ -240,11 +244,11 @@ func (s *DistinctNetSet) Add(ip net.IP) bool { // Remove removes an IP from the set. func (s *DistinctNetSet) Remove(ip net.IP) { key := s.key(ip) - if n, ok := s.members[string(key)]; ok { - if n == 1 { - delete(s.members, string(key)) + if n, ok := s.members.Load(string(key)); ok { + if n.(uint) == 1 { + s.members.Delete(string(key)) } else { - s.members[string(key)] = n - 1 + s.members.Store(string(key), n.(uint)-1) } } } @@ -252,16 +256,20 @@ func (s *DistinctNetSet) Remove(ip net.IP) { // Contains whether the given IP is contained in the set. func (s DistinctNetSet) Contains(ip net.IP) bool { key := s.key(ip) - _, ok := s.members[string(key)] + _, ok := s.members.Load(string(key)) return ok } // Len returns the number of tracked IPs. func (s DistinctNetSet) Len() int { n := uint(0) - for _, i := range s.members { - n += i + if s.members == nil { + return 0 } + s.members.Range(func(_, v interface{}) bool { + n += v.(uint) + return true + }) return int(n) } @@ -272,7 +280,7 @@ func (s DistinctNetSet) Len() int { func (s *DistinctNetSet) key(ip net.IP) net.IP { // Lazily initialize storage. if s.members == nil { - s.members = make(map[string]uint) + s.members = &sync.Map{} s.buf = make(net.IP, 17) } // Canonicalize ip and bits. @@ -299,10 +307,14 @@ func (s *DistinctNetSet) key(ip net.IP) net.IP { func (s DistinctNetSet) String() string { var buf bytes.Buffer buf.WriteString("{") - keys := make([]string, 0, len(s.members)) - for k := range s.members { - keys = append(keys, k) + if s.members == nil { + return "{}" } + keys := []string{} + s.members.Range(func(k, v interface{}) bool { + keys = append(keys, k.(string)) + return true + }) sort.Strings(keys) for i, k := range keys { var ip net.IP @@ -312,7 +324,12 @@ func (s DistinctNetSet) String() string { ip = make(net.IP, 16) } copy(ip, k[1:]) - fmt.Fprintf(&buf, "%v×%d", ip, s.members[k]) + v, ok := s.members.Load(k) + vs := uint(0) + if ok { + vs = v.(uint) + } + fmt.Fprintf(&buf, "%v×%d", ip, vs) if i != len(keys)-1 { buf.WriteString(" ") } diff --git a/p2p/peer.go b/p2p/peer.go index 05930e032e5..913c1cf8c00 100644 --- a/p2p/peer.go +++ b/p2p/peer.go @@ -22,12 +22,14 @@ import ( "io" "net" "sort" + "strings" "sync" "time" - metrics2 "github.com/VictoriaMetrics/metrics" "github.com/ledgerwatch/log/v3" + "github.com/ledgerwatch/erigon-lib/diagnostics" + "github.com/ledgerwatch/erigon-lib/metrics" "github.com/ledgerwatch/erigon/common/debug" "github.com/ledgerwatch/erigon/common/mclock" "github.com/ledgerwatch/erigon/event" @@ -112,14 +114,23 @@ type Peer struct { created mclock.AbsTime wg sync.WaitGroup - protoErr chan error + protoErr chan *PeerError closed chan struct{} - disc chan DiscReason + pingRecv chan struct{} + disc chan *PeerError // events receives message send / receive events if set events *event.Feed pubkey [64]byte metricsEnabled bool + + //diagnostics info + BytesIn uint64 + BytesOut uint64 + CapBytesIn map[string]uint64 + CapBytesOut map[string]uint64 + TypeBytesIn map[string]uint64 + TypeBytesOut map[string]uint64 } // NewPeer returns a peer for testing purposes. @@ -192,9 +203,9 @@ func (p *Peer) LocalAddr() net.Addr { // Disconnect terminates the peer connection with the given reason. // It returns immediately and does not wait until the connection is closed. -func (p *Peer) Disconnect(reason DiscReason) { +func (p *Peer) Disconnect(err *PeerError) { select { - case p.disc <- reason: + case p.disc <- err: case <-p.closed: } } @@ -211,17 +222,26 @@ func (p *Peer) Inbound() bool { } func newPeer(logger log.Logger, conn *conn, protocols []Protocol, pubkey [64]byte, metricsEnabled bool) *Peer { - protomap := matchProtocols(protocols, conn.caps, conn) + log := logger.New("id", conn.node.ID(), "conn", conn.flags) + + protomap := matchProtocols(protocols, conn.caps, conn, log) p := &Peer{ rw: conn, running: protomap, created: mclock.Now(), - disc: make(chan DiscReason), - protoErr: make(chan error, len(protomap)+1), // protocols + pingLoop + disc: make(chan *PeerError), + protoErr: make(chan *PeerError, len(protomap)+1), // protocols + pingLoop closed: make(chan struct{}), - log: logger.New("id", conn.node.ID(), "conn", conn.flags), + pingRecv: make(chan struct{}, 16), + log: log, pubkey: pubkey, metricsEnabled: metricsEnabled, + CapBytesIn: make(map[string]uint64), + CapBytesOut: make(map[string]uint64), + TypeBytesIn: make(map[string]uint64), + TypeBytesOut: make(map[string]uint64), + BytesIn: 0, + BytesOut: 0, } return p } @@ -230,13 +250,52 @@ func (p *Peer) Log() log.Logger { return p.log } -func (p *Peer) run() (remoteRequested bool, err error) { +func makeFirstCharCap(input string) string { + // Convert the entire string to lowercase + input = strings.ToLower(input) + // Use strings.Title to capitalize the first letter of each word + input = strings.ToUpper(input[:1]) + input[1:] + return input +} + +func convertToCamelCase(input string) string { + parts := strings.Split(input, "_") + if len(parts) == 1 { + return input + } + + var result string + + for _, part := range parts { + if len(part) > 0 && part != parts[len(parts)-1] { + result += makeFirstCharCap(part) + } + } + + return result +} + +func (p *Peer) CountBytesTransfered(msgType string, msgCap string, bytes uint64, inbound bool) { + messageType := convertToCamelCase(msgType) + + if inbound { + p.BytesIn += bytes + p.CapBytesIn[msgCap] += bytes + p.TypeBytesIn[messageType] += bytes + } else { + p.BytesOut += bytes + p.CapBytesOut[msgCap] += bytes + p.TypeBytesOut[messageType] += bytes + } +} + +func (p *Peer) run() (peerErr *PeerError) { var ( writeStart = make(chan struct{}, 1) writeErr = make(chan error, 1) readErr = make(chan error, 1) - reason DiscReason // sent to the peer ) + p.wg.Add(2) go p.readLoop(readErr) go p.pingLoop() @@ -245,39 +304,33 @@ func (p *Peer) run() (remoteRequested bool, err error) { writeStart <- struct{}{} p.startProtocols(writeStart, writeErr) + defer func() { + close(p.closed) + p.rw.close(peerErr.Reason) + p.wg.Wait() + }() + // Wait for an error or disconnect. -loop: for { select { - case err = <-writeErr: - // A write finished. Allow the next write to start if - // there was no error. + case err := <-writeErr: if err != nil { - reason = DiscNetworkError - break loop + return NewPeerError(PeerErrorDiscReason, DiscNetworkError, err, "Peer.run writeErr") } + // Allow the next write to start if there was no error. writeStart <- struct{}{} - case err = <-readErr: - if r, ok := err.(DiscReason); ok { - remoteRequested = true - reason = r + case err := <-readErr: + if reason, ok := err.(DiscReason); ok { + return NewPeerError(PeerErrorDiscReasonRemote, reason, nil, "Peer.run got a remote DiscReason") } else { - reason = DiscNetworkError + return NewPeerError(PeerErrorDiscReason, DiscNetworkError, err, "Peer.run readErr") } - break loop - case err = <-p.protoErr: - reason = discReasonForError(err) - break loop - case err = <-p.disc: - reason = discReasonForError(err) - break loop + case err := <-p.protoErr: + return err + case err := <-p.disc: + return err } } - - close(p.closed) - p.rw.close(reason) - p.wg.Wait() - return remoteRequested, err } func (p *Peer) pingLoop() { @@ -289,10 +342,15 @@ func (p *Peer) pingLoop() { select { case <-ping.C: if err := SendItems(p.rw, pingMsg); err != nil { - p.protoErr <- err + p.protoErr <- NewPeerError(PeerErrorPingFailure, DiscNetworkError, err, "Failed to send pingMsg") return } ping.Reset(pingInterval) + case <-p.pingRecv: + if err := SendItems(p.rw, pongMsg); err != nil { + p.protoErr <- NewPeerError(PeerErrorPongFailure, DiscNetworkError, err, "Failed to send pongMsg") + return + } case <-p.closed: return } @@ -308,7 +366,7 @@ func (p *Peer) readLoop(errc chan<- error) { errc <- err return } - msg.ReceivedAt = time.Now() + if err = p.handle(msg); err != nil { errc <- err return @@ -320,13 +378,18 @@ func (p *Peer) handle(msg Msg) error { switch { case msg.Code == pingMsg: msg.Discard() - go SendItems(p.rw, pongMsg) + select { + case p.pingRecv <- struct{}{}: + case <-p.closed: + } case msg.Code == discMsg: - // This is the last message. We don't need to discard or - // check errors because, the connection will be closed after it. - var m struct{ R DiscReason } - rlp.Decode(msg.Payload, &m) - return m.R + // This is the last message. + // We don't need to discard because the connection will be closed after it. + reason, err := DisconnectMessagePayloadDecode(msg.Payload) + if err != nil { + p.log.Debug("Peer.handle: failed to rlp.Decode msg.Payload", "err", err) + } + return reason case msg.Code < baseProtocolLength: // ignore other base protocol messages msg.Discard() @@ -337,10 +400,21 @@ func (p *Peer) handle(msg Msg) error { if err != nil { return fmt.Errorf("msg code out of range: %v", msg.Code) } + //msgType := "unknown" + + //var dds uint64 = msg.Code + + //dds -= proto.offset + //msgCode := msg.Code - proto.offset + //msgType = eth.ToProto[proto.cap().Version][dds].String() + //msgType := eth.ToProto[proto.cap().Version][msgCode].String() + + //p.CountBytesTransfered(msgType, proto.cap().String(), uint64(msg.Size), true) + if p.metricsEnabled { m := fmt.Sprintf("%s_%s_%d_%#02x", ingressMeterName, proto.Name, proto.Version, msg.Code-proto.offset) - metrics2.GetOrCreateCounter(m).Set(uint64(msg.meterSize)) - metrics2.GetOrCreateCounter(m + "_packets").Set(1) + metrics.GetOrCreateGauge(m).SetUint32(msg.meterSize) + metrics.GetOrCreateGauge(m + "_packets").Set(1) } select { case proto.in <- msg: @@ -365,7 +439,7 @@ func countMatchingProtocols(protocols []Protocol, caps []Cap) int { } // matchProtocols creates structures for matching named subprotocols. -func matchProtocols(protocols []Protocol, caps []Cap, rw MsgReadWriter) map[string]*protoRW { +func matchProtocols(protocols []Protocol, caps []Cap, rw MsgReadWriter, logger log.Logger) map[string]*protoRW { sort.Sort(capsByNameAndVersion(caps)) offset := baseProtocolLength result := make(map[string]*protoRW) @@ -379,7 +453,7 @@ outer: offset -= old.Length } // Assign the new match - result[cap.Name] = &protoRW{Protocol: proto, offset: offset, in: make(chan Msg), w: rw} + result[cap.Name] = &protoRW{Protocol: proto, offset: offset, in: make(chan Msg), w: rw, logger: logger} offset += proto.Length continue outer @@ -405,11 +479,9 @@ func (p *Peer) startProtocols(writeStart <-chan struct{}, writeErr chan<- error) defer debug.LogPanic() defer p.wg.Done() err := proto.Run(p, rw) + // only unit test protocols can return nil if err == nil { - p.log.Trace(fmt.Sprintf("Protocol %s/%d returned", proto.Name, proto.Version)) - err = errProtocolReturned - } else if err != io.EOF { - p.log.Trace(fmt.Sprintf("Protocol %s/%d failed", proto.Name, proto.Version), "err", err) + err = NewPeerError(PeerErrorTest, DiscQuitting, nil, fmt.Sprintf("Protocol %s/%d returned", proto.Name, proto.Version)) } p.protoErr <- err }() @@ -424,7 +496,7 @@ func (p *Peer) getProto(code uint64) (*protoRW, error) { return proto, nil } } - return nil, newPeerError(errInvalidMsgCode, "%d", code) + return nil, NewPeerError(PeerErrorInvalidMessageCode, DiscProtocolError, nil, fmt.Sprintf("code=%d", code)) } type protoRW struct { @@ -435,20 +507,32 @@ type protoRW struct { werr chan<- error // for write results offset uint64 w MsgWriter + logger log.Logger } +var traceMsg = false + func (rw *protoRW) WriteMsg(msg Msg) (err error) { if msg.Code >= rw.Length { - return newPeerError(errInvalidMsgCode, "not handled") + return NewPeerError(PeerErrorInvalidMessageCode, DiscProtocolError, nil, fmt.Sprintf("not handled code=%d", msg.Code)) } + msg.meterCap = rw.cap() msg.meterCode = msg.Code - msg.Code += rw.offset select { case <-rw.wstart: err = rw.w.WriteMsg(msg) + + if traceMsg { + if err != nil { + rw.logger.Trace("Write failed", "cap", rw.cap(), "msg", msg.Code-rw.offset, "size", msg.Size, "err", err) + } else { + rw.logger.Trace("Wrote", "cap", rw.cap(), "msg", msg.Code-rw.offset, "size", msg.Size) + } + } + // Report write status back to Peer.run. It will initiate // shutdown if the error is non-nil and unblock the next write // otherwise. The calling protocol code should exit for errors @@ -461,9 +545,13 @@ func (rw *protoRW) WriteMsg(msg Msg) (err error) { } func (rw *protoRW) ReadMsg() (Msg, error) { + select { case msg := <-rw.in: msg.Code -= rw.offset + if traceMsg { + rw.logger.Trace("Read", "cap", rw.cap(), "msg", msg.Code, "size", msg.Size) + } return msg, nil case <-rw.closed: return Msg{}, io.EOF @@ -527,3 +615,23 @@ func (p *Peer) Info() *PeerInfo { } return info } + +func (p *Peer) DiagInfo() *diagnostics.PeerStatistics { + return &diagnostics.PeerStatistics{ + BytesIn: p.BytesIn, + BytesOut: p.BytesOut, + CapBytesIn: p.CapBytesIn, + CapBytesOut: p.CapBytesOut, + TypeBytesIn: p.TypeBytesIn, + TypeBytesOut: p.TypeBytesOut, + } +} + +func (p *Peer) ResetDiagnosticsCounters() { + p.BytesIn = 0 + p.BytesOut = 0 + p.CapBytesIn = make(map[string]uint64) + p.CapBytesOut = make(map[string]uint64) + p.TypeBytesIn = make(map[string]uint64) + p.TypeBytesOut = make(map[string]uint64) +} diff --git a/p2p/peer_error.go b/p2p/peer_error.go index aad1a65c7ac..f877370535c 100644 --- a/p2p/peer_error.go +++ b/p2p/peer_error.go @@ -17,42 +17,90 @@ package p2p import ( - "errors" "fmt" ) +type PeerErrorCode uint8 + const ( - errInvalidMsgCode = iota - errInvalidMsg + PeerErrorInvalidMessageCode PeerErrorCode = iota + PeerErrorInvalidMessage + PeerErrorPingFailure + PeerErrorPongFailure + PeerErrorDiscReason + PeerErrorDiscReasonRemote + PeerErrorMessageReceive + PeerErrorMessageSizeLimit + PeerErrorMessageObsolete + PeerErrorMessageSend + PeerErrorLocalStatusNeeded + PeerErrorStatusSend + PeerErrorStatusReceive + PeerErrorStatusDecode + PeerErrorStatusIncompatible + PeerErrorStatusHandshakeTimeout + PeerErrorStatusUnexpected + PeerErrorFirstMessageSend + PeerErrorTest ) -var errorToString = map[int]string{ - errInvalidMsgCode: "invalid message code", - errInvalidMsg: "invalid message", +var peerErrorCodeToString = map[PeerErrorCode]string{ + PeerErrorInvalidMessageCode: "invalid message code", + PeerErrorInvalidMessage: "invalid message", + PeerErrorPingFailure: "ping failure", + PeerErrorPongFailure: "pong failure", + PeerErrorDiscReason: "disconnect reason", + PeerErrorDiscReasonRemote: "remote disconnect reason", + PeerErrorMessageReceive: "failed to receive a message", + PeerErrorMessageSizeLimit: "too big message", + PeerErrorMessageObsolete: "obsolete message", + PeerErrorMessageSend: "failed to send a message", + PeerErrorLocalStatusNeeded: "need a local status message", + PeerErrorStatusSend: "failed to send the local status", + PeerErrorStatusReceive: "failed to receive the remote status", + PeerErrorStatusDecode: "failed to decode the remote status", + PeerErrorStatusIncompatible: "incompatible remote status", + PeerErrorStatusHandshakeTimeout: "handshake timeout", + PeerErrorStatusUnexpected: "unexpected remote status", + PeerErrorFirstMessageSend: "failed to send the first message", + PeerErrorTest: "test error", } -type peerError struct { - code int - message string +func (c PeerErrorCode) String() string { + if len(peerErrorCodeToString) <= int(c) { + return fmt.Sprintf("unknown code %d", c) + } + return peerErrorCodeToString[c] } -func newPeerError(code int, format string, v ...interface{}) *peerError { - desc, ok := errorToString[code] - if !ok { - panic("invalid error code") - } - err := &peerError{code, desc} - if format != "" { - err.message += ": " + fmt.Sprintf(format, v...) +func (c PeerErrorCode) Error() string { + return c.String() +} + +type PeerError struct { + Code PeerErrorCode + Reason DiscReason + Err error + Message string +} + +func NewPeerError(code PeerErrorCode, reason DiscReason, err error, message string) *PeerError { + return &PeerError{ + code, + reason, + err, + message, } - return err } -func (pe *peerError) Error() string { - return pe.message +func (pe *PeerError) String() string { + return fmt.Sprintf("PeerError(code=%s, reason=%s, err=%v, message=%s)", + pe.Code, pe.Reason, pe.Err, pe.Message) } -var errProtocolReturned = errors.New("protocol returned") +func (pe *PeerError) Error() string { + return pe.String() +} type DiscReason uint8 @@ -98,22 +146,3 @@ func (d DiscReason) String() string { func (d DiscReason) Error() string { return d.String() } - -func discReasonForError(err error) DiscReason { - if reason, ok := err.(DiscReason); ok { - return reason - } - if err == errProtocolReturned { - return DiscQuitting - } - peerError, ok := err.(*peerError) - if ok { - switch peerError.code { - case errInvalidMsgCode, errInvalidMsg: - return DiscProtocolError - default: - return DiscSubprotocolError - } - } - return DiscSubprotocolError -} diff --git a/p2p/peer_test.go b/p2p/peer_test.go index 10131a3b9b7..c8409764592 100644 --- a/p2p/peer_test.go +++ b/p2p/peer_test.go @@ -37,11 +37,11 @@ import ( var discard = Protocol{ Name: "discard", Length: 1, - Run: func(p *Peer, rw MsgReadWriter) error { + Run: func(p *Peer, rw MsgReadWriter) *PeerError { for { msg, err := rw.ReadMsg() if err != nil { - return err + return NewPeerError(PeerErrorTest, DiscProtocolError, err, "peer_test: 'discard' protocol ReadMsg error") } fmt.Printf("discarding %d\n", msg.Code) msg.Discard() @@ -84,7 +84,7 @@ func newNode(id enode.ID, addr string) *enode.Node { return enode.SignNull(&r, id) } -func testPeer(protos []Protocol) (func(), *conn, *Peer, <-chan error) { +func testPeer(protos []Protocol) (func(), *conn, *Peer, <-chan *PeerError) { var ( fd1, fd2 = net.Pipe() key1, key2 = newkey(), newkey() @@ -100,9 +100,9 @@ func testPeer(protos []Protocol) (func(), *conn, *Peer, <-chan error) { } peer := newPeer(log.Root(), c1, protos, [64]byte{1}, true) - errc := make(chan error, 1) + errc := make(chan *PeerError, 1) go func() { - _, err := peer.run() + err := peer.run() errc <- err }() @@ -114,7 +114,7 @@ func TestPeerProtoReadMsg(t *testing.T) { proto := Protocol{ Name: "a", Length: 5, - Run: func(peer *Peer, rw MsgReadWriter) error { + Run: func(peer *Peer, rw MsgReadWriter) *PeerError { if err := ExpectMsg(rw, 2, []uint{1}); err != nil { t.Error(err) } @@ -137,7 +137,7 @@ func TestPeerProtoReadMsg(t *testing.T) { select { case err := <-errc: - if err != errProtocolReturned { + if (err != nil) && (err.Reason != DiscQuitting) { t.Errorf("peer returned error: %v", err) } case <-time.After(2 * time.Second): @@ -149,7 +149,7 @@ func TestPeerProtoEncodeMsg(t *testing.T) { proto := Protocol{ Name: "a", Length: 2, - Run: func(peer *Peer, rw MsgReadWriter) error { + Run: func(peer *Peer, rw MsgReadWriter) *PeerError { if err := SendItems(rw, 2); err == nil { t.Error("expected error for out-of-range msg code, got nil") } @@ -203,17 +203,20 @@ func TestPeerDisconnectRace(t *testing.T) { maybe := func() bool { return rand.Intn(2) == 1 } for i := 0; i < 1000; i++ { - protoclose := make(chan error) - protodisc := make(chan DiscReason) + protoclose := make(chan *PeerError) + protodisc := make(chan *PeerError) closer, rw, p, disc := testPeer([]Protocol{ { Name: "closereq", - Run: func(p *Peer, rw MsgReadWriter) error { return <-protoclose }, + Run: func(p *Peer, rw MsgReadWriter) *PeerError { return <-protoclose }, Length: 1, }, { - Name: "disconnect", - Run: func(p *Peer, rw MsgReadWriter) error { p.Disconnect(<-protodisc); return nil }, + Name: "disconnect", + Run: func(p *Peer, rw MsgReadWriter) *PeerError { + p.Disconnect(<-protodisc) + return nil + }, Length: 1, }, }) @@ -224,12 +227,12 @@ func TestPeerDisconnectRace(t *testing.T) { // Close the network connection. go closer() // Make protocol "closereq" return. - protoclose <- errors.New("protocol closed") + protoclose <- NewPeerError(PeerErrorTest, DiscRequested, nil, "peer_test.TestPeerDisconnectRace: protocol closed") // Make protocol "disconnect" call peer.Disconnect - protodisc <- DiscAlreadyConnected + protodisc <- NewPeerError(PeerErrorTest, DiscAlreadyConnected, nil, "peer_test.TestPeerDisconnectRace: protocol called peer.Disconnect()") // In some cases, simulate something else calling peer.Disconnect. if maybe() { - go p.Disconnect(DiscInvalidIdentity) + go p.Disconnect(NewPeerError(PeerErrorTest, DiscInvalidIdentity, nil, "peer_test.TestPeerDisconnectRace: something else called peer.Disconnect()")) } // In some cases, simulate remote requesting a disconnect. if maybe() { @@ -262,7 +265,7 @@ func TestNewPeer(t *testing.T) { t.Errorf("Caps mismatch: got %v, expected %v", p.Caps(), caps) } - p.Disconnect(DiscAlreadyConnected) // Should not hang + p.Disconnect(NewPeerError(PeerErrorTest, DiscAlreadyConnected, nil, "TestNewPeer Disconnect")) // Should not hang } func TestMatchProtocols(t *testing.T) { @@ -328,7 +331,7 @@ func TestMatchProtocols(t *testing.T) { } for i, tt := range tests { - result := matchProtocols(tt.Local, tt.Remote, nil) + result := matchProtocols(tt.Local, tt.Remote, nil, log.Root()) if len(result) != len(tt.Match) { t.Errorf("test %d: negotiation mismatch: have %v, want %v", i, len(result), len(tt.Match)) continue diff --git a/p2p/protocol.go b/p2p/protocol.go index 8195262282d..bcd40c5dc8c 100644 --- a/p2p/protocol.go +++ b/p2p/protocol.go @@ -43,7 +43,7 @@ type Protocol struct { // The peer connection is closed when Start returns. It should return // any protocol-level error (such as an I/O error) that is // encountered. - Run func(peer *Peer, rw MsgReadWriter) error + Run func(peer *Peer, rw MsgReadWriter) *PeerError // NodeInfo is an optional helper method to retrieve protocol specific metadata // about the host node. diff --git a/p2p/rlpx/buffer_test.go b/p2p/rlpx/buffer_test.go index b33098b9c2a..2fb372debe4 100644 --- a/p2p/rlpx/buffer_test.go +++ b/p2p/rlpx/buffer_test.go @@ -18,9 +18,9 @@ package rlpx import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/stretchr/testify/assert" ) diff --git a/cmd/sentry/sentry/eth_handshake.go b/p2p/sentry/eth_handshake.go similarity index 76% rename from cmd/sentry/sentry/eth_handshake.go rename to p2p/sentry/eth_handshake.go index ee5cbd02551..768f57cd1a8 100644 --- a/cmd/sentry/sentry/eth_handshake.go +++ b/p2p/sentry/eth_handshake.go @@ -15,20 +15,24 @@ func readAndValidatePeerStatusMessage( status *proto_sentry.StatusData, version uint, minVersion uint, -) (*eth.StatusPacket, error) { +) (*eth.StatusPacket, *p2p.PeerError) { msg, err := rw.ReadMsg() if err != nil { - return nil, err + return nil, p2p.NewPeerError(p2p.PeerErrorStatusReceive, p2p.DiscNetworkError, err, "readAndValidatePeerStatusMessage rw.ReadMsg error") } reply, err := tryDecodeStatusMessage(&msg) msg.Discard() if err != nil { - return nil, err + return nil, p2p.NewPeerError(p2p.PeerErrorStatusDecode, p2p.DiscProtocolError, err, "readAndValidatePeerStatusMessage tryDecodeStatusMessage error") } err = checkPeerStatusCompatibility(reply, status, version, minVersion) - return reply, err + if err != nil { + return nil, p2p.NewPeerError(p2p.PeerErrorStatusIncompatible, p2p.DiscUselessPeer, err, "readAndValidatePeerStatusMessage checkPeerStatusCompatibility error") + } + + return reply, nil } func tryDecodeStatusMessage(msg *p2p.Msg) (*eth.StatusPacket, error) { @@ -48,8 +52,6 @@ func tryDecodeStatusMessage(msg *p2p.Msg) (*eth.StatusPacket, error) { return &reply, nil } -var NetworkIdMissmatchErr = fmt.Errorf("network id does not match") - func checkPeerStatusCompatibility( reply *eth.StatusPacket, status *proto_sentry.StatusData, @@ -58,7 +60,7 @@ func checkPeerStatusCompatibility( ) error { networkID := status.NetworkId if reply.NetworkID != networkID { - return fmt.Errorf("%w: theirs %d, ours %d", NetworkIdMissmatchErr, reply.NetworkID, networkID) + return fmt.Errorf("network id does not match: theirs %d, ours %d", reply.NetworkID, networkID) } if uint(reply.ProtocolVersion) > version { diff --git a/cmd/sentry/sentry/eth_handshake_test.go b/p2p/sentry/eth_handshake_test.go similarity index 95% rename from cmd/sentry/sentry/eth_handshake_test.go rename to p2p/sentry/eth_handshake_test.go index becf32e2f24..57eed30b339 100644 --- a/cmd/sentry/sentry/eth_handshake_test.go +++ b/p2p/sentry/eth_handshake_test.go @@ -20,15 +20,15 @@ import ( func TestCheckPeerStatusCompatibility(t *testing.T) { var version uint = direct.ETH66 networkID := params.MainnetChainConfig.ChainID.Uint64() + heightForks, timeForks := forkid.GatherForks(params.MainnetChainConfig, 0 /* genesisTime */) goodReply := eth.StatusPacket{ ProtocolVersion: uint32(version), NetworkID: networkID, TD: big.NewInt(0), Head: libcommon.Hash{}, Genesis: params.MainnetGenesisHash, - ForkID: forkid.NewID(params.MainnetChainConfig, params.MainnetGenesisHash, 0, 0), + ForkID: forkid.NewIDFromForks(heightForks, timeForks, params.MainnetGenesisHash, 0, 0), } - heightForks, timeForks := forkid.GatherForks(params.MainnetChainConfig) status := proto_sentry.StatusData{ NetworkId: networkID, TotalDifficulty: gointerfaces.ConvertUint256IntToH256(new(uint256.Int)), diff --git a/cmd/sentry/sentry/sentry_grpc_server.go b/p2p/sentry/sentry_grpc_server.go similarity index 87% rename from cmd/sentry/sentry/sentry_grpc_server.go rename to p2p/sentry/sentry_grpc_server.go index 78f96b70722..c745aadef04 100644 --- a/cmd/sentry/sentry/sentry_grpc_server.go +++ b/p2p/sentry/sentry_grpc_server.go @@ -27,6 +27,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dir" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon-lib/direct" "github.com/ledgerwatch/erigon-lib/gointerfaces" "github.com/ledgerwatch/erigon-lib/gointerfaces/grpcutil" @@ -62,10 +63,14 @@ type PeerInfo struct { rw p2p.MsgReadWriter protocol uint - removed chan struct{} // close this channel on remove - ctx context.Context - ctxCancel context.CancelFunc - removeOnce sync.Once + ctx context.Context + ctxCancel context.CancelFunc + + // this channel is closed on Remove() + removed chan struct{} + removeReason *p2p.PeerError + removeOnce sync.Once + // each peer has own worker (goroutine) - all funcs from this queue will execute on this worker // if this queue is full (means peer is slow) - old messages will be dropped // channel closed on peer remove @@ -108,7 +113,7 @@ func (bp *PeersByMinBlock) Pop() interface{} { old := *bp n := len(old) x := old[n-1] - old[n-1] = PeerRef{} + old[n-1] = PeerRef{} // avoid memory leak *bp = old[0 : n-1] return x } @@ -116,7 +121,14 @@ func (bp *PeersByMinBlock) Pop() interface{} { func NewPeerInfo(peer *p2p.Peer, rw p2p.MsgReadWriter) *PeerInfo { ctx, cancel := context.WithCancel(context.Background()) - p := &PeerInfo{peer: peer, rw: rw, removed: make(chan struct{}), tasks: make(chan func(), 16), ctx: ctx, ctxCancel: cancel} + p := &PeerInfo{ + peer: peer, + rw: rw, + removed: make(chan struct{}), + tasks: make(chan func(), 32), + ctx: ctx, + ctxCancel: cancel, + } p.lock.RLock() t := p.tasks @@ -193,10 +205,9 @@ func (pi *PeerInfo) LatestDeadline() time.Time { return pi.latestDealine } -func (pi *PeerInfo) Remove() { - pi.lock.Lock() - defer pi.lock.Unlock() +func (pi *PeerInfo) Remove(reason *p2p.PeerError) { pi.removeOnce.Do(func() { + pi.removeReason = reason close(pi.removed) pi.ctxCancel() }) @@ -230,12 +241,12 @@ func (pi *PeerInfo) Async(f func(), logger log.Logger) { } } -func (pi *PeerInfo) Removed() bool { +func (pi *PeerInfo) RemoveReason() *p2p.PeerError { select { case <-pi.removed: - return true + return pi.removeReason default: - return false + return nil } } @@ -270,18 +281,13 @@ func makeP2PServer( func handShake( ctx context.Context, status *proto_sentry.StatusData, - peerID [64]byte, rw p2p.MsgReadWriter, version uint, minVersion uint, - startSync func(bestHash libcommon.Hash) error, -) error { - if status == nil { - return fmt.Errorf("could not get status message from core for peer %s connection", peerID) - } - +) (*libcommon.Hash, *p2p.PeerError) { // Send out own handshake in a new thread - errc := make(chan error, 2) + errChan := make(chan *p2p.PeerError, 2) + resultChan := make(chan *eth.StatusPacket, 1) ourTD := gointerfaces.ConvertH256ToUint256Int(status.TotalDifficulty) // Convert proto status data into the one required by devp2p @@ -289,7 +295,7 @@ func handShake( go func() { defer debug.LogPanic() - s := ð.StatusPacket{ + status := ð.StatusPacket{ ProtocolVersion: uint32(version), NetworkID: status.NetworkId, TD: ourTD.ToBig(), @@ -297,46 +303,57 @@ func handShake( Genesis: genesisHash, ForkID: forkid.NewIDFromForks(status.ForkData.HeightForks, status.ForkData.TimeForks, genesisHash, status.MaxBlockHeight, status.MaxBlockTime), } - errc <- p2p.Send(rw, eth.StatusMsg, s) + err := p2p.Send(rw, eth.StatusMsg, status) + + if err == nil { + errChan <- nil + } else { + errChan <- p2p.NewPeerError(p2p.PeerErrorStatusSend, p2p.DiscNetworkError, err, "sentry.handShake failed to send eth Status") + } }() go func() { - reply, err := readAndValidatePeerStatusMessage(rw, status, version, minVersion) - if (err == nil) && (startSync != nil) { - err = startSync(reply.Head) - } + defer debug.LogPanic() + status, err := readAndValidatePeerStatusMessage(rw, status, version, minVersion) - errc <- err + if err == nil { + resultChan <- status + errChan <- nil + } else { + errChan <- err + } }() timeout := time.NewTimer(handshakeTimeout) defer timeout.Stop() for i := 0; i < 2; i++ { select { - case err := <-errc: + case err := <-errChan: if err != nil { - return err + return nil, err } case <-timeout.C: - return p2p.DiscReadTimeout + return nil, p2p.NewPeerError(p2p.PeerErrorStatusHandshakeTimeout, p2p.DiscReadTimeout, nil, "sentry.handShake timeout") case <-ctx.Done(): - return ctx.Err() + return nil, p2p.NewPeerError(p2p.PeerErrorDiscReason, p2p.DiscQuitting, ctx.Err(), "sentry.handShake ctx.Done") } } - return nil + peerStatus := <-resultChan + return &peerStatus.Head, nil } func runPeer( ctx context.Context, peerID [64]byte, - protocol uint, + cap p2p.Cap, rw p2p.MsgReadWriter, peerInfo *PeerInfo, send func(msgId proto_sentry.MessageId, peerID [64]byte, b []byte), hasSubscribers func(msgId proto_sentry.MessageId) bool, logger log.Logger, -) error { +) *p2p.PeerError { + protocol := cap.Version printTime := time.Now().Add(time.Minute) peerPrinted := false defer func() { @@ -349,6 +366,7 @@ func runPeer( logger.Trace("Peer disconnected", "id", peerID, "name", peerInfo.peer.Fullname()) } }() + for { if !peerPrinted { if time.Now().After(printTime) { @@ -357,25 +375,28 @@ func runPeer( } } if err := libcommon.Stopped(ctx.Done()); err != nil { - return err + return p2p.NewPeerError(p2p.PeerErrorDiscReason, p2p.DiscQuitting, ctx.Err(), "sentry.runPeer: context stopped") } - if peerInfo.Removed() { - return fmt.Errorf("peer removed") + if err := peerInfo.RemoveReason(); err != nil { + return err } + msg, err := rw.ReadMsg() if err != nil { - return fmt.Errorf("reading message: %w", err) + return p2p.NewPeerError(p2p.PeerErrorMessageReceive, p2p.DiscNetworkError, err, "sentry.runPeer: ReadMsg error") } + if msg.Size > eth.ProtocolMaxMsgSize { msg.Discard() - return fmt.Errorf("message is too large %d, limit %d", msg.Size, eth.ProtocolMaxMsgSize) + return p2p.NewPeerError(p2p.PeerErrorMessageSizeLimit, p2p.DiscSubprotocolError, nil, fmt.Sprintf("sentry.runPeer: message is too large %d, limit %d", msg.Size, eth.ProtocolMaxMsgSize)) } + givePermit := false switch msg.Code { case eth.StatusMsg: msg.Discard() // Status messages should never arrive after the handshake - return fmt.Errorf("uncontrolled status message") + return p2p.NewPeerError(p2p.PeerErrorStatusUnexpected, p2p.DiscSubprotocolError, nil, "sentry.runPeer: unexpected status message") case eth.GetBlockHeadersMsg: if !hasSubscribers(eth.ToProto[protocol][msg.Code]) { continue @@ -418,7 +439,7 @@ func runPeer( case eth.GetNodeDataMsg: if protocol >= direct.ETH67 { msg.Discard() - return fmt.Errorf("unexpected GetNodeDataMsg from %s in eth/%d", peerID, protocol) + return p2p.NewPeerError(p2p.PeerErrorMessageObsolete, p2p.DiscSubprotocolError, nil, fmt.Sprintf("unexpected GetNodeDataMsg from %s in eth/%d", peerID, protocol)) } if !hasSubscribers(eth.ToProto[protocol][msg.Code]) { continue @@ -515,6 +536,11 @@ func runPeer( default: logger.Error(fmt.Sprintf("[p2p] Unknown message code: %d, peerID=%x", msg.Code, peerID)) } + + msgType := eth.ToProto[protocol][msg.Code] + msgCap := cap.String() + peerInfo.peer.CountBytesTransfered(msgType.String(), msgCap, uint64(msg.Size), true) + msg.Discard() peerInfo.ClearDeadlines(time.Now(), givePermit) } @@ -575,12 +601,11 @@ func NewGrpcServer(ctx context.Context, dialCandidates func() enode.Iterator, re Version: protocol, Length: 17, DialCandidates: disc, - Run: func(peer *p2p.Peer, rw p2p.MsgReadWriter) error { + Run: func(peer *p2p.Peer, rw p2p.MsgReadWriter) *p2p.PeerError { peerID := peer.Pubkey() printablePeerID := hex.EncodeToString(peerID[:])[:20] if ss.getPeer(peerID) != nil { - logger.Trace("[p2p] peer already has connection", "peerId", printablePeerID) - return nil + return p2p.NewPeerError(p2p.PeerErrorDiscReason, p2p.DiscAlreadyConnected, nil, "peer already has connection") } logger.Trace("[p2p] start with peer", "peerId", printablePeerID) @@ -589,34 +614,42 @@ func NewGrpcServer(ctx context.Context, dialCandidates func() enode.Iterator, re defer peerInfo.Close() defer ss.GoodPeers.Delete(peerID) - err := handShake(ctx, ss.GetStatus(), peerID, rw, protocol, protocol, func(bestHash libcommon.Hash) error { - ss.GoodPeers.Store(peerID, peerInfo) - ss.sendNewPeerToClients(gointerfaces.ConvertHashToH512(peerID)) - return ss.startSync(ctx, bestHash, peerID) - }) + + status := ss.GetStatus() + + if status == nil { + return p2p.NewPeerError(p2p.PeerErrorLocalStatusNeeded, p2p.DiscProtocolError, nil, "could not get status message from core") + } + + peerBestHash, err := handShake(ctx, status, rw, protocol, protocol) if err != nil { - if errors.Is(err, NetworkIdMissmatchErr) || errors.Is(err, io.EOF) || errors.Is(err, p2p.ErrShuttingDown) { - logger.Trace("[p2p] Handshake failure", "peer", printablePeerID, "err", err) - } else { - logger.Debug("[p2p] Handshake failure", "peer", printablePeerID, "err", err) - } - return fmt.Errorf("[p2p]handshake to peer %s: %w", printablePeerID, err) + return err } + + // handshake is successful logger.Trace("[p2p] Received status message OK", "peerId", printablePeerID, "name", peer.Name()) + ss.GoodPeers.Store(peerID, peerInfo) + ss.sendNewPeerToClients(gointerfaces.ConvertHashToH512(peerID)) + getBlockHeadersErr := ss.getBlockHeaders(ctx, *peerBestHash, peerID) + if getBlockHeadersErr != nil { + return p2p.NewPeerError(p2p.PeerErrorFirstMessageSend, p2p.DiscNetworkError, getBlockHeadersErr, "p2p.Protocol.Run getBlockHeaders failure") + } + + cap := p2p.Cap{Name: eth.ProtocolName, Version: protocol} + err = runPeer( ctx, peerID, - protocol, + cap, rw, peerInfo, ss.send, ss.hasSubscribers, logger, - ) // runPeer never returns a nil error - logger.Trace("[p2p] error while running peer", "peerId", printablePeerID, "err", err) + ) ss.sendGonePeerToClients(gointerfaces.ConvertHashToH512(peerID)) - return nil + return err }, NodeInfo: func() interface{} { return readNodeInfo() @@ -696,24 +729,26 @@ func (ss *GrpcServer) getPeer(peerID [64]byte) (peerInfo *PeerInfo) { return nil } -func (ss *GrpcServer) removePeer(peerID [64]byte) { +func (ss *GrpcServer) removePeer(peerID [64]byte, reason *p2p.PeerError) { if value, ok := ss.GoodPeers.LoadAndDelete(peerID); ok { peerInfo := value.(*PeerInfo) if peerInfo != nil { - peerInfo.Remove() + peerInfo.Remove(reason) } } } func (ss *GrpcServer) writePeer(logPrefix string, peerInfo *PeerInfo, msgcode uint64, data []byte, ttl time.Duration) { peerInfo.Async(func() { + + cap := p2p.Cap{Name: eth.ProtocolName, Version: peerInfo.protocol} + msgType := eth.ToProto[cap.Version][msgcode] + peerInfo.peer.CountBytesTransfered(msgType.String(), cap.String(), uint64(len(data)), false) + err := peerInfo.rw.WriteMsg(p2p.Msg{Code: msgcode, Size: uint32(len(data)), Payload: bytes.NewReader(data)}) if err != nil { - peerInfo.Remove() + peerInfo.Remove(p2p.NewPeerError(p2p.PeerErrorMessageSend, p2p.DiscNetworkError, err, fmt.Sprintf("%s writePeer msgcode=%d", logPrefix, msgcode))) ss.GoodPeers.Delete(peerInfo.ID()) - if !errors.Is(err, p2p.ErrShuttingDown) { - ss.logger.Debug(logPrefix, "msgcode", msgcode, "err", err) - } } else { if ttl > 0 { peerInfo.AddDeadline(time.Now().Add(ttl)) @@ -722,7 +757,7 @@ func (ss *GrpcServer) writePeer(logPrefix string, peerInfo *PeerInfo, msgcode ui }, ss.logger) } -func (ss *GrpcServer) startSync(ctx context.Context, bestHash libcommon.Hash, peerID [64]byte) error { +func (ss *GrpcServer) getBlockHeaders(ctx context.Context, bestHash libcommon.Hash, peerID [64]byte) error { b, err := rlp.EncodeToBytes(ð.GetBlockHeadersPacket66{ RequestId: rand.Uint64(), // nolint: gosec GetBlockHeadersPacket: ð.GetBlockHeadersPacket{ @@ -733,7 +768,7 @@ func (ss *GrpcServer) startSync(ctx context.Context, bestHash libcommon.Hash, pe }, }) if err != nil { - return fmt.Errorf("startSync encode packet failed: %w", err) + return fmt.Errorf("GrpcServer.getBlockHeaders encode packet failed: %w", err) } if _, err := ss.SendMessageById(ctx, &proto_sentry.SendMessageByIdRequest{ PeerId: gointerfaces.ConvertHashToH512(peerID), @@ -752,9 +787,7 @@ func (ss *GrpcServer) PenalizePeer(_ context.Context, req *proto_sentry.Penalize peerID := ConvertH512ToPeerID(req.PeerId) peerInfo := ss.getPeer(peerID) if ss.statusData != nil && peerInfo != nil && !peerInfo.peer.Info().Network.Static && !peerInfo.peer.Info().Network.Trusted { - ss.removePeer(peerID) - printablePeerID := hex.EncodeToString(peerID[:])[:8] - ss.logger.Debug("[p2p] Penalized peer", "peerId", printablePeerID, "name", peerInfo.peer.Name()) + ss.removePeer(peerID, p2p.NewPeerError(p2p.PeerErrorDiscReason, p2p.DiscRequested, nil, "penalized peer")) } return &emptypb.Empty{}, nil } @@ -889,7 +922,7 @@ func (ss *GrpcServer) SendMessageToRandomPeers(ctx context.Context, req *proto_s return reply, fmt.Errorf("sendMessageToRandomPeers not implemented for message Id: %s", req.Data.Id) } - peerInfos := make([]*PeerInfo, 0, 32) // 32 gives capacity for 1024 peers, well beyond default + peerInfos := make([]*PeerInfo, 0, 100) ss.rangePeers(func(peerInfo *PeerInfo) bool { peerInfos = append(peerInfos, peerInfo) return true @@ -897,20 +930,21 @@ func (ss *GrpcServer) SendMessageToRandomPeers(ctx context.Context, req *proto_s rand.Shuffle(len(peerInfos), func(i int, j int) { peerInfos[i], peerInfos[j] = peerInfos[j], peerInfos[i] }) - peersToSendCount := len(peerInfos) - if peersToSendCount > 0 { - peerCountConstrained := math.Min(float64(len(peerInfos)), float64(req.MaxPeers)) - // Ensure we have at least 1 peer during our sqrt operation - peersToSendCount = int(math.Max(math.Sqrt(peerCountConstrained), 1.0)) + + var peersToSendCount int + if req.MaxPeers > 0 { + peersToSendCount = int(math.Min(float64(req.MaxPeers), float64(len(peerInfos)))) + } else { + // MaxPeers == 0 means send to all + peersToSendCount = len(peerInfos) } - var lastErr error // Send the block to a subset of our peers at random for _, peerInfo := range peerInfos[:peersToSendCount] { ss.writePeer("[sentry] sendMessageToRandomPeers", peerInfo, msgcode, req.Data.Data, 0) reply.Peers = append(reply.Peers, gointerfaces.ConvertHashToH512(peerInfo.ID())) } - return reply, lastErr + return reply, nil } func (ss *GrpcServer) SendMessageToAll(ctx context.Context, req *proto_sentry.OutboundMessageData) (*proto_sentry.SentPeers, error) { @@ -1019,6 +1053,15 @@ func (ss *GrpcServer) Peers(_ context.Context, _ *emptypb.Empty) (*proto_sentry. return &reply, nil } +func (ss *GrpcServer) DiagnosticsPeersData() map[string]*diagnostics.PeerStatistics { + if ss.P2pServer == nil { + return map[string]*diagnostics.PeerStatistics{} + } + + peers := ss.P2pServer.DiagnosticsPeersInfo() + return peers +} + func (ss *GrpcServer) SimplePeerCount() map[uint]int { counts := map[uint]int{} ss.rangePeers(func(peerInfo *PeerInfo) bool { @@ -1190,6 +1233,15 @@ func (ss *GrpcServer) PeerEvents(req *proto_sentry.PeerEventsRequest, server pro } } +func (ss *GrpcServer) AddPeer(_ context.Context, req *proto_sentry.AddPeerRequest) (*proto_sentry.AddPeerReply, error) { + node, err := enode.Parse(enode.ValidSchemes, req.Url) + if err != nil { + return nil, err + } + ss.P2pServer.AddPeer(node) + return &proto_sentry.AddPeerReply{Success: true}, nil +} + func (ss *GrpcServer) NodeInfo(_ context.Context, _ *emptypb.Empty) (*proto_types.NodeInfoReply, error) { if ss.P2pServer == nil { return nil, errors.New("p2p server was not started") diff --git a/cmd/sentry/sentry/sentry_grpc_server_test.go b/p2p/sentry/sentry_grpc_server_test.go similarity index 87% rename from cmd/sentry/sentry/sentry_grpc_server_test.go rename to p2p/sentry/sentry_grpc_server_test.go index 9940a9361a2..93b0c4b8e8d 100644 --- a/cmd/sentry/sentry/sentry_grpc_server_test.go +++ b/p2p/sentry/sentry_grpc_server_test.go @@ -37,7 +37,7 @@ func testSentryServer(db kv.Getter, genesis *types.Genesis, genesisHash libcommo headTd256 := new(uint256.Int) headTd256.SetFromBig(headTd) - heightForks, timeForks := forkid.GatherForks(genesis.Config) + heightForks, timeForks := forkid.GatherForks(genesis.Config, genesis.Timestamp) s.statusData = &proto_sentry.StatusData{ NetworkId: 1, TotalDifficulty: gointerfaces.ConvertUint256IntToH256(headTd256), @@ -54,6 +54,19 @@ func testSentryServer(db kv.Getter, genesis *types.Genesis, genesisHash libcommo } +func startHandshake( + ctx context.Context, + status *proto_sentry.StatusData, + pipe *p2p.MsgPipeRW, + protocolVersion uint, + errChan chan *p2p.PeerError, +) { + go func() { + _, err := handShake(ctx, status, pipe, protocolVersion, protocolVersion) + errChan <- err + }() +} + // Tests that peers are correctly accepted (or rejected) based on the advertised // fork IDs in the protocol handshake. func TestForkIDSplit66(t *testing.T) { testForkIDSplit(t, direct.ETH66) } @@ -97,9 +110,9 @@ func testForkIDSplit(t *testing.T, protocol uint) { defer p2pNoFork.Close() defer p2pProFork.Close() - errc := make(chan error, 2) - go func() { errc <- handShake(ctx, s1.GetStatus(), [64]byte{1}, p2pNoFork, protocol, protocol, nil) }() - go func() { errc <- handShake(ctx, s2.GetStatus(), [64]byte{2}, p2pProFork, protocol, protocol, nil) }() + errc := make(chan *p2p.PeerError, 2) + startHandshake(ctx, s1.GetStatus(), p2pNoFork, protocol, errc) + startHandshake(ctx, s2.GetStatus(), p2pProFork, protocol, errc) for i := 0; i < 2; i++ { select { @@ -116,8 +129,8 @@ func testForkIDSplit(t *testing.T, protocol uint) { s1.statusData.MaxBlockHeight = 1 s2.statusData.MaxBlockHeight = 1 - go func() { errc <- handShake(ctx, s1.GetStatus(), [64]byte{1}, p2pNoFork, protocol, protocol, nil) }() - go func() { errc <- handShake(ctx, s2.GetStatus(), [64]byte{2}, p2pProFork, protocol, protocol, nil) }() + startHandshake(ctx, s1.GetStatus(), p2pNoFork, protocol, errc) + startHandshake(ctx, s2.GetStatus(), p2pProFork, protocol, errc) for i := 0; i < 2; i++ { select { @@ -135,8 +148,8 @@ func testForkIDSplit(t *testing.T, protocol uint) { s2.statusData.MaxBlockHeight = 2 // Both nodes should allow the other to connect (same genesis, next fork is the same) - go func() { errc <- handShake(ctx, s1.GetStatus(), [64]byte{1}, p2pNoFork, protocol, protocol, nil) }() - go func() { errc <- handShake(ctx, s2.GetStatus(), [64]byte{2}, p2pProFork, protocol, protocol, nil) }() + startHandshake(ctx, s1.GetStatus(), p2pNoFork, protocol, errc) + startHandshake(ctx, s2.GetStatus(), p2pProFork, protocol, errc) var successes int for i := 0; i < 2; i++ { diff --git a/p2p/sentry/sentry_multi_client/broadcast.go b/p2p/sentry/sentry_multi_client/broadcast.go new file mode 100644 index 00000000000..f210d8ea5f1 --- /dev/null +++ b/p2p/sentry/sentry_multi_client/broadcast.go @@ -0,0 +1,103 @@ +package sentry_multi_client + +import ( + "context" + "errors" + "math/big" + "strings" + "syscall" + + proto_sentry "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" + "github.com/ledgerwatch/log/v3" + "google.golang.org/grpc" + + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/eth/protocols/eth" + "github.com/ledgerwatch/erigon/p2p" + "github.com/ledgerwatch/erigon/rlp" + "github.com/ledgerwatch/erigon/turbo/stages/headerdownload" +) + +func (cs *MultiClient) PropagateNewBlockHashes(ctx context.Context, announces []headerdownload.Announce) { + cs.lock.RLock() + defer cs.lock.RUnlock() + + typedRequest := make(eth.NewBlockHashesPacket, len(announces)) + for i := range announces { + typedRequest[i].Hash = announces[i].Hash + typedRequest[i].Number = announces[i].Number + } + + data, err := rlp.EncodeToBytes(&typedRequest) + if err != nil { + log.Error("propagateNewBlockHashes", "err", err) + return + } + + req66 := proto_sentry.OutboundMessageData{ + Id: proto_sentry.MessageId_NEW_BLOCK_HASHES_66, + Data: data, + } + + for _, sentry := range cs.sentries { + if !sentry.Ready() { + continue + } + + _, err = sentry.SendMessageToAll(ctx, &req66, &grpc.EmptyCallOption{}) + if err != nil { + log.Error("propagateNewBlockHashes", "err", err) + } + } +} + +func (cs *MultiClient) BroadcastNewBlock(ctx context.Context, header *types.Header, body *types.RawBody, td *big.Int) { + cs.lock.RLock() + defer cs.lock.RUnlock() + + block, err := types.RawBlock{Header: header, Body: body}.AsBlock() + + if err != nil { + log.Error("broadcastNewBlock", "err", err) + } + + data, err := rlp.EncodeToBytes(ð.NewBlockPacket{ + Block: block, + TD: td, + }) + + if err != nil { + log.Error("broadcastNewBlock", "err", err) + return + } + + req66 := proto_sentry.SendMessageToRandomPeersRequest{ + MaxPeers: uint64(cs.maxBlockBroadcastPeers(header)), + Data: &proto_sentry.OutboundMessageData{ + Id: proto_sentry.MessageId_NEW_BLOCK_66, + Data: data, + }, + } + + for _, sentry := range cs.sentries { + if !sentry.Ready() { + continue + } + + _, err = sentry.SendMessageToRandomPeers(ctx, &req66, &grpc.EmptyCallOption{}) + if err != nil { + if isPeerNotFoundErr(err) || networkTemporaryErr(err) { + log.Debug("broadcastNewBlock", "err", err) + continue + } + log.Error("broadcastNewBlock", "err", err) + } + } +} + +func networkTemporaryErr(err error) bool { + return errors.Is(err, syscall.EPIPE) || errors.Is(err, p2p.ErrShuttingDown) +} +func isPeerNotFoundErr(err error) bool { + return strings.Contains(err.Error(), "peer not found") +} diff --git a/cmd/sentry/sentry/sentry_api.go b/p2p/sentry/sentry_multi_client/sentry_api.go similarity index 96% rename from cmd/sentry/sentry/sentry_api.go rename to p2p/sentry/sentry_multi_client/sentry_api.go index f850e677eb7..072ae9258c1 100644 --- a/cmd/sentry/sentry/sentry_api.go +++ b/p2p/sentry/sentry_multi_client/sentry_api.go @@ -1,4 +1,4 @@ -package sentry +package sentry_multi_client import ( "context" @@ -11,6 +11,7 @@ import ( "google.golang.org/grpc" "github.com/ledgerwatch/erigon/eth/protocols/eth" + "github.com/ledgerwatch/erigon/p2p/sentry" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/stages/bodydownload" "github.com/ledgerwatch/erigon/turbo/stages/headerdownload" @@ -72,7 +73,7 @@ func (cs *MultiClient) SendBodyRequest(ctx context.Context, req *bodydownload.Bo if sentPeers == nil || len(sentPeers.Peers) == 0 { continue } - return ConvertH512ToPeerID(sentPeers.Peers[0]), true + return sentry.ConvertH512ToPeerID(sentPeers.Peers[0]), true } return [64]byte{}, false } @@ -119,7 +120,7 @@ func (cs *MultiClient) SendHeaderRequest(ctx context.Context, req *headerdownloa if sentPeers == nil || len(sentPeers.Peers) == 0 { continue } - return ConvertH512ToPeerID(sentPeers.Peers[0]), true + return sentry.ConvertH512ToPeerID(sentPeers.Peers[0]), true } return [64]byte{}, false } diff --git a/cmd/sentry/sentry/sentry_multi_client.go b/p2p/sentry/sentry_multi_client/sentry_multi_client.go similarity index 94% rename from cmd/sentry/sentry/sentry_multi_client.go rename to p2p/sentry/sentry_multi_client/sentry_multi_client.go index e2d5bf950c0..a95d68af794 100644 --- a/cmd/sentry/sentry/sentry_multi_client.go +++ b/p2p/sentry/sentry_multi_client/sentry_multi_client.go @@ -1,4 +1,4 @@ -package sentry +package sentry_multi_client import ( "bytes" @@ -36,6 +36,7 @@ import ( "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/eth/protocols/eth" + sentry2 "github.com/ledgerwatch/erigon/p2p/sentry" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_helpers" "github.com/ledgerwatch/erigon/turbo/services" @@ -267,10 +268,10 @@ type MultiClient struct { blockReader services.FullBlockReader logPeerInfo bool sendHeaderRequestsToMultiplePeers bool + maxBlockBroadcastPeers func(*types.Header) uint - historyV3 bool - dropUselessPeers bool - logger log.Logger + historyV3 bool + logger log.Logger } func NewMultiClient( @@ -278,6 +279,7 @@ func NewMultiClient( nodeName string, chainConfig *chain.Config, genesisHash libcommon.Hash, + genesisTime uint64, engine consensus.Engine, networkID uint64, sentries []direct.SentryClient, @@ -286,7 +288,7 @@ func NewMultiClient( blockBufferSize int, logPeerInfo bool, forkValidator *engine_helpers.ForkValidator, - dropUselessPeers bool, + maxBlockBroadcastPeers func(*types.Header) uint, logger log.Logger, ) (*MultiClient, error) { historyV3 := kvcfg.HistoryV3.FromDB(db) @@ -305,7 +307,7 @@ func NewMultiClient( if err := hd.RecoverFromDb(db); err != nil { return nil, fmt.Errorf("recovery from DB failed: %w", err) } - bd := bodydownload.NewBodyDownload(engine, blockBufferSize, int(syncCfg.BodyCacheLimit), blockReader) + bd := bodydownload.NewBodyDownload(engine, blockBufferSize, int(syncCfg.BodyCacheLimit), blockReader, logger) cs := &MultiClient{ nodeName: nodeName, @@ -318,11 +320,11 @@ func NewMultiClient( logPeerInfo: logPeerInfo, historyV3: historyV3, sendHeaderRequestsToMultiplePeers: chainConfig.TerminalTotalDifficultyPassed, - dropUselessPeers: dropUselessPeers, + maxBlockBroadcastPeers: maxBlockBroadcastPeers, logger: logger, } cs.ChainConfig = chainConfig - cs.heightForks, cs.timeForks = forkid.GatherForks(cs.ChainConfig) + cs.heightForks, cs.timeForks = forkid.GatherForks(cs.ChainConfig, genesisTime) cs.genesisHash = genesisHash cs.networkId = networkID var err error @@ -401,14 +403,7 @@ func (cs *MultiClient) blockHeaders66(ctx context.Context, in *proto_sentry.Inbo } func (cs *MultiClient) blockHeaders(ctx context.Context, pkt eth.BlockHeadersPacket, rlpStream *rlp.Stream, peerID *proto_types.H512, sentry direct.SentryClient) error { - if cs.dropUselessPeers && len(pkt) == 0 { - outreq := proto_sentry.PenalizePeerRequest{ - PeerId: peerID, - } - if _, err := sentry.PenalizePeer(ctx, &outreq, &grpc.EmptyCallOption{}); err != nil { - return fmt.Errorf("sending peer useless request: %v", err) - } - cs.logger.Debug("Requested removal of peer for empty header response", "peerId", fmt.Sprintf("%x", ConvertH512ToPeerID(peerID))[:8]) + if len(pkt) == 0 { // No point processing empty response return nil } @@ -447,7 +442,7 @@ func (cs *MultiClient) blockHeaders(ctx context.Context, pkt eth.BlockHeadersPac return err } defer tx.Rollback() - penalties, err := cs.Hd.ProcessHeadersPOS(csHeaders, tx, ConvertH512ToPeerID(peerID)) + penalties, err := cs.Hd.ProcessHeadersPOS(csHeaders, tx, sentry2.ConvertH512ToPeerID(peerID)) if err != nil { return err } @@ -456,7 +451,7 @@ func (cs *MultiClient) blockHeaders(ctx context.Context, pkt eth.BlockHeadersPac } } else { sort.Sort(headerdownload.HeadersSort(csHeaders)) // Sorting by order of block heights - canRequestMore := cs.Hd.ProcessHeaders(csHeaders, false /* newBlock */, ConvertH512ToPeerID(peerID)) + canRequestMore := cs.Hd.ProcessHeaders(csHeaders, false /* newBlock */, sentry2.ConvertH512ToPeerID(peerID)) if canRequestMore { currentTime := time.Now() @@ -526,7 +521,7 @@ func (cs *MultiClient) newBlock66(ctx context.Context, inreq *proto_sentry.Inbou }) } - cs.Hd.ProcessHeaders(segments, true /* newBlock */, ConvertH512ToPeerID(inreq.PeerId)) // There is only one segment in this case + cs.Hd.ProcessHeaders(segments, true /* newBlock */, sentry2.ConvertH512ToPeerID(inreq.PeerId)) // There is only one segment in this case } else { outreq := proto_sentry.PenalizePeerRequest{ PeerId: inreq.PeerId, @@ -552,7 +547,7 @@ func (cs *MultiClient) newBlock66(ctx context.Context, inreq *proto_sentry.Inbou if _, err1 := sentry.PeerMinBlock(ctx, &outreq, &grpc.EmptyCallOption{}); err1 != nil { cs.logger.Error("Could not send min block for peer", "err", err1) } - cs.logger.Trace(fmt.Sprintf("NewBlockMsg{blockNumber: %d} from [%s]", request.Block.NumberU64(), ConvertH512ToPeerID(inreq.PeerId))) + cs.logger.Trace(fmt.Sprintf("NewBlockMsg{blockNumber: %d} from [%s]", request.Block.NumberU64(), sentry2.ConvertH512ToPeerID(inreq.PeerId))) return nil } @@ -562,18 +557,11 @@ func (cs *MultiClient) blockBodies66(ctx context.Context, inreq *proto_sentry.In return fmt.Errorf("decode BlockBodiesPacket66: %w", err) } txs, uncles, withdrawals := request.BlockRawBodiesPacket.Unpack() - if cs.dropUselessPeers && len(txs) == 0 && len(uncles) == 0 && len(withdrawals) == 0 { - outreq := proto_sentry.PenalizePeerRequest{ - PeerId: inreq.PeerId, - } - if _, err := sentry.PenalizePeer(ctx, &outreq, &grpc.EmptyCallOption{}); err != nil { - return fmt.Errorf("sending peer useless request: %v", err) - } - cs.logger.Debug("Requested removal of peer for empty body response", "peerId", fmt.Sprintf("%x", ConvertH512ToPeerID(inreq.PeerId))) + if len(txs) == 0 && len(uncles) == 0 && len(withdrawals) == 0 { // No point processing empty response return nil } - cs.Bd.DeliverBodies(txs, uncles, withdrawals, uint64(len(inreq.Data)), ConvertH512ToPeerID(inreq.PeerId)) + cs.Bd.DeliverBodies(txs, uncles, withdrawals, uint64(len(inreq.Data)), sentry2.ConvertH512ToPeerID(inreq.PeerId)) return nil } @@ -597,6 +585,13 @@ func (cs *MultiClient) getBlockHeaders66(ctx context.Context, inreq *proto_sentr }); err != nil { return fmt.Errorf("querying BlockHeaders: %w", err) } + + // Even if we get empty headers list from db, we'll respond with that. Nodes + // running on erigon 2.48 with --sentry.drop-useless-peers will kick us out + // because of certain checks. But, nodes post that will not kick us out. This + // is useful as currently with no response, we're anyways getting kicked due + // to request timeout and EOF. + b, err := rlp.EncodeToBytes(ð.BlockHeadersPacket66{ RequestId: query.RequestId, BlockHeadersPacket: headers, @@ -757,7 +752,7 @@ func (cs *MultiClient) handleInboundMessage(ctx context.Context, inreq *proto_se func (cs *MultiClient) HandlePeerEvent(ctx context.Context, event *proto_sentry.PeerEvent, sentry direct.SentryClient) error { eventID := event.EventId.String() - peerID := ConvertH512ToPeerID(event.PeerId) + peerID := sentry2.ConvertH512ToPeerID(event.PeerId) peerIDStr := hex.EncodeToString(peerID[:]) if !cs.logPeerInfo { diff --git a/p2p/server.go b/p2p/server.go index e03a2561142..7ba83014a3e 100644 --- a/p2p/server.go +++ b/p2p/server.go @@ -26,12 +26,15 @@ import ( "fmt" "net" "sort" + "strconv" + "strings" "sync" "sync/atomic" "time" "golang.org/x/sync/semaphore" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/common" @@ -66,6 +69,8 @@ const ( // Maximum amount of time allowed for writing a complete message. frameWriteTimeout = 20 * time.Second + + serverStatsLogInterval = 60 * time.Second ) var errServerStopped = errors.New("server stopped") @@ -154,6 +159,9 @@ type Config struct { // Internet. NAT nat.Interface `toml:",omitempty"` + // NAT interface description (see NAT.Parse()). + NATSpec string + // If Dialer is set to a non-nil value, the given Dialer // is used to dial outbound peer connections. Dialer NodeDialer `toml:"-"` @@ -173,6 +181,18 @@ type Config struct { MetricsEnabled bool } +func (config *Config) ListenPort() int { + _, portStr, err := net.SplitHostPort(config.ListenAddr) + if err != nil { + return 0 + } + port, err := strconv.Atoi(portStr) + if err != nil { + return 0 + } + return port +} + // Server manages all peer connections. type Server struct { // Config fields may not be modified while the server is running. @@ -215,14 +235,14 @@ type Server struct { // State of run loop and listenLoop. inboundHistory expHeap + errors map[string]uint } type peerOpFunc func(map[enode.ID]*Peer) type peerDrop struct { *Peer - err error - requested bool // true if signaled by the peer + err *PeerError } type connFlag int32 @@ -362,7 +382,7 @@ func (srv *Server) RemovePeer(node *enode.Node) { if peer := peers[node.ID()]; peer != nil { ch = make(chan *PeerEvent, 1) sub = srv.peerFeed.Subscribe(ch) - peer.Disconnect(DiscRequested) + peer.Disconnect(NewPeerError(PeerErrorDiscReason, DiscRequested, nil, "Server.RemovePeer Disconnect")) } }) // Wait for the peer connection to end. @@ -538,20 +558,24 @@ func (srv *Server) setupLocalNode() error { } sort.Sort(capsByNameAndVersion(srv.ourHandshake.Caps)) // Create the local node - db, err := enode.OpenDB(srv.Config.NodeDatabase, srv.Config.TmpDir) + db, err := enode.OpenDB(srv.quitCtx, srv.Config.NodeDatabase, srv.Config.TmpDir) if err != nil { return err } srv.nodedb = db + srv.localnode = enode.NewLocalNode(db, srv.PrivateKey, srv.logger) srv.localnode.SetFallbackIP(net.IP{127, 0, 0, 1}) - srv.updateLocalNodeStaticAddrCache() + // TODO: check conflicts for _, p := range srv.Protocols { for _, e := range p.Attributes { srv.localnode.Set(e) } } + + srv.updateLocalNodeStaticAddrCache() + switch srv.NAT.(type) { case nil: // No NAT interface, do nothing. @@ -568,8 +592,11 @@ func (srv *Server) setupLocalNode() error { defer debug.LogPanic() defer srv.loopWG.Done() if ip, err := srv.NAT.ExternalIP(); err == nil { + srv.logger.Info("NAT ExternalIP resolved", "ip", ip) srv.localnode.SetStaticIP(ip) srv.updateLocalNodeStaticAddrCache() + } else { + srv.logger.Warn("NAT ExternalIP resolution has failed, try to pass a different --nat option", "err", err) } }() } @@ -614,6 +641,7 @@ func (srv *Server) setupDiscovery(ctx context.Context) error { } } srv.localnode.SetFallbackUDP(realaddr.Port) + srv.updateLocalNodeStaticAddrCache() // Discovery V4 var unhandled chan discover.ReadPacket @@ -630,7 +658,7 @@ func (srv *Server) setupDiscovery(ctx context.Context) error { Unhandled: unhandled, Log: srv.logger, } - ntab, err := discover.ListenV4(ctx, conn, srv.localnode, cfg) + ntab, err := discover.ListenV4(ctx, fmt.Sprint(srv.Config.Protocols[0].Version), conn, srv.localnode, cfg) if err != nil { return err } @@ -648,9 +676,9 @@ func (srv *Server) setupDiscovery(ctx context.Context) error { } var err error if sconn != nil { - srv.DiscV5, err = discover.ListenV5(ctx, sconn, srv.localnode, cfg) + srv.DiscV5, err = discover.ListenV5(ctx, fmt.Sprint(srv.Config.Protocols[0].Version), sconn, srv.localnode, cfg) } else { - srv.DiscV5, err = discover.ListenV5(ctx, conn, srv.localnode, cfg) + srv.DiscV5, err = discover.ListenV5(ctx, fmt.Sprint(srv.Config.Protocols[0].Version), conn, srv.localnode, cfg) } if err != nil { return err @@ -716,6 +744,8 @@ func (srv *Server) setupListening(ctx context.Context) error { // Update the local node record and map the TCP listening port if NAT is configured. if tcp, ok := listener.Addr().(*net.TCPAddr); ok { srv.localnode.Set(enr.TCP(tcp.Port)) + srv.updateLocalNodeStaticAddrCache() + if !tcp.IP.IsLoopback() && (srv.NAT != nil) && srv.NAT.SupportsMapping() { srv.loopWG.Add(1) go func() { @@ -766,6 +796,9 @@ func (srv *Server) run() { trusted[n.ID()] = true } + logTimer := time.NewTicker(serverStatsLogInterval) + defer logTimer.Stop() + running: for { select { @@ -812,7 +845,7 @@ running: // The handshakes are done and it passed all checks. p := srv.launchPeer(c, c.pubkey) peers[c.node.ID()] = p - srv.logger.Trace("Adding p2p peer", "peercount", len(peers), "id", p.ID(), "conn", c.flags, "addr", p.RemoteAddr(), "name", p.Name()) + srv.logger.Trace("Adding p2p peer", "peercount", len(peers), "url", p.Node(), "conn", c.flags, "name", p.Fullname()) srv.dialsched.peerAdded(c) if p.Inbound() { inboundCount++ @@ -824,11 +857,23 @@ running: // A peer disconnected. d := common.PrettyDuration(mclock.Now() - pd.created) delete(peers, pd.ID()) - srv.logger.Trace("Removing p2p peer", "peercount", len(peers), "id", pd.ID(), "duration", d, "req", pd.requested, "err", pd.err) + srv.logger.Trace("Removing p2p peer", "peercount", len(peers), "url", pd.Node(), "duration", d, "err", pd.err) srv.dialsched.peerRemoved(pd.rw) if pd.Inbound() { inboundCount-- } + case <-logTimer.C: + vals := []interface{}{"protocol", srv.Config.Protocols[0].Version, "peers", len(peers), "trusted", len(trusted), "inbound", inboundCount} + + func() { + srv.lock.Lock() + defer srv.lock.Unlock() + for err, count := range srv.errors { + vals = append(vals, err, count) + } + }() + + srv.logger.Debug("[p2p] Server", vals...) } } @@ -843,7 +888,7 @@ running: } // Disconnect all peers. for _, p := range peers { - p.Disconnect(DiscQuitting) + p.Disconnect(NewPeerError(PeerErrorDiscReason, DiscQuitting, nil, "Server.run() spindown")) } // Wait for peers to shut down. Pending connections and tasks are // not handled here and will terminate soon-ish because srv.quit @@ -880,6 +925,8 @@ func (srv *Server) listenLoop(ctx context.Context) { // The slots limit accepts of new connections. slots := semaphore.NewWeighted(int64(srv.MaxPendingPeers)) + srv.errors = map[string]uint{} + // Wait for slots to be returned on exit. This ensures all connection goroutines // are down before listenLoop returns. defer func() { @@ -982,10 +1029,25 @@ func (srv *Server) SetupConn(fd net.Conn, flags connFlag, dialDest *enode.Node) return err } +func cleanError(err string) string { + switch { + case strings.HasSuffix(err, "i/o timeout"): + return "i/o timeout" + case strings.HasSuffix(err, "closed by the remote host."): + return "closed by remote" + case strings.HasSuffix(err, "connection reset by peer"): + return "closed by remote" + default: + return err + } +} + func (srv *Server) setupConn(c *conn, flags connFlag, dialDest *enode.Node) error { // Prevent leftover pending conns from entering the handshake. srv.lock.Lock() running := srv.running + // reset error counts + srv.errors = map[string]uint{} srv.lock.Unlock() if !running { return errServerStopped @@ -1005,6 +1067,10 @@ func (srv *Server) setupConn(c *conn, flags connFlag, dialDest *enode.Node) erro // Run the RLPx handshake. remotePubkey, err := c.doEncHandshake(srv.PrivateKey) if err != nil { + errStr := cleanError(err.Error()) + srv.lock.Lock() + srv.errors[errStr] = srv.errors[errStr] + 1 + srv.lock.Unlock() srv.logger.Trace("Failed RLPx handshake", "addr", c.fd.RemoteAddr(), "conn", c.flags, "err", err) return err } @@ -1024,6 +1090,10 @@ func (srv *Server) setupConn(c *conn, flags connFlag, dialDest *enode.Node) erro // Run the capability negotiation handshake. phs, err := c.doProtoHandshake(srv.ourHandshake) if err != nil { + errStr := cleanError(err.Error()) + srv.lock.Lock() + srv.errors[errStr] = srv.errors[errStr] + 1 + srv.lock.Unlock() clog.Trace("Failed p2p handshake", "err", err) return err } @@ -1087,12 +1157,12 @@ func (srv *Server) runPeer(p *Peer) { }) // Run the per-peer main loop. - remoteRequested, err := p.run() + err := p.run() // Announce disconnect on the main loop to update the peer set. // The main loop waits for existing peers to be sent on srv.delpeer // before returning, so this send should not select on srv.quit. - srv.delpeer <- peerDrop{p, err, remoteRequested} + srv.delpeer <- peerDrop{p, err} // Broadcast peer drop to external subscribers. This needs to be // after the send to delpeer so subscribers have a consistent view of @@ -1158,6 +1228,7 @@ func (srv *Server) PeersInfo() []*PeerInfo { for _, peer := range srv.Peers() { if peer != nil { infos = append(infos, peer.Info()) + peer.ResetDiagnosticsCounters() } } // Sort the result array alphabetically by node identifier @@ -1170,3 +1241,17 @@ func (srv *Server) PeersInfo() []*PeerInfo { } return infos } + +// PeersInfo returns an array of metadata objects describing connected peers. +func (srv *Server) DiagnosticsPeersInfo() map[string]*diagnostics.PeerStatistics { + // Gather all the generic and sub-protocol specific infos + infos := make(map[string]*diagnostics.PeerStatistics) + for _, peer := range srv.Peers() { + if peer != nil { + infos[peer.ID().String()] = peer.DiagInfo() + peer.ResetDiagnosticsCounters() + } + } + + return infos +} diff --git a/p2p/simulations/test.go b/p2p/simulations/test.go index 0b5d44c8a32..00b88ce2b55 100644 --- a/p2p/simulations/test.go +++ b/p2p/simulations/test.go @@ -43,7 +43,7 @@ func (t *NoopService) Protocols() []p2p.Protocol { Name: "noop", Version: 666, Length: 0, - Run: func(peer *p2p.Peer, rw p2p.MsgReadWriter) error { + Run: func(peer *p2p.Peer, rw p2p.MsgReadWriter) *p2p.PeerError { if t.c != nil { t.c[peer.ID()] = make(chan struct{}) close(t.c[peer.ID()]) diff --git a/p2p/transport.go b/p2p/transport.go index c98e667934e..405d28b3acc 100644 --- a/p2p/transport.go +++ b/p2p/transport.go @@ -22,10 +22,11 @@ import ( "fmt" "io" "net" + "strings" "sync" "time" - "github.com/ledgerwatch/erigon/common" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/common/bitutil" "github.com/ledgerwatch/erigon/p2p/rlpx" "github.com/ledgerwatch/erigon/rlp" @@ -101,7 +102,7 @@ func (t *rlpxTransport) WriteMsg(msg Msg) error { // Set metrics. msg.meterSize = size - // TODO: use "github.com/VictoriaMetrics/metrics" + // TODO: use "github.com/ledgerwatch/erigon-lib/metrics" //if metrics.Enabled && msg.meterCap.Name != "" { // don't meter non-subprotocol messages // m := fmt.Sprintf("%s/%s/%d/%#02x", egressMeterName, msg.meterCap.Name, msg.meterCap.Version, msg.meterCode) // metrics.GetOrRegisterMeter(m, nil).Mark(int64(msg.meterSize)) @@ -123,7 +124,7 @@ func (t *rlpxTransport) close(err error) { if err := t.conn.SetWriteDeadline(deadline); err == nil { // Connection supports write deadline. t.wbuf.Reset() - rlp.Encode(&t.wbuf, []DiscReason{r}) //nolint:errcheck + _ = DisconnectMessagePayloadEncode(&t.wbuf, r) t.conn.Write(discMsg, t.wbuf.Bytes()) //nolint:errcheck } } @@ -169,13 +170,8 @@ func readProtocolHandshake(rw MsgReader) (*protoHandshake, error) { if msg.Code == discMsg { // Disconnect before protocol handshake is valid according to the // spec and we send it ourself if the post-handshake checks fail. - // We can't return the reason directly, though, because it is echoed - // back otherwise. Wrap it in a string instead. - var reason [1]DiscReason - if err = rlp.Decode(msg.Payload, &reason); err != nil { - return nil, err - } - return nil, reason[0] + reason, _ := DisconnectMessagePayloadDecode(msg.Payload) + return nil, reason } if msg.Code != handshakeMsg { return nil, fmt.Errorf("expected handshake, got %x", msg.Code) @@ -189,3 +185,34 @@ func readProtocolHandshake(rw MsgReader) (*protoHandshake, error) { } return &hs, nil } + +func DisconnectMessagePayloadDecode(reader io.Reader) (DiscReason, error) { + var buffer bytes.Buffer + _, err := buffer.ReadFrom(reader) + if err != nil { + return DiscRequested, err + } + data := buffer.Bytes() + if len(data) == 0 { + return DiscRequested, nil + } + + var reasonList struct{ Reason DiscReason } + err = rlp.DecodeBytes(data, &reasonList) + + // en empty list + if (err != nil) && strings.Contains(err.Error(), "rlp: too few elements") { + return DiscRequested, nil + } + + // not a list, try to decode as a plain integer + if (err != nil) && strings.Contains(err.Error(), "rlp: expected input list") { + err = rlp.DecodeBytes(data, &reasonList.Reason) + } + + return reasonList.Reason, err +} + +func DisconnectMessagePayloadEncode(writer io.Writer, reason DiscReason) error { + return rlp.Encode(writer, []DiscReason{reason}) +} diff --git a/p2p/transport_test.go b/p2p/transport_test.go index c1138dabd5c..37eb84ea8ff 100644 --- a/p2p/transport_test.go +++ b/p2p/transport_test.go @@ -17,11 +17,14 @@ package p2p import ( + "bytes" "errors" "reflect" "sync" "testing" + "github.com/ledgerwatch/erigon/rlp" + "github.com/davecgh/go-spew/spew" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/p2p/simulations/pipes" @@ -128,7 +131,7 @@ func TestProtocolHandshakeErrors(t *testing.T) { { code: handshakeMsg, msg: []byte{1, 2, 3}, - err: newPeerError(errInvalidMsg, "(code 0) (size 4) rlp: expected input list for p2p.protoHandshake"), + err: NewPeerError(PeerErrorInvalidMessage, DiscProtocolError, rlp.WrapStreamError(rlp.ErrExpectedList, reflect.TypeOf(protoHandshake{})), "(code 0) (size 4)"), }, { code: handshakeMsg, @@ -146,3 +149,54 @@ func TestProtocolHandshakeErrors(t *testing.T) { } } } + +func TestDisconnectMessagePayloadDecode(t *testing.T) { + var buffer bytes.Buffer + err := DisconnectMessagePayloadEncode(&buffer, DiscTooManyPeers) + if err != nil { + t.Error(err) + } + reason, err := DisconnectMessagePayloadDecode(&buffer) + if err != nil { + t.Error(err) + } + if reason != DiscTooManyPeers { + t.Fail() + } + + // plain integer + reason, err = DisconnectMessagePayloadDecode(bytes.NewBuffer([]byte{uint8(DiscTooManyPeers)})) + if err != nil { + t.Error(err) + } + if reason != DiscTooManyPeers { + t.Fail() + } + + // single-element RLP list + reason, err = DisconnectMessagePayloadDecode(bytes.NewBuffer([]byte{0xC1, uint8(DiscTooManyPeers)})) + if err != nil { + t.Error(err) + } + if reason != DiscTooManyPeers { + t.Fail() + } + + // empty RLP list + reason, err = DisconnectMessagePayloadDecode(bytes.NewBuffer([]byte{0xC0})) + if err != nil { + t.Error(err) + } + if reason != DiscRequested { + t.Fail() + } + + // empty payload + reason, err = DisconnectMessagePayloadDecode(bytes.NewBuffer([]byte{})) + if err != nil { + t.Error(err) + } + if reason != DiscRequested { + t.Fail() + } +} diff --git a/params/bootnodes.go b/params/bootnodes.go index c5113899a0e..5b250aa7791 100644 --- a/params/bootnodes.go +++ b/params/bootnodes.go @@ -17,9 +17,8 @@ package params import ( + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" - - "github.com/ledgerwatch/erigon/params/networkname" ) // MainnetBootnodes are the enode URLs of the P2P bootstrap nodes running on @@ -32,10 +31,18 @@ var MainnetBootnodes = []string{ "enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303", // bootnode-hetzner-fsn } +// HoleskyBootnodes are the enode URLs of the P2P bootstrap nodes running on the +// Holesky test network. +var HoleskyBootnodes = []string{ + "enode://ac906289e4b7f12df423d654c5a962b6ebe5b3a74cc9e06292a85221f9a64a6f1cfdd6b714ed6dacef51578f92b34c60ee91e9ede9c7f8fadc4d347326d95e2b@146.190.13.128:30303", + "enode://a3435a0155a3e837c02f5e7f5662a2f1fbc25b48e4dc232016e1c51b544cb5b4510ef633ea3278c0e970fa8ad8141e2d4d0f9f95456c537ff05fdf9b31c15072@178.128.136.233:30303", +} + // SepoliaBootnodes are the enode URLs of the P2P bootstrap nodes running on the // Sepolia test network. var SepoliaBootnodes = []string{ // EF DevOps + "enode://4e5e92199ee224a01932a377160aa432f31d0b351f84ab413a8e0a42f4f36476f8fb1cbe914af0d9aef0d51665c214cf653c651c4bbd9d5550a934f241f1682b@138.197.51.181:30303", // sepolia-bootnode-1-nyc3 "enode://143e11fb766781d22d92a2e33f8f104cddae4411a122295ed1fdb6638de96a6ce65f5b7c964ba3763bba27961738fef7d3ecc739268f3e5e771fb4c87b6234ba@146.190.1.103:30303", // sepolia-bootnode-1-sfo3 "enode://8b61dc2d06c3f96fddcbebb0efb29d60d3598650275dc469c22229d3e5620369b0d3dedafd929835fe7f489618f19f456fe7c0df572bf2d914a9f4e006f783a9@170.64.250.88:30303", // sepolia-bootnode-1-syd1 @@ -102,14 +109,11 @@ var V5Bootnodes = []string{ "enr:-Ku4QEWzdnVtXc2Q0ZVigfCGggOVB2Vc1ZCPEc6j21NIFLODSJbvNaef1g4PxhPwl_3kax86YPheFUSLXPRs98vvYsoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDZBrP2Jc2VjcDI1NmsxoQM6jr8Rb1ktLEsVcKAPa08wCsKUmvoQ8khiOl_SLozf9IN1ZHCCIyg", } -var MumbaiBootnodes = []string{ - "enode://320553cda00dfc003f499a3ce9598029f364fbb3ed1222fdc20a94d97dcc4d8ba0cd0bfa996579dcc6d17a534741fb0a5da303a90579431259150de66b597251@54.147.31.250:30303", - "enode://f0f48a8781629f95ff02606081e6e43e4aebd503f3d07fc931fad7dd5ca1ba52bd849a6f6c3be0e375cf13c9ae04d859c4a9ae3546dc8ed4f10aa5dbb47d4998@34.226.134.117:30303", -} +var AmoyBootnodes = []string{} // Todo: Add BorAmoy bootnodes var BorMainnetBootnodes = []string{ - "enode://0cb82b395094ee4a2915e9714894627de9ed8498fb881cec6db7c65e8b9a5bd7f2f25cc84e71e89d0947e51c76e85d0847de848c7782b13c0255247a6758178c@44.232.55.71:30303", - "enode://88116f4295f5a31538ae409e4d44ad40d22e44ee9342869e7d68bdec55b0f83c1530355ce8b41fbec0928a7d75a5745d528450d30aec92066ab6ba1ee351d710@159.203.9.164:30303", + "enode://b8f1cc9c5d4403703fbf377116469667d2b1823c0daf16b7250aa576bacf399e42c3930ccfcb02c5df6879565a2b8931335565f0e8d3f8e72385ecf4a4bf160a@3.36.224.80:30303", + "enode://8729e0c825f3d9cad382555f3e46dcff21af323e89025a0e6312df541f4a9e73abfa562d64906f5e59c51fe6f0501b3e61b07979606c56329c020ed739910759@54.194.245.5:30303", } var GnosisBootnodes = []string{ @@ -126,6 +130,7 @@ var GnosisBootnodes = []string{ "enode://9e50857aa48a7a31bc7b46957e8ced0ef69a7165d3199bea924cb6d02b81f1f35bd8e29d21a54f4a331316bf09bb92716772ea76d3ef75ce027699eccfa14fad@141.94.97.22:30303", "enode://96dc133ce3aeb5d9430f1dce1d77a36418c8789b443ae0445f06f73c6b363f5b35c019086700a098c3e6e54974d64f37e97d72a5c711d1eae34dc06e3e00eed5@141.94.97.74:30303", "enode://516cbfbe9bbf26b6395ed68b24e383401fc33e7fe96b9d235ebca86c9f812fde8d33a7dbebc0fb5595459d2c5cc6381595d96507af89e6b48b5bdd0ebf8af0c0@141.94.97.84:30303", + "enode://fc86a93545c56322dd861180b76632b9baeb65af8f304269b489b4623ae060847569c3c3c10c4b39baf221a2cdefea66efabce061a542cdcda374cbba45aa3d4@51.68.39.206:30303", } var ChiadoBootnodes = []string{ @@ -150,6 +155,8 @@ func KnownDNSNetwork(genesis libcommon.Hash, protocol string) string { net = "mainnet" case GoerliGenesisHash: net = "goerli" + case SepoliaGenesisHash: + net = "sepolia" default: return "" } @@ -160,12 +167,16 @@ func BootnodeURLsOfChain(chain string) []string { switch chain { case networkname.MainnetChainName: return MainnetBootnodes + case networkname.HoleskyChainName: + return HoleskyBootnodes case networkname.SepoliaChainName: return SepoliaBootnodes case networkname.GoerliChainName: return GoerliBootnodes case networkname.MumbaiChainName: return MumbaiBootnodes + case networkname.AmoyChainName: + return AmoyBootnodes case networkname.BorMainnetChainName: return BorMainnetBootnodes case networkname.GnosisChainName: diff --git a/params/bootnodes_mumbai.go b/params/bootnodes_mumbai.go new file mode 100644 index 00000000000..5ad500db83b --- /dev/null +++ b/params/bootnodes_mumbai.go @@ -0,0 +1,338 @@ +package params + +var MumbaiBootnodes = []string{ + // official + "enode://bdcd4786a616a853b8a041f53496d853c68d99d54ff305615cd91c03cd56895e0a7f6e9f35dbf89131044e2114a9a782b792b5661e3aff07faf125a98606a071@34.93.67.27:30303", + "enode://209aaf7ed549cf4a5700fd833da25413f80a1248bd3aa7fe2a87203e3f7b236dd729579e5c8df61c97bf508281bae4969d6de76a7393bcbd04a0af70270333b3@54.216.248.9:30303", + + // third-party + "enode://00cd3b0c0927629e46f560b50da8352ba6c0f6775bb53787f987760dae5f3fb1497101c14cf16b9ee21d0c9f1ac1757ae460ab84e12e8de3c776d30763273a00@44.200.54.250:30303", + "enode://029e793eab7979dffb09c68c375ba6ab28feac837d683c2fe8e6d7e6b86ff392f2e37dd79730b181ad3306b79848279b95241ae7b0a5187c9acdad38e716a42f@195.14.6.165:30303", + "enode://029e793eab7979dffb09c68c375ba6ab28feac837d683c2fe8e6d7e6b86ff392f2e37dd79730b181ad3306b79848279b95241ae7b0a5187c9acdad38e716a42f@195.14.6.165:37188", + "enode://04a3620abe5a813f802ef69b0d3dd81d09f9a88c7bae0c925a6fcb215e0a4dda15fa3d4257187532879867c2b082fb8efd8594150b47a482240b94f3b8b812c0@3.16.130.85:30303", + "enode://056bb8c3f58ad090760fee637d6d3ca02c278c804bc0145b2beaec3897e4f68aef522cdcb57506bfcef986a52d317a31c9b1aa8b85b15ce164130b5fbdca747a@51.81.244.143:30024", + "enode://056bb8c3f58ad090760fee637d6d3ca02c278c804bc0145b2beaec3897e4f68aef522cdcb57506bfcef986a52d317a31c9b1aa8b85b15ce164130b5fbdca747a@51.81.244.143:57482", + "enode://05e01911ad8ec9948c2dd74b72a7146734a4ef4c8a60a8bea23dd04983dbac616d0b92e4efa8419716568c3330ae90ab9eed5d8bc6081f9c0d742ed7a2147176@136.243.32.238:30248", + "enode://05e01911ad8ec9948c2dd74b72a7146734a4ef4c8a60a8bea23dd04983dbac616d0b92e4efa8419716568c3330ae90ab9eed5d8bc6081f9c0d742ed7a2147176@136.243.32.238:30248", + "enode://0914147720e01f212f6654bea019c57f80216af60c78794728b4803c8fe5d5fe74d4b85b6f7b1d4836b5d58b19ac5a56abfa6cc7c2bbeefa92847abe4794f9a9@44.202.78.164:40118", + "enode://0914147720e01f212f6654bea019c57f80216af60c78794728b4803c8fe5d5fe74d4b85b6f7b1d4836b5d58b19ac5a56abfa6cc7c2bbeefa92847abe4794f9a9@54.234.197.198:30303", + "enode://0914147720e01f212f6654bea019c57f80216af60c78794728b4803c8fe5d5fe74d4b85b6f7b1d4836b5d58b19ac5a56abfa6cc7c2bbeefa92847abe4794f9a9@54.234.197.198:45124", + "enode://0957e18c7be7bd6062c54895164b89026d224c22b4b3f3a7167b11e7703987bc0d473d5c855b1a63d913cb430db360db6307710ea1a7eb1ea4c274c163f80136@54.90.105.204:30304", + "enode://0b311bc1643dd4e4a9e55a6e40e2f005ac7e85223429d705e9c2cd3209846e029f2f854d3a33e0a718d5cbad83ecdf6fb6937894568bf675ee85af9cf73a89c5@52.214.83.78:30303", + "enode://0e9bb56fdeab88e071b4c8b4450aa058e681905561577c41e8b692592da95c4616abd22a1c8e13fd81c76aa5c4a1a561fdf029117ee5312a77d72c538932b934@129.213.160.149:24632", + "enode://115a260dd3080f73df37644adc035abc1ffe5174e1131495ed8267567344501c6d58a55768cbdcc2dd7d49237f35f33aa4ca5087963b64a814f875711ed1bd4e@89.168.107.150:48316", + "enode://12b2021173ec6cc072d1f429eed17e51c06959f6683207ca43db97da0590e1e0772ade1137fcb61ea1d9db3d32f809c4220b00ffea88303c8ef44ff9804514a9@139.99.69.4:30303", + "enode://13a774e107ef9875312d6dd27f60a50b718a618b5a26051bb55e74537728244a3423b3225b1d4362744fe37498a811810f6d5d346a8ac605a979a9eb1a06c92c@54.164.83.148:30303", + "enode://13b420bcac1d8c9e919487cf3e9c0ffa5004ce61c14f62b9e5d3c1761b7c798538d28bcf2e346bc65fa703a1833488a80e9abac0b2aac669d184f05e4a244520@66.206.1.250:33904", + "enode://15db06b34d792bd7ea4f1ebb737847f08712a6b5fa79520c7c78784ce7e4f4501a8713367689b4e7abc54a23843c10cbe748022cb94ecb8147014cf81bfffd51@65.108.238.175:30303", + "enode://15fae7bd85e689f637c04ea32b36768899cb73032c893ee0f4b09ed181b1e2c526cf33831a5812f3a46cc3c1061233832b83e52655f1599483a31df6f8db10c6@66.129.102.21:30303", + "enode://15fae7bd85e689f637c04ea32b36768899cb73032c893ee0f4b09ed181b1e2c526cf33831a5812f3a46cc3c1061233832b83e52655f1599483a31df6f8db10c6@66.129.102.21:30303", + "enode://163d474bdf80d67634917c72fb5c23b4f3c65716ab65f9fc26f96c9d140c5a7f2addc398935e2d876ff6f34cccf6eae912b088065358c94a6f1b74bae0afcda3@65.109.106.6:30304", + "enode://165123708a4b8c09c340c5793136ae34ef83a9a5c7ffc260d9c3eb3a34218232fc487e1369cf72d5cfcc2b38cdbe67f47cd2180e4aa5f4fbc8dd94ce3d4a07a6@52.31.209.103:45704", + "enode://1697bf70969ed0c98a6f66b14354dd0d635c2c54ebeec6dfbc0b9652d2f81aa0c0050cc74001516f027f9ac00f6df2da6d9cf961222d91829bb8ebcb0d21432d@135.125.160.122:57050", + "enode://16e521b9daedd3d0ec10739d9b6d895e82229bcb73241c9bac9b213951fd48ae3d8428695b60e0fa5fafb9c8766a287d3330e9e42ac339f9935f423eada8d538@63.251.15.90:18220", + "enode://16e521b9daedd3d0ec10739d9b6d895e82229bcb73241c9bac9b213951fd48ae3d8428695b60e0fa5fafb9c8766a287d3330e9e42ac339f9935f423eada8d538@63.251.15.90:18220", + "enode://16e521b9daedd3d0ec10739d9b6d895e82229bcb73241c9bac9b213951fd48ae3d8428695b60e0fa5fafb9c8766a287d3330e9e42ac339f9935f423eada8d538@63.251.15.90:18222", + "enode://1a56c0bd8e84c8eafe67537845e8971e7c8a7f728d98dfba5331f8fb4f084e9eb47b810a66bf179e0aa1c5cdebebd3382fd184197103643052402a83c4b3a3d7@54.227.161.221:30303", + "enode://1a56c0bd8e84c8eafe67537845e8971e7c8a7f728d98dfba5331f8fb4f084e9eb47b810a66bf179e0aa1c5cdebebd3382fd184197103643052402a83c4b3a3d7@54.227.161.221:30304", + "enode://1aa9e9bdb922062930c99d5736ef89b26226d3e8afc54483917742884ab6bc3bb0e64b1761f31bfbd7eee9db1c2ed4753791228b0b1659869551b91541ddde2e@34.143.131.89:30303", + "enode://1c6b9cd7fa0ff28e9b3893c631f2f44ae70018780c6c0b20ea0bc945b7d2ded91c551251124b9b8c192032533dd8476df444d26132ad332d4bc1e8a4ac3aa3ac@129.80.185.224:30303", + "enode://1c6b9cd7fa0ff28e9b3893c631f2f44ae70018780c6c0b20ea0bc945b7d2ded91c551251124b9b8c192032533dd8476df444d26132ad332d4bc1e8a4ac3aa3ac@129.80.185.224:46474", + "enode://1d078fb83dae63a64867e375d1054ec0b38ea93200d1243e5f18271e310bd4a7dbe9a16a1d857ce5bdee1de69ef8d778de611268e5acce51103cec5727561478@162.55.244.33:31330", + "enode://1d8574f9dd65856131250e72c013c64481f65e1e19b42c7aad51cd76dc65a8db2e4b4ee1bf1346d065fcae908b9fc211e8d175bb4394eedfe66726116b1a0e45@3.82.69.223:44894", + "enode://1d8574f9dd65856131250e72c013c64481f65e1e19b42c7aad51cd76dc65a8db2e4b4ee1bf1346d065fcae908b9fc211e8d175bb4394eedfe66726116b1a0e45@3.82.69.223:47084", + "enode://1d881cf105faca3b95c9d5e76abe3a09dc294e6486eb9c2b36f2661cb82e4277a04e3f12147ffdb68a834a604c2c0255e830eaa46aca5d04f3feb52caf0834ac@144.24.175.119:30303", + "enode://1e58f0462d16edec8df71baed0517a5ad08ee1b9517557b432b516d259b5a9c2ad7584c6ce5a297ad1eec0a622a8482da4485a21b025a57dc647ed487a882240@52.79.90.66:30303", + "enode://1e58f0462d16edec8df71baed0517a5ad08ee1b9517557b432b516d259b5a9c2ad7584c6ce5a297ad1eec0a622a8482da4485a21b025a57dc647ed487a882240@52.79.90.66:49558", + "enode://1e9d440ab7a68708b1ed9fd2cd45fbb65b2db3e8d2a60f78b165258a62f4a67fad91992afc15ebc241e0145bd52d8acc3cec96c382ce94bf2e4e4c3b88dac692@216.155.53.69:18210", + "enode://1e9d440ab7a68708b1ed9fd2cd45fbb65b2db3e8d2a60f78b165258a62f4a67fad91992afc15ebc241e0145bd52d8acc3cec96c382ce94bf2e4e4c3b88dac692@216.155.53.69:18212", + "enode://1e9d440ab7a68708b1ed9fd2cd45fbb65b2db3e8d2a60f78b165258a62f4a67fad91992afc15ebc241e0145bd52d8acc3cec96c382ce94bf2e4e4c3b88dac692@216.155.53.69:37960", + "enode://1fe6595cce80bb6d0dd2b864ff6bc0731bb43866a16422c913cac3e1d726906eabef43ec6c24f5e72cfc7b872f0f2500fc6f5157f92442a844ffb0a2883da314@54.165.52.139:30304", + "enode://1fe6595cce80bb6d0dd2b864ff6bc0731bb43866a16422c913cac3e1d726906eabef43ec6c24f5e72cfc7b872f0f2500fc6f5157f92442a844ffb0a2883da314@54.165.52.139:40486", + "enode://288bf817720677bb16bf6e97969c798058d5fce1b0056764f5eb275e577ebe8d0f8eff8ada5cbdee51ac43899dbfa34d9595826bcf9e89cffed47fb01c53119f@100.24.48.53:30303", + "enode://28e7fb1a6432241e3448008998d6f5fff013c98b1ebf6444fab0c221befa7439230445c0a3fe96c71d5aed63911ee045a38fb9743174a54f36ffa38e2079d546@34.224.174.220:30304", + "enode://28e7fb1a6432241e3448008998d6f5fff013c98b1ebf6444fab0c221befa7439230445c0a3fe96c71d5aed63911ee045a38fb9743174a54f36ffa38e2079d546@34.224.174.220:30304", + "enode://2931f29e653e04063a4300e75dc2732c6a70b7a2bf5d5ecd6f0ce87c5463393edfaefe1a9875e0a0f74322199d5531502ccdeb8c6d95bd90fa51c7c7c0c0f210@216.155.53.69:33120", + "enode://29b5257f68d4e274288805576b1902d6a2eb2ae3497861031c8d222fdd660f20717d1087bcd4f857a117c4ebf7977a2e1948bafedaa08cfd9008ac0abdb45bf3@206.125.34.196:44632", + "enode://29da96e1df872a042f6118e5c3ce3e5ec482f5021a9bb77d563cc36116381ff14d1c82cac838b32c0875f5c7129bb4e55745188420666804da9ad65fc1e03e69@152.69.217.151:30303", + "enode://2abeb69ed6a82cf4d31fcbefc74d190b6f798d6998092eb0677d51cfd28ead42c047e48f0d49cb7ed3f7967981a8d83ee5f7f17d731130b1a0400a488ff94e7a@3.89.32.220:30304", + "enode://2c091513bdd07089570bddb936bb58180e2cab1378f47c3e2311dfe7617ba143ef43f15143dfc527871bdc41886433f8f47c28d353100405abd6a2947ed91268@157.175.98.235:43136", + "enode://2c44cfa716b745c82c50a7fb3b17c20791bd1801ada5a56797798a536b167f6d6d336e9ef595a76e618baadff0f2c44322a50b190ea29da4484df184f3b45f22@185.209.82.99:1057", + "enode://2cfeb05adba879c8e17acfe26a29afff83be198dd89e8bbd6f198b1c5cff3a4f52adb719e54a844a6d9c7c3340f2326d11f02e7b76234969de3e556987710659@80.64.208.112:13046", + "enode://2d0b223a080e191a0ff059cda8327b5750e9651b5f4caa67e8a27a8ccf92c4982f7bb460da93a225fc11b1f15551547bd03760e0a02b3b960f8209a41ca97a7d@18.141.115.121:3431", + "enode://30a3c35238dd19ea73907190b4d0d897a83bbd732c957ab37c6174c7012da4ab8704f422f7021a33da0b3f4f257eea2023fccc240ccf32ec2d0fbf1b08e774a9@51.15.44.112:30303", + "enode://31c04843944c31011bc7b221b706e78a732d0855f2a9956699d1fc3c223cc8ef62e09ddd4faa63d5a64e77b3215498d426489c6d23f3cb27f89a816c42cd7ddf@44.212.35.211:30303", + "enode://3271284ea36198180cb93838a7514e926f575b092f608c488bca740d50fdfbc86d714977c118b5d23e7fa56f1967b7500bc99b36c8b70f6d9f0cf04411fdc028@44.195.30.243:59236", + "enode://330d0ddf625c0c5bf643bc4810365d0564f3f0f94a6bda937a4a4e08ccdb7b33ebb44254d948d0f5e957d8cf5e803b650b3a66821f39d604129f912cadc140e0@150.136.219.31:30303", + "enode://35fd15d922a29f443f192ac9414bf497241e3146319f5421185778884ea00e583dec0803d0e59d10b3e9c245cb0d6496dac464080c08ca3d0d22551d99f67764@3.215.134.157:57832", + "enode://36585e4d8f2b90bd510137b649d96e597a9882b7973d1c2ab32b966995dbd3987a74bb647d37fe1e3ff183a869b7bf9843780fbfdce7e92bd84ba233c0df137d@80.64.208.163:56524", + "enode://3661c5e9e015c94fe4ee472a84f1638d22e6326d941be1047453fdabce45733085c374842601637abef1f162733a553adaf275691efd2d6f9c54290a3acbc7b5@159.138.123.91:40366", + "enode://3701285197c038a9c2b0cdaf5167ca65424c40ecd639bc9cf3d1e70ed136c6843a55830108afbdd2eb3bb4b11b4a65425f85952a28ef3efc8004da61ae01832e@51.81.184.92:30018", + "enode://3701285197c038a9c2b0cdaf5167ca65424c40ecd639bc9cf3d1e70ed136c6843a55830108afbdd2eb3bb4b11b4a65425f85952a28ef3efc8004da61ae01832e@51.81.184.92:30018", + "enode://376614d048ac1ae178b9ce4e86ddfae659f84be8b4f238c029334d3b19ab46650c33668a91ebc60da7352c7a0113a3241374b51f44af571b837f7568a3451431@3.233.194.125:59928", + "enode://3803eabc341ad5043acfae627b8af63822c60b54f31f06e69cdca973326fa5d06d206c89c718f57328dc1882863b6d67183257265cef0fcbc4eb747e3dba79c9@54.91.94.230:30303", + "enode://3803eabc341ad5043acfae627b8af63822c60b54f31f06e69cdca973326fa5d06d206c89c718f57328dc1882863b6d67183257265cef0fcbc4eb747e3dba79c9@54.91.94.230:30303", + "enode://398af25d3ed696592d165f277959373e25751fd3a0e836e9eb5c89c598173e0c2c5f6e0f5a0c5f2f9507876c6651820bd82b56f825f9f916ed9ec01e563dc72e@34.239.186.76:30303", + "enode://398af25d3ed696592d165f277959373e25751fd3a0e836e9eb5c89c598173e0c2c5f6e0f5a0c5f2f9507876c6651820bd82b56f825f9f916ed9ec01e563dc72e@34.239.186.76:30303", + "enode://398af25d3ed696592d165f277959373e25751fd3a0e836e9eb5c89c598173e0c2c5f6e0f5a0c5f2f9507876c6651820bd82b56f825f9f916ed9ec01e563dc72e@34.239.186.76:30304", + "enode://3a0f449749b6b5ee8a50d4bc0f024cd41a33e8203825b2eb29dfc8663fa8077c9c7fbe498c0bdb9e1f47682084c402345e68e6afbceac3df87ed3efefd8758c8@54.226.147.167:30303", + "enode://3a0f449749b6b5ee8a50d4bc0f024cd41a33e8203825b2eb29dfc8663fa8077c9c7fbe498c0bdb9e1f47682084c402345e68e6afbceac3df87ed3efefd8758c8@54.226.147.167:30304", + "enode://3b12280f6e9d18445c6deb217160507ab10f0ec19c06e7e5db2fb2e7c333d5dd5e1c269fa3144e20702d181bebe019e83704b66eec6ee71064b701b3942943d0@18.233.148.51:30303", + "enode://3c11286eeda537fc800e0a83ecd3b30bf6cdc28170fcbde0c9bb4ba29e2b365c1a102c4e2af5e70f568342bb8ef83cf57e24cea9ea0112f1f877c212a92b8850@134.65.193.93:40303", + "enode://3c5c1536ffe73786238839741d2505c3088fb22a555764066eae95b06bd46a67cd52e02951ffa1c0c9bd3f951122dd5a46a6fbae8493c6dca007266ecd806c5a@15.204.216.82:30303", + "enode://3e7056fcb155cf847ca5ba2fea3724ec5798cd01ceefef1506fe07f83ef1d7f78588c2454e13ae6dfdda834e8ae80fcbc92a0b898adce100262eec947149722c@134.65.192.170:40303", + "enode://3eebff3ecb6ead0cc050978f6a685ac57696bf620ff8a1c2c62ffa3cd09709fee224f98adf57741636b5154fbe7ab25b7d8eed4cf2a5e02246c4a3744b6d8d49@174.129.134.198:30303", + "enode://3eebff3ecb6ead0cc050978f6a685ac57696bf620ff8a1c2c62ffa3cd09709fee224f98adf57741636b5154fbe7ab25b7d8eed4cf2a5e02246c4a3744b6d8d49@174.129.134.198:30304", + "enode://3ef0085f3ca704e5633e468aa702cd61f2e85c348376bf722a09efdc756ff11eacb7cc6cfd1fa27bc6d30e374e21a7e812baa5167431c9db74a2e23811961680@34.147.201.200:30303", + "enode://40be81ed455404d0faaa018787ef747bff46cdae166fd43d8acb73acbd8529e3892174e7448abde5de76610597eca7933285c97604dca474007d8f2a8e11bff8@38.95.13.166:30303", + "enode://41a63b973225722ab1406d95a8950246bfed647140e88ed2040040d1bdbd507af77448eea53f9335501daac81401b1c1e9089434d61b92865d0d7404d996881c@46.4.95.49:30305", + "enode://428d3f0ad83589de41ddf8f255396446fe26f82caf56dd41f1157840e5459513fc1c041248c47da8b2893af4e05f37ccfd20a4e17eac8a6304c8ea947fd2a3fa@46.4.96.158:30305", + "enode://43ea9f9ad3c3a27ff19d8a0c04657c51d55e35ef3333d3e8fa7209d195af4cf4423956c3460c0c772cca6d67b0487f9ad628bb6e3a6484e76430ab029e06f1e1@148.251.179.30:30303", + "enode://4436c8fe220fc0c8bde39317e4c85adb44349ceeecd80b33123f542756b56887801a32960e4a03230877661ad3ece9f0ec3db2f991bf753cea39989630767bea@107.23.178.9:30304", + "enode://4582de18bd33c8c425adf100258fe0d3d516e942827467255286b45369c2afc2098d741fce2b4a3a46f041e52ebc4b1f2843c9128e481f1faa483acf1f5b179c@138.2.174.187:30303", + "enode://459a3623ae6e1923e1d9da99a11f2a568324593a38a4e1acc396bf56da9def2bb33c91391d3158b14f4e61558b1802632ae2ad2bf299f2f80338e7529917cec2@3.91.232.245:30304", + "enode://49b0256a90f9a5e1e24ee768ec976b9d141a9efb6ed28cb9993ae82749392b055783cd819a02b23b9d1959857ea6063f2b57f74eac3c267735653e38ecff9773@35.230.162.74:45118", + "enode://4a9eee040e712fe08b8a9e298ec653c38d823e3575f85b174e3eaebf79f358532d57885dd453a4cbd6150b166f3143cc63eb5389f71b1dec38aa69ea25499137@35.210.46.95:30303?discport=45597", + "enode://4c23447a5270edc96074ecab4a39ae549a4317fb9a9ade1558cfa1cb0988ebb6c70b2ce1435ef0a6d071dc269e364fd26dff457098a3548dec8a234b0f388ad6@62.12.164.254:35853", + "enode://4c23447a5270edc96074ecab4a39ae549a4317fb9a9ade1558cfa1cb0988ebb6c70b2ce1435ef0a6d071dc269e364fd26dff457098a3548dec8a234b0f388ad6@62.12.164.254:46965", + "enode://4c4b69fff98582172a5fac795d92e82c31df716b6ccef981c56dc0022026feddbcb96c08dd98a8ef589814c147aa7bb0ac2785719d08a6237d6f0dfe398bafee@3.85.225.185:30303", + "enode://4c75e39d4dba08fe5891bdf6ae91730ff00aa629b071dfd86b506f92bf810019f6fc0476dea69decdfdc040119ccaf5bab7e87ad9487504f10dd79a78eb26319@165.227.27.33:30303", + "enode://4d0c9140f5338b5b5d598d25ceafe0c106948c8a37e44ac78800878e20aab6d11abfa43e76464473bc1fc3aa735da6afe4d255f2b7a9e8a4aba397d7a58e96bb@86.152.85.68:30304", + "enode://4e168f7f08eb33b93236c64677be8fa4721e3803811bb23bb295de44928e445970ce12d51590e3f81fe47370065085f2708a4696c89b8cb6339568e366e4ed45@34.206.3.152:49122", + "enode://508b462bb0aa3045488f4f14b48378035779ffcf50be6c26e357f00be912669e62a6dc8a27e88c6ae4059f12fc0ce7a689edd26b6e2193bf778370ed70077d12@3.90.14.189:30303", + "enode://508b462bb0aa3045488f4f14b48378035779ffcf50be6c26e357f00be912669e62a6dc8a27e88c6ae4059f12fc0ce7a689edd26b6e2193bf778370ed70077d12@3.90.14.189:30303", + "enode://508b462bb0aa3045488f4f14b48378035779ffcf50be6c26e357f00be912669e62a6dc8a27e88c6ae4059f12fc0ce7a689edd26b6e2193bf778370ed70077d12@3.90.14.189:30304", + "enode://51f2fa022fea828f242f50a1a5949f327b7f91b899519cc46f14da054b0dbd16b468523bc92a380abde9a2662636cb83fd39aa9b180ae04f77770f9f1563bd68@178.165.64.123:43500", + "enode://55d869987b39edd38f4fff4e8b131b5126a432e04c91296ed929e818e7428973f0751fffd4ecbc15352658af6036540861eb559b0801e8ea870e38d916625977@54.81.171.127:30303", + "enode://55f34211a0c05e4987959a35570879e18cbec13ab3ee96900f60791000c3253e24f52df2de6705bcc93d6c920b8a263665570e8d8cea2908a4f36977813e06aa@44.214.42.42:30303", + "enode://570e5768eeb205badafcd0c96a36cdcad08055ba2d0b2b1ffd009e92216bae00a9e6b4600aa56704569881339c0589b2ac10b043b4f9541e8ecf3cf508ecfa3d@34.213.145.105:42695", + "enode://57588f3b85d6d49f1e3253a5c0440f4c1c77eb9aa104e53e54bcdf1b8d3f6bd68bffe1c8d120531e7a8ee91b07e582c56efad0dc87e4248545370f116d1ae85c@51.81.184.91:30024", + "enode://57588f3b85d6d49f1e3253a5c0440f4c1c77eb9aa104e53e54bcdf1b8d3f6bd68bffe1c8d120531e7a8ee91b07e582c56efad0dc87e4248545370f116d1ae85c@51.81.184.91:30024", + "enode://57e20c23634c7c910f3b35434a3db5548449fdadb982cfb599fc0fe4252dbf29774ef07b9379f82bcee79fc5916a3bc69dd21d936296e0866b6e8287195081de@46.4.95.49:30305", + "enode://5ae3dfc80d5db600113d9fb8e2eb45fa851997003d79f52245bd9fc04a27e0eb6a1ab87d032324c59906fa48672700af271e26797e25ce9ae98912d90a338cfb@52.23.208.178:30303", + "enode://5ae3dfc80d5db600113d9fb8e2eb45fa851997003d79f52245bd9fc04a27e0eb6a1ab87d032324c59906fa48672700af271e26797e25ce9ae98912d90a338cfb@52.23.208.178:30303", + "enode://5ae3dfc80d5db600113d9fb8e2eb45fa851997003d79f52245bd9fc04a27e0eb6a1ab87d032324c59906fa48672700af271e26797e25ce9ae98912d90a338cfb@52.23.208.178:30304", + "enode://5b29d4e905ca088e723121c24f9b8656e0c2e10cebcfafc74d84a9e9646def6cfba4631138c5b657d3ede3e532fe5721fc5db80c450a9f40ad298aa14d3fae3a@15.204.140.147:30026", + "enode://5b29d4e905ca088e723121c24f9b8656e0c2e10cebcfafc74d84a9e9646def6cfba4631138c5b657d3ede3e532fe5721fc5db80c450a9f40ad298aa14d3fae3a@15.204.140.147:30026", + "enode://5b514b3a49afc7539fb6a85c81d5a7f373409fb4416f2235cd569c84e8e919f3bb313d104893243fee6f91297aeb9baeadb7784730b9aa837926642b7615a8bd@132.226.206.147:30303", + "enode://5cbb21da70c216a0a47c6dc505cfbbb6be3abcf14fdf47220e2ac3e0c8e4d0d1f6993dfb77c057539ffad7a01289062108d0d6f5ddb01e605c14cc1c46e27d6d@69.4.239.33:18210", + "enode://5cbb21da70c216a0a47c6dc505cfbbb6be3abcf14fdf47220e2ac3e0c8e4d0d1f6993dfb77c057539ffad7a01289062108d0d6f5ddb01e605c14cc1c46e27d6d@69.4.239.33:18210", + "enode://5cbb21da70c216a0a47c6dc505cfbbb6be3abcf14fdf47220e2ac3e0c8e4d0d1f6993dfb77c057539ffad7a01289062108d0d6f5ddb01e605c14cc1c46e27d6d@69.4.239.33:43590", + "enode://5d325739378353d10e30d6b6dce20a58e0474d2f3a5e26a87d5e1700f00769326f8013f98e8451b675ef49e221aa3bc1286e51a172afdcd2909c8ec2bf33e9c1@216.66.68.49:30391", + "enode://5f4651a0b1949b7e4b2760da4b89899dd4ca66df21254b6d0081fefbbd52682dc9adb35cc7f08d499b919b438d1f055cd17c69a7005a109ba204425d4c6ca21d@130.61.140.145:30303", + "enode://5f4651a0b1949b7e4b2760da4b89899dd4ca66df21254b6d0081fefbbd52682dc9adb35cc7f08d499b919b438d1f055cd17c69a7005a109ba204425d4c6ca21d@130.61.140.145:30303", + "enode://631f234a6dd6730a563f5fd78b39ad6da0d18185829f1c0e6dfb1858f179a5e6440ca7dafa1af950312e70fa019cd588f1c89f9f1651850cd68898432725c91c@52.90.182.97:30304", + "enode://653216c0c416d94232319475e208cb91b98d4e642313717fe8e57bb0b31b03c863dfa1d4df610d779670d2b0ac94df2266e5f82c3ba36e859650323f6de7191b@86.109.12.19:30303", + "enode://66e658a1b1858aa590075dc1158888993b04f41612a9644203ab92ce63d92bd04677f118773e065bd22579e44f8f4477cdd776343e76fd077b440cff9917d870@192.3.168.3:31324", + "enode://67a79a3a38d1a46db7bcf4bc8c49794cc83217fcd166d3d38e518925c138dd73a589e0f625f1d96bab422665d9caa715cbc8193fc6172c414bd49b84dffa1afc@216.155.53.69:18222", + "enode://67a79a3a38d1a46db7bcf4bc8c49794cc83217fcd166d3d38e518925c138dd73a589e0f625f1d96bab422665d9caa715cbc8193fc6172c414bd49b84dffa1afc@216.155.53.69:55390", + "enode://68dfd4a780b2f900e4f5d9361722b6b7637e271b1137b252bfeaf6617087a6bf3de815def35426669d337a854ca8f35c8ed4f937057ce2704f485a5c187873f3@129.159.136.96:30303", + "enode://69af9688c2ec9367ef14440d7d3e6ca712dca929124765abf256273a0eef69e3f174c541f7cf5eadb3bad4cfc74846a347869c686586c07c9b622193b483f2dc@185.209.82.99:28840", + "enode://6a5774a77325ff1e9bbcf847e2e9a8199654913643cf93086f6189d5d0c0f0e274448cdd38c546855eab7e8e9177408db750067992a417ad377fe22c88902229@130.61.38.149:30303", + "enode://6a5774a77325ff1e9bbcf847e2e9a8199654913643cf93086f6189d5d0c0f0e274448cdd38c546855eab7e8e9177408db750067992a417ad377fe22c88902229@130.61.38.149:30303", + "enode://6c2a449f92845df89078d2db31e0032f7030eef6a9914d51937204a8ac8224e749424a07a01a1938ceedd55aff23b6f79b6d420cdb943c43283d2b2f0216e0c6@18.178.165.51:30303", + "enode://6cccb844149571087aec6a11ec387641282552ecbfbfaf6b5adaac9c3cba62b6533050a2d7997c20ce57a6467a2a23aae598ce453a663a26a5e744eb31f3d729@207.188.6.55:30030", + "enode://6cccb844149571087aec6a11ec387641282552ecbfbfaf6b5adaac9c3cba62b6533050a2d7997c20ce57a6467a2a23aae598ce453a663a26a5e744eb31f3d729@207.188.6.55:30030", + "enode://6d7d778e9e1c99cdc77b241bd4e70ba9b2ad5d870b324deb7c8c63f4863f5818209b2bcec1c0f3079cebf681c88fc33635ea6194d4eb10956020c5278a081d24@18.232.166.200:30303", + "enode://6e22aa1ee45cefb61895b36db39181e9e44f4d85e9515098e935ac702b77aae695586476b55b972a72dd221c734e470678b1142edc7b16938abc9d03c30d12ce@57.129.23.105:30303", + "enode://6ecdba41cca94a371826294161e2d1fb9ecdf6f83f307645b2d6e29291b3d8722be12bb60eabfadb4d90b65048dee0abdff7e63c6bb1aa8391903699a44286fa@50.19.243.132:63939", + "enode://6f22ccde85c9ebe1f3511faf74be2c95ba44c52fe555fa60fa2606ccecb6ffa7cbe24ba572c85111732037a8a345278da6c05f56542418a4290c2b202c17b170@35.242.235.245:35391", + "enode://6f22ccde85c9ebe1f3511faf74be2c95ba44c52fe555fa60fa2606ccecb6ffa7cbe24ba572c85111732037a8a345278da6c05f56542418a4290c2b202c17b170@35.242.235.245:35598", + "enode://70cda0222b54afba4f5b7943443ec19f2c2ec01887911cbb85c737c640fa4801c282baefe49b64bd473523d7fb235cc25959395d0252dffa98b1a7f50fad8a30@185.79.245.76:30312", + "enode://720c818d3bc0dd2f9651ae5a5fc1762e64b31386971325ca4d6f5cbbac627330a8f5cf10153a14b4c2820a7f5c93083d512ddd9490d3e595f34397ce70403e36@3.136.220.39:49241", + "enode://72a3287c4fc40c96c0d300d9ff842b472b893d3049df57a5ec0fbd9ba09d896c20dcdea35b25a54bad5c7ada29b79cd3857d3306f10a1bb871168b0fad9a942e@15.235.43.227:57672", + "enode://72f3a90ab2dcb906770dbfaf058ce890f03a5ffa7389ccd5c6454d86839a06547b536951d93cd4a49433d6afd8c25cbd67a85114427e0559b1236611e0b17b86@54.144.87.117:13598", + "enode://75569d599f2d99cb1c221f5527fdffba104baeae6230d9495a1a483a5ebdd7ea960ca6697a99598b773c1b21f1f4dcaeb42a5dee4446fa469f89ce5e1ad0ad00@35.197.198.100:30308", + "enode://756a9f53fec0c7694122ba9c86f7f906c7cb52addef278497d30e71827a572c6a0162bcf50fe65af2df7f85e96ded56a62f24dc4d1d924815509139ce63f31bb@114.119.173.223:50610", + "enode://75b3899a2e2944c63cd0c053d896e1218c0305b7d77d16966e435b8c187f73a2172a04f342525cb0642188cbfe6bb88388b98d2af71b76c2c9541d58578d0985@79.136.48.218:34550", + "enode://76a190eefd1d0ee161718719e99bd16ed46e86d7fdfd468a2bd8c6a3aeec4cb3b354f9f0c4c2a28b21301eed2bd92c7447b91ac92a8fce6b00115a549f143143@68.234.2.82:30303", + "enode://78aa4379268f21a253fddac12b8d8957c586103ad7732a24f5cf8766e33e0414302e3e2d302e5cb9ef566c2f7cab007ff9c2f1d2fb138fbfbbaf2dbf06854f0b@66.129.102.22:50444", + "enode://78ba1eab9fac35aff952b10b4a2fb13fecd50c1a70cd23dcdf3d074db7dcfe66ad0e6fe5a52fa0f150e54f109e14177b9addbde2261b6b4ecb1f844baf787d4f@216.66.68.49:48030", + "enode://7970f2a8f70637af935cd8c8eb7644f28ed72678d51982e9ca2f2ea2492021cfe9e5473c46a3da582e887af9e702a22170e13c387e5ddf1e7c30d4c5e0bf5cb9@54.87.43.217:30303", + "enode://7970f2a8f70637af935cd8c8eb7644f28ed72678d51982e9ca2f2ea2492021cfe9e5473c46a3da582e887af9e702a22170e13c387e5ddf1e7c30d4c5e0bf5cb9@54.87.43.217:30303", + "enode://7970f2a8f70637af935cd8c8eb7644f28ed72678d51982e9ca2f2ea2492021cfe9e5473c46a3da582e887af9e702a22170e13c387e5ddf1e7c30d4c5e0bf5cb9@54.87.43.217:30304", + "enode://7a367a38374d4a11bde63ade026afec7cd7d65d506521a8b3a9d2825f8b7bfbe7069bf1c6b7061d5fdb01afacf30f371da1215af48d0e77debf6c92faad8ff11@176.103.222.177:41308", + "enode://7a4e51c497b1c2b23400086a82357fb53531363e47d6f2633f22f7a3b93484335138e4c12b2f0e970583ef13b899b43352772365ceb154c8e58985b5c6a34bb3@54.145.113.228:30303", + "enode://7aba4a92c00be8260e1a04dc36392fce02a7dc6bb96a028a5260fda90035cf0e5fa18d843e2a16b4c4ad843a95ae6b1c77e5955bbd97a45fd47d2ae5ab900f24@164.152.162.92:40303?discport=25694", + "enode://7b336316176813e6eb8b8af54ac68a0f6b4d17c42f16e5925475ef58439f454542701b731a8cf17a194974715aeb381015d5c9a03f341c16a9073748e81733f3@34.233.71.76:30303", + "enode://7b5d545481b6d799e5c68d181e2cb73a5f334e7c582996e59097e8fd7cf705e91611f293770d76e9dcedd08b092e8a36d9537a6f4304c32ffb6da7cd64ab4c8f@150.136.144.184:30303", + "enode://7c0a5e2a92dd56139d9ee29bd8d7ee2f8a8f1c608b4a6f9f02553ec1ee75748b8afccb18d24725c258d0297e235b970468174c9d71a8ea940bba2e089be8f6d7@38.170.199.194:31330", + "enode://7c0a5e2a92dd56139d9ee29bd8d7ee2f8a8f1c608b4a6f9f02553ec1ee75748b8afccb18d24725c258d0297e235b970468174c9d71a8ea940bba2e089be8f6d7@38.170.199.194:31330", + "enode://7d9e467cfc50dcb8f608aaceebf62b15b2820d3f71ced04f5d56e67dbbd2eb979da1725ab050c8a517e7660bee5c0ea735013819ef7fcdd051e5cb8f9367b862@13.112.17.216:47254", + "enode://7e1b419ae6474d8537dc8f2fd53d5b8004c6b8cd4f50819021576e7aac65163f2c7b88c9e9695d8ba0fc2eba8e1867a804f4159bd1328b48ef92b5ed9b303546@185.8.106.242:31304", + "enode://7e1b419ae6474d8537dc8f2fd53d5b8004c6b8cd4f50819021576e7aac65163f2c7b88c9e9695d8ba0fc2eba8e1867a804f4159bd1328b48ef92b5ed9b303546@185.8.106.242:31304", + "enode://814a68fa3d22f4c1bb7ae67fb2f86979f70e95ad69974b88c67e0eea5c7305201ecedd00899d6316ea278eb3eda1f4c8561bc7307c371a8e11419a18e8113276@18.235.1.246:56694", + "enode://81aa60dfc336e46f117c763e77d65077356df7cce844035f8d67e001989d9d1537756363c40d4daf530dde424824bf789cac684dd6a2abf52df554777d4dd4c5@216.66.68.49:38870", + "enode://81aa60dfc336e46f117c763e77d65077356df7cce844035f8d67e001989d9d1537756363c40d4daf530dde424824bf789cac684dd6a2abf52df554777d4dd4c5@216.66.68.49:52874", + "enode://824f19709f333f37fe51a56d3cead141b8b495ea28e61b870834f4bf787e637ffcfb7119504a5af591a09f96017c6122901f444e929882945897dfaeab38c1fb@146.59.70.240:30026", + "enode://824f19709f333f37fe51a56d3cead141b8b495ea28e61b870834f4bf787e637ffcfb7119504a5af591a09f96017c6122901f444e929882945897dfaeab38c1fb@146.59.70.240:30026", + "enode://83453a62720cdb81d1cced1a5c8b467a44918f4ff73446221dbee9e921f7fc54ceb895f4dd45932aef0f7910a5437d13593e8a2103b579177bbd836358c0d193@35.188.231.96:52050", + "enode://8481083462f0c702baefaf82979a31c2f340a3c1c3fa86d0b81e5d65bc7055ef6d816fa22f2c9e1f2ac7ad92bec861b4307745e650b9194d2555a54f15b66355@3.213.8.33:53881", + "enode://85103907aec8bc1cc0ff6988417cb752958d3f3ee8b87860229af99de30d5f99b987223eba2b99387cbcef70d1d448f7c392a2109eb2049a5581dd7c8a86cee9@52.3.201.219:30303", + "enode://85103907aec8bc1cc0ff6988417cb752958d3f3ee8b87860229af99de30d5f99b987223eba2b99387cbcef70d1d448f7c392a2109eb2049a5581dd7c8a86cee9@52.3.201.219:30304", + "enode://85103907aec8bc1cc0ff6988417cb752958d3f3ee8b87860229af99de30d5f99b987223eba2b99387cbcef70d1d448f7c392a2109eb2049a5581dd7c8a86cee9@52.3.201.219:30304", + "enode://856844132b945799f29f1ebd3082716f7afff2c17e675bbc825da89a1643fe70de3fef6e41792c50733dc79e03ccdec4b0ffbdf219fa575df6e699f2dc450a47@3.228.39.183:34395", + "enode://85d8a5a7f7373a6901f139f5c3d7477a4c17f0d8fb2815ac4777ad7c620da8297101e3e4394a643e34fad6257cf2a497a291aa79b97838b59d3db9edc369ceb5@3.39.35.120:37602", + "enode://868f8cc762fba72a547c888fe058e70adf4336f02f6b5a318f25fe72833a4df801e487bf5ad64e67ac186121ca376b7528f8c74d9c73abfcab4707e00c067a16@119.8.164.87:56394", + "enode://86939103277ce9c61a4d49d98285a625d5c81fc655a2d00abc8dabcc6da41b1f21789aff51b18a5b83a4517537f2a096364f02d9b4f3b66c2795b9b3c13d8ee4@157.90.131.181:22050", + "enode://86966721fd8cad329c7a283d6d283ed012a0c03cf172c379fd208c3ea6086de6af484f5d470a560b143be5a35a3e9c8e7f38ad7a8307a2c3438451bd8aca56bd@13.41.37.94:30303", + "enode://88259fbb0dab73efc9b42481e8f32468ba466bfddb9a72f5e98542fd866a4ef6a4cdc44d4b1d20c099b8770465aa0f41f7263ff7a0f7c3b05c8ae62f1d3e5a2d@3.83.81.217:30303", + "enode://88259fbb0dab73efc9b42481e8f32468ba466bfddb9a72f5e98542fd866a4ef6a4cdc44d4b1d20c099b8770465aa0f41f7263ff7a0f7c3b05c8ae62f1d3e5a2d@3.83.81.217:30303", + "enode://88e0fdad56f02ca95a13b7b69f94f957539634dbb4f29849c3190a85711346db7c4125a4744c83325d0bcb461b7bc31d1efbd73ec1b3a9d3b58a1cf781cc0f1d@34.234.211.249:30303", + "enode://88e874f91f450fbfaa75843d0b1fc0591853457d44424e8cdbba748d9d4e98db335b59d816d60c0c38c40e8d3bd8e0009ebc648cfb08923d891cd2721f446374@54.83.170.219:10781", + "enode://88e874f91f450fbfaa75843d0b1fc0591853457d44424e8cdbba748d9d4e98db335b59d816d60c0c38c40e8d3bd8e0009ebc648cfb08923d891cd2721f446374@54.83.170.219:14316", + "enode://89226ca5251b86be8743793617f06f2d88a306e3e8efc25e2423c280a65ba42f4cdd428a6f89fd917dc9298d9a741f0e61939d11246d18cd45c5f0eca453cf37@54.83.170.219:43301", + "enode://89a788469792b1974c045b335b5f41404173d9c7ad8bca6c222adbbccf5f152dd7dbd0c2560c3d552937e0133cff2f3a2c58e0e994184f26d7fa584fe83e6b78@63.251.232.124:18210", + "enode://89a788469792b1974c045b335b5f41404173d9c7ad8bca6c222adbbccf5f152dd7dbd0c2560c3d552937e0133cff2f3a2c58e0e994184f26d7fa584fe83e6b78@63.251.232.124:18211", + "enode://89a788469792b1974c045b335b5f41404173d9c7ad8bca6c222adbbccf5f152dd7dbd0c2560c3d552937e0133cff2f3a2c58e0e994184f26d7fa584fe83e6b78@63.251.232.124:18212", + "enode://8ad33730778def989a30e2da388232626380b432ef237daea9716b74b45b739a518a7047c8611fd1c1831494ad23d728c300a288f259fff167d97f294d69c37d@95.213.33.11:43890", + "enode://8b63e044dac9476c207c2684e431f80fd621d6380f7f19bb2a93a3f6ab99af0bd624c7aedb27978c12189d18371d1d6f5f67cdbe552899bf01449c445cb6ba0b@34.255.201.83:30303", + "enode://8d3e6c8e8b434b3a10b0ddc30555c6736fd6bee148dcd2684bcb2edb7d7a48443fd46ffbae3217dc3719f6c947f2e93202e2a08c21f26d7ad1fe0c041f5571ff@93.103.12.140:60896", + "enode://8f12b965a84ce49a7e909196374b09eed79b51d92af8334046d50aea78ebc04d94d149ffbb1d00109ae02f0c006c4c5d4de37c44aa5c8454970182eab0f66d5c@141.98.219.55:30303?discport=54371", + "enode://90b823609d23be99c01e0c1c3e69147151ad60a2e91f03c2fb5b4b90cbb6c7bed1165a3c8877e02d00191fc9a81171a9f595b35b948b9018c024018a3769fbf6@15.235.14.210:31305", + "enode://90b823609d23be99c01e0c1c3e69147151ad60a2e91f03c2fb5b4b90cbb6c7bed1165a3c8877e02d00191fc9a81171a9f595b35b948b9018c024018a3769fbf6@15.235.14.210:31305", + "enode://93203b1bc8c32ecbf10bf8ad1a201eee1a3bd136962deec5aaac633a5541babfd4cb3c2a9ffdf86f70ef17fb0414989032d21fad0d206f50cf63c3fb8e841986@150.136.249.112:30303", + "enode://932245a127e3b4211258aa81cc8a3cffaa2e470ad281c46bf00dc6697173190aa166b0e04aa8d7777edc3865c403c3384fffe69cc75f5f7f482987c665c6a892@35.234.142.158:30307", + "enode://9439df2edb40a03b98d534d6ae35ca94c095b595d31c3a3e4dfe04868b91d23a05c962c65e8fc5109e4c6281ca9f2739f19e16eb89e32350f69fb074bb58fe4a@64.25.109.179:30303", + "enode://9602b654ff54c6bc4164027a63051d0f4db53fe182872fa0cf569e43dc2ba983eade5c57a6ff5762b3ce1a5a2c87c4d2b4a4ecb5e05e4016943188df509a3cfc@107.6.91.43:18211", + "enode://9602b654ff54c6bc4164027a63051d0f4db53fe182872fa0cf569e43dc2ba983eade5c57a6ff5762b3ce1a5a2c87c4d2b4a4ecb5e05e4016943188df509a3cfc@107.6.91.43:59640", + "enode://97abd5038215953e47be40a7454305e4fe46a600d6f07d083067faa1049f546da6a170ea7f83c90d0a6e3cca1777fd6bc070b3d32756db3b9855c8cc0a2542ee@141.95.45.80:30024", + "enode://97abd5038215953e47be40a7454305e4fe46a600d6f07d083067faa1049f546da6a170ea7f83c90d0a6e3cca1777fd6bc070b3d32756db3b9855c8cc0a2542ee@141.95.45.80:37512", + "enode://97b785f6833eb56871d3e7d3b1e6a86ad5db779c4fbcc5879efa887761fe8de264cb829b3b08e97bd20e23eeaf3527ea7834fbaba7a37a68a84d00a73ce762d9@15.204.143.194:30313", + "enode://97b785f6833eb56871d3e7d3b1e6a86ad5db779c4fbcc5879efa887761fe8de264cb829b3b08e97bd20e23eeaf3527ea7834fbaba7a37a68a84d00a73ce762d9@15.204.143.194:36104", + "enode://983843aeac14f5319d19ff406c8af8a13c8879cd39ee7137e8855551167e4c92fa8faa9c56c608fa8118f0d1b08575139f3caf004da55fc833d59afb592f200c@109.202.198.246:30503?discport=38194", + "enode://9aa8ddb10c6d2c847a2e42b884f24fc0c137ba67e097f7ec4007a3764bf0b8471b0811c38e4f82e9f9228343a17bc53f6ba25b8a4d05c96c4363abdc49ea54a0@65.75.210.202:30527", + "enode://9cb276a966ef1522c290b906ac915ba4b4f59f60acd36e3269969f630fbb58aa738bcfbf65301e45b65874ab0a854297318d94cdb61c0d016f40ab0ed397582b@138.2.176.116:30303", + "enode://9cb276a966ef1522c290b906ac915ba4b4f59f60acd36e3269969f630fbb58aa738bcfbf65301e45b65874ab0a854297318d94cdb61c0d016f40ab0ed397582b@138.2.176.116:30303", + "enode://9f3908c360e9fb385de76b54b99076157f5fe81efb87eb01648f52ce7795ed415431dbdb801787be06e201e4e594876b5779caf5530b8a838479e16c9b472c4a@54.81.209.83:30303", + "enode://9f3908c360e9fb385de76b54b99076157f5fe81efb87eb01648f52ce7795ed415431dbdb801787be06e201e4e594876b5779caf5530b8a838479e16c9b472c4a@54.81.209.83:30303", + "enode://9fc3b7b90743608cebb6c1650be5a7abe410c0fae3419225bae499ea4a32bb09aee88dee51b8bc516c9693e88ba609bbbfcdcefa3150d47e9d9f1b991c6fb0da@70.224.208.230:56094", + "enode://a00b673ee99d1aa0e2028ddb86de1ae8edd45139f08050d1256ae4cc8aa8dde934f37439246eaa22d6c6651111e4d713a7ac758be601426caf149648cffc8f47@164.152.110.159:30303", + "enode://a00b673ee99d1aa0e2028ddb86de1ae8edd45139f08050d1256ae4cc8aa8dde934f37439246eaa22d6c6651111e4d713a7ac758be601426caf149648cffc8f47@164.152.110.159:30303", + "enode://a18fefbb947edd472ad05627a8c0d457134aedadbf53214a194294fa050686ba9f8560f220a3f7d226b890fe0e23dd1b8377c75f26f464d9615705becada813f@212.8.243.57:30303", + "enode://a1ed5c2dd1050af7969726fe70464e84699dfe870eba82c6b9977f6441ecccd2f3f4b08e1cdca10a5e6124ec3ff196cd6777824b410bbc0bb7d744ed5c3af8a5@141.94.134.13:30303", + "enode://a1ed5c2dd1050af7969726fe70464e84699dfe870eba82c6b9977f6441ecccd2f3f4b08e1cdca10a5e6124ec3ff196cd6777824b410bbc0bb7d744ed5c3af8a5@141.94.134.13:30303", + "enode://a223d5685d32ecdb4d920e3d3094f07362b44632c6dc6c519eb372eb6849a7cd03768ae71603597cd052f9f5a69172896fae46da351bfc6c6e68efb959a1c654@18.234.36.2:30304", + "enode://a223d5685d32ecdb4d920e3d3094f07362b44632c6dc6c519eb372eb6849a7cd03768ae71603597cd052f9f5a69172896fae46da351bfc6c6e68efb959a1c654@18.234.36.2:49652", + "enode://a2da6500cb9bba423367c41495d3961cb484f7df008349f47c5a150526d70787511b3c38ffe92602fdec89b71aedd2473af44d9f35861113c5804e4ad8632374@51.210.114.83:42344", + "enode://a4676272fb0923a1be9db1dc0d36f8f854acbdcba34b7886071fcac56bb8520ed7322d15547caa7e110ec58fdf591363c62ccbee751a7e37a28c2909eb175416@82.220.39.130:30303", + "enode://a4dea92f0dba45a6e2701d2dc9d92d65783065988550c481cb5ed6ef9ae97fee027e298b696259dd2c90a2b2402241d809581cd0a582b64a1d9246c69fe5e000@34.159.242.76:52442", + "enode://a4dea92f0dba45a6e2701d2dc9d92d65783065988550c481cb5ed6ef9ae97fee027e298b696259dd2c90a2b2402241d809581cd0a582b64a1d9246c69fe5e000@34.159.242.76:53054", + "enode://a5401a6562d20855b80e0c470b9e7a3aac232243fa4630e5eb0c88d56b90dae47e5df4588aa8ec38f2967c7a5fbb3770807f9993de12e40ca372d12c8e17e5fc@3.209.128.173:60607", + "enode://a552f25b8f8e88e434ea6b1d40d48da370db790655660d31616b9146de401bdc73596f3fec5cb77fab063cfd116c3d569ebff8fe4b1710b2e7040f4466da1977@158.101.106.41:30303", + "enode://a597d7de13b34880e1cdf1d9b4147029fb8aa6bf85097285d21265e0966221cfb9586b6cb9791265777d80a90b768d716b3a28a68fc97bf3a809116a01ccc3c1@103.180.28.201:52930", + "enode://a64f78d87dcc2e85851c66353185b89bee3a72b6beb9e207a7b002039a6f64d7c92d172a4bf864964fc7d5ccf77b8b86873dd39ff2f60c5c3dee746baca42793@54.162.233.19:30303", + "enode://a973e6041cad0a60af776872edf5e98e5cadc86a8ac6555a23a6a76abecf337185b3d48adc4bf423ba4234ee86f40a4bd216d114b51dff0c004b4f7240ff88bc@204.236.199.150:30303", + "enode://a973e6041cad0a60af776872edf5e98e5cadc86a8ac6555a23a6a76abecf337185b3d48adc4bf423ba4234ee86f40a4bd216d114b51dff0c004b4f7240ff88bc@204.236.199.150:30304", + "enode://a973e6041cad0a60af776872edf5e98e5cadc86a8ac6555a23a6a76abecf337185b3d48adc4bf423ba4234ee86f40a4bd216d114b51dff0c004b4f7240ff88bc@204.236.199.150:30304", + "enode://a990a42e888cc7bd22ed4f351c23e524ef3b2ef593f3f8c75b37c887bf307d299dd32fc83ffd7ba3f6a70b2c3ed2c7c7ff2a4382c997bd4d07e0d9b3a5a14508@3.213.8.33:7770", + "enode://ab01ff5e669123e263f9a56c7759ede374e10ba305646303150eacde728de2645fdd88e11be3594f7960cf68463b64472108821597260696bc1d26d910aab49c@129.213.87.141:30303", + "enode://ac42caeddf76f96fdbf41043c6cce52a477eaecb22a53dd76e2c6873f58aed0785043f58a8860c2425c54d4bfdb4923314a75537df21e647617063973647ca76@209.58.191.9:30303", + "enode://accfc075ba8be40f8875b4aba6a6af81fc36a6ef02bce09b91800f9ca232ff55423c39acac05463cb54ee28e452765b0124f5d11612454fce56a75a83890b574@130.162.253.39:30303", + "enode://aeaf883dbb2fa7c7740218617e58ab26b99e7106ebf329caed872c407cc543ac5a3b238c21a05fec7df3eafe241e2b80d65c350e4ef12d79ab02ddffa3a36858@44.203.136.195:30303", + "enode://aeaf883dbb2fa7c7740218617e58ab26b99e7106ebf329caed872c407cc543ac5a3b238c21a05fec7df3eafe241e2b80d65c350e4ef12d79ab02ddffa3a36858@44.203.136.195:30304", + "enode://aeaf883dbb2fa7c7740218617e58ab26b99e7106ebf329caed872c407cc543ac5a3b238c21a05fec7df3eafe241e2b80d65c350e4ef12d79ab02ddffa3a36858@44.203.136.195:52882", + "enode://b08bdc6adb902f31e2525753a40c32a37f58f56687ee5e3927bf6293c116961b78ca8d7adc3e108ebbdd1afd18726ef1b220e8e85eed4d304b492d5bae5b0733@63.251.15.90:18210", + "enode://b08bdc6adb902f31e2525753a40c32a37f58f56687ee5e3927bf6293c116961b78ca8d7adc3e108ebbdd1afd18726ef1b220e8e85eed4d304b492d5bae5b0733@63.251.15.90:18211", + "enode://b08bdc6adb902f31e2525753a40c32a37f58f56687ee5e3927bf6293c116961b78ca8d7adc3e108ebbdd1afd18726ef1b220e8e85eed4d304b492d5bae5b0733@63.251.15.90:18212", + "enode://b3dfc39c2e1e1ad490918f70c543e03342e198fc065c730af91b8a5f9b42be062834db9510187f09e3bd7f610f7ee0a6f7c88450e8a7cb11a126fc4bff6d0cab@132.145.247.198:30303", + "enode://b4fefeb40f792b7801abcee9bdd923c6e3e95942c7bc5d84f100dccdba286f19d3e348fc1c43b5e06047a4309ea80d25760b774c276dfb957059e0c0e53ceef0@185.209.82.99:43490", + "enode://b5d425bb096f11a7534971a909c678eec5c73db99cc5efbb780604bf25815e53310033a3064cebaf5a1947c89c7ae6e96c2e8400adee451fd881c19b3b373480@18.222.63.154:30303?discport=65201", + "enode://b5dea509e0a6576bc0367d3aec4f5e7b0ed29499220c41e4d3ff675e587ed2b705ccbd2ceae7936a21546cbbfbcdcc17ee91564bbf24907e031ce1a8abfd1572@34.198.224.121:35417", + "enode://b611b092d7781accb1d5b0e4ce7e0495ef51141e856fc52d173b0b801e6275cffd75293781d1db242272391de2add28f704081a4763d81d5a24f52f88a2d4be0@144.91.122.225:30303", + "enode://b6775f9de5761c5cf80089b02548ee4ffd7fb2d57bc081e98d1612002fcc50177fbe9227b7792ac5c8ff1279453aa26ea12fec995085713ae2a3759f4d0f65dc@157.90.106.242:53840", + "enode://b91df1df535c146bba2ca9247e59e1cbac75853cb3e049c2f6bc1c56a8790dc3047b282ceb7dbed91135699fdae3c5bf0717d3175bb1d4867d7856368a76a9b4@129.80.203.98:30303", + "enode://b91df1df535c146bba2ca9247e59e1cbac75853cb3e049c2f6bc1c56a8790dc3047b282ceb7dbed91135699fdae3c5bf0717d3175bb1d4867d7856368a76a9b4@129.80.203.98:30303", + "enode://ba1251300edd654c13bcc09c3610e9b8adf50f08b9753760c3a1398696972040b9f6bbfab08f3e3267e1db7b8d48f377004509dee022ca33057d826918bd9029@103.106.59.6:23167", + "enode://ba14b89f96fbdf046597396493ce687df032417459c1ce4e71abac72fe9473962d96ec74318dc0bfa2336381185a47da5d36f9996d680b3df669f595778de605@15.235.10.151:30313", + "enode://ba14b89f96fbdf046597396493ce687df032417459c1ce4e71abac72fe9473962d96ec74318dc0bfa2336381185a47da5d36f9996d680b3df669f595778de605@15.235.10.151:38088", + "enode://ba753754ac64310e94bf2e39f208b57370401aa7073af96bf3478299f5ca3f905107985b97029f717f66ca52aa661fab576f42740192c13598eff1020159318f@54.175.27.209:43651", + "enode://bb16d4b94113833539b902acf4a45ffdfada715528f34aaa1cad31965117997ea81ccc121fb2d9512ea92365448926241ee5e327149f878ccf5347c392b683bd@44.193.10.210:55176", + "enode://bb217923f38ebc93b15989b4313485dc9b5205335a60ad69b99d8dd058c196e0928091c0345ab63e4af345d8a6fddaab704292eacbff3aa60e5d32186bece239@54.159.27.246:30304", + "enode://bc7ba85976d8dc3734da82d0c448069264e1d384c3f5ebcf5c73cb4a7b0fdf563207c3a939cf6828d33e535a35ea49d529c3b8582bada6fcd14e2949752e5c6d@144.91.64.35:30303", + "enode://bdccc3d51ebd46b6e8b73fb19d7f987acb79f34b3ae867778fa3b98e71e04c86ba2ffe3427be5c03ad07cc0054b75160dcc87efd19672f2115e31e5c09e8379c@66.18.13.163:30303", + "enode://be7b2b5f15e6bc71ee2765118055154f0ae6c568e85b2c49145d1d9df00944da029181a3c8490352d1dc5b107ddce78914955501ede82cd2c800fd700eeb72e4@147.135.31.203:30303", + "enode://bfd0f932fb352a1cccbef0e4304996f9b39f024396300d96c8d84e876058c07b88dae2e1f9e04b9170e89726ec54dd407152536b60dc43e1bd5a16eb1080788e@54.228.163.150:30303", + "enode://c017860de48a2a23ad86fa86e2bfcf73fa920bfc5c5379883a752beb0e8d0a206ae1749e053bb3131ff895991e8125c6af6863deb6e298e84a74f32ed9eb5277@34.84.31.214:36088", + "enode://c017860de48a2a23ad86fa86e2bfcf73fa920bfc5c5379883a752beb0e8d0a206ae1749e053bb3131ff895991e8125c6af6863deb6e298e84a74f32ed9eb5277@35.221.116.119:52204", + "enode://c03dbbf8f2e14098e452ae5f3526e2762e9189ef5a7adbc5d1ec91accf7d2dd5272a8a86f72521d4cea96b5a31b150f91746d9ce58ebbd4c37ba8c7c0bc5c05b@150.136.112.65:30303", + "enode://c0b59c590fd04467d43e7dd755de4588dd5afb344451eb01ae03d30a4923175d6312144a15794a404f78c604c7fc708c3413076e41157ae1ca0330f579903e32@89.168.91.64:30303", + "enode://c0b59c590fd04467d43e7dd755de4588dd5afb344451eb01ae03d30a4923175d6312144a15794a404f78c604c7fc708c3413076e41157ae1ca0330f579903e32@89.168.91.64:30303", + "enode://c0c3afdcada45e79d5413d7cf9a8a465dccb30f599f516c5e3b70daf4cecad8ad1dcea193dd36b96b9c5e95d818586c841b373e505dad1ccc84e240915a6ea9b@62.12.164.254:15325", + "enode://c0c3afdcada45e79d5413d7cf9a8a465dccb30f599f516c5e3b70daf4cecad8ad1dcea193dd36b96b9c5e95d818586c841b373e505dad1ccc84e240915a6ea9b@62.12.164.254:32618", + "enode://c14b05bab1d7ae9c804cadceb22f332a18909fffabc12ede88c10c41103edd909eb7f8675e5b57cbbfacb9a419392e21fd00d796fe3f629d9f95a34765543536@54.81.98.230:30304", + "enode://c14b05bab1d7ae9c804cadceb22f332a18909fffabc12ede88c10c41103edd909eb7f8675e5b57cbbfacb9a419392e21fd00d796fe3f629d9f95a34765543536@54.81.98.230:41322", + "enode://c14b05bab1d7ae9c804cadceb22f332a18909fffabc12ede88c10c41103edd909eb7f8675e5b57cbbfacb9a419392e21fd00d796fe3f629d9f95a34765543536@54.81.98.230:60914", + "enode://c3c06cc8ca743c32dc78584d6043372239923c4af1749ae8f65ac43ced289282da002f4d9c37833d14828004426b91bb5edee65be256917c80944807d1041597@40.115.211.154:30303", + "enode://c3f1051d3e226221b7ec8b45b5195b4c2c6c96ed216c64c83f0a2255a5003f330e34e96ac5928f608127eb67896226a3fd1e0e30e69519cf87a73212f2d9620b@44.240.230.67:58276", + "enode://c3f1051d3e226221b7ec8b45b5195b4c2c6c96ed216c64c83f0a2255a5003f330e34e96ac5928f608127eb67896226a3fd1e0e30e69519cf87a73212f2d9620b@44.240.230.67:7175", + "enode://c4ad0fc7abb288c0156ae7f98f7d73eb0431b1863d270ebacba2edbd620da85d6681f59e5a99d0ea12ffdd37c844d3c873e5f343780769d53bb39fa2c4960a7a@169.155.170.17:46600", + "enode://c6ca003916e2675beeeee70221642cd43117f62c353a2de7054f8c52296b783e6a884f02aae50f40357c2bbdac715aa0e355caa3c13d44107c8f9041ea0a243b@141.144.195.33:58904", + "enode://c857b7da987063d7e6bb5d2f3cdb1a0ea0f496863cebf55206abe759c60f759f6746484a249d0afb05bcfc886e40c7a163d165c9cf1618fb4df2d3deae12f8f2@136.144.63.129:30303", + "enode://c957d2bc31f6ccdc4f53285f52363cc8edc73872f2cac480a80ffad9451ffc9413d24227f5c0f15569d0180503a3f5ac6b10d51f5627912d0078490ccfdb38ba@35.187.60.60:30303", + "enode://c9f85b0ba65d250115b2f50e9ab8646e00fba7421dcaaca0205feed3ca7bf00d8f70bc6493de0869d747a4093324851a5a8170453b5dd26bb31d2a22f9342118@51.81.184.9:30018", + "enode://c9f85b0ba65d250115b2f50e9ab8646e00fba7421dcaaca0205feed3ca7bf00d8f70bc6493de0869d747a4093324851a5a8170453b5dd26bb31d2a22f9342118@51.81.184.9:46418", + "enode://ca78548ddc1905b2f3979bd56d94f123e48c3e2556c0a44dd757c895e7e5fe597eff871e9c7a95a4c71164c7e5634848e99e5ca4776b5c9111b21ba751c820b9@107.6.112.166:18220", + "enode://cb630ba1544f2c001db5a7513b7eb49ddd15185935e8087670ece0f85d2ccae043c32c4c5eaffb328caa9d913dbe5a98f0fa864944ee60e62929935ac6a19aad@34.245.102.222:1372", + "enode://cda43440a3b12124a28e0a9aeb18377ee764510457ec9143435fd21b7faa99c79b7925469266feac77f28cc719793f503a033ae8cc0585ee15e1acf6f7df8ac9@74.118.139.205:44640", + "enode://cf8eb1893e07cecfbfb7d13714a0c80831824da1367216faabcee69bd273c246a73537bc8cf4d507bcbf2411c410ec8c052a0f1bbc8880c612a980be4970e3d5@3.209.128.173:17265", + "enode://d06fe32a28c8ac962aa2a6afd1b2fc2943c6174ca1db8d6e43b17d14cfae1f5e09f350a4a55a0221c28a91fdb8d876e14241350dbb5a74ff2faa9f07c8bdad32@18.141.115.121:29188", + "enode://d210e95cca01a51da93a7a386b08e16f2fdc1f685b92ce4c36cf263d89764d8a4240e573e4276862b83550cb375781b157b16b2b35f8faba49814465e2722923@206.72.199.150:31330", + "enode://d26253af13ef20aeba3daa6b433cc90f85f73662a0ab588cb35e60ed2a42efcf67f727dc6dbe38eeb02cbdf66aff2200ffd0711ad765ee86025a4f77ad377263@65.109.95.210:20438", + "enode://d26253af13ef20aeba3daa6b433cc90f85f73662a0ab588cb35e60ed2a42efcf67f727dc6dbe38eeb02cbdf66aff2200ffd0711ad765ee86025a4f77ad377263@65.109.95.210:50437", + "enode://d49eb9f5ec890f9199f1aede07ac856cfc4e4e85915497e6d1a39311d3251ff860ab55298fe6990f66c2d8d6b8c3bf6e35cb11e4f560a2e72d94fb680154bc50@18.206.171.222:30303?discport=55618", + "enode://d54c0b6d456068469d157264664583167b77ddb17f607971ed2bea0928046eafab95d4f7d19e74c14c17299ae85c386cd245b1be93a862ac6ab87ae24e851750@51.81.244.9:30304", + "enode://d5726d305200281ee7997c140b9f342351b82875e3b1814195b4661a9d55b753258e1520bd19cd14968a5a1b585bb3afe2840fd4af15dd96db6dfc4c97165434@129.80.98.224:30303", + "enode://d5726d305200281ee7997c140b9f342351b82875e3b1814195b4661a9d55b753258e1520bd19cd14968a5a1b585bb3afe2840fd4af15dd96db6dfc4c97165434@129.80.98.224:30303", + "enode://d5c710b9d4cb70987c9fdfee062a04f11e712f16d0f29b1cec1f08cf13221290a147f0e9aef4a650cbc6220a6c307c1ae35d22859fc6eb016c24fad38dff2345@69.4.239.33:18220", + "enode://d5c710b9d4cb70987c9fdfee062a04f11e712f16d0f29b1cec1f08cf13221290a147f0e9aef4a650cbc6220a6c307c1ae35d22859fc6eb016c24fad38dff2345@69.4.239.33:18222", + "enode://d70e68870971938d59021cb960b93f8b6b0a785e5412dde0fa1a04dade74ab1086853c48857abad5a6018f0897c8ef0c149c13e15c227dffc9471d97a0b33543@185.127.231.90:44472", + "enode://d79ad3cdc2fc834964c749f02029d99c904896d298ccd9ed2185305ea1dc76642dcb1ce09636b229160da4150617542cc17fa070cefc2a6e3c1913c241351015@3.93.64.78:30303", + "enode://d81e825e24312a2561740889cc320cfa2d217310b4c358b93a2e6595923d41c897219d22d3f26391c5a19982a743f84801765bb615bf33f9f52fb98c438f01ca@54.172.75.221:30304", + "enode://d81e825e24312a2561740889cc320cfa2d217310b4c358b93a2e6595923d41c897219d22d3f26391c5a19982a743f84801765bb615bf33f9f52fb98c438f01ca@54.172.75.221:30304", + "enode://d81e825e24312a2561740889cc320cfa2d217310b4c358b93a2e6595923d41c897219d22d3f26391c5a19982a743f84801765bb615bf33f9f52fb98c438f01ca@54.172.75.221:51928", + "enode://d9138ffcd8ad3d279321d5e0f1257104696603724350ed222cfdec6254510e03e53598374eaa4ab26156708e4a7a18e136e987a0d6edad2fdf674484264ba1d8@107.6.113.60:18210", + "enode://d9138ffcd8ad3d279321d5e0f1257104696603724350ed222cfdec6254510e03e53598374eaa4ab26156708e4a7a18e136e987a0d6edad2fdf674484264ba1d8@107.6.113.60:18212", + "enode://d9138ffcd8ad3d279321d5e0f1257104696603724350ed222cfdec6254510e03e53598374eaa4ab26156708e4a7a18e136e987a0d6edad2fdf674484264ba1d8@107.6.113.60:44016", + "enode://dc3c2b96c782a6b699f70b0d7924cd347721fc9aaebbd94ae7f90493c4165b0b85ae33cfdd09b0bec8c2a50b56e10c8a59c9a2d54f650a1a2dcb1c8c4cfe039d@3.82.42.100:30303", + "enode://de235005f7482ed51b932f0bbe151b22aa20e123a39919cfa92e9471556e41db77ab6630a547853e42214fbcc20c95ac41d171fc53b73a138ae57ece282e08c5@176.9.148.15:30303", + "enode://de235005f7482ed51b932f0bbe151b22aa20e123a39919cfa92e9471556e41db77ab6630a547853e42214fbcc20c95ac41d171fc53b73a138ae57ece282e08c5@176.9.148.15:30303", + "enode://e119b183e7bfb8de52a44ce686df13045faed1198e4fb03b81b22e323c8ee54706627276218d34829181fd97a2175974a1b48995af66c2fc8dd66f7655a1c9b7@52.221.179.246:30303", + "enode://e119b183e7bfb8de52a44ce686df13045faed1198e4fb03b81b22e323c8ee54706627276218d34829181fd97a2175974a1b48995af66c2fc8dd66f7655a1c9b7@52.221.179.246:54404", + "enode://e24615a26d9690aaf395c2861031fc550c260da4bb147ea4c8d80406343be22a79053bf1dae4b6f20a47b0bd90b30566f9717f5fc6926e225d7ca025ed085b80@130.61.44.105:30303", + "enode://e31a84d94250071b4bff8d0375eb9423c041b8b9e3d75a8b1b3d13f20f489c44293e2ff7d5f2a82f86f7d24f7e4f479edc2bc29909a938665dcee8cde2040e01@18.140.239.111:30303", + "enode://e36d0c159ab988de250def88cacf56b644e9c35b1d650d5eeb6a3e92a1195f105f9f15e22dfccf1319f2c3d4446c9a3ca5c2b49813f0fb9d34023c92c89c2f7e@44.200.232.251:30303", + "enode://e4d7ee9431c64db127a318e35e94e6f1df2db1c2cacac19553392db9a364f6f8ac23e6276a97140c33b433fa23e5fb3c98c7e74ac410f89f19861a2f151558d8@129.153.225.118:15664", + "enode://e4d7ee9431c64db127a318e35e94e6f1df2db1c2cacac19553392db9a364f6f8ac23e6276a97140c33b433fa23e5fb3c98c7e74ac410f89f19861a2f151558d8@129.153.225.118:30303", + "enode://e5288ffc744c30fa13a7cffedfd004c0c01feb0cee4a9883ca8e3fec9515e6bd4ea4086661c01e6f16c00a585166be98fd3d0c10600fb8e23cfa80526965a371@94.16.108.194:37777", + "enode://e5288ffc744c30fa13a7cffedfd004c0c01feb0cee4a9883ca8e3fec9515e6bd4ea4086661c01e6f16c00a585166be98fd3d0c10600fb8e23cfa80526965a371@94.16.108.194:37777", + "enode://e53eb22d4e28d1ebc0e18e871c4f3aec3ce719c7dd7086670620508f0c7424ac104fe2bcf35fb23e3226f2b04365e59e469cc71488138382d9a307b682e698dc@18.234.158.102:30303", + "enode://e54f56b9caedb9034aa3e37d00b4161d0438b0bb9abef0b6b1f00991e690f0ac2b64543698245f93d47d1d85d647e37f617e04adb9cb78d0bafa0e348ee19c79@13.209.198.123:30303", + "enode://e5e46812e7442d1540f9bc9aafa5e910ea84c425659fb32a0ce9f4c9914b8958a4a93a06e22b59ca9fbb3a4a00b7a3a3607e07a17e9e333ed6325ea121c8b88c@95.217.112.102:58856", + "enode://e60acc5c53660f25b7ea664390b704e8b7b797eb8d4fab4e70b09c3311c03544739a8822518654c9617ba48aef15ca1177844fd99e54b7d35dac85648e941061@220.85.113.44:30303", + "enode://e60acc5c53660f25b7ea664390b704e8b7b797eb8d4fab4e70b09c3311c03544739a8822518654c9617ba48aef15ca1177844fd99e54b7d35dac85648e941061@220.85.113.44:50834", + "enode://e6565c81eb11219251292690a19c235035a2f021356d9c2b269e312723901af9eaeb2a5ebc6fcd8479f2283929bbe44b2740f36e6819c366b63bdcc6fb672ec4@150.230.173.49:30303", + "enode://e6565c81eb11219251292690a19c235035a2f021356d9c2b269e312723901af9eaeb2a5ebc6fcd8479f2283929bbe44b2740f36e6819c366b63bdcc6fb672ec4@150.230.173.49:40138", + "enode://e99d10cf22a92cedb7fefd4db917e90a5f15d2a14890cfaacfbe74d868977c2299a29a7ae22c69a2e03ee0969862b284bf59a0ffa896ab7e46b494c805932c1b@193.122.62.242:16092", + "enode://e99d10cf22a92cedb7fefd4db917e90a5f15d2a14890cfaacfbe74d868977c2299a29a7ae22c69a2e03ee0969862b284bf59a0ffa896ab7e46b494c805932c1b@193.122.62.242:30303", + "enode://e9f28353b13a503890cd2bdeb66414c8c71c517f147ec5b1c05338b1611f7aa7989b30f5f78197aeaf1e6304e3d11db017907e56bfc479ac531413e651c23120@3.81.44.106:33628", + "enode://e9f28353b13a503890cd2bdeb66414c8c71c517f147ec5b1c05338b1611f7aa7989b30f5f78197aeaf1e6304e3d11db017907e56bfc479ac531413e651c23120@54.227.15.85:41816", + "enode://f02a4b13b48aa3a9e2b5e502c6f1734b0b37d67f94cf63179b29ffcd3320ec28f6f518a30e290e2880943676f1c0d3bc487caa0081ae6dd6cf398fe2fbf8123e@77.140.42.76:34318", + "enode://f1851b4e183ca59493aa9426953b2f498f96b8f6e74e2aad8f97454ef05b9fabdd2524714099a2f3694556a1b9bd6c10818d0a8d2044b61f3b36a961868936fd@18.176.246.44:30303", + "enode://f3b8549e7f372bdbe0541c6afab80689e26d85d2ae0e2a5831e8c5b211bf077129b148bbd7d74ad5fb29a3dde4756485ba3a2acf1e4d4c4587a68535fa5cf6f6@150.136.254.118:30303", + "enode://f4aa9d0ff1e54c3984600bcde3d51827dda94d3de55f1cff2fb1b097a74453a10c06d732ce7f29b93c31c9cd6aae79e29c610cb5ef81b499295675faa06ce544@103.141.171.130:30303", + "enode://f63c87e4e05bde84e744987dfee560adb3246d3aa4de13f7ecaa73f0fa030495cf0055bfd7e4e22a2a2f3fca68508833ba3327e46b01933d3302aadf852de367@216.66.68.49:30300", + "enode://f63c87e4e05bde84e744987dfee560adb3246d3aa4de13f7ecaa73f0fa030495cf0055bfd7e4e22a2a2f3fca68508833ba3327e46b01933d3302aadf852de367@216.66.68.49:30300", + "enode://f785120a717ec30d97943bc3e817b87c6a3f28c4d789f431c56fc4601542af358bb495c626393d3205425e7352dbd117b0bbdb17c1bed990787c9d8a4f6eeeb0@54.205.14.16:30303", + "enode://f785120a717ec30d97943bc3e817b87c6a3f28c4d789f431c56fc4601542af358bb495c626393d3205425e7352dbd117b0bbdb17c1bed990787c9d8a4f6eeeb0@54.205.14.16:30304", + "enode://f83529868670e4f685d79bb040aa9a60e64c341534956f3c26dc338bd84c86a1bf026bbbb08d3d6103167b75175ddacf00a648498d9911a29c9591b071a435c0@94.152.214.4:30305", + "enode://f8405f65f0eb1eeb21454bfffd7b7244840e648d4f3ea7d4463a134c41953fdc32ad83285bcd4af194626cea540789266cd535dfed2eceaabbe748fda075e203@3.213.8.33:57583", + "enode://f8a6386df0fb0592ff0036e226d007804e1bb1f66e62f7703b3815b8c1a7e1d0073ae215a07e73f246d368d48e1f34316ced9b571ea9549e0b2c56d97a9e1834@63.251.232.124:18220", + "enode://f8a6386df0fb0592ff0036e226d007804e1bb1f66e62f7703b3815b8c1a7e1d0073ae215a07e73f246d368d48e1f34316ced9b571ea9549e0b2c56d97a9e1834@63.251.232.124:18222", + "enode://f8a6386df0fb0592ff0036e226d007804e1bb1f66e62f7703b3815b8c1a7e1d0073ae215a07e73f246d368d48e1f34316ced9b571ea9549e0b2c56d97a9e1834@63.251.232.124:18222", + "enode://f99636ee96b4939e18f79e1018b5cdfee7165f98a766388482cc25f27c487b9aa136a8f76b57fe9ba7591cba89c3c00702f320a2c27061284facb91cc1582759@54.195.45.74:60604", + "enode://fa4e25259a90b1975497d64cebc4805016830f90bf212a63e259b770bfd8f74d0334a8ca5099b9c80533f8e694d6e18d4ec68f33b45260fe3e575990d66f50e0@129.213.94.45:30303", + "enode://fb22bfffeb8dddcd1322827d98939ab7da8de2258d4d18a73def100ee47faa4649a6c2604e2bdcef56a4a8c2ae360bc2ae58b2d75a614e06cb131b682e194821@195.191.219.107:30303", + "enode://fb56c9e0b0beceaf05ac459269ea0958c621316c29f233dfb1532adc4cf0e94d3391aba2e38d46e7a8971235dd0d07a10f48996f42d86ba577779a2daa26cec2@155.248.194.46:59694", + "enode://fd83a8d55121389b5676dde6173c9575eb71d60d07af01afc213f5c52656e7c3d590c7571ea76c2e917f55070db387b39d81c3d99f02c94cd4bcfbb55fb800ca@135.181.164.15:30303", +} diff --git a/params/chainspecs/amoy.json b/params/chainspecs/amoy.json new file mode 100644 index 00000000000..64c5f51b21d --- /dev/null +++ b/params/chainspecs/amoy.json @@ -0,0 +1,44 @@ +{ + "ChainName": "amoy", + "chainId": 80002, + "consensus": "bor", + "homesteadBlock": 0, + "eip150Block": 0, + "eip155Block": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "istanbulBlock": 0, + "muirGlacierBlock": 0, + "berlinBlock": 0, + "londonBlock": 73100, + "burntContract": { + "0": "0x000000000000000000000000000000000000dead", + "73100": "0xeCDD77cE6f146cCf5dab707941d318Bd50eeD2C9" + }, + "bor": { + "period": { + "0": 2 + }, + "producerDelay": { + "0": 4 + }, + "sprint": { + "0": 16 + }, + "backupMultiplier": { + "0": 2 + }, + "stateSyncConfirmationDelay": { + "0": 128 + }, + "validatorContract": "0x0000000000000000000000000000000000001000", + "stateReceiverContract": "0x0000000000000000000000000000000000001001", + "overrideStateSyncRecords": null, + "jaipurBlock": 73100, + "delhiBlock": 73100, + "indoreBlock": 73100, + "agraBlock": 73100 + } + } + \ No newline at end of file diff --git a/params/chainspecs/bor-devnet.json b/params/chainspecs/bor-devnet.json index 3f4c306f690..e41007f9535 100644 --- a/params/chainspecs/bor-devnet.json +++ b/params/chainspecs/bor-devnet.json @@ -12,8 +12,10 @@ "muirGlacierBlock": 0, "berlinBlock": 0, "londonBlock": 0, - "eip1559FeeCollectorTransition": 23850000, - "eip1559FeeCollector": "0x70bca57f4579f58670ab2d18ef16e02c17553c38", + "burntContract": { + "22640000": "0x70bcA57F4579f58670aB2d18Ef16e02C17553C38", + "41874000": "0x617b94CCCC2511808A3C9478ebb96f455CF167aA" + }, "bor": { "period": { "0": 2 @@ -22,7 +24,7 @@ "0": 4 }, "sprint": { - "0":16 + "0": 16 }, "backupMultiplier": { "0": 5 @@ -33,16 +35,22 @@ "validatorContract": "0x0000000000000000000000000000000000001000", "stateReceiverContract": "0x0000000000000000000000000000000000001001", "blockAlloc": { - "30": { + "0": { "0000000000000000000000000000000000001010": { "balance": "0x0", "code": "0x60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611546565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154c565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b348015610b2e57600080fd5b50610b376115f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161c90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da76023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163c90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d846023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165b565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600181526020017f890000000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611753565b90505b92915050565b6040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b10565b611be6565b9050949350505050565b608981565b60015481565b604051806080016040528060528152602001611dca605291396040516020018082805190602001908083835b6020831061159b5780518252602082019150602081019050602083039250611578565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e1611381565b6115ea57600080fd5b6115f38161165b565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162b57600080fd5b600082840390508091505092915050565b60008082840190508381101561165157600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d60208110156118b957600080fd5b810190808051906020019092919050505090506118d7868686611c30565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d6020811015611ac157600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b60208310611b625780518252602082019150602081019050602083039250611b3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d18573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820a4a6f71a98ac3fc613c3a8f1e2e11b9eb9b6b39f125f7d9508916c2b8fb02c7164736f6c63430005100032" } + }, + "41874000": { + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061005e576000357c01000000000000000000000000000000000000000000000000000000009004806319494a17146100635780633434735f146100fe5780635407ca6714610148575b600080fd5b6100e46004803603604081101561007957600080fd5b8101908080359060200190929190803590602001906401000000008111156100a057600080fd5b8201836020820111156100b257600080fd5b803590602001918460018302840111640100000000831117156100d457600080fd5b9091929391929390505050610166565b604051808215151515815260200191505060405180910390f35b6101066104d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101506104eb565b6040518082815260200191505060405180910390f35b600073fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f742053797374656d2041646465737321000000000000000000000000000081525060200191505060405180910390fd5b606061027461026f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506104f1565b61051f565b905060006102958260008151811061028857fe5b60200260200101516105fc565b90508060016000540114610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f537461746549647320617265206e6f742073657175656e7469616c000000000081525060200191505060405180910390fd5b600080815480929190600101919050555060006103418360018151811061033457fe5b602002602001015161066d565b905060606103628460028151811061035557fe5b6020026020010151610690565b905061036d8261071c565b156104c8576000624c4b409050606084836040516024018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103c75780820151818401526020810190506103ac565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f26c53bea000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008082516020840160008887f19650847f5a22725590b0a51c923940223f7458512164b1113359a735e86e7f27f44791ee88604051808215151515815260200191505060405180910390a250505b505050509392505050565b73fffffffffffffffffffffffffffffffffffffffe81565b60005481565b6104f961099c565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061052a82610735565b61053357600080fd5b600061053e83610783565b905060608160405190808252806020026020018201604052801561057c57816020015b6105696109b6565b8152602001906001900390816105615790505b509050600061058e85602001516107f4565b8560200151019050600080600090505b848110156105ef576105af8361087d565b91506040518060400160405280838152602001848152508482815181106105d257fe5b60200260200101819052508183019250808060010191505061059e565b5082945050505050919050565b600080826000015111801561061657506021826000015111155b61061f57600080fd5b600061062e83602001516107f4565b9050600081846000015103905060008083866020015101905080519150602083101561066157826020036101000a820491505b81945050505050919050565b6000601582600001511461068057600080fd5b610689826105fc565b9050919050565b606060008260000151116106a357600080fd5b60006106b283602001516107f4565b905060008184600001510390506060816040519080825280601f01601f1916602001820160405280156106f45781602001600182028038833980820191505090505b5090506000816020019050610710848760200151018285610935565b81945050505050919050565b600080823b905060008163ffffffff1611915050919050565b6000808260000151141561074c576000905061077e565b60008083602001519050805160001a915060c060ff168260ff1610156107775760009250505061077e565b6001925050505b919050565b6000808260000151141561079a57600090506107ef565b600080905060006107ae84602001516107f4565b84602001510190506000846000015185602001510190505b808210156107e8576107d78261087d565b8201915082806001019350506107c6565b8293505050505b919050565b600080825160001a9050608060ff16811015610814576000915050610878565b60b860ff16811080610839575060c060ff168110158015610838575060f860ff1681105b5b15610848576001915050610878565b60c060ff168110156108685760018060b80360ff16820301915050610878565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff1681101561089e576001915061092b565b60b860ff168110156108bb576001608060ff16820301915061092a565b60c060ff168110156108eb5760b78103600185019450806020036101000a85510460018201810193505050610929565b60f860ff1681101561090857600160c060ff168203019150610928565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b600081141561094357610997565b5b602060ff1681106109735782518252602060ff1683019250602060ff1682019150602060ff1681039050610944565b6000600182602060ff16036101000a03905080198451168184511681811785525050505b505050565b604051806040016040528060008152602001600081525090565b60405180604001604052806000815260200160008152509056fea265627a7a723158208f1ea6fcf63d6911ac5dbfe340be1029614581802c6a750e7d6354b32ce6647c64736f6c63430005110032" + } } }, "jaipurBlock": 0, - "delhiBlock":0, - "calcuttaBlock": 30, - "indoreBlock": 0 + "delhiBlock": 0, + "indoreBlock": 0, + "agraBlock": 100 } } diff --git a/params/chainspecs/bor-mainnet.json b/params/chainspecs/bor-mainnet.json index baf0dc4b9aa..31bfe8da041 100644 --- a/params/chainspecs/bor-mainnet.json +++ b/params/chainspecs/bor-mainnet.json @@ -12,8 +12,10 @@ "muirGlacierBlock": 3395000, "berlinBlock": 14750000, "londonBlock": 23850000, - "eip1559FeeCollectorTransition": 23850000, - "eip1559FeeCollector": "0x70bca57f4579f58670ab2d18ef16e02c17553c38", + "burntContract": { + "23850000": "0x70bca57f4579f58670ab2d18ef16e02c17553c38", + "50523000": "0x7A8ed27F4C30512326878652d20fC85727401854" + }, "bor": { "period": { "0": 2 @@ -51,11 +53,17 @@ "balance": "0x0", "code": "0x60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611546565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154c565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115d9565b005b348015610b2e57600080fd5b50610b376115f6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161c90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da76023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163c90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d846023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165b565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600181526020017f890000000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611753565b90505b92915050565b6040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b10565b611be6565b9050949350505050565b608981565b60015481565b604051806080016040528060528152602001611dca605291396040516020018082805190602001908083835b6020831061159b5780518252602082019150602081019050602083039250611578565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e1611381565b6115ea57600080fd5b6115f38161165b565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162b57600080fd5b600082840390508091505092915050565b60008082840190508381101561165157600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d357600080fd5b505afa1580156117e7573d6000803e3d6000fd5b505050506040513d60208110156117fd57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d60208110156118b957600080fd5b810190808051906020019092919050505090506118d7868686611c30565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119df57600080fd5b505afa1580156119f3573d6000803e3d6000fd5b505050506040513d6020811015611a0957600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9757600080fd5b505afa158015611aab573d6000803e3d6000fd5b505050506040513d6020811015611ac157600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1c605b91396040516020018082805190602001908083835b60208310611b625780518252602082019150602081019050602083039250611b3f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d18573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820a4a6f71a98ac3fc613c3a8f1e2e11b9eb9b6b39f125f7d9508916c2b8fb02c7164736f6c63430005100032" } + }, + "50523000": { + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061005e576000357c01000000000000000000000000000000000000000000000000000000009004806319494a17146100635780633434735f146100fe5780635407ca6714610148575b600080fd5b6100e46004803603604081101561007957600080fd5b8101908080359060200190929190803590602001906401000000008111156100a057600080fd5b8201836020820111156100b257600080fd5b803590602001918460018302840111640100000000831117156100d457600080fd5b9091929391929390505050610166565b604051808215151515815260200191505060405180910390f35b6101066104d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101506104eb565b6040518082815260200191505060405180910390f35b600073fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f742053797374656d2041646465737321000000000000000000000000000081525060200191505060405180910390fd5b606061027461026f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506104f1565b61051f565b905060006102958260008151811061028857fe5b60200260200101516105fc565b90508060016000540114610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f537461746549647320617265206e6f742073657175656e7469616c000000000081525060200191505060405180910390fd5b600080815480929190600101919050555060006103418360018151811061033457fe5b602002602001015161066d565b905060606103628460028151811061035557fe5b6020026020010151610690565b905061036d8261071c565b156104c8576000624c4b409050606084836040516024018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103c75780820151818401526020810190506103ac565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f26c53bea000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008082516020840160008887f19650847f5a22725590b0a51c923940223f7458512164b1113359a735e86e7f27f44791ee88604051808215151515815260200191505060405180910390a250505b505050509392505050565b73fffffffffffffffffffffffffffffffffffffffe81565b60005481565b6104f961099c565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061052a82610735565b61053357600080fd5b600061053e83610783565b905060608160405190808252806020026020018201604052801561057c57816020015b6105696109b6565b8152602001906001900390816105615790505b509050600061058e85602001516107f4565b8560200151019050600080600090505b848110156105ef576105af8361087d565b91506040518060400160405280838152602001848152508482815181106105d257fe5b60200260200101819052508183019250808060010191505061059e565b5082945050505050919050565b600080826000015111801561061657506021826000015111155b61061f57600080fd5b600061062e83602001516107f4565b9050600081846000015103905060008083866020015101905080519150602083101561066157826020036101000a820491505b81945050505050919050565b6000601582600001511461068057600080fd5b610689826105fc565b9050919050565b606060008260000151116106a357600080fd5b60006106b283602001516107f4565b905060008184600001510390506060816040519080825280601f01601f1916602001820160405280156106f45781602001600182028038833980820191505090505b5090506000816020019050610710848760200151018285610935565b81945050505050919050565b600080823b905060008163ffffffff1611915050919050565b6000808260000151141561074c576000905061077e565b60008083602001519050805160001a915060c060ff168260ff1610156107775760009250505061077e565b6001925050505b919050565b6000808260000151141561079a57600090506107ef565b600080905060006107ae84602001516107f4565b84602001510190506000846000015185602001510190505b808210156107e8576107d78261087d565b8201915082806001019350506107c6565b8293505050505b919050565b600080825160001a9050608060ff16811015610814576000915050610878565b60b860ff16811080610839575060c060ff168110158015610838575060f860ff1681105b5b15610848576001915050610878565b60c060ff168110156108685760018060b80360ff16820301915050610878565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff1681101561089e576001915061092b565b60b860ff168110156108bb576001608060ff16820301915061092a565b60c060ff168110156108eb5760b78103600185019450806020036101000a85510460018201810193505050610929565b60f860ff1681101561090857600160c060ff168203019150610928565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b600081141561094357610997565b5b602060ff1681106109735782518252602060ff1683019250602060ff1682019150602060ff1681039050610944565b6000600182602060ff16036101000a03905080198451168184511681811785525050505b505050565b604051806040016040528060008152602001600081525090565b60405180604001604052806000815260200160008152509056fea265627a7a723158208f1ea6fcf63d6911ac5dbfe340be1029614581802c6a750e7d6354b32ce6647c64736f6c63430005110032" + } } }, - "calcuttaBlock": 22156660, "jaipurBlock": 23850000, "delhiBlock": 38189056, - "indoreBlock": 44934656 + "indoreBlock": 44934656, + "agraBlock": 50523000 } } diff --git a/params/chainspecs/chiado.json b/params/chainspecs/chiado.json index 5a3a25dbbdf..c1f2acf4be8 100644 --- a/params/chainspecs/chiado.json +++ b/params/chainspecs/chiado.json @@ -11,11 +11,16 @@ "istanbulBlock": 0, "berlinBlock": 0, "londonBlock": 0, - "eip1559FeeCollectorTransition": 0, - "eip1559FeeCollector": "0x1559000000000000000000000000000000000000", + "burntContract": { + "0": "0x1559000000000000000000000000000000000000" + }, "terminalTotalDifficulty": 231707791542740786049188744689299064356246512, "terminalTotalDifficultyPassed": true, "shanghaiTime": 1684934220, + "minBlobGasPrice": 1000000000, + "maxBlobGasPerBlock": 262144, + "targetBlobGasPerBlock": 131072, + "blobGasPriceUpdateFraction": 1112826, "aura": { "stepDuration": 5, "blockReward": 0, diff --git a/params/chainspecs/gnosis.json b/params/chainspecs/gnosis.json index d8887899ef7..a547608954e 100644 --- a/params/chainspecs/gnosis.json +++ b/params/chainspecs/gnosis.json @@ -11,11 +11,16 @@ "istanbulBlock": 7298030, "berlinBlock": 16101500, "londonBlock": 19040000, - "eip1559FeeCollectorTransition": 19040000, - "eip1559FeeCollector": "0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92", + "burntContract": { + "19040000": "0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92" + }, "terminalTotalDifficulty": 8626000000000000000000058750000000000000000000, "terminalTotalDifficultyPassed": true, "shanghaiTime": 1690889660, + "minBlobGasPrice": 1000000000, + "maxBlobGasPerBlock": 262144, + "targetBlobGasPerBlock": 131072, + "blobGasPriceUpdateFraction": 1112826, "aura": { "stepDuration": 5, "blockReward": 0, diff --git a/params/chainspecs/holesky.json b/params/chainspecs/holesky.json new file mode 100644 index 00000000000..852beb80e3d --- /dev/null +++ b/params/chainspecs/holesky.json @@ -0,0 +1,17 @@ +{ + "chainId": 17000, + "homesteadBlock": 0, + "eip150Block": 0, + "eip155Block": 0, + "eip158Block": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "istanbulBlock": 0, + "berlinBlock": 0, + "londonBlock": 0, + "mergeForkBlock": 0, + "terminalTotalDifficulty": 0, + "terminalTotalDifficultyPassed": true, + "shanghaiTime": 1696000704 +} \ No newline at end of file diff --git a/params/chainspecs/mumbai.json b/params/chainspecs/mumbai.json index 7ac40ef9bf7..3a61eb1acd1 100644 --- a/params/chainspecs/mumbai.json +++ b/params/chainspecs/mumbai.json @@ -12,8 +12,10 @@ "muirGlacierBlock": 2722000, "berlinBlock": 13996000, "londonBlock": 22640000, - "eip1559FeeCollectorTransition": 22640000, - "eip1559FeeCollector": "0x70bcA57F4579f58670aB2d18Ef16e02C17553C38", + "burntContract": { + "22640000": "0x70bcA57F4579f58670aB2d18Ef16e02C17553C38", + "41874000": "0x617b94CCCC2511808A3C9478ebb96f455CF167aA" + }, "bor": { "period": { "0": 2, @@ -45,11 +47,17 @@ "balance": "0x0", "code": "0x60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610caa565b005b3480156103eb57600080fd5b506103f4610dfc565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e05565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fc1565b005b3480156104e857600080fd5b506104f1611090565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b506105486110b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110dc565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b506106046110fd565b005b34801561061257600080fd5b5061061b6111cd565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b50610758611358565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af611381565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de6113d8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e611411565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061144e565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b50610964611474565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b8101908080359060200190929190505050611501565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190505050611521565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65611541565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a90611548565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb61154e565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115db565b005b348015610b2e57600080fd5b50610b376115f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b60003390506000610cba826110dc565b9050610cd18360065461161e90919063ffffffff16565b600681905550600083118015610ce657508234145b610d58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610dd4876110dc565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610e0d611381565b610e1657600080fd5b600081118015610e535750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611da96023913960400191505060405180910390fd5b6000610eb3836110dc565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015610f00573d6000803e3d6000fd5b50610f168360065461163e90919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585610f98896110dc565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611027576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611d866023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061108c8261165d565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b611105611381565b61110e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b60008060008060418551146111ee5760009350505050611352565b602085015192506040850151915060ff6041860151169050601b8160ff16101561121957601b810190505b601b8160ff16141580156112315750601c8160ff1614155b156112425760009350505050611352565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561129f573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561134e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f013881000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b6000813414611460576000905061146e565b61146b338484611755565b90505b92915050565b6040518060800160405280605b8152602001611e1e605b91396040516020018082805190602001908083835b602083106114c357805182526020820191506020810190506020830392506114a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061153761153286868686611b12565b611be8565b9050949350505050565b6201388181565b60015481565b604051806080016040528060528152602001611dcc605291396040516020018082805190602001908083835b6020831061159d578051825260208201915060208101905060208303925061157a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b6115e3611381565b6115ec57600080fd5b6115f58161165d565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282111561162d57600080fd5b600082840390508091505092915050565b60008082840190508381101561165357600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561169757600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117d557600080fd5b505afa1580156117e9573d6000803e3d6000fd5b505050506040513d60208110156117ff57600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561189157600080fd5b505afa1580156118a5573d6000803e3d6000fd5b505050506040513d60208110156118bb57600080fd5b810190808051906020019092919050505090506118d9868686611c32565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119e157600080fd5b505afa1580156119f5573d6000803e3d6000fd5b505050506040513d6020811015611a0b57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a9957600080fd5b505afa158015611aad573d6000803e3d6000fd5b505050506040513d6020811015611ac357600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b6000806040518060800160405280605b8152602001611e1e605b91396040516020018082805190602001908083835b60208310611b645780518252602082019150602081019050602083039250611b41565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cd4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d1a573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a72315820ccd6c2a9c259832bbb367986ee06cd87af23022681b0cb22311a864b701d939564736f6c63430005100032" } + }, + "41874000": { + "0x0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b506004361061005e576000357c01000000000000000000000000000000000000000000000000000000009004806319494a17146100635780633434735f146100fe5780635407ca6714610148575b600080fd5b6100e46004803603604081101561007957600080fd5b8101908080359060200190929190803590602001906401000000008111156100a057600080fd5b8201836020820111156100b257600080fd5b803590602001918460018302840111640100000000831117156100d457600080fd5b9091929391929390505050610166565b604051808215151515815260200191505060405180910390f35b6101066104d3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101506104eb565b6040518082815260200191505060405180910390f35b600073fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461021d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f742053797374656d2041646465737321000000000000000000000000000081525060200191505060405180910390fd5b606061027461026f85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506104f1565b61051f565b905060006102958260008151811061028857fe5b60200260200101516105fc565b90508060016000540114610311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f537461746549647320617265206e6f742073657175656e7469616c000000000081525060200191505060405180910390fd5b600080815480929190600101919050555060006103418360018151811061033457fe5b602002602001015161066d565b905060606103628460028151811061035557fe5b6020026020010151610690565b905061036d8261071c565b156104c8576000624c4b409050606084836040516024018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103c75780820151818401526020810190506103ac565b50505050905090810190601f1680156103f45780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f26c53bea000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008082516020840160008887f19650847f5a22725590b0a51c923940223f7458512164b1113359a735e86e7f27f44791ee88604051808215151515815260200191505060405180910390a250505b505050509392505050565b73fffffffffffffffffffffffffffffffffffffffe81565b60005481565b6104f961099c565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061052a82610735565b61053357600080fd5b600061053e83610783565b905060608160405190808252806020026020018201604052801561057c57816020015b6105696109b6565b8152602001906001900390816105615790505b509050600061058e85602001516107f4565b8560200151019050600080600090505b848110156105ef576105af8361087d565b91506040518060400160405280838152602001848152508482815181106105d257fe5b60200260200101819052508183019250808060010191505061059e565b5082945050505050919050565b600080826000015111801561061657506021826000015111155b61061f57600080fd5b600061062e83602001516107f4565b9050600081846000015103905060008083866020015101905080519150602083101561066157826020036101000a820491505b81945050505050919050565b6000601582600001511461068057600080fd5b610689826105fc565b9050919050565b606060008260000151116106a357600080fd5b60006106b283602001516107f4565b905060008184600001510390506060816040519080825280601f01601f1916602001820160405280156106f45781602001600182028038833980820191505090505b5090506000816020019050610710848760200151018285610935565b81945050505050919050565b600080823b905060008163ffffffff1611915050919050565b6000808260000151141561074c576000905061077e565b60008083602001519050805160001a915060c060ff168260ff1610156107775760009250505061077e565b6001925050505b919050565b6000808260000151141561079a57600090506107ef565b600080905060006107ae84602001516107f4565b84602001510190506000846000015185602001510190505b808210156107e8576107d78261087d565b8201915082806001019350506107c6565b8293505050505b919050565b600080825160001a9050608060ff16811015610814576000915050610878565b60b860ff16811080610839575060c060ff168110158015610838575060f860ff1681105b5b15610848576001915050610878565b60c060ff168110156108685760018060b80360ff16820301915050610878565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff1681101561089e576001915061092b565b60b860ff168110156108bb576001608060ff16820301915061092a565b60c060ff168110156108eb5760b78103600185019450806020036101000a85510460018201810193505050610929565b60f860ff1681101561090857600160c060ff168203019150610928565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b600081141561094357610997565b5b602060ff1681106109735782518252602060ff1683019250602060ff1682019150602060ff1681039050610944565b6000600182602060ff16036101000a03905080198451168184511681811785525050505b505050565b604051806040016040528060008152602001600081525090565b60405180604001604052806000815260200160008152509056fea265627a7a723158208f1ea6fcf63d6911ac5dbfe340be1029614581802c6a750e7d6354b32ce6647c64736f6c63430005110032" + } } }, - "calcuttaBlock": 22244000, "jaipurBlock": 22770000, "delhiBlock": 29638656, - "indoreBlock": 37075456 + "indoreBlock": 37075456, + "agraBlock": 41874000 } } diff --git a/params/config.go b/params/config.go index 1541872cf3c..5f6c4160008 100644 --- a/params/config.go +++ b/params/config.go @@ -24,10 +24,10 @@ import ( "path" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/networkname" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/common/paths" - "github.com/ledgerwatch/erigon/params/networkname" ) //go:embed chainspecs @@ -51,9 +51,11 @@ func readChainSpec(filename string) *chain.Config { // Genesis hashes to enforce below configs on. var ( MainnetGenesisHash = libcommon.HexToHash("0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3") + HoleskyGenesisHash = libcommon.HexToHash("0xb5f7f912443c940f21fd611f12828d75b534364ed9e95ca4e307729a4661bde4") SepoliaGenesisHash = libcommon.HexToHash("0x25a5cc106eea7138acab33231d7160d69cb777ee0c2c553fcddf5138993e6dd9") GoerliGenesisHash = libcommon.HexToHash("0xbf7e331f7f7c1dd2e05159666b3bf8bc7a8a3a9eb1d518969eab529dd9b88c1a") MumbaiGenesisHash = libcommon.HexToHash("0x7b66506a9ebdbf30d32b43c5f15a3b1216269a1ec3a75aa3182b86176a2b1ca7") + AmoyGenesisHash = libcommon.HexToHash("0x7202b2b53c5a0836e773e319d18922cc756dd67432f9a1f65352b61f4406c697") BorMainnetGenesisHash = libcommon.HexToHash("0xa9c28ce2141b56c474f1dc504bee9b01eb1bd7d1a507580d5519d4437a97de1b") BorDevnetGenesisHash = libcommon.HexToHash("0x5a06b25b0c6530708ea0b98a3409290e39dce6be7f558493aeb6e4b99a172a87") GnosisGenesisHash = libcommon.HexToHash("0x4f1dd23188aab3a76b463e4af801b52b1248ef073c648cbdc4c9333d3da79756") @@ -69,6 +71,9 @@ var ( // MainnetChainConfig is the chain parameters to run a node on the main network. MainnetChainConfig = readChainSpec("chainspecs/mainnet.json") + // HoleskyChainConfi contains the chain parameters to run a node on the Holesky test network. + HoleskyChainConfig = readChainSpec("chainspecs/holesky.json") + // SepoliaChainConfig contains the chain parameters to run a node on the Sepolia test network. SepoliaChainConfig = readChainSpec("chainspecs/sepolia.json") @@ -119,6 +124,8 @@ var ( MumbaiChainConfig = readChainSpec("chainspecs/mumbai.json") + AmoyChainConfig = readChainSpec("chainspecs/amoy.json") + BorMainnetChainConfig = readChainSpec("chainspecs/bor-mainnet.json") BorDevnetChainConfig = readChainSpec("chainspecs/bor-devnet.json") @@ -191,12 +198,18 @@ func ChainConfigByChainName(chain string) *chain.Config { switch chain { case networkname.MainnetChainName: return MainnetChainConfig + case networkname.DevChainName: + return AllCliqueProtocolChanges + case networkname.HoleskyChainName: + return HoleskyChainConfig case networkname.SepoliaChainName: return SepoliaChainConfig case networkname.GoerliChainName: return GoerliChainConfig case networkname.MumbaiChainName: return MumbaiChainConfig + case networkname.AmoyChainName: + return AmoyChainConfig case networkname.BorMainnetChainName: return BorMainnetChainConfig case networkname.BorDevnetChainName: @@ -214,12 +227,16 @@ func GenesisHashByChainName(chain string) *libcommon.Hash { switch chain { case networkname.MainnetChainName: return &MainnetGenesisHash + case networkname.HoleskyChainName: + return &HoleskyGenesisHash case networkname.SepoliaChainName: return &SepoliaGenesisHash case networkname.GoerliChainName: return &GoerliGenesisHash case networkname.MumbaiChainName: return &MumbaiGenesisHash + case networkname.AmoyChainName: + return &AmoyGenesisHash case networkname.BorMainnetChainName: return &BorMainnetGenesisHash case networkname.BorDevnetChainName: @@ -237,12 +254,16 @@ func ChainConfigByGenesisHash(genesisHash libcommon.Hash) *chain.Config { switch { case genesisHash == MainnetGenesisHash: return MainnetChainConfig + case genesisHash == HoleskyGenesisHash: + return HoleskyChainConfig case genesisHash == SepoliaGenesisHash: return SepoliaChainConfig case genesisHash == GoerliGenesisHash: return GoerliChainConfig case genesisHash == MumbaiGenesisHash: return MumbaiChainConfig + case genesisHash == AmoyGenesisHash: + return AmoyChainConfig case genesisHash == BorMainnetGenesisHash: return BorMainnetChainConfig case genesisHash == BorDevnetGenesisHash: @@ -257,14 +278,44 @@ func ChainConfigByGenesisHash(genesisHash libcommon.Hash) *chain.Config { } func NetworkIDByChainName(chain string) uint64 { - switch chain { - case networkname.DevChainName: - return 1337 - default: - config := ChainConfigByChainName(chain) - if config == nil { - return 0 + config := ChainConfigByChainName(chain) + if config == nil { + return 0 + } + return config.ChainID.Uint64() +} + +func IsChainPoS(chainConfig *chain.Config, currentTDProvider func() *big.Int) bool { + return isChainIDPoS(chainConfig.ChainID) || hasChainPassedTerminalTD(chainConfig, currentTDProvider) +} + +func isChainIDPoS(chainID *big.Int) bool { + ids := []*big.Int{ + MainnetChainConfig.ChainID, + HoleskyChainConfig.ChainID, + GoerliChainConfig.ChainID, + SepoliaChainConfig.ChainID, + GnosisChainConfig.ChainID, + ChiadoChainConfig.ChainID, + } + for _, id := range ids { + if id.Cmp(chainID) == 0 { + return true } - return config.ChainID.Uint64() } + return false +} + +func hasChainPassedTerminalTD(chainConfig *chain.Config, currentTDProvider func() *big.Int) bool { + if chainConfig.TerminalTotalDifficultyPassed { + return true + } + + terminalTD := chainConfig.TerminalTotalDifficulty + if terminalTD == nil { + return false + } + + currentTD := currentTDProvider() + return (currentTD != nil) && (terminalTD.Cmp(currentTD) <= 0) } diff --git a/params/config_test.go b/params/config_test.go index b448a1526f4..c5463a12fb2 100644 --- a/params/config_test.go +++ b/params/config_test.go @@ -21,7 +21,11 @@ import ( "reflect" "testing" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/common" ) func TestCheckCompatible(t *testing.T) { @@ -98,3 +102,39 @@ func TestCheckCompatible(t *testing.T) { } } } + +func TestGetBurntContract(t *testing.T) { + // Ethereum + assert.Nil(t, MainnetChainConfig.GetBurntContract(0)) + assert.Nil(t, MainnetChainConfig.GetBurntContract(10_000_000)) + + // Gnosis Chain + addr := GnosisChainConfig.GetBurntContract(19_040_000) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92"), *addr) + addr = GnosisChainConfig.GetBurntContract(19_040_001) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x6BBe78ee9e474842Dbd4AB4987b3CeFE88426A92"), *addr) + + // Mumbai + addr = MumbaiChainConfig.GetBurntContract(22640000) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38"), *addr) + addr = MumbaiChainConfig.GetBurntContract(22640000 + 1) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38"), *addr) + addr = MumbaiChainConfig.GetBurntContract(41874000 - 1) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x70bcA57F4579f58670aB2d18Ef16e02C17553C38"), *addr) + addr = MumbaiChainConfig.GetBurntContract(41874000) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x617b94CCCC2511808A3C9478ebb96f455CF167aA"), *addr) + addr = MumbaiChainConfig.GetBurntContract(41874000 + 1) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x617b94CCCC2511808A3C9478ebb96f455CF167aA"), *addr) + + // Amoy + addr = AmoyChainConfig.GetBurntContract(0) + require.NotNil(t, addr) + assert.Equal(t, common.HexToAddress("0x000000000000000000000000000000000000dead"), *addr) +} diff --git a/params/networkname/network_name.go b/params/networkname/network_name.go deleted file mode 100644 index 233b375716a..00000000000 --- a/params/networkname/network_name.go +++ /dev/null @@ -1,24 +0,0 @@ -package networkname - -const ( - MainnetChainName = "mainnet" - SepoliaChainName = "sepolia" - GoerliChainName = "goerli" - DevChainName = "dev" - MumbaiChainName = "mumbai" - BorMainnetChainName = "bor-mainnet" - BorDevnetChainName = "bor-devnet" - GnosisChainName = "gnosis" - ChiadoChainName = "chiado" -) - -var All = []string{ - MainnetChainName, - SepoliaChainName, - GoerliChainName, - MumbaiChainName, - BorMainnetChainName, - BorDevnetChainName, - GnosisChainName, - ChiadoChainName, -} diff --git a/params/protocol_params.go b/params/protocol_params.go index c8b0941a73c..33ffda9a94c 100644 --- a/params/protocol_params.go +++ b/params/protocol_params.go @@ -18,6 +18,8 @@ package params import ( "math/big" + + "github.com/ledgerwatch/erigon-lib/common" ) const ( @@ -165,17 +167,11 @@ const ( RefundQuotientEIP3529 uint64 = 5 // EIP-4844: Shard Blob Transactions - MinBlobGasPrice = 1 - BlobGasPriceUpdateFraction = 3338477 - PointEvaluationGas uint64 = 50000 - - //EIP-4788: Parent Beacon Root Precompile - ParentBeaconBlockRootGas uint64 = 4200 - HistoricalRootsModulus uint64 = 98304 + PointEvaluationGas uint64 = 50000 ) -// EIP-4788: Storage address for parent beacon root -var HistoryStorageAddress = []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0B} +// EIP-4788: Beacon block root in the EVM +var BeaconRootsAddress = common.HexToAddress("0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02") // Gas discount table for BLS12-381 G1 and G2 multi exponentiation operations var Bls12381MultiExpDiscountTable = [128]uint64{1200, 888, 764, 641, 594, 547, 500, 453, 438, 423, 408, 394, 379, 364, 349, 334, 330, 326, 322, 318, 314, 310, 306, 302, 298, 294, 289, 285, 281, 277, 273, 269, 268, 266, 265, 263, 262, 260, 259, 257, 256, 254, 253, 251, 250, 248, 247, 245, 244, 242, 241, 239, 238, 236, 235, 233, 232, 231, 229, 228, 226, 225, 223, 222, 221, 220, 219, 219, 218, 217, 216, 216, 215, 214, 213, 213, 212, 211, 211, 210, 209, 208, 208, 207, 206, 205, 205, 204, 203, 202, 202, 201, 200, 199, 199, 198, 197, 196, 196, 195, 194, 193, 193, 192, 191, 191, 190, 189, 188, 188, 187, 186, 185, 185, 184, 183, 182, 182, 181, 180, 179, 179, 178, 177, 176, 176, 175, 174} diff --git a/params/version.go b/params/version.go index 1237bd4023a..cb2d12d5bb1 100644 --- a/params/version.go +++ b/params/version.go @@ -32,28 +32,13 @@ var ( // see https://calver.org const ( VersionMajor = 2 // Major version component of the current release - VersionMinor = 49 // Minor version component of the current release + VersionMinor = 56 // Minor version component of the current release VersionMicro = 0 // Patch version component of the current release VersionModifier = "dev" // Modifier component of the current release VersionKeyCreated = "ErigonVersionCreated" VersionKeyFinished = "ErigonVersionFinished" ) -func withModifier(vsn string) string { - if !isStable() { - vsn += "-" + VersionModifier - } - return vsn -} - -func isStable() bool { - return VersionModifier == "stable" -} - -func isRelease() bool { - return isStable() || VersionModifier == "alpha" || VersionModifier == "beta" -} - // Version holds the textual version string. var Version = func() string { return fmt.Sprintf("%d.%02d.%d", VersionMajor, VersionMinor, VersionMicro) @@ -68,18 +53,6 @@ var VersionWithMeta = func() string { return v }() -// ArchiveVersion holds the textual version string used for Geth archives. -// e.g. "1.8.11-dea1ce05" for stable releases, or -// -// "1.8.13-unstable-21c059b6" for unstable releases -func ArchiveVersion(gitCommit string) string { - vsn := withModifier(Version) - if len(gitCommit) >= 8 { - vsn += "-" + gitCommit[:8] - } - return vsn -} - func VersionWithCommit(gitCommit string) string { vsn := VersionWithMeta if len(gitCommit) >= 8 { diff --git a/rlp/decode.go b/rlp/decode.go index 1eebcd9ac6e..4824946e558 100644 --- a/rlp/decode.go +++ b/rlp/decode.go @@ -171,6 +171,10 @@ func wrapStreamError(err error, typ reflect.Type) error { return err } +func WrapStreamError(err error, typ reflect.Type) error { + return wrapStreamError(err, typ) +} + func addErrorContext(err error, ctx string) error { if decErr, ok := err.(*decodeError); ok { decErr.ctx = append(decErr.ctx, ctx) diff --git a/rlp/iterator_test.go b/rlp/iterator_test.go index 6b927014e70..c33a86d4b46 100644 --- a/rlp/iterator_test.go +++ b/rlp/iterator_test.go @@ -17,9 +17,8 @@ package rlp import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" - - "github.com/ledgerwatch/erigon/common/hexutil" ) // TestIterator tests some basic things about the ListIterator. A more diff --git a/rpc/client.go b/rpc/client.go index 06b0bb6eac3..4cce8b4266a 100644 --- a/rpc/client.go +++ b/rpc/client.go @@ -113,13 +113,13 @@ type clientConn struct { func (c *Client) newClientConn(conn ServerCodec) *clientConn { ctx := context.WithValue(context.Background(), clientContextKey{}, c) - handler := newHandler(ctx, conn, c.idgen, c.services, c.methodAllowList, 50, false /* traceRequests */, c.logger) + handler := newHandler(ctx, conn, c.idgen, c.services, c.methodAllowList, 50, false /* traceRequests */, c.logger, 0) return &clientConn{conn, handler} } func (cc *clientConn) close(err error, inflightReq *requestOp) { cc.handler.close(err, inflightReq) - cc.codec.close() + cc.codec.Close() } type readOp struct { @@ -496,7 +496,7 @@ func (c *Client) write(ctx context.Context, msg interface{}, retry bool) error { return err } } - err := c.writeConn.writeJSON(ctx, msg) + err := c.writeConn.WriteJSON(ctx, msg) if err != nil { c.writeConn = nil if !retry { @@ -526,7 +526,7 @@ func (c *Client) reconnect(ctx context.Context) error { c.writeConn = newconn return nil case <-c.didClose: - newconn.close() + newconn.Close() return ErrClientQuit } } @@ -627,9 +627,9 @@ func (c *Client) drainRead() { // read decodes RPC messages from a codec, feeding them into dispatch. func (c *Client) read(codec ServerCodec) { for { - msgs, batch, err := codec.readBatch() + msgs, batch, err := codec.ReadBatch() if _, ok := err.(*json.SyntaxError); ok { - codec.writeJSON(context.Background(), errorMessage(&parseError{err.Error()})) + codec.WriteJSON(context.Background(), errorMessage(&parseError{err.Error()})) } if err != nil { c.readErr <- err diff --git a/rpc/client_example_test.go b/rpc/client_example_test.go index 203f9786a42..c713ebddcc3 100644 --- a/rpc/client_example_test.go +++ b/rpc/client_example_test.go @@ -19,9 +19,9 @@ package rpc_test import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "time" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/log/v3" ) diff --git a/rpc/handler.go b/rpc/handler.go index 679aa2c8e38..1cbce957e19 100644 --- a/rpc/handler.go +++ b/rpc/handler.go @@ -20,7 +20,6 @@ import ( "bytes" "context" "encoding/json" - "fmt" "reflect" "strconv" "strings" @@ -28,6 +27,7 @@ import ( "time" jsoniter "github.com/json-iterator/go" + "github.com/ledgerwatch/erigon/rpc/rpccfg" "github.com/ledgerwatch/log/v3" ) @@ -71,6 +71,10 @@ type handler struct { serverSubs map[ID]*Subscription maxBatchConcurrency uint traceRequests bool + + //slow requests + slowLogThreshold time.Duration + slowLogBlacklist []string } type callProc struct { @@ -92,7 +96,7 @@ func HandleError(err error, stream *jsoniter.Stream) error { } stream.WriteMore() stream.WriteObjectField("message") - stream.WriteString(fmt.Sprintf("%v", err)) + stream.WriteString(err.Error()) de, ok := err.(DataError) if ok { stream.WriteMore() @@ -101,7 +105,7 @@ func HandleError(err error, stream *jsoniter.Stream) error { if derr == nil { stream.Write(data) } else { - stream.WriteString(fmt.Sprintf("%v", derr)) + stream.WriteString(derr.Error()) } } stream.WriteObjectEnd() @@ -110,9 +114,10 @@ func HandleError(err error, stream *jsoniter.Stream) error { return nil } -func newHandler(connCtx context.Context, conn jsonWriter, idgen func() ID, reg *serviceRegistry, allowList AllowList, maxBatchConcurrency uint, traceRequests bool, logger log.Logger) *handler { +func newHandler(connCtx context.Context, conn jsonWriter, idgen func() ID, reg *serviceRegistry, allowList AllowList, maxBatchConcurrency uint, traceRequests bool, logger log.Logger, rpcSlowLogThreshold time.Duration) *handler { rootCtx, cancelRoot := context.WithCancel(connCtx) forbiddenList := newForbiddenList() + h := &handler{ reg: reg, idgen: idgen, @@ -129,21 +134,34 @@ func newHandler(connCtx context.Context, conn jsonWriter, idgen func() ID, reg * maxBatchConcurrency: maxBatchConcurrency, traceRequests: traceRequests, + + slowLogThreshold: rpcSlowLogThreshold, + slowLogBlacklist: rpccfg.SlowLogBlackList, } if conn.remoteAddr() != "" { h.logger = h.logger.New("conn", conn.remoteAddr()) } h.unsubscribeCb = newCallback(reflect.Value{}, reflect.ValueOf(h.unsubscribe), "unsubscribe", h.logger) + return h } +func (h *handler) isRpcMethodNeedsCheck(method string) bool { + for _, m := range h.slowLogBlacklist { + if m == method { + return false + } + } + return true +} + // handleBatch executes all messages in a batch and returns the responses. func (h *handler) handleBatch(msgs []*jsonrpcMessage) { // Emit error response for empty batches: if len(msgs) == 0 { h.startCallProc(func(cp *callProc) { - h.conn.writeJSON(cp.ctx, errorMessage(&invalidRequestError{"empty batch"})) + h.conn.WriteJSON(cp.ctx, errorMessage(&invalidRequestError{"empty batch"})) }) return } @@ -201,7 +219,7 @@ func (h *handler) handleBatch(msgs []*jsonrpcMessage) { } h.addSubscriptions(cp.notifiers) if len(answers) > 0 { - h.conn.writeJSON(cp.ctx, answers) + h.conn.WriteJSON(cp.ctx, answers) } for _, n := range cp.notifiers { n.activate() @@ -227,7 +245,7 @@ func (h *handler) handleMsg(msg *jsonrpcMessage, stream *jsoniter.Stream) { stream.Write(buffer) } if needWriteStream { - h.conn.writeJSON(cp.ctx, json.RawMessage(stream.Buffer())) + h.conn.WriteJSON(cp.ctx, json.RawMessage(stream.Buffer())) } else { stream.Write([]byte("\n")) } @@ -330,7 +348,7 @@ func (h *handler) handleImmediate(msg *jsonrpcMessage) bool { return false case msg.isResponse(): h.handleResponse(msg) - h.logger.Trace("Handled RPC response", "reqid", idForLog{msg.ID}, "t", time.Since(start)) + h.logger.Trace("[rpc] handled response", "reqid", idForLog(msg.ID), "t", time.Since(start)) return true default: return false @@ -353,7 +371,7 @@ func (h *handler) handleSubscriptionResult(msg *jsonrpcMessage) { func (h *handler) handleResponse(msg *jsonrpcMessage) { op := h.respWait[string(msg.ID)] if op == nil { - h.logger.Trace("Unsolicited RPC response", "reqid", idForLog{msg.ID}) + h.logger.Trace("[rpc] unsolicited response", "reqid", idForLog(msg.ID)) return } delete(h.respWait, string(msg.ID)) @@ -383,27 +401,47 @@ func (h *handler) handleCallMsg(ctx *callProc, msg *jsonrpcMessage, stream *json case msg.isNotification(): h.handleCall(ctx, msg, stream) if h.traceRequests { - h.logger.Info("Served", "t", time.Since(start), "method", msg.Method, "params", string(msg.Params)) + h.logger.Info("[rpc] served", "t", time.Since(start), "method", msg.Method, "params", string(msg.Params)) } else { - h.logger.Trace("Served", "t", time.Since(start), "method", msg.Method, "params", string(msg.Params)) + h.logger.Trace("[rpc] served", "t", time.Since(start), "method", msg.Method, "params", string(msg.Params)) } return nil case msg.isCall(): + var doSlowLog bool + if h.slowLogThreshold > 0 { + doSlowLog = h.isRpcMethodNeedsCheck(msg.Method) + if doSlowLog { + slowTimer := time.AfterFunc(h.slowLogThreshold, func() { + h.logger.Info("[rpc.slow] running", "method", msg.Method, "reqid", idForLog(msg.ID), "params", string(msg.Params)) + }) + defer slowTimer.Stop() + } + } + resp := h.handleCall(ctx, msg, stream) + + if doSlowLog { + requestDuration := time.Since(start) + if requestDuration > h.slowLogThreshold { + h.logger.Info("[rpc.slow] finished", "method", msg.Method, "reqid", idForLog(msg.ID), "duration", requestDuration) + } + } + if resp != nil && resp.Error != nil { if resp.Error.Data != nil { - h.logger.Warn("Served", "method", msg.Method, "reqid", idForLog{msg.ID}, "t", time.Since(start), + h.logger.Warn("[rpc] served", "method", msg.Method, "reqid", idForLog(msg.ID), "t", time.Since(start), "err", resp.Error.Message, "errdata", resp.Error.Data) } else { - h.logger.Warn("Served", "method", msg.Method, "reqid", idForLog{msg.ID}, "t", time.Since(start), + h.logger.Warn("[rpc] served", "method", msg.Method, "reqid", idForLog(msg.ID), "t", time.Since(start), "err", resp.Error.Message) } } if h.traceRequests { - h.logger.Info("Served", "t", time.Since(start), "method", msg.Method, "reqid", idForLog{msg.ID}, "params", string(msg.Params)) + h.logger.Info("Served", "t", time.Since(start), "method", msg.Method, "reqid", idForLog(msg.ID), "params", string(msg.Params)) } else { - h.logger.Trace("Served", "t", time.Since(start), "method", msg.Method, "reqid", idForLog{msg.ID}, "params", string(msg.Params)) + h.logger.Trace("Served", "t", time.Since(start), "method", msg.Method, "reqid", idForLog(msg.ID), "params", string(msg.Params)) } + return resp case msg.hasValidID(): return msg.errorResponse(&invalidRequestError{"invalid request"}) @@ -450,7 +488,7 @@ func (h *handler) handleCall(cp *callProc, msg *jsonrpcMessage, stream *jsoniter if answer != nil && answer.Error != nil { failedReqeustGauge.Inc() } - newRPCServingTimerMS(msg.Method, answer == nil || answer.Error == nil).UpdateDuration(start) + newRPCServingTimerMS(msg.Method, answer == nil || answer.Error == nil).ObserveDuration(start) } return answer } @@ -559,11 +597,11 @@ func (h *handler) unsubscribe(ctx context.Context, id ID) (bool, error) { return true, nil } -type idForLog struct{ json.RawMessage } +type idForLog json.RawMessage func (id idForLog) String() string { - if s, err := strconv.Unquote(string(id.RawMessage)); err == nil { + if s, err := strconv.Unquote(string(id)); err == nil { return s } - return string(id.RawMessage) + return string(id) } diff --git a/rpc/http.go b/rpc/http.go index df33c5d2ea0..bcfd0948703 100644 --- a/rpc/http.go +++ b/rpc/http.go @@ -55,7 +55,7 @@ type httpConn struct { } // httpConn is treated specially by Client. -func (hc *httpConn) writeJSON(context.Context, interface{}) error { +func (hc *httpConn) WriteJSON(context.Context, interface{}) error { panic("writeJSON called on httpConn") } @@ -63,12 +63,12 @@ func (hc *httpConn) remoteAddr() string { return hc.url } -func (hc *httpConn) readBatch() ([]*jsonrpcMessage, bool, error) { +func (hc *httpConn) ReadBatch() ([]*jsonrpcMessage, bool, error) { <-hc.closeCh return nil, false, io.EOF } -func (hc *httpConn) close() { +func (hc *httpConn) Close() { hc.closeOnce.Do(func() { close(hc.closeCh) }) } @@ -108,21 +108,11 @@ func DialHTTP(endpoint string, logger log.Logger) (*Client, error) { func (c *Client) sendHTTP(ctx context.Context, op *requestOp, msg interface{}) error { hc := c.writeConn.(*httpConn) respBody, err := hc.doRequest(ctx, msg) - if respBody != nil { - defer respBody.Close() - } - if err != nil { - if respBody != nil { - buf := new(bytes.Buffer) - if _, err2 := buf.ReadFrom(respBody); err2 == nil { - return fmt.Errorf("%w: %v", err, buf.String()) - } - } return err } var respmsg jsonrpcMessage - if err := json.NewDecoder(respBody).Decode(&respmsg); err != nil { + if err := json.Unmarshal(respBody, &respmsg); err != nil { return err } op.resp <- &respmsg @@ -135,9 +125,8 @@ func (c *Client) sendBatchHTTP(ctx context.Context, op *requestOp, msgs []*jsonr if err != nil { return err } - defer respBody.Close() var respmsgs []jsonrpcMessage - if err := json.NewDecoder(respBody).Decode(&respmsgs); err != nil { + if err := json.Unmarshal(respBody, &respmsgs); err != nil { return err } for i := 0; i < len(respmsgs); i++ { @@ -146,7 +135,7 @@ func (c *Client) sendBatchHTTP(ctx context.Context, op *requestOp, msgs []*jsonr return nil } -func (hc *httpConn) doRequest(ctx context.Context, msg interface{}) (io.ReadCloser, error) { +func (hc *httpConn) doRequest(ctx context.Context, msg interface{}) ([]byte, error) { body, err := json.Marshal(msg) if err != nil { return nil, err @@ -167,10 +156,19 @@ func (hc *httpConn) doRequest(ctx context.Context, msg interface{}) (io.ReadClos if err != nil { return nil, err } + defer func() { _ = resp.Body.Close() }() + + // read the response body + respBody, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + if resp.StatusCode < 200 || resp.StatusCode >= 300 { - return resp.Body, errors.New(resp.Status) + return nil, fmt.Errorf("%s: %s", resp.Status, string(respBody)) } - return resp.Body, nil + + return respBody, nil } // httpServerConn turns a HTTP connection into a Conn. @@ -250,7 +248,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { w.Header().Set("content-type", contentType) codec := newHTTPServerConn(r, w) - defer codec.close() + defer codec.Close() var stream *jsoniter.Stream if !s.disableStreaming { stream = jsoniter.NewStream(jsoniter.ConfigDefault, w, 4096) diff --git a/rpc/http_test.go b/rpc/http_test.go index be1b439626e..28b7cfe51c7 100644 --- a/rpc/http_test.go +++ b/rpc/http_test.go @@ -107,7 +107,7 @@ func TestHTTPRespBodyUnlimited(t *testing.T) { logger := log.New() const respLength = maxRequestContentLength * 3 - s := NewServer(50, false /* traceRequests */, true, logger) + s := NewServer(50, false /* traceRequests */, true, logger, 100) defer s.Stop() if err := s.RegisterName("test", largeRespService{respLength}); err != nil { t.Fatal(err) diff --git a/rpc/json.go b/rpc/json.go index 0893ab549b5..330f704ca7a 100644 --- a/rpc/json.go +++ b/rpc/json.go @@ -202,7 +202,7 @@ func (c *jsonCodec) remoteAddr() string { return c.remote } -func (c *jsonCodec) readBatch() (messages []*jsonrpcMessage, batch bool, err error) { +func (c *jsonCodec) ReadBatch() (messages []*jsonrpcMessage, batch bool, err error) { // Decode the next JSON object in the input stream. // This verifies basic syntax, etc. var rawmsg json.RawMessage @@ -220,7 +220,7 @@ func (c *jsonCodec) readBatch() (messages []*jsonrpcMessage, batch bool, err err return messages, batch, nil } -func (c *jsonCodec) writeJSON(ctx context.Context, v interface{}) error { +func (c *jsonCodec) WriteJSON(ctx context.Context, v interface{}) error { c.encMu.Lock() defer c.encMu.Unlock() @@ -232,7 +232,7 @@ func (c *jsonCodec) writeJSON(ctx context.Context, v interface{}) error { return c.encode(v) } -func (c *jsonCodec) close() { +func (c *jsonCodec) Close() { c.closer.Do(func() { close(c.closeCh) c.conn.Close() diff --git a/rpc/metrics.go b/rpc/metrics.go index 4d7c418c617..21af0ac9b1c 100644 --- a/rpc/metrics.go +++ b/rpc/metrics.go @@ -18,20 +18,77 @@ package rpc import ( "fmt" - - "github.com/VictoriaMetrics/metrics" + "github.com/ledgerwatch/erigon-lib/metrics" + "reflect" + "strings" ) var ( + rpcMetricsLabels = map[bool]map[string]string{} rpcRequestGauge = metrics.GetOrCreateCounter("rpc_total") failedReqeustGauge = metrics.GetOrCreateCounter("rpc_failure") ) -func newRPCServingTimerMS(method string, valid bool) *metrics.Summary { - flag := "success" - if !valid { - flag = "failure" +// PreAllocateRPCMetricLabels pre-allocates labels for all rpc methods inside API List +func PreAllocateRPCMetricLabels(apiList []API) { + methods := getRPCMethodNames(apiList) + + successMap, ok := rpcMetricsLabels[true] + if !ok { + successMap = make(map[string]string) + } + + failureMap, ok := rpcMetricsLabels[false] + if !ok { + failureMap = make(map[string]string) } - m := fmt.Sprintf(`rpc_duration_seconds{method="%s",success="%s"}`, method, flag) - return metrics.GetOrCreateSummary(m) + + for _, method := range methods { + successMap[method] = createRPCMetricsLabel(method, true) + failureMap[method] = createRPCMetricsLabel(method, false) + } + + rpcMetricsLabels[true] = successMap + rpcMetricsLabels[false] = failureMap +} + +func getRPCMethodNames(apiList []API) (methods []string) { + for _, api := range apiList { + apiType := reflect.TypeOf(api.Service) + + for i := 0; i < apiType.NumMethod(); i++ { + method := apiType.Method(i) + rpcMethod := fmt.Sprintf("%s_%s", api.Namespace, pascalToCamel(method.Name)) + methods = append(methods, rpcMethod) + } + } + + return +} + +func pascalToCamel(input string) string { + if input == "" || strings.ToLower(input[0:1]) == input[0:1] { + return input + } + + return strings.ToLower(input[0:1]) + input[1:] +} + +func createRPCMetricsLabel(method string, valid bool) string { + status := "failure" + if valid { + status = "success" + } + + return fmt.Sprintf(`rpc_duration_seconds{method="%s",success="%s"}`, method, status) + +} + +func newRPCServingTimerMS(method string, valid bool) metrics.Summary { + label, ok := rpcMetricsLabels[valid][method] + if !ok { + label = createRPCMetricsLabel(method, valid) + } + + return metrics.GetOrCreateSummary(label) } diff --git a/rpc/rpccfg/rpccfg.go b/rpc/rpccfg/rpccfg.go index f1cde689c78..d50a472cead 100644 --- a/rpc/rpccfg/rpccfg.go +++ b/rpc/rpccfg/rpccfg.go @@ -37,3 +37,9 @@ var DefaultHTTPTimeouts = HTTPTimeouts{ } const DefaultEvmCallTimeout = 5 * time.Minute + +var SlowLogBlackList = []string{ + "eth_getBlock", "eth_getBlockByNumber", "eth_getBlockByHash", "eth_blockNumber", + "erigon_blockNumber", "erigon_getHeaderByNumber", "erigon_getHeaderByHash", "erigon_getBlockByTimestamp", + "eth_call", +} diff --git a/rpc/server.go b/rpc/server.go index 25603cb5f7c..345422115bf 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -21,6 +21,7 @@ import ( "fmt" "io" "sync/atomic" + "time" mapset "github.com/deckarep/golang-set" jsoniter "github.com/json-iterator/go" @@ -48,19 +49,20 @@ type Server struct { methodAllowList AllowList idgen func() ID run int32 - codecs mapset.Set - - batchConcurrency uint - disableStreaming bool - traceRequests bool // Whether to print requests at INFO level - batchLimit int // Maximum number of requests in a batch - logger log.Logger + codecs mapset.Set // mapset.Set[ServerCodec] requires go 1.20 + + batchConcurrency uint + disableStreaming bool + traceRequests bool // Whether to print requests at INFO level + batchLimit int // Maximum number of requests in a batch + logger log.Logger + rpcSlowLogThreshold time.Duration } // NewServer creates a new server instance with no registered handlers. -func NewServer(batchConcurrency uint, traceRequests, disableStreaming bool, logger log.Logger) *Server { +func NewServer(batchConcurrency uint, traceRequests, disableStreaming bool, logger log.Logger, rpcSlowLogThreshold time.Duration) *Server { server := &Server{services: serviceRegistry{logger: logger}, idgen: randomIDGenerator(), codecs: mapset.NewSet(), run: 1, batchConcurrency: batchConcurrency, - disableStreaming: disableStreaming, traceRequests: traceRequests, logger: logger} + disableStreaming: disableStreaming, traceRequests: traceRequests, logger: logger, rpcSlowLogThreshold: rpcSlowLogThreshold} // Register the default service providing meta information about the RPC service such // as the services and methods it offers. rpcService := &RPCService{server: server} @@ -92,7 +94,7 @@ func (s *Server) RegisterName(name string, receiver interface{}) error { // // Note that codec options are no longer supported. func (s *Server) ServeCodec(codec ServerCodec, options CodecOption) { - defer codec.close() + defer codec.Close() // Don't serve if server is stopped. if atomic.LoadInt32(&s.run) == 0 { @@ -117,20 +119,20 @@ func (s *Server) serveSingleRequest(ctx context.Context, codec ServerCodec, stre return } - h := newHandler(ctx, codec, s.idgen, &s.services, s.methodAllowList, s.batchConcurrency, s.traceRequests, s.logger) + h := newHandler(ctx, codec, s.idgen, &s.services, s.methodAllowList, s.batchConcurrency, s.traceRequests, s.logger, s.rpcSlowLogThreshold) h.allowSubscribe = false defer h.close(io.EOF, nil) - reqs, batch, err := codec.readBatch() + reqs, batch, err := codec.ReadBatch() if err != nil { if err != io.EOF { - codec.writeJSON(ctx, errorMessage(&invalidMessageError{"parse error"})) + codec.WriteJSON(ctx, errorMessage(&invalidMessageError{"parse error"})) } return } if batch { if s.batchLimit > 0 && len(reqs) > s.batchLimit { - codec.writeJSON(ctx, errorMessage(fmt.Errorf("batch limit %d exceeded (can increase by --rpc.batch.limit). Requested batch of size: %d", s.batchLimit, len(reqs)))) + codec.WriteJSON(ctx, errorMessage(fmt.Errorf("batch limit %d exceeded (can increase by --rpc.batch.limit). Requested batch of size: %d", s.batchLimit, len(reqs)))) } else { h.handleBatch(reqs) } @@ -146,7 +148,7 @@ func (s *Server) Stop() { if atomic.CompareAndSwapInt32(&s.run, 1, 0) { s.logger.Info("RPC server shutting down") s.codecs.Each(func(c interface{}) bool { - c.(ServerCodec).close() + c.(ServerCodec).Close() return true }) } diff --git a/rpc/server_test.go b/rpc/server_test.go index b9e0b12e874..104dc1883a7 100644 --- a/rpc/server_test.go +++ b/rpc/server_test.go @@ -34,7 +34,7 @@ import ( func TestServerRegisterName(t *testing.T) { logger := log.New() - server := NewServer(50, false /* traceRequests */, true, logger) + server := NewServer(50, false /* traceRequests */, true, logger, 100) service := new(testService) if err := server.RegisterName("test", service); err != nil { diff --git a/rpc/subscription.go b/rpc/subscription.go index 38789f57b63..03dd8d5d912 100644 --- a/rpc/subscription.go +++ b/rpc/subscription.go @@ -174,7 +174,7 @@ func (n *Notifier) activate() error { func (n *Notifier) send(sub *Subscription, data json.RawMessage) error { params, _ := json.Marshal(&subscriptionResult{ID: string(sub.ID), Result: data}) ctx := context.Background() - return n.h.conn.writeJSON(ctx, &jsonrpcMessage{ + return n.h.conn.WriteJSON(ctx, &jsonrpcMessage{ Version: vsn, Method: n.namespace + notificationMethodSuffix, Params: params, diff --git a/rpc/subscription_test.go b/rpc/subscription_test.go index 64099f9534a..8f09b2aa258 100644 --- a/rpc/subscription_test.go +++ b/rpc/subscription_test.go @@ -56,7 +56,7 @@ func TestSubscriptions(t *testing.T) { subCount = len(namespaces) notificationCount = 3 - server = NewServer(50, false /* traceRequests */, true, logger) + server = NewServer(50, false /* traceRequests */, true, logger, 100) clientConn, serverConn = net.Pipe() out = json.NewEncoder(clientConn) in = json.NewDecoder(clientConn) diff --git a/rpc/testservice_test.go b/rpc/testservice_test.go index 8e6b4ffd7e9..c5017489c82 100644 --- a/rpc/testservice_test.go +++ b/rpc/testservice_test.go @@ -28,7 +28,7 @@ import ( ) func newTestServer(logger log.Logger) *Server { - server := NewServer(50, false /* traceRequests */, true, logger) + server := NewServer(50, false /* traceRequests */, true, logger, 100) server.idgen = sequentialIDGenerator() if err := server.RegisterName("test", new(testService)); err != nil { panic(err) diff --git a/rpc/types.go b/rpc/types.go index 9d9bcf8c121..11dc2b77675 100644 --- a/rpc/types.go +++ b/rpc/types.go @@ -21,12 +21,13 @@ import ( "encoding/json" "fmt" "math" + "math/big" "strconv" "strings" - libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" - "github.com/ledgerwatch/erigon/common/hexutil" + libcommon "github.com/ledgerwatch/erigon-lib/common" ) // API describes the set of methods offered over the RPC interface @@ -53,15 +54,15 @@ type DataError interface { // a RPC session. Implementations must be go-routine safe since the codec can be called in // multiple go-routines concurrently. type ServerCodec interface { - readBatch() (msgs []*jsonrpcMessage, isBatch bool, err error) - close() + ReadBatch() (msgs []*jsonrpcMessage, isBatch bool, err error) + Close() jsonWriter } // jsonWriter can write JSON messages to its underlying connection. // Implementations must be safe for concurrent use. type jsonWriter interface { - writeJSON(context.Context, interface{}) error + WriteJSON(context.Context, interface{}) error // Closed returns a channel which is closed when the connection is closed. closed() <-chan interface{} // RemoteAddr returns the peer address of the connection. @@ -80,6 +81,15 @@ const ( EarliestBlockNumber = BlockNumber(0) ) +var ( + LatestExecutedBlock = LatestExecutedBlockNumber.AsBlockReference() + FinalizedBlock = FinalizedBlockNumber.AsBlockReference() + SafeBlock = SafeBlockNumber.AsBlockReference() + PendingBlock = PendingBlockNumber.AsBlockReference() + LatestBlock = LatestBlockNumber.AsBlockReference() + EarliestBlock = EarliestBlockNumber.AsBlockReference() +) + // UnmarshalJSON parses the given JSON fragment into a BlockNumber. It supports: // - "latest", "earliest", "pending", "safe", or "finalized" as string arguments // - the block number @@ -131,10 +141,85 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { return nil } +func (bn BlockNumber) MarshalText() ([]byte, error) { + switch { + case bn < LatestExecutedBlockNumber: + return nil, fmt.Errorf("Invalid block number %d", bn) + case bn < 0: + return []byte(bn.String()), nil + default: + return []byte(bn.string(16)), nil + } +} + func (bn BlockNumber) Int64() int64 { return int64(bn) } +func (bn BlockNumber) Uint64() uint64 { + return uint64(bn) +} + +func (bn BlockNumber) String() string { + return bn.string(10) +} + +func (bn BlockNumber) AsBlockReference() BlockReference { + return AsBlockReference(bn) +} + +func (bn BlockNumber) string(base int) string { + switch bn { + case EarliestBlockNumber: + return "earliest" + case LatestBlockNumber: + return "latest" + case PendingBlockNumber: + return "pending" + case SafeBlockNumber: + return "safe" + case FinalizedBlockNumber: + return "finalized" + case LatestExecutedBlockNumber: + return "latestExecuted" + } + + if base == 16 { + return "0x" + strconv.FormatUint(bn.Uint64(), base) + } + + return strconv.FormatUint(bn.Uint64(), base) +} + +func AsBlockNumber(no interface{}) BlockNumber { + switch no := no.(type) { + case *big.Int: + return BlockNumber(no.Int64()) + case BlockNumber: + return no + case *BlockNumber: + return *no + case int: + return BlockNumber(no) + case int64: + return BlockNumber(no) + case uint64: + return BlockNumber(no) + case string: + var bn BlockNumber + if err := json.Unmarshal([]byte(strconv.Quote(no)), &bn); err == nil { + return bn + } + case fmt.Stringer: + var bn BlockNumber + if err := json.Unmarshal([]byte(strconv.Quote(no.String())), &bn); err == nil { + return bn + } + } + + return LatestExecutedBlockNumber - 1 +} + type BlockNumberOrHash struct { BlockNumber *BlockNumber `json:"blockNumber,omitempty"` BlockHash *libcommon.Hash `json:"blockHash,omitempty"` @@ -245,6 +330,88 @@ func BlockNumberOrHashWithHash(hash libcommon.Hash, canonical bool) BlockNumberO } } +type BlockReference BlockNumberOrHash + +func (br *BlockReference) UnmarshalJSON(data []byte) error { + return ((*BlockNumberOrHash)(br)).UnmarshalJSON(data) +} + +func (br BlockReference) Number() (BlockNumber, bool) { + return ((*BlockNumberOrHash)(&br)).Number() +} + +func (br BlockReference) Hash() (libcommon.Hash, bool) { + return ((*BlockNumberOrHash)(&br)).Hash() +} + +func (br BlockReference) String() string { + if br.BlockNumber != nil { + return br.BlockNumber.String() + } + + if br.BlockHash != nil { + return br.BlockHash.String() + } + + return "" +} + +func AsBlockReference(ref interface{}) BlockReference { + switch ref := ref.(type) { + case *big.Int: + return IntBlockReference(ref) + case BlockNumber: + return BlockReference{BlockNumber: &ref} + case *BlockNumber: + return BlockReference{BlockNumber: ref} + case int64: + bn := BlockNumber(ref) + return BlockReference{BlockNumber: &bn} + case uint64: + return Uint64BlockReference(ref) + case libcommon.Hash: + return HashBlockReference(ref) + case *libcommon.Hash: + return HashBlockReference(*ref) + } + + return BlockReference{} +} + +func IntBlockReference(blockNr *big.Int) BlockReference { + if blockNr == nil { + return BlockReference{} + } + + bn := BlockNumber(blockNr.Int64()) + return BlockReference{ + BlockNumber: &bn, + BlockHash: nil, + RequireCanonical: false, + } +} + +func Uint64BlockReference(blockNr uint64) BlockReference { + bn := BlockNumber(blockNr) + return BlockReference{ + BlockNumber: &bn, + BlockHash: nil, + RequireCanonical: false, + } +} + +func HashBlockReference(hash libcommon.Hash, canonical ...bool) BlockReference { + if len(canonical) == 0 { + canonical = []bool{false} + } + + return BlockReference{ + BlockNumber: nil, + BlockHash: &hash, + RequireCanonical: canonical[0], + } +} + // DecimalOrHex unmarshals a non-negative decimal or hex parameter into a uint64. type DecimalOrHex uint64 diff --git a/rpc/websocket.go b/rpc/websocket.go index 00706be2953..6f79dae834b 100644 --- a/rpc/websocket.go +++ b/rpc/websocket.go @@ -27,7 +27,7 @@ import ( "sync" "time" - mapset "github.com/deckarep/golang-set" + mapset "github.com/deckarep/golang-set/v2" "github.com/gorilla/websocket" "github.com/ledgerwatch/log/v3" ) @@ -63,7 +63,7 @@ func (s *Server) WebsocketHandler(allowedOrigins []string, jwtSecret []byte, com logger.Warn("WebSocket upgrade failed", "err", err) return } - codec := newWebsocketCodec(conn) + codec := NewWebsocketCodec(conn) s.ServeCodec(codec, 0) }) } @@ -72,7 +72,7 @@ func (s *Server) WebsocketHandler(allowedOrigins []string, jwtSecret []byte, com // websocket upgrade process. When a '*' is specified as an allowed origins all // connections are accepted. func wsHandshakeValidator(allowedOrigins []string, logger log.Logger) func(*http.Request) bool { - origins := mapset.NewSet() + origins := mapset.NewSet[string]() allowAllOrigins := false for _, origin := range allowedOrigins { @@ -125,10 +125,14 @@ func (e wsHandshakeError) Error() string { return s } -func originIsAllowed(allowedOrigins mapset.Set, browserOrigin string, logger log.Logger) bool { +func (e wsHandshakeError) Unwrap() error { + return e.err +} + +func originIsAllowed(allowedOrigins mapset.Set[string], browserOrigin string, logger log.Logger) bool { it := allowedOrigins.Iterator() for origin := range it.C { - if ruleAllowsOrigin(origin.(string), browserOrigin, logger) { + if ruleAllowsOrigin(origin, browserOrigin, logger) { return true } } @@ -201,7 +205,7 @@ func DialWebsocketWithDialer(ctx context.Context, endpoint, origin string, diale } return nil, hErr } - return newWebsocketCodec(conn), nil + return NewWebsocketCodec(conn), nil }, logger) } @@ -244,7 +248,7 @@ type websocketCodec struct { pingReset chan struct{} } -func newWebsocketCodec(conn *websocket.Conn) ServerCodec { +func NewWebsocketCodec(conn *websocket.Conn) ServerCodec { conn.SetReadLimit(wsMessageSizeLimit) wc := &websocketCodec{ jsonCodec: NewFuncCodec(conn, conn.WriteJSON, conn.ReadJSON).(*jsonCodec), @@ -256,13 +260,13 @@ func newWebsocketCodec(conn *websocket.Conn) ServerCodec { return wc } -func (wc *websocketCodec) close() { - wc.jsonCodec.close() +func (wc *websocketCodec) Close() { + wc.jsonCodec.Close() wc.wg.Wait() } -func (wc *websocketCodec) writeJSON(ctx context.Context, v interface{}) error { - err := wc.jsonCodec.writeJSON(ctx, v) +func (wc *websocketCodec) WriteJSON(ctx context.Context, v interface{}) error { + err := wc.jsonCodec.WriteJSON(ctx, v) if err == nil { // Notify pingLoop to delay the next idle ping. select { diff --git a/rpc/websocket_bench_test.go b/rpc/websocket_bench_test.go new file mode 100644 index 00000000000..cf13b0c43ae --- /dev/null +++ b/rpc/websocket_bench_test.go @@ -0,0 +1,63 @@ +package rpc + +import ( + "context" + "net/http/httptest" + "strings" + "testing" + + "github.com/ledgerwatch/log/v3" +) + +// This test checks whether calls exceeding the request size limit are rejected. +func BenchmarkWebsocketEmptyCall(b *testing.B) { + logger := log.New() + + var ( + srv = newTestServer(logger) + httpsrv = httptest.NewServer(srv.WebsocketHandler([]string{"*"}, nil, false, logger)) + wsURL = "ws:" + strings.TrimPrefix(httpsrv.URL, "http:") + ) + defer srv.Stop() + defer httpsrv.Close() + + client, err := DialWebsocket(context.Background(), wsURL, "", logger) + if err != nil { + panic(err) + } + defer client.Close() + + b.ResetTimer() + for i := 0; i < b.N; i++ { + if err := client.Call(nil, "test_ping"); err != nil { + panic(err) + } + } +} +func BenchmarkWebsocket16kb(b *testing.B) { + logger := log.New() + + var ( + srv = newTestServer(logger) + httpsrv = httptest.NewServer(srv.WebsocketHandler([]string{"*"}, nil, false, logger)) + wsURL = "ws:" + strings.TrimPrefix(httpsrv.URL, "http:") + ) + defer srv.Stop() + defer httpsrv.Close() + + client, err := DialWebsocket(context.Background(), wsURL, "", logger) + if err != nil { + panic(err) + } + defer client.Close() + + payload16kb := strings.Repeat("x", 4096*4) + b.ResetTimer() + + for i := 0; i < b.N; i++ { + err := client.Call(nil, "test_echo", payload16kb, 5, nil) + if err != nil { + panic(err) + } + } +} diff --git a/rpc/websocket_test.go b/rpc/websocket_test.go index 3a3fce2e86b..941a790b868 100644 --- a/rpc/websocket_test.go +++ b/rpc/websocket_test.go @@ -168,7 +168,7 @@ func TestClientWebsocketPing(t *testing.T) { func TestClientWebsocketLargeMessage(t *testing.T) { logger := log.New() var ( - srv = NewServer(50, false /* traceRequests */, true, logger) + srv = NewServer(50, false /* traceRequests */, true, logger, 100) httpsrv = httptest.NewServer(srv.WebsocketHandler(nil, nil, false, logger)) wsURL = "ws:" + strings.TrimPrefix(httpsrv.URL, "http:") ) diff --git a/rules.go b/rules.go index f947bc0eb91..99d33834041 100644 --- a/rules.go +++ b/rules.go @@ -33,6 +33,8 @@ func txDeferRollback(m dsl.Matcher) { `$tx, $err = $db.BeginRw($ctx); $chk; $rollback`, `$tx, $err := $db.Begin($ctx); $chk; $rollback`, `$tx, $err = $db.Begin($ctx); $chk; $rollback`, + `$tx, $err := $db.BeginRo($ctx); $chk; $rollback`, + `$tx, $err = $db.BeginRo($ctx); $chk; $rollback`, ). Where(!m["rollback"].Text.Matches(`defer .*\.Rollback()`)). //At(m["rollback"]). @@ -73,7 +75,7 @@ func mismatchingUnlock(m dsl.Matcher) { m.Match(`$mu.Lock(); defer $mu.$unlock()`). Where(m["unlock"].Text == "RUnlock"). At(m["unlock"]). - Report(`maybe $2mu.Unlock() was intended? + Report(`maybe $mu.Unlock() was intended? Rules are in ./rules.go file.`) m.Match(`$mu.RLock(); defer $mu.$unlock()`). diff --git a/spectest/case.go b/spectest/case.go index b541abe83b1..36efa1ade37 100644 --- a/spectest/case.go +++ b/spectest/case.go @@ -1,13 +1,13 @@ package spectest import ( + "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cl/transition/machine" "io/fs" "os" "strings" "gfx.cafe/util/go/generic" - "github.com/ledgerwatch/erigon/cl/clparams" ) type TestCase struct { diff --git a/spectest/util.go b/spectest/util.go index 8ad5f45ec89..b34ae6ced81 100644 --- a/spectest/util.go +++ b/spectest/util.go @@ -2,17 +2,16 @@ package spectest import ( "fmt" + clparams2 "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/phase1/core/state" + "github.com/ledgerwatch/erigon/cl/utils" "io/fs" "os" "gopkg.in/yaml.v3" "github.com/ledgerwatch/erigon-lib/types/ssz" - - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/cl/cltypes" - "github.com/ledgerwatch/erigon/cl/phase1/core/state" - "github.com/ledgerwatch/erigon/cl/utils" ) func ReadMeta(root fs.FS, name string, obj any) error { @@ -39,7 +38,7 @@ func ReadYml(root fs.FS, name string, obj any) error { return nil } -func ReadSsz(root fs.FS, version clparams.StateVersion, name string, obj ssz.Unmarshaler) error { +func ReadSsz(root fs.FS, version clparams2.StateVersion, name string, obj ssz.Unmarshaler) error { bts, err := fs.ReadFile(root, name) if err != nil { return fmt.Errorf("couldnt read meta: %w", err) @@ -47,16 +46,16 @@ func ReadSsz(root fs.FS, version clparams.StateVersion, name string, obj ssz.Unm return utils.DecodeSSZSnappy(obj, bts, int(version)) } -func ReadSszOld(root fs.FS, obj ssz.Unmarshaler, version clparams.StateVersion, name string) error { +func ReadSszOld(root fs.FS, obj ssz.Unmarshaler, version clparams2.StateVersion, name string) error { return ReadSsz(root, version, name, obj) } -func ReadBeaconState(root fs.FS, version clparams.StateVersion, name string) (*state.CachingBeaconState, error) { +func ReadBeaconState(root fs.FS, version clparams2.StateVersion, name string) (*state.CachingBeaconState, error) { sszSnappy, err := fs.ReadFile(root, name) if err != nil { return nil, err } - config := clparams.MainnetBeaconConfig + config := clparams2.MainnetBeaconConfig testState := state.New(&config) if err := utils.DecodeSSZSnappy(testState, sszSnappy, int(version)); err != nil { return nil, err @@ -64,7 +63,7 @@ func ReadBeaconState(root fs.FS, version clparams.StateVersion, name string) (*s return testState, nil } -func ReadBlock(root fs.FS, version clparams.StateVersion, index int) (*cltypes.SignedBeaconBlock, error) { +func ReadBlock(root fs.FS, version clparams2.StateVersion, index int) (*cltypes.SignedBeaconBlock, error) { var blockBytes []byte var err error blockBytes, err = fs.ReadFile(root, fmt.Sprintf("blocks_%d.ssz_snappy", index)) @@ -74,14 +73,14 @@ func ReadBlock(root fs.FS, version clparams.StateVersion, index int) (*cltypes.S if err != nil { return nil, err } - blk := &cltypes.SignedBeaconBlock{} + blk := cltypes.NewSignedBeaconBlock(&clparams2.MainnetBeaconConfig) if err = utils.DecodeSSZSnappy(blk, blockBytes, int(version)); err != nil { return nil, err } return blk, nil } -func ReadAnchorBlock(root fs.FS, version clparams.StateVersion, name string) (*cltypes.BeaconBlock, error) { +func ReadAnchorBlock(root fs.FS, version clparams2.StateVersion, name string) (*cltypes.BeaconBlock, error) { var blockBytes []byte var err error blockBytes, err = fs.ReadFile(root, name) @@ -91,7 +90,7 @@ func ReadAnchorBlock(root fs.FS, version clparams.StateVersion, name string) (*c if err != nil { return nil, err } - blk := &cltypes.BeaconBlock{} + blk := cltypes.NewBeaconBlock(&clparams2.MainnetBeaconConfig) if err = utils.DecodeSSZSnappy(blk, blockBytes, int(version)); err != nil { return nil, err } @@ -116,7 +115,7 @@ func ReadBlockSlot(root fs.FS, index int) (uint64, error) { } return ssz.UnmarshalUint64SSZ(blockBytes[100:108]), nil } -func ReadBlocks(root fs.FS, version clparams.StateVersion) ([]*cltypes.SignedBeaconBlock, error) { +func ReadBlocks(root fs.FS, version clparams2.StateVersion) ([]*cltypes.SignedBeaconBlock, error) { i := 0 blocks := []*cltypes.SignedBeaconBlock{} var err error @@ -126,7 +125,7 @@ func ReadBlocks(root fs.FS, version clparams.StateVersion) ([]*cltypes.SignedBea if err != nil { break } - blk := &cltypes.SignedBeaconBlock{} + blk := cltypes.NewSignedBeaconBlock(&clparams2.MainnetBeaconConfig) if err = utils.DecodeSSZSnappy(blk, blockBytes, int(version)); err != nil { return nil, err } diff --git a/tests/block_test.go b/tests/block_test.go index e7867b2c80e..f5851c11bc8 100644 --- a/tests/block_test.go +++ b/tests/block_test.go @@ -60,24 +60,17 @@ func TestBlockchain(t *testing.T) { } func TestBlockchainEIP(t *testing.T) { + t.Skip("TODO(yperbasis): fix me") + defer log.Root().SetHandler(log.Root().GetHandler()) log.Root().SetHandler(log.LvlFilterHandler(log.LvlError, log.StderrHandler)) - if ethconfig.EnableHistoryV3InTest { - t.Skip("fix me in e3 please") - } - bt := new(testMatcher) // EOF is not supported yet bt.skipLoad(`^StateTests/stEOF/`) - // TODO(yperbasis): fix me - bt.skipLoad(`^StateTests/stEIP4844-blobtransactions/`) - bt.skipLoad(`^StateTests/stExample/`) - - // TODO(yperbasis): re-enable checkStateRoot - checkStateRoot := false + checkStateRoot := true bt.walk(t, blockEipTestDir, func(t *testing.T, name string, test *BlockTest) { if err := bt.checkFailure(t, test.Run(t, checkStateRoot)); err != nil { diff --git a/tests/block_test_util.go b/tests/block_test_util.go index 54d932badcf..22a1b2b30ff 100644 --- a/tests/block_test_util.go +++ b/tests/block_test_util.go @@ -23,7 +23,9 @@ import ( "encoding/hex" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" + "reflect" "testing" "github.com/holiman/uint256" @@ -38,7 +40,6 @@ import ( "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -79,33 +80,39 @@ type btBlock struct { //go:generate gencodec -type btHeader -field-override btHeaderMarshaling -out gen_btheader.go type btHeader struct { - Bloom types.Bloom - Coinbase libcommon.Address - MixHash libcommon.Hash - Nonce types.BlockNonce - Number *big.Int - Hash libcommon.Hash - ParentHash libcommon.Hash - ReceiptTrie libcommon.Hash - StateRoot libcommon.Hash - TransactionsTrie libcommon.Hash - UncleHash libcommon.Hash - ExtraData []byte - Difficulty *big.Int - GasLimit uint64 - GasUsed uint64 - Timestamp uint64 - BaseFee *big.Int + Bloom types.Bloom + Coinbase libcommon.Address + MixHash libcommon.Hash + Nonce types.BlockNonce + Number *big.Int + Hash libcommon.Hash + ParentHash libcommon.Hash + ReceiptTrie libcommon.Hash + StateRoot libcommon.Hash + TransactionsTrie libcommon.Hash + UncleHash libcommon.Hash + ExtraData []byte + Difficulty *big.Int + GasLimit uint64 + GasUsed uint64 + Timestamp uint64 + BaseFeePerGas *big.Int + WithdrawalsRoot *libcommon.Hash + BlobGasUsed *uint64 + ExcessBlobGas *uint64 + ParentBeaconBlockRoot *libcommon.Hash } type btHeaderMarshaling struct { - ExtraData hexutility.Bytes - Number *math.HexOrDecimal256 - Difficulty *math.HexOrDecimal256 - GasLimit math.HexOrDecimal64 - GasUsed math.HexOrDecimal64 - Timestamp math.HexOrDecimal64 - BaseFee *math.HexOrDecimal256 + ExtraData hexutility.Bytes + Number *math.HexOrDecimal256 + Difficulty *math.HexOrDecimal256 + GasLimit math.HexOrDecimal64 + GasUsed math.HexOrDecimal64 + Timestamp math.HexOrDecimal64 + BaseFeePerGas *math.HexOrDecimal256 + BlobGasUsed *math.HexOrDecimal64 + ExcessBlobGas *math.HexOrDecimal64 } func (bt *BlockTest) Run(t *testing.T, checkStateRoot bool) error { @@ -113,8 +120,9 @@ func (bt *BlockTest) Run(t *testing.T, checkStateRoot bool) error { if !ok { return UnsupportedForkError{bt.json.Network} } - engine := ethconsensusconfig.CreateConsensusEngineBareBones(config, log.New()) + engine := ethconsensusconfig.CreateConsensusEngineBareBones(context.Background(), config, log.New()) m := mock.MockWithGenesisEngine(t, bt.genesis(config), engine, false, checkStateRoot) + defer m.Close() bt.br = m.BlockReader // import pre accounts & construct test genesis block & state root @@ -125,16 +133,16 @@ func (bt *BlockTest) Run(t *testing.T, checkStateRoot bool) error { return fmt.Errorf("genesis block state root does not match test: computed=%x, test=%x", m.Genesis.Root().Bytes()[:6], bt.json.Genesis.StateRoot[:6]) } - tx, err := m.DB.BeginRw(m.Ctx) + validBlocks, err := bt.insertBlocks(m) if err != nil { return err } - defer tx.Rollback() - validBlocks, err := bt.insertBlocks(m, tx) + tx, err := m.DB.BeginRw(m.Ctx) if err != nil { return err } + defer tx.Rollback() cmlast := rawdb.ReadHeadBlockHash(tx) if libcommon.Hash(bt.json.BestBlock) != cmlast { @@ -149,18 +157,21 @@ func (bt *BlockTest) Run(t *testing.T, checkStateRoot bool) error { func (bt *BlockTest) genesis(config *chain.Config) *types.Genesis { return &types.Genesis{ - Config: config, - Nonce: bt.json.Genesis.Nonce.Uint64(), - Timestamp: bt.json.Genesis.Timestamp, - ParentHash: bt.json.Genesis.ParentHash, - ExtraData: bt.json.Genesis.ExtraData, - GasLimit: bt.json.Genesis.GasLimit, - GasUsed: bt.json.Genesis.GasUsed, - Difficulty: bt.json.Genesis.Difficulty, - Mixhash: bt.json.Genesis.MixHash, - Coinbase: bt.json.Genesis.Coinbase, - Alloc: bt.json.Pre, - BaseFee: bt.json.Genesis.BaseFee, + Config: config, + Nonce: bt.json.Genesis.Nonce.Uint64(), + Timestamp: bt.json.Genesis.Timestamp, + ParentHash: bt.json.Genesis.ParentHash, + ExtraData: bt.json.Genesis.ExtraData, + GasLimit: bt.json.Genesis.GasLimit, + GasUsed: bt.json.Genesis.GasUsed, + Difficulty: bt.json.Genesis.Difficulty, + Mixhash: bt.json.Genesis.MixHash, + Coinbase: bt.json.Genesis.Coinbase, + Alloc: bt.json.Pre, + BaseFee: bt.json.Genesis.BaseFeePerGas, + BlobGasUsed: bt.json.Genesis.BlobGasUsed, + ExcessBlobGas: bt.json.Genesis.ExcessBlobGas, + ParentBeaconBlockRoot: bt.json.Genesis.ParentBeaconBlockRoot, } } @@ -177,7 +188,7 @@ See https://github.com/ethereum/tests/wiki/Blockchain-Tests-II expected we are expected to ignore it and continue processing and then validate the post state. */ -func (bt *BlockTest) insertBlocks(m *mock.MockSentry, tx kv.RwTx) ([]btBlock, error) { +func (bt *BlockTest) insertBlocks(m *mock.MockSentry) ([]btBlock, error) { validBlocks := make([]btBlock, 0) // insert the test blocks, which will execute all transaction for bi, b := range bt.json.Blocks { @@ -192,7 +203,7 @@ func (bt *BlockTest) insertBlocks(m *mock.MockSentry, tx kv.RwTx) ([]btBlock, er // RLP decoding worked, try to insert into chain: chain := &core.ChainPack{Blocks: []*types.Block{cb}, Headers: []*types.Header{cb.Header()}, TopBlock: cb} - err1 := m.InsertChain(chain, tx) + err1 := m.InsertChain(chain) if err1 != nil { if b.BlockHeader == nil { continue // OK - block is supposed to be invalid, continue with next block @@ -200,7 +211,12 @@ func (bt *BlockTest) insertBlocks(m *mock.MockSentry, tx kv.RwTx) ([]btBlock, er return nil, fmt.Errorf("block #%v insertion into chain failed: %w", cb.Number(), err1) } } else if b.BlockHeader == nil { - canonical, cErr := bt.br.CanonicalHash(context.Background(), tx, cb.NumberU64()) + roTx, err := m.DB.BeginRo(m.Ctx) + if err != nil { + return nil, err + } + defer roTx.Rollback() + canonical, cErr := bt.br.CanonicalHash(context.Background(), roTx, cb.NumberU64()) if cErr != nil { return nil, cErr } @@ -272,6 +288,21 @@ func validateHeader(h *btHeader, h2 *types.Header) error { if h.Timestamp != h2.Time { return fmt.Errorf("timestamp: want: %v have: %v", h.Timestamp, h2.Time) } + if !reflect.DeepEqual(h.BaseFeePerGas, h2.BaseFee) { + return fmt.Errorf("baseFeePerGas: want: %v have: %v", h.BaseFeePerGas, h2.BaseFee) + } + if !reflect.DeepEqual(h.WithdrawalsRoot, h2.WithdrawalsHash) { + return fmt.Errorf("withdrawalsRoot: want: %v have: %v", h.WithdrawalsRoot, h2.WithdrawalsHash) + } + if !reflect.DeepEqual(h.BlobGasUsed, h2.BlobGasUsed) { + return fmt.Errorf("blobGasUsed: want: %v have: %v", h.BlobGasUsed, h2.BlobGasUsed) + } + if !reflect.DeepEqual(h.ExcessBlobGas, h2.ExcessBlobGas) { + return fmt.Errorf("excessBlobGas: want: %v have: %v", h.ExcessBlobGas, h2.ExcessBlobGas) + } + if !reflect.DeepEqual(h.ParentBeaconBlockRoot, h2.ParentBeaconBlockRoot) { + return fmt.Errorf("parentBeaconBlockRoot: want: %v have: %v", h.ParentBeaconBlockRoot, h2.ParentBeaconBlockRoot) + } return nil } diff --git a/tests/bor/helper/miner.go b/tests/bor/helper/miner.go new file mode 100644 index 00000000000..fc420100a16 --- /dev/null +++ b/tests/bor/helper/miner.go @@ -0,0 +1,166 @@ +package helper + +import ( + "context" + "crypto/ecdsa" + "encoding/json" + "math/big" + "os" + "time" + + "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon-lib/direct" + "github.com/ledgerwatch/erigon-lib/downloader/downloadercfg" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" + "github.com/ledgerwatch/erigon/cmd/utils" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/crypto" + "github.com/ledgerwatch/erigon/eth" + "github.com/ledgerwatch/erigon/eth/ethconfig" + "github.com/ledgerwatch/erigon/node" + "github.com/ledgerwatch/erigon/node/nodecfg" + "github.com/ledgerwatch/erigon/p2p" + "github.com/ledgerwatch/erigon/p2p/nat" + "github.com/ledgerwatch/erigon/params" + "github.com/ledgerwatch/log/v3" +) + +// InitGenesis initializes genesis file from json with sprint size and chain name as configurable inputs +func InitGenesis(fileLocation string, sprintSize uint64, chainName string) types.Genesis { + + // sprint size = 8 in genesis + genesisData, err := os.ReadFile(fileLocation) + if err != nil { + panic(err) + } + + genesis := &types.Genesis{} + + if err := json.Unmarshal(genesisData, genesis); err != nil { + panic(err) + } + + genesis.Config.Bor.Sprint["0"] = sprintSize + genesis.Config.ChainName = chainName + + return *genesis +} + +func NewEthConfig() *ethconfig.Config { + ethConfig := ðconfig.Defaults + return ethConfig +} + +func NewNodeConfig() *nodecfg.Config { + nodeConfig := nodecfg.DefaultConfig + // see simiar changes in `cmd/geth/config.go#defaultNodeConfig` + if commit := params.GitCommit; commit != "" { + nodeConfig.Version = params.VersionWithCommit(commit) + } else { + nodeConfig.Version = params.Version + } + nodeConfig.IPCPath = "" // force-disable IPC endpoint + nodeConfig.Name = "erigon" + return &nodeConfig +} + +// InitNode initializes a node with the given genesis file and config +func InitMiner(ctx context.Context, genesis *types.Genesis, privKey *ecdsa.PrivateKey, withoutHeimdall bool, minerID int) (*node.Node, *eth.Ethereum, error) { + // Define the basic configurations for the Ethereum node + ddir, _ := os.MkdirTemp("", "") + + logger := log.New() + + nodeCfg := &nodecfg.Config{ + Name: "erigon", + Version: params.Version, + Dirs: datadir.New(ddir), + P2P: p2p.Config{ + ListenAddr: ":30303", + ProtocolVersion: []uint{direct.ETH68, direct.ETH67}, // No need to specify direct.ETH66, because 1 sentry is used for both 66 and 67 + MaxPeers: 100, + MaxPendingPeers: 1000, + AllowedPorts: []uint{30303, 30304, 30305, 30306, 30307, 30308, 30309, 30310}, + PrivateKey: privKey, + NAT: nat.Any(), + }, + + // These are set to prevent disk and page size churn which can be excessive + // when running multiple nodes + // MdbxGrowthStep impacts disk usage, MdbxDBSizeLimit impacts page file usage + MdbxGrowthStep: 4 * datasize.MB, + MdbxDBSizeLimit: 64 * datasize.MB, + } + + stack, err := node.New(context.Background(), nodeCfg, logger) + if err != nil { + return nil, nil, err + } + + downloadRate, err := datasize.ParseString("16mb") + if err != nil { + return nil, nil, err + } + + uploadRate, err := datasize.ParseString("4mb") + if err != nil { + return nil, nil, err + } + + torrentLogLevel, _, err := downloadercfg.Int2LogLevel(3) + if err != nil { + return nil, nil, err + } + + downloaderConfig, err := downloadercfg.New(datadir.New(ddir), nodeCfg.Version, torrentLogLevel, downloadRate, uploadRate, utils.TorrentPortFlag.Value, utils.TorrentConnsPerFileFlag.Value, utils.TorrentDownloadSlotsFlag.Value, []string{}, []string{}, "") + if err != nil { + return nil, nil, err + } + + ethCfg := ðconfig.Config{ + Dirs: datadir.New(ddir), + Genesis: genesis, + NetworkID: genesis.Config.ChainID.Uint64(), + TxPool: txpoolcfg.DefaultConfig, + GPO: ethconfig.Defaults.GPO, + Miner: params.MiningConfig{ + Etherbase: crypto.PubkeyToAddress(privKey.PublicKey), + GasLimit: genesis.GasLimit, + GasPrice: big.NewInt(1), + Recommit: 125 * time.Second, + SigKey: privKey, + Enabled: true, + EnabledPOS: true, + }, + Sync: ethconfig.Defaults.Sync, + Downloader: downloaderConfig, + WithoutHeimdall: withoutHeimdall, + ImportMode: ethconfig.Defaults.ImportMode, + + DeprecatedTxPool: ethconfig.Defaults.DeprecatedTxPool, + RPCGasCap: 50000000, + RPCTxFeeCap: 1, // 1 ether + Snapshot: ethconfig.BlocksFreezing{NoDownloader: true}, + StateStream: true, + } + ethCfg.TxPool.DBDir = nodeCfg.Dirs.TxPool + ethCfg.DeprecatedTxPool.CommitEvery = 15 * time.Second + ethCfg.DeprecatedTxPool.StartOnInit = true + ethCfg.Downloader.ClientConfig.ListenPort = utils.TorrentPortFlag.Value + minerID + ethCfg.TxPool.AccountSlots = 1000000 + ethCfg.DeprecatedTxPool.AccountSlots = 1000000 + ethCfg.DeprecatedTxPool.GlobalSlots = 1000000 + + ethBackend, err := eth.New(ctx, stack, ethCfg, logger) + if err != nil { + return nil, nil, err + } + + err = ethBackend.Init(stack, ethCfg) + if err != nil { + return nil, nil, err + } + + return stack, ethBackend, err +} diff --git a/tests/bor/mining_test.go b/tests/bor/mining_test.go new file mode 100644 index 00000000000..4ed69cd0dd4 --- /dev/null +++ b/tests/bor/mining_test.go @@ -0,0 +1,152 @@ +//go:build integration + +package bor + +import ( + "bytes" + "context" + "crypto/ecdsa" + "fmt" + "os" + "testing" + "time" + + "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon/common" + "github.com/ledgerwatch/erigon/common/fdlimit" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/crypto" + "github.com/ledgerwatch/erigon/eth" + "github.com/ledgerwatch/erigon/node" + "github.com/ledgerwatch/erigon/params" + "github.com/ledgerwatch/erigon/tests/bor/helper" + "github.com/ledgerwatch/log/v3" + + "github.com/ledgerwatch/erigon-lib/gointerfaces" + + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" + txpool_proto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" +) + +const ( + // testCode is the testing contract binary code which will initialises some + // variables in constructor + testCode = "0x60806040527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005534801561003457600080fd5b5060fc806100436000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80630c4dae8814603757806398a213cf146053575b600080fd5b603d607e565b6040518082815260200191505060405180910390f35b607c60048036036020811015606757600080fd5b81019080803590602001909291905050506084565b005b60005481565b806000819055507fe9e44f9f7da8c559de847a3232b57364adc0354f15a2cd8dc636d54396f9587a6000546040518082815260200191505060405180910390a15056fea265627a7a723058208ae31d9424f2d0bc2a3da1a5dd659db2d71ec322a17db8f87e19e209e3a1ff4a64736f6c634300050a0032" + + // testGas is the gas required for contract deployment. + testGas = 144109 +) + +var ( + // addr1 = 0x71562b71999873DB5b286dF957af199Ec94617F7 + pkey1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") + addr1 = crypto.PubkeyToAddress(pkey1.PublicKey) + + // addr2 = 0x9fB29AAc15b9A4B7F17c3385939b007540f4d791 + pkey2, _ = crypto.HexToECDSA("9b28f36fbd67381120752d6172ecdcf10e06ab2d9a1367aac00cdcd6ac7855d3") + addr2 = crypto.PubkeyToAddress(pkey2.PublicKey) + + pkeys = []*ecdsa.PrivateKey{pkey1, pkey2} +) + +// CGO_CFLAGS="-D__BLST_PORTABLE__" : flag required for go test. +// Example : CGO_CFLAGS="-D__BLST_PORTABLE__" go test -run ^TestMiningBenchmark$ github.com/ledgerwatch/erigon/tests/bor -v -count=1 +// In TestMiningBenchmark, we will test the mining performance. We will initialize a single node devnet and fire 5000 txs. We will measure the time it takes to include all the txs. This can be made more advcanced by increasing blockLimit and txsInTxpool. +func TestMiningBenchmark(t *testing.T) { + log.Root().SetHandler(log.LvlFilterHandler(log.LvlInfo, log.StreamHandler(os.Stderr, log.TerminalFormat()))) + fdlimit.Raise(2048) + + genesis := helper.InitGenesis("./testdata/genesis_2val.json", 64, networkname.BorE2ETestChain2ValName) + + var stacks []*node.Node + var ethbackends []*eth.Ethereum + var enodes []string + var txInTxpool = 5000 + var txs []*types.Transaction + + for i := 0; i < 1; i++ { + stack, ethBackend, err := helper.InitMiner(context.Background(), &genesis, pkeys[i], true, i) + if err != nil { + panic(err) + } + + if err := stack.Start(); err != nil { + panic(err) + } + + var nodeInfo *remote.NodesInfoReply + + for nodeInfo == nil || len(nodeInfo.NodesInfo) == 0 { + nodeInfo, err = ethBackend.NodesInfo(1) + + if err != nil { + panic(err) + } + + time.Sleep(200 * time.Millisecond) + } + // nolint : staticcheck + stacks = append(stacks, stack) + + ethbackends = append(ethbackends, ethBackend) + + // nolint : staticcheck + enodes = append(enodes, nodeInfo.NodesInfo[0].Enode) + } + + // nonce starts from 0 because have no txs yet + initNonce := uint64(0) + + for i := 0; i < txInTxpool; i++ { + tx := *newRandomTxWithNonce(false, initNonce+uint64(i), ethbackends[0].TxpoolServer()) + txs = append(txs, &tx) + } + + start := time.Now() + + for _, tx := range txs { + buf := bytes.NewBuffer(nil) + txV := *tx + err := txV.MarshalBinary(buf) + if err != nil { + panic(err) + } + ethbackends[0].TxpoolServer().Add(context.Background(), &txpool.AddRequest{RlpTxs: [][]byte{buf.Bytes()}}) + } + + for { + pendingReply, err := ethbackends[0].TxpoolServer().Status(context.Background(), &txpool_proto.StatusRequest{}) + if err != nil { + panic(err) + } + + if pendingReply.PendingCount == 0 { + break + } + + time.Sleep(5 * time.Millisecond) + } + + timeToExecute := time.Since(start) + + fmt.Printf("\n\nTime to execute %d txs: %s\n", txInTxpool, timeToExecute) + +} + +// newRandomTxWithNonce creates a new transaction with the given nonce. +func newRandomTxWithNonce(creation bool, nonce uint64, txPool txpool_proto.TxpoolServer) *types.Transaction { + var tx types.Transaction + + gasPrice := uint256.NewInt(100 * params.InitialBaseFee) + + if creation { + nonce, _ := txPool.Nonce(context.Background(), &txpool_proto.NonceRequest{Address: gointerfaces.ConvertAddressToH160(addr1)}) + tx, _ = types.SignTx(types.NewContractCreation(nonce.Nonce, uint256.NewInt(0), testGas, gasPrice, common.FromHex(testCode)), *types.LatestSignerForChainID(nil), pkey1) + } else { + tx, _ = types.SignTx(types.NewTransaction(nonce, addr2, uint256.NewInt(1000), params.TxGas, gasPrice, nil), *types.LatestSignerForChainID(nil), pkey1) + } + + return &tx +} diff --git a/tests/bor/testdata/genesis_2val.json b/tests/bor/testdata/genesis_2val.json new file mode 100644 index 00000000000..196e03ea218 --- /dev/null +++ b/tests/bor/testdata/genesis_2val.json @@ -0,0 +1,68 @@ +{ + "config": { + "chainId": 15001, + "homesteadBlock": 0, + "eip150Block": 0, + "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "eip155Block": 0, + "eip158Block": 0, + "byzantiumBlock": 0, + "constantinopleBlock": 0, + "petersburgBlock": 0, + "istanbulBlock": 0, + "muirGlacierBlock": 0, + "berlinBlock": 0, + "londonBlock": 20, + "bor": { + "jaipurBlock": 20, + "delhiBlock" :20, + "period": { + "0": 2 + }, + "producerDelay": { + "0": 4 + }, + "sprint": { + "0": 8 + }, + "backupMultiplier": { + "0": 1 + }, + "validatorContract": "0x0000000000000000000000000000000000001000", + "stateReceiverContract": "0x0000000000000000000000000000000000001001", + "burntContract": { + "0": "0x000000000000000000000000000000000000dead" + } + } + }, + "nonce": "0x0", + "timestamp": "0x5ce28211", + "extraData": "", + "gasLimit": "0x1312D00", + "difficulty": "0x1", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "0000000000000000000000000000000000001000": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101f05760003560e01c806360c8614d1161010f578063af26aa96116100a2578063d5b844eb11610071578063d5b844eb14610666578063dcf2793a14610684578063e3b7c924146106b6578063f59cf565146106d4576101f0565b8063af26aa96146105c7578063b71d7a69146105e7578063b7ab4db514610617578063c1b3c91914610636576101f0565b806370ba5707116100de57806370ba57071461052b57806398ab2b621461055b5780639d11b80714610579578063ae756451146105a9576101f0565b806360c8614d1461049c57806365b3a1e2146104bc57806366332354146104db578063687a9bd6146104f9576101f0565b80633434735f1161018757806344d6528f1161015657806344d6528f146103ee5780634dbc959f1461041e57806355614fcc1461043c578063582a8d081461046c576101f0565b80633434735f1461035257806335ddfeea1461037057806343ee8213146103a057806344c15cb1146103be576101f0565b806323f2a73f116101c357806323f2a73f146102a45780632bc06564146102d45780632de3a180146102f25780632eddf35214610322576101f0565b8063047a6c5b146101f55780630c35b1cb146102275780631270b5741461025857806323c2a2b414610288575b600080fd5b61020f600480360361020a91908101906129ba565b610706565b60405161021e939291906132f9565b60405180910390f35b610241600480360361023c91908101906129ba565b61075d565b60405161024f92919061311a565b60405180910390f35b610272600480360361026d91908101906129e3565b610939565b60405161027f9190613151565b60405180910390f35b6102a2600480360361029d9190810190612ac2565b610a91565b005b6102be60048036036102b991908101906129e3565b61112a565b6040516102cb9190613151565b60405180910390f35b6102dc611281565b6040516102e991906132a7565b60405180910390f35b61030c60048036036103079190810190612917565b611286565b604051610319919061316c565b60405180910390f35b61033c600480360361033791908101906129ba565b611307565b60405161034991906132a7565b60405180910390f35b61035a611437565b60405161036791906130ff565b60405180910390f35b61038a60048036036103859190810190612953565b61144f565b6040516103979190613151565b60405180910390f35b6103a861151a565b6040516103b5919061316c565b60405180910390f35b6103d860048036036103d39190810190612a1f565b611531565b6040516103e591906132a7565b60405180910390f35b610408600480360361040391908101906129e3565b611619565b604051610415919061328c565b60405180910390f35b610426611781565b60405161043391906132a7565b60405180910390f35b6104566004803603610451919081019061289c565b611791565b6040516104639190613151565b60405180910390f35b610486600480360361048191908101906128c5565b6117ab565b604051610493919061316c565b60405180910390f35b6104a4611829565b6040516104b3939291906132f9565b60405180910390f35b6104c461189d565b6040516104d292919061311a565b60405180910390f35b6104e3611a04565b6040516104f091906132a7565b60405180910390f35b610513600480360361050e9190810190612a86565b611a09565b604051610522939291906132c2565b60405180910390f35b6105456004803603610540919081019061289c565b611a6d565b6040516105529190613151565b60405180910390f35b610563611a87565b604051610570919061316c565b60405180910390f35b610593600480360361058e91908101906129ba565b611a9e565b6040516105a091906132a7565b60405180910390f35b6105b1611bcf565b6040516105be919061316c565b60405180910390f35b6105cf611be6565b6040516105de939291906132f9565b60405180910390f35b61060160048036036105fc91908101906129ba565b611c47565b60405161060e91906132a7565b60405180910390f35b61061f611d47565b60405161062d92919061311a565b60405180910390f35b610650600480360361064b91908101906129ba565b611d5b565b60405161065d91906132a7565b60405180910390f35b61066e611d7c565b60405161067b9190613330565b60405180910390f35b61069e60048036036106999190810190612a86565b611d81565b6040516106ad939291906132c2565b60405180910390f35b6106be611de5565b6040516106cb91906132a7565b60405180910390f35b6106ee60048036036106e991908101906129ba565b611df7565b6040516106fd939291906132f9565b60405180910390f35b60008060006002600085815260200190815260200160002060000154600260008681526020019081526020016000206001015460026000878152602001908152602001600020600201549250925092509193909250565b60608060ff83116107795761077061189d565b91509150610934565b600061078484611c47565b9050606060016000838152602001908152602001600020805490506040519080825280602002602001820160405280156107cd5781602001602082028038833980820191505090505b509050606060016000848152602001908152602001600020805490506040519080825280602002602001820160405280156108175781602001602082028038833980820191505090505b50905060008090505b60016000858152602001908152602001600020805490508110156109295760016000858152602001908152602001600020818154811061085c57fe5b906000526020600020906003020160020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683828151811061089a57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001600085815260200190815260200160002081815481106108f257fe5b90600052602060002090600302016001015482828151811061091057fe5b6020026020010181815250508080600101915050610820565b508181945094505050505b915091565b6000606060016000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015610a0c578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190610970565b50505050905060008090505b8151811015610a84578373ffffffffffffffffffffffffffffffffffffffff16828281518110610a4457fe5b60200260200101516040015173ffffffffffffffffffffffffffffffffffffffff161415610a7757600192505050610a8b565b8080600101915050610a18565b5060009150505b92915050565b73fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a9061326c565b60405180910390fd5b6000610b1d611781565b90506000811415610b3157610b30611e21565b5b610b4560018261214290919063ffffffff16565b8814610b86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7d906131ec565b60405180910390fd5b868611610bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbf9061324c565b60405180910390fd5b6000604060018989030181610bd957fe5b0614610c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c119061322c565b60405180910390fd5b8660026000838152602001908152602001600020600101541115610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a906131cc565b60405180910390fd5b6000600260008a81526020019081526020016000206000015414610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc39061320c565b60405180910390fd5b604051806060016040528089815260200188815260200187815250600260008a8152602001908152602001600020600082015181600001556020820151816001015560408201518160020155905050600388908060018154018082558091505090600182039060005260206000200160009091929091909150555060008060008a815260200190815260200160002081610d669190612696565b506000600160008a815260200190815260200160002081610d879190612696565b506060610ddf610dda87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612161565b61218f565b905060008090505b8151811015610f51576060610e0e838381518110610e0157fe5b602002602001015161218f565b90506000808c81526020019081526020016000208054809190600101610e349190612696565b506040518060600160405280610e5d83600081518110610e5057fe5b602002602001015161226c565b8152602001610e7f83600181518110610e7257fe5b602002602001015161226c565b8152602001610ea183600281518110610e9457fe5b60200260200101516122dd565b73ffffffffffffffffffffffffffffffffffffffff168152506000808d81526020019081526020016000208381548110610ed757fe5b9060005260206000209060030201600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050508080600101915050610de7565b506060610fa9610fa486868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612161565b61218f565b905060008090505b815181101561111d576060610fd8838381518110610fcb57fe5b602002602001015161218f565b9050600160008d81526020019081526020016000208054809190600101610fff9190612696565b5060405180606001604052806110288360008151811061101b57fe5b602002602001015161226c565b815260200161104a8360018151811061103d57fe5b602002602001015161226c565b815260200161106c8360028151811061105f57fe5b60200260200101516122dd565b73ffffffffffffffffffffffffffffffffffffffff16815250600160008e815260200190815260200160002083815481106110a357fe5b9060005260206000209060030201600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050508080600101915050610fb1565b5050505050505050505050565b60006060600080858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156111fc578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190611160565b50505050905060008090505b8151811015611274578373ffffffffffffffffffffffffffffffffffffffff1682828151811061123457fe5b60200260200101516040015173ffffffffffffffffffffffffffffffffffffffff1614156112675760019250505061127b565b8080600101915050611208565b5060009150505b92915050565b604081565b60006002600160f81b84846040516020016112a39392919061306c565b6040516020818303038152906040526040516112bf91906130a9565b602060405180830381855afa1580156112dc573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052506112ff91908101906128ee565b905092915050565b60006060600080848152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156113d9578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250508152602001906001019061133d565b505050509050600080905060008090505b825181101561142c5761141d83828151811061140257fe5b6020026020010151602001518361214290919063ffffffff16565b915080806001019150506113ea565b508092505050919050565b73fffffffffffffffffffffffffffffffffffffffe81565b600080600080859050600060218087518161146657fe5b04029050600081111561147f5761147c876117ab565b91505b6000602190505b818111611509576000600182038801519050818801519550806000602081106114ab57fe5b1a60f81b9450600060f81b857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156114f0576114e98685611286565b93506114fd565b6114fa8487611286565b93505b50602181019050611486565b508782149450505050509392505050565b604051611526906130d5565b604051809103902081565b60008060009050600080905060008090505b84518167ffffffffffffffff16101561160c57606061156e868367ffffffffffffffff166041612300565b90506000611585828961238c90919063ffffffff16565b905061158f6126c8565b6115998a83611619565b90506115a58a8361112a565b80156115dc57508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16115b156115fe578194506115fb81602001518761214290919063ffffffff16565b95505b505050604181019050611543565b5081925050509392505050565b6116216126c8565b6060600080858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b828210156116f1578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190611655565b50505050905060008090505b8151811015611779578373ffffffffffffffffffffffffffffffffffffffff1682828151811061172957fe5b60200260200101516040015173ffffffffffffffffffffffffffffffffffffffff16141561176c5781818151811061175d57fe5b60200260200101519250611779565b80806001019150506116fd565b505092915050565b600061178c43611c47565b905090565b60006117a461179e611781565b8361112a565b9050919050565b60006002600060f81b836040516020016117c6929190613040565b6040516020818303038152906040526040516117e291906130a9565b602060405180830381855afa1580156117ff573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525061182291908101906128ee565b9050919050565b60008060008061184a600161183c611781565b61214290919063ffffffff16565b905060026000828152602001908152602001600020600001546002600083815260200190815260200160002060010154600260008481526020019081526020016000206002015493509350935050909192565b606080606060026040519080825280602002602001820160405280156118d25781602001602082028038833980820191505090505b5090507371562b71999873db5b286df957af199ec94617f7816000815181106118f757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050739fb29aac15b9a4b7f17c3385939b007540f4d7918160018151811061195357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050606060026040519080825280602002602001820160405280156119bf5781602001602082028038833980820191505090505b5090506028816000815181106119d157fe5b602002602001018181525050601e816001815181106119ec57fe5b60200260200101818152505081819350935050509091565b60ff81565b60016020528160005260406000208181548110611a2257fe5b9060005260206000209060030201600091509150508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b6000611a80611a7a611781565b83610939565b9050919050565b604051611a93906130c0565b604051809103902081565b6000606060016000848152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b82821015611b71578382906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020019060010190611ad5565b505050509050600080905060008090505b8251811015611bc457611bb5838281518110611b9a57fe5b6020026020010151602001518361214290919063ffffffff16565b91508080600101915050611b82565b508092505050919050565b604051611bdb906130ea565b604051809103902081565b600080600080611bf4611781565b905060026000828152602001908152602001600020600001546002600083815260200190815260200160002060010154600260008481526020019081526020016000206002015493509350935050909192565b60008060038054905090505b6000811115611d0757611c646126ff565b6002600060036001850381548110611c7857fe5b906000526020600020015481526020019081526020016000206040518060600160405290816000820154815260200160018201548152602001600282015481525050905083816020015111158015611cd557506000816040015114155b8015611ce5575080604001518411155b15611cf857806000015192505050611d42565b50808060019003915050611c53565b5060006003805490501115611d3d57600360016003805490500381548110611d2b57fe5b90600052602060002001549050611d42565b600090505b919050565b606080611d534361075d565b915091509091565b60038181548110611d6857fe5b906000526020600020016000915090505481565b600281565b60006020528160005260406000208181548110611d9a57fe5b9060005260206000209060030201600091509150508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905083565b600060404381611df157fe5b04905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b606080611e2c61189d565b8092508193505050600080905060405180606001604052808281526020016000815260200160ff815250600260008381526020019081526020016000206000820151816000015560208201518160010155604082015181600201559050506003819080600181540180825580915050906001820390600052602060002001600090919290919091505550600080600083815260200190815260200160002081611ed59190612696565b5060006001600083815260200190815260200160002081611ef69190612696565b5060008090505b8351811015612018576000808381526020019081526020016000208054809190600101611f2a9190612696565b506040518060600160405280828152602001848381518110611f4857fe5b60200260200101518152602001858381518110611f6157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168152506000808481526020019081526020016000208281548110611f9f57fe5b9060005260206000209060030201600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050508080600101915050611efd565b5060008090505b835181101561213c5760016000838152602001908152602001600020805480919060010161204d9190612696565b50604051806060016040528082815260200184838151811061206b57fe5b6020026020010151815260200185838151811061208457fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff168152506001600084815260200190815260200160002082815481106120c357fe5b9060005260206000209060030201600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050808060010191505061201f565b50505050565b60008082840190508381101561215757600080fd5b8091505092915050565b612169612720565b600060208301905060405180604001604052808451815260200182815250915050919050565b606061219a82612496565b6121a357600080fd5b60006121ae836124e4565b90506060816040519080825280602002602001820160405280156121ec57816020015b6121d961273a565b8152602001906001900390816121d15790505b50905060006121fe8560200151612555565b8560200151019050600080600090505b8481101561225f5761221f836125de565b915060405180604001604052808381526020018481525084828151811061224257fe5b60200260200101819052508183019250808060010191505061220e565b5082945050505050919050565b600080826000015111801561228657506021826000015111155b61228f57600080fd5b600061229e8360200151612555565b905060008184600001510390506000808386602001510190508051915060208310156122d157826020036101000a820491505b81945050505050919050565b600060158260000151146122f057600080fd5b6122f98261226c565b9050919050565b60608183018451101561231257600080fd5b606082156000811461232f57604051915060208201604052612380565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561236d5780518352602083019250602081019050612350565b50868552601f19601f8301166040525050505b50809150509392505050565b60008060008060418551146123a75760009350505050612490565b602085015192506040850151915060ff6041860151169050601b8160ff1610156123d257601b810190505b601b8160ff16141580156123ea5750601c8160ff1614155b156123fb5760009350505050612490565b6000600187838686604051600081526020016040526040516124209493929190613187565b6020604051602081039080840390855afa158015612442573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561248857600080fd5b809450505050505b92915050565b600080826000015114156124ad57600090506124df565b60008083602001519050805160001a915060c060ff168260ff1610156124d8576000925050506124df565b6001925050505b919050565b600080826000015114156124fb5760009050612550565b6000809050600061250f8460200151612555565b84602001510190506000846000015185602001510190505b8082101561254957612538826125de565b820191508280600101935050612527565b8293505050505b919050565b600080825160001a9050608060ff168110156125755760009150506125d9565b60b860ff1681108061259a575060c060ff168110158015612599575060f860ff1681105b5b156125a95760019150506125d9565b60c060ff168110156125c95760018060b80360ff168203019150506125d9565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff168110156125ff576001915061268c565b60b860ff1681101561261c576001608060ff16820301915061268b565b60c060ff1681101561264c5760b78103600185019450806020036101000a8551046001820181019350505061268a565b60f860ff1681101561266957600160c060ff168203019150612689565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b8154818355818111156126c3576003028160030283600052602060002091820191016126c29190612754565b5b505050565b60405180606001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681525090565b60405180606001604052806000815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b604051806040016040528060008152602001600081525090565b6127a791905b808211156127a35760008082016000905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060030161275a565b5090565b90565b6000813590506127b981613529565b92915050565b6000813590506127ce81613540565b92915050565b6000815190506127e381613540565b92915050565b60008083601f8401126127fb57600080fd5b8235905067ffffffffffffffff81111561281457600080fd5b60208301915083600182028301111561282c57600080fd5b9250929050565b600082601f83011261284457600080fd5b813561285761285282613378565b61334b565b9150808252602083016020830185838301111561287357600080fd5b61287e8382846134d3565b50505092915050565b60008135905061289681613557565b92915050565b6000602082840312156128ae57600080fd5b60006128bc848285016127aa565b91505092915050565b6000602082840312156128d757600080fd5b60006128e5848285016127bf565b91505092915050565b60006020828403121561290057600080fd5b600061290e848285016127d4565b91505092915050565b6000806040838503121561292a57600080fd5b6000612938858286016127bf565b9250506020612949858286016127bf565b9150509250929050565b60008060006060848603121561296857600080fd5b6000612976868287016127bf565b9350506020612987868287016127bf565b925050604084013567ffffffffffffffff8111156129a457600080fd5b6129b086828701612833565b9150509250925092565b6000602082840312156129cc57600080fd5b60006129da84828501612887565b91505092915050565b600080604083850312156129f657600080fd5b6000612a0485828601612887565b9250506020612a15858286016127aa565b9150509250929050565b600080600060608486031215612a3457600080fd5b6000612a4286828701612887565b9350506020612a53868287016127bf565b925050604084013567ffffffffffffffff811115612a7057600080fd5b612a7c86828701612833565b9150509250925092565b60008060408385031215612a9957600080fd5b6000612aa785828601612887565b9250506020612ab885828601612887565b9150509250929050565b600080600080600080600060a0888a031215612add57600080fd5b6000612aeb8a828b01612887565b9750506020612afc8a828b01612887565b9650506040612b0d8a828b01612887565b955050606088013567ffffffffffffffff811115612b2a57600080fd5b612b368a828b016127e9565b9450945050608088013567ffffffffffffffff811115612b5557600080fd5b612b618a828b016127e9565b925092505092959891949750929550565b6000612b7e8383612ba2565b60208301905092915050565b6000612b968383613013565b60208301905092915050565b612bab81613448565b82525050565b612bba81613448565b82525050565b6000612bcb826133c4565b612bd581856133ff565b9350612be0836133a4565b8060005b83811015612c11578151612bf88882612b72565b9750612c03836133e5565b925050600181019050612be4565b5085935050505092915050565b6000612c29826133cf565b612c338185613410565b9350612c3e836133b4565b8060005b83811015612c6f578151612c568882612b8a565b9750612c61836133f2565b925050600181019050612c42565b5085935050505092915050565b612c858161345a565b82525050565b612c9c612c9782613466565b613515565b82525050565b612cab81613492565b82525050565b612cc2612cbd82613492565b61351f565b82525050565b6000612cd3826133da565b612cdd8185613421565b9350612ced8185602086016134e2565b80840191505092915050565b6000612d0660048361343d565b91507f766f7465000000000000000000000000000000000000000000000000000000006000830152600482019050919050565b6000612d46602d8361342c565b91507f537461727420626c6f636b206d7573742062652067726561746572207468616e60008301527f2063757272656e74207370616e000000000000000000000000000000000000006020830152604082019050919050565b6000612dac600f8361343d565b91507f6865696d64616c6c2d50357258776700000000000000000000000000000000006000830152600f82019050919050565b6000612dec600f8361342c565b91507f496e76616c6964207370616e20696400000000000000000000000000000000006000830152602082019050919050565b6000612e2c60138361342c565b91507f5370616e20616c726561647920657869737473000000000000000000000000006000830152602082019050919050565b6000612e6c60458361342c565b91507f446966666572656e6365206265747765656e20737461727420616e6420656e6460008301527f20626c6f636b206d75737420626520696e206d756c7469706c6573206f66207360208301527f7072696e740000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000612ef8602a8361342c565b91507f456e6420626c6f636b206d7573742062652067726561746572207468616e207360008301527f7461727420626c6f636b000000000000000000000000000000000000000000006020830152604082019050919050565b6000612f5e60058361343d565b91507f31353030310000000000000000000000000000000000000000000000000000006000830152600582019050919050565b6000612f9e60128361342c565b91507f4e6f742053797374656d204164646573732100000000000000000000000000006000830152602082019050919050565b606082016000820151612fe76000850182613013565b506020820151612ffa6020850182613013565b50604082015161300d6040850182612ba2565b50505050565b61301c816134bc565b82525050565b61302b816134bc565b82525050565b61303a816134c6565b82525050565b600061304c8285612c8b565b60018201915061305c8284612cb1565b6020820191508190509392505050565b60006130788286612c8b565b6001820191506130888285612cb1565b6020820191506130988284612cb1565b602082019150819050949350505050565b60006130b58284612cc8565b915081905092915050565b60006130cb82612cf9565b9150819050919050565b60006130e082612d9f565b9150819050919050565b60006130f582612f51565b9150819050919050565b60006020820190506131146000830184612bb1565b92915050565b600060408201905081810360008301526131348185612bc0565b905081810360208301526131488184612c1e565b90509392505050565b60006020820190506131666000830184612c7c565b92915050565b60006020820190506131816000830184612ca2565b92915050565b600060808201905061319c6000830187612ca2565b6131a96020830186613031565b6131b66040830185612ca2565b6131c36060830184612ca2565b95945050505050565b600060208201905081810360008301526131e581612d39565b9050919050565b6000602082019050818103600083015261320581612ddf565b9050919050565b6000602082019050818103600083015261322581612e1f565b9050919050565b6000602082019050818103600083015261324581612e5f565b9050919050565b6000602082019050818103600083015261326581612eeb565b9050919050565b6000602082019050818103600083015261328581612f91565b9050919050565b60006060820190506132a16000830184612fd1565b92915050565b60006020820190506132bc6000830184613022565b92915050565b60006060820190506132d76000830186613022565b6132e46020830185613022565b6132f16040830184612bb1565b949350505050565b600060608201905061330e6000830186613022565b61331b6020830185613022565b6133286040830184613022565b949350505050565b60006020820190506133456000830184613031565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561336e57600080fd5b8060405250919050565b600067ffffffffffffffff82111561338f57600080fd5b601f19601f8301169050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006134538261349c565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b838110156135005780820151818401526020810190506134e5565b8381111561350f576000848401525b50505050565b6000819050919050565b6000819050919050565b61353281613448565b811461353d57600080fd5b50565b61354981613492565b811461355457600080fd5b50565b613560816134bc565b811461356b57600080fd5b5056fea365627a7a7231582051bf0a46b5958c4ecdf9f1f9a9d8b62deacac5d79cdf5595e9853f3c0132fe236c6578706572696d656e74616cf564736f6c63430005110040" + }, + "0000000000000000000000000000000000001001": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806319494a17146100465780633434735f146100e15780635407ca671461012b575b600080fd5b6100c76004803603604081101561005c57600080fd5b81019080803590602001909291908035906020019064010000000081111561008357600080fd5b82018360208201111561009557600080fd5b803590602001918460018302840111640100000000831117156100b757600080fd5b9091929391929390505050610149565b604051808215151515815260200191505060405180910390f35b6100e961047a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610133610492565b6040518082815260200191505060405180910390f35b600073fffffffffffffffffffffffffffffffffffffffe73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f742053797374656d2041646465737321000000000000000000000000000081525060200191505060405180910390fd5b606061025761025285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610498565b6104c6565b905060006102788260008151811061026b57fe5b60200260200101516105a3565b905080600160005401146102f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f537461746549647320617265206e6f742073657175656e7469616c000000000081525060200191505060405180910390fd5b600080815480929190600101919050555060006103248360018151811061031757fe5b6020026020010151610614565b905060606103458460028151811061033857fe5b6020026020010151610637565b9050610350826106c3565b1561046f576000624c4b409050606084836040516024018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156103aa57808201518184015260208101905061038f565b50505050905090810190601f1680156103d75780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f26c53bea000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050905060008082516020840160008887f1965050505b505050509392505050565b73fffffffffffffffffffffffffffffffffffffffe81565b60005481565b6104a0610943565b600060208301905060405180604001604052808451815260200182815250915050919050565b60606104d1826106dc565b6104da57600080fd5b60006104e58361072a565b905060608160405190808252806020026020018201604052801561052357816020015b61051061095d565b8152602001906001900390816105085790505b5090506000610535856020015161079b565b8560200151019050600080600090505b848110156105965761055683610824565b915060405180604001604052808381526020018481525084828151811061057957fe5b602002602001018190525081830192508080600101915050610545565b5082945050505050919050565b60008082600001511180156105bd57506021826000015111155b6105c657600080fd5b60006105d5836020015161079b565b9050600081846000015103905060008083866020015101905080519150602083101561060857826020036101000a820491505b81945050505050919050565b6000601582600001511461062757600080fd5b610630826105a3565b9050919050565b6060600082600001511161064a57600080fd5b6000610659836020015161079b565b905060008184600001510390506060816040519080825280601f01601f19166020018201604052801561069b5781602001600182028038833980820191505090505b50905060008160200190506106b78487602001510182856108dc565b81945050505050919050565b600080823b905060008163ffffffff1611915050919050565b600080826000015114156106f35760009050610725565b60008083602001519050805160001a915060c060ff168260ff16101561071e57600092505050610725565b6001925050505b919050565b600080826000015114156107415760009050610796565b60008090506000610755846020015161079b565b84602001510190506000846000015185602001510190505b8082101561078f5761077e82610824565b82019150828060010193505061076d565b8293505050505b919050565b600080825160001a9050608060ff168110156107bb57600091505061081f565b60b860ff168110806107e0575060c060ff1681101580156107df575060f860ff1681105b5b156107ef57600191505061081f565b60c060ff1681101561080f5760018060b80360ff1682030191505061081f565b60018060f80360ff168203019150505b919050565b6000806000835160001a9050608060ff1681101561084557600191506108d2565b60b860ff16811015610862576001608060ff1682030191506108d1565b60c060ff168110156108925760b78103600185019450806020036101000a855104600182018101935050506108d0565b60f860ff168110156108af57600160c060ff1682030191506108cf565b60f78103600185019450806020036101000a855104600182018101935050505b5b5b5b8192505050919050565b60008114156108ea5761093e565b5b602060ff16811061091a5782518252602060ff1683019250602060ff1682019150602060ff16810390506108eb565b6000600182602060ff16036101000a03905080198451168184511681811785525050505b505050565b604051806040016040528060008152602001600081525090565b60405180604001604052806000815260200160008152509056fea265627a7a72315820af228b81e19dac46d14c24d264bde25d8a461d559c4e3cc82a5f1660755df35e64736f6c63430005110032" + }, + "0000000000000000000000000000000000001010": { + "balance": "0x204fcdf1d291a6d552c00000", + "code": "0x60806040526004361061019c5760003560e01c806377d32e94116100ec578063acd06cb31161008a578063e306f77911610064578063e306f77914610a7b578063e614d0d614610aa6578063f2fde38b14610ad1578063fc0c546a14610b225761019c565b8063acd06cb31461097a578063b789543c146109cd578063cc79f97b14610a505761019c565b80639025e64c116100c65780639025e64c146107c957806395d89b4114610859578063a9059cbb146108e9578063abceeba21461094f5761019c565b806377d32e94146106315780638da5cb5b146107435780638f32d59b1461079a5761019c565b806347e7ef24116101595780637019d41a116101335780637019d41a1461053357806370a082311461058a578063715018a6146105ef578063771282f6146106065761019c565b806347e7ef2414610410578063485cc9551461046b57806360f96a8f146104dc5761019c565b806306fdde03146101a15780631499c5921461023157806318160ddd1461028257806319d27d9c146102ad5780632e1a7d4d146103b1578063313ce567146103df575b600080fd5b3480156101ad57600080fd5b506101b6610b79565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b506102806004803603602081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb6565b005b34801561028e57600080fd5b50610297610c24565b6040518082815260200191505060405180910390f35b3480156102b957600080fd5b5061036f600480360360a08110156102d057600080fd5b81019080803590602001906401000000008111156102ed57600080fd5b8201836020820111156102ff57600080fd5b8035906020019184600183028401116401000000008311171561032157600080fd5b9091929391929390803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103dd600480360360208110156103c757600080fd5b8101908080359060200190929190505050610e06565b005b3480156103eb57600080fd5b506103f4610f58565b604051808260ff1660ff16815260200191505060405180910390f35b34801561041c57600080fd5b506104696004803603604081101561043357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f61565b005b34801561047757600080fd5b506104da6004803603604081101561048e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061111d565b005b3480156104e857600080fd5b506104f16111ec565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561053f57600080fd5b50610548611212565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059657600080fd5b506105d9600480360360208110156105ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611238565b6040518082815260200191505060405180910390f35b3480156105fb57600080fd5b50610604611259565b005b34801561061257600080fd5b5061061b611329565b6040518082815260200191505060405180910390f35b34801561063d57600080fd5b506107016004803603604081101561065457600080fd5b81019080803590602001909291908035906020019064010000000081111561067b57600080fd5b82018360208201111561068d57600080fd5b803590602001918460018302840111640100000000831117156106af57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061132f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074f57600080fd5b506107586114b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107a657600080fd5b506107af6114dd565b604051808215151515815260200191505060405180910390f35b3480156107d557600080fd5b506107de611534565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561081e578082015181840152602081019050610803565b50505050905090810190601f16801561084b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561086557600080fd5b5061086e61156d565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108ae578082015181840152602081019050610893565b50505050905090810190601f1680156108db5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610935600480360360408110156108ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115aa565b604051808215151515815260200191505060405180910390f35b34801561095b57600080fd5b506109646115d0565b6040518082815260200191505060405180910390f35b34801561098657600080fd5b506109b36004803603602081101561099d57600080fd5b810190808035906020019092919050505061165d565b604051808215151515815260200191505060405180910390f35b3480156109d957600080fd5b50610a3a600480360360808110156109f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919050505061167d565b6040518082815260200191505060405180910390f35b348015610a5c57600080fd5b50610a6561169d565b6040518082815260200191505060405180910390f35b348015610a8757600080fd5b50610a906116a3565b6040518082815260200191505060405180910390f35b348015610ab257600080fd5b50610abb6116a9565b6040518082815260200191505060405180910390f35b348015610add57600080fd5b50610b2060048036036020811015610af457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611736565b005b348015610b2e57600080fd5b50610b37611753565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60606040518060400160405280600b81526020017f4d6174696320546f6b656e000000000000000000000000000000000000000000815250905090565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f44697361626c656420666561747572650000000000000000000000000000000081525060200191505060405180910390fd5b6000601260ff16600a0a6402540be40002905090565b6000808511610c4857600080fd5b6000831480610c575750824311155b610cc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5369676e6174757265206973206578706972656400000000000000000000000081525060200191505060405180910390fd5b6000610cd73387878761167d565b9050600015156005600083815260200190815260200160002060009054906101000a900460ff16151514610d73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f536967206465616374697661746564000000000000000000000000000000000081525060200191505060405180910390fd5b60016005600083815260200190815260200160002060006101000a81548160ff021916908315150217905550610ded8189898080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061132f565b9150610dfa828488611779565b50509695505050505050565b60003390506000610e1682611238565b9050610e2d83600654611b3690919063ffffffff16565b600681905550600083118015610e4257508234145b610eb4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8584610f3087611238565b60405180848152602001838152602001828152602001935050505060405180910390a3505050565b60006012905090565b610f696114dd565b610f7257600080fd5b600081118015610faf5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611f046023913960400191505060405180910390fd5b600061100f83611238565b905060008390508073ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f1935050505015801561105c573d6000803e3d6000fd5b5061107283600654611b5690919063ffffffff16565b6006819055508373ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f685856110f489611238565b60405180848152602001838152602001828152602001935050505060405180910390a350505050565b600760009054906101000a900460ff1615611183576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611ee16023913960400191505060405180910390fd5b6001600760006101000a81548160ff02191690831515021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506111e882611b75565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b6112616114dd565b61126a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065481565b600080600080604185511461134a57600093505050506114ae565b602085015192506040850151915060ff6041860151169050601b8160ff16101561137557601b810190505b601b8160ff161415801561138d5750601c8160ff1614155b1561139e57600093505050506114ae565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156113fb573d6000803e3d6000fd5b505050602060405103519350600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156114aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4572726f7220696e2065637265636f766572000000000000000000000000000081525060200191505060405180910390fd5b5050505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600281526020017f3a9900000000000000000000000000000000000000000000000000000000000081525081565b60606040518060400160405280600581526020017f4d41544943000000000000000000000000000000000000000000000000000000815250905090565b60008134146115bc57600090506115ca565b6115c7338484611779565b90505b92915050565b6040518060800160405280605b8152602001611f79605b91396040516020018082805190602001908083835b6020831061161f57805182526020820191506020810190506020830392506115fc565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b60056020528060005260406000206000915054906101000a900460ff1681565b600061169361168e86868686611c6d565b611d43565b9050949350505050565b613a9981565b60015481565b604051806080016040528060528152602001611f27605291396040516020018082805190602001908083835b602083106116f857805182526020820191506020810190506020830392506116d5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012081565b61173e6114dd565b61174757600080fd5b61175081611b75565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156117f957600080fd5b505afa15801561180d573d6000803e3d6000fd5b505050506040513d602081101561182357600080fd5b8101908080519060200190929190505050905060003073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156118b557600080fd5b505afa1580156118c9573d6000803e3d6000fd5b505050506040513d60208110156118df57600080fd5b810190808051906020019092919050505090506118fd868686611d8d565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fe6497e3ee548a3372136af2fcb0696db31fc6cf20260707645068bd3fe97f3c48786863073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611a0557600080fd5b505afa158015611a19573d6000803e3d6000fd5b505050506040513d6020811015611a2f57600080fd5b81019080805190602001909291905050503073ffffffffffffffffffffffffffffffffffffffff166370a082318e6040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611abd57600080fd5b505afa158015611ad1573d6000803e3d6000fd5b505050506040513d6020811015611ae757600080fd5b8101908080519060200190929190505050604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a46001925050509392505050565b600082821115611b4557600080fd5b600082840390508091505092915050565b600080828401905083811015611b6b57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611baf57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806040518060800160405280605b8152602001611f79605b91396040516020018082805190602001908083835b60208310611cbf5780518252602082019150602081019050602083039250611c9c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120905060405181815273ffffffffffffffffffffffffffffffffffffffff8716602082015285604082015284606082015283608082015260a0812092505081915050949350505050565b60008060015490506040517f190100000000000000000000000000000000000000000000000000000000000081528160028201528360228201526042812092505081915050919050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f63616e27742073656e6420746f204d524332300000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e75573d6000803e3d6000fd5b508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505056fe54686520636f6e747261637420697320616c726561647920696e697469616c697a6564496e73756666696369656e7420616d6f756e74206f7220696e76616c69642075736572454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429546f6b656e5472616e736665724f726465722861646472657373207370656e6465722c75696e7432353620746f6b656e49644f72416d6f756e742c6279746573333220646174612c75696e743235362065787069726174696f6e29a265627a7a723158205723157ad1c8ebb37fecace5dc0ce2dfa893ec59d46a1305ad694cd0170076ab64736f6c63430005110032" + }, + "71562b71999873DB5b286dF957af199Ec94617F7": { + "balance": "0x3635c9adc5dea00000" + }, + "9fB29AAc15b9A4B7F17c3385939b007540f4d791": { + "balance": "0x3635c9adc5dea00000" + } + }, + "number": "0x0", + "gasUsed": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000" + } diff --git a/tests/erigon-ext-test/.gitignore b/tests/erigon-ext-test/.gitignore new file mode 100644 index 00000000000..08cb523c182 --- /dev/null +++ b/tests/erigon-ext-test/.gitignore @@ -0,0 +1 @@ +go.sum diff --git a/tests/erigon-ext-test/go.mod b/tests/erigon-ext-test/go.mod new file mode 100644 index 00000000000..47a463aaf74 --- /dev/null +++ b/tests/erigon-ext-test/go.mod @@ -0,0 +1,3 @@ +// this is a dummy file needed to exclude this folder from the root folder unit tests suite +// the actual go.mod for the test is generated by test.sh from go.mod.template +module example.com/erigon-ext-test diff --git a/tests/erigon-ext-test/go.mod.template b/tests/erigon-ext-test/go.mod.template new file mode 100644 index 00000000000..515b3b14281 --- /dev/null +++ b/tests/erigon-ext-test/go.mod.template @@ -0,0 +1,9 @@ +module example.com/erigon-ext-test + +go 1.20 + +require github.com/ledgerwatch/erigon $COMMIT_SHA + +replace github.com/ledgerwatch/erigon-lib => github.com/ledgerwatch/erigon/erigon-lib $COMMIT_SHA + +require github.com/ethereum/go-ethereum v1.13.3 diff --git a/tests/erigon-ext-test/main.go b/tests/erigon-ext-test/main.go new file mode 100644 index 00000000000..b8322f5973e --- /dev/null +++ b/tests/erigon-ext-test/main.go @@ -0,0 +1,18 @@ +package main + +import ( + geth_params "github.com/ethereum/go-ethereum/params" + // geth_crypto "github.com/ethereum/go-ethereum/crypto" + erigon_lib_common "github.com/ledgerwatch/erigon-lib/common" + erigon_crypto "github.com/ledgerwatch/erigon/crypto" + erigon_params "github.com/ledgerwatch/erigon/params" +) + +func main() { + println("Erigon version: ", erigon_params.Version) + println("geth version: ", geth_params.Version) + println("Erigon lib common eth Wei: ", erigon_lib_common.Wei) + println("Erigon crypto secp256k1 S256 BitSize: ", erigon_crypto.S256().Params().BitSize) + // not working due to duplicate symbols errors + // println("geth crypto secp256k1 S256 BitSize: ", geth_crypto.S256().Params().BitSize) +} diff --git a/tests/erigon-ext-test/test.sh b/tests/erigon-ext-test/test.sh new file mode 100755 index 00000000000..362028e5fe7 --- /dev/null +++ b/tests/erigon-ext-test/test.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +COMMIT_SHA="$1" + +sed "s/\$COMMIT_SHA/$COMMIT_SHA/" go.mod.template > go.mod + +rm -f go.sum +go mod tidy + +go run main.go diff --git a/tests/exec_spec_test.go b/tests/exec_spec_test.go index 66c5d231c45..de67b0a6315 100644 --- a/tests/exec_spec_test.go +++ b/tests/exec_spec_test.go @@ -1,13 +1,20 @@ +//go:build integration + package tests import ( "path/filepath" "testing" + "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/log/v3" ) func TestExecutionSpec(t *testing.T) { + if ethconfig.EnableHistoryV3InTest { + t.Skip("fix me in e3 please") + } + defer log.Root().SetHandler(log.Root().GetHandler()) log.Root().SetHandler(log.LvlFilterHandler(log.LvlError, log.StderrHandler)) @@ -15,16 +22,7 @@ func TestExecutionSpec(t *testing.T) { dir := filepath.Join(".", "execution-spec-tests") - // Probably failing due to pre-Byzantium receipts - bt.skipLoad(`^frontier/`) - bt.skipLoad(`^homestead/`) - - // TODO(yperbasis): fix me - bt.skipLoad(`^cancun/eip4844_blobs/`) - bt.skipLoad(`^cancun/eip6780_selfdestruct/`) - - // TODO(yperbasis): re-enable checkStateRoot - checkStateRoot := false + checkStateRoot := true bt.walk(t, dir, func(t *testing.T, name string, test *BlockTest) { // import pre accounts & construct test genesis block & state root diff --git a/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json b/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json index fab78df5d7f..3caca4ffc53 100644 --- a/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json +++ b/tests/execution-spec-tests/berlin/eip2930_access_list/acl/access_list.json @@ -1,11 +1,30 @@ { "000-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2930.md", "reference-spec-version": "c9db53a936c5c9cbe2db32ba0d1b86c4c6e73534" }, + "network": "Berlin", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07ca5207156b9c65aca3ac89e905f0ec30da7588118ca729dc4284db2c4b45c60a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7ca5207156b9c65aca3ac89e905f0ec30da7588118ca729dc4284db2c4b45c60", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xe540ee23594e55591795578f92e1e70e1f4c4e4b22f6046f350ae3ce49d42b41" + }, "blocks": [ { "rlp": "0xf902a2f901fca0e540ee23594e55591795578f92e1e70e1f4c4e4b22f6046f350ae3ce49d42b41a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa051799508f764047aee6606bc6a00863856f83ee5b91555f00c8a3cbdfbec5acba083036377ab0b67bd49b91ee1f4bbf5155c36ebf76f81ed88a00276f21693e92ca0c166d1f62ef90bdef78d79a4b28579b279621fbcd156aba3060f242d5feeda67b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008273428203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f8a0b89e01f89b0180078304ef0094000000000000000000000000000000000000aaaa0180f838f7940000000000000000000000000000000000000000e1a0000000000000000000000000000000000000000000000000000000000000000001a02e16eb72206c93c471b5894800495ee9c64ae2d9823bcc4d6adeb5d9d9af0dd4a03be6691e933a0816c59d059a556c27c6753e6ce76d1e357b9201865c80b28df3c0", @@ -33,8 +52,10 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x07", - "value": "0x01", + "gasLimit": "0x04ef00", "to": "0x000000000000000000000000000000000000aaaa", + "value": "0x01", + "data": "0x", "accessList": [ { "address": "0x0000000000000000000000000000000000000000", @@ -43,36 +64,16 @@ ] } ], - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "data": "0x", - "gasLimit": "0x04ef00" + "v": "0x01", + "r": "0x2e16eb72206c93c471b5894800495ee9c64ae2d9823bcc4d6adeb5d9d9af0dd4", + "s": "0x3be6691e933a0816c59d059a556c27c6753e6ce76d1e357b9201865c80b28df3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7ca5207156b9c65aca3ac89e905f0ec30da7588118ca729dc4284db2c4b45c60", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0xe540ee23594e55591795578f92e1e70e1f4c4e4b22f6046f350ae3ce49d42b41" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07ca5207156b9c65aca3ac89e905f0ec30da7588118ca729dc4284db2c4b45c60a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", "lastblockhash": "0x0b2f11e1a37119802e23c8cafeca6bea3ad8bc3ffb312ba2c01aaf6ed0598ea6", - "network": "Berlin", "pre": { "0x000000000000000000000000000000000000aaaa": { "nonce": "0x01", @@ -111,11 +112,31 @@ }, "001-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2930.md", "reference-spec-version": "c9db53a936c5c9cbe2db32ba0d1b86c4c6e73534" }, + "network": "London", + "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07ca5207156b9c65aca3ac89e905f0ec30da7588118ca729dc4284db2c4b45c60a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7ca5207156b9c65aca3ac89e905f0ec30da7588118ca729dc4284db2c4b45c60", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xdb93bdc16193a5896b90fab6471d77faacb899c66f3f90e41bfa5a736987a8cb" + }, "blocks": [ { "rlp": "0xf902a3f901fda0db93bdc16193a5896b90fab6471d77faacb899c66f3f90e41bfa5a736987a8cba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aa7787f93658761ab396c85c2c328b327191ee8462420a8b6706fdc7d1fd26afa083036377ab0b67bd49b91ee1f4bbf5155c36ebf76f81ed88a00276f21693e92ca0c166d1f62ef90bdef78d79a4b28579b279621fbcd156aba3060f242d5feeda67b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008273428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f8a0b89e01f89b0180078304ef0094000000000000000000000000000000000000aaaa0180f838f7940000000000000000000000000000000000000000e1a0000000000000000000000000000000000000000000000000000000000000000001a02e16eb72206c93c471b5894800495ee9c64ae2d9823bcc4d6adeb5d9d9af0dd4a03be6691e933a0816c59d059a556c27c6753e6ce76d1e357b9201865c80b28df3c0", @@ -144,8 +165,10 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x07", - "value": "0x01", + "gasLimit": "0x04ef00", "to": "0x000000000000000000000000000000000000aaaa", + "value": "0x01", + "data": "0x", "accessList": [ { "address": "0x0000000000000000000000000000000000000000", @@ -154,37 +177,16 @@ ] } ], - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "data": "0x", - "gasLimit": "0x04ef00" + "v": "0x01", + "r": "0x2e16eb72206c93c471b5894800495ee9c64ae2d9823bcc4d6adeb5d9d9af0dd4", + "s": "0x3be6691e933a0816c59d059a556c27c6753e6ce76d1e357b9201865c80b28df3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7ca5207156b9c65aca3ac89e905f0ec30da7588118ca729dc4284db2c4b45c60", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xdb93bdc16193a5896b90fab6471d77faacb899c66f3f90e41bfa5a736987a8cb" - }, - "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07ca5207156b9c65aca3ac89e905f0ec30da7588118ca729dc4284db2c4b45c60a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", "lastblockhash": "0x8c7a047db9fb186f2ecdcc0c438948ddf32ddf1c3d851fc868cb835870268a47", - "network": "London", "pre": { "0x000000000000000000000000000000000000aaaa": { "nonce": "0x01", diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_precompile_timestamps.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json similarity index 50% rename from tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_precompile_timestamps.json rename to tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json index bd9dcdb47a3..8948348c581 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_precompile_timestamps.json +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/gas_usage.json @@ -1,26 +1,51 @@ { - "000-fork=Cancun-timestamp=12-valid_input=True": { + "000-fork=Cancun-tload": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0590245a249decc317041b8dc7141cec0559c533efb82221e4e0a30a6456acf8ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x590245a249decc317041b8dc7141cec0559c533efb82221e4e0a30a6456acf8b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe14679099cfdca3e8f9e7fde842c54b6d391ba69fad4633d68d4068dfa5ead40" }, "blocks": [ { - "rlp": "0xf902ccf9023da09ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07b3cac346c13cd8143f7d31de932a0836e27a15a19ff64d008e4022e138d7a27a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902a7f9023ea0e14679099cfdca3e8f9e7fde842c54b6d391ba69fad4633d68d4068dfa5ead40a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09de6f95cb4ff4ef22a73705d6ba38c4b927c7bca9887ef5d24a734bb863218d9a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0035d56bac3f47246c5eed0e6642ca40dc262f9144b582f058bc23ded72aa72fab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8de8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", + "parentHash": "0xe14679099cfdca3e8f9e7fde842c54b6d391ba69fad4633d68d4068dfa5ead40", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7b3cac346c13cd8143f7d31de932a0836e27a15a19ff64d008e4022e138d7a27", - "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", + "stateRoot": "0x9de6f95cb4ff4ef22a73705d6ba38c4b927c7bca9887ef5d24a734bb863218d9", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x035d56bac3f47246c5eed0e6642ca40dc262f9144b582f058bc23ded72aa72fa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", - "timestamp": "0x0c", + "gasUsed": "0xa8de", + "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", @@ -28,50 +53,22 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xd5b89cf82d3f23d9860f28064a1d6df6d8694bbb560dfd564a5083cbae7fd4e3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7b3cac346c13cd8143f7d31de932a0836e27a15a19ff64d008e4022e138d7a27", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd5b89cf82d3f23d9860f28064a1d6df6d8694bbb560dfd564a5083cbae7fd4e3", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3d9cad55bf2ff8e3e4712c080301b0f074e9e139b953e2d1db1e93d085d65090" }, "transactions": [ { - "type": "0x02", + "type": "0x00", "chainId": "0x01", "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", + "gasPrice": "0x0a", "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000000000c", - "accessList": [], - "v": "0x00", - "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", - "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -79,104 +76,106 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd5b89cf82d3f23d9860f28064a1d6df6d8694bbb560dfd564a5083cbae7fd4e3", - "network": "Cancun", + "lastblockhash": "0x3d9cad55bf2ff8e3e4712c080301b0f074e9e139b953e2d1db1e93d085d65090", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x5a600a5c5a905090036005900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x010000000000", + "balance": "0x989680", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x5a600a5c5a905090036005900360005500", "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x00": "0x64" } }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x03e8": "0x03e8" } }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01fa9a", + "code": "0x", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d515", + "balance": "0x91fdd4", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "001-fork=Cancun-timestamp=4294967296-valid_input=True": { + "001-fork=Cancun-tstore_tload": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a084b85dd57dd71f156f916db89422dd7fe6a426ff9c453a0deda6106a56249904a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x84b85dd57dd71f156f916db89422dd7fe6a426ff9c453a0deda6106a56249904", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x58adbbdfb41b0c20276b227d46997889aa13525c58d37fea6024706582950f5d" }, "blocks": [ { - "rlp": "0xf902d1f90242a09ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e128747362b3cac0c08262a83be3256d2e7fe1ec87c42a186d5e023cb2481e0fa0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd85010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0c0", + "rlp": "0xf902a7f9023ea058adbbdfb41b0c20276b227d46997889aa13525c58d37fea6024706582950f5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa096c8d7ec0c031b66be3312070823da90644e61b11f84b712d4121442188601e2a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da08cc476b782e8fbbd64dedd8ac6216dc4ddd2d72a0fc2aef271605e1f8d6b066eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9488203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", + "parentHash": "0x58adbbdfb41b0c20276b227d46997889aa13525c58d37fea6024706582950f5d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe128747362b3cac0c08262a83be3256d2e7fe1ec87c42a186d5e023cb2481e0f", - "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", + "stateRoot": "0x96c8d7ec0c031b66be3312070823da90644e61b11f84b712d4121442188601e2", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x8cc476b782e8fbbd64dedd8ac6216dc4ddd2d72a0fc2aef271605e1f8d6b066e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", - "timestamp": "0x0100000000", + "gasUsed": "0xa948", + "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", @@ -184,50 +183,22 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x71e27c1eebadd115ccde050cd5946deb8489840af18002985962a755b49180ad" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe128747362b3cac0c08262a83be3256d2e7fe1ec87c42a186d5e023cb2481e0f", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0x100000000", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x71e27c1eebadd115ccde050cd5946deb8489840af18002985962a755b49180ad", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x02900c9ff38d91789083db1f88090887b40cc3d1033a89bad4b2cedce882fbe8" }, "transactions": [ { - "type": "0x02", + "type": "0x00", "chainId": "0x01", "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", + "gasPrice": "0x0a", "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100000000", - "accessList": [], - "v": "0x01", - "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", - "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -235,104 +206,106 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x71e27c1eebadd115ccde050cd5946deb8489840af18002985962a755b49180ad", - "network": "Cancun", + "lastblockhash": "0x02900c9ff38d91789083db1f88090887b40cc3d1033a89bad4b2cedce882fbe8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x5a600a600a5d600a5c5a90509003600b900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x010000000000", + "balance": "0x989680", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x5a600a600a5d600a5c5a90509003600b900360005500", "storage": { - "0x010000": "0x0100000000", - "0x028000": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x00": "0xc8" } }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x03e8": "0x03e8" } }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01fbd8", + "code": "0x", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d515", + "balance": "0x91f9b0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "002-fork=Cancun-timestamp=18446744073709551614-valid_input=True": { + "002-fork=Cancun-tstore_cold": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00934591d80b581ec5bd15eb885886034a3ae803b0b4f43647564a57b12ebbac2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0934591d80b581ec5bd15eb885886034a3ae803b0b4f43647564a57b12ebbac2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xceae4edffb0c72c5bf1acf3ce71cfd9ed5d897eca2f764ae127aead48d02dc4c" }, "blocks": [ { - "rlp": "0xf902d4f90245a09ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa054cf946d15605d3a8a1c69a1a24cc6a79bd983cccbac059c0b654590c00432cea045940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878a08045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bd5188fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffec080a08ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80a0779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5cc0c0", + "rlp": "0xf902a7f9023ea0ceae4edffb0c72c5bf1acf3ce71cfd9ed5d897eca2f764ae127aead48d02dc4ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa074d68f6e7521c97d69c501962014f6e3aafb9d1205861bc4282eab976df5683fa0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da049a8ddf9aa36aa54985048bf9317e50f1eba7d04f2abf1700966c7217326348cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8dc8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", + "parentHash": "0xceae4edffb0c72c5bf1acf3ce71cfd9ed5d897eca2f764ae127aead48d02dc4c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x54cf946d15605d3a8a1c69a1a24cc6a79bd983cccbac059c0b654590c00432ce", - "transactionsTrie": "0x45940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878", - "receiptTrie": "0x8045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49ad", + "stateRoot": "0x74d68f6e7521c97d69c501962014f6e3aafb9d1205861bc4282eab976df5683f", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x49a8ddf9aa36aa54985048bf9317e50f1eba7d04f2abf1700966c7217326348c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd51", - "timestamp": "0xfffffffffffffffe", + "gasUsed": "0xa8dc", + "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", @@ -340,50 +313,22 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xc68e189eb4d72e171f6ad3006b8c9dc41706b9d052e366b4efcbd6136b46b1e7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x54cf946d15605d3a8a1c69a1a24cc6a79bd983cccbac059c0b654590c00432ce", - "receiptsRoot": "0x8045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49ad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd51", - "timestamp": "0xfffffffffffffffe", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc68e189eb4d72e171f6ad3006b8c9dc41706b9d052e366b4efcbd6136b46b1e7", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffec080a08ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80a0779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe673355caefee60d1f379961ac9fe80956a66eedc5b8754c6f5ec4a1577183a2" }, "transactions": [ { - "type": "0x02", + "type": "0x00", "chainId": "0x01", "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", + "gasPrice": "0x0a", "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", - "accessList": [], - "v": "0x00", - "r": "0x8ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80", - "s": "0x779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5c", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -391,104 +336,106 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc68e189eb4d72e171f6ad3006b8c9dc41706b9d052e366b4efcbd6136b46b1e7", - "network": "Cancun", + "lastblockhash": "0xe673355caefee60d1f379961ac9fe80956a66eedc5b8754c6f5ec4a1577183a2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x5a600a600a5d5a90036008900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x010000000000", + "balance": "0x989680", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x5a600a600a5d5a90036008900360005500", "storage": { - "0xfffe": "0xfffffffffffffffe", - "0x027ffe": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x00": "0x64" } }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x03e8": "0x03e8" } }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01fa94", + "code": "0x", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d2c9", + "balance": "0x91fde8", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "003-fork=Cancun-timestamp=18446744073709551615-valid_input=True": { + "003-fork=Cancun-tstore_warm": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02e140ef5c623f8af947074936f843680fc89f57638a0a3e0e46bb6348154b354a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2e140ef5c623f8af947074936f843680fc89f57638a0a3e0e46bb6348154b354", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa52cbd89494515b8a3f44adfa89a5d3d92e41ab9a26142a944b98d4bc80dc613" }, "blocks": [ { - "rlp": "0xf902d4f90245a09ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aa7f64af2a541957883e1fd01a8293dbf930f221b2b85c11981765784f904091a05907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6ba08045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bd5188ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000ffffffffffffffffc080a0fd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259ea04ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7cc0c0", + "rlp": "0xf902a7f9023ea0a52cbd89494515b8a3f44adfa89a5d3d92e41ab9a26142a944b98d4bc80dc613a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09610c7d5df540e2c575eb39cc6acfd672c2aaa420167009f150666f3dba8f1a5a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da04744de8d7fadec3584f366514fee9b042e246d6277fccde8379f4a914a10344eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9468203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", + "parentHash": "0xa52cbd89494515b8a3f44adfa89a5d3d92e41ab9a26142a944b98d4bc80dc613", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaa7f64af2a541957883e1fd01a8293dbf930f221b2b85c11981765784f904091", - "transactionsTrie": "0x5907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6b", - "receiptTrie": "0x8045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49ad", + "stateRoot": "0x9610c7d5df540e2c575eb39cc6acfd672c2aaa420167009f150666f3dba8f1a5", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x4744de8d7fadec3584f366514fee9b042e246d6277fccde8379f4a914a10344e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd51", - "timestamp": "0xffffffffffffffff", + "gasUsed": "0xa946", + "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", @@ -496,50 +443,22 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x2fdf452049c0ac241d834cd127c639f778c0742a7fced9636ade24622a4689a4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaa7f64af2a541957883e1fd01a8293dbf930f221b2b85c11981765784f904091", - "receiptsRoot": "0x8045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49ad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd51", - "timestamp": "0xffffffffffffffff", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2fdf452049c0ac241d834cd127c639f778c0742a7fced9636ade24622a4689a4", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000ffffffffffffffffc080a0fd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259ea04ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5bc07f1e1f728f4b566422c92356ecf3b02a47943d63ec2ab9e412a4d7d2b23c" }, "transactions": [ { - "type": "0x02", + "type": "0x00", "chainId": "0x01", "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", + "gasPrice": "0x0a", "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "accessList": [], - "v": "0x00", - "r": "0xfd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259e", - "s": "0x4ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7c", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -547,76 +466,53 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2fdf452049c0ac241d834cd127c639f778c0742a7fced9636ade24622a4689a4", - "network": "Cancun", + "lastblockhash": "0x5bc07f1e1f728f4b566422c92356ecf3b02a47943d63ec2ab9e412a4d7d2b23c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x5a600a600a5d600b600a5d5a9003600e900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x010000000000", + "balance": "0x989680", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x5a600a600a5d600b600a5d5a9003600e900360005500", "storage": { - "0xffff": "0xffffffffffffffff", - "0x027fff": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x00": "0xc8" } }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x03e8": "0x03e8" } }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01fbd2", + "code": "0x", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d2c9", + "balance": "0x91f9c4", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json new file mode 100644 index 00000000000..875a9fc7386 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_sstore.json @@ -0,0 +1,140 @@ +{ + "000-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f52dca85120dff9bdf19f8054fd78e1e1fca8ce8eaf58d1d0625c1eac9ff3b99a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf52dca85120dff9bdf19f8054fd78e1e1fca8ce8eaf58d1d0625c1eac9ff3b99", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22f05ccd24c0995e5635975b2bda46ba10f18d5e259087f80f3a894b91ef5675" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa022f05ccd24c0995e5635975b2bda46ba10f18d5e259087f80f3a894b91ef5675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00ebee8c13fbfdd69cefdfded262de5b48b1dbff7e40bd7958e67c8f0087135c8a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0740b7067d4b3262416bb6bd3f93ec5f288c9f216d0dfd7077737dfb939b6299bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301b0388203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x22f05ccd24c0995e5635975b2bda46ba10f18d5e259087f80f3a894b91ef5675", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0ebee8c13fbfdd69cefdfded262de5b48b1dbff7e40bd7958e67c8f0087135c8", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x740b7067d4b3262416bb6bd3f93ec5f288c9f216d0dfd7077737dfb939b6299b", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01b038", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6b7058143d59c7522d93d7899425c2db7764528b4de7e30aad5cafa1210d6b12" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6b7058143d59c7522d93d7899425c2db7764528b4de7e30aad5cafa1210d6b12", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60ff60005560005c60015560ff60025560025c60035560ff6fffffffffffffffffffffffffffffffff556fffffffffffffffffffffffffffffffff5c7001000000000000000000000000000000005560ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff55", + "storage": { + "0x01": "0x01", + "0x03": "0x01", + "0x0100000000000000000000000000000000": "0x01", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x989680", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60ff60005560005c60015560ff60025560025c60035560ff6fffffffffffffffffffffffffffffffff556fffffffffffffffffffffffffffffffff5c7001000000000000000000000000000000005560ff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff55", + "storage": { + "0x00": "0xff", + "0x02": "0xff", + "0xffffffffffffffffffffffffffffffff": "0xff", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe": "0xff" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0510a8", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x87b450", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json new file mode 100644 index 00000000000..2df3e16f22b --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore.json @@ -0,0 +1,135 @@ +{ + "000-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ca10c9f66476c47fbbfe3f212cb633cece6b6938a205fa0de7705402a2bebf15a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xca10c9f66476c47fbbfe3f212cb633cece6b6938a205fa0de7705402a2bebf15", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe62b96a59a402783fdc789c59784b06255622a822dd71faacb002fbf20c8f271" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0e62b96a59a402783fdc789c59784b06255622a822dd71faacb002fbf20c8f271a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa031ee0a9f41c0d37dffd353826529209a4fd117cdf3406a08f4ea616b1ae5239da0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0b5be6ebae57d1d200f4235336ebfc158125d7fb98e2faa9d499ed597550403bfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301b8148203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xe62b96a59a402783fdc789c59784b06255622a822dd71faacb002fbf20c8f271", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x31ee0a9f41c0d37dffd353826529209a4fd117cdf3406a08f4ea616b1ae5239d", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xb5be6ebae57d1d200f4235336ebfc158125d7fb98e2faa9d499ed597550403bf", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01b814", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdebb9f3cbc615c1c07f42808dccc1afd4296646706c974c5cf15fd94d2ce69d0" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xdebb9f3cbc615c1c07f42808dccc1afd4296646706c974c5cf15fd94d2ce69d0", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060005d60005c600055600160015d60015c600155600260025d60025c6002557001000000000000000000000000000000007001000000000000000000000000000000005d7001000000000000000000000000000000005c700100000000000000000000000000000000557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff55", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x989680", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060005d60005c600055600160015d60015c600155600260025d60025c6002557001000000000000000000000000000000007001000000000000000000000000000000005d7001000000000000000000000000000000005c700100000000000000000000000000000000557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff55", + "storage": { + "0x01": "0x01", + "0x02": "0x02", + "0x0100000000000000000000000000000000": "0x0100000000000000000000000000000000", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x05283c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x8765b8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json new file mode 100644 index 00000000000..b6acd339d49 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/tload_after_tstore_is_zero.json @@ -0,0 +1,148 @@ +{ + "000-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a092317acbfd1918ca84d730a5360e07312402da35ccab3e6b97b280ae8fd99c57a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x92317acbfd1918ca84d730a5360e07312402da35ccab3e6b97b280ae8fd99c57", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x607d56dcf077624b10fb9240c8572ffb95cf4cb8f58c4d95880abc16b19d2250" + }, + "blocks": [ + { + "rlp": "0xf902a7f9023ea0607d56dcf077624b10fb9240c8572ffb95cf4cb8f58c4d95880abc16b19d2250a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c1968b9b36fee0b55dc727e828f4481eb59148740091f55ec509dc5aacc4ce3fa0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da077e65041c9f39e32cbc3c7313c8a3470959f7a66b7d07ea289d94db481a1e916b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c29a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x607d56dcf077624b10fb9240c8572ffb95cf4cb8f58c4d95880abc16b19d2250", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc1968b9b36fee0b55dc727e828f4481eb59148740091f55ec509dc5aacc4ce3f", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x77e65041c9f39e32cbc3c7313c8a3470959f7a66b7d07ea289d94db481a1e916", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xc29a", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x19518e5f0bd46498a0f8a71d306311b14d9738f34e834744e2fb6d1621dc676a" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x19518e5f0bd46498a0f8a71d306311b14d9738f34e834744e2fb6d1621dc676a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6104d260015d6104d260045d6104d27001000000000000000000000000000000005d6104d27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5d60005c60005560035c6003556fffffffffffffffffffffffffffffffff5c6fffffffffffffffffffffffffffffffff557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5560025c60025560055c6005557001000000000000000000000000000000015c700100000000000000000000000000000001557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff55", + "storage": { + "0x00": "0xffff", + "0x01": "0xffff", + "0x02": "0xffff", + "0x03": "0xffff", + "0x04": "0xffff", + "0x05": "0xffff", + "0xffffffffffffffffffffffffffffffff": "0xffff", + "0x0100000000000000000000000000000000": "0xffff", + "0x0100000000000000000000000000000001": "0xffff", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd": "0xffff", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe": "0xffff", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff": "0xffff" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x989680", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6104d260015d6104d260045d6104d27001000000000000000000000000000000005d6104d27ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5d60005c60005560035c6003556fffffffffffffffffffffffffffffffff5c6fffffffffffffffffffffffffffffffff557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5c7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5560025c60025560055c6005557001000000000000000000000000000000015c700100000000000000000000000000000001557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff55", + "storage": { + "0x01": "0xffff", + "0x04": "0xffff", + "0x0100000000000000000000000000000000": "0xffff", + "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe": "0xffff" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0247ce", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x90fc7c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json new file mode 100644 index 00000000000..8c19ec02467 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage/transient_storage_unset_values.json @@ -0,0 +1,136 @@ +{ + "000-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0159a849a2171c48f54746ab12ccd1ca42b613b17c2b212a470fc47044bbafcb1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x159a849a2171c48f54746ab12ccd1ca42b613b17c2b212a470fc47044bbafcb1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb2a6b601f82df2943568fe8ad2c5b15e9a2d4b2e2e8103e2d6a9ce7d43a36f64" + }, + "blocks": [ + { + "rlp": "0xf902a7f9023ea0b2a6b601f82df2943568fe8ad2c5b15e9a2d4b2e2e8103e2d6a9ce7d43a36f64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa027e6af86f863d4a986215624e78dd9efdbe65fb63558d32526e390dbbb206390a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0519e5212b196562963b31744d3553714f018b6e645aea97b4687401a49978770b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008291688203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xb2a6b601f82df2943568fe8ad2c5b15e9a2d4b2e2e8103e2d6a9ce7d43a36f64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x27e6af86f863d4a986215624e78dd9efdbe65fb63558d32526e390dbbb206390", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x519e5212b196562963b31744d3553714f018b6e645aea97b4687401a49978770", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x9168", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x994147b8add2809cd0765cb584dfea3b0b5378f80c860115869fe6c0daa9f292" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x994147b8add2809cd0765cb584dfea3b0b5378f80c860115869fe6c0daa9f292", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c60005560015c60015560025c6002557001000000000000000000000000000000005c700100000000000000000000000000000000557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff55", + "storage": { + "0x00": "0x01", + "0x01": "0x01", + "0x02": "0x01", + "0x0100000000000000000000000000000000": "0x01", + "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x989680", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c60005560015c60015560025c6002557001000000000000000000000000000000005c700100000000000000000000000000000000557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff55", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01b438", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x92e870", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json new file mode 100644 index 00000000000..ad4d26f8689 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_create_contexts/contract_creation.json @@ -0,0 +1,1418 @@ +{ + "000-fork=Cancun-only_constructor_code-create": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272" + }, + "blocks": [ + { + "rlp": "0xf902c6f9023fa0c5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03c385add6e4561d400755d94e8b56ea79bda89d85a6136054beb4fa1e61bbe55a0afc3fafe6c60e0598f28dd04383c37f4aad2cadbbd74e8382062682d6e115694a0edb1170d8c500eaa142ee5a1d7d2aba3b0c9eb3116a398e227fb4be2e87f6891b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028d128203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f880f87e800a85e8d4a51000940000000000000000000000000000000000000100809c60005c600055600160005d60005c600155610000600081601c8239f325a0ba219413583d7a0117847d3c34bf1237223d4ba7738648c68864d2c4f589769ba05e67662523a29640a2478e14cf1ae9499f8e1695f56b1c2e6ce1b1d3ae9f8949c0c0", + "blockHeader": { + "parentHash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3c385add6e4561d400755d94e8b56ea79bda89d85a6136054beb4fa1e61bbe55", + "transactionsTrie": "0xafc3fafe6c60e0598f28dd04383c37f4aad2cadbbd74e8382062682d6e115694", + "receiptTrie": "0xedb1170d8c500eaa142ee5a1d7d2aba3b0c9eb3116a398e227fb4be2e87f6891", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028d12", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdbe1c760e6c7b79b79bb46a8a1f3e23974914522b6ffa8129a07a0028eabc9fd" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x60005c600055600160005d60005c600155610000600081601c8239f3", + "v": "0x25", + "r": "0xba219413583d7a0117847d3c34bf1237223d4ba7738648c68864d2c4f589769b", + "s": "0x5e67662523a29640a2478e14cf1ae9499f8e1695f56b1c2e6ce1b1d3ae9f8949", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xdbe1c760e6c7b79b79bb46a8a1f3e23974914522b6ffa8129a07a0028eabc9fd", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": { + "0x01": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07a736", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af31060bd4c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-only_constructor_code-create2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0603f849f0ebd07a6e48a9b969d713d176f52d4dc1250d907e7dc13d9dfb5d9e1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x603f849f0ebd07a6e48a9b969d713d176f52d4dc1250d907e7dc13d9dfb5d9e1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x43a311d04632a79987d68d232067399fd6239e862ad54582b8e4347d893bdf2a" + }, + "blocks": [ + { + "rlp": "0xf902c6f9023fa043a311d04632a79987d68d232067399fd6239e862ad54582b8e4347d893bdf2aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0efd9efedcde8e6e88ddcfea6d34cc8793386be03661588bea76e35bbc0c44dc6a0afc3fafe6c60e0598f28dd04383c37f4aad2cadbbd74e8382062682d6e115694a05bcbc92138c81d77fd755672b0bb585fb2727c66985925e7d84b56d231d8c63fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028d1b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f880f87e800a85e8d4a51000940000000000000000000000000000000000000100809c60005c600055600160005d60005c600155610000600081601c8239f325a0ba219413583d7a0117847d3c34bf1237223d4ba7738648c68864d2c4f589769ba05e67662523a29640a2478e14cf1ae9499f8e1695f56b1c2e6ce1b1d3ae9f8949c0c0", + "blockHeader": { + "parentHash": "0x43a311d04632a79987d68d232067399fd6239e862ad54582b8e4347d893bdf2a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xefd9efedcde8e6e88ddcfea6d34cc8793386be03661588bea76e35bbc0c44dc6", + "transactionsTrie": "0xafc3fafe6c60e0598f28dd04383c37f4aad2cadbbd74e8382062682d6e115694", + "receiptTrie": "0x5bcbc92138c81d77fd755672b0bb585fb2727c66985925e7d84b56d231d8c63f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028d1b", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x45f8778d753b2dd92a583a8e56e204413d042bc6904aef9e9ddeedfa1fd96838" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x60005c600055600160005d60005c600155610000600081601c8239f3", + "v": "0x25", + "r": "0xba219413583d7a0117847d3c34bf1237223d4ba7738648c68864d2c4f589769b", + "s": "0x5e67662523a29640a2478e14cf1ae9499f8e1695f56b1c2e6ce1b1d3ae9f8949", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x45f8778d753b2dd92a583a8e56e204413d042bc6904aef9e9ddeedfa1fd96838", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f56000600060006000600073f566f716f1ebeb7836558e15d6fa22648e6ea1f45af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f56000600060006000600073f566f716f1ebeb7836558e15d6fa22648e6ea1f45af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07a751", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af31060bcf2", + "code": "0x", + "storage": {} + }, + "0xf566f716f1ebeb7836558e15d6fa22648e6ea1f4": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": { + "0x01": "0x01" + } + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-in_constructor_and_deployed_code-create": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272" + }, + "blocks": [ + { + "rlp": "0xf902ccf9023fa0c5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05b5c0dc978feccf0be1c124440af4de01831bd495b8e32e015cc028eb136be12a0409b57d9808d8f7818dcc101e9fca46885d0522585c354dda3fc2db03d07884aa071074057e3230fcc876f43cb81d7d268838daf24387fb9bb5eb974b166604030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302a3e28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f886f884800a85e8d4a5100094000000000000000000000000000000000000010080a260005c60005561001160008160118239f360005c600155600160015d60015c60025525a05ad618a2ae640e0a948f8ab7bf4599df60489046459c56e60566244cd9e292fea01ef6121e6a55a3d381e584fabb01bfc93eff74ab1ee61c80a6f82648e332335dc0c0", + "blockHeader": { + "parentHash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5b5c0dc978feccf0be1c124440af4de01831bd495b8e32e015cc028eb136be12", + "transactionsTrie": "0x409b57d9808d8f7818dcc101e9fca46885d0522585c354dda3fc2db03d07884a", + "receiptTrie": "0x71074057e3230fcc876f43cb81d7d268838daf24387fb9bb5eb974b166604030", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02a3e2", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x90fd2aa0c1ec12945b1acc54be896f37c22727c595f74b6ba48a718e24ec1536" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x60005c60005561001160008160118239f360005c600155600160015d60015c600255", + "v": "0x25", + "r": "0x5ad618a2ae640e0a948f8ab7bf4599df60489046459c56e60566244cd9e292fe", + "s": "0x1ef6121e6a55a3d381e584fabb01bfc93eff74ab1ee61c80a6f82648e332335d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x90fd2aa0c1ec12945b1acc54be896f37c22727c595f74b6ba48a718e24ec1536", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60005c600155600160015d60015c600255", + "storage": { + "0x02": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07eba6", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af3105fd92c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-in_constructor_and_deployed_code-create2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01b6d0651110510c405f3667cb67b8b05c4f2f98bac19e0cae518a29dad18b9dea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1b6d0651110510c405f3667cb67b8b05c4f2f98bac19e0cae518a29dad18b9de", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf1d2aa771b9f8438333ac4a11fd172e002755ee2d987496140efc93478406adf" + }, + "blocks": [ + { + "rlp": "0xf902ccf9023fa0f1d2aa771b9f8438333ac4a11fd172e002755ee2d987496140efc93478406adfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08c1186ef98a4dbb5438218f8e30d6a63c29bd91174de315039f5b05c0f0a11bba0409b57d9808d8f7818dcc101e9fca46885d0522585c354dda3fc2db03d07884aa0308bb3bbaf4d050dbb95a2c518a3f0a1d3a40095885d73138c4b4b8740230b06b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302a3f18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f886f884800a85e8d4a5100094000000000000000000000000000000000000010080a260005c60005561001160008160118239f360005c600155600160015d60015c60025525a05ad618a2ae640e0a948f8ab7bf4599df60489046459c56e60566244cd9e292fea01ef6121e6a55a3d381e584fabb01bfc93eff74ab1ee61c80a6f82648e332335dc0c0", + "blockHeader": { + "parentHash": "0xf1d2aa771b9f8438333ac4a11fd172e002755ee2d987496140efc93478406adf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8c1186ef98a4dbb5438218f8e30d6a63c29bd91174de315039f5b05c0f0a11bb", + "transactionsTrie": "0x409b57d9808d8f7818dcc101e9fca46885d0522585c354dda3fc2db03d07884a", + "receiptTrie": "0x308bb3bbaf4d050dbb95a2c518a3f0a1d3a40095885d73138c4b4b8740230b06", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02a3f1", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x37861891580d47048a182a545e9160c0708e8ca9025bcc14d667fa4b86c732ca" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x60005c60005561001160008160118239f360005c600155600160015d60015c600255", + "v": "0x25", + "r": "0x5ad618a2ae640e0a948f8ab7bf4599df60489046459c56e60566244cd9e292fe", + "s": "0x1ef6121e6a55a3d381e584fabb01bfc93eff74ab1ee61c80a6f82648e332335d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x37861891580d47048a182a545e9160c0708e8ca9025bcc14d667fa4b86c732ca", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f56000600060006000600073dbed060e9d74df8c2198b6404a1d3e7c74cdf4105af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f56000600060006000600073dbed060e9d74df8c2198b6404a1d3e7c74cdf4105af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07ebd3", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af3105fd896", + "code": "0x", + "storage": {} + }, + "0xdbed060e9d74df8c2198b6404a1d3e7c74cdf410": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60005c600155600160015d60015c600255", + "storage": { + "0x02": "0x01" + } + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-across_constructor_and_deployed_code_v0-create": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272" + }, + "blocks": [ + { + "rlp": "0xf902d1f9023fa0c5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c48d0302d25b8af185e2d8abc92cdef3a7d8e7542ac56d48b40c42dbd730a5c8a00c5ee136ec10b7f0df32081a2677ecd279c2467c09e2b0f7df89562f83403bd6a09ff47021415ea3b54ee8f1a99376fe27a936e4c4701b2b1755e30c19a184ed98b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302f7148203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f88bf889800a85e8d4a5100094000000000000000000000000000000000000010080a7600160015d61001760008160108239f360005c60005560015c600155600160025d60025c60025525a0d757072d13a4efe618cdfb6602a87738722fb78d87e28464f040aeed48a6bb3fa03357ef00b2cbb3815d3557092e541b06898eaf173be7657dd428cd05d81501a5c0c0", + "blockHeader": { + "parentHash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc48d0302d25b8af185e2d8abc92cdef3a7d8e7542ac56d48b40c42dbd730a5c8", + "transactionsTrie": "0x0c5ee136ec10b7f0df32081a2677ecd279c2467c09e2b0f7df89562f83403bd6", + "receiptTrie": "0x9ff47021415ea3b54ee8f1a99376fe27a936e4c4701b2b1755e30c19a184ed98", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02f714", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x74e215dc9d42ca7281cb5538d43b711a1a6303ce7324a77678f15a7435638f68" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x600160015d61001760008160108239f360005c60005560015c600155600160025d60025c600255", + "v": "0x25", + "r": "0xd757072d13a4efe618cdfb6602a87738722fb78d87e28464f040aeed48a6bb3f", + "s": "0x3357ef00b2cbb3815d3557092e541b06898eaf173be7657dd428cd05d81501a5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x74e215dc9d42ca7281cb5538d43b711a1a6303ce7324a77678f15a7435638f68", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60005c60005560015c600155600160025d60025c600255", + "storage": { + "0x01": "0x01", + "0x02": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x08e53c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af3105c9938", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-across_constructor_and_deployed_code_v0-create2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0989a0998dd8d5ccc35fcfe966b8cc8d4c1b072742d11f920f0d4d854cef8fcada056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x989a0998dd8d5ccc35fcfe966b8cc8d4c1b072742d11f920f0d4d854cef8fcad", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcdfa232dc93697f304e5837512b8fbd5038961a5aca05fff2ebe5936c18f8caa" + }, + "blocks": [ + { + "rlp": "0xf902d1f9023fa0cdfa232dc93697f304e5837512b8fbd5038961a5aca05fff2ebe5936c18f8caaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0efda5b5fd1e58320d5acb3b2438225ba7bef55f4875c5e4ae12aa60323a215fda00c5ee136ec10b7f0df32081a2677ecd279c2467c09e2b0f7df89562f83403bd6a0a18235784f34332d3775f3f3f98c8311adcb1316475c1a9dc3ec399577a98620b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302f7238203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f88bf889800a85e8d4a5100094000000000000000000000000000000000000010080a7600160015d61001760008160108239f360005c60005560015c600155600160025d60025c60025525a0d757072d13a4efe618cdfb6602a87738722fb78d87e28464f040aeed48a6bb3fa03357ef00b2cbb3815d3557092e541b06898eaf173be7657dd428cd05d81501a5c0c0", + "blockHeader": { + "parentHash": "0xcdfa232dc93697f304e5837512b8fbd5038961a5aca05fff2ebe5936c18f8caa", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xefda5b5fd1e58320d5acb3b2438225ba7bef55f4875c5e4ae12aa60323a215fd", + "transactionsTrie": "0x0c5ee136ec10b7f0df32081a2677ecd279c2467c09e2b0f7df89562f83403bd6", + "receiptTrie": "0xa18235784f34332d3775f3f3f98c8311adcb1316475c1a9dc3ec399577a98620", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02f723", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x27b9bfd4f6353df31a40505646d2e2ef27df2cf38005e6b68cef4feb46055c25" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x600160015d61001760008160108239f360005c60005560015c600155600160025d60025c600255", + "v": "0x25", + "r": "0xd757072d13a4efe618cdfb6602a87738722fb78d87e28464f040aeed48a6bb3f", + "s": "0x3357ef00b2cbb3815d3557092e541b06898eaf173be7657dd428cd05d81501a5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x27b9bfd4f6353df31a40505646d2e2ef27df2cf38005e6b68cef4feb46055c25", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f56000600060006000600073bb49e5bd24a17a9f51b5ac4a5b335863d7f6ba9e5af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f56000600060006000600073bb49e5bd24a17a9f51b5ac4a5b335863d7f6ba9e5af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x08e569", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af3105c98a2", + "code": "0x", + "storage": {} + }, + "0xbb49e5bd24a17a9f51b5ac4a5b335863d7f6ba9e": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60005c60005560015c600155600160025d60025c600255", + "storage": { + "0x01": "0x01", + "0x02": "0x01" + } + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Cancun-across_constructor_and_deployed_code_v1-create": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272" + }, + "blocks": [ + { + "rlp": "0xf902ddf9023fa0c5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03218bbdbef74f6a3e7b931f10215f2be4502a816aeccdd48a2d9a4a7c7ac12eca012b6660c6860c5f192a23ea8c78092ea38450fc5a3d8351500c0ebe9f0759a1ca032d184e71997f31932dd9a1a59cc2d3bc7b9c0b27f7d3963a394904fc4bb4da5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830357888203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f897f895800a85e8d4a5100094000000000000000000000000000000000000010080b360005c600055600160015d60015c600155610017600081601c8239f360005c60025560015c600355600160025d60025c60045525a0d67d794b786fef92d05068bac1a55b40c87f986f6efbb21df25d8bf12909b833a0392387b2776a0f3144731e66e8b1cb6a5cdb8fcb39e2b26ef23775eef95cd26dc0c0", + "blockHeader": { + "parentHash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3218bbdbef74f6a3e7b931f10215f2be4502a816aeccdd48a2d9a4a7c7ac12ec", + "transactionsTrie": "0x12b6660c6860c5f192a23ea8c78092ea38450fc5a3d8351500c0ebe9f0759a1c", + "receiptTrie": "0x32d184e71997f31932dd9a1a59cc2d3bc7b9c0b27f7d3963a394904fc4bb4da5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x035788", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa3cf8a8c25f27a6aec1c1169f0d8d3afd77bd2537dec7d769498d14db27ff2d6" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x60005c600055600160015d60015c600155610017600081601c8239f360005c60025560015c600355600160025d60025c600455", + "v": "0x25", + "r": "0xd67d794b786fef92d05068bac1a55b40c87f986f6efbb21df25d8bf12909b833", + "s": "0x392387b2776a0f3144731e66e8b1cb6a5cdb8fcb39e2b26ef23775eef95cd26d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa3cf8a8c25f27a6aec1c1169f0d8d3afd77bd2537dec7d769498d14db27ff2d6", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60005c60025560015c600355600160025d60025c600455", + "storage": { + "0x01": "0x01", + "0x03": "0x01", + "0x04": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0a0698", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af31058d4b0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Cancun-across_constructor_and_deployed_code_v1-create2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e9de55cde4a975935e94ab5ee43f20d3a3b076b881612f4430791c25fb891484a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe9de55cde4a975935e94ab5ee43f20d3a3b076b881612f4430791c25fb891484", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x30f516e34fc173bb5fc4daddcc7532c4aca10b702c7228f3c806b4df2646fb7e" + }, + "blocks": [ + { + "rlp": "0xf902ddf9023fa030f516e34fc173bb5fc4daddcc7532c4aca10b702c7228f3c806b4df2646fb7ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da1724fe3aa6e7867b064d03da730c53171924b8f2636bb7319933fe749c53c1a012b6660c6860c5f192a23ea8c78092ea38450fc5a3d8351500c0ebe9f0759a1ca04113de10ec07d1e5f29c00b3241ba9644170e65ada09014c3055f92f99d0e888b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830357978203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f897f895800a85e8d4a5100094000000000000000000000000000000000000010080b360005c600055600160015d60015c600155610017600081601c8239f360005c60025560015c600355600160025d60025c60045525a0d67d794b786fef92d05068bac1a55b40c87f986f6efbb21df25d8bf12909b833a0392387b2776a0f3144731e66e8b1cb6a5cdb8fcb39e2b26ef23775eef95cd26dc0c0", + "blockHeader": { + "parentHash": "0x30f516e34fc173bb5fc4daddcc7532c4aca10b702c7228f3c806b4df2646fb7e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xda1724fe3aa6e7867b064d03da730c53171924b8f2636bb7319933fe749c53c1", + "transactionsTrie": "0x12b6660c6860c5f192a23ea8c78092ea38450fc5a3d8351500c0ebe9f0759a1c", + "receiptTrie": "0x4113de10ec07d1e5f29c00b3241ba9644170e65ada09014c3055f92f99d0e888", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x035797", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x50e9079fbcae8627d9d067560c3d0c860564a81e4b66911a3e09e30b54b20a55" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x60005c600055600160015d60015c600155610017600081601c8239f360005c60025560015c600355600160025d60025c600455", + "v": "0x25", + "r": "0xd67d794b786fef92d05068bac1a55b40c87f986f6efbb21df25d8bf12909b833", + "s": "0x392387b2776a0f3144731e66e8b1cb6a5cdb8fcb39e2b26ef23775eef95cd26d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x50e9079fbcae8627d9d067560c3d0c860564a81e4b66911a3e09e30b54b20a55", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f56000600060006000600073086585ccbac5874d6b306be67bfa5d335c2baa875af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f56000600060006000600073086585ccbac5874d6b306be67bfa5d335c2baa875af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x086585ccbac5874d6b306be67bfa5d335c2baa87": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60005c60025560015c600355600160025d60025c600455", + "storage": { + "0x01": "0x01", + "0x03": "0x01", + "0x04": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0a06c5", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af31058d41a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Cancun-no_constructor_code-create": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x503d7298732e157da61596942bbd73488024b7c4727f8df544a5097cc29e65c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272" + }, + "blocks": [ + { + "rlp": "0xf902c6f9023fa0c5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01ee5517440ff439bcc1c90a0c83a9ed0726866cd5f19a7c54868d20aa5a74694a029356040a558a7dc71300e872716c8f1e1bae7d140c82877a085f88999a6c316a0020cf3452e2d5322d1adc341523e2e2bd88fe6c33e00a1d55df20d008d59450db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083029a6c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f880f87e800a85e8d4a51000940000000000000000000000000000000000000100809c610011600081600b8239f360005c600055600160005d60005c60015525a0125c9d24e9e60e6dc11116d24ff389f2037570c0880bbb8a4ca929035fc709c8a008803044e1fe051b84991d917391c051a26cd7ecb45801a5129681b6b22c65abc0c0", + "blockHeader": { + "parentHash": "0xc5f284ed7914a771711487070a7c0852a0f8fcc0ec9f25ed47bdbd0efe3e1272", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1ee5517440ff439bcc1c90a0c83a9ed0726866cd5f19a7c54868d20aa5a74694", + "transactionsTrie": "0x29356040a558a7dc71300e872716c8f1e1bae7d140c82877a085f88999a6c316", + "receiptTrie": "0x020cf3452e2d5322d1adc341523e2e2bd88fe6c33e00a1d55df20d008d59450d", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x029a6c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfe6c348fb7bd4fa2208b1a19cd0e3539487d855bba739ea0ed674b51b64c4c67" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x610011600081600b8239f360005c600055600160005d60005c600155", + "v": "0x25", + "r": "0x125c9d24e9e60e6dc11116d24ff389f2037570c0880bbb8a4ca929035fc709c8", + "s": "0x08803044e1fe051b84991d917391c051a26cd7ecb45801a5129681b6b22c65ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xfe6c348fb7bd4fa2208b1a19cd0e3539487d855bba739ea0ed674b51b64c4c67", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d3660006000373660006000f0600060006000600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60005c600055600160005d60005c600155", + "storage": { + "0x01": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07cf44", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af3106037c8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "009-fork=Cancun-no_constructor_code-create2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08d4ea0861f24db9140c91a8d136bd888a591017aa692c895ed526fb3dbdb31daa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8d4ea0861f24db9140c91a8d136bd888a591017aa692c895ed526fb3dbdb31da", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5981d6b20ef2c73b636dc3c761dc3e99e00889a144aa03470aed053dffaee5cf" + }, + "blocks": [ + { + "rlp": "0xf902c6f9023fa05981d6b20ef2c73b636dc3c761dc3e99e00889a144aa03470aed053dffaee5cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0911af3d7b4ef1c31b88a4e2f199cc49b6367ae11549754281e68f4dd4ab0af11a029356040a558a7dc71300e872716c8f1e1bae7d140c82877a085f88999a6c316a0385ffeb43a0aa4f7aa58f52fa5b202fe15062db1f45a26874959d2c475ba593ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083029a758203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f880f87e800a85e8d4a51000940000000000000000000000000000000000000100809c610011600081600b8239f360005c600055600160005d60005c60015525a0125c9d24e9e60e6dc11116d24ff389f2037570c0880bbb8a4ca929035fc709c8a008803044e1fe051b84991d917391c051a26cd7ecb45801a5129681b6b22c65abc0c0", + "blockHeader": { + "parentHash": "0x5981d6b20ef2c73b636dc3c761dc3e99e00889a144aa03470aed053dffaee5cf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x911af3d7b4ef1c31b88a4e2f199cc49b6367ae11549754281e68f4dd4ab0af11", + "transactionsTrie": "0x29356040a558a7dc71300e872716c8f1e1bae7d140c82877a085f88999a6c316", + "receiptTrie": "0x385ffeb43a0aa4f7aa58f52fa5b202fe15062db1f45a26874959d2c475ba593a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x029a75", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x63816095d73a8e3f2e884a205b799af5d371d344cc550bdb883483174bc2de14" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xe8d4a51000", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x610011600081600b8239f360005c600055600160005d60005c600155", + "v": "0x25", + "r": "0x125c9d24e9e60e6dc11116d24ff389f2037570c0880bbb8a4ca929035fc709c8", + "s": "0x08803044e1fe051b84991d917391c051a26cd7ecb45801a5129681b6b22c65ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x63816095d73a8e3f2e884a205b799af5d371d344cc550bdb883483174bc2de14", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f5600060006000600060007363394aae4fdab648c82bba89ee5d5e595cae925e5af160045560005c60005560015c60015560025c600255", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x5af3107a4000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x61010060005d61020060015d61030060025d36600060003763deadbeef3660006000f5600060006000600060007363394aae4fdab648c82bba89ee5d5e595cae925e5af160045560005c60005560015c60015560025c600255", + "storage": { + "0x00": "0x0100", + "0x01": "0x0200", + "0x02": "0x0300", + "0x04": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07cf5f", + "code": "0x", + "storage": {} + }, + "0x63394aae4fdab648c82bba89ee5d5e595cae925e": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60005c600055600160005d60005c600155", + "storage": { + "0x01": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x5af31060376e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json new file mode 100644 index 00000000000..2e98e1947ae --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_execution_contexts/subcall.json @@ -0,0 +1,4298 @@ +{ + "000-fork=Cancun-call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aac9c3fa0efe618d68e7933dd74eb47c53029ffad940fb02f592f126cc1b70c4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaac9c3fa0efe618d68e7933dd74eb47c53029ffad940fb02f592f126cc1b70c4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x68b7c3f7764b665438c48c243ce70804a9bd9a339e8f5f4132c6e50ed4229016" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa068b7c3f7764b665438c48c243ce70804a9bd9a339e8f5f4132c6e50ed4229016a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f237aaf674ffe964cf9490e3b5798cdb7623f2ed197433cdc07387281abc917a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da06508513cb0f7491f5e29d94a16e4bc0621345d5bddc69cab7e7d3746fd7cceaab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172ef8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x68b7c3f7764b665438c48c243ce70804a9bd9a339e8f5f4132c6e50ed4229016", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7f237aaf674ffe964cf9490e3b5798cdb7623f2ed197433cdc07387281abc917", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x6508513cb0f7491f5e29d94a16e4bc0621345d5bddc69cab7e7d3746fd7cceaa", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0172ef", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb3524aa4ed79ff4e5d324f60eb5da3ce37953abf619bb0d8e1a1ed3f21ea34f1" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb3524aa4ed79ff4e5d324f60eb5da3ce37953abf619bb0d8e1a1ed3f21ea34f1", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d600060006000600060006102005af160005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c600055604560015d60015c600155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d600060006000600060006102005af160005560005c60015560015c600255", + "storage": { + "0x00": "0x01", + "0x01": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c600055604560015d60015c600155", + "storage": { + "0x01": "0x45" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0458cd", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff182aa", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-staticcall_cant_call_tstore": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e13ea584751b97a134a1fe628aa769010aa6fcdcf0a4c14c72ac24f3571ca4f3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe13ea584751b97a134a1fe628aa769010aa6fcdcf0a4c14c72ac24f3571ca4f3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7bd3522eadccec3e04908b73237115e159fcc1140baa577e87a2749ec8d515ac" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa07bd3522eadccec3e04908b73237115e159fcc1140baa577e87a2749ec8d515aca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa049438353de5498e5f19d278986cb2edc510ed08e59445f49c634a075ff0ff54aa0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da08a9a98cce6dcc67bf3e0c366dc48afd476432ccd1211897e5e9994f911aa0ec0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bc048203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x7bd3522eadccec3e04908b73237115e159fcc1140baa577e87a2749ec8d515ac", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x49438353de5498e5f19d278986cb2edc510ed08e59445f49c634a075ff0ff54a", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x8a9a98cce6dcc67bf3e0c366dc48afd476432ccd1211897e5e9994f911aa0ec0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01bc04", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf759f394c6b8f00655e5134afd600bc27d24f9f5df8cc913dceb3d7633559c68" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf759f394c6b8f00655e5134afd600bc27d24f9f5df8cc913dceb3d7633559c68", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d600060006000600061020061fffffa60005560005c600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d600060006000600061020061fffffa60005560005c600155", + "storage": { + "0x01": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x05340c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeea7d8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-staticcall_cant_call_tstore_with_stack_underflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0328712230cfdb43d99c09d33a22b532d64e759560599aee2ffe2d5c88bd68028a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x328712230cfdb43d99c09d33a22b532d64e759560599aee2ffe2d5c88bd68028", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2f5403c3c35a79ac6ab89796030214f9537e8abd310ec40a57dac1687d59d560" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa02f5403c3c35a79ac6ab89796030214f9537e8abd310ec40a57dac1687d59d560a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa050b5d32614d994b1315d3d48e5f14ae1f1b14df900e01f48b40146ee49a1333da0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da08a9a98cce6dcc67bf3e0c366dc48afd476432ccd1211897e5e9994f911aa0ec0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bc048203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x2f5403c3c35a79ac6ab89796030214f9537e8abd310ec40a57dac1687d59d560", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x50b5d32614d994b1315d3d48e5f14ae1f1b14df900e01f48b40146ee49a1333d", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x8a9a98cce6dcc67bf3e0c366dc48afd476432ccd1211897e5e9994f911aa0ec0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01bc04", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa75b5b6f7c1811234b34a9049c32d559e2f2043afe25da30da0cb8e7bdc067bd" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa75b5b6f7c1811234b34a9049c32d559e2f2043afe25da30da0cb8e7bdc067bd", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d600060006000600061020061fffffa60005560005c600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d600060006000600061020061fffffa60005560005c600155", + "storage": { + "0x01": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x05340c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeea7d8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-staticcalled_context_can_call_tload": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00d1dd1df92e04b8fcc0c30a44b31c1e60284040c22e348bb34f58a6ad9395cbba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0d1dd1df92e04b8fcc0c30a44b31c1e60284040c22e348bb34f58a6ad9395cbb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x20cdd3d6fbcb5d66ea6efa2dbc124f4391079f422a8e27d342e9520843319ab5" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa020cdd3d6fbcb5d66ea6efa2dbc124f4391079f422a8e27d342e9520843319ab5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ea8b63d94a3bd3b1ae6ba8b6cb20175cc2b13a1a287a6f111203f4c77f285377a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da00183d453c7e7000fe851f646080eb8b9e7020ec1a1329a4b67e4165f3697cbceb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083010a278203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x20cdd3d6fbcb5d66ea6efa2dbc124f4391079f422a8e27d342e9520843319ab5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xea8b63d94a3bd3b1ae6ba8b6cb20175cc2b13a1a287a6f111203f4c77f285377", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x0183d453c7e7000fe851f646080eb8b9e7020ec1a1329a4b67e4165f3697cbce", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x010a27", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x99e4672e700496cadbe233a0e7a4d91cbd3d5079f078d0d3ecbef8c33f508366" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x99e4672e700496cadbe233a0e7a4d91cbd3d5079f078d0d3ecbef8c33f508366", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d60006000600060006102005afa60005560005c600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d60006000600060006102005afa60005560005c600155", + "storage": { + "0x00": "0x01", + "0x01": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x031e75", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff59a7a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-callcode": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dba9a7cdb598eb3ee8dd81ca989c29e253a8d3abd52edafb5b07441d58a4eed6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdba9a7cdb598eb3ee8dd81ca989c29e253a8d3abd52edafb5b07441d58a4eed6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x40e9ff31ee8cabab13c84673d3fa771a4b659b05e0841f092a8d884303e9668d" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa040e9ff31ee8cabab13c84673d3fa771a4b659b05e0841f092a8d884303e9668da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ce43dec2f87b935c3e49fafabd55875b2cd3b6bf69de54d81f3ddd143237695da0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da050869bd3da33a29bb6de6a735325edf8a949c58229823064ce7e01a3915649fbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083020e678203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x40e9ff31ee8cabab13c84673d3fa771a4b659b05e0841f092a8d884303e9668d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xce43dec2f87b935c3e49fafabd55875b2cd3b6bf69de54d81f3ddd143237695d", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x50869bd3da33a29bb6de6a735325edf8a949c58229823064ce7e01a3915649fb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x020e67", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x37523918a2a192655f6a41a4514851f37db7b88c88f99ef049a55f42c488c35a" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x37523918a2a192655f6a41a4514851f37db7b88c88f99ef049a55f42c488c35a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d600060006000600060006102005af260005560005c60015560015c600455", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c600255604560015d60015c600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d600060006000600060006102005af260005560005c60015560015c600455", + "storage": { + "0x00": "0x01", + "0x01": "0x01a4", + "0x02": "0x01a4", + "0x03": "0x45", + "0x04": "0x45" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c600255604560015d60015c600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x062b35", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb6ffa", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-delegatecall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04e338716e69c7ab30b760eab0cf97a92a4d592a6c176f07983fa70ba21c49254a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4e338716e69c7ab30b760eab0cf97a92a4d592a6c176f07983fa70ba21c49254", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x40fcda1e36de3f95dd30c36b1243d064473393fc2f60ba0b0f5f6644d6c62383" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa040fcda1e36de3f95dd30c36b1243d064473393fc2f60ba0b0f5f6644d6c62383a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02cabce67823014220a6deb90d243fff8d75423a44256ccabf843181d5682cbeca0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da001347ac0be13f975cd9b0a2dd47922ef1cf40a7a2f71f228c2e7d36ad1f20815b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083020e648203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x40fcda1e36de3f95dd30c36b1243d064473393fc2f60ba0b0f5f6644d6c62383", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2cabce67823014220a6deb90d243fff8d75423a44256ccabf843181d5682cbec", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x01347ac0be13f975cd9b0a2dd47922ef1cf40a7a2f71f228c2e7d36ad1f20815", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x020e64", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x634279ef601f6fb0f6d62d4a5015defce461c933aa1664b4c663a40933b4ccf0" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x634279ef601f6fb0f6d62d4a5015defce461c933aa1664b4c663a40933b4ccf0", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d60006000600060006102005af460005560005c60015560015c600455", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c600255604560015d60015c600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d60006000600060006102005af460005560005c60015560015c600455", + "storage": { + "0x00": "0x01", + "0x01": "0x01a4", + "0x02": "0x01a4", + "0x03": "0x45", + "0x04": "0x45" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60005c600255604560015d60015c600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x062b2c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb7018", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Cancun-call_with_revert": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a043a39f2f1e1834282354605556f27a719dc93e9f6e14fe65d0f2dd4a3464ebcca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x43a39f2f1e1834282354605556f27a719dc93e9f6e14fe65d0f2dd4a3464ebcc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x409ff5a0959acbe1371454f29eb0d4a040d9bc9738855686096222c60bfc726f" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0409ff5a0959acbe1371454f29eb0d4a040d9bc9738855686096222c60bfc726fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f5428dffdf0f8fafc94701ea675e012b9f6cf46d353d8dfb10ac07f6870ce852a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0427587a4d45fb1b76c726c3a6c4bba81126d65843d89c851cdf4066f5f400ab0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301139f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x409ff5a0959acbe1371454f29eb0d4a040d9bc9738855686096222c60bfc726f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf5428dffdf0f8fafc94701ea675e012b9f6cf46d353d8dfb10ac07f6870ce852", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x427587a4d45fb1b76c726c3a6c4bba81126d65843d89c851cdf4066f5f400ab0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01139f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd1c12133043c336890042acdff22270a144ec2ccc64d623995dc4a4ecec6855c" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xd1c12133043c336890042acdff22270a144ec2ccc64d623995dc4a4ecec6855c", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102005af160005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d60006000fd", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102005af160005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d60006000fd", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033add", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff53bca", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Cancun-call_with_invalid": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bbc4358d45d6a8a68954218a402971047f050840fa071bbb9c68c4b241091db1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbbc4358d45d6a8a68954218a402971047f050840fa071bbb9c68c4b241091db1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf3825c155d66552e21cb8ea9fb4db5a76daf1e2fe0cbdfcf0279250e7f9db17a" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0f3825c155d66552e21cb8ea9fb4db5a76daf1e2fe0cbdfcf0279250e7f9db17aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01fbf7198e132c839d1393f00239dc38de524c3c8a8b531fc139eea1dabdc1fc4a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da04a852aceee58bd3075b6d5bb44067c0feb3b0ad56874179f8173e81bb77a5295b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301142f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xf3825c155d66552e21cb8ea9fb4db5a76daf1e2fe0cbdfcf0279250e7f9db17a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1fbf7198e132c839d1393f00239dc38de524c3c8a8b531fc139eea1dabdc1fc4", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x4a852aceee58bd3075b6d5bb44067c0feb3b0ad56874179f8173e81bb77a5295", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01142f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d9ae06a5070047a0b625c9d84c059b8bb44157b26368958a8019777b270719f" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1d9ae06a5070047a0b625c9d84c059b8bb44157b26368958a8019777b270719f", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020060fff160005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015dfe", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020060fff160005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015dfe", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033c8d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff5362a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Cancun-call_with_stack_overflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0965933d848b3ec85285c940b4d0738381f99c304ddb17965f5f2de3171e48f41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x965933d848b3ec85285c940b4d0738381f99c304ddb17965f5f2de3171e48f41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x28b481a32f7dc4959460f90682e80f63343a305623926649020f336f92fc219b" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa028b481a32f7dc4959460f90682e80f63343a305623926649020f336f92fc219ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0819b4faf6e8030429524357866a7a18ff97906c45e0ff3f004b076545aea7d9ca0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x28b481a32f7dc4959460f90682e80f63343a305623926649020f336f92fc219b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x819b4faf6e8030429524357866a7a18ff97906c45e0ff3f004b076545aea7d9c", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xae88799e19a689240b23a8a8fef4dad841d0da80991e5c1dccb40e9826d10f9b" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xae88799e19a689240b23a8a8fef4dad841d0da80991e5c1dccb40e9826d10f9b", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff160005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff160005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06398d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb402a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "009-fork=Cancun-call_with_tstore_stack_underflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a013926a1686573345329137a781631fb9d5c9012ad4227d7db789d138bab90100a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x13926a1686573345329137a781631fb9d5c9012ad4227d7db789d138bab90100", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ca4983d3615babbc528cf35a7e43998a48792e14bd42bcc0857be8c31a906b8" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa05ca4983d3615babbc528cf35a7e43998a48792e14bd42bcc0857be8c31a906b8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06facad2ac0f70a33c14b4d8ef3d4899c5e5924dc7ecd236af274b96d0d08d959a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x5ca4983d3615babbc528cf35a7e43998a48792e14bd42bcc0857be8c31a906b8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6facad2ac0f70a33c14b4d8ef3d4899c5e5924dc7ecd236af274b96d0d08d959", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x43baccbb8c0d768ef28c8d946a0a55dceffc2a8e58d3046ba9d0e673e2f6f838" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x43baccbb8c0d768ef28c8d946a0a55dceffc2a8e58d3046ba9d0e673e2f6f838", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff160005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff160005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06398d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb402a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "010-fork=Cancun-call_with_tstore_stack_underflow_2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dd4024cb3ea80c394c64c9a5b73292e552d3d4ec2eb55af4b6263dbc6c2a816aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdd4024cb3ea80c394c64c9a5b73292e552d3d4ec2eb55af4b6263dbc6c2a816a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x887d2d8103a07f4d0f563586824f7afdafdec6f831bc59384dcc12c3b47ba898" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0887d2d8103a07f4d0f563586824f7afdafdec6f831bc59384dcc12c3b47ba898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05df2b4da3f87e05a47a1f58febc7028d87be55d881631ad2f2343ea7af62225ea0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x887d2d8103a07f4d0f563586824f7afdafdec6f831bc59384dcc12c3b47ba898", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5df2b4da3f87e05a47a1f58febc7028d87be55d881631ad2f2343ea7af62225e", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa70d520e4e9769e7fb145597099ba90802976d584772327d971e415df934853e" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa70d520e4e9769e7fb145597099ba90802976d584772327d971e415df934853e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff160005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff160005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06398d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb402a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "011-fork=Cancun-call_with_tload_stack_underflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00a8eaaf54bb0598d11194d373d9426b1869aa030f8097e6d19b4fb934c6b9563a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0a8eaaf54bb0598d11194d373d9426b1869aa030f8097e6d19b4fb934c6b9563", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb5e39eca8887c8caf6ea4058ce5ec4d2cbbc65f2b674ac50087475cdaad2c8d4" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0b5e39eca8887c8caf6ea4058ce5ec4d2cbbc65f2b674ac50087475cdaad2c8d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0355d3397bfa2d90ccc19bb883d9c16d364c0578fa38953d125e84eb3bfefc76da0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xb5e39eca8887c8caf6ea4058ce5ec4d2cbbc65f2b674ac50087475cdaad2c8d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x355d3397bfa2d90ccc19bb883d9c16d364c0578fa38953d125e84eb3bfefc76d", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x74c94770359491a0b2bdf65f415b88a4cb5d4ae9576f074f3d7a19283231ce34" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x74c94770359491a0b2bdf65f415b88a4cb5d4ae9576f074f3d7a19283231ce34", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff160005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5c600160005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff160005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5c600160005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06398d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb402a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "012-fork=Cancun-call_with_out_of_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f28dedc81eeb4dd7f73f34b8884d77ef6e78d25ae20aff94150a4e908acdc0d0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf28dedc81eeb4dd7f73f34b8884d77ef6e78d25ae20aff94150a4e908acdc0d0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x763f51b113eff2b44d32f7fc0bcec917047e36f51b3ba0ced253f67a7048a290" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0763f51b113eff2b44d32f7fc0bcec917047e36f51b3ba0ced253f67a7048a290a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f7a59042f29b99a2d7f3548979f413a6722c8849c4443e8db6c296a8a9c506da0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0c0ba04a549582384449693d221b42e5cc3ba46dac69400e243336b281374eb27b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830113998203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x763f51b113eff2b44d32f7fc0bcec917047e36f51b3ba0ced253f67a7048a290", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7f7a59042f29b99a2d7f3548979f413a6722c8849c4443e8db6c296a8a9c506d", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xc0ba04a549582384449693d221b42e5cc3ba46dac69400e243336b281374eb27", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x011399", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf85d2122bbb832498c3e9b3b140ef97227a847c60c89510e9112d92703103d6d" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf85d2122bbb832498c3e9b3b140ef97227a847c60c89510e9112d92703103d6d", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102006069f160005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102006069f160005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033acb", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff53c06", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "013-fork=Cancun-call_with_out_of_gas_2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07db0f2e1155399e1f06aa66bb53705ef01921afdc0256a1ee0bf9e3d8a981a55a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7db0f2e1155399e1f06aa66bb53705ef01921afdc0256a1ee0bf9e3d8a981a55", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfd429589dde9504d4e4b6cec948a2cdcd4fbd64f6c97456ce0d714dff78697db" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0fd429589dde9504d4e4b6cec948a2cdcd4fbd64f6c97456ce0d714dff78697dba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05221f3c70c3bd456e72d526dc9b874c389b39ca60d0fac16c43f70daa7e7a225a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da04a852aceee58bd3075b6d5bb44067c0feb3b0ad56874179f8173e81bb77a5295b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301142f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xfd429589dde9504d4e4b6cec948a2cdcd4fbd64f6c97456ce0d714dff78697db", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5221f3c70c3bd456e72d526dc9b874c389b39ca60d0fac16c43f70daa7e7a225", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x4a852aceee58bd3075b6d5bb44067c0feb3b0ad56874179f8173e81bb77a5295", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01142f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5e78e1c50afd939b06192b3bb9d10580c85753ee8571f68b18e9ffc6598454a6" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5e78e1c50afd939b06192b3bb9d10580c85753ee8571f68b18e9ffc6598454a6", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020060fff160005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020060fff160005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033c8d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff5362a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "014-fork=Cancun-callcode_with_revert": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0675710c5e277b0e756b9401357e7e3e273e6944bcaa9643e97f25b63304fa8b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x675710c5e277b0e756b9401357e7e3e273e6944bcaa9643e97f25b63304fa8b5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc5d4ff15c9bcc38381fdf1812b19ac7f2fcf023f7d8dc2be212a659a1b0bdd4b" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0c5d4ff15c9bcc38381fdf1812b19ac7f2fcf023f7d8dc2be212a659a1b0bdd4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bc1f034aef3d465d73f5b2f2566eeecef502ba4c596469f6f91fb75c41d122dfa0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0427587a4d45fb1b76c726c3a6c4bba81126d65843d89c851cdf4066f5f400ab0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301139f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xc5d4ff15c9bcc38381fdf1812b19ac7f2fcf023f7d8dc2be212a659a1b0bdd4b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbc1f034aef3d465d73f5b2f2566eeecef502ba4c596469f6f91fb75c41d122df", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x427587a4d45fb1b76c726c3a6c4bba81126d65843d89c851cdf4066f5f400ab0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01139f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x98dfc12495cfe79205236d05c474096d7d0c1f7ba42540ef6bc5636a741423c7" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x98dfc12495cfe79205236d05c474096d7d0c1f7ba42540ef6bc5636a741423c7", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102005af260005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d60006000fd", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102005af260005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d60006000fd", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033add", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff53bca", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "015-fork=Cancun-callcode_with_invalid": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04729b65d05bd109204a6df063dd6e7f797939ea41ca7f631f416d3df6238e1a1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4729b65d05bd109204a6df063dd6e7f797939ea41ca7f631f416d3df6238e1a1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8ca2825098f3a168147a6c975a9a8a662bad224ec0979a23bba87e0d3e96b37d" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa08ca2825098f3a168147a6c975a9a8a662bad224ec0979a23bba87e0d3e96b37da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05e8bcd5f8254cf8855244db4f4ee9b09c12a1b89a20278fdcad8ca30363934bda0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da04a852aceee58bd3075b6d5bb44067c0feb3b0ad56874179f8173e81bb77a5295b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301142f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x8ca2825098f3a168147a6c975a9a8a662bad224ec0979a23bba87e0d3e96b37d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5e8bcd5f8254cf8855244db4f4ee9b09c12a1b89a20278fdcad8ca30363934bd", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x4a852aceee58bd3075b6d5bb44067c0feb3b0ad56874179f8173e81bb77a5295", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01142f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfc47561b283397446719f3b54663fb072fec6792b989ac90e55cb1e544e7e736" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xfc47561b283397446719f3b54663fb072fec6792b989ac90e55cb1e544e7e736", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020060fff260005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015dfe", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020060fff260005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015dfe", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033c8d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff5362a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "016-fork=Cancun-callcode_with_stack_overflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07ef99546e20a1edcbe1ffacafeb4a90415d2c40a4a2749fcdf46dd9f09dd2ec3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7ef99546e20a1edcbe1ffacafeb4a90415d2c40a4a2749fcdf46dd9f09dd2ec3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5165be7e8395b36c47d334e767a585fae8debc6d4f8860ce661bd4c69b259d36" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa05165be7e8395b36c47d334e767a585fae8debc6d4f8860ce661bd4c69b259d36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09f1615cf0ebf4472b2ed3017d54d16922cdd5af5948062edcf8f97a620e79c77a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x5165be7e8395b36c47d334e767a585fae8debc6d4f8860ce661bd4c69b259d36", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9f1615cf0ebf4472b2ed3017d54d16922cdd5af5948062edcf8f97a620e79c77", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x70f43159b619449ee227a47f99656cda05443d56b5e4720aa64880cac1af51a6" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x70f43159b619449ee227a47f99656cda05443d56b5e4720aa64880cac1af51a6", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff260005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff260005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06398d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb402a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "017-fork=Cancun-callcode_with_tstore_stack_underflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a024e9fe93f63c4c55adc79755db8ecccf9c7a826741ef26025fd8092590d0ad28a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x24e9fe93f63c4c55adc79755db8ecccf9c7a826741ef26025fd8092590d0ad28", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xee511bd498f4a4d550e6bb4e3bac20e7277b42beb42e96817a884f4e92fe2a64" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0ee511bd498f4a4d550e6bb4e3bac20e7277b42beb42e96817a884f4e92fe2a64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0159aedeacb0629b5779eb82bc6f967ce680d609a1d5e87404e66196ea4d7cdd1a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xee511bd498f4a4d550e6bb4e3bac20e7277b42beb42e96817a884f4e92fe2a64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x159aedeacb0629b5779eb82bc6f967ce680d609a1d5e87404e66196ea4d7cdd1", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xacba3b3bcd7985f8a98d7dbaba82f0b6a17bc4801392ad4847249b297457d677" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xacba3b3bcd7985f8a98d7dbaba82f0b6a17bc4801392ad4847249b297457d677", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff260005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff260005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06398d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb402a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "018-fork=Cancun-callcode_with_tstore_stack_underflow_2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03087d5cc727b228a2bee96958a3267e83ed98568f3297757a2e1a55f13c19a06a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3087d5cc727b228a2bee96958a3267e83ed98568f3297757a2e1a55f13c19a06", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb5028ff6bb92065f7268aeb64d8aadcd103805d9adf5a7f3e3af60bca5f2abc4" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0b5028ff6bb92065f7268aeb64d8aadcd103805d9adf5a7f3e3af60bca5f2abc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08f178f9be495a37c659e2399b7bb3955f6a57e675a1c64716c06611fc55d4db6a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xb5028ff6bb92065f7268aeb64d8aadcd103805d9adf5a7f3e3af60bca5f2abc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8f178f9be495a37c659e2399b7bb3955f6a57e675a1c64716c06611fc55d4db6", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5c19503a0716a8ac76da9ad31c614bbd3dd74fee862e692423c17eda98c58022" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5c19503a0716a8ac76da9ad31c614bbd3dd74fee862e692423c17eda98c58022", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff260005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff260005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06398d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb402a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "019-fork=Cancun-callcode_with_tload_stack_underflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0592fd858efe311b943764a6c89b5e8ccd35a9d0d6641d0e45212847e024240b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x592fd858efe311b943764a6c89b5e8ccd35a9d0d6641d0e45212847e024240b5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5c336eb147aa645753891d9c44e88c546179489872a6be23ecaab72a138d3f0e" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa05c336eb147aa645753891d9c44e88c546179489872a6be23ecaab72a138d3f0ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080863dd930d8c253ca5c60bb3c2a0cb59cbc3ecb938ec4b50cb5a04497a8bbb6a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x5c336eb147aa645753891d9c44e88c546179489872a6be23ecaab72a138d3f0e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x80863dd930d8c253ca5c60bb3c2a0cb59cbc3ecb938ec4b50cb5a04497a8bbb6", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x758d15622b8eac8988b6e39b35cad3c11517e80179fba4a7e8e3a2b29866a9d6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8e95bc88bb1ec762c508fd1679676b739fca0bdace3059aad66d541bfaa9d153" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8e95bc88bb1ec762c508fd1679676b739fca0bdace3059aad66d541bfaa9d153", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff260005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5c600160005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020061fffff260005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5c600160005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06398d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb402a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "020-fork=Cancun-callcode_with_out_of_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a092af15048605a25f26a72614647c6d05286eab646c16ac1da1ad3116f7fd74e4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x92af15048605a25f26a72614647c6d05286eab646c16ac1da1ad3116f7fd74e4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbc81012317e075531eedce0e44b4366d591f3a52bda70c1ad98c3c1917124506" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0bc81012317e075531eedce0e44b4366d591f3a52bda70c1ad98c3c1917124506a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa078381007ffe72b7ca360a27c0bcd3d6a83baf34aa7dccc43fcb7b1224c704490a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0c0ba04a549582384449693d221b42e5cc3ba46dac69400e243336b281374eb27b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830113998203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xbc81012317e075531eedce0e44b4366d591f3a52bda70c1ad98c3c1917124506", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x78381007ffe72b7ca360a27c0bcd3d6a83baf34aa7dccc43fcb7b1224c704490", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xc0ba04a549582384449693d221b42e5cc3ba46dac69400e243336b281374eb27", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x011399", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8291c44b19d37d5eba0dfadf3b2a6afef0c8bd1927cf20de2b00ef951e611dd9" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8291c44b19d37d5eba0dfadf3b2a6afef0c8bd1927cf20de2b00ef951e611dd9", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102006069f260005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102006069f260005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033acb", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff53c06", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "021-fork=Cancun-callcode_with_out_of_gas_2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bbd8abc6c8d2bffd85492237bdc169e8a9510b51614414df653f50d3c0016e49a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbbd8abc6c8d2bffd85492237bdc169e8a9510b51614414df653f50d3c0016e49", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6d21426eec21ef6527014206c6b7237c69b5320e26bc40aa04511d49f0dca940" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa06d21426eec21ef6527014206c6b7237c69b5320e26bc40aa04511d49f0dca940a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa040ff441f2b647e7e5f307e7a5f1ded43c0b7b7277a0015a60e523d6fd462046aa0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da04a852aceee58bd3075b6d5bb44067c0feb3b0ad56874179f8173e81bb77a5295b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301142f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x6d21426eec21ef6527014206c6b7237c69b5320e26bc40aa04511d49f0dca940", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x40ff441f2b647e7e5f307e7a5f1ded43c0b7b7277a0015a60e523d6fd462046a", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x4a852aceee58bd3075b6d5bb44067c0feb3b0ad56874179f8173e81bb77a5295", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01142f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x82fcd3858f0bc4e662b7d3438fa736f7bfba59003df8594e5b32fd32c8b6173c" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x82fcd3858f0bc4e662b7d3438fa736f7bfba59003df8594e5b32fd32c8b6173c", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020060fff260005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d6000600060006000600061020060fff260005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033c8d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff5362a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "022-fork=Cancun-delegatecall_with_revert": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b08c669928cd0d89dcf0486af328164ae5a2807d7245a1d6fc5314982b546482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb08c669928cd0d89dcf0486af328164ae5a2807d7245a1d6fc5314982b546482", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x237f4aa156c3aaad70fbd39c9d5f5c022136f303edd3ae3264723d51decbcdc5" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0237f4aa156c3aaad70fbd39c9d5f5c022136f303edd3ae3264723d51decbcdc5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0344a9675d24e210c9c306df27084a686330851383eb6b788404558a9bd0840c3a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0f14afc069b883a3e7e031fc27f1cd38cf4ec2e0dff9a74701fdd331d2cfae4e1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301139c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x237f4aa156c3aaad70fbd39c9d5f5c022136f303edd3ae3264723d51decbcdc5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x344a9675d24e210c9c306df27084a686330851383eb6b788404558a9bd0840c3", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xf14afc069b883a3e7e031fc27f1cd38cf4ec2e0dff9a74701fdd331d2cfae4e1", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01139c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2b701e2c663972fca8913a16bf21096b90e2229426a94f9286ef997f9cb7c133" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2b701e2c663972fca8913a16bf21096b90e2229426a94f9286ef997f9cb7c133", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d60006000600060006102005af460005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d60006000fd", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d60006000600060006102005af460005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d60006000fd", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033ad4", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff53be8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "023-fork=Cancun-delegatecall_with_invalid": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d0b6d77fb3833c682b8b24cd807df77a319a57242023b53a9ad0d7007c07a6e8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd0b6d77fb3833c682b8b24cd807df77a319a57242023b53a9ad0d7007c07a6e8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe59f46fb89aaa785991937e7077f1d7b6101f489c468cf67fe66339f73db153a" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0e59f46fb89aaa785991937e7077f1d7b6101f489c468cf67fe66339f73db153aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b6c481b8b7ca53ec4e72098336b815c0a8b4aa636fcedda43744051ad191b839a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0047c233676f1c2494e4e89e7802278d0bc6de231f7ae7ad6cb55725c7a248fe4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301142c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xe59f46fb89aaa785991937e7077f1d7b6101f489c468cf67fe66339f73db153a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb6c481b8b7ca53ec4e72098336b815c0a8b4aa636fcedda43744051ad191b839", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x047c233676f1c2494e4e89e7802278d0bc6de231f7ae7ad6cb55725c7a248fe4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01142c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6553d05ca4356cf866f132b28258c4ab9ba1cb7418b956199770a7c6eb24584f" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6553d05ca4356cf866f132b28258c4ab9ba1cb7418b956199770a7c6eb24584f", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020060fff460005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015dfe", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020060fff460005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015dfe", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033c84", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff53648", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "024-fork=Cancun-delegatecall_with_stack_overflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d811c07e9d17a0dbf51a6057b007ee80abd7f2b9b9c374e86792d429b6d13792a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd811c07e9d17a0dbf51a6057b007ee80abd7f2b9b9c374e86792d429b6d13792", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9da8c54f520738c543b788fc4ad221fe1412eda44a6c3d9b5eae106d50a00dcf" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa09da8c54f520738c543b788fc4ad221fe1412eda44a6c3d9b5eae106d50a00dcfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09a59934ca36b34660a3945308fc2a9b7c949382030c59556251a041741ec1483a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0f00f546de9d19b86b94ac5dd4881f56ae10c784dee2b141451c3632f41ef0acbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x9da8c54f520738c543b788fc4ad221fe1412eda44a6c3d9b5eae106d50a00dcf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9a59934ca36b34660a3945308fc2a9b7c949382030c59556251a041741ec1483", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xf00f546de9d19b86b94ac5dd4881f56ae10c784dee2b141451c3632f41ef0acb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdedc9a705b04432e903b1127bfcb4f113a44f1f6366dc8a8ebb08ad292edb8a4" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xdedc9a705b04432e903b1127bfcb4f113a44f1f6366dc8a8ebb08ad292edb8a4", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020061fffff460005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020061fffff460005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x063984", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb4048", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "025-fork=Cancun-delegatecall_with_tstore_stack_underflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0855959a4dbea223623fb24e0afecc6345691f120eb0a1177e09b636344b2f09aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x855959a4dbea223623fb24e0afecc6345691f120eb0a1177e09b636344b2f09a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x14aedd83fca78633132f76edb86ce7e591231f55dfebeee0c3ea3107468dcbcc" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa014aedd83fca78633132f76edb86ce7e591231f55dfebeee0c3ea3107468dcbcca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01ef37edd974609e158c7f9249533d30aad609e165d834b25d50f5481644684caa0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0f00f546de9d19b86b94ac5dd4881f56ae10c784dee2b141451c3632f41ef0acbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x14aedd83fca78633132f76edb86ce7e591231f55dfebeee0c3ea3107468dcbcc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1ef37edd974609e158c7f9249533d30aad609e165d834b25d50f5481644684ca", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xf00f546de9d19b86b94ac5dd4881f56ae10c784dee2b141451c3632f41ef0acb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd45f05d5ef0f14ccc8c69fc0df314cd06a497c2830d0587f878d4001c72e4960" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xd45f05d5ef0f14ccc8c69fc0df314cd06a497c2830d0587f878d4001c72e4960", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020061fffff460005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020061fffff460005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x063984", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb4048", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "026-fork=Cancun-delegatecall_with_tstore_stack_underflow_2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09f86f369c3bc506822f7b408f346c7cd8ef0b212da687684bd7a769924e0cae8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9f86f369c3bc506822f7b408f346c7cd8ef0b212da687684bd7a769924e0cae8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3bfcfed13dba6ed8e0cd4ff4506b5235f7234670f3e312553029194df3b59a36" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa03bfcfed13dba6ed8e0cd4ff4506b5235f7234670f3e312553029194df3b59a36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07b4eb8ac53df0ae1d446dad4b9e09b782ad93ddaab79a7b067f83d05992f5cc7a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0f00f546de9d19b86b94ac5dd4881f56ae10c784dee2b141451c3632f41ef0acbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x3bfcfed13dba6ed8e0cd4ff4506b5235f7234670f3e312553029194df3b59a36", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7b4eb8ac53df0ae1d446dad4b9e09b782ad93ddaab79a7b067f83d05992f5cc7", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xf00f546de9d19b86b94ac5dd4881f56ae10c784dee2b141451c3632f41ef0acb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf86da969c781ddb84fa18936c8ffc553aad0f4f7b620dc4b0beb1ae3be47ad78" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf86da969c781ddb84fa18936c8ffc553aad0f4f7b620dc4b0beb1ae3be47ad78", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020061fffff460005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020061fffff460005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x063984", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb4048", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "027-fork=Cancun-delegatecall_with_tload_stack_underflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0249fdd3efaca8711e41d8a1a04a91b717bafbe349d652d9565f2ca9d4b479761a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x249fdd3efaca8711e41d8a1a04a91b717bafbe349d652d9565f2ca9d4b479761", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb697dc1937c823356e0a5b9482501c5985d053bec08a2dcf5b07fe326187bd0a" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0b697dc1937c823356e0a5b9482501c5985d053bec08a2dcf5b07fe326187bd0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cc2fe1a5c0a95cd16a708e3589c6a2468a14edb6887f021f9469499a3c9be350a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0f00f546de9d19b86b94ac5dd4881f56ae10c784dee2b141451c3632f41ef0acbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302132c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xb697dc1937c823356e0a5b9482501c5985d053bec08a2dcf5b07fe326187bd0a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcc2fe1a5c0a95cd16a708e3589c6a2468a14edb6887f021f9469499a3c9be350", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xf00f546de9d19b86b94ac5dd4881f56ae10c784dee2b141451c3632f41ef0acb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02132c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfcb3517b1c5bfa2f8491fa74cc46cf1547316ee0030c802d8c92d2a4769e3df4" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xfcb3517b1c5bfa2f8491fa74cc46cf1547316ee0030c802d8c92d2a4769e3df4", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020061fffff460005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5c600160005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020061fffff460005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5c600160005d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x063984", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb4048", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "028-fork=Cancun-delegatecall_with_out_of_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0efbf4e79c1e93f0f8fbedfc8e8479a8a0040f14522d90554a86e8cfd189401baa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xefbf4e79c1e93f0f8fbedfc8e8479a8a0040f14522d90554a86e8cfd189401ba", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x64da83850b9bf4aa3b87b48cac8233f145f280e35517a4a4136800c741f5d93a" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa064da83850b9bf4aa3b87b48cac8233f145f280e35517a4a4136800c741f5d93aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fbc5814dcc5b021b964e2fdf6945469b90f378bb631d7d82b5f50bf83aac04a4a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0c0ba04a549582384449693d221b42e5cc3ba46dac69400e243336b281374eb27b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830113998203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x64da83850b9bf4aa3b87b48cac8233f145f280e35517a4a4136800c741f5d93a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfbc5814dcc5b021b964e2fdf6945469b90f378bb631d7d82b5f50bf83aac04a4", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xc0ba04a549582384449693d221b42e5cc3ba46dac69400e243336b281374eb27", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x011399", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x73f5c885e103a8fc2d447c87998fa002e28236b30abbba2b45582a0f2f0b58bb" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x73f5c885e103a8fc2d447c87998fa002e28236b30abbba2b45582a0f2f0b58bb", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102006069f460005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600060006102006069f460005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033acb", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff53c06", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "029-fork=Cancun-delegatecall_with_out_of_gas_2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0841e42c2fa1c9fe153c0598e9179682cd01e42f88c4884ed5f235261d5fe12a1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x841e42c2fa1c9fe153c0598e9179682cd01e42f88c4884ed5f235261d5fe12a1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe8ec990a73bd0e7ff1fbff3ead09415def4b94df92c7631488393fd06ac78ef4" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0e8ec990a73bd0e7ff1fbff3ead09415def4b94df92c7631488393fd06ac78ef4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa023d5f8565fa471026aa9ed63c4096f65f94b47c7976b446885634e6c1e292c29a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0047c233676f1c2494e4e89e7802278d0bc6de231f7ae7ad6cb55725c7a248fe4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301142c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xe8ec990a73bd0e7ff1fbff3ead09415def4b94df92c7631488393fd06ac78ef4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x23d5f8565fa471026aa9ed63c4096f65f94b47c7976b446885634e6c1e292c29", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x047c233676f1c2494e4e89e7802278d0bc6de231f7ae7ad6cb55725c7a248fe4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01142c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f8a04cf2aa0b99bb574e4b4aa482596995ec6731b4925a78520190d63c4f034" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7f8a04cf2aa0b99bb574e4b4aa482596995ec6731b4925a78520190d63c4f034", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020060fff460005560005c60015560015c600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6101a460005d6101a460015d600060006000600061020060fff460005560005c60015560015c600255", + "storage": { + "0x01": "0x01a4", + "0x02": "0x01a4" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x604560015d5f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f505f50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x033c84", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff53648", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json new file mode 100644 index 00000000000..983c53f96ba --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_reentrancy_contexts/reentrant_call.json @@ -0,0 +1,1320 @@ +{ + "000-fork=Cancun-tstore_in_reentrant_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d242b555377690bcfeb71372321ffca9cb21ab120f2d30ae8a354216aa8b8500a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd242b555377690bcfeb71372321ffca9cb21ab120f2d30ae8a354216aa8b8500", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcc82d85cd17aeedcea47c90d7bacfb0e9d981aa17d9aca7366cefb9b92028e1e" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa0cc82d85cd17aeedcea47c90d7bacfb0e9d981aa17d9aca7366cefb9b92028e1ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa029b12a211ba1dd42687cfb45f35119395ab079a66eed9aaf3283b9e7c8b563c3a073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a06f31c230c85ff8a471acf223e1ad22c5e14677e0421e84143821492c27178d50b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830157a48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0xcc82d85cd17aeedcea47c90d7bacfb0e9d981aa17d9aca7366cefb9b92028e1e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x29b12a211ba1dd42687cfb45f35119395ab079a66eed9aaf3283b9e7c8b563c3", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0x6f31c230c85ff8a471acf223e1ad22c5e14677e0421e84143821492c27178d50", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0157a4", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7d4842ff2a13e6bc7af9d876c8b318c5d408aff3bdd244ba20f932d74ac2682f" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7d4842ff2a13e6bc7af9d876c8b318c5d408aff3bdd244ba20f932d74ac2682f", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514600e58015760005c60015560275801565b61010060005d6002600052600060006020600060006102005af160005560005c6002555b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514600e58015760005c60015560275801565b61010060005d6002600052600060006020600060006102005af160005560005c6002555b", + "storage": { + "0x00": "0x01", + "0x01": "0x0100", + "0x02": "0x0100" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0406ec", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff29398", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-tload_after_reentrant_tstore": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bfb05c1e5e3826880ea1f6ef936ab68805ddf95421ef12a12320228dfa9b5f3ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbfb05c1e5e3826880ea1f6ef936ab68805ddf95421ef12a12320228dfa9b5f3e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe5ccadb588d0bf9721ec60725532fcf8be9508f52d35f7fac84480df9b454027" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa0e5ccadb588d0bf9721ec60725532fcf8be9508f52d35f7fac84480df9b454027a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e1ee7f6acb6c1f3d9a0cb302a707866d952b5582bd024342f8de1c639a281196a073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a0e43c8a67124a11cb74b07dd7c2613bf312c8d84114f3b17867fa390014573aa6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301580e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0xe5ccadb588d0bf9721ec60725532fcf8be9508f52d35f7fac84480df9b454027", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe1ee7f6acb6c1f3d9a0cb302a707866d952b5582bd024342f8de1c639a281196", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0xe43c8a67124a11cb74b07dd7c2613bf312c8d84114f3b17867fa390014573aa6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01580e", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1ee6df803d47822f5782ecc6719e3bd753f9c5deddca37f8846f8d8648baba89" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1ee6df803d47822f5782ecc6719e3bd753f9c5deddca37f8846f8d8648baba89", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514600e58015761010160ff5d602d5801565b61010060ff5d60ff5c6001556002600052600060006020600060006102005af160005560ff5c6002555b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514600e58015761010160ff5d602d5801565b61010060ff5d60ff5c6001556002600052600060006020600060006102005af160005560ff5c6002555b", + "storage": { + "0x00": "0x01", + "0x01": "0x0100", + "0x02": "0x0101" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x04082a", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff28f74", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-manipulate_in_reentrant_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a4e8d0f1fddc33fdaa628bbe838e09e438e9b83528ceb790c3747e25b0e9265ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa4e8d0f1fddc33fdaa628bbe838e09e438e9b83528ceb790c3747e25b0e9265c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcfa40aa77d2d9ccd72cdf02c35beb6802830f3c52af5bed5e6fa72959260ad35" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa0cfa40aa77d2d9ccd72cdf02c35beb6802830f3c52af5bed5e6fa72959260ad35a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01d4603caba787107e208d109602ce1deb15f7f87d618693a1abca8160a8c24cfa073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a0c6086289d50b53dc7d76125ac4323a1fbff8663abf6ed76d0f8703a77a27e612b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301aecc8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0xcfa40aa77d2d9ccd72cdf02c35beb6802830f3c52af5bed5e6fa72959260ad35", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1d4603caba787107e208d109602ce1deb15f7f87d618693a1abca8160a8c24cf", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0xc6086289d50b53dc7d76125ac4323a1fbff8663abf6ed76d0f8703a77a27e612", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01aecc", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x12d30410fa91c63e53faae67143628f6d2d0f9ad970869ae07e6ace5d5ad2847" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x12d30410fa91c63e53faae67143628f6d2d0f9ad970869ae07e6ace5d5ad2847", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514601458015761010160ff5d60ff5c600255602d5801565b61010060ff5d60ff5c6001556002600052600060006020600060006102005af160005560ff5c6003555b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514601458015761010160ff5d60ff5c600255602d5801565b61010060ff5d60ff5c6001556002600052600060006020600060006102005af160005560ff5c6003555b", + "storage": { + "0x00": "0x01", + "0x01": "0x0100", + "0x02": "0x0101", + "0x03": "0x0101" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x050c64", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffef2c08", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-tstore_in_call_then_tload_return_in_staticcall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e0934addf83652282f45ef35e294dfd0d60c6c1f3238fb18af1ec27ad4c15001a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe0934addf83652282f45ef35e294dfd0d60c6c1f3238fb18af1ec27ad4c15001", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9c6e22b902cdf5de6351c0609f075306ef4d31fae826c75900b6a889294f6e43" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa09c6e22b902cdf5de6351c0609f075306ef4d31fae826c75900b6a889294f6e43a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa084716a75cbf7b68176e4f6484df06133ca22c00f60ad6cb509ad286574b55feea073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a04d1d0815d7f2bb6ac71911b3e07d20e25165811c199dce80b0edcab37353a0bfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830206248203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0x9c6e22b902cdf5de6351c0609f075306ef4d31fae826c75900b6a889294f6e43", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x84716a75cbf7b68176e4f6484df06133ca22c00f60ad6cb509ad286574b55fee", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0x4d1d0815d7f2bb6ac71911b3e07d20e25165811c199dce80b0edcab37353a0bf", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x020624", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd728669700e1ae582035f8d68fe47db74a50167a1d341d07afe1af5f07a0c7a3" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xd728669700e1ae582035f8d68fe47db74a50167a1d341d07afe1af5f07a0c7a3", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600260003514604d580157600360003514603158015761010060ff5d60ff5c6002556002600052600060006020600060006102005af160005560fe5c600455603b5801565b60fe5c60005260206000f3602a5801565b61010160fe5d600360005260206000602060006102005afa60015560005160035560035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600260003514604d580157600360003514603158015761010060ff5d60ff5c6002556002600052600060006020600060006102005af160005560fe5c600455603b5801565b60fe5c60005260206000f3602a5801565b61010160fe5d600360005260206000602060006102005afa60015560005160035560035801565b", + "storage": { + "0x00": "0x01", + "0x01": "0x01", + "0x02": "0x0100", + "0x03": "0x0101", + "0x04": "0x0101" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06126c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffebc298", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-tstore_before_revert_has_no_effect": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fc0c38e63113ac61dcaaf2668491103f9fd78a1cc3b85971db60b21b6d2790faa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfc0c38e63113ac61dcaaf2668491103f9fd78a1cc3b85971db60b21b6d2790fa", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe018e1d6116491770c18ea0a75f7266874fed8d3ae7719807fc063562cf1d85c" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa0e018e1d6116491770c18ea0a75f7266874fed8d3ae7719807fc063562cf1d85ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077f93b687575a6bb2035935c91a69fe9b863230c77a170a214fbdd8cba2d47cba073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a0b1611486ed8428843751ed8c65856b3d90fe68d7efc0b6892d2553289b5978b7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083010a478203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0xe018e1d6116491770c18ea0a75f7266874fed8d3ae7719807fc063562cf1d85c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x77f93b687575a6bb2035935c91a69fe9b863230c77a170a214fbdd8cba2d47cb", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0xb1611486ed8428843751ed8c65856b3d90fe68d7efc0b6892d2553289b5978b7", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x010a47", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x808d6bc196f44c981dca000f3c8949748885c7077565f51b29e99d2702cef1d2" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x808d6bc196f44c981dca000f3c8949748885c7077565f51b29e99d2702cef1d2", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514601358015761010160ff5d60006000fd602d5801565b61010060ff5d60ff5c6001556002600052600060006020600060006102005af160005560ff5c6002555b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514601358015761010160ff5d60006000fd602d5801565b61010060ff5d60ff5c6001556002600052600060006020600060006102005af160005560ff5c6002555b", + "storage": { + "0x01": "0x0100", + "0x02": "0x0100" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x031ed5", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff5993a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-revert_undoes_all": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a095ee90452c178687daa1085243e98d26eaeba8d83139c90f6c7a752763033de6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x95ee90452c178687daa1085243e98d26eaeba8d83139c90f6c7a752763033de6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0f0398d71de7899611abe61cebac8d8df0caeaa28469c4aa3c839939be6b77f5" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa00f0398d71de7899611abe61cebac8d8df0caeaa28469c4aa3c839939be6b77f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03a8842be1be59a1112e9b6242e1c58d2045da8ec6c69b243178dc5eb564a3c1ba073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a005e6586e58f61923ee1728eac72b28bded5e139ebfb7ec54da58add7804045bcb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083010bef8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0x0f0398d71de7899611abe61cebac8d8df0caeaa28469c4aa3c839939be6b77f5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3a8842be1be59a1112e9b6242e1c58d2045da8ec6c69b243178dc5eb564a3c1b", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0x05e6586e58f61923ee1728eac72b28bded5e139ebfb7ec54da58add7804045bc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x010bef", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa80e5a325f856357eeab179d87f598e2c1e1273d4c0c05844489022e0cb8e917" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa80e5a325f856357eeab179d87f598e2c1e1273d4c0c05844489022e0cb8e917", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514602558015761020160fe5d61020260fe5d61020160ff5d61020260ff5d60006000fd60335801565b61010060fe5d61010160ff5d6002600052600060006020600060006102005af160005560fe5c60015560ff5c6002555b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514602558015761020160fe5d61020260fe5d61020160ff5d61020260ff5d60006000fd60335801565b61010060fe5d61010160ff5d6002600052600060006020600060006102005af160005560fe5c60015560ff5c6002555b", + "storage": { + "0x01": "0x0100", + "0x02": "0x0101" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0323cd", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff588aa", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Cancun-revert_undoes_tstorage_after_successful_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03508a089665d4c327c41164e416a4346616dab2f4ad413e58a59b9db23ba5934a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3508a089665d4c327c41164e416a4346616dab2f4ad413e58a59b9db23ba5934", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x024b0ac97f4f7f10f73f00eb070979286676a35211e06c0805ba07cf75659fbc" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa0024b0ac97f4f7f10f73f00eb070979286676a35211e06c0805ba07cf75659fbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa027e8275f0cf4be51aeab58440c148b1a453336f92e30ebbf412c525f7ee48c67a073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a08660c6d9c521df7a6d2a1a72a9f6834eb19b0ff803463efa058611980e0d380cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830161ad8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0x024b0ac97f4f7f10f73f00eb070979286676a35211e06c0805ba07cf75659fbc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x27e8275f0cf4be51aeab58440c148b1a453336f92e30ebbf412c525f7ee48c67", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0x8660c6d9c521df7a6d2a1a72a9f6834eb19b0ff803463efa058611980e0d380c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0161ad", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbccba566e5911d1a759d85b09ebb3e5aee2bb93d143ad55f659210c65d567525" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xbccba566e5911d1a759d85b09ebb3e5aee2bb93d143ad55f659210c65d567525", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600260003514604e580157600360003514603758015761010060ff5d60ff5c6002556002600052602060206020600060006102005af160005560205160015560ff5c60035560315801565b61010160ff5d60255801565b6003600052600060006020600060006102005af160005260206000fd60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600260003514604e580157600360003514603758015761010060ff5d60ff5c6002556002600052602060206020600060006102005af160005560205160015560ff5c60035560315801565b61010160ff5d60255801565b6003600052600060006020600060006102005af160005260206000fd60035801565b", + "storage": { + "0x01": "0x01", + "0x02": "0x0100", + "0x03": "0x0100" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x042507", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff22f3e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Cancun-tstore_before_invalid_has_no_effect": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b1cfb499f3745ee6df7cf078e0f181e1028695a859849c7a50332b3810e7c20fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb1cfb499f3745ee6df7cf078e0f181e1028695a859849c7a50332b3810e7c20f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3fa24aa69bf131323cf293ba7a41c5a5cd534f0cc96a5975f302ed46e870a150" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa03fa24aa69bf131323cf293ba7a41c5a5cd534f0cc96a5975f302ed46e870a150a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa047d5cb06b94df33a35880a9f85652900305724e3c99ded3aa98f2aa22ff4671ba073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a057dd309f46359f2e82d7ee2cb9ccfddb36f72c5b05e4881f03dcd95484b04898b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830209b98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0x3fa24aa69bf131323cf293ba7a41c5a5cd534f0cc96a5975f302ed46e870a150", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x47d5cb06b94df33a35880a9f85652900305724e3c99ded3aa98f2aa22ff4671b", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0x57dd309f46359f2e82d7ee2cb9ccfddb36f72c5b05e4881f03dcd95484b04898", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0209b9", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa98f863da57b35991c6da2847f8711a89693a11fae2436ecbb8a644c85b234ee" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa98f863da57b35991c6da2847f8711a89693a11fae2436ecbb8a644c85b234ee", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514600f58015761010160ff5dfe602f5801565b61010060ff5d60ff5c60015560026000526000600060206000600061020061fffff160005560ff5c6002555b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514600f58015761010160ff5dfe602f5801565b61010060ff5d60ff5c60015560026000526000600060206000600061020061fffff160005560ff5c6002555b", + "storage": { + "0x01": "0x0100", + "0x02": "0x0100" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x061d2b", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb9ec6", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Cancun-invalid_undoes_all": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09fe67482e28ff3432cb1d85f5b5d9a0a83a7cfbddce4f9dd56998a63b6bc9db2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9fe67482e28ff3432cb1d85f5b5d9a0a83a7cfbddce4f9dd56998a63b6bc9db2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa82d024f986b7c2c69a9c1723f5ca28658f6af420019fb9a296c3185de307b78" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa0a82d024f986b7c2c69a9c1723f5ca28658f6af420019fb9a296c3185de307b78a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ee849b5b68d16ba7d364dec08deb68fb7ea25099267bebcf99939a3c170c7699a073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a0bae95c8b70e93c0d6ced13fd3b56f14f6e1099b08b063f5070db06c19b72a118b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083020a238203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0xa82d024f986b7c2c69a9c1723f5ca28658f6af420019fb9a296c3185de307b78", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xee849b5b68d16ba7d364dec08deb68fb7ea25099267bebcf99939a3c170c7699", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0xbae95c8b70e93c0d6ced13fd3b56f14f6e1099b08b063f5070db06c19b72a118", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x020a23", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x62261ae68f571a7de44f4768164f1221e6f8ed0452f0cb68ecd5f7483b32e639" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x62261ae68f571a7de44f4768164f1221e6f8ed0452f0cb68ecd5f7483b32e639", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514602158015761020160fe5d61020260fe5d61020160ff5d61020260ff5dfe60355801565b61010060fe5d61010160ff5d60026000526000600060206000600061020061fffff160005560fe5c60015560ff5c6002555b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514602158015761020160fe5d61020260fe5d61020160ff5d61020260ff5dfe60355801565b61010060fe5d61010160ff5d60026000526000600060206000600061020061fffff160005560fe5c60015560ff5c6002555b", + "storage": { + "0x01": "0x0100", + "0x02": "0x0101" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x061e69", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb9aa2", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "009-fork=Cancun-invalid_undoes_tstorage_after_successful_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0814a110418df17af72ca3e67bbf46f448ff367857fd47dad5896c9609c79a461a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x814a110418df17af72ca3e67bbf46f448ff367857fd47dad5896c9609c79a461", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0bef751f29a5a82b886f611c28538d57d1666748048c27995a5e0b30e85c2ded" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa00bef751f29a5a82b886f611c28538d57d1666748048c27995a5e0b30e85c2deda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dc2ba72b90f2adf30e6f71a03b3353cb8949568805d5b1b5337dab7e03c92a06a073ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2a03614b089dd3ccd8f05b31fbc15e4c2df3f0206e47637afe1b5807014470204f8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302128a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000126a0960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82a03f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0c0c0", + "blockHeader": { + "parentHash": "0x0bef751f29a5a82b886f611c28538d57d1666748048c27995a5e0b30e85c2ded", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdc2ba72b90f2adf30e6f71a03b3353cb8949568805d5b1b5337dab7e03c92a06", + "transactionsTrie": "0x73ab01a5c76d708ec5bb330bd236df96dbf2a6d133d92dd96ac2c100b9a760e2", + "receiptTrie": "0x3614b089dd3ccd8f05b31fbc15e4c2df3f0206e47637afe1b5807014470204f8", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02128a", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x24fcb017f7ab54d0575d76e5f5ccafd3df05322bd523c5795fcc99a5bd63d08a" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x26", + "r": "0x960e5f676ae96a463a82d6e66ad5e3755279ce431343c063842f5254d4287b82", + "s": "0x3f500ed3b0e09b04183bfaf2de1460461a2b3381eafc98248f822d1fbabe95b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x24fcb017f7ab54d0575d76e5f5ccafd3df05322bd523c5795fcc99a5bd63d08a", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6002600035146050580157600360003514603958015761010060ff5d60ff5c60025560026000526020602060206000600061020061fffff160005560205160015560ff5c600355602d5801565b61010160ff5d60215801565b6003600052600060006020600060006102005af1600052fe60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6002600035146050580157600360003514603958015761010060ff5d60ff5c60025560026000526020602060206000600061020061fffff160005560205160015560ff5c600355602d5801565b61010160ff5d60215801565b6003600052600060006020600060006102005af1600052fe60035801565b", + "storage": { + "0x02": "0x0100", + "0x03": "0x0100" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06379e", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeb469c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json new file mode 100644 index 00000000000..5f2f0c50c65 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip1153_tstore/tstorage_selfdestruct/reentrant_selfdestructing_call.json @@ -0,0 +1,905 @@ +{ + "000-fork=Cancun-tload_after_selfdestruct_pre_existing_contract": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0683068046e9db0e9078ed9d75ee40570295a74ff12bbf49bb677424bb7a3286aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x683068046e9db0e9078ed9d75ee40570295a74ff12bbf49bb677424bb7a3286a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x055ad3b2faa0d9b250030e1ffb8fa7c9d50c0b85b82a7f8bb029dd84ff746751" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0055ad3b2faa0d9b250030e1ffb8fa7c9d50c0b85b82a7f8bb029dd84ff746751a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0324086b90c1f33a94fffe3aceb568f681c998f7350b34e62f804d71dff01de4ea0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da053225e95efc01c41451b1b1c316edbc290b5db5ac5ee157f884b385c08557667b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083017ecb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x055ad3b2faa0d9b250030e1ffb8fa7c9d50c0b85b82a7f8bb029dd84ff746751", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x324086b90c1f33a94fffe3aceb568f681c998f7350b34e62f804d71dff01de4e", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x53225e95efc01c41451b1b1c316edbc290b5db5ac5ee157f884b385c08557667", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x017ecb", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb89650405fc49dcdaf8b4326bdebc355463de41dbb117963ea7bd00084c66961" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb89650405fc49dcdaf8b4326bdebc355463de41dbb117963ea7bd00084c66961", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x6001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16000556002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600155600051600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61003c600081600b8239f36001600035146024580157600260003514600858015760235801565b60ff5c60005260206000f360125801565b61010060ff5d6000ff60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6001600035146024580157600260003514600858015760235801565b60ff5c60005260206000f360125801565b61010060ff5d6000ff60035801565b", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x6001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16000556002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600155600051600255", + "storage": { + "0x00": "0x01", + "0x01": "0x01", + "0x02": "0x0100" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61003c600081600b8239f36001600035146024580157600260003514600858015760235801565b60ff5c60005260206000f360125801565b61010060ff5d6000ff60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6001600035146024580157600260003514600858015760235801565b60ff5c60005260206000f360125801565b61010060ff5d6000ff60035801565b", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x047c61", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff10c12", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-tload_after_selfdestruct_new_contract": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0601741c2bc16991ac4cdb5efb76746e2187a8a693e2e5b3bcffa887ae9f1ee73a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x601741c2bc16991ac4cdb5efb76746e2187a8a693e2e5b3bcffa887ae9f1ee73", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6e837a269e0da0cc30dd0a9912e2ad232097ce6931969e809c5190f52da6dac2" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa06e837a269e0da0cc30dd0a9912e2ad232097ce6931969e809c5190f52da6dac2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb13cc1e3e26b5bd598b163563321fbd9c286d325e49bc158f8047a33ecb7894a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0b1dd7634fbafa777f4fc53f46405adabc1e9ae956d81a5ccae0f20b601bb1589b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830282768203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x6e837a269e0da0cc30dd0a9912e2ad232097ce6931969e809c5190f52da6dac2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbb13cc1e3e26b5bd598b163563321fbd9c286d325e49bc158f8047a33ecb7894", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xb1dd7634fbafa777f4fc53f46405adabc1e9ae956d81a5ccae0f20b601bb1589", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028276", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa64a6f14e40ab995914f8e2df165f21eed92194227535aeb8b65731439078bc9" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa64a6f14e40ab995914f8e2df165f21eed92194227535aeb8b65731439078bc9", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x6102003b600060006102003c6102003b60006000f06000556001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16001556002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600255600051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61003c600081600b8239f36001600035146024580157600260003514600858015760235801565b60ff5c60005260206000f360125801565b61010060ff5d6000ff60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x6102003b600060006102003c6102003b60006000f06000556001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16001556002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600255600051600355", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x01", + "0x02": "0x01", + "0x03": "0x0100" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61003c600081600b8239f36001600035146024580157600260003514600858015760235801565b60ff5c60005260206000f360125801565b61010060ff5d6000ff60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x078762", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffe6e764", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-tload_after_inner_selfdestruct_pre_existing_contract": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a013c53f2955fac992e08ea97b058b53cd88d1539f714aef8eeee7fd1c51ced3b3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x13c53f2955fac992e08ea97b058b53cd88d1539f714aef8eeee7fd1c51ced3b3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9ead19ec7e94e0915ef0bb295bc6e79cc22e53770c433c869e3faee05056d787" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa09ead19ec7e94e0915ef0bb295bc6e79cc22e53770c433c869e3faee05056d787a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b9826b0decf1c1a82ff571e777e346bcfafc643aca7a4494d783eec6bb9c087fa0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da00a4d8a5c5fe8da4c037358ae2a2a49ebf4ae19d672b3ed4d542753980dcc3133b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830128748203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x9ead19ec7e94e0915ef0bb295bc6e79cc22e53770c433c869e3faee05056d787", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb9826b0decf1c1a82ff571e777e346bcfafc643aca7a4494d783eec6bb9c087f", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x0a4d8a5c5fe8da4c037358ae2a2a49ebf4ae19d672b3ed4d542753980dcc3133", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x012874", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0e54772b5aca3aac1e2d28efbabfb008e1bf6fe61f5ba1f0fe27bd7de6212357" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0e54772b5aca3aac1e2d28efbabfb008e1bf6fe61f5ba1f0fe27bd7de6212357", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x6001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600055600051600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610062600081600b8239f3600160003514601c580157600260003514600858015760495801565b6000ff60405801565b61010060ff5d6002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160ff5c60005260206000f360035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514601c580157600260003514600858015760495801565b6000ff60405801565b61010060ff5d6002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160ff5c60005260206000f360035801565b", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x6001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600055600051600155", + "storage": { + "0x00": "0x01", + "0x01": "0x0100" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610062600081600b8239f3600160003514601c580157600260003514600858015760495801565b6000ff60405801565b61010060ff5d6002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160ff5c60005260206000f360035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514601c580157600260003514600858015760495801565b6000ff60405801565b61010060ff5d6002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160ff5c60005260206000f360035801565b", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x03795c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff46b78", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-tload_after_inner_selfdestruct_new_contract": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a074a107843c87a76e49f81dfcbd045b7b8980799d45a7c21b0432e99032e62710a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x74a107843c87a76e49f81dfcbd045b7b8980799d45a7c21b0432e99032e62710", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbcbc2d5f423948238586921166136d10222b342aeb362db994b8ee9a6f860f14" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0bcbc2d5f423948238586921166136d10222b342aeb362db994b8ee9a6f860f14a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01531e72bf84e89383abd92907b1c14818a62d601c9abb8c32e5eb084fb9c6778a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0e7b8ff311aa23641c9919c57805fc508e5933eb4f07989cd4ae2f574e390356ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830249e38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xbcbc2d5f423948238586921166136d10222b342aeb362db994b8ee9a6f860f14", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1531e72bf84e89383abd92907b1c14818a62d601c9abb8c32e5eb084fb9c6778", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0xe7b8ff311aa23641c9919c57805fc508e5933eb4f07989cd4ae2f574e390356a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0249e3", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x90191244bf2ef96cf176b9042f1f361d512a272b8c9f251a81bac365aa515dc3" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x90191244bf2ef96cf176b9042f1f361d512a272b8c9f251a81bac365aa515dc3", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x6102003b600060006102003c6102003b60006000f06000556001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600155600051600255", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610062600081600b8239f3600160003514601c580157600260003514600858015760495801565b6000ff60405801565b61010060ff5d6002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160ff5c60005260206000f360035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x6102003b600060006102003c6102003b60006000f06000556001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600155600051600255", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x01", + "0x02": "0x0100" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610062600081600b8239f3600160003514601c580157600260003514600858015760495801565b6000ff60405801565b61010060ff5d6002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af160ff5c60005260206000f360035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x06dda9", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffe91d22", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-tstore_after_selfdestruct_pre_existing_contract": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c03bbbca4cc6baed40a92c960a832c2b168f370e651c3acc8d4ab5d16209313fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc03bbbca4cc6baed40a92c960a832c2b168f370e651c3acc8d4ab5d16209313f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdfa79e0fc32d6631490cb8222d5fb2af2b91f93d5c541eb1ae53d8ca3b83c41b" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0dfa79e0fc32d6631490cb8222d5fb2af2b91f93d5c541eb1ae53d8ca3b83c41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0430fdd88466b613eb592989b98ca176cb8c3c2991086f10a1ccd658940ce2e54a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da06d7c9e5e8c5407ed54d497983e7c695b791f488d9a9a940cb1216c922b8a8f81b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d60f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0xdfa79e0fc32d6631490cb8222d5fb2af2b91f93d5c541eb1ae53d8ca3b83c41b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x430fdd88466b613eb592989b98ca176cb8c3c2991086f10a1ccd658940ce2e54", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x6d7c9e5e8c5407ed54d497983e7c695b791f488d9a9a940cb1216c922b8a8f81", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d60f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6752d6c9475a40178dbca16af289cf2302a02068bbe870497d6956ba63790056" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6752d6c9475a40178dbca16af289cf2302a02068bbe870497d6956ba63790056", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x6001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16000556002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16001556003600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600255600051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61004d600081600b8239f3600160003514603b5801576002600035146024580157600360003514600858015760295801565b60ff5c60005260206000f360185801565b61010060ff5d600c5801565b6000ff60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514603b5801576002600035146024580157600360003514600858015760295801565b60ff5c60005260206000f360185801565b61010060ff5d600c5801565b6000ff60035801565b", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x6001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16000556002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16001556003600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600255600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x01", + "0x02": "0x01", + "0x03": "0x0100" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61004d600081600b8239f3600160003514603b5801576002600035146024580157600360003514600858015760295801565b60ff5c60005260206000f360185801565b61010060ff5d600c5801565b6000ff60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600160003514603b5801576002600035146024580157600360003514600858015760295801565b60ff5c60005260206000f360185801565b61010060ff5d600c5801565b6000ff60035801565b", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x05822d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffeda36a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-tstore_after_selfdestruct_new_contract": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1153.md", + "reference-spec-version": "6f0be621c76a05a7b3aaf0e9297afd425c26e9d0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a096dd6339e1a8355ec2eac7ae923092e4235876f0c949af31b43c9b80d8f16f2aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x96dd6339e1a8355ec2eac7ae923092e4235876f0c949af31b43c9b80d8f16f2a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x080e55361e72c4d73726d6c26922f940c44ad9792328e5b9563941f842250fb3" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0080e55361e72c4d73726d6c26922f940c44ad9792328e5b9563941f842250fb3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0acb34ab4a9ba274a6cbf41562802b3b62b256a875255d52c0692ed2d251efb7ba0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da035859e57660974981f0e1ae0bb72c6d33180ea581293eb075d2f5ac2249b476db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e7088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "blockHeader": { + "parentHash": "0x080e55361e72c4d73726d6c26922f940c44ad9792328e5b9563941f842250fb3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xacb34ab4a9ba274a6cbf41562802b3b62b256a875255d52c0692ed2d251efb7b", + "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", + "receiptTrie": "0x35859e57660974981f0e1ae0bb72c6d33180ea581293eb075d2f5ac2249b476d", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02e708", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0107a7c254a09d03864b51c612b227ef4087845740c94e2f3d653a99099a80f2" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x6ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaa", + "s": "0x5930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0107a7c254a09d03864b51c612b227ef4087845740c94e2f3d653a99099a80f2", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x6102003b600060006102003c6102003b60006000f06000556001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16001556002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16002556003600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600355600051600455", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61004d600081600b8239f3600160003514603b5801576002600035146024580157600360003514600858015760295801565b60ff5c60005260206000f360185801565b61010060ff5d600c5801565b6000ff60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x6102003b600060006102003c6102003b60006000f06000556001600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16001556002600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af16002556003600052602060006020600060007304ab3066469dcba4c3686a65a8c2fdae7b1f217b5af1600355600051600455", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x01", + "0x02": "0x01", + "0x03": "0x01", + "0x04": "0x0100" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61004d600081600b8239f3600160003514603b5801576002600035146024580157600360003514600858015760295801565b60ff5c60005260206000f360185801565b61010060ff5d600c5801565b6000ff60035801565b", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x08b518", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560ffffe2f9b0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json similarity index 59% rename from tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_precompile_calls.json rename to tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json index 4e14a4779b4..5099a8041cb 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_precompile_calls.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_calls.json @@ -1,25 +1,50 @@ { - "000-fork=Cancun-call_type=CALL-call_gas=4200-valid_call=True": { + "000-fork=Cancun-call_type=CALL-call_value=1-valid_input=True-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c29dfee5895d2dc6ab8cadb84551ea2dc94c48d263e5e6ca13264277251c9e71a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc29dfee5895d2dc6ab8cadb84551ea2dc94c48d263e5e6ca13264277251c9e71", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9fa1a808fa57580eed3d2394bb5a1b3920be7812d3856efe5728e0a4f5005d6b" }, "blocks": [ { - "rlp": "0xf902ccf9023da09ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07b3cac346c13cd8143f7d31de932a0836e27a15a19ff64d008e4022e138d7a27a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902ccf9023da09fa1a808fa57580eed3d2394bb5a1b3920be7812d3856efe5728e0a4f5005d6ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077c65174ad0b496581aeb7edfb71181c29cb826719f54a1552158c53d4b90500a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa017fef3d479cbd7c6573951bd89795c2020be4769f162c2e03e198926c4d46636b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301e1680c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", + "parentHash": "0x9fa1a808fa57580eed3d2394bb5a1b3920be7812d3856efe5728e0a4f5005d6b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7b3cac346c13cd8143f7d31de932a0836e27a15a19ff64d008e4022e138d7a27", + "stateRoot": "0x77c65174ad0b496581aeb7edfb71181c29cb826719f54a1552158c53d4b90500", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", + "receiptTrie": "0x17fef3d479cbd7c6573951bd89795c2020be4769f162c2e03e198926c4d46636", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", + "gasUsed": "0x01e168", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -28,34 +53,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xd5b89cf82d3f23d9860f28064a1d6df6d8694bbb560dfd564a5083cbae7fd4e3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7b3cac346c13cd8143f7d31de932a0836e27a15a19ff64d008e4022e138d7a27", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd5b89cf82d3f23d9860f28064a1d6df6d8694bbb560dfd564a5083cbae7fd4e3", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xb0dc0bf32376f1c6f21437dc1beb707f23cd7b1c1c075c9b50f9156b45d1a7a7" }, "transactions": [ { @@ -79,43 +78,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd5b89cf82d3f23d9860f28064a1d6df6d8694bbb560dfd564a5083cbae7fd4e3", - "network": "Cancun", + "lastblockhash": "0xb0dc0bf32376f1c6f21437dc1beb707f23cd7b1c1c075c9b50f9156b45d1a7a7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206001720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -126,56 +100,81 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "balance": "0xffffffffff", + "code": "0x366000602037602060003660206001720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", "storage": { "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x01", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d515", + "balance": "0xfffff2d628", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "001-fork=Cancun-call_type=CALL-call_gas=4201-valid_call=True": { + "001-fork=Cancun-call_type=CALL-call_value=1-valid_input=True-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d3221b71e8ef92562dda700e4b961005ad6b052d4619d3dc09745a9fb8988891a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd3221b71e8ef92562dda700e4b961005ad6b052d4619d3dc09745a9fb8988891", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc9f016ba90e0194dd50ef685adfe25710833b5adc2d7766e25821fa83419fa6a" }, "blocks": [ { - "rlp": "0xf902ccf9023da0945882170062a2ecced13fd7e7398f60dead2cc806a19072bd55ec25ab6bc68aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa019c3b0c0bdf25415d66e0d37f65c535b28c960ebe5613a916f6464c22ba1d1eba07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902ccf9023da0c9f016ba90e0194dd50ef685adfe25710833b5adc2d7766e25821fa83419fa6aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01c938fa3848c4894adf6497ed19545d5efbefcdf78d121943e5809f3777ec7f5a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa017fef3d479cbd7c6573951bd89795c2020be4769f162c2e03e198926c4d46636b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301e1680c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x945882170062a2ecced13fd7e7398f60dead2cc806a19072bd55ec25ab6bc68a", + "parentHash": "0xc9f016ba90e0194dd50ef685adfe25710833b5adc2d7766e25821fa83419fa6a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x19c3b0c0bdf25415d66e0d37f65c535b28c960ebe5613a916f6464c22ba1d1eb", + "stateRoot": "0x1c938fa3848c4894adf6497ed19545d5efbefcdf78d121943e5809f3777ec7f5", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", + "receiptTrie": "0x17fef3d479cbd7c6573951bd89795c2020be4769f162c2e03e198926c4d46636", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", + "gasUsed": "0x01e168", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -184,34 +183,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xc297e7d3adb065184b59e75bbabbb3cd02c3c7d7214d77b783d48df9476d383f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x945882170062a2ecced13fd7e7398f60dead2cc806a19072bd55ec25ab6bc68a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x19c3b0c0bdf25415d66e0d37f65c535b28c960ebe5613a916f6464c22ba1d1eb", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc297e7d3adb065184b59e75bbabbb3cd02c3c7d7214d77b783d48df9476d383f", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xd0d0c8535aa874abf2d3170a013a36af50e0415f5266c31e46bde2d97c80fadd" }, "transactions": [ { @@ -235,43 +208,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x89605db10286189a4df7a329eb0143882f20e8e663165a76d9a48f4443980993", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x945882170062a2ecced13fd7e7398f60dead2cc806a19072bd55ec25ab6bc68a" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089605db10286189a4df7a329eb0143882f20e8e663165a76d9a48f4443980993a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc297e7d3adb065184b59e75bbabbb3cd02c3c7d7214d77b783d48df9476d383f", - "network": "Cancun", + "lastblockhash": "0xd0d0c8535aa874abf2d3170a013a36af50e0415f5266c31e46bde2d97c80fadd", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206001720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -282,56 +230,81 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", + "balance": "0xffffffffff", + "code": "0x366000602037602060003660206001720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1f16000556000516001553d6002553d600060003e600051600355", "storage": { "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x01", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d515", + "balance": "0xfffff2d628", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "002-fork=Cancun-call_type=CALL-call_gas=4199-valid_call=False": { + "002-fork=Cancun-call_type=CALL-call_value=0-valid_input=True-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" }, "blocks": [ { - "rlp": "0xf902ccf9023da0721714eeecebd630add955b4cfbcbdfd1a2c1b157c524153ca22e0fbb46d5c74a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dcd6b86b6e48b97f3b6fe0d85f6399ecaed06664804ecc210ee1a6eed89b61aca07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa03ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830121810c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902ccf9023da0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e9bf54a98ecae0c90666720d5e7e328ba6d126605cb14ab0bb2aac3443b0bb17a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x721714eeecebd630add955b4cfbcbdfd1a2c1b157c524153ca22e0fbb46d5c74", + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdcd6b86b6e48b97f3b6fe0d85f6399ecaed06664804ecc210ee1a6eed89b61ac", + "stateRoot": "0xe9bf54a98ecae0c90666720d5e7e328ba6d126605cb14ab0bb2aac3443b0bb17", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0x3ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x012181", + "gasUsed": "0x01c73c", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -340,34 +313,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xf1acebcedbddbbd9753aac4649b07a670718846087b5b9e9a81526c0d5f79ac0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x721714eeecebd630add955b4cfbcbdfd1a2c1b157c524153ca22e0fbb46d5c74", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdcd6b86b6e48b97f3b6fe0d85f6399ecaed06664804ecc210ee1a6eed89b61ac", - "receiptsRoot": "0x3ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x12181", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf1acebcedbddbbd9753aac4649b07a670718846087b5b9e9a81526c0d5f79ac0", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x86d060ef46bbd6106da3b588ab260b1c0c599b891e6825422f4b1e2796425197" }, "transactions": [ { @@ -391,43 +338,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf51a7858a94236bf543a4b4fbe194db9f841ab3cef780a76a1fe538df7dbd18b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x721714eeecebd630add955b4cfbcbdfd1a2c1b157c524153ca22e0fbb46d5c74" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f51a7858a94236bf543a4b4fbe194db9f841ab3cef780a76a1fe538df7dbd18ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf1acebcedbddbbd9753aac4649b07a670718846087b5b9e9a81526c0d5f79ac0", - "network": "Cancun", + "lastblockhash": "0x86d060ef46bbd6106da3b588ab260b1c0c599b891e6825422f4b1e2796425197", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -438,54 +360,81 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x01": "0x0c", - "0x03": "0x0c" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff81579", + "balance": "0xfffff38d5c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "003-fork=Cancun-call_type=DELEGATECALL-call_gas=4200-valid_call=True": { + "003-fork=Cancun-call_type=CALL-call_value=0-valid_input=True-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dcec087d98aff131c3afcda8e1656dab5b11ce371f96d88891b98b585ef55aada056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdcec087d98aff131c3afcda8e1656dab5b11ce371f96d88891b98b585ef55aad", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9770014503393ae34a8c00134611495e3a158a05ecdc5172bcec7befe0dbf308" }, "blocks": [ { - "rlp": "0xf902ccf9023da055b18fb45e3c6cf8453e32f0b2085cc79684fac919971a9d955816833aa0eda1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04fff9f1d4bb64e6415a241bc22404df850967c3d7a5027d2d31ac66a1eba4ad3a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0a19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfa0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902ccf9023da09770014503393ae34a8c00134611495e3a158a05ecdc5172bcec7befe0dbf308a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00526d11a7420691d00a1e6b6bdb1439227b8126c0da9304acaf2dc8d22894308a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x55b18fb45e3c6cf8453e32f0b2085cc79684fac919971a9d955816833aa0eda1", + "parentHash": "0x9770014503393ae34a8c00134611495e3a158a05ecdc5172bcec7befe0dbf308", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4fff9f1d4bb64e6415a241bc22404df850967c3d7a5027d2d31ac66a1eba4ad3", + "stateRoot": "0x0526d11a7420691d00a1e6b6bdb1439227b8126c0da9304acaf2dc8d22894308", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xa19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466c", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfa", + "gasUsed": "0x01c73c", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -494,34 +443,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xcb7ff237624915c08c4641a9be89a37d9f5d39249f0d1f1846a2720642c86f74" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x55b18fb45e3c6cf8453e32f0b2085cc79684fac919971a9d955816833aa0eda1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4fff9f1d4bb64e6415a241bc22404df850967c3d7a5027d2d31ac66a1eba4ad3", - "receiptsRoot": "0xa19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466c", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfa", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xcb7ff237624915c08c4641a9be89a37d9f5d39249f0d1f1846a2720642c86f74", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x2bdb6d719a39d4f0081fe0542c303939dedf883ba81b3186a81a061e5f3900ba" }, "transactions": [ { @@ -545,46 +468,21 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2df29fbc73fbe579856469105e345ce32bdac97d77850f12761ebd0f12233400", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x55b18fb45e3c6cf8453e32f0b2085cc79684fac919971a9d955816833aa0eda1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02df29fbc73fbe579856469105e345ce32bdac97d77850f12761ebd0f12233400a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcb7ff237624915c08c4641a9be89a37d9f5d39249f0d1f1846a2720642c86f74", - "network": "Cancun", + "lastblockhash": "0x2bdb6d719a39d4f0081fe0542c303939dedf883ba81b3186a81a061e5f3900ba", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611068f46000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x010000000000", "code": "0x", @@ -592,56 +490,81 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611068f46000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1f16000556000516001553d6002553d600060003e600051600355", "storage": { "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d52a", + "balance": "0xfffff38d5c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "004-fork=Cancun-call_type=DELEGATECALL-call_gas=4201-valid_call=True": { + "004-fork=Cancun-call_type=CALLCODE-call_value=0-valid_input=False-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a035d4a82f349c0c0587dddf4dfc7d3dff1f309fb8381e406424c4364c48e69539a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x35d4a82f349c0c0587dddf4dfc7d3dff1f309fb8381e406424c4364c48e69539", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd927a84b0327e9fab16e1dc680edab70a01cfadcfdc346ef773dbabbda8981d8" }, "blocks": [ { - "rlp": "0xf902ccf9023da01987b92a155844c75e08886771df41eb6177476df65568a27b2956b2bd209f19a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa083449cdb665578d8c8ee31b235423da1293b2f68478e1e1d233e64bc7543b237a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0a19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfa0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902cbf9023ca0d927a84b0327e9fab16e1dc680edab70a01cfadcfdc346ef773dbabbda8981d8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04852fd17e50f6a01250e6fbc50dedde2215b29d2a0d4dffa733e77ab8b380ec8a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa08e0a942dfe760a71fa34568dc0540f3f05a09930f7880044b025673e44a7c2afb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008288050c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x1987b92a155844c75e08886771df41eb6177476df65568a27b2956b2bd209f19", + "parentHash": "0xd927a84b0327e9fab16e1dc680edab70a01cfadcfdc346ef773dbabbda8981d8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x83449cdb665578d8c8ee31b235423da1293b2f68478e1e1d233e64bc7543b237", + "stateRoot": "0x4852fd17e50f6a01250e6fbc50dedde2215b29d2a0d4dffa733e77ab8b380ec8", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xa19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466c", + "receiptTrie": "0x8e0a942dfe760a71fa34568dc0540f3f05a09930f7880044b025673e44a7c2af", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfa", + "gasUsed": "0x8805", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -650,34 +573,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x6649aa8e6aff4d1d6b97d83a64e5f6bc2a2dd926de21d64136058bb060d6eb3d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1987b92a155844c75e08886771df41eb6177476df65568a27b2956b2bd209f19", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x83449cdb665578d8c8ee31b235423da1293b2f68478e1e1d233e64bc7543b237", - "receiptsRoot": "0xa19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466c", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfa", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6649aa8e6aff4d1d6b97d83a64e5f6bc2a2dd926de21d64136058bb060d6eb3d", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x54a84d294db3f6925679b4b3a6d4f62cc5ad722ef1d0649e287fa9b6050a53a6" }, "transactions": [ { @@ -701,43 +598,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x95058ddf89a378c71144aacde976e69c7ae3c6aa17f25dcb955fc75ae2a0fe0d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1987b92a155844c75e08886771df41eb6177476df65568a27b2956b2bd209f19" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a095058ddf89a378c71144aacde976e69c7ae3c6aa17f25dcb955fc75ae2a0fe0da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6649aa8e6aff4d1d6b97d83a64e5f6bc2a2dd926de21d64136058bb060d6eb3d", - "network": "Cancun", + "lastblockhash": "0x54a84d294db3f6925679b4b3a6d4f62cc5ad722ef1d0649e287fa9b6050a53a6", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611069f46000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f26000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -748,56 +620,76 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611069f46000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f26000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d52a", + "balance": "0xfffffc47dd", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "005-fork=Cancun-call_type=DELEGATECALL-call_gas=4199-valid_call=False": { + "005-fork=Cancun-call_type=CALLCODE-call_value=0-valid_input=False-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05cf3818a6ce0f7c6dc1838691c69a217e44d0d11fa98b00ea20eefec4c85c705a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5cf3818a6ce0f7c6dc1838691c69a217e44d0d11fa98b00ea20eefec4c85c705", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x544cde3c9647fc5fd2003b9270e20f3fc49eeb42fb1af0ec200f8f56173f148f" }, "blocks": [ { - "rlp": "0xf902ccf9023da0b75543dbae2c7452bcb1523f1990015476bbc9ce18b3f86ae82289f5226b243ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a02c4ffdbc742b50cb1e0d9eb606e38a177c09d16679ec1d6a1751123b823ff9a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa091a18b87d89dc5e7dfc415a527c66796ac8ec3262183f40ca31f632b1c30dfd2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301217e0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902cbf9023ca0544cde3c9647fc5fd2003b9270e20f3fc49eeb42fb1af0ec200f8f56173f148fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa022e694fb47443d6c926341589c58e01912a88103dcf76316a44d4a54af2bf24aa07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa08e0a942dfe760a71fa34568dc0540f3f05a09930f7880044b025673e44a7c2afb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008288050c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0xb75543dbae2c7452bcb1523f1990015476bbc9ce18b3f86ae82289f5226b243b", + "parentHash": "0x544cde3c9647fc5fd2003b9270e20f3fc49eeb42fb1af0ec200f8f56173f148f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa02c4ffdbc742b50cb1e0d9eb606e38a177c09d16679ec1d6a1751123b823ff9", + "stateRoot": "0x22e694fb47443d6c926341589c58e01912a88103dcf76316a44d4a54af2bf24a", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0x91a18b87d89dc5e7dfc415a527c66796ac8ec3262183f40ca31f632b1c30dfd2", + "receiptTrie": "0x8e0a942dfe760a71fa34568dc0540f3f05a09930f7880044b025673e44a7c2af", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01217e", + "gasUsed": "0x8805", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -806,34 +698,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xb25dc504a5fab67593da80847d12d179054d22822480fe79d774f346958883cd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb75543dbae2c7452bcb1523f1990015476bbc9ce18b3f86ae82289f5226b243b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa02c4ffdbc742b50cb1e0d9eb606e38a177c09d16679ec1d6a1751123b823ff9", - "receiptsRoot": "0x91a18b87d89dc5e7dfc415a527c66796ac8ec3262183f40ca31f632b1c30dfd2", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1217e", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb25dc504a5fab67593da80847d12d179054d22822480fe79d774f346958883cd", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x83ab625900a21aeb58d0bfbeb8610ff4d623e533f798343d9da49da1669221cc" }, "transactions": [ { @@ -857,43 +723,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4334a3b743b39d6dc3500aaa592b862bd1684eef665a89f71bc25c8473a1775b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb75543dbae2c7452bcb1523f1990015476bbc9ce18b3f86ae82289f5226b243b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04334a3b743b39d6dc3500aaa592b862bd1684eef665a89f71bc25c8473a1775ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb25dc504a5fab67593da80847d12d179054d22822480fe79d774f346958883cd", - "network": "Cancun", + "lastblockhash": "0x83ab625900a21aeb58d0bfbeb8610ff4d623e533f798343d9da49da1669221cc", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611067f46000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1f26000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -904,54 +745,76 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611067f46000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1f26000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x01": "0x0c", - "0x03": "0x0c" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff8158e", + "balance": "0xfffffc47dd", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "006-fork=Cancun-call_type=CALLCODE-call_gas=4200-valid_call=True": { + "006-fork=Cancun-call_type=CALLCODE-call_value=0-valid_input=False-call_gas=99999-valid_call=False": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09a35186160101f7f618932dc924254c8c23676d558f8d4a6139972139cb2fb03a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9a35186160101f7f618932dc924254c8c23676d558f8d4a6139972139cb2fb03", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcf93a94f5faf7febf7f5d02b54a97101477823e9d0d8ad8b51cfd17e0fe17cc2" }, "blocks": [ { - "rlp": "0xf902ccf9023da07c2803a0ebdd3bd291a7fb1da6fd07064e917e6d76bb17a97ad119288f97ba53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0152ff8c7bdc8348dd08a8994daeb6c4bd98f0ef6e95b48b211113350bd5bdd4fa07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902cbf9023ca0cf93a94f5faf7febf7f5d02b54a97101477823e9d0d8ad8b51cfd17e0fe17cc2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c65e6545e07ba556a5f35f8a0e28fb60dcff3a6849d1b0283f6766f84838de24a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa08e0a942dfe760a71fa34568dc0540f3f05a09930f7880044b025673e44a7c2afb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008288050c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x7c2803a0ebdd3bd291a7fb1da6fd07064e917e6d76bb17a97ad119288f97ba53", + "parentHash": "0xcf93a94f5faf7febf7f5d02b54a97101477823e9d0d8ad8b51cfd17e0fe17cc2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x152ff8c7bdc8348dd08a8994daeb6c4bd98f0ef6e95b48b211113350bd5bdd4f", + "stateRoot": "0xc65e6545e07ba556a5f35f8a0e28fb60dcff3a6849d1b0283f6766f84838de24", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", + "receiptTrie": "0x8e0a942dfe760a71fa34568dc0540f3f05a09930f7880044b025673e44a7c2af", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", + "gasUsed": "0x8805", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -960,34 +823,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x49e0cfb6b716ec96e5031778c97991c205667ccccdb774ffaa606dff96638ad2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7c2803a0ebdd3bd291a7fb1da6fd07064e917e6d76bb17a97ad119288f97ba53", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x152ff8c7bdc8348dd08a8994daeb6c4bd98f0ef6e95b48b211113350bd5bdd4f", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x49e0cfb6b716ec96e5031778c97991c205667ccccdb774ffaa606dff96638ad2", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x641620be0e42461dc53d1f05ae9109db673e6d2be9d1452d15d2e96d8b3c1779" }, "transactions": [ { @@ -1011,43 +848,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x408633c4d0a9514d1c873bd289127433c5d0ba49e2d6d6af4eef584f2bc9d053", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7c2803a0ebdd3bd291a7fb1da6fd07064e917e6d76bb17a97ad119288f97ba53" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0408633c4d0a9514d1c873bd289127433c5d0ba49e2d6d6af4eef584f2bc9d053a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x49e0cfb6b716ec96e5031778c97991c205667ccccdb774ffaa606dff96638ad2", - "network": "Cancun", + "lastblockhash": "0x641620be0e42461dc53d1f05ae9109db673e6d2be9d1452d15d2e96d8b3c1779", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f26000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac026201869ff26000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1058,56 +870,76 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f26000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac026201869ff26000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d515", + "balance": "0xfffffc47dd", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "007-fork=Cancun-call_type=CALLCODE-call_gas=4201-valid_call=True": { + "007-fork=Cancun-call_type=DELEGATECALL-call_value=0-valid_input=False-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b5190e95831697e2579bcdcd9d221febe6ad3ba5766235242ff02c900b44562ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb5190e95831697e2579bcdcd9d221febe6ad3ba5766235242ff02c900b44562c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4a8bb52b438d5ba6e92864be846d400690e78faa84575e14c7b4439580ccca79" }, "blocks": [ { - "rlp": "0xf902ccf9023da0caf6458b94753e7913423920e340458345108dea83f6963947d9c928dee3b30aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036ee0c305353a4d54eeb1b6e851f3810ca3e3326a950a15154f28b2e5026f582a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902cbf9023ca04a8bb52b438d5ba6e92864be846d400690e78faa84575e14c7b4439580ccca79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e9c0dc91c85e28090a90c1600af8c306db358242ff87ac1de2ed14002dfff5a8a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa053944171db1339ae2ad204499e9ad9f8223228bab80f6b4c2b87f4dfafdd6c22b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008288020c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0xcaf6458b94753e7913423920e340458345108dea83f6963947d9c928dee3b30a", + "parentHash": "0x4a8bb52b438d5ba6e92864be846d400690e78faa84575e14c7b4439580ccca79", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x36ee0c305353a4d54eeb1b6e851f3810ca3e3326a950a15154f28b2e5026f582", + "stateRoot": "0xe9c0dc91c85e28090a90c1600af8c306db358242ff87ac1de2ed14002dfff5a8", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", + "receiptTrie": "0x53944171db1339ae2ad204499e9ad9f8223228bab80f6b4c2b87f4dfafdd6c22", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", + "gasUsed": "0x8802", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1116,34 +948,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x3d246e7c751e08567b98806ece2d3c2fd5b34008335c02d0105680bb0c4a0e12" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcaf6458b94753e7913423920e340458345108dea83f6963947d9c928dee3b30a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x36ee0c305353a4d54eeb1b6e851f3810ca3e3326a950a15154f28b2e5026f582", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3d246e7c751e08567b98806ece2d3c2fd5b34008335c02d0105680bb0c4a0e12", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xadf391cb208f7b34200e3a99e5d7820777401e872ddbd725de536d573b7732e9" }, "transactions": [ { @@ -1167,43 +973,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x85709e534e07f754a2aa42beb4606dd53261cb4a3ef11c330fab6ccf0d978837", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcaf6458b94753e7913423920e340458345108dea83f6963947d9c928dee3b30a" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a085709e534e07f754a2aa42beb4606dd53261cb4a3ef11c330fab6ccf0d978837a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3d246e7c751e08567b98806ece2d3c2fd5b34008335c02d0105680bb0c4a0e12", - "network": "Cancun", + "lastblockhash": "0xadf391cb208f7b34200e3a99e5d7820777401e872ddbd725de536d573b7732e9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f26000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f46000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1214,56 +995,76 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f26000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f46000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d515", + "balance": "0xfffffc47f2", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "008-fork=Cancun-call_type=CALLCODE-call_gas=4199-valid_call=False": { + "008-fork=Cancun-call_type=DELEGATECALL-call_value=0-valid_input=False-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a098333f1ef1929b12c8e641275da4ed1afb4213aae425125a3ce0a8bb326b15bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x98333f1ef1929b12c8e641275da4ed1afb4213aae425125a3ce0a8bb326b15bf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1e78fb3567e8d69b1b6cc51c4cbe005136f3b51ded9db6f341bfa5fdbac3f89c" }, "blocks": [ { - "rlp": "0xf902ccf9023da071cf3de1c134aaca127d29ee258df2d133e0637fc8741f0ba96e75c9017c30a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa084fd96f723d4eb46b38ecb9a763b8e27c737ba9aadfb2a4fd3d05755e08ff605a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa03ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830121810c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902cbf9023ca01e78fb3567e8d69b1b6cc51c4cbe005136f3b51ded9db6f341bfa5fdbac3f89ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd7584879668da104d9043c333bda87e42d174fa5e106f6475b5c6521ba0c5e5a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa053944171db1339ae2ad204499e9ad9f8223228bab80f6b4c2b87f4dfafdd6c22b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008288020c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x71cf3de1c134aaca127d29ee258df2d133e0637fc8741f0ba96e75c9017c30a6", + "parentHash": "0x1e78fb3567e8d69b1b6cc51c4cbe005136f3b51ded9db6f341bfa5fdbac3f89c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x84fd96f723d4eb46b38ecb9a763b8e27c737ba9aadfb2a4fd3d05755e08ff605", + "stateRoot": "0xcd7584879668da104d9043c333bda87e42d174fa5e106f6475b5c6521ba0c5e5", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0x3ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7", + "receiptTrie": "0x53944171db1339ae2ad204499e9ad9f8223228bab80f6b4c2b87f4dfafdd6c22", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x012181", + "gasUsed": "0x8802", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1272,34 +1073,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x5afe234ffe1fed134a09c42197e1668e5d791b17cf282303799d40c64ad3df9e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x71cf3de1c134aaca127d29ee258df2d133e0637fc8741f0ba96e75c9017c30a6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x84fd96f723d4eb46b38ecb9a763b8e27c737ba9aadfb2a4fd3d05755e08ff605", - "receiptsRoot": "0x3ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x12181", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5afe234ffe1fed134a09c42197e1668e5d791b17cf282303799d40c64ad3df9e", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x0111a33c4aefcf45cfec22e15e871f91c3d040243a4cc9f4fdc8e62325928208" }, "transactions": [ { @@ -1323,43 +1098,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd3cf37111033f1c7181e810b80e896779abf4fea7143a2b8d5986b9d66d1e336", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x71cf3de1c134aaca127d29ee258df2d133e0637fc8741f0ba96e75c9017c30a6" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d3cf37111033f1c7181e810b80e896779abf4fea7143a2b8d5986b9d66d1e336a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5afe234ffe1fed134a09c42197e1668e5d791b17cf282303799d40c64ad3df9e", - "network": "Cancun", + "lastblockhash": "0x0111a33c4aefcf45cfec22e15e871f91c3d040243a4cc9f4fdc8e62325928208", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f26000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1f46000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1370,54 +1120,76 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f26000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1f46000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x01": "0x0c", - "0x03": "0x0c" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff81579", + "balance": "0xfffffc47f2", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "009-fork=Cancun-call_type=STATICCALL-call_gas=4200-valid_call=True": { + "009-fork=Cancun-call_type=DELEGATECALL-call_value=0-valid_input=False-call_gas=99999-valid_call=False": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03751181ed9f573906c4920032f482dc4d8370720b979d43406fec5a14d78a045a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3751181ed9f573906c4920032f482dc4d8370720b979d43406fec5a14d78a045", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfa4be6ce25ac719c76c825c4a0cb58c71fd96b93dcd660edc85ee5eb024f8718" }, "blocks": [ { - "rlp": "0xf902ccf9023da009be37250579cfddfacfc9cae56335b01536ed835873f45c9805dd0087720111a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02ba0b34c819b590f5db3bdca4d1acb2ecfde30956d71316638a7ebd2303a01c4a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0a19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfa0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902cbf9023ca0fa4be6ce25ac719c76c825c4a0cb58c71fd96b93dcd660edc85ee5eb024f8718a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa005303844d04f5b9c7e15f19abedec072542d36cc39785d63691e5e9416b0fc89a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa053944171db1339ae2ad204499e9ad9f8223228bab80f6b4c2b87f4dfafdd6c22b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008288020c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x09be37250579cfddfacfc9cae56335b01536ed835873f45c9805dd0087720111", + "parentHash": "0xfa4be6ce25ac719c76c825c4a0cb58c71fd96b93dcd660edc85ee5eb024f8718", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2ba0b34c819b590f5db3bdca4d1acb2ecfde30956d71316638a7ebd2303a01c4", + "stateRoot": "0x05303844d04f5b9c7e15f19abedec072542d36cc39785d63691e5e9416b0fc89", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xa19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466c", + "receiptTrie": "0x53944171db1339ae2ad204499e9ad9f8223228bab80f6b4c2b87f4dfafdd6c22", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfa", + "gasUsed": "0x8802", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1426,34 +1198,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xbb5cb65c65fa41d9ef95261e24a0cc9b5169ebcecba4f31f4be362cfe561d1f8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x09be37250579cfddfacfc9cae56335b01536ed835873f45c9805dd0087720111", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2ba0b34c819b590f5db3bdca4d1acb2ecfde30956d71316638a7ebd2303a01c4", - "receiptsRoot": "0xa19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466c", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfa", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xbb5cb65c65fa41d9ef95261e24a0cc9b5169ebcecba4f31f4be362cfe561d1f8", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x90d06599e701728a799bd3a53087d1b86aeb7d48b283dc9472b67475cdceb3b8" }, "transactions": [ { @@ -1477,43 +1223,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x05dcb6d89f0f59b7b07fdfebf5d2805d0b0e42ac5e31fdfc3f4d7110383ec05d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x09be37250579cfddfacfc9cae56335b01536ed835873f45c9805dd0087720111" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a005dcb6d89f0f59b7b07fdfebf5d2805d0b0e42ac5e31fdfc3f4d7110383ec05da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbb5cb65c65fa41d9ef95261e24a0cc9b5169ebcecba4f31f4be362cfe561d1f8", - "network": "Cancun", + "lastblockhash": "0x90d06599e701728a799bd3a53087d1b86aeb7d48b283dc9472b67475cdceb3b8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611068fa6000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac026201869ff46000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1524,56 +1245,76 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611068fa6000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac026201869ff46000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d52a", + "balance": "0xfffffc47f2", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "010-fork=Cancun-call_type=STATICCALL-call_gas=4201-valid_call=True": { + "010-fork=Cancun-call_type=STATICCALL-call_value=0-valid_input=True-call_gas=100000-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009dfcebd45792ec8549acf12a8921aefce141c093fc6dff2ef21982735b405a6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09dfcebd45792ec8549acf12a8921aefce141c093fc6dff2ef21982735b405a6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0e77b1cfaeb0317a601100019981940f37a56777a437e1745a6a47cfe0ab817d" }, "blocks": [ { - "rlp": "0xf902ccf9023da0916c805794135ec52742289053cfe676dbd8a467f82f8ee16d3a409d9378cfd0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0381586fe191cf5743c637dfa99111d197dd0caa02fc44c0c3ea79a0c3009dbe8a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0a19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfa0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902ccf9023da00e77b1cfaeb0317a601100019981940f37a56777a437e1745a6a47cfe0ab817da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ef8e07365b0279886a45f91e9ba3f3a3c942097a2dfded1f551a131596c676c9a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa05fbffd9166c9a0be936078329b8ef4c08848029ca8e7b054aa6b17ff6231f07ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c7390c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x916c805794135ec52742289053cfe676dbd8a467f82f8ee16d3a409d9378cfd0", + "parentHash": "0x0e77b1cfaeb0317a601100019981940f37a56777a437e1745a6a47cfe0ab817d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x381586fe191cf5743c637dfa99111d197dd0caa02fc44c0c3ea79a0c3009dbe8", + "stateRoot": "0xef8e07365b0279886a45f91e9ba3f3a3c942097a2dfded1f551a131596c676c9", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xa19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466c", + "receiptTrie": "0x5fbffd9166c9a0be936078329b8ef4c08848029ca8e7b054aa6b17ff6231f07a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfa", + "gasUsed": "0x01c739", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1582,34 +1323,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xd8d3974806674cb2fc776bc1414cf0aa9836a0302801cbd2f1d88ee470067727" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x916c805794135ec52742289053cfe676dbd8a467f82f8ee16d3a409d9378cfd0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x381586fe191cf5743c637dfa99111d197dd0caa02fc44c0c3ea79a0c3009dbe8", - "receiptsRoot": "0xa19a34ce929f181145e4c18d800b882c39078560a2457f480d74943e746a466c", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfa", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd8d3974806674cb2fc776bc1414cf0aa9836a0302801cbd2f1d88ee470067727", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x0d791faa442203d9c4116b3b4bc78dd43dc19d3225c632b27accf12d43731266" }, "transactions": [ { @@ -1633,43 +1348,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7bd58ecd4d4d08b43d90846addb92d8f9b5e8c7cc83aad8931c639600512fa0d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x916c805794135ec52742289053cfe676dbd8a467f82f8ee16d3a409d9378cfd0" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07bd58ecd4d4d08b43d90846addb92d8f9b5e8c7cc83aad8931c639600512fa0da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd8d3974806674cb2fc776bc1414cf0aa9836a0302801cbd2f1d88ee470067727", - "network": "Cancun", + "lastblockhash": "0x0d791faa442203d9c4116b3b4bc78dd43dc19d3225c632b27accf12d43731266", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611069fa6000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0fa6000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1680,56 +1370,81 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611069fa6000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0fa6000556000516001553d6002553d600060003e600051600355", "storage": { "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d52a", + "balance": "0xfffff38d71", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "011-fork=Cancun-call_type=STATICCALL-call_gas=4199-valid_call=False": { + "011-fork=Cancun-call_type=STATICCALL-call_value=0-valid_input=True-call_gas=100001-valid_call=True": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a059706640c4f11fa2566a963bc02ab5710d3b72e400ef8b8b5fad7b844effd591a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x59706640c4f11fa2566a963bc02ab5710d3b72e400ef8b8b5fad7b844effd591", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x524280cb89fb12741c72b18eff76efa5c74b6a6f64daaf86513432cfc4826e80" }, "blocks": [ { - "rlp": "0xf902ccf9023da02514a46f8a0f569e6d20731fceaebba11732e5dd9773511b302c9284093d61ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05d2deeaf5f9a32af71155616c81a2b7f41cb6bdf7531198cc9a68f65519e77eba07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa091a18b87d89dc5e7dfc415a527c66796ac8ec3262183f40ca31f632b1c30dfd2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301217e0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902ccf9023da0524280cb89fb12741c72b18eff76efa5c74b6a6f64daaf86513432cfc4826e80a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e33e3c7029b7e25c578315ccde46ced9808698f007bbf7a2e2c8fbfcbcb5a614a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa05fbffd9166c9a0be936078329b8ef4c08848029ca8e7b054aa6b17ff6231f07ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c7390c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", "blockHeader": { - "parentHash": "0x2514a46f8a0f569e6d20731fceaebba11732e5dd9773511b302c9284093d61ff", + "parentHash": "0x524280cb89fb12741c72b18eff76efa5c74b6a6f64daaf86513432cfc4826e80", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5d2deeaf5f9a32af71155616c81a2b7f41cb6bdf7531198cc9a68f65519e77eb", + "stateRoot": "0xe33e3c7029b7e25c578315ccde46ced9808698f007bbf7a2e2c8fbfcbcb5a614", "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0x91a18b87d89dc5e7dfc415a527c66796ac8ec3262183f40ca31f632b1c30dfd2", + "receiptTrie": "0x5fbffd9166c9a0be936078329b8ef4c08848029ca8e7b054aa6b17ff6231f07a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01217e", + "gasUsed": "0x01c739", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1738,34 +1453,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x077903792096396e7c4a4f3d4debe586938d9d5ee1870768b577c6e66ca74cfd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2514a46f8a0f569e6d20731fceaebba11732e5dd9773511b302c9284093d61ff", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5d2deeaf5f9a32af71155616c81a2b7f41cb6bdf7531198cc9a68f65519e77eb", - "receiptsRoot": "0x91a18b87d89dc5e7dfc415a527c66796ac8ec3262183f40ca31f632b1c30dfd2", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1217e", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x077903792096396e7c4a4f3d4debe586938d9d5ee1870768b577c6e66ca74cfd", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x14426998d820009456a6d0a6903763c771a1fc73503e8ae66d2df7c2f8ae0816" }, "transactions": [ { @@ -1789,43 +1478,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf600a73090f065d7a3f5a81fee27932a846cf688959c67182820677341ccfe12", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2514a46f8a0f569e6d20731fceaebba11732e5dd9773511b302c9284093d61ff" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f600a73090f065d7a3f5a81fee27932a846cf688959c67182820677341ccfe12a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x077903792096396e7c4a4f3d4debe586938d9d5ee1870768b577c6e66ca74cfd", - "network": "Cancun", + "lastblockhash": "0x14426998d820009456a6d0a6903763c771a1fc73503e8ae66d2df7c2f8ae0816", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611067fa6000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1fa6000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1836,27 +1500,29 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x36600060003760206000366000600b611067fa6000556000516001553d6002553d600060003e600051600355", + "code": "0x36600060203760206000366020720f3df6d732807ef1319fb7b8bb8522d0beac02620186a1fa6000556000516001553d6002553d600060003e600051600355", "storage": { - "0x01": "0x0c", - "0x03": "0x0c" + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff8158e", + "balance": "0xfffff38d71", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json new file mode 100644 index 00000000000..9debe5ffa1a --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_contract_timestamps.json @@ -0,0 +1,3410 @@ +{ + "000-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=12-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902ccf9023da0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e9bf54a98ecae0c90666720d5e7e328ba6d126605cb14ab0bb2aac3443b0bb17a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe9bf54a98ecae0c90666720d5e7e328ba6d126605cb14ab0bb2aac3443b0bb17", + "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c73c", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x86d060ef46bbd6106da3b588ab260b1c0c599b891e6825422f4b1e2796425197" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [], + "v": "0x00", + "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", + "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x86d060ef46bbd6106da3b588ab260b1c0c599b891e6825422f4b1e2796425197", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d5c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=4294967296-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902d1f90242a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03f9e2e8f1747e90dd7e134f50206a5f3ac7445ba69488a9dd4c005b0b1251d49a0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c85010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3f9e2e8f1747e90dd7e134f50206a5f3ac7445ba69488a9dd4c005b0b1251d49", + "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c73c", + "timestamp": "0x0100000000", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xeaeccbeb1574abf889bef98dde9865bc85342c7e269a6ed26693e43e6c1d3700" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "accessList": [], + "v": "0x01", + "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", + "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xeaeccbeb1574abf889bef98dde9865bc85342c7e269a6ed26693e43e6c1d3700", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x40": "0x0100000000", + "0x203f": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d5c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=18446744073709551614-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902d4f90245a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0bf42605fd2ab866b575b4337c75409453a4bd6bc82f051b1e604ddefd1568ba045940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878a0d07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c79088fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffec080a08ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80a0779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5cc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0bf42605fd2ab866b575b4337c75409453a4bd6bc82f051b1e604ddefd1568b", + "transactionsTrie": "0x45940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878", + "receiptTrie": "0xd07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c790", + "timestamp": "0xfffffffffffffffe", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x40540df097ef704618b5f3753b1f6d170af9de5d6bbf576b3261ee35a61876d1" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "accessList": [], + "v": "0x00", + "r": "0x8ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80", + "s": "0x779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x40540df097ef704618b5f3753b1f6d170af9de5d6bbf576b3261ee35a61876d1", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0ffe": "0xfffffffffffffffe", + "0x2ffd": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38b10", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-empty_system_address-auto_access_list=False-timestamp=18446744073709551615-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902d4f90245a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa041fe6a0ed384a5e3ed008713608f4ec0bd7b3b2eb263ce4c6e2a241aa2bcec90a05907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6ba0d07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c79088ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000ffffffffffffffffc080a0fd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259ea04ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7cc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x41fe6a0ed384a5e3ed008713608f4ec0bd7b3b2eb263ce4c6e2a241aa2bcec90", + "transactionsTrie": "0x5907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6b", + "receiptTrie": "0xd07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c790", + "timestamp": "0xffffffffffffffff", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x7c13394b7683f005c8c919d88d033e2136905600db8c59e2c4423b3e132c700f" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "accessList": [], + "v": "0x00", + "r": "0xfd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259e", + "s": "0x4ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7c13394b7683f005c8c919d88d033e2136905600db8c59e2c4423b3e132c700f", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0fff": "0xffffffffffffffff", + "0x2ffe": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38b10", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=12-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf90328f9023da0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa063c2fbe71c47b951bd27d17cb00419f1befd59b125bf715bf286598867ec9ee2a08ff5b9994550e0ec65121ab112dd25f915c1c6a102d9af7c580235e7532fd75aa07d6bca2af6c944828bc1996215eebea3b1a45d6e7a6e794dc4ba9c586809e435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c6100c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cf85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000200b01a00ad53e199d921142bb3a85d00d35661134938b41dd7c3298d57b84be215ac082a024c76c47afeb3653dff6cf8acea317a320c373caecf50065a07c46c8b1f574c2c0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x63c2fbe71c47b951bd27d17cb00419f1befd59b125bf715bf286598867ec9ee2", + "transactionsTrie": "0x8ff5b9994550e0ec65121ab112dd25f915c1c6a102d9af7c580235e7532fd75a", + "receiptTrie": "0x7d6bca2af6c944828bc1996215eebea3b1a45d6e7a6e794dc4ba9c586809e435", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c610", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xeef3d8f92fee21fc1f6dd01eee3d4c1474b17d9b4bb0df0ff5f245b4606432ee" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000200b" + ] + } + ], + "v": "0x01", + "r": "0x0ad53e199d921142bb3a85d00d35661134938b41dd7c3298d57b84be215ac082", + "s": "0x24c76c47afeb3653dff6cf8acea317a320c373caecf50065a07c46c8b1f574c2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xeef3d8f92fee21fc1f6dd01eee3d4c1474b17d9b4bb0df0ff5f245b4606432ee", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff39590", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=4294967296-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf9032df90242a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0acd0c055466b0c18b440b48d55290120879a64e8ae81361b3fe92abd046d061ba020fcca52d2aa99039b9da86d73d8a21a97374ce5103016cd43543c8715d63ec6a07da77320f905c52139f24cc63f418a4997dc5486b18d94233135f03d9243a900b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d5b085010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000f85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a00000000000000000000000000000000000000000000000000000000100000000a00000000000000000000000000000000000000000000000000000000100001fff01a0f1b1c848a1ea413de49fe140eb9f03d49073fc16eea8866020a797d3934d6fc1a039811c1dc52c5f5f2c200a5a4e9aa39ec13e952e85b3ef669d99b3c305aec2adc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xacd0c055466b0c18b440b48d55290120879a64e8ae81361b3fe92abd046d061b", + "transactionsTrie": "0x20fcca52d2aa99039b9da86d73d8a21a97374ce5103016cd43543c8715d63ec6", + "receiptTrie": "0x7da77320f905c52139f24cc63f418a4997dc5486b18d94233135f03d9243a900", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d5b0", + "timestamp": "0x0100000000", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xe913501aeb327a5b1bcff35767158117d6bb2932a22d7428ae782a08a04aabc2" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000100000000", + "0x0000000000000000000000000000000000000000000000000000000100001fff" + ] + } + ], + "v": "0x01", + "r": "0xf1b1c848a1ea413de49fe140eb9f03d49073fc16eea8866020a797d3934d6fc1", + "s": "0x39811c1dc52c5f5f2c200a5a4e9aa39ec13e952e85b3ef669d99b3c305aec2ad", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe913501aeb327a5b1bcff35767158117d6bb2932a22d7428ae782a08a04aabc2", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x40": "0x0100000000", + "0x203f": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff32830", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=18446744073709551614-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf90330f90245a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d0339927eff768f60cbd4376afde077cb26865696fabc5fd8da1593c0e0f11d4a0d9ef428adf4cd457b415c1a7cf9c5ea0f77d8aa275ea88aecc5c8b016e2a95c2a03c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d60488fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffef85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000fffffffffffffffea00000000000000000000000000000000000000000000000010000000000001ffd01a065f493ce09ee1e43c5c949c2b67f5880b828aa24df4fec501fad343a11e90b52a04a4a35a95756750939aead2864dfef53f60e632de41578987a9c5b43cf8d86dfc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd0339927eff768f60cbd4376afde077cb26865696fabc5fd8da1593c0e0f11d4", + "transactionsTrie": "0xd9ef428adf4cd457b415c1a7cf9c5ea0f77d8aa275ea88aecc5c8b016e2a95c2", + "receiptTrie": "0x3c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d604", + "timestamp": "0xfffffffffffffffe", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x99c5f701ec4df326f75371ff3b560aacf3d1d3cc7b1f23f1464500c8a6a687e0" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "0x0000000000000000000000000000000000000000000000010000000000001ffd" + ] + } + ], + "v": "0x01", + "r": "0x65f493ce09ee1e43c5c949c2b67f5880b828aa24df4fec501fad343a11e90b52", + "s": "0x4a4a35a95756750939aead2864dfef53f60e632de41578987a9c5b43cf8d86df", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x99c5f701ec4df326f75371ff3b560aacf3d1d3cc7b1f23f1464500c8a6a687e0", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0ffe": "0xfffffffffffffffe", + "0x2ffd": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff325e4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Cancun-empty_system_address-auto_access_list=True-timestamp=18446744073709551615-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf90330f90245a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0619a667a20a3cda426fad022a806f7e97478c8d2ca7510263546ba491d9d5b81a0e1c3f38e5c6f37e1d22a32a7a931aea07471c5cc3228c84b47911a6f3cba383ca03c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d60488ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffff85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000ffffffffffffffffa00000000000000000000000000000000000000000000000010000000000001ffe80a0f6598fc8d580c757868d8cd1c6453ce57b9e7766f8c989aebcdb07c43da27ec6a01796e7d4031449f7c47a4e9d3f24761b728d9216b4c28c2f17b5eb31bb52d046c0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x619a667a20a3cda426fad022a806f7e97478c8d2ca7510263546ba491d9d5b81", + "transactionsTrie": "0xe1c3f38e5c6f37e1d22a32a7a931aea07471c5cc3228c84b47911a6f3cba383c", + "receiptTrie": "0x3c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d604", + "timestamp": "0xffffffffffffffff", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x6d44e71ca46272a1175f15a86b57894bdc9219bfc7dcebb640a2ed25204dbccc" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "0x0000000000000000000000000000000000000000000000010000000000001ffe" + ] + } + ], + "v": "0x00", + "r": "0xf6598fc8d580c757868d8cd1c6453ce57b9e7766f8c989aebcdb07c43da27ec6", + "s": "0x1796e7d4031449f7c47a4e9d3f24761b728d9216b4c28c2f17b5eb31bb52d046", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6d44e71ca46272a1175f15a86b57894bdc9219bfc7dcebb640a2ed25204dbccc", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0fff": "0xffffffffffffffff", + "0x2ffe": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff325e4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=12-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x77a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf" + }, + "blocks": [ + { + "rlp": "0xf902ccf9023da0cff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa047ade231dad924dc6785ad647c502bbec5af41e863823b1cf4308332c21c7389a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "blockHeader": { + "parentHash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x47ade231dad924dc6785ad647c502bbec5af41e863823b1cf4308332c21c7389", + "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c73c", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xa0f50dad0f30b4511fc4a6132294a55b5d77e6b176106a9306cd99bd83ae2e9b" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [], + "v": "0x00", + "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", + "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa0f50dad0f30b4511fc4a6132294a55b5d77e6b176106a9306cd99bd83ae2e9b", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d5c", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "009-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=4294967296-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x77a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf" + }, + "blocks": [ + { + "rlp": "0xf902d1f90242a0cff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0251d10378b706e12bbadcc1a9a1f3fc4592b436bf2d7fb6faf9cfea8cc0d2780a0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c85010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0c0", + "blockHeader": { + "parentHash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x251d10378b706e12bbadcc1a9a1f3fc4592b436bf2d7fb6faf9cfea8cc0d2780", + "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c73c", + "timestamp": "0x0100000000", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x1926d19906271584999ad53e2d65ca756ec6d89a9d66d5b953d9ad1e6b948d7a" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "accessList": [], + "v": "0x01", + "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", + "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1926d19906271584999ad53e2d65ca756ec6d89a9d66d5b953d9ad1e6b948d7a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x40": "0x0100000000", + "0x203f": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d5c", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "010-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=18446744073709551614-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x77a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf" + }, + "blocks": [ + { + "rlp": "0xf902d4f90245a0cff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4cd8c1c3d0ac2a1c1526fd57c8616376ef312c8ff12527d965cd2cfdfffae4ba045940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878a0d07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c79088fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffec080a08ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80a0779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5cc0c0", + "blockHeader": { + "parentHash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf4cd8c1c3d0ac2a1c1526fd57c8616376ef312c8ff12527d965cd2cfdfffae4b", + "transactionsTrie": "0x45940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878", + "receiptTrie": "0xd07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c790", + "timestamp": "0xfffffffffffffffe", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x276edf735f37479a940c19822802d5ec82a23e4816d21ccb08c78db108b4508f" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "accessList": [], + "v": "0x00", + "r": "0x8ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80", + "s": "0x779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x276edf735f37479a940c19822802d5ec82a23e4816d21ccb08c78db108b4508f", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0ffe": "0xfffffffffffffffe", + "0x2ffd": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38b10", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "011-fork=Cancun-one_wei_system_address-auto_access_list=False-timestamp=18446744073709551615-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x77a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf" + }, + "blocks": [ + { + "rlp": "0xf902d4f90245a0cff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ce73d89dd5b25ec906d629d2fbfce4497f5f1a613d0e8b4a88b3fae68f2b8568a05907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6ba0d07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c79088ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000ffffffffffffffffc080a0fd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259ea04ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7cc0c0", + "blockHeader": { + "parentHash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xce73d89dd5b25ec906d629d2fbfce4497f5f1a613d0e8b4a88b3fae68f2b8568", + "transactionsTrie": "0x5907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6b", + "receiptTrie": "0xd07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c790", + "timestamp": "0xffffffffffffffff", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xad4174acf3a1c38284ee1fa6109afce80dc2d881f3e1b11e4e5ed5fe7aa8cac5" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "accessList": [], + "v": "0x00", + "r": "0xfd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259e", + "s": "0x4ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xad4174acf3a1c38284ee1fa6109afce80dc2d881f3e1b11e4e5ed5fe7aa8cac5", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0fff": "0xffffffffffffffff", + "0x2ffe": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38b10", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "012-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=12-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x77a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf" + }, + "blocks": [ + { + "rlp": "0xf90328f9023da0cff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e8e2be2e06a9adc9ffa31496733aecbb0103d3bd95f49d596a91618199456a4ba08ff5b9994550e0ec65121ab112dd25f915c1c6a102d9af7c580235e7532fd75aa07d6bca2af6c944828bc1996215eebea3b1a45d6e7a6e794dc4ba9c586809e435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c6100c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cf85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000200b01a00ad53e199d921142bb3a85d00d35661134938b41dd7c3298d57b84be215ac082a024c76c47afeb3653dff6cf8acea317a320c373caecf50065a07c46c8b1f574c2c0c0", + "blockHeader": { + "parentHash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe8e2be2e06a9adc9ffa31496733aecbb0103d3bd95f49d596a91618199456a4b", + "transactionsTrie": "0x8ff5b9994550e0ec65121ab112dd25f915c1c6a102d9af7c580235e7532fd75a", + "receiptTrie": "0x7d6bca2af6c944828bc1996215eebea3b1a45d6e7a6e794dc4ba9c586809e435", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c610", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xee97b0fa3a597c37ae3d4443b52cbf295a3172361b2400ab5672e00e30684844" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000200b" + ] + } + ], + "v": "0x01", + "r": "0x0ad53e199d921142bb3a85d00d35661134938b41dd7c3298d57b84be215ac082", + "s": "0x24c76c47afeb3653dff6cf8acea317a320c373caecf50065a07c46c8b1f574c2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xee97b0fa3a597c37ae3d4443b52cbf295a3172361b2400ab5672e00e30684844", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff39590", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "013-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=4294967296-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x77a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf" + }, + "blocks": [ + { + "rlp": "0xf9032df90242a0cff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee70a8d6e42d0b60740c476479cbab454b3a3a21cae85a05e4f274985829a3ca020fcca52d2aa99039b9da86d73d8a21a97374ce5103016cd43543c8715d63ec6a07da77320f905c52139f24cc63f418a4997dc5486b18d94233135f03d9243a900b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d5b085010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000f85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a00000000000000000000000000000000000000000000000000000000100000000a00000000000000000000000000000000000000000000000000000000100001fff01a0f1b1c848a1ea413de49fe140eb9f03d49073fc16eea8866020a797d3934d6fc1a039811c1dc52c5f5f2c200a5a4e9aa39ec13e952e85b3ef669d99b3c305aec2adc0c0", + "blockHeader": { + "parentHash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9ee70a8d6e42d0b60740c476479cbab454b3a3a21cae85a05e4f274985829a3c", + "transactionsTrie": "0x20fcca52d2aa99039b9da86d73d8a21a97374ce5103016cd43543c8715d63ec6", + "receiptTrie": "0x7da77320f905c52139f24cc63f418a4997dc5486b18d94233135f03d9243a900", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d5b0", + "timestamp": "0x0100000000", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x73ddf46ac2f303587e14337d7be9b34f2d2b49079edd346aef4c2324b7ccdb9a" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000100000000", + "0x0000000000000000000000000000000000000000000000000000000100001fff" + ] + } + ], + "v": "0x01", + "r": "0xf1b1c848a1ea413de49fe140eb9f03d49073fc16eea8866020a797d3934d6fc1", + "s": "0x39811c1dc52c5f5f2c200a5a4e9aa39ec13e952e85b3ef669d99b3c305aec2ad", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x73ddf46ac2f303587e14337d7be9b34f2d2b49079edd346aef4c2324b7ccdb9a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x40": "0x0100000000", + "0x203f": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff32830", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "014-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=18446744073709551614-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x77a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf" + }, + "blocks": [ + { + "rlp": "0xf90330f90245a0cff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09e4a01b59b328218d79756e39033853d20a570a3a355eaf1284fa49511655c2aa0d9ef428adf4cd457b415c1a7cf9c5ea0f77d8aa275ea88aecc5c8b016e2a95c2a03c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d60488fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffef85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000fffffffffffffffea00000000000000000000000000000000000000000000000010000000000001ffd01a065f493ce09ee1e43c5c949c2b67f5880b828aa24df4fec501fad343a11e90b52a04a4a35a95756750939aead2864dfef53f60e632de41578987a9c5b43cf8d86dfc0c0", + "blockHeader": { + "parentHash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9e4a01b59b328218d79756e39033853d20a570a3a355eaf1284fa49511655c2a", + "transactionsTrie": "0xd9ef428adf4cd457b415c1a7cf9c5ea0f77d8aa275ea88aecc5c8b016e2a95c2", + "receiptTrie": "0x3c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d604", + "timestamp": "0xfffffffffffffffe", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xd85e9c0d3287cec819dcf5d57b6866e5bb8f5fbd0c3c4524a4ac231d4ccd14aa" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "0x0000000000000000000000000000000000000000000000010000000000001ffd" + ] + } + ], + "v": "0x01", + "r": "0x65f493ce09ee1e43c5c949c2b67f5880b828aa24df4fec501fad343a11e90b52", + "s": "0x4a4a35a95756750939aead2864dfef53f60e632de41578987a9c5b43cf8d86df", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xd85e9c0d3287cec819dcf5d57b6866e5bb8f5fbd0c3c4524a4ac231d4ccd14aa", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0ffe": "0xfffffffffffffffe", + "0x2ffd": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff325e4", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "015-fork=Cancun-one_wei_system_address-auto_access_list=True-timestamp=18446744073709551615-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x77a3edf4ed74044cccf66480a29b6e2cc7e1ae08609f864e05ba289e14f6b24c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf" + }, + "blocks": [ + { + "rlp": "0xf90330f90245a0cff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa099181db3770198851cdf0c293099f04ea7eb43e5a35c6b74a00568285fc3abf2a0e1c3f38e5c6f37e1d22a32a7a931aea07471c5cc3228c84b47911a6f3cba383ca03c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d60488ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffff85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000ffffffffffffffffa00000000000000000000000000000000000000000000000010000000000001ffe80a0f6598fc8d580c757868d8cd1c6453ce57b9e7766f8c989aebcdb07c43da27ec6a01796e7d4031449f7c47a4e9d3f24761b728d9216b4c28c2f17b5eb31bb52d046c0c0", + "blockHeader": { + "parentHash": "0xcff458c689f3322bf25567deedd1aa4d271f4848649e57bb498c82f86d8819bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x99181db3770198851cdf0c293099f04ea7eb43e5a35c6b74a00568285fc3abf2", + "transactionsTrie": "0xe1c3f38e5c6f37e1d22a32a7a931aea07471c5cc3228c84b47911a6f3cba383c", + "receiptTrie": "0x3c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d604", + "timestamp": "0xffffffffffffffff", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x4017483dfdb827a6a26a0df82d43a125e75e79b78ae59a1c7a54ca79aac04dc3" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "0x0000000000000000000000000000000000000000000000010000000000001ffe" + ] + } + ], + "v": "0x00", + "r": "0xf6598fc8d580c757868d8cd1c6453ce57b9e7766f8c989aebcdb07c43da27ec6", + "s": "0x1796e7d4031449f7c47a4e9d3f24761b728d9216b4c28c2f17b5eb31bb52d046", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x4017483dfdb827a6a26a0df82d43a125e75e79b78ae59a1c7a54ca79aac04dc3", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0fff": "0xffffffffffffffff", + "0x2ffe": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff325e4", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "016-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=12-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5eda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5ed", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5" + }, + "blocks": [ + { + "rlp": "0xf902ccf9023da0f84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02054fea0ac890829891d66b3a556baf059cfaeca3a4f7bec2e9d706593d3dc4fa07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "blockHeader": { + "parentHash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2054fea0ac890829891d66b3a556baf059cfaeca3a4f7bec2e9d706593d3dc4f", + "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c73c", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x12e528b4fbae57ef77d926798b639796f62781634136c2b42bd11983bf0c83dd" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [], + "v": "0x00", + "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", + "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x12e528b4fbae57ef77d926798b639796f62781634136c2b42bd11983bf0c83dd", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d5c", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "017-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=4294967296-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5eda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5ed", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5" + }, + "blocks": [ + { + "rlp": "0xf902d1f90242a0f84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d310dadc0b2645ca0099fc6e064caa83af9276f3947e58cda205c22dfa813663a0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c85010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0c0", + "blockHeader": { + "parentHash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd310dadc0b2645ca0099fc6e064caa83af9276f3947e58cda205c22dfa813663", + "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c73c", + "timestamp": "0x0100000000", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x530e828849a089c41990c7361bd420f1210b3d8b650b363c4ee57260834ab87f" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "accessList": [], + "v": "0x01", + "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", + "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x530e828849a089c41990c7361bd420f1210b3d8b650b363c4ee57260834ab87f", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x40": "0x0100000000", + "0x203f": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d5c", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "018-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=18446744073709551614-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5eda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5ed", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5" + }, + "blocks": [ + { + "rlp": "0xf902d4f90245a0f84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d6212bc6d44034e7f8b3461b49c924c4f5748dbe985914777077854bc69c5ef4a045940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878a0d07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c79088fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffec080a08ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80a0779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5cc0c0", + "blockHeader": { + "parentHash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd6212bc6d44034e7f8b3461b49c924c4f5748dbe985914777077854bc69c5ef4", + "transactionsTrie": "0x45940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878", + "receiptTrie": "0xd07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c790", + "timestamp": "0xfffffffffffffffe", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x97aa56cbc9b2bc7c7f2e41978487b18bc7ff4c41de34d0a49241574dc04d3017" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "accessList": [], + "v": "0x00", + "r": "0x8ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80", + "s": "0x779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x97aa56cbc9b2bc7c7f2e41978487b18bc7ff4c41de34d0a49241574dc04d3017", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0ffe": "0xfffffffffffffffe", + "0x2ffd": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38b10", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "019-fork=Cancun-one_eth_system_address-auto_access_list=False-timestamp=18446744073709551615-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5eda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5ed", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5" + }, + "blocks": [ + { + "rlp": "0xf902d4f90245a0f84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa009bc890c1b2474b0122c9cea38be99c10c6555089f08e31eada7a9aa3b7a6c03a05907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6ba0d07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c79088ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000ffffffffffffffffc080a0fd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259ea04ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7cc0c0", + "blockHeader": { + "parentHash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x09bc890c1b2474b0122c9cea38be99c10c6555089f08e31eada7a9aa3b7a6c03", + "transactionsTrie": "0x5907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6b", + "receiptTrie": "0xd07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c790", + "timestamp": "0xffffffffffffffff", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x6747ff60d30d9224a2da307d3451b52740258c66ba134beff0865d93b395c36b" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "accessList": [], + "v": "0x00", + "r": "0xfd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259e", + "s": "0x4ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6747ff60d30d9224a2da307d3451b52740258c66ba134beff0865d93b395c36b", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0fff": "0xffffffffffffffff", + "0x2ffe": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38b10", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "020-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=12-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5eda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5ed", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5" + }, + "blocks": [ + { + "rlp": "0xf90328f9023da0f84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e1e74abe285ba5915ab7640af828352a456644c2492c4c197f58fef4733696cda08ff5b9994550e0ec65121ab112dd25f915c1c6a102d9af7c580235e7532fd75aa07d6bca2af6c944828bc1996215eebea3b1a45d6e7a6e794dc4ba9c586809e435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c6100c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cf85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000200b01a00ad53e199d921142bb3a85d00d35661134938b41dd7c3298d57b84be215ac082a024c76c47afeb3653dff6cf8acea317a320c373caecf50065a07c46c8b1f574c2c0c0", + "blockHeader": { + "parentHash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe1e74abe285ba5915ab7640af828352a456644c2492c4c197f58fef4733696cd", + "transactionsTrie": "0x8ff5b9994550e0ec65121ab112dd25f915c1c6a102d9af7c580235e7532fd75a", + "receiptTrie": "0x7d6bca2af6c944828bc1996215eebea3b1a45d6e7a6e794dc4ba9c586809e435", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c610", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x797e1c294c731ccd39485e9a23496adcd928939ff8a69b4c8aaef6395c0aefe9" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000200b" + ] + } + ], + "v": "0x01", + "r": "0x0ad53e199d921142bb3a85d00d35661134938b41dd7c3298d57b84be215ac082", + "s": "0x24c76c47afeb3653dff6cf8acea317a320c373caecf50065a07c46c8b1f574c2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x797e1c294c731ccd39485e9a23496adcd928939ff8a69b4c8aaef6395c0aefe9", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff39590", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "021-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=4294967296-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5eda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5ed", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5" + }, + "blocks": [ + { + "rlp": "0xf9032df90242a0f84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03dc8e08bbcd544d6faa45b3047c540950f18ed5cc9fb3895c34d4095ba552d8aa020fcca52d2aa99039b9da86d73d8a21a97374ce5103016cd43543c8715d63ec6a07da77320f905c52139f24cc63f418a4997dc5486b18d94233135f03d9243a900b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d5b085010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000f85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a00000000000000000000000000000000000000000000000000000000100000000a00000000000000000000000000000000000000000000000000000000100001fff01a0f1b1c848a1ea413de49fe140eb9f03d49073fc16eea8866020a797d3934d6fc1a039811c1dc52c5f5f2c200a5a4e9aa39ec13e952e85b3ef669d99b3c305aec2adc0c0", + "blockHeader": { + "parentHash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3dc8e08bbcd544d6faa45b3047c540950f18ed5cc9fb3895c34d4095ba552d8a", + "transactionsTrie": "0x20fcca52d2aa99039b9da86d73d8a21a97374ce5103016cd43543c8715d63ec6", + "receiptTrie": "0x7da77320f905c52139f24cc63f418a4997dc5486b18d94233135f03d9243a900", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d5b0", + "timestamp": "0x0100000000", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x3b499c81f487c91e94b1e61099c6f078ac2fff56c2ca523f29e7b1863749a35b" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000100000000", + "0x0000000000000000000000000000000000000000000000000000000100001fff" + ] + } + ], + "v": "0x01", + "r": "0xf1b1c848a1ea413de49fe140eb9f03d49073fc16eea8866020a797d3934d6fc1", + "s": "0x39811c1dc52c5f5f2c200a5a4e9aa39ec13e952e85b3ef669d99b3c305aec2ad", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3b499c81f487c91e94b1e61099c6f078ac2fff56c2ca523f29e7b1863749a35b", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x40": "0x0100000000", + "0x203f": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff32830", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "022-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=18446744073709551614-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5eda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5ed", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5" + }, + "blocks": [ + { + "rlp": "0xf90330f90245a0f84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2e3548c27998319a99536ab14619b729127d2414c8a74377971e50c65b413f0a0d9ef428adf4cd457b415c1a7cf9c5ea0f77d8aa275ea88aecc5c8b016e2a95c2a03c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d60488fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffef85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000fffffffffffffffea00000000000000000000000000000000000000000000000010000000000001ffd01a065f493ce09ee1e43c5c949c2b67f5880b828aa24df4fec501fad343a11e90b52a04a4a35a95756750939aead2864dfef53f60e632de41578987a9c5b43cf8d86dfc0c0", + "blockHeader": { + "parentHash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2e3548c27998319a99536ab14619b729127d2414c8a74377971e50c65b413f0", + "transactionsTrie": "0xd9ef428adf4cd457b415c1a7cf9c5ea0f77d8aa275ea88aecc5c8b016e2a95c2", + "receiptTrie": "0x3c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d604", + "timestamp": "0xfffffffffffffffe", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x2633444fe1ef1c4760c73b59c3b21ab363ae14be1d8969450a72ab9b7c344ccd" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "0x0000000000000000000000000000000000000000000000010000000000001ffd" + ] + } + ], + "v": "0x01", + "r": "0x65f493ce09ee1e43c5c949c2b67f5880b828aa24df4fec501fad343a11e90b52", + "s": "0x4a4a35a95756750939aead2864dfef53f60e632de41578987a9c5b43cf8d86df", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2633444fe1ef1c4760c73b59c3b21ab363ae14be1d8969450a72ab9b7c344ccd", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0ffe": "0xfffffffffffffffe", + "0x2ffd": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff325e4", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "023-fork=Cancun-one_eth_system_address-auto_access_list=True-timestamp=18446744073709551615-valid_input=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5eda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72c45da818e2e00872fe6a5e3df3d83c1f9273a7cdfe1d6e141f86cb94d2f5ed", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5" + }, + "blocks": [ + { + "rlp": "0xf90330f90245a0f84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04e76d386625d1d7e94e777423f94d07a61570672c8395a73bb0c45124e66d13ca0e1c3f38e5c6f37e1d22a32a7a931aea07471c5cc3228c84b47911a6f3cba383ca03c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d60488ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffff85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000ffffffffffffffffa00000000000000000000000000000000000000000000000010000000000001ffe80a0f6598fc8d580c757868d8cd1c6453ce57b9e7766f8c989aebcdb07c43da27ec6a01796e7d4031449f7c47a4e9d3f24761b728d9216b4c28c2f17b5eb31bb52d046c0c0", + "blockHeader": { + "parentHash": "0xf84a04ed0e2ea658f4cbe1b39a3d135a125722543632902a2c2d1ccc8a0ab0a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4e76d386625d1d7e94e777423f94d07a61570672c8395a73bb0c45124e66d13c", + "transactionsTrie": "0xe1c3f38e5c6f37e1d22a32a7a931aea07471c5cc3228c84b47911a6f3cba383c", + "receiptTrie": "0x3c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d604", + "timestamp": "0xffffffffffffffff", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x59a34d747984b5811cce38013d9c01723275e4218e813d416d9a398e327696ff" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "0x0000000000000000000000000000000000000000000000010000000000001ffe" + ] + } + ], + "v": "0x00", + "r": "0xf6598fc8d580c757868d8cd1c6453ce57b9e7766f8c989aebcdb07c43da27ec6", + "s": "0x1796e7d4031449f7c47a4e9d3f24761b728d9216b4c28c2f17b5eb31bb52d046", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x59a34d747984b5811cce38013d9c01723275e4218e813d416d9a398e327696ff", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0fff": "0xffffffffffffffff", + "0x2ffe": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff325e4", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x0de0b6b3a7640000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json new file mode 100644 index 00000000000..635f3b36aef --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_equal_to_timestamp.json @@ -0,0 +1,1074 @@ +{ + "000-fork=Cancun-auto_access_list=False-beacon_root=12-timestamp=12": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902ccf9023da0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa067c724991bea3b6fc6ff29e6448c0a1aa33bf6641e0f24806ea3ee299705f7fca07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a0000000000000000000000000000000000000000000000000000000000000000cf888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x67c724991bea3b6fc6ff29e6448c0a1aa33bf6641e0f24806ea3ee299705f7fc", + "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c73c", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000000000000000000c", + "hash": "0x82116747e1e999bf71869d781036f112738528e87819a719d87b236f8fac92db" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [], + "v": "0x00", + "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", + "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x82116747e1e999bf71869d781036f112738528e87819a719d87b236f8fac92db", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x0c", + "0x02": "0x20", + "0x03": "0x0c" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d5c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-auto_access_list=False-beacon_root=4294967296-timestamp=4294967296": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902d1f90242a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa099ee4afab8b20929113020f787297440bb14e7ac528d56824c9627dd496ca6c4a0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a056c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c73c85010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000100000000f888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x99ee4afab8b20929113020f787297440bb14e7ac528d56824c9627dd496ca6c4", + "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", + "receiptTrie": "0x56c22a6b2c9ca708dca598477f7c7391409272310505c9844e52aac13bf08af0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c73c", + "timestamp": "0x0100000000", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000100000000", + "hash": "0x37e3a0203f2196fe4efb49e57747dedc6d4804a9bfbc41797b7bc79d6471a6ee" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "accessList": [], + "v": "0x01", + "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", + "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x37e3a0203f2196fe4efb49e57747dedc6d4804a9bfbc41797b7bc79d6471a6ee", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x0100000000", + "0x02": "0x20", + "0x03": "0x0100000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x40": "0x0100000000", + "0x203f": "0x0100000000" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d5c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-auto_access_list=False-beacon_root=18446744073709551614-timestamp=18446744073709551614": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902d4f90245a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08f70bf2e534f45d7351082b7e7671732c9a9b78c87284ca409f21a7d55ad142fa045940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878a0d07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c79088fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a0000000000000000000000000000000000000000000000000fffffffffffffffef888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffec080a08ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80a0779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5cc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8f70bf2e534f45d7351082b7e7671732c9a9b78c87284ca409f21a7d55ad142f", + "transactionsTrie": "0x45940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878", + "receiptTrie": "0xd07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c790", + "timestamp": "0xfffffffffffffffe", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "hash": "0xbba6eb370cfa95de01f215d8bec307f475c78b3694dec6ac7aff935880bdee18" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "accessList": [], + "v": "0x00", + "r": "0x8ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80", + "s": "0x779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xbba6eb370cfa95de01f215d8bec307f475c78b3694dec6ac7aff935880bdee18", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0xfffffffffffffffe", + "0x02": "0x20", + "0x03": "0xfffffffffffffffe" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0ffe": "0xfffffffffffffffe", + "0x2ffd": "0xfffffffffffffffe" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38b10", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-auto_access_list=False-beacon_root=18446744073709551615-timestamp=18446744073709551615": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902d4f90245a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0785adc9204668102a26b70a5170d74c6fe2bc505008629de9dad113323f3a2e6a05907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6ba0d07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c79088ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a0000000000000000000000000000000000000000000000000fffffffffffffffff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000ffffffffffffffffc080a0fd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259ea04ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7cc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x785adc9204668102a26b70a5170d74c6fe2bc505008629de9dad113323f3a2e6", + "transactionsTrie": "0x5907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6b", + "receiptTrie": "0xd07470c1abfad9d95f8766951f169046967afce22ae7ec9890b49418c62c9c85", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c790", + "timestamp": "0xffffffffffffffff", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "hash": "0x6b4d7322f01322b8c8b6332097b1223845cc5eb22de3df37e766f1ec810bf226" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "accessList": [], + "v": "0x00", + "r": "0xfd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259e", + "s": "0x4ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6b4d7322f01322b8c8b6332097b1223845cc5eb22de3df37e766f1ec810bf226", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0xffffffffffffffff", + "0x02": "0x20", + "0x03": "0xffffffffffffffff" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0fff": "0xffffffffffffffff", + "0x2ffe": "0xffffffffffffffff" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38b10", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-auto_access_list=True-beacon_root=12-timestamp=12": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf90328f9023da0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0190fc722747cd1e43cd085d22126935623ae5c1f30393fa9d94d889966a33bd3a08ff5b9994550e0ec65121ab112dd25f915c1c6a102d9af7c580235e7532fd75aa07d6bca2af6c944828bc1996215eebea3b1a45d6e7a6e794dc4ba9c586809e435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301c6100c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a0000000000000000000000000000000000000000000000000000000000000000cf8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cf85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000200b01a00ad53e199d921142bb3a85d00d35661134938b41dd7c3298d57b84be215ac082a024c76c47afeb3653dff6cf8acea317a320c373caecf50065a07c46c8b1f574c2c0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x190fc722747cd1e43cd085d22126935623ae5c1f30393fa9d94d889966a33bd3", + "transactionsTrie": "0x8ff5b9994550e0ec65121ab112dd25f915c1c6a102d9af7c580235e7532fd75a", + "receiptTrie": "0x7d6bca2af6c944828bc1996215eebea3b1a45d6e7a6e794dc4ba9c586809e435", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c610", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000000000000000000c", + "hash": "0x1590f3b57e5e046561076252e843c6616269ac1a90e33321a9478a7792e50bd0" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000200b" + ] + } + ], + "v": "0x01", + "r": "0x0ad53e199d921142bb3a85d00d35661134938b41dd7c3298d57b84be215ac082", + "s": "0x24c76c47afeb3653dff6cf8acea317a320c373caecf50065a07c46c8b1f574c2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1590f3b57e5e046561076252e843c6616269ac1a90e33321a9478a7792e50bd0", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x0c", + "0x02": "0x20", + "0x03": "0x0c" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff39590", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-auto_access_list=True-beacon_root=4294967296-timestamp=4294967296": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf9032df90242a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bebc43c914ad33c383f23f13a1b1101aaf1ad4d904ad15e02184f9135295219fa020fcca52d2aa99039b9da86d73d8a21a97374ce5103016cd43543c8715d63ec6a07da77320f905c52139f24cc63f418a4997dc5486b18d94233135f03d9243a900b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d5b085010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000100000000f8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000f85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a00000000000000000000000000000000000000000000000000000000100000000a00000000000000000000000000000000000000000000000000000000100001fff01a0f1b1c848a1ea413de49fe140eb9f03d49073fc16eea8866020a797d3934d6fc1a039811c1dc52c5f5f2c200a5a4e9aa39ec13e952e85b3ef669d99b3c305aec2adc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbebc43c914ad33c383f23f13a1b1101aaf1ad4d904ad15e02184f9135295219f", + "transactionsTrie": "0x20fcca52d2aa99039b9da86d73d8a21a97374ce5103016cd43543c8715d63ec6", + "receiptTrie": "0x7da77320f905c52139f24cc63f418a4997dc5486b18d94233135f03d9243a900", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d5b0", + "timestamp": "0x0100000000", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000100000000", + "hash": "0x5c7d95e53e0368cb64474210aee624385bbda6cab80e2ffdff61964d01b91f2d" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000100000000", + "0x0000000000000000000000000000000000000000000000000000000100001fff" + ] + } + ], + "v": "0x01", + "r": "0xf1b1c848a1ea413de49fe140eb9f03d49073fc16eea8866020a797d3934d6fc1", + "s": "0x39811c1dc52c5f5f2c200a5a4e9aa39ec13e952e85b3ef669d99b3c305aec2ad", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5c7d95e53e0368cb64474210aee624385bbda6cab80e2ffdff61964d01b91f2d", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x0100000000", + "0x02": "0x20", + "0x03": "0x0100000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x40": "0x0100000000", + "0x203f": "0x0100000000" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff32830", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Cancun-auto_access_list=True-beacon_root=18446744073709551614-timestamp=18446744073709551614": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf90330f90245a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa066ef995b0f6486b0b461dab8fbeaf6e4222905e17c9a805d02060d809b41c8a4a0d9ef428adf4cd457b415c1a7cf9c5ea0f77d8aa275ea88aecc5c8b016e2a95c2a03c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d60488fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a0000000000000000000000000000000000000000000000000fffffffffffffffef8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffef85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000fffffffffffffffea00000000000000000000000000000000000000000000000010000000000001ffd01a065f493ce09ee1e43c5c949c2b67f5880b828aa24df4fec501fad343a11e90b52a04a4a35a95756750939aead2864dfef53f60e632de41578987a9c5b43cf8d86dfc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x66ef995b0f6486b0b461dab8fbeaf6e4222905e17c9a805d02060d809b41c8a4", + "transactionsTrie": "0xd9ef428adf4cd457b415c1a7cf9c5ea0f77d8aa275ea88aecc5c8b016e2a95c2", + "receiptTrie": "0x3c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d604", + "timestamp": "0xfffffffffffffffe", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "hash": "0xdba9ac3d291673783a2b13f1e3c48403fe2f4db72a44cc8df0e5a73de536b2e7" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "0x0000000000000000000000000000000000000000000000010000000000001ffd" + ] + } + ], + "v": "0x01", + "r": "0x65f493ce09ee1e43c5c949c2b67f5880b828aa24df4fec501fad343a11e90b52", + "s": "0x4a4a35a95756750939aead2864dfef53f60e632de41578987a9c5b43cf8d86df", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xdba9ac3d291673783a2b13f1e3c48403fe2f4db72a44cc8df0e5a73de536b2e7", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0xfffffffffffffffe", + "0x02": "0x20", + "0x03": "0xfffffffffffffffe" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0ffe": "0xfffffffffffffffe", + "0x2ffd": "0xfffffffffffffffe" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff325e4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Cancun-auto_access_list=True-beacon_root=18446744073709551615-timestamp=18446744073709551615": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf90330f90245a0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0776875b83b52adb65a7d1c0915af35ee0790a6e42e5b4a1ead3e58888160e170a0e1c3f38e5c6f37e1d22a32a7a931aea07471c5cc3228c84b47911a6f3cba383ca03c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301d60488ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a0000000000000000000000000000000000000000000000000fffffffffffffffff8e4b8e202f8df01808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffff85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000ffffffffffffffffa00000000000000000000000000000000000000000000000010000000000001ffe80a0f6598fc8d580c757868d8cd1c6453ce57b9e7766f8c989aebcdb07c43da27ec6a01796e7d4031449f7c47a4e9d3f24761b728d9216b4c28c2f17b5eb31bb52d046c0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x776875b83b52adb65a7d1c0915af35ee0790a6e42e5b4a1ead3e58888160e170", + "transactionsTrie": "0xe1c3f38e5c6f37e1d22a32a7a931aea07471c5cc3228c84b47911a6f3cba383c", + "receiptTrie": "0x3c456ebd3cfcc93808bcb5a0c196238308ff29203f363941d61639a8ea035f43", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d604", + "timestamp": "0xffffffffffffffff", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "hash": "0x8ba66f027ebafaa894e5b4a23a2d95a38b1bd43e8b596bacdcbebbbe4f02dd79" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "0x0000000000000000000000000000000000000000000000010000000000001ffe" + ] + } + ], + "v": "0x00", + "r": "0xf6598fc8d580c757868d8cd1c6453ce57b9e7766f8c989aebcdb07c43da27ec6", + "s": "0x1796e7d4031449f7c47a4e9d3f24761b728d9216b4c28c2f17b5eb31bb52d046", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8ba66f027ebafaa894e5b4a23a2d95a38b1bd43e8b596bacdcbebbbe4f02dd79", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0xffffffffffffffff", + "0x02": "0x20", + "0x03": "0xffffffffffffffff" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0fff": "0xffffffffffffffff", + "0x2ffe": "0xffffffffffffffff" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff325e4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json new file mode 100644 index 00000000000..ca66ec74c4f --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/beacon_root_selfdestruct.json @@ -0,0 +1,178 @@ +{ + "000-fork=Cancun-timestamp=12": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a005626d8958e1423bca877777b6266250518977544e39fe8e0a1e5d66c626a093a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x05626d8958e1423bca877777b6266250518977544e39fe8e0a1e5d66c626a093", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa844a8a3a4a6bd9e96b3fbd15edcb7736476545a2aa836ca2bc979d0dc5def49" + }, + "blocks": [ + { + "rlp": "0xf9032ef9023da0a844a8a3a4a6bd9e96b3fbd15edcb7736476545a2aa836ca2bc979d0dc5def49a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06c7e1e96ce6ddab15474321dea7777e184bd552a8f18b9ebc7b601509961a358a040e926c859e0ca8af25e4557f959e67764c5c145036e976b04a819455ef89a1fa033253059422a10239de7e5b34d2e1ab8e0088adec948c590dedd5c3d6634abe3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830297f20c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8eab88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebf860010a830186a09400000000000000000000000000000000000000cc808026a069e7a1c14bbf61b2c341e394ab0dfebb1fe65056d261079e54d98a901cc737aea016ff40fd5cd9e26647e0ddb7698f873f3df3cb57b6bcf8ca78773b764b74d690c0c0", + "blockHeader": { + "parentHash": "0xa844a8a3a4a6bd9e96b3fbd15edcb7736476545a2aa836ca2bc979d0dc5def49", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6c7e1e96ce6ddab15474321dea7777e184bd552a8f18b9ebc7b601509961a358", + "transactionsTrie": "0x40e926c859e0ca8af25e4557f959e67764c5c145036e976b04a819455ef89a1f", + "receiptTrie": "0x33253059422a10239de7e5b34d2e1ab8e0088adec948c590dedd5c3d6634abe3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0297f2", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xbdc97e5a88be2c879832be387bb91a84ae288ccdf24e5e00e2b3e9a6359eedad" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [], + "v": "0x00", + "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", + "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x00000000000000000000000000000000000000cc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69e7a1c14bbf61b2c341e394ab0dfebb1fe65056d261079e54d98a901cc737ae", + "s": "0x16ff40fd5cd9e26647e0ddb7698f873f3df3cb57b6bcf8ca78773b764b74d690", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xbdc97e5a88be2c879832be387bb91a84ae288ccdf24e5e00e2b3e9a6359eedad", + "pre": { + "0x00000000000000000000000000000000000000cc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000730000000000000000000000000000000000001337620186a0f1720f3df6d732807ef1319fb7b8bb8522d0beac0231600055", + "storage": {} + }, + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000001337": { + "nonce": "0x00", + "balance": "0x0ba1", + "code": "0x720f3df6d732807ef1319fb7b8bb8522d0beac02ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x00000000000000000000000000000000000000cc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000730000000000000000000000000000000000001337620186a0f1720f3df6d732807ef1319fb7b8bb8522d0beac0231600055", + "storage": { + "0x00": "0x0ba1" + } + }, + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x0000000000000000000000000000000000001337": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x720f3df6d732807ef1319fb7b8bb8522d0beac02ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x0ba1", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x027222", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0xffffeb6640", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_equal_to_timestamp.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json similarity index 51% rename from tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_equal_to_timestamp.json rename to tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json index e90026829c3..2266f06b8ff 100644 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_equal_to_timestamp.json +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/calldata_lengths.json @@ -1,25 +1,50 @@ { - "000-fork=Cancun-beacon_root=12-timestamp=12": { + "000-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-empty_calldata": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" }, "blocks": [ { - "rlp": "0xf902ccf9023da09ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0626eb6f365c02b8fbac60ff7bfd77bb9386b3c47f59e0e7ec5b988499f56d938a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a0000000000000000000000000000000000000000000000000000000000000000cf888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", + "rlp": "0xf902abf9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa046f12ce81c3a4a083ce5330473ecca2f37faf6cc3891316eae1e9f476eb191c4a0255246eb15cc03d2c7a6c9753c6029711f43d5f8d860da7cce2a6a6f2a42bcb4a09f998e957859d042126adfe2ea66d3816cf46b1a92af7463fb555e8f0f5f50c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000827f050c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff868b86602f86301808007830f42409400000000000000000000000000000000000001008080c080a01a94485b340386550a1eef3e191b544c82f27fa5ba502ebf516f5ac72441be47a01d14cf4a8d5be4584cb5a8f2ca7f3cad5ca89f52409b51715828090ea1164288c0c0", "blockHeader": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x626eb6f365c02b8fbac60ff7bfd77bb9386b3c47f59e0e7ec5b988499f56d938", - "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", + "stateRoot": "0x46f12ce81c3a4a083ce5330473ecca2f37faf6cc3891316eae1e9f476eb191c4", + "transactionsTrie": "0x255246eb15cc03d2c7a6c9753c6029711f43d5f8d860da7cce2a6a6f2a42bcb4", + "receiptTrie": "0x9f998e957859d042126adfe2ea66d3816cf46b1a92af7463fb555e8f0f5f50c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", + "gasUsed": "0x7f05", "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -28,34 +53,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000000000000000000c", - "hash": "0xfe3c8009ca6995f448dd29b1d4e003b40adc4d92657df35a56d7d09a266f73d7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x626eb6f365c02b8fbac60ff7bfd77bb9386b3c47f59e0e7ec5b988499f56d938", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0xc", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfe3c8009ca6995f448dd29b1d4e003b40adc4d92657df35a56d7d09a266f73d7", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000000000000000000c" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xeb3d7ccb2c7108e286a0611e356e174d379ccb91072a36aef7de124e3af28700" }, "transactions": [ { @@ -67,11 +66,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "data": "0x", "accessList": [], "v": "0x00", - "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", - "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", + "r": "0x1a94485b340386550a1eef3e191b544c82f27fa5ba502ebf516f5ac72441be47", + "s": "0x1d14cf4a8d5be4584cb5a8f2ca7f3cad5ca89f52409b51715828090ea1164288", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -79,11 +78,65 @@ "withdrawals": [] } ], + "lastblockhash": "0xeb3d7ccb2c7108e286a0611e356e174d379ccb91072a36aef7de124e3af28700", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffc86dd", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-one_byte": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97d", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -100,22 +153,68 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12" + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfe3c8009ca6995f448dd29b1d4e003b40adc4d92657df35a56d7d09a266f73d7", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902abf9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ad1feef16ba696047322c97122aec6afcef480788be7d9790b936f1d618a5315a04559c3b0553afac6d6636d4511c6f9d21a84d06189367f8371a3b935764bf464a0462778f5bf5fba7d10a5e3784ea804a21a7b31a3048647b8a73c8f184c05d32db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000827f1b0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff868b86602f86301808007830f4240940000000000000000000000000000000000000100800cc080a0516a8ca98ece1985958eb7d96cdb2b507ce9fb1340031cf5c0d54b35ae8ad93ba059a5aa84e3996ef4cbbcf0ef613c198d9667dbfcdb9b36d28504e1ce8e264ca4c0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xad1feef16ba696047322c97122aec6afcef480788be7d9790b936f1d618a5315", + "transactionsTrie": "0x4559c3b0553afac6d6636d4511c6f9d21a84d06189367f8371a3b935764bf464", + "receiptTrie": "0x462778f5bf5fba7d10a5e3784ea804a21a7b31a3048647b8a73c8f184c05d32d", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x7f1b", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x49a6561b202af82d83d0904ee53a3ffc79529b95e34e2b46c428c8a18fee19fb" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0c", + "accessList": [], + "v": "0x00", + "r": "0x516a8ca98ece1985958eb7d96cdb2b507ce9fb1340031cf5c0d54b35ae8ad93b", + "s": "0x59a5aa84e3996ef4cbbcf0ef613c198d9667dbfcdb9b36d28504e1ce8e264ca4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x49a6561b202af82d83d0904ee53a3ffc79529b95e34e2b46c428c8a18fee19fb", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -126,57 +225,77 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x01800c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x0c", - "0x02": "0x20", - "0x03": "0x0c" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d515", + "balance": "0xfffffc8643", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "001-fork=Cancun-beacon_root=4294967296-timestamp=4294967296": { + "002-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-31_bytes": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" }, "blocks": [ { - "rlp": "0xf902d1f90242a09ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa032ec8987b088a56779e9a0ebfd77529297690a60a4858dedd8be2bffac393fa5a0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd85010000000000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000100000000f888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0c0", + "rlp": "0xf902caf9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ca9c08335357a8321ff9492744e205ebb5555d7ab8b1aebdd0fc48cf220411c2a0086759cd8fc209491270d83456e6458c8eff462ef524f8a6c89475465adbe259a0a919fcc8eccef802eac6d215fec477112bde0982333bb6c877e6d0e0bf1f1ec8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000827f930c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff887b88502f88201808007830f4240940000000000000000000000000000000000000100809f0000000000000000000000000000000000000000000000000000000000000cc001a075a9f59d04a7f3bcc0520371f9d4a9a2745c5b524c34031514519653cb8ddf5ea071471def8d848dcde316cd7a2da2021cd3948706cfa7802ab265f530db890445c0c0", "blockHeader": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x32ec8987b088a56779e9a0ebfd77529297690a60a4858dedd8be2bffac393fa5", - "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", + "stateRoot": "0xca9c08335357a8321ff9492744e205ebb5555d7ab8b1aebdd0fc48cf220411c2", + "transactionsTrie": "0x086759cd8fc209491270d83456e6458c8eff462ef524f8a6c89475465adbe259", + "receiptTrie": "0xa919fcc8eccef802eac6d215fec477112bde0982333bb6c877e6d0e0bf1f1ec8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", - "timestamp": "0x0100000000", + "gasUsed": "0x7f93", + "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", @@ -184,34 +303,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000100000000", - "hash": "0xef89afbeea365b8efc3f7132f56f3d960ee9257af3a643dd49199b0e2d1b35ce" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x32ec8987b088a56779e9a0ebfd77529297690a60a4858dedd8be2bffac393fa5", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0x100000000", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xef89afbeea365b8efc3f7132f56f3d960ee9257af3a643dd49199b0e2d1b35ce", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000100000000" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x5a728cc6cd4d87c3134cd91a13462766cac5172bef6ac5a44f8d2afcc86a0bb9" }, "transactions": [ { @@ -223,11 +316,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "data": "0x0000000000000000000000000000000000000000000000000000000000000c", "accessList": [], "v": "0x01", - "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", - "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", + "r": "0x75a9f59d04a7f3bcc0520371f9d4a9a2745c5b524c34031514519653cb8ddf5e", + "s": "0x71471def8d848dcde316cd7a2da2021cd3948706cfa7802ab265f530db890445", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -235,43 +328,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xef89afbeea365b8efc3f7132f56f3d960ee9257af3a643dd49199b0e2d1b35ce", - "network": "Cancun", + "lastblockhash": "0x5a728cc6cd4d87c3134cd91a13462766cac5172bef6ac5a44f8d2afcc86a0bb9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -282,57 +350,77 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x010000": "0x0100000000", - "0x028000": "0x0100000000" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0x0100000000", - "0x02": "0x20", - "0x03": "0x0100000000" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d515", + "balance": "0xfffffc82fb", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "002-fork=Cancun-beacon_root=18446744073709551614-timestamp=18446744073709551614": { + "003-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-33_bytes": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" }, "blocks": [ { - "rlp": "0xf902d4f90245a09ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09b58df921372544d21e794cb2da17cc548878d82f10cc5ffa46b36b9c757d526a045940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878a08045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bd5188fffffffffffffffe00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a0000000000000000000000000000000000000000000000000fffffffffffffffef888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffec080a08ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80a0779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5cc0c0", + "rlp": "0xf902ccf9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0753a08efae673af4d9398ac7cee1b12ba4dc28e5b63d71847a758f2dbf12bc6fa027090e58b328a85e0c448d068e413c82c0ee82ccacb0e60fa380ac581688dac2a056d0e4aee619230d9ddf2dc8c12a85ce9c435b12b4e7171a6b9c29d23eee1187b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000827fa10c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff889b88702f88401808007830f424094000000000000000000000000000000000000010080a100000000000000000000000000000000000000000000000000000000000000000cc080a029860959d4cd95b2542be9db2f7e6c75556734a2e8a0fe56bf9f826e1bdb8785a040af7450645a436f69ea25a232a02eab42d706c213e579fd345e96a7dfc9d6e1c0c0", "blockHeader": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9b58df921372544d21e794cb2da17cc548878d82f10cc5ffa46b36b9c757d526", - "transactionsTrie": "0x45940ea2be08d38af48890991f7625883eaa15b65319ac4c8839984d75367878", - "receiptTrie": "0x8045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49ad", + "stateRoot": "0x753a08efae673af4d9398ac7cee1b12ba4dc28e5b63d71847a758f2dbf12bc6f", + "transactionsTrie": "0x27090e58b328a85e0c448d068e413c82c0ee82ccacb0e60fa380ac581688dac2", + "receiptTrie": "0x56d0e4aee619230d9ddf2dc8c12a85ce9c435b12b4e7171a6b9c29d23eee1187", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd51", - "timestamp": "0xfffffffffffffffe", + "gasUsed": "0x7fa1", + "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", @@ -340,34 +428,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", - "hash": "0x60e41a1e28b0ef42886a6deb6e40cabcab1016f5e7ca03ee4fff2113b222380f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9b58df921372544d21e794cb2da17cc548878d82f10cc5ffa46b36b9c757d526", - "receiptsRoot": "0x8045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49ad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd51", - "timestamp": "0xfffffffffffffffe", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x60e41a1e28b0ef42886a6deb6e40cabcab1016f5e7ca03ee4fff2113b222380f", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000fffffffffffffffec080a08ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80a0779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000fffffffffffffffe" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xa8c36ee14e7c025aa2e6f469771290d3fa2314dbbdae3c2e6f900854085cde3e" }, "transactions": [ { @@ -379,11 +441,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000fffffffffffffffe", + "data": "0x00000000000000000000000000000000000000000000000000000000000000000c", "accessList": [], "v": "0x00", - "r": "0x8ada516b63964a6f07446230ca581dfa6ad8b47d8c9793b6b0ba51df01ce8b80", - "s": "0x779eda8846e63b5ab4916f09a951092337d6dff2ad541fecbcfaaedbd9053f5c", + "r": "0x29860959d4cd95b2542be9db2f7e6c75556734a2e8a0fe56bf9f826e1bdb8785", + "s": "0x40af7450645a436f69ea25a232a02eab42d706c213e579fd345e96a7dfc9d6e1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -391,43 +453,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x60e41a1e28b0ef42886a6deb6e40cabcab1016f5e7ca03ee4fff2113b222380f", - "network": "Cancun", + "lastblockhash": "0xa8c36ee14e7c025aa2e6f469771290d3fa2314dbbdae3c2e6f900854085cde3e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -438,57 +475,77 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0xfffe": "0xfffffffffffffffe", - "0x027ffe": "0xfffffffffffffffe" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0xfffffffffffffffe", - "0x02": "0x20", - "0x03": "0xfffffffffffffffe" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d2c9", + "balance": "0xfffffc8299", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "003-fork=Cancun-beacon_root=18446744073709551615-timestamp=18446744073709551615": { + "004-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-1024_bytes": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" }, "blocks": [ { - "rlp": "0xf902d4f90245a09ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a95a35fdab02bf7f4bfaf72b97abc7d302647c1b1fca299995aef5fc17e9b4a9a05907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6ba08045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bd5188ffffffffffffffff00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a0000000000000000000000000000000000000000000000000fffffffffffffffff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000ffffffffffffffffc080a0fd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259ea04ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7cc0c0", + "rlp": "0xf906b0f9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07ef70c556661aae4e62c17d0246fc731efbef39a14426ea5d1c92737a44138f4a0f293cb1ad96d2c9cc348dcf830ebdb42feaa562539ab468a9902a4ea3ed4e5ada0109ae7f755049b29c1f7ecb211e3589f6a2b69b6b05d59cdf869027f4bde11a3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000828fd30c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff9046cb9046902f9046501808007830f424094000000000000000000000000000000000000010080b904000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cc001a049af38b25b5c7a29511b3cb5920d1e4b04a87be41edb200ea90a881d37a186b9a068d505d79b143523981b25ed45c2ad59cc42b028e229328136bab08ce33f1c03c0c0", "blockHeader": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa95a35fdab02bf7f4bfaf72b97abc7d302647c1b1fca299995aef5fc17e9b4a9", - "transactionsTrie": "0x5907f3e4766e470b54377808628d4b1a0a0c5bd2defe780be17f67a2fb066e6b", - "receiptTrie": "0x8045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49ad", + "stateRoot": "0x7ef70c556661aae4e62c17d0246fc731efbef39a14426ea5d1c92737a44138f4", + "transactionsTrie": "0xf293cb1ad96d2c9cc348dcf830ebdb42feaa562539ab468a9902a4ea3ed4e5ad", + "receiptTrie": "0x109ae7f755049b29c1f7ecb211e3589f6a2b69b6b05d59cdf869027f4bde11a3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd51", - "timestamp": "0xffffffffffffffff", + "gasUsed": "0x8fd3", + "timestamp": "0x0c", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", @@ -496,34 +553,8 @@ "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "hash": "0xa00ca493cb6fef8e7cd1e15155b958e3e038c8cdb6535680b256486c13d3f647" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa95a35fdab02bf7f4bfaf72b97abc7d302647c1b1fca299995aef5fc17e9b4a9", - "receiptsRoot": "0x8045b0c2cf5b8b4b42ea3cb2bd5709d76ca145329a06a93b283e7df5930f49ad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd51", - "timestamp": "0xffffffffffffffff", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa00ca493cb6fef8e7cd1e15155b958e3e038c8cdb6535680b256486c13d3f647", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000ffffffffffffffffc080a0fd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259ea04ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x000000000000000000000000000000000000000000000000ffffffffffffffff" + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x27637f6645ed9085ac141705fe17c6fb3db10d4f2b5315fb6d01167a636e374c" }, "transactions": [ { @@ -535,11 +566,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c", "accessList": [], - "v": "0x00", - "r": "0xfd3e629c54b1e09f0e5465bc330b65ad3b5f71829273427c62b94d25af1c259e", - "s": "0x4ef3fe26f50c507a69db97c193966b83256b437a8a58f5d9dc32b8fd88522d7c", + "v": "0x01", + "r": "0x49af38b25b5c7a29511b3cb5920d1e4b04a87be41edb200ea90a881d37a186b9", + "s": "0x68d505d79b143523981b25ed45c2ad59cc42b028e229328136bab08ce33f1c03", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -547,43 +578,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ea8e7d8a82d4277f88a52c8443678d35c84afd43ea75589a96eea209da3bf12" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c91098ca68427b9fed0a888996e0e31d0337b95f6dbec91035fa6fb626bf97da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa00ca493cb6fef8e7cd1e15155b958e3e038c8cdb6535680b256486c13d3f647", - "network": "Cancun", + "lastblockhash": "0x27637f6645ed9085ac141705fe17c6fb3db10d4f2b5315fb6d01167a636e374c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -594,29 +600,24 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0xffff": "0xffffffffffffffff", - "0x027fff": "0xffffffffffffffff" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { - "0x00": "0x01", - "0x01": "0xffffffffffffffff", - "0x02": "0x20", - "0x03": "0xffffffffffffffff" + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffff3d2c9", + "balance": "0xfffffc113b", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json new file mode 100644 index 00000000000..e523b330cf1 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/invalid_beacon_root_calldata_value.json @@ -0,0 +1,127 @@ +{ + "000-fork=Cancun-timestamp=12-valid_call=False-valid_input=False-zero_calldata": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902cbf9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dacecc5f2a16e09d5914f46fe5a598783db06be7aa5135e63be9143733692915a0168523c78d840ed7099e971ecc5bacf841034918efc2c239d0041ba98bfa69f8a068c77af57edcce761e567f9a9ec926cb645559840bbe32b730b6d14094de96e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000827fa50c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a07099395137940647f3b1e735685630afd57e24d502d96f21a35018b4bbf9b05ca028ce142a82b0e272b7174924e2a3379ac40314d718ab021e2ce26fa3ecdd54bec0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdacecc5f2a16e09d5914f46fe5a598783db06be7aa5135e63be9143733692915", + "transactionsTrie": "0x168523c78d840ed7099e971ecc5bacf841034918efc2c239d0041ba98bfa69f8", + "receiptTrie": "0x68c77af57edcce761e567f9a9ec926cb645559840bbe32b730b6d14094de96e5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x7fa5", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xe1d1d4fa088ea2fdfb613b7f741e38138bc2189aeab1816c2e118359b6e578f8" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0x7099395137940647f3b1e735685630afd57e24d502d96f21a35018b4bbf9b05c", + "s": "0x28ce142a82b0e272b7174924e2a3379ac40314d718ab021e2ce26fa3ecdd54be", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe1d1d4fa088ea2fdfb613b7f741e38138bc2189aeab1816c2e118359b6e578f8", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffc827d", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json new file mode 100644 index 00000000000..91bc09e2a9f --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_contract/tx_to_beacon_root_contract.json @@ -0,0 +1,1028 @@ +{ + "000-fork=Cancun-tx_type=3-call_beacon_root_contract=True-auto_access_list=False": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902f1f9023fa0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00dd50ffdfd6a862848a47c020eea76255400951d6085eb47d057c8c41a47a7baa0097a67bca33f39630ad687a402ef09ca1c94c703d728a9d8ff47fcc68ab98e97a07a7305a04644fe624c816925f0977053412ca2801a97e9edb1b861627bbe5032b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008263740c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8abb8a903f8a601808007830f424094000f3df6d732807ef1319fb7b8bb8522d0beac0280a0000000000000000000000000000000000000000000000000000000000000000cc001e1a0010000000000000000000000000000000000000000000000000000000000000001a053116c986dc393633b36cacf6e2c5cf896531ffed002ba696a1bab16db1ef4f4a045d8f72ef3b93897c58143b6b4368c56947344b2770695dccc26aa6d2f35b248c0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0dd50ffdfd6a862848a47c020eea76255400951d6085eb47d057c8c41a47a7ba", + "transactionsTrie": "0x097a67bca33f39630ad687a402ef09ca1c94c703d728a9d8ff47fcc68ab98e97", + "receiptTrie": "0x7a7305a04644fe624c816925f0977053412ca2801a97e9edb1b861627bbe5032", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6374", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x3e4baa069c3a235a164d49d67caffd4a77c6e538487464b5473aab9876faeb70" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x53116c986dc393633b36cacf6e2c5cf896531ffed002ba696a1bab16db1ef4f4", + "s": "0x45d8f72ef3b93897c58143b6b4368c56947344b2770695dccc26aa6d2f35b248", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3e4baa069c3a235a164d49d67caffd4a77c6e538487464b5473aab9876faeb70", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffb47d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-tx_type=3-call_beacon_root_contract=True-auto_access_list=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf90350f9023fa0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08ad99a87908595e60fd6694c84e44b5506de05a6a58bebbb9f3e2e3737724368a05c9a6cbc5c7ecf02a44f147607109ba0369f11073067ad2e3adb7923734cddf4a066a8b8e8edc427c5ad56f9ccd3487fcabd1b0f31ca5efa8ff02f6aef9c177a38b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000826c0c0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff90109b9010603f9010201808007830f424094000f3df6d732807ef1319fb7b8bb8522d0beac0280a0000000000000000000000000000000000000000000000000000000000000000cf85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000200b01e1a0010000000000000000000000000000000000000000000000000000000000000080a0c4db6124f2c409fd8a83a19728d5e8b3c6b43a79cc53cc4dfa8dfec6f009813ca05c0c2ecc845fc366d550ac21d894399da0ba8c7e3d42bf168dd00d9d10b6bc80c0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8ad99a87908595e60fd6694c84e44b5506de05a6a58bebbb9f3e2e3737724368", + "transactionsTrie": "0x5c9a6cbc5c7ecf02a44f147607109ba0369f11073067ad2e3adb7923734cddf4", + "receiptTrie": "0x66a8b8e8edc427c5ad56f9ccd3487fcabd1b0f31ca5efa8ff02f6aef9c177a38", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6c0c", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xc06f59bf416ad2bf0a403ee49bfb8d7262b82261f195cea58befc7a50e69e274" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000200b" + ] + } + ], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc4db6124f2c409fd8a83a19728d5e8b3c6b43a79cc53cc4dfa8dfec6f009813c", + "s": "0x5c0c2ecc845fc366d550ac21d894399da0ba8c7e3d42bf168dd00d9d10b6bc80", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc06f59bf416ad2bf0a403ee49bfb8d7262b82261f195cea58befc7a50e69e274", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffb0bac", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-tx_type=2-call_beacon_root_contract=True-auto_access_list=False": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902cbf9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02e6c1411da9a21241d5e418421a86bfb096def7a34eb08216c21807b730b27baa0d2676ed86dfa5570516d8e16d2223971d039443924ef7166809894276c8fe19ca0a8255aa046563bea817f7eb5dcfe1de6e67fd7e301e14c637b807c384b7748c0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008263740c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000f3df6d732807ef1319fb7b8bb8522d0beac0280a0000000000000000000000000000000000000000000000000000000000000000cc001a0124f9b3433f1d9deb8d324bc8e9f899d3423ae80e5902f0d7311d56d3c12b86aa049bb7b4b79168fd3fa8d6e3bcfb15c4bdce1bb7ffce000eada672891a457140dc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2e6c1411da9a21241d5e418421a86bfb096def7a34eb08216c21807b730b27ba", + "transactionsTrie": "0xd2676ed86dfa5570516d8e16d2223971d039443924ef7166809894276c8fe19c", + "receiptTrie": "0xa8255aa046563bea817f7eb5dcfe1de6e67fd7e301e14c637b807c384b7748c0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6374", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x9e109643410f3b83f47518ad7bf977ae762a843ac62acd7aabef52a47f21ab22" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [], + "v": "0x01", + "r": "0x124f9b3433f1d9deb8d324bc8e9f899d3423ae80e5902f0d7311d56d3c12b86a", + "s": "0x49bb7b4b79168fd3fa8d6e3bcfb15c4bdce1bb7ffce000eada672891a457140d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x9e109643410f3b83f47518ad7bf977ae762a843ac62acd7aabef52a47f21ab22", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffd47d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-tx_type=2-call_beacon_root_contract=True-auto_access_list=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf90327f9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cb7f438b7282b75f0745e0c62fabbb747f1476ffecf6ec5b22e9286e7b5e6168a07829b8489b753cda8ec66d95576fd019bfe8b1ec2b63c0f02bf31fd7b905aa42a021810255cf791689c0cdd90804fe9988a9cd4bdb2c6641e4fc01ce2b4f0669c4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000826c0c0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e4b8e202f8df01808007830f424094000f3df6d732807ef1319fb7b8bb8522d0beac0280a0000000000000000000000000000000000000000000000000000000000000000cf85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000200b01a031a885892767bc9f6f9c8bf714e779dee8566c3a92e110000ecb6b8950f80a77a02e3103034a5dd7c2d18e0bb89e5198c3c3b0ee1809dd853fa49461ac3dc51a52c0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcb7f438b7282b75f0745e0c62fabbb747f1476ffecf6ec5b22e9286e7b5e6168", + "transactionsTrie": "0x7829b8489b753cda8ec66d95576fd019bfe8b1ec2b63c0f02bf31fd7b905aa42", + "receiptTrie": "0x21810255cf791689c0cdd90804fe9988a9cd4bdb2c6641e4fc01ce2b4f0669c4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6c0c", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x44ecac26f74f7730c0eb13dc3daea0e0b11d6da6d5228680b5de98855c016cf9" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000200b" + ] + } + ], + "v": "0x01", + "r": "0x31a885892767bc9f6f9c8bf714e779dee8566c3a92e110000ecb6b8950f80a77", + "s": "0x2e3103034a5dd7c2d18e0bb89e5198c3c3b0ee1809dd853fa49461ac3dc51a52", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x44ecac26f74f7730c0eb13dc3daea0e0b11d6da6d5228680b5de98855c016cf9", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffd0bac", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-tx_type=1-call_beacon_root_contract=True-auto_access_list=False": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902caf9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02e6c1411da9a21241d5e418421a86bfb096def7a34eb08216c21807b730b27baa0ab0b160b131ae71e3869bb522bf8cec1a68e1a745ce71aa69dfcba3d2e36784ca0d38ee364e89682a479e8f3a70674261400255f494ed68e0bd91160c8374dc1b9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008263740c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff887b88501f882018007830f424094000f3df6d732807ef1319fb7b8bb8522d0beac0280a0000000000000000000000000000000000000000000000000000000000000000cc001a02505f7a205472df2488af06b7751b92e0ba029aa3138c20b605bb5b8d5c5fca7a052f871ed879cf6ba85fba13f694624f2060388392446389cd784dd7adb51c8bec0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2e6c1411da9a21241d5e418421a86bfb096def7a34eb08216c21807b730b27ba", + "transactionsTrie": "0xab0b160b131ae71e3869bb522bf8cec1a68e1a745ce71aa69dfcba3d2e36784c", + "receiptTrie": "0xd38ee364e89682a479e8f3a70674261400255f494ed68e0bd91160c8374dc1b9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6374", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x8c25093b2d8e7127d157eded013d00b81577c8a34047a0e7851d7e70efdb7050" + }, + "transactions": [ + { + "type": "0x01", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [], + "v": "0x01", + "r": "0x2505f7a205472df2488af06b7751b92e0ba029aa3138c20b605bb5b8d5c5fca7", + "s": "0x52f871ed879cf6ba85fba13f694624f2060388392446389cd784dd7adb51c8be", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8c25093b2d8e7127d157eded013d00b81577c8a34047a0e7851d7e70efdb7050", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffd47d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-tx_type=1-call_beacon_root_contract=True-auto_access_list=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf90326f9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cb7f438b7282b75f0745e0c62fabbb747f1476ffecf6ec5b22e9286e7b5e6168a023b7730f3559ae19e51d639d0e617d4f8264bde2a7b0c349e21b922ec58b56d0a0de10e8090559f8968465429c7fb57516aba92f134b5b1082ab5ff492d7979ffeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000826c0c0c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff8e3b8e101f8de018007830f424094000f3df6d732807ef1319fb7b8bb8522d0beac0280a0000000000000000000000000000000000000000000000000000000000000000cf85bf85994000f3df6d732807ef1319fb7b8bb8522d0beac02f842a0000000000000000000000000000000000000000000000000000000000000000ca0000000000000000000000000000000000000000000000000000000000000200b01a0e2b1ae1a19bbb7536026acdd859e6fdda07ce9a981a382e481cfd1fee3ba87afa04d66298b4098a5b1b5b93ae8c083cf16ec3c5f88aa84a272600492ad6fc970fdc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcb7f438b7282b75f0745e0c62fabbb747f1476ffecf6ec5b22e9286e7b5e6168", + "transactionsTrie": "0x23b7730f3559ae19e51d639d0e617d4f8264bde2a7b0c349e21b922ec58b56d0", + "receiptTrie": "0xde10e8090559f8968465429c7fb57516aba92f134b5b1082ab5ff492d7979ffe", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6c0c", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xad756c435aaa6a36d868cc1ba53a34e308805c6c1642086761fb9047cc8c9aa6" + }, + "transactions": [ + { + "type": "0x01", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [ + { + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "storageKeys": [ + "0x000000000000000000000000000000000000000000000000000000000000000c", + "0x000000000000000000000000000000000000000000000000000000000000200b" + ] + } + ], + "v": "0x01", + "r": "0xe2b1ae1a19bbb7536026acdd859e6fdda07ce9a981a382e481cfd1fee3ba87af", + "s": "0x4d66298b4098a5b1b5b93ae8c083cf16ec3c5f88aa84a272600492ad6fc970fd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xad756c435aaa6a36d868cc1ba53a34e308805c6c1642086761fb9047cc8c9aa6", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffd0bac", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Cancun-tx_type=0-call_beacon_root_contract=True-auto_access_list=False": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902c5f9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02e6c1411da9a21241d5e418421a86bfb096def7a34eb08216c21807b730b27baa0642cc4c7d700f03ddd66acdf41a74b5f4d26f8af368b21ec0e4a1189da5feb82a03a1c3f5739509685c7a1e5a8da8fba109cf0c84a3f55420d583efbd35c18f156b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008263740c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff882f8808007830f424094000f3df6d732807ef1319fb7b8bb8522d0beac0280a0000000000000000000000000000000000000000000000000000000000000000c25a07918df3a22a04d699a430b4d82603ae1ba6228646fa81622728767edd757b73aa033fc5451eb934645f9026f607780408faecd7c7f0d92f320c5778cb715d43c0fc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2e6c1411da9a21241d5e418421a86bfb096def7a34eb08216c21807b730b27ba", + "transactionsTrie": "0x642cc4c7d700f03ddd66acdf41a74b5f4d26f8af368b21ec0e4a1189da5feb82", + "receiptTrie": "0x3a1c3f5739509685c7a1e5a8da8fba109cf0c84a3f55420d583efbd35c18f156", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6374", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xa83dc1584fdb01c63a643b181194107119afce7ebefaea3f18dd9aa1f3a2802c" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "v": "0x25", + "r": "0x7918df3a22a04d699a430b4d82603ae1ba6228646fa81622728767edd757b73a", + "s": "0x33fc5451eb934645f9026f607780408faecd7c7f0d92f320c5778cb715d43c0f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa83dc1584fdb01c63a643b181194107119afce7ebefaea3f18dd9aa1f3a2802c", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffd47d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Cancun-tx_type=0-call_beacon_root_contract=True-auto_access_list=True": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7e927286579ab110381155cdc6d7baadcea9a388faea2bd3dd1980856395147a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75" + }, + "blocks": [ + { + "rlp": "0xf902c5f9023ca0e00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02e6c1411da9a21241d5e418421a86bfb096def7a34eb08216c21807b730b27baa0642cc4c7d700f03ddd66acdf41a74b5f4d26f8af368b21ec0e4a1189da5feb82a03a1c3f5739509685c7a1e5a8da8fba109cf0c84a3f55420d583efbd35c18f156b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008263740c00a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff882f8808007830f424094000f3df6d732807ef1319fb7b8bb8522d0beac0280a0000000000000000000000000000000000000000000000000000000000000000c25a07918df3a22a04d699a430b4d82603ae1ba6228646fa81622728767edd757b73aa033fc5451eb934645f9026f607780408faecd7c7f0d92f320c5778cb715d43c0fc0c0", + "blockHeader": { + "parentHash": "0xe00abc60fbbc23def21aca16bc3a53ce44aa9ab0bb6fa859a33b2e7f8cb54d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2e6c1411da9a21241d5e418421a86bfb096def7a34eb08216c21807b730b27ba", + "transactionsTrie": "0x642cc4c7d700f03ddd66acdf41a74b5f4d26f8af368b21ec0e4a1189da5feb82", + "receiptTrie": "0x3a1c3f5739509685c7a1e5a8da8fba109cf0c84a3f55420d583efbd35c18f156", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6374", + "timestamp": "0x0c", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xa83dc1584fdb01c63a643b181194107119afce7ebefaea3f18dd9aa1f3a2802c" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "v": "0x25", + "r": "0x7918df3a22a04d699a430b4d82603ae1ba6228646fa81622728767edd757b73a", + "s": "0x33fc5451eb934645f9026f607780408faecd7c7f0d92f320c5778cb715d43c0f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa83dc1584fdb01c63a643b181194107119afce7ebefaea3f18dd9aa1f3a2802c", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x200b": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffd47d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_timestamp_collisions.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_timestamp_collisions.json deleted file mode 100644 index 877f6e1863a..00000000000 --- a/tests/execution-spec-tests/cancun/eip4788_beacon_root/beacon_root_precompile/beacon_root_timestamp_collisions.json +++ /dev/null @@ -1,3084 +0,0 @@ -{ - "000-fork=Cancun-timestamp=12-call_gas=4200-valid_call=True": { - "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" - }, - "blocks": [ - { - "rlp": "0xf902ccf9023da0848c1ee809a73afffb6c0f128470a0de0ec93c410d652cd3294ca2c3d5d40143a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05d370aca499c9533c0798b0d5638125445ece3e211ab7b7e45f906451a82dd00a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", - "blockHeader": { - "parentHash": "0x848c1ee809a73afffb6c0f128470a0de0ec93c410d652cd3294ca2c3d5d40143", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5d370aca499c9533c0798b0d5638125445ece3e211ab7b7e45f906451a82dd00", - "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x717f5b2f4959806d2ec0db30a5da628b81a659e85c9bda9d591a2b591b06ddbd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x848c1ee809a73afffb6c0f128470a0de0ec93c410d652cd3294ca2c3d5d40143", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5d370aca499c9533c0798b0d5638125445ece3e211ab7b7e45f906451a82dd00", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x717f5b2f4959806d2ec0db30a5da628b81a659e85c9bda9d591a2b591b06ddbd", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000000000c", - "accessList": [], - "v": "0x00", - "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", - "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a0717f5b2f4959806d2ec0db30a5da628b81a659e85c9bda9d591a2b591b06ddbda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa047b88b91880d3dce5c0bbd2fd53b69e6b01317b7bdcad715b65662c1d7eb9148a0a1e4c02f8c43f7e6730d78fd96f0c37aa34b502749ed1e11f37c0b1659ec8cb6a0330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301bd158301800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301018007830f424094000000000000000000000000000000000000010180a0000000000000000000000000000000000000000000000000000000000001800cc080a00ae47fb3cff66a57a1f615c5185335d3e16f828ba6df304b52af40c7d998e763a0795dad6759871df57cdb8b232c22ea37e84ff05ce4d1ad02694b06e820cf1f18c0c0", - "blockHeader": { - "parentHash": "0x717f5b2f4959806d2ec0db30a5da628b81a659e85c9bda9d591a2b591b06ddbd", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x47b88b91880d3dce5c0bbd2fd53b69e6b01317b7bdcad715b65662c1d7eb9148", - "transactionsTrie": "0xa1e4c02f8c43f7e6730d78fd96f0c37aa34b502749ed1e11f37c0b1659ec8cb6", - "receiptTrie": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x02", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd15", - "timestamp": "0x01800c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x68902babdcd75a2e73f6a240c952eda7249aeb4bf003a990231378bc10592c67" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x717f5b2f4959806d2ec0db30a5da628b81a659e85c9bda9d591a2b591b06ddbd", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x47b88b91880d3dce5c0bbd2fd53b69e6b01317b7bdcad715b65662c1d7eb9148", - "receiptsRoot": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd15", - "timestamp": "0x1800c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x68902babdcd75a2e73f6a240c952eda7249aeb4bf003a990231378bc10592c67", - "transactions": [ - "0x02f88301018007830f424094000000000000000000000000000000000000010180a0000000000000000000000000000000000000000000000000000000000001800cc080a00ae47fb3cff66a57a1f615c5185335d3e16f828ba6df304b52af40c7d998e763a0795dad6759871df57cdb8b232c22ea37e84ff05ce4d1ad02694b06e820cf1f18" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "2", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x01", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000101", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000001800c", - "accessList": [], - "v": "0x00", - "r": "0x0ae47fb3cff66a57a1f615c5185335d3e16f828ba6df304b52af40c7d998e763", - "s": "0x795dad6759871df57cdb8b232c22ea37e84ff05ce4d1ad02694b06e820cf1f18", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a068902babdcd75a2e73f6a240c952eda7249aeb4bf003a990231378bc10592c67a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07bef65a3a806bdc41fd8c8aa27a7de0fe561505072526a02094ea6f558e56fe3a0d179de8f576b6a7f1de52420273955817832aad1d20dada873870ce00ae95a52a09de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008301bd098303000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301028007830f424094000000000000000000000000000000000000010280a0000000000000000000000000000000000000000000000000000000000003000cc001a04b8395206210239a1b4d3d37e65594ec88da360713a9b106159a59da9db47065a074333c1166925539d855c74e4c0e1e0ba57fb15947e7e5c4affc78095f256aaac0c0", - "blockHeader": { - "parentHash": "0x68902babdcd75a2e73f6a240c952eda7249aeb4bf003a990231378bc10592c67", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7bef65a3a806bdc41fd8c8aa27a7de0fe561505072526a02094ea6f558e56fe3", - "transactionsTrie": "0xd179de8f576b6a7f1de52420273955817832aad1d20dada873870ce00ae95a52", - "receiptTrie": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x03", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd09", - "timestamp": "0x03000c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x7b43c82527e90ae30bedfddd9b0aec4e817e121b433ad579c6c2a601cf2010f1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x68902babdcd75a2e73f6a240c952eda7249aeb4bf003a990231378bc10592c67", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7bef65a3a806bdc41fd8c8aa27a7de0fe561505072526a02094ea6f558e56fe3", - "receiptsRoot": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd09", - "timestamp": "0x3000c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7b43c82527e90ae30bedfddd9b0aec4e817e121b433ad579c6c2a601cf2010f1", - "transactions": [ - "0x02f88301028007830f424094000000000000000000000000000000000000010280a0000000000000000000000000000000000000000000000000000000000003000cc001a04b8395206210239a1b4d3d37e65594ec88da360713a9b106159a59da9db47065a074333c1166925539d855c74e4c0e1e0ba57fb15947e7e5c4affc78095f256aaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "3", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x02", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000102", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000003000c", - "accessList": [], - "v": "0x01", - "r": "0x4b8395206210239a1b4d3d37e65594ec88da360713a9b106159a59da9db47065", - "s": "0x74333c1166925539d855c74e4c0e1e0ba57fb15947e7e5c4affc78095f256aaa", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a07b43c82527e90ae30bedfddd9b0aec4e817e121b433ad579c6c2a601cf2010f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0210cfae289947751e3d2444dd4a2063e1819c653a84c1af671773412fe443cc5a0743404bfb4aefdcbb6255853eb978df618b18ffa1a6e234385f9b88e2e02ad09a0330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a00008301bd158304800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301038007830f424094000000000000000000000000000000000000010380a0000000000000000000000000000000000000000000000000000000000004800cc001a0980bd23ae8ab01bde3694c91edd38740e814148231209c2ad8a500ef060b0126a05a0dc7d864838b7240b772b0b4d6053912a6da3b74f32887870d91b4bd6c2d20c0c0", - "blockHeader": { - "parentHash": "0x7b43c82527e90ae30bedfddd9b0aec4e817e121b433ad579c6c2a601cf2010f1", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x210cfae289947751e3d2444dd4a2063e1819c653a84c1af671773412fe443cc5", - "transactionsTrie": "0x743404bfb4aefdcbb6255853eb978df618b18ffa1a6e234385f9b88e2e02ad09", - "receiptTrie": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x04", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd15", - "timestamp": "0x04800c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xdc9d05388bc2f8d161238f4e5bf04675e583835085dc86ca473a85c47dbd935d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7b43c82527e90ae30bedfddd9b0aec4e817e121b433ad579c6c2a601cf2010f1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x210cfae289947751e3d2444dd4a2063e1819c653a84c1af671773412fe443cc5", - "receiptsRoot": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd15", - "timestamp": "0x4800c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xdc9d05388bc2f8d161238f4e5bf04675e583835085dc86ca473a85c47dbd935d", - "transactions": [ - "0x02f88301038007830f424094000000000000000000000000000000000000010380a0000000000000000000000000000000000000000000000000000000000004800cc001a0980bd23ae8ab01bde3694c91edd38740e814148231209c2ad8a500ef060b0126a05a0dc7d864838b7240b772b0b4d6053912a6da3b74f32887870d91b4bd6c2d20" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "4", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x03", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000103", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000004800c", - "accessList": [], - "v": "0x01", - "r": "0x980bd23ae8ab01bde3694c91edd38740e814148231209c2ad8a500ef060b0126", - "s": "0x5a0dc7d864838b7240b772b0b4d6053912a6da3b74f32887870d91b4bd6c2d20", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a0dc9d05388bc2f8d161238f4e5bf04675e583835085dc86ca473a85c47dbd935da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa090be611b4f54415534ed88b2eadd45bacf3c965b7d4c9c6fa507663a27c6de3ba0878a6d10cd1dc41979c321782b53ed6b78f61253a321fe8b306e6cb23428a264a09de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008301bd098306000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301048007830f424094000000000000000000000000000000000000010480a0000000000000000000000000000000000000000000000000000000000006000cc001a092cfd1272be557c5b38aefafa6d174f62f7959245fe563d4e798bb5b91accaa9a0497f4ecbc91e562aaa381b59b4feeeb789b40bddf3d2b3d16f3b28a68f11f744c0c0", - "blockHeader": { - "parentHash": "0xdc9d05388bc2f8d161238f4e5bf04675e583835085dc86ca473a85c47dbd935d", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x90be611b4f54415534ed88b2eadd45bacf3c965b7d4c9c6fa507663a27c6de3b", - "transactionsTrie": "0x878a6d10cd1dc41979c321782b53ed6b78f61253a321fe8b306e6cb23428a264", - "receiptTrie": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x05", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd09", - "timestamp": "0x06000c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xca192b67ca3853e2672ff9452f5590a20529ba4fb5d144c7590025b9b204aa4c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdc9d05388bc2f8d161238f4e5bf04675e583835085dc86ca473a85c47dbd935d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x90be611b4f54415534ed88b2eadd45bacf3c965b7d4c9c6fa507663a27c6de3b", - "receiptsRoot": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd09", - "timestamp": "0x6000c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xca192b67ca3853e2672ff9452f5590a20529ba4fb5d144c7590025b9b204aa4c", - "transactions": [ - "0x02f88301048007830f424094000000000000000000000000000000000000010480a0000000000000000000000000000000000000000000000000000000000006000cc001a092cfd1272be557c5b38aefafa6d174f62f7959245fe563d4e798bb5b91accaa9a0497f4ecbc91e562aaa381b59b4feeeb789b40bddf3d2b3d16f3b28a68f11f744" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "5", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x04", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000104", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000006000c", - "accessList": [], - "v": "0x01", - "r": "0x92cfd1272be557c5b38aefafa6d174f62f7959245fe563d4e798bb5b91accaa9", - "s": "0x497f4ecbc91e562aaa381b59b4feeeb789b40bddf3d2b3d16f3b28a68f11f744", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x60bc9158987f57a6cae732df83926e8c052bbbed85ee0a4ff8306b314ef4e8bc", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x848c1ee809a73afffb6c0f128470a0de0ec93c410d652cd3294ca2c3d5d40143" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a060bc9158987f57a6cae732df83926e8c052bbbed85ee0a4ff8306b314ef4e8bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xca192b67ca3853e2672ff9452f5590a20529ba4fb5d144c7590025b9b204aa4c", - "network": "Cancun", - "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x", - "storage": {} - } - }, - "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x06000c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x05", - "balance": "0xffffc32771", - "code": "0x", - "storage": {} - } - }, - "sealEngine": "NoProof" - }, - "001-fork=Cancun-timestamp=12-call_gas=4201-valid_call=True": { - "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" - }, - "blocks": [ - { - "rlp": "0xf902ccf9023da070262a76c3d4cdb892c2fbb12d87721efbb6f9d311fa9b3c275bf8940b269721a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07c8323c21d8276b73044c1cce6ae6d8f473273c560061e787f9d628834ac6d1aa07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", - "blockHeader": { - "parentHash": "0x70262a76c3d4cdb892c2fbb12d87721efbb6f9d311fa9b3c275bf8940b269721", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7c8323c21d8276b73044c1cce6ae6d8f473273c560061e787f9d628834ac6d1a", - "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xd561a4c71c57de49c7164c1738591af69393fee4db020e1d507fb9d16262989c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x70262a76c3d4cdb892c2fbb12d87721efbb6f9d311fa9b3c275bf8940b269721", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7c8323c21d8276b73044c1cce6ae6d8f473273c560061e787f9d628834ac6d1a", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd561a4c71c57de49c7164c1738591af69393fee4db020e1d507fb9d16262989c", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000000000c", - "accessList": [], - "v": "0x00", - "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", - "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a0d561a4c71c57de49c7164c1738591af69393fee4db020e1d507fb9d16262989ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d0b40291192739352a73e5f14c92e0ec7cc059f1c4cf8697b272bf39e25a15f9a0a1e4c02f8c43f7e6730d78fd96f0c37aa34b502749ed1e11f37c0b1659ec8cb6a0330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301bd158301800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301018007830f424094000000000000000000000000000000000000010180a0000000000000000000000000000000000000000000000000000000000001800cc080a00ae47fb3cff66a57a1f615c5185335d3e16f828ba6df304b52af40c7d998e763a0795dad6759871df57cdb8b232c22ea37e84ff05ce4d1ad02694b06e820cf1f18c0c0", - "blockHeader": { - "parentHash": "0xd561a4c71c57de49c7164c1738591af69393fee4db020e1d507fb9d16262989c", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd0b40291192739352a73e5f14c92e0ec7cc059f1c4cf8697b272bf39e25a15f9", - "transactionsTrie": "0xa1e4c02f8c43f7e6730d78fd96f0c37aa34b502749ed1e11f37c0b1659ec8cb6", - "receiptTrie": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x02", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd15", - "timestamp": "0x01800c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x2f1f1d6e3ce3ad91858f2ebbc605111009a09fd8ad5648cd44908b65994a8c99" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd561a4c71c57de49c7164c1738591af69393fee4db020e1d507fb9d16262989c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd0b40291192739352a73e5f14c92e0ec7cc059f1c4cf8697b272bf39e25a15f9", - "receiptsRoot": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd15", - "timestamp": "0x1800c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2f1f1d6e3ce3ad91858f2ebbc605111009a09fd8ad5648cd44908b65994a8c99", - "transactions": [ - "0x02f88301018007830f424094000000000000000000000000000000000000010180a0000000000000000000000000000000000000000000000000000000000001800cc080a00ae47fb3cff66a57a1f615c5185335d3e16f828ba6df304b52af40c7d998e763a0795dad6759871df57cdb8b232c22ea37e84ff05ce4d1ad02694b06e820cf1f18" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "2", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x01", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000101", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000001800c", - "accessList": [], - "v": "0x00", - "r": "0x0ae47fb3cff66a57a1f615c5185335d3e16f828ba6df304b52af40c7d998e763", - "s": "0x795dad6759871df57cdb8b232c22ea37e84ff05ce4d1ad02694b06e820cf1f18", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a02f1f1d6e3ce3ad91858f2ebbc605111009a09fd8ad5648cd44908b65994a8c99a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa063fe6592f184e85a187c68e7a6e7544791c82c978ddcb3b1983835d5f68731eba0d179de8f576b6a7f1de52420273955817832aad1d20dada873870ce00ae95a52a09de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008301bd098303000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301028007830f424094000000000000000000000000000000000000010280a0000000000000000000000000000000000000000000000000000000000003000cc001a04b8395206210239a1b4d3d37e65594ec88da360713a9b106159a59da9db47065a074333c1166925539d855c74e4c0e1e0ba57fb15947e7e5c4affc78095f256aaac0c0", - "blockHeader": { - "parentHash": "0x2f1f1d6e3ce3ad91858f2ebbc605111009a09fd8ad5648cd44908b65994a8c99", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x63fe6592f184e85a187c68e7a6e7544791c82c978ddcb3b1983835d5f68731eb", - "transactionsTrie": "0xd179de8f576b6a7f1de52420273955817832aad1d20dada873870ce00ae95a52", - "receiptTrie": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x03", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd09", - "timestamp": "0x03000c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x825525091b16841bbd058de1580a09dbc905144d26822d1069032d7709acc998" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2f1f1d6e3ce3ad91858f2ebbc605111009a09fd8ad5648cd44908b65994a8c99", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x63fe6592f184e85a187c68e7a6e7544791c82c978ddcb3b1983835d5f68731eb", - "receiptsRoot": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd09", - "timestamp": "0x3000c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x825525091b16841bbd058de1580a09dbc905144d26822d1069032d7709acc998", - "transactions": [ - "0x02f88301028007830f424094000000000000000000000000000000000000010280a0000000000000000000000000000000000000000000000000000000000003000cc001a04b8395206210239a1b4d3d37e65594ec88da360713a9b106159a59da9db47065a074333c1166925539d855c74e4c0e1e0ba57fb15947e7e5c4affc78095f256aaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "3", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x02", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000102", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000003000c", - "accessList": [], - "v": "0x01", - "r": "0x4b8395206210239a1b4d3d37e65594ec88da360713a9b106159a59da9db47065", - "s": "0x74333c1166925539d855c74e4c0e1e0ba57fb15947e7e5c4affc78095f256aaa", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a0825525091b16841bbd058de1580a09dbc905144d26822d1069032d7709acc998a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0af05b6b39b1de20c71cfd0a2203097b57cd7214b32e21884dee01bfc78b5eebda0743404bfb4aefdcbb6255853eb978df618b18ffa1a6e234385f9b88e2e02ad09a0330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a00008301bd158304800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301038007830f424094000000000000000000000000000000000000010380a0000000000000000000000000000000000000000000000000000000000004800cc001a0980bd23ae8ab01bde3694c91edd38740e814148231209c2ad8a500ef060b0126a05a0dc7d864838b7240b772b0b4d6053912a6da3b74f32887870d91b4bd6c2d20c0c0", - "blockHeader": { - "parentHash": "0x825525091b16841bbd058de1580a09dbc905144d26822d1069032d7709acc998", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaf05b6b39b1de20c71cfd0a2203097b57cd7214b32e21884dee01bfc78b5eebd", - "transactionsTrie": "0x743404bfb4aefdcbb6255853eb978df618b18ffa1a6e234385f9b88e2e02ad09", - "receiptTrie": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x04", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd15", - "timestamp": "0x04800c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x82865a0ddf50c66e34078c881c909929d80aa0877e7381278126909b852d426a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x825525091b16841bbd058de1580a09dbc905144d26822d1069032d7709acc998", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaf05b6b39b1de20c71cfd0a2203097b57cd7214b32e21884dee01bfc78b5eebd", - "receiptsRoot": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd15", - "timestamp": "0x4800c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x82865a0ddf50c66e34078c881c909929d80aa0877e7381278126909b852d426a", - "transactions": [ - "0x02f88301038007830f424094000000000000000000000000000000000000010380a0000000000000000000000000000000000000000000000000000000000004800cc001a0980bd23ae8ab01bde3694c91edd38740e814148231209c2ad8a500ef060b0126a05a0dc7d864838b7240b772b0b4d6053912a6da3b74f32887870d91b4bd6c2d20" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "4", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x03", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000103", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000004800c", - "accessList": [], - "v": "0x01", - "r": "0x980bd23ae8ab01bde3694c91edd38740e814148231209c2ad8a500ef060b0126", - "s": "0x5a0dc7d864838b7240b772b0b4d6053912a6da3b74f32887870d91b4bd6c2d20", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a082865a0ddf50c66e34078c881c909929d80aa0877e7381278126909b852d426aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa086f4a7fbc4ed3a2b39b9ba92ccd3eec28854d9253353e115968ced31aca1d03ea0878a6d10cd1dc41979c321782b53ed6b78f61253a321fe8b306e6cb23428a264a09de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008301bd098306000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301048007830f424094000000000000000000000000000000000000010480a0000000000000000000000000000000000000000000000000000000000006000cc001a092cfd1272be557c5b38aefafa6d174f62f7959245fe563d4e798bb5b91accaa9a0497f4ecbc91e562aaa381b59b4feeeb789b40bddf3d2b3d16f3b28a68f11f744c0c0", - "blockHeader": { - "parentHash": "0x82865a0ddf50c66e34078c881c909929d80aa0877e7381278126909b852d426a", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x86f4a7fbc4ed3a2b39b9ba92ccd3eec28854d9253353e115968ced31aca1d03e", - "transactionsTrie": "0x878a6d10cd1dc41979c321782b53ed6b78f61253a321fe8b306e6cb23428a264", - "receiptTrie": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x05", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd09", - "timestamp": "0x06000c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xdb51a0b58ca70a30d88317ed471f938bfeb63359c140b3eeba4d534245afd4e8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x82865a0ddf50c66e34078c881c909929d80aa0877e7381278126909b852d426a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x86f4a7fbc4ed3a2b39b9ba92ccd3eec28854d9253353e115968ced31aca1d03e", - "receiptsRoot": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd09", - "timestamp": "0x6000c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xdb51a0b58ca70a30d88317ed471f938bfeb63359c140b3eeba4d534245afd4e8", - "transactions": [ - "0x02f88301048007830f424094000000000000000000000000000000000000010480a0000000000000000000000000000000000000000000000000000000000006000cc001a092cfd1272be557c5b38aefafa6d174f62f7959245fe563d4e798bb5b91accaa9a0497f4ecbc91e562aaa381b59b4feeeb789b40bddf3d2b3d16f3b28a68f11f744" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "5", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x04", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000104", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000006000c", - "accessList": [], - "v": "0x01", - "r": "0x92cfd1272be557c5b38aefafa6d174f62f7959245fe563d4e798bb5b91accaa9", - "s": "0x497f4ecbc91e562aaa381b59b4feeeb789b40bddf3d2b3d16f3b28a68f11f744", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x777c4be80b9337f2ec2334784d22582c89a6002855a906300db78819452e8b7f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70262a76c3d4cdb892c2fbb12d87721efbb6f9d311fa9b3c275bf8940b269721" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0777c4be80b9337f2ec2334784d22582c89a6002855a906300db78819452e8b7fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdb51a0b58ca70a30d88317ed471f938bfeb63359c140b3eeba4d534245afd4e8", - "network": "Cancun", - "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x", - "storage": {} - } - }, - "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x06000c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x05", - "balance": "0xffffc32771", - "code": "0x", - "storage": {} - } - }, - "sealEngine": "NoProof" - }, - "002-fork=Cancun-timestamp=12-call_gas=4199-valid_call=False": { - "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" - }, - "blocks": [ - { - "rlp": "0xf902ccf9023da05ee75382c1ebefccfcc14d6493696df84daae99a7f58496bf82330d25a4b41d9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03ce44d2a1d9e2d0cf96bc92ff338cd54276b248798a54cdb56d74f63ef86c184a07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa03ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830121810c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0c0", - "blockHeader": { - "parentHash": "0x5ee75382c1ebefccfcc14d6493696df84daae99a7f58496bf82330d25a4b41d9", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3ce44d2a1d9e2d0cf96bc92ff338cd54276b248798a54cdb56d74f63ef86c184", - "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", - "receiptTrie": "0x3ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x012181", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xb32c6ed1a6163fb8548f840da88eca9fe11435fa00cd504475f1b818b539bcfb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5ee75382c1ebefccfcc14d6493696df84daae99a7f58496bf82330d25a4b41d9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3ce44d2a1d9e2d0cf96bc92ff338cd54276b248798a54cdb56d74f63ef86c184", - "receiptsRoot": "0x3ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x12181", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb32c6ed1a6163fb8548f840da88eca9fe11435fa00cd504475f1b818b539bcfb", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000000000c", - "accessList": [], - "v": "0x00", - "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", - "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a0b32c6ed1a6163fb8548f840da88eca9fe11435fa00cd504475f1b818b539bcfba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0349d495efeea83990595069dec33f244462eb79495ab2723836e8cc986db6755a0a1e4c02f8c43f7e6730d78fd96f0c37aa34b502749ed1e11f37c0b1659ec8cb6a02cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830121998301800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301018007830f424094000000000000000000000000000000000000010180a0000000000000000000000000000000000000000000000000000000000001800cc080a00ae47fb3cff66a57a1f615c5185335d3e16f828ba6df304b52af40c7d998e763a0795dad6759871df57cdb8b232c22ea37e84ff05ce4d1ad02694b06e820cf1f18c0c0", - "blockHeader": { - "parentHash": "0xb32c6ed1a6163fb8548f840da88eca9fe11435fa00cd504475f1b818b539bcfb", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x349d495efeea83990595069dec33f244462eb79495ab2723836e8cc986db6755", - "transactionsTrie": "0xa1e4c02f8c43f7e6730d78fd96f0c37aa34b502749ed1e11f37c0b1659ec8cb6", - "receiptTrie": "0x2cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01f", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x02", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x012199", - "timestamp": "0x01800c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xc5f934b262a6f7b9df338685466f4652b3f74edc4a55304fbde6f197b3963dea" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb32c6ed1a6163fb8548f840da88eca9fe11435fa00cd504475f1b818b539bcfb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x349d495efeea83990595069dec33f244462eb79495ab2723836e8cc986db6755", - "receiptsRoot": "0x2cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x12199", - "timestamp": "0x1800c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc5f934b262a6f7b9df338685466f4652b3f74edc4a55304fbde6f197b3963dea", - "transactions": [ - "0x02f88301018007830f424094000000000000000000000000000000000000010180a0000000000000000000000000000000000000000000000000000000000001800cc080a00ae47fb3cff66a57a1f615c5185335d3e16f828ba6df304b52af40c7d998e763a0795dad6759871df57cdb8b232c22ea37e84ff05ce4d1ad02694b06e820cf1f18" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "2", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x01", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000101", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000001800c", - "accessList": [], - "v": "0x00", - "r": "0x0ae47fb3cff66a57a1f615c5185335d3e16f828ba6df304b52af40c7d998e763", - "s": "0x795dad6759871df57cdb8b232c22ea37e84ff05ce4d1ad02694b06e820cf1f18", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a0c5f934b262a6f7b9df338685466f4652b3f74edc4a55304fbde6f197b3963deaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b733d3275a96dbd994458558a15e44463c5ade3122a2b83712df9c9fa8a635eca0d179de8f576b6a7f1de52420273955817832aad1d20dada873870ce00ae95a52a0112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008301218d8303000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301028007830f424094000000000000000000000000000000000000010280a0000000000000000000000000000000000000000000000000000000000003000cc001a04b8395206210239a1b4d3d37e65594ec88da360713a9b106159a59da9db47065a074333c1166925539d855c74e4c0e1e0ba57fb15947e7e5c4affc78095f256aaac0c0", - "blockHeader": { - "parentHash": "0xc5f934b262a6f7b9df338685466f4652b3f74edc4a55304fbde6f197b3963dea", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb733d3275a96dbd994458558a15e44463c5ade3122a2b83712df9c9fa8a635ec", - "transactionsTrie": "0xd179de8f576b6a7f1de52420273955817832aad1d20dada873870ce00ae95a52", - "receiptTrie": "0x112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x03", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01218d", - "timestamp": "0x03000c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x993d21316a39077fd6e7708c223bfc319a0bebef99fb563a4ee72514d92ff486" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc5f934b262a6f7b9df338685466f4652b3f74edc4a55304fbde6f197b3963dea", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb733d3275a96dbd994458558a15e44463c5ade3122a2b83712df9c9fa8a635ec", - "receiptsRoot": "0x112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1218d", - "timestamp": "0x3000c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x993d21316a39077fd6e7708c223bfc319a0bebef99fb563a4ee72514d92ff486", - "transactions": [ - "0x02f88301028007830f424094000000000000000000000000000000000000010280a0000000000000000000000000000000000000000000000000000000000003000cc001a04b8395206210239a1b4d3d37e65594ec88da360713a9b106159a59da9db47065a074333c1166925539d855c74e4c0e1e0ba57fb15947e7e5c4affc78095f256aaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "3", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x02", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000102", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000003000c", - "accessList": [], - "v": "0x01", - "r": "0x4b8395206210239a1b4d3d37e65594ec88da360713a9b106159a59da9db47065", - "s": "0x74333c1166925539d855c74e4c0e1e0ba57fb15947e7e5c4affc78095f256aaa", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a0993d21316a39077fd6e7708c223bfc319a0bebef99fb563a4ee72514d92ff486a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e74699a992e3ab34ce198f45a31d4204fa584dfe3ee769299322ad3b9d1ff85ea0743404bfb4aefdcbb6255853eb978df618b18ffa1a6e234385f9b88e2e02ad09a02cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a0000830121998304800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301038007830f424094000000000000000000000000000000000000010380a0000000000000000000000000000000000000000000000000000000000004800cc001a0980bd23ae8ab01bde3694c91edd38740e814148231209c2ad8a500ef060b0126a05a0dc7d864838b7240b772b0b4d6053912a6da3b74f32887870d91b4bd6c2d20c0c0", - "blockHeader": { - "parentHash": "0x993d21316a39077fd6e7708c223bfc319a0bebef99fb563a4ee72514d92ff486", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe74699a992e3ab34ce198f45a31d4204fa584dfe3ee769299322ad3b9d1ff85e", - "transactionsTrie": "0x743404bfb4aefdcbb6255853eb978df618b18ffa1a6e234385f9b88e2e02ad09", - "receiptTrie": "0x2cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01f", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x04", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x012199", - "timestamp": "0x04800c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x7017633b78c9f67782bf942808b85a97eb827a682ebf4f23c59644686a376476" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x993d21316a39077fd6e7708c223bfc319a0bebef99fb563a4ee72514d92ff486", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe74699a992e3ab34ce198f45a31d4204fa584dfe3ee769299322ad3b9d1ff85e", - "receiptsRoot": "0x2cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x12199", - "timestamp": "0x4800c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7017633b78c9f67782bf942808b85a97eb827a682ebf4f23c59644686a376476", - "transactions": [ - "0x02f88301038007830f424094000000000000000000000000000000000000010380a0000000000000000000000000000000000000000000000000000000000004800cc001a0980bd23ae8ab01bde3694c91edd38740e814148231209c2ad8a500ef060b0126a05a0dc7d864838b7240b772b0b4d6053912a6da3b74f32887870d91b4bd6c2d20" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "4", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x03", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000103", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000004800c", - "accessList": [], - "v": "0x01", - "r": "0x980bd23ae8ab01bde3694c91edd38740e814148231209c2ad8a500ef060b0126", - "s": "0x5a0dc7d864838b7240b772b0b4d6053912a6da3b74f32887870d91b4bd6c2d20", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902cff90240a07017633b78c9f67782bf942808b85a97eb827a682ebf4f23c59644686a376476a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a1638c14c0f81819c485e84f329f89d2b3c377411c40a6a10f83ec87841eddda0878a6d10cd1dc41979c321782b53ed6b78f61253a321fe8b306e6cb23428a264a0112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008301218d8306000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301048007830f424094000000000000000000000000000000000000010480a0000000000000000000000000000000000000000000000000000000000006000cc001a092cfd1272be557c5b38aefafa6d174f62f7959245fe563d4e798bb5b91accaa9a0497f4ecbc91e562aaa381b59b4feeeb789b40bddf3d2b3d16f3b28a68f11f744c0c0", - "blockHeader": { - "parentHash": "0x7017633b78c9f67782bf942808b85a97eb827a682ebf4f23c59644686a376476", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4a1638c14c0f81819c485e84f329f89d2b3c377411c40a6a10f83ec87841eddd", - "transactionsTrie": "0x878a6d10cd1dc41979c321782b53ed6b78f61253a321fe8b306e6cb23428a264", - "receiptTrie": "0x112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x05", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01218d", - "timestamp": "0x06000c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x8a28d37e489bafce92ffadf119072904906b1c0e47e1d80f0724773a60fd5b0d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7017633b78c9f67782bf942808b85a97eb827a682ebf4f23c59644686a376476", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4a1638c14c0f81819c485e84f329f89d2b3c377411c40a6a10f83ec87841eddd", - "receiptsRoot": "0x112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1218d", - "timestamp": "0x6000c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8a28d37e489bafce92ffadf119072904906b1c0e47e1d80f0724773a60fd5b0d", - "transactions": [ - "0x02f88301048007830f424094000000000000000000000000000000000000010480a0000000000000000000000000000000000000000000000000000000000006000cc001a092cfd1272be557c5b38aefafa6d174f62f7959245fe563d4e798bb5b91accaa9a0497f4ecbc91e562aaa381b59b4feeeb789b40bddf3d2b3d16f3b28a68f11f744" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "5", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x04", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000104", - "value": "0x00", - "data": "0x000000000000000000000000000000000000000000000000000000000006000c", - "accessList": [], - "v": "0x01", - "r": "0x92cfd1272be557c5b38aefafa6d174f62f7959245fe563d4e798bb5b91accaa9", - "s": "0x497f4ecbc91e562aaa381b59b4feeeb789b40bddf3d2b3d16f3b28a68f11f744", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5621a17fe90ddd43a00cbfe59c30bc1a932c7a98a8d03196ec8ccea54c74ec58", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5ee75382c1ebefccfcc14d6493696df84daae99a7f58496bf82330d25a4b41d9" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05621a17fe90ddd43a00cbfe59c30bc1a932c7a98a8d03196ec8ccea54c74ec58a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8a28d37e489bafce92ffadf119072904906b1c0e47e1d80f0724773a60fd5b0d", - "network": "Cancun", - "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x", - "storage": {} - } - }, - "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x06000c", - "0x01800c": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x0c", - "0x03": "0x0c" - } - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x01800c", - "0x03": "0x01800c" - } - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x03000c", - "0x03": "0x03000c" - } - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x04800c", - "0x03": "0x04800c" - } - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x06000c", - "0x03": "0x06000c" - } - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x05", - "balance": "0xffffd86965", - "code": "0x", - "storage": {} - } - }, - "sealEngine": "NoProof" - }, - "003-fork=Cancun-timestamp=4294967296-call_gas=4200-valid_call=True": { - "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" - }, - "blocks": [ - { - "rlp": "0xf902d1f90242a0848c1ee809a73afffb6c0f128470a0de0ec93c410d652cd3294ca2c3d5d40143a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0240c5de183888d56732303c3d45d06ad1ebb41e63dcd90c7b62e5383df75f63aa0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd85010000000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0c0", - "blockHeader": { - "parentHash": "0x848c1ee809a73afffb6c0f128470a0de0ec93c410d652cd3294ca2c3d5d40143", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x240c5de183888d56732303c3d45d06ad1ebb41e63dcd90c7b62e5383df75f63a", - "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", - "timestamp": "0x0100000000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xee3f8c1fcc52ec227edab852611d0877d67e40f9d155997f235a8234e259214c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x848c1ee809a73afffb6c0f128470a0de0ec93c410d652cd3294ca2c3d5d40143", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x240c5de183888d56732303c3d45d06ad1ebb41e63dcd90c7b62e5383df75f63a", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0x100000000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xee3f8c1fcc52ec227edab852611d0877d67e40f9d155997f235a8234e259214c", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100000000", - "accessList": [], - "v": "0x01", - "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", - "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a0ee3f8c1fcc52ec227edab852611d0877d67e40f9d155997f235a8234e259214ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04862ccd7f245b7962684ef0a19e56dfb3fd0b34e7891f242b0332d0210465081a07690bd33024cb295957e8c8a313efa86db746a84b3211fd6f94b396cd27f36baa0330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301bd1585010001800080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000100018000c080a0dc7daa685356d4fed7df0b11200ca4654a4998faef5664162b11547907436e98a01ffb68d6923702c18ffbcfe80457c39f727db34e53e392300b1e9c47a9685b00c0c0", - "blockHeader": { - "parentHash": "0xee3f8c1fcc52ec227edab852611d0877d67e40f9d155997f235a8234e259214c", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4862ccd7f245b7962684ef0a19e56dfb3fd0b34e7891f242b0332d0210465081", - "transactionsTrie": "0x7690bd33024cb295957e8c8a313efa86db746a84b3211fd6f94b396cd27f36ba", - "receiptTrie": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x02", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd15", - "timestamp": "0x0100018000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x6d2856d5717b0424287a456c509767ebfd7c7cd0821b1918f44aa06ddc65127c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee3f8c1fcc52ec227edab852611d0877d67e40f9d155997f235a8234e259214c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4862ccd7f245b7962684ef0a19e56dfb3fd0b34e7891f242b0332d0210465081", - "receiptsRoot": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd15", - "timestamp": "0x100018000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6d2856d5717b0424287a456c509767ebfd7c7cd0821b1918f44aa06ddc65127c", - "transactions": [ - "0x02f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000100018000c080a0dc7daa685356d4fed7df0b11200ca4654a4998faef5664162b11547907436e98a01ffb68d6923702c18ffbcfe80457c39f727db34e53e392300b1e9c47a9685b00" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "2", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x01", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000101", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100018000", - "accessList": [], - "v": "0x00", - "r": "0xdc7daa685356d4fed7df0b11200ca4654a4998faef5664162b11547907436e98", - "s": "0x1ffb68d6923702c18ffbcfe80457c39f727db34e53e392300b1e9c47a9685b00", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a06d2856d5717b0424287a456c509767ebfd7c7cd0821b1918f44aa06ddc65127ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08354ed101e886e263888c77e99083195dce9ec5cf7eee1c9c2a840913364ce33a0ec31b876ecc1a9d8d258e90ed5a898187646dadc42fb34e7f76238419ef67b1ca09de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008301bd0985010003000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000100030000c001a008dd22431ca711a42e1610c67ccd483cf5414a1bd4ed049ec31d6dcdeb05db7aa0786a9cf4a0f711454a1503a2fa0540f0e01dfb52860fe96d0d9729276a91a766c0c0", - "blockHeader": { - "parentHash": "0x6d2856d5717b0424287a456c509767ebfd7c7cd0821b1918f44aa06ddc65127c", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8354ed101e886e263888c77e99083195dce9ec5cf7eee1c9c2a840913364ce33", - "transactionsTrie": "0xec31b876ecc1a9d8d258e90ed5a898187646dadc42fb34e7f76238419ef67b1c", - "receiptTrie": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x03", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd09", - "timestamp": "0x0100030000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xf49e0f32115c0a94987e512b7136f85a44047571768262e21ede94c43deb34b3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6d2856d5717b0424287a456c509767ebfd7c7cd0821b1918f44aa06ddc65127c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8354ed101e886e263888c77e99083195dce9ec5cf7eee1c9c2a840913364ce33", - "receiptsRoot": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd09", - "timestamp": "0x100030000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf49e0f32115c0a94987e512b7136f85a44047571768262e21ede94c43deb34b3", - "transactions": [ - "0x02f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000100030000c001a008dd22431ca711a42e1610c67ccd483cf5414a1bd4ed049ec31d6dcdeb05db7aa0786a9cf4a0f711454a1503a2fa0540f0e01dfb52860fe96d0d9729276a91a766" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "3", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x02", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000102", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100030000", - "accessList": [], - "v": "0x01", - "r": "0x08dd22431ca711a42e1610c67ccd483cf5414a1bd4ed049ec31d6dcdeb05db7a", - "s": "0x786a9cf4a0f711454a1503a2fa0540f0e01dfb52860fe96d0d9729276a91a766", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a0f49e0f32115c0a94987e512b7136f85a44047571768262e21ede94c43deb34b3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d9111549ed4a12c7ee2e48ab824eaec1aa4c1b27b3826b9d651f895d1ef8316a08e04bef206530db90f6aae85c1dda1ecb6bf13f2fdd8b7e2bc8615842e364dd8a0330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a00008301bd1585010004800080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000100048000c001a0de2086306461b7dd7283b7ccd0d82533b0dc16c8804cb34a5eee55ee9164b3aba075f2d8df6b13607a9ebdef1f10b0fa3e4566b163ec77f84022c090e000c4268dc0c0", - "blockHeader": { - "parentHash": "0xf49e0f32115c0a94987e512b7136f85a44047571768262e21ede94c43deb34b3", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4d9111549ed4a12c7ee2e48ab824eaec1aa4c1b27b3826b9d651f895d1ef8316", - "transactionsTrie": "0x8e04bef206530db90f6aae85c1dda1ecb6bf13f2fdd8b7e2bc8615842e364dd8", - "receiptTrie": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x04", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd15", - "timestamp": "0x0100048000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xa628f305f78f80b52597d19848540208d1fefdda77f7e04dc6c2013dba8231fa" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf49e0f32115c0a94987e512b7136f85a44047571768262e21ede94c43deb34b3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4d9111549ed4a12c7ee2e48ab824eaec1aa4c1b27b3826b9d651f895d1ef8316", - "receiptsRoot": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd15", - "timestamp": "0x100048000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa628f305f78f80b52597d19848540208d1fefdda77f7e04dc6c2013dba8231fa", - "transactions": [ - "0x02f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000100048000c001a0de2086306461b7dd7283b7ccd0d82533b0dc16c8804cb34a5eee55ee9164b3aba075f2d8df6b13607a9ebdef1f10b0fa3e4566b163ec77f84022c090e000c4268d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "4", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x03", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000103", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100048000", - "accessList": [], - "v": "0x01", - "r": "0xde2086306461b7dd7283b7ccd0d82533b0dc16c8804cb34a5eee55ee9164b3ab", - "s": "0x75f2d8df6b13607a9ebdef1f10b0fa3e4566b163ec77f84022c090e000c4268d", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a0a628f305f78f80b52597d19848540208d1fefdda77f7e04dc6c2013dba8231faa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08447d49463e4ba194c531137d2da87111f27169ba591b656f3ce92288e0122a8a02fb437418548c7f494b8d8bb3693ce1552faa75b37a78160dddc6a5da07bfbcba09de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008301bd0985010006000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000100060000c001a0a0e459d0892e070ce4bdbb3cf83ffea013ce236692a1b310752b313b708e182aa02df10124ce90ce0319dcd919a5be0b0f06846eb0471b1200155bf7b302fa3427c0c0", - "blockHeader": { - "parentHash": "0xa628f305f78f80b52597d19848540208d1fefdda77f7e04dc6c2013dba8231fa", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8447d49463e4ba194c531137d2da87111f27169ba591b656f3ce92288e0122a8", - "transactionsTrie": "0x2fb437418548c7f494b8d8bb3693ce1552faa75b37a78160dddc6a5da07bfbcb", - "receiptTrie": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x05", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd09", - "timestamp": "0x0100060000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xdb206d5ceed9133a9b2e821fc42a0eabd4eddbf61a30a2aa5cb2b7d2a19106a0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa628f305f78f80b52597d19848540208d1fefdda77f7e04dc6c2013dba8231fa", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8447d49463e4ba194c531137d2da87111f27169ba591b656f3ce92288e0122a8", - "receiptsRoot": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd09", - "timestamp": "0x100060000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xdb206d5ceed9133a9b2e821fc42a0eabd4eddbf61a30a2aa5cb2b7d2a19106a0", - "transactions": [ - "0x02f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000100060000c001a0a0e459d0892e070ce4bdbb3cf83ffea013ce236692a1b310752b313b708e182aa02df10124ce90ce0319dcd919a5be0b0f06846eb0471b1200155bf7b302fa3427" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "5", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x04", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000104", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100060000", - "accessList": [], - "v": "0x01", - "r": "0xa0e459d0892e070ce4bdbb3cf83ffea013ce236692a1b310752b313b708e182a", - "s": "0x2df10124ce90ce0319dcd919a5be0b0f06846eb0471b1200155bf7b302fa3427", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x60bc9158987f57a6cae732df83926e8c052bbbed85ee0a4ff8306b314ef4e8bc", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x848c1ee809a73afffb6c0f128470a0de0ec93c410d652cd3294ca2c3d5d40143" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a060bc9158987f57a6cae732df83926e8c052bbbed85ee0a4ff8306b314ef4e8bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdb206d5ceed9133a9b2e821fc42a0eabd4eddbf61a30a2aa5cb2b7d2a19106a0", - "network": "Cancun", - "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x", - "storage": {} - } - }, - "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x010000": "0x0100060000", - "0x028000": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611068f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x05", - "balance": "0xffffc32771", - "code": "0x", - "storage": {} - } - }, - "sealEngine": "NoProof" - }, - "004-fork=Cancun-timestamp=4294967296-call_gas=4201-valid_call=True": { - "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" - }, - "blocks": [ - { - "rlp": "0xf902d1f90242a070262a76c3d4cdb892c2fbb12d87721efbb6f9d311fa9b3c275bf8940b269721a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05b8f3fa60e0b1d559b9382b1bacdd7cf53d6c65b5634774a3f67192fbd996172a0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a0ec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301bcfd85010000000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0c0", - "blockHeader": { - "parentHash": "0x70262a76c3d4cdb892c2fbb12d87721efbb6f9d311fa9b3c275bf8940b269721", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5b8f3fa60e0b1d559b9382b1bacdd7cf53d6c65b5634774a3f67192fbd996172", - "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", - "receiptTrie": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bcfd", - "timestamp": "0x0100000000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x42d255600a0e5d432a753588b5d075f02da24d846e2a5c7c202eeb81646388b0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x70262a76c3d4cdb892c2fbb12d87721efbb6f9d311fa9b3c275bf8940b269721", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5b8f3fa60e0b1d559b9382b1bacdd7cf53d6c65b5634774a3f67192fbd996172", - "receiptsRoot": "0xec150835a95e5ae49ea1f60e84a9158f6b05ff9acc2f7ce4218d5077216db323", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bcfd", - "timestamp": "0x100000000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x42d255600a0e5d432a753588b5d075f02da24d846e2a5c7c202eeb81646388b0", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100000000", - "accessList": [], - "v": "0x01", - "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", - "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a042d255600a0e5d432a753588b5d075f02da24d846e2a5c7c202eeb81646388b0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0098d255a419ec1a95df2a9e11fbde2db023c20dd272e4ec06527e457f5cac2e2a07690bd33024cb295957e8c8a313efa86db746a84b3211fd6f94b396cd27f36baa0330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301bd1585010001800080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000100018000c080a0dc7daa685356d4fed7df0b11200ca4654a4998faef5664162b11547907436e98a01ffb68d6923702c18ffbcfe80457c39f727db34e53e392300b1e9c47a9685b00c0c0", - "blockHeader": { - "parentHash": "0x42d255600a0e5d432a753588b5d075f02da24d846e2a5c7c202eeb81646388b0", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x098d255a419ec1a95df2a9e11fbde2db023c20dd272e4ec06527e457f5cac2e2", - "transactionsTrie": "0x7690bd33024cb295957e8c8a313efa86db746a84b3211fd6f94b396cd27f36ba", - "receiptTrie": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x02", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd15", - "timestamp": "0x0100018000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xc26848ab5085cac2a1e9202464fcbebbd89dff295c582b0c9b885f6146d71409" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x42d255600a0e5d432a753588b5d075f02da24d846e2a5c7c202eeb81646388b0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x098d255a419ec1a95df2a9e11fbde2db023c20dd272e4ec06527e457f5cac2e2", - "receiptsRoot": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd15", - "timestamp": "0x100018000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc26848ab5085cac2a1e9202464fcbebbd89dff295c582b0c9b885f6146d71409", - "transactions": [ - "0x02f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000100018000c080a0dc7daa685356d4fed7df0b11200ca4654a4998faef5664162b11547907436e98a01ffb68d6923702c18ffbcfe80457c39f727db34e53e392300b1e9c47a9685b00" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "2", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x01", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000101", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100018000", - "accessList": [], - "v": "0x00", - "r": "0xdc7daa685356d4fed7df0b11200ca4654a4998faef5664162b11547907436e98", - "s": "0x1ffb68d6923702c18ffbcfe80457c39f727db34e53e392300b1e9c47a9685b00", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a0c26848ab5085cac2a1e9202464fcbebbd89dff295c582b0c9b885f6146d71409a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0712cce4415a2578156b7f9db3e9070bb6ddcd6e0709f5819467caf2ae398507fa0ec31b876ecc1a9d8d258e90ed5a898187646dadc42fb34e7f76238419ef67b1ca09de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008301bd0985010003000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000100030000c001a008dd22431ca711a42e1610c67ccd483cf5414a1bd4ed049ec31d6dcdeb05db7aa0786a9cf4a0f711454a1503a2fa0540f0e01dfb52860fe96d0d9729276a91a766c0c0", - "blockHeader": { - "parentHash": "0xc26848ab5085cac2a1e9202464fcbebbd89dff295c582b0c9b885f6146d71409", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x712cce4415a2578156b7f9db3e9070bb6ddcd6e0709f5819467caf2ae398507f", - "transactionsTrie": "0xec31b876ecc1a9d8d258e90ed5a898187646dadc42fb34e7f76238419ef67b1c", - "receiptTrie": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x03", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd09", - "timestamp": "0x0100030000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x2aba2706f7098cd4ab2f2b3da3fa432315c4cab811a1188899dc7a99d023f2f7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc26848ab5085cac2a1e9202464fcbebbd89dff295c582b0c9b885f6146d71409", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x712cce4415a2578156b7f9db3e9070bb6ddcd6e0709f5819467caf2ae398507f", - "receiptsRoot": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd09", - "timestamp": "0x100030000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2aba2706f7098cd4ab2f2b3da3fa432315c4cab811a1188899dc7a99d023f2f7", - "transactions": [ - "0x02f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000100030000c001a008dd22431ca711a42e1610c67ccd483cf5414a1bd4ed049ec31d6dcdeb05db7aa0786a9cf4a0f711454a1503a2fa0540f0e01dfb52860fe96d0d9729276a91a766" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "3", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x02", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000102", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100030000", - "accessList": [], - "v": "0x01", - "r": "0x08dd22431ca711a42e1610c67ccd483cf5414a1bd4ed049ec31d6dcdeb05db7a", - "s": "0x786a9cf4a0f711454a1503a2fa0540f0e01dfb52860fe96d0d9729276a91a766", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a02aba2706f7098cd4ab2f2b3da3fa432315c4cab811a1188899dc7a99d023f2f7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56e394d941cc5c67abd032b86e9c676edd87b144442752edd86148309f4ea23a08e04bef206530db90f6aae85c1dda1ecb6bf13f2fdd8b7e2bc8615842e364dd8a0330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a00008301bd1585010004800080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000100048000c001a0de2086306461b7dd7283b7ccd0d82533b0dc16c8804cb34a5eee55ee9164b3aba075f2d8df6b13607a9ebdef1f10b0fa3e4566b163ec77f84022c090e000c4268dc0c0", - "blockHeader": { - "parentHash": "0x2aba2706f7098cd4ab2f2b3da3fa432315c4cab811a1188899dc7a99d023f2f7", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd56e394d941cc5c67abd032b86e9c676edd87b144442752edd86148309f4ea23", - "transactionsTrie": "0x8e04bef206530db90f6aae85c1dda1ecb6bf13f2fdd8b7e2bc8615842e364dd8", - "receiptTrie": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x04", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd15", - "timestamp": "0x0100048000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x77b5f9db58808f3eb3156bcafd2aa46f1256946498b30a03a08fa1d76e10d4df" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2aba2706f7098cd4ab2f2b3da3fa432315c4cab811a1188899dc7a99d023f2f7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd56e394d941cc5c67abd032b86e9c676edd87b144442752edd86148309f4ea23", - "receiptsRoot": "0x330ccdd21ae6336bd76f8723f47e0b0a8b2d831ef4edb10e29a6207fb9829808", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd15", - "timestamp": "0x100048000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x77b5f9db58808f3eb3156bcafd2aa46f1256946498b30a03a08fa1d76e10d4df", - "transactions": [ - "0x02f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000100048000c001a0de2086306461b7dd7283b7ccd0d82533b0dc16c8804cb34a5eee55ee9164b3aba075f2d8df6b13607a9ebdef1f10b0fa3e4566b163ec77f84022c090e000c4268d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "4", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x03", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000103", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100048000", - "accessList": [], - "v": "0x01", - "r": "0xde2086306461b7dd7283b7ccd0d82533b0dc16c8804cb34a5eee55ee9164b3ab", - "s": "0x75f2d8df6b13607a9ebdef1f10b0fa3e4566b163ec77f84022c090e000c4268d", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a077b5f9db58808f3eb3156bcafd2aa46f1256946498b30a03a08fa1d76e10d4dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03bd4b72196b23319bdf27a947c740303b25dd9c92e893e87529263304270ce76a02fb437418548c7f494b8d8bb3693ce1552faa75b37a78160dddc6a5da07bfbcba09de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008301bd0985010006000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000100060000c001a0a0e459d0892e070ce4bdbb3cf83ffea013ce236692a1b310752b313b708e182aa02df10124ce90ce0319dcd919a5be0b0f06846eb0471b1200155bf7b302fa3427c0c0", - "blockHeader": { - "parentHash": "0x77b5f9db58808f3eb3156bcafd2aa46f1256946498b30a03a08fa1d76e10d4df", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3bd4b72196b23319bdf27a947c740303b25dd9c92e893e87529263304270ce76", - "transactionsTrie": "0x2fb437418548c7f494b8d8bb3693ce1552faa75b37a78160dddc6a5da07bfbcb", - "receiptTrie": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x05", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01bd09", - "timestamp": "0x0100060000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xce1593238604cd45ebae4d21ac77a0f6a1b567016795bc5551e5a3f7b5a9cd2e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x77b5f9db58808f3eb3156bcafd2aa46f1256946498b30a03a08fa1d76e10d4df", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3bd4b72196b23319bdf27a947c740303b25dd9c92e893e87529263304270ce76", - "receiptsRoot": "0x9de66d741eb7c458e4384eac2d6ce18025d104627a090597f096d45e6b794da5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1bd09", - "timestamp": "0x100060000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xce1593238604cd45ebae4d21ac77a0f6a1b567016795bc5551e5a3f7b5a9cd2e", - "transactions": [ - "0x02f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000100060000c001a0a0e459d0892e070ce4bdbb3cf83ffea013ce236692a1b310752b313b708e182aa02df10124ce90ce0319dcd919a5be0b0f06846eb0471b1200155bf7b302fa3427" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "5", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x04", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000104", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100060000", - "accessList": [], - "v": "0x01", - "r": "0xa0e459d0892e070ce4bdbb3cf83ffea013ce236692a1b310752b313b708e182a", - "s": "0x2df10124ce90ce0319dcd919a5be0b0f06846eb0471b1200155bf7b302fa3427", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x777c4be80b9337f2ec2334784d22582c89a6002855a906300db78819452e8b7f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70262a76c3d4cdb892c2fbb12d87721efbb6f9d311fa9b3c275bf8940b269721" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0777c4be80b9337f2ec2334784d22582c89a6002855a906300db78819452e8b7fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xce1593238604cd45ebae4d21ac77a0f6a1b567016795bc5551e5a3f7b5a9cd2e", - "network": "Cancun", - "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x", - "storage": {} - } - }, - "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x010000": "0x0100060000", - "0x028000": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611069f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x00": "0x01", - "0x01": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "0x02": "0x20", - "0x03": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x05", - "balance": "0xffffc32771", - "code": "0x", - "storage": {} - } - }, - "sealEngine": "NoProof" - }, - "005-fork=Cancun-timestamp=4294967296-call_gas=4199-valid_call=False": { - "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" - }, - "blocks": [ - { - "rlp": "0xf902d1f90242a05ee75382c1ebefccfcc14d6493696df84daae99a7f58496bf82330d25a4b41d9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f274abede9385ec3c8b4781ff1bc011d4edb2917db4a8e71093e3d8629c2d293a0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a03ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301218185010000000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0c0", - "blockHeader": { - "parentHash": "0x5ee75382c1ebefccfcc14d6493696df84daae99a7f58496bf82330d25a4b41d9", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf274abede9385ec3c8b4781ff1bc011d4edb2917db4a8e71093e3d8629c2d293", - "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", - "receiptTrie": "0x3ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x012181", - "timestamp": "0x0100000000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xd46c794efa6c39a3651598bfbd85bbfa8d5e7aad8a43e23ba0773f293a608029" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5ee75382c1ebefccfcc14d6493696df84daae99a7f58496bf82330d25a4b41d9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf274abede9385ec3c8b4781ff1bc011d4edb2917db4a8e71093e3d8629c2d293", - "receiptsRoot": "0x3ce578721553c97dac85dd3430558186453463388c47a75b0dcddfba2a61e6c7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x12181", - "timestamp": "0x100000000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd46c794efa6c39a3651598bfbd85bbfa8d5e7aad8a43e23ba0773f293a608029", - "transactions": [ - "0x02f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100000000", - "accessList": [], - "v": "0x01", - "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", - "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a0d46c794efa6c39a3651598bfbd85bbfa8d5e7aad8a43e23ba0773f293a608029a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08b76702a913ff2e812f7841db6c92e960db1b461b191ba1c6c08f9901364cf35a07690bd33024cb295957e8c8a313efa86db746a84b3211fd6f94b396cd27f36baa02cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301219985010001800080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000100018000c080a0dc7daa685356d4fed7df0b11200ca4654a4998faef5664162b11547907436e98a01ffb68d6923702c18ffbcfe80457c39f727db34e53e392300b1e9c47a9685b00c0c0", - "blockHeader": { - "parentHash": "0xd46c794efa6c39a3651598bfbd85bbfa8d5e7aad8a43e23ba0773f293a608029", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8b76702a913ff2e812f7841db6c92e960db1b461b191ba1c6c08f9901364cf35", - "transactionsTrie": "0x7690bd33024cb295957e8c8a313efa86db746a84b3211fd6f94b396cd27f36ba", - "receiptTrie": "0x2cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01f", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x02", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x012199", - "timestamp": "0x0100018000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xa34dd406e62433a11810cdc754301d6ecad33f3965e21466328f779e0dd5ec25" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd46c794efa6c39a3651598bfbd85bbfa8d5e7aad8a43e23ba0773f293a608029", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8b76702a913ff2e812f7841db6c92e960db1b461b191ba1c6c08f9901364cf35", - "receiptsRoot": "0x2cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x12199", - "timestamp": "0x100018000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa34dd406e62433a11810cdc754301d6ecad33f3965e21466328f779e0dd5ec25", - "transactions": [ - "0x02f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000100018000c080a0dc7daa685356d4fed7df0b11200ca4654a4998faef5664162b11547907436e98a01ffb68d6923702c18ffbcfe80457c39f727db34e53e392300b1e9c47a9685b00" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "2", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x01", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000101", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100018000", - "accessList": [], - "v": "0x00", - "r": "0xdc7daa685356d4fed7df0b11200ca4654a4998faef5664162b11547907436e98", - "s": "0x1ffb68d6923702c18ffbcfe80457c39f727db34e53e392300b1e9c47a9685b00", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a0a34dd406e62433a11810cdc754301d6ecad33f3965e21466328f779e0dd5ec25a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dbfc5d5a4fe851cd3db80b2b605ebc8b85a37b5b0b8c9e762f164e7bf7917cb5a0ec31b876ecc1a9d8d258e90ed5a898187646dadc42fb34e7f76238419ef67b1ca0112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008301218d85010003000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000100030000c001a008dd22431ca711a42e1610c67ccd483cf5414a1bd4ed049ec31d6dcdeb05db7aa0786a9cf4a0f711454a1503a2fa0540f0e01dfb52860fe96d0d9729276a91a766c0c0", - "blockHeader": { - "parentHash": "0xa34dd406e62433a11810cdc754301d6ecad33f3965e21466328f779e0dd5ec25", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdbfc5d5a4fe851cd3db80b2b605ebc8b85a37b5b0b8c9e762f164e7bf7917cb5", - "transactionsTrie": "0xec31b876ecc1a9d8d258e90ed5a898187646dadc42fb34e7f76238419ef67b1c", - "receiptTrie": "0x112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x03", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01218d", - "timestamp": "0x0100030000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x9b8488afdb1862329ed54b9f68929227939b41fc14cb14cee6822e6fd08e6ffd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa34dd406e62433a11810cdc754301d6ecad33f3965e21466328f779e0dd5ec25", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdbfc5d5a4fe851cd3db80b2b605ebc8b85a37b5b0b8c9e762f164e7bf7917cb5", - "receiptsRoot": "0x112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1218d", - "timestamp": "0x100030000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9b8488afdb1862329ed54b9f68929227939b41fc14cb14cee6822e6fd08e6ffd", - "transactions": [ - "0x02f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000100030000c001a008dd22431ca711a42e1610c67ccd483cf5414a1bd4ed049ec31d6dcdeb05db7aa0786a9cf4a0f711454a1503a2fa0540f0e01dfb52860fe96d0d9729276a91a766" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "3", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x02", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000102", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100030000", - "accessList": [], - "v": "0x01", - "r": "0x08dd22431ca711a42e1610c67ccd483cf5414a1bd4ed049ec31d6dcdeb05db7a", - "s": "0x786a9cf4a0f711454a1503a2fa0540f0e01dfb52860fe96d0d9729276a91a766", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a09b8488afdb1862329ed54b9f68929227939b41fc14cb14cee6822e6fd08e6ffda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa019637198ec23dd1865147f9c40e6ef08596a92f99838dd0a80858e7cf0cc2d56a08e04bef206530db90f6aae85c1dda1ecb6bf13f2fdd8b7e2bc8615842e364dd8a02cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a00008301219985010004800080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000100048000c001a0de2086306461b7dd7283b7ccd0d82533b0dc16c8804cb34a5eee55ee9164b3aba075f2d8df6b13607a9ebdef1f10b0fa3e4566b163ec77f84022c090e000c4268dc0c0", - "blockHeader": { - "parentHash": "0x9b8488afdb1862329ed54b9f68929227939b41fc14cb14cee6822e6fd08e6ffd", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x19637198ec23dd1865147f9c40e6ef08596a92f99838dd0a80858e7cf0cc2d56", - "transactionsTrie": "0x8e04bef206530db90f6aae85c1dda1ecb6bf13f2fdd8b7e2bc8615842e364dd8", - "receiptTrie": "0x2cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01f", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x04", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x012199", - "timestamp": "0x0100048000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0x784b37454a3a5230ce2ced9bae7decda7eaf1583a6e15dcff136ad3114e21a78" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9b8488afdb1862329ed54b9f68929227939b41fc14cb14cee6822e6fd08e6ffd", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x19637198ec23dd1865147f9c40e6ef08596a92f99838dd0a80858e7cf0cc2d56", - "receiptsRoot": "0x2cef6ca26e19b89793561079c90c56083f528cf69e210b3e3fcd015e8629f01f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x12199", - "timestamp": "0x100048000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x784b37454a3a5230ce2ced9bae7decda7eaf1583a6e15dcff136ad3114e21a78", - "transactions": [ - "0x02f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000100048000c001a0de2086306461b7dd7283b7ccd0d82533b0dc16c8804cb34a5eee55ee9164b3aba075f2d8df6b13607a9ebdef1f10b0fa3e4566b163ec77f84022c090e000c4268d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "4", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x03", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000103", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100048000", - "accessList": [], - "v": "0x01", - "r": "0xde2086306461b7dd7283b7ccd0d82533b0dc16c8804cb34a5eee55ee9164b3ab", - "s": "0x75f2d8df6b13607a9ebdef1f10b0fa3e4566b163ec77f84022c090e000c4268d", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - }, - { - "rlp": "0xf902d1f90242a0784b37454a3a5230ce2ced9bae7decda7eaf1583a6e15dcff136ad3114e21a78a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0493048f5105057d057ae45386b861d73f177116b47324eca80b65802563e358aa02fb437418548c7f494b8d8bb3693ce1552faa75b37a78160dddc6a5da07bfbcba0112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008301218d85010006000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a03e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249ff888b88602f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000100060000c001a0a0e459d0892e070ce4bdbb3cf83ffea013ce236692a1b310752b313b708e182aa02df10124ce90ce0319dcd919a5be0b0f06846eb0471b1200155bf7b302fa3427c0c0", - "blockHeader": { - "parentHash": "0x784b37454a3a5230ce2ced9bae7decda7eaf1583a6e15dcff136ad3114e21a78", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x493048f5105057d057ae45386b861d73f177116b47324eca80b65802563e358a", - "transactionsTrie": "0x2fb437418548c7f494b8d8bb3693ce1552faa75b37a78160dddc6a5da07bfbcb", - "receiptTrie": "0x112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x05", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01218d", - "timestamp": "0x0100060000", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f", - "hash": "0xe7ea932881c37b3fea4de60ec876ec817d1d31c7350b51e39eb78ef9fedb5954" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x784b37454a3a5230ce2ced9bae7decda7eaf1583a6e15dcff136ad3114e21a78", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x493048f5105057d057ae45386b861d73f177116b47324eca80b65802563e358a", - "receiptsRoot": "0x112a7448800a3a80e55a1461b0bca46189c87c911b329b8de16b85c3d782d4d5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1218d", - "timestamp": "0x100060000", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe7ea932881c37b3fea4de60ec876ec817d1d31c7350b51e39eb78ef9fedb5954", - "transactions": [ - "0x02f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000100060000c001a0a0e459d0892e070ce4bdbb3cf83ffea013ce236692a1b310752b313b708e182aa02df10124ce90ce0319dcd919a5be0b0f06846eb0471b1200155bf7b302fa3427" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - }, - "blocknumber": "5", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x04", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000104", - "value": "0x00", - "data": "0x0000000000000000000000000000000000000000000000000000000100060000", - "accessList": [], - "v": "0x01", - "r": "0xa0e459d0892e070ce4bdbb3cf83ffea013ce236692a1b310752b313b708e182a", - "s": "0x2df10124ce90ce0319dcd919a5be0b0f06846eb0471b1200155bf7b302fa3427", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5621a17fe90ddd43a00cbfe59c30bc1a932c7a98a8d03196ec8ccea54c74ec58", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5ee75382c1ebefccfcc14d6493696df84daae99a7f58496bf82330d25a4b41d9" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05621a17fe90ddd43a00cbfe59c30bc1a932c7a98a8d03196ec8ccea54c74ec58a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe7ea932881c37b3fea4de60ec876ec817d1d31c7350b51e39eb78ef9fedb5954", - "network": "Cancun", - "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x", - "storage": {} - } - }, - "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x010000": "0x0100060000", - "0x028000": "0x3e97e493f9123f7455a3be1b388db32876beea7d165a3b63528d8f9a38b7249f" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x0100000000", - "0x03": "0x0100000000" - } - }, - "0x0000000000000000000000000000000000000101": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x0100018000", - "0x03": "0x0100018000" - } - }, - "0x0000000000000000000000000000000000000102": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x0100030000", - "0x03": "0x0100030000" - } - }, - "0x0000000000000000000000000000000000000103": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x0100048000", - "0x03": "0x0100048000" - } - }, - "0x0000000000000000000000000000000000000104": { - "nonce": "0x00", - "balance": "0x010000000000", - "code": "0x366000600037602060003660006000600b611067f16000556000516001553d6002553d600060003e600051600355", - "storage": { - "0x01": "0x0100060000", - "0x03": "0x0100060000" - } - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x05", - "balance": "0xffffd86965", - "code": "0x", - "storage": {} - } - }, - "sealEngine": "NoProof" - } -} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json new file mode 100644 index 00000000000..8c652984ec5 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_contract_deploy.json @@ -0,0 +1,445 @@ +{ + "000-fork=ShanghaiToCancunAtTime15k-deploy_on_shanghai": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07aa3de3b8d1e6949ab31772b27e6b4b2aff9df19f557e542de4e73dc404d026ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7aa3de3b8d1e6949ab31772b27e6b4b2aff9df19f557e542de4e73dc404d026c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x7d78488cdb2d75f66cea94a95b23c5c4764ad9247775508f3a75308447b1ced8" + }, + "blocks": [ + { + "rlp": "0xf902daf9021ca07d78488cdb2d75f66cea94a95b23c5c4764ad9247775508f3a75308447b1ced8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b2bc88d6f6337f6097ac76a43fc6e1a2aad390c4d8e80419455dd826e35647aea0d87da2b23fc7bbfa7e2994ee830e73325af892d036e2e5d90d9f17ff2dd41d9da0d5caddb93c844bd1c4a6364ec17b3f09afea9b2f335d8aba110ef6b0c9d9bfebb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083012164821d4c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf885f8838085e8d4a510008303d0908080b86a60618060095f395ff33373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff0155001b820539851b9b6eb1f0c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x7d78488cdb2d75f66cea94a95b23c5c4764ad9247775508f3a75308447b1ced8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb2bc88d6f6337f6097ac76a43fc6e1a2aad390c4d8e80419455dd826e35647ae", + "transactionsTrie": "0xd87da2b23fc7bbfa7e2994ee830e73325af892d036e2e5d90d9f17ff2dd41d9d", + "receiptTrie": "0xd5caddb93c844bd1c4a6364ec17b3f09afea9b2f335d8aba110ef6b0c9d9bfeb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x012164", + "timestamp": "0x1d4c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x81bfef792658e8b8e2765d0fedd75d1c28048f3abb21b52f53126bd9cc73f501" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0xe8d4a51000", + "gasLimit": "0x03d090", + "to": "", + "value": "0x00", + "data": "0x60618060095f395ff33373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "v": "0x1b", + "r": "0x0539", + "s": "0x1b9b6eb1f0", + "sender": "0x0b799c86a49deeb90402691f1041aa3af2d3c875" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa081bfef792658e8b8e2765d0fedd75d1c28048f3abb21b52f53126bd9cc73f501a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0db77e53c53956bfe3e356c40a0ca29e3c06f64217cdae8c364fbf071eb6614e7a064491dfba31aa11099c81e1c7c95f0818b4f927d4b3552143a25ea44512fe125a01ccaf316c85ab72468f194a8a6bf7f7cac5730696d7dd3a5dc298fac47cfe273b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301c748823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0d21739e00fbe6b25846bb8079ed6fd6533baa1e8b127b158f651ae16edac1f108080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000003a98c001a0faa933f2812dcf366269cdad3b8bdbf6d293fe5dcd0d3313089d619e99b77c2ea0541ff2b494d5a6856ee685c0647a47b60a6eb7823dd0b72c74123ea33f0e4e41c0f2d8028094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8030194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x81bfef792658e8b8e2765d0fedd75d1c28048f3abb21b52f53126bd9cc73f501", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdb77e53c53956bfe3e356c40a0ca29e3c06f64217cdae8c364fbf071eb6614e7", + "transactionsTrie": "0x64491dfba31aa11099c81e1c7c95f0818b4f927d4b3552143a25ea44512fe125", + "receiptTrie": "0x1ccaf316c85ab72468f194a8a6bf7f7cac5730696d7dd3a5dc298fac47cfe273", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c748", + "timestamp": "0x3a98", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xd21739e00fbe6b25846bb8079ed6fd6533baa1e8b127b158f651ae16edac1f10", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x9182d2f5db4ed12bb138e1af1eed318743af4580bd2b3f06b2ba583307195ef3" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000003a98", + "accessList": [], + "v": "0x01", + "r": "0xfaa933f2812dcf366269cdad3b8bdbf6d293fe5dcd0d3313089d619e99b77c2e", + "s": "0x541ff2b494d5a6856ee685c0647a47b60a6eb7823dd0b72c74123ea33f0e4e41", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x02", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x03", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x9182d2f5db4ed12bb138e1af1eed318743af4580bd2b3f06b2ba583307195ef3", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0x0b799c86a49deeb90402691f1041aa3af2d3c875": { + "nonce": "0x00", + "balance": "0x03782dace9d90000", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x77359400", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x1a99": "0x3a98", + "0x3a98": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x0b799c86a49deeb90402691f1041aa3af2d3c875": { + "nonce": "0x01", + "balance": "0x0270faab824ec000", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0107330167825644", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d08", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x77359400", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=ShanghaiToCancunAtTime15k-deploy_on_cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07aa3de3b8d1e6949ab31772b27e6b4b2aff9df19f557e542de4e73dc404d026ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7aa3de3b8d1e6949ab31772b27e6b4b2aff9df19f557e542de4e73dc404d026c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x7d78488cdb2d75f66cea94a95b23c5c4764ad9247775508f3a75308447b1ced8" + }, + "blocks": [ + { + "rlp": "0xf902fdf9023fa07d78488cdb2d75f66cea94a95b23c5c4764ad9247775508f3a75308447b1ced8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b2bc88d6f6337f6097ac76a43fc6e1a2aad390c4d8e80419455dd826e35647aea0d87da2b23fc7bbfa7e2994ee830e73325af892d036e2e5d90d9f17ff2dd41d9da0d5caddb93c844bd1c4a6364ec17b3f09afea9b2f335d8aba110ef6b0c9d9bfebb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083012164823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff885f8838085e8d4a510008303d0908080b86a60618060095f395ff33373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff0155001b820539851b9b6eb1f0c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x7d78488cdb2d75f66cea94a95b23c5c4764ad9247775508f3a75308447b1ced8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb2bc88d6f6337f6097ac76a43fc6e1a2aad390c4d8e80419455dd826e35647ae", + "transactionsTrie": "0xd87da2b23fc7bbfa7e2994ee830e73325af892d036e2e5d90d9f17ff2dd41d9d", + "receiptTrie": "0xd5caddb93c844bd1c4a6364ec17b3f09afea9b2f335d8aba110ef6b0c9d9bfeb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x012164", + "timestamp": "0x3a98", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xb00548c52e692561d8829350e2a92e7e5d42049bb8002eb90482af52a92b99ef" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0xe8d4a51000", + "gasLimit": "0x03d090", + "to": "", + "value": "0x00", + "data": "0x60618060095f395ff33373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "v": "0x1b", + "r": "0x0539", + "s": "0x1b9b6eb1f0", + "sender": "0x0b799c86a49deeb90402691f1041aa3af2d3c875" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0b00548c52e692561d8829350e2a92e7e5d42049bb8002eb90482af52a92b99efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0685fa25415c775ddd60a0b2fbc72e1d0547b2fb52e2e6394e1a98029867fc794a0387f60e7f39304df7b59884c5a0bbeafe3929a243a91902599d2dca0ff76ee63a01ccaf316c85ab72468f194a8a6bf7f7cac5730696d7dd3a5dc298fac47cfe273b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301c74882753080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0d21739e00fbe6b25846bb8079ed6fd6533baa1e8b127b158f651ae16edac1f108080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000007530c001a0be320ea113ae1b3a5c09485a35a9d82454abf7fb845b7965ae9157b70bd6f05aa02c123e499090d51f5aa922637d22f81ddb4fcd9696f4837e3b62d3af7944264cc0f2d8028094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8030194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xb00548c52e692561d8829350e2a92e7e5d42049bb8002eb90482af52a92b99ef", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x685fa25415c775ddd60a0b2fbc72e1d0547b2fb52e2e6394e1a98029867fc794", + "transactionsTrie": "0x387f60e7f39304df7b59884c5a0bbeafe3929a243a91902599d2dca0ff76ee63", + "receiptTrie": "0x1ccaf316c85ab72468f194a8a6bf7f7cac5730696d7dd3a5dc298fac47cfe273", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01c748", + "timestamp": "0x7530", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xd21739e00fbe6b25846bb8079ed6fd6533baa1e8b127b158f651ae16edac1f10", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xe13ca7335d94aa20d689029625668f308fe76fdc0bde59e3de47a9e5256bb250" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000007530", + "accessList": [], + "v": "0x01", + "r": "0xbe320ea113ae1b3a5c09485a35a9d82454abf7fb845b7965ae9157b70bd6f05a", + "s": "0x2c123e499090d51f5aa922637d22f81ddb4fcd9696f4837e3b62d3af7944264c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x02", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x03", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0xe13ca7335d94aa20d689029625668f308fe76fdc0bde59e3de47a9e5256bb250", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0x0b799c86a49deeb90402691f1041aa3af2d3c875": { + "nonce": "0x00", + "balance": "0x03782dace9d90000", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x20", + "0x03": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x77359400", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x1533": "0x7530", + "0x3532": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x0b799c86a49deeb90402691f1041aa3af2d3c875": { + "nonce": "0x01", + "balance": "0x0270faab824ec000", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0107330167825644", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffff38d08", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x77359400", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json new file mode 100644 index 00000000000..c78b55ec797 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/beacon_root_transition.json @@ -0,0 +1,1528 @@ +{ + "000-fork=ShanghaiToCancunAtTime15k-block_count=20-fork_transition": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08e9dc8623b57b977818cfd1703a114f4484355b1b2d0fe850fc29163c9929b4da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8e9dc8623b57b977818cfd1703a114f4484355b1b2d0fe850fc29163c9929b4d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xe4d2ec811605e267df9a7cd8237985e04072b01fb9c954041f89d70adf0332d9" + }, + "blocks": [ + { + "rlp": "0xf902dcf9021ba0e4d2ec811605e267df9a7cd8237985e04072b01fb9c954041f89d70adf0332d9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0038b7b7708c25d3716012becc4298134748f18672ee4b56a2dfb7d5321fa7cdba090193e2fad639d5255e4ff6c1e9210e562d40195c56b225d69944e4e6e21adcda00b0aa39cb925ab6f5d319a759912157cc79cf766f429bc7d71be27a7b220a8aeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008276c48203e880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301808007830f424094000000000000000000000000000000000000010080a000000000000000000000000000000000000000000000000000000000000003e8c080a00f797ef056bd47f4d9deeaa9a818d99a8f2c777c8d461c08da00e5dd3e8a2aaba0404b55ae9fbb52c8de1fe5de4ee9ecacdd0bc60aed972663248438e8b0f3004ac0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xe4d2ec811605e267df9a7cd8237985e04072b01fb9c954041f89d70adf0332d9", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x038b7b7708c25d3716012becc4298134748f18672ee4b56a2dfb7d5321fa7cdb", + "transactionsTrie": "0x90193e2fad639d5255e4ff6c1e9210e562d40195c56b225d69944e4e6e21adcd", + "receiptTrie": "0x0b0aa39cb925ab6f5d319a759912157cc79cf766f429bc7d71be27a7b220a8ae", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x76c4", + "timestamp": "0x03e8", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x8372c17cf56913b24eec4e686ab0f05a5a90dfdad197e5a9831ef67f9c31c1ca" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00000000000000000000000000000000000000000000000000000000000003e8", + "accessList": [], + "v": "0x00", + "r": "0x0f797ef056bd47f4d9deeaa9a818d99a8f2c777c8d461c08da00e5dd3e8a2aab", + "s": "0x404b55ae9fbb52c8de1fe5de4ee9ecacdd0bc60aed972663248438e8b0f3004a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902dcf9021ba08372c17cf56913b24eec4e686ab0f05a5a90dfdad197e5a9831ef67f9c31c1caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dfb017c8cf68b564c335a4aa10e96b7eca8de6198d6eef21aaeac5c142de8811a0087d6e92836f601207483c76418a9dd98e24fd76b6834eb86f1ee46bab89ebcea0d7a6d2823c658bb7d1ecaabf32f748c9dd3caf5b3f4e4bb8505b9c3ad5189ff8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082911e8207d080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301018007830f424094000000000000000000000000000000000000010180a000000000000000000000000000000000000000000000000000000000000007d0c001a03febbbd552e05afb7719f3fa56c77c7359211a64121e6e1257566a6502d89cbba07499d6869f8096b2172c1230e2fe5284e061d4d5b2b4d4d59794c1c64ee7da6fc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x8372c17cf56913b24eec4e686ab0f05a5a90dfdad197e5a9831ef67f9c31c1ca", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdfb017c8cf68b564c335a4aa10e96b7eca8de6198d6eef21aaeac5c142de8811", + "transactionsTrie": "0x087d6e92836f601207483c76418a9dd98e24fd76b6834eb86f1ee46bab89ebce", + "receiptTrie": "0xd7a6d2823c658bb7d1ecaabf32f748c9dd3caf5b3f4e4bb8505b9c3ad5189ff8", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x911e", + "timestamp": "0x07d0", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x2c363ec12fb18f6b6264686d8a64468b0ec7ba87195f7e5fdf1ecb60bb011285" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000101", + "value": "0x00", + "data": "0x00000000000000000000000000000000000000000000000000000000000007d0", + "accessList": [], + "v": "0x01", + "r": "0x3febbbd552e05afb7719f3fa56c77c7359211a64121e6e1257566a6502d89cbb", + "s": "0x7499d6869f8096b2172c1230e2fe5284e061d4d5b2b4d4d59794c1c64ee7da6f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902dcf9021ba02c363ec12fb18f6b6264686d8a64468b0ec7ba87195f7e5fdf1ecb60bb011285a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02931fd8ef0f1e735b7ee30945d76ba4177192e8af7b983b2a2618d173fca9536a0a1a7a18e94d8c64080abe0a16cd2ab0e50fefcf1e51231ce489963faec49ae05a0c52a0adde72ccc1fcd652549b22192c74424262e1e5128e72fe801803ccb9586b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082ab78820bb880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000000000bb8c001a0bb24150bf59c6fd59a4fca0c29dd174b2136a265cfa35c174a500e99b313de56a075ee63584ee9c09f5e82b6d8a4ab36a396459de1b602939740f9c33eab98ed2bc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x2c363ec12fb18f6b6264686d8a64468b0ec7ba87195f7e5fdf1ecb60bb011285", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2931fd8ef0f1e735b7ee30945d76ba4177192e8af7b983b2a2618d173fca9536", + "transactionsTrie": "0xa1a7a18e94d8c64080abe0a16cd2ab0e50fefcf1e51231ce489963faec49ae05", + "receiptTrie": "0xc52a0adde72ccc1fcd652549b22192c74424262e1e5128e72fe801803ccb9586", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x03", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xab78", + "timestamp": "0x0bb8", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x6e4562712dd01bf64a341aeaaca1fd2db7dca6336d755b514d449c3db55a7823" + }, + "blocknumber": "3", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000102", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000bb8", + "accessList": [], + "v": "0x01", + "r": "0xbb24150bf59c6fd59a4fca0c29dd174b2136a265cfa35c174a500e99b313de56", + "s": "0x75ee63584ee9c09f5e82b6d8a4ab36a396459de1b602939740f9c33eab98ed2b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902dcf9021ba06e4562712dd01bf64a341aeaaca1fd2db7dca6336d755b514d449c3db55a7823a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0515901b74294235cf912b970b07638acc7f43bb3c585e948f7a965eec4c7a5aaa00c3ad8628f759d6f769b0e12e3f4f5e0770f03825a5e637d503742304c4292b4a0bc0489ec10ab252b32a263826c4ca7bd7858f9b01db1809e23099b7b94f7c143b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082c5d2820fa080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000000000fa0c001a039a4b4950c38aacc8387edecd99ecc1255f1592ecfc27a0b991995986e85a2a1a058ef8ee35e8132d6d27ffdf2afb0f3cec025cb0c72d7f960bc145e5003412185c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x6e4562712dd01bf64a341aeaaca1fd2db7dca6336d755b514d449c3db55a7823", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x515901b74294235cf912b970b07638acc7f43bb3c585e948f7a965eec4c7a5aa", + "transactionsTrie": "0x0c3ad8628f759d6f769b0e12e3f4f5e0770f03825a5e637d503742304c4292b4", + "receiptTrie": "0xbc0489ec10ab252b32a263826c4ca7bd7858f9b01db1809e23099b7b94f7c143", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x04", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xc5d2", + "timestamp": "0x0fa0", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x91ee485cbe5cdb49ea77a953ec422ecb4d267dfd7fe854792a29cccf05577127" + }, + "blocknumber": "4", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000103", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000fa0", + "accessList": [], + "v": "0x01", + "r": "0x39a4b4950c38aacc8387edecd99ecc1255f1592ecfc27a0b991995986e85a2a1", + "s": "0x58ef8ee35e8132d6d27ffdf2afb0f3cec025cb0c72d7f960bc145e5003412185", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902dcf9021ba091ee485cbe5cdb49ea77a953ec422ecb4d267dfd7fe854792a29cccf05577127a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa041181980588c5de481779196df373e39d9316d173fdb88e5f745a0403bb6bb12a0733ea94c6793f8f9d79fb7879e3af1a0a8398b2f282f3ddc6e843a7f3b94b20fa0ff48604ed7e4ab11af287acde03252b0968ed954cb4fd0bd198aee270912b03bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082e02c82138880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000000001388c001a03d02c26917c9cfdaee63dbca380c4913cdd8a15d427b1b6c66293564ca361363a0762be53b11796b6941d10e3c53283f84118a4aa42185b8858847f725730389a7c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x91ee485cbe5cdb49ea77a953ec422ecb4d267dfd7fe854792a29cccf05577127", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x41181980588c5de481779196df373e39d9316d173fdb88e5f745a0403bb6bb12", + "transactionsTrie": "0x733ea94c6793f8f9d79fb7879e3af1a0a8398b2f282f3ddc6e843a7f3b94b20f", + "receiptTrie": "0xff48604ed7e4ab11af287acde03252b0968ed954cb4fd0bd198aee270912b03b", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x05", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xe02c", + "timestamp": "0x1388", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x7c807c75f61eb237aa1f57a957dcea57530a6d5dac5e3aadd8bc5e4137d7a247" + }, + "blocknumber": "5", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000104", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001388", + "accessList": [], + "v": "0x01", + "r": "0x3d02c26917c9cfdaee63dbca380c4913cdd8a15d427b1b6c66293564ca361363", + "s": "0x762be53b11796b6941d10e3c53283f84118a4aa42185b8858847f725730389a7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902dcf9021ba07c807c75f61eb237aa1f57a957dcea57530a6d5dac5e3aadd8bc5e4137d7a247a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0362e8a3909647ee1186b5faad113f670993e2bbfb443217d04674a9a1489a4dea0cbe22da0f22aedba3830d8cf56cddd7cbdd5cd8142319731cccba93b619582dea0f03b63b3ea9445dfc60c9db5f7477c0fd0cc4a0f4210c7e1db5c17cbd9db1caab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082fa8682177080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301058007830f424094000000000000000000000000000000000000010580a00000000000000000000000000000000000000000000000000000000000001770c080a0ac9ee4a4ef132e4d28e0792d0db5a6c3ea9a39112f5519e487f0a3d604c2e9dfa0078ab6cba3a47315b93eca096ce18b52ad6f5311aacfd11627c71b8b094b09afc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x7c807c75f61eb237aa1f57a957dcea57530a6d5dac5e3aadd8bc5e4137d7a247", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x362e8a3909647ee1186b5faad113f670993e2bbfb443217d04674a9a1489a4de", + "transactionsTrie": "0xcbe22da0f22aedba3830d8cf56cddd7cbdd5cd8142319731cccba93b619582de", + "receiptTrie": "0xf03b63b3ea9445dfc60c9db5f7477c0fd0cc4a0f4210c7e1db5c17cbd9db1caa", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x06", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xfa86", + "timestamp": "0x1770", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x15b736c42ad9808601ea252ab64aaf48efbccb49734a44e0ff322b3b8e9c86ef" + }, + "blocknumber": "6", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000105", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001770", + "accessList": [], + "v": "0x00", + "r": "0xac9ee4a4ef132e4d28e0792d0db5a6c3ea9a39112f5519e487f0a3d604c2e9df", + "s": "0x078ab6cba3a47315b93eca096ce18b52ad6f5311aacfd11627c71b8b094b09af", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902ddf9021ca015b736c42ad9808601ea252ab64aaf48efbccb49734a44e0ff322b3b8e9c86efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0954c677449fe9632cc1c329d0fc63b45897979600675cc88c6fb198847c48c23a00059af6a1ee4b35dfb34a5c09551ecde3db50f607f827d040cb9a75dc20a856ca086a8d69fd9d3a0775755ac5c46a6531da10dc8d9073e9ead7651063c5d3888acb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a0000830114e0821b5880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301068007830f424094000000000000000000000000000000000000010680a00000000000000000000000000000000000000000000000000000000000001b58c080a04e807f929e15ca90a81f25685d954cefd6cb840142164a97a2e2647546c50920a003cbe2a50488779300e0a053b04efb37b5e0dfec52dba8f175479b970882cda3c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x15b736c42ad9808601ea252ab64aaf48efbccb49734a44e0ff322b3b8e9c86ef", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x954c677449fe9632cc1c329d0fc63b45897979600675cc88c6fb198847c48c23", + "transactionsTrie": "0x0059af6a1ee4b35dfb34a5c09551ecde3db50f607f827d040cb9a75dc20a856c", + "receiptTrie": "0x86a8d69fd9d3a0775755ac5c46a6531da10dc8d9073e9ead7651063c5d3888ac", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x07", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0114e0", + "timestamp": "0x1b58", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x2098631789c808cd31c44e4a9088001e3cd50d043ba02407466bb1bfa20022af" + }, + "blocknumber": "7", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x06", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000106", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001b58", + "accessList": [], + "v": "0x00", + "r": "0x4e807f929e15ca90a81f25685d954cefd6cb840142164a97a2e2647546c50920", + "s": "0x03cbe2a50488779300e0a053b04efb37b5e0dfec52dba8f175479b970882cda3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902ddf9021ca02098631789c808cd31c44e4a9088001e3cd50d043ba02407466bb1bfa20022afa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f44d4476d31dfdd8477d86a18441bfc532576a649258fff3a0bfa2bc9b0135e4a0beee886f20ec6e2bed043b8e5dad0193b65c7134f0918a2a8a74c60ee95871aba0291095db52350a34de922b0d94d99c78af43363dd7a15a3975da5d649ef809afb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000083012f3a821f4080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301078007830f424094000000000000000000000000000000000000010780a00000000000000000000000000000000000000000000000000000000000001f40c001a0a089f85ed88ef75c2cd73ce094b642d387c044b2fa1151a7fa3875a8b84d19dea04ca45fea2f62eaad5ab58a7272f7d72ab7a6d7d346ebf64f037e04ebe79681ccc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x2098631789c808cd31c44e4a9088001e3cd50d043ba02407466bb1bfa20022af", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf44d4476d31dfdd8477d86a18441bfc532576a649258fff3a0bfa2bc9b0135e4", + "transactionsTrie": "0xbeee886f20ec6e2bed043b8e5dad0193b65c7134f0918a2a8a74c60ee95871ab", + "receiptTrie": "0x291095db52350a34de922b0d94d99c78af43363dd7a15a3975da5d649ef809af", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x08", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x012f3a", + "timestamp": "0x1f40", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0xc814d61a3c862255fc035e82fa66231a9895e81705df192976fd0fed4d328801" + }, + "blocknumber": "8", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x07", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000107", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001f40", + "accessList": [], + "v": "0x01", + "r": "0xa089f85ed88ef75c2cd73ce094b642d387c044b2fa1151a7fa3875a8b84d19de", + "s": "0x4ca45fea2f62eaad5ab58a7272f7d72ab7a6d7d346ebf64f037e04ebe79681cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902ddf9021ca0c814d61a3c862255fc035e82fa66231a9895e81705df192976fd0fed4d328801a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ade7a41219e3f37d0376c92b27097406d4a035df4cd1ce93ef4f4576e1b2882a05853ef853431eb77a3e6e4e3b871d87a524cc5f3cb3dbcd5b9f11290789adcf0a099fd14675d3eb31d2a9ee89b16c2288a57c9b3e27add43502054837937a74ae1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008301499482232880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301088007830f424094000000000000000000000000000000000000010880a00000000000000000000000000000000000000000000000000000000000002328c001a0306604484984b964879cef0035c3467b41c7d228f4fd922bfd2b6463ed6bef2fa01b63a77f562b53fb9cbd5270dfb426141f30013a7f9dfdd4738432745d3ca7cdc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xc814d61a3c862255fc035e82fa66231a9895e81705df192976fd0fed4d328801", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5ade7a41219e3f37d0376c92b27097406d4a035df4cd1ce93ef4f4576e1b2882", + "transactionsTrie": "0x5853ef853431eb77a3e6e4e3b871d87a524cc5f3cb3dbcd5b9f11290789adcf0", + "receiptTrie": "0x99fd14675d3eb31d2a9ee89b16c2288a57c9b3e27add43502054837937a74ae1", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x09", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014994", + "timestamp": "0x2328", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x40757087afcc7b560a6a8741b916d98935ac1a2fa5b21d131559a718b673d83b" + }, + "blocknumber": "9", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x08", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000108", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000002328", + "accessList": [], + "v": "0x01", + "r": "0x306604484984b964879cef0035c3467b41c7d228f4fd922bfd2b6463ed6bef2f", + "s": "0x1b63a77f562b53fb9cbd5270dfb426141f30013a7f9dfdd4738432745d3ca7cd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902ddf9021ca040757087afcc7b560a6a8741b916d98935ac1a2fa5b21d131559a718b673d83ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07d4c8bd41b4146df6af2b78eb4c9ee49dabf54b3c2d4e4fd71d02e88ec05056da07470ccea2f1e08b21942faa986a78ef62d9924afc8095ab020431decfa73b0b6a0c5d5920621a1ee2dbba09ddef16345d1e8742730119094f41a41e984aa6ff9dbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a0000830163ee82271080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f88301098007830f424094000000000000000000000000000000000000010980a00000000000000000000000000000000000000000000000000000000000002710c001a056830db2575498bdd037b51caec84aae416d45aa58e92861ba71405a27718ba8a0290d6dbd8542bb64ce5a15f7e481b93ec431e72c14e50fc6ac4590d86de240d4c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x40757087afcc7b560a6a8741b916d98935ac1a2fa5b21d131559a718b673d83b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7d4c8bd41b4146df6af2b78eb4c9ee49dabf54b3c2d4e4fd71d02e88ec05056d", + "transactionsTrie": "0x7470ccea2f1e08b21942faa986a78ef62d9924afc8095ab020431decfa73b0b6", + "receiptTrie": "0xc5d5920621a1ee2dbba09ddef16345d1e8742730119094f41a41e984aa6ff9db", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0a", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0163ee", + "timestamp": "0x2710", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x44af98c2ed0d08e0bbf3be7943870b8dcaaced765254f500a4bdb3ea12fbb193" + }, + "blocknumber": "10", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x09", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000109", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000002710", + "accessList": [], + "v": "0x01", + "r": "0x56830db2575498bdd037b51caec84aae416d45aa58e92861ba71405a27718ba8", + "s": "0x290d6dbd8542bb64ce5a15f7e481b93ec431e72c14e50fc6ac4590d86de240d4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902ddf9021ca044af98c2ed0d08e0bbf3be7943870b8dcaaced765254f500a4bdb3ea12fbb193a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ebf5255abedd1d3dd983c923041a285bfcd8d6728c0e7a1ea0396cb3b6f67b42a029b37d2df8c98f98ff51690e4d95bc4c460ceaf1c4a2969e6434463bb83fc1cba00b34d5c2880bd5b5b56c37e5dcd816bf01b4a561689405779efff788e01db2afb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000083017e48822af880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f883010a8007830f424094000000000000000000000000000000000000010a80a00000000000000000000000000000000000000000000000000000000000002af8c001a02e86159614af000ad2b44adba99882a08d2b4310e694b7b3deb56bce388856c2a00d9288230a949ae41554c8851fb4305dc3a3cefb44820d4f7105db268e95a134c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x44af98c2ed0d08e0bbf3be7943870b8dcaaced765254f500a4bdb3ea12fbb193", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xebf5255abedd1d3dd983c923041a285bfcd8d6728c0e7a1ea0396cb3b6f67b42", + "transactionsTrie": "0x29b37d2df8c98f98ff51690e4d95bc4c460ceaf1c4a2969e6434463bb83fc1cb", + "receiptTrie": "0x0b34d5c2880bd5b5b56c37e5dcd816bf01b4a561689405779efff788e01db2af", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0b", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x017e48", + "timestamp": "0x2af8", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0xaa0256b83df45e6ac0a6932e7614afa428e398d6a1e6f97ba877dcea3e759600" + }, + "blocknumber": "11", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x0a", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000000000000000000000000000000000000010a", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000002af8", + "accessList": [], + "v": "0x01", + "r": "0x2e86159614af000ad2b44adba99882a08d2b4310e694b7b3deb56bce388856c2", + "s": "0x0d9288230a949ae41554c8851fb4305dc3a3cefb44820d4f7105db268e95a134", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902ddf9021ca0aa0256b83df45e6ac0a6932e7614afa428e398d6a1e6f97ba877dcea3e759600a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f5b7f436a0eb9bec7fbdde6424d1fd5b9407c8cb7b560b2dc5dd7a794d37083a0ef089986dd66b3fd9c119d68dfd9159229b9a9e8d217ed13d58416692cbdc806a0525fa9eaac1bd17059451f070b7bcc62c33eef8b969bd93bb2d884ad4ec296fab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a0000830198a2822ee080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f883010b8007830f424094000000000000000000000000000000000000010b80a00000000000000000000000000000000000000000000000000000000000002ee0c001a062ef1ed52db372881d04127abb00b2724548bbd83e44063b28544c7a5a43cc94a049fce3bca2016306faf64dea136980a479251da0701882aec2674326c22f3016c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xaa0256b83df45e6ac0a6932e7614afa428e398d6a1e6f97ba877dcea3e759600", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7f5b7f436a0eb9bec7fbdde6424d1fd5b9407c8cb7b560b2dc5dd7a794d37083", + "transactionsTrie": "0xef089986dd66b3fd9c119d68dfd9159229b9a9e8d217ed13d58416692cbdc806", + "receiptTrie": "0x525fa9eaac1bd17059451f070b7bcc62c33eef8b969bd93bb2d884ad4ec296fa", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0c", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0198a2", + "timestamp": "0x2ee0", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0xebc7733f5fc6ca6333e5365edea38daf31f570b3875fbb73b88c6cf5950e785e" + }, + "blocknumber": "12", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x0b", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000000000000000000000000000000000000010b", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000002ee0", + "accessList": [], + "v": "0x01", + "r": "0x62ef1ed52db372881d04127abb00b2724548bbd83e44063b28544c7a5a43cc94", + "s": "0x49fce3bca2016306faf64dea136980a479251da0701882aec2674326c22f3016", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902ddf9021ca0ebc7733f5fc6ca6333e5365edea38daf31f570b3875fbb73b88c6cf5950e785ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d24b5130edc5cb24c6047304ff809500f7784f2e7eaa3db07f53a2125499320ba097ae15d182806c94b4dccf595ef6e6ca19d3f4cf3bf6dad59e70a676974228dca08eaabc14b745157211771222761744018a63a100bbf5f80f6b51578ad8646381b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a00008301b2fc8232c880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f883010c8007830f424094000000000000000000000000000000000000010c80a000000000000000000000000000000000000000000000000000000000000032c8c001a01f8f11d8cc7210c0bdead7d3162df818f31c196ab0d396210066f16aae90dc78a0443009f4d5f449f5c48b9422985053a3b2fcf70647fdf26a0d2ed4facf294fb8c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xebc7733f5fc6ca6333e5365edea38daf31f570b3875fbb73b88c6cf5950e785e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd24b5130edc5cb24c6047304ff809500f7784f2e7eaa3db07f53a2125499320b", + "transactionsTrie": "0x97ae15d182806c94b4dccf595ef6e6ca19d3f4cf3bf6dad59e70a676974228dc", + "receiptTrie": "0x8eaabc14b745157211771222761744018a63a100bbf5f80f6b51578ad8646381", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0d", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01b2fc", + "timestamp": "0x32c8", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0xb947dcb7ac2524d9397725d22aade79a221ed283c9a3fcdbbcc347334c899374" + }, + "blocknumber": "13", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x0c", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000000000000000000000000000000000000010c", + "value": "0x00", + "data": "0x00000000000000000000000000000000000000000000000000000000000032c8", + "accessList": [], + "v": "0x01", + "r": "0x1f8f11d8cc7210c0bdead7d3162df818f31c196ab0d396210066f16aae90dc78", + "s": "0x443009f4d5f449f5c48b9422985053a3b2fcf70647fdf26a0d2ed4facf294fb8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902ddf9021ca0b947dcb7ac2524d9397725d22aade79a221ed283c9a3fcdbbcc347334c899374a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa082a27320f1844ee2c1fb77a3c13c927bcb083807b81d44ae1808005985f9833da006cc3e7ae981c88800df397fdaa23a5a6de23ce77b81756fdcc026b282db9beca0da32fa68043b198fc101fba03f50ee44ca3c9070640fd0bb971686fa203cd932b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a00008301cd568236b080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bbf888b88602f883010d8007830f424094000000000000000000000000000000000000010d80a000000000000000000000000000000000000000000000000000000000000036b0c001a0b9601a510e74a88d556192a3a95bd9415ff1e992f43a706112534690a9068cd8a07eee1dafb1527b5f56f4de9bbc01d54e779d023fbfa30054e76e75fbb4b1bb60c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xb947dcb7ac2524d9397725d22aade79a221ed283c9a3fcdbbcc347334c899374", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x82a27320f1844ee2c1fb77a3c13c927bcb083807b81d44ae1808005985f9833d", + "transactionsTrie": "0x06cc3e7ae981c88800df397fdaa23a5a6de23ce77b81756fdcc026b282db9bec", + "receiptTrie": "0xda32fa68043b198fc101fba03f50ee44ca3c9070640fd0bb971686fa203cd932", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0e", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01cd56", + "timestamp": "0x36b0", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "hash": "0x5134f0bb21e3ec3726ec3f55655e9c9a1aa2c5ef6a79039ca81aa5df0bf1e2e1" + }, + "blocknumber": "14", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x0d", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000000000000000000000000000000000000010d", + "value": "0x00", + "data": "0x00000000000000000000000000000000000000000000000000000000000036b0", + "accessList": [], + "v": "0x01", + "r": "0xb9601a510e74a88d556192a3a95bd9415ff1e992f43a706112534690a9068cd8", + "s": "0x7eee1dafb1527b5f56f4de9bbc01d54e779d023fbfa30054e76e75fbb4b1bb60", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa05134f0bb21e3ec3726ec3f55655e9c9a1aa2c5ef6a79039ca81aa5df0bf1e2e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a250827e1853bf8904a6b53f02ddeca22679127b611629ee45b05e4da43c033aa06255b36249d34eb494c648c3856bb049c1b4132c09bad76bf016eaa1b72f7fc7a021de54817b64d30fa6ad6e47e997ad6eea4b5135a25689e72bc0732927a7c6a1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000083028b6c823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0e605c2edc7ca1e162661ab489fde73d3a712bed04c26a55e7286ee5dc4542a6cf888b88602f883010e8007830f424094000000000000000000000000000000000000010e80a00000000000000000000000000000000000000000000000000000000000003a98c001a036d7cf54d1e7a027be9e0f01ad7726d28a63929e8a45cbc66020827f15c3bf5ea0568f94ea6707630eda8958156b51e9288e140d584f870f69eff531df6aa4b21ec0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x5134f0bb21e3ec3726ec3f55655e9c9a1aa2c5ef6a79039ca81aa5df0bf1e2e1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa250827e1853bf8904a6b53f02ddeca22679127b611629ee45b05e4da43c033a", + "transactionsTrie": "0x6255b36249d34eb494c648c3856bb049c1b4132c09bad76bf016eaa1b72f7fc7", + "receiptTrie": "0x21de54817b64d30fa6ad6e47e997ad6eea4b5135a25689e72bc0732927a7c6a1", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0f", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028b6c", + "timestamp": "0x3a98", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xe605c2edc7ca1e162661ab489fde73d3a712bed04c26a55e7286ee5dc4542a6c", + "hash": "0x542e703b5bca4ef0e963cff0d27fe0b85e98808faf8cbbd5c35a8606a53f5b98" + }, + "blocknumber": "15", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x0e", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000000000000000000000000000000000000010e", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000003a98", + "accessList": [], + "v": "0x01", + "r": "0x36d7cf54d1e7a027be9e0f01ad7726d28a63929e8a45cbc66020827f15c3bf5e", + "s": "0x568f94ea6707630eda8958156b51e9288e140d584f870f69eff531df6aa4b21e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0542e703b5bca4ef0e963cff0d27fe0b85e98808faf8cbbd5c35a8606a53f5b98a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01521fc891a7345cfcce7f2c6fc60adb9ef9415fc97c45fe8e6a2fc2f34f9db85a0a9aa953cdbafe6805c51311de9d060afa623439e75ad358a7d94fb5a8ab9030aa0f47d0a6e3bfb5fbff382a7f8fe2ff094572b9d06e45c2d4cee878722c84c1817b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000083034982823e8080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c7d45de61fbaffaad10c6cffc2c93ad8b5aa82ee66772cd6c88fe08a7641e97ef888b88602f883010f8007830f424094000000000000000000000000000000000000010f80a00000000000000000000000000000000000000000000000000000000000003e80c001a011e280be357986aa474b68e3a4f0a89816d70965ba366bc86a13d50e0bffd848a03248c59e163b15ab1a890b7d0c98b3d5b35170d7e0aabee24869ca4f2c21c10ec0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x542e703b5bca4ef0e963cff0d27fe0b85e98808faf8cbbd5c35a8606a53f5b98", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1521fc891a7345cfcce7f2c6fc60adb9ef9415fc97c45fe8e6a2fc2f34f9db85", + "transactionsTrie": "0xa9aa953cdbafe6805c51311de9d060afa623439e75ad358a7d94fb5a8ab9030a", + "receiptTrie": "0xf47d0a6e3bfb5fbff382a7f8fe2ff094572b9d06e45c2d4cee878722c84c1817", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x10", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x034982", + "timestamp": "0x3e80", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc7d45de61fbaffaad10c6cffc2c93ad8b5aa82ee66772cd6c88fe08a7641e97e", + "hash": "0xc8e3d894a27042820834ed6a68ab14d91dad7acfd4f0747d982dbae65c6ba7ea" + }, + "blocknumber": "16", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x0f", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x000000000000000000000000000000000000010f", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000003e80", + "accessList": [], + "v": "0x01", + "r": "0x11e280be357986aa474b68e3a4f0a89816d70965ba366bc86a13d50e0bffd848", + "s": "0x3248c59e163b15ab1a890b7d0c98b3d5b35170d7e0aabee24869ca4f2c21c10e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0c8e3d894a27042820834ed6a68ab14d91dad7acfd4f0747d982dbae65c6ba7eaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa058f19b38d8195fc4dc28091796fb369270b50b7b85004a8900f75863712451a7a0ec8077ba6d8a45a4042f85fa686d59760f07b1c82c703bef87db6f9f374ca01ea0a15abca4cf27fe180eb5eda58222c1db8e2da15d4b29aff5b2f599f89736a090b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801188016345785d8a00008304079882426880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a04e86d666b86e18211956872f95be0febe83929df38e87208aecf641db0418e55f888b88602f88301108007830f424094000000000000000000000000000000000000011080a00000000000000000000000000000000000000000000000000000000000004268c080a0ad5acfb0bbbb761719e0fbec2936dc0ec959f99c68a6d88cc80707f90977356aa07e0eb072ea4a51136c9fdcf00f43c24d8c9fc7e77e1fb4ef55c6fb9faeeeecd7c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xc8e3d894a27042820834ed6a68ab14d91dad7acfd4f0747d982dbae65c6ba7ea", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x58f19b38d8195fc4dc28091796fb369270b50b7b85004a8900f75863712451a7", + "transactionsTrie": "0xec8077ba6d8a45a4042f85fa686d59760f07b1c82c703bef87db6f9f374ca01e", + "receiptTrie": "0xa15abca4cf27fe180eb5eda58222c1db8e2da15d4b29aff5b2f599f89736a090", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x11", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x040798", + "timestamp": "0x4268", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x4e86d666b86e18211956872f95be0febe83929df38e87208aecf641db0418e55", + "hash": "0x2a211ab99f918a2a3543a44de6b9ce7de72ca7de96a250270604fbab505eff5f" + }, + "blocknumber": "17", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x10", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000110", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000004268", + "accessList": [], + "v": "0x00", + "r": "0xad5acfb0bbbb761719e0fbec2936dc0ec959f99c68a6d88cc80707f90977356a", + "s": "0x7e0eb072ea4a51136c9fdcf00f43c24d8c9fc7e77e1fb4ef55c6fb9faeeeecd7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa02a211ab99f918a2a3543a44de6b9ce7de72ca7de96a250270604fbab505eff5fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06a17671323260eab233f83c581e3cd610d6890b98dce9a15a2f39ec256d1548ca0128bb25a5448479c4fcaa195946a594b3fe848a9418bb69d9aa3e2941f4d6517a0fc95cfde600010320dde2c1189abb6f1979f12611c40d174e90faeb59c082e2cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801288016345785d8a00008304c5ae82465080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a045a9ae46a4c3f09611b66629c4f800fb1de763ee06b79fad771b2e97161ef7bef888b88602f88301118007830f424094000000000000000000000000000000000000011180a00000000000000000000000000000000000000000000000000000000000004650c080a0158428457f682e072a3ed47c8f532a1340909ed6c0ad255b4962f0d6e2492009a056293bf7b6906dfb4ca209b137e398929112756294ca80d8aa1177eb278618ffc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x2a211ab99f918a2a3543a44de6b9ce7de72ca7de96a250270604fbab505eff5f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6a17671323260eab233f83c581e3cd610d6890b98dce9a15a2f39ec256d1548c", + "transactionsTrie": "0x128bb25a5448479c4fcaa195946a594b3fe848a9418bb69d9aa3e2941f4d6517", + "receiptTrie": "0xfc95cfde600010320dde2c1189abb6f1979f12611c40d174e90faeb59c082e2c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x12", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x04c5ae", + "timestamp": "0x4650", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x45a9ae46a4c3f09611b66629c4f800fb1de763ee06b79fad771b2e97161ef7be", + "hash": "0x790da2e3806137d99578dd5c65f1b2206cafca9f1b6dcd0f6f7875be07a272bc" + }, + "blocknumber": "18", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x11", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000111", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000004650", + "accessList": [], + "v": "0x00", + "r": "0x158428457f682e072a3ed47c8f532a1340909ed6c0ad255b4962f0d6e2492009", + "s": "0x56293bf7b6906dfb4ca209b137e398929112756294ca80d8aa1177eb278618ff", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0790da2e3806137d99578dd5c65f1b2206cafca9f1b6dcd0f6f7875be07a272bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03732b1b55099e1add46aa3c67e72df8452ea470449679deca402e68f51c0f54ba052ba66e239734fe67457df270f6c444bcf498af6ad566caacda0c21c22400bc6a0c7b2e909169c994da4fba05f7db3fa8249ec5c5c7af6fae28320ba967b82caf5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801388016345785d8a0000830583c4824a3880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a06f679f7690d28d42c1de1aaa1d4c6668a8506608c8c9a58cd73122dcd4c4b771f888b88602f88301128007830f424094000000000000000000000000000000000000011280a00000000000000000000000000000000000000000000000000000000000004a38c001a08e9265f3d5850742a3be8b9fa1ba7f64bed9e976f143e8fe887fdbdeb7e3e6e3a07805f4bf16052406966ed8ed96c93a46a5aac0bb8b08828b3bc8b2f3ba9969a4c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x790da2e3806137d99578dd5c65f1b2206cafca9f1b6dcd0f6f7875be07a272bc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3732b1b55099e1add46aa3c67e72df8452ea470449679deca402e68f51c0f54b", + "transactionsTrie": "0x52ba66e239734fe67457df270f6c444bcf498af6ad566caacda0c21c22400bc6", + "receiptTrie": "0xc7b2e909169c994da4fba05f7db3fa8249ec5c5c7af6fae28320ba967b82caf5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x13", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0583c4", + "timestamp": "0x4a38", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6f679f7690d28d42c1de1aaa1d4c6668a8506608c8c9a58cd73122dcd4c4b771", + "hash": "0xc78b0c63257cd9daba1c12e4cbf12990ffc15e890dcc663d1cb955042af39e23" + }, + "blocknumber": "19", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x12", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000112", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000004a38", + "accessList": [], + "v": "0x01", + "r": "0x8e9265f3d5850742a3be8b9fa1ba7f64bed9e976f143e8fe887fdbdeb7e3e6e3", + "s": "0x7805f4bf16052406966ed8ed96c93a46a5aac0bb8b08828b3bc8b2f3ba9969a4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0c78b0c63257cd9daba1c12e4cbf12990ffc15e890dcc663d1cb955042af39e23a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b2bfe00d91eb654da52e9dccfa8fb394306f38bb661bc9bf7b04102e79dbf65ea0e59d3a63b86fdbb95cf81e65315e748e34c7a0e158286124edce81d96158446aa0438e8422e5fa078516a7e5f365536f5f3c3662cc3e4657c879b031c14400cf01b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801488016345785d8a0000830641da824e2080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a053943dd57b334394088bcce658a9a8a838371243bd18fae95da6cf7af8e1f0a4f888b88602f88301138007830f424094000000000000000000000000000000000000011380a00000000000000000000000000000000000000000000000000000000000004e20c001a0e8dd1d88c7893fdbffe905f96d3d4a4aeedaafc3bf423b8b09d8ab61a51bbfdfa045731dcb490bbf836dbe6c50bd7363841f4571e9d6a39a461aa8e5ed61a63d43c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xc78b0c63257cd9daba1c12e4cbf12990ffc15e890dcc663d1cb955042af39e23", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb2bfe00d91eb654da52e9dccfa8fb394306f38bb661bc9bf7b04102e79dbf65e", + "transactionsTrie": "0xe59d3a63b86fdbb95cf81e65315e748e34c7a0e158286124edce81d96158446a", + "receiptTrie": "0x438e8422e5fa078516a7e5f365536f5f3c3662cc3e4657c879b031c14400cf01", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x14", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0641da", + "timestamp": "0x4e20", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x53943dd57b334394088bcce658a9a8a838371243bd18fae95da6cf7af8e1f0a4", + "hash": "0x46c83127ee919e432126bd119a5884c6fce4d4eb96f89966c507a9c78288ee3a" + }, + "blocknumber": "20", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x13", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000113", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000004e20", + "accessList": [], + "v": "0x01", + "r": "0xe8dd1d88c7893fdbffe905f96d3d4a4aeedaafc3bf423b8b09d8ab61a51bbfdf", + "s": "0x45731dcb490bbf836dbe6c50bd7363841f4571e9d6a39a461aa8e5ed61a63d43", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x46c83127ee919e432126bd119a5884c6fce4d4eb96f89966c507a9c78288ee3a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": {} + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": {} + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": {} + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": {} + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": {} + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": {} + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": {} + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": {} + }, + "0x000000000000000000000000000000000000010a": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555", + "storage": {} + }, + "0x000000000000000000000000000000000000010b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601655602051601755", + "storage": {} + }, + "0x000000000000000000000000000000000000010c": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601855602051601955", + "storage": {} + }, + "0x000000000000000000000000000000000000010d": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55", + "storage": {} + }, + "0x000000000000000000000000000000000000010e": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55", + "storage": {} + }, + "0x000000000000000000000000000000000000010f": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f55", + "storage": {} + }, + "0x0000000000000000000000000000000000000110": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f5561426860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602055602051602155", + "storage": {} + }, + "0x0000000000000000000000000000000000000111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f5561426860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160205560205160215561465060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602255602051602355", + "storage": {} + }, + "0x0000000000000000000000000000000000000112": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f5561426860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160205560205160215561465060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602255602051602355614a3860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602455602051602555", + "storage": {} + }, + "0x0000000000000000000000000000000000000113": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f5561426860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160205560205160215561465060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602255602051602355614a3860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602455602051602555614e2060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602655602051602755", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": {} + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": {} + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": {} + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": {} + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": {} + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": {} + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": {} + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": {} + }, + "0x000000000000000000000000000000000000010a": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555", + "storage": {} + }, + "0x000000000000000000000000000000000000010b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601655602051601755", + "storage": {} + }, + "0x000000000000000000000000000000000000010c": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601855602051601955", + "storage": {} + }, + "0x000000000000000000000000000000000000010d": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55", + "storage": {} + }, + "0x000000000000000000000000000000000000010e": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55", + "storage": { + "0x1c": "0x01", + "0x1d": "0xe605c2edc7ca1e162661ab489fde73d3a712bed04c26a55e7286ee5dc4542a6c" + } + }, + "0x000000000000000000000000000000000000010f": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f55", + "storage": { + "0x1c": "0x01", + "0x1d": "0xe605c2edc7ca1e162661ab489fde73d3a712bed04c26a55e7286ee5dc4542a6c", + "0x1e": "0x01", + "0x1f": "0xc7d45de61fbaffaad10c6cffc2c93ad8b5aa82ee66772cd6c88fe08a7641e97e" + } + }, + "0x0000000000000000000000000000000000000110": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f5561426860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602055602051602155", + "storage": { + "0x1c": "0x01", + "0x1d": "0xe605c2edc7ca1e162661ab489fde73d3a712bed04c26a55e7286ee5dc4542a6c", + "0x1e": "0x01", + "0x1f": "0xc7d45de61fbaffaad10c6cffc2c93ad8b5aa82ee66772cd6c88fe08a7641e97e", + "0x20": "0x01", + "0x21": "0x4e86d666b86e18211956872f95be0febe83929df38e87208aecf641db0418e55" + } + }, + "0x0000000000000000000000000000000000000111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f5561426860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160205560205160215561465060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602255602051602355", + "storage": { + "0x1c": "0x01", + "0x1d": "0xe605c2edc7ca1e162661ab489fde73d3a712bed04c26a55e7286ee5dc4542a6c", + "0x1e": "0x01", + "0x1f": "0xc7d45de61fbaffaad10c6cffc2c93ad8b5aa82ee66772cd6c88fe08a7641e97e", + "0x20": "0x01", + "0x21": "0x4e86d666b86e18211956872f95be0febe83929df38e87208aecf641db0418e55", + "0x22": "0x01", + "0x23": "0x45a9ae46a4c3f09611b66629c4f800fb1de763ee06b79fad771b2e97161ef7be" + } + }, + "0x0000000000000000000000000000000000000112": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f5561426860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160205560205160215561465060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602255602051602355614a3860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602455602051602555", + "storage": { + "0x1c": "0x01", + "0x1d": "0xe605c2edc7ca1e162661ab489fde73d3a712bed04c26a55e7286ee5dc4542a6c", + "0x1e": "0x01", + "0x1f": "0xc7d45de61fbaffaad10c6cffc2c93ad8b5aa82ee66772cd6c88fe08a7641e97e", + "0x20": "0x01", + "0x21": "0x4e86d666b86e18211956872f95be0febe83929df38e87208aecf641db0418e55", + "0x22": "0x01", + "0x23": "0x45a9ae46a4c3f09611b66629c4f800fb1de763ee06b79fad771b2e97161ef7be", + "0x24": "0x01", + "0x25": "0x6f679f7690d28d42c1de1aaa1d4c6668a8506608c8c9a58cd73122dcd4c4b771" + } + }, + "0x0000000000000000000000000000000000000113": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6103e860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556020516001556107d060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355610bb860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555610fa060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561138860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561177060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55611b5860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55611f4060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561232860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561271060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355612af860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601455602051601555612ee060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16016556020516017556132c860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16018556020516019556136b060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601a55602051601b55613a9860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601c55602051601d55613e8060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601e55602051601f5561426860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160205560205160215561465060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602255602051602355614a3860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602455602051602555614e2060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1602655602051602755", + "storage": { + "0x1c": "0x01", + "0x1d": "0xe605c2edc7ca1e162661ab489fde73d3a712bed04c26a55e7286ee5dc4542a6c", + "0x1e": "0x01", + "0x1f": "0xc7d45de61fbaffaad10c6cffc2c93ad8b5aa82ee66772cd6c88fe08a7641e97e", + "0x20": "0x01", + "0x21": "0x4e86d666b86e18211956872f95be0febe83929df38e87208aecf641db0418e55", + "0x22": "0x01", + "0x23": "0x45a9ae46a4c3f09611b66629c4f800fb1de763ee06b79fad771b2e97161ef7be", + "0x24": "0x01", + "0x25": "0x6f679f7690d28d42c1de1aaa1d4c6668a8506608c8c9a58cd73122dcd4c4b771", + "0x26": "0x01", + "0x27": "0x53943dd57b334394088bcce658a9a8a838371243bd18fae95da6cf7af8e1f0a4" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x04a817c800", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x026a": "0x4268", + "0x0652": "0x4650", + "0x0a3a": "0x4a38", + "0x0e22": "0x4e20", + "0x1a99": "0x3a98", + "0x1e81": "0x3e80", + "0x2269": "0x4e86d666b86e18211956872f95be0febe83929df38e87208aecf641db0418e55", + "0x2651": "0x45a9ae46a4c3f09611b66629c4f800fb1de763ee06b79fad771b2e97161ef7be", + "0x2a39": "0x6f679f7690d28d42c1de1aaa1d4c6668a8506608c8c9a58cd73122dcd4c4b771", + "0x2e21": "0x53943dd57b334394088bcce658a9a8a838371243bd18fae95da6cf7af8e1f0a4", + "0x3a98": "0xe605c2edc7ca1e162661ab489fde73d3a712bed04c26a55e7286ee5dc4542a6c", + "0x3e80": "0xc7d45de61fbaffaad10c6cffc2c93ad8b5aa82ee66772cd6c88fe08a7641e97e" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x14", + "balance": "0xfffed82048", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x04a817c800", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json new file mode 100644 index 00000000000..a1c1b3a93fa --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/multi_block_beacon_root_timestamp_calls.json @@ -0,0 +1,4441 @@ +{ + "000-fork=Cancun-block_count=10-buffer_wraparound": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07a3766141c6ee03db22cb3188766617fd40eb9221ff98f7112665e9c5bd28305a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7a3766141c6ee03db22cb3188766617fd40eb9221ff98f7112665e9c5bd28305", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xce13c5428ade1d1f4102f845f9cd80bf67ddbc6c7866cb178b00ee7c94662ff9" + }, + "blocks": [ + { + "rlp": "0xf90300f9023fa0ce13c5428ade1d1f4102f845f9cd80bf67ddbc6c7866cb178b00ee7c94662ff9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d2c7ab7d34edd8bcd104986b77fa9150837cb454c2d2d2e2b45ffd8576ba0aaa0209c4d4ee7a4bd639ca59833e83c6d5fe15c07dbb68a100d3a4d23eb2c670de6a00469ee04d8c899b063d78f2064a0249a60b8cc1ac5c09dc1348802d9ebf8cfb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011a80821ffa80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000001ffac001a08d3d4dda0666bd408194c216ee190d7c44b368036cc8ef72b3cdfdc9d7553776a00a61b1db9cf6e591036c96f64c456ab2d4310b4ff6a4785ebd33b648a635c91ec0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xce13c5428ade1d1f4102f845f9cd80bf67ddbc6c7866cb178b00ee7c94662ff9", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d2c7ab7d34edd8bcd104986b77fa9150837cb454c2d2d2e2b45ffd8576ba0aa", + "transactionsTrie": "0x209c4d4ee7a4bd639ca59833e83c6d5fe15c07dbb68a100d3a4d23eb2c670de6", + "receiptTrie": "0x0469ee04d8c899b063d78f2064a0249a60b8cc1ac5c09dc1348802d9ebf8cfb5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x011a80", + "timestamp": "0x1ffa", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xa5f84f740c66dc6ba30ad15442872bdf0e86ab73072fb4ef4e250e7b3d6604e5" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001ffa", + "accessList": [], + "v": "0x01", + "r": "0x8d3d4dda0666bd408194c216ee190d7c44b368036cc8ef72b3cdfdc9d7553776", + "s": "0x0a61b1db9cf6e591036c96f64c456ab2d4310b4ff6a4785ebd33b648a635c91e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0a5f84f740c66dc6ba30ad15442872bdf0e86ab73072fb4ef4e250e7b3d6604e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05376d24066505a6234bc9ec0e8eaf93ae4cbd9f924706d38b507099bd4b6f8d7a052e05dfaa1a53fc72f62abe4be07f2cc87e6e2b8012e032bb25d1003550d8433a09d190bfe01cc05c2d908be0c169c9dc2b632b3aa5d3513d52b58c277e109aa13b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301d896821ffb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04f888b88602f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000000001ffbc080a080d286e09c19ad10a052d76ed78648fc28b198bf0fe4f2bb1e741c52af31ee15a07b9c1ed99aec40f3f4a5ac976a45667bb9dea260e84c335b9d57662ef52059a1c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xa5f84f740c66dc6ba30ad15442872bdf0e86ab73072fb4ef4e250e7b3d6604e5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5376d24066505a6234bc9ec0e8eaf93ae4cbd9f924706d38b507099bd4b6f8d7", + "transactionsTrie": "0x52e05dfaa1a53fc72f62abe4be07f2cc87e6e2b8012e032bb25d1003550d8433", + "receiptTrie": "0x9d190bfe01cc05c2d908be0c169c9dc2b632b3aa5d3513d52b58c277e109aa13", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d896", + "timestamp": "0x1ffb", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "hash": "0x273ce6e9a791c8e41c844e73837758b66f37c6116267d1179b9194c441e3e1b5" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000101", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001ffb", + "accessList": [], + "v": "0x00", + "r": "0x80d286e09c19ad10a052d76ed78648fc28b198bf0fe4f2bb1e741c52af31ee15", + "s": "0x7b9c1ed99aec40f3f4a5ac976a45667bb9dea260e84c335b9d57662ef52059a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0273ce6e9a791c8e41c844e73837758b66f37c6116267d1179b9194c441e3e1b5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06d6e4021e138ae5655014721d0f9fd44ef030246e16b5a44bbf18d728948df15a08d0a0216dc942981b8f7880f0aa54f2d144077123e80526ecd8c831809d6a899a086f4d5fb45d2196c0f5dfd1635a728f0bfdd303c46261b7c444a309e8188acdfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a0000830296ac821ffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2aff888b88602f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000000001ffcc001a0c97f620468ebc5418b915f9994f3a3bd13d1671dc90dc6d5b4e1ad0462abd8f8a07b43e4ae3f1e5d478f1dc81b76129520b17ddfc0e7a2fb1765be64e3add656c5c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x273ce6e9a791c8e41c844e73837758b66f37c6116267d1179b9194c441e3e1b5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6d6e4021e138ae5655014721d0f9fd44ef030246e16b5a44bbf18d728948df15", + "transactionsTrie": "0x8d0a0216dc942981b8f7880f0aa54f2d144077123e80526ecd8c831809d6a899", + "receiptTrie": "0x86f4d5fb45d2196c0f5dfd1635a728f0bfdd303c46261b7c444a309e8188acdf", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x03", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0296ac", + "timestamp": "0x1ffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "hash": "0x017c47a8e846c0daa46ee55a5cef80088155af65e8e6af6a56af0cb9bf690725" + }, + "blocknumber": "3", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000102", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001ffc", + "accessList": [], + "v": "0x01", + "r": "0xc97f620468ebc5418b915f9994f3a3bd13d1671dc90dc6d5b4e1ad0462abd8f8", + "s": "0x7b43e4ae3f1e5d478f1dc81b76129520b17ddfc0e7a2fb1765be64e3add656c5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0017c47a8e846c0daa46ee55a5cef80088155af65e8e6af6a56af0cb9bf690725a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b4af5b7fbf94abce6832babb257878704f393641cbbbc20381df7e1f3e0d3292a0e691c66b79e9588da4beff38cdf8860f1443fef3ccf9fd296704c622e0feca11a0d5a1968330f55f7454e82a930b093898076147c3956766c88c45cc5df1ff7d5fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a0000830354c2821ffd80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56f888b88602f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000000001ffdc080a0697683bb6757a8530b581a7993f1740009de715203d1c353f887923c92d40eeba043a45c6dd319b03416372af6ab4cb775ea2e193f58423007ee6f8d0994913f1fc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x017c47a8e846c0daa46ee55a5cef80088155af65e8e6af6a56af0cb9bf690725", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb4af5b7fbf94abce6832babb257878704f393641cbbbc20381df7e1f3e0d3292", + "transactionsTrie": "0xe691c66b79e9588da4beff38cdf8860f1443fef3ccf9fd296704c622e0feca11", + "receiptTrie": "0xd5a1968330f55f7454e82a930b093898076147c3956766c88c45cc5df1ff7d5f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x04", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0354c2", + "timestamp": "0x1ffd", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "hash": "0x6900c979fda161532145e4c8ffb1f2166a2c1b41c8c96736a38f2cd45de7d02f" + }, + "blocknumber": "4", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000103", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001ffd", + "accessList": [], + "v": "0x00", + "r": "0x697683bb6757a8530b581a7993f1740009de715203d1c353f887923c92d40eeb", + "s": "0x43a45c6dd319b03416372af6ab4cb775ea2e193f58423007ee6f8d0994913f1f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa06900c979fda161532145e4c8ffb1f2166a2c1b41c8c96736a38f2cd45de7d02fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa022b42911bf0a42296d39db3940c5423971deb58170b774abfe26be74c1ecfe87a02c6201e6c4a32257d86a8db0928d45df0fbd7075202947165e452a8a5f13ccdea0f88d207ccbc9a001cf9b08e5fe25c2c5e4e3250fe802627ee011e128e6990ff3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000830412d8821ffe80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6af888b88602f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000000001ffec001a0087abdc52f797531c8a21c8bd846f26948ed78c860b1fc1e285b0b5622ebb048a058ffb34da7beb6ace0b8112c94990037c050e463307d4df5f8d247aa9ad8ad46c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x6900c979fda161532145e4c8ffb1f2166a2c1b41c8c96736a38f2cd45de7d02f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x22b42911bf0a42296d39db3940c5423971deb58170b774abfe26be74c1ecfe87", + "transactionsTrie": "0x2c6201e6c4a32257d86a8db0928d45df0fbd7075202947165e452a8a5f13ccde", + "receiptTrie": "0xf88d207ccbc9a001cf9b08e5fe25c2c5e4e3250fe802627ee011e128e6990ff3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x05", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0412d8", + "timestamp": "0x1ffe", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "hash": "0x402835c763234d7c0af2d45c666893f4e17bb57d0cf86b45934e02e6420507a7" + }, + "blocknumber": "5", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000104", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001ffe", + "accessList": [], + "v": "0x01", + "r": "0x087abdc52f797531c8a21c8bd846f26948ed78c860b1fc1e285b0b5622ebb048", + "s": "0x58ffb34da7beb6ace0b8112c94990037c050e463307d4df5f8d247aa9ad8ad46", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0402835c763234d7c0af2d45c666893f4e17bb57d0cf86b45934e02e6420507a7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa078cb95695024128f38328443067f6bae2c07a9981dbff48d816297b9a0ed69a0a050aa4f35e7b730abedb9a0ee5fd32ce9acdad0498b64aa851773a8dcb1d962c7a0c395e01f456de54047337d9fa978a1165d351438b1084f660549a8efacf3329cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008304d0ee821fff80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680af888b88602f88301058007830f424094000000000000000000000000000000000000010580a00000000000000000000000000000000000000000000000000000000000001fffc080a0288a858be18c469e8a78a24a39734316f3dc59a99684eb6b781466b10d979b5ea036576c3f70ceef737999deeff522e63a946f3c1c770c24d6762bacc8c5486ce7c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x402835c763234d7c0af2d45c666893f4e17bb57d0cf86b45934e02e6420507a7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x78cb95695024128f38328443067f6bae2c07a9981dbff48d816297b9a0ed69a0", + "transactionsTrie": "0x50aa4f35e7b730abedb9a0ee5fd32ce9acdad0498b64aa851773a8dcb1d962c7", + "receiptTrie": "0xc395e01f456de54047337d9fa978a1165d351438b1084f660549a8efacf3329c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x06", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x04d0ee", + "timestamp": "0x1fff", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "hash": "0xb1363021c402e265a713bb46712fc0f0420bb34c38d8720f444e39c5484c19bd" + }, + "blocknumber": "6", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000105", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001fff", + "accessList": [], + "v": "0x00", + "r": "0x288a858be18c469e8a78a24a39734316f3dc59a99684eb6b781466b10d979b5e", + "s": "0x36576c3f70ceef737999deeff522e63a946f3c1c770c24d6762bacc8c5486ce7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0b1363021c402e265a713bb46712fc0f0420bb34c38d8720f444e39c5484c19bda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aa3f78a43da8c6c0b7b1dff1f18cf70ec7f1636211b3c72ca89d88ac890e615ca02300b628aa9abdbf678cc9a2ac040334ea22ddd492ae7815c3ffd18bd95cf7f0a0ab21ac160ad8493bc2d3a0ed3b2eb7a3458b33f1a4c3656496d05f41706af6b9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000083058ef882200080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0ea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347f888b88602f88301068007830f424094000000000000000000000000000000000000010680a00000000000000000000000000000000000000000000000000000000000002000c001a0df5760bae4121bdb1234f6d6368d3ea8d5e6046709b9243fd29fa901349eb65da0472cbdd921f3ba1d52c8756456963a68b38e003bafa34ffcbc9e514025e11cb4c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xb1363021c402e265a713bb46712fc0f0420bb34c38d8720f444e39c5484c19bd", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xaa3f78a43da8c6c0b7b1dff1f18cf70ec7f1636211b3c72ca89d88ac890e615c", + "transactionsTrie": "0x2300b628aa9abdbf678cc9a2ac040334ea22ddd492ae7815c3ffd18bd95cf7f0", + "receiptTrie": "0xab21ac160ad8493bc2d3a0ed3b2eb7a3458b33f1a4c3656496d05f41706af6b9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x07", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x058ef8", + "timestamp": "0x2000", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "hash": "0x31db373f2f0aba92a5fbe879aa539b615ac028beed4b85af53a0bac239764eb8" + }, + "blocknumber": "7", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x06", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000106", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000002000", + "accessList": [], + "v": "0x01", + "r": "0xdf5760bae4121bdb1234f6d6368d3ea8d5e6046709b9243fd29fa901349eb65d", + "s": "0x472cbdd921f3ba1d52c8756456963a68b38e003bafa34ffcbc9e514025e11cb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa031db373f2f0aba92a5fbe879aa539b615ac028beed4b85af53a0bac239764eb8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f7d914734ca591b0a5cc60e541be7cb65fa0031d033447d14b076896ec8f5c6ea0e81d8da70ab71033f51396ad87a8ae75b7ba739e6545d9082c1e097bd915c04da0ac6a768609eb1de752cfef72f5a83b732ec8449e0f175a426b746c3958dddf2eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000083064d1a82200180a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a07b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06f888b88602f88301078007830f424094000000000000000000000000000000000000010780a00000000000000000000000000000000000000000000000000000000000002001c080a0e80efec988d7a87ed59352d757337135f48fa56020dae8cf6230a91f0a168462a008a1551a4f88ac930dc1b2a99e92e75f7754c0c3fbf8fc21be03ddbb8b22c120c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x31db373f2f0aba92a5fbe879aa539b615ac028beed4b85af53a0bac239764eb8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf7d914734ca591b0a5cc60e541be7cb65fa0031d033447d14b076896ec8f5c6e", + "transactionsTrie": "0xe81d8da70ab71033f51396ad87a8ae75b7ba739e6545d9082c1e097bd915c04d", + "receiptTrie": "0xac6a768609eb1de752cfef72f5a83b732ec8449e0f175a426b746c3958dddf2e", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x08", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x064d1a", + "timestamp": "0x2001", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "hash": "0xc4fe39ca5211baf49e989b7baea19a8c6196ef024c247b54373f3cc8a806ab7d" + }, + "blocknumber": "8", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x07", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000107", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000002001", + "accessList": [], + "v": "0x00", + "r": "0xe80efec988d7a87ed59352d757337135f48fa56020dae8cf6230a91f0a168462", + "s": "0x08a1551a4f88ac930dc1b2a99e92e75f7754c0c3fbf8fc21be03ddbb8b22c120", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0c4fe39ca5211baf49e989b7baea19a8c6196ef024c247b54373f3cc8a806ab7da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d4216bf1c1d2e476ff82a0582303cb693481a24a49a036821bb3a3dc0aea892ca0345396ae24ca6efeec1072894318ee1221532a393eb39c9c8b0adce94e34083ba011fbf8a19c10831883d2c2f5bbe651323b95b51b5634b1e6f5ba1f98524d2023b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a000083070b3082200280a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056f888b88602f88301088007830f424094000000000000000000000000000000000000010880a00000000000000000000000000000000000000000000000000000000000002002c080a02c3a8ca5a614a1f428ef570c7a16183f4fe2180797179acd880d8e377d97cedda042a5fd1f84bc7a744a9f854a5081303476845baba5f3ace7938dcedbd9d281f4c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xc4fe39ca5211baf49e989b7baea19a8c6196ef024c247b54373f3cc8a806ab7d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd4216bf1c1d2e476ff82a0582303cb693481a24a49a036821bb3a3dc0aea892c", + "transactionsTrie": "0x345396ae24ca6efeec1072894318ee1221532a393eb39c9c8b0adce94e34083b", + "receiptTrie": "0x11fbf8a19c10831883d2c2f5bbe651323b95b51b5634b1e6f5ba1f98524d2023", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x09", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x070b30", + "timestamp": "0x2002", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "hash": "0x64a01b291370db6fca01f4ecca02c59d9634f98225d5cdb6eb688234ec58c2ba" + }, + "blocknumber": "9", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x08", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000108", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000002002", + "accessList": [], + "v": "0x00", + "r": "0x2c3a8ca5a614a1f428ef570c7a16183f4fe2180797179acd880d8e377d97cedd", + "s": "0x42a5fd1f84bc7a744a9f854a5081303476845baba5f3ace7938dcedbd9d281f4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa064a01b291370db6fca01f4ecca02c59d9634f98225d5cdb6eb688234ec58c2baa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04f0e4c35af333b39c7b0a76f3fa77876b813d2eba6dcb12f5338cd7e986127c1a069db2c4419c8ea31794073ec8ab8e019d30cf18afb02102439a9fe3731bc318ba0132d8de6fb75f49089a898b31c6c6275a01a4377c2a8d82cb73c69c73607cd2fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008307c94682200380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812f888b88602f88301098007830f424094000000000000000000000000000000000000010980a00000000000000000000000000000000000000000000000000000000000002003c001a0af93e152eb02c02d0fcd6bba83339faa76a06ea7dc636eff0486c6d69a454071a035b7b89ca63855ed61c519fc8c42949ac720d881f57137e74df22a876d2faaddc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x64a01b291370db6fca01f4ecca02c59d9634f98225d5cdb6eb688234ec58c2ba", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4f0e4c35af333b39c7b0a76f3fa77876b813d2eba6dcb12f5338cd7e986127c1", + "transactionsTrie": "0x69db2c4419c8ea31794073ec8ab8e019d30cf18afb02102439a9fe3731bc318b", + "receiptTrie": "0x132d8de6fb75f49089a898b31c6c6275a01a4377c2a8d82cb73c69c73607cd2f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0a", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x07c946", + "timestamp": "0x2003", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812", + "hash": "0x748e8148e9c29b73ba820b5c49edced3fa8b8090ac2e7bf081c58ad0a4db0ee4" + }, + "blocknumber": "10", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x09", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000109", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000002003", + "accessList": [], + "v": "0x01", + "r": "0xaf93e152eb02c02d0fcd6bba83339faa76a06ea7dc636eff0486c6d69a454071", + "s": "0x35b7b89ca63855ed61c519fc8c42949ac720d881f57137e74df22a876d2faadd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x748e8148e9c29b73ba820b5c49edced3fa8b8090ac2e7bf081c58ad0a4db0ee4", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": {} + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": {} + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": {} + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": {} + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561200060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": {} + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561200060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561200160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": {} + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561200060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561200160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561200260005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": {} + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561200060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561200160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561200260005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04" + } + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af" + } + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56" + } + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a" + } + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a" + } + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561200060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347" + } + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561200060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561200160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06" + } + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561200060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561200160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561200260005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "0x10": "0x01", + "0x11": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056" + } + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155611ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555611ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755611ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955611fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561200060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561200160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561200260005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "0x10": "0x01", + "0x11": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "0x12": "0x01", + "0x13": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x02540be400", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x00": "0x1fff", + "0x01": "0x2000", + "0x02": "0x2001", + "0x03": "0x2002", + "0x04": "0x2003", + "0x1ffa": "0x1ffa", + "0x1ffb": "0x1ffb", + "0x1ffc": "0x1ffc", + "0x1ffd": "0x1ffd", + "0x1ffe": "0x1ffe", + "0x1fff": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x2000": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x2001": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "0x2002": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "0x2003": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812", + "0x3ff9": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x3ffa": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x3ffb": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x3ffc": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x3ffd": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x0a", + "balance": "0xfffec8dc42", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x02540be400", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-block_count=10-buffer_wraparound_overwrite": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02365f96c72faf2238c1e510dbc8e9005c2db8a0a1487e3b942820f729491a206a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2365f96c72faf2238c1e510dbc8e9005c2db8a0a1487e3b942820f729491a206", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd78a04fee7a3bf7437a1fb05a956b814f74f2665a4edfb89daf94b593c840700" + }, + "blocks": [ + { + "rlp": "0xf902fef9023da0d78a04fee7a3bf7437a1fb05a956b814f74f2665a4edfb89daf94b593c840700a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f924a027f815ebbf85dbf32830de82f1d7706c6c754320df720e38e77b5577cda07d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9adaa0a2d85a46f5270115b9edcdc9d47ab106447419f512d77a2738c24f82245e5bd3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011a740c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000cc080a09def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445a05cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01ebc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xd78a04fee7a3bf7437a1fb05a956b814f74f2665a4edfb89daf94b593c840700", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf924a027f815ebbf85dbf32830de82f1d7706c6c754320df720e38e77b5577cd", + "transactionsTrie": "0x7d98be72f9136e95c03dd194c12ac10b3bd8a1d92997c22c25b49a3b734e9ada", + "receiptTrie": "0xa2d85a46f5270115b9edcdc9d47ab106447419f512d77a2738c24f82245e5bd3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x011a74", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xdaa0bcc7da8155b4dd184e1a35eb7936c9444737027859b61311e9668c0f9d56" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000000c", + "accessList": [], + "v": "0x00", + "r": "0x9def14c251e6d0b857c40d13f8bd358608277d2c90cb2340ac4fe75cbe35f445", + "s": "0x5cd757be2f85dd0560322bd54d04199a371c950a83e4706b7f8e2840dbdc01eb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0daa0bcc7da8155b4dd184e1a35eb7936c9444737027859b61311e9668c0f9d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018d05efa91ce94464eb490fd3b446c242eaff3f945942b6dcfdcb7f3805ff4cea0f2ecee64f0e7f777b96a4e3e0bd7dd6c7507b28f30520ee90dc7ab150e381612a0c1ba81df637e66faecd3b3cd3cac8bb17d39c549b1399698be29b4f886700b54b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830134da82200b80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04f888b88602f88301018007830f424094000000000000000000000000000000000000010180a0000000000000000000000000000000000000000000000000000000000000200bc080a05f6d90cb823c201761c0e28a40a40cc90ebd5200e014bc6d2bb6ff5504ef0feaa0080c21c112b92bb6be5db34920a832c0d43cd439746425df5dc5b5e7ec67d6bac0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xdaa0bcc7da8155b4dd184e1a35eb7936c9444737027859b61311e9668c0f9d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x18d05efa91ce94464eb490fd3b446c242eaff3f945942b6dcfdcb7f3805ff4ce", + "transactionsTrie": "0xf2ecee64f0e7f777b96a4e3e0bd7dd6c7507b28f30520ee90dc7ab150e381612", + "receiptTrie": "0xc1ba81df637e66faecd3b3cd3cac8bb17d39c549b1399698be29b4f886700b54", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0134da", + "timestamp": "0x200b", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "hash": "0xdae25ea36fc4c8459156247f502733c53279bfcf492e5008004a3964e8d0eaf7" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000101", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000200b", + "accessList": [], + "v": "0x00", + "r": "0x5f6d90cb823c201761c0e28a40a40cc90ebd5200e014bc6d2bb6ff5504ef0fea", + "s": "0x080c21c112b92bb6be5db34920a832c0d43cd439746425df5dc5b5e7ec67d6ba", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0dae25ea36fc4c8459156247f502733c53279bfcf492e5008004a3964e8d0eaf7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05645bce6f0d4638751a79b115dc8c03c28e760c12f054506c87451735e586797a0ec346f8c6f8627ba6729eeffdfd48c6dca49b6522d5325258ebbd0c84a8cb7fea05c2bee8a1888b58c67412f87f081a73e87c1f255dd9f7ff22f2d3dfeca124396b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000083014f3482400a80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2aff888b88602f88301028007830f424094000000000000000000000000000000000000010280a0000000000000000000000000000000000000000000000000000000000000400ac080a0bb3ce559097448cc0f472135f23a23223c471baa5a0e7e32e6236bb780cfcd5ea03b215d000a1d7c5ac13600f8c87d10dcaae1beefee270b0524248fcb0e37c807c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xdae25ea36fc4c8459156247f502733c53279bfcf492e5008004a3964e8d0eaf7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5645bce6f0d4638751a79b115dc8c03c28e760c12f054506c87451735e586797", + "transactionsTrie": "0xec346f8c6f8627ba6729eeffdfd48c6dca49b6522d5325258ebbd0c84a8cb7fe", + "receiptTrie": "0x5c2bee8a1888b58c67412f87f081a73e87c1f255dd9f7ff22f2d3dfeca124396", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x03", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014f34", + "timestamp": "0x400a", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "hash": "0xcd623d9f3c2fc889cb202d9cd5d0a939b3c3475d4173fa2704ae0600261ecef5" + }, + "blocknumber": "3", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000102", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000400a", + "accessList": [], + "v": "0x00", + "r": "0xbb3ce559097448cc0f472135f23a23223c471baa5a0e7e32e6236bb780cfcd5e", + "s": "0x3b215d000a1d7c5ac13600f8c87d10dcaae1beefee270b0524248fcb0e37c807", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0cd623d9f3c2fc889cb202d9cd5d0a939b3c3475d4173fa2704ae0600261ecef5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d12b5ec615ecf03a9820d441787158fb3f28478696a409ff98363a11fd6502eaa07db5a981fe6b68d77e02d667b42ccae41005d9534ca01a0be4374b5c3602b9aaa06d58fa0f2e47ec94fbb73207981e9b9dac306c2f208affeaa8d06e9de084b686b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a00008301698e82600980a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56f888b88602f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000000006009c080a02ca56782f9d5f7eb79fe1154eff616d66ae86b5bb25b7c87280fca31cad5a6e2a0016d558b6e6c1f187084e0bf881e1c68de037ae93cfab6f042bbe1eb79f0a0d7c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xcd623d9f3c2fc889cb202d9cd5d0a939b3c3475d4173fa2704ae0600261ecef5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd12b5ec615ecf03a9820d441787158fb3f28478696a409ff98363a11fd6502ea", + "transactionsTrie": "0x7db5a981fe6b68d77e02d667b42ccae41005d9534ca01a0be4374b5c3602b9aa", + "receiptTrie": "0x6d58fa0f2e47ec94fbb73207981e9b9dac306c2f208affeaa8d06e9de084b686", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x04", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01698e", + "timestamp": "0x6009", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "hash": "0xafcc77159abf037ff8560ad5d30cca32222c2c1dbaf757441d0aaa2024b82141" + }, + "blocknumber": "4", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000103", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000006009", + "accessList": [], + "v": "0x00", + "r": "0x2ca56782f9d5f7eb79fe1154eff616d66ae86b5bb25b7c87280fca31cad5a6e2", + "s": "0x016d558b6e6c1f187084e0bf881e1c68de037ae93cfab6f042bbe1eb79f0a0d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0afcc77159abf037ff8560ad5d30cca32222c2c1dbaf757441d0aaa2024b82141a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ba654d03bb3e06e222e4f9d866560547a13331bd336e0c36eb859636e61eee51a047bd749190ca2234ca9f7101d8168bcbd7f028abcf0e9a9bd46478d1dc1012fba02047586606cc219ef886e36b99e315b1776b6ba58d0c1258cd1e96e878eaa22bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000830183e882800880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6af888b88602f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000000008008c001a019a96cd589d91014a2288c2ad985decb35be34869b4e5725f90b8082a25dbca9a02d48469dc605fca3ba16025f34444993fd812d31ed0fa4f8d7004125c7780b5fc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xafcc77159abf037ff8560ad5d30cca32222c2c1dbaf757441d0aaa2024b82141", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xba654d03bb3e06e222e4f9d866560547a13331bd336e0c36eb859636e61eee51", + "transactionsTrie": "0x47bd749190ca2234ca9f7101d8168bcbd7f028abcf0e9a9bd46478d1dc1012fb", + "receiptTrie": "0x2047586606cc219ef886e36b99e315b1776b6ba58d0c1258cd1e96e878eaa22b", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x05", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0183e8", + "timestamp": "0x8008", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "hash": "0xcae20f42144930b097dbf507d84806e65c718da746377614f9c782141567b27d" + }, + "blocknumber": "5", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000104", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000008008", + "accessList": [], + "v": "0x01", + "r": "0x19a96cd589d91014a2288c2ad985decb35be34869b4e5725f90b8082a25dbca9", + "s": "0x2d48469dc605fca3ba16025f34444993fd812d31ed0fa4f8d7004125c7780b5f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0cae20f42144930b097dbf507d84806e65c718da746377614f9c782141567b27da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa004c36ea2440b028e2b022d11b6a708031b231772d878a1e39e5a4c072521fa42a05038c8561bc118976bacd74efb2aa0dbaa89761485444772948dda3b5d15ba27a05a7e3c4d6ef6f8e8093a07c69a165ccd071cec98804a792804c23695f37f8fbdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000083019e4282a00780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680af888b88602f88301058007830f424094000000000000000000000000000000000000010580a0000000000000000000000000000000000000000000000000000000000000a007c080a0b870a71c741be8d7546441a19e2c89995e6f81a0a0608a01782ec5133f85c715a029448befa43330091efa57b56f131dd6389e15a5c94b0ce5519b9fff9469325fc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xcae20f42144930b097dbf507d84806e65c718da746377614f9c782141567b27d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x04c36ea2440b028e2b022d11b6a708031b231772d878a1e39e5a4c072521fa42", + "transactionsTrie": "0x5038c8561bc118976bacd74efb2aa0dbaa89761485444772948dda3b5d15ba27", + "receiptTrie": "0x5a7e3c4d6ef6f8e8093a07c69a165ccd071cec98804a792804c23695f37f8fbd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x06", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019e42", + "timestamp": "0xa007", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "hash": "0x5c8ad1a6de26ee95d260e274e000d9d435356f4499bc0c068b175f5cab7f9fa4" + }, + "blocknumber": "6", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000105", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000a007", + "accessList": [], + "v": "0x00", + "r": "0xb870a71c741be8d7546441a19e2c89995e6f81a0a0608a01782ec5133f85c715", + "s": "0x29448befa43330091efa57b56f131dd6389e15a5c94b0ce5519b9fff9469325f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa05c8ad1a6de26ee95d260e274e000d9d435356f4499bc0c068b175f5cab7f9fa4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd87a5402a0aaddff3c8dbac1ad3d5426e1aa827a71797fc58de01971042dc50a0229ddc596a8e4aeec284dcb25856891435d69513f5428c2bdaed923a0398bcc8a07f2115b852dbb2e0896e74b5634a13acc53e1d740e9f4b1465f0ef2c24e56becb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a00008301b89c82c00680a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0ea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347f888b88602f88301068007830f424094000000000000000000000000000000000000010680a0000000000000000000000000000000000000000000000000000000000000c006c080a0d9e5952bc014675c06f4de83944fe2c95b5b60368f10b8bd43b03af0c174c106a0222c9ae53f27cbf00f41267160dc860bf6aea7a2c40170d7ef4c82ba76acff2bc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x5c8ad1a6de26ee95d260e274e000d9d435356f4499bc0c068b175f5cab7f9fa4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcd87a5402a0aaddff3c8dbac1ad3d5426e1aa827a71797fc58de01971042dc50", + "transactionsTrie": "0x229ddc596a8e4aeec284dcb25856891435d69513f5428c2bdaed923a0398bcc8", + "receiptTrie": "0x7f2115b852dbb2e0896e74b5634a13acc53e1d740e9f4b1465f0ef2c24e56bec", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x07", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01b89c", + "timestamp": "0xc006", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "hash": "0x4bc2f9554acf0b7cb664711b0759a9af7ee59b33eca2cda5e7036cc1076c3f36" + }, + "blocknumber": "7", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x06", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000106", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000c006", + "accessList": [], + "v": "0x00", + "r": "0xd9e5952bc014675c06f4de83944fe2c95b5b60368f10b8bd43b03af0c174c106", + "s": "0x222c9ae53f27cbf00f41267160dc860bf6aea7a2c40170d7ef4c82ba76acff2b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa04bc2f9554acf0b7cb664711b0759a9af7ee59b33eca2cda5e7036cc1076c3f36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa081e616ebf1f7e0e779f221babb1307aec3e7fd0ec1cafacf005faaf9144edac4a0337ca0e4cb34af5f887ef5ec06c3f65475b6cdebbd79c358395c723301784fbba0f7d349a2fc4b50cb7e1ac3f884d661c5bf7cbed1419abee93b06ccdd5b355e9fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a00008301d2f682e00580a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a07b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06f888b88602f88301078007830f424094000000000000000000000000000000000000010780a0000000000000000000000000000000000000000000000000000000000000e005c001a01f62a5e3d648c75f87693dbe848f69f802d99ca3506b0628330c674d8c868653a03bf9573646a5ba05649a567cdaaaa297cebe5b4dcb32937d4954dd793adbf14bc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x4bc2f9554acf0b7cb664711b0759a9af7ee59b33eca2cda5e7036cc1076c3f36", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x81e616ebf1f7e0e779f221babb1307aec3e7fd0ec1cafacf005faaf9144edac4", + "transactionsTrie": "0x337ca0e4cb34af5f887ef5ec06c3f65475b6cdebbd79c358395c723301784fbb", + "receiptTrie": "0xf7d349a2fc4b50cb7e1ac3f884d661c5bf7cbed1419abee93b06ccdd5b355e9f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x08", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d2f6", + "timestamp": "0xe005", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "hash": "0xe1fedbb2b898e33cbbf65bec87a8d07a51ad5c88aebb7003418c98da379cd5d9" + }, + "blocknumber": "8", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x07", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000107", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000e005", + "accessList": [], + "v": "0x01", + "r": "0x1f62a5e3d648c75f87693dbe848f69f802d99ca3506b0628330c674d8c868653", + "s": "0x3bf9573646a5ba05649a567cdaaaa297cebe5b4dcb32937d4954dd793adbf14b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90301f90240a0e1fedbb2b898e33cbbf65bec87a8d07a51ad5c88aebb7003418c98da379cd5d9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04cb2ac12ac5d6344819160bbdb42776e2f51d76971e46b4ef89d5b0f6ac487b4a0f73a7ceda9f0d42e5c841d8aa06dad8860c234a6eb5d1ffbc8fc37eed6b1c1eca0a085b65362c658016b31ba5eae46c16c24a628eebc524aefb311d86370fb2382b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008301ed508301000480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056f888b88602f88301088007830f424094000000000000000000000000000000000000010880a00000000000000000000000000000000000000000000000000000000000010004c080a0fc1b37904d415715770547a08a98dc262ab0a78ea8cd1f473c7c1af4a2d0fe57a05c8999533ba0fc34e349c3f2b2a8c9d7bcda0ce7f20ac52ad0851ab5344d5e2dc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xe1fedbb2b898e33cbbf65bec87a8d07a51ad5c88aebb7003418c98da379cd5d9", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4cb2ac12ac5d6344819160bbdb42776e2f51d76971e46b4ef89d5b0f6ac487b4", + "transactionsTrie": "0xf73a7ceda9f0d42e5c841d8aa06dad8860c234a6eb5d1ffbc8fc37eed6b1c1ec", + "receiptTrie": "0xa085b65362c658016b31ba5eae46c16c24a628eebc524aefb311d86370fb2382", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x09", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ed50", + "timestamp": "0x010004", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "hash": "0xe0f034484b7bc07c5b55e7b7ae260d3fd5bd170f280b898414681b712f072d3a" + }, + "blocknumber": "9", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x08", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000108", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000010004", + "accessList": [], + "v": "0x00", + "r": "0xfc1b37904d415715770547a08a98dc262ab0a78ea8cd1f473c7c1af4a2d0fe57", + "s": "0x5c8999533ba0fc34e349c3f2b2a8c9d7bcda0ce7f20ac52ad0851ab5344d5e2d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90301f90240a0e0f034484b7bc07c5b55e7b7ae260d3fd5bd170f280b898414681b712f072d3aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa085769718bb71e4f29667d5895bbd267a0b1de77ce022d782a626bc096375d911a06181c2f396e4cdeae4f742e3a2faa253ee28e6463dc9b3c61cd58d5a614c36e4a06525dfa59d1cbaa314ae67857e069d92fe648d722dc68428fb70d6a48f6a1a74b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a0000830207b68301200380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812f888b88602f88301098007830f424094000000000000000000000000000000000000010980a00000000000000000000000000000000000000000000000000000000000012003c001a033683e69cc0526c2cb1bdcbbbaca9350301dcc5df4fe7f0e840b5f91ea49ada3a0082b134448f3f01a961a4f43cfc381dec13993695295047f5b5b59d52bd00c6dc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xe0f034484b7bc07c5b55e7b7ae260d3fd5bd170f280b898414681b712f072d3a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x85769718bb71e4f29667d5895bbd267a0b1de77ce022d782a626bc096375d911", + "transactionsTrie": "0x6181c2f396e4cdeae4f742e3a2faa253ee28e6463dc9b3c61cd58d5a614c36e4", + "receiptTrie": "0x6525dfa59d1cbaa314ae67857e069d92fe648d722dc68428fb70d6a48f6a1a74", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0a", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0207b6", + "timestamp": "0x012003", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812", + "hash": "0xb032d0d5a3ea603c39641d285ce71d2e533acf683292bebf7f7ab1d9565a2161" + }, + "blocknumber": "10", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x09", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000109", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000012003", + "accessList": [], + "v": "0x01", + "r": "0x33683e69cc0526c2cb1bdcbbbaca9350301dcc5df4fe7f0e840b5f91ea49ada3", + "s": "0x082b134448f3f01a961a4f43cfc381dec13993695295047f5b5b59d52bd00c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0xb032d0d5a3ea603c39641d285ce71d2e533acf683292bebf7f7ab1d9565a2161", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": {} + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": {} + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": {} + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": {} + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561c00660005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": {} + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561c00660005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561e00560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": {} + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561c00660005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561e00560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f556201000460005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": {} + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561c00660005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561e00560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f556201000460005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16010556020516011556201200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": { + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04" + } + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": { + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af" + } + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": { + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56" + } + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": { + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a" + } + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": { + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a" + } + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561c00660005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": { + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347" + } + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561c00660005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561e00560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": { + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06" + } + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561c00660005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561e00560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f556201000460005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": { + "0x10": "0x01", + "0x11": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056" + } + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600c60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200b60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400a60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160045560205160055561600960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160065560205160075561800860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561a00760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561c00660005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561e00560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f556201000460005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16010556020516011556201200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": { + "0x12": "0x01", + "0x13": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x02540be400", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x012003", + "0x200b": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x0a", + "balance": "0xffff925442", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x02540be400", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-block_count=10-buffer_wraparound_overwrite_high_timestamp": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a071c483d5a122060097c19ece501cdad06276d9fd47ca75a26e8151d010d44b63a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x71c483d5a122060097c19ece501cdad06276d9fd47ca75a26e8151d010d44b63", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4b07f5096f151a7159611c8d2af9b2589a98fa2a175debbd1dce1b4ed90959f2" + }, + "blocks": [ + { + "rlp": "0xf90303f90242a04b07f5096f151a7159611c8d2af9b2589a98fa2a175debbd1dce1b4ed90959f2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ad3d1bb3836d313695027e4dcfe1bddead4eea76d16b52cccbbc16ef5ff70b9da0650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477a0a2d85a46f5270115b9edcdc9d47ab106447419f512d77a2738c24f82245e5bd3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011a7485010000000080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000100000000c001a0f1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1ba0366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bfc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x4b07f5096f151a7159611c8d2af9b2589a98fa2a175debbd1dce1b4ed90959f2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xad3d1bb3836d313695027e4dcfe1bddead4eea76d16b52cccbbc16ef5ff70b9d", + "transactionsTrie": "0x650bdb895a3cb0b6e1fbcb064599574ac83e33d9ad9841ac0a84b31dd6a28477", + "receiptTrie": "0xa2d85a46f5270115b9edcdc9d47ab106447419f512d77a2738c24f82245e5bd3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x011a74", + "timestamp": "0x0100000000", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x4015789ad9eb30f13583c10c06346ad3e505de3a72b9f1e52f8a84d5079dffa5" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100000000", + "accessList": [], + "v": "0x01", + "r": "0xf1da5ef451c6557383cd350619f550fc8ed70403dcf642ff0d288ff8617e4e1b", + "s": "0x366e72a2bbd616876f2b4f1c2a1fe60e786a9a7d1da5872d590707980d67e1bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90303f90242a04015789ad9eb30f13583c10c06346ad3e505de3a72b9f1e52f8a84d5079dffa5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08b4f28604eaed7a421f6479094b4ee582447d6499345a887a46dac4d1a44ca3ba010eaf5c482832108bbc12b4078690f8e2e966379263cbfbfda4f334ffd68ae3da0d7473ff615c13edbfdbc0f7103f611a2033e136c6cbaeb5b69afdd0fc7c4217ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830134e6850100001fff80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04f888b88602f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000100001fffc080a063c76f44da5b0716f7ef5970caa689b3e190a844fe110c460d096bb074c7864aa07fdf67a8ff7dc958388e0bf91383356adcdda6980205585a149040857e96be9ac0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x4015789ad9eb30f13583c10c06346ad3e505de3a72b9f1e52f8a84d5079dffa5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8b4f28604eaed7a421f6479094b4ee582447d6499345a887a46dac4d1a44ca3b", + "transactionsTrie": "0x10eaf5c482832108bbc12b4078690f8e2e966379263cbfbfda4f334ffd68ae3d", + "receiptTrie": "0xd7473ff615c13edbfdbc0f7103f611a2033e136c6cbaeb5b69afdd0fc7c4217a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0134e6", + "timestamp": "0x0100001fff", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "hash": "0xf00f0cd6dad8274ca3d42984446beeb023081538be20608d6939a9dff34812f9" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000101", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100001fff", + "accessList": [], + "v": "0x00", + "r": "0x63c76f44da5b0716f7ef5970caa689b3e190a844fe110c460d096bb074c7864a", + "s": "0x7fdf67a8ff7dc958388e0bf91383356adcdda6980205585a149040857e96be9a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90303f90242a0f00f0cd6dad8274ca3d42984446beeb023081538be20608d6939a9dff34812f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0246c0e3005f14195789d2d9126030f2b7a75dcd17ae951ae59c442ecd513bfbba019324e9486215c8c9e3ef3ead9119a6edacf0b4052efa83c44fbe69c3e22a4b3a0a76d80311a0c4fee9a44d9c9599757748a9184e2f9cf79ec7d848abaa9f50a21b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000083014f40850100003ffe80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2aff888b88602f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000100003ffec001a09482e84d9f769978a51c4ccdcb63ede123cd029d99d8f21627c856972db64ea8a0276c243ad6987f1662ad02d2a37034e8c64f32038790cad30965206375afef7dc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xf00f0cd6dad8274ca3d42984446beeb023081538be20608d6939a9dff34812f9", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x246c0e3005f14195789d2d9126030f2b7a75dcd17ae951ae59c442ecd513bfbb", + "transactionsTrie": "0x19324e9486215c8c9e3ef3ead9119a6edacf0b4052efa83c44fbe69c3e22a4b3", + "receiptTrie": "0xa76d80311a0c4fee9a44d9c9599757748a9184e2f9cf79ec7d848abaa9f50a21", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x03", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014f40", + "timestamp": "0x0100003ffe", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "hash": "0xdd9d61abdc97515e81a7556e87262e4bb774358037519c6d0507b76f2a0dd42f" + }, + "blocknumber": "3", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000102", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100003ffe", + "accessList": [], + "v": "0x01", + "r": "0x9482e84d9f769978a51c4ccdcb63ede123cd029d99d8f21627c856972db64ea8", + "s": "0x276c243ad6987f1662ad02d2a37034e8c64f32038790cad30965206375afef7d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90303f90242a0dd9d61abdc97515e81a7556e87262e4bb774358037519c6d0507b76f2a0dd42fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cfe2f9ee525cbf8ccace8c6e2109c60d64c044cd2f1907fafa8a8f1e79390622a0866474fbaf8a4c6442c80df59d03d54aaf0de42935ff9e5a516206f605981b38a044ad31c3467752010898632b99172edde70b1783407368fe57bce32449a51199b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a00008301699a850100005ffd80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56f888b88602f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000100005ffdc001a0f4d8b2510c1b4857c033cac1fada856c1f55c372fac817f9622a76ac194682f5a051944fe76d2fa77f1508e953356c7275d87662fcfa18847f6721d952ae5f7c0bc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xdd9d61abdc97515e81a7556e87262e4bb774358037519c6d0507b76f2a0dd42f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcfe2f9ee525cbf8ccace8c6e2109c60d64c044cd2f1907fafa8a8f1e79390622", + "transactionsTrie": "0x866474fbaf8a4c6442c80df59d03d54aaf0de42935ff9e5a516206f605981b38", + "receiptTrie": "0x44ad31c3467752010898632b99172edde70b1783407368fe57bce32449a51199", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x04", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01699a", + "timestamp": "0x0100005ffd", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "hash": "0x71f61bb8c70341c3fb7692b12ce08d8da4729737c0a037be16683b580a8b490f" + }, + "blocknumber": "4", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000103", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100005ffd", + "accessList": [], + "v": "0x01", + "r": "0xf4d8b2510c1b4857c033cac1fada856c1f55c372fac817f9622a76ac194682f5", + "s": "0x51944fe76d2fa77f1508e953356c7275d87662fcfa18847f6721d952ae5f7c0b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90303f90242a071f61bb8c70341c3fb7692b12ce08d8da4729737c0a037be16683b580a8b490fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b361b1469ad840befd82d3ac45a815968ec89e1eaf4ed9a026f08b0a8a6cd26a04e16709a9dbb9059cc19ca0857e9e1dd617bcee61331d9273ae1e369762e7261a0c418c03a668152a464502a687ac0af8677acc09f8f1f3aa334e58c76b740542fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000830183f4850100007ffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6af888b88602f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000100007ffcc080a001f5c7e5624ae7194bd65970923a196a3b4436567b8f520bfddacfbe383931c7a06b680ce647d1e837518adc4296d513650526ad5fda82604027b10f20ff3d7bb2c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x71f61bb8c70341c3fb7692b12ce08d8da4729737c0a037be16683b580a8b490f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6b361b1469ad840befd82d3ac45a815968ec89e1eaf4ed9a026f08b0a8a6cd26", + "transactionsTrie": "0x4e16709a9dbb9059cc19ca0857e9e1dd617bcee61331d9273ae1e369762e7261", + "receiptTrie": "0xc418c03a668152a464502a687ac0af8677acc09f8f1f3aa334e58c76b740542f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x05", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0183f4", + "timestamp": "0x0100007ffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "hash": "0x1b75aad4a5115306259fe7d785a9611bed478874f067d4820cf3dc274c0d1794" + }, + "blocknumber": "5", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000104", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100007ffc", + "accessList": [], + "v": "0x00", + "r": "0x01f5c7e5624ae7194bd65970923a196a3b4436567b8f520bfddacfbe383931c7", + "s": "0x6b680ce647d1e837518adc4296d513650526ad5fda82604027b10f20ff3d7bb2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90303f90242a01b75aad4a5115306259fe7d785a9611bed478874f067d4820cf3dc274c0d1794a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d27bdc730c3cdfc639f76a30145b5f6fe80c4b8615447bb8da3c455ddf48571ca05cb1e4c101fd4c1851479663ae16755c4fab16385f9fc0eca67ae31a290d658ca042ff1b401e6c888c2b1f71a429b85bdd21408d8bf3237a090f28f98ce9d661e3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000083019e4e850100009ffb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680af888b88602f88301058007830f424094000000000000000000000000000000000000010580a00000000000000000000000000000000000000000000000000000000100009ffbc001a0232f569be748b070e421aec070981f6b149142426642a53756a9ec6d2cef459ca006022479d5aac70296ee116fb3764f7b4f32c7effe92212d73160dbbb7abf461c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x1b75aad4a5115306259fe7d785a9611bed478874f067d4820cf3dc274c0d1794", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd27bdc730c3cdfc639f76a30145b5f6fe80c4b8615447bb8da3c455ddf48571c", + "transactionsTrie": "0x5cb1e4c101fd4c1851479663ae16755c4fab16385f9fc0eca67ae31a290d658c", + "receiptTrie": "0x42ff1b401e6c888c2b1f71a429b85bdd21408d8bf3237a090f28f98ce9d661e3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x06", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019e4e", + "timestamp": "0x0100009ffb", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "hash": "0x899cbead015d2b132c4b6739431ac59576ce4bf6faf45a1617698e90bed5e5eb" + }, + "blocknumber": "6", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000105", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100009ffb", + "accessList": [], + "v": "0x01", + "r": "0x232f569be748b070e421aec070981f6b149142426642a53756a9ec6d2cef459c", + "s": "0x06022479d5aac70296ee116fb3764f7b4f32c7effe92212d73160dbbb7abf461", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90303f90242a0899cbead015d2b132c4b6739431ac59576ce4bf6faf45a1617698e90bed5e5eba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04dd41aca7c7f5ff0d552cca146987b04978a155773499bc50194c5447eb0d7eca0dc608b457c8d1141931a2e4b90a89017433cf8cae8bc75e7c467694dfcdf24dba04693468165adfe03403680638fcb9dcb690cd521f0f2f1cbed5e9423c9eddb5fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a00008301b8a885010000bffa80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0ea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347f888b88602f88301068007830f424094000000000000000000000000000000000000010680a0000000000000000000000000000000000000000000000000000000010000bffac001a061eb83a0cd595cd038b874307bf7e26468169d65097aa2658b7759c1f60b7220a03de33816412fd59a6dfbc65c6d9fb153f84a9f70c984dd358636e5b7b8deffa8c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x899cbead015d2b132c4b6739431ac59576ce4bf6faf45a1617698e90bed5e5eb", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4dd41aca7c7f5ff0d552cca146987b04978a155773499bc50194c5447eb0d7ec", + "transactionsTrie": "0xdc608b457c8d1141931a2e4b90a89017433cf8cae8bc75e7c467694dfcdf24db", + "receiptTrie": "0x4693468165adfe03403680638fcb9dcb690cd521f0f2f1cbed5e9423c9eddb5f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x07", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01b8a8", + "timestamp": "0x010000bffa", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "hash": "0xa2b06d4b332039f72e713e7577a88d2ec57ae57d523c43bc9b31581da4842ab4" + }, + "blocknumber": "7", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x06", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000106", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000010000bffa", + "accessList": [], + "v": "0x01", + "r": "0x61eb83a0cd595cd038b874307bf7e26468169d65097aa2658b7759c1f60b7220", + "s": "0x3de33816412fd59a6dfbc65c6d9fb153f84a9f70c984dd358636e5b7b8deffa8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90303f90242a0a2b06d4b332039f72e713e7577a88d2ec57ae57d523c43bc9b31581da4842ab4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa072096a4ca8d6ac81f56d05d3c9ec36b845dcd6de28cfd7e31af377d6aea52cf8a0e5d0083655b94c84d51e8aa4302158120dc27fcda7cc6e6950169872d889981ba014dde025f0adc70487b4f6cd94ab556b89dc4f2e2a0509fca038253984282f86b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a00008301d30285010000dff980a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a07b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06f888b88602f88301078007830f424094000000000000000000000000000000000000010780a0000000000000000000000000000000000000000000000000000000010000dff9c001a0afe559ad8fdb17c6e856e035bf7508289698fc986c7d184a5f0bdfaa2e1ccb97a05efdcf54da1f55ffb0e105ce95caecc3c6067806fd72e857af19e68b8612f54ac0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xa2b06d4b332039f72e713e7577a88d2ec57ae57d523c43bc9b31581da4842ab4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x72096a4ca8d6ac81f56d05d3c9ec36b845dcd6de28cfd7e31af377d6aea52cf8", + "transactionsTrie": "0xe5d0083655b94c84d51e8aa4302158120dc27fcda7cc6e6950169872d889981b", + "receiptTrie": "0x14dde025f0adc70487b4f6cd94ab556b89dc4f2e2a0509fca038253984282f86", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x08", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d302", + "timestamp": "0x010000dff9", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "hash": "0xb0f7ce41c2720bb296094d19cbe3eeb7cb6dd4e746dbd3074e78277862c73103" + }, + "blocknumber": "8", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x07", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000107", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000010000dff9", + "accessList": [], + "v": "0x01", + "r": "0xafe559ad8fdb17c6e856e035bf7508289698fc986c7d184a5f0bdfaa2e1ccb97", + "s": "0x5efdcf54da1f55ffb0e105ce95caecc3c6067806fd72e857af19e68b8612f54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90303f90242a0b0f7ce41c2720bb296094d19cbe3eeb7cb6dd4e746dbd3074e78277862c73103a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03afbc287e40c4f5efccd668bf312f5d595d60124ab8a64700e2ee9a076afa3f2a036607b38908a998c13cdbb7a64de7c2bebbcbe96f8db6918a620fb8cf830ce01a0944c39723d27bc00e4b5e9f8a8c42318d187d858135ee011af37c63023d08633b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008301ed5c85010000fff880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056f888b88602f88301088007830f424094000000000000000000000000000000000000010880a0000000000000000000000000000000000000000000000000000000010000fff8c001a096bb6fac3591d69b47260505f8d78adc57e9a3cabe11179c416561ffcda72784a0350033dfeca2b4d24aaa28faf8beba00a866367ef42031e0090b79c3f1fe14aec0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xb0f7ce41c2720bb296094d19cbe3eeb7cb6dd4e746dbd3074e78277862c73103", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3afbc287e40c4f5efccd668bf312f5d595d60124ab8a64700e2ee9a076afa3f2", + "transactionsTrie": "0x36607b38908a998c13cdbb7a64de7c2bebbcbe96f8db6918a620fb8cf830ce01", + "receiptTrie": "0x944c39723d27bc00e4b5e9f8a8c42318d187d858135ee011af37c63023d08633", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x09", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ed5c", + "timestamp": "0x010000fff8", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "hash": "0xde6c8c5f88da58a5a16ba3e4d2427a49bdc119a57bdb60642a8a272d793bb817" + }, + "blocknumber": "9", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x08", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000108", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000010000fff8", + "accessList": [], + "v": "0x01", + "r": "0x96bb6fac3591d69b47260505f8d78adc57e9a3cabe11179c416561ffcda72784", + "s": "0x350033dfeca2b4d24aaa28faf8beba00a866367ef42031e0090b79c3f1fe14ae", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90303f90242a0de6c8c5f88da58a5a16ba3e4d2427a49bdc119a57bdb60642a8a272d793bb817a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07b9e163a30cc8263bbd90ee5604b59dc740c32ea79341c3e66d0d4f0d6fec75ea0f3e24d844f8d1915aea4844c3e5a02c0040b7be9126858de5b6a130f3824996aa0ae0df11d92a76606350a635257dd18a9c3a9af5d41551cb52d92c2615ca0c604b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a0000830207c2850100011ff780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812f888b88602f88301098007830f424094000000000000000000000000000000000000010980a00000000000000000000000000000000000000000000000000000000100011ff7c080a06816f5890b349a35941002d7265582ff5d0d08eba3bf9660e69babf6ba00ccf7a06233ab8c28b971ff831bb4cf4e7fd6b9192235a3e98b670edabfc7befe42bdefc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xde6c8c5f88da58a5a16ba3e4d2427a49bdc119a57bdb60642a8a272d793bb817", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7b9e163a30cc8263bbd90ee5604b59dc740c32ea79341c3e66d0d4f0d6fec75e", + "transactionsTrie": "0xf3e24d844f8d1915aea4844c3e5a02c0040b7be9126858de5b6a130f3824996a", + "receiptTrie": "0xae0df11d92a76606350a635257dd18a9c3a9af5d41551cb52d92c2615ca0c604", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0a", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0207c2", + "timestamp": "0x0100011ff7", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812", + "hash": "0x4f2ee5bfb057ceaabb58a4e2f78af18597b2aa05c1cfd2169427e3f3b8130098" + }, + "blocknumber": "10", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x09", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000109", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000100011ff7", + "accessList": [], + "v": "0x00", + "r": "0x6816f5890b349a35941002d7265582ff5d0d08eba3bf9660e69babf6ba00ccf7", + "s": "0x6233ab8c28b971ff831bb4cf4e7fd6b9192235a3e98b670edabfc7befe42bdef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x4f2ee5bfb057ceaabb58a4e2f78af18597b2aa05c1cfd2169427e3f3b8130098", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": {} + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": {} + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": {} + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": {} + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5564010000bffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": {} + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5564010000bffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5564010000dff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": {} + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5564010000bffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5564010000dff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5564010000fff860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": {} + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5564010000bffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5564010000dff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5564010000fff860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155640100011ff760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": { + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04" + } + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": { + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af" + } + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": { + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56" + } + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": { + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a" + } + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": { + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a" + } + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5564010000bffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": { + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347" + } + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5564010000bffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5564010000dff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": { + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06" + } + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5564010000bffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5564010000dff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5564010000fff860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": { + "0x10": "0x01", + "0x11": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056" + } + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x64010000000060005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155640100001fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355640100003ffe60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555640100005ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755640100007ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955640100009ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5564010000bffa60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5564010000dff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5564010000fff860005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155640100011ff760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": { + "0x12": "0x01", + "0x13": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x02540be400", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x40": "0x0100011ff7", + "0x203f": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x0a", + "balance": "0xffff92514e", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x02540be400", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-block_count=10-buffer_wraparound_no_overwrite": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a048b2c600b9ab3e0dadd50cae30b302616b8a02375b8f0684f81362566ec57a9fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x48b2c600b9ab3e0dadd50cae30b302616b8a02375b8f0684f81362566ec57a9f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa8a60c8dd1060f59e230117067d41f4a53ed6dfc8baba1f586f86b6e1a09bb4f" + }, + "blocks": [ + { + "rlp": "0xf902fef9023da0a8a60c8dd1060f59e230117067d41f4a53ed6dfc8baba1f586f86b6e1a09bb4fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa058654de10cf4663de07ca0fad02ecf39b010293616e32dd77984d3cd913e3a2fa06c0ac7b9fa185da88994ab4a294a8153ee39c19c92dfa6f73754c42756d8f43aa0a2d85a46f5270115b9edcdc9d47ab106447419f512d77a2738c24f82245e5bd3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011a740580a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000005c001a04ee23e1c1b3e82a92138bfa84a113275459629c1e6ad46d9cd773feca3d873a9a035f5e44b75665a9fda62239128271c99027c556431692ccf642d4f50e7079726c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xa8a60c8dd1060f59e230117067d41f4a53ed6dfc8baba1f586f86b6e1a09bb4f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x58654de10cf4663de07ca0fad02ecf39b010293616e32dd77984d3cd913e3a2f", + "transactionsTrie": "0x6c0ac7b9fa185da88994ab4a294a8153ee39c19c92dfa6f73754c42756d8f43a", + "receiptTrie": "0xa2d85a46f5270115b9edcdc9d47ab106447419f512d77a2738c24f82245e5bd3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x011a74", + "timestamp": "0x05", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0xb8824ed5973bc33dbbf82d709545b5140d0c8604a1b6046a5da5806fb65dfb96" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000005", + "accessList": [], + "v": "0x01", + "r": "0x4ee23e1c1b3e82a92138bfa84a113275459629c1e6ad46d9cd773feca3d873a9", + "s": "0x35f5e44b75665a9fda62239128271c99027c556431692ccf642d4f50e7079726", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0b8824ed5973bc33dbbf82d709545b5140d0c8604a1b6046a5da5806fb65dfb96a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fbe9173edccd28a1e0d275618930b1c051bad52c746631af5af01adc3da36349a0e31ee834911cf4633f4930736e386f1d3a06a2560ba267e79ce0db866a911aada09d190bfe01cc05c2d908be0c169c9dc2b632b3aa5d3513d52b58c277e109aa13b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301d89682200380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04f888b88602f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000000002003c080a04b07875a600c32d036ebb12ae87ea308eb1654b9d030d53ac0843280393c7dc5a002d40b2c3607de043f96966cdfb2d6a30806385aff121e17dee2b33c93f19adac0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xb8824ed5973bc33dbbf82d709545b5140d0c8604a1b6046a5da5806fb65dfb96", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfbe9173edccd28a1e0d275618930b1c051bad52c746631af5af01adc3da36349", + "transactionsTrie": "0xe31ee834911cf4633f4930736e386f1d3a06a2560ba267e79ce0db866a911aad", + "receiptTrie": "0x9d190bfe01cc05c2d908be0c169c9dc2b632b3aa5d3513d52b58c277e109aa13", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d896", + "timestamp": "0x2003", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "hash": "0xdef9ea961fc7c07f6946315dbb394b282acde89850a06d646255d3dc802aba36" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000101", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000002003", + "accessList": [], + "v": "0x00", + "r": "0x4b07875a600c32d036ebb12ae87ea308eb1654b9d030d53ac0843280393c7dc5", + "s": "0x02d40b2c3607de043f96966cdfb2d6a30806385aff121e17dee2b33c93f19ada", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0def9ea961fc7c07f6946315dbb394b282acde89850a06d646255d3dc802aba36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c7ee18e80d5a53965ac6d44772b188354d39af2ddc60a6579dce20c596c3fba5a0887070fafe91491f5190be508a14add543df70cc5106b43d535a42c325721bcca086f4d5fb45d2196c0f5dfd1635a728f0bfdd303c46261b7c444a309e8188acdfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a0000830296ac82400180a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2aff888b88602f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000000004001c001a05a952f0e9e69bb89de0d4296ca56fa80729af5e0c1f1b19ae4d499be12ea2569a0458dcaf693e911b55f49b09388882b1f6b1ed71f1c2f0c741e7fa9120f5c74c5c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xdef9ea961fc7c07f6946315dbb394b282acde89850a06d646255d3dc802aba36", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc7ee18e80d5a53965ac6d44772b188354d39af2ddc60a6579dce20c596c3fba5", + "transactionsTrie": "0x887070fafe91491f5190be508a14add543df70cc5106b43d535a42c325721bcc", + "receiptTrie": "0x86f4d5fb45d2196c0f5dfd1635a728f0bfdd303c46261b7c444a309e8188acdf", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x03", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0296ac", + "timestamp": "0x4001", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "hash": "0xc0148cdba0913792d316df8bffc34a04e845490270b16e9813250715a547f89c" + }, + "blocknumber": "3", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000102", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000004001", + "accessList": [], + "v": "0x01", + "r": "0x5a952f0e9e69bb89de0d4296ca56fa80729af5e0c1f1b19ae4d499be12ea2569", + "s": "0x458dcaf693e911b55f49b09388882b1f6b1ed71f1c2f0c741e7fa9120f5c74c5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0c0148cdba0913792d316df8bffc34a04e845490270b16e9813250715a547f89ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01b2dc6ab748cd186bc68b68cdadffbc303c8c5bc3a57b9a917b75ca68cfaf9a5a0a9ee49e0e0453a7eaae34529f25660765bf86723c097be4ba472849c25f2f346a0d5a1968330f55f7454e82a930b093898076147c3956766c88c45cc5df1ff7d5fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a0000830354c2825fff80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56f888b88602f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000000005fffc001a0d5b7e5dbc598b55f788c8db3cc507e29bd1c01d8ebd673110a140c084e951e4aa05958e461c4fba71297d2c3da0734948a9f199a0c27ad098c913c73bbf24017b1c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xc0148cdba0913792d316df8bffc34a04e845490270b16e9813250715a547f89c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1b2dc6ab748cd186bc68b68cdadffbc303c8c5bc3a57b9a917b75ca68cfaf9a5", + "transactionsTrie": "0xa9ee49e0e0453a7eaae34529f25660765bf86723c097be4ba472849c25f2f346", + "receiptTrie": "0xd5a1968330f55f7454e82a930b093898076147c3956766c88c45cc5df1ff7d5f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x04", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0354c2", + "timestamp": "0x5fff", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "hash": "0x1641cd69f317cc07601985474b2918a0e8df107637e5ba3ba1dc8bcbdd6fa915" + }, + "blocknumber": "4", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000103", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000005fff", + "accessList": [], + "v": "0x01", + "r": "0xd5b7e5dbc598b55f788c8db3cc507e29bd1c01d8ebd673110a140c084e951e4a", + "s": "0x5958e461c4fba71297d2c3da0734948a9f199a0c27ad098c913c73bbf24017b1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa01641cd69f317cc07601985474b2918a0e8df107637e5ba3ba1dc8bcbdd6fa915a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d8850e09502f5b8b99dc74bca2afcfb07fabe627cc872db94515ba31f1e8fe53a0869cab36e951d77c8bbb0b4330601a945a8390cc0dfcdc847014c251be3f6233a0f88d207ccbc9a001cf9b08e5fe25c2c5e4e3250fe802627ee011e128e6990ff3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000830412d8827ffd80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6af888b88602f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000000007ffdc001a08ed4b5ed69c8f6a40d6c8dad4d9b201f0e0fb19c72dae6fd982df0fe32e2fe41a048d5dcd7dcedaec84fff045f0cba2df4d0e8d9298fe8bfded52ac1aeca0fea51c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x1641cd69f317cc07601985474b2918a0e8df107637e5ba3ba1dc8bcbdd6fa915", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd8850e09502f5b8b99dc74bca2afcfb07fabe627cc872db94515ba31f1e8fe53", + "transactionsTrie": "0x869cab36e951d77c8bbb0b4330601a945a8390cc0dfcdc847014c251be3f6233", + "receiptTrie": "0xf88d207ccbc9a001cf9b08e5fe25c2c5e4e3250fe802627ee011e128e6990ff3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x05", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0412d8", + "timestamp": "0x7ffd", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "hash": "0x81bdd890da72afedc820453d6bd4480bd06cfbd83705482dc77db25b21329021" + }, + "blocknumber": "5", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000104", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000007ffd", + "accessList": [], + "v": "0x01", + "r": "0x8ed4b5ed69c8f6a40d6c8dad4d9b201f0e0fb19c72dae6fd982df0fe32e2fe41", + "s": "0x48d5dcd7dcedaec84fff045f0cba2df4d0e8d9298fe8bfded52ac1aeca0fea51", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa081bdd890da72afedc820453d6bd4480bd06cfbd83705482dc77db25b21329021a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa011139c0a7340a90175a48fe9d1446d2bf1ecb34e9c2fc34c3d66ca6b45ae5fc1a0639fd2c6048f2b6d2cfb85806d2411a8230d64d465f9081fbacc6e0d153d0c03a0c395e01f456de54047337d9fa978a1165d351438b1084f660549a8efacf3329cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008304d0ee829ffb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680af888b88602f88301058007830f424094000000000000000000000000000000000000010580a00000000000000000000000000000000000000000000000000000000000009ffbc080a08089cdd53be4bb9f1bc7192e700af6e8f937057347cce0ee44279fc191000fc7a00dbc6e77e42561f5050dfd56bbebaad180a24e3133e568e794faaa087ac827dfc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x81bdd890da72afedc820453d6bd4480bd06cfbd83705482dc77db25b21329021", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x11139c0a7340a90175a48fe9d1446d2bf1ecb34e9c2fc34c3d66ca6b45ae5fc1", + "transactionsTrie": "0x639fd2c6048f2b6d2cfb85806d2411a8230d64d465f9081fbacc6e0d153d0c03", + "receiptTrie": "0xc395e01f456de54047337d9fa978a1165d351438b1084f660549a8efacf3329c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x06", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x04d0ee", + "timestamp": "0x9ffb", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "hash": "0x823430b03e05c1817b956e101e86cdd03c7dbba897652db927f926a20907848f" + }, + "blocknumber": "6", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000105", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000009ffb", + "accessList": [], + "v": "0x00", + "r": "0x8089cdd53be4bb9f1bc7192e700af6e8f937057347cce0ee44279fc191000fc7", + "s": "0x0dbc6e77e42561f5050dfd56bbebaad180a24e3133e568e794faaa087ac827df", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0823430b03e05c1817b956e101e86cdd03c7dbba897652db927f926a20907848fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01013e9e6759dec8cb5d4eae8bee0ab663d0ce1d5c669463e164ec331f1027412a0f123c2644df6fc5ff900ad8d361f34c5fa4a22c8d7a7407d508e647aa1f7ef0aa07d35d2b8d2014300470d31ac1540f93b593ca742d927f7385eab6a079a9836e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000083058f0482bff980a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0ea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347f888b88602f88301068007830f424094000000000000000000000000000000000000010680a0000000000000000000000000000000000000000000000000000000000000bff9c080a099321277fb9f360c003856e037b3c1625cab2c24a7cc833ef767f4d7d8624d96a0114ada3574a972439fc7ef9478ffeff9ce988b765095e256a7a5df772869996bc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x823430b03e05c1817b956e101e86cdd03c7dbba897652db927f926a20907848f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1013e9e6759dec8cb5d4eae8bee0ab663d0ce1d5c669463e164ec331f1027412", + "transactionsTrie": "0xf123c2644df6fc5ff900ad8d361f34c5fa4a22c8d7a7407d508e647aa1f7ef0a", + "receiptTrie": "0x7d35d2b8d2014300470d31ac1540f93b593ca742d927f7385eab6a079a9836e0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x07", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x058f04", + "timestamp": "0xbff9", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "hash": "0x5b18f366f192a00a885bdc08790a0b1f8da49571b9da6d728d2b8e7b0b7aee73" + }, + "blocknumber": "7", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x06", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000106", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000bff9", + "accessList": [], + "v": "0x00", + "r": "0x99321277fb9f360c003856e037b3c1625cab2c24a7cc833ef767f4d7d8624d96", + "s": "0x114ada3574a972439fc7ef9478ffeff9ce988b765095e256a7a5df772869996b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa05b18f366f192a00a885bdc08790a0b1f8da49571b9da6d728d2b8e7b0b7aee73a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0909e5298ea9473b3bbf050aa595c7e16846ba6ee9a0e3df2102cc1dae9c3b040a0b7d0eef328139cb8aea7cfe2db5d488772d88931e939137e04143102acf1483ea0ac6a768609eb1de752cfef72f5a83b732ec8449e0f175a426b746c3958dddf2eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000083064d1a82dff780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a07b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06f888b88602f88301078007830f424094000000000000000000000000000000000000010780a0000000000000000000000000000000000000000000000000000000000000dff7c080a0d955be74a95178fce09fbdfed46f68f032bd73899b302f04c0cbb9cc54e4d859a04a41579158e38a5e36e2959bfb2ad8708637d496bbab5b1fec6029838d86db0fc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x5b18f366f192a00a885bdc08790a0b1f8da49571b9da6d728d2b8e7b0b7aee73", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x909e5298ea9473b3bbf050aa595c7e16846ba6ee9a0e3df2102cc1dae9c3b040", + "transactionsTrie": "0xb7d0eef328139cb8aea7cfe2db5d488772d88931e939137e04143102acf1483e", + "receiptTrie": "0xac6a768609eb1de752cfef72f5a83b732ec8449e0f175a426b746c3958dddf2e", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x08", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x064d1a", + "timestamp": "0xdff7", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "hash": "0x0b76f593d8be51899dfe46ab2830c9ab1b0a7cb5be400962850a6f0cb8f2640a" + }, + "blocknumber": "8", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x07", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000107", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000dff7", + "accessList": [], + "v": "0x00", + "r": "0xd955be74a95178fce09fbdfed46f68f032bd73899b302f04c0cbb9cc54e4d859", + "s": "0x4a41579158e38a5e36e2959bfb2ad8708637d496bbab5b1fec6029838d86db0f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa00b76f593d8be51899dfe46ab2830c9ab1b0a7cb5be400962850a6f0cb8f2640aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa068862ab2df34566769100ec5759099c014233eb67f2f5030c9f49f7fa49216aaa058008f78f4818d95aee7fd1a2d43b9834825b1eb3d8a82495be55b008defae71a011fbf8a19c10831883d2c2f5bbe651323b95b51b5634b1e6f5ba1f98524d2023b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a000083070b3082fff580a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056f888b88602f88301088007830f424094000000000000000000000000000000000000010880a0000000000000000000000000000000000000000000000000000000000000fff5c001a018274c92e27bfbf66012b3601ca04b2bb4ea575a49a59c15ea5a11f31b303f9da0439ffaad4fb2980935612be3d6b89690424f8bafdf59445c9d94dff99e0d363fc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x0b76f593d8be51899dfe46ab2830c9ab1b0a7cb5be400962850a6f0cb8f2640a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x68862ab2df34566769100ec5759099c014233eb67f2f5030c9f49f7fa49216aa", + "transactionsTrie": "0x58008f78f4818d95aee7fd1a2d43b9834825b1eb3d8a82495be55b008defae71", + "receiptTrie": "0x11fbf8a19c10831883d2c2f5bbe651323b95b51b5634b1e6f5ba1f98524d2023", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x09", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x070b30", + "timestamp": "0xfff5", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "hash": "0x2b73d016e553bd0e871024ea20577751318aef0720c789cf88128ad1ac8364f5" + }, + "blocknumber": "9", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x08", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000108", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000fff5", + "accessList": [], + "v": "0x01", + "r": "0x18274c92e27bfbf66012b3601ca04b2bb4ea575a49a59c15ea5a11f31b303f9d", + "s": "0x439ffaad4fb2980935612be3d6b89690424f8bafdf59445c9d94dff99e0d363f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90301f90240a02b73d016e553bd0e871024ea20577751318aef0720c789cf88128ad1ac8364f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0806a9201382a27178b805354bb8b9a2ad26964914920f73579adf8f97749700ba049beb66632a1e63fbe5d9b5e8905eac813c1c94fda683f8c9edce9c765c18102a045fb2b4df3e5922530dba26e1f4b7bb4229ffa6a279bc5dc0ae20d460eaf1702b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008307c95283011ff380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812f888b88602f88301098007830f424094000000000000000000000000000000000000010980a00000000000000000000000000000000000000000000000000000000000011ff3c080a0e82d7539ce3447d747f0c022a09e4cbe7c1fcf17ec10a42b1659aa51071387a9a076508a70ec42de159d441ab9eb2c67ac79394b6fbf1d7763f3c66d0b967a4e59c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x2b73d016e553bd0e871024ea20577751318aef0720c789cf88128ad1ac8364f5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x806a9201382a27178b805354bb8b9a2ad26964914920f73579adf8f97749700b", + "transactionsTrie": "0x49beb66632a1e63fbe5d9b5e8905eac813c1c94fda683f8c9edce9c765c18102", + "receiptTrie": "0x45fb2b4df3e5922530dba26e1f4b7bb4229ffa6a279bc5dc0ae20d460eaf1702", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0a", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x07c952", + "timestamp": "0x011ff3", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812", + "hash": "0x5dddd730d08e059a1831023e10458d1aa2f40def29d94025e13cf37dad5b8a39" + }, + "blocknumber": "10", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x09", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000109", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000011ff3", + "accessList": [], + "v": "0x00", + "r": "0xe82d7539ce3447d747f0c022a09e4cbe7c1fcf17ec10a42b1659aa51071387a9", + "s": "0x76508a70ec42de159d441ab9eb2c67ac79394b6fbf1d7763f3c66d0b967a4e59", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x5dddd730d08e059a1831023e10458d1aa2f40def29d94025e13cf37dad5b8a39", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": {} + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": {} + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": {} + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": {} + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561bff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": {} + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561bff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561dff760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": {} + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561bff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561dff760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561fff560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": {} + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561bff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561dff760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561fff560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115562011ff360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04" + } + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af" + } + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56" + } + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a" + } + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a" + } + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561bff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347" + } + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561bff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561dff760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06" + } + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561bff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561dff760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561fff560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "0x10": "0x01", + "0x11": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056" + } + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160005560205160015561200360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160025560205160035561400160005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555615fff60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755617ffd60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955619ffb60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561bff960005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561dff760005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5561fff560005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115562011ff360005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "0x10": "0x01", + "0x11": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "0x12": "0x01", + "0x13": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x02540be400", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x00": "0x9ffb", + "0x01": "0x7ffd", + "0x02": "0x5fff", + "0x03": "0x4001", + "0x04": "0x2003", + "0x05": "0x05", + "0x1ffb": "0x011ff3", + "0x1ffc": "0xfff5", + "0x1ffd": "0xdff7", + "0x1ffe": "0xbff9", + "0x1fff": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x2000": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x2001": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x2002": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x2003": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x2004": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x3ffa": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812", + "0x3ffb": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "0x3ffc": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "0x3ffd": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x0a", + "balance": "0xfffec8dbee", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x02540be400", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-block_count=10-buffer_wraparound_no_overwrite_2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02eb8e5f332b8bb8c899d0d936727868925876ac34da33236a949f397724de799a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2eb8e5f332b8bb8c899d0d936727868925876ac34da33236a949f397724de799", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa8709b4a17c3431e6c11461bd22c71aa5480e89cbcc3f75e7d869c5671f078d6" + }, + "blocks": [ + { + "rlp": "0xf90300f9023fa0a8709b4a17c3431e6c11461bd22c71aa5480e89cbcc3f75e7d869c5671f078d6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0af5f198fc20e1d15a1e4d3782c4d1494c361478b63e604d8bde4d1ade751a4dca0d655eb0e44f0c38303b8b20d76bcc36b947dfbe16db48eee0873ea895f27ba67a00469ee04d8c899b063d78f2064a0249a60b8cc1ac5c09dc1348802d9ebf8cfb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011a80821ffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000001ffcc080a0c48abd2aee788ecc0a653d33ba8c6e0b0cebeedb9042f771290ea364d2b4310fa03ba1e207a91fb3163477ce5d86ad65fe9f0747bece977a5cf4ada3d622f61a00c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xa8709b4a17c3431e6c11461bd22c71aa5480e89cbcc3f75e7d869c5671f078d6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xaf5f198fc20e1d15a1e4d3782c4d1494c361478b63e604d8bde4d1ade751a4dc", + "transactionsTrie": "0xd655eb0e44f0c38303b8b20d76bcc36b947dfbe16db48eee0873ea895f27ba67", + "receiptTrie": "0x0469ee04d8c899b063d78f2064a0249a60b8cc1ac5c09dc1348802d9ebf8cfb5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x011a80", + "timestamp": "0x1ffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x7f0d93bc1ff757627a6c458ee38300ed6cee2a81ffde0558469da0ca6bd0b42a" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000001ffc", + "accessList": [], + "v": "0x00", + "r": "0xc48abd2aee788ecc0a653d33ba8c6e0b0cebeedb9042f771290ea364d2b4310f", + "s": "0x3ba1e207a91fb3163477ce5d86ad65fe9f0747bece977a5cf4ada3d622f61a00", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa07f0d93bc1ff757627a6c458ee38300ed6cee2a81ffde0558469da0ca6bd0b42aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eab1b3cc86cc0e11c1a3fede4ae3cc25d6dd8b989f0b014ec2f53278c7613405a02f2aee59e32316e726d5bad0cc3184bd5a4e77991c4b46e05b698a7446271caca09d190bfe01cc05c2d908be0c169c9dc2b632b3aa5d3513d52b58c277e109aa13b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008301d896823ffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04f888b88602f88301018007830f424094000000000000000000000000000000000000010180a00000000000000000000000000000000000000000000000000000000000003ffcc001a00c8a1872802a80bfd8ae003b80db92f52c4138efd6d2f25d40da5cdb29b31c3aa04de228757c4b96cc41c526225d1cf165e5f9a159240797aa67ff98d7a7075ab1c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x7f0d93bc1ff757627a6c458ee38300ed6cee2a81ffde0558469da0ca6bd0b42a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xeab1b3cc86cc0e11c1a3fede4ae3cc25d6dd8b989f0b014ec2f53278c7613405", + "transactionsTrie": "0x2f2aee59e32316e726d5bad0cc3184bd5a4e77991c4b46e05b698a7446271cac", + "receiptTrie": "0x9d190bfe01cc05c2d908be0c169c9dc2b632b3aa5d3513d52b58c277e109aa13", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01d896", + "timestamp": "0x3ffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "hash": "0xfdff76ed8cac1a77cf3837e51e855c7f3f6a3884b4cd34374edf53d9ded7ea02" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000101", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000003ffc", + "accessList": [], + "v": "0x01", + "r": "0x0c8a1872802a80bfd8ae003b80db92f52c4138efd6d2f25d40da5cdb29b31c3a", + "s": "0x4de228757c4b96cc41c526225d1cf165e5f9a159240797aa67ff98d7a7075ab1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0fdff76ed8cac1a77cf3837e51e855c7f3f6a3884b4cd34374edf53d9ded7ea02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08d0b1f13dde49a326a30f1853b1029b839a5fbf017ae9520b8c640e012ae5881a0746ecc7fa3c5ec35978d567e5cd92cbc7c7a10d528200dfe90df2242cc3643b9a086f4d5fb45d2196c0f5dfd1635a728f0bfdd303c46261b7c444a309e8188acdfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a0000830296ac825ffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2aff888b88602f88301028007830f424094000000000000000000000000000000000000010280a00000000000000000000000000000000000000000000000000000000000005ffcc001a02d31283fcae0fac1ea13c522395dc23029a8e2b1311402d8f2e81fb52ac8d855a013be453e61185036a3dcddc6abcb604b785e6dc2be2f90bf6c8ba6125b24f00dc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xfdff76ed8cac1a77cf3837e51e855c7f3f6a3884b4cd34374edf53d9ded7ea02", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8d0b1f13dde49a326a30f1853b1029b839a5fbf017ae9520b8c640e012ae5881", + "transactionsTrie": "0x746ecc7fa3c5ec35978d567e5cd92cbc7c7a10d528200dfe90df2242cc3643b9", + "receiptTrie": "0x86f4d5fb45d2196c0f5dfd1635a728f0bfdd303c46261b7c444a309e8188acdf", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x03", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0296ac", + "timestamp": "0x5ffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "hash": "0xbaf348cbcdc452aebc5a26c2f4f622863051e2a0343086f01d68a12acaa023f0" + }, + "blocknumber": "3", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000102", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000005ffc", + "accessList": [], + "v": "0x01", + "r": "0x2d31283fcae0fac1ea13c522395dc23029a8e2b1311402d8f2e81fb52ac8d855", + "s": "0x13be453e61185036a3dcddc6abcb604b785e6dc2be2f90bf6c8ba6125b24f00d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0baf348cbcdc452aebc5a26c2f4f622863051e2a0343086f01d68a12acaa023f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07341069eb8af2bef7188f99308ef12180fb18c2a44a964a759b9a3a9a4d659e8a0627554b530b38abbbb7be3cc67614d08701dcad403964905d2e1337914a72fe2a0d5a1968330f55f7454e82a930b093898076147c3956766c88c45cc5df1ff7d5fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a0000830354c2827ffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0d2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56f888b88602f88301038007830f424094000000000000000000000000000000000000010380a00000000000000000000000000000000000000000000000000000000000007ffcc080a031a34aa1c748aef668146b812bcfc3bd3f4089bebab10e8f543ec55c325f19aca00af8747082cd092236cd84361109d686411e1837e905facb543ad6071c637dc1c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xbaf348cbcdc452aebc5a26c2f4f622863051e2a0343086f01d68a12acaa023f0", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7341069eb8af2bef7188f99308ef12180fb18c2a44a964a759b9a3a9a4d659e8", + "transactionsTrie": "0x627554b530b38abbbb7be3cc67614d08701dcad403964905d2e1337914a72fe2", + "receiptTrie": "0xd5a1968330f55f7454e82a930b093898076147c3956766c88c45cc5df1ff7d5f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x04", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0354c2", + "timestamp": "0x7ffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "hash": "0xe4cc9c334d0ee3428224d51bbc8b737e5d67294eb2e8a15ccc8dda75eaba9b32" + }, + "blocknumber": "4", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000103", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000007ffc", + "accessList": [], + "v": "0x00", + "r": "0x31a34aa1c748aef668146b812bcfc3bd3f4089bebab10e8f543ec55c325f19ac", + "s": "0x0af8747082cd092236cd84361109d686411e1837e905facb543ad6071c637dc1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0e4cc9c334d0ee3428224d51bbc8b737e5d67294eb2e8a15ccc8dda75eaba9b32a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0984a41fa2026c48815ed263ad2dc9f6659d2e935cda2ab7674e54038b2e776eba01df0a905201ee45c2effe3279632b2c084399cd4ec5590ccd64da98b5e8366f7a0f88d207ccbc9a001cf9b08e5fe25c2c5e4e3250fe802627ee011e128e6990ff3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000830412d8829ffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6af888b88602f88301048007830f424094000000000000000000000000000000000000010480a00000000000000000000000000000000000000000000000000000000000009ffcc001a0859efde4d2948d723c0050083bad1159dc201f91444a9871bb4f96093b5102eca06e889b02c203479bc8a8ec7589b18ef9248329289d7844a4c155674cc4a882f6c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xe4cc9c334d0ee3428224d51bbc8b737e5d67294eb2e8a15ccc8dda75eaba9b32", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x984a41fa2026c48815ed263ad2dc9f6659d2e935cda2ab7674e54038b2e776eb", + "transactionsTrie": "0x1df0a905201ee45c2effe3279632b2c084399cd4ec5590ccd64da98b5e8366f7", + "receiptTrie": "0xf88d207ccbc9a001cf9b08e5fe25c2c5e4e3250fe802627ee011e128e6990ff3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x05", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0412d8", + "timestamp": "0x9ffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "hash": "0xd714e47a0fc80973982f3a972b3c3925362e5fe50b8afd8fa3a1c9b356c89352" + }, + "blocknumber": "5", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000104", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000009ffc", + "accessList": [], + "v": "0x01", + "r": "0x859efde4d2948d723c0050083bad1159dc201f91444a9871bb4f96093b5102ec", + "s": "0x6e889b02c203479bc8a8ec7589b18ef9248329289d7844a4c155674cc4a882f6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0d714e47a0fc80973982f3a972b3c3925362e5fe50b8afd8fa3a1c9b356c89352a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e9abe5484d2dbbdf27ace064058f1eef29bc207a006a24e611e0a8e51c09246da05b4a62add8a6766dd000e824b735d88cd9f3ed067d289bf23f3d7591966a7a53a0c395e01f456de54047337d9fa978a1165d351438b1084f660549a8efacf3329cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008304d0ee82bffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680af888b88602f88301058007830f424094000000000000000000000000000000000000010580a0000000000000000000000000000000000000000000000000000000000000bffcc080a0a2be7a3831c801d8cb5df3fa51e08d303d0dd1c1cdd786bf804580c53c19d630a07ae1ea27d33936cae576382ea7d4633562f08810ffe21cc15d7d2950680059cdc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xd714e47a0fc80973982f3a972b3c3925362e5fe50b8afd8fa3a1c9b356c89352", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe9abe5484d2dbbdf27ace064058f1eef29bc207a006a24e611e0a8e51c09246d", + "transactionsTrie": "0x5b4a62add8a6766dd000e824b735d88cd9f3ed067d289bf23f3d7591966a7a53", + "receiptTrie": "0xc395e01f456de54047337d9fa978a1165d351438b1084f660549a8efacf3329c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x06", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x04d0ee", + "timestamp": "0xbffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "hash": "0xdf6ce378c0569015984f14cdb94c6cc65baa0144563ac36bcf6a263f073ee343" + }, + "blocknumber": "6", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000105", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000bffc", + "accessList": [], + "v": "0x00", + "r": "0xa2be7a3831c801d8cb5df3fa51e08d303d0dd1c1cdd786bf804580c53c19d630", + "s": "0x7ae1ea27d33936cae576382ea7d4633562f08810ffe21cc15d7d2950680059cd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa0df6ce378c0569015984f14cdb94c6cc65baa0144563ac36bcf6a263f073ee343a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa035e3eaea0e93f769bc7276d6ed876cd85751bb5de21896bc62f3f8f6a88ade45a0404d619d01021c6c22387ba84c59514382f6fdf87bd75995d7b8638beb7c2712a07d35d2b8d2014300470d31ac1540f93b593ca742d927f7385eab6a079a9836e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000083058f0482dffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0ea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347f888b88602f88301068007830f424094000000000000000000000000000000000000010680a0000000000000000000000000000000000000000000000000000000000000dffcc080a0f7ea2d52f3de079830855aaae72944a73e230c2dd788c6eef42cb78c73599da9a02b33007f3fe045f556f8b53098df95b5925eff7c7782280fb816607195405542c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0xdf6ce378c0569015984f14cdb94c6cc65baa0144563ac36bcf6a263f073ee343", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x35e3eaea0e93f769bc7276d6ed876cd85751bb5de21896bc62f3f8f6a88ade45", + "transactionsTrie": "0x404d619d01021c6c22387ba84c59514382f6fdf87bd75995d7b8638beb7c2712", + "receiptTrie": "0x7d35d2b8d2014300470d31ac1540f93b593ca742d927f7385eab6a079a9836e0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x07", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x058f04", + "timestamp": "0xdffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "hash": "0x31dd0cb523a69b15e1f38367a7d57cc136eadff1917b3f91e1d8645c96cfbae8" + }, + "blocknumber": "7", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x06", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000106", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000dffc", + "accessList": [], + "v": "0x00", + "r": "0xf7ea2d52f3de079830855aaae72944a73e230c2dd788c6eef42cb78c73599da9", + "s": "0x2b33007f3fe045f556f8b53098df95b5925eff7c7782280fb816607195405542", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90300f9023fa031dd0cb523a69b15e1f38367a7d57cc136eadff1917b3f91e1d8645c96cfbae8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fe6e8167bfd863460eba2bde3e7a2f44a1d9a4d5d625c9fc1a946b64735a43b4a0589401b2a8931f9a82f661fbed0af7675d6d5c004c92189c703752d40b842955a0ac6a768609eb1de752cfef72f5a83b732ec8449e0f175a426b746c3958dddf2eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000083064d1a82fffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a07b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06f888b88602f88301078007830f424094000000000000000000000000000000000000010780a0000000000000000000000000000000000000000000000000000000000000fffcc001a0a6a574999876d75ce189260bb55a248b664ef6d1c5f1ea2b7943079d1d173429a046519ab4146f910b27cf56c8b093e2a84f2875b53a08261dddfd8992f947c2c8c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x31dd0cb523a69b15e1f38367a7d57cc136eadff1917b3f91e1d8645c96cfbae8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfe6e8167bfd863460eba2bde3e7a2f44a1d9a4d5d625c9fc1a946b64735a43b4", + "transactionsTrie": "0x589401b2a8931f9a82f661fbed0af7675d6d5c004c92189c703752d40b842955", + "receiptTrie": "0xac6a768609eb1de752cfef72f5a83b732ec8449e0f175a426b746c3958dddf2e", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x08", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x064d1a", + "timestamp": "0xfffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "hash": "0x7a10e29883ebce0df78ad079f5d93c4b2a0472897fd31a879f5c8ab3d2096120" + }, + "blocknumber": "8", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x07", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000107", + "value": "0x00", + "data": "0x000000000000000000000000000000000000000000000000000000000000fffc", + "accessList": [], + "v": "0x01", + "r": "0xa6a574999876d75ce189260bb55a248b664ef6d1c5f1ea2b7943079d1d173429", + "s": "0x46519ab4146f910b27cf56c8b093e2a84f2875b53a08261dddfd8992f947c2c8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90301f90240a07a10e29883ebce0df78ad079f5d93c4b2a0472897fd31a879f5c8ab3d2096120a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c06e49e2b4acfdde92e5bc9f6d80e4ead0ace0a1372c8e0b718f9871e05a9530a0a529c325cb6f5872b7bd1c5196f127463faeaad687c7ba879e846ea8f92fff75a048755a1ae66d4d621b5728e98a04a1065c91cf058d8154c0b2345f699192c843b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a000083070b3c83011ffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0c05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056f888b88602f88301088007830f424094000000000000000000000000000000000000010880a00000000000000000000000000000000000000000000000000000000000011ffcc001a08c406b2b9ddeae565d7eecbd1e50f4a80c36878b9b293776087c011ac45bdf4fa0697dd4b7fddefa84afa96ff5943b970365762d1ece72dd45836ce22176dfc1acc0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x7a10e29883ebce0df78ad079f5d93c4b2a0472897fd31a879f5c8ab3d2096120", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc06e49e2b4acfdde92e5bc9f6d80e4ead0ace0a1372c8e0b718f9871e05a9530", + "transactionsTrie": "0xa529c325cb6f5872b7bd1c5196f127463faeaad687c7ba879e846ea8f92fff75", + "receiptTrie": "0x48755a1ae66d4d621b5728e98a04a1065c91cf058d8154c0b2345f699192c843", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x09", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x070b3c", + "timestamp": "0x011ffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "hash": "0x7aed19732bd396adb98028239f76e5a7f46a8429d4d9af3cc39cf8003d870268" + }, + "blocknumber": "9", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x08", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000108", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000011ffc", + "accessList": [], + "v": "0x01", + "r": "0x8c406b2b9ddeae565d7eecbd1e50f4a80c36878b9b293776087c011ac45bdf4f", + "s": "0x697dd4b7fddefa84afa96ff5943b970365762d1ece72dd45836ce22176dfc1ac", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90301f90240a07aed19732bd396adb98028239f76e5a7f46a8429d4d9af3cc39cf8003d870268a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f5885dbd4b6f249fb9f7e3dffc475b0164e46a1eb97d8150b0211f2fc6ef136fa0fe86f5e515537aab07af02f510467d0db1b96c3eee0748435c740a95ae755aaea045fb2b4df3e5922530dba26e1f4b7bb4229ffa6a279bc5dc0ae20d460eaf1702b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008307c95283013ffc80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a0fda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812f888b88602f88301098007830f424094000000000000000000000000000000000000010980a00000000000000000000000000000000000000000000000000000000000013ffcc001a0a963f89b94768aa1cbf4e37b7d6ff6ece18b0043d7e1cf9a0a462e7e97b588c0a039f3399cd32d52053a564e9701f47c7b1990bd391637f1386f398d2c6cb82c07c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x7aed19732bd396adb98028239f76e5a7f46a8429d4d9af3cc39cf8003d870268", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf5885dbd4b6f249fb9f7e3dffc475b0164e46a1eb97d8150b0211f2fc6ef136f", + "transactionsTrie": "0xfe86f5e515537aab07af02f510467d0db1b96c3eee0748435c740a95ae755aae", + "receiptTrie": "0x45fb2b4df3e5922530dba26e1f4b7bb4229ffa6a279bc5dc0ae20d460eaf1702", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0a", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x07c952", + "timestamp": "0x013ffc", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812", + "hash": "0xa01e7491cc42458ee14e9042e18b60f90a9d4a70eb95cbe055173d8f681883f4" + }, + "blocknumber": "10", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x09", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000109", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000013ffc", + "accessList": [], + "v": "0x01", + "r": "0xa963f89b94768aa1cbf4e37b7d6ff6ece18b0043d7e1cf9a0a462e7e97b588c0", + "s": "0x39f3399cd32d52053a564e9701f47c7b1990bd391637f1386f398d2c6cb82c07", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0xa01e7491cc42458ee14e9042e18b60f90a9d4a70eb95cbe055173d8f681883f4", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": {} + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": {} + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": {} + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": {} + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": {} + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561dffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": {} + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561dffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561fffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": {} + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561dffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561fffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5562011ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": {} + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561dffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561fffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5562011ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115562013ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f" + } + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04" + } + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af" + } + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56" + } + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600855602051600955", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a" + } + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b55", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a" + } + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561dffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d55", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347" + } + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561dffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561fffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f55", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06" + } + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561dffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561fffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5562011ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601055602051601155", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "0x10": "0x01", + "0x11": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056" + } + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x611ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600055602051600155613ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600255602051600355615ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600455602051600555617ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600655602051600755619ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160085560205160095561bffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600a55602051600b5561dffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600c55602051600d5561fffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1600e55602051600f5562011ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f160105560205160115562013ffc60005260206020602060006000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f1601255602051601355", + "storage": { + "0x00": "0x01", + "0x01": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x02": "0x01", + "0x03": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x04": "0x01", + "0x05": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af", + "0x06": "0x01", + "0x07": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x08": "0x01", + "0x09": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x0a": "0x01", + "0x0b": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x0c": "0x01", + "0x0d": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x0e": "0x01", + "0x0f": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "0x10": "0x01", + "0x11": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "0x12": "0x01", + "0x13": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x02540be400", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x00": "0x7ffc", + "0x01": "0x9ffc", + "0x02": "0xbffc", + "0x03": "0xdffc", + "0x04": "0xfffc", + "0x05": "0x011ffc", + "0x06": "0x013ffc", + "0x1ffc": "0x1ffc", + "0x1ffd": "0x3ffc", + "0x1ffe": "0x5ffc", + "0x1fff": "0xd2ed8d75f801ae8a206c07ff9b104f0e005238dcd1cbaf844fd9f40d63174c56", + "0x2000": "0xfe07a98784cd1850eae35ede546d7028e6bf9569108995fc410868db775e5e6a", + "0x2001": "0xc3751ea2572cb6b4f061af1127a67eaded2cfc191f2a18d69000bbe2e98b680a", + "0x2002": "0xea2e640cf9cf85178466ebb2f721ea6b3ec88def0a8c3d3f7d31e775eed05347", + "0x2003": "0x7b2d9ad83603f6d16ce3a070609e9ad72bcf844975f740bddbafde0a0de6dc06", + "0x2004": "0xc05de23bfc9a474d4cb19960330725d05fd8960ebedae32eb1868990b29a9056", + "0x2005": "0xfda940ba5250d10bd3c701ef3e627a7b0bd0fd5143c45a35981f247fa1db3812", + "0x3ffb": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "0x3ffc": "0x859f11b75569a4eb0496c5138fd42cc52aee8cf5c4e7cfafe58c92b2ed138e04", + "0x3ffd": "0xd4c69e49e83a6047f46e42b2d053a1f0c6e70ea42862e5ef4ad66b3666c5e2af" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x0a", + "balance": "0xfffec8db46", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x02540be400", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json new file mode 100644 index 00000000000..5f37e10ef55 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip4788_beacon_root/blocks_beacon_root_contract/no_beacon_root_contract_at_transition.json @@ -0,0 +1,143 @@ +{ + "000-fork=ShanghaiToCancunAtTime15k-timestamp=15000": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4788.md", + "reference-spec-version": "e7608fe8ac8a60934ca874f5aab7d5c1f4ff7782" + }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01b7fdfc0c6daa3895a83f28fd4cfd85d2e60fc0d3f8c836747f17969ebb4e629a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1b7fdfc0c6daa3895a83f28fd4cfd85d2e60fc0d3f8c836747f17969ebb4e629", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x5b73fac5dab59faacd61b4c9c3cc0df024b382cb11ec862ea3f0d5cfba047def" + }, + "blocks": [ + { + "rlp": "0xf902fff9023ea05b73fac5dab59faacd61b4c9c3cc0df024b382cb11ec862ea3f0d5cfba047defa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00aa03d9322e2f94ac5c91c4fd18aa0d6a25dd2023876f7eaa8f50d22be2806d4a064491dfba31aa11099c81e1c7c95f0818b4f927d4b3552143a25ea44512fe125a0037c6a35920271e48744434ea58c2e865d703f151d7bfea7a823cfc9b4232bbbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cd31823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb8080a06c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100ff888b88602f88301808007830f424094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000003a98c001a0faa933f2812dcf366269cdad3b8bdbf6d293fe5dcd0d3313089d619e99b77c2ea0541ff2b494d5a6856ee685c0647a47b60a6eb7823dd0b72c74123ea33f0e4e41c0f2d8808094000f3df6d732807ef1319fb7b8bb8522d0beac0201d8010194fffffffffffffffffffffffffffffffffffffffe01", + "blockHeader": { + "parentHash": "0x5b73fac5dab59faacd61b4c9c3cc0df024b382cb11ec862ea3f0d5cfba047def", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0aa03d9322e2f94ac5c91c4fd18aa0d6a25dd2023876f7eaa8f50d22be2806d4", + "transactionsTrie": "0x64491dfba31aa11099c81e1c7c95f0818b4f927d4b3552143a25ea44512fe125", + "receiptTrie": "0x037c6a35920271e48744434ea58c2e865d703f151d7bfea7a823cfc9b4232bbb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xcd31", + "timestamp": "0x3a98", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2aef4d3e6939af0b4bf4c0e7572a214eb7db9ba52937e1e82ad6c64b52d2e8bb", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x6c31fc15422ebad28aaf9089c306702f67540b53c7eea8b7d2941044b027100f", + "hash": "0x883b9fcff07ca69984ee927fe23979d684cadd9ff174a51ce08cdda820038f37" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000003a98", + "accessList": [], + "v": "0x01", + "r": "0xfaa933f2812dcf366269cdad3b8bdbf6d293fe5dcd0d3313089d619e99b77c2e", + "s": "0x541ff2b494d5a6856ee685c0647a47b60a6eb7823dd0b72c74123ea33f0e4e41", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0xfffffffffffffffffffffffffffffffffffffffe", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x883b9fcff07ca69984ee927fe23979d684cadd9ff174a51ce08cdda820038f37", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x010000000000", + "code": "0x366000602037602060003660206000720f3df6d732807ef1319fb7b8bb8522d0beac02620186a0f16000556000516001553d6002553d600060003e600051600355", + "storage": { + "0x00": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffa63a9", + "code": "0x", + "storage": {} + }, + "0xfffffffffffffffffffffffffffffffffffffffe": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json index 49b8ada66ce..65ac657924d 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_calldata_opcodes.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-tx_gas=500000-empty-opcode=CALLDATALOAD": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09c4f3f94b40317762bb7694ab3f28235a24ef8ae7f96d9b03fd526c17f8e6657a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9c4f3f94b40317762bb7694ab3f28235a24ef8ae7f96d9b03fd526c17f8e6657", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2c8f1304cddb63106c8bf24f50bf6aee1905888a923fe8c238aede613a2d7475" + }, "blocks": [ { - "rlp": "0xf902d4f90242a04f38fac714d5a847381657ccc092cffe3ea51dffd19fbf50a3103e6984078500a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa041b870f0adf06409d25833fc87037e631444fb6a0cf16ae113a96f346ee3d0e5a01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a092b9b37e879f056258d13f15f2eefe780f041e6a5e5c53ab506c6302295ec369b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825aa90c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", + "rlp": "0xf902d4f90242a02c8f1304cddb63106c8bf24f50bf6aee1905888a923fe8c238aede613a2d7475a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a068e49b031b73ac925eef0b75bc723022063a1ee84104e9b5bdcecafd1cf357a01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a092b9b37e879f056258d13f15f2eefe780f041e6a5e5c53ab506c6302295ec369b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825aa90c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", "blockHeader": { - "parentHash": "0x4f38fac714d5a847381657ccc092cffe3ea51dffd19fbf50a3103e6984078500", + "parentHash": "0x2c8f1304cddb63106c8bf24f50bf6aee1905888a923fe8c238aede613a2d7475", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x41b870f0adf06409d25833fc87037e631444fb6a0cf16ae113a96f346ee3d0e5", + "stateRoot": "0xa068e49b031b73ac925eef0b75bc723022063a1ee84104e9b5bdcecafd1cf357", "transactionsTrie": "0x1f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875", "receiptTrie": "0x92b9b37e879f056258d13f15f2eefe780f041e6a5e5c53ab506c6302295ec369", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,35 +54,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x49d08bc68ba81b97277e7878c2d5767c284cd92dc9758320c3c021fb1e234b00" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4f38fac714d5a847381657ccc092cffe3ea51dffd19fbf50a3103e6984078500", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x41b870f0adf06409d25833fc87037e631444fb6a0cf16ae113a96f346ee3d0e5", - "receiptsRoot": "0x92b9b37e879f056258d13f15f2eefe780f041e6a5e5c53ab506c6302295ec369", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5aa9", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x49d08bc68ba81b97277e7878c2d5767c284cd92dc9758320c3c021fb1e234b00", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68ea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x98f2a157de151d9000c2a39bfa190fffdcbfa48611e7f89daceb8331438d8f0f" }, "blocknumber": "1", "transactions": [ @@ -86,45 +83,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xcecc22c56797bca660c2da6766c3fe2a9db571aa81ad5ad87809f1e0dae35114", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4f38fac714d5a847381657ccc092cffe3ea51dffd19fbf50a3103e6984078500" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cecc22c56797bca660c2da6766c3fe2a9db571aa81ad5ad87809f1e0dae35114a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x49d08bc68ba81b97277e7878c2d5767c284cd92dc9758320c3c021fb1e234b00", - "network": "Cancun", + "lastblockhash": "0x98f2a157de151d9000c2a39bfa190fffdcbfa48611e7f89daceb8331438d8f0f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x600035600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767e1", @@ -133,20 +105,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", "code": "0x600035600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x32ed41", @@ -158,18 +130,43 @@ }, "001-fork=Cancun-tx_gas=500000-empty-opcode=CALLDATASIZE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a097ed41cebe72e3064d3c8f36685d5d13da0bd16594b649bad22268e11132ff22a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x97ed41cebe72e3064d3c8f36685d5d13da0bd16594b649bad22268e11132ff22", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xffa667d5371028b7c65645602f45cc8aaecc0f886b6f9eb3aff7285c37d6bb14" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0acd3a67eef128f7bbc4133696f70bd700d4d00cbaac02234fb158bbd4cf14a93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05dd2c61564b28b6a25a34dc40674b4e01f5c2fedcec1e855e32246cd830a98baa01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0177fa2fb1e9167ed2b44e478ba54b39da40523cc985950390a475b658986a486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825aa50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", + "rlp": "0xf902d4f90242a0ffa667d5371028b7c65645602f45cc8aaecc0f886b6f9eb3aff7285c37d6bb14a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05757cc57cf166a12f15b40200a93a552132494fffa7a9dd7f2f14bf7004d5f16a01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0177fa2fb1e9167ed2b44e478ba54b39da40523cc985950390a475b658986a486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825aa50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", "blockHeader": { - "parentHash": "0xacd3a67eef128f7bbc4133696f70bd700d4d00cbaac02234fb158bbd4cf14a93", + "parentHash": "0xffa667d5371028b7c65645602f45cc8aaecc0f886b6f9eb3aff7285c37d6bb14", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5dd2c61564b28b6a25a34dc40674b4e01f5c2fedcec1e855e32246cd830a98ba", + "stateRoot": "0x5757cc57cf166a12f15b40200a93a552132494fffa7a9dd7f2f14bf7004d5f16", "transactionsTrie": "0x1f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875", "receiptTrie": "0x177fa2fb1e9167ed2b44e478ba54b39da40523cc985950390a475b658986a486", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -186,35 +183,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0a7136dd26f41770c884c1de33c62608ef124a36f7e983b99da53c80ce33d6ac" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xacd3a67eef128f7bbc4133696f70bd700d4d00cbaac02234fb158bbd4cf14a93", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5dd2c61564b28b6a25a34dc40674b4e01f5c2fedcec1e855e32246cd830a98ba", - "receiptsRoot": "0x177fa2fb1e9167ed2b44e478ba54b39da40523cc985950390a475b658986a486", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5aa5", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x0a7136dd26f41770c884c1de33c62608ef124a36f7e983b99da53c80ce33d6ac", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68ea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0f8fb7a2663a48a7a5f65189b44247c4be1836dc638c411ee144ba98a88fef36" }, "blocknumber": "1", "transactions": [ @@ -243,45 +212,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4cf99aa490823b7ff73af12ce4964cb66787a110657325d89e0be53d9af4d5b1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xacd3a67eef128f7bbc4133696f70bd700d4d00cbaac02234fb158bbd4cf14a93" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04cf99aa490823b7ff73af12ce4964cb66787a110657325d89e0be53d9af4d5b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0a7136dd26f41770c884c1de33c62608ef124a36f7e983b99da53c80ce33d6ac", - "network": "Cancun", + "lastblockhash": "0x0f8fb7a2663a48a7a5f65189b44247c4be1836dc638c411ee144ba98a88fef36", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x36600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767e1", @@ -290,20 +234,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", "code": "0x36600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x32ed5d", @@ -315,18 +259,43 @@ }, "002-fork=Cancun-tx_gas=500000-empty-opcode=CALLDATACOPY": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a086f5725c30a4346aeeb19653b9762bd36b9910a83c8126ebc1f2174dafb5569aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x86f5725c30a4346aeeb19653b9762bd36b9910a83c8126ebc1f2174dafb5569a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc3fdfc78b1d2dd0e66f0b84a1c3f1c52c91cdab3094ab31c9085172a3c44ff0b" + }, "blocks": [ { - "rlp": "0xf902d4f90242a05541d87537fd4819c4338b34a24f4ed16ca68d7cfb6458b976512aebb0e773cda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0065d1d30aa557414a61620f21c47059d107d8f565826fd2a0d84ef505d9c56d4a01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0caedb3349f16dbe45c4b0eaa0a21c0939b6f841eab4e7ad79db9c9a7a13e91f0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825ab70c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", + "rlp": "0xf902d4f90242a0c3fdfc78b1d2dd0e66f0b84a1c3f1c52c91cdab3094ab31c9085172a3c44ff0ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0057492650dad39047d1870280ca1bf2b31897e1f30778cb65c91bb62aeb63953a01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0caedb3349f16dbe45c4b0eaa0a21c0939b6f841eab4e7ad79db9c9a7a13e91f0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825ab70c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", "blockHeader": { - "parentHash": "0x5541d87537fd4819c4338b34a24f4ed16ca68d7cfb6458b976512aebb0e773cd", + "parentHash": "0xc3fdfc78b1d2dd0e66f0b84a1c3f1c52c91cdab3094ab31c9085172a3c44ff0b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x065d1d30aa557414a61620f21c47059d107d8f565826fd2a0d84ef505d9c56d4", + "stateRoot": "0x057492650dad39047d1870280ca1bf2b31897e1f30778cb65c91bb62aeb63953", "transactionsTrie": "0x1f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875", "receiptTrie": "0xcaedb3349f16dbe45c4b0eaa0a21c0939b6f841eab4e7ad79db9c9a7a13e91f0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -343,35 +312,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc64e236fccc4078635c9ed025b5f9457501887dcaa30bd84509ac9f74dd930f0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5541d87537fd4819c4338b34a24f4ed16ca68d7cfb6458b976512aebb0e773cd", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x065d1d30aa557414a61620f21c47059d107d8f565826fd2a0d84ef505d9c56d4", - "receiptsRoot": "0xcaedb3349f16dbe45c4b0eaa0a21c0939b6f841eab4e7ad79db9c9a7a13e91f0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5ab7", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xc64e236fccc4078635c9ed025b5f9457501887dcaa30bd84509ac9f74dd930f0", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68ea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6e255c96160fd5aca9f26e094faacec3cc7fbd0e10c08ec05bcd1a4687b68f1a" }, "blocknumber": "1", "transactions": [ @@ -400,45 +341,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xe69b49c34d50f59d05885c698b21c5fa5fd5d9cc070fff2f04931055577a4aef", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5541d87537fd4819c4338b34a24f4ed16ca68d7cfb6458b976512aebb0e773cd" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e69b49c34d50f59d05885c698b21c5fa5fd5d9cc070fff2f04931055577a4aefa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc64e236fccc4078635c9ed025b5f9457501887dcaa30bd84509ac9f74dd930f0", - "network": "Cancun", + "lastblockhash": "0x6e255c96160fd5aca9f26e094faacec3cc7fbd0e10c08ec05bcd1a4687b68f1a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x366000600037600051600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767e1", @@ -447,20 +363,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", "code": "0x366000600037600051600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x32ecdf", @@ -472,18 +388,43 @@ }, "003-fork=Cancun-tx_gas=500000-single_byte-opcode=CALLDATALOAD": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00f5e6cfde5854249cf47e689eecf792efeb7dc36aa44ee8dde9f890d6b7dd35ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0f5e6cfde5854249cf47e689eecf792efeb7dc36aa44ee8dde9f890d6b7dd35c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe1211c20e46fa5cfe117b0b5d4652abb91d3235701f86aefee84443bee04d1ec" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0339043cc5ae127b5e7b1eb0157d1ef4c2425c1c5d7f8a23715e294aed42cf726a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02c976e0fce79488601f05849a3e9736a45864a3da6c76d1e862761539dd58349a0874127e1d7261bcb38fc211e084e5c3ea70307bc2cbcef7ed31739b78d8d4f74a04b0345772e0a2f0d4fa4364185b526c10ef53a4b0360a48752cb88fc11af3ebfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8750c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a051ebfa405349d044614414329b1f143a717cd86d04f0cead26e5a00016a2db28a0645b35ef53d38649977d2751a008b1b3aa164b19003c3d2bc158d7c28b556263c0c0", + "rlp": "0xf902d4f90242a0e1211c20e46fa5cfe117b0b5d4652abb91d3235701f86aefee84443bee04d1eca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e69a08b40c2966307152f44ef1a3f4d53fe05ba078c48976475f6e9e59f6bae2a0874127e1d7261bcb38fc211e084e5c3ea70307bc2cbcef7ed31739b78d8d4f74a04b0345772e0a2f0d4fa4364185b526c10ef53a4b0360a48752cb88fc11af3ebfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8750c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a051ebfa405349d044614414329b1f143a717cd86d04f0cead26e5a00016a2db28a0645b35ef53d38649977d2751a008b1b3aa164b19003c3d2bc158d7c28b556263c0c0", "blockHeader": { - "parentHash": "0x339043cc5ae127b5e7b1eb0157d1ef4c2425c1c5d7f8a23715e294aed42cf726", + "parentHash": "0xe1211c20e46fa5cfe117b0b5d4652abb91d3235701f86aefee84443bee04d1ec", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2c976e0fce79488601f05849a3e9736a45864a3da6c76d1e862761539dd58349", + "stateRoot": "0xe69a08b40c2966307152f44ef1a3f4d53fe05ba078c48976475f6e9e59f6bae2", "transactionsTrie": "0x874127e1d7261bcb38fc211e084e5c3ea70307bc2cbcef7ed31739b78d8d4f74", "receiptTrie": "0x4b0345772e0a2f0d4fa4364185b526c10ef53a4b0360a48752cb88fc11af3ebf", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -500,35 +441,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x719fe06d893eb2c4793923a554a38d29acf159247175743d3c009ba84e263bc3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x339043cc5ae127b5e7b1eb0157d1ef4c2425c1c5d7f8a23715e294aed42cf726", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2c976e0fce79488601f05849a3e9736a45864a3da6c76d1e862761539dd58349", - "receiptsRoot": "0x4b0345772e0a2f0d4fa4364185b526c10ef53a4b0360a48752cb88fc11af3ebf", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa875", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x719fe06d893eb2c4793923a554a38d29acf159247175743d3c009ba84e263bc3", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a051ebfa405349d044614414329b1f143a717cd86d04f0cead26e5a00016a2db28a0645b35ef53d38649977d2751a008b1b3aa164b19003c3d2bc158d7c28b556263" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcb70002caaffad895d62827dd7268a532ec1ff3f81a76c0d9a10c0fb2be48809" }, "blocknumber": "1", "transactions": [ @@ -557,45 +470,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9ca526467675173de3b77254f35b2aa5c31f03a597c6e97e84fe1a21d1385d4d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x339043cc5ae127b5e7b1eb0157d1ef4c2425c1c5d7f8a23715e294aed42cf726" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09ca526467675173de3b77254f35b2aa5c31f03a597c6e97e84fe1a21d1385d4da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x719fe06d893eb2c4793923a554a38d29acf159247175743d3c009ba84e263bc3", - "network": "Cancun", + "lastblockhash": "0xcb70002caaffad895d62827dd7268a532ec1ff3f81a76c0d9a10c0fb2be48809", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x600035600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767f1", @@ -604,14 +492,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -620,6 +500,14 @@ "0x00": "0x0100000000000000000000000000000000000000000000000000000000000000" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30ccbd", @@ -631,18 +519,43 @@ }, "004-fork=Cancun-tx_gas=500000-single_byte-opcode=CALLDATASIZE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00b33b8fbe10a985c8cab5db04646b1a095b213b746b2565efe7d06bf69216baba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0b33b8fbe10a985c8cab5db04646b1a095b213b746b2565efe7d06bf69216bab", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x88fd2e923aa592bd4ead0596782203e6adee782e918d1b29c4f0f6f9e16f3081" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0c040a403cd4992c5bb5937586ed97bdeee57094d7a5c0901b723fe189b61f061a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0231935440d68d560aa1a1d5f3b816a251b4454dd99707a254614cc39c03bcbd5a0874127e1d7261bcb38fc211e084e5c3ea70307bc2cbcef7ed31739b78d8d4f74a0606dab7ada4d0260b57d39ead97173042a2fcba3bb34fd4f70e8be0e7b443a0fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8710c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a051ebfa405349d044614414329b1f143a717cd86d04f0cead26e5a00016a2db28a0645b35ef53d38649977d2751a008b1b3aa164b19003c3d2bc158d7c28b556263c0c0", + "rlp": "0xf902d4f90242a088fd2e923aa592bd4ead0596782203e6adee782e918d1b29c4f0f6f9e16f3081a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0196b23fd4ae803305ff84ce4006e8aec326ab569209353286eefde74c56db19ca0874127e1d7261bcb38fc211e084e5c3ea70307bc2cbcef7ed31739b78d8d4f74a0606dab7ada4d0260b57d39ead97173042a2fcba3bb34fd4f70e8be0e7b443a0fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8710c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a051ebfa405349d044614414329b1f143a717cd86d04f0cead26e5a00016a2db28a0645b35ef53d38649977d2751a008b1b3aa164b19003c3d2bc158d7c28b556263c0c0", "blockHeader": { - "parentHash": "0xc040a403cd4992c5bb5937586ed97bdeee57094d7a5c0901b723fe189b61f061", + "parentHash": "0x88fd2e923aa592bd4ead0596782203e6adee782e918d1b29c4f0f6f9e16f3081", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x231935440d68d560aa1a1d5f3b816a251b4454dd99707a254614cc39c03bcbd5", + "stateRoot": "0x196b23fd4ae803305ff84ce4006e8aec326ab569209353286eefde74c56db19c", "transactionsTrie": "0x874127e1d7261bcb38fc211e084e5c3ea70307bc2cbcef7ed31739b78d8d4f74", "receiptTrie": "0x606dab7ada4d0260b57d39ead97173042a2fcba3bb34fd4f70e8be0e7b443a0f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -659,35 +572,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x714ea52ed081d49acd3d3e16982c9cc8166367371ecf70246cbfa14b5dd3a6fd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc040a403cd4992c5bb5937586ed97bdeee57094d7a5c0901b723fe189b61f061", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x231935440d68d560aa1a1d5f3b816a251b4454dd99707a254614cc39c03bcbd5", - "receiptsRoot": "0x606dab7ada4d0260b57d39ead97173042a2fcba3bb34fd4f70e8be0e7b443a0f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa871", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x714ea52ed081d49acd3d3e16982c9cc8166367371ecf70246cbfa14b5dd3a6fd", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a051ebfa405349d044614414329b1f143a717cd86d04f0cead26e5a00016a2db28a0645b35ef53d38649977d2751a008b1b3aa164b19003c3d2bc158d7c28b556263" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf9e281688840bfce2b4e68592f171e7ebe8b4d4da4cac04f1cb8625b9d5fd70f" }, "blocknumber": "1", "transactions": [ @@ -716,45 +601,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd7f01abf033db21d15267fc95d5882cfe9035ce2f44075445620e739122dfe52", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc040a403cd4992c5bb5937586ed97bdeee57094d7a5c0901b723fe189b61f061" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d7f01abf033db21d15267fc95d5882cfe9035ce2f44075445620e739122dfe52a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x714ea52ed081d49acd3d3e16982c9cc8166367371ecf70246cbfa14b5dd3a6fd", - "network": "Cancun", + "lastblockhash": "0xf9e281688840bfce2b4e68592f171e7ebe8b4d4da4cac04f1cb8625b9d5fd70f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x36600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767f1", @@ -763,14 +623,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -779,6 +631,14 @@ "0x00": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30ccd9", @@ -790,18 +650,43 @@ }, "005-fork=Cancun-tx_gas=500000-single_byte-opcode=CALLDATACOPY": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e64a5f8bccbdd08a4c8e36e73e7ae6db7f9e4aab862f48204ca3c8d652ee69bda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe64a5f8bccbdd08a4c8e36e73e7ae6db7f9e4aab862f48204ca3c8d652ee69bd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf97eb1c133a5c2c00ed5eec291f7cbe78826ee848c87a66411a67e0d7e19dcf2" + }, "blocks": [ { - "rlp": "0xf902d4f90242a023809b0ee206908ae4defe83211c75d70652e09e55f5f92231426872b2028e62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ffbb770713d5e2601620ff9e496007dfcb6e3fd590906e484a4394f81e42c0d7a0874127e1d7261bcb38fc211e084e5c3ea70307bc2cbcef7ed31739b78d8d4f74a0863b0aecceb3d1ea64053afd085b45c6b9e3b2fd2bfee7dd053b0bd8b4a34638b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a051ebfa405349d044614414329b1f143a717cd86d04f0cead26e5a00016a2db28a0645b35ef53d38649977d2751a008b1b3aa164b19003c3d2bc158d7c28b556263c0c0", + "rlp": "0xf902d4f90242a0f97eb1c133a5c2c00ed5eec291f7cbe78826ee848c87a66411a67e0d7e19dcf2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0025daa6a1f0cfee88d28017b6ef320be8dc9b35db4de277e7dbf71ec82029313a0874127e1d7261bcb38fc211e084e5c3ea70307bc2cbcef7ed31739b78d8d4f74a0863b0aecceb3d1ea64053afd085b45c6b9e3b2fd2bfee7dd053b0bd8b4a34638b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a051ebfa405349d044614414329b1f143a717cd86d04f0cead26e5a00016a2db28a0645b35ef53d38649977d2751a008b1b3aa164b19003c3d2bc158d7c28b556263c0c0", "blockHeader": { - "parentHash": "0x23809b0ee206908ae4defe83211c75d70652e09e55f5f92231426872b2028e62", + "parentHash": "0xf97eb1c133a5c2c00ed5eec291f7cbe78826ee848c87a66411a67e0d7e19dcf2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xffbb770713d5e2601620ff9e496007dfcb6e3fd590906e484a4394f81e42c0d7", + "stateRoot": "0x025daa6a1f0cfee88d28017b6ef320be8dc9b35db4de277e7dbf71ec82029313", "transactionsTrie": "0x874127e1d7261bcb38fc211e084e5c3ea70307bc2cbcef7ed31739b78d8d4f74", "receiptTrie": "0x863b0aecceb3d1ea64053afd085b45c6b9e3b2fd2bfee7dd053b0bd8b4a34638", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -818,35 +703,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5f5e0e3f8e66595f0b0187f126dcca609d3c80ec5a42a86d244deb0349790520" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x23809b0ee206908ae4defe83211c75d70652e09e55f5f92231426872b2028e62", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xffbb770713d5e2601620ff9e496007dfcb6e3fd590906e484a4394f81e42c0d7", - "receiptsRoot": "0x863b0aecceb3d1ea64053afd085b45c6b9e3b2fd2bfee7dd053b0bd8b4a34638", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa886", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x5f5e0e3f8e66595f0b0187f126dcca609d3c80ec5a42a86d244deb0349790520", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a051ebfa405349d044614414329b1f143a717cd86d04f0cead26e5a00016a2db28a0645b35ef53d38649977d2751a008b1b3aa164b19003c3d2bc158d7c28b556263" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x497a8731fe14c4978fbe3609599ecea642db0948bf61f8b211e1386fdb688cb8" }, "blocknumber": "1", "transactions": [ @@ -875,45 +732,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd64c42647363e185c3dddae03ead9a3d5f6e317c2d6fe4c4155299f9f24b9bf2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x23809b0ee206908ae4defe83211c75d70652e09e55f5f92231426872b2028e62" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d64c42647363e185c3dddae03ead9a3d5f6e317c2d6fe4c4155299f9f24b9bf2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5f5e0e3f8e66595f0b0187f126dcca609d3c80ec5a42a86d244deb0349790520", - "network": "Cancun", + "lastblockhash": "0x497a8731fe14c4978fbe3609599ecea642db0948bf61f8b211e1386fdb688cb8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x366000600037600051600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767f1", @@ -922,14 +754,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -938,6 +762,14 @@ "0x00": "0x0100000000000000000000000000000000000000000000000000000000000000" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30cc46", @@ -949,18 +781,43 @@ }, "006-fork=Cancun-tx_gas=500000-word-opcode=CALLDATALOAD": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bf9039cf09ff1d58ad12d3858cbe46751ad5a0227e23d1b6e4ff505c43df6f14a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbf9039cf09ff1d58ad12d3858cbe46751ad5a0227e23d1b6e4ff505c43df6f14", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x38d3395f9dff9c6bdaa9b8a46b7b6d6b943e73ce6f7060a934641dd3eb6f7b91" + }, "blocks": [ { - "rlp": "0xf902f4f90242a0abecc2d17f6fc80e8f424efe95b7bf8e08405dbfe3613dfc9fc1276b4dcbe1dca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d0912506c56adada5f801a69cd0e69028482f58dacfef3f8bf00261d6d3289c8a0b1560cd3fe1330fb3430ab2664c7cb06b759ada7010181879c06b84dcd0d451ca08bf4295ae61d13b33f667f112075ba2ae027fb4c6da10dcc1318fc9912e9d624b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9a50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a6018080078307a12094000000000000000000000000000000000000010001a00001000100010001000100010001000100010001000100010001000100010001c001e1a0010000000000000000000000000000000000000000000000000000000000000001a086760181b41f484583e66b72e188572a4fcc56f30784b8c9ac899d2e96a735e1a060d01d75a790c2896987d6a248821c51f28f7ccf752f858fc203f07c409cdca5c0c0", + "rlp": "0xf902f4f90242a038d3395f9dff9c6bdaa9b8a46b7b6d6b943e73ce6f7060a934641dd3eb6f7b91a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08de345547d5d1746b37e415d2127fff5fa6abaa5b82b7f7563f17508f71bae8aa0b1560cd3fe1330fb3430ab2664c7cb06b759ada7010181879c06b84dcd0d451ca08bf4295ae61d13b33f667f112075ba2ae027fb4c6da10dcc1318fc9912e9d624b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9a50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a6018080078307a12094000000000000000000000000000000000000010001a00001000100010001000100010001000100010001000100010001000100010001c001e1a0010000000000000000000000000000000000000000000000000000000000000001a086760181b41f484583e66b72e188572a4fcc56f30784b8c9ac899d2e96a735e1a060d01d75a790c2896987d6a248821c51f28f7ccf752f858fc203f07c409cdca5c0c0", "blockHeader": { - "parentHash": "0xabecc2d17f6fc80e8f424efe95b7bf8e08405dbfe3613dfc9fc1276b4dcbe1dc", + "parentHash": "0x38d3395f9dff9c6bdaa9b8a46b7b6d6b943e73ce6f7060a934641dd3eb6f7b91", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd0912506c56adada5f801a69cd0e69028482f58dacfef3f8bf00261d6d3289c8", + "stateRoot": "0x8de345547d5d1746b37e415d2127fff5fa6abaa5b82b7f7563f17508f71bae8a", "transactionsTrie": "0xb1560cd3fe1330fb3430ab2664c7cb06b759ada7010181879c06b84dcd0d451c", "receiptTrie": "0x8bf4295ae61d13b33f667f112075ba2ae027fb4c6da10dcc1318fc9912e9d624", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -977,35 +834,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7a401516948817045cfd173c93db3089d0dae5da5ebd3b5c994ff37296e5b8da" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xabecc2d17f6fc80e8f424efe95b7bf8e08405dbfe3613dfc9fc1276b4dcbe1dc", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd0912506c56adada5f801a69cd0e69028482f58dacfef3f8bf00261d6d3289c8", - "receiptsRoot": "0x8bf4295ae61d13b33f667f112075ba2ae027fb4c6da10dcc1318fc9912e9d624", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa9a5", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x7a401516948817045cfd173c93db3089d0dae5da5ebd3b5c994ff37296e5b8da", - "transactions": [ - "0x03f8a6018080078307a12094000000000000000000000000000000000000010001a00001000100010001000100010001000100010001000100010001000100010001c001e1a0010000000000000000000000000000000000000000000000000000000000000001a086760181b41f484583e66b72e188572a4fcc56f30784b8c9ac899d2e96a735e1a060d01d75a790c2896987d6a248821c51f28f7ccf752f858fc203f07c409cdca5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9631f956e2a81d251d9a5ea392876a4db667ced258295fe6673d312ee2ccb1e4" }, "blocknumber": "1", "transactions": [ @@ -1034,45 +863,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xef1d42f5f77e6e7a4136c741be158d2bb1dc60865b0ae4b0ca718de5886bebb7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xabecc2d17f6fc80e8f424efe95b7bf8e08405dbfe3613dfc9fc1276b4dcbe1dc" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ef1d42f5f77e6e7a4136c741be158d2bb1dc60865b0ae4b0ca718de5886bebb7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7a401516948817045cfd173c93db3089d0dae5da5ebd3b5c994ff37296e5b8da", - "network": "Cancun", + "lastblockhash": "0x9631f956e2a81d251d9a5ea392876a4db667ced258295fe6673d312ee2ccb1e4", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x600035600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x376921", @@ -1081,14 +885,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -1097,6 +893,14 @@ "0x00": "0x01000100010001000100010001000100010001000100010001000100010001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30c59d", @@ -1108,18 +912,43 @@ }, "007-fork=Cancun-tx_gas=500000-word-opcode=CALLDATASIZE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04ffe23175c0a37300ab200a5fb4214ebbf7c1a237e2b31952ca78364bc85f5e4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4ffe23175c0a37300ab200a5fb4214ebbf7c1a237e2b31952ca78364bc85f5e4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc21c38efa1294b142ff96000dab90b4177c69a33b8d3c7953da9be65d814ca7b" + }, "blocks": [ { - "rlp": "0xf902f4f90242a0f4815bdd0b74379546cd4f66142637afe002fb362924d3213632807e116d113ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09a0f4a641f6e7bcd2310e4c02cef2c7b2d114c08795aeafe834a556a3accbf6fa0b1560cd3fe1330fb3430ab2664c7cb06b759ada7010181879c06b84dcd0d451ca092484b6a6d6d4f6c5f7c6769cd24aa7af266e9eac029394bf7d1524adecc62bcb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9a10c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a6018080078307a12094000000000000000000000000000000000000010001a00001000100010001000100010001000100010001000100010001000100010001c001e1a0010000000000000000000000000000000000000000000000000000000000000001a086760181b41f484583e66b72e188572a4fcc56f30784b8c9ac899d2e96a735e1a060d01d75a790c2896987d6a248821c51f28f7ccf752f858fc203f07c409cdca5c0c0", + "rlp": "0xf902f4f90242a0c21c38efa1294b142ff96000dab90b4177c69a33b8d3c7953da9be65d814ca7ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09690854e91493a4362eb46b797406691efee8e4ebaf0edd069d6fa004ec2acbaa0b1560cd3fe1330fb3430ab2664c7cb06b759ada7010181879c06b84dcd0d451ca092484b6a6d6d4f6c5f7c6769cd24aa7af266e9eac029394bf7d1524adecc62bcb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9a10c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a6018080078307a12094000000000000000000000000000000000000010001a00001000100010001000100010001000100010001000100010001000100010001c001e1a0010000000000000000000000000000000000000000000000000000000000000001a086760181b41f484583e66b72e188572a4fcc56f30784b8c9ac899d2e96a735e1a060d01d75a790c2896987d6a248821c51f28f7ccf752f858fc203f07c409cdca5c0c0", "blockHeader": { - "parentHash": "0xf4815bdd0b74379546cd4f66142637afe002fb362924d3213632807e116d113c", + "parentHash": "0xc21c38efa1294b142ff96000dab90b4177c69a33b8d3c7953da9be65d814ca7b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9a0f4a641f6e7bcd2310e4c02cef2c7b2d114c08795aeafe834a556a3accbf6f", + "stateRoot": "0x9690854e91493a4362eb46b797406691efee8e4ebaf0edd069d6fa004ec2acba", "transactionsTrie": "0xb1560cd3fe1330fb3430ab2664c7cb06b759ada7010181879c06b84dcd0d451c", "receiptTrie": "0x92484b6a6d6d4f6c5f7c6769cd24aa7af266e9eac029394bf7d1524adecc62bc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1136,35 +965,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe4c20dffb4b82da6a0cedbf1417cd96bcaecbda4880053c6120116e75a4dd5af" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf4815bdd0b74379546cd4f66142637afe002fb362924d3213632807e116d113c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9a0f4a641f6e7bcd2310e4c02cef2c7b2d114c08795aeafe834a556a3accbf6f", - "receiptsRoot": "0x92484b6a6d6d4f6c5f7c6769cd24aa7af266e9eac029394bf7d1524adecc62bc", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa9a1", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xe4c20dffb4b82da6a0cedbf1417cd96bcaecbda4880053c6120116e75a4dd5af", - "transactions": [ - "0x03f8a6018080078307a12094000000000000000000000000000000000000010001a00001000100010001000100010001000100010001000100010001000100010001c001e1a0010000000000000000000000000000000000000000000000000000000000000001a086760181b41f484583e66b72e188572a4fcc56f30784b8c9ac899d2e96a735e1a060d01d75a790c2896987d6a248821c51f28f7ccf752f858fc203f07c409cdca5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1703827f81797edfc6ccec61627a73322e9cb1762d8f443b866fbf6c6cb51b31" }, "blocknumber": "1", "transactions": [ @@ -1193,45 +994,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf92f8d625d6e0f7b86c71abafafbdc9112058df6636c029771d36d44b6130a45", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf4815bdd0b74379546cd4f66142637afe002fb362924d3213632807e116d113c" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f92f8d625d6e0f7b86c71abafafbdc9112058df6636c029771d36d44b6130a45a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe4c20dffb4b82da6a0cedbf1417cd96bcaecbda4880053c6120116e75a4dd5af", - "network": "Cancun", + "lastblockhash": "0x1703827f81797edfc6ccec61627a73322e9cb1762d8f443b866fbf6c6cb51b31", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x36600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x376921", @@ -1240,14 +1016,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -1256,6 +1024,14 @@ "0x00": "0x20" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30c5b9", @@ -1267,18 +1043,43 @@ }, "008-fork=Cancun-tx_gas=500000-word-opcode=CALLDATACOPY": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0905dbbcff5eae6ce9ecd391913187e0ead59603b1284735b3caa3a552452e1c4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x905dbbcff5eae6ce9ecd391913187e0ead59603b1284735b3caa3a552452e1c4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbcb56f883fec82d28c5726dcc0dae49d8976d5d4e329537d4f8d88bcba10b3a5" + }, "blocks": [ { - "rlp": "0xf902f4f90242a0b0bbfe9609ddd1fc744d75a88568d1c234d011e6c3a4876df23533ec91710b50a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00190435d6d29ac16c22c12273534d7cf5afe4bbd5f1e6ec1527ccccdfeb9ab12a0b1560cd3fe1330fb3430ab2664c7cb06b759ada7010181879c06b84dcd0d451ca0e752136b4f946affd0d55ab477f296ea537d8691d44596c6c2e60fd168a9e931b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a6018080078307a12094000000000000000000000000000000000000010001a00001000100010001000100010001000100010001000100010001000100010001c001e1a0010000000000000000000000000000000000000000000000000000000000000001a086760181b41f484583e66b72e188572a4fcc56f30784b8c9ac899d2e96a735e1a060d01d75a790c2896987d6a248821c51f28f7ccf752f858fc203f07c409cdca5c0c0", + "rlp": "0xf902f4f90242a0bcb56f883fec82d28c5726dcc0dae49d8976d5d4e329537d4f8d88bcba10b3a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa096f4a912765fc87e11c51c36a7ea25c1618bfc6b64cfebcb676583ff99d1acdca0b1560cd3fe1330fb3430ab2664c7cb06b759ada7010181879c06b84dcd0d451ca0e752136b4f946affd0d55ab477f296ea537d8691d44596c6c2e60fd168a9e931b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a6018080078307a12094000000000000000000000000000000000000010001a00001000100010001000100010001000100010001000100010001000100010001c001e1a0010000000000000000000000000000000000000000000000000000000000000001a086760181b41f484583e66b72e188572a4fcc56f30784b8c9ac899d2e96a735e1a060d01d75a790c2896987d6a248821c51f28f7ccf752f858fc203f07c409cdca5c0c0", "blockHeader": { - "parentHash": "0xb0bbfe9609ddd1fc744d75a88568d1c234d011e6c3a4876df23533ec91710b50", + "parentHash": "0xbcb56f883fec82d28c5726dcc0dae49d8976d5d4e329537d4f8d88bcba10b3a5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0190435d6d29ac16c22c12273534d7cf5afe4bbd5f1e6ec1527ccccdfeb9ab12", + "stateRoot": "0x96f4a912765fc87e11c51c36a7ea25c1618bfc6b64cfebcb676583ff99d1acdc", "transactionsTrie": "0xb1560cd3fe1330fb3430ab2664c7cb06b759ada7010181879c06b84dcd0d451c", "receiptTrie": "0xe752136b4f946affd0d55ab477f296ea537d8691d44596c6c2e60fd168a9e931", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1295,35 +1096,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3faba2689e04013580fd9910b2d17108d9b6c7c8b75c146f4f42787507f6e6ac" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb0bbfe9609ddd1fc744d75a88568d1c234d011e6c3a4876df23533ec91710b50", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0190435d6d29ac16c22c12273534d7cf5afe4bbd5f1e6ec1527ccccdfeb9ab12", - "receiptsRoot": "0xe752136b4f946affd0d55ab477f296ea537d8691d44596c6c2e60fd168a9e931", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa9b6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x3faba2689e04013580fd9910b2d17108d9b6c7c8b75c146f4f42787507f6e6ac", - "transactions": [ - "0x03f8a6018080078307a12094000000000000000000000000000000000000010001a00001000100010001000100010001000100010001000100010001000100010001c001e1a0010000000000000000000000000000000000000000000000000000000000000001a086760181b41f484583e66b72e188572a4fcc56f30784b8c9ac899d2e96a735e1a060d01d75a790c2896987d6a248821c51f28f7ccf752f858fc203f07c409cdca5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6f91aaa5ff9464e4348235f84fc79aaec1413db5014bcc0b96ee7e3d66032635" }, "blocknumber": "1", "transactions": [ @@ -1352,45 +1125,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2d5a83601b9fb48317731573ade76748b35e15b801cd86d6b275178183d0194d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb0bbfe9609ddd1fc744d75a88568d1c234d011e6c3a4876df23533ec91710b50" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02d5a83601b9fb48317731573ade76748b35e15b801cd86d6b275178183d0194da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3faba2689e04013580fd9910b2d17108d9b6c7c8b75c146f4f42787507f6e6ac", - "network": "Cancun", + "lastblockhash": "0x6f91aaa5ff9464e4348235f84fc79aaec1413db5014bcc0b96ee7e3d66032635", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x366000600037600051600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x376921", @@ -1399,14 +1147,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -1415,6 +1155,14 @@ "0x00": "0x01000100010001000100010001000100010001000100010001000100010001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30c526", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json index 3f842a57d89..97d1e806574 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_gasprice_opcode.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a054b23faa355706e15015922106ecbef8b1b186e22e82bf6cece6f1e0a5fe0721a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x54b23faa355706e15015922106ecbef8b1b186e22e82bf6cece6f1e0a5fe0721", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe86743cfdab43be1ce3106a7c956dddeea8546fcd60af45cd777a2c7a4658656" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0142463de298cbbf21bcae145b8ba964b853cc01b3a4238b0e8e14d5da7b4f053a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b8092124fa43bf1a0564757062a2cbaa02a2165977ba46051a4715f008ef7ef1a0ab715d38d914b30a6c892e85189c077f16f233cfed0c7222c8eafbe34544f88ba0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080648307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a00976b4d7590f210fe712ccf9d1e009bf72868916afbae324a737f393613faf06a022889dac63c68a17ab8b7abae68161d6bbbd84c8a510f36118a6f81607e385e9c0c0", + "rlp": "0xf902d4f90242a0e86743cfdab43be1ce3106a7c956dddeea8546fcd60af45cd777a2c7a4658656a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0802978df2a89c2e376215b849e1050bd2dfce06eed5a04cbdd99af984512e72da0ab715d38d914b30a6c892e85189c077f16f233cfed0c7222c8eafbe34544f88ba0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080648307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a00976b4d7590f210fe712ccf9d1e009bf72868916afbae324a737f393613faf06a022889dac63c68a17ab8b7abae68161d6bbbd84c8a510f36118a6f81607e385e9c0c0", "blockHeader": { - "parentHash": "0x142463de298cbbf21bcae145b8ba964b853cc01b3a4238b0e8e14d5da7b4f053", + "parentHash": "0xe86743cfdab43be1ce3106a7c956dddeea8546fcd60af45cd777a2c7a4658656", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb8092124fa43bf1a0564757062a2cbaa02a2165977ba46051a4715f008ef7ef1", + "stateRoot": "0x802978df2a89c2e376215b849e1050bd2dfce06eed5a04cbdd99af984512e72d", "transactionsTrie": "0xab715d38d914b30a6c892e85189c077f16f233cfed0c7222c8eafbe34544f88b", "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,35 +54,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x94362fa8753d0f98170f37cce3ef3aab559e85e00580cad80801286e05fe14ac" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x142463de298cbbf21bcae145b8ba964b853cc01b3a4238b0e8e14d5da7b4f053", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb8092124fa43bf1a0564757062a2cbaa02a2165977ba46051a4715f008ef7ef1", - "receiptsRoot": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa861", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x94362fa8753d0f98170f37cce3ef3aab559e85e00580cad80801286e05fe14ac", - "transactions": [ - "0x03f886018080648307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a00976b4d7590f210fe712ccf9d1e009bf72868916afbae324a737f393613faf06a022889dac63c68a17ab8b7abae68161d6bbbd84c8a510f36118a6f81607e385e9" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4f8b1f9103dcc3fd0be83e30a0ad9a28d5175cb634c0d0ffe470760a7ac834c4" }, "blocknumber": "1", "transactions": [ @@ -86,45 +83,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x58087c5331b91ebd0afa1af14036256de472ca7d73471cd4ef82221f9e6d7310", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x142463de298cbbf21bcae145b8ba964b853cc01b3a4238b0e8e14d5da7b4f053" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a058087c5331b91ebd0afa1af14036256de472ca7d73471cd4ef82221f9e6d7310a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x94362fa8753d0f98170f37cce3ef3aab559e85e00580cad80801286e05fe14ac", - "network": "Cancun", + "lastblockhash": "0x4f8b1f9103dcc3fd0be83e30a0ad9a28d5175cb634c0d0ffe470760a7ac834c4", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x3a600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x02fcf081", @@ -133,14 +105,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -149,6 +113,14 @@ "0x00": "0x07" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x02f655d9", @@ -160,18 +132,43 @@ }, "001-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=1-tx_max_priority_fee_per_gas=2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cd25fbe770b5b08a6cd56487d8d646524e4c84bed05d1830b6d489500a7fcca5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcd25fbe770b5b08a6cd56487d8d646524e4c84bed05d1830b6d489500a7fcca5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbe28ac3e73009fe0f51fc535b21e042e81e1ac8bd0b07dc5f5b66021ae94ca62" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0d839293c030000e43c38409a41ff0ed2135b16e62a6334b0abff4ee2e4f2fb09a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa035c93af45cd4cb9bc1967239afed3d32106674a0f4d3192de5095d2bb5f7b848a073282477bf5f1dd01981ef3dcb20cedf9948cd7b3e589c868e547c5f8b7a33d7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018002648307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0cb21a6767512f2b2f61f2b999de91bfcb853e9e6b26881fee321a6b26f9620a2a02852d57cfb3ef597fa9d62f4f6f636c017f8297f00ac0ed1802bab0469b4fe6bc0c0", + "rlp": "0xf902d4f90242a0be28ac3e73009fe0f51fc535b21e042e81e1ac8bd0b07dc5f5b66021ae94ca62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa034b32cc726be6e830a36333f88209709b2b16d994209233eee1766963b113305a073282477bf5f1dd01981ef3dcb20cedf9948cd7b3e589c868e547c5f8b7a33d7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018002648307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0cb21a6767512f2b2f61f2b999de91bfcb853e9e6b26881fee321a6b26f9620a2a02852d57cfb3ef597fa9d62f4f6f636c017f8297f00ac0ed1802bab0469b4fe6bc0c0", "blockHeader": { - "parentHash": "0xd839293c030000e43c38409a41ff0ed2135b16e62a6334b0abff4ee2e4f2fb09", + "parentHash": "0xbe28ac3e73009fe0f51fc535b21e042e81e1ac8bd0b07dc5f5b66021ae94ca62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x35c93af45cd4cb9bc1967239afed3d32106674a0f4d3192de5095d2bb5f7b848", + "stateRoot": "0x34b32cc726be6e830a36333f88209709b2b16d994209233eee1766963b113305", "transactionsTrie": "0x73282477bf5f1dd01981ef3dcb20cedf9948cd7b3e589c868e547c5f8b7a33d7", "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -188,35 +185,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd7fb87f8e7861d2039add39bc5161a50e248e8ed50c30c3dbce7845beae7ddfd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd839293c030000e43c38409a41ff0ed2135b16e62a6334b0abff4ee2e4f2fb09", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x35c93af45cd4cb9bc1967239afed3d32106674a0f4d3192de5095d2bb5f7b848", - "receiptsRoot": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa861", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd7fb87f8e7861d2039add39bc5161a50e248e8ed50c30c3dbce7845beae7ddfd", - "transactions": [ - "0x03f886018002648307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0cb21a6767512f2b2f61f2b999de91bfcb853e9e6b26881fee321a6b26f9620a2a02852d57cfb3ef597fa9d62f4f6f636c017f8297f00ac0ed1802bab0469b4fe6b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4789d404ec961d430ef8586300d5f2d5342db28ebcc0f72477f3522c3be2d039" }, "blocknumber": "1", "transactions": [ @@ -245,45 +214,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x92612c684f1d156ac583c6e325c253618ce27448465ff7d30f6c09dd3af010f1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd839293c030000e43c38409a41ff0ed2135b16e62a6334b0abff4ee2e4f2fb09" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a092612c684f1d156ac583c6e325c253618ce27448465ff7d30f6c09dd3af010f1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd7fb87f8e7861d2039add39bc5161a50e248e8ed50c30c3dbce7845beae7ddfd", - "network": "Cancun", + "lastblockhash": "0x4789d404ec961d430ef8586300d5f2d5342db28ebcc0f72477f3522c3be2d039", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x3a600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x030c32c1", @@ -292,14 +236,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -308,6 +244,14 @@ "0x00": "0x09" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0150c2", @@ -325,18 +269,43 @@ }, "002-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=3-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e84112d58f6c1c54a299f70350ee0d1afa6dd3316a7a778577b188825ba66bb0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe84112d58f6c1c54a299f70350ee0d1afa6dd3316a7a778577b188825ba66bb0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe33a1a35323d0bd29334e70c619ef0e02a2a444b535f4fb20c8305b152be76ad" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0337c0f06cb997392b510f466872f5899ae0936436a563e907e7715438446ccc5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c607c19d9633ec1aab12be142ff9476d9fc15678d81c155beb3134c058dddb0da052edbfcdc24dd10066a8f1999d42ed1a5523c97ce159cb5a10653bbdfb509685a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080648307a1209400000000000000000000000000000000000001000180c003e1a0010000000000000000000000000000000000000000000000000000000000000001a0bbc1def7093580ef6a36298faaf833902efd47e743b7d663059b1b15c4068a0ba072c94f8cb821a0d083c2106d8c4a350b802b63e8ba28cf7b65bd2521cd18e2fdc0c0", + "rlp": "0xf902d4f90242a0e33a1a35323d0bd29334e70c619ef0e02a2a444b535f4fb20c8305b152be76ada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09438ef9566d55767d1603920665e3443336ab3054df777d5529e7b048d6525eca052edbfcdc24dd10066a8f1999d42ed1a5523c97ce159cb5a10653bbdfb509685a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080648307a1209400000000000000000000000000000000000001000180c003e1a0010000000000000000000000000000000000000000000000000000000000000001a0bbc1def7093580ef6a36298faaf833902efd47e743b7d663059b1b15c4068a0ba072c94f8cb821a0d083c2106d8c4a350b802b63e8ba28cf7b65bd2521cd18e2fdc0c0", "blockHeader": { - "parentHash": "0x337c0f06cb997392b510f466872f5899ae0936436a563e907e7715438446ccc5", + "parentHash": "0xe33a1a35323d0bd29334e70c619ef0e02a2a444b535f4fb20c8305b152be76ad", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc607c19d9633ec1aab12be142ff9476d9fc15678d81c155beb3134c058dddb0d", + "stateRoot": "0x9438ef9566d55767d1603920665e3443336ab3054df777d5529e7b048d6525ec", "transactionsTrie": "0x52edbfcdc24dd10066a8f1999d42ed1a5523c97ce159cb5a10653bbdfb509685", "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -353,35 +322,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c2682936c799d3f11d27e41671f74f736e1280efdab19ee62aec56e51716b89" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x337c0f06cb997392b510f466872f5899ae0936436a563e907e7715438446ccc5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc607c19d9633ec1aab12be142ff9476d9fc15678d81c155beb3134c058dddb0d", - "receiptsRoot": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa861", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x5c2682936c799d3f11d27e41671f74f736e1280efdab19ee62aec56e51716b89", - "transactions": [ - "0x03f886018080648307a1209400000000000000000000000000000000000001000180c003e1a0010000000000000000000000000000000000000000000000000000000000000001a0bbc1def7093580ef6a36298faaf833902efd47e743b7d663059b1b15c4068a0ba072c94f8cb821a0d083c2106d8c4a350b802b63e8ba28cf7b65bd2521cd18e2fd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x223777bc2d0e406972697d0387b4b6f5792190d8ae58a8673287040fcb15f503" }, "blocknumber": "1", "transactions": [ @@ -410,45 +351,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5ce34102ec72065724d1b31500f5b10646116af2940b502e4270b055d5630b14", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x337c0f06cb997392b510f466872f5899ae0936436a563e907e7715438446ccc5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05ce34102ec72065724d1b31500f5b10646116af2940b502e4270b055d5630b14a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5c2682936c799d3f11d27e41671f74f736e1280efdab19ee62aec56e51716b89", - "network": "Cancun", + "lastblockhash": "0x223777bc2d0e406972697d0387b4b6f5792190d8ae58a8673287040fcb15f503", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x3a600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x0300f081", @@ -457,14 +373,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -473,6 +381,14 @@ "0x00": "0x07" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x02fa55d9", @@ -484,18 +400,43 @@ }, "003-fork=Cancun-tx_gas=500000-opcode=GASPRICE-tx_max_fee_per_gas=100-tx_max_fee_per_blob_gas=3-tx_max_priority_fee_per_gas=2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a005c798f8518b561f74c0e83bfad528f0ab0d584dd0bfd86267c408189d2251fca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x05c798f8518b561f74c0e83bfad528f0ab0d584dd0bfd86267c408189d2251fc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5c8722c557ef47de9935cf8bbd208e09656c92364973ba060b5b4450772a88c1" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0b73a019c2a2d86637fef97101aa803dd95d1f1995e740f9952b9a56f7d8ee6e8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa095ee47a9e6595bb451c2f1d3c0d70f852515ce14a3b5ffd166bf411b0632c938a0564189b7a1c45bb6274eb83b4aac11523012c146c68f5798f75ce50e4f43d9fba0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018002648307a1209400000000000000000000000000000000000001000180c003e1a0010000000000000000000000000000000000000000000000000000000000000080a0db5fdca9b13069321a3787e723a231bd3028c2ff4caac3ad8ba3f9cc9207fc91a05d3a7e4751823f7fdcfb73914746d6058553d3b15e3e932f5a40f8e50c9f93f9c0c0", + "rlp": "0xf902d4f90242a05c8722c557ef47de9935cf8bbd208e09656c92364973ba060b5b4450772a88c1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e7b10b0545d6ad4b5f4ac597f275568a7b9f218bc9c02e0a87b135d364e4ac6ca0564189b7a1c45bb6274eb83b4aac11523012c146c68f5798f75ce50e4f43d9fba0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018002648307a1209400000000000000000000000000000000000001000180c003e1a0010000000000000000000000000000000000000000000000000000000000000080a0db5fdca9b13069321a3787e723a231bd3028c2ff4caac3ad8ba3f9cc9207fc91a05d3a7e4751823f7fdcfb73914746d6058553d3b15e3e932f5a40f8e50c9f93f9c0c0", "blockHeader": { - "parentHash": "0xb73a019c2a2d86637fef97101aa803dd95d1f1995e740f9952b9a56f7d8ee6e8", + "parentHash": "0x5c8722c557ef47de9935cf8bbd208e09656c92364973ba060b5b4450772a88c1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x95ee47a9e6595bb451c2f1d3c0d70f852515ce14a3b5ffd166bf411b0632c938", + "stateRoot": "0xe7b10b0545d6ad4b5f4ac597f275568a7b9f218bc9c02e0a87b135d364e4ac6c", "transactionsTrie": "0x564189b7a1c45bb6274eb83b4aac11523012c146c68f5798f75ce50e4f43d9fb", "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -512,35 +453,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdecac1c18d17e318c500fd349579e06a32d4f742fe175635eea16e4bee118157" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb73a019c2a2d86637fef97101aa803dd95d1f1995e740f9952b9a56f7d8ee6e8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x95ee47a9e6595bb451c2f1d3c0d70f852515ce14a3b5ffd166bf411b0632c938", - "receiptsRoot": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa861", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xdecac1c18d17e318c500fd349579e06a32d4f742fe175635eea16e4bee118157", - "transactions": [ - "0x03f886018002648307a1209400000000000000000000000000000000000001000180c003e1a0010000000000000000000000000000000000000000000000000000000000000080a0db5fdca9b13069321a3787e723a231bd3028c2ff4caac3ad8ba3f9cc9207fc91a05d3a7e4751823f7fdcfb73914746d6058553d3b15e3e932f5a40f8e50c9f93f9" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb24f95274955b717a6c905aabc68a19c7884843d94260690e356b6a8524052c6" }, "blocknumber": "1", "transactions": [ @@ -569,45 +482,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfbae2c332547459cddf4e33ab93e51e589b1cc004480e1865638319f01253fc7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb73a019c2a2d86637fef97101aa803dd95d1f1995e740f9952b9a56f7d8ee6e8" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fbae2c332547459cddf4e33ab93e51e589b1cc004480e1865638319f01253fc7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdecac1c18d17e318c500fd349579e06a32d4f742fe175635eea16e4bee118157", - "network": "Cancun", + "lastblockhash": "0xb24f95274955b717a6c905aabc68a19c7884843d94260690e356b6a8524052c6", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x3a600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x031032c1", @@ -616,14 +504,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -632,6 +512,14 @@ "0x00": "0x09" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0150c2", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json index 4e14ad6805c..f58ccba85b2 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_opcodes.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-tx_gas=500000-opcode=ORIGIN": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a079e99816376158ac57bdb9dbf61b6f0598c673739211d290487d0d109a838e8ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x79e99816376158ac57bdb9dbf61b6f0598c673739211d290487d0d109a838e8c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x17b8e1fb7fffc73880270043c38206ef64f682ece284d73ef9aa3e3445580364" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0df29c7af163bf2511f3f7dcc285430f40a3ecafd2d8729a4d22a4b9fbb51d65ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a3418c74eabac08130fe9820700d940c5d3a7a165b63c46385d8a1dde38eaa43a01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", + "rlp": "0xf902d4f90242a017b8e1fb7fffc73880270043c38206ef64f682ece284d73ef9aa3e3445580364a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa026a39a4a72b561389d9ef94ba2387e69cbaffda1a45b9af95d102aa78022dc23a01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", "blockHeader": { - "parentHash": "0xdf29c7af163bf2511f3f7dcc285430f40a3ecafd2d8729a4d22a4b9fbb51d65c", + "parentHash": "0x17b8e1fb7fffc73880270043c38206ef64f682ece284d73ef9aa3e3445580364", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa3418c74eabac08130fe9820700d940c5d3a7a165b63c46385d8a1dde38eaa43", + "stateRoot": "0x26a39a4a72b561389d9ef94ba2387e69cbaffda1a45b9af95d102aa78022dc23", "transactionsTrie": "0x1f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875", "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,35 +54,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x405a7ead91305d0b6455a8f3bba9ae062513c7d155e7b65dc5a7dff4afe96ca0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf29c7af163bf2511f3f7dcc285430f40a3ecafd2d8729a4d22a4b9fbb51d65c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa3418c74eabac08130fe9820700d940c5d3a7a165b63c46385d8a1dde38eaa43", - "receiptsRoot": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa861", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x405a7ead91305d0b6455a8f3bba9ae062513c7d155e7b65dc5a7dff4afe96ca0", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68ea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1a0e589c592a3c3371c91e8a20dd7fff6a4fefc5a7bf3f628e207fd28db30be3" }, "blocknumber": "1", "transactions": [ @@ -86,45 +83,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x23d6be988bb604bab03e8e75de5381e1e3db3c3978e680382ecef78087e4cf7b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdf29c7af163bf2511f3f7dcc285430f40a3ecafd2d8729a4d22a4b9fbb51d65c" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a023d6be988bb604bab03e8e75de5381e1e3db3c3978e680382ecef78087e4cf7ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x405a7ead91305d0b6455a8f3bba9ae062513c7d155e7b65dc5a7dff4afe96ca0", - "network": "Cancun", + "lastblockhash": "0x1a0e589c592a3c3371c91e8a20dd7fff6a4fefc5a7bf3f628e207fd28db30be3", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x32600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767e1", @@ -133,14 +105,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -149,6 +113,14 @@ "0x00": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30cd39", @@ -160,18 +132,43 @@ }, "001-fork=Cancun-tx_gas=500000-opcode=CALLER": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a099771cbe2d33eddd083ec60a30a7aff9a3c9a040724b16a14659574f204c44a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x99771cbe2d33eddd083ec60a30a7aff9a3c9a040724b16a14659574f204c44a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2587373f9f12c7ea773a2f5cccf42a36b49768d2d178599e225e42d158da1174" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0428a52c01232cbee814177eab13e2a03ae4ff868f25d3faecaf1f4f3dd339e36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa001306d832bdd2f0753960220973f30e4598d55708190eaa516c200b7425e376fa01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", + "rlp": "0xf902d4f90242a02587373f9f12c7ea773a2f5cccf42a36b49768d2d178599e225e42d158da1174a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05f3a3fd723bab3394e191a3da8e26da6bf9392929bc9c141b83c11bed4a34d2ba01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", "blockHeader": { - "parentHash": "0x428a52c01232cbee814177eab13e2a03ae4ff868f25d3faecaf1f4f3dd339e36", + "parentHash": "0x2587373f9f12c7ea773a2f5cccf42a36b49768d2d178599e225e42d158da1174", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x01306d832bdd2f0753960220973f30e4598d55708190eaa516c200b7425e376f", + "stateRoot": "0x5f3a3fd723bab3394e191a3da8e26da6bf9392929bc9c141b83c11bed4a34d2b", "transactionsTrie": "0x1f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875", "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -188,35 +185,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x82e8def16229a00b65572f23adf9f7fe7dbec5949731c5548bc1db3e12478ed7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x428a52c01232cbee814177eab13e2a03ae4ff868f25d3faecaf1f4f3dd339e36", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x01306d832bdd2f0753960220973f30e4598d55708190eaa516c200b7425e376f", - "receiptsRoot": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa861", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x82e8def16229a00b65572f23adf9f7fe7dbec5949731c5548bc1db3e12478ed7", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68ea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3c0b9c1a7362579be314dc625d95c40911ffd6c1feb9de9f592e6cab4aa195b6" }, "blocknumber": "1", "transactions": [ @@ -245,45 +214,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4db6e78971881b33bf338181ecf09daa0092223d6cf37ab07d6d8352e18419d7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x428a52c01232cbee814177eab13e2a03ae4ff868f25d3faecaf1f4f3dd339e36" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04db6e78971881b33bf338181ecf09daa0092223d6cf37ab07d6d8352e18419d7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x82e8def16229a00b65572f23adf9f7fe7dbec5949731c5548bc1db3e12478ed7", - "network": "Cancun", + "lastblockhash": "0x3c0b9c1a7362579be314dc625d95c40911ffd6c1feb9de9f592e6cab4aa195b6", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x33600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767e1", @@ -292,14 +236,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -308,6 +244,14 @@ "0x00": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30cd39", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json index 1d7b31b2518..5570ec397a4 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_tx_attribute_value_opcode.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-tx_gas=500000-tx_value=0-opcode=CALLVALUE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05837b33dbf4c3105b4e98729b5b5ba0b2bc8fe48118944fc01bd50bfe4c9709da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5837b33dbf4c3105b4e98729b5b5ba0b2bc8fe48118944fc01bd50bfe4c9709d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x686c98799b11340e3f5bad6a1c24b1e6f11278db44c96638a6af4e23c528bea9" + }, "blocks": [ { - "rlp": "0xf902d4f90242a02774a3b9427b2dab7f41b4e280a4aa635c03ec71b78abcfdee057e825e5553a7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02267f8d6ec4fea94716e427e6a240cfb8ce3c24d1978871e36b90d4b41f10beca0bb2cffa38bfd056adba0d57c51ebb4209b72466b420bcda2f37a3c64af416f00a0177fa2fb1e9167ed2b44e478ba54b39da40523cc985950390a475b658986a486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825aa50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c9ecbba09318c0290d46d52dffbd618575b9c58874834002db289b12eb0d813ba035bbbf21d42d4c26df8415201526a3852d5c08bf6268f008d1cb09353bb0a231c0c0", + "rlp": "0xf902d4f90242a0686c98799b11340e3f5bad6a1c24b1e6f11278db44c96638a6af4e23c528bea9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa029c320035c6b416922751ab32cd5dca7d6bbff792b89bd792497a1e4383a1150a0bb2cffa38bfd056adba0d57c51ebb4209b72466b420bcda2f37a3c64af416f00a0177fa2fb1e9167ed2b44e478ba54b39da40523cc985950390a475b658986a486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825aa50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c9ecbba09318c0290d46d52dffbd618575b9c58874834002db289b12eb0d813ba035bbbf21d42d4c26df8415201526a3852d5c08bf6268f008d1cb09353bb0a231c0c0", "blockHeader": { - "parentHash": "0x2774a3b9427b2dab7f41b4e280a4aa635c03ec71b78abcfdee057e825e5553a7", + "parentHash": "0x686c98799b11340e3f5bad6a1c24b1e6f11278db44c96638a6af4e23c528bea9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2267f8d6ec4fea94716e427e6a240cfb8ce3c24d1978871e36b90d4b41f10bec", + "stateRoot": "0x29c320035c6b416922751ab32cd5dca7d6bbff792b89bd792497a1e4383a1150", "transactionsTrie": "0xbb2cffa38bfd056adba0d57c51ebb4209b72466b420bcda2f37a3c64af416f00", "receiptTrie": "0x177fa2fb1e9167ed2b44e478ba54b39da40523cc985950390a475b658986a486", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,35 +54,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe5a07d8bbbcea1c820fc5f8cc45bb44e33c55e547c91aba0ce6d7f4233f52a50" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2774a3b9427b2dab7f41b4e280a4aa635c03ec71b78abcfdee057e825e5553a7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2267f8d6ec4fea94716e427e6a240cfb8ce3c24d1978871e36b90d4b41f10bec", - "receiptsRoot": "0x177fa2fb1e9167ed2b44e478ba54b39da40523cc985950390a475b658986a486", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5aa5", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xe5a07d8bbbcea1c820fc5f8cc45bb44e33c55e547c91aba0ce6d7f4233f52a50", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c9ecbba09318c0290d46d52dffbd618575b9c58874834002db289b12eb0d813ba035bbbf21d42d4c26df8415201526a3852d5c08bf6268f008d1cb09353bb0a231" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfbd90b5b9c0379668b6d8e7d581240fe3472bc4353b396feb1ad8c618bf66e70" }, "blocknumber": "1", "transactions": [ @@ -86,45 +83,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e01a5eb512251c376b273847cf1a0c2a6d87ff9fb37b33a50102d99e3eabb1e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2774a3b9427b2dab7f41b4e280a4aa635c03ec71b78abcfdee057e825e5553a7" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e01a5eb512251c376b273847cf1a0c2a6d87ff9fb37b33a50102d99e3eabb1ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe5a07d8bbbcea1c820fc5f8cc45bb44e33c55e547c91aba0ce6d7f4233f52a50", - "network": "Cancun", + "lastblockhash": "0xfbd90b5b9c0379668b6d8e7d581240fe3472bc4353b396feb1ad8c618bf66e70", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x34600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767e0", @@ -133,20 +105,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x34600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x32ed5d", @@ -158,18 +130,43 @@ }, "001-fork=Cancun-tx_gas=500000-tx_value=1-opcode=CALLVALUE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00cdf8c4e258aa3b347f7e21ae0b65ba66b7751fbd41cd714c109fd92e70ff2b0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0cdf8c4e258aa3b347f7e21ae0b65ba66b7751fbd41cd714c109fd92e70ff2b0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x68ab97114ff436dd65dd4e478af5199df78c84ace282ab4e5bf9842e35081282" + }, "blocks": [ { - "rlp": "0xf902d4f90242a0d07419dc66b0d79e11ab7916b5fe24b10313a7a1fee6d0c5caf0186a4c555825a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa042aa43bb15f7f968f16a8e14e4e110a6899f42c1b380123aad9870e1ac3e4feba01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", + "rlp": "0xf902d4f90242a068ab97114ff436dd65dd4e478af5199df78c84ace282ab4e5bf9842e35081282a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a74b6c403163859ae5a40ddf97ef723fd2dfd18a6e2abc436f68611b62a53b9da01f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88bb88903f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68eac0c0", "blockHeader": { - "parentHash": "0xd07419dc66b0d79e11ab7916b5fe24b10313a7a1fee6d0c5caf0186a4c555825", + "parentHash": "0x68ab97114ff436dd65dd4e478af5199df78c84ace282ab4e5bf9842e35081282", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x42aa43bb15f7f968f16a8e14e4e110a6899f42c1b380123aad9870e1ac3e4feb", + "stateRoot": "0xa74b6c403163859ae5a40ddf97ef723fd2dfd18a6e2abc436f68611b62a53b9d", "transactionsTrie": "0x1f3581f26a0e6593c47b5d11210be45819176d1d04794911c1715d4840ab4875", "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -186,35 +183,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9a866d76b9df0dc0bbd768aef39bb3c91a7ecdd5eb9db08d47b3d2949fe19b41" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd07419dc66b0d79e11ab7916b5fe24b10313a7a1fee6d0c5caf0186a4c555825", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x42aa43bb15f7f968f16a8e14e4e110a6899f42c1b380123aad9870e1ac3e4feb", - "receiptsRoot": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa861", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9a866d76b9df0dc0bbd768aef39bb3c91a7ecdd5eb9db08d47b3d2949fe19b41", - "transactions": [ - "0x03f886018080078307a1209400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a08633745d9ccae895b1cd9b35473bf2c2f19230b32ebecf93fcf6e98e08868a7fa02df5e81e127ad763e99e70e134ea214d74d47e80787950b1959551c7b61f68ea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x91ee1718ee03581ab2802ba4dba75bf79f82cfd2ca67ce57222d4bbf2d73b9e1" }, "blocknumber": "1", "transactions": [ @@ -243,45 +212,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x20b3343c44c655ddcc4c3ed1d094db5c7273893746bccb3debcfd0e1387c80e0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd07419dc66b0d79e11ab7916b5fe24b10313a7a1fee6d0c5caf0186a4c555825" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a020b3343c44c655ddcc4c3ed1d094db5c7273893746bccb3debcfd0e1387c80e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9a866d76b9df0dc0bbd768aef39bb3c91a7ecdd5eb9db08d47b3d2949fe19b41", - "network": "Cancun", + "lastblockhash": "0x91ee1718ee03581ab2802ba4dba75bf79f82cfd2ca67ce57222d4bbf2d73b9e1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x34600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3767e1", @@ -290,14 +234,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", @@ -306,6 +242,14 @@ "0x00": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30cd39", @@ -317,18 +261,43 @@ }, "002-fork=Cancun-tx_gas=500000-tx_value=1000000000000000000-opcode=CALLVALUE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06da91d387f26f9806d0a8c8632761c3c951638fbfee3beb2a1284b8ad49944b3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6da91d387f26f9806d0a8c8632761c3c951638fbfee3beb2a1284b8ad49944b3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x71b12efea40efc0cf738df0e39928a7eefc66b1409c3dd7338485236cffc3d5c" + }, "blocks": [ { - "rlp": "0xf902dcf90242a06982f8830bc08e13384bf4d1adab1d92cdcb7d54d9ba4cbcffee37dfcd666b4aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0afd28c606b44a1d1cb4528988083f5f7d3abd12ba259388b717ec3602e40e9a5a069c34c1377adba6f98b7fc8cbf72dda21743d5c9fab277dda1653cb8184c1e58a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f893b89103f88e018080078307a120940000000000000000000000000000000000000100880de0b6b3a764000080c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0b3258fd7db8f86bbbfb10baf3505e59c9405e3ad40cef18d5dadc24fdb187947a019be44612fe655f84c941e74e9efdd769ce03bb648fd92ecf2b5167a7a4b10dac0c0", + "rlp": "0xf902dcf90242a071b12efea40efc0cf738df0e39928a7eefc66b1409c3dd7338485236cffc3d5ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa006b67f6994978c5ba4dbfaefcbde2db45f34e57605b766ee9789b96544d28bf8a069c34c1377adba6f98b7fc8cbf72dda21743d5c9fab277dda1653cb8184c1e58a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f893b89103f88e018080078307a120940000000000000000000000000000000000000100880de0b6b3a764000080c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0b3258fd7db8f86bbbfb10baf3505e59c9405e3ad40cef18d5dadc24fdb187947a019be44612fe655f84c941e74e9efdd769ce03bb648fd92ecf2b5167a7a4b10dac0c0", "blockHeader": { - "parentHash": "0x6982f8830bc08e13384bf4d1adab1d92cdcb7d54d9ba4cbcffee37dfcd666b4a", + "parentHash": "0x71b12efea40efc0cf738df0e39928a7eefc66b1409c3dd7338485236cffc3d5c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xafd28c606b44a1d1cb4528988083f5f7d3abd12ba259388b717ec3602e40e9a5", + "stateRoot": "0x06b67f6994978c5ba4dbfaefcbde2db45f34e57605b766ee9789b96544d28bf8", "transactionsTrie": "0x69c34c1377adba6f98b7fc8cbf72dda21743d5c9fab277dda1653cb8184c1e58", "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -345,35 +314,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5b968d763867571d207470231535495b9b9332d8fb64d7eb67258dffeecef26b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6982f8830bc08e13384bf4d1adab1d92cdcb7d54d9ba4cbcffee37dfcd666b4a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xafd28c606b44a1d1cb4528988083f5f7d3abd12ba259388b717ec3602e40e9a5", - "receiptsRoot": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa861", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x5b968d763867571d207470231535495b9b9332d8fb64d7eb67258dffeecef26b", - "transactions": [ - "0x03f88e018080078307a120940000000000000000000000000000000000000100880de0b6b3a764000080c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0b3258fd7db8f86bbbfb10baf3505e59c9405e3ad40cef18d5dadc24fdb187947a019be44612fe655f84c941e74e9efdd769ce03bb648fd92ecf2b5167a7a4b10da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfda1ad96a9c9b3fbb3406d2f8b380ce9cfcb068596596b7758af18da8280cf9d" }, "blocknumber": "1", "transactions": [ @@ -402,45 +343,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x33480f4e398e111d7930028fbf165743cc5eded93deac0db3f3ac24883dcfbf8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6982f8830bc08e13384bf4d1adab1d92cdcb7d54d9ba4cbcffee37dfcd666b4a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a033480f4e398e111d7930028fbf165743cc5eded93deac0db3f3ac24883dcfbf8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5b968d763867571d207470231535495b9b9332d8fb64d7eb67258dffeecef26b", - "network": "Cancun", + "lastblockhash": "0xfda1ad96a9c9b3fbb3406d2f8b380ce9cfcb068596596b7758af18da8280cf9d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x34600055", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x0de0b6b3a79b67e0", @@ -449,14 +365,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x0de0b6b3a7640000", @@ -465,6 +373,14 @@ "0x00": "0x0de0b6b3a7640000" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30cd39", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json index 0a6dc4bca5f..bba8a720985 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/blob_type_tx_pre_fork.json @@ -1,45 +1,17 @@ { "000-fork=ShanghaiToCancunAtTime15k-no_blob_tx": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90288f90218a06ce17bc36445384a1f429a3875f13a8e691d8ebfefebcf1201f50d300c6fabcca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa051f41d6ab2123b8c2bef303127d48c31e5b8ccee1bfde9f853f443fe9711c3faa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180f869b86703f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6ce17bc36445384a1f429a3875f13a8e691d8ebfefebcf1201f50d300c6fabcc", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x51f41d6ab2123b8c2bef303127d48c31e5b8ccee1bfde9f853f443fe9711c3fa", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "blockHash": "0x15df3d4238924376e9a83135238ab691cb98fa198947272ea1ad57c1b8b92c67", - "transactions": [ - "0x03f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2" - ], - "withdrawals": [] - }, - "version": "2" - }, - "expectException": "tx_type_3_not_allowed_yet", - "blocknumber": "1" - } - ], + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x51f41d6ab2123b8c2bef303127d48c31e5b8ccee1bfde9f853f443fe9711c3fa", + "stateRoot": "0x0b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901e", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -53,12 +25,66 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6ce17bc36445384a1f429a3875f13a8e691d8ebfefebcf1201f50d300c6fabcc" + "hash": "0xe65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138df" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a051f41d6ab2123b8c2bef303127d48c31e5b8ccee1bfde9f853f443fe9711c3faa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x6ce17bc36445384a1f429a3875f13a8e691d8ebfefebcf1201f50d300c6fabcc", - "network": "ShanghaiToCancunAtTime15k", + "blocks": [ + { + "rlp": "0xf90287f90217a0e65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f869b86703f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2c0c0", + "expectException": "tx type 3 not allowed pre-Cancun", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138df", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x04006395f6fe8d5960e2bdcd4a8bc2f9c0dc2003c3a795ff86ea9101180bd043" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [], + "v": "0x00", + "r": "0xde3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cd", + "s": "0x6c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xe65f8efd00744af00dd2592d0550541cd1e883694df663eead84f129ff2138df", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x023e39", @@ -67,6 +93,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x023e39", @@ -78,45 +110,17 @@ }, "001-fork=ShanghaiToCancunAtTime15k-one_blob_tx": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902acf9021ba021c3d0929554c2d4d2f5adeb05c67c43a0f13e10248d37cbbed12f98f76d362ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa060801982e5816ed2f91320cea42769e76120d71d863d48bf8ec4d905455ae9cda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21c3d0929554c2d4d2f5adeb05c67c43a0f13e10248d37cbbed12f98f76d362c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x60801982e5816ed2f91320cea42769e76120d71d863d48bf8ec4d905455ae9cd", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "blockHash": "0x8d4427ad50f06eaf834ef34f82a6feac92180040fef0a7670844ceb9a6e6b1c4", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "version": "2" - }, - "expectException": "tx_type_3_not_allowed_yet", - "blocknumber": "1" - } - ], + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x60801982e5816ed2f91320cea42769e76120d71d863d48bf8ec4d905455ae9cd", + "stateRoot": "0x7fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -130,12 +134,68 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x21c3d0929554c2d4d2f5adeb05c67c43a0f13e10248d37cbbed12f98f76d362c" + "hash": "0x93ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a060801982e5816ed2f91320cea42769e76120d71d863d48bf8ec4d905455ae9cda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x21c3d0929554c2d4d2f5adeb05c67c43a0f13e10248d37cbbed12f98f76d362c", - "network": "ShanghaiToCancunAtTime15k", + "blocks": [ + { + "rlp": "0xf902a8f90217a093ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "expectException": "tx type 3 not allowed pre-Cancun", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x93ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4193725c2de2ac0fa6e4d966b1303e783d4e7236ba6d9a1c03c318caf5f732ab" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x93ba1d150a1d1016c13e30e068f95a491288910b7688ac42aa2805f4fac05f20", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x043e39", @@ -144,6 +204,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x043e39", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json index d28e8f61664..34369d0daaf 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx.json @@ -1,50 +1,17 @@ { "000-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a026e403a73af2112b23d46f3104ff4bc75a9b950427a5ada2d1fc6a49f540cf4da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa008f1296f9df11435dcb3dd85e4287d9a781338fa6e23e9a804e81f5e4a1da358a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0dca96ee8036da88f7870601739979abcb9e581823bb0539f1ee412e83c5a6654a06f763830fe86dfc591bbac5e70d47576bfaaf48d99ee399398b8e6b7de9f095ec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x26e403a73af2112b23d46f3104ff4bc75a9b950427a5ada2d1fc6a49f540cf4d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x08f1296f9df11435dcb3dd85e4287d9a781338fa6e23e9a804e81f5e4a1da358", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xc0bc4e92e673baef7b856d0cf66fcace6830dd3ed41d236eec906c06c81bad9f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0dca96ee8036da88f7870601739979abcb9e581823bb0539f1ee412e83c5a6654a06f763830fe86dfc591bbac5e70d47576bfaaf48d99ee399398b8e6b7de9f095e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00bde47c41183d78907c33113ca9c8099f7250502107e7d68b030c4df961981d4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc130f4683d1c1fd412aa01ff07121d1cc66f0708dd4cc258a2d5f140ec91633f", + "stateRoot": "0x0bde47c41183d78907c33113ca9c8099f7250502107e7d68b030c4df961981d4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -61,16 +28,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x26e403a73af2112b23d46f3104ff4bc75a9b950427a5ada2d1fc6a49f540cf4d" + "hash": "0xc545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c130f4683d1c1fd412aa01ff07121d1cc66f0708dd4cc258a2d5f140ec91633fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x26e403a73af2112b23d46f3104ff4bc75a9b950427a5ada2d1fc6a49f540cf4d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0c545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c9242c8f50b41094b61604792d98551c9249b9be1ea8722bc30cc2222bfba0f4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0dca96ee8036da88f7870601739979abcb9e581823bb0539f1ee412e83c5a6654a06f763830fe86dfc591bbac5e70d47576bfaaf48d99ee399398b8e6b7de9f095ec0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc9242c8f50b41094b61604792d98551c9249b9be1ea8722bc30cc2222bfba0f4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5871d7b5eb50ab173fb6b9911f23a5d2864ceb359a9dd5e97b0805dfa8c95ccb" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xdca96ee8036da88f7870601739979abcb9e581823bb0539f1ee412e83c5a6654", + "s": "0x6f763830fe86dfc591bbac5e70d47576bfaaf48d99ee399398b8e6b7de9f095e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xc545c4c25c2b01b821ceabe791fd14ca60f2523211bb9a01fc16af4fbeb63133", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -81,10 +101,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -98,50 +118,17 @@ }, "001-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a046b88788f4b4566bf51e4ba72cf44896c248861ed082adcfb967d50a79284349a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa064c99caeb05fcc287da38cb03b72ff3fad8d9dc812ea64ab7bb1be8ec55ebd4ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a00a74fc00fd19397a364a9fa0725fb7450e39a0835f9bb73641ade6d6eaa45c2ea070df4bc2b3e1b67218f23101b0ac28921648e37bfe7772f97fb3e2f1640a733dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x46b88788f4b4566bf51e4ba72cf44896c248861ed082adcfb967d50a79284349", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x64c99caeb05fcc287da38cb03b72ff3fad8d9dc812ea64ab7bb1be8ec55ebd4c", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xc6be73fa41e603a4790a5f11ed75cc919fb2b41df43f0121a7437efdb0eb0333", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a00a74fc00fd19397a364a9fa0725fb7450e39a0835f9bb73641ade6d6eaa45c2ea070df4bc2b3e1b67218f23101b0ac28921648e37bfe7772f97fb3e2f1640a733d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ad35be23feb93ca916979cec0af98a3ef8d27ae12869ebc1082b351eeec2e64ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3f9f00cd44aed5708fe3c410d82106b0a506c2b4b475f3e71684a6d1e72e745f", + "stateRoot": "0xad35be23feb93ca916979cec0af98a3ef8d27ae12869ebc1082b351eeec2e64c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -158,16 +145,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x46b88788f4b4566bf51e4ba72cf44896c248861ed082adcfb967d50a79284349" + "hash": "0xf5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03f9f00cd44aed5708fe3c410d82106b0a506c2b4b475f3e71684a6d1e72e745fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x46b88788f4b4566bf51e4ba72cf44896c248861ed082adcfb967d50a79284349", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0f5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d80cac34e78f745963294186bd4164282f9b64099933026e26a61bb4d4467f14a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008080c001e1a0010000000000000000000000000000000000000000000000000000000000000080a00a74fc00fd19397a364a9fa0725fb7450e39a0835f9bb73641ade6d6eaa45c2ea070df4bc2b3e1b67218f23101b0ac28921648e37bfe7772f97fb3e2f1640a733dc0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd80cac34e78f745963294186bd4164282f9b64099933026e26a61bb4d4467f14", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9fd9f91f32aeee8ba8886d2bfff94ad49503042d56e217c39105f6659cff45d9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x0a74fc00fd19397a364a9fa0725fb7450e39a0835f9bb73641ade6d6eaa45c2e", + "s": "0x70df4bc2b3e1b67218f23101b0ac28921648e37bfe7772f97fb3e2f1640a733d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xf5b1eb79711089d1fd2a7caf3026bb21153cbcfd32c157ba03ecfac7b60eaa08", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -178,10 +218,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -195,50 +235,17 @@ }, "002-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a018ad5c3755675d8aaf83601b61ab614b5c81b0b0efdddcb1388884a1cc93722ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04643ec6af55cabf280565cbfdbfac64031a68c35a49af8b76291b5241ad7474fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x18ad5c3755675d8aaf83601b61ab614b5c81b0b0efdddcb1388884a1cc93722b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4643ec6af55cabf280565cbfdbfac64031a68c35a49af8b76291b5241ad7474f", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xe407bf86f25eedd972537a7025587fd2fa8d24013f42347e13f1bc6e87d6ce97", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04fc7860b0697f0704e3d0498ba1418a73b915f2c802a68a82e3c2fbc07fe30c7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc3da3fced03e55a3518ca77ce778b1063a73a5dcfca6c83758b6004308b8f088", + "stateRoot": "0x4fc7860b0697f0704e3d0498ba1418a73b915f2c802a68a82e3c2fbc07fe30c7", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -255,16 +262,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x18ad5c3755675d8aaf83601b61ab614b5c81b0b0efdddcb1388884a1cc93722b" + "hash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c3da3fced03e55a3518ca77ce778b1063a73a5dcfca6c83758b6004308b8f088a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x18ad5c3755675d8aaf83601b61ab614b5c81b0b0efdddcb1388884a1cc93722b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0cb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x63fec1369cd9d65b290ae94fc996e8ebf2c79051c6bf35141dd04fae3e4ed933" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -275,10 +335,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -292,50 +352,17 @@ }, "003-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0f20a9dbb65a0b65b37161651193dfd069a6fc35ee5c3e73fedc3748de56465c8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0156df655796be6310d7e4b05ceb98b891312ed7520580990b8108fdd4e2469faa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0834260345355eb2e9de227bf22bd4c82e7ad4c6eb547d3c38a24b23a2f5f8b99a02ec4f27833cb32af4f4b394730a7c2e4a55df4cdb86757bf49bf11809bd2d013c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf20a9dbb65a0b65b37161651193dfd069a6fc35ee5c3e73fedc3748de56465c8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x156df655796be6310d7e4b05ceb98b891312ed7520580990b8108fdd4e2469fa", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x85db7f9707c4d1ca979e5e2bc1027526c5b8a6c4cb339db1332d8e872ef415e2", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0834260345355eb2e9de227bf22bd4c82e7ad4c6eb547d3c38a24b23a2f5f8b99a02ec4f27833cb32af4f4b394730a7c2e4a55df4cdb86757bf49bf11809bd2d013" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d8df614c17d708b5767dbee4147a9fce8d4aa91b58eb9f73a9a992825939202ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9dbca8e8675176d99eb10bf5346020000981f04f1a0cb44f5c5fd4d3ac7b2de7", + "stateRoot": "0xd8df614c17d708b5767dbee4147a9fce8d4aa91b58eb9f73a9a992825939202c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -352,16 +379,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf20a9dbb65a0b65b37161651193dfd069a6fc35ee5c3e73fedc3748de56465c8" + "hash": "0xedbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09dbca8e8675176d99eb10bf5346020000981f04f1a0cb44f5c5fd4d3ac7b2de7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf20a9dbb65a0b65b37161651193dfd069a6fc35ee5c3e73fedc3748de56465c8", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0edbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04ffeb8ef2784bd8ea71948d0ec13da29f84cf6fadbd4a6f5ce0238cdeaf8e5d3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0834260345355eb2e9de227bf22bd4c82e7ad4c6eb547d3c38a24b23a2f5f8b99a02ec4f27833cb32af4f4b394730a7c2e4a55df4cdb86757bf49bf11809bd2d013c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xedbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4ffeb8ef2784bd8ea71948d0ec13da29f84cf6fadbd4a6f5ce0238cdeaf8e5d3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4a749a10981b78fedf237acfb699f534666d1555d62b2ba0bdab803bf6000112" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x834260345355eb2e9de227bf22bd4c82e7ad4c6eb547d3c38a24b23a2f5f8b99", + "s": "0x2ec4f27833cb32af4f4b394730a7c2e4a55df4cdb86757bf49bf11809bd2d013", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xedbe52c59e7e4f635dc9b48be579105755a022e8d93f1bfec5025ee766f8ae65", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -372,10 +452,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -389,50 +469,17 @@ }, "004-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0dd6cd11d2ac55f5a2037e3dae03e3c0e01a8512df0ddde801ce33d3be0cc15c1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fee6af10f573edcb4e2c0413cd88e93be9e0ce86a79e7688d12ce0d74a6e9d22a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08ef1265a5c4f2fbb28b31b752023aa14081df4a16fe022560d0f4ded00fcee25a07b9da64739d8916a86844d8d8a63ffea9cb158721262bc1c3d4fec63cb92aa3ec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdd6cd11d2ac55f5a2037e3dae03e3c0e01a8512df0ddde801ce33d3be0cc15c1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfee6af10f573edcb4e2c0413cd88e93be9e0ce86a79e7688d12ce0d74a6e9d22", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x5583a8aaab0e55a4af6a3aecfa72157a689cda71561a215c58a68deb310fd67d", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08ef1265a5c4f2fbb28b31b752023aa14081df4a16fe022560d0f4ded00fcee25a07b9da64739d8916a86844d8d8a63ffea9cb158721262bc1c3d4fec63cb92aa3e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a035448580d6f12c45df5cecc15dda76e8b8b06bd9d63cafbdbf8715556e521d5da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa9b43dfdbe59b22d10bf2a7bad85ed7fca9977e4952292adfe84908d5c369457", + "stateRoot": "0x35448580d6f12c45df5cecc15dda76e8b8b06bd9d63cafbdbf8715556e521d5d", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -449,16 +496,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdd6cd11d2ac55f5a2037e3dae03e3c0e01a8512df0ddde801ce33d3be0cc15c1" + "hash": "0x54b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a9b43dfdbe59b22d10bf2a7bad85ed7fca9977e4952292adfe84908d5c369457a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdd6cd11d2ac55f5a2037e3dae03e3c0e01a8512df0ddde801ce33d3be0cc15c1", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a054b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07008b41fbcbee97991b922a5556a408db17b288036ac5803aa29eb7b9cd241a4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08ef1265a5c4f2fbb28b31b752023aa14081df4a16fe022560d0f4ded00fcee25a07b9da64739d8916a86844d8d8a63ffea9cb158721262bc1c3d4fec63cb92aa3ec0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x54b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7008b41fbcbee97991b922a5556a408db17b288036ac5803aa29eb7b9cd241a4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6d0de65fb585320dd2ab768da5c0b17ce53697e15ad4b4c72514da697cf43a11" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x8ef1265a5c4f2fbb28b31b752023aa14081df4a16fe022560d0f4ded00fcee25", + "s": "0x7b9da64739d8916a86844d8d8a63ffea9cb158721262bc1c3d4fec63cb92aa3e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x54b1f20f3829f52de769bd3df3451192ce0f3f860c00cac096271c8483a081c7", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -469,10 +569,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -486,50 +586,17 @@ }, "005-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a043895e785ce9f90d059af1e3cd1ef3065203652ee505f9e2c01cf7cdb6c0293ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0be98dba8eb0db5db0cba86f9041e4f802110a22cab34009814484893aeffdd22a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a094528c7b2c3624da6e73d31433bec9ae2cb5ad6c5a295a0a6d1acb1a91fd5151a0403579728d3fb6070730f45431672abdaa69acf6c69c8248b9913e8f802666e5c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x43895e785ce9f90d059af1e3cd1ef3065203652ee505f9e2c01cf7cdb6c0293c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbe98dba8eb0db5db0cba86f9041e4f802110a22cab34009814484893aeffdd22", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd63c7f89ed41fae8c6760a9783d587d8e58954b0d30f88715ca83d5c7dc73bd4", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a094528c7b2c3624da6e73d31433bec9ae2cb5ad6c5a295a0a6d1acb1a91fd5151a0403579728d3fb6070730f45431672abdaa69acf6c69c8248b9913e8f802666e5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dec943831f9021de4e91dc404c045d518e06e9decaad8758a7b0d7d50c71117fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5e14fd7ff8f37702b374a4c44ec1eeac8f8d787b9765eb95cc0ec7ec4787ea7e", + "stateRoot": "0xdec943831f9021de4e91dc404c045d518e06e9decaad8758a7b0d7d50c71117f", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -546,16 +613,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x43895e785ce9f90d059af1e3cd1ef3065203652ee505f9e2c01cf7cdb6c0293c" + "hash": "0x4a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e14fd7ff8f37702b374a4c44ec1eeac8f8d787b9765eb95cc0ec7ec4787ea7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x43895e785ce9f90d059af1e3cd1ef3065203652ee505f9e2c01cf7cdb6c0293c", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a04a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0777d6033b30371032625cc3787873ca0e65efc78a7ce075c281db429d56ba27ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008000c001e1a0010000000000000000000000000000000000000000000000000000000000000080a094528c7b2c3624da6e73d31433bec9ae2cb5ad6c5a295a0a6d1acb1a91fd5151a0403579728d3fb6070730f45431672abdaa69acf6c69c8248b9913e8f802666e5c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x777d6033b30371032625cc3787873ca0e65efc78a7ce075c281db429d56ba27e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbcaf62ad7adcac2d3e739312761ba0c469b2e2c2259e8eef30208e413640a6fd" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x94528c7b2c3624da6e73d31433bec9ae2cb5ad6c5a295a0a6d1acb1a91fd5151", + "s": "0x403579728d3fb6070730f45431672abdaa69acf6c69c8248b9913e8f802666e5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x4a8bad1baeaceaf1337648877ab978da11faecf2d2b59d517a26646eebf417d4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -566,10 +686,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -583,50 +703,17 @@ }, "006-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0ead1698a40544b967e00f93ffd22aeb111a118b05fff2e4cfb53c3636a74ac8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ce676835be14da06a6f41e6224285d8b59a0b60f2b1bb4bbae58123157266c0ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000080a014ca5ead067aa9c1930c4ef5bfee0f85796dc060ee0616b7de4cad9bed340cfea04133ace6ec58338107311ae2604144f7268e75296d112c7d40a42911a53084d7c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xead1698a40544b967e00f93ffd22aeb111a118b05fff2e4cfb53c3636a74ac8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xce676835be14da06a6f41e6224285d8b59a0b60f2b1bb4bbae58123157266c0c", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x50047e42320acf2b6626f72e289e2ec7a6a0d0076b3718327996787567ca6eaa", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000080a014ca5ead067aa9c1930c4ef5bfee0f85796dc060ee0616b7de4cad9bed340cfea04133ace6ec58338107311ae2604144f7268e75296d112c7d40a42911a53084d7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d70f38c884a1942b5bd1e5d1fbe59571414d13d2fb591b6885baa68928542905a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2c51af6d61c35652e787a8285dbb9db91f261c2a803690a00aa674cec1cd15bb", + "stateRoot": "0xd70f38c884a1942b5bd1e5d1fbe59571414d13d2fb591b6885baa68928542905", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -643,16 +730,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xead1698a40544b967e00f93ffd22aeb111a118b05fff2e4cfb53c3636a74ac8f" + "hash": "0x0c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02c51af6d61c35652e787a8285dbb9db91f261c2a803690a00aa674cec1cd15bba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xead1698a40544b967e00f93ffd22aeb111a118b05fff2e4cfb53c3636a74ac8f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a00c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b71bc722a367125fd65879c1934564af8091c7bf0eba57939353de343a6cd1e8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000080a014ca5ead067aa9c1930c4ef5bfee0f85796dc060ee0616b7de4cad9bed340cfea04133ace6ec58338107311ae2604144f7268e75296d112c7d40a42911a53084d7c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x0c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb71bc722a367125fd65879c1934564af8091c7bf0eba57939353de343a6cd1e8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2263a62b1eb531557e29502ea5acad6387adb55775cc8ded795fbf56f5dfbdf1" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x14ca5ead067aa9c1930c4ef5bfee0f85796dc060ee0616b7de4cad9bed340cfe", + "s": "0x4133ace6ec58338107311ae2604144f7268e75296d112c7d40a42911a53084d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x0c5f9f759047d583e64e9196639334b39fba4bedb572b96dca921cd24e6e6945", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -663,10 +803,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -680,50 +820,17 @@ }, "007-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0ae23999c6497773bd53c0b84a2127e208c5bdab43f96f14ce73a210d310c2f0fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d12b4e41d4cb369d7683f9b4f20fb29cef68842037cfe9ea74806a70e536792aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05e2941d27b09a30735306f96fcb5169fc63f18606e680e3f21fc4fa85a33fda2a07c26869911646e5f5d9843d9949aa18f3ee8cb336aaa5b58785f23882a764286c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xae23999c6497773bd53c0b84a2127e208c5bdab43f96f14ce73a210d310c2f0f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd12b4e41d4cb369d7683f9b4f20fb29cef68842037cfe9ea74806a70e536792a", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xf0cce8e3504b37a120a3219f7031267a949ba441394d45e17087dbfabba7cf6f", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05e2941d27b09a30735306f96fcb5169fc63f18606e680e3f21fc4fa85a33fda2a07c26869911646e5f5d9843d9949aa18f3ee8cb336aaa5b58785f23882a764286" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dc1fcd29446cf03f615f7e28d9912b813bc6171d461d7a8bc955f7799a44f71ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8c859ad366861e14041f119fc810539caa0e3ffed4713a8258f543f1f9e2ecd4", + "stateRoot": "0xdc1fcd29446cf03f615f7e28d9912b813bc6171d461d7a8bc955f7799a44f71c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -740,16 +847,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xae23999c6497773bd53c0b84a2127e208c5bdab43f96f14ce73a210d310c2f0f" + "hash": "0x5f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318ded" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08c859ad366861e14041f119fc810539caa0e3ffed4713a8258f543f1f9e2ecd4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xae23999c6497773bd53c0b84a2127e208c5bdab43f96f14ce73a210d310c2f0f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a05f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318deda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa065f50dd72fefb128ce43de9a0ba580003e8a188f755103b31bdd1b033eddb5f6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000100c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05e2941d27b09a30735306f96fcb5169fc63f18606e680e3f21fc4fa85a33fda2a07c26869911646e5f5d9843d9949aa18f3ee8cb336aaa5b58785f23882a764286c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318ded", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x65f50dd72fefb128ce43de9a0ba580003e8a188f755103b31bdd1b033eddb5f6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1c78b20fdbd1dc8ec0a2c1b0be30f65af689fb91aa618d5a83973441e1ccb9a6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5e2941d27b09a30735306f96fcb5169fc63f18606e680e3f21fc4fa85a33fda2", + "s": "0x7c26869911646e5f5d9843d9949aa18f3ee8cb336aaa5b58785f23882a764286", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5f0d5771213c80ef62e99578de7055f25b0663da0426a0080013d02456318ded", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -760,10 +920,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -777,50 +937,17 @@ }, "008-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0d1d2e1e13de223907ffb30ac5e2247ff13dce1172e5f041487161cf7fb871382a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002712eef10ceb7f8e45f3c541a5b058361a6a63c0e2f1f1f8e469b216ba0664da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0ebaee9cd1beccea1a27ffbf0d94a96d99bc24560d1e3e56fafd2b48ccb17e24ea0247f72d63e5c7963fd197af7fdb6b0c6177f887a0435848a8d856f34bf5ccd36c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd1d2e1e13de223907ffb30ac5e2247ff13dce1172e5f041487161cf7fb871382", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x02712eef10ceb7f8e45f3c541a5b058361a6a63c0e2f1f1f8e469b216ba0664d", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd7630284890f8df510f50dd4f1b9ed29e115fa6bcf0ec12908e8fe6b487dc95e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0ebaee9cd1beccea1a27ffbf0d94a96d99bc24560d1e3e56fafd2b48ccb17e24ea0247f72d63e5c7963fd197af7fdb6b0c6177f887a0435848a8d856f34bf5ccd36" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a043649829819c05406a8becd5ae4b16fb9576d25ffe0ce7c12de924ef5f7dedd6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x42321d20e9e871366fd21f51e7d9b7d9366aa05481e6f41928166ee80a8750ec", + "stateRoot": "0x43649829819c05406a8becd5ae4b16fb9576d25ffe0ce7c12de924ef5f7dedd6", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -837,16 +964,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd1d2e1e13de223907ffb30ac5e2247ff13dce1172e5f041487161cf7fb871382" + "hash": "0xb6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a042321d20e9e871366fd21f51e7d9b7d9366aa05481e6f41928166ee80a8750eca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd1d2e1e13de223907ffb30ac5e2247ff13dce1172e5f041487161cf7fb871382", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0b6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa082e4d312fdb96c04bf45cc228cc1be1dbf8cd18623e1bd99465217aab18ef61fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0ebaee9cd1beccea1a27ffbf0d94a96d99bc24560d1e3e56fafd2b48ccb17e24ea0247f72d63e5c7963fd197af7fdb6b0c6177f887a0435848a8d856f34bf5ccd36c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x82e4d312fdb96c04bf45cc228cc1be1dbf8cd18623e1bd99465217aab18ef61f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x99b0d75c28d1bc15bf4bb38d4de13175c0f3660c6debd80654a589a26f64e2c3" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xebaee9cd1beccea1a27ffbf0d94a96d99bc24560d1e3e56fafd2b48ccb17e24e", + "s": "0x247f72d63e5c7963fd197af7fdb6b0c6177f887a0435848a8d856f34bf5ccd36", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb6c57c6b583cf8ab6db7deb3e7f8b4508c2a036805c0077f086cbc6b0800c263", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -857,10 +1037,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -874,50 +1054,17 @@ }, "009-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0fc1a0725541b903f06a7aebf5b98695c95a0e0e1cce60a9c8ac9a2b98260ededa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092683c31b7c656f130af6b9f4a1703d405cf0d710d717341d05b64162bb1319a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08dc2f0121b6a7155b370689c285e5ffbc442bb38fb40dd4bb5a4a81329c463e4a056036526a16a740b3a9e81df5f7eb138d6cc9d5e8d02e6f0d5509f484a4488c2c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfc1a0725541b903f06a7aebf5b98695c95a0e0e1cce60a9c8ac9a2b98260eded", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x092683c31b7c656f130af6b9f4a1703d405cf0d710d717341d05b64162bb1319", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xdd50c6267ee9cd81d78c81ae049cc4af474d40c7739af70f0183871bdf8eef8c", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08dc2f0121b6a7155b370689c285e5ffbc442bb38fb40dd4bb5a4a81329c463e4a056036526a16a740b3a9e81df5f7eb138d6cc9d5e8d02e6f0d5509f484a4488c2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00751c64bb7d0bda7867b28294bcc349170805f5ec286374dd5b59526a14a5453a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd0dc72ee5858e47dc1313b4a9811aa15b8b0c790bae162136ad488b0be73d709", + "stateRoot": "0x0751c64bb7d0bda7867b28294bcc349170805f5ec286374dd5b59526a14a5453", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -934,16 +1081,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfc1a0725541b903f06a7aebf5b98695c95a0e0e1cce60a9c8ac9a2b98260eded" + "hash": "0x3417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d0dc72ee5858e47dc1313b4a9811aa15b8b0c790bae162136ad488b0be73d709a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfc1a0725541b903f06a7aebf5b98695c95a0e0e1cce60a9c8ac9a2b98260eded", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a03417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04b551441257eb452452568b14f1ff236e2dccbbe956161e6c19d3f36c732d5d4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008001c001e1a0010000000000000000000000000000000000000000000000000000000000000080a08dc2f0121b6a7155b370689c285e5ffbc442bb38fb40dd4bb5a4a81329c463e4a056036526a16a740b3a9e81df5f7eb138d6cc9d5e8d02e6f0d5509f484a4488c2c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x3417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4b551441257eb452452568b14f1ff236e2dccbbe956161e6c19d3f36c732d5d4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb5fdb93379722e1e35af5e05844f6d69e3e01b54980ae4304aebd26896f59f1b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x8dc2f0121b6a7155b370689c285e5ffbc442bb38fb40dd4bb5a4a81329c463e4", + "s": "0x56036526a16a740b3a9e81df5f7eb138d6cc9d5e8d02e6f0d5509f484a4488c2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x3417c50a628c917a943b933f63199aad7a07681da13fb1748dbeb156b580ade4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -954,10 +1154,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -971,50 +1171,17 @@ }, "010-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a063c08709ca927fa9f333b55262306195608e77c1753d957af4fe5d9506976cb5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0062affbbe74a207beed85d920e68e129dbb4078a7e6d5911638cc1d33eafa2c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a021f18230a2e30eb5e59ddd5cd98fad033b9123872f2695b1562384f3339f5f41a07fdaf17f2443155ed312af5f01ac9b87d3f32732d192bbce1e41bb94f41db7cac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x63c08709ca927fa9f333b55262306195608e77c1753d957af4fe5d9506976cb5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x062affbbe74a207beed85d920e68e129dbb4078a7e6d5911638cc1d33eafa2c2", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xee1d98eefc7ad3492d96941704b18eb6061d72c7a83bd4eeea9b526314db4210", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a021f18230a2e30eb5e59ddd5cd98fad033b9123872f2695b1562384f3339f5f41a07fdaf17f2443155ed312af5f01ac9b87d3f32732d192bbce1e41bb94f41db7ca" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0be027b066f2ca79ca87bd0176c760c8b013dd657fcb8be6b9ea5f8c511ae09a6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xe4ecf0685e41bc5cabac280549218fdcad926deb6a9bd48168c624392af5138d", + "stateRoot": "0xbe027b066f2ca79ca87bd0176c760c8b013dd657fcb8be6b9ea5f8c511ae09a6", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1031,16 +1198,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x63c08709ca927fa9f333b55262306195608e77c1753d957af4fe5d9506976cb5" + "hash": "0xc2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e4ecf0685e41bc5cabac280549218fdcad926deb6a9bd48168c624392af5138da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x63c08709ca927fa9f333b55262306195608e77c1753d957af4fe5d9506976cb5", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0c2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f9af1458b6dd07b4932dd4e6dd3592149f6b18ab9744f6d1bbab006f26b30f2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000001a021f18230a2e30eb5e59ddd5cd98fad033b9123872f2695b1562384f3339f5f41a07fdaf17f2443155ed312af5f01ac9b87d3f32732d192bbce1e41bb94f41db7cac0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7f9af1458b6dd07b4932dd4e6dd3592149f6b18ab9744f6d1bbab006f26b30f2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x74b8e5e8038fdaa43f44636e54d87236fd5deed09a898a07800d0c9680c44d37" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x21f18230a2e30eb5e59ddd5cd98fad033b9123872f2695b1562384f3339f5f41", + "s": "0x7fdaf17f2443155ed312af5f01ac9b87d3f32732d192bbce1e41bb94f41db7ca", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xc2f1988194986e72330d065a112f2a91efd5805231895b1fdb5ece92acb247f6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1051,10 +1271,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1068,50 +1288,17 @@ }, "011-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=1-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a013bc130941053e1a5215bbf7e3390d273c110d89f1a1e154f11431d071330f63a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a198623b395aa9fb3988791c897c928b301f6281cd8153b2a2c65d0ee0867f51a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000080a03b9f4419ef58de1362593eeaa75e496e69aa0217fa0ce996b792b49bcdfac406a03370a0e492f8283d4abc77b009b39206dae8bbf311156c8619a40092024925bfc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x13bc130941053e1a5215bbf7e3390d273c110d89f1a1e154f11431d071330f63", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa198623b395aa9fb3988791c897c928b301f6281cd8153b2a2c65d0ee0867f51", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x8a0b7c5b1187242c0a6214e28b69fc910e208341b817653cfe65bc2d618a597b", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000080a03b9f4419ef58de1362593eeaa75e496e69aa0217fa0ce996b792b49bcdfac406a03370a0e492f8283d4abc77b009b39206dae8bbf311156c8619a40092024925bf" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02e8a3381e76fe1b1acd806d02937303464723c50bff0c31e4514dc9d2dcbbb3fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x700e9e3711109cd504cc6d3543f43b85851623fe5396690df2212aa8a3ca8b19", + "stateRoot": "0x2e8a3381e76fe1b1acd806d02937303464723c50bff0c31e4514dc9d2dcbbb3f", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1128,16 +1315,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x13bc130941053e1a5215bbf7e3390d273c110d89f1a1e154f11431d071330f63" + "hash": "0x001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdad" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0700e9e3711109cd504cc6d3543f43b85851623fe5396690df2212aa8a3ca8b19a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x13bc130941053e1a5215bbf7e3390d273c110d89f1a1e154f11431d071330f63", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bc1d72e9f780af7a7e400986c0d9af590e7687e57052dca87b6ced06cbff70d3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000101c001e1a0010000000000000000000000000000000000000000000000000000000000000080a03b9f4419ef58de1362593eeaa75e496e69aa0217fa0ce996b792b49bcdfac406a03370a0e492f8283d4abc77b009b39206dae8bbf311156c8619a40092024925bfc0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdad", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbc1d72e9f780af7a7e400986c0d9af590e7687e57052dca87b6ced06cbff70d3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53f9a89cddbe73f2f564875ccc9d4c4f0f111d253834d66283e44925b68d3149" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x3b9f4419ef58de1362593eeaa75e496e69aa0217fa0ce996b792b49bcdfac406", + "s": "0x3370a0e492f8283d4abc77b009b39206dae8bbf311156c8619a40092024925bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x001aaee0d20e4a7aa5b46cd189533c58d385a2ceb9d2fefcf79263d54eb0cdad", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1148,10 +1388,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1165,50 +1405,17 @@ }, "012-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0880d96d433f3d019525f882ff5dfa8d556a2e72a57c76d86885d1a0760aca9a7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0614f7aacdfe933ae50385b05426dc5bb4d3d64776ffac773d8a8f39a44b986b3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0eb774461949962772ab55a732e712f293d26cc96498a878827d3e91e01bf2eada073a202c92b1c8fdfac1f03da02a3d19967264fb6717ca155c15938c519740dfdc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x880d96d433f3d019525f882ff5dfa8d556a2e72a57c76d86885d1a0760aca9a7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x614f7aacdfe933ae50385b05426dc5bb4d3d64776ffac773d8a8f39a44b986b3", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x70afbfa1cd2d041d52bf74083d5f07ca598bf29307869d3ea1450a950876e5bb", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0eb774461949962772ab55a732e712f293d26cc96498a878827d3e91e01bf2eada073a202c92b1c8fdfac1f03da02a3d19967264fb6717ca155c15938c519740dfd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05bac21099af43f7d37da5e8b382595a3ae6588afc1309afe987cebb86017ce0ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x841919d5acc94ddf4b4606655638f44094580c7ab09d3f862214fdee53edbdc5", + "stateRoot": "0x5bac21099af43f7d37da5e8b382595a3ae6588afc1309afe987cebb86017ce0c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1225,16 +1432,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x880d96d433f3d019525f882ff5dfa8d556a2e72a57c76d86885d1a0760aca9a7" + "hash": "0xc24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0841919d5acc94ddf4b4606655638f44094580c7ab09d3f862214fdee53edbdc5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x880d96d433f3d019525f882ff5dfa8d556a2e72a57c76d86885d1a0760aca9a7", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0c24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052ccf73efe5611b172565419ae2dc840d7dd3e4b815b98ee88152156de4d5a73a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0eb774461949962772ab55a732e712f293d26cc96498a878827d3e91e01bf2eada073a202c92b1c8fdfac1f03da02a3d19967264fb6717ca155c15938c519740dfdc0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x52ccf73efe5611b172565419ae2dc840d7dd3e4b815b98ee88152156de4d5a73", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1ec48fcf4a023a2bb4b3683c273720b664a98ca3667c348966275542a3700164" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xeb774461949962772ab55a732e712f293d26cc96498a878827d3e91e01bf2ead", + "s": "0x73a202c92b1c8fdfac1f03da02a3d19967264fb6717ca155c15938c519740dfd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xc24c3a60298d5f627cce817f49019f899281afe46ee4251c9c0ebcd65e368ae4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1245,10 +1505,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1262,50 +1522,17 @@ }, "013-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0baf2899ac8a476e25645f6763106472f6c47776463d9577a84675b06ae81479aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0628e77095a90a9cdcf95e5eba0d5c5f3427134a2c7a79b5ab5725a18011a0819a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000001a08a02f8695c36e60f9e318b71e00fa80185a5770067293a6eac09a070c1ea778fa06c87de734a2748de7fbcfed883b0c923e2494d8aeae9308b1c8ff2eb3b7acc3bc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbaf2899ac8a476e25645f6763106472f6c47776463d9577a84675b06ae81479a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x628e77095a90a9cdcf95e5eba0d5c5f3427134a2c7a79b5ab5725a18011a0819", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xfb734a82e8e10b85fb55290f0ffd838a2c3c0d2bb27fd79081291cdd589a0746", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000001a08a02f8695c36e60f9e318b71e00fa80185a5770067293a6eac09a070c1ea778fa06c87de734a2748de7fbcfed883b0c923e2494d8aeae9308b1c8ff2eb3b7acc3b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01335d181c4757164a481bc8092bb65f8a0f0bc3dda1ac763cf0c9681a19a6621a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xde8caad3ae74c9300979e2f13bd5917a2a6a853f47f24148b0ad246d9648b855", + "stateRoot": "0x1335d181c4757164a481bc8092bb65f8a0f0bc3dda1ac763cf0c9681a19a6621", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1322,16 +1549,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbaf2899ac8a476e25645f6763106472f6c47776463d9577a84675b06ae81479a" + "hash": "0x56ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1c" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0de8caad3ae74c9300979e2f13bd5917a2a6a853f47f24148b0ad246d9648b855a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbaf2899ac8a476e25645f6763106472f6c47776463d9577a84675b06ae81479a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a056ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fc7a205bddc32e8f67536b9078e909ad304f82f334e61db84deef20a88e85533a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008080c064e1a0010000000000000000000000000000000000000000000000000000000000000001a08a02f8695c36e60f9e318b71e00fa80185a5770067293a6eac09a070c1ea778fa06c87de734a2748de7fbcfed883b0c923e2494d8aeae9308b1c8ff2eb3b7acc3bc0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x56ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfc7a205bddc32e8f67536b9078e909ad304f82f334e61db84deef20a88e85533", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9cc2846905dbf99de8eddefb7b378a2565d164f7b3afc826eaac965b05bb6bbc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x8a02f8695c36e60f9e318b71e00fa80185a5770067293a6eac09a070c1ea778f", + "s": "0x6c87de734a2748de7fbcfed883b0c923e2494d8aeae9308b1c8ff2eb3b7acc3b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x56ee99bc09138733820ecc4c06c5388f2b3134d632a30c719e64a0d41358bf1c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1342,10 +1622,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1359,50 +1639,17 @@ }, "014-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a06c2c8db8a685acd073b84f93b85a1c5ec6b501601bcf1b56d03a5e95c96e8467a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd66246c41cf39704cf342c43c5282e776ddb5ef4c323545620abf440ba909a6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000001a001f30ee2f0f8963619a153eea6b016e4cc8ec20124a3da4c4a65bb6b07c67400a03e001a6d2dfe1245c55ff1f53bae8bfce2a7dd4ab76a42ccef9186cccce7e6e0c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6c2c8db8a685acd073b84f93b85a1c5ec6b501601bcf1b56d03a5e95c96e8467", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd66246c41cf39704cf342c43c5282e776ddb5ef4c323545620abf440ba909a6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xa403e3a1d2aa811de53af261a0980b64d794bf7466d67aaad3a9a433e34e4b70", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000001a001f30ee2f0f8963619a153eea6b016e4cc8ec20124a3da4c4a65bb6b07c67400a03e001a6d2dfe1245c55ff1f53bae8bfce2a7dd4ab76a42ccef9186cccce7e6e0" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a84cc6abb58f6a7c6c0cfce7fbf3a047537589540b53cbde4fa8eb61674c3be7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x6480b3f0336b5b1d43fe1b3e69f320605995473fffa9434097555ef8a1f5a57b", + "stateRoot": "0xa84cc6abb58f6a7c6c0cfce7fbf3a047537589540b53cbde4fa8eb61674c3be7", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1419,16 +1666,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6c2c8db8a685acd073b84f93b85a1c5ec6b501601bcf1b56d03a5e95c96e8467" + "hash": "0x349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06480b3f0336b5b1d43fe1b3e69f320605995473fffa9434097555ef8a1f5a57ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6c2c8db8a685acd073b84f93b85a1c5ec6b501601bcf1b56d03a5e95c96e8467", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e18feb025d507b6ec7cc0ffcda7bfe6fda537704d81a8671304c1204ecbd25a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000001a001f30ee2f0f8963619a153eea6b016e4cc8ec20124a3da4c4a65bb6b07c67400a03e001a6d2dfe1245c55ff1f53bae8bfce2a7dd4ab76a42ccef9186cccce7e6e0c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe18feb025d507b6ec7cc0ffcda7bfe6fda537704d81a8671304c1204ecbd25a7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7a549955d3fbbf706405b8dd4126e796fdaf600223fb3344ec298284dc0bd25f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x01f30ee2f0f8963619a153eea6b016e4cc8ec20124a3da4c4a65bb6b07c67400", + "s": "0x3e001a6d2dfe1245c55ff1f53bae8bfce2a7dd4ab76a42ccef9186cccce7e6e0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x349612a75430b8e5ced2f6e1bfe9707b3c56f7ff2da8b88750faf00133dedad5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1439,10 +1739,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1456,50 +1756,17 @@ }, "015-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a04648bcd547bca04a102d7cbee381cfef57a2c20b2d65011158beb85ede62a423a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa020270eb848ae776374b39ecec6da4dc2431897b8342cbcb3faf70f0007ddf40fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0583b0b00afa057d8fd329bda7bee40e62ff1f10d665daf6752fb091ec2b4a06ea03e2e2426049295029ab5aefefca9f9ffd9cbebb2001aab5ee2b0eef573f67b0cc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4648bcd547bca04a102d7cbee381cfef57a2c20b2d65011158beb85ede62a423", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x20270eb848ae776374b39ecec6da4dc2431897b8342cbcb3faf70f0007ddf40f", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x77d73a44b7915fbc1323d064f64a4b4c1632e0af5a49d99d1c9fd1f579d28a67", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0583b0b00afa057d8fd329bda7bee40e62ff1f10d665daf6752fb091ec2b4a06ea03e2e2426049295029ab5aefefca9f9ffd9cbebb2001aab5ee2b0eef573f67b0c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0485a70000b1dab06eb1c7c2cdd9695f8172f3ace6e9d47b21d6bc4407dd7dfafa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2ae4e0c9c1bc9c0968f7dccc8fcec76cc8051232c34f61f0b98fc91a5acb2226", + "stateRoot": "0x485a70000b1dab06eb1c7c2cdd9695f8172f3ace6e9d47b21d6bc4407dd7dfaf", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1516,16 +1783,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4648bcd547bca04a102d7cbee381cfef57a2c20b2d65011158beb85ede62a423" + "hash": "0xbe453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947f" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02ae4e0c9c1bc9c0968f7dccc8fcec76cc8051232c34f61f0b98fc91a5acb2226a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4648bcd547bca04a102d7cbee381cfef57a2c20b2d65011158beb85ede62a423", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0be453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa081370790b3682e0055a5eb8618b816d54c7593ad7a8aa31f7524a3cab8a71991a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000180c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0583b0b00afa057d8fd329bda7bee40e62ff1f10d665daf6752fb091ec2b4a06ea03e2e2426049295029ab5aefefca9f9ffd9cbebb2001aab5ee2b0eef573f67b0cc0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xbe453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x81370790b3682e0055a5eb8618b816d54c7593ad7a8aa31f7524a3cab8a71991", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xab2cd8bef304457ba12de032ed9ffc7965e59602b4180c6abaff4462aea822e1" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x583b0b00afa057d8fd329bda7bee40e62ff1f10d665daf6752fb091ec2b4a06e", + "s": "0x3e2e2426049295029ab5aefefca9f9ffd9cbebb2001aab5ee2b0eef573f67b0c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xbe453ac18ae5b4ac17f498137f49ef0bac99ac7e01dfe066bd52b3bd88fe947f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1536,10 +1856,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1553,50 +1873,17 @@ }, "016-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a093071fd63b6278fe18048352d88c202e773836e1d2cc0156628dcbcd3b1744bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b9c51f56440f6fb299a254a65898a34929ee8e700b478b39b484b94fb7a19e35a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0bb13558decc959cb279c9b350642a5d1ce804bb0c994127e48e410965535f50ea03f850921cfdfc269e6032af204ad29f0b5dbe2e2c275c33a751040b38038a4d7c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x93071fd63b6278fe18048352d88c202e773836e1d2cc0156628dcbcd3b1744bc", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb9c51f56440f6fb299a254a65898a34929ee8e700b478b39b484b94fb7a19e35", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xa03fb2c3483bf027f4d7a73eb3b0f48295a7a0e705c1cbe421f112edbe69f761", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0bb13558decc959cb279c9b350642a5d1ce804bb0c994127e48e410965535f50ea03f850921cfdfc269e6032af204ad29f0b5dbe2e2c275c33a751040b38038a4d7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09b8da0156368c59e23f0075b228b5ffb8e8804769d59091f31a3f71290aa15f2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x135a4fdb85dce16df2eed086a271efcb155454bbd8a60fb1ebfe5b37f365b1ee", + "stateRoot": "0x9b8da0156368c59e23f0075b228b5ffb8e8804769d59091f31a3f71290aa15f2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1613,16 +1900,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x93071fd63b6278fe18048352d88c202e773836e1d2cc0156628dcbcd3b1744bc" + "hash": "0xadadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0135a4fdb85dce16df2eed086a271efcb155454bbd8a60fb1ebfe5b37f365b1eea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x93071fd63b6278fe18048352d88c202e773836e1d2cc0156628dcbcd3b1744bc", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0adadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f00628369585ecbdc4b1bff5758c773f3c1278bfb0d6fafa5d4c9a25e9c5897ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0bb13558decc959cb279c9b350642a5d1ce804bb0c994127e48e410965535f50ea03f850921cfdfc269e6032af204ad29f0b5dbe2e2c275c33a751040b38038a4d7c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xadadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf00628369585ecbdc4b1bff5758c773f3c1278bfb0d6fafa5d4c9a25e9c5897c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x36945fbc48a59f5bc7bb7efa44e2e240a06cdab48f549441b8dbc17c5bac9666" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xbb13558decc959cb279c9b350642a5d1ce804bb0c994127e48e410965535f50e", + "s": "0x3f850921cfdfc269e6032af204ad29f0b5dbe2e2c275c33a751040b38038a4d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xadadc1ddbe7b826eb276d2ebb537b1a72e939ca497b763680d0b9ff0f4e72484", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1633,10 +1973,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1650,50 +1990,17 @@ }, "017-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a08d532577afdb8d4de10be7fe85ef9822680488580aedfa592acdf2dd367aa54ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a23a024fee2adaa4775c85883f45f3adc73b31d7d55294678cfd0c04587efb3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a00f3600195d8f70f7298646578bff59e8626db0129dccb817532e9d9162de8da6a0492d12f88878ba7b46787bd442d34cea28998e99e4f212c559220033f05b85b8c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8d532577afdb8d4de10be7fe85ef9822680488580aedfa592acdf2dd367aa54e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7a23a024fee2adaa4775c85883f45f3adc73b31d7d55294678cfd0c04587efb3", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x2d8608d79e79400f869f7c6cafc949b65f3b21f827ee103e16e58a45c23e2a40", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a00f3600195d8f70f7298646578bff59e8626db0129dccb817532e9d9162de8da6a0492d12f88878ba7b46787bd442d34cea28998e99e4f212c559220033f05b85b8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a022b15a651056399e822c9402d2a17ca11cbea0c6eb84debccfd500070c7fd12fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xe93fd400e5b19bc53488636ff3cb592e31576e5782596cb5e81db505968e1e11", + "stateRoot": "0x22b15a651056399e822c9402d2a17ca11cbea0c6eb84debccfd500070c7fd12f", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1710,16 +2017,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8d532577afdb8d4de10be7fe85ef9822680488580aedfa592acdf2dd367aa54e" + "hash": "0xf6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e93fd400e5b19bc53488636ff3cb592e31576e5782596cb5e81db505968e1e11a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8d532577afdb8d4de10be7fe85ef9822680488580aedfa592acdf2dd367aa54e", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0f6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b7c491d3d922a53f6b0f6b9d2c8bc887deeaa9f29f0b9d8b2e8d50b7bddb78cca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008000c064e1a0010000000000000000000000000000000000000000000000000000000000000080a00f3600195d8f70f7298646578bff59e8626db0129dccb817532e9d9162de8da6a0492d12f88878ba7b46787bd442d34cea28998e99e4f212c559220033f05b85b8c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb7c491d3d922a53f6b0f6b9d2c8bc887deeaa9f29f0b9d8b2e8d50b7bddb78cc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5bad821e695bdcd97253b5a2486d532e6ca1767a140ed198c62fe387dcbd282d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x0f3600195d8f70f7298646578bff59e8626db0129dccb817532e9d9162de8da6", + "s": "0x492d12f88878ba7b46787bd442d34cea28998e99e4f212c559220033f05b85b8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xf6b48fd8c65ef97864c7a780fff64ea9d5b907d21144b043b6e091457caa04d1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1730,10 +2090,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1747,50 +2107,17 @@ }, "018-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a07f76c9473383f03a737b2929804c0a302bb8f3cdaac05d8025b06a70d7ed6e67a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa030385377eee94f5381975384ed6694206795ac5578bb7de6504e36b28bd63054a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000080a02e9117b3aecd14f8e01af7157a156c93b401214ffdcf2ca75f37bab88ca690cba079ae9be19208ba16ab9a5189d9b56fa1cd62ee3663dd090da2f34d1ecbaefafac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7f76c9473383f03a737b2929804c0a302bb8f3cdaac05d8025b06a70d7ed6e67", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x30385377eee94f5381975384ed6694206795ac5578bb7de6504e36b28bd63054", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd8aa4e536461bf149a92dd0e752c50e8c9bf0e13965ba066ac30bdb5d288e608", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000080a02e9117b3aecd14f8e01af7157a156c93b401214ffdcf2ca75f37bab88ca690cba079ae9be19208ba16ab9a5189d9b56fa1cd62ee3663dd090da2f34d1ecbaefafa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00a6165a59cda66f14927d96db8c3e727393fdb9e8ed23fd6ad36ac275ed6488ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1bfb403eee87951ac78f55217c7018a80c39ab2ad3980c9dc08127d3e7e55881", + "stateRoot": "0x0a6165a59cda66f14927d96db8c3e727393fdb9e8ed23fd6ad36ac275ed6488c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1807,16 +2134,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7f76c9473383f03a737b2929804c0a302bb8f3cdaac05d8025b06a70d7ed6e67" + "hash": "0xe9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01bfb403eee87951ac78f55217c7018a80c39ab2ad3980c9dc08127d3e7e55881a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7f76c9473383f03a737b2929804c0a302bb8f3cdaac05d8025b06a70d7ed6e67", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0e9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a3985bd9500781c733d796064462b78f3aa3f19177aa377018e4fba415efade9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000080a02e9117b3aecd14f8e01af7157a156c93b401214ffdcf2ca75f37bab88ca690cba079ae9be19208ba16ab9a5189d9b56fa1cd62ee3663dd090da2f34d1ecbaefafac0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa3985bd9500781c733d796064462b78f3aa3f19177aa377018e4fba415efade9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x268a4b2527b969e414b1c67dba41532671eb666b9e44c91918f8c8d6b293f753" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x2e9117b3aecd14f8e01af7157a156c93b401214ffdcf2ca75f37bab88ca690cb", + "s": "0x79ae9be19208ba16ab9a5189d9b56fa1cd62ee3663dd090da2f34d1ecbaefafa", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xe9d27d808e0cb736712793a57e9c9d18bd121aafb6614aa19308ac5ddc568590", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1827,10 +2207,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1844,50 +2224,17 @@ }, "019-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a09f2a9fb9607b7202e8035d879851fb650b0314860c7560fa59cf33cd1682d3b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a178f16dd0d894432455bbe4f8be8966df6e91e34f2de389cfa2744eb7e15614a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0a1045f503e2d06c05c3c5c8b3740560075beaf2d7395688f993ea83e989e7d22a070371c7f3840f63aac646790236b90a046f7e31752f627498867065ae840e00ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9f2a9fb9607b7202e8035d879851fb650b0314860c7560fa59cf33cd1682d3b4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa178f16dd0d894432455bbe4f8be8966df6e91e34f2de389cfa2744eb7e15614", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x919fd121f757ea2a8315035e42142065a536da6b6897e3bc3954e08d3fe428fd", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0a1045f503e2d06c05c3c5c8b3740560075beaf2d7395688f993ea83e989e7d22a070371c7f3840f63aac646790236b90a046f7e31752f627498867065ae840e00a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a40ebfd7505841280a5445ce7d45679a8b87cf47b20a8ef2571ea56aa6ef07dea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x89246f253904f8be86ccd52b19286e098b45323890e14e8cbf43bc2b2c6d4ceb", + "stateRoot": "0xa40ebfd7505841280a5445ce7d45679a8b87cf47b20a8ef2571ea56aa6ef07de", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1904,16 +2251,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9f2a9fb9607b7202e8035d879851fb650b0314860c7560fa59cf33cd1682d3b4" + "hash": "0xa53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022c" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089246f253904f8be86ccd52b19286e098b45323890e14e8cbf43bc2b2c6d4ceba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9f2a9fb9607b7202e8035d879851fb650b0314860c7560fa59cf33cd1682d3b4", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0a53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e5571bb0ffacccd76462434ac17ac8b3954418880e7819852b029d628b06139a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000100c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0a1045f503e2d06c05c3c5c8b3740560075beaf2d7395688f993ea83e989e7d22a070371c7f3840f63aac646790236b90a046f7e31752f627498867065ae840e00ac0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6e5571bb0ffacccd76462434ac17ac8b3954418880e7819852b029d628b06139", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x62a0a02dd9f08d3cacf024cba23be051c8114ff45e59d8533acc369c7cbb3f93" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa1045f503e2d06c05c3c5c8b3740560075beaf2d7395688f993ea83e989e7d22", + "s": "0x70371c7f3840f63aac646790236b90a046f7e31752f627498867065ae840e00a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xa53658f8fc0db571e7ed4df713294d21c12958c43810ced038fc18c48536022c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1924,10 +2324,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1941,50 +2341,17 @@ }, "020-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0d93f01a649d6fd2a4bd6ac5bdae310dcdf37b2efe1e480058708d4e91a15182ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b73614df49dfbdb3d6d3447a4b5ebc6d1cb60862e02d556c96a6730e584a48a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a01fe0a9b1e0731a69933e28767d877591c539a1335e379a8b91c716b53a11f0e1a06abc50ae5723f2c88d072c1e81e33b7b82636041c9fb64a8476b3f1bc59aaaf2c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd93f01a649d6fd2a4bd6ac5bdae310dcdf37b2efe1e480058708d4e91a15182c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc0b73614df49dfbdb3d6d3447a4b5ebc6d1cb60862e02d556c96a6730e584a48", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x95bf9ab15a7592b849fd48d66fff6fc2f98bdefb2467a4429b094faa9bb77462", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a01fe0a9b1e0731a69933e28767d877591c539a1335e379a8b91c716b53a11f0e1a06abc50ae5723f2c88d072c1e81e33b7b82636041c9fb64a8476b3f1bc59aaaf2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02d9cae1b3705ee88ca08328eeffab213d8b7a5d4169e7a728ed462b50e6fd47fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xbde54399af6f3295ac6bb36d06d6e2c56da369976fd4e435347005183905c4d0", + "stateRoot": "0x2d9cae1b3705ee88ca08328eeffab213d8b7a5d4169e7a728ed462b50e6fd47f", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2001,16 +2368,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd93f01a649d6fd2a4bd6ac5bdae310dcdf37b2efe1e480058708d4e91a15182c" + "hash": "0x7a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2e" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bde54399af6f3295ac6bb36d06d6e2c56da369976fd4e435347005183905c4d0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd93f01a649d6fd2a4bd6ac5bdae310dcdf37b2efe1e480058708d4e91a15182c", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a07a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e93764772a583d55d6403ca28da866ea6007f8a37080028a3f6d44859d80923a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a01fe0a9b1e0731a69933e28767d877591c539a1335e379a8b91c716b53a11f0e1a06abc50ae5723f2c88d072c1e81e33b7b82636041c9fb64a8476b3f1bc59aaaf2c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6e93764772a583d55d6403ca28da866ea6007f8a37080028a3f6d44859d80923", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3cba9a25901dbce51063886de82007dc6decfe3cb7a3548220303006d4f9bfa3" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x1fe0a9b1e0731a69933e28767d877591c539a1335e379a8b91c716b53a11f0e1", + "s": "0x6abc50ae5723f2c88d072c1e81e33b7b82636041c9fb64a8476b3f1bc59aaaf2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7a0d7689a7e24263ee83b12317ce9c2034065be97af42c9a65dcaf083a994f2e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2021,10 +2441,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2038,50 +2458,17 @@ }, "021-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0cf2119734e8cb445c88fd9e69d66c540aed56a7cba4f98c02690613983d50dfca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e20f90d988e4070444a8ac9a327224c040cf4c40839aecde8bb736a63680a2c3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0574edd8b1546ec7800cb69601a0f7406ed66585ef1ee885cce855279bed90fe3a05e7cd0cbcf4ada61de5c92e88fa7380c20e033e1ad6fb5099092e25e84f6bb7bc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcf2119734e8cb445c88fd9e69d66c540aed56a7cba4f98c02690613983d50dfc", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe20f90d988e4070444a8ac9a327224c040cf4c40839aecde8bb736a63680a2c3", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x8baded0c4dadc326d076e5a6b28db09d4a51fa85b494534c003ae0d939985045", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0574edd8b1546ec7800cb69601a0f7406ed66585ef1ee885cce855279bed90fe3a05e7cd0cbcf4ada61de5c92e88fa7380c20e033e1ad6fb5099092e25e84f6bb7b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f2ebf4495d3742a70cea6d3d3ea2f7a528bc471a97635abeb4c70e74ecf99a49a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xcd548d7439eb9be9a1734e4c9420f89356a21dd7240acda422e4207d3ecc5107", + "stateRoot": "0xf2ebf4495d3742a70cea6d3d3ea2f7a528bc471a97635abeb4c70e74ecf99a49", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2098,16 +2485,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcf2119734e8cb445c88fd9e69d66c540aed56a7cba4f98c02690613983d50dfc" + "hash": "0x02facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cd548d7439eb9be9a1734e4c9420f89356a21dd7240acda422e4207d3ecc5107a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcf2119734e8cb445c88fd9e69d66c540aed56a7cba4f98c02690613983d50dfc", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a002facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa015c92349bd0c81ae2f5e019133fb1a1564fab289f2b55b623c31913b7e923c30a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001008001c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0574edd8b1546ec7800cb69601a0f7406ed66585ef1ee885cce855279bed90fe3a05e7cd0cbcf4ada61de5c92e88fa7380c20e033e1ad6fb5099092e25e84f6bb7bc0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x02facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x15c92349bd0c81ae2f5e019133fb1a1564fab289f2b55b623c31913b7e923c30", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf6bbba3b8fb0b11600b00cf42af2ca9171e7edbcade8e580537852f870f9d64" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x574edd8b1546ec7800cb69601a0f7406ed66585ef1ee885cce855279bed90fe3", + "s": "0x5e7cd0cbcf4ada61de5c92e88fa7380c20e033e1ad6fb5099092e25e84f6bb7b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x02facd1cac7740ed336dd9c016f9d12b8e9bf1e8a1a703e96f2ffb68e5d41171", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2118,10 +2558,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2135,50 +2575,17 @@ }, "022-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0d37d0a2ebfb371a293562c95376e6ec62d22ce8518ac2098c7c9d8e3cfebe52da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa081909d4f9bec1a22d459d612e5a1ff1ace4fced7ed1dfe4be8c223b960b09d82a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0c1ff90ffe75b876c16eb4e6cd57ab25ac52975bc385cae85325881a53766336ea0466cc2781938104210a37d9242d67b0d78f3205201374b243c669d41160f2538c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd37d0a2ebfb371a293562c95376e6ec62d22ce8518ac2098c7c9d8e3cfebe52d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x81909d4f9bec1a22d459d612e5a1ff1ace4fced7ed1dfe4be8c223b960b09d82", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xffe1be6169354cc36927a144fd3f5ff5c5343691b229bf41386fc005de7fa84b", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0c1ff90ffe75b876c16eb4e6cd57ab25ac52975bc385cae85325881a53766336ea0466cc2781938104210a37d9242d67b0d78f3205201374b243c669d41160f2538" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0659f5319eab5b91aed550f5ec5bebe55f9ba6e53bc20aec1e60b8976edce73b7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xcf5a77571fae3593fc6fa46d2bc25ced637af9f1c426381a96ca5f74f245fee1", + "stateRoot": "0x659f5319eab5b91aed550f5ec5bebe55f9ba6e53bc20aec1e60b8976edce73b7", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2195,16 +2602,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd37d0a2ebfb371a293562c95376e6ec62d22ce8518ac2098c7c9d8e3cfebe52d" + "hash": "0x1d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145d" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cf5a77571fae3593fc6fa46d2bc25ced637af9f1c426381a96ca5f74f245fee1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd37d0a2ebfb371a293562c95376e6ec62d22ce8518ac2098c7c9d8e3cfebe52d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a01d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09134286dee33951d7fceedd1a22b470dfa9633734fec342ba3491c2fc876f67aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000001a0c1ff90ffe75b876c16eb4e6cd57ab25ac52975bc385cae85325881a53766336ea0466cc2781938104210a37d9242d67b0d78f3205201374b243c669d41160f2538c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9134286dee33951d7fceedd1a22b470dfa9633734fec342ba3491c2fc876f67a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1eb5d56ef9197a41dbbf4f98c8f9aff0bf8840712f8cf954386952265b7e45a8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xc1ff90ffe75b876c16eb4e6cd57ab25ac52975bc385cae85325881a53766336e", + "s": "0x466cc2781938104210a37d9242d67b0d78f3205201374b243c669d41160f2538", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x1d55d31b60404233a5001b5b5302cd40133a8d179c62f4fb9350c655ae7e145d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2215,10 +2675,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2231,51 +2691,18 @@ "sealEngine": "NoProof" }, "023-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=100-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { - "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" - }, - "blocks": [ - { - "rlp": "0xf902d1f90240a0e0fd62ec627612c617e4f53762d3255a616c2d979227d32459bd52a687047a4ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08762c50d840ee4dca985279a0bad14c9180f757a192bd288f8ebc37fbafef48aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0784aa728410e3cee700370d3c14cc537aa20ff0eecfc4e09d67b64bba397f846a02cf690a2b395d9ebe59f46ff762c530dcffb9dcfc04147de559ef8d07d413598c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe0fd62ec627612c617e4f53762d3255a616c2d979227d32459bd52a687047a4c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8762c50d840ee4dca985279a0bad14c9180f757a192bd288f8ebc37fbafef48a", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd3c74199af9b89d1761308590bd7f17099600ac5470beb6bd037b4379ef3de65", - "transactions": [ - "0x03f885018008078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0784aa728410e3cee700370d3c14cc537aa20ff0eecfc4e09d67b64bba397f846a02cf690a2b395d9ebe59f46ff762c530dcffb9dcfc04147de559ef8d07d413598" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d8cd1d8d93ff313b8b1e746cf0c47057a71d06581fdb6dc91fb2316a37fb1ba2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x08ae7b2606ebde2f2ed671f51bda31291064a6c2ef79d61df19c61390c95ceb8", + "stateRoot": "0xd8cd1d8d93ff313b8b1e746cf0c47057a71d06581fdb6dc91fb2316a37fb1ba2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2292,16 +2719,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe0fd62ec627612c617e4f53762d3255a616c2d979227d32459bd52a687047a4c" + "hash": "0x7af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a008ae7b2606ebde2f2ed671f51bda31291064a6c2ef79d61df19c61390c95ceb8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe0fd62ec627612c617e4f53762d3255a616c2d979227d32459bd52a687047a4c", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a07af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b6ceaf55501ba0b4ee4a3c1abcf5cb2aa6b55521ad188aa40e3fb26c50b838aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018008078252089400000000000000000000000000000000000001000101c064e1a0010000000000000000000000000000000000000000000000000000000000000080a0784aa728410e3cee700370d3c14cc537aa20ff0eecfc4e09d67b64bba397f846a02cf690a2b395d9ebe59f46ff762c530dcffb9dcfc04147de559ef8d07d413598c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6b6ceaf55501ba0b4ee4a3c1abcf5cb2aa6b55521ad188aa40e3fb26c50b838a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf1e68d96e177cafd738880a628b54592a7a000ea40f2b77b68f8e9d072298fa5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x64", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x784aa728410e3cee700370d3c14cc537aa20ff0eecfc4e09d67b64bba397f846", + "s": "0x2cf690a2b395d9ebe59f46ff762c530dcffb9dcfc04147de559ef8d07d413598", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7af361957ddcfdf86f96d28f856a357b696fddc0d8ce9ef84ed6a89386f7ea02", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2312,10 +2792,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2329,50 +2809,17 @@ }, "024-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a0a50fc5e3a342ac34c4b1729fab2c65be98a61a15d75e73d4e3bc9f89ee8b4bd2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00152b1e1ec04c842e3737c05c75e5b093ada450ea81c07bdb72e74527a56db34a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a092c7b7ebc1af73ef5871030920e2b1b28b78ccdefac30a7851cbc34f77f9241ba0378b2976452d62627a6b1301c0df985b0c9d21c4172f4e2086938e55637800f2c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa50fc5e3a342ac34c4b1729fab2c65be98a61a15d75e73d4e3bc9f89ee8b4bd2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0152b1e1ec04c842e3737c05c75e5b093ada450ea81c07bdb72e74527a56db34", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xbc5a9cf283139247f6c39392ba62e47137fed7f8c0f6f9c53970ab7c4e37198c", - "transactions": [ - "0x03f887018080078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a092c7b7ebc1af73ef5871030920e2b1b28b78ccdefac30a7851cbc34f77f9241ba0378b2976452d62627a6b1301c0df985b0c9d21c4172f4e2086938e55637800f2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06f121ef1616e1c6e5b97e33738dc543013ffc21aa44b6242aa7d05f4668a2006a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4e89af5520a2b8fd6df080dd07a0309774f9ebc43bb82d328f5e1efdd7d86de8", + "stateRoot": "0x6f121ef1616e1c6e5b97e33738dc543013ffc21aa44b6242aa7d05f4668a2006", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2389,16 +2836,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa50fc5e3a342ac34c4b1729fab2c65be98a61a15d75e73d4e3bc9f89ee8b4bd2" + "hash": "0x97c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460d" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04e89af5520a2b8fd6df080dd07a0309774f9ebc43bb82d328f5e1efdd7d86de8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa50fc5e3a342ac34c4b1729fab2c65be98a61a15d75e73d4e3bc9f89ee8b4bd2", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a097c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bf7914d8938d7d51ddc2a74d5ac47eb9065524225c5f8d14f29fd234083f5c1ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a092c7b7ebc1af73ef5871030920e2b1b28b78ccdefac30a7851cbc34f77f9241ba0378b2976452d62627a6b1301c0df985b0c9d21c4172f4e2086938e55637800f2c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x97c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbf7914d8938d7d51ddc2a74d5ac47eb9065524225c5f8d14f29fd234083f5c1b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x83733d877b5873538f3056a7220f1dcf938e81cc62a6c43bc3183d742ee7b247" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x92c7b7ebc1af73ef5871030920e2b1b28b78ccdefac30a7851cbc34f77f9241b", + "s": "0x378b2976452d62627a6b1301c0df985b0c9d21c4172f4e2086938e55637800f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x97c55a516a5dcdc04041c30641b2a0b96a62133ae43b7a29c6698d03305d460d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2409,10 +2909,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2426,50 +2926,17 @@ }, "025-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a056eb8aba3ad81e2452b884c863a56aafa2e61a135645118e63bf5121dcd48178a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01ea309faa2b24e1b75881813fc043af379c2573d865c8d032bb11263b6a8c50ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a05727e66c5d48c8b60b1d4874aef9d969c8a9ee2b8bc1876fbdd67f71a22e545fa03c77ec8be71a6b52f818fc1aff0abeb779d62727f76d8d4d34bf29ecb9e40006c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x56eb8aba3ad81e2452b884c863a56aafa2e61a135645118e63bf5121dcd48178", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1ea309faa2b24e1b75881813fc043af379c2573d865c8d032bb11263b6a8c50c", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xcbc6663972857e163ea7a6bbfee575fd05d8637ae7f6a1e3ee9a35014a722aab", - "transactions": [ - "0x03f887018008078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a05727e66c5d48c8b60b1d4874aef9d969c8a9ee2b8bc1876fbdd67f71a22e545fa03c77ec8be71a6b52f818fc1aff0abeb779d62727f76d8d4d34bf29ecb9e40006" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04e9fe0d26d922c9f8526bc1c7e4dcccce727a080c49bf615012d460ccc4148fca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c9895958ae7077a34e41ad9135b6342e29481ad162caf446e3f2eff903e1fc4", + "stateRoot": "0x4e9fe0d26d922c9f8526bc1c7e4dcccce727a080c49bf615012d460ccc4148fc", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2486,16 +2953,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x56eb8aba3ad81e2452b884c863a56aafa2e61a135645118e63bf5121dcd48178" + "hash": "0xda6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c9895958ae7077a34e41ad9135b6342e29481ad162caf446e3f2eff903e1fc4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x56eb8aba3ad81e2452b884c863a56aafa2e61a135645118e63bf5121dcd48178", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a0da6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03bf4de86f206b19a325e37cecae852b2d296ea37fa158c2b855daff101408bb5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008080c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a05727e66c5d48c8b60b1d4874aef9d969c8a9ee2b8bc1876fbdd67f71a22e545fa03c77ec8be71a6b52f818fc1aff0abeb779d62727f76d8d4d34bf29ecb9e40006c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xda6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3bf4de86f206b19a325e37cecae852b2d296ea37fa158c2b855daff101408bb5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfbd3dcd93809e0275f20b389d029eb97ba5e0c0ee3e66065f6eba50e95c41389" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5727e66c5d48c8b60b1d4874aef9d969c8a9ee2b8bc1876fbdd67f71a22e545f", + "s": "0x3c77ec8be71a6b52f818fc1aff0abeb779d62727f76d8d4d34bf29ecb9e40006", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xda6987865c0cb9c1950f06d15dbdefb4885250a09b917ee9e267ec3b8aabfe85", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2506,10 +3026,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2523,50 +3043,17 @@ }, "026-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a0eaf2b4581aeb8ffa8852b0ea754fec0411187171b0dd3e9a78e7825400d8c229a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa063ef067b72bbc9e57f67c50b2953c26051e4ed4b5e5a0ce73f26f3015ed3c13fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a060bdbc102688803f54a5228f5dd6fdb93877ccb02af626152683ded93d2fbdcda076d0a55a6fc84350507d282984e6c3c869964ff920d476afd5a0b2225fa1858ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xeaf2b4581aeb8ffa8852b0ea754fec0411187171b0dd3e9a78e7825400d8c229", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x63ef067b72bbc9e57f67c50b2953c26051e4ed4b5e5a0ce73f26f3015ed3c13f", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xcb1ac4a8f066af99cc0d4aad5afce8b3235e60ee40efd91b4cc8343c57c60041", - "transactions": [ - "0x03f887018080078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a060bdbc102688803f54a5228f5dd6fdb93877ccb02af626152683ded93d2fbdcda076d0a55a6fc84350507d282984e6c3c869964ff920d476afd5a0b2225fa1858a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0534f988668f132ad9f481e8e6d1d05ffcc2066d880787b534c6c06054c464ecba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0ed782a54bd036126c43232503e6c6b1da4d725aa6680ee2709af8a98c0458db", + "stateRoot": "0x534f988668f132ad9f481e8e6d1d05ffcc2066d880787b534c6c06054c464ecb", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2583,16 +3070,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xeaf2b4581aeb8ffa8852b0ea754fec0411187171b0dd3e9a78e7825400d8c229" + "hash": "0x3bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67a" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00ed782a54bd036126c43232503e6c6b1da4d725aa6680ee2709af8a98c0458dba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xeaf2b4581aeb8ffa8852b0ea754fec0411187171b0dd3e9a78e7825400d8c229", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a03bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0893769b3f99f28f4262b247595313b3d355a56e7f36673d66dfe2b2a376c799ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a060bdbc102688803f54a5228f5dd6fdb93877ccb02af626152683ded93d2fbdcda076d0a55a6fc84350507d282984e6c3c869964ff920d476afd5a0b2225fa1858ac0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x3bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x893769b3f99f28f4262b247595313b3d355a56e7f36673d66dfe2b2a376c799e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9fa8c515faa3df94527fdbc620dd628241c7e3cec70d6dd5b03834aaf89aa0e8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x60bdbc102688803f54a5228f5dd6fdb93877ccb02af626152683ded93d2fbdcd", + "s": "0x76d0a55a6fc84350507d282984e6c3c869964ff920d476afd5a0b2225fa1858a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x3bc335959a17395f2c2fcd7124519ae1c33267688b27bd44be6ac964f3ccc67a", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2603,10 +3143,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2620,50 +3160,17 @@ }, "027-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-no_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a0e850dc9f7624ab1fc027257691568bb23605f8787cc62d2300150b05c6ef0389a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa071d830062cdf265fed1bc2b50bf11d0c87d500dddbec4de6a19189b7d88a301ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a088e09bd40d252f72a639df97d0cbb01c408dddddb039cdd565ba746526c18206a074dd71b8d0dd3d7f58aa07ad541c14b63dbb056897b306e935f9d8ed27231a27c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe850dc9f7624ab1fc027257691568bb23605f8787cc62d2300150b05c6ef0389", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x71d830062cdf265fed1bc2b50bf11d0c87d500dddbec4de6a19189b7d88a301c", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xdbadbc561356da507176532d2f0e6f9ea739c10f094ecc48467ca0075e50be98", - "transactions": [ - "0x03f887018008078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a088e09bd40d252f72a639df97d0cbb01c408dddddb039cdd565ba746526c18206a074dd71b8d0dd3d7f58aa07ad541c14b63dbb056897b306e935f9d8ed27231a27" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0249674600473371646b07cd31c4a39f3ac8c5d81d08fb36bc068b854d02f4118a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc2c6ae306f907e6405798d2f5f3344373c1262a83ff5c9ee6a3265fd5b7d7a47", + "stateRoot": "0x249674600473371646b07cd31c4a39f3ac8c5d81d08fb36bc068b854d02f4118", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2680,16 +3187,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe850dc9f7624ab1fc027257691568bb23605f8787cc62d2300150b05c6ef0389" + "hash": "0xc94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c2c6ae306f907e6405798d2f5f3344373c1262a83ff5c9ee6a3265fd5b7d7a47a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe850dc9f7624ab1fc027257691568bb23605f8787cc62d2300150b05c6ef0389", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a0c94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0be78a57bfc1e7a35b130bd1bc71db1166124d38d6fdca1e9888ab0a2c8be201ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000180c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a088e09bd40d252f72a639df97d0cbb01c408dddddb039cdd565ba746526c18206a074dd71b8d0dd3d7f58aa07ad541c14b63dbb056897b306e935f9d8ed27231a27c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbe78a57bfc1e7a35b130bd1bc71db1166124d38d6fdca1e9888ab0a2c8be201c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x357e31f82e51fd33b738dcaa6ec1aa97c9653426066298a6442d5bf9eb1967a7" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x88e09bd40d252f72a639df97d0cbb01c408dddddb039cdd565ba746526c18206", + "s": "0x74dd71b8d0dd3d7f58aa07ad541c14b63dbb056897b306e935f9d8ed27231a27", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xc94d0e8eb4c5abdc5712d265acc80f1fbd82caec71c7d8c215e51aa7bc84bed2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2700,10 +3260,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2717,50 +3277,17 @@ }, "028-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a0a25e2cb3564cfc862b4d330afd64ee9838ebafbe00974679aa89e3d6507cab50a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa039461d09dfdba159dd884108531a701c0ea887774f243c00ecf489c3f7eafd58a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a013a47a7322e5bb083158033fd369a08d3a86898d2fc879c4ea6a6ee655c016dfa00eafa12198e71fc47ab8d8b444c8303ce96f56d3379cc9048876341173abb3e6c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa25e2cb3564cfc862b4d330afd64ee9838ebafbe00974679aa89e3d6507cab50", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x39461d09dfdba159dd884108531a701c0ea887774f243c00ecf489c3f7eafd58", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x1d54733b83f33570de59137832008122ad181f8d3e0f784bd3e5dda0201ac839", - "transactions": [ - "0x03f887018080078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a013a47a7322e5bb083158033fd369a08d3a86898d2fc879c4ea6a6ee655c016dfa00eafa12198e71fc47ab8d8b444c8303ce96f56d3379cc9048876341173abb3e6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f03e0f72544996b07960bcbdaa0407a3c52be8e36ff8c4fa26a3ba8f0e548729a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf486967e30932d84cf9337278df2c61b063dc6f3b71f28f66955b8cfafe3145b", + "stateRoot": "0xf03e0f72544996b07960bcbdaa0407a3c52be8e36ff8c4fa26a3ba8f0e548729", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2777,16 +3304,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa25e2cb3564cfc862b4d330afd64ee9838ebafbe00974679aa89e3d6507cab50" + "hash": "0xe063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f486967e30932d84cf9337278df2c61b063dc6f3b71f28f66955b8cfafe3145ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa25e2cb3564cfc862b4d330afd64ee9838ebafbe00974679aa89e3d6507cab50", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a0e063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a33d28c1cc3ee2f227377efcee55be86b43800dbc6eab900a4670624ec0d976a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a013a47a7322e5bb083158033fd369a08d3a86898d2fc879c4ea6a6ee655c016dfa00eafa12198e71fc47ab8d8b444c8303ce96f56d3379cc9048876341173abb3e6c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7a33d28c1cc3ee2f227377efcee55be86b43800dbc6eab900a4670624ec0d976", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0e2781721ff7952ef02d5784be2f651dee786400668f153936eed2b71dceb511" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x13a47a7322e5bb083158033fd369a08d3a86898d2fc879c4ea6a6ee655c016df", + "s": "0x0eafa12198e71fc47ab8d8b444c8303ce96f56d3379cc9048876341173abb3e6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xe063fdabc7dee6aba1e94678762f3d7dba4a2ec79a8ba89a0e2a58a89ea84837", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2797,10 +3377,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2814,50 +3394,17 @@ }, "029-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a0e7ab3a49d682284adcdffc7693bbcbfafa57f0dc998ebc841f244b21fd2bbcf8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a726380fbad3a3aa0c9ee5475f9be9639b57f933d2e35cbe1c3b99267f10dd4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a01df6255787a6fd58b1f366845226da7f0e7bfb27b7f1471157eedf27de29ddcaa0537b6a4aca2bdaf432b37c70ffa35c7157aee5db200229348a40eab1120fede8c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe7ab3a49d682284adcdffc7693bbcbfafa57f0dc998ebc841f244b21fd2bbcf8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7a726380fbad3a3aa0c9ee5475f9be9639b57f933d2e35cbe1c3b99267f10dd4", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x01a42b11b598e1faa36ef2cad2a71f1f6f5182b571ada5954fe10a0ab2548b9b", - "transactions": [ - "0x03f887018008078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a01df6255787a6fd58b1f366845226da7f0e7bfb27b7f1471157eedf27de29ddcaa0537b6a4aca2bdaf432b37c70ffa35c7157aee5db200229348a40eab1120fede8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a1dec3f5d79f7b973d40bdc21ba6a33e330802ff0cda47ded4780cfdf31d9d0ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x99a946007d8de9bed5dd574f503975a46a20a776e9f73ca2b646f0a31f089892", + "stateRoot": "0xa1dec3f5d79f7b973d40bdc21ba6a33e330802ff0cda47ded4780cfdf31d9d0c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2874,16 +3421,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe7ab3a49d682284adcdffc7693bbcbfafa57f0dc998ebc841f244b21fd2bbcf8" + "hash": "0x7ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a099a946007d8de9bed5dd574f503975a46a20a776e9f73ca2b646f0a31f089892a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe7ab3a49d682284adcdffc7693bbcbfafa57f0dc998ebc841f244b21fd2bbcf8", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a07ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0669d8d6bd70c11db837f5dfb28d1ca5792d063681ab928ad5c1415f8c8e0af4ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008000c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a01df6255787a6fd58b1f366845226da7f0e7bfb27b7f1471157eedf27de29ddcaa0537b6a4aca2bdaf432b37c70ffa35c7157aee5db200229348a40eab1120fede8c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x669d8d6bd70c11db837f5dfb28d1ca5792d063681ab928ad5c1415f8c8e0af4b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb97ba869eabf49e94b8f7c3398ace035ca33253cd8c58d8ad1fb1e4995d107df" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x1df6255787a6fd58b1f366845226da7f0e7bfb27b7f1471157eedf27de29ddca", + "s": "0x537b6a4aca2bdaf432b37c70ffa35c7157aee5db200229348a40eab1120fede8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7ba39ca0d9f226f1b1b6dad21f9dd4dfd0ad46a7c074bf6325af6e94c9dc3959", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2894,10 +3494,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2911,50 +3511,17 @@ }, "030-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a08b5f0125edc8bba7d31c3487ab53b26bf6a9afa9a3cb3a3e564ae0bd85c8aaf4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01aa0db7b5388676c86a597579300516ff02d2e2ae432c2c4f42b57191fe1675ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a0f5ec812ad1ffb047af3dc2dd03532e5835ab84dfb11edb203c4f358c71c76ea1a034cac065db16c8163026eeb6e02a220dd1b9b9b4e9f782673652f0b2bed1eba8c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8b5f0125edc8bba7d31c3487ab53b26bf6a9afa9a3cb3a3e564ae0bd85c8aaf4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1aa0db7b5388676c86a597579300516ff02d2e2ae432c2c4f42b57191fe1675e", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x8997d783ba77b4ab0bca94f4971df8541b308f11dea76f78794bcd1739d87f4a", - "transactions": [ - "0x03f887018080078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a0f5ec812ad1ffb047af3dc2dd03532e5835ab84dfb11edb203c4f358c71c76ea1a034cac065db16c8163026eeb6e02a220dd1b9b9b4e9f782673652f0b2bed1eba8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a079d53251e1e3fa364aa5aaf0f2b641c0c41956004cbf4953531262db68106e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9eaa10ccaa203fc83909cbb2dc474c521f09d79f6f57a01b264ff980c5472dc8", + "stateRoot": "0x79d53251e1e3fa364aa5aaf0f2b641c0c41956004cbf4953531262db68106e8a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2971,16 +3538,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8b5f0125edc8bba7d31c3487ab53b26bf6a9afa9a3cb3a3e564ae0bd85c8aaf4" + "hash": "0xc2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09eaa10ccaa203fc83909cbb2dc474c521f09d79f6f57a01b264ff980c5472dc8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8b5f0125edc8bba7d31c3487ab53b26bf6a9afa9a3cb3a3e564ae0bd85c8aaf4", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a0c2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f58443941ac0a908cd526fa8804998f433402f13fdde54fde99ebb1ea0415376a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a0f5ec812ad1ffb047af3dc2dd03532e5835ab84dfb11edb203c4f358c71c76ea1a034cac065db16c8163026eeb6e02a220dd1b9b9b4e9f782673652f0b2bed1eba8c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf58443941ac0a908cd526fa8804998f433402f13fdde54fde99ebb1ea0415376", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0bcb08ef45be02565213f9997de77a4d6d36bf35f3142051f4df5e5f25807617" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xf5ec812ad1ffb047af3dc2dd03532e5835ab84dfb11edb203c4f358c71c76ea1", + "s": "0x34cac065db16c8163026eeb6e02a220dd1b9b9b4e9f782673652f0b2bed1eba8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xc2d753d365a7e5bc4c0eff290145a718ad22a91a17082312fa058c98d04dfcd8", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2991,10 +3611,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3008,50 +3628,17 @@ }, "031-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_zero_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a03145b03b10d4934fa3bc22085d59fc2556054307d8a1289ea861c6ae0c81269aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a70db5b04353bd407b2a248e233e7cf31993f538c613a48d2c986e93cce96dba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0f3c698b450bd8cc610ec665322cd2afdb81ac4c98edf2c437582ad30029f0aa9a05f6b4564c33dd1f1f18a8ca0bcbff8dd87a0096bdfacc89bb86de30b666d4decc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3145b03b10d4934fa3bc22085d59fc2556054307d8a1289ea861c6ae0c81269a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1a70db5b04353bd407b2a248e233e7cf31993f538c613a48d2c986e93cce96db", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x889fc725e50f488b6d660d78849601a4012aecb7c6a9fea13d896acfc7c057b6", - "transactions": [ - "0x03f887018008078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0f3c698b450bd8cc610ec665322cd2afdb81ac4c98edf2c437582ad30029f0aa9a05f6b4564c33dd1f1f18a8ca0bcbff8dd87a0096bdfacc89bb86de30b666d4dec" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a024cba04e5644b658051b73ee076e7ba498e6046f1c65c81b94e181c83a32e81ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xceee7ec2281ffdf42d4e605266b8591c2acd6b8c17dd06a21b5be24e6f3d7f01", + "stateRoot": "0x24cba04e5644b658051b73ee076e7ba498e6046f1c65c81b94e181c83a32e81c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3068,16 +3655,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3145b03b10d4934fa3bc22085d59fc2556054307d8a1289ea861c6ae0c81269a" + "hash": "0x443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46c" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ceee7ec2281ffdf42d4e605266b8591c2acd6b8c17dd06a21b5be24e6f3d7f01a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3145b03b10d4934fa3bc22085d59fc2556054307d8a1289ea861c6ae0c81269a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a0443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a752a92094a36ebb85761a45b5f6b2b825263ea02b6c895022670f3b123ddcea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000100c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0f3c698b450bd8cc610ec665322cd2afdb81ac4c98edf2c437582ad30029f0aa9a05f6b4564c33dd1f1f18a8ca0bcbff8dd87a0096bdfacc89bb86de30b666d4decc0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7a752a92094a36ebb85761a45b5f6b2b825263ea02b6c895022670f3b123ddce", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5bd1a963e26568b71207e445ab5a81aa06936ca33ca9b12b1ffa2850373c61ba" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x00", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xf3c698b450bd8cc610ec665322cd2afdb81ac4c98edf2c437582ad30029f0aa9", + "s": "0x5f6b4564c33dd1f1f18a8ca0bcbff8dd87a0096bdfacc89bb86de30b666d4dec", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x443b027154874f618985319e51db3f067ae0863cb55031a0409e9a38cb5ff46c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3088,10 +3728,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3105,50 +3745,17 @@ }, "032-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a09689cc1be8c894983e042ef37919181992038ae9fe2c1bc5bacd48367002e9f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00fe7c749a6e7e0daaab1ec4cc5a780e0a6f39e9eb5b2a1fa3f4de2f131cd4af5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a051f4bae790e2b6c084246c356c3de79fb78657d438c08eb20bb8ed5fd1b3917ba03e95cebba0e840e8587abd7f1aed4b41a04a7141278f52394844155e00eccd0dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9689cc1be8c894983e042ef37919181992038ae9fe2c1bc5bacd48367002e9f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0fe7c749a6e7e0daaab1ec4cc5a780e0a6f39e9eb5b2a1fa3f4de2f131cd4af5", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x2192206363284a9c3a070f7aba17839c69679fee5f1eba15c587a71a6f50c11f", - "transactions": [ - "0x03f887018080078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a051f4bae790e2b6c084246c356c3de79fb78657d438c08eb20bb8ed5fd1b3917ba03e95cebba0e840e8587abd7f1aed4b41a04a7141278f52394844155e00eccd0d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07402b19b40e052bd13971f38d7f16f106c1691f5e580f8d74bf9757621b7e877a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7d412900e766b828ccbf7929924e44e4ea832de6a5e3072b2901f7dadedd9cf4", + "stateRoot": "0x7402b19b40e052bd13971f38d7f16f106c1691f5e580f8d74bf9757621b7e877", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3165,16 +3772,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9689cc1be8c894983e042ef37919181992038ae9fe2c1bc5bacd48367002e9f5" + "hash": "0x984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07d412900e766b828ccbf7929924e44e4ea832de6a5e3072b2901f7dadedd9cf4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9689cc1be8c894983e042ef37919181992038ae9fe2c1bc5bacd48367002e9f5", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a0984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0af7f40459703e6cb534fa48d7f1a34cea129226177931a509aa6bfe07910a344a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a051f4bae790e2b6c084246c356c3de79fb78657d438c08eb20bb8ed5fd1b3917ba03e95cebba0e840e8587abd7f1aed4b41a04a7141278f52394844155e00eccd0dc0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xaf7f40459703e6cb534fa48d7f1a34cea129226177931a509aa6bfe07910a344", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x47ce461e8de2b279018e0ce4a0c33e44a83c2f5a7fe47c8b07ceab555f596d7a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x51f4bae790e2b6c084246c356c3de79fb78657d438c08eb20bb8ed5fd1b3917b", + "s": "0x3e95cebba0e840e8587abd7f1aed4b41a04a7141278f52394844155e00eccd0d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x984f2178ee212a4c02e46e18e6757b1388ce5ce79e50791cb04e161d32903752", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3185,10 +3845,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3202,50 +3862,17 @@ }, "033-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=0-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a0fc9560d9f92f66600622acf8ea863cce6e1e400f9eef256c7c734a6036d02684a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00656431a578739994d5581e16828c78869d44a5bac5acaae04d3f8b8bf2106f8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a016e57d7e5f9de4299e55620476702135b33dcf354e774134782517d3bc69dfeca03694f8a546858dbffd54a43653c8e47f01b4a6f80a27a28509181872a5ca8b23c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfc9560d9f92f66600622acf8ea863cce6e1e400f9eef256c7c734a6036d02684", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0656431a578739994d5581e16828c78869d44a5bac5acaae04d3f8b8bf2106f8", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xecdb1b5d602fa00ee355c1018bd306b9e902e2837f6ceb3523b356f96f44b6cd", - "transactions": [ - "0x03f887018008078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a016e57d7e5f9de4299e55620476702135b33dcf354e774134782517d3bc69dfeca03694f8a546858dbffd54a43653c8e47f01b4a6f80a27a28509181872a5ca8b23" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09265f50f3ec61eb58247a145c893546aa13a48c522fc9c1f4670f3849e81ff91a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4a397edbfa835a0a6fec4b3fa09d10b147048b37ca993b911b9e2bfd5f3dab4e", + "stateRoot": "0x9265f50f3ec61eb58247a145c893546aa13a48c522fc9c1f4670f3849e81ff91", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3262,16 +3889,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfc9560d9f92f66600622acf8ea863cce6e1e400f9eef256c7c734a6036d02684" + "hash": "0xb97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189df" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04a397edbfa835a0a6fec4b3fa09d10b147048b37ca993b911b9e2bfd5f3dab4ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfc9560d9f92f66600622acf8ea863cce6e1e400f9eef256c7c734a6036d02684", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a0b97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0275b12bac5998557e45f795120050125d75f31be1de4c4949b557e34c129e617a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001008001c0822710e1a0010000000000000000000000000000000000000000000000000000000000000001a016e57d7e5f9de4299e55620476702135b33dcf354e774134782517d3bc69dfeca03694f8a546858dbffd54a43653c8e47f01b4a6f80a27a28509181872a5ca8b23c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189df", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x275b12bac5998557e45f795120050125d75f31be1de4c4949b557e34c129e617", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd5c072305cef9e407f2044ba90283a38333099ad333cc1a6f715b8830fd080a1" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x16e57d7e5f9de4299e55620476702135b33dcf354e774134782517d3bc69dfec", + "s": "0x3694f8a546858dbffd54a43653c8e47f01b4a6f80a27a28509181872a5ca8b23", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb97d92d2dacd73c0fc7f23db5842f524ad188240aa2f13f75dd51514305189df", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3282,10 +3962,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3299,50 +3979,17 @@ }, "034-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a03c3bb08e9c19a47f359046afadac8eecc384727a3307a503b72be48fee72bf14a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f6547797083d1fa10b2584a2c2077b30fa3b639315668f6b7f5e40cd34892c78a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0737b519fe8170fabccda38a492806443c07c8dc9d63ec92efd276e9a2c11b196a06302c874371c1c4d0a1259799a9110221925b2b2e6379e6247572d5182157a24c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3c3bb08e9c19a47f359046afadac8eecc384727a3307a503b72be48fee72bf14", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf6547797083d1fa10b2584a2c2077b30fa3b639315668f6b7f5e40cd34892c78", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x7486e7af010036bcfd893520bf50cb92172000656e2b5194526caf6fcefa5ea4", - "transactions": [ - "0x03f887018080078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0737b519fe8170fabccda38a492806443c07c8dc9d63ec92efd276e9a2c11b196a06302c874371c1c4d0a1259799a9110221925b2b2e6379e6247572d5182157a24" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03f74505c0e27002783080ccfb0d5ebef27e07e35b10172acf1d331738c251442a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa1832415137824b66516b13570b8cb3b4e9425f010c007e5b3b5238e2869b391", + "stateRoot": "0x3f74505c0e27002783080ccfb0d5ebef27e07e35b10172acf1d331738c251442", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3359,16 +4006,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3c3bb08e9c19a47f359046afadac8eecc384727a3307a503b72be48fee72bf14" + "hash": "0xade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a1832415137824b66516b13570b8cb3b4e9425f010c007e5b3b5238e2869b391a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3c3bb08e9c19a47f359046afadac8eecc384727a3307a503b72be48fee72bf14", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a0ade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e40dbd3ab14035dbe96096f431cd0434c7c81d1b6e094ec3c9ce1dbdd319ea56a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a0737b519fe8170fabccda38a492806443c07c8dc9d63ec92efd276e9a2c11b196a06302c874371c1c4d0a1259799a9110221925b2b2e6379e6247572d5182157a24c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe40dbd3ab14035dbe96096f431cd0434c7c81d1b6e094ec3c9ce1dbdd319ea56", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa2038bd59ca1f2fef42c3c6e0867c2628906573e2a810ae972365fdd55927481" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x737b519fe8170fabccda38a492806443c07c8dc9d63ec92efd276e9a2c11b196", + "s": "0x6302c874371c1c4d0a1259799a9110221925b2b2e6379e6247572d5182157a24", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xade8faf0df3f2b97c175e2f62a38e9867c67d4cca5cebe6792c024af001e8789", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3379,10 +4079,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3396,50 +4096,17 @@ }, "035-fork=Cancun--exact_balance_minus_1-tx_max_fee_per_blob_gas=10000-single_one_calldata-tx_value=1-tx_max_priority_fee_per_gas=8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90240a0bb9e49c411706171d6d43fd3f74e66101e8c95e2a8c73175763eb3e935d5a497a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08476f27ffbd4d0a9846363737aadd9bbeb364d47d9585fbf6a2e5d6ef3b1b235a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a07285eca8fd1ac92612f6244c25b795b9931b01e4604550dfdf90a5aea2ad54dda056aa0d80598c4dbaf9c3e0ee59d7ab8f8360f83695ade39f3b882e218d245409c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbb9e49c411706171d6d43fd3f74e66101e8c95e2a8c73175763eb3e935d5a497", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8476f27ffbd4d0a9846363737aadd9bbeb364d47d9585fbf6a2e5d6ef3b1b235", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x4141b44c37817124d7136a6af5bca40e82e5242cadb36d9a481ec5dbdcbd3503", - "transactions": [ - "0x03f887018008078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a07285eca8fd1ac92612f6244c25b795b9931b01e4604550dfdf90a5aea2ad54dda056aa0d80598c4dbaf9c3e0ee59d7ab8f8360f83695ade39f3b882e218d245409" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06cb19ec7cd5371fc3b5454d52a11abc44ca1426b0abc5310870d96188df4ff41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x40e6d80255eeac5e48042954f4719c4d99bbbb70e5bd527c8adf180b33d7da9b", + "stateRoot": "0x6cb19ec7cd5371fc3b5454d52a11abc44ca1426b0abc5310870d96188df4ff41", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3456,16 +4123,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbb9e49c411706171d6d43fd3f74e66101e8c95e2a8c73175763eb3e935d5a497" + "hash": "0x66c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657d" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a040e6d80255eeac5e48042954f4719c4d99bbbb70e5bd527c8adf180b33d7da9ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbb9e49c411706171d6d43fd3f74e66101e8c95e2a8c73175763eb3e935d5a497", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90240a066c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a4beda4b14cef0e60289081ce27645593ab140f44a43e2fe6edccd9ffb5cfe5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018008078252089400000000000000000000000000000000000001000101c0822710e1a0010000000000000000000000000000000000000000000000000000000000000080a07285eca8fd1ac92612f6244c25b795b9931b01e4604550dfdf90a5aea2ad54dda056aa0d80598c4dbaf9c3e0ee59d7ab8f8360f83695ade39f3b882e218d245409c0c0", + "expectException": "insufficient_account_balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x66c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7a4beda4b14cef0e60289081ce27645593ab140f44a43e2fe6edccd9ffb5cfe5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0cd91251370ddc7983f8a3adae645e48a6532bbee0dbf5514668511d81ce9e9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x08", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x01", + "accessList": [], + "maxFeePerBlobGas": "0x2710", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x7285eca8fd1ac92612f6244c25b795b9931b01e4604550dfdf90a5aea2ad54dd", + "s": "0x56aa0d80598c4dbaf9c3e0ee59d7ab8f8360f83695ade39f3b882e218d245409", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x66c05afcd7331f5978d573863c7189f464408fec20eaac003f7cfa43aace657d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3476,10 +4196,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json index eabe1573de3..5d360745e2d 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/insufficient_balance_blob_tx_combinations.json @@ -1,60 +1,17 @@ { "000-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90587f90243a053994b38797e8d5999af47b9fac3417dd05838c53d4825a8f656cd758fe445aaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0005773e12ef16ab9af7d79172604cd7cce1af641dfa0b51be46b93f0b42e6233a03661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9033cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x53994b38797e8d5999af47b9fac3417dd05838c53d4825a8f656cd758fe445aa", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x005773e12ef16ab9af7d79172604cd7cce1af641dfa0b51be46b93f0b42e6233", - "receiptsRoot": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x19a28", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x1746ac9c9b7d0f59c77463967cd6a7489a2e3789e263a9269e7e4ec97f4d860c", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", - "0x03f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08ef48b44435756a4ee3e58102dcee7dec83a173a9a6eb031ad6061eb493bb3d5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x13cee94dbec11d59da10be81137b7b07b435d518f3d85313f48fbc305bb5e00b", + "stateRoot": "0x8ef48b44435756a4ee3e58102dcee7dec83a173a9a6eb031ad6061eb493bb3d5", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -71,16 +28,169 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x53994b38797e8d5999af47b9fac3417dd05838c53d4825a8f656cd758fe445aa" + "hash": "0xcaeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a013cee94dbec11d59da10be81137b7b07b435d518f3d85313f48fbc305bb5e00ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x53994b38797e8d5999af47b9fac3417dd05838c53d4825a8f656cd758fe445aa", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90587f90243a0caeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05d03459b41302d6a781e2cfebd2af499c0949dc7dc662f2c07119b532b717e3ba03661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9033cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xcaeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5d03459b41302d6a781e2cfebd2af499c0949dc7dc662f2c07119b532b717e3b", + "transactionsTrie": "0x3661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd3b79e4b19bff50650f74b36b70764e9e530db070174403c0a788658bcb3946c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x7efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4", + "s": "0x464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xcaeabd33c75644c791d2f1bbeb0982c4af1ed129d7a02d20d448097c9e65bdb7", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -91,10 +201,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -108,58 +218,17 @@ }, "001-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904fdf90243a082961a1d1a8f1f84341af1d101c354ae7bdeab862fd6d894955db4fd04d864b0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0960af52d15ef447c9e6431fbb43ff38841cd063936498215677730fa16560a59a0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902b2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x82961a1d1a8f1f84341af1d101c354ae7bdeab862fd6d894955db4fd04d864b0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x960af52d15ef447c9e6431fbb43ff38841cd063936498215677730fa16560a59", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x30ffb8088734e3c55200f45a87bdc33b8934c1429a2ec599f29f17c207da5bdb", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f3e976910b90735da9501d05c9994d3f3500ce430564f7edb519b06219874efaa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd8d7c0cd79b3f8643872bbd7e77ac5b758166e122d8f5e12e0a74f41fd705b43", + "stateRoot": "0xf3e976910b90735da9501d05c9994d3f3500ce430564f7edb519b06219874efa", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -176,16 +245,149 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x82961a1d1a8f1f84341af1d101c354ae7bdeab862fd6d894955db4fd04d864b0" + "hash": "0x46bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0d" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d8d7c0cd79b3f8643872bbd7e77ac5b758166e122d8f5e12e0a74f41fd705b43a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x82961a1d1a8f1f84341af1d101c354ae7bdeab862fd6d894955db4fd04d864b0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904fdf90243a046bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa097aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02a0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902b2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x46bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x97aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02", + "transactionsTrie": "0xe1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2fd5ead209659fa82cfb45ba38172447c3c04266b27b7587640680ad2309c0d6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x46bd926ae4c549c3fbccb6931a9626eb9749991ab26ddf0f7784622508bbaf0d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -196,10 +398,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -213,59 +415,17 @@ }, "002-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9051ff90243a0c26474ab5f017d470e98f03b679627a3274b4822b7a67b42cc7d7c9fe14aea90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa085ba16621e110149cb0085769721bfe23d64424c852adbdf473d6f3474b2bf0ca0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc26474ab5f017d470e98f03b679627a3274b4822b7a67b42cc7d7c9fe14aea90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x85ba16621e110149cb0085769721bfe23d64424c852adbdf473d6f3474b2bf0c", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x7b9825dd9d2d5c131bbaec72ce8b11e8143329d2a396e685ba24b9db9641b547", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c0cfb1f259557570b3e84bbc9c1c6b3c8757619a5c8d1c1bf3d633d1f78cb690a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xdbbe7bfea9960d7d1a8a666cb62d3dde6473c6fc2d04811f087d0dee16869b7c", + "stateRoot": "0xc0cfb1f259557570b3e84bbc9c1c6b3c8757619a5c8d1c1bf3d633d1f78cb690", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -282,16 +442,150 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc26474ab5f017d470e98f03b679627a3274b4822b7a67b42cc7d7c9fe14aea90" + "hash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dbbe7bfea9960d7d1a8a666cb62d3dde6473c6fc2d04811f087d0dee16869b7ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc26474ab5f017d470e98f03b679627a3274b4822b7a67b42cc7d7c9fe14aea90", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9051ff90243a0bbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ee6c2ded7de9a12ace1ec116ec4492d0cf142a856435e23ce443d3fa70ddce0aa0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xee6c2ded7de9a12ace1ec116ec4492d0cf142a856435e23ce443d3fa70ddce0a", + "transactionsTrie": "0xe1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xafe5c55a9ae563c79cfb0b16940fb2ff6abdc29f2af264917e0210350af6531c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xf767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8c", + "s": "0x7f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -302,10 +596,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -319,56 +613,17 @@ }, "003-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90472f90242a050cfd7ce52fe0708554bd6e5ac97e0d367a9ff8182ea20322aa95fbc01dbada5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d6a331c50bcc31608d9c3475e79744216174ee598bf2663821291a67ec639f8a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90228b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x50cfd7ce52fe0708554bd6e5ac97e0d367a9ff8182ea20322aa95fbc01dbada5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d6a331c50bcc31608d9c3475e79744216174ee598bf2663821291a67ec639f8", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9ac69cb82253ceb7a3bedf3b80896c7d184bde8371fc5b6b3f9252d60435a3e7", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b2ef57913e1c7a58161acf83fa14b062549187dff1a5ca1834b59c8797f544bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x769798efe4c68ffdadba3588e55ccb4642ddac627f405f80d8e1443566c0f993", + "stateRoot": "0xb2ef57913e1c7a58161acf83fa14b062549187dff1a5ca1834b59c8797f544bf", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -385,16 +640,129 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x50cfd7ce52fe0708554bd6e5ac97e0d367a9ff8182ea20322aa95fbc01dbada5" + "hash": "0xd67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0769798efe4c68ffdadba3588e55ccb4642ddac627f405f80d8e1443566c0f993a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x50cfd7ce52fe0708554bd6e5ac97e0d367a9ff8182ea20322aa95fbc01dbada5", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90472f90242a0d67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90228b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0", + "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2e3c0f0100aa0dfa39d50a87e7add279865ec2e0d996e759b6b9e942e060f000" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xd67ff3e4069d0ace6875a7c3d213213e14f6bc8157982ed311190d0be4530b02", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -405,10 +773,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -422,57 +790,17 @@ }, "004-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90494f90242a040a2900dba7329e70d52a450d8b5714364e0b388d7b84d5a3666c9e334ba4870a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2f00d1cf10bdf6f4d83a7d7f1bf96332e8224fcae8f8c7b267de4bdfb402853a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x40a2900dba7329e70d52a450d8b5714364e0b388d7b84d5a3666c9e334ba4870", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf2f00d1cf10bdf6f4d83a7d7f1bf96332e8224fcae8f8c7b267de4bdfb402853", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x895fa40f855a36a6a69bbe70c62548273c021916e0fb7ad2c0c4c8366998b89f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a071552650ec6400866902569ae4fe72c402c579a53f84ce1854770c975892b0d5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4fdc8bd29dbacc7c253ee87fe368e721d97a9c3e4fd72e987dae27cac8a6658b", + "stateRoot": "0x71552650ec6400866902569ae4fe72c402c579a53f84ce1854770c975892b0d5", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -489,16 +817,130 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x40a2900dba7329e70d52a450d8b5714364e0b388d7b84d5a3666c9e334ba4870" + "hash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04fdc8bd29dbacc7c253ee87fe368e721d97a9c3e4fd72e987dae27cac8a6658ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x40a2900dba7329e70d52a450d8b5714364e0b388d7b84d5a3666c9e334ba4870", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90494f90242a0a7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0edc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455eea027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xedc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455ee", + "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5d554017739d731af48a5411482473ac138705186126ead565de9eb16ed7dbc5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f", + "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -509,10 +951,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -526,58 +968,17 @@ }, "005-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904b5f90242a020d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04c230be8d80d3dd2cd0c2f9bdbe67083f6e1920f530a87d40527aded658d4effa027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4c230be8d80d3dd2cd0c2f9bdbe67083f6e1920f530a87d40527aded658d4eff", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x56535ee82a707bb2510032d3a12ce6185a66bfa62787e37a63a52e5d66816b31", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03d3f7eaf228423899f7933eaaebe1c3d56efe3a72e018ef3148a186da9631398a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x125f578c2d1c3f6f97576e3d9948c1ae64566cc71cd3ec2cf4ccfe15e89281bc", + "stateRoot": "0x3d3f7eaf228423899f7933eaaebe1c3d56efe3a72e018ef3148a186da9631398", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -594,16 +995,131 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5" + "hash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0125f578c2d1c3f6f97576e3d9948c1ae64566cc71cd3ec2cf4ccfe15e89281bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904b5f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a2f18d3b3cd4722f0dd35574c211fc582030a172703c0fdcc320f4c49003d771a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa2f18d3b3cd4722f0dd35574c211fc582030a172703c0fdcc320f4c49003d771", + "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0fa16e41d59bdfaba7f9dad9ce30dce635949ec76aa8d8fc3d897fedb158314d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xf1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96e", + "s": "0x38cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -614,10 +1130,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -631,58 +1147,17 @@ }, "006-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904b6f90242a020d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2f00d1cf10bdf6f4d83a7d7f1bf96332e8224fcae8f8c7b267de4bdfb402853a01f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf2f00d1cf10bdf6f4d83a7d7f1bf96332e8224fcae8f8c7b267de4bdfb402853", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x0dc972ee67683bbd74686e96ed88fa0f729ea598dc70594ae3779c804316a969", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", - "0x03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03d3f7eaf228423899f7933eaaebe1c3d56efe3a72e018ef3148a186da9631398a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x125f578c2d1c3f6f97576e3d9948c1ae64566cc71cd3ec2cf4ccfe15e89281bc", + "stateRoot": "0x3d3f7eaf228423899f7933eaaebe1c3d56efe3a72e018ef3148a186da9631398", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -699,16 +1174,131 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5" + "hash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0125f578c2d1c3f6f97576e3d9948c1ae64566cc71cd3ec2cf4ccfe15e89281bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904b6f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0edc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455eea01f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xedc54baabec84f8f85117cb20970e85e8bae30548655c2b957c9a15b9ea455ee", + "transactionsTrie": "0x1f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf3d262540e4a93390b8ddf30a4d6f2b17f4d91d9a9ea48c79fbe69798ff0ce05" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f", + "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -719,10 +1309,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -736,54 +1326,17 @@ }, "007-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903e8f90242a06478bc6e0e73baca7b09eb7f356ac02655ae1cf8ceb372e2ed474218caeca974a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4caa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6478bc6e0e73baca7b09eb7f356ac02655ae1cf8ceb372e2ed474218caeca974", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4ca", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0x4e9440e3a5ac7e16bce25e194ef5e0633c34d183d25b22905aac3257b4059283", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a021918036341b8122bf43578c9591f07b458094d632ca2966ce22a1f93a863336a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1af46acc4535f39718c7c286932e13537a7b4e87512a1c3732b3989b158b0511", + "stateRoot": "0x21918036341b8122bf43578c9591f07b458094d632ca2966ce22a1f93a863336", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -800,16 +1353,109 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6478bc6e0e73baca7b09eb7f356ac02655ae1cf8ceb372e2ed474218caeca974" + "hash": "0x543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01af46acc4535f39718c7c286932e13537a7b4e87512a1c3732b3989b158b0511a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6478bc6e0e73baca7b09eb7f356ac02655ae1cf8ceb372e2ed474218caeca974", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903e8f90242a0543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe0300f080ad7ce9a85ad23d85064f23eecd31ae299cd8af29105f38b255ca23a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x543932c452845438f3d7157d96ae29d80cf5947e7a268d4a471362d859a51d75", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -820,10 +1466,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -837,55 +1483,17 @@ }, "008-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9040af90242a05a13abf630b0faf50ad55ecbf8d344d1f54f6cf005a3c5c1d464e06258ad145ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd3e5f1e30d750c74721eea25028df87189d7a2e6627a1ff936cb2875250ac8fa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5a13abf630b0faf50ad55ecbf8d344d1f54f6cf005a3c5c1d464e06258ad145e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdd3e5f1e30d750c74721eea25028df87189d7a2e6627a1ff936cb2875250ac8f", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0x343a8f671591d5cf3992845f50d29485e6667d64abc36d60e49c7dd0a4ec8b01", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0946d022ccb7c61b3f713c9bd38d75f2b5d067c03727712acf9ef99253ddffda4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c4689ed8b157b7bbac169f20e7529140319509b13d18b2b8c1da3e38660521e", + "stateRoot": "0x946d022ccb7c61b3f713c9bd38d75f2b5d067c03727712acf9ef99253ddffda4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -902,16 +1510,110 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5a13abf630b0faf50ad55ecbf8d344d1f54f6cf005a3c5c1d464e06258ad145e" + "hash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c4689ed8b157b7bbac169f20e7529140319509b13d18b2b8c1da3e38660521ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5a13abf630b0faf50ad55ecbf8d344d1f54f6cf005a3c5c1d464e06258ad145e", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9040af90242a0491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374fa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374f", + "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3360ac068ee03349bb70196b036e1d9ccb55a0bf21023c9af1980721a567d33a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -922,10 +1624,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -939,56 +1641,17 @@ }, "009-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9042bf90242a0f8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa068ea9acaeffc3b0d07f82c2fbdcce95731d262105f7c88fb6c5457e7c86e4c2aa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x68ea9acaeffc3b0d07f82c2fbdcce95731d262105f7c88fb6c5457e7c86e4c2a", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x905ccac4cb0ba54d2e8f8b2afc30370f2d28ae960f1a7d8838ec49fad83f413a", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fd92c193f1a5ff8dca7b320c98c8949e3146dc0755a47a40d3c9eaccc8ee53ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x489714292589136ef016ff3cf67188a56ec5f6efc75c8a1aac5306cbca94b118", + "stateRoot": "0x5fd92c193f1a5ff8dca7b320c98c8949e3146dc0755a47a40d3c9eaccc8ee53c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1005,16 +1668,111 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d" + "hash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0489714292589136ef016ff3cf67188a56ec5f6efc75c8a1aac5306cbca94b118a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9042bf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30a07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30", + "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2c90b6daff268c00fcd809d2043a8beaf2725fe9f83c2f118cb353c00e820183" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e", + "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1025,10 +1783,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1042,57 +1800,17 @@ }, "010-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9044cf90242a03a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d37676bf07f4eacc85f4c0ee9a31c227538efde721c14b1110a44cf24a2faceca07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd37676bf07f4eacc85f4c0ee9a31c227538efde721c14b1110a44cf24a2facec", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9e33be2b96d31b6741c07facf551fac78f406aa8ff02180d33bd494c9ce30319", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64", + "stateRoot": "0x790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1109,16 +1827,112 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a" + "hash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9044cf90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00ecf59dad2bcdf166eb1e1b01e2fd9c0c3dba4e9bd7c45527e2d28e8ba0b8e0aa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0ecf59dad2bcdf166eb1e1b01e2fd9c0c3dba4e9bd7c45527e2d28e8ba0b8e0a", + "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x30a92798ab246316c92a23d022514f30485d7df56cc1ea9634f600bd32a56643" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0xe9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71", + "s": "0x40e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1129,10 +1943,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1146,56 +1960,17 @@ }, "011-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9042cf90242a0f8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd3e5f1e30d750c74721eea25028df87189d7a2e6627a1ff936cb2875250ac8fa097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdd3e5f1e30d750c74721eea25028df87189d7a2e6627a1ff936cb2875250ac8f", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x4e71531d866891b03d36627a93ab29fba87350d8f9516b1a374a028ec684e8f6", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fd92c193f1a5ff8dca7b320c98c8949e3146dc0755a47a40d3c9eaccc8ee53ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x489714292589136ef016ff3cf67188a56ec5f6efc75c8a1aac5306cbca94b118", + "stateRoot": "0x5fd92c193f1a5ff8dca7b320c98c8949e3146dc0755a47a40d3c9eaccc8ee53c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1212,16 +1987,111 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d" + "hash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0489714292589136ef016ff3cf67188a56ec5f6efc75c8a1aac5306cbca94b118a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9042cf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374fa097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374f", + "transactionsTrie": "0x97c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddb", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7e635c0a9a48552a2879c85c397c5a77cbe11c61b79c5b9e181ba6743534a633" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1232,10 +2102,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1249,57 +2119,17 @@ }, "012-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9044df90242a03a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa068ea9acaeffc3b0d07f82c2fbdcce95731d262105f7c88fb6c5457e7c86e4c2aa097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x68ea9acaeffc3b0d07f82c2fbdcce95731d262105f7c88fb6c5457e7c86e4c2a", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x561a3116b72394f176201d1edf328447c851d62cd16db53b198e30df2d8dc858", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64", + "stateRoot": "0x790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1316,16 +2146,112 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a" + "hash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9044df90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30a097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1a3d52fb9896d3c0d9214d9a11dcf744fef4c045db29481a11de0d068b175d30", + "transactionsTrie": "0x97c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddb", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd59de7b808a363cd4a2f884733d2311ac5fdff59b693de490ed67726b60e069c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e", + "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1336,10 +2262,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1353,57 +2279,17 @@ }, "013-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9044ef90242a03a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd3e5f1e30d750c74721eea25028df87189d7a2e6627a1ff936cb2875250ac8fa0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90204b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdd3e5f1e30d750c74721eea25028df87189d7a2e6627a1ff936cb2875250ac8f", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd5b146ded70bd4c8fe6d4e4695f6cc4b6849b514abadae508fe006c3fb37c46c", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64", + "stateRoot": "0x790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1420,16 +2306,112 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a" + "hash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9044ef90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374fa0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90204b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0bfe25d7e7e30acc82c4c28c0cd34dc8250ace3d03d7f06984a4a656530b374f", + "transactionsTrie": "0xf8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ac07e243311710dee47db6f264223a645e80bd0b18ae1240fc9183c15ffdb62" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1440,10 +2422,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1457,52 +2439,17 @@ }, "014-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9035ef90242a0b88b0c2a1cf111e40592a044093066e9c2394a557ed923ca00024c19aba5b6bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb88b0c2a1cf111e40592a044093066e9c2394a557ed923ca00024c19aba5b6be", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xe0000", - "blockHash": "0xafdbd0a11bbfbeac1110fd89fbd37c9d61504f9b53e1347156522ba19c905996", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05286cedb720848de6b1cafd06d8679e2941d597805bee3956842c18d0b480026a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5c4595e7467fc2db82b528074c504efd56aa71350ea5efe0b5df30b4a62e2efe", + "stateRoot": "0x5286cedb720848de6b1cafd06d8679e2941d597805bee3956842c18d0b480026", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1519,16 +2466,89 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb88b0c2a1cf111e40592a044093066e9c2394a557ed923ca00024c19aba5b6be" + "hash": "0xd9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c4595e7467fc2db82b528074c504efd56aa71350ea5efe0b5df30b4a62e2efea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb88b0c2a1cf111e40592a044093066e9c2394a557ed923ca00024c19aba5b6be", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9035ef90242a0d9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc3cfb6dab012df61cdb3e226e64b17cf54857b0df15b79098c02c91d02b8f5f2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xd9afd2e454bd4dbaba688c0f8a0463689e50da4fe4bd675a9fb59434bedc2d55", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1539,10 +2559,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1556,53 +2576,17 @@ }, "015-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90380f90242a0d8a41b17a990d167af5590e142bd8b422fa57ca8c5f17777a1f7ff8fb34f0c5aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06babde48f4c108217f72a9eb989ae2e1b49ca6792b68411aa559f5b6e3bbb07aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8a41b17a990d167af5590e142bd8b422fa57ca8c5f17777a1f7ff8fb34f0c5a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6babde48f4c108217f72a9eb989ae2e1b49ca6792b68411aa559f5b6e3bbb07a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0x8c7c664af1637d6a2ef91751cb5f2531e9bc9e145a005b3a82e62c4613ff8227", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00765f987e8c2bda2726ebadf5ef1097dc55214b6760550c4a8e8e1dd4e26ff95a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd381473e3ec061ff72dcefa73a53e4e8e14d01f0450a9aa9bfd51e309c14db58", + "stateRoot": "0x0765f987e8c2bda2726ebadf5ef1097dc55214b6760550c4a8e8e1dd4e26ff95", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1619,16 +2603,90 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd8a41b17a990d167af5590e142bd8b422fa57ca8c5f17777a1f7ff8fb34f0c5a" + "hash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d381473e3ec061ff72dcefa73a53e4e8e14d01f0450a9aa9bfd51e309c14db58a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd8a41b17a990d167af5590e142bd8b422fa57ca8c5f17777a1f7ff8fb34f0c5a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90380f90242a026df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d4cb7c31c1bf0dfdf75815ff12910c8fcd821416b1356ca638e577ab2ae67bc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1639,10 +2697,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1656,54 +2714,17 @@ }, "016-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903a1f90242a07f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0639bdf3396080f357fc86e1c8367ae39f0883916c92931afc13f2eced666a6efa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x639bdf3396080f357fc86e1c8367ae39f0883916c92931afc13f2eced666a6ef", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0xb818c3befd809c86d0138a0f07d3da9de546f0667f39cac1d6319070c0f29ef7", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c2bca88713952176dd1d3beb658ad53c624a57f8024dd773405f948de236af0aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x77c2f5f8492acd3626187922c482db5f8da1eb6da5ba8f24baa053e8e85cf906", + "stateRoot": "0xc2bca88713952176dd1d3beb658ad53c624a57f8024dd773405f948de236af0a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1720,16 +2741,91 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1" + "hash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077c2f5f8492acd3626187922c482db5f8da1eb6da5ba8f24baa053e8e85cf906a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903a1f90242a0ba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x46efe02cd4bce6f5ccc379e2c9d307e4ebdb15b94803e3cde0917e19f0a7267e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1740,10 +2836,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1757,55 +2853,17 @@ }, "017-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903c2f90242a05717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07fc8aeaf780353eb65b8d6748a4ef71c7b86ca8b9472e94cdeaa535b3c28843ba0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7fc8aeaf780353eb65b8d6748a4ef71c7b86ca8b9472e94cdeaa535b3c28843b", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x7fa5c924afef16d52f1dc4053ba55daa438d40e3644c92c6e72a3a6ae0d0c3ae", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b4f13a90b70ad5d575f20f659a453fce0677610a82c6e7c4b469a653adcdf142a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x79f598d8247d0f45d56bc74e9e05069466f8cffab968b702e5cd6e38b574742e", + "stateRoot": "0xb4f13a90b70ad5d575f20f659a453fce0677610a82c6e7c4b469a653adcdf142", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1822,16 +2880,92 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407" + "hash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a079f598d8247d0f45d56bc74e9e05069466f8cffab968b702e5cd6e38b574742ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903c2f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d4240e01e7a864a89ea33b1a355f5a86cb422cfc33c8009cf89c56786a0a3d5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0xa9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639f", + "s": "0x72b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1842,10 +2976,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1859,56 +2993,17 @@ }, "018-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1, 5)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903e5f90242a078dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fa776314676c88261e2c13dbd7768b5841a22ca076d791ddb025b5ea37cac70ea0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfa776314676c88261e2c13dbd7768b5841a22ca076d791ddb025b5ea37cac70e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xbbd59024d322f5aaf6ab3865d3ffc421ead3945e25e03515fd09610840212703", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803", + "stateRoot": "0x902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1925,16 +3020,93 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa" + "hash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903e5f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa041e4f8e82c7e61f05afb5c8dc629e49cc896302f003633838962f60c3a4fd347a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x41e4f8e82c7e61f05afb5c8dc629e49cc896302f003633838962f60c3a4fd347", + "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ae3828f19ac01877130a78b424c0b4ea3186b7e250fe55c7b7708187fd62de9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0x3b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97", + "s": "0x3ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1945,10 +3117,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1962,54 +3134,17 @@ }, "019-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903a2f90242a07f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06babde48f4c108217f72a9eb989ae2e1b49ca6792b68411aa559f5b6e3bbb07aa0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90158b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6babde48f4c108217f72a9eb989ae2e1b49ca6792b68411aa559f5b6e3bbb07a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0x29bf176fd7b1dedd48860b6204677cb41018d79a45d49c5a4735c42714bf2a4c", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c2bca88713952176dd1d3beb658ad53c624a57f8024dd773405f948de236af0aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x77c2f5f8492acd3626187922c482db5f8da1eb6da5ba8f24baa053e8e85cf906", + "stateRoot": "0xc2bca88713952176dd1d3beb658ad53c624a57f8024dd773405f948de236af0a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2026,16 +3161,91 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1" + "hash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077c2f5f8492acd3626187922c482db5f8da1eb6da5ba8f24baa053e8e85cf906a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903a2f90242a0ba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90158b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1", + "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x882074cbe60b2e0c65a26c206a0f0bbf95ede491976c8a58b3c4d2d63342876a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2046,10 +3256,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2063,55 +3273,17 @@ }, "020-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903c3f90242a05717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0639bdf3396080f357fc86e1c8367ae39f0883916c92931afc13f2eced666a6efa0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x639bdf3396080f357fc86e1c8367ae39f0883916c92931afc13f2eced666a6ef", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x3adbe3404a7dcbf58ad5ee1ca37e1a786cbe7d64ebd5804b2f833e3bcacca383", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b4f13a90b70ad5d575f20f659a453fce0677610a82c6e7c4b469a653adcdf142a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x79f598d8247d0f45d56bc74e9e05069466f8cffab968b702e5cd6e38b574742e", + "stateRoot": "0xb4f13a90b70ad5d575f20f659a453fce0677610a82c6e7c4b469a653adcdf142", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2128,16 +3300,92 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407" + "hash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a079f598d8247d0f45d56bc74e9e05069466f8cffab968b702e5cd6e38b574742ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903c3f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8", + "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x54def9425700b58b0e614cdf492302422c5c5c0af0097eee6d293f8f900be78d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2148,10 +3396,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2165,56 +3413,17 @@ }, "021-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 4)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903e4f90242a078dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07fc8aeaf780353eb65b8d6748a4ef71c7b86ca8b9472e94cdeaa535b3c28843ba0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7fc8aeaf780353eb65b8d6748a4ef71c7b86ca8b9472e94cdeaa535b3c28843b", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xa2358fc571e777d27bb653950e72ebea7d02dc36baa6a5de34578755647edde5", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803", + "stateRoot": "0x902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2231,16 +3440,93 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa" + "hash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903e4f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7f04b554adc1b019d8687cf572bf52deea7f9db36c270d6bea7eeef145ada699", + "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0be03f76cbd053c9533225b250f1d6de31e2e7b828194c515591dec1af8d6776" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0xa9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639f", + "s": "0x72b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2251,10 +3537,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2268,56 +3554,17 @@ }, "022-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903e4f90242a078dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0639bdf3396080f357fc86e1c8367ae39f0883916c92931afc13f2eced666a6efa03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x639bdf3396080f357fc86e1c8367ae39f0883916c92931afc13f2eced666a6ef", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x5288af0c78f6c9f3d089c7e9a689741503d741a5e68ed66e024797b237c9e29d", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803", + "stateRoot": "0x902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2334,16 +3581,93 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa" + "hash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903e4f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4d8a514d359356a1e69275bd54d56a31090d5ee3dcad051e7bb3114ea62866e8", + "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8af317c96c950be6ade511dcd9ea18b1d65ca2d1313197107446f2dabd002f8d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2354,10 +3678,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2371,50 +3695,17 @@ }, "023-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(1,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a018ad5c3755675d8aaf83601b61ab614b5c81b0b0efdddcb1388884a1cc93722ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04643ec6af55cabf280565cbfdbfac64031a68c35a49af8b76291b5241ad7474fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x18ad5c3755675d8aaf83601b61ab614b5c81b0b0efdddcb1388884a1cc93722b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4643ec6af55cabf280565cbfdbfac64031a68c35a49af8b76291b5241ad7474f", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xe407bf86f25eedd972537a7025587fd2fa8d24013f42347e13f1bc6e87d6ce97", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04fc7860b0697f0704e3d0498ba1418a73b915f2c802a68a82e3c2fbc07fe30c7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc3da3fced03e55a3518ca77ce778b1063a73a5dcfca6c83758b6004308b8f088", + "stateRoot": "0x4fc7860b0697f0704e3d0498ba1418a73b915f2c802a68a82e3c2fbc07fe30c7", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2431,16 +3722,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x18ad5c3755675d8aaf83601b61ab614b5c81b0b0efdddcb1388884a1cc93722b" + "hash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c3da3fced03e55a3518ca77ce778b1063a73a5dcfca6c83758b6004308b8f088a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x18ad5c3755675d8aaf83601b61ab614b5c81b0b0efdddcb1388884a1cc93722b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a0cb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf79c1f1858e40fb857f4baaf29fb17954e0b423e80d6170cdbe7b8180a6e3809", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x63fec1369cd9d65b290ae94fc996e8ebf2c79051c6bf35141dd04fae3e4ed933" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xcb295c514c7f05bf55bd502f1aae8de4faa0c5721e853644a9b80125be4f1d91", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2451,10 +3795,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2468,51 +3812,17 @@ }, "024-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f3f90240a0a644dffed82a8da8a9b0d37c0d8c4386d9c02516b38bebcacbd3297418041e06a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06c47d8ac45e0b028303b7beb7ccc3d873c98b758aa4a480e565628c96b66ed6ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa644dffed82a8da8a9b0d37c0d8c4386d9c02516b38bebcacbd3297418041e06", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6c47d8ac45e0b028303b7beb7ccc3d873c98b758aa4a480e565628c96b66ed6e", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xe0000", - "blockHash": "0x049bacec2925bcb0026d76e96a388668eb93667e5854aee03721cdd32fa62e7e", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a073f4660956d8e262b5461b51bc91288c68f72f7f35775384c41b885a73715b46a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x481a8a8f9927bfdda6aa2227f7b37abbe323cb2aed1c92977ec8a6beb1464144", + "stateRoot": "0x73f4660956d8e262b5461b51bc91288c68f72f7f35775384c41b885a73715b46", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2529,16 +3839,70 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa644dffed82a8da8a9b0d37c0d8c4386d9c02516b38bebcacbd3297418041e06" + "hash": "0x555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0481a8a8f9927bfdda6aa2227f7b37abbe323cb2aed1c92977ec8a6beb1464144a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa644dffed82a8da8a9b0d37c0d8c4386d9c02516b38bebcacbd3297418041e06", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f3f90240a0555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055062ff0403a751369681b1a8c78b7479e646eb195f45d24785b05bcc2c3ef54a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x55062ff0403a751369681b1a8c78b7479e646eb195f45d24785b05bcc2c3ef54", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x10f6bf0ebaf88a7f35716adc2b76b09a80736ecccbdd9ed51f3bcf61b67ab920" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x555af0d77fd31dc9a181eacde4d6449fa4a4a48439375cbf9e2658a834883901", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2549,10 +3913,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2566,52 +3930,17 @@ }, "025-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90314f90240a06aa7ba04b0915d5ecc4662f5ad8548fdc7fd07a0853b94c1c6d55026a8e8dcada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01e6c73e35da1c1e4aff15a69f236a7affae193dda00259c6e0b42b48ebfd72e8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6aa7ba04b0915d5ecc4662f5ad8548fdc7fd07a0853b94c1c6d55026a8e8dcad", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1e6c73e35da1c1e4aff15a69f236a7affae193dda00259c6e0b42b48ebfd72e8", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0x0d6cfd96710511273ecc53451e570b12a4d4a53026b0dde30c4482344b412c23", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06c2c411de40eafadc94883ae597feadadd41127681fd0352907e8b427533a4f2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x93fe7268eee0963e50137d91f333b7dda24e998f37f7f57cadab9b6dcdd7210c", + "stateRoot": "0x6c2c411de40eafadc94883ae597feadadd41127681fd0352907e8b427533a4f2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2628,16 +3957,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6aa7ba04b0915d5ecc4662f5ad8548fdc7fd07a0853b94c1c6d55026a8e8dcad" + "hash": "0xb2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8d" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a093fe7268eee0963e50137d91f333b7dda24e998f37f7f57cadab9b6dcdd7210ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6aa7ba04b0915d5ecc4662f5ad8548fdc7fd07a0853b94c1c6d55026a8e8dcad", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90314f90240a0b2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a48d0e79248037a5d478e952d0f84f2de67b81bd690b001d8f40cc645ea71527a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa48d0e79248037a5d478e952d0f84f2de67b81bd690b001d8f40cc645ea71527", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x02ebb7f9171a61f30e4a40e2eed4d7289243def7997979f40ab84574f40f71a7" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb2e2c8999965611df1fcacfaf7c29054a8fd3a09457af5730667fbafe543ca8d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2648,10 +4032,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2665,53 +4049,17 @@ }, "026-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90335f90240a0a5ab3484e18bb8f9ee0c9d06bef89ced58aa27c7f3684c144f8a5d90eb463b7ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c66f15f45b8b4f010d05a6de6843cccaf4068a7f49f573ad01ad579a23b5343ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa5ab3484e18bb8f9ee0c9d06bef89ced58aa27c7f3684c144f8a5d90eb463b7c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc66f15f45b8b4f010d05a6de6843cccaf4068a7f49f573ad01ad579a23b5343b", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0x3548d4b98e412287cfc3ba154a6c64cc6b9bb5679b20c94fc53599f495077885", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08daf2f991516199729fc116b0c415fb3424e0aebaa5371b14f05d8fc0c5a96cca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc77341dab8b4968c1007540f590a098ea7569c90984c922daa043dfcaa19afe5", + "stateRoot": "0x8daf2f991516199729fc116b0c415fb3424e0aebaa5371b14f05d8fc0c5a96cc", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2728,16 +4076,72 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa5ab3484e18bb8f9ee0c9d06bef89ced58aa27c7f3684c144f8a5d90eb463b7c" + "hash": "0xf702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c77341dab8b4968c1007540f590a098ea7569c90984c922daa043dfcaa19afe5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa5ab3484e18bb8f9ee0c9d06bef89ced58aa27c7f3684c144f8a5d90eb463b7c", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90335f90240a0f702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c54d69c3347142f5e89a0627c040b1cae799df927387d8b2287562f366086da2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc54d69c3347142f5e89a0627c040b1cae799df927387d8b2287562f366086da2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf31577f4e429cc18fd6716e2a0d78f8f0ff6c10b9ead22ee5ed00baa89303b87" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xf702107e03d66d071e4abe8239f4293b417165b64869bbf46206b99cfa717064", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2748,10 +4152,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2765,54 +4169,17 @@ }, "027-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(5,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90359f90240a009966a41cf6ecc45c6a6fa534398d1d66294abce3ab26b088f3447b79c0dcf4ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b6137f2baca5dc1ced81cf9ccbb0c4ac9fbb704cb9faf80c89a9f7308582262fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x09966a41cf6ecc45c6a6fa534398d1d66294abce3ab26b088f3447b79c0dcf4c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb6137f2baca5dc1ced81cf9ccbb0c4ac9fbb704cb9faf80c89a9f7308582262f", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x16f6f0e35fb4b2118c2ec105a988174f68d09a1c42a660306b82fdd8b2f298d3", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fa039818e0ea307e3424da5647546a3e69876da266fc5a11773f1b649c96f60ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa808d9bbf451f680f960ae7f153af9a07051bcd69397b1d97b6259df8989b6b3", + "stateRoot": "0xfa039818e0ea307e3424da5647546a3e69876da266fc5a11773f1b649c96f60e", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2829,16 +4196,73 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x09966a41cf6ecc45c6a6fa534398d1d66294abce3ab26b088f3447b79c0dcf4c" + "hash": "0xa118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8f" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a808d9bbf451f680f960ae7f153af9a07051bcd69397b1d97b6259df8989b6b3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x09966a41cf6ecc45c6a6fa534398d1d66294abce3ab26b088f3447b79c0dcf4c", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90359f90240a0a118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00d58e806b064c735bd0f8061ffb3449554550a6c386a6759b1970660ecf63986a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0d58e806b064c735bd0f8061ffb3449554550a6c386a6759b1970660ecf63986", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe900787f74aaaeaecaeba10affb6fd922813ee87a871cb3b09c934710b88f12d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x00", + "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16", + "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xa118ab4dc79cfd3002ba1fc91f58e37dbb6ce0fada93f1002f7a440f75206f8f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2849,10 +4273,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2866,55 +4290,17 @@ }, "028-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(6,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9037af90240a0d0c77675cd1f22df4271e205331a9c0b9b33923aca71b7dc7e99bd4a97e602c1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01aaa71f3039445855b78c2c5d4635f3e41b45e59960c1f74d9980a6583a8b210a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd0c77675cd1f22df4271e205331a9c0b9b33923aca71b7dc7e99bd4a97e602c1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1aaa71f3039445855b78c2c5d4635f3e41b45e59960c1f74d9980a6583a8b210", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x37d27c199d1590d824c7a4ddc5b2444919a4e55a42b6ab3cfa1d3c6fd807cd64", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06b71f9491516858a7dd905665af698cc6f0a850722bbbee2fe980d7c36f25265a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2aa203b0b93488057c2d5702561d7910382133c161e7b34c936ef904a833f231", + "stateRoot": "0x6b71f9491516858a7dd905665af698cc6f0a850722bbbee2fe980d7c36f25265", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2931,16 +4317,74 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd0c77675cd1f22df4271e205331a9c0b9b33923aca71b7dc7e99bd4a97e602c1" + "hash": "0x4b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02aa203b0b93488057c2d5702561d7910382133c161e7b34c936ef904a833f231a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd0c77675cd1f22df4271e205331a9c0b9b33923aca71b7dc7e99bd4a97e602c1", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9037af90240a04b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080242300467fba448d8a7e7959ca5b16a09ee59ada43e34876dc94ee97f310b6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x80242300467fba448d8a7e7959ca5b16a09ee59ada43e34876dc94ee97f310b6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa248f941810b740ca6536fa8cc2caaf50ce68d6afe2f280f9a2fb84be5095869" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x01", + "r": "0xa3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0f", + "s": "0x36264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x4b957eec4d913b69624a38f71d99095323117b6d79c4f8c9c079f2f2123165a3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2951,10 +4395,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2968,59 +4412,17 @@ }, "029-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9051ff90243a0c26474ab5f017d470e98f03b679627a3274b4822b7a67b42cc7d7c9fe14aea90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0960af52d15ef447c9e6431fbb43ff38841cd063936498215677730fa16560a59a0395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597ba080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc26474ab5f017d470e98f03b679627a3274b4822b7a67b42cc7d7c9fe14aea90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x960af52d15ef447c9e6431fbb43ff38841cd063936498215677730fa16560a59", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x7348245fcf508101a81bb04f24870223286a64a3ee7de5a5616e9324f7c16f1c", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c0cfb1f259557570b3e84bbc9c1c6b3c8757619a5c8d1c1bf3d633d1f78cb690a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xdbbe7bfea9960d7d1a8a666cb62d3dde6473c6fc2d04811f087d0dee16869b7c", + "stateRoot": "0xc0cfb1f259557570b3e84bbc9c1c6b3c8757619a5c8d1c1bf3d633d1f78cb690", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3037,16 +4439,150 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc26474ab5f017d470e98f03b679627a3274b4822b7a67b42cc7d7c9fe14aea90" + "hash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dbbe7bfea9960d7d1a8a666cb62d3dde6473c6fc2d04811f087d0dee16869b7ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc26474ab5f017d470e98f03b679627a3274b4822b7a67b42cc7d7c9fe14aea90", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9051ff90243a0bbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa097aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02a0395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597ba080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x97aeb626e9754dbfb203eef0b83a5dafad30c5ca8a1413a67cdb1f432bc86e02", + "transactionsTrie": "0x395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597b", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75e41f6c36bcf8946ecaaca60e3ce3bda5f98ae98cd16f543ff94ec9a4fad751" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xbbd5e153e71181f0b743bb5150b60cfe0b7a01c086a1d9f8a2fdf1595f1efff5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3057,10 +4593,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3074,57 +4610,17 @@ }, "030-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90494f90242a040a2900dba7329e70d52a450d8b5714364e0b388d7b84d5a3666c9e334ba4870a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d6a331c50bcc31608d9c3475e79744216174ee598bf2663821291a67ec639f8a06a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x40a2900dba7329e70d52a450d8b5714364e0b388d7b84d5a3666c9e334ba4870", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d6a331c50bcc31608d9c3475e79744216174ee598bf2663821291a67ec639f8", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x6920bac74f983820df4def2c41b68c251bf4f707f6fb98d4a785512e369799d4", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a071552650ec6400866902569ae4fe72c402c579a53f84ce1854770c975892b0d5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4fdc8bd29dbacc7c253ee87fe368e721d97a9c3e4fd72e987dae27cac8a6658b", + "stateRoot": "0x71552650ec6400866902569ae4fe72c402c579a53f84ce1854770c975892b0d5", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3141,16 +4637,130 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x40a2900dba7329e70d52a450d8b5714364e0b388d7b84d5a3666c9e334ba4870" + "hash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04fdc8bd29dbacc7c253ee87fe368e721d97a9c3e4fd72e987dae27cac8a6658ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x40a2900dba7329e70d52a450d8b5714364e0b388d7b84d5a3666c9e334ba4870", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90494f90242a0a7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a06a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0", + "transactionsTrie": "0x6a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xafa9704a49aa3d0223f06a71c7c8a3169d9c4cb8fc4d0b350ac59ad01bfd8d22" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xa7be1e9520f1e9557d68aebebfd69eb6561e9aae7b6503d2651376036f191844", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3161,10 +4771,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3178,58 +4788,17 @@ }, "031-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904b5f90242a020d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d6a331c50bcc31608d9c3475e79744216174ee598bf2663821291a67ec639f8a03b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d6a331c50bcc31608d9c3475e79744216174ee598bf2663821291a67ec639f8", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd8519c6c2ba63d0849ecc13430fec71d09be8d386f5ddc96b7ee02e04ac1ca0a", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03d3f7eaf228423899f7933eaaebe1c3d56efe3a72e018ef3148a186da9631398a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x125f578c2d1c3f6f97576e3d9948c1ae64566cc71cd3ec2cf4ccfe15e89281bc", + "stateRoot": "0x3d3f7eaf228423899f7933eaaebe1c3d56efe3a72e018ef3148a186da9631398", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3246,16 +4815,131 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5" + "hash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0125f578c2d1c3f6f97576e3d9948c1ae64566cc71cd3ec2cf4ccfe15e89281bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904b5f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a03b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0", + "transactionsTrie": "0x3b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7c95d215af40d96c4061f0745f353f40ac1fc7bd78cf21474440dc3e3d741c97" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3266,10 +4950,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3283,58 +4967,17 @@ }, "032-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904b6f90242a020d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d6a331c50bcc31608d9c3475e79744216174ee598bf2663821291a67ec639f8a0144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d6a331c50bcc31608d9c3475e79744216174ee598bf2663821291a67ec639f8", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd2bbede08721f51ea48771f0d97016f83966d606ab01af7a976823fee6ff3e2f", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03d3f7eaf228423899f7933eaaebe1c3d56efe3a72e018ef3148a186da9631398a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x125f578c2d1c3f6f97576e3d9948c1ae64566cc71cd3ec2cf4ccfe15e89281bc", + "stateRoot": "0x3d3f7eaf228423899f7933eaaebe1c3d56efe3a72e018ef3148a186da9631398", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3351,16 +4994,131 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5" + "hash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0125f578c2d1c3f6f97576e3d9948c1ae64566cc71cd3ec2cf4ccfe15e89281bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x20d20692849445415fe58ec769a9402e616e38e9d52f630234c4885ad44738d5", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904b6f90242a041ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0a0144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x061c51abb3a0fb77f6f981419291704db621e13bd631dbec5b8c74bdccc9dcb0", + "transactionsTrie": "0x144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61e", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1cd9cdf93a0cd24ec9dc983ccd40882bed54b368166bc182da0b6a1cec72e5e1" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x41ff942ccfbb158dde8306a76ac4d4405783761e582521ac2833368cf2cf5195", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3371,10 +5129,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3388,55 +5146,17 @@ }, "033-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9040af90242a05a13abf630b0faf50ad55ecbf8d344d1f54f6cf005a3c5c1d464e06258ad145ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4caa0dd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5a13abf630b0faf50ad55ecbf8d344d1f54f6cf005a3c5c1d464e06258ad145e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4ca", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0xf1ef016d4fba090e460a1d9ebd99d281af19822c9f790cf1250efdcabdc2b844", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0946d022ccb7c61b3f713c9bd38d75f2b5d067c03727712acf9ef99253ddffda4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c4689ed8b157b7bbac169f20e7529140319509b13d18b2b8c1da3e38660521e", + "stateRoot": "0x946d022ccb7c61b3f713c9bd38d75f2b5d067c03727712acf9ef99253ddffda4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3453,16 +5173,110 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5a13abf630b0faf50ad55ecbf8d344d1f54f6cf005a3c5c1d464e06258ad145e" + "hash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c4689ed8b157b7bbac169f20e7529140319509b13d18b2b8c1da3e38660521ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5a13abf630b0faf50ad55ecbf8d344d1f54f6cf005a3c5c1d464e06258ad145e", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9040af90242a0491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0dd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0xdd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d03fe39fb8e7321203ab9fd3d6fe351f5266405b002d32448fd5914dae17dc8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x491e2ada287e5d1c65ead10c85f7aaa87857b77959de6b05a95e5609adf7b7d4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3473,10 +5287,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3490,56 +5304,17 @@ }, "034-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9042bf90242a0f8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4caa0a8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4ca", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xcdfe798971724dfaa62bc91f0ae09a5cc7b476d852b07b99d84f61a799cef372", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fd92c193f1a5ff8dca7b320c98c8949e3146dc0755a47a40d3c9eaccc8ee53ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x489714292589136ef016ff3cf67188a56ec5f6efc75c8a1aac5306cbca94b118", + "stateRoot": "0x5fd92c193f1a5ff8dca7b320c98c8949e3146dc0755a47a40d3c9eaccc8ee53c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3556,16 +5331,111 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d" + "hash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0489714292589136ef016ff3cf67188a56ec5f6efc75c8a1aac5306cbca94b118a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9042bf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0a8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0xa8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3c6432461b2324e29e7679544a7f1a928ca71c94d3fe8e8eb9ad81875719f403" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3576,10 +5446,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3593,57 +5463,17 @@ }, "035-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9044cf90242a03a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4caa0ed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02da010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4ca", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xf4ff781304b7ed11e54b2e361e76ec2ef4847ae94d276d0a1223e27e9c07d583", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64", + "stateRoot": "0x790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3660,16 +5490,112 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a" + "hash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9044cf90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0ed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02da010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0xed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02d", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x747e10bb9f459d68a4135cec1f9c5ca4dab8e8f974d519b60bf215871d627389" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3680,10 +5606,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3697,56 +5623,17 @@ }, "036-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9042cf90242a0f8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4caa0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4ca", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x288019eb8061bb175afe125730b01804225e259977f5ae29c67d4dd11f9aff0e", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fd92c193f1a5ff8dca7b320c98c8949e3146dc0755a47a40d3c9eaccc8ee53ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x489714292589136ef016ff3cf67188a56ec5f6efc75c8a1aac5306cbca94b118", + "stateRoot": "0x5fd92c193f1a5ff8dca7b320c98c8949e3146dc0755a47a40d3c9eaccc8ee53c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3763,16 +5650,111 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d" + "hash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0489714292589136ef016ff3cf67188a56ec5f6efc75c8a1aac5306cbca94b118a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf8bd8874fbcc77aa2c625ce9020f2b8ffa394ba7ca00e994fa12ded5e9e79a8d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9042cf90242a0710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0xf8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x57dae5afb124528c66c0b71fe56f593db982cc837da21bfcdd5fe7c173e27aee" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x710ee35335e6d857c82d45dbeacbccdd51047728d7350923522d1cac0493901c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3783,10 +5765,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3800,57 +5782,17 @@ }, "037-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9044df90242a03a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4caa02c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5049414cd016abd87321528643f8c87ec7d5c6eb80dc662c69d902b7dc2e4ca", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xfe90b2b5675799a3efdc4957d18ef6996bf4429b1a75cc4b8708fb77703f2739", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64", + "stateRoot": "0x790287a8bb32d295223ad74ed3382bdbdf658172ccb47d5b24c815c45e03d213", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3867,16 +5809,112 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a" + "hash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f9df36d69b635359e0e751eb25e8558fc5c0edb6f347ac49cf3247c587991f64a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3a56a68acb7ff1127ee4d73c59b02236adb78fe556885a5aa084e9b92d45c88a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9044df90242a0ea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4a02c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d8139d0066d173ca7e797cffc241a0b1696b68c2cf532b0f2cef524033df7f4", + "transactionsTrie": "0x2c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb4c99eb503cd5e5b15c51d08f9a66c0a7527ea2bdc607c3318822205762b1713" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xea013146c61b98cdc5a04104e3366bff314b7921ee8d6b5dbd3aa4bc5b7b8fc4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3887,10 +5925,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3904,53 +5942,17 @@ }, "038-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90380f90242a0d8a41b17a990d167af5590e142bd8b422fa57ca8c5f17777a1f7ff8fb34f0c5aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8a41b17a990d167af5590e142bd8b422fa57ca8c5f17777a1f7ff8fb34f0c5a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0x2f427febc115f14bb4a43ccf9f2b8cadd839b0a20bc91e78333f25d1372febcd", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00765f987e8c2bda2726ebadf5ef1097dc55214b6760550c4a8e8e1dd4e26ff95a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd381473e3ec061ff72dcefa73a53e4e8e14d01f0450a9aa9bfd51e309c14db58", + "stateRoot": "0x0765f987e8c2bda2726ebadf5ef1097dc55214b6760550c4a8e8e1dd4e26ff95", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3967,16 +5969,90 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd8a41b17a990d167af5590e142bd8b422fa57ca8c5f17777a1f7ff8fb34f0c5a" + "hash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d381473e3ec061ff72dcefa73a53e4e8e14d01f0450a9aa9bfd51e309c14db58a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd8a41b17a990d167af5590e142bd8b422fa57ca8c5f17777a1f7ff8fb34f0c5a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90380f90242a026df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ef4f1fd0a5da712df7e33d05830972873c21fc7fa411fab51a23f9fd3a8dd7c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x26df0c4b1db060258d652d48eb7f99d14377451c7b8cf1ca965255e24ccc13ad", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3987,10 +6063,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4004,54 +6080,17 @@ }, "039-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903a1f90242a07f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9e362ccb4ff162feec022e57ab8852e983819810ce7ad8228862859cabe4f9d8", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c2bca88713952176dd1d3beb658ad53c624a57f8024dd773405f948de236af0aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x77c2f5f8492acd3626187922c482db5f8da1eb6da5ba8f24baa053e8e85cf906", + "stateRoot": "0xc2bca88713952176dd1d3beb658ad53c624a57f8024dd773405f948de236af0a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4068,16 +6107,91 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1" + "hash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077c2f5f8492acd3626187922c482db5f8da1eb6da5ba8f24baa053e8e85cf906a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7f0e28b4fc1adb74eb9d6e174ba310e2164e99ccdae6236c316edfcb45f50fc1", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903a1f90242a0ba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa5384be862ef5231fea9c11f6766a96a67fbc6ad7fc8ebd3c9ea910398ab6216" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xba767c2c2e90cde86d6ae67280861153509b1874b23540dc9095dd07f8c8f23d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4088,10 +6202,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4105,55 +6219,17 @@ }, "040-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903c2f90242a05717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x425604c87238551144bf9af7a11eb79294c8076a3c4250191d4e6a14456439c3", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b4f13a90b70ad5d575f20f659a453fce0677610a82c6e7c4b469a653adcdf142a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x79f598d8247d0f45d56bc74e9e05069466f8cffab968b702e5cd6e38b574742e", + "stateRoot": "0xb4f13a90b70ad5d575f20f659a453fce0677610a82c6e7c4b469a653adcdf142", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4170,16 +6246,92 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407" + "hash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a079f598d8247d0f45d56bc74e9e05069466f8cffab968b702e5cd6e38b574742ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903c2f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0x523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0a", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa01704061fff866138689862e075cced74729f3611e8566b4af81e0469b620c0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4190,10 +6342,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4207,56 +6359,17 @@ }, "041-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(5, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903e5f90242a078dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1db18f2ecdd316fb05fce45a03d8a503affb4b5883e49911bae50afe5d8dd889", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x705f9bbfc0034b4aaaf6a0e22e924b574f542e3a535a263ca0ecd4c3ca389999", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803", + "stateRoot": "0x902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4273,16 +6386,93 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa" + "hash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903e5f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebfa0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02429286eb574e0b2a52afa14c942d255ad1d25578aeb306e8b2df5293681ebf", + "transactionsTrie": "0xc3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0fb4973d170670ceaa6e9971ec2b69823746a834da66508d904ee900c952d0b6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x00", + "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16", + "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4293,10 +6483,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4310,55 +6500,17 @@ }, "042-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(3, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903c3f90242a05717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06babde48f4c108217f72a9eb989ae2e1b49ca6792b68411aa559f5b6e3bbb07aa03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6babde48f4c108217f72a9eb989ae2e1b49ca6792b68411aa559f5b6e3bbb07a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xce173baf05d5fb977ba80ed26fc5487b7f6db61b6e45368642be40cb1303c751", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b4f13a90b70ad5d575f20f659a453fce0677610a82c6e7c4b469a653adcdf142a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x79f598d8247d0f45d56bc74e9e05069466f8cffab968b702e5cd6e38b574742e", + "stateRoot": "0xb4f13a90b70ad5d575f20f659a453fce0677610a82c6e7c4b469a653adcdf142", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4375,16 +6527,92 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407" + "hash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a079f598d8247d0f45d56bc74e9e05069466f8cffab968b702e5cd6e38b574742ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5717286ebc0303f4c8232ead24d48de324722680c7cbb6adbe6f74d7584d1407", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903c3f90242a041c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1", + "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbf0c6df98618cf90b279de8b6aa957eec8773add12f693b3982d2a6b60cfaef4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x41c831748de94587dd640f864c4b0c7dd73f4824cbe28ea32e7c0edfe3e605b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4395,10 +6623,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4412,56 +6640,17 @@ }, "043-fork=Cancun--exact_balance_minus_1-blobs_per_tx=(4, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903e4f90242a078dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06babde48f4c108217f72a9eb989ae2e1b49ca6792b68411aa559f5b6e3bbb07aa0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6babde48f4c108217f72a9eb989ae2e1b49ca6792b68411aa559f5b6e3bbb07a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd9a1e0254b2e6069cd9df45333cfb7e869980a0836fcac3afa3d9155981492c9", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient_account_balance", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803", + "stateRoot": "0x902c8b382113525041155c90efb6a488af9fe6a7368d95ef49ecf7b2cb25b516", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4478,16 +6667,93 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa" + "hash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0344fccd53a8c9cb6220f67c120a6a65c8c4a5754f53217bab3d1928c812f2803a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x78dfca19909edcbac0f4f25245cfd360fd596b806133074fa7359c8eb6a82eaa", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903e4f90242a02e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", + "expectException": "insufficient account balance", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x506e57b8046ce66151e13fd567fbc87d03cffddbe43b0de68959827e99ae3be1", + "transactionsTrie": "0x523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0a", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaa6b1b72f2b8ccbd103aa318be057c4370772783df4d7448f3a361e9b2f0a0a9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x2e4f1af286113c250abda7895eb807583cb906b59aff8e59e35d19c23f624de6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4498,10 +6764,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json index efaf73fad12..95d315ca055 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_blob_hash_versioning.json @@ -1,50 +1,17 @@ { "000-fork=Cancun--single_tx_single_blob": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a06bfbb73d5604b7af2fc509172ef82609bc308b6b650b861e77fa1852f4356a64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02a5219a9fc77d6aa36f1c5e127802c2068fea0fdbab48bf619b6751b73c0ae6ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000180a054d676b559ce3000fa7aa0fe1dbd9160185b458af14ee83a299c5cb58207f81ea02bab9b72e3f10f40297c80367c39c76b3454036728309967bc4126d41447374cc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6bfbb73d5604b7af2fc509172ef82609bc308b6b650b861e77fa1852f4356a64", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2a5219a9fc77d6aa36f1c5e127802c2068fea0fdbab48bf619b6751b73c0ae6b", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd390c754a8aa801460cebdaa861e62d282f1d5774a8184afb2d17a4ad2249944", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000180a054d676b559ce3000fa7aa0fe1dbd9160185b458af14ee83a299c5cb58207f81ea02bab9b72e3f10f40297c80367c39c76b3454036728309967bc4126d41447374c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0000000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_versioned_hash", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4f03f07973662fdc67db104e45cb36acbc90290584681bcf68c57a4f66b20669", + "stateRoot": "0x7fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -61,16 +28,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6bfbb73d5604b7af2fc509172ef82609bc308b6b650b861e77fa1852f4356a64" + "hash": "0x7832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04f03f07973662fdc67db104e45cb36acbc90290584681bcf68c57a4f66b20669a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6bfbb73d5604b7af2fc509172ef82609bc308b6b650b861e77fa1852f4356a64", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a07832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e28ed2bcf4819adfa5b691548f1a3921587ff9c5dbe995d533acdebe5059ae84a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000180a054d676b559ce3000fa7aa0fe1dbd9160185b458af14ee83a299c5cb58207f81ea02bab9b72e3f10f40297c80367c39c76b3454036728309967bc4126d41447374cc0c0", + "expectException": "invalid blob versioned hash", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe28ed2bcf4819adfa5b691548f1a3921587ff9c5dbe995d533acdebe5059ae84", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd5f6715b4c9cea0679245e360b7ab5e747583b60dd76ad240c82cd8f9944cfe2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x54d676b559ce3000fa7aa0fe1dbd9160185b458af14ee83a299c5cb58207f81e", + "s": "0x2bab9b72e3f10f40297c80367c39c76b3454036728309967bc4126d41447374c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -81,10 +101,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -98,51 +118,17 @@ }, "001-fork=Cancun--single_tx_multiple_blobs": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f3f90240a0fa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d49e88abef04d5bd4749cb261e947c47bea41e1da97071988b7f0c70c2299e1aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000101a0977f1a8278d0362a82fedbab8d21b1ababc5f892a11e2138565cc27fc621ee0aa03a879a894a96d346128af86b1aecf573454d60426c1225310a9ce8fddec23206c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd49e88abef04d5bd4749cb261e947c47bea41e1da97071988b7f0c70c2299e1a", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xe0000", - "blockHash": "0xfafa3c5f701dbe0f47b143c9a26daaa3189b90d0b3e006a9d6a8d2ae487e26c1", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000101a0977f1a8278d0362a82fedbab8d21b1ababc5f892a11e2138565cc27fc621ee0aa03a879a894a96d346128af86b1aecf573454d60426c1225310a9ce8fddec23206" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_versioned_hash", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0efaecd2196ee9aba742027776cef97b4aded534d6c56ff14fd32b03afffe56dea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa9ed3d10a4db322ea2c29732cac8806881d01fe5bb44ab12ae942d82e55c82b5", + "stateRoot": "0xefaecd2196ee9aba742027776cef97b4aded534d6c56ff14fd32b03afffe56de", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -159,16 +145,70 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7" + "hash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a9ed3d10a4db322ea2c29732cac8806881d01fe5bb44ab12ae942d82e55c82b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f3f90240a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000101a0977f1a8278d0362a82fedbab8d21b1ababc5f892a11e2138565cc27fc621ee0aa03a879a894a96d346128af86b1aecf573454d60426c1225310a9ce8fddec23206c0c0", + "expectException": "invalid blob versioned hash", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0c809f39262684b9e61798d5e1cd060cc47f0e8c7cecb44df89291364de3d877" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x977f1a8278d0362a82fedbab8d21b1ababc5f892a11e2138565cc27fc621ee0a", + "s": "0x3a879a894a96d346128af86b1aecf573454d60426c1225310a9ce8fddec23206", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -179,10 +219,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -196,51 +236,17 @@ }, "002-fork=Cancun--single_tx_multiple_blobs_single_bad_hash_1": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f3f90240a0fa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d49e88abef04d5bd4749cb261e947c47bea41e1da97071988b7f0c70c2299e1aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a0cc726a3a180188c950b5cfc5088aa2f970ffeb86eca40b51dea070ceccd8c136a015bc845cebc4095a1628cc7e0853a8cf6ab9591e926ce2235dccd2525fa8d0f2c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd49e88abef04d5bd4749cb261e947c47bea41e1da97071988b7f0c70c2299e1a", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xe0000", - "blockHash": "0xfafa3c5f701dbe0f47b143c9a26daaa3189b90d0b3e006a9d6a8d2ae487e26c1", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a0cc726a3a180188c950b5cfc5088aa2f970ffeb86eca40b51dea070ceccd8c136a015bc845cebc4095a1628cc7e0853a8cf6ab9591e926ce2235dccd2525fa8d0f2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_versioned_hash", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0efaecd2196ee9aba742027776cef97b4aded534d6c56ff14fd32b03afffe56dea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa9ed3d10a4db322ea2c29732cac8806881d01fe5bb44ab12ae942d82e55c82b5", + "stateRoot": "0xefaecd2196ee9aba742027776cef97b4aded534d6c56ff14fd32b03afffe56de", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -257,16 +263,70 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7" + "hash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a9ed3d10a4db322ea2c29732cac8806881d01fe5bb44ab12ae942d82e55c82b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f3f90240a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a0cc726a3a180188c950b5cfc5088aa2f970ffeb86eca40b51dea070ceccd8c136a015bc845cebc4095a1628cc7e0853a8cf6ab9591e926ce2235dccd2525fa8d0f2c0c0", + "expectException": "invalid blob versioned hash", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0c809f39262684b9e61798d5e1cd060cc47f0e8c7cecb44df89291364de3d877" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xcc726a3a180188c950b5cfc5088aa2f970ffeb86eca40b51dea070ceccd8c136", + "s": "0x15bc845cebc4095a1628cc7e0853a8cf6ab9591e926ce2235dccd2525fa8d0f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -277,10 +337,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -294,51 +354,17 @@ }, "003-fork=Cancun--single_tx_multiple_blobs_single_bad_hash_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f3f90240a0fa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d49e88abef04d5bd4749cb261e947c47bea41e1da97071988b7f0c70c2299e1aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0629eabda9d4828669a0b08bb7c43c8b29b4aaaacf740b92e1806f17a9ed20313a01ce4f18d384b44aaf29b3e2776c322ae71e19e3d58e1dc8556373b2853a7f633c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd49e88abef04d5bd4749cb261e947c47bea41e1da97071988b7f0c70c2299e1a", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xe0000", - "blockHash": "0xfafa3c5f701dbe0f47b143c9a26daaa3189b90d0b3e006a9d6a8d2ae487e26c1", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0629eabda9d4828669a0b08bb7c43c8b29b4aaaacf740b92e1806f17a9ed20313a01ce4f18d384b44aaf29b3e2776c322ae71e19e3d58e1dc8556373b2853a7f633" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_versioned_hash", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0efaecd2196ee9aba742027776cef97b4aded534d6c56ff14fd32b03afffe56dea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa9ed3d10a4db322ea2c29732cac8806881d01fe5bb44ab12ae942d82e55c82b5", + "stateRoot": "0xefaecd2196ee9aba742027776cef97b4aded534d6c56ff14fd32b03afffe56de", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -355,16 +381,70 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7" + "hash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a9ed3d10a4db322ea2c29732cac8806881d01fe5bb44ab12ae942d82e55c82b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f3f90240a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0629eabda9d4828669a0b08bb7c43c8b29b4aaaacf740b92e1806f17a9ed20313a01ce4f18d384b44aaf29b3e2776c322ae71e19e3d58e1dc8556373b2853a7f633c0c0", + "expectException": "invalid blob versioned hash", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc0b8918c82992c6db0b8a22aabdc8627d4bc27bb784774a0e08f97a1fc5b2e8a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0c809f39262684b9e61798d5e1cd060cc47f0e8c7cecb44df89291364de3d877" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0x629eabda9d4828669a0b08bb7c43c8b29b4aaaacf740b92e1806f17a9ed20313", + "s": "0x1ce4f18d384b44aaf29b3e2776c322ae71e19e3d58e1dc8556373b2853a7f633", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -375,10 +455,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -392,52 +472,17 @@ }, "004-fork=Cancun--multiple_txs_single_blob": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9035ef90242a0680e7ad7aa2086f773aca976e8a353af4d88710dce10ac4a79c69d5743559c7ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04bea1261e0723acf8f42d10a262148f7cef3a5d9e36bd543a424b3372f77abefa09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000201a06ab8e4a2d375c531cdfc527a2a5a84590c08757d921b101aa70161e369951fd4a0154500632bf683a6cb721c8a47e9ee6918ffd464ce91a75b8ff71ea25212aed5c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x680e7ad7aa2086f773aca976e8a353af4d88710dce10ac4a79c69d5743559c7b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4bea1261e0723acf8f42d10a262148f7cef3a5d9e36bd543a424b3372f77abef", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xe0000", - "blockHash": "0x240c7b9386047a5c94f95c096f5a9265ff4eeb0257c7e049d66e64c622d3071a", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000201a06ab8e4a2d375c531cdfc527a2a5a84590c08757d921b101aa70161e369951fd4a0154500632bf683a6cb721c8a47e9ee6918ffd464ce91a75b8ff71ea25212aed5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_versioned_hash", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a082f50cde5f2aab972d5370e69056feaef8557e601dd3bfa1b84ee9505c1ff98aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3664f5feec05a68c5ea1d2eec3b6f65043e9a40d59e210373a83d4e5388afb2e", + "stateRoot": "0x82f50cde5f2aab972d5370e69056feaef8557e601dd3bfa1b84ee9505c1ff98a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -454,16 +499,89 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x680e7ad7aa2086f773aca976e8a353af4d88710dce10ac4a79c69d5743559c7b" + "hash": "0x25fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03664f5feec05a68c5ea1d2eec3b6f65043e9a40d59e210373a83d4e5388afb2ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x680e7ad7aa2086f773aca976e8a353af4d88710dce10ac4a79c69d5743559c7b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9035ef90242a025fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03cc964d95a7581579147c29e0838092ef15297cfecb743f03caa05a7985d28c4a09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000201a06ab8e4a2d375c531cdfc527a2a5a84590c08757d921b101aa70161e369951fd4a0154500632bf683a6cb721c8a47e9ee6918ffd464ce91a75b8ff71ea25212aed5c0c0", + "expectException": "invalid blob versioned hash", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x25fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3cc964d95a7581579147c29e0838092ef15297cfecb743f03caa05a7985d28c4", + "transactionsTrie": "0x9f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe4914ece17b56055e8c9fc3a5f3b4c8c67113dd4d238f60d58dfbadd6d9c9c7c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455", + "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x6ab8e4a2d375c531cdfc527a2a5a84590c08757d921b101aa70161e369951fd4", + "s": "0x154500632bf683a6cb721c8a47e9ee6918ffd464ce91a75b8ff71ea25212aed5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x25fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -474,10 +592,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -491,53 +609,17 @@ }, "005-fork=Cancun--multiple_txs_multiple_blobs": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90380f90242a03fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f20636ef2cc8881e3816bb40187db14dc5f6d77d604b5d12f37568f17a1121d0a09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a064a81f877afe2a9f173109c60345367b472eec99ee44a12b8b4f06e71f83f7a2a028409e9af4e70f3ce5cabc28cd0dd47e2d1dfbef31bdfa49045514d736f193aec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf20636ef2cc8881e3816bb40187db14dc5f6d77d604b5d12f37568f17a1121d0", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd997dff01ca85af7414ed197f2bb272a6029ec1b1dcfcc77ce76afc505a26d0e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a064a81f877afe2a9f173109c60345367b472eec99ee44a12b8b4f06e71f83f7a2a028409e9af4e70f3ce5cabc28cd0dd47e2d1dfbef31bdfa49045514d736f193ae" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_versioned_hash", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bc3c2ee7952e2d04c31de55221cc1ea2a6f339a648fc4527e2b19411394dd4c0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa8776d30e0adde560199edf694174d937abaa1e87bb2496c638003112dfb2adc", + "stateRoot": "0xbc3c2ee7952e2d04c31de55221cc1ea2a6f339a648fc4527e2b19411394dd4c0", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -554,16 +636,90 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8" + "hash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a8776d30e0adde560199edf694174d937abaa1e87bb2496c638003112dfb2adca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90380f90242a0d40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67aa09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000000280a064a81f877afe2a9f173109c60345367b472eec99ee44a12b8b4f06e71f83f7a2a028409e9af4e70f3ce5cabc28cd0dd47e2d1dfbef31bdfa49045514d736f193aec0c0", + "expectException": "invalid blob versioned hash", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67a", + "transactionsTrie": "0x9f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4dea41029579e8fd3bc62bdaac395a6045a91dad3a68909947aece60b190907b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455", + "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0x64a81f877afe2a9f173109c60345367b472eec99ee44a12b8b4f06e71f83f7a2", + "s": "0x28409e9af4e70f3ce5cabc28cd0dd47e2d1dfbef31bdfa49045514d736f193ae", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -574,10 +730,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -591,53 +747,17 @@ }, "006-fork=Cancun--multiple_txs_multiple_blobs_single_bad_hash_1": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90380f90242a03fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f20636ef2cc8881e3816bb40187db14dc5f6d77d604b5d12f37568f17a1121d0a09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a047f7ec33c220cfcabca802abe228dadc3e11e4d89d6ff1ba472e628a50ed3590a065ed1eb96a058c597f698383c1cfbcb2a3faf90577f640fc1b608c75940602ddc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf20636ef2cc8881e3816bb40187db14dc5f6d77d604b5d12f37568f17a1121d0", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd997dff01ca85af7414ed197f2bb272a6029ec1b1dcfcc77ce76afc505a26d0e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a047f7ec33c220cfcabca802abe228dadc3e11e4d89d6ff1ba472e628a50ed3590a065ed1eb96a058c597f698383c1cfbcb2a3faf90577f640fc1b608c75940602dd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_versioned_hash", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bc3c2ee7952e2d04c31de55221cc1ea2a6f339a648fc4527e2b19411394dd4c0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa8776d30e0adde560199edf694174d937abaa1e87bb2496c638003112dfb2adc", + "stateRoot": "0xbc3c2ee7952e2d04c31de55221cc1ea2a6f339a648fc4527e2b19411394dd4c0", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -654,16 +774,90 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8" + "hash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a8776d30e0adde560199edf694174d937abaa1e87bb2496c638003112dfb2adca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90380f90242a0d40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67aa09f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00000000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a047f7ec33c220cfcabca802abe228dadc3e11e4d89d6ff1ba472e628a50ed3590a065ed1eb96a058c597f698383c1cfbcb2a3faf90577f640fc1b608c75940602ddc0c0", + "expectException": "invalid blob versioned hash", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa98d333282dad9207b578e0164c0e84a136bb2bd1427a5669255a38bc778c67a", + "transactionsTrie": "0x9f6951c1601fe05888475895d658a77e94664b5308eb0262ccfcb05f073bbb27", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4dea41029579e8fd3bc62bdaac395a6045a91dad3a68909947aece60b190907b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455", + "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x47f7ec33c220cfcabca802abe228dadc3e11e4d89d6ff1ba472e628a50ed3590", + "s": "0x65ed1eb96a058c597f698383c1cfbcb2a3faf90577f640fc1b608c75940602dd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -674,10 +868,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -691,54 +885,17 @@ }, "007-fork=Cancun--multiple_txs_multiple_blobs_single_bad_hash_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903e8f90242a00b0079a0cea7cfccb5400f0bc32965efef73d6508d6acff00c4509c0dccdf1a0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0345f47249c2d092420cfb9d6dee6d998d65e9b64884b7d3fd0f57f7a66dde72ca06cf1a00219adf3c2d8cceb030dda791033e5920bab56bffd447dff1ce177638ca010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000280a02ecda544700f93d637036795d50c0528dbef432f4ac1d3e661aaa657cbfb9079a04932b24345e17152485902c78ccd5feadb2e90ac0ac992ab6fc334c0ce9a01b0b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000380a04a102a429682252f7fa7ed26237bc31520c19535b0fee2fa0261807903986976a0733f71dc90c6a698372d4bc61f404dee06d83a7422dca3b3735753d03faa4dc3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0b0079a0cea7cfccb5400f0bc32965efef73d6508d6acff00c4509c0dccdf1a0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x345f47249c2d092420cfb9d6dee6d998d65e9b64884b7d3fd0f57f7a66dde72c", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0x0e6e928e8b28f87040f61ff5eb492f57d65056b2540ec47d8b6082963a270662", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000280a02ecda544700f93d637036795d50c0528dbef432f4ac1d3e661aaa657cbfb9079a04932b24345e17152485902c78ccd5feadb2e90ac0ac992ab6fc334c0ce9a01b0", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000380a04a102a429682252f7fa7ed26237bc31520c19535b0fee2fa0261807903986976a0733f71dc90c6a698372d4bc61f404dee06d83a7422dca3b3735753d03faa4dc3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_versioned_hash", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04921aa9e0c218328161dfc3fddac975ac7a689fef2a9d6ef2661e23de857e439a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd6dd0cf37b7da18775da3cc8ec47c8b7ed04af5ccc9edd2cecf89211193c0213", + "stateRoot": "0x4921aa9e0c218328161dfc3fddac975ac7a689fef2a9d6ef2661e23de857e439", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -755,16 +912,109 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0b0079a0cea7cfccb5400f0bc32965efef73d6508d6acff00c4509c0dccdf1a0" + "hash": "0x7947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d6dd0cf37b7da18775da3cc8ec47c8b7ed04af5ccc9edd2cecf89211193c0213a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0b0079a0cea7cfccb5400f0bc32965efef73d6508d6acff00c4509c0dccdf1a0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf903e8f90242a07947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028debd21503f6c8a4e99cc2068f565904f55205cab98d6a3fbd90651f4aa380aa06cf1a00219adf3c2d8cceb030dda791033e5920bab56bffd447dff1ce177638ca010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000101a0e3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455a00b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000280a02ecda544700f93d637036795d50c0528dbef432f4ac1d3e661aaa657cbfb9079a04932b24345e17152485902c78ccd5feadb2e90ac0ac992ab6fc334c0ce9a01b0b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0000000000000000000000000000000000000000000000000000000000000000380a04a102a429682252f7fa7ed26237bc31520c19535b0fee2fa0261807903986976a0733f71dc90c6a698372d4bc61f404dee06d83a7422dca3b3735753d03faa4dc3c0c0", + "expectException": "invalid blob versioned hash", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x28debd21503f6c8a4e99cc2068f565904f55205cab98d6a3fbd90651f4aa380a", + "transactionsTrie": "0x6cf1a00219adf3c2d8cceb030dda791033e5920bab56bffd447dff1ce177638c", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x686dd251ffd620f4991fe04e19cf1688ea448f8fbd5e9772e4ff1df4aef335e2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xe3706044f70bc05c223affc4f7d838905a072dedfa44e895feaa35fc1b2a8455", + "s": "0x0b6a2702b0867811c0caf624bee67e0a0c719232c37859f27dd3bd56f6297a67", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0x2ecda544700f93d637036795d50c0528dbef432f4ac1d3e661aaa657cbfb9079", + "s": "0x4932b24345e17152485902c78ccd5feadb2e90ac0ac992ab6fc334c0ce9a01b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0000000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x4a102a429682252f7fa7ed26237bc31520c19535b0fee2fa0261807903986976", + "s": "0x733f71dc90c6a698372d4bc61f404dee06d83a7422dca3b3735753d03faa4dc3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -775,10 +1025,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json index 085dcc525e3..185555ae560 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_block_blob_count.json @@ -1,62 +1,17 @@ { - "000-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 1, 1, 1)": { + "000-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90611f90243a0fcd05a4a477b1686efb1dc6c3b27d6b8ce341e565a365db7e6db39a1c49fc60ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c92df937712217fc3ea8cccd9b60d97e8cb3a89b0e9e43716c385b3e00c5c8bca03836ad4f15ec36789c84c94fb8342a0e5765d80446986c417b22954d1c9a5e8ba0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f903c6b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eab88803f885010680078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a02145ded5025c6144b8f5ae446db8b617c5ff760eb7c17fa439dedb576ada3ab3a03a15f5307cc6a12f853f6f3732a1d2598d117a387256ab0f8f49d9431caf43bfc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfcd05a4a477b1686efb1dc6c3b27d6b8ce341e565a365db7e6db39a1c49fc60e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc92df937712217fc3ea8cccd9b60d97e8cb3a89b0e9e43716c385b3e00c5c8bc", - "receiptsRoot": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1ec30", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x1c7940524cd607862ae575ee6a693bf60cc6f4d9a0123abf1646b1cde9d376b7", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", - "0x03f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea", - "0x03f885010680078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a02145ded5025c6144b8f5ae446db8b617c5ff760eb7c17fa439dedb576ada3ab3a03a15f5307cc6a12f853f6f3732a1d2598d117a387256ab0f8f49d9431caf43bf" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a017cc0ad68eb7bcb8fd871a81c607f8f536c10889c8eaf7e6a4ff7a52022c4864a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa6a5bd9159813b873378e4cbf4fa13372b80099c3079494871fc835b22fff070", + "stateRoot": "0x17cc0ad68eb7bcb8fd871a81c607f8f536c10889c8eaf7e6a4ff7a52022c4864", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -73,16 +28,189 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfcd05a4a477b1686efb1dc6c3b27d6b8ce341e565a365db7e6db39a1c49fc60e" + "hash": "0x142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a6a5bd9159813b873378e4cbf4fa13372b80099c3079494871fc835b22fff070a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfcd05a4a477b1686efb1dc6c3b27d6b8ce341e565a365db7e6db39a1c49fc60e", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90611f90243a0142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01160bf706d3b06190fa33e896c44f6344158bacefadc0d6faa47ae69fbb424dea02579c29ab652de198ccbb3955047a953123c8d13e8728b18fde1b6894f883120a0b68b3b40b117981014523f7d13c54838507b148d7b74399ca5bdebd0b577f080b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083023e380c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f903c6b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eab88803f885010680078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a02145ded5025c6144b8f5ae446db8b617c5ff760eb7c17fa439dedb576ada3ab3a03a15f5307cc6a12f853f6f3732a1d2598d117a387256ab0f8f49d9431caf43bfc0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1160bf706d3b06190fa33e896c44f6344158bacefadc0d6faa47ae69fbb424de", + "transactionsTrie": "0x2579c29ab652de198ccbb3955047a953123c8d13e8728b18fde1b6894f883120", + "receiptTrie": "0xb68b3b40b117981014523f7d13c54838507b148d7b74399ca5bdebd0b577f080", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x023e38", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb7697b10784aabceb4b673ede99805ee4a5477fc9b5b6ff236b3b1d7f07bb6a0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x7efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4", + "s": "0x464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x06", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x2145ded5025c6144b8f5ae446db8b617c5ff760eb7c17fa439dedb576ada3ab3", + "s": "0x3a15f5307cc6a12f853f6f3732a1d2598d117a387256ab0f8f49d9431caf43bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x142abad1cb1f9c8a277d59f52cc29560472cf7bf4c46e12bfca8cf6b728acee2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -93,10 +221,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -108,63 +236,19 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 1, 2)": { + "001-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf905a9f90243a0253462c28711cb7c9dc8b1a10ccfad4e1426dc8f14b79d5524fe68ede1c90f46a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b60b6a0dba178497365adb3dbcfe8fcdff61e0dcb9d3a4a281779627bf514b64a03661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9035eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b8aa03f8a7010580078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a077be0868c3fbf1d197b11d641d9f12c3594f6c9c629ae8ff2499910fe9654a12a02c8935d89a4446614b3775dff87e286ae393905df3526c142b0333368b3c1b30c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x253462c28711cb7c9dc8b1a10ccfad4e1426dc8f14b79d5524fe68ede1c90f46", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb60b6a0dba178497365adb3dbcfe8fcdff61e0dcb9d3a4a281779627bf514b64", - "receiptsRoot": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x19a28", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xe15d6cb1f53e1a4e9f9761726daf8e9942affc515e4be3261669cda1e4e3de07", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", - "0x03f8a7010580078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a077be0868c3fbf1d197b11d641d9f12c3594f6c9c629ae8ff2499910fe9654a12a02c8935d89a4446614b3775dff87e286ae393905df3526c142b0333368b3c1b30" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03d0041dc8da9ee3c0279110afe82d184330247643e5648900893ed7383b7075ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x98d72d5d0546c5596b504103a8670bea14f154b8a06d77eef49d904ac2a51942", + "stateRoot": "0x3d0041dc8da9ee3c0279110afe82d184330247643e5648900893ed7383b7075b", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -181,16 +265,170 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x253462c28711cb7c9dc8b1a10ccfad4e1426dc8f14b79d5524fe68ede1c90f46" + "hash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a098d72d5d0546c5596b504103a8670bea14f154b8a06d77eef49d904ac2a51942a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x253462c28711cb7c9dc8b1a10ccfad4e1426dc8f14b79d5524fe68ede1c90f46", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf905a9f90243a0b37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226a066ec7d1f1b72c0f5feaba91fa153d37cbd4546fa5cbd873935058046433fda93a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9035eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b8aa03f8a7010580078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a077be0868c3fbf1d197b11d641d9f12c3594f6c9c629ae8ff2499910fe9654a12a02c8935d89a4446614b3775dff87e286ae393905df3526c142b0333368b3c1b30c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226", + "transactionsTrie": "0x66ec7d1f1b72c0f5feaba91fa153d37cbd4546fa5cbd873935058046433fda93", + "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ec30", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1924e77987d633fea1aa732a2b4dffe16daf613cd204f37821f954088e76bd2c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x77be0868c3fbf1d197b11d641d9f12c3594f6c9c629ae8ff2499910fe9654a12", + "s": "0x2c8935d89a4446614b3775dff87e286ae393905df3526c142b0333368b3c1b30", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -201,10 +439,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -216,62 +454,19 @@ }, "sealEngine": "NoProof" }, - "002-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 3)": { + "002-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90540f90243a0ad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01764df63f8a512e730e50e816dcac572846879e7b9b1db505bd64ef96936fdffa0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f5b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8cb03f8c8010480078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a056368cf345ba0e910db98bd81fc49972dc5808faec334faf9e2a108747678c04a00222926688f2b46101e29f204d831c23383264df34ddc055f31f1e9bfc2d1953c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1764df63f8a512e730e50e816dcac572846879e7b9b1db505bd64ef96936fdff", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x612f10856ea40ecd7aa99d80c8075256dce64d35ece9d29ac114e46bf75f6247", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f8c8010480078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a056368cf345ba0e910db98bd81fc49972dc5808faec334faf9e2a108747678c04a00222926688f2b46101e29f204d831c23383264df34ddc055f31f1e9bfc2d1953" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c338a02316d6f7c2af219179b2c4250cb4d348f7741f851837c3ec5bee0ba58ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x21f44224a036f95ec2b8acf3e83414fd78005cebe961cf9ef867a6843b2ca2e7", + "stateRoot": "0xc338a02316d6f7c2af219179b2c4250cb4d348f7741f851837c3ec5bee0ba58e", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -288,16 +483,151 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d" + "hash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a021f44224a036f95ec2b8acf3e83414fd78005cebe961cf9ef867a6843b2ca2e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90540f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda0e24fc5bc5b28819e28da0d847992b6880bbacff1b2b3e4c7043ccdd5addb0e6da00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f5b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8cb03f8c8010480078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a056368cf345ba0e910db98bd81fc49972dc5808faec334faf9e2a108747678c04a00222926688f2b46101e29f204d831c23383264df34ddc055f31f1e9bfc2d1953c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", + "transactionsTrie": "0xe24fc5bc5b28819e28da0d847992b6880bbacff1b2b3e4c7043ccdd5addb0e6d", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x45baae94310faa78a4b97f5194ee78e0b865f72b0dbc512dac45f95d6d18c7e5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x56368cf345ba0e910db98bd81fc49972dc5808faec334faf9e2a108747678c04", + "s": "0x0222926688f2b46101e29f204d831c23383264df34ddc055f31f1e9bfc2d1953", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -308,10 +638,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -323,62 +653,19 @@ }, "sealEngine": "NoProof" }, - "003-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 2, 2)": { + "003-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90541f90243a0ad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa053f96563aebf4518db58c233b73ca3574b0f915b72048ebda9c5063c2ca734faa036219ef524fefdf16df4dc044c3110b3f43df604eef9eba5c1a1e84c65a5fe05a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f6b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480eb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x53f96563aebf4518db58c233b73ca3574b0f915b72048ebda9c5063c2ca734fa", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xa8eadcf070a909ee43b82733c747c0e9fae8caf2cf8ef92542a1c005bbc7450f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e", - "0x03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c338a02316d6f7c2af219179b2c4250cb4d348f7741f851837c3ec5bee0ba58ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x21f44224a036f95ec2b8acf3e83414fd78005cebe961cf9ef867a6843b2ca2e7", + "stateRoot": "0xc338a02316d6f7c2af219179b2c4250cb4d348f7741f851837c3ec5bee0ba58e", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -395,16 +682,151 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d" + "hash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a021f44224a036f95ec2b8acf3e83414fd78005cebe961cf9ef867a6843b2ca2e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90541f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda03d9aba437ed8d586f33d3f0675b2f8b8353cf9c5e953cd3d8b436c5e4c6ec9ffa00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f6b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480eb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", + "transactionsTrie": "0x3d9aba437ed8d586f33d3f0675b2f8b8353cf9c5e953cd3d8b436c5e4c6ec9ff", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f47d195494d15f23e7d11a834ad7f807c15611fa829059f9527ce26eae2efa8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f", + "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0xf767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8c", + "s": "0x7f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -415,10 +837,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -430,61 +852,19 @@ }, "sealEngine": "NoProof" }, - "004-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 4)": { + "004-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904d6f90242a01bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00beb017296cf6468562e9495d232a075e686f3f9c4ff46e45ffbe88750e6b2e9a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8ec03f8e9010380078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0e8fb762b316adfc587fdaa98ee0e91e9f4a6878aff7e20ab0509677631e24e73a012705f2e3a2ae426d73d76991fd703eb4ead73457c5809816e791ae11e72338bc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0beb017296cf6468562e9495d232a075e686f3f9c4ff46e45ffbe88750e6b2e9", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xb2bfa300bdcafc45926c8ed62074d9d7150f8cedf88382a55f653fe1b98cc73b", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f8e9010380078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0e8fb762b316adfc587fdaa98ee0e91e9f4a6878aff7e20ab0509677631e24e73a012705f2e3a2ae426d73d76991fd703eb4ead73457c5809816e791ae11e72338b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56", + "stateRoot": "0xba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -501,16 +881,132 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53" + "hash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904d7f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0e77162b50c1197db32a578c34e5e387716ecdabfb7409fa1239534fd9d6f37caa080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8ec03f8e9010380078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0e8fb762b316adfc587fdaa98ee0e91e9f4a6878aff7e20ab0509677631e24e73a012705f2e3a2ae426d73d76991fd703eb4ead73457c5809816e791ae11e72338bc0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0xe77162b50c1197db32a578c34e5e387716ecdabfb7409fa1239534fd9d6f37ca", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f360aed78cf14817a48f88d6c65c1f4160957d6d83b94ecbfe77a08306683b7" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0xe8fb762b316adfc587fdaa98ee0e91e9f4a6878aff7e20ab0509677631e24e73", + "s": "0x12705f2e3a2ae426d73d76991fd703eb4ead73457c5809816e791ae11e72338b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -521,10 +1017,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -536,61 +1032,19 @@ }, "sealEngine": "NoProof" }, - "005-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 1, 2, 3)": { + "005-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904d7f90242a01bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013774785cd1fde87421c3b2aa359269976ebd7bb8bcd1f38704dd9c8faf38577a01f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028db88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13774785cd1fde87421c3b2aa359269976ebd7bb8bcd1f38704dd9c8faf38577", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xfba3a3d033d156c649e36b26b11667d8fff9c9ec5e837c2f04c3e3a2c5e14556", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", - "0x03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56", + "stateRoot": "0xba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -607,16 +1061,132 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53" + "hash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904d8f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0a24e376fbaa6be769bd94846d02837640365c0899d967d71fdf250a713d6bb96a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028db88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0xa24e376fbaa6be769bd94846d02837640365c0899d967d71fdf250a713d6bb96", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9346a9ac028916affa9024bb32947d295daee9215d23ab18679d01744a7dadca" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xf1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96e", + "s": "0x38cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -627,10 +1197,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -642,61 +1212,19 @@ }, "sealEngine": "NoProof" }, - "006-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 2, 2, 2)": { + "006-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 2, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904d8f90242a01bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a16f6e1f2c224d94c6b7dd195b50416df5f4eb50e51b706ebbd93df5d64d38e4a042d890b1d5b9bb62a2b3aa6684851b6ec7baabd924915b7b9573fa497188d3a5a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa16f6e1f2c224d94c6b7dd195b50416df5f4eb50e51b706ebbd93df5d64d38e4", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x8ed575809272358d77c432bc240ba65fba226ba01dfb37994b29e550485f7774", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", - "0x03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56", + "stateRoot": "0xba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -713,16 +1241,132 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53" + "hash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904d9f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0467a19dbbcaf37be5da721ae2b80ad27a098f1f7e9c48ed6cb7aef9847721c13a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0x467a19dbbcaf37be5da721ae2b80ad27a098f1f7e9c48ed6cb7aef9847721c13", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf5b4e350462073cd21520d8d57f61fed7c4c74d7988414a4eb52e1444b36a26e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x6d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2f", + "s": "0x3d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -733,10 +1377,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -748,60 +1392,19 @@ }, "sealEngine": "NoProof" }, - "007-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 1, 5)": { + "007-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 1, 5)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9046ff90242a07d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06de6e111c5a2d163b3207cc80bcd1542790017b0fcdad01705af3b41df75d447a07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb9010e03f9010a010280078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a042497dc2b34e5262095e63ed752dda63773a7cdd6c8937c43e0b7f4ac1d911a1a042592ba737e913c7eae6fdc59ae5f5e0e6efbf7c0d4e19b6eee7c9c89488fa68c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6de6e111c5a2d163b3207cc80bcd1542790017b0fcdad01705af3b41df75d447", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x20c323624a48c3c8ea01d50e88bc1fd8ec5c9f73629ee98498f1b815cf8b2353", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f9010a010280078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a042497dc2b34e5262095e63ed752dda63773a7cdd6c8937c43e0b7f4ac1d911a1a042592ba737e913c7eae6fdc59ae5f5e0e6efbf7c0d4e19b6eee7c9c89488fa68" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a006435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793", + "stateRoot": "0x06435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -818,16 +1421,113 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62" + "hash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0b8d22a2a3107e5e6d5975cca19f23ddd8f6329ae7dbee6c6535ec1e2fb396132a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb9010e03f9010a010280078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a042497dc2b34e5262095e63ed752dda63773a7cdd6c8937c43e0b7f4ac1d911a1a042592ba737e913c7eae6fdc59ae5f5e0e6efbf7c0d4e19b6eee7c9c89488fa68c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0xb8d22a2a3107e5e6d5975cca19f23ddd8f6329ae7dbee6c6535ec1e2fb396132", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x21b669ee8e3031bbc1e49ad46bd6471f3d6269b3ed87b9599993e61a8459ce68" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0x42497dc2b34e5262095e63ed752dda63773a7cdd6c8937c43e0b7f4ac1d911a1", + "s": "0x42592ba737e913c7eae6fdc59ae5f5e0e6efbf7c0d4e19b6eee7c9c89488fa68", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -838,10 +1538,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -853,60 +1553,19 @@ }, "sealEngine": "NoProof" }, - "008-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 2, 4)": { + "008-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 2, 4)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9046ef90242a07d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09f57211131df4f61d08426eb6d509d65f669de483e5c8605ea45c445ba11c6e3a097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9f57211131df4f61d08426eb6d509d65f669de483e5c8605ea45c445ba11c6e3", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x5f20765186e51b44157ef9b36a49602ee9d93dbf88d8f47d362ac7556dc9ae58", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a006435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793", + "stateRoot": "0x06435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -923,16 +1582,113 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62" + "hash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0b7f1ceea08d6e5de07e1e2f7a3f65e6ad25d668d6d5a68b471b3b5e34e2a333ca09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0xb7f1ceea08d6e5de07e1e2f7a3f65e6ad25d668d6d5a68b471b3b5e34e2a333c", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xef93382b8993136f8d636d168d0e8713bac9b125b3b4d148a14372961db7b0cc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0xe9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71", + "s": "0x40e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -943,10 +1699,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -958,60 +1714,19 @@ }, "sealEngine": "NoProof" }, - "009-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 3, 3)": { + "009-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 3, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9046ef90242a07d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09a83809d5a4e99a0f74d5956da30dd1ea0a465e3120af09119465a849173c80ea01ee6b5040a0afb8c01dd4973e7816f11f25c85d45f12fa9a2986ac5ee901408ba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9a83809d5a4e99a0f74d5956da30dd1ea0a465e3120af09119465a849173c80e", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xab00a3f66959fd222d619092dc83b7b93551d5ba938f697c790bab77738129fb", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", - "0x03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a006435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793", + "stateRoot": "0x06435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1028,16 +1743,113 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62" + "hash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a094257dc9890743429640f6e5514fba57cfd0182af5c8b448c0e313f149e6fcd5a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x94257dc9890743429640f6e5514fba57cfd0182af5c8b448c0e313f149e6fcd5", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xef6478714649d408b55aed038bb9d6d781427a91dd4bf86d6517f6e96d07f015" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e", + "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1048,10 +1860,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1063,60 +1875,19 @@ }, "sealEngine": "NoProof" }, - "010-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(2, 2, 3)": { + "010-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9046ff90242a07d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09a83809d5a4e99a0f74d5956da30dd1ea0a465e3120af09119465a849173c80ea0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9a83809d5a4e99a0f74d5956da30dd1ea0a465e3120af09119465a849173c80e", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x20947e4bd7b9ae06e3c1cbdaad858c0e58ff40c03c49a26b38b70edd844783f7", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a006435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793", + "stateRoot": "0x06435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1133,16 +1904,113 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62" + "hash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a07060c3d206c3e12d56a46b46825ff36dbf3bf0d2ef50db7cb67de2a5531ee8ffa09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x7060c3d206c3e12d56a46b46825ff36dbf3bf0d2ef50db7cb67de2a5531ee8ff", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0d931f1beb4657393db352f55882b3bd5062f8061d7ee0c6095ac89a2f0ff0e3" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x00", + "r": "0xf745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2e", + "s": "0x27c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1153,10 +2021,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1168,59 +2036,19 @@ }, "sealEngine": "NoProof" }, - "011-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(1, 6)": { + "011-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(1, 6)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90406f90242a05099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05b9317de4e118b52ecc923331b8b7bc71b038c6764b049d673b1e5ad9a8f3a78a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bcb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9012f03f9012b010180078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a0d2fb75e16680d8885a10c4fb9b6675953150ef03b8661e2ef9099265b0c1cc1fa049f848c809e11329ddd49cceec203252d0ba9863613b1cc4d0ff066460e87366c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5b9317de4e118b52ecc923331b8b7bc71b038c6764b049d673b1e5ad9a8f3a78", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xf8264d1d3c2f203fe8ac18228049f930e4938c87ad1334bd630430981e8ab5db", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f9012b010180078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a0d2fb75e16680d8885a10c4fb9b6675953150ef03b8661e2ef9099265b0c1cc1fa049f848c809e11329ddd49cceec203252d0ba9863613b1cc4d0ff066460e87366" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5efa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0", + "stateRoot": "0x14b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5ef", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1237,16 +2065,94 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3" + "hash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90406f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0f3e1659ddc6a74d943d65d62d4b2bc17b534976d1f1e9cc12837dade94910dd0a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bcb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9012f03f9012b010180078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a0d2fb75e16680d8885a10c4fb9b6675953150ef03b8661e2ef9099265b0c1cc1fa049f848c809e11329ddd49cceec203252d0ba9863613b1cc4d0ff066460e87366c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0xf3e1659ddc6a74d943d65d62d4b2bc17b534976d1f1e9cc12837dade94910dd0", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xedc928c463032db5a125707bd7811a0d0dc1baa3e782ef6e65a5c4cb653fe4d4" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0xd2fb75e16680d8885a10c4fb9b6675953150ef03b8661e2ef9099265b0c1cc1f", + "s": "0x49f848c809e11329ddd49cceec203252d0ba9863613b1cc4d0ff066460e87366", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1257,10 +2163,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1272,59 +2178,19 @@ }, "sealEngine": "NoProof" }, - "012-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(2, 5)": { + "012-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 5)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90407f90242a05099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d56ac07936e157f9f822abed4dbed546c047e0aba4fe5605856b80b8e19c4aa0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bdb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x36d56ac07936e157f9f822abed4dbed546c047e0aba4fe5605856b80b8e19c4a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x807221e00d910377e71c59b3c485bee0a8a47065d61653cc5cb9943d1dd94762", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5efa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0", + "stateRoot": "0x14b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5ef", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1341,16 +2207,94 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3" + "hash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90407f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a095fcf8909d577b2083b9826800534bcff34ed99c0a62ba8a76137a19ef695a13a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bdb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0x95fcf8909d577b2083b9826800534bcff34ed99c0a62ba8a76137a19ef695a13", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe8311c8368130c0ceac6de364a80e255d5ea582f83b0f0f6ac9cba96b3b911ef" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0x3b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97", + "s": "0x3ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1361,10 +2305,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1376,59 +2320,19 @@ }, "sealEngine": "NoProof" }, - "013-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(3, 4)": { + "013-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 4)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90405f90242a05099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07efec29d8f092bc3f4d0e625d63609279bdadae4278b73b21468bd37426342d1a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bbb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7efec29d8f092bc3f4d0e625d63609279bdadae4278b73b21468bd37426342d1", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x0f9fe4bf4d103ae172fbc9d0f86d3155ef6098007042850c41061e66843001fb", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5efa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0", + "stateRoot": "0x14b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5ef", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1445,16 +2349,94 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3" + "hash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90405f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0cd9bd46b0f2e318a5236d207dbd53a9ab32491fde3f09c33ae19100d31086891a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bbb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0xcd9bd46b0f2e318a5236d207dbd53a9ab32491fde3f09c33ae19100d31086891", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x95ce6dcfad780cbccf15c227c5a78ad0b55bec6623617c5a5a710b0179b7797a" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0xa9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639f", + "s": "0x72b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1465,10 +2447,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1480,58 +2462,19 @@ }, "sealEngine": "NoProof" }, - "014-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(7,)": { + "014-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(7,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9039bf90240a0be1eb1af1a43341077ce3e15b17e402e114df884b49ad8aa0e21e35dfdbb778fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa049d1c3e869b741fe80d4b212df3de47cddd8d4058c5170db916917fd57530638a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbe1eb1af1a43341077ce3e15b17e402e114df884b49ad8aa0e21e35dfdbb778f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x49d1c3e869b741fe80d4b212df3de47cddd8d4058c5170db916917fd57530638", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x110407995429e5a7c670b289464d6a3fb2d8a2250411ef53df08cdc5ccaf041c", - "transactions": [ - "0x03f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005", - "0x0100000000000000000000000000000000000000000000000000000000000006" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ecf02fbedb948d7cae0d9587417e228f925038e7f2bf720e438c662b72982d75a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2cfb2ac90188ce5cd315705dff7e8efacf4e8ee127cb3104fae95e1e77cfd8d8", + "stateRoot": "0xecf02fbedb948d7cae0d9587417e228f925038e7f2bf720e438c662b72982d75", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1548,16 +2491,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbe1eb1af1a43341077ce3e15b17e402e114df884b49ad8aa0e21e35dfdbb778f" + "hash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02cfb2ac90188ce5cd315705dff7e8efacf4e8ee127cb3104fae95e1e77cfd8d8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbe1eb1af1a43341077ce3e15b17e402e114df884b49ad8aa0e21e35dfdbb778f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9039df90242a09c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0a9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", + "transactionsTrie": "0xa9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb174770ab720577a08687ca81a12aa1c31ca5c638bd1860cd85a301043a84760" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005", + "0x0100000000000000000000000000000000000000000000000000000000000006" + ], + "v": "0x01", + "r": "0xaf0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6", + "s": "0x56fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1568,10 +2570,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1583,63 +2585,19 @@ }, "sealEngine": "NoProof" }, - "015-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(2, 1, 1, 1, 1, 1)": { + "015-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf905a9f90243a0253462c28711cb7c9dc8b1a10ccfad4e1426dc8f14b79d5524fe68ede1c90f46a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ad43b16d4f794127da4ea84ac1875519978bfe4a9b6d4d2254a48f7361fda144a09c43bd2e00a11464e9476f9d3c9ecfedeb1a665a8353183329137c3e49a2ba0da00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9035eb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x253462c28711cb7c9dc8b1a10ccfad4e1426dc8f14b79d5524fe68ede1c90f46", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xad43b16d4f794127da4ea84ac1875519978bfe4a9b6d4d2254a48f7361fda144", - "receiptsRoot": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x19a28", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9bea2f4376ba6ddd4cd08313e37d4582d615607f61a09e7d463dd290ea2a32eb", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", - "0x03f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03d0041dc8da9ee3c0279110afe82d184330247643e5648900893ed7383b7075ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x98d72d5d0546c5596b504103a8670bea14f154b8a06d77eef49d904ac2a51942", + "stateRoot": "0x3d0041dc8da9ee3c0279110afe82d184330247643e5648900893ed7383b7075b", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1656,16 +2614,170 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x253462c28711cb7c9dc8b1a10ccfad4e1426dc8f14b79d5524fe68ede1c90f46" + "hash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a098d72d5d0546c5596b504103a8670bea14f154b8a06d77eef49d904ac2a51942a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x253462c28711cb7c9dc8b1a10ccfad4e1426dc8f14b79d5524fe68ede1c90f46", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf905a9f90243a0b37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226a0900435949a013be5428acea59eda17147cb48e8fc507e453a1f251b3b0307393a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9035eb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226", + "transactionsTrie": "0x900435949a013be5428acea59eda17147cb48e8fc507e453a1f251b3b0307393", + "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ec30", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x898e51408d09ddf7da8f82293b083ef829de927e7debcd14064f11295d5246ea" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0x7efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4", + "s": "0x464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb37081858e0f45f6b9db73b2106e6ef17fea6eb2248ba7abc0b751408f6132b1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1676,10 +2788,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1691,62 +2803,19 @@ }, "sealEngine": "NoProof" }, - "016-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(3, 1, 1, 1, 1)": { + "016-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90540f90243a0ad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa020f8d90b0bbbe3570b7d3cad89d626f203ef2d3f9011dc0a905943a7b3d4b369a04f38fa6b14d9d174ad9970f4f917304beb458dface6f8ce8cc1483dfefd1ea28a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f5b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x20f8d90b0bbbe3570b7d3cad89d626f203ef2d3f9011dc0a905943a7b3d4b369", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x6ed3f73ebb6fca81680ef373584d1af5d489a9a0934656456d16bf4a16ff8c28", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c338a02316d6f7c2af219179b2c4250cb4d348f7741f851837c3ec5bee0ba58ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x21f44224a036f95ec2b8acf3e83414fd78005cebe961cf9ef867a6843b2ca2e7", + "stateRoot": "0xc338a02316d6f7c2af219179b2c4250cb4d348f7741f851837c3ec5bee0ba58e", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1763,16 +2832,151 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d" + "hash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a021f44224a036f95ec2b8acf3e83414fd78005cebe961cf9ef867a6843b2ca2e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90540f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda0344f6e30feece56c276d725150faed27a199b2e46ac573a2dffb2dc3bff5311aa00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f5b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", + "transactionsTrie": "0x344f6e30feece56c276d725150faed27a199b2e46ac573a2dffb2dc3bff5311a", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa4abd04583d0ef65ad33c37d0765ea6c2f15901aa9e81ffdcb3936b52dba00a5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1783,10 +2987,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1798,62 +3002,19 @@ }, "sealEngine": "NoProof" }, - "017-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(2, 2, 1, 1, 1)": { + "017-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 2, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90541f90243a0ad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa020f8d90b0bbbe3570b7d3cad89d626f203ef2d3f9011dc0a905943a7b3d4b369a02cb4dcbebef0589f390955d0f4f27e389640f3a70539b520d9383feb3e4eee58a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f6b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x20f8d90b0bbbe3570b7d3cad89d626f203ef2d3f9011dc0a905943a7b3d4b369", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x6250f93e0f19ac5b6b10ba8dae75ce6c9f32fc399219aed3bd4b10d18581c611", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c338a02316d6f7c2af219179b2c4250cb4d348f7741f851837c3ec5bee0ba58ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x21f44224a036f95ec2b8acf3e83414fd78005cebe961cf9ef867a6843b2ca2e7", + "stateRoot": "0xc338a02316d6f7c2af219179b2c4250cb4d348f7741f851837c3ec5bee0ba58e", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1870,16 +3031,151 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d" + "hash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a021f44224a036f95ec2b8acf3e83414fd78005cebe961cf9ef867a6843b2ca2e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xad325f1e8578f266488fae4e5a60a2583000d0804076a7c6f3cda38820b7257d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90541f90243a0a99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda0b4c142d700fbc5344ba1ae688a9a1fb035d02f7e333ac66e03a4364455700fc5a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902f6b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", + "transactionsTrie": "0xb4c142d700fbc5344ba1ae688a9a1fb035d02f7e333ac66e03a4364455700fc5", + "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x019a28", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x957e6fe78317912cfb3c879bff37084cf98f77a2fe86544064ed068d2ee8b701" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7d", + "s": "0x6989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xa99505076b977d19b10f2d39bef3f9d5b8d9cca04597cf378d3fa50006f03492", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1890,10 +3186,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1905,61 +3201,19 @@ }, "sealEngine": "NoProof" }, - "018-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(4, 1, 1, 1)": { + "018-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(4, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904d6f90242a01bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08b5055fce4305fed6e2bcc436b768800f45aaa8cc8732ff03c712f2a93035a60a06f58045d59b6d53a5eb2e22d51bbf120a308bbe17e42c88dd27f13990fee47dfa09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028cb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8b5055fce4305fed6e2bcc436b768800f45aaa8cc8732ff03c712f2a93035a60", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xcf53c57d46a7687b27a670d438e0514912b448753335bbd5d064c01404890471", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56", + "stateRoot": "0xba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1976,16 +3230,132 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53" + "hash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904d7f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a01c6b68ccfe9062c33f455258f202caa6edb49174c1cbb76595d95aa5d2bbd06fa080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028cb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0x1c6b68ccfe9062c33f455258f202caa6edb49174c1cbb76595d95aa5d2bbd06f", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x09ae5a602e57474c71cfd235ec2081079c9de6f19fdc5c33a0fa7ba701f275db" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1996,10 +3366,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2011,61 +3381,19 @@ }, "sealEngine": "NoProof" }, - "019-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(3, 2, 1, 1)": { + "019-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904d7f90242a01bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08b5055fce4305fed6e2bcc436b768800f45aaa8cc8732ff03c712f2a93035a60a0377f0d34979af41a9b88b309eb5fd90d818a2f6bf3e8f71c1f9aa85bad2a8c92a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028db8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8b5055fce4305fed6e2bcc436b768800f45aaa8cc8732ff03c712f2a93035a60", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xcfb3368199c9047d7107b92b1ae86b0d36b8c91952f8ad4f8d4e5d5e326f749a", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56", + "stateRoot": "0xba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2082,16 +3410,132 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53" + "hash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904d8f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0b0f4ac5bd5ec3b5c8ff39fbc3e8fb6d9c39794f66e839d8446bfe691bab5e7e5a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028db8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0xb0f4ac5bd5ec3b5c8ff39fbc3e8fb6d9c39794f66e839d8446bfe691bab5e7e5", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3b7de646c7b558777069d40a10a53c3d86296219260e91246fccbec2d515e908" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2102,10 +3546,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2117,61 +3561,19 @@ }, "sealEngine": "NoProof" }, - "020-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(2, 2, 2, 1)": { + "020-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(2, 2, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf904d8f90242a01bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08b5055fce4305fed6e2bcc436b768800f45aaa8cc8732ff03c712f2a93035a60a0eee09f637c5b61bc52e8d6ac6eb8220c07b812d842967964cc0221e744a19e11a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028eb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8b5055fce4305fed6e2bcc436b768800f45aaa8cc8732ff03c712f2a93035a60", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x33ffdf01b93731c703470f51015e25f23d702a57236ed7bf8f644ac40771b4c8", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56", + "stateRoot": "0xba673227933c1b86f47ec976eae8ef2878322a3f8fa4d418e1d20f0848ac3217", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2188,16 +3590,132 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53" + "hash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0175b2ffe2cd6c29960d7b91750b4440f951748d5d49388823ba5da1be4387a56a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1bd54b24d5b86cedc71c88d6e240445498e707c770621be7605492fb76bebe53", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf904d9f90243a0f290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a043a1c8184648d00e80478a9eb52b7bdf242666738ce2168673fa1a68934e7d3ba080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9028eb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0x43a1c8184648d00e80478a9eb52b7bdf242666738ce2168673fa1a68934e7d3b", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9ca7e07dd2718b5b552f9a31416bcdd90cb69538aacbd506d9a5495ff3b8b3ac" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0x2834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5", + "s": "0x5566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xf290d8b133d1625a37756795c42509a96976a4a88ea2b3b807761f6af01be345", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2208,10 +3726,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2223,60 +3741,19 @@ }, "sealEngine": "NoProof" }, - "021-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(5, 1, 1)": { + "021-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(5, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9046ff90242a07d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0345f47249c2d092420cfb9d6dee6d998d65e9b64884b7d3fd0f57f7a66dde72ca0add4c387a62309accaaf28cee5bb91f5a37f0b56e9353f6e8a5e3450141e01dea010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x345f47249c2d092420cfb9d6dee6d998d65e9b64884b7d3fd0f57f7a66dde72c", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9adaba386a6f4cffe8865a36abd4c6521fbde409d6837d6429732e92a511419e", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a006435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793", + "stateRoot": "0x06435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2293,16 +3770,113 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62" + "hash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a04c9b8c4e230ca5d18c785686373231a4be0587fbef4979e5be9094e23e68c9d2a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x4c9b8c4e230ca5d18c785686373231a4be0587fbef4979e5be9094e23e68c9d2", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x045a101ec1108bba07fd0e7a57a01ad683a9d09611f4574032d1b1b8184b211f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x00", + "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16", + "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2313,10 +3887,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2328,60 +3902,19 @@ }, "sealEngine": "NoProof" }, - "022-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(4, 2, 1)": { + "022-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(4, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9046ef90242a07d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0345f47249c2d092420cfb9d6dee6d998d65e9b64884b7d3fd0f57f7a66dde72ca05b12d3d5b0af73a0a50b1bf1e53310093f6467cbb11ad8e106e01cba4726c60fa010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x345f47249c2d092420cfb9d6dee6d998d65e9b64884b7d3fd0f57f7a66dde72c", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x8666c1add032cf345e12284db5e15e002cf6ceb019223aee26c4ea462e306d26", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a006435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793", + "stateRoot": "0x06435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2398,16 +3931,113 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62" + "hash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0ef2f0fb990681435e2cdebc1a1d7b6709c0e477dfd8b0c992ed7b650190a9d91a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0xef2f0fb990681435e2cdebc1a1d7b6709c0e477dfd8b0c992ed7b650190a9d91", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf1944e30961bb9ebb64a7278a2a5b2c8c4bfa12d6c8cd058bc2e9b53ef57606" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2418,10 +4048,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2433,60 +4063,19 @@ }, "sealEngine": "NoProof" }, - "023-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(3, 3, 1)": { + "023-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 3, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9046ef90242a07d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0345f47249c2d092420cfb9d6dee6d998d65e9b64884b7d3fd0f57f7a66dde72ca01273994453dcd4ac2a1d3f35ea06ef5f505c6fc508ad1e4d7024a6f1a7d3d2eea010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x345f47249c2d092420cfb9d6dee6d998d65e9b64884b7d3fd0f57f7a66dde72c", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xf753af260e2a60d2e4468f4de9b18abb94b994c72a6bb9955b3bfec6f666b045", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a006435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793", + "stateRoot": "0x06435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2503,16 +4092,113 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62" + "hash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9046ef90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a05a80f2685e98837d0c58e4c06331a8c2c2c9c73889a0c415497518a05efcf03ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90224b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x5a80f2685e98837d0c58e4c06331a8c2c2c9c73889a0c415497518a05efcf03e", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf5bfa2ca4aa0e88a27ccdf5d08519ddae95cbee01d035870d5cf619e8d7b4154" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xfe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1", + "s": "0x11d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2523,10 +4209,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2538,60 +4224,19 @@ }, "sealEngine": "NoProof" }, - "024-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(3, 2, 2)": { + "024-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(3, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9046ff90242a07d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b8cf2ad03f266290c01a75fc7233d4b568b92716164b34e2982256c7bffdf292a02c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb8cf2ad03f266290c01a75fc7233d4b568b92716164b34e2982256c7bffdf292", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x66a9664f3f118d20abb7496eb25cb17c032f44ccba723f46fe9b63b05025ac1c", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a006435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793", + "stateRoot": "0x06435d82777e00d84c33d8d85174f6850727591713e903168b719cf185a8673a", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2608,16 +4253,113 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62" + "hash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04aaeda3b961040eb4037bf8f700408b416408c083fef4314df705545b2e9e793a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7d72df0577665143b4ca68797635dc2566f11cebec7fbb79b41ff232833f3f62", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9046ff90242a004ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a08f2537a5a10ece9ba7ecec21b06a3fb5f95dd60fdd2a9d55d964500c18a17a0aa09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90225b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x8f2537a5a10ece9ba7ecec21b06a3fb5f95dd60fdd2a9d55d964500c18a17a0a", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe0257ec2b592be010ff7a59301b4a9277fefe1d08bac7761aa1624e0dcc9c021" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xfa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257", + "s": "0x7c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635e", + "s": "0x1870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x04ad7b648a29cc173ac0d6604c170cb1cafeb66de243f92bc1651d369edb8c79", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2628,10 +4370,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2643,59 +4385,19 @@ }, "sealEngine": "NoProof" }, - "025-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(6, 1)": { + "025-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(6, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90406f90242a05099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04bea1261e0723acf8f42d10a262148f7cef3a5d9e36bd543a424b3372f77abefa0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bcb9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98db88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4bea1261e0723acf8f42d10a262148f7cef3a5d9e36bd543a424b3372f77abef", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xa5e8e7addb5765d9b887fd3b509b33a7009169784f6f87f5a6ce96d37df59d67", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5efa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0", + "stateRoot": "0x14b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5ef", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2712,16 +4414,94 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3" + "hash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90406f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a03ef79e2b75483b3af114ba775bce341025d4545d443a5620f560499e9c4f4da3a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bcb9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98db88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0x3ef79e2b75483b3af114ba775bce341025d4545d443a5620f560499e9c4f4da3", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5e76ec686af211d04389e73fe61a527983293e62bc8de852720f6aa210a8d847" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x01", + "r": "0xa3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0f", + "s": "0x36264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaa", + "s": "0x6234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2732,10 +4512,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2747,59 +4527,19 @@ }, "sealEngine": "NoProof" }, - "026-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(5, 2)": { + "026-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(5, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90407f90242a05099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f20636ef2cc8881e3816bb40187db14dc5f6d77d604b5d12f37568f17a1121d0a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bdb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf20636ef2cc8881e3816bb40187db14dc5f6d77d604b5d12f37568f17a1121d0", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9b383584fd2b37407c0bd88f69615fc5938c83659b6e6b2d817b199d3ab69bf7", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5efa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0", + "stateRoot": "0x14b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5ef", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2816,16 +4556,94 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3" + "hash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90407f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0cf4339618e75779f0cffe7d0a861a6e46256fdc5b5c65c01385a13ec4e2661f2a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bdb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0xcf4339618e75779f0cffe7d0a861a6e46256fdc5b5c65c01385a13ec4e2661f2", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x520112fe4f8dd23b33006edbf8082f07b9afaa361acd1aed64686745dcf98f85" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x00", + "r": "0x5b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16", + "s": "0x33a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x00", + "r": "0xc2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6", + "s": "0x584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2836,10 +4654,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2851,59 +4669,19 @@ }, "sealEngine": "NoProof" }, - "027-fork=Cancun-tx_error=invalid_blob_count-blobs_per_tx=(4, 3)": { + "027-fork=Cancun-block_error=invalid_blob_count-blobs_per_tx=(4, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90405f90242a05099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed91089f7a765b6fef1300c836155d624742f36e5a870407252a5965b471dc82a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bbb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xed91089f7a765b6fef1300c836155d624742f36e5a870407252a5965b471dc82", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd1ede13c15be02c61765e4a0ab9ddba69b5ea1ed8b87df6461cad615e93485bb", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", - "0x03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid_blob_count", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5efa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0", + "stateRoot": "0x14b14f5a0b0b5d36058c5d21d48d389beb8d3b4d5a50db3d37d4e443c378a5ef", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2920,16 +4698,94 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3" + "hash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0788ea7309bc1f0dbdd910c412e10aeda8f8addee82878cd42532b9ea767542e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5099e04f5051d1df37ba7db898115b1e3d706bee0e1bdb53df9dd6ee838a03f3", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90405f90242a04dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a09f28f3ed16e1a426feade81e6012bd222a2bdef4cc627fdcfc20e2a385be161da010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901bbb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", + "expectException": "invalid_blob_count", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0x9f28f3ed16e1a426feade81e6012bd222a2bdef4cc627fdcfc20e2a385be161d", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbcf9e948711c80774b480d9ead00c8ec6868c4369c24d40fb78e555675195886" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x01", + "r": "0x5c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354", + "s": "0x38db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0x8e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746", + "s": "0x5f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x4dec6cdeae5bde5a2e743bdecfd9fb58fbeff6b01d51c5ae9c274f2ab1fab413", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2940,10 +4796,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json index 28e2ee9045e..271b6de34a9 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_normal_gas.json @@ -1,50 +1,17 @@ { "000-fork=Cancun-insufficient_max_fee_per_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d1f90240a05286408ecab86bf2d9e4b8a9242e29f6c2ad41feb33a03835148b21a8227c538a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0830ba815b79f1c5e9b30998ae5230adb7c512dc9522b0ce16b203af8bf8acd74a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080068252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0addeb69c5295c1ddd6fb930596ee852996564ce896acc1f69a226f6e440482bca07ba3ff1923416d370a26e28d364d2186ab2c3bf3d0094919b13b64d77c9879f2c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5286408ecab86bf2d9e4b8a9242e29f6c2ad41feb33a03835148b21a8227c538", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x830ba815b79f1c5e9b30998ae5230adb7c512dc9522b0ce16b203af8bf8acd74", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9eeced14276df965972d770687e9f6a77b35dda3dde0e1c1984a94135e629058", - "transactions": [ - "0x03f885018080068252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0addeb69c5295c1ddd6fb930596ee852996564ce896acc1f69a226f6e440482bca07ba3ff1923416d370a26e28d364d2186ab2c3bf3d0094919b13b64d77c9879f2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient max fee per gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ad72395ae5a95170203b0641cce2d8505fc69f18ecce4a71f8581d71176e205ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x6fa03ea104efd6b985bc02ee06ef8c2202c7088dd0d969198abae1918df4e350", + "stateRoot": "0xad72395ae5a95170203b0641cce2d8505fc69f18ecce4a71f8581d71176e205c", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -61,16 +28,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5286408ecab86bf2d9e4b8a9242e29f6c2ad41feb33a03835148b21a8227c538" + "hash": "0x4348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06fa03ea104efd6b985bc02ee06ef8c2202c7088dd0d969198abae1918df4e350a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5286408ecab86bf2d9e4b8a9242e29f6c2ad41feb33a03835148b21a8227c538", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d1f90240a04348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b70452996c18d2897321be12cbe65c99b5619870503d4ef7c04203a6492946b6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080068252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0addeb69c5295c1ddd6fb930596ee852996564ce896acc1f69a226f6e440482bca07ba3ff1923416d370a26e28d364d2186ab2c3bf3d0094919b13b64d77c9879f2c0c0", + "expectException": "insufficient max fee per gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb70452996c18d2897321be12cbe65c99b5619870503d4ef7c04203a6492946b6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8e5f44cda0a3a6c9f56ccb63ecc706007c98ea10adaf4f208e379219d5f59c08" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x06", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xaddeb69c5295c1ddd6fb930596ee852996564ce896acc1f69a226f6e440482bc", + "s": "0x7ba3ff1923416d370a26e28d364d2186ab2c3bf3d0094919b13b64d77c9879f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x4348268a740c77b36e84b3bc28e502a753a517d1a3ccd4bbf00efbee2b494047", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -81,10 +101,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json index 49d9c169395..7fd04e42b95 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_blob_count.json @@ -1,48 +1,17 @@ { "000-fork=Cancun-too_few_blobs": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902adf9023da036f7d9cde9299c7621325991d54da05ae3ba0efc4096101138ec1ccb31f64944a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4281f40bfae041b541bbe210802926d11e299d5e55730a94fa3602c48c5689ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000f869b86703f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x36f7d9cde9299c7621325991d54da05ae3ba0efc4096101138ec1ccb31f64944", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf4281f40bfae041b541bbe210802926d11e299d5e55730a94fa3602c48c5689c", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0xe0000", - "blockHash": "0xdb91a5809c99f13c508629d81f21b4856c22e9a702789a9808b1a96534c87d66", - "transactions": [ - "0x03f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "zero_blob_tx", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5fdf11d860d4c36a87277e8df366121a21ee8b8c99480f9ff631cc22d3c1d58b", + "stateRoot": "0x0b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901e", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -59,16 +28,67 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x36f7d9cde9299c7621325991d54da05ae3ba0efc4096101138ec1ccb31f64944" + "hash": "0x327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fdf11d860d4c36a87277e8df366121a21ee8b8c99480f9ff631cc22d3c1d58ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x36f7d9cde9299c7621325991d54da05ae3ba0efc4096101138ec1ccb31f64944", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902adf9023da0327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000f869b86703f864018080078252089400000000000000000000000000000000000001000180c001c080a0de3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cda06c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2c0c0", + "expectException": "zero blob tx", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x99727d67f3ed7f531fd2ca26118fe3988e856a69ea090a28fb29c2dd937abe85" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [], + "v": "0x00", + "r": "0xde3ecf0321e2d26c34d6b9bd1ffb5a30167abafd5ecacd477049544c23d402cd", + "s": "0x6c56b464881a4af7bb8216d47c6c5e3286395027af44044b3d7d31a2d24901f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x327e49c7a3ac30c7308a1c318a074d926ad6e4ef6885c58664bde91baea04fc4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -79,10 +99,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -96,56 +116,17 @@ }, "001-fork=Cancun-too_many_blobs": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9039bf90240a0be1eb1af1a43341077ce3e15b17e402e114df884b49ad8aa0e21e35dfdbb778fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa049d1c3e869b741fe80d4b212df3de47cddd8d4058c5170db916917fd57530638a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbe1eb1af1a43341077ce3e15b17e402e114df884b49ad8aa0e21e35dfdbb778f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x49d1c3e869b741fe80d4b212df3de47cddd8d4058c5170db916917fd57530638", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xe0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x110407995429e5a7c670b289464d6a3fb2d8a2250411ef53df08cdc5ccaf041c", - "transactions": [ - "0x03f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005", - "0x0100000000000000000000000000000000000000000000000000000000000006" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "too_many_blobs_tx", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ecf02fbedb948d7cae0d9587417e228f925038e7f2bf720e438c662b72982d75a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2cfb2ac90188ce5cd315705dff7e8efacf4e8ee127cb3104fae95e1e77cfd8d8", + "stateRoot": "0xecf02fbedb948d7cae0d9587417e228f925038e7f2bf720e438c662b72982d75", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -162,16 +143,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbe1eb1af1a43341077ce3e15b17e402e114df884b49ad8aa0e21e35dfdbb778f" + "hash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02cfb2ac90188ce5cd315705dff7e8efacf4e8ee127cb3104fae95e1e77cfd8d8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbe1eb1af1a43341077ce3e15b17e402e114df884b49ad8aa0e21e35dfdbb778f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9039df90242a09c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0a9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830e0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c018080078252089400000000000000000000000000000000000001000180c001f8e7a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000005a0010000000000000000000000000000000000000000000000000000000000000601a0af0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6a056fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1c0c0", + "expectException": "too many blobs", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", + "transactionsTrie": "0xa9f9ecaf41694501fe48865981e0e02ef87ef20d265b28a026ebf2e86cf0ada9", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0e0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb174770ab720577a08687ca81a12aa1c31ca5c638bd1860cd85a301043a84760" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005", + "0x0100000000000000000000000000000000000000000000000000000000000006" + ], + "v": "0x01", + "r": "0xaf0a7ac2ca1a38440aff74ef5585589516aaf73984ca8ebee703f42a54dab9f6", + "s": "0x56fc83d4ea63ef0f3b40ef86d36f887df7c46bad309dca7ceda55a2ba985f7a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x9c823f5a5fff3d59eae97c2a49a6a32d7cdf474478e97fcd6fedb97e058052d3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -182,10 +222,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json index 79bc096fedf..57547f7cc83 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/invalid_tx_max_fee_per_blob_gas.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-insufficient_max_fee_per_blob_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01f1479dc7ccab06a4b0d484baa2367b2b47037756b2b17703bd578465cb69f3ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083280000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1f1479dc7ccab06a4b0d484baa2367b2b47037756b2b17703bd578465cb69f3b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x280000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1137e62a890700dab4bbd885933a3e3f695ac966bd367dd90d8e9da9f2899733" + }, "blocks": [ { - "rlp": "0xf90337f90242a0e2d290549c27150a5ca404a85f3871ca3cb7989b9b5b2fa36df908091b5de1eaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07bd66d94620bd6d3cbde45a6c6e9d1647e23dbbe9297cfb4f218a32ec9747d25a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083220000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a01137e62a890700dab4bbd885933a3e3f695ac966bd367dd90d8e9da9f2899733a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0528985d69ae2ec25e6ff783e3cad5493e01c96ea8c0795e250a3e84868ecf028a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083220000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xe2d290549c27150a5ca404a85f3871ca3cb7989b9b5b2fa36df908091b5de1ea", + "parentHash": "0x1137e62a890700dab4bbd885933a3e3f695ac966bd367dd90d8e9da9f2899733", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7bd66d94620bd6d3cbde45a6c6e9d1647e23dbbe9297cfb4f218a32ec9747d25", + "stateRoot": "0x528985d69ae2ec25e6ff783e3cad5493e01c96ea8c0795e250a3e84868ecf028", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,38 +54,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x220000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0f168c81e0d566fd57546bea9fac626b6c225146226ca470522835839340479b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe2d290549c27150a5ca404a85f3871ca3cb7989b9b5b2fa36df908091b5de1ea", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7bd66d94620bd6d3cbde45a6c6e9d1647e23dbbe9297cfb4f218a32ec9747d25", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x220000", - "blockHash": "0x0f168c81e0d566fd57546bea9fac626b6c225146226ca470522835839340479b", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27" }, "blocknumber": "1", "transactions": [ @@ -92,70 +86,65 @@ "withdrawals": [] }, { - "rlp": "0xf902d1f90240a00f168c81e0d566fd57546bea9fac626b6c225146226ca470522835839340479ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b646aa814cd973898e4bfefebf4e5f1df2a248fba0a178f03ee6dd6bd54c1a01a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000801880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083240000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0f168c81e0d566fd57546bea9fac626b6c225146226ca470522835839340479b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb646aa814cd973898e4bfefebf4e5f1df2a248fba0a178f03ee6dd6bd54c1a01", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", + "rlp": "0xf902d1f90240a0a0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa088f4e11957ad01621ac155dd46f9d6a836e296cd869ef56a3e11f684bd30810aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000801880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083240000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "expectException": "insufficient max fee per blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x88f4e11957ad01621ac155dd46f9d6a836e296cd869ef56a3e11f684bd30810a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x240000", - "blockHash": "0xb09fc76dcb6bdd1afade5b0e827b7cab2841e1ede5723474d4a2f36a132d58be", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaebf0315015f552eeb84c9b2d9a7ba12d62f70b92cda256b43f3d8af45f05d26" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x01", + "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", + "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "insufficient max fee per blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xba2bc4a6f226262b9fb3b0fe50232b4b33148bc1dcd446f61555ebc73d247ec2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x280000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe2d290549c27150a5ca404a85f3871ca3cb7989b9b5b2fa36df908091b5de1ea" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba2bc4a6f226262b9fb3b0fe50232b4b33148bc1dcd446f61555ebc73d247ec2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083280000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0f168c81e0d566fd57546bea9fac626b6c225146226ca470522835839340479b", - "network": "Cancun", + "lastblockhash": "0xa0f6035c85669c43bf53dd8c4141ba13853871a051c8be68f63430e222192c27", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -172,20 +161,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", "balance": "0x01", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x3b908bc7", @@ -203,50 +192,17 @@ }, "001-fork=Cancun-invalid_max_fee_per_blob_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902cef9023da099acf71ebf219151ccb1bb234cdff7cb3e4cd8350421a6f0900fb97fd35a18bda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4281f40bfae041b541bbe210802926d11e299d5e55730a94fa3602c48c5689ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c080e1a0010000000000000000000000000000000000000000000000000000000000000080a0df26254112c6a69f0cf31138ec90f834de7b3ffb6241107682ddb0fc5532030ca02e424096551ad5dc99439167e2bf4bb3de61f86e752a85b448d339d77bcda1b0c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x99acf71ebf219151ccb1bb234cdff7cb3e4cd8350421a6f0900fb97fd35a18bd", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf4281f40bfae041b541bbe210802926d11e299d5e55730a94fa3602c48c5689c", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x4fb4072d31e5e343bafefdf0aaac86a5bcb06930737afe4052f643c6d03ee5e2", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c080e1a0010000000000000000000000000000000000000000000000000000000000000080a0df26254112c6a69f0cf31138ec90f834de7b3ffb6241107682ddb0fc5532030ca02e424096551ad5dc99439167e2bf4bb3de61f86e752a85b448d339d77bcda1b0" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid max fee per blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5fdf11d860d4c36a87277e8df366121a21ee8b8c99480f9ff631cc22d3c1d58b", + "stateRoot": "0x0b9d1a267a43c569ccd0ff306f8e9056d6c75389839d4402bb616de8d0af901e", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -263,16 +219,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x99acf71ebf219151ccb1bb234cdff7cb3e4cd8350421a6f0900fb97fd35a18bd" + "hash": "0x9c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fdf11d860d4c36a87277e8df366121a21ee8b8c99480f9ff631cc22d3c1d58ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x99acf71ebf219151ccb1bb234cdff7cb3e4cd8350421a6f0900fb97fd35a18bd", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902cef9023da09c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c080e1a0010000000000000000000000000000000000000000000000000000000000000080a0df26254112c6a69f0cf31138ec90f834de7b3ffb6241107682ddb0fc5532030ca02e424096551ad5dc99439167e2bf4bb3de61f86e752a85b448d339d77bcda1b0c0c0", + "expectException": "invalid max fee per blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x9c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x528ec623b44ac4e95faee7224facc3febfbe98d73368b01f83ad805f2657fea1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe7620d61234fc13400097a16ee8e0aef1ba0394be6eac5e724fb956e36276cd5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x00", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xdf26254112c6a69f0cf31138ec90f834de7b3ffb6241107682ddb0fc5532030c", + "s": "0x2e424096551ad5dc99439167e2bf4bb3de61f86e752a85b448d339d77bcda1b0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x9c51f354552b147d6bf4e2fe0fafd358b1bcae585341aa66b7b4af9eb165dee5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -283,10 +292,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json index f3d1a2d2109..d8b37751e67 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs/valid_blob_tx_combinations.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-blobs_per_tx=(1, 1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02df0b7ebb277b79516c1115d61a6494e7ca985f443dd3b33c7d36432b2bd7a81a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2df0b7ebb277b79516c1115d61a6494e7ca985f443dd3b33c7d36432b2bd7a81", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x481803473e4f14682bab811271c67c496b18c87409bf0f1676c30b1ab72cea6f" + }, "blocks": [ { - "rlp": "0xf90587f90243a02cf8af31ff30319842a512f4e79ad370040f2f6638d0f3395465812f4b64e014a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5005f551b0f0b913eae8493a5cb70ba3c7240e3985ecaa33b51a505af446840a03836ad4f15ec36789c84c94fb8342a0e5765d80446986c417b22954d1c9a5e8ba0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9033cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0", + "rlp": "0xf90587f90243a0481803473e4f14682bab811271c67c496b18c87409bf0f1676c30b1ab72cea6fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226a03836ad4f15ec36789c84c94fb8342a0e5765d80446986c417b22954d1c9a5e8ba0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9033cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139b88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939eac0c0", "blockHeader": { - "parentHash": "0x2cf8af31ff30319842a512f4e79ad370040f2f6638d0f3395465812f4b64e014", + "parentHash": "0x481803473e4f14682bab811271c67c496b18c87409bf0f1676c30b1ab72cea6f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb5005f551b0f0b913eae8493a5cb70ba3c7240e3985ecaa33b51a505af446840", + "stateRoot": "0x0abe6bebf48ea5da636cae19def078a0815fc749e5cda8bb2933bba001fdb226", "transactionsTrie": "0x3836ad4f15ec36789c84c94fb8342a0e5765d80446986c417b22954d1c9a5e8b", "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,45 +54,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd63568ecbee87760335f6628791e861d1fa3cc44a595244d099af19a1f93e10c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2cf8af31ff30319842a512f4e79ad370040f2f6638d0f3395465812f4b64e014", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb5005f551b0f0b913eae8493a5cb70ba3c7240e3985ecaa33b51a505af446840", - "receiptsRoot": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1ec30", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd63568ecbee87760335f6628791e861d1fa3cc44a595244d099af19a1f93e10c", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139", - "0x03f885010580078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a07efec980ef3b40c74b2de3dee9e9f081b9b4ae4ae1732d64ba0e9553aaf08dc4a0464e6720d2d74b4d68f37f339608278be3a16802b61a46dc9895b898a70939ea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd9c83651f05da11be99092df614247f8af42b40f19445cb3e314e95afe278d3d" }, "blocknumber": "1", "transactions": [ @@ -196,37 +183,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9664a0dbebaae97979d08b11b934f7f65814aea35a3b912340f3f65d90a4449e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2cf8af31ff30319842a512f4e79ad370040f2f6638d0f3395465812f4b64e014" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09664a0dbebaae97979d08b11b934f7f65814aea35a3b912340f3f65d90a4449ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd63568ecbee87760335f6628791e861d1fa3cc44a595244d099af19a1f93e10c", - "network": "Cancun", + "lastblockhash": "0xd9c83651f05da11be99092df614247f8af42b40f19445cb3e314e95afe278d3d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -237,20 +199,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x06", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x06", "balance": "0x00", @@ -262,18 +224,43 @@ }, "001-fork=Cancun-blobs_per_tx=(1, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0de9ddf3ba6a7cb6f3b8de6f591039b3236517b0815ae4ca2808ed4b46448ef2ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xde9ddf3ba6a7cb6f3b8de6f591039b3236517b0815ae4ca2808ed4b46448ef2b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf7e38066b964f34924cd6cb9949fa4f6e5d25f7153fd2f6bbb7e6577a77bba99" + }, "blocks": [ { - "rlp": "0xf904fdf90243a09ab5e10fb4aa8181a61ab755dc625282ef046c190210345dbab95f24a053628da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0378741ed2378aa6cbf05a5bb785dcc61578a138a856f5de6b6b973dfa1041bc1a03661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902b2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", + "rlp": "0xf904fdf90243a0f7e38066b964f34924cd6cb9949fa4f6e5d25f7153fd2f6bbb7e6577a77bba99a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda03661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350a00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902b2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", "blockHeader": { - "parentHash": "0x9ab5e10fb4aa8181a61ab755dc625282ef046c190210345dbab95f24a053628d", + "parentHash": "0xf7e38066b964f34924cd6cb9949fa4f6e5d25f7153fd2f6bbb7e6577a77bba99", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x378741ed2378aa6cbf05a5bb785dcc61578a138a856f5de6b6b973dfa1041bc1", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", "transactionsTrie": "0x3661257bb5c84c35577ff84a0c0764824974d6647187857c135085a2f0e3c350", "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -290,43 +277,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x205922def699547858b6f156ae1166b4fb32c3bc4ed2ac26549c8c4df47a7359" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ab5e10fb4aa8181a61ab755dc625282ef046c190210345dbab95f24a053628d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x378741ed2378aa6cbf05a5bb785dcc61578a138a856f5de6b6b973dfa1041bc1", - "receiptsRoot": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x19a28", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x205922def699547858b6f156ae1166b4fb32c3bc4ed2ac26549c8c4df47a7359", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x38262f674e5de86bb34523e232c1da8c077288de5227ab97577b5005bbae1829" }, "blocknumber": "1", "transactions": [ @@ -435,37 +386,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb42c55898fe22aaf09d8edbfa42a0378b55131e882e8e6b544d702e0699b947f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ab5e10fb4aa8181a61ab755dc625282ef046c190210345dbab95f24a053628d" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b42c55898fe22aaf09d8edbfa42a0378b55131e882e8e6b544d702e0699b947fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x205922def699547858b6f156ae1166b4fb32c3bc4ed2ac26549c8c4df47a7359", - "network": "Cancun", + "lastblockhash": "0x38262f674e5de86bb34523e232c1da8c077288de5227ab97577b5005bbae1829", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -476,20 +402,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x05", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x05", "balance": "0x00", @@ -501,18 +427,43 @@ }, "002-fork=Cancun-blobs_per_tx=(1, 1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f81ed6014a915f9c624b189d8d6ce193e1767e0900fe3ae473efea35fbf6fd9ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf81ed6014a915f9c624b189d8d6ce193e1767e0900fe3ae473efea35fbf6fd9e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5236e1c6bcc50f270f78cf3eeb527a1b717e4e87b321a36834718307d92bf460" + }, "blocks": [ { - "rlp": "0xf9051ff90243a0bde2b48df374d2f91280b57a3499ab88710623f0b00854d38564286ee689812fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0378741ed2378aa6cbf05a5bb785dcc61578a138a856f5de6b6b973dfa1041bc1a01a702cfa5256da11303eacb4f6fae0a3619e88a8a6a0682b7e9c08f0515df67aa00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0", + "rlp": "0xf9051ff90243a05236e1c6bcc50f270f78cf3eeb527a1b717e4e87b321a36834718307d92bf460a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda01a702cfa5256da11303eacb4f6fae0a3619e88a8a6a0682b7e9c08f0515df67aa00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb8aa03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6bc0c0", "blockHeader": { - "parentHash": "0xbde2b48df374d2f91280b57a3499ab88710623f0b00854d38564286ee689812f", + "parentHash": "0x5236e1c6bcc50f270f78cf3eeb527a1b717e4e87b321a36834718307d92bf460", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x378741ed2378aa6cbf05a5bb785dcc61578a138a856f5de6b6b973dfa1041bc1", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", "transactionsTrie": "0x1a702cfa5256da11303eacb4f6fae0a3619e88a8a6a0682b7e9c08f0515df67a", "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -529,44 +480,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbdfb652881f34b096c1912d02b02029f8aa21d7f377b51c4e8df6afb148245af" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbde2b48df374d2f91280b57a3499ab88710623f0b00854d38564286ee689812f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x378741ed2378aa6cbf05a5bb785dcc61578a138a856f5de6b6b973dfa1041bc1", - "receiptsRoot": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x19a28", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xbdfb652881f34b096c1912d02b02029f8aa21d7f377b51c4e8df6afb148245af", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f8a7010480078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0f767b7e3c41873f941552e15fd67947c18ed7139f03abbe188762e2b69b9dc8ca07f92eace9c234cc6b1353e9f6808165c5950f43ba226d3154b26a7c1b34a2d6b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x048d3ae912f876950dda5c433a7354454a874f3cc7a673c195b27a95d2c69d98" }, "blocknumber": "1", "transactions": [ @@ -676,37 +590,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1eed31cff66dd08d9c73325b30fc07411dde6382ca4e9cdd37475e2be1ae334e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbde2b48df374d2f91280b57a3499ab88710623f0b00854d38564286ee689812f" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01eed31cff66dd08d9c73325b30fc07411dde6382ca4e9cdd37475e2be1ae334ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbdfb652881f34b096c1912d02b02029f8aa21d7f377b51c4e8df6afb148245af", - "network": "Cancun", + "lastblockhash": "0x048d3ae912f876950dda5c433a7354454a874f3cc7a673c195b27a95d2c69d98", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -717,20 +606,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x05", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x05", "balance": "0x00", @@ -742,18 +631,43 @@ }, "003-fork=Cancun-blobs_per_tx=(1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03df88a99483a1fa9da87025240df6ff41bb2ab831abb4f3157bf317055ab02b9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3df88a99483a1fa9da87025240df6ff41bb2ab831abb4f3157bf317055ab02b9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7048299b4dc2f176ad3d5ee24a267ef72258d23fb368d0f4a7138a0ad10ae82c" + }, "blocks": [ { - "rlp": "0xf90473f90243a0c616a9f31f80aec06aff69cc2d7bdd6de10f1d829e2c5d8f255e0cfdcc97764da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623a0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90228b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "rlp": "0xf90473f90243a07048299b4dc2f176ad3d5ee24a267ef72258d23fb368d0f4a7138a0ad10ae82ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0e1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90228b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "blockHeader": { - "parentHash": "0xc616a9f31f80aec06aff69cc2d7bdd6de10f1d829e2c5d8f255e0cfdcc97764d", + "parentHash": "0x7048299b4dc2f176ad3d5ee24a267ef72258d23fb368d0f4a7138a0ad10ae82c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", "transactionsTrie": "0xe1169f165d2e932731011db28419e7b7ff436823d5020291fc7ba639981a8eb8", "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -770,41 +684,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xac353b62cb311ee2c69290927997512e7cd3938f9c0a25e707e1190a20a8d21b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc616a9f31f80aec06aff69cc2d7bdd6de10f1d829e2c5d8f255e0cfdcc97764d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0xac353b62cb311ee2c69290927997512e7cd3938f9c0a25e707e1190a20a8d21b", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xeed9f1be11df5761b08682c1098800fbf95409cc63fba51b179856786bfb84c6" }, "blocknumber": "1", "transactions": [ @@ -893,37 +773,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb1a44ba8a889a77bb47f26b6ed1be7925d1e54b78d05c428c8ca8ad3f8c50d91", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc616a9f31f80aec06aff69cc2d7bdd6de10f1d829e2c5d8f255e0cfdcc97764d" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b1a44ba8a889a77bb47f26b6ed1be7925d1e54b78d05c428c8ca8ad3f8c50d91a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xac353b62cb311ee2c69290927997512e7cd3938f9c0a25e707e1190a20a8d21b", - "network": "Cancun", + "lastblockhash": "0xeed9f1be11df5761b08682c1098800fbf95409cc63fba51b179856786bfb84c6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -934,20 +789,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x04", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", "balance": "0x00", @@ -959,25 +814,50 @@ }, "004-fork=Cancun-blobs_per_tx=(1, 1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90495f90243a04a8c798a9a3a9d4561a48149c100befa19972dcb5a45fe45276a70763db72c44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623a036219ef524fefdf16df4dc044c3110b3f43df604eef9eba5c1a1e84c65a5fe05a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", - "blockHeader": { - "parentHash": "0x4a8c798a9a3a9d4561a48149c100befa19972dcb5a45fe45276a70763db72c44", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", - "transactionsTrie": "0x36219ef524fefdf16df4dc044c3110b3f43df604eef9eba5c1a1e84c65a5fe05", - "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x014820", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a027f0e42ce38e5b5d22ffa0443312b27cdce7a43407ea6e4d679e3d2e87e1f394a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x27f0e42ce38e5b5d22ffa0443312b27cdce7a43407ea6e4d679e3d2e87e1f394", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd82df2c701c08852da7f7d1a274ad3ad7fe75511f85787de4b7f17769b7113b6" + }, + "blocks": [ + { + "rlp": "0xf90495f90243a0d82df2c701c08852da7f7d1a274ad3ad7fe75511f85787de4b7f17769b7113b6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a036219ef524fefdf16df4dc044c3110b3f43df604eef9eba5c1a1e84c65a5fe05a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", + "blockHeader": { + "parentHash": "0xd82df2c701c08852da7f7d1a274ad3ad7fe75511f85787de4b7f17769b7113b6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", + "transactionsTrie": "0x36219ef524fefdf16df4dc044c3110b3f43df604eef9eba5c1a1e84c65a5fe05", + "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x014820", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -987,42 +867,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9abb3034bd0012dceb3f9e8454d50634f940840e7d575304d0d9564762901c81" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4a8c798a9a3a9d4561a48149c100befa19972dcb5a45fe45276a70763db72c44", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9abb3034bd0012dceb3f9e8454d50634f940840e7d575304d0d9564762901c81", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x66b9067e526034303e9b04674a7ee87c13fe3df247e3f738ba3f4bcf4c7780d0" }, "blocknumber": "1", "transactions": [ @@ -1112,37 +957,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xbc55264b383559ecf776b7fd163dbf2ccb7e2e6bf411b2b12e1829faeb24eb1b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4a8c798a9a3a9d4561a48149c100befa19972dcb5a45fe45276a70763db72c44" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bc55264b383559ecf776b7fd163dbf2ccb7e2e6bf411b2b12e1829faeb24eb1ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9abb3034bd0012dceb3f9e8454d50634f940840e7d575304d0d9564762901c81", - "network": "Cancun", + "lastblockhash": "0x66b9067e526034303e9b04674a7ee87c13fe3df247e3f738ba3f4bcf4c7780d0", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1153,20 +973,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x04", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", "balance": "0x00", @@ -1178,18 +998,43 @@ }, "005-fork=Cancun-blobs_per_tx=(1, 1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b0e8661fb2dc2ae473e9090dcf5d3abd5fd14e66ada856e46ea6b6efdc98d7a6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb0e8661fb2dc2ae473e9090dcf5d3abd5fd14e66ada856e46ea6b6efdc98d7a6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90" + }, "blocks": [ { - "rlp": "0xf904b6f90243a0bcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623a0b70669c100ff59672315e1cdfd553bd2423253a8bb90e49968eed64a0b3c3487a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0", + "rlp": "0xf904b6f90243a06386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0b70669c100ff59672315e1cdfd553bd2423253a8bb90e49968eed64a0b3c3487a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b8cb03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bcc0c0", "blockHeader": { - "parentHash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519", + "parentHash": "0x6386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", "transactionsTrie": "0xb70669c100ff59672315e1cdfd553bd2423253a8bb90e49968eed64a0b3c3487", "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1206,43 +1051,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb5571855148734fc8743d20d8c6225dd7775ad69f297805b67006c441837712f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xb5571855148734fc8743d20d8c6225dd7775ad69f297805b67006c441837712f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f8c8010380078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0f1f4b9be64029d9407c88d2a775cb70706e6045d3855ffa0e6a52f416459e96ea038cf645bc6ff2e307b1fcb647576cef0ad491cc75ddd8e2c1c065be1bac2f2bc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8d287cdd312e847d436f4a6d7bcdee2904d1d640075e0bd671157a0216bb4acc" }, "blocknumber": "1", "transactions": [ @@ -1333,37 +1142,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb889ab3b791963d5340fcdffae8dd61b82e0a82bb46e51229564de5063d875f9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b889ab3b791963d5340fcdffae8dd61b82e0a82bb46e51229564de5063d875f9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb5571855148734fc8743d20d8c6225dd7775ad69f297805b67006c441837712f", - "network": "Cancun", + "lastblockhash": "0x8d287cdd312e847d436f4a6d7bcdee2904d1d640075e0bd671157a0216bb4acc", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1374,20 +1158,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x04", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", "balance": "0x00", @@ -1399,18 +1183,43 @@ }, "006-fork=Cancun-blobs_per_tx=(1, 1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b0e8661fb2dc2ae473e9090dcf5d3abd5fd14e66ada856e46ea6b6efdc98d7a6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb0e8661fb2dc2ae473e9090dcf5d3abd5fd14e66ada856e46ea6b6efdc98d7a6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90" + }, "blocks": [ { - "rlp": "0xf904b7f90243a0bcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623a0e49964fc7dd60ecb206aa113cb975c456fa9bb110b0328f52ef99f5dcd4f23cca080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", + "rlp": "0xf904b7f90243a06386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0e49964fc7dd60ecb206aa113cb975c456fa9bb110b0328f52ef99f5dcd4f23cca080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befb8aa03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480ec0c0", "blockHeader": { - "parentHash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519", + "parentHash": "0x6386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", "transactionsTrie": "0xe49964fc7dd60ecb206aa113cb975c456fa9bb110b0328f52ef99f5dcd4f23cc", "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1427,43 +1236,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0ee7adee80a756fbccf31aebd18996eb63212cc7ffd2f498fb2b811a9c814f5f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x0ee7adee80a756fbccf31aebd18996eb63212cc7ffd2f498fb2b811a9c814f5f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef", - "0x03f8a7010380078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a06d029dd5fbca2185367132cb8c6f2b55eb2e040ff2ef329ec5862c01282eac2fa03d8f5297c5e84d8bac8ae590d1c8fb939473cbcdc0db52310a2108b9b47d480e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x14b1c27b72f67e4df4befd993d0a9328ec88c892b0a543fc5ed7a62241922b38" }, "blocknumber": "1", "transactions": [ @@ -1554,37 +1327,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb889ab3b791963d5340fcdffae8dd61b82e0a82bb46e51229564de5063d875f9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b889ab3b791963d5340fcdffae8dd61b82e0a82bb46e51229564de5063d875f9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0ee7adee80a756fbccf31aebd18996eb63212cc7ffd2f498fb2b811a9c814f5f", - "network": "Cancun", + "lastblockhash": "0x14b1c27b72f67e4df4befd993d0a9328ec88c892b0a543fc5ed7a62241922b38", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1595,20 +1343,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x04", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", "balance": "0x00", @@ -1620,18 +1368,43 @@ }, "007-fork=Cancun-blobs_per_tx=(1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04921aa9e0c218328161dfc3fddac975ac7a689fef2a9d6ef2661e23de857e439a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4921aa9e0c218328161dfc3fddac975ac7a689fef2a9d6ef2661e23de857e439", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643" + }, "blocks": [ { - "rlp": "0xf903e8f90242a00b0079a0cea7cfccb5400f0bc32965efef73d6508d6acff00c4509c0dccdf1a0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "rlp": "0xf903e8f90242a07947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a027524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019eb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "blockHeader": { - "parentHash": "0x0b0079a0cea7cfccb5400f0bc32965efef73d6508d6acff00c4509c0dccdf1a0", + "parentHash": "0x7947be75a3d6599ffe386405f119685e2625a10c27cbdd913a8f3a8ecc34d643", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x27524ed598ec89039c2cef9bda45833e28f41ecfad76636b0abbac59b15e4f76", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1648,39 +1421,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x33f41a09ee26052ccd1968e5efa8065f6e727732c4a0093b3e11b7b0ae8dbb91" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0b0079a0cea7cfccb5400f0bc32965efef73d6508d6acff00c4509c0dccdf1a0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0x33f41a09ee26052ccd1968e5efa8065f6e727732c4a0093b3e11b7b0ae8dbb91", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf9f600373c88f2621eff2f6190e14b8d354fd420c5cd7a197e416edbfaff818f" }, "blocknumber": "1", "transactions": [ @@ -1749,37 +1490,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd6dd0cf37b7da18775da3cc8ec47c8b7ed04af5ccc9edd2cecf89211193c0213", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0b0079a0cea7cfccb5400f0bc32965efef73d6508d6acff00c4509c0dccdf1a0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d6dd0cf37b7da18775da3cc8ec47c8b7ed04af5ccc9edd2cecf89211193c0213a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x33f41a09ee26052ccd1968e5efa8065f6e727732c4a0093b3e11b7b0ae8dbb91", - "network": "Cancun", + "lastblockhash": "0xf9f600373c88f2621eff2f6190e14b8d354fd420c5cd7a197e416edbfaff818f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1790,20 +1506,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -1815,18 +1531,43 @@ }, "008-fork=Cancun-blobs_per_tx=(1, 1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03a1f6c3320a03486a6011fe26d86eca0c595576aec966fa0b98ea716815742f7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3a1f6c3320a03486a6011fe26d86eca0c595576aec966fa0b98ea716815742f7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x762e117537bbc2ca83a9d40427def7066e70336916ad415416dc2b3f2533711d" + }, "blocks": [ { - "rlp": "0xf9040af90242a0fea39b77a81394b2e03d989f51b4b04fd157dec2c843a8c05621d37966c2a786a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a01f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", + "rlp": "0xf9040af90242a0762e117537bbc2ca83a9d40427def7066e70336916ad415416dc2b3f2533711da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a01f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", "blockHeader": { - "parentHash": "0xfea39b77a81394b2e03d989f51b4b04fd157dec2c843a8c05621d37966c2a786", + "parentHash": "0x762e117537bbc2ca83a9d40427def7066e70336916ad415416dc2b3f2533711d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x1f348970ea56fb49a8bc9aaf59e9aba88e02efa880b9a8a2e3cb5ae4f031ae75", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1843,40 +1584,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x43b848cfa7971fbb50916f08cd2ac95d1892e190af7feb8eefdbe9afe4355183" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfea39b77a81394b2e03d989f51b4b04fd157dec2c843a8c05621d37966c2a786", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0x43b848cfa7971fbb50916f08cd2ac95d1892e190af7feb8eefdbe9afe4355183", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x29f263251c774389264323e02c74fe5725d470c9fc1492319fd0c98d990d5ecb" }, "blocknumber": "1", "transactions": [ @@ -1946,37 +1654,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e930806646011fce2b4bc7847ecf90e699899b8d13d9831343043a67b3b0850", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfea39b77a81394b2e03d989f51b4b04fd157dec2c843a8c05621d37966c2a786" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e930806646011fce2b4bc7847ecf90e699899b8d13d9831343043a67b3b0850a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x43b848cfa7971fbb50916f08cd2ac95d1892e190af7feb8eefdbe9afe4355183", - "network": "Cancun", + "lastblockhash": "0x29f263251c774389264323e02c74fe5725d470c9fc1492319fd0c98d990d5ecb", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1987,20 +1670,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -2012,18 +1695,43 @@ }, "009-fork=Cancun-blobs_per_tx=(1, 1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fe6c9d8f533c6cdc72d0b2f9d6da69ece415883b1fe882a83190c307fe31b00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5fe6c9d8f533c6cdc72d0b2f9d6da69ece415883b1fe882a83190c307fe31b00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x48905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294" + }, "blocks": [ { - "rlp": "0xf9042bf90242a04c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a02016fc4b7cf8bffd29294f803dff69b7a00065813ff7492fed49d666c231c74ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", + "rlp": "0xf9042bf90242a048905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a02016fc4b7cf8bffd29294f803dff69b7a00065813ff7492fed49d666c231c74ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", "blockHeader": { - "parentHash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292", + "parentHash": "0x48905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x2016fc4b7cf8bffd29294f803dff69b7a00065813ff7492fed49d666c231c74e", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2040,41 +1748,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x02fea4883147e844ed847359059aeaa40878b2b4357a07bd580e388c509acf15" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x02fea4883147e844ed847359059aeaa40878b2b4357a07bd580e388c509acf15", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x53656a84e768be71912e271f9422da5b9bd578d06ba7d4c225b77add67bc7d26" }, "blocknumber": "1", "transactions": [ @@ -2145,37 +1819,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4964c94a025a6e9164f3a2c6ac0e501a147f4366063fce7e1089215ad5f465c2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04964c94a025a6e9164f3a2c6ac0e501a147f4366063fce7e1089215ad5f465c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x02fea4883147e844ed847359059aeaa40878b2b4357a07bd580e388c509acf15", - "network": "Cancun", + "lastblockhash": "0x53656a84e768be71912e271f9422da5b9bd578d06ba7d4c225b77add67bc7d26", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2186,20 +1835,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -2211,18 +1860,43 @@ }, "010-fork=Cancun-blobs_per_tx=(1, 1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477" + }, "blocks": [ { - "rlp": "0xf9044cf90242a06396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a092d89ea39c490435e836a2846b5222c12d881b612474758d6afc1d4c95d09eb4a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0", + "rlp": "0xf9044cf90242a0570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a092d89ea39c490435e836a2846b5222c12d881b612474758d6afc1d4c95d09eb4a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb8ec03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2c0c0", "blockHeader": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", + "parentHash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x92d89ea39c490435e836a2846b5222c12d881b612474758d6afc1d4c95d09eb4", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2239,42 +1913,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0da98e2136c950ff620290f57da61a946dbcfa0282b4d014a70a4b9e08abde5a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x0da98e2136c950ff620290f57da61a946dbcfa0282b4d014a70a4b9e08abde5a", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f8e9010280078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0e9476ce242f923f527e67d058a797f8e5031eb988055d5fc1e8260363eb60c71a040e6602db343c002d4322ba14cc9d62798e7148e79e7d1bb8e2e929741d24cf2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x28218102a721e6fc5eda18a150b4cdf370030fc24e49a3ca7249d9683eab76f2" }, "blocknumber": "1", "transactions": [ @@ -2346,37 +1985,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0da98e2136c950ff620290f57da61a946dbcfa0282b4d014a70a4b9e08abde5a", - "network": "Cancun", + "lastblockhash": "0x28218102a721e6fc5eda18a150b4cdf370030fc24e49a3ca7249d9683eab76f2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2387,20 +2001,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -2412,18 +2026,43 @@ }, "011-fork=Cancun-blobs_per_tx=(1, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fe6c9d8f533c6cdc72d0b2f9d6da69ece415883b1fe882a83190c307fe31b00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5fe6c9d8f533c6cdc72d0b2f9d6da69ece415883b1fe882a83190c307fe31b00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x48905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294" + }, "blocks": [ { - "rlp": "0xf9042cf90242a04c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a042d890b1d5b9bb62a2b3aa6684851b6ec7baabd924915b7b9573fa497188d3a5a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", + "rlp": "0xf9042cf90242a048905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a042d890b1d5b9bb62a2b3aa6684851b6ec7baabd924915b7b9573fa497188d3a5a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", "blockHeader": { - "parentHash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292", + "parentHash": "0x48905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x42d890b1d5b9bb62a2b3aa6684851b6ec7baabd924915b7b9573fa497188d3a5", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2440,41 +2079,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdce1f5c64a15aafd21d0fee52ea09335f2fdc76bb7a2961c3940f48da4508883" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xdce1f5c64a15aafd21d0fee52ea09335f2fdc76bb7a2961c3940f48da4508883", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9ba004b5d9dfe7524c58d0867dd9e2ff8bb79ea39438c6111812a3e8acb17f5d" }, "blocknumber": "1", "transactions": [ @@ -2545,37 +2150,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4964c94a025a6e9164f3a2c6ac0e501a147f4366063fce7e1089215ad5f465c2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04964c94a025a6e9164f3a2c6ac0e501a147f4366063fce7e1089215ad5f465c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdce1f5c64a15aafd21d0fee52ea09335f2fdc76bb7a2961c3940f48da4508883", - "network": "Cancun", + "lastblockhash": "0x9ba004b5d9dfe7524c58d0867dd9e2ff8bb79ea39438c6111812a3e8acb17f5d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2586,20 +2166,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -2611,25 +2191,50 @@ }, "012-fork=Cancun-blobs_per_tx=(1, 2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9044df90242a06396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a088ce10d410ef0495ee105f2091fb5b2891782abe1a06a29ec9aacf73d23bbad0a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", - "blockHeader": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "transactionsTrie": "0x88ce10d410ef0495ee105f2091fb5b2891782abe1a06a29ec9aacf73d23bbad0", - "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xf618", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477" + }, + "blocks": [ + { + "rlp": "0xf9044df90242a0570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a088ce10d410ef0495ee105f2091fb5b2891782abe1a06a29ec9aacf73d23bbad0a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8cb03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312dc0c0", + "blockHeader": { + "parentHash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", + "transactionsTrie": "0x88ce10d410ef0495ee105f2091fb5b2891782abe1a06a29ec9aacf73d23bbad0", + "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xf618", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2639,42 +2244,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x508aeb1e1086dade7389d2322b8f29135f117edf0bb6ba623bee5c5d28706e95" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x508aeb1e1086dade7389d2322b8f29135f117edf0bb6ba623bee5c5d28706e95", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8c8010280078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0f745b5a72a2c990db52b13e7b7827240131b1e67ce876fcf326fa25201644f2ea027c7189e4cf388453094af696515daf8629bcf0e7f02d92dfab462fcc059312d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xce15da346ad0e882b8593a0b9745173968ca1b06fa631034ab25aa6d293a3956" }, "blocknumber": "1", "transactions": [ @@ -2746,37 +2316,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x508aeb1e1086dade7389d2322b8f29135f117edf0bb6ba623bee5c5d28706e95", - "network": "Cancun", + "lastblockhash": "0xce15da346ad0e882b8593a0b9745173968ca1b06fa631034ab25aa6d293a3956", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2787,20 +2332,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -2812,18 +2357,43 @@ }, "013-fork=Cancun-blobs_per_tx=(2, 2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477" + }, "blocks": [ { - "rlp": "0xf9044ef90242a06396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a0eee09f637c5b61bc52e8d6ac6eb8220c07b812d842967964cc0221e744a19e11a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90204b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", + "rlp": "0xf9044ef90242a0570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0eee09f637c5b61bc52e8d6ac6eb8220c07b812d842967964cc0221e744a19e11a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90204b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b8aa03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218befc0c0", "blockHeader": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", + "parentHash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0xeee09f637c5b61bc52e8d6ac6eb8220c07b812d842967964cc0221e744a19e11", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2840,42 +2410,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9b293a85217d7d443c9f4bc8110bb02526e69c66fef046c8a04498e90a681e8b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9b293a85217d7d443c9f4bc8110bb02526e69c66fef046c8a04498e90a681e8b", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f8a7010280078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0319b3a758674966286b9714ce204f804e394041edc091961add54b93d4d6635ea01870b18c3164fb4d9d987f32761df6db1d94aa05c6785dd7cbf905b9fb218bef" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1b84a6f483c410bd4104e67d46fa803e740e52242c14c83a9ad9a4d9bf6b039f" }, "blocknumber": "1", "transactions": [ @@ -2947,37 +2482,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9b293a85217d7d443c9f4bc8110bb02526e69c66fef046c8a04498e90a681e8b", - "network": "Cancun", + "lastblockhash": "0x1b84a6f483c410bd4104e67d46fa803e740e52242c14c83a9ad9a4d9bf6b039f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2988,20 +2498,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -3013,18 +2523,43 @@ }, "014-fork=Cancun-blobs_per_tx=(1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a082f50cde5f2aab972d5370e69056feaef8557e601dd3bfa1b84ee9505c1ff98aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x82f50cde5f2aab972d5370e69056feaef8557e601dd3bfa1b84ee9505c1ff98a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x25fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565" + }, "blocks": [ { - "rlp": "0xf9035ef90242a0680e7ad7aa2086f773aca976e8a353af4d88710dce10ac4a79c69d5743559c7ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "rlp": "0xf9035ef90242a025fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a07a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90114b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "blockHeader": { - "parentHash": "0x680e7ad7aa2086f773aca976e8a353af4d88710dce10ac4a79c69d5743559c7b", + "parentHash": "0x25fbef7ac7a23074b8d4d1c57b0b24aa6cf149fdf725342252a60a14fe558565", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0x7a65a7d509214f67e3472a6a5501dc20f1c689b3d744d0b6bb3f3f9988710f41", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3041,37 +2576,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaf37310bd3df13baa69e5502eea813e01127e6fa60f998f1fc9577c45ac86394" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x680e7ad7aa2086f773aca976e8a353af4d88710dce10ac4a79c69d5743559c7b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xe0000", - "blockHash": "0xaf37310bd3df13baa69e5502eea813e01127e6fa60f998f1fc9577c45ac86394", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5e4059d49cd65647f7f80947f52ccdabad6b40b87d4932a7a64ffb6e0d8eaaf8" }, "blocknumber": "1", "transactions": [ @@ -3120,37 +2625,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3664f5feec05a68c5ea1d2eec3b6f65043e9a40d59e210373a83d4e5388afb2e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x680e7ad7aa2086f773aca976e8a353af4d88710dce10ac4a79c69d5743559c7b" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03664f5feec05a68c5ea1d2eec3b6f65043e9a40d59e210373a83d4e5388afb2ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xaf37310bd3df13baa69e5502eea813e01127e6fa60f998f1fc9577c45ac86394", - "network": "Cancun", + "lastblockhash": "0x5e4059d49cd65647f7f80947f52ccdabad6b40b87d4932a7a64ffb6e0d8eaaf8", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3161,20 +2641,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -3186,18 +2666,43 @@ }, "015-fork=Cancun-blobs_per_tx=(1, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bc3c2ee7952e2d04c31de55221cc1ea2a6f339a648fc4527e2b19411394dd4c0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbc3c2ee7952e2d04c31de55221cc1ea2a6f339a648fc4527e2b19411394dd4c0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31" + }, "blocks": [ { - "rlp": "0xf90380f90242a03fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", + "rlp": "0xf90380f90242a0d40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a097c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", "blockHeader": { - "parentHash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8", + "parentHash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0x97c81e3a33952f445d489fefe28ca5dd7f3e11dd8836f3cec1517fd4f84b9ddb", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3214,38 +2719,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x716b8d17903753b5d096ceb6dd04cd459d0a1e0b5dc3eb2de461c24542a457f6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0x716b8d17903753b5d096ceb6dd04cd459d0a1e0b5dc3eb2de461c24542a457f6", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc8263f85dc5b063167f6ec0dcbfbee340cade62ba0e9c64fbd0f4fc92f0651b8" }, "blocknumber": "1", "transactions": [ @@ -3295,37 +2769,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa8776d30e0adde560199edf694174d937abaa1e87bb2496c638003112dfb2adc", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a8776d30e0adde560199edf694174d937abaa1e87bb2496c638003112dfb2adca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x716b8d17903753b5d096ceb6dd04cd459d0a1e0b5dc3eb2de461c24542a457f6", - "network": "Cancun", + "lastblockhash": "0xc8263f85dc5b063167f6ec0dcbfbee340cade62ba0e9c64fbd0f4fc92f0651b8", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3336,20 +2785,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -3361,18 +2810,43 @@ }, "016-fork=Cancun-blobs_per_tx=(1, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0922b27189738268fe7ca42cc0f4f1d92b2122dc406fc84c6b79ccb7ed148b369a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x922b27189738268fe7ca42cc0f4f1d92b2122dc406fc84c6b79ccb7ed148b369", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0b0136012adc97b9aaeba429a0e727d4d530640437372ad185db6f71d81bc671" + }, "blocks": [ { - "rlp": "0xf903a1f90242a09ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa01ee6b5040a0afb8c01dd4973e7816f11f25c85d45f12fa9a2986ac5ee901408ba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", + "rlp": "0xf903a1f90242a00b0136012adc97b9aaeba429a0e727d4d530640437372ad185db6f71d81bc671a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a01ee6b5040a0afb8c01dd4973e7816f11f25c85d45f12fa9a2986ac5ee901408ba010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", "blockHeader": { - "parentHash": "0x9ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fc", + "parentHash": "0x0b0136012adc97b9aaeba429a0e727d4d530640437372ad185db6f71d81bc671", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0x1ee6b5040a0afb8c01dd4973e7816f11f25c85d45f12fa9a2986ac5ee901408b", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3389,39 +2863,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc16d7fe7d52bb6ef35c80987b6057dabcec0f9b09c32bf9d8ebc08901cab5c80" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fc", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0xc16d7fe7d52bb6ef35c80987b6057dabcec0f9b09c32bf9d8ebc08901cab5c80", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6ed4cfdabf7b32bc02d5234d3e3c78c942a509f1c6336521152f343070a3bffe" }, "blocknumber": "1", "transactions": [ @@ -3472,37 +2914,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x74cdfa02f6e86b17174e155e0b1f38c173f3e6438b1934577467ca15b04be4c0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fc" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a074cdfa02f6e86b17174e155e0b1f38c173f3e6438b1934577467ca15b04be4c0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc16d7fe7d52bb6ef35c80987b6057dabcec0f9b09c32bf9d8ebc08901cab5c80", - "network": "Cancun", + "lastblockhash": "0x6ed4cfdabf7b32bc02d5234d3e3c78c942a509f1c6336521152f343070a3bffe", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3513,20 +2930,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -3538,18 +2955,43 @@ }, "017-fork=Cancun-blobs_per_tx=(1, 4)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07a3c75eded97bf86907f1f4c497ae2200a1c415065938ff428e049d09f0df6dda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7a3c75eded97bf86907f1f4c497ae2200a1c415065938ff428e049d09f0df6dd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249" + }, "blocks": [ { - "rlp": "0xf903c2f90242a069128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa0b30a74693e97ae1c8c7385b644494c47b724e9605c55c02c8d73e954102f73efa010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", + "rlp": "0xf903c2f90242a0d3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0b30a74693e97ae1c8c7385b644494c47b724e9605c55c02c8d73e954102f73efa010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", "blockHeader": { - "parentHash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7", + "parentHash": "0xd3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0xb30a74693e97ae1c8c7385b644494c47b724e9605c55c02c8d73e954102f73ef", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3566,40 +3008,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd2f2a0015b959178ff22dd08b464993dcd1fd521cdff0a700e9ffb9f931a46f2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd2f2a0015b959178ff22dd08b464993dcd1fd521cdff0a700e9ffb9f931a46f2", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9e9bf367ee928b2d01278b8f75dade1b1bdcb2565f029ca8e24ae30ff2b245f6" }, "blocknumber": "1", "transactions": [ @@ -3651,37 +3060,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf0c9cab9e9133eb41ca6155a0244d706523d826ec1367651da89fee0b7c1295c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f0c9cab9e9133eb41ca6155a0244d706523d826ec1367651da89fee0b7c1295ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd2f2a0015b959178ff22dd08b464993dcd1fd521cdff0a700e9ffb9f931a46f2", - "network": "Cancun", + "lastblockhash": "0x9e9bf367ee928b2d01278b8f75dade1b1bdcb2565f029ca8e24ae30ff2b245f6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3692,20 +3076,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -3717,18 +3101,43 @@ }, "018-fork=Cancun-blobs_per_tx=(1, 5)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9" + }, "blocks": [ { - "rlp": "0xf903e5f90242a0df18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa02e9cf64392a4fe9d3b778a57121cb9955d6bbd1ab320c686eec0e8d02df887e5a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0", + "rlp": "0xf903e5f90242a053192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a02e9cf64392a4fe9d3b778a57121cb9955d6bbd1ab320c686eec0e8d02df887e5a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ab9010e03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5ec0c0", "blockHeader": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", + "parentHash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0x2e9cf64392a4fe9d3b778a57121cb9955d6bbd1ab320c686eec0e8d02df887e5", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3745,41 +3154,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4e1bcd3786351f434fa21a2a3259d1742e2e4de586dbea70f1428929aa3f0fc8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x4e1bcd3786351f434fa21a2a3259d1742e2e4de586dbea70f1428929aa3f0fc8", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "0x03f9010a010180078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a03b2d2b489ff492b72d5a89673af2a2840830ead9d6cf2544e444385818f4db97a03ba1a6691a91deb8a72304e4986800f766d95f552fceb901a37c4f913f9a1f5e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb25c3c67cf882093a36cb73c27868cd817aaf2068e047a78c04eb677747d714a" }, "blocknumber": "1", "transactions": [ @@ -3832,37 +3207,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4e1bcd3786351f434fa21a2a3259d1742e2e4de586dbea70f1428929aa3f0fc8", - "network": "Cancun", + "lastblockhash": "0xb25c3c67cf882093a36cb73c27868cd817aaf2068e047a78c04eb677747d714a", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -3873,20 +3223,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -3898,18 +3248,43 @@ }, "019-fork=Cancun-blobs_per_tx=(2, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0922b27189738268fe7ca42cc0f4f1d92b2122dc406fc84c6b79ccb7ed148b369a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x922b27189738268fe7ca42cc0f4f1d92b2122dc406fc84c6b79ccb7ed148b369", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0b0136012adc97b9aaeba429a0e727d4d530640437372ad185db6f71d81bc671" + }, "blocks": [ { - "rlp": "0xf903a2f90242a09ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90158b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", + "rlp": "0xf903a2f90242a00b0136012adc97b9aaeba429a0e727d4d530640437372ad185db6f71d81bc671a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0f8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90158b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", "blockHeader": { - "parentHash": "0x9ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fc", + "parentHash": "0x0b0136012adc97b9aaeba429a0e727d4d530640437372ad185db6f71d81bc671", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0xf8394831df420eef1722950e31ff1f2aa90b97ec0eb98526069781f2a8ba7029", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3926,39 +3301,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x142bea101d1a8e0e554023fa3374e4d3e486efb938ef4730296f55c50693edff" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fc", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0x142bea101d1a8e0e554023fa3374e4d3e486efb938ef4730296f55c50693edff", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9c0d0f45f8ce03a5df8a4fadad137f99a5f410925be79274c0ba9384936eb447" }, "blocknumber": "1", "transactions": [ @@ -4009,37 +3352,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x74cdfa02f6e86b17174e155e0b1f38c173f3e6438b1934577467ca15b04be4c0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fc" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a074cdfa02f6e86b17174e155e0b1f38c173f3e6438b1934577467ca15b04be4c0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x142bea101d1a8e0e554023fa3374e4d3e486efb938ef4730296f55c50693edff", - "network": "Cancun", + "lastblockhash": "0x9c0d0f45f8ce03a5df8a4fadad137f99a5f410925be79274c0ba9384936eb447", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4050,20 +3368,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -4075,25 +3393,50 @@ }, "020-fork=Cancun-blobs_per_tx=(2, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf903c3f90242a069128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa0e3f992c2683a4ad8e3adcb4c32da05aacd7a4afe4f01d9ba15f7a63e67a70abca010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", - "blockHeader": { - "parentHash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "transactionsTrie": "0xe3f992c2683a4ad8e3adcb4c32da05aacd7a4afe4f01d9ba15f7a63e67a70abc", - "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa410", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07a3c75eded97bf86907f1f4c497ae2200a1c415065938ff428e049d09f0df6dda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7a3c75eded97bf86907f1f4c497ae2200a1c415065938ff428e049d09f0df6dd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249" + }, + "blocks": [ + { + "rlp": "0xf903c3f90242a0d3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0e3f992c2683a4ad8e3adcb4c32da05aacd7a4afe4f01d9ba15f7a63e67a70abca010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", + "blockHeader": { + "parentHash": "0xd3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", + "transactionsTrie": "0xe3f992c2683a4ad8e3adcb4c32da05aacd7a4afe4f01d9ba15f7a63e67a70abc", + "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa410", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4103,40 +3446,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x708f9ea47c4bf9ff6b9d2e11671d85416684da72becd1fade5c1292669deb74b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x708f9ea47c4bf9ff6b9d2e11671d85416684da72becd1fade5c1292669deb74b", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8b2a974f13307d07a4149b3709c6921c568fb3b8e2121c1eb8149423d47dba5c" }, "blocknumber": "1", "transactions": [ @@ -4188,37 +3498,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf0c9cab9e9133eb41ca6155a0244d706523d826ec1367651da89fee0b7c1295c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f0c9cab9e9133eb41ca6155a0244d706523d826ec1367651da89fee0b7c1295ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x708f9ea47c4bf9ff6b9d2e11671d85416684da72becd1fade5c1292669deb74b", - "network": "Cancun", + "lastblockhash": "0x8b2a974f13307d07a4149b3709c6921c568fb3b8e2121c1eb8149423d47dba5c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4229,20 +3514,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -4254,18 +3539,43 @@ }, "021-fork=Cancun-blobs_per_tx=(2, 4)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9" + }, "blocks": [ { - "rlp": "0xf903e4f90242a0df18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa0c15ff0dcf91c5968eef6e83ba0b7accc5bd058499f333ff716eda2aa52772290a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", + "rlp": "0xf903e4f90242a053192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0c15ff0dcf91c5968eef6e83ba0b7accc5bd058499f333ff716eda2aa52772290a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8ec03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261c0c0", "blockHeader": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", + "parentHash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0xc15ff0dcf91c5968eef6e83ba0b7accc5bd058499f333ff716eda2aa52772290", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4282,41 +3592,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9aa25f83ea965edbb338b563505e91de7e343232b26da9065b65d8c177e538a3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x9aa25f83ea965edbb338b563505e91de7e343232b26da9065b65d8c177e538a3", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8e9010180078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0a9f1ef3f0dcf6833817f20e660ff751b5ede0573c495c2f707ba9bd7f8d6639fa072b7268169653fa15613ecee69def2deef2562057b65bf753c23f3e480609261" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x73fdd8998fe27ef9fb18f9ff54e3d6536efd580f4175b8a3637deba92e2870d8" }, "blocknumber": "1", "transactions": [ @@ -4369,37 +3645,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9aa25f83ea965edbb338b563505e91de7e343232b26da9065b65d8c177e538a3", - "network": "Cancun", + "lastblockhash": "0x73fdd8998fe27ef9fb18f9ff54e3d6536efd580f4175b8a3637deba92e2870d8", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4410,20 +3661,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -4435,18 +3686,43 @@ }, "022-fork=Cancun-blobs_per_tx=(3, 3)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9" + }, "blocks": [ { - "rlp": "0xf903e4f90242a0df18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa01273994453dcd4ac2a1d3f35ea06ef5f505c6fc508ad1e4d7024a6f1a7d3d2eea010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", + "rlp": "0xf903e4f90242a053192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a01273994453dcd4ac2a1d3f35ea06ef5f505c6fc508ad1e4d7024a6f1a7d3d2eea010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8cb03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391c0c0", "blockHeader": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", + "parentHash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0x1273994453dcd4ac2a1d3f35ea06ef5f505c6fc508ad1e4d7024a6f1a7d3d2ee", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4463,41 +3739,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7f544a907a192d6b4a0599f22637cce7b10ffb2f1b3b7b33e2032e12876ee085" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x7f544a907a192d6b4a0599f22637cce7b10ffb2f1b3b7b33e2032e12876ee085", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8c8010180078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a08e5455a1dfad86ef676e7deeda1aa045e8e1d0b1c62bff9a8720b8dc91de2746a05f2e35151ad3640d2724257c65cfabe33c033897ba27b10232a29be4033ac391" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x927af9314312067bc7113e728f5bdc8a987dd4bafe713454961a178665b71773" }, "blocknumber": "1", "transactions": [ @@ -4550,37 +3792,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7f544a907a192d6b4a0599f22637cce7b10ffb2f1b3b7b33e2032e12876ee085", - "network": "Cancun", + "lastblockhash": "0x927af9314312067bc7113e728f5bdc8a987dd4bafe713454961a178665b71773", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4591,20 +3808,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -4616,18 +3833,43 @@ }, "023-fork=Cancun-blobs_per_tx=(1,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7fab0d9bb5daf1b7c053b0c3b218fedef9522118a58e8f067965f20c9626f139", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444" + }, "blocks": [ { - "rlp": "0xf902d3f90242a06bfbb73d5604b7af2fc509172ef82609bc308b6b650b861e77fa1852f4356a64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a07832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", "blockHeader": { - "parentHash": "0x6bfbb73d5604b7af2fc509172ef82609bc308b6b650b861e77fa1852f4356a64", + "parentHash": "0x7832176e4fd6720837c84e01c215eb3492bfec0d85371f492b49272f29aa5444", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4644,35 +3886,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa7b6fffda8897fe9c7969d7c54f89fedf71c4b7bd3e55d9815bd1c93f5ec6b36" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6bfbb73d5604b7af2fc509172ef82609bc308b6b650b861e77fa1852f4356a64", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xa7b6fffda8897fe9c7969d7c54f89fedf71c4b7bd3e55d9815bd1c93f5ec6b36", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x698ccf075600fd5996a35b562b661f5c8635b6381a4457df302492d9341ab22a" }, "blocknumber": "1", "transactions": [ @@ -4701,37 +3915,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4f03f07973662fdc67db104e45cb36acbc90290584681bcf68c57a4f66b20669", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6bfbb73d5604b7af2fc509172ef82609bc308b6b650b861e77fa1852f4356a64" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04f03f07973662fdc67db104e45cb36acbc90290584681bcf68c57a4f66b20669a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa7b6fffda8897fe9c7969d7c54f89fedf71c4b7bd3e55d9815bd1c93f5ec6b36", - "network": "Cancun", + "lastblockhash": "0x698ccf075600fd5996a35b562b661f5c8635b6381a4457df302492d9341ab22a", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4742,20 +3931,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x00", @@ -4767,18 +3956,43 @@ }, "024-fork=Cancun-blobs_per_tx=(2,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0efaecd2196ee9aba742027776cef97b4aded534d6c56ff14fd32b03afffe56dea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xefaecd2196ee9aba742027776cef97b4aded534d6c56ff14fd32b03afffe56de", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0fa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", + "rlp": "0xf902f5f90242a07aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", "blockHeader": { - "parentHash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7", + "parentHash": "0x7aa6303b86a9e819c94c97288f6de093125a4b6fb31201ed47215ec946b400be", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", "transactionsTrie": "0xea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855c", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4795,36 +4009,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x356a6130ef00c5a890196aa17052b0e05019d683f98b65b988091827a4d225bb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xe0000", - "blockHash": "0x356a6130ef00c5a890196aa17052b0e05019d683f98b65b988091827a4d225bb", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8cfe2e5ec2f7d6e3134eb5c05eec42c50728e653f3815a9b25e0f75da580531b" }, "blocknumber": "1", "transactions": [ @@ -4854,37 +4039,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa9ed3d10a4db322ea2c29732cac8806881d01fe5bb44ab12ae942d82e55c82b5", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfa9b03683261fe73da6b8561892844fa1189edbed78d8a4ed981a75d2a89d1b7" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a9ed3d10a4db322ea2c29732cac8806881d01fe5bb44ab12ae942d82e55c82b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x356a6130ef00c5a890196aa17052b0e05019d683f98b65b988091827a4d225bb", - "network": "Cancun", + "lastblockhash": "0x8cfe2e5ec2f7d6e3134eb5c05eec42c50728e653f3815a9b25e0f75da580531b", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -4895,20 +4055,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x00", @@ -4920,18 +4080,43 @@ }, "025-fork=Cancun-blobs_per_tx=(3,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a005c6118da775f69a0db26fcf363a00b63e4ffd32bb19215721375d4f981d12f2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x05c6118da775f69a0db26fcf363a00b63e4ffd32bb19215721375d4f981d12f2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x179b20ae45f180d6cc262ead24bd5e028c2b8d06b6daa8caaf887a578dce6f9d" + }, "blocks": [ { - "rlp": "0xf90316f90242a08b47433a89fc6272a765a2def301576a3294653b2896a1477bbe405c19d5546ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", + "rlp": "0xf90316f90242a0179b20ae45f180d6cc262ead24bd5e028c2b8d06b6daa8caaf887a578dce6f9da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", "blockHeader": { - "parentHash": "0x8b47433a89fc6272a765a2def301576a3294653b2896a1477bbe405c19d5546b", + "parentHash": "0x179b20ae45f180d6cc262ead24bd5e028c2b8d06b6daa8caaf887a578dce6f9d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", "transactionsTrie": "0x3e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4948,37 +4133,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6207249bac3f39db0a6b5f3db26d3f237ed3a5ea3af277af720623cd8aa76913" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8b47433a89fc6272a765a2def301576a3294653b2896a1477bbe405c19d5546b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0x6207249bac3f39db0a6b5f3db26d3f237ed3a5ea3af277af720623cd8aa76913", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa94fce2580e8aa85a3d0522c51850bfd85d19541f0b7ee7ac57fed76b12b639b" }, "blocknumber": "1", "transactions": [ @@ -5009,37 +4164,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc375881f0a5413bc78018cd5cd1c1e53b1a2c7191d3a80303cc39a8e801ec7e8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8b47433a89fc6272a765a2def301576a3294653b2896a1477bbe405c19d5546b" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c375881f0a5413bc78018cd5cd1c1e53b1a2c7191d3a80303cc39a8e801ec7e8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6207249bac3f39db0a6b5f3db26d3f237ed3a5ea3af277af720623cd8aa76913", - "network": "Cancun", + "lastblockhash": "0xa94fce2580e8aa85a3d0522c51850bfd85d19541f0b7ee7ac57fed76b12b639b", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -5050,20 +4180,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x00", @@ -5075,18 +4205,43 @@ }, "026-fork=Cancun-blobs_per_tx=(4,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02ea1498386a0a5fc69eb550bf2b9e6fa79ebe062762299cfa740a88a4acbe090a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2ea1498386a0a5fc69eb550bf2b9e6fa79ebe062762299cfa740a88a4acbe090", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0fc263f3973fe041b888844a8fdaf50a4059da79eeb89cda8571c87c9a09e561" + }, "blocks": [ { - "rlp": "0xf90337f90242a079cf03d903e780d2e5a31874d1e93e81d12bb78ef2b5a076d4742f6000636348a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", + "rlp": "0xf90337f90242a00fc263f3973fe041b888844a8fdaf50a4059da79eeb89cda8571c87c9a09e561a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", "blockHeader": { - "parentHash": "0x79cf03d903e780d2e5a31874d1e93e81d12bb78ef2b5a076d4742f6000636348", + "parentHash": "0x0fc263f3973fe041b888844a8fdaf50a4059da79eeb89cda8571c87c9a09e561", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", "transactionsTrie": "0x523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0a", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5103,38 +4258,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaa6cece8cb0069f8228768def5472d0b9f03d365fd96d9d0775ef78514ebe542" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x79cf03d903e780d2e5a31874d1e93e81d12bb78ef2b5a076d4742f6000636348", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0xaa6cece8cb0069f8228768def5472d0b9f03d365fd96d9d0775ef78514ebe542", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb98dadf11e16b331b9679f8c6c58dcef3e2c5d2bb57f5252a7e2f3bb9a98ef2b" }, "blocknumber": "1", "transactions": [ @@ -5166,37 +4290,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xdbb76df98d545dbfef390213de73cd387de307fd5143f87f4c46e35e9ad72844", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x79cf03d903e780d2e5a31874d1e93e81d12bb78ef2b5a076d4742f6000636348" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dbb76df98d545dbfef390213de73cd387de307fd5143f87f4c46e35e9ad72844a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xaa6cece8cb0069f8228768def5472d0b9f03d365fd96d9d0775ef78514ebe542", - "network": "Cancun", + "lastblockhash": "0xb98dadf11e16b331b9679f8c6c58dcef3e2c5d2bb57f5252a7e2f3bb9a98ef2b", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -5207,20 +4306,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x00", @@ -5232,18 +4331,43 @@ }, "027-fork=Cancun-blobs_per_tx=(5,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c1cfadfe8c473c009418198e0dccf71c7b93f1c47fe5f4c18a3eea2b254cba30a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc1cfadfe8c473c009418198e0dccf71c7b93f1c47fe5f4c18a3eea2b254cba30", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1eaac74ff015200d0664928b42e1155332318da91b7618f67d33280ec1ef17e4" + }, "blocks": [ { - "rlp": "0xf9035bf90242a02ba73f0dacef952613dd2635adf79d372799f2d8ea3e86b234a73d864c27a010a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", + "rlp": "0xf9035bf90242a01eaac74ff015200d0664928b42e1155332318da91b7618f67d33280ec1ef17e4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", "blockHeader": { - "parentHash": "0x2ba73f0dacef952613dd2635adf79d372799f2d8ea3e86b234a73d864c27a010", + "parentHash": "0x1eaac74ff015200d0664928b42e1155332318da91b7618f67d33280ec1ef17e4", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", "transactionsTrie": "0xc3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5260,39 +4384,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbe436b4052b735f94a7f85be002bb95e10687df65d6678d9f186a86f27561258" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2ba73f0dacef952613dd2635adf79d372799f2d8ea3e86b234a73d864c27a010", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xbe436b4052b735f94a7f85be002bb95e10687df65d6678d9f186a86f27561258", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x194ae1a923b7926c851f043865c5d09317a601ea197adee195b52f863831542d" }, "blocknumber": "1", "transactions": [ @@ -5321,41 +4413,16 @@ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1420fb1f02c2e1c56aebfa051c996086191c979c6e738e81b84018c3d7ef5ee2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2ba73f0dacef952613dd2635adf79d372799f2d8ea3e86b234a73d864c27a010" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01420fb1f02c2e1c56aebfa051c996086191c979c6e738e81b84018c3d7ef5ee2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbe436b4052b735f94a7f85be002bb95e10687df65d6678d9f186a86f27561258", - "network": "Cancun", + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x194ae1a923b7926c851f043865c5d09317a601ea197adee195b52f863831542d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -5366,20 +4433,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x00", @@ -5391,18 +4458,43 @@ }, "028-fork=Cancun-blobs_per_tx=(6,)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e8d9996c69355cd3c00eab594c3011ac2c54ac33da3b34ab1b4e4ada9b1f8d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5e8d9996c69355cd3c00eab594c3011ac2c54ac33da3b34ab1b4e4ada9b1f8d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7dcb4e54d91479cc89a547c25ed8f74ab94a6883ea67b6b7ee33d85b83928990" + }, "blocks": [ { - "rlp": "0xf9037cf90242a099ba4e89093095cfaec2ccea7dd9c3cb9b3558ee866c4b37f493c49687d25291a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41a0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", + "rlp": "0xf9037cf90242a07dcb4e54d91479cc89a547c25ed8f74ab94a6883ea67b6b7ee33d85b83928990a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252a0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", "blockHeader": { - "parentHash": "0x99ba4e89093095cfaec2ccea7dd9c3cb9b3558ee866c4b37f493c49687d25291", + "parentHash": "0x7dcb4e54d91479cc89a547c25ed8f74ab94a6883ea67b6b7ee33d85b83928990", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", + "stateRoot": "0xc4e1946638e354f510a20898a1746fc3f047c089153990ae220f41fe8e993252", "transactionsTrie": "0xe1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580d", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5419,40 +4511,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5d0f00bc904ab266a0cca36507c1d812f2072146076a1b118da2b8825270528f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x99ba4e89093095cfaec2ccea7dd9c3cb9b3558ee866c4b37f493c49687d25291", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ee68bbca051dcf227d0c169492f7996091dd04b502013a72662c015d9c7de41", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x5d0f00bc904ab266a0cca36507c1d812f2072146076a1b118da2b8825270528f", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x879a4e2b20c33127668ba1d7cc5358d79c3cd8035dffd96301e9eaa6329819b8" }, "blocknumber": "1", "transactions": [ @@ -5486,37 +4545,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x557ae5980ebdf196c5872d6161475f2ea30c8125bc0b93fe4f7fb8abb9f88250", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x99ba4e89093095cfaec2ccea7dd9c3cb9b3558ee866c4b37f493c49687d25291" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0557ae5980ebdf196c5872d6161475f2ea30c8125bc0b93fe4f7fb8abb9f88250a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5d0f00bc904ab266a0cca36507c1d812f2072146076a1b118da2b8825270528f", - "network": "Cancun", + "lastblockhash": "0x879a4e2b20c33127668ba1d7cc5358d79c3cd8035dffd96301e9eaa6329819b8", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -5527,20 +4561,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x00", @@ -5552,18 +4586,43 @@ }, "029-fork=Cancun-blobs_per_tx=(2, 1, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f81ed6014a915f9c624b189d8d6ce193e1767e0900fe3ae473efea35fbf6fd9ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf81ed6014a915f9c624b189d8d6ce193e1767e0900fe3ae473efea35fbf6fd9e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5236e1c6bcc50f270f78cf3eeb527a1b717e4e87b321a36834718307d92bf460" + }, "blocks": [ { - "rlp": "0xf9051ff90243a0bde2b48df374d2f91280b57a3499ab88710623f0b00854d38564286ee689812fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0378741ed2378aa6cbf05a5bb785dcc61578a138a856f5de6b6b973dfa1041bc1a09c43bd2e00a11464e9476f9d3c9ecfedeb1a665a8353183329137c3e49a2ba0da00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", + "rlp": "0xf9051ff90243a05236e1c6bcc50f270f78cf3eeb527a1b717e4e87b321a36834718307d92bf460a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bda09c43bd2e00a11464e9476f9d3c9ecfedeb1a665a8353183329137c3e49a2ba0da00fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083019a280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f902d4b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdeb88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139c0c0", "blockHeader": { - "parentHash": "0xbde2b48df374d2f91280b57a3499ab88710623f0b00854d38564286ee689812f", + "parentHash": "0x5236e1c6bcc50f270f78cf3eeb527a1b717e4e87b321a36834718307d92bf460", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x378741ed2378aa6cbf05a5bb785dcc61578a138a856f5de6b6b973dfa1041bc1", + "stateRoot": "0x9406ef36be4f44153414bf7d584e2d66e9610f4246a41502503e92f8b42165bd", "transactionsTrie": "0x9c43bd2e00a11464e9476f9d3c9ecfedeb1a665a8353183329137c3e49a2ba0d", "receiptTrie": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5580,44 +4639,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x60e7cc777aaeb737ee08b6ca37ffa3cdc5c2f84840467c6d823a7d32cd064b28" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbde2b48df374d2f91280b57a3499ab88710623f0b00854d38564286ee689812f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x378741ed2378aa6cbf05a5bb785dcc61578a138a856f5de6b6b973dfa1041bc1", - "receiptsRoot": "0x0fb518c7915e8be37f2aa095af144d5e9a121e4dc65b20bbe109b9a001da1cb0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x19a28", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x60e7cc777aaeb737ee08b6ca37ffa3cdc5c2f84840467c6d823a7d32cd064b28", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0903154f2ee69dbdc29f7369ac4270a31d32b8af6c28959d5c6b2b2ba696e9e7da06989cf772024d3efa30b4b99bc1e1dee27813964f39448d07377537a2681d139" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x263b2c280bd1e6c9cd7460a5a3f674735dc4b33427903a29a12e08c0d0f8c91c" }, "blocknumber": "1", "transactions": [ @@ -5727,37 +4749,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1eed31cff66dd08d9c73325b30fc07411dde6382ca4e9cdd37475e2be1ae334e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbde2b48df374d2f91280b57a3499ab88710623f0b00854d38564286ee689812f" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01eed31cff66dd08d9c73325b30fc07411dde6382ca4e9cdd37475e2be1ae334ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x60e7cc777aaeb737ee08b6ca37ffa3cdc5c2f84840467c6d823a7d32cd064b28", - "network": "Cancun", + "lastblockhash": "0x263b2c280bd1e6c9cd7460a5a3f674735dc4b33427903a29a12e08c0d0f8c91c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -5768,20 +4765,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x05", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x05", "balance": "0x00", @@ -5793,18 +4790,43 @@ }, "030-fork=Cancun-blobs_per_tx=(2, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a027f0e42ce38e5b5d22ffa0443312b27cdce7a43407ea6e4d679e3d2e87e1f394a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x27f0e42ce38e5b5d22ffa0443312b27cdce7a43407ea6e4d679e3d2e87e1f394", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd82df2c701c08852da7f7d1a274ad3ad7fe75511f85787de4b7f17769b7113b6" + }, "blocks": [ { - "rlp": "0xf90495f90243a04a8c798a9a3a9d4561a48149c100befa19972dcb5a45fe45276a70763db72c44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623a0395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597ba080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "rlp": "0xf90495f90243a0d82df2c701c08852da7f7d1a274ad3ad7fe75511f85787de4b7f17769b7113b6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a0395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597ba080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9024ab8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "blockHeader": { - "parentHash": "0x4a8c798a9a3a9d4561a48149c100befa19972dcb5a45fe45276a70763db72c44", + "parentHash": "0xd82df2c701c08852da7f7d1a274ad3ad7fe75511f85787de4b7f17769b7113b6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", "transactionsTrie": "0x395c0fd9acef064db914950ab95a70bf60d078b6576571aafb1ffa04e8ab597b", "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5821,42 +4843,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x033812f03b9b81ea8f75bbae9a248fb55113dd79131b6535bc09be23d1051840" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4a8c798a9a3a9d4561a48149c100befa19972dcb5a45fe45276a70763db72c44", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x033812f03b9b81ea8f75bbae9a248fb55113dd79131b6535bc09be23d1051840", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x879fa5c5d8aeacc17f97fe5e98de6e5d0cfab4df68b876f396359e0ee6c935d2" }, "blocknumber": "1", "transactions": [ @@ -5946,37 +4933,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xbc55264b383559ecf776b7fd163dbf2ccb7e2e6bf411b2b12e1829faeb24eb1b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4a8c798a9a3a9d4561a48149c100befa19972dcb5a45fe45276a70763db72c44" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bc55264b383559ecf776b7fd163dbf2ccb7e2e6bf411b2b12e1829faeb24eb1ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x033812f03b9b81ea8f75bbae9a248fb55113dd79131b6535bc09be23d1051840", - "network": "Cancun", + "lastblockhash": "0x879fa5c5d8aeacc17f97fe5e98de6e5d0cfab4df68b876f396359e0ee6c935d2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -5987,20 +4949,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x04", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", "balance": "0x00", @@ -6012,18 +4974,43 @@ }, "031-fork=Cancun-blobs_per_tx=(3, 1, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b0e8661fb2dc2ae473e9090dcf5d3abd5fd14e66ada856e46ea6b6efdc98d7a6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb0e8661fb2dc2ae473e9090dcf5d3abd5fd14e66ada856e46ea6b6efdc98d7a6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90" + }, "blocks": [ { - "rlp": "0xf904b6f90243a0bcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623a04f38fa6b14d9d174ad9970f4f917304beb458dface6f8ce8cc1483dfefd1ea28a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "rlp": "0xf904b6f90243a06386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a04f38fa6b14d9d174ad9970f4f917304beb458dface6f8ce8cc1483dfefd1ea28a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026bb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "blockHeader": { - "parentHash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519", + "parentHash": "0x6386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", "transactionsTrie": "0x4f38fa6b14d9d174ad9970f4f917304beb458dface6f8ce8cc1483dfefd1ea28", "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6040,43 +5027,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2e853ffde443a3ff27961ef17d2773f10b1ae2eb8c5dc6c7ef7cf384f696666f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x2e853ffde443a3ff27961ef17d2773f10b1ae2eb8c5dc6c7ef7cf384f696666f", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xaf8813d99aa79c43607c470fb990e53cf03041f105fba961b0483c08091632dc" }, "blocknumber": "1", "transactions": [ @@ -6159,45 +5110,20 @@ ], "v": "0x01", "r": "0x5d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78", - "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb889ab3b791963d5340fcdffae8dd61b82e0a82bb46e51229564de5063d875f9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b889ab3b791963d5340fcdffae8dd61b82e0a82bb46e51229564de5063d875f9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2e853ffde443a3ff27961ef17d2773f10b1ae2eb8c5dc6c7ef7cf384f696666f", - "network": "Cancun", + "s": "0x7054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xaf8813d99aa79c43607c470fb990e53cf03041f105fba961b0483c08091632dc", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -6208,20 +5134,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x04", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", "balance": "0x00", @@ -6233,18 +5159,43 @@ }, "032-fork=Cancun-blobs_per_tx=(2, 2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b0e8661fb2dc2ae473e9090dcf5d3abd5fd14e66ada856e46ea6b6efdc98d7a6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb0e8661fb2dc2ae473e9090dcf5d3abd5fd14e66ada856e46ea6b6efdc98d7a6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90" + }, "blocks": [ { - "rlp": "0xf904b7f90243a0bcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623a02cb4dcbebef0589f390955d0f4f27e389640f3a70539b520d9383feb3e4eee58a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", + "rlp": "0xf904b7f90243a06386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557a02cb4dcbebef0589f390955d0f4f27e389640f3a70539b520d9383feb3e4eee58a080a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830148200c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9026cb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429b88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cdec0c0", "blockHeader": { - "parentHash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519", + "parentHash": "0x6386876a03a323e9afee1769dc843c4f5d45505197354eed55b0ec280902bd90", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", + "stateRoot": "0xcabca10654295a18386e33b3c72324313ae0bb5374dec4365e37234600f23557", "transactionsTrie": "0x2cb4dcbebef0589f390955d0f4f27e389640f3a70539b520d9383feb3e4eee58", "receiptTrie": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6261,43 +5212,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xed7eebdd3a82115ee942b6d597382bebcbc4be6f8281017ca4ef11563abb4635" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac03aa4285f9620c52667671a524119bca040e51ee71e8af702e415adfdab623", - "receiptsRoot": "0x80a83e7d056035d7e4241904f58ca67fe054eb53611eb378101aa2faf0376b42", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14820", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xed7eebdd3a82115ee942b6d597382bebcbc4be6f8281017ca4ef11563abb4635", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a05d87fd0644fda3b8ae7c840519b0a51c86e54097b63c394a8ebfb13f0212da78a07054fc9d2468c15c2d8257a54e42419e6a53fe0d4568ccf95ecd4414e3481cde" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x01b546bdedf8d3bafc1154bdf4f4e4872de73cf87aa6907f7e0b9773a3995e4a" }, "blocknumber": "1", "transactions": [ @@ -6388,37 +5303,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb889ab3b791963d5340fcdffae8dd61b82e0a82bb46e51229564de5063d875f9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbcc8628bc4197389b4b3ef8c4039c0feb09aa66a798e7f3395de6b729afa2519" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b889ab3b791963d5340fcdffae8dd61b82e0a82bb46e51229564de5063d875f9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xed7eebdd3a82115ee942b6d597382bebcbc4be6f8281017ca4ef11563abb4635", - "network": "Cancun", + "lastblockhash": "0x01b546bdedf8d3bafc1154bdf4f4e4872de73cf87aa6907f7e0b9773a3995e4a", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -6429,20 +5319,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x04", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", "balance": "0x00", @@ -6454,18 +5344,43 @@ }, "033-fork=Cancun-blobs_per_tx=(2, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03a1f6c3320a03486a6011fe26d86eca0c595576aec966fa0b98ea716815742f7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3a1f6c3320a03486a6011fe26d86eca0c595576aec966fa0b98ea716815742f7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x762e117537bbc2ca83a9d40427def7066e70336916ad415416dc2b3f2533711d" + }, "blocks": [ { - "rlp": "0xf9040af90242a0fea39b77a81394b2e03d989f51b4b04fd157dec2c843a8c05621d37966c2a786a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a06a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "rlp": "0xf9040af90242a0762e117537bbc2ca83a9d40427def7066e70336916ad415416dc2b3f2533711da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a06a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901c0b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "blockHeader": { - "parentHash": "0xfea39b77a81394b2e03d989f51b4b04fd157dec2c843a8c05621d37966c2a786", + "parentHash": "0x762e117537bbc2ca83a9d40427def7066e70336916ad415416dc2b3f2533711d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x6a47e76bc47ace58857e7b853093b180c3cf9a3b9936f90ef662038fa35a5006", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6482,40 +5397,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x63cd1e601ab4cafcef21f25b2356db254aa322bd5df8f283466a088acd5d54cc" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfea39b77a81394b2e03d989f51b4b04fd157dec2c843a8c05621d37966c2a786", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0x63cd1e601ab4cafcef21f25b2356db254aa322bd5df8f283466a088acd5d54cc", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd0667350a00b2c6b85fd17f2ae7089b26692e13e387bc53f78888b268338397b" }, "blocknumber": "1", "transactions": [ @@ -6585,37 +5467,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e930806646011fce2b4bc7847ecf90e699899b8d13d9831343043a67b3b0850", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfea39b77a81394b2e03d989f51b4b04fd157dec2c843a8c05621d37966c2a786" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e930806646011fce2b4bc7847ecf90e699899b8d13d9831343043a67b3b0850a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x63cd1e601ab4cafcef21f25b2356db254aa322bd5df8f283466a088acd5d54cc", - "network": "Cancun", + "lastblockhash": "0xd0667350a00b2c6b85fd17f2ae7089b26692e13e387bc53f78888b268338397b", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -6626,20 +5483,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -6651,18 +5508,43 @@ }, "034-fork=Cancun-blobs_per_tx=(3, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fe6c9d8f533c6cdc72d0b2f9d6da69ece415883b1fe882a83190c307fe31b00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5fe6c9d8f533c6cdc72d0b2f9d6da69ece415883b1fe882a83190c307fe31b00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x48905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294" + }, "blocks": [ { - "rlp": "0xf9042bf90242a04c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a03b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "rlp": "0xf9042bf90242a048905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a03b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e1b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "blockHeader": { - "parentHash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292", + "parentHash": "0x48905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x3b5dee62d3cc6ac1fc0dede1db42f79fb8dc82b61988c3975eb93981ce8319b7", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6679,41 +5561,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2acb8cec6f3da3e4129f94e796d9a7ff91bfbe07df14de3e5f47882073619a9c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x2acb8cec6f3da3e4129f94e796d9a7ff91bfbe07df14de3e5f47882073619a9c", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xadbe8911f90c9d426cf562a0c5cab67bc474e162ddd1a1c1d3c329a9b242b150" }, "blocknumber": "1", "transactions": [ @@ -6784,37 +5632,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4964c94a025a6e9164f3a2c6ac0e501a147f4366063fce7e1089215ad5f465c2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04964c94a025a6e9164f3a2c6ac0e501a147f4366063fce7e1089215ad5f465c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2acb8cec6f3da3e4129f94e796d9a7ff91bfbe07df14de3e5f47882073619a9c", - "network": "Cancun", + "lastblockhash": "0xadbe8911f90c9d426cf562a0c5cab67bc474e162ddd1a1c1d3c329a9b242b150", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -6825,20 +5648,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -6850,18 +5673,43 @@ }, "035-fork=Cancun-blobs_per_tx=(4, 1, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477" + }, "blocks": [ { - "rlp": "0xf9044cf90242a06396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a06f58045d59b6d53a5eb2e22d51bbf120a308bbe17e42c88dd27f13990fee47dfa09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "rlp": "0xf9044cf90242a0570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a06f58045d59b6d53a5eb2e22d51bbf120a308bbe17e42c88dd27f13990fee47dfa09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90202b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccb88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "blockHeader": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", + "parentHash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x6f58045d59b6d53a5eb2e22d51bbf120a308bbe17e42c88dd27f13990fee47df", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6878,42 +5726,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc240c21aa6d3f8753f37e0681abe52641876600bc0a0734b5f04be46508b73b3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xc240c21aa6d3f8753f37e0681abe52641876600bc0a0734b5f04be46508b73b3", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xde2801247504fb49ee2d424b16119019ac2869294acffe33e429046987f1b173" }, "blocknumber": "1", "transactions": [ @@ -6981,41 +5794,16 @@ "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc240c21aa6d3f8753f37e0681abe52641876600bc0a0734b5f04be46508b73b3", - "network": "Cancun", + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xde2801247504fb49ee2d424b16119019ac2869294acffe33e429046987f1b173", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -7026,20 +5814,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -7051,18 +5839,43 @@ }, "036-fork=Cancun-blobs_per_tx=(2, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05fe6c9d8f533c6cdc72d0b2f9d6da69ece415883b1fe882a83190c307fe31b00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5fe6c9d8f533c6cdc72d0b2f9d6da69ece415883b1fe882a83190c307fe31b00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x48905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294" + }, "blocks": [ { - "rlp": "0xf9042cf90242a04c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a0144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "rlp": "0xf9042cf90242a048905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61ea09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f901e2b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "blockHeader": { - "parentHash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292", + "parentHash": "0x48905284134a9acd84bd660506767a814e9b7fbb13ce6a62bb3bb9b451e1c294", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x144a3e0168a33099650fc76157eef4022e01bfc2f3caa9c19fbc3cdce20de61e", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7079,41 +5892,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x29f2ed30bb68db44d3499cc5b9f8d0ebd7f04e31dc9899625ccbe6ea850384de" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x29f2ed30bb68db44d3499cc5b9f8d0ebd7f04e31dc9899625ccbe6ea850384de", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8fbf52cebb50d4289c8e48740ea4da2b0aeef791b05c5e57a28ea3e0366291c5" }, "blocknumber": "1", "transactions": [ @@ -7184,37 +5963,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4964c94a025a6e9164f3a2c6ac0e501a147f4366063fce7e1089215ad5f465c2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4c5bf5c5329fd7ec6dd4d7fb7b89f56b094cb4454db7d5ccbc6f0dfcccd55292" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04964c94a025a6e9164f3a2c6ac0e501a147f4366063fce7e1089215ad5f465c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x29f2ed30bb68db44d3499cc5b9f8d0ebd7f04e31dc9899625ccbe6ea850384de", - "network": "Cancun", + "lastblockhash": "0x8fbf52cebb50d4289c8e48740ea4da2b0aeef791b05c5e57a28ea3e0366291c5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -7225,20 +5979,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -7250,18 +6004,43 @@ }, "037-fork=Cancun-blobs_per_tx=(3, 2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa3455eedfc29bf66b4b680d5770544f1d7d841ba6210dde0aa40718b6f9d6e00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477" + }, "blocks": [ { - "rlp": "0xf9044df90242a06396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806a0377f0d34979af41a9b88b309eb5fd90d818a2f6bf3e8f71c1f9aa85bad2a8c92a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", + "rlp": "0xf9044df90242a0570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946a0377f0d34979af41a9b88b309eb5fd90d818a2f6bf3e8f71c1f9aa85bad2a8c92a09af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082f6180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90203b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429c0c0", "blockHeader": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", + "parentHash": "0x570a28fee9887d2c948e64fbd4e6c49320479f29541782320bd47640de322477", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", + "stateRoot": "0xe0b7e3d3f3a9c7d11829923d808acac48b451644534b1d7a450ef60166f7b946", "transactionsTrie": "0x377f0d34979af41a9b88b309eb5fd90d818a2f6bf3e8f71c1f9aa85bad2a8c92", "receiptTrie": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7278,42 +6057,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xedbe0a301cd252c7f03a401d952cde3b6426970dd12e92bf47b7f0eef60d3c38" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77ab73bb94188821d0c6127de4aca655cc33eb7252303aee98455850576f5806", - "receiptsRoot": "0x9af165447e5b3193e9ac8389418648ee6d6cb1d37459fe65cfc245fc358721bd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf618", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xedbe0a301cd252c7f03a401d952cde3b6426970dd12e92bf47b7f0eef60d3c38", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0fe46a6659784d1c49e66bfe79f53c9282521940f406d321a953600d3297498e1a011d6bd31ffcfc37bd89923bd565eca3df245ab923b95799811f227502a95a429" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2c49cb4600b9c1d1794c730a9da3e860a757315423c3de264fbff3e05a357f97" }, "blocknumber": "1", "transactions": [ @@ -7385,37 +6129,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6396bccf72f12067ff9e43900b32d6dd6f86935b850f46beb4d825a9161b3f08" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04da349f4d76010db4e50ad2c6ce144ce5adf590e20d20021d71f6178ba567887a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xedbe0a301cd252c7f03a401d952cde3b6426970dd12e92bf47b7f0eef60d3c38", - "network": "Cancun", + "lastblockhash": "0x2c49cb4600b9c1d1794c730a9da3e860a757315423c3de264fbff3e05a357f97", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -7426,20 +6145,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x03", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x03", "balance": "0x00", @@ -7451,18 +6170,43 @@ }, "038-fork=Cancun-blobs_per_tx=(2, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bc3c2ee7952e2d04c31de55221cc1ea2a6f339a648fc4527e2b19411394dd4c0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbc3c2ee7952e2d04c31de55221cc1ea2a6f339a648fc4527e2b19411394dd4c0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31" + }, "blocks": [ { - "rlp": "0xf90380f90242a03fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa0dd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "rlp": "0xf90380f90242a0d40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0dd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "blockHeader": { - "parentHash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8", + "parentHash": "0xd40b69628f61ffb9b6bf30b87fc776ef6464b83812b60f6fd362dc3df5ea5f31", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0xdd5a0058d15f5284b33e254743f334cb65c7a6db4055a72b6e7ff6f518e1e296", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7479,38 +6223,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb942ab0724296b8ed8dfa5b9131b8a382051b94f21723d84652001cb26bb95e4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xe0000", - "blockHash": "0xb942ab0724296b8ed8dfa5b9131b8a382051b94f21723d84652001cb26bb95e4", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe59933138fb3032cc6d37c7363e4e30da29e366eada9ee0c406aee133cd4da3d" }, "blocknumber": "1", "transactions": [ @@ -7560,37 +6273,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa8776d30e0adde560199edf694174d937abaa1e87bb2496c638003112dfb2adc", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3fcb02cdd946dc692905c01296db16c53e0f96df2c34d77d3725c6304e8db9a8" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a8776d30e0adde560199edf694174d937abaa1e87bb2496c638003112dfb2adca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb942ab0724296b8ed8dfa5b9131b8a382051b94f21723d84652001cb26bb95e4", - "network": "Cancun", + "lastblockhash": "0xe59933138fb3032cc6d37c7363e4e30da29e366eada9ee0c406aee133cd4da3d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -7601,20 +6289,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -7626,18 +6314,43 @@ }, "039-fork=Cancun-blobs_per_tx=(3, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0922b27189738268fe7ca42cc0f4f1d92b2122dc406fc84c6b79ccb7ed148b369a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x922b27189738268fe7ca42cc0f4f1d92b2122dc406fc84c6b79ccb7ed148b369", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0b0136012adc97b9aaeba429a0e727d4d530640437372ad185db6f71d81bc671" + }, "blocks": [ { - "rlp": "0xf903a1f90242a09ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa0a8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "rlp": "0xf903a1f90242a00b0136012adc97b9aaeba429a0e727d4d530640437372ad185db6f71d81bc671a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0a8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90157b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "blockHeader": { - "parentHash": "0x9ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fc", + "parentHash": "0x0b0136012adc97b9aaeba429a0e727d4d530640437372ad185db6f71d81bc671", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0xa8190535e1111958188bfa09eb16ca84935395a1989047acde654d0e91e30726", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7654,39 +6367,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd929d69da95cd00c415889f1b337e6cf76b12d42eb9521d6fdee61191c936c02" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fc", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd929d69da95cd00c415889f1b337e6cf76b12d42eb9521d6fdee61191c936c02", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1b66e53f8e9582eb6d0cba123712284ca69e22f8c8936e60a2ab197fece2ca0d" }, "blocknumber": "1", "transactions": [ @@ -7737,37 +6418,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x74cdfa02f6e86b17174e155e0b1f38c173f3e6438b1934577467ca15b04be4c0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9ab5180e709800c44f905b1df79545f1749177b5f3881d98a92786b1953211fc" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a074cdfa02f6e86b17174e155e0b1f38c173f3e6438b1934577467ca15b04be4c0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd929d69da95cd00c415889f1b337e6cf76b12d42eb9521d6fdee61191c936c02", - "network": "Cancun", + "lastblockhash": "0x1b66e53f8e9582eb6d0cba123712284ca69e22f8c8936e60a2ab197fece2ca0d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -7775,23 +6431,23 @@ "balance": "0x0c7c72", "code": "0x", "storage": {} - } - }, - "postState": { - "0x000000000000000000000000000000000000000b": { + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x02", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x02", - "code": "0x", - "storage": {} - }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -7803,18 +6459,43 @@ }, "040-fork=Cancun-blobs_per_tx=(4, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07a3c75eded97bf86907f1f4c497ae2200a1c415065938ff428e049d09f0df6dda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7a3c75eded97bf86907f1f4c497ae2200a1c415065938ff428e049d09f0df6dd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249" + }, "blocks": [ { - "rlp": "0xf903c2f90242a069128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa0ed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02da010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "rlp": "0xf903c2f90242a0d3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0ed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02da010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90178b8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "blockHeader": { - "parentHash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7", + "parentHash": "0xd3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0xed872473d1fa8d3e3d518fa9faccb5b513ca00ab4668833e535b2b5074c7e02d", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7831,40 +6512,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4043e08c71789f8ae2a1ef7276c08e508a1a3910527341b6ad5fdafa8928fc95" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x4043e08c71789f8ae2a1ef7276c08e508a1a3910527341b6ad5fdafa8928fc95", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf1a5a8d683c234986bb2d5859dc18a1fb7272627d542e9e53c173452bb3901af" }, "blocknumber": "1", "transactions": [ @@ -7916,37 +6564,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf0c9cab9e9133eb41ca6155a0244d706523d826ec1367651da89fee0b7c1295c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f0c9cab9e9133eb41ca6155a0244d706523d826ec1367651da89fee0b7c1295ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4043e08c71789f8ae2a1ef7276c08e508a1a3910527341b6ad5fdafa8928fc95", - "network": "Cancun", + "lastblockhash": "0xf1a5a8d683c234986bb2d5859dc18a1fb7272627d542e9e53c173452bb3901af", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -7957,20 +6580,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -7982,18 +6605,43 @@ }, "041-fork=Cancun-blobs_per_tx=(5, 1)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9" + }, "blocks": [ { - "rlp": "0xf903e5f90242a0df18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa0add4c387a62309accaaf28cee5bb91f5a37f0b56e9353f6e8a5e3450141e01dea010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", + "rlp": "0xf903e5f90242a053192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a0add4c387a62309accaaf28cee5bb91f5a37f0b56e9353f6e8a5e3450141e01dea010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019bb9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2ccc0c0", "blockHeader": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", + "parentHash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0xadd4c387a62309accaaf28cee5bb91f5a37f0b56e9353f6e8a5e3450141e01de", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -8010,41 +6658,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd8ff0d3449a59093ececda7b9cb18111cbfae200e98e3b67c2dd37657e6f15fb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xd8ff0d3449a59093ececda7b9cb18111cbfae200e98e3b67c2dd37657e6f15fb", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0ef4c93a2afbe03bc2f31334b5c42654f2b88f3d1526e2719454638d2c87f3eaaa06234b91bfba07b555f8e11d44486319ef599f61fdb70bd5ec02085a41ff8e2cc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6e19580545318f211062f16f7d383e5410177cc8dd4d7f72173c3e31f5457513" }, "blocknumber": "1", "transactions": [ @@ -8097,37 +6711,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd8ff0d3449a59093ececda7b9cb18111cbfae200e98e3b67c2dd37657e6f15fb", - "network": "Cancun", + "lastblockhash": "0x6e19580545318f211062f16f7d383e5410177cc8dd4d7f72173c3e31f5457513", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -8138,20 +6727,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -8163,18 +6752,43 @@ }, "042-fork=Cancun-blobs_per_tx=(3, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07a3c75eded97bf86907f1f4c497ae2200a1c415065938ff428e049d09f0df6dda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7a3c75eded97bf86907f1f4c497ae2200a1c415065938ff428e049d09f0df6dd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249" + }, "blocks": [ { - "rlp": "0xf903c3f90242a069128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa02c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", + "rlp": "0xf903c3f90242a0d3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a02c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483a010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f90179b8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", "blockHeader": { - "parentHash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7", + "parentHash": "0xd3eb10ac759e9927012cfb49149f87c3bb76ea03cf45497947b4ce12b59bb249", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0x2c886b86a20b8dad15bc0fafdc356676ddfa4db118e9414cea433d6797a3b483", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -8191,40 +6805,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x10e8b4dbe4d5f489d1bd9dc693fbff5748a9cfa3dcb7bc29d0d6127f18684118" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xe0000", - "blockHash": "0x10e8b4dbe4d5f489d1bd9dc693fbff5748a9cfa3dcb7bc29d0d6127f18684118", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4bb7f02ef365d72063991ae6ef92eb5a02221535cea25e66281327ad79249f68" }, "blocknumber": "1", "transactions": [ @@ -8276,37 +6857,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf0c9cab9e9133eb41ca6155a0244d706523d826ec1367651da89fee0b7c1295c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x69128406093b9e5f2f5083c9720e8099fc1ed393ad6e9e632ffb86c6777239c7" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f0c9cab9e9133eb41ca6155a0244d706523d826ec1367651da89fee0b7c1295ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x10e8b4dbe4d5f489d1bd9dc693fbff5748a9cfa3dcb7bc29d0d6127f18684118", - "network": "Cancun", + "lastblockhash": "0x4bb7f02ef365d72063991ae6ef92eb5a02221535cea25e66281327ad79249f68", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -8317,20 +6873,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", @@ -8342,18 +6898,43 @@ }, "043-fork=Cancun-blobs_per_tx=(4, 2)": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8ede4d460f8e2357e0c6f574fb75b0217c4e5389f90f7c89add717d8187a2b28", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x140000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9" + }, "blocks": [ { - "rlp": "0xf903e4f90242a0df18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfdaa05b12d3d5b0af73a0a50b1bf1e53310093f6467cbb11ad8e106e01cba4726c60fa010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", + "rlp": "0xf903e4f90242a053192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479a05b12d3d5b0af73a0a50b1bf1e53310093f6467cbb11ad8e106e01cba4726c60fa010457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a4100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000f9019ab8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05b8aa03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6c0c0", "blockHeader": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", + "parentHash": "0x53192e0bb3e0a019a050109533a219b04737c1ce6db7ebebbade95c4b29807f9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", + "stateRoot": "0x87413205e068db30167044d42b0e8a4175ddd2c58c160b731875b94ba46d9479", "transactionsTrie": "0x5b12d3d5b0af73a0a50b1bf1e53310093f6467cbb11ad8e106e01cba4726c60f", "receiptTrie": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -8370,41 +6951,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe4f10d595e38082453a2e0e839482c40c857f54d307fc9c9b236876551fdaf6e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18358de2b583caf543e0dc57905fb11c29d722ce259249bf035ae07b34c0dfda", - "receiptsRoot": "0x10457e39b8c68ced2071538b4c7034fe68f9c666187fd6b2d6ddcc21149f0d10", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa410", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xe4f10d595e38082453a2e0e839482c40c857f54d307fc9c9b236876551fdaf6e", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05", - "0x03f8a7010180078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0c2839c88603ad627d43ce7ca67ddf119db14ab90664aa919bad6d8940a6be2a6a0584cbe56815f7cbf113dbe3d863fda25b489cf42d6aa71c64e6dc8dff03be5b6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x69c15de3969737af28cb5ab5d66ff2daad5d3d689baf2cd0502ccbad20b1da4a" }, "blocknumber": "1", "transactions": [ @@ -8457,37 +7004,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x140000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdf18ca7309d3630f97189a967bb49a3757dccce53b50e512404db846f5f4a439" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e16076a55ccc1683c16c1eda8138148393ceed1b1a2ad4f73be692b7784fa20a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe4f10d595e38082453a2e0e839482c40c857f54d307fc9c9b236876551fdaf6e", - "network": "Cancun", + "lastblockhash": "0x69c15de3969737af28cb5ab5d66ff2daad5d3d689baf2cd0502ccbad20b1da4a", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -8498,20 +7020,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x02", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", "balance": "0x00", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json index d0de7c120cb..691992c20f3 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blob_txs_full/reject_valid_full_blob_in_block_rlp.json @@ -1,96 +1,17 @@ { "000-fork=Cancun-one_full_blob_one_tx": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xfa020347f90242a0be2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dce9cd8d281a199a594dd4748304e5fe68e04a901198b821ee42d76ce8770799a0efd8f2a0af0fc5ffb3d2e5b3b3400ad27fa828ca9c8c97c7dd04c151e47282d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0200fcba0200f803fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0", - "blockHeader": { - "parentHash": "0xbe2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdce9cd8d281a199a594dd4748304e5fe68e04a901198b821ee42d76ce8770799", - "transactionsTrie": "0xefd8f2a0af0fc5ffb3d2e5b3b3400ad27fa828ca9c8c97c7dd04c151e47282d1", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x020000", - "excessBlobGas": "0x0e0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdc29b38f798a091b95d0f8c9afa8c943dc486a09df273349b720c6c17aa153da" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbe2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdce9cd8d281a199a594dd4748304e5fe68e04a901198b821ee42d76ce8770799", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xdc29b38f798a091b95d0f8c9afa8c943dc486a09df273349b720c6c17aa153da", - "transactions": [ - "0x03fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x01", - "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d", - "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x37fc4f062296e0ce0551893c7070714d1f4d56d3ead051b4a3c2e490f3776c17", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -107,16 +28,69 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbe2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7" + "hash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a037fc4f062296e0ce0551893c7070714d1f4d56d3ead051b4a3c2e490f3776c17a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdc29b38f798a091b95d0f8c9afa8c943dc486a09df273349b720c6c17aa153da", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xfa020347f90242a05e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f43e34d45b96073376e0dc37a47ab53620a19ed5dfd325eaf679543f469e417ea0efd8f2a0af0fc5ffb3d2e5b3b3400ad27fa828ca9c8c97c7dd04c151e47282d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0200fcba0200f803fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0", + "expectException": "invalid transaction", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf43e34d45b96073376e0dc37a47ab53620a19ed5dfd325eaf679543f469e417e", + "transactionsTrie": "0xefd8f2a0af0fc5ffb3d2e5b3b3400ad27fa828ca9c8c97c7dd04c151e47282d1", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa741fc4e2854de4272a2e56d1d502ec9986e1f93859e5debf98815c740850023" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d", + "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -127,23 +101,15 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x01", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x01", - "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", "code": "0x", "storage": {} } @@ -152,206 +118,17 @@ }, "001-fork=Cancun-one_full_blob_max_txs": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xfa0205faf90243a0be2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aa813cdf9a6b26dc239f10de21da6d2b1183307691953427481e9b79f9b49545a072efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0203aeba0200f803fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cbb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9ab88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ecb88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382c0c0", - "blockHeader": { - "parentHash": "0xbe2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaa813cdf9a6b26dc239f10de21da6d2b1183307691953427481e9b79f9b49545", - "transactionsTrie": "0x72efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269", - "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ec30", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x0c0000", - "excessBlobGas": "0x0e0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf495cd4d2518b74cd820bf59abbef22d16300d79197861ca72839e7ee7edd347" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbe2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaa813cdf9a6b26dc239f10de21da6d2b1183307691953427481e9b79f9b49545", - "receiptsRoot": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1ec30", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xf495cd4d2518b74cd820bf59abbef22d16300d79197861ca72839e7ee7edd347", - "transactions": [ - "0x03fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec", - "0x03f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x01", - "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d", - "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x01", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x01", - "r": "0x390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fd", - "s": "0x3f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x02", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x00", - "r": "0x632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3", - "s": "0x6c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x03", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x00", - "r": "0xad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938e", - "s": "0x0c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x04", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x00", - "r": "0x570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34", - "s": "0x58b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x05", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x00", - "r": "0x06d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bd", - "s": "0x71aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x37fc4f062296e0ce0551893c7070714d1f4d56d3ead051b4a3c2e490f3776c17", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -368,16 +145,169 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbe2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7" + "hash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a037fc4f062296e0ce0551893c7070714d1f4d56d3ead051b4a3c2e490f3776c17a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf495cd4d2518b74cd820bf59abbef22d16300d79197861ca72839e7ee7edd347", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xfa0205faf90243a05e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259a072efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0203aeba0200f803fa0200f3f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cbb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9ab88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ecb88803f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382c0c0", + "expectException": "invalid transaction", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259", + "transactionsTrie": "0x72efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269", + "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ec30", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa4ac66e7a89abb4f0fb63e67d7c550246ad394c5af6d582c0c155979be4dbb26" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d", + "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fd", + "s": "0x3f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3", + "s": "0x6c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0xad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938e", + "s": "0x0c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34", + "s": "0x58b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x06d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bd", + "s": "0x71aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -388,23 +318,15 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x06", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x06", - "balance": "0x1d6329f1c35ca4bfabb9f560ffffe68aaa", + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", "code": "0x", "storage": {} } @@ -413,206 +335,17 @@ }, "002-fork=Cancun-one_full_blob_at_the_end_max_txs": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xfa0205faf90243a0be2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aa813cdf9a6b26dc239f10de21da6d2b1183307691953427481e9b79f9b49545a072efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0203aeb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cbb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9ab88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ecba0200f803fa0200f3f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0", - "blockHeader": { - "parentHash": "0xbe2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaa813cdf9a6b26dc239f10de21da6d2b1183307691953427481e9b79f9b49545", - "transactionsTrie": "0x72efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269", - "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ec30", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x0c0000", - "excessBlobGas": "0x0e0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf495cd4d2518b74cd820bf59abbef22d16300d79197861ca72839e7ee7edd347" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbe2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaa813cdf9a6b26dc239f10de21da6d2b1183307691953427481e9b79f9b49545", - "receiptsRoot": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1ec30", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xe0000", - "blockHash": "0xf495cd4d2518b74cd820bf59abbef22d16300d79197861ca72839e7ee7edd347", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", - "0x03f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09", - "0x03f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb", - "0x03f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a", - "0x03f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec", - "0x03fa0200f3f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x01", - "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d", - "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x01", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x01", - "r": "0x390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fd", - "s": "0x3f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x02", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x00", - "r": "0x632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3", - "s": "0x6c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x03", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x00", - "r": "0xad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938e", - "s": "0x0c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x04", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x00", - "r": "0x570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34", - "s": "0x58b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - }, - { - "type": "0x03", - "chainId": "0x01", - "nonce": "0x05", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" - ], - "v": "0x00", - "r": "0x06d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bd", - "s": "0x71aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x37fc4f062296e0ce0551893c7070714d1f4d56d3ead051b4a3c2e490f3776c17", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -629,16 +362,169 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x140000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbe2f0c0585c4d0d5fb5b2111a072d1bc2d00709b371123a0ccbf938b7543afe7" + "hash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a037fc4f062296e0ce0551893c7070714d1f4d56d3ead051b4a3c2e490f3776c17a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083140000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf495cd4d2518b74cd820bf59abbef22d16300d79197861ca72839e7ee7edd347", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xfa0205faf90243a05e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259a072efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269a0c88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec300c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830e0000a00000000000000000000000000000000000000000000000000000000000000000fa0203aeb88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682da04b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403b88803f885010180078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a0390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fda03f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09b88803f885010280078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3a06c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cbb88803f885010380078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0ad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938ea00c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9ab88803f885010480078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a0570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34a058b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ecba0200f803fa0200f3f885010580078252089400000000000000000000000000000000000001000180c001e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401480a006d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bda071aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c0", + "expectException": "invalid transaction", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xed01656656d8c6df0749aad49dcd4b998f0caa6d602bec0bdb9611a170bc3259", + "transactionsTrie": "0x72efca766822cba50f24e55abd527ee5433f138e0ea7495634455569675a5269", + "receiptTrie": "0xc88bbb6ffab5658b295a44086ed7e77d4526e07e4025496e68a55042b24c81be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ec30", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa4ac66e7a89abb4f0fb63e67d7c550246ad394c5af6d582c0c155979be4dbb26" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x477eb0e8afffdcfc82caa0d54a014e5b79bd52ea7f071fbe92991421172a682d", + "s": "0x4b38c97aae73304105f25d48e40e21ff5eb11c489c318ae37503ae4da5c3a403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x01", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x01", + "r": "0x390d51d461fde99c73c14514879c0eecbe3f6c9e9a348dcd42bcacd811e4c9fd", + "s": "0x3f1cce5086c7a782e0380a8c59845bd9b897432e0fd6b192480c20d3bb53dd09", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x02", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x632536c226ddbba7b5903bee9f1dfc437e2d7f94520eb205ed5bce8f3ef29dc3", + "s": "0x6c01f08279d1aab38190d2c94e5b13c69a44b72818c1b3b444593368bc29a5cb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x03", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0xad3c3098708fc8c737cbb3f2b3d5b803c5f3d0ee485771888d37345c47ad938e", + "s": "0x0c62332a5df97c52b536e7f68d6a1deb255c677f64ea209d4e0411a46cd0de9a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x04", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x570d2ab90e8a4496345779ab0f6f7ace2a1d48ebe4df60877bb1b10c62dfbd34", + "s": "0x58b253420cf921bceb8a531e5a22b9fcdb12cb9ba8d2c343a4525e8f0e58b7ec", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x05", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + ], + "v": "0x00", + "r": "0x06d628345c1f03ced02445b38d3f0c796a4d041c00b71d1ec77cc1de584141bd", + "s": "0x71aa73d61ff7955dd11fd98d0922c73ec5b8a5e1f60eb906154284c72b64e382", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5e214032b2c3345807ca43e38d0495d5150729153f66a5536b34fe9f5af98dd7", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -649,23 +535,15 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x06", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x06", - "balance": "0x1d6329f1c35ca4bfabb9f560ffffe68aaa", + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json index c351b35e237..914cee72858 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_gas_cost.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-tx_type=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0690910135eeb63861e7205ad79674f12abf2fece9f8f021e69ca67e4d06ffec8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x690910135eeb63861e7205ad79674f12abf2fece9f8f021e69ca67e4d06ffec8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55c" + }, "blocks": [ { - "rlp": "0xf902c5f9023ca0216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d84923b079ac82b4797d063e49f7c852a7acce93ae7b9274346122f4d10eda03a0dda59eab4bcc811c5a30b5f861fca6d79ff98b047d5435d9e14aa6b8f288b260a0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8fd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a832dc6c094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000025a05cd0b6ab9524788c826fb1282182f1c19e027e73d9229be7b91aec399d7be556a060068e86e4a96de08fcb9cd992242497cb727f1eae3268a8d53505f8f872e1e9c0c0", + "rlp": "0xf902c5f9023ca09d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eef010577b8bbde807fd3be8db978ba0ea245e037ad5ec97e5c7fb04a9918da3a0dda59eab4bcc811c5a30b5f861fca6d79ff98b047d5435d9e14aa6b8f288b260a0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8fd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a832dc6c094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000025a05cd0b6ab9524788c826fb1282182f1c19e027e73d9229be7b91aec399d7be556a060068e86e4a96de08fcb9cd992242497cb727f1eae3268a8d53505f8f872e1e9c0c0", "blockHeader": { - "parentHash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8", + "parentHash": "0x9d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd84923b079ac82b4797d063e49f7c852a7acce93ae7b9274346122f4d10eda03", + "stateRoot": "0xeef010577b8bbde807fd3be8db978ba0ea245e037ad5ec97e5c7fb04a9918da3", "transactionsTrie": "0xdda59eab4bcc811c5a30b5f861fca6d79ff98b047d5435d9e14aa6b8f288b260", "receiptTrie": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x99139b145ca9b0bb909b670d9ed8464e6cbe794dfdb2b3fcbc7ae934fcd3d33c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd84923b079ac82b4797d063e49f7c852a7acce93ae7b9274346122f4d10eda03", - "receiptsRoot": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x99139b145ca9b0bb909b670d9ed8464e6cbe794dfdb2b3fcbc7ae934fcd3d33c", - "transactions": [ - "0xf880800a832dc6c094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000025a05cd0b6ab9524788c826fb1282182f1c19e027e73d9229be7b91aec399d7be556a060068e86e4a96de08fcb9cd992242497cb727f1eae3268a8d53505f8f872e1e9" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x04a5127f643037d3ef97a0a1c9228629119855684d370d6074b2d8ad26113951" }, "blocknumber": "1", "transactions": [ @@ -78,12 +77,12 @@ "withdrawals": [] }, { - "rlp": "0xf902c5f9023ca099139b145ca9b0bb909b670d9ed8464e6cbe794dfdb2b3fcbc7ae934fcd3d33ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa067981312c5faac4b71a961e72a910963738752c75a35b2107c0fcc16f66b4a4fa019c41f85dfeaf679dfd137565487508ae8e62afbb06775f64514ddf74b98ce0aa0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8fd1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880010a832dc6c094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000026a0b1de26fa125ee1f2200fa6878768c9f05a95d3fd36a48319fa23474a7900e590a01cd5988ac78642e6a1cc4ba7c306a3268dbb3dde2d78ee58cdae38f83caeb9f7c0c0", + "rlp": "0xf902c5f9023ca004a5127f643037d3ef97a0a1c9228629119855684d370d6074b2d8ad26113951a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd81fd74e67d751dba028af27d3ab9f116cd3da68e892f6d05fa045f520d4107a019c41f85dfeaf679dfd137565487508ae8e62afbb06775f64514ddf74b98ce0aa0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8fd1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880010a832dc6c094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000026a0b1de26fa125ee1f2200fa6878768c9f05a95d3fd36a48319fa23474a7900e590a01cd5988ac78642e6a1cc4ba7c306a3268dbb3dde2d78ee58cdae38f83caeb9f7c0c0", "blockHeader": { - "parentHash": "0x99139b145ca9b0bb909b670d9ed8464e6cbe794dfdb2b3fcbc7ae934fcd3d33c", + "parentHash": "0x04a5127f643037d3ef97a0a1c9228629119855684d370d6074b2d8ad26113951", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x67981312c5faac4b71a961e72a910963738752c75a35b2107c0fcc16f66b4a4f", + "stateRoot": "0xdd81fd74e67d751dba028af27d3ab9f116cd3da68e892f6d05fa045f520d4107", "transactionsTrie": "0x19c41f85dfeaf679dfd137565487508ae8e62afbb06775f64514ddf74b98ce0a", "receiptTrie": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -100,33 +99,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfd930b3d26e554a745f96aa777bf3ebbb27f37a1048a73d7c21115521326fce0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x99139b145ca9b0bb909b670d9ed8464e6cbe794dfdb2b3fcbc7ae934fcd3d33c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x67981312c5faac4b71a961e72a910963738752c75a35b2107c0fcc16f66b4a4f", - "receiptsRoot": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfd930b3d26e554a745f96aa777bf3ebbb27f37a1048a73d7c21115521326fce0", - "transactions": [ - "0xf880010a832dc6c094000000000000000000000000000000000000020080a0000000000000000000000000000000000000000000000000000000000000000026a0b1de26fa125ee1f2200fa6878768c9f05a95d3fd36a48319fa23474a7900e590a01cd5988ac78642e6a1cc4ba7c306a3268dbb3dde2d78ee58cdae38f83caeb9f7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x081b06d91d9c81fa09402c84aec421f1c0de67691e6325f43a7a41037dfcd73d" }, "blocknumber": "2", "transactions": [ @@ -149,12 +122,12 @@ "withdrawals": [] }, { - "rlp": "0xf902c5f9023ca0fd930b3d26e554a745f96aa777bf3ebbb27f37a1048a73d7c21115521326fce0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06735d93b292983fd32edd1b16deb5ef1c8eedeb6d6c0d9e7327107039fa4c5a4a0cfe4344c2cd3729631b22c4cffbf4666ed79b905025f729918daa324559f1c15a0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082a8fd2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880020a832dc6c094000000000000000000000000000000000000030080a0000000000000000000000000000000000000000000000000000000000000000026a07a93eb9d8030d359330e5a544afef0921ed83a533a35b083fdedeb167b6988ffa030fbeea0e91e7cdb3cca8801daca163a24324bdd853ab5784383bc40e4dac615c0c0", + "rlp": "0xf902c5f9023ca0081b06d91d9c81fa09402c84aec421f1c0de67691e6325f43a7a41037dfcd73da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087ad85de91a07f23b638020591926b835d151377b55fdc5cf4568ad6641f4c6ba0cfe4344c2cd3729631b22c4cffbf4666ed79b905025f729918daa324559f1c15a0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082a8fd2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880020a832dc6c094000000000000000000000000000000000000030080a0000000000000000000000000000000000000000000000000000000000000000026a07a93eb9d8030d359330e5a544afef0921ed83a533a35b083fdedeb167b6988ffa030fbeea0e91e7cdb3cca8801daca163a24324bdd853ab5784383bc40e4dac615c0c0", "blockHeader": { - "parentHash": "0xfd930b3d26e554a745f96aa777bf3ebbb27f37a1048a73d7c21115521326fce0", + "parentHash": "0x081b06d91d9c81fa09402c84aec421f1c0de67691e6325f43a7a41037dfcd73d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6735d93b292983fd32edd1b16deb5ef1c8eedeb6d6c0d9e7327107039fa4c5a4", + "stateRoot": "0x87ad85de91a07f23b638020591926b835d151377b55fdc5cf4568ad6641f4c6b", "transactionsTrie": "0xcfe4344c2cd3729631b22c4cffbf4666ed79b905025f729918daa324559f1c15", "receiptTrie": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -171,33 +144,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5ed78e89f8e4bf83db0609f58ef9c8c1aca9e04a754998bbd0ebed359fd4968c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfd930b3d26e554a745f96aa777bf3ebbb27f37a1048a73d7c21115521326fce0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6735d93b292983fd32edd1b16deb5ef1c8eedeb6d6c0d9e7327107039fa4c5a4", - "receiptsRoot": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5ed78e89f8e4bf83db0609f58ef9c8c1aca9e04a754998bbd0ebed359fd4968c", - "transactions": [ - "0xf880020a832dc6c094000000000000000000000000000000000000030080a0000000000000000000000000000000000000000000000000000000000000000026a07a93eb9d8030d359330e5a544afef0921ed83a533a35b083fdedeb167b6988ffa030fbeea0e91e7cdb3cca8801daca163a24324bdd853ab5784383bc40e4dac615" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x11807de337d0d3b962d7577c590686f1c8ea075db4cbbfedfa59b6b418c6af2e" }, "blocknumber": "3", "transactions": [ @@ -220,12 +167,12 @@ "withdrawals": [] }, { - "rlp": "0xf902c5f9023ca05ed78e89f8e4bf83db0609f58ef9c8c1aca9e04a754998bbd0ebed359fd4968ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ac2d0f0a987ff1c3c6011ba5dc79986d43e6a12428228da6d31eb2dd900c4aea014e52166a02a4ea683942868cd59f2292520371cebbc632bfb3bd3041d4f753fa0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082a8fd3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880030a832dc6c094000000000000000000000000000000000000040080a0000000000000000000000000000000000000000000000000000000000000000025a0bde500a24231125c1c8e150b1dc4f37916b8cc037cfd3dbbb635d83416223413a00c3a24a781a0557d16e7f1ceb0ac082dc3fa0449fc4004db05fb8fa63d68e81bc0c0", + "rlp": "0xf902c5f9023ca011807de337d0d3b962d7577c590686f1c8ea075db4cbbfedfa59b6b418c6af2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0668ab07521c5731ae980c2f0e469a69a8ae0d24b0d3941e42e74dd67bf4d90e5a014e52166a02a4ea683942868cd59f2292520371cebbc632bfb3bd3041d4f753fa0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082a8fd3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880030a832dc6c094000000000000000000000000000000000000040080a0000000000000000000000000000000000000000000000000000000000000000025a0bde500a24231125c1c8e150b1dc4f37916b8cc037cfd3dbbb635d83416223413a00c3a24a781a0557d16e7f1ceb0ac082dc3fa0449fc4004db05fb8fa63d68e81bc0c0", "blockHeader": { - "parentHash": "0x5ed78e89f8e4bf83db0609f58ef9c8c1aca9e04a754998bbd0ebed359fd4968c", + "parentHash": "0x11807de337d0d3b962d7577c590686f1c8ea075db4cbbfedfa59b6b418c6af2e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ac2d0f0a987ff1c3c6011ba5dc79986d43e6a12428228da6d31eb2dd900c4ae", + "stateRoot": "0x668ab07521c5731ae980c2f0e469a69a8ae0d24b0d3941e42e74dd67bf4d90e5", "transactionsTrie": "0x14e52166a02a4ea683942868cd59f2292520371cebbc632bfb3bd3041d4f753f", "receiptTrie": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -242,33 +189,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3f2cf3d1b8510f592d8eaf6a7213998d82184f04ad3f090b9bab2f3f0a0e481e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5ed78e89f8e4bf83db0609f58ef9c8c1aca9e04a754998bbd0ebed359fd4968c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ac2d0f0a987ff1c3c6011ba5dc79986d43e6a12428228da6d31eb2dd900c4ae", - "receiptsRoot": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x30", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3f2cf3d1b8510f592d8eaf6a7213998d82184f04ad3f090b9bab2f3f0a0e481e", - "transactions": [ - "0xf880030a832dc6c094000000000000000000000000000000000000040080a0000000000000000000000000000000000000000000000000000000000000000025a0bde500a24231125c1c8e150b1dc4f37916b8cc037cfd3dbbb635d83416223413a00c3a24a781a0557d16e7f1ceb0ac082dc3fa0449fc4004db05fb8fa63d68e81b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x651d23d29e4086a4ee2e923554661063414f3a7d5e427b81ba6a90f2fc24ee46" }, "blocknumber": "4", "transactions": [ @@ -291,12 +212,12 @@ "withdrawals": [] }, { - "rlp": "0xf902c5f9023ca03f2cf3d1b8510f592d8eaf6a7213998d82184f04ad3f090b9bab2f3f0a0e481ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa058aa0c01605f0857bda688549a3c0b62b4dec803f80bc8028ae49526b88d35a8a0a9bff06aea6022ad2f0835c78ba11050c7d46358031b454e2c301c6bd11c06b5a0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082a8fd3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880040a832dc6c094000000000000000000000000000000000000050080a0000000000000000000000000000000000000000000000000000000000000000026a0ec67556c33ecb757ef3eae2d8a98d7c06731c3b658d940bfed2f0e642804e67da0531172f1e8da520985e038d7e396f08339e14614930e1ad45e2e9fcc8ac7e0c6c0c0", + "rlp": "0xf902c5f9023ca0651d23d29e4086a4ee2e923554661063414f3a7d5e427b81ba6a90f2fc24ee46a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0487bc4e411c8a5ff90dbfcdccca66f8c89abde149ec080a0d115f3bd22e4f3c2a0a9bff06aea6022ad2f0835c78ba11050c7d46358031b454e2c301c6bd11c06b5a0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082a8fd3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880040a832dc6c094000000000000000000000000000000000000050080a0000000000000000000000000000000000000000000000000000000000000000026a0ec67556c33ecb757ef3eae2d8a98d7c06731c3b658d940bfed2f0e642804e67da0531172f1e8da520985e038d7e396f08339e14614930e1ad45e2e9fcc8ac7e0c6c0c0", "blockHeader": { - "parentHash": "0x3f2cf3d1b8510f592d8eaf6a7213998d82184f04ad3f090b9bab2f3f0a0e481e", + "parentHash": "0x651d23d29e4086a4ee2e923554661063414f3a7d5e427b81ba6a90f2fc24ee46", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58aa0c01605f0857bda688549a3c0b62b4dec803f80bc8028ae49526b88d35a8", + "stateRoot": "0x487bc4e411c8a5ff90dbfcdccca66f8c89abde149ec080a0d115f3bd22e4f3c2", "transactionsTrie": "0xa9bff06aea6022ad2f0835c78ba11050c7d46358031b454e2c301c6bd11c06b5", "receiptTrie": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -313,33 +234,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x73b5343e98fdccceeafebf57cd9387ee50ad27fd12a9b13f433aa1d0011ec742" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3f2cf3d1b8510f592d8eaf6a7213998d82184f04ad3f090b9bab2f3f0a0e481e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58aa0c01605f0857bda688549a3c0b62b4dec803f80bc8028ae49526b88d35a8", - "receiptsRoot": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x3c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x73b5343e98fdccceeafebf57cd9387ee50ad27fd12a9b13f433aa1d0011ec742", - "transactions": [ - "0xf880040a832dc6c094000000000000000000000000000000000000050080a0000000000000000000000000000000000000000000000000000000000000000026a0ec67556c33ecb757ef3eae2d8a98d7c06731c3b658d940bfed2f0e642804e67da0531172f1e8da520985e038d7e396f08339e14614930e1ad45e2e9fcc8ac7e0c6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfef390977fbf1dde0fb729a1b7bfa9580bff48aa1c0a619a9074a4d804be7eb4" }, "blocknumber": "5", "transactions": [ @@ -362,12 +257,12 @@ "withdrawals": [] }, { - "rlp": "0xf902c5f9023ca073b5343e98fdccceeafebf57cd9387ee50ad27fd12a9b13f433aa1d0011ec742a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08efc21ba02b20b6688a736e503b9b9435385590841c8de992c14b96a46ef851aa0cca024840415a0ff5dc4c4ae5a0a47a5dd9d54b5843cd537d66e877bdb7fb9b2a0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082a8fd4880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880050a832dc6c094000000000000000000000000000000000000060080a0000000000000000000000000000000000000000000000000000000000000000025a037df5841cdaa5d96353eba6003fc1758e35dcbfe8b7e54abc6a6cf520fc84e25a02c2d5710d40910b2ef7c3d107d648f6189dd91890974adfbe3be3c80e9888965c0c0", + "rlp": "0xf902c5f9023ca0fef390977fbf1dde0fb729a1b7bfa9580bff48aa1c0a619a9074a4d804be7eb4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa089d4795c3d53287598de626e0f4022707701d673eb1d181a774e8305f3a90e97a0cca024840415a0ff5dc4c4ae5a0a47a5dd9d54b5843cd537d66e877bdb7fb9b2a0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082a8fd4880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880050a832dc6c094000000000000000000000000000000000000060080a0000000000000000000000000000000000000000000000000000000000000000025a037df5841cdaa5d96353eba6003fc1758e35dcbfe8b7e54abc6a6cf520fc84e25a02c2d5710d40910b2ef7c3d107d648f6189dd91890974adfbe3be3c80e9888965c0c0", "blockHeader": { - "parentHash": "0x73b5343e98fdccceeafebf57cd9387ee50ad27fd12a9b13f433aa1d0011ec742", + "parentHash": "0xfef390977fbf1dde0fb729a1b7bfa9580bff48aa1c0a619a9074a4d804be7eb4", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8efc21ba02b20b6688a736e503b9b9435385590841c8de992c14b96a46ef851a", + "stateRoot": "0x89d4795c3d53287598de626e0f4022707701d673eb1d181a774e8305f3a90e97", "transactionsTrie": "0xcca024840415a0ff5dc4c4ae5a0a47a5dd9d54b5843cd537d66e877bdb7fb9b2", "receiptTrie": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -384,33 +279,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1d6be7e938bd6d1fa2f8503a8b8f36f72063446f9cbb0d21f8a92fe00283151" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x73b5343e98fdccceeafebf57cd9387ee50ad27fd12a9b13f433aa1d0011ec742", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8efc21ba02b20b6688a736e503b9b9435385590841c8de992c14b96a46ef851a", - "receiptsRoot": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x48", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf1d6be7e938bd6d1fa2f8503a8b8f36f72063446f9cbb0d21f8a92fe00283151", - "transactions": [ - "0xf880050a832dc6c094000000000000000000000000000000000000060080a0000000000000000000000000000000000000000000000000000000000000000025a037df5841cdaa5d96353eba6003fc1758e35dcbfe8b7e54abc6a6cf520fc84e25a02c2d5710d40910b2ef7c3d107d648f6189dd91890974adfbe3be3c80e9888965" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x75890c22c1710536c9332e505e2fab457a3d4f9aa78991c01adcfc68dc29eb98" }, "blocknumber": "6", "transactions": [ @@ -433,12 +302,12 @@ "withdrawals": [] }, { - "rlp": "0xf902c5f9023ca0f1d6be7e938bd6d1fa2f8503a8b8f36f72063446f9cbb0d21f8a92fe00283151a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f6a95128eebe073fc7b5e5ebd376686de8c8d6bac9be6d92634a794d7e1ec34ea0f0ae7c3dbda5d27902a4eb1672a97e258bde823a9d788256945c5de0d8e3308ba0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082a8fd5480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880060a832dc6c094000000000000000000000000000000000000070080a0000000000000000000000000000000000000000000000000000000000000000025a0146d6077258262fcdb80b1dba63be0ca9dfbbc56f38462614ffc438d7d0fbca5a04a80ece30398671341e685a6f0f2c39af8621c5ca257fd4a7b39acbb5ccf9eacc0c0", + "rlp": "0xf902c5f9023ca075890c22c1710536c9332e505e2fab457a3d4f9aa78991c01adcfc68dc29eb98a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0190eaaa91c42a8ccc9425ef1050b16f0aeda63f1fb86f3f516131b7451ea27a8a0f0ae7c3dbda5d27902a4eb1672a97e258bde823a9d788256945c5de0d8e3308ba0d456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082a8fd5480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880060a832dc6c094000000000000000000000000000000000000070080a0000000000000000000000000000000000000000000000000000000000000000025a0146d6077258262fcdb80b1dba63be0ca9dfbbc56f38462614ffc438d7d0fbca5a04a80ece30398671341e685a6f0f2c39af8621c5ca257fd4a7b39acbb5ccf9eacc0c0", "blockHeader": { - "parentHash": "0xf1d6be7e938bd6d1fa2f8503a8b8f36f72063446f9cbb0d21f8a92fe00283151", + "parentHash": "0x75890c22c1710536c9332e505e2fab457a3d4f9aa78991c01adcfc68dc29eb98", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf6a95128eebe073fc7b5e5ebd376686de8c8d6bac9be6d92634a794d7e1ec34e", + "stateRoot": "0x190eaaa91c42a8ccc9425ef1050b16f0aeda63f1fb86f3f516131b7451ea27a8", "transactionsTrie": "0xf0ae7c3dbda5d27902a4eb1672a97e258bde823a9d788256945c5de0d8e3308b", "receiptTrie": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -455,33 +324,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf7490283f39b02798b201a9c441a826afc14616b8a84f7dd0bb7be2129667d21" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf1d6be7e938bd6d1fa2f8503a8b8f36f72063446f9cbb0d21f8a92fe00283151", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf6a95128eebe073fc7b5e5ebd376686de8c8d6bac9be6d92634a794d7e1ec34e", - "receiptsRoot": "0xd456d09a08a640bd3b6d504757abdd66b53544aaeac18b5d0b3f3a04a778c6e5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x54", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf7490283f39b02798b201a9c441a826afc14616b8a84f7dd0bb7be2129667d21", - "transactions": [ - "0xf880060a832dc6c094000000000000000000000000000000000000070080a0000000000000000000000000000000000000000000000000000000000000000025a0146d6077258262fcdb80b1dba63be0ca9dfbbc56f38462614ffc438d7d0fbca5a04a80ece30398671341e685a6f0f2c39af8621c5ca257fd4a7b39acbb5ccf9eac" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0dae4a48ed2f525cf24e27b26019686d9ca8d7be200aee651abeee417b427cd6" }, "blocknumber": "7", "transactions": [ @@ -504,39 +347,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x39a9d0ced1cc84de4b612347b2d03f0808642cc8f7a9de6927c2b77771569837", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a039a9d0ced1cc84de4b612347b2d03f0808642cc8f7a9de6927c2b77771569837a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf7490283f39b02798b201a9c441a826afc14616b8a84f7dd0bb7be2129667d21", - "network": "Cancun", + "lastblockhash": "0x0dae4a48ed2f525cf24e27b26019686d9ca8d7be200aee651abeee417b427cd6", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -579,6 +391,12 @@ "code": "0x5a7fa12c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f495a905090036005900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -587,20 +405,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24", - "0x30": "0x30", - "0x3c": "0x3c", - "0x48": "0x48", - "0x54": "0x54" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -657,6 +461,20 @@ "0x00": "0x03" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c", + "0x48": "0x48", + "0x54": "0x54" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0ddcc1", @@ -674,18 +492,43 @@ }, "001-fork=Cancun-tx_type=1": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0690910135eeb63861e7205ad79674f12abf2fece9f8f021e69ca67e4d06ffec8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x690910135eeb63861e7205ad79674f12abf2fece9f8f021e69ca67e4d06ffec8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55c" + }, "blocks": [ { - "rlp": "0xf902caf9023ca0216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d84923b079ac82b4797d063e49f7c852a7acce93ae7b9274346122f4d10eda03a08b73d9fe6eda71d2847d41fc774bf04ff9bc456e3a1624b577d289d7282b5678a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8fd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201800a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0500b513c6f45a31b85197b3c7f59c066bd1b4cb09c181121ee580e18d29a9515a03aa0df1f222a93b42d8d2a83a17c0b695fc352f87e4856aae8c164f96d7b095ac0c0", + "rlp": "0xf902caf9023ca09d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eef010577b8bbde807fd3be8db978ba0ea245e037ad5ec97e5c7fb04a9918da3a08b73d9fe6eda71d2847d41fc774bf04ff9bc456e3a1624b577d289d7282b5678a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8fd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201800a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0500b513c6f45a31b85197b3c7f59c066bd1b4cb09c181121ee580e18d29a9515a03aa0df1f222a93b42d8d2a83a17c0b695fc352f87e4856aae8c164f96d7b095ac0c0", "blockHeader": { - "parentHash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8", + "parentHash": "0x9d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd84923b079ac82b4797d063e49f7c852a7acce93ae7b9274346122f4d10eda03", + "stateRoot": "0xeef010577b8bbde807fd3be8db978ba0ea245e037ad5ec97e5c7fb04a9918da3", "transactionsTrie": "0x8b73d9fe6eda71d2847d41fc774bf04ff9bc456e3a1624b577d289d7282b5678", "receiptTrie": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -702,33 +545,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x962123eff60f07b0ebf36826ee00e57c32581dde1c56685aa980e5a75df9f142" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd84923b079ac82b4797d063e49f7c852a7acce93ae7b9274346122f4d10eda03", - "receiptsRoot": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x962123eff60f07b0ebf36826ee00e57c32581dde1c56685aa980e5a75df9f142", - "transactions": [ - "0x01f88201800a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0500b513c6f45a31b85197b3c7f59c066bd1b4cb09c181121ee580e18d29a9515a03aa0df1f222a93b42d8d2a83a17c0b695fc352f87e4856aae8c164f96d7b095a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x59f196230cc009fa8bd480f86335390836d6fc9c76566d48e6510b349adc3b6f" }, "blocknumber": "1", "transactions": [ @@ -752,12 +569,12 @@ "withdrawals": [] }, { - "rlp": "0xf902caf9023ca0962123eff60f07b0ebf36826ee00e57c32581dde1c56685aa980e5a75df9f142a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa067981312c5faac4b71a961e72a910963738752c75a35b2107c0fcc16f66b4a4fa0d0ab94eddc19d184bee3dddeea6ca9653fde5acbe765fbf57d5f0957af06a5b3a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8fd1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201010a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c080a09c971c9114532ea10f06a64f6c90994e375f3284dbd256746f4af2c580171a9aa07b82e533cb9437b54f59fd44e9a82b87ba965360329c3085f1755f5b4d6281fcc0c0", + "rlp": "0xf902caf9023ca059f196230cc009fa8bd480f86335390836d6fc9c76566d48e6510b349adc3b6fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd81fd74e67d751dba028af27d3ab9f116cd3da68e892f6d05fa045f520d4107a0d0ab94eddc19d184bee3dddeea6ca9653fde5acbe765fbf57d5f0957af06a5b3a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8fd1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201010a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c080a09c971c9114532ea10f06a64f6c90994e375f3284dbd256746f4af2c580171a9aa07b82e533cb9437b54f59fd44e9a82b87ba965360329c3085f1755f5b4d6281fcc0c0", "blockHeader": { - "parentHash": "0x962123eff60f07b0ebf36826ee00e57c32581dde1c56685aa980e5a75df9f142", + "parentHash": "0x59f196230cc009fa8bd480f86335390836d6fc9c76566d48e6510b349adc3b6f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x67981312c5faac4b71a961e72a910963738752c75a35b2107c0fcc16f66b4a4f", + "stateRoot": "0xdd81fd74e67d751dba028af27d3ab9f116cd3da68e892f6d05fa045f520d4107", "transactionsTrie": "0xd0ab94eddc19d184bee3dddeea6ca9653fde5acbe765fbf57d5f0957af06a5b3", "receiptTrie": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -774,33 +591,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21f3c3c22fd037032298eba6c3c83c23f9016cb09f4605c3785d04768e5c10d3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x962123eff60f07b0ebf36826ee00e57c32581dde1c56685aa980e5a75df9f142", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x67981312c5faac4b71a961e72a910963738752c75a35b2107c0fcc16f66b4a4f", - "receiptsRoot": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x21f3c3c22fd037032298eba6c3c83c23f9016cb09f4605c3785d04768e5c10d3", - "transactions": [ - "0x01f88201010a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c080a09c971c9114532ea10f06a64f6c90994e375f3284dbd256746f4af2c580171a9aa07b82e533cb9437b54f59fd44e9a82b87ba965360329c3085f1755f5b4d6281fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa01e0f5613c178119628899fadccd4bbe13dc6ae459c8b410c4444e94974448a" }, "blocknumber": "2", "transactions": [ @@ -824,12 +615,12 @@ "withdrawals": [] }, { - "rlp": "0xf902caf9023ca021f3c3c22fd037032298eba6c3c83c23f9016cb09f4605c3785d04768e5c10d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06735d93b292983fd32edd1b16deb5ef1c8eedeb6d6c0d9e7327107039fa4c5a4a0049a255171cf6a9946e6d3edfd7db7b08bde2bd3fccb100a00bd91b01ed702bda09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082a8fd2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201020a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c080a0b0bce1eda98326a78c10692ef2720a2b5dd4483bfdadd12e4f2e7c7c126d6335a07ba54024a30eb4dfd49dc473e700d7b4dcd3d358ddc4cd764abd134c86cd3044c0c0", + "rlp": "0xf902caf9023ca0a01e0f5613c178119628899fadccd4bbe13dc6ae459c8b410c4444e94974448aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087ad85de91a07f23b638020591926b835d151377b55fdc5cf4568ad6641f4c6ba0049a255171cf6a9946e6d3edfd7db7b08bde2bd3fccb100a00bd91b01ed702bda09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082a8fd2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201020a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c080a0b0bce1eda98326a78c10692ef2720a2b5dd4483bfdadd12e4f2e7c7c126d6335a07ba54024a30eb4dfd49dc473e700d7b4dcd3d358ddc4cd764abd134c86cd3044c0c0", "blockHeader": { - "parentHash": "0x21f3c3c22fd037032298eba6c3c83c23f9016cb09f4605c3785d04768e5c10d3", + "parentHash": "0xa01e0f5613c178119628899fadccd4bbe13dc6ae459c8b410c4444e94974448a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6735d93b292983fd32edd1b16deb5ef1c8eedeb6d6c0d9e7327107039fa4c5a4", + "stateRoot": "0x87ad85de91a07f23b638020591926b835d151377b55fdc5cf4568ad6641f4c6b", "transactionsTrie": "0x049a255171cf6a9946e6d3edfd7db7b08bde2bd3fccb100a00bd91b01ed702bd", "receiptTrie": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -846,33 +637,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xec647176208a54691e4c9c20fe65f5fc00538d7943e4a2933a362d95ecdfce60" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21f3c3c22fd037032298eba6c3c83c23f9016cb09f4605c3785d04768e5c10d3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6735d93b292983fd32edd1b16deb5ef1c8eedeb6d6c0d9e7327107039fa4c5a4", - "receiptsRoot": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xec647176208a54691e4c9c20fe65f5fc00538d7943e4a2933a362d95ecdfce60", - "transactions": [ - "0x01f88201020a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c080a0b0bce1eda98326a78c10692ef2720a2b5dd4483bfdadd12e4f2e7c7c126d6335a07ba54024a30eb4dfd49dc473e700d7b4dcd3d358ddc4cd764abd134c86cd3044" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd1bb3aecb848ac6cebed28b7ad31486ba835f7b4de4e0ffd170b74758dc8932d" }, "blocknumber": "3", "transactions": [ @@ -896,12 +661,12 @@ "withdrawals": [] }, { - "rlp": "0xf902caf9023ca0ec647176208a54691e4c9c20fe65f5fc00538d7943e4a2933a362d95ecdfce60a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ac2d0f0a987ff1c3c6011ba5dc79986d43e6a12428228da6d31eb2dd900c4aea0bd45d0d333d59d897111942e953877fc52894f3b8b749ce0d21d22ae32ee1c7aa09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082a8fd3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201030a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c001a0af2363e5fb8b3c654920611e33dbea9cd3e20455cd668a8ad053a0683ac03e5ba0164c085b477b8b11bc84ef22689ff3eb5a547efc0d41364f62378a3961a0a3e9c0c0", + "rlp": "0xf902caf9023ca0d1bb3aecb848ac6cebed28b7ad31486ba835f7b4de4e0ffd170b74758dc8932da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0668ab07521c5731ae980c2f0e469a69a8ae0d24b0d3941e42e74dd67bf4d90e5a0bd45d0d333d59d897111942e953877fc52894f3b8b749ce0d21d22ae32ee1c7aa09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082a8fd3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201030a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c001a0af2363e5fb8b3c654920611e33dbea9cd3e20455cd668a8ad053a0683ac03e5ba0164c085b477b8b11bc84ef22689ff3eb5a547efc0d41364f62378a3961a0a3e9c0c0", "blockHeader": { - "parentHash": "0xec647176208a54691e4c9c20fe65f5fc00538d7943e4a2933a362d95ecdfce60", + "parentHash": "0xd1bb3aecb848ac6cebed28b7ad31486ba835f7b4de4e0ffd170b74758dc8932d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ac2d0f0a987ff1c3c6011ba5dc79986d43e6a12428228da6d31eb2dd900c4ae", + "stateRoot": "0x668ab07521c5731ae980c2f0e469a69a8ae0d24b0d3941e42e74dd67bf4d90e5", "transactionsTrie": "0xbd45d0d333d59d897111942e953877fc52894f3b8b749ce0d21d22ae32ee1c7a", "receiptTrie": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -918,33 +683,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6fc3e514fbb37a28c515e6dc8a7e63d2d6269fac4e1bee2f936602c97718bfc2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xec647176208a54691e4c9c20fe65f5fc00538d7943e4a2933a362d95ecdfce60", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ac2d0f0a987ff1c3c6011ba5dc79986d43e6a12428228da6d31eb2dd900c4ae", - "receiptsRoot": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x30", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6fc3e514fbb37a28c515e6dc8a7e63d2d6269fac4e1bee2f936602c97718bfc2", - "transactions": [ - "0x01f88201030a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c001a0af2363e5fb8b3c654920611e33dbea9cd3e20455cd668a8ad053a0683ac03e5ba0164c085b477b8b11bc84ef22689ff3eb5a547efc0d41364f62378a3961a0a3e9" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa365c3dfcb5c3b75367787d3564199ee60dc2c7b4a1703ef58f725a1bee666f5" }, "blocknumber": "4", "transactions": [ @@ -968,12 +707,12 @@ "withdrawals": [] }, { - "rlp": "0xf902caf9023ca06fc3e514fbb37a28c515e6dc8a7e63d2d6269fac4e1bee2f936602c97718bfc2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa058aa0c01605f0857bda688549a3c0b62b4dec803f80bc8028ae49526b88d35a8a05de0ca90857803c115edbdeda11520661d81bb42c62b4c6c4db78ca66fd2e915a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082a8fd3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201040a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c001a05db950425573faf98cf26d3475870da2f49ff726da223e08e5b24830a9b18f72a05aa9e1d3b1b198b5dfcd43ad4afa0c675dd8990667e9b05eec9733881aaebab8c0c0", + "rlp": "0xf902caf9023ca0a365c3dfcb5c3b75367787d3564199ee60dc2c7b4a1703ef58f725a1bee666f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0487bc4e411c8a5ff90dbfcdccca66f8c89abde149ec080a0d115f3bd22e4f3c2a05de0ca90857803c115edbdeda11520661d81bb42c62b4c6c4db78ca66fd2e915a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082a8fd3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201040a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c001a05db950425573faf98cf26d3475870da2f49ff726da223e08e5b24830a9b18f72a05aa9e1d3b1b198b5dfcd43ad4afa0c675dd8990667e9b05eec9733881aaebab8c0c0", "blockHeader": { - "parentHash": "0x6fc3e514fbb37a28c515e6dc8a7e63d2d6269fac4e1bee2f936602c97718bfc2", + "parentHash": "0xa365c3dfcb5c3b75367787d3564199ee60dc2c7b4a1703ef58f725a1bee666f5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58aa0c01605f0857bda688549a3c0b62b4dec803f80bc8028ae49526b88d35a8", + "stateRoot": "0x487bc4e411c8a5ff90dbfcdccca66f8c89abde149ec080a0d115f3bd22e4f3c2", "transactionsTrie": "0x5de0ca90857803c115edbdeda11520661d81bb42c62b4c6c4db78ca66fd2e915", "receiptTrie": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -990,33 +729,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5dd0806240a1a6e9dff3bcefe71326bc8c6bd843025f4ecbc4eb95c01aa14078" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6fc3e514fbb37a28c515e6dc8a7e63d2d6269fac4e1bee2f936602c97718bfc2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58aa0c01605f0857bda688549a3c0b62b4dec803f80bc8028ae49526b88d35a8", - "receiptsRoot": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x3c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5dd0806240a1a6e9dff3bcefe71326bc8c6bd843025f4ecbc4eb95c01aa14078", - "transactions": [ - "0x01f88201040a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c001a05db950425573faf98cf26d3475870da2f49ff726da223e08e5b24830a9b18f72a05aa9e1d3b1b198b5dfcd43ad4afa0c675dd8990667e9b05eec9733881aaebab8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x99d3c2940a3e984f4f64f2777786b79d498226dec841c36b8ceffca1af1a2035" }, "blocknumber": "5", "transactions": [ @@ -1040,12 +753,12 @@ "withdrawals": [] }, { - "rlp": "0xf902caf9023ca05dd0806240a1a6e9dff3bcefe71326bc8c6bd843025f4ecbc4eb95c01aa14078a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08efc21ba02b20b6688a736e503b9b9435385590841c8de992c14b96a46ef851aa0b53508fe80e013e51d760bc2d3512ebbef33ae5cae6dda2a03fac21c72781a95a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082a8fd4880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201050a832dc6c094000000000000000000000000000000000000060080a00000000000000000000000000000000000000000000000000000000000000000c080a00a13ff0633c39fdae0b9c492f7aed02fdc464434ce4555781cab87d33af441f8a0242704866430661da4139fe402ab8957bf94eae03470233b0671e3d7c6cdbe5ec0c0", + "rlp": "0xf902caf9023ca099d3c2940a3e984f4f64f2777786b79d498226dec841c36b8ceffca1af1a2035a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa089d4795c3d53287598de626e0f4022707701d673eb1d181a774e8305f3a90e97a0b53508fe80e013e51d760bc2d3512ebbef33ae5cae6dda2a03fac21c72781a95a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082a8fd4880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201050a832dc6c094000000000000000000000000000000000000060080a00000000000000000000000000000000000000000000000000000000000000000c080a00a13ff0633c39fdae0b9c492f7aed02fdc464434ce4555781cab87d33af441f8a0242704866430661da4139fe402ab8957bf94eae03470233b0671e3d7c6cdbe5ec0c0", "blockHeader": { - "parentHash": "0x5dd0806240a1a6e9dff3bcefe71326bc8c6bd843025f4ecbc4eb95c01aa14078", + "parentHash": "0x99d3c2940a3e984f4f64f2777786b79d498226dec841c36b8ceffca1af1a2035", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8efc21ba02b20b6688a736e503b9b9435385590841c8de992c14b96a46ef851a", + "stateRoot": "0x89d4795c3d53287598de626e0f4022707701d673eb1d181a774e8305f3a90e97", "transactionsTrie": "0xb53508fe80e013e51d760bc2d3512ebbef33ae5cae6dda2a03fac21c72781a95", "receiptTrie": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1062,33 +775,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3cdc91e06065cfdeaef0f30a6c250342bcea8f889256422c03b9bf097a208610" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5dd0806240a1a6e9dff3bcefe71326bc8c6bd843025f4ecbc4eb95c01aa14078", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8efc21ba02b20b6688a736e503b9b9435385590841c8de992c14b96a46ef851a", - "receiptsRoot": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x48", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3cdc91e06065cfdeaef0f30a6c250342bcea8f889256422c03b9bf097a208610", - "transactions": [ - "0x01f88201050a832dc6c094000000000000000000000000000000000000060080a00000000000000000000000000000000000000000000000000000000000000000c080a00a13ff0633c39fdae0b9c492f7aed02fdc464434ce4555781cab87d33af441f8a0242704866430661da4139fe402ab8957bf94eae03470233b0671e3d7c6cdbe5e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd90e5f4753a8fd3dadc5a8343c894b483b5987c7d8f9631ccb7c67199404ef20" }, "blocknumber": "6", "transactions": [ @@ -1112,12 +799,12 @@ "withdrawals": [] }, { - "rlp": "0xf902c9f9023ca03cdc91e06065cfdeaef0f30a6c250342bcea8f889256422c03b9bf097a208610a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f6a95128eebe073fc7b5e5ebd376686de8c8d6bac9be6d92634a794d7e1ec34ea0678ed057121ea4adba889d17b4b5c3516ff70680ce77a36e9ec49f1fa359dc58a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082a8fd5480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f886b88401f88101060a832dc6c094000000000000000000000000000000000000070080a00000000000000000000000000000000000000000000000000000000000000000c0809f2c5f86a1f00c9dc6df453d8c1756c648329cdcc4ff21c45a7bca0b2137b31ba038d5473aada9632b5e6128fbf4c4a061c18fea761253cd0fd2b5ab463a6a994dc0c0", + "rlp": "0xf902c9f9023ca0d90e5f4753a8fd3dadc5a8343c894b483b5987c7d8f9631ccb7c67199404ef20a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0190eaaa91c42a8ccc9425ef1050b16f0aeda63f1fb86f3f516131b7451ea27a8a0678ed057121ea4adba889d17b4b5c3516ff70680ce77a36e9ec49f1fa359dc58a09b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082a8fd5480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f886b88401f88101060a832dc6c094000000000000000000000000000000000000070080a00000000000000000000000000000000000000000000000000000000000000000c0809f2c5f86a1f00c9dc6df453d8c1756c648329cdcc4ff21c45a7bca0b2137b31ba038d5473aada9632b5e6128fbf4c4a061c18fea761253cd0fd2b5ab463a6a994dc0c0", "blockHeader": { - "parentHash": "0x3cdc91e06065cfdeaef0f30a6c250342bcea8f889256422c03b9bf097a208610", + "parentHash": "0xd90e5f4753a8fd3dadc5a8343c894b483b5987c7d8f9631ccb7c67199404ef20", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf6a95128eebe073fc7b5e5ebd376686de8c8d6bac9be6d92634a794d7e1ec34e", + "stateRoot": "0x190eaaa91c42a8ccc9425ef1050b16f0aeda63f1fb86f3f516131b7451ea27a8", "transactionsTrie": "0x678ed057121ea4adba889d17b4b5c3516ff70680ce77a36e9ec49f1fa359dc58", "receiptTrie": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1134,33 +821,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcec3da222ed095333c36de183e31b39040e4e10b1cce4793bcf23d4dee7fb0a5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3cdc91e06065cfdeaef0f30a6c250342bcea8f889256422c03b9bf097a208610", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf6a95128eebe073fc7b5e5ebd376686de8c8d6bac9be6d92634a794d7e1ec34e", - "receiptsRoot": "0x9b8b2b32116fe6c3988e4d192d1994c932b1c770a7c8e94f06c62ada0e18ad1a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x54", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xcec3da222ed095333c36de183e31b39040e4e10b1cce4793bcf23d4dee7fb0a5", - "transactions": [ - "0x01f88101060a832dc6c094000000000000000000000000000000000000070080a00000000000000000000000000000000000000000000000000000000000000000c0809f2c5f86a1f00c9dc6df453d8c1756c648329cdcc4ff21c45a7bca0b2137b31ba038d5473aada9632b5e6128fbf4c4a061c18fea761253cd0fd2b5ab463a6a994d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4e6604791cae5387316d842926d98d797c378855f4a83fa1cf0889e1177d4cc0" }, "blocknumber": "7", "transactions": [ @@ -1184,39 +845,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x39a9d0ced1cc84de4b612347b2d03f0808642cc8f7a9de6927c2b77771569837", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a039a9d0ced1cc84de4b612347b2d03f0808642cc8f7a9de6927c2b77771569837a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcec3da222ed095333c36de183e31b39040e4e10b1cce4793bcf23d4dee7fb0a5", - "network": "Cancun", + "lastblockhash": "0x4e6604791cae5387316d842926d98d797c378855f4a83fa1cf0889e1177d4cc0", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1259,6 +889,12 @@ "code": "0x5a7fa12c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f495a905090036005900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -1267,20 +903,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24", - "0x30": "0x30", - "0x3c": "0x3c", - "0x48": "0x48", - "0x54": "0x54" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1337,6 +959,20 @@ "0x00": "0x03" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c", + "0x48": "0x48", + "0x54": "0x54" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0ddcc1", @@ -1354,18 +990,43 @@ }, "002-fork=Cancun-tx_type=2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0690910135eeb63861e7205ad79674f12abf2fece9f8f021e69ca67e4d06ffec8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x690910135eeb63861e7205ad79674f12abf2fece9f8f021e69ca67e4d06ffec8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55c" + }, "blocks": [ { - "rlp": "0xf902cbf9023ca0216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d84923b079ac82b4797d063e49f7c852a7acce93ae7b9274346122f4d10eda03a049edb78c402a55eb2f002c8954d9b1b8e7605771be38cf96074c02245444231fa0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8fd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0780b24650b05eaececc4eeea70e2a07214903fdc379bd7d0ebf9f20b448dff54a02fe3dc33367e301213204c75fc15267d25f1f42e83c49b367148d468d497b46bc0c0", + "rlp": "0xf902cbf9023ca09d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eef010577b8bbde807fd3be8db978ba0ea245e037ad5ec97e5c7fb04a9918da3a049edb78c402a55eb2f002c8954d9b1b8e7605771be38cf96074c02245444231fa0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8fd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0780b24650b05eaececc4eeea70e2a07214903fdc379bd7d0ebf9f20b448dff54a02fe3dc33367e301213204c75fc15267d25f1f42e83c49b367148d468d497b46bc0c0", "blockHeader": { - "parentHash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8", + "parentHash": "0x9d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd84923b079ac82b4797d063e49f7c852a7acce93ae7b9274346122f4d10eda03", + "stateRoot": "0xeef010577b8bbde807fd3be8db978ba0ea245e037ad5ec97e5c7fb04a9918da3", "transactionsTrie": "0x49edb78c402a55eb2f002c8954d9b1b8e7605771be38cf96074c02245444231f", "receiptTrie": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1382,33 +1043,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb08cd4726b86aa28280b4aaed2c8bc5a5c292005852c622030df3583f6fb9374" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd84923b079ac82b4797d063e49f7c852a7acce93ae7b9274346122f4d10eda03", - "receiptsRoot": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb08cd4726b86aa28280b4aaed2c8bc5a5c292005852c622030df3583f6fb9374", - "transactions": [ - "0x02f88301800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0780b24650b05eaececc4eeea70e2a07214903fdc379bd7d0ebf9f20b448dff54a02fe3dc33367e301213204c75fc15267d25f1f42e83c49b367148d468d497b46b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2d9daa109da61e061157a7f975985dbbc62c17dd8696c1c1937e2a6bb9f69547" }, "blocknumber": "1", "transactions": [ @@ -1433,12 +1068,12 @@ "withdrawals": [] }, { - "rlp": "0xf902caf9023ca0b08cd4726b86aa28280b4aaed2c8bc5a5c292005852c622030df3583f6fb9374a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa067981312c5faac4b71a961e72a910963738752c75a35b2107c0fcc16f66b4a4fa04cf9caa50e5f39cf8471c430db1a57cdd810a62b9cce5256ddee8bd82c27a3dea0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8fd1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88502f88201010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c0809fba5f8d06599ff539625d97e7ad04d499e677e7d41fb9c0f9e0e465d2475396a020453884984cdf77e4bd2088874ea605b6a5d08057208bb35803774be9a9fcb9c0c0", + "rlp": "0xf902caf9023ca02d9daa109da61e061157a7f975985dbbc62c17dd8696c1c1937e2a6bb9f69547a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd81fd74e67d751dba028af27d3ab9f116cd3da68e892f6d05fa045f520d4107a04cf9caa50e5f39cf8471c430db1a57cdd810a62b9cce5256ddee8bd82c27a3dea0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8fd1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88502f88201010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c0809fba5f8d06599ff539625d97e7ad04d499e677e7d41fb9c0f9e0e465d2475396a020453884984cdf77e4bd2088874ea605b6a5d08057208bb35803774be9a9fcb9c0c0", "blockHeader": { - "parentHash": "0xb08cd4726b86aa28280b4aaed2c8bc5a5c292005852c622030df3583f6fb9374", + "parentHash": "0x2d9daa109da61e061157a7f975985dbbc62c17dd8696c1c1937e2a6bb9f69547", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x67981312c5faac4b71a961e72a910963738752c75a35b2107c0fcc16f66b4a4f", + "stateRoot": "0xdd81fd74e67d751dba028af27d3ab9f116cd3da68e892f6d05fa045f520d4107", "transactionsTrie": "0x4cf9caa50e5f39cf8471c430db1a57cdd810a62b9cce5256ddee8bd82c27a3de", "receiptTrie": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1455,33 +1090,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9f37bd201bfbb84a3819266b5c585c735030ae5dd5e45344347ad5a54180b33a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb08cd4726b86aa28280b4aaed2c8bc5a5c292005852c622030df3583f6fb9374", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x67981312c5faac4b71a961e72a910963738752c75a35b2107c0fcc16f66b4a4f", - "receiptsRoot": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9f37bd201bfbb84a3819266b5c585c735030ae5dd5e45344347ad5a54180b33a", - "transactions": [ - "0x02f88201010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c0809fba5f8d06599ff539625d97e7ad04d499e677e7d41fb9c0f9e0e465d2475396a020453884984cdf77e4bd2088874ea605b6a5d08057208bb35803774be9a9fcb9" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x197e3ddb52721b4dbe338018a39cdb17765743adb3c3473ea5fbc99a8684130a" }, "blocknumber": "2", "transactions": [ @@ -1506,12 +1115,12 @@ "withdrawals": [] }, { - "rlp": "0xf902cbf9023ca09f37bd201bfbb84a3819266b5c585c735030ae5dd5e45344347ad5a54180b33aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06735d93b292983fd32edd1b16deb5ef1c8eedeb6d6c0d9e7327107039fa4c5a4a094d2f2c01ce84bb841824bf671bec2185236ac0d5cbd1c4d933fe4e2af4f9073a0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082a8fd2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c080a04d7e6db1a50d750aa6e671e147c44e37e460b626a0d5ad6e62149a9f436ef7b7a042eb52270f20d1e0c45b9eab50029353f7b7a0a129e0d578f89435315ec062c7c0c0", + "rlp": "0xf902cbf9023ca0197e3ddb52721b4dbe338018a39cdb17765743adb3c3473ea5fbc99a8684130aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087ad85de91a07f23b638020591926b835d151377b55fdc5cf4568ad6641f4c6ba094d2f2c01ce84bb841824bf671bec2185236ac0d5cbd1c4d933fe4e2af4f9073a0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082a8fd2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c080a04d7e6db1a50d750aa6e671e147c44e37e460b626a0d5ad6e62149a9f436ef7b7a042eb52270f20d1e0c45b9eab50029353f7b7a0a129e0d578f89435315ec062c7c0c0", "blockHeader": { - "parentHash": "0x9f37bd201bfbb84a3819266b5c585c735030ae5dd5e45344347ad5a54180b33a", + "parentHash": "0x197e3ddb52721b4dbe338018a39cdb17765743adb3c3473ea5fbc99a8684130a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6735d93b292983fd32edd1b16deb5ef1c8eedeb6d6c0d9e7327107039fa4c5a4", + "stateRoot": "0x87ad85de91a07f23b638020591926b835d151377b55fdc5cf4568ad6641f4c6b", "transactionsTrie": "0x94d2f2c01ce84bb841824bf671bec2185236ac0d5cbd1c4d933fe4e2af4f9073", "receiptTrie": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1528,33 +1137,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd566e5cc25d41284054a31397767ca3f5425bc37ddb5dd8ec28473e2b2109161" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9f37bd201bfbb84a3819266b5c585c735030ae5dd5e45344347ad5a54180b33a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6735d93b292983fd32edd1b16deb5ef1c8eedeb6d6c0d9e7327107039fa4c5a4", - "receiptsRoot": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd566e5cc25d41284054a31397767ca3f5425bc37ddb5dd8ec28473e2b2109161", - "transactions": [ - "0x02f88301020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c080a04d7e6db1a50d750aa6e671e147c44e37e460b626a0d5ad6e62149a9f436ef7b7a042eb52270f20d1e0c45b9eab50029353f7b7a0a129e0d578f89435315ec062c7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xca37d8c9fc3f2df26d7e633cf72ae96179b448ce69f5ca6879a9757e724f1fae" }, "blocknumber": "3", "transactions": [ @@ -1579,12 +1162,12 @@ "withdrawals": [] }, { - "rlp": "0xf902cbf9023ca0d566e5cc25d41284054a31397767ca3f5425bc37ddb5dd8ec28473e2b2109161a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ac2d0f0a987ff1c3c6011ba5dc79986d43e6a12428228da6d31eb2dd900c4aea0fddac3483d3f10e7d4a8a0f770e6fa1a0b8f6a3ef04f9d5eebea6aae525ab479a0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082a8fd3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c080a0ddd8605cdd5d9912ae45a3ec380013daef41af502d303b4f239649f819c06540a0224d23d9271f98b7263efa583d1b75bfe00aca5642be13e4f089aaf538a53bf7c0c0", + "rlp": "0xf902cbf9023ca0ca37d8c9fc3f2df26d7e633cf72ae96179b448ce69f5ca6879a9757e724f1faea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0668ab07521c5731ae980c2f0e469a69a8ae0d24b0d3941e42e74dd67bf4d90e5a0fddac3483d3f10e7d4a8a0f770e6fa1a0b8f6a3ef04f9d5eebea6aae525ab479a0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082a8fd3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c080a0ddd8605cdd5d9912ae45a3ec380013daef41af502d303b4f239649f819c06540a0224d23d9271f98b7263efa583d1b75bfe00aca5642be13e4f089aaf538a53bf7c0c0", "blockHeader": { - "parentHash": "0xd566e5cc25d41284054a31397767ca3f5425bc37ddb5dd8ec28473e2b2109161", + "parentHash": "0xca37d8c9fc3f2df26d7e633cf72ae96179b448ce69f5ca6879a9757e724f1fae", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ac2d0f0a987ff1c3c6011ba5dc79986d43e6a12428228da6d31eb2dd900c4ae", + "stateRoot": "0x668ab07521c5731ae980c2f0e469a69a8ae0d24b0d3941e42e74dd67bf4d90e5", "transactionsTrie": "0xfddac3483d3f10e7d4a8a0f770e6fa1a0b8f6a3ef04f9d5eebea6aae525ab479", "receiptTrie": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1601,33 +1184,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x17649906e67efb8547bd5bab9e1654a4d35d0b34e0591c9bad2734b7a7637fa1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd566e5cc25d41284054a31397767ca3f5425bc37ddb5dd8ec28473e2b2109161", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ac2d0f0a987ff1c3c6011ba5dc79986d43e6a12428228da6d31eb2dd900c4ae", - "receiptsRoot": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x30", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x17649906e67efb8547bd5bab9e1654a4d35d0b34e0591c9bad2734b7a7637fa1", - "transactions": [ - "0x02f88301030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c080a0ddd8605cdd5d9912ae45a3ec380013daef41af502d303b4f239649f819c06540a0224d23d9271f98b7263efa583d1b75bfe00aca5642be13e4f089aaf538a53bf7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0c9216e527af25387450c3c6aedddbbba475a7f24a8eb10a47dca7dd5b63bc9c" }, "blocknumber": "4", "transactions": [ @@ -1652,12 +1209,12 @@ "withdrawals": [] }, { - "rlp": "0xf902cbf9023ca017649906e67efb8547bd5bab9e1654a4d35d0b34e0591c9bad2734b7a7637fa1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa058aa0c01605f0857bda688549a3c0b62b4dec803f80bc8028ae49526b88d35a8a037827670d602b41fcfe7d6f7c33715300a72602d4a308045f94f2e507a3e390aa0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082a8fd3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c001a00f6eb5a602e2c12adb15133991f632e09e5a56fc8332aed265d16640b71011d5a0389f37e5fe61d123476929e1b836fc11ff0a0c72712792d309ecde4d02a2360ac0c0", + "rlp": "0xf902cbf9023ca00c9216e527af25387450c3c6aedddbbba475a7f24a8eb10a47dca7dd5b63bc9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0487bc4e411c8a5ff90dbfcdccca66f8c89abde149ec080a0d115f3bd22e4f3c2a037827670d602b41fcfe7d6f7c33715300a72602d4a308045f94f2e507a3e390aa0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082a8fd3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c001a00f6eb5a602e2c12adb15133991f632e09e5a56fc8332aed265d16640b71011d5a0389f37e5fe61d123476929e1b836fc11ff0a0c72712792d309ecde4d02a2360ac0c0", "blockHeader": { - "parentHash": "0x17649906e67efb8547bd5bab9e1654a4d35d0b34e0591c9bad2734b7a7637fa1", + "parentHash": "0x0c9216e527af25387450c3c6aedddbbba475a7f24a8eb10a47dca7dd5b63bc9c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58aa0c01605f0857bda688549a3c0b62b4dec803f80bc8028ae49526b88d35a8", + "stateRoot": "0x487bc4e411c8a5ff90dbfcdccca66f8c89abde149ec080a0d115f3bd22e4f3c2", "transactionsTrie": "0x37827670d602b41fcfe7d6f7c33715300a72602d4a308045f94f2e507a3e390a", "receiptTrie": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1674,33 +1231,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7a784aebc9d4fdcf4d7c24b4d7b3ba571adcb826aa0db352d8ad0fa04b973fdd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x17649906e67efb8547bd5bab9e1654a4d35d0b34e0591c9bad2734b7a7637fa1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58aa0c01605f0857bda688549a3c0b62b4dec803f80bc8028ae49526b88d35a8", - "receiptsRoot": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x3c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7a784aebc9d4fdcf4d7c24b4d7b3ba571adcb826aa0db352d8ad0fa04b973fdd", - "transactions": [ - "0x02f88301040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c001a00f6eb5a602e2c12adb15133991f632e09e5a56fc8332aed265d16640b71011d5a0389f37e5fe61d123476929e1b836fc11ff0a0c72712792d309ecde4d02a2360a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfd221cc3e45c88b831a8c556da54f2040b754a74f94b23e7573ab2cb7e309f91" }, "blocknumber": "5", "transactions": [ @@ -1725,12 +1256,12 @@ "withdrawals": [] }, { - "rlp": "0xf902cbf9023ca07a784aebc9d4fdcf4d7c24b4d7b3ba571adcb826aa0db352d8ad0fa04b973fdda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08efc21ba02b20b6688a736e503b9b9435385590841c8de992c14b96a46ef851aa0789412e2d16f98475432b10e888f2931e61ad5f572e8fadce84dee00f5ab4d8da0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082a8fd4880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301050a0a832dc6c094000000000000000000000000000000000000060080a00000000000000000000000000000000000000000000000000000000000000000c080a0cf158f0bb946485de93005598254c0e1aba6cb9c36aa749ff6174dbfb8deae0da05a9ceb52f023e3c1932785c87061576e4672854797878cd45fec3c736ba26049c0c0", + "rlp": "0xf902cbf9023ca0fd221cc3e45c88b831a8c556da54f2040b754a74f94b23e7573ab2cb7e309f91a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa089d4795c3d53287598de626e0f4022707701d673eb1d181a774e8305f3a90e97a0789412e2d16f98475432b10e888f2931e61ad5f572e8fadce84dee00f5ab4d8da0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082a8fd4880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301050a0a832dc6c094000000000000000000000000000000000000060080a00000000000000000000000000000000000000000000000000000000000000000c080a0cf158f0bb946485de93005598254c0e1aba6cb9c36aa749ff6174dbfb8deae0da05a9ceb52f023e3c1932785c87061576e4672854797878cd45fec3c736ba26049c0c0", "blockHeader": { - "parentHash": "0x7a784aebc9d4fdcf4d7c24b4d7b3ba571adcb826aa0db352d8ad0fa04b973fdd", + "parentHash": "0xfd221cc3e45c88b831a8c556da54f2040b754a74f94b23e7573ab2cb7e309f91", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8efc21ba02b20b6688a736e503b9b9435385590841c8de992c14b96a46ef851a", + "stateRoot": "0x89d4795c3d53287598de626e0f4022707701d673eb1d181a774e8305f3a90e97", "transactionsTrie": "0x789412e2d16f98475432b10e888f2931e61ad5f572e8fadce84dee00f5ab4d8d", "receiptTrie": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1747,33 +1278,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5a1f606dc25b7df744d434c39c59f6aeaff331f7cc134c31a16e59aba2231b18" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7a784aebc9d4fdcf4d7c24b4d7b3ba571adcb826aa0db352d8ad0fa04b973fdd", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8efc21ba02b20b6688a736e503b9b9435385590841c8de992c14b96a46ef851a", - "receiptsRoot": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x48", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5a1f606dc25b7df744d434c39c59f6aeaff331f7cc134c31a16e59aba2231b18", - "transactions": [ - "0x02f88301050a0a832dc6c094000000000000000000000000000000000000060080a00000000000000000000000000000000000000000000000000000000000000000c080a0cf158f0bb946485de93005598254c0e1aba6cb9c36aa749ff6174dbfb8deae0da05a9ceb52f023e3c1932785c87061576e4672854797878cd45fec3c736ba26049" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8dc1670ef56f1602d8a4da3ba37a10b031c0e3527efbb08a7b2a956a17403ce7" }, "blocknumber": "6", "transactions": [ @@ -1798,12 +1303,12 @@ "withdrawals": [] }, { - "rlp": "0xf902cbf9023ca05a1f606dc25b7df744d434c39c59f6aeaff331f7cc134c31a16e59aba2231b18a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f6a95128eebe073fc7b5e5ebd376686de8c8d6bac9be6d92634a794d7e1ec34ea07f2387ccc249cde93d990461143898d61a7a107e859c8044379108dfccc4ece3a0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082a8fd5480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301060a0a832dc6c094000000000000000000000000000000000000070080a00000000000000000000000000000000000000000000000000000000000000000c001a06548a9876647e3c75254fff8e382bfee460fa49acd437c64fdb46e3f772563a7a04b3c0c32163dc0ae4f7d51413cdb1b746c59537c4a83ca45438af7cec7527bbdc0c0", + "rlp": "0xf902cbf9023ca08dc1670ef56f1602d8a4da3ba37a10b031c0e3527efbb08a7b2a956a17403ce7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0190eaaa91c42a8ccc9425ef1050b16f0aeda63f1fb86f3f516131b7451ea27a8a07f2387ccc249cde93d990461143898d61a7a107e859c8044379108dfccc4ece3a0ddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082a8fd5480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301060a0a832dc6c094000000000000000000000000000000000000070080a00000000000000000000000000000000000000000000000000000000000000000c001a06548a9876647e3c75254fff8e382bfee460fa49acd437c64fdb46e3f772563a7a04b3c0c32163dc0ae4f7d51413cdb1b746c59537c4a83ca45438af7cec7527bbdc0c0", "blockHeader": { - "parentHash": "0x5a1f606dc25b7df744d434c39c59f6aeaff331f7cc134c31a16e59aba2231b18", + "parentHash": "0x8dc1670ef56f1602d8a4da3ba37a10b031c0e3527efbb08a7b2a956a17403ce7", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf6a95128eebe073fc7b5e5ebd376686de8c8d6bac9be6d92634a794d7e1ec34e", + "stateRoot": "0x190eaaa91c42a8ccc9425ef1050b16f0aeda63f1fb86f3f516131b7451ea27a8", "transactionsTrie": "0x7f2387ccc249cde93d990461143898d61a7a107e859c8044379108dfccc4ece3", "receiptTrie": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1820,33 +1325,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3abdd44dfe99eff30488ee093d0d1431d840256a67e34f87b98cf5d7ef8c27ab" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5a1f606dc25b7df744d434c39c59f6aeaff331f7cc134c31a16e59aba2231b18", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf6a95128eebe073fc7b5e5ebd376686de8c8d6bac9be6d92634a794d7e1ec34e", - "receiptsRoot": "0xddd7e48dae1803377eed446c6bb97e5eb85edfc25b90c13f9bad349ed4408142", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x54", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3abdd44dfe99eff30488ee093d0d1431d840256a67e34f87b98cf5d7ef8c27ab", - "transactions": [ - "0x02f88301060a0a832dc6c094000000000000000000000000000000000000070080a00000000000000000000000000000000000000000000000000000000000000000c001a06548a9876647e3c75254fff8e382bfee460fa49acd437c64fdb46e3f772563a7a04b3c0c32163dc0ae4f7d51413cdb1b746c59537c4a83ca45438af7cec7527bbd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1df856714477371dbc49d6d9afd60c2765037ad626820cb4c11f1204200d9bde" }, "blocknumber": "7", "transactions": [ @@ -1871,39 +1350,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x39a9d0ced1cc84de4b612347b2d03f0808642cc8f7a9de6927c2b77771569837", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a039a9d0ced1cc84de4b612347b2d03f0808642cc8f7a9de6927c2b77771569837a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3abdd44dfe99eff30488ee093d0d1431d840256a67e34f87b98cf5d7ef8c27ab", - "network": "Cancun", + "lastblockhash": "0x1df856714477371dbc49d6d9afd60c2765037ad626820cb4c11f1204200d9bde", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1946,6 +1394,12 @@ "code": "0x5a7fa12c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f495a905090036005900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -1954,20 +1408,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24", - "0x30": "0x30", - "0x3c": "0x3c", - "0x48": "0x48", - "0x54": "0x54" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2024,6 +1464,20 @@ "0x00": "0x03" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c", + "0x48": "0x48", + "0x54": "0x54" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0ddcc1", @@ -2041,18 +1495,43 @@ }, "003-fork=Cancun-tx_type=3": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0690910135eeb63861e7205ad79674f12abf2fece9f8f021e69ca67e4d06ffec8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x690910135eeb63861e7205ad79674f12abf2fece9f8f021e69ca67e4d06ffec8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55c" + }, "blocks": [ { - "rlp": "0xf90334f9023fa0216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ea780eed6619b16073dd038bd4fc274ac56da7d67f90394dc9b4954ff12b1a24a087c87ecf1056228d712dc0aa68d8674f5e32eb7c4e55285fac8bb7f1090817e2a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8fd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d01a05a6dd0855fde64417f22a8bcfaa777ae0826e76c1ed5383018427eafca28f118a00c19149b22c672911cae327be9d585ded5f13aed658765a6e17ac9d728d13649c0c0", + "rlp": "0xf90334f9023fa09d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa091124e7cec08aff27d6c9ea32a4cb1894821ec49b20e8d97bce30bd86737deeca087c87ecf1056228d712dc0aa68d8674f5e32eb7c4e55285fac8bb7f1090817e2a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8fd0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d01a05a6dd0855fde64417f22a8bcfaa777ae0826e76c1ed5383018427eafca28f118a00c19149b22c672911cae327be9d585ded5f13aed658765a6e17ac9d728d13649c0c0", "blockHeader": { - "parentHash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8", + "parentHash": "0x9d74413f334dcf740b5d7d82db4b0cd4a847917809d1436d0f264312c365c55c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xea780eed6619b16073dd038bd4fc274ac56da7d67f90394dc9b4954ff12b1a24", + "stateRoot": "0x91124e7cec08aff27d6c9ea32a4cb1894821ec49b20e8d97bce30bd86737deec", "transactionsTrie": "0x87c87ecf1056228d712dc0aa68d8674f5e32eb7c4e55285fac8bb7f1090817e2", "receiptTrie": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2069,37 +1548,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x99faf35c4767bd32f0d3194112ad866a6638f83efbd2d7612d1920bd7fc11045" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xea780eed6619b16073dd038bd4fc274ac56da7d67f90394dc9b4954ff12b1a24", - "receiptsRoot": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x99faf35c4767bd32f0d3194112ad866a6638f83efbd2d7612d1920bd7fc11045", - "transactions": [ - "0x03f8e901800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d01a05a6dd0855fde64417f22a8bcfaa777ae0826e76c1ed5383018427eafca28f118a00c19149b22c672911cae327be9d585ded5f13aed658765a6e17ac9d728d13649" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdf525f049f7dff4446be9fc04da3376cac9264e7d2f9cb65580c23ef687d586f" }, "blocknumber": "1", "transactions": [ @@ -2130,12 +1579,12 @@ "withdrawals": [] }, { - "rlp": "0xf90334f9023fa099faf35c4767bd32f0d3194112ad866a6638f83efbd2d7612d1920bd7fc11045a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00e5aaf3fb992abfa5659bc8c0eeafdb1952917a4ac6ae1c43eb33ac3f5d442cba050ff533dfa052514407612bad7fb5acab475b3dc92ffc3b29a9cfa672b47d9eea0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8fd1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a0ab427559b1de8cb8cd747b8a63155fade6a375da8ab7437890e4241507571cdea055a113242f0999b4c50035a5b7663e254a8bd02ca76f37505daa9a0c2dc4c381c0c0", + "rlp": "0xf90334f9023fa0df525f049f7dff4446be9fc04da3376cac9264e7d2f9cb65580c23ef687d586fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06da05f8cc5a94cf7e4ed12b985c58de5aaa1a816577018eb27e480375ac50593a050ff533dfa052514407612bad7fb5acab475b3dc92ffc3b29a9cfa672b47d9eea0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8fd1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a0ab427559b1de8cb8cd747b8a63155fade6a375da8ab7437890e4241507571cdea055a113242f0999b4c50035a5b7663e254a8bd02ca76f37505daa9a0c2dc4c381c0c0", "blockHeader": { - "parentHash": "0x99faf35c4767bd32f0d3194112ad866a6638f83efbd2d7612d1920bd7fc11045", + "parentHash": "0xdf525f049f7dff4446be9fc04da3376cac9264e7d2f9cb65580c23ef687d586f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0e5aaf3fb992abfa5659bc8c0eeafdb1952917a4ac6ae1c43eb33ac3f5d442cb", + "stateRoot": "0x6da05f8cc5a94cf7e4ed12b985c58de5aaa1a816577018eb27e480375ac50593", "transactionsTrie": "0x50ff533dfa052514407612bad7fb5acab475b3dc92ffc3b29a9cfa672b47d9ee", "receiptTrie": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2152,37 +1601,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x562ca061a678b3acf30aeb02db56e3273171619f739051a0022baf6c06564caf" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x99faf35c4767bd32f0d3194112ad866a6638f83efbd2d7612d1920bd7fc11045", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0e5aaf3fb992abfa5659bc8c0eeafdb1952917a4ac6ae1c43eb33ac3f5d442cb", - "receiptsRoot": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x562ca061a678b3acf30aeb02db56e3273171619f739051a0022baf6c06564caf", - "transactions": [ - "0x03f8e901010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a0ab427559b1de8cb8cd747b8a63155fade6a375da8ab7437890e4241507571cdea055a113242f0999b4c50035a5b7663e254a8bd02ca76f37505daa9a0c2dc4c381" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbebafd2dea5d05333cfc5ab75064c2937bf8be73b80143c9ff82b5c71f22a362" }, "blocknumber": "2", "transactions": [ @@ -2213,12 +1632,12 @@ "withdrawals": [] }, { - "rlp": "0xf90334f9023fa0562ca061a678b3acf30aeb02db56e3273171619f739051a0022baf6c06564cafa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b78e7e42e98251651d40d44ccf3a1032a146f98de2929a4bdac772ba6a877a04fc1d2acee1c002a72179d657e6dbc9b2091d3c86a6c650c8cb5e8dac14bcfc1a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082a8fd2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a03f223f1bcafc369fe789489c550f2ec22fab05cd8408da133d41a4688d42cce7a019bce040c9504db7bab5a7685862356f935ed8e4a1a0d309b9c364a62fad8fa1c0c0", + "rlp": "0xf90334f9023fa0bebafd2dea5d05333cfc5ab75064c2937bf8be73b80143c9ff82b5c71f22a362a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d0dd83b01d8dbfe0916d91471798b8a0f456a5fc6e078b5b455f556120f29546a04fc1d2acee1c002a72179d657e6dbc9b2091d3c86a6c650c8cb5e8dac14bcfc1a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082a8fd2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a03f223f1bcafc369fe789489c550f2ec22fab05cd8408da133d41a4688d42cce7a019bce040c9504db7bab5a7685862356f935ed8e4a1a0d309b9c364a62fad8fa1c0c0", "blockHeader": { - "parentHash": "0x562ca061a678b3acf30aeb02db56e3273171619f739051a0022baf6c06564caf", + "parentHash": "0xbebafd2dea5d05333cfc5ab75064c2937bf8be73b80143c9ff82b5c71f22a362", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b78e7e42e98251651d40d44ccf3a1032a146f98de2929a4bdac772ba6a877", + "stateRoot": "0xd0dd83b01d8dbfe0916d91471798b8a0f456a5fc6e078b5b455f556120f29546", "transactionsTrie": "0x4fc1d2acee1c002a72179d657e6dbc9b2091d3c86a6c650c8cb5e8dac14bcfc1", "receiptTrie": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2235,37 +1654,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc7dfa63633e52a710d42deeed3aae8eb79155e655afb2f2dce0f4a5e6ff28fde" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x562ca061a678b3acf30aeb02db56e3273171619f739051a0022baf6c06564caf", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b78e7e42e98251651d40d44ccf3a1032a146f98de2929a4bdac772ba6a877", - "receiptsRoot": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xc7dfa63633e52a710d42deeed3aae8eb79155e655afb2f2dce0f4a5e6ff28fde", - "transactions": [ - "0x03f8e901020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a03f223f1bcafc369fe789489c550f2ec22fab05cd8408da133d41a4688d42cce7a019bce040c9504db7bab5a7685862356f935ed8e4a1a0d309b9c364a62fad8fa1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xce0608c61dc4b85a202581ceaf59f26bd10b5e365730d0e33fb9cb7ccb392241" }, "blocknumber": "3", "transactions": [ @@ -2296,12 +1685,12 @@ "withdrawals": [] }, { - "rlp": "0xf90333f9023fa0c7dfa63633e52a710d42deeed3aae8eb79155e655afb2f2dce0f4a5e6ff28fdea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ae8710e65b42be3b7b6cda8e5ecc4b7f031e605a8067820fd6552e570a76a33fa0915cad2faadc14a13d63900372dcc60300d0b0f17018bc0a104bb39808981014a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082a8fd3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8edb8eb03f8e801030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d01a045c49fb3111df3867f9d4f7d4bbfc2599305d7691206356a281b4fbda98f732d9f72c163b745f819f3408e8c3e2bf01fa5ef4d8ed94fd1127580e853d96fa0a8c0c0", + "rlp": "0xf90333f9023fa0ce0608c61dc4b85a202581ceaf59f26bd10b5e365730d0e33fb9cb7ccb392241a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0605b845985d15e048c021509db518a16080027e6d78b05c7d88c64720b14d5aca0915cad2faadc14a13d63900372dcc60300d0b0f17018bc0a104bb39808981014a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082a8fd3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8edb8eb03f8e801030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d01a045c49fb3111df3867f9d4f7d4bbfc2599305d7691206356a281b4fbda98f732d9f72c163b745f819f3408e8c3e2bf01fa5ef4d8ed94fd1127580e853d96fa0a8c0c0", "blockHeader": { - "parentHash": "0xc7dfa63633e52a710d42deeed3aae8eb79155e655afb2f2dce0f4a5e6ff28fde", + "parentHash": "0xce0608c61dc4b85a202581ceaf59f26bd10b5e365730d0e33fb9cb7ccb392241", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xae8710e65b42be3b7b6cda8e5ecc4b7f031e605a8067820fd6552e570a76a33f", + "stateRoot": "0x605b845985d15e048c021509db518a16080027e6d78b05c7d88c64720b14d5ac", "transactionsTrie": "0x915cad2faadc14a13d63900372dcc60300d0b0f17018bc0a104bb39808981014", "receiptTrie": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2318,37 +1707,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfe6923c95c6e584210c0d9009d97c4593fcd5781dbb254a114d8d25a1a346649" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc7dfa63633e52a710d42deeed3aae8eb79155e655afb2f2dce0f4a5e6ff28fde", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xae8710e65b42be3b7b6cda8e5ecc4b7f031e605a8067820fd6552e570a76a33f", - "receiptsRoot": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x30", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xfe6923c95c6e584210c0d9009d97c4593fcd5781dbb254a114d8d25a1a346649", - "transactions": [ - "0x03f8e801030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d01a045c49fb3111df3867f9d4f7d4bbfc2599305d7691206356a281b4fbda98f732d9f72c163b745f819f3408e8c3e2bf01fa5ef4d8ed94fd1127580e853d96fa0a8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfe00772e4b86e4d096eaa927218b6842b4f50f794cf4dc91ed9cd2b44ba307aa" }, "blocknumber": "4", "transactions": [ @@ -2379,12 +1738,12 @@ "withdrawals": [] }, { - "rlp": "0xf90334f9023fa0fe6923c95c6e584210c0d9009d97c4593fcd5781dbb254a114d8d25a1a346649a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fac2c8590c1760a36dec278045b9894ca6144298a235bb47fed99c3c8773a5b7a017688404051b1404fe3803b79e2ff940158358d2bcafb8f26ea30d75fd9339fea0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082a8fd3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a08f7b48159df95bbc7f95bf0e000c64f1eed78a3ea3c8bf5d503481c1bcc6be7ca056ce74adea3c8fa0eea7a86e8984e1bfac950df68d3eeb91515dc25355cdff78c0c0", + "rlp": "0xf90334f9023fa0fe00772e4b86e4d096eaa927218b6842b4f50f794cf4dc91ed9cd2b44ba307aaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0249524323b5dddca7201953ae3f2d824acddf365be5203586650b119f489a878a017688404051b1404fe3803b79e2ff940158358d2bcafb8f26ea30d75fd9339fea0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082a8fd3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a08f7b48159df95bbc7f95bf0e000c64f1eed78a3ea3c8bf5d503481c1bcc6be7ca056ce74adea3c8fa0eea7a86e8984e1bfac950df68d3eeb91515dc25355cdff78c0c0", "blockHeader": { - "parentHash": "0xfe6923c95c6e584210c0d9009d97c4593fcd5781dbb254a114d8d25a1a346649", + "parentHash": "0xfe00772e4b86e4d096eaa927218b6842b4f50f794cf4dc91ed9cd2b44ba307aa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfac2c8590c1760a36dec278045b9894ca6144298a235bb47fed99c3c8773a5b7", + "stateRoot": "0x249524323b5dddca7201953ae3f2d824acddf365be5203586650b119f489a878", "transactionsTrie": "0x17688404051b1404fe3803b79e2ff940158358d2bcafb8f26ea30d75fd9339fe", "receiptTrie": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2401,37 +1760,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd7cceca53e06e1fc1ce4d24d351eb0e948dfad863b9c88c56aa647f1f2571ef0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfe6923c95c6e584210c0d9009d97c4593fcd5781dbb254a114d8d25a1a346649", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfac2c8590c1760a36dec278045b9894ca6144298a235bb47fed99c3c8773a5b7", - "receiptsRoot": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x3c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xd7cceca53e06e1fc1ce4d24d351eb0e948dfad863b9c88c56aa647f1f2571ef0", - "transactions": [ - "0x03f8e901040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a08f7b48159df95bbc7f95bf0e000c64f1eed78a3ea3c8bf5d503481c1bcc6be7ca056ce74adea3c8fa0eea7a86e8984e1bfac950df68d3eeb91515dc25355cdff78" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x668b36fecff22ce8c6845c735e5195330e7f27f3f0e047868fab514db9e1a545" }, "blocknumber": "5", "transactions": [ @@ -2462,12 +1791,12 @@ "withdrawals": [] }, { - "rlp": "0xf90334f9023fa0d7cceca53e06e1fc1ce4d24d351eb0e948dfad863b9c88c56aa647f1f2571ef0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa001a3b2f7d0481cb921490baf987cdca90aef743a7e3b55808b2086aa007f855da0dccc897128f7e23d52f7225b9a34d2016acd67bcc082be295dc6590fca6bae50a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082a8fd4880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901050a0a832dc6c094000000000000000000000000000000000000060080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a041a0578bd2d8be3a40a1a25d7bc0e80805b22566382c5c8f9f820fd74e1acc9aa01e5b1b0f7ea9e855efd411adb8e0d99efe090ca4da8d2da341df973feffae028c0c0", + "rlp": "0xf90334f9023fa0668b36fecff22ce8c6845c735e5195330e7f27f3f0e047868fab514db9e1a545a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa095f01dcf9fbb22d1a2acd09392b5a7b5cc218aa92b5100543e5f179648c12363a0dccc897128f7e23d52f7225b9a34d2016acd67bcc082be295dc6590fca6bae50a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082a8fd4880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901050a0a832dc6c094000000000000000000000000000000000000060080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a041a0578bd2d8be3a40a1a25d7bc0e80805b22566382c5c8f9f820fd74e1acc9aa01e5b1b0f7ea9e855efd411adb8e0d99efe090ca4da8d2da341df973feffae028c0c0", "blockHeader": { - "parentHash": "0xd7cceca53e06e1fc1ce4d24d351eb0e948dfad863b9c88c56aa647f1f2571ef0", + "parentHash": "0x668b36fecff22ce8c6845c735e5195330e7f27f3f0e047868fab514db9e1a545", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x01a3b2f7d0481cb921490baf987cdca90aef743a7e3b55808b2086aa007f855d", + "stateRoot": "0x95f01dcf9fbb22d1a2acd09392b5a7b5cc218aa92b5100543e5f179648c12363", "transactionsTrie": "0xdccc897128f7e23d52f7225b9a34d2016acd67bcc082be295dc6590fca6bae50", "receiptTrie": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2484,37 +1813,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x57f4f9e1153f7692b434b1d67317ab497bdf69c7e6c2bda6f68530861e2e7d26" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd7cceca53e06e1fc1ce4d24d351eb0e948dfad863b9c88c56aa647f1f2571ef0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x01a3b2f7d0481cb921490baf987cdca90aef743a7e3b55808b2086aa007f855d", - "receiptsRoot": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x48", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x57f4f9e1153f7692b434b1d67317ab497bdf69c7e6c2bda6f68530861e2e7d26", - "transactions": [ - "0x03f8e901050a0a832dc6c094000000000000000000000000000000000000060080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a041a0578bd2d8be3a40a1a25d7bc0e80805b22566382c5c8f9f820fd74e1acc9aa01e5b1b0f7ea9e855efd411adb8e0d99efe090ca4da8d2da341df973feffae028" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb9bf950c9fded811d0ba9cd8ace006aca889df6881dc281d93e6093bcb745c1d" }, "blocknumber": "6", "transactions": [ @@ -2545,12 +1844,12 @@ "withdrawals": [] }, { - "rlp": "0xf90334f9023fa057f4f9e1153f7692b434b1d67317ab497bdf69c7e6c2bda6f68530861e2e7d26a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa053a5deaea72e520ced8e621c2f3fdc6e2c6b37c26fda1a9ae5354c8ed4357087a0402e2d0b2276fbc39fed68d1024548d960c8ebed2d6e534f54d4d3d41cd4d806a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082a8fd5480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901060a0a832dc6c094000000000000000000000000000000000000070080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d01a095cd0564846b6a222ecfc34c3fc38f84f71bcc46f0f96ba54c72ece0d99e9421a041124220dbc5c98bebf70f9732b6794649aef5e6b7030a8dca7069d2163b7d06c0c0", + "rlp": "0xf90334f9023fa0b9bf950c9fded811d0ba9cd8ace006aca889df6881dc281d93e6093bcb745c1da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00522a621a66c3c216d77747aa1d8767c7d4a0bcc2f0e3eebfa92be3bc3d0203fa0402e2d0b2276fbc39fed68d1024548d960c8ebed2d6e534f54d4d3d41cd4d806a0f65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082a8fd5480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901060a0a832dc6c094000000000000000000000000000000000000070080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d01a095cd0564846b6a222ecfc34c3fc38f84f71bcc46f0f96ba54c72ece0d99e9421a041124220dbc5c98bebf70f9732b6794649aef5e6b7030a8dca7069d2163b7d06c0c0", "blockHeader": { - "parentHash": "0x57f4f9e1153f7692b434b1d67317ab497bdf69c7e6c2bda6f68530861e2e7d26", + "parentHash": "0xb9bf950c9fded811d0ba9cd8ace006aca889df6881dc281d93e6093bcb745c1d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x53a5deaea72e520ced8e621c2f3fdc6e2c6b37c26fda1a9ae5354c8ed4357087", + "stateRoot": "0x0522a621a66c3c216d77747aa1d8767c7d4a0bcc2f0e3eebfa92be3bc3d0203f", "transactionsTrie": "0x402e2d0b2276fbc39fed68d1024548d960c8ebed2d6e534f54d4d3d41cd4d806", "receiptTrie": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2567,37 +1866,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9550805deef7131dd5ac9789f5083bba885318c745ccc5c677ed5a8c7a21f599" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x57f4f9e1153f7692b434b1d67317ab497bdf69c7e6c2bda6f68530861e2e7d26", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x53a5deaea72e520ced8e621c2f3fdc6e2c6b37c26fda1a9ae5354c8ed4357087", - "receiptsRoot": "0xf65ad5b57bdb5719a027811d2a433647d933f3c59dbaf06beb4992b03ea33110", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa8fd", - "timestamp": "0x54", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x9550805deef7131dd5ac9789f5083bba885318c745ccc5c677ed5a8c7a21f599", - "transactions": [ - "0x03f8e901060a0a832dc6c094000000000000000000000000000000000000070080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d01a095cd0564846b6a222ecfc34c3fc38f84f71bcc46f0f96ba54c72ece0d99e9421a041124220dbc5c98bebf70f9732b6794649aef5e6b7030a8dca7069d2163b7d06" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdd93c7e7c846b85e0141dce8c7fdd4af5af9af8713d2d044664a9fe77bc0a6f6" }, "blocknumber": "7", "transactions": [ @@ -2628,39 +1897,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x39a9d0ced1cc84de4b612347b2d03f0808642cc8f7a9de6927c2b77771569837", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x216f2ae6f1e5b81d4d0d98fdbb22392c01f19a810e0215126f380ee022573ea8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a039a9d0ced1cc84de4b612347b2d03f0808642cc8f7a9de6927c2b77771569837a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9550805deef7131dd5ac9789f5083bba885318c745ccc5c677ed5a8c7a21f599", - "network": "Cancun", + "lastblockhash": "0xdd93c7e7c846b85e0141dce8c7fdd4af5af9af8713d2d044664a9fe77bc0a6f6", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2703,6 +1941,12 @@ "code": "0x5a7fa12c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f495a905090036005900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -2711,20 +1955,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24", - "0x30": "0x30", - "0x3c": "0x3c", - "0x48": "0x48", - "0x54": "0x54" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2781,6 +2011,20 @@ "0x00": "0x03" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c", + "0x48": "0x48", + "0x54": "0x54" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0ddcc1", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json index 0408332dd8e..3f9d4ed1168 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_invalid_blob_index.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-scenario=invalid_calls": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c76651679245d12c595a4b8410d1b9c304d30d046ffd8d6cccaca60d236c3d9da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc76651679245d12c595a4b8410d1b9c304d30d046ffd8d6cccaca60d236c3d9d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd740910fbc96269d7a4390b3dfe01a46e38d7044b63bef23a47b9200da745616" + }, "blocks": [ { - "rlp": "0xf902f2f90240a04ab1cdcca1e738d19a68e8f42c20b4dd9ad70090a7725e148fb101546a4a3439a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa082f0d9f8f4bddae46fa2502bd9e3cdccfd69c3b0721a98bc85f56137d5ae6d38a0633c0bf25e5eb5eeb49b4907987d382b551988d9f100dd02aa838c1c648b3fdca00cc1fea050e3c1da8ee7cb330d9198fdc59c29586855161fbf5dbfb8a24d1c0db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083035fda0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a601800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00ae1a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f01a05b217246c6eb884665f5c6b1c4c1cfc6bbb474f2294f6efd26b9a229de1dcc63a06128121c41516e8b1442884c529aae99b7f033f235477c5a404cafdaa0c0251bc0c0", + "rlp": "0xf902f2f90240a0d740910fbc96269d7a4390b3dfe01a46e38d7044b63bef23a47b9200da745616a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d06cd6dfa80edbfcf492f06b687602a29412197979a9cd556a301c206e6ca78da0633c0bf25e5eb5eeb49b4907987d382b551988d9f100dd02aa838c1c648b3fdca00cc1fea050e3c1da8ee7cb330d9198fdc59c29586855161fbf5dbfb8a24d1c0db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083035fda0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a601800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00ae1a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f01a05b217246c6eb884665f5c6b1c4c1cfc6bbb474f2294f6efd26b9a229de1dcc63a06128121c41516e8b1442884c529aae99b7f033f235477c5a404cafdaa0c0251bc0c0", "blockHeader": { - "parentHash": "0x4ab1cdcca1e738d19a68e8f42c20b4dd9ad70090a7725e148fb101546a4a3439", + "parentHash": "0xd740910fbc96269d7a4390b3dfe01a46e38d7044b63bef23a47b9200da745616", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x82f0d9f8f4bddae46fa2502bd9e3cdccfd69c3b0721a98bc85f56137d5ae6d38", + "stateRoot": "0xd06cd6dfa80edbfcf492f06b687602a29412197979a9cd556a301c206e6ca78d", "transactionsTrie": "0x633c0bf25e5eb5eeb49b4907987d382b551988d9f100dd02aa838c1c648b3fdc", "receiptTrie": "0x0cc1fea050e3c1da8ee7cb330d9198fdc59c29586855161fbf5dbfb8a24d1c0d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,35 +54,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa3c01f11be538bb37addaaafca79c57b8a13cb796df36150e799415633f32a79" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ab1cdcca1e738d19a68e8f42c20b4dd9ad70090a7725e148fb101546a4a3439", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x82f0d9f8f4bddae46fa2502bd9e3cdccfd69c3b0721a98bc85f56137d5ae6d38", - "receiptsRoot": "0x0cc1fea050e3c1da8ee7cb330d9198fdc59c29586855161fbf5dbfb8a24d1c0d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x35fda", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xa3c01f11be538bb37addaaafca79c57b8a13cb796df36150e799415633f32a79", - "transactions": [ - "0x03f8a601800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00ae1a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f01a05b217246c6eb884665f5c6b1c4c1cfc6bbb474f2294f6efd26b9a229de1dcc63a06128121c41516e8b1442884c529aae99b7f033f235477c5a404cafdaa0c0251b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2cef76f5b7007aff55e6ade82e6ad2aa1435ea53f740085f9d3cacf7bbdace64" }, "blocknumber": "1", "transactions": [ @@ -86,12 +83,12 @@ "withdrawals": [] }, { - "rlp": "0xf90314f90240a0a3c01f11be538bb37addaaafca79c57b8a13cb796df36150e799415633f32a79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b30726c3bab97f7c8d60c34d161964e2980ccb28804f65bbe0a59eefbe9c2486a05b395aba87c49ef7f13d37eaa0809ca08ef3da08cbe151061db8562d5a3e4344a0cf1d33e61af0fcc40b10d2e5b5a696a4671c10bd3961e4b11fe7b85997dcb90bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000083039e0a1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c801010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af842a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a08e233d229e63d6d4b41934f1439ed0f60f8ba00077fe59ce1707ec9e5f9d3c0ca0344ca4a7237388d696e80b653ceaaf5c5036412ecd70354028e2dcc2782fe656c0c0", + "rlp": "0xf90314f90240a02cef76f5b7007aff55e6ade82e6ad2aa1435ea53f740085f9d3cacf7bbdace64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0475a6db08cafaef99345e9ae26b49971eef07a567f96e9cf3a38566ac8dd132ba05b395aba87c49ef7f13d37eaa0809ca08ef3da08cbe151061db8562d5a3e4344a0cf1d33e61af0fcc40b10d2e5b5a696a4671c10bd3961e4b11fe7b85997dcb90bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000083039e0a1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c801010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af842a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a08e233d229e63d6d4b41934f1439ed0f60f8ba00077fe59ce1707ec9e5f9d3c0ca0344ca4a7237388d696e80b653ceaaf5c5036412ecd70354028e2dcc2782fe656c0c0", "blockHeader": { - "parentHash": "0xa3c01f11be538bb37addaaafca79c57b8a13cb796df36150e799415633f32a79", + "parentHash": "0x2cef76f5b7007aff55e6ade82e6ad2aa1435ea53f740085f9d3cacf7bbdace64", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb30726c3bab97f7c8d60c34d161964e2980ccb28804f65bbe0a59eefbe9c2486", + "stateRoot": "0x475a6db08cafaef99345e9ae26b49971eef07a567f96e9cf3a38566ac8dd132b", "transactionsTrie": "0x5b395aba87c49ef7f13d37eaa0809ca08ef3da08cbe151061db8562d5a3e4344", "receiptTrie": "0xcf1d33e61af0fcc40b10d2e5b5a696a4671c10bd3961e4b11fe7b85997dcb90b", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -108,36 +105,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd29f4f9509c3bc96eb7156ddfbab89ca2b1e832d26f49508094fd9c2b6d60b0e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa3c01f11be538bb37addaaafca79c57b8a13cb796df36150e799415633f32a79", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb30726c3bab97f7c8d60c34d161964e2980ccb28804f65bbe0a59eefbe9c2486", - "receiptsRoot": "0xcf1d33e61af0fcc40b10d2e5b5a696a4671c10bd3961e4b11fe7b85997dcb90b", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x39e0a", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xd29f4f9509c3bc96eb7156ddfbab89ca2b1e832d26f49508094fd9c2b6d60b0e", - "transactions": [ - "0x03f8c801010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af842a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a08e233d229e63d6d4b41934f1439ed0f60f8ba00077fe59ce1707ec9e5f9d3c0ca0344ca4a7237388d696e80b653ceaaf5c5036412ecd70354028e2dcc2782fe656" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5809abca566c1f5abbd3f9d3c92717020d4248448a78364f2f29bddae573f1d3" }, "blocknumber": "2", "transactions": [ @@ -167,12 +135,12 @@ "withdrawals": [] }, { - "rlp": "0xf90335f90240a0d29f4f9509c3bc96eb7156ddfbab89ca2b1e832d26f49508094fd9c2b6d60b0ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06decc5fa64937133e834a3f529064a1adfeef8596be4ea47daf0452f9f74a700a04fc1d2acee1c002a72179d657e6dbc9b2091d3c86a6c650c8cb5e8dac14bcfc1a0416c3dc77a0ca2d34b65c57b4a7cf5d3ee9c507e7caf70405cc3a87277ff7a4cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008303dc3a2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a03f223f1bcafc369fe789489c550f2ec22fab05cd8408da133d41a4688d42cce7a019bce040c9504db7bab5a7685862356f935ed8e4a1a0d309b9c364a62fad8fa1c0c0", + "rlp": "0xf90335f90240a05809abca566c1f5abbd3f9d3c92717020d4248448a78364f2f29bddae573f1d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b4aa51d20e776a4f52bbf14f268d289506300533512ba447932703ea3d3b045ea04fc1d2acee1c002a72179d657e6dbc9b2091d3c86a6c650c8cb5e8dac14bcfc1a0416c3dc77a0ca2d34b65c57b4a7cf5d3ee9c507e7caf70405cc3a87277ff7a4cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008303dc3a2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a03f223f1bcafc369fe789489c550f2ec22fab05cd8408da133d41a4688d42cce7a019bce040c9504db7bab5a7685862356f935ed8e4a1a0d309b9c364a62fad8fa1c0c0", "blockHeader": { - "parentHash": "0xd29f4f9509c3bc96eb7156ddfbab89ca2b1e832d26f49508094fd9c2b6d60b0e", + "parentHash": "0x5809abca566c1f5abbd3f9d3c92717020d4248448a78364f2f29bddae573f1d3", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6decc5fa64937133e834a3f529064a1adfeef8596be4ea47daf0452f9f74a700", + "stateRoot": "0xb4aa51d20e776a4f52bbf14f268d289506300533512ba447932703ea3d3b045e", "transactionsTrie": "0x4fc1d2acee1c002a72179d657e6dbc9b2091d3c86a6c650c8cb5e8dac14bcfc1", "receiptTrie": "0x416c3dc77a0ca2d34b65c57b4a7cf5d3ee9c507e7caf70405cc3a87277ff7a4c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -189,37 +157,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x741ff62baad3b72585bc775e955bece1204dc39471bb1a002e22dbe3c0187316" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd29f4f9509c3bc96eb7156ddfbab89ca2b1e832d26f49508094fd9c2b6d60b0e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6decc5fa64937133e834a3f529064a1adfeef8596be4ea47daf0452f9f74a700", - "receiptsRoot": "0x416c3dc77a0ca2d34b65c57b4a7cf5d3ee9c507e7caf70405cc3a87277ff7a4c", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3dc3a", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x741ff62baad3b72585bc775e955bece1204dc39471bb1a002e22dbe3c0187316", - "transactions": [ - "0x03f8e901020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af863a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d80a03f223f1bcafc369fe789489c550f2ec22fab05cd8408da133d41a4688d42cce7a019bce040c9504db7bab5a7685862356f935ed8e4a1a0d309b9c364a62fad8fa1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x99e617fea73e4c6edd0bc9d99057c99aabea7232d6032924667dbba46e10edd1" }, "blocknumber": "3", "transactions": [ @@ -250,12 +188,12 @@ "withdrawals": [] }, { - "rlp": "0xf90359f90240a0741ff62baad3b72585bc775e955bece1204dc39471bb1a002e22dbe3c0187316a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa089a9c5d698123c63e5741008df88d52dd1f5d72f7e6801895c24480fb37e79eea063598765e7ab2b4843544ae6e9413c343c87e9f31ca410e2edcf7402538fc1e7a0762afe46147c470e691b5c57882d667dfb9d683b88b2064e9ece393b9c1d2060b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000083041a6a3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000080a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af884a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a013b71ed64f11faf73e8c6e6db821e4732d5df6ed6fb15811f219edb4a4a5f684a07e4a43852bce266e5c42e652ae4dde70665fec5f7376c6a328ba4ff9863ca3bcc0c0", + "rlp": "0xf90359f90240a099e617fea73e4c6edd0bc9d99057c99aabea7232d6032924667dbba46e10edd1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b3983700a0a5f56a8bd2a47091d92b14d0481daac0332a031c8977dcfc2f05cda063598765e7ab2b4843544ae6e9413c343c87e9f31ca410e2edcf7402538fc1e7a0762afe46147c470e691b5c57882d667dfb9d683b88b2064e9ece393b9c1d2060b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000083041a6a3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000080a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af884a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a013b71ed64f11faf73e8c6e6db821e4732d5df6ed6fb15811f219edb4a4a5f684a07e4a43852bce266e5c42e652ae4dde70665fec5f7376c6a328ba4ff9863ca3bcc0c0", "blockHeader": { - "parentHash": "0x741ff62baad3b72585bc775e955bece1204dc39471bb1a002e22dbe3c0187316", + "parentHash": "0x99e617fea73e4c6edd0bc9d99057c99aabea7232d6032924667dbba46e10edd1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x89a9c5d698123c63e5741008df88d52dd1f5d72f7e6801895c24480fb37e79ee", + "stateRoot": "0xb3983700a0a5f56a8bd2a47091d92b14d0481daac0332a031c8977dcfc2f05cd", "transactionsTrie": "0x63598765e7ab2b4843544ae6e9413c343c87e9f31ca410e2edcf7402538fc1e7", "receiptTrie": "0x762afe46147c470e691b5c57882d667dfb9d683b88b2064e9ece393b9c1d2060", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -272,38 +210,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4534b558aca2b98f3ff68e7fdf2ec6bfbd1e59601b424289997a0848d9c10a61" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x741ff62baad3b72585bc775e955bece1204dc39471bb1a002e22dbe3c0187316", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x89a9c5d698123c63e5741008df88d52dd1f5d72f7e6801895c24480fb37e79ee", - "receiptsRoot": "0x762afe46147c470e691b5c57882d667dfb9d683b88b2064e9ece393b9c1d2060", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x41a6a", - "timestamp": "0x30", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x0", - "blockHash": "0x4534b558aca2b98f3ff68e7fdf2ec6bfbd1e59601b424289997a0848d9c10a61", - "transactions": [ - "0x03f9010a01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af884a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a013b71ed64f11faf73e8c6e6db821e4732d5df6ed6fb15811f219edb4a4a5f684a07e4a43852bce266e5c42e652ae4dde70665fec5f7376c6a328ba4ff9863ca3bc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x044ae2ba8abe4dc6d806b322cc6ba2bac564b185514cd3a7b1cfa63de0a3b173" }, "blocknumber": "4", "transactions": [ @@ -335,12 +242,12 @@ "withdrawals": [] }, { - "rlp": "0xf9037df90243a04534b558aca2b98f3ff68e7fdf2ec6bfbd1e59601b424289997a0848d9c10a61a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e1ba7bedb76c53a71af3cf12c1becc140b35958c819a7403e97638f47bc27fca0e01da0c43fbe3bf42db2fa753ecc93a37008a77660c8655f0caeff5904e0c6bfa001d2aeb332eb19b17d12230fb3aee1ad8674f285ffa1f9e59527c8287f16e78ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008304589a3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083020000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8a5a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb80a0ab2dc84bde831df591fa7839849cb4d17724cb27842ee640fd1964b6b62ef178a006c54a6393efb6fa9bc2fc7cfd7b9cfa190e7352fc05029ecb59f34acff4f102c0c0", + "rlp": "0xf9037df90243a0044ae2ba8abe4dc6d806b322cc6ba2bac564b185514cd3a7b1cfa63de0a3b173a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02aa5706065a01a9e5d79d62d22962daee0ecf4dfb251e0b829a764536ac15699a0e01da0c43fbe3bf42db2fa753ecc93a37008a77660c8655f0caeff5904e0c6bfa001d2aeb332eb19b17d12230fb3aee1ad8674f285ffa1f9e59527c8287f16e78ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008304589a3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083020000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8a5a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb80a0ab2dc84bde831df591fa7839849cb4d17724cb27842ee640fd1964b6b62ef178a006c54a6393efb6fa9bc2fc7cfd7b9cfa190e7352fc05029ecb59f34acff4f102c0c0", "blockHeader": { - "parentHash": "0x4534b558aca2b98f3ff68e7fdf2ec6bfbd1e59601b424289997a0848d9c10a61", + "parentHash": "0x044ae2ba8abe4dc6d806b322cc6ba2bac564b185514cd3a7b1cfa63de0a3b173", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6e1ba7bedb76c53a71af3cf12c1becc140b35958c819a7403e97638f47bc27fc", + "stateRoot": "0x2aa5706065a01a9e5d79d62d22962daee0ecf4dfb251e0b829a764536ac15699", "transactionsTrie": "0xe01da0c43fbe3bf42db2fa753ecc93a37008a77660c8655f0caeff5904e0c6bf", "receiptTrie": "0x01d2aeb332eb19b17d12230fb3aee1ad8674f285ffa1f9e59527c8287f16e78a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -357,39 +264,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x310fdc84510c96fb5be5ada39d7faded5030d8278b7470a5cbefd8f97529a0c9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4534b558aca2b98f3ff68e7fdf2ec6bfbd1e59601b424289997a0848d9c10a61", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6e1ba7bedb76c53a71af3cf12c1becc140b35958c819a7403e97638f47bc27fc", - "receiptsRoot": "0x01d2aeb332eb19b17d12230fb3aee1ad8674f285ffa1f9e59527c8287f16e78a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x4589a", - "timestamp": "0x3c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x20000", - "blockHash": "0x310fdc84510c96fb5be5ada39d7faded5030d8278b7470a5cbefd8f97529a0c9", - "transactions": [ - "0x03f9012b01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8a5a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb80a0ab2dc84bde831df591fa7839849cb4d17724cb27842ee640fd1964b6b62ef178a006c54a6393efb6fa9bc2fc7cfd7b9cfa190e7352fc05029ecb59f34acff4f102" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbbfb85cba811d2a1c2ea99047adde78b801d2e13a30f9f7811544f93973b5430" }, "blocknumber": "5", "transactions": [ @@ -422,39 +297,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x296fa3dea15ecca89cd02652def9343850e4ca3be3399a9abad24ee3d6e3e5e0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ab1cdcca1e738d19a68e8f42c20b4dd9ad70090a7725e148fb101546a4a3439" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0296fa3dea15ecca89cd02652def9343850e4ca3be3399a9abad24ee3d6e3e5e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x310fdc84510c96fb5be5ada39d7faded5030d8278b7470a5cbefd8f97529a0c9", - "network": "Cancun", + "lastblockhash": "0xbbfb85cba811d2a1c2ea99047adde78b801d2e13a30f9f7811544f93973b5430", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -485,6 +329,12 @@ "code": "0x60017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb497ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb5560017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc497ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc5560017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd497ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd5560017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe557ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe497ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff497fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5560004960005560014960015560024960025560034960035560044960045560054960055560016006556006496006556001600755600749600755600160085560084960085560016009556009496009556001600a55600a49600a55", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -493,18 +343,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24", - "0x30": "0x30", - "0x3c": "0x3c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -555,6 +393,18 @@ "0x04": "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x39e766", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json index ee6952a5a4f..08013193e35 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_multiple_txs_in_block.json @@ -1,18 +1,43 @@ { "000-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ce6d6ae5eabb1356901119039f36a5c7bbd5d9492d56e95fae76252aeb248ef0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xce6d6ae5eabb1356901119039f36a5c7bbd5d9492d56e95fae76252aeb248ef0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xad2e2a9984d7eba35b633d96407a15aaf14208cbd268ca47c6f3547cb424303e" + }, "blocks": [ { - "rlp": "0xf90423f90240a002700f412af6b25762bf5fcdda184cb286da61838cc14688ffcdd32965180d46a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2b9c39e4e3f7679df2d88dde48c3b05a44a1b921852ec6d237f26775b22ebefa02530ab893152e0ad5249a3b2f034880574e2f2eee86fa0fb7b35fcd97ec16953a0f44b62ca500455002c17e676410100f1a6df14862de0691766cb2a9ed3c59dc8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302f8a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f901dbb9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72b88602f88301010a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c001a0bc32aa960b595f4effa870df3fbee0f81a8c04db36fb98be1e73218ef20bf662a0360455afb68e21fa0480dc3eba51c81a65d0b5bbf74b9083693e1c9e83f4dae6c0c0", + "rlp": "0xf90423f90240a0ad2e2a9984d7eba35b633d96407a15aaf14208cbd268ca47c6f3547cb424303ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04588919de171ba0ee2694c17725147c751319fac9a744928b7f84cfc629f606aa02530ab893152e0ad5249a3b2f034880574e2f2eee86fa0fb7b35fcd97ec16953a0f44b62ca500455002c17e676410100f1a6df14862de0691766cb2a9ed3c59dc8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302f8a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f901dbb9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72b88602f88301010a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c001a0bc32aa960b595f4effa870df3fbee0f81a8c04db36fb98be1e73218ef20bf662a0360455afb68e21fa0480dc3eba51c81a65d0b5bbf74b9083693e1c9e83f4dae6c0c0", "blockHeader": { - "parentHash": "0x02700f412af6b25762bf5fcdda184cb286da61838cc14688ffcdd32965180d46", + "parentHash": "0xad2e2a9984d7eba35b633d96407a15aaf14208cbd268ca47c6f3547cb424303e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2b9c39e4e3f7679df2d88dde48c3b05a44a1b921852ec6d237f26775b22ebef", + "stateRoot": "0x4588919de171ba0ee2694c17725147c751319fac9a744928b7f84cfc629f606a", "transactionsTrie": "0x2530ab893152e0ad5249a3b2f034880574e2f2eee86fa0fb7b35fcd97ec16953", "receiptTrie": "0xf44b62ca500455002c17e676410100f1a6df14862de0691766cb2a9ed3c59dc8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,41 +54,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3cac4cdeb5b94681ef6dc08cc2be08fa7b04f1c02d198240722fd22fa15a7e14" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x02700f412af6b25762bf5fcdda184cb286da61838cc14688ffcdd32965180d46", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2b9c39e4e3f7679df2d88dde48c3b05a44a1b921852ec6d237f26775b22ebef", - "receiptsRoot": "0xf44b62ca500455002c17e676410100f1a6df14862de0691766cb2a9ed3c59dc8", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2f8a8", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x3cac4cdeb5b94681ef6dc08cc2be08fa7b04f1c02d198240722fd22fa15a7e14", - "transactions": [ - "0x03f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72", - "0x02f88301010a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c001a0bc32aa960b595f4effa870df3fbee0f81a8c04db36fb98be1e73218ef20bf662a0360455afb68e21fa0480dc3eba51c81a65d0b5bbf74b9083693e1c9e83f4dae6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2f38981b4a4b818dfc83ec77a6ee24eacd8efa2d47dd57c11563ef511b4cd5b5" }, "blocknumber": "1", "transactions": [ @@ -113,12 +104,12 @@ "withdrawals": [] }, { - "rlp": "0xf90426f90243a03cac4cdeb5b94681ef6dc08cc2be08fa7b04f1c02d198240722fd22fa15a7e14a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e6452b397c0863e83b394b86b5d39caf45b3cb914db747f4157d9ed117c9c7b2a01877e89f9767a27690b1c99efe4426e7950021091c370b24ca004164fd1485a9a0da5ac010087a7cb6e374f2cda2f2c54242b12da3fc28ef70fffbdce90d262adfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008302df041880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f901dbb88602f88301020a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c080a0873e0a447c93f9b3517357b4031960d3b323bedb43209b7c53e3468a9af97d73a02b45a409360b87c178a79d47a10a9837930ebdf6e4b07f32eb3f1050708fee9bb9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed01a00da4d1561d2d7fd1e8579a59e94a656ab6d517016a24fced4498eab22aa4b797a0548dac7ef121500d483e413d443f2d19d1bb89fa14c797eb32eb68187dc57180c0c0", + "rlp": "0xf90426f90243a02f38981b4a4b818dfc83ec77a6ee24eacd8efa2d47dd57c11563ef511b4cd5b5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a824f9f0cfdb4f048857cacc59dace6d1d9edd094cf587bb36192cc8517712d2a01877e89f9767a27690b1c99efe4426e7950021091c370b24ca004164fd1485a9a0da5ac010087a7cb6e374f2cda2f2c54242b12da3fc28ef70fffbdce90d262adfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008302df041880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f901dbb88602f88301020a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c080a0873e0a447c93f9b3517357b4031960d3b323bedb43209b7c53e3468a9af97d73a02b45a409360b87c178a79d47a10a9837930ebdf6e4b07f32eb3f1050708fee9bb9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed01a00da4d1561d2d7fd1e8579a59e94a656ab6d517016a24fced4498eab22aa4b797a0548dac7ef121500d483e413d443f2d19d1bb89fa14c797eb32eb68187dc57180c0c0", "blockHeader": { - "parentHash": "0x3cac4cdeb5b94681ef6dc08cc2be08fa7b04f1c02d198240722fd22fa15a7e14", + "parentHash": "0x2f38981b4a4b818dfc83ec77a6ee24eacd8efa2d47dd57c11563ef511b4cd5b5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6452b397c0863e83b394b86b5d39caf45b3cb914db747f4157d9ed117c9c7b2", + "stateRoot": "0xa824f9f0cfdb4f048857cacc59dace6d1d9edd094cf587bb36192cc8517712d2", "transactionsTrie": "0x1877e89f9767a27690b1c99efe4426e7950021091c370b24ca004164fd1485a9", "receiptTrie": "0xda5ac010087a7cb6e374f2cda2f2c54242b12da3fc28ef70fffbdce90d262adf", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -135,41 +126,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3efd2ebff1e3bd44cb40d45d05a5c2e0586279f5ececbb4ea2cf7d0646e38583" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3cac4cdeb5b94681ef6dc08cc2be08fa7b04f1c02d198240722fd22fa15a7e14", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6452b397c0863e83b394b86b5d39caf45b3cb914db747f4157d9ed117c9c7b2", - "receiptsRoot": "0xda5ac010087a7cb6e374f2cda2f2c54242b12da3fc28ef70fffbdce90d262adf", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2df04", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x60000", - "blockHash": "0x3efd2ebff1e3bd44cb40d45d05a5c2e0586279f5ececbb4ea2cf7d0646e38583", - "transactions": [ - "0x02f88301020a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c080a0873e0a447c93f9b3517357b4031960d3b323bedb43209b7c53e3468a9af97d73a02b45a409360b87c178a79d47a10a9837930ebdf6e4b07f32eb3f1050708fee9b", - "0x03f9014c01030a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed01a00da4d1561d2d7fd1e8579a59e94a656ab6d517016a24fced4498eab22aa4b797a0548dac7ef121500d483e413d443f2d19d1bb89fa14c797eb32eb68187dc57180" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5f5e1d6dec8fd88bb030a0cb78c9a7ae2f7b8356f106a0e326f434d7b1a5071b" }, "blocknumber": "2", "transactions": [ @@ -219,12 +176,12 @@ "withdrawals": [] }, { - "rlp": "0xf90426f90243a03efd2ebff1e3bd44cb40d45d05a5c2e0586279f5ececbb4ea2cf7d0646e38583a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002308767ded0bca5d46650ce7c9c136ea714a81102af7a9d3dd133779844f192a02e86d2932b2cffc9c656d7d48f31342a45572b253397110a32d4a48a9a94830ca0da5ac010087a7cb6e374f2cda2f2c54242b12da3fc28ef70fffbdce90d262adfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008302df042480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f901dbb88602f88301040a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c080a096df1862ed64d69b9fc923519699bdf5216e09cf6ba31b3d769f57f00e2f9e85a00e7adc0f0964bb80e1243342234e1eb4223863559888ac2edb6a18bf3504a00eb9015003f9014c01050a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a0ae72412e03c21b775a1b8a87ddc4d78fca0ce263efe088454352a4b30c6689c3a06720d86ada5a4cc9f255c3209ea08a449e91611b624eae9c20ace49ec47f40afc0c0", + "rlp": "0xf90426f90243a05f5e1d6dec8fd88bb030a0cb78c9a7ae2f7b8356f106a0e326f434d7b1a5071ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa064174dbd80ffe0c664fb180b5a02545f93941a747583b7e53d91bdb486e8fc66a02e86d2932b2cffc9c656d7d48f31342a45572b253397110a32d4a48a9a94830ca0da5ac010087a7cb6e374f2cda2f2c54242b12da3fc28ef70fffbdce90d262adfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a00008302df042480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f901dbb88602f88301040a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c080a096df1862ed64d69b9fc923519699bdf5216e09cf6ba31b3d769f57f00e2f9e85a00e7adc0f0964bb80e1243342234e1eb4223863559888ac2edb6a18bf3504a00eb9015003f9014c01050a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a0ae72412e03c21b775a1b8a87ddc4d78fca0ce263efe088454352a4b30c6689c3a06720d86ada5a4cc9f255c3209ea08a449e91611b624eae9c20ace49ec47f40afc0c0", "blockHeader": { - "parentHash": "0x3efd2ebff1e3bd44cb40d45d05a5c2e0586279f5ececbb4ea2cf7d0646e38583", + "parentHash": "0x5f5e1d6dec8fd88bb030a0cb78c9a7ae2f7b8356f106a0e326f434d7b1a5071b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x02308767ded0bca5d46650ce7c9c136ea714a81102af7a9d3dd133779844f192", + "stateRoot": "0x64174dbd80ffe0c664fb180b5a02545f93941a747583b7e53d91bdb486e8fc66", "transactionsTrie": "0x2e86d2932b2cffc9c656d7d48f31342a45572b253397110a32d4a48a9a94830c", "receiptTrie": "0xda5ac010087a7cb6e374f2cda2f2c54242b12da3fc28ef70fffbdce90d262adf", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -241,41 +198,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x358913cef4a0bca33e379e08e4c5d65e7dd512a4dc7c96a3a502aa615d6c6349" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3efd2ebff1e3bd44cb40d45d05a5c2e0586279f5ececbb4ea2cf7d0646e38583", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x02308767ded0bca5d46650ce7c9c136ea714a81102af7a9d3dd133779844f192", - "receiptsRoot": "0xda5ac010087a7cb6e374f2cda2f2c54242b12da3fc28ef70fffbdce90d262adf", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2df04", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xc0000", - "blockHash": "0x358913cef4a0bca33e379e08e4c5d65e7dd512a4dc7c96a3a502aa615d6c6349", - "transactions": [ - "0x02f88301040a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c080a096df1862ed64d69b9fc923519699bdf5216e09cf6ba31b3d769f57f00e2f9e85a00e7adc0f0964bb80e1243342234e1eb4223863559888ac2edb6a18bf3504a00e", - "0x03f9014c01050a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a0ae72412e03c21b775a1b8a87ddc4d78fca0ce263efe088454352a4b30c6689c3a06720d86ada5a4cc9f255c3209ea08a449e91611b624eae9c20ace49ec47f40af" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x04078c831d4c36029af08d01646b569d549de29949fc194ec19ebe435c478f36" }, "blocknumber": "3", "transactions": [ @@ -325,39 +248,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfbe225f41e95cfe40ee162d9a0f99793995cc4036ea910bf046cf922b398ef52", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x02700f412af6b25762bf5fcdda184cb286da61838cc14688ffcdd32965180d46" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fbe225f41e95cfe40ee162d9a0f99793995cc4036ea910bf046cf922b398ef52a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x358913cef4a0bca33e379e08e4c5d65e7dd512a4dc7c96a3a502aa615d6c6349", - "network": "Cancun", + "lastblockhash": "0x04078c831d4c36029af08d01646b569d549de29949fc194ec19ebe435c478f36", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -382,6 +274,12 @@ "code": "0x600049600055600149600155600249600255600349600355600449600455600549600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -390,16 +288,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -438,6 +326,16 @@ "0x05": "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x1a2410", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json index 4f42006f64d..f87f16fca3f 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode/blobhash_scenarios.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-scenario=single_valid": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ecf36e2c786fbc864f166c5cc84310809a1d1c70d0b64634bc36c825d78284b2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xecf36e2c786fbc864f166c5cc84310809a1d1c70d0b64634bc36c825d78284b2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x77edbff4b5d7c36df746cf239937079acf5273be5652f70538dc888fdf96161e" + }, "blocks": [ { - "rlp": "0xf9039bf90240a0ef78e7d7177f7a0d876b23593381479c2f2045ecbf1b8ed183bf93ae970ec25da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa081429b6ab9b6e758eb948f9b360c43288e44e794125c77e2f978e1a505c6d7efa0bf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830258b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72c0c0", + "rlp": "0xf9039bf90240a077edbff4b5d7c36df746cf239937079acf5273be5652f70538dc888fdf96161ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09b9f504660e33e5340317ff3d59961871c8b71c61558545a8ae4c17ecdd8c18ca0bf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830258b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72c0c0", "blockHeader": { - "parentHash": "0xef78e7d7177f7a0d876b23593381479c2f2045ecbf1b8ed183bf93ae970ec25d", + "parentHash": "0x77edbff4b5d7c36df746cf239937079acf5273be5652f70538dc888fdf96161e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x81429b6ab9b6e758eb948f9b360c43288e44e794125c77e2f978e1a505c6d7ef", + "stateRoot": "0x9b9f504660e33e5340317ff3d59961871c8b71c61558545a8ae4c17ecdd8c18c", "transactionsTrie": "0xbf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64", "receiptTrie": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,40 +54,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9f83dab23eb2335398a64b2dc99aa9dfe3e5e762405bdd42a18ba70e3aa54de5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xef78e7d7177f7a0d876b23593381479c2f2045ecbf1b8ed183bf93ae970ec25d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x81429b6ab9b6e758eb948f9b360c43288e44e794125c77e2f978e1a505c6d7ef", - "receiptsRoot": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x258b6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x9f83dab23eb2335398a64b2dc99aa9dfe3e5e762405bdd42a18ba70e3aa54de5", - "transactions": [ - "0x03f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd9e65b38d9568008e52085fa95acc6f88ebe6e85c5ab4dd7859458fe89e90226" }, "blocknumber": "1", "transactions": [ @@ -96,12 +88,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a09f83dab23eb2335398a64b2dc99aa9dfe3e5e762405bdd42a18ba70e3aa54de5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0181e7cd72d47fd67ce09ff0bcc652be1fd309f42f28daa23856c9acbd660d365a03ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830258b61880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737fc0c0", + "rlp": "0xf9039ef90243a0d9e65b38d9568008e52085fa95acc6f88ebe6e85c5ab4dd7859458fe89e90226a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00aa6d53296258d31b2504e8684cda4a13e62fe6557134583f8b7a6e71865fb55a03ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830258b61880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737fc0c0", "blockHeader": { - "parentHash": "0x9f83dab23eb2335398a64b2dc99aa9dfe3e5e762405bdd42a18ba70e3aa54de5", + "parentHash": "0xd9e65b38d9568008e52085fa95acc6f88ebe6e85c5ab4dd7859458fe89e90226", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x181e7cd72d47fd67ce09ff0bcc652be1fd309f42f28daa23856c9acbd660d365", + "stateRoot": "0x0aa6d53296258d31b2504e8684cda4a13e62fe6557134583f8b7a6e71865fb55", "transactionsTrie": "0x3ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95", "receiptTrie": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -118,40 +110,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3b64f5a5d659353e664aec76b31c3eab7666cb1643c1615a7a9701bce51b1e5d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9f83dab23eb2335398a64b2dc99aa9dfe3e5e762405bdd42a18ba70e3aa54de5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x181e7cd72d47fd67ce09ff0bcc652be1fd309f42f28daa23856c9acbd660d365", - "receiptsRoot": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x258b6", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x60000", - "blockHash": "0x3b64f5a5d659353e664aec76b31c3eab7666cb1643c1615a7a9701bce51b1e5d", - "transactions": [ - "0x03f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f", - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4", - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc79d84d64789d03637841138f8ff3b225a6723198faa69f762b305ad59519a0c" }, "blocknumber": "2", "transactions": [ @@ -185,12 +144,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a03b64f5a5d659353e664aec76b31c3eab7666cb1643c1615a7a9701bce51b1e5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07d7dd6c97e727c5eb10741677f42ef65ebcc062a4fcb7efca007f4b0b3bd403ba08a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a0000830258b62480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652bc0c0", + "rlp": "0xf9039ef90243a0c79d84d64789d03637841138f8ff3b225a6723198faa69f762b305ad59519a0ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04c92111e1f8f081f98c281916a1199e5e636d4b87be399a3af66cd5970c7ad11a08a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a0000830258b62480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652bc0c0", "blockHeader": { - "parentHash": "0x3b64f5a5d659353e664aec76b31c3eab7666cb1643c1615a7a9701bce51b1e5d", + "parentHash": "0xc79d84d64789d03637841138f8ff3b225a6723198faa69f762b305ad59519a0c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7d7dd6c97e727c5eb10741677f42ef65ebcc062a4fcb7efca007f4b0b3bd403b", + "stateRoot": "0x4c92111e1f8f081f98c281916a1199e5e636d4b87be399a3af66cd5970c7ad11", "transactionsTrie": "0x8a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67", "receiptTrie": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -207,40 +166,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x637cc2111965ecfbcc155c6a56331adb5162fc5d0a036fba7c4b30228ee794d0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3b64f5a5d659353e664aec76b31c3eab7666cb1643c1615a7a9701bce51b1e5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7d7dd6c97e727c5eb10741677f42ef65ebcc062a4fcb7efca007f4b0b3bd403b", - "receiptsRoot": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x258b6", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xc0000", - "blockHash": "0x637cc2111965ecfbcc155c6a56331adb5162fc5d0a036fba7c4b30228ee794d0", - "transactions": [ - "0x03f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed", - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe23953ce0f43a0540ce889c7d7a1a49ba6bedcc5933a1f2b8060050718b1e6e2" }, "blocknumber": "3", "transactions": [ @@ -274,12 +200,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0637cc2111965ecfbcc155c6a56331adb5162fc5d0a036fba7c4b30228ee794d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f627089af0a5c60223a45444bf4153f1db91c46a31de606fca8282ba9a40258ba05c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a0000830258b63080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39c0c0", + "rlp": "0xf9039ef90243a0e23953ce0f43a0540ce889c7d7a1a49ba6bedcc5933a1f2b8060050718b1e6e2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a26b1cd3e620168580f9a315341e6c223c1bee0e1466ce8a6d0e70bb758a520ca05c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a0000830258b63080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39c0c0", "blockHeader": { - "parentHash": "0x637cc2111965ecfbcc155c6a56331adb5162fc5d0a036fba7c4b30228ee794d0", + "parentHash": "0xe23953ce0f43a0540ce889c7d7a1a49ba6bedcc5933a1f2b8060050718b1e6e2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf627089af0a5c60223a45444bf4153f1db91c46a31de606fca8282ba9a40258b", + "stateRoot": "0xa26b1cd3e620168580f9a315341e6c223c1bee0e1466ce8a6d0e70bb758a520c", "transactionsTrie": "0x5c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707", "receiptTrie": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -296,40 +222,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x120000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1a9c907b7d1c5b38ceeb32eb7b12eef668b7758e9b596a83d1ddf4d94cb00c89" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x637cc2111965ecfbcc155c6a56331adb5162fc5d0a036fba7c4b30228ee794d0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf627089af0a5c60223a45444bf4153f1db91c46a31de606fca8282ba9a40258b", - "receiptsRoot": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x258b6", - "timestamp": "0x30", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x120000", - "blockHash": "0x1a9c907b7d1c5b38ceeb32eb7b12eef668b7758e9b596a83d1ddf4d94cb00c89", - "transactions": [ - "0x03f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4", - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4e2986b2e68e513ee740f456b419ec606afd2d1f471dbabbae1332f63aa9a5b4" }, "blocknumber": "4", "transactions": [ @@ -363,12 +256,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a01a9c907b7d1c5b38ceeb32eb7b12eef668b7758e9b596a83d1ddf4d94cb00c89a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04880af51247f33b55a21fe66b27e0438355c15d8283e4accd10ce1234a22b2eba007ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000830258b63c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132c0c0", + "rlp": "0xf9039ef90243a04e2986b2e68e513ee740f456b419ec606afd2d1f471dbabbae1332f63aa9a5b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06916d5ef760cbae166b2588139341546e8ae0083abfe9c2d4c0fcab8c4d893fca007ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59a0f2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000830258b63c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132c0c0", "blockHeader": { - "parentHash": "0x1a9c907b7d1c5b38ceeb32eb7b12eef668b7758e9b596a83d1ddf4d94cb00c89", + "parentHash": "0x4e2986b2e68e513ee740f456b419ec606afd2d1f471dbabbae1332f63aa9a5b4", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4880af51247f33b55a21fe66b27e0438355c15d8283e4accd10ce1234a22b2eb", + "stateRoot": "0x6916d5ef760cbae166b2588139341546e8ae0083abfe9c2d4c0fcab8c4d893fc", "transactionsTrie": "0x07ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59", "receiptTrie": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -385,40 +278,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x180000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf109762a7e0bb448f5442100555179b3fbc78124bd04e2f7976654b17058d1bf" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1a9c907b7d1c5b38ceeb32eb7b12eef668b7758e9b596a83d1ddf4d94cb00c89", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4880af51247f33b55a21fe66b27e0438355c15d8283e4accd10ce1234a22b2eb", - "receiptsRoot": "0xf2eeb081d1903a482c7fe33e89349be6dae1747fa78b69f788339a220835ea30", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x258b6", - "timestamp": "0x3c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x180000", - "blockHash": "0xf109762a7e0bb448f5442100555179b3fbc78124bd04e2f7976654b17058d1bf", - "transactions": [ - "0x03f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed", - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f", - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5a0f612c6b052e0ff044f92dfb514070cb80971ff4839dc46c8f31ff741980c4" }, "blocknumber": "5", "transactions": [ @@ -452,39 +312,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf9896f6d36f80ec5d044639bb0bd1835e1bc5f762c5c06863ec41871d151a7df", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xef78e7d7177f7a0d876b23593381479c2f2045ecbf1b8ed183bf93ae970ec25d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f9896f6d36f80ec5d044639bb0bd1835e1bc5f762c5c06863ec41871d151a7dfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf109762a7e0bb448f5442100555179b3fbc78124bd04e2f7976654b17058d1bf", - "network": "Cancun", + "lastblockhash": "0x5a0f612c6b052e0ff044f92dfb514070cb80971ff4839dc46c8f31ff741980c4", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -515,6 +344,12 @@ "code": "0x600049600055600149600155600249600255600349600355600449600455600549600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -523,18 +358,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24", - "0x30": "0x30", - "0x3c": "0x3c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -600,6 +423,18 @@ "0x05": "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x2332aa", @@ -617,18 +452,43 @@ }, "001-fork=Cancun-scenario=repeated_valid": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ff3eb8e80cc165bb31a6c6d16ccc8ab6a6395780aa6a5bf8929058197690b6faa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xff3eb8e80cc165bb31a6c6d16ccc8ab6a6395780aa6a5bf8929058197690b6fa", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5d8d4fcc551707eb6a8e9c37ff47a9737f5ecd6ec2e132c323787991e9ced4be" + }, "blocks": [ { - "rlp": "0xf9039bf90240a0110a428c3715ec7d80ccda5d7ef520f853bc135397d7f1ba6119402480d23938a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0943a2b78f7c54adf7b2bfc6d5fc83821f2e7fc1f12a3cd85f11c39993456271ca0bf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083026fb40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72c0c0", + "rlp": "0xf9039bf90240a05d8d4fcc551707eb6a8e9c37ff47a9737f5ecd6ec2e132c323787991e9ced4bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b4f66e588696dc75d7021638a450c3af85b167464a27ddd4150f5e7ade5c0db3a0bf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083026fb40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72c0c0", "blockHeader": { - "parentHash": "0x110a428c3715ec7d80ccda5d7ef520f853bc135397d7f1ba6119402480d23938", + "parentHash": "0x5d8d4fcc551707eb6a8e9c37ff47a9737f5ecd6ec2e132c323787991e9ced4be", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x943a2b78f7c54adf7b2bfc6d5fc83821f2e7fc1f12a3cd85f11c39993456271c", + "stateRoot": "0xb4f66e588696dc75d7021638a450c3af85b167464a27ddd4150f5e7ade5c0db3", "transactionsTrie": "0xbf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64", "receiptTrie": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -645,40 +505,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd9ef9dd6192ddef3319cb6a051bb4308a549036daf49f9275d8d79328abad92c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x110a428c3715ec7d80ccda5d7ef520f853bc135397d7f1ba6119402480d23938", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x943a2b78f7c54adf7b2bfc6d5fc83821f2e7fc1f12a3cd85f11c39993456271c", - "receiptsRoot": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x26fb4", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0xd9ef9dd6192ddef3319cb6a051bb4308a549036daf49f9275d8d79328abad92c", - "transactions": [ - "0x03f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x371078de33019f33ecab225315346080ff57d9c9ed85ac0e2bf722a65c72ddfa" }, "blocknumber": "1", "transactions": [ @@ -712,12 +539,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0d9ef9dd6192ddef3319cb6a051bb4308a549036daf49f9275d8d79328abad92ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09c347763ae197dad757ae1d10bda60e9279bea099f7d412942ce853894c9fedba03ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000083026fb41880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737fc0c0", + "rlp": "0xf9039ef90243a0371078de33019f33ecab225315346080ff57d9c9ed85ac0e2bf722a65c72ddfaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02f2ff20005d1627c24fbe596871c05e62e02d67e37e8edae95a8bd085c29a12ea03ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000083026fb41880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737fc0c0", "blockHeader": { - "parentHash": "0xd9ef9dd6192ddef3319cb6a051bb4308a549036daf49f9275d8d79328abad92c", + "parentHash": "0x371078de33019f33ecab225315346080ff57d9c9ed85ac0e2bf722a65c72ddfa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9c347763ae197dad757ae1d10bda60e9279bea099f7d412942ce853894c9fedb", + "stateRoot": "0x2f2ff20005d1627c24fbe596871c05e62e02d67e37e8edae95a8bd085c29a12e", "transactionsTrie": "0x3ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95", "receiptTrie": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -734,40 +561,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xab0f09856fe0f74962dd18845fdda61d8418421dc9996dd22476240841087e35" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd9ef9dd6192ddef3319cb6a051bb4308a549036daf49f9275d8d79328abad92c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9c347763ae197dad757ae1d10bda60e9279bea099f7d412942ce853894c9fedb", - "receiptsRoot": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x26fb4", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x60000", - "blockHash": "0xab0f09856fe0f74962dd18845fdda61d8418421dc9996dd22476240841087e35", - "transactions": [ - "0x03f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f", - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4", - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcd7be452c54484c4c7707c6df0c50e77d47deb72d14de049cab429c29ef20a5c" }, "blocknumber": "2", "transactions": [ @@ -801,12 +595,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0ab0f09856fe0f74962dd18845fdda61d8418421dc9996dd22476240841087e35a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0be0e8b8a07bf05df8ee2d9eb50bcd84563767ceed9af3fda28e9e515d5c685a0a08a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000083026fb42480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652bc0c0", + "rlp": "0xf9039ef90243a0cd7be452c54484c4c7707c6df0c50e77d47deb72d14de049cab429c29ef20a5ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d858e0bb1c9035bcd5ff114bda914398257585ba22e4f4c810f6adf034309f98a08a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000083026fb42480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652bc0c0", "blockHeader": { - "parentHash": "0xab0f09856fe0f74962dd18845fdda61d8418421dc9996dd22476240841087e35", + "parentHash": "0xcd7be452c54484c4c7707c6df0c50e77d47deb72d14de049cab429c29ef20a5c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbe0e8b8a07bf05df8ee2d9eb50bcd84563767ceed9af3fda28e9e515d5c685a0", + "stateRoot": "0xd858e0bb1c9035bcd5ff114bda914398257585ba22e4f4c810f6adf034309f98", "transactionsTrie": "0x8a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67", "receiptTrie": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -823,40 +617,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb49d2eff42e3d01572a30f993638d4971b6d101eae8c2b268a95dac6f6aad123" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xab0f09856fe0f74962dd18845fdda61d8418421dc9996dd22476240841087e35", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbe0e8b8a07bf05df8ee2d9eb50bcd84563767ceed9af3fda28e9e515d5c685a0", - "receiptsRoot": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x26fb4", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xc0000", - "blockHash": "0xb49d2eff42e3d01572a30f993638d4971b6d101eae8c2b268a95dac6f6aad123", - "transactions": [ - "0x03f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed", - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x48c1027d2a6958ff6ae135939e77ebd79f0085f52af7dafddb4d25c37aa25180" }, "blocknumber": "3", "transactions": [ @@ -890,12 +651,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0b49d2eff42e3d01572a30f993638d4971b6d101eae8c2b268a95dac6f6aad123a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f75ca1e5de349096f9c7e735e590a4096e2d60d6f078fbecbe3b7aca72e646baa05c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000083026fb43080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39c0c0", + "rlp": "0xf9039ef90243a048c1027d2a6958ff6ae135939e77ebd79f0085f52af7dafddb4d25c37aa25180a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08198f510a970f7310d5167ef5366864239f43fd285860cbbc6290e94587cc13ba05c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000083026fb43080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39c0c0", "blockHeader": { - "parentHash": "0xb49d2eff42e3d01572a30f993638d4971b6d101eae8c2b268a95dac6f6aad123", + "parentHash": "0x48c1027d2a6958ff6ae135939e77ebd79f0085f52af7dafddb4d25c37aa25180", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf75ca1e5de349096f9c7e735e590a4096e2d60d6f078fbecbe3b7aca72e646ba", + "stateRoot": "0x8198f510a970f7310d5167ef5366864239f43fd285860cbbc6290e94587cc13b", "transactionsTrie": "0x5c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707", "receiptTrie": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -912,40 +673,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x120000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf889d2e9cffef4df2d9c6225dfeb9fcc935fed913848bec8d63ece3935b6f8c3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb49d2eff42e3d01572a30f993638d4971b6d101eae8c2b268a95dac6f6aad123", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf75ca1e5de349096f9c7e735e590a4096e2d60d6f078fbecbe3b7aca72e646ba", - "receiptsRoot": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x26fb4", - "timestamp": "0x30", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x120000", - "blockHash": "0xf889d2e9cffef4df2d9c6225dfeb9fcc935fed913848bec8d63ece3935b6f8c3", - "transactions": [ - "0x03f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4", - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x50331bc92238cc8bd828ffbdac9a882afaf8ee38a14b7a4726f244d2518a10c3" }, "blocknumber": "4", "transactions": [ @@ -979,12 +707,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0f889d2e9cffef4df2d9c6225dfeb9fcc935fed913848bec8d63ece3935b6f8c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa071d6d52fe58b030b3d859ca866d45de12c796fdc47619546040ece360288594da007ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000083026fb43c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132c0c0", + "rlp": "0xf9039ef90243a050331bc92238cc8bd828ffbdac9a882afaf8ee38a14b7a4726f244d2518a10c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e6ba75655f749ee2455e9e8cf9a92f65763960b2093d535e79c548a7bbc7fe63a007ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59a09922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000083026fb43c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132c0c0", "blockHeader": { - "parentHash": "0xf889d2e9cffef4df2d9c6225dfeb9fcc935fed913848bec8d63ece3935b6f8c3", + "parentHash": "0x50331bc92238cc8bd828ffbdac9a882afaf8ee38a14b7a4726f244d2518a10c3", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x71d6d52fe58b030b3d859ca866d45de12c796fdc47619546040ece360288594d", + "stateRoot": "0xe6ba75655f749ee2455e9e8cf9a92f65763960b2093d535e79c548a7bbc7fe63", "transactionsTrie": "0x07ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59", "receiptTrie": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1001,40 +729,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x180000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa350458a1a543c4d7d4e3566bd2033dc792f927cfceb85f61e134243a878e406" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf889d2e9cffef4df2d9c6225dfeb9fcc935fed913848bec8d63ece3935b6f8c3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x71d6d52fe58b030b3d859ca866d45de12c796fdc47619546040ece360288594d", - "receiptsRoot": "0x9922871dfc3fd11018aeece2836dfc765acc20a7e668fefac388033440777c36", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x26fb4", - "timestamp": "0x3c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x180000", - "blockHash": "0xa350458a1a543c4d7d4e3566bd2033dc792f927cfceb85f61e134243a878e406", - "transactions": [ - "0x03f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed", - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f", - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe5185b2deb0e3b7f89cc7edf4362d5782b86580a5356c040a16bf8e99351af0c" }, "blocknumber": "5", "transactions": [ @@ -1068,39 +763,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa9b584dfe8aed33f657ffe0cc8625b2277bf562bc4824ddbf78ddace62119f0b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x110a428c3715ec7d80ccda5d7ef520f853bc135397d7f1ba6119402480d23938" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a9b584dfe8aed33f657ffe0cc8625b2277bf562bc4824ddbf78ddace62119f0ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa350458a1a543c4d7d4e3566bd2033dc792f927cfceb85f61e134243a878e406", - "network": "Cancun", + "lastblockhash": "0xe5185b2deb0e3b7f89cc7edf4362d5782b86580a5356c040a16bf8e99351af0c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1131,6 +795,12 @@ "code": "0x600049600055600049600055600049600055600049600055600049600055600049600055600049600055600049600055600049600055600049600055600149600155600149600155600149600155600149600155600149600155600149600155600149600155600149600155600149600155600149600155600249600255600249600255600249600255600249600255600249600255600249600255600249600255600249600255600249600255600249600255600349600355600349600355600349600355600349600355600349600355600349600355600349600355600349600355600349600355600349600355600449600455600449600455600449600455600449600455600449600455600449600455600449600455600449600455600449600455600449600455600549600555600549600555600549600555600549600555600549600555600549600555600549600555600549600555600549600555600549600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -1139,18 +809,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24", - "0x30": "0x30", - "0x3c": "0x3c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1216,6 +874,18 @@ "0x05": "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x248b8c", @@ -1233,18 +903,43 @@ }, "002-fork=Cancun-scenario=valid_invalid": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09fd80f9aaee34329a1d7663fdc962c06d8d2769bfdf6eaf93c063e4d8e19f9f3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9fd80f9aaee34329a1d7663fdc962c06d8d2769bfdf6eaf93c063e4d8e19f9f3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x45b4eb6e57e3b9c34c5cb3db649a7d42ab8e38e27ba42e033233b6ebf54f2b7e" + }, "blocks": [ { - "rlp": "0xf9039bf90240a034f7e16f0ca950774dfc9bf18fa158b8885aafb5132154922bd92900e6b8cccea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd46a27b72517a8ade3c2dce4822ea4a7362387465092f81ba83b8a103a0c438a0bf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830362550c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72c0c0", + "rlp": "0xf9039bf90240a045b4eb6e57e3b9c34c5cb3db649a7d42ab8e38e27ba42e033233b6ebf54f2b7ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021ec59da24c124a931272e56386a7bfc1705523c270a9be4156ae22b0636a189a0bf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830362550c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72c0c0", "blockHeader": { - "parentHash": "0x34f7e16f0ca950774dfc9bf18fa158b8885aafb5132154922bd92900e6b8ccce", + "parentHash": "0x45b4eb6e57e3b9c34c5cb3db649a7d42ab8e38e27ba42e033233b6ebf54f2b7e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdd46a27b72517a8ade3c2dce4822ea4a7362387465092f81ba83b8a103a0c438", + "stateRoot": "0x21ec59da24c124a931272e56386a7bfc1705523c270a9be4156ae22b0636a189", "transactionsTrie": "0xbf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64", "receiptTrie": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1261,40 +956,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x055c8c9bac63c2db5fe0a32b095610b9ec87ae208462d0116bef5f48e041d8e9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x34f7e16f0ca950774dfc9bf18fa158b8885aafb5132154922bd92900e6b8ccce", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdd46a27b72517a8ade3c2dce4822ea4a7362387465092f81ba83b8a103a0c438", - "receiptsRoot": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x36255", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x055c8c9bac63c2db5fe0a32b095610b9ec87ae208462d0116bef5f48e041d8e9", - "transactions": [ - "0x03f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x11fd29b167a7094e2c9a56be50ad6e7d65ffa378a9f2f6356a3a9b71835ac8d2" }, "blocknumber": "1", "transactions": [ @@ -1328,12 +990,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0055c8c9bac63c2db5fe0a32b095610b9ec87ae208462d0116bef5f48e041d8e9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b99424401f5f55ab199a9fdab79c8df3bbe23f2c572cbfc643ee2e47c795d5ea03ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830362551880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737fc0c0", + "rlp": "0xf9039ef90243a011fd29b167a7094e2c9a56be50ad6e7d65ffa378a9f2f6356a3a9b71835ac8d2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d236049d6d4ba7d6e7a28f19c67a2c352ae84885274c3278d30440c43fe25767a03ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830362551880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737fc0c0", "blockHeader": { - "parentHash": "0x055c8c9bac63c2db5fe0a32b095610b9ec87ae208462d0116bef5f48e041d8e9", + "parentHash": "0x11fd29b167a7094e2c9a56be50ad6e7d65ffa378a9f2f6356a3a9b71835ac8d2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6b99424401f5f55ab199a9fdab79c8df3bbe23f2c572cbfc643ee2e47c795d5e", + "stateRoot": "0xd236049d6d4ba7d6e7a28f19c67a2c352ae84885274c3278d30440c43fe25767", "transactionsTrie": "0x3ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95", "receiptTrie": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1350,40 +1012,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfb6199c604f6c2ee2dab3112fa69e2411868e6a744d4e17c4c9669fe4b0b4d2f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x055c8c9bac63c2db5fe0a32b095610b9ec87ae208462d0116bef5f48e041d8e9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6b99424401f5f55ab199a9fdab79c8df3bbe23f2c572cbfc643ee2e47c795d5e", - "receiptsRoot": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x36255", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x60000", - "blockHash": "0xfb6199c604f6c2ee2dab3112fa69e2411868e6a744d4e17c4c9669fe4b0b4d2f", - "transactions": [ - "0x03f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f", - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4", - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x08f47e5e92e18ef604472b3b23a4b50c751b7f41a326fd9e890fdf8438d692e4" }, "blocknumber": "2", "transactions": [ @@ -1417,12 +1046,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0fb6199c604f6c2ee2dab3112fa69e2411868e6a744d4e17c4c9669fe4b0b4d2fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f3d1f853603c62016b4844760846d912668eda52c25ffca1fb310bd977dfa54ca08a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a0000830362552480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652bc0c0", + "rlp": "0xf9039ef90243a008f47e5e92e18ef604472b3b23a4b50c751b7f41a326fd9e890fdf8438d692e4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c39458436d0c30cbcf9951f9f37038b38b32a246b351439fc8267670dfe51669a08a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a0000830362552480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652bc0c0", "blockHeader": { - "parentHash": "0xfb6199c604f6c2ee2dab3112fa69e2411868e6a744d4e17c4c9669fe4b0b4d2f", + "parentHash": "0x08f47e5e92e18ef604472b3b23a4b50c751b7f41a326fd9e890fdf8438d692e4", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf3d1f853603c62016b4844760846d912668eda52c25ffca1fb310bd977dfa54c", + "stateRoot": "0xc39458436d0c30cbcf9951f9f37038b38b32a246b351439fc8267670dfe51669", "transactionsTrie": "0x8a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67", "receiptTrie": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1439,40 +1068,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x966601a65fc39602847973a4b2279151901a5699bb3f50a43fb229e425e6c089" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfb6199c604f6c2ee2dab3112fa69e2411868e6a744d4e17c4c9669fe4b0b4d2f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf3d1f853603c62016b4844760846d912668eda52c25ffca1fb310bd977dfa54c", - "receiptsRoot": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x36255", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xc0000", - "blockHash": "0x966601a65fc39602847973a4b2279151901a5699bb3f50a43fb229e425e6c089", - "transactions": [ - "0x03f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed", - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1eacdc638eedd855a67429295e6e41ada7efaee566343a33a6a32a9e1d31330a" }, "blocknumber": "3", "transactions": [ @@ -1506,12 +1102,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0966601a65fc39602847973a4b2279151901a5699bb3f50a43fb229e425e6c089a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069a8fac9751d447c05aac68ea0b3642ce6e26a47f51e1a311a1b6de4c5485d21a05c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a0000830362553080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39c0c0", + "rlp": "0xf9039ef90243a01eacdc638eedd855a67429295e6e41ada7efaee566343a33a6a32a9e1d31330aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01d5ae408e6f490719d83986a6e913743913b7da12ee1acb722d59516a5721dcaa05c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a0000830362553080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39c0c0", "blockHeader": { - "parentHash": "0x966601a65fc39602847973a4b2279151901a5699bb3f50a43fb229e425e6c089", + "parentHash": "0x1eacdc638eedd855a67429295e6e41ada7efaee566343a33a6a32a9e1d31330a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x69a8fac9751d447c05aac68ea0b3642ce6e26a47f51e1a311a1b6de4c5485d21", + "stateRoot": "0x1d5ae408e6f490719d83986a6e913743913b7da12ee1acb722d59516a5721dca", "transactionsTrie": "0x5c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707", "receiptTrie": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1528,40 +1124,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x120000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5287ca5818c1bc8257573ecdfbf7a8be8edffeee195c578f7b3e5214e3244000" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x966601a65fc39602847973a4b2279151901a5699bb3f50a43fb229e425e6c089", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x69a8fac9751d447c05aac68ea0b3642ce6e26a47f51e1a311a1b6de4c5485d21", - "receiptsRoot": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x36255", - "timestamp": "0x30", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x120000", - "blockHash": "0x5287ca5818c1bc8257573ecdfbf7a8be8edffeee195c578f7b3e5214e3244000", - "transactions": [ - "0x03f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4", - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcf1d4c6e9db8e7a56db01fd18e540d3c6af40180930ca076af1c1b2c33afa882" }, "blocknumber": "4", "transactions": [ @@ -1595,12 +1158,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a05287ca5818c1bc8257573ecdfbf7a8be8edffeee195c578f7b3e5214e3244000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06f417729a7f450f9610649a11d213552ebacc2965746462ef7581c33ca51c682a007ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000830362553c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132c0c0", + "rlp": "0xf9039ef90243a0cf1d4c6e9db8e7a56db01fd18e540d3c6af40180930ca076af1c1b2c33afa882a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aa481117bdb5b583022127237c0a40c875b86cd405651085a99bf80237d160e6a007ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59a01bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000830362553c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132c0c0", "blockHeader": { - "parentHash": "0x5287ca5818c1bc8257573ecdfbf7a8be8edffeee195c578f7b3e5214e3244000", + "parentHash": "0xcf1d4c6e9db8e7a56db01fd18e540d3c6af40180930ca076af1c1b2c33afa882", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6f417729a7f450f9610649a11d213552ebacc2965746462ef7581c33ca51c682", + "stateRoot": "0xaa481117bdb5b583022127237c0a40c875b86cd405651085a99bf80237d160e6", "transactionsTrie": "0x07ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59", "receiptTrie": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1617,40 +1180,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x180000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xead7ae34cd15fa896a01f250cf6e24af1afa714e3676954186fe88d2937d0c11" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5287ca5818c1bc8257573ecdfbf7a8be8edffeee195c578f7b3e5214e3244000", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6f417729a7f450f9610649a11d213552ebacc2965746462ef7581c33ca51c682", - "receiptsRoot": "0x1bb8cb19e1f2acaf20fd747c9b96da6e502243ee2b1d838d30e9cf1d9b19e60e", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x36255", - "timestamp": "0x3c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x180000", - "blockHash": "0xead7ae34cd15fa896a01f250cf6e24af1afa714e3676954186fe88d2937d0c11", - "transactions": [ - "0x03f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed", - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f", - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x460790a8355c252fe852e07a1a64a1de71738fbb29543b8498beda86863465df" }, "blocknumber": "5", "transactions": [ @@ -1684,39 +1214,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5224d64bdda52b54ce1ed79a4e1741e538aafd883b0cc85c1943f988d9f13ab8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x34f7e16f0ca950774dfc9bf18fa158b8885aafb5132154922bd92900e6b8ccce" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05224d64bdda52b54ce1ed79a4e1741e538aafd883b0cc85c1943f988d9f13ab8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xead7ae34cd15fa896a01f250cf6e24af1afa714e3676954186fe88d2937d0c11", - "network": "Cancun", + "lastblockhash": "0x460790a8355c252fe852e07a1a64a1de71738fbb29543b8498beda86863465df", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1747,6 +1246,12 @@ "code": "0x600049600055600160065560064960065560004960005560014960015560016006556006496006556001496001556002496002556001600655600649600655600249600255600349600355600160065560064960065560034960035560044960045560016006556006496006556004496004556005496005556001600655600649600655600549600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -1755,18 +1260,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24", - "0x30": "0x30", - "0x3c": "0x3c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1832,6 +1325,18 @@ "0x05": "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x32c2fb", @@ -1849,18 +1354,43 @@ }, "003-fork=Cancun-scenario=varied_valid": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00dc4d5cf4e02e228776d4898440599a0ea24f8bb766ddcf600fe9bac72da6e8da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0dc4d5cf4e02e228776d4898440599a0ea24f8bb766ddcf600fe9bac72da6e8d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa4a3ff1f43c1cd66e907718f0308bff48b1d8e5dac400346e4f431ee01eab753" + }, "blocks": [ { - "rlp": "0xf9039bf90240a0c4f8785b450e403df225193da06357b22c52cfe1c518d3eb7a6b264218011c02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09193c9038889dc504ea51b0f3323272c6d17cfd725b58ebfe466907594a9d7d3a0bf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083025c8b0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72c0c0", + "rlp": "0xf9039bf90240a0a4a3ff1f43c1cd66e907718f0308bff48b1d8e5dac400346e4f431ee01eab753a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03ef3580384e5677474265c8a937229969840149546728fa335764b3358592677a0bf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083025c8b0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72c0c0", "blockHeader": { - "parentHash": "0xc4f8785b450e403df225193da06357b22c52cfe1c518d3eb7a6b264218011c02", + "parentHash": "0xa4a3ff1f43c1cd66e907718f0308bff48b1d8e5dac400346e4f431ee01eab753", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9193c9038889dc504ea51b0f3323272c6d17cfd725b58ebfe466907594a9d7d3", + "stateRoot": "0x3ef3580384e5677474265c8a937229969840149546728fa335764b3358592677", "transactionsTrie": "0xbf6f46224ac84e17f686366974633d5c0e184c3b97ae7435b0aa561135b90c64", "receiptTrie": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1877,40 +1407,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x449e2288345633d2ae04ca1f7f2a87cc18f948d1a01b177f5564bde247009d1c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc4f8785b450e403df225193da06357b22c52cfe1c518d3eb7a6b264218011c02", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9193c9038889dc504ea51b0f3323272c6d17cfd725b58ebfe466907594a9d7d3", - "receiptsRoot": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x25c8b", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x449e2288345633d2ae04ca1f7f2a87cc18f948d1a01b177f5564bde247009d1c", - "transactions": [ - "0x03f9014c01800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed80a09f52048014af781caa5744953c6edf4cfc23ad2aa32941f2fd8dba63d494ac61a04ba047b00c1382075fce0c2a783573ac2c8e57f6e73b53672caddc7c5618ab72" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8f23cce7409b231d25b6659d41ff4a8e943ebc88238ed379afbd8d919ef042c6" }, "blocknumber": "1", "transactions": [ @@ -1944,12 +1441,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0449e2288345633d2ae04ca1f7f2a87cc18f948d1a01b177f5564bde247009d1ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05beafd8ebc05edc47778845b6abf2ba2aed182b9a6e8028ddf925dafd3374344a03ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000083025c8b1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737fc0c0", + "rlp": "0xf9039ef90243a08f23cce7409b231d25b6659d41ff4a8e943ebc88238ed379afbd8d919ef042c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03b42ae8b105ef4f2ad891c78e1f52694836c00165d389b415f9a658c3b72a629a03ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000083025c8b1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737fc0c0", "blockHeader": { - "parentHash": "0x449e2288345633d2ae04ca1f7f2a87cc18f948d1a01b177f5564bde247009d1c", + "parentHash": "0x8f23cce7409b231d25b6659d41ff4a8e943ebc88238ed379afbd8d919ef042c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5beafd8ebc05edc47778845b6abf2ba2aed182b9a6e8028ddf925dafd3374344", + "stateRoot": "0x3b42ae8b105ef4f2ad891c78e1f52694836c00165d389b415f9a658c3b72a629", "transactionsTrie": "0x3ee8b25c636a7616be2ea0068fd4cf7cb2c466f03afc149a2399a03230749e95", "receiptTrie": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1966,40 +1463,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21f5d86e5d68a2afc9373e58f8bcaae0e40e4b9e8bc3e1d88038cf1c96cb16a4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x449e2288345633d2ae04ca1f7f2a87cc18f948d1a01b177f5564bde247009d1c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5beafd8ebc05edc47778845b6abf2ba2aed182b9a6e8028ddf925dafd3374344", - "receiptsRoot": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x25c8b", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x60000", - "blockHash": "0x21f5d86e5d68a2afc9373e58f8bcaae0e40e4b9e8bc3e1d88038cf1c96cb16a4", - "transactions": [ - "0x03f9014c01010a0a832dc6c094000000000000000000000000000000000000020080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df01a07eb8170000b33b15eb9df7f8922c8a5b4390cdf61d8e3a51f1812b5cafd87c42a07616e0c3e43128f3fddc02cf119c945e02ef4ff0391aa8be8838a05ba771737f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f", - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4", - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1e3532eb6a82f4170dc858dde303ba327befd2c556c7e9976a5a0f16244b519d" }, "blocknumber": "2", "transactions": [ @@ -2033,12 +1497,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a021f5d86e5d68a2afc9373e58f8bcaae0e40e4b9e8bc3e1d88038cf1c96cb16a4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07dd7c1b3ea86a5c770aa59035950284b4cf7120226ad5c06a4c1f3a25e7eea3fa08a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000083025c8b2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652bc0c0", + "rlp": "0xf9039ef90243a01e3532eb6a82f4170dc858dde303ba327befd2c556c7e9976a5a0f16244b519da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0804ece9f122a8371be85d1fcb9f8632f17bd4ce973cd7db156044aec5d1de173a08a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000083025c8b2480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652bc0c0", "blockHeader": { - "parentHash": "0x21f5d86e5d68a2afc9373e58f8bcaae0e40e4b9e8bc3e1d88038cf1c96cb16a4", + "parentHash": "0x1e3532eb6a82f4170dc858dde303ba327befd2c556c7e9976a5a0f16244b519d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7dd7c1b3ea86a5c770aa59035950284b4cf7120226ad5c06a4c1f3a25e7eea3f", + "stateRoot": "0x804ece9f122a8371be85d1fcb9f8632f17bd4ce973cd7db156044aec5d1de173", "transactionsTrie": "0x8a39c1192cdd28d8b58155742f8a327fc85fc52973765916b127b6bfef777c67", "receiptTrie": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2055,40 +1519,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x479ea34a788fb1f5c64c6282da6ea6462ecb38c80b4040845b9c0f20d0cd4141" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21f5d86e5d68a2afc9373e58f8bcaae0e40e4b9e8bc3e1d88038cf1c96cb16a4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7dd7c1b3ea86a5c770aa59035950284b4cf7120226ad5c06a4c1f3a25e7eea3f", - "receiptsRoot": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x25c8b", - "timestamp": "0x24", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xc0000", - "blockHash": "0x479ea34a788fb1f5c64c6282da6ea6462ecb38c80b4040845b9c0f20d0cd4141", - "transactions": [ - "0x03f9014c01020a0a832dc6c094000000000000000000000000000000000000030080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f01a016a7be43d4282b4b32f665cf105025415ec8b2e6ab782f6117f9904e03da7e34a073d84bf03188c8a58e9c52b52208fae540ae4c240d1417deff98afb72da2652b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834", - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed", - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbaef08d99cc52a9bf81cccab2f81c2414d6cb9202a3315213356ec9548626a77" }, "blocknumber": "3", "transactions": [ @@ -2122,12 +1553,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a0479ea34a788fb1f5c64c6282da6ea6462ecb38c80b4040845b9c0f20d0cd4141a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fa20884b8d15818b03c441e070de848ea72cbfbea502904e815ae68539caeb30a05c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000083025c8b3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39c0c0", + "rlp": "0xf9039ef90243a0baef08d99cc52a9bf81cccab2f81c2414d6cb9202a3315213356ec9548626a77a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0916afa632a09ec4989be1567c9110ecebb566cef2f924e209607c6e3997240c2a05c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000083025c8b3080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39c0c0", "blockHeader": { - "parentHash": "0x479ea34a788fb1f5c64c6282da6ea6462ecb38c80b4040845b9c0f20d0cd4141", + "parentHash": "0xbaef08d99cc52a9bf81cccab2f81c2414d6cb9202a3315213356ec9548626a77", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfa20884b8d15818b03c441e070de848ea72cbfbea502904e815ae68539caeb30", + "stateRoot": "0x916afa632a09ec4989be1567c9110ecebb566cef2f924e209607c6e3997240c2", "transactionsTrie": "0x5c97fa3d31d2c710d4e36f35e6e754826a90af18da5d120bc19f3142262ec707", "receiptTrie": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2144,40 +1575,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x120000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x33c4245b90aed6c11d300a801003390add52dbac239bc02805374dc5667555ec" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x479ea34a788fb1f5c64c6282da6ea6462ecb38c80b4040845b9c0f20d0cd4141", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfa20884b8d15818b03c441e070de848ea72cbfbea502904e815ae68539caeb30", - "receiptsRoot": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x25c8b", - "timestamp": "0x30", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x120000", - "blockHash": "0x33c4245b90aed6c11d300a801003390add52dbac239bc02805374dc5667555ec", - "transactions": [ - "0x03f9014c01030a0a832dc6c094000000000000000000000000000000000000040080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4a001b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4fa0015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6dfa001878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681da0014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f83480a0257bb28bc1a70279b5338fbf068deb9128d9cc4352b86861963a9c27eb9dbdd7a05e260c7ad752f60a79e113bff0c87719488f9d5af53761b3d30d47cbb5b24b39" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4", - "0x01b8c5b09810b5fc07355d3da42e2c3a3e200c1d9a678491b7e8e256fc50cc4f", - "0x015b4c8cc4f86aa2d2cf9e9ce97fca704a11a6c20f6b1d6c00a6e15f6d60a6df", - "0x01878f80eaf10be1a6f618e6f8c071b10a6c14d9b89a3bf2a3f3cf2db6c5681d", - "0x014eb72b108d562c639faeb6f8c6f366a28b0381c7d30431117ec8c7bb89f834" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x84c8a951c4a694eae027d39007681dfc677b76b957cddb49c3ad3e3676ab92d7" }, "blocknumber": "4", "transactions": [ @@ -2211,12 +1609,12 @@ "withdrawals": [] }, { - "rlp": "0xf9039ef90243a033c4245b90aed6c11d300a801003390add52dbac239bc02805374dc5667555eca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06391817f47eb0df206dac2d281f7e53ce8004dbb1f98fc4b6cf9d0c0871b2390a007ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000083025c8b3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132c0c0", + "rlp": "0xf9039ef90243a084c8a951c4a694eae027d39007681dfc677b76b957cddb49c3ad3e3676ab92d7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00772a61547a06428959adb1d056a4525433e9148c12f2ebfd658bcfe588f9fd5a007ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59a01d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000083025c8b3c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90153b9015003f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132c0c0", "blockHeader": { - "parentHash": "0x33c4245b90aed6c11d300a801003390add52dbac239bc02805374dc5667555ec", + "parentHash": "0x84c8a951c4a694eae027d39007681dfc677b76b957cddb49c3ad3e3676ab92d7", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6391817f47eb0df206dac2d281f7e53ce8004dbb1f98fc4b6cf9d0c0871b2390", + "stateRoot": "0x0772a61547a06428959adb1d056a4525433e9148c12f2ebfd658bcfe588f9fd5", "transactionsTrie": "0x07ad9ac877d449e13c1702d78b5896e98dffe38b8833c4d65f18f0fb983f7d59", "receiptTrie": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2233,40 +1631,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x180000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x60e7c568e25d236ca51394a61724ad9bea3aafeb00bc736a2fa3bf3853c10528" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x33c4245b90aed6c11d300a801003390add52dbac239bc02805374dc5667555ec", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6391817f47eb0df206dac2d281f7e53ce8004dbb1f98fc4b6cf9d0c0871b2390", - "receiptsRoot": "0x1d742a583227cf7735bcd1e5732f460cd960b07949c7d54f7d6e87635418f00d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x25c8b", - "timestamp": "0x3c", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x180000", - "blockHash": "0x60e7c568e25d236ca51394a61724ad9bea3aafeb00bc736a2fa3bf3853c10528", - "transactions": [ - "0x03f9014c01040a0a832dc6c094000000000000000000000000000000000000050080a00000000000000000000000000000000000000000000000000000000000000000c00af8c6a001a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bba001a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4eda00171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7a0012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212fa001d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3da001c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a401a034a3a2bf0e3f83efb25984ec46261eb130efd8c5736716ea1acf063540226213a03fb4eca30342838e6c181885f775bd587107420fe066beab967e1c4a31788132" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x01a9b2a6c3f3f0675b768d49b5f5dc5b5d988f88d55766247ba9e40b125f16bb", - "0x01a4d4cde4aa01e57fb2c880d1d9c778c33bdf85e48ef4c4d4b4de51abccf4ed", - "0x0171c9b8a0c72d38f5e5b5d08e5cb5ce5e23fb1bc5d75f9c29f7b94df0bceeb7", - "0x012c8b6a8b11410c7d98d790e1098f1ed6d93cb7a64711481aaab1848e13212f", - "0x01d78c25f8a1d6aa04d0e2e2a71cf8dfaa4239fa0f301eb57c249d1e6bfe3c3d", - "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb96c711138c950157cee91c934744913faa67279d486af992e996ca03578438a" }, "blocknumber": "5", "transactions": [ @@ -2300,39 +1665,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa66ae454fb39247654987a7e8a4acd1d7b1e208ce5dc86b98757d0e25af5c6cb", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc4f8785b450e403df225193da06357b22c52cfe1c518d3eb7a6b264218011c02" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a66ae454fb39247654987a7e8a4acd1d7b1e208ce5dc86b98757d0e25af5c6cba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x60e7c568e25d236ca51394a61724ad9bea3aafeb00bc736a2fa3bf3853c10528", - "network": "Cancun", + "lastblockhash": "0xb96c711138c950157cee91c934744913faa67279d486af992e996ca03578438a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2363,6 +1697,12 @@ "code": "0x600049600055600149600155600049600055600149600155600249600255600149600155600249600255600349600355600249600255600349600355600449600455600349600355600449600455600549600555600449600455", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x021e19e0c9bab2400000", @@ -2371,18 +1711,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18", - "0x24": "0x24", - "0x30": "0x30", - "0x3c": "0x3c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2448,6 +1776,18 @@ "0x05": "0x01c778eb1348a73b9c30c7b1d282a5f8b2c5b5a12d5c5e4a4a35f9c5f639b4a4" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x236c25", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json index 6e2f59b062b..d2d54360f0a 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/blobhash_opcode_contexts/blobhash_opcode_contexts.json @@ -1,18 +1,43 @@ { "000-opcode_context=on_top_level_call_stack-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1" + }, "blocks": [ { - "rlp": "0xf902f1f9023fa0e3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa007a9294c482b5fc53240ac6999f8ec0026ede35f180507d78be3001736d03904a0c8209a966d6e1d26f8d8754437ca195c30b79141eb2fb28ace569c997a1503eba09a360076a4c1a5ff1a1b976bd7c01a49be87c67198c2aeaf93bfe45dab967454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9130c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a601800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00ae1a0010000000000000000000000000000000000000000000000000000000000000101a0dc6ca272616496b11413968bcfcec0f80c1528318e0359a993983784c5ad373ca051430d96aca80ad89b6dc832534938655f61b2ffba6707c08ff41c121eb85ee7c0c0", + "rlp": "0xf902f1f9023fa05b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa097b06b834085755f277a48969fe40ccc51ade4d4adfff984d4be38e7ea3705c7a0c8209a966d6e1d26f8d8754437ca195c30b79141eb2fb28ace569c997a1503eba09a360076a4c1a5ff1a1b976bd7c01a49be87c67198c2aeaf93bfe45dab967454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a9130c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f8abb8a903f8a601800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00ae1a0010000000000000000000000000000000000000000000000000000000000000101a0dc6ca272616496b11413968bcfcec0f80c1528318e0359a993983784c5ad373ca051430d96aca80ad89b6dc832534938655f61b2ffba6707c08ff41c121eb85ee7c0c0", "blockHeader": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", + "parentHash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x07a9294c482b5fc53240ac6999f8ec0026ede35f180507d78be3001736d03904", + "stateRoot": "0x97b06b834085755f277a48969fe40ccc51ade4d4adfff984d4be38e7ea3705c7", "transactionsTrie": "0xc8209a966d6e1d26f8d8754437ca195c30b79141eb2fb28ace569c997a1503eb", "receiptTrie": "0x9a360076a4c1a5ff1a1b976bd7c01a49be87c67198c2aeaf93bfe45dab967454", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,35 +54,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2d94878eb59a185a58dc4cb25d581b458ef99cf7a1c271d1a3c7b47b3a4a0f14" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x07a9294c482b5fc53240ac6999f8ec0026ede35f180507d78be3001736d03904", - "receiptsRoot": "0x9a360076a4c1a5ff1a1b976bd7c01a49be87c67198c2aeaf93bfe45dab967454", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xa913", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x2d94878eb59a185a58dc4cb25d581b458ef99cf7a1c271d1a3c7b47b3a4a0f14", - "transactions": [ - "0x03f8a601800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c00ae1a0010000000000000000000000000000000000000000000000000000000000000101a0dc6ca272616496b11413968bcfcec0f80c1528318e0359a993983784c5ad373ca051430d96aca80ad89b6dc832534938655f61b2ffba6707c08ff41c121eb85ee7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa21f3bba656b68dc27ee1cbd2d86d7186b74927df0d9fc306c2df181ccaffad1" }, "blocknumber": "1", "transactions": [ @@ -86,45 +83,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2d94878eb59a185a58dc4cb25d581b458ef99cf7a1c271d1a3c7b47b3a4a0f14", - "network": "Cancun", + "lastblockhash": "0xa21f3bba656b68dc27ee1cbd2d86d7186b74927df0d9fc306c2df181ccaffad1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f356020355b80821015601c578149808355506001820191506005565b80498082555f80f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -133,14 +105,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -149,6 +113,14 @@ "0x00": "0x0100000000000000000000000000000000000000000000000000000000000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x01fb39", @@ -166,18 +138,43 @@ }, "001-opcode_context=on_max_value-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1" + }, "blocks": [ { - "rlp": "0xf903bbf9023fa0e3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05610ddfc2be01cfc31534b755f5a8578fa66d239f81dcbd6500c3f87d28adf27a0a3958cbd48ad047165576c3e894f1d0d4f53705f087efc3557837c0a0a1a35cda0e630e05c0b4e4647f509b90cca4691c9e5a8803dc05db2a4b3e72e62308946d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825ed70c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90174b9017103f9016d01800a0a832dc6c094000000000000000000000000000000000000010080b840ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a04cadfe5c5d69ccc9165e3abb9bf69918811e734d9c4528a2f7c9ca39977e7f3aa01e18e8d88f46d1cbafcf0de0dffcba2707a20840c8f16d778639432d0fbafcdfc0c0", + "rlp": "0xf903bbf9023fa05b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01542bffb488ef3f73745aeecb77b142aea0f23f4e293f6fd0f23296679ae0d97a0a3958cbd48ad047165576c3e894f1d0d4f53705f087efc3557837c0a0a1a35cda0e630e05c0b4e4647f509b90cca4691c9e5a8803dc05db2a4b3e72e62308946d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825ed70c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90174b9017103f9016d01800a0a832dc6c094000000000000000000000000000000000000010080b840ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a04cadfe5c5d69ccc9165e3abb9bf69918811e734d9c4528a2f7c9ca39977e7f3aa01e18e8d88f46d1cbafcf0de0dffcba2707a20840c8f16d778639432d0fbafcdfc0c0", "blockHeader": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", + "parentHash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5610ddfc2be01cfc31534b755f5a8578fa66d239f81dcbd6500c3f87d28adf27", + "stateRoot": "0x1542bffb488ef3f73745aeecb77b142aea0f23f4e293f6fd0f23296679ae0d97", "transactionsTrie": "0xa3958cbd48ad047165576c3e894f1d0d4f53705f087efc3557837c0a0a1a35cd", "receiptTrie": "0xe630e05c0b4e4647f509b90cca4691c9e5a8803dc05db2a4b3e72e62308946d7", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -194,40 +191,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb34e0fd1ba0648d5df17a52be0d94beee90b1118d924e8d52e72f628fc8ea0ac" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5610ddfc2be01cfc31534b755f5a8578fa66d239f81dcbd6500c3f87d28adf27", - "receiptsRoot": "0xe630e05c0b4e4647f509b90cca4691c9e5a8803dc05db2a4b3e72e62308946d7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5ed7", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0xb34e0fd1ba0648d5df17a52be0d94beee90b1118d924e8d52e72f628fc8ea0ac", - "transactions": [ - "0x03f9016d01800a0a832dc6c094000000000000000000000000000000000000010080b840ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a04cadfe5c5d69ccc9165e3abb9bf69918811e734d9c4528a2f7c9ca39977e7f3aa01e18e8d88f46d1cbafcf0de0dffcba2707a20840c8f16d778639432d0fbafcdf" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000008", - "0x0100000000000000000000000000000000000000000000000000000000000010", - "0x0100000000000000000000000000000000000000000000000000000000000020" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x817303def76df3901ca09a8c0b4f3b0add375d46316f0dec4ee4297f79405727" }, "blocknumber": "1", "transactions": [ @@ -261,45 +225,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb34e0fd1ba0648d5df17a52be0d94beee90b1118d924e8d52e72f628fc8ea0ac", - "network": "Cancun", + "lastblockhash": "0x817303def76df3901ca09a8c0b4f3b0add375d46316f0dec4ee4297f79405727", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f356020355b80821015601c578149808355506001820191506005565b80498082555f80f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -308,20 +247,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f356020355b80821015601c578149808355506001820191506005565b80498082555f80f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x011c85", @@ -339,25 +278,50 @@ }, "002-opcode_context=on_CALL-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a065e6c6c20a2d36c06a5489670b6ac6b86fab51d992a72f0a285d5ebddf79ecc1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x65e6c6c20a2d36c06a5489670b6ac6b86fab51d992a72f0a285d5ebddf79ecc1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6248cc8ba5412f69bf61f15aa9c764b405d7a55b1ee38ecfd729dbf43589470f" + }, "blocks": [ { - "rlp": "0xf90334f9023fa096c45f404e1ffb8b359a5410ec8b1b6e3839abe0a8460dea563dce2e5afcb90ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0668df45561eda6607d1315107be1f75aa00669957b15778cde6ffe18b80eb4d8a0148d21350e23a4350775135a1b8ef0bfcf7265dd71616432925f4562d23ac6b6a0848ebcbd70b80ecf82988ca4f98e313aea0d17126aab19061ff0ee07e6bcdbf7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b3fc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901800a0a832dc6c094000000000000000000000000000000000000020080b84000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001c00af842a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0edd873fa31c2f899ff3fa815216c00e87eb43c021c36d71e29818cadcee819a9a0216165755a327583dc02aa39b9743f1642009e29fcb9cc516490cea79b82c03dc0c0", + "rlp": "0xf90334f9023fa06248cc8ba5412f69bf61f15aa9c764b405d7a55b1ee38ecfd729dbf43589470fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb3126ba421035ce032e7a97f8d815e4814888d77d308742af584234a276a01ea0148d21350e23a4350775135a1b8ef0bfcf7265dd71616432925f4562d23ac6b6a03dd674f40d6df06aa70c56501f9bdeb2c2609f8c1c362980aa767470358dd756b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b3fb0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e901800a0a832dc6c094000000000000000000000000000000000000020080b84000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001c00af842a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0edd873fa31c2f899ff3fa815216c00e87eb43c021c36d71e29818cadcee819a9a0216165755a327583dc02aa39b9743f1642009e29fcb9cc516490cea79b82c03dc0c0", "blockHeader": { - "parentHash": "0x96c45f404e1ffb8b359a5410ec8b1b6e3839abe0a8460dea563dce2e5afcb90b", + "parentHash": "0x6248cc8ba5412f69bf61f15aa9c764b405d7a55b1ee38ecfd729dbf43589470f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x668df45561eda6607d1315107be1f75aa00669957b15778cde6ffe18b80eb4d8", + "stateRoot": "0xbb3126ba421035ce032e7a97f8d815e4814888d77d308742af584234a276a01e", "transactionsTrie": "0x148d21350e23a4350775135a1b8ef0bfcf7265dd71616432925f4562d23ac6b6", - "receiptTrie": "0x848ebcbd70b80ecf82988ca4f98e313aea0d17126aab19061ff0ee07e6bcdbf7", + "receiptTrie": "0x3dd674f40d6df06aa70c56501f9bdeb2c2609f8c1c362980aa767470358dd756", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xb3fc", + "gasUsed": "0xb3fb", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -367,36 +331,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf958bb8f06d6d90fe2f2579851688146b038e813285599addc97939267c29dbe" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x96c45f404e1ffb8b359a5410ec8b1b6e3839abe0a8460dea563dce2e5afcb90b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x668df45561eda6607d1315107be1f75aa00669957b15778cde6ffe18b80eb4d8", - "receiptsRoot": "0x848ebcbd70b80ecf82988ca4f98e313aea0d17126aab19061ff0ee07e6bcdbf7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb3fc", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xf958bb8f06d6d90fe2f2579851688146b038e813285599addc97939267c29dbe", - "transactions": [ - "0x03f8e901800a0a832dc6c094000000000000000000000000000000000000020080b84000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001c00af842a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0edd873fa31c2f899ff3fa815216c00e87eb43c021c36d71e29818cadcee819a9a0216165755a327583dc02aa39b9743f1642009e29fcb9cc516490cea79b82c03d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb6030ea52ce3869cbe3846248a98282eb0af972b5a6768e8fd973b78d58538e1" }, "blocknumber": "1", "transactions": [ @@ -426,39 +361,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x133c6bcff72f4b058ed7c5bf1ab80c84810d9d3c24bbf5b0dee1ee813fd0b22f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x96c45f404e1ffb8b359a5410ec8b1b6e3839abe0a8460dea563dce2e5afcb90b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0133c6bcff72f4b058ed7c5bf1ab80c84810d9d3c24bbf5b0dee1ee813fd0b22fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf958bb8f06d6d90fe2f2579851688146b038e813285599addc97939267c29dbe", - "network": "Cancun", + "lastblockhash": "0xb6030ea52ce3869cbe3846248a98282eb0af972b5a6768e8fd973b78d58538e1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -468,7 +372,13 @@ "0x0000000000000000000000000000000000000200": { "nonce": "0x00", "balance": "0x00", - "code": "0x365f80375f80365f806101005af150", + "code": "0x365f80375f803681806101005af100", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -479,14 +389,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -498,18 +400,26 @@ "0x0000000000000000000000000000000000000200": { "nonce": "0x00", "balance": "0x00", - "code": "0x365f80375f80365f806101005af150", + "code": "0x365f80375f803681806101005af100", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x021bf4", + "balance": "0x021bf1", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5de94f828", + "balance": "0x3635c9adc5de94f832", "code": "0x", "storage": {} } @@ -518,25 +428,50 @@ }, "003-opcode_context=on_DELEGATECALL-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0149eea53bf591e7652c50fb35d7b462980c6343e9744c597f3c4982789af7c74a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x149eea53bf591e7652c50fb35d7b462980c6343e9744c597f3c4982789af7c74", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xac370516a61fcf94683235f19bf1103da9598ded052dd97ec74f2516191c42a1" + }, "blocks": [ { - "rlp": "0xf903bcf90240a0463592cce4e62a32638ce68da2c004cf470c2a2f7d7e45ba62fca2de50a9ada2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0342a7ee2d27c49ef46e3b6050b3de091fae246eba3d292436b113e70d858d464a086aaaee637bd8c6b012ea1ba5ead6b1e2c42711a693a4fdeecdaa2b4ef3b9da8a0bf40eab2faace40a3ef6a7511b64b476d7941ae7cae6a41a8fea55ff2a653a0db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830264d60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90174b9017103f9016d01800a0a832dc6c094000000000000000000000000000000000000030080b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a03b8df4289b8a103c80e57e443131a4ecca3311dfdb7fdb9140a37d09f841ff25a00658b542d2aff1c1142e7fb6f5fcfa884756c4595989a3f6ba28cb64c7def238c0c0", + "rlp": "0xf903bcf90240a0ac370516a61fcf94683235f19bf1103da9598ded052dd97ec74f2516191c42a1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02529cc25a6d3237f0c1241a0daf77531bb373eb90226c3e4a69d58d4b5488914a086aaaee637bd8c6b012ea1ba5ead6b1e2c42711a693a4fdeecdaa2b4ef3b9da8a05d821256a19263512a784e185cc904478fd338b4d76facf02e593ecc05a58c65b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830264d50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90174b9017103f9016d01800a0a832dc6c094000000000000000000000000000000000000030080b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a03b8df4289b8a103c80e57e443131a4ecca3311dfdb7fdb9140a37d09f841ff25a00658b542d2aff1c1142e7fb6f5fcfa884756c4595989a3f6ba28cb64c7def238c0c0", "blockHeader": { - "parentHash": "0x463592cce4e62a32638ce68da2c004cf470c2a2f7d7e45ba62fca2de50a9ada2", + "parentHash": "0xac370516a61fcf94683235f19bf1103da9598ded052dd97ec74f2516191c42a1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x342a7ee2d27c49ef46e3b6050b3de091fae246eba3d292436b113e70d858d464", + "stateRoot": "0x2529cc25a6d3237f0c1241a0daf77531bb373eb90226c3e4a69d58d4b5488914", "transactionsTrie": "0x86aaaee637bd8c6b012ea1ba5ead6b1e2c42711a693a4fdeecdaa2b4ef3b9da8", - "receiptTrie": "0xbf40eab2faace40a3ef6a7511b64b476d7941ae7cae6a41a8fea55ff2a653a0d", + "receiptTrie": "0x5d821256a19263512a784e185cc904478fd338b4d76facf02e593ecc05a58c65", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0264d6", + "gasUsed": "0x0264d5", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -546,40 +481,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb2b262bd4cfededbedcff80537c60131d44db36a12ffb2e6c01115dfffabdfdf" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x463592cce4e62a32638ce68da2c004cf470c2a2f7d7e45ba62fca2de50a9ada2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x342a7ee2d27c49ef46e3b6050b3de091fae246eba3d292436b113e70d858d464", - "receiptsRoot": "0xbf40eab2faace40a3ef6a7511b64b476d7941ae7cae6a41a8fea55ff2a653a0d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x264d6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0xb2b262bd4cfededbedcff80537c60131d44db36a12ffb2e6c01115dfffabdfdf", - "transactions": [ - "0x03f9016d01800a0a832dc6c094000000000000000000000000000000000000030080b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a03b8df4289b8a103c80e57e443131a4ecca3311dfdb7fdb9140a37d09f841ff25a00658b542d2aff1c1142e7fb6f5fcfa884756c4595989a3f6ba28cb64c7def238" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000008", - "0x0100000000000000000000000000000000000000000000000000000000000010", - "0x0100000000000000000000000000000000000000000000000000000000000020" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdaad6ef9aeb158cd75112f29adc31e870d1ddca519b22c7c68bc2f220bdd775d" }, "blocknumber": "1", "transactions": [ @@ -613,39 +515,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c2349c9ba8f7417f52b6e7af6b25ef2ceb7c79e528d8a420b7314abb823f7b4", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x463592cce4e62a32638ce68da2c004cf470c2a2f7d7e45ba62fca2de50a9ada2" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c2349c9ba8f7417f52b6e7af6b25ef2ceb7c79e528d8a420b7314abb823f7b4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb2b262bd4cfededbedcff80537c60131d44db36a12ffb2e6c01115dfffabdfdf", - "network": "Cancun", + "lastblockhash": "0xdaad6ef9aeb158cd75112f29adc31e870d1ddca519b22c7c68bc2f220bdd775d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -655,10 +526,16 @@ "0x0000000000000000000000000000000000000300": { "nonce": "0x00", "balance": "0x00", - "code": "0x365f80375f80365f6101005af450", + "code": "0x365f80375f8036816101005af400", "storage": {} }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", "code": "0x", @@ -666,14 +543,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -683,7 +552,7 @@ "0x0000000000000000000000000000000000000300": { "nonce": "0x00", "balance": "0x00", - "code": "0x365f80375f80365f6101005af450", + "code": "0x365f80375f8036816101005af400", "storage": { "0x00": "0x0100000000000000000000000000000000000000000000000000000000000001", "0x01": "0x0100000000000000000000000000000000000000000000000000000000000002", @@ -693,15 +562,23 @@ "0x05": "0x0100000000000000000000000000000000000000000000000000000000000020" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x072e82", + "balance": "0x072e7f", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5de7c0fa4", + "balance": "0x3635c9adc5de7c0fae", "code": "0x", "storage": {} } @@ -710,25 +587,50 @@ }, "004-opcode_context=on_STATICCALL-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08999df340a1a0c4e02de5db74110a64719536d7a4c0a96f31a5c6f87ef4856bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8999df340a1a0c4e02de5db74110a64719536d7a4c0a96f31a5c6f87ef4856bc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7d419a4c275785162a29349e5851cc2d0ddd6ed4a4f00d491981bddd61329ec8" + }, "blocks": [ { - "rlp": "0xf903bcf90240a06bb40634a1e7870caa8ab849fe83b6775ed84736b58329033f177d6406f8356ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06db3049762866881a57d7be89b65b64ebe9fa8fa0b03171f4f79e5f26b13b8d7a061794bae053720efd3fb1783248a9a05f30e69529714e4339f4ee6881523acd5a05c71540b157a9ee613699fb5eaaa7b3437acb579dd720c0bd1f6ed4cdfdf0118b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830267d90c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90174b9017103f9016d01800a0a832dc6c094000000000000000000000000000000000000070080b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a0ded12a6c4bd5b08e08d9ef9fa5b0cde3ddbf85e952f394125384a271ed1a9af5a0111d61a550a0037c016ac412101ca974a597a1a2c524cd05a0bc22b9bab49601c0c0", + "rlp": "0xf903bcf90240a07d419a4c275785162a29349e5851cc2d0ddd6ed4a4f00d491981bddd61329ec8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa037f1a7c267da19225c306df375b2545535c9ffb0bcfa641cb0fe96a57ed2beb1a061794bae053720efd3fb1783248a9a05f30e69529714e4339f4ee6881523acd5a0974e1b6522f9dad2673c347504e5846cdc0f6f7ff3c9a29a0abf12ae8bde6349b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830267a10c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90174b9017103f9016d01800a0a832dc6c094000000000000000000000000000000000000070080b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a0ded12a6c4bd5b08e08d9ef9fa5b0cde3ddbf85e952f394125384a271ed1a9af5a0111d61a550a0037c016ac412101ca974a597a1a2c524cd05a0bc22b9bab49601c0c0", "blockHeader": { - "parentHash": "0x6bb40634a1e7870caa8ab849fe83b6775ed84736b58329033f177d6406f8356c", + "parentHash": "0x7d419a4c275785162a29349e5851cc2d0ddd6ed4a4f00d491981bddd61329ec8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6db3049762866881a57d7be89b65b64ebe9fa8fa0b03171f4f79e5f26b13b8d7", + "stateRoot": "0x37f1a7c267da19225c306df375b2545535c9ffb0bcfa641cb0fe96a57ed2beb1", "transactionsTrie": "0x61794bae053720efd3fb1783248a9a05f30e69529714e4339f4ee6881523acd5", - "receiptTrie": "0x5c71540b157a9ee613699fb5eaaa7b3437acb579dd720c0bd1f6ed4cdfdf0118", + "receiptTrie": "0x974e1b6522f9dad2673c347504e5846cdc0f6f7ff3c9a29a0abf12ae8bde6349", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0267d9", + "gasUsed": "0x0267a1", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -738,40 +640,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xba5d03c4300a3acc1470899592b1d0686daa2a8663d20de49ad8b61b01dbe18a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6bb40634a1e7870caa8ab849fe83b6775ed84736b58329033f177d6406f8356c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6db3049762866881a57d7be89b65b64ebe9fa8fa0b03171f4f79e5f26b13b8d7", - "receiptsRoot": "0x5c71540b157a9ee613699fb5eaaa7b3437acb579dd720c0bd1f6ed4cdfdf0118", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x267d9", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0xba5d03c4300a3acc1470899592b1d0686daa2a8663d20de49ad8b61b01dbe18a", - "transactions": [ - "0x03f9016d01800a0a832dc6c094000000000000000000000000000000000000070080b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a0ded12a6c4bd5b08e08d9ef9fa5b0cde3ddbf85e952f394125384a271ed1a9af5a0111d61a550a0037c016ac412101ca974a597a1a2c524cd05a0bc22b9bab49601" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000008", - "0x0100000000000000000000000000000000000000000000000000000000000010", - "0x0100000000000000000000000000000000000000000000000000000000000020" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb19ac5ccdcb92896a97a9ada09b632c2a89dffed2c1e58642919e6df634a5bd8" }, "blocknumber": "1", "transactions": [ @@ -805,39 +674,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1d04a23329c611022c9aa14d04f1396972479bbf7f213c4d108562972e9d5a60", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6bb40634a1e7870caa8ab849fe83b6775ed84736b58329033f177d6406f8356c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01d04a23329c611022c9aa14d04f1396972479bbf7f213c4d108562972e9d5a60a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xba5d03c4300a3acc1470899592b1d0686daa2a8663d20de49ad8b61b01dbe18a", - "network": "Cancun", + "lastblockhash": "0xb19ac5ccdcb92896a97a9ada09b632c2a89dffed2c1e58642919e6df634a5bd8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000600": { "nonce": "0x00", "balance": "0x00", @@ -847,7 +685,13 @@ "0x0000000000000000000000000000000000000700": { "nonce": "0x00", "balance": "0x00", - "code": "0x5f356020355b80821015602b57815f5260205f60205f6106005afa505f51808355506001820191506005565b805f5260205f60205f6106005afa505f518082555f80f3", + "code": "0x5f35602035905b81811060235750805f5260205f81816106005afa505f5190555f80f35b806001915f5260205f81816106005afa505f51815501600656", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -858,14 +702,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000600": { "nonce": "0x00", "balance": "0x00", @@ -875,7 +711,7 @@ "0x0000000000000000000000000000000000000700": { "nonce": "0x00", "balance": "0x00", - "code": "0x5f356020355b80821015602b57815f5260205f60205f6106005afa505f51808355506001820191506005565b805f5260205f60205f6106005afa505f518082555f80f3", + "code": "0x5f35602035905b81811060235750805f5260205f81816106005afa505f5190555f80f35b806001915f5260205f81816106005afa505f51815501600656", "storage": { "0x00": "0x0100000000000000000000000000000000000000000000000000000000000001", "0x01": "0x0100000000000000000000000000000000000000000000000000000000000002", @@ -885,15 +721,23 @@ "0x05": "0x0100000000000000000000000000000000000000000000000000000000000020" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x07378b", + "balance": "0x0736e3", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5de7bf186", + "balance": "0x3635c9adc5de7bf3b6", "code": "0x", "storage": {} } @@ -902,25 +746,50 @@ }, "005-opcode_context=on_CALLCODE-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b80e006ed165988cd8bc19c6a76db825fbb5ff038889ac198d720311b50ba0cca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb80e006ed165988cd8bc19c6a76db825fbb5ff038889ac198d720311b50ba0cc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb1a3054d3d3f0314db7981a74baea48d303a4237bae84f71ddbc1d554ec2e712" + }, "blocks": [ { - "rlp": "0xf903bcf90240a06f17dd1b2220b1543c61279da3026c5c7cabee0af3d98c2c0e51cde17c881b8ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0824c59d939d79283a4a08fa0767d93dddd1842cbdbc981363a3857abb0020fbea0e7f6932f957450bc6a6f7a070a1e5a114b331dbcf2aafd39b691a4f2fde11d30a07dbeedb9dd741a2be07bfa58cc2a44519cbfddf66ef80ad2e5453eea95b0c33bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830267eb0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90174b9017103f9016d01800a0a832dc6c094000000000000000000000000000000000000080080b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a03bea87f5da51b0cf65d8d5405847d181ff9f675c6e302e3b6af34ba63711bbeea013b2efbcd8053e1209af44d05001273b8d5183fe42b65daee5d13914e33e31a0c0c0", + "rlp": "0xf903bcf90240a0b1a3054d3d3f0314db7981a74baea48d303a4237bae84f71ddbc1d554ec2e712a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05f0b30290bd1cc955c3e8725387fcee40ca03aeb88de6b736c1d69731178a294a0e7f6932f957450bc6a6f7a070a1e5a114b331dbcf2aafd39b691a4f2fde11d30a08a7cddc8a7ed657e46e0f76de9caa7009fb41013aacde0ed3abc0cd6d69e38bbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830267b30c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90174b9017103f9016d01800a0a832dc6c094000000000000000000000000000000000000080080b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a03bea87f5da51b0cf65d8d5405847d181ff9f675c6e302e3b6af34ba63711bbeea013b2efbcd8053e1209af44d05001273b8d5183fe42b65daee5d13914e33e31a0c0c0", "blockHeader": { - "parentHash": "0x6f17dd1b2220b1543c61279da3026c5c7cabee0af3d98c2c0e51cde17c881b8b", + "parentHash": "0xb1a3054d3d3f0314db7981a74baea48d303a4237bae84f71ddbc1d554ec2e712", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x824c59d939d79283a4a08fa0767d93dddd1842cbdbc981363a3857abb0020fbe", + "stateRoot": "0x5f0b30290bd1cc955c3e8725387fcee40ca03aeb88de6b736c1d69731178a294", "transactionsTrie": "0xe7f6932f957450bc6a6f7a070a1e5a114b331dbcf2aafd39b691a4f2fde11d30", - "receiptTrie": "0x7dbeedb9dd741a2be07bfa58cc2a44519cbfddf66ef80ad2e5453eea95b0c33b", + "receiptTrie": "0x8a7cddc8a7ed657e46e0f76de9caa7009fb41013aacde0ed3abc0cd6d69e38bb", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0267eb", + "gasUsed": "0x0267b3", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -930,40 +799,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x82e1282b8b7f6b3338564724d1450e3babb6ef9ecce719e267794efb074d3f2e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6f17dd1b2220b1543c61279da3026c5c7cabee0af3d98c2c0e51cde17c881b8b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x824c59d939d79283a4a08fa0767d93dddd1842cbdbc981363a3857abb0020fbe", - "receiptsRoot": "0x7dbeedb9dd741a2be07bfa58cc2a44519cbfddf66ef80ad2e5453eea95b0c33b", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x267eb", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x82e1282b8b7f6b3338564724d1450e3babb6ef9ecce719e267794efb074d3f2e", - "transactions": [ - "0x03f9016d01800a0a832dc6c094000000000000000000000000000000000000080080b84000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a03bea87f5da51b0cf65d8d5405847d181ff9f675c6e302e3b6af34ba63711bbeea013b2efbcd8053e1209af44d05001273b8d5183fe42b65daee5d13914e33e31a0" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000008", - "0x0100000000000000000000000000000000000000000000000000000000000010", - "0x0100000000000000000000000000000000000000000000000000000000000020" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0fcdeed8392d9166fb0fbac1d4c8d0eca19fd43d4e61d4dc5a8d79cec48313e9" }, "blocknumber": "1", "transactions": [ @@ -997,39 +833,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x30ef57ceb2aa003c6b4ff8b07a3dfbdbea1f0dcb2a15ab9a76e645f561152d26", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6f17dd1b2220b1543c61279da3026c5c7cabee0af3d98c2c0e51cde17c881b8b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a030ef57ceb2aa003c6b4ff8b07a3dfbdbea1f0dcb2a15ab9a76e645f561152d26a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x82e1282b8b7f6b3338564724d1450e3babb6ef9ecce719e267794efb074d3f2e", - "network": "Cancun", + "lastblockhash": "0x0fcdeed8392d9166fb0fbac1d4c8d0eca19fd43d4e61d4dc5a8d79cec48313e9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000600": { "nonce": "0x00", "balance": "0x00", @@ -1039,7 +844,13 @@ "0x0000000000000000000000000000000000000800": { "nonce": "0x00", "balance": "0x00", - "code": "0x5f356020355b80821015602c57815f5260205f60205f806106005af2505f51808355506001820191506005565b805f5260205f60205f806106005af2505f518082555f80f3", + "code": "0x5f35602035905b81811060245750805f5260205f8181806106005af2505f5190555f80f35b806001915f5260205f8181806106005af2505f51815501600656", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1050,14 +861,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000600": { "nonce": "0x00", "balance": "0x00", @@ -1067,7 +870,7 @@ "0x0000000000000000000000000000000000000800": { "nonce": "0x00", "balance": "0x00", - "code": "0x5f356020355b80821015602c57815f5260205f60205f806106005af2505f51808355506001820191506005565b805f5260205f60205f806106005af2505f518082555f80f3", + "code": "0x5f35602035905b81811060245750805f5260205f8181806106005af2505f5190555f80f35b806001915f5260205f8181806106005af2505f51815501600656", "storage": { "0x00": "0x0100000000000000000000000000000000000000000000000000000000000001", "0x01": "0x0100000000000000000000000000000000000000000000000000000000000002", @@ -1077,15 +880,23 @@ "0x05": "0x0100000000000000000000000000000000000000000000000000000000000020" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x0737c1", + "balance": "0x073719", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5de7bf0d2", + "balance": "0x3635c9adc5de7bf302", "code": "0x", "storage": {} } @@ -1094,25 +905,50 @@ }, "006-opcode_context=on_CREATE-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c9179c1544bca74e08306176497dcbe08ee77a308f9638ec485409b510d6daaca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc9179c1544bca74e08306176497dcbe08ee77a308f9638ec485409b510d6daac", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ccc585834912577a99a6481df3f4fd5c1c8d3e59b12f8942a96a54389396c99" + }, "blocks": [ { - "rlp": "0xf90398f90240a0378228f751cacbb7072dba5e2a5a6cba8b7c20fd8a27d47adf0525181d277158a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e074f31e4b749ecdad03cd2c55f13dfd5608b694eab9d70f02c3cc35b4433893a063a47d3f8d863b6ee200b34182078de02f479f27666823f449278a1b4c0adfe8a049a1d56ef60ba525a55b4730aa2d3a10b14c39e3ee189c21e42b2201525ca55bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302fbf70c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90150b9014d03f9014901800a0a832dc6c0940000000000000000000000000000000000000400809d5f5b600a8110156019578049808255506001810190506001565b5f80f3c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a09026e11ea31aa08f7bb51bdc59f54798afcda7a38ed10316eca15e747703f5aea04d6052692c63ea914637ceaca10ff6f32f80582cdcd965696391307f0ad0e143c0c0", + "rlp": "0xf90398f90240a00ccc585834912577a99a6481df3f4fd5c1c8d3e59b12f8942a96a54389396c99a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de36ed11d965a1f56b9c316db588c1bbeab03c5b43d7a91581c22f6ffb2103a1a063a47d3f8d863b6ee200b34182078de02f479f27666823f449278a1b4c0adfe8a0c5612ef09321bcf07f1f728873ee977fbf9f8ec2684f574aedfab0b29b8b2162b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302fbf50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90150b9014d03f9014901800a0a832dc6c0940000000000000000000000000000000000000400809d5f5b600a8110156019578049808255506001810190506001565b5f80f3c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a09026e11ea31aa08f7bb51bdc59f54798afcda7a38ed10316eca15e747703f5aea04d6052692c63ea914637ceaca10ff6f32f80582cdcd965696391307f0ad0e143c0c0", "blockHeader": { - "parentHash": "0x378228f751cacbb7072dba5e2a5a6cba8b7c20fd8a27d47adf0525181d277158", + "parentHash": "0x0ccc585834912577a99a6481df3f4fd5c1c8d3e59b12f8942a96a54389396c99", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe074f31e4b749ecdad03cd2c55f13dfd5608b694eab9d70f02c3cc35b4433893", + "stateRoot": "0xde36ed11d965a1f56b9c316db588c1bbeab03c5b43d7a91581c22f6ffb2103a1", "transactionsTrie": "0x63a47d3f8d863b6ee200b34182078de02f479f27666823f449278a1b4c0adfe8", - "receiptTrie": "0x49a1d56ef60ba525a55b4730aa2d3a10b14c39e3ee189c21e42b2201525ca55b", + "receiptTrie": "0xc5612ef09321bcf07f1f728873ee977fbf9f8ec2684f574aedfab0b29b8b2162", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02fbf7", + "gasUsed": "0x02fbf5", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1122,40 +958,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4863954c32c018865e5f0418f343770b6d4b5830c8a2ad0c8c9dac1147fa65c0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x378228f751cacbb7072dba5e2a5a6cba8b7c20fd8a27d47adf0525181d277158", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe074f31e4b749ecdad03cd2c55f13dfd5608b694eab9d70f02c3cc35b4433893", - "receiptsRoot": "0x49a1d56ef60ba525a55b4730aa2d3a10b14c39e3ee189c21e42b2201525ca55b", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2fbf7", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x4863954c32c018865e5f0418f343770b6d4b5830c8a2ad0c8c9dac1147fa65c0", - "transactions": [ - "0x03f9014901800a0a832dc6c0940000000000000000000000000000000000000400809d5f5b600a8110156019578049808255506001810190506001565b5f80f3c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002080a09026e11ea31aa08f7bb51bdc59f54798afcda7a38ed10316eca15e747703f5aea04d6052692c63ea914637ceaca10ff6f32f80582cdcd965696391307f0ad0e143" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000008", - "0x0100000000000000000000000000000000000000000000000000000000000010", - "0x0100000000000000000000000000000000000000000000000000000000000020" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1dfc42dff445fc87515598958a3976cc143da71c187c080f1ef30a21ca89cab7" }, "blocknumber": "1", "transactions": [ @@ -1189,43 +992,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x382192dfc38539f576f9815c26ba2d1a9b3067c84a5afea2c05e7b2c566c810e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x378228f751cacbb7072dba5e2a5a6cba8b7c20fd8a27d47adf0525181d277158" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0382192dfc38539f576f9815c26ba2d1a9b3067c84a5afea2c05e7b2c566c810ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4863954c32c018865e5f0418f343770b6d4b5830c8a2ad0c8c9dac1147fa65c0", - "network": "Cancun", + "lastblockhash": "0x1dfc42dff445fc87515598958a3976cc143da71c187c080f1ef30a21ca89cab7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000400": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x365f8037365f80f000", "storage": {} }, - "0x0000000000000000000000000000000000000400": { - "nonce": "0x00", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", "balance": "0x00", - "code": "0x365f8037365f80f050", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1236,29 +1014,29 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000400": { "nonce": "0x01", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x365f8037365f80f000", + "storage": {} }, - "0x0000000000000000000000000000000000000400": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x365f8037365f80f050", - "storage": {} + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x08f3e5", + "balance": "0x08f3df", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5de76285a", + "balance": "0x3635c9adc5de76286e", "code": "0x", "storage": {} }, @@ -1280,25 +1058,50 @@ }, "007-opcode_context=on_CREATE2-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bb66f15f2149f8ffb8bf1314978b984ed37e5ab884cf6c4a9d6a03d4a5b68fd1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbb66f15f2149f8ffb8bf1314978b984ed37e5ab884cf6c4a9d6a03d4a5b68fd1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfda2502b3e74687227e4fd76f79cbb4e701fcb52a1e8c17902b34f60cdef7107" + }, "blocks": [ { - "rlp": "0xf90398f90240a07b10f8595cad2984cbe2beff6a9f480d0707ca34caa25bd55dece9032c0aeaa2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b7c783352f82e6246bdd918900954cda6f90e41a75a4884e562e1aed479b79ea0fbd772c7ce80f23c52c4c07b4210591b73aa4c082ba099fb028387882b33e448a0beedce1626d06828c86ae4dbfad6f98b3649382e3cc7321189d1b9400b2573edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302fbff0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90150b9014d03f9014901800a0a832dc6c0940000000000000000000000000000000000000500809d5f5b600a8110156019578049808255506001810190506001565b5f80f3c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002001a02b4c21417edb1ebb5e5652decd5f0664b2c59c2ed466ff4ed65c9bf4ab390f5ca00e00e88c42ad5dd22624db944906f05f0e7deaa624f718f7e8b16817304db23cc0c0", + "rlp": "0xf90398f90240a0fda2502b3e74687227e4fd76f79cbb4e701fcb52a1e8c17902b34f60cdef7107a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00d69fd5819ab1dee256eb79792bfd669eac5af57acd26df649bfb7e2e47d4ae4a0fbd772c7ce80f23c52c4c07b4210591b73aa4c082ba099fb028387882b33e448a0b5e12936db3e2b0a912f33628cd237e5c2de0d9002ae405da6561f98b3568680b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302fbfe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90150b9014d03f9014901800a0a832dc6c0940000000000000000000000000000000000000500809d5f5b600a8110156019578049808255506001810190506001565b5f80f3c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002001a02b4c21417edb1ebb5e5652decd5f0664b2c59c2ed466ff4ed65c9bf4ab390f5ca00e00e88c42ad5dd22624db944906f05f0e7deaa624f718f7e8b16817304db23cc0c0", "blockHeader": { - "parentHash": "0x7b10f8595cad2984cbe2beff6a9f480d0707ca34caa25bd55dece9032c0aeaa2", + "parentHash": "0xfda2502b3e74687227e4fd76f79cbb4e701fcb52a1e8c17902b34f60cdef7107", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6b7c783352f82e6246bdd918900954cda6f90e41a75a4884e562e1aed479b79e", + "stateRoot": "0x0d69fd5819ab1dee256eb79792bfd669eac5af57acd26df649bfb7e2e47d4ae4", "transactionsTrie": "0xfbd772c7ce80f23c52c4c07b4210591b73aa4c082ba099fb028387882b33e448", - "receiptTrie": "0xbeedce1626d06828c86ae4dbfad6f98b3649382e3cc7321189d1b9400b2573ed", + "receiptTrie": "0xb5e12936db3e2b0a912f33628cd237e5c2de0d9002ae405da6561f98b3568680", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02fbff", + "gasUsed": "0x02fbfe", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1308,40 +1111,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4f324f3b7e67f9b79ec527cfe0aba3407c7eec59f4033e66516ff7d9ea06efbe" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7b10f8595cad2984cbe2beff6a9f480d0707ca34caa25bd55dece9032c0aeaa2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6b7c783352f82e6246bdd918900954cda6f90e41a75a4884e562e1aed479b79e", - "receiptsRoot": "0xbeedce1626d06828c86ae4dbfad6f98b3649382e3cc7321189d1b9400b2573ed", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2fbff", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x4f324f3b7e67f9b79ec527cfe0aba3407c7eec59f4033e66516ff7d9ea06efbe", - "transactions": [ - "0x03f9014901800a0a832dc6c0940000000000000000000000000000000000000500809d5f5b600a8110156019578049808255506001810190506001565b5f80f3c00af8c6a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000004a00100000000000000000000000000000000000000000000000000000000000008a00100000000000000000000000000000000000000000000000000000000000010a0010000000000000000000000000000000000000000000000000000000000002001a02b4c21417edb1ebb5e5652decd5f0664b2c59c2ed466ff4ed65c9bf4ab390f5ca00e00e88c42ad5dd22624db944906f05f0e7deaa624f718f7e8b16817304db23c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000008", - "0x0100000000000000000000000000000000000000000000000000000000000010", - "0x0100000000000000000000000000000000000000000000000000000000000020" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x54f602873887291b622520df5360589d16936150b967b32b1e0edf2210e04e67" }, "blocknumber": "1", "transactions": [ @@ -1375,43 +1145,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x773ed345b67e4466078d6428807b1e7914d535f75c34161dd2dc24f4ecb764bc", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7b10f8595cad2984cbe2beff6a9f480d0707ca34caa25bd55dece9032c0aeaa2" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0773ed345b67e4466078d6428807b1e7914d535f75c34161dd2dc24f4ecb764bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4f324f3b7e67f9b79ec527cfe0aba3407c7eec59f4033e66516ff7d9ea06efbe", - "network": "Cancun", + "lastblockhash": "0x54f602873887291b622520df5360589d16936150b967b32b1e0edf2210e04e67", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000500": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x365f80375f368180f500", "storage": {} }, - "0x0000000000000000000000000000000000000500": { - "nonce": "0x00", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", "balance": "0x00", - "code": "0x365f80375f365f80f550", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1422,19 +1167,19 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000500": { "nonce": "0x01", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x365f80375f368180f500", + "storage": {} }, - "0x0000000000000000000000000000000000000500": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x365f80375f365f80f550", - "storage": {} + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } }, "0x1b988a3d040cb11978845316a1d4b23cd2505e59": { "nonce": "0x01", @@ -1451,13 +1196,13 @@ }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x08f3fd", + "balance": "0x08f3fa", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5de76280a", + "balance": "0x3635c9adc5de762814", "code": "0x", "storage": {} } @@ -1466,18 +1211,43 @@ }, "008-opcode_context=on_type_2_tx-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1" + }, "blocks": [ { - "rlp": "0xf902cbf9023ca0e3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07de7646ff46c4ff571d51659cf31ed533dc6a524376514ccad9a1913f56c57c2a049edb78c402a55eb2f002c8954d9b1b8e7605771be38cf96074c02245444231fa07fb503f81ae2440db9956edb33a5eefb53045c0b2bfa2128f738bc4cd6292153b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825b570c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0780b24650b05eaececc4eeea70e2a07214903fdc379bd7d0ebf9f20b448dff54a02fe3dc33367e301213204c75fc15267d25f1f42e83c49b367148d468d497b46bc0c0", + "rlp": "0xf902cbf9023ca05b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cfe20f436883355301ad2e5d792da301bd06069beeb8d902d990f8fa358e49cfa049edb78c402a55eb2f002c8954d9b1b8e7605771be38cf96074c02245444231fa07fb503f81ae2440db9956edb33a5eefb53045c0b2bfa2128f738bc4cd6292153b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825b570c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f888b88602f88301800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0780b24650b05eaececc4eeea70e2a07214903fdc379bd7d0ebf9f20b448dff54a02fe3dc33367e301213204c75fc15267d25f1f42e83c49b367148d468d497b46bc0c0", "blockHeader": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", + "parentHash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7de7646ff46c4ff571d51659cf31ed533dc6a524376514ccad9a1913f56c57c2", + "stateRoot": "0xcfe20f436883355301ad2e5d792da301bd06069beeb8d902d990f8fa358e49cf", "transactionsTrie": "0x49edb78c402a55eb2f002c8954d9b1b8e7605771be38cf96074c02245444231f", "receiptTrie": "0x7fb503f81ae2440db9956edb33a5eefb53045c0b2bfa2128f738bc4cd6292153", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1494,33 +1264,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbffb7f6cc9b6171aef87aed542c03f678e1e28bd68c7e931573134dc406bcfd8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7de7646ff46c4ff571d51659cf31ed533dc6a524376514ccad9a1913f56c57c2", - "receiptsRoot": "0x7fb503f81ae2440db9956edb33a5eefb53045c0b2bfa2128f738bc4cd6292153", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5b57", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xbffb7f6cc9b6171aef87aed542c03f678e1e28bd68c7e931573134dc406bcfd8", - "transactions": [ - "0x02f88301800a0a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0780b24650b05eaececc4eeea70e2a07214903fdc379bd7d0ebf9f20b448dff54a02fe3dc33367e301213204c75fc15267d25f1f42e83c49b367148d468d497b46b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5de4fced366ee26f13eb5e52928f78be639b06dad182bcbcd357ad12d26a4ddc" }, "blocknumber": "1", "transactions": [ @@ -1545,45 +1289,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbffb7f6cc9b6171aef87aed542c03f678e1e28bd68c7e931573134dc406bcfd8", - "network": "Cancun", + "lastblockhash": "0x5de4fced366ee26f13eb5e52928f78be639b06dad182bcbcd357ad12d26a4ddc", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f356020355b80821015601c578149808355506001820191506005565b80498082555f80f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -1592,20 +1311,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f356020355b80821015601c578149808355506001820191506005565b80498082555f80f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x011205", @@ -1623,18 +1342,43 @@ }, "009-opcode_context=on_type_1_tx-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1" + }, "blocks": [ { - "rlp": "0xf902caf9023ca0e3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07de7646ff46c4ff571d51659cf31ed533dc6a524376514ccad9a1913f56c57c2a08b73d9fe6eda71d2847d41fc774bf04ff9bc456e3a1624b577d289d7282b5678a022d07857cc11165dea3d4648f3322a9a549c1d63e431fc70a586dc41f3295ed9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825b570c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201800a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0500b513c6f45a31b85197b3c7f59c066bd1b4cb09c181121ee580e18d29a9515a03aa0df1f222a93b42d8d2a83a17c0b695fc352f87e4856aae8c164f96d7b095ac0c0", + "rlp": "0xf902caf9023ca05b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cfe20f436883355301ad2e5d792da301bd06069beeb8d902d990f8fa358e49cfa08b73d9fe6eda71d2847d41fc774bf04ff9bc456e3a1624b577d289d7282b5678a022d07857cc11165dea3d4648f3322a9a549c1d63e431fc70a586dc41f3295ed9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825b570c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f887b88501f88201800a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0500b513c6f45a31b85197b3c7f59c066bd1b4cb09c181121ee580e18d29a9515a03aa0df1f222a93b42d8d2a83a17c0b695fc352f87e4856aae8c164f96d7b095ac0c0", "blockHeader": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", + "parentHash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7de7646ff46c4ff571d51659cf31ed533dc6a524376514ccad9a1913f56c57c2", + "stateRoot": "0xcfe20f436883355301ad2e5d792da301bd06069beeb8d902d990f8fa358e49cf", "transactionsTrie": "0x8b73d9fe6eda71d2847d41fc774bf04ff9bc456e3a1624b577d289d7282b5678", "receiptTrie": "0x22d07857cc11165dea3d4648f3322a9a549c1d63e431fc70a586dc41f3295ed9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1651,33 +1395,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9584233c7fdc73e1c4afa28328193f08219234c163743a072d751c1b876dfb44" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7de7646ff46c4ff571d51659cf31ed533dc6a524376514ccad9a1913f56c57c2", - "receiptsRoot": "0x22d07857cc11165dea3d4648f3322a9a549c1d63e431fc70a586dc41f3295ed9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5b57", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9584233c7fdc73e1c4afa28328193f08219234c163743a072d751c1b876dfb44", - "transactions": [ - "0x01f88201800a832dc6c094000000000000000000000000000000000000010080a00000000000000000000000000000000000000000000000000000000000000000c080a0500b513c6f45a31b85197b3c7f59c066bd1b4cb09c181121ee580e18d29a9515a03aa0df1f222a93b42d8d2a83a17c0b695fc352f87e4856aae8c164f96d7b095a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3d9298b66b69563edf46f20ac9c01c998ad2d2dc5acbae068e1e9da131733517" }, "blocknumber": "1", "transactions": [ @@ -1701,45 +1419,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9584233c7fdc73e1c4afa28328193f08219234c163743a072d751c1b876dfb44", - "network": "Cancun", + "lastblockhash": "0x3d9298b66b69563edf46f20ac9c01c998ad2d2dc5acbae068e1e9da131733517", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f356020355b80821015601c578149808355506001820191506005565b80498082555f80f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -1748,20 +1441,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f356020355b80821015601c578149808355506001820191506005565b80498082555f80f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x011205", @@ -1779,18 +1472,43 @@ }, "010-opcode_context=on_type_0_tx-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1e6d00a6904fec32a283fbd800531c40252a4f7aac03b528517f341e011c201a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1" + }, "blocks": [ { - "rlp": "0xf902c5f9023ca0e3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07de7646ff46c4ff571d51659cf31ed533dc6a524376514ccad9a1913f56c57c2a0dda59eab4bcc811c5a30b5f861fca6d79ff98b047d5435d9e14aa6b8f288b260a03f87aab1a47dfe86bc7156796f6ba9db8672d12db07d82d072753a6c74dce4dfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825b570c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a832dc6c094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000025a05cd0b6ab9524788c826fb1282182f1c19e027e73d9229be7b91aec399d7be556a060068e86e4a96de08fcb9cd992242497cb727f1eae3268a8d53505f8f872e1e9c0c0", + "rlp": "0xf902c5f9023ca05b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cfe20f436883355301ad2e5d792da301bd06069beeb8d902d990f8fa358e49cfa0dda59eab4bcc811c5a30b5f861fca6d79ff98b047d5435d9e14aa6b8f288b260a03f87aab1a47dfe86bc7156796f6ba9db8672d12db07d82d072753a6c74dce4dfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000825b570c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a832dc6c094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000025a05cd0b6ab9524788c826fb1282182f1c19e027e73d9229be7b91aec399d7be556a060068e86e4a96de08fcb9cd992242497cb727f1eae3268a8d53505f8f872e1e9c0c0", "blockHeader": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", + "parentHash": "0x5b0f91f599d299ee6029fe20d2397fd18ebfff5889456594139bb84a818b58f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7de7646ff46c4ff571d51659cf31ed533dc6a524376514ccad9a1913f56c57c2", + "stateRoot": "0xcfe20f436883355301ad2e5d792da301bd06069beeb8d902d990f8fa358e49cf", "transactionsTrie": "0xdda59eab4bcc811c5a30b5f861fca6d79ff98b047d5435d9e14aa6b8f288b260", "receiptTrie": "0x3f87aab1a47dfe86bc7156796f6ba9db8672d12db07d82d072753a6c74dce4df", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1807,33 +1525,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2084c6dc7932d6d17a30d86735737e65864f6f3be8b3d94dab0537363f071f15" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7de7646ff46c4ff571d51659cf31ed533dc6a524376514ccad9a1913f56c57c2", - "receiptsRoot": "0x3f87aab1a47dfe86bc7156796f6ba9db8672d12db07d82d072753a6c74dce4df", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5b57", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2084c6dc7932d6d17a30d86735737e65864f6f3be8b3d94dab0537363f071f15", - "transactions": [ - "0xf880800a832dc6c094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000000025a05cd0b6ab9524788c826fb1282182f1c19e027e73d9229be7b91aec399d7be556a060068e86e4a96de08fcb9cd992242497cb727f1eae3268a8d53505f8f872e1e9" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa662b9afa0bda55b839c25e2020fb24de1e532c902e5b5a641f37c3bbdbc49a2" }, "blocknumber": "1", "transactions": [ @@ -1856,45 +1548,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe3099c161cb4162a1e0f6d7fa8cf10ae744101473839e9a020b2418cedb7e39c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09066f2a56dee4854d210aafc9238675a3882d1fee7e4739f660a63cd737a226ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2084c6dc7932d6d17a30d86735737e65864f6f3be8b3d94dab0537363f071f15", - "network": "Cancun", + "lastblockhash": "0xa662b9afa0bda55b839c25e2020fb24de1e532c902e5b5a641f37c3bbdbc49a2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f356020355b80821015601c578149808355506001820191506005565b80498082555f80f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -1903,20 +1570,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f356020355b80821015601c578149808355506001820191506005565b80498082555f80f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x011205", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json index c11515c41ef..4ac0455a039 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_decreasing_blob_gas_costs.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=18-expected_excess_blob_gas:0x220000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180832a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x2a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaf33fd0684e057623c6fca04137712cc572c078b071a07946a1c53c2fd730e18" + }, "blocks": [ { - "rlp": "0xf902f5f90242a08e3332115aab338354a2b216b6e490f58566c38e26ed335964d1dd34c8aa3663a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a027d3924466279f1fb6c0a1eff7e39c8f6d3a38d5cfc57fdb559021acaac3fb0ea0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083240000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c002f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a05585b15e2319e1881132947d5348788353fba87ddc373249bb4f9d817071f375a02302724bf862725590b3e24b278d3c68295146753bc3d17a636ee1d39ac889a1c0c0", + "rlp": "0xf902f5f90242a0af33fd0684e057623c6fca04137712cc572c078b071a07946a1c53c2fd730e18a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a027d3924466279f1fb6c0a1eff7e39c8f6d3a38d5cfc57fdb559021acaac3fb0ea0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083240000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c002f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a05585b15e2319e1881132947d5348788353fba87ddc373249bb4f9d817071f375a02302724bf862725590b3e24b278d3c68295146753bc3d17a636ee1d39ac889a1c0c0", "blockHeader": { - "parentHash": "0x8e3332115aab338354a2b216b6e490f58566c38e26ed335964d1dd34c8aa3663", + "parentHash": "0xaf33fd0684e057623c6fca04137712cc572c078b071a07946a1c53c2fd730e18", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0x27d3924466279f1fb6c0a1eff7e39c8f6d3a38d5cfc57fdb559021acaac3fb0e", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,36 +54,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x240000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd16777882b854a553ec92b70d0162f7444d2f317e576c63c3c040ebc080c6c48" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8e3332115aab338354a2b216b6e490f58566c38e26ed335964d1dd34c8aa3663", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x240000", - "blockHash": "0xd16777882b854a553ec92b70d0162f7444d2f317e576c63c3c040ebc080c6c48", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c002f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a05585b15e2319e1881132947d5348788353fba87ddc373249bb4f9d817071f375a02302724bf862725590b3e24b278d3c68295146753bc3d17a636ee1d39ac889a1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb72d819fafbe35b731344d1b14a1d5176d8b13eebd2e21593cb470216e1a5814" }, "blocknumber": "1", "transactions": [ @@ -88,19 +84,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0d16777882b854a553ec92b70d0162f7444d2f317e576c63c3c040ebc080c6c48a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083220000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0b72d819fafbe35b731344d1b14a1d5176d8b13eebd2e21593cb470216e1a5814a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083220000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xd16777882b854a553ec92b70d0162f7444d2f317e576c63c3c040ebc080c6c48", + "parentHash": "0xb72d819fafbe35b731344d1b14a1d5176d8b13eebd2e21593cb470216e1a5814", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -110,35 +106,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x220000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc91cfea61f1da3cee8076bade5b2423f1e0f002123e88318e6ca64002ec473bd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd16777882b854a553ec92b70d0162f7444d2f317e576c63c3c040ebc080c6c48", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x220000", - "blockHash": "0xc91cfea61f1da3cee8076bade5b2423f1e0f002123e88318e6ca64002ec473bd", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa2d6d45b1b72a6bca95b2f363365ab8000b50a25708c17ca250591a8e289de42" }, "blocknumber": "2", "transactions": [ @@ -148,7 +116,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -157,9 +125,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -167,37 +135,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x2a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8e3332115aab338354a2b216b6e490f58566c38e26ed335964d1dd34c8aa3663" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180832a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc91cfea61f1da3cee8076bade5b2423f1e0f002123e88318e6ca64002ec473bd", - "network": "Cancun", + "lastblockhash": "0xa2d6d45b1b72a6bca95b2f363365ab8000b50a25708c17ca250591a8e289de42", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -208,26 +157,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -235,6 +177,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -243,7 +194,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -252,18 +203,43 @@ }, "001-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=265-expected_excess_blob_gas:0x2100000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c70eccd58d1674fcb4a7c4e491daff89a369e5967410ddb0b633ca55a5fb8cf1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808402180000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc70eccd58d1674fcb4a7c4e491daff89a369e5967410ddb0b633ca55a5fb8cf1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x02180000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcd0b232720527699946b62c005d62f6dc2b8587d9c3ef71751905f12814572bc" + }, "blocks": [ { - "rlp": "0xf902f8f90243a06eba181fc3ba9dcc8ce129f093e69004321d14352ff559111e2bc1028f2598f2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0243e7d27ed6d61b2d62947451e40a77d61a21a16b7fbbf0a4c9e1efd48a8b429a0d2dbbefcd9fbbd0708f279f1739175dbda6229ae384cda817cca2087b553c44da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830400008402120000a00000000000000000000000000000000000000000000000000000000000000000f8aeb8ac03f8a9018080078252089400000000000000000000000000000000000002000180c08280e4f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0c831660b081dcd1c312df8a97311d57b21a7a3cf0391632ffb2c9e9c9742ce14a076fc185457d0c9036450494a2c65e9267257773f4be7a5beada3e999e0410722c0c0", + "rlp": "0xf902f8f90243a0cd0b232720527699946b62c005d62f6dc2b8587d9c3ef71751905f12814572bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a480c9349a9971164072f1b4b0e9893576b801e2c24fc7892673165600014a7a0d2dbbefcd9fbbd0708f279f1739175dbda6229ae384cda817cca2087b553c44da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830400008402120000a00000000000000000000000000000000000000000000000000000000000000000f8aeb8ac03f8a9018080078252089400000000000000000000000000000000000002000180c08280e4f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0c831660b081dcd1c312df8a97311d57b21a7a3cf0391632ffb2c9e9c9742ce14a076fc185457d0c9036450494a2c65e9267257773f4be7a5beada3e999e0410722c0c0", "blockHeader": { - "parentHash": "0x6eba181fc3ba9dcc8ce129f093e69004321d14352ff559111e2bc1028f2598f2", + "parentHash": "0xcd0b232720527699946b62c005d62f6dc2b8587d9c3ef71751905f12814572bc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x243e7d27ed6d61b2d62947451e40a77d61a21a16b7fbbf0a4c9e1efd48a8b429", + "stateRoot": "0x4a480c9349a9971164072f1b4b0e9893576b801e2c24fc7892673165600014a7", "transactionsTrie": "0xd2dbbefcd9fbbd0708f279f1739175dbda6229ae384cda817cca2087b553c44d", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -280,36 +256,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x02120000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc30e6a3fa8801f97c8c82043d231591d1cca0e50162f28cb45e32a1dab9728a2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6eba181fc3ba9dcc8ce129f093e69004321d14352ff559111e2bc1028f2598f2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x243e7d27ed6d61b2d62947451e40a77d61a21a16b7fbbf0a4c9e1efd48a8b429", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x2120000", - "blockHash": "0xc30e6a3fa8801f97c8c82043d231591d1cca0e50162f28cb45e32a1dab9728a2", - "transactions": [ - "0x03f8a9018080078252089400000000000000000000000000000000000002000180c08280e4f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a0c831660b081dcd1c312df8a97311d57b21a7a3cf0391632ffb2c9e9c9742ce14a076fc185457d0c9036450494a2c65e9267257773f4be7a5beada3e999e0410722" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd11e8898475834bcf036f1d9430609e50737703b99ebe91bcd56d0f11b3a2f4e" }, "blocknumber": "1", "transactions": [ @@ -339,19 +286,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d6f90243a0c30e6a3fa8801f97c8c82043d231591d1cca0e50162f28cb45e32a1dab9728a2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f015dc8d5da40007d53cd878dd0bf327e56e71e546e728ab73e1ff5f11aec7b3a0696b9af9c5f545a4514867471a0a65ce6038fce7296ae7cecb2c841825efbb7aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008402100000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000180c0827beee1a0010000000000000000000000000000000000000000000000000000000000000080a0d6ba716c1f343188b0e0bda4da7e8107807ba69ea49111931d0821d525ea036fa06666b8584d0d8b08f562a826f2f64b1031cf2e72e24fc3c254e8569dce2d689fc0c0", + "rlp": "0xf902d6f90243a0d11e8898475834bcf036f1d9430609e50737703b99ebe91bcd56d0f11b3a2f4ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09dec4f53d65b02f42875999d112a06352b6f83c05574b7f533681f262806953fa0b79c20aec8a8788bbe32012369373622b258a249a7b6d33724b2f422bb722524a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008402100000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f8870180800782afc89400000000000000000000000000000000000001000180c0827beee1a0010000000000000000000000000000000000000000000000000000000000000001a02af6460b3cc78e5e4bea574b5d09c3b446a15a61d705ad4c433283071a0e542ca010c8e1c39f246f6880a01fb062ba0c4361ae5dce7e6fb0b5da324e18c39ed9abc0c0", "blockHeader": { - "parentHash": "0xc30e6a3fa8801f97c8c82043d231591d1cca0e50162f28cb45e32a1dab9728a2", + "parentHash": "0xd11e8898475834bcf036f1d9430609e50737703b99ebe91bcd56d0f11b3a2f4e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf015dc8d5da40007d53cd878dd0bf327e56e71e546e728ab73e1ff5f11aec7b3", - "transactionsTrie": "0x696b9af9c5f545a4514867471a0a65ce6038fce7296ae7cecb2c841825efbb7a", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x9dec4f53d65b02f42875999d112a06352b6f83c05574b7f533681f262806953f", + "transactionsTrie": "0xb79c20aec8a8788bbe32012369373622b258a249a7b6d33724b2f422bb722524", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -361,35 +308,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x02100000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe4c6cf9107c97fecbab65be01f134218f1f89b6f3bda8942755cda1507104ed2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc30e6a3fa8801f97c8c82043d231591d1cca0e50162f28cb45e32a1dab9728a2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf015dc8d5da40007d53cd878dd0bf327e56e71e546e728ab73e1ff5f11aec7b3", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x2100000", - "blockHash": "0xe4c6cf9107c97fecbab65be01f134218f1f89b6f3bda8942755cda1507104ed2", - "transactions": [ - "0x03f887018080078252089400000000000000000000000000000000000001000180c0827beee1a0010000000000000000000000000000000000000000000000000000000000000080a0d6ba716c1f343188b0e0bda4da7e8107807ba69ea49111931d0821d525ea036fa06666b8584d0d8b08f562a826f2f64b1031cf2e72e24fc3c254e8569dce2d689f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3ad55d31e84583f92f02372b6bf4b98782fd290eb706e5e9ae4266840907f1cc" }, "blocknumber": "2", "transactions": [ @@ -399,7 +318,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -408,9 +327,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x00", - "r": "0xd6ba716c1f343188b0e0bda4da7e8107807ba69ea49111931d0821d525ea036f", - "s": "0x6666b8584d0d8b08f562a826f2f64b1031cf2e72e24fc3c254e8569dce2d689f", + "v": "0x01", + "r": "0x2af6460b3cc78e5e4bea574b5d09c3b446a15a61d705ad4c433283071a0e542c", + "s": "0x10c8e1c39f246f6880a01fb062ba0c4361ae5dce7e6fb0b5da324e18c39ed9ab", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -418,37 +337,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x81b793613821fb9b43286a405035284ac69b1e8a0db25860bfe80746179b8f0f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x02180000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6eba181fc3ba9dcc8ce129f093e69004321d14352ff559111e2bc1028f2598f2" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a081b793613821fb9b43286a405035284ac69b1e8a0db25860bfe80746179b8f0fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808402180000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe4c6cf9107c97fecbab65be01f134218f1f89b6f3bda8942755cda1507104ed2", - "network": "Cancun", + "lastblockhash": "0x3ad55d31e84583f92f02372b6bf4b98782fd290eb706e5e9ae4266840907f1cc", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -459,26 +359,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0xf7de3e39", + "balance": "0xf7e0ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x7bee" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -486,6 +379,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fdfc6dc1c7", @@ -494,7 +396,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -503,18 +405,43 @@ }, "002-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=565-expected_excess_blob_gas:0x4680000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d4ffdcda308d0aa83e539b573a6658877c5a03cabedf63baf243ee441efee2afa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808404700000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd4ffdcda308d0aa83e539b573a6658877c5a03cabedf63baf243ee441efee2af", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x04700000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x046001e4fa79c1ec849d13b9230a0f905ce51c4ad20febb02a944108fc02ac94" + }, "blocks": [ { - "rlp": "0xf902fbf90243a07e15fe997d0b6ea155c90367cf9604b4bffc2b3ec3bf29183b3265943224391aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4fef08ea35b58c78c838479c36c410ec23c817f07ddd0058d96dec3ef4fd12fa076bbbb1ef07c53cd0eca2eaf43a7879612be18d8804ecd456e21f641f3c04e82a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000084046a0000a00000000000000000000000000000000000000000000000000000000000000000f8b1b8af03f8ac018080078252089400000000000000000000000000000000000002000180c085010073bc9df842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a096d7b6890a3cdedb6af1ae746aa1b711a2f6e564f0d6835c27baa64068bb5f7da028e8a532f4f3368e85eeeab532b9eb4b841aa77aa260561e8908ea8aea024030c0c0", + "rlp": "0xf902fbf90243a0046001e4fa79c1ec849d13b9230a0f905ce51c4ad20febb02a944108fc02ac94a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01999fa34e4411a7c9eda355e4f00bc2710c506b855ce600a21af3f04557cb910a076bbbb1ef07c53cd0eca2eaf43a7879612be18d8804ecd456e21f641f3c04e82a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000084046a0000a00000000000000000000000000000000000000000000000000000000000000000f8b1b8af03f8ac018080078252089400000000000000000000000000000000000002000180c085010073bc9df842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a096d7b6890a3cdedb6af1ae746aa1b711a2f6e564f0d6835c27baa64068bb5f7da028e8a532f4f3368e85eeeab532b9eb4b841aa77aa260561e8908ea8aea024030c0c0", "blockHeader": { - "parentHash": "0x7e15fe997d0b6ea155c90367cf9604b4bffc2b3ec3bf29183b3265943224391a", + "parentHash": "0x046001e4fa79c1ec849d13b9230a0f905ce51c4ad20febb02a944108fc02ac94", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf4fef08ea35b58c78c838479c36c410ec23c817f07ddd0058d96dec3ef4fd12f", + "stateRoot": "0x1999fa34e4411a7c9eda355e4f00bc2710c506b855ce600a21af3f04557cb910", "transactionsTrie": "0x76bbbb1ef07c53cd0eca2eaf43a7879612be18d8804ecd456e21f641f3c04e82", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -531,36 +458,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x046a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfb0cb9d9a01ba50db216243affb197dc095bef4272cf21a9f022c510ecc9aafb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7e15fe997d0b6ea155c90367cf9604b4bffc2b3ec3bf29183b3265943224391a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf4fef08ea35b58c78c838479c36c410ec23c817f07ddd0058d96dec3ef4fd12f", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x46a0000", - "blockHash": "0xfb0cb9d9a01ba50db216243affb197dc095bef4272cf21a9f022c510ecc9aafb", - "transactions": [ - "0x03f8ac018080078252089400000000000000000000000000000000000002000180c085010073bc9df842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a096d7b6890a3cdedb6af1ae746aa1b711a2f6e564f0d6835c27baa64068bb5f7da028e8a532f4f3368e85eeeab532b9eb4b841aa77aa260561e8908ea8aea024030" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9d4f1f7ac16c822de2bf6ffb51f3558b2f565444be2bd3b31ef7db2f9a83205f" }, "blocknumber": "1", "transactions": [ @@ -590,19 +488,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90243a0fb0cb9d9a01ba50db216243affb197dc095bef4272cf21a9f022c510ecc9aafba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1bf601ff02fd53ae60d0c510dd9deff412d99ac5358093ff43ba7397a5e237ea0f56b8233dc5db8562f5125df4f773fb382ed2f46f2f66b7fd434e44125106ef3a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008404680000a00000000000000000000000000000000000000000000000000000000000000000f88eb88c03f889018080078252089400000000000000000000000000000000000001000180c084f6942037e1a0010000000000000000000000000000000000000000000000000000000000000001a08ba2254c18046477bf00f4e05e19e63d1a34c6a4dee32de59cd950ef0feab124a0403c5359f120ef6ce8afa1c6681b0aba780cdf1bb2713f147829e8cc09724f98c0c0", + "rlp": "0xf902d8f90243a09d4f1f7ac16c822de2bf6ffb51f3558b2f565444be2bd3b31ef7db2f9a83205fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04f2ae892f3e76bed3fc5f25fd7876013e905431b6fbcbb20318dba28477c8eada0efa1073b048a006078bc95b5c644df4c02625f976ae7ccfefd1df90d5999ec04a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008404680000a00000000000000000000000000000000000000000000000000000000000000000f88eb88c03f8890180800782afc89400000000000000000000000000000000000001000180c084f6942037e1a0010000000000000000000000000000000000000000000000000000000000000080a0b3e416f83d982e5b2894d9f5c1c34f2f52f403d2333253d5706e6a5896a2a664a00c4359af414fb0315145c548e641dbcdab13c78a515122619851bd25dab7d0c8c0c0", "blockHeader": { - "parentHash": "0xfb0cb9d9a01ba50db216243affb197dc095bef4272cf21a9f022c510ecc9aafb", + "parentHash": "0x9d4f1f7ac16c822de2bf6ffb51f3558b2f565444be2bd3b31ef7db2f9a83205f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1bf601ff02fd53ae60d0c510dd9deff412d99ac5358093ff43ba7397a5e237e", - "transactionsTrie": "0xf56b8233dc5db8562f5125df4f773fb382ed2f46f2f66b7fd434e44125106ef3", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x4f2ae892f3e76bed3fc5f25fd7876013e905431b6fbcbb20318dba28477c8ead", + "transactionsTrie": "0xefa1073b048a006078bc95b5c644df4c02625f976ae7ccfefd1df90d5999ec04", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -612,35 +510,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x04680000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x708f70d840772cbf27143f83232d7227e851d2841d627fb67f1249a8d67ab4b1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfb0cb9d9a01ba50db216243affb197dc095bef4272cf21a9f022c510ecc9aafb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1bf601ff02fd53ae60d0c510dd9deff412d99ac5358093ff43ba7397a5e237e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x4680000", - "blockHash": "0x708f70d840772cbf27143f83232d7227e851d2841d627fb67f1249a8d67ab4b1", - "transactions": [ - "0x03f889018080078252089400000000000000000000000000000000000001000180c084f6942037e1a0010000000000000000000000000000000000000000000000000000000000000001a08ba2254c18046477bf00f4e05e19e63d1a34c6a4dee32de59cd950ef0feab124a0403c5359f120ef6ce8afa1c6681b0aba780cdf1bb2713f147829e8cc09724f98" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1a654d5fb377264b2bb36f27ff4f922a05bbc02119da5912469b6c4b879921da" }, "blocknumber": "2", "transactions": [ @@ -650,7 +520,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -659,9 +529,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0x8ba2254c18046477bf00f4e05e19e63d1a34c6a4dee32de59cd950ef0feab124", - "s": "0x403c5359f120ef6ce8afa1c6681b0aba780cdf1bb2713f147829e8cc09724f98", + "v": "0x00", + "r": "0xb3e416f83d982e5b2894d9f5c1c34f2f52f403d2333253d5706e6a5896a2a664", + "s": "0x0c4359af414fb0315145c548e641dbcdab13c78a515122619851bd25dab7d0c8", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -669,37 +539,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf6fc27c40fb2c3fd2684b090174bc6be6083b189da3bd87d1e30b96193633900", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x04700000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7e15fe997d0b6ea155c90367cf9604b4bffc2b3ec3bf29183b3265943224391a" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f6fc27c40fb2c3fd2684b090174bc6be6083b189da3bd87d1e30b96193633900a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808404700000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x708f70d840772cbf27143f83232d7227e851d2841d627fb67f1249a8d67ab4b1", - "network": "Cancun", + "lastblockhash": "0x1a654d5fb377264b2bb36f27ff4f922a05bbc02119da5912469b6c4b879921da", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -710,26 +561,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x01ed2840703e39", + "balance": "0x01ed284072ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0xf6942037" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -737,6 +581,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f15f310d89c1c7", @@ -745,7 +598,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -754,18 +607,43 @@ }, "003-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=830-expected_excess_blob_gas:0x67a0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00e751bd2dbc3d2237336ed1557e91d2809492baf7a7ed92a17b175187711fa92a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808406820000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0e751bd2dbc3d2237336ed1557e91d2809492baf7a7ed92a17b175187711fa92", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x06820000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x048dbfff9c0f2fdfb8429275fd1515174aaf26cb1ecebd46c62d4fadc255862d" + }, "blocks": [ { - "rlp": "0xf902fcf90243a08f6e2be901fdb6cb1a33e3afa0d3fcda880836e2815a61fd6cce11ed292d37dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d6a1a9048f0606442a8fabf5a374696f6ec90628ff99f1e7985c72f5f0e8c2a3a0072e62a06c38f755ae1350837d5b426719dc98b3470c4cdd8e90194fa0ada434a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000084067c0000a00000000000000000000000000000000000000000000000000000000000000000f8b2b8b003f8ad018080078252089400000000000000000000000000000000000002000180c086811f2fd4afccf842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0e1b86c3506e72dc441963576ba50e1bb672fea9519bae6933de882a0897f9d31a07cba0918812d017e8101eca34c9f50b16379b02d91c4a9f0c04b5f223e6d5b1fc0c0", + "rlp": "0xf902fcf90243a0048dbfff9c0f2fdfb8429275fd1515174aaf26cb1ecebd46c62d4fadc255862da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016589c2a82ab038f26524cbbaa119c1e9b72f4b6d659a1a31af16b44e81526cda0072e62a06c38f755ae1350837d5b426719dc98b3470c4cdd8e90194fa0ada434a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000084067c0000a00000000000000000000000000000000000000000000000000000000000000000f8b2b8b003f8ad018080078252089400000000000000000000000000000000000002000180c086811f2fd4afccf842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0e1b86c3506e72dc441963576ba50e1bb672fea9519bae6933de882a0897f9d31a07cba0918812d017e8101eca34c9f50b16379b02d91c4a9f0c04b5f223e6d5b1fc0c0", "blockHeader": { - "parentHash": "0x8f6e2be901fdb6cb1a33e3afa0d3fcda880836e2815a61fd6cce11ed292d37de", + "parentHash": "0x048dbfff9c0f2fdfb8429275fd1515174aaf26cb1ecebd46c62d4fadc255862d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd6a1a9048f0606442a8fabf5a374696f6ec90628ff99f1e7985c72f5f0e8c2a3", + "stateRoot": "0x16589c2a82ab038f26524cbbaa119c1e9b72f4b6d659a1a31af16b44e81526cd", "transactionsTrie": "0x072e62a06c38f755ae1350837d5b426719dc98b3470c4cdd8e90194fa0ada434", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -782,36 +660,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x067c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc5d6ffaa33ca1f7bbf7aecc70dbf1ce14f2e313c301080de07bc920c9d283053" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8f6e2be901fdb6cb1a33e3afa0d3fcda880836e2815a61fd6cce11ed292d37de", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd6a1a9048f0606442a8fabf5a374696f6ec90628ff99f1e7985c72f5f0e8c2a3", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x67c0000", - "blockHash": "0xc5d6ffaa33ca1f7bbf7aecc70dbf1ce14f2e313c301080de07bc920c9d283053", - "transactions": [ - "0x03f8ad018080078252089400000000000000000000000000000000000002000180c086811f2fd4afccf842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0e1b86c3506e72dc441963576ba50e1bb672fea9519bae6933de882a0897f9d31a07cba0918812d017e8101eca34c9f50b16379b02d91c4a9f0c04b5f223e6d5b1f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x74c3544bcd2d28601f91548c8dd02358a9c17563fffcc6373bf4a72519622458" }, "blocknumber": "1", "transactions": [ @@ -841,19 +690,19 @@ "withdrawals": [] }, { - "rlp": "0xf902daf90243a0c5d6ffaa33ca1f7bbf7aecc70dbf1ce14f2e313c301080de07bc920c9d283053a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa017774a8188c0a2f42d60257eba055b8a731a51a7160a12d894e11689980f7b56a0f12b546b81d76432ac3cf8fc92109b26fbdd41c162c24b607775fb24513eb3c9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084067a0000a00000000000000000000000000000000000000000000000000000000000000000f890b88e03f88b018080078252089400000000000000000000000000000000000001000180c0867c268d7260f3e1a0010000000000000000000000000000000000000000000000000000000000000001a0a07021cc9496d2e4f1b10fc6f4f5f515ba3915d5eada16f76694fbbcf07977bea0676f05677955ec169ad5c4ccceca31b02909aca26178f36947e237026452e04ac0c0", + "rlp": "0xf902daf90243a074c3544bcd2d28601f91548c8dd02358a9c17563fffcc6373bf4a72519622458a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa076066f6d52245e02991f96502809fab5d42fe35927d6d731939ffccb8ab36226a06d77ac07831de0fce05e24e06c45eae40a0464f674c60d96283531a92ce8f4b2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084067a0000a00000000000000000000000000000000000000000000000000000000000000000f890b88e03f88b0180800782afc89400000000000000000000000000000000000001000180c0867c268d7260f3e1a0010000000000000000000000000000000000000000000000000000000000000080a071c43cdd8456a496f8f2ef6f896f72074160ba2333cf403ef87a00723eb2a364a03479e859960339bd7bfe877f6c26041d86d1d419f8026f7101babe2ab200b9fdc0c0", "blockHeader": { - "parentHash": "0xc5d6ffaa33ca1f7bbf7aecc70dbf1ce14f2e313c301080de07bc920c9d283053", + "parentHash": "0x74c3544bcd2d28601f91548c8dd02358a9c17563fffcc6373bf4a72519622458", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x17774a8188c0a2f42d60257eba055b8a731a51a7160a12d894e11689980f7b56", - "transactionsTrie": "0xf12b546b81d76432ac3cf8fc92109b26fbdd41c162c24b607775fb24513eb3c9", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x76066f6d52245e02991f96502809fab5d42fe35927d6d731939ffccb8ab36226", + "transactionsTrie": "0x6d77ac07831de0fce05e24e06c45eae40a0464f674c60d96283531a92ce8f4b2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -863,35 +712,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x067a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa022dc725c40bb460551880c90bdc5edf06a6e831c225dc04f7fcfcd62a347fd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc5d6ffaa33ca1f7bbf7aecc70dbf1ce14f2e313c301080de07bc920c9d283053", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x17774a8188c0a2f42d60257eba055b8a731a51a7160a12d894e11689980f7b56", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x67a0000", - "blockHash": "0xa022dc725c40bb460551880c90bdc5edf06a6e831c225dc04f7fcfcd62a347fd", - "transactions": [ - "0x03f88b018080078252089400000000000000000000000000000000000001000180c0867c268d7260f3e1a0010000000000000000000000000000000000000000000000000000000000000001a0a07021cc9496d2e4f1b10fc6f4f5f515ba3915d5eada16f76694fbbcf07977bea0676f05677955ec169ad5c4ccceca31b02909aca26178f36947e237026452e04a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x662e6b489bcfd9d2c51b6bd8996b46624438fad1b6e9f23ddfb8d0f190570e67" }, "blocknumber": "2", "transactions": [ @@ -901,7 +722,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -910,9 +731,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa07021cc9496d2e4f1b10fc6f4f5f515ba3915d5eada16f76694fbbcf07977be", - "s": "0x676f05677955ec169ad5c4ccceca31b02909aca26178f36947e237026452e04a", + "v": "0x00", + "r": "0x71c43cdd8456a496f8f2ef6f896f72074160ba2333cf403ef87a00723eb2a364", + "s": "0x3479e859960339bd7bfe877f6c26041d86d1d419f8026f7101babe2ab200b9fd", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -920,37 +741,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9f153155ec052d32e69a8d5dddd2eb1a17f893043208dc9e99655d45ec80099e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x06820000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8f6e2be901fdb6cb1a33e3afa0d3fcda880836e2815a61fd6cce11ed292d37de" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09f153155ec052d32e69a8d5dddd2eb1a17f893043208dc9e99655d45ec80099ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808406820000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa022dc725c40bb460551880c90bdc5edf06a6e831c225dc04f7fcfcd62a347fd", - "network": "Cancun", + "lastblockhash": "0x662e6b489bcfd9d2c51b6bd8996b46624438fad1b6e9f23ddfb8d0f190570e67", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -961,26 +763,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0xf84d1ae4c1e83e39", + "balance": "0xf84d1ae4c1eace79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x7c268d7260f3" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -988,6 +783,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfa9b578a1ad40cdc1c7", @@ -996,7 +800,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -1005,18 +809,43 @@ }, "004-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=1130-expected_excess_blob_gas:0x8d20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05b4b5e07972be83e3ace48caf78ff3c3e981e1b4b1a5f48af233331865a17be2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808408da0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5b4b5e07972be83e3ace48caf78ff3c3e981e1b4b1a5f48af233331865a17be2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x08da0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x66036c6f317abeb099b3f5bb5c9a5afe7b79371f27de207eaeb026eabe922225" + }, "blocks": [ { - "rlp": "0xf902fff90243a0c3ccd97e0b58a43f4993607938c28ee7f7ad3cfc32044ab10d050af5b7e114aaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5c955bbff179e9744d4984381305ea8ba68c1ebdef4180c4cb39cdbcf4ac284a003f875f97d9614d09755af1d558d527532762c23130fab7a80edab8dc78ddb12a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830400008408d40000a00000000000000000000000000000000000000000000000000000000000000000f8b5b8b303f8b0018080078252089400000000000000000000000000000000000002000180c0890100e7ad92440bbbadf842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a09055d90883092902a15cb974d29b65b92c11c3a51a6a5a27f7241a6855c6103aa05ff09a479b9074280a8e1039390fb0f9bce0463ec6ffed70be157d159d5de4dfc0c0", + "rlp": "0xf902fff90243a066036c6f317abeb099b3f5bb5c9a5afe7b79371f27de207eaeb026eabe922225a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07ff074409de4a963cab5b315cbe93cac3dd6fc5bef475948d01594bb061919f5a003f875f97d9614d09755af1d558d527532762c23130fab7a80edab8dc78ddb12a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830400008408d40000a00000000000000000000000000000000000000000000000000000000000000000f8b5b8b303f8b0018080078252089400000000000000000000000000000000000002000180c0890100e7ad92440bbbadf842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a09055d90883092902a15cb974d29b65b92c11c3a51a6a5a27f7241a6855c6103aa05ff09a479b9074280a8e1039390fb0f9bce0463ec6ffed70be157d159d5de4dfc0c0", "blockHeader": { - "parentHash": "0xc3ccd97e0b58a43f4993607938c28ee7f7ad3cfc32044ab10d050af5b7e114aa", + "parentHash": "0x66036c6f317abeb099b3f5bb5c9a5afe7b79371f27de207eaeb026eabe922225", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb5c955bbff179e9744d4984381305ea8ba68c1ebdef4180c4cb39cdbcf4ac284", + "stateRoot": "0x7ff074409de4a963cab5b315cbe93cac3dd6fc5bef475948d01594bb061919f5", "transactionsTrie": "0x03f875f97d9614d09755af1d558d527532762c23130fab7a80edab8dc78ddb12", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1033,36 +862,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x08d40000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x31c17ceac1b7d72ee61438d4cdd6e83632affae22e575271ce406db01f72f56c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc3ccd97e0b58a43f4993607938c28ee7f7ad3cfc32044ab10d050af5b7e114aa", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb5c955bbff179e9744d4984381305ea8ba68c1ebdef4180c4cb39cdbcf4ac284", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x8d40000", - "blockHash": "0x31c17ceac1b7d72ee61438d4cdd6e83632affae22e575271ce406db01f72f56c", - "transactions": [ - "0x03f8b0018080078252089400000000000000000000000000000000000002000180c0890100e7ad92440bbbadf842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a09055d90883092902a15cb974d29b65b92c11c3a51a6a5a27f7241a6855c6103aa05ff09a479b9074280a8e1039390fb0f9bce0463ec6ffed70be157d159d5de4df" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa7109ca20d442ffeb11976c64c0594f1185d7a2c419066fdffc2e61d6ffcb381" }, "blocknumber": "1", "transactions": [ @@ -1092,19 +892,19 @@ "withdrawals": [] }, { - "rlp": "0xf902dcf90243a031c17ceac1b7d72ee61438d4cdd6e83632affae22e575271ce406db01f72f56ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f275b532566ee7e17c2448a4264a66db2ff610bc9de2568d9934409e36743b6ca0f86a298d92789b9d7dffd4f788d4a479072c1c21af0d8d6150ff4e235ef90b59a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008408d20000a00000000000000000000000000000000000000000000000000000000000000000f892b89003f88d018080078252089400000000000000000000000000000000000001000180c088f7039a70865e950de1a0010000000000000000000000000000000000000000000000000000000000000080a0f02d6f4901220294c0e2f2b4676560b77b1d8f064ad487b21bc1460a1b1bc841a05d9188dec821b23e8f7b9e378424882e96e8f0962b1ba2e39b911ca4becfab3fc0c0", + "rlp": "0xf902dcf90243a0a7109ca20d442ffeb11976c64c0594f1185d7a2c419066fdffc2e61d6ffcb381a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0df0b8b3d46ae9e87ec232db71b4891c2c8a9a8cc9211edfa90c6079076638b1ea0bbfbf0db4d12b5ea6155a8dda0ff49f93db38493d8c48ee8d2a0cf8b51bba366a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008408d20000a00000000000000000000000000000000000000000000000000000000000000000f892b89003f88d0180800782afc89400000000000000000000000000000000000001000180c088f7039a70865e950de1a0010000000000000000000000000000000000000000000000000000000000000080a0a5ebcfd1d44a974f493bc7f2afd40be9ef3eac2a1750d6168b7936ec30f06703a03b73f097aff6e0869f488eb3d26c40c2e85c081e31b8ea0b960448479c27de10c0c0", "blockHeader": { - "parentHash": "0x31c17ceac1b7d72ee61438d4cdd6e83632affae22e575271ce406db01f72f56c", + "parentHash": "0xa7109ca20d442ffeb11976c64c0594f1185d7a2c419066fdffc2e61d6ffcb381", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf275b532566ee7e17c2448a4264a66db2ff610bc9de2568d9934409e36743b6c", - "transactionsTrie": "0xf86a298d92789b9d7dffd4f788d4a479072c1c21af0d8d6150ff4e235ef90b59", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xdf0b8b3d46ae9e87ec232db71b4891c2c8a9a8cc9211edfa90c6079076638b1e", + "transactionsTrie": "0xbbfbf0db4d12b5ea6155a8dda0ff49f93db38493d8c48ee8d2a0cf8b51bba366", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1114,35 +914,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x08d20000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6c8923685daaec932030a38d513d80b35e63f4e7ff610042a37dbfdfe69f9916" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x31c17ceac1b7d72ee61438d4cdd6e83632affae22e575271ce406db01f72f56c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf275b532566ee7e17c2448a4264a66db2ff610bc9de2568d9934409e36743b6c", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x8d20000", - "blockHash": "0x6c8923685daaec932030a38d513d80b35e63f4e7ff610042a37dbfdfe69f9916", - "transactions": [ - "0x03f88d018080078252089400000000000000000000000000000000000001000180c088f7039a70865e950de1a0010000000000000000000000000000000000000000000000000000000000000080a0f02d6f4901220294c0e2f2b4676560b77b1d8f064ad487b21bc1460a1b1bc841a05d9188dec821b23e8f7b9e378424882e96e8f0962b1ba2e39b911ca4becfab3f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6089272c64a733abd558545d5b9fcc7c11860ffc6249df679acf98b126b0e8e9" }, "blocknumber": "2", "transactions": [ @@ -1152,7 +924,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -1162,8 +934,8 @@ "0x0100000000000000000000000000000000000000000000000000000000000000" ], "v": "0x00", - "r": "0xf02d6f4901220294c0e2f2b4676560b77b1d8f064ad487b21bc1460a1b1bc841", - "s": "0x5d9188dec821b23e8f7b9e378424882e96e8f0962b1ba2e39b911ca4becfab3f", + "r": "0xa5ebcfd1d44a974f493bc7f2afd40be9ef3eac2a1750d6168b7936ec30f06703", + "s": "0x3b73f097aff6e0869f488eb3d26c40c2e85c081e31b8ea0b960448479c27de10", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1171,37 +943,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xede16561d5b39ecdfc2a405e58cb41e4ec8babdd459135f389abe1046f10d7ea", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x08da0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc3ccd97e0b58a43f4993607938c28ee7f7ad3cfc32044ab10d050af5b7e114aa" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ede16561d5b39ecdfc2a405e58cb41e4ec8babdd459135f389abe1046f10d7eaa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808408da0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6c8923685daaec932030a38d513d80b35e63f4e7ff610042a37dbfdfe69f9916", - "network": "Cancun", + "lastblockhash": "0x6089272c64a733abd558545d5b9fcc7c11860ffc6249df679acf98b126b0e8e9", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1212,26 +965,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x01ee0734e10cbd2a1c3e39", + "balance": "0x01ee0734e10cbd2a1ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0xf7039a70865e950d" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1239,6 +985,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca0bc0d03ac50d11149c1c7", @@ -1247,7 +1002,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -1256,18 +1011,43 @@ }, "005-fork=Cancun-new_blobs=1-parent_blobs=2-parent_excess_blobs=1230-expected_excess_blob_gas:0x99a0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04295b9a4ca3d3bde60053e12aa07dc07a9ac992b342bc31c195304755054a931a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808409a20000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4295b9a4ca3d3bde60053e12aa07dc07a9ac992b342bc31c195304755054a931", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x09a20000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x454480eede46dbfb0ad724a0368d35f44ff61c087a9dea18ef3e4564a00edfc8" + }, "blocks": [ { - "rlp": "0xf902fff90243a0fd675b6ebc1a72bf1e0b1fe24d96be2cf815c09c96fc17afb504fc3342169e3ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b7bcaa02dfc8a0e89dd2c6f8eec0cdbee6e48c6133deead39f56365b0e327065a07ebed2121fd19da346efe3353ed22aa470b7dfc0bef00969d37431c32605dc7ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000084099c0000a00000000000000000000000000000000000000000000000000000000000000000f8b5b8b303f8b0018080078252089400000000000000000000000000000000000002000180c08932e35f42080f3529fcf842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0eddea4e5d9dbcb35486f100158196ef9a5a95cd4e309d49a7cb7c6c348469a56a01e09d6e4e4411541404eab8f4bfe1ea92611f85d226a6a283c3aa32480457ac5c0c0", + "rlp": "0xf902fff90243a0454480eede46dbfb0ad724a0368d35f44ff61c087a9dea18ef3e4564a00edfc8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09e430605e61c256b76461276eb92a85ab6136faf666db3f11d28a25aa2977d04a07ebed2121fd19da346efe3353ed22aa470b7dfc0bef00969d37431c32605dc7ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000084099c0000a00000000000000000000000000000000000000000000000000000000000000000f8b5b8b303f8b0018080078252089400000000000000000000000000000000000002000180c08932e35f42080f3529fcf842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0eddea4e5d9dbcb35486f100158196ef9a5a95cd4e309d49a7cb7c6c348469a56a01e09d6e4e4411541404eab8f4bfe1ea92611f85d226a6a283c3aa32480457ac5c0c0", "blockHeader": { - "parentHash": "0xfd675b6ebc1a72bf1e0b1fe24d96be2cf815c09c96fc17afb504fc3342169e3b", + "parentHash": "0x454480eede46dbfb0ad724a0368d35f44ff61c087a9dea18ef3e4564a00edfc8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb7bcaa02dfc8a0e89dd2c6f8eec0cdbee6e48c6133deead39f56365b0e327065", + "stateRoot": "0x9e430605e61c256b76461276eb92a85ab6136faf666db3f11d28a25aa2977d04", "transactionsTrie": "0x7ebed2121fd19da346efe3353ed22aa470b7dfc0bef00969d37431c32605dc7c", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1284,36 +1064,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x099c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x317bfc10ac53043f705ab59e1872da7efedbfceb8d1c8742b4e89f02cdf83333" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfd675b6ebc1a72bf1e0b1fe24d96be2cf815c09c96fc17afb504fc3342169e3b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb7bcaa02dfc8a0e89dd2c6f8eec0cdbee6e48c6133deead39f56365b0e327065", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x99c0000", - "blockHash": "0x317bfc10ac53043f705ab59e1872da7efedbfceb8d1c8742b4e89f02cdf83333", - "transactions": [ - "0x03f8b0018080078252089400000000000000000000000000000000000002000180c08932e35f42080f3529fcf842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a0eddea4e5d9dbcb35486f100158196ef9a5a95cd4e309d49a7cb7c6c348469a56a01e09d6e4e4411541404eab8f4bfe1ea92611f85d226a6a283c3aa32480457ac5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x008f66e4974b657751445227b61904ea49e89e5907581c03f2a746937eedc218" }, "blocknumber": "1", "transactions": [ @@ -1343,19 +1094,19 @@ "withdrawals": [] }, { - "rlp": "0xf902ddf90243a0317bfc10ac53043f705ab59e1872da7efedbfceb8d1c8742b4e89f02cdf83333a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa088053302d39d0f03a7b94af5a4b4100bbcd6507c788d51ef1b2161e33dc9a053a0886af3baed7e26c5260cd0588606fdcbffc2bfccef703a650537ea72a05ab184a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084099a0000a00000000000000000000000000000000000000000000000000000000000000000f893b89103f88e018080078252089400000000000000000000000000000000000001000180c08930edd0822c2fc06c74e1a0010000000000000000000000000000000000000000000000000000000000000080a0964d6bbf20ae455c4defcf0f35184e466c8e2961169b7505885aff87551d089da066471f3e343dcc986b261b70d6e6a777d5097c923bdbf91deec64c2dc2e14365c0c0", + "rlp": "0xf902ddf90243a0008f66e4974b657751445227b61904ea49e89e5907581c03f2a746937eedc218a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04354cd2c6bfa080469e82fcea4c5385216411c13661c00d355c9547846ec7e4ba0023ebf90364cd1cb20c54c4963736e4c575fd8dafd5feddd37ac26a3136b3b6da0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084099a0000a00000000000000000000000000000000000000000000000000000000000000000f893b89103f88e0180800782afc89400000000000000000000000000000000000001000180c08930edd0822c2fc06c74e1a0010000000000000000000000000000000000000000000000000000000000000001a0ce18b708149185662b2079b1a2316279dd4da3f2de4f9ee503c84f082ec43736a01d654daa87229de7bd44fd3ead8746ecbbb830bfd24d6f47324cf4b16239af1dc0c0", "blockHeader": { - "parentHash": "0x317bfc10ac53043f705ab59e1872da7efedbfceb8d1c8742b4e89f02cdf83333", + "parentHash": "0x008f66e4974b657751445227b61904ea49e89e5907581c03f2a746937eedc218", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x88053302d39d0f03a7b94af5a4b4100bbcd6507c788d51ef1b2161e33dc9a053", - "transactionsTrie": "0x886af3baed7e26c5260cd0588606fdcbffc2bfccef703a650537ea72a05ab184", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x4354cd2c6bfa080469e82fcea4c5385216411c13661c00d355c9547846ec7e4b", + "transactionsTrie": "0x023ebf90364cd1cb20c54c4963736e4c575fd8dafd5feddd37ac26a3136b3b6d", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1365,35 +1116,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x099a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd5c2de91e5b09be4a271b020ce69790e114a69633de8fe9d199be2d8e8ce83ec" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x317bfc10ac53043f705ab59e1872da7efedbfceb8d1c8742b4e89f02cdf83333", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x88053302d39d0f03a7b94af5a4b4100bbcd6507c788d51ef1b2161e33dc9a053", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x99a0000", - "blockHash": "0xd5c2de91e5b09be4a271b020ce69790e114a69633de8fe9d199be2d8e8ce83ec", - "transactions": [ - "0x03f88e018080078252089400000000000000000000000000000000000001000180c08930edd0822c2fc06c74e1a0010000000000000000000000000000000000000000000000000000000000000080a0964d6bbf20ae455c4defcf0f35184e466c8e2961169b7505885aff87551d089da066471f3e343dcc986b261b70d6e6a777d5097c923bdbf91deec64c2dc2e14365" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc3b56cbb4f62946d4f0966cec16971c3a9053e4e7c9c8d4f45f500f59fd381ef" }, "blocknumber": "2", "transactions": [ @@ -1403,7 +1126,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -1412,9 +1135,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x00", - "r": "0x964d6bbf20ae455c4defcf0f35184e466c8e2961169b7505885aff87551d089d", - "s": "0x66471f3e343dcc986b261b70d6e6a777d5097c923bdbf91deec64c2dc2e14365", + "v": "0x01", + "r": "0xce18b708149185662b2079b1a2316279dd4da3f2de4f9ee503c84f082ec43736", + "s": "0x1d654daa87229de7bd44fd3ead8746ecbbb830bfd24d6f47324cf4b16239af1d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1422,37 +1145,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x13c3ca541c6aca4d9d0fb0c8318aaa117a2e2aae8a496b6fd61f8441185ea3a0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x09a20000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfd675b6ebc1a72bf1e0b1fe24d96be2cf815c09c96fc17afb504fc3342169e3b" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a013c3ca541c6aca4d9d0fb0c8318aaa117a2e2aae8a496b6fd61f8441185ea3a0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808409a20000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd5c2de91e5b09be4a271b020ce69790e114a69633de8fe9d199be2d8e8ce83ec", - "network": "Cancun", + "lastblockhash": "0xc3b56cbb4f62946d4f0966cec16971c3a9053e4e7c9c8d4f45f500f59fd381ef", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1463,26 +1167,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x61dba104585f80d8ea3e39", + "balance": "0x61dba104585f80d8ecce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x30edd0822c2fc06c74" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1490,6 +1187,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35bd9322eb1d5242b580dc1c7", @@ -1498,7 +1204,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json index 40500b39f54..89cb1881b97 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_excess_blob_gas_calculation.json @@ -1,25 +1,50 @@ { "000-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa044816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -29,35 +54,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1002dcbacc1e02df6281e9ee34f377766620cee35f097b305637c1daefcf5abf" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x1002dcbacc1e02df6281e9ee34f377766620cee35f097b305637c1daefcf5abf", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe9637d30b9be869941a87967905760cf83200ae9bdc3cfb16cbb95dc9f5d7321" }, "blocknumber": "1", "transactions": [ @@ -67,7 +64,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -76,9 +73,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -86,37 +83,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1002dcbacc1e02df6281e9ee34f377766620cee35f097b305637c1daefcf5abf", - "network": "Cancun", + "lastblockhash": "0xe9637d30b9be869941a87967905760cf83200ae9bdc3cfb16cbb95dc9f5d7321", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -127,26 +105,28 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x01", - "code": "0x", - "storage": {} - }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -155,7 +135,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -164,18 +144,43 @@ }, "001-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -192,35 +197,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c" }, "blocknumber": "1", "transactions": [ @@ -249,19 +226,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa0b93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -271,35 +248,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x17a6531a8b0de22dd96ade854e20a688094701c0dbc922697bfe1d126e52788b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x17a6531a8b0de22dd96ade854e20a688094701c0dbc922697bfe1d126e52788b", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x26d7721ea56fd5e286c07ec9b3378b3233e0db95a9cc2a3396f7d9dbb7b1c861" }, "blocknumber": "2", "transactions": [ @@ -309,7 +258,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -318,9 +267,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -328,37 +277,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x17a6531a8b0de22dd96ade854e20a688094701c0dbc922697bfe1d126e52788b", - "network": "Cancun", + "lastblockhash": "0x26d7721ea56fd5e286c07ec9b3378b3233e0db95a9cc2a3396f7d9dbb7b1c861", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -369,26 +299,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -396,6 +319,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -404,7 +336,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -413,18 +345,43 @@ }, "002-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902f2f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f2f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -441,36 +398,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5" }, "blocknumber": "1", "transactions": [ @@ -500,19 +428,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa0cefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -522,35 +450,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x64e20a6f3383191f501197b0f418f9c906cafe025f1d09a06dbb7d67c15f7382" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x64e20a6f3383191f501197b0f418f9c906cafe025f1d09a06dbb7d67c15f7382", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9dfaea17c7b7249a7454675785063b95777ccc9335e014ddcc042e12beb6a4ee" }, "blocknumber": "2", "transactions": [ @@ -560,7 +460,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -569,9 +469,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -579,37 +479,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x64e20a6f3383191f501197b0f418f9c906cafe025f1d09a06dbb7d67c15f7382", - "network": "Cancun", + "lastblockhash": "0x9dfaea17c7b7249a7454675785063b95777ccc9335e014ddcc042e12beb6a4ee", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -620,26 +501,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -647,6 +521,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -655,7 +538,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -664,18 +547,43 @@ }, "003-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90313f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90313f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -692,37 +600,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266" }, "blocknumber": "1", "transactions": [ @@ -753,19 +631,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa0e8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -775,35 +653,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0a90745d9c8d57ca41fd76dafd08741b707376a3ab3a399e29be7eb4367b3bab" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x0a90745d9c8d57ca41fd76dafd08741b707376a3ab3a399e29be7eb4367b3bab", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x51d2c0f47d9b2630499fc008b56f399b8bbc004957779e700dfca93555f1486c" }, "blocknumber": "2", "transactions": [ @@ -813,7 +663,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -822,9 +672,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -832,37 +682,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0a90745d9c8d57ca41fd76dafd08741b707376a3ab3a399e29be7eb4367b3bab", - "network": "Cancun", + "lastblockhash": "0x51d2c0f47d9b2630499fc008b56f399b8bbc004957779e700dfca93555f1486c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -873,26 +704,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -900,6 +724,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -908,7 +741,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -917,18 +750,43 @@ }, "004-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=4-expected_excess_blob_gas:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90334f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90334f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -945,38 +803,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x0", - "blockHash": "0x434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95" }, "blocknumber": "1", "transactions": [ @@ -1008,19 +835,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1", + "parentHash": "0x105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1030,35 +857,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb9569151b7b9e333413c3ac695e277c08005f77a3025949c83d29d85a898f778" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xb9569151b7b9e333413c3ac695e277c08005f77a3025949c83d29d85a898f778", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1538e8145712c8d8f730d4aad48723e20aa484c12a2083a30401429607107b7e" }, "blocknumber": "2", "transactions": [ @@ -1068,7 +867,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -1077,9 +876,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1087,37 +886,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb9569151b7b9e333413c3ac695e277c08005f77a3025949c83d29d85a898f778", - "network": "Cancun", + "lastblockhash": "0x1538e8145712c8d8f730d4aad48723e20aa484c12a2083a30401429607107b7e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1128,26 +908,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1155,6 +928,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -1163,7 +945,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -1172,18 +954,43 @@ }, "005-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=5-expected_excess_blob_gas:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90358f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000080a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf90358f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000080a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1200,39 +1007,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6ba" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x0", - "blockHash": "0xaa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6ba", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393d" }, "blocknumber": "1", "transactions": [ @@ -1265,19 +1040,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0aa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6baa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a01311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xaa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6ba", + "parentHash": "0x1311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1287,35 +1062,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb06138b979eecbcdcf4fa2571e6ffc07e29b1b5ca16a7e03b6d807bcf8089091" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xaa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6ba", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xb06138b979eecbcdcf4fa2571e6ffc07e29b1b5ca16a7e03b6d807bcf8089091", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x230f597078bb43fdda2828d6b925c4938b4b04013dc69483d95f94be6ee81f64" }, "blocknumber": "2", "transactions": [ @@ -1325,7 +1072,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -1334,9 +1081,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1344,37 +1091,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb06138b979eecbcdcf4fa2571e6ffc07e29b1b5ca16a7e03b6d807bcf8089091", - "network": "Cancun", + "lastblockhash": "0x230f597078bb43fdda2828d6b925c4938b4b04013dc69483d95f94be6ee81f64", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1385,26 +1113,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1412,6 +1133,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -1420,7 +1150,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -1429,18 +1159,43 @@ }, "006-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=6-expected_excess_blob_gas:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90379f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf90379f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1457,40 +1212,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2db" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x6b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2db", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71" }, "blocknumber": "1", "transactions": [ @@ -1524,19 +1246,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a06b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2dba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0ec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x6b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2db", + "parentHash": "0xec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1546,35 +1268,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6947714cd2577bbbad633bceb15762f3377547234e345bcc9a040a0733cca69c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2db", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x6947714cd2577bbbad633bceb15762f3377547234e345bcc9a040a0733cca69c", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xab1a8fc0c30c070b0e614084c20e6dfdff3e6492fffdd5a1e6e24242879e3c3e" }, "blocknumber": "2", "transactions": [ @@ -1584,7 +1278,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -1593,9 +1287,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1603,37 +1297,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6947714cd2577bbbad633bceb15762f3377547234e345bcc9a040a0733cca69c", - "network": "Cancun", + "lastblockhash": "0xab1a8fc0c30c070b0e614084c20e6dfdff3e6492fffdd5a1e6e24242879e3c3e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1644,26 +1319,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1671,6 +1339,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -1679,7 +1356,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -1688,25 +1365,50 @@ }, "007-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=0-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa0caf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", + "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1716,35 +1418,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9da2055b13826a5eb3264824be7302a78c4d410f26727d6a1ceb44779c8f1024" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x9da2055b13826a5eb3264824be7302a78c4d410f26727d6a1ceb44779c8f1024", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xebbc7ba586e316454302adeeb9f15224dd665d7011c645334378ca1a038ce835" }, "blocknumber": "1", "transactions": [ @@ -1754,7 +1428,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -1763,9 +1437,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1773,37 +1447,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x020000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9da2055b13826a5eb3264824be7302a78c4d410f26727d6a1ceb44779c8f1024", - "network": "Cancun", + "lastblockhash": "0xebbc7ba586e316454302adeeb9f15224dd665d7011c645334378ca1a038ce835", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1814,26 +1469,28 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x01", - "code": "0x", - "storage": {} - }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1842,7 +1499,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -1851,18 +1508,43 @@ }, "008-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=1-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf902d3f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1879,35 +1561,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242" }, "blocknumber": "1", "transactions": [ @@ -1936,19 +1590,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa0ae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", + "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1958,35 +1612,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xda848ff5c1f741c5ddd74f53cd29725c1348d0847a6989454f6510db10ad16a0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xda848ff5c1f741c5ddd74f53cd29725c1348d0847a6989454f6510db10ad16a0", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf24904f2a8c7f4db47c858e3546e10f48c101648b437edb48aad67d7947b66d4" }, "blocknumber": "2", "transactions": [ @@ -1996,7 +1622,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -2005,9 +1631,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2015,37 +1641,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xda848ff5c1f741c5ddd74f53cd29725c1348d0847a6989454f6510db10ad16a0", - "network": "Cancun", + "lastblockhash": "0xf24904f2a8c7f4db47c858e3546e10f48c101648b437edb48aad67d7947b66d4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2056,26 +1663,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2083,6 +1683,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -2091,7 +1700,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -2100,18 +1709,43 @@ }, "009-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=2-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf902f5f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2128,36 +1762,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x20000", - "blockHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b" }, "blocknumber": "1", "transactions": [ @@ -2187,19 +1792,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa01740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", + "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2209,35 +1814,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2191d9c4f805c3c0327864480471cd762e27b5e1c213d86d68900e59c023c3df" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x2191d9c4f805c3c0327864480471cd762e27b5e1c213d86d68900e59c023c3df", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc6d01f79cf6b82a5c248659f8e24649ac5d2c07177673fd3464348857ef0ecc7" }, "blocknumber": "2", "transactions": [ @@ -2247,7 +1824,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -2256,9 +1833,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2266,37 +1843,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2191d9c4f805c3c0327864480471cd762e27b5e1c213d86d68900e59c023c3df", - "network": "Cancun", + "lastblockhash": "0xc6d01f79cf6b82a5c248659f8e24649ac5d2c07177673fd3464348857ef0ecc7", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2307,26 +1865,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2334,15 +1885,24 @@ "code": "0x", "storage": {} }, - "0x8a0a19589531694250d570040a0c4b74576919b8": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", - "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x8a0a19589531694250d570040a0c4b74576919b8": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -2351,18 +1911,43 @@ }, "010-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=3-expected_excess_blob_gas:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf90316f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083020000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083020000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2379,37 +1964,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x10c9f698b8199a90a4a84445bda331331e6a2ee28bc8f119a5d92a75764609f3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x20000", - "blockHash": "0x10c9f698b8199a90a4a84445bda331331e6a2ee28bc8f119a5d92a75764609f3", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe566d2b8cc2cd7079755ae38895b32f6373358109eb33cb0c11dc70d7ba4a473" }, "blocknumber": "1", "transactions": [ @@ -2440,19 +1995,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a010c9f698b8199a90a4a84445bda331331e6a2ee28bc8f119a5d92a75764609f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0e566d2b8cc2cd7079755ae38895b32f6373358109eb33cb0c11dc70d7ba4a473a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x10c9f698b8199a90a4a84445bda331331e6a2ee28bc8f119a5d92a75764609f3", + "parentHash": "0xe566d2b8cc2cd7079755ae38895b32f6373358109eb33cb0c11dc70d7ba4a473", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2462,35 +2017,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd8b0d776d0d35b8b15d55d5ffeace192521e618c5d71bba09c614af2a1ab6d8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x10c9f698b8199a90a4a84445bda331331e6a2ee28bc8f119a5d92a75764609f3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xd8b0d776d0d35b8b15d55d5ffeace192521e618c5d71bba09c614af2a1ab6d8f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0df9d32451d5a1033bbeaa2180586086d2ca9bd5befa537896f8df066a796b5d" }, "blocknumber": "2", "transactions": [ @@ -2500,7 +2027,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -2509,9 +2036,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2519,37 +2046,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd8b0d776d0d35b8b15d55d5ffeace192521e618c5d71bba09c614af2a1ab6d8f", - "network": "Cancun", + "lastblockhash": "0x0df9d32451d5a1033bbeaa2180586086d2ca9bd5befa537896f8df066a796b5d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2560,26 +2068,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2587,6 +2088,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -2595,7 +2105,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -2604,18 +2114,43 @@ }, "011-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=4-expected_excess_blob_gas:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf90337f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083020000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083020000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2632,38 +2167,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x20000", - "blockHash": "0x5ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52c", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035" }, "blocknumber": "1", "transactions": [ @@ -2695,19 +2199,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a05ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x5ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52c", + "parentHash": "0x036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2717,35 +2221,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf782b9e29a0e0601bba7688ad3fa415d3629bf9eac30e686f6f4f6fbc8ec0a0f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xf782b9e29a0e0601bba7688ad3fa415d3629bf9eac30e686f6f4f6fbc8ec0a0f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2cdc6bc72cede983f4af961d6715b00ac522aa00fa6b768fe389bfc1512835fe" }, "blocknumber": "2", "transactions": [ @@ -2755,7 +2231,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -2764,9 +2240,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2774,37 +2250,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf782b9e29a0e0601bba7688ad3fa415d3629bf9eac30e686f6f4f6fbc8ec0a0f", - "network": "Cancun", + "lastblockhash": "0x2cdc6bc72cede983f4af961d6715b00ac522aa00fa6b768fe389bfc1512835fe", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2815,26 +2272,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2842,6 +2292,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -2850,7 +2309,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -2859,18 +2318,43 @@ }, "012-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=5-expected_excess_blob_gas:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf9035bf90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083020000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083020000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2887,39 +2371,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x20000", - "blockHash": "0xc231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9e" }, "blocknumber": "1", "transactions": [ @@ -2952,19 +2404,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0c231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0a8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xc231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05", + "parentHash": "0xa8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2974,35 +2426,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6c9173a6b904950c7f40cbfd78f7dae661f5020fb458c8940db5371bdc79d704" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x6c9173a6b904950c7f40cbfd78f7dae661f5020fb458c8940db5371bdc79d704", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3c0ddbb0ded3a14c73d10abda5837e968dfa2853e5c42ad871c55319ac2015a1" }, "blocknumber": "2", "transactions": [ @@ -3012,7 +2436,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -3021,9 +2445,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3031,37 +2455,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6c9173a6b904950c7f40cbfd78f7dae661f5020fb458c8940db5371bdc79d704", - "network": "Cancun", + "lastblockhash": "0x3c0ddbb0ded3a14c73d10abda5837e968dfa2853e5c42ad871c55319ac2015a1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3072,26 +2477,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3099,6 +2497,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -3107,7 +2514,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -3116,22 +2523,47 @@ }, "013-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=6-expected_excess_blob_gas:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9037cf90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083020000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", - "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, + "blocks": [ + { + "rlp": "0xf9037cf90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083020000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "blockHeader": { + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", + "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", "gasUsed": "0x5208", @@ -3144,40 +2576,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x20000", - "blockHash": "0x4ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eb", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448" }, "blocknumber": "1", "transactions": [ @@ -3211,19 +2610,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a04ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x4ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eb", + "parentHash": "0x185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3233,35 +2632,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x080000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2daa5f863874d5be0dea604f801103e949b69bb4f2f5f8be83afb8fcaa06eaa0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0x2daa5f863874d5be0dea604f801103e949b69bb4f2f5f8be83afb8fcaa06eaa0", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe1c7153078312cc127e8dbeea1f5ae2667d09d57d089981ecafea0f7902354c8" }, "blocknumber": "2", "transactions": [ @@ -3271,7 +2642,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -3280,9 +2651,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3290,37 +2661,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2daa5f863874d5be0dea604f801103e949b69bb4f2f5f8be83afb8fcaa06eaa0", - "network": "Cancun", + "lastblockhash": "0xe1c7153078312cc127e8dbeea1f5ae2667d09d57d089981ecafea0f7902354c8", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3331,26 +2683,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3358,6 +2703,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -3366,7 +2720,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -3375,25 +2729,50 @@ }, "014-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=0-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa0fbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e", + "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3403,35 +2782,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf686dbc83d0a2856df45226d9732a35929d9845e6ec16fa51a3962b59d8dd87a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xf686dbc83d0a2856df45226d9732a35929d9845e6ec16fa51a3962b59d8dd87a", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd209dd79c06f0d2a240d91900c1b4f9b7e74dbf5a84d6bc517c172144e77e566" }, "blocknumber": "1", "transactions": [ @@ -3441,7 +2792,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -3450,9 +2801,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3460,37 +2811,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x040000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf686dbc83d0a2856df45226d9732a35929d9845e6ec16fa51a3962b59d8dd87a", - "network": "Cancun", + "lastblockhash": "0xd209dd79c06f0d2a240d91900c1b4f9b7e74dbf5a84d6bc517c172144e77e566", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3501,26 +2833,28 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x01", - "code": "0x", - "storage": {} - }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -3529,7 +2863,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -3538,18 +2872,43 @@ }, "015-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=1-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3566,35 +2925,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781" }, "blocknumber": "1", "transactions": [ @@ -3623,19 +2954,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa0e8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", + "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3645,35 +2976,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc0d822005aabb7bcb9b8cade85d2d40a231a281ce3b53dbfa578ce6afb709d4c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xc0d822005aabb7bcb9b8cade85d2d40a231a281ce3b53dbfa578ce6afb709d4c", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9832c90381b63cdee579f8ec31e93f51a0e62565dbff342734b3ccccd2782b3d" }, "blocknumber": "2", "transactions": [ @@ -3683,7 +2986,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -3692,9 +2995,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3702,37 +3005,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc0d822005aabb7bcb9b8cade85d2d40a231a281ce3b53dbfa578ce6afb709d4c", - "network": "Cancun", + "lastblockhash": "0x9832c90381b63cdee579f8ec31e93f51a0e62565dbff342734b3ccccd2782b3d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3743,26 +3027,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3770,6 +3047,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -3778,7 +3064,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -3787,18 +3073,43 @@ }, "016-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=2-expected_excess_blob_gas:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf902f5f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3815,36 +3126,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc" }, "blocknumber": "1", "transactions": [ @@ -3874,19 +3156,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a01121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", + "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3896,35 +3178,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x50308123898babb78fba126df3c6cdfd898d7db9c5049791265ccae566aee1c0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x50308123898babb78fba126df3c6cdfd898d7db9c5049791265ccae566aee1c0", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfbad993d29d680db33a7e9baecf59ee16b0c2d5134fa0489d4b5155bf12ac05f" }, "blocknumber": "2", "transactions": [ @@ -3934,7 +3188,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -3943,9 +3197,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3953,37 +3207,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x50308123898babb78fba126df3c6cdfd898d7db9c5049791265ccae566aee1c0", - "network": "Cancun", + "lastblockhash": "0xfbad993d29d680db33a7e9baecf59ee16b0c2d5134fa0489d4b5155bf12ac05f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3994,26 +3229,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4021,6 +3249,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -4029,7 +3266,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -4038,18 +3275,43 @@ }, "017-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=3-expected_excess_blob_gas:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf90316f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4066,37 +3328,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb40b08e9eba91b7e43f130f997c9977a9a7fcc319ac100a11719e9791ac173de" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x40000", - "blockHash": "0xb40b08e9eba91b7e43f130f997c9977a9a7fcc319ac100a11719e9791ac173de", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x932820ad148a4e464492bbd11ecd63af0c29a76c4f6e1aeb2a7d0a21c4663d76" }, "blocknumber": "1", "transactions": [ @@ -4127,19 +3359,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0b40b08e9eba91b7e43f130f997c9977a9a7fcc319ac100a11719e9791ac173dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0932820ad148a4e464492bbd11ecd63af0c29a76c4f6e1aeb2a7d0a21c4663d76a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xb40b08e9eba91b7e43f130f997c9977a9a7fcc319ac100a11719e9791ac173de", + "parentHash": "0x932820ad148a4e464492bbd11ecd63af0c29a76c4f6e1aeb2a7d0a21c4663d76", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4149,35 +3381,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc8b340fef10aac8da57b4ab7604920b3376cb307ce48de435fbc20493d4dcf4a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb40b08e9eba91b7e43f130f997c9977a9a7fcc319ac100a11719e9791ac173de", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xc8b340fef10aac8da57b4ab7604920b3376cb307ce48de435fbc20493d4dcf4a", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcb76106a85d82f9c0194c843f699b1d4f5ba2316bf30d0378f4e2111024f3cff" }, "blocknumber": "2", "transactions": [ @@ -4187,7 +3391,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -4196,9 +3400,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4206,37 +3410,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc8b340fef10aac8da57b4ab7604920b3376cb307ce48de435fbc20493d4dcf4a", - "network": "Cancun", + "lastblockhash": "0xcb76106a85d82f9c0194c843f699b1d4f5ba2316bf30d0378f4e2111024f3cff", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4247,26 +3432,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4274,6 +3452,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -4282,7 +3469,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -4291,18 +3478,43 @@ }, "018-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=4-expected_excess_blob_gas:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf90337f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4319,38 +3531,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x219f83df2b3d08fada97ebf117783de03fd18b8109c0ed11f1c729702e20ff80" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x40000", - "blockHash": "0x219f83df2b3d08fada97ebf117783de03fd18b8109c0ed11f1c729702e20ff80", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x72533322ee0f696ea386c2c782caf74b9e4a9b11942b457dba6cc5092e997a96" }, "blocknumber": "1", "transactions": [ @@ -4382,19 +3563,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0219f83df2b3d08fada97ebf117783de03fd18b8109c0ed11f1c729702e20ff80a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a072533322ee0f696ea386c2c782caf74b9e4a9b11942b457dba6cc5092e997a96a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x219f83df2b3d08fada97ebf117783de03fd18b8109c0ed11f1c729702e20ff80", + "parentHash": "0x72533322ee0f696ea386c2c782caf74b9e4a9b11942b457dba6cc5092e997a96", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4404,35 +3585,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3335f7921fc1a153730f401211cc53a110bb11ce83a7fae4395291e6795e4b43" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x219f83df2b3d08fada97ebf117783de03fd18b8109c0ed11f1c729702e20ff80", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x3335f7921fc1a153730f401211cc53a110bb11ce83a7fae4395291e6795e4b43", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x067505b3348b7cc69f5cad59bfa7fa5c284d67ee42445432d57bcf5a325f31c6" }, "blocknumber": "2", "transactions": [ @@ -4441,57 +3594,38 @@ "chainId": "0x01", "nonce": "0x00", "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x5208", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x01", - "data": "0x", - "accessList": [], - "maxFeePerBlobGas": "0x01", - "blobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3335f7921fc1a153730f401211cc53a110bb11ce83a7fae4395291e6795e4b43", - "network": "Cancun", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x067505b3348b7cc69f5cad59bfa7fa5c284d67ee42445432d57bcf5a325f31c6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4502,26 +3636,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4529,6 +3656,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -4537,7 +3673,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -4546,18 +3682,43 @@ }, "019-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=5-expected_excess_blob_gas:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf9035bf90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4574,39 +3735,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1c066f646b9e5d3a8d82482a373a70ad10e943a8abbe0de1c47844f8c3b0203d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x40000", - "blockHash": "0x1c066f646b9e5d3a8d82482a373a70ad10e943a8abbe0de1c47844f8c3b0203d", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb88eae5a852f0a56dba006ba2cb0a13c3e3e3c28615cda060b94cfd9d763ba8e" }, "blocknumber": "1", "transactions": [ @@ -4639,19 +3768,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a01c066f646b9e5d3a8d82482a373a70ad10e943a8abbe0de1c47844f8c3b0203da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0b88eae5a852f0a56dba006ba2cb0a13c3e3e3c28615cda060b94cfd9d763ba8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x1c066f646b9e5d3a8d82482a373a70ad10e943a8abbe0de1c47844f8c3b0203d", + "parentHash": "0xb88eae5a852f0a56dba006ba2cb0a13c3e3e3c28615cda060b94cfd9d763ba8e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4661,35 +3790,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x080000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa4628bf01b894012cb478faea96880773bb056f18137869e8314b91da4cdfb66" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1c066f646b9e5d3a8d82482a373a70ad10e943a8abbe0de1c47844f8c3b0203d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0xa4628bf01b894012cb478faea96880773bb056f18137869e8314b91da4cdfb66", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfd086de1784b5a3574bd661e7143ec15ab2e19d8831f5c095fb6f6782ad478c9" }, "blocknumber": "2", "transactions": [ @@ -4699,7 +3800,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -4708,9 +3809,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4718,37 +3819,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa4628bf01b894012cb478faea96880773bb056f18137869e8314b91da4cdfb66", - "network": "Cancun", + "lastblockhash": "0xfd086de1784b5a3574bd661e7143ec15ab2e19d8831f5c095fb6f6782ad478c9", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4759,26 +3841,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4786,6 +3861,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -4794,7 +3878,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -4803,18 +3887,43 @@ }, "020-fork=Cancun-new_blobs=1-parent_excess_blobs=2-parent_blobs=6-expected_excess_blob_gas:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf9037cf90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4831,40 +3940,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8e9190f95580c558347c773deb8e19e6ee408d23b0c4fb4144ab897340e2ce7b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x40000", - "blockHash": "0x8e9190f95580c558347c773deb8e19e6ee408d23b0c4fb4144ab897340e2ce7b", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6423b2a141d84c7ab5b577141872913fa83a03a38d01576756f82d482c7b8b1a" }, "blocknumber": "1", "transactions": [ @@ -4898,19 +3974,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a08e9190f95580c558347c773deb8e19e6ee408d23b0c4fb4144ab897340e2ce7ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a06423b2a141d84c7ab5b577141872913fa83a03a38d01576756f82d482c7b8b1aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x8e9190f95580c558347c773deb8e19e6ee408d23b0c4fb4144ab897340e2ce7b", + "parentHash": "0x6423b2a141d84c7ab5b577141872913fa83a03a38d01576756f82d482c7b8b1a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4920,35 +3996,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3ec1ed143a75ffdf7247206e2371af4d29118eec49c5d672b821f2fdfa637085" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8e9190f95580c558347c773deb8e19e6ee408d23b0c4fb4144ab897340e2ce7b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x3ec1ed143a75ffdf7247206e2371af4d29118eec49c5d672b821f2fdfa637085", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x7cbdd1816eb5d48e3a85346ced9c6f2d325120c5d2e9606724571fa8cf7391e6" }, "blocknumber": "2", "transactions": [ @@ -4958,7 +4006,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -4967,9 +4015,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4977,37 +4025,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3ec1ed143a75ffdf7247206e2371af4d29118eec49c5d672b821f2fdfa637085", - "network": "Cancun", + "lastblockhash": "0x7cbdd1816eb5d48e3a85346ced9c6f2d325120c5d2e9606724571fa8cf7391e6", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5018,26 +4047,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -5045,6 +4067,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -5053,7 +4084,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -5062,25 +4093,50 @@ }, "021-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=0-expected_excess_blob_gas:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5090,35 +4146,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbfc7d6f97c5764cd010ea4cb9a127070ac7341d9689fce2f07488a09a4e034ee" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xbfc7d6f97c5764cd010ea4cb9a127070ac7341d9689fce2f07488a09a4e034ee", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa32887606e6c91b05e484571e3222fe9568d24694b1708c92153d22c33a28a12" }, "blocknumber": "1", "transactions": [ @@ -5128,7 +4156,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -5137,47 +4165,28 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbfc7d6f97c5764cd010ea4cb9a127070ac7341d9689fce2f07488a09a4e034ee", - "network": "Cancun", + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa32887606e6c91b05e484571e3222fe9568d24694b1708c92153d22c33a28a12", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5188,26 +4197,28 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x01", - "code": "0x", - "storage": {} - }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -5216,7 +4227,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -5225,18 +4236,43 @@ }, "022-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=1-expected_excess_blob_gas:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf902d3f90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5253,35 +4289,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x1c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94" }, "blocknumber": "1", "transactions": [ @@ -5310,19 +4318,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a01c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0d6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x1c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63", + "parentHash": "0xd6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5332,35 +4340,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdacd9fbe24afd19e2c262bb989118b74cda36037beea2260968ce0915d2344b6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xdacd9fbe24afd19e2c262bb989118b74cda36037beea2260968ce0915d2344b6", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xea3018fe2bac97822c77e5074ce385721664b5a205cde3ca1e5b0b2232b353d2" }, "blocknumber": "2", "transactions": [ @@ -5370,7 +4350,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -5379,9 +4359,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5389,37 +4369,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdacd9fbe24afd19e2c262bb989118b74cda36037beea2260968ce0915d2344b6", - "network": "Cancun", + "lastblockhash": "0xea3018fe2bac97822c77e5074ce385721664b5a205cde3ca1e5b0b2232b353d2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5430,26 +4391,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -5457,6 +4411,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -5465,7 +4428,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -5474,18 +4437,43 @@ }, "023-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=2-expected_excess_blob_gas:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf902f5f90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083060000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083060000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5502,36 +4490,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x60000", - "blockHash": "0xe4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18a", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8" }, "blocknumber": "1", "transactions": [ @@ -5561,19 +4520,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0e4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0d9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xe4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18a", + "parentHash": "0xd9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5583,35 +4542,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7a0affc3495823f3c22dd33f21007c4918265987857f7869c0d9f79b4965c5a6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0x7a0affc3495823f3c22dd33f21007c4918265987857f7869c0d9f79b4965c5a6", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe6dd8170e8ae4032a8d04f0f8781cb7ae9a40add49cd3d8bf0155128ef7c32c3" }, "blocknumber": "2", "transactions": [ @@ -5621,7 +4552,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -5630,9 +4561,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5640,37 +4571,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7a0affc3495823f3c22dd33f21007c4918265987857f7869c0d9f79b4965c5a6", - "network": "Cancun", + "lastblockhash": "0xe6dd8170e8ae4032a8d04f0f8781cb7ae9a40add49cd3d8bf0155128ef7c32c3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5681,26 +4593,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -5708,6 +4613,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -5716,7 +4630,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -5725,18 +4639,43 @@ }, "024-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=3-expected_excess_blob_gas:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf90316f90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083060000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083060000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5753,37 +4692,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7024f64768fd10bbb74457d791532cf354eae59a85149b3d1786b5908d5b63d3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x60000", - "blockHash": "0x7024f64768fd10bbb74457d791532cf354eae59a85149b3d1786b5908d5b63d3", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x7c4633ccea402eeaa6daecbdbffa8bddb819a1b1bf66a044840ecb24f85e91a9" }, "blocknumber": "1", "transactions": [ @@ -5814,19 +4723,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a07024f64768fd10bbb74457d791532cf354eae59a85149b3d1786b5908d5b63d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a07c4633ccea402eeaa6daecbdbffa8bddb819a1b1bf66a044840ecb24f85e91a9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x7024f64768fd10bbb74457d791532cf354eae59a85149b3d1786b5908d5b63d3", + "parentHash": "0x7c4633ccea402eeaa6daecbdbffa8bddb819a1b1bf66a044840ecb24f85e91a9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5836,35 +4745,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0039d35fd65a2e431199b40c6c4567ed991eb6a127c1c9631808ad7dbb8467df" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7024f64768fd10bbb74457d791532cf354eae59a85149b3d1786b5908d5b63d3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x0039d35fd65a2e431199b40c6c4567ed991eb6a127c1c9631808ad7dbb8467df", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb397373c9dcd69c250d318dde98acb3fe99e09d3121c83f12ed4a4664896bcbf" }, "blocknumber": "2", "transactions": [ @@ -5874,7 +4755,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -5883,9 +4764,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5893,37 +4774,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0039d35fd65a2e431199b40c6c4567ed991eb6a127c1c9631808ad7dbb8467df", - "network": "Cancun", + "lastblockhash": "0xb397373c9dcd69c250d318dde98acb3fe99e09d3121c83f12ed4a4664896bcbf", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5932,28 +4794,21 @@ "code": "0x", "storage": {} }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x043e39", - "code": "0x", - "storage": {} - } - }, - "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x01", + "balance": "0x06ce79", "code": "0x", "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -5961,6 +4816,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -5969,7 +4833,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -5978,18 +4842,43 @@ }, "025-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=4-expected_excess_blob_gas:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf90337f90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083060000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083060000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6006,38 +4895,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x60000", - "blockHash": "0xb35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fd", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023f" }, "blocknumber": "1", "transactions": [ @@ -6069,19 +4927,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0b35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a05a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0xb35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fd", + "parentHash": "0x5a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6091,35 +4949,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x080000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa865f3af42f0d02f8600a65a4ec36a413d5e26714dc89f388bb496e9c2a9a075" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fd", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0xa865f3af42f0d02f8600a65a4ec36a413d5e26714dc89f388bb496e9c2a9a075", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa171ea2a037589c461beaff92ca03adb33aa2ee588d63656af3478976885df26" }, "blocknumber": "2", "transactions": [ @@ -6129,7 +4959,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -6138,9 +4968,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6148,37 +4978,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa865f3af42f0d02f8600a65a4ec36a413d5e26714dc89f388bb496e9c2a9a075", - "network": "Cancun", + "lastblockhash": "0xa171ea2a037589c461beaff92ca03adb33aa2ee588d63656af3478976885df26", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -6189,26 +5000,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -6216,6 +5020,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -6224,7 +5037,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -6233,18 +5046,43 @@ }, "026-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=5-expected_excess_blob_gas:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf9035bf90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083060000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083060000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6261,39 +5099,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x60000", - "blockHash": "0x809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x20e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944e" }, "blocknumber": "1", "transactions": [ @@ -6326,19 +5132,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a020e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3", + "parentHash": "0x20e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6348,35 +5154,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x272d533914b57bd09cf02684c8452a49ef3ef0d34e8d2ad3a38cb9c7e18ccca0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x272d533914b57bd09cf02684c8452a49ef3ef0d34e8d2ad3a38cb9c7e18ccca0", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd9ce9f4effd6beb4c01bc91e6c57a5fc72d06fb291d7ae0f62e5c206cb18e355" }, "blocknumber": "2", "transactions": [ @@ -6386,7 +5164,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -6395,9 +5173,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6405,37 +5183,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x272d533914b57bd09cf02684c8452a49ef3ef0d34e8d2ad3a38cb9c7e18ccca0", - "network": "Cancun", + "lastblockhash": "0xd9ce9f4effd6beb4c01bc91e6c57a5fc72d06fb291d7ae0f62e5c206cb18e355", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -6446,26 +5205,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -6473,6 +5225,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -6481,7 +5242,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -6490,18 +5251,43 @@ }, "027-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=6-expected_excess_blob_gas:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf9037cf90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6518,40 +5304,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x60000", - "blockHash": "0x851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85" }, "blocknumber": "1", "transactions": [ @@ -6585,19 +5338,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", + "rlp": "0xf902d3f90242a0e88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", "blockHeader": { - "parentHash": "0x851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6", + "parentHash": "0xe88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "transactionsTrie": "0xda80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6607,35 +5360,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa324b9a3051c8ffc66977022652937d399902d3017754ed9e2d206fecbd6f4e8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xc0000", - "blockHash": "0xa324b9a3051c8ffc66977022652937d399902d3017754ed9e2d206fecbd6f4e8", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa3c7e411828cceed80f76e806a7ba9849b300a7254c931065bd239b7c12cd8eb" }, "blocknumber": "2", "transactions": [ @@ -6645,7 +5370,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -6654,9 +5379,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x01", - "r": "0xa8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3c", - "s": "0x19d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a", + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6664,37 +5389,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa324b9a3051c8ffc66977022652937d399902d3017754ed9e2d206fecbd6f4e8", - "network": "Cancun", + "lastblockhash": "0xa3c7e411828cceed80f76e806a7ba9849b300a7254c931065bd239b7c12cd8eb", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -6705,26 +5411,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x01" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -6732,6 +5431,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -6740,7 +5448,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json index 528b46029de..b085930f4b7 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/correct_increasing_blob_gas_costs.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=17-expected_excess_blob_gas:0x240000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083280000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debe", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x280000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x258811d02512e87e09253a948330eff05da06b7656143a211fa3687901217f57" + }, "blocks": [ { - "rlp": "0xf90337f90242a0a159b21a175a7558fcb5f369e3d18cd062b3452ca59de36f576d938787a6a184a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0829e00a537641ae5826ea09110bbbfcc35b7101fa68f597c18adddffecb1d7d2a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083220000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0258811d02512e87e09253a948330eff05da06b7656143a211fa3687901217f57a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06a086c92bb1d4ee6dc4ca73e66529037591bd4d6590350f6c904bc78dc21b75ca0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083220000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xa159b21a175a7558fcb5f369e3d18cd062b3452ca59de36f576d938787a6a184", + "parentHash": "0x258811d02512e87e09253a948330eff05da06b7656143a211fa3687901217f57", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x829e00a537641ae5826ea09110bbbfcc35b7101fa68f597c18adddffecb1d7d2", + "stateRoot": "0x6a086c92bb1d4ee6dc4ca73e66529037591bd4d6590350f6c904bc78dc21b75c", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,38 +54,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x220000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x02d08d92aae2ea804161f5c34b44b061be0401295b7863304e6b5627774255c0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa159b21a175a7558fcb5f369e3d18cd062b3452ca59de36f576d938787a6a184", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x829e00a537641ae5826ea09110bbbfcc35b7101fa68f597c18adddffecb1d7d2", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x220000", - "blockHash": "0x02d08d92aae2ea804161f5c34b44b061be0401295b7863304e6b5627774255c0", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd2caf87ef0ecbbf1d8721e4f63d56b3a5b4bf8b5faa0409aa6b99a729affe346" }, "blocknumber": "1", "transactions": [ @@ -92,19 +86,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a002d08d92aae2ea804161f5c34b44b061be0401295b7863304e6b5627774255c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca00a60570e8b114f97faa79183e11bdd2a6a55316aea9f16781d773239011ade11a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083240000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c002e1a0010000000000000000000000000000000000000000000000000000000000000080a0bf4f02f05c55975efcab430de4c0346332a67e82308454eeb790c0e84729cbc6a009e9c954090e5e0f4e3a082af2a28debe0beb880581b663576123f5deaa31006c0c0", + "rlp": "0xf902d3f90242a0d2caf87ef0ecbbf1d8721e4f63d56b3a5b4bf8b5faa0409aa6b99a729affe346a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa047fe44a4fd4698cfc7d655b3747794bd442ae0da110fccdab444094f3803b37ca04cfd42752767eedbd026619f00c2a656899412c6eda4fc1dc0c9835248682aa8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083240000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c002e1a0010000000000000000000000000000000000000000000000000000000000000001a0cfa1e1291dcf24f4b608325cc804c139b3b81436bfb7eb799429a913c4f4f37ba06b3eaccfde30befcea02f712654c07e612f705474097ab69a767fee4d2961018c0c0", "blockHeader": { - "parentHash": "0x02d08d92aae2ea804161f5c34b44b061be0401295b7863304e6b5627774255c0", + "parentHash": "0xd2caf87ef0ecbbf1d8721e4f63d56b3a5b4bf8b5faa0409aa6b99a729affe346", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "transactionsTrie": "0x0a60570e8b114f97faa79183e11bdd2a6a55316aea9f16781d773239011ade11", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x47fe44a4fd4698cfc7d655b3747794bd442ae0da110fccdab444094f3803b37c", + "transactionsTrie": "0x4cfd42752767eedbd026619f00c2a656899412c6eda4fc1dc0c9835248682aa8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -114,35 +108,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x240000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfbf3f72b9c2b28c3204db87411e100fc3312f9d97675c5f28c8afd87f4bf4a16" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x02d08d92aae2ea804161f5c34b44b061be0401295b7863304e6b5627774255c0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x240000", - "blockHash": "0xfbf3f72b9c2b28c3204db87411e100fc3312f9d97675c5f28c8afd87f4bf4a16", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c002e1a0010000000000000000000000000000000000000000000000000000000000000080a0bf4f02f05c55975efcab430de4c0346332a67e82308454eeb790c0e84729cbc6a009e9c954090e5e0f4e3a082af2a28debe0beb880581b663576123f5deaa31006" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x82ceb7392cfc33fc700d07b96f4e85293517a96f3756b83650791c145747afee" }, "blocknumber": "2", "transactions": [ @@ -152,7 +118,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -161,9 +127,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x00", - "r": "0xbf4f02f05c55975efcab430de4c0346332a67e82308454eeb790c0e84729cbc6", - "s": "0x09e9c954090e5e0f4e3a082af2a28debe0beb880581b663576123f5deaa31006", + "v": "0x01", + "r": "0xcfa1e1291dcf24f4b608325cc804c139b3b81436bfb7eb799429a913c4f4f37b", + "s": "0x6b3eaccfde30befcea02f712654c07e612f705474097ab69a767fee4d2961018", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -171,37 +137,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x48025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8ab", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x280000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa159b21a175a7558fcb5f369e3d18cd062b3452ca59de36f576d938787a6a184" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a048025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8aba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083280000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfbf3f72b9c2b28c3204db87411e100fc3312f9d97675c5f28c8afd87f4bf4a16", - "network": "Cancun", + "lastblockhash": "0x82ceb7392cfc33fc700d07b96f4e85293517a96f3756b83650791c145747afee", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -212,26 +159,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x02" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -239,6 +179,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -247,7 +196,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -256,18 +205,43 @@ }, "001-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=264-expected_excess_blob_gas:0x2120000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07822dd831e27ec25645b394441ac8578eb32a62659c855ba0f8d52ea9ae7dc0ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808402160000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7822dd831e27ec25645b394441ac8578eb32a62659c855ba0f8d52ea9ae7dc0c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x02160000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9bf422ff7091d29cfc85bdfd560b10e87053f2ead4f79f442d5ed0eb66a9b924" + }, "blocks": [ { - "rlp": "0xf9033af90243a06e4fd60dee3de56a6613d2badf4a6265d46b78a7f81725fd33198cad6e661abfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0705d6a5caf2b9294d161f1a859f087ca24862ac7d8a351aa3ca6cb3b84c72e0fa0daa34f237fc72fc8696fb60b52802145541a390420dfc647ef612ba154ca0ed3a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830800008402100000a00000000000000000000000000000000000000000000000000000000000000000f8f0b8ee03f8eb018080078252089400000000000000000000000000000000000002000180c0827beef884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0675b359d26009e47c04bbe25a45b5182c373555eb247b5ae481740298fee6d85a063aea385f828177856da1aa4068e9fe6d903ccb08d0dfde9ace1b8733da62114c0c0", + "rlp": "0xf9033af90243a09bf422ff7091d29cfc85bdfd560b10e87053f2ead4f79f442d5ed0eb66a9b924a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0feb2bd25cb398221c2586059239e500cb8dfb6fb37646c2edcb177de40ae1802a0daa34f237fc72fc8696fb60b52802145541a390420dfc647ef612ba154ca0ed3a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830800008402100000a00000000000000000000000000000000000000000000000000000000000000000f8f0b8ee03f8eb018080078252089400000000000000000000000000000000000002000180c0827beef884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0675b359d26009e47c04bbe25a45b5182c373555eb247b5ae481740298fee6d85a063aea385f828177856da1aa4068e9fe6d903ccb08d0dfde9ace1b8733da62114c0c0", "blockHeader": { - "parentHash": "0x6e4fd60dee3de56a6613d2badf4a6265d46b78a7f81725fd33198cad6e661abf", + "parentHash": "0x9bf422ff7091d29cfc85bdfd560b10e87053f2ead4f79f442d5ed0eb66a9b924", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x705d6a5caf2b9294d161f1a859f087ca24862ac7d8a351aa3ca6cb3b84c72e0f", + "stateRoot": "0xfeb2bd25cb398221c2586059239e500cb8dfb6fb37646c2edcb177de40ae1802", "transactionsTrie": "0xdaa34f237fc72fc8696fb60b52802145541a390420dfc647ef612ba154ca0ed3", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -284,38 +258,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x02100000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf7ccd1ec4659f5007c647673857cb4053c84fff36f13d8acc314132f9b64f13b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6e4fd60dee3de56a6613d2badf4a6265d46b78a7f81725fd33198cad6e661abf", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x705d6a5caf2b9294d161f1a859f087ca24862ac7d8a351aa3ca6cb3b84c72e0f", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x2100000", - "blockHash": "0xf7ccd1ec4659f5007c647673857cb4053c84fff36f13d8acc314132f9b64f13b", - "transactions": [ - "0x03f8eb018080078252089400000000000000000000000000000000000002000180c0827beef884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a0675b359d26009e47c04bbe25a45b5182c373555eb247b5ae481740298fee6d85a063aea385f828177856da1aa4068e9fe6d903ccb08d0dfde9ace1b8733da62114" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0b4e4e356544fa136193e1dc2d2b5c416c2fd2de67cb14d93b234e479360cf19" }, "blocknumber": "1", "transactions": [ @@ -347,19 +290,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d6f90243a0f7ccd1ec4659f5007c647673857cb4053c84fff36f13d8acc314132f9b64f13ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5872fcf002660d36d1b7f753957cca64e487f6b1d96855526c9753d44f9400fa0b604e3057b4a82443aa5c9665852ac0c7af1650deabee979bff46bd537215e17a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008402120000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f887018080078252089400000000000000000000000000000000000001000180c08280e4e1a0010000000000000000000000000000000000000000000000000000000000000001a089760ccabd7a35562b26fb6bb9f594ec2ad93d9025a67eb10332201801177a15a056cc3f2f4c7a148312b0ae0353211215de58a5cce041c19e0ed156cbd69cddadc0c0", + "rlp": "0xf902d6f90243a00b4e4e356544fa136193e1dc2d2b5c416c2fd2de67cb14d93b234e479360cf19a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08ebeafa987f296cd8cedbd19f1cd699cb7b9a22a1888e2d4c2f396348ccee36ea0527baf539bdc19cb016a5199fd45ba89dda6e7649982a8a50c85838415312f7da0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008402120000a00000000000000000000000000000000000000000000000000000000000000000f88cb88a03f8870180800782afc89400000000000000000000000000000000000001000180c08280e4e1a0010000000000000000000000000000000000000000000000000000000000000001a053ba1d6f503c15d015314fa69d1bcbc2164e77a7bb20ff813fbe06f936e63bc0a05921bf671a54a7bac3891ab08e52f9816f8d85e27e55a7a1dcd6c0408f76ac38c0c0", "blockHeader": { - "parentHash": "0xf7ccd1ec4659f5007c647673857cb4053c84fff36f13d8acc314132f9b64f13b", + "parentHash": "0x0b4e4e356544fa136193e1dc2d2b5c416c2fd2de67cb14d93b234e479360cf19", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5872fcf002660d36d1b7f753957cca64e487f6b1d96855526c9753d44f9400f", - "transactionsTrie": "0xb604e3057b4a82443aa5c9665852ac0c7af1650deabee979bff46bd537215e17", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x8ebeafa987f296cd8cedbd19f1cd699cb7b9a22a1888e2d4c2f396348ccee36e", + "transactionsTrie": "0x527baf539bdc19cb016a5199fd45ba89dda6e7649982a8a50c85838415312f7d", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -369,35 +312,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x02120000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6db873438ea06eddf45ada3712aabe58bbb3215a277f2c998e5ccf848514611e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf7ccd1ec4659f5007c647673857cb4053c84fff36f13d8acc314132f9b64f13b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5872fcf002660d36d1b7f753957cca64e487f6b1d96855526c9753d44f9400f", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x2120000", - "blockHash": "0x6db873438ea06eddf45ada3712aabe58bbb3215a277f2c998e5ccf848514611e", - "transactions": [ - "0x03f887018080078252089400000000000000000000000000000000000001000180c08280e4e1a0010000000000000000000000000000000000000000000000000000000000000001a089760ccabd7a35562b26fb6bb9f594ec2ad93d9025a67eb10332201801177a15a056cc3f2f4c7a148312b0ae0353211215de58a5cce041c19e0ed156cbd69cddad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x540989de1f0523e1b4e5be8316b7f7166b7d25d44b97fa6ef1aad0211e218584" }, "blocknumber": "2", "transactions": [ @@ -407,7 +322,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -417,8 +332,8 @@ "0x0100000000000000000000000000000000000000000000000000000000000000" ], "v": "0x01", - "r": "0x89760ccabd7a35562b26fb6bb9f594ec2ad93d9025a67eb10332201801177a15", - "s": "0x56cc3f2f4c7a148312b0ae0353211215de58a5cce041c19e0ed156cbd69cddad", + "r": "0x53ba1d6f503c15d015314fa69d1bcbc2164e77a7bb20ff813fbe06f936e63bc0", + "s": "0x5921bf671a54a7bac3891ab08e52f9816f8d85e27e55a7a1dcd6c0408f76ac38", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -426,37 +341,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfbf280a1c5ae807a0c5ef8cc2df8cc24b19fe61937313827f6a1d80f6e06745c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x02160000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6e4fd60dee3de56a6613d2badf4a6265d46b78a7f81725fd33198cad6e661abf" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fbf280a1c5ae807a0c5ef8cc2df8cc24b19fe61937313827f6a1d80f6e06745ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808402160000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6db873438ea06eddf45ada3712aabe58bbb3215a277f2c998e5ccf848514611e", - "network": "Cancun", + "lastblockhash": "0x540989de1f0523e1b4e5be8316b7f7166b7d25d44b97fa6ef1aad0211e218584", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -467,26 +363,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0101ca3e39", + "balance": "0x0101ccce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x80e4" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -494,6 +383,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fc208dc1c7", @@ -502,7 +400,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -511,18 +409,43 @@ }, "002-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=564-expected_excess_blob_gas:0x46a0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07c86c6d4f02ff068726a9855f57008780b8a9ec317c686d8f617ae1b6a5723a2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218084046e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7c86c6d4f02ff068726a9855f57008780b8a9ec317c686d8f617ae1b6a5723a2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x046e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcdb4b7c4c15fc1662a0b3f04378437ca5ae083beb761988a50c3ac9fdd919ae8" + }, "blocks": [ { - "rlp": "0xf9033cf90243a0ee1c73a7c7315b2c5ddc4d5bbc28afaa24b78e46225e0dfc3b735f5494ad759ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08d69003bbad628d397cff9fd07f492c84b92dbe14cde21ed66c7aedf54618e9fa0bec6f7be30fd6086685e2a62c0c9ddc96385aaebc5ea7a99bf6b404d9e0b19ada0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830800008404680000a00000000000000000000000000000000000000000000000000000000000000000f8f2b8f003f8ed018080078252089400000000000000000000000000000000000002000180c084f6942037f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0c1f56e5b6ce2a4f0e419ca152697570a796ab99345a7c05ff187b1e2c344d1f5a00703f787a695aca0916f209e9358607caecaab23a5a4711b874147bf0a4a1b35c0c0", + "rlp": "0xf9033cf90243a0cdb4b7c4c15fc1662a0b3f04378437ca5ae083beb761988a50c3ac9fdd919ae8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e7d0036d4a5868b8b739429adc3b2ed4362d3c5c2c08d542026ef22cdb712347a0bec6f7be30fd6086685e2a62c0c9ddc96385aaebc5ea7a99bf6b404d9e0b19ada0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830800008404680000a00000000000000000000000000000000000000000000000000000000000000000f8f2b8f003f8ed018080078252089400000000000000000000000000000000000002000180c084f6942037f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0c1f56e5b6ce2a4f0e419ca152697570a796ab99345a7c05ff187b1e2c344d1f5a00703f787a695aca0916f209e9358607caecaab23a5a4711b874147bf0a4a1b35c0c0", "blockHeader": { - "parentHash": "0xee1c73a7c7315b2c5ddc4d5bbc28afaa24b78e46225e0dfc3b735f5494ad759b", + "parentHash": "0xcdb4b7c4c15fc1662a0b3f04378437ca5ae083beb761988a50c3ac9fdd919ae8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8d69003bbad628d397cff9fd07f492c84b92dbe14cde21ed66c7aedf54618e9f", + "stateRoot": "0xe7d0036d4a5868b8b739429adc3b2ed4362d3c5c2c08d542026ef22cdb712347", "transactionsTrie": "0xbec6f7be30fd6086685e2a62c0c9ddc96385aaebc5ea7a99bf6b404d9e0b19ad", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -539,38 +462,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x04680000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x40aeae7350254baba8fb06407f2bdd8f49a988bd4bcd98242e2e53be95c2ade6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee1c73a7c7315b2c5ddc4d5bbc28afaa24b78e46225e0dfc3b735f5494ad759b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8d69003bbad628d397cff9fd07f492c84b92dbe14cde21ed66c7aedf54618e9f", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x4680000", - "blockHash": "0x40aeae7350254baba8fb06407f2bdd8f49a988bd4bcd98242e2e53be95c2ade6", - "transactions": [ - "0x03f8ed018080078252089400000000000000000000000000000000000002000180c084f6942037f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0c1f56e5b6ce2a4f0e419ca152697570a796ab99345a7c05ff187b1e2c344d1f5a00703f787a695aca0916f209e9358607caecaab23a5a4711b874147bf0a4a1b35" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb18991bd2d1629aad1ebdee9443855c325d8eb109300b262daa4b81a857cba7e" }, "blocknumber": "1", "transactions": [ @@ -602,19 +494,19 @@ "withdrawals": [] }, { - "rlp": "0xf902d9f90243a040aeae7350254baba8fb06407f2bdd8f49a988bd4bcd98242e2e53be95c2ade6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ef3f55e2bb848254c1668a00a5356d7f79b37f4cef2a3dddbe0a6cc2fbff4996a0166b876efcd67519726d91b2b0de6166b1ae88fac5a0c6023385be48798e7f44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084046a0000a00000000000000000000000000000000000000000000000000000000000000000f88fb88d03f88a018080078252089400000000000000000000000000000000000001000180c085010073bc9de1a0010000000000000000000000000000000000000000000000000000000000000001a06e3ee6ebe6bb717bf32859d3859c8c302c4c24173aa29353377e0ac2463226f0a0083899d5faf613659ab2135099f4920f4f2a39a68d3ef2b3edefc276d28c383ac0c0", + "rlp": "0xf902d9f90243a0b18991bd2d1629aad1ebdee9443855c325d8eb109300b262daa4b81a857cba7ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa061a64c07c3bcfb2c0bbb26e10c0511c65f3bc31428df9a7ac64d2536cafe07e9a09ab8585c9d1d2c4212d488eb8d84743cfde2fa85296844a3a0765f43b6605692a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084046a0000a00000000000000000000000000000000000000000000000000000000000000000f88fb88d03f88a0180800782afc89400000000000000000000000000000000000001000180c085010073bc9de1a0010000000000000000000000000000000000000000000000000000000000000001a02f468b9de476fa973e2b1801c28cf8a56154bbf998c6f43cc4dff912ad006a11a057dc06598678a010ef3b830462eddb4f2389f073d12bf4e19fc35d4fa5c197ebc0c0", "blockHeader": { - "parentHash": "0x40aeae7350254baba8fb06407f2bdd8f49a988bd4bcd98242e2e53be95c2ade6", + "parentHash": "0xb18991bd2d1629aad1ebdee9443855c325d8eb109300b262daa4b81a857cba7e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xef3f55e2bb848254c1668a00a5356d7f79b37f4cef2a3dddbe0a6cc2fbff4996", - "transactionsTrie": "0x166b876efcd67519726d91b2b0de6166b1ae88fac5a0c6023385be48798e7f44", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x61a64c07c3bcfb2c0bbb26e10c0511c65f3bc31428df9a7ac64d2536cafe07e9", + "transactionsTrie": "0x9ab8585c9d1d2c4212d488eb8d84743cfde2fa85296844a3a0765f43b6605692", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -624,35 +516,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x046a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xca354502988023fde187cc11af4a4e267a9ad3b78c27c2ad3dddd42eb6372392" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x40aeae7350254baba8fb06407f2bdd8f49a988bd4bcd98242e2e53be95c2ade6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xef3f55e2bb848254c1668a00a5356d7f79b37f4cef2a3dddbe0a6cc2fbff4996", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x46a0000", - "blockHash": "0xca354502988023fde187cc11af4a4e267a9ad3b78c27c2ad3dddd42eb6372392", - "transactions": [ - "0x03f88a018080078252089400000000000000000000000000000000000001000180c085010073bc9de1a0010000000000000000000000000000000000000000000000000000000000000001a06e3ee6ebe6bb717bf32859d3859c8c302c4c24173aa29353377e0ac2463226f0a0083899d5faf613659ab2135099f4920f4f2a39a68d3ef2b3edefc276d28c383a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x83f94b4defaff2d54f2de382ed70073f1e1bae718ea79f7b4b89cc0415324dad" }, "blocknumber": "2", "transactions": [ @@ -662,7 +526,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -672,8 +536,8 @@ "0x0100000000000000000000000000000000000000000000000000000000000000" ], "v": "0x01", - "r": "0x6e3ee6ebe6bb717bf32859d3859c8c302c4c24173aa29353377e0ac2463226f0", - "s": "0x083899d5faf613659ab2135099f4920f4f2a39a68d3ef2b3edefc276d28c383a", + "r": "0x2f468b9de476fa973e2b1801c28cf8a56154bbf998c6f43cc4dff912ad006a11", + "s": "0x57dc06598678a010ef3b830462eddb4f2389f073d12bf4e19fc35d4fa5c197eb", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -681,37 +545,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x27f80534603b89fcd7913b65dc48a0ad68dca5ead0839b92760f38e42ef5acc2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x046e0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xee1c73a7c7315b2c5ddc4d5bbc28afaa24b78e46225e0dfc3b735f5494ad759b" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a027f80534603b89fcd7913b65dc48a0ad68dca5ead0839b92760f38e42ef5acc2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218084046e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xca354502988023fde187cc11af4a4e267a9ad3b78c27c2ad3dddd42eb6372392", - "network": "Cancun", + "lastblockhash": "0x83f94b4defaff2d54f2de382ed70073f1e1bae718ea79f7b4b89cc0415324dad", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -722,26 +567,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0200e7793c3e39", + "balance": "0x0200e7793ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x010073bc9d" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -749,6 +587,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9edac5efe45c1c7", @@ -757,7 +604,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -766,18 +613,43 @@ }, "003-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=829-expected_excess_blob_gas:0x67c0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a002372c04cc9a7ac540464cd011c0e009cfd9623c6b8be78c547e3b1c1246704aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808406800000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x02372c04cc9a7ac540464cd011c0e009cfd9623c6b8be78c547e3b1c1246704a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x06800000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6001b5b41a428eb55f4230f6f6454a2c96885cd08c02e55050e64aaabd27fe9d" + }, "blocks": [ { - "rlp": "0xf9033ef90243a0f220ff5276c22381d3ed4919bd1b719ea4717df7cd3f7d065259ea967c91f853a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa098ca9815f64244bab7477bab11f4718bc052c7f4a7bb5ee7642e65b034b1931ca0b156739e3f74752cd2e0ab0fe0e1ca9faf40fb35a5780ad7a8e522a61c016f66a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000084067a0000a00000000000000000000000000000000000000000000000000000000000000000f8f4b8f203f8ef018080078252089400000000000000000000000000000000000002000180c0867c268d7260f3f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a00212b5c7d4153464da131ee1766735ef987a9764acf968cc5378a866d8e1ae0fa00294c479a61f4a7142be9076cf9588e73ed669ad6f5555205a227e012edf79cbc0c0", + "rlp": "0xf9033ef90243a06001b5b41a428eb55f4230f6f6454a2c96885cd08c02e55050e64aaabd27fe9da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cfc82724b93d31c88086fba37f3cc1841408e425dfd38867c557c2096fe28440a0b156739e3f74752cd2e0ab0fe0e1ca9faf40fb35a5780ad7a8e522a61c016f66a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000084067a0000a00000000000000000000000000000000000000000000000000000000000000000f8f4b8f203f8ef018080078252089400000000000000000000000000000000000002000180c0867c268d7260f3f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a00212b5c7d4153464da131ee1766735ef987a9764acf968cc5378a866d8e1ae0fa00294c479a61f4a7142be9076cf9588e73ed669ad6f5555205a227e012edf79cbc0c0", "blockHeader": { - "parentHash": "0xf220ff5276c22381d3ed4919bd1b719ea4717df7cd3f7d065259ea967c91f853", + "parentHash": "0x6001b5b41a428eb55f4230f6f6454a2c96885cd08c02e55050e64aaabd27fe9d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x98ca9815f64244bab7477bab11f4718bc052c7f4a7bb5ee7642e65b034b1931c", + "stateRoot": "0xcfc82724b93d31c88086fba37f3cc1841408e425dfd38867c557c2096fe28440", "transactionsTrie": "0xb156739e3f74752cd2e0ab0fe0e1ca9faf40fb35a5780ad7a8e522a61c016f66", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -794,38 +666,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x067a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1399291bc3c16183b3d8575bead3ec01aa09ce0e4a73b62969a703ce3b350e5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf220ff5276c22381d3ed4919bd1b719ea4717df7cd3f7d065259ea967c91f853", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x98ca9815f64244bab7477bab11f4718bc052c7f4a7bb5ee7642e65b034b1931c", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x67a0000", - "blockHash": "0xf1399291bc3c16183b3d8575bead3ec01aa09ce0e4a73b62969a703ce3b350e5", - "transactions": [ - "0x03f8ef018080078252089400000000000000000000000000000000000002000180c0867c268d7260f3f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a00212b5c7d4153464da131ee1766735ef987a9764acf968cc5378a866d8e1ae0fa00294c479a61f4a7142be9076cf9588e73ed669ad6f5555205a227e012edf79cb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x10d39468a73f7ad5cd3f92175ef9579fb5fe5860830881f409c2fc74f7a85430" }, "blocknumber": "1", "transactions": [ @@ -857,19 +698,19 @@ "withdrawals": [] }, { - "rlp": "0xf902daf90243a0f1399291bc3c16183b3d8575bead3ec01aa09ce0e4a73b62969a703ce3b350e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05247dae5d974c5a3a3ee4446b6d0c1505f384caed0f6cd278c7de101719b8c19a05bf08ba0005b301ce2f91aa40cb3f1b4b4420452a49bcd05fb5ad20127e94c85a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084067c0000a00000000000000000000000000000000000000000000000000000000000000000f890b88e03f88b018080078252089400000000000000000000000000000000000001000180c086811f2fd4afcce1a0010000000000000000000000000000000000000000000000000000000000000001a06f69823cf8f9bf5f783fc7cee852b74e9ee373496962a60ac834f87952f7b3ada0164c2c7eb7c4d23bd350a11416bb4aa1ef7e92597283b026598ebd7c31b3cfa9c0c0", + "rlp": "0xf902daf90243a010d39468a73f7ad5cd3f92175ef9579fb5fe5860830881f409c2fc74f7a85430a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036f4d32ee6d6211e80ab0a97cb5294c1ac6cebae9ec2b288e4742242f5ff8612a07cb63383a85e67d99e9808fac0f3e75802abfcb35fa738300eb7f7c4496d3e7ea0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084067c0000a00000000000000000000000000000000000000000000000000000000000000000f890b88e03f88b0180800782afc89400000000000000000000000000000000000001000180c086811f2fd4afcce1a0010000000000000000000000000000000000000000000000000000000000000001a0bbb6fb0ba18c58a03d55cffeaeccd81b478b3da68b46909ed22c39037f3578b6a07bef3c8f592f4bf22acd4da359802216949889aa25da24e8d5a1e14b44f3b8d2c0c0", "blockHeader": { - "parentHash": "0xf1399291bc3c16183b3d8575bead3ec01aa09ce0e4a73b62969a703ce3b350e5", + "parentHash": "0x10d39468a73f7ad5cd3f92175ef9579fb5fe5860830881f409c2fc74f7a85430", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5247dae5d974c5a3a3ee4446b6d0c1505f384caed0f6cd278c7de101719b8c19", - "transactionsTrie": "0x5bf08ba0005b301ce2f91aa40cb3f1b4b4420452a49bcd05fb5ad20127e94c85", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x36f4d32ee6d6211e80ab0a97cb5294c1ac6cebae9ec2b288e4742242f5ff8612", + "transactionsTrie": "0x7cb63383a85e67d99e9808fac0f3e75802abfcb35fa738300eb7f7c4496d3e7e", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -879,35 +720,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x067c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4e5a9728743cad9fc8dc51ce5119a0983b9d7486ab76986fdb7c421542b5ae2f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf1399291bc3c16183b3d8575bead3ec01aa09ce0e4a73b62969a703ce3b350e5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5247dae5d974c5a3a3ee4446b6d0c1505f384caed0f6cd278c7de101719b8c19", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x67c0000", - "blockHash": "0x4e5a9728743cad9fc8dc51ce5119a0983b9d7486ab76986fdb7c421542b5ae2f", - "transactions": [ - "0x03f88b018080078252089400000000000000000000000000000000000001000180c086811f2fd4afcce1a0010000000000000000000000000000000000000000000000000000000000000001a06f69823cf8f9bf5f783fc7cee852b74e9ee373496962a60ac834f87952f7b3ada0164c2c7eb7c4d23bd350a11416bb4aa1ef7e92597283b026598ebd7c31b3cfa9" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf30cb49bdc7c6de2edde0168027474465a45776a09f872a6a0ce50ea300bd4f4" }, "blocknumber": "2", "transactions": [ @@ -917,7 +730,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -927,8 +740,8 @@ "0x0100000000000000000000000000000000000000000000000000000000000000" ], "v": "0x01", - "r": "0x6f69823cf8f9bf5f783fc7cee852b74e9ee373496962a60ac834f87952f7b3ad", - "s": "0x164c2c7eb7c4d23bd350a11416bb4aa1ef7e92597283b026598ebd7c31b3cfa9", + "r": "0xbbb6fb0ba18c58a03d55cffeaeccd81b478b3da68b46909ed22c39037f3578b6", + "s": "0x7bef3c8f592f4bf22acd4da359802216949889aa25da24e8d5a1e14b44f3b8d2", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -936,37 +749,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x05ac34a47bfbb70cc0af19ead4b80f2474ecaffa524384c3ac553b421767ff2e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x06800000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf220ff5276c22381d3ed4919bd1b719ea4717df7cd3f7d065259ea967c91f853" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a005ac34a47bfbb70cc0af19ead4b80f2474ecaffa524384c3ac553b421767ff2ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808406800000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4e5a9728743cad9fc8dc51ce5119a0983b9d7486ab76986fdb7c421542b5ae2f", - "network": "Cancun", + "lastblockhash": "0xf30cb49bdc7c6de2edde0168027474465a45776a09f872a6a0ce50ea300bd4f4", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -977,26 +771,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x01023e5fa95f9a3e39", + "balance": "0x01023e5fa95f9cce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x811f2fd4afcc" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1004,6 +791,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfa7d8c0f56cf865c1c7", @@ -1012,7 +808,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -1021,18 +817,43 @@ }, "004-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=1129-expected_excess_blob_gas:0x8d40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c084bc42e10f7af69373120aa8782c7a1faecce8d335800f426a57a09963ecd9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808408d80000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc084bc42e10f7af69373120aa8782c7a1faecce8d335800f426a57a09963ecd9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x08d80000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7433a8d3d8550c28870a1e048eb26da24558b5405ef839445746303e2c3a098b" + }, "blocks": [ { - "rlp": "0xf90340f90243a03ef4edb1b45b4753493e8e2b66f4f5d9142bdc2d0e040215e7c8bcc89b88d035a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045af5a6b046716a4dd81af487e1413f05b5ae2df07bbc1a332164db9162745aaa039fd22e6855fab2afd10724db0dfb99a956c05e99146619cd992bc56759bc250a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830800008408d20000a00000000000000000000000000000000000000000000000000000000000000000f8f6b8f403f8f1018080078252089400000000000000000000000000000000000002000180c088f7039a70865e950df884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0bc834c0c41d42c77f7ffcf6421b2220516fe486db36dea5cbdab61e6daea6446a06dc1c3dd8966bce733c595398140ae9b18ce4a6b603e7fa9c51083d36aba5ed5c0c0", + "rlp": "0xf90340f90243a07433a8d3d8550c28870a1e048eb26da24558b5405ef839445746303e2c3a098ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06378a14b2b076d88f64832ffb566e000c57f718a0686b0800f145e3da784e337a039fd22e6855fab2afd10724db0dfb99a956c05e99146619cd992bc56759bc250a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830800008408d20000a00000000000000000000000000000000000000000000000000000000000000000f8f6b8f403f8f1018080078252089400000000000000000000000000000000000002000180c088f7039a70865e950df884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0bc834c0c41d42c77f7ffcf6421b2220516fe486db36dea5cbdab61e6daea6446a06dc1c3dd8966bce733c595398140ae9b18ce4a6b603e7fa9c51083d36aba5ed5c0c0", "blockHeader": { - "parentHash": "0x3ef4edb1b45b4753493e8e2b66f4f5d9142bdc2d0e040215e7c8bcc89b88d035", + "parentHash": "0x7433a8d3d8550c28870a1e048eb26da24558b5405ef839445746303e2c3a098b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x45af5a6b046716a4dd81af487e1413f05b5ae2df07bbc1a332164db9162745aa", + "stateRoot": "0x6378a14b2b076d88f64832ffb566e000c57f718a0686b0800f145e3da784e337", "transactionsTrie": "0x39fd22e6855fab2afd10724db0dfb99a956c05e99146619cd992bc56759bc250", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1049,38 +870,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x08d20000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7069ae1f9f5d082e8049fbb8a7db6e3eda121430324f15b4a44db3d3ec422646" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3ef4edb1b45b4753493e8e2b66f4f5d9142bdc2d0e040215e7c8bcc89b88d035", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x45af5a6b046716a4dd81af487e1413f05b5ae2df07bbc1a332164db9162745aa", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x8d20000", - "blockHash": "0x7069ae1f9f5d082e8049fbb8a7db6e3eda121430324f15b4a44db3d3ec422646", - "transactions": [ - "0x03f8f1018080078252089400000000000000000000000000000000000002000180c088f7039a70865e950df884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a0bc834c0c41d42c77f7ffcf6421b2220516fe486db36dea5cbdab61e6daea6446a06dc1c3dd8966bce733c595398140ae9b18ce4a6b603e7fa9c51083d36aba5ed5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xddd668ab2c37b3c32ffb1712a1f003fc430eb8230f447744fdd647ccf933a9f0" }, "blocknumber": "1", "transactions": [ @@ -1112,19 +902,19 @@ "withdrawals": [] }, { - "rlp": "0xf902ddf90243a07069ae1f9f5d082e8049fbb8a7db6e3eda121430324f15b4a44db3d3ec422646a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5a3df52888be734e0bb8429d3394d8d855ccc4c0a7d8c9e03ecb6605efe5199a0f5ad5f2d02ec13f7937c602150b3003f535379ee022ca98abc82a7f0c4db9c28a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008408d40000a00000000000000000000000000000000000000000000000000000000000000000f893b89103f88e018080078252089400000000000000000000000000000000000001000180c0890100e7ad92440bbbade1a0010000000000000000000000000000000000000000000000000000000000000080a0279f17ec7abbba393d1728989cb6e71a15464ab33842f78dea96b48ee7d6eca3a01036e3593a32069f6528bc2bc496e1c6247e115b7f6fd7163b753f9f9e502962c0c0", + "rlp": "0xf902ddf90243a0ddd668ab2c37b3c32ffb1712a1f003fc430eb8230f447744fdd647ccf933a9f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03e7402f12a32c84b99361eaf13f69a333747f3031380e6ff14b1bcd13bf84a3ba0f6ae1c4a7eb885a4adb93a8546542757c59394eb7c6fafc41a14f73a4d2ccd55a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008408d40000a00000000000000000000000000000000000000000000000000000000000000000f893b89103f88e0180800782afc89400000000000000000000000000000000000001000180c0890100e7ad92440bbbade1a0010000000000000000000000000000000000000000000000000000000000000001a0ece543cc48be024106763ea13ded79b5f71d1bfe2ef45a869256cc55b917448fa00733aa732ed1c5b0519e1416190e44272824ee3897c21141634848853788cdedc0c0", "blockHeader": { - "parentHash": "0x7069ae1f9f5d082e8049fbb8a7db6e3eda121430324f15b4a44db3d3ec422646", + "parentHash": "0xddd668ab2c37b3c32ffb1712a1f003fc430eb8230f447744fdd647ccf933a9f0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5a3df52888be734e0bb8429d3394d8d855ccc4c0a7d8c9e03ecb6605efe5199", - "transactionsTrie": "0xf5ad5f2d02ec13f7937c602150b3003f535379ee022ca98abc82a7f0c4db9c28", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0x3e7402f12a32c84b99361eaf13f69a333747f3031380e6ff14b1bcd13bf84a3b", + "transactionsTrie": "0xf6ae1c4a7eb885a4adb93a8546542757c59394eb7c6fafc41a14f73a4d2ccd55", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1134,35 +924,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x08d40000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb3cd0678cc647bc76a4e82ad372c564c2423b5c850ad03a9695262b2743ba924" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7069ae1f9f5d082e8049fbb8a7db6e3eda121430324f15b4a44db3d3ec422646", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa5a3df52888be734e0bb8429d3394d8d855ccc4c0a7d8c9e03ecb6605efe5199", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x8d40000", - "blockHash": "0xb3cd0678cc647bc76a4e82ad372c564c2423b5c850ad03a9695262b2743ba924", - "transactions": [ - "0x03f88e018080078252089400000000000000000000000000000000000001000180c0890100e7ad92440bbbade1a0010000000000000000000000000000000000000000000000000000000000000080a0279f17ec7abbba393d1728989cb6e71a15464ab33842f78dea96b48ee7d6eca3a01036e3593a32069f6528bc2bc496e1c6247e115b7f6fd7163b753f9f9e502962" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd04adbcac98918aec556e53c79488c15b991c01e62245e2a035e1508096ddaaf" }, "blocknumber": "2", "transactions": [ @@ -1172,7 +934,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -1181,9 +943,9 @@ "blobVersionedHashes": [ "0x0100000000000000000000000000000000000000000000000000000000000000" ], - "v": "0x00", - "r": "0x279f17ec7abbba393d1728989cb6e71a15464ab33842f78dea96b48ee7d6eca3", - "s": "0x1036e3593a32069f6528bc2bc496e1c6247e115b7f6fd7163b753f9f9e502962", + "v": "0x01", + "r": "0xece543cc48be024106763ea13ded79b5f71d1bfe2ef45a869256cc55b917448f", + "s": "0x0733aa732ed1c5b0519e1416190e44272824ee3897c21141634848853788cded", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1191,37 +953,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0c0f8103dc01f4a0c361ca193e67e26ea6a6e2c5b8316a09b15b4e819a49c6b3", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x08d80000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3ef4edb1b45b4753493e8e2b66f4f5d9142bdc2d0e040215e7c8bcc89b88d035" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c0f8103dc01f4a0c361ca193e67e26ea6a6e2c5b8316a09b15b4e819a49c6b3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808408d80000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb3cd0678cc647bc76a4e82ad372c564c2423b5c850ad03a9695262b2743ba924", - "network": "Cancun", + "lastblockhash": "0xd04adbcac98918aec556e53c79488c15b991c01e62245e2a035e1508096ddaaf", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1232,26 +975,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0201cf5b248817775c3e39", + "balance": "0x0201cf5b248817775ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x0100e7ad92440bbbad" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1259,6 +995,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35c9d078ee6712e0b5795c1c7", @@ -1267,7 +1012,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } @@ -1276,18 +1021,43 @@ }, "005-fork=Cancun-new_blobs=1-parent_blobs=4-parent_excess_blobs=1229-expected_excess_blob_gas:0x99c0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c402b6fb45bed34ed88010798b6c7b8d2fdab5cf931f15ec20d380442dcea2dda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808409a00000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc402b6fb45bed34ed88010798b6c7b8d2fdab5cf931f15ec20d380442dcea2dd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x09a00000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5d7028a3de009eeecb8151f0a42af84896f33ee0c1bffb817a68f6bb7aebb061" + }, "blocks": [ { - "rlp": "0xf90341f90243a0d3db54844bc3c4460c18f0ae9db33da761de5c65683b7409b9bc699736abcc86a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02e06770f2702b0a8b3747e4e3ff500432492cc4c81080b4e14557ad1a9a8c12ea07876c3e7d2a8f88ebad6ba2e31b3de74df9b203d4a8c7066d5a801869bc42798a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000084099a0000a00000000000000000000000000000000000000000000000000000000000000000f8f7b8f503f8f2018080078252089400000000000000000000000000000000000002000180c08930edd0822c2fc06c74f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a034e4aa0510cec6879e258b594e6ec4fc087ec166de1bf0f5d81634b97b97ba5da058aee65043b803ef622a54ba1d22d32782aa49ad6054bfbe5d88ef8a0fbfa0d4c0c0", + "rlp": "0xf90341f90243a05d7028a3de009eeecb8151f0a42af84896f33ee0c1bffb817a68f6bb7aebb061a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa082c54e04bdb10a2c619f323a4bb62fa4bf12f4eb30ab20e899600f7b69d1a773a07876c3e7d2a8f88ebad6ba2e31b3de74df9b203d4a8c7066d5a801869bc42798a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000084099a0000a00000000000000000000000000000000000000000000000000000000000000000f8f7b8f503f8f2018080078252089400000000000000000000000000000000000002000180c08930edd0822c2fc06c74f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a034e4aa0510cec6879e258b594e6ec4fc087ec166de1bf0f5d81634b97b97ba5da058aee65043b803ef622a54ba1d22d32782aa49ad6054bfbe5d88ef8a0fbfa0d4c0c0", "blockHeader": { - "parentHash": "0xd3db54844bc3c4460c18f0ae9db33da761de5c65683b7409b9bc699736abcc86", + "parentHash": "0x5d7028a3de009eeecb8151f0a42af84896f33ee0c1bffb817a68f6bb7aebb061", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2e06770f2702b0a8b3747e4e3ff500432492cc4c81080b4e14557ad1a9a8c12e", + "stateRoot": "0x82c54e04bdb10a2c619f323a4bb62fa4bf12f4eb30ab20e899600f7b69d1a773", "transactionsTrie": "0x7876c3e7d2a8f88ebad6ba2e31b3de74df9b203d4a8c7066d5a801869bc42798", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1304,38 +1074,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x099a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3eee4ebc617035de2ead161ac7427da678be37913cfc686155c013977bf13e2b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd3db54844bc3c4460c18f0ae9db33da761de5c65683b7409b9bc699736abcc86", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2e06770f2702b0a8b3747e4e3ff500432492cc4c81080b4e14557ad1a9a8c12e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x99a0000", - "blockHash": "0x3eee4ebc617035de2ead161ac7427da678be37913cfc686155c013977bf13e2b", - "transactions": [ - "0x03f8f2018080078252089400000000000000000000000000000000000002000180c08930edd0822c2fc06c74f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a034e4aa0510cec6879e258b594e6ec4fc087ec166de1bf0f5d81634b97b97ba5da058aee65043b803ef622a54ba1d22d32782aa49ad6054bfbe5d88ef8a0fbfa0d4" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x93d70f6e1919c56c44b7d38fc48918d2a36e11fac8f496d7f374ec9cfabd515e" }, "blocknumber": "1", "transactions": [ @@ -1367,19 +1106,19 @@ "withdrawals": [] }, { - "rlp": "0xf902ddf90243a03eee4ebc617035de2ead161ac7427da678be37913cfc686155c013977bf13e2ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a26383a1bb0bd5a96786dbea2ba4d4b568e345f9aeb6a5a5023d298b7e81f8daa0fdfe6e5af89f2c5dc9bc6ce8c256495e08fac2526a3746b555cc42d05a6014a2a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084099c0000a00000000000000000000000000000000000000000000000000000000000000000f893b89103f88e018080078252089400000000000000000000000000000000000001000180c08932e35f42080f3529fce1a0010000000000000000000000000000000000000000000000000000000000000080a0992cf0cde0b54d37062eeb0653f28975922de8d042d9fa54215d17a7f8badb00a047ba7f91ea2a133860eea60b1f70b4c4dc6e8f99688c1297897fb13dd701a1d2c0c0", + "rlp": "0xf902ddf90243a093d70f6e1919c56c44b7d38fc48918d2a36e11fac8f496d7f374ec9cfabd515ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5bb414e50ce9192527b812defb963f0b87808028a783951a095063d88e51c59a0b55c2ddd5baabd2c40defe70bbf1c0e738ff1eb381a7cd651a6e724a64fca9dba0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000084099c0000a00000000000000000000000000000000000000000000000000000000000000000f893b89103f88e0180800782afc89400000000000000000000000000000000000001000180c08932e35f42080f3529fce1a0010000000000000000000000000000000000000000000000000000000000000080a06bcc55bdf07deff1a760576509f47f531dac15b37cd3eb1ed2047d928e3c6258a0179c7846a62118003c208ad37926102c7fb05874f37025ba81c76c5dfbd91502c0c0", "blockHeader": { - "parentHash": "0x3eee4ebc617035de2ead161ac7427da678be37913cfc686155c013977bf13e2b", + "parentHash": "0x93d70f6e1919c56c44b7d38fc48918d2a36e11fac8f496d7f374ec9cfabd515e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa26383a1bb0bd5a96786dbea2ba4d4b568e345f9aeb6a5a5023d298b7e81f8da", - "transactionsTrie": "0xfdfe6e5af89f2c5dc9bc6ce8c256495e08fac2526a3746b555cc42d05a6014a2", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "stateRoot": "0xb5bb414e50ce9192527b812defb963f0b87808028a783951a095063d88e51c59", + "transactionsTrie": "0xb55c2ddd5baabd2c40defe70bbf1c0e738ff1eb381a7cd651a6e724a64fca9db", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1389,35 +1128,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x099c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0a408646e4c91aa09d94b2c9c1b04dcd2848c68712ff7f56c527b1c38d46b3a6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3eee4ebc617035de2ead161ac7427da678be37913cfc686155c013977bf13e2b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa26383a1bb0bd5a96786dbea2ba4d4b568e345f9aeb6a5a5023d298b7e81f8da", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x18", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x99c0000", - "blockHash": "0x0a408646e4c91aa09d94b2c9c1b04dcd2848c68712ff7f56c527b1c38d46b3a6", - "transactions": [ - "0x03f88e018080078252089400000000000000000000000000000000000001000180c08932e35f42080f3529fce1a0010000000000000000000000000000000000000000000000000000000000000080a0992cf0cde0b54d37062eeb0653f28975922de8d042d9fa54215d17a7f8badb00a047ba7f91ea2a133860eea60b1f70b4c4dc6e8f99688c1297897fb13dd701a1d2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x34c1cfc4bc02f27bec7285d4bdb67088af2855b52f657c3266450d2c427d59d2" }, "blocknumber": "2", "transactions": [ @@ -1427,7 +1138,7 @@ "nonce": "0x00", "maxPriorityFeePerGas": "0x00", "maxFeePerGas": "0x07", - "gasLimit": "0x5208", + "gasLimit": "0xafc8", "to": "0x0000000000000000000000000000000000000100", "value": "0x01", "data": "0x", @@ -1437,8 +1148,8 @@ "0x0100000000000000000000000000000000000000000000000000000000000000" ], "v": "0x00", - "r": "0x992cf0cde0b54d37062eeb0653f28975922de8d042d9fa54215d17a7f8badb00", - "s": "0x47ba7f91ea2a133860eea60b1f70b4c4dc6e8f99688c1297897fb13dd701a1d2", + "r": "0x6bcc55bdf07deff1a760576509f47f531dac15b37cd3eb1ed2047d928e3c6258", + "s": "0x179c7846a62118003c208ad37926102c7fb05874f37025ba81c76c5dfbd91502", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1446,37 +1157,18 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xba41b92574bf95b11626605d316dbe25c502c35475fa3a73575a2e00279d74bb", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x09a00000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd3db54844bc3c4460c18f0ae9db33da761de5c65683b7409b9bc699736abcc86" - }, - "genesisRLP": "0xf90244f9023ea00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba41b92574bf95b11626605d316dbe25c502c35475fa3a73575a2e00279d74bba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421808409a00000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0a408646e4c91aa09d94b2c9c1b04dcd2848c68712ff7f56c527b1c38d46b3a6", - "network": "Cancun", + "lastblockhash": "0x34c1cfc4bc02f27bec7285d4bdb67088af2855b52f657c3266450d2c427d59d2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1487,26 +1179,19 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x65c6be84101e6a53fa3e39", + "balance": "0x65c6be84101e6a53fcce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c", - "0x18": "0x18" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01", - "code": "0x", - "storage": {} + "code": "0x4a600055", + "storage": { + "0x00": "0x32e35f42080f3529fc" + } }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1514,6 +1199,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35b1d5127a893e2fc9c5dc1c7", @@ -1522,7 +1216,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x00", + "balance": "0x33d1", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json index 8378749d1f6..a18211c7fa4 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_blob_gas_used_in_header.json @@ -1,48 +1,17 @@ { "000-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=131072-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902b0f90242a0ee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xdbb10dae28dad999db5560a7ee90e2df006e8eead6272655c34bbe6ac3667b19", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -59,16 +28,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f" + "hash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x11e37d4045ab376876077f0071e7ff1d9495e36b3193f45783a5c7c24d561e64" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -79,16 +103,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -99,7 +129,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -108,48 +138,17 @@ }, "001-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=262144-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902b0f90242a0ee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0x1100fbd024248e208d488afb7cc516ee920416943218132b4615406150353c46", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -166,16 +165,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f" + "hash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3ea508f4a10a39ebec729333a0f5b2b712d559f7effe6dd9f36b0005047650fb" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -186,16 +240,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -206,7 +266,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -215,48 +275,17 @@ }, "002-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=393216-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902b0f90242a0ee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x40000", - "blockHash": "0x4e667275ff7f91a1b355aaba09b4565ed3139b99c4fbc4a3a620c9b7677ebe7d", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -273,16 +302,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f" + "hash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf7d55ebf2e507285381568ffb542bb83fec0734747b562dee7619ef54174852" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -293,16 +377,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -313,7 +403,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -322,48 +412,17 @@ }, "003-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=524288-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902b0f90242a0ee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x40000", - "blockHash": "0xf82e6615ca57c8b89502139544a59ff7da769abaa513363c1e21ffb6fdac01b7", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -380,16 +439,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f" + "hash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe0856cd778321120578ed91ac6e65539b4986a326c66aa7fffde8b308c6e82c6" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -400,16 +514,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -420,7 +540,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -429,48 +549,17 @@ }, "004-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=655360-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902b0f90242a0ee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x40000", - "blockHash": "0xefbb535fb0f05de7830aea183d3789b76b85b906c7b195fd6ec6ba98ea893eb7", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -487,16 +576,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f" + "hash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2e6a20c980c7e2ec76381b39488b88c6a271b8f8f292d257b4113c746b24b8ba" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -507,16 +651,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -527,7 +677,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -536,48 +686,17 @@ }, "005-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=786432-correct:0x0-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902b0f90242a0ee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x40000", - "blockHash": "0x046c4c7e15ca7360316aa1af985c6a5e166b527e249dee3c5a2957ea28beb6aa", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -594,16 +713,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f" + "hash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902b0f90242a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0e6f236a7b51f2cee329708ccf1f47166290ac9e193ed5f06407932c76b35019" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -614,16 +788,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -634,7 +814,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -643,48 +823,17 @@ }, "006-fork=Cancun-parent_blobs=0-new_blobs=0-header_blob_gas_used=18446744073709551615-correct:0x0-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902b5f90247a0ee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xffffffffffffffff", - "excessBlobGas": "0x40000", - "blockHash": "0xdab12be962f80d75ed25f1deebc5521d83b12ed5b2c7a2c80b0fec3317810c0b", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -701,16 +850,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f" + "hash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902b5f90247a07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ef2c8ade01c33eda8cc654220f1e07cd7f8b0f63d76d35aea2732d509ca19d4" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -721,16 +925,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -741,7 +951,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -750,50 +960,17 @@ }, "007-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=0-correct:0x20000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d0f9023fa07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x40000", - "blockHash": "0x25f960ee4e3750a5b004ece07cd6bf9c22b2a154ccebc883d491ccb816a93a0d", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -810,16 +987,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d0f9023fa05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f0449f917504fea7502a243dd8211ec3fd24d33c55e4973127ab9dfeb7c2b38" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -830,16 +1066,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -850,7 +1092,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -859,50 +1101,17 @@ }, "008-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=262144-correct:0x20000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0xe8ad3987afec24f5cbffecb691ef53af630fad115d436a7fa93709d49164f725", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -919,16 +1128,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb97f29007c81d67f5ed812d56733a9f24e2e0b8a94aaf836fc8a98e50f45187d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -939,16 +1207,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -959,7 +1233,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -968,50 +1242,17 @@ }, "009-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=393216-correct:0x20000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x40000", - "blockHash": "0xd595e9e32be9d718f24a8f09dd65b157ed3d4db6e4bfe52ff410dd4f2260879c", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1028,16 +1269,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4a2aefa4e10d267493c5036ebf41e4f41b359a8549b707904962a18facadd3ce" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1048,16 +1348,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1068,7 +1374,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1077,50 +1383,17 @@ }, "010-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=524288-correct:0x20000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x40000", - "blockHash": "0x33a00f5952d0c42d822dccd672b31d96d5e733b130a348c86f5977ad04661edd", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1137,16 +1410,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5900121f6485cc0fed8b608ad39aa97b89a5c830f52b13b06829dc9b07946c22" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1157,16 +1489,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1177,7 +1515,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1186,50 +1524,17 @@ }, "011-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=655360-correct:0x20000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x40000", - "blockHash": "0x955d8ef1bd9dd07e0651733b7a711b13c2aa11cc30349f979d70862cd3b170e7", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1246,16 +1551,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x27b24bfba48bfaaff6432f16e93d41bf7fcc05f75bc2dc35de4d9bebbf09c7f8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1266,16 +1630,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1286,7 +1656,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1295,50 +1665,17 @@ }, "012-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=786432-correct:0x20000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x40000", - "blockHash": "0x42da9fb543eb6cd0cad3fb94fd599f7eb7b9ca810c03ed020d4654cc9ce10a3e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1355,16 +1692,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53ca291f9c98809b7257367c554f93ad46a63e24d7b92441ee541f06d4ad7640" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1375,16 +1771,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1395,7 +1797,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1404,50 +1806,17 @@ }, "013-fork=Cancun-parent_blobs=0-new_blobs=1-header_blob_gas_used=18446744073709551615-correct:0x20000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xffffffffffffffff", - "excessBlobGas": "0x40000", - "blockHash": "0xca8b8bbf74c8f1791d269ac8441428e2e083852b0c6c8d5a3eda361a472cf278", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1464,16 +1833,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9591ed433cebbf13b7861561feafcaf4ee12c941c851dc5180716bb9e8c8d5da" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1484,16 +1912,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1504,7 +1938,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1513,51 +1947,17 @@ }, "014-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=0-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f2f9023fa070d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x40000", - "blockHash": "0x028e1695c45ca585804c1e45fecefe6174dcfbaea7744253644e5b6ad6b131a7", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x48025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8ab", + "stateRoot": "0xb078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debe", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1574,16 +1974,76 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6" + "hash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a048025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8aba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f2f9023fa0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x32f573b9fc5957adc516640a71bb386370861c17f3c267d829ec3f42e935a34b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1594,16 +2054,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1614,7 +2080,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } @@ -1623,51 +2089,17 @@ }, "015-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=131072-correct:0x40000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f5f90242a070d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xf0d3528916384376c62711f7bcb50d5a47b78169aa95266b476b414cc4f9c43b", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x48025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8ab", + "stateRoot": "0xb078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debe", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1684,16 +2116,76 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6" + "hash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a048025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8aba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x40ef8637a753e8ae589aeff7b1b323fee0d191368f16106bfdc769bb90c6808f" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1704,16 +2196,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1724,7 +2222,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } @@ -1733,51 +2231,17 @@ }, "016-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=393216-correct:0x40000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f5f90242a070d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x40000", - "blockHash": "0x05cab5a134c111e90a0bfadd69b399b992cfc150d0736ec9ccc6562971e0738f", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x48025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8ab", + "stateRoot": "0xb078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debe", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1794,16 +2258,76 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6" + "hash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a048025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8aba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc4ca9f95873898193d07571bcfff9edbd353c5b54a3e0571fec5d839020948ab" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1814,16 +2338,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1834,7 +2364,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } @@ -1843,51 +2373,17 @@ }, "017-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=524288-correct:0x40000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f5f90242a070d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x40000", - "blockHash": "0x734aa371f6f0fed3bff9bf0e9b616647151268a3b52be1e69c2aa06e4626443a", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x48025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8ab", + "stateRoot": "0xb078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debe", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1904,16 +2400,76 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6" + "hash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a048025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8aba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x283b3de64ca6a55f4f07fee8ee82eef6786aff269f08c8648c9a7d2fabc596c2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1924,16 +2480,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1944,7 +2506,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } @@ -1953,51 +2515,17 @@ }, "018-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=655360-correct:0x40000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f5f90242a070d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x40000", - "blockHash": "0xa1eaac8155998bd7b53e642261839724ea0fb3a9dc3774cc105a1ecef41fd650", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x48025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8ab", + "stateRoot": "0xb078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debe", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2014,16 +2542,76 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6" + "hash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a048025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8aba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc0ba4b9f623ba3f3c024ba4d0390e202f6cef9df34510b9d6d88ea354160d06c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2034,16 +2622,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2054,7 +2648,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } @@ -2063,51 +2657,17 @@ }, "019-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=786432-correct:0x40000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f5f90242a070d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x40000", - "blockHash": "0xee0e72cdb86e22e80fc5ff739442bb13eafa62cfc72e6d2f016e8984c913cc78", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x48025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8ab", + "stateRoot": "0xb078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debe", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2124,16 +2684,76 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6" + "hash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a048025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8aba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902f5f90242a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xff225aec675f9b4ce74300d5b5208f796a9a89799ba98df6a40f332440fea24c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2144,16 +2764,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2164,7 +2790,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } @@ -2173,51 +2799,17 @@ }, "020-fork=Cancun-parent_blobs=0-new_blobs=2-header_blob_gas_used=18446744073709551615-correct:0x40000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902faf90247a070d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0ea6c96dedfc374311b6d9bf5a19305c5f7d80aa4c4bcf129134f96a7579e855ca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xffffffffffffffff", - "excessBlobGas": "0x40000", - "blockHash": "0x111efb49fc0c3c517c44434abaaee8e20a37d62d7aaae8b1fa49a9335ec037a7", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a02834415d34b036a9c160e4d399bf6d00c08fccdc867aa468a707bb6eed4eb6e5a05566b3d3cc186b71e0a8055b6fed7339f2a8fb30c8f7859352e73eb16b13dc10" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x48025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8ab", + "stateRoot": "0xb078e541276ead27b3fd199215a9e5fe358c00ce6709bad38c007b628672debe", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2234,16 +2826,76 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6" + "hash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a048025420bde82292513fd7e99a290f7c852e3a0d7110d208821764a0153db8aba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x70d66a94d3b9f0594b2060112389094a8e584b92a109050759ffc8347e36dde6", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902faf90247a0571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0eae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a70180800782afc89400000000000000000000000000000000000001000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000101a025a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6a02242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xeae9042723c64312515c4e9612a0d71e7c1880d25f7145345f5a0a389ad3e6c2", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2c1b06f96eaee578188b34394577cc111936d176289dbb231ae5e3ce91ba3695" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001" + ], + "v": "0x01", + "r": "0x25a32181e123cb9a3c7c3053a8e27bded73e738a16a5a1f2912396c0124b6aa6", + "s": "0x2242ac81eb2690b5c52c834e084a97db7b8ed67ccb3080a945e0f60773f2e7d6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x571b1f7cf38b8149867618e6e523a39744b6c23535e629952fcc1dd81beb8fc1", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2254,16 +2906,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2274,7 +2932,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x063e39", + "balance": "0x08ce79", "code": "0x", "storage": {} } @@ -2283,52 +2941,17 @@ }, "021-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=0-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90313f9023fa0b6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x40000", - "blockHash": "0x3f3ea82896205e68775860d673840620a1a6b1cbeb4b51d50ecfb8ab793ac387", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x49bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5", + "stateRoot": "0x650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2345,16 +2968,77 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b" + "hash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a049bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90313f9023fa0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x55a27bddc837faef8aa47d7667cfee24e986cf6209123676f20243305a40c8a5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2365,16 +3049,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2385,7 +3075,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } @@ -2394,52 +3084,17 @@ }, "022-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=131072-correct:0x60000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90316f90242a0b6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0x3010cddb5f65f1dd9acf0e89bfca6641bb7e8a8be52790fc2bff8e2788c1d4d5", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x49bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5", + "stateRoot": "0x650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2456,16 +3111,77 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b" + "hash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a049bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5157f47c3f000dcb6ff56e9d908c7f3f6796efcc49cfbacae71ce86630f8a2f8" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2476,16 +3192,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2496,7 +3218,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } @@ -2505,52 +3227,17 @@ }, "023-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=262144-correct:0x60000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90316f90242a0b6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0x8fd334b33b7e6326e89bd6c3b2942a1c1aa80fd1912f21726bf44b80874f453b", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x49bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5", + "stateRoot": "0x650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2567,16 +3254,77 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b" + "hash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a049bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f731dd7f158672f564c7a6152006bc24e9b955f2a5422965c051702e664976b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2587,16 +3335,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2607,7 +3361,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } @@ -2616,52 +3370,17 @@ }, "024-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=524288-correct:0x60000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90316f90242a0b6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x40000", - "blockHash": "0x709ce2946fcf8c5311194269b4958dc68dfb43b5ec0234ea3f5fe6509210fb28", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x49bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5", + "stateRoot": "0x650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2678,16 +3397,77 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b" + "hash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a049bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc14333b4f96ce77d5a5456a2e59c0c66d4c88c09d236fb744b49fd47c9e137ce" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2698,16 +3478,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2718,7 +3504,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } @@ -2727,52 +3513,17 @@ }, "025-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=655360-correct:0x60000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90316f90242a0b6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x40000", - "blockHash": "0x1b6d0186ab4c1c56e228c43190e2b3d9cfe33b0edd05def1cc4f737bb78b97ce", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x49bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5", + "stateRoot": "0x650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2789,16 +3540,77 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b" + "hash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a049bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb6a646f5e81d484b0f7cffa6945dc0fb7fe2f33d6b11b5db2432654b924bcf17" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2809,16 +3621,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2829,7 +3647,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } @@ -2838,52 +3656,17 @@ }, "026-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=786432-correct:0x60000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90316f90242a0b6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x40000", - "blockHash": "0x8dc826a92d762283d35b9af2f14075fdd467616d4096f8e99d317b9beef68c95", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x49bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5", + "stateRoot": "0x650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2900,16 +3683,77 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b" + "hash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a049bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90316f90242a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc3bad586ddc0340d805aa9b1a5f97330952ef7a3948fbf9e146676225236806d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2920,16 +3764,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2940,7 +3790,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } @@ -2949,52 +3799,17 @@ }, "027-fork=Cancun-parent_blobs=0-new_blobs=3-header_blob_gas_used=18446744073709551615-correct:0x60000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9031bf90247a0b6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03e6efb03c87131b8c8563c972bb9916c3c3a7c84383adb351b8bbfb7a07f1c44a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xffffffffffffffff", - "excessBlobGas": "0x40000", - "blockHash": "0x6688c6cd7f78ce87362b8f61465dac11a6a1ddc56d7aaa5cef89200564c33c10", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0fa94d1e80768176a944e82f994f83a1a5693753835f864f8699992d19115e257a07c50c336d2f6df236c4e398cf9f943a4905ed618680398868fc4dfb3312b7299" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x49bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5", + "stateRoot": "0x650fa5a92f5abd69d9c2817b28e4ccd93b4d350bb041e2acdcb0603b47bc1626", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3011,16 +3826,77 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b" + "hash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a049bb2fb0dcd5b2168154bd7cb3f12256071abaad4ec5a2a1e717f98030c284f5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb6dd1e00919ad289a9ff994208d08b6ce85a777464b688fd6038ee97e1f6fa4b", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9031bf90247a0b312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c80180800782afc89400000000000000000000000000000000000001000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0a2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363a052efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2c0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x164e121ca927a187d7cbf671b36aa28ba50660f4a4da2036e0df0596734b8e86", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf426be13bc5c813ab7060b838af68178056f07f7019ed3ad8a5cfb46e5152173" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002" + ], + "v": "0x01", + "r": "0xa2a91b27020be671eb502d5cc84e771c0412416a41c2fc64debbbd827b2ba363", + "s": "0x52efeeb1ce7509caf690d9ad89fe9f5c63334a5e6083f134278ee027aed559a2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xb312424fa36d8b8e36e9ced3f542c3908313b381877a22485ac76c6ffe908048", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3031,16 +3907,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3051,7 +3933,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x083e39", + "balance": "0x0ace79", "code": "0x", "storage": {} } @@ -3060,53 +3942,17 @@ }, "028-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=0-correct:0x80000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90334f9023fa0ea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x40000", - "blockHash": "0x7908ff8f99bc696cccf837bbd707c8305f52c1d93facaa12a0b51f1faceb1cd1", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1", + "stateRoot": "0xb829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3123,16 +3969,78 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150" + "hash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90334f9023fa07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xddc3ae0988d870acec8a468a47150f725d8f48e75e3e75293575c1ad4e070a27" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3143,16 +4051,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3163,7 +4077,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } @@ -3172,53 +4086,17 @@ }, "029-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=131072-correct:0x80000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90337f90242a0ea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xfda705b10a62ad18a83f241b55ea3b8335595bd3171dbf5722bfb543c50792be", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1", + "stateRoot": "0xb829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3235,16 +4113,78 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150" + "hash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3600e4ff4bc0514b24133ca26c152a841357c59012c3e86ac143049676ac6064" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3255,16 +4195,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3275,7 +4221,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } @@ -3284,53 +4230,17 @@ }, "030-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=262144-correct:0x80000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90337f90242a0ea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0xc8467bae094da4874e5ccfbe33f1c6fc0696fafcafa4d1a21e7622c9529dc066", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1", + "stateRoot": "0xb829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3347,16 +4257,78 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150" + "hash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d3bce6613b4d863376d052c116b181740539c3b7d5979ab059392bac623a892" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3367,16 +4339,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3387,7 +4365,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } @@ -3396,53 +4374,17 @@ }, "031-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=393216-correct:0x80000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90337f90242a0ea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x40000", - "blockHash": "0x76a1e1adf5c53d17f756c2e8fe0427ac7ded9f972811a4022383de50e81efbc7", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1", + "stateRoot": "0xb829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3459,16 +4401,78 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150" + "hash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x24bbdd5b1d17a1c4e12aa7e91b856002b4194aabc8c81abd64b72eab829ea728" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3479,16 +4483,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3499,7 +4509,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } @@ -3508,53 +4518,17 @@ }, "032-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=655360-correct:0x80000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90337f90242a0ea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x40000", - "blockHash": "0xceaae4603e196e520832044fcad8d6d3600d43f815b1e0d892e9c747213cce7d", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1", + "stateRoot": "0xb829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3571,16 +4545,78 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150" + "hash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1053c2c39e39939e51173395033aec8f56db8b5b426980c1fe9235fe436e306c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3591,16 +4627,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3611,7 +4653,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } @@ -3620,53 +4662,17 @@ }, "033-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=786432-correct:0x80000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90337f90242a0ea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x40000", - "blockHash": "0x3f1db2fe3e53dc63638113c278bd2eb70908a5a5e033c37ff4464992b5167e8f", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1", + "stateRoot": "0xb829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3683,16 +4689,78 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150" + "hash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90337f90242a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d5132fba3d9f48c455d0f686fab768f8cc2fc2d4a3ab706834c33cbeef3950b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3703,16 +4771,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3723,7 +4797,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } @@ -3732,53 +4806,17 @@ }, "034-fork=Cancun-parent_blobs=0-new_blobs=4-header_blob_gas_used=18446744073709551615-correct:0x80000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9033cf90247a0ea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0523fba1069412183cdf7618a145ad96c5dcf406cea02900ab33999b31820ea0aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xffffffffffffffff", - "excessBlobGas": "0x40000", - "blockHash": "0x2a603d7f8f6f708daa4c5a56b3672be1f59559a790f77a38b897bb9647c0c33e", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a05c8d5323bef1ba112b307a284c1652296c80c33be67737dacc39810b53444354a038db29249238feba93f3e89c1e6417fa217ea15a1628a73b90e1593073c69b05" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1", + "stateRoot": "0xb829d6557768b6a6e2035e92f68c6e91f96e342155785bf89525ef339b20fad9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3795,16 +4833,78 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150" + "hash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d924c589ecdb4cf239b6a59c6129ee3a1e96b63d6a248d1efe88bf36bce159b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xea30bb18597c52156ba279c1d3ef72f32dc35b1da9885df1106a6672ec4e5150", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9033cf90247a07b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca08f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e90180800782afc89400000000000000000000000000000000000001000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000380a006ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171a04d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772ec0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x8f6acd7079646ecd5cc4706752d22cd611201d82afbd34ed112dc5cdd399bd30", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa8a369d636f7b49c9a44f006754611f488ee590e31dffbae5c52d5933910d660" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003" + ], + "v": "0x00", + "r": "0x06ed1e3d67f1be5a4b57eb2bfceb39c011dabf91574241011e1e5e9cb0b38171", + "s": "0x4d4ce894d9065d7bd55b88b5e46978b26b5b13adfa2d204ca6321ea64d5b772e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7b655b3dfdcd8b1b0633955ab90eba54c6ff20d8bb324c108c900efa77643799", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3815,16 +4915,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3835,7 +4941,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0a3e39", + "balance": "0x0cce79", "code": "0x", "storage": {} } @@ -3844,54 +4950,17 @@ }, "035-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=0-correct:0xa0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90358f9023fa0f1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x40000", - "blockHash": "0xf83d1e0f89bbe998bb23112f9f591848423ca99a46de18ec52d2c86604bf4b99", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543", + "stateRoot": "0x425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3908,16 +4977,79 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0" + "hash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90358f9023fa0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4e45185e13d71637b6d7488cae82c12373cf37942b6ecc67e92bda0f10435e27" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3928,16 +5060,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3948,7 +5086,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } @@ -3957,54 +5095,17 @@ }, "036-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=131072-correct:0xa0000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9035bf90242a0f1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xfe187dd146317d6176dd8175d98b9f14912fa7213da4da9da184b4a5d0269fe7", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543", + "stateRoot": "0x425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4021,16 +5122,79 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0" + "hash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x55701ca283fc873a288c3ddd01a1b08e496dfa46692fc67ed38efd659f1b36e2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4041,16 +5205,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4061,7 +5231,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } @@ -4070,54 +5240,17 @@ }, "037-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=262144-correct:0xa0000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9035bf90242a0f1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0x64c6f3fa992a9df9ec77afa5cf3f7ac7f750f3e20b34db00b82ff2ec16e03e10", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543", + "stateRoot": "0x425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4134,16 +5267,79 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0" + "hash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd323a35fdd82d63f6c476b12f02e31c4be1d436c5be660453c2690685139b464" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4154,16 +5350,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4174,7 +5376,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } @@ -4183,54 +5385,17 @@ }, "038-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=393216-correct:0xa0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9035bf90242a0f1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x40000", - "blockHash": "0xe7e45097118d1ac5321c234693666b2666f5cc94f97b1bb35b95e86ae804490c", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543", + "stateRoot": "0x425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4247,16 +5412,79 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0" + "hash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4d0ad23571c38a98890ba7b502db941c4bea7392269f45d667c577636b0356e5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4267,16 +5495,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4287,7 +5521,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } @@ -4296,54 +5530,17 @@ }, "039-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=524288-correct:0xa0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9035bf90242a0f1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x40000", - "blockHash": "0x60b251738a6e78bfcc215fb797347e0c1a7acb97e6d1df867c3abf4f30b7eb39", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543", + "stateRoot": "0x425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4360,16 +5557,79 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0" + "hash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf496fc9ef2f440a7dc194558da45eb9a6d39d456684072bdb0e6e40f9c53afaa" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4380,16 +5640,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4400,7 +5666,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } @@ -4409,54 +5675,17 @@ }, "040-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=786432-correct:0xa0000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9035bf90242a0f1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x40000", - "blockHash": "0x3fc2ac23314ac8a94c1d7f20d5086459f29cdfd51618c32f9dedfd8b8c119b36", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543", + "stateRoot": "0x425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4473,16 +5702,79 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0" + "hash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9035bf90242a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0c0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcc17c866bfd4df2d4176c3a1db421912cbfe9140c8af1da68ee15142c92208f0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4493,16 +5785,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4513,7 +5811,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } @@ -4522,54 +5820,17 @@ }, "041-fork=Cancun-parent_blobs=0-new_blobs=5-header_blob_gas_used=18446744073709551615-correct:0xa0000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90360f90247a0f1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0c3f41631a2bc7d2b233f00f8c5b22a6a37540d6097832ab33f8ab7a1dd1d1997a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xffffffffffffffff", - "excessBlobGas": "0x40000", - "blockHash": "0xdcc6c2c5c6da2d95003e9a46a8a926808945a8bc861cc8e4613683cb7e9b494c", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000480a05b5b2b349f42d7b29873999b615a746b86b25832b74a4e443e34fa9222e3de16a033a55d0dc9ab01945ab29789a6c93b98541724dd932467aed99cc92bc5437c84" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543", + "stateRoot": "0x425039dcbd9a5cfdf61c207c7caca70b342fb892a91b1d66c9566057ec76d8c2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4586,16 +5847,79 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0" + "hash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e62f23a7cf7c393ab408e6bdc17b8b29c25144358feef1c12df2db8a63f7543a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf1b6301f81b21e5d525d2081107525a27986e5243b43589351f72aa1b3be78c0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90360f90247a0db2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca020f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a0180800782afc89400000000000000000000000000000000000001000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a0ddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8a02150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x20f36c013e61ffbbb870fd5037691af27e276382fb0790a2568a9b70a660f695", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1bfccb460adf5476bd9b486ee905596b222ed22c4282b6885210dcc338f8dfaa" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004" + ], + "v": "0x01", + "r": "0xddcf2d9ad185ba2bc91a992e59bd49a8bf21c9c6c545e62f313fd05ce54d87f8", + "s": "0x2150c7eb893380d15bdb85a821c0bbfd83e2e8e17c5bd579740fa17903881c6d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xdb2f72d281fe090653811fdd031bea343ba6f83fc1e36191a9098684e1078d64", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4606,16 +5930,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4626,7 +5956,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0c3e39", + "balance": "0x0ece79", "code": "0x", "storage": {} } @@ -4635,55 +5965,17 @@ }, "042-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=0-correct:0xc0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90379f9023fa0154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x40000", - "blockHash": "0x85d378e75941e71e223ae1b504fa741dfd5cdd28092a9685c9dd78cbfca61b67", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23", + "stateRoot": "0x152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4700,16 +5992,80 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4" + "hash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90379f9023fa01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2929c500bb945fc9b2451abba159273c088289c35f0f444b574a4bdec41ea952" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4720,16 +6076,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4740,7 +6102,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } @@ -4749,55 +6111,17 @@ }, "043-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=131072-correct:0xc0000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9037cf90242a0154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0x000947f46486eab8fa84fc896009aaf203059023840cd63a6c9d9fd53341be57", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23", + "stateRoot": "0x152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4814,16 +6138,80 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4" + "hash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4599d69b9c936426fbc7666495e75f7ce4c1f780f8bcd81f2d3621a4d2c0e9f2" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4834,16 +6222,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4854,7 +6248,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } @@ -4863,55 +6257,17 @@ }, "044-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=262144-correct:0xc0000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9037cf90242a0154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0xe3b735dcbeab23ce8997b823cf8ba59eadcf92823b47736b61ca6d276323aa5f", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23", + "stateRoot": "0x152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4928,16 +6284,80 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4" + "hash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x040000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7c9b63194c04b85ab395935bc917c59ae74e5616e70da3bac84c4eb53492d07e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4948,16 +6368,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4968,7 +6394,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } @@ -4977,55 +6403,17 @@ }, "045-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=393216-correct:0xc0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9037cf90242a0154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x40000", - "blockHash": "0x5fc9d230a5102d2db2a8e2c559e440a70dbbd6a62abad51d86596cdb327033b9", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23", + "stateRoot": "0x152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5042,16 +6430,80 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4" + "hash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x060000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaae35f56be7dd7f196a3c639f80edb7bf57638196014e91c98eecd6615c50646" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5062,16 +6514,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5082,7 +6540,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } @@ -5091,55 +6549,17 @@ }, "046-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=524288-correct:0xc0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9037cf90242a0154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x40000", - "blockHash": "0x01b196b986259b3b88c05278f3d539a5c73245744435a2838c2bc03257781762", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23", + "stateRoot": "0x152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5156,16 +6576,80 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4" + "hash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x080000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4dedfd4d169fe939eb535a86a689b6cfbfbb08e854781a97d654b42b09e971cc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5176,16 +6660,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5196,7 +6686,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } @@ -5205,55 +6695,17 @@ }, "047-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=655360-correct:0xc0000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9037cf90242a0154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x40000", - "blockHash": "0xda267725e702b1784c04637d7ade2e4f4a35977a339c59327a73c9d6fa7c2829", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23", + "stateRoot": "0x152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5270,16 +6722,80 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4" + "hash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9037cf90242a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x0a0000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x367960cf3c87035e2416315129a603c72ec4e818eeb00d6a4baa86eef81edac0" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5290,16 +6806,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5310,7 +6832,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } @@ -5319,55 +6841,17 @@ }, "048-fork=Cancun-parent_blobs=0-new_blobs=6-header_blob_gas_used=18446744073709551615-correct:0xc0000-header:0xffffffffffffffff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90381f90247a0154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0e1d23bd09c0f6c7e0fb955150a29878ece98604da780c387de2edbe1e512580da0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98dc0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xffffffffffffffff", - "excessBlobGas": "0x40000", - "blockHash": "0xc46e6fd41f89e2af4a0ff8fd4892cf85f832e34ba2ed69ab4442347ebe46a758", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0a3fde4e69b58ab7846a662946c81c947872ca16ed64bca3e9f2e298a83a7dd0fa036264b4930ad766cf871de20d6b5a66c4660988c83a0bfad8f50847d16cab98d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid blob gas used", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23", + "stateRoot": "0x152405b92f9044c91902ba9246cbdcddfe07155b7afa9b6c848af93d308a6ea4", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5384,16 +6868,80 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4" + "hash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f47042fc2ae8c08416572bb06dc7aaa37aefead2d34fc84f6d0ced6b05ddeb23a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x154f36fd04b0ff34f87014b1e6b88ce91372f0fa40e87be71aaf72a62caf7bf4", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90381f90247a01bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42188ffffffffffffffff83040000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b0180800782afc89400000000000000000000000000000000000001000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a02ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59a06cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8dc0c0", + "expectException": "invalid blob gas used", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe466b45b67935b425ddc7e6d7e8761063f6e4dfa5db55b895bb150ace26812b8", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0xffffffffffffffff", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ff9f5fcba4add07c651b6baf06ea569ffd42cf9d30635014e293be5434791af" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000", + "0x0100000000000000000000000000000000000000000000000000000000000001", + "0x0100000000000000000000000000000000000000000000000000000000000002", + "0x0100000000000000000000000000000000000000000000000000000000000003", + "0x0100000000000000000000000000000000000000000000000000000000000004", + "0x0100000000000000000000000000000000000000000000000000000000000005" + ], + "v": "0x00", + "r": "0x2ce2486e0e80dffcb02691491cec0986157404d9bd4e3b56bd7c71a766527c59", + "s": "0x6cc1dc36b255ae67d0cf1e1660c6b7d934970b3a139d0376a5128dc523ccaf8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x1bb59dd376be8aff21438ab60f8fcb70d68be44a226813094b2d49f1c5b38652", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5404,16 +6952,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5424,7 +6978,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x0e3e39", + "balance": "0x10ce79", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json index 8b669767c1a..35bf3971022 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_above_target_change.json @@ -1,50 +1,17 @@ { "000-fork=Cancun-new_blobs=1-zero_blobs_decrease_more_than_expected-correct:0x40000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x9dabbe15d09a9004d905bdbd67128221dc87be178a427386f90a2ec0dc2e95e4", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -61,16 +28,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0de9ecc1eaf7213e6ec4cc19358796096d60740ee2950a42ad179096ad7fcc83" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -81,16 +107,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -101,7 +133,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -110,18 +142,43 @@ }, "001-fork=Cancun-new_blobs=1-max_blobs_increase_more_than_expected-correct:0x100000-header:0x120000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9037cf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -138,40 +195,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e" }, "blocknumber": "1", "transactions": [ @@ -205,70 +229,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a00d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x120000", - "blockHash": "0xc3431281abd7ac0d5076b3060d90685e43b109124ee8005c899e1361949f86de", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x04022b55371e25f2a7fe8f942909a0335d33d598d118b3ad5d30948c4e069385" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "network": "Cancun", + "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -279,19 +304,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -299,6 +322,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -307,7 +338,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json index 8b03aec78a0..05e4f522d97 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_change.json @@ -1,50 +1,17 @@ { "000-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=-3-correct:0x40000-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0xea0abc8b91269c8c7469e5d6828d593d375302ac153ee2c16c93c7b286964b73", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -61,16 +28,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb0ae2da2b3c7b81cc9cbd85670aa8d70c2fa9520515347eeddae3a9d8971e088" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -81,16 +107,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -101,7 +133,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -110,50 +142,17 @@ }, "001-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=-2-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d0f9023fa07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xa333e100fa156d74ef762116edf732b33e9b248e0d452254ac58c8edf299728e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -170,16 +169,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d0f9023fa05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x03e22ea02241c69c4c2be271e559c96df35ed94bd5bb1dba70600f7708e9d5ad" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -190,16 +248,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -210,7 +274,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -219,50 +283,17 @@ }, "002-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=-1-correct:0x40000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x9dabbe15d09a9004d905bdbd67128221dc87be178a427386f90a2ec0dc2e95e4", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -279,16 +310,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0de9ecc1eaf7213e6ec4cc19358796096d60740ee2950a42ad179096ad7fcc83" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -299,16 +389,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -319,7 +415,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -328,50 +424,17 @@ }, "003-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=1-correct:0x40000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x544d1d33e89a697d2e8533e643d49d0af43632b945f85d6f3d1fdb32585a05b3", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -388,16 +451,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd49d2d9433c30198e08f7e515f1477cca4ca9c7eac647a85422f165bd3e6fa1c" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -408,16 +530,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -428,7 +556,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -437,50 +565,17 @@ }, "004-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=2-correct:0x40000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0xe696b49636f39d3990538f986ad9086047b09896050b085cc7a005ab572445a4", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -497,16 +592,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdfc8f35128ce527aa73bb7163f3ed32c4dbd0cf1eb438ecc9fb5f27e7f91a673" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -517,16 +671,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -537,7 +697,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -546,50 +706,17 @@ }, "005-fork=Cancun-new_blobs=1-parent_blobs=0-header_excess_blobs_delta=3-correct:0x40000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0xf9c9781af937cd4f7570468f2a7d1bb50e8e01d5631f554d48ee6d7f98d4c6e4", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -606,16 +733,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4e55e06163495ac46a1f620d43451be2214b81a175b595ea8392c34d76b25d65" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -626,16 +812,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -646,7 +838,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -655,18 +847,43 @@ }, "006-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=-3-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902d3f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -683,35 +900,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69" }, "blocknumber": "1", "transactions": [ @@ -740,70 +929,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa093de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x733e5b3127884d0519797dc81a571ddbdce2fec52d38f99fd44f1524f5786044", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x339669f618eab0fed6b09bf2a4db6e0bcb9e0150914f213088c3f803f6d54223" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "network": "Cancun", + "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -814,19 +1004,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -834,15 +1022,23 @@ "code": "0x", "storage": {} }, - "0x8a0a19589531694250d570040a0c4b74576919b8": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", - "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x8a0a19589531694250d570040a0c4b74576919b8": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -851,18 +1047,43 @@ }, "007-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=-2-correct:0x60000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902d3f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -879,35 +1100,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69" }, "blocknumber": "1", "transactions": [ @@ -936,70 +1129,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a093de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x704e4d5770bc92bd56877ed443f6d7d503cb5edf95dab979f6a068d027389d65", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x43306e063851dbc5fe4d597266ed0719506ecbde714dc2070d1a1962eaaf2f55" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "network": "Cancun", + "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1010,19 +1204,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1030,6 +1222,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -1038,7 +1238,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1047,18 +1247,43 @@ }, "008-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=-1-correct:0x60000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902d3f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1075,35 +1300,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69" }, "blocknumber": "1", "transactions": [ @@ -1132,70 +1329,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a093de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0x12f31bb5c1744eba78d9f79bb4814da14fe80f26c289ef6ae429d1f852fff92e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1295cabb02c5167b5e5782e355a20542b428b098527a80a48c23fe542aef5c0c" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "network": "Cancun", + "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1206,19 +1404,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1226,6 +1422,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -1234,7 +1438,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1243,18 +1447,43 @@ }, "009-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=1-correct:0x60000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902d3f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1271,35 +1500,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69" }, "blocknumber": "1", "transactions": [ @@ -1328,70 +1529,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a093de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0xe9eb36b400528d81f2fd1649623db8e3a96d0ecb4f4a5e133d10c6dea3158594", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc86b89998dae1ab4a93b93f73a2c7efa6a27d54775c72bce59395c80fa0f6906" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "network": "Cancun", + "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1402,19 +1604,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1422,6 +1622,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -1430,7 +1638,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1439,18 +1647,43 @@ }, "010-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=2-correct:0x60000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902d3f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1467,35 +1700,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69" }, "blocknumber": "1", "transactions": [ @@ -1524,70 +1729,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a093de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0xff8cf0a41bfce83fa3052f283f1cbf1f96d8d95159a77c6590519303b6a03000", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x45c9da351edf1d03771ff619674589575d6ec750233ddc34436d4c17989d6d21" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "network": "Cancun", + "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1598,19 +1804,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1618,6 +1822,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -1626,7 +1838,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1635,18 +1847,43 @@ }, "011-fork=Cancun-new_blobs=1-parent_blobs=1-header_excess_blobs_delta=3-correct:0x60000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902d3f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1663,35 +1900,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69" }, "blocknumber": "1", "transactions": [ @@ -1720,70 +1929,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a093de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xc0000", - "blockHash": "0x76365208e7a1300d0314b2c1b4ec156b348b841951ea000e227ddaaa4804dad6", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf0102694c0c7740e15e4f454a0742be62dfcd1a39b9e7eb89d74b69654ad7213" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "network": "Cancun", + "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1794,19 +2004,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1814,6 +2022,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -1822,7 +2038,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1831,18 +2047,43 @@ }, "012-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=-3-correct:0x80000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1859,36 +2100,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xa0000", - "blockHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93" }, "blocknumber": "1", "transactions": [ @@ -1918,70 +2130,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0c23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xba54c39dd0b496e6b5b0687fae7ff9892e8a442ca8a43ab1a77048c5aa561408", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0fd4ebe4b89efb507c63c2797883dc74a9d9638acced6eb48db87f2ff02c6c2d" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "network": "Cancun", + "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1992,19 +2205,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2012,6 +2223,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2020,7 +2239,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2029,18 +2248,43 @@ }, "013-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=-2-correct:0x80000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2057,36 +2301,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xa0000", - "blockHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93" }, "blocknumber": "1", "transactions": [ @@ -2116,70 +2331,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0c23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0x0b18d8b43b05ef2f1fcc3e86810a490a7e9a85078cb4813bf825d38703640171", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd49f0d2ebb05888eddcfb7fadacba580793c9e68fe0cdc4406137ff5c76d5504" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "network": "Cancun", + "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2190,19 +2406,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2210,6 +2424,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2218,7 +2440,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2227,18 +2449,43 @@ }, "014-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=-1-correct:0x80000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2255,36 +2502,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xa0000", - "blockHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93" }, "blocknumber": "1", "transactions": [ @@ -2314,70 +2532,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0c23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x813aa5ae00409fd4461d03ff2fc21801178dcfdeb72ccd9c460c4449b87216cf", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x557d3db284b5acd34f707d6c039b26deac0c915f13d0fea37c03e0e52ca928b4" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "network": "Cancun", + "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2388,19 +2607,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2408,6 +2625,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2416,7 +2641,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2425,18 +2650,43 @@ }, "015-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=1-correct:0x80000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2453,36 +2703,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xa0000", - "blockHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93" }, "blocknumber": "1", "transactions": [ @@ -2512,70 +2733,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0c23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0xee72981600f21a8a5d494c4a2c77338f925ddae48fbcfbe33b6b2a101df6db22", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9637613028e9fb345df14630252dab3bf3e902af92c5589300f03d0fed26b8fb" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "network": "Cancun", + "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2586,19 +2808,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2606,6 +2826,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2614,7 +2842,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2623,18 +2851,43 @@ }, "016-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=2-correct:0x80000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2651,36 +2904,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xa0000", - "blockHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93" }, "blocknumber": "1", "transactions": [ @@ -2710,70 +2934,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0c23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xc0000", - "blockHash": "0x6b997bc65d60784310655be490cf90c2bda26cfd064decbc50179977db81459f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x981df8dcfec46cec990b584d2834be068426e14d393fae7f58925534e6286f8f" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "network": "Cancun", + "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2784,19 +3009,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2804,6 +3027,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2812,7 +3043,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2821,18 +3052,43 @@ }, "017-fork=Cancun-new_blobs=1-parent_blobs=2-header_excess_blobs_delta=3-correct:0x80000-header:0xe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2849,36 +3105,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xa0000", - "blockHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93" }, "blocknumber": "1", "transactions": [ @@ -2908,70 +3135,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0c23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xddcf663d72e86e330c9db376318a7d5e3be5cc9ac1bc01ca5f1d9fd27a9c09d0", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x94e34e197dbb7e2f8fbc772df764cbc22a5654b1595eee51f416de1eb2af7448" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "network": "Cancun", + "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2982,19 +3210,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3002,6 +3228,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -3010,7 +3244,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3019,18 +3253,43 @@ }, "018-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=-3-correct:0xa0000-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90316f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3047,37 +3306,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xa0000", - "blockHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3" }, "blocknumber": "1", "transactions": [ @@ -3108,70 +3337,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a005657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xc6cb8ce2b2bcc07f3c80bd55f60e63e88c976beb237979c0db689a82b27c1251", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5983d885dd90ae9f616570e394104123e0021089006d865673933e083534f77b" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "network": "Cancun", + "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3182,19 +3412,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3202,6 +3430,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -3210,7 +3446,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3219,18 +3455,43 @@ }, "019-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=-2-correct:0xa0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90316f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3247,37 +3508,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xa0000", - "blockHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3" }, "blocknumber": "1", "transactions": [ @@ -3308,70 +3539,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a005657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x39b1e4d568836951dfd82f079bf04dac003352a9f24b334183ef1613e3c285df", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xba6ec2454209f9d05027836f40f00b591fecaae0b73734a00c8f7bc0b3ccd3c3" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "network": "Cancun", + "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3382,19 +3614,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3402,6 +3632,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -3410,7 +3648,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3419,18 +3657,43 @@ }, "020-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=-1-correct:0xa0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90316f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3447,37 +3710,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xa0000", - "blockHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3" }, "blocknumber": "1", "transactions": [ @@ -3508,70 +3741,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a005657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0x855f00ca5e7bb4ac795e581679e8994f0691b6a63c717ddb2f53bbb5848931dd", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe83ede7746ecbb9fbf1df8b764c86a70f8027c41e89c435c8d25229f4135643d" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "network": "Cancun", + "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3582,19 +3816,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3602,6 +3834,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -3610,7 +3850,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3619,21 +3859,46 @@ }, "021-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=1-correct:0xa0000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90316f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", - "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, + "blocks": [ + { + "rlp": "0xf90316f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "blockHeader": { + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", + "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", @@ -3647,37 +3912,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xa0000", - "blockHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3" }, "blocknumber": "1", "transactions": [ @@ -3708,70 +3943,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a005657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xc0000", - "blockHash": "0x71766004ed84f59a5480d1d49f370dc50874e8bb9226b11038a8fcc69b59ca6e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x38a0918ed38ba806574dc3f0731bc24f602fd9989d8d485fce9d25d37d7d866d" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "network": "Cancun", + "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3782,19 +4018,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3802,6 +4036,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -3810,7 +4052,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3819,18 +4061,43 @@ }, "022-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=2-correct:0xa0000-header:0xe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90316f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3847,37 +4114,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xa0000", - "blockHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3" }, "blocknumber": "1", "transactions": [ @@ -3908,70 +4145,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a005657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x7a2c15b36af02c1c316d3e015c42299ea3b0ad481adb4fa0f3b77b81387c9994", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xefa4bd9695f4d88e036e8e178118d2dfd6c38107a49f2cbbaf6ec844c132622f" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "network": "Cancun", + "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3982,19 +4220,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4002,6 +4238,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -4010,7 +4254,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -4019,18 +4263,43 @@ }, "023-fork=Cancun-new_blobs=1-parent_blobs=3-header_excess_blobs_delta=3-correct:0xa0000-header:0x100000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90316f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4047,37 +4316,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xa0000", - "blockHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3" }, "blocknumber": "1", "transactions": [ @@ -4108,70 +4347,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a005657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x100000", - "blockHash": "0x0cd1dc1378d860915850d116ef5c49cc9a78ccbab97ed3cb0d87e3e3770bb549", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x856de497b4c16eac67b5a24435c69416578b9c071aff735b9e703db2b802cc16" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "network": "Cancun", + "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4182,19 +4422,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4202,6 +4440,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -4210,7 +4456,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -4219,18 +4465,43 @@ }, "024-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=-3-correct:0xc0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90337f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4247,38 +4518,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xa0000", - "blockHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de" }, "blocknumber": "1", "transactions": [ @@ -4310,70 +4550,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a02aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x326c2ecc0370fe3fa10b8f312272cf6d3159dd4bab9ac632b1fc09ed0eda7225", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x551b2e6b4b8ba2680e3a6dd891cd557aea9f96d7ea98490a651055f798645b83" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "network": "Cancun", + "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4384,19 +4625,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4404,6 +4643,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -4412,7 +4659,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -4421,18 +4668,43 @@ }, "025-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=-2-correct:0xc0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90337f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4449,38 +4721,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xa0000", - "blockHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de" }, "blocknumber": "1", "transactions": [ @@ -4512,70 +4753,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a02aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0x34967a93ebb45864c807c0a0612c0a58db0e608c108e2c29fed3f38a951b3909", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbea84808c88cb6e29ecaae8814df6ac245ca47d1117fd48547a946a61341328b" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "network": "Cancun", + "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4586,19 +4828,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4606,6 +4846,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -4614,7 +4862,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -4623,18 +4871,43 @@ }, "026-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=-1-correct:0xc0000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90337f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4651,38 +4924,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xa0000", - "blockHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de" }, "blocknumber": "1", "transactions": [ @@ -4714,70 +4956,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a02aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x82ff66b991ec65ec4f2888223d7acda191a5fcd2dab27ae91d8f8fe624cba1d8", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc1960e4db7343cf3a246ba042050ca35165a4d689eae4ccd25fb5c306f4f57a0" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "network": "Cancun", + "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4788,19 +5031,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4808,6 +5049,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -4816,7 +5065,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -4825,18 +5074,43 @@ }, "027-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=1-correct:0xc0000-header:0xe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90337f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4853,38 +5127,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xa0000", - "blockHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de" }, "blocknumber": "1", "transactions": [ @@ -4916,70 +5159,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a02aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0x69fa8e7731ebaa20109f61ad0486205cdc04cc43b357a0a5978b4a4323619a07", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x81dbd4064d93c5aab6fe38a32ee478918fba1c80fecdb865fb6bd87b06c0bdae" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "network": "Cancun", + "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4990,19 +5234,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -5010,6 +5252,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -5018,7 +5268,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -5027,18 +5277,43 @@ }, "028-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=2-correct:0xc0000-header:0x100000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90337f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5055,38 +5330,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xa0000", - "blockHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de" }, "blocknumber": "1", "transactions": [ @@ -5118,70 +5362,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a02aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x100000", - "blockHash": "0x5a5768ecbffe054636f76e46e39b07873349265a0bdd2776fe26d18d806b57af", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5796db4972f4702931044a16ea470ce7979811cb4ba614f598c79f3162933216" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "network": "Cancun", + "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5192,19 +5437,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -5212,6 +5455,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -5220,7 +5471,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -5229,18 +5480,43 @@ }, "029-fork=Cancun-new_blobs=1-parent_blobs=4-header_excess_blobs_delta=3-correct:0xc0000-header:0x120000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90337f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5257,38 +5533,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xa0000", - "blockHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de" }, "blocknumber": "1", "transactions": [ @@ -5320,70 +5565,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a02aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x120000", - "blockHash": "0xa6ce4d81312e048a10c40a35b8354e3958ff2a44a0a3f7c9cb4b94ab908ddab5", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaaa0e83018503b6ba684b59c484f0ae0913d2c66c17cbaa58ee56826057fe26d" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "network": "Cancun", + "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5394,19 +5640,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -5414,6 +5658,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -5422,7 +5674,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -5431,18 +5683,43 @@ }, "030-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=-3-correct:0xe0000-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9035bf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5459,39 +5736,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e" }, "blocknumber": "1", "transactions": [ @@ -5524,70 +5769,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a021397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0x5b91cf0c519f540ccda4c96534a47de00eab4bc39910418984b1aab3122105ea", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4a20e26e16be55ffb69015d3c62a5b4f4da6ba060e840b70c1ba636dac1a7420" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "network": "Cancun", + "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5598,19 +5844,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -5618,6 +5862,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -5626,7 +5878,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -5635,18 +5887,43 @@ }, "031-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=-2-correct:0xe0000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9035bf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5663,39 +5940,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e" }, "blocknumber": "1", "transactions": [ @@ -5728,70 +5973,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a021397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x1f6355c19326d618603e12a0288f91935d70931d5703f73722fbdf6401da176c", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9fbda2fe93560b668f81a426a3898b0d902e8a2f4a525713ea6fa414c08d2c54" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "network": "Cancun", + "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -5802,19 +6048,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -5822,6 +6066,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -5830,7 +6082,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -5839,18 +6091,43 @@ }, "032-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=-1-correct:0xe0000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9035bf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5867,39 +6144,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e" }, "blocknumber": "1", "transactions": [ @@ -5932,70 +6177,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a021397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xc0000", - "blockHash": "0x2747569f452aae0f8fd74dde11d8ab97d1604c40c88060afd521f2bed5bd86c3", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x01914643f9df69a42a361b490836b2ac535c117561ed2bc9c6dfe538a3522c1e" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "network": "Cancun", + "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -6006,19 +6252,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -6026,6 +6270,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -6034,7 +6286,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -6043,18 +6295,43 @@ }, "033-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=1-correct:0xe0000-header:0x100000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9035bf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6071,39 +6348,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e" }, "blocknumber": "1", "transactions": [ @@ -6136,70 +6381,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a021397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083100000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x100000", - "blockHash": "0xd932182e3d9133b5127884c9ff0d6db0e3fae411e47339bd8db1846fa469b300", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53f8feb778c5a8a12999e1e283f86580ca1f939aec3e8bc3b1ebd6688133cd45" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "network": "Cancun", + "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -6210,19 +6456,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -6230,6 +6474,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -6238,7 +6490,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -6247,18 +6499,43 @@ }, "034-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=2-correct:0xe0000-header:0x120000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9035bf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6275,39 +6552,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e" }, "blocknumber": "1", "transactions": [ @@ -6340,70 +6585,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a021397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x120000", - "blockHash": "0x84efe282c6627c9f434314a8c2124c937ee3c346d8d33d6d3e1139910080508a", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcd9c1275dd52932ec06145cb4d759a61184e1ad786f8d909304c5d88a3e2b63c" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "network": "Cancun", + "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -6414,19 +6660,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -6434,6 +6678,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -6442,7 +6694,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -6451,21 +6703,46 @@ }, "035-fork=Cancun-new_blobs=1-parent_blobs=5-header_excess_blobs_delta=3-correct:0xe0000-header:0x140000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9035bf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", - "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, + "blocks": [ + { + "rlp": "0xf9035bf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "blockHeader": { + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", + "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", @@ -6479,39 +6756,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e" }, "blocknumber": "1", "transactions": [ @@ -6544,70 +6789,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a021397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083140000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083140000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x140000", - "blockHash": "0x8d1e2ec193b3401068fcbc07a7076aec04e6999e40fb92330bc11476d1182f1c", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd30712caac1715aa7abc3b0b1513a017fdb474850bbacc9e3f35e674cc3c34be" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "network": "Cancun", + "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -6618,19 +6864,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -6638,6 +6882,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -6646,7 +6898,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -6655,18 +6907,43 @@ }, "036-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=-3-correct:0x100000-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9037cf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6683,40 +6960,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e" }, "blocknumber": "1", "transactions": [ @@ -6750,70 +6994,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a00d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x2ce2a9534d5a0d40f1c46a5861d02f345f8de18cde609cb2d3d23cbaee505bc8", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaa70a27dfe4b618f47190331ed9fa3b04549c4f441aa2b411c2944a51f56497f" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "network": "Cancun", + "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -6824,19 +7069,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -6844,6 +7087,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -6852,7 +7103,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -6861,18 +7112,43 @@ }, "037-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=-2-correct:0x100000-header:0xc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9037cf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6889,40 +7165,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e" }, "blocknumber": "1", "transactions": [ @@ -6956,70 +7199,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a00d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830c0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xc0000", - "blockHash": "0x7a759d8b01fb312e594239d7d489e11058fe462cfb64b690492465c975dab444", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f5d65d9e335ab083575ed6dc011b5ce6925e397d982e887618307f8177b43a6" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "network": "Cancun", + "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -7030,19 +7274,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -7050,6 +7292,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -7058,7 +7308,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -7067,18 +7317,43 @@ }, "038-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=-1-correct:0x100000-header:0xe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9037cf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7095,40 +7370,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e" }, "blocknumber": "1", "transactions": [ @@ -7162,70 +7404,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a00d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830e0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xe0000", - "blockHash": "0xdbfe8d8ec8161489dbd7cf7a901bc77e784e46ad8f71a5da5c13c4c05de673b3", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d205ca0795a646a3f07bd784f9aea3847b15507707411af94ee12df701eee91" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "network": "Cancun", + "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -7236,19 +7479,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -7256,6 +7497,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -7264,7 +7513,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -7273,18 +7522,43 @@ }, "039-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=1-correct:0x100000-header:0x120000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9037cf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7301,40 +7575,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e" }, "blocknumber": "1", "transactions": [ @@ -7368,70 +7609,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a00d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083120000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x120000", - "blockHash": "0xc3431281abd7ac0d5076b3060d90685e43b109124ee8005c899e1361949f86de", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x04022b55371e25f2a7fe8f942909a0335d33d598d118b3ad5d30948c4e069385" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "network": "Cancun", + "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -7442,19 +7684,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -7462,6 +7702,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -7470,7 +7718,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -7479,18 +7727,43 @@ }, "040-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=2-correct:0x100000-header:0x140000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9037cf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7507,40 +7780,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e" }, "blocknumber": "1", "transactions": [ @@ -7574,70 +7814,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a00d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083140000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083140000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x140000", - "blockHash": "0x022bd89076da4c7a77837e88658950565d649498370d8715ab6dd43cae31fe00", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xded21ed01dc3ad27cee657f625423f13ad4f9145a42790fe43b44798fcb36be4" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "network": "Cancun", + "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -7648,19 +7889,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -7668,6 +7907,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -7676,7 +7923,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -7685,18 +7932,43 @@ }, "041-fork=Cancun-new_blobs=1-parent_blobs=6-header_excess_blobs_delta=3-correct:0x100000-header:0x160000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9037cf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -7713,40 +7985,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e" }, "blocknumber": "1", "transactions": [ @@ -7780,70 +8019,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a00d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083160000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083160000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0x160000", - "blockHash": "0x682f589ec052de5e6b38df30d0048b05aad68b2762bcb9dc51f6558bc3e79956", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3ff127126873bd983cba5609cbda84b3cefc41f3868710e86f5369e399e99f20" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "network": "Cancun", + "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -7854,19 +8094,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -7874,6 +8112,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -7882,7 +8128,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json index 11ab8d57476..59eda0540a0 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_excess_blob_gas_target_blobs_increase_from_zero.json @@ -1,50 +1,17 @@ { "000-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a044816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x2ad3627b5546ec120db12f8c2c698dd51a253d660765151462b7bc2683ce8fcc", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -61,16 +28,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a" + "hash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x279a529129127a4a10458da09cbe14d709e2710e0542424605d426874f506d0d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -81,16 +107,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -101,7 +133,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -110,50 +142,17 @@ }, "001-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=2-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a044816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0x59f90c1fd58acbb2aaeb0034c5e088423da235d5e03a8c449c12c778af859c8a", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -170,16 +169,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a" + "hash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6e6d67adde0b863c310dc90ef7e540e2f6d115f73a9dde3749e17ebbc487cafd" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -190,16 +248,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -210,7 +274,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -219,50 +283,17 @@ }, "002-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=3-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a044816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x8d4fe40959bf0c821b77cf04b06083c4be7d3bf221134f9ab16422721cffc9c2", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -279,16 +310,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a" + "hash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x90f5d3db2868b920767af18c2766c4a90f63330ca2961b62cd26a4467f8321c6" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -299,16 +389,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -319,7 +415,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -328,50 +424,17 @@ }, "003-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=4-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a044816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0x8bbb187314c326e3970899337c1fee0e0b348aae4b3c5622415b60909859c831", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -388,16 +451,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a" + "hash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd472f9caabaa16d7a17602aaaeeca9b3bc56c314e1a2224491aa44c3e469d812" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -408,16 +530,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -428,7 +556,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -437,50 +565,17 @@ }, "004-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=0-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a044816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0xd6b0f3aa2c995d3fc36863b09cbf5dc311963631af581c03fd1d9c3d52dcad1b", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -497,16 +592,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a" + "hash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8dfc1d38019e27d67b17c92756c554706a55d8af40f2bd6cab2b524932313dc5" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -517,16 +671,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -537,7 +697,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -546,18 +706,43 @@ }, "005-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -574,35 +759,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c" }, "blocknumber": "1", "transactions": [ @@ -631,70 +788,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0b93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xb269ecb4b2f83d347f7193ce7be4bb7fbd603f18530b9135bde86d12131a9ba8", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe1890a1874bab52cb38fd4da0e6385ab6281f483e793c197b1b3320353dee521" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "network": "Cancun", + "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -705,19 +863,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -725,6 +881,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -733,7 +897,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -742,18 +906,43 @@ }, "006-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=2-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -770,35 +959,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c" }, "blocknumber": "1", "transactions": [ @@ -827,70 +988,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0b93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xf043436a7b12b772a8456b131190194911c1a70dd7f1f5a66030818c976933a6", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xade2f23a18f8b480676f8ca81a6f3c3cc0fb9fed2f43fdb67fe70122c6f1acfb" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "network": "Cancun", + "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -901,19 +1063,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -921,6 +1081,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -929,7 +1097,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -938,18 +1106,43 @@ }, "007-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=3-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -966,35 +1159,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c" }, "blocknumber": "1", "transactions": [ @@ -1023,70 +1188,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0b93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x1939c23450164614f0f32638864119b155c492804f50dbf04ef8d98d0a10ec2d", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb53ed3203d8286e094e2db61994b507b0694319ef7fc3b3c3c1f41783a7949d9" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "network": "Cancun", + "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1097,19 +1263,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1117,6 +1281,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -1125,7 +1297,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1134,18 +1306,43 @@ }, "008-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=4-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1162,35 +1359,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c" }, "blocknumber": "1", "transactions": [ @@ -1219,70 +1388,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0b93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0xd8c34bd56ad7428f319b68cfa0c61b01aa181ac9c11a77b3548d270c3d608fce", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf8bfc313c18370fafa9337ec94e22b9d50b799c2ac483f99661291b2f9668875" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "network": "Cancun", + "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1293,19 +1463,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1313,6 +1481,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -1321,7 +1497,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1330,18 +1506,43 @@ }, "009-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=1-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1358,35 +1559,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c" }, "blocknumber": "1", "transactions": [ @@ -1415,70 +1588,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0b93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0xba5ab389df632b2a6993ca790337aa62f98a09ac3f40ab733e23273d972c3e92", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x82b82b6d42c728905355bc47cb94c4dad4fc5a68aab7926938b0dfa0e39ea112" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "network": "Cancun", + "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1489,19 +1663,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1509,6 +1681,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -1517,7 +1697,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1526,18 +1706,43 @@ }, "010-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902f2f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f2f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1554,36 +1759,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5" }, "blocknumber": "1", "transactions": [ @@ -1613,70 +1789,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0cefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x063fef541507a6f4bf714d4919722713f1b65354bf3fde3d1d0665c550f1c83c", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7fedb9d82c174f9c82e221fc374a9c7d00f011772691eb47bbb6c760edf20bcd" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "network": "Cancun", + "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1687,19 +1864,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1707,6 +1882,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -1715,7 +1898,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1724,18 +1907,43 @@ }, "011-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=2-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902f2f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f2f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1752,36 +1960,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5" }, "blocknumber": "1", "transactions": [ @@ -1811,70 +1990,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0cefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xfa003e16c06bd83fda9e0b306b010db67323a02db5d02476f6f9e9bd1f7ac600", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x92a54bc4706324ae937f15fa268099125b97d9d82b4dfa9af24721bd056dab45" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "network": "Cancun", + "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1885,19 +2065,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1905,6 +2083,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -1913,7 +2099,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1922,18 +2108,43 @@ }, "012-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=3-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902f2f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f2f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1950,36 +2161,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5" }, "blocknumber": "1", "transactions": [ @@ -2009,70 +2191,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0cefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x10540330e71abe75d72faa6df23c2b543ef735ad4573b7b4b0771cb93b9de337", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4c55e88603f01ecb20f0d76ea3061b2b76ad3d44ade6228ceb1f6897102290f5" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "network": "Cancun", + "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2083,19 +2266,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2103,6 +2284,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2111,7 +2300,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2120,18 +2309,43 @@ }, "013-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=4-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902f2f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f2f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2148,36 +2362,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5" }, "blocknumber": "1", "transactions": [ @@ -2207,70 +2392,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0cefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0xd09093ceb968f96ba5bf49aa855980cf22743e8563c43a2f12717792e0e80132", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd5a2bd674772fa846b13df678989662661ededb88e1296488a8282c10478c592" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "network": "Cancun", + "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2281,19 +2467,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2301,6 +2485,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2309,7 +2501,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2318,18 +2510,43 @@ }, "014-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=2-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902f2f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f2f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2346,36 +2563,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5" }, "blocknumber": "1", "transactions": [ @@ -2405,70 +2593,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0cefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0xa7b90723d6c4becbfbc0c57950516a43fb10cedc7de73c4a1d8da3173ead9e89", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd5e84bee1b05a3edecacb7819a648332b4595b6cfb590529979fb8931b03073a" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "network": "Cancun", + "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2479,19 +2668,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2499,6 +2686,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2507,7 +2702,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2516,18 +2711,43 @@ }, "015-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90313f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90313f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2544,37 +2764,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266" }, "blocknumber": "1", "transactions": [ @@ -2605,70 +2795,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0e8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xe410d0ecff50f7c5f57a229bf1a768be2aed032ad0fc754f8683a2459a4ddd88", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x54b362e74b481c7c0217ccbc115b19dab35b1190f70af84434a697b23c1f29c0" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "network": "Cancun", + "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2679,19 +2870,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2699,6 +2888,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -2707,7 +2904,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2716,18 +2913,43 @@ }, "016-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=2-correct:0x0-header:0x40000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90313f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90313f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2744,37 +2966,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266" }, "blocknumber": "1", "transactions": [ @@ -2805,70 +2997,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0e8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xb3cfaa3ea93da3d1ab3384f2b0eb844394e4167c4aff13653b6e2b92e5c0905d", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0b899666c3eb7b5c3fc5901efe152ba5b556eead7be85a2078131ec8ebf3be12" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "network": "Cancun", + "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2879,19 +3072,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2899,6 +3090,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -2907,7 +3106,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2916,18 +3115,43 @@ }, "017-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=3-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90313f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90313f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2944,37 +3168,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266" }, "blocknumber": "1", "transactions": [ @@ -3005,70 +3199,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0e8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0xca4ab9bff40df2a443a0bfc88042cbc053ac89e6d11df3b97dc5b2151c6660f6", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5edd1bc4bbe2a421f653edafc1f8d007e98b92a97c814b0725e4516f60a313b9" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "network": "Cancun", + "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3079,19 +3274,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3099,6 +3292,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -3107,7 +3308,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3116,18 +3317,43 @@ }, "018-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=4-correct:0x0-header:0x80000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90313f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90313f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3144,37 +3370,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266" }, "blocknumber": "1", "transactions": [ @@ -3205,70 +3401,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0e8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083080000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x80000", - "blockHash": "0x10061f5381911febc9a5c31bc267c3cf1d720a6180ef4ebfa46dc6445e092113", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa7fcf925c270e3d2632dce16b238e9bb5840dfd5a00fd0b40371255833a7ffa7" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "network": "Cancun", + "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3279,19 +3476,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3299,6 +3494,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -3307,7 +3510,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3316,18 +3519,43 @@ }, "019-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=3-header_excess_blobs_delta=5-correct:0x0-header:0xa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90313f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90313f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3344,37 +3572,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266" }, "blocknumber": "1", "transactions": [ @@ -3405,70 +3603,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0e8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0xbe9844868f7d87e78d3a5d21209c526d2ef65adb67b3b566075a57c2cc0fcc6e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9addc6900ea55030f22a4e4ec0bafa26a2a01dbc49ff4a4d93f07a0f46b7c924" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe8f4509884caee8160f3a0527b32e42946dfdac2dc698da3b91257f0a16e3507", - "network": "Cancun", + "lastblockhash": "0x1e8a3361d81ff2f558ac4400bfd7da67b4b7dd1236f84fc7357bf27f5545f266", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3479,19 +3678,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3499,6 +3696,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -3507,7 +3712,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json index 727bd15a999..a0874a28e81 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_negative_excess_blob_gas.json @@ -1,50 +1,17 @@ { "000-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a044816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffa0000", - "blockHash": "0x21ee2e69bfd4f751bf6e722901099ff73183aef701c5de4047241c8476311560", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -61,16 +28,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a" + "hash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7dff2c672335720232c3165f02fd59147bece4da6726ee4489519a93e25f44bc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -81,16 +107,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -101,7 +133,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -110,50 +142,17 @@ }, "001-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a044816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffc0000", - "blockHash": "0xd186d30c6994d7aa90006f00ff3026367735c7476cf7d541140d86b6792bbb8d", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -170,16 +169,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a" + "hash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0cfae36c8af526e9ec689009390067a8d23eff90c90b66660349a97e190431a3" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -190,16 +248,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -210,7 +274,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -219,50 +283,17 @@ }, "002-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a044816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0x7ade72b3bdaa47413424f3f1dc23d98183f185dd46df25d6c64816701a17c291", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -279,16 +310,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a" + "hash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44816634892f375c60be4a21d8aa65c0084c14f8367e03e026ed7e21c17e096a", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a0ce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd7594d92dc2ed600c9238f63d5594b41ba3debd8318a292412c45bd0f95570a9" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xce38412dc5dae4088028b4b07dc3e086fb8c24b9e257213b7cb0fb7603bbe395", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -299,16 +389,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -319,7 +415,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -328,18 +424,43 @@ }, "003-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -356,35 +477,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c" }, "blocknumber": "1", "transactions": [ @@ -413,70 +506,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0b93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffa0000", - "blockHash": "0xb3e5c637f3814d95deb1a04c2415a5905f55d1505886cd89dc9a0aba01f75279", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4f5de42ad8ab2374e99e02c5349b8ccf9c711de250a9306c8aeb59f8e71e64b4" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "network": "Cancun", + "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -487,19 +581,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -507,6 +599,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -515,7 +615,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -524,18 +624,43 @@ }, "004-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -552,35 +677,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c" }, "blocknumber": "1", "transactions": [ @@ -609,70 +706,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0b93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffc0000", - "blockHash": "0x57aa237fe6d0eaf47b0d115c3403be4c5569b4dfc69aec50dd11f0572140769f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x00aea39a5bac3cb28ef99fddfc1af2f4636e37bd9587635501c89928fdca2b0d" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "network": "Cancun", + "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -683,19 +781,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -703,6 +799,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -711,7 +815,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -720,26 +824,51 @@ }, "005-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d0f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", - "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x0c", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, + "blocks": [ + { + "rlp": "0xf902d0f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "blockHeader": { + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", + "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", @@ -748,35 +877,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c" }, "blocknumber": "1", "transactions": [ @@ -805,70 +906,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0b93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a0e02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0x95e115526e53a385eff2214313fc39912957e8273c828ec54478c90b92dca693", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1c035f687d79a682e8907a0b6e3b0514d036dc37e59f3eeed3e5c9ff492b2bea" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb93995eff5c8e319e45226276905d73a5eab6ff8dcc27721ff9d0d985deaf724", - "network": "Cancun", + "lastblockhash": "0xe02176ff069225e8a7ed50ed2776c7626883241ff5d9ebaf506b52262e3dae9c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -879,19 +981,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -899,6 +999,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -907,7 +1015,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -916,18 +1024,43 @@ }, "006-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902f2f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f2f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -944,36 +1077,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5" }, "blocknumber": "1", "transactions": [ @@ -1003,70 +1107,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0cefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffa0000", - "blockHash": "0x6a25abffa4937efe0ac37c7069020fc3bec4d6ea9054b775501c6af677b54024", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x637eaf7f1f8cdeff2b3b2c37bfdf2a8c0350bc7d8786205171e05ae652606aad" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "network": "Cancun", + "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1077,19 +1182,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1097,6 +1200,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -1105,7 +1216,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1114,18 +1225,43 @@ }, "007-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902f2f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f2f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1142,36 +1278,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5" }, "blocknumber": "1", "transactions": [ @@ -1201,70 +1308,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0cefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffc0000", - "blockHash": "0x5a944cf3669d271744aa79315799b8a911fe8c981dedc836b135db6a04de1428", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x438ce03a67260dc80c2c246a4d6dfceb46573a6f8015972cd60136e227de0d31" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "network": "Cancun", + "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1275,19 +1383,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1295,6 +1401,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -1303,7 +1417,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1312,18 +1426,43 @@ }, "008-fork=Cancun-parent_excess_blobs=0-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf902f2f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f2f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000080a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1340,36 +1479,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x0", - "blockHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5" }, "blocknumber": "1", "transactions": [ @@ -1399,70 +1509,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0cefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a08863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0x5c9d60d81235af337586167f7eea900b710ae4ee42c12735c67b0f59edaa1d29", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd7b8ae067b3f6cef3a4744ae0c5a4fd63cb5036195f970515877cd6e87c7b370" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcefb6cec141fa78789f8785bfca5345c70351915efe69163dfdefa3f78624015", - "network": "Cancun", + "lastblockhash": "0x8863b2d801533c95e66ee9482330872f8ca76872e4a35eb817152dab28e532a5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1473,19 +1584,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1493,6 +1602,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -1501,7 +1618,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1510,50 +1627,17 @@ }, "009-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a0caf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffa0000", - "blockHash": "0x40ea12784db1ac35646de1d5e2547af36bf254123e640887680890f5d5858da9", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1570,16 +1654,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51" + "hash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x251daf4d10e7317d32d196f677d28f22d364fca98bbba460bf5638bcc222e271" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1590,16 +1733,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1610,7 +1759,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1619,50 +1768,17 @@ }, "010-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a0caf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffc0000", - "blockHash": "0x6ae4a881a6cc1cbab439c550ad26d4bbb5e98c4f5d4e7b1f6df58f435e09cc9f", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1679,16 +1795,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51" + "hash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe458b2300ccdbfee5991c2edf5ae3fd25590bb2fee98c4146df0dba6effddbca" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1699,16 +1874,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1719,7 +1900,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1728,50 +1909,17 @@ }, "011-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a0caf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0x0cfb00334ae0b27d0a5c16f5242f4ee89005135009d2af86af5313de5ae5a775", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1788,16 +1936,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51" + "hash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf9c1511da850a12a552a12e8764e15a9008cecd5b4665d017ecc4dc8422ce0d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1808,16 +2015,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1828,7 +2041,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1837,18 +2050,43 @@ }, "012-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf902d3f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1865,35 +2103,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242" }, "blocknumber": "1", "transactions": [ @@ -1922,70 +2132,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0ae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffa0000", - "blockHash": "0xe7c8c70974426fed82cb47ea0435733b239ae223e0504a7ee384b27638e82611", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x98b58823c8a484f7fd5f3443f2f73ebc7a29296e7c8b8147bbdc76403117e46f" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "network": "Cancun", + "lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1996,19 +2207,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2016,6 +2225,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -2024,7 +2241,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2033,18 +2250,43 @@ }, "013-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf902d3f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2061,35 +2303,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242" }, "blocknumber": "1", "transactions": [ @@ -2118,70 +2332,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0ae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffc0000", - "blockHash": "0x02af09fff1cb395bd18cf276ed37b1d9b20399fff76fbc5d884786c787f478ad", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1524e1b58870ac8817c0912c1595600ec745a047637b6629d382b0d952664440" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "network": "Cancun", + "lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2192,19 +2407,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2212,6 +2425,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -2220,7 +2441,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2229,18 +2450,43 @@ }, "014-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf902d3f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2257,35 +2503,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242" }, "blocknumber": "1", "transactions": [ @@ -2314,70 +2532,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0ae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0x2b316624b635435c29a3f27f7458b360de7e560c8dbcbc2438876378873dc6dd", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb22aa9359891c509d3da3f1fe616caff49fd83f7c27b88eeaee2c2d51f4ac84b" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "network": "Cancun", + "lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2388,19 +2607,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2408,6 +2625,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -2416,7 +2641,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2425,18 +2650,43 @@ }, "015-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf902f5f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2453,36 +2703,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x20000", - "blockHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b" }, "blocknumber": "1", "transactions": [ @@ -2512,70 +2733,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a01740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffa0000", - "blockHash": "0xad56a0329cc465405bbeecb93336a34d4782be1addaa0ee05757bcc5d3c86632", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe79d8035636e9db7915177db23263bb1fe28a6c9519e4e330b28d6d91da66388" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "network": "Cancun", + "lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2586,19 +2808,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2606,6 +2826,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2614,7 +2842,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2623,18 +2851,43 @@ }, "016-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf902f5f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2651,36 +2904,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x20000", - "blockHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b" }, "blocknumber": "1", "transactions": [ @@ -2710,70 +2934,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a01740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffc0000", - "blockHash": "0x93059150e3f38e18e241cf866ec41dbfff2136c8cc4deace070bdae9ed21d0a5", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x137348e9d827671fa088364f0b29913e815f6da7cdfb34ab0a7f348f9b682eca" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "network": "Cancun", + "lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2784,19 +3009,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2804,6 +3027,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -2812,7 +3043,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2821,21 +3052,46 @@ }, "017-fork=Cancun-parent_excess_blobs=1-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902f5f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", - "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, + "blocks": [ + { + "rlp": "0xf902f5f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "blockHeader": { + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", + "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", @@ -2849,36 +3105,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x20000", - "blockHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b" }, "blocknumber": "1", "transactions": [ @@ -2908,70 +3135,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a01740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0x8e15b95824ae42726307a3f78357644f8f76ce1c0bfe569783b1b4aa0903f753", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9cb881bd97b6708160887f26c964321d3a40d6d5dce14b3ba1892922fd196c91" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "network": "Cancun", + "lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2982,19 +3210,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3002,6 +3228,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -3010,7 +3244,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3019,50 +3253,17 @@ }, "018-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a0fbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffa0000", - "blockHash": "0xbfc03717772fe7b00b45455da794b09d0558081475ce6b95ada28b56b519f24d", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3079,16 +3280,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e" + "hash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffa0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x151720d532377171a5d7c7eb65460d2cb0e19d25057a5c94fa5fdcf559ee2abc" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3099,16 +3359,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3119,7 +3385,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3128,50 +3394,17 @@ }, "019-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a0fbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffc0000", - "blockHash": "0x0231f8082489e1ba490c695fd8ef163fa3f0a73ad7a671e7b575df084a0c05d5", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3188,16 +3421,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e" + "hash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffc0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa083d462f70a9618101f74ec6e99b27464e7dcc077c36a2080ab5eab8c15d2ca" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3208,16 +3500,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3228,7 +3526,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3237,50 +3535,17 @@ }, "020-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=0-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d8f90247a0fbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0xbc7e0bfa02850352c537ac8ea7a821988595b151a5225eecdaa984a5e7bd6c2e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3297,16 +3562,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e" + "hash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083040000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfbab12d52c64bea42998b0635368d1c4aa4eb2e3d6475d3d3fc512dbe4ceef1e", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d8f90247a054fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0xfffffffffffe0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4041fa015ad4e9b2ce2f431479d606ec6234d79c270d8019cce253ee3abdd32e" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x54fc4e1ef90ea8eb3f13ad45ad42fd7f9307c0084a9f8c352a7350f355674608", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3317,16 +3641,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3337,7 +3667,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3346,18 +3676,43 @@ }, "021-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709158400-correct:0x0-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3374,35 +3729,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781" }, "blocknumber": "1", "transactions": [ @@ -3431,70 +3758,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0e8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffa0000", - "blockHash": "0xd04a4398fd66cdd1693ada4b1f1c4654f859c5ed5b1ace83f433a1d7da398f3b", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xed3260b4f94f3d2d34ec58df7b15623f917bf37dde231b0cc9a9e38517e28df4" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "network": "Cancun", + "lastblockhash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3505,19 +3833,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3525,6 +3851,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -3533,7 +3867,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3542,18 +3876,43 @@ }, "022-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709289472-correct:0x0-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", - "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, + "blocks": [ + { + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3570,35 +3929,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781" }, "blocknumber": "1", "transactions": [ @@ -3627,70 +3958,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0e8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffc0000", - "blockHash": "0xf956fde7d5802857d9a0d5259131af76665b837fad99c5b092e2db5ee8b4d99c", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x27916b37dfe5b22437e1fe11ba5550227d1078217e51107bc3b5ec1e2fbedd53" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "network": "Cancun", + "lastblockhash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3701,19 +4033,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3721,6 +4051,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -3729,7 +4067,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3738,18 +4076,43 @@ }, "023-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=1-header_excess_blob_gas=18446744073709420544-correct:0x0-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf902d3f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3766,35 +4129,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40000", - "blockHash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781" }, "blocknumber": "1", "transactions": [ @@ -3823,70 +4158,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a0e8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a041f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0xeba0dbe40f924f8c7ea01fa47fe75e02eefe332145bb4d0dd1d4fd49dfe79f59", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe9ef5e1315660d647379956b1ca6ac321819f20b765f9a4bea7c641f9360a23f" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe8aa045d73c978f65d1f9a81868da325ecb73d0fc759cdacec92821cbface530", - "network": "Cancun", + "lastblockhash": "0x41f8a21474e177782a7f068285b53a9a92de05b40da191c944f6ff6d892ec781", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -3897,19 +4233,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -3917,6 +4251,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -3925,7 +4267,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -3934,18 +4276,43 @@ }, "024-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709158400-correct:0x20000-header:0xfffffffffffa0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf902f5f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3962,36 +4329,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc" }, "blocknumber": "1", "transactions": [ @@ -4021,70 +4359,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a01121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffa0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffa0000", - "blockHash": "0xeeb84b4239a69625fdba95313d31251e5122bbd48d552e0164e1b20af8e21051", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3647bbbc02ff7e100754f2fd75b3898ccb07aee8789990ef85f14f5f911e7588" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "network": "Cancun", + "lastblockhash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4095,19 +4434,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4115,6 +4452,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -4123,7 +4468,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -4132,18 +4477,43 @@ }, "025-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709289472-correct:0x20000-header:0xfffffffffffc0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf902f5f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4160,36 +4530,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc" }, "blocknumber": "1", "transactions": [ @@ -4219,70 +4560,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a01121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffc0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffc0000", - "blockHash": "0x90c0a16b8f154dd8ee1581cbab02a4f508fcc8164cd841d5b261a8d7fb96a52e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x120c63037cc27944cf99be4cf7e3cc4b5a840dcc60c226085d61e0b9c6a17b1c" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "network": "Cancun", + "lastblockhash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4293,19 +4635,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4313,6 +4653,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -4321,7 +4669,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -4330,18 +4678,43 @@ }, "026-fork=Cancun-parent_excess_blobs=2-new_blobs=1-parent_blobs=2-header_excess_blob_gas=18446744073709420544-correct:0x20000-header:0xfffffffffffe0000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0a0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" + }, "blocks": [ { - "rlp": "0xf902f5f90242a07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083040000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4358,36 +4731,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x040000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x40000", - "blockHash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc" }, "blocknumber": "1", "transactions": [ @@ -4417,70 +4761,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d8f90247a01121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d8f90247a0e5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000088fffffffffffe0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", "excessBlobGas": "0xfffffffffffe0000", - "blockHash": "0xaa7159a7d3aec3d59f9c1980393f2bc34aad99eaa03f396cffed16bf3092a1cd", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9be3f8f0119a75c43501be2dab131593348351d7369ea1bd63049202858bbf27" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0a0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1121ccc3e24e0329193a7d7424287cabff36c4991e1a56b86cf98485a7754a38", - "network": "Cancun", + "lastblockhash": "0xe5d722b0ca7c67f033da749dea193030248d3d14ba965f685990e8562a10d2bc", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -4491,19 +4836,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -4511,6 +4854,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -4519,7 +4870,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json index 1c78f809d6b..d0a3f3ba748 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_non_multiple_excess_blob_gas.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=4-header_excess_blob_gas_delta=1-correct:0xa0000-header:0xa0001": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332" + }, "blocks": [ { - "rlp": "0xf90337f90242a0b7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083080000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0cbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083080000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48", + "parentHash": "0xcbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,38 +54,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x080000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x92b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x80000", - "blockHash": "0x92b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92" }, "blocknumber": "1", "transactions": [ @@ -92,70 +86,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a092b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0001a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x92b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a051084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0001a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0001", - "blockHash": "0xebc0e52ca29b8d18504766e276f5eb59eecf18c8208446f375c40a23e098a213", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0a0001", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x888935fe8f8d9b54b63ec265c25278030a5a6edd1ba5fb9c0f1a99c8b70668ca" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0e0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x92b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488", - "network": "Cancun", + "lastblockhash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -166,19 +161,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -186,6 +179,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -194,7 +195,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -203,18 +204,43 @@ }, "001-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=4-header_excess_blob_gas_delta=131071-correct:0xa0000-header:0xbffff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332" + }, "blocks": [ { - "rlp": "0xf90337f90242a0b7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083080000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0cbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083080000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48", + "parentHash": "0xcbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -231,38 +257,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x080000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x92b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x80000", - "blockHash": "0x92b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92" }, "blocknumber": "1", "transactions": [ @@ -294,70 +289,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a092b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830bffffa00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x92b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a051084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830bffffa00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xbffff", - "blockHash": "0x080448a28073fa19ff412a33ab0880ac9d25d1b34bef1602265abe7b58a0d571", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x0bffff", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd6481397c07cd3d92a1cb540f6a6fcd42b240ab77eada4d61ed21ff55c9a610e" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0e0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x92b170978e43a1532d08d3826ea4da5521d1aca5360c810c8d83d282999db488", - "network": "Cancun", + "lastblockhash": "0x51084154e8e8b86128acbaa62e16c38a57790f7d648f6b8cab38901937383f92", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -368,19 +364,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -388,6 +382,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -396,7 +398,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -405,18 +407,43 @@ }, "002-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=2-header_excess_blob_gas_delta=-1-correct:0x60000-header:0x5ffff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0b7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083080000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0cbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083080000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48", + "parentHash": "0xcbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -433,36 +460,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x080000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x80000", - "blockHash": "0x746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11c", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389" }, "blocknumber": "1", "transactions": [ @@ -492,70 +490,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008305ffffa00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830200008305ffffa00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x5ffff", - "blockHash": "0x6e1d64ad71fee24334db2acf3cc9932ff6d69001b2b7118b85bca0d833bdbad8", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x05ffff", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc62968c5d3520c661fdb0ad8d22eec817b51ca591a08b03bf11266a3ced90f1e" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0e0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11c", - "network": "Cancun", + "lastblockhash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -566,19 +565,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -586,6 +583,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -594,7 +599,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -603,18 +608,43 @@ }, "003-fork=Cancun-parent_excess_blobs=4-new_blobs=1-parent_blobs=2-header_excess_blob_gas_delta=-131071-correct:0x60000-header:0x40001": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0e0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0b7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083080000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0cbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083080000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48", + "parentHash": "0xcbb252e2e2b028395ec79053e9b55b9d7d1313949f2ac876e7d9082d85d00332", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -631,36 +661,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x080000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x80000", - "blockHash": "0x746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11c", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389" }, "blocknumber": "1", "transactions": [ @@ -690,70 +691,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040001a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a01ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083040001a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x40001", - "blockHash": "0x1318a3baccee4b7fc300705b4dffc8fbf9aa68969dd543e5fc163be1d21100de", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x040001", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8681cf4b0a9a3cd3b9f0c8a5ce7d3820af9e90626d30b0d2ac118bd0db18f14d" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0e0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb7daeff911eb4127f0abda2e2355c3d564516684fd2a3aab6727b8015305be48" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830e0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x746f586932595cd6070fa73325c8977d1cfa4e00437fc5d67553c8ead5bab11c", - "network": "Cancun", + "lastblockhash": "0x1ade598e7950abb5a3e0320270cc3eda6c937abeae599911395b258227d25389", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -764,19 +766,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -784,6 +784,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -792,7 +800,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json index 62c08994ffb..fd096c52283 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas.json @@ -1,50 +1,17 @@ { "000-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=0-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a0caf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xca0b1d10c00e25264998350a8372772e26e9a445f92ffc412f3b3dc7030c31e0", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -61,16 +28,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51" + "hash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083020000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcaf6393e199c8a1c3ec280dab71e55fb95215b6cca7466d7b7bec2f6ebbddc51", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a0eb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7c9c5e52f5ac8e2863ab84062fbb8c899eb33a547faef3d11829a6e42361df2d" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xeb90cafe6c2b51d7d369658031a5b6a0b075385f5e2e5b991ac8c1ebf0fdb47f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -81,16 +107,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -101,7 +133,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -110,18 +142,43 @@ }, "001-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=1-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf902d3f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -138,35 +195,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242" }, "blocknumber": "1", "transactions": [ @@ -195,70 +224,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0ae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a076f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x10175d2524dad882382e5700ae3b0050500556133cee57cd8284c761db8cc816", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9957f93f58e39671569c14219543849a07a96a92f38f86cdbcd8b0f69449d552" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xae0577c322cb7305c3c7c24a75314ac7be82faf4bc658648a697d5dabc90a7f9", - "network": "Cancun", + "lastblockhash": "0x76f9967913b94d82d43b4b5c539cd49fa4aca0c9d543d959375d22970b6ed242", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -269,19 +299,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -289,6 +317,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -297,7 +333,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -306,18 +342,43 @@ }, "002-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=2-correct:0x0-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf902f5f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083020000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -334,36 +395,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x20000", - "blockHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b" }, "blocknumber": "1", "transactions": [ @@ -393,70 +425,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a01740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0db2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x876811c6b2379ebd2f236f0d9024b76988272b435152827c09ecec1b627f07d4", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa2edc9acd7bffeab6a4b3f00d9b2c95308d66d713007e39fe810d813a53cd0f2" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1740d88134019100fb54833cde382c1e7a8d5ce29aac4de333d56e21e36af042", - "network": "Cancun", + "lastblockhash": "0xdb2e5598fb872eeaa6eb6a28838e75d4ffa415b6ffde815d9aac07c0da73c96b", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -467,19 +500,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -487,6 +518,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -495,7 +534,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -504,18 +543,43 @@ }, "003-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=4-correct:0x40000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf90337f90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083020000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083020000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -532,38 +596,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x20000", - "blockHash": "0x5ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52c", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035" }, "blocknumber": "1", "transactions": [ @@ -595,70 +628,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a05ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x619cd8bf09fb94530d8b4a66bcd9e012fba7273879df047e026c11dce6140fd8", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8deecf6fd484f4f96c5d4973082912e4a2f143ca752583eef60df72521003c81" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5ff79d054519afeb2b83bd586cf6330a27a06e38c8455c7999e84cafbb36b52c", - "network": "Cancun", + "lastblockhash": "0x036e708b4528a814835a72fbb148694d07237a3f0db97691da1adeee49420035", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -669,19 +703,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -689,6 +721,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -697,7 +737,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -706,18 +746,43 @@ }, "004-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=5-correct:0x60000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf9035bf90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083020000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083020000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -734,39 +799,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x20000", - "blockHash": "0xc231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9e" }, "blocknumber": "1", "transactions": [ @@ -799,70 +832,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0c231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0a8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x3fccd75ce9dc73c6f6a60d959032a7f95ac3dfbc0a39f9e8fef675fd921ba73a", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf99ebc0b09f18a8b31200fcef85c41f92dbc73df644ca81e86261d7a045cc8c8" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc231baa29287d3289e796d1f673a21b5c1f7d80db49145d96f7115772cc44b05", - "network": "Cancun", + "lastblockhash": "0xa8c295e55b3024f0fb489b72e8451833c2410e1848436a7cc8c5b9f2f66f2c9e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -873,19 +907,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -893,6 +925,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -901,7 +941,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -910,18 +950,43 @@ }, "005-fork=Cancun-new_blobs=1-parent_excess_blobs=1-parent_blobs=6-correct:0x80000-header:0x20000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x080000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca" + }, "blocks": [ { - "rlp": "0xf9037cf90242a05fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083020000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0e156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083020000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", + "parentHash": "0xe156d37ac390aab9442e32e45f2e9196129dd2aad3eeeb1ce7ae7f91ecbee6ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -938,40 +1003,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x020000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x20000", - "blockHash": "0x4ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eb", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448" }, "blocknumber": "1", "transactions": [ @@ -1005,70 +1037,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a04ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083020000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x20000", - "blockHash": "0x41a79902ca41b2752e956e553617ae9417d4f102cd1d7c4a68273540227b927b", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x020000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc22e29fafd25d5c367e3ff074f522c77cfc495af6671a72e6988cf7bcc0e63bb" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x080000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5fb61a77ab72b6eb61fc8eae1c1a79db6c28a5c0be8133fad26f9bc7678cb813" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083080000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4ed09e2f4c3486b418a61e7de31e4f361f04eaa9acd79b1fca8a45cc6adde3eb", - "network": "Cancun", + "lastblockhash": "0x185b79ac0612932a76f64bbaa6a0e4edc5c487fb3c17563e6d50f13366a84448", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1079,19 +1112,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1099,6 +1130,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -1107,7 +1146,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1116,50 +1155,17 @@ }, "006-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=0-correct:0x0-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d3f90242a01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0xc44db0ddee05ba87d9d347988821302b7145face55b8186f8684e6720ac06031", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1176,16 +1182,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d3f90242a0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x66fb11e49ba8e9a947ccf328dbeb2df52f3f9859a456370058ccae1f24b6e03b" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1196,16 +1261,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1216,7 +1287,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1225,18 +1296,43 @@ }, "007-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=1-correct:0x20000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf902d3f90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1253,35 +1349,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x1c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94" }, "blocknumber": "1", "transactions": [ @@ -1310,70 +1378,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a01c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0d6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x90686b20e94ffc4daedfbad6f963a9cffa1dbf107a113661f87e921ef915e753", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x094cfcffdf918126ebffd53fe9915620e48f71ef64cd18c0ba8dbe6635dfbba4" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1c0b31a8e4854a38a11a9cb7ef8cde57815cbff93f16e11ba07013a43f044f63", - "network": "Cancun", + "lastblockhash": "0xd6f1e3eff07c1bdd30620d96f20fd371725bb5c466a82cd4f8a0213f1fe6ce94", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1384,19 +1453,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1404,6 +1471,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -1412,7 +1487,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1421,18 +1496,43 @@ }, "008-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=2-correct:0x40000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf902f5f90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083060000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218304000083060000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1446,39 +1546,10 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x040000", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0x60000", - "blockHash": "0xe4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18a", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "blobGasUsed": "0x040000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8" }, "blocknumber": "1", "transactions": [ @@ -1508,70 +1579,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0e4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0d9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xd9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x9dd535a4b077d088abaca5fef532ddeaf56c35b5dd828d41bb859440057051bd", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x86bb8646a4c26823a6a8f1cf56cb78509501cb206ca3ea7cbee1fd7005ebb6d6" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe4401f57105302773bd78c3d9dafb46b3648d48d0df35a258d6ca81da413d18a", - "network": "Cancun", + "lastblockhash": "0xd9a0dee0d377b5eb687005c5a96a63e7e35b7b7d54d585aad6c8e1b69332d1e8", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1582,19 +1654,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1602,6 +1672,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -1610,7 +1688,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1619,18 +1697,43 @@ }, "009-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=4-correct:0x80000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf90337f90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083060000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000083060000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1647,38 +1750,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x60000", - "blockHash": "0xb35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fd", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023f" }, "blocknumber": "1", "transactions": [ @@ -1710,70 +1782,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0b35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fd", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a05a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x22a9f4ebd0f6ccfbf51f9c2df92792d444b36b3e1f6b13f8ce9b150904bccf7a", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9506ae1d339b490315a40b5d56abcbcf541fb870842dae738c22f670edf4ec8b" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb35a6e66dd9ea768861b09ebab02007fd742b652ebfdeeda247d0e16353df9fd", - "network": "Cancun", + "lastblockhash": "0x5a7756b533f4334dc9ef85b0b2293dbf75f86de61a8a34a7430dacb7bf05023f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1784,19 +1857,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1804,6 +1875,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -1812,7 +1891,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1821,18 +1900,43 @@ }, "010-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=5-correct:0xa0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf9035bf90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083060000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000083060000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1849,39 +1953,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x60000", - "blockHash": "0x809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x20e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944e" }, "blocknumber": "1", "transactions": [ @@ -1914,70 +1986,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a020e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x20e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0x574e97bc7c07392116615c19d44268a5943b400f32ae51becab1db7f29e388f3", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfe69cf54660058df13fda3a799b90fcf37623edbf8dd14ed31e59951b6de332b" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x809760e6d08d7aa32c1f22c756129f1c6dbfe5ca3f1dadbe2607fee7f6fd79a3", - "network": "Cancun", + "lastblockhash": "0x20e0c9d9a8f852a1540167221184732ac0ab689ea46bb7c01fca6bfd7668944e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1988,19 +2061,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2008,6 +2079,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -2016,7 +2095,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2025,18 +2104,43 @@ }, "011-fork=Cancun-new_blobs=1-parent_excess_blobs=3-parent_blobs=6-correct:0xc0000-header:0x60000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x0c0000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a" + }, "blocks": [ { - "rlp": "0xf9037cf90242a01ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0a13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", + "parentHash": "0xa13e7aa1127b2989d761c55e13023164edcf2eba77c968fd8835c8c3d63c2c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2053,40 +2157,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x60000", - "blockHash": "0x851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85" }, "blocknumber": "1", "transactions": [ @@ -2120,70 +2191,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d3f90242a0851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d3f90242a0e88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000083060000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xe88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x60000", - "blockHash": "0xac873e844e00c168a7a3f06fa7fc516eb64e17a356cb21c23e49028397c3377d", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x77ac223e52df1d5f4f02cd3cd182f21c5003dd2e52e79c30ef875a9ac1d0ee85" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excessBlobGas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x0c0000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ce7ff3e933d61fba43272869d466a29165e885a83db65342dd1169f3faa3d7a" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830c0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x851eae7039b9a99ebd3dc26bd62798dcd4ac907d0125d71532709a83d313dbf6", - "network": "Cancun", + "lastblockhash": "0xe88920f06d350b88d59f3247bbbd43bc6d394292105caec59dcee7c041950a85", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2194,19 +2266,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2214,6 +2284,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -2222,7 +2300,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json index a9ac4013c8e..b8739ae16bc 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_static_excess_blob_gas_from_zero_on_blobs_above_target.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=4-header_excess_blob_gas=0-correct:0x20000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90334f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90334f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218308000080a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,38 +54,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0x0", - "blockHash": "0x434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95" }, "blocknumber": "1", "transactions": [ @@ -92,70 +86,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa0434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa0105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xa7a4ae1cec5a190a31040b03ef2e5c79d1c2cba39cd8d5680522a296c3a6a5ae", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xff5bb957ccb75a6ed36fc826460614bc26f45f1289a363686a07cb311a441ed1" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x434b0deb194ff3652ddaad20b7fd38e3e9a08c740f8d140e1472dd1861e4f2d1", - "network": "Cancun", + "lastblockhash": "0x105d6a86b391b112ba985b0d66b13af26782284626c970c27e5218229e17dc95", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -166,19 +161,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -186,6 +179,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -194,7 +195,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -203,18 +204,43 @@ }, "001-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=5-header_excess_blob_gas=0-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90358f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000080a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf90358f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a000080a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -231,39 +257,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6ba" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0x0", - "blockHash": "0xaa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6ba", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393d" }, "blocknumber": "1", "transactions": [ @@ -296,70 +290,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa0aa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6baa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xaa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6ba", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa01311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x768f6dcff42271aa922dbbf0015e585cb2f6ab4cd5aa60b4547293f9d0924f50", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb5b598f5a6c74524df90cbd5ce87506302e3d24e7edb2f11b6889164894169fb" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xaa4265c653639c3097f07c7a6de14fd1535e2a04b10e4712ba6b702b43adb6ba", - "network": "Cancun", + "lastblockhash": "0x1311c331d797c47d6e328fe612ed2290bd5fb28c62b870690c56d30085bb393d", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -370,19 +365,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -390,6 +383,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -398,7 +399,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -407,18 +408,43 @@ }, "002-fork=Cancun-new_blobs=1-parent_excess_blobs=0-parent_blobs=6-header_excess_blob_gas=0-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x060000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a" + }, "blocks": [ { - "rlp": "0xf90379f9023fa01e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf90379f9023fa0510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", + "parentHash": "0x510f1c46aa45b5f4941c2b9038fc55a7d9df6eb18429c5da2b7fe949c959e66a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -435,40 +461,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2db" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x6b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2db", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71" }, "blocknumber": "1", "transactions": [ @@ -502,70 +495,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa06b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2dba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2db", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa0ec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x992ccece04ed65acf09265312f67554ae4305ec83b63b603ce504182ddfab272", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f827eebbf7952580e8a0bc8027a70f2b4d36e85fce68cec81a038db51082e27" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x060000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1e97cb3e83ed5f6aa2beaf54ba763110f3166183482d34a77e32064ee0ea10f0" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083060000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6b6893ec78e0b0fcb9ea153ddfaa906f69c9608c5466bae7fc51b62adf3da2db", - "network": "Cancun", + "lastblockhash": "0xec936ff6f19523f22bf047d24e0b35a61b5ad3351ad4262a180615f4902ece71", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -576,19 +570,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -596,6 +588,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -604,7 +604,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json index 56ff43c4f84..35c64d7d97d 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas/invalid_zero_excess_blob_gas_in_header.json @@ -1,48 +1,17 @@ { "000-fork=Cancun-parent_blobs=0-new_blobs=0-header_excess_blob_gas=0-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902aaf9023ca0ee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x1dc176564c6fe70d267bdaf39a2884ba1b76bfc7b53eeb830326d6e9bbdc33d5", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -59,16 +28,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f" + "hash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xee95ee7ab455197857cf8e446e53424a4d4a75c7123c9722831c9abebeea539f", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902aaf9023ca07d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8213e2ac114e758a9273a79e81c2a474d4f0e511e479ac449fffbcfc1f92409c" + }, + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x7d74f162e144609e5911d1d2287ba394b141c7d460378f804cd527bb55c86489", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -79,16 +103,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -99,7 +129,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -108,50 +138,17 @@ }, "001-fork=Cancun-parent_blobs=0-new_blobs=1-header_excess_blob_gas=0-correct:0x40000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf902d0f9023fa07cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042d7955bfb902d3519adb3d2841719d906794830c41e16f0d6b8549c7ced083", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xa333e100fa156d74ef762116edf732b33e9b248e0d452254ac58c8edf299728e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -168,16 +165,75 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675" + "hash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2" }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180830a0000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7cf0d080a47b2c6691941c060536dc68862076ef895c08c1f06f1dfd3af95675", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf902d0f9023fa05ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8610c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0c2e33269bc55d3b8f4be9389c14fefd5ef2f48a0fef48af770ff0f9b4af7d8c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x03e22ea02241c69c4c2be271e559c96df35ed94bd5bb1dba70600f7708e9d5ad" + }, + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x5ac29ba18d45ba3b7706bc36fbc2fe0216b96bc84c5f980e01888fe8520343b2", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -188,16 +244,22 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -208,7 +270,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -217,18 +279,43 @@ }, "002-fork=Cancun-parent_blobs=1-new_blobs=0-header_excess_blob_gas=0-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa" + }, "blocks": [ { - "rlp": "0xf902d3f90242a0fb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa047de8a7f96fc91c87814a6ed2a227019fbc8561518661ed192c69af9a33edb22a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a7d31943db1e37b3e925db3d6a2828c6d2457e4a0300f444b881f9672a02c6baa0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", + "parentHash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x47de8a7f96fc91c87814a6ed2a227019fbc8561518661ed192c69af9a33edb22", + "stateRoot": "0xa7d31943db1e37b3e925db3d6a2828c6d2457e4a0300f444b881f9672a02c6ba", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -245,35 +332,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x34b3797fc304a618a0f14900ef527b2ede0bef6560a75847a1dc99d74689397e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x47de8a7f96fc91c87814a6ed2a227019fbc8561518661ed192c69af9a33edb22", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x34b3797fc304a618a0f14900ef527b2ede0bef6560a75847a1dc99d74689397e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5" }, "blocknumber": "1", "transactions": [ @@ -302,68 +361,67 @@ "withdrawals": [] }, { - "rlp": "0xf902aaf9023ca034b3797fc304a618a0f14900ef527b2ede0bef6560a75847a1dc99d74689397ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x34b3797fc304a618a0f14900ef527b2ede0bef6560a75847a1dc99d74689397e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902aaf9023ca0663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x723573195717c167280a1c0af139f354cf0eed16ab41d31b73734f437302b647", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8a022a7364c783897e1a2b9662fac648cba640b8750a5043d105849700ec356c" }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x34b3797fc304a618a0f14900ef527b2ede0bef6560a75847a1dc99d74689397e", - "network": "Cancun", + "lastblockhash": "0x663441f195772c42e92e1823655cdcf68eb5568172108bf1612f1da3682590e5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -374,19 +432,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -394,6 +450,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -402,7 +466,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -411,18 +475,43 @@ }, "003-fork=Cancun-parent_blobs=1-new_blobs=1-header_excess_blob_gas=0-correct:0x60000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902d3f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa052947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212cea0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", + "rlp": "0xf902d3f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56a0bafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183020000830a0000a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", + "stateRoot": "0x2566398aa5a350a89336b781767983a9b84e1934a1264060db1193e093241c56", "transactionsTrie": "0xbafb19dfdc87407fe48171b0b135decd488216334dbddc820a349fe5c06c72d0", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -439,35 +528,7 @@ "blobGasUsed": "0x020000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x52947f50bbacf9f2e426081b65c604f4a607db00a747b36f0aeb449d8d1212ce", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0xa0000", - "blockHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000002000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0688af3fc29bca003cd32b61d453f4eaed38b3f1d263b1c851adba7b86b16c967a079cea10f855715f0d78cf783bd70def27b0583683165a3eba750067a17590452" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69" }, "blocknumber": "1", "transactions": [ @@ -496,70 +557,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa093de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc86257b6e11e57c4c5643c94d10568e80435d17ff18159fc0bb23f556a624618", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa0c1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efffa03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x327872943890852da941913852e3030050dac3b5e20fd3b51d09c2497b06efff", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x733e5b3127884d0519797dc81a571ddbdce2fec52d38f99fd44f1524f5786044", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x339669f618eab0fed6b09bf2a4db6e0bcb9e0150914f213088c3f803f6d54223" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x93de7587bf098b5290d40890c2a38d6ecc4a52a8737640017d4e4ec96fcea843", - "network": "Cancun", + "lastblockhash": "0xc1628b13a83bf129ac4c1613148bb8acf4feb86959e0dcfd51c24e1dbff8db69", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -570,19 +632,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -590,6 +650,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffffbc1c7", @@ -598,7 +666,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -607,18 +675,43 @@ }, "004-fork=Cancun-parent_blobs=2-new_blobs=0-header_excess_blob_gas=0-correct:0x80000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0fb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0db7b2d378feef8862b1425f7332c0b669d4100ad6b606872a4569657b8458edea033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa006c88a43c75fd8635834737a5b1b66b9bbe76c8a27ee8f848c72ba11cffb02efa033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", + "parentHash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdb7b2d378feef8862b1425f7332c0b669d4100ad6b606872a4569657b8458ede", + "stateRoot": "0x06c88a43c75fd8635834737a5b1b66b9bbe76c8a27ee8f848c72ba11cffb02ef", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -635,36 +728,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb63fe90888745c3fbf10cd1d56031d56553b26762a97a89dde20ec5aeb50aa36" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdb7b2d378feef8862b1425f7332c0b669d4100ad6b606872a4569657b8458ede", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xa0000", - "blockHash": "0xb63fe90888745c3fbf10cd1d56031d56553b26762a97a89dde20ec5aeb50aa36", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x7a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662" }, "blocknumber": "1", "transactions": [ @@ -694,68 +758,67 @@ "withdrawals": [] }, { - "rlp": "0xf902aaf9023ca0b63fe90888745c3fbf10cd1d56031d56553b26762a97a89dde20ec5aeb50aa36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb63fe90888745c3fbf10cd1d56031d56553b26762a97a89dde20ec5aeb50aa36", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902aaf9023ca07a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb581b5d21a261b4658d8d43d7b071c1e6cacd2a771369a27e16fc8cc93a6866e", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xca8acafe08197348b76db1b4eb4915685be1365d1ccb5a58679823d0d1064d8e" }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb63fe90888745c3fbf10cd1d56031d56553b26762a97a89dde20ec5aeb50aa36", - "network": "Cancun", + "lastblockhash": "0x7a97f3322acabd8da87152ede1d82d47fa4108cfc9a50df3d77d5ac773599662", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -766,19 +829,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -786,6 +847,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -794,7 +863,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -803,18 +872,43 @@ }, "005-fork=Cancun-parent_blobs=2-new_blobs=1-header_excess_blob_gas=0-correct:0x80000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf902f5f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", + "rlp": "0xf902f5f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243a033db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183040000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8acb8aa03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", + "stateRoot": "0xe38429c2aa4ec19048b3f75a0763c533b1e60f5031b0b024d5cba5c19006c243", "transactionsTrie": "0x33db9218abb6f04c1c6e03afb2fff917b23d3fc3baef61f87eb6210a3f9a4338", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -831,36 +925,7 @@ "blobGasUsed": "0x040000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1120fc13f877f4a70ead35de13cb033c604c7b1bb880a6b27cf7b69e6c4e614", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x40000", - "excessBlobGas": "0xa0000", - "blockHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "transactions": [ - "0x03f8a7018080078252089400000000000000000000000000000000000002000180c001f842a00100000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000180a05062ae12b96e7453b881e67ea6370d4e1a7c1fe27076968f101a9841e784e4bba06b2a8197354f2d22541e44b49812be22ed558dfe69e3bf33b37cc710c55fbd4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93" }, "blocknumber": "1", "transactions": [ @@ -890,70 +955,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa0c23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ada0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x21655cb28212c2b8bb5051ee3dfeb487f2a5f575609490e278c66c14b553f2ad", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa0b3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf2c2d2a879721ee48d01addad948221b7169c780470f8ae5ed5569ca045cc5e4", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x4db627e3de178a5478c8f805ee8ccee09acdf7ba7bba4cd20c9077087367b462", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x59d9597c7fcea6563904225aa6cc46c44fe4c12f7f254da2f671802443332417" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc23d4b5e7043c5a87f5e7a7bab3dac80dd6571fc1b11baef782d0d38c9c1e7ef", - "network": "Cancun", + "lastblockhash": "0xb3d1505f6e0dfecc33190a216655309008fea8d105cf90e8a1822fde05ae4e93", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -964,19 +1030,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -984,6 +1048,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff9c1c7", @@ -992,7 +1064,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1001,18 +1073,43 @@ }, "006-fork=Cancun-parent_blobs=3-new_blobs=0-header_excess_blob_gas=0-correct:0xa0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa" + }, "blocks": [ { - "rlp": "0xf90316f90242a0fb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00764a316724582c05c85082f7856364fd46ec7344f5cce1f2c8a8e61dbcd04fea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a0301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04ad884b477f26ffe7915a790637e33f46e4b6c86638f6fb33159097948c2fea4a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", + "parentHash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0764a316724582c05c85082f7856364fd46ec7344f5cce1f2c8a8e61dbcd04fe", + "stateRoot": "0x4ad884b477f26ffe7915a790637e33f46e4b6c86638f6fb33159097948c2fea4", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1029,37 +1126,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb58a400a1856eb25ad87b9bf7fcbefc3eca9bf0bdabe2e5a733594aa8d5369a8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0764a316724582c05c85082f7856364fd46ec7344f5cce1f2c8a8e61dbcd04fe", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xa0000", - "blockHash": "0xb58a400a1856eb25ad87b9bf7fcbefc3eca9bf0bdabe2e5a733594aa8d5369a8", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x22d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273e" }, "blocknumber": "1", "transactions": [ @@ -1090,68 +1157,67 @@ "withdrawals": [] }, { - "rlp": "0xf902aaf9023ca0b58a400a1856eb25ad87b9bf7fcbefc3eca9bf0bdabe2e5a733594aa8d5369a8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb58a400a1856eb25ad87b9bf7fcbefc3eca9bf0bdabe2e5a733594aa8d5369a8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902aaf9023ca022d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x22d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf172e306fa29f1d4828b601222044cc2fdc71d3b308aca51ab9862fc23de0417", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8ac1d9edc3a003f16d40d08b0a178cd4984df3b18a221d219c0beff724eddf74" }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb58a400a1856eb25ad87b9bf7fcbefc3eca9bf0bdabe2e5a733594aa8d5369a8", - "network": "Cancun", + "lastblockhash": "0x22d0eafa826e868b930a48d4f1eb2e5b6d542ee9cf063d65a86cff0e92e1273e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1162,19 +1228,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1182,6 +1246,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -1190,7 +1262,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -1199,18 +1271,43 @@ }, "007-fork=Cancun-parent_blobs=3-new_blobs=1-header_excess_blob_gas=0-correct:0xa0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90316f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4ea0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", + "rlp": "0xf90316f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892a0a7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183060000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8cdb8cb03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bdc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", + "stateRoot": "0xd56f4a04e92687695da70937df28dbc74e0e00645eb3781d5a4bce2dbb355892", "transactionsTrie": "0xa7e6a319bf4d17ce7e9a42548f61b6583aa4f1f29afb0e1c297f643961889150", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1227,37 +1324,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5224bd0c6860493906fd0f430776d0069001d0a6009b946ffef81835181d0e4e", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0xa0000", - "blockHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "transactions": [ - "0x03f8c8018080078252089400000000000000000000000000000000000002000180c001f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a004944bef9d23d260a1416045f41e96ceffd9571b9e67c056ba3c9f2efab99a1ca059149441e495c7d3d539a66d48f17feec6b4854d35606d1061427901a09462bd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3" }, "blocknumber": "1", "transactions": [ @@ -1288,70 +1355,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa005657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059b4e08ac2881f27a5f8035931b6b36cd1e6b4af182b773a380dc973b1180f4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa0a9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586ca03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315ff359a85f1ae1b78bbbec41f085a84846c5adaff45f3d3884763ecf2f586c", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x1aa4e2e1fc0ba55b1366cad008a49c48347c4cb0a5a8a0dee319b1023f4b14f5", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x423645d83ab41441c51302853949dbb8d715d9fa7dfb18e68c2ed520a6d33d57" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x05657a3f825c2bbd647b1fa56c54f4e9441fe16d3b9c49fccd66c0a02bb6df56", - "network": "Cancun", + "lastblockhash": "0xa9b390ae7619916e5b1996613757356de25206626f06665d90888f5f9ca685e3", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1362,19 +1430,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1382,6 +1448,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff7c1c7", @@ -1390,7 +1464,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1399,66 +1473,60 @@ }, "008-fork=Cancun-parent_blobs=4-new_blobs=0-header_excess_blob_gas=0-correct:0xc0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90337f90242a0fb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa017a0263f97c50d1798199b985b77797c6dc64d7275ba1ad80e96df24b48065c9a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", - "blockHeader": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x17a0263f97c50d1798199b985b77797c6dc64d7275ba1ad80e96df24b48065c9", - "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", - "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa" + }, + "blocks": [ + { + "rlp": "0xf90337f90242a0301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06001b958f879314485b6526bde9526958d29779993d2b1db0ec148ea0f2a2c4ca0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "blockHeader": { + "parentHash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6001b958f879314485b6526bde9526958d29779993d2b1db0ec148ea0f2a2c4c", + "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", + "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x080000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2a92b31e2058a53bca8cb0092ba4dd8151702796dfe69499901b29a7cca66203" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x17a0263f97c50d1798199b985b77797c6dc64d7275ba1ad80e96df24b48065c9", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xa0000", - "blockHash": "0x2a92b31e2058a53bca8cb0092ba4dd8151702796dfe69499901b29a7cca66203", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6a" }, "blocknumber": "1", "transactions": [ @@ -1490,68 +1558,67 @@ "withdrawals": [] }, { - "rlp": "0xf902aaf9023ca02a92b31e2058a53bca8cb0092ba4dd8151702796dfe69499901b29a7cca66203a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2a92b31e2058a53bca8cb0092ba4dd8151702796dfe69499901b29a7cca66203", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902aaf9023ca0cfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xcfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xef0b1c9311e8068d52f06e3b20f2aefe3bd3d152da712cfab6c20c933fc51cc9", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7ce855d3c80a3df68f543800bde87a5bba1e04d7ae7e36132efb869633c45928" }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2a92b31e2058a53bca8cb0092ba4dd8151702796dfe69499901b29a7cca66203", - "network": "Cancun", + "lastblockhash": "0xcfe9dc75fdf92e7c09c591614c1d84c59ade46306385e5dc9d625996f1cb8a6a", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1562,19 +1629,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1582,6 +1647,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -1590,7 +1663,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -1599,18 +1672,43 @@ }, "009-fork=Cancun-parent_blobs=4-new_blobs=1-header_excess_blob_gas=0-correct:0xc0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf90337f90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", + "rlp": "0xf90337f90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08a0dc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42183080000830a0000a00000000000000000000000000000000000000000000000000000000000000000f8eeb8ec03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448cc0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", + "stateRoot": "0x36d00eb989ec6d69cbe69dfc10b9468c76f07356b81870e9359255911ea14d08", "transactionsTrie": "0xdc387fc6ef9e3eb53baa85df89a1f9b91a4a9ab472ee7e928b4b7fdc06dfa5d1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1627,38 +1725,7 @@ "blobGasUsed": "0x080000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55488df08790731863bf337a5bcf06f50f461ba30975f27ca95420b471ebf4e4", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x80000", - "excessBlobGas": "0xa0000", - "blockHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "transactions": [ - "0x03f8e9018080078252089400000000000000000000000000000000000002000180c001f884a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a0010000000000000000000000000000000000000000000000000000000000000301a09d3b9819ff46b57cd1b81d723626c8c7ef3ca97f4d2f964f57fc8516123ad7d7a026e752e7b657042b3ba543dc8a515772819deed8e646634f3625191b51ef448c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de" }, "blocknumber": "1", "transactions": [ @@ -1690,70 +1757,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa02aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79eca0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x13b4a7c6bf14dc8226e345ecd3a39f28e9b0ae8d8ef93494d6d55c1a051e79ec", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa01dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02dea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf523a2745cbc153c456247563e070df970d2aa90787765b055dcf5e2b6f83a92", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0x2704c6160693aef2280aaa6a968945bf4fe92f870180c6edfb2060098a4d4cdd", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6516b31d5cae2af036db6940221b03f86d33ed67e5212dbc3717325244f9a736" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2aa54632b0c2e0b0796a934fdc4bed87e4664aa55cb14d4b1922431e58b7744b", - "network": "Cancun", + "lastblockhash": "0x1dcf918975d43b00527a2b1256e2f4361558d273c45e8761b33429ea9f2c02de", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1764,19 +1832,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1784,6 +1850,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff5c1c7", @@ -1792,7 +1866,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -1801,18 +1875,43 @@ }, "010-fork=Cancun-parent_blobs=5-new_blobs=0-header_excess_blob_gas=0-correct:0xe0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa" + }, "blocks": [ { - "rlp": "0xf9035bf90242a0fb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa031587500789965c902e036790645e212610dcfb5eca6bd1461cd8c75691c2efaa0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f270d4c0d800b1077a33c4a44753f316770307b6354572aee53e1c493f8102dba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", + "parentHash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x31587500789965c902e036790645e212610dcfb5eca6bd1461cd8c75691c2efa", + "stateRoot": "0xf270d4c0d800b1077a33c4a44753f316770307b6354572aee53e1c493f8102db", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1829,39 +1928,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x53e8149ac26ec9c03f25e627947769a8e21a9c5ef26edf4ff05bee228e21223c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x31587500789965c902e036790645e212610dcfb5eca6bd1461cd8c75691c2efa", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x53e8149ac26ec9c03f25e627947769a8e21a9c5ef26edf4ff05bee228e21223c", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969" }, "blocknumber": "1", "transactions": [ @@ -1894,68 +1961,67 @@ "withdrawals": [] }, { - "rlp": "0xf902aaf9023ca053e8149ac26ec9c03f25e627947769a8e21a9c5ef26edf4ff05bee228e21223ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x53e8149ac26ec9c03f25e627947769a8e21a9c5ef26edf4ff05bee228e21223c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902aaf9023ca02562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x2562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x14ae3b144eb607654ffd5b458125ee5f0a1adfab19e8dd498310773af300a0e7", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xba1876e43c6c6b1919ebc97e1220c35522d5dff2abd16945aa9e42e896972dfe" }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x53e8149ac26ec9c03f25e627947769a8e21a9c5ef26edf4ff05bee228e21223c", - "network": "Cancun", + "lastblockhash": "0x2562be0dfd3ba3e4f57ac291078c1919af284c560d8487b6eb21f2250d1e6969", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -1966,19 +2032,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -1986,6 +2050,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -1994,7 +2066,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -2003,18 +2075,43 @@ }, "011-fork=Cancun-parent_blobs=5-new_blobs=1-header_excess_blob_gas=0-correct:0xe0000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9035bf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291a0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", + "rlp": "0xf9035bf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbba0a277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830a0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90111b9010e03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", + "stateRoot": "0xd44da1d868ffb4d7ed1d68425969a51622851c75e33ce18598d75df8a5e19fbb", "transactionsTrie": "0xa277f00f202908b89d77a1b675545b95c323ecf347c4fb0f32288a5a592954b1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2031,39 +2128,7 @@ "blobGasUsed": "0x0a0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x811c9ede4246036f6f785f9b7c790113cece97871e7056f36de79c1061c14291", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xa0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "transactions": [ - "0x03f9010a018080078252089400000000000000000000000000000000000002000180c001f8a5a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a0010000000000000000000000000000000000000000000000000000000000000401a053543ed04d2ab4c5accf113297b9a3a9d1a6af99ea8521874e0e08183af0e936a0754ffbdac9c7d06c5312318d560986cb29a81d435337c1e97b7e39bc8496ece8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e" }, "blocknumber": "1", "transactions": [ @@ -2096,70 +2161,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa021397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82aa0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0629e696e06b2304346d8992ccb516a43ef23dd567b3d25649d71f75b92e82a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa04f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdeb9fe50269ba7400a2fc8c3b417a17362777a28fb560ba885503c0288bc1d0", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xb05272d8bd605814621148e28f9c76a2e0ada237a47da247d0701a91eec01f05", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x11d1629f71659470dc8a9190a057b7980523062a985ede6c601f3fe6440d94c4" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x21397bda94aadc4b7b815dfea3a684b85d48d4b16d650e32b877bb0bdaec6282", - "network": "Cancun", + "lastblockhash": "0x4f51ccb206e78b64fb7f6152cd4009981a775e4ad7d5cd4d15a3ff86bf43525e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2170,19 +2236,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2190,6 +2254,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff3c1c7", @@ -2198,7 +2270,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } @@ -2207,18 +2279,43 @@ }, "012-fork=Cancun-parent_blobs=6-new_blobs=0-header_excess_blob_gas=0-correct:0x100000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa916a7e35ed4d06aea9ab0012e09f56a9811ac1ef31a0b5396d7614cd014f750", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa" + }, "blocks": [ { - "rlp": "0xf9037cf90242a0fb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087b8c8b5f74ce52b72ac8d40b60f0062fb7f7d1a6e4260ca23c2b997d340a5e9a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eed3abec155c7f6f2dcb9c1d58c6b9eff3485f21cca5e3aaa75da596ea8503fca0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", + "parentHash": "0x301f401ef03d6f967127b675bad35e3beae59157066571ca7b7ef67d54f66aaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x87b8c8b5f74ce52b72ac8d40b60f0062fb7f7d1a6e4260ca23c2b997d340a5e9", + "stateRoot": "0xeed3abec155c7f6f2dcb9c1d58c6b9eff3485f21cca5e3aaa75da596ea8503fc", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2235,40 +2332,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3a2918829c9135cf26b9dd729fcaf036a48e92c32105ed5c3ccfc79c178d9bf3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x87b8c8b5f74ce52b72ac8d40b60f0062fb7f7d1a6e4260ca23c2b997d340a5e9", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x3a2918829c9135cf26b9dd729fcaf036a48e92c32105ed5c3ccfc79c178d9bf3", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x15b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5" }, "blocknumber": "1", "transactions": [ @@ -2302,68 +2366,67 @@ "withdrawals": [] }, { - "rlp": "0xf902aaf9023ca03a2918829c9135cf26b9dd729fcaf036a48e92c32105ed5c3ccfc79c178d9bf3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a03d5dee1e8e36d7e983d393851b8f29dd1909485ee4383db5cdbf455b5371e1d0a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3a2918829c9135cf26b9dd729fcaf036a48e92c32105ed5c3ccfc79c178d9bf3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902aaf9023ca015b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a0e06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041a0167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f867b86502f8620180800782afc89400000000000000000000000000000000000001000180c080a0fb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663a059001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x15b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0xe06fbc15243fb14dc4e3a9918ecdc38e11b6d831d9625855e22273ae2e950041", + "receiptTrie": "0x167497e0db677e533dde7e46c3f485c45662ceb46281d7073354e80b5a40f454", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xff15e894fd7e6b9859d95d60168f068391d0639690ae06fcadd5611da4664bb1", - "transactions": [ - "0x02f862018080078252089400000000000000000000000000000000000001000180c080a0fddefcfd4540a3975da8fd89738c3b2d1cc71b1ac62431c20c628048102fa61fa0725604d4fb8c4b5abdf8e56c28d8ba4539d099415e0a174474c0a27aae7fe5c3" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc4589f8b3eda4f4e1268176cb7878788e29413049c8d76fbb6e66d17403c7591" }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "v": "0x00", + "r": "0xfb034933cf8f6260e96360e3db5a72e798211aff9a6021ef89921605c30c1663", + "s": "0x59001a83d7dd32709633198963a5586fd74586f91b0a6479de8157be7833cf8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaf5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfb1bb261bbececb5888f8ee56de23ff6f667017f95de75ed79191483c55b3fdb" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af5ae2259ab3704b85e050b28046cdf7770df5a22e65963cf168d1ccad2e1448a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3a2918829c9135cf26b9dd729fcaf036a48e92c32105ed5c3ccfc79c178d9bf3", - "network": "Cancun", + "lastblockhash": "0x15b40c5e5cc15f42e8b3535867a8fefd0cb835878224211521d9bd5aa2534df5", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2374,19 +2437,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2394,6 +2455,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -2402,7 +2471,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x023e39", + "balance": "0x04ce79", "code": "0x", "storage": {} } @@ -2411,18 +2480,43 @@ }, "013-fork=Cancun-parent_blobs=6-new_blobs=1-header_excess_blob_gas=0-correct:0x100000-header:0x0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x006c7e5144fc8cd13e5316aafabaecb815a400428e03de78d93d03fb797e5078", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x100000", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24" + }, "blocks": [ { - "rlp": "0xf9037cf90242a0f5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edda0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", + "rlp": "0xf9037cf90242a0519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5a0373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008252080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830a0000a00000000000000000000000000000000000000000000000000000000000000000f90132b9012f03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3c0c0", "blockHeader": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", + "parentHash": "0x519be623be5fe8fe39b63ad8eb6dda78bdd291729fef01d8306032aa7b26de24", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", + "stateRoot": "0xde9b9cd80d7720583f74115aaa38ebcb66ccccb791452ecb2c265a7acd0fbae5", "transactionsTrie": "0x373d7b01af589d52e2f048397a9c9cab50f15f4a4448fd9bb93c01567dd73de9", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2439,40 +2533,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2cb91742d96f1acc5b2ea067e5e9a12badc5979a1cd8cf7b37552c70f970edd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xa0000", - "blockHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "transactions": [ - "0x03f9012b018080078252089400000000000000000000000000000000000002000180c001f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07de2acc384244ae903c1a2821287cd72f11a1728b928913e7aea64f590d03873a055bbcad901588ceb485098d31e30650ce15d22bfdfd3725e4ce953576182d7d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e" }, "blocknumber": "1", "transactions": [ @@ -2506,70 +2567,71 @@ "withdrawals": [] }, { - "rlp": "0xf902d0f9023fa00d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30a0da80a6acad2089c995d9df6604f54f2102eb7a3bc73b001957ef851ee3606902a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54ac0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd8dc60a14ff28128cb85ab210722b515c5c2994d37448e1e04642bc5ae84d30", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", + "rlp": "0xf902d0f9023fa01c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290a03d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7a0c117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5ccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082a8611880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218302000080a00000000000000000000000000000000000000000000000000000000000000000f88ab88803f8850180800782afc89400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000080a0c75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626a07b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731bc0c0", + "expectException": "invalid excess blob gas", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xecae18667c100224cf1aa9dd9d91b582341da9f0df6e4401a76754c678350290", + "transactionsTrie": "0x3d0735f4f8cd85f7384e82229ad10f2b7a96e77e52a6f73f19acc673e28074c7", + "receiptTrie": "0xc117ad0158b04d4277c8a0d1b440360bf3f011ad7caccf8740df472c96e8f5cc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", "timestamp": "0x18", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x20000", - "excessBlobGas": "0x0", - "blockHash": "0xcd37047c5be921f960761491c1d451c09c539743703b5418f1f7cda4f41ab23e", - "transactions": [ - "0x03f885018080078252089400000000000000000000000000000000000001000180c001e1a0010000000000000000000000000000000000000000000000000000000000000001a0a8f4757869fbb831ba4ed3a7c8f868b0e2e0c1eda97937aab035560fffdedf3ca019d9b041540e3d6f5f56dc29deb8834a08171e92037cf567b922357e70f8e54a" - ], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x020000", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8fef8aa28f4472591334a02f003f07947d42ceb41cfbd625fd2f30fbc3d1219b" }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000" + "transactions": [ + { + "type": "0x03", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0xafc8", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x01", + "data": "0x", + "accessList": [], + "maxFeePerBlobGas": "0x01", + "blobVersionedHashes": [ + "0x0100000000000000000000000000000000000000000000000000000000000000" + ], + "v": "0x00", + "r": "0xc75337f6b99a6063d93e16883ac5ca36e2d4c1502e4b56805777ad74aafaa626", + "s": "0x7b32c2a3852284ead12962b64a0453d036d36516b5f062162f4710aef0dd731b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "invalid excess blob gas", - "blocknumber": "2" + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ff", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x100000", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5cb7dfd16db9ad2da5b4f41480e9fd8e213a685714fb5e93167d213aa5d66f5" - }, - "genesisRLP": "0xf90243f9023da00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a018fc92423ea41abf73ae00112b021810868ce357ba7ebcd20bbc7f0ff281ffa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218083100000a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0d58ccffb84c9e491d7c5ef1466a76d6ecbf6da3bcd5abfd92cd45bb1dc47f69", - "network": "Cancun", + "lastblockhash": "0x1c719fb23446c4ec9beaa52715d79ea13df441379e20df299b3ee91bf8342c2e", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a600055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x8a0a19589531694250d570040a0c4b74576919b8": { @@ -2580,19 +2642,17 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } + "code": "0x4a600055", + "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", @@ -2600,6 +2660,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x8a0a19589531694250d570040a0c4b74576919b8": { "nonce": "0x01", "balance": "0x1d6329f1c35ca4bfabb9f560fffff1c1c7", @@ -2608,7 +2676,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x043e39", + "balance": "0x06ce79", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json index f9567094dee..72b0102e8a9 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/fork_transition_excess_blob_gas.json @@ -1,18 +1,40 @@ { "000-fork=ShanghaiToCancunAtTime15k-max_blobs-correct_initial_blob_gas_calc": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62" + }, "blocks": [ { - "rlp": "0xf9021ff90219a0df94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a062a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", + "parentHash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -26,27 +48,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6" }, "blocknumber": "1", "transactions": [], @@ -54,12 +56,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", + "parentHash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -73,27 +75,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959" }, "blocknumber": "2", "transactions": [], @@ -101,12 +83,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a014af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", + "parentHash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -120,27 +102,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da" }, "blocknumber": "3", "transactions": [], @@ -148,12 +110,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a06769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a082654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", + "parentHash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -167,27 +129,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754" }, "blocknumber": "4", "transactions": [], @@ -195,12 +137,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0a536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a032de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", + "parentHash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -214,27 +156,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf" }, "blocknumber": "5", "transactions": [], @@ -242,12 +164,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a01f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", + "parentHash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -261,27 +183,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa" }, "blocknumber": "6", "transactions": [], @@ -289,12 +191,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a07d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", + "parentHash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -308,27 +210,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691" }, "blocknumber": "7", "transactions": [], @@ -336,12 +218,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0d8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a026aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", + "parentHash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -355,27 +237,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c" }, "blocknumber": "8", "transactions": [], @@ -383,12 +245,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a067542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", + "parentHash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -402,27 +264,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1" }, "blocknumber": "9", "transactions": [], @@ -430,12 +272,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a02fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", + "parentHash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -449,27 +291,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc" }, "blocknumber": "10", "transactions": [], @@ -477,12 +299,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a050f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", + "parentHash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -496,27 +318,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463" }, "blocknumber": "11", "transactions": [], @@ -524,12 +326,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a019cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a03080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", + "parentHash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -543,27 +345,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025" }, "blocknumber": "12", "transactions": [], @@ -571,12 +353,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", + "parentHash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -590,27 +372,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36" }, "blocknumber": "13", "transactions": [], @@ -618,12 +380,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a08ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", + "parentHash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -637,27 +399,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e" }, "blocknumber": "14", "transactions": [], @@ -665,12 +407,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -684,27 +426,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3a97", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea" }, "blocknumber": "15", "transactions": [], @@ -712,12 +434,12 @@ "withdrawals": [] }, { - "rlp": "0xf9037ff90241a017983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05dcb4104c9b3500a1e0540ba413ab0c09a24a9e34063b40b961eef730db831fda0dd0d52fb7256921f8ca106f343bfb58035f3bde81fec33fed30365b7f7a66466a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a0000825208823aa380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01800a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a004683ddd96190fc5afa09c0cf8782867b16e356034871e6282dba66b1cf3b266a00f3bab5f3d6c497f87444c16db21225f7e5840d25cc8878109a5f8d6a4eaf97dc0c0", + "rlp": "0xf9037ff90241a064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a6f5fbf5746b87405d402ba5daa6b8ed95a83a1c374243f76bc0faa1220f4746a0dd0d52fb7256921f8ca106f343bfb58035f3bde81fec33fed30365b7f7a66466a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a0000825208823aa380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000080a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01800a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a004683ddd96190fc5afa09c0cf8782867b16e356034871e6282dba66b1cf3b266a00f3bab5f3d6c497f87444c16db21225f7e5840d25cc8878109a5f8d6a4eaf97dc0c0", "blockHeader": { - "parentHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", + "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5dcb4104c9b3500a1e0540ba413ab0c09a24a9e34063b40b961eef730db831fd", + "stateRoot": "0xa6f5fbf5746b87405d402ba5daa6b8ed95a83a1c374243f76bc0faa1220f4746", "transactionsTrie": "0xdd0d52fb7256921f8ca106f343bfb58035f3bde81fec33fed30365b7f7a66466", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -734,40 +456,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6ce015aca1bd097145ef809e8436f701f834bea3ba9480b69f904757f7641da2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5dcb4104c9b3500a1e0540ba413ab0c09a24a9e34063b40b961eef730db831fd", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x10", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3aa3", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x0", - "blockHash": "0x6ce015aca1bd097145ef809e8436f701f834bea3ba9480b69f904757f7641da2", - "transactions": [ - "0x03f9012f01800a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a004683ddd96190fc5afa09c0cf8782867b16e356034871e6282dba66b1cf3b266a00f3bab5f3d6c497f87444c16db21225f7e5840d25cc8878109a5f8d6a4eaf97d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1cb941b201a51e6790c31d1e9b6b422f71929519438720f8e0450142b9c3b20a" }, "blocknumber": "16", "transactions": [ @@ -801,12 +490,12 @@ "withdrawals": [] }, { - "rlp": "0xf90382f90244a06ce015aca1bd097145ef809e8436f701f834bea3ba9480b69f904757f7641da2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa007930f9a7805c50281ef6153ee7013ff1546c75c9cb8215cf36eed49c94d3746a048e1ef34fa318206e774da30cdb2103cbcc1a6bec07b46cfd4003216510f5ddaa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801188016345785d8a0000825208823aaf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01010a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0fbe304ed93e334cf5f81a66fe78c431e7fa9101688e1726274484a2d6fd402f8a03f87a9d844e6b9344c443fd9c1f349296e155db56783a118b26ee84ed14981fdc0c0", + "rlp": "0xf90382f90244a01cb941b201a51e6790c31d1e9b6b422f71929519438720f8e0450142b9c3b20aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01b76db70e076bb2f6270ab49ac451e9edcfd8238a4e32eef18067254046c0e60a048e1ef34fa318206e774da30cdb2103cbcc1a6bec07b46cfd4003216510f5ddaa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801188016345785d8a0000825208823aaf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083060000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01010a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0fbe304ed93e334cf5f81a66fe78c431e7fa9101688e1726274484a2d6fd402f8a03f87a9d844e6b9344c443fd9c1f349296e155db56783a118b26ee84ed14981fdc0c0", "blockHeader": { - "parentHash": "0x6ce015aca1bd097145ef809e8436f701f834bea3ba9480b69f904757f7641da2", + "parentHash": "0x1cb941b201a51e6790c31d1e9b6b422f71929519438720f8e0450142b9c3b20a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x07930f9a7805c50281ef6153ee7013ff1546c75c9cb8215cf36eed49c94d3746", + "stateRoot": "0x1b76db70e076bb2f6270ab49ac451e9edcfd8238a4e32eef18067254046c0e60", "transactionsTrie": "0x48e1ef34fa318206e774da30cdb2103cbcc1a6bec07b46cfd4003216510f5dda", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -823,40 +512,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x060000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1f0b16d1039532d52626149776879fcb4907d17bf56f4070b98be9d020a503f4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6ce015aca1bd097145ef809e8436f701f834bea3ba9480b69f904757f7641da2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x07930f9a7805c50281ef6153ee7013ff1546c75c9cb8215cf36eed49c94d3746", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x11", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3aaf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x60000", - "blockHash": "0x1f0b16d1039532d52626149776879fcb4907d17bf56f4070b98be9d020a503f4", - "transactions": [ - "0x03f9012f01010a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a0fbe304ed93e334cf5f81a66fe78c431e7fa9101688e1726274484a2d6fd402f8a03f87a9d844e6b9344c443fd9c1f349296e155db56783a118b26ee84ed14981fd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x28f137df5e136b5bdce159a9d6b7a68b5cb53df13b16a34542cdc9b5592eacd5" }, "blocknumber": "17", "transactions": [ @@ -890,12 +546,12 @@ "withdrawals": [] }, { - "rlp": "0xf90382f90244a01f0b16d1039532d52626149776879fcb4907d17bf56f4070b98be9d020a503f4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0042fd2dc1f5cfeb781c396a77933316bc38cb5a515b916cc1f9daba62204ca31a052bda30f84694197f138459cb69c15521f36b7895a3efc6c4261d66c2f05e70aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801288016345785d8a0000825208823abb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01020a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a0b11f2adca54d8a24f9e750dfa6495f25ab170b9797def5d42ec449a631f558d8a064f040e4095eacab9fd8548de5d3c98a0824d1087c32c15f4de66f1ce3d9b3bcc0c0", + "rlp": "0xf90382f90244a028f137df5e136b5bdce159a9d6b7a68b5cb53df13b16a34542cdc9b5592eacd5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0814ace33f3d42889ca65aa3399c380860d5f9e03661a1db3c5e84f2639b17e9da052bda30f84694197f138459cb69c15521f36b7895a3efc6c4261d66c2f05e70aa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801288016345785d8a0000825208823abb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000830c0000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01020a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a0b11f2adca54d8a24f9e750dfa6495f25ab170b9797def5d42ec449a631f558d8a064f040e4095eacab9fd8548de5d3c98a0824d1087c32c15f4de66f1ce3d9b3bcc0c0", "blockHeader": { - "parentHash": "0x1f0b16d1039532d52626149776879fcb4907d17bf56f4070b98be9d020a503f4", + "parentHash": "0x28f137df5e136b5bdce159a9d6b7a68b5cb53df13b16a34542cdc9b5592eacd5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042fd2dc1f5cfeb781c396a77933316bc38cb5a515b916cc1f9daba62204ca31", + "stateRoot": "0x814ace33f3d42889ca65aa3399c380860d5f9e03661a1db3c5e84f2639b17e9d", "transactionsTrie": "0x52bda30f84694197f138459cb69c15521f36b7895a3efc6c4261d66c2f05e70a", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -912,40 +568,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x0c0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x85c6442728cd0f8974877d7b6dadc4ee13b59dee6788de560a6e3521eefa6f4d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1f0b16d1039532d52626149776879fcb4907d17bf56f4070b98be9d020a503f4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x042fd2dc1f5cfeb781c396a77933316bc38cb5a515b916cc1f9daba62204ca31", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x12", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3abb", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0xc0000", - "blockHash": "0x85c6442728cd0f8974877d7b6dadc4ee13b59dee6788de560a6e3521eefa6f4d", - "transactions": [ - "0x03f9012f01020a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a0b11f2adca54d8a24f9e750dfa6495f25ab170b9797def5d42ec449a631f558d8a064f040e4095eacab9fd8548de5d3c98a0824d1087c32c15f4de66f1ce3d9b3bc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd789fa5ee86edd732984820d8255707cb1bf546cc23048b67a65cdd3f12f9bd5" }, "blocknumber": "18", "transactions": [ @@ -979,12 +602,12 @@ "withdrawals": [] }, { - "rlp": "0xf90382f90244a085c6442728cd0f8974877d7b6dadc4ee13b59dee6788de560a6e3521eefa6f4da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eeb9dcde5abd84ba1fae2f449d646c82db061746034438768fff65e94b61c5a9a01e05fd595b1fe54e7c615a5eabf6aa19db07e2f5d564b38d45c8de688a565a60a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801388016345785d8a0000825208823ac780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01030a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07405f357cc983e1352a89eacffaefdf8cb60e9aca2ff468dbe1f00a991efbd16a0164d00ab3058323db813eae69e64c171be56eef06e738ec2bd077ad4a242ac6cc0c0", + "rlp": "0xf90382f90244a0d789fa5ee86edd732984820d8255707cb1bf546cc23048b67a65cdd3f12f9bd5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08ff9d5fc614c0fa3360006eeb598c53dfcc0e16a6723c8df47ade4cab8f491b1a01e05fd595b1fe54e7c615a5eabf6aa19db07e2f5d564b38d45c8de688a565a60a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801388016345785d8a0000825208823ac780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083120000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01030a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07405f357cc983e1352a89eacffaefdf8cb60e9aca2ff468dbe1f00a991efbd16a0164d00ab3058323db813eae69e64c171be56eef06e738ec2bd077ad4a242ac6cc0c0", "blockHeader": { - "parentHash": "0x85c6442728cd0f8974877d7b6dadc4ee13b59dee6788de560a6e3521eefa6f4d", + "parentHash": "0xd789fa5ee86edd732984820d8255707cb1bf546cc23048b67a65cdd3f12f9bd5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeeb9dcde5abd84ba1fae2f449d646c82db061746034438768fff65e94b61c5a9", + "stateRoot": "0x8ff9d5fc614c0fa3360006eeb598c53dfcc0e16a6723c8df47ade4cab8f491b1", "transactionsTrie": "0x1e05fd595b1fe54e7c615a5eabf6aa19db07e2f5d564b38d45c8de688a565a60", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1001,40 +624,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x120000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4e79451135eb7b6db76a538c633b9ce2f62865e5636ca636ff717c9b69b21f76" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x85c6442728cd0f8974877d7b6dadc4ee13b59dee6788de560a6e3521eefa6f4d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeeb9dcde5abd84ba1fae2f449d646c82db061746034438768fff65e94b61c5a9", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x13", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3ac7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x120000", - "blockHash": "0x4e79451135eb7b6db76a538c633b9ce2f62865e5636ca636ff717c9b69b21f76", - "transactions": [ - "0x03f9012f01030a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a07405f357cc983e1352a89eacffaefdf8cb60e9aca2ff468dbe1f00a991efbd16a0164d00ab3058323db813eae69e64c171be56eef06e738ec2bd077ad4a242ac6c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x267cdfcc322b89a1198c6ee7d11e14a156e36c083de3fe6866d5f7e842cf6206" }, "blocknumber": "19", "transactions": [ @@ -1068,12 +658,12 @@ "withdrawals": [] }, { - "rlp": "0xf90382f90244a04e79451135eb7b6db76a538c633b9ce2f62865e5636ca636ff717c9b69b21f76a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dc69de86069e81f0919286d205e0aabc8c3f626773e96644ac8a7b5d81dcd3faa02198fe28d3b9c8f201e2635eca2c3acd4235da1ad0cc49a6d2c4385821957e88a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801488016345785d8a0000825208823ad380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01040a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a093c066e312b50e89616863d2323cb92c72bb7667e57e892f1450f7efbc5c5a09a038170aa7949302750df13ad6810b778a4c6683fe39a0c23e6b93d9e8e7c1e8e0c0c0", + "rlp": "0xf90382f90244a0267cdfcc322b89a1198c6ee7d11e14a156e36c083de3fe6866d5f7e842cf6206a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06102f0767e9ac5dc2c0ab9046f5d6ef1443f43d42b04626b460b51a103a43839a02198fe28d3b9c8f201e2635eca2c3acd4235da1ad0cc49a6d2c4385821957e88a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801488016345785d8a0000825208823ad380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083180000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01040a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a093c066e312b50e89616863d2323cb92c72bb7667e57e892f1450f7efbc5c5a09a038170aa7949302750df13ad6810b778a4c6683fe39a0c23e6b93d9e8e7c1e8e0c0c0", "blockHeader": { - "parentHash": "0x4e79451135eb7b6db76a538c633b9ce2f62865e5636ca636ff717c9b69b21f76", + "parentHash": "0x267cdfcc322b89a1198c6ee7d11e14a156e36c083de3fe6866d5f7e842cf6206", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdc69de86069e81f0919286d205e0aabc8c3f626773e96644ac8a7b5d81dcd3fa", + "stateRoot": "0x6102f0767e9ac5dc2c0ab9046f5d6ef1443f43d42b04626b460b51a103a43839", "transactionsTrie": "0x2198fe28d3b9c8f201e2635eca2c3acd4235da1ad0cc49a6d2c4385821957e88", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1090,40 +680,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x180000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd159baead7b0d25c2a1682dffef83e91e75e0fccdf115e23de0b17e35c2fcd7b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4e79451135eb7b6db76a538c633b9ce2f62865e5636ca636ff717c9b69b21f76", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdc69de86069e81f0919286d205e0aabc8c3f626773e96644ac8a7b5d81dcd3fa", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x14", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3ad3", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x180000", - "blockHash": "0xd159baead7b0d25c2a1682dffef83e91e75e0fccdf115e23de0b17e35c2fcd7b", - "transactions": [ - "0x03f9012f01040a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a093c066e312b50e89616863d2323cb92c72bb7667e57e892f1450f7efbc5c5a09a038170aa7949302750df13ad6810b778a4c6683fe39a0c23e6b93d9e8e7c1e8e0" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x62b544f6ecb297d832a0a5bef5246ffb6ee9fad24106e3b3bdb5599eee90c18c" }, "blocknumber": "20", "transactions": [ @@ -1157,12 +714,12 @@ "withdrawals": [] }, { - "rlp": "0xf90382f90244a0d159baead7b0d25c2a1682dffef83e91e75e0fccdf115e23de0b17e35c2fcd7ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0be9682ad64236a379034a7b9d6bc3c369aad2237163099201b180c4d267a6214a0798bffc4d75de85e3d842176837546c30c25cc66a80309a27dd3951d314e2f99a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801588016345785d8a0000825208823adf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000831e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01050a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a035d57b1aa555c676aa0b92aa589fcbfbb821662c22ed7b3fc1f085fa3d21caeda01781c61be7863b1ce36ee2be17865a9b675390a939dff81a47a0b2e60ad3604bc0c0", + "rlp": "0xf90382f90244a062b544f6ecb297d832a0a5bef5246ffb6ee9fad24106e3b3bdb5599eee90c18ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08473ad6c1444145a50148ab133f4b95f1c070079cfe9574027415373efd1e97ba0798bffc4d75de85e3d842176837546c30c25cc66a80309a27dd3951d314e2f99a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801588016345785d8a0000825208823adf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000831e0000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01050a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a035d57b1aa555c676aa0b92aa589fcbfbb821662c22ed7b3fc1f085fa3d21caeda01781c61be7863b1ce36ee2be17865a9b675390a939dff81a47a0b2e60ad3604bc0c0", "blockHeader": { - "parentHash": "0xd159baead7b0d25c2a1682dffef83e91e75e0fccdf115e23de0b17e35c2fcd7b", + "parentHash": "0x62b544f6ecb297d832a0a5bef5246ffb6ee9fad24106e3b3bdb5599eee90c18c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbe9682ad64236a379034a7b9d6bc3c369aad2237163099201b180c4d267a6214", + "stateRoot": "0x8473ad6c1444145a50148ab133f4b95f1c070079cfe9574027415373efd1e97b", "transactionsTrie": "0x798bffc4d75de85e3d842176837546c30c25cc66a80309a27dd3951d314e2f99", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1179,40 +736,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x1e0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x04a89aebd8d68e5ff8ccdc5a225a6bfaad7d5184d6865f67714d69b872fc5fb8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd159baead7b0d25c2a1682dffef83e91e75e0fccdf115e23de0b17e35c2fcd7b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbe9682ad64236a379034a7b9d6bc3c369aad2237163099201b180c4d267a6214", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x15", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3adf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x1e0000", - "blockHash": "0x04a89aebd8d68e5ff8ccdc5a225a6bfaad7d5184d6865f67714d69b872fc5fb8", - "transactions": [ - "0x03f9012f01050a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000580a035d57b1aa555c676aa0b92aa589fcbfbb821662c22ed7b3fc1f085fa3d21caeda01781c61be7863b1ce36ee2be17865a9b675390a939dff81a47a0b2e60ad3604b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x969e23ee6e6a5a2e9beee708c6a48a3f3016fd17222990c3cc7a16adc17a2090" }, "blocknumber": "21", "transactions": [ @@ -1246,12 +770,12 @@ "withdrawals": [] }, { - "rlp": "0xf90382f90244a004a89aebd8d68e5ff8ccdc5a225a6bfaad7d5184d6865f67714d69b872fc5fb8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b26e0bb2cfee79809164bf293b3dcde3e24d721e9cf1adbd8caba64e68d4fe7ca012b9a15e00d03fef9edafa164d7b72a74af4ed7722bfa9eb366ed81e408f1202a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801688016345785d8a0000825208823aeb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083240000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01060a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a00e24c94730c203be893635cba0cacc17271a48e7ea79a38cef681817e094ad1fa04d319fda237eb0219df9ad9de0f16af61cc0ff0cdebcee3ec3deda2d2245a5e6c0c0", + "rlp": "0xf90382f90244a0969e23ee6e6a5a2e9beee708c6a48a3f3016fd17222990c3cc7a16adc17a2090a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00488e5f75205c63570c7e448aaab098076ebebde078f50f46c3b5216ebaba1f5a012b9a15e00d03fef9edafa164d7b72a74af4ed7722bfa9eb366ed81e408f1202a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801688016345785d8a0000825208823aeb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c000083240000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01060a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a00e24c94730c203be893635cba0cacc17271a48e7ea79a38cef681817e094ad1fa04d319fda237eb0219df9ad9de0f16af61cc0ff0cdebcee3ec3deda2d2245a5e6c0c0", "blockHeader": { - "parentHash": "0x04a89aebd8d68e5ff8ccdc5a225a6bfaad7d5184d6865f67714d69b872fc5fb8", + "parentHash": "0x969e23ee6e6a5a2e9beee708c6a48a3f3016fd17222990c3cc7a16adc17a2090", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb26e0bb2cfee79809164bf293b3dcde3e24d721e9cf1adbd8caba64e68d4fe7c", + "stateRoot": "0x0488e5f75205c63570c7e448aaab098076ebebde078f50f46c3b5216ebaba1f5", "transactionsTrie": "0x12b9a15e00d03fef9edafa164d7b72a74af4ed7722bfa9eb366ed81e408f1202", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1268,40 +792,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x240000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x47fe777a4ec75ff9c52a792837545e2f2934f4f85f6024c150f817160652046c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x04a89aebd8d68e5ff8ccdc5a225a6bfaad7d5184d6865f67714d69b872fc5fb8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb26e0bb2cfee79809164bf293b3dcde3e24d721e9cf1adbd8caba64e68d4fe7c", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x16", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3aeb", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x240000", - "blockHash": "0x47fe777a4ec75ff9c52a792837545e2f2934f4f85f6024c150f817160652046c", - "transactions": [ - "0x03f9012f01060a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a00e24c94730c203be893635cba0cacc17271a48e7ea79a38cef681817e094ad1fa04d319fda237eb0219df9ad9de0f16af61cc0ff0cdebcee3ec3deda2d2245a5e6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa2f1f2ced0aa92a99f866e9eb3f0f924eb13abe0f6a09b203068c145b0e17bbe" }, "blocknumber": "22", "transactions": [ @@ -1335,12 +826,12 @@ "withdrawals": [] }, { - "rlp": "0xf90382f90244a047fe777a4ec75ff9c52a792837545e2f2934f4f85f6024c150f817160652046ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d10a5f1904ac80b23bfb897ae858bdeaef12760553733c3b7ac034d85a30e29a07df215b1f48a37fb8d18bf90a1fee899bedb434a0c4b9e9cd462cccbc9c0d5eaa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801788016345785d8a0000825208823af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000832a0000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01070a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a082cb410c9077cc786c62ac1c55713ecae386f05d263d6ba4482b9e32cabea387a035742c904e4185486600bad4cf8eaf497777d3cb0d65a7eeaceded2603ab9052c0c0", + "rlp": "0xf90382f90244a0a2f1f2ced0aa92a99f866e9eb3f0f924eb13abe0f6a09b203068c145b0e17bbea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0980e4e4ec883c155b4663eeb6a2983c08744f820f15cca4c1323c46bf3b42775a07df215b1f48a37fb8d18bf90a1fee899bedb434a0c4b9e9cd462cccbc9c0d5eaa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801788016345785d8a0000825208823af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421830c0000832a0000a00000000000000000000000000000000000000000000000000000000000000000f90136b9013303f9012f01070a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a082cb410c9077cc786c62ac1c55713ecae386f05d263d6ba4482b9e32cabea387a035742c904e4185486600bad4cf8eaf497777d3cb0d65a7eeaceded2603ab9052c0c0", "blockHeader": { - "parentHash": "0x47fe777a4ec75ff9c52a792837545e2f2934f4f85f6024c150f817160652046c", + "parentHash": "0xa2f1f2ced0aa92a99f866e9eb3f0f924eb13abe0f6a09b203068c145b0e17bbe", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d10a5f1904ac80b23bfb897ae858bdeaef12760553733c3b7ac034d85a30e29", + "stateRoot": "0x980e4e4ec883c155b4663eeb6a2983c08744f820f15cca4c1323c46bf3b42775", "transactionsTrie": "0x7df215b1f48a37fb8d18bf90a1fee899bedb434a0c4b9e9cd462cccbc9c0d5ea", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1357,40 +848,7 @@ "blobGasUsed": "0x0c0000", "excessBlobGas": "0x2a0000", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc6375e3b28d0cccf8e9c9a9cfe7a7a853a5ae5900275a54757f544f394af4212" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x47fe777a4ec75ff9c52a792837545e2f2934f4f85f6024c150f817160652046c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d10a5f1904ac80b23bfb897ae858bdeaef12760553733c3b7ac034d85a30e29", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x17", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0xc0000", - "excessBlobGas": "0x2a0000", - "blockHash": "0xc6375e3b28d0cccf8e9c9a9cfe7a7a853a5ae5900275a54757f544f394af4212", - "transactions": [ - "0x03f9012f01070a830f4240832dc6c09400000000000000000000000000000000000001000180c064f8c6a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a00100000000000000000000000000000000000000000000000000000000000002a00100000000000000000000000000000000000000000000000000000000000003a00100000000000000000000000000000000000000000000000000000000000004a0010000000000000000000000000000000000000000000000000000000000000501a082cb410c9077cc786c62ac1c55713ecae386f05d263d6ba4482b9e32cabea387a035742c904e4185486600bad4cf8eaf497777d3cb0d65a7eeaceded2603ab9052" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002", - "0x0100000000000000000000000000000000000000000000000000000000000003", - "0x0100000000000000000000000000000000000000000000000000000000000004", - "0x0100000000000000000000000000000000000000000000000000000000000005" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1b3409441366238b60c36aa4b1fe384a6710f72c7d40c5b721c36ff540d9761d" }, "blocknumber": "23", "transactions": [ @@ -1424,30 +882,14 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xc6375e3b28d0cccf8e9c9a9cfe7a7a853a5ae5900275a54757f544f394af4212", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x1b3409441366238b60c36aa4b1fe384a6710f72c7d40c5b721c36ff540d9761d", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1456,27 +898,27 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x3aa3": "0x3aa3", - "0x3aaf": "0x3aaf", - "0x3abb": "0x3abb", - "0x3ac7": "0x3ac7", - "0x3ad3": "0x3ad3", - "0x3adf": "0x3adf", - "0x3aeb": "0x3aeb", - "0x3af7": "0x3af7" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x08", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x1aa4": "0x3aa3", + "0x1ab0": "0x3aaf", + "0x1abc": "0x3abb", + "0x1ac8": "0x3ac7", + "0x1ad4": "0x3ad3", + "0x1ae0": "0x3adf", + "0x1aec": "0x3aeb", + "0x1af8": "0x3af7" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x19a280", @@ -1494,18 +936,40 @@ }, "001-fork=ShanghaiToCancunAtTime15k-no_blobs-correct_initial_blob_gas_calc": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62" + }, "blocks": [ { - "rlp": "0xf9021ff90219a0df94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a062a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", + "parentHash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1519,27 +983,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6" }, "blocknumber": "1", "transactions": [], @@ -1547,12 +991,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", + "parentHash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1566,27 +1010,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959" }, "blocknumber": "2", "transactions": [], @@ -1594,12 +1018,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a014af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", + "parentHash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1613,27 +1037,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da" }, "blocknumber": "3", "transactions": [], @@ -1641,12 +1045,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a06769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a082654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", + "parentHash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1660,27 +1064,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754" }, "blocknumber": "4", "transactions": [], @@ -1688,12 +1072,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0a536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a032de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", + "parentHash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1707,27 +1091,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf" }, "blocknumber": "5", "transactions": [], @@ -1735,12 +1099,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a01f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", + "parentHash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1754,27 +1118,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa" }, "blocknumber": "6", "transactions": [], @@ -1782,12 +1126,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a07d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", + "parentHash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1801,27 +1145,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691" }, "blocknumber": "7", "transactions": [], @@ -1829,12 +1153,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0d8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a026aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", + "parentHash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1848,27 +1172,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c" }, "blocknumber": "8", "transactions": [], @@ -1876,12 +1180,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a067542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", + "parentHash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1895,27 +1199,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1" }, "blocknumber": "9", "transactions": [], @@ -1923,12 +1207,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a02fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", + "parentHash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1942,27 +1226,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc" }, "blocknumber": "10", "transactions": [], @@ -1970,12 +1234,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a050f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", + "parentHash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1989,27 +1253,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463" }, "blocknumber": "11", "transactions": [], @@ -2017,12 +1261,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a019cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a03080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", + "parentHash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2036,27 +1280,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025" }, "blocknumber": "12", "transactions": [], @@ -2064,12 +1288,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", + "parentHash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2083,27 +1307,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36" }, "blocknumber": "13", "transactions": [], @@ -2111,12 +1315,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a08ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", + "parentHash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2130,27 +1334,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e" }, "blocknumber": "14", "transactions": [], @@ -2158,12 +1342,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2177,27 +1361,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3a97", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea" }, "blocknumber": "15", "transactions": [], @@ -2205,12 +1369,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea017983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b46a7a42dc76dbbd7754292f6e3cc022ee42d3502820ed894d4d57413fdcc1c7a0f9fa513b106a7fb714c8c7644735203878d578e54f097f996c7f4a29ed564175a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a0000825208823aa380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601800a830f4240832dc6c09400000000000000000000000000000000000001000180c080a094856a2872fd3c1961ab89659f595b75ecbd83d23087ec31b9dea7bedd88fa60a05c01ebac38af73350995a87ada69c84da035fdc847dff52b389379517d39483ac0c0", + "rlp": "0xf902b0f9023ea064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cb84cf11e6bf629813f471c9e80b582d68ff6ad4a649620a10740ec57f1d09e0a0f9fa513b106a7fb714c8c7644735203878d578e54f097f996c7f4a29ed564175a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a0000825208823aa380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601800a830f4240832dc6c09400000000000000000000000000000000000001000180c080a094856a2872fd3c1961ab89659f595b75ecbd83d23087ec31b9dea7bedd88fa60a05c01ebac38af73350995a87ada69c84da035fdc847dff52b389379517d39483ac0c0", "blockHeader": { - "parentHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", + "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb46a7a42dc76dbbd7754292f6e3cc022ee42d3502820ed894d4d57413fdcc1c7", + "stateRoot": "0xcb84cf11e6bf629813f471c9e80b582d68ff6ad4a649620a10740ec57f1d09e0", "transactionsTrie": "0xf9fa513b106a7fb714c8c7644735203878d578e54f097f996c7f4a29ed564175", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2227,33 +1391,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb0a3eab4ee88a2dddcf1280fcaaa52e2eecf15085c2420a9a28b4b3faee04a9e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb46a7a42dc76dbbd7754292f6e3cc022ee42d3502820ed894d4d57413fdcc1c7", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x10", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3aa3", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb0a3eab4ee88a2dddcf1280fcaaa52e2eecf15085c2420a9a28b4b3faee04a9e", - "transactions": [ - "0x02f86601800a830f4240832dc6c09400000000000000000000000000000000000001000180c080a094856a2872fd3c1961ab89659f595b75ecbd83d23087ec31b9dea7bedd88fa60a05c01ebac38af73350995a87ada69c84da035fdc847dff52b389379517d39483a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9529a5905e9a26757132d9e2483d1ee7af7b9b87085a6932c22f0eb5855648c6" }, "blocknumber": "16", "transactions": [ @@ -2278,12 +1416,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea0b0a3eab4ee88a2dddcf1280fcaaa52e2eecf15085c2420a9a28b4b3faee04a9ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0274fa3cc3b2ad69d493f026872322e40ed877fc3bc4da0c200f9531708be9f9ca075ccc98115486f1e87ae9dac8f431799dc4a10ff665e78501ba8683295cd74b3a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801188016345785d8a0000825208823aaf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601010a830f4240832dc6c09400000000000000000000000000000000000001000180c001a017a1f14d19c184e8ca5015518580693ad884aa891fa02d34ee3da194d3fb819aa04a56be917c910ad623df680d424470d41ddd01711f89d6cd68601dc232cebc4cc0c0", + "rlp": "0xf902b0f9023ea09529a5905e9a26757132d9e2483d1ee7af7b9b87085a6932c22f0eb5855648c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1d8bfea4563a6a667da5531020e1656f51ea8db3589843b80d7b942f423702ea075ccc98115486f1e87ae9dac8f431799dc4a10ff665e78501ba8683295cd74b3a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801188016345785d8a0000825208823aaf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601010a830f4240832dc6c09400000000000000000000000000000000000001000180c001a017a1f14d19c184e8ca5015518580693ad884aa891fa02d34ee3da194d3fb819aa04a56be917c910ad623df680d424470d41ddd01711f89d6cd68601dc232cebc4cc0c0", "blockHeader": { - "parentHash": "0xb0a3eab4ee88a2dddcf1280fcaaa52e2eecf15085c2420a9a28b4b3faee04a9e", + "parentHash": "0x9529a5905e9a26757132d9e2483d1ee7af7b9b87085a6932c22f0eb5855648c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x274fa3cc3b2ad69d493f026872322e40ed877fc3bc4da0c200f9531708be9f9c", + "stateRoot": "0xb1d8bfea4563a6a667da5531020e1656f51ea8db3589843b80d7b942f423702e", "transactionsTrie": "0x75ccc98115486f1e87ae9dac8f431799dc4a10ff665e78501ba8683295cd74b3", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2300,33 +1438,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9f8ae6e718a341d57ae322dd4cf70f387c6d60ff9e62e190f8f255b134f19cda" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb0a3eab4ee88a2dddcf1280fcaaa52e2eecf15085c2420a9a28b4b3faee04a9e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x274fa3cc3b2ad69d493f026872322e40ed877fc3bc4da0c200f9531708be9f9c", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x11", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3aaf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9f8ae6e718a341d57ae322dd4cf70f387c6d60ff9e62e190f8f255b134f19cda", - "transactions": [ - "0x02f86601010a830f4240832dc6c09400000000000000000000000000000000000001000180c001a017a1f14d19c184e8ca5015518580693ad884aa891fa02d34ee3da194d3fb819aa04a56be917c910ad623df680d424470d41ddd01711f89d6cd68601dc232cebc4c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb14299aca6e5473ff6ca033f5366710dffbd1f289c66e3097a3a10e7710808a1" }, "blocknumber": "17", "transactions": [ @@ -2351,12 +1463,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea09f8ae6e718a341d57ae322dd4cf70f387c6d60ff9e62e190f8f255b134f19cdaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa083ef84a947d38343f67c9b218811806cb9f52093e42864cbb07271ee24829683a019af15cbc2f12dd9fa5b0707a0a446c91c64b8c418f2db58674dcbab0dedb4a6a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801288016345785d8a0000825208823abb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601020a830f4240832dc6c09400000000000000000000000000000000000001000180c001a07b034d56856369f7e3d9a609ff1a25e5a5d0b2c5e8ceb4b6263e4e979dcbaa23a012e087eca66e662b66641410397dec72ba574405fc87528e7ecad1ae0b81071ac0c0", + "rlp": "0xf902b0f9023ea0b14299aca6e5473ff6ca033f5366710dffbd1f289c66e3097a3a10e7710808a1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f950a19e832f4cb810f25114bf64b8ee8789ee9ab562b1f8e7d82de7db2456ada019af15cbc2f12dd9fa5b0707a0a446c91c64b8c418f2db58674dcbab0dedb4a6a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801288016345785d8a0000825208823abb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601020a830f4240832dc6c09400000000000000000000000000000000000001000180c001a07b034d56856369f7e3d9a609ff1a25e5a5d0b2c5e8ceb4b6263e4e979dcbaa23a012e087eca66e662b66641410397dec72ba574405fc87528e7ecad1ae0b81071ac0c0", "blockHeader": { - "parentHash": "0x9f8ae6e718a341d57ae322dd4cf70f387c6d60ff9e62e190f8f255b134f19cda", + "parentHash": "0xb14299aca6e5473ff6ca033f5366710dffbd1f289c66e3097a3a10e7710808a1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x83ef84a947d38343f67c9b218811806cb9f52093e42864cbb07271ee24829683", + "stateRoot": "0xf950a19e832f4cb810f25114bf64b8ee8789ee9ab562b1f8e7d82de7db2456ad", "transactionsTrie": "0x19af15cbc2f12dd9fa5b0707a0a446c91c64b8c418f2db58674dcbab0dedb4a6", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2373,33 +1485,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf590556687bb8b7d98bfb76adf831d0c00cac3b35a0d14629c7cc3e52bda49e9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9f8ae6e718a341d57ae322dd4cf70f387c6d60ff9e62e190f8f255b134f19cda", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x83ef84a947d38343f67c9b218811806cb9f52093e42864cbb07271ee24829683", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x12", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3abb", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf590556687bb8b7d98bfb76adf831d0c00cac3b35a0d14629c7cc3e52bda49e9", - "transactions": [ - "0x02f86601020a830f4240832dc6c09400000000000000000000000000000000000001000180c001a07b034d56856369f7e3d9a609ff1a25e5a5d0b2c5e8ceb4b6263e4e979dcbaa23a012e087eca66e662b66641410397dec72ba574405fc87528e7ecad1ae0b81071a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x393ee00fcd3335f7b4542bf4ad9ad3f5d8c4d4a751ded4612792232eb91e4f82" }, "blocknumber": "18", "transactions": [ @@ -2424,12 +1510,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea0f590556687bb8b7d98bfb76adf831d0c00cac3b35a0d14629c7cc3e52bda49e9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09050c1180cc86fbab44340c020deaf15420234d92d6352d36272d8369fc7daf8a0dcaa091ff6aabede652aa999afb932fe9cfc9e1c04f15368837fd694cc2a7d59a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801388016345785d8a0000825208823ac780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601030a830f4240832dc6c09400000000000000000000000000000000000001000180c001a00459294080cd47162dc5f046760da3a4413a7a285cc95f1081c0b995d207fc7ba056fc79ccbda931e7a37f55f00952f303859f62a88f71de4419db969b65bc1c52c0c0", + "rlp": "0xf902b0f9023ea0393ee00fcd3335f7b4542bf4ad9ad3f5d8c4d4a751ded4612792232eb91e4f82a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0209a837051fb99103f440736aca0f0cb9589de6a434ad3cb0d2b04e6b57b869ea0dcaa091ff6aabede652aa999afb932fe9cfc9e1c04f15368837fd694cc2a7d59a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801388016345785d8a0000825208823ac780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601030a830f4240832dc6c09400000000000000000000000000000000000001000180c001a00459294080cd47162dc5f046760da3a4413a7a285cc95f1081c0b995d207fc7ba056fc79ccbda931e7a37f55f00952f303859f62a88f71de4419db969b65bc1c52c0c0", "blockHeader": { - "parentHash": "0xf590556687bb8b7d98bfb76adf831d0c00cac3b35a0d14629c7cc3e52bda49e9", + "parentHash": "0x393ee00fcd3335f7b4542bf4ad9ad3f5d8c4d4a751ded4612792232eb91e4f82", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9050c1180cc86fbab44340c020deaf15420234d92d6352d36272d8369fc7daf8", + "stateRoot": "0x209a837051fb99103f440736aca0f0cb9589de6a434ad3cb0d2b04e6b57b869e", "transactionsTrie": "0xdcaa091ff6aabede652aa999afb932fe9cfc9e1c04f15368837fd694cc2a7d59", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2446,33 +1532,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x08f36ba3a94431975316d0d23d7be939709c45d2f34efd9d6b0097215809d9c3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf590556687bb8b7d98bfb76adf831d0c00cac3b35a0d14629c7cc3e52bda49e9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9050c1180cc86fbab44340c020deaf15420234d92d6352d36272d8369fc7daf8", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x13", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3ac7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x08f36ba3a94431975316d0d23d7be939709c45d2f34efd9d6b0097215809d9c3", - "transactions": [ - "0x02f86601030a830f4240832dc6c09400000000000000000000000000000000000001000180c001a00459294080cd47162dc5f046760da3a4413a7a285cc95f1081c0b995d207fc7ba056fc79ccbda931e7a37f55f00952f303859f62a88f71de4419db969b65bc1c52" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe3eba93ce890191e8c0e32bae4ad6c3bf27ac1301da3b785d6606526df1b42a7" }, "blocknumber": "19", "transactions": [ @@ -2497,12 +1557,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea008f36ba3a94431975316d0d23d7be939709c45d2f34efd9d6b0097215809d9c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a8b9394bceba8e00c0149c204b0189e9b849c5a5d2cf0ccfa7f43ccccbc85117a0db505477e278dbe33bf5cf1b693eb00a2eb38ee5590450274b2d90a2c8231c16a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801488016345785d8a0000825208823ad380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601040a830f4240832dc6c09400000000000000000000000000000000000001000180c080a026ca20079e7ac3a577243ad6b6805740a872f9848df4fc6c05723f4bfe816f59a002a7d8f574befe40f986abce938c864139430373a87c90e5f163cb609baa2b72c0c0", + "rlp": "0xf902b0f9023ea0e3eba93ce890191e8c0e32bae4ad6c3bf27ac1301da3b785d6606526df1b42a7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03f3abc227f4411e7daea5b1c438dfcb61bf8c1ad3d5cb0c4c551c8299f3f5dd9a0db505477e278dbe33bf5cf1b693eb00a2eb38ee5590450274b2d90a2c8231c16a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801488016345785d8a0000825208823ad380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601040a830f4240832dc6c09400000000000000000000000000000000000001000180c080a026ca20079e7ac3a577243ad6b6805740a872f9848df4fc6c05723f4bfe816f59a002a7d8f574befe40f986abce938c864139430373a87c90e5f163cb609baa2b72c0c0", "blockHeader": { - "parentHash": "0x08f36ba3a94431975316d0d23d7be939709c45d2f34efd9d6b0097215809d9c3", + "parentHash": "0xe3eba93ce890191e8c0e32bae4ad6c3bf27ac1301da3b785d6606526df1b42a7", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa8b9394bceba8e00c0149c204b0189e9b849c5a5d2cf0ccfa7f43ccccbc85117", + "stateRoot": "0x3f3abc227f4411e7daea5b1c438dfcb61bf8c1ad3d5cb0c4c551c8299f3f5dd9", "transactionsTrie": "0xdb505477e278dbe33bf5cf1b693eb00a2eb38ee5590450274b2d90a2c8231c16", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2519,33 +1579,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9644a214d31fccbf96524adf8340f9151737a84b0dddd360cc58ae7954e5ad03" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x08f36ba3a94431975316d0d23d7be939709c45d2f34efd9d6b0097215809d9c3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa8b9394bceba8e00c0149c204b0189e9b849c5a5d2cf0ccfa7f43ccccbc85117", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x14", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3ad3", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9644a214d31fccbf96524adf8340f9151737a84b0dddd360cc58ae7954e5ad03", - "transactions": [ - "0x02f86601040a830f4240832dc6c09400000000000000000000000000000000000001000180c080a026ca20079e7ac3a577243ad6b6805740a872f9848df4fc6c05723f4bfe816f59a002a7d8f574befe40f986abce938c864139430373a87c90e5f163cb609baa2b72" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x10f387f8ffd7839da35b4a53b4fc3378b1a0eb310afbf8b84c40f381b64631ac" }, "blocknumber": "20", "transactions": [ @@ -2570,12 +1604,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea09644a214d31fccbf96524adf8340f9151737a84b0dddd360cc58ae7954e5ad03a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa058cc40edf9d6f0181a7e0bcaaa98d1e44cf3ba0f215dfc4084623d7a9f7542e6a0564afa782bb1feacb573439b4ee8b707928555d388c5e8f260be5b5f1254efdfa0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801588016345785d8a0000825208823adf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601050a830f4240832dc6c09400000000000000000000000000000000000001000180c001a05a17b0a78e6932b2e586019675c996c30df1f636e9dcd5343c8a9b634320dce2a0558f4e51cd799093cf92f0e4ae4faead79c8fad96b260cdddc5d1dc07e455f94c0c0", + "rlp": "0xf902b0f9023ea010f387f8ffd7839da35b4a53b4fc3378b1a0eb310afbf8b84c40f381b64631aca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fb1dcb20b8f4c44cc030fa4691d83a0c8e7cf23ae0e38d63670081495223b8eca0564afa782bb1feacb573439b4ee8b707928555d388c5e8f260be5b5f1254efdfa0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801588016345785d8a0000825208823adf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601050a830f4240832dc6c09400000000000000000000000000000000000001000180c001a05a17b0a78e6932b2e586019675c996c30df1f636e9dcd5343c8a9b634320dce2a0558f4e51cd799093cf92f0e4ae4faead79c8fad96b260cdddc5d1dc07e455f94c0c0", "blockHeader": { - "parentHash": "0x9644a214d31fccbf96524adf8340f9151737a84b0dddd360cc58ae7954e5ad03", + "parentHash": "0x10f387f8ffd7839da35b4a53b4fc3378b1a0eb310afbf8b84c40f381b64631ac", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58cc40edf9d6f0181a7e0bcaaa98d1e44cf3ba0f215dfc4084623d7a9f7542e6", + "stateRoot": "0xfb1dcb20b8f4c44cc030fa4691d83a0c8e7cf23ae0e38d63670081495223b8ec", "transactionsTrie": "0x564afa782bb1feacb573439b4ee8b707928555d388c5e8f260be5b5f1254efdf", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2592,33 +1626,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6ae91db9a18c1b373dd234fc4af03376ef3bb97b711c903e3caac9615fb96c44" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9644a214d31fccbf96524adf8340f9151737a84b0dddd360cc58ae7954e5ad03", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58cc40edf9d6f0181a7e0bcaaa98d1e44cf3ba0f215dfc4084623d7a9f7542e6", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x15", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3adf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6ae91db9a18c1b373dd234fc4af03376ef3bb97b711c903e3caac9615fb96c44", - "transactions": [ - "0x02f86601050a830f4240832dc6c09400000000000000000000000000000000000001000180c001a05a17b0a78e6932b2e586019675c996c30df1f636e9dcd5343c8a9b634320dce2a0558f4e51cd799093cf92f0e4ae4faead79c8fad96b260cdddc5d1dc07e455f94" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3e812894c18e70b74672de2e6b6e4105e6d54d8114d83aa1660866b796a1c863" }, "blocknumber": "21", "transactions": [ @@ -2643,12 +1651,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea06ae91db9a18c1b373dd234fc4af03376ef3bb97b711c903e3caac9615fb96c44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0632b068c7c6259f4498cb818545613ac2ea5809961f7a1dd2be4027478e8b547a0ce2b8fb6195486353a53b124349f59f4933d2e4c8d6cf6efca3b8069d2246d4fa0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801688016345785d8a0000825208823aeb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601060a830f4240832dc6c09400000000000000000000000000000000000001000180c001a085f06105106b0df64381853db8960bd265f8c9e8117752323a3b759bde13d899a05bb14e72c07aed9d440e9fa127072720009178f2ebed84fb0e53ea499818f3b1c0c0", + "rlp": "0xf902b0f9023ea03e812894c18e70b74672de2e6b6e4105e6d54d8114d83aa1660866b796a1c863a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00805e68ff2dd486621700bf871b8c9684fa3824bcf5231babfb4d1b299e9affba0ce2b8fb6195486353a53b124349f59f4933d2e4c8d6cf6efca3b8069d2246d4fa0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801688016345785d8a0000825208823aeb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601060a830f4240832dc6c09400000000000000000000000000000000000001000180c001a085f06105106b0df64381853db8960bd265f8c9e8117752323a3b759bde13d899a05bb14e72c07aed9d440e9fa127072720009178f2ebed84fb0e53ea499818f3b1c0c0", "blockHeader": { - "parentHash": "0x6ae91db9a18c1b373dd234fc4af03376ef3bb97b711c903e3caac9615fb96c44", + "parentHash": "0x3e812894c18e70b74672de2e6b6e4105e6d54d8114d83aa1660866b796a1c863", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x632b068c7c6259f4498cb818545613ac2ea5809961f7a1dd2be4027478e8b547", + "stateRoot": "0x0805e68ff2dd486621700bf871b8c9684fa3824bcf5231babfb4d1b299e9affb", "transactionsTrie": "0xce2b8fb6195486353a53b124349f59f4933d2e4c8d6cf6efca3b8069d2246d4f", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2665,33 +1673,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5ce5628a45065ff32a98cca7a4b03ae8f82699929b212e7f5be077914824ada0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6ae91db9a18c1b373dd234fc4af03376ef3bb97b711c903e3caac9615fb96c44", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x632b068c7c6259f4498cb818545613ac2ea5809961f7a1dd2be4027478e8b547", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x16", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3aeb", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5ce5628a45065ff32a98cca7a4b03ae8f82699929b212e7f5be077914824ada0", - "transactions": [ - "0x02f86601060a830f4240832dc6c09400000000000000000000000000000000000001000180c001a085f06105106b0df64381853db8960bd265f8c9e8117752323a3b759bde13d899a05bb14e72c07aed9d440e9fa127072720009178f2ebed84fb0e53ea499818f3b1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x836d1850fab130fd133f3d018fd244d26232dd617e8f9bb969b7a626613986ed" }, "blocknumber": "22", "transactions": [ @@ -2716,12 +1698,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea05ce5628a45065ff32a98cca7a4b03ae8f82699929b212e7f5be077914824ada0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa001c13b1ccb1b842bed18a08d19eed2d8b565208e5a5b2734d49d3e86c1b84e4ea0c41b0ac8a8e2a592bc5b9a96ea956cc221b129dfb752758b356539e8bfa685dea0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801788016345785d8a0000825208823af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601070a830f4240832dc6c09400000000000000000000000000000000000001000180c001a0078fd9fcfd7fb6a8856bed5b52c4957cc71118c53d8a05f226aaf7774a3adb25a05e2c09baf465f686327b84a6e9fdbd19112a01ed2b636c1080bd201df8f7dc13c0c0", + "rlp": "0xf902b0f9023ea0836d1850fab130fd133f3d018fd244d26232dd617e8f9bb969b7a626613986eda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ef109af882b53abcddd39a139dfefbbca98266035a967ad40167da377daf3e6a0c41b0ac8a8e2a592bc5b9a96ea956cc221b129dfb752758b356539e8bfa685dea0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801788016345785d8a0000825208823af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601070a830f4240832dc6c09400000000000000000000000000000000000001000180c001a0078fd9fcfd7fb6a8856bed5b52c4957cc71118c53d8a05f226aaf7774a3adb25a05e2c09baf465f686327b84a6e9fdbd19112a01ed2b636c1080bd201df8f7dc13c0c0", "blockHeader": { - "parentHash": "0x5ce5628a45065ff32a98cca7a4b03ae8f82699929b212e7f5be077914824ada0", + "parentHash": "0x836d1850fab130fd133f3d018fd244d26232dd617e8f9bb969b7a626613986ed", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x01c13b1ccb1b842bed18a08d19eed2d8b565208e5a5b2734d49d3e86c1b84e4e", + "stateRoot": "0x5ef109af882b53abcddd39a139dfefbbca98266035a967ad40167da377daf3e6", "transactionsTrie": "0xc41b0ac8a8e2a592bc5b9a96ea956cc221b129dfb752758b356539e8bfa685de", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2738,33 +1720,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x76af8f6211d982ae627177378c24958acb7a972c79a1be09a564ddc0c23944a5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5ce5628a45065ff32a98cca7a4b03ae8f82699929b212e7f5be077914824ada0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x01c13b1ccb1b842bed18a08d19eed2d8b565208e5a5b2734d49d3e86c1b84e4e", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x17", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x76af8f6211d982ae627177378c24958acb7a972c79a1be09a564ddc0c23944a5", - "transactions": [ - "0x02f86601070a830f4240832dc6c09400000000000000000000000000000000000001000180c001a0078fd9fcfd7fb6a8856bed5b52c4957cc71118c53d8a05f226aaf7774a3adb25a05e2c09baf465f686327b84a6e9fdbd19112a01ed2b636c1080bd201df8f7dc13" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xed707e6d2dfeece520a3cc76da82513b4a2d5b9f1daf16a58ababe5b73ff8aab" }, "blocknumber": "23", "transactions": [ @@ -2789,12 +1745,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea076af8f6211d982ae627177378c24958acb7a972c79a1be09a564ddc0c23944a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d532585dbef7df899155f37ef8cc55f356b95ab1ff7df8ca9acd810ccfff8a52a03e7d4839fe58031100e94a0deb169b0eff95b5546243fe992ee2cd227e7e43b8a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801888016345785d8a0000825208823b0380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601080a830f4240832dc6c09400000000000000000000000000000000000001000180c080a016abe5ef8db418b23df8218d9d08b5e0cce2230a481a0e8775e7401ce66020c8a00dce603088ce6d8ccff509747b1e56112147c8b48c83338cca178a0dfa1ce3e1c0c0", + "rlp": "0xf902b0f9023ea0ed707e6d2dfeece520a3cc76da82513b4a2d5b9f1daf16a58ababe5b73ff8aaba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f6b744822dc21e3a0a1b4439fbb82fe26e06494f7970e0f1710b8d5ce9e19764a03e7d4839fe58031100e94a0deb169b0eff95b5546243fe992ee2cd227e7e43b8a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801888016345785d8a0000825208823b0380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601080a830f4240832dc6c09400000000000000000000000000000000000001000180c080a016abe5ef8db418b23df8218d9d08b5e0cce2230a481a0e8775e7401ce66020c8a00dce603088ce6d8ccff509747b1e56112147c8b48c83338cca178a0dfa1ce3e1c0c0", "blockHeader": { - "parentHash": "0x76af8f6211d982ae627177378c24958acb7a972c79a1be09a564ddc0c23944a5", + "parentHash": "0xed707e6d2dfeece520a3cc76da82513b4a2d5b9f1daf16a58ababe5b73ff8aab", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd532585dbef7df899155f37ef8cc55f356b95ab1ff7df8ca9acd810ccfff8a52", + "stateRoot": "0xf6b744822dc21e3a0a1b4439fbb82fe26e06494f7970e0f1710b8d5ce9e19764", "transactionsTrie": "0x3e7d4839fe58031100e94a0deb169b0eff95b5546243fe992ee2cd227e7e43b8", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2811,33 +1767,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf003c5a0b941477415c1f4fc1d2118a59c7816f9021bc12a2b72844b0ed35c76" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x76af8f6211d982ae627177378c24958acb7a972c79a1be09a564ddc0c23944a5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd532585dbef7df899155f37ef8cc55f356b95ab1ff7df8ca9acd810ccfff8a52", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x18", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3b03", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf003c5a0b941477415c1f4fc1d2118a59c7816f9021bc12a2b72844b0ed35c76", - "transactions": [ - "0x02f86601080a830f4240832dc6c09400000000000000000000000000000000000001000180c080a016abe5ef8db418b23df8218d9d08b5e0cce2230a481a0e8775e7401ce66020c8a00dce603088ce6d8ccff509747b1e56112147c8b48c83338cca178a0dfa1ce3e1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x75b4fd5551f0d20b6a76727cc8de096b0042efe7578ef283d8f92c34263594ea" }, "blocknumber": "24", "transactions": [ @@ -2862,12 +1792,12 @@ "withdrawals": [] }, { - "rlp": "0xf902b0f9023ea0f003c5a0b941477415c1f4fc1d2118a59c7816f9021bc12a2b72844b0ed35c76a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a3b2c5fbdfc53d34dbd5e9ae3bf9818fee4f2cafb4591f645bcbcfcca74cf92a0ba95ac88fae0cd59be43936f758685e87576722108dca71922eda2b24244b539a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801988016345785d8a0000825208823b0f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601090a830f4240832dc6c09400000000000000000000000000000000000001000180c001a0c235edc3ec88a22f1e73c1da8d0844f5470c708d342d559f73433a9cdf85bf90a0589e5812fd66eddd89936237f1d016a4ac7c1865d3896ca981bdc225055fdba3c0c0", + "rlp": "0xf902b0f9023ea075b4fd5551f0d20b6a76727cc8de096b0042efe7578ef283d8f92c34263594eaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a1363405141761bbd2698640849dda2fabd7332176d4650860adf66bbb04a4fba0ba95ac88fae0cd59be43936f758685e87576722108dca71922eda2b24244b539a0f78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801988016345785d8a0000825208823b0f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86bb86902f86601090a830f4240832dc6c09400000000000000000000000000000000000001000180c001a0c235edc3ec88a22f1e73c1da8d0844f5470c708d342d559f73433a9cdf85bf90a0589e5812fd66eddd89936237f1d016a4ac7c1865d3896ca981bdc225055fdba3c0c0", "blockHeader": { - "parentHash": "0xf003c5a0b941477415c1f4fc1d2118a59c7816f9021bc12a2b72844b0ed35c76", + "parentHash": "0x75b4fd5551f0d20b6a76727cc8de096b0042efe7578ef283d8f92c34263594ea", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1a3b2c5fbdfc53d34dbd5e9ae3bf9818fee4f2cafb4591f645bcbcfcca74cf92", + "stateRoot": "0xa1363405141761bbd2698640849dda2fabd7332176d4650860adf66bbb04a4fb", "transactionsTrie": "0xba95ac88fae0cd59be43936f758685e87576722108dca71922eda2b24244b539", "receiptTrie": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2884,33 +1814,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x33f689aa97f0196e8a0032ce878ca88f3ab08bd2bfb635c683451bccfe1954c6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf003c5a0b941477415c1f4fc1d2118a59c7816f9021bc12a2b72844b0ed35c76", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1a3b2c5fbdfc53d34dbd5e9ae3bf9818fee4f2cafb4591f645bcbcfcca74cf92", - "receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x19", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3b0f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x33f689aa97f0196e8a0032ce878ca88f3ab08bd2bfb635c683451bccfe1954c6", - "transactions": [ - "0x02f86601090a830f4240832dc6c09400000000000000000000000000000000000001000180c001a0c235edc3ec88a22f1e73c1da8d0844f5470c708d342d559f73433a9cdf85bf90a0589e5812fd66eddd89936237f1d016a4ac7c1865d3896ca981bdc225055fdba3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x586a4c915531a05ee0f12fab36de2b2660ce65025626c79c9bc4cdb3f0073157" }, "blocknumber": "25", "transactions": [ @@ -2935,30 +1839,14 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x33f689aa97f0196e8a0032ce878ca88f3ab08bd2bfb635c683451bccfe1954c6", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x586a4c915531a05ee0f12fab36de2b2660ce65025626c79c9bc4cdb3f0073157", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -2967,29 +1855,29 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x3aa3": "0x3aa3", - "0x3aaf": "0x3aaf", - "0x3abb": "0x3abb", - "0x3ac7": "0x3ac7", - "0x3ad3": "0x3ad3", - "0x3adf": "0x3adf", - "0x3aeb": "0x3aeb", - "0x3af7": "0x3af7", - "0x3b03": "0x3b03", - "0x3b0f": "0x3b0f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x0a", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x1aa4": "0x3aa3", + "0x1ab0": "0x3aaf", + "0x1abc": "0x3abb", + "0x1ac8": "0x3ac7", + "0x1ad4": "0x3ad3", + "0x1ae0": "0x3adf", + "0x1aec": "0x3aeb", + "0x1af8": "0x3af7", + "0x1b04": "0x3b03", + "0x1b10": "0x3b0f" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x200b20", @@ -3007,18 +1895,40 @@ }, "002-fork=ShanghaiToCancunAtTime15k-target_blobs-correct_initial_blob_gas_calc": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62" + }, "blocks": [ { - "rlp": "0xf9021ff90219a0df94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a062a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", + "parentHash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3032,27 +1942,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6" }, "blocknumber": "1", "transactions": [], @@ -3060,12 +1950,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", + "parentHash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3079,27 +1969,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959" }, "blocknumber": "2", "transactions": [], @@ -3107,12 +1977,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a014af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", + "parentHash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3126,27 +1996,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da" }, "blocknumber": "3", "transactions": [], @@ -3154,12 +2004,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a06769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a082654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", + "parentHash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3173,27 +2023,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754" }, "blocknumber": "4", "transactions": [], @@ -3201,12 +2031,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0a536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a032de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", + "parentHash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3220,27 +2050,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf" }, "blocknumber": "5", "transactions": [], @@ -3248,12 +2058,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a01f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", + "parentHash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3267,27 +2077,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa" }, "blocknumber": "6", "transactions": [], @@ -3295,12 +2085,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a07d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", + "parentHash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3314,27 +2104,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691" }, "blocknumber": "7", "transactions": [], @@ -3342,12 +2112,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0d8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a026aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", + "parentHash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3361,27 +2131,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c" }, "blocknumber": "8", "transactions": [], @@ -3389,12 +2139,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a067542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", + "parentHash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3408,27 +2158,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1" }, "blocknumber": "9", "transactions": [], @@ -3436,12 +2166,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a02fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", + "parentHash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3455,27 +2185,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc" }, "blocknumber": "10", "transactions": [], @@ -3483,12 +2193,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a050f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", + "parentHash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3502,27 +2212,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463" }, "blocknumber": "11", "transactions": [], @@ -3530,12 +2220,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a019cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a03080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", + "parentHash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3549,27 +2239,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025" }, "blocknumber": "12", "transactions": [], @@ -3577,12 +2247,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", + "parentHash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3596,27 +2266,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36" }, "blocknumber": "13", "transactions": [], @@ -3624,12 +2274,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a08ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", + "parentHash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3643,27 +2293,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e" }, "blocknumber": "14", "transactions": [], @@ -3671,12 +2301,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3690,27 +2320,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3a97", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea" }, "blocknumber": "15", "transactions": [], @@ -3718,12 +2328,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a017983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e6c33fd73994895d06f380ae919650b21ad1417010157adefcaf19e606b19f61a00f4f6d4b2c295d78b305c3d118bcb105d2fb23c12c3bd6db6ffc640ca717b0e3a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a0000825208823aa380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01800a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0689e41a0f5b3076a1e1844a6d12e46b1aa609489536ace2d2fb99c65b5f22deaa0271de7c65153ed9d0b43485daa9165dd370ebb0b7e149f02d83370938b003dadc0c0", + "rlp": "0xf90319f90241a064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa096662ada5eab014ff0cceae9b5db9f5c04d1ffe68e951550560d7105ec5cfc14a00f4f6d4b2c295d78b305c3d118bcb105d2fb23c12c3bd6db6ffc640ca717b0e3a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a0000825208823aa380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01800a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0689e41a0f5b3076a1e1844a6d12e46b1aa609489536ace2d2fb99c65b5f22deaa0271de7c65153ed9d0b43485daa9165dd370ebb0b7e149f02d83370938b003dadc0c0", "blockHeader": { - "parentHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", + "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6c33fd73994895d06f380ae919650b21ad1417010157adefcaf19e606b19f61", + "stateRoot": "0x96662ada5eab014ff0cceae9b5db9f5c04d1ffe68e951550560d7105ec5cfc14", "transactionsTrie": "0x0f4f6d4b2c295d78b305c3d118bcb105d2fb23c12c3bd6db6ffc640ca717b0e3", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3740,37 +2350,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbb88e52e0f35f20a5d03c615f493174678caed36a768e5ff601e7c2fbb94a596" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6c33fd73994895d06f380ae919650b21ad1417010157adefcaf19e606b19f61", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x10", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3aa3", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xbb88e52e0f35f20a5d03c615f493174678caed36a768e5ff601e7c2fbb94a596", - "transactions": [ - "0x03f8cc01800a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0689e41a0f5b3076a1e1844a6d12e46b1aa609489536ace2d2fb99c65b5f22deaa0271de7c65153ed9d0b43485daa9165dd370ebb0b7e149f02d83370938b003dad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf4f218845d0e5b8604ee884b31a8f8321581eaae628845bd493cd3755679df97" }, "blocknumber": "16", "transactions": [ @@ -3801,12 +2381,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a0bb88e52e0f35f20a5d03c615f493174678caed36a768e5ff601e7c2fbb94a596a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a1c796eb7478a9db1ce53acc34db1d45ca7cf066faef2074866bffa79e91dd68a05b7fd001fb113ecba0c3be945cb1e6ba9851fd1ff0444b049859c1a2fd874d4fa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801188016345785d8a0000825208823aaf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01010a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a00ef1fd4f7df4a946ea4772bc710a71a62f3e15653ca776add38ba56b965d357fa02c1215e5be4475591969a432d3a134f5f4e0199a14cc47ffe2a8a863ab36425fc0c0", + "rlp": "0xf90319f90241a0f4f218845d0e5b8604ee884b31a8f8321581eaae628845bd493cd3755679df97a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e298ae064dde25eaf6910b02a817542c5171b76e4dcbecfa931c5c9bb1fab192a05b7fd001fb113ecba0c3be945cb1e6ba9851fd1ff0444b049859c1a2fd874d4fa0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801188016345785d8a0000825208823aaf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01010a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a00ef1fd4f7df4a946ea4772bc710a71a62f3e15653ca776add38ba56b965d357fa02c1215e5be4475591969a432d3a134f5f4e0199a14cc47ffe2a8a863ab36425fc0c0", "blockHeader": { - "parentHash": "0xbb88e52e0f35f20a5d03c615f493174678caed36a768e5ff601e7c2fbb94a596", + "parentHash": "0xf4f218845d0e5b8604ee884b31a8f8321581eaae628845bd493cd3755679df97", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa1c796eb7478a9db1ce53acc34db1d45ca7cf066faef2074866bffa79e91dd68", + "stateRoot": "0xe298ae064dde25eaf6910b02a817542c5171b76e4dcbecfa931c5c9bb1fab192", "transactionsTrie": "0x5b7fd001fb113ecba0c3be945cb1e6ba9851fd1ff0444b049859c1a2fd874d4f", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3823,37 +2403,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa8eec06fde36ca2284c57d9387461a44fca893885b0baec1d2cabdd313eb719f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbb88e52e0f35f20a5d03c615f493174678caed36a768e5ff601e7c2fbb94a596", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa1c796eb7478a9db1ce53acc34db1d45ca7cf066faef2074866bffa79e91dd68", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x11", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3aaf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xa8eec06fde36ca2284c57d9387461a44fca893885b0baec1d2cabdd313eb719f", - "transactions": [ - "0x03f8cc01010a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a00ef1fd4f7df4a946ea4772bc710a71a62f3e15653ca776add38ba56b965d357fa02c1215e5be4475591969a432d3a134f5f4e0199a14cc47ffe2a8a863ab36425f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x626ebf88535b277c34dbfe0df704255749ab7f37e7e5dec5c179143371cf66d6" }, "blocknumber": "17", "transactions": [ @@ -3884,12 +2434,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a0a8eec06fde36ca2284c57d9387461a44fca893885b0baec1d2cabdd313eb719fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055556ed0120d8b40a83474726fb848ee0c703f28d7f53c707ff6837484783975a064854aa0e1f60eb688ca4b91ca4efcd43fe81c0d5165a34959e843647d7585eba0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801288016345785d8a0000825208823abb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01020a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0143149cf5cf31de2f712695ea464460fb1d3097444ed16d22338b5b2829b1763a03a717e2ed00fcc94b8b2decc5ff9fe760d71d8de5559f84943b52e5475cabe48c0c0", + "rlp": "0xf90319f90241a0626ebf88535b277c34dbfe0df704255749ab7f37e7e5dec5c179143371cf66d6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa057047e4f79b50a09b2c48079146b39942b5b10084dcaa6e99c6daa7e8e96d5bda064854aa0e1f60eb688ca4b91ca4efcd43fe81c0d5165a34959e843647d7585eba0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801288016345785d8a0000825208823abb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01020a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0143149cf5cf31de2f712695ea464460fb1d3097444ed16d22338b5b2829b1763a03a717e2ed00fcc94b8b2decc5ff9fe760d71d8de5559f84943b52e5475cabe48c0c0", "blockHeader": { - "parentHash": "0xa8eec06fde36ca2284c57d9387461a44fca893885b0baec1d2cabdd313eb719f", + "parentHash": "0x626ebf88535b277c34dbfe0df704255749ab7f37e7e5dec5c179143371cf66d6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55556ed0120d8b40a83474726fb848ee0c703f28d7f53c707ff6837484783975", + "stateRoot": "0x57047e4f79b50a09b2c48079146b39942b5b10084dcaa6e99c6daa7e8e96d5bd", "transactionsTrie": "0x64854aa0e1f60eb688ca4b91ca4efcd43fe81c0d5165a34959e843647d7585eb", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3906,37 +2456,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x39760f58d6852e5f258c7aebe7ba965543b36bf4bd5d4b050e778bcd0dc133fd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa8eec06fde36ca2284c57d9387461a44fca893885b0baec1d2cabdd313eb719f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55556ed0120d8b40a83474726fb848ee0c703f28d7f53c707ff6837484783975", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x12", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3abb", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x39760f58d6852e5f258c7aebe7ba965543b36bf4bd5d4b050e778bcd0dc133fd", - "transactions": [ - "0x03f8cc01020a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0143149cf5cf31de2f712695ea464460fb1d3097444ed16d22338b5b2829b1763a03a717e2ed00fcc94b8b2decc5ff9fe760d71d8de5559f84943b52e5475cabe48" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0f8e8f48d4278dac7ab1ab8c4e3bdbf00e02b908ccc63e53ec6d4bdedb709347" }, "blocknumber": "18", "transactions": [ @@ -3967,12 +2487,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a039760f58d6852e5f258c7aebe7ba965543b36bf4bd5d4b050e778bcd0dc133fda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c83f8850c4718b9b0e24769dbb007d2082183134be17e2451d4411ac86bf49fba01ba69c4c0dcdc7e3350e7e715ef4ea76316b41e7394ec2efaf716b95f1147bd1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801388016345785d8a0000825208823ac780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01030a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0192f5a1f9b9f550fc9b6589a2cfa3a246dbf459aab3272a277e997b9a14085fda03bbb2f2340b1bf17160ea9fc11ae39feffad48c59077d581c8c9720865f7ae8dc0c0", + "rlp": "0xf90319f90241a00f8e8f48d4278dac7ab1ab8c4e3bdbf00e02b908ccc63e53ec6d4bdedb709347a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b40e8899ea43eefabec515b4f30c378fe9a3c416f1de3f21c566d000fd9a73b8a01ba69c4c0dcdc7e3350e7e715ef4ea76316b41e7394ec2efaf716b95f1147bd1a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801388016345785d8a0000825208823ac780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01030a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0192f5a1f9b9f550fc9b6589a2cfa3a246dbf459aab3272a277e997b9a14085fda03bbb2f2340b1bf17160ea9fc11ae39feffad48c59077d581c8c9720865f7ae8dc0c0", "blockHeader": { - "parentHash": "0x39760f58d6852e5f258c7aebe7ba965543b36bf4bd5d4b050e778bcd0dc133fd", + "parentHash": "0x0f8e8f48d4278dac7ab1ab8c4e3bdbf00e02b908ccc63e53ec6d4bdedb709347", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc83f8850c4718b9b0e24769dbb007d2082183134be17e2451d4411ac86bf49fb", + "stateRoot": "0xb40e8899ea43eefabec515b4f30c378fe9a3c416f1de3f21c566d000fd9a73b8", "transactionsTrie": "0x1ba69c4c0dcdc7e3350e7e715ef4ea76316b41e7394ec2efaf716b95f1147bd1", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3989,37 +2509,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4c902d021f85faee271809bc8fc065c9aff4bd8b352397615a16f3312a57646a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x39760f58d6852e5f258c7aebe7ba965543b36bf4bd5d4b050e778bcd0dc133fd", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc83f8850c4718b9b0e24769dbb007d2082183134be17e2451d4411ac86bf49fb", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x13", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3ac7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x4c902d021f85faee271809bc8fc065c9aff4bd8b352397615a16f3312a57646a", - "transactions": [ - "0x03f8cc01030a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0192f5a1f9b9f550fc9b6589a2cfa3a246dbf459aab3272a277e997b9a14085fda03bbb2f2340b1bf17160ea9fc11ae39feffad48c59077d581c8c9720865f7ae8d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x53c0e314201e2283f518b9a8fd4d3a7f13b5a4bef21dcee812e84f9b28ccfd8e" }, "blocknumber": "19", "transactions": [ @@ -4050,12 +2540,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a04c902d021f85faee271809bc8fc065c9aff4bd8b352397615a16f3312a57646aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c1fa2c463830b46035d8137cf425bbe7fbdcf18900b28296b40b39e0ca1816dfa09784becee452a3600b845d060eb6090c398a24c3e98b7a2cc640f452992f01bca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801488016345785d8a0000825208823ad380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01040a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0c78f552ea44deb3a611a4300bc41d438ace02e9f57fa3a6626c8434ee2fce096a008717a330138d8c9a8eba839978f1d074ddf6dde6e3e1d61ce9d88a49275e730c0c0", + "rlp": "0xf90319f90241a053c0e314201e2283f518b9a8fd4d3a7f13b5a4bef21dcee812e84f9b28ccfd8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa086b468d72492b780938dff095d4d0d0ba91776c97dc694f83a622797b45d7ac7a09784becee452a3600b845d060eb6090c398a24c3e98b7a2cc640f452992f01bca0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801488016345785d8a0000825208823ad380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01040a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0c78f552ea44deb3a611a4300bc41d438ace02e9f57fa3a6626c8434ee2fce096a008717a330138d8c9a8eba839978f1d074ddf6dde6e3e1d61ce9d88a49275e730c0c0", "blockHeader": { - "parentHash": "0x4c902d021f85faee271809bc8fc065c9aff4bd8b352397615a16f3312a57646a", + "parentHash": "0x53c0e314201e2283f518b9a8fd4d3a7f13b5a4bef21dcee812e84f9b28ccfd8e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc1fa2c463830b46035d8137cf425bbe7fbdcf18900b28296b40b39e0ca1816df", + "stateRoot": "0x86b468d72492b780938dff095d4d0d0ba91776c97dc694f83a622797b45d7ac7", "transactionsTrie": "0x9784becee452a3600b845d060eb6090c398a24c3e98b7a2cc640f452992f01bc", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4072,37 +2562,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfc20cedb2346b56df5294e3cecb09f769a41c109a9e6ec1b6490c9f1060e506b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4c902d021f85faee271809bc8fc065c9aff4bd8b352397615a16f3312a57646a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc1fa2c463830b46035d8137cf425bbe7fbdcf18900b28296b40b39e0ca1816df", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x14", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3ad3", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xfc20cedb2346b56df5294e3cecb09f769a41c109a9e6ec1b6490c9f1060e506b", - "transactions": [ - "0x03f8cc01040a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a0c78f552ea44deb3a611a4300bc41d438ace02e9f57fa3a6626c8434ee2fce096a008717a330138d8c9a8eba839978f1d074ddf6dde6e3e1d61ce9d88a49275e730" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb9e309dc65b6a168b08a4fabdafebfdcc5c4d5b352e49f23075e144026050a2d" }, "blocknumber": "20", "transactions": [ @@ -4133,12 +2593,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a0fc20cedb2346b56df5294e3cecb09f769a41c109a9e6ec1b6490c9f1060e506ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa074790c0148a28ae675fa8877110b745eaa4cfd276c3c81f3af93ec2e59673f51a060b7dc1322748e133f750ce142c7b678d124c3871233a4b3b90f14d09efbff05a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801588016345785d8a0000825208823adf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01050a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0ec488a15d9e04f34ef4d9214937c3f1e87638cff77d2de8ec328ea9e09d17e36a06881a9c875d747f34f219ec3cbda2f55a415bbf2e583804845730b41a08c33eec0c0", + "rlp": "0xf90319f90241a0b9e309dc65b6a168b08a4fabdafebfdcc5c4d5b352e49f23075e144026050a2da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c9bac3e6db7d2c96d07c57f2faaf7eae36faa2fe4fbe80f66b7acf9b62bf92cda060b7dc1322748e133f750ce142c7b678d124c3871233a4b3b90f14d09efbff05a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801588016345785d8a0000825208823adf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01050a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0ec488a15d9e04f34ef4d9214937c3f1e87638cff77d2de8ec328ea9e09d17e36a06881a9c875d747f34f219ec3cbda2f55a415bbf2e583804845730b41a08c33eec0c0", "blockHeader": { - "parentHash": "0xfc20cedb2346b56df5294e3cecb09f769a41c109a9e6ec1b6490c9f1060e506b", + "parentHash": "0xb9e309dc65b6a168b08a4fabdafebfdcc5c4d5b352e49f23075e144026050a2d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x74790c0148a28ae675fa8877110b745eaa4cfd276c3c81f3af93ec2e59673f51", + "stateRoot": "0xc9bac3e6db7d2c96d07c57f2faaf7eae36faa2fe4fbe80f66b7acf9b62bf92cd", "transactionsTrie": "0x60b7dc1322748e133f750ce142c7b678d124c3871233a4b3b90f14d09efbff05", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4155,37 +2615,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe2580a21ea6ad4bf5dcf9ce2dfcd10fe8b8f0dc096210be6f65f0cf29a5081d3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfc20cedb2346b56df5294e3cecb09f769a41c109a9e6ec1b6490c9f1060e506b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x74790c0148a28ae675fa8877110b745eaa4cfd276c3c81f3af93ec2e59673f51", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x15", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3adf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xe2580a21ea6ad4bf5dcf9ce2dfcd10fe8b8f0dc096210be6f65f0cf29a5081d3", - "transactions": [ - "0x03f8cc01050a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0ec488a15d9e04f34ef4d9214937c3f1e87638cff77d2de8ec328ea9e09d17e36a06881a9c875d747f34f219ec3cbda2f55a415bbf2e583804845730b41a08c33ee" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2a1c44acf6ce8ce870b12be44c135cabb9a0859d6c9b593abe8e993c8112304a" }, "blocknumber": "21", "transactions": [ @@ -4216,12 +2646,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a0e2580a21ea6ad4bf5dcf9ce2dfcd10fe8b8f0dc096210be6f65f0cf29a5081d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0313f5b6043e79782762a7817fa4f3d1b758dd3c78941bfb850d3a16df6ba4f80a00aaeb8680d6c4db19fe455bd1ee2609d5e8d1272642ed9093b91571685a874e2a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801688016345785d8a0000825208823aeb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01060a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0a55647b14feda6d4d2a86d07d3bbb6ce026465373f6ec3fad90afb604908267ba0446ad60ca6244dcf404bbaee040734239ba32e9947adb6ab97d096ad8f99e665c0c0", + "rlp": "0xf90319f90241a02a1c44acf6ce8ce870b12be44c135cabb9a0859d6c9b593abe8e993c8112304aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0879584086c58706dc927f3ef5113dbd2cdcda247ce072fb75fe04f8e186b036ba00aaeb8680d6c4db19fe455bd1ee2609d5e8d1272642ed9093b91571685a874e2a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801688016345785d8a0000825208823aeb80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01060a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0a55647b14feda6d4d2a86d07d3bbb6ce026465373f6ec3fad90afb604908267ba0446ad60ca6244dcf404bbaee040734239ba32e9947adb6ab97d096ad8f99e665c0c0", "blockHeader": { - "parentHash": "0xe2580a21ea6ad4bf5dcf9ce2dfcd10fe8b8f0dc096210be6f65f0cf29a5081d3", + "parentHash": "0x2a1c44acf6ce8ce870b12be44c135cabb9a0859d6c9b593abe8e993c8112304a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x313f5b6043e79782762a7817fa4f3d1b758dd3c78941bfb850d3a16df6ba4f80", + "stateRoot": "0x879584086c58706dc927f3ef5113dbd2cdcda247ce072fb75fe04f8e186b036b", "transactionsTrie": "0x0aaeb8680d6c4db19fe455bd1ee2609d5e8d1272642ed9093b91571685a874e2", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4238,37 +2668,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x309f3922c94aa926283f996f7532b564ad10b9807994ba6c57f6f5859e01fc11" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe2580a21ea6ad4bf5dcf9ce2dfcd10fe8b8f0dc096210be6f65f0cf29a5081d3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x313f5b6043e79782762a7817fa4f3d1b758dd3c78941bfb850d3a16df6ba4f80", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x16", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3aeb", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x309f3922c94aa926283f996f7532b564ad10b9807994ba6c57f6f5859e01fc11", - "transactions": [ - "0x03f8cc01060a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0a55647b14feda6d4d2a86d07d3bbb6ce026465373f6ec3fad90afb604908267ba0446ad60ca6244dcf404bbaee040734239ba32e9947adb6ab97d096ad8f99e665" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1ee8d32dff81a5d17cbe1d8e5d1ee03960963b5d2502ab0edb50958075afb86b" }, "blocknumber": "22", "transactions": [ @@ -4299,12 +2699,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a0309f3922c94aa926283f996f7532b564ad10b9807994ba6c57f6f5859e01fc11a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a8fedeaf1e1a4cc00ff0914691951b368ca20a723668c266074e33f2984b450aa0dd79a5c173e2b95506f905fef94f280e60db9a7f8301723964c25f2aa3d5743ea0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801788016345785d8a0000825208823af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01070a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a070bc894a26507266d14bc5e7f3382c1df5ff7f27dd2caa27ad15def5e2e9028fa008a925abaf919ea89d5cc917a39f751ba89702f63222570e8e539db8db0896d4c0c0", + "rlp": "0xf90319f90241a01ee8d32dff81a5d17cbe1d8e5d1ee03960963b5d2502ab0edb50958075afb86ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa058f6f5aa3bfc6846e1e1b6b8f11f33c5cad0944ca84d746b3039205617bf8b0ea0dd79a5c173e2b95506f905fef94f280e60db9a7f8301723964c25f2aa3d5743ea0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801788016345785d8a0000825208823af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01070a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a070bc894a26507266d14bc5e7f3382c1df5ff7f27dd2caa27ad15def5e2e9028fa008a925abaf919ea89d5cc917a39f751ba89702f63222570e8e539db8db0896d4c0c0", "blockHeader": { - "parentHash": "0x309f3922c94aa926283f996f7532b564ad10b9807994ba6c57f6f5859e01fc11", + "parentHash": "0x1ee8d32dff81a5d17cbe1d8e5d1ee03960963b5d2502ab0edb50958075afb86b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa8fedeaf1e1a4cc00ff0914691951b368ca20a723668c266074e33f2984b450a", + "stateRoot": "0x58f6f5aa3bfc6846e1e1b6b8f11f33c5cad0944ca84d746b3039205617bf8b0e", "transactionsTrie": "0xdd79a5c173e2b95506f905fef94f280e60db9a7f8301723964c25f2aa3d5743e", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4321,37 +2721,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x299dacaddf40053460602ed484bdb1262bfab5b8c97567d008e495bbe677088f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x309f3922c94aa926283f996f7532b564ad10b9807994ba6c57f6f5859e01fc11", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa8fedeaf1e1a4cc00ff0914691951b368ca20a723668c266074e33f2984b450a", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x17", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x299dacaddf40053460602ed484bdb1262bfab5b8c97567d008e495bbe677088f", - "transactions": [ - "0x03f8cc01070a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000201a070bc894a26507266d14bc5e7f3382c1df5ff7f27dd2caa27ad15def5e2e9028fa008a925abaf919ea89d5cc917a39f751ba89702f63222570e8e539db8db0896d4" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbc22243208f6a04e4a93ea443351b65cf91af2bb56ed7c6d5c1112d47a217727" }, "blocknumber": "23", "transactions": [ @@ -4382,12 +2752,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a0299dacaddf40053460602ed484bdb1262bfab5b8c97567d008e495bbe677088fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0adb88860dee20cff8e1e0a9e94cc1b11ddd24de78c8a8c1b834e2a8a62eac777a0497cbd92f29e43540eb13d39eb35e4da6de97108c4eabedb9e50386426eb5635a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801888016345785d8a0000825208823b0380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01080a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0ca957bd139c2de048a6fb2a96763ca9b9098f24d96e391a387979634daea5509a05b4b2e73cf2611318c3d1c527ff7f37f1ef200692fa7ce740edd9e16a2db8ac8c0c0", + "rlp": "0xf90319f90241a0bc22243208f6a04e4a93ea443351b65cf91af2bb56ed7c6d5c1112d47a217727a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c8663f2a0aa345f577761d873190d01bdf5d8bb1c0df572e82be7450f399b103a0497cbd92f29e43540eb13d39eb35e4da6de97108c4eabedb9e50386426eb5635a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801888016345785d8a0000825208823b0380a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01080a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0ca957bd139c2de048a6fb2a96763ca9b9098f24d96e391a387979634daea5509a05b4b2e73cf2611318c3d1c527ff7f37f1ef200692fa7ce740edd9e16a2db8ac8c0c0", "blockHeader": { - "parentHash": "0x299dacaddf40053460602ed484bdb1262bfab5b8c97567d008e495bbe677088f", + "parentHash": "0xbc22243208f6a04e4a93ea443351b65cf91af2bb56ed7c6d5c1112d47a217727", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xadb88860dee20cff8e1e0a9e94cc1b11ddd24de78c8a8c1b834e2a8a62eac777", + "stateRoot": "0xc8663f2a0aa345f577761d873190d01bdf5d8bb1c0df572e82be7450f399b103", "transactionsTrie": "0x497cbd92f29e43540eb13d39eb35e4da6de97108c4eabedb9e50386426eb5635", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4404,37 +2774,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2a31bf0113db30a19cd18244dc81e98b5f9e938cc137a286d9235bf2ff0b5405" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x299dacaddf40053460602ed484bdb1262bfab5b8c97567d008e495bbe677088f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xadb88860dee20cff8e1e0a9e94cc1b11ddd24de78c8a8c1b834e2a8a62eac777", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x18", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3b03", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0x2a31bf0113db30a19cd18244dc81e98b5f9e938cc137a286d9235bf2ff0b5405", - "transactions": [ - "0x03f8cc01080a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a0ca957bd139c2de048a6fb2a96763ca9b9098f24d96e391a387979634daea5509a05b4b2e73cf2611318c3d1c527ff7f37f1ef200692fa7ce740edd9e16a2db8ac8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2d5a0ac822d93191d725ecc4f8db401c0a3f2845e2695a90edbce88ede3a9080" }, "blocknumber": "24", "transactions": [ @@ -4465,12 +2805,12 @@ "withdrawals": [] }, { - "rlp": "0xf90319f90241a02a31bf0113db30a19cd18244dc81e98b5f9e938cc137a286d9235bf2ff0b5405a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a8833d2aae841a4e7c34d29f651577399b1721ace49ebd0065a9e4d75b4915eea0d404e3ff09b8bdfa32658d9e4303fe4686d0e2e04feb6a57b62a3ce5bc6a6cd4a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801988016345785d8a0000825208823b0f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01090a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a065b0417a0eb026cbcf5e9e64ea57f09f7b7d4b40bf3ff64422576aee04bbc105a0638e11fbb75ccce76f0210de9bdd0f0c14ceabcb13ae5fd59cb278cd7fc337cac0c0", + "rlp": "0xf90319f90241a02d5a0ac822d93191d725ecc4f8db401c0a3f2845e2695a90edbce88ede3a9080a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080b60906b571dac7e6e97b8953fa3d6c7e5c4fc83f9293c69c6a9e29dba31a36a0d404e3ff09b8bdfa32658d9e4303fe4686d0e2e04feb6a57b62a3ce5bc6a6cd4a0eaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801988016345785d8a0000825208823b0f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218306000080a00000000000000000000000000000000000000000000000000000000000000000f8d1b8cf03f8cc01090a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a065b0417a0eb026cbcf5e9e64ea57f09f7b7d4b40bf3ff64422576aee04bbc105a0638e11fbb75ccce76f0210de9bdd0f0c14ceabcb13ae5fd59cb278cd7fc337cac0c0", "blockHeader": { - "parentHash": "0x2a31bf0113db30a19cd18244dc81e98b5f9e938cc137a286d9235bf2ff0b5405", + "parentHash": "0x2d5a0ac822d93191d725ecc4f8db401c0a3f2845e2695a90edbce88ede3a9080", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa8833d2aae841a4e7c34d29f651577399b1721ace49ebd0065a9e4d75b4915ee", + "stateRoot": "0x80b60906b571dac7e6e97b8953fa3d6c7e5c4fc83f9293c69c6a9e29dba31a36", "transactionsTrie": "0xd404e3ff09b8bdfa32658d9e4303fe4686d0e2e04feb6a57b62a3ce5bc6a6cd4", "receiptTrie": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4487,37 +2827,7 @@ "blobGasUsed": "0x060000", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaa2d55bf9a98ec5cedd35cce19009c7e1a760a1bb15bd06cc1ba1115116462cc" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2a31bf0113db30a19cd18244dc81e98b5f9e938cc137a286d9235bf2ff0b5405", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa8833d2aae841a4e7c34d29f651577399b1721ace49ebd0065a9e4d75b4915ee", - "receiptsRoot": "0xeaa8c40899a61ae59615cf9985f5e2194f8fd2b57d273be63bde6733e89b12ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x19", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5208", - "timestamp": "0x3b0f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x60000", - "excessBlobGas": "0x0", - "blockHash": "0xaa2d55bf9a98ec5cedd35cce19009c7e1a760a1bb15bd06cc1ba1115116462cc", - "transactions": [ - "0x03f8cc01090a830f4240832dc6c09400000000000000000000000000000000000001000180c064f863a00100000000000000000000000000000000000000000000000000000000000000a00100000000000000000000000000000000000000000000000000000000000001a0010000000000000000000000000000000000000000000000000000000000000280a065b0417a0eb026cbcf5e9e64ea57f09f7b7d4b40bf3ff64422576aee04bbc105a0638e11fbb75ccce76f0210de9bdd0f0c14ceabcb13ae5fd59cb278cd7fc337ca" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [ - "0x0100000000000000000000000000000000000000000000000000000000000000", - "0x0100000000000000000000000000000000000000000000000000000000000001", - "0x0100000000000000000000000000000000000000000000000000000000000002" - ], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4a17166e6794c949219e2596899bfc3f37f6ad912ceda6055b25a47d3862a70f" }, "blocknumber": "25", "transactions": [ @@ -4548,30 +2858,14 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xaa2d55bf9a98ec5cedd35cce19009c7e1a760a1bb15bd06cc1ba1115116462cc", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x4a17166e6794c949219e2596899bfc3f37f6ad912ceda6055b25a47d3862a70f", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -4580,29 +2874,29 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x3aa3": "0x3aa3", - "0x3aaf": "0x3aaf", - "0x3abb": "0x3abb", - "0x3ac7": "0x3ac7", - "0x3ad3": "0x3ad3", - "0x3adf": "0x3adf", - "0x3aeb": "0x3aeb", - "0x3af7": "0x3af7", - "0x3b03": "0x3b03", - "0x3b0f": "0x3b0f" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x0a", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x1aa4": "0x3aa3", + "0x1ab0": "0x3aaf", + "0x1abc": "0x3abb", + "0x1ac8": "0x3ac7", + "0x1ad4": "0x3ad3", + "0x1ae0": "0x3adf", + "0x1aec": "0x3aeb", + "0x1af8": "0x3af7", + "0x1b04": "0x3b03", + "0x1b10": "0x3b0f" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x200b20", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json index f45a67a7eb5..3d953e1c152 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_post_fork_block_without_blob_fields.json @@ -1,18 +1,40 @@ { - "000-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=True-blob_gas_used_missing=False-excess_blob_gas_missing_post_fork": { + "000-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=True-blob_gas_used_missing=False-blob_fields_missing_post_fork": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62" + }, "blocks": [ { - "rlp": "0xf9021ff90219a0df94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a062a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", + "parentHash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -26,27 +48,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6" }, "blocknumber": "1", "transactions": [], @@ -54,12 +56,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", + "parentHash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -73,27 +75,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959" }, "blocknumber": "2", "transactions": [], @@ -101,12 +83,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a014af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", + "parentHash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -120,27 +102,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da" }, "blocknumber": "3", "transactions": [], @@ -148,12 +110,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a06769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a082654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", + "parentHash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -167,27 +129,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754" }, "blocknumber": "4", "transactions": [], @@ -195,12 +137,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0a536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a032de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", + "parentHash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -214,27 +156,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf" }, "blocknumber": "5", "transactions": [], @@ -242,12 +164,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a01f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", + "parentHash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -261,27 +183,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa" }, "blocknumber": "6", "transactions": [], @@ -289,12 +191,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a07d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", + "parentHash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -308,27 +210,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691" }, "blocknumber": "7", "transactions": [], @@ -336,12 +218,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0d8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a026aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", + "parentHash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -355,27 +237,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c" }, "blocknumber": "8", "transactions": [], @@ -383,12 +245,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a067542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", + "parentHash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -402,27 +264,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1" }, "blocknumber": "9", "transactions": [], @@ -430,12 +272,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a02fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", + "parentHash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -449,27 +291,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc" }, "blocknumber": "10", "transactions": [], @@ -477,12 +299,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a050f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", + "parentHash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -496,27 +318,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463" }, "blocknumber": "11", "transactions": [], @@ -524,12 +326,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a019cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a03080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", + "parentHash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -543,27 +345,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025" }, "blocknumber": "12", "transactions": [], @@ -571,12 +353,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", + "parentHash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -590,27 +372,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36" }, "blocknumber": "13", "transactions": [], @@ -618,12 +380,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a08ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", + "parentHash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -637,27 +399,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e" }, "blocknumber": "14", "transactions": [], @@ -665,12 +407,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -684,27 +426,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3a97", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea" }, "blocknumber": "15", "transactions": [], @@ -712,58 +434,45 @@ "withdrawals": [] }, { - "rlp": "0xf90241f9023ba017983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ccb8c3685ad2a4cfcb61bdbfca0c04a8060da21af3af7b0271d0508adc5c67e5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xccb8c3685ad2a4cfcb61bdbfca0c04a8060da21af3af7b0271d0508adc5c67e5", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x10", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", + "rlp": "0xf90241f9023ba064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "expectException": "blob fields missing post fork", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x28415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x10", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", "timestamp": "0x3a98", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "blockHash": "0x339485f8a3d0b617698721ff32ef508c7ab63eebb0ac67efe421b64cf7b45479", - "transactions": [], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5155c84b69a8af6ee6f06d7414f1e434d01dbd8a5eab1ac429b246525e319e16" }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "missing field", - "blocknumber": "16" + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -772,6 +481,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -781,20 +496,42 @@ }, "sealEngine": "NoProof" }, - "001-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=False-blob_gas_used_missing=True-excess_blob_gas_missing_post_fork": { + "001-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=False-blob_gas_used_missing=True-blob_fields_missing_post_fork": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62" + }, "blocks": [ { - "rlp": "0xf9021ff90219a0df94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a062a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", + "parentHash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -808,27 +545,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6" }, "blocknumber": "1", "transactions": [], @@ -836,12 +553,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", + "parentHash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -855,27 +572,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959" }, "blocknumber": "2", "transactions": [], @@ -883,12 +580,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a014af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", + "parentHash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -902,27 +599,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da" }, "blocknumber": "3", "transactions": [], @@ -930,12 +607,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a06769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a082654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", + "parentHash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -949,27 +626,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754" }, "blocknumber": "4", "transactions": [], @@ -977,12 +634,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0a536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a032de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", + "parentHash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -996,27 +653,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf" }, "blocknumber": "5", "transactions": [], @@ -1024,12 +661,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a01f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", + "parentHash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1043,27 +680,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa" }, "blocknumber": "6", "transactions": [], @@ -1071,12 +688,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a07d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", + "parentHash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1090,27 +707,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691" }, "blocknumber": "7", "transactions": [], @@ -1118,12 +715,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0d8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a026aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", + "parentHash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1137,27 +734,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c" }, "blocknumber": "8", "transactions": [], @@ -1165,12 +742,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a067542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", + "parentHash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1184,27 +761,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1" }, "blocknumber": "9", "transactions": [], @@ -1212,12 +769,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a02fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", + "parentHash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1231,27 +788,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc" }, "blocknumber": "10", "transactions": [], @@ -1259,12 +796,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a050f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", + "parentHash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1278,27 +815,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463" }, "blocknumber": "11", "transactions": [], @@ -1306,12 +823,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a019cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a03080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", + "parentHash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1325,27 +842,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025" }, "blocknumber": "12", "transactions": [], @@ -1353,12 +850,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", + "parentHash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1372,27 +869,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36" }, "blocknumber": "13", "transactions": [], @@ -1400,12 +877,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a08ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", + "parentHash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1419,27 +896,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e" }, "blocknumber": "14", "transactions": [], @@ -1447,12 +904,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1466,27 +923,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3a97", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea" }, "blocknumber": "15", "transactions": [], @@ -1494,58 +931,45 @@ "withdrawals": [] }, { - "rlp": "0xf90241f9023ba017983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ccb8c3685ad2a4cfcb61bdbfca0c04a8060da21af3af7b0271d0508adc5c67e5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xccb8c3685ad2a4cfcb61bdbfca0c04a8060da21af3af7b0271d0508adc5c67e5", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x10", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", + "rlp": "0xf90241f9023ba064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "expectException": "blob fields missing post fork", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x28415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x10", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", "timestamp": "0x3a98", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "excessBlobGas": "0x0", - "blockHash": "0x339485f8a3d0b617698721ff32ef508c7ab63eebb0ac67efe421b64cf7b45479", - "transactions": [], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5155c84b69a8af6ee6f06d7414f1e434d01dbd8a5eab1ac429b246525e319e16" }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "missing field", - "blocknumber": "16" + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1554,6 +978,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1563,20 +993,42 @@ }, "sealEngine": "NoProof" }, - "002-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=True-blob_gas_used_missing=True-excess_blob_gas_missing_post_fork": { + "002-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_missing=True-blob_gas_used_missing=True-blob_fields_missing_post_fork": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62" + }, "blocks": [ { - "rlp": "0xf9021ff90219a0df94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a062a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", + "parentHash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1590,27 +1042,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6" }, "blocknumber": "1", "transactions": [], @@ -1618,12 +1050,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", + "parentHash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1637,27 +1069,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959" }, "blocknumber": "2", "transactions": [], @@ -1665,12 +1077,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a014af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", + "parentHash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1684,27 +1096,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da" }, "blocknumber": "3", "transactions": [], @@ -1712,12 +1104,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a06769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a082654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", + "parentHash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1731,27 +1123,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754" }, "blocknumber": "4", "transactions": [], @@ -1759,12 +1131,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0a536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a032de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", + "parentHash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1778,27 +1150,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf" }, "blocknumber": "5", "transactions": [], @@ -1806,12 +1158,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a01f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", + "parentHash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1825,27 +1177,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa" }, "blocknumber": "6", "transactions": [], @@ -1853,12 +1185,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a07d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", + "parentHash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1872,27 +1204,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691" }, "blocknumber": "7", "transactions": [], @@ -1900,12 +1212,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0d8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a026aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", + "parentHash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1919,27 +1231,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c" }, "blocknumber": "8", "transactions": [], @@ -1947,12 +1239,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a067542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", + "parentHash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1966,27 +1258,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1" }, "blocknumber": "9", "transactions": [], @@ -1994,12 +1266,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a02fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", + "parentHash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2013,27 +1285,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc" }, "blocknumber": "10", "transactions": [], @@ -2041,12 +1293,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a050f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", + "parentHash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2060,27 +1312,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463" }, "blocknumber": "11", "transactions": [], @@ -2088,12 +1320,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a019cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a03080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", + "parentHash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2107,27 +1339,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025" }, "blocknumber": "12", "transactions": [], @@ -2135,12 +1347,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", + "parentHash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2154,27 +1366,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36" }, "blocknumber": "13", "transactions": [], @@ -2182,12 +1374,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a08ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", + "parentHash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2201,27 +1393,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e" }, "blocknumber": "14", "transactions": [], @@ -2229,12 +1401,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2248,27 +1420,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3a97", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea" }, "blocknumber": "15", "transactions": [], @@ -2276,57 +1428,44 @@ "withdrawals": [] }, { - "rlp": "0xf90240f9023aa017983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ccb8c3685ad2a4cfcb61bdbfca0c04a8060da21af3af7b0271d0508adc5c67e5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xccb8c3685ad2a4cfcb61bdbfca0c04a8060da21af3af7b0271d0508adc5c67e5", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x10", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", + "rlp": "0xf90240f9023aa064177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367feaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa028415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a000080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "expectException": "blob fields missing post fork", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x28415a6a7e08c2fb01beaa4d4e8397ed3c51f8c7400d3619803652afedf658c1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x10", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", "timestamp": "0x3a98", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x9aa5d51a30862cc2e775b8738e8bcdf070e48ae855712d159af545f04a247b30", - "transactions": [], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xacb59ea4cb2ed97ba5f95d4d2bf5401c0b63b69bdbf0215a5bdcf43e9f9eefea" }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "expectException": "missing field", - "blocknumber": "16" + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x17983baab7d843e521e7911bbb42651d405851f4cde37e4a7a87b95c75d94c44", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x64177ba1942c915cc9c4d95a69b27befb29a3e0c2a56882fba4fb8c5bf367fea", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -2335,6 +1474,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json index 6f15323ab54..8fddbd8e7aa 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/excess_blob_gas_fork_transition/invalid_pre_fork_block_with_blob_fields.json @@ -1,18 +1,40 @@ { - "000-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=True-blob_gas_used_present=False-invalid_pre_fork_excess_blob_gas": { + "000-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=True-blob_gas_used_present=False-invalid_pre_fork_blob_fields": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62" + }, "blocks": [ { - "rlp": "0xf9021ff90219a0df94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a062a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", + "parentHash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -26,27 +48,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6" }, "blocknumber": "1", "transactions": [], @@ -54,12 +56,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", + "parentHash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -73,27 +75,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959" }, "blocknumber": "2", "transactions": [], @@ -101,12 +83,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a014af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", + "parentHash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -120,27 +102,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da" }, "blocknumber": "3", "transactions": [], @@ -148,12 +110,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a06769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a082654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", + "parentHash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -167,27 +129,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754" }, "blocknumber": "4", "transactions": [], @@ -195,12 +137,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0a536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a032de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", + "parentHash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -214,27 +156,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf" }, "blocknumber": "5", "transactions": [], @@ -242,12 +164,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a01f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", + "parentHash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -261,27 +183,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa" }, "blocknumber": "6", "transactions": [], @@ -289,12 +191,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a07d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", + "parentHash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -308,27 +210,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691" }, "blocknumber": "7", "transactions": [], @@ -336,12 +218,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0d8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a026aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", + "parentHash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -355,27 +237,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c" }, "blocknumber": "8", "transactions": [], @@ -383,12 +245,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a067542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", + "parentHash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -402,27 +264,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1" }, "blocknumber": "9", "transactions": [], @@ -430,12 +272,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a02fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", + "parentHash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -449,27 +291,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc" }, "blocknumber": "10", "transactions": [], @@ -477,12 +299,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a050f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", + "parentHash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -496,27 +318,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463" }, "blocknumber": "11", "transactions": [], @@ -524,12 +326,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a019cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a03080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", + "parentHash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -543,27 +345,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025" }, "blocknumber": "12", "transactions": [], @@ -571,12 +353,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", + "parentHash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -590,27 +372,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36" }, "blocknumber": "13", "transactions": [], @@ -618,12 +380,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a08ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", + "parentHash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -637,27 +399,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e" }, "blocknumber": "14", "transactions": [], @@ -665,56 +407,44 @@ "withdrawals": [] }, { - "rlp": "0xf90220f9021aa05fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180c0c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", + "rlp": "0xf90220f9021aa07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180c0c0c0", + "expectException": "invalid pre fork blob fields", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0f", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", "timestamp": "0x3a97", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "excessBlobGas": "0x0", - "blockHash": "0x984b985ba5ba5aa79f5bc31a38f28c44ce465c66500b63966324e35d3099f2d0", - "transactions": [], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "excessBlobGas": "0x00", + "hash": "0x1c1e9818fb8c040850c98909c62ec5dae58dedcefcf7e7c5c2055dd2868168f1" }, - "version": "2" - }, - "expectException": "invalid field", - "blocknumber": "15" + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -723,6 +453,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -732,20 +468,42 @@ }, "sealEngine": "NoProof" }, - "001-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=False-blob_gas_used_present=True-invalid_pre_fork_excess_blob_gas": { + "001-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=False-blob_gas_used_present=True-invalid_pre_fork_blob_fields": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62" + }, "blocks": [ { - "rlp": "0xf9021ff90219a0df94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a062a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", + "parentHash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -759,27 +517,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6" }, "blocknumber": "1", "transactions": [], @@ -787,12 +525,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", + "parentHash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -806,27 +544,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959" }, "blocknumber": "2", "transactions": [], @@ -834,12 +552,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a014af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", + "parentHash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -853,27 +571,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da" }, "blocknumber": "3", "transactions": [], @@ -881,12 +579,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a06769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a082654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", + "parentHash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -900,27 +598,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754" }, "blocknumber": "4", "transactions": [], @@ -928,12 +606,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0a536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a032de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", + "parentHash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -947,27 +625,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf" }, "blocknumber": "5", "transactions": [], @@ -975,12 +633,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a01f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", + "parentHash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -994,27 +652,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa" }, "blocknumber": "6", "transactions": [], @@ -1022,12 +660,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a07d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", + "parentHash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1041,27 +679,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691" }, "blocknumber": "7", "transactions": [], @@ -1069,12 +687,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0d8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a026aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", + "parentHash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1088,27 +706,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c" }, "blocknumber": "8", "transactions": [], @@ -1116,12 +714,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a067542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", + "parentHash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1135,27 +733,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1" }, "blocknumber": "9", "transactions": [], @@ -1163,12 +741,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a02fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", + "parentHash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1182,27 +760,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc" }, "blocknumber": "10", "transactions": [], @@ -1210,12 +768,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a050f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", + "parentHash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1229,27 +787,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463" }, "blocknumber": "11", "transactions": [], @@ -1257,12 +795,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a019cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a03080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", + "parentHash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1276,27 +814,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025" }, "blocknumber": "12", "transactions": [], @@ -1304,12 +822,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", + "parentHash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1323,27 +841,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36" }, "blocknumber": "13", "transactions": [], @@ -1351,12 +849,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a08ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", + "parentHash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1370,27 +868,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e" }, "blocknumber": "14", "transactions": [], @@ -1398,56 +876,44 @@ "withdrawals": [] }, { - "rlp": "0xf90220f9021aa05fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180c0c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", + "rlp": "0xf90220f9021aa07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42180c0c0c0", + "expectException": "invalid pre fork blob fields", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0f", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", "timestamp": "0x3a97", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "blockHash": "0x984b985ba5ba5aa79f5bc31a38f28c44ce465c66500b63966324e35d3099f2d0", - "transactions": [], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "hash": "0x1c1e9818fb8c040850c98909c62ec5dae58dedcefcf7e7c5c2055dd2868168f1" }, - "version": "2" - }, - "expectException": "invalid field", - "blocknumber": "15" + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1456,6 +922,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1465,20 +937,42 @@ }, "sealEngine": "NoProof" }, - "002-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=True-blob_gas_used_present=True-invalid_pre_fork_excess_blob_gas": { + "002-fork=ShanghaiToCancunAtTime15k-excess_blob_gas_present=True-blob_gas_used_present=True-invalid_pre_fork_blob_fields": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62" + }, "blocks": [ { - "rlp": "0xf9021ff90219a0df94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a062a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000808203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", + "parentHash": "0x62a3952bff0f4c551280e37529f7262e943728565d381f8b3809a8a2d6894b62", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1492,27 +986,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6" }, "blocknumber": "1", "transactions": [], @@ -1520,12 +994,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000808207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", + "parentHash": "0xa6b5ec5f9e31f19ecedc1e3ff9199171d685d1eb37578a9d9f15ff79774116c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1539,27 +1013,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xce01c18e4470bd190891bc3b7083b9bd43ae89c0078482112c8f2a6bf2ee8698", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959" }, "blocknumber": "2", "transactions": [], @@ -1567,12 +1021,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a014af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000080820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", + "parentHash": "0x14af96433f42dd247f32441ab6718a0cd2c360d1aad6020e7f61d0ee87f54959", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1586,27 +1040,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x541978e1e87f9c7e7e93e9ec656f2294a9c9a4f62a2aeff8b5d30128c3cd1478", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da" }, "blocknumber": "3", "transactions": [], @@ -1614,12 +1048,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a06769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a082654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000080820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", + "parentHash": "0x82654f9384ce991af3fc90f2f8b2a10bb63d02d27b9c8a67cd2c520c120548da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1633,27 +1067,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6769e2e20643288b93bbe01ba2b4eb55e6f4159493965130b929bb248d76a41b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754" }, "blocknumber": "4", "transactions": [], @@ -1661,12 +1075,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0a536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a032de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a00008082138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", + "parentHash": "0x32de784a12e4d2cdddac24390786361378087191283973a40894bdf0a23b8754", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1680,27 +1094,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa536ca281736688997522f4b779b7359e09478d2d4dcefee10190c983c97b3b9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf" }, "blocknumber": "5", "transactions": [], @@ -1708,12 +1102,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a01f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a00008082176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", + "parentHash": "0x1f6a293ff31771a4c9b221f9cb3af7b4121ef73768c2e676561d079c54c414cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1727,27 +1121,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xac7025bfe13b3ecdf0ee78062ef3e6f30b7f3b5187a9153eefa5ecf97dd41643", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa" }, "blocknumber": "6", "transactions": [], @@ -1755,12 +1129,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a07d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000080821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", + "parentHash": "0xade0b651d2d0f69590cb7212d48132094aaf38b5e168a4a0081240f6b268ffaa", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1774,27 +1148,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d41b929aaabfbd61f521cbd893a3471c274065320ca94a78483e9eb67b9175e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691" }, "blocknumber": "7", "transactions": [], @@ -1802,12 +1156,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0d8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a026aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000080821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", + "parentHash": "0x26aadcec2b641feba29608cb4e156ecebae90f2b3dc58b9b120d675eb068e691", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1821,27 +1175,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd8d15a2199660d26a8193395945819889e761f15040ca75f0b75eb3c5370963d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c" }, "blocknumber": "8", "transactions": [], @@ -1849,12 +1183,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a05810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a067542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a00008082232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", + "parentHash": "0x67542942696328ef3f0347ffcda91b73512041c6b3ba8257edce7680d2f8003c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1868,27 +1202,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5810354a655c6f6b7e736fe79a946ef06fd437a085308131e9a9cd413b2b7fdb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1" }, "blocknumber": "9", "transactions": [], @@ -1896,12 +1210,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a02fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0a64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a00008082270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", + "parentHash": "0xa64eddafd629ba0f1cd7555a5558b3537978738ffbd9eb2459a8778fc2f104f1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1915,27 +1229,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2fcfca40344d45e1a95a71bda5b9eea140f5874d06c7e8c269b1d24052324217", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc" }, "blocknumber": "10", "transactions": [], @@ -1943,12 +1237,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0ea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a050f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", + "parentHash": "0x50f68c4b975d4177f6b8d5856a1464478879fe08910bbadad8a4d53e4960adbc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1962,27 +1256,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xea0bbf0f8f895a039472a351695c5ca137e2f93a3c6a3d8bf160b46e2a790e22", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463" }, "blocknumber": "11", "transactions": [], @@ -1990,12 +1264,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a019cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a03080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000080822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", + "parentHash": "0x3080eec1bc3fc3b43dd898dc428fd2421aee116770a77601f236db01b01e6463", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2009,27 +1283,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x19cf75a0a3d34fd6bb44e732b43098c261e5a53ad0760fb8a4d174e6037b3d90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025" }, "blocknumber": "12", "transactions": [], @@ -2037,12 +1291,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a0646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0ce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a0000808232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", + "parentHash": "0xce8c807d8e8d0e62bf3fb80ddfb18cb0a3892245b3adc0d073a426b3ab650025", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2056,27 +1310,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x646eea0faa5a349bcb778ca0e5ed1e0469b5d8cb2597e3524d0e377a8d3c9b8f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36" }, "blocknumber": "13", "transactions": [], @@ -2084,12 +1318,12 @@ "withdrawals": [] }, { - "rlp": "0xf9021ff90219a08ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "rlp": "0xf9021ff90219a0876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a0000808236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "blockHeader": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", + "parentHash": "0x876080a31785b5cb13aec8a9f2a8377eeba7b9a495ea9e01a0144c3c80eb6b36", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2103,27 +1337,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8ae761539dfebc106ab768b470e5aabd7138ac911f570b9aea7200661f99dd8c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "transactions": [], - "withdrawals": [] - }, - "version": "2" + "hash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e" }, "blocknumber": "14", "transactions": [], @@ -2131,57 +1345,45 @@ "withdrawals": [] }, { - "rlp": "0xf90221f9021ba05fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080c0c0c0", - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x0", + "rlp": "0xf90221f9021ba07ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000080823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080c0c0c0", + "expectException": "invalid pre fork blob fields", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x948622f2177f30e161126ff783f720dced1aa9aaf394c0784c9867b59cf36df9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0f", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", "timestamp": "0x3a97", "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfb6337522c8c13a9b97479d8ad95624b7b96c039b0ebf259493504153701fccb", - "transactions": [], - "withdrawals": [] + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "hash": "0xeecbcca0613b3c5c92cf0a66a029c904038ef385f26f23c99a550e8a91fe73aa" }, - "version": "2" - }, - "expectException": "invalid field", - "blocknumber": "15" + "transactions": [], + "uncleHeaders": [], + "withdrawals": [] + } } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xda6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xdf94d9b95f92b706e8e88465351e60ca773922d74b1723b84a5b60a14de072f9" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0da6c2074c10885fbca5693e0d9f94cc93f22a38f0a99d988432d710a7e64eef6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x5fc48f973af58530677dd3e9dcfe1ab6166223c029fdd0ffd5e52cffe6a7bdc4", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x7ae2e4b82775c956911581694c6ba462b6a04380af8a34cb56708ab2cb650c8e", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -2190,6 +1392,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json index 1a4111e6a49..361f33f2eaf 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/invalid_precompile_calls.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-success=False-out_of_bounds_z": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dfd658ce04ac21cf5eb3e266c5503d09fff76f216f6a2a5e2b08fc138fd22da5a073effe15f963eec0bc905a53a62c84d14293e99fc445aa2a48fc7e69392a22a4a07c628e6d0afaf53383fc892cdc033cecaad09a01eea6bb62b5b1ae18bb0f9c99b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286aa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0f976375692b7ec47a3e9881846951e97b318dca2124ef6d58a827bc76300c9d0a065478b76b4ddc2fe090043aa2c62d1760e13841fcd394a616889ee2198d196efc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09aa6093b8e4e56bac34298a4dd5b80a95ac8a325eeeb620b89cfa47b1a886a7ca073effe15f963eec0bc905a53a62c84d14293e99fc445aa2a48fc7e69392a22a4a07c628e6d0afaf53383fc892cdc033cecaad09a01eea6bb62b5b1ae18bb0f9c99b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286aa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0f976375692b7ec47a3e9881846951e97b318dca2124ef6d58a827bc76300c9d0a065478b76b4ddc2fe090043aa2c62d1760e13841fcd394a616889ee2198d196efc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdfd658ce04ac21cf5eb3e266c5503d09fff76f216f6a2a5e2b08fc138fd22da5", + "stateRoot": "0x9aa6093b8e4e56bac34298a4dd5b80a95ac8a325eeeb620b89cfa47b1a886a7c", "transactionsTrie": "0x73effe15f963eec0bc905a53a62c84d14293e99fc445aa2a48fc7e69392a22a4", "receiptTrie": "0x7c628e6d0afaf53383fc892cdc033cecaad09a01eea6bb62b5b1ae18bb0f9c99", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfaec5193b89464e975bb6cad2630a85b1b3ea03e877d7f7e53b37a6d30e26a78" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdfd658ce04ac21cf5eb3e266c5503d09fff76f216f6a2a5e2b08fc138fd22da5", - "receiptsRoot": "0x7c628e6d0afaf53383fc892cdc033cecaad09a01eea6bb62b5b1ae18bb0f9c99", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286aa", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfaec5193b89464e975bb6cad2630a85b1b3ea03e877d7f7e53b37a6d30e26a78", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0f976375692b7ec47a3e9881846951e97b318dca2124ef6d58a827bc76300c9d0a065478b76b4ddc2fe090043aa2c62d1760e13841fcd394a616889ee2198d196ef" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x44116b51024c4a6e8c72ba1e96e690fb57a001134e134730cb85f6ad9aacd39e" }, "blocknumber": "1", "transactions": [ @@ -80,45 +79,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfaec5193b89464e975bb6cad2630a85b1b3ea03e877d7f7e53b37a6d30e26a78", - "network": "Cancun", + "lastblockhash": "0x44116b51024c4a6e8c72ba1e96e690fb57a001134e134730cb85f6ad9aacd39e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -127,14 +101,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -146,6 +112,14 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee515a", @@ -157,18 +131,43 @@ }, "001-fork=Cancun-success=False-out_of_bounds_y": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09762a377517194e0fa14531ce73b95cf7efd83993ebccab5493f983b3c6ddb07a0dc5f4feb0da0b37bdffe3871e1383e07cb8e33a5c16821d6eaad433d275d5356a085425d0c634b9a4cea7aa20f108c4cd297d13fcecaa9d63c520794d07056e220b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301eb320c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a09c6c1e9f235cb547e30d9c1486d00252107b9454b007d4d760ef8432f320bc21a00f478596112de8ec3c11c07b2c7c3d5ad2fbe0c07bbb25e09b967ebe7aa1a7cec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ded05f3e49a5c81db5049636fcd05b096e9157bd7fe7eb20289072ac79549cba0dc5f4feb0da0b37bdffe3871e1383e07cb8e33a5c16821d6eaad433d275d5356a085425d0c634b9a4cea7aa20f108c4cd297d13fcecaa9d63c520794d07056e220b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301eb320c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a09c6c1e9f235cb547e30d9c1486d00252107b9454b007d4d760ef8432f320bc21a00f478596112de8ec3c11c07b2c7c3d5ad2fbe0c07bbb25e09b967ebe7aa1a7cec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9762a377517194e0fa14531ce73b95cf7efd83993ebccab5493f983b3c6ddb07", + "stateRoot": "0x9ded05f3e49a5c81db5049636fcd05b096e9157bd7fe7eb20289072ac79549cb", "transactionsTrie": "0xdc5f4feb0da0b37bdffe3871e1383e07cb8e33a5c16821d6eaad433d275d5356", "receiptTrie": "0x85425d0c634b9a4cea7aa20f108c4cd297d13fcecaa9d63c520794d07056e220", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -185,33 +184,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0ae5196a498012f9bfa7012ce523df13daa3337cbde16fd2a2d9c86e59289d51" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9762a377517194e0fa14531ce73b95cf7efd83993ebccab5493f983b3c6ddb07", - "receiptsRoot": "0x85425d0c634b9a4cea7aa20f108c4cd297d13fcecaa9d63c520794d07056e220", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1eb32", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0ae5196a498012f9bfa7012ce523df13daa3337cbde16fd2a2d9c86e59289d51", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a09c6c1e9f235cb547e30d9c1486d00252107b9454b007d4d760ef8432f320bc21a00f478596112de8ec3c11c07b2c7c3d5ad2fbe0c07bbb25e09b967ebe7aa1a7ce" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x92a29952e32221ef29dd6bd908923c2a66286bc200aa676ed2358a72614a75d7" }, "blocknumber": "1", "transactions": [ @@ -236,45 +209,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0ae5196a498012f9bfa7012ce523df13daa3337cbde16fd2a2d9c86e59289d51", - "network": "Cancun", + "lastblockhash": "0x92a29952e32221ef29dd6bd908923c2a66286bc200aa676ed2358a72614a75d7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -283,14 +231,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -300,6 +240,14 @@ "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff291a2", @@ -311,18 +259,43 @@ }, "002-fork=Cancun-success=False-correct_proof_1_input_too_short": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf9036ff9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b1264efd8ac275e69629165f1e899dc7aa01e2970ae71af83b45ff7b3a311fd1a08c7deaf8db8187c6e35dc646c8e3bde3f7148c09c34db5154a303084d5597c0aa0da784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0231e09fabbb1781732fed1710f36fe9fd33069472ca22ea08056d85bf870256ca03b2f321fd4d1faed38e4a9eab5bedb077d450e12daf9406b94ae48a5a9b9be34c0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bf2720c38f36894ddc9358dfd83f2dd17d8326856804a292f639e82349347473a08c7deaf8db8187c6e35dc646c8e3bde3f7148c09c34db5154a303084d5597c0aa0da784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0231e09fabbb1781732fed1710f36fe9fd33069472ca22ea08056d85bf870256ca03b2f321fd4d1faed38e4a9eab5bedb077d450e12daf9406b94ae48a5a9b9be34c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1264efd8ac275e69629165f1e899dc7aa01e2970ae71af83b45ff7b3a311fd1", + "stateRoot": "0xbf2720c38f36894ddc9358dfd83f2dd17d8326856804a292f639e82349347473", "transactionsTrie": "0x8c7deaf8db8187c6e35dc646c8e3bde3f7148c09c34db5154a303084d5597c0a", "receiptTrie": "0xda784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -339,33 +312,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9f1b14a51f8c3b737c6c84d83e78706d64bac75653936330e06f821e8638927d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb1264efd8ac275e69629165f1e899dc7aa01e2970ae71af83b45ff7b3a311fd1", - "receiptsRoot": "0xda784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286be", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9f1b14a51f8c3b737c6c84d83e78706d64bac75653936330e06f821e8638927d", - "transactions": [ - "0x02f9012301808007830f424094000000000000000000000000000000000000010080b8bf010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0231e09fabbb1781732fed1710f36fe9fd33069472ca22ea08056d85bf870256ca03b2f321fd4d1faed38e4a9eab5bedb077d450e12daf9406b94ae48a5a9b9be34" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2f34118e387d86bb797fa9736ab6055cc0d265efe3cb8d74e57b1a507bcc1527" }, "blocknumber": "1", "transactions": [ @@ -390,45 +337,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9f1b14a51f8c3b737c6c84d83e78706d64bac75653936330e06f821e8638927d", - "network": "Cancun", + "lastblockhash": "0x2f34118e387d86bb797fa9736ab6055cc0d265efe3cb8d74e57b1a507bcc1527", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -437,14 +359,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -456,6 +370,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee50ce", @@ -467,18 +389,43 @@ }, "003-fork=Cancun-success=False-correct_proof_1_input_too_short_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf9033ef9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e3a7c9b4069d66c20b472ce37ba697f4e8e3127cf09c443112828282b19ec8aba00e25e134742d04fd314533383f3a5edf78e2d416e044ee655e3e74587f0865dca03e8bbd685dd49c8026b6ad80c058d0d8370a813e05c2f7f9b2c57d9b1411bc36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8fab8f802f8f501808007830f424094000000000000000000000000000000000000010080b891010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c001a04e95ec79ec1d800110e3d156cd7481b694367b44cc6c5346a70ae9ccc055ae5ca045164313d41a5bc9779173f4c64868a97f7e54b803797d6e991aa402658f989ec0c0", + "rlp": "0xf9033ef9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01bfa35ed56fe1c2807036596551096037cf8f185f6ebadf5ae6e16c3ab07daeea00e25e134742d04fd314533383f3a5edf78e2d416e044ee655e3e74587f0865dca03e8bbd685dd49c8026b6ad80c058d0d8370a813e05c2f7f9b2c57d9b1411bc36b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8fab8f802f8f501808007830f424094000000000000000000000000000000000000010080b891010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c001a04e95ec79ec1d800110e3d156cd7481b694367b44cc6c5346a70ae9ccc055ae5ca045164313d41a5bc9779173f4c64868a97f7e54b803797d6e991aa402658f989ec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe3a7c9b4069d66c20b472ce37ba697f4e8e3127cf09c443112828282b19ec8ab", + "stateRoot": "0x1bfa35ed56fe1c2807036596551096037cf8f185f6ebadf5ae6e16c3ab07daee", "transactionsTrie": "0x0e25e134742d04fd314533383f3a5edf78e2d416e044ee655e3e74587f0865dc", "receiptTrie": "0x3e8bbd685dd49c8026b6ad80c058d0d8370a813e05c2f7f9b2c57d9b1411bc36", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -495,33 +442,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0211263ff79492e220a466fb13f95bced99964f7d17d49345c06ffbb66e1fe56" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe3a7c9b4069d66c20b472ce37ba697f4e8e3127cf09c443112828282b19ec8ab", - "receiptsRoot": "0x3e8bbd685dd49c8026b6ad80c058d0d8370a813e05c2f7f9b2c57d9b1411bc36", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28600", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0211263ff79492e220a466fb13f95bced99964f7d17d49345c06ffbb66e1fe56", - "transactions": [ - "0x02f8f501808007830f424094000000000000000000000000000000000000010080b891010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0c001a04e95ec79ec1d800110e3d156cd7481b694367b44cc6c5346a70ae9ccc055ae5ca045164313d41a5bc9779173f4c64868a97f7e54b803797d6e991aa402658f989e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4800bd70f531bdbebc6902d2340cc0341068e6cce4baf0df8190c5b52c62b01b" }, "blocknumber": "1", "transactions": [ @@ -546,45 +467,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0211263ff79492e220a466fb13f95bced99964f7d17d49345c06ffbb66e1fe56", - "network": "Cancun", + "lastblockhash": "0x4800bd70f531bdbebc6902d2340cc0341068e6cce4baf0df8190c5b52c62b01b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -593,14 +489,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -612,6 +500,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee5600", @@ -623,18 +519,43 @@ }, "004-fork=Cancun-success=False-correct_proof_1_input_too_long": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90371f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01fa9adefbb94331f93acb2151eadb58953fbf149f70afa06c7e727bb52f91e5aa0a85c2c5bc4d00589f24a0227614338c937261934b31ed6690bc68923a63e37cda0ae226711cc4155fa5d1d69e9e3db2030e88c4d2442ed478f297c9a9b9a7065e8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c1010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0a21f0bc4ab57a7932fd2ff7dcd74c78dab0c321f6818c53a84dd8f032fb6cb33a01abce298b1dbda9570db46401ec144bccbdabc47b3fede279ffb4a7b455d3387c0c0", + "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aa01d9a569693ec04e9001dbf9454618e73ad4528253a6ee9189c75254e046e0a0a85c2c5bc4d00589f24a0227614338c937261934b31ed6690bc68923a63e37cda0ae226711cc4155fa5d1d69e9e3db2030e88c4d2442ed478f297c9a9b9a7065e8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c1010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0a21f0bc4ab57a7932fd2ff7dcd74c78dab0c321f6818c53a84dd8f032fb6cb33a01abce298b1dbda9570db46401ec144bccbdabc47b3fede279ffb4a7b455d3387c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1fa9adefbb94331f93acb2151eadb58953fbf149f70afa06c7e727bb52f91e5a", + "stateRoot": "0xaa01d9a569693ec04e9001dbf9454618e73ad4528253a6ee9189c75254e046e0", "transactionsTrie": "0xa85c2c5bc4d00589f24a0227614338c937261934b31ed6690bc68923a63e37cd", "receiptTrie": "0xae226711cc4155fa5d1d69e9e3db2030e88c4d2442ed478f297c9a9b9a7065e8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -651,33 +572,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x833f69580af97e5ef749e32082eaed8d7d0f9fbf90f757015d2b4ffde87e6872" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1fa9adefbb94331f93acb2151eadb58953fbf149f70afa06c7e727bb52f91e5a", - "receiptsRoot": "0xae226711cc4155fa5d1d69e9e3db2030e88c4d2442ed478f297c9a9b9a7065e8", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286cc", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x833f69580af97e5ef749e32082eaed8d7d0f9fbf90f757015d2b4ffde87e6872", - "transactions": [ - "0x02f9012501808007830f424094000000000000000000000000000000000000010080b8c1010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0a21f0bc4ab57a7932fd2ff7dcd74c78dab0c321f6818c53a84dd8f032fb6cb33a01abce298b1dbda9570db46401ec144bccbdabc47b3fede279ffb4a7b455d3387" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x747daaee7b9bab2ecb977cb8b54153648404c06a302cfef9408c9fb75c9294e7" }, "blocknumber": "1", "transactions": [ @@ -702,45 +597,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x833f69580af97e5ef749e32082eaed8d7d0f9fbf90f757015d2b4ffde87e6872", - "network": "Cancun", + "lastblockhash": "0x747daaee7b9bab2ecb977cb8b54153648404c06a302cfef9408c9fb75c9294e7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -749,14 +619,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -768,6 +630,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee506c", @@ -779,18 +649,43 @@ }, "005-fork=Cancun-success=False-correct_proof_1_input_extra_long": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90770f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0e97bad97ba63d7904bd92ae48c5da752cc3480e48eb17c830e9f78c5b8d045a0e1b05b018f364146435a4a3265b4ac9fd4d84c81bf38dbbf23080ad504e2c148a091b6584ed4e63d11d71b8aa83f53afa015b99be95111c00698a4ee34686e9970b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830297800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9052bb9052802f9052401808007830f424094000000000000000000000000000000000000010080b904bf010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a045fbcc8f50ad76c984aa0dc7243fe291dcce05cd947d0386fe3edc486c0e8ee7a05b9d02c59375a92a1ce16427d9442aff32f0432df7c5cd84753a80547ec56fb1c0c0", + "rlp": "0xf90770f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013343979f1f2f98605f05a41b3237c5e7606d0639f2c4de7520bf0306b2816e8a0e1b05b018f364146435a4a3265b4ac9fd4d84c81bf38dbbf23080ad504e2c148a091b6584ed4e63d11d71b8aa83f53afa015b99be95111c00698a4ee34686e9970b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830297800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9052bb9052802f9052401808007830f424094000000000000000000000000000000000000010080b904bf010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a045fbcc8f50ad76c984aa0dc7243fe291dcce05cd947d0386fe3edc486c0e8ee7a05b9d02c59375a92a1ce16427d9442aff32f0432df7c5cd84753a80547ec56fb1c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0e97bad97ba63d7904bd92ae48c5da752cc3480e48eb17c830e9f78c5b8d045", + "stateRoot": "0x13343979f1f2f98605f05a41b3237c5e7606d0639f2c4de7520bf0306b2816e8", "transactionsTrie": "0xe1b05b018f364146435a4a3265b4ac9fd4d84c81bf38dbbf23080ad504e2c148", "receiptTrie": "0x91b6584ed4e63d11d71b8aa83f53afa015b99be95111c00698a4ee34686e9970", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -807,33 +702,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcb04819bf7c884f4eec53136aaffac3973aaed0060863018e31dccffb51f36cb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0e97bad97ba63d7904bd92ae48c5da752cc3480e48eb17c830e9f78c5b8d045", - "receiptsRoot": "0x91b6584ed4e63d11d71b8aa83f53afa015b99be95111c00698a4ee34686e9970", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x29780", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xcb04819bf7c884f4eec53136aaffac3973aaed0060863018e31dccffb51f36cb", - "transactions": [ - "0x02f9052401808007830f424094000000000000000000000000000000000000010080b904bf010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a045fbcc8f50ad76c984aa0dc7243fe291dcce05cd947d0386fe3edc486c0e8ee7a05b9d02c59375a92a1ce16427d9442aff32f0432df7c5cd84753a80547ec56fb1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4071a06c77639dc87f65d5f37b38666e6b477e5e63757d88da23a53d39f496b9" }, "blocknumber": "1", "transactions": [ @@ -858,45 +727,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcb04819bf7c884f4eec53136aaffac3973aaed0060863018e31dccffb51f36cb", - "network": "Cancun", + "lastblockhash": "0x4071a06c77639dc87f65d5f37b38666e6b477e5e63757d88da23a53d39f496b9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -905,14 +749,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -924,6 +760,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffeddb80", @@ -935,18 +779,43 @@ }, "006-fork=Cancun-success=False-null_inputs": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf902acf9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f753c6607c4f8a48efedca3d86ab5f9ceef4dc0c1288b5c1f2786b1543d9efb5a0255246eb15cc03d2c7a6c9753c6029711f43d5f8d860da7cce2a6a6f2a42bcb4a0b77072d07d661c010b8cd10f312da5e312bb32cf2d14eaa71949ec711297fbe0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830149a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f86301808007830f42409400000000000000000000000000000000000001008080c080a01a94485b340386550a1eef3e191b544c82f27fa5ba502ebf516f5ac72441be47a01d14cf4a8d5be4584cb5a8f2ca7f3cad5ca89f52409b51715828090ea1164288c0c0", + "rlp": "0xf902acf9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c774a3b6bf93530cc8f8efbebf80b276e65fee5c87dfb7e6825446c25878c9dea0255246eb15cc03d2c7a6c9753c6029711f43d5f8d860da7cce2a6a6f2a42bcb4a0b77072d07d661c010b8cd10f312da5e312bb32cf2d14eaa71949ec711297fbe0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830149a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f86301808007830f42409400000000000000000000000000000000000001008080c080a01a94485b340386550a1eef3e191b544c82f27fa5ba502ebf516f5ac72441be47a01d14cf4a8d5be4584cb5a8f2ca7f3cad5ca89f52409b51715828090ea1164288c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf753c6607c4f8a48efedca3d86ab5f9ceef4dc0c1288b5c1f2786b1543d9efb5", + "stateRoot": "0xc774a3b6bf93530cc8f8efbebf80b276e65fee5c87dfb7e6825446c25878c9de", "transactionsTrie": "0x255246eb15cc03d2c7a6c9753c6029711f43d5f8d860da7cce2a6a6f2a42bcb4", "receiptTrie": "0xb77072d07d661c010b8cd10f312da5e312bb32cf2d14eaa71949ec711297fbe0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -963,33 +832,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbaa744f2d40d0eb05084f99a1ec92e2337ac972f81979a346155083cf28587f3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf753c6607c4f8a48efedca3d86ab5f9ceef4dc0c1288b5c1f2786b1543d9efb5", - "receiptsRoot": "0xb77072d07d661c010b8cd10f312da5e312bb32cf2d14eaa71949ec711297fbe0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x149a8", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xbaa744f2d40d0eb05084f99a1ec92e2337ac972f81979a346155083cf28587f3", - "transactions": [ - "0x02f86301808007830f42409400000000000000000000000000000000000001008080c080a01a94485b340386550a1eef3e191b544c82f27fa5ba502ebf516f5ac72441be47a01d14cf4a8d5be4584cb5a8f2ca7f3cad5ca89f52409b51715828090ea1164288" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9ece5a92b59786180ff3078556d0423429e87a6bc6733acba025fa4eda55b423" }, "blocknumber": "1", "transactions": [ @@ -1014,45 +857,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbaa744f2d40d0eb05084f99a1ec92e2337ac972f81979a346155083cf28587f3", - "network": "Cancun", + "lastblockhash": "0x9ece5a92b59786180ff3078556d0423429e87a6bc6733acba025fa4eda55b423", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1061,20 +879,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff6fc68", @@ -1086,18 +904,43 @@ }, "007-fork=Cancun-success=False-zeros_inputs": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d6f0048b83271d33b1e1a23a232eb94f2c754d9c7f85e25a444d4814a1818fc4a0d49ddd0080a0359622f815780654bc7e32341b7dca165ecd88b0a68f80569c90a027393e5bc92e4f234032160602b404f0d2781cc38ad6b719b98805fa548b28f4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083014cc60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a07b9358299ccb9414dcb684627fbad52c317d87b88062a78650a7bebd1d927a75a064b57513f9e4b8467513db39cbbcb177c6d8d9378e977a274cf16a534741ae6fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06687142c9ac04682e8d31d9279befa6e5b6d880830304a4a7498c54cf4220098a0d49ddd0080a0359622f815780654bc7e32341b7dca165ecd88b0a68f80569c90a027393e5bc92e4f234032160602b404f0d2781cc38ad6b719b98805fa548b28f4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083014cc60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a07b9358299ccb9414dcb684627fbad52c317d87b88062a78650a7bebd1d927a75a064b57513f9e4b8467513db39cbbcb177c6d8d9378e977a274cf16a534741ae6fc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd6f0048b83271d33b1e1a23a232eb94f2c754d9c7f85e25a444d4814a1818fc4", + "stateRoot": "0x6687142c9ac04682e8d31d9279befa6e5b6d880830304a4a7498c54cf4220098", "transactionsTrie": "0xd49ddd0080a0359622f815780654bc7e32341b7dca165ecd88b0a68f80569c90", "receiptTrie": "0x27393e5bc92e4f234032160602b404f0d2781cc38ad6b719b98805fa548b28f4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1114,33 +957,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8824c63e5e8b6543814eb4f97c7428dded52e36bb779571574b5fd5c128fc279" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd6f0048b83271d33b1e1a23a232eb94f2c754d9c7f85e25a444d4814a1818fc4", - "receiptsRoot": "0x27393e5bc92e4f234032160602b404f0d2781cc38ad6b719b98805fa548b28f4", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14cc6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8824c63e5e8b6543814eb4f97c7428dded52e36bb779571574b5fd5c128fc279", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a07b9358299ccb9414dcb684627fbad52c317d87b88062a78650a7bebd1d927a75a064b57513f9e4b8467513db39cbbcb177c6d8d9378e977a274cf16a534741ae6f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x346cd645394e6c3ee09dd628ddced0b7974ac6a16989770529bb41b1a2f7990d" }, "blocknumber": "1", "transactions": [ @@ -1165,45 +982,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8824c63e5e8b6543814eb4f97c7428dded52e36bb779571574b5fd5c128fc279", - "network": "Cancun", + "lastblockhash": "0x346cd645394e6c3ee09dd628ddced0b7974ac6a16989770529bb41b1a2f7990d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1212,20 +1004,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff6e696", @@ -1237,18 +1029,43 @@ }, "008-fork=Cancun-success=False-zeros_inputs_correct_versioned_hash": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eacf81d3973a91484256aa4235c3b7064ae11f484d400f448c5b58cc8c906c4da06b981dca2c5b9170aa076ec53b81b6e886d708643ce4256d686e5540aeddeea1a06bd40c77513c8b76d2853fe0d02b9cae6758031726c3d8b7f05b84d674ca5f6fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301e9be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001b0761f87b081d5cf10757ccc89f12be355c70e2e29df288b65b30710dcbcd100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a092c6ff5ca008e62dbfd737f4648f1a4c5fb2b9d630f0ea4162a90a1895aebbafa0281536f9213d5dddaf48e985b6c5d87fa38b842675a4674584d03df586ec6014c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0743af49d58239a5fb21d8f2d9512f012ca80844391088415af3454ca7b2b20c4a06b981dca2c5b9170aa076ec53b81b6e886d708643ce4256d686e5540aeddeea1a06bd40c77513c8b76d2853fe0d02b9cae6758031726c3d8b7f05b84d674ca5f6fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301e9be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001b0761f87b081d5cf10757ccc89f12be355c70e2e29df288b65b30710dcbcd100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a092c6ff5ca008e62dbfd737f4648f1a4c5fb2b9d630f0ea4162a90a1895aebbafa0281536f9213d5dddaf48e985b6c5d87fa38b842675a4674584d03df586ec6014c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeacf81d3973a91484256aa4235c3b7064ae11f484d400f448c5b58cc8c906c4d", + "stateRoot": "0x743af49d58239a5fb21d8f2d9512f012ca80844391088415af3454ca7b2b20c4", "transactionsTrie": "0x6b981dca2c5b9170aa076ec53b81b6e886d708643ce4256d686e5540aeddeea1", "receiptTrie": "0x6bd40c77513c8b76d2853fe0d02b9cae6758031726c3d8b7f05b84d674ca5f6f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1265,33 +1082,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x29c4c345dbb50ad13eea4be74507184f08079ecc7c2569975ea922c1644edfb2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeacf81d3973a91484256aa4235c3b7064ae11f484d400f448c5b58cc8c906c4d", - "receiptsRoot": "0x6bd40c77513c8b76d2853fe0d02b9cae6758031726c3d8b7f05b84d674ca5f6f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1e9be", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x29c4c345dbb50ad13eea4be74507184f08079ecc7c2569975ea922c1644edfb2", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001b0761f87b081d5cf10757ccc89f12be355c70e2e29df288b65b30710dcbcd100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a092c6ff5ca008e62dbfd737f4648f1a4c5fb2b9d630f0ea4162a90a1895aebbafa0281536f9213d5dddaf48e985b6c5d87fa38b842675a4674584d03df586ec6014" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6daff560176cbed1225173828018971b05f1519496ae563f0aec5c57d50a0d2b" }, "blocknumber": "1", "transactions": [ @@ -1316,45 +1107,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x29c4c345dbb50ad13eea4be74507184f08079ecc7c2569975ea922c1644edfb2", - "network": "Cancun", + "lastblockhash": "0x6daff560176cbed1225173828018971b05f1519496ae563f0aec5c57d50a0d2b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1363,14 +1129,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1380,6 +1138,14 @@ "0x04": "0x01b0761f87b081d5cf10757ccc89f12be355c70e2e29df288b65b30710dcbcd1" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff29bce", @@ -1391,18 +1157,43 @@ }, "009-fork=Cancun-success=False-correct_proof_1_incorrect_versioned_hash_version_0x00": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf9036ff9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0281d0a1b8234f35ef8cba5831e7c00c920388226384b90176a00ec505450f5c9a0786dc4641f361f5b7ff499a5d6450974418b15bc34a47d42a604e6fa9e40063fa094022a78b4373a9c13dee08e4613ba1ac3f60b56879db7766e1f99ce4335d436b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8c0000657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09b577bc64a51b9896dad8f43780c71be7902e6d77358d52d89c0a9fabb525f369f42cf8be073cda1c506ea942ecb2735d6cddef6aac93fb5eaf156a379f960bbc0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cfe4e6fc2d199b8aad9701f66604e85f7b25003bdd31a8dc8e06cafb900f0fdba0786dc4641f361f5b7ff499a5d6450974418b15bc34a47d42a604e6fa9e40063fa094022a78b4373a9c13dee08e4613ba1ac3f60b56879db7766e1f99ce4335d436b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8c0000657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09b577bc64a51b9896dad8f43780c71be7902e6d77358d52d89c0a9fabb525f369f42cf8be073cda1c506ea942ecb2735d6cddef6aac93fb5eaf156a379f960bbc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x281d0a1b8234f35ef8cba5831e7c00c920388226384b90176a00ec505450f5c9", + "stateRoot": "0xcfe4e6fc2d199b8aad9701f66604e85f7b25003bdd31a8dc8e06cafb900f0fdb", "transactionsTrie": "0x786dc4641f361f5b7ff499a5d6450974418b15bc34a47d42a604e6fa9e40063f", "receiptTrie": "0x94022a78b4373a9c13dee08e4613ba1ac3f60b56879db7766e1f99ce4335d436", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1419,33 +1210,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x20bce138559bc058b9025a887903eefbc602881b3597c48ca89014d663fcac69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x281d0a1b8234f35ef8cba5831e7c00c920388226384b90176a00ec505450f5c9", - "receiptsRoot": "0x94022a78b4373a9c13dee08e4613ba1ac3f60b56879db7766e1f99ce4335d436", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286b6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x20bce138559bc058b9025a887903eefbc602881b3597c48ca89014d663fcac69", - "transactions": [ - "0x02f9012301808007830f424094000000000000000000000000000000000000010080b8c0000657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09b577bc64a51b9896dad8f43780c71be7902e6d77358d52d89c0a9fabb525f369f42cf8be073cda1c506ea942ecb2735d6cddef6aac93fb5eaf156a379f960bb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xac31040f75e9eef81c3bf0b7aece090c139a31a0c398c9b05de56d731fef9e4c" }, "blocknumber": "1", "transactions": [ @@ -1470,45 +1235,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x20bce138559bc058b9025a887903eefbc602881b3597c48ca89014d663fcac69", - "network": "Cancun", + "lastblockhash": "0xac31040f75e9eef81c3bf0b7aece090c139a31a0c398c9b05de56d731fef9e4c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1517,14 +1257,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1536,6 +1268,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee5106", @@ -1547,18 +1287,43 @@ }, "010-fork=Cancun-success=False-correct_proof_1_incorrect_versioned_hash_version_0x02": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e5752eacd631c3a259701ef72bcb0e586d73e8cd0b8f88ee813ea5922db2eb51a0a005e51e63fb051d6f138881933d9a403bb695109b19025428c96f5cf6c85aeaa04330748560fb27b595e6d0c6693b9e2b251db3f886433d80517d934c78254aedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286c20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0020657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a07aabbf314ff6bf2526da7e4f014ffa6f7c764c8be779557083ab22ae97ec8123a075e8e0649ec01273e726d10a580e34036159713beacc9c9fb56184d9d446b524c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dcfbae2f789b1021482adbb958cbd8f3e6933b6298646971bda7b1615abea31aa0a005e51e63fb051d6f138881933d9a403bb695109b19025428c96f5cf6c85aeaa04330748560fb27b595e6d0c6693b9e2b251db3f886433d80517d934c78254aedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286c20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0020657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a07aabbf314ff6bf2526da7e4f014ffa6f7c764c8be779557083ab22ae97ec8123a075e8e0649ec01273e726d10a580e34036159713beacc9c9fb56184d9d446b524c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe5752eacd631c3a259701ef72bcb0e586d73e8cd0b8f88ee813ea5922db2eb51", + "stateRoot": "0xdcfbae2f789b1021482adbb958cbd8f3e6933b6298646971bda7b1615abea31a", "transactionsTrie": "0xa005e51e63fb051d6f138881933d9a403bb695109b19025428c96f5cf6c85aea", "receiptTrie": "0x4330748560fb27b595e6d0c6693b9e2b251db3f886433d80517d934c78254aed", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1575,33 +1340,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfd29f5484a555fd95f993107958f482fc89f7f59eee57f32aa6030897a909307" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe5752eacd631c3a259701ef72bcb0e586d73e8cd0b8f88ee813ea5922db2eb51", - "receiptsRoot": "0x4330748560fb27b595e6d0c6693b9e2b251db3f886433d80517d934c78254aed", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286c2", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfd29f5484a555fd95f993107958f482fc89f7f59eee57f32aa6030897a909307", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0020657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a07aabbf314ff6bf2526da7e4f014ffa6f7c764c8be779557083ab22ae97ec8123a075e8e0649ec01273e726d10a580e34036159713beacc9c9fb56184d9d446b524" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9b380f95b0bf5bd2ab22ab37338d633e3c050f3ddc082463998fe78d17da721b" }, "blocknumber": "1", "transactions": [ @@ -1626,45 +1365,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfd29f5484a555fd95f993107958f482fc89f7f59eee57f32aa6030897a909307", - "network": "Cancun", + "lastblockhash": "0x9b380f95b0bf5bd2ab22ab37338d633e3c050f3ddc082463998fe78d17da721b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1673,14 +1387,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1692,6 +1398,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee50b2", @@ -1703,18 +1417,43 @@ }, "011-fork=Cancun-success=False-correct_proof_1_incorrect_versioned_hash_version_0xff": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0efcbb92ba86a521a18b51040646f5b1e291e89cd8641745e5f692d956f6141a5a0f76dd1c2ddbfc000cf3ecab0687289f7d216aecef673eb429f59ccc5e8b3a0d5a04330748560fb27b595e6d0c6693b9e2b251db3f886433d80517d934c78254aedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286c20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0ff0657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a072f90c641f00ef9f66796f13a4686fdd45ae43fe08b262e152914734418a75c0a00d0a1bcb9348a2d258ee1f12ce9cc9267315165ec743e258080473b799c21540c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa001bff9b106971013fdbf76c11ea07461c062e0440c0b024d4ded794d4061e626a0f76dd1c2ddbfc000cf3ecab0687289f7d216aecef673eb429f59ccc5e8b3a0d5a04330748560fb27b595e6d0c6693b9e2b251db3f886433d80517d934c78254aedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286c20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0ff0657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a072f90c641f00ef9f66796f13a4686fdd45ae43fe08b262e152914734418a75c0a00d0a1bcb9348a2d258ee1f12ce9cc9267315165ec743e258080473b799c21540c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xefcbb92ba86a521a18b51040646f5b1e291e89cd8641745e5f692d956f6141a5", + "stateRoot": "0x01bff9b106971013fdbf76c11ea07461c062e0440c0b024d4ded794d4061e626", "transactionsTrie": "0xf76dd1c2ddbfc000cf3ecab0687289f7d216aecef673eb429f59ccc5e8b3a0d5", "receiptTrie": "0x4330748560fb27b595e6d0c6693b9e2b251db3f886433d80517d934c78254aed", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1731,33 +1470,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb4e6a894803b6534cae6b9d0bdc60bb0f96d606ebcb9756c7c74865af54a2a0a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xefcbb92ba86a521a18b51040646f5b1e291e89cd8641745e5f692d956f6141a5", - "receiptsRoot": "0x4330748560fb27b595e6d0c6693b9e2b251db3f886433d80517d934c78254aed", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286c2", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb4e6a894803b6534cae6b9d0bdc60bb0f96d606ebcb9756c7c74865af54a2a0a", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0ff0657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a072f90c641f00ef9f66796f13a4686fdd45ae43fe08b262e152914734418a75c0a00d0a1bcb9348a2d258ee1f12ce9cc9267315165ec743e258080473b799c21540" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x393e4110a8d939f87b07c0f9914318f9a954a77f9c56de56d0336675fbc915bb" }, "blocknumber": "1", "transactions": [ @@ -1782,45 +1495,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb4e6a894803b6534cae6b9d0bdc60bb0f96d606ebcb9756c7c74865af54a2a0a", - "network": "Cancun", + "lastblockhash": "0x393e4110a8d939f87b07c0f9914318f9a954a77f9c56de56d0336675fbc915bb", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1829,14 +1517,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1848,6 +1528,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee50b2", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json index 95d189eaf3e..ab973ba7356 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_before_fork.json @@ -1,18 +1,40 @@ { "000-fork=ShanghaiToCancunAtTime15k-correct_proof-point_evaluation_precompile_before_fork": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01837a6b16203f5d15c216ed0c68bc86de74c008f6e90a72663173845b4a5da6ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1837a6b16203f5d15c216ed0c68bc86de74c008f6e90a72663173845b4a5da6e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4882bdfcbf75f9375f28ad612b37b3a7db5af5dd4021bc282c43b13fbb82724c" + }, "blocks": [ { - "rlp": "0xf9034ff9021ca07292543d813b328ded08bfd523d67d15040b042e28cdf03c95d6c2ac90d55759a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04eb3716e14f9685d61a4818ab21ff82506f2461901e65802c78ab2a5582faabea0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa07c53f1e5660a78e8903fa3b72eef59be0af3f82a34437b7578b44130829a8558b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301347a8203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", + "rlp": "0xf9034ff9021ca04882bdfcbf75f9375f28ad612b37b3a7db5af5dd4021bc282c43b13fbb82724ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d481fd3da9b1b53fc81962a288bc733e758f2aa6d978193af039b52f24e48f06a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa07c53f1e5660a78e8903fa3b72eef59be0af3f82a34437b7578b44130829a8558b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301347a8203e780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", "blockHeader": { - "parentHash": "0x7292543d813b328ded08bfd523d67d15040b042e28cdf03c95d6c2ac90d55759", + "parentHash": "0x4882bdfcbf75f9375f28ad612b37b3a7db5af5dd4021bc282c43b13fbb82724c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4eb3716e14f9685d61a4818ab21ff82506f2461901e65802c78ab2a5582faabe", + "stateRoot": "0xd481fd3da9b1b53fc81962a288bc733e758f2aa6d978193af039b52f24e48f06", "transactionsTrie": "0xdb6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172ada", "receiptTrie": "0x7c53f1e5660a78e8903fa3b72eef59be0af3f82a34437b7578b44130829a8558", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -26,29 +48,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xbe813063947665a8670ccb7533e09615f3d7f46eb3254ba395f9e430e93dc429" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7292543d813b328ded08bfd523d67d15040b042e28cdf03c95d6c2ac90d55759", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4eb3716e14f9685d61a4818ab21ff82506f2461901e65802c78ab2a5582faabe", - "receiptsRoot": "0x7c53f1e5660a78e8903fa3b72eef59be0af3f82a34437b7578b44130829a8558", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1347a", - "timestamp": "0x3e7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xbe813063947665a8670ccb7533e09615f3d7f46eb3254ba395f9e430e93dc429", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaa" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0xeb2acb30b2e9381379344f1669d301f969cd2ec51d7cec4957c52deac8d3561b" }, "blocknumber": "1", "transactions": [ @@ -73,12 +73,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba0be813063947665a8670ccb7533e09615f3d7f46eb3254ba395f9e430e93dc429a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07c99255a3679d9f9bb1bf8f584f3d05b42ebc2b7f6372859401e68ef3984be39a0fd0fbb9204288fec12d873636902c2c9b555c4551c6e088e7524edb73c82f99aa0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082d2d28207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401018007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a02255be5c5eccb51527c6a213357d6f7b480ec4e15d553b8eb1524a6efa2519b3a01cb7c8285d672eb298fb143fa53d10b209c1548e1b322c3b64d427c445c67910c0c0", + "rlp": "0xf9034ef9021ba0eb2acb30b2e9381379344f1669d301f969cd2ec51d7cec4957c52deac8d3561ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045d79a96fa78929b103735d8486619d643b4d12de67804c95de4b3e7476fb5a7a0fd0fbb9204288fec12d873636902c2c9b555c4551c6e088e7524edb73c82f99aa0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082d2d28207cf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401018007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a02255be5c5eccb51527c6a213357d6f7b480ec4e15d553b8eb1524a6efa2519b3a01cb7c8285d672eb298fb143fa53d10b209c1548e1b322c3b64d427c445c67910c0c0", "blockHeader": { - "parentHash": "0xbe813063947665a8670ccb7533e09615f3d7f46eb3254ba395f9e430e93dc429", + "parentHash": "0xeb2acb30b2e9381379344f1669d301f969cd2ec51d7cec4957c52deac8d3561b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7c99255a3679d9f9bb1bf8f584f3d05b42ebc2b7f6372859401e68ef3984be39", + "stateRoot": "0x45d79a96fa78929b103735d8486619d643b4d12de67804c95de4b3e7476fb5a7", "transactionsTrie": "0xfd0fbb9204288fec12d873636902c2c9b555c4551c6e088e7524edb73c82f99a", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -92,29 +92,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xf66c68a126e829afde9bf114107a52fbd528bca2f81d94f2201e608725adb668" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbe813063947665a8670ccb7533e09615f3d7f46eb3254ba395f9e430e93dc429", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7c99255a3679d9f9bb1bf8f584f3d05b42ebc2b7f6372859401e68ef3984be39", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x2", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x7cf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xf66c68a126e829afde9bf114107a52fbd528bca2f81d94f2201e608725adb668", - "transactions": [ - "0x02f9012401018007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a02255be5c5eccb51527c6a213357d6f7b480ec4e15d553b8eb1524a6efa2519b3a01cb7c8285d672eb298fb143fa53d10b209c1548e1b322c3b64d427c445c67910" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0x22f4021b58b8bcd4e626430031c9c1e15401f6503e27ed723652c6c1f992f3a6" }, "blocknumber": "2", "transactions": [ @@ -139,12 +117,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba0f66c68a126e829afde9bf114107a52fbd528bca2f81d94f2201e608725adb668a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06efc2b6344821a985245578e632ea7ab804d294ad87695f495b5632f187d0a90a04267884a87fe9fb3d0e5e33ae6bdaf8aa5f7a375e2eb68e5f46e972312c2bd35a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082d2d2820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401028007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a01d153928a4a2442d9dbd65dd20faf19f2ea2abe14a9761c0354fcc4c1b43d086a01a10a731c05a5cc200fcce5e87bd2645d17f18c1c7aca1ca8df91764b7a5d738c0c0", + "rlp": "0xf9034ef9021ba022f4021b58b8bcd4e626430031c9c1e15401f6503e27ed723652c6c1f992f3a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c825a5c692503c5474bf8e324e9059d756cb4472b82af162a79668c6128930f6a04267884a87fe9fb3d0e5e33ae6bdaf8aa5f7a375e2eb68e5f46e972312c2bd35a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082d2d2820bb780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401028007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a01d153928a4a2442d9dbd65dd20faf19f2ea2abe14a9761c0354fcc4c1b43d086a01a10a731c05a5cc200fcce5e87bd2645d17f18c1c7aca1ca8df91764b7a5d738c0c0", "blockHeader": { - "parentHash": "0xf66c68a126e829afde9bf114107a52fbd528bca2f81d94f2201e608725adb668", + "parentHash": "0x22f4021b58b8bcd4e626430031c9c1e15401f6503e27ed723652c6c1f992f3a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6efc2b6344821a985245578e632ea7ab804d294ad87695f495b5632f187d0a90", + "stateRoot": "0xc825a5c692503c5474bf8e324e9059d756cb4472b82af162a79668c6128930f6", "transactionsTrie": "0x4267884a87fe9fb3d0e5e33ae6bdaf8aa5f7a375e2eb68e5f46e972312c2bd35", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -158,29 +136,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xbed8011162c0dd5da63450d2d72abe6aab10b240597a809432d3f1e6aef80595" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf66c68a126e829afde9bf114107a52fbd528bca2f81d94f2201e608725adb668", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6efc2b6344821a985245578e632ea7ab804d294ad87695f495b5632f187d0a90", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x3", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0xbb7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xbed8011162c0dd5da63450d2d72abe6aab10b240597a809432d3f1e6aef80595", - "transactions": [ - "0x02f9012401028007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a01d153928a4a2442d9dbd65dd20faf19f2ea2abe14a9761c0354fcc4c1b43d086a01a10a731c05a5cc200fcce5e87bd2645d17f18c1c7aca1ca8df91764b7a5d738" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0xb1773c98ec05de2960287d42da74c5b43cecb27c99fa094fdc9676348c6e0b44" }, "blocknumber": "3", "transactions": [ @@ -205,12 +161,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba0bed8011162c0dd5da63450d2d72abe6aab10b240597a809432d3f1e6aef80595a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a69a995a6a3165f93df1a3cf470572dd94b6a522d3be0238a9973c5c4e67d773a0eda33d872a3f034a552642375d2d9d0f313ebeeb6be133b9523d55382b63cdd0a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082d2d2820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401038007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a01856b0e16524c337f33f4fbd45c95a5a56c8b57eecf24bb43798cee27e3abbb1a001502631c289f3ca430af87a715f4b7713af303b58f0e7ec553014dbd7d82526c0c0", + "rlp": "0xf9034ef9021ba0b1773c98ec05de2960287d42da74c5b43cecb27c99fa094fdc9676348c6e0b44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0421cf065b70678cdbb3e2f3688d58ea4ba8e53d89383b583ba82429b97083fdea0eda33d872a3f034a552642375d2d9d0f313ebeeb6be133b9523d55382b63cdd0a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a000082d2d2820f9f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401038007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a01856b0e16524c337f33f4fbd45c95a5a56c8b57eecf24bb43798cee27e3abbb1a001502631c289f3ca430af87a715f4b7713af303b58f0e7ec553014dbd7d82526c0c0", "blockHeader": { - "parentHash": "0xbed8011162c0dd5da63450d2d72abe6aab10b240597a809432d3f1e6aef80595", + "parentHash": "0xb1773c98ec05de2960287d42da74c5b43cecb27c99fa094fdc9676348c6e0b44", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa69a995a6a3165f93df1a3cf470572dd94b6a522d3be0238a9973c5c4e67d773", + "stateRoot": "0x421cf065b70678cdbb3e2f3688d58ea4ba8e53d89383b583ba82429b97083fde", "transactionsTrie": "0xeda33d872a3f034a552642375d2d9d0f313ebeeb6be133b9523d55382b63cdd0", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -224,29 +180,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x74a8e63b7aee88d6cc10d44756108f3ebe59ece372dbd0f6c0074f7232d81129" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbed8011162c0dd5da63450d2d72abe6aab10b240597a809432d3f1e6aef80595", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa69a995a6a3165f93df1a3cf470572dd94b6a522d3be0238a9973c5c4e67d773", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x4", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0xf9f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x74a8e63b7aee88d6cc10d44756108f3ebe59ece372dbd0f6c0074f7232d81129", - "transactions": [ - "0x02f9012401038007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a01856b0e16524c337f33f4fbd45c95a5a56c8b57eecf24bb43798cee27e3abbb1a001502631c289f3ca430af87a715f4b7713af303b58f0e7ec553014dbd7d82526" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0xb2c1edcaa260794f122b29a259f8d8e3e74e47e807445b1ce4f248c7276b71da" }, "blocknumber": "4", "transactions": [ @@ -271,12 +205,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba074a8e63b7aee88d6cc10d44756108f3ebe59ece372dbd0f6c0074f7232d81129a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e7fff4efce2d31354043180c0f4adf4a0d0d319fd264f35696559637aa3cc422a0bba35aa3266d48da63bfa5b872e095590d951e8f259d77478f01af4d5b41965ca0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082d2d282138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401048007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01e9e2af346507603b29dfca2cb4fad1ba090386e3fb41b3826680427af7efa63a056357586c8ca4087590f9b30bb63ff5a9f0d6e636e601b58189f317c8b0a923fc0c0", + "rlp": "0xf9034ef9021ba0b2c1edcaa260794f122b29a259f8d8e3e74e47e807445b1ce4f248c7276b71daa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa076e8498f03e82a9b4c80a1a5d22ddbb33d044f490698d07b25f044accd45a301a0bba35aa3266d48da63bfa5b872e095590d951e8f259d77478f01af4d5b41965ca0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a000082d2d282138780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401048007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01e9e2af346507603b29dfca2cb4fad1ba090386e3fb41b3826680427af7efa63a056357586c8ca4087590f9b30bb63ff5a9f0d6e636e601b58189f317c8b0a923fc0c0", "blockHeader": { - "parentHash": "0x74a8e63b7aee88d6cc10d44756108f3ebe59ece372dbd0f6c0074f7232d81129", + "parentHash": "0xb2c1edcaa260794f122b29a259f8d8e3e74e47e807445b1ce4f248c7276b71da", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe7fff4efce2d31354043180c0f4adf4a0d0d319fd264f35696559637aa3cc422", + "stateRoot": "0x76e8498f03e82a9b4c80a1a5d22ddbb33d044f490698d07b25f044accd45a301", "transactionsTrie": "0xbba35aa3266d48da63bfa5b872e095590d951e8f259d77478f01af4d5b41965c", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -290,29 +224,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7bbc06cd1b9c06a42879e120ac7f3a910063a82e7acf41b4f210ab3f00822e3a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x74a8e63b7aee88d6cc10d44756108f3ebe59ece372dbd0f6c0074f7232d81129", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe7fff4efce2d31354043180c0f4adf4a0d0d319fd264f35696559637aa3cc422", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x5", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x1387", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x7bbc06cd1b9c06a42879e120ac7f3a910063a82e7acf41b4f210ab3f00822e3a", - "transactions": [ - "0x02f9012401048007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01e9e2af346507603b29dfca2cb4fad1ba090386e3fb41b3826680427af7efa63a056357586c8ca4087590f9b30bb63ff5a9f0d6e636e601b58189f317c8b0a923f" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0xead49c85a10669306a52ffd6d2f4a2fc8f238db1acc3b4a9059f6cd294ec876d" }, "blocknumber": "5", "transactions": [ @@ -337,12 +249,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba07bbc06cd1b9c06a42879e120ac7f3a910063a82e7acf41b4f210ab3f00822e3aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4cccf2dd98811c3d2290e1b438eb75ac33ea73013a1628d5bb7f575ca6a956ea0966e8cbc4b535b5081a6ce06e097d4e1d9439ef052e4d15f17318b4b0fa2a895a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082d2d282176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401058007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05166cdab7aa11b8c321fc36e9ebd875d68e541560ec1098cb306716848ba9cbda04453c1b3ad9430dd08a5e19f834968abeb788aefb247bbe222de954e7c85b38bc0c0", + "rlp": "0xf9034ef9021ba0ead49c85a10669306a52ffd6d2f4a2fc8f238db1acc3b4a9059f6cd294ec876da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09c73061995b4fe48995a84f1fc68abef9db3fcc3fb7f981311491698e527dadea0966e8cbc4b535b5081a6ce06e097d4e1d9439ef052e4d15f17318b4b0fa2a895a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a000082d2d282176f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401058007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05166cdab7aa11b8c321fc36e9ebd875d68e541560ec1098cb306716848ba9cbda04453c1b3ad9430dd08a5e19f834968abeb788aefb247bbe222de954e7c85b38bc0c0", "blockHeader": { - "parentHash": "0x7bbc06cd1b9c06a42879e120ac7f3a910063a82e7acf41b4f210ab3f00822e3a", + "parentHash": "0xead49c85a10669306a52ffd6d2f4a2fc8f238db1acc3b4a9059f6cd294ec876d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc4cccf2dd98811c3d2290e1b438eb75ac33ea73013a1628d5bb7f575ca6a956e", + "stateRoot": "0x9c73061995b4fe48995a84f1fc68abef9db3fcc3fb7f981311491698e527dade", "transactionsTrie": "0x966e8cbc4b535b5081a6ce06e097d4e1d9439ef052e4d15f17318b4b0fa2a895", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -356,29 +268,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x9643a59f29d3037f9199614d8718ac0b8fa9b2d3a97e77cda1b768cddefe73dc" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7bbc06cd1b9c06a42879e120ac7f3a910063a82e7acf41b4f210ab3f00822e3a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc4cccf2dd98811c3d2290e1b438eb75ac33ea73013a1628d5bb7f575ca6a956e", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x6", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x176f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x9643a59f29d3037f9199614d8718ac0b8fa9b2d3a97e77cda1b768cddefe73dc", - "transactions": [ - "0x02f9012401058007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05166cdab7aa11b8c321fc36e9ebd875d68e541560ec1098cb306716848ba9cbda04453c1b3ad9430dd08a5e19f834968abeb788aefb247bbe222de954e7c85b38b" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0x84cccedcb35f9397979306e5e1cfb2ca0257bbc0fbfb8dc2ff8fb54d84689b1a" }, "blocknumber": "6", "transactions": [ @@ -403,12 +293,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba09643a59f29d3037f9199614d8718ac0b8fa9b2d3a97e77cda1b768cddefe73dca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03ff75a39637fede47f1253d80be2f73ae30ff1f77222deb38646522586c9c17da03388bd3c6439a1991e5c445af4324830522c6002665d1e52dfc117e58b4a868fa0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082d2d2821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401068007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e92810ef87b2d922beab50dfb8156f7fe2e51705378472753609d16495c38a72a01e0b234e746f791694d0bc59c21dec2ca2fc8d28720e265e1bef839b52e64fd1c0c0", + "rlp": "0xf9034ef9021ba084cccedcb35f9397979306e5e1cfb2ca0257bbc0fbfb8dc2ff8fb54d84689b1aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e299fc09b9a2b59ccc9a9cadf2a5eeaa5cf6e07fff27e3efb33eebe2da51f5cea03388bd3c6439a1991e5c445af4324830522c6002665d1e52dfc117e58b4a868fa0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a000082d2d2821b5780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401068007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e92810ef87b2d922beab50dfb8156f7fe2e51705378472753609d16495c38a72a01e0b234e746f791694d0bc59c21dec2ca2fc8d28720e265e1bef839b52e64fd1c0c0", "blockHeader": { - "parentHash": "0x9643a59f29d3037f9199614d8718ac0b8fa9b2d3a97e77cda1b768cddefe73dc", + "parentHash": "0x84cccedcb35f9397979306e5e1cfb2ca0257bbc0fbfb8dc2ff8fb54d84689b1a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3ff75a39637fede47f1253d80be2f73ae30ff1f77222deb38646522586c9c17d", + "stateRoot": "0xe299fc09b9a2b59ccc9a9cadf2a5eeaa5cf6e07fff27e3efb33eebe2da51f5ce", "transactionsTrie": "0x3388bd3c6439a1991e5c445af4324830522c6002665d1e52dfc117e58b4a868f", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -422,29 +312,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xc0db315e442ef009b1e03d6d558c8237ebfbf756a4f08f52089b242ee27d7e3d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9643a59f29d3037f9199614d8718ac0b8fa9b2d3a97e77cda1b768cddefe73dc", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3ff75a39637fede47f1253d80be2f73ae30ff1f77222deb38646522586c9c17d", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x7", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x1b57", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xc0db315e442ef009b1e03d6d558c8237ebfbf756a4f08f52089b242ee27d7e3d", - "transactions": [ - "0x02f9012401068007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e92810ef87b2d922beab50dfb8156f7fe2e51705378472753609d16495c38a72a01e0b234e746f791694d0bc59c21dec2ca2fc8d28720e265e1bef839b52e64fd1" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0x888b1693c0df1b95ebd7ec98137d66e5360fa03e90ee7d393ce0f68a566b8644" }, "blocknumber": "7", "transactions": [ @@ -469,12 +337,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba0c0db315e442ef009b1e03d6d558c8237ebfbf756a4f08f52089b242ee27d7e3da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed9403f2ba50706b20efe16db283580e7ed309b3e7a12e9c73c305baa71fd049a0f22e3d9b45e6dc17b5f23178af7b6c798f3479179383dae2c46b34139d3b14d0a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000082d2d2821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401078007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e78f7e5011540370e32c2d776e925b83fde5fdd2732cfe7211875d62c11835e2a062e8449e8d29d8febd7ce7522af98e3b9e8c1940311ec9cc5a601936088ca5d6c0c0", + "rlp": "0xf9034ef9021ba0888b1693c0df1b95ebd7ec98137d66e5360fa03e90ee7d393ce0f68a566b8644a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0006a3e5ce2ce23c176060de75470ce8d434a9678618b26b15340d613f73455c9a0f22e3d9b45e6dc17b5f23178af7b6c798f3479179383dae2c46b34139d3b14d0a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a000082d2d2821f3f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401078007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e78f7e5011540370e32c2d776e925b83fde5fdd2732cfe7211875d62c11835e2a062e8449e8d29d8febd7ce7522af98e3b9e8c1940311ec9cc5a601936088ca5d6c0c0", "blockHeader": { - "parentHash": "0xc0db315e442ef009b1e03d6d558c8237ebfbf756a4f08f52089b242ee27d7e3d", + "parentHash": "0x888b1693c0df1b95ebd7ec98137d66e5360fa03e90ee7d393ce0f68a566b8644", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xed9403f2ba50706b20efe16db283580e7ed309b3e7a12e9c73c305baa71fd049", + "stateRoot": "0x006a3e5ce2ce23c176060de75470ce8d434a9678618b26b15340d613f73455c9", "transactionsTrie": "0xf22e3d9b45e6dc17b5f23178af7b6c798f3479179383dae2c46b34139d3b14d0", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -488,29 +356,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd88d7ec2bfebf1497dd121f192ce1722b7bb1616eb9da92cc4a9cb39a3157414" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc0db315e442ef009b1e03d6d558c8237ebfbf756a4f08f52089b242ee27d7e3d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xed9403f2ba50706b20efe16db283580e7ed309b3e7a12e9c73c305baa71fd049", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x8", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x1f3f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd88d7ec2bfebf1497dd121f192ce1722b7bb1616eb9da92cc4a9cb39a3157414", - "transactions": [ - "0x02f9012401078007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e78f7e5011540370e32c2d776e925b83fde5fdd2732cfe7211875d62c11835e2a062e8449e8d29d8febd7ce7522af98e3b9e8c1940311ec9cc5a601936088ca5d6" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0x15e97dfc4b864a8d4bbb33f5deca6d4f9efa949424f80cc8e698f80f0ed1001d" }, "blocknumber": "8", "transactions": [ @@ -535,12 +381,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba0d88d7ec2bfebf1497dd121f192ce1722b7bb1616eb9da92cc4a9cb39a3157414a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0434db9454db8200c1707fe6486828f865107dd11ae1fe64945b8eebe9cc5b37aa04076bbb228867b9494869328ea23b991f7f2bcc8f8792eaa92d507cdd797ac9ba0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a000082d2d282232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401088007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a06c3ed72575f9de73c447f719c389ad98b31476f6be5473b8bab6a116b7d0ff7fa036962bbc9b2d34c7ea06e0358cd007a260658bac66a5b3855d75f180b17ea6ffc0c0", + "rlp": "0xf9034ef9021ba015e97dfc4b864a8d4bbb33f5deca6d4f9efa949424f80cc8e698f80f0ed1001da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b82f349e35f174a9f11e6b73b7967cd67a20a512d65059163f360138a155044aa04076bbb228867b9494869328ea23b991f7f2bcc8f8792eaa92d507cdd797ac9ba0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a000082d2d282232780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401088007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a06c3ed72575f9de73c447f719c389ad98b31476f6be5473b8bab6a116b7d0ff7fa036962bbc9b2d34c7ea06e0358cd007a260658bac66a5b3855d75f180b17ea6ffc0c0", "blockHeader": { - "parentHash": "0xd88d7ec2bfebf1497dd121f192ce1722b7bb1616eb9da92cc4a9cb39a3157414", + "parentHash": "0x15e97dfc4b864a8d4bbb33f5deca6d4f9efa949424f80cc8e698f80f0ed1001d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x434db9454db8200c1707fe6486828f865107dd11ae1fe64945b8eebe9cc5b37a", + "stateRoot": "0xb82f349e35f174a9f11e6b73b7967cd67a20a512d65059163f360138a155044a", "transactionsTrie": "0x4076bbb228867b9494869328ea23b991f7f2bcc8f8792eaa92d507cdd797ac9b", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -554,29 +400,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x2a8f537783fc69e994eb090da3cd7aca0b77b99b63b65c433547e2c54e6d38ff" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd88d7ec2bfebf1497dd121f192ce1722b7bb1616eb9da92cc4a9cb39a3157414", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x434db9454db8200c1707fe6486828f865107dd11ae1fe64945b8eebe9cc5b37a", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x9", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x2327", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x2a8f537783fc69e994eb090da3cd7aca0b77b99b63b65c433547e2c54e6d38ff", - "transactions": [ - "0x02f9012401088007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a06c3ed72575f9de73c447f719c389ad98b31476f6be5473b8bab6a116b7d0ff7fa036962bbc9b2d34c7ea06e0358cd007a260658bac66a5b3855d75f180b17ea6ff" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0xbcc95be5eaeb4aae0f3453a7e0b4ddc25a293a0feb6464c2e2d6381f0dc78652" }, "blocknumber": "9", "transactions": [ @@ -601,12 +425,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba02a8f537783fc69e994eb090da3cd7aca0b77b99b63b65c433547e2c54e6d38ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0013951da87cddbe8b78e04b6b9c2c3a73585bf30e2dfbba3aea21e8bb8dfddd7a0f5b62db92a921e85cadf7cbc53af7ee0b4aad69afab61f282377a75638799a25a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a000082d2d282270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401098007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e8e17448df52de5d034a381052b4f886847004a37ce8dc660081e214a7a16773a058dde277185e93f224caf513675909034f82ad56e7843cdb48b8289bfa121510c0c0", + "rlp": "0xf9034ef9021ba0bcc95be5eaeb4aae0f3453a7e0b4ddc25a293a0feb6464c2e2d6381f0dc78652a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ebde02452144ddb74f1d74e657d014c6ab802c4b9a65833aaedee43062bf226ca0f5b62db92a921e85cadf7cbc53af7ee0b4aad69afab61f282377a75638799a25a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a000082d2d282270f80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f9012401098007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e8e17448df52de5d034a381052b4f886847004a37ce8dc660081e214a7a16773a058dde277185e93f224caf513675909034f82ad56e7843cdb48b8289bfa121510c0c0", "blockHeader": { - "parentHash": "0x2a8f537783fc69e994eb090da3cd7aca0b77b99b63b65c433547e2c54e6d38ff", + "parentHash": "0xbcc95be5eaeb4aae0f3453a7e0b4ddc25a293a0feb6464c2e2d6381f0dc78652", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x013951da87cddbe8b78e04b6b9c2c3a73585bf30e2dfbba3aea21e8bb8dfddd7", + "stateRoot": "0xebde02452144ddb74f1d74e657d014c6ab802c4b9a65833aaedee43062bf226c", "transactionsTrie": "0xf5b62db92a921e85cadf7cbc53af7ee0b4aad69afab61f282377a75638799a25", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -620,29 +444,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x97398e584f3212c09783a58673f2b44aaf089cdf8221869d3669180fed67fef0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2a8f537783fc69e994eb090da3cd7aca0b77b99b63b65c433547e2c54e6d38ff", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x013951da87cddbe8b78e04b6b9c2c3a73585bf30e2dfbba3aea21e8bb8dfddd7", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xa", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x270f", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x97398e584f3212c09783a58673f2b44aaf089cdf8221869d3669180fed67fef0", - "transactions": [ - "0x02f9012401098007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e8e17448df52de5d034a381052b4f886847004a37ce8dc660081e214a7a16773a058dde277185e93f224caf513675909034f82ad56e7843cdb48b8289bfa121510" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0x24de9a4e60516b2251570d325b5b47566519963ff95f2f067316c0c4b6f15624" }, "blocknumber": "10", "transactions": [ @@ -667,12 +469,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba097398e584f3212c09783a58673f2b44aaf089cdf8221869d3669180fed67fef0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0185ed90d4b339a4e833bb327c47e9d6dcbf692dba2161546a057ce5208bf0c6da093c237418d26e1d4b213eeeefb159df369651bdf6b35502b5f9aac6331e79689a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000082d2d2822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010a8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a026a4455edb7339ce937389e359802d049d5d2e63387e78e0794016852b0c975da01fc711a656fd9609bb0d34eadf465ea2b6f475a4e3b060356661c0006b8fb37cc0c0", + "rlp": "0xf9034ef9021ba024de9a4e60516b2251570d325b5b47566519963ff95f2f067316c0c4b6f15624a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06a28d8f4fe7d95be18951780d2db5cd898c90a94a791c3b7630bf1c4ccd50d62a093c237418d26e1d4b213eeeefb159df369651bdf6b35502b5f9aac6331e79689a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000082d2d2822af780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010a8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a026a4455edb7339ce937389e359802d049d5d2e63387e78e0794016852b0c975da01fc711a656fd9609bb0d34eadf465ea2b6f475a4e3b060356661c0006b8fb37cc0c0", "blockHeader": { - "parentHash": "0x97398e584f3212c09783a58673f2b44aaf089cdf8221869d3669180fed67fef0", + "parentHash": "0x24de9a4e60516b2251570d325b5b47566519963ff95f2f067316c0c4b6f15624", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x185ed90d4b339a4e833bb327c47e9d6dcbf692dba2161546a057ce5208bf0c6d", + "stateRoot": "0x6a28d8f4fe7d95be18951780d2db5cd898c90a94a791c3b7630bf1c4ccd50d62", "transactionsTrie": "0x93c237418d26e1d4b213eeeefb159df369651bdf6b35502b5f9aac6331e79689", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -686,29 +488,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x5889ccff5dab06a77d68cd28cb54da1213ffce86de12f91bbdcaa369298d3df4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x97398e584f3212c09783a58673f2b44aaf089cdf8221869d3669180fed67fef0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x185ed90d4b339a4e833bb327c47e9d6dcbf692dba2161546a057ce5208bf0c6d", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xb", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x2af7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x5889ccff5dab06a77d68cd28cb54da1213ffce86de12f91bbdcaa369298d3df4", - "transactions": [ - "0x02f90124010a8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a026a4455edb7339ce937389e359802d049d5d2e63387e78e0794016852b0c975da01fc711a656fd9609bb0d34eadf465ea2b6f475a4e3b060356661c0006b8fb37c" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0x103c30e18ff6fd5ea5d7f27c0366728e6676042ebafb672bd70b15ab6baa22a9" }, "blocknumber": "11", "transactions": [ @@ -733,12 +513,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba05889ccff5dab06a77d68cd28cb54da1213ffce86de12f91bbdcaa369298d3df4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0de59835b270ca5899b19fb0df8a291955902d755f6bfff045f9427db098e1aa09e1c293d72e3cce982c85b5d4cf19bb57684d77fb031b81c9c11cfb48112246aa0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000082d2d2822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010b8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a07c230f4fcb84a42f56c548db9d33ff56afb0ca76a26824a8e9f05900695687efa056baf103b1ad765c145f4766d2ec4f4fbb9ba8472530d3d61d93bff9fe1276c2c0c0", + "rlp": "0xf9034ef9021ba0103c30e18ff6fd5ea5d7f27c0366728e6676042ebafb672bd70b15ab6baa22a9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd4200c807726b664aab38c301a560dc14c684f2845e7608a84b2718edb64409a09e1c293d72e3cce982c85b5d4cf19bb57684d77fb031b81c9c11cfb48112246aa0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800c88016345785d8a000082d2d2822edf80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010b8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a07c230f4fcb84a42f56c548db9d33ff56afb0ca76a26824a8e9f05900695687efa056baf103b1ad765c145f4766d2ec4f4fbb9ba8472530d3d61d93bff9fe1276c2c0c0", "blockHeader": { - "parentHash": "0x5889ccff5dab06a77d68cd28cb54da1213ffce86de12f91bbdcaa369298d3df4", + "parentHash": "0x103c30e18ff6fd5ea5d7f27c0366728e6676042ebafb672bd70b15ab6baa22a9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0de59835b270ca5899b19fb0df8a291955902d755f6bfff045f9427db098e1a", + "stateRoot": "0xdd4200c807726b664aab38c301a560dc14c684f2845e7608a84b2718edb64409", "transactionsTrie": "0x9e1c293d72e3cce982c85b5d4cf19bb57684d77fb031b81c9c11cfb48112246a", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -752,29 +532,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x866837b85c3ea8bf29a9bd1639e3b4ae8e1b9208ff914cca7bb18cb25b1adacf" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5889ccff5dab06a77d68cd28cb54da1213ffce86de12f91bbdcaa369298d3df4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0de59835b270ca5899b19fb0df8a291955902d755f6bfff045f9427db098e1a", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xc", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x2edf", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x866837b85c3ea8bf29a9bd1639e3b4ae8e1b9208ff914cca7bb18cb25b1adacf", - "transactions": [ - "0x02f90124010b8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a07c230f4fcb84a42f56c548db9d33ff56afb0ca76a26824a8e9f05900695687efa056baf103b1ad765c145f4766d2ec4f4fbb9ba8472530d3d61d93bff9fe1276c2" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0x835605e586944384858f8cb3e9bdc4aacf5793aa1db6556d7e31a5595e27c780" }, "blocknumber": "12", "transactions": [ @@ -799,12 +557,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba0866837b85c3ea8bf29a9bd1639e3b4ae8e1b9208ff914cca7bb18cb25b1adacfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02d88100c67a81b82754d4681823230facee58de5825c261cd36484496a05967da021ec92f7df1c0523129f3ac00990fd0195321cc166012b8bd3bf2ad28bf47e8da0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a000082d2d28232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010c8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0d9e30d6d728e16337757fb7bd2c92a006f10b4f965d00827c64d92866141f1aaa077a6960054fe2790f4f56e0a54524a3b31f2aa625f11b7a51feb445617b152f6c0c0", + "rlp": "0xf9034ef9021ba0835605e586944384858f8cb3e9bdc4aacf5793aa1db6556d7e31a5595e27c780a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa098ad79a84326ad0d843d12d5984f3f7afd28a8e64a248dbb9d001d380ee89daaa021ec92f7df1c0523129f3ac00990fd0195321cc166012b8bd3bf2ad28bf47e8da0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800d88016345785d8a000082d2d28232c780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010c8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0d9e30d6d728e16337757fb7bd2c92a006f10b4f965d00827c64d92866141f1aaa077a6960054fe2790f4f56e0a54524a3b31f2aa625f11b7a51feb445617b152f6c0c0", "blockHeader": { - "parentHash": "0x866837b85c3ea8bf29a9bd1639e3b4ae8e1b9208ff914cca7bb18cb25b1adacf", + "parentHash": "0x835605e586944384858f8cb3e9bdc4aacf5793aa1db6556d7e31a5595e27c780", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2d88100c67a81b82754d4681823230facee58de5825c261cd36484496a05967d", + "stateRoot": "0x98ad79a84326ad0d843d12d5984f3f7afd28a8e64a248dbb9d001d380ee89daa", "transactionsTrie": "0x21ec92f7df1c0523129f3ac00990fd0195321cc166012b8bd3bf2ad28bf47e8d", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -818,29 +576,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x86fcf30340b61b350e563912e6aef784663da2edb90125891808e4d9e4867811" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x866837b85c3ea8bf29a9bd1639e3b4ae8e1b9208ff914cca7bb18cb25b1adacf", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2d88100c67a81b82754d4681823230facee58de5825c261cd36484496a05967d", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xd", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x32c7", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0x86fcf30340b61b350e563912e6aef784663da2edb90125891808e4d9e4867811", - "transactions": [ - "0x02f90124010c8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0d9e30d6d728e16337757fb7bd2c92a006f10b4f965d00827c64d92866141f1aaa077a6960054fe2790f4f56e0a54524a3b31f2aa625f11b7a51feb445617b152f6" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0x8eae9a67e67b5bf339a510b67ebe7779384a8fc142d8bcb68a198473b792073f" }, "blocknumber": "13", "transactions": [ @@ -865,12 +601,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba086fcf30340b61b350e563912e6aef784663da2edb90125891808e4d9e4867811a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aab8f63a30dd506710f52a1c30895636eeca780478c0da769af355204a9d94f8a02817b5568bf958d029b95991c9ea230356c3b4ef7501833bc384a094a22945fca0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a000082d2d28236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010d8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0d8f088a3be314e9a0d258dd01907e8497b3f286b737e4186cd498d78a6fd87e9a015822e41cab687291b82acd30642836670e2c834f8568ffb90743865c9372707c0c0", + "rlp": "0xf9034ef9021ba08eae9a67e67b5bf339a510b67ebe7779384a8fc142d8bcb68a198473b792073fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00280874be036aedc79c53a76cfe72c2aecd04bd562dbb085a02c5fee778371a4a02817b5568bf958d029b95991c9ea230356c3b4ef7501833bc384a094a22945fca0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800e88016345785d8a000082d2d28236af80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010d8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0d8f088a3be314e9a0d258dd01907e8497b3f286b737e4186cd498d78a6fd87e9a015822e41cab687291b82acd30642836670e2c834f8568ffb90743865c9372707c0c0", "blockHeader": { - "parentHash": "0x86fcf30340b61b350e563912e6aef784663da2edb90125891808e4d9e4867811", + "parentHash": "0x8eae9a67e67b5bf339a510b67ebe7779384a8fc142d8bcb68a198473b792073f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaab8f63a30dd506710f52a1c30895636eeca780478c0da769af355204a9d94f8", + "stateRoot": "0x0280874be036aedc79c53a76cfe72c2aecd04bd562dbb085a02c5fee778371a4", "transactionsTrie": "0x2817b5568bf958d029b95991c9ea230356c3b4ef7501833bc384a094a22945fc", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -884,29 +620,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xd5526cffe5e0c0c56c81d4b97aa05c95fa2f80480e3b91cc5a2f746f7635a83e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x86fcf30340b61b350e563912e6aef784663da2edb90125891808e4d9e4867811", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaab8f63a30dd506710f52a1c30895636eeca780478c0da769af355204a9d94f8", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xe", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x36af", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xd5526cffe5e0c0c56c81d4b97aa05c95fa2f80480e3b91cc5a2f746f7635a83e", - "transactions": [ - "0x02f90124010d8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0d8f088a3be314e9a0d258dd01907e8497b3f286b737e4186cd498d78a6fd87e9a015822e41cab687291b82acd30642836670e2c834f8568ffb90743865c9372707" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0xcf6b260b1e981e9a3eeae5f372bb11d976376d554903376c967009ce2c1080ac" }, "blocknumber": "14", "transactions": [ @@ -931,12 +645,12 @@ "withdrawals": [] }, { - "rlp": "0xf9034ef9021ba0d5526cffe5e0c0c56c81d4b97aa05c95fa2f80480e3b91cc5a2f746f7635a83ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa095f19b7cc5bae92eabaae40349d7a3aa9e6fb1f5cf72896be96fe4244ee3fd41a063e096bf7976295091ba6941579fdd772d97577b562a45c05fe15b7eec5e0320a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000082d2d2823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010e8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0db968386378605ccbc61cf0901cb9a8341077323cd5e69920806349269b529dfa052a7399814a7dc5869cf5699418811b600949b0f158c54faae9fd9a2d7dcb5a3c0c0", + "rlp": "0xf9034ef9021ba0cf6b260b1e981e9a3eeae5f372bb11d976376d554903376c967009ce2c1080aca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04fbcfe9f5eb28d91ad9bddc7d1e5179536e7139b30e3f07f45c50543f938f526a063e096bf7976295091ba6941579fdd772d97577b562a45c05fe15b7eec5e0320a0402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800f88016345785d8a000082d2d2823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012bb9012802f90124010e8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0db968386378605ccbc61cf0901cb9a8341077323cd5e69920806349269b529dfa052a7399814a7dc5869cf5699418811b600949b0f158c54faae9fd9a2d7dcb5a3c0c0", "blockHeader": { - "parentHash": "0xd5526cffe5e0c0c56c81d4b97aa05c95fa2f80480e3b91cc5a2f746f7635a83e", + "parentHash": "0xcf6b260b1e981e9a3eeae5f372bb11d976376d554903376c967009ce2c1080ac", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x95f19b7cc5bae92eabaae40349d7a3aa9e6fb1f5cf72896be96fe4244ee3fd41", + "stateRoot": "0x4fbcfe9f5eb28d91ad9bddc7d1e5179536e7139b30e3f07f45c50543f938f526", "transactionsTrie": "0x63e096bf7976295091ba6941579fdd772d97577b562a45c05fe15b7eec5e0320", "receiptTrie": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -950,29 +664,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0xa932a6717d5e5a6570846cf219683d261ff2bd6c2fa033ae08982f09ab3aae02" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd5526cffe5e0c0c56c81d4b97aa05c95fa2f80480e3b91cc5a2f746f7635a83e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x95f19b7cc5bae92eabaae40349d7a3aa9e6fb1f5cf72896be96fe4244ee3fd41", - "receiptsRoot": "0x402817802db95465009f3e8fafdff010ad32c34deece9e608113ba22cd5140c1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0xf", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xd2d2", - "timestamp": "0x3a97", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blockHash": "0xa932a6717d5e5a6570846cf219683d261ff2bd6c2fa033ae08982f09ab3aae02", - "transactions": [ - "0x02f90124010e8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0db968386378605ccbc61cf0901cb9a8341077323cd5e69920806349269b529dfa052a7399814a7dc5869cf5699418811b600949b0f158c54faae9fd9a2d7dcb5a3" - ], - "withdrawals": [] - }, - "version": "2" + "hash": "0x454ee2e59507807f0d5424325d2e46251fe356448e27a3c78dd181c166b3cb69" }, "blocknumber": "15", "transactions": [ @@ -997,12 +689,12 @@ "withdrawals": [] }, { - "rlp": "0xf90372f9023fa0a932a6717d5e5a6570846cf219683d261ff2bd6c2fa033ae08982f09ab3aae02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d9e7bd36ea5fa42cbed4f5818e20dfa8891443b9a3b6c076d475f7322c4c3dc9a002b08419f3f987a4c512f0f2b1508e7b6ff2a76309babbe589497db12035332ca021661973d509bbc413db6f28606e103b5569fdb83e38a3264b7de66ee3dd0111b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a0000830f0fc0823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f90124010f8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0abe11f1309894c99bb80b5a6b6e6a339566c0f772d28d9a4ae9e4687fb74cca5a023fd240d9cb407472302ab835f9f8cfe454389d86128f141c4c90792d9d41eccc0c0", + "rlp": "0xf90372f9023fa0454ee2e59507807f0d5424325d2e46251fe356448e27a3c78dd181c166b3cb69a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa024a3c563f14a71400b33060c029ad3b57d2878ee1a9913341d751c32449efc24a002b08419f3f987a4c512f0f2b1508e7b6ff2a76309babbe589497db12035332ca021661973d509bbc413db6f28606e103b5569fdb83e38a3264b7de66ee3dd0111b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000801088016345785d8a0000830f0fc0823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f90124010f8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0abe11f1309894c99bb80b5a6b6e6a339566c0f772d28d9a4ae9e4687fb74cca5a023fd240d9cb407472302ab835f9f8cfe454389d86128f141c4c90792d9d41eccc0c0", "blockHeader": { - "parentHash": "0xa932a6717d5e5a6570846cf219683d261ff2bd6c2fa033ae08982f09ab3aae02", + "parentHash": "0x454ee2e59507807f0d5424325d2e46251fe356448e27a3c78dd181c166b3cb69", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd9e7bd36ea5fa42cbed4f5818e20dfa8891443b9a3b6c076d475f7322c4c3dc9", + "stateRoot": "0x24a3c563f14a71400b33060c029ad3b57d2878ee1a9913341d751c32449efc24", "transactionsTrie": "0x02b08419f3f987a4c512f0f2b1508e7b6ff2a76309babbe589497db12035332c", "receiptTrie": "0x21661973d509bbc413db6f28606e103b5569fdb83e38a3264b7de66ee3dd0111", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1019,33 +711,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbe14e0935d0e57201bdebd79d57aa9c8dbc32864f39d117c08f29931395f1479" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa932a6717d5e5a6570846cf219683d261ff2bd6c2fa033ae08982f09ab3aae02", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd9e7bd36ea5fa42cbed4f5818e20dfa8891443b9a3b6c076d475f7322c4c3dc9", - "receiptsRoot": "0x21661973d509bbc413db6f28606e103b5569fdb83e38a3264b7de66ee3dd0111", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x10", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xf0fc0", - "timestamp": "0x3a98", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xbe14e0935d0e57201bdebd79d57aa9c8dbc32864f39d117c08f29931395f1479", - "transactions": [ - "0x02f90124010f8007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0abe11f1309894c99bb80b5a6b6e6a339566c0f772d28d9a4ae9e4687fb74cca5a023fd240d9cb407472302ab835f9f8cfe454389d86128f141c4c90792d9d41ecc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x66721893f01c4d9790450ec7c6309650de0f1344d02139865f9824581f9be768" }, "blocknumber": "16", "transactions": [ @@ -1070,29 +736,7 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xcfe18bc7ddf061072d91ede33e3b900ef16dd2dc01ab240b734213ef41283603", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "hash": "0x7292543d813b328ded08bfd523d67d15040b042e28cdf03c95d6c2ac90d55759" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cfe18bc7ddf061072d91ede33e3b900ef16dd2dc01ab240b734213ef41283603a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xbe14e0935d0e57201bdebd79d57aa9c8dbc32864f39d117c08f29931395f1479", - "network": "ShanghaiToCancunAtTime15k", + "lastblockhash": "0x66721893f01c4d9790450ec7c6309650de0f1344d02139865f9824581f9be768", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -1100,6 +744,12 @@ "code": "0x60006000600060006001600a5af14355", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1114,14 +764,6 @@ "code": "0x", "storage": {} }, - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x3a98": "0x3a98" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0xfffffffffffffffff1", @@ -1144,6 +786,14 @@ "0x0f": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x1a99": "0x3a98" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x10", "balance": "0xffffffffffff3d6e06", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json index bdf2e39394e..27cc151ca05 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_calls.json @@ -1,18 +1,43 @@ { "000-fork=Cancun--call_type=CALL-correct": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa042137e4b8a3b2337a9b7f1f4fe62452e29e8c14bc5f29a7b5698cb4e2f8701e4a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94aa0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x42137e4b8a3b2337a9b7f1f4fe62452e29e8c14bc5f29a7b5698cb4e2f8701e4", + "stateRoot": "0xbff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94a", "transactionsTrie": "0xdb6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172ada", "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x622ab187b6851064b35f80c24d65e3cbaa325032a5be3e5dfbe51ea18e517404" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x42137e4b8a3b2337a9b7f1f4fe62452e29e8c14bc5f29a7b5698cb4e2f8701e4", - "receiptsRoot": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32240", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x622ab187b6851064b35f80c24d65e3cbaa325032a5be3e5dfbe51ea18e517404", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xab78911b9c0c745aee32a8435f8262c17d36a5a861128fc602afd6363b0d241e" }, "blocknumber": "1", "transactions": [ @@ -80,45 +79,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x622ab187b6851064b35f80c24d65e3cbaa325032a5be3e5dfbe51ea18e517404", - "network": "Cancun", + "lastblockhash": "0xab78911b9c0c745aee32a8435f8262c17d36a5a861128fc602afd6363b0d241e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -127,14 +101,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -148,6 +114,14 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffea1040", @@ -159,18 +133,43 @@ }, "001-fork=Cancun--call_type=CALL-incorrect": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02c5bad601dbc79930011c18694c39ee518883792ec16a7b02785b0aa010d7772a0573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518ca044af84d1ff3674375774898fc55642e63bb3e0b92f37c025c41bfaf79c76684db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ee3e071eae9a9a6e76f03d1134026a6a8c2f4441b789f4bf6f52aa723b7107a8a0573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518ca044af84d1ff3674375774898fc55642e63bb3e0b92f37c025c41bfaf79c76684db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2c5bad601dbc79930011c18694c39ee518883792ec16a7b02785b0aa010d7772", + "stateRoot": "0xee3e071eae9a9a6e76f03d1134026a6a8c2f4441b789f4bf6f52aa723b7107a8", "transactionsTrie": "0x573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518c", "receiptTrie": "0x44af84d1ff3674375774898fc55642e63bb3e0b92f37c025c41bfaf79c76684d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -187,33 +186,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2f0939e6e4057e70e0e8f71218e1448cd8b03d235ccca150dccb8da85e3b90a7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2c5bad601dbc79930011c18694c39ee518883792ec16a7b02785b0aa010d7772", - "receiptsRoot": "0x44af84d1ff3674375774898fc55642e63bb3e0b92f37c025c41bfaf79c76684d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286ce", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2f0939e6e4057e70e0e8f71218e1448cd8b03d235ccca150dccb8da85e3b90a7", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4c536196751ac2587c7483cb09cb231486d17f36625124be0149836bdda54a42" }, "blocknumber": "1", "transactions": [ @@ -238,45 +211,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2f0939e6e4057e70e0e8f71218e1448cd8b03d235ccca150dccb8da85e3b90a7", - "network": "Cancun", + "lastblockhash": "0x4c536196751ac2587c7483cb09cb231486d17f36625124be0149836bdda54a42", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -285,14 +233,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -304,6 +244,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee505e", @@ -315,18 +263,43 @@ }, "002-fork=Cancun--call_type=CALL-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f244cbfe98a100a4468df6ac9ffb2a621422214500a15c756d59eb5a401c8dbca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf244cbfe98a100a4468df6ac9ffb2a621422214500a15c756d59eb5a401c8dbc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x29553f63a28c7c1b25db173a6a3adaf3bd9710eaf56d58b1d4297c3d117f2b30" + }, "blocks": [ { - "rlp": "0xf90370f9023da0d459d99ecadbfc492aa56a869513758c2dfe0993c3f8e1512fdf619def9b28c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ae5500ffa86dccef09ff9ce6f5c21f51e6a2b04381d6c1880a6aee6e3370a9c0a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa040d360edbbe2a3c2c8205056216b7fbe56c236a16ca9f1413fa71ee432186b64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286c10c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", + "rlp": "0xf90370f9023da029553f63a28c7c1b25db173a6a3adaf3bd9710eaf56d58b1d4297c3d117f2b30a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a4f1565c3e624bb535267268062ff21ec91c0957dd64359290508bdf87043720a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa040d360edbbe2a3c2c8205056216b7fbe56c236a16ca9f1413fa71ee432186b64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286c10c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", "blockHeader": { - "parentHash": "0xd459d99ecadbfc492aa56a869513758c2dfe0993c3f8e1512fdf619def9b28c7", + "parentHash": "0x29553f63a28c7c1b25db173a6a3adaf3bd9710eaf56d58b1d4297c3d117f2b30", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xae5500ffa86dccef09ff9ce6f5c21f51e6a2b04381d6c1880a6aee6e3370a9c0", + "stateRoot": "0xa4f1565c3e624bb535267268062ff21ec91c0957dd64359290508bdf87043720", "transactionsTrie": "0xdb6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172ada", "receiptTrie": "0x40d360edbbe2a3c2c8205056216b7fbe56c236a16ca9f1413fa71ee432186b64", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -343,33 +316,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7efbca4b65c460dc43e682e1d5530b32f43cd7b530777f5aa13cce0588f59669" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd459d99ecadbfc492aa56a869513758c2dfe0993c3f8e1512fdf619def9b28c7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xae5500ffa86dccef09ff9ce6f5c21f51e6a2b04381d6c1880a6aee6e3370a9c0", - "receiptsRoot": "0x40d360edbbe2a3c2c8205056216b7fbe56c236a16ca9f1413fa71ee432186b64", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286c1", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7efbca4b65c460dc43e682e1d5530b32f43cd7b530777f5aa13cce0588f59669", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x96fc7ff835d22363401954e67ea956bb7d8b711e48eb2799cfb24cc302e3d605" }, "blocknumber": "1", "transactions": [ @@ -394,45 +341,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xca75d4f82f60bb2618d84a4cf42d63e833742105bb67c145e4275b55788b3e18", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd459d99ecadbfc492aa56a869513758c2dfe0993c3f8e1512fdf619def9b28c7" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ca75d4f82f60bb2618d84a4cf42d63e833742105bb67c145e4275b55788b3e18a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7efbca4b65c460dc43e682e1d5530b32f43cd7b530777f5aa13cce0588f59669", - "network": "Cancun", + "lastblockhash": "0x96fc7ff835d22363401954e67ea956bb7d8b711e48eb2799cfb24cc302e3d605", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c34ff16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -441,14 +363,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -460,6 +374,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee50b9", @@ -471,18 +393,43 @@ }, "003-fork=Cancun--call_type=DELEGATECALL-correct": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba812c68f1b4a962c1a7b70ea0ecf2862b84d6200489ea662d5c5846d293a0b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xba812c68f1b4a962c1a7b70ea0ecf2862b84d6200489ea662d5c5846d293a0b5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaaa04b0fb3b625c09c8d8c3277914dc3a0f3daf9aef927cb9269f2e1820873fc" + }, "blocks": [ { - "rlp": "0xf90370f9023da09c74f877a20f9f01b50ba166249d9857c8de65c30e2beac56b4bc054de3304bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dc880b6a55fc9cc7a0d55cc3ff53c586ea746ee56045b268aa3925f536b5f276a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa00e8b3e1c7350d242d9d99f16c3b4ce2de7dce80217e64103109362e71d7cb543b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303223d0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", + "rlp": "0xf90370f9023da0aaa04b0fb3b625c09c8d8c3277914dc3a0f3daf9aef927cb9269f2e1820873fca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0615c85e1e93875575c3e8589d009f5ec8f87aa9b860d144050716f1c20c69fb7a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa00e8b3e1c7350d242d9d99f16c3b4ce2de7dce80217e64103109362e71d7cb543b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303223d0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", "blockHeader": { - "parentHash": "0x9c74f877a20f9f01b50ba166249d9857c8de65c30e2beac56b4bc054de3304bf", + "parentHash": "0xaaa04b0fb3b625c09c8d8c3277914dc3a0f3daf9aef927cb9269f2e1820873fc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdc880b6a55fc9cc7a0d55cc3ff53c586ea746ee56045b268aa3925f536b5f276", + "stateRoot": "0x615c85e1e93875575c3e8589d009f5ec8f87aa9b860d144050716f1c20c69fb7", "transactionsTrie": "0xdb6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172ada", "receiptTrie": "0x0e8b3e1c7350d242d9d99f16c3b4ce2de7dce80217e64103109362e71d7cb543", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -499,33 +446,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf95b170dd7e113d66ac9fee09733a89b768247a5fe747f8cadb2ff857c2bd0ee" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9c74f877a20f9f01b50ba166249d9857c8de65c30e2beac56b4bc054de3304bf", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdc880b6a55fc9cc7a0d55cc3ff53c586ea746ee56045b268aa3925f536b5f276", - "receiptsRoot": "0x0e8b3e1c7350d242d9d99f16c3b4ce2de7dce80217e64103109362e71d7cb543", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3223d", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf95b170dd7e113d66ac9fee09733a89b768247a5fe747f8cadb2ff857c2bd0ee", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb421e4ee1b05048179dc1fa43e53cc99ff02a41e40bbc8dd3737cc73cfe254f2" }, "blocknumber": "1", "transactions": [ @@ -550,45 +471,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4e407151f0dc70fe7ac6933960ce4adc7e5a9b5ce07ecbc2e02f4fbf238be39d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9c74f877a20f9f01b50ba166249d9857c8de65c30e2beac56b4bc054de3304bf" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04e407151f0dc70fe7ac6933960ce4adc7e5a9b5ce07ecbc2e02f4fbf238be39da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf95b170dd7e113d66ac9fee09733a89b768247a5fe747f8cadb2ff857c2bd0ee", - "network": "Cancun", + "lastblockhash": "0xb421e4ee1b05048179dc1fa43e53cc99ff02a41e40bbc8dd3737cc73cfe254f2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x36600060003760406000366000600a61c350f46000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -597,14 +493,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -618,6 +506,14 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffea1055", @@ -629,18 +525,43 @@ }, "004-fork=Cancun--call_type=DELEGATECALL-incorrect": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ba812c68f1b4a962c1a7b70ea0ecf2862b84d6200489ea662d5c5846d293a0b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xba812c68f1b4a962c1a7b70ea0ecf2862b84d6200489ea662d5c5846d293a0b5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaaa04b0fb3b625c09c8d8c3277914dc3a0f3daf9aef927cb9269f2e1820873fc" + }, "blocks": [ { - "rlp": "0xf90370f9023da09c74f877a20f9f01b50ba166249d9857c8de65c30e2beac56b4bc054de3304bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09207723ddcd2b3b4586e3261ce802c638c4f2ebdfb07ecbc27b2cfdb375ae37ba0573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518ca00cbfc07044005f86e7a6c3cede4b16989d5a2718c50b2cd341e8cb63b6baaf1fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286cb0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21c0c0", + "rlp": "0xf90370f9023da0aaa04b0fb3b625c09c8d8c3277914dc3a0f3daf9aef927cb9269f2e1820873fca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ad2e8b8da62add12e276ef9b2d8a6ed4ba42fdd859a996011775499f70a4f2c8a0573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518ca00cbfc07044005f86e7a6c3cede4b16989d5a2718c50b2cd341e8cb63b6baaf1fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286cb0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21c0c0", "blockHeader": { - "parentHash": "0x9c74f877a20f9f01b50ba166249d9857c8de65c30e2beac56b4bc054de3304bf", + "parentHash": "0xaaa04b0fb3b625c09c8d8c3277914dc3a0f3daf9aef927cb9269f2e1820873fc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9207723ddcd2b3b4586e3261ce802c638c4f2ebdfb07ecbc27b2cfdb375ae37b", + "stateRoot": "0xad2e8b8da62add12e276ef9b2d8a6ed4ba42fdd859a996011775499f70a4f2c8", "transactionsTrie": "0x573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518c", "receiptTrie": "0x0cbfc07044005f86e7a6c3cede4b16989d5a2718c50b2cd341e8cb63b6baaf1f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -657,33 +578,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x050ff1cbafaf1abc2549f60b90f12ec97e6147e7a3052af718056313a67e0812" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9c74f877a20f9f01b50ba166249d9857c8de65c30e2beac56b4bc054de3304bf", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9207723ddcd2b3b4586e3261ce802c638c4f2ebdfb07ecbc27b2cfdb375ae37b", - "receiptsRoot": "0x0cbfc07044005f86e7a6c3cede4b16989d5a2718c50b2cd341e8cb63b6baaf1f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286cb", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x050ff1cbafaf1abc2549f60b90f12ec97e6147e7a3052af718056313a67e0812", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd06e86f60419433ea2e3497043a659a1c8f085eaec5a59e9122888e4531786f4" }, "blocknumber": "1", "transactions": [ @@ -708,45 +603,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4e407151f0dc70fe7ac6933960ce4adc7e5a9b5ce07ecbc2e02f4fbf238be39d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9c74f877a20f9f01b50ba166249d9857c8de65c30e2beac56b4bc054de3304bf" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04e407151f0dc70fe7ac6933960ce4adc7e5a9b5ce07ecbc2e02f4fbf238be39da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x050ff1cbafaf1abc2549f60b90f12ec97e6147e7a3052af718056313a67e0812", - "network": "Cancun", + "lastblockhash": "0xd06e86f60419433ea2e3497043a659a1c8f085eaec5a59e9122888e4531786f4", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x36600060003760406000366000600a61c350f46000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -755,14 +625,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -774,6 +636,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee5073", @@ -785,18 +655,43 @@ }, "005-fork=Cancun--call_type=DELEGATECALL-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06c53d1bfd712a7ecabe9374cc9dd2886c307f9d30bc9c065e98f39a7fb992886a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6c53d1bfd712a7ecabe9374cc9dd2886c307f9d30bc9c065e98f39a7fb992886", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1b5b19d0373924ad50eade3aae5d45a87a2289b4cad4148bfa2481faf87ec6b5" + }, "blocks": [ { - "rlp": "0xf90370f9023da0d0943901e0ebb298b0f19744969ee9083e83abf6a0106a21eb77a71d6a762f77a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069a44278602ea0b7823cbc0a7011629e46584c70e6f759b35a4d52c991339adca0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa0da784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", + "rlp": "0xf90370f9023da01b5b19d0373924ad50eade3aae5d45a87a2289b4cad4148bfa2481faf87ec6b5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0827065c589c4b2e589817f7fdd85b874d423d0f7540fe2f3dc6fbabef381c9d3a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa0da784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", "blockHeader": { - "parentHash": "0xd0943901e0ebb298b0f19744969ee9083e83abf6a0106a21eb77a71d6a762f77", + "parentHash": "0x1b5b19d0373924ad50eade3aae5d45a87a2289b4cad4148bfa2481faf87ec6b5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x69a44278602ea0b7823cbc0a7011629e46584c70e6f759b35a4d52c991339adc", + "stateRoot": "0x827065c589c4b2e589817f7fdd85b874d423d0f7540fe2f3dc6fbabef381c9d3", "transactionsTrie": "0xdb6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172ada", "receiptTrie": "0xda784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -813,33 +708,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4808ce87bd42a565d54fab322f6f96a70950e7254a15bcceabb93a9e5f6afbc7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd0943901e0ebb298b0f19744969ee9083e83abf6a0106a21eb77a71d6a762f77", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x69a44278602ea0b7823cbc0a7011629e46584c70e6f759b35a4d52c991339adc", - "receiptsRoot": "0xda784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286be", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4808ce87bd42a565d54fab322f6f96a70950e7254a15bcceabb93a9e5f6afbc7", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2948ae8e9f5c0d7bc02f079ed7080ec814bb63e5d5a111f0e3886b3ed58a22e2" }, "blocknumber": "1", "transactions": [ @@ -864,45 +733,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x292daafce14fecccfcb6131ced40fe96d2a18a52309ab42121d878fcb47d44d1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd0943901e0ebb298b0f19744969ee9083e83abf6a0106a21eb77a71d6a762f77" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0292daafce14fecccfcb6131ced40fe96d2a18a52309ab42121d878fcb47d44d1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4808ce87bd42a565d54fab322f6f96a70950e7254a15bcceabb93a9e5f6afbc7", - "network": "Cancun", + "lastblockhash": "0x2948ae8e9f5c0d7bc02f079ed7080ec814bb63e5d5a111f0e3886b3ed58a22e2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x36600060003760406000366000600a61c34ff46000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -911,14 +755,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -930,6 +766,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee50ce", @@ -941,18 +785,43 @@ }, "006-fork=Cancun--call_type=CALLCODE-correct": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07fe0fa69104547d1f15b40a3c1a584154960a63e5ba73a5397f48bb17eccb16da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7fe0fa69104547d1f15b40a3c1a584154960a63e5ba73a5397f48bb17eccb16d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc175b89b3c3df7bf3db711357260730e2a54c322d7a6b9747639ffc3b417faac" + }, "blocks": [ { - "rlp": "0xf90370f9023da0ab3b2277af2de4475df9717972f07175ff19fbf9822b42e6bed0409e3d0b2689a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a311e08bba90fbd16e788bcb68f961dd33f6d6f1a346609f8b1f3027a43ece2da0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", + "rlp": "0xf90370f9023da0c175b89b3c3df7bf3db711357260730e2a54c322d7a6b9747639ffc3b417faaca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03ac49ceafff90dadee126610ff9b32dd952decd2c781b15945e76a1d7a8d350aa0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", "blockHeader": { - "parentHash": "0xab3b2277af2de4475df9717972f07175ff19fbf9822b42e6bed0409e3d0b2689", + "parentHash": "0xc175b89b3c3df7bf3db711357260730e2a54c322d7a6b9747639ffc3b417faac", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa311e08bba90fbd16e788bcb68f961dd33f6d6f1a346609f8b1f3027a43ece2d", + "stateRoot": "0x3ac49ceafff90dadee126610ff9b32dd952decd2c781b15945e76a1d7a8d350a", "transactionsTrie": "0xdb6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172ada", "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -969,33 +838,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb7d0f9dc1d99ee7fb08fefee43ebf9a606b90786d5da4712eb29333c99d51223" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xab3b2277af2de4475df9717972f07175ff19fbf9822b42e6bed0409e3d0b2689", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa311e08bba90fbd16e788bcb68f961dd33f6d6f1a346609f8b1f3027a43ece2d", - "receiptsRoot": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32240", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb7d0f9dc1d99ee7fb08fefee43ebf9a606b90786d5da4712eb29333c99d51223", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xeb4d43f09ab601d2bacabe85c1ffbd4f305c8732b69a8c586e446373c0baecbb" }, "blocknumber": "1", "transactions": [ @@ -1020,45 +863,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xabdc9c5df8c6c5a36a4bc5128a721f3a9286da260fb904d7adecf6d685f953e6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xab3b2277af2de4475df9717972f07175ff19fbf9822b42e6bed0409e3d0b2689" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0abdc9c5df8c6c5a36a4bc5128a721f3a9286da260fb904d7adecf6d685f953e6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb7d0f9dc1d99ee7fb08fefee43ebf9a606b90786d5da4712eb29333c99d51223", - "network": "Cancun", + "lastblockhash": "0xeb4d43f09ab601d2bacabe85c1ffbd4f305c8732b69a8c586e446373c0baecbb", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f26000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1067,14 +885,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1088,6 +898,14 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffea1040", @@ -1099,18 +917,43 @@ }, "007-fork=Cancun--call_type=CALLCODE-incorrect": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07fe0fa69104547d1f15b40a3c1a584154960a63e5ba73a5397f48bb17eccb16da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7fe0fa69104547d1f15b40a3c1a584154960a63e5ba73a5397f48bb17eccb16d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc175b89b3c3df7bf3db711357260730e2a54c322d7a6b9747639ffc3b417faac" + }, "blocks": [ { - "rlp": "0xf90370f9023da0ab3b2277af2de4475df9717972f07175ff19fbf9822b42e6bed0409e3d0b2689a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cac57bae31a58d81148f344790147dc3f40f981a32224e3ad89513843daa6944a0573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518ca044af84d1ff3674375774898fc55642e63bb3e0b92f37c025c41bfaf79c76684db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21c0c0", + "rlp": "0xf90370f9023da0c175b89b3c3df7bf3db711357260730e2a54c322d7a6b9747639ffc3b417faaca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08d7b57cd0ccffeb8e1f596fe700d677fa1842fcf8482ddbdfb0b3dcf5577489ca0573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518ca044af84d1ff3674375774898fc55642e63bb3e0b92f37c025c41bfaf79c76684db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21c0c0", "blockHeader": { - "parentHash": "0xab3b2277af2de4475df9717972f07175ff19fbf9822b42e6bed0409e3d0b2689", + "parentHash": "0xc175b89b3c3df7bf3db711357260730e2a54c322d7a6b9747639ffc3b417faac", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcac57bae31a58d81148f344790147dc3f40f981a32224e3ad89513843daa6944", + "stateRoot": "0x8d7b57cd0ccffeb8e1f596fe700d677fa1842fcf8482ddbdfb0b3dcf5577489c", "transactionsTrie": "0x573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518c", "receiptTrie": "0x44af84d1ff3674375774898fc55642e63bb3e0b92f37c025c41bfaf79c76684d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1127,33 +970,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x855a272a06bf14ab322dbf88ba8459cfd58f44e28515c2020b1adcf66be266c4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xab3b2277af2de4475df9717972f07175ff19fbf9822b42e6bed0409e3d0b2689", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcac57bae31a58d81148f344790147dc3f40f981a32224e3ad89513843daa6944", - "receiptsRoot": "0x44af84d1ff3674375774898fc55642e63bb3e0b92f37c025c41bfaf79c76684d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286ce", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x855a272a06bf14ab322dbf88ba8459cfd58f44e28515c2020b1adcf66be266c4", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x7e4dffae47681e5ce4bd6ea8c8890ba399ad80584ffc65f6e2bfc6fa821714dc" }, "blocknumber": "1", "transactions": [ @@ -1178,45 +995,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xabdc9c5df8c6c5a36a4bc5128a721f3a9286da260fb904d7adecf6d685f953e6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xab3b2277af2de4475df9717972f07175ff19fbf9822b42e6bed0409e3d0b2689" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0abdc9c5df8c6c5a36a4bc5128a721f3a9286da260fb904d7adecf6d685f953e6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x855a272a06bf14ab322dbf88ba8459cfd58f44e28515c2020b1adcf66be266c4", - "network": "Cancun", + "lastblockhash": "0x7e4dffae47681e5ce4bd6ea8c8890ba399ad80584ffc65f6e2bfc6fa821714dc", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f26000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1225,14 +1017,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1244,6 +1028,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee505e", @@ -1255,18 +1047,43 @@ }, "008-fork=Cancun--call_type=CALLCODE-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06f3ebe8563d0f46380bdf5a3e029362b00311b1df131c2307160e0767afa74d0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6f3ebe8563d0f46380bdf5a3e029362b00311b1df131c2307160e0767afa74d0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xef3baef8439114763257dd21ec3998730bbc27f7b6d18111c5ff5ca2bbf2c4c2" + }, "blocks": [ { - "rlp": "0xf90370f9023da0b75c624c7a7f51ee063539d5f3dd3ad08975f72832b8f1ef8cde84c488a5e22ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016423e5144c8c60582406b7b390d5052451029ad12e371d3e737802cfb4d1152a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa040d360edbbe2a3c2c8205056216b7fbe56c236a16ca9f1413fa71ee432186b64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286c10c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", + "rlp": "0xf90370f9023da0ef3baef8439114763257dd21ec3998730bbc27f7b6d18111c5ff5ca2bbf2c4c2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0caca86f65e7ce02ed5243f11b418bde4feddc03226deeaf097933fcee2bf948da0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa040d360edbbe2a3c2c8205056216b7fbe56c236a16ca9f1413fa71ee432186b64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286c10c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", "blockHeader": { - "parentHash": "0xb75c624c7a7f51ee063539d5f3dd3ad08975f72832b8f1ef8cde84c488a5e22c", + "parentHash": "0xef3baef8439114763257dd21ec3998730bbc27f7b6d18111c5ff5ca2bbf2c4c2", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x16423e5144c8c60582406b7b390d5052451029ad12e371d3e737802cfb4d1152", + "stateRoot": "0xcaca86f65e7ce02ed5243f11b418bde4feddc03226deeaf097933fcee2bf948d", "transactionsTrie": "0xdb6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172ada", "receiptTrie": "0x40d360edbbe2a3c2c8205056216b7fbe56c236a16ca9f1413fa71ee432186b64", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1283,33 +1100,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb3052dd45d2902b2f01840ffae8b1de6e47fc5041d7fae6049601e4c7c8cdd8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb75c624c7a7f51ee063539d5f3dd3ad08975f72832b8f1ef8cde84c488a5e22c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x16423e5144c8c60582406b7b390d5052451029ad12e371d3e737802cfb4d1152", - "receiptsRoot": "0x40d360edbbe2a3c2c8205056216b7fbe56c236a16ca9f1413fa71ee432186b64", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286c1", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb3052dd45d2902b2f01840ffae8b1de6e47fc5041d7fae6049601e4c7c8cdd8f", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf2c6913377a3cb8167ed06300b1bb275524c0623eb89e508d6cda005eaa40dfa" }, "blocknumber": "1", "transactions": [ @@ -1334,45 +1125,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xdfa5a0efcce8eae795e7b8b604cbc490c239184dcf33ce26df54031c6e0c2c85", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb75c624c7a7f51ee063539d5f3dd3ad08975f72832b8f1ef8cde84c488a5e22c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dfa5a0efcce8eae795e7b8b604cbc490c239184dcf33ce26df54031c6e0c2c85a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb3052dd45d2902b2f01840ffae8b1de6e47fc5041d7fae6049601e4c7c8cdd8f", - "network": "Cancun", + "lastblockhash": "0xf2c6913377a3cb8167ed06300b1bb275524c0623eb89e508d6cda005eaa40dfa", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c34ff26000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1381,14 +1147,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1400,6 +1158,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee50b9", @@ -1411,18 +1177,43 @@ }, "009-fork=Cancun--call_type=STATICCALL-correct": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e25cbe19a3ad92f45eb31e19af932bcf17e5a1919cda86060ed7f43a00feb228a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe25cbe19a3ad92f45eb31e19af932bcf17e5a1919cda86060ed7f43a00feb228", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa2272f362f519fa17f0ec74bef8328c79fbab5dfe3e14bf0eb82cb7b3df6169a" + }, "blocks": [ { - "rlp": "0xf90370f9023da0c666d3d74fd8b2bd4cdd765c36bc5df65cf4e54450c81450b9943066948dc520a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e90489a1c94aa29723af83acfe11655bcf0df46b8f1eb06917c1bee44dcb9507a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa00e8b3e1c7350d242d9d99f16c3b4ce2de7dce80217e64103109362e71d7cb543b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303223d0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", + "rlp": "0xf90370f9023da0a2272f362f519fa17f0ec74bef8328c79fbab5dfe3e14bf0eb82cb7b3df6169aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e9826e755ac998c743617590624897aa900be3d871cf7961c2f0d35ff1db3c15a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa00e8b3e1c7350d242d9d99f16c3b4ce2de7dce80217e64103109362e71d7cb543b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303223d0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", "blockHeader": { - "parentHash": "0xc666d3d74fd8b2bd4cdd765c36bc5df65cf4e54450c81450b9943066948dc520", + "parentHash": "0xa2272f362f519fa17f0ec74bef8328c79fbab5dfe3e14bf0eb82cb7b3df6169a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe90489a1c94aa29723af83acfe11655bcf0df46b8f1eb06917c1bee44dcb9507", + "stateRoot": "0xe9826e755ac998c743617590624897aa900be3d871cf7961c2f0d35ff1db3c15", "transactionsTrie": "0xdb6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172ada", "receiptTrie": "0x0e8b3e1c7350d242d9d99f16c3b4ce2de7dce80217e64103109362e71d7cb543", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1439,33 +1230,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa270f6d3413cc659065737fbd5215c8527121a033f0423f2e2f20305adebf13c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc666d3d74fd8b2bd4cdd765c36bc5df65cf4e54450c81450b9943066948dc520", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe90489a1c94aa29723af83acfe11655bcf0df46b8f1eb06917c1bee44dcb9507", - "receiptsRoot": "0x0e8b3e1c7350d242d9d99f16c3b4ce2de7dce80217e64103109362e71d7cb543", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3223d", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa270f6d3413cc659065737fbd5215c8527121a033f0423f2e2f20305adebf13c", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x793242bf54cddcb3b7aee55bd23494652c0cd0fd88d8c1dbf9e8d5effcae28bc" }, "blocknumber": "1", "transactions": [ @@ -1490,45 +1255,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0dbceb3a02e4748b1dfb3aed7e5728cbdc0e38e5be6289424963132c1363d475", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc666d3d74fd8b2bd4cdd765c36bc5df65cf4e54450c81450b9943066948dc520" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00dbceb3a02e4748b1dfb3aed7e5728cbdc0e38e5be6289424963132c1363d475a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa270f6d3413cc659065737fbd5215c8527121a033f0423f2e2f20305adebf13c", - "network": "Cancun", + "lastblockhash": "0x793242bf54cddcb3b7aee55bd23494652c0cd0fd88d8c1dbf9e8d5effcae28bc", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x36600060003760406000366000600a61c350fa6000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1537,14 +1277,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1558,6 +1290,14 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffea1055", @@ -1569,18 +1309,43 @@ }, "010-fork=Cancun--call_type=STATICCALL-incorrect": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e25cbe19a3ad92f45eb31e19af932bcf17e5a1919cda86060ed7f43a00feb228a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe25cbe19a3ad92f45eb31e19af932bcf17e5a1919cda86060ed7f43a00feb228", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa2272f362f519fa17f0ec74bef8328c79fbab5dfe3e14bf0eb82cb7b3df6169a" + }, "blocks": [ { - "rlp": "0xf90370f9023da0c666d3d74fd8b2bd4cdd765c36bc5df65cf4e54450c81450b9943066948dc520a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f24bfff0beda991515411290cbc4d58d9ff1aef98cb35a8df7b860f373a91a82a0573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518ca00cbfc07044005f86e7a6c3cede4b16989d5a2718c50b2cd341e8cb63b6baaf1fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286cb0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21c0c0", + "rlp": "0xf90370f9023da0a2272f362f519fa17f0ec74bef8328c79fbab5dfe3e14bf0eb82cb7b3df6169aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e4d59c70a5f8324778ec0da561a6fe82cbcfa3e0e1cac054b4c7dcd9bae6ebd7a0573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518ca00cbfc07044005f86e7a6c3cede4b16989d5a2718c50b2cd341e8cb63b6baaf1fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286cb0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21c0c0", "blockHeader": { - "parentHash": "0xc666d3d74fd8b2bd4cdd765c36bc5df65cf4e54450c81450b9943066948dc520", + "parentHash": "0xa2272f362f519fa17f0ec74bef8328c79fbab5dfe3e14bf0eb82cb7b3df6169a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf24bfff0beda991515411290cbc4d58d9ff1aef98cb35a8df7b860f373a91a82", + "stateRoot": "0xe4d59c70a5f8324778ec0da561a6fe82cbcfa3e0e1cac054b4c7dcd9bae6ebd7", "transactionsTrie": "0x573f85818a948041dbef689680532005a24c905088b72afd837509ecaa38518c", "receiptTrie": "0x0cbfc07044005f86e7a6c3cede4b16989d5a2718c50b2cd341e8cb63b6baaf1f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1597,33 +1362,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x24f176a08b30b370006eed165d3bd357a1d4d992e2470c81624e05ae5032b3d1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc666d3d74fd8b2bd4cdd765c36bc5df65cf4e54450c81450b9943066948dc520", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf24bfff0beda991515411290cbc4d58d9ff1aef98cb35a8df7b860f373a91a82", - "receiptsRoot": "0x0cbfc07044005f86e7a6c3cede4b16989d5a2718c50b2cd341e8cb63b6baaf1f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286cb", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x24f176a08b30b370006eed165d3bd357a1d4d992e2470c81624e05ae5032b3d1", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0550c2b6026a89b1de3877c43369bd45b7ec05f3aba03e87351480c4c81bc13e2a03dbefc213f0ea1a6a249a84f8ac61e11d82a997d65796c2469796b8421608a21" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x014a892ef01d845949a6515e7e0db86475cc52a4788df43f18ec5123e6cdb443" }, "blocknumber": "1", "transactions": [ @@ -1648,45 +1387,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0dbceb3a02e4748b1dfb3aed7e5728cbdc0e38e5be6289424963132c1363d475", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc666d3d74fd8b2bd4cdd765c36bc5df65cf4e54450c81450b9943066948dc520" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00dbceb3a02e4748b1dfb3aed7e5728cbdc0e38e5be6289424963132c1363d475a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x24f176a08b30b370006eed165d3bd357a1d4d992e2470c81624e05ae5032b3d1", - "network": "Cancun", + "lastblockhash": "0x014a892ef01d845949a6515e7e0db86475cc52a4788df43f18ec5123e6cdb443", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x36600060003760406000366000600a61c350fa6000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1695,14 +1409,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1714,6 +1420,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee5073", @@ -1725,18 +1439,43 @@ }, "011-fork=Cancun--call_type=STATICCALL-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a088c0c892243450820c3a55b207ae7209d705aaa063d9e78d68d9fbede27301c9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x88c0c892243450820c3a55b207ae7209d705aaa063d9e78d68d9fbede27301c9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0f5a97d0a8896928629e0ff009944dd2916ad45b26c6509527a02a35ba937e1b" + }, "blocks": [ { - "rlp": "0xf90370f9023da096510799ec820d6992b8b9270d646b3532dda50cd6b54cc8e723b15f64c9c470a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa036a61a7362ad7958a26b5e96bf6e1bcbc723eb4f6d593276c818e4c5fb8d4d01a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa0da784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", + "rlp": "0xf90370f9023da00f5a97d0a8896928629e0ff009944dd2916ad45b26c6509527a02a35ba937e1ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa063ec441a319ed6f7a1d2e83d1d08bbde6abbe11bb40271d9a9c24e3d74fbe530a0db6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172adaa0da784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaac0c0", "blockHeader": { - "parentHash": "0x96510799ec820d6992b8b9270d646b3532dda50cd6b54cc8e723b15f64c9c470", + "parentHash": "0x0f5a97d0a8896928629e0ff009944dd2916ad45b26c6509527a02a35ba937e1b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x36a61a7362ad7958a26b5e96bf6e1bcbc723eb4f6d593276c818e4c5fb8d4d01", + "stateRoot": "0x63ec441a319ed6f7a1d2e83d1d08bbde6abbe11bb40271d9a9c24e3d74fbe530", "transactionsTrie": "0xdb6243ba190d98fc32ffe9a229951a0fe2aea68c54140ddca27ac55330172ada", "receiptTrie": "0xda784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1753,33 +1492,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5ae7cb2e682a98797dd6484d279a0261331a847609b2fd6c57802eb39b6c3b60" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x96510799ec820d6992b8b9270d646b3532dda50cd6b54cc8e723b15f64c9c470", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x36a61a7362ad7958a26b5e96bf6e1bcbc723eb4f6d593276c818e4c5fb8d4d01", - "receiptsRoot": "0xda784537fe8569e163797ffe73aaf6b104b8f6b6a78b81c275603085cc5e0800", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x286be", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5ae7cb2e682a98797dd6484d279a0261331a847609b2fd6c57802eb39b6c3b60", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a08d077aadf82e765319b8d2b96c508b41843c34cbb3b571712f46149c339362e1a04d25bce6b340faf6fe4e55cc935c0374f33faa248a998ca9e9d0aa607ca0fcaa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbae1410e9e7d5304ededcd77aa8c1d2a9969fd753eae0b36727860bcb070d17e" }, "blocknumber": "1", "transactions": [ @@ -1804,45 +1517,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x811edb026f4ac0d5f3df8147a41b2a45c7509066f2b9c7d3e07b80fe4dce26bf", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x96510799ec820d6992b8b9270d646b3532dda50cd6b54cc8e723b15f64c9c470" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0811edb026f4ac0d5f3df8147a41b2a45c7509066f2b9c7d3e07b80fe4dce26bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5ae7cb2e682a98797dd6484d279a0261331a847609b2fd6c57802eb39b6c3b60", - "network": "Cancun", + "lastblockhash": "0xbae1410e9e7d5304ededcd77aa8c1d2a9969fd753eae0b36727860bcb070d17e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x36600060003760406000366000600a61c34ffa6000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1851,14 +1539,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1870,6 +1550,14 @@ "0x05": "0x623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee50ce", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json index 8b64f3c4777..bedc322bae9 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_external_vectors.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_02e696ada7d4631d": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06418c4408909068f03c56feaaa66472327e0cc6baa1b74694401e98f8bbade92a0342a7b460150feecdcb631315bdec6482e2c61fdbd3503ec02fe14e29f3bf370a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a065f7b12b0599ab4d9ebb3eb4b578437f752aa0cb55ddf51fff8606bef0810d11a01fe1f62b259c12418cf77f0e4f4fe740701e7e24977b011ecbc9ea14e67fc356c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea0342a7b460150feecdcb631315bdec6482e2c61fdbd3503ec02fe14e29f3bf370a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a065f7b12b0599ab4d9ebb3eb4b578437f752aa0cb55ddf51fff8606bef0810d11a01fe1f62b259c12418cf77f0e4f4fe740701e7e24977b011ecbc9ea14e67fc356c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6418c4408909068f03c56feaaa66472327e0cc6baa1b74694401e98f8bbade92", + "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee", "transactionsTrie": "0x342a7b460150feecdcb631315bdec6482e2c61fdbd3503ec02fe14e29f3bf370", "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x811c8ff0a9db840c9cf086c28881dc1f03c9e5e778b7d910b2ac40cf7a6ed223" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6418c4408909068f03c56feaaa66472327e0cc6baa1b74694401e98f8bbade92", - "receiptsRoot": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x320d8", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x811c8ff0a9db840c9cf086c28881dc1f03c9e5e778b7d910b2ac40cf7a6ed223", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a065f7b12b0599ab4d9ebb3eb4b578437f752aa0cb55ddf51fff8606bef0810d11a01fe1f62b259c12418cf77f0e4f4fe740701e7e24977b011ecbc9ea14e67fc356" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb9ad0d2b7827d79ddd92eb487aeccaaf8eafbb6e474d95f2d30c938eb632366e" }, "blocknumber": "1", "transactions": [ @@ -80,45 +79,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x811c8ff0a9db840c9cf086c28881dc1f03c9e5e778b7d910b2ac40cf7a6ed223", - "network": "Cancun", + "lastblockhash": "0xb9ad0d2b7827d79ddd92eb487aeccaaf8eafbb6e474d95f2d30c938eb632366e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -127,14 +101,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -148,6 +114,14 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffea1a18", @@ -157,27 +131,52 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_08f9e2f1cb3d39db": { + "001-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_05c1f3685f3393f0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06a6e37cf4578a99f6fa42eb935a58b7afd7af4634e445da73a00334f71ee6aeca0487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8da0f5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325a00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a059e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bda046be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340c0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0daa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5aa064694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579a0cffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303248c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a056cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c219f8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6a6e37cf4578a99f6fa42eb935a58b7afd7af4634e445da73a00334f71ee6aec", - "transactionsTrie": "0x487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8d", - "receiptTrie": "0xf5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043", + "stateRoot": "0xdaa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5a", + "transactionsTrie": "0x64694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579", + "receiptTrie": "0xcffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0325a0", + "gasUsed": "0x03248c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -187,33 +186,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xff0ac27daf0f45eed2135f4cc8459c6e95dd15e71f17afb6fbea0f3a95f0dc62" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6a6e37cf4578a99f6fa42eb935a58b7afd7af4634e445da73a00334f71ee6aec", - "receiptsRoot": "0xf5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x325a0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xff0ac27daf0f45eed2135f4cc8459c6e95dd15e71f17afb6fbea0f3a95f0dc62", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a059e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bda046be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a" }, "blocknumber": "1", "transactions": [ @@ -226,11 +199,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0x59e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bd", - "s": "0x46be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340", + "v": "0x00", + "r": "0x56cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c21", + "s": "0x8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -238,45 +211,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xff0ac27daf0f45eed2135f4cc8459c6e95dd15e71f17afb6fbea0f3a95f0dc62", - "network": "Cancun", + "lastblockhash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -285,14 +233,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -306,36 +246,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f8a0", + "balance": "0xffffffffffffea002c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "002-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_0cf79b17cb5f4ea2": { + "002-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_08f9e2f1cb3d39db": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa042137e4b8a3b2337a9b7f1f4fe62452e29e8c14bc5f29a7b5698cb4e2f8701e4a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa004023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249a0487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8da0f5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325a00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a059e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bda046be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x42137e4b8a3b2337a9b7f1f4fe62452e29e8c14bc5f29a7b5698cb4e2f8701e4", - "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", - "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", + "stateRoot": "0x04023d26811e25cd34b8ce4d5aab0a6a3fa16558984b0b2c29a1d371f83a1249", + "transactionsTrie": "0x487a2b42837cfb42e30dc2a3601d1ee2d4b4f10efda11a4623ea510d1a511a8d", + "receiptTrie": "0xf5edc77dca0be21234ab0069b8ad13ce6c3c972e66e0ddd0e43da6c5d9950043", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032240", + "gasUsed": "0x0325a0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -345,33 +318,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2aa8fe5c1a5c7a928d7f064d2d4b0d45e0bdb6ae04666c3d8467f2fa54481f49" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x42137e4b8a3b2337a9b7f1f4fe62452e29e8c14bc5f29a7b5698cb4e2f8701e4", - "receiptsRoot": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32240", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2aa8fe5c1a5c7a928d7f064d2d4b0d45e0bdb6ae04666c3d8467f2fa54481f49", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e" }, "blocknumber": "1", "transactions": [ @@ -384,11 +331,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x01", - "r": "0x5d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02", - "s": "0x69b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22", + "r": "0x59e387255cf10f1ecfd2846f252f931724b1be74c7b62cc27e2b3693f0e0b9bd", + "s": "0x46be1d5b11bf7aa48259044c60810623555b4160bf9885967ff64e8147c51340", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -396,45 +343,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2aa8fe5c1a5c7a928d7f064d2d4b0d45e0bdb6ae04666c3d8467f2fa54481f49", - "network": "Cancun", + "lastblockhash": "0x87aa02b29ff1a99a0ce591a62729b351961c0c3bb52c7288c083cfe432aecc4e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -443,14 +365,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -464,36 +378,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea1040", + "balance": "0xffffffffffffe9f8a0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "003-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_1ce8e4f69d5df899": { + "003-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_0cf79b17cb5f4ea2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa033ec3b9a7116988212c45e706d9707d215e9f0323d294449bd08abd18eda71b6a09d06f6b26cd14b0d3f21382ffa54d56ae7f91deca6ebc10b2fa2eab3dad5fc1ea0107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326780c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa729910bad9058b4e277f3ddba7396df505a0191c38e5ad08af1d0d30792c887e99bf754b7932b83e1cef4e1ec678339c001a0165f8a7b48f74493495d217f6a2847408ac4d4ea6bd618c644e1a8d8a9fc79eda0487d842fabe0ba38ef64e623c7c2254e16b8905ecf116e90aa29c1acd6854409c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94aa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x33ec3b9a7116988212c45e706d9707d215e9f0323d294449bd08abd18eda71b6", - "transactionsTrie": "0x9d06f6b26cd14b0d3f21382ffa54d56ae7f91deca6ebc10b2fa2eab3dad5fc1e", - "receiptTrie": "0x107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343d", + "stateRoot": "0xbff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94a", + "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", + "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032678", + "gasUsed": "0x032240", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -503,33 +450,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7df99cd6b1753f639e22c80c0dc8e1214766063086b2bebdadc1f6eb7eb077f2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x33ec3b9a7116988212c45e706d9707d215e9f0323d294449bd08abd18eda71b6", - "receiptsRoot": "0x107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32678", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7df99cd6b1753f639e22c80c0dc8e1214766063086b2bebdadc1f6eb7eb077f2", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa729910bad9058b4e277f3ddba7396df505a0191c38e5ad08af1d0d30792c887e99bf754b7932b83e1cef4e1ec678339c001a0165f8a7b48f74493495d217f6a2847408ac4d4ea6bd618c644e1a8d8a9fc79eda0487d842fabe0ba38ef64e623c7c2254e16b8905ecf116e90aa29c1acd6854409" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617" }, "blocknumber": "1", "transactions": [ @@ -542,11 +463,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa729910bad9058b4e277f3ddba7396df505a0191c38e5ad08af1d0d30792c887e99bf754b7932b83e1cef4e1ec678339", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x01", - "r": "0x165f8a7b48f74493495d217f6a2847408ac4d4ea6bd618c644e1a8d8a9fc79ed", - "s": "0x487d842fabe0ba38ef64e623c7c2254e16b8905ecf116e90aa29c1acd6854409", + "r": "0x5d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02", + "s": "0x69b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -554,45 +475,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7df99cd6b1753f639e22c80c0dc8e1214766063086b2bebdadc1f6eb7eb077f2", - "network": "Cancun", + "lastblockhash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -601,14 +497,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -622,36 +510,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f2b8", + "balance": "0xffffffffffffea1040", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "004-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_26b753dec0560daa": { + "004-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_177b58dc7a46b08f": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07e5de3c8119521222444d17dac02b04648795b4112a14393619960b4612dbe74a013fd9224a0424d2558396842595cb72e0789f1b6cbe952ea4ea5f8b49a689d19a099cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326900c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8931692634033cbbfe2db48c027dbb93f123754205bb7c7a56797966f83272b13b4be34f80c15bf8d4ed0b740ffb3c64c080a0365e0602b422eea53fbad362bfc3baca8b4575c9881992df6864c47bafadb985a009c6f75c387d7a57a4e6ddcfb1d509eeacb54d427b5b5dc3da129469b00f4fb5c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9da0b835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30a04bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0a043eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7e5de3c8119521222444d17dac02b04648795b4112a14393619960b4612dbe74", - "transactionsTrie": "0x13fd9224a0424d2558396842595cb72e0789f1b6cbe952ea4ea5f8b49a689d19", - "receiptTrie": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64", + "stateRoot": "0x9ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9d", + "transactionsTrie": "0xb835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30", + "receiptTrie": "0x4bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032690", + "gasUsed": "0x032480", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -661,33 +582,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x91ab1da7443d0d999dfb6c4acd5e74b01c901bbb10dd4f5961728fcb0dcd9632" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7e5de3c8119521222444d17dac02b04648795b4112a14393619960b4612dbe74", - "receiptsRoot": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32690", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x91ab1da7443d0d999dfb6c4acd5e74b01c901bbb10dd4f5961728fcb0dcd9632", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8931692634033cbbfe2db48c027dbb93f123754205bb7c7a56797966f83272b13b4be34f80c15bf8d4ed0b740ffb3c64c080a0365e0602b422eea53fbad362bfc3baca8b4575c9881992df6864c47bafadb985a009c6f75c387d7a57a4e6ddcfb1d509eeacb54d427b5b5dc3da129469b00f4fb5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2" }, "blocknumber": "1", "transactions": [ @@ -700,11 +595,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8931692634033cbbfe2db48c027dbb93f123754205bb7c7a56797966f83272b13b4be34f80c15bf8d4ed0b740ffb3c64", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0x365e0602b422eea53fbad362bfc3baca8b4575c9881992df6864c47bafadb985", - "s": "0x09c6f75c387d7a57a4e6ddcfb1d509eeacb54d427b5b5dc3da129469b00f4fb5", + "r": "0x041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0", + "s": "0x43eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -712,45 +607,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x91ab1da7443d0d999dfb6c4acd5e74b01c901bbb10dd4f5961728fcb0dcd9632", - "network": "Cancun", + "lastblockhash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -759,14 +629,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -780,36 +642,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f210", + "balance": "0xffffffffffffea0080", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "005-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_31ebd010e6098750": { + "005-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_1ce8e4f69d5df899": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d5f6707ecf7fb258c78947fd75c4bebe33bec3cb068524950497eb38984f9931a02bdfa3637aca485645fba59eab7f0d894ac4223ce26f8deed3ed34b4a03ffe3ba0d9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328040c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a57dd03e11678afb060af17cc3dc049e02f2814e13ed1dadc94d1105106ffa834907d1176420f637d51edbcd120274fbc080a0c7cd32b2b7670e9391f010eaba058ec6bd4a69af05a4eb480241c43deb1fdf78a00c073099ee965d382aa8c4ec7806d2a83e9a0f8024c49cda67ea9123f139cc45c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527a043789cfcc04c94354e30ca1cb5082ccd5d15d1c61296d1705538899289d5e61aa0107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326780c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655692c51ff81dd71dab71cefecd79e8274b4b7ba36a0f40e2dc086bc4061c7f63249877db23297212991fd63e07b7ebc348c080a083b15b98bed71805ae022f208ab10677f215fdc8f516788b9105ea1002831446a06c604d50ca527c1e81de361282a867fcae3161b9c66672bccfc3decfab89da75c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd5f6707ecf7fb258c78947fd75c4bebe33bec3cb068524950497eb38984f9931", - "transactionsTrie": "0x2bdfa3637aca485645fba59eab7f0d894ac4223ce26f8deed3ed34b4a03ffe3b", - "receiptTrie": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8", + "stateRoot": "0xa99871e54f31dcf49f28c94a654df2fe9fd1c662ace3959bba53d194d890d527", + "transactionsTrie": "0x43789cfcc04c94354e30ca1cb5082ccd5d15d1c61296d1705538899289d5e61a", + "receiptTrie": "0x107b00df623c9a80790e9c7cc0ee8f3527004d21d32f368f34b00937a6b1343d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032804", + "gasUsed": "0x032678", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -819,33 +714,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x164e4aac0a1e54b4de441269772ef71ce285a5e0da6d4f2db971c3b01929b0f9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd5f6707ecf7fb258c78947fd75c4bebe33bec3cb068524950497eb38984f9931", - "receiptsRoot": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32804", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x164e4aac0a1e54b4de441269772ef71ce285a5e0da6d4f2db971c3b01929b0f9", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a57dd03e11678afb060af17cc3dc049e02f2814e13ed1dadc94d1105106ffa834907d1176420f637d51edbcd120274fbc080a0c7cd32b2b7670e9391f010eaba058ec6bd4a69af05a4eb480241c43deb1fdf78a00c073099ee965d382aa8c4ec7806d2a83e9a0f8024c49cda67ea9123f139cc45" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfdad33e800bbb22101dfd15d3403ca534fef91c88e7a43c5ff5c246efae3215a" }, "blocknumber": "1", "transactions": [ @@ -858,11 +727,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a57dd03e11678afb060af17cc3dc049e02f2814e13ed1dadc94d1105106ffa834907d1176420f637d51edbcd120274fb", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655692c51ff81dd71dab71cefecd79e8274b4b7ba36a0f40e2dc086bc4061c7f63249877db23297212991fd63e07b7ebc348", "accessList": [], "v": "0x00", - "r": "0xc7cd32b2b7670e9391f010eaba058ec6bd4a69af05a4eb480241c43deb1fdf78", - "s": "0x0c073099ee965d382aa8c4ec7806d2a83e9a0f8024c49cda67ea9123f139cc45", + "r": "0x83b15b98bed71805ae022f208ab10677f215fdc8f516788b9105ea1002831446", + "s": "0x6c604d50ca527c1e81de361282a867fcae3161b9c66672bccfc3decfab89da75", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -870,45 +739,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x164e4aac0a1e54b4de441269772ef71ce285a5e0da6d4f2db971c3b01929b0f9", - "network": "Cancun", + "lastblockhash": "0xfdad33e800bbb22101dfd15d3403ca534fef91c88e7a43c5ff5c246efae3215a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -917,14 +761,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -938,36 +774,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e7e4", + "balance": "0xffffffffffffe9f2b8", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "006-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3208425794224c3f": { + "006-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_26b753dec0560daa": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0859d7086d09e7f1722772999ad3e4fe667bd90db1235a250d8f3e4ecedc0e384a0baebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24fa0c787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303224c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749a0ffa174a7267f0fd675444d1106b4e36f7f04acb483a5f46ed0f52076d6610322a099cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326900c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b82ded761997f2c6f1bb3db1e1dada2ef06d936551667c82f659b75f99d2da2068b81340823ee4e829a93c9fbed7810dc080a0a933405fb1acd6fd8a3d63b0c1719808d76cb052267d28b26597c59d7debad12a0444e79244e52dda7b22f522e87729c7e0f2e42dabf4d2bca86a1a3bd5ad35fc4c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x859d7086d09e7f1722772999ad3e4fe667bd90db1235a250d8f3e4ecedc0e384", - "transactionsTrie": "0xbaebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24f", - "receiptTrie": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b", + "stateRoot": "0x5ce79e06e93755883c681653ed1373893d31a0800384fd305f47d7a039076749", + "transactionsTrie": "0xffa174a7267f0fd675444d1106b4e36f7f04acb483a5f46ed0f52076d6610322", + "receiptTrie": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03224c", + "gasUsed": "0x032690", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -977,33 +846,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc1063738851279087122f5fd9f8424ca4ac0c385773c8b3186d3fcfcf1c68d55" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x859d7086d09e7f1722772999ad3e4fe667bd90db1235a250d8f3e4ecedc0e384", - "receiptsRoot": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3224c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc1063738851279087122f5fd9f8424ca4ac0c385773c8b3186d3fcfcf1c68d55", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x46905b806271903059045b328481b7bc4971e46bc61f679ee3c6f41eda23b60b" }, "blocknumber": "1", "transactions": [ @@ -1016,11 +859,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b82ded761997f2c6f1bb3db1e1dada2ef06d936551667c82f659b75f99d2da2068b81340823ee4e829a93c9fbed7810d", "accessList": [], "v": "0x00", - "r": "0xe0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64af", - "s": "0x4a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d", + "r": "0xa933405fb1acd6fd8a3d63b0c1719808d76cb052267d28b26597c59d7debad12", + "s": "0x444e79244e52dda7b22f522e87729c7e0f2e42dabf4d2bca86a1a3bd5ad35fc4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1028,45 +871,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc1063738851279087122f5fd9f8424ca4ac0c385773c8b3186d3fcfcf1c68d55", - "network": "Cancun", + "lastblockhash": "0x46905b806271903059045b328481b7bc4971e46bc61f679ee3c6f41eda23b60b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1075,14 +893,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1096,36 +906,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea0fec", + "balance": "0xffffffffffffe9f210", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "007-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_36817bfd67de97a8": { + "007-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_2b76dc9e3abf42f3": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04c2bf7f6a21886042d9ac130c50da3f66c817138400002c93e63c7a43be92941a0c8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebba0a8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324500c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a00c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5ea0618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a04a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0a04b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4c2bf7f6a21886042d9ac130c50da3f66c817138400002c93e63c7a43be92941", - "transactionsTrie": "0xc8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebb", - "receiptTrie": "0xa8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85", + "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283", + "transactionsTrie": "0x4a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9", + "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032450", + "gasUsed": "0x032318", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1135,33 +978,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5ab40568f43cc5f5be59951a2304ddacba11f85ea2c4ddacdeb68a818ad4b0ff" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4c2bf7f6a21886042d9ac130c50da3f66c817138400002c93e63c7a43be92941", - "receiptsRoot": "0xa8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32450", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5ab40568f43cc5f5be59951a2304ddacba11f85ea2c4ddacdeb68a818ad4b0ff", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a00c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5ea0618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8" }, "blocknumber": "1", "transactions": [ @@ -1174,11 +991,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0x0c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5e", - "s": "0x618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8d", + "v": "0x00", + "r": "0x9195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0", + "s": "0x4b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1186,45 +1003,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5ab40568f43cc5f5be59951a2304ddacba11f85ea2c4ddacdeb68a818ad4b0ff", - "network": "Cancun", + "lastblockhash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1233,14 +1025,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1254,36 +1038,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea01d0", + "balance": "0xffffffffffffea0a58", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "008-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_392169c16a2e5ef6": { + "008-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_31ebd010e6098750": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02c93065c07a9ba53f17547b14a45ad8a5e9631717fffc1d288567ae7b1788e7ca0aa16625da437f5999076de40b8d7f4c210e77baf2ce2fd77d6b17349c8c664a4a05742ba1338d1fec304a28a3a37f1763771bae5dacbabdee58251b90e4f76a3dab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830327d40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a69fc1abb7125e6ae566a95cacd832cca426b8c8ecd7397b19a8f003103bc11a508fc6dceab3a2a16cc83782d295c08fc080a0c7832239d8eecbc9d0a0fd27503cfa7a74a9515ae20e176e176e2fcb78bcb410a0389663dacc45e114ed46a209186fa3d7ecc46657d969bfd86cb95050caf26bf4c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cc0c32ad033d56b450fd0efb7406dd2f8bea933d7bfd691cdf07366e2e7e2a3ea05a95a607cfdb40bc540295c12eba153e7929bffef2afb400051c5b1b29916151a0ddd8e54de43cee140d6658fcf27a111de638a4c94b6be71367a2d82ed31d2b40b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830327e00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a62ad71d14c5719385c0686f1871430475bf3a00f0aa3f7b8dd99a9abc2160744faf0070725e00b60ad9a026a15b1a8cc001a0631d859dbd7c6db2a8fc72b785f40e5e5fe6b164ac1be86464ea6d3f64ba4e4ba023c5b8b60ca99d38cf1da2f0efd449a6868d217648eea05ee1b85a6b6496ac97c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2c93065c07a9ba53f17547b14a45ad8a5e9631717fffc1d288567ae7b1788e7c", - "transactionsTrie": "0xaa16625da437f5999076de40b8d7f4c210e77baf2ce2fd77d6b17349c8c664a4", - "receiptTrie": "0x5742ba1338d1fec304a28a3a37f1763771bae5dacbabdee58251b90e4f76a3da", + "stateRoot": "0xcc0c32ad033d56b450fd0efb7406dd2f8bea933d7bfd691cdf07366e2e7e2a3e", + "transactionsTrie": "0x5a95a607cfdb40bc540295c12eba153e7929bffef2afb400051c5b1b29916151", + "receiptTrie": "0xddd8e54de43cee140d6658fcf27a111de638a4c94b6be71367a2d82ed31d2b40", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0327d4", + "gasUsed": "0x0327e0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1293,33 +1110,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd2f01b3905a6bb7a350864a16023e72727f5d040c7c303b07b17a330c7b3e44a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2c93065c07a9ba53f17547b14a45ad8a5e9631717fffc1d288567ae7b1788e7c", - "receiptsRoot": "0x5742ba1338d1fec304a28a3a37f1763771bae5dacbabdee58251b90e4f76a3da", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x327d4", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd2f01b3905a6bb7a350864a16023e72727f5d040c7c303b07b17a330c7b3e44a", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a69fc1abb7125e6ae566a95cacd832cca426b8c8ecd7397b19a8f003103bc11a508fc6dceab3a2a16cc83782d295c08fc080a0c7832239d8eecbc9d0a0fd27503cfa7a74a9515ae20e176e176e2fcb78bcb410a0389663dacc45e114ed46a209186fa3d7ecc46657d969bfd86cb95050caf26bf4" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x89910fbfd8a674c8793add9c88070744cf350faa984ecb5e81005a17f7a3cc07" }, "blocknumber": "1", "transactions": [ @@ -1332,11 +1123,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a69fc1abb7125e6ae566a95cacd832cca426b8c8ecd7397b19a8f003103bc11a508fc6dceab3a2a16cc83782d295c08f", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a62ad71d14c5719385c0686f1871430475bf3a00f0aa3f7b8dd99a9abc2160744faf0070725e00b60ad9a026a15b1a8c", "accessList": [], - "v": "0x00", - "r": "0xc7832239d8eecbc9d0a0fd27503cfa7a74a9515ae20e176e176e2fcb78bcb410", - "s": "0x389663dacc45e114ed46a209186fa3d7ecc46657d969bfd86cb95050caf26bf4", + "v": "0x01", + "r": "0x631d859dbd7c6db2a8fc72b785f40e5e5fe6b164ac1be86464ea6d3f64ba4e4b", + "s": "0x23c5b8b60ca99d38cf1da2f0efd449a6868d217648eea05ee1b85a6b6496ac97", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1344,45 +1135,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd2f01b3905a6bb7a350864a16023e72727f5d040c7c303b07b17a330c7b3e44a", - "network": "Cancun", + "lastblockhash": "0x89910fbfd8a674c8793add9c88070744cf350faa984ecb5e81005a17f7a3cc07", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1391,14 +1157,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1412,36 +1170,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e934", + "balance": "0xffffffffffffe9e8e0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "009-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3ac8dc31e9aa6a70": { + "009-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3208425794224c3f": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07716dabb2995ab3557002b788a769b2602ef6d55a5f5ce8b3e95475eddf3e0ffa023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71ea0baebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24fa0c787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303224c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1dc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7716dabb2995ab3557002b788a769b2602ef6d55a5f5ce8b3e95475eddf3e0ff", - "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c", - "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff", + "stateRoot": "0x738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71e", + "transactionsTrie": "0xbaebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24f", + "receiptTrie": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03221c", + "gasUsed": "0x03224c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1451,33 +1242,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc6b59b738832a6071b9813e4ab50aae2ccdac7929e391cb4325c79dc22e836d9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7716dabb2995ab3557002b788a769b2602ef6d55a5f5ce8b3e95475eddf3e0ff", - "receiptsRoot": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3221c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc6b59b738832a6071b9813e4ab50aae2ccdac7929e391cb4325c79dc22e836d9", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e" }, "blocknumber": "1", "transactions": [ @@ -1490,11 +1255,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0xcdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307", - "s": "0x6df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe", + "r": "0xe0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64af", + "s": "0x4a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1502,45 +1267,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc6b59b738832a6071b9813e4ab50aae2ccdac7929e391cb4325c79dc22e836d9", - "network": "Cancun", + "lastblockhash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1549,14 +1289,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1570,101 +1302,36 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea113c", + "balance": "0xffffffffffffea0fec", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "010-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c1e8b38219e3e12": { + "010-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_36817bfd67de97a8": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e6155748f5f07057ad7899a56b96b06b526166dd9e490eeafbdbbbb0a7df8a5da05e11b330192611cdcfa0feea3801bc7983000d4df1fe49ca6b09fcf6ecf7e6f0a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a86f18630d3803118cb0f7a970e04cf58612a91f5cd4f7f9aead0a5e44996484cad44f6a21a37d9188f84e1cfe5d70ffc080a0ff3fbb44abc71d2dee94a0b8877b22f7f4b49c1a83d79184a8c352607d5d2072a04beecb447b8cfd0b5cb89a7d5cdf25790977a328eb410055be4d6bb702d23fa6c0c0", - "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6155748f5f07057ad7899a56b96b06b526166dd9e490eeafbdbbbb0a7df8a5d", - "transactionsTrie": "0x5e11b330192611cdcfa0feea3801bc7983000d4df1fe49ca6b09fcf6ecf7e6f0", - "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326b4", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe27e8b4332dfcd522e85988bfbb4e1979c274b96be77dad2ed976a97489830f5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6155748f5f07057ad7899a56b96b06b526166dd9e490eeafbdbbbb0a7df8a5d", - "receiptsRoot": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326b4", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe27e8b4332dfcd522e85988bfbb4e1979c274b96be77dad2ed976a97489830f5", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a86f18630d3803118cb0f7a970e04cf58612a91f5cd4f7f9aead0a5e44996484cad44f6a21a37d9188f84e1cfe5d70ffc080a0ff3fbb44abc71d2dee94a0b8877b22f7f4b49c1a83d79184a8c352607d5d2072a04beecb447b8cfd0b5cb89a7d5cdf25790977a328eb410055be4d6bb702d23fa6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9a86f18630d3803118cb0f7a970e04cf58612a91f5cd4f7f9aead0a5e44996484cad44f6a21a37d9188f84e1cfe5d70ff", - "accessList": [], - "v": "0x00", - "r": "0xff3fbb44abc71d2dee94a0b8877b22f7f4b49c1a83d79184a8c352607d5d2072", - "s": "0x4beecb447b8cfd0b5cb89a7d5cdf25790977a328eb410055be4d6bb702d23fa6", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1681,24 +1348,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe27e8b4332dfcd522e85988bfbb4e1979c274b96be77dad2ed976a97489830f5", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0a0c8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebba0a8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324500c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a00c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5ea0618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8dc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd2fd000883b07e69b2f0072ea7e1b3ef3d020b94b87b4a005a339aed93f40ff0", + "transactionsTrie": "0xc8b9949fdbd6e8b8147ab57b4df8948a045047b9f8d89ce7bb33cbbb38563ebb", + "receiptTrie": "0xa8c1d3e098b71a1cc8213ea7a30151d9d61a526a0caf2275b56a3c72911ddb85", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032450", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x0c1fef5ea3a0f8740b54e5fe0408c9ce9d99b42ce538b36fc067d5752ab8ea5e", + "s": "0x618bb0f81f4e7a1b10283b3584c58b374d3d3ed78fcd768b34329656aead6a8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3a96de7d2b35e6eef234601c18193e308a910a9f2546801042d982f3045f1b93", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1707,14 +1421,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1728,36 +1434,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f114", + "balance": "0xffffffffffffea01d0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "011-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c87ec986c2656c2": { + "011-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_392169c16a2e5ef6": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03c952cc21172a380294cd44656240a8f8d10b75559b732ef536875ec447f1442a07b1cbfd4e24409ab544f63ab8e0a5f5b3d936f218303eed643e6e15ca08248fea092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9b437dcd924834a69a566f90d8b83cb80e7c58a08da289389b3b1ffb528fd8bc9b92e6397c42b40a1e876ba116bdcc7f9c001a0d7be953f974f1fbb497344dd7e82e8a9f8f907ed98dafb0c7a1e462b7b35a6a5a003b5c6def1da64cc0774959a3019f1da04bcd576004e8c8a99945b90a413580bc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07cc97310447fcaa82fdc3f873488df4eb10e7c70d50905dcf4d3ab721d106652a073574e54028e33ad01b4af5cc7e84dc575f67146acc32e52ad8e4002355692c8a024e67c66eca491a8172390693a89b89c1a73f4e051ac6bf6d65a9990d773849eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830327c80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06aa86c458b3065e7ec244033a2ade91a7499561f482419a3a372c42a636dad98262a2ce926d142fd7cfe26ca148efe8b4c001a0d678cea8e66554926e473108363de892c0244b84ea29d4d288e62e254a54265ca07ab8176b3128def01d906a19a46f04f4cc9fabd6f75499e4e704500c1703d84ac0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3c952cc21172a380294cd44656240a8f8d10b75559b732ef536875ec447f1442", - "transactionsTrie": "0x7b1cbfd4e24409ab544f63ab8e0a5f5b3d936f218303eed643e6e15ca08248fe", - "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", + "stateRoot": "0x7cc97310447fcaa82fdc3f873488df4eb10e7c70d50905dcf4d3ab721d106652", + "transactionsTrie": "0x73574e54028e33ad01b4af5cc7e84dc575f67146acc32e52ad8e4002355692c8", + "receiptTrie": "0x24e67c66eca491a8172390693a89b89c1a73f4e051ac6bf6d65a9990d773849e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032834", + "gasUsed": "0x0327c8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -1767,33 +1506,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x004e89e7094e9646566b03115837bcfee3eace2c7bef7454e17a1994526e9ee2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3c952cc21172a380294cd44656240a8f8d10b75559b732ef536875ec447f1442", - "receiptsRoot": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32834", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x004e89e7094e9646566b03115837bcfee3eace2c7bef7454e17a1994526e9ee2", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9b437dcd924834a69a566f90d8b83cb80e7c58a08da289389b3b1ffb528fd8bc9b92e6397c42b40a1e876ba116bdcc7f9c001a0d7be953f974f1fbb497344dd7e82e8a9f8f907ed98dafb0c7a1e462b7b35a6a5a003b5c6def1da64cc0774959a3019f1da04bcd576004e8c8a99945b90a413580b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3fb31f2fed0b3def4347bc0213b7c5278d7914ab5e0c41ff1d71c9a2277d59e5" }, "blocknumber": "1", "transactions": [ @@ -1806,11 +1519,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9b437dcd924834a69a566f90d8b83cb80e7c58a08da289389b3b1ffb528fd8bc9b92e6397c42b40a1e876ba116bdcc7f9", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06aa86c458b3065e7ec244033a2ade91a7499561f482419a3a372c42a636dad98262a2ce926d142fd7cfe26ca148efe8b4", "accessList": [], "v": "0x01", - "r": "0xd7be953f974f1fbb497344dd7e82e8a9f8f907ed98dafb0c7a1e462b7b35a6a5", - "s": "0x03b5c6def1da64cc0774959a3019f1da04bcd576004e8c8a99945b90a413580b", + "r": "0xd678cea8e66554926e473108363de892c0244b84ea29d4d288e62e254a54265c", + "s": "0x7ab8176b3128def01d906a19a46f04f4cc9fabd6f75499e4e704500c1703d84a", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1818,45 +1531,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x004e89e7094e9646566b03115837bcfee3eace2c7bef7454e17a1994526e9ee2", - "network": "Cancun", + "lastblockhash": "0x3fb31f2fed0b3def4347bc0213b7c5278d7914ab5e0c41ff1d71c9a2277d59e5", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1865,14 +1553,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1886,30 +1566,63 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e694", + "balance": "0xffffffffffffe9e988", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "012-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3cd183d0bab85fb7": { + "012-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_395cf6d697d1a743": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06ddf0c1b566170e91dd43c76091fe7bfc5060990d085621e26af0330c07d22b2a04cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a03bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0ebaa074e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a049a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055ba04e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07bc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6ddf0c1b566170e91dd43c76091fe7bfc5060990d085621e26af0330c07d22b2", - "transactionsTrie": "0x4cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921", + "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4", + "transactionsTrie": "0x49a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911", "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -1925,33 +1638,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbe801650e3346c9de973ade8918327404672289cf4f959bdd2dc33d178c7db07" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6ddf0c1b566170e91dd43c76091fe7bfc5060990d085621e26af0330c07d22b2", - "receiptsRoot": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3245c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xbe801650e3346c9de973ade8918327404672289cf4f959bdd2dc33d178c7db07", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a03bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0ebaa074e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920" }, "blocknumber": "1", "transactions": [ @@ -1964,11 +1651,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0x3bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0eba", - "s": "0x74e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39d", + "v": "0x01", + "r": "0x5e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055b", + "s": "0x4e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1976,45 +1663,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbe801650e3346c9de973ade8918327404672289cf4f959bdd2dc33d178c7db07", - "network": "Cancun", + "lastblockhash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2023,14 +1685,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2044,6 +1698,14 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffea017c", @@ -2053,92 +1715,19 @@ }, "sealEngine": "NoProof" }, - "013-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_420f2a187ce77035": { + "013-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3ac8dc31e9aa6a70": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306a0fb4648b9bdb1b09117c15f53cb5a617590dc4469b4c279ceb11fa47e64533543a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c99956ed657b632d9de65783593320c0b0f4195ca853c9616ba11e244bf2333f6da4755883e9995210b20fbd78f9c205a5c080a0f86136db60a0d1a9d22e454a4d5100b8171b90d56d2e796b7cea6b3aa9edec83a07b35a05f8bb65ebc114f365c5b1d2fed84a5f898e2ac82cb9a827d8cd9af400ec0c0", - "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "transactionsTrie": "0xfb4648b9bdb1b09117c15f53cb5a617590dc4469b4c279ceb11fa47e64533543", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe6ccd207f417faef67c97d1ae156ca31cbdd682f1c0885104100a340e70a4903" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "receiptsRoot": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326c0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe6ccd207f417faef67c97d1ae156ca31cbdd682f1c0885104100a340e70a4903", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c99956ed657b632d9de65783593320c0b0f4195ca853c9616ba11e244bf2333f6da4755883e9995210b20fbd78f9c205a5c080a0f86136db60a0d1a9d22e454a4d5100b8171b90d56d2e796b7cea6b3aa9edec83a07b35a05f8bb65ebc114f365c5b1d2fed84a5f898e2ac82cb9a827d8cd9af400e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c99956ed657b632d9de65783593320c0b0f4195ca853c9616ba11e244bf2333f6da4755883e9995210b20fbd78f9c205a5", - "accessList": [], - "v": "0x00", - "r": "0xf86136db60a0d1a9d22e454a4d5100b8171b90d56d2e796b7cea6b3aa9edec83", - "s": "0x7b35a05f8bb65ebc114f365c5b1d2fed84a5f898e2ac82cb9a827d8cd9af400e", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2155,83 +1744,23 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe6ccd207f417faef67c97d1ae156ca31cbdd682f1c0885104100a340e70a4903", - "network": "Cancun", - "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x01000000000000000000", - "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", - "storage": {} - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x01000000000000000000", - "code": "0x", - "storage": {} - } - }, - "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x01000000000000000000", - "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", - "storage": { - "0x00": "0x01", - "0x01": "0x1000", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", - "0x03": "0x40", - "0x04": "0x1000", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" - } - }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", - "code": "0x", - "storage": {} - } - }, - "sealEngine": "NoProof" - }, - "014-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_444b73ff54a19b44": { - "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", - "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", - "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306a0408f4a0ec54734fbc9dcfd9dd4d37dfdc696127ca9a0bc5cff44d7d10c368d04a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a09849cc7d35d8eed85743c4cd106d4fdb9221a16f72d1aca93459b4113d378058a003083ef391f8c36ad0b2f778109103113dca52888b96bc9e29d861b3517703b0c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321a023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "transactionsTrie": "0x408f4a0ec54734fbc9dcfd9dd4d37dfdc696127ca9a0bc5cff44d7d10c368d04", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", + "stateRoot": "0x02e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321", + "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c", + "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", + "gasUsed": "0x03221c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2241,33 +1770,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbff12d772598d918f887a4e111aa1acb35a6275d6e7ae9b01b7dbd4d559631e7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "receiptsRoot": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326c0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xbff12d772598d918f887a4e111aa1acb35a6275d6e7ae9b01b7dbd4d559631e7", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a09849cc7d35d8eed85743c4cd106d4fdb9221a16f72d1aca93459b4113d378058a003083ef391f8c36ad0b2f778109103113dca52888b96bc9e29d861b3517703b0" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac" }, "blocknumber": "1", "transactions": [ @@ -2280,11 +1783,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0x9849cc7d35d8eed85743c4cd106d4fdb9221a16f72d1aca93459b4113d378058", - "s": "0x03083ef391f8c36ad0b2f778109103113dca52888b96bc9e29d861b3517703b0", + "r": "0xcdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307", + "s": "0x6df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2292,45 +1795,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbff12d772598d918f887a4e111aa1acb35a6275d6e7ae9b01b7dbd4d559631e7", - "network": "Cancun", + "lastblockhash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2339,14 +1817,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2360,36 +1830,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", + "balance": "0xffffffffffffea113c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "015-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_53a9bdf4f75196da": { + "014-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c1e8b38219e3e12": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01e858c8f4e814115f5d492a9a7662480695c3e7ce1f1d1b0df894ceb7e391413a02d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fba0d0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325d00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a07988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71ea045a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa00e963416d15be0d3a5cd99152b9674c916a944b4df2288e276655641511b312fa0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b72d80393dc39beea3857cb3719277138876b2b207f1d5e54dd62a14e3242d123b5a6db066181ff01a51c26c9d2f400bc001a0151b808659ccfe811301c4788adb2db2dfe21a81a72012b60bee9a2bae100196a00cb5d87c6b81f3278488c06a59191c62c345510b9be93e110dc7170d819084e5c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1e858c8f4e814115f5d492a9a7662480695c3e7ce1f1d1b0df894ceb7e391413", - "transactionsTrie": "0x2d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fb", - "receiptTrie": "0xd0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0x0e963416d15be0d3a5cd99152b9674c916a944b4df2288e276655641511b312f", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0325d0", + "gasUsed": "0x0326a8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2399,33 +1902,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa9767da98ec77782d88475ca45765cc9b937c538b5688c7b43a79eab3274bd39" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1e858c8f4e814115f5d492a9a7662480695c3e7ce1f1d1b0df894ceb7e391413", - "receiptsRoot": "0xd0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x325d0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa9767da98ec77782d88475ca45765cc9b937c538b5688c7b43a79eab3274bd39", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a07988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71ea045a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x00af2784d23487e9d271d8880c38b74f50ff3ecca33d8d195e94e906fef7b444" }, "blocknumber": "1", "transactions": [ @@ -2438,11 +1915,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b72d80393dc39beea3857cb3719277138876b2b207f1d5e54dd62a14e3242d123b5a6db066181ff01a51c26c9d2f400b", "accessList": [], "v": "0x01", - "r": "0x7988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71e", - "s": "0x45a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4", + "r": "0x151b808659ccfe811301c4788adb2db2dfe21a81a72012b60bee9a2bae100196", + "s": "0x0cb5d87c6b81f3278488c06a59191c62c345510b9be93e110dc7170d819084e5", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2450,45 +1927,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa9767da98ec77782d88475ca45765cc9b937c538b5688c7b43a79eab3274bd39", - "network": "Cancun", + "lastblockhash": "0x00af2784d23487e9d271d8880c38b74f50ff3ecca33d8d195e94e906fef7b444", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2497,14 +1949,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2518,36 +1962,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f750", + "balance": "0xffffffffffffe9f168", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "016-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_7db4f140a955dd1a": { + "015-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3c87ec986c2656c2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d5f6707ecf7fb258c78947fd75c4bebe33bec3cb068524950497eb38984f9931a046551e36b570ce1310b3a125c62dcde41593c1f58eb66b60aee663fd65f4026ea0d9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328040c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca788bfb4ce7aa40228147817d8b5ddad533e456b622dea6733e1813b8d1ce9e03ef5fb58d983e29da3187ba840c5a79759c080a05499ec7fc39c8cad3bac53f471e4fffca077c33dc9e879c0ed791b63b06a15bea0473ed87fde84d2968bfb93702b9c49bcd54ae648f0355e94f3553777ae7b0abdc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a06dbdee5ff5d24cefd571b4be8867465b926774ac7d13983e74206e2922855daba0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9c080a065ad99046fa60994d98049bf11bd7a1b8e3d9bac77dd8430ac504ebcd791c664a0251815b3d5d650c64c1cef1e5cac22fa5db5261de82303d0b089304623563bf6c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd5f6707ecf7fb258c78947fd75c4bebe33bec3cb068524950497eb38984f9931", - "transactionsTrie": "0x46551e36b570ce1310b3a125c62dcde41593c1f58eb66b60aee663fd65f4026e", - "receiptTrie": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8", + "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0", + "transactionsTrie": "0x6dbdee5ff5d24cefd571b4be8867465b926774ac7d13983e74206e2922855dab", + "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032804", + "gasUsed": "0x032828", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2557,33 +2034,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfb23c5cebda2565314e44af63e44ce994e463e582899b3ea7fb758fb5e1fcadc" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd5f6707ecf7fb258c78947fd75c4bebe33bec3cb068524950497eb38984f9931", - "receiptsRoot": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32804", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfb23c5cebda2565314e44af63e44ce994e463e582899b3ea7fb758fb5e1fcadc", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca788bfb4ce7aa40228147817d8b5ddad533e456b622dea6733e1813b8d1ce9e03ef5fb58d983e29da3187ba840c5a79759c080a05499ec7fc39c8cad3bac53f471e4fffca077c33dc9e879c0ed791b63b06a15bea0473ed87fde84d2968bfb93702b9c49bcd54ae648f0355e94f3553777ae7b0abd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x41de1c6ff6589caea81fd364f0a89ff3800b0f0e3bd603d2536acb4908de72b0" }, "blocknumber": "1", "transactions": [ @@ -2596,11 +2047,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca788bfb4ce7aa40228147817d8b5ddad533e456b622dea6733e1813b8d1ce9e03ef5fb58d983e29da3187ba840c5a79759", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a444d6bb5aadc3ceb615b50d6606bd54bfe529f59247987cd1ab848d19de599a9052f1835fb0d0d44cf70183e19a68c9", "accessList": [], "v": "0x00", - "r": "0x5499ec7fc39c8cad3bac53f471e4fffca077c33dc9e879c0ed791b63b06a15be", - "s": "0x473ed87fde84d2968bfb93702b9c49bcd54ae648f0355e94f3553777ae7b0abd", + "r": "0x65ad99046fa60994d98049bf11bd7a1b8e3d9bac77dd8430ac504ebcd791c664", + "s": "0x251815b3d5d650c64c1cef1e5cac22fa5db5261de82303d0b089304623563bf6", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2608,45 +2059,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfb23c5cebda2565314e44af63e44ce994e463e582899b3ea7fb758fb5e1fcadc", - "network": "Cancun", + "lastblockhash": "0x41de1c6ff6589caea81fd364f0a89ff3800b0f0e3bd603d2536acb4908de72b0", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2655,14 +2081,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2676,36 +2094,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e7e4", + "balance": "0xffffffffffffe9e6e8", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "017-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_83e53423a2dd93fe": { + "016-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_3cd183d0bab85fb7": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07e5de3c8119521222444d17dac02b04648795b4112a14393619960b4612dbe74a07279a050fd8efe3d997e93091f222c3fcc8bbbad562d19f92c0ae14483c5825aa099cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326900c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c992cccc70d97c2eeb444077721221cbf048a7bcd5742a1c896c868672527c8fb92687db1d8c6970064375957af91b0b89c001a0cb7b1454bfa0c4a760e33af49661acd7b4d777fca3de31e945858fe718cd185fa05a53b3ab897a7cd0407c48050758ba22f1896e2d80dfc830d98dafaae435b64dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a04cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a03bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0ebaa074e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39dc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7e5de3c8119521222444d17dac02b04648795b4112a14393619960b4612dbe74", - "transactionsTrie": "0x7279a050fd8efe3d997e93091f222c3fcc8bbbad562d19f92c0ae14483c5825a", - "receiptTrie": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64", + "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4", + "transactionsTrie": "0x4cc2a46823ba9ef5e125058016c67aaa54854dc72281150cd1a31ce02a934921", + "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032690", + "gasUsed": "0x03245c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2715,33 +2166,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x054ccddb30c4403042e49273be9fa540f0bd089aca325ffc8f21274cc0a459f6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7e5de3c8119521222444d17dac02b04648795b4112a14393619960b4612dbe74", - "receiptsRoot": "0x99cc7e90b41f23e91cea893ec59e04a28e472185d64013784cfed89e8dde1a64", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32690", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x054ccddb30c4403042e49273be9fa540f0bd089aca325ffc8f21274cc0a459f6", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c992cccc70d97c2eeb444077721221cbf048a7bcd5742a1c896c868672527c8fb92687db1d8c6970064375957af91b0b89c001a0cb7b1454bfa0c4a760e33af49661acd7b4d777fca3de31e945858fe718cd185fa05a53b3ab897a7cd0407c48050758ba22f1896e2d80dfc830d98dafaae435b64d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38" }, "blocknumber": "1", "transactions": [ @@ -2754,11 +2179,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c992cccc70d97c2eeb444077721221cbf048a7bcd5742a1c896c868672527c8fb92687db1d8c6970064375957af91b0b89", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0xcb7b1454bfa0c4a760e33af49661acd7b4d777fca3de31e945858fe718cd185f", - "s": "0x5a53b3ab897a7cd0407c48050758ba22f1896e2d80dfc830d98dafaae435b64d", + "v": "0x00", + "r": "0x3bee59e36e4f614b18f8eafcdad25fb43379438388ce6fbf82816519161e0eba", + "s": "0x74e305b021b31e432b2e3a8f80fbcc4bd528d22b0a213092ed05aa71349de39d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2766,45 +2191,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x054ccddb30c4403042e49273be9fa540f0bd089aca325ffc8f21274cc0a459f6", - "network": "Cancun", + "lastblockhash": "0x4479fb554e65baf663de4b950c86360abdceb8214bd1dddab7fadfae60905b38", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2813,14 +2213,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2834,36 +2226,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f210", + "balance": "0xffffffffffffea017c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "018-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b24f8997145435c": { + "017-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_420f2a187ce77035": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa025f4f8862f32d72f4ed155b1ab6511e7a4c61279fb42598bb93e3d09babd970ea04593efcd83a2bb60e68dbfbed0633436742209bf3f1fcd25412e5063c494b0ffa05d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef87177e99700d9be917c648299b919b210d0449761bfd425c6fbf7c9cb48c44525715bf62bad3fe046a066ac3b1c747fcc080a00352ea47e3592e0f854ff65972aa1e79e0692b81e403a56a4198f2eee7c37131a063c2b3341e9249b23f8160046ff0a7ca55bc0d742ca9e091657211639be8f8cbc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa02b9f94b53eec56840c51f3286f960f32edcfe09abdd0220af1f2639ef4664d4da0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0689012990b0ca02775bd9df8145f6c936444b83f54df1f5f274fb4312800a6505dd000ee8ec7b0ea6d72092a3daf0bffbc001a066027d84b8afca376d92300737100ec643b920f5c726945852c74213b24f2ac0a0059b3c8ac597bd7da74db18e0f2c8f35a8af8a9b552e114cc4c388a87f970080c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x25f4f8862f32d72f4ed155b1ab6511e7a4c61279fb42598bb93e3d09babd970e", - "transactionsTrie": "0x4593efcd83a2bb60e68dbfbed0633436742209bf3f1fcd25412e5063c494b0ff", - "receiptTrie": "0x5d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6c", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0x2b9f94b53eec56840c51f3286f960f32edcfe09abdd0220af1f2639ef4664d4d", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032534", + "gasUsed": "0x0326a8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2873,33 +2298,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7ab9e778dd7c7dc37eef2d6abfb0f51e708dc2e5d135f124c4d26a32a775b989" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x25f4f8862f32d72f4ed155b1ab6511e7a4c61279fb42598bb93e3d09babd970e", - "receiptsRoot": "0x5d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6c", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32534", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7ab9e778dd7c7dc37eef2d6abfb0f51e708dc2e5d135f124c4d26a32a775b989", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef87177e99700d9be917c648299b919b210d0449761bfd425c6fbf7c9cb48c44525715bf62bad3fe046a066ac3b1c747fcc080a00352ea47e3592e0f854ff65972aa1e79e0692b81e403a56a4198f2eee7c37131a063c2b3341e9249b23f8160046ff0a7ca55bc0d742ca9e091657211639be8f8cb" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa2a6c215a3ae2f9622129d76f8c00a7c74a4baa8a16f776cf2723c96ad4167de" }, "blocknumber": "1", "transactions": [ @@ -2912,11 +2311,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef87177e99700d9be917c648299b919b210d0449761bfd425c6fbf7c9cb48c44525715bf62bad3fe046a066ac3b1c747fc", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0689012990b0ca02775bd9df8145f6c936444b83f54df1f5f274fb4312800a6505dd000ee8ec7b0ea6d72092a3daf0bffb", "accessList": [], - "v": "0x00", - "r": "0x0352ea47e3592e0f854ff65972aa1e79e0692b81e403a56a4198f2eee7c37131", - "s": "0x63c2b3341e9249b23f8160046ff0a7ca55bc0d742ca9e091657211639be8f8cb", + "v": "0x01", + "r": "0x66027d84b8afca376d92300737100ec643b920f5c726945852c74213b24f2ac0", + "s": "0x059b3c8ac597bd7da74db18e0f2c8f35a8af8a9b552e114cc4c388a87f970080", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2924,45 +2323,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7ab9e778dd7c7dc37eef2d6abfb0f51e708dc2e5d135f124c4d26a32a775b989", - "network": "Cancun", + "lastblockhash": "0xa2a6c215a3ae2f9622129d76f8c00a7c74a4baa8a16f776cf2723c96ad4167de", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2971,14 +2345,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2992,36 +2358,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9fb94", + "balance": "0xffffffffffffe9f168", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "019-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b754afb690c47e1": { + "018-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_444b73ff54a19b44": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06ddf0c1b566170e91dd43c76091fe7bfc5060990d085621e26af0330c07d22b2a0066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a071beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41fa02a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a08b68e65eba37ecde36e3ae469ea1a4ca0730cf32c87545c1df2fbd7419b510f4a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa060b350ad63d61979b80b25258e7cc6caf781080222e0209b4a0b074decca874afc5c41de3313d8ed217d905e6ada43c080a09ccdbb5ec0941f399dadd55bf451be3c606cc76f0afac3c1d383a2cfd77f2217a020f6645644bb64019245bfc1b544333ef6f8b897e46f3dc675576fbcb90711c5c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6ddf0c1b566170e91dd43c76091fe7bfc5060990d085621e26af0330c07d22b2", - "transactionsTrie": "0x066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35", - "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", + "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", + "transactionsTrie": "0x8b68e65eba37ecde36e3ae469ea1a4ca0730cf32c87545c1df2fbd7419b510f4", + "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03245c", + "gasUsed": "0x0326c0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3031,33 +2430,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdccb77564911413b5c3c091ba68d34b4b563d3f7db161ce9580244d2b3a42eea" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6ddf0c1b566170e91dd43c76091fe7bfc5060990d085621e26af0330c07d22b2", - "receiptsRoot": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3245c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xdccb77564911413b5c3c091ba68d34b4b563d3f7db161ce9580244d2b3a42eea", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a071beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41fa02a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x617bb359f99934463a0d4913db6650f53d2a58818ead69b693ca2f4117c6e576" }, "blocknumber": "1", "transactions": [ @@ -3070,11 +2443,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa060b350ad63d61979b80b25258e7cc6caf781080222e0209b4a0b074decca874afc5c41de3313d8ed217d905e6ada43", "accessList": [], "v": "0x00", - "r": "0x71beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41f", - "s": "0x2a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3", + "r": "0x9ccdbb5ec0941f399dadd55bf451be3c606cc76f0afac3c1d383a2cfd77f2217", + "s": "0x20f6645644bb64019245bfc1b544333ef6f8b897e46f3dc675576fbcb90711c5", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3082,45 +2455,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdccb77564911413b5c3c091ba68d34b4b563d3f7db161ce9580244d2b3a42eea", - "network": "Cancun", + "lastblockhash": "0x617bb359f99934463a0d4913db6650f53d2a58818ead69b693ca2f4117c6e576", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3129,14 +2477,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3150,36 +2490,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea017c", + "balance": "0xffffffffffffe9f0c0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "020-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af669445747d2585": { + "019-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_53a9bdf4f75196da": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03c952cc21172a380294cd44656240a8f8d10b75559b732ef536875ec447f1442a04189b0fc6a65b4ba8f83b5d20f2723715a4380114bb3b6835fa582e983d1e711a092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7ad37aa0a5c07d64c137a3cc01893418c1ae6e766ca8842a295cad27cbde933aad4f499d96619f957a730d014927eaf72c080a053772f6f14038064762d55af0d02216131ce0d88b5e9bf719feb797d6558a742a06fe86cc2d9bdf117e40a328f99167dfa3ed9d3a2c280099fca1c2372b9bccc67c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38a02d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fba0d0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325d00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a07988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71ea045a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3c952cc21172a380294cd44656240a8f8d10b75559b732ef536875ec447f1442", - "transactionsTrie": "0x4189b0fc6a65b4ba8f83b5d20f2723715a4380114bb3b6835fa582e983d1e711", - "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", + "stateRoot": "0x7f3883ffa14957b40eb562671dcea363bd5c7fc6a7b66f1bfcf0c46f31c80d38", + "transactionsTrie": "0x2d20c80c52cbd19954aa77bf2f5512aceb1e572f72e74376ca6c02226f7b64fb", + "receiptTrie": "0xd0179d1c2909b1b81337f65599be06808e23ec2e973e6f1433ba40d73f09e983", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032834", + "gasUsed": "0x0325d0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3189,33 +2562,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1387dc938a6a47d3294373ac2390e90833e40becebe83c1b87938acd174d0c17" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3c952cc21172a380294cd44656240a8f8d10b75559b732ef536875ec447f1442", - "receiptsRoot": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32834", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x1387dc938a6a47d3294373ac2390e90833e40becebe83c1b87938acd174d0c17", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7ad37aa0a5c07d64c137a3cc01893418c1ae6e766ca8842a295cad27cbde933aad4f499d96619f957a730d014927eaf72c080a053772f6f14038064762d55af0d02216131ce0d88b5e9bf719feb797d6558a742a06fe86cc2d9bdf117e40a328f99167dfa3ed9d3a2c280099fca1c2372b9bccc67" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2" }, "blocknumber": "1", "transactions": [ @@ -3228,11 +2575,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7ad37aa0a5c07d64c137a3cc01893418c1ae6e766ca8842a295cad27cbde933aad4f499d96619f957a730d014927eaf72", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0x53772f6f14038064762d55af0d02216131ce0d88b5e9bf719feb797d6558a742", - "s": "0x6fe86cc2d9bdf117e40a328f99167dfa3ed9d3a2c280099fca1c2372b9bccc67", + "v": "0x01", + "r": "0x7988bf664125ab6a3164310a5eacfeb471f2badb877190fefcadb628ce91d71e", + "s": "0x45a1135742920b01a39c9de56a92b53c6018d3c9a1aa423f7888d870506f0ac4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3240,45 +2587,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1387dc938a6a47d3294373ac2390e90833e40becebe83c1b87938acd174d0c17", - "network": "Cancun", + "lastblockhash": "0xb822f7ae7e51e4d2292e49525b4aa3143172b05b7341aae712b07fc8b0bf1ae2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3287,14 +2609,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3308,36 +2622,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e694", + "balance": "0xffffffffffffe9f750", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "021-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af8b75f664ed7d43": { + "020-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_585454b31673dd62": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e6155748f5f07057ad7899a56b96b06b526166dd9e490eeafbdbbbb0a7df8a5da0d4b593b9620dbdf5fc6eeff42ade9d1d3b9c65f35eadb26be34e7fad5a0fcda6a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8efb5f81312368c3d0778349fa9a37838d9da05f5019f13e98c451d44adbeaa24385efecc246958bc1e80ade37693425c080a0d57e78f2a5f190e8f97666a783bbc5aebf5cb1107a447b3a888d84b9e84a78a5a007e6a42d9564a5d6c774f0861246c710d6b751c173aad84385b31aa822a8a24fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524aa0282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094a096b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303230c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a061f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eba043a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6155748f5f07057ad7899a56b96b06b526166dd9e490eeafbdbbbb0a7df8a5d", - "transactionsTrie": "0xd4b593b9620dbdf5fc6eeff42ade9d1d3b9c65f35eadb26be34e7fad5a0fcda6", - "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", + "stateRoot": "0xd46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524a", + "transactionsTrie": "0x282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094", + "receiptTrie": "0x96b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dcc", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326b4", + "gasUsed": "0x03230c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3347,33 +2694,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc62add3cca0203a37f2f294db4b70aaa2350a5da4f5bc42f1a9e5f8fb5c25c4e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6155748f5f07057ad7899a56b96b06b526166dd9e490eeafbdbbbb0a7df8a5d", - "receiptsRoot": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326b4", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc62add3cca0203a37f2f294db4b70aaa2350a5da4f5bc42f1a9e5f8fb5c25c4e", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8efb5f81312368c3d0778349fa9a37838d9da05f5019f13e98c451d44adbeaa24385efecc246958bc1e80ade37693425c080a0d57e78f2a5f190e8f97666a783bbc5aebf5cb1107a447b3a888d84b9e84a78a5a007e6a42d9564a5d6c774f0861246c710d6b751c173aad84385b31aa822a8a24f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e" }, "blocknumber": "1", "transactions": [ @@ -3386,11 +2707,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef8efb5f81312368c3d0778349fa9a37838d9da05f5019f13e98c451d44adbeaa24385efecc246958bc1e80ade37693425", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0xd57e78f2a5f190e8f97666a783bbc5aebf5cb1107a447b3a888d84b9e84a78a5", - "s": "0x07e6a42d9564a5d6c774f0861246c710d6b751c173aad84385b31aa822a8a24f", + "v": "0x01", + "r": "0x61f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eb", + "s": "0x43a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3398,45 +2719,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc62add3cca0203a37f2f294db4b70aaa2350a5da4f5bc42f1a9e5f8fb5c25c4e", - "network": "Cancun", + "lastblockhash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3445,14 +2741,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3466,36 +2754,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f114", + "balance": "0xffffffffffffea0aac", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "022-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6cb6698327d9835": { + "021-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_7db4f140a955dd1a": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306a0a4e536663a2fc69085f7840b69133fadb77d1e84afd3cefd4b76ca6407ea63f5a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78be986bb46235d7dace424c585d8160a7ffb0be6cf09844d5dc50cd6f14f9d9b4a39cb187d590d5b9fabc41efe31673bc001a070323221eae38ee9a767b892b94d595668db743b35fd6ceb24cb5fcbbb60fd7ba012f19a53389cc10a14781ef0cf8ebe955259e6fbb0b847169d6616c4e0dd41a0c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa016bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4a00d60273b5913393d18b1dee6f0bacf412e39d5f0a17635fcf060e97c1c1acf21a0d9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328040c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a9506a8dc7f3f720a592a79a4e711e28d8596854bac66b9cb2d6d361704f1735442d47ea09fda5e0984f0928ce7d2f5f6c080a07a8a5d3c14755c2b79477b0f01e07472e1efe376361f355d19c79fae5a944ef5a06dc7422c4897f446a3b9775e688ffcd21a7070a4b4e1fdbb9b676d97e7a49e10c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "transactionsTrie": "0xa4e536663a2fc69085f7840b69133fadb77d1e84afd3cefd4b76ca6407ea63f5", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", + "stateRoot": "0x16bb0b491c8bb7563e8b45b262e9ffbb52f784d3d3b2b311b4ea770b3327dbd4", + "transactionsTrie": "0x0d60273b5913393d18b1dee6f0bacf412e39d5f0a17635fcf060e97c1c1acf21", + "receiptTrie": "0xd9e5a739c73b28835dce3f225dee047f95fe57369e598630dd3a897c7623ece8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", + "gasUsed": "0x032804", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3505,33 +2826,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xff6a85741eeeeb08bd4fd81224514118b857256fe060dd963da543751fca81c5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "receiptsRoot": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326c0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xff6a85741eeeeb08bd4fd81224514118b857256fe060dd963da543751fca81c5", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78be986bb46235d7dace424c585d8160a7ffb0be6cf09844d5dc50cd6f14f9d9b4a39cb187d590d5b9fabc41efe31673bc001a070323221eae38ee9a767b892b94d595668db743b35fd6ceb24cb5fcbbb60fd7ba012f19a53389cc10a14781ef0cf8ebe955259e6fbb0b847169d6616c4e0dd41a0" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd887114b3cad6bd08b4df188cda62eb9953c036c2f19a7696267e9aefb08c119" }, "blocknumber": "1", "transactions": [ @@ -3544,11 +2839,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78be986bb46235d7dace424c585d8160a7ffb0be6cf09844d5dc50cd6f14f9d9b4a39cb187d590d5b9fabc41efe31673b", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a9506a8dc7f3f720a592a79a4e711e28d8596854bac66b9cb2d6d361704f1735442d47ea09fda5e0984f0928ce7d2f5f6", "accessList": [], - "v": "0x01", - "r": "0x70323221eae38ee9a767b892b94d595668db743b35fd6ceb24cb5fcbbb60fd7b", - "s": "0x12f19a53389cc10a14781ef0cf8ebe955259e6fbb0b847169d6616c4e0dd41a0", + "v": "0x00", + "r": "0x7a8a5d3c14755c2b79477b0f01e07472e1efe376361f355d19c79fae5a944ef5", + "s": "0x6dc7422c4897f446a3b9775e688ffcd21a7070a4b4e1fdbb9b676d97e7a49e10", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3556,45 +2851,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xff6a85741eeeeb08bd4fd81224514118b857256fe060dd963da543751fca81c5", - "network": "Cancun", + "lastblockhash": "0xd887114b3cad6bd08b4df188cda62eb9953c036c2f19a7696267e9aefb08c119", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3603,14 +2873,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3624,36 +2886,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", + "balance": "0xffffffffffffe9e7e4", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "023-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6ec3736f9ff2c62": { + "022-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_83e53423a2dd93fe": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02a09733c75988fdbbdff12abd534f218637691b393d05d648e4e26e7ac5610f4a098410ef352d1f7a7b0b179afb2cc7edf0936ddb42561f66da818ef87193722c9a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef89d9a593cf16156d32a0998b48fdc0964fc8a63e4b87a6750c6e132089125bfd57105274821bbda7198cfe1b69ee49b4c001a0841bb1cf1945bb7346f1930527ddd4a0550ce9ad842f9b350c8119fdbab00fd2a05394dabb876b51f2d0533b67e28b4e6e3a33638bc01e576025a4f1c833f5af57c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d43e78e392975e2508273a97b39ee52dfa7d0daa6bef48c460fd310610e53474a0a16b3a4a571e5195ef7804b6f84fcfa238977aba365b76afa65c3d9bd8f74370a051f2f35a1066da98366d1ae0f70861fa89df30d6ab4d0f859ac3cce427c25ef3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326840c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc080a055927481d511a61d08b3309de9287ef82a40a2b87bed2605ffbcfaad994340b0a0401e884cd033983f02c4af36b799209f1c6bb4f7673c3a4cd384d7576904bafec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2a09733c75988fdbbdff12abd534f218637691b393d05d648e4e26e7ac5610f4", - "transactionsTrie": "0x98410ef352d1f7a7b0b179afb2cc7edf0936ddb42561f66da818ef87193722c9", - "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", + "stateRoot": "0xd43e78e392975e2508273a97b39ee52dfa7d0daa6bef48c460fd310610e53474", + "transactionsTrie": "0xa16b3a4a571e5195ef7804b6f84fcfa238977aba365b76afa65c3d9bd8f74370", + "receiptTrie": "0x51f2f35a1066da98366d1ae0f70861fa89df30d6ab4d0f859ac3cce427c25ef3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326a8", + "gasUsed": "0x032684", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3663,33 +2958,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x82caf54cd9ca15c373cfee1251e312d59b4e8b946875928758af760240c1dfff" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2a09733c75988fdbbdff12abd534f218637691b393d05d648e4e26e7ac5610f4", - "receiptsRoot": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326a8", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x82caf54cd9ca15c373cfee1251e312d59b4e8b946875928758af760240c1dfff", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef89d9a593cf16156d32a0998b48fdc0964fc8a63e4b87a6750c6e132089125bfd57105274821bbda7198cfe1b69ee49b4c001a0841bb1cf1945bb7346f1930527ddd4a0550ce9ad842f9b350c8119fdbab00fd2a05394dabb876b51f2d0533b67e28b4e6e3a33638bc01e576025a4f1c833f5af57" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcbbfcccf71790e4fe962844819ac39ee5aebc6d84d4d37588cc495594babd653" }, "blocknumber": "1", "transactions": [ @@ -3702,11 +2971,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef89d9a593cf16156d32a0998b48fdc0964fc8a63e4b87a6750c6e132089125bfd57105274821bbda7198cfe1b69ee49b4", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", "accessList": [], - "v": "0x01", - "r": "0x841bb1cf1945bb7346f1930527ddd4a0550ce9ad842f9b350c8119fdbab00fd2", - "s": "0x5394dabb876b51f2d0533b67e28b4e6e3a33638bc01e576025a4f1c833f5af57", + "v": "0x00", + "r": "0x55927481d511a61d08b3309de9287ef82a40a2b87bed2605ffbcfaad994340b0", + "s": "0x401e884cd033983f02c4af36b799209f1c6bb4f7673c3a4cd384d7576904bafe", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3714,45 +2983,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x82caf54cd9ca15c373cfee1251e312d59b4e8b946875928758af760240c1dfff", - "network": "Cancun", + "lastblockhash": "0xcbbfcccf71790e4fe962844819ac39ee5aebc6d84d4d37588cc495594babd653", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3761,14 +3005,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3782,36 +3018,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f168", + "balance": "0xffffffffffffe9f264", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "024-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_becf2e1641bbd4e6": { + "023-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b24f8997145435c": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00fca1ee1d32408771985be4e05e86923ec767c5b843d8b531b7d76d808f94132a05db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591a04edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325c40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a075b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500ca022d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45ba07c2dddac5f40b2219f1c94206c102b06692900b886114a3ac5bcc89c5d0f8c43a05d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b9241c6816af6388d1014cd4d7dd21662a6e3d47f96c0257bce642b70e8e375839a880864638669c6a709b414ab8bffcc001a0ca15826ab5ed6a9933fd78b03f789b1657ee2cbcd5c266aa8afbf776db95f402a040323e267039f7d1a2f7d11cf3792a0109521b9414f8026f08ac5edbaf345860c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0fca1ee1d32408771985be4e05e86923ec767c5b843d8b531b7d76d808f94132", - "transactionsTrie": "0x5db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591", - "receiptTrie": "0x4edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858e", + "stateRoot": "0xded63c14301d2a81da551b4c4a311bb038e1f24b5932804eec0a811898b0a45b", + "transactionsTrie": "0x7c2dddac5f40b2219f1c94206c102b06692900b886114a3ac5bcc89c5d0f8c43", + "receiptTrie": "0x5d1e41d4bf154602e8b08528262ac05321dbcf9598e7e2a5bcca123f41485f6c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0325c4", + "gasUsed": "0x032534", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3821,33 +3090,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe3fa76d1aeaefa6b6a4e41129d043151921a8d84ca6fe4133e1ad74c0b004438" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0fca1ee1d32408771985be4e05e86923ec767c5b843d8b531b7d76d808f94132", - "receiptsRoot": "0x4edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858e", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x325c4", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe3fa76d1aeaefa6b6a4e41129d043151921a8d84ca6fe4133e1ad74c0b004438", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a075b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500ca022d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xecca0c69b89050ec6821285a73e1d60d3c3674ee18d2df33d3c53c437a27e097" }, "blocknumber": "1", "transactions": [ @@ -3860,11 +3103,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556b9241c6816af6388d1014cd4d7dd21662a6e3d47f96c0257bce642b70e8e375839a880864638669c6a709b414ab8bffc", "accessList": [], "v": "0x01", - "r": "0x75b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500c", - "s": "0x22d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733", + "r": "0xca15826ab5ed6a9933fd78b03f789b1657ee2cbcd5c266aa8afbf776db95f402", + "s": "0x40323e267039f7d1a2f7d11cf3792a0109521b9414f8026f08ac5edbaf345860", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -3872,45 +3115,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe3fa76d1aeaefa6b6a4e41129d043151921a8d84ca6fe4133e1ad74c0b004438", - "network": "Cancun", + "lastblockhash": "0xecca0c69b89050ec6821285a73e1d60d3c3674ee18d2df33d3c53c437a27e097", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3919,14 +3137,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3940,36 +3150,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f7a4", + "balance": "0xffffffffffffe9fb94", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "025-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c3d4322ec17fe7cd": { + "024-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_9b754afb690c47e1": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07905f7cbd217fa55bd6d5aa8a0dd244a3a6f5a719763a488f22d5e8580e146a8a042814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9a0490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a0066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a071beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41fa02a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7905f7cbd217fa55bd6d5aa8a0dd244a3a6f5a719763a488f22d5e8580e146a8", - "transactionsTrie": "0x42814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9", - "receiptTrie": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605", + "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4", + "transactionsTrie": "0x066d0b363c0bb2276ca921f5f21c99458474c5cf5575847e8e2d346fdb8b5a35", + "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0320cc", + "gasUsed": "0x03245c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -3979,33 +3222,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf91541ae53029b333ac7c8ef0e68f32ff32cc6a67ab27e6522271215b99f39e2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7905f7cbd217fa55bd6d5aa8a0dd244a3a6f5a719763a488f22d5e8580e146a8", - "receiptsRoot": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x320cc", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf91541ae53029b333ac7c8ef0e68f32ff32cc6a67ab27e6522271215b99f39e2", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a" }, "blocknumber": "1", "transactions": [ @@ -4018,11 +3235,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0x1010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373", - "s": "0x4b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6", + "v": "0x00", + "r": "0x71beb5a23407fea3443dd51aa5a26f71159ba51dee33fe8d498ac86938dca41f", + "s": "0x2a04e2fcf01f80c621c1e4747db039792fec223c7d25ecb1e53ec6dc05b435c3", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4030,45 +3247,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf91541ae53029b333ac7c8ef0e68f32ff32cc6a67ab27e6522271215b99f39e2", - "network": "Cancun", + "lastblockhash": "0x164428cb64d1db206b96e4b17b944bb87a613123d0307305e27961da9a20b40a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4077,14 +3269,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4098,36 +3282,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea1a6c", + "balance": "0xffffffffffffea017c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "026-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c5e1490d672d026d": { + "025-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_a0be66af9a97ea52": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0849f48dafdc23ad3c491a46c62d6e55227b7e273e7c53c7dbe8ee464bcdc35fda09c123e4f43d535e83fb5524eb9f8f9b15cdccbd78d073f4b9dbaea8e64b8738ca0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806942307f266e636553e94006d11423f2688945ff3bdf515859eba1005c1a7708d620a94d91a1c0c285f9584e75ec2f82ac080a0bad740f39e4a37f0d97369c491a8b400ba04dc6f59b470a602209c27435c9f5ba0504392910ea536b47ac7a32c2492ef3f617c6c5d4a8a10656742a664bdb05529c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a0fceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0f5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3ca00316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x849f48dafdc23ad3c491a46c62d6e55227b7e273e7c53c7dbe8ee464bcdc35fd", - "transactionsTrie": "0x9c123e4f43d535e83fb5524eb9f8f9b15cdccbd78d073f4b9dbaea8e64b8738c", - "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", + "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283", + "transactionsTrie": "0xfceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281", + "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032828", + "gasUsed": "0x032318", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4137,33 +3354,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5e42765fcafa6bf8a488fc7aec74ee76c2dcd8820f7e7720e5c9c9d6e5b51c52" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x849f48dafdc23ad3c491a46c62d6e55227b7e273e7c53c7dbe8ee464bcdc35fd", - "receiptsRoot": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32828", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5e42765fcafa6bf8a488fc7aec74ee76c2dcd8820f7e7720e5c9c9d6e5b51c52", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806942307f266e636553e94006d11423f2688945ff3bdf515859eba1005c1a7708d620a94d91a1c0c285f9584e75ec2f82ac080a0bad740f39e4a37f0d97369c491a8b400ba04dc6f59b470a602209c27435c9f5ba0504392910ea536b47ac7a32c2492ef3f617c6c5d4a8a10656742a664bdb05529" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e" }, "blocknumber": "1", "transactions": [ @@ -4176,11 +3367,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806942307f266e636553e94006d11423f2688945ff3bdf515859eba1005c1a7708d620a94d91a1c0c285f9584e75ec2f82a", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0xbad740f39e4a37f0d97369c491a8b400ba04dc6f59b470a602209c27435c9f5b", - "s": "0x504392910ea536b47ac7a32c2492ef3f617c6c5d4a8a10656742a664bdb05529", + "r": "0xf5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3c", + "s": "0x0316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4188,61 +3379,28 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5e42765fcafa6bf8a488fc7aec74ee76c2dcd8820f7e7720e5c9c9d6e5b51c52", - "network": "Cancun", + "lastblockhash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x", "storage": {} } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4256,36 +3414,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e6e8", + "balance": "0xffffffffffffea0a58", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "027-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_cae5d3491190b777": { + "026-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af669445747d2585": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b516ad7628eef4dca64ff3533394ded67105a8ec159ff33f542ee8139d857c32a033e63d9f23cea6a5bf9ad371866475e8cfff580aef91876814b9f065c55510d4a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b981665ea5575dbe48f8cea22d4e3effc42cb66f967c7ca174c21f06a4a55740f61d8cde1bc6339c3f036e8d5176516fc080a0dcf9446bfc8d96cc748dcab47c9298ca84ae9e6cc617d30f72f6af8b218b53a1a04aad313d253a1a1ef4f308217f4caafc99cfaf98eee8a1ca07aa04fe0ad1ff53c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a0dc767e0a8a916f1855dffa8a6269ad01d5face5490cae4657ff5b5864ee5f1dca092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a8a46b67dcba4e3aa66f9952be69e1ecbc24e21d42b1df2bfe1c8e28431c6221a3f1d09808042f5624e857710cb24fb69c080a0d83602a0880d4a65094b22792227cf6848651300e7ef63463afb4cb55fb85552a016222311e5b80b643b9b0a13e8acac14a734a535116b7fcd2ec7b473e45c5c2dc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb516ad7628eef4dca64ff3533394ded67105a8ec159ff33f542ee8139d857c32", - "transactionsTrie": "0x33e63d9f23cea6a5bf9ad371866475e8cfff580aef91876814b9f065c55510d4", - "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", + "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34", + "transactionsTrie": "0xdc767e0a8a916f1855dffa8a6269ad01d5face5490cae4657ff5b5864ee5f1dc", + "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03281c", + "gasUsed": "0x032834", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4295,33 +3486,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x00ad5f1d8809420bb2271c5ace3759e0511515d769b09d01d34218202a444392" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb516ad7628eef4dca64ff3533394ded67105a8ec159ff33f542ee8139d857c32", - "receiptsRoot": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3281c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x00ad5f1d8809420bb2271c5ace3759e0511515d769b09d01d34218202a444392", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b981665ea5575dbe48f8cea22d4e3effc42cb66f967c7ca174c21f06a4a55740f61d8cde1bc6339c3f036e8d5176516fc080a0dcf9446bfc8d96cc748dcab47c9298ca84ae9e6cc617d30f72f6af8b218b53a1a04aad313d253a1a1ef4f308217f4caafc99cfaf98eee8a1ca07aa04fe0ad1ff53" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9c08c8139a3a49eef3e9bd0217bd08e36a3583c8b980cc3f9b151046036cf001" }, "blocknumber": "1", "transactions": [ @@ -4334,11 +3499,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b981665ea5575dbe48f8cea22d4e3effc42cb66f967c7ca174c21f06a4a55740f61d8cde1bc6339c3f036e8d5176516f", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a8a46b67dcba4e3aa66f9952be69e1ecbc24e21d42b1df2bfe1c8e28431c6221a3f1d09808042f5624e857710cb24fb69", "accessList": [], "v": "0x00", - "r": "0xdcf9446bfc8d96cc748dcab47c9298ca84ae9e6cc617d30f72f6af8b218b53a1", - "s": "0x4aad313d253a1a1ef4f308217f4caafc99cfaf98eee8a1ca07aa04fe0ad1ff53", + "r": "0xd83602a0880d4a65094b22792227cf6848651300e7ef63463afb4cb55fb85552", + "s": "0x16222311e5b80b643b9b0a13e8acac14a734a535116b7fcd2ec7b473e45c5c2d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4346,45 +3511,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x00ad5f1d8809420bb2271c5ace3759e0511515d769b09d01d34218202a444392", - "network": "Cancun", + "lastblockhash": "0x9c08c8139a3a49eef3e9bd0217bd08e36a3583c8b980cc3f9b151046036cf001", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4393,14 +3533,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4414,36 +3546,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e73c", + "balance": "0xffffffffffffe9e694", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "028-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d0992bc0387790a4": { + "027-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_af8b75f664ed7d43": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b516ad7628eef4dca64ff3533394ded67105a8ec159ff33f542ee8139d857c32a02d3c00b7b6f30782dc5b38cdb0c274d6ab6146b32e6440c13ed5c5ac2909bc9ba0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a731aa7fbb00bc5c46074279f0123976c2a0c05ef3987bdc16fa64fbab1621dec82c66b4bfb117456068137391617e59c001a0ca0197799718f0d7420e5f7927f22003acb6e4229de8a8f6da2580fee49cb11da056676b40175009a8c069ea362e2f1f18fe20276851bd784f0a5d7cf71d3c5f04c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa0a9eeb1b04f9338668d4d6042930fb62951446d5fe7b67796d7f1d960b9eec3e4a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556893acd46552b81cc9e5ff6ca03dad873588f2c61031781367cfea2a2be4ef3090035623338711b3cf7eff4b4524df742c001a06ebc2dcdecb28723dca8f5b6aeeedd1cefe9e86572dca08fcc72bcd9f35e05dba0592f09e687f9c8648ae29638a5a3b5de87f56221124789cc7d13db24729aa91ac0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb516ad7628eef4dca64ff3533394ded67105a8ec159ff33f542ee8139d857c32", - "transactionsTrie": "0x2d3c00b7b6f30782dc5b38cdb0c274d6ab6146b32e6440c13ed5c5ac2909bc9b", - "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0xa9eeb1b04f9338668d4d6042930fb62951446d5fe7b67796d7f1d960b9eec3e4", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03281c", + "gasUsed": "0x0326a8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4453,33 +3618,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x634d596241189920c7e2d59b0610b4b17518cda352722a1e73874990c4f30295" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb516ad7628eef4dca64ff3533394ded67105a8ec159ff33f542ee8139d857c32", - "receiptsRoot": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3281c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x634d596241189920c7e2d59b0610b4b17518cda352722a1e73874990c4f30295", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a731aa7fbb00bc5c46074279f0123976c2a0c05ef3987bdc16fa64fbab1621dec82c66b4bfb117456068137391617e59c001a0ca0197799718f0d7420e5f7927f22003acb6e4229de8a8f6da2580fee49cb11da056676b40175009a8c069ea362e2f1f18fe20276851bd784f0a5d7cf71d3c5f04" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd8f6b8b21e5311fcc1c99b52963084ffa5ecc92fac53a2b083e4f3b5de63ea14" }, "blocknumber": "1", "transactions": [ @@ -4492,11 +3631,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a731aa7fbb00bc5c46074279f0123976c2a0c05ef3987bdc16fa64fbab1621dec82c66b4bfb117456068137391617e59", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556893acd46552b81cc9e5ff6ca03dad873588f2c61031781367cfea2a2be4ef3090035623338711b3cf7eff4b4524df742", "accessList": [], "v": "0x01", - "r": "0xca0197799718f0d7420e5f7927f22003acb6e4229de8a8f6da2580fee49cb11d", - "s": "0x56676b40175009a8c069ea362e2f1f18fe20276851bd784f0a5d7cf71d3c5f04", + "r": "0x6ebc2dcdecb28723dca8f5b6aeeedd1cefe9e86572dca08fcc72bcd9f35e05db", + "s": "0x592f09e687f9c8648ae29638a5a3b5de87f56221124789cc7d13db24729aa91a", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4504,45 +3643,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x634d596241189920c7e2d59b0610b4b17518cda352722a1e73874990c4f30295", - "network": "Cancun", + "lastblockhash": "0xd8f6b8b21e5311fcc1c99b52963084ffa5ecc92fac53a2b083e4f3b5de63ea14", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4551,14 +3665,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4572,36 +3678,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e73c", + "balance": "0xffffffffffffe9f168", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "029-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d736268229bd87ec": { + "028-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6cb6698327d9835": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b516ad7628eef4dca64ff3533394ded67105a8ec159ff33f542ee8139d857c32a0f5f88082c2e649ed962fb2a8df6e5f57d1103e11cc5aa1afad6a9982a2ac6019a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef884c7d4772baef968a6a407ac02cc1a813d67003e8f039c4d66f7757be0e5bd484e561550acf58b8a3199b2690e9809ac001a0fb8ea80064406e3deb07654550868fd9586f9fde14f5ba41df3a9a8f43cd71c4a065abe2c0d3921a18f2357bd507e4ccc1a17125b949339c3604bdfa12b4dec565c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a03d43f624f48c1349027e94031005356ece1e40b1459988b4fe41b2fd042af890a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa38758fca85407078c0a7e5fd6d38b34340c809baa0e1fed9deaabb11aa503062acbbe23fcbe620a21b40a83bfa71b89c080a0a0abeba9143e17adc9cd5a12d68000eba14d9d683f89853f4fcd0e116f0ee17aa02fb0bd123da794416725d8169e29b1e453a2c6a541b3c67accd32da1cc7ce4b7c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb516ad7628eef4dca64ff3533394ded67105a8ec159ff33f542ee8139d857c32", - "transactionsTrie": "0xf5f88082c2e649ed962fb2a8df6e5f57d1103e11cc5aa1afad6a9982a2ac6019", - "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", + "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", + "transactionsTrie": "0x3d43f624f48c1349027e94031005356ece1e40b1459988b4fe41b2fd042af890", + "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03281c", + "gasUsed": "0x0326c0", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4611,33 +3750,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x708c7dc5e358bb39baf5722be23810428ff5f5f157825184635d4400270be1e3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb516ad7628eef4dca64ff3533394ded67105a8ec159ff33f542ee8139d857c32", - "receiptsRoot": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3281c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x708c7dc5e358bb39baf5722be23810428ff5f5f157825184635d4400270be1e3", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef884c7d4772baef968a6a407ac02cc1a813d67003e8f039c4d66f7757be0e5bd484e561550acf58b8a3199b2690e9809ac001a0fb8ea80064406e3deb07654550868fd9586f9fde14f5ba41df3a9a8f43cd71c4a065abe2c0d3921a18f2357bd507e4ccc1a17125b949339c3604bdfa12b4dec565" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5cf5be83f19e2c120fa75afe03c8e6dc5c4fe0c318d22d27d0c2d2fd254dee68" }, "blocknumber": "1", "transactions": [ @@ -4650,11 +3763,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef884c7d4772baef968a6a407ac02cc1a813d67003e8f039c4d66f7757be0e5bd484e561550acf58b8a3199b2690e9809a", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa38758fca85407078c0a7e5fd6d38b34340c809baa0e1fed9deaabb11aa503062acbbe23fcbe620a21b40a83bfa71b89", "accessList": [], - "v": "0x01", - "r": "0xfb8ea80064406e3deb07654550868fd9586f9fde14f5ba41df3a9a8f43cd71c4", - "s": "0x65abe2c0d3921a18f2357bd507e4ccc1a17125b949339c3604bdfa12b4dec565", + "v": "0x00", + "r": "0xa0abeba9143e17adc9cd5a12d68000eba14d9d683f89853f4fcd0e116f0ee17a", + "s": "0x2fb0bd123da794416725d8169e29b1e453a2c6a541b3c67accd32da1cc7ce4b7", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4662,45 +3775,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x708c7dc5e358bb39baf5722be23810428ff5f5f157825184635d4400270be1e3", - "network": "Cancun", + "lastblockhash": "0x5cf5be83f19e2c120fa75afe03c8e6dc5c4fe0c318d22d27d0c2d2fd254dee68", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4709,14 +3797,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4730,72 +3810,79 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e73c", + "balance": "0xffffffffffffe9f0c0", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "030-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_e68d7111a2364a49": { + "029-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_b6ec3736f9ff2c62": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306a0db4428cdc02ad1603afaf1737d369177c648f4eb6523b163039b548fc46c8322a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548068f391ceb1bd34fe93e995f04fc78f8e715776ce6385936ab91a9ca88f3942cc37bd471c0180ed0ab6fc4f5e2d6f99dacc001a0cb3e503622f7a81e1d75967a93e307bb40a6ff987ac69c37147133f97134f8a6a02a2b35b7767af0323557d318c773e4719ded11e675b8793ff96fc83b9e738756c0c0", - "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "transactionsTrie": "0xdb4428cdc02ad1603afaf1737d369177c648f4eb6523b163039b548fc46c8322", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa0e78af4c18224a6188bf25628dd7a51a47f24f59ca2305d9acb071f2055585ec8a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556a256a681861974cdf6b116467044aa75c85b01076423a92c3335b93d10bf2fcb99b943a53adc1ab8feb6b475c4688948c080a06bf05e3e75e53f4286db33f2421a91d33a3ce5fb0a171ec361085576ad955c16a053384e9cd480afc3031854a546ef73a97f743e1779a457b35501f2e6e2b990a4c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0xe78af4c18224a6188bf25628dd7a51a47f24f59ca2305d9acb071f2055585ec8", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0326a8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xde84b0d1a1b24d609b89b3bd6395c21f4fbfff3cc9118e20e66354410e977f36" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "receiptsRoot": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326c0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xde84b0d1a1b24d609b89b3bd6395c21f4fbfff3cc9118e20e66354410e977f36", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548068f391ceb1bd34fe93e995f04fc78f8e715776ce6385936ab91a9ca88f3942cc37bd471c0180ed0ab6fc4f5e2d6f99dacc001a0cb3e503622f7a81e1d75967a93e307bb40a6ff987ac69c37147133f97134f8a6a02a2b35b7767af0323557d318c773e4719ded11e675b8793ff96fc83b9e738756" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa88ee0dfc69890e287c3f3d7f3f7e91a25b712ad8c547b9dff238450a90a57ab" }, "blocknumber": "1", "transactions": [ @@ -4808,11 +3895,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548068f391ceb1bd34fe93e995f04fc78f8e715776ce6385936ab91a9ca88f3942cc37bd471c0180ed0ab6fc4f5e2d6f99dac", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556a256a681861974cdf6b116467044aa75c85b01076423a92c3335b93d10bf2fcb99b943a53adc1ab8feb6b475c4688948", "accessList": [], - "v": "0x01", - "r": "0xcb3e503622f7a81e1d75967a93e307bb40a6ff987ac69c37147133f97134f8a6", - "s": "0x2a2b35b7767af0323557d318c773e4719ded11e675b8793ff96fc83b9e738756", + "v": "0x00", + "r": "0x6bf05e3e75e53f4286db33f2421a91d33a3ce5fb0a171ec361085576ad955c16", + "s": "0x53384e9cd480afc3031854a546ef73a97f743e1779a457b35501f2e6e2b990a4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4820,45 +3907,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xde84b0d1a1b24d609b89b3bd6395c21f4fbfff3cc9118e20e66354410e977f36", - "network": "Cancun", + "lastblockhash": "0xa88ee0dfc69890e287c3f3d7f3f7e91a25b712ad8c547b9dff238450a90a57ab", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4867,14 +3929,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -4888,36 +3942,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", + "balance": "0xffffffffffffe9f168", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "031-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ed6b180ec759bcf6": { + "030-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_becf2e1641bbd4e6": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0849f48dafdc23ad3c491a46c62d6e55227b7e273e7c53c7dbe8ee464bcdc35fda0313c9b788fcaa0e7cf37cef629eac02320dfd2ed6811ab40f39865f612c33764a0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9940769c68153fe476f97be8841dd16ad8c8f52a8bd2e8a421bb8eccc3a77e705e3702fdf17f1bf27333d94e2d88ee85dc080a0c9ada62679e5ba02a861083b6325cfaf8bd8ec5405a94a4aad6eb0a5d72da710a01518ef83949babdbe0151bdc2937489de21b92e4f6233ad06714ecfd8d322b62c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa005a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1a05db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591a04edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830325c40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a075b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500ca022d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x849f48dafdc23ad3c491a46c62d6e55227b7e273e7c53c7dbe8ee464bcdc35fd", - "transactionsTrie": "0x313c9b788fcaa0e7cf37cef629eac02320dfd2ed6811ab40f39865f612c33764", - "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", + "stateRoot": "0x05a3cb7e0ea279208609f5fd166e30f7d7e6233826c14aecc43b0fad5062dad1", + "transactionsTrie": "0x5db260e1bc4bd3ce628ca8eca95f628b20e83134863db4588dad6af1f87ba591", + "receiptTrie": "0x4edfaeec9aa2d668aa1fe654b5bb5a19ffd6ea9718e245f57c193e6384bb858e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x032828", + "gasUsed": "0x0325c4", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4927,33 +4014,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x96bb49e9ddbf6bc7de4d6d8048ad0cbfcf846656282c46965d639aa66675ff70" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x849f48dafdc23ad3c491a46c62d6e55227b7e273e7c53c7dbe8ee464bcdc35fd", - "receiptsRoot": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x32828", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x96bb49e9ddbf6bc7de4d6d8048ad0cbfcf846656282c46965d639aa66675ff70", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9940769c68153fe476f97be8841dd16ad8c8f52a8bd2e8a421bb8eccc3a77e705e3702fdf17f1bf27333d94e2d88ee85dc080a0c9ada62679e5ba02a861083b6325cfaf8bd8ec5405a94a4aad6eb0a5d72da710a01518ef83949babdbe0151bdc2937489de21b92e4f6233ad06714ecfd8d322b62" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1" }, "blocknumber": "1", "transactions": [ @@ -4966,11 +4027,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9940769c68153fe476f97be8841dd16ad8c8f52a8bd2e8a421bb8eccc3a77e705e3702fdf17f1bf27333d94e2d88ee85d", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0xc9ada62679e5ba02a861083b6325cfaf8bd8ec5405a94a4aad6eb0a5d72da710", - "s": "0x1518ef83949babdbe0151bdc2937489de21b92e4f6233ad06714ecfd8d322b62", + "v": "0x01", + "r": "0x75b3519d3798682ae97e033ea62426cac14f35dbb2ac2d3d6c23863a0f8c500c", + "s": "0x22d468709c36b066366015decc5579f4592252ec77f876f5ea562fbc1d2e3733", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4978,45 +4039,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x96bb49e9ddbf6bc7de4d6d8048ad0cbfcf846656282c46965d639aa66675ff70", - "network": "Cancun", + "lastblockhash": "0x9d9577c280d3f15aabc74cbbf76eea93a2c66f3cbc08f9ce2ee62f4af457cfc1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5025,14 +4061,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5046,36 +4074,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9e6e8", + "balance": "0xffffffffffffe9f7a4", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "032-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f0ed3dc11cdeb130": { + "031-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c3d4322ec17fe7cd": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02a09733c75988fdbbdff12abd534f218637691b393d05d648e4e26e7ac5610f4a084c23b2b6821c3d164304f26c2867332b319a74a28b4a4f958584c8572e38e40a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a4b831fd8adfa8bffcbfa0f486f40cdb65ada7dc7b26e6c745c0369b3a59c338df67edebc3fd7c14ff374be3f1f66735c001a08ecaa57e461f3841e384279290526c94065d243808552b82a0eeba07dec8b40ea009d3d3bc57d99b33e97a2957a8e227415a52ec03a95b0bd23ee59f6a3340fb6fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6a042814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9a0490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2a09733c75988fdbbdff12abd534f218637691b393d05d648e4e26e7ac5610f4", - "transactionsTrie": "0x84c23b2b6821c3d164304f26c2867332b319a74a28b4a4f958584c8572e38e40", - "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", + "stateRoot": "0x743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6", + "transactionsTrie": "0x42814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9", + "receiptTrie": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326a8", + "gasUsed": "0x0320cc", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5085,33 +4146,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0dfb67eea23acd1b19a4180fecde3b16d947a73c9e6170080868a511aa320c8f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2a09733c75988fdbbdff12abd534f218637691b393d05d648e4e26e7ac5610f4", - "receiptsRoot": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326a8", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0dfb67eea23acd1b19a4180fecde3b16d947a73c9e6170080868a511aa320c8f", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a4b831fd8adfa8bffcbfa0f486f40cdb65ada7dc7b26e6c745c0369b3a59c338df67edebc3fd7c14ff374be3f1f66735c001a08ecaa57e461f3841e384279290526c94065d243808552b82a0eeba07dec8b40ea009d3d3bc57d99b33e97a2957a8e227415a52ec03a95b0bd23ee59f6a3340fb6f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c" }, "blocknumber": "1", "transactions": [ @@ -5124,11 +4159,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a4b831fd8adfa8bffcbfa0f486f40cdb65ada7dc7b26e6c745c0369b3a59c338df67edebc3fd7c14ff374be3f1f66735", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x01", - "r": "0x8ecaa57e461f3841e384279290526c94065d243808552b82a0eeba07dec8b40e", - "s": "0x09d3d3bc57d99b33e97a2957a8e227415a52ec03a95b0bd23ee59f6a3340fb6f", + "r": "0x1010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373", + "s": "0x4b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5136,45 +4171,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0dfb67eea23acd1b19a4180fecde3b16d947a73c9e6170080868a511aa320c8f", - "network": "Cancun", + "lastblockhash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5183,14 +4193,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5204,72 +4206,79 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f168", + "balance": "0xffffffffffffea1a6c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "033-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f47eb9fc139f6bfd": { + "032-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_c5e1490d672d026d": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306a033265160be7234cbac21eff8eef3385c85a88078521b560593348fdaf8c684eda0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480686031313e4108b347f185a1247c062be741e37376474c23812ba260a13436065507d429c9ea7a205b6eb069e49a70641c001a027e8547ab96a718e5754936ce9ec358b1ccca6de57cb4f370c58b209fb821ffba020c42598d87bd16493b2da2acd9ab845993c435a4850567c032ef065b17ed52ac0c0", - "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "transactionsTrie": "0x33265160be7234cbac21eff8eef3385c85a88078521b560593348fdaf8c684ed", - "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326c0", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34a057f28c6df7f44e82f077d2938a5e1cc47e0792a402342a6ba6a098b3d8b8d341a092785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7873033e038326e87ed3e1276fd140253fa08e9fc25fb2d9a98527fc22a2c9612fbeafdad446cbc7bcdbdcd780af2c16ac001a0f37cf93c89b3829e2986e16f053fea921478311eb3e6569a76915be6c21e1159a048df2f8978a59ccaee1758db430b78c3e8d5d069a59470cce9e442de0eb840fac0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0688fee8a867e36eb36eff84e1de8c36541a78c7671144321f8ae4ca01820c34", + "transactionsTrie": "0x57f28c6df7f44e82f077d2938a5e1cc47e0792a402342a6ba6a098b3d8b8d341", + "receiptTrie": "0x92785c65bcd1aeb3bb581e4b3ae8387972fb5b894807002c7748608f81dbcde4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032834", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb64e6ca3d9bc86d41c261fcecfe5a7eccda0f7cb5517e854ec884473252893a8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6225bc7ae5d11082dc6929f2cafb2208101eb766bdb985e02941bb8481692306", - "receiptsRoot": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326c0", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb64e6ca3d9bc86d41c261fcecfe5a7eccda0f7cb5517e854ec884473252893a8", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480686031313e4108b347f185a1247c062be741e37376474c23812ba260a13436065507d429c9ea7a205b6eb069e49a70641c001a027e8547ab96a718e5754936ce9ec358b1ccca6de57cb4f370c58b209fb821ffba020c42598d87bd16493b2da2acd9ab845993c435a4850567c032ef065b17ed52a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd5bb990b05121d0fe10307d8ec8f5cac95c3b13353f6e542d892143722cc2cb8" }, "blocknumber": "1", "transactions": [ @@ -5282,11 +4291,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480686031313e4108b347f185a1247c062be741e37376474c23812ba260a13436065507d429c9ea7a205b6eb069e49a70641", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7873033e038326e87ed3e1276fd140253fa08e9fc25fb2d9a98527fc22a2c9612fbeafdad446cbc7bcdbdcd780af2c16a", "accessList": [], "v": "0x01", - "r": "0x27e8547ab96a718e5754936ce9ec358b1ccca6de57cb4f370c58b209fb821ffb", - "s": "0x20c42598d87bd16493b2da2acd9ab845993c435a4850567c032ef065b17ed52a", + "r": "0xf37cf93c89b3829e2986e16f053fea921478311eb3e6569a76915be6c21e1159", + "s": "0x48df2f8978a59ccaee1758db430b78c3e8d5d069a59470cce9e442de0eb840fa", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5294,45 +4303,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb64e6ca3d9bc86d41c261fcecfe5a7eccda0f7cb5517e854ec884473252893a8", - "network": "Cancun", + "lastblockhash": "0xd5bb990b05121d0fe10307d8ec8f5cac95c3b13353f6e542d892143722cc2cb8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5341,14 +4325,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5362,36 +4338,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f0c0", + "balance": "0xffffffffffffe9e694", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "034-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f7f44e1e864aa967": { + "033-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_cae5d3491190b777": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e6155748f5f07057ad7899a56b96b06b526166dd9e490eeafbdbbbb0a7df8a5da04736d1f86eeb8422f7d8102498daba055b9a0d9c4cdaff334a25a2505e1e8851a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806807dce8223a17fd2702eb75a13333f5d3128639df8fc09881a68d464d5765a1a0d2f4628ea573eddb3d6cf4846a0b4ecc080a004bff879689a82b7b12070c7996b2d8710ff509d3c9396fb8c4b865f01f86f81a02fb711a50468f01f5def161f5daa40bf1c62bda3c93388178655d4a4dccd98cec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a0d38fd566039239bd104f88943f3bada9cfff76e4d3a5d406be66978d405c1002a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab059c60125debbbf29d041bac20fd853951b64b5f31bfe2fa825e18ff49a259953e734b3d57119ae66f7bd79de3027f6c001a03efcc8ddc2baca10773b20c3ebf8690d1c5e6e4225db402b48c9d1e139db59e7a046ce90989394e8385be02ffaff09f729bbff0262000a5d074b2e37f838bce594c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6155748f5f07057ad7899a56b96b06b526166dd9e490eeafbdbbbb0a7df8a5d", - "transactionsTrie": "0x4736d1f86eeb8422f7d8102498daba055b9a0d9c4cdaff334a25a2505e1e8851", - "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", + "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98", + "transactionsTrie": "0xd38fd566039239bd104f88943f3bada9cfff76e4d3a5d406be66978d405c1002", + "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0326b4", + "gasUsed": "0x03281c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5401,33 +4410,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0bee48c3dd1131fee1747a6c4bd1a1ca448c568094d9fba695046e961408ba6a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe6155748f5f07057ad7899a56b96b06b526166dd9e490eeafbdbbbb0a7df8a5d", - "receiptsRoot": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x326b4", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0bee48c3dd1131fee1747a6c4bd1a1ca448c568094d9fba695046e961408ba6a", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806807dce8223a17fd2702eb75a13333f5d3128639df8fc09881a68d464d5765a1a0d2f4628ea573eddb3d6cf4846a0b4ecc080a004bff879689a82b7b12070c7996b2d8710ff509d3c9396fb8c4b865f01f86f81a02fb711a50468f01f5def161f5daa40bf1c62bda3c93388178655d4a4dccd98ce" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4bf94ef7add0777b5aadd0f5207d34dd252da44b3820dba57de924be58d4df39" }, "blocknumber": "1", "transactions": [ @@ -5440,11 +4423,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806807dce8223a17fd2702eb75a13333f5d3128639df8fc09881a68d464d5765a1a0d2f4628ea573eddb3d6cf4846a0b4ec", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab059c60125debbbf29d041bac20fd853951b64b5f31bfe2fa825e18ff49a259953e734b3d57119ae66f7bd79de3027f6", "accessList": [], - "v": "0x00", - "r": "0x04bff879689a82b7b12070c7996b2d8710ff509d3c9396fb8c4b865f01f86f81", - "s": "0x2fb711a50468f01f5def161f5daa40bf1c62bda3c93388178655d4a4dccd98ce", + "v": "0x01", + "r": "0x3efcc8ddc2baca10773b20c3ebf8690d1c5e6e4225db402b48c9d1e139db59e7", + "s": "0x46ce90989394e8385be02ffaff09f729bbff0262000a5d074b2e37f838bce594", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5452,45 +4435,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0bee48c3dd1131fee1747a6c4bd1a1ca448c568094d9fba695046e961408ba6a", - "network": "Cancun", + "lastblockhash": "0x4bf94ef7add0777b5aadd0f5207d34dd252da44b3820dba57de924be58d4df39", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5499,14 +4457,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5520,36 +4470,69 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffe9f114", + "balance": "0xffffffffffffe9e73c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "035-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ffa6e97b97146517": { + "034-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d0992bc0387790a4": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06418c4408909068f03c56feaaa66472327e0cc6baa1b74694401e98f8bbade92a076df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0a0fa5cbef006f8526c97aea2df1f6d7da6968f04db55c9121be3cd1a90b4401309a0ee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830328280c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7987ea6df69bbe97c23e0dd948cf2d4490824ba7fea5af812721b2393354b0810a9dba2c231ea7ae30f26c412c7ea6e3ac001a00373cb4a98e39283abf022af09090498258b499a792ba82320d7aa6daf8ed3cfa06be1234fe690f65f4490f56675eaa086bc965e52fdc377778081d7343a2ef98dc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6418c4408909068f03c56feaaa66472327e0cc6baa1b74694401e98f8bbade92", - "transactionsTrie": "0x76df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0", - "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", + "stateRoot": "0xb5fb155286d38e5d9a3a01251b3c3c6207217d84aa806abdeefaf029843896b0", + "transactionsTrie": "0xfa5cbef006f8526c97aea2df1f6d7da6968f04db55c9121be3cd1a90b4401309", + "receiptTrie": "0xee652a06815a432d5f2b3e9ecff47f1da5ea293bca394f6d08fc63db91569906", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0320d8", + "gasUsed": "0x032828", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5559,33 +4542,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x05c39bc53a1cd8b83061860eaa7465c5681d5e11c7221d1d3aea895c3c04bbb5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6418c4408909068f03c56feaaa66472327e0cc6baa1b74694401e98f8bbade92", - "receiptsRoot": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x320d8", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x05c39bc53a1cd8b83061860eaa7465c5681d5e11c7221d1d3aea895c3c04bbb5", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x54b43f1f9515d5c678272d86b75eef5e6307f9ff64921c29b71061820cdfc1c8" }, "blocknumber": "1", "transactions": [ @@ -5598,11 +4555,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7987ea6df69bbe97c23e0dd948cf2d4490824ba7fea5af812721b2393354b0810a9dba2c231ea7ae30f26c412c7ea6e3a", "accessList": [], "v": "0x01", - "r": "0x6950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612", - "s": "0x29650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053", + "r": "0x0373cb4a98e39283abf022af09090498258b499a792ba82320d7aa6daf8ed3cf", + "s": "0x6be1234fe690f65f4490f56675eaa086bc965e52fdc377778081d7343a2ef98d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5610,45 +4567,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x05c39bc53a1cd8b83061860eaa7465c5681d5e11c7221d1d3aea895c3c04bbb5", - "network": "Cancun", + "lastblockhash": "0x54b43f1f9515d5c678272d86b75eef5e6307f9ff64921c29b71061820cdfc1c8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5657,14 +4589,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5678,72 +4602,3755 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffea1a18", + "balance": "0xffffffffffffe9e6e8", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "036-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_02e696ada7d4631d": { + "035-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_d736268229bd87ec": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0353148f56912dda2ed5bd1eb3a14fa0e126b4f1743ed45b1a94d70547fd5b876a004a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336a04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259a054fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26c0c0", - "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x353148f56912dda2ed5bd1eb3a14fa0e126b4f1743ed45b1a94d70547fd5b876", - "transactionsTrie": "0x04a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336", - "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02878e", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcf0994448d6cee838c50b538f1f51d31a1f641f6cc8bf341232c7d609b6f9941" + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a040e7297fe073db243b4197e94b2bf9d5d46fcfbc301ac58536f6efb258c76c0aa0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655694425f5cf336685a6a4e806ad4601f4b0d3707a655718f968c57e225f0e4b8d5fd61878234f25ec59d090c07ea725cf4c001a08062bb6127236caf59a0babb1eb316cd9cf4db55126230550a38411c48773c43a0215ab9619175bf3a7e08debcecfc30d2cbb605e6120f68f6d8ae4a35cfdcaf73c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98", + "transactionsTrie": "0x40e7297fe073db243b4197e94b2bf9d5d46fcfbc301ac58536f6efb258c76c0a", + "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03281c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc49da6439c1ab5458038c939ef7e98a6dc666a7bc0e8331fa9646a5866018de9" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655694425f5cf336685a6a4e806ad4601f4b0d3707a655718f968c57e225f0e4b8d5fd61878234f25ec59d090c07ea725cf4", + "accessList": [], + "v": "0x01", + "r": "0x8062bb6127236caf59a0babb1eb316cd9cf4db55126230550a38411c48773c43", + "s": "0x215ab9619175bf3a7e08debcecfc30d2cbb605e6120f68f6d8ae4a35cfdcaf73", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc49da6439c1ab5458038c939ef7e98a6dc666a7bc0e8331fa9646a5866018de9", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffe9e73c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "036-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_e68d7111a2364a49": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0d55deb2710b6db8dad4542109d2281aa78d8ff1277c2a1758c5a0c053dbf0160a0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a35c4f136a09a33c6437c26dc0c617ce6548a14bc4af7127690a411f5e1cde2f73157365212dbcea6432e0e7869cb006c001a079c75d58d4d2349d99b03f5f5255c9e1d780b2e7ab89ca44f01834df629e8e56a03351ebd9f15bbe07e5c7e6fe584ca3a1cae696edce769f53facea5fd2d93c256c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", + "transactionsTrie": "0xd55deb2710b6db8dad4542109d2281aa78d8ff1277c2a1758c5a0c053dbf0160", + "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0326c0", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x50583d3bc03056855aa0c5aaf9319714f0275572720e77f958f16561bc2cb98a" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a35c4f136a09a33c6437c26dc0c617ce6548a14bc4af7127690a411f5e1cde2f73157365212dbcea6432e0e7869cb006", + "accessList": [], + "v": "0x01", + "r": "0x79c75d58d4d2349d99b03f5f5255c9e1d780b2e7ab89ca44f01834df629e8e56", + "s": "0x3351ebd9f15bbe07e5c7e6fe584ca3a1cae696edce769f53facea5fd2d93c256", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x50583d3bc03056855aa0c5aaf9319714f0275572720e77f958f16561bc2cb98a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffe9f0c0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "037-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ed6b180ec759bcf6": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa045697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98a0346a6bf7dfed70ffa6d239b4d2696980b0dd97e25c23c6a814837ca7db1f3323a0578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303281c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a1fcd37a924af9ec04143b44853c26f6b0738f6e15a3e0755057e7d5460406c7e148adb0e2d608982140d0ae42fe0b3bc001a051ac07e80d47d7a0508522bbebd2d6e4ad87c9af609cc8516e3a08abee75b31ba0626af8217c88c1bfe8c561bd0c903558ea5ccdd573d8a93421b812618a1cf0f3c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x45697ab25faa4cb90845238465e3d80ce516f41c828bbea47ed79a44fdbd5c98", + "transactionsTrie": "0x346a6bf7dfed70ffa6d239b4d2696980b0dd97e25c23c6a814837ca7db1f3323", + "receiptTrie": "0x578146f9ff3b4decc7636b646d66f38a6068f41eb993f3d9f33de3e3f9fb66fd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03281c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x13b13ac0b4631ac904348b9c5b9f6b890f146fdf85dd2fca929bf18a40f3311e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06a1fcd37a924af9ec04143b44853c26f6b0738f6e15a3e0755057e7d5460406c7e148adb0e2d608982140d0ae42fe0b3b", + "accessList": [], + "v": "0x01", + "r": "0x51ac07e80d47d7a0508522bbebd2d6e4ad87c9af609cc8516e3a08abee75b31b", + "s": "0x626af8217c88c1bfe8c561bd0c903558ea5ccdd573d8a93421b812618a1cf0f3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x13b13ac0b4631ac904348b9c5b9f6b890f146fdf85dd2fca929bf18a40f3311e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffe9e73c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "038-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f0ed3dc11cdeb130": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837ceaa0cf3c30883f24409433d84b1ad29f2d48c0311e028e3c1d82f43a4c8132e0ae52a0ddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326a80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa71f21ca51b443ad35bb8a26d274223a690d88d9629927dc80b0856093e08a372820248df5b8a43b6d98fd52a62fa376c001a08bbe8ab59a85fbd6782fa557398efe11d29e3249c567548ebfdaeba270a5e289a046ffe185ae723b2dc22f573fd205ccab2af35adac585763f2b0ba9e6ab1af76dc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4159354b4217bfcfc25d574fbf48fd1422887e5256ef0bec95b34fa1d2837cea", + "transactionsTrie": "0xcf3c30883f24409433d84b1ad29f2d48c0311e028e3c1d82f43a4c8132e0ae52", + "receiptTrie": "0xddac6235f1c3c7cf7be43069c6158087a3c278228d25e5f410defca825999683", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0326a8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2a2029d6421b2e4324e1fc4d61a247911b99ab54df8996cdc9e01951c7256cc5" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa71f21ca51b443ad35bb8a26d274223a690d88d9629927dc80b0856093e08a372820248df5b8a43b6d98fd52a62fa376", + "accessList": [], + "v": "0x01", + "r": "0x8bbe8ab59a85fbd6782fa557398efe11d29e3249c567548ebfdaeba270a5e289", + "s": "0x46ffe185ae723b2dc22f573fd205ccab2af35adac585763f2b0ba9e6ab1af76d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2a2029d6421b2e4324e1fc4d61a247911b99ab54df8996cdc9e01951c7256cc5", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffe9f168", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "039-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f47eb9fc139f6bfd": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1a0ae6668667f2a291f276f76e934a6b38b3fe6860681b66127b53ad25e284e4c6fa0a28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326c00c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a06eb61083a9a45c07c765d52a17bfe79e8eda8eeb1395838988da31987c397b53a011196b13a0b7796abd006d318e4fac1c052c6c43c43fcb6153322e6fab29e6a1c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd2a59cc9dd3c830b051dc217edd0b42a868fae6b41431a02e1666bda1833b9b1", + "transactionsTrie": "0xae6668667f2a291f276f76e934a6b38b3fe6860681b66127b53ad25e284e4c6f", + "receiptTrie": "0xa28962db15985dce9fc1f5c2c6e1bbc9c7be1f3fb810bb3e8ec0b6c2a227b1f3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0326c0", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x261968fe4934c84015b5fbf24dcb17759a3d69af186dda281b30edc486485829" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", + "accessList": [], + "v": "0x01", + "r": "0x6eb61083a9a45c07c765d52a17bfe79e8eda8eeb1395838988da31987c397b53", + "s": "0x11196b13a0b7796abd006d318e4fac1c052c6c43c43fcb6153322e6fab29e6a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x261968fe4934c84015b5fbf24dcb17759a3d69af186dda281b30edc486485829", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffe9f0c0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "040-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_f7f44e1e864aa967": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1a085221ef646bdac0ca9852709b72edd4bba98e3c13ce05fe0d4288b707d16f026a0f2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830326b40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7809adfa8b078b0921cdb8696ca017a0cc2d5337109016f36a766886eade28d32f205311ff5def247c3ddba91896fae97c080a008dd3fdefb25997c98d9e3343a574cb5ad5f0ad6fb7c38a627bd5b9b1a4f2c2da079516fec030f0d31058ca022daa456180b8111902da996e33378b52440990c30c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9d5a65cc5fbc0b6888f1ca061efcdc9dbd670aa7f06ca8ef23623acb629bd5d1", + "transactionsTrie": "0x85221ef646bdac0ca9852709b72edd4bba98e3c13ce05fe0d4288b707d16f026", + "receiptTrie": "0xf2770ea2a80642c8e6b1a1748dfaf23bd1caeb8b204723206ab66564d463d030", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0326b4", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5a317d7cbae32b4204671d6c02266cbfddf35ad4a8a148fee57f0b33e2b9391d" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7809adfa8b078b0921cdb8696ca017a0cc2d5337109016f36a766886eade28d32f205311ff5def247c3ddba91896fae97", + "accessList": [], + "v": "0x00", + "r": "0x08dd3fdefb25997c98d9e3343a574cb5ad5f0ad6fb7c38a627bd5b9b1a4f2c2d", + "s": "0x79516fec030f0d31058ca022daa456180b8111902da996e33378b52440990c30", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5a317d7cbae32b4204671d6c02266cbfddf35ad4a8a148fee57f0b33e2b9391d", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffe9f114", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "041-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_ffa6e97b97146517": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea076df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee", + "transactionsTrie": "0x76df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0", + "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0320d8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x6950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612", + "s": "0x29650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1a18", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "042-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_05c1f3685f3393f0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0daa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5aa064694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579a0cffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303248c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a056cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c219f8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdaa2e7172725bfa180044d9a50f715abdd0b4e2b908bea2e9a1b59446d74db5a", + "transactionsTrie": "0x64694503549631721abbd0ccbc59bbb11f6987a03104eef1e12a3d3d1aca8579", + "receiptTrie": "0xcffc4636a42d9c6309bc3a1501b115d31f9b57efcb36cdab27c5e3ef9c756d09", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03248c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0x56cc0f64cca987cba1d1c7f6f39aadaafefae85a8dadadc776cf2881c6194c21", + "s": "0x8727fa857ab3248103a8636248eaedaed219c313bf97e2673a9bab17226144", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x9e09b698405a8b1d07a8b74ee53b5d0a3174b6c7a933f1c0ce594b5af4d2172a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea002c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "043-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_177b58dc7a46b08f": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9da0b835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30a04bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830324800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0a043eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9ee9c8e9998e316ff7563b4fb05e35b3cc8f20337ca314d83c098149fd6c0d9d", + "transactionsTrie": "0xb835914c32846ce4b9f953b0ba04cf33028ecc13380fd2c259575cada7be2d30", + "receiptTrie": "0x4bf1348d0fdae7278cb03c8bb2e38fdebee3a8d9312f9fe9639e449b2353b9b4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032480", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0x041603d4d4eee85f8717ccf36cc9332488c80a98288dab307cefa8cf4779d9d0", + "s": "0x43eff97f53dd7225d6f09e384fc0841ae1d4270b493ca3f28a75a1ce188d2505", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf2f72e3687bae12fd957a7467c84db42d33b6fb8d75c541c8d0302fa63fbf2c2", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0080", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "044-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_2b76dc9e3abf42f3": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a04a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0a04b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283", + "transactionsTrie": "0x4a48dfbccb8fac2366ab037f6e4e1ba275d8678681973fdfd6712bd5e5b730f9", + "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032318", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0x9195fc709fd538fc7555a818e0574406c1cd8cc72fe2e3a50c6b8976e66e3ee0", + "s": "0x4b3cbb9786db1ef4866288d895b09850b5167aa3d454a1c7bce0ad99b7065cb7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xd196fb6b1529cad09b38c60dee6b19557597903353ec2d5b6443a1a92153d4b8", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0a58", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "045-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_395cf6d697d1a743": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4a049a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911a060d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303245c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055ba04e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07bc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x092ca77027ac1b9ca4a5cb57621c139371b077dd8335981de8c9db4a005b7fc4", + "transactionsTrie": "0x49a925eb922da73de67e2944080379e4078dc8df996329fec5ebf2e61ee77911", + "receiptTrie": "0x60d05e6d4f087896952e0161c798979dbef6212d3979c5cf31d4538884a22009", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03245c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x5e5d495a95eea1e64aa3bdf92cbe528b70e5e81100472c3ef4ed1fdad748055b", + "s": "0x4e210a87cb7bf98868e1246eb5d8212988c2783e420552ec24325e3a647ea07b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x779b5486e45d40883705c473c112306c4448997808ed1419e4bb8fbe42a9e920", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea017c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "046-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_585454b31673dd62": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524aa0282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094a096b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dccb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303230c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a061f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eba043a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd46a4550e8ad1b69c10e07338f772b34c3365beade08f7bbffbeab6c9335524a", + "transactionsTrie": "0x282b431779e1edd7b75fd86161bdd6e347546fad2b2284d67f952e5755adb094", + "receiptTrie": "0x96b754aa64debb4f75196685c39339e3cfc406785621fa534c4690b8f3449dcc", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03230c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x61f61fd735c0e515d2d6f3cbbbc9d3a8cde28c0bc8c4b46ac6e0975a0b9d78eb", + "s": "0x43a0f69d32510e18b654902012185f7454f8528aafed5ff1067c6f2342bc16f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xaa57f81b8a5c24c452e8946c997713aa13d839c5d9432d876fcc53ea8467e09e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0aac", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "047-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_poly_a0be66af9a97ea52": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283a0fceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281a0091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830323180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0f5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3ca00316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4a133c11db920fba4882b5f6f8b1a5fca6225d9ccb55e8acabd65c098e21e283", + "transactionsTrie": "0xfceba5b9017f510fbc5e63371919d3b97e09c8e4645d8aac480f54c522d29281", + "receiptTrie": "0x091757d992eaa78b80aa36f0b2faba95782069d4cbbd8d3fa36ad5c8fee43138", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032318", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4ec00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0xf5a0c88b6ab5779b674f50f35ff6a84e9de6a974a504e57f2831c07964432d3c", + "s": "0x0316a20572a66083f1bd4e473ffbfdaff0ae5fdd62491052b411f92be107e260", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xfaf98fd3423a87ff451d8df58ace9e7a133a156daf21e246b36a55a4598ee45e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0a58", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "048-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_02e696ada7d4631d": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea0342a7b460150feecdcb631315bdec6482e2c61fdbd3503ec02fe14e29f3bf370a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a065f7b12b0599ab4d9ebb3eb4b578437f752aa0cb55ddf51fff8606bef0810d11a01fe1f62b259c12418cf77f0e4f4fe740701e7e24977b011ecbc9ea14e67fc356c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee", + "transactionsTrie": "0x342a7b460150feecdcb631315bdec6482e2c61fdbd3503ec02fe14e29f3bf370", + "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0320d8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb9ad0d2b7827d79ddd92eb487aeccaaf8eafbb6e474d95f2d30c938eb632366e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0x65f7b12b0599ab4d9ebb3eb4b578437f752aa0cb55ddf51fff8606bef0810d11", + "s": "0x1fe1f62b259c12418cf77f0e4f4fe740701e7e24977b011ecbc9ea14e67fc356", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb9ad0d2b7827d79ddd92eb487aeccaaf8eafbb6e474d95f2d30c938eb632366e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1a18", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "049-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_0cf79b17cb5f4ea2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94aa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a076ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830322400c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbff95dd737627225c19a4001d9e0ac170f07cfcf671baa06eafbdc170412e94a", + "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", + "receiptTrie": "0x76ad64f6308db609864c81c154e4e31f69f77b180f6e6abcc0126c8062982fb5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x032240", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x5d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02", + "s": "0x69b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xdd7a27a92391f614fe183adf097706a5415284d90a8611aa090f116bfac1b617", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1040", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "050-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_3208425794224c3f": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71ea0baebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24fa0c787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303224c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64afa04a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1dc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x738d7b0d4ecfc92c33bc85a7459539409c3afb0ec7282be253b91a459964e71e", + "transactionsTrie": "0xbaebc069a2a30182ede5e6ff232fbddf799b0296261aa1db9f0f290d1a78c24f", + "receiptTrie": "0xc787f58393e74b7115d9f2d353282ab2810a28498a85db4cb8d94d7b5239e15b", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03224c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0xe0e99a9b9d721ea19859ff421ecf4c9f93a0f889e44e37ab1eed8f5337ec64af", + "s": "0x4a02154ba84ccb9be41e523726b233a69c4d9d31eb439597178b968b8e6c6d1d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x80597272dcd6133f5a9a4ef9a68e8d043f714473bf81b32de54e2fc946c35b9e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea0fec", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "051-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_3ac8dc31e9aa6a70": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321a023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x02e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321", + "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c", + "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03221c", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x00", + "r": "0xcdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307", + "s": "0x6df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea113c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "052-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_c3d4322ec17fe7cd": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6a042814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9a0490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a01010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373a04b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x743fe046e9b8d686844a4f68f0b8af10f37bf2e64d131506c5417e048f5785d6", + "transactionsTrie": "0x42814b49a3b2b951f3854a765e6fc5cf5c639083e40c5ffa2202356905f921f9", + "receiptTrie": "0x490b5c8fc35fec021870f881c330c6034e503b53179152e33e6794d2a819e605", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0320cc", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x1010fd3a61c3d74461450afa223aa148e5eb10993e04e942635e293ceb5fa373", + "s": "0x4b3244a006b52d7d9b301b8f6854c428bc129821f52887efff046aa7026afef6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8d2ccab0973120f15fc7ca4924ba94818236ac335122c7c425b5ea0f2d078d7c", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1a6c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "053-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_poly_ffa6e97b97146517": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eeea076df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0a07497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830320d80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a06950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612a029650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdd2535692d92d180092116c77c02aaf3b70813dcdf18690d3b9d6fe2baae5eee", + "transactionsTrie": "0x76df6cc1db5d22eac5e69a4fbc66b0e42a1766e9f8bf4e181b8127af7159fdb0", + "receiptTrie": "0x7497b7d164ccff8cc1de53192611da363a4f48268df253dc03cd9d99010994c9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0320d8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "accessList": [], + "v": "0x01", + "r": "0x6950ed03f403ea96cf685db6b359e4e902254f56e9607e1732f605bcfed83612", + "s": "0x29650cc3a200b84afe703216fe8ef6b90cfc93d7a29e4584b9f36dd74e448053", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7043dc7cbd7df9965a9d033b51035b19dbfb57994ebe69978a00bcfe9f297526", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x00": "0x01", + "0x01": "0x1000", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", + "0x03": "0x40", + "0x04": "0x1000", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffea1a18", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "054-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_02e696ada7d4631d": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447a004a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336a04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259a054fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0e22425f3d01e5c3cb7eabad0387917efaef68d39428be7ccef698b103f3a447", + "transactionsTrie": "0x04a1a672778d9afe774909ac6c6933c9620db646e2e954a57da0f77e9a4f3336", + "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02878e", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0x8761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259", + "s": "0x54fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2bf9066ef813c361bc07e566cfd9227707ea9d12a45d04eb5a64b28566dcdcd1", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x02": "0x02", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x05": "0x02" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee4b1e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "055-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_05c1f3685f3393f0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa081cedcc5e151455b8cfaa3e3620332315ed1c9dccb4d9a5c624f2e9fabd8bf4ba0dfc81dd9f75d5269388597a628f4bbfa3b42025a7c7e350ace3592e6dd3763eda00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0b39ade89f9fa653e72b6bd7be08c068c0d69f81421abfb6ff9379714de9407d8a07e42b1e5ded69fc2589e6111e180ae8c2abf81ea948678cf6dcbb5261da2cb8dc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x81cedcc5e151455b8cfaa3e3620332315ed1c9dccb4d9a5c624f2e9fabd8bf4b", + "transactionsTrie": "0xdfc81dd9f75d5269388597a628f4bbfa3b42025a7c7e350ace3592e6dd3763ed", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028b42", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x48a9a2f705205705d42ee9e38fa00aa1a66a9a77e9c87721ff785d33cb62955a" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x00", + "r": "0xb39ade89f9fa653e72b6bd7be08c068c0d69f81421abfb6ff9379714de9407d8", + "s": "0x7e42b1e5ded69fc2589e6111e180ae8c2abf81ea948678cf6dcbb5261da2cb8d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x48a9a2f705205705d42ee9e38fa00aa1a66a9a77e9c87721ff785d33cb62955a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee3132", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "056-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_08f9e2f1cb3d39db": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa039e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddaba0cd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0a083f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52decb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c560c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07a036608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7ddc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x39e6cf2dc51e71cca21a7e661072775375f80ae2b1e15969b9156371f116ddab", + "transactionsTrie": "0xcd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0", + "receiptTrie": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028c56", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x00", + "r": "0x138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07", + "s": "0x36608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7dd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x9637178fc2f8dbc59d41492c68019a7332853fe334ff21ea1a2f82933f013d1e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee29a6", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "057-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_0cf79b17cb5f4ea2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15a059b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41ea00137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288f60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0f91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350ca05ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caac0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5c5af9dcb8db555f1af2b6266ba52a3a394e1ad52b5cca8267ef42167c48be15", + "transactionsTrie": "0x59b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41e", + "receiptTrie": "0x0137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0288f6", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0xf91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350c", + "s": "0x5ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caa", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xaadf9c81dd9cf97c4ccad1fbbd270fca7a0a383187bc8f2ec4223acf64da7a7e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee4146", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "058-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_177b58dc7a46b08f": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fcaba0e9e6c6b52ed02c1bc8b48f0cb3ea4a8c85627b43d74b5564f4ba9dcda9a0706b4ad700b9656ba5e879723ec7697ccc6a6dc07752d3c8a7bebf77de1ef05ca0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f5e4887e5e1f4ce69f241964fb510c9f8a226194ff37c2e06d42ef73900b5412a010fe7a90af6877e317f0b53edc461c33b88a364dd8b9ec5772a728de61b82a25c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfcaba0e9e6c6b52ed02c1bc8b48f0cb3ea4a8c85627b43d74b5564f4ba9dcda9", + "transactionsTrie": "0x706b4ad700b9656ba5e879723ec7697ccc6a6dc07752d3c8a7bebf77de1ef05c", + "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028b36", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe413da3b48c57fd7809244a84bd66db71393e69c97a8ab2b17f1bce08dd21d12" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e386375eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x00", + "r": "0xf5e4887e5e1f4ce69f241964fb510c9f8a226194ff37c2e06d42ef73900b5412", + "s": "0x10fe7a90af6877e317f0b53edc461c33b88a364dd8b9ec5772a728de61b82a25", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe413da3b48c57fd7809244a84bd66db71393e69c97a8ab2b17f1bce08dd21d12", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee3186", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "059-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_1ce8e4f69d5df899": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06def9d0ad1414d78220d49fd0dbd96ef29b953c4c3b492c0553d61b00b7e8a39a001c1479a842ee20dba3b2ecc393e48b3118cf90de0351765e50ebec46df61b63a036595bb2d5b0ca60db87f44279ba5dbab354471ad2aa0c19c6641019850ee5bbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028aee0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f1465569779b8337f00de6aeac881256198bd2db2fe95bc3127ad9e6440d9e4d1e785b455f55fcfe80a3434dc40f8e6df85be88c001a04667e403b9f9349babcf1c601584e9d5c0f8fe60b61516ef356dd8264afd71eca03f3b808f116b1fe59cc94b16f13a565759a1c64ac46f5390cd025c970d4abab8c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6def9d0ad1414d78220d49fd0dbd96ef29b953c4c3b492c0553d61b00b7e8a39", + "transactionsTrie": "0x01c1479a842ee20dba3b2ecc393e48b3118cf90de0351765e50ebec46df61b63", + "receiptTrie": "0x36595bb2d5b0ca60db87f44279ba5dbab354471ad2aa0c19c6641019850ee5bb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028aee", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf5af3659b136ee9673b4cba23488807bb07d754e8a9eee2df49296d39ea40506" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f1465569779b8337f00de6aeac881256198bd2db2fe95bc3127ad9e6440d9e4d1e785b455f55fcfe80a3434dc40f8e6df85be88", + "accessList": [], + "v": "0x01", + "r": "0x4667e403b9f9349babcf1c601584e9d5c0f8fe60b61516ef356dd8264afd71ec", + "s": "0x3f3b808f116b1fe59cc94b16f13a565759a1c64ac46f5390cd025c970d4abab8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf5af3659b136ee9673b4cba23488807bb07d754e8a9eee2df49296d39ea40506", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee337e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "060-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_26b753dec0560daa": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e31b37e7efd166a38a47e3cd2a0cc4309474cb222d48465f070e2799f9a01ad7a0327368ccb307f9315b3d6bde7cf9ede667c1cca396904096d5dc8c7bb81c3a1ca0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655690f53a4837bbde6ab0838fef0c0be5339ab03a78342c221cf6b2d6e465d01a3d47585a808c9d8d25dee885007deeb107c080a07b78f776e7375a5215e878f719cb37622be31a5407bfaa4542f9ffec24081a58a01ee0c5d868149b759a039cb2fff53ea2b70b41c61a16d2e887ef13b9e916f9ddc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe31b37e7efd166a38a47e3cd2a0cc4309474cb222d48465f070e2799f9a01ad7", + "transactionsTrie": "0x327368ccb307f9315b3d6bde7cf9ede667c1cca396904096d5dc8c7bb81c3a1c", + "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ef8e", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x88c8ee45373cb8fdd58e45bb0ef7582bdc6c9b92d398681d8ebeeb8059166e9b" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff0010000193efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655690f53a4837bbde6ab0838fef0c0be5339ab03a78342c221cf6b2d6e465d01a3d47585a808c9d8d25dee885007deeb107", + "accessList": [], + "v": "0x00", + "r": "0x7b78f776e7375a5215e878f719cb37622be31a5407bfaa4542f9ffec24081a58", + "s": "0x1ee0c5d868149b759a039cb2fff53ea2b70b41c61a16d2e887ef13b9e916f9dd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x88c8ee45373cb8fdd58e45bb0ef7582bdc6c9b92d398681d8ebeeb8059166e9b", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffffffffff2731e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "061-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_2b76dc9e3abf42f3": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09429e7ac59df28029f8a855b7d5828ff6427b9cbee52b021fa5fa9cecc27d5bea0f1cb0c9347f73759e25870b0e148e1a5c4380fcd8ccdd03432aa6cbe524a46d2a0c3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0afba91e74b2d8fde6720a6f8b4307fd13161c62f1ecad8a907833c582cb1208ea06398c153f32aa26863ae921c58dc6e8f9e7481fe399a385b235334ffab1e0267c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9429e7ac59df28029f8a855b7d5828ff6427b9cbee52b021fa5fa9cecc27d5be", + "transactionsTrie": "0xf1cb0c9347f73759e25870b0e148e1a5c4380fcd8ccdd03432aa6cbe524a46d2", + "receiptTrie": "0xc3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104ad", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0289ce", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa781a00cd99309c850001db11794c6c953434ebf9c766381f68558d7e64c10b2" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0xafba91e74b2d8fde6720a6f8b4307fd13161c62f1ecad8a907833c582cb1208e", + "s": "0x6398c153f32aa26863ae921c58dc6e8f9e7481fe399a385b235334ffab1e0267", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa781a00cd99309c850001db11794c6c953434ebf9c766381f68558d7e64c10b2", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x02": "0x01", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x05": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee3b5e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "062-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_31ebd010e6098750": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e4259768907803f444f41968be7cd43ce94a09e851e4464eb51712463320017a031ed5b16801e076fd201ad17bf100b3796b25848cc7b4a758297128eab3e9736a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b9b65c2ebc89e669cf19e82fb178f0d1e9c958edbebe9ead62e97e95e2dcdc4972729fb9661f0cae3532b71b2664a8c1c001a0b86399bbb8f067bd98625e32eae7f4a66ba16d099422e5a32ec5b1387ecc631ca0616335ec00e6632fc44c192dcd15f38ccd3432e8465f04e895964daf645a9e6fc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6e4259768907803f444f41968be7cd43ce94a09e851e4464eb51712463320017", + "transactionsTrie": "0x31ed5b16801e076fd201ad17bf100b3796b25848cc7b4a758297128eab3e9736", + "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028c86", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x39eecb29e875267c94781ff204e49aa8beb955c965511e0404459cc4cf48223e" }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x353148f56912dda2ed5bd1eb3a14fa0e126b4f1743ed45b1a94d70547fd5b876", - "receiptsRoot": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2878e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xcf0994448d6cee838c50b538f1f51d31a1f641f6cc8bf341232c7d609b6f9941", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259a054fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b9b65c2ebc89e669cf19e82fb178f0d1e9c958edbebe9ead62e97e95e2dcdc4972729fb9661f0cae3532b71b2664a8c1", + "accessList": [], + "v": "0x01", + "r": "0xb86399bbb8f067bd98625e32eae7f4a66ba16d099422e5a32ec5b1387ecc631c", + "s": "0x616335ec00e6632fc44c192dcd15f38ccd3432e8465f04e895964daf645a9e6f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x39eecb29e875267c94781ff204e49aa8beb955c965511e0404459cc4cf48223e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee2856", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "063-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3208425794224c3f": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bca0205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803a0cd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289020c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a07b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91a02702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6e87773a08f8c44ef60f7898cd7f2ca9fce264b2b52719ad25510ddb4c31f7bc", + "transactionsTrie": "0x205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803", + "receiptTrie": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028902", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9" }, "blocknumber": "1", "transactions": [ @@ -5756,11 +8363,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], "v": "0x01", - "r": "0x8761665c3a5d13e6401af73e293937ce67e0f9b511a94523dced29ded92ad259", - "s": "0x54fb9fc63cbde05ac268934026e7f85f40aa7c560dea58416b29fff253b39a26", + "r": "0x7b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91", + "s": "0x2702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5768,11 +8375,69 @@ "withdrawals": [] } ], + "lastblockhash": "0x3a248ed15469adbdef1a0b9e4f0e400c0eb1d5d0314fb1c3259dbdfa97465ad9", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xffffffffffffee40f2", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "064-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_36817bfd67de97a8": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5789,24 +8454,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcf0994448d6cee838c50b538f1f51d31a1f641f6cc8bf341232c7d609b6f9941", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9aa02d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980a0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a063ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629a00656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38fc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdda1f9159556121e66cd02e004631ec49b7038a279d4d70cfba505e83425af9a", + "transactionsTrie": "0x2d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980", + "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01ef8e", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x01", + "r": "0x63ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629", + "s": "0x0656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x795c35516a954acd112950c0ac68995946a3f1dc097971fd3cbc9d829770f72b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5815,55 +8527,208 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffffffffff2731e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "065-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_392169c16a2e5ef6": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ba8c269b2a19e3608f3fd4d09f23cb33c06ca68d03b3c4a07a918f7c024aecada01d32d6ddadd17afd9016df4ed386d5960b3132964e575b909398229cf0b540e3a06ac4d31628e4cf708bb4bcdb44386bb20f55b55797f7b99afd3f3bfd0c1d2cbdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c4a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b08a5afbb1717334e08e05576b07bff58e8851d8cfd9ea71da1ab4233ad4217cffabd669dfa89c3ebf4c44f91694a2f4c080a051a8ecabbd377c69896eefaf1dd4dfe9fa9c9530d93ae9a680cf5bda84ee627ba0731da720547d59f22378597d07dcf4f7ca90a80a91e749b6bc95175004a72ba7c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xba8c269b2a19e3608f3fd4d09f23cb33c06ca68d03b3c4a07a918f7c024aecad", + "transactionsTrie": "0x1d32d6ddadd17afd9016df4ed386d5960b3132964e575b909398229cf0b540e3", + "receiptTrie": "0x6ac4d31628e4cf708bb4bcdb44386bb20f55b55797f7b99afd3f3bfd0c1d2cbd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028c4a", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xda1bb2777e9f329fdb55082922f142ae55bfa0d1ffe0ca298f1c040a7b46ec01" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b08a5afbb1717334e08e05576b07bff58e8851d8cfd9ea71da1ab4233ad4217cffabd669dfa89c3ebf4c44f91694a2f4", + "accessList": [], + "v": "0x00", + "r": "0x51a8ecabbd377c69896eefaf1dd4dfe9fa9c9530d93ae9a680cf5bda84ee627b", + "s": "0x731da720547d59f22378597d07dcf4f7ca90a80a91e749b6bc95175004a72ba7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xda1bb2777e9f329fdb55082922f142ae55bfa0d1ffe0ca298f1c040a7b46ec01", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x02": "0x02", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x05": "0x02" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4b1e", + "balance": "0xffffffffffffee29fa", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "037-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_08f9e2f1cb3d39db": { + "066-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_395cf6d697d1a743": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0356b0d34854ae583209e5ad79e4d427720b95c0d65ff2f263364187602058287a0cd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0a083f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52decb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c560c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07a036608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7ddc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0299c5b530200b11d96ef2e2ecabf80996751ad88becd73c8e67419ca60acce1ba026137c7a0a83c44a82cbbba0cd3a3426a781c171631723143d511240c5ca5602a04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a00edc24906c0d89c890a0cf653889e60575cc48709b3227d3d8bf9c57a8d32c42a01cf77a2f5521b8ed5c0a73a053b700df4d5c016582ed1b8a860513aa0149a6b9c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x356b0d34854ae583209e5ad79e4d427720b95c0d65ff2f263364187602058287", - "transactionsTrie": "0xcd4a8874e3ccc776436970a3ba0461faff62b1912c230c3c4c6557ad49b4c7a0", - "receiptTrie": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec", + "stateRoot": "0x299c5b530200b11d96ef2e2ecabf80996751ad88becd73c8e67419ca60acce1b", + "transactionsTrie": "0x26137c7a0a83c44a82cbbba0cd3a3426a781c171631723143d511240c5ca5602", + "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c56", + "gasUsed": "0x028b12", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5873,33 +8738,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb97453f7dd74388eda9f711b93afee5e226a6e6afc8892211573dd4fe80af40a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x356b0d34854ae583209e5ad79e4d427720b95c0d65ff2f263364187602058287", - "receiptsRoot": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28c56", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb97453f7dd74388eda9f711b93afee5e226a6e6afc8892211573dd4fe80af40a", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07a036608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7dd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x74e52ba457f703d775a4ab85909ca078c04f95377230044767e836ab70e005e0" }, "blocknumber": "1", "transactions": [ @@ -5912,11 +8751,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863773eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], - "v": "0x00", - "r": "0x138f4598d3fab348fa26ad425e18899aa3d817f186dd71b8fba816f8e9efbc07", - "s": "0x36608175642866b67209115f33ad78a2694b0780298733f4b02b5f6ff005a7dd", + "v": "0x01", + "r": "0x0edc24906c0d89c890a0cf653889e60575cc48709b3227d3d8bf9c57a8d32c42", + "s": "0x1cf77a2f5521b8ed5c0a73a053b700df4d5c016582ed1b8a860513aa0149a6b9", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5924,45 +8763,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb97453f7dd74388eda9f711b93afee5e226a6e6afc8892211573dd4fe80af40a", - "network": "Cancun", + "lastblockhash": "0x74e52ba457f703d775a4ab85909ca078c04f95377230044767e836ab70e005e0", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -5971,55 +8785,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee29a6", + "balance": "0xffffffffffffee3282", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "038-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_0cf79b17cb5f4ea2": { + "067-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3ac8dc31e9aa6a70": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08683b15d73bbf9ba77ef8c002c9287334deb7955c9da9a0251f687ac93cd65dca059b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41ea00137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288f60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0f91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350ca05ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caac0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa022029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdda040fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36a04f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288d20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0d59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711a044695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8683b15d73bbf9ba77ef8c002c9287334deb7955c9da9a0251f687ac93cd65dc", - "transactionsTrie": "0x59b133d3794635a7043f7a7826dc0924f752bc73929beb3509fbd22e38f3a41e", - "receiptTrie": "0x0137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71", + "stateRoot": "0x22029c17ab92f037e59e0ba8ec64e912c412700b2c15cc6eeb2e644f70e61bdd", + "transactionsTrie": "0x40fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36", + "receiptTrie": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288f6", + "gasUsed": "0x0288d2", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6029,33 +8868,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf6858946bcc64cf80348d9698e62c8ef59d373b69bece1999b0fbad0b888dc7b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8683b15d73bbf9ba77ef8c002c9287334deb7955c9da9a0251f687ac93cd65dc", - "receiptsRoot": "0x0137d25b707ed6f768d807427031584abda32d29bdf30c6dc20e35221b7dee71", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x288f6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf6858946bcc64cf80348d9698e62c8ef59d373b69bece1999b0fbad0b888dc7b", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0f91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350ca05ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2" }, "blocknumber": "1", "transactions": [ @@ -6068,11 +8881,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], "v": "0x01", - "r": "0xf91fb7dc93c1e45a397410e8555d53c57e240832059c43a034a2d7d40d26350c", - "s": "0x5ed9468f5eb17b11ad7c487d78e5abb72a1062ac9417b9e01ee45e48133d7caa", + "r": "0xd59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711", + "s": "0x44695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6080,45 +8893,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf6858946bcc64cf80348d9698e62c8ef59d373b69bece1999b0fbad0b888dc7b", - "network": "Cancun", + "lastblockhash": "0x3b793c97e7cf41ffd4ab376fbc35aec0b1aa43703d86887f8248dc9e078d7ce2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -6127,55 +8915,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4146", + "balance": "0xffffffffffffee4242", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "039-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_1ce8e4f69d5df899": { + "068-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c1e8b38219e3e12": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa067bb58796d9fea7a3f4cc3bc0a26176a866b750db5969f7b123a6adf9436d505a0c877a5cab973d3df9d8529a1ffab304f9adb6abfa2828f2745fac067091fa5c2a09898e4ea9bbc664488836d4ad0d3e82bd01b55dba40db65968e5c4e66c1ffae8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028afa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa491b284078832f22a229c6fb9c60670bbbcc13142ad50a9f53e3f2fa32e673416ce59d1dd05921cbb37f91bec352ad6c080a08f2d0d903f9a69f0f7faf08dc7f891727577d47be1af7039d7caa68cd4edd376a079682da2d7a619433763d3575d05b714599de53ddef69c7e7707f5df419c3873c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07e4d76ac2b0df15645c3571bc7e7f52eeb67931608821360c7ad00841cdeb843a022e3736e7714f6520883f48744fe62b864a0198b546b7fde17d8225771051068a015a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efb20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0690559bfd8e58f5d144588a1a959c93aba58607777e09893f088e404eb2dc47c0269ed8e47c1be79ea07ae726abd921a8c001a0c69dba776ee7fc0ff07d22a68e8f77c8c4f7a695718d46492f46a850fe230ac8a052f857bee68427dd67b549d740d256b27c58000781c2b7094e1fb5d59df074a5c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x67bb58796d9fea7a3f4cc3bc0a26176a866b750db5969f7b123a6adf9436d505", - "transactionsTrie": "0xc877a5cab973d3df9d8529a1ffab304f9adb6abfa2828f2745fac067091fa5c2", - "receiptTrie": "0x9898e4ea9bbc664488836d4ad0d3e82bd01b55dba40db65968e5c4e66c1ffae8", + "stateRoot": "0x7e4d76ac2b0df15645c3571bc7e7f52eeb67931608821360c7ad00841cdeb843", + "transactionsTrie": "0x22e3736e7714f6520883f48744fe62b864a0198b546b7fde17d8225771051068", + "receiptTrie": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028afa", + "gasUsed": "0x01efb2", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6185,33 +8998,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x02ec603600111a1a72b680df006109432bb26a50f87489b060923368f16c398d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x67bb58796d9fea7a3f4cc3bc0a26176a866b750db5969f7b123a6adf9436d505", - "receiptsRoot": "0x9898e4ea9bbc664488836d4ad0d3e82bd01b55dba40db65968e5c4e66c1ffae8", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28afa", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x02ec603600111a1a72b680df006109432bb26a50f87489b060923368f16c398d", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa491b284078832f22a229c6fb9c60670bbbcc13142ad50a9f53e3f2fa32e673416ce59d1dd05921cbb37f91bec352ad6c080a08f2d0d903f9a69f0f7faf08dc7f891727577d47be1af7039d7caa68cd4edd376a079682da2d7a619433763d3575d05b714599de53ddef69c7e7707f5df419c3873" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x7efe244e361cce42aec862a1fc202dcf43c59e2aa6d683871fb736a4be996808" }, "blocknumber": "1", "transactions": [ @@ -6224,11 +9011,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc573eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa491b284078832f22a229c6fb9c60670bbbcc13142ad50a9f53e3f2fa32e673416ce59d1dd05921cbb37f91bec352ad6", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0690559bfd8e58f5d144588a1a959c93aba58607777e09893f088e404eb2dc47c0269ed8e47c1be79ea07ae726abd921a8", "accessList": [], - "v": "0x00", - "r": "0x8f2d0d903f9a69f0f7faf08dc7f891727577d47be1af7039d7caa68cd4edd376", - "s": "0x79682da2d7a619433763d3575d05b714599de53ddef69c7e7707f5df419c3873", + "v": "0x01", + "r": "0xc69dba776ee7fc0ff07d22a68e8f77c8c4f7a695718d46492f46a850fe230ac8", + "s": "0x52f857bee68427dd67b549d740d256b27c58000781c2b7094e1fb5d59df074a5", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6236,11 +9023,67 @@ "withdrawals": [] } ], + "lastblockhash": "0x7efe244e361cce42aec862a1fc202dcf43c59e2aa6d683871fb736a4be996808", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", + "storage": { + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0xfffffffffffff27222", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "069-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c87ec986c2656c2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", + "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6257,24 +9100,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x02ec603600111a1a72b680df006109432bb26a50f87489b060923368f16c398d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06241a15c2149162920c03d1fa9437a584b091e0cef0c7886b94c359410c0bcb8a0e3163457bd43bb4bf5bd15effc030781b0e413b8029057ad42857d61b412238ca08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068d72dc4eec977090f452b412a6b0a3cdced2ea6b622ebb6e289c7e05d85cc715b93eca244123c84a60b3ecbf33373903c080a0af068027110a9a1b3a0edbc32d0f5f03df92826848631eb0ee5d267e09a93973a003e93ae2f5ee3fcb798537a2bcff0513c4730f14ae889dcf5848d63af12c1542c0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6241a15c2149162920c03d1fa9437a584b091e0cef0c7886b94c359410c0bcb8", + "transactionsTrie": "0xe3163457bd43bb4bf5bd15effc030781b0e413b8029057ad42857d61b412238c", + "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028caa", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc202486b5aaf3f2f775caeb216a4d5e642e54069b68dff0aed40c47f4d4d0310" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068d72dc4eec977090f452b412a6b0a3cdced2ea6b622ebb6e289c7e05d85cc715b93eca244123c84a60b3ecbf33373903", + "accessList": [], + "v": "0x00", + "r": "0xaf068027110a9a1b3a0edbc32d0f5f03df92826848631eb0ee5d267e09a93973", + "s": "0x03e93ae2f5ee3fcb798537a2bcff0513c4730f14ae889dcf5848d63af12c1542", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc202486b5aaf3f2f775caeb216a4d5e642e54069b68dff0aed40c47f4d4d0310", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -6283,55 +9173,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee332a", + "balance": "0xffffffffffffee275a", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "040-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_26b753dec0560daa": { + "070-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3cd183d0bab85fb7": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d8d4f025cff94090ea9cd700e88152279ef06b9a212491bd34a5ac3485893afaa047df3d451616073f0c46b135f19c2cd8d2d26d1daa6746c82b7aec1233a106c5a0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef83bdb1c6f172d8e30a58533d4df96d9133b7ee293ae76777d60454cb35ef28f08634a794dc098baa22499347ab9a00dbc001a04e4d3b0553b0ce6f210dd5b7729abd38c8bfb0a79e2dd75ade44837a02f8b699a028a151bb6e7fb9e7c0960dca0ff2433fa92f30af940e3a3162d2ddf36c0d8317c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9a08d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0fa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1a013b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd8d4f025cff94090ea9cd700e88152279ef06b9a212491bd34a5ac3485893afa", - "transactionsTrie": "0x47df3d451616073f0c46b135f19c2cd8d2d26d1daa6746c82b7aec1233a106c5", - "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", + "stateRoot": "0xf11f417e8bae34179422999fe7455f99f02d51e30f5e10071f220cc0493385c9", + "transactionsTrie": "0x8d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0f", + "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ef8e", + "gasUsed": "0x028b12", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6341,33 +9256,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0c65ba05178b6ee7d206ffd25bbc5a3a280c8b2e46ce6adceeddc13fb128a34b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd8d4f025cff94090ea9cd700e88152279ef06b9a212491bd34a5ac3485893afa", - "receiptsRoot": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1ef8e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0c65ba05178b6ee7d206ffd25bbc5a3a280c8b2e46ce6adceeddc13fb128a34b", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef83bdb1c6f172d8e30a58533d4df96d9133b7ee293ae76777d60454cb35ef28f08634a794dc098baa22499347ab9a00dbc001a04e4d3b0553b0ce6f210dd5b7729abd38c8bfb0a79e2dd75ade44837a02f8b699a028a151bb6e7fb9e7c0960dca0ff2433fa92f30af940e3a3162d2ddf36c0d8317" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93" }, "blocknumber": "1", "transactions": [ @@ -6380,11 +9269,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000073e66878b46ae3705eb6a46a89213de7d3686828bfce5c19400fffff00100001b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef83bdb1c6f172d8e30a58533d4df96d9133b7ee293ae76777d60454cb35ef28f08634a794dc098baa22499347ab9a00db", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], - "v": "0x01", - "r": "0x4e4d3b0553b0ce6f210dd5b7729abd38c8bfb0a79e2dd75ade44837a02f8b699", - "s": "0x28a151bb6e7fb9e7c0960dca0ff2433fa92f30af940e3a3162d2ddf36c0d8317", + "v": "0x00", + "r": "0xf544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1", + "s": "0x13b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6392,45 +9281,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0c65ba05178b6ee7d206ffd25bbc5a3a280c8b2e46ce6adceeddc13fb128a34b", - "network": "Cancun", + "lastblockhash": "0x891b49a6e9dee5146ee52cc39214aaf0859d66e8389dd04c270240b32eb52e93", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -6439,53 +9303,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5" + "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x02": "0x01", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x05": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff2731e", + "balance": "0xffffffffffffee3282", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "041-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_31ebd010e6098750": { + "071-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_420f2a187ce77035": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aa8db722baae28f081ea8d22fa9c42fc6c723fa8c5fd19a0f996aac77a081ddaa016e366da44ee70919f94af4fba55fec79c21429b6a9a06da898265fbb4ee561ca0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069418eb9a7cf2fa71125962f6662afeac10a7f1bbe26365995b13f6840946da49f79c7dfdd80b5b8a50bf44758cd2a96dc080a077bca430e29f42ee9fcf1bd0bb97c0cbd8aa51ab3d742a52225b54a10daecf59a005a3ff3f93541e45ee480e9561a3b5d258a4b794ceb886283c60feb42d7b29dcc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa056164955e64cd598a56f6fdf5963af909fe75c843b88177a591ccfedec7be414a03e4c33039985eb4cd95f351f90afbf4debb2c72837827bf11b671b48889288a4a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0699c282db3a79a9ec1553306515e6a71dc43df1ddbd1dbd9d5b71f3c1798ef482f5e1fd84500b0e47c82f72a189ecd526c080a061e86dce798f049f3daa21f7121bceb8fbefe76ae92ac372cf77e84fdc97ca70a02d3166503ca948988089c8337198ddc63f92bfd9930c718494550f90e1bd4291c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaa8db722baae28f081ea8d22fa9c42fc6c723fa8c5fd19a0f996aac77a081dda", - "transactionsTrie": "0x16e366da44ee70919f94af4fba55fec79c21429b6a9a06da898265fbb4ee561c", - "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", + "stateRoot": "0x56164955e64cd598a56f6fdf5963af909fe75c843b88177a591ccfedec7be414", + "transactionsTrie": "0x3e4c33039985eb4cd95f351f90afbf4debb2c72837827bf11b671b48889288a4", + "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c86", + "gasUsed": "0x028b36", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6495,33 +9386,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1be2423da0e33c56c09a5984acccbc572de1abfaa7dab4b89f11ebb9b0ec8792" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaa8db722baae28f081ea8d22fa9c42fc6c723fa8c5fd19a0f996aac77a081dda", - "receiptsRoot": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28c86", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x1be2423da0e33c56c09a5984acccbc572de1abfaa7dab4b89f11ebb9b0ec8792", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069418eb9a7cf2fa71125962f6662afeac10a7f1bbe26365995b13f6840946da49f79c7dfdd80b5b8a50bf44758cd2a96dc080a077bca430e29f42ee9fcf1bd0bb97c0cbd8aa51ab3d742a52225b54a10daecf59a005a3ff3f93541e45ee480e9561a3b5d258a4b794ceb886283c60feb42d7b29dc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4eee5677efbb90149fb01702b062eec73f36d16cf950e2ee93e96ec499a11664" }, "blocknumber": "1", "transactions": [ @@ -6534,11 +9399,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000001522a4a7f34e1ea350ae07c29c96c7e79655aa926122e95fe69fcbd932ca49e9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069418eb9a7cf2fa71125962f6662afeac10a7f1bbe26365995b13f6840946da49f79c7dfdd80b5b8a50bf44758cd2a96d", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0699c282db3a79a9ec1553306515e6a71dc43df1ddbd1dbd9d5b71f3c1798ef482f5e1fd84500b0e47c82f72a189ecd526", "accessList": [], "v": "0x00", - "r": "0x77bca430e29f42ee9fcf1bd0bb97c0cbd8aa51ab3d742a52225b54a10daecf59", - "s": "0x05a3ff3f93541e45ee480e9561a3b5d258a4b794ceb886283c60feb42d7b29dc", + "r": "0x61e86dce798f049f3daa21f7121bceb8fbefe76ae92ac372cf77e84fdc97ca70", + "s": "0x2d3166503ca948988089c8337198ddc63f92bfd9930c718494550f90e1bd4291", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6546,45 +9411,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1be2423da0e33c56c09a5984acccbc572de1abfaa7dab4b89f11ebb9b0ec8792", - "network": "Cancun", + "lastblockhash": "0x4eee5677efbb90149fb01702b062eec73f36d16cf950e2ee93e96ec499a11664", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -6593,55 +9433,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x02", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x02" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2856", + "balance": "0xffffffffffffee3186", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "042-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3208425794224c3f": { + "072-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_444b73ff54a19b44": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2177f7f093ba683925f28cc5dcc666016d5d6bf5ee4ccef992058d9582757ada0205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803a0cd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289020c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a07b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91a02702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aae4765ea23fd258c9029e07b3a595ea46d696a4e078f103ab53e47740efb427a0a0e8d19a40519a4f277d0f4d4b7962b52451e385473436a3ad5914c92491736ca00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa7de1e32bb336b85e42ff5028167042188317299333f091dd88675e84a550577bfa564b2f57cd2498e2acf875e0aaa40c080a0e838bc6da93976ed68fc58ec34849bdba4354e6da426878704c0c1b3ba9c5c5ca07ea0ef8fb9bf87cdb0ad50de6cef1036b6a7cdbbfbe4d5a4578b22eac52e3f0fc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2177f7f093ba683925f28cc5dcc666016d5d6bf5ee4ccef992058d9582757ad", - "transactionsTrie": "0x205437291c8e84cf67c9f9401eb82e108a0e317929c0b9debc4f3ae42d726803", - "receiptTrie": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a", + "stateRoot": "0xaae4765ea23fd258c9029e07b3a595ea46d696a4e078f103ab53e47740efb427", + "transactionsTrie": "0xa0e8d19a40519a4f277d0f4d4b7962b52451e385473436a3ad5914c92491736c", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028902", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6651,33 +9516,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaeff4848e2eead82179c9411ebf1b237f98cc7a7b112a9a48659b91e5580d87e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc2177f7f093ba683925f28cc5dcc666016d5d6bf5ee4ccef992058d9582757ad", - "receiptsRoot": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28902", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xaeff4848e2eead82179c9411ebf1b237f98cc7a7b112a9a48659b91e5580d87e", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a07b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91a02702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x16073147d8938eb28e4cd85ebf8d2bfa5fd40ed95c2a212c65d4cd2eeebd8347" }, "blocknumber": "1", "transactions": [ @@ -6690,57 +9529,32 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa7de1e32bb336b85e42ff5028167042188317299333f091dd88675e84a550577bfa564b2f57cd2498e2acf875e0aaa40", "accessList": [], - "v": "0x01", - "r": "0x7b00950cae46ca7dddd42071e9d1a802d65ceacaf5c214ea7b512d1a87acab91", - "s": "0x2702113e47c769a2e58b09d34a6276ce3af5c31a516b578927aed109be75efc8", + "v": "0x00", + "r": "0xe838bc6da93976ed68fc58ec34849bdba4354e6da426878704c0c1b3ba9c5c5c", + "s": "0x7ea0ef8fb9bf87cdb0ad50de6cef1036b6a7cdbbfbe4d5a4578b22eac52e3f0f", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xaeff4848e2eead82179c9411ebf1b237f98cc7a7b112a9a48659b91e5580d87e", - "network": "Cancun", + ], + "lastblockhash": "0x16073147d8938eb28e4cd85ebf8d2bfa5fd40ed95c2a212c65d4cd2eeebd8347", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -6749,55 +9563,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x02": "0x01", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x05": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee40f2", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "043-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_36817bfd67de97a8": { + "073-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_53a9bdf4f75196da": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa025f41d3c6af806228e32cc7b399004448ff15e44f8217b8e8ea3af8d59e54724a02d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980a0f521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ef8e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a063ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629a00656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa078d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7a09d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0a2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aaa020cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x25f41d3c6af806228e32cc7b399004448ff15e44f8217b8e8ea3af8d59e54724", - "transactionsTrie": "0x2d53b4e174b17f7935bd731e76f8c46e7dd22b4cb42f3851e6514ed31d7e9980", - "receiptTrie": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", + "stateRoot": "0x78d747da9de7ebbee4ee9a946d030d50490e82afc073f5061b9ea13a9c79a0a7", + "transactionsTrie": "0x9d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63", + "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ef8e", + "gasUsed": "0x028c86", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6807,33 +9646,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7a96758528f3a35c2e8cae5bcbc337f515e780f6cef893eb3e0958ee83b43b0d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x25f41d3c6af806228e32cc7b399004448ff15e44f8217b8e8ea3af8d59e54724", - "receiptsRoot": "0xf521defef700cc1dbe52bf6fa2da712b09b13684d78fa9cef3a24ac4e957b0c7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1ef8e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7a96758528f3a35c2e8cae5bcbc337f515e780f6cef893eb3e0958ee83b43b0d", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a063ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629a00656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263" }, "blocknumber": "1", "transactions": [ @@ -6846,11 +9659,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], "v": "0x01", - "r": "0x63ffad823cb44d2b1681b052aa1a1c5550a5649cf6f656a2ddd3d8bbeda00629", - "s": "0x0656fc4928d944dbb9b9c25c6c31ed336de7b7295f4ab5b3ae781a74628bf38f", + "r": "0xa2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aa", + "s": "0x20cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -6858,45 +9671,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7a96758528f3a35c2e8cae5bcbc337f515e780f6cef893eb3e0958ee83b43b0d", - "network": "Cancun", + "lastblockhash": "0x02d19ba523b823f30262596ba1811ea38c5af4f75403dc0bb00aad8b57e41263", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -6905,53 +9693,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0" + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff2731e", + "balance": "0xffffffffffffee2856", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "044-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_392169c16a2e5ef6": { + "074-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_585454b31673dd62": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bc1652f363f8c2f130c3fb789db20c1c36393f589d8e399fa07fe3804ca9c328a01135f23b1017406399e3a232f6d305578d7e81011a890c95f7e965496d328319a083f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52decb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c560c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c981b26a6f4606710d329c8977ba35d907358aa9a4cc288ff6e4be5f251cab25118f206b22d030b6c2aa82444d1accc73cc001a0e4c7d1f35c41466d04ecb67f27e34fca0a34133fd161532be2336908cbd32b5aa060f26c309a100b0bc5d9ff09f57e1da7829afc0de175bf7e2ddecba3a5399fa8c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08992a363366498252008e0a40a192808c63f3189584701084b1446bcd2ffa883a0052c9d9f520ab6ab07860f7febf09202053dba23a6cbbef0f78a15a4a7b6c697a0749032247246bcdf2492dea7e7ef5b1105456aff8ad398d97bc96f6fc940b88ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ee4a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0077feb8e62d60659f7cf3e1c36536812e6218a3db1cc00c45fc3b2b19a5e560fa05ecfbc251e54d486a7c24ad00828f0a2c598ec458b2843d8c5bd8b6cb9579d14c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbc1652f363f8c2f130c3fb789db20c1c36393f589d8e399fa07fe3804ca9c328", - "transactionsTrie": "0x1135f23b1017406399e3a232f6d305578d7e81011a890c95f7e965496d328319", - "receiptTrie": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec", + "stateRoot": "0x8992a363366498252008e0a40a192808c63f3189584701084b1446bcd2ffa883", + "transactionsTrie": "0x052c9d9f520ab6ab07860f7febf09202053dba23a6cbbef0f78a15a4a7b6c697", + "receiptTrie": "0x749032247246bcdf2492dea7e7ef5b1105456aff8ad398d97bc96f6fc940b88a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c56", + "gasUsed": "0x01ee4a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -6961,33 +9776,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x214c16f8945b24ec30bc272a37ba1ab9962e3d45971931cada5c6c8dbffb90c6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbc1652f363f8c2f130c3fb789db20c1c36393f589d8e399fa07fe3804ca9c328", - "receiptsRoot": "0x83f1c2472613f4662d5c53d4a072c8494e1b1885b48d55c40c2655e5c8b52dec", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28c56", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x214c16f8945b24ec30bc272a37ba1ab9962e3d45971931cada5c6c8dbffb90c6", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c981b26a6f4606710d329c8977ba35d907358aa9a4cc288ff6e4be5f251cab25118f206b22d030b6c2aa82444d1accc73cc001a0e4c7d1f35c41466d04ecb67f27e34fca0a34133fd161532be2336908cbd32b5aa060f26c309a100b0bc5d9ff09f57e1da7829afc0de175bf7e2ddecba3a5399fa8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x531806dc481358b4241cba942a7e7a7125cbb813b86f2b2b09a7539cff8373c7" }, "blocknumber": "1", "transactions": [ @@ -7000,11 +9789,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffc991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c981b26a6f4606710d329c8977ba35d907358aa9a4cc288ff6e4be5f251cab25118f206b22d030b6c2aa82444d1accc73c", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], - "v": "0x01", - "r": "0xe4c7d1f35c41466d04ecb67f27e34fca0a34133fd161532be2336908cbd32b5a", - "s": "0x60f26c309a100b0bc5d9ff09f57e1da7829afc0de175bf7e2ddecba3a5399fa8", + "v": "0x00", + "r": "0x077feb8e62d60659f7cf3e1c36536812e6218a3db1cc00c45fc3b2b19a5e560f", + "s": "0x5ecfbc251e54d486a7c24ad00828f0a2c598ec458b2843d8c5bd8b6cb9579d14", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7012,45 +9801,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x214c16f8945b24ec30bc272a37ba1ab9962e3d45971931cada5c6c8dbffb90c6", - "network": "Cancun", + "lastblockhash": "0x531806dc481358b4241cba942a7e7a7125cbb813b86f2b2b09a7539cff8373c7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -7059,55 +9823,78 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee29a6", + "balance": "0xfffffffffffff27bfa", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "045-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3ac8dc31e9aa6a70": { + "075-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_7db4f140a955dd1a": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa031919ceff366fd33c351b5afe418722cc5d4cd90694f1020a8d002e6b36b2827a040fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36a04f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288d20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0d59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711a044695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0074375b4e26cb4890811c8636d0b2089d16b8245bc87947284d72833bf12fdf8a09245dc33b6e0a0c509f1b5bdf5c19bd155f8cac6073b6d0145d08b27de9920e7a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab0ac600174134691bf9d91fee448b4d58c127356567da1c456b9c38468909d4effe6b7faa11177e1f96ee5d2834df001c001a0a86d998ae0119a44401fa600566292d72a11f152a1191ab72d3cf3a6ca9fb1f6a07169941cc11fd5f2d59d4f0c2e502284963004b431ca9d7a6795ae6d7b2d6f63c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x31919ceff366fd33c351b5afe418722cc5d4cd90694f1020a8d002e6b36b2827", - "transactionsTrie": "0x40fa52183610ba4bcd5e403a72033079377413bd8f69a04421e0093b3e1aed36", - "receiptTrie": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9", + "stateRoot": "0x074375b4e26cb4890811c8636d0b2089d16b8245bc87947284d72833bf12fdf8", + "transactionsTrie": "0x9245dc33b6e0a0c509f1b5bdf5c19bd155f8cac6073b6d0145d08b27de9920e7", + "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288d2", + "gasUsed": "0x028c86", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7117,33 +9904,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x96ef1d31c0b946fd5d176bc69ca63dfaa85a27a852fb218d2fd8d58ffd473036" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x31919ceff366fd33c351b5afe418722cc5d4cd90694f1020a8d002e6b36b2827", - "receiptsRoot": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x288d2", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x96ef1d31c0b946fd5d176bc69ca63dfaa85a27a852fb218d2fd8d58ffd473036", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0d59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711a044695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb8bfdd892d2a24d678e3fcb28f49b561fe995ef60dc0e59843621f9394055b92" }, "blocknumber": "1", "transactions": [ @@ -7152,61 +9913,36 @@ "chainId": "0x01", "nonce": "0x00", "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", - "accessList": [], - "v": "0x01", - "r": "0xd59e9b6c29a6d864bba86e554f74eeb8211ecdd35213e65d365b60d84f24d711", - "s": "0x44695d5189a953a40af706a9770fdc2c1e72b3153e2b8a251d431bc54bf20ad1", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x96ef1d31c0b946fd5d176bc69ca63dfaa85a27a852fb218d2fd8d58ffd473036", - "network": "Cancun", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193ab0ac600174134691bf9d91fee448b4d58c127356567da1c456b9c38468909d4effe6b7faa11177e1f96ee5d2834df001", + "accessList": [], + "v": "0x01", + "r": "0xa86d998ae0119a44401fa600566292d72a11f152a1191ab72d3cf3a6ca9fb1f6", + "s": "0x7169941cc11fd5f2d59d4f0c2e502284963004b431ca9d7a6795ae6d7b2d6f63", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb8bfdd892d2a24d678e3fcb28f49b561fe995ef60dc0e59843621f9394055b92", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -7215,55 +9951,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4242", + "balance": "0xffffffffffffee2856", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "046-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c1e8b38219e3e12": { + "076-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_83e53423a2dd93fe": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00cc72fe5d018951827bfc3c3be6530d3817531660317aa82b0e2855c663b8c88a0c0ffe6a49e8f0cb18a75c29ec80824e5bc16f1905698046f5f936803a382aa9ca0045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efbe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c987e0d60304667f4f331765a966bd70a196805dd852362d3cc163b8e675d1c504a88a6e3dcc5a766a4f1fbfdb98ea45ecc080a0346847cf63701b3b615645a136e625833946627e1eeb29bcf7ff7b60171f983da05138ab6b939e37acdcc2afe23079bab2b66902f4e03c4cac04aada5a6fa563f6c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67feda0571eb623c63bf49bc742f8b50b57b4fa7c1a4813d5de5c77c82932caffb01d32a07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068e3069b19e6e71aed9b7dc8fbba13e4217d91cfc59be47cfaa7d09ef626242517541992c0f76091ddabf271682cc7c2cc001a0f8b90b4c2fdf0672d13117c0776b52d30e44b838cac9ba6292a51711f9e565aba030b06f921d772eeb002ce651a2802bb91498bdf15f32152e01e07f5f003ecae3c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0cc72fe5d018951827bfc3c3be6530d3817531660317aa82b0e2855c663b8c88", - "transactionsTrie": "0xc0ffe6a49e8f0cb18a75c29ec80824e5bc16f1905698046f5f936803a382aa9c", - "receiptTrie": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed", + "stateRoot": "0xc86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67fed", + "transactionsTrie": "0x571eb623c63bf49bc742f8b50b57b4fa7c1a4813d5de5c77c82932caffb01d32", + "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01efbe", + "gasUsed": "0x028b06", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7273,33 +10034,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4c96c767cfb5b537008a9641330d6f9c81cd1ac6e1adc7540022f885785a8ff6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0cc72fe5d018951827bfc3c3be6530d3817531660317aa82b0e2855c663b8c88", - "receiptsRoot": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1efbe", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4c96c767cfb5b537008a9641330d6f9c81cd1ac6e1adc7540022f885785a8ff6", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c987e0d60304667f4f331765a966bd70a196805dd852362d3cc163b8e675d1c504a88a6e3dcc5a766a4f1fbfdb98ea45ecc080a0346847cf63701b3b615645a136e625833946627e1eeb29bcf7ff7b60171f983da05138ab6b939e37acdcc2afe23079bab2b66902f4e03c4cac04aada5a6fa563f6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe3b737fb9f47f82488e0f504ccd93357e9793b0a6974a525c7b14c111f1e6364" }, "blocknumber": "1", "transactions": [ @@ -7312,11 +10047,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c987e0d60304667f4f331765a966bd70a196805dd852362d3cc163b8e675d1c504a88a6e3dcc5a766a4f1fbfdb98ea45ec", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068e3069b19e6e71aed9b7dc8fbba13e4217d91cfc59be47cfaa7d09ef626242517541992c0f76091ddabf271682cc7c2c", "accessList": [], - "v": "0x00", - "r": "0x346847cf63701b3b615645a136e625833946627e1eeb29bcf7ff7b60171f983d", - "s": "0x5138ab6b939e37acdcc2afe23079bab2b66902f4e03c4cac04aada5a6fa563f6", + "v": "0x01", + "r": "0xf8b90b4c2fdf0672d13117c0776b52d30e44b838cac9ba6292a51711f9e565ab", + "s": "0x30b06f921d772eeb002ce651a2802bb91498bdf15f32152e01e07f5f003ecae3", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7324,45 +10059,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4c96c767cfb5b537008a9641330d6f9c81cd1ac6e1adc7540022f885785a8ff6", - "network": "Cancun", + "lastblockhash": "0xe3b737fb9f47f82488e0f504ccd93357e9793b0a6974a525c7b14c111f1e6364", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -7371,53 +10081,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x01", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff271ce", + "balance": "0xffffffffffffee32d6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "047-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3c87ec986c2656c2": { + "077-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b24f8997145435c": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa011595b0c2ffe59eaf23429b142401d084636aafed15dc1fc1e5df2de03a745b4a0f7e2660492b68050e4fbc7869faddcc1cd73e06a75bc4049300aaa9d43573175a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9813889b6303c421a9c60a8163e7f31162e4d43e5594fda9b91fd34f98a9483169b959f24741d09b88e9ec9298f19de5dc080a0d5875297d6a840dc57c45d74b9c621b435a8950231f1494dd65a11f0f71eee00a015c0192d61dbdc08b947bc25574d79f5ec9512d2b2e7bd1efec7c7f4fee77a78c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d4500d589b4a3386466a6e31628740ee86715f70574c017f3c605be622ef87da0317df4d41c72f0fd1de094501a96b9a4f17aa29295efcec532438d09e6616687a03db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556afc13cef6ed41f7abe142d32d7b5354e5664bd4b6d52080460dd404dc2cb26269c24826d2bcd0152d0b55ee0a9e90289c080a0d6c26c4fc98d7c6e3a628b9d8fadee4865627839329aed7a0d5ee6b70659aec8a03f930d8b4fcce01b53c707a1e5e0d57444e7d7914102d331e77c081aae0f5a11c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x11595b0c2ffe59eaf23429b142401d084636aafed15dc1fc1e5df2de03a745b4", - "transactionsTrie": "0xf7e2660492b68050e4fbc7869faddcc1cd73e06a75bc4049300aaa9d43573175", - "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", + "stateRoot": "0x9d4500d589b4a3386466a6e31628740ee86715f70574c017f3c605be622ef87d", + "transactionsTrie": "0x317df4d41c72f0fd1de094501a96b9a4f17aa29295efcec532438d09e6616687", + "receiptTrie": "0x3db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028cb6", + "gasUsed": "0x0289b6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7427,33 +10164,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfd8cfd2c6d4e44cede6e3925d105f969adbcf2632defac8df9f8228560b2b919" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x11595b0c2ffe59eaf23429b142401d084636aafed15dc1fc1e5df2de03a745b4", - "receiptsRoot": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28cb6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfd8cfd2c6d4e44cede6e3925d105f969adbcf2632defac8df9f8228560b2b919", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9813889b6303c421a9c60a8163e7f31162e4d43e5594fda9b91fd34f98a9483169b959f24741d09b88e9ec9298f19de5dc080a0d5875297d6a840dc57c45d74b9c621b435a8950231f1494dd65a11f0f71eee00a015c0192d61dbdc08b947bc25574d79f5ec9512d2b2e7bd1efec7c7f4fee77a78" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1bb9da2a79f1238ee9cbd040f8516b9062b33436b881717b2780a655f1506ad9" }, "blocknumber": "1", "transactions": [ @@ -7466,11 +10177,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9813889b6303c421a9c60a8163e7f31162e4d43e5594fda9b91fd34f98a9483169b959f24741d09b88e9ec9298f19de5d", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556afc13cef6ed41f7abe142d32d7b5354e5664bd4b6d52080460dd404dc2cb26269c24826d2bcd0152d0b55ee0a9e90289", "accessList": [], "v": "0x00", - "r": "0xd5875297d6a840dc57c45d74b9c621b435a8950231f1494dd65a11f0f71eee00", - "s": "0x15c0192d61dbdc08b947bc25574d79f5ec9512d2b2e7bd1efec7c7f4fee77a78", + "r": "0xd6c26c4fc98d7c6e3a628b9d8fadee4865627839329aed7a0d5ee6b70659aec8", + "s": "0x3f930d8b4fcce01b53c707a1e5e0d57444e7d7914102d331e77c081aae0f5a11", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7478,45 +10189,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfd8cfd2c6d4e44cede6e3925d105f969adbcf2632defac8df9f8228560b2b919", - "network": "Cancun", + "lastblockhash": "0x1bb9da2a79f1238ee9cbd040f8516b9062b33436b881717b2780a655f1506ad9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -7525,49 +10211,74 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x01", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2706", + "balance": "0xffffffffffffee3c06", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "048-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_3cd183d0bab85fb7": { + "078-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b754afb690c47e1": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa054c1deb576ec872117a9bcd2128d812c4d81fed244813194a615bf5ec61bbbfaa08d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0fa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1a013b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bda0ad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3aa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0ff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbba02957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x54c1deb576ec872117a9bcd2128d812c4d81fed244813194a615bf5ec61bbbfa", - "transactionsTrie": "0x8d8dc27e5c2ab3d3bfc91a2176e8bd06180bbe166b9dfc319caba700bc4b8f0f", + "stateRoot": "0x1a36e8869d420e367892e1f1667b9e07dfd034facad0f4dfa0b1ef620c9852bd", + "transactionsTrie": "0xad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3a", "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -7583,96 +10294,45 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaa4503fb12ed098b6f5c5343cc4bd82f03af35b5eb53c3f080691325f4fc6cb8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x54c1deb576ec872117a9bcd2128d812c4d81fed244813194a615bf5ec61bbbfa", - "receiptsRoot": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b12", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xaa4503fb12ed098b6f5c5343cc4bd82f03af35b5eb53c3f080691325f4fc6cb8", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0f544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1a013b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271" }, "blocknumber": "1", "transactions": [ { "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", - "accessList": [], - "v": "0x00", - "r": "0xf544a23c3fb57a08592ceb891725e3b767ad575036ddf788b3371625630d2bc1", - "s": "0x13b4537a9c47802808e089894d50f079a44480c6c357ba6f903c51786dbd5729", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xaa4503fb12ed098b6f5c5343cc4bd82f03af35b5eb53c3f080691325f4fc6cb8", - "network": "Cancun", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "accessList": [], + "v": "0x00", + "r": "0xff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbb", + "s": "0x2957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa55a6d6e58036ec9b76ab02fc4ee20eaf1c5baed9a2a373eb1555797390fc271", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -7681,23 +10341,23 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x01", + "0x02": "0x02", "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x01" + "0x05": "0x02" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -7709,27 +10369,52 @@ }, "sealEngine": "NoProof" }, - "049-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_420f2a187ce77035": { + "079-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_a0be66af9a97ea52": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f397ea971571b906db40f48a421522662fb23fdc5a1510479fc9b2b6456eff3ba074ffb69baf1127a66dad629b01077b7d4c2e67cb4541bbcfe3c3209d713b7a47a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9aa421ef5eb79b0e642339a0edd408faed044978319b307f5230eb4f6b787602e29cd9246b905aa34077c802bc1087be0c080a0e04b006cb6bdc0ed9f457600453540491c1a3b67401795db0405d16f5f7f514ba017b3b6c829ee1bb7f8bc1542eb3d3fef20958d3ed2cce72a9b3a947ce62862d6c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02828205630590b438ba8bd8f09f2aa414d17c354577d1793c87952594d02e4d3a0aae8148356f17ee14d26d0dd97585d0cdd3a5bb29fde552099a23514a2fc4367a0c3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0c6de0a5b4d1b3a61b6cae300c7c8838853711435a62fdea81a1321e0335dcdbba02666f15a2c26f68a2eefdbd3d1aad5b4e01935aa3de6a741d76f77a0362bc6b0c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf397ea971571b906db40f48a421522662fb23fdc5a1510479fc9b2b6456eff3b", - "transactionsTrie": "0x74ffb69baf1127a66dad629b01077b7d4c2e67cb4541bbcfe3c3209d713b7a47", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0x2828205630590b438ba8bd8f09f2aa414d17c354577d1793c87952594d02e4d3", + "transactionsTrie": "0xaae8148356f17ee14d26d0dd97585d0cdd3a5bb29fde552099a23514a2fc4367", + "receiptTrie": "0xc3c65c206583fcf6305a4dd04ddabcfd990686acc213716af1d1f51191a104ad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x0289ce", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7739,33 +10424,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa6f00777d7a1efca3ade89e4626f3ca21b59a307380517cec5a4f97e9f9be07c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf397ea971571b906db40f48a421522662fb23fdc5a1510479fc9b2b6456eff3b", - "receiptsRoot": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b42", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa6f00777d7a1efca3ade89e4626f3ca21b59a307380517cec5a4f97e9f9be07c", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9aa421ef5eb79b0e642339a0edd408faed044978319b307f5230eb4f6b787602e29cd9246b905aa34077c802bc1087be0c080a0e04b006cb6bdc0ed9f457600453540491c1a3b67401795db0405d16f5f7f514ba017b3b6c829ee1bb7f8bc1542eb3d3fef20958d3ed2cce72a9b3a947ce62862d6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8fb29652119b3ac323190cb26007400f7b004e326f5c16d83b99091143ad5d8c" }, "blocknumber": "1", "transactions": [ @@ -7778,11 +10437,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9aa421ef5eb79b0e642339a0edd408faed044978319b307f5230eb4f6b787602e29cd9246b905aa34077c802bc1087be0", + "data": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e3863700000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a572cbea904d67468808c8eb50a9450c9721db309128012543902d0ac358a62ae28f75bb8f1c7c42c39a8c5529bf0f4e97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], - "v": "0x00", - "r": "0xe04b006cb6bdc0ed9f457600453540491c1a3b67401795db0405d16f5f7f514b", - "s": "0x17b3b6c829ee1bb7f8bc1542eb3d3fef20958d3ed2cce72a9b3a947ce62862d6", + "v": "0x01", + "r": "0xc6de0a5b4d1b3a61b6cae300c7c8838853711435a62fdea81a1321e0335dcdbb", + "s": "0x2666f15a2c26f68a2eefdbd3d1aad5b4e01935aa3de6a741d76f77a0362bc6b0", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7790,45 +10449,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa6f00777d7a1efca3ade89e4626f3ca21b59a307380517cec5a4f97e9f9be07c", - "network": "Cancun", + "lastblockhash": "0x8fb29652119b3ac323190cb26007400f7b004e326f5c16d83b99091143ad5d8c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -7837,55 +10471,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", + "0x01": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", "0x02": "0x02", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", + "0x04": "0x01cf45213dd7b4716864d378f3c6d861467987e4d94b7f79a1f814a697e38637", "0x05": "0x02" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee3b5e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "050-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_444b73ff54a19b44": { + "080-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af669445747d2585": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a4c680a3131ee1f8340d828e0534291ff519060978ed750b7c2d1c82a476089a025decf2481d75b33c3df3a9c97ece8d88e2bdc07c3bb3365b98b44b84fafb3dba00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b3352fb4d0b82179ccba8f8cd2969f93e67f9ee926607cb374cff85e22c578ee94cf738d332e1b2cc2feb908690c1b03c080a017c92413ea06bd3a118ac741ef709240765db2a11327eea4ec05e11a846498e2a001d601f80306732c8c71ca99e6aa994f65dfe7b742567647a7ff53fa724991a4c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa024bdc5bc7dba0d025d999c9c1907d4410a6c143a04d9f04b0da073d9cc71342ba08c48982825d75a341c3d039e721802dd6d0e69453ebf1ed029d6ad3291669df8a08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa88d68fe3ad0d09b07f4605b1364c8d4804bf7096dae003d821cc01c3b7d35c6d1fdae14e2db3c05e1cdcea7c7b7f262c001a00701c49658a38d7c49cecaf3fa86dad653181ad60aa1adbdd7340596998ca0bfa04464656ebceb017add91468367326936f895b7ccb08f193383d0e2213885fc2ec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4a4c680a3131ee1f8340d828e0534291ff519060978ed750b7c2d1c82a476089", - "transactionsTrie": "0x25decf2481d75b33c3df3a9c97ece8d88e2bdc07c3bb3365b98b44b84fafb3db", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0x24bdc5bc7dba0d025d999c9c1907d4410a6c143a04d9f04b0da073d9cc71342b", + "transactionsTrie": "0x8c48982825d75a341c3d039e721802dd6d0e69453ebf1ed029d6ad3291669df8", + "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028caa", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -7895,33 +10554,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf84a56a549edfa2e3bb39cb605ff8786915a74aa89065edd9f67173b36761f37" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4a4c680a3131ee1f8340d828e0534291ff519060978ed750b7c2d1c82a476089", - "receiptsRoot": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b42", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf84a56a549edfa2e3bb39cb605ff8786915a74aa89065edd9f67173b36761f37", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b3352fb4d0b82179ccba8f8cd2969f93e67f9ee926607cb374cff85e22c578ee94cf738d332e1b2cc2feb908690c1b03c080a017c92413ea06bd3a118ac741ef709240765db2a11327eea4ec05e11a846498e2a001d601f80306732c8c71ca99e6aa994f65dfe7b742567647a7ff53fa724991a4" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x994ed7ceba5d066dbf2140e5216ce2729e057991ff3a33e02f729f8f48b57ab1" }, "blocknumber": "1", "transactions": [ @@ -7934,11 +10567,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7b3352fb4d0b82179ccba8f8cd2969f93e67f9ee926607cb374cff85e22c578ee94cf738d332e1b2cc2feb908690c1b03", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192ddb49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa88d68fe3ad0d09b07f4605b1364c8d4804bf7096dae003d821cc01c3b7d35c6d1fdae14e2db3c05e1cdcea7c7b7f262", "accessList": [], - "v": "0x00", - "r": "0x17c92413ea06bd3a118ac741ef709240765db2a11327eea4ec05e11a846498e2", - "s": "0x01d601f80306732c8c71ca99e6aa994f65dfe7b742567647a7ff53fa724991a4", + "v": "0x01", + "r": "0x0701c49658a38d7c49cecaf3fa86dad653181ad60aa1adbdd7340596998ca0bf", + "s": "0x4464656ebceb017add91468367326936f895b7ccb08f193383d0e2213885fc2e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -7946,45 +10579,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf84a56a549edfa2e3bb39cb605ff8786915a74aa89065edd9f67173b36761f37", - "network": "Cancun", + "lastblockhash": "0x994ed7ceba5d066dbf2140e5216ce2729e057991ff3a33e02f729f8f48b57ab1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -7993,55 +10601,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x05": "0x01" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee275a", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "051-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_53a9bdf4f75196da": { + "081-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af8b75f664ed7d43": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eb630a7bb2a1c80c86d36330962d30f070355ce1be1dbf0385e3b6a38b960f63a09d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0a2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aaa020cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00b7f49d0808e7f4029fd8fbc7a9cf2c91d845b38493b2eafc08e2b883d49815fa02b66f305353250ed55ba87736150eb4db06c9ba6cc256a74573227f0a4284139a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556af08cbca9deec336f2a56ca0b202995830f238fc3cb2ecdbdc0bbb6419e3e60507e823ff7dcbd17394cea55bc514716cc001a053b395e2240df6cac69c67fcbbf1a84c7cfcb7bb4f9773fc124b898660d3b4ffa013156ba473c2f73efeaea8fa83c22ab33af1e0c1501eff697c4d81d6951d8002c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeb630a7bb2a1c80c86d36330962d30f070355ce1be1dbf0385e3b6a38b960f63", - "transactionsTrie": "0x9d65db0c1d55cbe078ed658fc3aa400c9629ed9fae334c80c1b69788a763cb63", - "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", + "stateRoot": "0x0b7f49d0808e7f4029fd8fbc7a9cf2c91d845b38493b2eafc08e2b883d49815f", + "transactionsTrie": "0x2b66f305353250ed55ba87736150eb4db06c9ba6cc256a74573227f0a4284139", + "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c86", + "gasUsed": "0x028b36", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8051,33 +10684,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc75edfbe41709ce78fc060a4344e120e6e425c46d012132e753ab9b175b958b5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeb630a7bb2a1c80c86d36330962d30f070355ce1be1dbf0385e3b6a38b960f63", - "receiptsRoot": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28c86", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc75edfbe41709ce78fc060a4344e120e6e425c46d012132e753ab9b175b958b5", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a0a2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aaa020cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdef46302cfa328ea05599585e878144bf4ff422e307fdc88a519a4b932c42937" }, "blocknumber": "1", "transactions": [ @@ -8090,57 +10697,32 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630673eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fc93efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f146556af08cbca9deec336f2a56ca0b202995830f238fc3cb2ecdbdc0bbb6419e3e60507e823ff7dcbd17394cea55bc514716c", "accessList": [], "v": "0x01", - "r": "0xa2e5fd2288f89860236f9e7c6f98eba4de7dbaee1c3521e805b33fd3f8e935aa", - "s": "0x20cae692d1a23b0cfb422af34e238b1792e2bc38bdcc816c86ab692ea6618ab3", + "r": "0x53b395e2240df6cac69c67fcbbf1a84c7cfcb7bb4f9773fc124b898660d3b4ff", + "s": "0x13156ba473c2f73efeaea8fa83c22ab33af1e0c1501eff697c4d81d6951d8002", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc75edfbe41709ce78fc060a4344e120e6e425c46d012132e753ab9b175b958b5", - "network": "Cancun", - "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, + ], + "lastblockhash": "0xdef46302cfa328ea05599585e878144bf4ff422e307fdc88a519a4b932c42937", + "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -8149,55 +10731,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x02", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x02" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2856", + "balance": "0xffffffffffffee3186", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "052-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_7db4f140a955dd1a": { + "082-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6cb6698327d9835": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0421b72ae3d1096aebf659035647972fb468f248d6409aace89c0a3f8734c3942a0f55c1664b469d0b46740caf7267894d480569c45b50aa195862533884ad29c25a0274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca782af93a59a4978439a9a05cf6324e0e558c68b114f590589255bffe9ea2c0917a6ff6a7cd2e317f26f18b07802e9379ac001a0f12890dac4605451cc47201df1836e7868c1fe0177e2fc00e12c94cb319ae86aa074c4958c3992ba2e0cb80d0a7ba8075e4238086ece1ec445211af18656405f56c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0adce67a36931544ed896b583bafb3e872054ffdf8c6d0d29f5cb8e0ddc554b5aa0f5252d35e5c09f0f1733e3f59628b0104ff2c8f3d009ce3307a5dd5d84fa88d7a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a861a2aef7aa82db033bfa125b9f756afecaf1db28384925d5007bcf7dff1a53b72bdf522610303075aeecab41685d720c080a0ac4f85f8ffec48fb8cd4304a0db3bdb5bbf90a82a585325744d0a80512d9e064a05a913cb5dff943b5cba667f91523174f62f7d49c59399890703cb8e8e61f5bfbc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x421b72ae3d1096aebf659035647972fb468f248d6409aace89c0a3f8734c3942", - "transactionsTrie": "0xf55c1664b469d0b46740caf7267894d480569c45b50aa195862533884ad29c25", - "receiptTrie": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", + "stateRoot": "0xadce67a36931544ed896b583bafb3e872054ffdf8c6d0d29f5cb8e0ddc554b5a", + "transactionsTrie": "0xf5252d35e5c09f0f1733e3f59628b0104ff2c8f3d009ce3307a5dd5d84fa88d7", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c86", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8207,33 +10814,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6b2f2a99720a7a0b446f3852ab3cf8f9fd995acb728e0d0932ccf4d90c941174" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x421b72ae3d1096aebf659035647972fb468f248d6409aace89c0a3f8734c3942", - "receiptsRoot": "0x274957ba64edf860e8f2e23aaecc40d94ffab82273d69fc1d8bfecd6724434b6", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28c86", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6b2f2a99720a7a0b446f3852ab3cf8f9fd995acb728e0d0932ccf4d90c941174", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca782af93a59a4978439a9a05cf6324e0e558c68b114f590589255bffe9ea2c0917a6ff6a7cd2e317f26f18b07802e9379ac001a0f12890dac4605451cc47201df1836e7868c1fe0177e2fc00e12c94cb319ae86aa074c4958c3992ba2e0cb80d0a7ba8075e4238086ece1ec445211af18656405f56" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9da4aa1610b86dc9e660469d98d56b1ab0cf45f52062d187b4b78f1c856bbc49" }, "blocknumber": "1", "transactions": [ @@ -8246,11 +10827,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b973eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000058cdc98c4c44791bb8ba7e58a80324ef8c021c79c68e253c430fa2663188f7f2a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca782af93a59a4978439a9a05cf6324e0e558c68b114f590589255bffe9ea2c0917a6ff6a7cd2e317f26f18b07802e9379a", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a861a2aef7aa82db033bfa125b9f756afecaf1db28384925d5007bcf7dff1a53b72bdf522610303075aeecab41685d720", "accessList": [], - "v": "0x01", - "r": "0xf12890dac4605451cc47201df1836e7868c1fe0177e2fc00e12c94cb319ae86a", - "s": "0x74c4958c3992ba2e0cb80d0a7ba8075e4238086ece1ec445211af18656405f56", + "v": "0x00", + "r": "0xac4f85f8ffec48fb8cd4304a0db3bdb5bbf90a82a585325744d0a80512d9e064", + "s": "0x5a913cb5dff943b5cba667f91523174f62f7d49c59399890703cb8e8e61f5bfb", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8258,45 +10839,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6b2f2a99720a7a0b446f3852ab3cf8f9fd995acb728e0d0932ccf4d90c941174", - "network": "Cancun", + "lastblockhash": "0x9da4aa1610b86dc9e660469d98d56b1ab0cf45f52062d187b4b78f1c856bbc49", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -8305,55 +10861,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x02": "0x02", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x05": "0x02" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2856", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "053-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_83e53423a2dd93fe": { + "083-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6ec3736f9ff2c62": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0596c236b4fd68319b2b62f23b595affcadb6a1c2de81b4fcff3de2696dcb0a46a0054aa0f0c2246c7457b03a391afaa949ec3e39b905dfda383f15270f65430819a04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c994b3fc86ed60de7223ce1ec3a22dcf3c7c3672c1870ffa0888bc29eeb684e9120857089163dea588685ff2fa0798e808c001a01ee54e9270802851ac653fabaf9e1492561df273e530d0f72f83fc06f0d06f3ca068e7cd4bd3b37d28e7c8a21cd53b48d6a650583d44020288f18797390767e45ec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0baa6bba6b3405a2074bb78915ae506848588d568646009db841bba2f9a27b7c6a0240954eeb71487e243620f746e9cc5a2924de9178684e710582242fdf649cd5aa01f4471e72609435e3c623b2bdd24443eff8c038c1518d3363d7be3f718a83963b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b2a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655682f1cd05471ab6ff21bcfd5c3369cba05b03a872a10829236d184fe1872767c391c2aa7e3b85babb1e6093b7224e7732c001a02fef77316aed95d26497fa65531661195bd2c1441810fc131f5d69b8ca87a877a00e801a95e9f1aa9a8b0897c6b61f83eafc2f650ba05a64552683643d6e858bf1c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x596c236b4fd68319b2b62f23b595affcadb6a1c2de81b4fcff3de2696dcb0a46", - "transactionsTrie": "0x054aa0f0c2246c7457b03a391afaa949ec3e39b905dfda383f15270f65430819", - "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", + "stateRoot": "0xbaa6bba6b3405a2074bb78915ae506848588d568646009db841bba2f9a27b7c6", + "transactionsTrie": "0x240954eeb71487e243620f746e9cc5a2924de9178684e710582242fdf649cd5a", + "receiptTrie": "0x1f4471e72609435e3c623b2bdd24443eff8c038c1518d3363d7be3f718a83963", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b12", + "gasUsed": "0x028b2a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8363,33 +10944,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x035b06d2fbc23183f5c6ccc744cac4700adfa562a960c9ae9193f90e1aba34e0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x596c236b4fd68319b2b62f23b595affcadb6a1c2de81b4fcff3de2696dcb0a46", - "receiptsRoot": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b12", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x035b06d2fbc23183f5c6ccc744cac4700adfa562a960c9ae9193f90e1aba34e0", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c994b3fc86ed60de7223ce1ec3a22dcf3c7c3672c1870ffa0888bc29eeb684e9120857089163dea588685ff2fa0798e808c001a01ee54e9270802851ac653fabaf9e1492561df273e530d0f72f83fc06f0d06f3ca068e7cd4bd3b37d28e7c8a21cd53b48d6a650583d44020288f18797390767e45e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x064208421944db644db5b7b42bbb37296106505424aa706dc30285900e562e6b" }, "blocknumber": "1", "transactions": [ @@ -8402,11 +10957,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c994b3fc86ed60de7223ce1ec3a22dcf3c7c3672c1870ffa0888bc29eeb684e9120857089163dea588685ff2fa0798e808", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306000000000000000000000000000000000000000000000000000000000000000093efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655682f1cd05471ab6ff21bcfd5c3369cba05b03a872a10829236d184fe1872767c391c2aa7e3b85babb1e6093b7224e7732", "accessList": [], "v": "0x01", - "r": "0x1ee54e9270802851ac653fabaf9e1492561df273e530d0f72f83fc06f0d06f3c", - "s": "0x68e7cd4bd3b37d28e7c8a21cd53b48d6a650583d44020288f18797390767e45e", + "r": "0x2fef77316aed95d26497fa65531661195bd2c1441810fc131f5d69b8ca87a877", + "s": "0x0e801a95e9f1aa9a8b0897c6b61f83eafc2f650ba05a64552683643d6e858bf1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8414,45 +10969,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x035b06d2fbc23183f5c6ccc744cac4700adfa562a960c9ae9193f90e1aba34e0", - "network": "Cancun", + "lastblockhash": "0x064208421944db644db5b7b42bbb37296106505424aa706dc30285900e562e6b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -8461,55 +10991,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x02": "0x01", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x05": "0x01" + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3282", + "balance": "0xffffffffffffee31da", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "054-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b24f8997145435c": { + "084-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_becf2e1641bbd4e6": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ba322c8ab40034b829aed9bbc7e2f58a514ddc76d3977fe8661119c1c8d1fddea0622fb6c2c5f74f001d018380942db97241f1effe2c46b3499b82dc2b304eed95a03db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289b60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa229f9de17c0f4b53ee9d448c189a5909358e32ec04409265497cf41cbdcd03af5bd50812cafffc09e08e0e7e7b96337c080a0115b81c4aa7b33a365679981d8ea81ba8f7993b52903a333319bad3fe1ec6250a037d229faa44fbd5230a23b0d98da28d0b646555a121db5945ee763e9aee38b64c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa094d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edfa04ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1ba0b2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c7a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a03273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83ca07fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3dc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xba322c8ab40034b829aed9bbc7e2f58a514ddc76d3977fe8661119c1c8d1fdde", - "transactionsTrie": "0x622fb6c2c5f74f001d018380942db97241f1effe2c46b3499b82dc2b304eed95", - "receiptTrie": "0x3db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19", + "stateRoot": "0x94d412bd70586706283cb2b03b7f775fabb1edffafe081383caa770e46650edf", + "transactionsTrie": "0x4ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1b", + "receiptTrie": "0xb2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0289b6", + "gasUsed": "0x028c7a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8519,33 +11074,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb01306aec433d79d5a184e37d61da7327878716f959f90031eb2803d393e845e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xba322c8ab40034b829aed9bbc7e2f58a514ddc76d3977fe8661119c1c8d1fdde", - "receiptsRoot": "0x3db27d938f9a0fe7606d8f3ceef3343bac110ef0e0777685854ae1de08bede19", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x289b6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb01306aec433d79d5a184e37d61da7327878716f959f90031eb2803d393e845e", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa229f9de17c0f4b53ee9d448c189a5909358e32ec04409265497cf41cbdcd03af5bd50812cafffc09e08e0e7e7b96337c080a0115b81c4aa7b33a365679981d8ea81ba8f7993b52903a333319bad3fe1ec6250a037d229faa44fbd5230a23b0d98da28d0b646555a121db5945ee763e9aee38b64" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4" }, "blocknumber": "1", "transactions": [ @@ -8558,11 +11087,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa229f9de17c0f4b53ee9d448c189a5909358e32ec04409265497cf41cbdcd03af5bd50812cafffc09e08e0e7e7b96337", + "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], - "v": "0x00", - "r": "0x115b81c4aa7b33a365679981d8ea81ba8f7993b52903a333319bad3fe1ec6250", - "s": "0x37d229faa44fbd5230a23b0d98da28d0b646555a121db5945ee763e9aee38b64", + "v": "0x01", + "r": "0x3273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83c", + "s": "0x7fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8570,45 +11099,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb01306aec433d79d5a184e37d61da7327878716f959f90031eb2803d393e845e", - "network": "Cancun", + "lastblockhash": "0x9b79deee26ea9713ef9804f99ab10b4e9d89bcc723bcce6d122d4ea45cc7f6a4", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -8617,55 +11121,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x01", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x01" + "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3c06", + "balance": "0xffffffffffffee28aa", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "055-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_9b754afb690c47e1": { + "085-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c3d4322ec17fe7cd": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa054a2e6c5708508d3f30760d717c86a1faca0a6d0b04a466e3630f0aa1ca8ecbea0ad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3aa04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0ff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbba02957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8ea04956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afda01cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec0a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a08dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351a01e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x54a2e6c5708508d3f30760d717c86a1faca0a6d0b04a466e3630f0aa1ca8ecbe", - "transactionsTrie": "0xad8057626099a46cf71b10f61dd70170deaec09b46058d6e61a5ea448188be3a", - "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", + "stateRoot": "0x8a6b56609fcfb592b1f7752666848a20c36e1dce8acb5e0c82e61e8c9e5f3f8e", + "transactionsTrie": "0x4956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afd", + "receiptTrie": "0x1cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b12", + "gasUsed": "0x01ec0a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8675,33 +11204,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3ba42d01d86d45fa6970f9075af607ad3f1d1e983b8bb3ad49db033c98c331ff" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x54a2e6c5708508d3f30760d717c86a1faca0a6d0b04a466e3630f0aa1ca8ecbe", - "receiptsRoot": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b12", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3ba42d01d86d45fa6970f9075af607ad3f1d1e983b8bb3ad49db033c98c331ff", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a0ff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbba02957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931" }, "blocknumber": "1", "transactions": [ @@ -8714,11 +11217,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], "v": "0x00", - "r": "0xff9ab24e67185c0a3ea32116ddc04fcb5a1cc1bf9abfbf95a20c15a498558cbb", - "s": "0x2957afcf781c2ba6c6cd8e29e01072d7a75163c28ce1525f50fe730d7844b5b3", + "r": "0x8dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351", + "s": "0x1e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8726,45 +11229,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3ba42d01d86d45fa6970f9075af607ad3f1d1e983b8bb3ad49db033c98c331ff", - "network": "Cancun", + "lastblockhash": "0xa7ca4860d8c32c47d4a939ab3262cb5f64c081ab792980f37f37aa9df6471931", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -8773,49 +11251,72 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x02", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x02" + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3282", + "balance": "0xfffffffffffff28bba", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "056-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af669445747d2585": { + "086-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c5e1490d672d026d": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e2a40e52bb8d2d8a5e32df737da3a0a385ceb365c6622ee6eddecd3cca442beca0017d9955a8573bf63d7c249d58b10aa74f61b65b0c1576819cfed9f7dc7d0a08a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7908fa50ed7c7359b6fea6031f8089459bb91ea77cb0af622bdfc7abb7a98d571aba9c322e70b25e2f439fc75887a0af0c080a05dd55ab0c5ee2e7a56882443088d6930fa546589d54785031160621a6fcf8361a0253466980aee26f63c683388f233fe50e49eb70a9e3e41d050fbb16fde75612dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03c6e28e82ab7e39e7119bb6fdbfa1f25abeead79da2f056ec08751e761a6a330a04636f4dc5b33ce0f2cceb49e2b892967cf83f3f68fa1a777bdbe635eebe5ed47a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7acd56791e0ab0d1b3802021862013418993da2646e87140e12631e2914d9e6c676466aa3adfc91b61f84255544cab544c080a089d9c97ad5598311895ada0f236874d7e335a9f3c3e4cedcaba1a0940c3335f4a001308456b269a47618f76d89289d7d53cf8ad10b598211552a6aef86ce54d3f1c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe2a40e52bb8d2d8a5e32df737da3a0a385ceb365c6622ee6eddecd3cca442bec", - "transactionsTrie": "0x017d9955a8573bf63d7c249d58b10aa74f61b65b0c1576819cfed9f7dc7d0a08", + "stateRoot": "0x3c6e28e82ab7e39e7119bb6fdbfa1f25abeead79da2f056ec08751e761a6a330", + "transactionsTrie": "0x4636f4dc5b33ce0f2cceb49e2b892967cf83f3f68fa1a777bdbe635eebe5ed47", "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -8831,33 +11332,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0dd014c34d9180e3a1304a9c9fc2dd7d2fdc8c0e6a75ed7ac441f78905fef4cf" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe2a40e52bb8d2d8a5e32df737da3a0a385ceb365c6622ee6eddecd3cca442bec", - "receiptsRoot": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28cb6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0dd014c34d9180e3a1304a9c9fc2dd7d2fdc8c0e6a75ed7ac441f78905fef4cf", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7908fa50ed7c7359b6fea6031f8089459bb91ea77cb0af622bdfc7abb7a98d571aba9c322e70b25e2f439fc75887a0af0c080a05dd55ab0c5ee2e7a56882443088d6930fa546589d54785031160621a6fcf8361a0253466980aee26f63c683388f233fe50e49eb70a9e3e41d050fbb16fde75612d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x866b94d6c4f292d309627942aa721ce4a7a0a51e9f28c8a386cf54cc1144d2d1" }, "blocknumber": "1", "transactions": [ @@ -8870,11 +11345,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066c28d6edfea2f5e1638cb1a8be8197549d52e133fa9dae87e52abb45f7b192dda6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7908fa50ed7c7359b6fea6031f8089459bb91ea77cb0af622bdfc7abb7a98d571aba9c322e70b25e2f439fc75887a0af0", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7acd56791e0ab0d1b3802021862013418993da2646e87140e12631e2914d9e6c676466aa3adfc91b61f84255544cab544", "accessList": [], "v": "0x00", - "r": "0x5dd55ab0c5ee2e7a56882443088d6930fa546589d54785031160621a6fcf8361", - "s": "0x253466980aee26f63c683388f233fe50e49eb70a9e3e41d050fbb16fde75612d", + "r": "0x89d9c97ad5598311895ada0f236874d7e335a9f3c3e4cedcaba1a0940c3335f4", + "s": "0x01308456b269a47618f76d89289d7d53cf8ad10b598211552a6aef86ce54d3f1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -8882,45 +11357,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0dd014c34d9180e3a1304a9c9fc2dd7d2fdc8c0e6a75ed7ac441f78905fef4cf", - "network": "Cancun", + "lastblockhash": "0x866b94d6c4f292d309627942aa721ce4a7a0a51e9f28c8a386cf54cc1144d2d1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -8929,25 +11379,25 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffee2706", @@ -8957,27 +11407,52 @@ }, "sealEngine": "NoProof" }, - "057-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_af8b75f664ed7d43": { + "087-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_cae5d3491190b777": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05b6db000eef7b64e97e53e51b2aa0420dbb13d43cb79988aa8bc974d06d34b54a05ae8bcb5296c1c9e86d53b331a53322074ae26fb50ce7fd4074ad6504c4e854aa0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa80216e6ca6221a11f1a0417387eaba6571d2cfdfa338d69d173923d8722fa8394bf9ab487d2a155d1def23a512ef5a3c001a07286395d87b2331ef76c7160adf6317bb5d3ff284632ba3861a4ac2cfc9ec464a039aeceebebc37a0bc3f4b611e9c1b559622fc5ed0841b43f7bc77d4a97b7172fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0061e42f21db8b723aff80ad17aeab3e981a4ca4eddcb3d187cd6d8ffdb6fcc78a06b9b49172b85dc42d664a601ee9943084e12a5c5a093a5056bc8f8889fd75418a0087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa4cc8c419ade0cf043cbf30f43c8f7ee6da3ab8d2c15070f323e5a13a8178fe07c8f89686e5fd16565247b520028251bc080a08bcafbc1facaa4cb6741a2d82139f20782aa8eb8cfba39d87a43c9e8a0dbe363a024a6f44071130a7ae0dabb24d83771d93d8d9314a5d5c1a58d1131a27bc14a8ac0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5b6db000eef7b64e97e53e51b2aa0420dbb13d43cb79988aa8bc974d06d34b54", - "transactionsTrie": "0x5ae8bcb5296c1c9e86d53b331a53322074ae26fb50ce7fd4074ad6504c4e854a", - "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", + "stateRoot": "0x061e42f21db8b723aff80ad17aeab3e981a4ca4eddcb3d187cd6d8ffdb6fcc78", + "transactionsTrie": "0x6b9b49172b85dc42d664a601ee9943084e12a5c5a093a5056bc8f8889fd75418", + "receiptTrie": "0x087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b36", + "gasUsed": "0x028c92", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -8987,33 +11462,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x81d9895991214462dd9819cfb6a9791fd1c766b6402cfbe372df82c5a9b3f07e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5b6db000eef7b64e97e53e51b2aa0420dbb13d43cb79988aa8bc974d06d34b54", - "receiptsRoot": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b36", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x81d9895991214462dd9819cfb6a9791fd1c766b6402cfbe372df82c5a9b3f07e", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa80216e6ca6221a11f1a0417387eaba6571d2cfdfa338d69d173923d8722fa8394bf9ab487d2a155d1def23a512ef5a3c001a07286395d87b2331ef76c7160adf6317bb5d3ff284632ba3861a4ac2cfc9ec464a039aeceebebc37a0bc3f4b611e9c1b559622fc5ed0841b43f7bc77d4a97b7172f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x05839413c2c7c0c4cc002fa6486e22f6661a90383d634d9964c87c09ed7507da" }, "blocknumber": "1", "transactions": [ @@ -9026,11 +11475,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5000000000000000000000000000000000000000000000000000000000000000264d3b6baf69395bde2abd1d43f99be66bc64581234fd363e2ae3a0d419cfc3fcb09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efa80216e6ca6221a11f1a0417387eaba6571d2cfdfa338d69d173923d8722fa8394bf9ab487d2a155d1def23a512ef5a3", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193aa4cc8c419ade0cf043cbf30f43c8f7ee6da3ab8d2c15070f323e5a13a8178fe07c8f89686e5fd16565247b520028251b", "accessList": [], - "v": "0x01", - "r": "0x7286395d87b2331ef76c7160adf6317bb5d3ff284632ba3861a4ac2cfc9ec464", - "s": "0x39aeceebebc37a0bc3f4b611e9c1b559622fc5ed0841b43f7bc77d4a97b7172f", + "v": "0x00", + "r": "0x8bcafbc1facaa4cb6741a2d82139f20782aa8eb8cfba39d87a43c9e8a0dbe363", + "s": "0x24a6f44071130a7ae0dabb24d83771d93d8d9314a5d5c1a58d1131a27bc14a8a", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9038,45 +11487,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x81d9895991214462dd9819cfb6a9791fd1c766b6402cfbe372df82c5a9b3f07e", - "network": "Cancun", + "lastblockhash": "0x05839413c2c7c0c4cc002fa6486e22f6661a90383d634d9964c87c09ed7507da", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -9085,55 +11509,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x02", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x02" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3186", + "balance": "0xffffffffffffee2802", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "058-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6cb6698327d9835": { + "088-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d0992bc0387790a4": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eeea217c651e7720fca5cc210a3f833da63bdda35e8234c8551d389c520d3c9ea0673f860c241b4cf79b81665e211541ce7686b5c558879f23ad08102b22db8ec5a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7abacbdcba60523fdc84ed1a32bb770f610f8b284d875479918c2fe397e04eb52ecc0f1ff0029f9466ffe5b278b8fecc3c001a05a9dd8e077028eb136811b6931c933d79db0e6a6bdeb8aa9a0dc6655f7f45a46a030ac7caa8cf5388f9c528aa6baa30292a9f912da23cbb05d43e2a1f1457c36aac0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a77e2b492532b64b86b9dcce607e770834cc0c4a7fd076e43df2f4fbb7522e35a04943b7c3bdde613d3334ec74191ff4e6dbe8b9ad6e11e9489b04438d00353d2ba08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b8f731ba6a52e419ffc843c50d2947d30e933e3a881b208de54149714ece74a599503f84c6249b5fd8a7c70189882a6bc080a041d65377829837a1adab9efd7d6b34c00140bfa4dbbf5053348e12652e6a4965a060900e4e68a9787aaac7a45314c939c204ee41d3e5fa99fd463f47cbebfd6d9ec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeeea217c651e7720fca5cc210a3f833da63bdda35e8234c8551d389c520d3c9e", - "transactionsTrie": "0x673f860c241b4cf79b81665e211541ce7686b5c558879f23ad08102b22db8ec5", - "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", + "stateRoot": "0xa77e2b492532b64b86b9dcce607e770834cc0c4a7fd076e43df2f4fbb7522e35", + "transactionsTrie": "0x4943b7c3bdde613d3334ec74191ff4e6dbe8b9ad6e11e9489b04438d00353d2b", + "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b36", + "gasUsed": "0x028caa", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9143,33 +11592,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6c96aabc591ab13a5de8b6e5bb4c10093a3465267e69c334ce08c70018c5cf69" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeeea217c651e7720fca5cc210a3f833da63bdda35e8234c8551d389c520d3c9e", - "receiptsRoot": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b36", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6c96aabc591ab13a5de8b6e5bb4c10093a3465267e69c334ce08c70018c5cf69", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7abacbdcba60523fdc84ed1a32bb770f610f8b284d875479918c2fe397e04eb52ecc0f1ff0029f9466ffe5b278b8fecc3c001a05a9dd8e077028eb136811b6931c933d79db0e6a6bdeb8aa9a0dc6655f7f45a46a030ac7caa8cf5388f9c528aa6baa30292a9f912da23cbb05d43e2a1f1457c36aa" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9198e5aca01694d50428deac8ff3befe2ff2f46f92bd0a4b705e7bd154312a7d" }, "blocknumber": "1", "transactions": [ @@ -9182,11 +11605,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000026a75e4fe63e5e148c853462a680c3e3ccedea34719d28f19bf1b35ae4eea37d6a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7abacbdcba60523fdc84ed1a32bb770f610f8b284d875479918c2fe397e04eb52ecc0f1ff0029f9466ffe5b278b8fecc3", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e18f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b8f731ba6a52e419ffc843c50d2947d30e933e3a881b208de54149714ece74a599503f84c6249b5fd8a7c70189882a6b", "accessList": [], - "v": "0x01", - "r": "0x5a9dd8e077028eb136811b6931c933d79db0e6a6bdeb8aa9a0dc6655f7f45a46", - "s": "0x30ac7caa8cf5388f9c528aa6baa30292a9f912da23cbb05d43e2a1f1457c36aa", + "v": "0x00", + "r": "0x41d65377829837a1adab9efd7d6b34c00140bfa4dbbf5053348e12652e6a4965", + "s": "0x60900e4e68a9787aaac7a45314c939c204ee41d3e5fa99fd463f47cbebfd6d9e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9194,45 +11617,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6c96aabc591ab13a5de8b6e5bb4c10093a3465267e69c334ce08c70018c5cf69", - "network": "Cancun", + "lastblockhash": "0x9198e5aca01694d50428deac8ff3befe2ff2f46f92bd0a4b705e7bd154312a7d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -9241,55 +11639,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x02": "0x02", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x05": "0x02" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3186", + "balance": "0xffffffffffffee275a", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "059-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_b6ec3736f9ff2c62": { + "089-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d736268229bd87ec": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04cf5b5015c25d2d91c8f95095fd30e5ecfd551f6c455c1520c3673cd06dfe52fa05288bdd2ef8768bb8a242ca43c73dbae4a858c8f4963142f71da81e6625717dda0281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef831cc31c152e768eb8c2fd2d0c04003e7abc66b2c3f4cc7fc2b3426b4a698dc2a5e5161dfb841ad17cd09be61b33987bc080a09055b3a1e37861e12edc8174fbefff93226de35b7c3a32c949385da2104a58eda0524b4f4e311c6021899859eb32a28e7e14c4d6cae56af35452f60140bbab0a8cc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cb9e12dda586addf8d45fb0620d5e4e5530e9eea47791eff168ebe7748709f55a0340072b85a86def90391840844ed222ee1070a4aaaf16c9fe2ff56438abecddda0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655684c349506215a2d55f9d06f475b8229c6dedc08fd467f41fabae6bb042c2d0dbdbcd5f7532c475e479588eec5820fd37c080a04f5cbdea7c949e07ff124ecabd0fd003118b4830e1741231a7bf7701b4d8ee79a0560d6c4459cfb2b748f1b85745c953ed096c14b4bce5a931dacc8f4dfdd858a9c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4cf5b5015c25d2d91c8f95095fd30e5ecfd551f6c455c1520c3673cd06dfe52f", - "transactionsTrie": "0x5288bdd2ef8768bb8a242ca43c73dbae4a858c8f4963142f71da81e6625717dd", - "receiptTrie": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771", + "stateRoot": "0xcb9e12dda586addf8d45fb0620d5e4e5530e9eea47791eff168ebe7748709f55", + "transactionsTrie": "0x340072b85a86def90391840844ed222ee1070a4aaaf16c9fe2ff56438abecddd", + "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b1e", + "gasUsed": "0x028c9e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9299,33 +11722,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8613694bc407f1b8d1035dd8260864cbde680abee7d42955ea5db995cb853a2d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4cf5b5015c25d2d91c8f95095fd30e5ecfd551f6c455c1520c3673cd06dfe52f", - "receiptsRoot": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b1e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8613694bc407f1b8d1035dd8260864cbde680abee7d42955ea5db995cb853a2d", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef831cc31c152e768eb8c2fd2d0c04003e7abc66b2c3f4cc7fc2b3426b4a698dc2a5e5161dfb841ad17cd09be61b33987bc080a09055b3a1e37861e12edc8174fbefff93226de35b7c3a32c949385da2104a58eda0524b4f4e311c6021899859eb32a28e7e14c4d6cae56af35452f60140bbab0a8c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbf2fe0b35344f436a53566abcbf196e3346e629bf85b1ccb6122aaa6c3f1013f" }, "blocknumber": "1", "transactions": [ @@ -9338,11 +11735,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363060000000000000000000000000000000000000000000000000000000000000000b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440ef831cc31c152e768eb8c2fd2d0c04003e7abc66b2c3f4cc7fc2b3426b4a698dc2a5e5161dfb841ad17cd09be61b33987b", + "data": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd23393efc82d2017e9c57834a1246463e64774e56183bb247c8fc9dd98c56817e878d97b05f5c8d900acf1fbbbca6f14655684c349506215a2d55f9d06f475b8229c6dedc08fd467f41fabae6bb042c2d0dbdbcd5f7532c475e479588eec5820fd37", "accessList": [], "v": "0x00", - "r": "0x9055b3a1e37861e12edc8174fbefff93226de35b7c3a32c949385da2104a58ed", - "s": "0x524b4f4e311c6021899859eb32a28e7e14c4d6cae56af35452f60140bbab0a8c", + "r": "0x4f5cbdea7c949e07ff124ecabd0fd003118b4830e1741231a7bf7701b4d8ee79", + "s": "0x560d6c4459cfb2b748f1b85745c953ed096c14b4bce5a931dacc8f4dfdd858a9", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9350,45 +11747,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8613694bc407f1b8d1035dd8260864cbde680abee7d42955ea5db995cb853a2d", - "network": "Cancun", + "lastblockhash": "0xbf2fe0b35344f436a53566abcbf196e3346e629bf85b1ccb6122aaa6c3f1013f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -9397,55 +11769,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x01ad7666ef9d8f53b5adf54f029b13b6f171b1d0bd346a2ede315d3e243484ef", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee322e", + "balance": "0xffffffffffffee27ae", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "060-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_becf2e1641bbd4e6": { + "090-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_e68d7111a2364a49": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00a8424a5e1d075f2637c2d17e3afb54366253b823d671bdc5d85b149c138cc14a04ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1ba0b2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c7a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a03273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83ca07fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a6ba82bbb29fd8699921ecc6f2fb64c0e8927d68b29486b12ee863a03f89090ba08dcb7d350e47478f64fe140d44248afada8290fa1b89bdb4dc7e8caa15ab8178a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b794fce36bf7e9f0ed981728fcd829013de96f7d25f8b4fe885059ec24af36f801ffbf68ec4604ef6e5f5f800f5cf31238c080a0067323404069e69388d57089f941d19d87c6e0c6d02cc5abb5555b2647cd0e5ca033c29ae9776ef9a261652a5ba6a905d7b17c612e9719b3445b8b95b20c1c76edc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0a8424a5e1d075f2637c2d17e3afb54366253b823d671bdc5d85b149c138cc14", - "transactionsTrie": "0x4ddc20059aa6c603a53e14ef3dfd107de7e4006cbcd47fd42eca705bdc222d1b", - "receiptTrie": "0xb2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4", + "stateRoot": "0xa6ba82bbb29fd8699921ecc6f2fb64c0e8927d68b29486b12ee863a03f89090b", + "transactionsTrie": "0x8dcb7d350e47478f64fe140d44248afada8290fa1b89bdb4dc7e8caa15ab8178", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c7a", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9455,33 +11852,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x35c3e710e8d0bf2559b96731012f7644d14c9f727230268b56d13b37aa72663f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0a8424a5e1d075f2637c2d17e3afb54366253b823d671bdc5d85b149c138cc14", - "receiptsRoot": "0xb2c5ad406e8ea715c8495b834c90c372db84f259009e93c85422e0e1b9203fa4", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28c7a", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x35c3e710e8d0bf2559b96731012f7644d14c9f727230268b56d13b37aa72663f", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a03273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83ca07fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1717088bddecb58a090f9ca15d02634e4295dc0cc1fa823bd3966dc2ffcd8dfc" }, "blocknumber": "1", "transactions": [ @@ -9494,11 +11865,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c05eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c6273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f853708f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b794fce36bf7e9f0ed981728fcd829013de96f7d25f8b4fe885059ec24af36f801ffbf68ec4604ef6e5f5f800f5cf31238", "accessList": [], - "v": "0x01", - "r": "0x3273576d50c19ea38badedb55c53e83a9da2282ca86a1b56df6111a939c0a83c", - "s": "0x7fe8ecbf7fc1cc72ae1abc6cad0714476b3dd2fbb64281aab1758e15fbccce3d", + "v": "0x00", + "r": "0x067323404069e69388d57089f941d19d87c6e0c6d02cc5abb5555b2647cd0e5c", + "s": "0x33c29ae9776ef9a261652a5ba6a905d7b17c612e9719b3445b8b95b20c1c76ed", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9506,45 +11877,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x35c3e710e8d0bf2559b96731012f7644d14c9f727230268b56d13b37aa72663f", - "network": "Cancun", + "lastblockhash": "0x1717088bddecb58a090f9ca15d02634e4295dc0cc1fa823bd3966dc2ffcd8dfc", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -9553,55 +11899,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x02", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x02" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee28aa", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "061-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c3d4322ec17fe7cd": { + "091-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ed6b180ec759bcf6": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0678c9f8ca07a25d0482a0306599574ca1bf7a2b5a2e3bf195b1de283e51c3f55a04956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afda01cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ec0a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a08dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351a01e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04c44b5e39b37b8cb502c941cdfec15123d1d2e70da484cae70df18eb43c5878da03cbb8f64c21f3488dc3a17ed5cfbeac187a9673e40ecb4c73fbcc4dceae467dea0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b3477fc9a5bfab5fdb5523251818ee5a6d52613c59502a3d2df58217f4e366cd9ef37dee55bf2c705a2b08e7808b6fa0c001a00e22855a71f7c31650eaf8335938ee97e916da21566e14046da73b02b0d161c6a070b1f23ed27aa070cbdda6e8df2d8a90a2144f997b5c6ef2cfbc6e3c84ae53c1c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x678c9f8ca07a25d0482a0306599574ca1bf7a2b5a2e3bf195b1de283e51c3f55", - "transactionsTrie": "0x4956ae2560cb5eea655bfc31852c85788567e45b96eea8cb216c67b03b814afd", - "receiptTrie": "0x1cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4c", + "stateRoot": "0x4c44b5e39b37b8cb502c941cdfec15123d1d2e70da484cae70df18eb43c5878d", + "transactionsTrie": "0x3cbb8f64c21f3488dc3a17ed5cfbeac187a9673e40ecb4c73fbcc4dceae467de", + "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ec0a", + "gasUsed": "0x028c9e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9611,33 +11982,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0957b059fad72b39349633787ac122a1207ebaad535ce8f987282a7e5aa0de11" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x678c9f8ca07a25d0482a0306599574ca1bf7a2b5a2e3bf195b1de283e51c3f55", - "receiptsRoot": "0x1cd77ad11d984b1ea60bb6b46188fdd129a9959acf194326fd53416ac732ca4c", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1ec0a", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0957b059fad72b39349633787ac122a1207ebaad535ce8f987282a7e5aa0de11", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc080a08dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351a01e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x77fe6f82e9e181674653ca4d9b339fcd0ea15b3f3d4e326bb9bc0073361474f9" }, "blocknumber": "1", "transactions": [ @@ -9650,11 +11995,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06b3477fc9a5bfab5fdb5523251818ee5a6d52613c59502a3d2df58217f4e366cd9ef37dee55bf2c705a2b08e7808b6fa0", "accessList": [], - "v": "0x00", - "r": "0x8dcecbb5ef87b5431d38477cc01452a1a9a0326a95616a4308bb60573f1ee351", - "s": "0x1e2b665403ad29dc09832d1d1d65e9721d57157fbcfc64fe0a18a5959db92968", + "v": "0x01", + "r": "0x0e22855a71f7c31650eaf8335938ee97e916da21566e14046da73b02b0d161c6", + "s": "0x70b1f23ed27aa070cbdda6e8df2d8a90a2144f997b5c6ef2cfbc6e3c84ae53c1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9662,45 +12007,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0957b059fad72b39349633787ac122a1207ebaad535ce8f987282a7e5aa0de11", - "network": "Cancun", + "lastblockhash": "0x77fe6f82e9e181674653ca4d9b339fcd0ea15b3f3d4e326bb9bc0073361474f9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -9709,53 +12029,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff28bba", + "balance": "0xffffffffffffee27ae", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "062-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_c5e1490d672d026d": { + "092-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f0ed3dc11cdeb130": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa006fda1f5a98396f99e0528428beb7bfeccdfcbce4fcc3077050853d8219ad8a5a051c745c9a4be1d3f164a4e28eae02c034a5e6baf5022bf58f5200a8aed25da40a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480680c0d129b845321df0c5b09d06d5cee182cf743783f33d7927735e91a08a4055b4053be9cb84ba370ea275f4b91da2bfc080a01fe8e9d5179e43ab6d566bffededfeaabd68db720b2df3d6155eb00445d15830a051924536cc2eb63e70a8e0c900c2e62eaa248b2f08f9678216652222375efc3cc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa012a96687713d87fcb8dbff4ab41fd84072b423a790fd590a8b48c1b68f203430a0969fc262711bb984324b938f6758d2061a90cc922ccd6ab53c59fa054ab63161a015a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efb20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a98e15cbf800b69b90bfcaf1d907a9889c7743f7e5a19ee4b557471c005600f56d78e3dd887b2f5b87d76405b80dd2115c080a0095e1cc40213a480ea2851dfccecfef669a825673679ed086612336af0beacdfa0664a24c68797b38dc135d4705a58c6132853afe099432ad2d8384f9609281bbac0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x06fda1f5a98396f99e0528428beb7bfeccdfcbce4fcc3077050853d8219ad8a5", - "transactionsTrie": "0x51c745c9a4be1d3f164a4e28eae02c034a5e6baf5022bf58f5200a8aed25da40", - "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", + "stateRoot": "0x12a96687713d87fcb8dbff4ab41fd84072b423a790fd590a8b48c1b68f203430", + "transactionsTrie": "0x969fc262711bb984324b938f6758d2061a90cc922ccd6ab53c59fa054ab63161", + "receiptTrie": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028cb6", + "gasUsed": "0x01efb2", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9765,33 +12112,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x22cc4c72aad65c146b67bf8155d4baebe847dfa361ad76522d87d80f584d9771" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x06fda1f5a98396f99e0528428beb7bfeccdfcbce4fcc3077050853d8219ad8a5", - "receiptsRoot": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28cb6", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x22cc4c72aad65c146b67bf8155d4baebe847dfa361ad76522d87d80f584d9771", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480680c0d129b845321df0c5b09d06d5cee182cf743783f33d7927735e91a08a4055b4053be9cb84ba370ea275f4b91da2bfc080a01fe8e9d5179e43ab6d566bffededfeaabd68db720b2df3d6155eb00445d15830a051924536cc2eb63e70a8e0c900c2e62eaa248b2f08f9678216652222375efc3c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x15b8eb47108f60520cf41b35d331598de50524890fe113f9c69c51339402f65a" }, "blocknumber": "1", "transactions": [ @@ -9804,11 +12125,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d3630624d25032e67a7e6a4910df5834b8fe70e6bcfeeac0352434196bdf4b2485d5a1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480680c0d129b845321df0c5b09d06d5cee182cf743783f33d7927735e91a08a4055b4053be9cb84ba370ea275f4b91da2bf", + "data": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e00000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964b49d88afcd7f6c61a8ea69eff5f609d2432b47e7e4cd50b02cdddb4e0c1460517e8df02e4e64dc55e3d8ca192d57193a98e15cbf800b69b90bfcaf1d907a9889c7743f7e5a19ee4b557471c005600f56d78e3dd887b2f5b87d76405b80dd2115", "accessList": [], "v": "0x00", - "r": "0x1fe8e9d5179e43ab6d566bffededfeaabd68db720b2df3d6155eb00445d15830", - "s": "0x51924536cc2eb63e70a8e0c900c2e62eaa248b2f08f9678216652222375efc3c", + "r": "0x095e1cc40213a480ea2851dfccecfef669a825673679ed086612336af0beacdf", + "s": "0x664a24c68797b38dc135d4705a58c6132853afe099432ad2d8384f9609281bba", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9816,45 +12137,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x22cc4c72aad65c146b67bf8155d4baebe847dfa361ad76522d87d80f584d9771", - "network": "Cancun", + "lastblockhash": "0x15b8eb47108f60520cf41b35d331598de50524890fe113f9c69c51339402f65a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -9863,55 +12159,78 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + "0x01": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e", + "0x04": "0x01228461eb9cfa5aecb883d64f7434b6c092be63e8599fa9da8473a13f8b804e" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee2706", + "balance": "0xfffffffffffff27222", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "063-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_cae5d3491190b777": { + "093-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f47eb9fc139f6bfd": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02b84478dd281fb84271de2cd957bba7d2db7c3b193a576ab521bbbf54aa0ea91a09674cfa1ac60e3f323cefdbe1f455380fed3f446dd2190e29bf499514c4ecd92a0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7af62efd28d2f6a4d044da3db338612b43f453b7746999c7501f5be48c1dce51e481b5cfe5ec93f90264ba0655782ffe9c001a05af3651144b6db2d2b4486ebc7d37c5036e0187b78113d17483c17e7474686eca051d5ed9810bac2f80217a8cafb605d6088551cedd4611961368380500a834e9bc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50a0b01a58e525e5c8e075b9cf95fd78c5876f82c6149b3c273299d8370144497550a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b798613e9e1b1ed52fc2fdc54e945b863ff52870e6565307ff9e32327196d7a03c428fc51a9abedc97de2a68daa1274b50c001a00b1dd21bc52e26bc253461aac815ad347ba3b80b031e64585a3f509f29def9dda04e86e016839d180a695392d3b3f3bf91f8fcb23e155f7edf2c67363c66e4c1e1c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2b84478dd281fb84271de2cd957bba7d2db7c3b193a576ab521bbbf54aa0ea91", - "transactionsTrie": "0x9674cfa1ac60e3f323cefdbe1f455380fed3f446dd2190e29bf499514c4ecd92", - "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", + "stateRoot": "0x80463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50", + "transactionsTrie": "0xb01a58e525e5c8e075b9cf95fd78c5876f82c6149b3c273299d8370144497550", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c9e", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -9921,33 +12240,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8a59947c9fc6dcb6eacd0c8aee3b65c4263918224a500c4f33ed9ef2b166fcc3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2b84478dd281fb84271de2cd957bba7d2db7c3b193a576ab521bbbf54aa0ea91", - "receiptsRoot": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28c9e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8a59947c9fc6dcb6eacd0c8aee3b65c4263918224a500c4f33ed9ef2b166fcc3", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7af62efd28d2f6a4d044da3db338612b43f453b7746999c7501f5be48c1dce51e481b5cfe5ec93f90264ba0655782ffe9c001a05af3651144b6db2d2b4486ebc7d37c5036e0187b78113d17483c17e7474686eca051d5ed9810bac2f80217a8cafb605d6088551cedd4611961368380500a834e9b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2a2092031e6b32783ea664a205cad86d69e348005f0fdb8c2443cbbe5d56a127" }, "blocknumber": "1", "transactions": [ @@ -9960,11 +12253,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b95eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c622c9ae4f1d6d08558d7027df9cc6b248c21290075d2c0df8a4084d02090b3fa14a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7af62efd28d2f6a4d044da3db338612b43f453b7746999c7501f5be48c1dce51e481b5cfe5ec93f90264ba0655782ffe9", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b798613e9e1b1ed52fc2fdc54e945b863ff52870e6565307ff9e32327196d7a03c428fc51a9abedc97de2a68daa1274b50", "accessList": [], "v": "0x01", - "r": "0x5af3651144b6db2d2b4486ebc7d37c5036e0187b78113d17483c17e7474686ec", - "s": "0x51d5ed9810bac2f80217a8cafb605d6088551cedd4611961368380500a834e9b", + "r": "0x0b1dd21bc52e26bc253461aac815ad347ba3b80b031e64585a3f509f29def9dd", + "s": "0x4e86e016839d180a695392d3b3f3bf91f8fcb23e155f7edf2c67363c66e4c1e1", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -9972,45 +12265,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8a59947c9fc6dcb6eacd0c8aee3b65c4263918224a500c4f33ed9ef2b166fcc3", - "network": "Cancun", + "lastblockhash": "0x2a2092031e6b32783ea664a205cad86d69e348005f0fdb8c2443cbbe5d56a127", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -10019,55 +12287,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x01", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee27ae", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "064-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d0992bc0387790a4": { + "094-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f7f44e1e864aa967": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f825b912f0b0fec6c06a0ab589560df9e739da9e080b912234f1d17aac35d1fba09d97580ee8b29fe3ee44720b3a5502979449602bbbff6996b27ed99f5916ef36a08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480695c51f028ec8ace94b2c24fff6662e4c61ad7b315b799aa5f40fcf5b36b2f1b6f9fc23bc66290aeef1de7e6ee4cb52cec080a06f62747110dce51e6ea06763ff0d52961db3eb0c11ae2841137c605385861120a02bdfbc2fe318f511607f42a1176179a26e32a173e06f7e47fb4dbcdee16d5432c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0281da5a4e5f358c7a345c9dc95ae20c8061cf7443c31b8b8fc950ece84a1c9a4a0fd89dc294337822d255b544c80ada149275e1b882b77123614c5ee9a1bfe91b6a0045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efbe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a1d8f2a5ab22acdfc1a9492ee2e1c2cbde681b51b312bf718821937e5088cd8ee002b718264027d10c5c5855dabe0353c001a0d9ef3fce097d461df93b7c30d2c87be75223f06bed8d34140be5e5fa21f05c99a04833e5e03ebdaca7516110a8239582e5437a99cf909df4b0d9edd63906fef9dec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf825b912f0b0fec6c06a0ab589560df9e739da9e080b912234f1d17aac35d1fb", - "transactionsTrie": "0x9d97580ee8b29fe3ee44720b3a5502979449602bbbff6996b27ed99f5916ef36", - "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", + "stateRoot": "0x281da5a4e5f358c7a345c9dc95ae20c8061cf7443c31b8b8fc950ece84a1c9a4", + "transactionsTrie": "0xfd89dc294337822d255b544c80ada149275e1b882b77123614c5ee9a1bfe91b6", + "receiptTrie": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028caa", + "gasUsed": "0x01efbe", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10077,33 +12370,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0118c7e1614dea3f57dc14bda3a06e08be944893c60967dbf8f9f885c50b17e8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf825b912f0b0fec6c06a0ab589560df9e739da9e080b912234f1d17aac35d1fb", - "receiptsRoot": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28caa", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0118c7e1614dea3f57dc14bda3a06e08be944893c60967dbf8f9f885c50b17e8", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480695c51f028ec8ace94b2c24fff6662e4c61ad7b315b799aa5f40fcf5b36b2f1b6f9fc23bc66290aeef1de7e6ee4cb52cec080a06f62747110dce51e6ea06763ff0d52961db3eb0c11ae2841137c605385861120a02bdfbc2fe318f511607f42a1176179a26e32a173e06f7e47fb4dbcdee16d5432" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0e1f82cabf617e6eeb6aba9d9cab64de0451bd122adc791e3e7e9faf8c6f5321" }, "blocknumber": "1", "transactions": [ @@ -10116,57 +12383,32 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c624882cf0609af8c7cd4c256e63a35838c95a9ebbf6122540ab344b42fd66d32e1978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d165687565480695c51f028ec8ace94b2c24fff6662e4c61ad7b315b799aa5f40fcf5b36b2f1b6f9fc23bc66290aeef1de7e6ee4cb52ce", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af38f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7a1d8f2a5ab22acdfc1a9492ee2e1c2cbde681b51b312bf718821937e5088cd8ee002b718264027d10c5c5855dabe0353", "accessList": [], - "v": "0x00", - "r": "0x6f62747110dce51e6ea06763ff0d52961db3eb0c11ae2841137c605385861120", - "s": "0x2bdfbc2fe318f511607f42a1176179a26e32a173e06f7e47fb4dbcdee16d5432", + "v": "0x01", + "r": "0xd9ef3fce097d461df93b7c30d2c87be75223f06bed8d34140be5e5fa21f05c99", + "s": "0x4833e5e03ebdaca7516110a8239582e5437a99cf909df4b0d9edd63906fef9de", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0118c7e1614dea3f57dc14bda3a06e08be944893c60967dbf8f9f885c50b17e8", - "network": "Cancun", + } + ], + "lastblockhash": "0x0e1f82cabf617e6eeb6aba9d9cab64de0451bd122adc791e3e7e9faf8c6f5321", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -10175,55 +12417,78 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee275a", + "balance": "0xfffffffffffff271ce", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "065-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_d736268229bd87ec": { + "095-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ffa6e97b97146517": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07ea8dc5fe13b2fbde7276092d07e9874ffcb67f83dd7a2b1f939f6b3cadc320fa089e3f2e38b2654517083bee71b044f55d28fc4d2085a3b3acef88bfd32697697a0a32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c9e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efb8d91f1642376ff871e99eda3209fb7968520c5353522f31d1013e8925d05e7ea44f9117ccedfa03ef5f6fc8205080a7c001a09b2e5b4a99482889df72906e95764e37f693af4b2899382c26d50e7a33dcb3e8a02b9c1e23ad4b0aad8a239b8c1c6dcc9484b4ca3582396b0aa0264dc379b42eabc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148a09e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041aa04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6a007bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6ec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7ea8dc5fe13b2fbde7276092d07e9874ffcb67f83dd7a2b1f939f6b3cadc320f", - "transactionsTrie": "0x89e3f2e38b2654517083bee71b044f55d28fc4d2085a3b3acef88bfd32697697", - "receiptTrie": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", + "stateRoot": "0x2dd557933b240a480c9441c933c9116de1a5515d7b87c3c99282890455041148", + "transactionsTrie": "0x9e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041a", + "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028c9e", + "gasUsed": "0x02878e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10233,33 +12498,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9026431971fb14c87cdb56b9753114a9bcb815bded97e33e87b6ae4fa003f6fa" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7ea8dc5fe13b2fbde7276092d07e9874ffcb67f83dd7a2b1f939f6b3cadc320f", - "receiptsRoot": "0xa32384732813825eae70978f9a5ebdb708ef7bfa4276e4416720574e93b29ec2", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28c9e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9026431971fb14c87cdb56b9753114a9bcb815bded97e33e87b6ae4fa003f6fa", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efb8d91f1642376ff871e99eda3209fb7968520c5353522f31d1013e8925d05e7ea44f9117ccedfa03ef5f6fc8205080a7c001a09b2e5b4a99482889df72906e95764e37f693af4b2899382c26d50e7a33dcb3e8a02b9c1e23ad4b0aad8a239b8c1c6dcc9484b4ca3582396b0aa0264dc379b42eab" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694" }, "blocknumber": "1", "transactions": [ @@ -10272,11 +12511,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc55eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625fd58150b731b4facfcdd89c0e393ff842f5f2071303eff99b51e103161cd233b09ce4964278eff81a976fbc552488cb84fc4a102f004c87179cb912f49904d1e785ecaf5d184522a58e9035875440efb8d91f1642376ff871e99eda3209fb7968520c5353522f31d1013e8925d05e7ea44f9117ccedfa03ef5f6fc8205080a7", + "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", "accessList": [], "v": "0x01", - "r": "0x9b2e5b4a99482889df72906e95764e37f693af4b2899382c26d50e7a33dcb3e8", - "s": "0x2b9c1e23ad4b0aad8a239b8c1c6dcc9484b4ca3582396b0aa0264dc379b42eab", + "r": "0x8c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6", + "s": "0x07bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10284,45 +12523,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9026431971fb14c87cdb56b9753114a9bcb815bded97e33e87b6ae4fa003f6fa", - "network": "Cancun", + "lastblockhash": "0x3f7330c6d30012b6c01931898acbedd22fb95978079119ee4065c70111287694", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -10331,55 +12545,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x01d5316fb321b8feae3b48629b564d77dadcf1a8315e23b9913bcbbcc2a90bc5", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x02": "0x01", + "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", + "0x05": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee27ae", + "balance": "0xffffffffffffee4b1e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "066-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_e68d7111a2364a49": { + "096-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_392169c16a2e5ef6": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09e0c2462a7e1efed877ee66c45e77fc91d9c51f96f54cce882be9f3be35709c2a04e60f6172e67893b7f1badf5c2314709a64a9d1c92998fd276eedf9d56c52384a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a99a3f7861e6350419e20be7018f518a54db5ec93698a2565b53e6303d3f99fad5559ed047ad09031b1b64111ac31b25c080a006399b8d32d14e1522ee76cf02d4bbc2be59eadaadbdc535f2eb9db3420a802ba036bd95dec675a1be2a68c5931aab856fea3e482cbc84d1524cb7b62fdf74734bc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da270bf04ffe49b249cc831a7934e58a5439ec4655c9fc08bc874178c48e7dd6a0cf0526f58408133246b140bbf6c6cd40384721ba0278f4cdec84f6d9c739bf3aa0313fd85a62385fa633ce8b1277463d99221ff62346e916dfe75fd51cf4e6ab78b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a160c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a03837f331ef931a42d2bd503ccaec668d0a7af429aa8a2136a6c573f062458f70a00ea8b177eed412c3c780563d8e223612260c73e50b5346f975ca20b3e29b7ecfc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9e0c2462a7e1efed877ee66c45e77fc91d9c51f96f54cce882be9f3be35709c2", - "transactionsTrie": "0x4e60f6172e67893b7f1badf5c2314709a64a9d1c92998fd276eedf9d56c52384", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0xda270bf04ffe49b249cc831a7934e58a5439ec4655c9fc08bc874178c48e7dd6", + "transactionsTrie": "0xcf0526f58408133246b140bbf6c6cd40384721ba0278f4cdec84f6d9c739bf3a", + "receiptTrie": "0x313fd85a62385fa633ce8b1277463d99221ff62346e916dfe75fd51cf4e6ab78", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028a16", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10389,33 +12628,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1a894bc8046b16cda78bb47ad4a6b836a02295d62f91f916455c55248e94bf75" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9e0c2462a7e1efed877ee66c45e77fc91d9c51f96f54cce882be9f3be35709c2", - "receiptsRoot": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b42", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x1a894bc8046b16cda78bb47ad4a6b836a02295d62f91f916455c55248e94bf75", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a99a3f7861e6350419e20be7018f518a54db5ec93698a2565b53e6303d3f99fad5559ed047ad09031b1b64111ac31b25c080a006399b8d32d14e1522ee76cf02d4bbc2be59eadaadbdc535f2eb9db3420a802ba036bd95dec675a1be2a68c5931aab856fea3e482cbc84d1524cb7b62fdf74734b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x548d62acf8d2a905c85a08cf8f77154b0b76dff1eff163f7a41846c9eccfb27a" }, "blocknumber": "1", "transactions": [ @@ -10428,11 +12641,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb0000000000000000000000000000000000000000000000000000000000000002549345dd3612e36fab0ab7baffe3faa5b820d56b71348c89ecaf63f7c4f85370978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a99a3f7861e6350419e20be7018f518a54db5ec93698a2565b53e6303d3f99fad5559ed047ad09031b1b64111ac31b25", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000304962b3598a0adf33189fdfd9789feab1096ff40006900400000003fffffffca421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0x06399b8d32d14e1522ee76cf02d4bbc2be59eadaadbdc535f2eb9db3420a802b", - "s": "0x36bd95dec675a1be2a68c5931aab856fea3e482cbc84d1524cb7b62fdf74734b", + "v": "0x01", + "r": "0x3837f331ef931a42d2bd503ccaec668d0a7af429aa8a2136a6c573f062458f70", + "s": "0x0ea8b177eed412c3c780563d8e223612260c73e50b5346f975ca20b3e29b7ecf", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10440,45 +12653,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1a894bc8046b16cda78bb47ad4a6b836a02295d62f91f916455c55248e94bf75", - "network": "Cancun", + "lastblockhash": "0x548d62acf8d2a905c85a08cf8f77154b0b76dff1eff163f7a41846c9eccfb27a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -10487,55 +12675,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x02", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x02" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee3966", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "067-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ed6b180ec759bcf6": { + "097-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c1e8b38219e3e12": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0627116af51b0649a88ad6f0f18fefb59a2707074d5e5adcef749165cd113402ca0000691eac4000c3eea730513b6a2d9b797f30e420d04c607c9160ff8094945eda08b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028caa0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9af9bbe2e73d18f879bcc0867b22e8ac255040a0e85e258b6a8243bc12aa526067d1762dddf18fb25a9fced1cbdd9a447c080a0f5bd82b9c967246a56e75ee72508ba8e72addc869c5c033cdb2764c2a92467a0a0269568ccd014a132cc6063d738a8eff2fa4a9a1afe406239b2da3aaa31701dacc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa031a0af886db249a6ac069e774688d002210f1bdd5fcea7beee99ea1ad50159dea0f560637db06ff8a2aaf081b6d6cefe1fdbaacee532aa97dd83377edb7f766f37a07aedb86a7ca5e0d5f54c47999433049e8e614374dec3aa79bb5521ec5838fb12b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ed7e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a04e08c45058361f9bf900b2640430b0fd3960d2ac76885425b8b082479adcf2aea043a4feb89ff3a757f986129153eeec21464084c9ca5b3d63656d755969aeadd7c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x627116af51b0649a88ad6f0f18fefb59a2707074d5e5adcef749165cd113402c", - "transactionsTrie": "0x000691eac4000c3eea730513b6a2d9b797f30e420d04c607c9160ff8094945ed", - "receiptTrie": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", + "stateRoot": "0x31a0af886db249a6ac069e774688d002210f1bdd5fcea7beee99ea1ad50159de", + "transactionsTrie": "0xf560637db06ff8a2aaf081b6d6cefe1fdbaacee532aa97dd83377edb7f766f37", + "receiptTrie": "0x7aedb86a7ca5e0d5f54c47999433049e8e614374dec3aa79bb5521ec5838fb12", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028caa", + "gasUsed": "0x01ed7e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10545,33 +12758,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x097911a3a491826173d4ef76e627a3a6b6a901e25acba0eb9cc8e90066473743" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x627116af51b0649a88ad6f0f18fefb59a2707074d5e5adcef749165cd113402c", - "receiptsRoot": "0x8b7c217608f6432544e6a1adc0d96e91ba07f23c82941754aaf9783f4b89de84", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28caa", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x097911a3a491826173d4ef76e627a3a6b6a901e25acba0eb9cc8e90066473743", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9af9bbe2e73d18f879bcc0867b22e8ac255040a0e85e258b6a8243bc12aa526067d1762dddf18fb25a9fced1cbdd9a447c080a0f5bd82b9c967246a56e75ee72508ba8e72addc869c5c033cdb2764c2a92467a0a0269568ccd014a132cc6063d738a8eff2fa4a9a1afe406239b2da3aaa31701dac" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa33a8a4126c6e43aaf07049a8a51855f6bdcd70e3309445bfa0f9166bfdeb25c" }, "blocknumber": "1", "transactions": [ @@ -10584,11 +12771,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0991fc16086918023ba2301fb85054f814ef114cfce303650d90a456199c6196146cc1293a88384c6503be26d087f11c9af9bbe2e73d18f879bcc0867b22e8ac255040a0e85e258b6a8243bc12aa526067d1762dddf18fb25a9fced1cbdd9a447", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1000000000000000000000000000000000000000000000000000000000000000050625ad853cc21ba40594f79591e5d35c445ecf9453014da6524c0cf6367c359a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0xf5bd82b9c967246a56e75ee72508ba8e72addc869c5c033cdb2764c2a92467a0", - "s": "0x269568ccd014a132cc6063d738a8eff2fa4a9a1afe406239b2da3aaa31701dac", + "r": "0x4e08c45058361f9bf900b2640430b0fd3960d2ac76885425b8b082479adcf2ae", + "s": "0x43a4feb89ff3a757f986129153eeec21464084c9ca5b3d63656d755969aeadd7", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10596,45 +12783,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x097911a3a491826173d4ef76e627a3a6b6a901e25acba0eb9cc8e90066473743", - "network": "Cancun", + "lastblockhash": "0xa33a8a4126c6e43aaf07049a8a51855f6bdcd70e3309445bfa0f9166bfdeb25c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -10643,55 +12805,78 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", - "0x04": "0x010e9db8c7dce2a9c24dbc14fc8ba7b2186243bdeb66f5f916cccb20b0bdd5ff", - "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee275a", + "balance": "0xfffffffffffff2818e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "068-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f0ed3dc11cdeb130": { + "098-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c87ec986c2656c2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e87a1c1930753d4536927caecd71aada5f1cae784d0f6a132a74c745317413c2a0384530e2c7cb522ded9d8e1fc975a673f587ab97faa6edcdfcd6f546f2ace0e9a015a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efb20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a6b598c7936325f3d21e53c433720c65783d54bfddd83146f63247caba7aa25671641a9cc7b5a1ddcb229760f311cbb8c080a01014d16a615878d7b7c2875f83326490078db6f8fd6906de884050605f15df01a02e88ddff54a80578c4ccb0ab3ce79e55f433c769bc30028489cc74c17b252112c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069a6e5ec9e61c0dd420f55278ea240758028c85e1ca425810052542752c0215ea05da848f7c3284e96c06410a160cb0338f9112fa6fe880e1142c8e5de7b62e5cea05b37d7654e25aee3dc6c36ef65ac2675a8bb354cfe7ad68d4f303ec1ebb3dff0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a760c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a02b8972d475f2b8fd49d196ab6859ebc5088269cd9440c76ffa8b9e140703ea12a0188e3c6338bfb894197b95c85fb11e91645e1be92e2c219a25331db7d469aec0c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe87a1c1930753d4536927caecd71aada5f1cae784d0f6a132a74c745317413c2", - "transactionsTrie": "0x384530e2c7cb522ded9d8e1fc975a673f587ab97faa6edcdfcd6f546f2ace0e9", - "receiptTrie": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2", + "stateRoot": "0x69a6e5ec9e61c0dd420f55278ea240758028c85e1ca425810052542752c0215e", + "transactionsTrie": "0x5da848f7c3284e96c06410a160cb0338f9112fa6fe880e1142c8e5de7b62e5ce", + "receiptTrie": "0x5b37d7654e25aee3dc6c36ef65ac2675a8bb354cfe7ad68d4f303ec1ebb3dff0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01efb2", + "gasUsed": "0x028a76", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10701,33 +12886,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x40da5248822ea974bf405f3ab316e4a398289af6d3a5e968a782b708dd9b0cb4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe87a1c1930753d4536927caecd71aada5f1cae784d0f6a132a74c745317413c2", - "receiptsRoot": "0x15a792a3e4a2a7bf4e5203d28c75ccc9a1e08c1c67baa29ce3a1185c584b55e2", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1efb2", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x40da5248822ea974bf405f3ab316e4a398289af6d3a5e968a782b708dd9b0cb4", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a6b598c7936325f3d21e53c433720c65783d54bfddd83146f63247caba7aa25671641a9cc7b5a1ddcb229760f311cbb8c080a01014d16a615878d7b7c2875f83326490078db6f8fd6906de884050605f15df01a02e88ddff54a80578c4ccb0ab3ce79e55f433c769bc30028489cc74c17b252112" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2b1edfa630ff0fbf3ef5b1118b8aa64d9e8a0b7874ad0f19b158d09634017b70" }, "blocknumber": "1", "transactions": [ @@ -10740,11 +12899,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b900000000000000000000000000000000000000000000000000000000000000001ed7d14d1b3fb1a1890d67b81715531553ad798df2009b4311d9fe2bea6cb964a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca7a6b598c7936325f3d21e53c433720c65783d54bfddd83146f63247caba7aa25671641a9cc7b5a1ddcb229760f311cbb8", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d363066d928e13fe443e957d82e3e71d48cb65d51028eb4483e719bf8efcdf12f7c321a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], "v": "0x00", - "r": "0x1014d16a615878d7b7c2875f83326490078db6f8fd6906de884050605f15df01", - "s": "0x2e88ddff54a80578c4ccb0ab3ce79e55f433c769bc30028489cc74c17b252112", + "r": "0x2b8972d475f2b8fd49d196ab6859ebc5088269cd9440c76ffa8b9e140703ea12", + "s": "0x188e3c6338bfb894197b95c85fb11e91645e1be92e2c219a25331db7d469aec0", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10752,45 +12911,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x40da5248822ea974bf405f3ab316e4a398289af6d3a5e968a782b708dd9b0cb4", - "network": "Cancun", + "lastblockhash": "0x2b1edfa630ff0fbf3ef5b1118b8aa64d9e8a0b7874ad0f19b158d09634017b70", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -10799,53 +12933,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x564c0a11a0f704f4fc3e8acfe0f8245f0ad1347b378fbf96e206da11a5d36306" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff27222", + "balance": "0xffffffffffffee36c6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "069-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f47eb9fc139f6bfd": { + "099-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_420f2a187ce77035": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b595cf3a988ef51d59f605976be73ebafc6bb8443f5e295b8601387e83a9dad2a02473fc71fac6576b0825cd46e8d1a3bec85ce3634f393d15c7acb0ded63aeae3a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069331a4bf48d66edbf77db3778203ad7045ed762bcfb2fe3ded65763983208e78ec1ef255babab4b41875b9505d1fb129c001a0ccede97858b103429aa4ffcb178a984a75a67fae2fca85bb65ee612a23c1338ca07f2b4136051116784456c96450af3a2adf3168d0ed80c90007678fe464175306c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c45f6fbc1dc03631637a8cece1cea5fdcc40bd4ca04713f56fc26db31025c6c7a0a54fadc07d4cf9701c12295e2117c73aa6beaa3442e9e2a4d12ec9889979f2fea0cd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289020c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a038c1c7740a7cef0ee95b036edef176f98e83d51c287b930066719b4339376215a04df8d685d6c1e87bd117c798cdb3f7f8986ab2d22d8da041be9e9482f3b7ce25c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb595cf3a988ef51d59f605976be73ebafc6bb8443f5e295b8601387e83a9dad2", - "transactionsTrie": "0x2473fc71fac6576b0825cd46e8d1a3bec85ce3634f393d15c7acb0ded63aeae3", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0xc45f6fbc1dc03631637a8cece1cea5fdcc40bd4ca04713f56fc26db31025c6c7", + "transactionsTrie": "0xa54fadc07d4cf9701c12295e2117c73aa6beaa3442e9e2a4d12ec9889979f2fe", + "receiptTrie": "0xcd5198e7bb94cb328dee8f6d5b1c67c93cbefde9ed36fc23a528d3999b175a6a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028902", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -10855,33 +13016,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa0e55a04cf3e5f2c22607193024a868a95aec2d1f8954b3faabae0ae90ed809c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb595cf3a988ef51d59f605976be73ebafc6bb8443f5e295b8601387e83a9dad2", - "receiptsRoot": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b42", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa0e55a04cf3e5f2c22607193024a868a95aec2d1f8954b3faabae0ae90ed809c", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069331a4bf48d66edbf77db3778203ad7045ed762bcfb2fe3ded65763983208e78ec1ef255babab4b41875b9505d1fb129c001a0ccede97858b103429aa4ffcb178a984a75a67fae2fca85bb65ee612a23c1338ca07f2b4136051116784456c96450af3a2adf3168d0ed80c90007678fe464175306" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd556640634eefa8a1cd89bd248b23bb61776413363e1058ffed38f9ffab59cce" }, "blocknumber": "1", "transactions": [ @@ -10894,11 +13029,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec9978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d16568756548069331a4bf48d66edbf77db3778203ad7045ed762bcfb2fe3ded65763983208e78ec1ef255babab4b41875b9505d1fb129", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000022bf4e1f980eb94661a21affc4d7e6e56f214fe3e7dc4d20b98c66ffd43cabeb0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0xccede97858b103429aa4ffcb178a984a75a67fae2fca85bb65ee612a23c1338c", - "s": "0x7f2b4136051116784456c96450af3a2adf3168d0ed80c90007678fe464175306", + "v": "0x00", + "r": "0x38c1c7740a7cef0ee95b036edef176f98e83d51c287b930066719b4339376215", + "s": "0x4df8d685d6c1e87bd117c798cdb3f7f8986ab2d22d8da041be9e9482f3b7ce25", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -10906,45 +13041,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa0e55a04cf3e5f2c22607193024a868a95aec2d1f8954b3faabae0ae90ed809c", - "network": "Cancun", + "lastblockhash": "0xd556640634eefa8a1cd89bd248b23bb61776413363e1058ffed38f9ffab59cce", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -10953,55 +13063,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x02": "0x01", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x05": "0x01" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x02", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x02" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee40f2", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "070-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_f7f44e1e864aa967": { + "100-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_83e53423a2dd93fe": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ee74e74adc98d47fddbd898f3d81171344b254d46f04f2a47b3e080c8f94d431a01d7092ea700da38bb361b2a6d3a0c5e5202ec07197fe458abdca16667e16b724a0045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efbe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a2e739f11e3a85482c5a9941ac46608ddfe459b09fb21b81fcb8f0ac3993ac618639bff39aefb5356bee9ccd1a3ebb5cc080a01d7bc855cb0746f6efc3530efda15d083a449ab4d93ae0706f68ad0aa339ad07a0624576b1df2ec61e38f136790fb09d29cbaa84dc18e25f334a0a18a97af423dfc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c8b05c7fb0c0e00514c76ad1d1e3fa080d521102a927079693c0b55a43fa10f0a0cdc60ad22ae1fe5004eb088ab2d59654d5b4628a7392c40c0c92c5f69e706839a04f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288d20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0835d4b51ed0da335fd056fef9258d003fa59b9357aa385930f287dc279f00193a062a3974bc93b244e4d7892ae6f8d29ee2a1470ecf7458e559fb999d72171a901c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xee74e74adc98d47fddbd898f3d81171344b254d46f04f2a47b3e080c8f94d431", - "transactionsTrie": "0x1d7092ea700da38bb361b2a6d3a0c5e5202ec07197fe458abdca16667e16b724", - "receiptTrie": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed", + "stateRoot": "0xc8b05c7fb0c0e00514c76ad1d1e3fa080d521102a927079693c0b55a43fa10f0", + "transactionsTrie": "0xcdc60ad22ae1fe5004eb088ab2d59654d5b4628a7392c40c0c92c5f69e706839", + "receiptTrie": "0x4f151812b62aa8eff6f2c553aba828d87c739a8453016ed9ad095a5ec5044ec9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01efbe", + "gasUsed": "0x0288d2", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11011,33 +13146,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb6d0a2476bfeaf2ceac7b9b0d84ded7a0dbe26be661b356d07f4115a41090a7d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xee74e74adc98d47fddbd898f3d81171344b254d46f04f2a47b3e080c8f94d431", - "receiptsRoot": "0x045c9ee148e58fc5d3cb7e47323007813d27acc179d7298fc678bb7fafaf52ed", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1efbe", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb6d0a2476bfeaf2ceac7b9b0d84ded7a0dbe26be661b356d07f4115a41090a7d", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a2e739f11e3a85482c5a9941ac46608ddfe459b09fb21b81fcb8f0ac3993ac618639bff39aefb5356bee9ccd1a3ebb5cc080a01d7bc855cb0746f6efc3530efda15d083a449ab4d93ae0706f68ad0aa339ad07a0624576b1df2ec61e38f136790fb09d29cbaa84dc18e25f334a0a18a97af423df" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf25678a0c17933929b30a471db876d8953df067cb31f266037edc299dc5099a2" }, "blocknumber": "1", "transactions": [ @@ -11050,11 +13159,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb000000000000000000000000000000000000000000000000000000000000000061157104410181bdc6eac224aa9436ac268bdcfeecb6badf71d228adda820af3978a0d595c823c05947b1156175e72634a377808384256e9921ebf72181890be2d6b58d4a73a880541d1656875654806a2e739f11e3a85482c5a9941ac46608ddfe459b09fb21b81fcb8f0ac3993ac618639bff39aefb5356bee9ccd1a3ebb5c", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x00", - "r": "0x1d7bc855cb0746f6efc3530efda15d083a449ab4d93ae0706f68ad0aa339ad07", - "s": "0x624576b1df2ec61e38f136790fb09d29cbaa84dc18e25f334a0a18a97af423df", + "v": "0x01", + "r": "0x835d4b51ed0da335fd056fef9258d003fa59b9357aa385930f287dc279f00193", + "s": "0x62a3974bc93b244e4d7892ae6f8d29ee2a1470ecf7458e559fb999d72171a901", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11062,45 +13171,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb6d0a2476bfeaf2ceac7b9b0d84ded7a0dbe26be661b356d07f4115a41090a7d", - "network": "Cancun", + "lastblockhash": "0xf25678a0c17933929b30a471db876d8953df067cb31f266037edc299dc5099a2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11109,53 +13193,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb", - "0x04": "0x01d18459b334ffe8e2226eef1db874fda6db2bdd9357268b39220af2d59464fb" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x01", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff271ce", + "balance": "0xffffffffffffee4242", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "071-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_ffa6e97b97146517": { + "101-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_incorrect_proof_point_at_infinity_ed6b180ec759bcf6": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa089f344bb9d47ceea43cbf4c0e18a57d744577f00068e9451cfc92875577b1c21a09e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041aa04386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6a007bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6ec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ddaaf48016359afad49df46e3e146ffae6bf78072927435f3ba2c4fdd52b0fc5a0e92ce5c7a3b44d5c1e67c9fc61483828f2515885923bbc92b154910d20d39ab4a0016842b977ca2488af689e83f0b510e3368e0c80a1d2d4479f5a015c5b56938eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a6a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a09edfaad74a93ef4ec70995e2be3d12acff82d8e1fc3384e60953c432a87fc585a063d5d737ecc3d1a6c91b0d6f5415dc7dcaa107bda2ab5cff59302d90fa93648ec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x89f344bb9d47ceea43cbf4c0e18a57d744577f00068e9451cfc92875577b1c21", - "transactionsTrie": "0x9e0ddd239d392d6f727334e86dbe6e14ee09f79fc5a700151247e4636365041a", - "receiptTrie": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", + "stateRoot": "0xddaaf48016359afad49df46e3e146ffae6bf78072927435f3ba2c4fdd52b0fc5", + "transactionsTrie": "0xe92ce5c7a3b44d5c1e67c9fc61483828f2515885923bbc92b154910d20d39ab4", + "receiptTrie": "0x016842b977ca2488af689e83f0b510e3368e0c80a1d2d4479f5a015c5b56938e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02878e", + "gasUsed": "0x028a6a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11165,33 +13276,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6546ab7661104bb12f2558a88a658f73dfab8d1c9b8fbf4f2a94af80caa141fe" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x89f344bb9d47ceea43cbf4c0e18a57d744577f00068e9451cfc92875577b1c21", - "receiptsRoot": "0x4386b450bd7c63d7edd63ccdf927d98e9907cb98731f0391734b8adb8bb205ad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2878e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6546ab7661104bb12f2558a88a658f73dfab8d1c9b8fbf4f2a94af80caa141fe", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc001a08c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6a007bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2118bf9e3a27cd3ca1059610ca6911b67a0b4be3fdaf96e38ee3bc7a0908d07b" }, "blocknumber": "1", "transactions": [ @@ -11204,11 +13289,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f15eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c625ee1e9a4a06a02ca6ea14b0ca73415a8ba0fba888f18dde56df499b480d4b9e0a421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d06c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "accessList": [], - "v": "0x01", - "r": "0x8c2a5bec7de92d741f12030db06d2a4167e9de965113e485356cd4cc858095e6", - "s": "0x07bd7af5a95fd1c7c0403a9873f0705e18ab779de27f7b920b7bfb059d83cd6e", + "v": "0x00", + "r": "0x9edfaad74a93ef4ec70995e2be3d12acff82d8e1fc3384e60953c432a87fc585", + "s": "0x63d5d737ecc3d1a6c91b0d6f5415dc7dcaa107bda2ab5cff59302d90fa93648e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11216,45 +13301,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6546ab7661104bb12f2558a88a658f73dfab8d1c9b8fbf4f2a94af80caa141fe", - "network": "Cancun", + "lastblockhash": "0x2118bf9e3a27cd3ca1059610ca6911b67a0b4be3fdaf96e38ee3bc7a0908d07b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11263,55 +13323,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x02": "0x01", - "0x04": "0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014", - "0x05": "0x01" + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x02": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", + "0x05": "0x5eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c62" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4b1e", + "balance": "0xffffffffffffee371a", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "072-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_1b44e341d56c757d": { + "102-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_1b44e341d56c757d": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf9036ff9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09047b278c3a3966b8905f3e86099799309e4e3a56613145b04b9af0b22b85fa8a0419349e8571a881cc7208e90a33e328c16a2a621346310fc7c3f9f0e6eb2c4efa01db70b5b44754070ec0aadbf33226fc81e1c8d7a1e737f5ea9da94d39bd5bfcfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b260c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a0814573a8d09abfa5fd301d77ad5d6fae33211588898cb9976bd7f375a0fe61bba06dd7c58d31e48f379b3afa551172f79ff15f6699e69f4acc5e565c8680e5a503c0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ce0aec3039e7ad67431725efacb00523c3f4c392149a59da74278d9b28406535a00c0b6f4df3390310b67295691f4cd21d342e173dc1c9cba536b8aadb86715aa3a0c1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028af60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc001a0f05fb8ee4257875c13b42f75939f17df726b98bbfe3b69073aa363c074e51956a00ebccc14cc832a596833d519b63a70e9bbb6a1e0617ece789b6578099dc8a4dbc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9047b278c3a3966b8905f3e86099799309e4e3a56613145b04b9af0b22b85fa8", - "transactionsTrie": "0x419349e8571a881cc7208e90a33e328c16a2a621346310fc7c3f9f0e6eb2c4ef", - "receiptTrie": "0x1db70b5b44754070ec0aadbf33226fc81e1c8d7a1e737f5ea9da94d39bd5bfcf", + "stateRoot": "0xce0aec3039e7ad67431725efacb00523c3f4c392149a59da74278d9b28406535", + "transactionsTrie": "0x0c0b6f4df3390310b67295691f4cd21d342e173dc1c9cba536b8aadb86715aa3", + "receiptTrie": "0xc1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b26", + "gasUsed": "0x028af6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11321,33 +13406,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbedc95abd97702910c10a453dc37f08e5d1f561bb1c53338f73bf54f6c3b53ad" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9047b278c3a3966b8905f3e86099799309e4e3a56613145b04b9af0b22b85fa8", - "receiptsRoot": "0x1db70b5b44754070ec0aadbf33226fc81e1c8d7a1e737f5ea9da94d39bd5bfcf", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b26", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xbedc95abd97702910c10a453dc37f08e5d1f561bb1c53338f73bf54f6c3b53ad", - "transactions": [ - "0x02f9012301808007830f424094000000000000000000000000000000000000010080b8bf01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a0814573a8d09abfa5fd301d77ad5d6fae33211588898cb9976bd7f375a0fe61bba06dd7c58d31e48f379b3afa551172f79ff15f6699e69f4acc5e565c8680e5a503" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x84dce0572d97f649cf3c2567441429b073b0addaad1c9a4f34d37efee4104ace" }, "blocknumber": "1", "transactions": [ @@ -11360,11 +13419,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", + "data": "0x01006f45971fc97298102573b98a02c4667995f43764f95a21b2f068c7bccc2e00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", "accessList": [], - "v": "0x00", - "r": "0x814573a8d09abfa5fd301d77ad5d6fae33211588898cb9976bd7f375a0fe61bb", - "s": "0x6dd7c58d31e48f379b3afa551172f79ff15f6699e69f4acc5e565c8680e5a503", + "v": "0x01", + "r": "0xf05fb8ee4257875c13b42f75939f17df726b98bbfe3b69073aa363c074e51956", + "s": "0x0ebccc14cc832a596833d519b63a70e9bbb6a1e0617ece789b6578099dc8a4db", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11372,45 +13431,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbedc95abd97702910c10a453dc37f08e5d1f561bb1c53338f73bf54f6c3b53ad", - "network": "Cancun", + "lastblockhash": "0x84dce0572d97f649cf3c2567441429b073b0addaad1c9a4f34d37efee4104ace", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11419,14 +13453,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11438,36 +13464,69 @@ "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee31f6", + "balance": "0xffffffffffffee3346", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "073-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_32afa9561a4b3b91": { + "103-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_32afa9561a4b3b91": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f36d3d3e9279772724f15da9edb72e915649cec7f94d4d56e0ca3118d16a0cbea0dcc371212c7240e779e11cf38d2c2f277175bfc1cfbd5532494f9379fff1f2fba00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f40000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a029d91af9d2dbfff89af21b78c3c3547c21f7125cbf38c87439be538f4c78d611a058c846c9c17083d2981fa72571901d8cdef98e55d7354093d249d0b163261f8fc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa049d77b1134a7f664da5a2cb001933a7f54ba3785cbac033cefae5f3c478d08b7a0f1cdcc62f37484c5435e66330383ec9f5eafba591633d7e9d5be11acd3665e87a04e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b120c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f400000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc001a00396e2fe037d79b74d6c66c829d2ec42200d36a14e899d70a8e1a2de5b3c1455a0343efb08716e9f1b429eab9b183a8ee8225b11acb08730559a0472a0ee5bcaedc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf36d3d3e9279772724f15da9edb72e915649cec7f94d4d56e0ca3118d16a0cbe", - "transactionsTrie": "0xdcc371212c7240e779e11cf38d2c2f277175bfc1cfbd5532494f9379fff1f2fb", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0x49d77b1134a7f664da5a2cb001933a7f54ba3785cbac033cefae5f3c478d08b7", + "transactionsTrie": "0xf1cdcc62f37484c5435e66330383ec9f5eafba591633d7e9d5be11acd3665e87", + "receiptTrie": "0x4e8d678e548e6c41a056eb0927bbc3e4d80e564d9d674fea8bbc1783049e898a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028b12", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11477,33 +13536,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x928731ff76034be76c012da9c766cda65f99a21e584840f449f262ae57dda04f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf36d3d3e9279772724f15da9edb72e915649cec7f94d4d56e0ca3118d16a0cbe", - "receiptsRoot": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b42", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x928731ff76034be76c012da9c766cda65f99a21e584840f449f262ae57dda04f", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f40000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a029d91af9d2dbfff89af21b78c3c3547c21f7125cbf38c87439be538f4c78d611a058c846c9c17083d2981fa72571901d8cdef98e55d7354093d249d0b163261f8f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xeb12de866f42db18fec9fe65c7c706e69148f265928d2d481f3baa8039de4203" }, "blocknumber": "1", "transactions": [ @@ -11516,11 +13549,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f40000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", + "data": "0x016564752c546f453adeb98716f70a1167a34ffcc8aa605e2f3b0e0dbd8804f400000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefb0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", "accessList": [], - "v": "0x00", - "r": "0x29d91af9d2dbfff89af21b78c3c3547c21f7125cbf38c87439be538f4c78d611", - "s": "0x58c846c9c17083d2981fa72571901d8cdef98e55d7354093d249d0b163261f8f", + "v": "0x01", + "r": "0x0396e2fe037d79b74d6c66c829d2ec42200d36a14e899d70a8e1a2de5b3c1455", + "s": "0x343efb08716e9f1b429eab9b183a8ee8225b11acb08730559a0472a0ee5bcaed", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11528,45 +13561,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x928731ff76034be76c012da9c766cda65f99a21e584840f449f262ae57dda04f", - "network": "Cancun", + "lastblockhash": "0xeb12de866f42db18fec9fe65c7c706e69148f265928d2d481f3baa8039de4203", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11575,14 +13583,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11594,36 +13594,69 @@ "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee3282", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "074-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_3e55802a5ed3c757": { + "104-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_3e55802a5ed3c757": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90371f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa078829b3c1cc4d59e87f78a40aa640fd5179047ccae3f3b5e6f688fe713fceac8a0fadf4202b0ad9b1a272c261b04af316b56643c358925a4cd670068527428fb34a048644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b4c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a07a28a3570fd003c028912ff9bd518d0eb78ddfdf2af8654606b47acd6c448760a05914ab01e1b345fe3997029e800ca0bb053798bee29020a34e465fa1a650b7e8c0c0", + "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c795dbbe8b9418fdb29664cebecdb716ad2e795bb643d5a8f9919ddcf95c95bca0a8a7bbc2d828e0bec09041bdba1faae4a48a63f810d21ce8d74a4f743c3ff8e9a0dd60949e0bb928aede445e5c249fdcb40735f04fe45532000e49fffbef975987b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df900000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc001a0b1381e7a047df94ff8bbc74e2b80f32e06a243a4b40e772cbec5d950135168c3a019c9311fe07d1b68ae6789476624bc58832e2d373d506eca3e632f8e56472ed9c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x78829b3c1cc4d59e87f78a40aa640fd5179047ccae3f3b5e6f688fe713fceac8", - "transactionsTrie": "0xfadf4202b0ad9b1a272c261b04af316b56643c358925a4cd670068527428fb34", - "receiptTrie": "0x48644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435", + "stateRoot": "0xc795dbbe8b9418fdb29664cebecdb716ad2e795bb643d5a8f9919ddcf95c95bc", + "transactionsTrie": "0xa8a7bbc2d828e0bec09041bdba1faae4a48a63f810d21ce8d74a4f743c3ff8e9", + "receiptTrie": "0xdd60949e0bb928aede445e5c249fdcb40735f04fe45532000e49fffbef975987", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b4c", + "gasUsed": "0x028b1c", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11633,33 +13666,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x35a95d92766931e75ceb788525db7b21a9cdaed86da5e35f2a6a5d96d12a14cb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x78829b3c1cc4d59e87f78a40aa640fd5179047ccae3f3b5e6f688fe713fceac8", - "receiptsRoot": "0x48644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b4c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x35a95d92766931e75ceb788525db7b21a9cdaed86da5e35f2a6a5d96d12a14cb", - "transactions": [ - "0x02f9012501808007830f424094000000000000000000000000000000000000010080b8c101ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c080a07a28a3570fd003c028912ff9bd518d0eb78ddfdf2af8654606b47acd6c448760a05914ab01e1b345fe3997029e800ca0bb053798bee29020a34e465fa1a650b7e8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x42188d733180d8129bf4ce235696169a1716e6d319987466ba97318ea1ed538a" }, "blocknumber": "1", "transactions": [ @@ -11671,58 +13678,33 @@ "maxFeePerGas": "0x07", "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x01ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd5197f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", - "accessList": [], - "v": "0x00", - "r": "0x7a28a3570fd003c028912ff9bd518d0eb78ddfdf2af8654606b47acd6c448760", - "s": "0x5914ab01e1b345fe3997029e800ca0bb053798bee29020a34e465fa1a650b7e8", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x35a95d92766931e75ceb788525db7b21a9cdaed86da5e35f2a6a5d96d12a14cb", - "network": "Cancun", + "value": "0x00", + "data": "0x01ffadf79cefb539a58c0e96810cd9ffb95568686d2e4d0759e3fab348d32df900000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", + "accessList": [], + "v": "0x01", + "r": "0xb1381e7a047df94ff8bbc74e2b80f32e06a243a4b40e772cbec5d950135168c3", + "s": "0x19c9311fe07d1b68ae6789476624bc58832e2d373d506eca3e632f8e56472ed9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x42188d733180d8129bf4ce235696169a1716e6d319987466ba97318ea1ed538a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11731,14 +13713,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11750,36 +13724,69 @@ "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee30ec", + "balance": "0xffffffffffffee323c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "075-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_e9d3e9ec16fbc15f": { + "105-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_commitment_e9d3e9ec16fbc15f": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b19c7b64024378214f0efca874f8d3a35258fcd83dbca30f93a04f209440aba2a0e7293df226ef54ddd0de0317c08989572f4cfb06088a69300a49e2f79cc83d99a0f91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b360c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c001a07764a7c1c60477b83cf850029ebc6b3e7f485cb03ba1fd4567cf40faad1ab812a04ccc26eff80bacc4c79ff9a211f845cfa497f29dae82df03526e0f9f5a691819c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb7c1d8b594b5c62fd497fe489d8b3808efc3294a5a101363489ead2121ab770a0f7558ca8cf2279f3f64f58b68d8879c34c03f47e0bdf8710c253895c13d2bdb2a07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609fc080a01eefeb086ce3a73da67a33e695123e344dc7e163298449e1c69b8aed82aca06ca07a7cc252ee2f6225b89eaa803a04fb9415c1bb70f33dace2a78b0c4740bf46b9c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb19c7b64024378214f0efca874f8d3a35258fcd83dbca30f93a04f209440aba2", - "transactionsTrie": "0xe7293df226ef54ddd0de0317c08989572f4cfb06088a69300a49e2f79cc83d99", - "receiptTrie": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", + "stateRoot": "0xbb7c1d8b594b5c62fd497fe489d8b3808efc3294a5a101363489ead2121ab770", + "transactionsTrie": "0xf7558ca8cf2279f3f64f58b68d8879c34c03f47e0bdf8710c253895c13d2bdb2", + "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b36", + "gasUsed": "0x028b06", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11789,33 +13796,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x373af5a8abda8d0cb18c9c59d52099d2c96705d5ea277f6529ca5f04997db4bf" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb19c7b64024378214f0efca874f8d3a35258fcd83dbca30f93a04f209440aba2", - "receiptsRoot": "0xf91c3d227b7dd5018ec562a377541ab822d8b42bb7b9be413107620c7f882e25", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b36", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x373af5a8abda8d0cb18c9c59d52099d2c96705d5ea277f6529ca5f04997db4bf", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98c001a07764a7c1c60477b83cf850029ebc6b3e7f485cb03ba1fd4567cf40faad1ab812a04ccc26eff80bacc4c79ff9a211f845cfa497f29dae82df03526e0f9f5a691819" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1eb35fa0ddbceff197df41c9e082ca91537fe36ba4f60b3d9647bef6cbfabbbc" }, "blocknumber": "1", "transactions": [ @@ -11828,11 +13809,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc0000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd518123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0807b160e50107d5af2ac0c93eedc658eeb776d2416ecd9579b976795d0719eead66791c9603c703dc50a108d56823a98", + "data": "0x018b4962e42a010067618c230986810f6b2e12191db0762782c42bcf5462ebbc00000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffe8123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0b0c829a8d2d3405304fecbea193e6c67f7c3912a6adc7c3737ad3f8a3b750425c1531a7426f03033a3994bc82a10609f", "accessList": [], - "v": "0x01", - "r": "0x7764a7c1c60477b83cf850029ebc6b3e7f485cb03ba1fd4567cf40faad1ab812", - "s": "0x4ccc26eff80bacc4c79ff9a211f845cfa497f29dae82df03526e0f9f5a691819", + "v": "0x00", + "r": "0x1eefeb086ce3a73da67a33e695123e344dc7e163298449e1c69b8aed82aca06c", + "s": "0x7a7cc252ee2f6225b89eaa803a04fb9415c1bb70f33dace2a78b0c4740bf46b9", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11840,45 +13821,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x373af5a8abda8d0cb18c9c59d52099d2c96705d5ea277f6529ca5f04997db4bf", - "network": "Cancun", + "lastblockhash": "0x1eb35fa0ddbceff197df41c9e082ca91537fe36ba4f60b3d9647bef6cbfabbbc", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11887,14 +13843,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -11906,36 +13854,69 @@ "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3186", + "balance": "0xffffffffffffee32d6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "076-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_1b44e341d56c757d": { + "106-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_1b44e341d56c757d": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf9036ff9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b41bd6955cfbe150cf6ce930c1ee39a5b81aca6b685564d76a50d0d13c82066ca0942f894330e0bca68d52778b6da6b110862cf8b8cfd85b31abc75b25f7116402a07f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b320c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6c001a065f3012afb7309499eeb850a79f9ea635e95d07821de949196c9d6b58e627e6da07d95c2f04aff352b21f153822599c16433b3d87b2923f7ca9a3ec8fda2081b66c0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a6d33a5398cbb9932d2e73230b8144bf1087033c183ba8bf38842c60a11c5290a0ffd7e24d10f745e4c48c7c70033a1705e03009d8f5596148b0de90f8dd1eb63fa0c1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028af60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6c080a017813aa62b80c27cd952a17be997859c348e8e890d18bb368c2f82c49dcb4f63a0051500541bde044f64d28f4ae91b9f3d0325c691544d82f626c229787aa2d11dc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb41bd6955cfbe150cf6ce930c1ee39a5b81aca6b685564d76a50d0d13c82066c", - "transactionsTrie": "0x942f894330e0bca68d52778b6da6b110862cf8b8cfd85b31abc75b25f7116402", - "receiptTrie": "0x7f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69e", + "stateRoot": "0xa6d33a5398cbb9932d2e73230b8144bf1087033c183ba8bf38842c60a11c5290", + "transactionsTrie": "0xffd7e24d10f745e4c48c7c70033a1705e03009d8f5596148b0de90f8dd1eb63f", + "receiptTrie": "0xc1beb940f48b852900eccbd84f8f564b642e6a0ec524d1efbe17750d1455e864", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b32", + "gasUsed": "0x028af6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -11945,33 +13926,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf42f10c480eafdf18e396cd047accdcfc72ee72dc494e8aa93959974ee6d60d2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb41bd6955cfbe150cf6ce930c1ee39a5b81aca6b685564d76a50d0d13c82066c", - "receiptsRoot": "0x7f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69e", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b32", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf42f10c480eafdf18e396cd047accdcfc72ee72dc494e8aa93959974ee6d60d2", - "transactions": [ - "0x02f9012301808007830f424094000000000000000000000000000000000000010080b8bf01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6c001a065f3012afb7309499eeb850a79f9ea635e95d07821de949196c9d6b58e627e6da07d95c2f04aff352b21f153822599c16433b3d87b2923f7ca9a3ec8fda2081b66" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbd42c194c69fba8b175c40a4c916f843c83c36d77463c460eef41456045a2392" }, "blocknumber": "1", "transactions": [ @@ -11984,11 +13939,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6", "accessList": [], - "v": "0x01", - "r": "0x65f3012afb7309499eeb850a79f9ea635e95d07821de949196c9d6b58e627e6d", - "s": "0x7d95c2f04aff352b21f153822599c16433b3d87b2923f7ca9a3ec8fda2081b66", + "v": "0x00", + "r": "0x17813aa62b80c27cd952a17be997859c348e8e890d18bb368c2f82c49dcb4f63", + "s": "0x051500541bde044f64d28f4ae91b9f3d0325c691544d82f626c229787aa2d11d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -11996,45 +13951,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf42f10c480eafdf18e396cd047accdcfc72ee72dc494e8aa93959974ee6d60d2", - "network": "Cancun", + "lastblockhash": "0xbd42c194c69fba8b175c40a4c916f843c83c36d77463c460eef41456045a2392", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -12043,55 +13973,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee31a2", + "balance": "0xffffffffffffee3346", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "077-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_32afa9561a4b3b91": { + "107-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_32afa9561a4b3b91": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a4c680a3131ee1f8340d828e0534291ff519060978ed750b7c2d1c82a476089a088cbdc065ade663e7abe3fd45a68e7a0941adc8e89b3efb52cfe01055aa5ac45a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefc080a0bf5dad24779b4c2c21a143ab883d45d48a43395d28277d08187eac28c7865c27a048bb7af5890eef08f89c8ab0148782ad1912c378c753eaeb83faebcfc98c688dc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67feda009086253b6b3042c79539042cc75abd9fb7f656b46968aeb61ca8c4719f9d81fa07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefc001a015b443da028c2adb70611098109931334e0381651779d7bbcf37e8b2338c61fda005d5efd2e84f1ef34eb7d274ac98f776b148aeed7ff9deb53c2ec882644c4b9dc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4a4c680a3131ee1f8340d828e0534291ff519060978ed750b7c2d1c82a476089", - "transactionsTrie": "0x88cbdc065ade663e7abe3fd45a68e7a0941adc8e89b3efb52cfe01055aa5ac45", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0xc86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67fed", + "transactionsTrie": "0x09086253b6b3042c79539042cc75abd9fb7f656b46968aeb61ca8c4719f9d81f", + "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028b06", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -12101,33 +14056,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdb943c6deb7b947fde10c73913c73195f2ab0894c0a5489769d01c8c0eea3f96" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4a4c680a3131ee1f8340d828e0534291ff519060978ed750b7c2d1c82a476089", - "receiptsRoot": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b42", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xdb943c6deb7b947fde10c73913c73195f2ab0894c0a5489769d01c8c0eea3f96", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdefc080a0bf5dad24779b4c2c21a143ab883d45d48a43395d28277d08187eac28c7865c27a048bb7af5890eef08f89c8ab0148782ad1912c378c753eaeb83faebcfc98c688d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6e5d6adfef9a7730731528af2f8cb49446345ee8962c5b656318d0f240b2c505" }, "blocknumber": "1", "transactions": [ @@ -12140,11 +14069,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", "accessList": [], - "v": "0x00", - "r": "0xbf5dad24779b4c2c21a143ab883d45d48a43395d28277d08187eac28c7865c27", - "s": "0x48bb7af5890eef08f89c8ab0148782ad1912c378c753eaeb83faebcfc98c688d", + "v": "0x01", + "r": "0x15b443da028c2adb70611098109931334e0381651779d7bbcf37e8b2338c61fd", + "s": "0x05d5efd2e84f1ef34eb7d274ac98f776b148aeed7ff9deb53c2ec882644c4b9d", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -12152,45 +14081,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdb943c6deb7b947fde10c73913c73195f2ab0894c0a5489769d01c8c0eea3f96", - "network": "Cancun", + "lastblockhash": "0x6e5d6adfef9a7730731528af2f8cb49446345ee8962c5b656318d0f240b2c505", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -12199,55 +14103,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee32d6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "078-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_3e55802a5ed3c757": { + "108-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_3e55802a5ed3c757": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90371f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01b99ef4897dfff5622123fac3ab7d38c8d4935dc079436d78082c9b46e170578a08fd44fa846ea5b5c834aac3739dd842a292bd2bed917647d91a7fdda788aa7d6a048644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b4c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00c001a021ff2b920a0c742023c10012b04ae4a42e3e05753800e056abb1d8cd6fc80075a036c2ab5bdd41ac63d46958e702905b4bd4acbe371a6e3aacab2c70e0e3f7ef32c0c0", + "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e51f6dd5f43d5eea7153454f10c98fbc705c7d55918089253e48d0147d796822a08429e8a6afc252f564f916c76ba29736df5a63c58d06255903d089b489c7a7bba0482ae97d122ee408fa6d344a6a7c7bd19c4ec4d35666ba16e464647e1ad761e6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b100c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c1014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00c080a003404d5cd90d535980899a8600e2d790d2979e41495ec835f76f8e1b2e1b78d4a007e322fddc46f21a63bf3e9dacfba8352de83ed54f285d6e0e4de81c1c1677afc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1b99ef4897dfff5622123fac3ab7d38c8d4935dc079436d78082c9b46e170578", - "transactionsTrie": "0x8fd44fa846ea5b5c834aac3739dd842a292bd2bed917647d91a7fdda788aa7d6", - "receiptTrie": "0x48644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435", + "stateRoot": "0xe51f6dd5f43d5eea7153454f10c98fbc705c7d55918089253e48d0147d796822", + "transactionsTrie": "0x8429e8a6afc252f564f916c76ba29736df5a63c58d06255903d089b489c7a7bb", + "receiptTrie": "0x482ae97d122ee408fa6d344a6a7c7bd19c4ec4d35666ba16e464647e1ad761e6", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b4c", + "gasUsed": "0x028b10", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -12257,33 +14186,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xeac3fa3ebe0a1703e4989567708ec60b94253cc39bd304b6326f49dffd1db643" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1b99ef4897dfff5622123fac3ab7d38c8d4935dc079436d78082c9b46e170578", - "receiptsRoot": "0x48644af60a049cc79548068c9161b8e3527b3b64cbac7d570429a14ae90cf435", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b4c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xeac3fa3ebe0a1703e4989567708ec60b94253cc39bd304b6326f49dffd1db643", - "transactions": [ - "0x02f9012501808007830f424094000000000000000000000000000000000000010080b8c101190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00c001a021ff2b920a0c742023c10012b04ae4a42e3e05753800e056abb1d8cd6fc80075a036c2ab5bdd41ac63d46958e702905b4bd4acbe371a6e3aacab2c70e0e3f7ef32" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x03503a9631c9d4a73eb4fb2afddb8daf6bc6122b4a4e80de11c25068d10479e2" }, "blocknumber": "1", "transactions": [ @@ -12296,11 +14199,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca797f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d0697f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb00", "accessList": [], - "v": "0x01", - "r": "0x21ff2b920a0c742023c10012b04ae4a42e3e05753800e056abb1d8cd6fc80075", - "s": "0x36c2ab5bdd41ac63d46958e702905b4bd4acbe371a6e3aacab2c70e0e3f7ef32", + "v": "0x00", + "r": "0x03404d5cd90d535980899a8600e2d790d2979e41495ec835f76f8e1b2e1b78d4", + "s": "0x07e322fddc46f21a63bf3e9dacfba8352de83ed54f285d6e0e4de81c1c1677af", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -12308,45 +14211,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xeac3fa3ebe0a1703e4989567708ec60b94253cc39bd304b6326f49dffd1db643", - "network": "Cancun", + "lastblockhash": "0x03503a9631c9d4a73eb4fb2afddb8daf6bc6122b4a4e80de11c25068d10479e2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -12355,55 +14233,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee30ec", + "balance": "0xffffffffffffee3290", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "079-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_e9d3e9ec16fbc15f": { + "109-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_proof_e9d3e9ec16fbc15f": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a4c680a3131ee1f8340d828e0534291ff519060978ed750b7c2d1c82a476089a01ee0ff90b680c2bb4a8543e932aff78751274a76bfc975075e9f7b854217616ea00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0c001a047a5f4eedceccff6d22babd288f2bd7b88a8706d0443922de36d18a0e101a455a0751037d311c5ef23bfbec3d5a190302606f8f46c8a7b090eade43df0ad3d5dc6c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67feda087991902b14e10548cc81b439568dcabfb07ab3503006f307d2b37c67b2e351fa07e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166ddb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b060c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0c080a03bc1cc3bc8adf06382c674e21088065fb34b3c134fba846ba64af7fc67bd936ea0576d774a37747222e60058b3189cdd979d9400ffba80b82ae2cf86702f1e82bec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4a4c680a3131ee1f8340d828e0534291ff519060978ed750b7c2d1c82a476089", - "transactionsTrie": "0x1ee0ff90b680c2bb4a8543e932aff78751274a76bfc975075e9f7b854217616e", - "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", + "stateRoot": "0xc86f9ab1d09cc7ce0eef9a92cec27b0e8f3a3ba000951e314a79d330e6b67fed", + "transactionsTrie": "0x87991902b14e10548cc81b439568dcabfb07ab3503006f307d2b37c67b2e351f", + "receiptTrie": "0x7e4702a3e2895822641438f25767dda1c05753a85603553561f28237ef5166dd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028b42", + "gasUsed": "0x028b06", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -12413,33 +14316,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x62e23069f05f73c57875012582814f9965078ef9c5ba2df1a635aced6932b3b5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4a4c680a3131ee1f8340d828e0534291ff519060978ed750b7c2d1c82a476089", - "receiptsRoot": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28b42", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x62e23069f05f73c57875012582814f9965078ef9c5ba2df1a635aced6932b3b5", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0c001a047a5f4eedceccff6d22babd288f2bd7b88a8706d0443922de36d18a0e101a455a0751037d311c5ef23bfbec3d5a190302606f8f46c8a7b090eade43df0ad3d5dc6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9cbd3d371f2acd8eec9a21670ed9845fe38c3be3f75a30276c4ce71cf8ef9b61" }, "blocknumber": "1", "transactions": [ @@ -12452,11 +14329,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b90000000000000000000000000000000000000000000000000000000000000001443e7af5274b52214ea6c775908c54519fea957eecd98069165a8b771082fd51a6696ac7117d8ecc2224a4368e20d367d2d67995a32a53752096a501e6477e3b76ab6969fcfcc93f1f2a0f0ed74d2ca78123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0", + "data": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f100000000000000000000000000000000000000000000000000000000000000011824b159acc5056f998c4fefecbc4ff55884b7fa0003480200000001fffffffea421e229565952cfff4ef3517100a97da1d4fe57956fa50a442f92af03b1bf37adacc8ad4ed209b31287ea5bb94d9d068123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde0", "accessList": [], - "v": "0x01", - "r": "0x47a5f4eedceccff6d22babd288f2bd7b88a8706d0443922de36d18a0e101a455", - "s": "0x751037d311c5ef23bfbec3d5a190302606f8f46c8a7b090eade43df0ad3d5dc6", + "v": "0x00", + "r": "0x3bc1cc3bc8adf06382c674e21088065fb34b3c134fba846ba64af7fc67bd936e", + "s": "0x576d774a37747222e60058b3189cdd979d9400ffba80b82ae2cf86702f1e82be", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -12464,45 +14341,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x62e23069f05f73c57875012582814f9965078ef9c5ba2df1a635aced6932b3b5", - "network": "Cancun", + "lastblockhash": "0x9cbd3d371f2acd8eec9a21670ed9845fe38c3be3f75a30276c4ce71cf8ef9b61", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -12511,55 +14363,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x01": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x02": "0x01", - "0x04": "0x01190503c43205b479ab7b9724143c39ec4a58a56457777d65a6eb4dd70285b9", + "0x04": "0x014edfed8547661f6cb416eba53061a2f6dce872c0497e6dd485a876fe2567f1", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3132", + "balance": "0xffffffffffffee32d6", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "080-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_35d08d612aad2197": { + "110-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_35d08d612aad2197": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f71d4ce09e60ed0a1e80227d74a6b4c5c6257efc6af4af24ee7de9e7f25c5b63a0766d2c1305fd9773facf097e8d03c63f82ca5e8b041df3e7c28d60f67cc35195a0cd67bcbc48561ef61154deee19760b5f235e5e6872027213a26ed4a9864120a8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302890e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cfbbfe701ca149cc6682901c7b33fc2d29fb210e9765a45842f5b9be5464b54ba07a3c681c61f6317674151b25b896213bc0920f3a0e0ac594f500418a4b0bdc6ac0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50a0825dd7c94c83edbb277467c453b73c32764b421939786e8948c74ae867299671a00854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b420c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0a4f488f6e5fd10cb45f6c6b90ab7fe3916250abc154d49773cd149c5f0dd3104a0343ebe85ec87372a0955fef79e6eed97cb8eeb9a4db7447d7c6f14dc76292844c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf71d4ce09e60ed0a1e80227d74a6b4c5c6257efc6af4af24ee7de9e7f25c5b63", - "transactionsTrie": "0x766d2c1305fd9773facf097e8d03c63f82ca5e8b041df3e7c28d60f67cc35195", - "receiptTrie": "0xcd67bcbc48561ef61154deee19760b5f235e5e6872027213a26ed4a9864120a8", + "stateRoot": "0x80463fa21af9bb16b8019e8c192c63860bb83ca4b7c879b2df6b7f2b4151ba50", + "transactionsTrie": "0x825dd7c94c83edbb277467c453b73c32764b421939786e8948c74ae867299671", + "receiptTrie": "0x0854bb42685e24f422ce120f50fb66172b6e3b3a7c0a79a9b11e7a49f8035e90", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02890e", + "gasUsed": "0x028b42", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -12569,33 +14446,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8bfa477969a461b11002425e8e3d8c5258362b669d77da517e74e1387e0112f9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf71d4ce09e60ed0a1e80227d74a6b4c5c6257efc6af4af24ee7de9e7f25c5b63", - "receiptsRoot": "0xcd67bcbc48561ef61154deee19760b5f235e5e6872027213a26ed4a9864120a8", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2890e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8bfa477969a461b11002425e8e3d8c5258362b669d77da517e74e1387e0112f9", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cfbbfe701ca149cc6682901c7b33fc2d29fb210e9765a45842f5b9be5464b54ba07a3c681c61f6317674151b25b896213bc0920f3a0e0ac594f500418a4b0bdc6a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x973e09227b5ecc812f91d74b589656431aff640dd6a654afa0210dfed664a518" }, "blocknumber": "1", "transactions": [ @@ -12608,11 +14459,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x00", - "r": "0xcfbbfe701ca149cc6682901c7b33fc2d29fb210e9765a45842f5b9be5464b54b", - "s": "0x7a3c681c61f6317674151b25b896213bc0920f3a0e0ac594f500418a4b0bdc6a", + "r": "0xa4f488f6e5fd10cb45f6c6b90ab7fe3916250abc154d49773cd149c5f0dd3104", + "s": "0x343ebe85ec87372a0955fef79e6eed97cb8eeb9a4db7447d7c6f14dc76292844", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -12620,45 +14471,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8bfa477969a461b11002425e8e3d8c5258362b669d77da517e74e1387e0112f9", - "network": "Cancun", + "lastblockhash": "0x973e09227b5ecc812f91d74b589656431aff640dd6a654afa0210dfed664a518", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -12667,55 +14493,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee409e", + "balance": "0xffffffffffffee3132", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "081-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4aa6def8c35c9097": { + "111-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4aa6def8c35c9097": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0844f28e6ce527b04401c57cebb1958f7e61296707cabfeb638833c231297ab29a05d4fd5903a2c80d6bf91a564fda4d31eaedf6e07ec443651f8e81a54ba3b1b4aa074136951726d9667071586badffebfa570056916bf1742d12ebef020ba802e5db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302884e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff00000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0942ab28d33abdfd19b27c49cd4f6eb1293be43fc9fa34f640680e2f7073eac51a051804ba32b1fe8dcd50404c5aa6f2a73af77e4a36aa96be8ed8965f4cb138accc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cf71ca1737d1aca03b5eff379c64f2bf212579bdf6f41c3d9b19337922af674ba0390287c85cc4c317ed57fd7f00e2014ba3a35c22a5110f58532c7e6ba11a0df9a01578743dc146433d0030a044a723cf642603b53cbf0eac3c9f78683d628b6edab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a820c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0abcf44b44b8dc5d10c1e8430d7dab45c471441db6f911375aa46f4659b501a10a018a1cc01f862937d428dc3c9beae20df73704707db38402ddf61bb3e41a69b86c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x844f28e6ce527b04401c57cebb1958f7e61296707cabfeb638833c231297ab29", - "transactionsTrie": "0x5d4fd5903a2c80d6bf91a564fda4d31eaedf6e07ec443651f8e81a54ba3b1b4a", - "receiptTrie": "0x74136951726d9667071586badffebfa570056916bf1742d12ebef020ba802e5d", + "stateRoot": "0xcf71ca1737d1aca03b5eff379c64f2bf212579bdf6f41c3d9b19337922af674b", + "transactionsTrie": "0x390287c85cc4c317ed57fd7f00e2014ba3a35c22a5110f58532c7e6ba11a0df9", + "receiptTrie": "0x1578743dc146433d0030a044a723cf642603b53cbf0eac3c9f78683d628b6eda", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02884e", + "gasUsed": "0x028a82", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -12725,33 +14576,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x01bf42b8174a1d7106523849ee081b622e646e4d552608da115a75885918973e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x844f28e6ce527b04401c57cebb1958f7e61296707cabfeb638833c231297ab29", - "receiptsRoot": "0x74136951726d9667071586badffebfa570056916bf1742d12ebef020ba802e5d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2884e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x01bf42b8174a1d7106523849ee081b622e646e4d552608da115a75885918973e", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff00000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0942ab28d33abdfd19b27c49cd4f6eb1293be43fc9fa34f640680e2f7073eac51a051804ba32b1fe8dcd50404c5aa6f2a73af77e4a36aa96be8ed8965f4cb138acc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x7633f15489df6a95a86ebe4fb833f85ea9a3cf18980087487ed93a2681194426" }, "blocknumber": "1", "transactions": [ @@ -12764,11 +14589,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff00000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001ffffffffffffffffffffffffffffffff000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x00", - "r": "0x942ab28d33abdfd19b27c49cd4f6eb1293be43fc9fa34f640680e2f7073eac51", - "s": "0x51804ba32b1fe8dcd50404c5aa6f2a73af77e4a36aa96be8ed8965f4cb138acc", + "r": "0xabcf44b44b8dc5d10c1e8430d7dab45c471441db6f911375aa46f4659b501a10", + "s": "0x18a1cc01f862937d428dc3c9beae20df73704707db38402ddf61bb3e41a69b86", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -12776,45 +14601,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x01bf42b8174a1d7106523849ee081b622e646e4d552608da115a75885918973e", - "network": "Cancun", - "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, + "lastblockhash": "0x7633f15489df6a95a86ebe4fb833f85ea9a3cf18980087487ed93a2681194426", + "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -12823,55 +14623,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee45de", + "balance": "0xffffffffffffee3672", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "082-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4e51cef08a61606f": { + "112-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_4e51cef08a61606f": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf9036ff9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bcccb0dec37cd5255fe51a7c69d1435f0b2aa39d89662d8012742b6b36d7310ba065dab34cb029302e875546e57ca96c3bddee252bd215772c58cb24fd71feafcca053e6fe058037ac206e18bb802401c083db816f4226ad8e57410dae375aab4e50b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302878a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e30b91ed2373b3635ef68da180c0b80afe4158e57b0441e3d0da4945d6b20ef9a026ea853b7c0850fc3b126be4c20b441215cb8ee94954a705721a4405e7608910c0c0", + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03879ff5b91815d383e3055ded5bb3b83f276716e6686e53a8ce16ca5d2f073cda07ac705a4ed201c330fb12e25758f551ff34a41e78a8155cff166a9b521742577a0f7c0e1bfbd82446f912d1cf2a191b0abca1de667d6182506064ef4260e628c47b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289be0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a077aaa6cfca256af621f2eac99b5047e388188cfd5e82fc29021aadd9829048f9a0250a53ca94c6c886026606d517ff0f1df062e6cb34f5fb5659cf994be1c0d213c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbcccb0dec37cd5255fe51a7c69d1435f0b2aa39d89662d8012742b6b36d7310b", - "transactionsTrie": "0x65dab34cb029302e875546e57ca96c3bddee252bd215772c58cb24fd71feafcc", - "receiptTrie": "0x53e6fe058037ac206e18bb802401c083db816f4226ad8e57410dae375aab4e50", + "stateRoot": "0x3879ff5b91815d383e3055ded5bb3b83f276716e6686e53a8ce16ca5d2f073cd", + "transactionsTrie": "0x7ac705a4ed201c330fb12e25758f551ff34a41e78a8155cff166a9b521742577", + "receiptTrie": "0xf7c0e1bfbd82446f912d1cf2a191b0abca1de667d6182506064ef4260e628c47", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02878a", + "gasUsed": "0x0289be", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -12881,33 +14706,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb0032d7007adc74c6095352217669dc86dd0c2b25604c577d03e29a60720dd64" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbcccb0dec37cd5255fe51a7c69d1435f0b2aa39d89662d8012742b6b36d7310b", - "receiptsRoot": "0x53e6fe058037ac206e18bb802401c083db816f4226ad8e57410dae375aab4e50", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2878a", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb0032d7007adc74c6095352217669dc86dd0c2b25604c577d03e29a60720dd64", - "transactions": [ - "0x02f9012301808007830f424094000000000000000000000000000000000000010080b8bf01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0e30b91ed2373b3635ef68da180c0b80afe4158e57b0441e3d0da4945d6b20ef9a026ea853b7c0850fc3b126be4c20b441215cb8ee94954a705721a4405e7608910" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x55fc1cd0ebf111ab1c7f7af4ba0119c31bc69e514c05aa2a00b5c2b41cdeaf59" }, "blocknumber": "1", "transactions": [ @@ -12920,11 +14719,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x01", - "r": "0xe30b91ed2373b3635ef68da180c0b80afe4158e57b0441e3d0da4945d6b20ef9", - "s": "0x26ea853b7c0850fc3b126be4c20b441215cb8ee94954a705721a4405e7608910", + "r": "0x77aaa6cfca256af621f2eac99b5047e388188cfd5e82fc29021aadd9829048f9", + "s": "0x250a53ca94c6c886026606d517ff0f1df062e6cb34f5fb5659cf994be1c0d213", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -12932,45 +14731,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb0032d7007adc74c6095352217669dc86dd0c2b25604c577d03e29a60720dd64", - "network": "Cancun", + "lastblockhash": "0x55fc1cd0ebf111ab1c7f7af4ba0119c31bc69e514c05aa2a00b5c2b41cdeaf59", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -12979,55 +14753,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4b3a", + "balance": "0xffffffffffffee3bce", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "083-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_64b9ff2b8f7dddee": { + "113-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_64b9ff2b8f7dddee": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ff0e12b105bb714e1666fe2cfe963080aad9fff47992bea02b4507c48ddcd244a01b614f0b09a6680c33d082a10e0db3671e14d0e5f407141d8b65ec14d2f1afa4a0f97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288ea0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0a92919408464945f4fa428f9f871923392b52cd22201025e26204a85f4193be1a07917f522774ceb1a157691e2812ad5033ae174671ce62514eff277b1ae5b29b8c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28a0332cde0d984c44e6833e4aa5c4e004560828fff4e68539cf86a9f721090eae2fa0281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000028f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a0b00a7cf98776dca380782d67b08492ed25d0db5c382a0e496f38f781082b4b05a0266ecd5062bf26f227a7a80e441e593629d0f373a074e41d5b451103d6ba0b0ec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xff0e12b105bb714e1666fe2cfe963080aad9fff47992bea02b4507c48ddcd244", - "transactionsTrie": "0x1b614f0b09a6680c33d082a10e0db3671e14d0e5f407141d8b65ec14d2f1afa4", - "receiptTrie": "0xf97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0", + "stateRoot": "0x607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28", + "transactionsTrie": "0x332cde0d984c44e6833e4aa5c4e004560828fff4e68539cf86a9f721090eae2f", + "receiptTrie": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288ea", + "gasUsed": "0x028b1e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -13037,33 +14836,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x20730ad8e8255c28ffe3faf0e6f8803fd3a26ccaa58bd89213a25f4fa0352d22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xff0e12b105bb714e1666fe2cfe963080aad9fff47992bea02b4507c48ddcd244", - "receiptsRoot": "0xf97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x288ea", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x20730ad8e8255c28ffe3faf0e6f8803fd3a26ccaa58bd89213a25f4fa0352d22", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0a92919408464945f4fa428f9f871923392b52cd22201025e26204a85f4193be1a07917f522774ceb1a157691e2812ad5033ae174671ce62514eff277b1ae5b29b8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1e0046d5a628fa96400e3aef310613c0d044d79b3bbff3818fce9c6294e3cea6" }, "blocknumber": "1", "transactions": [ @@ -13076,11 +14849,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000028f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x00", - "r": "0xa92919408464945f4fa428f9f871923392b52cd22201025e26204a85f4193be1", - "s": "0x7917f522774ceb1a157691e2812ad5033ae174671ce62514eff277b1ae5b29b8", + "v": "0x01", + "r": "0xb00a7cf98776dca380782d67b08492ed25d0db5c382a0e496f38f781082b4b05", + "s": "0x266ecd5062bf26f227a7a80e441e593629d0f373a074e41d5b451103d6ba0b0e", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -13088,45 +14861,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x20730ad8e8255c28ffe3faf0e6f8803fd3a26ccaa58bd89213a25f4fa0352d22", - "network": "Cancun", + "lastblockhash": "0x1e0046d5a628fa96400e3aef310613c0d044d79b3bbff3818fce9c6294e3cea6", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -13135,55 +14883,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee419a", + "balance": "0xffffffffffffee322e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "084-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_b358a2e763727b70": { + "114-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_b358a2e763727b70": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90371f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa090b36e1cc33d5ef605f4d321a9dda32083fbb3bf19e32e9d1095f0a8a62735e0a0255ad6f490f8c0a961b2b9769587c8dd330acbbfe52cf241fd647469abb65123a096e82396cb26c037436eb490f9afce540c053a724cf6baa0f311afcbbb237e0db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830287980c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0051ca0c4065fb5e81eba35abe4e22f15e972d1c0b3504ebab90de705bf67b80ca07e534a598742636a3e139b6a50a80f4f7532a45bef0bf6cc5addc97ae40d164ec0c0", + "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05cfd0a413cdd4db8087671ad9544967f07640f8406a0bc36523a1bfd4cd6827fa093ae44f7eb6de35ab5cec65e3d687c5a9ef1d0f99c15bb2853307aaf31ddbceea017703851fb93a6fada8e626927d5235096f7cdd7f463b362770cde38a98957fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289cc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a083d661d39d4f15825f4c1dee4103464fc0629b3049dc4670ba8f0d5ccdb8342ca07836a664ad89f040e458020c7abbfe427d160b0525f761bbe260982120ec4052c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x90b36e1cc33d5ef605f4d321a9dda32083fbb3bf19e32e9d1095f0a8a62735e0", - "transactionsTrie": "0x255ad6f490f8c0a961b2b9769587c8dd330acbbfe52cf241fd647469abb65123", - "receiptTrie": "0x96e82396cb26c037436eb490f9afce540c053a724cf6baa0f311afcbbb237e0d", + "stateRoot": "0x5cfd0a413cdd4db8087671ad9544967f07640f8406a0bc36523a1bfd4cd6827f", + "transactionsTrie": "0x93ae44f7eb6de35ab5cec65e3d687c5a9ef1d0f99c15bb2853307aaf31ddbcee", + "receiptTrie": "0x17703851fb93a6fada8e626927d5235096f7cdd7f463b362770cde38a98957fd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028798", + "gasUsed": "0x0289cc", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -13193,33 +14966,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc4918c2a3f4fdd80a2753c90f63f046a5bf136bfb2938c6fbc791b4405911300" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x90b36e1cc33d5ef605f4d321a9dda32083fbb3bf19e32e9d1095f0a8a62735e0", - "receiptsRoot": "0x96e82396cb26c037436eb490f9afce540c053a724cf6baa0f311afcbbb237e0d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28798", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc4918c2a3f4fdd80a2753c90f63f046a5bf136bfb2938c6fbc791b4405911300", - "transactions": [ - "0x02f9012501808007830f424094000000000000000000000000000000000000010080b8c101466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0051ca0c4065fb5e81eba35abe4e22f15e972d1c0b3504ebab90de705bf67b80ca07e534a598742636a3e139b6a50a80f4f7532a45bef0bf6cc5addc97ae40d164e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x458f520c98ce65310e09122e2f0d32ea3c4699dfd1e4fadc1e7d0f6db9287c6d" }, "blocknumber": "1", "transactions": [ @@ -13232,11 +14979,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000008f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x01", - "r": "0x051ca0c4065fb5e81eba35abe4e22f15e972d1c0b3504ebab90de705bf67b80c", - "s": "0x7e534a598742636a3e139b6a50a80f4f7532a45bef0bf6cc5addc97ae40d164e", + "r": "0x83d661d39d4f15825f4c1dee4103464fc0629b3049dc4670ba8f0d5ccdb8342c", + "s": "0x7836a664ad89f040e458020c7abbfe427d160b0525f761bbe260982120ec4052", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -13244,45 +14991,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc4918c2a3f4fdd80a2753c90f63f046a5bf136bfb2938c6fbc791b4405911300", - "network": "Cancun", + "lastblockhash": "0x458f520c98ce65310e09122e2f0d32ea3c4699dfd1e4fadc1e7d0f6db9287c6d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -13291,55 +15013,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee4ad8", + "balance": "0xffffffffffffee3b6c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "085-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_eb0601fec84cc5e9": { + "115-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_y_eb0601fec84cc5e9": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ff0e12b105bb714e1666fe2cfe963080aad9fff47992bea02b4507c48ddcd244a0594edb0e8f2dabb7d50259c8a1cb4dc0b8abd406a540682f183c141bf75fd224a0f97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288ea0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0c738f3ecb4e88dcd129c914104bbb6ad1148f39118260c088e9a5532e0366673a05992f2aa41bf35a8000c0b5e6e8f43e3398550a8d0e866df3154b6583b7ff3f7c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28a08b69bc324283550bef097396958b348fbe045daf8f10e08e050e6be2b089549aa0281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b1e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a04b6b9296b206e24b67ddf2901fdc1892d450b5006bfbded2b5319759a3a72b4fa060b25b41af14e878c6ef9e3cc1b2b7f61820047c4185e4fbf5c3d9b652a07641c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xff0e12b105bb714e1666fe2cfe963080aad9fff47992bea02b4507c48ddcd244", - "transactionsTrie": "0x594edb0e8f2dabb7d50259c8a1cb4dc0b8abd406a540682f183c141bf75fd224", - "receiptTrie": "0xf97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0", + "stateRoot": "0x607eaf2446bc3fc79e04124d7e1c53fdecb7e97834458dc61455f0112bf57f28", + "transactionsTrie": "0x8b69bc324283550bef097396958b348fbe045daf8f10e08e050e6be2b089549a", + "receiptTrie": "0x281d011e3703d82d12e71bfe03d8ec373698d75050e7ed8b449760541deb8771", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288ea", + "gasUsed": "0x028b1e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -13349,33 +15096,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x78dd6aeda13df976795549f47a0caeeeeeb942d69df256085972b6259bf9ca35" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xff0e12b105bb714e1666fe2cfe963080aad9fff47992bea02b4507c48ddcd244", - "receiptsRoot": "0xf97e45ecf4df2a6dd484502cd57592d7dcbb722cdb94891939dad70f0daf65e0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x288ea", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x78dd6aeda13df976795549f47a0caeeeeeb942d69df256085972b6259bf9ca35", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0c738f3ecb4e88dcd129c914104bbb6ad1148f39118260c088e9a5532e0366673a05992f2aa41bf35a8000c0b5e6e8f43e3398550a8d0e866df3154b6583b7ff3f7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x02407bcca980c43ba172d4fc38b0a13fd411c6609ae1a5aeb00814efa0f0dd7e" }, "blocknumber": "1", "transactions": [ @@ -13388,11 +15109,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b000000000000000000000000000000000000000000000000000000000000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x01", - "r": "0xc738f3ecb4e88dcd129c914104bbb6ad1148f39118260c088e9a5532e0366673", - "s": "0x5992f2aa41bf35a8000c0b5e6e8f43e3398550a8d0e866df3154b6583b7ff3f7", + "r": "0x4b6b9296b206e24b67ddf2901fdc1892d450b5006bfbded2b5319759a3a72b4f", + "s": "0x60b25b41af14e878c6ef9e3cc1b2b7f61820047c4185e4fbf5c3d9b652a07641", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -13400,45 +15121,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x78dd6aeda13df976795549f47a0caeeeeeb942d69df256085972b6259bf9ca35", - "network": "Cancun", + "lastblockhash": "0x02407bcca980c43ba172d4fc38b0a13fd411c6609ae1a5aeb00814efa0f0dd7e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -13447,55 +15143,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x01", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee419a", + "balance": "0xffffffffffffee322e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "086-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_35d08d612aad2197": { + "116-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_35d08d612aad2197": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa054a143dc95ef3d3c104a2fb92d0da11f66062dd8efd088bf1f181d08b13dc594a05ca3f5cec2142aca5d19dafdb37b94a24400525daed5f6031ee1c419180baf18a0b8173593abf172b0effa2ae8199eec3ba80ea8126d4b220a5e847b18b0bd5ef2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a520c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a08c1986e01288994845715251b1b7b4dac41d9ba7eb0619c9143b1743f68e4af5a06a17c79af57196c8285cc52da57e068ba39724db02910692919ded9690d655c3c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0637aa2f5082dbba51b84384c92da7f556fb9e062fa8425ab637ca6c1b28f314aa0017a2907b7e8ebf33b4ac0f85b148adb6a0be9ee18fb4dd7d915abd92d6e6d46a09fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028cb60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a03aebd07c5040166d3a73f53a6ba1e350144f6ecc5931a0b89308da57d4dc8a49a039cabde8293a6f0643a2e90b0165c066eccba206b6e1b5000160e80f3a7c4decc0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x54a143dc95ef3d3c104a2fb92d0da11f66062dd8efd088bf1f181d08b13dc594", - "transactionsTrie": "0x5ca3f5cec2142aca5d19dafdb37b94a24400525daed5f6031ee1c419180baf18", - "receiptTrie": "0xb8173593abf172b0effa2ae8199eec3ba80ea8126d4b220a5e847b18b0bd5ef2", + "stateRoot": "0x637aa2f5082dbba51b84384c92da7f556fb9e062fa8425ab637ca6c1b28f314a", + "transactionsTrie": "0x017a2907b7e8ebf33b4ac0f85b148adb6a0be9ee18fb4dd7d915abd92d6e6d46", + "receiptTrie": "0x9fc500ac1e9d91018d2eb0c7325b94c3ad5e3cf88c8354bedb47e138ba1ad117", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028a52", + "gasUsed": "0x028cb6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -13505,33 +15226,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf6a98993e2534f1296ac31e061497ad5086f2d1ac57a4f5f647633934d69404c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x54a143dc95ef3d3c104a2fb92d0da11f66062dd8efd088bf1f181d08b13dc594", - "receiptsRoot": "0xb8173593abf172b0effa2ae8199eec3ba80ea8126d4b220a5e847b18b0bd5ef2", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28a52", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf6a98993e2534f1296ac31e061497ad5086f2d1ac57a4f5f647633934d69404c", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a08c1986e01288994845715251b1b7b4dac41d9ba7eb0619c9143b1743f68e4af5a06a17c79af57196c8285cc52da57e068ba39724db02910692919ded9690d655c3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xee00f1169478c7105fc5d5bad6d9aaf0c965d0e90c43b1ab061aee80c08abedf" }, "blocknumber": "1", "transactions": [ @@ -13544,11 +15239,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x01", - "r": "0x8c1986e01288994845715251b1b7b4dac41d9ba7eb0619c9143b1743f68e4af5", - "s": "0x6a17c79af57196c8285cc52da57e068ba39724db02910692919ded9690d655c3", + "v": "0x00", + "r": "0x3aebd07c5040166d3a73f53a6ba1e350144f6ecc5931a0b89308da57d4dc8a49", + "s": "0x39cabde8293a6f0643a2e90b0165c066eccba206b6e1b5000160e80f3a7c4dec", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -13556,45 +15251,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf6a98993e2534f1296ac31e061497ad5086f2d1ac57a4f5f647633934d69404c", - "network": "Cancun", + "lastblockhash": "0xee00f1169478c7105fc5d5bad6d9aaf0c965d0e90c43b1ab061aee80c08abedf", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -13603,55 +15273,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee37c2", + "balance": "0xffffffffffffee2706", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "087-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4aa6def8c35c9097": { + "117-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4aa6def8c35c9097": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fce4984339fbc0d226d795a7fdd9a357d7cf7eebb90920f331b307499a535f36a0b1cd8b1a03cd886cb84a9d797f047314a59c04f5838091181e92dce560098464a098d9a33413478e62bb734c7983392a3e48eaa8c8ce97de39c2b575e2fdaece66b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830289920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffff0000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0b29c6647053a7e8584a8eba50d63d581c8ee115be69e96a955f63a532ecd4a71a02761c8808125c2a9a5daa99416fe3b7a613e6256ca8ef1b8b9b639205f744638c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00600ccad6edf4943407456f7b1b25c3a5cd14a1e54fc2f5d6511a9b12c080036a066207d11917d7a1e0c535fb4b40afa3161907a56dd8be2381bf90ab8b31478e6a0baab03e120fbd6154d0d7e52a3d4d42c290ad7b221a14c30651834e4d727d08bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028bf60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffff0000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a04859e01fa2588cfd8b5faeebb1d6d0b07ea41da182f1d2414e29d94ee646c442a06469561adbcefb90fb397c819b2ee2981190fe35de675b9c9bff935a54f722c2c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfce4984339fbc0d226d795a7fdd9a357d7cf7eebb90920f331b307499a535f36", - "transactionsTrie": "0xb1cd8b1a03cd886cb84a9d797f047314a59c04f5838091181e92dce560098464", - "receiptTrie": "0x98d9a33413478e62bb734c7983392a3e48eaa8c8ce97de39c2b575e2fdaece66", + "stateRoot": "0x0600ccad6edf4943407456f7b1b25c3a5cd14a1e54fc2f5d6511a9b12c080036", + "transactionsTrie": "0x66207d11917d7a1e0c535fb4b40afa3161907a56dd8be2381bf90ab8b31478e6", + "receiptTrie": "0xbaab03e120fbd6154d0d7e52a3d4d42c290ad7b221a14c30651834e4d727d08b", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028992", + "gasUsed": "0x028bf6", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -13661,33 +15356,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8dbaf2bf6cf999536ab33912447a4b2f7a478dce36a974d7f7009ab4a2ed1805" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfce4984339fbc0d226d795a7fdd9a357d7cf7eebb90920f331b307499a535f36", - "receiptsRoot": "0x98d9a33413478e62bb734c7983392a3e48eaa8c8ce97de39c2b575e2fdaece66", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28992", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8dbaf2bf6cf999536ab33912447a4b2f7a478dce36a974d7f7009ab4a2ed1805", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffff0000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0b29c6647053a7e8584a8eba50d63d581c8ee115be69e96a955f63a532ecd4a71a02761c8808125c2a9a5daa99416fe3b7a613e6256ca8ef1b8b9b639205f744638" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x33c644ca641428422b7838e6bb141a1c6ad3748561793856b92b28ddc1d60d8b" }, "blocknumber": "1", "transactions": [ @@ -13700,11 +15369,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0ffffffffffffffffffffffffffffffff0000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549bffffffffffffffffffffffffffffffff0000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], "v": "0x00", - "r": "0xb29c6647053a7e8584a8eba50d63d581c8ee115be69e96a955f63a532ecd4a71", - "s": "0x2761c8808125c2a9a5daa99416fe3b7a613e6256ca8ef1b8b9b639205f744638", + "r": "0x4859e01fa2588cfd8b5faeebb1d6d0b07ea41da182f1d2414e29d94ee646c442", + "s": "0x6469561adbcefb90fb397c819b2ee2981190fe35de675b9c9bff935a54f722c2", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -13712,45 +15381,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8dbaf2bf6cf999536ab33912447a4b2f7a478dce36a974d7f7009ab4a2ed1805", - "network": "Cancun", + "lastblockhash": "0x33c644ca641428422b7838e6bb141a1c6ad3748561793856b92b28ddc1d60d8b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -13759,120 +15403,47 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0xffffffffffffffffffffffffffffffff00000000000000000000000000000000", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0xffffffffffffffffffffffffffffffff00000000000000000000000000000000" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee3d02", + "balance": "0xffffffffffffee2c46", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "088-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4e51cef08a61606f": { + "118-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_4e51cef08a61606f": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf9036ff9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0036fd4f7451b6ea20a7b71812cfe98149bc8160dd8d1a5c415152fbea674d645a0fcab93baf6a6f901168c6f3238af1b9fc9dfd51d557443a173c0910e127622e3a00da4273aae3ce52206102e4d18a0acf48a22389212630d9e24e522dbca50feb9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830288ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a04e78fd3c252e7a8b6644e07cebf1032aa1cd7700c795cca058da635407870b65a00bdcc6d2ce7e0405989da40e6d60a07508c93e0ddcf7d500d003bbce0391199bc0c0", - "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x036fd4f7451b6ea20a7b71812cfe98149bc8160dd8d1a5c415152fbea674d645", - "transactionsTrie": "0xfcab93baf6a6f901168c6f3238af1b9fc9dfd51d557443a173c0910e127622e3", - "receiptTrie": "0x0da4273aae3ce52206102e4d18a0acf48a22389212630d9e24e522dbca50feb9", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0288ce", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfcd8dc2f42dbe577b93c31f30383da99b14095ae7c6fce6088f915fd89c19877" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x036fd4f7451b6ea20a7b71812cfe98149bc8160dd8d1a5c415152fbea674d645", - "receiptsRoot": "0x0da4273aae3ce52206102e4d18a0acf48a22389212630d9e24e522dbca50feb9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x288ce", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfcd8dc2f42dbe577b93c31f30383da99b14095ae7c6fce6088f915fd89c19877", - "transactions": [ - "0x02f9012301808007830f424094000000000000000000000000000000000000010080b8bf01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a04e78fd3c252e7a8b6644e07cebf1032aa1cd7700c795cca058da635407870b65a00bdcc6d2ce7e0405989da40e6d60a07508c93e0ddcf7d500d003bbce0391199b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "blocknumber": "1", - "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x0f4240", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c00000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "accessList": [], - "v": "0x01", - "r": "0x4e78fd3c252e7a8b6644e07cebf1032aa1cd7700c795cca058da635407870b65", - "s": "0x0bdcc6d2ce7e0405989da40e6d60a07508c93e0ddcf7d500d003bbce0391199b", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -13889,24 +15460,71 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfcd8dc2f42dbe577b93c31f30383da99b14095ae7c6fce6088f915fd89c19877", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf9036ff9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05bf94f733496b99b5f0392c96e0292a5be0de56456843d3ebae0da6231ace610a0f919a850dfff60a9bb847fa9bdfb46abef75efcc88854f5b36b493e285aa1312a07f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028b320c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012ab9012702f9012301808007830f424094000000000000000000000000000000000000010080b8bf01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a0dc92bf5b57d6918c2ecc58bdca8c9e7e5d974202f55f5022d2c3dad0fc8f7ed0a01597763f43fc8db1accfab0f57f0a952bc397f0b55ca95428d9d9cbd3ddff5bdc0c0", + "blockHeader": { + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5bf94f733496b99b5f0392c96e0292a5be0de56456843d3ebae0da6231ace610", + "transactionsTrie": "0xf919a850dfff60a9bb847fa9bdfb46abef75efcc88854f5b36b493e285aa1312", + "receiptTrie": "0x7f0e9a9e3efb922217626a18737094dda402867f2bd22c59ab7c19cf71bef69e", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028b32", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xae55b53c3c22cdff16f116a8887d8f6c2110bf2ec83d645d9681fcf0589015e7" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b0000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", + "accessList": [], + "v": "0x01", + "r": "0xdc92bf5b57d6918c2ecc58bdca8c9e7e5d974202f55f5022d2c3dad0fc8f7ed0", + "s": "0x1597763f43fc8db1accfab0f57f0a952bc397f0b55ca95428d9d9cbd3ddff5bd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xae55b53c3c22cdff16f116a8887d8f6c2110bf2ec83d645d9681fcf0589015e7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -13915,55 +15533,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x02": "0x73", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x05": "0x73" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x02": "0x60", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x05": "0x60" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee425e", + "balance": "0xffffffffffffee31a2", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "089-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_64b9ff2b8f7dddee": { + "119-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_64b9ff2b8f7dddee": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa004da2b75166d1c8b49aab4050b3e9fce5187b5b90fe7d68501aef797ea278a96a052221f8b620a6000931001e720ee5d605c58c3f7f06202aa124ce700664a0f48a0f75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a2e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a079263655ddf6116b2e408aa31c73c021ea9543147399de7529457ff0d0b22574a03ea1ea2404610dbd0d438d960eaf4fc18a3fff4b25741dda5a2e2dd9c1178a34c0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f502939d8be56f2cdbe6cd0d8eac7307502657015098e6afa6587c4091254a1aa0652e0784ac994e3634165a3acdc2c735028c850d7dc3cb7efe444e8e262af7a6a0087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000260f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0d2274399a1fc6490f07ef339b35a8cb06c033ab1dd1e435e3197218c3f00169aa06b17e6bfb2b9af401a2401e2aa0075215d56f0c9727b3652edffd4f62dce05d9c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x04da2b75166d1c8b49aab4050b3e9fce5187b5b90fe7d68501aef797ea278a96", - "transactionsTrie": "0x52221f8b620a6000931001e720ee5d605c58c3f7f06202aa124ce700664a0f48", - "receiptTrie": "0xf75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274a", + "stateRoot": "0xf502939d8be56f2cdbe6cd0d8eac7307502657015098e6afa6587c4091254a1a", + "transactionsTrie": "0x652e0784ac994e3634165a3acdc2c735028c850d7dc3cb7efe444e8e262af7a6", + "receiptTrie": "0x087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028a2e", + "gasUsed": "0x028c92", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -13973,33 +15616,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x01be683d4d1a702b49ee10386c2bed7fe416badebc138f88c058022e009a656b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x04da2b75166d1c8b49aab4050b3e9fce5187b5b90fe7d68501aef797ea278a96", - "receiptsRoot": "0xf75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28a2e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x01be683d4d1a702b49ee10386c2bed7fe416badebc138f88c058022e009a656b", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a079263655ddf6116b2e408aa31c73c021ea9543147399de7529457ff0d0b22574a03ea1ea2404610dbd0d438d960eaf4fc18a3fff4b25741dda5a2e2dd9c1178a34" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x59d95e95bbf0cc7200741751247f28b2b9732ffc0eceac319847072e4ffbb925" }, "blocknumber": "1", "transactions": [ @@ -14012,11 +15629,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000273eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000260f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x01", - "r": "0x79263655ddf6116b2e408aa31c73c021ea9543147399de7529457ff0d0b22574", - "s": "0x3ea1ea2404610dbd0d438d960eaf4fc18a3fff4b25741dda5a2e2dd9c1178a34", + "v": "0x00", + "r": "0xd2274399a1fc6490f07ef339b35a8cb06c033ab1dd1e435e3197218c3f00169a", + "s": "0x6b17e6bfb2b9af401a2401e2aa0075215d56f0c9727b3652edffd4f62dce05d9", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -14024,45 +15641,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x01be683d4d1a702b49ee10386c2bed7fe416badebc138f88c058022e009a656b", - "network": "Cancun", + "lastblockhash": "0x59d95e95bbf0cc7200741751247f28b2b9732ffc0eceac319847072e4ffbb925", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -14071,55 +15663,80 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000002" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee38be", + "balance": "0xffffffffffffee2802", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "090-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_b358a2e763727b70": { + "120-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_b358a2e763727b70": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90371f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02f056e7dc75bfd1f255482df40c5a7d4cbf65cac6553edacf4f77cfa47c0686aa095ed2c0038000e4e2fced87aace38cad7af6395c4a500ae0812ee6a1652ddfc6a0d79b0e971decec26b5e95d8196c13792361c0e9d6bf24b8bfc6f563afa8dfbd6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301ed640c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c000000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0bdd0dcffe4aedd1595f77fe328a75de18ffd08ef5d16911892edf2f2ebe19bf8a00ee8d195d4e205e70caf7c6c73d6bb04dce350ad55ee2aeed494dc7b4c9ac8a4c0c0", + "rlp": "0xf90371f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06c3584b64e62a4336e2d315258050e576e22505798ae583b70d377f172e84e96a0c1148f29def9f8445cbad3e7a505de99ea4c83958dfad69e4c3b868f39881f8fa000f385f6ed5eff6fd324f31f3d641c684e177e907bd499ccdd25e3e60b13cbf4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301efc80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cb9012902f9012501808007830f424094000000000000000000000000000000000000010080b8c101e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c001a0539e871f55bde922648b7ef1b42a7bfb36eacbca5d5c925a07367131c7ce7f53a072f7a1e23e3f10174df4a66dff6674a9cf2700fd4ee120f635287704349a4ef4c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2f056e7dc75bfd1f255482df40c5a7d4cbf65cac6553edacf4f77cfa47c0686a", - "transactionsTrie": "0x95ed2c0038000e4e2fced87aace38cad7af6395c4a500ae0812ee6a1652ddfc6", - "receiptTrie": "0xd79b0e971decec26b5e95d8196c13792361c0e9d6bf24b8bfc6f563afa8dfbd6", + "stateRoot": "0x6c3584b64e62a4336e2d315258050e576e22505798ae583b70d377f172e84e96", + "transactionsTrie": "0xc1148f29def9f8445cbad3e7a505de99ea4c83958dfad69e4c3b868f39881f8f", + "receiptTrie": "0x00f385f6ed5eff6fd324f31f3d641c684e177e907bd499ccdd25e3e60b13cbf4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x01ed64", + "gasUsed": "0x01efc8", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -14129,33 +15746,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcf070b1888eb6f7e4ba7fab835b452510a365d4ad693be2a8e2d1600caf70eb8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2f056e7dc75bfd1f255482df40c5a7d4cbf65cac6553edacf4f77cfa47c0686a", - "receiptsRoot": "0xd79b0e971decec26b5e95d8196c13792361c0e9d6bf24b8bfc6f563afa8dfbd6", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1ed64", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xcf070b1888eb6f7e4ba7fab835b452510a365d4ad693be2a8e2d1600caf70eb8", - "transactions": [ - "0x02f9012501808007830f424094000000000000000000000000000000000000010080b8c101466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c000000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0bdd0dcffe4aedd1595f77fe328a75de18ffd08ef5d16911892edf2f2ebe19bf8a00ee8d195d4e205e70caf7c6c73d6bb04dce350ad55ee2aeed494dc7b4c9ac8a4" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xee77ca29d9953e53bebc59a3a16f8d6c544cb6e07eb7dc3b5864c0e6811b516d" }, "blocknumber": "1", "transactions": [ @@ -14168,11 +15759,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c000000000000000000000000000000000000000000000000000000000000000000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b00000000000000000000000000000000000000000000000000000000000000000060f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x00", - "r": "0xbdd0dcffe4aedd1595f77fe328a75de18ffd08ef5d16911892edf2f2ebe19bf8", - "s": "0x0ee8d195d4e205e70caf7c6c73d6bb04dce350ad55ee2aeed494dc7b4c9ac8a4", + "v": "0x01", + "r": "0x539e871f55bde922648b7ef1b42a7bfb36eacbca5d5c925a07367131c7ce7f53", + "s": "0x72f7a1e23e3f10174df4a66dff6674a9cf2700fd4ee120f635287704349a4ef4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -14180,45 +15771,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcf070b1888eb6f7e4ba7fab835b452510a365d4ad693be2a8e2d1600caf70eb8", - "network": "Cancun", + "lastblockhash": "0xee77ca29d9953e53bebc59a3a16f8d6c544cb6e07eb7dc3b5864c0e6811b516d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -14227,53 +15793,78 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0" + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xfffffffffffff28244", + "balance": "0xfffffffffffff27188", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "091-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_eb0601fec84cc5e9": { + "121-fork=Cancun-versioned_hash=auto-verify_kzg_proof_case_invalid_z_eb0601fec84cc5e9": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa010bb781be12317a5e8ad5980abcc617d8557d3e4aa7090b3de3dddb721cf5c2ca0fd95219818299e41c673e617bdd8c85da456e43751caec8e388fcacdd3ad90d7a0f75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028a2e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a09ce512af47f3d82884585500c239e4da9e6998c7068fefbcb00fe9b63919f548a0152e24207412dbebbea4bd7f704cff74fc30555912e0d83fcfee674d22f01fddc0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed8d7e332bb0737595599d24d965af1fd2fd9e00fcff0b0759b679dc7789cf4ba001be2deaf52612f3bf45fb83d183e83e29b5979db1aeae9ad1308023c56b2ac9a0087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083028c920c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c001e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43c080a0bf0e68b6a6de351f9c9ac0746fe0a7af073d2499444796a6343d871585476fa6a062e873085625eb8369f0ca10d3db29d6edf0b18ddf13f9a1e802a65e8e822350c0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x10bb781be12317a5e8ad5980abcc617d8557d3e4aa7090b3de3dddb721cf5c2c", - "transactionsTrie": "0xfd95219818299e41c673e617bdd8c85da456e43751caec8e388fcacdd3ad90d7", - "receiptTrie": "0xf75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274a", + "stateRoot": "0xed8d7e332bb0737595599d24d965af1fd2fd9e00fcff0b0759b679dc7789cf4b", + "transactionsTrie": "0x01be2deaf52612f3bf45fb83d183e83e29b5979db1aeae9ad1308023c56b2ac9", + "receiptTrie": "0x087892738f75126ba814bd80218bd4f9ee0f6f5ce72052f19ba2e6ad255b0069", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x028a2e", + "gasUsed": "0x028c92", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -14283,33 +15874,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2bdeaff43ed3b344969b5b5acc1f6aa54f6bc66a61cc59db183759dacc91f779" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x10bb781be12317a5e8ad5980abcc617d8557d3e4aa7090b3de3dddb721cf5c2c", - "receiptsRoot": "0xf75127f30eb39591f40d155683d32469388dcaddf16ebf6ebbd474be59d8274a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28a2e", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2bdeaff43ed3b344969b5b5acc1f6aa54f6bc66a61cc59db183759dacc91f779", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c001466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a09ce512af47f3d82884585500c239e4da9e6998c7068fefbcb00fe9b63919f548a0152e24207412dbebbea4bd7f704cff74fc30555912e0d83fcfee674d22f01fdd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbd93f361d0571ac0a63d2e1d670ac581e7a55ddd18e579687bbc184c74e163f7" }, "blocknumber": "1", "transactions": [ @@ -14322,11 +15887,11 @@ "gasLimit": "0x0f4240", "to": "0x0000000000000000000000000000000000000100", "value": "0x00", - "data": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000173eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000b7f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bbc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "data": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff0000000160f840641ec0d0c0d2b77b2d5a393b329442721fad05ab78c7b98f2aa3c20ec98f59a8d2a1a625a17f3fea0fe5eb8c896db3764f3185481bc22f91b4aaffcca25f26936857bc3a7c2539ea8ec3a952b7b30b3d1e4faccc380557792c9a0374d58fa286f5f75fea48870585393f890909cd3c53cfe4897e799fb211b4be531e43", "accessList": [], - "v": "0x01", - "r": "0x9ce512af47f3d82884585500c239e4da9e6998c7068fefbcb00fe9b63919f548", - "s": "0x152e24207412dbebbea4bd7f704cff74fc30555912e0d83fcfee674d22f01fdd", + "v": "0x00", + "r": "0xbf0e68b6a6de351f9c9ac0746fe0a7af073d2499444796a6343d871585476fa6", + "s": "0x62e873085625eb8369f0ca10d3db29d6edf0b18ddf13f9a1e802a65e8e822350", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -14334,45 +15899,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2bdeaff43ed3b344969b5b5acc1f6aa54f6bc66a61cc59db183759dacc91f779", - "network": "Cancun", + "lastblockhash": "0xbd93f361d0571ac0a63d2e1d670ac581e7a55ddd18e579687bbc184c74e163f7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -14381,28 +15921,28 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": { - "0x01": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x01": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x02": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001", - "0x04": "0x01466f7b14f0722bd581cf49418cd43fa8f085ce16e09cd3cdf65b3dfbbcb8c0", + "0x04": "0x01e798154708fe7789429634053cbf9f99b619f9f084048927333fce637f549b", "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0xffffffffffffee38be", + "balance": "0xffffffffffffee2802", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json index 0ab2297cf77..dc393dff045 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/point_evaluation_precompile_gas_tx_to.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-correct_proof-exact_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e" + }, "blocks": [ { - "rlp": "0xf90370f9023da0220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb3685a1cd56344faddad1f769aa231260bf62b6ee4f8eace2bb1337f666d8fda0484c9d06fa9cb2eecd41a3b7528097d26d26645f1e5a6e4815cd6bdf5174255ba0de4424ef7c8b546cb2adf8b9583034c8354e9670ae2964968c4b11bfa401dcb1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b640c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b6494000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0c153bf814f84844f42d98d319bdca9af2de79a823b8c14cb7d7d30e7a6a9330aa0503a4048ce37624841c27ae8c0db0a2d42e776c1cf692729dd10ed09bc1d20b5c0c0", + "rlp": "0xf90370f9023da08e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08124458d8297d4b4acd09f89d363d3905ced6605b7a83f25480aeaf8753aad8da0484c9d06fa9cb2eecd41a3b7528097d26d26645f1e5a6e4815cd6bdf5174255ba0de4424ef7c8b546cb2adf8b9583034c8354e9670ae2964968c4b11bfa401dcb1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b640c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b6494000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0c153bf814f84844f42d98d319bdca9af2de79a823b8c14cb7d7d30e7a6a9330aa0503a4048ce37624841c27ae8c0db0a2d42e776c1cf692729dd10ed09bc1d20b5c0c0", "blockHeader": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", + "parentHash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbb3685a1cd56344faddad1f769aa231260bf62b6ee4f8eace2bb1337f666d8fd", + "stateRoot": "0x8124458d8297d4b4acd09f89d363d3905ced6605b7a83f25480aeaf8753aad8d", "transactionsTrie": "0x484c9d06fa9cb2eecd41a3b7528097d26d26645f1e5a6e4815cd6bdf5174255b", "receiptTrie": "0xde4424ef7c8b546cb2adf8b9583034c8354e9670ae2964968c4b11bfa401dcb1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd09484ea2b53986eb9c561e6ba232fc5e61c6956645728da26b7facacda896e3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbb3685a1cd56344faddad1f769aa231260bf62b6ee4f8eace2bb1337f666d8fd", - "receiptsRoot": "0xde4424ef7c8b546cb2adf8b9583034c8354e9670ae2964968c4b11bfa401dcb1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x11b64", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd09484ea2b53986eb9c561e6ba232fc5e61c6956645728da26b7facacda896e3", - "transactions": [ - "0x02f901240180800783011b6494000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0c153bf814f84844f42d98d319bdca9af2de79a823b8c14cb7d7d30e7a6a9330aa0503a4048ce37624841c27ae8c0db0a2d42e776c1cf692729dd10ed09bc1d20b5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x09c0a93466683053a62a6aca81b7734f99e1253036fc77fc173474464768b93a" }, "blocknumber": "1", "transactions": [ @@ -80,37 +79,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x52618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a052618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd09484ea2b53986eb9c561e6ba232fc5e61c6956645728da26b7facacda896e3", - "network": "Cancun", + "lastblockhash": "0x09c0a93466683053a62a6aca81b7734f99e1253036fc77fc173474464768b93a", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -121,10 +95,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } @@ -140,18 +114,43 @@ }, "001-fork=Cancun-correct_proof-extra_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e" + }, "blocks": [ { - "rlp": "0xf90370f9023da0220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb3685a1cd56344faddad1f769aa231260bf62b6ee4f8eace2bb1337f666d8fda0e0ea476b8ffe9c572234a2f25702f5219804c7f355199dd3b61c710680107a84a0de4424ef7c8b546cb2adf8b9583034c8354e9670ae2964968c4b11bfa401dcb1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b640c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b6594000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0363fb027f98f1cce39a0131fc9d6b9d9a0e28c5e313a1df73ec062e14bb2e71ca05ec7065992de48bee64c44d0d7c544d9c1691a620b458da20b796811395875f6c0c0", + "rlp": "0xf90370f9023da08e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08124458d8297d4b4acd09f89d363d3905ced6605b7a83f25480aeaf8753aad8da0e0ea476b8ffe9c572234a2f25702f5219804c7f355199dd3b61c710680107a84a0de4424ef7c8b546cb2adf8b9583034c8354e9670ae2964968c4b11bfa401dcb1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b640c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b6594000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0363fb027f98f1cce39a0131fc9d6b9d9a0e28c5e313a1df73ec062e14bb2e71ca05ec7065992de48bee64c44d0d7c544d9c1691a620b458da20b796811395875f6c0c0", "blockHeader": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", + "parentHash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbb3685a1cd56344faddad1f769aa231260bf62b6ee4f8eace2bb1337f666d8fd", + "stateRoot": "0x8124458d8297d4b4acd09f89d363d3905ced6605b7a83f25480aeaf8753aad8d", "transactionsTrie": "0xe0ea476b8ffe9c572234a2f25702f5219804c7f355199dd3b61c710680107a84", "receiptTrie": "0xde4424ef7c8b546cb2adf8b9583034c8354e9670ae2964968c4b11bfa401dcb1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -168,33 +167,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x57016990951a1a2a2b11643b73b184d9f2b2666f30736557ccda57a8e30c89eb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbb3685a1cd56344faddad1f769aa231260bf62b6ee4f8eace2bb1337f666d8fd", - "receiptsRoot": "0xde4424ef7c8b546cb2adf8b9583034c8354e9670ae2964968c4b11bfa401dcb1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x11b64", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x57016990951a1a2a2b11643b73b184d9f2b2666f30736557ccda57a8e30c89eb", - "transactions": [ - "0x02f901240180800783011b6594000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0363fb027f98f1cce39a0131fc9d6b9d9a0e28c5e313a1df73ec062e14bb2e71ca05ec7065992de48bee64c44d0d7c544d9c1691a620b458da20b796811395875f6" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3aa146d9ec776a6073f312f11f78430434dd05eea142030a237a8bd46e3250ba" }, "blocknumber": "1", "transactions": [ @@ -219,37 +192,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x52618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a052618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x57016990951a1a2a2b11643b73b184d9f2b2666f30736557ccda57a8e30c89eb", - "network": "Cancun", + "lastblockhash": "0x3aa146d9ec776a6073f312f11f78430434dd05eea142030a237a8bd46e3250ba", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -260,10 +208,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } @@ -279,18 +227,43 @@ }, "002-fork=Cancun-correct_proof-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e" + }, "blocks": [ { - "rlp": "0xf90370f9023da0220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a30f69edd441a14e6a81609d32fba520b05f73561805a850ef2d3500bb8a592ca0a0bc63a97ffff021ed006e4692047c43ab7bb0b72a342cb7e5f26d5a1c496860a0f1d7bd2bded424dcbdb43f8ccc782609c4a100ebf61317f6430720cc58ef7ee9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b630c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b6394000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0831c78db54c14a010d590c737c72bd9a1ab3bcbd476dff92d557e38413f59d9fa00363dfa1db5e99d999c71e1ad099e1b45601de3870438c4bac3a6a0416eed5f7c0c0", + "rlp": "0xf90370f9023da08e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0df3504dd870e0434719732d98c77993af6652e53d4b68408ad0592743f4e4111a0a0bc63a97ffff021ed006e4692047c43ab7bb0b72a342cb7e5f26d5a1c496860a0f1d7bd2bded424dcbdb43f8ccc782609c4a100ebf61317f6430720cc58ef7ee9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b630c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b6394000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0831c78db54c14a010d590c737c72bd9a1ab3bcbd476dff92d557e38413f59d9fa00363dfa1db5e99d999c71e1ad099e1b45601de3870438c4bac3a6a0416eed5f7c0c0", "blockHeader": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", + "parentHash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa30f69edd441a14e6a81609d32fba520b05f73561805a850ef2d3500bb8a592c", + "stateRoot": "0xdf3504dd870e0434719732d98c77993af6652e53d4b68408ad0592743f4e4111", "transactionsTrie": "0xa0bc63a97ffff021ed006e4692047c43ab7bb0b72a342cb7e5f26d5a1c496860", "receiptTrie": "0xf1d7bd2bded424dcbdb43f8ccc782609c4a100ebf61317f6430720cc58ef7ee9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -307,33 +280,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0598c7a5cab10ec7418d430249b798061c228c20e8f9fe88f71e8c585c0d7f81" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa30f69edd441a14e6a81609d32fba520b05f73561805a850ef2d3500bb8a592c", - "receiptsRoot": "0xf1d7bd2bded424dcbdb43f8ccc782609c4a100ebf61317f6430720cc58ef7ee9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x11b63", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0598c7a5cab10ec7418d430249b798061c228c20e8f9fe88f71e8c585c0d7f81", - "transactions": [ - "0x02f901240180800783011b6394000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0831c78db54c14a010d590c737c72bd9a1ab3bcbd476dff92d557e38413f59d9fa00363dfa1db5e99d999c71e1ad099e1b45601de3870438c4bac3a6a0416eed5f7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd2ae8a35ff398d69aa05c88bdf6f57a44ccb286291d81c853f6165a90da0009c" }, "blocknumber": "1", "transactions": [ @@ -358,37 +305,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x52618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a052618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0598c7a5cab10ec7418d430249b798061c228c20e8f9fe88f71e8c585c0d7f81", - "network": "Cancun", + "lastblockhash": "0xd2ae8a35ff398d69aa05c88bdf6f57a44ccb286291d81c853f6165a90da0009c", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -399,10 +321,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } @@ -418,18 +340,43 @@ }, "003-fork=Cancun-incorrect_proof-exact_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e" + }, "blocks": [ { - "rlp": "0xf90370f9023da0220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c7d7f03352b6519c552647cc2ace224c47e88ba7e248c79a7689acc730d85e14a06e33e4fdc7b2fa72a93495b715644698e2539606a98f53277c1111eec622c5c0a040aae42770113824e286985bcbb81500342126b2cc33871807f9cb3f863ca4e4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b700c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b7094000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0fcec6cb2e0216513199d128100755631a9a70a5bdb24a9087c68656852d482fca071e69df6a77b6267679e49c4676e484d7ba9edf5bd1a321e54adbaa62828407ac0c0", + "rlp": "0xf90370f9023da08e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa074ccb12dd7201546fa041bddeb7e5e4cec7ffec3f071930c44cd970988ac2176a06e33e4fdc7b2fa72a93495b715644698e2539606a98f53277c1111eec622c5c0a040aae42770113824e286985bcbb81500342126b2cc33871807f9cb3f863ca4e4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b700c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b7094000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0fcec6cb2e0216513199d128100755631a9a70a5bdb24a9087c68656852d482fca071e69df6a77b6267679e49c4676e484d7ba9edf5bd1a321e54adbaa62828407ac0c0", "blockHeader": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", + "parentHash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc7d7f03352b6519c552647cc2ace224c47e88ba7e248c79a7689acc730d85e14", + "stateRoot": "0x74ccb12dd7201546fa041bddeb7e5e4cec7ffec3f071930c44cd970988ac2176", "transactionsTrie": "0x6e33e4fdc7b2fa72a93495b715644698e2539606a98f53277c1111eec622c5c0", "receiptTrie": "0x40aae42770113824e286985bcbb81500342126b2cc33871807f9cb3f863ca4e4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -446,33 +393,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf01e5d77b389d3e776f6359f9f354e05b21d3894e4545164240318b9c841844c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc7d7f03352b6519c552647cc2ace224c47e88ba7e248c79a7689acc730d85e14", - "receiptsRoot": "0x40aae42770113824e286985bcbb81500342126b2cc33871807f9cb3f863ca4e4", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x11b70", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf01e5d77b389d3e776f6359f9f354e05b21d3894e4545164240318b9c841844c", - "transactions": [ - "0x02f901240180800783011b7094000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0fcec6cb2e0216513199d128100755631a9a70a5bdb24a9087c68656852d482fca071e69df6a77b6267679e49c4676e484d7ba9edf5bd1a321e54adbaa62828407a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xab32d208f099f60b5cde2733ad4f11259525646a8b8ae3848570fd0e41e35e7f" }, "blocknumber": "1", "transactions": [ @@ -497,37 +418,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x52618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a052618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf01e5d77b389d3e776f6359f9f354e05b21d3894e4545164240318b9c841844c", - "network": "Cancun", + "lastblockhash": "0xab32d208f099f60b5cde2733ad4f11259525646a8b8ae3848570fd0e41e35e7f", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -538,10 +434,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } @@ -557,18 +453,43 @@ }, "004-fork=Cancun-incorrect_proof-extra_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e" + }, "blocks": [ { - "rlp": "0xf90370f9023da0220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018f983869b7118dce3c551033de287df37e65f741e8537bccb02529106b95bfca0bfff3d3da39f851f5fd66ee7fe178a44a9efe86b094045b85ffca45cfe569a9ca002a622676ead4fbf632840f173faf486b258030c1b4e3d2a1443dd17456151deb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b710c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b7194000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0ffed224d1452bb006304e7829ee6b4d9a5f129907186f6f7089557dfddbf263ca028f3b71fbaa2012e577b71a113e352d3d8e2cfe44ee16e61c2a4217f52db1e1fc0c0", + "rlp": "0xf90370f9023da08e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa027d8f7ac096b6825dba0bd90122c672043fd502613401577d845b0e01a85e711a0bfff3d3da39f851f5fd66ee7fe178a44a9efe86b094045b85ffca45cfe569a9ca002a622676ead4fbf632840f173faf486b258030c1b4e3d2a1443dd17456151deb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b710c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b7194000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0ffed224d1452bb006304e7829ee6b4d9a5f129907186f6f7089557dfddbf263ca028f3b71fbaa2012e577b71a113e352d3d8e2cfe44ee16e61c2a4217f52db1e1fc0c0", "blockHeader": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", + "parentHash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18f983869b7118dce3c551033de287df37e65f741e8537bccb02529106b95bfc", + "stateRoot": "0x27d8f7ac096b6825dba0bd90122c672043fd502613401577d845b0e01a85e711", "transactionsTrie": "0xbfff3d3da39f851f5fd66ee7fe178a44a9efe86b094045b85ffca45cfe569a9c", "receiptTrie": "0x02a622676ead4fbf632840f173faf486b258030c1b4e3d2a1443dd17456151de", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -585,33 +506,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8c1ce9e9f32b6ef04c5aaaf1871a5c18835d6687ef21e895b0aefbd3391a2da5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18f983869b7118dce3c551033de287df37e65f741e8537bccb02529106b95bfc", - "receiptsRoot": "0x02a622676ead4fbf632840f173faf486b258030c1b4e3d2a1443dd17456151de", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x11b71", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8c1ce9e9f32b6ef04c5aaaf1871a5c18835d6687ef21e895b0aefbd3391a2da5", - "transactions": [ - "0x02f901240180800783011b7194000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a0ffed224d1452bb006304e7829ee6b4d9a5f129907186f6f7089557dfddbf263ca028f3b71fbaa2012e577b71a113e352d3d8e2cfe44ee16e61c2a4217f52db1e1f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1fead942dcddfdb9e8674d5582d362865dd6b6d95a9c6ceaee633172713de060" }, "blocknumber": "1", "transactions": [ @@ -636,37 +531,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x52618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a052618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8c1ce9e9f32b6ef04c5aaaf1871a5c18835d6687ef21e895b0aefbd3391a2da5", - "network": "Cancun", + "lastblockhash": "0x1fead942dcddfdb9e8674d5582d362865dd6b6d95a9c6ceaee633172713de060", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -677,10 +547,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } @@ -696,18 +566,43 @@ }, "005-fork=Cancun-incorrect_proof-insufficient_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4089cfd6fa2e072124cba7ee29aefc9caa0b075bc46a3330b8fba023daf73e77", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e" + }, "blocks": [ { - "rlp": "0xf90370f9023da0220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa092fe6a9639889f59941a7f538207de2f642e0b4a8d95f67ace5774f405a5097ea010ac0c62998b38c97b59c5aa5e313b8358c1c8bf9408ff91a3d52a1260eb9caaa07ff9fed5e775ef8edec04c3704ca8a490a0a2329c93d85c03211f84ae0ce16b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b6f0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b6f94000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0ffe89f5f9a24c1db48a1df588c274820df971eac44369ec436daae8e6107c694a073230312b5a1d285eedef60b704de26c2c8f12d7313adedeca41a501ffdc8630c0c0", + "rlp": "0xf90370f9023da08e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa026b329315d4751913fdfbe23edc6eff29843af762fa57cabea2c1dbaf56555cda010ac0c62998b38c97b59c5aa5e313b8358c1c8bf9408ff91a3d52a1260eb9caaa07ff9fed5e775ef8edec04c3704ca8a490a0a2329c93d85c03211f84ae0ce16b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083011b6f0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f901240180800783011b6f94000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0ffe89f5f9a24c1db48a1df588c274820df971eac44369ec436daae8e6107c694a073230312b5a1d285eedef60b704de26c2c8f12d7313adedeca41a501ffdc8630c0c0", "blockHeader": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", + "parentHash": "0x8e4d37f71f19b79f9f83d9c10af0432189fc80926de777fb157b2cebb0f93f6e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x92fe6a9639889f59941a7f538207de2f642e0b4a8d95f67ace5774f405a5097e", + "stateRoot": "0x26b329315d4751913fdfbe23edc6eff29843af762fa57cabea2c1dbaf56555cd", "transactionsTrie": "0x10ac0c62998b38c97b59c5aa5e313b8358c1c8bf9408ff91a3d52a1260eb9caa", "receiptTrie": "0x7ff9fed5e775ef8edec04c3704ca8a490a0a2329c93d85c03211f84ae0ce16b8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -724,33 +619,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x371e7b491f3e0eadee572ea5ca5d58ab2a5cd556d3dcf6dad5454089578614a5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x92fe6a9639889f59941a7f538207de2f642e0b4a8d95f67ace5774f405a5097e", - "receiptsRoot": "0x7ff9fed5e775ef8edec04c3704ca8a490a0a2329c93d85c03211f84ae0ce16b8", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x11b6f", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x371e7b491f3e0eadee572ea5ca5d58ab2a5cd556d3dcf6dad5454089578614a5", - "transactions": [ - "0x02f901240180800783011b6f94000000000000000000000000000000000000000a80b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014623ce31cf9759a5c8daf3a357992f9f3dd7f9339d8998bc8e68373e54f00b75e0000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0ffe89f5f9a24c1db48a1df588c274820df971eac44369ec436daae8e6107c694a073230312b5a1d285eedef60b704de26c2c8f12d7313adedeca41a501ffdc8630" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3db4f20c6133d391af8538a03e941108aa3c4edc3214523ea733591770f70e49" }, "blocknumber": "1", "transactions": [ @@ -775,37 +644,12 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x52618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x220abb7d7ba8609b66e41efbd607692861aa3fe4300511f4183d8dd57ae1ddb7" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a052618985cbd96ad4794e22a35e4a1d6cd9e158dc1ecf15a8ec8cd40c2bee7a48a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x371e7b491f3e0eadee572ea5ca5d58ab2a5cd556d3dcf6dad5454089578614a5", - "network": "Cancun", + "lastblockhash": "0x3db4f20c6133d391af8538a03e941108aa3c4edc3214523ea733591770f70e49", "pre": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -816,10 +660,10 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { "nonce": "0x01", "balance": "0x00", - "code": "0x", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": { "0x0c": "0x0c" } diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json index 940d853ecd3..7ffc96a5620 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile/valid_precompile_calls.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-success=True-in_bounds_z": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a009a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x09a9d953a3dc6bcbdf91b7405e85e035c06f6c9e5740d4bc6644de303ef242a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56" + }, "blocks": [ { - "rlp": "0xf90370f9023da0770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07716dabb2995ab3557002b788a769b2602ef6d55a5f5ce8b3e95475eddf3e0ffa023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0", + "rlp": "0xf90370f9023da0a04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321a023c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519ca007194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5affb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303221c0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fec0c0", "blockHeader": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", + "parentHash": "0xa04051d013c4fdadb3c6e629d33b7108ffa3fb5f8c316c0a16831eda50eb4d56", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7716dabb2995ab3557002b788a769b2602ef6d55a5f5ce8b3e95475eddf3e0ff", + "stateRoot": "0x02e49a5b61d560438e797b371a948baa544418d3ea542e48cc62401567b3b321", "transactionsTrie": "0x23c2e283739049651d077fdfc364eb7d4e6f26c0eb394e58898f13fd4823519c", "receiptTrie": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc6b59b738832a6071b9813e4ab50aae2ccdac7929e391cb4325c79dc22e836d9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7716dabb2995ab3557002b788a769b2602ef6d55a5f5ce8b3e95475eddf3e0ff", - "receiptsRoot": "0x07194d446d05e8c42fac0ab572a81e5572a2dbd57e309129ed37cfff436b5aff", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3221c", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc6b59b738832a6071b9813e4ab50aae2ccdac7929e391cb4325c79dc22e836d9", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401473eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0cdcb82e08bcb8bb0eb6de7c1e142a910aa413891c9deeccd0c650737f5407307a06df091d7bdd64b38d24910e969040afa2f65abd8b0ddf8c42ce5e582edfcf4fe" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac" }, "blocknumber": "1", "transactions": [ @@ -80,45 +79,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x770a003c604dfc483cfa9e81fef1138fbeca94678f4f25c6cc7f66bfa7870a5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09771329ad4110d2b7f42e02e57dffd5c8f2d05caa064ac7c65fcb8d670f71f07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc6b59b738832a6071b9813e4ab50aae2ccdac7929e391cb4325c79dc22e836d9", - "network": "Cancun", + "lastblockhash": "0x290bf0da14e9633aab43e0b391ecf236bdfca6ec38af81aec507dba2898c90ac", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x366000600037604060003660006000600a61c350f16000556000516001556020516002553d6003553d600060003e600051600455602051600555", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -127,14 +101,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -148,6 +114,14 @@ "0x05": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xffffffffffffea113c", diff --git a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json index 43e8b107531..c91ce729937 100644 --- a/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json +++ b/tests/execution-spec-tests/cancun/eip4844_blobs/point_evaluation_precompile_gas/point_evaluation_precompile_gas_usage.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-proof=correct-exact_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0103cfeaae84df053588b7189838257b2f9d9e4b3fd8d28bf7a3030f2ebef8f9ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x103cfeaae84df053588b7189838257b2f9d9e4b3fd8d28bf7a3030f2ebef8f9e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9cac74f0a8928e5d71d9a5592e25668fbc7448dcd8e114524b31c618aab2f8d9" + }, "blocks": [ { - "rlp": "0xf90370f9023da03b4cf395516db27efae7696fac3ae139885f479df92035969ce8d5833a71062aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ff00ded8b9e5b37aea1deff7dd8171e1e16afa1f56a9b9267f489b798a53c8b6a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0dedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301727a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da09cac74f0a8928e5d71d9a5592e25668fbc7448dcd8e114524b31c618aab2f8d9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06bc6ba22241c841dff22338a5214db6e8a1a783445b735f1f57c3e13e581a258a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0dedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301727a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0x3b4cf395516db27efae7696fac3ae139885f479df92035969ce8d5833a71062a", + "parentHash": "0x9cac74f0a8928e5d71d9a5592e25668fbc7448dcd8e114524b31c618aab2f8d9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xff00ded8b9e5b37aea1deff7dd8171e1e16afa1f56a9b9267f489b798a53c8b6", + "stateRoot": "0x6bc6ba22241c841dff22338a5214db6e8a1a783445b735f1f57c3e13e581a258", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0ded", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0cc0f281507d6a44b0592180b1c0e7b610c1011f1368bd22a32a44f14207c9f5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3b4cf395516db27efae7696fac3ae139885f479df92035969ce8d5833a71062a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xff00ded8b9e5b37aea1deff7dd8171e1e16afa1f56a9b9267f489b798a53c8b6", - "receiptsRoot": "0x604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0ded", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1727a", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0cc0f281507d6a44b0592180b1c0e7b610c1011f1368bd22a32a44f14207c9f5", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x65c4de8be9b7cecc079d40c5205350fc2658ef6e76aac506ba56dd26ca88bae5" }, "blocknumber": "1", "transactions": [ @@ -80,45 +79,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x89007ca452bec08f4dd8ba074382946e079e09ab837c9af71d0cf1403f13399a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3b4cf395516db27efae7696fac3ae139885f479df92035969ce8d5833a71062a" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089007ca452bec08f4dd8ba074382946e079e09ab837c9af71d0cf1403f13399aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0cc0f281507d6a44b0592180b1c0e7b610c1011f1368bd22a32a44f14207c9f5", - "network": "Cancun", + "lastblockhash": "0x65c4de8be9b7cecc079d40c5205350fc2658ef6e76aac506ba56dd26ca88bae5", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c350f15a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -127,14 +101,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -143,6 +109,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5deaa", @@ -154,18 +128,43 @@ }, "001-fork=Cancun-proof=correct-exact_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b97bdb1e96ff740162defa5c4af54033900f9c5e631fe268c41b9a3ac635cea3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb97bdb1e96ff740162defa5c4af54033900f9c5e631fe268c41b9a3ac635cea3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xeea71745de8ebf2c867c5384b717e8090723b6b62212f6e95e61dbb51638c14c" + }, "blocks": [ { - "rlp": "0xf90370f9023da0f9eb453c7d35160b9fe37e0a22e2f9debe6ecfa3d0c40fc9dbe1e45194cb98bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd5f360ef2ffbab01d94bd18592b93aae25e9129e8f7b5011f15b961ad2856fba09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a01c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172770c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da0eea71745de8ebf2c867c5384b717e8090723b6b62212f6e95e61dbb51638c14ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d3a7856ed89ce3b0e9d5a395bc60192b317669dc02cba72ba38264383003d7f5a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a01c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172770c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0xf9eb453c7d35160b9fe37e0a22e2f9debe6ecfa3d0c40fc9dbe1e45194cb98be", + "parentHash": "0xeea71745de8ebf2c867c5384b717e8090723b6b62212f6e95e61dbb51638c14c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd5f360ef2ffbab01d94bd18592b93aae25e9129e8f7b5011f15b961ad2856fb", + "stateRoot": "0xd3a7856ed89ce3b0e9d5a395bc60192b317669dc02cba72ba38264383003d7f5", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x1c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -182,33 +181,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe61188438e78b5c7f9ba3aea7527dadf66bcae2dc46fae7e7a1f2b5e45f50976" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf9eb453c7d35160b9fe37e0a22e2f9debe6ecfa3d0c40fc9dbe1e45194cb98be", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd5f360ef2ffbab01d94bd18592b93aae25e9129e8f7b5011f15b961ad2856fb", - "receiptsRoot": "0x1c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17277", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe61188438e78b5c7f9ba3aea7527dadf66bcae2dc46fae7e7a1f2b5e45f50976", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf6c0568f31504847f109435bd7c77b03ffebcf018b94920d006abfc75efe123b" }, "blocknumber": "1", "transactions": [ @@ -233,45 +206,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xdb02eda30a82308919f0026e6387de21c5061b81d34ea5e24a0ac3713f4154b2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf9eb453c7d35160b9fe37e0a22e2f9debe6ecfa3d0c40fc9dbe1e45194cb98be" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db02eda30a82308919f0026e6387de21c5061b81d34ea5e24a0ac3713f4154b2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe61188438e78b5c7f9ba3aea7527dadf66bcae2dc46fae7e7a1f2b5e45f50976", - "network": "Cancun", + "lastblockhash": "0xf6c0568f31504847f109435bd7c77b03ffebcf018b94920d006abfc75efe123b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c350f45a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -280,14 +228,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -296,6 +236,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5debf", @@ -307,18 +255,43 @@ }, "002-fork=Cancun-proof=correct-exact_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dcc26d974c6353a9d69adb6b629bea5ad120855f20c09af0adf9a5489dbfdfe7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdcc26d974c6353a9d69adb6b629bea5ad120855f20c09af0adf9a5489dbfdfe7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6f0f3c7560646cea4d6ccbb6e26eaeee30ea6a805cb5e0c8d9f22dce3d33b2a1" + }, "blocks": [ { - "rlp": "0xf90370f9023da0e971532d5d152e68a23ae44ce99e5f22b0b67fa007635e2f5db271de5de17870a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd02b3fa7527ba2c92b2c2b73988ee83e833e7b3a0ae11b8025a5d56aee23259a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0dedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301727a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da06f0f3c7560646cea4d6ccbb6e26eaeee30ea6a805cb5e0c8d9f22dce3d33b2a1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f8f79e42176251f5238469e157d7672be66c6aca0182fe2cf8d48c883063a6b6a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0dedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301727a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0xe971532d5d152e68a23ae44ce99e5f22b0b67fa007635e2f5db271de5de17870", + "parentHash": "0x6f0f3c7560646cea4d6ccbb6e26eaeee30ea6a805cb5e0c8d9f22dce3d33b2a1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd02b3fa7527ba2c92b2c2b73988ee83e833e7b3a0ae11b8025a5d56aee23259", + "stateRoot": "0xf8f79e42176251f5238469e157d7672be66c6aca0182fe2cf8d48c883063a6b6", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0ded", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -335,33 +308,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x380c58858dc9cf7863f69d2c3830cc1076825449bc7b8839a68358b9dd16efe5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe971532d5d152e68a23ae44ce99e5f22b0b67fa007635e2f5db271de5de17870", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd02b3fa7527ba2c92b2c2b73988ee83e833e7b3a0ae11b8025a5d56aee23259", - "receiptsRoot": "0x604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0ded", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1727a", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x380c58858dc9cf7863f69d2c3830cc1076825449bc7b8839a68358b9dd16efe5", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x58dc939ace634b3065f0d58cd064dea688d8117339d733438a984cfe7dc1c9ba" }, "blocknumber": "1", "transactions": [ @@ -386,45 +333,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfa9efb317e28a57f9047ea47d3120f5c3be0dc8d70c4d20acf909960bfc94e79", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe971532d5d152e68a23ae44ce99e5f22b0b67fa007635e2f5db271de5de17870" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fa9efb317e28a57f9047ea47d3120f5c3be0dc8d70c4d20acf909960bfc94e79a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x380c58858dc9cf7863f69d2c3830cc1076825449bc7b8839a68358b9dd16efe5", - "network": "Cancun", + "lastblockhash": "0x58dc939ace634b3065f0d58cd064dea688d8117339d733438a984cfe7dc1c9ba", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c350f25a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -433,14 +355,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -449,6 +363,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5deaa", @@ -460,18 +382,43 @@ }, "003-fork=Cancun-proof=correct-exact_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06b9e4479ccd150c2821f70007d7d5404154427f3fa2455dcdf714b529c05b6aea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6b9e4479ccd150c2821f70007d7d5404154427f3fa2455dcdf714b529c05b6ae", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7ff849caed3e7ebf8f538bbf84bb1e823bbafd69ab1a0861ca830d6e5540ed1f" + }, "blocks": [ { - "rlp": "0xf90370f9023da0bd951f7b21c3b27b63b05f63b7062ecec48f447946addd2b16ff3b54bd43bd6ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa088d4c3ffefbf0c84127c2ba99c0c91ab7ce67917b6f78ecb2db0974b7ab70c2fa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a01c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172770c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da07ff849caed3e7ebf8f538bbf84bb1e823bbafd69ab1a0861ca830d6e5540ed1fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa034457da653de3fbff30d2a7da2beb167b2a9d1ad261887a43dbbac62aaf55bb9a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a01c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172770c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0xbd951f7b21c3b27b63b05f63b7062ecec48f447946addd2b16ff3b54bd43bd6c", + "parentHash": "0x7ff849caed3e7ebf8f538bbf84bb1e823bbafd69ab1a0861ca830d6e5540ed1f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x88d4c3ffefbf0c84127c2ba99c0c91ab7ce67917b6f78ecb2db0974b7ab70c2f", + "stateRoot": "0x34457da653de3fbff30d2a7da2beb167b2a9d1ad261887a43dbbac62aaf55bb9", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x1c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -488,33 +435,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8c123fd8f647aaffc0f509385645ee3ec346ed1e3aa27bde487cd2975dc27cfd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbd951f7b21c3b27b63b05f63b7062ecec48f447946addd2b16ff3b54bd43bd6c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x88d4c3ffefbf0c84127c2ba99c0c91ab7ce67917b6f78ecb2db0974b7ab70c2f", - "receiptsRoot": "0x1c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17277", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8c123fd8f647aaffc0f509385645ee3ec346ed1e3aa27bde487cd2975dc27cfd", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd3e21870ca4adff011f15a44d281125af875a388c6a32eadd0d6b8fa0050bd87" }, "blocknumber": "1", "transactions": [ @@ -539,45 +460,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd3274fdbbc101a1115da98a7666e91e4f2015736e1df280d89bf09adefdb51c9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbd951f7b21c3b27b63b05f63b7062ecec48f447946addd2b16ff3b54bd43bd6c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d3274fdbbc101a1115da98a7666e91e4f2015736e1df280d89bf09adefdb51c9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8c123fd8f647aaffc0f509385645ee3ec346ed1e3aa27bde487cd2975dc27cfd", - "network": "Cancun", + "lastblockhash": "0xd3e21870ca4adff011f15a44d281125af875a388c6a32eadd0d6b8fa0050bd87", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c350fa5a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -586,14 +482,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -602,6 +490,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5debf", @@ -613,18 +509,43 @@ }, "004-fork=Cancun-proof=correct-insufficient_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0630db6ae48c0ada09b20778eed75e83d6bb563b73d0b66eef4c161801293c131a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x630db6ae48c0ada09b20778eed75e83d6bb563b73d0b66eef4c161801293c131", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2f9b4f4c7e8425902a1007b381ebe7207bd9472f71c6aeb03d614e74420778c7" + }, "blocks": [ { - "rlp": "0xf90370f9023da0f2072142d3e37d243c5fe66dd8f8182a38666237749b91e16af1d42bb2283a7ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00ae06fe7cc18a13b68f0c2afcad81a962c1db6b20aa94c63b0e9be043d0b6320a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a09197dd2011319644ecd2a8a06b0cee674b952eac1304cb7fa2e7446594eabae9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172790c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da02f9b4f4c7e8425902a1007b381ebe7207bd9472f71c6aeb03d614e74420778c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c8d47d09d499bbdedc96e54458d760db21ce5128c964545fb539da85e8dddc09a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a09197dd2011319644ecd2a8a06b0cee674b952eac1304cb7fa2e7446594eabae9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172790c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0xf2072142d3e37d243c5fe66dd8f8182a38666237749b91e16af1d42bb2283a7c", + "parentHash": "0x2f9b4f4c7e8425902a1007b381ebe7207bd9472f71c6aeb03d614e74420778c7", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0ae06fe7cc18a13b68f0c2afcad81a962c1db6b20aa94c63b0e9be043d0b6320", + "stateRoot": "0xc8d47d09d499bbdedc96e54458d760db21ce5128c964545fb539da85e8dddc09", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x9197dd2011319644ecd2a8a06b0cee674b952eac1304cb7fa2e7446594eabae9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -641,33 +562,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x02a597452425bea0300f0b0efacb5bf4a60a8ddc132a958910d7afa93e84a587" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf2072142d3e37d243c5fe66dd8f8182a38666237749b91e16af1d42bb2283a7c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0ae06fe7cc18a13b68f0c2afcad81a962c1db6b20aa94c63b0e9be043d0b6320", - "receiptsRoot": "0x9197dd2011319644ecd2a8a06b0cee674b952eac1304cb7fa2e7446594eabae9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17279", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x02a597452425bea0300f0b0efacb5bf4a60a8ddc132a958910d7afa93e84a587", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x92435a1d9eba7397f9e8460db83af246b864591b37460d7733d1fb47e8c9aa21" }, "blocknumber": "1", "transactions": [ @@ -692,45 +587,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc2cd0c5d412aa2474a2dd3a6613925c607aab922eece2060dfbed79f820a4439", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf2072142d3e37d243c5fe66dd8f8182a38666237749b91e16af1d42bb2283a7c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c2cd0c5d412aa2474a2dd3a6613925c607aab922eece2060dfbed79f820a4439a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x02a597452425bea0300f0b0efacb5bf4a60a8ddc132a958910d7afa93e84a587", - "network": "Cancun", + "lastblockhash": "0x92435a1d9eba7397f9e8460db83af246b864591b37460d7733d1fb47e8c9aa21", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c34ff15a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -739,14 +609,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -755,6 +617,14 @@ "0x00": "0xc34f" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5deb1", @@ -766,18 +636,43 @@ }, "005-fork=Cancun-proof=correct-insufficient_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a001e62a9c06542801df2e4cc3f18dec69536b80b51927fffd3aac1d1f4dd2ee25a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x01e62a9c06542801df2e4cc3f18dec69536b80b51927fffd3aac1d1f4dd2ee25", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbc3025e9f75d38162f48aefc1a8f28276d998aab639493ebfedd5f5085e50454" + }, "blocks": [ { - "rlp": "0xf90370f9023da07d06b967d2ad8b24a092855b4ea482c0a71e72c24e4b6be205615fae37a267b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09665663c0d0c42c77d8fdc68555e89b69f1220520d74f15e1980545e3a3045e2a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0ace1ceacb6a9869287bc28a00c6eab0866444fad6e8b990063047c83a278fcf9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172760c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da0bc3025e9f75d38162f48aefc1a8f28276d998aab639493ebfedd5f5085e50454a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa093aed4d620f17571cc6d5fa95f5b5396fd15f11d3f364f6c12e0e721c457ec3da09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0ace1ceacb6a9869287bc28a00c6eab0866444fad6e8b990063047c83a278fcf9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172760c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0x7d06b967d2ad8b24a092855b4ea482c0a71e72c24e4b6be205615fae37a267b2", + "parentHash": "0xbc3025e9f75d38162f48aefc1a8f28276d998aab639493ebfedd5f5085e50454", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9665663c0d0c42c77d8fdc68555e89b69f1220520d74f15e1980545e3a3045e2", + "stateRoot": "0x93aed4d620f17571cc6d5fa95f5b5396fd15f11d3f364f6c12e0e721c457ec3d", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0xace1ceacb6a9869287bc28a00c6eab0866444fad6e8b990063047c83a278fcf9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -794,33 +689,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfd95b2c3a2c8cca4616d1d4d12f3df3f4deb75d98a916b72e8335d18c185ffb8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d06b967d2ad8b24a092855b4ea482c0a71e72c24e4b6be205615fae37a267b2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9665663c0d0c42c77d8fdc68555e89b69f1220520d74f15e1980545e3a3045e2", - "receiptsRoot": "0xace1ceacb6a9869287bc28a00c6eab0866444fad6e8b990063047c83a278fcf9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17276", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfd95b2c3a2c8cca4616d1d4d12f3df3f4deb75d98a916b72e8335d18c185ffb8", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0a0d6761979054a5d93ef6032d3d81ef476ec7e5da3eeb4fb74d01a471c7caf3" }, "blocknumber": "1", "transactions": [ @@ -845,45 +714,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa42252094ef9ca5619f1fb41f3be7be95c0ba6573de1a90e84206cb0bb83be1d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d06b967d2ad8b24a092855b4ea482c0a71e72c24e4b6be205615fae37a267b2" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a42252094ef9ca5619f1fb41f3be7be95c0ba6573de1a90e84206cb0bb83be1da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfd95b2c3a2c8cca4616d1d4d12f3df3f4deb75d98a916b72e8335d18c185ffb8", - "network": "Cancun", + "lastblockhash": "0x0a0d6761979054a5d93ef6032d3d81ef476ec7e5da3eeb4fb74d01a471c7caf3", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c34ff45a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -892,14 +736,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -908,6 +744,14 @@ "0x00": "0xc34f" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5dec6", @@ -919,18 +763,43 @@ }, "006-fork=Cancun-proof=correct-insufficient_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f6f246f35a7e537ab1b60a2afaf598a3c9cdb2c8d0b785f65defbc83dc51f19aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf6f246f35a7e537ab1b60a2afaf598a3c9cdb2c8d0b785f65defbc83dc51f19a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x32b16c7f570fdac61f698cb14374cf421cd9a0eb3adf0b29b8c35d6d5bd72494" + }, "blocks": [ { - "rlp": "0xf90370f9023da02f252b2053b33ce383ebc6872c0b29efee7e2c0bc39271373f4a68e7e1d3bb9ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0774beec2b0fd6bdac49cee69f8fbe4f8aab658ccb582288b5ba25f6fb660199aa09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a09197dd2011319644ecd2a8a06b0cee674b952eac1304cb7fa2e7446594eabae9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172790c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da032b16c7f570fdac61f698cb14374cf421cd9a0eb3adf0b29b8c35d6d5bd72494a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa012b13080044a3842cc3ecf4e573eac9b2d9fec270f21ecf571c6ccb264b9e312a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a09197dd2011319644ecd2a8a06b0cee674b952eac1304cb7fa2e7446594eabae9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172790c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0x2f252b2053b33ce383ebc6872c0b29efee7e2c0bc39271373f4a68e7e1d3bb9b", + "parentHash": "0x32b16c7f570fdac61f698cb14374cf421cd9a0eb3adf0b29b8c35d6d5bd72494", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x774beec2b0fd6bdac49cee69f8fbe4f8aab658ccb582288b5ba25f6fb660199a", + "stateRoot": "0x12b13080044a3842cc3ecf4e573eac9b2d9fec270f21ecf571c6ccb264b9e312", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x9197dd2011319644ecd2a8a06b0cee674b952eac1304cb7fa2e7446594eabae9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -947,33 +816,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe1799358e7fed3ec5cf5691dc6e0e723f3dddd12cd793b2bf3d2f98ee6e5384d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2f252b2053b33ce383ebc6872c0b29efee7e2c0bc39271373f4a68e7e1d3bb9b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x774beec2b0fd6bdac49cee69f8fbe4f8aab658ccb582288b5ba25f6fb660199a", - "receiptsRoot": "0x9197dd2011319644ecd2a8a06b0cee674b952eac1304cb7fa2e7446594eabae9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17279", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe1799358e7fed3ec5cf5691dc6e0e723f3dddd12cd793b2bf3d2f98ee6e5384d", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x19d29af5b79e69fa13050e1d98993bb40e7d33d96e4137e19efbf8ecb3d4cee0" }, "blocknumber": "1", "transactions": [ @@ -998,45 +841,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8efb7e4554679a5a19334679d5423e9932b5183fe6570b06c35c87be759bce2c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2f252b2053b33ce383ebc6872c0b29efee7e2c0bc39271373f4a68e7e1d3bb9b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08efb7e4554679a5a19334679d5423e9932b5183fe6570b06c35c87be759bce2ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe1799358e7fed3ec5cf5691dc6e0e723f3dddd12cd793b2bf3d2f98ee6e5384d", - "network": "Cancun", + "lastblockhash": "0x19d29af5b79e69fa13050e1d98993bb40e7d33d96e4137e19efbf8ecb3d4cee0", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c34ff25a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1045,14 +863,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1061,6 +871,14 @@ "0x00": "0xc34f" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5deb1", @@ -1072,18 +890,43 @@ }, "007-fork=Cancun-proof=correct-insufficient_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01007fa32f8d3f53f8a87f123f8ef224a82ef73da0ce643370d7ba2511495dd19a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1007fa32f8d3f53f8a87f123f8ef224a82ef73da0ce643370d7ba2511495dd19", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x574e5113f091e4f9bac80d8a9e2aa1ec3cc086562bc0e1019182beb7bb4714cd" + }, "blocks": [ { - "rlp": "0xf90370f9023da0237fc3885f3a865ed4796de9ff1f29a4057012fc22ddba83415a4cf51577a1d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02171de1bbd03108b4fc85bbe613f9d735e52028f9d2fe7548b7dec012d7d302ea09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0ace1ceacb6a9869287bc28a00c6eab0866444fad6e8b990063047c83a278fcf9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172760c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da0574e5113f091e4f9bac80d8a9e2aa1ec3cc086562bc0e1019182beb7bb4714cda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0846193a7b7f3ccba8bdf2853515a01f1a84e6831343a843f3205d65096bc31e1a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0ace1ceacb6a9869287bc28a00c6eab0866444fad6e8b990063047c83a278fcf9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172760c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0x237fc3885f3a865ed4796de9ff1f29a4057012fc22ddba83415a4cf51577a1d4", + "parentHash": "0x574e5113f091e4f9bac80d8a9e2aa1ec3cc086562bc0e1019182beb7bb4714cd", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2171de1bbd03108b4fc85bbe613f9d735e52028f9d2fe7548b7dec012d7d302e", + "stateRoot": "0x846193a7b7f3ccba8bdf2853515a01f1a84e6831343a843f3205d65096bc31e1", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0xace1ceacb6a9869287bc28a00c6eab0866444fad6e8b990063047c83a278fcf9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1100,33 +943,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x71c294cbcb744c11203611226d8c4df03065aace59c8a5082cac6c50b6850904" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x237fc3885f3a865ed4796de9ff1f29a4057012fc22ddba83415a4cf51577a1d4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2171de1bbd03108b4fc85bbe613f9d735e52028f9d2fe7548b7dec012d7d302e", - "receiptsRoot": "0xace1ceacb6a9869287bc28a00c6eab0866444fad6e8b990063047c83a278fcf9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17276", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x71c294cbcb744c11203611226d8c4df03065aace59c8a5082cac6c50b6850904", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3894b420644d31399de1243aac4c132e77dfdbd5702fecd675992017f1d9e333" }, "blocknumber": "1", "transactions": [ @@ -1151,45 +968,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x439e3b8765ba327073a4e2d671a33d8facbc7f93c14ddf23fbbb5ca0bba84df9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x237fc3885f3a865ed4796de9ff1f29a4057012fc22ddba83415a4cf51577a1d4" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0439e3b8765ba327073a4e2d671a33d8facbc7f93c14ddf23fbbb5ca0bba84df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x71c294cbcb744c11203611226d8c4df03065aace59c8a5082cac6c50b6850904", - "network": "Cancun", + "lastblockhash": "0x3894b420644d31399de1243aac4c132e77dfdbd5702fecd675992017f1d9e333", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c34ffa5a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1198,14 +990,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1214,6 +998,14 @@ "0x00": "0xc34f" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5dec6", @@ -1225,18 +1017,43 @@ }, "008-fork=Cancun-proof=correct-extra_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0184175c84e8f9895b040562fb9bbca8e233af446c719aedf8659094dc4c1cd52a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x184175c84e8f9895b040562fb9bbca8e233af446c719aedf8659094dc4c1cd52", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1b0c28cc4638a9f37f9c230ed1e9ee12533e7adf0b927be2bdd82f50ccde4f01" + }, "blocks": [ { - "rlp": "0xf90370f9023da0c4449bb14bd15400bffdcc50798875f7cbd1d5dc65f4676d4c20649dfd186693a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0afdab32d65eedbc430c622467024d3aaca511cf126774ce20c1bbb817c849487a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0dedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301727a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da01b0c28cc4638a9f37f9c230ed1e9ee12533e7adf0b927be2bdd82f50ccde4f01a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fa9fe72a91727dbd95320865a9590414d3321f0bf7c2cdbc84545f43a2986b16a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0dedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301727a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0xc4449bb14bd15400bffdcc50798875f7cbd1d5dc65f4676d4c20649dfd186693", + "parentHash": "0x1b0c28cc4638a9f37f9c230ed1e9ee12533e7adf0b927be2bdd82f50ccde4f01", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xafdab32d65eedbc430c622467024d3aaca511cf126774ce20c1bbb817c849487", + "stateRoot": "0xfa9fe72a91727dbd95320865a9590414d3321f0bf7c2cdbc84545f43a2986b16", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0ded", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1253,33 +1070,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x87e6f34c1dcf5e100de71ba8d029956880a2cac488c9c3efc3d1a8e0491d8e65" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc4449bb14bd15400bffdcc50798875f7cbd1d5dc65f4676d4c20649dfd186693", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xafdab32d65eedbc430c622467024d3aaca511cf126774ce20c1bbb817c849487", - "receiptsRoot": "0x604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0ded", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1727a", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x87e6f34c1dcf5e100de71ba8d029956880a2cac488c9c3efc3d1a8e0491d8e65", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x106e1ce1bba0f4d7a02d14d609eca27b3ab1e053915a9e2ac1aae65059dd5475" }, "blocknumber": "1", "transactions": [ @@ -1304,45 +1095,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0de15b179eba300db2f7f47a60d5abf9d42170da26004bb51c8801069ffcacc0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc4449bb14bd15400bffdcc50798875f7cbd1d5dc65f4676d4c20649dfd186693" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00de15b179eba300db2f7f47a60d5abf9d42170da26004bb51c8801069ffcacc0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x87e6f34c1dcf5e100de71ba8d029956880a2cac488c9c3efc3d1a8e0491d8e65", - "network": "Cancun", + "lastblockhash": "0x106e1ce1bba0f4d7a02d14d609eca27b3ab1e053915a9e2ac1aae65059dd5475", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c351f15a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1351,14 +1117,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1367,6 +1125,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5deaa", @@ -1378,18 +1144,43 @@ }, "009-fork=Cancun-proof=correct-extra_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a029fb1eecc564f309dc28ee1bd4eb6da89ea464ef7f0db0f45fb1307a838901b4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x29fb1eecc564f309dc28ee1bd4eb6da89ea464ef7f0db0f45fb1307a838901b4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf21b3683c1bd5f84fa161d94ddb8e6cf1e0e1af59167e47473e4b6b19037f24a" + }, "blocks": [ { - "rlp": "0xf90370f9023da0b43a8fa1c8e7063c36b4aeff424db335e06d1b969412b0def57919cd2c1a159fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09088aaddc8633897746bdc15541b47bcfd7bc596a469892f2fcbd80e32d2a066a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a01c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172770c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da0f21b3683c1bd5f84fa161d94ddb8e6cf1e0e1af59167e47473e4b6b19037f24aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f07519a8245a09784ecb897723380f227a4387b4d009b366cfdf3dde850d7ec5a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a01c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172770c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0xb43a8fa1c8e7063c36b4aeff424db335e06d1b969412b0def57919cd2c1a159f", + "parentHash": "0xf21b3683c1bd5f84fa161d94ddb8e6cf1e0e1af59167e47473e4b6b19037f24a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9088aaddc8633897746bdc15541b47bcfd7bc596a469892f2fcbd80e32d2a066", + "stateRoot": "0xf07519a8245a09784ecb897723380f227a4387b4d009b366cfdf3dde850d7ec5", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x1c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1406,33 +1197,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x834dd0d3de3d12db1ff03aef0a2acd2314162d95a58dc03669a64e5e63cdd200" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb43a8fa1c8e7063c36b4aeff424db335e06d1b969412b0def57919cd2c1a159f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9088aaddc8633897746bdc15541b47bcfd7bc596a469892f2fcbd80e32d2a066", - "receiptsRoot": "0x1c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17277", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x834dd0d3de3d12db1ff03aef0a2acd2314162d95a58dc03669a64e5e63cdd200", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1a3f36e436cbe050660bfd7d775c14a35a79d7b80b10953db8f4318f2d83dcf6" }, "blocknumber": "1", "transactions": [ @@ -1457,45 +1222,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf3c55915db177f5206850bad1622224b2c653741ecab2ed4be1065bb62e199ac", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb43a8fa1c8e7063c36b4aeff424db335e06d1b969412b0def57919cd2c1a159f" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f3c55915db177f5206850bad1622224b2c653741ecab2ed4be1065bb62e199aca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x834dd0d3de3d12db1ff03aef0a2acd2314162d95a58dc03669a64e5e63cdd200", - "network": "Cancun", + "lastblockhash": "0x1a3f36e436cbe050660bfd7d775c14a35a79d7b80b10953db8f4318f2d83dcf6", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c351f45a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1504,14 +1244,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1520,6 +1252,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5debf", @@ -1531,18 +1271,43 @@ }, "010-fork=Cancun-proof=correct-extra_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014a08e968e3de1879c4c1fc8a26a7b1f1a8342fe62914e08841ed0888ddae945a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x14a08e968e3de1879c4c1fc8a26a7b1f1a8342fe62914e08841ed0888ddae945", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x13e0d336fa2467896d130d04b525dd65422faded748267a0d38bd1eaf68df7b6" + }, "blocks": [ { - "rlp": "0xf90370f9023da0569e784388c9a8f0ce81c4d025eb1559b76fca8576abeccdbf99b0d78c7dc469a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cfe46af49a07b46f1ee1deb77dffb366cf4d5bf8713fe152fa07b3f14423c919a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0dedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301727a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da013e0d336fa2467896d130d04b525dd65422faded748267a0d38bd1eaf68df7b6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07b732317c628cc1d522d092bb0a213daf6f1ee74150597ee5a9a59f7197b601ba09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a0604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0dedb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301727a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0x569e784388c9a8f0ce81c4d025eb1559b76fca8576abeccdbf99b0d78c7dc469", + "parentHash": "0x13e0d336fa2467896d130d04b525dd65422faded748267a0d38bd1eaf68df7b6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcfe46af49a07b46f1ee1deb77dffb366cf4d5bf8713fe152fa07b3f14423c919", + "stateRoot": "0x7b732317c628cc1d522d092bb0a213daf6f1ee74150597ee5a9a59f7197b601b", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0ded", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1559,33 +1324,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x602ba6ed4bb64aaa57fb251e8578fae3ff2ee6e7e73d96837ed3b2d4ce504c6a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x569e784388c9a8f0ce81c4d025eb1559b76fca8576abeccdbf99b0d78c7dc469", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcfe46af49a07b46f1ee1deb77dffb366cf4d5bf8713fe152fa07b3f14423c919", - "receiptsRoot": "0x604c9a228f68da4bcad0fe8bae7f2ffd3746fe4fba0fcc5226d63ffbd0df0ded", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1727a", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x602ba6ed4bb64aaa57fb251e8578fae3ff2ee6e7e73d96837ed3b2d4ce504c6a", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf5320f0fa423abe0bc1b9697389d4b97a2461394d11bbcc142883144f7c6c314" }, "blocknumber": "1", "transactions": [ @@ -1610,45 +1349,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x75f56fa50af5fec37694c95d08a0c8aa2ef2bca0e7198e1ee598bcb64dfe22be", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x569e784388c9a8f0ce81c4d025eb1559b76fca8576abeccdbf99b0d78c7dc469" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a075f56fa50af5fec37694c95d08a0c8aa2ef2bca0e7198e1ee598bcb64dfe22bea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x602ba6ed4bb64aaa57fb251e8578fae3ff2ee6e7e73d96837ed3b2d4ce504c6a", - "network": "Cancun", + "lastblockhash": "0xf5320f0fa423abe0bc1b9697389d4b97a2461394d11bbcc142883144f7c6c314", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c351f25a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1657,14 +1371,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1673,6 +1379,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5deaa", @@ -1684,18 +1398,43 @@ }, "011-fork=Cancun-proof=correct-extra_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0711460d0845cf7bd9494fc30ac1285759342f9bd714df0629e1bdb33bbf626e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x711460d0845cf7bd9494fc30ac1285759342f9bd714df0629e1bdb33bbf626e7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xae334e626770ceb6016c8e3e6da2a12da2b323f0df8ef9c7b4712af70d7093a9" + }, "blocks": [ { - "rlp": "0xf90370f9023da0a14d1df59846617f8eb920825d76e92157a5b45349db5526035d3070dd71631fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa027dc5e1967e518cf3596f3e1ab80ef69a47ce4feb78a17d03c3cb6c9a4f8a774a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a01c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172770c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", + "rlp": "0xf90370f9023da0ae334e626770ceb6016c8e3e6da2a12da2b323f0df8ef9c7b4712af70d7093a9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b54b54bc868dbd2d56b31c04ec265a688acacbc014c5a90bd7fc70a0c5a994b9a09de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360a01c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172770c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22c0c0", "blockHeader": { - "parentHash": "0xa14d1df59846617f8eb920825d76e92157a5b45349db5526035d3070dd71631f", + "parentHash": "0xae334e626770ceb6016c8e3e6da2a12da2b323f0df8ef9c7b4712af70d7093a9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x27dc5e1967e518cf3596f3e1ab80ef69a47ce4feb78a17d03c3cb6c9a4f8a774", + "stateRoot": "0xb54b54bc868dbd2d56b31c04ec265a688acacbc014c5a90bd7fc70a0c5a994b9", "transactionsTrie": "0x9de76ebe2fbdd1eb1a72a2e02745283ea9c1a5589acfbca28e25b9705616f360", "receiptTrie": "0x1c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1712,33 +1451,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfa2b2120c8dea3dacc58f74a95ce657d14699c46489fe4717bf7edd45ae58a3e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa14d1df59846617f8eb920825d76e92157a5b45349db5526035d3070dd71631f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x27dc5e1967e518cf3596f3e1ab80ef69a47ce4feb78a17d03c3cb6c9a4f8a774", - "receiptsRoot": "0x1c40c72d45b04b46501bab7ddc4073e4fdc8b0aacb04c5c31c2bf2ee785d0085", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17277", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfa2b2120c8dea3dacc58f74a95ce657d14699c46489fe4717bf7edd45ae58a3e", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c001a05d3bf2f997666f4680b7e444ca7e44c0b2de13ee5223f26a7a7bde6f088aec02a069b227b9cd40fa2c0fe4fb4616f1048b448d849427efdb783389c6e6e6caaf22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb6a259d214358709b1465cb7db6bf54fce4aba75926d48bd6b014a77c9d723e8" }, "blocknumber": "1", "transactions": [ @@ -1763,45 +1476,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xab6d1d51ab85418ca6614233385f72fec0a3e37acf997711190a981a11a6fd8f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa14d1df59846617f8eb920825d76e92157a5b45349db5526035d3070dd71631f" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ab6d1d51ab85418ca6614233385f72fec0a3e37acf997711190a981a11a6fd8fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfa2b2120c8dea3dacc58f74a95ce657d14699c46489fe4717bf7edd45ae58a3e", - "network": "Cancun", + "lastblockhash": "0xb6a259d214358709b1465cb7db6bf54fce4aba75926d48bd6b014a77c9d723e8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c351fa5a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1810,14 +1498,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1826,6 +1506,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5debf", @@ -1837,18 +1525,43 @@ }, "012-fork=Cancun-proof=incorrect-exact_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0103cfeaae84df053588b7189838257b2f9d9e4b3fd8d28bf7a3030f2ebef8f9ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x103cfeaae84df053588b7189838257b2f9d9e4b3fd8d28bf7a3030f2ebef8f9e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9cac74f0a8928e5d71d9a5592e25668fbc7448dcd8e114524b31c618aab2f8d9" + }, "blocks": [ { - "rlp": "0xf90370f9023da03b4cf395516db27efae7696fac3ae139885f479df92035969ce8d5833a71062aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fbd288c458b8dca8100e9c2729f1e6feef57884f00de1f04f3ed28d63d8cae50a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a06ddb313832f1b53c5d3263aefce1ecbacef4f9d1b8395977cd0e36135e88cc18b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da09cac74f0a8928e5d71d9a5592e25668fbc7448dcd8e114524b31c618aab2f8d9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0edeea72e25dc24e25699f2430dfdc5eab79b7527ec58db7cab44aed2dcc723eda031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a06ddb313832f1b53c5d3263aefce1ecbacef4f9d1b8395977cd0e36135e88cc18b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0x3b4cf395516db27efae7696fac3ae139885f479df92035969ce8d5833a71062a", + "parentHash": "0x9cac74f0a8928e5d71d9a5592e25668fbc7448dcd8e114524b31c618aab2f8d9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfbd288c458b8dca8100e9c2729f1e6feef57884f00de1f04f3ed28d63d8cae50", + "stateRoot": "0xedeea72e25dc24e25699f2430dfdc5eab79b7527ec58db7cab44aed2dcc723ed", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0x6ddb313832f1b53c5d3263aefce1ecbacef4f9d1b8395977cd0e36135e88cc18", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1865,33 +1578,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfe885c83c0c3d5ff70924444362c3bf1480f2f60de1351cea8beef27e5eebb55" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3b4cf395516db27efae7696fac3ae139885f479df92035969ce8d5833a71062a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfbd288c458b8dca8100e9c2729f1e6feef57884f00de1f04f3ed28d63d8cae50", - "receiptsRoot": "0x6ddb313832f1b53c5d3263aefce1ecbacef4f9d1b8395977cd0e36135e88cc18", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17286", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfe885c83c0c3d5ff70924444362c3bf1480f2f60de1351cea8beef27e5eebb55", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2fea48464eb60c3368d04de558c86523b747c665f4fbf1955e5db479c2559476" }, "blocknumber": "1", "transactions": [ @@ -1916,45 +1603,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x89007ca452bec08f4dd8ba074382946e079e09ab837c9af71d0cf1403f13399a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3b4cf395516db27efae7696fac3ae139885f479df92035969ce8d5833a71062a" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089007ca452bec08f4dd8ba074382946e079e09ab837c9af71d0cf1403f13399aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfe885c83c0c3d5ff70924444362c3bf1480f2f60de1351cea8beef27e5eebb55", - "network": "Cancun", + "lastblockhash": "0x2fea48464eb60c3368d04de558c86523b747c665f4fbf1955e5db479c2559476", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c350f15a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -1963,14 +1625,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1979,6 +1633,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de56", @@ -1990,18 +1652,43 @@ }, "013-fork=Cancun-proof=incorrect-exact_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b97bdb1e96ff740162defa5c4af54033900f9c5e631fe268c41b9a3ac635cea3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb97bdb1e96ff740162defa5c4af54033900f9c5e631fe268c41b9a3ac635cea3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xeea71745de8ebf2c867c5384b717e8090723b6b62212f6e95e61dbb51638c14c" + }, "blocks": [ { - "rlp": "0xf90370f9023da0f9eb453c7d35160b9fe37e0a22e2f9debe6ecfa3d0c40fc9dbe1e45194cb98bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02dbf325f4e22136c1ec88429aa0268bf24418dea9287fabf50f3332f61235f70a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a041ab59b861bfc0eaa236f0ee3373d6a808ce08289a48d65f1935320e79248aeab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172830c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da0eea71745de8ebf2c867c5384b717e8090723b6b62212f6e95e61dbb51638c14ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06ad34af7332417988c12528c55564d4cbd09ed546ef00608372425dd5177158aa031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a041ab59b861bfc0eaa236f0ee3373d6a808ce08289a48d65f1935320e79248aeab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172830c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0xf9eb453c7d35160b9fe37e0a22e2f9debe6ecfa3d0c40fc9dbe1e45194cb98be", + "parentHash": "0xeea71745de8ebf2c867c5384b717e8090723b6b62212f6e95e61dbb51638c14c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2dbf325f4e22136c1ec88429aa0268bf24418dea9287fabf50f3332f61235f70", + "stateRoot": "0x6ad34af7332417988c12528c55564d4cbd09ed546ef00608372425dd5177158a", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0x41ab59b861bfc0eaa236f0ee3373d6a808ce08289a48d65f1935320e79248aea", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2018,33 +1705,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x478a9ebc305cdf4c4c2b29c98c3e4fe2ccc6336f7afd6b2a022d3681c0f62224" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf9eb453c7d35160b9fe37e0a22e2f9debe6ecfa3d0c40fc9dbe1e45194cb98be", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2dbf325f4e22136c1ec88429aa0268bf24418dea9287fabf50f3332f61235f70", - "receiptsRoot": "0x41ab59b861bfc0eaa236f0ee3373d6a808ce08289a48d65f1935320e79248aea", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17283", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x478a9ebc305cdf4c4c2b29c98c3e4fe2ccc6336f7afd6b2a022d3681c0f62224", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8a65c43f22eb312cceca2d3c70ef81d908340158f4e621dd87b78b91c2359766" }, "blocknumber": "1", "transactions": [ @@ -2069,45 +1730,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xdb02eda30a82308919f0026e6387de21c5061b81d34ea5e24a0ac3713f4154b2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf9eb453c7d35160b9fe37e0a22e2f9debe6ecfa3d0c40fc9dbe1e45194cb98be" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db02eda30a82308919f0026e6387de21c5061b81d34ea5e24a0ac3713f4154b2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x478a9ebc305cdf4c4c2b29c98c3e4fe2ccc6336f7afd6b2a022d3681c0f62224", - "network": "Cancun", + "lastblockhash": "0x8a65c43f22eb312cceca2d3c70ef81d908340158f4e621dd87b78b91c2359766", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c350f45a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2116,14 +1752,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2132,6 +1760,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de6b", @@ -2143,18 +1779,43 @@ }, "014-fork=Cancun-proof=incorrect-exact_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dcc26d974c6353a9d69adb6b629bea5ad120855f20c09af0adf9a5489dbfdfe7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdcc26d974c6353a9d69adb6b629bea5ad120855f20c09af0adf9a5489dbfdfe7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6f0f3c7560646cea4d6ccbb6e26eaeee30ea6a805cb5e0c8d9f22dce3d33b2a1" + }, "blocks": [ { - "rlp": "0xf90370f9023da0e971532d5d152e68a23ae44ce99e5f22b0b67fa007635e2f5db271de5de17870a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d6bbec30c16a74dba1181be535f155f145c89c41e1c9abdce790d235910f16ea031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a06ddb313832f1b53c5d3263aefce1ecbacef4f9d1b8395977cd0e36135e88cc18b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da06f0f3c7560646cea4d6ccbb6e26eaeee30ea6a805cb5e0c8d9f22dce3d33b2a1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b44feb9b0ef51db2fa1399b9cf5fe6d397516cec669e73168189277a5da57dea031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a06ddb313832f1b53c5d3263aefce1ecbacef4f9d1b8395977cd0e36135e88cc18b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172860c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0xe971532d5d152e68a23ae44ce99e5f22b0b67fa007635e2f5db271de5de17870", + "parentHash": "0x6f0f3c7560646cea4d6ccbb6e26eaeee30ea6a805cb5e0c8d9f22dce3d33b2a1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d6bbec30c16a74dba1181be535f155f145c89c41e1c9abdce790d235910f16e", + "stateRoot": "0x6b44feb9b0ef51db2fa1399b9cf5fe6d397516cec669e73168189277a5da57de", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0x6ddb313832f1b53c5d3263aefce1ecbacef4f9d1b8395977cd0e36135e88cc18", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2171,33 +1832,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5f306577f0f3bd0689631ac387cee582344c40bf0b28007586b7849077389256" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe971532d5d152e68a23ae44ce99e5f22b0b67fa007635e2f5db271de5de17870", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d6bbec30c16a74dba1181be535f155f145c89c41e1c9abdce790d235910f16e", - "receiptsRoot": "0x6ddb313832f1b53c5d3263aefce1ecbacef4f9d1b8395977cd0e36135e88cc18", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17286", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5f306577f0f3bd0689631ac387cee582344c40bf0b28007586b7849077389256", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x44748e075c81a4b22ee58d9d1e9b6777a30c829a3efe417c42482748aed9041c" }, "blocknumber": "1", "transactions": [ @@ -2222,45 +1857,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfa9efb317e28a57f9047ea47d3120f5c3be0dc8d70c4d20acf909960bfc94e79", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe971532d5d152e68a23ae44ce99e5f22b0b67fa007635e2f5db271de5de17870" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fa9efb317e28a57f9047ea47d3120f5c3be0dc8d70c4d20acf909960bfc94e79a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5f306577f0f3bd0689631ac387cee582344c40bf0b28007586b7849077389256", - "network": "Cancun", + "lastblockhash": "0x44748e075c81a4b22ee58d9d1e9b6777a30c829a3efe417c42482748aed9041c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c350f25a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2269,14 +1879,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2285,6 +1887,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de56", @@ -2296,61 +1906,60 @@ }, "015-fork=Cancun-proof=incorrect-exact_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, - "blocks": [ - { - "rlp": "0xf90370f9023da0bd951f7b21c3b27b63b05f63b7062ecec48f447946addd2b16ff3b54bd43bd6ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05780c3029b708521c2120bd7debaac5d290eb9be4685e30fddacaad03675b7efa031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a041ab59b861bfc0eaa236f0ee3373d6a808ce08289a48d65f1935320e79248aeab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172830c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", - "blockHeader": { - "parentHash": "0xbd951f7b21c3b27b63b05f63b7062ecec48f447946addd2b16ff3b54bd43bd6c", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5780c3029b708521c2120bd7debaac5d290eb9be4685e30fddacaad03675b7ef", - "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", - "receiptTrie": "0x41ab59b861bfc0eaa236f0ee3373d6a808ce08289a48d65f1935320e79248aea", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x017283", - "timestamp": "0x0c", - "extraData": "0x", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06b9e4479ccd150c2821f70007d7d5404154427f3fa2455dcdf714b529c05b6aea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6b9e4479ccd150c2821f70007d7d5404154427f3fa2455dcdf714b529c05b6ae", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7ff849caed3e7ebf8f538bbf84bb1e823bbafd69ab1a0861ca830d6e5540ed1f" + }, + "blocks": [ + { + "rlp": "0xf90370f9023da07ff849caed3e7ebf8f538bbf84bb1e823bbafd69ab1a0861ca830d6e5540ed1fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0300f16b802a764dfad9b081df5034cfa0af044bc7154a628306f4a41e359cdb3a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a041ab59b861bfc0eaa236f0ee3373d6a808ce08289a48d65f1935320e79248aeab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172830c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "blockHeader": { + "parentHash": "0x7ff849caed3e7ebf8f538bbf84bb1e823bbafd69ab1a0861ca830d6e5540ed1f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x300f16b802a764dfad9b081df5034cfa0af044bc7154a628306f4a41e359cdb3", + "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", + "receiptTrie": "0x41ab59b861bfc0eaa236f0ee3373d6a808ce08289a48d65f1935320e79248aea", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x017283", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1b4966dcc847086bfcbaee6b2affc7a0fbe04df2388944353888e1389b7402ad" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbd951f7b21c3b27b63b05f63b7062ecec48f447946addd2b16ff3b54bd43bd6c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5780c3029b708521c2120bd7debaac5d290eb9be4685e30fddacaad03675b7ef", - "receiptsRoot": "0x41ab59b861bfc0eaa236f0ee3373d6a808ce08289a48d65f1935320e79248aea", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17283", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x1b4966dcc847086bfcbaee6b2affc7a0fbe04df2388944353888e1389b7402ad", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf9c4b7a9cdd44b0f35a749bd030e2c1e5cdc51bb72d8b56ced16ee746e829238" }, "blocknumber": "1", "transactions": [ @@ -2375,45 +1984,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd3274fdbbc101a1115da98a7666e91e4f2015736e1df280d89bf09adefdb51c9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbd951f7b21c3b27b63b05f63b7062ecec48f447946addd2b16ff3b54bd43bd6c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d3274fdbbc101a1115da98a7666e91e4f2015736e1df280d89bf09adefdb51c9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1b4966dcc847086bfcbaee6b2affc7a0fbe04df2388944353888e1389b7402ad", - "network": "Cancun", + "lastblockhash": "0xf9c4b7a9cdd44b0f35a749bd030e2c1e5cdc51bb72d8b56ced16ee746e829238", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c350fa5a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2422,14 +2006,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2438,6 +2014,14 @@ "0x00": "0xc350" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de6b", @@ -2449,18 +2033,43 @@ }, "016-fork=Cancun-proof=incorrect-insufficient_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0630db6ae48c0ada09b20778eed75e83d6bb563b73d0b66eef4c161801293c131a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x630db6ae48c0ada09b20778eed75e83d6bb563b73d0b66eef4c161801293c131", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2f9b4f4c7e8425902a1007b381ebe7207bd9472f71c6aeb03d614e74420778c7" + }, "blocks": [ { - "rlp": "0xf90370f9023da0f2072142d3e37d243c5fe66dd8f8182a38666237749b91e16af1d42bb2283a7ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a4bb34ab2281015ebb3e30585988ae722c41dc85eceb9ed15916d687efae0eaea031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a0026989fd5fa3b30939d140a8d6f7fbe333f2959bf011e2e0d477a9a2514d750db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172850c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da02f9b4f4c7e8425902a1007b381ebe7207bd9472f71c6aeb03d614e74420778c7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa097f4f54d6ea7f287bb85da9b9f7d1ae15608c2b5c351816eea82ba63c88be6bfa031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a0026989fd5fa3b30939d140a8d6f7fbe333f2959bf011e2e0d477a9a2514d750db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172850c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0xf2072142d3e37d243c5fe66dd8f8182a38666237749b91e16af1d42bb2283a7c", + "parentHash": "0x2f9b4f4c7e8425902a1007b381ebe7207bd9472f71c6aeb03d614e74420778c7", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa4bb34ab2281015ebb3e30585988ae722c41dc85eceb9ed15916d687efae0eae", + "stateRoot": "0x97f4f54d6ea7f287bb85da9b9f7d1ae15608c2b5c351816eea82ba63c88be6bf", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0x026989fd5fa3b30939d140a8d6f7fbe333f2959bf011e2e0d477a9a2514d750d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2477,33 +2086,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3dc18713be8f77aeccd1f9f16835af3b11f728a4e925aae1bb16496bdf6a0558" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf2072142d3e37d243c5fe66dd8f8182a38666237749b91e16af1d42bb2283a7c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa4bb34ab2281015ebb3e30585988ae722c41dc85eceb9ed15916d687efae0eae", - "receiptsRoot": "0x026989fd5fa3b30939d140a8d6f7fbe333f2959bf011e2e0d477a9a2514d750d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17285", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3dc18713be8f77aeccd1f9f16835af3b11f728a4e925aae1bb16496bdf6a0558", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf4fb28c7863ca00fd79cf1d94f2f32c616562c2c415e61518ea07401445ac019" }, "blocknumber": "1", "transactions": [ @@ -2528,45 +2111,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc2cd0c5d412aa2474a2dd3a6613925c607aab922eece2060dfbed79f820a4439", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf2072142d3e37d243c5fe66dd8f8182a38666237749b91e16af1d42bb2283a7c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c2cd0c5d412aa2474a2dd3a6613925c607aab922eece2060dfbed79f820a4439a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3dc18713be8f77aeccd1f9f16835af3b11f728a4e925aae1bb16496bdf6a0558", - "network": "Cancun", + "lastblockhash": "0xf4fb28c7863ca00fd79cf1d94f2f32c616562c2c415e61518ea07401445ac019", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c34ff15a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2575,14 +2133,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2591,6 +2141,14 @@ "0x00": "0xc34f" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de5d", @@ -2602,18 +2160,43 @@ }, "017-fork=Cancun-proof=incorrect-insufficient_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a001e62a9c06542801df2e4cc3f18dec69536b80b51927fffd3aac1d1f4dd2ee25a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x01e62a9c06542801df2e4cc3f18dec69536b80b51927fffd3aac1d1f4dd2ee25", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbc3025e9f75d38162f48aefc1a8f28276d998aab639493ebfedd5f5085e50454" + }, "blocks": [ { - "rlp": "0xf90370f9023da07d06b967d2ad8b24a092855b4ea482c0a71e72c24e4b6be205615fae37a267b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cfb714f00537cba742bb2502b2f653e6982d6fee27793f0313dc3b10b4fa8759a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a01ec44b97ab57ff67ca4d573a3905634712136b2cc1dc14cd038e9061c877ef58b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172820c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da0bc3025e9f75d38162f48aefc1a8f28276d998aab639493ebfedd5f5085e50454a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa022bf6bf109151e230d950f633d784984df1315ee6ba776aca8af5b90e4fce287a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a01ec44b97ab57ff67ca4d573a3905634712136b2cc1dc14cd038e9061c877ef58b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172820c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0x7d06b967d2ad8b24a092855b4ea482c0a71e72c24e4b6be205615fae37a267b2", + "parentHash": "0xbc3025e9f75d38162f48aefc1a8f28276d998aab639493ebfedd5f5085e50454", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcfb714f00537cba742bb2502b2f653e6982d6fee27793f0313dc3b10b4fa8759", + "stateRoot": "0x22bf6bf109151e230d950f633d784984df1315ee6ba776aca8af5b90e4fce287", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0x1ec44b97ab57ff67ca4d573a3905634712136b2cc1dc14cd038e9061c877ef58", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2630,33 +2213,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x267609ada01f071907848fbad7c8378b4f0bd0e676edc83e1b4832bd1cd3a07a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7d06b967d2ad8b24a092855b4ea482c0a71e72c24e4b6be205615fae37a267b2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcfb714f00537cba742bb2502b2f653e6982d6fee27793f0313dc3b10b4fa8759", - "receiptsRoot": "0x1ec44b97ab57ff67ca4d573a3905634712136b2cc1dc14cd038e9061c877ef58", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17282", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x267609ada01f071907848fbad7c8378b4f0bd0e676edc83e1b4832bd1cd3a07a", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa0885d84ebf7b657f9e61031eeffc0c058a77ed315eb73804ba045f682b9ab1b" }, "blocknumber": "1", "transactions": [ @@ -2681,45 +2238,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa42252094ef9ca5619f1fb41f3be7be95c0ba6573de1a90e84206cb0bb83be1d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7d06b967d2ad8b24a092855b4ea482c0a71e72c24e4b6be205615fae37a267b2" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a42252094ef9ca5619f1fb41f3be7be95c0ba6573de1a90e84206cb0bb83be1da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x267609ada01f071907848fbad7c8378b4f0bd0e676edc83e1b4832bd1cd3a07a", - "network": "Cancun", + "lastblockhash": "0xa0885d84ebf7b657f9e61031eeffc0c058a77ed315eb73804ba045f682b9ab1b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c34ff45a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2728,14 +2260,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2744,6 +2268,14 @@ "0x00": "0xc34f" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de72", @@ -2755,18 +2287,43 @@ }, "018-fork=Cancun-proof=incorrect-insufficient_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f6f246f35a7e537ab1b60a2afaf598a3c9cdb2c8d0b785f65defbc83dc51f19aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf6f246f35a7e537ab1b60a2afaf598a3c9cdb2c8d0b785f65defbc83dc51f19a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x32b16c7f570fdac61f698cb14374cf421cd9a0eb3adf0b29b8c35d6d5bd72494" + }, "blocks": [ { - "rlp": "0xf90370f9023da02f252b2053b33ce383ebc6872c0b29efee7e2c0bc39271373f4a68e7e1d3bb9ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ecc40208805907979a3a4117550c380543e690e5cde85445474491612a76b32aa031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a0026989fd5fa3b30939d140a8d6f7fbe333f2959bf011e2e0d477a9a2514d750db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172850c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da032b16c7f570fdac61f698cb14374cf421cd9a0eb3adf0b29b8c35d6d5bd72494a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05017d9b9db22e67749921c0fbb09d6441ab249cbacf0519745ad83f32eb380bea031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a0026989fd5fa3b30939d140a8d6f7fbe333f2959bf011e2e0d477a9a2514d750db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172850c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0x2f252b2053b33ce383ebc6872c0b29efee7e2c0bc39271373f4a68e7e1d3bb9b", + "parentHash": "0x32b16c7f570fdac61f698cb14374cf421cd9a0eb3adf0b29b8c35d6d5bd72494", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xecc40208805907979a3a4117550c380543e690e5cde85445474491612a76b32a", + "stateRoot": "0x5017d9b9db22e67749921c0fbb09d6441ab249cbacf0519745ad83f32eb380be", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0x026989fd5fa3b30939d140a8d6f7fbe333f2959bf011e2e0d477a9a2514d750d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2783,33 +2340,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44934bb4f85c87b8e2fe54f2854373d0dec68eaafeff604cdea733a97804b783" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2f252b2053b33ce383ebc6872c0b29efee7e2c0bc39271373f4a68e7e1d3bb9b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xecc40208805907979a3a4117550c380543e690e5cde85445474491612a76b32a", - "receiptsRoot": "0x026989fd5fa3b30939d140a8d6f7fbe333f2959bf011e2e0d477a9a2514d750d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17285", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x44934bb4f85c87b8e2fe54f2854373d0dec68eaafeff604cdea733a97804b783", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xeb828ddd1548db11a77d35c547916247d3cfec01df696c4541322fb99d451d21" }, "blocknumber": "1", "transactions": [ @@ -2834,45 +2365,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8efb7e4554679a5a19334679d5423e9932b5183fe6570b06c35c87be759bce2c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2f252b2053b33ce383ebc6872c0b29efee7e2c0bc39271373f4a68e7e1d3bb9b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08efb7e4554679a5a19334679d5423e9932b5183fe6570b06c35c87be759bce2ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44934bb4f85c87b8e2fe54f2854373d0dec68eaafeff604cdea733a97804b783", - "network": "Cancun", + "lastblockhash": "0xeb828ddd1548db11a77d35c547916247d3cfec01df696c4541322fb99d451d21", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c34ff25a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -2881,14 +2387,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2897,6 +2395,14 @@ "0x00": "0xc34f" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de5d", @@ -2908,18 +2414,43 @@ }, "019-fork=Cancun-proof=incorrect-insufficient_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01007fa32f8d3f53f8a87f123f8ef224a82ef73da0ce643370d7ba2511495dd19a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1007fa32f8d3f53f8a87f123f8ef224a82ef73da0ce643370d7ba2511495dd19", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x574e5113f091e4f9bac80d8a9e2aa1ec3cc086562bc0e1019182beb7bb4714cd" + }, "blocks": [ { - "rlp": "0xf90370f9023da0237fc3885f3a865ed4796de9ff1f29a4057012fc22ddba83415a4cf51577a1d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c1508880fe65d5de62fee38ece2eb6af059e918a964ae1c7fee2b9aa3c6fa4b6a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a01ec44b97ab57ff67ca4d573a3905634712136b2cc1dc14cd038e9061c877ef58b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172820c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da0574e5113f091e4f9bac80d8a9e2aa1ec3cc086562bc0e1019182beb7bb4714cda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa006bdc744f970e21d69e45163382b44abee5c88541c51b129571ff78f2bc5cb46a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a01ec44b97ab57ff67ca4d573a3905634712136b2cc1dc14cd038e9061c877ef58b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172820c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0x237fc3885f3a865ed4796de9ff1f29a4057012fc22ddba83415a4cf51577a1d4", + "parentHash": "0x574e5113f091e4f9bac80d8a9e2aa1ec3cc086562bc0e1019182beb7bb4714cd", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc1508880fe65d5de62fee38ece2eb6af059e918a964ae1c7fee2b9aa3c6fa4b6", + "stateRoot": "0x06bdc744f970e21d69e45163382b44abee5c88541c51b129571ff78f2bc5cb46", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0x1ec44b97ab57ff67ca4d573a3905634712136b2cc1dc14cd038e9061c877ef58", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2936,33 +2467,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb333c3de362a1d5692273bdf5d055f3179f55b2be868dc5a517a829ba387b810" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x237fc3885f3a865ed4796de9ff1f29a4057012fc22ddba83415a4cf51577a1d4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc1508880fe65d5de62fee38ece2eb6af059e918a964ae1c7fee2b9aa3c6fa4b6", - "receiptsRoot": "0x1ec44b97ab57ff67ca4d573a3905634712136b2cc1dc14cd038e9061c877ef58", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17282", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb333c3de362a1d5692273bdf5d055f3179f55b2be868dc5a517a829ba387b810", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x497a10ef2df445a53008a50fa1b45d5f292195ca973437c038d0df28fac94f7f" }, "blocknumber": "1", "transactions": [ @@ -2987,45 +2492,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x439e3b8765ba327073a4e2d671a33d8facbc7f93c14ddf23fbbb5ca0bba84df9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x237fc3885f3a865ed4796de9ff1f29a4057012fc22ddba83415a4cf51577a1d4" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0439e3b8765ba327073a4e2d671a33d8facbc7f93c14ddf23fbbb5ca0bba84df9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb333c3de362a1d5692273bdf5d055f3179f55b2be868dc5a517a829ba387b810", - "network": "Cancun", + "lastblockhash": "0x497a10ef2df445a53008a50fa1b45d5f292195ca973437c038d0df28fac94f7f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c34ffa5a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3034,14 +2514,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3050,6 +2522,14 @@ "0x00": "0xc34f" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de72", @@ -3061,18 +2541,43 @@ }, "020-fork=Cancun-proof=incorrect-extra_gas-call_type=CALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0184175c84e8f9895b040562fb9bbca8e233af446c719aedf8659094dc4c1cd52a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x184175c84e8f9895b040562fb9bbca8e233af446c719aedf8659094dc4c1cd52", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1b0c28cc4638a9f37f9c230ed1e9ee12533e7adf0b927be2bdd82f50ccde4f01" + }, "blocks": [ { - "rlp": "0xf90370f9023da0c4449bb14bd15400bffdcc50798875f7cbd1d5dc65f4676d4c20649dfd186693a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a7119032ec3218d08dca738aa1f8024844532f4e25f00dae3220b4ed5bc2e253a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a0be234bb291db41d7680231a44d071a0422a26a1adcb2fefe9980e7acc03832e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172870c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da01b0c28cc4638a9f37f9c230ed1e9ee12533e7adf0b927be2bdd82f50ccde4f01a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02d57521177ef7df4c20ce6f05c2c99de677ad9c3a1684e30f238a526d3953385a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a0be234bb291db41d7680231a44d071a0422a26a1adcb2fefe9980e7acc03832e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172870c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0xc4449bb14bd15400bffdcc50798875f7cbd1d5dc65f4676d4c20649dfd186693", + "parentHash": "0x1b0c28cc4638a9f37f9c230ed1e9ee12533e7adf0b927be2bdd82f50ccde4f01", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa7119032ec3218d08dca738aa1f8024844532f4e25f00dae3220b4ed5bc2e253", + "stateRoot": "0x2d57521177ef7df4c20ce6f05c2c99de677ad9c3a1684e30f238a526d3953385", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0xbe234bb291db41d7680231a44d071a0422a26a1adcb2fefe9980e7acc03832e0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3089,33 +2594,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x811ee2e2bbaa1c9d9e38200edbcab4c9a13f8a472fd31d70847f3516a1942548" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc4449bb14bd15400bffdcc50798875f7cbd1d5dc65f4676d4c20649dfd186693", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa7119032ec3218d08dca738aa1f8024844532f4e25f00dae3220b4ed5bc2e253", - "receiptsRoot": "0xbe234bb291db41d7680231a44d071a0422a26a1adcb2fefe9980e7acc03832e0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17287", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x811ee2e2bbaa1c9d9e38200edbcab4c9a13f8a472fd31d70847f3516a1942548", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x92f0c0b1c956536a6b5fff0f05ce776153f5d7e7a7b21024a9bb61dfa7368888" }, "blocknumber": "1", "transactions": [ @@ -3140,45 +2619,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0de15b179eba300db2f7f47a60d5abf9d42170da26004bb51c8801069ffcacc0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc4449bb14bd15400bffdcc50798875f7cbd1d5dc65f4676d4c20649dfd186693" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00de15b179eba300db2f7f47a60d5abf9d42170da26004bb51c8801069ffcacc0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x811ee2e2bbaa1c9d9e38200edbcab4c9a13f8a472fd31d70847f3516a1942548", - "network": "Cancun", + "lastblockhash": "0x92f0c0b1c956536a6b5fff0f05ce776153f5d7e7a7b21024a9bb61dfa7368888", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c351f15a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3187,14 +2641,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3203,6 +2649,14 @@ "0x00": "0xc351" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de4f", @@ -3214,18 +2668,43 @@ }, "021-fork=Cancun-proof=incorrect-extra_gas-call_type=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a029fb1eecc564f309dc28ee1bd4eb6da89ea464ef7f0db0f45fb1307a838901b4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x29fb1eecc564f309dc28ee1bd4eb6da89ea464ef7f0db0f45fb1307a838901b4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf21b3683c1bd5f84fa161d94ddb8e6cf1e0e1af59167e47473e4b6b19037f24a" + }, "blocks": [ { - "rlp": "0xf90370f9023da0b43a8fa1c8e7063c36b4aeff424db335e06d1b969412b0def57919cd2c1a159fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed8cfcb74b4c99031852e77e13ca85433ad9bfc23670b82e2cc9698f6fc46c90a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a086ed5358cbfb008e2016641476483ba9f5e01167bd6b03508e646e4c2925587bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172840c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da0f21b3683c1bd5f84fa161d94ddb8e6cf1e0e1af59167e47473e4b6b19037f24aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0389c851cf98555c343bc4bb8f48d1a33d390f716b6094037e17ce7170c49cca2a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a086ed5358cbfb008e2016641476483ba9f5e01167bd6b03508e646e4c2925587bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172840c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0xb43a8fa1c8e7063c36b4aeff424db335e06d1b969412b0def57919cd2c1a159f", + "parentHash": "0xf21b3683c1bd5f84fa161d94ddb8e6cf1e0e1af59167e47473e4b6b19037f24a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xed8cfcb74b4c99031852e77e13ca85433ad9bfc23670b82e2cc9698f6fc46c90", + "stateRoot": "0x389c851cf98555c343bc4bb8f48d1a33d390f716b6094037e17ce7170c49cca2", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0x86ed5358cbfb008e2016641476483ba9f5e01167bd6b03508e646e4c2925587b", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3242,33 +2721,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x73bb2c102b39ab70aabf3c6e2c71a63cd83182633c0d933c8f7cc99a5bac2e20" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb43a8fa1c8e7063c36b4aeff424db335e06d1b969412b0def57919cd2c1a159f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xed8cfcb74b4c99031852e77e13ca85433ad9bfc23670b82e2cc9698f6fc46c90", - "receiptsRoot": "0x86ed5358cbfb008e2016641476483ba9f5e01167bd6b03508e646e4c2925587b", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17284", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x73bb2c102b39ab70aabf3c6e2c71a63cd83182633c0d933c8f7cc99a5bac2e20", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd564e65143bbff0e8f3a1563372f2e74e40a9455b50febeff3c7f760474ff848" }, "blocknumber": "1", "transactions": [ @@ -3293,45 +2746,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf3c55915db177f5206850bad1622224b2c653741ecab2ed4be1065bb62e199ac", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb43a8fa1c8e7063c36b4aeff424db335e06d1b969412b0def57919cd2c1a159f" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f3c55915db177f5206850bad1622224b2c653741ecab2ed4be1065bb62e199aca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x73bb2c102b39ab70aabf3c6e2c71a63cd83182633c0d933c8f7cc99a5bac2e20", - "network": "Cancun", + "lastblockhash": "0xd564e65143bbff0e8f3a1563372f2e74e40a9455b50febeff3c7f760474ff848", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c351f45a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3340,14 +2768,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3356,6 +2776,14 @@ "0x00": "0xc351" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de64", @@ -3367,18 +2795,43 @@ }, "022-fork=Cancun-proof=incorrect-extra_gas-call_type=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014a08e968e3de1879c4c1fc8a26a7b1f1a8342fe62914e08841ed0888ddae945a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x14a08e968e3de1879c4c1fc8a26a7b1f1a8342fe62914e08841ed0888ddae945", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x13e0d336fa2467896d130d04b525dd65422faded748267a0d38bd1eaf68df7b6" + }, "blocks": [ { - "rlp": "0xf90370f9023da0569e784388c9a8f0ce81c4d025eb1559b76fca8576abeccdbf99b0d78c7dc469a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0486c615fa1b1f0d4a6b76cd2a171b67e36b8f899107c8369b025347c5157c5d1a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a0be234bb291db41d7680231a44d071a0422a26a1adcb2fefe9980e7acc03832e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172870c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da013e0d336fa2467896d130d04b525dd65422faded748267a0d38bd1eaf68df7b6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09db539025f643863871bcbc1d484d1f059a19c27cd78546a485a5db7ea8e0692a031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a0be234bb291db41d7680231a44d071a0422a26a1adcb2fefe9980e7acc03832e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172870c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0x569e784388c9a8f0ce81c4d025eb1559b76fca8576abeccdbf99b0d78c7dc469", + "parentHash": "0x13e0d336fa2467896d130d04b525dd65422faded748267a0d38bd1eaf68df7b6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x486c615fa1b1f0d4a6b76cd2a171b67e36b8f899107c8369b025347c5157c5d1", + "stateRoot": "0x9db539025f643863871bcbc1d484d1f059a19c27cd78546a485a5db7ea8e0692", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0xbe234bb291db41d7680231a44d071a0422a26a1adcb2fefe9980e7acc03832e0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3395,33 +2848,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x228895d070079be20e23e4d2fb24888b3adba19821a3e2aa52b92c736c86352b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x569e784388c9a8f0ce81c4d025eb1559b76fca8576abeccdbf99b0d78c7dc469", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x486c615fa1b1f0d4a6b76cd2a171b67e36b8f899107c8369b025347c5157c5d1", - "receiptsRoot": "0xbe234bb291db41d7680231a44d071a0422a26a1adcb2fefe9980e7acc03832e0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17287", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x228895d070079be20e23e4d2fb24888b3adba19821a3e2aa52b92c736c86352b", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x08b8beae8e60cd9d61a238a7ad64b107cb97f1472271790e38c2dfa22a6225aa" }, "blocknumber": "1", "transactions": [ @@ -3446,45 +2873,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x75f56fa50af5fec37694c95d08a0c8aa2ef2bca0e7198e1ee598bcb64dfe22be", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x569e784388c9a8f0ce81c4d025eb1559b76fca8576abeccdbf99b0d78c7dc469" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a075f56fa50af5fec37694c95d08a0c8aa2ef2bca0e7198e1ee598bcb64dfe22bea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x228895d070079be20e23e4d2fb24888b3adba19821a3e2aa52b92c736c86352b", - "network": "Cancun", + "lastblockhash": "0x08b8beae8e60cd9d61a238a7ad64b107cb97f1472271790e38c2dfa22a6225aa", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a366000600037600060003660006000600a61c351f25a9050900360a9900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3493,14 +2895,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3509,6 +2903,14 @@ "0x00": "0xc351" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de4f", @@ -3520,18 +2922,43 @@ }, "023-fork=Cancun-proof=incorrect-extra_gas-call_type=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4844.md", "reference-spec-version": "f0eb6a364aaf5ccb43516fa2c269a54fb881ecfd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0711460d0845cf7bd9494fc30ac1285759342f9bd714df0629e1bdb33bbf626e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x711460d0845cf7bd9494fc30ac1285759342f9bd714df0629e1bdb33bbf626e7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xae334e626770ceb6016c8e3e6da2a12da2b323f0df8ef9c7b4712af70d7093a9" + }, "blocks": [ { - "rlp": "0xf90370f9023da0a14d1df59846617f8eb920825d76e92157a5b45349db5526035d3070dd71631fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06ecaacadcdabb2826ad4b6d28386f4b180e0bcdc5bbc78cc22b043325c3e3b9da031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a086ed5358cbfb008e2016641476483ba9f5e01167bd6b03508e646e4c2925587bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172840c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", + "rlp": "0xf90370f9023da0ae334e626770ceb6016c8e3e6da2a12da2b323f0df8ef9c7b4712af70d7093a9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa053ed5b40266698baffba31098b4237d87a47e4efcdb00ff967fe5fd5ad5c919aa031ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3a086ed5358cbfb008e2016641476483ba9f5e01167bd6b03508e646e4c2925587bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830172840c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012bb9012802f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14c0c0", "blockHeader": { - "parentHash": "0xa14d1df59846617f8eb920825d76e92157a5b45349db5526035d3070dd71631f", + "parentHash": "0xae334e626770ceb6016c8e3e6da2a12da2b323f0df8ef9c7b4712af70d7093a9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6ecaacadcdabb2826ad4b6d28386f4b180e0bcdc5bbc78cc22b043325c3e3b9d", + "stateRoot": "0x53ed5b40266698baffba31098b4237d87a47e4efcdb00ff967fe5fd5ad5c919a", "transactionsTrie": "0x31ca57059d358496ba2356abfbb50ad1a0d2b909222c6a94a2c31f686da2e6e3", "receiptTrie": "0x86ed5358cbfb008e2016641476483ba9f5e01167bd6b03508e646e4c2925587b", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3548,33 +2975,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0c2b94fab52c6d964260373181f8c1fe63ed4a876c78493a2fe1fe94ce65782a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa14d1df59846617f8eb920825d76e92157a5b45349db5526035d3070dd71631f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6ecaacadcdabb2826ad4b6d28386f4b180e0bcdc5bbc78cc22b043325c3e3b9d", - "receiptsRoot": "0x86ed5358cbfb008e2016641476483ba9f5e01167bd6b03508e646e4c2925587b", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x17284", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0c2b94fab52c6d964260373181f8c1fe63ed4a876c78493a2fe1fe94ce65782a", - "transactions": [ - "0x02f9012401808007830f424094000000000000000000000000000000000000010080b8c0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c4440145eb7004fe57383e6c88b99d839937fddf3f99279353aaf8d5c9a75f91ce33c620100000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c080a0e295b2a5216d77b57cafbf6c4223972fa067212c1d6aa14a67e02c6639210020a05473b1f2fd7ee8e90ce0050530666ba6d1ba35ab51455cfd0d938729d4c91b14" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb7eb7f209582e923a0b940855dcbf413c5920f06a11bda46cba75682a30b351a" }, "blocknumber": "1", "transactions": [ @@ -3599,45 +3000,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xab6d1d51ab85418ca6614233385f72fec0a3e37acf997711190a981a11a6fd8f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa14d1df59846617f8eb920825d76e92157a5b45349db5526035d3070dd71631f" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ab6d1d51ab85418ca6614233385f72fec0a3e37acf997711190a981a11a6fd8fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0c2b94fab52c6d964260373181f8c1fe63ed4a876c78493a2fe1fe94ce65782a", - "network": "Cancun", + "lastblockhash": "0xb7eb7f209582e923a0b940855dcbf413c5920f06a11bda46cba75682a30b351a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a36600060003760006000366000600a61c351fa5a9050900360a6900360005500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x01000000000000000000", @@ -3646,14 +3022,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3662,6 +3030,14 @@ "0x00": "0xc351" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xfffffffffffff5de64", diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json index 68d14ed381f..dbba5372b47 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/mcopy_on_empty_memory.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-empty_memory-length=0-src=0-dest=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c908bc3519241cc43b6ec3a1b179a97eb998c301eaf4e114a09cd8e19db8c3aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5c908bc3519241cc43b6ec3a1b179a97eb998c301eaf4e114a09cd8e19db8c3a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x69caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1ec" + }, "blocks": [ { - "rlp": "0xf90308f9023ea0664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ffe9e37b7b949fc68e54ae79e082e38fc5d84f46e24e292e1a2dca7b6e4356dea031221a700ebe2c06c4e8114629f47fbb97fc5d97a191524b53850d8be811b592a02cf2dab18ed9da610ec6e34fa5508c22dc5822c15c1398fdf90929aef58fd441b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2b48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0ec5a03c8f1fb15797a21a198c4ca09629b606ddbb99c6468fc2ebdfef2304a9fa015550926fa5408728d66cbfa9ef06627719773ed62317bae35abcb654a742405c0c0", + "rlp": "0xf90308f9023ea069caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1eca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa019e27717a42c9fa14fab06831f3191450e2d2d4f65d150f78b018dd5a5c49a8ba031221a700ebe2c06c4e8114629f47fbb97fc5d97a191524b53850d8be811b592a02cf2dab18ed9da610ec6e34fa5508c22dc5822c15c1398fdf90929aef58fd441b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2b48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0ec5a03c8f1fb15797a21a198c4ca09629b606ddbb99c6468fc2ebdfef2304a9fa015550926fa5408728d66cbfa9ef06627719773ed62317bae35abcb654a742405c0c0", "blockHeader": { - "parentHash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936", + "parentHash": "0x69caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1ec", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xffe9e37b7b949fc68e54ae79e082e38fc5d84f46e24e292e1a2dca7b6e4356de", + "stateRoot": "0x19e27717a42c9fa14fab06831f3191450e2d2d4f65d150f78b018dd5a5c49a8b", "transactionsTrie": "0x31221a700ebe2c06c4e8114629f47fbb97fc5d97a191524b53850d8be811b592", "receiptTrie": "0x2cf2dab18ed9da610ec6e34fa5508c22dc5822c15c1398fdf90929aef58fd441", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb652b8a964956c12a0eff7665a08c98b976fcfd093e00ceb6466753d34ced325" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xffe9e37b7b949fc68e54ae79e082e38fc5d84f46e24e292e1a2dca7b6e4356de", - "receiptsRoot": "0x2cf2dab18ed9da610ec6e34fa5508c22dc5822c15c1398fdf90929aef58fd441", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2b4", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb652b8a964956c12a0eff7665a08c98b976fcfd093e00ceb6466753d34ced325", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0ec5a03c8f1fb15797a21a198c4ca09629b606ddbb99c6468fc2ebdfef2304a9fa015550926fa5408728d66cbfa9ef06627719773ed62317bae35abcb654a742405" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcb79161e25ab93911e8e43c9f3c4f2fa41a9d9168eba104e45c9724750feff2d" }, "transactions": [ { @@ -77,45 +76,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2c23b1bcfe2da3c146127596c9e5e91eaf025436dc9fe72e3dd76e5d3a1cf20e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02c23b1bcfe2da3c146127596c9e5e91eaf025436dc9fe72e3dd76e5d3a1cf20ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb652b8a964956c12a0eff7665a08c98b976fcfd093e00ceb6466753d34ced325", - "network": "Cancun", + "lastblockhash": "0xcb79161e25ab93911e8e43c9f3c4f2fa41a9d9168eba104e45c9724750feff2d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x6040356020356000355e5960005559600020600155", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -124,14 +98,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -140,6 +106,14 @@ "0x01": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x02181c", @@ -157,18 +131,43 @@ }, "001-fork=Cancun-empty_memory-length=0-src=0-dest=32": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c908bc3519241cc43b6ec3a1b179a97eb998c301eaf4e114a09cd8e19db8c3aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5c908bc3519241cc43b6ec3a1b179a97eb998c301eaf4e114a09cd8e19db8c3a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x69caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1ec" + }, "blocks": [ { - "rlp": "0xf90308f9023ea0664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02bed739111ba30972e587ee87ea860fcf00fbce146e042cb5333be81e46ac644a07efa5f227e59bb260ca4a4363c189abd8352d5cb5d19ffeee28bc1db65d15473a0fdef0067847a19e1a89e0297ec2bd506c5c40a60ddc6bdd08c9abdd002711b58b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a097b70a3cd5e4cd3b312cee876186c424275f5fbc907e121b3915a4916041da95a06caf44a76350e09c6587d33bf9122e76a4ec19be329aa1345d068773879675e7c0c0", + "rlp": "0xf90308f9023ea069caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1eca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa033b44c9bd552d3a1f02182b2bea6fb9ae0b93948b0081ed4ec8125fdd91967bea07efa5f227e59bb260ca4a4363c189abd8352d5cb5d19ffeee28bc1db65d15473a0fdef0067847a19e1a89e0297ec2bd506c5c40a60ddc6bdd08c9abdd002711b58b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a097b70a3cd5e4cd3b312cee876186c424275f5fbc907e121b3915a4916041da95a06caf44a76350e09c6587d33bf9122e76a4ec19be329aa1345d068773879675e7c0c0", "blockHeader": { - "parentHash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936", + "parentHash": "0x69caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1ec", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2bed739111ba30972e587ee87ea860fcf00fbce146e042cb5333be81e46ac644", + "stateRoot": "0x33b44c9bd552d3a1f02182b2bea6fb9ae0b93948b0081ed4ec8125fdd91967be", "transactionsTrie": "0x7efa5f227e59bb260ca4a4363c189abd8352d5cb5d19ffeee28bc1db65d15473", "receiptTrie": "0xfdef0067847a19e1a89e0297ec2bd506c5c40a60ddc6bdd08c9abdd002711b58", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -185,33 +184,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xadd4d0c24a19089d804aa70143efb45435995a7932a298cef42f9a85f7623c4a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2bed739111ba30972e587ee87ea860fcf00fbce146e042cb5333be81e46ac644", - "receiptsRoot": "0xfdef0067847a19e1a89e0297ec2bd506c5c40a60ddc6bdd08c9abdd002711b58", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c0", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xadd4d0c24a19089d804aa70143efb45435995a7932a298cef42f9a85f7623c4a", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a097b70a3cd5e4cd3b312cee876186c424275f5fbc907e121b3915a4916041da95a06caf44a76350e09c6587d33bf9122e76a4ec19be329aa1345d068773879675e7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1302aa15031177bdc3fc87cf971e81d62114b0a8555fe47d6524e452b84a8d05" }, "transactions": [ { @@ -233,45 +206,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2c23b1bcfe2da3c146127596c9e5e91eaf025436dc9fe72e3dd76e5d3a1cf20e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02c23b1bcfe2da3c146127596c9e5e91eaf025436dc9fe72e3dd76e5d3a1cf20ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xadd4d0c24a19089d804aa70143efb45435995a7932a298cef42f9a85f7623c4a", - "network": "Cancun", + "lastblockhash": "0x1302aa15031177bdc3fc87cf971e81d62114b0a8555fe47d6524e452b84a8d05", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x6040356020356000355e5960005559600020600155", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -280,14 +228,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -296,6 +236,14 @@ "0x01": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x021840", @@ -313,18 +261,43 @@ }, "002-fork=Cancun-empty_memory-length=0-src=32-dest=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c908bc3519241cc43b6ec3a1b179a97eb998c301eaf4e114a09cd8e19db8c3aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5c908bc3519241cc43b6ec3a1b179a97eb998c301eaf4e114a09cd8e19db8c3a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x69caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1ec" + }, "blocks": [ { - "rlp": "0xf90308f9023ea0664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02bed739111ba30972e587ee87ea860fcf00fbce146e042cb5333be81e46ac644a0bcd285585f28f400cef7902435a3c40bcc5eddffe46cab7c9d9d7ea7dd588beda0fdef0067847a19e1a89e0297ec2bd506c5c40a60ddc6bdd08c9abdd002711b58b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000025a0b1d7ebda9474c0b8551e82e969917be9c1f9ddd0bf566bb6701c8a2173ce4323a038e40a3e0e72da8cd8944d8ff8f89368a39f708aead2efaf9f22ba64d97c7656c0c0", + "rlp": "0xf90308f9023ea069caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1eca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa033b44c9bd552d3a1f02182b2bea6fb9ae0b93948b0081ed4ec8125fdd91967bea0bcd285585f28f400cef7902435a3c40bcc5eddffe46cab7c9d9d7ea7dd588beda0fdef0067847a19e1a89e0297ec2bd506c5c40a60ddc6bdd08c9abdd002711b58b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000025a0b1d7ebda9474c0b8551e82e969917be9c1f9ddd0bf566bb6701c8a2173ce4323a038e40a3e0e72da8cd8944d8ff8f89368a39f708aead2efaf9f22ba64d97c7656c0c0", "blockHeader": { - "parentHash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936", + "parentHash": "0x69caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1ec", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2bed739111ba30972e587ee87ea860fcf00fbce146e042cb5333be81e46ac644", + "stateRoot": "0x33b44c9bd552d3a1f02182b2bea6fb9ae0b93948b0081ed4ec8125fdd91967be", "transactionsTrie": "0xbcd285585f28f400cef7902435a3c40bcc5eddffe46cab7c9d9d7ea7dd588bed", "receiptTrie": "0xfdef0067847a19e1a89e0297ec2bd506c5c40a60ddc6bdd08c9abdd002711b58", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -341,33 +314,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x25cacb61ee5e17e613334d4ef55cb58db27ad422e940196b57a1cc17e251fd3e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2bed739111ba30972e587ee87ea860fcf00fbce146e042cb5333be81e46ac644", - "receiptsRoot": "0xfdef0067847a19e1a89e0297ec2bd506c5c40a60ddc6bdd08c9abdd002711b58", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c0", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x25cacb61ee5e17e613334d4ef55cb58db27ad422e940196b57a1cc17e251fd3e", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000025a0b1d7ebda9474c0b8551e82e969917be9c1f9ddd0bf566bb6701c8a2173ce4323a038e40a3e0e72da8cd8944d8ff8f89368a39f708aead2efaf9f22ba64d97c7656" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf6820b1deeb0e812b8ec655a14891a6c99dd8ca60aa91e982ce767656b1d39ed" }, "transactions": [ { @@ -389,45 +336,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2c23b1bcfe2da3c146127596c9e5e91eaf025436dc9fe72e3dd76e5d3a1cf20e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02c23b1bcfe2da3c146127596c9e5e91eaf025436dc9fe72e3dd76e5d3a1cf20ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x25cacb61ee5e17e613334d4ef55cb58db27ad422e940196b57a1cc17e251fd3e", - "network": "Cancun", + "lastblockhash": "0xf6820b1deeb0e812b8ec655a14891a6c99dd8ca60aa91e982ce767656b1d39ed", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x6040356020356000355e5960005559600020600155", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -436,14 +358,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -452,6 +366,14 @@ "0x01": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x021840", @@ -469,18 +391,43 @@ }, "003-fork=Cancun-empty_memory-length=0-src=32-dest=32": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c908bc3519241cc43b6ec3a1b179a97eb998c301eaf4e114a09cd8e19db8c3aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5c908bc3519241cc43b6ec3a1b179a97eb998c301eaf4e114a09cd8e19db8c3a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x69caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1ec" + }, "blocks": [ { - "rlp": "0xf90308f9023ea0664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04eb15fd7ea1bca27d0d77cf2a4b74b77be6a8b37f38b8aa3e87437ff8080f3b0a0b960b820c3aa6042c9c72dea99ca0a8de3aeaca30d042c263edba3589d525b9aa0ff72ec0f9b5c54eaadb59df852bdcea2ad4fa0b7ee8c5acc1d39d7b6ff670aefb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2cc8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000026a0b0f67109e5d2db6426141c4784cc86a1ae400c67eb9dc5ec5e904ff031a74964a0766203c222cebd7e29a8e44b9ce4ee244ad4776b0bd046fb770c02d993cacaeac0c0", + "rlp": "0xf90308f9023ea069caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1eca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09323b104243010d9e526e09e7b21ab0d57766372ace24052e11eb4f274acf40ea0b960b820c3aa6042c9c72dea99ca0a8de3aeaca30d042c263edba3589d525b9aa0ff72ec0f9b5c54eaadb59df852bdcea2ad4fa0b7ee8c5acc1d39d7b6ff670aefb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2cc8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000026a0b0f67109e5d2db6426141c4784cc86a1ae400c67eb9dc5ec5e904ff031a74964a0766203c222cebd7e29a8e44b9ce4ee244ad4776b0bd046fb770c02d993cacaeac0c0", "blockHeader": { - "parentHash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936", + "parentHash": "0x69caf369d009980bd39b5ec0ee8f9ab6e0c33c23bf6f717d9b0ebaf0de02e1ec", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4eb15fd7ea1bca27d0d77cf2a4b74b77be6a8b37f38b8aa3e87437ff8080f3b0", + "stateRoot": "0x9323b104243010d9e526e09e7b21ab0d57766372ace24052e11eb4f274acf40e", "transactionsTrie": "0xb960b820c3aa6042c9c72dea99ca0a8de3aeaca30d042c263edba3589d525b9a", "receiptTrie": "0xff72ec0f9b5c54eaadb59df852bdcea2ad4fa0b7ee8c5acc1d39d7b6ff670aef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -497,33 +444,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd1f956a6fc19e2bd5d24c94a25c0fa81ea615c36a592bc2a1543548beaf2dc92" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4eb15fd7ea1bca27d0d77cf2a4b74b77be6a8b37f38b8aa3e87437ff8080f3b0", - "receiptsRoot": "0xff72ec0f9b5c54eaadb59df852bdcea2ad4fa0b7ee8c5acc1d39d7b6ff670aef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2cc", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd1f956a6fc19e2bd5d24c94a25c0fa81ea615c36a592bc2a1543548beaf2dc92", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000026a0b0f67109e5d2db6426141c4784cc86a1ae400c67eb9dc5ec5e904ff031a74964a0766203c222cebd7e29a8e44b9ce4ee244ad4776b0bd046fb770c02d993cacaea" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x488b0c64174b7054c80f03843952dd6fb3bef9f69fc8c37d5feb6d38451b1c08" }, "transactions": [ { @@ -545,45 +466,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2c23b1bcfe2da3c146127596c9e5e91eaf025436dc9fe72e3dd76e5d3a1cf20e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x664c78b200ce75edb7ca2f79b41c814d12d3434b6abe285aec11fe1dab7e9936" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02c23b1bcfe2da3c146127596c9e5e91eaf025436dc9fe72e3dd76e5d3a1cf20ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd1f956a6fc19e2bd5d24c94a25c0fa81ea615c36a592bc2a1543548beaf2dc92", - "network": "Cancun", + "lastblockhash": "0x488b0c64174b7054c80f03843952dd6fb3bef9f69fc8c37d5feb6d38451b1c08", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x6040356020356000355e5960005559600020600155", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -592,14 +488,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -608,6 +496,14 @@ "0x01": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x021864", @@ -625,18 +521,43 @@ }, "004-fork=Cancun-empty_memory-length=1-src=0-dest=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02c22276523aa7debaebe1a9da136a52797ec844426c759a8a348a5ddf01d99b2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2c22276523aa7debaebe1a9da136a52797ec844426c759a8a348a5ddf01d99b2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x59649f3ff74f9f7dd4b8bcc1b83a795cb6c287bf2f1a0e1187d2ad8c253c6f29" + }, "blocks": [ { - "rlp": "0xf90309f9023fa0ddbea4ff164c989936cb1fc02c3c8656338175c8ff80d346edc7fa3dfeeb75aea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f52b161ba6d25c88daff46422f49c4e70ee09c22c68284eb4e3c48dc891deb18a0a9a7b2df78cd5cf8806ea6566230f42db774b0640b7132fa5727e937d553a609a080d3e7be8c2b30efbe2fefaaf5de82067ef90a852fcc0de1ec969bf392ce402db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830109298203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000125a0a7c1e9f4593d5d5d55714a71455212987b11ce014c41abfd875a03e94af37622a001a23b2d379ad108df2e1995691a53163d591fc1103a4e368999e61f3f75a12bc0c0", + "rlp": "0xf90309f9023fa059649f3ff74f9f7dd4b8bcc1b83a795cb6c287bf2f1a0e1187d2ad8c253c6f29a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00cfa54c115ffe48a3e8cf48dfb234e90dc2198ab04572796e0d4b03aabce69baa0a9a7b2df78cd5cf8806ea6566230f42db774b0640b7132fa5727e937d553a609a080d3e7be8c2b30efbe2fefaaf5de82067ef90a852fcc0de1ec969bf392ce402db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830109298203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000125a0a7c1e9f4593d5d5d55714a71455212987b11ce014c41abfd875a03e94af37622a001a23b2d379ad108df2e1995691a53163d591fc1103a4e368999e61f3f75a12bc0c0", "blockHeader": { - "parentHash": "0xddbea4ff164c989936cb1fc02c3c8656338175c8ff80d346edc7fa3dfeeb75ae", + "parentHash": "0x59649f3ff74f9f7dd4b8bcc1b83a795cb6c287bf2f1a0e1187d2ad8c253c6f29", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf52b161ba6d25c88daff46422f49c4e70ee09c22c68284eb4e3c48dc891deb18", + "stateRoot": "0x0cfa54c115ffe48a3e8cf48dfb234e90dc2198ab04572796e0d4b03aabce69ba", "transactionsTrie": "0xa9a7b2df78cd5cf8806ea6566230f42db774b0640b7132fa5727e937d553a609", "receiptTrie": "0x80d3e7be8c2b30efbe2fefaaf5de82067ef90a852fcc0de1ec969bf392ce402d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -653,33 +574,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x28d0a417e9709d6d7072b112dbba66fb16e12925fc6a3ef98bf0a00110c4c612" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xddbea4ff164c989936cb1fc02c3c8656338175c8ff80d346edc7fa3dfeeb75ae", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf52b161ba6d25c88daff46422f49c4e70ee09c22c68284eb4e3c48dc891deb18", - "receiptsRoot": "0x80d3e7be8c2b30efbe2fefaaf5de82067ef90a852fcc0de1ec969bf392ce402d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x10929", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x28d0a417e9709d6d7072b112dbba66fb16e12925fc6a3ef98bf0a00110c4c612", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000125a0a7c1e9f4593d5d5d55714a71455212987b11ce014c41abfd875a03e94af37622a001a23b2d379ad108df2e1995691a53163d591fc1103a4e368999e61f3f75a12b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe67999e67946de57ef726990ce74337bf9a7308a271c37587391397995821798" }, "transactions": [ { @@ -701,45 +596,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3301c29ab956df1ff6e86e786d7d2df8d556f281d90567aafdb50c41b18c842e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xddbea4ff164c989936cb1fc02c3c8656338175c8ff80d346edc7fa3dfeeb75ae" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03301c29ab956df1ff6e86e786d7d2df8d556f281d90567aafdb50c41b18c842ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x28d0a417e9709d6d7072b112dbba66fb16e12925fc6a3ef98bf0a00110c4c612", - "network": "Cancun", + "lastblockhash": "0xe67999e67946de57ef726990ce74337bf9a7308a271c37587391397995821798", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x6040356020356000355e5960005559600020600155600051600255", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -748,14 +618,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -765,6 +627,14 @@ "0x01": "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x031b7b", @@ -782,18 +652,43 @@ }, "005-fork=Cancun-empty_memory-length=1-src=0-dest=32": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00aa12cf1362479e008ee545c7dc9f993376feb2586d654bcbea522e625351902a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0aa12cf1362479e008ee545c7dc9f993376feb2586d654bcbea522e625351902", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xff8665f3cd3a6d6f1019265a46b8f75eee062060cbf874726919b8ab0712c08a" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c6403e58eb3135d327c1f8d1085f687092ac7f748acf478e2292a927126abf00a00737d2c0b5f94c0029f1b9e11042cf7fda838555bfd1aa79cd273bc4352780b0a0454b13e3af066131e04a319f894b97d443d86694d38f5f31108d2c018a235b61b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301093e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000125a0d5bf3b332108598169a284313eda626a5eac537bf2b307bc2ad4219d68c0f810a07e3b0e0d6f3b42748b757bff101029e7e6f7dc105849f5ebd0623e043c4c45a8c0c0", + "rlp": "0xf90309f9023fa0ff8665f3cd3a6d6f1019265a46b8f75eee062060cbf874726919b8ab0712c08aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06383b522a6c18c74bb97a5b159c1b902c65bfb7314d5b98e03c1bd287da6be30a00737d2c0b5f94c0029f1b9e11042cf7fda838555bfd1aa79cd273bc4352780b0a0454b13e3af066131e04a319f894b97d443d86694d38f5f31108d2c018a235b61b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301093e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000125a0d5bf3b332108598169a284313eda626a5eac537bf2b307bc2ad4219d68c0f810a07e3b0e0d6f3b42748b757bff101029e7e6f7dc105849f5ebd0623e043c4c45a8c0c0", "blockHeader": { - "parentHash": "0x5dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750", + "parentHash": "0xff8665f3cd3a6d6f1019265a46b8f75eee062060cbf874726919b8ab0712c08a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc6403e58eb3135d327c1f8d1085f687092ac7f748acf478e2292a927126abf00", + "stateRoot": "0x6383b522a6c18c74bb97a5b159c1b902c65bfb7314d5b98e03c1bd287da6be30", "transactionsTrie": "0x0737d2c0b5f94c0029f1b9e11042cf7fda838555bfd1aa79cd273bc4352780b0", "receiptTrie": "0x454b13e3af066131e04a319f894b97d443d86694d38f5f31108d2c018a235b61", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -810,33 +705,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xebab3ff07e0d6fff61a6c91b55f85b19ff9f3b35cf69048118168b8de7d76473" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc6403e58eb3135d327c1f8d1085f687092ac7f748acf478e2292a927126abf00", - "receiptsRoot": "0x454b13e3af066131e04a319f894b97d443d86694d38f5f31108d2c018a235b61", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1093e", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xebab3ff07e0d6fff61a6c91b55f85b19ff9f3b35cf69048118168b8de7d76473", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000125a0d5bf3b332108598169a284313eda626a5eac537bf2b307bc2ad4219d68c0f810a07e3b0e0d6f3b42748b757bff101029e7e6f7dc105849f5ebd0623e043c4c45a8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x10065162d7db0a84219bc6ea5b43f3b5f47acb16e94aadd626b39237be53eddd" }, "transactions": [ { @@ -858,45 +727,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfd0fcfe30fb195071f2595a9f970723228d59cb2e8fd995549db29426f310969", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fd0fcfe30fb195071f2595a9f970723228d59cb2e8fd995549db29426f310969a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xebab3ff07e0d6fff61a6c91b55f85b19ff9f3b35cf69048118168b8de7d76473", - "network": "Cancun", + "lastblockhash": "0x10065162d7db0a84219bc6ea5b43f3b5f47acb16e94aadd626b39237be53eddd", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x6040356020356000355e5960005559600020600155602051600255", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -905,14 +749,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -922,6 +758,14 @@ "0x01": "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x031bba", @@ -939,18 +783,43 @@ }, "006-fork=Cancun-empty_memory-length=1-src=32-dest=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00aa12cf1362479e008ee545c7dc9f993376feb2586d654bcbea522e625351902a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0aa12cf1362479e008ee545c7dc9f993376feb2586d654bcbea522e625351902", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xff8665f3cd3a6d6f1019265a46b8f75eee062060cbf874726919b8ab0712c08a" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c6403e58eb3135d327c1f8d1085f687092ac7f748acf478e2292a927126abf00a0388af9cad1f8ae6ad910c847574b51bd4839682e1d6cf18141990d2c3610a9f7a0454b13e3af066131e04a319f894b97d443d86694d38f5f31108d2c018a235b61b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301093e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000126a05bd4179b4be73163cc3fe10b0b41e74f808146364878468742382175ebea7804a054d0a2103ddb20f4c69c4ffde7df7190c62f5e7cc3f1384802bed343c6790bcdc0c0", + "rlp": "0xf90309f9023fa0ff8665f3cd3a6d6f1019265a46b8f75eee062060cbf874726919b8ab0712c08aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06383b522a6c18c74bb97a5b159c1b902c65bfb7314d5b98e03c1bd287da6be30a0388af9cad1f8ae6ad910c847574b51bd4839682e1d6cf18141990d2c3610a9f7a0454b13e3af066131e04a319f894b97d443d86694d38f5f31108d2c018a235b61b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301093e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000126a05bd4179b4be73163cc3fe10b0b41e74f808146364878468742382175ebea7804a054d0a2103ddb20f4c69c4ffde7df7190c62f5e7cc3f1384802bed343c6790bcdc0c0", "blockHeader": { - "parentHash": "0x5dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750", + "parentHash": "0xff8665f3cd3a6d6f1019265a46b8f75eee062060cbf874726919b8ab0712c08a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc6403e58eb3135d327c1f8d1085f687092ac7f748acf478e2292a927126abf00", + "stateRoot": "0x6383b522a6c18c74bb97a5b159c1b902c65bfb7314d5b98e03c1bd287da6be30", "transactionsTrie": "0x388af9cad1f8ae6ad910c847574b51bd4839682e1d6cf18141990d2c3610a9f7", "receiptTrie": "0x454b13e3af066131e04a319f894b97d443d86694d38f5f31108d2c018a235b61", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -967,33 +836,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7bf992031cd746397923d54c1eb06c93306239b040d4cd62f041b29713f29df0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc6403e58eb3135d327c1f8d1085f687092ac7f748acf478e2292a927126abf00", - "receiptsRoot": "0x454b13e3af066131e04a319f894b97d443d86694d38f5f31108d2c018a235b61", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1093e", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7bf992031cd746397923d54c1eb06c93306239b040d4cd62f041b29713f29df0", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000126a05bd4179b4be73163cc3fe10b0b41e74f808146364878468742382175ebea7804a054d0a2103ddb20f4c69c4ffde7df7190c62f5e7cc3f1384802bed343c6790bcd" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf15413f1d701e80c52380135be4f0198de5fb4bcb17a2e4c5ad9123886a42fd3" }, "transactions": [ { @@ -1015,45 +858,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfd0fcfe30fb195071f2595a9f970723228d59cb2e8fd995549db29426f310969", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fd0fcfe30fb195071f2595a9f970723228d59cb2e8fd995549db29426f310969a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7bf992031cd746397923d54c1eb06c93306239b040d4cd62f041b29713f29df0", - "network": "Cancun", + "lastblockhash": "0xf15413f1d701e80c52380135be4f0198de5fb4bcb17a2e4c5ad9123886a42fd3", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x6040356020356000355e5960005559600020600155602051600255", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1062,14 +880,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1079,6 +889,14 @@ "0x01": "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x031bba", @@ -1096,18 +914,43 @@ }, "007-fork=Cancun-empty_memory-length=1-src=32-dest=32": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00aa12cf1362479e008ee545c7dc9f993376feb2586d654bcbea522e625351902a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0aa12cf1362479e008ee545c7dc9f993376feb2586d654bcbea522e625351902", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xff8665f3cd3a6d6f1019265a46b8f75eee062060cbf874726919b8ab0712c08a" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fa9e970795be830f8811267588eb020218eb1b663f8b143a3d8e22c10cdaad38a0fbd1ba939afbc66146778bed0a69555322bab9829a30ceda243ef105b7cef292a0a7dda16a00c757655b963fd86d9e11fa054ad93eb9635715a35e1f4f5f2fe344b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301094a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000126a0b34fc63d8fe93a6e9bd937e2b3842d89b76e38c854d7b26d2c303b79e0ee2ba8a047099b7279b26b6936ba01cb7b427e4ca15b019e600ca459b3270fa70e79b35fc0c0", + "rlp": "0xf90309f9023fa0ff8665f3cd3a6d6f1019265a46b8f75eee062060cbf874726919b8ab0712c08aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ffcf3c38cee24fa109b65b37ebdfefcf39ece6c9e4ca91e52218b8a9e22c6d6ca0fbd1ba939afbc66146778bed0a69555322bab9829a30ceda243ef105b7cef292a0a7dda16a00c757655b963fd86d9e11fa054ad93eb9635715a35e1f4f5f2fe344b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301094a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000126a0b34fc63d8fe93a6e9bd937e2b3842d89b76e38c854d7b26d2c303b79e0ee2ba8a047099b7279b26b6936ba01cb7b427e4ca15b019e600ca459b3270fa70e79b35fc0c0", "blockHeader": { - "parentHash": "0x5dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750", + "parentHash": "0xff8665f3cd3a6d6f1019265a46b8f75eee062060cbf874726919b8ab0712c08a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfa9e970795be830f8811267588eb020218eb1b663f8b143a3d8e22c10cdaad38", + "stateRoot": "0xffcf3c38cee24fa109b65b37ebdfefcf39ece6c9e4ca91e52218b8a9e22c6d6c", "transactionsTrie": "0xfbd1ba939afbc66146778bed0a69555322bab9829a30ceda243ef105b7cef292", "receiptTrie": "0xa7dda16a00c757655b963fd86d9e11fa054ad93eb9635715a35e1f4f5f2fe344", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1124,33 +967,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xedccabe113d5745d060efc17a7e2a53e787f01290951972090f892d0ebffad9c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfa9e970795be830f8811267588eb020218eb1b663f8b143a3d8e22c10cdaad38", - "receiptsRoot": "0xa7dda16a00c757655b963fd86d9e11fa054ad93eb9635715a35e1f4f5f2fe344", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x1094a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xedccabe113d5745d060efc17a7e2a53e787f01290951972090f892d0ebffad9c", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000126a0b34fc63d8fe93a6e9bd937e2b3842d89b76e38c854d7b26d2c303b79e0ee2ba8a047099b7279b26b6936ba01cb7b427e4ca15b019e600ca459b3270fa70e79b35f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x833eb65123605711c9381fc44b0c8823b102995335bf6abb7a924ac6c7d288f5" }, "transactions": [ { @@ -1172,45 +989,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfd0fcfe30fb195071f2595a9f970723228d59cb2e8fd995549db29426f310969", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5dc9407ffb4da63cb95e753429d41b1d02ed2b3062f5661a3f79b9627248f750" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fd0fcfe30fb195071f2595a9f970723228d59cb2e8fd995549db29426f310969a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xedccabe113d5745d060efc17a7e2a53e787f01290951972090f892d0ebffad9c", - "network": "Cancun", + "lastblockhash": "0x833eb65123605711c9381fc44b0c8823b102995335bf6abb7a924ac6c7d288f5", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x6040356020356000355e5960005559600020600155602051600255", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1219,14 +1011,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1236,6 +1020,14 @@ "0x01": "0xad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x031bde", diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json index 971c7dc26a6..39929e223c4 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy/valid_mcopy_operations.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-zero_inputs": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ce6a9e1b3c4f94c605f792719f94d077432c3304e37d73e33d580736314829dea031221a700ebe2c06c4e8114629f47fbb97fc5d97a191524b53850d8be811b592a0dac69c079b65a3aecd8f6fedab32ba5c53895a5e27980382d46036ecf6b81535b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b3e88203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0ec5a03c8f1fb15797a21a198c4ca09629b606ddbb99c6468fc2ebdfef2304a9fa015550926fa5408728d66cbfa9ef06627719773ed62317bae35abcb654a742405c0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa037e83fc8488193c7c16d284e085163189b8df43ee2f374f382d058009f957059a031221a700ebe2c06c4e8114629f47fbb97fc5d97a191524b53850d8be811b592a0dac69c079b65a3aecd8f6fedab32ba5c53895a5e27980382d46036ecf6b81535b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b3e88203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0ec5a03c8f1fb15797a21a198c4ca09629b606ddbb99c6468fc2ebdfef2304a9fa015550926fa5408728d66cbfa9ef06627719773ed62317bae35abcb654a742405c0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xce6a9e1b3c4f94c605f792719f94d077432c3304e37d73e33d580736314829de", + "stateRoot": "0x37e83fc8488193c7c16d284e085163189b8df43ee2f374f382d058009f957059", "transactionsTrie": "0x31221a700ebe2c06c4e8114629f47fbb97fc5d97a191524b53850d8be811b592", "receiptTrie": "0xdac69c079b65a3aecd8f6fedab32ba5c53895a5e27980382d46036ecf6b81535", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa89450408209cfc591e92195708b47ccb895282f438a85990c5b76e0e2c99a7e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xce6a9e1b3c4f94c605f792719f94d077432c3304e37d73e33d580736314829de", - "receiptsRoot": "0xdac69c079b65a3aecd8f6fedab32ba5c53895a5e27980382d46036ecf6b81535", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b3e8", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa89450408209cfc591e92195708b47ccb895282f438a85990c5b76e0e2c99a7e", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0ec5a03c8f1fb15797a21a198c4ca09629b606ddbb99c6468fc2ebdfef2304a9fa015550926fa5408728d66cbfa9ef06627719773ed62317bae35abcb654a742405" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3974e0c5dbc3755c9c740731574aecc8a3c5ece30d6bedaa4bad1d933623906e" }, "transactions": [ { @@ -77,45 +76,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa89450408209cfc591e92195708b47ccb895282f438a85990c5b76e0e2c99a7e", - "network": "Cancun", + "lastblockhash": "0x3974e0c5dbc3755c9c740731574aecc8a3c5ece30d6bedaa4bad1d933623906e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -124,14 +98,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -149,6 +115,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1bb8", @@ -166,18 +140,43 @@ }, "001-fork=Cancun-zero_length_out_of_bounds_destination": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08da3fdb50eda9c93386138989062c21fafa8091e54f3aea978409b425b80d054a07b4ced652d8eec7947abc5f83b62a92535161325ccea2217b9f7f610cb25300fa067d6667a73c6aa5c4f35052d666c7577756ae2981f67fc1c7b17085d4b6f1ae8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b5688203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b860ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a00bc44e02665e7668a860515157cab26b86a87f474ca44b7bb6ac6148cfbf0de0a023ca5c4a27c20b918dd9cdefa3abc9d3c832b3504bd1220b487839d6605f217fc0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e22a784f713b0adefa0b02ea28c57608f145b8425f3ce07b9c0b4f9ee413f799a07b4ced652d8eec7947abc5f83b62a92535161325ccea2217b9f7f610cb25300fa067d6667a73c6aa5c4f35052d666c7577756ae2981f67fc1c7b17085d4b6f1ae8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b5688203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b860ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a00bc44e02665e7668a860515157cab26b86a87f474ca44b7bb6ac6148cfbf0de0a023ca5c4a27c20b918dd9cdefa3abc9d3c832b3504bd1220b487839d6605f217fc0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8da3fdb50eda9c93386138989062c21fafa8091e54f3aea978409b425b80d054", + "stateRoot": "0xe22a784f713b0adefa0b02ea28c57608f145b8425f3ce07b9c0b4f9ee413f799", "transactionsTrie": "0x7b4ced652d8eec7947abc5f83b62a92535161325ccea2217b9f7f610cb25300f", "receiptTrie": "0x67d6667a73c6aa5c4f35052d666c7577756ae2981f67fc1c7b17085d4b6f1ae8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -194,33 +193,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa6ac13181c1701000b3d283ab6b215102c4a1165a01649b84640c75158ff4b20" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8da3fdb50eda9c93386138989062c21fafa8091e54f3aea978409b425b80d054", - "receiptsRoot": "0x67d6667a73c6aa5c4f35052d666c7577756ae2981f67fc1c7b17085d4b6f1ae8", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b568", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa6ac13181c1701000b3d283ab6b215102c4a1165a01649b84640c75158ff4b20", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b860ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a00bc44e02665e7668a860515157cab26b86a87f474ca44b7bb6ac6148cfbf0de0a023ca5c4a27c20b918dd9cdefa3abc9d3c832b3504bd1220b487839d6605f217f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6e2aa9328e873999206ee036eac781a6404a372fc682c625d3220256d6e58712" }, "transactions": [ { @@ -242,45 +215,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa6ac13181c1701000b3d283ab6b215102c4a1165a01649b84640c75158ff4b20", - "network": "Cancun", + "lastblockhash": "0x6e2aa9328e873999206ee036eac781a6404a372fc682c625d3220256d6e58712", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -289,14 +237,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -314,6 +254,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b2038", @@ -331,18 +279,43 @@ }, "002-fork=Cancun-single_byte_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0881c4d3746f8d0057aee5197046a298f30618e587962b108caf5bf2bbf1423e3a0a9a7b2df78cd5cf8806ea6566230f42db774b0640b7132fa5727e937d553a609a07ddb03bff7457545f983f46f05e9d25c07326e8b1fd083f9f19421bb98da7956b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b3f78203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000125a0a7c1e9f4593d5d5d55714a71455212987b11ce014c41abfd875a03e94af37622a001a23b2d379ad108df2e1995691a53163d591fc1103a4e368999e61f3f75a12bc0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03466c47aad8518881248fbf213afb0c4b0d6795caabd61a44eb87ecfdf5ded17a0a9a7b2df78cd5cf8806ea6566230f42db774b0640b7132fa5727e937d553a609a07ddb03bff7457545f983f46f05e9d25c07326e8b1fd083f9f19421bb98da7956b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b3f78203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000125a0a7c1e9f4593d5d5d55714a71455212987b11ce014c41abfd875a03e94af37622a001a23b2d379ad108df2e1995691a53163d591fc1103a4e368999e61f3f75a12bc0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x881c4d3746f8d0057aee5197046a298f30618e587962b108caf5bf2bbf1423e3", + "stateRoot": "0x3466c47aad8518881248fbf213afb0c4b0d6795caabd61a44eb87ecfdf5ded17", "transactionsTrie": "0xa9a7b2df78cd5cf8806ea6566230f42db774b0640b7132fa5727e937d553a609", "receiptTrie": "0x7ddb03bff7457545f983f46f05e9d25c07326e8b1fd083f9f19421bb98da7956", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -359,33 +332,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8b0da1f26cd13d4d20f6ef1f3f9ba8956aa5156a11d4518cc4c40105b75ef2e4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x881c4d3746f8d0057aee5197046a298f30618e587962b108caf5bf2bbf1423e3", - "receiptsRoot": "0x7ddb03bff7457545f983f46f05e9d25c07326e8b1fd083f9f19421bb98da7956", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b3f7", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8b0da1f26cd13d4d20f6ef1f3f9ba8956aa5156a11d4518cc4c40105b75ef2e4", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000125a0a7c1e9f4593d5d5d55714a71455212987b11ce014c41abfd875a03e94af37622a001a23b2d379ad108df2e1995691a53163d591fc1103a4e368999e61f3f75a12b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x42ba905ef483548cfd460c8de06acf6be62cc2ea1cfe3d0f97a96ed74672818e" }, "transactions": [ { @@ -407,45 +354,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8b0da1f26cd13d4d20f6ef1f3f9ba8956aa5156a11d4518cc4c40105b75ef2e4", - "network": "Cancun", + "lastblockhash": "0x42ba905ef483548cfd460c8de06acf6be62cc2ea1cfe3d0f97a96ed74672818e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -454,14 +376,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -479,6 +393,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1be5", @@ -496,18 +418,43 @@ }, "003-fork=Cancun-full_word_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0881c4d3746f8d0057aee5197046a298f30618e587962b108caf5bf2bbf1423e3a0a5108e49a02a49cea715246ddb585cd2f55d66ac13734d792b286c821faf7348a07ddb03bff7457545f983f46f05e9d25c07326e8b1fd083f9f19421bb98da7956b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b3f78203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002025a05f859b051f45844f45ad5c57e3e48daabb6d4547e79f6c78a243d3393739e815a0371f3fd850fcb3542df3e98aa7bf7b84305850558a76bbc383a313c894acbc22c0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03466c47aad8518881248fbf213afb0c4b0d6795caabd61a44eb87ecfdf5ded17a0a5108e49a02a49cea715246ddb585cd2f55d66ac13734d792b286c821faf7348a07ddb03bff7457545f983f46f05e9d25c07326e8b1fd083f9f19421bb98da7956b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b3f78203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002025a05f859b051f45844f45ad5c57e3e48daabb6d4547e79f6c78a243d3393739e815a0371f3fd850fcb3542df3e98aa7bf7b84305850558a76bbc383a313c894acbc22c0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x881c4d3746f8d0057aee5197046a298f30618e587962b108caf5bf2bbf1423e3", + "stateRoot": "0x3466c47aad8518881248fbf213afb0c4b0d6795caabd61a44eb87ecfdf5ded17", "transactionsTrie": "0xa5108e49a02a49cea715246ddb585cd2f55d66ac13734d792b286c821faf7348", "receiptTrie": "0x7ddb03bff7457545f983f46f05e9d25c07326e8b1fd083f9f19421bb98da7956", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -524,33 +471,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x293a5ff414a68eb41e8c1abd4c37fa10847061d22aafa8dbeccdad67b81856a7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x881c4d3746f8d0057aee5197046a298f30618e587962b108caf5bf2bbf1423e3", - "receiptsRoot": "0x7ddb03bff7457545f983f46f05e9d25c07326e8b1fd083f9f19421bb98da7956", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b3f7", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x293a5ff414a68eb41e8c1abd4c37fa10847061d22aafa8dbeccdad67b81856a7", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002025a05f859b051f45844f45ad5c57e3e48daabb6d4547e79f6c78a243d3393739e815a0371f3fd850fcb3542df3e98aa7bf7b84305850558a76bbc383a313c894acbc22" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc78fc4c1de1219cf926259a5af27216b3bfd37b78a93b050406838a6513e574c" }, "transactions": [ { @@ -572,45 +493,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x293a5ff414a68eb41e8c1abd4c37fa10847061d22aafa8dbeccdad67b81856a7", - "network": "Cancun", + "lastblockhash": "0xc78fc4c1de1219cf926259a5af27216b3bfd37b78a93b050406838a6513e574c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -619,14 +515,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -644,6 +532,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1be5", @@ -661,18 +557,43 @@ }, "004-fork=Cancun-single_byte_forward_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa011a48f36e202c1dc7c55819ed0701f804ff548c7e4609b1fe085436671320773a066a1e3c8ba2f944eb1567ce315d2c58d756493cb3582f46e987f5e5489c15b40a08293069a6cab8a0e678152a8bf748e731ff541ce5b2e027b4096f9dacbff8d14b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4038203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000126a00166ab512315b848c39785a850cf020470c060c03659d4b1fd216bd621b3d436a0567219e47dd148fa1063bb5cbd71aa12c991bc880873526d1fb4abe758167a24c0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa014239dcfbe7d67169489207cce89444ce83bf63dc80f5a544ea6f7fcec78bd07a066a1e3c8ba2f944eb1567ce315d2c58d756493cb3582f46e987f5e5489c15b40a08293069a6cab8a0e678152a8bf748e731ff541ce5b2e027b4096f9dacbff8d14b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4038203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000126a00166ab512315b848c39785a850cf020470c060c03659d4b1fd216bd621b3d436a0567219e47dd148fa1063bb5cbd71aa12c991bc880873526d1fb4abe758167a24c0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x11a48f36e202c1dc7c55819ed0701f804ff548c7e4609b1fe085436671320773", + "stateRoot": "0x14239dcfbe7d67169489207cce89444ce83bf63dc80f5a544ea6f7fcec78bd07", "transactionsTrie": "0x66a1e3c8ba2f944eb1567ce315d2c58d756493cb3582f46e987f5e5489c15b40", "receiptTrie": "0x8293069a6cab8a0e678152a8bf748e731ff541ce5b2e027b4096f9dacbff8d14", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -689,33 +610,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9615aadaebb0da84942760f006b1136ff54cb81fbab59457d0c93dd5d5b96b97" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x11a48f36e202c1dc7c55819ed0701f804ff548c7e4609b1fe085436671320773", - "receiptsRoot": "0x8293069a6cab8a0e678152a8bf748e731ff541ce5b2e027b4096f9dacbff8d14", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b403", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9615aadaebb0da84942760f006b1136ff54cb81fbab59457d0c93dd5d5b96b97", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000126a00166ab512315b848c39785a850cf020470c060c03659d4b1fd216bd621b3d436a0567219e47dd148fa1063bb5cbd71aa12c991bc880873526d1fb4abe758167a24" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe7b9f56e133344af8154c62f93628ab7ab92c54957ed75b13dfb1c35024d6b19" }, "transactions": [ { @@ -737,45 +632,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9615aadaebb0da84942760f006b1136ff54cb81fbab59457d0c93dd5d5b96b97", - "network": "Cancun", + "lastblockhash": "0xe7b9f56e133344af8154c62f93628ab7ab92c54957ed75b13dfb1c35024d6b19", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -784,14 +654,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -809,6 +671,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1c09", @@ -826,18 +696,43 @@ }, "005-fork=Cancun-full_word_forward_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa027ae3a1868a6801528c386a12acd6437f5782e28a04bb6c4c45ec0c6a4a10c53a07f90ef5141f5c20cdb6bf88902cc0c40a3c687f35043d3b835b598df35ca246fa08293069a6cab8a0e678152a8bf748e731ff541ce5b2e027b4096f9dacbff8d14b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4038203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002025a0f6bec80266a09fe3f11b662e571d9d4b452cc3eff0a0a8451144c067774c9101a02303095b5d924de02de7c3cc6bf16424eca071924b12d4fc025c111ce36f53f3c0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f32a616127d4f823dce821915fac60aadf5c59516545f51c170e247475f7264ea07f90ef5141f5c20cdb6bf88902cc0c40a3c687f35043d3b835b598df35ca246fa08293069a6cab8a0e678152a8bf748e731ff541ce5b2e027b4096f9dacbff8d14b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4038203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002025a0f6bec80266a09fe3f11b662e571d9d4b452cc3eff0a0a8451144c067774c9101a02303095b5d924de02de7c3cc6bf16424eca071924b12d4fc025c111ce36f53f3c0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x27ae3a1868a6801528c386a12acd6437f5782e28a04bb6c4c45ec0c6a4a10c53", + "stateRoot": "0xf32a616127d4f823dce821915fac60aadf5c59516545f51c170e247475f7264e", "transactionsTrie": "0x7f90ef5141f5c20cdb6bf88902cc0c40a3c687f35043d3b835b598df35ca246f", "receiptTrie": "0x8293069a6cab8a0e678152a8bf748e731ff541ce5b2e027b4096f9dacbff8d14", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -854,33 +749,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdea5ebc743498215f8e8caf7a617cc48857ea9c736b1e2a98b8a5e441db675d3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x27ae3a1868a6801528c386a12acd6437f5782e28a04bb6c4c45ec0c6a4a10c53", - "receiptsRoot": "0x8293069a6cab8a0e678152a8bf748e731ff541ce5b2e027b4096f9dacbff8d14", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b403", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xdea5ebc743498215f8e8caf7a617cc48857ea9c736b1e2a98b8a5e441db675d3", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002025a0f6bec80266a09fe3f11b662e571d9d4b452cc3eff0a0a8451144c067774c9101a02303095b5d924de02de7c3cc6bf16424eca071924b12d4fc025c111ce36f53f3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x047dbdf7d190da0c4d23ededd16c983a37e546aa699e89c63c264cd929b97ca4" }, "transactions": [ { @@ -902,45 +771,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdea5ebc743498215f8e8caf7a617cc48857ea9c736b1e2a98b8a5e441db675d3", - "network": "Cancun", + "lastblockhash": "0x047dbdf7d190da0c4d23ededd16c983a37e546aa699e89c63c264cd929b97ca4", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -949,14 +793,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -974,6 +810,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1c09", @@ -991,18 +835,43 @@ }, "006-fork=Cancun-mid_word_single_byte_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05055331592a2becd2cc251cf34993b8a779d51a7dd21680862ed2b06c50ba653a0f10df939bf9b783de950e10fd044dc2dadc50dfc619fc36b899829b3ba19d530a0ca7127a856652d20a0b843accd5b59590204d1c48a6a87d78315c12b5a211179b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b40f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000125a0640c7647977fbe542ebfbb8f5903befcc530459b0799aee8ee8cc53c49792728a007d961a468d42c5d8a0838c0484b8e60ba4411352bac0b09fe4bbd900337fca0c0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f056a60d0b33f41402fcd4bc0855b9f745db8bcbfee195cb2c5c6352a4f740d0a0f10df939bf9b783de950e10fd044dc2dadc50dfc619fc36b899829b3ba19d530a0ca7127a856652d20a0b843accd5b59590204d1c48a6a87d78315c12b5a211179b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b40f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000125a0640c7647977fbe542ebfbb8f5903befcc530459b0799aee8ee8cc53c49792728a007d961a468d42c5d8a0838c0484b8e60ba4411352bac0b09fe4bbd900337fca0c0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5055331592a2becd2cc251cf34993b8a779d51a7dd21680862ed2b06c50ba653", + "stateRoot": "0xf056a60d0b33f41402fcd4bc0855b9f745db8bcbfee195cb2c5c6352a4f740d0", "transactionsTrie": "0xf10df939bf9b783de950e10fd044dc2dadc50dfc619fc36b899829b3ba19d530", "receiptTrie": "0xca7127a856652d20a0b843accd5b59590204d1c48a6a87d78315c12b5a211179", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1019,33 +888,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x588c6ac96295b91dd649c4aab843c6672412ea24bee47fa04fd23a7caf01c946" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5055331592a2becd2cc251cf34993b8a779d51a7dd21680862ed2b06c50ba653", - "receiptsRoot": "0xca7127a856652d20a0b843accd5b59590204d1c48a6a87d78315c12b5a211179", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b40f", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x588c6ac96295b91dd649c4aab843c6672412ea24bee47fa04fd23a7caf01c946", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000125a0640c7647977fbe542ebfbb8f5903befcc530459b0799aee8ee8cc53c49792728a007d961a468d42c5d8a0838c0484b8e60ba4411352bac0b09fe4bbd900337fca0" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5fb7efa52b91044c83d7a97d34e6a65339fcac7ac3b8e2c38c762c508b914271" }, "transactions": [ { @@ -1067,45 +910,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x588c6ac96295b91dd649c4aab843c6672412ea24bee47fa04fd23a7caf01c946", - "network": "Cancun", + "lastblockhash": "0x5fb7efa52b91044c83d7a97d34e6a65339fcac7ac3b8e2c38c762c508b914271", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1114,14 +932,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1139,6 +949,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1c2d", @@ -1156,18 +974,43 @@ }, "007-fork=Cancun-mid_word_single_word_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05055331592a2becd2cc251cf34993b8a779d51a7dd21680862ed2b06c50ba653a09b5c7fb00ade31c8f5dc37b388106702cda698061bd63864d96bb29725733460a0ca7127a856652d20a0b843accd5b59590204d1c48a6a87d78315c12b5a211179b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b40f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000002026a01fa1f82fd7ae1d4f3c609ed954febc10b06aaf0f1927d34663c45ce497180802a01dd76fb5ee3d439fcbdb57ebcec21a8e421bcac29064a366e1a5611ede076fccc0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f056a60d0b33f41402fcd4bc0855b9f745db8bcbfee195cb2c5c6352a4f740d0a09b5c7fb00ade31c8f5dc37b388106702cda698061bd63864d96bb29725733460a0ca7127a856652d20a0b843accd5b59590204d1c48a6a87d78315c12b5a211179b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b40f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000002026a01fa1f82fd7ae1d4f3c609ed954febc10b06aaf0f1927d34663c45ce497180802a01dd76fb5ee3d439fcbdb57ebcec21a8e421bcac29064a366e1a5611ede076fccc0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5055331592a2becd2cc251cf34993b8a779d51a7dd21680862ed2b06c50ba653", + "stateRoot": "0xf056a60d0b33f41402fcd4bc0855b9f745db8bcbfee195cb2c5c6352a4f740d0", "transactionsTrie": "0x9b5c7fb00ade31c8f5dc37b388106702cda698061bd63864d96bb29725733460", "receiptTrie": "0xca7127a856652d20a0b843accd5b59590204d1c48a6a87d78315c12b5a211179", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1184,33 +1027,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x35c1699ad4442a2a6ec79bf35382de2e182af5513fc74a94ef9264bb4390e2f7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5055331592a2becd2cc251cf34993b8a779d51a7dd21680862ed2b06c50ba653", - "receiptsRoot": "0xca7127a856652d20a0b843accd5b59590204d1c48a6a87d78315c12b5a211179", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b40f", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x35c1699ad4442a2a6ec79bf35382de2e182af5513fc74a94ef9264bb4390e2f7", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000002026a01fa1f82fd7ae1d4f3c609ed954febc10b06aaf0f1927d34663c45ce497180802a01dd76fb5ee3d439fcbdb57ebcec21a8e421bcac29064a366e1a5611ede076fcc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8af7f3624a85da44ea261e001773ca3b5902454deddb2df39711daeba512d067" }, "transactions": [ { @@ -1232,45 +1049,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x35c1699ad4442a2a6ec79bf35382de2e182af5513fc74a94ef9264bb4390e2f7", - "network": "Cancun", + "lastblockhash": "0x8af7f3624a85da44ea261e001773ca3b5902454deddb2df39711daeba512d067", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1279,14 +1071,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1304,6 +1088,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1c2d", @@ -1321,18 +1113,43 @@ }, "008-fork=Cancun-mid_word_multi_word_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02f239d04393acba6918adcc8a06f8b69a1a0932817a4cc1a70520775c2b8a6c8a0860059140a0c18f063eb4ec1e96d6950fa7499b0944938fb65647046101d7538a05631db84c99fe0053ae85fcee2dfae4092ec0e5e4cfea75f771e16b4a44a460db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4128203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000004026a031257f38da8770fdd0c256debf6cbaa35e57c72bf3e0420d50364c1b54056a86a061969c81b9bcc59193cfb8a4f1a37b08f0dde2c2e3cf5287b487d5d669263ddfc0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0699b78bf370b7ddbf718a266998cb69b1809a371488137dc00fde6dbfb63beb5a0860059140a0c18f063eb4ec1e96d6950fa7499b0944938fb65647046101d7538a05631db84c99fe0053ae85fcee2dfae4092ec0e5e4cfea75f771e16b4a44a460db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4128203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000004026a031257f38da8770fdd0c256debf6cbaa35e57c72bf3e0420d50364c1b54056a86a061969c81b9bcc59193cfb8a4f1a37b08f0dde2c2e3cf5287b487d5d669263ddfc0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2f239d04393acba6918adcc8a06f8b69a1a0932817a4cc1a70520775c2b8a6c8", + "stateRoot": "0x699b78bf370b7ddbf718a266998cb69b1809a371488137dc00fde6dbfb63beb5", "transactionsTrie": "0x860059140a0c18f063eb4ec1e96d6950fa7499b0944938fb65647046101d7538", "receiptTrie": "0x5631db84c99fe0053ae85fcee2dfae4092ec0e5e4cfea75f771e16b4a44a460d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1349,33 +1166,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa1199983c807d93a3d5b70cd311346c09695ac1e0583048a6d2aefd0bc89934b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2f239d04393acba6918adcc8a06f8b69a1a0932817a4cc1a70520775c2b8a6c8", - "receiptsRoot": "0x5631db84c99fe0053ae85fcee2dfae4092ec0e5e4cfea75f771e16b4a44a460d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b412", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa1199983c807d93a3d5b70cd311346c09695ac1e0583048a6d2aefd0bc89934b", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000004026a031257f38da8770fdd0c256debf6cbaa35e57c72bf3e0420d50364c1b54056a86a061969c81b9bcc59193cfb8a4f1a37b08f0dde2c2e3cf5287b487d5d669263ddf" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x22dae19144a3e7bf983e445518c70d09ebb1dab0a12dd6a49e1ecff35eb3cf81" }, "transactions": [ { @@ -1397,45 +1188,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa1199983c807d93a3d5b70cd311346c09695ac1e0583048a6d2aefd0bc89934b", - "network": "Cancun", + "lastblockhash": "0x22dae19144a3e7bf983e445518c70d09ebb1dab0a12dd6a49e1ecff35eb3cf81", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1444,14 +1210,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1469,6 +1227,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1c36", @@ -1486,18 +1252,43 @@ }, "009-fork=Cancun-two_words_forward_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a29a99f9d0e0dbf663cbfbd431bdbb749aadab6ae92c1ed82e48960fe0f6cda0904137ad163604a09d59bec8858f57c791f129d4058126def044bce57dde3b68a0d8c9beb8ac34dec5f8e4934faf2e83b357d2cf633318eee43e34f273f0c3c3b9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4068203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004025a0d84ffd0716db32cdf81c0123f9d54f6efe4213b0b3b556166899c0fb1ea2485fa01c7e0ba32f2fc10ab212abfd940ea118301978577e67c9401e5b61ab55070206c0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c1fe2d464a56aafafb0178177da67b123bc14916d1d9c038a1bee2e8972d38d6a0904137ad163604a09d59bec8858f57c791f129d4058126def044bce57dde3b68a0d8c9beb8ac34dec5f8e4934faf2e83b357d2cf633318eee43e34f273f0c3c3b9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4068203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004025a0d84ffd0716db32cdf81c0123f9d54f6efe4213b0b3b556166899c0fb1ea2485fa01c7e0ba32f2fc10ab212abfd940ea118301978577e67c9401e5b61ab55070206c0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2a29a99f9d0e0dbf663cbfbd431bdbb749aadab6ae92c1ed82e48960fe0f6cd", + "stateRoot": "0xc1fe2d464a56aafafb0178177da67b123bc14916d1d9c038a1bee2e8972d38d6", "transactionsTrie": "0x904137ad163604a09d59bec8858f57c791f129d4058126def044bce57dde3b68", "receiptTrie": "0xd8c9beb8ac34dec5f8e4934faf2e83b357d2cf633318eee43e34f273f0c3c3b9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1514,33 +1305,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4249403645692a70930394ef259e40521a4058ceaf3120471954e55b144f871f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd2a29a99f9d0e0dbf663cbfbd431bdbb749aadab6ae92c1ed82e48960fe0f6cd", - "receiptsRoot": "0xd8c9beb8ac34dec5f8e4934faf2e83b357d2cf633318eee43e34f273f0c3c3b9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b406", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4249403645692a70930394ef259e40521a4058ceaf3120471954e55b144f871f", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004025a0d84ffd0716db32cdf81c0123f9d54f6efe4213b0b3b556166899c0fb1ea2485fa01c7e0ba32f2fc10ab212abfd940ea118301978577e67c9401e5b61ab55070206" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xea77f1f38eab9a6eb7610a7a8fc2bca9d2236e47c60cd8e1ac1e260914564241" }, "transactions": [ { @@ -1562,45 +1327,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4249403645692a70930394ef259e40521a4058ceaf3120471954e55b144f871f", - "network": "Cancun", + "lastblockhash": "0xea77f1f38eab9a6eb7610a7a8fc2bca9d2236e47c60cd8e1ac1e260914564241", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1609,14 +1349,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1634,6 +1366,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1c12", @@ -1651,18 +1391,43 @@ }, "010-fork=Cancun-two_words_backward_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c3119d696a7bc58904684414e3beec76a51aae12ed3c2fe7508f28f6b41d57f1a0b71af7116270b47a9130423cb9339a6da6e2943aeaa8a33370d4526ba43ff205a0d8c9beb8ac34dec5f8e4934faf2e83b357d2cf633318eee43e34f273f0c3c3b9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4068203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004025a0b78b12875c179e7c2cce2bea531304acae3f7e8ef271a39321db7a153700ff94a02b547f4715e0a83f3297fa68a544bffc08d1bc9fa60ed6d3da86f92149488c7ec0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa060b779c5f14968691cabf53abd0e405adf3ff1accdecba8bee776157833cb2daa0b71af7116270b47a9130423cb9339a6da6e2943aeaa8a33370d4526ba43ff205a0d8c9beb8ac34dec5f8e4934faf2e83b357d2cf633318eee43e34f273f0c3c3b9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4068203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004025a0b78b12875c179e7c2cce2bea531304acae3f7e8ef271a39321db7a153700ff94a02b547f4715e0a83f3297fa68a544bffc08d1bc9fa60ed6d3da86f92149488c7ec0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc3119d696a7bc58904684414e3beec76a51aae12ed3c2fe7508f28f6b41d57f1", + "stateRoot": "0x60b779c5f14968691cabf53abd0e405adf3ff1accdecba8bee776157833cb2da", "transactionsTrie": "0xb71af7116270b47a9130423cb9339a6da6e2943aeaa8a33370d4526ba43ff205", "receiptTrie": "0xd8c9beb8ac34dec5f8e4934faf2e83b357d2cf633318eee43e34f273f0c3c3b9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1679,33 +1444,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x396477ea0938e4cf91c6351f1aab8cc2e741116f530cf917c05e7825e11c75e1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc3119d696a7bc58904684414e3beec76a51aae12ed3c2fe7508f28f6b41d57f1", - "receiptsRoot": "0xd8c9beb8ac34dec5f8e4934faf2e83b357d2cf633318eee43e34f273f0c3c3b9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b406", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x396477ea0938e4cf91c6351f1aab8cc2e741116f530cf917c05e7825e11c75e1", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004025a0b78b12875c179e7c2cce2bea531304acae3f7e8ef271a39321db7a153700ff94a02b547f4715e0a83f3297fa68a544bffc08d1bc9fa60ed6d3da86f92149488c7e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2fecc5da7544dea01a757cc2869f4a9c7e94651822647fb8072511c29a69a400" }, "transactions": [ { @@ -1727,45 +1466,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x396477ea0938e4cf91c6351f1aab8cc2e741116f530cf917c05e7825e11c75e1", - "network": "Cancun", + "lastblockhash": "0x2fecc5da7544dea01a757cc2869f4a9c7e94651822647fb8072511c29a69a400", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1774,14 +1488,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1799,6 +1505,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1c12", @@ -1816,18 +1530,43 @@ }, "011-fork=Cancun-two_words_backward_overwrite_single_byte_offset": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90309f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e4112bb75e1c42b1e5f978024dab2cd23788e518fbda19dbfa8402f16e40d84ba0c9bb7eff024fc3f16349df0f55618001e338ef96c11216484b6fb1ca7addc25ea05631db84c99fe0053ae85fcee2dfae4092ec0e5e4cfea75f771e16b4a44a460db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4128203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b860000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004025a0210474d4af4a4b459ec820c4fa55cc5ff31c52b5285c51862587a1d3f2870497a05c8055710bf1bdcfef90ded9445c6994f03c2644c05e479b472d53103ae07dc8c0c0", + "rlp": "0xf90309f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d4911cb705389f901a83bef1b619569cd5e905c0c631b015ac817cb521fe2fa3a0c9bb7eff024fc3f16349df0f55618001e338ef96c11216484b6fb1ca7addc25ea05631db84c99fe0053ae85fcee2dfae4092ec0e5e4cfea75f771e16b4a44a460db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b4128203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b860000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004025a0210474d4af4a4b459ec820c4fa55cc5ff31c52b5285c51862587a1d3f2870497a05c8055710bf1bdcfef90ded9445c6994f03c2644c05e479b472d53103ae07dc8c0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe4112bb75e1c42b1e5f978024dab2cd23788e518fbda19dbfa8402f16e40d84b", + "stateRoot": "0xd4911cb705389f901a83bef1b619569cd5e905c0c631b015ac817cb521fe2fa3", "transactionsTrie": "0xc9bb7eff024fc3f16349df0f55618001e338ef96c11216484b6fb1ca7addc25e", "receiptTrie": "0x5631db84c99fe0053ae85fcee2dfae4092ec0e5e4cfea75f771e16b4a44a460d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1844,33 +1583,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xca503037b2145a08193e8041842312972cfbd056d2c2a1065ae6ec589e9b3484" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe4112bb75e1c42b1e5f978024dab2cd23788e518fbda19dbfa8402f16e40d84b", - "receiptsRoot": "0x5631db84c99fe0053ae85fcee2dfae4092ec0e5e4cfea75f771e16b4a44a460d", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b412", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xca503037b2145a08193e8041842312972cfbd056d2c2a1065ae6ec589e9b3484", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b860000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004025a0210474d4af4a4b459ec820c4fa55cc5ff31c52b5285c51862587a1d3f2870497a05c8055710bf1bdcfef90ded9445c6994f03c2644c05e479b472d53103ae07dc8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2fa759e3ee645d9e6d1dcee5a19abba9692058aa74371643958dc126821b1e90" }, "transactions": [ { @@ -1892,45 +1605,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xca503037b2145a08193e8041842312972cfbd056d2c2a1065ae6ec589e9b3484", - "network": "Cancun", + "lastblockhash": "0x2fa759e3ee645d9e6d1dcee5a19abba9692058aa74371643958dc126821b1e90", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1939,14 +1627,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1964,6 +1644,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1c36", @@ -1981,18 +1669,43 @@ }, "012-fork=Cancun-single_byte_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e521f5fa3f2a5f1abb54a9aafe6d39dd28309bf62164236803074f5d471e8a9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9e521f5fa3f2a5f1abb54a9aafe6d39dd28309bf62164236803074f5d471e8a9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9f" + }, "blocks": [ { - "rlp": "0xf90309f9023fa03128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f2a75821eb3e1d051c0ee61f2d325591fffc5b4916eb589184d3c5b92b059bd5a005482779c91aa36046bc8e21fc0d78cbfd516abbc85b48858c19c740b9d626cba06e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a758203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000125a07967732597b78e5a04efc6439878b1edb05b244cbb4276781c7aadf667424060a0629ba30982f363c99cee78006f47b5f9149b8a4edf76ec49edfa43cb3566f668c0c0", + "rlp": "0xf90309f9023fa0bf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa050f659cfa5e66e2e6ca800550983fe85dc2c063a41f6bd4638bafb622baf4df5a005482779c91aa36046bc8e21fc0d78cbfd516abbc85b48858c19c740b9d626cba06e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a758203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000125a07967732597b78e5a04efc6439878b1edb05b244cbb4276781c7aadf667424060a0629ba30982f363c99cee78006f47b5f9149b8a4edf76ec49edfa43cb3566f668c0c0", "blockHeader": { - "parentHash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d", + "parentHash": "0xbf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf2a75821eb3e1d051c0ee61f2d325591fffc5b4916eb589184d3c5b92b059bd5", + "stateRoot": "0x50f659cfa5e66e2e6ca800550983fe85dc2c063a41f6bd4638bafb622baf4df5", "transactionsTrie": "0x05482779c91aa36046bc8e21fc0d78cbfd516abbc85b48858c19c740b9d626cb", "receiptTrie": "0x6e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2009,33 +1722,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x61694ad013b8421a3806fb0a0c38efb12c5e543594837bc6564972afd5b83414" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf2a75821eb3e1d051c0ee61f2d325591fffc5b4916eb589184d3c5b92b059bd5", - "receiptsRoot": "0x6e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40a75", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x61694ad013b8421a3806fb0a0c38efb12c5e543594837bc6564972afd5b83414", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000125a07967732597b78e5a04efc6439878b1edb05b244cbb4276781c7aadf667424060a0629ba30982f363c99cee78006f47b5f9149b8a4edf76ec49edfa43cb3566f668" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x23cdadecfe367d08b87b0e556a8371084b89a159cdfc720d060f4a7252a0b1f6" }, "transactions": [ { @@ -2057,45 +1744,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5f2d6970aa94d94ba171741ea28b7a8bc22e9277ebfd05a592022dff6b31fa6c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05f2d6970aa94d94ba171741ea28b7a8bc22e9277ebfd05a592022dff6b31fa6ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x61694ad013b8421a3806fb0a0c38efb12c5e543594837bc6564972afd5b83414", - "network": "Cancun", + "lastblockhash": "0x23cdadecfe367d08b87b0e556a8371084b89a159cdfc720d060f4a7252a0b1f6", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e05160095561010051600a55", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -2104,14 +1766,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2130,6 +1784,14 @@ "0x0a": "0x0100000000000000000000000000000000000000000000000000000000000000" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0c1f5f", @@ -2147,18 +1809,43 @@ }, "013-fork=Cancun-single_word_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e521f5fa3f2a5f1abb54a9aafe6d39dd28309bf62164236803074f5d471e8a9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9e521f5fa3f2a5f1abb54a9aafe6d39dd28309bf62164236803074f5d471e8a9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9f" + }, "blocks": [ { - "rlp": "0xf90309f9023fa03128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04ea918623afa4eb7dd9db90f1ad819a11770b8a906ec679ce33c75373fe81805a020925a2ff57302f431b06154e6c98331a1c51b3d26ab112988ea5f8dc09826c5a06e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a758203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002026a0eba318d83c9c650af5deebb81592c901e100b08074fab159bf880ebcd6042f9aa025d7deaf5518f964a9d9583f8001edb44c75dc5d46ae0af7f2a047442ebb9b30c0c0", + "rlp": "0xf90309f9023fa0bf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0de457f58390fcc7ab0772191545baa669061d496b2b53ceecfbd253430a55e6da020925a2ff57302f431b06154e6c98331a1c51b3d26ab112988ea5f8dc09826c5a06e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a758203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002026a0eba318d83c9c650af5deebb81592c901e100b08074fab159bf880ebcd6042f9aa025d7deaf5518f964a9d9583f8001edb44c75dc5d46ae0af7f2a047442ebb9b30c0c0", "blockHeader": { - "parentHash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d", + "parentHash": "0xbf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4ea918623afa4eb7dd9db90f1ad819a11770b8a906ec679ce33c75373fe81805", + "stateRoot": "0xde457f58390fcc7ab0772191545baa669061d496b2b53ceecfbd253430a55e6d", "transactionsTrie": "0x20925a2ff57302f431b06154e6c98331a1c51b3d26ab112988ea5f8dc09826c5", "receiptTrie": "0x6e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2175,33 +1862,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x392f68ab50d738fc9d6d3ab40e0fd6dd294d1a5f49014148c6f758ece29be934" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4ea918623afa4eb7dd9db90f1ad819a11770b8a906ec679ce33c75373fe81805", - "receiptsRoot": "0x6e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40a75", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x392f68ab50d738fc9d6d3ab40e0fd6dd294d1a5f49014148c6f758ece29be934", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002026a0eba318d83c9c650af5deebb81592c901e100b08074fab159bf880ebcd6042f9aa025d7deaf5518f964a9d9583f8001edb44c75dc5d46ae0af7f2a047442ebb9b30" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x544a538b0570fc2a9249c82e50aac9ac2321f0a2c0f5064f209dad75f9d6b8e2" }, "transactions": [ { @@ -2223,45 +1884,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5f2d6970aa94d94ba171741ea28b7a8bc22e9277ebfd05a592022dff6b31fa6c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05f2d6970aa94d94ba171741ea28b7a8bc22e9277ebfd05a592022dff6b31fa6ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x392f68ab50d738fc9d6d3ab40e0fd6dd294d1a5f49014148c6f758ece29be934", - "network": "Cancun", + "lastblockhash": "0x544a538b0570fc2a9249c82e50aac9ac2321f0a2c0f5064f209dad75f9d6b8e2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e05160095561010051600a55", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -2270,14 +1906,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2296,6 +1924,14 @@ "0x0a": "0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0c1f5f", @@ -2313,18 +1949,43 @@ }, "014-fork=Cancun-single_word_minus_one_byte_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e521f5fa3f2a5f1abb54a9aafe6d39dd28309bf62164236803074f5d471e8a9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9e521f5fa3f2a5f1abb54a9aafe6d39dd28309bf62164236803074f5d471e8a9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9f" + }, "blocks": [ { - "rlp": "0xf90309f9023fa03128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0822b8a0c51b5b8e8c871edc73024ea2fb74a6f42ba0838d7e9e82a29e6d8fec9a0e3da5c3decf5c947bf64afd76b875b3af67c03dedcb7520280735e81932da44ba06e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a758203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001f25a070eee9a191fe4ce42e7815285fc3a9fd300854f4660576f1a9226f8fcda1de0fa0194c643d8d08585daeed71c366a426f497bcdf0ef721ad1ede47880a5fce5861c0c0", + "rlp": "0xf90309f9023fa0bf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06cb2e22dc2134e3e3ccfad222cc47e44900ba7ef667ad8f3d328f34536f472d3a0e3da5c3decf5c947bf64afd76b875b3af67c03dedcb7520280735e81932da44ba06e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a758203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001f25a070eee9a191fe4ce42e7815285fc3a9fd300854f4660576f1a9226f8fcda1de0fa0194c643d8d08585daeed71c366a426f497bcdf0ef721ad1ede47880a5fce5861c0c0", "blockHeader": { - "parentHash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d", + "parentHash": "0xbf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x822b8a0c51b5b8e8c871edc73024ea2fb74a6f42ba0838d7e9e82a29e6d8fec9", + "stateRoot": "0x6cb2e22dc2134e3e3ccfad222cc47e44900ba7ef667ad8f3d328f34536f472d3", "transactionsTrie": "0xe3da5c3decf5c947bf64afd76b875b3af67c03dedcb7520280735e81932da44b", "receiptTrie": "0x6e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2341,33 +2002,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x55b13bd4ffd8fa08f8eaf3ecf5610528654992d9638d62d48e3299b9936a1113" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x822b8a0c51b5b8e8c871edc73024ea2fb74a6f42ba0838d7e9e82a29e6d8fec9", - "receiptsRoot": "0x6e94ffbe567560d3199611213e0772390dc521aeccb09e4687c9f3f89e7e48f9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40a75", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x55b13bd4ffd8fa08f8eaf3ecf5610528654992d9638d62d48e3299b9936a1113", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000001f25a070eee9a191fe4ce42e7815285fc3a9fd300854f4660576f1a9226f8fcda1de0fa0194c643d8d08585daeed71c366a426f497bcdf0ef721ad1ede47880a5fce5861" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0bcaa73612b3178811f4c09067321bbda6dc3b4043b54e028ed05f9defa96d62" }, "transactions": [ { @@ -2389,45 +2024,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5f2d6970aa94d94ba171741ea28b7a8bc22e9277ebfd05a592022dff6b31fa6c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05f2d6970aa94d94ba171741ea28b7a8bc22e9277ebfd05a592022dff6b31fa6ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x55b13bd4ffd8fa08f8eaf3ecf5610528654992d9638d62d48e3299b9936a1113", - "network": "Cancun", + "lastblockhash": "0x0bcaa73612b3178811f4c09067321bbda6dc3b4043b54e028ed05f9defa96d62", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e05160095561010051600a55", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -2436,14 +2046,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2462,6 +2064,14 @@ "0x0a": "0x0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f00" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0c1f5f", @@ -2479,18 +2089,43 @@ }, "015-fork=Cancun-single_word_plus_one_byte_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05bcd6907be6527c148e37f04a696c17590a4aeb3e33d3c8c23d84c83befca55ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5bcd6907be6527c148e37f04a696c17590a4aeb3e33d3c8c23d84c83befca55b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf88c19823e48e4a4aa310f3e8fe9d509c5b67dab440dc61eb9a5581f7635965c" + }, "blocks": [ { - "rlp": "0xf90309f9023fa0386975e42b5ca076d2136ea1bfe49cd53cdc05116b161dbeeff060fb459bf4b1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa009dae21ad371ca62eb005f7b67ac1f12ff28b2da972f477c3bacfc9c2ae34c32a0c8ea4ab9a778d5208ef44871527e1cac36fcf4be14985a3178f2dc8090d0efa2a0a5df7277ebc2a4d55cc87bc26868452930040230e6c0a30be1b818eaf3784228b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a818203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002125a097a1acb5abe5574bd296e9f493a5c7a16d2d7b37d2f4162b35648f981865e13da0449e9d51352fdf190c668161f7506f35665c1843c573f46e09cef434bb4be7d8c0c0", + "rlp": "0xf90309f9023fa0f88c19823e48e4a4aa310f3e8fe9d509c5b67dab440dc61eb9a5581f7635965ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09a067bb7f2882c222bab7b4daec6505cfdf786d45fb287a810ccbd3fecc10f68a0c8ea4ab9a778d5208ef44871527e1cac36fcf4be14985a3178f2dc8090d0efa2a0a5df7277ebc2a4d55cc87bc26868452930040230e6c0a30be1b818eaf3784228b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a818203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002125a097a1acb5abe5574bd296e9f493a5c7a16d2d7b37d2f4162b35648f981865e13da0449e9d51352fdf190c668161f7506f35665c1843c573f46e09cef434bb4be7d8c0c0", "blockHeader": { - "parentHash": "0x386975e42b5ca076d2136ea1bfe49cd53cdc05116b161dbeeff060fb459bf4b1", + "parentHash": "0xf88c19823e48e4a4aa310f3e8fe9d509c5b67dab440dc61eb9a5581f7635965c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x09dae21ad371ca62eb005f7b67ac1f12ff28b2da972f477c3bacfc9c2ae34c32", + "stateRoot": "0x9a067bb7f2882c222bab7b4daec6505cfdf786d45fb287a810ccbd3fecc10f68", "transactionsTrie": "0xc8ea4ab9a778d5208ef44871527e1cac36fcf4be14985a3178f2dc8090d0efa2", "receiptTrie": "0xa5df7277ebc2a4d55cc87bc26868452930040230e6c0a30be1b818eaf3784228", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2507,33 +2142,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf91a8bb1f3c2b4835eec66ca4e3cbce9363390088f4abd500716883458d1a570" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x386975e42b5ca076d2136ea1bfe49cd53cdc05116b161dbeeff060fb459bf4b1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x09dae21ad371ca62eb005f7b67ac1f12ff28b2da972f477c3bacfc9c2ae34c32", - "receiptsRoot": "0xa5df7277ebc2a4d55cc87bc26868452930040230e6c0a30be1b818eaf3784228", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40a81", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf91a8bb1f3c2b4835eec66ca4e3cbce9363390088f4abd500716883458d1a570", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002125a097a1acb5abe5574bd296e9f493a5c7a16d2d7b37d2f4162b35648f981865e13da0449e9d51352fdf190c668161f7506f35665c1843c573f46e09cef434bb4be7d8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x96207fd9cf0467aeacb79ee89baa832fc1dc6e4bd83cb2d8e2c0ecdd391e822c" }, "transactions": [ { @@ -2555,45 +2164,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3afe21b78addb1e4acb683fefb682a7dff024b729de641ce50f858325869aba7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x386975e42b5ca076d2136ea1bfe49cd53cdc05116b161dbeeff060fb459bf4b1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03afe21b78addb1e4acb683fefb682a7dff024b729de641ce50f858325869aba7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf91a8bb1f3c2b4835eec66ca4e3cbce9363390088f4abd500716883458d1a570", - "network": "Cancun", + "lastblockhash": "0x96207fd9cf0467aeacb79ee89baa832fc1dc6e4bd83cb2d8e2c0ecdd391e822c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e05160095561012051600a55", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -2602,14 +2186,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2628,6 +2204,14 @@ "0x0a": "0x2100000000000000000000000000000000000000000000000000000000000000" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0c1f83", @@ -2645,18 +2229,43 @@ }, "016-fork=Cancun-full_memory_rewrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0db815dba73dc901489881b81803299d69c30890837770c156807913c74bd331fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdb815dba73dc901489881b81803299d69c30890837770c156807913c74bd331f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6" + }, "blocks": [ { - "rlp": "0xf90308f9023fa05c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c6e19f56535fadd2deb0425919348a808187cb127fbdbc40d957a660ebae22d5a05bab7bb7cc5f8442611d7c38eaa6aadb1d318cb1b2d1c404008dde4077850ccea0a43c5ca31768dd3ebf77edf6e854c49fe6f625789422240650d6f403b2b387a8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b40c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c2f8c0800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010025a0ee0abc457d3f0ac7de764e83960ee9314c52170d7859c113e2b39d6efd9999e09f1e98c974e21b4d9ccc1ff041539bd892b25921a64b0fb352a6f1e22adc6848c0c0", + "rlp": "0xf90308f9023fa0630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0433508e5bef558e81d9d5e0093001913f57bee2478ba8a94808fe66f4e8ad537a05bab7bb7cc5f8442611d7c38eaa6aadb1d318cb1b2d1c404008dde4077850ccea0a43c5ca31768dd3ebf77edf6e854c49fe6f625789422240650d6f403b2b387a8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303b40c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c2f8c0800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010025a0ee0abc457d3f0ac7de764e83960ee9314c52170d7859c113e2b39d6efd9999e09f1e98c974e21b4d9ccc1ff041539bd892b25921a64b0fb352a6f1e22adc6848c0c0", "blockHeader": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", + "parentHash": "0x630f6f53738712f328d469cf97ea4dd12b7480064fa98af947e4122aca1637a6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc6e19f56535fadd2deb0425919348a808187cb127fbdbc40d957a660ebae22d5", + "stateRoot": "0x433508e5bef558e81d9d5e0093001913f57bee2478ba8a94808fe66f4e8ad537", "transactionsTrie": "0x5bab7bb7cc5f8442611d7c38eaa6aadb1d318cb1b2d1c404008dde4077850cce", "receiptTrie": "0xa43c5ca31768dd3ebf77edf6e854c49fe6f625789422240650d6f403b2b387a8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2673,33 +2282,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x86501bec5b58e467e90bf16993dcc2645eb90c03c15e7d9cbcbeaac99d739d1c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc6e19f56535fadd2deb0425919348a808187cb127fbdbc40d957a660ebae22d5", - "receiptsRoot": "0xa43c5ca31768dd3ebf77edf6e854c49fe6f625789422240650d6f403b2b387a8", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3b40c", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x86501bec5b58e467e90bf16993dcc2645eb90c03c15e7d9cbcbeaac99d739d1c", - "transactions": [ - "0xf8c0800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010025a0ee0abc457d3f0ac7de764e83960ee9314c52170d7859c113e2b39d6efd9999e09f1e98c974e21b4d9ccc1ff041539bd892b25921a64b0fb352a6f1e22adc6848" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x71870cfb18c6c58d5935dcc5aa85a7b7d571d1a4342d7794fe01ba6043d494c8" }, "transactions": [ { @@ -2721,45 +2304,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c5c528621fba227e48430614951bf8bf8000ed1f4008e9820804fb47e9b3063" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9229150d91d581c627b04f16aea7203b30e9fd951eb4ee4c332ad8533ce1482a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x86501bec5b58e467e90bf16993dcc2645eb90c03c15e7d9cbcbeaac99d739d1c", - "network": "Cancun", + "lastblockhash": "0x71870cfb18c6c58d5935dcc5aa85a7b7d571d1a4342d7794fe01ba6043d494c8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e051600955", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -2768,14 +2326,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2793,6 +2343,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b1c24", @@ -2810,18 +2368,43 @@ }, "017-fork=Cancun-full_memory_copy": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0933cfae1dbcd901901aff0f6afd8d15dd684746d9191f8ffb59289dac95983b3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x933cfae1dbcd901901aff0f6afd8d15dd684746d9191f8ffb59289dac95983b3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2b3c1c84c459b6f6205e976b55b1406db435b6fffd804d69d0a8a76cb8daa396" + }, "blocks": [ { - "rlp": "0xf90309f9023fa0b451b7c2e3e244dfbbc0c01214d9a3bcbc258e591ea03423073e98ad7551ec3ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0512b9aa7f54c07c20ae4303472610dfc97470cb65036d9625ef944c824f5c1bea0e86dddb91fae1fe994bc3ab8e4978d740160c39379acc620031e8c356aad049ea0180cf594f1a83b21de97d78bf03290a1f788edb2797efab1838b2f4609952b57b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040abd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010025a04db41ca95165d19369124e948ab63c2c8ab33e4896a9518a8085249ce74a8c9aa03943c4c014508652f1e7af302102fa0b5184b1436cb9b310bfb9418d21958639c0c0", + "rlp": "0xf90309f9023fa02b3c1c84c459b6f6205e976b55b1406db435b6fffd804d69d0a8a76cb8daa396a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0088cf28cb562d7a859b3ee1272a34179932076bf14efebf7db083a6146c9142ea0e86dddb91fae1fe994bc3ab8e4978d740160c39379acc620031e8c356aad049ea0180cf594f1a83b21de97d78bf03290a1f788edb2797efab1838b2f4609952b57b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040abd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010025a04db41ca95165d19369124e948ab63c2c8ab33e4896a9518a8085249ce74a8c9aa03943c4c014508652f1e7af302102fa0b5184b1436cb9b310bfb9418d21958639c0c0", "blockHeader": { - "parentHash": "0xb451b7c2e3e244dfbbc0c01214d9a3bcbc258e591ea03423073e98ad7551ec3e", + "parentHash": "0x2b3c1c84c459b6f6205e976b55b1406db435b6fffd804d69d0a8a76cb8daa396", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x512b9aa7f54c07c20ae4303472610dfc97470cb65036d9625ef944c824f5c1be", + "stateRoot": "0x088cf28cb562d7a859b3ee1272a34179932076bf14efebf7db083a6146c9142e", "transactionsTrie": "0xe86dddb91fae1fe994bc3ab8e4978d740160c39379acc620031e8c356aad049e", "receiptTrie": "0x180cf594f1a83b21de97d78bf03290a1f788edb2797efab1838b2f4609952b57", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2838,33 +2421,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc48df8b2a684539eab8f1a5831052f0448b2af7ed9ba69e013ca4ae7d1f1fad2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb451b7c2e3e244dfbbc0c01214d9a3bcbc258e591ea03423073e98ad7551ec3e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x512b9aa7f54c07c20ae4303472610dfc97470cb65036d9625ef944c824f5c1be", - "receiptsRoot": "0x180cf594f1a83b21de97d78bf03290a1f788edb2797efab1838b2f4609952b57", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40abd", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc48df8b2a684539eab8f1a5831052f0448b2af7ed9ba69e013ca4ae7d1f1fad2", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010025a04db41ca95165d19369124e948ab63c2c8ab33e4896a9518a8085249ce74a8c9aa03943c4c014508652f1e7af302102fa0b5184b1436cb9b310bfb9418d21958639" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf0cbb2d66c25ea7cbd8c3839146d79852a194aa89ecc16e403944113d2474e02" }, "transactions": [ { @@ -2886,45 +2443,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb5e19a16882439cc2152a11870f9ae2b7c7c6aeba26724de8b8ba923c567de98", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb451b7c2e3e244dfbbc0c01214d9a3bcbc258e591ea03423073e98ad7551ec3e" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b5e19a16882439cc2152a11870f9ae2b7c7c6aeba26724de8b8ba923c567de98a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc48df8b2a684539eab8f1a5831052f0448b2af7ed9ba69e013ca4ae7d1f1fad2", - "network": "Cancun", + "lastblockhash": "0xf0cbb2d66c25ea7cbd8c3839146d79852a194aa89ecc16e403944113d2474e02", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e0516009556101e051600a55", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -2933,14 +2465,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2959,6 +2483,14 @@ "0x0a": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0c2037", @@ -2976,18 +2508,43 @@ }, "018-fork=Cancun-full_memory_copy_offset": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a051afd9d44725be19025ea2bc0ea5929db010081df7418ed121558dfebff1688fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x51afd9d44725be19025ea2bc0ea5929db010081df7418ed121558dfebff1688f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc2d369fb43f8df7588b881354138afd916ddcae859303d71ee11ca67f97b329b" + }, "blocks": [ { - "rlp": "0xf90309f9023fa0db9e305ab089d35e242a2553f5cd0c2f46eec9af9c7da6f0d1edcbd0f2ddf5d6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa010b5ff6daa4db49865c438f4ed3806e4b9b1bc2d5b1b41d4d9f51f96159efddfa08b89f6390d95ad8631d8b78f9e27ac1aeb89bd614d2511bae2da34074e383ecca01c3db086253dabca3bd3b42cd9fb1d1e1cb10316eaa21d0e5cc709dd6139d242b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040b068203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010026a092da99fc4acd63241ba92469f33aa24a72dadfd8e25ca62636d0c70a56cd134aa073d2184f9f3ac629b6083169d6f4433a6cbb97d583309963a78c190e99e8f9a2c0c0", + "rlp": "0xf90309f9023fa0c2d369fb43f8df7588b881354138afd916ddcae859303d71ee11ca67f97b329ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d2a58668764cb50c07378188829fde9ba61908b23d25b25868ffe515be6c1f4aa08b89f6390d95ad8631d8b78f9e27ac1aeb89bd614d2511bae2da34074e383ecca01c3db086253dabca3bd3b42cd9fb1d1e1cb10316eaa21d0e5cc709dd6139d242b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040b068203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010026a092da99fc4acd63241ba92469f33aa24a72dadfd8e25ca62636d0c70a56cd134aa073d2184f9f3ac629b6083169d6f4433a6cbb97d583309963a78c190e99e8f9a2c0c0", "blockHeader": { - "parentHash": "0xdb9e305ab089d35e242a2553f5cd0c2f46eec9af9c7da6f0d1edcbd0f2ddf5d6", + "parentHash": "0xc2d369fb43f8df7588b881354138afd916ddcae859303d71ee11ca67f97b329b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x10b5ff6daa4db49865c438f4ed3806e4b9b1bc2d5b1b41d4d9f51f96159efddf", + "stateRoot": "0xd2a58668764cb50c07378188829fde9ba61908b23d25b25868ffe515be6c1f4a", "transactionsTrie": "0x8b89f6390d95ad8631d8b78f9e27ac1aeb89bd614d2511bae2da34074e383ecc", "receiptTrie": "0x1c3db086253dabca3bd3b42cd9fb1d1e1cb10316eaa21d0e5cc709dd6139d242", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3004,33 +2561,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe51b22d04fcc7b35f8244bcac8394c04931f739c1346bec5ff8b31580eff0314" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdb9e305ab089d35e242a2553f5cd0c2f46eec9af9c7da6f0d1edcbd0f2ddf5d6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x10b5ff6daa4db49865c438f4ed3806e4b9b1bc2d5b1b41d4d9f51f96159efddf", - "receiptsRoot": "0x1c3db086253dabca3bd3b42cd9fb1d1e1cb10316eaa21d0e5cc709dd6139d242", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40b06", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe51b22d04fcc7b35f8244bcac8394c04931f739c1346bec5ff8b31580eff0314", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010026a092da99fc4acd63241ba92469f33aa24a72dadfd8e25ca62636d0c70a56cd134aa073d2184f9f3ac629b6083169d6f4433a6cbb97d583309963a78c190e99e8f9a2" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xff9ecdc0698771e866690850633d305c4113d75d757800d99d9403bfcf6ecdda" }, "transactions": [ { @@ -3052,45 +2583,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8bad0d21b938f1a90f45f3672aa092bf918234fe7889f7e6306d82fcd0ba10bf", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdb9e305ab089d35e242a2553f5cd0c2f46eec9af9c7da6f0d1edcbd0f2ddf5d6" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08bad0d21b938f1a90f45f3672aa092bf918234fe7889f7e6306d82fcd0ba10bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe51b22d04fcc7b35f8244bcac8394c04931f739c1346bec5ff8b31580eff0314", - "network": "Cancun", + "lastblockhash": "0xff9ecdc0698771e866690850633d305c4113d75d757800d99d9403bfcf6ecdda", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e0516009556102e051600a55", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -3099,14 +2605,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3125,6 +2623,14 @@ "0x0a": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0c2112", @@ -3142,18 +2648,43 @@ }, "019-fork=Cancun-full_memory_clean": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0933cfae1dbcd901901aff0f6afd8d15dd684746d9191f8ffb59289dac95983b3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x933cfae1dbcd901901aff0f6afd8d15dd684746d9191f8ffb59289dac95983b3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2b3c1c84c459b6f6205e976b55b1406db435b6fffd804d69d0a8a76cb8daa396" + }, "blocks": [ { - "rlp": "0xf90309f9023fa0b451b7c2e3e244dfbbc0c01214d9a3bcbc258e591ea03423073e98ad7551ec3ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ec9043d4a967bb437589e535dbc6f22a1494175f9adea2fb3872470503273767a06a9f55b8cbf21bde7f6be0f223949bd0052cced8e24519af666f6e2dc4feb39da0bd7f16327a818671d961f4e994a11bc589dc1f8f03a8d1276bf99b1befd6f8e4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083014f218203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010025a0c5ab9d51c75d6662a950c5f832a5d11ce12a0b73a4836a94ed63c88cdb29697ea04e0e2cd05219129c0bb8c655b6e4e009d9146325b2ed5bd14bc4f759cc5ba2e1c0c0", + "rlp": "0xf90309f9023fa02b3c1c84c459b6f6205e976b55b1406db435b6fffd804d69d0a8a76cb8daa396a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055678a4e7206a2e4d9a15718d62d853860c6d5098b085a50554971b95f241a27a06a9f55b8cbf21bde7f6be0f223949bd0052cced8e24519af666f6e2dc4feb39da0bd7f16327a818671d961f4e994a11bc589dc1f8f03a8d1276bf99b1befd6f8e4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083014f218203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010025a0c5ab9d51c75d6662a950c5f832a5d11ce12a0b73a4836a94ed63c88cdb29697ea04e0e2cd05219129c0bb8c655b6e4e009d9146325b2ed5bd14bc4f759cc5ba2e1c0c0", "blockHeader": { - "parentHash": "0xb451b7c2e3e244dfbbc0c01214d9a3bcbc258e591ea03423073e98ad7551ec3e", + "parentHash": "0x2b3c1c84c459b6f6205e976b55b1406db435b6fffd804d69d0a8a76cb8daa396", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xec9043d4a967bb437589e535dbc6f22a1494175f9adea2fb3872470503273767", + "stateRoot": "0x55678a4e7206a2e4d9a15718d62d853860c6d5098b085a50554971b95f241a27", "transactionsTrie": "0x6a9f55b8cbf21bde7f6be0f223949bd0052cced8e24519af666f6e2dc4feb39d", "receiptTrie": "0xbd7f16327a818671d961f4e994a11bc589dc1f8f03a8d1276bf99b1befd6f8e4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3170,33 +2701,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x40a90270cdcc0f3359f6563b619422e8bbbdf00e741973c0b4743aa30e406238" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb451b7c2e3e244dfbbc0c01214d9a3bcbc258e591ea03423073e98ad7551ec3e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xec9043d4a967bb437589e535dbc6f22a1494175f9adea2fb3872470503273767", - "receiptsRoot": "0xbd7f16327a818671d961f4e994a11bc589dc1f8f03a8d1276bf99b1befd6f8e4", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x14f21", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x40a90270cdcc0f3359f6563b619422e8bbbdf00e741973c0b4743aa30e406238", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010025a0c5ab9d51c75d6662a950c5f832a5d11ce12a0b73a4836a94ed63c88cdb29697ea04e0e2cd05219129c0bb8c655b6e4e009d9146325b2ed5bd14bc4f759cc5ba2e1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x347a3534317ca39afd3252b3e99f139cfc8d0d701523e7f8c2cd40a885ce37ce" }, "transactions": [ { @@ -3218,45 +2723,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb5e19a16882439cc2152a11870f9ae2b7c7c6aeba26724de8b8ba923c567de98", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb451b7c2e3e244dfbbc0c01214d9a3bcbc258e591ea03423073e98ad7551ec3e" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b5e19a16882439cc2152a11870f9ae2b7c7c6aeba26724de8b8ba923c567de98a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x40a90270cdcc0f3359f6563b619422e8bbbdf00e741973c0b4743aa30e406238", - "network": "Cancun", + "lastblockhash": "0x347a3534317ca39afd3252b3e99f139cfc8d0d701523e7f8c2cd40a885ce37ce", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e0516009556101e051600a55", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -3265,14 +2745,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3282,6 +2754,14 @@ "0x01": "0xd5c44f659751a819616c58c9efe38e80f2b84cf621036da99c019bbe4f1fb647" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x03ed63", @@ -3299,18 +2779,43 @@ }, "020-fork=Cancun-out_of_bounds_memory_extension": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e521f5fa3f2a5f1abb54a9aafe6d39dd28309bf62164236803074f5d471e8a9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9e521f5fa3f2a5f1abb54a9aafe6d39dd28309bf62164236803074f5d471e8a9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9f" + }, "blocks": [ { - "rlp": "0xf90309f9023fa03128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bafcbf45157c1de02a75b0fac4eb37fa086be585e123f9b605aac790eaa76c06a09901387fc8f393d403883c75b1ef982f82b5f68b3c9fe4d4d62e9f3c3df1febca023464e3bd50f5361c14668417d73949e1f87e89d8f3272adbb7e7b5ffa482543b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303bcb98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000126a09a3efe672cdbd478afb173e76a497daa9162e5bdd41ab5ac9709a00c344516d0a05f712c7f9cb813f05dcf90672d2592d4834438a012ab4cf7cc4f398ce5a7fb76c0c0", + "rlp": "0xf90309f9023fa0bf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bd6851741fd4e8c56939017d03b19ec5455688f43e801343b455390b8d332f95a09901387fc8f393d403883c75b1ef982f82b5f68b3c9fe4d4d62e9f3c3df1febca023464e3bd50f5361c14668417d73949e1f87e89d8f3272adbb7e7b5ffa482543b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303bcb98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8c3f8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000126a09a3efe672cdbd478afb173e76a497daa9162e5bdd41ab5ac9709a00c344516d0a05f712c7f9cb813f05dcf90672d2592d4834438a012ab4cf7cc4f398ce5a7fb76c0c0", "blockHeader": { - "parentHash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d", + "parentHash": "0xbf93e9db18dca1e059bcc685b24c54edd2ea7c4be0411c8561610f17805ccb9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbafcbf45157c1de02a75b0fac4eb37fa086be585e123f9b605aac790eaa76c06", + "stateRoot": "0xbd6851741fd4e8c56939017d03b19ec5455688f43e801343b455390b8d332f95", "transactionsTrie": "0x9901387fc8f393d403883c75b1ef982f82b5f68b3c9fe4d4d62e9f3c3df1febc", "receiptTrie": "0x23464e3bd50f5361c14668417d73949e1f87e89d8f3272adbb7e7b5ffa482543", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3327,33 +2832,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdfd20c3ef620889a12b5b5df3f79d1ccd330ea6ace11d993bcb4f19eb16e9009" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbafcbf45157c1de02a75b0fac4eb37fa086be585e123f9b605aac790eaa76c06", - "receiptsRoot": "0x23464e3bd50f5361c14668417d73949e1f87e89d8f3272adbb7e7b5ffa482543", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3bcb9", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xdfd20c3ef620889a12b5b5df3f79d1ccd330ea6ace11d993bcb4f19eb16e9009", - "transactions": [ - "0xf8c1800a830f424094000000000000000000000000000000000000010080b86000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000126a09a3efe672cdbd478afb173e76a497daa9162e5bdd41ab5ac9709a00c344516d0a05f712c7f9cb813f05dcf90672d2592d4834438a012ab4cf7cc4f398ce5a7fb76" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd798ad786a71564f71b776228ca2af80e30941fcd916bc28d4df4f76301f3931" }, "transactions": [ { @@ -3375,45 +2854,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5f2d6970aa94d94ba171741ea28b7a8bc22e9277ebfd05a592022dff6b31fa6c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3128af94090bcfe369b87b74feabe0c5c9111902e5f4d4c909cf27b999c2739d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05f2d6970aa94d94ba171741ea28b7a8bc22e9277ebfd05a592022dff6b31fa6ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdfd20c3ef620889a12b5b5df3f79d1ccd330ea6ace11d993bcb4f19eb16e9009", - "network": "Cancun", + "lastblockhash": "0xd798ad786a71564f71b776228ca2af80e30941fcd916bc28d4df4f76301f3931", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x7f000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f6000527f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f6020527f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f6040527f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f6060527f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f6080527fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebf60a0527fc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedf60c0527fe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff60e0526040356020356000355e596000555960002060015560005160025560205160035560405160045560605160055560805160065560a05160075560c05160085560e05160095561010051600a55", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -3422,14 +2876,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3447,6 +2893,14 @@ "0x09": "0xe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b362b", diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json index f8080a135a9..090d1b291b5 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_contexts/no_memory_corruption_on_upper_call_stack_levels.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-opcode=CALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03551599d2990341798dcfdfe6659d3a02ced84ebc003d31fd3ac6e71d4a4aa53a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3551599d2990341798dcfdfe6659d3a02ced84ebc003d31fd3ac6e71d4a4aa53", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4af5c30f6dcd8e1471f273588794be3f0fa15018c50496e96e2ebbfab2653c55" + }, "blocks": [ { - "rlp": "0xf902a8f9023fa0bf0aabb01d7148a0f60ab64a4aee8688eb2c9ec0970601042a3cacb0670b1a58a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b5d48b3a383abb319a3150ee8b23a58f18016be6c42401b7d1a638386dd54851a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0b8b019230c10c62615a0cced76bf1cda1bef68e896267dcb0f4dd3af9673f895b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830bd7a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "rlp": "0xf902a8f9023fa04af5c30f6dcd8e1471f273588794be3f0fa15018c50496e96e2ebbfab2653c55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c72b723d015c755ec120c5e10912b200b8b9eb00f00b6fcb56d4aa210a8b3cbba0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0b8b019230c10c62615a0cced76bf1cda1bef68e896267dcb0f4dd3af9673f895b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830bd7a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0xbf0aabb01d7148a0f60ab64a4aee8688eb2c9ec0970601042a3cacb0670b1a58", + "parentHash": "0x4af5c30f6dcd8e1471f273588794be3f0fa15018c50496e96e2ebbfab2653c55", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb5d48b3a383abb319a3150ee8b23a58f18016be6c42401b7d1a638386dd54851", + "stateRoot": "0xc72b723d015c755ec120c5e10912b200b8b9eb00f00b6fcb56d4aa210a8b3cbb", "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", "receiptTrie": "0xb8b019230c10c62615a0cced76bf1cda1bef68e896267dcb0f4dd3af9673f895", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x10975e8bfff95962e7642f1c4cc47c94865d7b76fde4fbaa86187c78d73f59ee" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbf0aabb01d7148a0f60ab64a4aee8688eb2c9ec0970601042a3cacb0670b1a58", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb5d48b3a383abb319a3150ee8b23a58f18016be6c42401b7d1a638386dd54851", - "receiptsRoot": "0xb8b019230c10c62615a0cced76bf1cda1bef68e896267dcb0f4dd3af9673f895", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xbd7a1", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x10975e8bfff95962e7642f1c4cc47c94865d7b76fde4fbaa86187c78d73f59ee", - "transactions": [ - "0xf860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x61f8162bc764a89d4de3a8268d0cc308f0d65c9a5d57c27e66b0de462353ec1d" }, "transactions": [ { @@ -77,39 +76,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc24266b354e31738fa8107a04bb5c5d6e256b80b658038f7627b2af6c8e587c9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbf0aabb01d7148a0f60ab64a4aee8688eb2c9ec0970601042a3cacb0670b1a58" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c24266b354e31738fa8107a04bb5c5d6e256b80b658038f7627b2af6c8e587c9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x10975e8bfff95962e7642f1c4cc47c94865d7b76fde4fbaa86187c78d73f59ee", - "network": "Cancun", + "lastblockhash": "0x61f8162bc764a89d4de3a8268d0cc308f0d65c9a5d57c27e66b0de462353ec1d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -122,6 +90,12 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e600162030d405560006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -130,14 +104,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -186,6 +152,14 @@ "0x030d40": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x2386e3", @@ -203,18 +177,43 @@ }, "001-fork=Cancun-opcode=DELEGATECALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a026f9658a223ee3f58a376d782e962ce9a0cc889e8ed64e549fdd1ae86bab932fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x26f9658a223ee3f58a376d782e962ce9a0cc889e8ed64e549fdd1ae86bab932f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9969c5eb2eddc45a7f0e52445c15358751dedba875306331659fb8313fe52661" + }, "blocks": [ { - "rlp": "0xf902a8f9023fa024a9557c651245ef813294e379ba5fee8652e8f87ef1a7ad38fdb4bb7307c403a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05d582304f02620b86d1a9b98be559d90d56afd45095efe7065c9dd6f0d9ee04ca0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0cc278770fac785cab167dcc652df5fee13e8f3eec8437d084ff1fb522ab94520b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830bd79e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "rlp": "0xf902a8f9023fa09969c5eb2eddc45a7f0e52445c15358751dedba875306331659fb8313fe52661a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08ecc4622c38476154b8c71a4954d669b4b31014312f3d879385b1ddd0c2603eaa0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0cc278770fac785cab167dcc652df5fee13e8f3eec8437d084ff1fb522ab94520b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830bd79e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0x24a9557c651245ef813294e379ba5fee8652e8f87ef1a7ad38fdb4bb7307c403", + "parentHash": "0x9969c5eb2eddc45a7f0e52445c15358751dedba875306331659fb8313fe52661", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5d582304f02620b86d1a9b98be559d90d56afd45095efe7065c9dd6f0d9ee04c", + "stateRoot": "0x8ecc4622c38476154b8c71a4954d669b4b31014312f3d879385b1ddd0c2603ea", "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", "receiptTrie": "0xcc278770fac785cab167dcc652df5fee13e8f3eec8437d084ff1fb522ab94520", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -231,33 +230,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x70887ecfd06166a2a787ed9f4baa753ed81b4fa9829615f4e034d22bc115be38" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x24a9557c651245ef813294e379ba5fee8652e8f87ef1a7ad38fdb4bb7307c403", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5d582304f02620b86d1a9b98be559d90d56afd45095efe7065c9dd6f0d9ee04c", - "receiptsRoot": "0xcc278770fac785cab167dcc652df5fee13e8f3eec8437d084ff1fb522ab94520", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xbd79e", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x70887ecfd06166a2a787ed9f4baa753ed81b4fa9829615f4e034d22bc115be38", - "transactions": [ - "0xf860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8a23179805c1b77f2019485854776f624d7a8cce41883c26af5b99945484f3e1" }, "transactions": [ { @@ -279,39 +252,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1a82ed17dfc4f49e93d1a02b849b613777100c29dc7cadd76a1dde558120bfde", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x24a9557c651245ef813294e379ba5fee8652e8f87ef1a7ad38fdb4bb7307c403" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01a82ed17dfc4f49e93d1a02b849b613777100c29dc7cadd76a1dde558120bfdea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x70887ecfd06166a2a787ed9f4baa753ed81b4fa9829615f4e034d22bc115be38", - "network": "Cancun", + "lastblockhash": "0x8a23179805c1b77f2019485854776f624d7a8cce41883c26af5b99945484f3e1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -324,6 +266,12 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e600162030d405560006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -332,14 +280,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -387,6 +327,14 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e600162030d405560006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x2386da", @@ -404,18 +352,43 @@ }, "002-fork=Cancun-opcode=STATICCALL": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00eca9a35b4cd6d5c5d97f5659a06ab0ea8a8b1723117f822dbbc0a137e1d8288a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0eca9a35b4cd6d5c5d97f5659a06ab0ea8a8b1723117f822dbbc0a137e1d8288", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3bf6bf568c6b297656f04f3e2def9d0cd52808f87171b36b1c1775d5db6b36c9" + }, "blocks": [ { - "rlp": "0xf902a8f9023fa00841a947bd81325fb80f3554865991f99763dda8568e1c7d654d688bfb06db27a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ed9e06152c123522c0c9fd6b795b78a0246ec12515978c334546158758b818d9a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0bc1771d8b1cff02a4074fb5edc7396bf866121581064f6e2b4d74a63a71b275fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830b81448203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "rlp": "0xf902a8f9023fa03bf6bf568c6b297656f04f3e2def9d0cd52808f87171b36b1c1775d5db6b36c9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a829912a7e5f032398c8cdaca005bcd51d9ee5a39929ce4cae7e380e0c3e551ca0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0bc1771d8b1cff02a4074fb5edc7396bf866121581064f6e2b4d74a63a71b275fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830b81448203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0x0841a947bd81325fb80f3554865991f99763dda8568e1c7d654d688bfb06db27", + "parentHash": "0x3bf6bf568c6b297656f04f3e2def9d0cd52808f87171b36b1c1775d5db6b36c9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xed9e06152c123522c0c9fd6b795b78a0246ec12515978c334546158758b818d9", + "stateRoot": "0xa829912a7e5f032398c8cdaca005bcd51d9ee5a39929ce4cae7e380e0c3e551c", "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", "receiptTrie": "0xbc1771d8b1cff02a4074fb5edc7396bf866121581064f6e2b4d74a63a71b275f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -432,33 +405,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x14e939587c209a247ebdd97973daaf621e3d3ef4309b84248fa0a5f3c777b946" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0841a947bd81325fb80f3554865991f99763dda8568e1c7d654d688bfb06db27", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xed9e06152c123522c0c9fd6b795b78a0246ec12515978c334546158758b818d9", - "receiptsRoot": "0xbc1771d8b1cff02a4074fb5edc7396bf866121581064f6e2b4d74a63a71b275f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb8144", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x14e939587c209a247ebdd97973daaf621e3d3ef4309b84248fa0a5f3c777b946", - "transactions": [ - "0xf860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd3c05cdc323092b9345097b0268565ec9959a46341b347523c7cf598b076e203" }, "transactions": [ { @@ -480,39 +427,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x17dd6cde8b9e4ed0a1b0603372f21eb89c71283e9454d17a9790939b83c357f3", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0841a947bd81325fb80f3554865991f99763dda8568e1c7d654d688bfb06db27" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a017dd6cde8b9e4ed0a1b0603372f21eb89c71283e9454d17a9790939b83c357f3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x14e939587c209a247ebdd97973daaf621e3d3ef4309b84248fa0a5f3c777b946", - "network": "Cancun", + "lastblockhash": "0xd3c05cdc323092b9345097b0268565ec9959a46341b347523c7cf598b076e203", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -525,6 +441,12 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e60006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -533,14 +455,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -587,6 +501,14 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e60006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x2283cc", @@ -604,18 +526,43 @@ }, "003-fork=Cancun-opcode=CALLCODE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0337703a78e276b6a985a8e663c37b898db21812462a5c91ee45da80604b36016a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x337703a78e276b6a985a8e663c37b898db21812462a5c91ee45da80604b36016", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe96e4530b45b5f75b47d0e699673b844243cd5f5674118d5aae5173d7ad709cf" + }, "blocks": [ { - "rlp": "0xf902a8f9023fa04ed211000ae8d34604719301bdacab348043873a514ff95a67da4f6dd012c055a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07d2bc5068d8b9d9b54c816ad1a533cb438a104a40f197fb465cef9c24f24f9e0a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0b8b019230c10c62615a0cced76bf1cda1bef68e896267dcb0f4dd3af9673f895b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830bd7a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "rlp": "0xf902a8f9023fa0e96e4530b45b5f75b47d0e699673b844243cd5f5674118d5aae5173d7ad709cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c043e11d98279cef17a49ab75f55146d968d896ae3f28dc98a26992d468196bba0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0b8b019230c10c62615a0cced76bf1cda1bef68e896267dcb0f4dd3af9673f895b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830bd7a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0x4ed211000ae8d34604719301bdacab348043873a514ff95a67da4f6dd012c055", + "parentHash": "0xe96e4530b45b5f75b47d0e699673b844243cd5f5674118d5aae5173d7ad709cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7d2bc5068d8b9d9b54c816ad1a533cb438a104a40f197fb465cef9c24f24f9e0", + "stateRoot": "0xc043e11d98279cef17a49ab75f55146d968d896ae3f28dc98a26992d468196bb", "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", "receiptTrie": "0xb8b019230c10c62615a0cced76bf1cda1bef68e896267dcb0f4dd3af9673f895", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -632,33 +579,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd92b4ecea2f63d268dd99172b938f3b7f47dabe713b6c2e3e2eb7a247d51273e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ed211000ae8d34604719301bdacab348043873a514ff95a67da4f6dd012c055", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7d2bc5068d8b9d9b54c816ad1a533cb438a104a40f197fb465cef9c24f24f9e0", - "receiptsRoot": "0xb8b019230c10c62615a0cced76bf1cda1bef68e896267dcb0f4dd3af9673f895", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xbd7a1", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd92b4ecea2f63d268dd99172b938f3b7f47dabe713b6c2e3e2eb7a247d51273e", - "transactions": [ - "0xf860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x01ec6a8ac26ae3b90a667c64e86731f324e552e2273f38eed2b6dd252b582042" }, "transactions": [ { @@ -680,39 +601,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x6673459811bcc8301c9b3d5e80c3bb55306934a732e2762f50a07b0a8cbb498a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ed211000ae8d34604719301bdacab348043873a514ff95a67da4f6dd012c055" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06673459811bcc8301c9b3d5e80c3bb55306934a732e2762f50a07b0a8cbb498aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd92b4ecea2f63d268dd99172b938f3b7f47dabe713b6c2e3e2eb7a247d51273e", - "network": "Cancun", + "lastblockhash": "0x01ec6a8ac26ae3b90a667c64e86731f324e552e2273f38eed2b6dd252b582042", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -725,6 +615,12 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e600162030d405560006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -733,14 +629,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -788,6 +676,14 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e600162030d405560006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x2386e3", @@ -805,18 +701,43 @@ }, "004-fork=Cancun-opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0294ff98c3a876b27b3a1ae35cd450aef22fc89676e31e765beef715c286ca0e4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x294ff98c3a876b27b3a1ae35cd450aef22fc89676e31e765beef715c286ca0e4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8dde2036505880a3ee112db8af12174528a6363f7e654b76f4a0c2e1c7de6cea" + }, "blocks": [ { - "rlp": "0xf902a8f9023fa035a931f3f8ce9b1665d73c8ecde1da723e6adb7b4177ea63e96d4b2613bea714a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd0d91899b99d327f094738f552906449809c3b337165a7ca4e62df94bbd5dd8a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0b2a44bdc3967524deea44be194bfb35140b2b58d12a19272443ec6f88e2159beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830c4a728203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "rlp": "0xf902a8f9023fa08dde2036505880a3ee112db8af12174528a6363f7e654b76f4a0c2e1c7de6ceaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa093fd743f1a724e63fc3e07fb27f60d85dbd71533ed92c2608c06cecdac055fe9a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da0b2a44bdc3967524deea44be194bfb35140b2b58d12a19272443ec6f88e2159beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830c4a728203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0x35a931f3f8ce9b1665d73c8ecde1da723e6adb7b4177ea63e96d4b2613bea714", + "parentHash": "0x8dde2036505880a3ee112db8af12174528a6363f7e654b76f4a0c2e1c7de6cea", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd0d91899b99d327f094738f552906449809c3b337165a7ca4e62df94bbd5dd8", + "stateRoot": "0x93fd743f1a724e63fc3e07fb27f60d85dbd71533ed92c2608c06cecdac055fe9", "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", "receiptTrie": "0xb2a44bdc3967524deea44be194bfb35140b2b58d12a19272443ec6f88e2159be", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -833,33 +754,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x15621a2a50d400f4246cfa8cad2f233c0b3d25d3d43ac3e10983c78d685dacfe" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x35a931f3f8ce9b1665d73c8ecde1da723e6adb7b4177ea63e96d4b2613bea714", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcd0d91899b99d327f094738f552906449809c3b337165a7ca4e62df94bbd5dd8", - "receiptsRoot": "0xb2a44bdc3967524deea44be194bfb35140b2b58d12a19272443ec6f88e2159be", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc4a72", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x15621a2a50d400f4246cfa8cad2f233c0b3d25d3d43ac3e10983c78d685dacfe", - "transactions": [ - "0xf860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1e44682d716b5a6066bce6cd90f1e7bdc84bea239ae078c204d7471b8e2b8fa7" }, "transactions": [ { @@ -881,39 +776,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5d8053ee6b6e1bdba5d86a8caeee9306c66c84921801e5707ac1768a0aac9289", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x35a931f3f8ce9b1665d73c8ecde1da723e6adb7b4177ea63e96d4b2613bea714" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05d8053ee6b6e1bdba5d86a8caeee9306c66c84921801e5707ac1768a0aac9289a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x15621a2a50d400f4246cfa8cad2f233c0b3d25d3d43ac3e10983c78d685dacfe", - "network": "Cancun", + "lastblockhash": "0x1e44682d716b5a6066bce6cd90f1e7bdc84bea239ae078c204d7471b8e2b8fa7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -926,6 +790,12 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e600162030d405560006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -934,14 +804,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -988,6 +850,14 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e600162030d405560006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x24df56", @@ -1013,18 +883,43 @@ }, "005-fork=Cancun-opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02ca15e500e0bd8812d0292314f4bf1f1d71b8e6397e3dd7e84a52987e02dd54da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2ca15e500e0bd8812d0292314f4bf1f1d71b8e6397e3dd7e84a52987e02dd54d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8bc77fcb407b905580effc5802c2558c67af58cca748a58b7a79439c11320bcf" + }, "blocks": [ { - "rlp": "0xf902a8f9023fa023470ebb5c76f8385622682a2f5bcbbc02ddd38a8550696a53dd247181eddda2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0603595bad19478d1ae0a08dffd634155b470a0301b4d621b69f07dcec1840a1ea0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da020d14a8133d3233351441b40f67ae1815e2072440e38d68509c1604a84376afab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830c4a818203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", + "rlp": "0xf902a8f9023fa08bc77fcb407b905580effc5802c2558c67af58cca748a58b7a79439c11320bcfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0912957e8bc48b1398bfaf6e608490d2840a20b4c1f4b096ae89665e5cfa35e93a0578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79da020d14a8133d3233351441b40f67ae1815e2072440e38d68509c1604a84376afab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830c4a818203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164cec0c0", "blockHeader": { - "parentHash": "0x23470ebb5c76f8385622682a2f5bcbbc02ddd38a8550696a53dd247181eddda2", + "parentHash": "0x8bc77fcb407b905580effc5802c2558c67af58cca748a58b7a79439c11320bcf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x603595bad19478d1ae0a08dffd634155b470a0301b4d621b69f07dcec1840a1e", + "stateRoot": "0x912957e8bc48b1398bfaf6e608490d2840a20b4c1f4b096ae89665e5cfa35e93", "transactionsTrie": "0x578602b2b7e3a3291c3eefca3a08bc13c0d194f9845a39b6f3bcf843d9fed79d", "receiptTrie": "0x20d14a8133d3233351441b40f67ae1815e2072440e38d68509c1604a84376afa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1041,33 +936,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x09357fe5727e8755bd8eaecfee1f62b6fc07425afea7697eb4ff5d992aeb6b24" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x23470ebb5c76f8385622682a2f5bcbbc02ddd38a8550696a53dd247181eddda2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x603595bad19478d1ae0a08dffd634155b470a0301b4d621b69f07dcec1840a1e", - "receiptsRoot": "0x20d14a8133d3233351441b40f67ae1815e2072440e38d68509c1604a84376afa", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc4a81", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x09357fe5727e8755bd8eaecfee1f62b6fc07425afea7697eb4ff5d992aeb6b24", - "transactions": [ - "0xf860800a830f4240940000000000000000000000000000000000000100808025a06ed8419ab28c42e73d2f147ebdddfd5de4fb1eb6b4f332d0c5fab55da6ee7eaaa05930cef304a571952dbcc5d64ddb799bba262cfe26fcdded394288f1999164ce" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfaf5014f8f97979f71dfa4c1aa767b5d5846d7a4e748dcb29429d14347d03f90" }, "transactions": [ { @@ -1089,39 +958,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x57bc9a00403ad6deba29160c610068d7dcb4681e74e7ab77692af9a676361e14", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x23470ebb5c76f8385622682a2f5bcbbc02ddd38a8550696a53dd247181eddda2" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a057bc9a00403ad6deba29160c610068d7dcb4681e74e7ab77692af9a676361e14a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x09357fe5727e8755bd8eaecfee1f62b6fc07425afea7697eb4ff5d992aeb6b24", - "network": "Cancun", + "lastblockhash": "0xfaf5014f8f97979f71dfa4c1aa767b5d5846d7a4e748dcb29429d14347d03f90", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1134,6 +972,12 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e600162030d405560006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", @@ -1142,14 +986,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -1196,6 +1032,14 @@ "code": "0x6001600160005e6001600060015e6020600060015e61040061040060005e600161080060005e600160006108005e600162030d405560006000f3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x24df83", diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json index 1ade184325d..c2c6dcfc540 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_huge_memory_expansion.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-from_existent_memory-successful=False--max_dest_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a085aa13815552015ad05c1ce69b3da066f479b8215a3aa864a0dcadeed6b88327a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x85aa13815552015ad05c1ce69b3da066f479b8215a3aa864a0dcadeed6b88327", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2776b6c22dd5e112f1a4b580de388bb4d39245996c4779133101eec4c03e6d47" + }, "blocks": [ { - "rlp": "0xf903b5f90240a02e721cb5fd95b8cb51123fd301f14e621586cabda984c90f76d5b02821df4001a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09445801445c156812e611e0a013f0dc39f9fb9168742829db3a6528fe9fe1900a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", + "rlp": "0xf903b5f90240a02776b6c22dd5e112f1a4b580de388bb4d39245996c4779133101eec4c03e6d47a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a0a1976f9bddafc3843e53b9510b66992c401f2ead89626affb8efa34e03deaaa0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", "blockHeader": { - "parentHash": "0x2e721cb5fd95b8cb51123fd301f14e621586cabda984c90f76d5b02821df4001", + "parentHash": "0x2776b6c22dd5e112f1a4b580de388bb4d39245996c4779133101eec4c03e6d47", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9445801445c156812e611e0a013f0dc39f9fb9168742829db3a6528fe9fe1900", + "stateRoot": "0xa0a1976f9bddafc3843e53b9510b66992c401f2ead89626affb8efa34e03deaa", "transactionsTrie": "0xa22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610f", "receiptTrie": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x949a55dcad2387215a00663707155557555a0402f683c9b4a0f942f47874c1bc" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2e721cb5fd95b8cb51123fd301f14e621586cabda984c90f76d5b02821df4001", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9445801445c156812e611e0a013f0dc39f9fb9168742829db3a6528fe9fe1900", - "receiptsRoot": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6182", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x949a55dcad2387215a00663707155557555a0402f683c9b4a0f942f47874c1bc", - "transactions": [ - "0x02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbda" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8aa935a1125814d5836f94b52fb80161629e394ccd05da4f644f4a6a4ef08dc7" }, "transactions": [ { @@ -79,39 +78,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x20a258e171315f90f15c210fbf4938d3ec4ac05e4a80bcbbd5d01cc09d699042", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2e721cb5fd95b8cb51123fd301f14e621586cabda984c90f76d5b02821df4001" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a020a258e171315f90f15c210fbf4938d3ec4ac05e4a80bcbbd5d01cc09d699042a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x949a55dcad2387215a00663707155557555a0402f683c9b4a0f942f47874c1bc", - "network": "Cancun", + "lastblockhash": "0x8aa935a1125814d5836f94b52fb80161629e394ccd05da4f644f4a6a4ef08dc7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -124,6 +92,12 @@ "code": "0x36600060003760006000600160007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -132,14 +106,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -154,6 +120,14 @@ "code": "0x36600060003760006000600160007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47c72", @@ -165,18 +139,43 @@ }, "001-fork=Cancun-from_existent_memory-successful=False--max_dest_minus_one_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e92f4eb5e4139e5f61f3125021ced48fdfc9b0e51238a6eb68539278d33c93b9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe92f4eb5e4139e5f61f3125021ced48fdfc9b0e51238a6eb68539278d33c93b9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4dea81f7b4eb86ca0388e0aa38fecc97b5dc3afaf696a3c58a8c6bcc4ab20d8c" + }, "blocks": [ { - "rlp": "0xf903b5f90240a02569b65653d01c9252541e0f2288e8b9c48ec6a9ba6ed07aad9e2cfeda870ab3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09f6837e1d18367aa3363e44b0b03e9920706a8c059be811af7455384bdb0e5daa0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", + "rlp": "0xf903b5f90240a04dea81f7b4eb86ca0388e0aa38fecc97b5dc3afaf696a3c58a8c6bcc4ab20d8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa083334ca284a30224dbc3b3267525addbfb934e6de7ae3274f7f37cf8239948e1a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", "blockHeader": { - "parentHash": "0x2569b65653d01c9252541e0f2288e8b9c48ec6a9ba6ed07aad9e2cfeda870ab3", + "parentHash": "0x4dea81f7b4eb86ca0388e0aa38fecc97b5dc3afaf696a3c58a8c6bcc4ab20d8c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9f6837e1d18367aa3363e44b0b03e9920706a8c059be811af7455384bdb0e5da", + "stateRoot": "0x83334ca284a30224dbc3b3267525addbfb934e6de7ae3274f7f37cf8239948e1", "transactionsTrie": "0xa22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610f", "receiptTrie": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -193,33 +192,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x691ba8d4cdaf71a843c212e29db1b3c3950619e0e1aebdff67c24758efb907f8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2569b65653d01c9252541e0f2288e8b9c48ec6a9ba6ed07aad9e2cfeda870ab3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9f6837e1d18367aa3363e44b0b03e9920706a8c059be811af7455384bdb0e5da", - "receiptsRoot": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6182", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x691ba8d4cdaf71a843c212e29db1b3c3950619e0e1aebdff67c24758efb907f8", - "transactions": [ - "0x02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbda" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbe063ecf9bc53e91993f0ae27390f6524b8de93b323f96ca24f31aaf68e0234a" }, "transactions": [ { @@ -243,39 +216,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x613fbdca7657329d4fdd05885c27173dc79090214c01a693def767cff814e4d6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2569b65653d01c9252541e0f2288e8b9c48ec6a9ba6ed07aad9e2cfeda870ab3" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0613fbdca7657329d4fdd05885c27173dc79090214c01a693def767cff814e4d6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x691ba8d4cdaf71a843c212e29db1b3c3950619e0e1aebdff67c24758efb907f8", - "network": "Cancun", + "lastblockhash": "0xbe063ecf9bc53e91993f0ae27390f6524b8de93b323f96ca24f31aaf68e0234a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -288,6 +230,12 @@ "code": "0x36600060003760006000600160007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -296,14 +244,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -318,6 +258,14 @@ "code": "0x36600060003760006000600160007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47c72", @@ -329,18 +277,43 @@ }, "002-fork=Cancun-from_existent_memory-successful=False--half_max_dest_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c867ac7c196ef82159540bde7d60083fbd7831f0a492b2384b35f14beb8d35c9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc867ac7c196ef82159540bde7d60083fbd7831f0a492b2384b35f14beb8d35c9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7a2058c65aeb914f5306df3cbd9d5149cee8773cfb07efb9d32d7ec0cb83854c" + }, "blocks": [ { - "rlp": "0xf903b5f90240a011e6a430c55602d7745b8ba7b3aedaceea55eaecfc8d5fcd4604b76c711d21b0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0786a9605b5555fc3a20d479d55c45eb529249558d3290bf593badeb36d1a8718a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", + "rlp": "0xf903b5f90240a07a2058c65aeb914f5306df3cbd9d5149cee8773cfb07efb9d32d7ec0cb83854ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0906bc978bd30e49a512bb2daccf7a7c5f0b5f44064f97ae8e7f483e879505acea0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", "blockHeader": { - "parentHash": "0x11e6a430c55602d7745b8ba7b3aedaceea55eaecfc8d5fcd4604b76c711d21b0", + "parentHash": "0x7a2058c65aeb914f5306df3cbd9d5149cee8773cfb07efb9d32d7ec0cb83854c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x786a9605b5555fc3a20d479d55c45eb529249558d3290bf593badeb36d1a8718", + "stateRoot": "0x906bc978bd30e49a512bb2daccf7a7c5f0b5f44064f97ae8e7f483e879505ace", "transactionsTrie": "0xa22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610f", "receiptTrie": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -357,33 +330,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2f276a7aa65e2265b885c063351817573ba97b17cc856b8fe859b9ff588bce5b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x11e6a430c55602d7745b8ba7b3aedaceea55eaecfc8d5fcd4604b76c711d21b0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x786a9605b5555fc3a20d479d55c45eb529249558d3290bf593badeb36d1a8718", - "receiptsRoot": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6182", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2f276a7aa65e2265b885c063351817573ba97b17cc856b8fe859b9ff588bce5b", - "transactions": [ - "0x02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbda" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa2da48c3ad01aad821b3bed22d70393c688f2c4b684198eda46818022ad97773" }, "transactions": [ { @@ -407,39 +354,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc90ad165bebc55674460d975dde062eb4159da852f40b619907335d2e2cd3ffd", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x11e6a430c55602d7745b8ba7b3aedaceea55eaecfc8d5fcd4604b76c711d21b0" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c90ad165bebc55674460d975dde062eb4159da852f40b619907335d2e2cd3ffda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2f276a7aa65e2265b885c063351817573ba97b17cc856b8fe859b9ff588bce5b", - "network": "Cancun", + "lastblockhash": "0xa2da48c3ad01aad821b3bed22d70393c688f2c4b684198eda46818022ad97773", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -452,6 +368,12 @@ "code": "0x36600060003760006000600160007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -460,14 +382,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -482,6 +396,14 @@ "code": "0x36600060003760006000600160007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47c72", @@ -493,18 +415,43 @@ }, "003-fork=Cancun-from_existent_memory-successful=False--max_src_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03eddf04c320cc03a24a189af244a7be0e8ecd8cfe286321702d2585225370896a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3eddf04c320cc03a24a189af244a7be0e8ecd8cfe286321702d2585225370896", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa452af592defc4b9e89b124560547ad59fd626280a609d672cfd9a5fd4350644" + }, "blocks": [ { - "rlp": "0xf903b5f90240a0227bfd337e66b7a820ee747bbdc040f28705b556c54bea003fa346ef7aa9aff3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e2aeeb2baa63014ff3dbe4df8b907b9518e845b977203f9b2a01992b11e34696a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", + "rlp": "0xf903b5f90240a0a452af592defc4b9e89b124560547ad59fd626280a609d672cfd9a5fd4350644a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a3e63170f121732fad055013635208dab4347cc7c927f55f2f469b40cfa24f4a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", "blockHeader": { - "parentHash": "0x227bfd337e66b7a820ee747bbdc040f28705b556c54bea003fa346ef7aa9aff3", + "parentHash": "0xa452af592defc4b9e89b124560547ad59fd626280a609d672cfd9a5fd4350644", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe2aeeb2baa63014ff3dbe4df8b907b9518e845b977203f9b2a01992b11e34696", + "stateRoot": "0x7a3e63170f121732fad055013635208dab4347cc7c927f55f2f469b40cfa24f4", "transactionsTrie": "0xa22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610f", "receiptTrie": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -521,33 +468,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0895ac776d62a2c0bf290ef90aa6b52553fb0369c841833d5863e35cd0d41705" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x227bfd337e66b7a820ee747bbdc040f28705b556c54bea003fa346ef7aa9aff3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe2aeeb2baa63014ff3dbe4df8b907b9518e845b977203f9b2a01992b11e34696", - "receiptsRoot": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6182", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0895ac776d62a2c0bf290ef90aa6b52553fb0369c841833d5863e35cd0d41705", - "transactions": [ - "0x02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbda" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0e2cfa95bf83a96b6bb22d64acc7a067cb1dc2fde4ddfaca0cb68efd0cc54419" }, "transactions": [ { @@ -571,39 +492,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8bebe86fcea5b82026a43324d9ed9d6fa9016223161b04997b7e62ebdcee3e07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x227bfd337e66b7a820ee747bbdc040f28705b556c54bea003fa346ef7aa9aff3" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08bebe86fcea5b82026a43324d9ed9d6fa9016223161b04997b7e62ebdcee3e07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0895ac776d62a2c0bf290ef90aa6b52553fb0369c841833d5863e35cd0d41705", - "network": "Cancun", + "lastblockhash": "0x0e2cfa95bf83a96b6bb22d64acc7a067cb1dc2fde4ddfaca0cb68efd0cc54419", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -616,6 +506,12 @@ "code": "0x3660006000376000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -624,14 +520,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -646,6 +534,14 @@ "code": "0x3660006000376000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47c72", @@ -657,18 +553,43 @@ }, "004-fork=Cancun-from_existent_memory-successful=False--max_src_minus_one_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04ccc5f1506d0fdc9dd5bf71b9b749bdb3deca41fa4fc85179d69d947ce882776a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4ccc5f1506d0fdc9dd5bf71b9b749bdb3deca41fa4fc85179d69d947ce882776", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf92ae9fe85c622d87eac02b0b8ffb03ee5ecc81fdc2e7ca23df714cf9b175453" + }, "blocks": [ { - "rlp": "0xf903b5f90240a05f0d322eb8419f50bdd43c524f9c32c0767444922ec448404c4497503849946ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08ec7b431a62d0bc6f98f976d757ebdaadaa2ebdf8fb069fdc84a1fdd6b39b271a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", + "rlp": "0xf903b5f90240a0f92ae9fe85c622d87eac02b0b8ffb03ee5ecc81fdc2e7ca23df714cf9b175453a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01789adc593bbcfe0f516296028fe1297bb9cba6cee1f739a1b2d76c8c20fc27ca0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", "blockHeader": { - "parentHash": "0x5f0d322eb8419f50bdd43c524f9c32c0767444922ec448404c4497503849946c", + "parentHash": "0xf92ae9fe85c622d87eac02b0b8ffb03ee5ecc81fdc2e7ca23df714cf9b175453", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8ec7b431a62d0bc6f98f976d757ebdaadaa2ebdf8fb069fdc84a1fdd6b39b271", + "stateRoot": "0x1789adc593bbcfe0f516296028fe1297bb9cba6cee1f739a1b2d76c8c20fc27c", "transactionsTrie": "0xa22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610f", "receiptTrie": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -685,33 +606,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x401cd3d12136bb0a2f5cffe933304e3599a0d91d411ec1ad864d9fadea0ae12b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5f0d322eb8419f50bdd43c524f9c32c0767444922ec448404c4497503849946c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8ec7b431a62d0bc6f98f976d757ebdaadaa2ebdf8fb069fdc84a1fdd6b39b271", - "receiptsRoot": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6182", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x401cd3d12136bb0a2f5cffe933304e3599a0d91d411ec1ad864d9fadea0ae12b", - "transactions": [ - "0x02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbda" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x48150f183abd84d77ad71ae1da6d114e13ad77526709b2dab7879a540396a9c1" }, "transactions": [ { @@ -735,39 +630,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0271baf0f1489b6bee320b1c175fe128a4f69be2c41981b049da122dd80a0269", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5f0d322eb8419f50bdd43c524f9c32c0767444922ec448404c4497503849946c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00271baf0f1489b6bee320b1c175fe128a4f69be2c41981b049da122dd80a0269a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x401cd3d12136bb0a2f5cffe933304e3599a0d91d411ec1ad864d9fadea0ae12b", - "network": "Cancun", + "lastblockhash": "0x48150f183abd84d77ad71ae1da6d114e13ad77526709b2dab7879a540396a9c1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -780,6 +644,12 @@ "code": "0x3660006000376000600060017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -788,14 +658,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -810,6 +672,14 @@ "code": "0x3660006000376000600060017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47c72", @@ -821,18 +691,43 @@ }, "005-fork=Cancun-from_existent_memory-successful=False--half_max_src_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a92e5b3734792eb8c4faea5e86c19fa15fbcd22dfaff5aeae6063592234a3a30a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa92e5b3734792eb8c4faea5e86c19fa15fbcd22dfaff5aeae6063592234a3a30", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1da263c2b4490a58d1c11a6fbb4c2f636f256a259cf833dbb45f4deacc5714eb" + }, "blocks": [ { - "rlp": "0xf903b5f90240a0b3280a322c1e252a5112005d195eab18c42f957c5cb9a1ff8088a562adae40d7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08da8c5001cbd6b506a8e4cf9aa8c6eda5a0bb42cf763df7545c41fd249379631a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", + "rlp": "0xf903b5f90240a01da263c2b4490a58d1c11a6fbb4c2f636f256a259cf833dbb45f4deacc5714eba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d653e782acbd0c7fc576b700a1b0eade2c867e2d4bed660211c0322a3134e07a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", "blockHeader": { - "parentHash": "0xb3280a322c1e252a5112005d195eab18c42f957c5cb9a1ff8088a562adae40d7", + "parentHash": "0x1da263c2b4490a58d1c11a6fbb4c2f636f256a259cf833dbb45f4deacc5714eb", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8da8c5001cbd6b506a8e4cf9aa8c6eda5a0bb42cf763df7545c41fd249379631", + "stateRoot": "0x9d653e782acbd0c7fc576b700a1b0eade2c867e2d4bed660211c0322a3134e07", "transactionsTrie": "0xa22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610f", "receiptTrie": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -849,33 +744,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x23cb67e76ec74823204a0a7778f4818558e067f7c7a5853b95ca4c78356c1565" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb3280a322c1e252a5112005d195eab18c42f957c5cb9a1ff8088a562adae40d7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8da8c5001cbd6b506a8e4cf9aa8c6eda5a0bb42cf763df7545c41fd249379631", - "receiptsRoot": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6182", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x23cb67e76ec74823204a0a7778f4818558e067f7c7a5853b95ca4c78356c1565", - "transactions": [ - "0x02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbda" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xed925a01d36971547900271ed26c0f8746836e666915641204929f0d429544cd" }, "transactions": [ { @@ -899,39 +768,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x002a2538a916ea40ac512e84e0c2722f531314234fca2c9c322c6b1526b71dbb", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb3280a322c1e252a5112005d195eab18c42f957c5cb9a1ff8088a562adae40d7" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0002a2538a916ea40ac512e84e0c2722f531314234fca2c9c322c6b1526b71dbba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x23cb67e76ec74823204a0a7778f4818558e067f7c7a5853b95ca4c78356c1565", - "network": "Cancun", + "lastblockhash": "0xed925a01d36971547900271ed26c0f8746836e666915641204929f0d429544cd", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -944,6 +782,12 @@ "code": "0x3660006000376000600060017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -952,14 +796,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -974,6 +810,14 @@ "code": "0x3660006000376000600060017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47c72", @@ -985,18 +829,43 @@ }, "006-fork=Cancun-from_existent_memory-successful=False--max_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00b4a841aa4e9f1240ae56a2151202aedb2d00eca24e8c0bb902b4568c92903b3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0b4a841aa4e9f1240ae56a2151202aedb2d00eca24e8c0bb902b4568c92903b3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xef02d7836b5126a2d73aa2960d1de2342215bbf95a21a7b140e1ae7afccd82a3" + }, "blocks": [ { - "rlp": "0xf903b5f90240a0234742cc8de464fe412fc075b301871e63fb849b9b3c541f03fb6ef1b6347a73a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa089a2032bb5c1fcf9d16db58c76a31eace8d163408dcd9348aec2c8282909896aa0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", + "rlp": "0xf903b5f90240a0ef02d7836b5126a2d73aa2960d1de2342215bbf95a21a7b140e1ae7afccd82a3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07ebf5b03411e4f9ea569b3176a4bed0ab219045f57002f589560a3bcc364e5e2a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", "blockHeader": { - "parentHash": "0x234742cc8de464fe412fc075b301871e63fb849b9b3c541f03fb6ef1b6347a73", + "parentHash": "0xef02d7836b5126a2d73aa2960d1de2342215bbf95a21a7b140e1ae7afccd82a3", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x89a2032bb5c1fcf9d16db58c76a31eace8d163408dcd9348aec2c8282909896a", + "stateRoot": "0x7ebf5b03411e4f9ea569b3176a4bed0ab219045f57002f589560a3bcc364e5e2", "transactionsTrie": "0xa22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610f", "receiptTrie": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1013,33 +882,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe0e139feeefad42dc27b7cd860c9204bebdc7346605b62fe4e70548c97910614" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x234742cc8de464fe412fc075b301871e63fb849b9b3c541f03fb6ef1b6347a73", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x89a2032bb5c1fcf9d16db58c76a31eace8d163408dcd9348aec2c8282909896a", - "receiptsRoot": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6182", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe0e139feeefad42dc27b7cd860c9204bebdc7346605b62fe4e70548c97910614", - "transactions": [ - "0x02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbda" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf8c3c3aae1dc876a543105e9d11f502ca0306731486f21265b28ebeac5096f1b" }, "transactions": [ { @@ -1063,39 +906,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc26b7829aa297bff155ab294d7220bd7bd7e505c436ff810faf07a7fcf65252b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x234742cc8de464fe412fc075b301871e63fb849b9b3c541f03fb6ef1b6347a73" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c26b7829aa297bff155ab294d7220bd7bd7e505c436ff810faf07a7fcf65252ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe0e139feeefad42dc27b7cd860c9204bebdc7346605b62fe4e70548c97910614", - "network": "Cancun", + "lastblockhash": "0xf8c3c3aae1dc876a543105e9d11f502ca0306731486f21265b28ebeac5096f1b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1108,6 +920,12 @@ "code": "0x366000600037600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -1116,14 +934,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1138,6 +948,14 @@ "code": "0x366000600037600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47c72", @@ -1149,18 +967,43 @@ }, "007-fork=Cancun-from_existent_memory-successful=False--max_length_minus_one_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0250a1467943503b6af42049b3371632eb6493a713aace9d22b129c320ca7947ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x250a1467943503b6af42049b3371632eb6493a713aace9d22b129c320ca7947c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3e8864efcd5b4ec73878e3e6db8d6189f43227f54db4ae5a8cae76243205356b" + }, "blocks": [ { - "rlp": "0xf903b5f90240a0556127f49136d0436f90550f1427a1f2f1c834830a91a2e94f4bc6ef7d1ba7b8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa001f601848564235a8fd2a8ba4ab00ee681d5c045a7d06a2f6d03435b4b7001d4a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", + "rlp": "0xf903b5f90240a03e8864efcd5b4ec73878e3e6db8d6189f43227f54db4ae5a8cae76243205356ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa073327b07a8696d83231665ecbd93033450da1dae3ceed8265bb3b799e8c3a770a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", "blockHeader": { - "parentHash": "0x556127f49136d0436f90550f1427a1f2f1c834830a91a2e94f4bc6ef7d1ba7b8", + "parentHash": "0x3e8864efcd5b4ec73878e3e6db8d6189f43227f54db4ae5a8cae76243205356b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x01f601848564235a8fd2a8ba4ab00ee681d5c045a7d06a2f6d03435b4b7001d4", + "stateRoot": "0x73327b07a8696d83231665ecbd93033450da1dae3ceed8265bb3b799e8c3a770", "transactionsTrie": "0xa22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610f", "receiptTrie": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1177,33 +1020,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x321e953da156e8772f3e27540fb328d603fbdd9508c1662a7c314613ba3ea5a1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x556127f49136d0436f90550f1427a1f2f1c834830a91a2e94f4bc6ef7d1ba7b8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x01f601848564235a8fd2a8ba4ab00ee681d5c045a7d06a2f6d03435b4b7001d4", - "receiptsRoot": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6182", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x321e953da156e8772f3e27540fb328d603fbdd9508c1662a7c314613ba3ea5a1", - "transactions": [ - "0x02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbda" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9bfb1b2bc6f87dd185f2ad7382e9b36ec398854d92f243f6a494c3e1a9c3685d" }, "transactions": [ { @@ -1227,39 +1044,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5c7848ac750b9aeda15b47ad74b18daa7ebb70471b64ee0d6fce27a6ecfb36f3", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x556127f49136d0436f90550f1427a1f2f1c834830a91a2e94f4bc6ef7d1ba7b8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c7848ac750b9aeda15b47ad74b18daa7ebb70471b64ee0d6fce27a6ecfb36f3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x321e953da156e8772f3e27540fb328d603fbdd9508c1662a7c314613ba3ea5a1", - "network": "Cancun", + "lastblockhash": "0x9bfb1b2bc6f87dd185f2ad7382e9b36ec398854d92f243f6a494c3e1a9c3685d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1272,6 +1058,12 @@ "code": "0x366000600037600060007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -1280,14 +1072,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1302,6 +1086,14 @@ "code": "0x366000600037600060007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47c72", @@ -1313,18 +1105,43 @@ }, "008-fork=Cancun-from_existent_memory-successful=False--half_max_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0153d696907f702b6b0d180813fe7d3cdf5082a4c953824c0618c905ee8f8b4baa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x153d696907f702b6b0d180813fe7d3cdf5082a4c953824c0618c905ee8f8b4ba", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf134ece9306951188a35463fa0add2034728751a053682c3e94d048f996cbdd9" + }, "blocks": [ { - "rlp": "0xf903b5f90240a0d88d64fa38781103484ec9dcbc28f4d21969906875ada78a604b33d9e1aace6ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f61c69c38d9f4181cb864c874cc4f501845f16864840e7b4031d408fe93324f8a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", + "rlp": "0xf903b5f90240a0f134ece9306951188a35463fa0add2034728751a053682c3e94d048f996cbdd9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa083e7b3615bd2395030d9ba4fafa82ef78e26864f6e42f22edb1c94e480948b51a0a22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610fa0478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016db9016a02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbdac0c0", "blockHeader": { - "parentHash": "0xd88d64fa38781103484ec9dcbc28f4d21969906875ada78a604b33d9e1aace6e", + "parentHash": "0xf134ece9306951188a35463fa0add2034728751a053682c3e94d048f996cbdd9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf61c69c38d9f4181cb864c874cc4f501845f16864840e7b4031d408fe93324f8", + "stateRoot": "0x83e7b3615bd2395030d9ba4fafa82ef78e26864f6e42f22edb1c94e480948b51", "transactionsTrie": "0xa22e4570f1ca6c1dfd5f8651d19d91c9af0396b5426637a76c028f5c0e71610f", "receiptTrie": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1341,33 +1158,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xeaf24ad1c2a8b41cd223e15e95ca7265eb925b821602ab0ad658b199984ad4cf" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd88d64fa38781103484ec9dcbc28f4d21969906875ada78a604b33d9e1aace6e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf61c69c38d9f4181cb864c874cc4f501845f16864840e7b4031d408fe93324f8", - "receiptsRoot": "0x478c4a2449ce98ec29850e86be28a52b1706c38d366dd286543f6a28d519cea3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6182", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xeaf24ad1c2a8b41cd223e15e95ca7265eb925b821602ab0ad658b199984ad4cf", - "transactions": [ - "0x02f90166018080078405f5e10094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a07c5b2515ebc617aef72480ce23ac956736b864bec54a4840de1e93762474449da05b3afab577636fda93f2c72bf4a4e434b65a9adf2f31e8a88e21d6dc2974bbda" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xce9d58fb13b18aeb441df49ad9641973a4118173a4d34fba65fd243fce0d8f7c" }, "transactions": [ { @@ -1391,39 +1182,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaba027652e8c5ecf96c154f9b90bb588d8712d2ec27c9e8da27a0def95ec2bb8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd88d64fa38781103484ec9dcbc28f4d21969906875ada78a604b33d9e1aace6e" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aba027652e8c5ecf96c154f9b90bb588d8712d2ec27c9e8da27a0def95ec2bb8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xeaf24ad1c2a8b41cd223e15e95ca7265eb925b821602ab0ad658b199984ad4cf", - "network": "Cancun", + "lastblockhash": "0xce9d58fb13b18aeb441df49ad9641973a4118173a4d34fba65fd243fce0d8f7c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1436,6 +1196,12 @@ "code": "0x366000600037600060007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -1444,14 +1210,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1466,6 +1224,14 @@ "code": "0x366000600037600060007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47c72", @@ -1477,18 +1243,43 @@ }, "009-fork=Cancun-from_empty_memory-successful=False--max_dest_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a085aa13815552015ad05c1ce69b3da066f479b8215a3aa864a0dcadeed6b88327a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x85aa13815552015ad05c1ce69b3da066f479b8215a3aa864a0dcadeed6b88327", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2776b6c22dd5e112f1a4b580de388bb4d39245996c4779133101eec4c03e6d47" + }, "blocks": [ { - "rlp": "0xf902b0f90240a02e721cb5fd95b8cb51123fd301f14e621586cabda984c90f76d5b02821df4001a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09fcaee29c86cd216158d77a10a5d057098406f43c6f014f847a77a4fba3d380aa0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", + "rlp": "0xf902b0f90240a02776b6c22dd5e112f1a4b580de388bb4d39245996c4779133101eec4c03e6d47a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09e4e40a7618843f2685e16b714002401c7925a1205c10acaced51a223971074ca0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", "blockHeader": { - "parentHash": "0x2e721cb5fd95b8cb51123fd301f14e621586cabda984c90f76d5b02821df4001", + "parentHash": "0x2776b6c22dd5e112f1a4b580de388bb4d39245996c4779133101eec4c03e6d47", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9fcaee29c86cd216158d77a10a5d057098406f43c6f014f847a77a4fba3d380a", + "stateRoot": "0x9e4e40a7618843f2685e16b714002401c7925a1205c10acaced51a223971074c", "transactionsTrie": "0xb0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5", "receiptTrie": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1505,33 +1296,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfe78eaa29d6fec1b499a00f92922488032b95cadabfb7c0384971047a28415a9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2e721cb5fd95b8cb51123fd301f14e621586cabda984c90f76d5b02821df4001", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9fcaee29c86cd216158d77a10a5d057098406f43c6f014f847a77a4fba3d380a", - "receiptsRoot": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6142", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfe78eaa29d6fec1b499a00f92922488032b95cadabfb7c0384971047a28415a9", - "transactions": [ - "0x02f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6fb1c19073511206092b94b287e87cb69e73ba9383f72481f8ad1d5782ba005f" }, "transactions": [ { @@ -1555,39 +1320,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x20a258e171315f90f15c210fbf4938d3ec4ac05e4a80bcbbd5d01cc09d699042", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2e721cb5fd95b8cb51123fd301f14e621586cabda984c90f76d5b02821df4001" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a020a258e171315f90f15c210fbf4938d3ec4ac05e4a80bcbbd5d01cc09d699042a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfe78eaa29d6fec1b499a00f92922488032b95cadabfb7c0384971047a28415a9", - "network": "Cancun", + "lastblockhash": "0x6fb1c19073511206092b94b287e87cb69e73ba9383f72481f8ad1d5782ba005f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1600,6 +1334,12 @@ "code": "0x36600060003760006000600160007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -1608,14 +1348,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1630,6 +1362,14 @@ "code": "0x36600060003760006000600160007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47e32", @@ -1641,18 +1381,43 @@ }, "010-fork=Cancun-from_empty_memory-successful=False--max_dest_minus_one_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e92f4eb5e4139e5f61f3125021ced48fdfc9b0e51238a6eb68539278d33c93b9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe92f4eb5e4139e5f61f3125021ced48fdfc9b0e51238a6eb68539278d33c93b9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4dea81f7b4eb86ca0388e0aa38fecc97b5dc3afaf696a3c58a8c6bcc4ab20d8c" + }, "blocks": [ { - "rlp": "0xf902b0f90240a02569b65653d01c9252541e0f2288e8b9c48ec6a9ba6ed07aad9e2cfeda870ab3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c66fabd25b8795df92bb4f731b6371ca46612b77104bdf706c9c69868287c6a9a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", + "rlp": "0xf902b0f90240a04dea81f7b4eb86ca0388e0aa38fecc97b5dc3afaf696a3c58a8c6bcc4ab20d8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0faea671245df7557622bae0e704b8a03e73698341aee04a8379aad138937af48a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", "blockHeader": { - "parentHash": "0x2569b65653d01c9252541e0f2288e8b9c48ec6a9ba6ed07aad9e2cfeda870ab3", + "parentHash": "0x4dea81f7b4eb86ca0388e0aa38fecc97b5dc3afaf696a3c58a8c6bcc4ab20d8c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc66fabd25b8795df92bb4f731b6371ca46612b77104bdf706c9c69868287c6a9", + "stateRoot": "0xfaea671245df7557622bae0e704b8a03e73698341aee04a8379aad138937af48", "transactionsTrie": "0xb0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5", "receiptTrie": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1669,33 +1434,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8b28aa04fe1b9f4c9d3e39850160a8b360dab397c0008f54c25611dd8ba63048" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2569b65653d01c9252541e0f2288e8b9c48ec6a9ba6ed07aad9e2cfeda870ab3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc66fabd25b8795df92bb4f731b6371ca46612b77104bdf706c9c69868287c6a9", - "receiptsRoot": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6142", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8b28aa04fe1b9f4c9d3e39850160a8b360dab397c0008f54c25611dd8ba63048", - "transactions": [ - "0x02f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdfa2e12a6bd5d02814d6d90e743f0aa7e7d720f38411ff5ae09aaf9769893cff" }, "transactions": [ { @@ -1719,39 +1458,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x613fbdca7657329d4fdd05885c27173dc79090214c01a693def767cff814e4d6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2569b65653d01c9252541e0f2288e8b9c48ec6a9ba6ed07aad9e2cfeda870ab3" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0613fbdca7657329d4fdd05885c27173dc79090214c01a693def767cff814e4d6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8b28aa04fe1b9f4c9d3e39850160a8b360dab397c0008f54c25611dd8ba63048", - "network": "Cancun", + "lastblockhash": "0xdfa2e12a6bd5d02814d6d90e743f0aa7e7d720f38411ff5ae09aaf9769893cff", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1764,6 +1472,12 @@ "code": "0x36600060003760006000600160007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -1772,14 +1486,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1794,6 +1500,14 @@ "code": "0x36600060003760006000600160007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47e32", @@ -1805,18 +1519,43 @@ }, "011-fork=Cancun-from_empty_memory-successful=False--half_max_dest_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c867ac7c196ef82159540bde7d60083fbd7831f0a492b2384b35f14beb8d35c9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc867ac7c196ef82159540bde7d60083fbd7831f0a492b2384b35f14beb8d35c9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7a2058c65aeb914f5306df3cbd9d5149cee8773cfb07efb9d32d7ec0cb83854c" + }, "blocks": [ { - "rlp": "0xf902b0f90240a011e6a430c55602d7745b8ba7b3aedaceea55eaecfc8d5fcd4604b76c711d21b0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0004b224e32cb6e15e734f1a0502a5fa791a3df63d32917d1e9837b7dcf08265ba0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", + "rlp": "0xf902b0f90240a07a2058c65aeb914f5306df3cbd9d5149cee8773cfb07efb9d32d7ec0cb83854ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ade538f89d012afe9a552d2a64740195e2b91b5e701e6f97c24d9eb1c395ca7ca0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", "blockHeader": { - "parentHash": "0x11e6a430c55602d7745b8ba7b3aedaceea55eaecfc8d5fcd4604b76c711d21b0", + "parentHash": "0x7a2058c65aeb914f5306df3cbd9d5149cee8773cfb07efb9d32d7ec0cb83854c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x004b224e32cb6e15e734f1a0502a5fa791a3df63d32917d1e9837b7dcf08265b", + "stateRoot": "0xade538f89d012afe9a552d2a64740195e2b91b5e701e6f97c24d9eb1c395ca7c", "transactionsTrie": "0xb0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5", "receiptTrie": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1833,33 +1572,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4f4e7120a54b9152f141663b4e09c1201fa8be4464c88f20515f0f95eeb1b229" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x11e6a430c55602d7745b8ba7b3aedaceea55eaecfc8d5fcd4604b76c711d21b0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x004b224e32cb6e15e734f1a0502a5fa791a3df63d32917d1e9837b7dcf08265b", - "receiptsRoot": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6142", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4f4e7120a54b9152f141663b4e09c1201fa8be4464c88f20515f0f95eeb1b229", - "transactions": [ - "0x02f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1449b6f734c673d6ba9aa04aa548d247be076b0a64ee18da10a960e4193a964b" }, "transactions": [ { @@ -1883,39 +1596,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc90ad165bebc55674460d975dde062eb4159da852f40b619907335d2e2cd3ffd", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x11e6a430c55602d7745b8ba7b3aedaceea55eaecfc8d5fcd4604b76c711d21b0" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c90ad165bebc55674460d975dde062eb4159da852f40b619907335d2e2cd3ffda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4f4e7120a54b9152f141663b4e09c1201fa8be4464c88f20515f0f95eeb1b229", - "network": "Cancun", + "lastblockhash": "0x1449b6f734c673d6ba9aa04aa548d247be076b0a64ee18da10a960e4193a964b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1928,6 +1610,12 @@ "code": "0x36600060003760006000600160007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -1936,14 +1624,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1958,6 +1638,14 @@ "code": "0x36600060003760006000600160007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47e32", @@ -1969,18 +1657,43 @@ }, "012-fork=Cancun-from_empty_memory-successful=False--max_src_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03eddf04c320cc03a24a189af244a7be0e8ecd8cfe286321702d2585225370896a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3eddf04c320cc03a24a189af244a7be0e8ecd8cfe286321702d2585225370896", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa452af592defc4b9e89b124560547ad59fd626280a609d672cfd9a5fd4350644" + }, "blocks": [ { - "rlp": "0xf902b0f90240a0227bfd337e66b7a820ee747bbdc040f28705b556c54bea003fa346ef7aa9aff3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0634c13191d830230a20c7bff42551650aad5766b608d302302c7f649ebb2fef6a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", + "rlp": "0xf902b0f90240a0a452af592defc4b9e89b124560547ad59fd626280a609d672cfd9a5fd4350644a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09b426b19a8248e7aa53d4d5d7f3c2a2a0186344ae36b29a4466d40e84331cafca0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", "blockHeader": { - "parentHash": "0x227bfd337e66b7a820ee747bbdc040f28705b556c54bea003fa346ef7aa9aff3", + "parentHash": "0xa452af592defc4b9e89b124560547ad59fd626280a609d672cfd9a5fd4350644", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x634c13191d830230a20c7bff42551650aad5766b608d302302c7f649ebb2fef6", + "stateRoot": "0x9b426b19a8248e7aa53d4d5d7f3c2a2a0186344ae36b29a4466d40e84331cafc", "transactionsTrie": "0xb0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5", "receiptTrie": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1997,33 +1710,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcf7c08cc65a0030f23aaf0b410f69b287863c92a1b4bf6de90a432ee9dd9b055" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x227bfd337e66b7a820ee747bbdc040f28705b556c54bea003fa346ef7aa9aff3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x634c13191d830230a20c7bff42551650aad5766b608d302302c7f649ebb2fef6", - "receiptsRoot": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6142", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xcf7c08cc65a0030f23aaf0b410f69b287863c92a1b4bf6de90a432ee9dd9b055", - "transactions": [ - "0x02f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc1861506de797ba4b1f8413f3a6d5bee8a0eb0f4cdc3e8f01a3890102ddacc90" }, "transactions": [ { @@ -2047,39 +1734,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8bebe86fcea5b82026a43324d9ed9d6fa9016223161b04997b7e62ebdcee3e07", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x227bfd337e66b7a820ee747bbdc040f28705b556c54bea003fa346ef7aa9aff3" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08bebe86fcea5b82026a43324d9ed9d6fa9016223161b04997b7e62ebdcee3e07a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcf7c08cc65a0030f23aaf0b410f69b287863c92a1b4bf6de90a432ee9dd9b055", - "network": "Cancun", + "lastblockhash": "0xc1861506de797ba4b1f8413f3a6d5bee8a0eb0f4cdc3e8f01a3890102ddacc90", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2092,6 +1748,12 @@ "code": "0x3660006000376000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -2100,14 +1762,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2122,6 +1776,14 @@ "code": "0x3660006000376000600060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47e32", @@ -2133,18 +1795,43 @@ }, "013-fork=Cancun-from_empty_memory-successful=False--max_src_minus_one_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04ccc5f1506d0fdc9dd5bf71b9b749bdb3deca41fa4fc85179d69d947ce882776a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4ccc5f1506d0fdc9dd5bf71b9b749bdb3deca41fa4fc85179d69d947ce882776", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf92ae9fe85c622d87eac02b0b8ffb03ee5ecc81fdc2e7ca23df714cf9b175453" + }, "blocks": [ { - "rlp": "0xf902b0f90240a05f0d322eb8419f50bdd43c524f9c32c0767444922ec448404c4497503849946ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07be02d87ed57e861ccf5fbf03ebf04ca7e0f141bd6dc96ba4f759627904711e2a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", + "rlp": "0xf902b0f90240a0f92ae9fe85c622d87eac02b0b8ffb03ee5ecc81fdc2e7ca23df714cf9b175453a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa039f74088a2e753f042546f6ab4eea29f4a171fecc3993af2246fed1233b7155ea0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", "blockHeader": { - "parentHash": "0x5f0d322eb8419f50bdd43c524f9c32c0767444922ec448404c4497503849946c", + "parentHash": "0xf92ae9fe85c622d87eac02b0b8ffb03ee5ecc81fdc2e7ca23df714cf9b175453", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7be02d87ed57e861ccf5fbf03ebf04ca7e0f141bd6dc96ba4f759627904711e2", + "stateRoot": "0x39f74088a2e753f042546f6ab4eea29f4a171fecc3993af2246fed1233b7155e", "transactionsTrie": "0xb0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5", "receiptTrie": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2161,33 +1848,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x396e90589128d697bb85000a7163bfc1d0d963eb1cca740f0dce94b979c2a5ad" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5f0d322eb8419f50bdd43c524f9c32c0767444922ec448404c4497503849946c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7be02d87ed57e861ccf5fbf03ebf04ca7e0f141bd6dc96ba4f759627904711e2", - "receiptsRoot": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6142", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x396e90589128d697bb85000a7163bfc1d0d963eb1cca740f0dce94b979c2a5ad", - "transactions": [ - "0x02f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x819f417a87a152c0e6a903c4c8348fe83fe91cb9b677e89d14fda595da0cfb8a" }, "transactions": [ { @@ -2211,39 +1872,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0271baf0f1489b6bee320b1c175fe128a4f69be2c41981b049da122dd80a0269", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5f0d322eb8419f50bdd43c524f9c32c0767444922ec448404c4497503849946c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00271baf0f1489b6bee320b1c175fe128a4f69be2c41981b049da122dd80a0269a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x396e90589128d697bb85000a7163bfc1d0d963eb1cca740f0dce94b979c2a5ad", - "network": "Cancun", + "lastblockhash": "0x819f417a87a152c0e6a903c4c8348fe83fe91cb9b677e89d14fda595da0cfb8a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2256,6 +1886,12 @@ "code": "0x3660006000376000600060017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -2264,14 +1900,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2286,6 +1914,14 @@ "code": "0x3660006000376000600060017ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47e32", @@ -2297,18 +1933,43 @@ }, "014-fork=Cancun-from_empty_memory-successful=False--half_max_src_single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a92e5b3734792eb8c4faea5e86c19fa15fbcd22dfaff5aeae6063592234a3a30a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa92e5b3734792eb8c4faea5e86c19fa15fbcd22dfaff5aeae6063592234a3a30", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1da263c2b4490a58d1c11a6fbb4c2f636f256a259cf833dbb45f4deacc5714eb" + }, "blocks": [ { - "rlp": "0xf902b0f90240a0b3280a322c1e252a5112005d195eab18c42f957c5cb9a1ff8088a562adae40d7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0121403869928c8ddd3c5fe436369208ecf02088945ea11f67e70d160279fb3e5a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", + "rlp": "0xf902b0f90240a01da263c2b4490a58d1c11a6fbb4c2f636f256a259cf833dbb45f4deacc5714eba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bdd6f1b52e4d39280c4311835a7fea5c179a1f5a1961de992720d19aaa9bf75a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", "blockHeader": { - "parentHash": "0xb3280a322c1e252a5112005d195eab18c42f957c5cb9a1ff8088a562adae40d7", + "parentHash": "0x1da263c2b4490a58d1c11a6fbb4c2f636f256a259cf833dbb45f4deacc5714eb", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x121403869928c8ddd3c5fe436369208ecf02088945ea11f67e70d160279fb3e5", + "stateRoot": "0x0bdd6f1b52e4d39280c4311835a7fea5c179a1f5a1961de992720d19aaa9bf75", "transactionsTrie": "0xb0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5", "receiptTrie": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2325,33 +1986,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3576a1d260900bed5113d8f0f660e825038771a2966459332ee529b11558dfbe" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb3280a322c1e252a5112005d195eab18c42f957c5cb9a1ff8088a562adae40d7", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x121403869928c8ddd3c5fe436369208ecf02088945ea11f67e70d160279fb3e5", - "receiptsRoot": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6142", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3576a1d260900bed5113d8f0f660e825038771a2966459332ee529b11558dfbe", - "transactions": [ - "0x02f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x15eb97133e132829cb355459c01dde36af13c753a9fc2aaf3dac4fa3ae9cfffb" }, "transactions": [ { @@ -2375,39 +2010,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x002a2538a916ea40ac512e84e0c2722f531314234fca2c9c322c6b1526b71dbb", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb3280a322c1e252a5112005d195eab18c42f957c5cb9a1ff8088a562adae40d7" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0002a2538a916ea40ac512e84e0c2722f531314234fca2c9c322c6b1526b71dbba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3576a1d260900bed5113d8f0f660e825038771a2966459332ee529b11558dfbe", - "network": "Cancun", + "lastblockhash": "0x15eb97133e132829cb355459c01dde36af13c753a9fc2aaf3dac4fa3ae9cfffb", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2420,6 +2024,12 @@ "code": "0x3660006000376000600060017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -2428,14 +2038,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2450,6 +2052,14 @@ "code": "0x3660006000376000600060017f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47e32", @@ -2461,18 +2071,43 @@ }, "015-fork=Cancun-from_empty_memory-successful=False--max_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00b4a841aa4e9f1240ae56a2151202aedb2d00eca24e8c0bb902b4568c92903b3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0b4a841aa4e9f1240ae56a2151202aedb2d00eca24e8c0bb902b4568c92903b3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xef02d7836b5126a2d73aa2960d1de2342215bbf95a21a7b140e1ae7afccd82a3" + }, "blocks": [ { - "rlp": "0xf902b0f90240a0234742cc8de464fe412fc075b301871e63fb849b9b3c541f03fb6ef1b6347a73a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ac1e04562ebce935941df312dc7a1f0e6961ea1e4f089ad3196f5e956f3a4bc5a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", + "rlp": "0xf902b0f90240a0ef02d7836b5126a2d73aa2960d1de2342215bbf95a21a7b140e1ae7afccd82a3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00cec4cf35d56a2147b4c10d3643652ad7f94ad478cf59b030734f1d8b8195abda0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", "blockHeader": { - "parentHash": "0x234742cc8de464fe412fc075b301871e63fb849b9b3c541f03fb6ef1b6347a73", + "parentHash": "0xef02d7836b5126a2d73aa2960d1de2342215bbf95a21a7b140e1ae7afccd82a3", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac1e04562ebce935941df312dc7a1f0e6961ea1e4f089ad3196f5e956f3a4bc5", + "stateRoot": "0x0cec4cf35d56a2147b4c10d3643652ad7f94ad478cf59b030734f1d8b8195abd", "transactionsTrie": "0xb0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5", "receiptTrie": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2489,33 +2124,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc93f90e77203b29a30fda748e6519f73610c0d25ffc98000d071ee646ff8fc4e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x234742cc8de464fe412fc075b301871e63fb849b9b3c541f03fb6ef1b6347a73", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xac1e04562ebce935941df312dc7a1f0e6961ea1e4f089ad3196f5e956f3a4bc5", - "receiptsRoot": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6142", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc93f90e77203b29a30fda748e6519f73610c0d25ffc98000d071ee646ff8fc4e", - "transactions": [ - "0x02f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x16c3899fffa2f9ce2747be63147b0c40b3b6ce175f6bffbe1e780e1a7d722e63" }, "transactions": [ { @@ -2539,39 +2148,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc26b7829aa297bff155ab294d7220bd7bd7e505c436ff810faf07a7fcf65252b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x234742cc8de464fe412fc075b301871e63fb849b9b3c541f03fb6ef1b6347a73" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c26b7829aa297bff155ab294d7220bd7bd7e505c436ff810faf07a7fcf65252ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc93f90e77203b29a30fda748e6519f73610c0d25ffc98000d071ee646ff8fc4e", - "network": "Cancun", + "lastblockhash": "0x16c3899fffa2f9ce2747be63147b0c40b3b6ce175f6bffbe1e780e1a7d722e63", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2584,6 +2162,12 @@ "code": "0x366000600037600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -2592,14 +2176,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2614,6 +2190,14 @@ "code": "0x366000600037600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47e32", @@ -2625,18 +2209,43 @@ }, "016-fork=Cancun-from_empty_memory-successful=False--max_length_minus_one_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0250a1467943503b6af42049b3371632eb6493a713aace9d22b129c320ca7947ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x250a1467943503b6af42049b3371632eb6493a713aace9d22b129c320ca7947c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3e8864efcd5b4ec73878e3e6db8d6189f43227f54db4ae5a8cae76243205356b" + }, "blocks": [ { - "rlp": "0xf902b0f90240a0556127f49136d0436f90550f1427a1f2f1c834830a91a2e94f4bc6ef7d1ba7b8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0027358a8afc17fa9e07abd1520d979827968137bdccb0a1dddbca08c22d30558a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", + "rlp": "0xf902b0f90240a03e8864efcd5b4ec73878e3e6db8d6189f43227f54db4ae5a8cae76243205356ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00123b5a052dc092a98664848884ba942b07e9e806092d2c9a537c4c6757bd97aa0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", "blockHeader": { - "parentHash": "0x556127f49136d0436f90550f1427a1f2f1c834830a91a2e94f4bc6ef7d1ba7b8", + "parentHash": "0x3e8864efcd5b4ec73878e3e6db8d6189f43227f54db4ae5a8cae76243205356b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x027358a8afc17fa9e07abd1520d979827968137bdccb0a1dddbca08c22d30558", + "stateRoot": "0x0123b5a052dc092a98664848884ba942b07e9e806092d2c9a537c4c6757bd97a", "transactionsTrie": "0xb0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5", "receiptTrie": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2653,33 +2262,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe88742c8826fca576aa103d710183f65de69d29b0831fc31cface3df6aa077ed" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x556127f49136d0436f90550f1427a1f2f1c834830a91a2e94f4bc6ef7d1ba7b8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x027358a8afc17fa9e07abd1520d979827968137bdccb0a1dddbca08c22d30558", - "receiptsRoot": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6142", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe88742c8826fca576aa103d710183f65de69d29b0831fc31cface3df6aa077ed", - "transactions": [ - "0x02f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe89fe7d5d0d525ed0e541228acbcce54b2bf5e0ec28ba1d6f551ec0030be5bed" }, "transactions": [ { @@ -2703,39 +2286,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5c7848ac750b9aeda15b47ad74b18daa7ebb70471b64ee0d6fce27a6ecfb36f3", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x556127f49136d0436f90550f1427a1f2f1c834830a91a2e94f4bc6ef7d1ba7b8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c7848ac750b9aeda15b47ad74b18daa7ebb70471b64ee0d6fce27a6ecfb36f3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe88742c8826fca576aa103d710183f65de69d29b0831fc31cface3df6aa077ed", - "network": "Cancun", + "lastblockhash": "0xe89fe7d5d0d525ed0e541228acbcce54b2bf5e0ec28ba1d6f551ec0030be5bed", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2748,6 +2300,12 @@ "code": "0x366000600037600060007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -2756,14 +2314,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2778,6 +2328,14 @@ "code": "0x366000600037600060007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47e32", @@ -2789,18 +2347,43 @@ }, "017-fork=Cancun-from_empty_memory-successful=False--half_max_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0153d696907f702b6b0d180813fe7d3cdf5082a4c953824c0618c905ee8f8b4baa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x153d696907f702b6b0d180813fe7d3cdf5082a4c953824c0618c905ee8f8b4ba", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf134ece9306951188a35463fa0add2034728751a053682c3e94d048f996cbdd9" + }, "blocks": [ { - "rlp": "0xf902b0f90240a0d88d64fa38781103484ec9dcbc28f4d21969906875ada78a604b33d9e1aace6ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0870eefeb981daa0f57c3460d07e5d600a94d41e3782e85a939ca8dbdb779aa58a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", + "rlp": "0xf902b0f90240a0f134ece9306951188a35463fa0add2034728751a053682c3e94d048f996cbdd9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03ef447699d08e3160c448903e77bd092c67ce3faeba773a3f83c500ab80f2400a0b0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5a02e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008405de61428203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f869b86702f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1dac0c0", "blockHeader": { - "parentHash": "0xd88d64fa38781103484ec9dcbc28f4d21969906875ada78a604b33d9e1aace6e", + "parentHash": "0xf134ece9306951188a35463fa0add2034728751a053682c3e94d048f996cbdd9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x870eefeb981daa0f57c3460d07e5d600a94d41e3782e85a939ca8dbdb779aa58", + "stateRoot": "0x3ef447699d08e3160c448903e77bd092c67ce3faeba773a3f83c500ab80f2400", "transactionsTrie": "0xb0456e764c57c8e759ba161b6db920337ea36b8e0d5e08c9b7cfeac83065c1f5", "receiptTrie": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2817,33 +2400,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0b37782b00613d5964e93c26eb8cca28e99146df81bb2d5f43d73aac26d0c259" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd88d64fa38781103484ec9dcbc28f4d21969906875ada78a604b33d9e1aace6e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x870eefeb981daa0f57c3460d07e5d600a94d41e3782e85a939ca8dbdb779aa58", - "receiptsRoot": "0x2e9b4ac2c3bc9ed4a978a4bed58fe44d16ed5e477eeecf96322982d505f089ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5de6142", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0b37782b00613d5964e93c26eb8cca28e99146df81bb2d5f43d73aac26d0c259", - "transactions": [ - "0x02f864018080078405f5e1009400000000000000000000000000000000000001008080c080a0e49a7c5447460fc9d4945f17a6640ab919bc0a019d23b6ebacf8ff8f23b328aea00ebc5d132650d7d535e3e8fc03b1425b0020801c2d9e48fce05c7beae1b8d1da" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6b5a7e7b7fe2f164d855821c7c434be5ad622ee6b07c9ad16b2402453522f725" }, "transactions": [ { @@ -2867,39 +2424,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaba027652e8c5ecf96c154f9b90bb588d8712d2ec27c9e8da27a0def95ec2bb8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd88d64fa38781103484ec9dcbc28f4d21969906875ada78a604b33d9e1aace6e" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aba027652e8c5ecf96c154f9b90bb588d8712d2ec27c9e8da27a0def95ec2bb8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0b37782b00613d5964e93c26eb8cca28e99146df81bb2d5f43d73aac26d0c259", - "network": "Cancun", + "lastblockhash": "0x6b5a7e7b7fe2f164d855821c7c434be5ad622ee6b07c9ad16b2402453522f725", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2912,6 +2438,12 @@ "code": "0x366000600037600060007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x29b92700", @@ -2920,14 +2452,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2942,6 +2466,14 @@ "code": "0x366000600037600060007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0xa47e32", diff --git a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json index 05f21a69b15..dfa6f4d3a05 100644 --- a/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json +++ b/tests/execution-spec-tests/cancun/eip5656_mcopy/mcopy_memory_expansion/mcopy_memory_expansion.json @@ -1,18 +1,43 @@ { "000-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0065f233ba6316cb3b0036d9a738dacba9f268bd5c60f7275c82d1c724553696ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x065f233ba6316cb3b0036d9a738dacba9f268bd5c60f7275c82d1c724553696e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5cf51690391160d9d0b65dbb282cb8400bdc08ca279f4bbff5e4039b4ab3e8c8" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea06356c4c923d9c70458c4b303d3d294ecb982682f437f13e628121244773e5173a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0baa03bbba03a4f6c2a74f7e91c319f5753926d7aea241da4ace72a354d62b1a8a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0ad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea05cf51690391160d9d0b65dbb282cb8400bdc08ca279f4bbff5e4039b4ab3e8c8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05c7f1d965779bd8d00da3a96ea7b5bff0b82ed267e424ae5dc1265a9448247eca089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0ad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x6356c4c923d9c70458c4b303d3d294ecb982682f437f13e628121244773e5173", + "parentHash": "0x5cf51690391160d9d0b65dbb282cb8400bdc08ca279f4bbff5e4039b4ab3e8c8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbaa03bbba03a4f6c2a74f7e91c319f5753926d7aea241da4ace72a354d62b1a8", + "stateRoot": "0x5c7f1d965779bd8d00da3a96ea7b5bff0b82ed267e424ae5dc1265a9448247ec", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0xad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +54,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x41b950c136cca565eac24edcf0243156a7b75c90ec55974f83dcc9bbb78c4511" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6356c4c923d9c70458c4b303d3d294ecb982682f437f13e628121244773e5173", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbaa03bbba03a4f6c2a74f7e91c319f5753926d7aea241da4ace72a354d62b1a8", - "receiptsRoot": "0xad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc31a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x41b950c136cca565eac24edcf0243156a7b75c90ec55974f83dcc9bbb78c4511", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x11b612ba61ae5e3c758ed68627cf527495ceebcdd914a6d09cdc1a67725d07c8" }, "transactions": [ { @@ -79,39 +78,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8fcdb0d29895fb9be26adce20d9c7f393a77edaf65422e7398eed716c7f83d19", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6356c4c923d9c70458c4b303d3d294ecb982682f437f13e628121244773e5173" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08fcdb0d29895fb9be26adce20d9c7f393a77edaf65422e7398eed716c7f83d19a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x41b950c136cca565eac24edcf0243156a7b75c90ec55974f83dcc9bbb78c4511", - "network": "Cancun", + "lastblockhash": "0x11b612ba61ae5e3c758ed68627cf527495ceebcdd914a6d09cdc1a67725d07c8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -124,6 +92,12 @@ "code": "0x366000600037600060006001600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -132,14 +106,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -154,6 +120,14 @@ "code": "0x366000600037600060006001600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30122a", @@ -165,18 +139,43 @@ }, "001-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a092bcbb028aed3d4a6a6793c06b80ce520234eea068b50ca535427ee728f09b71a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x92bcbb028aed3d4a6a6793c06b80ce520234eea068b50ca535427ee728f09b71", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7e670f0e450608c602ba64f618e3089c4f06bac898683ef71a6cd011a5caefe9" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0137044a2138ac2328862f616b0a122d271ba72501a514b1b9b446b43b5582d02a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a26a81486d325f536cc14f4436e12b9bacb4e296780e2e94dacbc4805ae2b489a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a02421b0ea12121b9044e0ca7d211e17bced83116b5acc4d8c4b6ea0e2d27cd325b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea07e670f0e450608c602ba64f618e3089c4f06bac898683ef71a6cd011a5caefe9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04312364565f5906d3db758dfda72e3b173680d201119254964ba154f9859a130a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a02421b0ea12121b9044e0ca7d211e17bced83116b5acc4d8c4b6ea0e2d27cd325b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x137044a2138ac2328862f616b0a122d271ba72501a514b1b9b446b43b5582d02", + "parentHash": "0x7e670f0e450608c602ba64f618e3089c4f06bac898683ef71a6cd011a5caefe9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa26a81486d325f536cc14f4436e12b9bacb4e296780e2e94dacbc4805ae2b489", + "stateRoot": "0x4312364565f5906d3db758dfda72e3b173680d201119254964ba154f9859a130", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x2421b0ea12121b9044e0ca7d211e17bced83116b5acc4d8c4b6ea0e2d27cd325", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -193,33 +192,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6ae800c4db1cd60c0f9b692de7ee9d7d1c91386c1ca80efd88d9689b1d49767c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x137044a2138ac2328862f616b0a122d271ba72501a514b1b9b446b43b5582d02", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa26a81486d325f536cc14f4436e12b9bacb4e296780e2e94dacbc4805ae2b489", - "receiptsRoot": "0x2421b0ea12121b9044e0ca7d211e17bced83116b5acc4d8c4b6ea0e2d27cd325", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc31d", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6ae800c4db1cd60c0f9b692de7ee9d7d1c91386c1ca80efd88d9689b1d49767c", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8e44a1c79b8b8d2410ff0148cc85f9787783689ec4a064d00c361ede0d1346de" }, "transactions": [ { @@ -243,39 +216,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x77833dd3126e5d4425a74152e725d92d4275bbdccfd845c9cf16a5ff90c7c749", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x137044a2138ac2328862f616b0a122d271ba72501a514b1b9b446b43b5582d02" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a077833dd3126e5d4425a74152e725d92d4275bbdccfd845c9cf16a5ff90c7c749a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6ae800c4db1cd60c0f9b692de7ee9d7d1c91386c1ca80efd88d9689b1d49767c", - "network": "Cancun", + "lastblockhash": "0x8e44a1c79b8b8d2410ff0148cc85f9787783689ec4a064d00c361ede0d1346de", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -288,6 +230,12 @@ "code": "0x36600060003760006000600160006101005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -296,14 +244,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -318,6 +258,14 @@ "code": "0x36600060003760006000600160006101005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x301215", @@ -329,18 +277,43 @@ }, "002-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion_word_boundary": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d6519f33657208a32b2f2c72e6ce08f63a52a4c7c98a1bf5e0af1a454de634bba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd6519f33657208a32b2f2c72e6ce08f63a52a4c7c98a1bf5e0af1a454de634bb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x404327a0cd5776d594e01420024eecffb69fc8efc40bbd33e9099571002bd480" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0ed642f7b7af405502234c25dac78c228009f5757cf5c270ebdfe087e472fbb29a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b8729c350043759641e84c63e1f98b3121ce7ca436775576a3fca4f3f67a9754a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0ad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0404327a0cd5776d594e01420024eecffb69fc8efc40bbd33e9099571002bd480a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01b9d9ad066b4a46ad6c37f9a781a701a7b87bf7e91f26d049640b222c505f183a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0ad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0xed642f7b7af405502234c25dac78c228009f5757cf5c270ebdfe087e472fbb29", + "parentHash": "0x404327a0cd5776d594e01420024eecffb69fc8efc40bbd33e9099571002bd480", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb8729c350043759641e84c63e1f98b3121ce7ca436775576a3fca4f3f67a9754", + "stateRoot": "0x1b9d9ad066b4a46ad6c37f9a781a701a7b87bf7e91f26d049640b222c505f183", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0xad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -357,33 +330,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xde2ca94bf42e46909d8e2f438ef9c254f1c0e8aabf1fc33527ce1dc60a2595d7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xed642f7b7af405502234c25dac78c228009f5757cf5c270ebdfe087e472fbb29", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb8729c350043759641e84c63e1f98b3121ce7ca436775576a3fca4f3f67a9754", - "receiptsRoot": "0xad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc31a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xde2ca94bf42e46909d8e2f438ef9c254f1c0e8aabf1fc33527ce1dc60a2595d7", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x386156f39dd246c7aa5414f1923f32ead906785a561211ef950180690e9e2d7b" }, "transactions": [ { @@ -407,39 +354,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x589740bc34314bc04e22d4c7c958789237fa228d6db91acee48d81e5f5ec761d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xed642f7b7af405502234c25dac78c228009f5757cf5c270ebdfe087e472fbb29" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0589740bc34314bc04e22d4c7c958789237fa228d6db91acee48d81e5f5ec761da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xde2ca94bf42e46909d8e2f438ef9c254f1c0e8aabf1fc33527ce1dc60a2595d7", - "network": "Cancun", + "lastblockhash": "0x386156f39dd246c7aa5414f1923f32ead906785a561211ef950180690e9e2d7b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -452,6 +368,12 @@ "code": "0x3660006000376000600060016000601f5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -460,14 +382,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -482,6 +396,14 @@ "code": "0x3660006000376000600060016000601f5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30122a", @@ -493,18 +415,43 @@ }, "003-fork=Cancun-from_existent_memory-successful=True-single_byte_expansion_word_boundary_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07819e1602970ef9cd2c3fe952e0bdf5484ee9b130a56b2c894017e8bc902c600a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7819e1602970ef9cd2c3fe952e0bdf5484ee9b130a56b2c894017e8bc902c600", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc3f4c025fbdec74d11e83c8fc093cd17713bdf6048232e9fef9e1adf9dd08cb1" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0311258ac7efbdeff6a7bfed4c838c4efcd4b513ea0b6f8163f0d139fc20bda76a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ad8189ff48a2bdea1b1b6f0a46f949dd9e93e4204dc38e1eb3be6318e4d6066ea089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0ad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0c3f4c025fbdec74d11e83c8fc093cd17713bdf6048232e9fef9e1adf9dd08cb1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bfbce0aa7e445af7a714daa3577ccd2f6b262313aac5d1d66e553e95c51aff02a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0ad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x311258ac7efbdeff6a7bfed4c838c4efcd4b513ea0b6f8163f0d139fc20bda76", + "parentHash": "0xc3f4c025fbdec74d11e83c8fc093cd17713bdf6048232e9fef9e1adf9dd08cb1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xad8189ff48a2bdea1b1b6f0a46f949dd9e93e4204dc38e1eb3be6318e4d6066e", + "stateRoot": "0xbfbce0aa7e445af7a714daa3577ccd2f6b262313aac5d1d66e553e95c51aff02", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0xad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -521,33 +468,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf502dc2873ee6480e99898612c875d9f467f6bba0de71bd80eac5ae57aae18f4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x311258ac7efbdeff6a7bfed4c838c4efcd4b513ea0b6f8163f0d139fc20bda76", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xad8189ff48a2bdea1b1b6f0a46f949dd9e93e4204dc38e1eb3be6318e4d6066e", - "receiptsRoot": "0xad55355ac72abe86185bd027531cc357e93067f46d4a5dcbe4a677f2bd536538", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc31a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf502dc2873ee6480e99898612c875d9f467f6bba0de71bd80eac5ae57aae18f4", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd48162c6c4ac712ac573cf665de4ca0f1cc4435d636832a0e9a80b59d09c867c" }, "transactions": [ { @@ -571,39 +492,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfcb2c10bc78a93d46e76d9feb57d25f84854e6e76a15219b198edff66984f564", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x311258ac7efbdeff6a7bfed4c838c4efcd4b513ea0b6f8163f0d139fc20bda76" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fcb2c10bc78a93d46e76d9feb57d25f84854e6e76a15219b198edff66984f564a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf502dc2873ee6480e99898612c875d9f467f6bba0de71bd80eac5ae57aae18f4", - "network": "Cancun", + "lastblockhash": "0xd48162c6c4ac712ac573cf665de4ca0f1cc4435d636832a0e9a80b59d09c867c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -616,6 +506,12 @@ "code": "0x366000600037600060006001600060205ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -624,14 +520,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -646,6 +534,14 @@ "code": "0x366000600037600060006001600060205ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30122a", @@ -657,18 +553,43 @@ }, "004-fork=Cancun-from_existent_memory-successful=True-multi_word_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b7c7cccfcbcb0b6f8202c9b60864f740b4dfa2e759490c13217cd39111cde465a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb7c7cccfcbcb0b6f8202c9b60864f740b4dfa2e759490c13217cd39111cde465", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdab15d9c041186fd9c229eb9f93d4cd6e5e8ff66747b76050b59788b27784f44" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea01f914e785dea9db6884307ba90866b8c38f540add82c0279d0da722e7b30a255a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02314741ae524af1299c02c0ee79ce598d31bdda02c28cb6f6fc6266c657c8057a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a03b006e85b5b22aa88fbce3b298a38733b192516e4ea5a24f2366d3fc6461541fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c4a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0dab15d9c041186fd9c229eb9f93d4cd6e5e8ff66747b76050b59788b27784f44a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05099367f2f6191bbbd18a9f37a2a7dd033f81a5e6dd76cc3d751b49bc2fdcc43a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a03b006e85b5b22aa88fbce3b298a38733b192516e4ea5a24f2366d3fc6461541fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c4a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x1f914e785dea9db6884307ba90866b8c38f540add82c0279d0da722e7b30a255", + "parentHash": "0xdab15d9c041186fd9c229eb9f93d4cd6e5e8ff66747b76050b59788b27784f44", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2314741ae524af1299c02c0ee79ce598d31bdda02c28cb6f6fc6266c657c8057", + "stateRoot": "0x5099367f2f6191bbbd18a9f37a2a7dd033f81a5e6dd76cc3d751b49bc2fdcc43", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x3b006e85b5b22aa88fbce3b298a38733b192516e4ea5a24f2366d3fc6461541f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -685,33 +606,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x99205c506ff5d8ddea36e89d56a4ab6f853efbae05be184301d98f9f98e4c0eb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1f914e785dea9db6884307ba90866b8c38f540add82c0279d0da722e7b30a255", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2314741ae524af1299c02c0ee79ce598d31bdda02c28cb6f6fc6266c657c8057", - "receiptsRoot": "0x3b006e85b5b22aa88fbce3b298a38733b192516e4ea5a24f2366d3fc6461541f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc4a5", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x99205c506ff5d8ddea36e89d56a4ab6f853efbae05be184301d98f9f98e4c0eb", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb015e3c4708a6ccf4884f75f50c3fed6a331c0ac83669fdfa042ba0dff387217" }, "transactions": [ { @@ -735,39 +630,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x651e7510707e42b540ee3894058f3194b9c68a31e699c630e9a4f0cb18f84d35", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1f914e785dea9db6884307ba90866b8c38f540add82c0279d0da722e7b30a255" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0651e7510707e42b540ee3894058f3194b9c68a31e699c630e9a4f0cb18f84d35a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x99205c506ff5d8ddea36e89d56a4ab6f853efbae05be184301d98f9f98e4c0eb", - "network": "Cancun", + "lastblockhash": "0xb015e3c4708a6ccf4884f75f50c3fed6a331c0ac83669fdfa042ba0dff387217", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -780,6 +644,12 @@ "code": "0x36600060003760006000600160006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -788,14 +658,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -810,6 +672,14 @@ "code": "0x36600060003760006000600160006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30075d", @@ -821,18 +691,43 @@ }, "005-fork=Cancun-from_existent_memory-successful=True-multi_word_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09d4b6106135e497a020705058a814d88d38a6610d8df2df52ec6296673f91fdba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9d4b6106135e497a020705058a814d88d38a6610d8df2df52ec6296673f91fdb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc47f96deaf1c0e89cdcb3c3ccd1f8ac25d7012ec900d5ae6602aa0d9a8934159" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0bb6a2f92de54e63d5a85ee4bab8189669878706148f0c2a788609c4ec13c90c2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ba2a28408ca2aac9f2749725a1f840f63fb73a5b9e248d595483ecbb838daf8ca089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a025328bde133e3b43de1dcc004a5f346b7d9bd283d662a1e40eee733d133bafb7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c4ac8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0c47f96deaf1c0e89cdcb3c3ccd1f8ac25d7012ec900d5ae6602aa0d9a8934159a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dfd5dfea028223f714a5b44c3067604cc73294a955ddc56a5235396a01d73b52a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a025328bde133e3b43de1dcc004a5f346b7d9bd283d662a1e40eee733d133bafb7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c4ac8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0xbb6a2f92de54e63d5a85ee4bab8189669878706148f0c2a788609c4ec13c90c2", + "parentHash": "0xc47f96deaf1c0e89cdcb3c3ccd1f8ac25d7012ec900d5ae6602aa0d9a8934159", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xba2a28408ca2aac9f2749725a1f840f63fb73a5b9e248d595483ecbb838daf8c", + "stateRoot": "0xdfd5dfea028223f714a5b44c3067604cc73294a955ddc56a5235396a01d73b52", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x25328bde133e3b43de1dcc004a5f346b7d9bd283d662a1e40eee733d133bafb7", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -849,33 +744,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x989749bebbd3656754be4d859d17dfaf90231e65547acfc3202e7302b9a6aa58" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbb6a2f92de54e63d5a85ee4bab8189669878706148f0c2a788609c4ec13c90c2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xba2a28408ca2aac9f2749725a1f840f63fb73a5b9e248d595483ecbb838daf8c", - "receiptsRoot": "0x25328bde133e3b43de1dcc004a5f346b7d9bd283d662a1e40eee733d133bafb7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc4ac", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x989749bebbd3656754be4d859d17dfaf90231e65547acfc3202e7302b9a6aa58", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x46d9b8b1eccd8ec668a1dd7bfa0315b218a02e01a206b68149bfd2d32d334d12" }, "transactions": [ { @@ -899,39 +768,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x607b8f13a9eacf4a65d64ddfbd066fc92bb4bd02dce3ad5f9a2bd6472206a625", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbb6a2f92de54e63d5a85ee4bab8189669878706148f0c2a788609c4ec13c90c2" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0607b8f13a9eacf4a65d64ddfbd066fc92bb4bd02dce3ad5f9a2bd6472206a625a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x989749bebbd3656754be4d859d17dfaf90231e65547acfc3202e7302b9a6aa58", - "network": "Cancun", + "lastblockhash": "0x46d9b8b1eccd8ec668a1dd7bfa0315b218a02e01a206b68149bfd2d32d334d12", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -944,6 +782,12 @@ "code": "0x36600060003760006000604060006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -952,14 +796,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -974,6 +810,14 @@ "code": "0x36600060003760006000604060006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30072c", @@ -985,18 +829,43 @@ }, "006-fork=Cancun-from_existent_memory-successful=True-zero_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01e9e42468f231d8e4cd97a4513ef3409cc36122578ae0a46f87f8172a0bb57b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1e9e42468f231d8e4cd97a4513ef3409cc36122578ae0a46f87f8172a0bb57b5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc5a7219e3fbd4f8b01e71346c6ed9acf03f2d31033b0c1eedeeea373efe2be9f" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0b801ca015c4d20e9226baaf99474b4eb2398ce8a176048cbe6024f2c64ed846ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e899b3553b41e582e3fd63384b64f8bdcdb3ab805f26984f19fa5fe2c954cf31a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3178203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0c5a7219e3fbd4f8b01e71346c6ed9acf03f2d31033b0c1eedeeea373efe2be9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a0d24bd55befbf950eaa803ca7db92351430b2805ef8bbcfc2aa569206511d49a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3178203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0xb801ca015c4d20e9226baaf99474b4eb2398ce8a176048cbe6024f2c64ed846b", + "parentHash": "0xc5a7219e3fbd4f8b01e71346c6ed9acf03f2d31033b0c1eedeeea373efe2be9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe899b3553b41e582e3fd63384b64f8bdcdb3ab805f26984f19fa5fe2c954cf31", + "stateRoot": "0xa0d24bd55befbf950eaa803ca7db92351430b2805ef8bbcfc2aa569206511d49", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0xe1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1013,33 +882,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x95aff7a27af0e4ae5c64b1c15ae8527bb4f2bca1c80da04ffc355a7914892bbd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb801ca015c4d20e9226baaf99474b4eb2398ce8a176048cbe6024f2c64ed846b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe899b3553b41e582e3fd63384b64f8bdcdb3ab805f26984f19fa5fe2c954cf31", - "receiptsRoot": "0xe1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc317", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x95aff7a27af0e4ae5c64b1c15ae8527bb4f2bca1c80da04ffc355a7914892bbd", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc257d6a953df1f6e37d691e54972eed7daa9f8fcf6bf35385a28cf6a06d5d0fe" }, "transactions": [ { @@ -1063,39 +906,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc4e8a133bb2be1f87fcd9735c905764a376fa89b77583be00fe3e5d2509e4f38", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb801ca015c4d20e9226baaf99474b4eb2398ce8a176048cbe6024f2c64ed846b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c4e8a133bb2be1f87fcd9735c905764a376fa89b77583be00fe3e5d2509e4f38a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x95aff7a27af0e4ae5c64b1c15ae8527bb4f2bca1c80da04ffc355a7914892bbd", - "network": "Cancun", + "lastblockhash": "0xc257d6a953df1f6e37d691e54972eed7daa9f8fcf6bf35385a28cf6a06d5d0fe", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1108,6 +920,12 @@ "code": "0x366000600037600060006000600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -1116,14 +934,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1138,6 +948,14 @@ "code": "0x366000600037600060006000600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30123f", @@ -1149,18 +967,43 @@ }, "007-fork=Cancun-from_existent_memory-successful=True-huge_dest_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e6471e911eab28540271da62889fb3579fec14e23353c4fa91157240d3d48d7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5e6471e911eab28540271da62889fb3579fec14e23353c4fa91157240d3d48d7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1641c3c30c3e69740033dec7aa037818f9dd81a8953b44fcaca8c34f59017f48" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0650fc3382e4bcb4c845bf7fc84608f27ed5007f89d01520fb4f57c4e010b804aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0747203e1f56f47750c4d6b6afc20d109d8e9a84537d23c788c42df6be21a9440a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3178203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea01641c3c30c3e69740033dec7aa037818f9dd81a8953b44fcaca8c34f59017f48a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa075714b7179122808678badae8eb75ee938c3382af3900655d2406057cc17b286a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3178203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x650fc3382e4bcb4c845bf7fc84608f27ed5007f89d01520fb4f57c4e010b804a", + "parentHash": "0x1641c3c30c3e69740033dec7aa037818f9dd81a8953b44fcaca8c34f59017f48", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x747203e1f56f47750c4d6b6afc20d109d8e9a84537d23c788c42df6be21a9440", + "stateRoot": "0x75714b7179122808678badae8eb75ee938c3382af3900655d2406057cc17b286", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0xe1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1177,33 +1020,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x65fcf9a6351d9958bc4acc1ee92a926605da5bcdbbe4cb55d8b8f2427ec3d97e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x650fc3382e4bcb4c845bf7fc84608f27ed5007f89d01520fb4f57c4e010b804a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x747203e1f56f47750c4d6b6afc20d109d8e9a84537d23c788c42df6be21a9440", - "receiptsRoot": "0xe1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc317", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x65fcf9a6351d9958bc4acc1ee92a926605da5bcdbbe4cb55d8b8f2427ec3d97e", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf062f1fb0d7d53c375efc1bf00f39d0e75efdb38e12f673a96232a2f14fd7a9f" }, "transactions": [ { @@ -1227,39 +1044,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x41a5d4d9aa4b94c810aef47b80366e6af4da10cb1b90a949d8c731c7ca744be0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x650fc3382e4bcb4c845bf7fc84608f27ed5007f89d01520fb4f57c4e010b804a" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a041a5d4d9aa4b94c810aef47b80366e6af4da10cb1b90a949d8c731c7ca744be0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x65fcf9a6351d9958bc4acc1ee92a926605da5bcdbbe4cb55d8b8f2427ec3d97e", - "network": "Cancun", + "lastblockhash": "0xf062f1fb0d7d53c375efc1bf00f39d0e75efdb38e12f673a96232a2f14fd7a9f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1272,6 +1058,12 @@ "code": "0x36600060003760006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -1280,14 +1072,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1302,6 +1086,14 @@ "code": "0x36600060003760006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30123f", @@ -1313,18 +1105,43 @@ }, "008-fork=Cancun-from_existent_memory-successful=True-huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f85815d3fa1a79b1248e1cbc1e94f751f779eafa180b003879bddcb235a95b7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf85815d3fa1a79b1248e1cbc1e94f751f779eafa180b003879bddcb235a95b7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe62f7c20a6f5a0c8ee8a8a20e83f57d8f2c7e7f8f5ea92481b506e63dfdaffcb" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0d0f723819e952614a17643abce9fd8a5990d43f91ac31f565e49b8ef1084af20a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa040e08bef28b1a0eafed3ea52f93971ef41ca53f409d846a7a0a4a78db17d8289a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3178203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0e62f7c20a6f5a0c8ee8a8a20e83f57d8f2c7e7f8f5ea92481b506e63dfdaffcba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08eab2e229b5eef9ee6c11c0e97f3c5567f695c4713d2f42faba7452429083740a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3178203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0xd0f723819e952614a17643abce9fd8a5990d43f91ac31f565e49b8ef1084af20", + "parentHash": "0xe62f7c20a6f5a0c8ee8a8a20e83f57d8f2c7e7f8f5ea92481b506e63dfdaffcb", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x40e08bef28b1a0eafed3ea52f93971ef41ca53f409d846a7a0a4a78db17d8289", + "stateRoot": "0x8eab2e229b5eef9ee6c11c0e97f3c5567f695c4713d2f42faba7452429083740", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0xe1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1341,33 +1158,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfea4dadb7dbd203eba61e65be6c1d5234653ba79717085775e7b79eebea9927f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd0f723819e952614a17643abce9fd8a5990d43f91ac31f565e49b8ef1084af20", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x40e08bef28b1a0eafed3ea52f93971ef41ca53f409d846a7a0a4a78db17d8289", - "receiptsRoot": "0xe1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc317", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfea4dadb7dbd203eba61e65be6c1d5234653ba79717085775e7b79eebea9927f", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd3d8a914c814bbedf49ffe8080f98bfdfc3d04020ec59debb9670b507e4535dd" }, "transactions": [ { @@ -1391,39 +1182,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd54afe9baccd2f5d25fe9ae75d8a11feae8d01973ceb5f19dc20d9b94bcd48e9", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd0f723819e952614a17643abce9fd8a5990d43f91ac31f565e49b8ef1084af20" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d54afe9baccd2f5d25fe9ae75d8a11feae8d01973ceb5f19dc20d9b94bcd48e9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfea4dadb7dbd203eba61e65be6c1d5234653ba79717085775e7b79eebea9927f", - "network": "Cancun", + "lastblockhash": "0xd3d8a914c814bbedf49ffe8080f98bfdfc3d04020ec59debb9670b507e4535dd", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1436,6 +1196,12 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -1444,14 +1210,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1466,6 +1224,14 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30123f", @@ -1477,18 +1243,43 @@ }, "009-fork=Cancun-from_existent_memory-successful=True-huge_dest_huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01194725d66cab1cb2cd8beceaecd71fa3847251edd971171a4dd1127eb8774e9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1194725d66cab1cb2cd8beceaecd71fa3847251edd971171a4dd1127eb8774e9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe0ca280f63451eea680801e0a5353f3b0ff88f8364a21923469248ac079e5bfc" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea03fb9bc6886e44f6658d0b02dfbc02377ff4b6ed57fa91ec6e9a57f5f05e3c087a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0861f9ce76be630705b936ce7a58e72f5e6f74ce09bc31f87ad9d2026cd9c1be5a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3178203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0e0ca280f63451eea680801e0a5353f3b0ff88f8364a21923469248ac079e5bfca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07cbfa57224644e3b0dd15dcfab5190f22f7d0bcb9b0fb961187fad83a1ca405da089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3178203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x3fb9bc6886e44f6658d0b02dfbc02377ff4b6ed57fa91ec6e9a57f5f05e3c087", + "parentHash": "0xe0ca280f63451eea680801e0a5353f3b0ff88f8364a21923469248ac079e5bfc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x861f9ce76be630705b936ce7a58e72f5e6f74ce09bc31f87ad9d2026cd9c1be5", + "stateRoot": "0x7cbfa57224644e3b0dd15dcfab5190f22f7d0bcb9b0fb961187fad83a1ca405d", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0xe1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1505,33 +1296,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5e5b5ff35410ce0d14b9abf1bf9c53ef4ce28ec99fb06b576a313d2a2b1736dc" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3fb9bc6886e44f6658d0b02dfbc02377ff4b6ed57fa91ec6e9a57f5f05e3c087", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x861f9ce76be630705b936ce7a58e72f5e6f74ce09bc31f87ad9d2026cd9c1be5", - "receiptsRoot": "0xe1cf81a370647caa571204a9484203314341eb604d9490146283f32431257aad", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc317", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5e5b5ff35410ce0d14b9abf1bf9c53ef4ce28ec99fb06b576a313d2a2b1736dc", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe0dcf9cea3bbf1422c66939d17949881097d44739bf37017e41bca1695381535" }, "transactions": [ { @@ -1555,39 +1320,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7520a306ab62b64cc450a910320d29e447db6a3c3f47a2fa21ece551b369da92", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3fb9bc6886e44f6658d0b02dfbc02377ff4b6ed57fa91ec6e9a57f5f05e3c087" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07520a306ab62b64cc450a910320d29e447db6a3c3f47a2fa21ece551b369da92a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5e5b5ff35410ce0d14b9abf1bf9c53ef4ce28ec99fb06b576a313d2a2b1736dc", - "network": "Cancun", + "lastblockhash": "0xe0dcf9cea3bbf1422c66939d17949881097d44739bf37017e41bca1695381535", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1600,6 +1334,12 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -1608,14 +1348,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1630,6 +1362,14 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30123f", @@ -1641,18 +1381,43 @@ }, "010-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ace589a55b02ea67f88ca4105aba373568a37b7f0e43d098b6321fae24f3f65ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xace589a55b02ea67f88ca4105aba373568a37b7f0e43d098b6321fae24f3f65b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7973788cf4059000829e34b3c62c45174a1efa926c28589c658e375f68faf5e7" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea062c7d670ab5984ecd585f5ffb69f52e5f31e149ce235563cf813fe27c749acb6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05f64e07de00bf0754e5fa5794a285f9aafc3af71fd68249e70fc326efc6c53c7a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a057fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3198203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea07973788cf4059000829e34b3c62c45174a1efa926c28589c658e375f68faf5e7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06e49aaaca627980a5552755d958f786c2addc4d9ef6eca836274e7840ad91957a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a057fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3198203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x62c7d670ab5984ecd585f5ffb69f52e5f31e149ce235563cf813fe27c749acb6", + "parentHash": "0x7973788cf4059000829e34b3c62c45174a1efa926c28589c658e375f68faf5e7", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5f64e07de00bf0754e5fa5794a285f9aafc3af71fd68249e70fc326efc6c53c7", + "stateRoot": "0x6e49aaaca627980a5552755d958f786c2addc4d9ef6eca836274e7840ad91957", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x57fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1669,33 +1434,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x15e154324f07854e18c5312c2132f5cdf7142dee0c904b38d1399d38d97a18ca" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x62c7d670ab5984ecd585f5ffb69f52e5f31e149ce235563cf813fe27c749acb6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5f64e07de00bf0754e5fa5794a285f9aafc3af71fd68249e70fc326efc6c53c7", - "receiptsRoot": "0x57fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc319", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x15e154324f07854e18c5312c2132f5cdf7142dee0c904b38d1399d38d97a18ca", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xaf5c7b85c711895d0d171262f1987c1329f9ea13a58a0547f77581d91f57e9d8" }, "transactions": [ { @@ -1719,39 +1458,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd60337233c0f6e9dc1978e5daa91fc30ea1171f6211f811f8a723d474afe5a72", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x62c7d670ab5984ecd585f5ffb69f52e5f31e149ce235563cf813fe27c749acb6" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d60337233c0f6e9dc1978e5daa91fc30ea1171f6211f811f8a723d474afe5a72a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x15e154324f07854e18c5312c2132f5cdf7142dee0c904b38d1399d38d97a18ca", - "network": "Cancun", + "lastblockhash": "0xaf5c7b85c711895d0d171262f1987c1329f9ea13a58a0547f77581d91f57e9d8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1764,6 +1472,12 @@ "code": "0x366000600037600060006001600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -1772,14 +1486,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1794,6 +1500,14 @@ "code": "0x366000600037600060006001600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x301231", @@ -1805,18 +1519,43 @@ }, "011-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07b3ee36e1beec61a2a7c9a2c4d271f9fe651b8d86765376b3846de3b801bf0ada056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7b3ee36e1beec61a2a7c9a2c4d271f9fe651b8d86765376b3846de3b801bf0ad", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x073e1e06664571af951b1607cf409f0f2d2179883503dad0bcb88a83e349ef7b" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea07911d1c4caef09ea9e396e070ca92ff87058a7b6e3ccbe77567e8f980e142c1aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0554c7646f74c126b7183108a8a452fd1216322a99ed3ce7fed089f2eb8452b83a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e402afda298a6030d95dc59d4a47ab8d8e0bf3706e81ea41c2cf531ac6cedb72b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0073e1e06664571af951b1607cf409f0f2d2179883503dad0bcb88a83e349ef7ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fba3a32704fc9d3ac6d90dacd0ff3291ce7bdbe189ef62e46dffa75a58e26256a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a0e402afda298a6030d95dc59d4a47ab8d8e0bf3706e81ea41c2cf531ac6cedb72b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c31c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x7911d1c4caef09ea9e396e070ca92ff87058a7b6e3ccbe77567e8f980e142c1a", + "parentHash": "0x073e1e06664571af951b1607cf409f0f2d2179883503dad0bcb88a83e349ef7b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x554c7646f74c126b7183108a8a452fd1216322a99ed3ce7fed089f2eb8452b83", + "stateRoot": "0xfba3a32704fc9d3ac6d90dacd0ff3291ce7bdbe189ef62e46dffa75a58e26256", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0xe402afda298a6030d95dc59d4a47ab8d8e0bf3706e81ea41c2cf531ac6cedb72", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1833,33 +1572,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4e67fc4c6f71feafd8a986264110c0f169ff3a7dc704ad7258aa5ee46a96ca78" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7911d1c4caef09ea9e396e070ca92ff87058a7b6e3ccbe77567e8f980e142c1a", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x554c7646f74c126b7183108a8a452fd1216322a99ed3ce7fed089f2eb8452b83", - "receiptsRoot": "0xe402afda298a6030d95dc59d4a47ab8d8e0bf3706e81ea41c2cf531ac6cedb72", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc31c", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4e67fc4c6f71feafd8a986264110c0f169ff3a7dc704ad7258aa5ee46a96ca78", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x438ca0613b59a0ef5b0bfc2dbcde977ba8ba01271ae03710b14c68f5bca5a970" }, "transactions": [ { @@ -1883,39 +1596,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb07b3a9e489faabc78094a1f6fc14fac7178f99440bcc33d6b6e57e64faa8978", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7911d1c4caef09ea9e396e070ca92ff87058a7b6e3ccbe77567e8f980e142c1a" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b07b3a9e489faabc78094a1f6fc14fac7178f99440bcc33d6b6e57e64faa8978a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4e67fc4c6f71feafd8a986264110c0f169ff3a7dc704ad7258aa5ee46a96ca78", - "network": "Cancun", + "lastblockhash": "0x438ca0613b59a0ef5b0bfc2dbcde977ba8ba01271ae03710b14c68f5bca5a970", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1928,6 +1610,12 @@ "code": "0x36600060003760006000600160006101005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -1936,14 +1624,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -1958,6 +1638,14 @@ "code": "0x36600060003760006000600160006101005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30121c", @@ -1969,18 +1657,43 @@ }, "012-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion_word_boundary": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a075475cb6ec2eedf1186c7a7d4405b37411aa292644d1e22c28cd6d8258e86117a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x75475cb6ec2eedf1186c7a7d4405b37411aa292644d1e22c28cd6d8258e86117", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdb7d0782bff140f8c2279428156c743da0b552a5eab13cab542c0bb71b5e689c" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea04ab4fb532e7fc7a847f9b35cc86ea288ce5095d3414204fcb47f730794fb0c16a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05e3573531e6f5ebe5ccb83e37d0a1c165704d5673b8dc1618fec22c589cf3526a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a057fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3198203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0db7d0782bff140f8c2279428156c743da0b552a5eab13cab542c0bb71b5e689ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cf8b4f127d27f48cf41948bb37d783dbdba2f456f10050c2e6492363dad89137a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a057fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3198203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x4ab4fb532e7fc7a847f9b35cc86ea288ce5095d3414204fcb47f730794fb0c16", + "parentHash": "0xdb7d0782bff140f8c2279428156c743da0b552a5eab13cab542c0bb71b5e689c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5e3573531e6f5ebe5ccb83e37d0a1c165704d5673b8dc1618fec22c589cf3526", + "stateRoot": "0xcf8b4f127d27f48cf41948bb37d783dbdba2f456f10050c2e6492363dad89137", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x57fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1997,33 +1710,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6d06dad1564cf260a38e8dd0d3552405a583588c862228554c37ac4a990cd66a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ab4fb532e7fc7a847f9b35cc86ea288ce5095d3414204fcb47f730794fb0c16", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5e3573531e6f5ebe5ccb83e37d0a1c165704d5673b8dc1618fec22c589cf3526", - "receiptsRoot": "0x57fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc319", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6d06dad1564cf260a38e8dd0d3552405a583588c862228554c37ac4a990cd66a", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x15590827f315c2dbc72a3262b285aec75bb0471cdbc288085f0cf63e12b1307b" }, "transactions": [ { @@ -2047,39 +1734,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8012320557c1becf00b728d2233b5b27957814785546d74e50794284ae1c26fd", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ab4fb532e7fc7a847f9b35cc86ea288ce5095d3414204fcb47f730794fb0c16" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08012320557c1becf00b728d2233b5b27957814785546d74e50794284ae1c26fda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6d06dad1564cf260a38e8dd0d3552405a583588c862228554c37ac4a990cd66a", - "network": "Cancun", + "lastblockhash": "0x15590827f315c2dbc72a3262b285aec75bb0471cdbc288085f0cf63e12b1307b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2092,6 +1748,12 @@ "code": "0x3660006000376000600060016000601f5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -2100,14 +1762,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2122,6 +1776,14 @@ "code": "0x3660006000376000600060016000601f5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x301231", @@ -2133,18 +1795,43 @@ }, "013-fork=Cancun-from_existent_memory-successful=False-single_byte_expansion_word_boundary_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b9b9b45994e778dfc6cc112dc8e5f6dfa3d78b835811277f8e9c8ba1af3787bda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb9b9b45994e778dfc6cc112dc8e5f6dfa3d78b835811277f8e9c8ba1af3787bd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4d5f6022df998945e000b74e2951515f7a8251dd6bf57e95512f1a71c23e85e6" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0b53dc35530beb4eddb886f9fc53bc7987101d28d25f01e3cba3540c133d556ada01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa095653496d0dc9f8246c7b0bf32403f57fa84b0ce4dfbdc39021d7106fd43b4b9a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a057fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3198203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea04d5f6022df998945e000b74e2951515f7a8251dd6bf57e95512f1a71c23e85e6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01ad4350e7a092e68f0a7ea53852183b17b0f657f661f9d3529a33456011fed78a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a057fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3198203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0xb53dc35530beb4eddb886f9fc53bc7987101d28d25f01e3cba3540c133d556ad", + "parentHash": "0x4d5f6022df998945e000b74e2951515f7a8251dd6bf57e95512f1a71c23e85e6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x95653496d0dc9f8246c7b0bf32403f57fa84b0ce4dfbdc39021d7106fd43b4b9", + "stateRoot": "0x1ad4350e7a092e68f0a7ea53852183b17b0f657f661f9d3529a33456011fed78", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x57fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2161,33 +1848,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2e8221d3c4b731cb57d5dcbd405ba6859e54d2feed7f770d7fa00bf8775e9f85" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb53dc35530beb4eddb886f9fc53bc7987101d28d25f01e3cba3540c133d556ad", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x95653496d0dc9f8246c7b0bf32403f57fa84b0ce4dfbdc39021d7106fd43b4b9", - "receiptsRoot": "0x57fd621bcf72a61012302649a73b4e4b46ae1156ac45aa62646cbaef1c430240", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc319", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2e8221d3c4b731cb57d5dcbd405ba6859e54d2feed7f770d7fa00bf8775e9f85", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc0df03d1ce0918350d1cd47029892fe94ef73fdad06ceeeba49f5b12c6494b8e" }, "transactions": [ { @@ -2211,39 +1872,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf93fc7048393db08e0796039f3271cce44a7a8ebac348bec330f9cdcb6e4eafd", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb53dc35530beb4eddb886f9fc53bc7987101d28d25f01e3cba3540c133d556ad" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f93fc7048393db08e0796039f3271cce44a7a8ebac348bec330f9cdcb6e4eafda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2e8221d3c4b731cb57d5dcbd405ba6859e54d2feed7f770d7fa00bf8775e9f85", - "network": "Cancun", + "lastblockhash": "0xc0df03d1ce0918350d1cd47029892fe94ef73fdad06ceeeba49f5b12c6494b8e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2256,6 +1886,12 @@ "code": "0x366000600037600060006001600060205ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -2264,14 +1900,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2286,6 +1914,14 @@ "code": "0x366000600037600060006001600060205ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x301231", @@ -2297,18 +1933,43 @@ }, "014-fork=Cancun-from_existent_memory-successful=False-multi_word_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00554cfde7ec62bd8465a182ff3e6dadcf10a7b516239c86a19709147b1e96c8ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0554cfde7ec62bd8465a182ff3e6dadcf10a7b516239c86a19709147b1e96c8c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4b07f900b0fbcb3e84900615ee7a7fb9ff3fd63184b75c8e73a01100557c29bd" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0e4feec3f4ada2e75f64af74956f84c3a3c6e6f24d1828b491d6f05d9164b9516a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fd1515ef16c1d30fdb505cf6ee773e2443e00efd26d5919157bc6d5a207e0fdba089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a09c6cca018c900839f3eabce023d9fe5dd7872d44b92847bde93ac243219201a1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c4a48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea04b07f900b0fbcb3e84900615ee7a7fb9ff3fd63184b75c8e73a01100557c29bda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08b61a65386c855cdccca7db79b8adf89f55fabd35a4a4f3a064056ace85aa265a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a09c6cca018c900839f3eabce023d9fe5dd7872d44b92847bde93ac243219201a1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c4a48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0xe4feec3f4ada2e75f64af74956f84c3a3c6e6f24d1828b491d6f05d9164b9516", + "parentHash": "0x4b07f900b0fbcb3e84900615ee7a7fb9ff3fd63184b75c8e73a01100557c29bd", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfd1515ef16c1d30fdb505cf6ee773e2443e00efd26d5919157bc6d5a207e0fdb", + "stateRoot": "0x8b61a65386c855cdccca7db79b8adf89f55fabd35a4a4f3a064056ace85aa265", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x9c6cca018c900839f3eabce023d9fe5dd7872d44b92847bde93ac243219201a1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2325,33 +1986,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbbf185df82a36bb94cfabfa69d6d79d2c644d8853fd6ef849541655b4d42dbb2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe4feec3f4ada2e75f64af74956f84c3a3c6e6f24d1828b491d6f05d9164b9516", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfd1515ef16c1d30fdb505cf6ee773e2443e00efd26d5919157bc6d5a207e0fdb", - "receiptsRoot": "0x9c6cca018c900839f3eabce023d9fe5dd7872d44b92847bde93ac243219201a1", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc4a4", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xbbf185df82a36bb94cfabfa69d6d79d2c644d8853fd6ef849541655b4d42dbb2", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9d875bafa7096b989243744886f39bc1ab729787220405a0217fcb9835e55ee1" }, "transactions": [ { @@ -2375,39 +2010,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xe25d0e745cc3e775380fbaa554ea1a84d5811b0d4aae2d3ddaa93b87bc3188c6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe4feec3f4ada2e75f64af74956f84c3a3c6e6f24d1828b491d6f05d9164b9516" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e25d0e745cc3e775380fbaa554ea1a84d5811b0d4aae2d3ddaa93b87bc3188c6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xbbf185df82a36bb94cfabfa69d6d79d2c644d8853fd6ef849541655b4d42dbb2", - "network": "Cancun", + "lastblockhash": "0x9d875bafa7096b989243744886f39bc1ab729787220405a0217fcb9835e55ee1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2420,6 +2024,12 @@ "code": "0x36600060003760006000600160006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -2428,14 +2038,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2450,6 +2052,14 @@ "code": "0x36600060003760006000600160006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x300764", @@ -2461,61 +2071,60 @@ }, "015-fork=Cancun-from_existent_memory-successful=False-multi_word_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, - "blocks": [ - { - "rlp": "0xf903b2f9023ea0df48c15ab5d41dd66e463e015d24a8d10827888cc3c3bba1b6ae741fad02e699a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0abd92205f2865b3313d8a60b4a650a54d916bf009dd6d669a90c42433a9fd5b4a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a00f811bc4c2cef573c6fa4816e8d54107e2ddc379c1ad59eea92e78aebe404afeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c4ab8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", - "blockHeader": { - "parentHash": "0xdf48c15ab5d41dd66e463e015d24a8d10827888cc3c3bba1b6ae741fad02e699", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xabd92205f2865b3313d8a60b4a650a54d916bf009dd6d669a90c42433a9fd5b4", - "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", - "receiptTrie": "0x0f811bc4c2cef573c6fa4816e8d54107e2ddc379c1ad59eea92e78aebe404afe", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xc4ab", - "timestamp": "0x03e8", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0544223278ec50eac41473a06f6d637ad2ee3ae2197e3aa9bcad2296742d99ae7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x544223278ec50eac41473a06f6d637ad2ee3ae2197e3aa9bcad2296742d99ae7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd1876a31001647b57aabf28023d3e5ff995ff81a5052a0bcc22155c65bbadd58" + }, + "blocks": [ + { + "rlp": "0xf903b2f9023ea0d1876a31001647b57aabf28023d3e5ff995ff81a5052a0bcc22155c65bbadd58a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05df24232f006fe285460bba5ff000a41904de027c7643a63c681f8f9eb91d203a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a00f811bc4c2cef573c6fa4816e8d54107e2ddc379c1ad59eea92e78aebe404afeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c4ab8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "blockHeader": { + "parentHash": "0xd1876a31001647b57aabf28023d3e5ff995ff81a5052a0bcc22155c65bbadd58", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5df24232f006fe285460bba5ff000a41904de027c7643a63c681f8f9eb91d203", + "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", + "receiptTrie": "0x0f811bc4c2cef573c6fa4816e8d54107e2ddc379c1ad59eea92e78aebe404afe", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xc4ab", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf5986a3df4ffa4e453da7907c881d225ed18b6c8d5dcc12a5f260ef0ffc5cd0b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdf48c15ab5d41dd66e463e015d24a8d10827888cc3c3bba1b6ae741fad02e699", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xabd92205f2865b3313d8a60b4a650a54d916bf009dd6d669a90c42433a9fd5b4", - "receiptsRoot": "0x0f811bc4c2cef573c6fa4816e8d54107e2ddc379c1ad59eea92e78aebe404afe", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc4ab", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf5986a3df4ffa4e453da7907c881d225ed18b6c8d5dcc12a5f260ef0ffc5cd0b", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5c35d356673922198bdcc64e24e58f77e846bf21f9027ecf5212e7f3bd5dfe3d" }, "transactions": [ { @@ -2539,39 +2148,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x029026928204a0ca5b392c3c931c78ec3b1d6e63959b20aa8ee1cf1fb68c0b60", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdf48c15ab5d41dd66e463e015d24a8d10827888cc3c3bba1b6ae741fad02e699" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0029026928204a0ca5b392c3c931c78ec3b1d6e63959b20aa8ee1cf1fb68c0b60a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf5986a3df4ffa4e453da7907c881d225ed18b6c8d5dcc12a5f260ef0ffc5cd0b", - "network": "Cancun", + "lastblockhash": "0x5c35d356673922198bdcc64e24e58f77e846bf21f9027ecf5212e7f3bd5dfe3d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2584,6 +2162,12 @@ "code": "0x36600060003760006000604060006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -2592,14 +2176,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2614,6 +2190,14 @@ "code": "0x36600060003760006000604060006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x300733", @@ -2625,18 +2209,43 @@ }, "016-fork=Cancun-from_existent_memory-successful=False-zero_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02b7cdbf846d04cb6cbc6afdbc44f064b7861f420f277402b30f297e0a9d35824a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2b7cdbf846d04cb6cbc6afdbc44f064b7861f420f277402b30f297e0a9d35824", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x338b19d982c40ddcf8eb9353553b285d98636246cd29895620d4666e7c63bdb6" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0cc804e3c7b0e1c389ff753558ed9dcc23bf2bcf91b4a0e4eb23213582771cef1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d5135ff82777c46116004e585b7b0d826891af654546f7b7b5b0e5d6567a929ea089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a083340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0338b19d982c40ddcf8eb9353553b285d98636246cd29895620d4666e7c63bdb6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0daf6c59751ded5fc08cfebda2c5c11965f9f472936aba54fb16a7930f1aaa091a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a083340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0xcc804e3c7b0e1c389ff753558ed9dcc23bf2bcf91b4a0e4eb23213582771cef1", + "parentHash": "0x338b19d982c40ddcf8eb9353553b285d98636246cd29895620d4666e7c63bdb6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd5135ff82777c46116004e585b7b0d826891af654546f7b7b5b0e5d6567a929e", + "stateRoot": "0xdaf6c59751ded5fc08cfebda2c5c11965f9f472936aba54fb16a7930f1aaa091", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x83340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2653,33 +2262,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe2a116e467ea050f2973b10a00bcf0ccdf19ee48a45598686c633614255eb0c6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcc804e3c7b0e1c389ff753558ed9dcc23bf2bcf91b4a0e4eb23213582771cef1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd5135ff82777c46116004e585b7b0d826891af654546f7b7b5b0e5d6567a929e", - "receiptsRoot": "0x83340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc316", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe2a116e467ea050f2973b10a00bcf0ccdf19ee48a45598686c633614255eb0c6", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x01c95d5e907a1b763d51cb7631683af2e812cbc209ed0c555b7420f67bd6042e" }, "transactions": [ { @@ -2703,39 +2286,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0ca40a9852a54c8fb4d23bbe73fa12776d79024da82e5d56018cc25b7f96dfbc", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcc804e3c7b0e1c389ff753558ed9dcc23bf2bcf91b4a0e4eb23213582771cef1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00ca40a9852a54c8fb4d23bbe73fa12776d79024da82e5d56018cc25b7f96dfbca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe2a116e467ea050f2973b10a00bcf0ccdf19ee48a45598686c633614255eb0c6", - "network": "Cancun", + "lastblockhash": "0x01c95d5e907a1b763d51cb7631683af2e812cbc209ed0c555b7420f67bd6042e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2748,6 +2300,12 @@ "code": "0x366000600037600060006000600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -2756,14 +2314,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2778,6 +2328,14 @@ "code": "0x366000600037600060006000600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x301246", @@ -2789,18 +2347,43 @@ }, "017-fork=Cancun-from_existent_memory-successful=False-huge_dest_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0742c9aaf9a6f5a7713784a6fed76b2af656329c5c8a04283c166def3e0be94a8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x742c9aaf9a6f5a7713784a6fed76b2af656329c5c8a04283c166def3e0be94a8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x04bcaae733262084fddbe7aa41d3169a819acc51bb503895b2d07b1ace53ea90" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0f6e24bac9f1d6df7d850785fdf07641a1bb1c3bb95d407d752cf2cef300cf2fba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a2a0d2ac50589f4b6fefe7030817b46f2163328363de6962072e722708915a7ca089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a083340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea004bcaae733262084fddbe7aa41d3169a819acc51bb503895b2d07b1ace53ea90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ab6fc3308ae4fc88f3f04b8fc6833b8e2a51d5e7ec33383e851ba72afb7563ba089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a083340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0xf6e24bac9f1d6df7d850785fdf07641a1bb1c3bb95d407d752cf2cef300cf2fb", + "parentHash": "0x04bcaae733262084fddbe7aa41d3169a819acc51bb503895b2d07b1ace53ea90", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa2a0d2ac50589f4b6fefe7030817b46f2163328363de6962072e722708915a7c", + "stateRoot": "0x9ab6fc3308ae4fc88f3f04b8fc6833b8e2a51d5e7ec33383e851ba72afb7563b", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x83340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2817,33 +2400,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x58af25896a3ddf92c54e4b88d3e4828d7849a96543108d249bc9bf270f3d7220" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xf6e24bac9f1d6df7d850785fdf07641a1bb1c3bb95d407d752cf2cef300cf2fb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa2a0d2ac50589f4b6fefe7030817b46f2163328363de6962072e722708915a7c", - "receiptsRoot": "0x83340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc316", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x58af25896a3ddf92c54e4b88d3e4828d7849a96543108d249bc9bf270f3d7220", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5d7eeed3911e0d490432c07d2de358c89b91937a2f6c6b10655abc5d6641bf6d" }, "transactions": [ { @@ -2867,39 +2424,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x636c71d0a79988241274ce2d2fffd2bef4810d90073aceea697747d472499828", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf6e24bac9f1d6df7d850785fdf07641a1bb1c3bb95d407d752cf2cef300cf2fb" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0636c71d0a79988241274ce2d2fffd2bef4810d90073aceea697747d472499828a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x58af25896a3ddf92c54e4b88d3e4828d7849a96543108d249bc9bf270f3d7220", - "network": "Cancun", + "lastblockhash": "0x5d7eeed3911e0d490432c07d2de358c89b91937a2f6c6b10655abc5d6641bf6d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2912,6 +2438,12 @@ "code": "0x36600060003760006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -2920,14 +2452,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -2942,6 +2466,14 @@ "code": "0x36600060003760006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x301246", @@ -2953,18 +2485,43 @@ }, "018-fork=Cancun-from_existent_memory-successful=False-huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09c678fb9733addbfdd2407cf9fe4314e32063350851930451f1e62e23922005aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9c678fb9733addbfdd2407cf9fe4314e32063350851930451f1e62e23922005a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe7119381c117eb23fe0f67b738eea0e7901d44a078833119f6611084b3ca01ea" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea06a05c435e1482d472924478f48dffee903c139baa8b4738e49b895baed5591a5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa006c75b0f074f98b02ada53b5c7fc91402ff7dbc5adc5a9ef6578d56a63253a60a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a083340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea0e7119381c117eb23fe0f67b738eea0e7901d44a078833119f6611084b3ca01eaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f3591347d9a1f868659af3aab321fb416a2fd5654cd56f149e1844a7e5b84494a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a083340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0x6a05c435e1482d472924478f48dffee903c139baa8b4738e49b895baed5591a5", + "parentHash": "0xe7119381c117eb23fe0f67b738eea0e7901d44a078833119f6611084b3ca01ea", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x06c75b0f074f98b02ada53b5c7fc91402ff7dbc5adc5a9ef6578d56a63253a60", + "stateRoot": "0xf3591347d9a1f868659af3aab321fb416a2fd5654cd56f149e1844a7e5b84494", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x83340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2981,33 +2538,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7e4a64eebc76e9a00069c34c8a22c0074b6fce6032518a562809af42fea4fe91" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6a05c435e1482d472924478f48dffee903c139baa8b4738e49b895baed5591a5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x06c75b0f074f98b02ada53b5c7fc91402ff7dbc5adc5a9ef6578d56a63253a60", - "receiptsRoot": "0x83340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc316", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7e4a64eebc76e9a00069c34c8a22c0074b6fce6032518a562809af42fea4fe91", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc185e53420f569fbf231ee17ad131051e6015ad21f754d52724d0af27af0dc83" }, "transactions": [ { @@ -3031,39 +2562,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8c98ea72862f338e2e4216c2851ae5f65e55eccf416065d70a44f990c67d97cb", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6a05c435e1482d472924478f48dffee903c139baa8b4738e49b895baed5591a5" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08c98ea72862f338e2e4216c2851ae5f65e55eccf416065d70a44f990c67d97cba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7e4a64eebc76e9a00069c34c8a22c0074b6fce6032518a562809af42fea4fe91", - "network": "Cancun", + "lastblockhash": "0xc185e53420f569fbf231ee17ad131051e6015ad21f754d52724d0af27af0dc83", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3076,6 +2576,12 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -3084,14 +2590,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3106,6 +2604,14 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x301246", @@ -3117,18 +2623,43 @@ }, "019-fork=Cancun-from_existent_memory-successful=False-huge_dest_huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dec96c17bcadc66f1b1109411307b4faad14619e588e78586ef842ff293036bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdec96c17bcadc66f1b1109411307b4faad14619e588e78586ef842ff293036bf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4613a10890966cafb2b73487aaeda3c5c17ae1390010c5d7e6bb4969f008590a" + }, "blocks": [ { - "rlp": "0xf903b2f9023ea0d7b42b4e59fb2419a11114086fecf963fcbaa04c41a33bb6493e2f6f8953e745a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069ff3b99cd687d595bf3d7330b7de521ee17bf305bdba67496e04d0f2de2b120a089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a083340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", + "rlp": "0xf903b2f9023ea04613a10890966cafb2b73487aaeda3c5c17ae1390010c5d7e6bb4969f008590aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09cf9904795541632a32ad7b916184b21923e32322557f0bbe52074e7a94f86eda089946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2a083340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082c3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9016cb9016902f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9adc0c0", "blockHeader": { - "parentHash": "0xd7b42b4e59fb2419a11114086fecf963fcbaa04c41a33bb6493e2f6f8953e745", + "parentHash": "0x4613a10890966cafb2b73487aaeda3c5c17ae1390010c5d7e6bb4969f008590a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x69ff3b99cd687d595bf3d7330b7de521ee17bf305bdba67496e04d0f2de2b120", + "stateRoot": "0x9cf9904795541632a32ad7b916184b21923e32322557f0bbe52074e7a94f86ed", "transactionsTrie": "0x89946945adaf47f81a890c8928326e978976cf24abd11c89a49f7d99808b91c2", "receiptTrie": "0x83340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3145,33 +2676,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3ec6aef769859af2a446771848ba43fd8344c30cfe6ac6fece7ace392038889f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd7b42b4e59fb2419a11114086fecf963fcbaa04c41a33bb6493e2f6f8953e745", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x69ff3b99cd687d595bf3d7330b7de521ee17bf305bdba67496e04d0f2de2b120", - "receiptsRoot": "0x83340fac0d53f24b51294bb0ff1e35394d961100c362c8560d3246b4cdde5e68", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xc316", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3ec6aef769859af2a446771848ba43fd8344c30cfe6ac6fece7ace392038889f", - "transactions": [ - "0x02f90165018080078307a12094000000000000000000000000000000000000010080b90100000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeffc080a0089310bcd213e9a32e1da800e40f96b38ea429641aab3105cc56d0e01c623862a026b9448a85eaa63f9b9510ee278d1ded63d4dfb1819115f13af524ca7e06d9ad" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x68d359a6f561ec66cbf34db2ae750eea52709b30a16d33edae8673752d5c5ab2" }, "transactions": [ { @@ -3195,39 +2700,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5cf7bd2e22e971e01038169c568d6e7d4da88099ab22f00beacd98269dbf8119", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd7b42b4e59fb2419a11114086fecf963fcbaa04c41a33bb6493e2f6f8953e745" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05cf7bd2e22e971e01038169c568d6e7d4da88099ab22f00beacd98269dbf8119a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3ec6aef769859af2a446771848ba43fd8344c30cfe6ac6fece7ace392038889f", - "network": "Cancun", + "lastblockhash": "0x68d359a6f561ec66cbf34db2ae750eea52709b30a16d33edae8673752d5c5ab2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3240,6 +2714,12 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -3248,14 +2728,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3270,6 +2742,14 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x301246", @@ -3281,18 +2761,43 @@ }, "020-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e369e73cf20ebfeeb69be4ec5c05ee54f93b4f1bd187fa012d6aba6ed094a76ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe369e73cf20ebfeeb69be4ec5c05ee54f93b4f1bd187fa012d6aba6ed094a76b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd0ceaa680bec0c97503227b7e6ad7652ca7be681b12b102725e9c6f7c58eab23" + }, "blocks": [ { - "rlp": "0xf902adf9023ea03c2d18d9fed428487fb9f24c87ebb58bcf7d15bf9e9991517013be9a58985711a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04bfa18c298100ca695a429072b608f23f7ed5b422c72ad748d777f639194f471a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a06577da877d0f9db7223d701b2873c42b460a3762bfcf18893a00cdd7b2b50877b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea0d0ceaa680bec0c97503227b7e6ad7652ca7be681b12b102725e9c6f7c58eab23a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bfef6655ab1932729a1687e629a107da064dbbe98071613a1cf92fb120b23f62a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a06577da877d0f9db7223d701b2873c42b460a3762bfcf18893a00cdd7b2b50877b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x3c2d18d9fed428487fb9f24c87ebb58bcf7d15bf9e9991517013be9a58985711", + "parentHash": "0xd0ceaa680bec0c97503227b7e6ad7652ca7be681b12b102725e9c6f7c58eab23", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4bfa18c298100ca695a429072b608f23f7ed5b422c72ad748d777f639194f471", + "stateRoot": "0xbfef6655ab1932729a1687e629a107da064dbbe98071613a1cf92fb120b23f62", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x6577da877d0f9db7223d701b2873c42b460a3762bfcf18893a00cdd7b2b50877", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3309,33 +2814,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x512f708f470389107c0af733caf86171c26f1bf46b642858cb071f1b728bb501" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x3c2d18d9fed428487fb9f24c87ebb58bcf7d15bf9e9991517013be9a58985711", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x4bfa18c298100ca695a429072b608f23f7ed5b422c72ad748d777f639194f471", - "receiptsRoot": "0x6577da877d0f9db7223d701b2873c42b460a3762bfcf18893a00cdd7b2b50877", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c9", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x512f708f470389107c0af733caf86171c26f1bf46b642858cb071f1b728bb501", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb76f8c4b60c88166d943f86efaa1b24f4847c87c95d2d2e6e92ce2425235f49d" }, "transactions": [ { @@ -3359,39 +2838,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5e64e3be1f11e052b7bb46c10602f029f657f8284245ff07be71ee82f9506a08", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3c2d18d9fed428487fb9f24c87ebb58bcf7d15bf9e9991517013be9a58985711" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e64e3be1f11e052b7bb46c10602f029f657f8284245ff07be71ee82f9506a08a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x512f708f470389107c0af733caf86171c26f1bf46b642858cb071f1b728bb501", - "network": "Cancun", + "lastblockhash": "0xb76f8c4b60c88166d943f86efaa1b24f4847c87c95d2d2e6e92ce2425235f49d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3404,6 +2852,12 @@ "code": "0x366000600037600060006001600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -3412,14 +2866,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3434,6 +2880,14 @@ "code": "0x366000600037600060006001600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x308461", @@ -3445,18 +2899,43 @@ }, "021-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0105a133674811e5f5c251551c6a22fca1839400b847f6b616a9a06a7b05d654da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x105a133674811e5f5c251551c6a22fca1839400b847f6b616a9a06a7b05d654d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4316616a7cfa1aab424af06774086b67b56754301a0985bb167567654cab4591" + }, "blocks": [ { - "rlp": "0xf902adf9023ea0cdd9ec7c5de9a2df23ea4e44b9606fdbfcafe7f127abfe9175e77a53dd27cd5da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa098b9fbc6cf019d346598649713aa65693c9c6d7e1f7a5b43eb38538b4692d068a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0478254e96e9d5d2bb3a4e6ccfcac4c3f51e2597862854ab924e13f1ec54ac9feb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2e18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea04316616a7cfa1aab424af06774086b67b56754301a0985bb167567654cab4591a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06959fd67d5fb70a64509ad2c1523f97d5289e1ea21f9512d9b621d9442910aaba0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0478254e96e9d5d2bb3a4e6ccfcac4c3f51e2597862854ab924e13f1ec54ac9feb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2e18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0xcdd9ec7c5de9a2df23ea4e44b9606fdbfcafe7f127abfe9175e77a53dd27cd5d", + "parentHash": "0x4316616a7cfa1aab424af06774086b67b56754301a0985bb167567654cab4591", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x98b9fbc6cf019d346598649713aa65693c9c6d7e1f7a5b43eb38538b4692d068", + "stateRoot": "0x6959fd67d5fb70a64509ad2c1523f97d5289e1ea21f9512d9b621d9442910aab", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x478254e96e9d5d2bb3a4e6ccfcac4c3f51e2597862854ab924e13f1ec54ac9fe", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3473,33 +2952,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb2cfaf2deb43fbdb154492e5d0ba6910d3daac2af5bb02fa33414a81f9eb34e8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcdd9ec7c5de9a2df23ea4e44b9606fdbfcafe7f127abfe9175e77a53dd27cd5d", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x98b9fbc6cf019d346598649713aa65693c9c6d7e1f7a5b43eb38538b4692d068", - "receiptsRoot": "0x478254e96e9d5d2bb3a4e6ccfcac4c3f51e2597862854ab924e13f1ec54ac9fe", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2e1", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xb2cfaf2deb43fbdb154492e5d0ba6910d3daac2af5bb02fa33414a81f9eb34e8", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb404f35889a64e5fe97a49c1999647d3f7fd8c544e95338f8b31ff04fa2f1aaf" }, "transactions": [ { @@ -3523,39 +2976,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x2f1210f4302229d58d928a50c7732c9ffc2fbf5de3991526a94311c3cfa107c7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcdd9ec7c5de9a2df23ea4e44b9606fdbfcafe7f127abfe9175e77a53dd27cd5d" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02f1210f4302229d58d928a50c7732c9ffc2fbf5de3991526a94311c3cfa107c7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xb2cfaf2deb43fbdb154492e5d0ba6910d3daac2af5bb02fa33414a81f9eb34e8", - "network": "Cancun", + "lastblockhash": "0xb404f35889a64e5fe97a49c1999647d3f7fd8c544e95338f8b31ff04fa2f1aaf", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3568,6 +2990,12 @@ "code": "0x36600060003760006000600160006101005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -3576,14 +3004,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3598,6 +3018,14 @@ "code": "0x36600060003760006000600160006101005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x3083b9", @@ -3609,18 +3037,43 @@ }, "022-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion_word_boundary": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b3b17f8913a5016cc0a40288987ee338caaac456e05779e2f68fc89264a26941a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb3b17f8913a5016cc0a40288987ee338caaac456e05779e2f68fc89264a26941", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f1b4060d7e20fcacdd7ae012c19a7d53f1c40e15a1d6eba3be091cb73b1bf5a" + }, "blocks": [ { - "rlp": "0xf902adf9023ea05bbeca3210d0fa2b0cb8ef5941375d5083c633a4c6853e1c29cd4f5005aa85e6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01be4676bb9daee45b5dad539395cf2085c818146d4cfaa8c82319da36989d7aaa0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a06577da877d0f9db7223d701b2873c42b460a3762bfcf18893a00cdd7b2b50877b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea07f1b4060d7e20fcacdd7ae012c19a7d53f1c40e15a1d6eba3be091cb73b1bf5aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01c9bbd08d80b75b3266c4cda24991c291649ad3c2ba111453353b0bdfc7c7356a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a06577da877d0f9db7223d701b2873c42b460a3762bfcf18893a00cdd7b2b50877b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x5bbeca3210d0fa2b0cb8ef5941375d5083c633a4c6853e1c29cd4f5005aa85e6", + "parentHash": "0x7f1b4060d7e20fcacdd7ae012c19a7d53f1c40e15a1d6eba3be091cb73b1bf5a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1be4676bb9daee45b5dad539395cf2085c818146d4cfaa8c82319da36989d7aa", + "stateRoot": "0x1c9bbd08d80b75b3266c4cda24991c291649ad3c2ba111453353b0bdfc7c7356", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x6577da877d0f9db7223d701b2873c42b460a3762bfcf18893a00cdd7b2b50877", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3637,33 +3090,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaf9e5f532c5dd3a33f964a983bd146cd0f39b1b9ac2abdc9ab391172d0415190" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5bbeca3210d0fa2b0cb8ef5941375d5083c633a4c6853e1c29cd4f5005aa85e6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1be4676bb9daee45b5dad539395cf2085c818146d4cfaa8c82319da36989d7aa", - "receiptsRoot": "0x6577da877d0f9db7223d701b2873c42b460a3762bfcf18893a00cdd7b2b50877", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c9", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xaf9e5f532c5dd3a33f964a983bd146cd0f39b1b9ac2abdc9ab391172d0415190", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6fcfe1305e61481f55f4d829510b157761fbc4b0000d35e2636b30e46d60b906" }, "transactions": [ { @@ -3687,39 +3114,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfc367cf5e21c665f6431e23a2c5c456a51377d6ff56fed0e5fb06db64a514b0b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5bbeca3210d0fa2b0cb8ef5941375d5083c633a4c6853e1c29cd4f5005aa85e6" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fc367cf5e21c665f6431e23a2c5c456a51377d6ff56fed0e5fb06db64a514b0ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xaf9e5f532c5dd3a33f964a983bd146cd0f39b1b9ac2abdc9ab391172d0415190", - "network": "Cancun", + "lastblockhash": "0x6fcfe1305e61481f55f4d829510b157761fbc4b0000d35e2636b30e46d60b906", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3732,6 +3128,12 @@ "code": "0x3660006000376000600060016000601f5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -3740,14 +3142,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3762,6 +3156,14 @@ "code": "0x3660006000376000600060016000601f5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x308461", @@ -3773,18 +3175,43 @@ }, "023-fork=Cancun-from_empty_memory-successful=True-single_byte_expansion_word_boundary_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d0e0b94e2a194325acdb199ef7fc933eb621eb5b1432938cc011934a7dc0ea80a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd0e0b94e2a194325acdb199ef7fc933eb621eb5b1432938cc011934a7dc0ea80", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9aa0073cd89908f387023b46b87dd6a85726fc99ea52fd7f840a2f964213060c" + }, "blocks": [ { - "rlp": "0xf902adf9023ea05c713833993f9973ca3941e380e3e3e4af7670dc876cd3c7fe2d1062de88075ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c7f7435125c236b59d43aa4b6e9ca9f2268891f11e39dc0e66201c3d88b45f4ba0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0d579836094458f922a59f37949d8a6e9956c8e8ba3fef61f57acf20969e71b81b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2cc8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea09aa0073cd89908f387023b46b87dd6a85726fc99ea52fd7f840a2f964213060ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0811937eef3b88fc6f4a0df77538fcfe6019451b87b4455e6f62e700aba14b194a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0d579836094458f922a59f37949d8a6e9956c8e8ba3fef61f57acf20969e71b81b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2cc8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x5c713833993f9973ca3941e380e3e3e4af7670dc876cd3c7fe2d1062de88075b", + "parentHash": "0x9aa0073cd89908f387023b46b87dd6a85726fc99ea52fd7f840a2f964213060c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc7f7435125c236b59d43aa4b6e9ca9f2268891f11e39dc0e66201c3d88b45f4b", + "stateRoot": "0x811937eef3b88fc6f4a0df77538fcfe6019451b87b4455e6f62e700aba14b194", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0xd579836094458f922a59f37949d8a6e9956c8e8ba3fef61f57acf20969e71b81", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3801,33 +3228,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6e8a7fb36360b557ae9a5dc8a51c56b407f997b76b2d4641c6da628e5da5b8cd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5c713833993f9973ca3941e380e3e3e4af7670dc876cd3c7fe2d1062de88075b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc7f7435125c236b59d43aa4b6e9ca9f2268891f11e39dc0e66201c3d88b45f4b", - "receiptsRoot": "0xd579836094458f922a59f37949d8a6e9956c8e8ba3fef61f57acf20969e71b81", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2cc", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6e8a7fb36360b557ae9a5dc8a51c56b407f997b76b2d4641c6da628e5da5b8cd", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x09e614f9b4fe0c08bf619b0312fcd304386abd9ebe9f2b2f5a21a0e0b882363b" }, "transactions": [ { @@ -3851,39 +3252,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x28a37164e2a0e8e3923919c7c00fc91ee30fb542241d17b42cd5705ed3765fc0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5c713833993f9973ca3941e380e3e3e4af7670dc876cd3c7fe2d1062de88075b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a028a37164e2a0e8e3923919c7c00fc91ee30fb542241d17b42cd5705ed3765fc0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6e8a7fb36360b557ae9a5dc8a51c56b407f997b76b2d4641c6da628e5da5b8cd", - "network": "Cancun", + "lastblockhash": "0x09e614f9b4fe0c08bf619b0312fcd304386abd9ebe9f2b2f5a21a0e0b882363b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3896,6 +3266,12 @@ "code": "0x366000600037600060006001600060205ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -3904,14 +3280,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -3926,6 +3294,14 @@ "code": "0x366000600037600060006001600060205ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30844c", @@ -3937,18 +3313,43 @@ }, "024-fork=Cancun-from_empty_memory-successful=True-multi_word_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e2c8015caa9249501d6fc8b794123604a84710a8e03557b5315444bc261cae95a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe2c8015caa9249501d6fc8b794123604a84710a8e03557b5315444bc261cae95", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x19a04883c587d2fd80c545daddedba6d7bfe6832b1f688c2df18b6edcbfcb68b" + }, "blocks": [ { - "rlp": "0xf902adf9023ea0a70cfa6eacf4953377cb024658fd3ef63c1960eb600f84305b4e8e3a84b23022a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0233d61c4017b588fdfc2865d28638007333d89b4f9148733e393e655f32ff7faa0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a03eea34e6c85619ee398c9550b90542e0920f3d931615a858fa0e09a780866bfeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b4698203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea019a04883c587d2fd80c545daddedba6d7bfe6832b1f688c2df18b6edcbfcb68ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a2445dd1d563e87826f467f4ac076172d81d36051d86b2977e9881ab4d0b402a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a03eea34e6c85619ee398c9550b90542e0920f3d931615a858fa0e09a780866bfeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b4698203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0xa70cfa6eacf4953377cb024658fd3ef63c1960eb600f84305b4e8e3a84b23022", + "parentHash": "0x19a04883c587d2fd80c545daddedba6d7bfe6832b1f688c2df18b6edcbfcb68b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x233d61c4017b588fdfc2865d28638007333d89b4f9148733e393e655f32ff7fa", + "stateRoot": "0x4a2445dd1d563e87826f467f4ac076172d81d36051d86b2977e9881ab4d0b402", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x3eea34e6c85619ee398c9550b90542e0920f3d931615a858fa0e09a780866bfe", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3965,33 +3366,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x81ffab401a747806b640d050b7889a8c722cd43a381ebac1c27e899bbd51e5e7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa70cfa6eacf4953377cb024658fd3ef63c1960eb600f84305b4e8e3a84b23022", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x233d61c4017b588fdfc2865d28638007333d89b4f9148733e393e655f32ff7fa", - "receiptsRoot": "0x3eea34e6c85619ee398c9550b90542e0920f3d931615a858fa0e09a780866bfe", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb469", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x81ffab401a747806b640d050b7889a8c722cd43a381ebac1c27e899bbd51e5e7", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x47845b6d8812ceb0e18002f3bcb0389b7fb488a50443dee58183d59c2e2baaba" }, "transactions": [ { @@ -4015,39 +3390,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8278a00c32d146e10b388aee9e0c36c26bedc6bf8bc6b18c3f3120f469992f3a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa70cfa6eacf4953377cb024658fd3ef63c1960eb600f84305b4e8e3a84b23022" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08278a00c32d146e10b388aee9e0c36c26bedc6bf8bc6b18c3f3120f469992f3aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x81ffab401a747806b640d050b7889a8c722cd43a381ebac1c27e899bbd51e5e7", - "network": "Cancun", + "lastblockhash": "0x47845b6d8812ceb0e18002f3bcb0389b7fb488a50443dee58183d59c2e2baaba", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4060,6 +3404,12 @@ "code": "0x36600060003760006000600160006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -4068,14 +3418,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4090,6 +3432,14 @@ "code": "0x36600060003760006000600160006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x307901", @@ -4101,18 +3451,43 @@ }, "025-fork=Cancun-from_empty_memory-successful=True-multi_word_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d79a9503132492a47a7d990bfde3009d8e5f11dcf2c37663ef32691052829549a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd79a9503132492a47a7d990bfde3009d8e5f11dcf2c37663ef32691052829549", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x43206c564ddf428c5ddd0238f19e9fe57811353c9ef3462a317c1edebaa03f8a" + }, "blocks": [ { - "rlp": "0xf902adf9023ea06ec9f5723053267554448e0af326f056d7865803f055edbeb6239f73a93aa394a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03c747605a0cd99327f98fe9a8951d5f4d158d4eba8b27338ab81adc5aff2a2cfa0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0ccefa857e9fa6e0a6c0bb02c697a92955f013b95a7b5bceb6f1a9e4db794f820b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b4708203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea043206c564ddf428c5ddd0238f19e9fe57811353c9ef3462a317c1edebaa03f8aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f6d43fce88518b76093813a902597f06ace01edf4b0cc3c474c45c49b61dec9a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0ccefa857e9fa6e0a6c0bb02c697a92955f013b95a7b5bceb6f1a9e4db794f820b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b4708203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x6ec9f5723053267554448e0af326f056d7865803f055edbeb6239f73a93aa394", + "parentHash": "0x43206c564ddf428c5ddd0238f19e9fe57811353c9ef3462a317c1edebaa03f8a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3c747605a0cd99327f98fe9a8951d5f4d158d4eba8b27338ab81adc5aff2a2cf", + "stateRoot": "0x7f6d43fce88518b76093813a902597f06ace01edf4b0cc3c474c45c49b61dec9", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0xccefa857e9fa6e0a6c0bb02c697a92955f013b95a7b5bceb6f1a9e4db794f820", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4129,33 +3504,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1817090c8166ac6a4182cc97d648fd2beed5dfd383edac0ca0840c0d451b42bd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6ec9f5723053267554448e0af326f056d7865803f055edbeb6239f73a93aa394", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3c747605a0cd99327f98fe9a8951d5f4d158d4eba8b27338ab81adc5aff2a2cf", - "receiptsRoot": "0xccefa857e9fa6e0a6c0bb02c697a92955f013b95a7b5bceb6f1a9e4db794f820", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb470", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x1817090c8166ac6a4182cc97d648fd2beed5dfd383edac0ca0840c0d451b42bd", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x37f2b917495a99b855274b7e6597a4a2cc43a96a07d9b809a926bb24cc3b7045" }, "transactions": [ { @@ -4179,39 +3528,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb57f92629047d263c362c41aaf712ed2d459982baf40b3d72ba1a9faffd4a24b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6ec9f5723053267554448e0af326f056d7865803f055edbeb6239f73a93aa394" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b57f92629047d263c362c41aaf712ed2d459982baf40b3d72ba1a9faffd4a24ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1817090c8166ac6a4182cc97d648fd2beed5dfd383edac0ca0840c0d451b42bd", - "network": "Cancun", + "lastblockhash": "0x37f2b917495a99b855274b7e6597a4a2cc43a96a07d9b809a926bb24cc3b7045", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4224,6 +3542,12 @@ "code": "0x36600060003760006000604060006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -4232,14 +3556,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4254,6 +3570,14 @@ "code": "0x36600060003760006000604060006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x3078d0", @@ -4265,25 +3589,50 @@ }, "026-fork=Cancun-from_empty_memory-successful=True-zero_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, - "blocks": [ - { - "rlp": "0xf902adf9023ea0915e5e39a0f7ffc724b647732e1d1c49b29a5026ad1044e7387d310e47c29af8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b600656259dd6f07edaa0b1f576be91b236afcd68feb52324c9f6fd423d20328a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0c5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", - "blockHeader": { - "parentHash": "0x915e5e39a0f7ffc724b647732e1d1c49b29a5026ad1044e7387d310e47c29af8", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb600656259dd6f07edaa0b1f576be91b236afcd68feb52324c9f6fd423d20328", - "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", - "receiptTrie": "0xc5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xb2c3", + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bac9c5d76bbb66b8ab1ab4a8874cc6e700c610dedd6a2be98f3c561202064964a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbac9c5d76bbb66b8ab1ab4a8874cc6e700c610dedd6a2be98f3c561202064964", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe55401f0e8cc545a85b6c87632546c3fa90f71c89ee1f196f517a5f5b10c40bb" + }, + "blocks": [ + { + "rlp": "0xf902adf9023ea0e55401f0e8cc545a85b6c87632546c3fa90f71c89ee1f196f517a5f5b10c40bba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08f410c13851dad90506ff6b396d5e9aeeb6b8efcf3327ffda9587d64606043d7a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0c5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "blockHeader": { + "parentHash": "0xe55401f0e8cc545a85b6c87632546c3fa90f71c89ee1f196f517a5f5b10c40bb", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8f410c13851dad90506ff6b396d5e9aeeb6b8efcf3327ffda9587d64606043d7", + "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", + "receiptTrie": "0xc5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xb2c3", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4293,33 +3642,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdd56d2c9c9935063e1fe06b800ea6c10bc11e0dbb8d1c77bf7413b83326af0eb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x915e5e39a0f7ffc724b647732e1d1c49b29a5026ad1044e7387d310e47c29af8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb600656259dd6f07edaa0b1f576be91b236afcd68feb52324c9f6fd423d20328", - "receiptsRoot": "0xc5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c3", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xdd56d2c9c9935063e1fe06b800ea6c10bc11e0dbb8d1c77bf7413b83326af0eb", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8f4d5e6ee5b082d975f85f87bc6379d5c612be36824ac8b7d05d27ae91f969df" }, "transactions": [ { @@ -4343,39 +3666,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xbeba20cf1db99858c1c77acae6392f2ee9590a50b65e43c2f0a8ffecf607f2b7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x915e5e39a0f7ffc724b647732e1d1c49b29a5026ad1044e7387d310e47c29af8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0beba20cf1db99858c1c77acae6392f2ee9590a50b65e43c2f0a8ffecf607f2b7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xdd56d2c9c9935063e1fe06b800ea6c10bc11e0dbb8d1c77bf7413b83326af0eb", - "network": "Cancun", + "lastblockhash": "0x8f4d5e6ee5b082d975f85f87bc6379d5c612be36824ac8b7d05d27ae91f969df", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4388,6 +3680,12 @@ "code": "0x366000600037600060006000600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -4396,14 +3694,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4418,6 +3708,14 @@ "code": "0x366000600037600060006000600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30848b", @@ -4429,18 +3727,43 @@ }, "027-fork=Cancun-from_empty_memory-successful=True-huge_dest_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bb391c48f29b7b72be0bff71ee27a7a9c26942e568f3407eac77b345a6cf2f8da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbb391c48f29b7b72be0bff71ee27a7a9c26942e568f3407eac77b345a6cf2f8d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x78a42d24e800259b968ec2468b093d8b70497b8c3430cf803e6c96304de521d9" + }, "blocks": [ { - "rlp": "0xf902adf9023ea0be6588d8566a33386f2854ab826bc644f234a1e659d0d7766e1193d14c1d5b11a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03106ac75d634a0a1c79e3e9d811c59ebeb0b9fb9da6d00af8cbc0709b4096ad6a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0c5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea078a42d24e800259b968ec2468b093d8b70497b8c3430cf803e6c96304de521d9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0822d99e271cc3731491ee202ee1182fc88c2e2331c30f9473be1f7eef7c9aacba0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0c5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0xbe6588d8566a33386f2854ab826bc644f234a1e659d0d7766e1193d14c1d5b11", + "parentHash": "0x78a42d24e800259b968ec2468b093d8b70497b8c3430cf803e6c96304de521d9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3106ac75d634a0a1c79e3e9d811c59ebeb0b9fb9da6d00af8cbc0709b4096ad6", + "stateRoot": "0x822d99e271cc3731491ee202ee1182fc88c2e2331c30f9473be1f7eef7c9aacb", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0xc5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4457,33 +3780,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3152574f18b9a951549b2d9116be9c1ae69f07f4fc317934f1ff28e44d1867f8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbe6588d8566a33386f2854ab826bc644f234a1e659d0d7766e1193d14c1d5b11", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3106ac75d634a0a1c79e3e9d811c59ebeb0b9fb9da6d00af8cbc0709b4096ad6", - "receiptsRoot": "0xc5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c3", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3152574f18b9a951549b2d9116be9c1ae69f07f4fc317934f1ff28e44d1867f8", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbe976d766391732191f4aac353ff9db2158d80c82609b5e193ebc971e7513317" }, "transactions": [ { @@ -4507,39 +3804,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x16e1d40635b57d02a24bb8494128efffe80563c9689a4e0daf1e80e6a91402c0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbe6588d8566a33386f2854ab826bc644f234a1e659d0d7766e1193d14c1d5b11" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a016e1d40635b57d02a24bb8494128efffe80563c9689a4e0daf1e80e6a91402c0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3152574f18b9a951549b2d9116be9c1ae69f07f4fc317934f1ff28e44d1867f8", - "network": "Cancun", + "lastblockhash": "0xbe976d766391732191f4aac353ff9db2158d80c82609b5e193ebc971e7513317", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4552,6 +3818,12 @@ "code": "0x36600060003760006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -4560,14 +3832,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4582,6 +3846,14 @@ "code": "0x36600060003760006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30848b", @@ -4593,18 +3865,43 @@ }, "028-fork=Cancun-from_empty_memory-successful=True-huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dc541789271f09980e4dbb84047e061afd1e31ee601e13c5d029e52abf804457a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdc541789271f09980e4dbb84047e061afd1e31ee601e13c5d029e52abf804457", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9ff03cb7c9ed232dc32d370fb8dfb8743eebcb0593bab50df125d25d457e457f" + }, "blocks": [ { - "rlp": "0xf902adf9023ea00a5ee3ad96dcc4897fb97cb803e07642c827d6f598bd91e8793fd52f964ca4a9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e13b02d327226bb324604fccf32d6b38dd80117caec10d1e5a894e75d2088e1ba0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0c5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea09ff03cb7c9ed232dc32d370fb8dfb8743eebcb0593bab50df125d25d457e457fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b91b67cd5be9c1fa5dc1b9cbc128cf69322e3467dbf0d628d41a883ac5bc729fa0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0c5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x0a5ee3ad96dcc4897fb97cb803e07642c827d6f598bd91e8793fd52f964ca4a9", + "parentHash": "0x9ff03cb7c9ed232dc32d370fb8dfb8743eebcb0593bab50df125d25d457e457f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe13b02d327226bb324604fccf32d6b38dd80117caec10d1e5a894e75d2088e1b", + "stateRoot": "0xb91b67cd5be9c1fa5dc1b9cbc128cf69322e3467dbf0d628d41a883ac5bc729f", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0xc5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4621,33 +3918,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd474521cfa75ba4f3bc5dd62cfc4e5168527ccca551baabee7249bb25286d200" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0a5ee3ad96dcc4897fb97cb803e07642c827d6f598bd91e8793fd52f964ca4a9", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe13b02d327226bb324604fccf32d6b38dd80117caec10d1e5a894e75d2088e1b", - "receiptsRoot": "0xc5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c3", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd474521cfa75ba4f3bc5dd62cfc4e5168527ccca551baabee7249bb25286d200", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x302c4c65e53d9229282dd99261d95e7a50456ccc7ca8ed7c9cd68e9e63ab0c90" }, "transactions": [ { @@ -4671,39 +3942,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc0a26b8d412af1e33ed7892c076d4f8091302eee9deb363ffc040549b7a761b4", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0a5ee3ad96dcc4897fb97cb803e07642c827d6f598bd91e8793fd52f964ca4a9" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c0a26b8d412af1e33ed7892c076d4f8091302eee9deb363ffc040549b7a761b4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd474521cfa75ba4f3bc5dd62cfc4e5168527ccca551baabee7249bb25286d200", - "network": "Cancun", + "lastblockhash": "0x302c4c65e53d9229282dd99261d95e7a50456ccc7ca8ed7c9cd68e9e63ab0c90", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4716,6 +3956,12 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -4724,14 +3970,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4746,6 +3984,14 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30848b", @@ -4757,18 +4003,43 @@ }, "029-fork=Cancun-from_empty_memory-successful=True-huge_dest_huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e4dfd03dacb040bcfc5d6fc2b3e1ff67cb8040c6254322bffb10f0ade28cfe5aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe4dfd03dacb040bcfc5d6fc2b3e1ff67cb8040c6254322bffb10f0ade28cfe5a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xec04dd71aa624c2e6ff8dc4398fc6f06de8f6aa53eaa3b9d3ad9f4368815cbae" + }, "blocks": [ { - "rlp": "0xf902adf9023ea08e850d851509d5ee3bc5368c533f9fee0a43dbcc50c6aab411d8b8e80cdc342fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cc6fc1f9563468dd3a815b15ca76aa3bda23767e1f310947498fe6d935978573a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0c5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea0ec04dd71aa624c2e6ff8dc4398fc6f06de8f6aa53eaa3b9d3ad9f4368815cbaea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e63393ba9594b231fa618535e4fb08643bef08f3086ccbb9d59132a0dc363d86a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0c5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x8e850d851509d5ee3bc5368c533f9fee0a43dbcc50c6aab411d8b8e80cdc342f", + "parentHash": "0xec04dd71aa624c2e6ff8dc4398fc6f06de8f6aa53eaa3b9d3ad9f4368815cbae", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcc6fc1f9563468dd3a815b15ca76aa3bda23767e1f310947498fe6d935978573", + "stateRoot": "0xe63393ba9594b231fa618535e4fb08643bef08f3086ccbb9d59132a0dc363d86", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0xc5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4785,33 +4056,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xccbdc04c2523de416cbec29a0509dc3184a0916a7a7e489fe0f4383571d676ff" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8e850d851509d5ee3bc5368c533f9fee0a43dbcc50c6aab411d8b8e80cdc342f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xcc6fc1f9563468dd3a815b15ca76aa3bda23767e1f310947498fe6d935978573", - "receiptsRoot": "0xc5379770a88e5073e9a5a12049da4e6e1043a8b48fd6fb3a919e83ab0d5f40d7", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c3", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xccbdc04c2523de416cbec29a0509dc3184a0916a7a7e489fe0f4383571d676ff", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xdf000b4d30979e7b330fade914b9b798b48af38f094092cbd8536f71ee6ec5fe" }, "transactions": [ { @@ -4835,39 +4080,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc1b2a6a5203dcb3cb4c7acc29e8732475568c8292747b3c7dd8fc0e88d2ee469", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8e850d851509d5ee3bc5368c533f9fee0a43dbcc50c6aab411d8b8e80cdc342f" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c1b2a6a5203dcb3cb4c7acc29e8732475568c8292747b3c7dd8fc0e88d2ee469a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xccbdc04c2523de416cbec29a0509dc3184a0916a7a7e489fe0f4383571d676ff", - "network": "Cancun", + "lastblockhash": "0xdf000b4d30979e7b330fade914b9b798b48af38f094092cbd8536f71ee6ec5fe", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4880,6 +4094,12 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -4888,14 +4108,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -4910,6 +4122,14 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x30848b", @@ -4921,18 +4141,43 @@ }, "030-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a4ecbacec8a69ec7ecb6cca725e389eb118ea1b0495aa997adaa395912a38c1ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa4ecbacec8a69ec7ecb6cca725e389eb118ea1b0495aa997adaa395912a38c1b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x16d0cc2b75a6c41ae1de8a084b3092173deda64313b9e4b19a3a30388eacc5d0" + }, "blocks": [ { - "rlp": "0xf902adf9023ea012c3e417f78b49ec399e6c9f507dd9dc8fa7b8cd407ef381563aeeb13a53e0f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08ce222f73059046697622941e28f33165cf37063c79757b9e3efdcfcd0293327a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0eb7a3c088e8b6862ee13fa5812d2008b94d1824e75410ae5016bea701f04acc5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c88203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea016d0cc2b75a6c41ae1de8a084b3092173deda64313b9e4b19a3a30388eacc5d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa097df3df99efbe9ac9cb0e5eff5d9079375c8a152f7510a8bcf4e85caaedba10aa0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0eb7a3c088e8b6862ee13fa5812d2008b94d1824e75410ae5016bea701f04acc5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c88203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x12c3e417f78b49ec399e6c9f507dd9dc8fa7b8cd407ef381563aeeb13a53e0f0", + "parentHash": "0x16d0cc2b75a6c41ae1de8a084b3092173deda64313b9e4b19a3a30388eacc5d0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8ce222f73059046697622941e28f33165cf37063c79757b9e3efdcfcd0293327", + "stateRoot": "0x97df3df99efbe9ac9cb0e5eff5d9079375c8a152f7510a8bcf4e85caaedba10a", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0xeb7a3c088e8b6862ee13fa5812d2008b94d1824e75410ae5016bea701f04acc5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4949,33 +4194,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0bf5e812d73835375ea671fea62f24be5a244242551b3ce0e1b6276734d1229c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x12c3e417f78b49ec399e6c9f507dd9dc8fa7b8cd407ef381563aeeb13a53e0f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8ce222f73059046697622941e28f33165cf37063c79757b9e3efdcfcd0293327", - "receiptsRoot": "0xeb7a3c088e8b6862ee13fa5812d2008b94d1824e75410ae5016bea701f04acc5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c8", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0bf5e812d73835375ea671fea62f24be5a244242551b3ce0e1b6276734d1229c", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa9290e74c92787f110bde9ce3ea6cb940f62fb6c694751aa9df8bb392c35b33d" }, "transactions": [ { @@ -4999,39 +4218,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xebfe088dd300a05e554a1e24d57e1d17572507b93be7759b0eebe7a1ec24de50", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x12c3e417f78b49ec399e6c9f507dd9dc8fa7b8cd407ef381563aeeb13a53e0f0" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ebfe088dd300a05e554a1e24d57e1d17572507b93be7759b0eebe7a1ec24de50a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0bf5e812d73835375ea671fea62f24be5a244242551b3ce0e1b6276734d1229c", - "network": "Cancun", + "lastblockhash": "0xa9290e74c92787f110bde9ce3ea6cb940f62fb6c694751aa9df8bb392c35b33d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5044,6 +4232,12 @@ "code": "0x366000600037600060006001600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -5052,14 +4246,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5074,6 +4260,14 @@ "code": "0x366000600037600060006001600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x308468", @@ -5085,18 +4279,43 @@ }, "031-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08f482239f94f666f24a930f8edff3f84ebb3b550add8ce4255ac7e7061a32985a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8f482239f94f666f24a930f8edff3f84ebb3b550add8ce4255ac7e7061a32985", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc076853d71ee018ad04176e00ae97e608181a7f0459f0e53b1bed015e78837a9" + }, "blocks": [ { - "rlp": "0xf902adf9023ea072a2c172af5ac842270ccf82d63f52c0146a77ad565aca945587452c4f2571c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fdca451671feb19b8f71487dd3b3ba45a28e88af37c4cd601fc03e7f8a7942f3a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0a6ef46fc8938ae1dbf868f33bc8cf891d7710cfc563e7d4a702b1c6c3b470e93b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2e08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea0c076853d71ee018ad04176e00ae97e608181a7f0459f0e53b1bed015e78837a9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa039d3e23e38170c9293a9e98fbe2b29c903b2b5fb2810c8d38297d0dca66266f1a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0a6ef46fc8938ae1dbf868f33bc8cf891d7710cfc563e7d4a702b1c6c3b470e93b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2e08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x72a2c172af5ac842270ccf82d63f52c0146a77ad565aca945587452c4f2571c0", + "parentHash": "0xc076853d71ee018ad04176e00ae97e608181a7f0459f0e53b1bed015e78837a9", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfdca451671feb19b8f71487dd3b3ba45a28e88af37c4cd601fc03e7f8a7942f3", + "stateRoot": "0x39d3e23e38170c9293a9e98fbe2b29c903b2b5fb2810c8d38297d0dca66266f1", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0xa6ef46fc8938ae1dbf868f33bc8cf891d7710cfc563e7d4a702b1c6c3b470e93", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5113,33 +4332,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf438b7b80542c5fa2de918b9aedc98f20b29768b2209ec87b57fd0d555b9fbf3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x72a2c172af5ac842270ccf82d63f52c0146a77ad565aca945587452c4f2571c0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfdca451671feb19b8f71487dd3b3ba45a28e88af37c4cd601fc03e7f8a7942f3", - "receiptsRoot": "0xa6ef46fc8938ae1dbf868f33bc8cf891d7710cfc563e7d4a702b1c6c3b470e93", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2e0", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf438b7b80542c5fa2de918b9aedc98f20b29768b2209ec87b57fd0d555b9fbf3", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x28d56c56403fcf3e2ff0ecfcb729a4ac5373fff2e8d7a4ff994029ea03c15045" }, "transactions": [ { @@ -5163,39 +4356,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5742abdb1fc507ad4d59480cf022280e47df07ee80e2995632ac88de6eadd4e0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x72a2c172af5ac842270ccf82d63f52c0146a77ad565aca945587452c4f2571c0" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05742abdb1fc507ad4d59480cf022280e47df07ee80e2995632ac88de6eadd4e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf438b7b80542c5fa2de918b9aedc98f20b29768b2209ec87b57fd0d555b9fbf3", - "network": "Cancun", + "lastblockhash": "0x28d56c56403fcf3e2ff0ecfcb729a4ac5373fff2e8d7a4ff994029ea03c15045", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5208,6 +4370,12 @@ "code": "0x36600060003760006000600160006101005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -5216,14 +4384,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5238,6 +4398,14 @@ "code": "0x36600060003760006000600160006101005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x3083c0", @@ -5249,18 +4417,43 @@ }, "032-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion_word_boundary": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cbcb6d48ee1da257dbb7c3349b84c01d517cbe503e7211ba28f2973c51840932a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcbcb6d48ee1da257dbb7c3349b84c01d517cbe503e7211ba28f2973c51840932", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x79789cb020a1178da222f32b7857caeecdc76285ba5dda22bf6ece82fa98556d" + }, "blocks": [ { - "rlp": "0xf902adf9023ea05448b2af490223831c850a11875d508fe4a1b8e982bca7042626366852d4fda8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05666ad94d1d8032642eeb2ce7bf1a169403de5a6ee209900aa94922277f6fc42a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0eb7a3c088e8b6862ee13fa5812d2008b94d1824e75410ae5016bea701f04acc5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c88203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea079789cb020a1178da222f32b7857caeecdc76285ba5dda22bf6ece82fa98556da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04e7512a1c7d3d029c5f832add3c8dd2e144ac27963a1c5cd8594faaf4c28e0fda0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0eb7a3c088e8b6862ee13fa5812d2008b94d1824e75410ae5016bea701f04acc5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c88203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x5448b2af490223831c850a11875d508fe4a1b8e982bca7042626366852d4fda8", + "parentHash": "0x79789cb020a1178da222f32b7857caeecdc76285ba5dda22bf6ece82fa98556d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5666ad94d1d8032642eeb2ce7bf1a169403de5a6ee209900aa94922277f6fc42", + "stateRoot": "0x4e7512a1c7d3d029c5f832add3c8dd2e144ac27963a1c5cd8594faaf4c28e0fd", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0xeb7a3c088e8b6862ee13fa5812d2008b94d1824e75410ae5016bea701f04acc5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5277,89 +4470,32 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x247ed52fdf393415a84d77b59a80ed2aee271a448c1a8c932d6b5ddff0ba2874" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x5448b2af490223831c850a11875d508fe4a1b8e982bca7042626366852d4fda8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5666ad94d1d8032642eeb2ce7bf1a169403de5a6ee209900aa94922277f6fc42", - "receiptsRoot": "0xeb7a3c088e8b6862ee13fa5812d2008b94d1824e75410ae5016bea701f04acc5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c8", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x247ed52fdf393415a84d77b59a80ed2aee271a448c1a8c932d6b5ddff0ba2874", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8949b0c1954643a6dbda343ee4684ffc89c91278b7f4f852690e19a992a43645" }, "transactions": [ - { - "type": "0x02", - "chainId": "0x01", - "nonce": "0x00", - "maxPriorityFeePerGas": "0x00", - "maxFeePerGas": "0x07", - "gasLimit": "0x07a120", - "to": "0x0000000000000000000000000000000000000100", - "value": "0x00", - "data": "0x", - "accessList": [], - "v": "0x01", - "r": "0x2377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9", - "s": "0x77708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc", - "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" - } - ], - "uncleHeaders": [], - "withdrawals": [] - } - ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x83ebf966d748cce9f3a38b7ebe4241f158983edd0a85e1486878cd025e6ab5f8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5448b2af490223831c850a11875d508fe4a1b8e982bca7042626366852d4fda8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a083ebf966d748cce9f3a38b7ebe4241f158983edd0a85e1486878cd025e6ab5f8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x247ed52fdf393415a84d77b59a80ed2aee271a448c1a8c932d6b5ddff0ba2874", - "network": "Cancun", + { + "type": "0x02", + "chainId": "0x01", + "nonce": "0x00", + "maxPriorityFeePerGas": "0x00", + "maxFeePerGas": "0x07", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "accessList": [], + "v": "0x01", + "r": "0x2377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9", + "s": "0x77708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8949b0c1954643a6dbda343ee4684ffc89c91278b7f4f852690e19a992a43645", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5372,6 +4508,12 @@ "code": "0x3660006000376000600060016000601f5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -5380,14 +4522,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5402,6 +4536,14 @@ "code": "0x3660006000376000600060016000601f5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x308468", @@ -5413,18 +4555,43 @@ }, "033-fork=Cancun-from_empty_memory-successful=False-single_byte_expansion_word_boundary_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04256c901ad59625d0cb3d8cad39f3db8481846e15fbd49d37689b5c0436dc0c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4256c901ad59625d0cb3d8cad39f3db8481846e15fbd49d37689b5c0436dc0c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa6b3b31fafa0aa078733c59c4f9f79e76fe9bb5c223e8945bb1b0d9037f0a68a" + }, "blocks": [ { - "rlp": "0xf902adf9023ea0b8b8cfc1b57d04963d7266034e5865b52d99a24c239d20b38c67737df892dae3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa098acd1148ed8764e8585b290f35a69a88ab05291720ddac670f3c9cef325e99da0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0e3143a1a3cd2bb4a891eb634289c4643795cf3dfa3bf798b08004448f01772abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea0a6b3b31fafa0aa078733c59c4f9f79e76fe9bb5c223e8945bb1b0d9037f0a68aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0780c60d262836bf8101fa859a917842bfd8ddcd06fb116f1ac242da3afe5e8e7a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a0e3143a1a3cd2bb4a891eb634289c4643795cf3dfa3bf798b08004448f01772abb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0xb8b8cfc1b57d04963d7266034e5865b52d99a24c239d20b38c67737df892dae3", + "parentHash": "0xa6b3b31fafa0aa078733c59c4f9f79e76fe9bb5c223e8945bb1b0d9037f0a68a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x98acd1148ed8764e8585b290f35a69a88ab05291720ddac670f3c9cef325e99d", + "stateRoot": "0x780c60d262836bf8101fa859a917842bfd8ddcd06fb116f1ac242da3afe5e8e7", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0xe3143a1a3cd2bb4a891eb634289c4643795cf3dfa3bf798b08004448f01772ab", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5441,33 +4608,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd07c5bfc724b0703c876c8efc91a0d5d4eeb135142875b4c3e42cbb2e916dca3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb8b8cfc1b57d04963d7266034e5865b52d99a24c239d20b38c67737df892dae3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x98acd1148ed8764e8585b290f35a69a88ab05291720ddac670f3c9cef325e99d", - "receiptsRoot": "0xe3143a1a3cd2bb4a891eb634289c4643795cf3dfa3bf798b08004448f01772ab", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2cb", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd07c5bfc724b0703c876c8efc91a0d5d4eeb135142875b4c3e42cbb2e916dca3", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5c30436177886475ab6ecad6d3aed360de293c9366fdf18c7a20e27fadaf7c49" }, "transactions": [ { @@ -5491,39 +4632,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xe0369b49a2a021cb04aeaec6da98b099c808d9e9b6f8ee58dda5f9113aaf80ef", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb8b8cfc1b57d04963d7266034e5865b52d99a24c239d20b38c67737df892dae3" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e0369b49a2a021cb04aeaec6da98b099c808d9e9b6f8ee58dda5f9113aaf80efa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd07c5bfc724b0703c876c8efc91a0d5d4eeb135142875b4c3e42cbb2e916dca3", - "network": "Cancun", + "lastblockhash": "0x5c30436177886475ab6ecad6d3aed360de293c9366fdf18c7a20e27fadaf7c49", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5536,6 +4646,12 @@ "code": "0x366000600037600060006001600060205ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -5544,14 +4660,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5566,6 +4674,14 @@ "code": "0x366000600037600060006001600060205ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x308453", @@ -5577,18 +4693,43 @@ }, "034-fork=Cancun-from_empty_memory-successful=False-multi_word_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0182b462c4f6ea5c8038ee7f974b47d679900424afc7b55cd822d82ad037f1f22a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x182b462c4f6ea5c8038ee7f974b47d679900424afc7b55cd822d82ad037f1f22", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xee585d14eb13571a48e81147b0521c745b976a4f4a0c4908caa08f9666901e59" + }, "blocks": [ { - "rlp": "0xf902adf9023ea0d4ad62fda818fb59e01062a99d9d6af5c95f6efd45fdbfceddce35ba294b7518a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa055f975b282a1d59874fc1c3cce34e181969015e581d6c4abe71eb7193973d421a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a08b54a2f4f37c89e90696715b0817d7644c1ff68f2e7413d17376360b83f06b89b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b4688203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea0ee585d14eb13571a48e81147b0521c745b976a4f4a0c4908caa08f9666901e59a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01e9242fba98974dac0a78a28e63b81d4998f8566f4c8a3b566ebf4760d64c577a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a08b54a2f4f37c89e90696715b0817d7644c1ff68f2e7413d17376360b83f06b89b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b4688203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0xd4ad62fda818fb59e01062a99d9d6af5c95f6efd45fdbfceddce35ba294b7518", + "parentHash": "0xee585d14eb13571a48e81147b0521c745b976a4f4a0c4908caa08f9666901e59", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55f975b282a1d59874fc1c3cce34e181969015e581d6c4abe71eb7193973d421", + "stateRoot": "0x1e9242fba98974dac0a78a28e63b81d4998f8566f4c8a3b566ebf4760d64c577", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x8b54a2f4f37c89e90696715b0817d7644c1ff68f2e7413d17376360b83f06b89", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5605,33 +4746,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x22e8b94be56b396c3fc339e7e12f3b69a5361a865be7ed791445bfcca6f8e5bb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd4ad62fda818fb59e01062a99d9d6af5c95f6efd45fdbfceddce35ba294b7518", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x55f975b282a1d59874fc1c3cce34e181969015e581d6c4abe71eb7193973d421", - "receiptsRoot": "0x8b54a2f4f37c89e90696715b0817d7644c1ff68f2e7413d17376360b83f06b89", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb468", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x22e8b94be56b396c3fc339e7e12f3b69a5361a865be7ed791445bfcca6f8e5bb", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x513881a0a519a0b47c414a2d090ebb73958508515ae94e96122122a74520ea58" }, "transactions": [ { @@ -5655,39 +4770,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x05c147ac5db88c3a01a7bd396e96f4e0e255427e54908edb607ad25ac75540cf", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd4ad62fda818fb59e01062a99d9d6af5c95f6efd45fdbfceddce35ba294b7518" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a005c147ac5db88c3a01a7bd396e96f4e0e255427e54908edb607ad25ac75540cfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x22e8b94be56b396c3fc339e7e12f3b69a5361a865be7ed791445bfcca6f8e5bb", - "network": "Cancun", + "lastblockhash": "0x513881a0a519a0b47c414a2d090ebb73958508515ae94e96122122a74520ea58", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5700,6 +4784,12 @@ "code": "0x36600060003760006000600160006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -5708,14 +4798,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5730,6 +4812,14 @@ "code": "0x36600060003760006000600160006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x307908", @@ -5741,18 +4831,43 @@ }, "035-fork=Cancun-from_empty_memory-successful=False-multi_word_expansion_2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05b053fd9572cb06de7cbd1aaedf54835a663d3ff65c60e4bb590b3e33ed1cdada056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5b053fd9572cb06de7cbd1aaedf54835a663d3ff65c60e4bb590b3e33ed1cdad", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x761be0bf1f821a5e02083f6717640c2d69eecb430de81171f238f1689ff501a4" + }, "blocks": [ { - "rlp": "0xf902adf9023ea0ae3bf7af971b4a2db1a257155120d12cf5c4850e35cf93cab7ee563f999ff436a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002f2e9f5a9a6b9c658be19b53540afe33679439b769070dcd3689c438792f704a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a061a6a8691c72a44b4c09248d61c171a0738791abc7894d4b883b0a506588d95fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b46f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea0761be0bf1f821a5e02083f6717640c2d69eecb430de81171f238f1689ff501a4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0064ca5d70786417110d9bb99f8c0bdb6e39ef1bcd3aea930ad312aee6b1272f7a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a061a6a8691c72a44b4c09248d61c171a0738791abc7894d4b883b0a506588d95fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b46f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0xae3bf7af971b4a2db1a257155120d12cf5c4850e35cf93cab7ee563f999ff436", + "parentHash": "0x761be0bf1f821a5e02083f6717640c2d69eecb430de81171f238f1689ff501a4", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x02f2e9f5a9a6b9c658be19b53540afe33679439b769070dcd3689c438792f704", + "stateRoot": "0x064ca5d70786417110d9bb99f8c0bdb6e39ef1bcd3aea930ad312aee6b1272f7", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x61a6a8691c72a44b4c09248d61c171a0738791abc7894d4b883b0a506588d95f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5769,33 +4884,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5416c99fce41885b7cd9f1ae17de0f7c8938a29685382fdf7a79b671978ca45d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xae3bf7af971b4a2db1a257155120d12cf5c4850e35cf93cab7ee563f999ff436", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x02f2e9f5a9a6b9c658be19b53540afe33679439b769070dcd3689c438792f704", - "receiptsRoot": "0x61a6a8691c72a44b4c09248d61c171a0738791abc7894d4b883b0a506588d95f", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb46f", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5416c99fce41885b7cd9f1ae17de0f7c8938a29685382fdf7a79b671978ca45d", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x49ff3f5f5707137a10e936eb05a1701cb6717cff6bc408e06f6e6182976a5641" }, "transactions": [ { @@ -5819,39 +4908,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x299c7ebd089c6fae4a3114c27aeb307f2c0a5a93674605ea8addc5a030b8387d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xae3bf7af971b4a2db1a257155120d12cf5c4850e35cf93cab7ee563f999ff436" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0299c7ebd089c6fae4a3114c27aeb307f2c0a5a93674605ea8addc5a030b8387da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5416c99fce41885b7cd9f1ae17de0f7c8938a29685382fdf7a79b671978ca45d", - "network": "Cancun", + "lastblockhash": "0x49ff3f5f5707137a10e936eb05a1701cb6717cff6bc408e06f6e6182976a5641", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5864,6 +4922,12 @@ "code": "0x36600060003760006000604060006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -5872,14 +4936,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -5894,6 +4950,14 @@ "code": "0x36600060003760006000604060006110005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x3078d7", @@ -5905,18 +4969,43 @@ }, "036-fork=Cancun-from_empty_memory-successful=False-zero_length_expansion": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f58a09d454d3da75210aa4df00bfcd0b9aaa037167b9c8695441cbacfca151b4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf58a09d454d3da75210aa4df00bfcd0b9aaa037167b9c8695441cbacfca151b4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe6e867f6ebd3d1d468216a3ab97ffd4de0e9f874edd6d6164a3fc3d5c526fcd8" + }, "blocks": [ { - "rlp": "0xf902adf9023ea005af66a12c958ef0f1d4f625f235d1b30815516a95283638bd88623fdc5872d6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0443d85b30ed855f724320c80c7520c5aacb1bf23ba5964d4e68113ade6cadd18a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a00871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3aeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea0e6e867f6ebd3d1d468216a3ab97ffd4de0e9f874edd6d6164a3fc3d5c526fcd8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07efe91dd82df802002d78be3e60919ba944b9954f2905629cd5a828e69dd9578a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a00871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3aeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0x05af66a12c958ef0f1d4f625f235d1b30815516a95283638bd88623fdc5872d6", + "parentHash": "0xe6e867f6ebd3d1d468216a3ab97ffd4de0e9f874edd6d6164a3fc3d5c526fcd8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x443d85b30ed855f724320c80c7520c5aacb1bf23ba5964d4e68113ade6cadd18", + "stateRoot": "0x7efe91dd82df802002d78be3e60919ba944b9954f2905629cd5a828e69dd9578", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x0871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3ae", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -5933,33 +5022,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4cbfaab4b7e9e023deb4579ee0c30c7b792b10c775d814c32a273a95709d8faa" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x05af66a12c958ef0f1d4f625f235d1b30815516a95283638bd88623fdc5872d6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x443d85b30ed855f724320c80c7520c5aacb1bf23ba5964d4e68113ade6cadd18", - "receiptsRoot": "0x0871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3ae", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c2", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4cbfaab4b7e9e023deb4579ee0c30c7b792b10c775d814c32a273a95709d8faa", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb17484fb4b99de74717276fe45c67487c4555ac2fae3658828a22d21e4ecdb95" }, "transactions": [ { @@ -5983,39 +5046,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4237b9c93f813194f020c75bbe5ca5df44e8c7334b6e42fbb3724f4dbd44040d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x05af66a12c958ef0f1d4f625f235d1b30815516a95283638bd88623fdc5872d6" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04237b9c93f813194f020c75bbe5ca5df44e8c7334b6e42fbb3724f4dbd44040da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4cbfaab4b7e9e023deb4579ee0c30c7b792b10c775d814c32a273a95709d8faa", - "network": "Cancun", + "lastblockhash": "0xb17484fb4b99de74717276fe45c67487c4555ac2fae3658828a22d21e4ecdb95", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -6028,6 +5060,12 @@ "code": "0x366000600037600060006000600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -6036,14 +5074,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -6058,6 +5088,14 @@ "code": "0x366000600037600060006000600060005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x308492", @@ -6069,18 +5107,43 @@ }, "037-fork=Cancun-from_empty_memory-successful=False-huge_dest_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0388ae822a146edc3447040a34fbda2f48b0c56c73c33f04bbc0adae98fedea66a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x388ae822a146edc3447040a34fbda2f48b0c56c73c33f04bbc0adae98fedea66", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9c9a7358fd8ed5fae2ac8d95fe307193f935415ba9c344e05381c86574e5fd88" + }, "blocks": [ { - "rlp": "0xf902adf9023ea0cb301842b61892852071460405ccd95255c29669fec11dd1b21c01c4f7349b85a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa030717be65a10ba3e904abdb827f2857dfc8cb996d6ddc02c9a706e48b51a2431a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a00871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3aeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea09c9a7358fd8ed5fae2ac8d95fe307193f935415ba9c344e05381c86574e5fd88a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04dcc3166eba990b73e23ddc94468bf666ac9fb9f42f38a59360ad2a76cb3ed76a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a00871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3aeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0xcb301842b61892852071460405ccd95255c29669fec11dd1b21c01c4f7349b85", + "parentHash": "0x9c9a7358fd8ed5fae2ac8d95fe307193f935415ba9c344e05381c86574e5fd88", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x30717be65a10ba3e904abdb827f2857dfc8cb996d6ddc02c9a706e48b51a2431", + "stateRoot": "0x4dcc3166eba990b73e23ddc94468bf666ac9fb9f42f38a59360ad2a76cb3ed76", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x0871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3ae", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6097,33 +5160,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x32e960bc56a65e7866479ffc390eb7274d154cb9d382c53af1afaa482f616733" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcb301842b61892852071460405ccd95255c29669fec11dd1b21c01c4f7349b85", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x30717be65a10ba3e904abdb827f2857dfc8cb996d6ddc02c9a706e48b51a2431", - "receiptsRoot": "0x0871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3ae", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c2", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x32e960bc56a65e7866479ffc390eb7274d154cb9d382c53af1afaa482f616733", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9d3c88a70291928fba6267b27176e488e7dc0752bf0ee3cf3b7fbc500982a5d8" }, "transactions": [ { @@ -6147,39 +5184,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x89406214cb306261bc3c2b8580bc67b1db406de37749a1caed7fb6c82197fc36", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcb301842b61892852071460405ccd95255c29669fec11dd1b21c01c4f7349b85" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089406214cb306261bc3c2b8580bc67b1db406de37749a1caed7fb6c82197fc36a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x32e960bc56a65e7866479ffc390eb7274d154cb9d382c53af1afaa482f616733", - "network": "Cancun", + "lastblockhash": "0x9d3c88a70291928fba6267b27176e488e7dc0752bf0ee3cf3b7fbc500982a5d8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -6192,6 +5198,12 @@ "code": "0x36600060003760006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -6200,14 +5212,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -6222,6 +5226,14 @@ "code": "0x36600060003760006000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x308492", @@ -6233,18 +5245,43 @@ }, "038-fork=Cancun-from_empty_memory-successful=False-huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0348b7f20e6bc1e08495489c336bf9fd071c2771dac9c9e59798d3e7d154b64eaa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x348b7f20e6bc1e08495489c336bf9fd071c2771dac9c9e59798d3e7d154b64ea", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x24449a51704f574cfb4f4e38b6d13535b947005393f11ca8181ac1ac3238b6f6" + }, "blocks": [ { - "rlp": "0xf902adf9023ea0ecac77ea858e9d2918d4155f9c882a752040e37e14989eabce12c21310ce95f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dbe94b7a95d0a1bc64d0c11259267f9fb8811fbff98076646205ad6a49828751a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a00871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3aeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea024449a51704f574cfb4f4e38b6d13535b947005393f11ca8181ac1ac3238b6f6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fa052cc7b60dfb931780a96e8d0fa5c108ae56b60ca4f287dfe329b55956d7b5a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a00871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3aeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0xecac77ea858e9d2918d4155f9c882a752040e37e14989eabce12c21310ce95f0", + "parentHash": "0x24449a51704f574cfb4f4e38b6d13535b947005393f11ca8181ac1ac3238b6f6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdbe94b7a95d0a1bc64d0c11259267f9fb8811fbff98076646205ad6a49828751", + "stateRoot": "0xfa052cc7b60dfb931780a96e8d0fa5c108ae56b60ca4f287dfe329b55956d7b5", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x0871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3ae", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6261,33 +5298,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2c8482aa61947108a7588b9257c7820d3e714ba32c17c5e90949c2cb02da6c4a" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xecac77ea858e9d2918d4155f9c882a752040e37e14989eabce12c21310ce95f0", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xdbe94b7a95d0a1bc64d0c11259267f9fb8811fbff98076646205ad6a49828751", - "receiptsRoot": "0x0871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3ae", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c2", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2c8482aa61947108a7588b9257c7820d3e714ba32c17c5e90949c2cb02da6c4a", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x3f7d4e1d37a3e37699b0546dc95704fdbdafac067261dd990c19269f2c1f3d69" }, "transactions": [ { @@ -6311,39 +5322,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5efb93516960a76f0db9162fe79874a2d25982ee05867bae30d2e9cb2cdc14f1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xecac77ea858e9d2918d4155f9c882a752040e37e14989eabce12c21310ce95f0" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05efb93516960a76f0db9162fe79874a2d25982ee05867bae30d2e9cb2cdc14f1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2c8482aa61947108a7588b9257c7820d3e714ba32c17c5e90949c2cb02da6c4a", - "network": "Cancun", + "lastblockhash": "0x3f7d4e1d37a3e37699b0546dc95704fdbdafac067261dd990c19269f2c1f3d69", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -6356,6 +5336,12 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -6364,14 +5350,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -6386,6 +5364,14 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60005ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x308492", @@ -6397,18 +5383,43 @@ }, "039-fork=Cancun-from_empty_memory-successful=False-huge_dest_huge_src_zero_length": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-5656.md", "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b4d027faeddb7183e899654342ef5d7dbbf63e17c8a2e3dffe62f142d2b933afa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb4d027faeddb7183e899654342ef5d7dbbf63e17c8a2e3dffe62f142d2b933af", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe910a6b725ec13457526fc2d4cbe10f76735fc9b864dd9d947cf02e765b0ed20" + }, "blocks": [ { - "rlp": "0xf902adf9023ea0fff61b76651b12bbfcb73147c569c563798894cc8980fad3ef43e8c5efae6730a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e3e5c4653f8fd01e1d5ca570c11a71faf69bb9cfd20e8071b015da310b91da7ca0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a00871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3aeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", + "rlp": "0xf902adf9023ea0e910a6b725ec13457526fc2d4cbe10f76735fc9b864dd9d947cf02e765b0ed20a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa060f9c4caed95094a8d0cd4e3257cd33d2ab3f7e05c56a19d5043a4c5554cada9a0c23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9a00871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3aeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b2c28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f868b86602f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fcc0c0", "blockHeader": { - "parentHash": "0xfff61b76651b12bbfcb73147c569c563798894cc8980fad3ef43e8c5efae6730", + "parentHash": "0xe910a6b725ec13457526fc2d4cbe10f76735fc9b864dd9d947cf02e765b0ed20", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe3e5c4653f8fd01e1d5ca570c11a71faf69bb9cfd20e8071b015da310b91da7c", + "stateRoot": "0x60f9c4caed95094a8d0cd4e3257cd33d2ab3f7e05c56a19d5043a4c5554cada9", "transactionsTrie": "0xc23518817df3595f8a19622d76b3cc3e53cf364576f0491e645bd808edf483d9", "receiptTrie": "0x0871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3ae", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -6425,33 +5436,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x524eab4f5c4bf3030e3ac190335320ce7d663310d480364a421732f7a22f7e7e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xfff61b76651b12bbfcb73147c569c563798894cc8980fad3ef43e8c5efae6730", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe3e5c4653f8fd01e1d5ca570c11a71faf69bb9cfd20e8071b015da310b91da7c", - "receiptsRoot": "0x0871012a9e0e10aa0a5000fdcbe8786dad9a2a380bda1fa7f33cae573b7ab3ae", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0xb2c2", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x524eab4f5c4bf3030e3ac190335320ce7d663310d480364a421732f7a22f7e7e", - "transactions": [ - "0x02f863018080078307a1209400000000000000000000000000000000000001008080c001a02377a34de7c8959d5422de9e45db6706278cbab53bad8e0811f36cc66314fea9a077708c5af841710bd2d0af800dd38af7bdd990dbe638e02d37793544243025fc" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x40bfc64fe235a5861e53369b46ea6250f71c50da623f257fd100981193fa9e8b" }, "transactions": [ { @@ -6475,39 +5460,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf09d886ef83ab6f44bda97ef610349e206afdded7fa142bbaf9cd97d5266ea7d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfff61b76651b12bbfcb73147c569c563798894cc8980fad3ef43e8c5efae6730" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f09d886ef83ab6f44bda97ef610349e206afdded7fa142bbaf9cd97d5266ea7da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x524eab4f5c4bf3030e3ac190335320ce7d663310d480364a421732f7a22f7e7e", - "network": "Cancun", + "lastblockhash": "0x40bfc64fe235a5861e53369b46ea6250f71c50da623f257fd100981193fa9e8b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -6520,6 +5474,12 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3567e0", @@ -6528,14 +5488,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -6550,6 +5502,14 @@ "code": "0x3660006000376000600060007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5ef3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", "balance": "0x308492", diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json index b3ec1577223..57cdb743f12 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/create_selfdestruct_same_tx.json @@ -1,18 +1,40 @@ { - "000-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE": { + "000-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852" + }, "blocks": [ { - "rlp": "0xf9037ff9023fa04ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a623a26dd7a670db472d814ae696fe04741e72cd35175a547de31daca52bc070a0daa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499ea03228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1248203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90138f90135800a8405f5e10080830186a0b8e460166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca08602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169a00748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851c0c0", + "rlp": "0xf9035cf9021ca0ea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa002cdbe1ef77e60e28927e359c262a016b0417d1273fc73bf69e3c13bd024b033a0daa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499ea03228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1248203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90138f90135800a8405f5e10080830186a0b8e460166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca08602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169a00748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851c0c0", "blockHeader": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", + "parentHash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa623a26dd7a670db472d814ae696fe04741e72cd35175a547de31daca52bc070", + "stateRoot": "0x02cdbe1ef77e60e28927e359c262a016b0417d1273fc73bf69e3c13bd024b033", "transactionsTrie": "0xdaa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499e", "receiptTrie": "0x3228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -26,36 +48,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc2acb780b0aebac69bf8a7088550e75000054afbfe17ce10f1166f9662002970" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa623a26dd7a670db472d814ae696fe04741e72cd35175a547de31daca52bc070", - "receiptsRoot": "0x3228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3f124", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc2acb780b0aebac69bf8a7088550e75000054afbfe17ce10f1166f9662002970", - "transactions": [ - "0xf90135800a8405f5e10080830186a0b8e460166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca08602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169a00748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6087f7cc759d4bc9aa6dfe57a7ac6d9595f59b6efb46898f89d10d158fe7aa0c" }, "transactions": [ { @@ -77,39 +70,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc2acb780b0aebac69bf8a7088550e75000054afbfe17ce10f1166f9662002970", - "network": "Cancun", + "lastblockhash": "0x6087f7cc759d4bc9aa6dfe57a7ac6d9595f59b6efb46898f89d10d158fe7aa0c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -138,14 +100,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -194,20 +148,42 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE2": { + "001-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852" + }, "blocks": [ { - "rlp": "0xf90381f9023fa04ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01c809d884f4835c404c780d076d4b85f65c1cf43106a6c5709352a8db4c0fa74a0ffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9dfa0e797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1418203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9013af90137800a8405f5e10080830186a0b8e660166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f31ba0f073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7a07b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8c0c0", + "rlp": "0xf9035ef9021ca0ea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2f24ec69b2c5a010e15d68442243a18128ab244c600b7d178c82dcd4bedfb67a0ffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9dfa0e797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1418203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9013af90137800a8405f5e10080830186a0b8e660166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f31ba0f073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7a07b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8c0c0", "blockHeader": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", + "parentHash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1c809d884f4835c404c780d076d4b85f65c1cf43106a6c5709352a8db4c0fa74", + "stateRoot": "0xc2f24ec69b2c5a010e15d68442243a18128ab244c600b7d178c82dcd4bedfb67", "transactionsTrie": "0xffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9df", "receiptTrie": "0xe797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -221,36 +197,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x295c356f139f323a4377224f223cded5df4128eb2b9b57b5f23a9fdd83987829" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1c809d884f4835c404c780d076d4b85f65c1cf43106a6c5709352a8db4c0fa74", - "receiptsRoot": "0xe797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3f141", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x295c356f139f323a4377224f223cded5df4128eb2b9b57b5f23a9fdd83987829", - "transactions": [ - "0xf90137800a8405f5e10080830186a0b8e660166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f31ba0f073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7a07b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb45236f2622ea384018d8777e5a78252e8d0f385ebb64bd961e9d461420c4f8f" }, "transactions": [ { @@ -272,39 +219,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x295c356f139f323a4377224f223cded5df4128eb2b9b57b5f23a9fdd83987829", - "network": "Cancun", + "lastblockhash": "0xb45236f2622ea384018d8777e5a78252e8d0f385ebb64bd961e9d461420c4f8f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -333,14 +249,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -389,20 +297,42 @@ }, "sealEngine": "NoProof" }, - "002-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE": { + "002-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a002e942ec562d1482020013791c148486b8b86432e8b25a8081f8516cac97ed8ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x02e942ec562d1482020013791c148486b8b86432e8b25a8081f8516cac97ed8c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x46e3711436369118796c16a6d9bcd163639ed518ad763eade0345fd91f6765d3" + }, "blocks": [ { - "rlp": "0xf9037ff9023fa0c87748b72d56ec935f1fadaff4e261b0f5022775890956db0b65b79a72d5f6afa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ec91921b140935922449df118cd78060eee75870b709e3b722184fb6ffd07334a0eb65ce21b4f6be643de7b6aed39cf7cd3e9b38afba9ea3e29370a5b433984bdca0e0e4decf046b5ef09af135555cd6302f413dc5b3584a260b82d4451da1e2e187b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303e7188203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90138f90135800a8405f5e10080830186a0b8e460156000600073000000000000000000000000000000000000abcd3c601560006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca04b000d25d97e30ddd5cf0dd5da851c9eba267184443d7a00dfe86afb4911f063a06d3b388d1a63a1ba1b419111e70c80ff22f9973e912261fda1552aaee9675364c0c0", + "rlp": "0xf9035cf9021ca046e3711436369118796c16a6d9bcd163639ed518ad763eade0345fd91f6765d3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa098ca89f2da0dc8bea14f864872f9f79e67dc34001f4cae12ca68539cdb288fd6a0eb65ce21b4f6be643de7b6aed39cf7cd3e9b38afba9ea3e29370a5b433984bdca0e0e4decf046b5ef09af135555cd6302f413dc5b3584a260b82d4451da1e2e187b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303e7188203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90138f90135800a8405f5e10080830186a0b8e460156000600073000000000000000000000000000000000000abcd3c601560006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca04b000d25d97e30ddd5cf0dd5da851c9eba267184443d7a00dfe86afb4911f063a06d3b388d1a63a1ba1b419111e70c80ff22f9973e912261fda1552aaee9675364c0c0", "blockHeader": { - "parentHash": "0xc87748b72d56ec935f1fadaff4e261b0f5022775890956db0b65b79a72d5f6af", + "parentHash": "0x46e3711436369118796c16a6d9bcd163639ed518ad763eade0345fd91f6765d3", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xec91921b140935922449df118cd78060eee75870b709e3b722184fb6ffd07334", + "stateRoot": "0x98ca89f2da0dc8bea14f864872f9f79e67dc34001f4cae12ca68539cdb288fd6", "transactionsTrie": "0xeb65ce21b4f6be643de7b6aed39cf7cd3e9b38afba9ea3e29370a5b433984bdc", "receiptTrie": "0xe0e4decf046b5ef09af135555cd6302f413dc5b3584a260b82d4451da1e2e187", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -416,36 +346,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x98a18f2683a5fe0134cfeaac0dcabd678232fa44b1d0481471ec2a9a87d1723e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc87748b72d56ec935f1fadaff4e261b0f5022775890956db0b65b79a72d5f6af", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xec91921b140935922449df118cd78060eee75870b709e3b722184fb6ffd07334", - "receiptsRoot": "0xe0e4decf046b5ef09af135555cd6302f413dc5b3584a260b82d4451da1e2e187", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3e718", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x98a18f2683a5fe0134cfeaac0dcabd678232fa44b1d0481471ec2a9a87d1723e", - "transactions": [ - "0xf90135800a8405f5e10080830186a0b8e460156000600073000000000000000000000000000000000000abcd3c601560006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca04b000d25d97e30ddd5cf0dd5da851c9eba267184443d7a00dfe86afb4911f063a06d3b388d1a63a1ba1b419111e70c80ff22f9973e912261fda1552aaee9675364" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x31d18ed1c78be8afb40043a5df5c3b4e5c6baa2e34f046584b7f48308fcf872d" }, "transactions": [ { @@ -467,39 +368,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x751b2259666dd63a51ec81ba0d96cf341e9988aa53d5a49179c49ee738902d3e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc87748b72d56ec935f1fadaff4e261b0f5022775890956db0b65b79a72d5f6af" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0751b2259666dd63a51ec81ba0d96cf341e9988aa53d5a49179c49ee738902d3ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x98a18f2683a5fe0134cfeaac0dcabd678232fa44b1d0481471ec2a9a87d1723e", - "network": "Cancun", + "lastblockhash": "0x31d18ed1c78be8afb40043a5df5c3b4e5c6baa2e34f046584b7f48308fcf872d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -520,14 +390,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -568,20 +430,42 @@ }, "sealEngine": "NoProof" }, - "003-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE2": { + "003-fork=Shanghai-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a056037b9d1afbe9ff52682569b7f5f96f21ea0ec744b3b901203cc1a8c5b12ca6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x56037b9d1afbe9ff52682569b7f5f96f21ea0ec744b3b901203cc1a8c5b12ca6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x932ab4e207e7b45759a087e326ea2c83e06d883e721b2d59701680ca52fc80ed" + }, "blocks": [ { - "rlp": "0xf90381f9023fa0296fc6da6ec2f138e710686e91d43c2b0ce697bd57dd66fa0da6f042cdd60848a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07d6cf56e411fa1493f26176d4815e3749b7103475c492a1486c634a1955ea85ca0594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4a0f9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830400408203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9013af90137800a8405f5e10080830186a0b8e660286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f31ca0089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757a0224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49c0c0", + "rlp": "0xf9035ef9021ca0932ab4e207e7b45759a087e326ea2c83e06d883e721b2d59701680ca52fc80eda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02e5f3412ad2cddc6eef896422102a13b8822ddb15435e410f2db5b22cb10f532a0594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4a0f9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830400408203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9013af90137800a8405f5e10080830186a0b8e660286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f31ca0089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757a0224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49c0c0", "blockHeader": { - "parentHash": "0x296fc6da6ec2f138e710686e91d43c2b0ce697bd57dd66fa0da6f042cdd60848", + "parentHash": "0x932ab4e207e7b45759a087e326ea2c83e06d883e721b2d59701680ca52fc80ed", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7d6cf56e411fa1493f26176d4815e3749b7103475c492a1486c634a1955ea85c", + "stateRoot": "0x2e5f3412ad2cddc6eef896422102a13b8822ddb15435e410f2db5b22cb10f532", "transactionsTrie": "0x594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4", "receiptTrie": "0xf9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fb", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -595,36 +479,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x231b3bbc5076bcbad12c72a085e4335bd69260986a5b6e6924c7b614fb8500cc" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x296fc6da6ec2f138e710686e91d43c2b0ce697bd57dd66fa0da6f042cdd60848", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7d6cf56e411fa1493f26176d4815e3749b7103475c492a1486c634a1955ea85c", - "receiptsRoot": "0xf9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fb", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40040", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x231b3bbc5076bcbad12c72a085e4335bd69260986a5b6e6924c7b614fb8500cc", - "transactions": [ - "0xf90137800a8405f5e10080830186a0b8e660286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f31ca0089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757a0224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa8d413084fc87c2cf633acc476e31ae2effd50f6d2cec83336d96505fc850149" }, "transactions": [ { @@ -646,39 +501,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x41c4f612ccc2bec9ffe88c2ecd2462a4accd606bd3e28cda4c7e8812fb975cb8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x296fc6da6ec2f138e710686e91d43c2b0ce697bd57dd66fa0da6f042cdd60848" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a041c4f612ccc2bec9ffe88c2ecd2462a4accd606bd3e28cda4c7e8812fb975cb8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x231b3bbc5076bcbad12c72a085e4335bd69260986a5b6e6924c7b614fb8500cc", - "network": "Cancun", + "lastblockhash": "0xa8d413084fc87c2cf633acc476e31ae2effd50f6d2cec83336d96505fc850149", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -707,14 +531,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -763,20 +579,42 @@ }, "sealEngine": "NoProof" }, - "004-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { + "004-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852" + }, "blocks": [ { - "rlp": "0xf9067df9023fa04ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa004ce6f0ba4e54c50619b7a462fe5979c95fdce2fe2882fcfcd5a55c419b49710a0488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ffa0e50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830918eb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e160166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f31ca0e7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1a03f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7c0c0", + "rlp": "0xf9065af9021ca0ea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08804bdd459f13223c2a2f06ada2dba8ed848a5bfbad57f4a6625d9a3de85b39ea0488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ffa0e50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830918eb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90436f90433800a8405f5e10080830186a0b903e160166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f31ca0e7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1a03f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7c0c0", "blockHeader": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", + "parentHash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x04ce6f0ba4e54c50619b7a462fe5979c95fdce2fe2882fcfcd5a55c419b49710", + "stateRoot": "0x8804bdd459f13223c2a2f06ada2dba8ed848a5bfbad57f4a6625d9a3de85b39e", "transactionsTrie": "0x488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ff", "receiptTrie": "0xe50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -790,36 +628,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa4cab1bb6ad47ba0eaa9247ee556a7405e172959a051b3ec53e94c95167bea83" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x04ce6f0ba4e54c50619b7a462fe5979c95fdce2fe2882fcfcd5a55c419b49710", - "receiptsRoot": "0xe50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x918eb", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa4cab1bb6ad47ba0eaa9247ee556a7405e172959a051b3ec53e94c95167bea83", - "transactions": [ - "0xf90433800a8405f5e10080830186a0b903e160166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f31ca0e7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1a03f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2e0b16c1872e904556f26e945c9ab40fa5ae7215f7e7d3cd3c39890205b1007d" }, "transactions": [ { @@ -841,39 +650,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa4cab1bb6ad47ba0eaa9247ee556a7405e172959a051b3ec53e94c95167bea83", - "network": "Cancun", + "lastblockhash": "0x2e0b16c1872e904556f26e945c9ab40fa5ae7215f7e7d3cd3c39890205b1007d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -902,14 +680,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x2d", @@ -967,20 +737,42 @@ }, "sealEngine": "NoProof" }, - "005-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { + "005-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852" + }, "blocks": [ { - "rlp": "0xf9067ff9023fa04ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa029165928e37a8aebcec1dffa097c733b49f0b16d6cbfa691a594288d39dcb2e0a070b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4a0e78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830919088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e360166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f31ba0895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47a01e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516abc0c0", + "rlp": "0xf9065cf9021ca0ea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a1144b87ce8e325d000aa041d24cd0c74749787aaaf7d72af1ed4d3d19f8fc45a070b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4a0e78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830919088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90438f90435800a8405f5e10080830186a0b903e360166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f31ba0895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47a01e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516abc0c0", "blockHeader": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", + "parentHash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x29165928e37a8aebcec1dffa097c733b49f0b16d6cbfa691a594288d39dcb2e0", + "stateRoot": "0xa1144b87ce8e325d000aa041d24cd0c74749787aaaf7d72af1ed4d3d19f8fc45", "transactionsTrie": "0x70b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4", "receiptTrie": "0xe78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -994,36 +786,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x636bdeda8acc5437974feeb8ad5787277c099a7c7d048540241bfc06885468fd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x29165928e37a8aebcec1dffa097c733b49f0b16d6cbfa691a594288d39dcb2e0", - "receiptsRoot": "0xe78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x91908", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x636bdeda8acc5437974feeb8ad5787277c099a7c7d048540241bfc06885468fd", - "transactions": [ - "0xf90435800a8405f5e10080830186a0b903e360166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f31ba0895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47a01e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516ab" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x158e3d654a3fe6a1a8ccbf5b6350ed1dda05e3dafd03fa442be066ac867f4cab" }, "transactions": [ { @@ -1045,39 +808,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x636bdeda8acc5437974feeb8ad5787277c099a7c7d048540241bfc06885468fd", - "network": "Cancun", + "lastblockhash": "0x158e3d654a3fe6a1a8ccbf5b6350ed1dda05e3dafd03fa442be066ac867f4cab", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -1106,14 +838,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x2d", @@ -1171,63 +895,56 @@ }, "sealEngine": "NoProof" }, - "006-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { + "006-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b5a1c9728f6e784022e6a8a170df4e80fdc1452f8fc8e05fc93443400e51096ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb5a1c9728f6e784022e6a8a170df4e80fdc1452f8fc8e05fc93443400e51096b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfe2e9de15a6f3fac1e1ccc0bb3fc95d2608dcfa275d66c3ce0ed279a6edaabdd" + }, "blocks": [ { - "rlp": "0xf9067df9023fa0248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0feb88bb8da38df94805cceb0fc3a45cad3111d650b5942247c39913c43db7e73a03345ee20a652852ddee4e56b555409511075dba5ab649b40b2ceac537e201636a042f7b01b3e7d4319aae1bfe698a5bee46b724255d1073169a41b285ab015db21b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083093fce8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ba0661ae59157a747a50c8fe8d7e236e63cdfcb0d0899f79d4b00b0f5c1529b7c54a01746856fc678d95e3797b5ad8657d1004bed2f7dd9e9de66427f9a215fdd8865c0c0", + "rlp": "0xf9065af9021ca0fe2e9de15a6f3fac1e1ccc0bb3fc95d2608dcfa275d66c3ce0ed279a6edaabdda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01bd6a25976fa4301a595964dc2a463ab033527d144e80b3b6325be8b27778bada045f6da8f4a07e73a7423aae6364b68ecb0a8794a4759ab324e4f7ceb4409f0a1a0152009bb39b76ba0c7fba3280d1918b0196e197d8389071ae413e82dc39b6645b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309406a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca0f7eabe294db6ae5f40baf4874535947da9703e9f4a9d9254cacfd0fd50cc5fb6a078891107538ef4b5ca53de63174e466b1373c6d73f31b31b26c91ab7503384f7c0c0", "blockHeader": { - "parentHash": "0x248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115e", + "parentHash": "0xfe2e9de15a6f3fac1e1ccc0bb3fc95d2608dcfa275d66c3ce0ed279a6edaabdd", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfeb88bb8da38df94805cceb0fc3a45cad3111d650b5942247c39913c43db7e73", - "transactionsTrie": "0x3345ee20a652852ddee4e56b555409511075dba5ab649b40b2ceac537e201636", - "receiptTrie": "0x42f7b01b3e7d4319aae1bfe698a5bee46b724255d1073169a41b285ab015db21", + "stateRoot": "0x1bd6a25976fa4301a595964dc2a463ab033527d144e80b3b6325be8b27778bad", + "transactionsTrie": "0x45f6da8f4a07e73a7423aae6364b68ecb0a8794a4759ab324e4f7ceb4409f0a1", + "receiptTrie": "0x152009bb39b76ba0c7fba3280d1918b0196e197d8389071ae413e82dc39b6645", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x093fce", + "gasUsed": "0x09406a", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe5e27f9d3a882941a2d4196e583f6418c0f5cac36f8584ca234ce26dd66c0b0d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfeb88bb8da38df94805cceb0fc3a45cad3111d650b5942247c39913c43db7e73", - "receiptsRoot": "0x42f7b01b3e7d4319aae1bfe698a5bee46b724255d1073169a41b285ab015db21", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x93fce", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe5e27f9d3a882941a2d4196e583f6418c0f5cac36f8584ca234ce26dd66c0b0d", - "transactions": [ - "0xf90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ba0661ae59157a747a50c8fe8d7e236e63cdfcb0d0899f79d4b00b0f5c1529b7c54a01746856fc678d95e3797b5ad8657d1004bed2f7dd9e9de66427f9a215fdd8865" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1a356ff04665449f96afb1c423a7c1919d9ba871e0efc224aa1200d9a8326824" }, "transactions": [ { @@ -1238,10 +955,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf3", - "v": "0x1b", - "r": "0x661ae59157a747a50c8fe8d7e236e63cdfcb0d0899f79d4b00b0f5c1529b7c54", - "s": "0x1746856fc678d95e3797b5ad8657d1004bed2f7dd9e9de66427f9a215fdd8865", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0xf7eabe294db6ae5f40baf4874535947da9703e9f4a9d9254cacfd0fd50cc5fb6", + "s": "0x78891107538ef4b5ca53de63174e466b1373c6d73f31b31b26c91ab7503384f7", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1249,39 +966,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8e64e12b4551b944c32d5c1df37aaaa9b57748aa694e4e7c2f389da3660b0098", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115e" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08e64e12b4551b944c32d5c1df37aaaa9b57748aa694e4e7c2f389da3660b0098a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe5e27f9d3a882941a2d4196e583f6418c0f5cac36f8584ca234ce26dd66c0b0d", - "network": "Cancun", + "lastblockhash": "0x1a356ff04665449f96afb1c423a7c1919d9ba871e0efc224aa1200d9a8326824", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -1309,13 +995,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1326,14 +1012,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x12", @@ -1361,18 +1039,18 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bbf6a", + "balance": "0x1bc13e", "code": "0x", "storage": {} }, @@ -1382,8 +1060,8 @@ "code": "0x00", "storage": { "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -1394,76 +1072,69 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b1fb54", + "balance": "0x056bc75e2d62b1f53c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "007-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { + "007-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b5a1c9728f6e784022e6a8a170df4e80fdc1452f8fc8e05fc93443400e51096ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb5a1c9728f6e784022e6a8a170df4e80fdc1452f8fc8e05fc93443400e51096b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfe2e9de15a6f3fac1e1ccc0bb3fc95d2608dcfa275d66c3ce0ed279a6edaabdd" + }, "blocks": [ { - "rlp": "0xf9067ff9023fa0248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa015660a42205c0b0e47a4f856b2a6baecbd58cdb7f0dd0993606a5ce9f96647eaa078c8302f22c0d3627ecc5a97f43247d87f6fd7561eb273680301e1283e61bcf0a07a1ceb29508e601f677e9f673d6cc557c2c9630c7d667e4cc679308356d09d16b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083093ff18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ba003f1985d77c88a06421e0e9748ec9c1014861d34be3a419f1253423653c10441a0604eb9ff7d3031931f9d066e02941259b84ca824e1fcc25742ed13ebe5e3907dc0c0", + "rlp": "0xf9065cf9021ca0fe2e9de15a6f3fac1e1ccc0bb3fc95d2608dcfa275d66c3ce0ed279a6edaabdda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa075f3131e1642ade6f5e8ac8f33e152aa1f30ca4c5c576e0f5419b6b2426a4f2ba02145e3dd4a47f2f9d275a7737ebb8c22127f48c9467cfa80701d5ab8ad776432a084531fe3673d0f5b8c2857408a8444227c3eff7583f4a967f70ede132afd7e41b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309408d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ba0ce6d067a428f2649e3e734cb0b4de68537c9cdcca6c7a1d421caede97b13f46ea066c25cb391cdb16afea825e28b8c509931587a5ca28e1975e354187c12e358fdc0c0", "blockHeader": { - "parentHash": "0x248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115e", + "parentHash": "0xfe2e9de15a6f3fac1e1ccc0bb3fc95d2608dcfa275d66c3ce0ed279a6edaabdd", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x15660a42205c0b0e47a4f856b2a6baecbd58cdb7f0dd0993606a5ce9f96647ea", - "transactionsTrie": "0x78c8302f22c0d3627ecc5a97f43247d87f6fd7561eb273680301e1283e61bcf0", - "receiptTrie": "0x7a1ceb29508e601f677e9f673d6cc557c2c9630c7d667e4cc679308356d09d16", + "stateRoot": "0x75f3131e1642ade6f5e8ac8f33e152aa1f30ca4c5c576e0f5419b6b2426a4f2b", + "transactionsTrie": "0x2145e3dd4a47f2f9d275a7737ebb8c22127f48c9467cfa80701d5ab8ad776432", + "receiptTrie": "0x84531fe3673d0f5b8c2857408a8444227c3eff7583f4a967f70ede132afd7e41", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x093ff1", + "gasUsed": "0x09408d", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xef5322b79f10b18bba6318a2ccb11d2d24d932def65866fb42e347494a5da4c0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x15660a42205c0b0e47a4f856b2a6baecbd58cdb7f0dd0993606a5ce9f96647ea", - "receiptsRoot": "0x7a1ceb29508e601f677e9f673d6cc557c2c9630c7d667e4cc679308356d09d16", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x93ff1", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xef5322b79f10b18bba6318a2ccb11d2d24d932def65866fb42e347494a5da4c0", - "transactions": [ - "0xf90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ba003f1985d77c88a06421e0e9748ec9c1014861d34be3a419f1253423653c10441a0604eb9ff7d3031931f9d066e02941259b84ca824e1fcc25742ed13ebe5e3907d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4db67b6974156fe964841e6a0ceae67afbc79dab7dc59c1bca7f0d054695f163" }, "transactions": [ { @@ -1474,10 +1145,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf3", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", "v": "0x1b", - "r": "0x03f1985d77c88a06421e0e9748ec9c1014861d34be3a419f1253423653c10441", - "s": "0x604eb9ff7d3031931f9d066e02941259b84ca824e1fcc25742ed13ebe5e3907d", + "r": "0xce6d067a428f2649e3e734cb0b4de68537c9cdcca6c7a1d421caede97b13f46e", + "s": "0x66c25cb391cdb16afea825e28b8c509931587a5ca28e1975e354187c12e358fd", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1485,39 +1156,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8e64e12b4551b944c32d5c1df37aaaa9b57748aa694e4e7c2f389da3660b0098", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115e" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08e64e12b4551b944c32d5c1df37aaaa9b57748aa694e4e7c2f389da3660b0098a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xef5322b79f10b18bba6318a2ccb11d2d24d932def65866fb42e347494a5da4c0", - "network": "Cancun", + "lastblockhash": "0x4db67b6974156fe964841e6a0ceae67afbc79dab7dc59c1bca7f0d054695f163", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -1545,13 +1185,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1562,14 +1202,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x12", @@ -1597,18 +1229,18 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bbfd3", + "balance": "0x1bc1a7", "code": "0x", "storage": {} }, @@ -1617,9 +1249,9 @@ "balance": "0x018673", "code": "0x00", "storage": { - "0x00": "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -1630,76 +1262,69 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b1f9f6", + "balance": "0x056bc75e2d62b1f3de", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "008-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { + "008-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0695db6f662b558b71f1f71516b5183059c89127c635fd53b3d237a78b9ec7c68a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x695db6f662b558b71f1f71516b5183059c89127c635fd53b3d237a78b9ec7c68", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xc7d51bef6f7571af73ab5225646fba17a328aede960034c2d6b88026664c30cb" + }, "blocks": [ { - "rlp": "0xf9067df9023fa0093179b2d370854fdd5d3338b5c23b0a0136459b7d952a7046800f5e2ebd513ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01462eadf41b04238a41b1733030dcf4629da47cf546e4bf8671cdc24a3c6d591a080391300a67f6a1e36ca90bef81068500a006d37b0fbc65accd7b70e29373d19a0641275d2d901b9f1401479f5225fa410a6c5b5271a449900488fd07df619ce87b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830939368203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ba0473c9b39d28a5af1f8e436976695b11865e3a9169d5f64671a0e9a1ad9042932a05f24e4b3c4764c6011f16caa3fdced20cd35f357c13fbec0db0c68cc31af86a8c0c0", + "rlp": "0xf9065af9021ca0c7d51bef6f7571af73ab5225646fba17a328aede960034c2d6b88026664c30cba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ce7d903f09758c5a6fb4529d18cd07d2faefe050f1508acde4c265a9c8568670a01b32e6ca1c1a716fd9d7ef12ab9aa311fd7563dd6712c268e1f63226640613a3a09bc7b80e95a758494a5ce80f3903e69eb23011b097868b9c4c0a9112cfa00d97b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830939d28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca0243012d1f8e92ba8e8909bfe29f5a0c1cfdb6cc40c181d6f4b63772951c613a2a0398f52f6b4e77645eb42b3c88bddf5aba95a441a7162271c62d8b334bd0fcbb4c0c0", "blockHeader": { - "parentHash": "0x093179b2d370854fdd5d3338b5c23b0a0136459b7d952a7046800f5e2ebd513b", + "parentHash": "0xc7d51bef6f7571af73ab5225646fba17a328aede960034c2d6b88026664c30cb", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1462eadf41b04238a41b1733030dcf4629da47cf546e4bf8671cdc24a3c6d591", - "transactionsTrie": "0x80391300a67f6a1e36ca90bef81068500a006d37b0fbc65accd7b70e29373d19", - "receiptTrie": "0x641275d2d901b9f1401479f5225fa410a6c5b5271a449900488fd07df619ce87", + "stateRoot": "0xce7d903f09758c5a6fb4529d18cd07d2faefe050f1508acde4c265a9c8568670", + "transactionsTrie": "0x1b32e6ca1c1a716fd9d7ef12ab9aa311fd7563dd6712c268e1f63226640613a3", + "receiptTrie": "0x9bc7b80e95a758494a5ce80f3903e69eb23011b097868b9c4c0a9112cfa00d97", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x093936", + "gasUsed": "0x0939d2", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xba962fab7911d4c9496b218062e955afdfac20ce4d9266dbc3face16ab4f21ef" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x093179b2d370854fdd5d3338b5c23b0a0136459b7d952a7046800f5e2ebd513b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1462eadf41b04238a41b1733030dcf4629da47cf546e4bf8671cdc24a3c6d591", - "receiptsRoot": "0x641275d2d901b9f1401479f5225fa410a6c5b5271a449900488fd07df619ce87", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x93936", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xba962fab7911d4c9496b218062e955afdfac20ce4d9266dbc3face16ab4f21ef", - "transactions": [ - "0xf90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ba0473c9b39d28a5af1f8e436976695b11865e3a9169d5f64671a0e9a1ad9042932a05f24e4b3c4764c6011f16caa3fdced20cd35f357c13fbec0db0c68cc31af86a8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1cb8c9416f81846151226e18959a02fa03893e249a70de9ad4c03d86f292d0a9" }, "transactions": [ { @@ -1710,10 +1335,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf3", - "v": "0x1b", - "r": "0x473c9b39d28a5af1f8e436976695b11865e3a9169d5f64671a0e9a1ad9042932", - "s": "0x5f24e4b3c4764c6011f16caa3fdced20cd35f357c13fbec0db0c68cc31af86a8", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0x243012d1f8e92ba8e8909bfe29f5a0c1cfdb6cc40c181d6f4b63772951c613a2", + "s": "0x398f52f6b4e77645eb42b3c88bddf5aba95a441a7162271c62d8b334bd0fcbb4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1721,39 +1346,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x692367652a3b9148e24f4ccccb04e1f85b6768f8489dc44661770277a68d26e7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x093179b2d370854fdd5d3338b5c23b0a0136459b7d952a7046800f5e2ebd513b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0692367652a3b9148e24f4ccccb04e1f85b6768f8489dc44661770277a68d26e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xba962fab7911d4c9496b218062e955afdfac20ce4d9266dbc3face16ab4f21ef", - "network": "Cancun", + "lastblockhash": "0x1cb8c9416f81846151226e18959a02fa03893e249a70de9ad4c03d86f292d0a9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x00", @@ -1773,13 +1367,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1790,14 +1384,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x0c", @@ -1817,18 +1403,18 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1baba2", + "balance": "0x1bad76", "code": "0x", "storage": {} }, @@ -1838,8 +1424,8 @@ "code": "0x00", "storage": { "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -1850,76 +1436,69 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b23d44", + "balance": "0x056bc75e2d62b2372c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "009-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { + "009-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, - "blocks": [ - { - "rlp": "0xf9067ff9023fa0425c098c00fc59277e8d7e06896e13bccc58ebb72656a48f3c0455faa2c38823a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ae3e082e6ba28e659ef14413fe27393763b09426fccc4a0ff3a01979b252b505a091354d27083d8e245e03bde0a7453bba8ce798e0c2388b2194751541cd6a9db6a02599370fa6d650534ca2115b713889cd42fd4f10aad08f56145ae7945b471f70b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830943818203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb91316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb91316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ca0e80b85b1a2fb308c78f78d1ef0b7916eaf37af1a2284f8c3b7b9a2f0fbb363f2a00c04e3a9690be5061e2c63491edf1eb9360e5c82345e84adbb44b3338a41a5ecc0c0", - "blockHeader": { - "parentHash": "0x425c098c00fc59277e8d7e06896e13bccc58ebb72656a48f3c0455faa2c38823", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a044a443d1e65ea45f88ee24b931ae4187edd92fa0113d3e16f7e19630f7e850bba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x44a443d1e65ea45f88ee24b931ae4187edd92fa0113d3e16f7e19630f7e850bb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xed3a7d5d9e2b489535e04d508c08dcf5c237feade31e539a781f78704517a1c4" + }, + "blocks": [ + { + "rlp": "0xf9065cf9021ca0ed3a7d5d9e2b489535e04d508c08dcf5c237feade31e539a781f78704517a1c4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa091ac2e52e69504664a801e2a1da61ebffa34cc1c003bc179bd847bc12cff6c72a0eaed210d0a698631bf053e56e28289b81afc4169f996e67c696f89daa0ef9fcca06a9a9aefb59821d6686001e8481167bc4a8e45c5e86dea7f7c2486173b22de34b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309441d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e52316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e52316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ba0d4fdb073883677796c3a5a2c2aeae7b1fde01091318bec0caf272934e42f5e33a074bd23ae34d8366dd50eb0c4b58439daa8d8a9519afc56165c1b6ea261bc592bc0c0", + "blockHeader": { + "parentHash": "0xed3a7d5d9e2b489535e04d508c08dcf5c237feade31e539a781f78704517a1c4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xae3e082e6ba28e659ef14413fe27393763b09426fccc4a0ff3a01979b252b505", - "transactionsTrie": "0x91354d27083d8e245e03bde0a7453bba8ce798e0c2388b2194751541cd6a9db6", - "receiptTrie": "0x2599370fa6d650534ca2115b713889cd42fd4f10aad08f56145ae7945b471f70", + "stateRoot": "0x91ac2e52e69504664a801e2a1da61ebffa34cc1c003bc179bd847bc12cff6c72", + "transactionsTrie": "0xeaed210d0a698631bf053e56e28289b81afc4169f996e67c696f89daa0ef9fcc", + "receiptTrie": "0x6a9a9aefb59821d6686001e8481167bc4a8e45c5e86dea7f7c2486173b22de34", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x094381", + "gasUsed": "0x09441d", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4be732259018a0b00734085458ac801926f05b2295bcd17dbcf6776714848176" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x425c098c00fc59277e8d7e06896e13bccc58ebb72656a48f3c0455faa2c38823", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xae3e082e6ba28e659ef14413fe27393763b09426fccc4a0ff3a01979b252b505", - "receiptsRoot": "0x2599370fa6d650534ca2115b713889cd42fd4f10aad08f56145ae7945b471f70", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x94381", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4be732259018a0b00734085458ac801926f05b2295bcd17dbcf6776714848176", - "transactions": [ - "0xf90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb91316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb91316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ca0e80b85b1a2fb308c78f78d1ef0b7916eaf37af1a2284f8c3b7b9a2f0fbb363f2a00c04e3a9690be5061e2c63491edf1eb9360e5c82345e84adbb44b3338a41a5ec" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x31f7e62e2bf98461ecb71eba7ad9aecb2247d0af58d973284a6a5b2d3db65dfd" }, "transactions": [ { @@ -1930,10 +1509,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb91316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb91316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf3", - "v": "0x1c", - "r": "0xe80b85b1a2fb308c78f78d1ef0b7916eaf37af1a2284f8c3b7b9a2f0fbb363f2", - "s": "0x0c04e3a9690be5061e2c63491edf1eb9360e5c82345e84adbb44b3338a41a5ec", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e52316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e52316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", + "v": "0x1b", + "r": "0xd4fdb073883677796c3a5a2c2aeae7b1fde01091318bec0caf272934e42f5e33", + "s": "0x74bd23ae34d8366dd50eb0c4b58439daa8d8a9519afc56165c1b6ea261bc592b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -1941,39 +1520,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xbdbda8ed07d27e8be186810fdb062c32c455d25b3271204bd41d4746c6d7e92e", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x425c098c00fc59277e8d7e06896e13bccc58ebb72656a48f3c0455faa2c38823" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bdbda8ed07d27e8be186810fdb062c32c455d25b3271204bd41d4746c6d7e92ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4be732259018a0b00734085458ac801926f05b2295bcd17dbcf6776714848176", - "network": "Cancun", + "lastblockhash": "0x31f7e62e2bf98461ecb71eba7ad9aecb2247d0af58d973284a6a5b2d3db65dfd", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x00", @@ -1993,13 +1541,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -2018,14 +1566,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x0c", @@ -2045,18 +1585,18 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bca83", + "balance": "0x1bcc57", "code": "0x", "storage": {} }, @@ -2065,9 +1605,9 @@ "balance": "0x018673", "code": "0x00", "storage": { - "0x00": "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -2078,8 +1618,8 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -2092,70 +1632,63 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b1d656", + "balance": "0x056bc75e2d62b1d03e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "010-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { + "010-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00106e7465ad1c3fb10f2c08bb1456a6f65646b08f1bcb768508ed37da5733ed7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0106e7465ad1c3fb10f2c08bb1456a6f65646b08f1bcb768508ed37da5733ed7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0" + }, "blocks": [ { - "rlp": "0xf9067df9023fa0a7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00b7a04497ece01d636a680d966497f78aafd750aa9d89c28f728c2230c7befe5a02235fcd8c2478dc1b39dac42eeeaf28ece52c19e5cf048d3d984bb3ed6aded73a0d7f4b880ec184b27b2d4870eea138ea1f3b8cadcae1aa18af457ba1d94fcfb4ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830938528203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ca0cda17c730157439d94e454fedb1311020c949e789bd83c0852d54929aa17f015a0560c7ba43198922f47903f0b8813646155f8f9fbf5be5ff30d2f1b2fe5bf8928c0c0", + "rlp": "0xf9065af9021ca0fbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f1a46ca03c1076f80048f8dd6f88a9a990e5ef720e3255e8680c20cdc4dcca6ea0b14d20fd246eaa51d8c00b199372035c81b380bb72046ad190dfcb7407b32cb2a0b163973bee01b0161a477a81bc83fdcec4a51e6dff50a6e36a5f3e1eb7a56a16b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830938ee8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca084c730df4501387fe7fa9362b320982b5a9c411d33087fe1842cfb537716a4dda06976e528f116b8308a1ce69b9a31183dc2799b72e1a4dd31df4588c183a456bbc0c0", "blockHeader": { - "parentHash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1", + "parentHash": "0xfbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0b7a04497ece01d636a680d966497f78aafd750aa9d89c28f728c2230c7befe5", - "transactionsTrie": "0x2235fcd8c2478dc1b39dac42eeeaf28ece52c19e5cf048d3d984bb3ed6aded73", - "receiptTrie": "0xd7f4b880ec184b27b2d4870eea138ea1f3b8cadcae1aa18af457ba1d94fcfb4a", + "stateRoot": "0xf1a46ca03c1076f80048f8dd6f88a9a990e5ef720e3255e8680c20cdc4dcca6e", + "transactionsTrie": "0xb14d20fd246eaa51d8c00b199372035c81b380bb72046ad190dfcb7407b32cb2", + "receiptTrie": "0xb163973bee01b0161a477a81bc83fdcec4a51e6dff50a6e36a5f3e1eb7a56a16", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x093852", + "gasUsed": "0x0938ee", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf511b227a9cc3adc7766a2c6307fdd30b3dddb6ec3cc21c6917569cbac0d37a2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0b7a04497ece01d636a680d966497f78aafd750aa9d89c28f728c2230c7befe5", - "receiptsRoot": "0xd7f4b880ec184b27b2d4870eea138ea1f3b8cadcae1aa18af457ba1d94fcfb4a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x93852", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf511b227a9cc3adc7766a2c6307fdd30b3dddb6ec3cc21c6917569cbac0d37a2", - "transactions": [ - "0xf90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ca0cda17c730157439d94e454fedb1311020c949e789bd83c0852d54929aa17f015a0560c7ba43198922f47903f0b8813646155f8f9fbf5be5ff30d2f1b2fe5bf8928" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x1f695362674f656aafc9fd3cce3f5d307406cc6aa55b1044228fbeea2806fa81" }, "transactions": [ { @@ -2166,10 +1699,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf3", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", "v": "0x1c", - "r": "0xcda17c730157439d94e454fedb1311020c949e789bd83c0852d54929aa17f015", - "s": "0x560c7ba43198922f47903f0b8813646155f8f9fbf5be5ff30d2f1b2fe5bf8928", + "r": "0x84c730df4501387fe7fa9362b320982b5a9c411d33087fe1842cfb537716a4dd", + "s": "0x6976e528f116b8308a1ce69b9a31183dc2799b72e1a4dd31df4588c183a456bb", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2177,39 +1710,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x673e703d528ff292bee177ed14347e8caa79bacdc2c803b44a824b7c4398adbf", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0673e703d528ff292bee177ed14347e8caa79bacdc2c803b44a824b7c4398adbfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf511b227a9cc3adc7766a2c6307fdd30b3dddb6ec3cc21c6917569cbac0d37a2", - "network": "Cancun", + "lastblockhash": "0x1f695362674f656aafc9fd3cce3f5d307406cc6aa55b1044228fbeea2806fa81", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -2229,13 +1731,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2246,14 +1748,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x12", @@ -2273,18 +1767,18 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1ba8f6", + "balance": "0x1baaca", "code": "0x", "storage": {} }, @@ -2294,8 +1788,8 @@ "code": "0x00", "storage": { "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -2306,76 +1800,69 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b2462c", + "balance": "0x056bc75e2d62b24014", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "011-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { + "011-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c2b1153d671a6fbbf43ca760de896f9d38a9653d2e0b04d44ebb563131f1d32a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c2b1153d671a6fbbf43ca760de896f9d38a9653d2e0b04d44ebb563131f1d32", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x7a566adad3d5f015291759452f68fc39d7f4b6b04fe9ae3260211b0c70f33043" + }, "blocks": [ { - "rlp": "0xf9067ff9023fa09d37e62b6268e139ecc1cceef36eefbacbd15a5e7fa8a3091619115db57a8ba8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0233ddbee120dbfb181f2a4e15ee74da193fc95181c99c86612991ae0da2eba1da063ded936468408eae037773b2701daabb23ac3121d6b31a41d9d5f7d22b3e870a096950382d993ef421c7a8dccdf40f28f61e834b6252c320981021094b511d576b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309429d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb91316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ca0cf7be05c41326a88b3b0147fe3e61ab2568e9e363bd9c26e0b0b9429f074a019a04544ff498c53e1fcf1e4ce121f633fcf67451ee0187a569e4c8aac1fd14f0ba5c0c0", + "rlp": "0xf9065cf9021ca07a566adad3d5f015291759452f68fc39d7f4b6b04fe9ae3260211b0c70f33043a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa006de1c7bcebbeae9e0223d183ac4d6c2c55f5466b53b36b62d89b501558abf3da07857a4c302e49ff819f64538c91c909eabc399a86719f7a5c293564d6fd5b370a03df8bcd6e821861816837bd0e6aff53862d52ec8c670e8c3f5c6ce89f860edadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830943398203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e52316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ca069c46025b776bac3d87e1a156b012d12b6f76608a7960e0553c54360d396d87ea05876dfaa6de4daa318895ecc78c17ff847138fac83ec95be727738a74f8619bac0c0", "blockHeader": { - "parentHash": "0x9d37e62b6268e139ecc1cceef36eefbacbd15a5e7fa8a3091619115db57a8ba8", + "parentHash": "0x7a566adad3d5f015291759452f68fc39d7f4b6b04fe9ae3260211b0c70f33043", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x233ddbee120dbfb181f2a4e15ee74da193fc95181c99c86612991ae0da2eba1d", - "transactionsTrie": "0x63ded936468408eae037773b2701daabb23ac3121d6b31a41d9d5f7d22b3e870", - "receiptTrie": "0x96950382d993ef421c7a8dccdf40f28f61e834b6252c320981021094b511d576", + "stateRoot": "0x06de1c7bcebbeae9e0223d183ac4d6c2c55f5466b53b36b62d89b501558abf3d", + "transactionsTrie": "0x7857a4c302e49ff819f64538c91c909eabc399a86719f7a5c293564d6fd5b370", + "receiptTrie": "0x3df8bcd6e821861816837bd0e6aff53862d52ec8c670e8c3f5c6ce89f860edad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x09429d", + "gasUsed": "0x094339", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfeb8dddecbac1f9aca85b0347564366f5dde82aebac4afbc2dd02fced9c90568" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9d37e62b6268e139ecc1cceef36eefbacbd15a5e7fa8a3091619115db57a8ba8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x233ddbee120dbfb181f2a4e15ee74da193fc95181c99c86612991ae0da2eba1d", - "receiptsRoot": "0x96950382d993ef421c7a8dccdf40f28f61e834b6252c320981021094b511d576", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x9429d", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfeb8dddecbac1f9aca85b0347564366f5dde82aebac4afbc2dd02fced9c90568", - "transactions": [ - "0xf90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb91316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ca0cf7be05c41326a88b3b0147fe3e61ab2568e9e363bd9c26e0b0b9429f074a019a04544ff498c53e1fcf1e4ce121f633fcf67451ee0187a569e4c8aac1fd14f0ba5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2ecefa90583a08b0a3554086a34c14d062e21a1a910e69e599b8b6e549592770" }, "transactions": [ { @@ -2386,10 +1873,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb91316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf3", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e52316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", "v": "0x1c", - "r": "0xcf7be05c41326a88b3b0147fe3e61ab2568e9e363bd9c26e0b0b9429f074a019", - "s": "0x4544ff498c53e1fcf1e4ce121f633fcf67451ee0187a569e4c8aac1fd14f0ba5", + "r": "0x69c46025b776bac3d87e1a156b012d12b6f76608a7960e0553c54360d396d87e", + "s": "0x5876dfaa6de4daa318895ecc78c17ff847138fac83ec95be727738a74f8619ba", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2397,39 +1884,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x81cfc65e4883b7ddf3a98b2b2c1a72a1b82e416b90c58d2ce421a5f30c7830eb", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9d37e62b6268e139ecc1cceef36eefbacbd15a5e7fa8a3091619115db57a8ba8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a081cfc65e4883b7ddf3a98b2b2c1a72a1b82e416b90c58d2ce421a5f30c7830eba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfeb8dddecbac1f9aca85b0347564366f5dde82aebac4afbc2dd02fced9c90568", - "network": "Cancun", + "lastblockhash": "0x2ecefa90583a08b0a3554086a34c14d062e21a1a910e69e599b8b6e549592770", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -2449,13 +1905,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -2474,14 +1930,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x12", @@ -2501,18 +1949,18 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc7d7", + "balance": "0x1bc9ab", "code": "0x", "storage": {} }, @@ -2521,9 +1969,9 @@ "balance": "0x018673", "code": "0x00", "storage": { - "0x00": "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -2534,8 +1982,8 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -2548,70 +1996,63 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b1df3e", + "balance": "0x056bc75e2d62b1d926", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "012-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { + "012-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00106e7465ad1c3fb10f2c08bb1456a6f65646b08f1bcb768508ed37da5733ed7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0106e7465ad1c3fb10f2c08bb1456a6f65646b08f1bcb768508ed37da5733ed7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0" + }, "blocks": [ { - "rlp": "0xf9042af9023fa0a7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b15bc98e131b73961633a25fab269fbb0f222f0ddc6356f55f4e1a9b15a6d0fda0c256984651bc30f7f1a4e58914018c976176820e55b96553074f585742c24adba08a3229f1d58f4d9df0f927439cf724aea65664ac3c9bafb8c12fd8f09f8b1a66b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008305328a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f901e3f901e0800a8405f5e10080830186a0b9018e602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602bf31ca0c22e3364b85d8adc72dd65000974ba9e22b8df683ddb2f87fea9af3c620422b3a01cf01454f2314b99c5b7200564beac9433a972ce8fe79632a4e68f2e48a4e66cc0c0", + "rlp": "0xf90407f9021ca0fbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01f626bc188ce9df6845bc420ca2299442c6c6bce5b3e2fea1e8d22124ad7605da0226b315a1c28d2c1a85ef4c8903f13f9694922fad907ba208a0bd08099dfcc6ea0bf1fe2438dfbe85e9085d1e07fa7b76e0ed75c569a7e206457537dcaadc0d3f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830533498203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f901e3f901e0800a8405f5e10080830186a0b9018e602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602cf31ba0098f781fe95f193deab17826c3c88bb3ba31b9a17a8d1dee48c5ca492e38ee58a054247e531489e4a3a0a1dcc2d1a0f88f3e14b6b62a65821a3e36ae0c39bbb4c8c0c0", "blockHeader": { - "parentHash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1", + "parentHash": "0xfbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb15bc98e131b73961633a25fab269fbb0f222f0ddc6356f55f4e1a9b15a6d0fd", - "transactionsTrie": "0xc256984651bc30f7f1a4e58914018c976176820e55b96553074f585742c24adb", - "receiptTrie": "0x8a3229f1d58f4d9df0f927439cf724aea65664ac3c9bafb8c12fd8f09f8b1a66", + "stateRoot": "0x1f626bc188ce9df6845bc420ca2299442c6c6bce5b3e2fea1e8d22124ad7605d", + "transactionsTrie": "0x226b315a1c28d2c1a85ef4c8903f13f9694922fad907ba208a0bd08099dfcc6e", + "receiptTrie": "0xbf1fe2438dfbe85e9085d1e07fa7b76e0ed75c569a7e206457537dcaadc0d3f3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x05328a", + "gasUsed": "0x053349", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x331fe1fe946e730fe20d446077023dafb8c11714ec84eb2389b85578561a8d92" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb15bc98e131b73961633a25fab269fbb0f222f0ddc6356f55f4e1a9b15a6d0fd", - "receiptsRoot": "0x8a3229f1d58f4d9df0f927439cf724aea65664ac3c9bafb8c12fd8f09f8b1a66", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5328a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x331fe1fe946e730fe20d446077023dafb8c11714ec84eb2389b85578561a8d92", - "transactions": [ - "0xf901e0800a8405f5e10080830186a0b9018e602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602bf31ca0c22e3364b85d8adc72dd65000974ba9e22b8df683ddb2f87fea9af3c620422b3a01cf01454f2314b99c5b7200564beac9433a972ce8fe79632a4e68f2e48a4e66c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6ca44fd1b78504fa72a521883176341086db01f8d074da9204e1d824e83bf351" }, "transactions": [ { @@ -2622,10 +2063,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602bf3", - "v": "0x1c", - "r": "0xc22e3364b85d8adc72dd65000974ba9e22b8df683ddb2f87fea9af3c620422b3", - "s": "0x1cf01454f2314b99c5b7200564beac9433a972ce8fe79632a4e68f2e48a4e66c", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602cf3", + "v": "0x1b", + "r": "0x098f781fe95f193deab17826c3c88bb3ba31b9a17a8d1dee48c5ca492e38ee58", + "s": "0x54247e531489e4a3a0a1dcc2d1a0f88f3e14b6b62a65821a3e36ae0c39bbb4c8", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2633,39 +2074,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x673e703d528ff292bee177ed14347e8caa79bacdc2c803b44a824b7c4398adbf", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0673e703d528ff292bee177ed14347e8caa79bacdc2c803b44a824b7c4398adbfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x331fe1fe946e730fe20d446077023dafb8c11714ec84eb2389b85578561a8d92", - "network": "Cancun", + "lastblockhash": "0x6ca44fd1b78504fa72a521883176341086db01f8d074da9204e1d824e83bf351", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -2685,13 +2095,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2702,14 +2112,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -2729,18 +2131,18 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x0f979e", + "balance": "0x0f99db", "code": "0x", "storage": {} }, @@ -2750,81 +2152,74 @@ "code": "0x00", "storage": { "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", - "0x09": "0x20", - "0x0a": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x09": "0x21", + "0x0a": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62da7ffc", + "balance": "0x056bc75e2d62da7886", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "013-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { + "013-fork=Shanghai-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c2b1153d671a6fbbf43ca760de896f9d38a9653d2e0b04d44ebb563131f1d32a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c2b1153d671a6fbbf43ca760de896f9d38a9653d2e0b04d44ebb563131f1d32", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x7a566adad3d5f015291759452f68fc39d7f4b6b04fe9ae3260211b0c70f33043" + }, "blocks": [ { - "rlp": "0xf9042cf9023fa09d37e62b6268e139ecc1cceef36eefbacbd15a5e7fa8a3091619115db57a8ba8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa061ea9d17237e92a25c1eb726b222481e987622ee6d6fd970f89a0523cbfcef5aa0a5ceb3180d1eadfd0596b2bfb70bde33a509bcd334a715556b8f735cc9cc20c6a030ca6edeb40d896438a01c9b82c90f9ce68c574c66081cf9321725dd57eb2070b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083053cd58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f901e5f901e2800a8405f5e10080830186a0b90190602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb9131600855732cfd7823b7371b2c5eca6016618c7e7367edcb913b600955732cfd7823b7371b2c5eca6016618c7e7367edcb913f600a556001602bf31ba08d34ef99c48af3980dfbaa0d68b0f14ca7964bee15be0e3a4444ed0405b24bd3a01523fe248d7db05389beb9cdfc291a0f7e2a8a78ac802492d0f47cdc1c00d25bc0c0", + "rlp": "0xf90409f9021ca07a566adad3d5f015291759452f68fc39d7f4b6b04fe9ae3260211b0c70f33043a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0507a36c5fc676a1fed38f6685e665587a86d5950548d8919422e812688b0ea1ea01f9a61b7d00e73c9b18acf29aed59d3d0207ce85de5b46f81080e94e91868ebfa077b8cae3013a7fcf8d72d8fd57078e2771a78bbf0d0e5f9e3505f50a38f026d9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083053d948203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f901e5f901e2800a8405f5e10080830186a0b90190602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e5231600855733d97aab053f625db4e59b13f3f757231c8e53e523b600955733d97aab053f625db4e59b13f3f757231c8e53e523f600a556001602cf31ba01a36ab5f7fb7d82d2f0560ac72a89a4f01a95d2e0c2e388797a302043e640e4ba03d7f01a1b21692ad8f2a5bb6767b5c33094b01ec2e9993fa207aa36c650b7b8ac0c0", "blockHeader": { - "parentHash": "0x9d37e62b6268e139ecc1cceef36eefbacbd15a5e7fa8a3091619115db57a8ba8", + "parentHash": "0x7a566adad3d5f015291759452f68fc39d7f4b6b04fe9ae3260211b0c70f33043", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x61ea9d17237e92a25c1eb726b222481e987622ee6d6fd970f89a0523cbfcef5a", - "transactionsTrie": "0xa5ceb3180d1eadfd0596b2bfb70bde33a509bcd334a715556b8f735cc9cc20c6", - "receiptTrie": "0x30ca6edeb40d896438a01c9b82c90f9ce68c574c66081cf9321725dd57eb2070", + "stateRoot": "0x507a36c5fc676a1fed38f6685e665587a86d5950548d8919422e812688b0ea1e", + "transactionsTrie": "0x1f9a61b7d00e73c9b18acf29aed59d3d0207ce85de5b46f81080e94e91868ebf", + "receiptTrie": "0x77b8cae3013a7fcf8d72d8fd57078e2771a78bbf0d0e5f9e3505f50a38f026d9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x053cd5", + "gasUsed": "0x053d94", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe344ed6fb4e66b93d290685f67ae796ff716e48f9e3c206e2be31cfe90ad142f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x9d37e62b6268e139ecc1cceef36eefbacbd15a5e7fa8a3091619115db57a8ba8", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x61ea9d17237e92a25c1eb726b222481e987622ee6d6fd970f89a0523cbfcef5a", - "receiptsRoot": "0x30ca6edeb40d896438a01c9b82c90f9ce68c574c66081cf9321725dd57eb2070", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x53cd5", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xe344ed6fb4e66b93d290685f67ae796ff716e48f9e3c206e2be31cfe90ad142f", - "transactions": [ - "0xf901e2800a8405f5e10080830186a0b90190602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb9131600855732cfd7823b7371b2c5eca6016618c7e7367edcb913b600955732cfd7823b7371b2c5eca6016618c7e7367edcb913f600a556001602bf31ba08d34ef99c48af3980dfbaa0d68b0f14ca7964bee15be0e3a4444ed0405b24bd3a01523fe248d7db05389beb9cdfc291a0f7e2a8a78ac802492d0f47cdc1c00d25b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd7e89e31e633eabcdcba1efb82626ebe8aa09a958c3089599fa4534ea47658a7" }, "transactions": [ { @@ -2835,10 +2230,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb9131600855732cfd7823b7371b2c5eca6016618c7e7367edcb913b600955732cfd7823b7371b2c5eca6016618c7e7367edcb913f600a556001602bf3", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e5231600855733d97aab053f625db4e59b13f3f757231c8e53e523b600955733d97aab053f625db4e59b13f3f757231c8e53e523f600a556001602cf3", "v": "0x1b", - "r": "0x8d34ef99c48af3980dfbaa0d68b0f14ca7964bee15be0e3a4444ed0405b24bd3", - "s": "0x1523fe248d7db05389beb9cdfc291a0f7e2a8a78ac802492d0f47cdc1c00d25b", + "r": "0x1a36ab5f7fb7d82d2f0560ac72a89a4f01a95d2e0c2e388797a302043e640e4b", + "s": "0x3d7f01a1b21692ad8f2a5bb6767b5c33094b01ec2e9993fa207aa36c650b7b8a", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -2846,39 +2241,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x81cfc65e4883b7ddf3a98b2b2c1a72a1b82e416b90c58d2ce421a5f30c7830eb", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9d37e62b6268e139ecc1cceef36eefbacbd15a5e7fa8a3091619115db57a8ba8" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a081cfc65e4883b7ddf3a98b2b2c1a72a1b82e416b90c58d2ce421a5f30c7830eba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xe344ed6fb4e66b93d290685f67ae796ff716e48f9e3c206e2be31cfe90ad142f", - "network": "Cancun", + "lastblockhash": "0xd7e89e31e633eabcdcba1efb82626ebe8aa09a958c3089599fa4534ea47658a7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -2898,13 +2262,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -2923,14 +2287,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -2950,18 +2306,18 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x0fb67f", + "balance": "0x0fb8bc", "code": "0x", "storage": {} }, @@ -2970,14 +2326,14 @@ "balance": "0x01869d", "code": "0x00", "storage": { - "0x00": "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", - "0x09": "0x20", - "0x0a": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x09": "0x21", + "0x0a": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -2990,27 +2346,49 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62da190e", + "balance": "0x056bc75e2d62da1198", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "014-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE": { + "014-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03849e66fadfb4928a50b4f3d674a59b4dcb2bd4961d12d65a12e8fe123f09bb6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3849e66fadfb4928a50b4f3d674a59b4dcb2bd4961d12d65a12e8fe123f09bb6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x3a9bdb4260e33b7e27a75d968dedc652c1b3a7b6e4e8e525aabec06ce3adbf17" + }, "blocks": [ { - "rlp": "0xf9037ff9023fa02d90ddac92e24c8ae205955e7f71eb2c3df8429959ec0ea6e7968538af1a5c90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09a731f4cfe8b63c379d8b10835f3322def15b5a73f0ad571a125a6017223e8bba0daa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499ea03228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1248203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90138f90135800a8405f5e10080830186a0b8e460166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca08602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169a00748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851c0c0", + "rlp": "0xf9035cf9021ca03a9bdb4260e33b7e27a75d968dedc652c1b3a7b6e4e8e525aabec06ce3adbf17a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0214b5aeefc6f9812d429c19594e7399370d52b1ed7bd1d73e2d9f8d5238256d0a0daa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499ea03228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1248203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90138f90135800a8405f5e10080830186a0b8e460166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca08602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169a00748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851c0c0", "blockHeader": { - "parentHash": "0x2d90ddac92e24c8ae205955e7f71eb2c3df8429959ec0ea6e7968538af1a5c90", + "parentHash": "0x3a9bdb4260e33b7e27a75d968dedc652c1b3a7b6e4e8e525aabec06ce3adbf17", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9a731f4cfe8b63c379d8b10835f3322def15b5a73f0ad571a125a6017223e8bb", + "stateRoot": "0x214b5aeefc6f9812d429c19594e7399370d52b1ed7bd1d73e2d9f8d5238256d0", "transactionsTrie": "0xdaa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499e", "receiptTrie": "0x3228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3024,36 +2402,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x54e3e805e093b70c76de6d2c96910b46a00a71f5d6a9fa56f406bab05ff30827" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2d90ddac92e24c8ae205955e7f71eb2c3df8429959ec0ea6e7968538af1a5c90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9a731f4cfe8b63c379d8b10835f3322def15b5a73f0ad571a125a6017223e8bb", - "receiptsRoot": "0x3228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3f124", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x54e3e805e093b70c76de6d2c96910b46a00a71f5d6a9fa56f406bab05ff30827", - "transactions": [ - "0xf90135800a8405f5e10080830186a0b8e460166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca08602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169a00748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x7e2072edfda659cf225e8c48cd0cbe0c59d8595033d53701654693168f00248b" }, "transactions": [ { @@ -3075,39 +2424,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x051b28a5f27d9423d4bdc444fd60366672d3a9dfef2340120bc05e6c93471f11", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2d90ddac92e24c8ae205955e7f71eb2c3df8429959ec0ea6e7968538af1a5c90" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0051b28a5f27d9423d4bdc444fd60366672d3a9dfef2340120bc05e6c93471f11a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x54e3e805e093b70c76de6d2c96910b46a00a71f5d6a9fa56f406bab05ff30827", - "network": "Cancun", + "lastblockhash": "0x7e2072edfda659cf225e8c48cd0cbe0c59d8595033d53701654693168f00248b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -3142,14 +2460,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186a0", @@ -3198,20 +2508,42 @@ }, "sealEngine": "NoProof" }, - "015-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE2": { + "015-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f31ce457d3e8a16a915ff792af95eb1046e664c0c3ea6886f0bc3188f80f47cba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf31ce457d3e8a16a915ff792af95eb1046e664c0c3ea6886f0bc3188f80f47cb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x43b147d56fc43e4f767e5565dbc4855a1a4195bd275e6333df341dd4857bb679" + }, "blocks": [ { - "rlp": "0xf90381f9023fa0d52110ba6feb35b274b9bb80f6386d2a1681efbf51b6ef40083ed0ec1ef46497a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa058ef82c0e84b5825d819acd9c854c21d98bf17884072915ecce856aff221b009a0ffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9dfa0e797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1418203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9013af90137800a8405f5e10080830186a0b8e660166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f31ba0f073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7a07b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8c0c0", + "rlp": "0xf9035ef9021ca043b147d56fc43e4f767e5565dbc4855a1a4195bd275e6333df341dd4857bb679a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021e861ee3ba4d7fea8e3ef0612bbba6c01fc3284fc2f9623e3a5805d8e76f832a0ffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9dfa0e797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1418203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9013af90137800a8405f5e10080830186a0b8e660166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f31ba0f073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7a07b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8c0c0", "blockHeader": { - "parentHash": "0xd52110ba6feb35b274b9bb80f6386d2a1681efbf51b6ef40083ed0ec1ef46497", + "parentHash": "0x43b147d56fc43e4f767e5565dbc4855a1a4195bd275e6333df341dd4857bb679", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58ef82c0e84b5825d819acd9c854c21d98bf17884072915ecce856aff221b009", + "stateRoot": "0x21e861ee3ba4d7fea8e3ef0612bbba6c01fc3284fc2f9623e3a5805d8e76f832", "transactionsTrie": "0xffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9df", "receiptTrie": "0xe797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3225,36 +2557,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9f3cfe1333a0ce91cdbf3439d8ade6a81ec695d07bc2b6d612355e7a4c547691" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd52110ba6feb35b274b9bb80f6386d2a1681efbf51b6ef40083ed0ec1ef46497", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x58ef82c0e84b5825d819acd9c854c21d98bf17884072915ecce856aff221b009", - "receiptsRoot": "0xe797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3f141", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9f3cfe1333a0ce91cdbf3439d8ade6a81ec695d07bc2b6d612355e7a4c547691", - "transactions": [ - "0xf90137800a8405f5e10080830186a0b8e660166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f31ba0f073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7a07b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x38bc9cdc98041903c61b0e72cf8f2b01c3ca6ae10cd89394c2c73d322f526baa" }, "transactions": [ { @@ -3276,39 +2579,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x67ac0bf320bf9838726d2435dee53993649dac03046a292b01d0419fdc82e3a7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd52110ba6feb35b274b9bb80f6386d2a1681efbf51b6ef40083ed0ec1ef46497" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a067ac0bf320bf9838726d2435dee53993649dac03046a292b01d0419fdc82e3a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9f3cfe1333a0ce91cdbf3439d8ade6a81ec695d07bc2b6d612355e7a4c547691", - "network": "Cancun", + "lastblockhash": "0x38bc9cdc98041903c61b0e72cf8f2b01c3ca6ae10cd89394c2c73d322f526baa", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -3343,14 +2615,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186a0", @@ -3399,20 +2663,42 @@ }, "sealEngine": "NoProof" }, - "016-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE": { + "016-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a000d1ca25b5dae7567bc41e8880c5bb89bef25b10cec303508ddaebee3dcad5e5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x00d1ca25b5dae7567bc41e8880c5bb89bef25b10cec303508ddaebee3dcad5e5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb4455314403cafa795a43d7404a70c97dbf279e8991842abe15d4a8a25e46153" + }, "blocks": [ { - "rlp": "0xf9037ff9023fa0d619d7cf26c199aac3dcb126a74b78b5a99052724637c3d9f333e352a9f8de1fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018c1eff3493251f7239007900bec0a23d4e90d36200dd967dd50ed61b51f0338a0fd321c557783de46e87aa81acf85f728a06ddc21fe3418c21334bafbb9682b13a067f101568e93cd4bf085a88ff201d4d0e5e1fc0a66c2068e6699c2ceff76d871b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f5f58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90138f90135800a8405f5e10080830186a0b8e460286000600073000000000000000000000000000000000000abcd3c602860006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016028f31ba0aa86dd37013c9dc6c3ae530fe8e394d96572c197d4001378dc03471a0dd51e40a050e86d76d2665b80f143df4ff92c9dad536e3a5928590ff1b2db69b8263359e3c0c0", + "rlp": "0xf9035cf9021ca0b4455314403cafa795a43d7404a70c97dbf279e8991842abe15d4a8a25e46153a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eb26bb30658ea23bb9338825501efc1c68bb67e22e8103b35bb8a7649e187f20a0fd321c557783de46e87aa81acf85f728a06ddc21fe3418c21334bafbb9682b13a067f101568e93cd4bf085a88ff201d4d0e5e1fc0a66c2068e6699c2ceff76d871b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f5f58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90138f90135800a8405f5e10080830186a0b8e460286000600073000000000000000000000000000000000000abcd3c602860006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016028f31ba0aa86dd37013c9dc6c3ae530fe8e394d96572c197d4001378dc03471a0dd51e40a050e86d76d2665b80f143df4ff92c9dad536e3a5928590ff1b2db69b8263359e3c0c0", "blockHeader": { - "parentHash": "0xd619d7cf26c199aac3dcb126a74b78b5a99052724637c3d9f333e352a9f8de1f", + "parentHash": "0xb4455314403cafa795a43d7404a70c97dbf279e8991842abe15d4a8a25e46153", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18c1eff3493251f7239007900bec0a23d4e90d36200dd967dd50ed61b51f0338", + "stateRoot": "0xeb26bb30658ea23bb9338825501efc1c68bb67e22e8103b35bb8a7649e187f20", "transactionsTrie": "0xfd321c557783de46e87aa81acf85f728a06ddc21fe3418c21334bafbb9682b13", "receiptTrie": "0x67f101568e93cd4bf085a88ff201d4d0e5e1fc0a66c2068e6699c2ceff76d871", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3426,36 +2712,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x907d3f6be52e9fd32544fba12a03f31ae71c81ecdd55c8961f9611a18cb9c8e6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd619d7cf26c199aac3dcb126a74b78b5a99052724637c3d9f333e352a9f8de1f", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18c1eff3493251f7239007900bec0a23d4e90d36200dd967dd50ed61b51f0338", - "receiptsRoot": "0x67f101568e93cd4bf085a88ff201d4d0e5e1fc0a66c2068e6699c2ceff76d871", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3f5f5", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x907d3f6be52e9fd32544fba12a03f31ae71c81ecdd55c8961f9611a18cb9c8e6", - "transactions": [ - "0xf90135800a8405f5e10080830186a0b8e460286000600073000000000000000000000000000000000000abcd3c602860006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016028f31ba0aa86dd37013c9dc6c3ae530fe8e394d96572c197d4001378dc03471a0dd51e40a050e86d76d2665b80f143df4ff92c9dad536e3a5928590ff1b2db69b8263359e3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x2eded3b52cee9538a439155e60a80b5d5d12734ff935fcb06f7cf5a7f52bd8a0" }, "transactions": [ { @@ -3477,39 +2734,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa0a59504cf85da97847ec7c75625ee035a1bcdd7d94d96c7e820862c6b82af2d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd619d7cf26c199aac3dcb126a74b78b5a99052724637c3d9f333e352a9f8de1f" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a0a59504cf85da97847ec7c75625ee035a1bcdd7d94d96c7e820862c6b82af2da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x907d3f6be52e9fd32544fba12a03f31ae71c81ecdd55c8961f9611a18cb9c8e6", - "network": "Cancun", + "lastblockhash": "0x2eded3b52cee9538a439155e60a80b5d5d12734ff935fcb06f7cf5a7f52bd8a0", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -3536,14 +2762,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -3584,20 +2802,42 @@ }, "sealEngine": "NoProof" }, - "017-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE2": { + "017-fork=Shanghai-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0650a026e225780f219a66c8245165c901ffadb3e44a380811951c68f37cb4c94a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x650a026e225780f219a66c8245165c901ffadb3e44a380811951c68f37cb4c94", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x998d5ebcea784864f88322a58f90bd814f052e0f03021423e6f4919d15fa4f37" + }, "blocks": [ { - "rlp": "0xf90381f9023fa023a620d5f1e30ef388e3f8b314701e2f40ccede7f71cf52f9b6229db41550caea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aed738c540f473899dcd5661c4ad6d821993ceb563b3c3a629d6252f01ed84d3a0594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4a0f9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830400408203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9013af90137800a8405f5e10080830186a0b8e660286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f31ca0089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757a0224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49c0c0", + "rlp": "0xf9035ef9021ca0998d5ebcea784864f88322a58f90bd814f052e0f03021423e6f4919d15fa4f37a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c3fdc469361a4e062fc452d23ba39ddcbfe3e3e3b6583ff938dc90dead04c1e5a0594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4a0f9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830400408203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9013af90137800a8405f5e10080830186a0b8e660286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f31ca0089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757a0224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49c0c0", "blockHeader": { - "parentHash": "0x23a620d5f1e30ef388e3f8b314701e2f40ccede7f71cf52f9b6229db41550cae", + "parentHash": "0x998d5ebcea784864f88322a58f90bd814f052e0f03021423e6f4919d15fa4f37", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaed738c540f473899dcd5661c4ad6d821993ceb563b3c3a629d6252f01ed84d3", + "stateRoot": "0xc3fdc469361a4e062fc452d23ba39ddcbfe3e3e3b6583ff938dc90dead04c1e5", "transactionsTrie": "0x594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4", "receiptTrie": "0xf9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fb", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3611,36 +2851,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x62995eef000cea5e9ac5ce10160a4e5b4d353a6857c2675dc1253035071dbf30" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x23a620d5f1e30ef388e3f8b314701e2f40ccede7f71cf52f9b6229db41550cae", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xaed738c540f473899dcd5661c4ad6d821993ceb563b3c3a629d6252f01ed84d3", - "receiptsRoot": "0xf9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fb", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40040", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x62995eef000cea5e9ac5ce10160a4e5b4d353a6857c2675dc1253035071dbf30", - "transactions": [ - "0xf90137800a8405f5e10080830186a0b8e660286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f31ca0089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757a0224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8c889852556b3be8e9859ca3e2752d96ea9fb9b9efdd0d080ec383f78993425f" }, "transactions": [ { @@ -3662,39 +2873,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5f03726c1fd5bfc566067e0349ac0da22fa3f717630e01ecd633a7f813b51901", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x23a620d5f1e30ef388e3f8b314701e2f40ccede7f71cf52f9b6229db41550cae" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05f03726c1fd5bfc566067e0349ac0da22fa3f717630e01ecd633a7f813b51901a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x62995eef000cea5e9ac5ce10160a4e5b4d353a6857c2675dc1253035071dbf30", - "network": "Cancun", + "lastblockhash": "0x8c889852556b3be8e9859ca3e2752d96ea9fb9b9efdd0d080ec383f78993425f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -3729,14 +2909,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -3785,20 +2957,42 @@ }, "sealEngine": "NoProof" }, - "018-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { + "018-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03849e66fadfb4928a50b4f3d674a59b4dcb2bd4961d12d65a12e8fe123f09bb6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3849e66fadfb4928a50b4f3d674a59b4dcb2bd4961d12d65a12e8fe123f09bb6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x3a9bdb4260e33b7e27a75d968dedc652c1b3a7b6e4e8e525aabec06ce3adbf17" + }, "blocks": [ { - "rlp": "0xf9067df9023fa02d90ddac92e24c8ae205955e7f71eb2c3df8429959ec0ea6e7968538af1a5c90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02eee157478c574752620b4fb860ae3543dc814f8e09761340d1fc9f5272e2080a0488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ffa0e50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830918eb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e160166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f31ca0e7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1a03f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7c0c0", + "rlp": "0xf9065af9021ca03a9bdb4260e33b7e27a75d968dedc652c1b3a7b6e4e8e525aabec06ce3adbf17a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013c98f94af0e9988243e3538eae5c87d129a2ee467c24f4ab1ab99858a473f26a0488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ffa0e50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830918eb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90436f90433800a8405f5e10080830186a0b903e160166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f31ca0e7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1a03f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7c0c0", "blockHeader": { - "parentHash": "0x2d90ddac92e24c8ae205955e7f71eb2c3df8429959ec0ea6e7968538af1a5c90", + "parentHash": "0x3a9bdb4260e33b7e27a75d968dedc652c1b3a7b6e4e8e525aabec06ce3adbf17", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2eee157478c574752620b4fb860ae3543dc814f8e09761340d1fc9f5272e2080", + "stateRoot": "0x13c98f94af0e9988243e3538eae5c87d129a2ee467c24f4ab1ab99858a473f26", "transactionsTrie": "0x488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ff", "receiptTrie": "0xe50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -3812,36 +3006,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x43b301bf16b4c97781cf9d67ccf4b91f14ff4a69dfff271de7beb015627b24d0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2d90ddac92e24c8ae205955e7f71eb2c3df8429959ec0ea6e7968538af1a5c90", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2eee157478c574752620b4fb860ae3543dc814f8e09761340d1fc9f5272e2080", - "receiptsRoot": "0xe50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x918eb", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x43b301bf16b4c97781cf9d67ccf4b91f14ff4a69dfff271de7beb015627b24d0", - "transactions": [ - "0xf90433800a8405f5e10080830186a0b903e160166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f31ca0e7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1a03f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe37784e3f5eca20b3c90f4ccba8de5e1e3dc414169b957152d76a1f15f4e5b50" }, "transactions": [ { @@ -3863,39 +3028,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x051b28a5f27d9423d4bdc444fd60366672d3a9dfef2340120bc05e6c93471f11", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2d90ddac92e24c8ae205955e7f71eb2c3df8429959ec0ea6e7968538af1a5c90" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0051b28a5f27d9423d4bdc444fd60366672d3a9dfef2340120bc05e6c93471f11a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x43b301bf16b4c97781cf9d67ccf4b91f14ff4a69dfff271de7beb015627b24d0", - "network": "Cancun", + "lastblockhash": "0xe37784e3f5eca20b3c90f4ccba8de5e1e3dc414169b957152d76a1f15f4e5b50", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -3930,14 +3064,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186cd", @@ -3995,20 +3121,42 @@ }, "sealEngine": "NoProof" }, - "019-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { + "019-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f31ce457d3e8a16a915ff792af95eb1046e664c0c3ea6886f0bc3188f80f47cba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf31ce457d3e8a16a915ff792af95eb1046e664c0c3ea6886f0bc3188f80f47cb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x43b147d56fc43e4f767e5565dbc4855a1a4195bd275e6333df341dd4857bb679" + }, "blocks": [ { - "rlp": "0xf9067ff9023fa0d52110ba6feb35b274b9bb80f6386d2a1681efbf51b6ef40083ed0ec1ef46497a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06d3112c7e4a9db4fe4cbf6c337bed47b1103e2e585de852da5b05f4f3fe66ff7a070b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4a0e78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830919088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e360166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f31ba0895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47a01e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516abc0c0", + "rlp": "0xf9065cf9021ca043b147d56fc43e4f767e5565dbc4855a1a4195bd275e6333df341dd4857bb679a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07d62dc9a0cdc376032d6a8ed85ac80785012a60825f4dd032f201a442fb289a4a070b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4a0e78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830919088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90438f90435800a8405f5e10080830186a0b903e360166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f31ba0895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47a01e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516abc0c0", "blockHeader": { - "parentHash": "0xd52110ba6feb35b274b9bb80f6386d2a1681efbf51b6ef40083ed0ec1ef46497", + "parentHash": "0x43b147d56fc43e4f767e5565dbc4855a1a4195bd275e6333df341dd4857bb679", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6d3112c7e4a9db4fe4cbf6c337bed47b1103e2e585de852da5b05f4f3fe66ff7", + "stateRoot": "0x7d62dc9a0cdc376032d6a8ed85ac80785012a60825f4dd032f201a442fb289a4", "transactionsTrie": "0x70b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4", "receiptTrie": "0xe78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4022,36 +3170,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa644ba7c78fc4ce13a16235ed6903b1552bb1089498e648d4680d18ae59e5d28" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd52110ba6feb35b274b9bb80f6386d2a1681efbf51b6ef40083ed0ec1ef46497", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6d3112c7e4a9db4fe4cbf6c337bed47b1103e2e585de852da5b05f4f3fe66ff7", - "receiptsRoot": "0xe78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x91908", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xa644ba7c78fc4ce13a16235ed6903b1552bb1089498e648d4680d18ae59e5d28", - "transactions": [ - "0xf90435800a8405f5e10080830186a0b903e360166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f31ba0895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47a01e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516ab" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xebb05abaf9396ae64f8f9e50555d809f0fb2c31a2d53a451b70f86a80bbf647e" }, "transactions": [ { @@ -4073,39 +3192,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x67ac0bf320bf9838726d2435dee53993649dac03046a292b01d0419fdc82e3a7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd52110ba6feb35b274b9bb80f6386d2a1681efbf51b6ef40083ed0ec1ef46497" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a067ac0bf320bf9838726d2435dee53993649dac03046a292b01d0419fdc82e3a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xa644ba7c78fc4ce13a16235ed6903b1552bb1089498e648d4680d18ae59e5d28", - "network": "Cancun", + "lastblockhash": "0xebb05abaf9396ae64f8f9e50555d809f0fb2c31a2d53a451b70f86a80bbf647e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -4140,14 +3228,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186cd", @@ -4205,63 +3285,56 @@ }, "sealEngine": "NoProof" }, - "020-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { + "020-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ad046c1233cc7eb58a6aa0017ac775867c26fe51677acff92cfb3474867d0b00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xad046c1233cc7eb58a6aa0017ac775867c26fe51677acff92cfb3474867d0b00", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfafa700cd7a30a370c6e8b6a6f2bf027bdcfd92adfa83d352d72689d18463e8d" + }, "blocks": [ { - "rlp": "0xf9067df9023fa0473ae533e9e4921e14a3856b8e03f96f77ec07a52525e739f8d0b357b87e7e58a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa006923ad1f88f6d8a9794b73672e1f34c5fa1514098e4f63866ad35d139fd1c0ca03345ee20a652852ddee4e56b555409511075dba5ab649b40b2ceac537e201636a042f7b01b3e7d4319aae1bfe698a5bee46b724255d1073169a41b285ab015db21b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083093fce8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ba0661ae59157a747a50c8fe8d7e236e63cdfcb0d0899f79d4b00b0f5c1529b7c54a01746856fc678d95e3797b5ad8657d1004bed2f7dd9e9de66427f9a215fdd8865c0c0", + "rlp": "0xf9065af9021ca0fafa700cd7a30a370c6e8b6a6f2bf027bdcfd92adfa83d352d72689d18463e8da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c294ad1515e6653e0ad549ba05c5a4f090c627e08e69d9a6cd921163612f3343a045f6da8f4a07e73a7423aae6364b68ecb0a8794a4759ab324e4f7ceb4409f0a1a0152009bb39b76ba0c7fba3280d1918b0196e197d8389071ae413e82dc39b6645b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309406a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca0f7eabe294db6ae5f40baf4874535947da9703e9f4a9d9254cacfd0fd50cc5fb6a078891107538ef4b5ca53de63174e466b1373c6d73f31b31b26c91ab7503384f7c0c0", "blockHeader": { - "parentHash": "0x473ae533e9e4921e14a3856b8e03f96f77ec07a52525e739f8d0b357b87e7e58", + "parentHash": "0xfafa700cd7a30a370c6e8b6a6f2bf027bdcfd92adfa83d352d72689d18463e8d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x06923ad1f88f6d8a9794b73672e1f34c5fa1514098e4f63866ad35d139fd1c0c", - "transactionsTrie": "0x3345ee20a652852ddee4e56b555409511075dba5ab649b40b2ceac537e201636", - "receiptTrie": "0x42f7b01b3e7d4319aae1bfe698a5bee46b724255d1073169a41b285ab015db21", + "stateRoot": "0xc294ad1515e6653e0ad549ba05c5a4f090c627e08e69d9a6cd921163612f3343", + "transactionsTrie": "0x45f6da8f4a07e73a7423aae6364b68ecb0a8794a4759ab324e4f7ceb4409f0a1", + "receiptTrie": "0x152009bb39b76ba0c7fba3280d1918b0196e197d8389071ae413e82dc39b6645", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x093fce", + "gasUsed": "0x09406a", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x253381c210be8792f9332160336c75adc6205ca71d7cc64039196fc966ec90fb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x473ae533e9e4921e14a3856b8e03f96f77ec07a52525e739f8d0b357b87e7e58", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x06923ad1f88f6d8a9794b73672e1f34c5fa1514098e4f63866ad35d139fd1c0c", - "receiptsRoot": "0x42f7b01b3e7d4319aae1bfe698a5bee46b724255d1073169a41b285ab015db21", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x93fce", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x253381c210be8792f9332160336c75adc6205ca71d7cc64039196fc966ec90fb", - "transactions": [ - "0xf90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ba0661ae59157a747a50c8fe8d7e236e63cdfcb0d0899f79d4b00b0f5c1529b7c54a01746856fc678d95e3797b5ad8657d1004bed2f7dd9e9de66427f9a215fdd8865" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd90ff883bd66a2469633871e7d8fb50846665f28c7c08310ab7d94a3f45351bf" }, "transactions": [ { @@ -4272,10 +3345,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf3", - "v": "0x1b", - "r": "0x661ae59157a747a50c8fe8d7e236e63cdfcb0d0899f79d4b00b0f5c1529b7c54", - "s": "0x1746856fc678d95e3797b5ad8657d1004bed2f7dd9e9de66427f9a215fdd8865", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0xf7eabe294db6ae5f40baf4874535947da9703e9f4a9d9254cacfd0fd50cc5fb6", + "s": "0x78891107538ef4b5ca53de63174e466b1373c6d73f31b31b26c91ab7503384f7", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4283,11 +3356,144 @@ "withdrawals": [] } ], + "lastblockhash": "0xd90ff883bd66a2469633871e7d8fb50846665f28c7c08310ab7d94a3f45351bf", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186b2", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bc13e", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b1f53c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "021-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04c0e681b0958138519144cc543a71f2d4fcaf90f9d1d1e4f240526492cd22db9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x07fb5eca7a34f66e77cf26a4858063e36d06fd26b6ef34a1ae47adc8c951b85f", + "stateRoot": "0x4c0e681b0958138519144cc543a71f2d4fcaf90f9d1d1e4f240526492cd22db9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -4301,21 +3507,5055 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", + "hash": "0xfbea0c5b21d16f0bfbc344755786996e3143c297748d2b85de8f75665af6d838" + }, + "blocks": [ + { + "rlp": "0xf9065cf9021ca0fbea0c5b21d16f0bfbc344755786996e3143c297748d2b85de8f75665af6d838a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0084a2aeb38589808fbc4cfb007a8333625f477b15661b6fd400f3ddfede9f90ca02145e3dd4a47f2f9d275a7737ebb8c22127f48c9467cfa80701d5ab8ad776432a084531fe3673d0f5b8c2857408a8444227c3eff7583f4a967f70ede132afd7e41b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309408d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ba0ce6d067a428f2649e3e734cb0b4de68537c9cdcca6c7a1d421caede97b13f46ea066c25cb391cdb16afea825e28b8c509931587a5ca28e1975e354187c12e358fdc0c0", + "blockHeader": { + "parentHash": "0xfbea0c5b21d16f0bfbc344755786996e3143c297748d2b85de8f75665af6d838", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x084a2aeb38589808fbc4cfb007a8333625f477b15661b6fd400f3ddfede9f90c", + "transactionsTrie": "0x2145e3dd4a47f2f9d275a7737ebb8c22127f48c9467cfa80701d5ab8ad776432", + "receiptTrie": "0x84531fe3673d0f5b8c2857408a8444227c3eff7583f4a967f70ede132afd7e41", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x09408d", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x46e65031dad1dd694daa1a03c8b123fdfa4f24fc03548bc622730eb3356bf7de" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", + "v": "0x1b", + "r": "0xce6d067a428f2649e3e734cb0b4de68537c9cdcca6c7a1d421caede97b13f46e", + "s": "0x66c25cb391cdb16afea825e28b8c509931587a5ca28e1975e354187c12e358fd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x46e65031dad1dd694daa1a03c8b123fdfa4f24fc03548bc622730eb3356bf7de", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x3d97aab053f625db4e59b13f3f757231c8e53e52": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186b2", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bc1a7", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b1f3de", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "022-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07d93c18edad0b366b2b695f1a925ed0fd7f8a7048abb40115559e1bd057eb2b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7d93c18edad0b366b2b695f1a925ed0fd7f8a7048abb40115559e1bd057eb2b1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x26a0b19fdaa375d4b9e21c33b117228f6d493751648dcad22cbf78dc71e5888e" + }, + "blocks": [ + { + "rlp": "0xf9065af9021ca026a0b19fdaa375d4b9e21c33b117228f6d493751648dcad22cbf78dc71e5888ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b38ed66abd68955392b4b4f34a2efe8add6136eae9db5f60fb99e4efe547ebd3a01b32e6ca1c1a716fd9d7ef12ab9aa311fd7563dd6712c268e1f63226640613a3a09bc7b80e95a758494a5ce80f3903e69eb23011b097868b9c4c0a9112cfa00d97b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830939d28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca0243012d1f8e92ba8e8909bfe29f5a0c1cfdb6cc40c181d6f4b63772951c613a2a0398f52f6b4e77645eb42b3c88bddf5aba95a441a7162271c62d8b334bd0fcbb4c0c0", + "blockHeader": { + "parentHash": "0x26a0b19fdaa375d4b9e21c33b117228f6d493751648dcad22cbf78dc71e5888e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb38ed66abd68955392b4b4f34a2efe8add6136eae9db5f60fb99e4efe547ebd3", + "transactionsTrie": "0x1b32e6ca1c1a716fd9d7ef12ab9aa311fd7563dd6712c268e1f63226640613a3", + "receiptTrie": "0x9bc7b80e95a758494a5ce80f3903e69eb23011b097868b9c4c0a9112cfa00d97", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0939d2", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4bffe5d4c7868f334e9e33e8c46de4b60ca0f0fc9dd615761457fe60f8b568f9" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0x243012d1f8e92ba8e8909bfe29f5a0c1cfdb6cc40c181d6f4b63772951c613a2", + "s": "0x398f52f6b4e77645eb42b3c88bddf5aba95a441a7162271c62d8b334bd0fcbb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x4bffe5d4c7868f334e9e33e8c46de4b60ca0f0fc9dd615761457fe60f8b568f9", + "pre": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bad76", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b2372c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "023-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d132dc128a4597054e3400e45bc93f0956502db45005a1ee1bca45cd68f8f5b7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd132dc128a4597054e3400e45bc93f0956502db45005a1ee1bca45cd68f8f5b7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x8cd297e7911bd7527c345404895a179a6578e949836ffcddc0bac069eee359a9" + }, + "blocks": [ + { + "rlp": "0xf9065cf9021ca08cd297e7911bd7527c345404895a179a6578e949836ffcddc0bac069eee359a9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fe06e59b3f352c32383131ed72321c230ecd935050fea1d17151ac8949fb1307a0eaed210d0a698631bf053e56e28289b81afc4169f996e67c696f89daa0ef9fcca06a9a9aefb59821d6686001e8481167bc4a8e45c5e86dea7f7c2486173b22de34b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309441d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e52316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e52316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ba0d4fdb073883677796c3a5a2c2aeae7b1fde01091318bec0caf272934e42f5e33a074bd23ae34d8366dd50eb0c4b58439daa8d8a9519afc56165c1b6ea261bc592bc0c0", + "blockHeader": { + "parentHash": "0x8cd297e7911bd7527c345404895a179a6578e949836ffcddc0bac069eee359a9", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfe06e59b3f352c32383131ed72321c230ecd935050fea1d17151ac8949fb1307", + "transactionsTrie": "0xeaed210d0a698631bf053e56e28289b81afc4169f996e67c696f89daa0ef9fcc", + "receiptTrie": "0x6a9a9aefb59821d6686001e8481167bc4a8e45c5e86dea7f7c2486173b22de34", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x09441d", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x9543f9b9f223346672dcaf557961ea8cb4057855a73e7e81c4585d3986555e39" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e52316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e52316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", + "v": "0x1b", + "r": "0xd4fdb073883677796c3a5a2c2aeae7b1fde01091318bec0caf272934e42f5e33", + "s": "0x74bd23ae34d8366dd50eb0c4b58439daa8d8a9519afc56165c1b6ea261bc592b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x9543f9b9f223346672dcaf557961ea8cb4057855a73e7e81c4585d3986555e39", + "pre": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x3d97aab053f625db4e59b13f3f757231c8e53e52": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bcc57", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186b2", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b1d03e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "024-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c3de8d328d70259184542ae5f577751390a959aa4736617150deb49fc081a4e1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc3de8d328d70259184542ae5f577751390a959aa4736617150deb49fc081a4e1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x27b7ec150750ab003b36e1303ea6805f46161f265a1817f3cfec8f4948b8039e" + }, + "blocks": [ + { + "rlp": "0xf9065af9021ca027b7ec150750ab003b36e1303ea6805f46161f265a1817f3cfec8f4948b8039ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a08de7ee171a528c6cec199ea401b78693a9810522b1dac564217597b81f618fa0b14d20fd246eaa51d8c00b199372035c81b380bb72046ad190dfcb7407b32cb2a0b163973bee01b0161a477a81bc83fdcec4a51e6dff50a6e36a5f3e1eb7a56a16b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830938ee8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca084c730df4501387fe7fa9362b320982b5a9c411d33087fe1842cfb537716a4dda06976e528f116b8308a1ce69b9a31183dc2799b72e1a4dd31df4588c183a456bbc0c0", + "blockHeader": { + "parentHash": "0x27b7ec150750ab003b36e1303ea6805f46161f265a1817f3cfec8f4948b8039e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa08de7ee171a528c6cec199ea401b78693a9810522b1dac564217597b81f618f", + "transactionsTrie": "0xb14d20fd246eaa51d8c00b199372035c81b380bb72046ad190dfcb7407b32cb2", + "receiptTrie": "0xb163973bee01b0161a477a81bc83fdcec4a51e6dff50a6e36a5f3e1eb7a56a16", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0938ee", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x3b6ae86b4745a4b62b6270599ea1b6aa065295930796fd3bfca79c27aab1c4f7" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0x84c730df4501387fe7fa9362b320982b5a9c411d33087fe1842cfb537716a4dd", + "s": "0x6976e528f116b8308a1ce69b9a31183dc2799b72e1a4dd31df4588c183a456bb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3b6ae86b4745a4b62b6270599ea1b6aa065295930796fd3bfca79c27aab1c4f7", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186b2", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1baaca", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b24014", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "025-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d0403801776f75ec025f88e4c2ee91382da5aa3d49cb4f30648447478788d7d5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd0403801776f75ec025f88e4c2ee91382da5aa3d49cb4f30648447478788d7d5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x251944189927e791d48669318adf6c9ba0ed380e9b1fccb131f44f32b0c6274f" + }, + "blocks": [ + { + "rlp": "0xf9065cf9021ca0251944189927e791d48669318adf6c9ba0ed380e9b1fccb131f44f32b0c6274fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01fbc762bc99055952a8235e2ba94dce9393af83b0e9321952e07a8ece77030e3a07857a4c302e49ff819f64538c91c909eabc399a86719f7a5c293564d6fd5b370a03df8bcd6e821861816837bd0e6aff53862d52ec8c670e8c3f5c6ce89f860edadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830943398203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e52316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ca069c46025b776bac3d87e1a156b012d12b6f76608a7960e0553c54360d396d87ea05876dfaa6de4daa318895ecc78c17ff847138fac83ec95be727738a74f8619bac0c0", + "blockHeader": { + "parentHash": "0x251944189927e791d48669318adf6c9ba0ed380e9b1fccb131f44f32b0c6274f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1fbc762bc99055952a8235e2ba94dce9393af83b0e9321952e07a8ece77030e3", + "transactionsTrie": "0x7857a4c302e49ff819f64538c91c909eabc399a86719f7a5c293564d6fd5b370", + "receiptTrie": "0x3df8bcd6e821861816837bd0e6aff53862d52ec8c670e8c3f5c6ce89f860edad", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x094339", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x85c68bfa680a664d38875984013a17d0a675027ddd1ca8a9074ba1ba2f0b803b" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e52316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", + "v": "0x1c", + "r": "0x69c46025b776bac3d87e1a156b012d12b6f76608a7960e0553c54360d396d87e", + "s": "0x5876dfaa6de4daa318895ecc78c17ff847138fac83ec95be727738a74f8619ba", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x85c68bfa680a664d38875984013a17d0a675027ddd1ca8a9074ba1ba2f0b803b", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x3d97aab053f625db4e59b13f3f757231c8e53e52": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186b2", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bc9ab", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b1d926", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "026-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c3de8d328d70259184542ae5f577751390a959aa4736617150deb49fc081a4e1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc3de8d328d70259184542ae5f577751390a959aa4736617150deb49fc081a4e1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x27b7ec150750ab003b36e1303ea6805f46161f265a1817f3cfec8f4948b8039e" + }, + "blocks": [ + { + "rlp": "0xf90407f9021ca027b7ec150750ab003b36e1303ea6805f46161f265a1817f3cfec8f4948b8039ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01f5a75ed7c5259bf62e09ee205f113653e66dd805d51e3652b0e0ba3e86cbee3a0226b315a1c28d2c1a85ef4c8903f13f9694922fad907ba208a0bd08099dfcc6ea0bf1fe2438dfbe85e9085d1e07fa7b76e0ed75c569a7e206457537dcaadc0d3f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830533498203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f901e3f901e0800a8405f5e10080830186a0b9018e602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602cf31ba0098f781fe95f193deab17826c3c88bb3ba31b9a17a8d1dee48c5ca492e38ee58a054247e531489e4a3a0a1dcc2d1a0f88f3e14b6b62a65821a3e36ae0c39bbb4c8c0c0", + "blockHeader": { + "parentHash": "0x27b7ec150750ab003b36e1303ea6805f46161f265a1817f3cfec8f4948b8039e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1f5a75ed7c5259bf62e09ee205f113653e66dd805d51e3652b0e0ba3e86cbee3", + "transactionsTrie": "0x226b315a1c28d2c1a85ef4c8903f13f9694922fad907ba208a0bd08099dfcc6e", + "receiptTrie": "0xbf1fe2438dfbe85e9085d1e07fa7b76e0ed75c569a7e206457537dcaadc0d3f3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x053349", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x7b9c9555068d8680d8c07c20468f4729f397001f5cdbd8b46f8d67a0863c9f26" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602cf3", + "v": "0x1b", + "r": "0x098f781fe95f193deab17826c3c88bb3ba31b9a17a8d1dee48c5ca492e38ee58", + "s": "0x54247e531489e4a3a0a1dcc2d1a0f88f3e14b6b62a65821a3e36ae0c39bbb4c8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7b9c9555068d8680d8c07c20468f4729f397001f5cdbd8b46f8d67a0863c9f26", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0f99db", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x01869d", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x21", + "0x0a": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62da7886", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "027-fork=Shanghai-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d0403801776f75ec025f88e4c2ee91382da5aa3d49cb4f30648447478788d7d5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd0403801776f75ec025f88e4c2ee91382da5aa3d49cb4f30648447478788d7d5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x251944189927e791d48669318adf6c9ba0ed380e9b1fccb131f44f32b0c6274f" + }, + "blocks": [ + { + "rlp": "0xf90409f9021ca0251944189927e791d48669318adf6c9ba0ed380e9b1fccb131f44f32b0c6274fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09da1e8fadb9252deda1bd8d7357238fcae691bdcc07a3777d94f7b406556569ea01f9a61b7d00e73c9b18acf29aed59d3d0207ce85de5b46f81080e94e91868ebfa077b8cae3013a7fcf8d72d8fd57078e2771a78bbf0d0e5f9e3505f50a38f026d9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083053d948203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f901e5f901e2800a8405f5e10080830186a0b90190602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e5231600855733d97aab053f625db4e59b13f3f757231c8e53e523b600955733d97aab053f625db4e59b13f3f757231c8e53e523f600a556001602cf31ba01a36ab5f7fb7d82d2f0560ac72a89a4f01a95d2e0c2e388797a302043e640e4ba03d7f01a1b21692ad8f2a5bb6767b5c33094b01ec2e9993fa207aa36c650b7b8ac0c0", + "blockHeader": { + "parentHash": "0x251944189927e791d48669318adf6c9ba0ed380e9b1fccb131f44f32b0c6274f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9da1e8fadb9252deda1bd8d7357238fcae691bdcc07a3777d94f7b406556569e", + "transactionsTrie": "0x1f9a61b7d00e73c9b18acf29aed59d3d0207ce85de5b46f81080e94e91868ebf", + "receiptTrie": "0x77b8cae3013a7fcf8d72d8fd57078e2771a78bbf0d0e5f9e3505f50a38f026d9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x053d94", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x0b258d06f4ad6d2c3bd7de6226410c769989e37acf6dc36e386728ccbbc0ac7d" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e5231600855733d97aab053f625db4e59b13f3f757231c8e53e523b600955733d97aab053f625db4e59b13f3f757231c8e53e523f600a556001602cf3", + "v": "0x1b", + "r": "0x1a36ab5f7fb7d82d2f0560ac72a89a4f01a95d2e0c2e388797a302043e640e4b", + "s": "0x3d7f01a1b21692ad8f2a5bb6767b5c33094b01ec2e9993fa207aa36c650b7b8a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0b258d06f4ad6d2c3bd7de6226410c769989e37acf6dc36e386728ccbbc0ac7d", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x3d97aab053f625db4e59b13f3f757231c8e53e52": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0fb8bc", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x01869d", + "code": "0x00", + "storage": { + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x21", + "0x0a": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x02", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62da1198", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "028-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff" + }, + "blocks": [ + { + "rlp": "0xf9037ff9023fa0a9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06ae92169a65c4efbd7322f35b503c0232d3701977337e0794b5dec176ccbd975a0daa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499ea03228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1248203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90138f90135800a8405f5e10080830186a0b8e460166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca08602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169a00748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851c0c0", + "blockHeader": { + "parentHash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6ae92169a65c4efbd7322f35b503c0232d3701977337e0794b5dec176ccbd975", + "transactionsTrie": "0xdaa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499e", + "receiptTrie": "0x3228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03f124", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x981f53292b4e88a01c2c004eb1d370f81c0e264ca8e3a79edfd32b37ababddaa" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f3", + "v": "0x1c", + "r": "0x8602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169", + "s": "0x0748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x981f53292b4e88a01c2c004eb1d370f81c0e264ca8e3a79edfd32b37ababddaa", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bd36c", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x0b", + "0x02": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1", + "0x03": "0x01", + "0x05": "0x0b", + "0x06": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e70df8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "029-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff" + }, + "blocks": [ + { + "rlp": "0xf90381f9023fa0a9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa093e76e2ebfaa9bcb46833db19a9161575554f509f0597a521f493dc7e614f4e5a0ffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9dfa0e797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1418203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9013af90137800a8405f5e10080830186a0b8e660166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f31ba0f073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7a07b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8c0c0", + "blockHeader": { + "parentHash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x93e76e2ebfaa9bcb46833db19a9161575554f509f0597a521f493dc7e614f4e5", + "transactionsTrie": "0xffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9df", + "receiptTrie": "0xe797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03f141", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f6f623702ed2228a4db72fd48ce4884327a24c321629b092e6b42b3bc900497" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f3", + "v": "0x1b", + "r": "0xf073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7", + "s": "0x7b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3f6f623702ed2228a4db72fd48ce4884327a24c321629b092e6b42b3bc900497", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bd3c3", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0", + "0x01": "0x0b", + "0x02": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1", + "0x03": "0x01", + "0x05": "0x0b", + "0x06": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e70cd6", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "030-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b78fb8fc35c9f521a340fd2e19a1344b7efff14b17e84e0b9a399b5ec85a4b77a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb78fb8fc35c9f521a340fd2e19a1344b7efff14b17e84e0b9a399b5ec85a4b77", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x58b4118ac6a4d9afd383b35d13740bfba77d908bbc84933eba7643fe7cd8fe29" + }, + "blocks": [ + { + "rlp": "0xf9037ff9023fa058b4118ac6a4d9afd383b35d13740bfba77d908bbc84933eba7643fe7cd8fe29a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00bd96bfb780c5f8bb614b34e9e04f2a9271cf24b1826ba7565d3f827fb70ac93a0fd321c557783de46e87aa81acf85f728a06ddc21fe3418c21334bafbb9682b13a067f101568e93cd4bf085a88ff201d4d0e5e1fc0a66c2068e6699c2ceff76d871b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f5f58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90138f90135800a8405f5e10080830186a0b8e460286000600073000000000000000000000000000000000000abcd3c602860006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016028f31ba0aa86dd37013c9dc6c3ae530fe8e394d96572c197d4001378dc03471a0dd51e40a050e86d76d2665b80f143df4ff92c9dad536e3a5928590ff1b2db69b8263359e3c0c0", + "blockHeader": { + "parentHash": "0x58b4118ac6a4d9afd383b35d13740bfba77d908bbc84933eba7643fe7cd8fe29", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0bd96bfb780c5f8bb614b34e9e04f2a9271cf24b1826ba7565d3f827fb70ac93", + "transactionsTrie": "0xfd321c557783de46e87aa81acf85f728a06ddc21fe3418c21334bafbb9682b13", + "receiptTrie": "0x67f101568e93cd4bf085a88ff201d4d0e5e1fc0a66c2068e6699c2ceff76d871", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03f5f5", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc77556584dfd83faa100acc70f06461fe18cbb73de17cebe8381b4e6f65bd9b6" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60286000600073000000000000000000000000000000000000abcd3c602860006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016028f3", + "v": "0x1b", + "r": "0xaa86dd37013c9dc6c3ae530fe8e394d96572c197d4001378dc03471a0dd51e40", + "s": "0x50e86d76d2665b80f143df4ff92c9dad536e3a5928590ff1b2db69b8263359e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc77556584dfd83faa100acc70f06461fe18cbb73de17cebe8381b4e6f65bd9b6", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0be1df", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x1d", + "0x02": "0x8a39970cf3b308508e2386701e75776b45adb52fc18d78d359c244afea10b7e2", + "0x03": "0x01", + "0x05": "0x1d", + "0x06": "0x8a39970cf3b308508e2386701e75776b45adb52fc18d78d359c244afea10b7e2" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ddce", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "031-fork=Cancun-selfdestruct_contract_initial_balance=0-single_call_self-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a059fa79d43ebff32667f0f55908f8c03566a0f7d9629468d087d26e0f8cb0ec41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x59fa79d43ebff32667f0f55908f8c03566a0f7d9629468d087d26e0f8cb0ec41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x950ed3ebf345f48e289ae08a48646661972d3883d8620523604acaaef8441004" + }, + "blocks": [ + { + "rlp": "0xf90381f9023fa0950ed3ebf345f48e289ae08a48646661972d3883d8620523604acaaef8441004a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04b72d7d517ad86e38cc5f2ebf3b141093472a40cffc7b9ef004370445c6139d4a0594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4a0f9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830400408203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9013af90137800a8405f5e10080830186a0b8e660286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f31ca0089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757a0224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49c0c0", + "blockHeader": { + "parentHash": "0x950ed3ebf345f48e289ae08a48646661972d3883d8620523604acaaef8441004", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4b72d7d517ad86e38cc5f2ebf3b141093472a40cffc7b9ef004370445c6139d4", + "transactionsTrie": "0x594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4", + "receiptTrie": "0xf9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x040040", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1b863c8da28c3cbe3b53b07eb372343ad8ac30bd86ab9b3e67f2356bc3b1ce1b" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f3", + "v": "0x1c", + "r": "0x089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757", + "s": "0x224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1b863c8da28c3cbe3b53b07eb372343ad8ac30bd86ab9b3e67f2356bc3b1ce1b", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0c00c0", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x2f79e50e7bdfb219d1767273f1851a34adced3b8", + "0x01": "0x1d", + "0x02": "0x8a39970cf3b308508e2386701e75776b45adb52fc18d78d359c244afea10b7e2", + "0x03": "0x01", + "0x05": "0x1d", + "0x06": "0x8a39970cf3b308508e2386701e75776b45adb52fc18d78d359c244afea10b7e2" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e676e0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "032-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff" + }, + "blocks": [ + { + "rlp": "0xf9067df9023fa0a9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0065f147af6f71282105c60cef266710586ae15ca88f303a4425f70b51db445dca0488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ffa0e50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830918eb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e160166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f31ca0e7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1a03f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7c0c0", + "blockHeader": { + "parentHash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x065f147af6f71282105c60cef266710586ae15ca88f303a4425f70b51db445dc", + "transactionsTrie": "0x488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ff", + "receiptTrie": "0xe50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0918eb", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa769b7bfd2cde5ecf492721559233d400abdeba8bf51e7d7f258e1cffd0f4acf" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f3", + "v": "0x1c", + "r": "0xe7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1", + "s": "0x3f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa769b7bfd2cde5ecf492721559233d400abdeba8bf51e7d7f258e1cffd0f4acf", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x2d", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1b4ac1", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x0b", + "0x02": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x0b", + "0x18": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b38032", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "033-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff" + }, + "blocks": [ + { + "rlp": "0xf9067ff9023fa0a9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09b2651632786cacb8b8c4cae1ec6cd8dc38277f95ecafa4af58749384fcc9543a070b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4a0e78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830919088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e360166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f31ba0895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47a01e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516abc0c0", + "blockHeader": { + "parentHash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9b2651632786cacb8b8c4cae1ec6cd8dc38277f95ecafa4af58749384fcc9543", + "transactionsTrie": "0x70b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4", + "receiptTrie": "0xe78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x091908", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2f5e8c78ef3044edb1d216c2cb26a223f2e2d560575ae193c4e6cab1f5a8deaf" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f3", + "v": "0x1b", + "r": "0x895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47", + "s": "0x1e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2f5e8c78ef3044edb1d216c2cb26a223f2e2d560575ae193c4e6cab1f5a8deaf", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x2d", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1b4b18", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0", + "0x01": "0x0b", + "0x02": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x0b", + "0x18": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b37f10", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "034-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d1b2429e564b5172ca5eca6ec103824fbf461d251bdc0fbc9f9d55e17835699ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd1b2429e564b5172ca5eca6ec103824fbf461d251bdc0fbc9f9d55e17835699e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf19d96bcffd7b76925eae8ca195b3b3f8d7c76a856ca60b91a0432edf7b3e182" + }, + "blocks": [ + { + "rlp": "0xf9067df9023fa0f19d96bcffd7b76925eae8ca195b3b3f8d7c76a856ca60b91a0432edf7b3e182a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eb220c8485cccfef7b0a1e757daf36965a032ed80804c3ece5593e190abbe44da045f6da8f4a07e73a7423aae6364b68ecb0a8794a4759ab324e4f7ceb4409f0a1a0152009bb39b76ba0c7fba3280d1918b0196e197d8389071ae413e82dc39b6645b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309406a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca0f7eabe294db6ae5f40baf4874535947da9703e9f4a9d9254cacfd0fd50cc5fb6a078891107538ef4b5ca53de63174e466b1373c6d73f31b31b26c91ab7503384f7c0c0", + "blockHeader": { + "parentHash": "0xf19d96bcffd7b76925eae8ca195b3b3f8d7c76a856ca60b91a0432edf7b3e182", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xeb220c8485cccfef7b0a1e757daf36965a032ed80804c3ece5593e190abbe44d", + "transactionsTrie": "0x45f6da8f4a07e73a7423aae6364b68ecb0a8794a4759ab324e4f7ceb4409f0a1", + "receiptTrie": "0x152009bb39b76ba0c7fba3280d1918b0196e197d8389071ae413e82dc39b6645", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x09406a", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf04dd3407be56e0f2c6909da8a9f804cc06dc8f1b525ba8b4df33189d576c4f0" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0xf7eabe294db6ae5f40baf4874535947da9703e9f4a9d9254cacfd0fd50cc5fb6", + "s": "0x78891107538ef4b5ca53de63174e466b1373c6d73f31b31b26c91ab7503384f7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf04dd3407be56e0f2c6909da8a9f804cc06dc8f1b525ba8b4df33189d576c4f0", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x12", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bc13e", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b1f53c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "035-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d1b2429e564b5172ca5eca6ec103824fbf461d251bdc0fbc9f9d55e17835699ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd1b2429e564b5172ca5eca6ec103824fbf461d251bdc0fbc9f9d55e17835699e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf19d96bcffd7b76925eae8ca195b3b3f8d7c76a856ca60b91a0432edf7b3e182" + }, + "blocks": [ + { + "rlp": "0xf9067ff9023fa0f19d96bcffd7b76925eae8ca195b3b3f8d7c76a856ca60b91a0432edf7b3e182a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d4bb583f5d34373b7b76e8300e3071141bf41e3d47ccbde25095d5324f6059d9a02145e3dd4a47f2f9d275a7737ebb8c22127f48c9467cfa80701d5ab8ad776432a084531fe3673d0f5b8c2857408a8444227c3eff7583f4a967f70ede132afd7e41b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309408d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ba0ce6d067a428f2649e3e734cb0b4de68537c9cdcca6c7a1d421caede97b13f46ea066c25cb391cdb16afea825e28b8c509931587a5ca28e1975e354187c12e358fdc0c0", + "blockHeader": { + "parentHash": "0xf19d96bcffd7b76925eae8ca195b3b3f8d7c76a856ca60b91a0432edf7b3e182", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd4bb583f5d34373b7b76e8300e3071141bf41e3d47ccbde25095d5324f6059d9", + "transactionsTrie": "0x2145e3dd4a47f2f9d275a7737ebb8c22127f48c9467cfa80701d5ab8ad776432", + "receiptTrie": "0x84531fe3673d0f5b8c2857408a8444227c3eff7583f4a967f70ede132afd7e41", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x09408d", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x221a4a58e581dc4b442c12d86849c367f8f513a585dc25c34b0b91542727d630" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", + "v": "0x1b", + "r": "0xce6d067a428f2649e3e734cb0b4de68537c9cdcca6c7a1d421caede97b13f46e", + "s": "0x66c25cb391cdb16afea825e28b8c509931587a5ca28e1975e354187c12e358fd", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x221a4a58e581dc4b442c12d86849c367f8f513a585dc25c34b0b91542727d630", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x12", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bc1a7", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b1f3de", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "036-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a606ee3234eb9ce4939516e51eb6aa770e74e2743f6d5e55ec546c28f786f927a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa606ee3234eb9ce4939516e51eb6aa770e74e2743f6d5e55ec546c28f786f927", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcaf69cc1acf1efca40a160d3d5475ad6bccf1b94f681da38925204fdca9b6dd1" + }, + "blocks": [ + { + "rlp": "0xf9067df9023fa0caf69cc1acf1efca40a160d3d5475ad6bccf1b94f681da38925204fdca9b6dd1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bf3f21ce59fa23933ebfa9c20da265dfa9a0b5fea264d85faf49ac5a516d2d30a01b32e6ca1c1a716fd9d7ef12ab9aa311fd7563dd6712c268e1f63226640613a3a09bc7b80e95a758494a5ce80f3903e69eb23011b097868b9c4c0a9112cfa00d97b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830939d28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca0243012d1f8e92ba8e8909bfe29f5a0c1cfdb6cc40c181d6f4b63772951c613a2a0398f52f6b4e77645eb42b3c88bddf5aba95a441a7162271c62d8b334bd0fcbb4c0c0", + "blockHeader": { + "parentHash": "0xcaf69cc1acf1efca40a160d3d5475ad6bccf1b94f681da38925204fdca9b6dd1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbf3f21ce59fa23933ebfa9c20da265dfa9a0b5fea264d85faf49ac5a516d2d30", + "transactionsTrie": "0x1b32e6ca1c1a716fd9d7ef12ab9aa311fd7563dd6712c268e1f63226640613a3", + "receiptTrie": "0x9bc7b80e95a758494a5ce80f3903e69eb23011b097868b9c4c0a9112cfa00d97", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0939d2", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe57e68435d98f760b4a8d5cf7be2b3b9537798634a262531d3af046721061308" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0x243012d1f8e92ba8e8909bfe29f5a0c1cfdb6cc40c181d6f4b63772951c613a2", + "s": "0x398f52f6b4e77645eb42b3c88bddf5aba95a441a7162271c62d8b334bd0fcbb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe57e68435d98f760b4a8d5cf7be2b3b9537798634a262531d3af046721061308", + "pre": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bad76", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b2372c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "037-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c74e16bc76f642461fffeaaaffc4b5733e115b2ddc35cfc6706efd5eeb55a571a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc74e16bc76f642461fffeaaaffc4b5733e115b2ddc35cfc6706efd5eeb55a571", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8c53773658b3f2ffe3ef8cd6154d8b7707a6787c58544a1194085d8771fa0d54" + }, + "blocks": [ + { + "rlp": "0xf9067ff9023fa08c53773658b3f2ffe3ef8cd6154d8b7707a6787c58544a1194085d8771fa0d54a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa072212ba87e8928f8824a2749159145fe08457dd1eb854d3fd5f3c17b5bc0c870a0eaed210d0a698631bf053e56e28289b81afc4169f996e67c696f89daa0ef9fcca06a9a9aefb59821d6686001e8481167bc4a8e45c5e86dea7f7c2486173b22de34b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309441d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e52316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e52316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ba0d4fdb073883677796c3a5a2c2aeae7b1fde01091318bec0caf272934e42f5e33a074bd23ae34d8366dd50eb0c4b58439daa8d8a9519afc56165c1b6ea261bc592bc0c0", + "blockHeader": { + "parentHash": "0x8c53773658b3f2ffe3ef8cd6154d8b7707a6787c58544a1194085d8771fa0d54", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x72212ba87e8928f8824a2749159145fe08457dd1eb854d3fd5f3c17b5bc0c870", + "transactionsTrie": "0xeaed210d0a698631bf053e56e28289b81afc4169f996e67c696f89daa0ef9fcc", + "receiptTrie": "0x6a9a9aefb59821d6686001e8481167bc4a8e45c5e86dea7f7c2486173b22de34", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x09441d", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe664baef62af21004c6a8de7bf4d03369167ba5e25756fd39daea1f1f9361fde" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e52316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e52316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", + "v": "0x1b", + "r": "0xd4fdb073883677796c3a5a2c2aeae7b1fde01091318bec0caf272934e42f5e33", + "s": "0x74bd23ae34d8366dd50eb0c4b58439daa8d8a9519afc56165c1b6ea261bc592b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe664baef62af21004c6a8de7bf4d03369167ba5e25756fd39daea1f1f9361fde", + "pre": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bcc57", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x12", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b1d03e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "038-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aa67de01ffc602ed084fe5a6191352dd11e80944b6b2b4489041a6db831e44c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaa67de01ffc602ed084fe5a6191352dd11e80944b6b2b4489041a6db831e44c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3e" + }, + "blocks": [ + { + "rlp": "0xf9067df9023fa07f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ffdb07b018b73df5e53c3e5407c7f6f15ff7e7f220999b9f918f40076d6b890a0b14d20fd246eaa51d8c00b199372035c81b380bb72046ad190dfcb7407b32cb2a0b163973bee01b0161a477a81bc83fdcec4a51e6dff50a6e36a5f3e1eb7a56a16b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830938ee8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca084c730df4501387fe7fa9362b320982b5a9c411d33087fe1842cfb537716a4dda06976e528f116b8308a1ce69b9a31183dc2799b72e1a4dd31df4588c183a456bbc0c0", + "blockHeader": { + "parentHash": "0x7f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9ffdb07b018b73df5e53c3e5407c7f6f15ff7e7f220999b9f918f40076d6b890", + "transactionsTrie": "0xb14d20fd246eaa51d8c00b199372035c81b380bb72046ad190dfcb7407b32cb2", + "receiptTrie": "0xb163973bee01b0161a477a81bc83fdcec4a51e6dff50a6e36a5f3e1eb7a56a16", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0938ee", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x68df7cbcac1018e17b1dbce0efee809d15ea8ea4111886809f3d3b05a987b33d" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0x84c730df4501387fe7fa9362b320982b5a9c411d33087fe1842cfb537716a4dd", + "s": "0x6976e528f116b8308a1ce69b9a31183dc2799b72e1a4dd31df4588c183a456bb", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x68df7cbcac1018e17b1dbce0efee809d15ea8ea4111886809f3d3b05a987b33d", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x12", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1baaca", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b24014", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "039-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a4564814da17896d9cc02dae7df06f5ed324d1de0c0215400db3172d806ef4b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa4564814da17896d9cc02dae7df06f5ed324d1de0c0215400db3172d806ef4b5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb6b9fec1d35688db939c497062d81b0f574a21364de9d12da55ccd18c1bf64b3" + }, + "blocks": [ + { + "rlp": "0xf9067ff9023fa0b6b9fec1d35688db939c497062d81b0f574a21364de9d12da55ccd18c1bf64b3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0593c1f9feb5dd14329b35dd0ebb7ae306a5c285ca6863995df8865d0d5bfa409a07857a4c302e49ff819f64538c91c909eabc399a86719f7a5c293564d6fd5b370a03df8bcd6e821861816837bd0e6aff53862d52ec8c670e8c3f5c6ce89f860edadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830943398203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e52316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ca069c46025b776bac3d87e1a156b012d12b6f76608a7960e0553c54360d396d87ea05876dfaa6de4daa318895ecc78c17ff847138fac83ec95be727738a74f8619bac0c0", + "blockHeader": { + "parentHash": "0xb6b9fec1d35688db939c497062d81b0f574a21364de9d12da55ccd18c1bf64b3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x593c1f9feb5dd14329b35dd0ebb7ae306a5c285ca6863995df8865d0d5bfa409", + "transactionsTrie": "0x7857a4c302e49ff819f64538c91c909eabc399a86719f7a5c293564d6fd5b370", + "receiptTrie": "0x3df8bcd6e821861816837bd0e6aff53862d52ec8c670e8c3f5c6ce89f860edad", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x094339", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc55f02e7b2952275877fb3601483417166a90c833cf77c0ba5b443bd6aa81cb0" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e52316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", + "v": "0x1c", + "r": "0x69c46025b776bac3d87e1a156b012d12b6f76608a7960e0553c54360d396d87e", + "s": "0x5876dfaa6de4daa318895ecc78c17ff847138fac83ec95be727738a74f8619ba", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc55f02e7b2952275877fb3601483417166a90c833cf77c0ba5b443bd6aa81cb0", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x12", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bc9ab", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b1d926", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "040-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aa67de01ffc602ed084fe5a6191352dd11e80944b6b2b4489041a6db831e44c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaa67de01ffc602ed084fe5a6191352dd11e80944b6b2b4489041a6db831e44c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3e" + }, + "blocks": [ + { + "rlp": "0xf9042af9023fa07f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa033b84e2b250a1cc7fcb86c7b9b23332781acabeb4eeb8c08029253cb7b2ea77da0226b315a1c28d2c1a85ef4c8903f13f9694922fad907ba208a0bd08099dfcc6ea0bf1fe2438dfbe85e9085d1e07fa7b76e0ed75c569a7e206457537dcaadc0d3f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830533498203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f901e3f901e0800a8405f5e10080830186a0b9018e602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602cf31ba0098f781fe95f193deab17826c3c88bb3ba31b9a17a8d1dee48c5ca492e38ee58a054247e531489e4a3a0a1dcc2d1a0f88f3e14b6b62a65821a3e36ae0c39bbb4c8c0c0", + "blockHeader": { + "parentHash": "0x7f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x33b84e2b250a1cc7fcb86c7b9b23332781acabeb4eeb8c08029253cb7b2ea77d", + "transactionsTrie": "0x226b315a1c28d2c1a85ef4c8903f13f9694922fad907ba208a0bd08099dfcc6e", + "receiptTrie": "0xbf1fe2438dfbe85e9085d1e07fa7b76e0ed75c569a7e206457537dcaadc0d3f3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x053349", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa11da7876292e86b345be381ddd08b476a9a58503a0557c72e22905d211bc96b" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602cf3", + "v": "0x1b", + "r": "0x098f781fe95f193deab17826c3c88bb3ba31b9a17a8d1dee48c5ca492e38ee58", + "s": "0x54247e531489e4a3a0a1dcc2d1a0f88f3e14b6b62a65821a3e36ae0c39bbb4c8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa11da7876292e86b345be381ddd08b476a9a58503a0557c72e22905d211bc96b", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0f99db", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x01869d", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x21", + "0x0a": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62da7886", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "041-fork=Cancun-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a4564814da17896d9cc02dae7df06f5ed324d1de0c0215400db3172d806ef4b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa4564814da17896d9cc02dae7df06f5ed324d1de0c0215400db3172d806ef4b5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb6b9fec1d35688db939c497062d81b0f574a21364de9d12da55ccd18c1bf64b3" + }, + "blocks": [ + { + "rlp": "0xf9042cf9023fa0b6b9fec1d35688db939c497062d81b0f574a21364de9d12da55ccd18c1bf64b3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f3834c335a79bebcf133a367bcf41da05af8a77e96f004e4e29db7de21faa84da01f9a61b7d00e73c9b18acf29aed59d3d0207ce85de5b46f81080e94e91868ebfa077b8cae3013a7fcf8d72d8fd57078e2771a78bbf0d0e5f9e3505f50a38f026d9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083053d948203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f901e5f901e2800a8405f5e10080830186a0b90190602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e5231600855733d97aab053f625db4e59b13f3f757231c8e53e523b600955733d97aab053f625db4e59b13f3f757231c8e53e523f600a556001602cf31ba01a36ab5f7fb7d82d2f0560ac72a89a4f01a95d2e0c2e388797a302043e640e4ba03d7f01a1b21692ad8f2a5bb6767b5c33094b01ec2e9993fa207aa36c650b7b8ac0c0", + "blockHeader": { + "parentHash": "0xb6b9fec1d35688db939c497062d81b0f574a21364de9d12da55ccd18c1bf64b3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf3834c335a79bebcf133a367bcf41da05af8a77e96f004e4e29db7de21faa84d", + "transactionsTrie": "0x1f9a61b7d00e73c9b18acf29aed59d3d0207ce85de5b46f81080e94e91868ebf", + "receiptTrie": "0x77b8cae3013a7fcf8d72d8fd57078e2771a78bbf0d0e5f9e3505f50a38f026d9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x053d94", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc6d85d511938c17a0e000ec02efa131e8f27ca402df85037e7b775bb57d1c8eb" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e5231600855733d97aab053f625db4e59b13f3f757231c8e53e523b600955733d97aab053f625db4e59b13f3f757231c8e53e523f600a556001602cf3", + "v": "0x1b", + "r": "0x1a36ab5f7fb7d82d2f0560ac72a89a4f01a95d2e0c2e388797a302043e640e4b", + "s": "0x3d7f01a1b21692ad8f2a5bb6767b5c33094b01ec2e9993fa207aa36c650b7b8a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc6d85d511938c17a0e000ec02efa131e8f27ca402df85037e7b775bb57d1c8eb", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0fb8bc", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x01869d", + "code": "0x00", + "storage": { + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x21", + "0x0a": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x02", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62da1198", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "042-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a042b109b534663d1237d1b1d5c66c65ee392d4cdca683bb41a2ae372af22a3e5ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x42b109b534663d1237d1b1d5c66c65ee392d4cdca683bb41a2ae372af22a3e5c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd92e7d71087c411739614965c1339d3d651e5eb8f2eb07cd40859791e9179a7b" + }, + "blocks": [ + { + "rlp": "0xf9037ff9023fa0d92e7d71087c411739614965c1339d3d651e5eb8f2eb07cd40859791e9179a7ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0949499172028e1b624096bd682782deed0b6e2985f63f14b8414dc85abed8582a0daa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499ea03228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1248203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90138f90135800a8405f5e10080830186a0b8e460166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f31ca08602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169a00748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851c0c0", + "blockHeader": { + "parentHash": "0xd92e7d71087c411739614965c1339d3d651e5eb8f2eb07cd40859791e9179a7b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x949499172028e1b624096bd682782deed0b6e2985f63f14b8414dc85abed8582", + "transactionsTrie": "0xdaa04cbed6e1a52ac3dc1d6274e0556e3f0fe546e68e164f592eaa2669db499e", + "receiptTrie": "0x3228a3b47168f4d3ca7e35a2a0fd15559bc291618164a95c95f1706006fcd624", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03f124", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x26ba2b678833156baca8dbe07b2661959e7fbad82bd44cd0c9b9d8dfaf18ebe6" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016020f3", + "v": "0x1c", + "r": "0x8602c922ec1bf8c151657991c52692be517e9d72377c43fa3bcfa36f2f3cc169", + "s": "0x0748ceeebc7ec0a1b78c6a10047a69d4955285e15adfcf15a07bdeb761544851", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x26ba2b678833156baca8dbe07b2661959e7fbad82bd44cd0c9b9d8dfaf18ebe6", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bd36c", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x0b", + "0x02": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1", + "0x03": "0x01", + "0x05": "0x0b", + "0x06": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e70df8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "043-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e6ac792be34a37d8fdd03644d9523fb86bafbf41a03781f460c3463a75e03072a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe6ac792be34a37d8fdd03644d9523fb86bafbf41a03781f460c3463a75e03072", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc766b3b64a494c21df5aec71cec467e846d0826c863c85d8835de614edf58a95" + }, + "blocks": [ + { + "rlp": "0xf90381f9023fa0c766b3b64a494c21df5aec71cec467e846d0826c863c85d8835de614edf58a95a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00ece90099953e82a565298bc02da2674ecf74f757edc3c2ba2bcba9a6c2ee075a0ffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9dfa0e797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f1418203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9013af90137800a8405f5e10080830186a0b8e660166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f31ba0f073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7a07b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8c0c0", + "blockHeader": { + "parentHash": "0xc766b3b64a494c21df5aec71cec467e846d0826c863c85d8835de614edf58a95", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0ece90099953e82a565298bc02da2674ecf74f757edc3c2ba2bcba9a6c2ee075", + "transactionsTrie": "0xffce4d89978873a89eadb602f32e40be682c112f99b5792550b085773d70e9df", + "receiptTrie": "0xe797ad94438e128b2babe49ecc9136ba906670ec6f3b5a6a6f4dcdf091fcdaa5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03f141", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xff312234942b121398c43627cfe3dcf7bc04059557f6b203f3bc0c23a841f292" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316004557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6005557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60065560016020f3", + "v": "0x1b", + "r": "0xf073efbc96607746ba230b2d107a4ea72ff97671fdb6452750bfe7b60f575fa7", + "s": "0x7b9522dfe54481809fd093a99f8821f54885cf822d6517739b8a47724491e0d8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xff312234942b121398c43627cfe3dcf7bc04059557f6b203f3bc0c23a841f292", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bd3c3", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0", + "0x01": "0x0b", + "0x02": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1", + "0x03": "0x01", + "0x05": "0x0b", + "0x06": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e70cd6", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "044-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a069a360046b744c1df1bcac520721a1700f536d71c57277326b01de83eb82444aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x69a360046b744c1df1bcac520721a1700f536d71c57277326b01de83eb82444a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x151bbed7b114654c06b9a16ca4d8f617a1b44d50e0de24ef8a6daf78d5f61b8b" + }, + "blocks": [ + { + "rlp": "0xf9037ff9023fa0151bbed7b114654c06b9a16ca4d8f617a1b44d50e0de24ef8a6daf78d5f61b8ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0adff97eff2bb2b66cf7fe98db61ac04aba8010e5897c74b3755e6580d80150d9a0fd321c557783de46e87aa81acf85f728a06ddc21fe3418c21334bafbb9682b13a067f101568e93cd4bf085a88ff201d4d0e5e1fc0a66c2068e6699c2ceff76d871b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303f5f58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90138f90135800a8405f5e10080830186a0b8e460286000600073000000000000000000000000000000000000abcd3c602860006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016028f31ba0aa86dd37013c9dc6c3ae530fe8e394d96572c197d4001378dc03471a0dd51e40a050e86d76d2665b80f143df4ff92c9dad536e3a5928590ff1b2db69b8263359e3c0c0", + "blockHeader": { + "parentHash": "0x151bbed7b114654c06b9a16ca4d8f617a1b44d50e0de24ef8a6daf78d5f61b8b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xadff97eff2bb2b66cf7fe98db61ac04aba8010e5897c74b3755e6580d80150d9", + "transactionsTrie": "0xfd321c557783de46e87aa81acf85f728a06ddc21fe3418c21334bafbb9682b13", + "receiptTrie": "0x67f101568e93cd4bf085a88ff201d4d0e5e1fc0a66c2068e6699c2ceff76d871", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03f5f5", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x828875604da9f5472552eea43eebbbd9c64769d2416c8633fc7e5551c216f673" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60286000600073000000000000000000000000000000000000abcd3c602860006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f60065560016028f3", + "v": "0x1b", + "r": "0xaa86dd37013c9dc6c3ae530fe8e394d96572c197d4001378dc03471a0dd51e40", + "s": "0x50e86d76d2665b80f143df4ff92c9dad536e3a5928590ff1b2db69b8263359e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x828875604da9f5472552eea43eebbbd9c64769d2416c8633fc7e5551c216f673", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0be1df", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x1d", + "0x02": "0x8a39970cf3b308508e2386701e75776b45adb52fc18d78d359c244afea10b7e2", + "0x03": "0x01", + "0x05": "0x1d", + "0x06": "0x8a39970cf3b308508e2386701e75776b45adb52fc18d78d359c244afea10b7e2" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ddce", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "045-fork=Cancun-selfdestruct_contract_initial_balance=100000-single_call_self-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0062cdf7f70f49d1766d8c512c8de5f098ad17047e74211af77c6f4acb3264c7ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x062cdf7f70f49d1766d8c512c8de5f098ad17047e74211af77c6f4acb3264c7c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf6c7282bc153febac075f9b709731d08f96465ac35a199ca6d145fc81a5ef33f" + }, + "blocks": [ + { + "rlp": "0xf90381f9023fa0f6c7282bc153febac075f9b709731d08f96465ac35a199ca6d145fc81a5ef33fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa072fc8324c42265dac06278beaba346fa9965b75c9843a1b23c89967e63632a58a0594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4a0f9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830400408203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9013af90137800a8405f5e10080830186a0b8e660286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f31ca0089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757a0224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49c0c0", + "blockHeader": { + "parentHash": "0xf6c7282bc153febac075f9b709731d08f96465ac35a199ca6d145fc81a5ef33f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x72fc8324c42265dac06278beaba346fa9965b75c9843a1b23c89967e63632a58", + "transactionsTrie": "0x594c2bfe6403ef7a6399231893dbfdb92685f6f755ed94f3835792831947c1a4", + "receiptTrie": "0xf9327285eb5b42dba3897f34ea88b90b67cf6bdfa3379d298147aa5c3588a4fb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x040040", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x36434773071979e6a3f94657753d6d911c0626ad216f4fd4ed9bc28ee7f8bdeb" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600055732f79e50e7bdfb219d1767273f1851a34adced3b83b600155732f79e50e7bdfb219d1767273f1851a34adced3b83f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732f79e50e7bdfb219d1767273f1851a34adced3b845f1600355732f79e50e7bdfb219d1767273f1851a34adced3b831600455732f79e50e7bdfb219d1767273f1851a34adced3b83b600555732f79e50e7bdfb219d1767273f1851a34adced3b83f60065560016028f3", + "v": "0x1c", + "r": "0x089cb3f7463cfdbd6254bd743fbaa0bef631228f596456bce5fb1938e87db757", + "s": "0x224d37064603c35e4c7dc1ffa96f9e0efae8985f50b5cc564f11e0d5de26ff49", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x36434773071979e6a3f94657753d6d911c0626ad216f4fd4ed9bc28ee7f8bdeb", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x2f79e50e7bdfb219d1767273f1851a34adced3b8": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f557364e2ebd6405af8cb348aec519084d3fff42ebba6ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0c00c0", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x2f79e50e7bdfb219d1767273f1851a34adced3b8", + "0x01": "0x1d", + "0x02": "0x8a39970cf3b308508e2386701e75776b45adb52fc18d78d359c244afea10b7e2", + "0x03": "0x01", + "0x05": "0x1d", + "0x06": "0x8a39970cf3b308508e2386701e75776b45adb52fc18d78d359c244afea10b7e2" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e676e0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "046-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a042b109b534663d1237d1b1d5c66c65ee392d4cdca683bb41a2ae372af22a3e5ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x42b109b534663d1237d1b1d5c66c65ee392d4cdca683bb41a2ae372af22a3e5c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd92e7d71087c411739614965c1339d3d651e5eb8f2eb07cd40859791e9179a7b" + }, + "blocks": [ + { + "rlp": "0xf9067df9023fa0d92e7d71087c411739614965c1339d3d651e5eb8f2eb07cd40859791e9179a7ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4ae162ef1e88b0ced521b678f0820fabdf189a57f9aaf008834a7ddc1f7a362a0488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ffa0e50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830918eb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e160166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f31ca0e7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1a03f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7c0c0", + "blockHeader": { + "parentHash": "0xd92e7d71087c411739614965c1339d3d651e5eb8f2eb07cd40859791e9179a7b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf4ae162ef1e88b0ced521b678f0820fabdf189a57f9aaf008834a7ddc1f7a362", + "transactionsTrie": "0x488fe4da1d5d2326db1746f238993e38ed9655b75103e863a0c61169c84f78ff", + "receiptTrie": "0xe50fc70e8d89b52f7282c35dcb0801f5a49f45e8e892e1ecc0e646aba3e0ab29", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0918eb", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x93994d35a939de843233d006a07bcc9b3e81d78e13b373a35feed1aa7d142373" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000001000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000001000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000001000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000001000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000001000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000001000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f60185560016020f3", + "v": "0x1c", + "r": "0xe7a293427244be5af5076c4722e0d611f300b865d1ac409e991385c8d2aca9a1", + "s": "0x3f19be79bb427e2fe26402dc800dea6fabd28a91fb211f9ae25660c789895ee7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x93994d35a939de843233d006a07bcc9b3e81d78e13b373a35feed1aa7d142373", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186cd", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1b4ac1", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x0b", + "0x02": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x0b", + "0x18": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b38032", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "047-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e6ac792be34a37d8fdd03644d9523fb86bafbf41a03781f460c3463a75e03072a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe6ac792be34a37d8fdd03644d9523fb86bafbf41a03781f460c3463a75e03072", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x473ae533e9e4921e14a3856b8e03f96f77ec07a52525e739f8d0b357b87e7e58" + "hash": "0xc766b3b64a494c21df5aec71cec467e846d0826c863c85d8835de614edf58a95" + }, + "blocks": [ + { + "rlp": "0xf9067ff9023fa0c766b3b64a494c21df5aec71cec467e846d0826c863c85d8835de614edf58a95a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0112125c750c106870e460a518764473233733189f82977666f2b1e88c39ff9aba070b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4a0e78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830919088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e360166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f31ba0895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47a01e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516abc0c0", + "blockHeader": { + "parentHash": "0xc766b3b64a494c21df5aec71cec467e846d0826c863c85d8835de614edf58a95", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x112125c750c106870e460a518764473233733189f82977666f2b1e88c39ff9ab", + "transactionsTrie": "0x70b361910865a7bf9f29ca458423e6bcafcff64864452aa3a21ba407996d04b4", + "receiptTrie": "0xe78356bd7f4f15e47945f38976204deedf85f0043347574e86a0b9a22559dce9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x091908", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5b8dd2420deae0872a12d7c8e2466c37501fb065b15a786e812306e1a63ebf33" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6001557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f600255730000000000000000000000000000000000001000600052600060006020600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16003557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600455730000000000000000000000000000000000001000600052600060006020600060017387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16005557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600655730000000000000000000000000000000000001000600052600060006020600060027387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16007557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600855730000000000000000000000000000000000001000600052600060006020600060037387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16009557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600a55730000000000000000000000000000000000001000600052600060006020600060047387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600b557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600c55730000000000000000000000000000000000001000600052600060006020600060057387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600d557387e53d1f25b26d6ee788fa5c285399c1c822f5b031600e55730000000000000000000000000000000000001000600052600060006020600060067387e53d1f25b26d6ee788fa5c285399c1c822f5b045f1600f557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601055730000000000000000000000000000000000001000600052600060006020600060077387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16011557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601255730000000000000000000000000000000000001000600052600060006020600060087387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16013557387e53d1f25b26d6ee788fa5c285399c1c822f5b031601455730000000000000000000000000000000000001000600052600060006020600060097387e53d1f25b26d6ee788fa5c285399c1c822f5b045f16015557387e53d1f25b26d6ee788fa5c285399c1c822f5b0316016557387e53d1f25b26d6ee788fa5c285399c1c822f5b03b6017557387e53d1f25b26d6ee788fa5c285399c1c822f5b03f60185560016020f3", + "v": "0x1b", + "r": "0x895ab7d4af7039f7abf89eacc3465890c3468f6c9706fe41c104b9529929ca47", + "s": "0x1e563de2588b07eea23db302d1d022d0423779b4d43cd78e3aefd868bd1516ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5b8dd2420deae0872a12d7c8e2466c37501fb065b15a786e812306e1a63ebf33", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186cd", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1b4b18", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0", + "0x01": "0x0b", + "0x02": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1", + "0x03": "0x01", + "0x05": "0x01", + "0x07": "0x01", + "0x09": "0x01", + "0x0b": "0x01", + "0x0d": "0x01", + "0x0f": "0x01", + "0x11": "0x01", + "0x13": "0x01", + "0x15": "0x01", + "0x17": "0x0b", + "0x18": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b37f10", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "048-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a007fb5eca7a34f66e77cf26a4858063e36d06fd26b6ef34a1ae47adc8c951b85fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x253381c210be8792f9332160336c75adc6205ca71d7cc64039196fc966ec90fb", "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a052db8fd152060bdb2b736f7db059f67f18f76cadfd0b3d6dfd573b15e4c48848a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x52db8fd152060bdb2b736f7db059f67f18f76cadfd0b3d6dfd573b15e4c48848", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9f3237adaaee8f4f18b8f2bbbb572b328241dbdc651b921c91cca37f888e8d1b" + }, + "blocks": [ + { + "rlp": "0xf9067df9023fa09f3237adaaee8f4f18b8f2bbbb572b328241dbdc651b921c91cca37f888e8d1ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f01984dde43a58345d1500da0db44502ebe263027435e92d728a6afece916e6ea045f6da8f4a07e73a7423aae6364b68ecb0a8794a4759ab324e4f7ceb4409f0a1a0152009bb39b76ba0c7fba3280d1918b0196e197d8389071ae413e82dc39b6645b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309406a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca0f7eabe294db6ae5f40baf4874535947da9703e9f4a9d9254cacfd0fd50cc5fb6a078891107538ef4b5ca53de63174e466b1373c6d73f31b31b26c91ab7503384f7c0c0", + "blockHeader": { + "parentHash": "0x9f3237adaaee8f4f18b8f2bbbb572b328241dbdc651b921c91cca37f888e8d1b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf01984dde43a58345d1500da0db44502ebe263027435e92d728a6afece916e6e", + "transactionsTrie": "0x45f6da8f4a07e73a7423aae6364b68ecb0a8794a4759ab324e4f7ceb4409f0a1", + "receiptTrie": "0x152009bb39b76ba0c7fba3280d1918b0196e197d8389071ae413e82dc39b6645", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x09406a", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb9014ea3a0bd7f1ae8a7bb4877ed328c80ae0f20771c318fbd25efb67de1060b" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0xf7eabe294db6ae5f40baf4874535947da9703e9f4a9d9254cacfd0fd50cc5fb6", + "s": "0x78891107538ef4b5ca53de63174e466b1373c6d73f31b31b26c91ab7503384f7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb9014ea3a0bd7f1ae8a7bb4877ed328c80ae0f20771c318fbd25efb67de1060b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -4343,13 +8583,19 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -4366,14 +8612,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186b2", @@ -4401,18 +8639,26 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bbf6a", + "balance": "0x1bc13e", "code": "0x", "storage": {} }, @@ -4422,8 +8668,8 @@ "code": "0x00", "storage": { "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -4434,40 +8680,65 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b1fb54", + "balance": "0x056bc75e2d62b1f53c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "021-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { + "049-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a000ec584c2f8ed7bed6fcd17948082ab6d9f560814bda0813d1b804242a83a31ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x00ec584c2f8ed7bed6fcd17948082ab6d9f560814bda0813d1b804242a83a31c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x863245514540061d253a61c7b8e2f0366bda46b54074b5cfb5afa26b5ff4b029" + }, "blocks": [ { - "rlp": "0xf9067ff9023fa064973523d5c03b53157645c7d57a0f37c8ba5a197eea2ad4267e85b611bd0981a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa024d762cf583adcf2bf9890cf15c2367ce48dbed737469ca6c09fc859990cf12ba078c8302f22c0d3627ecc5a97f43247d87f6fd7561eb273680301e1283e61bcf0a07a1ceb29508e601f677e9f673d6cc557c2c9630c7d667e4cc679308356d09d16b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083093ff18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ba003f1985d77c88a06421e0e9748ec9c1014861d34be3a419f1253423653c10441a0604eb9ff7d3031931f9d066e02941259b84ca824e1fcc25742ed13ebe5e3907dc0c0", + "rlp": "0xf9067ff9023fa0863245514540061d253a61c7b8e2f0366bda46b54074b5cfb5afa26b5ff4b029a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e476963799131b12fd1cd7bc79fba499168f7d27bdcd8ac9721c0f1005edeb41a02145e3dd4a47f2f9d275a7737ebb8c22127f48c9467cfa80701d5ab8ad776432a084531fe3673d0f5b8c2857408a8444227c3eff7583f4a967f70ede132afd7e41b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309408d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ba0ce6d067a428f2649e3e734cb0b4de68537c9cdcca6c7a1d421caede97b13f46ea066c25cb391cdb16afea825e28b8c509931587a5ca28e1975e354187c12e358fdc0c0", "blockHeader": { - "parentHash": "0x64973523d5c03b53157645c7d57a0f37c8ba5a197eea2ad4267e85b611bd0981", + "parentHash": "0x863245514540061d253a61c7b8e2f0366bda46b54074b5cfb5afa26b5ff4b029", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x24d762cf583adcf2bf9890cf15c2367ce48dbed737469ca6c09fc859990cf12b", - "transactionsTrie": "0x78c8302f22c0d3627ecc5a97f43247d87f6fd7561eb273680301e1283e61bcf0", - "receiptTrie": "0x7a1ceb29508e601f677e9f673d6cc557c2c9630c7d667e4cc679308356d09d16", + "stateRoot": "0xe476963799131b12fd1cd7bc79fba499168f7d27bdcd8ac9721c0f1005edeb41", + "transactionsTrie": "0x2145e3dd4a47f2f9d275a7737ebb8c22127f48c9467cfa80701d5ab8ad776432", + "receiptTrie": "0x84531fe3673d0f5b8c2857408a8444227c3eff7583f4a967f70ede132afd7e41", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x093ff1", + "gasUsed": "0x09408d", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4477,33 +8748,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x68c1931f37c1529cd30b469a180ef4054298b1bc00beea123c6ef51363f550ab" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x64973523d5c03b53157645c7d57a0f37c8ba5a197eea2ad4267e85b611bd0981", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x24d762cf583adcf2bf9890cf15c2367ce48dbed737469ca6c09fc859990cf12b", - "receiptsRoot": "0x7a1ceb29508e601f677e9f673d6cc557c2c9630c7d667e4cc679308356d09d16", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x93ff1", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x68c1931f37c1529cd30b469a180ef4054298b1bc00beea123c6ef51363f550ab", - "transactions": [ - "0xf90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ba003f1985d77c88a06421e0e9748ec9c1014861d34be3a419f1253423653c10441a0604eb9ff7d3031931f9d066e02941259b84ca824e1fcc25742ed13ebe5e3907d" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x818d8007a17c673fc93b2b47c8e0c087f9860d94ba1dee1ba86b26a5e9e6ba6d" }, "transactions": [ { @@ -4514,10 +8759,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf3", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", "v": "0x1b", - "r": "0x03f1985d77c88a06421e0e9748ec9c1014861d34be3a419f1253423653c10441", - "s": "0x604eb9ff7d3031931f9d066e02941259b84ca824e1fcc25742ed13ebe5e3907d", + "r": "0xce6d067a428f2649e3e734cb0b4de68537c9cdcca6c7a1d421caede97b13f46e", + "s": "0x66c25cb391cdb16afea825e28b8c509931587a5ca28e1975e354187c12e358fd", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4525,39 +8770,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x21f701660802f7a41ed1a7a2e266f034cff59f86fa59a2605f3ea28b8b603e3f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x64973523d5c03b53157645c7d57a0f37c8ba5a197eea2ad4267e85b611bd0981" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a021f701660802f7a41ed1a7a2e266f034cff59f86fa59a2605f3ea28b8b603e3fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x68c1931f37c1529cd30b469a180ef4054298b1bc00beea123c6ef51363f550ab", - "network": "Cancun", + "lastblockhash": "0x818d8007a17c673fc93b2b47c8e0c087f9860d94ba1dee1ba86b26a5e9e6ba6d", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -4585,16 +8799,22 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, - "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91": { + "0x3d97aab053f625db4e59b13f3f757231c8e53e52": { "nonce": "0x00", "balance": "0x0186a0", "code": "0x", @@ -4608,14 +8828,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186b2", @@ -4643,18 +8855,26 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bbfd3", + "balance": "0x1bc1a7", "code": "0x", "storage": {} }, @@ -4663,9 +8883,9 @@ "balance": "0x018673", "code": "0x00", "storage": { - "0x00": "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -4676,40 +8896,65 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b1f9f6", + "balance": "0x056bc75e2d62b1f3de", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "022-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { + "050-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02910469156ef0c160edad8da9d7ab420ab8fbcd77c8793502ffa2903d3bb8a01a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2910469156ef0c160edad8da9d7ab420ab8fbcd77c8793502ffa2903d3bb8a01", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0b7c8408b55e46b38a63226eb16ab50ae38afb1cc9e0f2ba7142fbf89215c2b0" + }, "blocks": [ { - "rlp": "0xf9067df9023fa0b501c9bdf84b7df437ff359641976181880b4d0d4d1e3a1245ac45c52d644283a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fb32ab8306d53980d4c0810083f26c057821e802dbab95cca659f24f0abbd3a5a080391300a67f6a1e36ca90bef81068500a006d37b0fbc65accd7b70e29373d19a0641275d2d901b9f1401479f5225fa410a6c5b5271a449900488fd07df619ce87b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830939368203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ba0473c9b39d28a5af1f8e436976695b11865e3a9169d5f64671a0e9a1ad9042932a05f24e4b3c4764c6011f16caa3fdced20cd35f357c13fbec0db0c68cc31af86a8c0c0", + "rlp": "0xf9067df9023fa00b7c8408b55e46b38a63226eb16ab50ae38afb1cc9e0f2ba7142fbf89215c2b0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cf776aca8db613430a350416eb3a8363411526efb8c1e0e922b04bbe47c13a7fa01b32e6ca1c1a716fd9d7ef12ab9aa311fd7563dd6712c268e1f63226640613a3a09bc7b80e95a758494a5ce80f3903e69eb23011b097868b9c4c0a9112cfa00d97b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830939d28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca0243012d1f8e92ba8e8909bfe29f5a0c1cfdb6cc40c181d6f4b63772951c613a2a0398f52f6b4e77645eb42b3c88bddf5aba95a441a7162271c62d8b334bd0fcbb4c0c0", "blockHeader": { - "parentHash": "0xb501c9bdf84b7df437ff359641976181880b4d0d4d1e3a1245ac45c52d644283", + "parentHash": "0x0b7c8408b55e46b38a63226eb16ab50ae38afb1cc9e0f2ba7142fbf89215c2b0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfb32ab8306d53980d4c0810083f26c057821e802dbab95cca659f24f0abbd3a5", - "transactionsTrie": "0x80391300a67f6a1e36ca90bef81068500a006d37b0fbc65accd7b70e29373d19", - "receiptTrie": "0x641275d2d901b9f1401479f5225fa410a6c5b5271a449900488fd07df619ce87", + "stateRoot": "0xcf776aca8db613430a350416eb3a8363411526efb8c1e0e922b04bbe47c13a7f", + "transactionsTrie": "0x1b32e6ca1c1a716fd9d7ef12ab9aa311fd7563dd6712c268e1f63226640613a3", + "receiptTrie": "0x9bc7b80e95a758494a5ce80f3903e69eb23011b097868b9c4c0a9112cfa00d97", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x093936", + "gasUsed": "0x0939d2", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4719,33 +8964,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0459f409b50aab3836c92b9772312f9ddbfabf15331fc1393cf53ab7b770a1d9" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb501c9bdf84b7df437ff359641976181880b4d0d4d1e3a1245ac45c52d644283", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfb32ab8306d53980d4c0810083f26c057821e802dbab95cca659f24f0abbd3a5", - "receiptsRoot": "0x641275d2d901b9f1401479f5225fa410a6c5b5271a449900488fd07df619ce87", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x93936", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0459f409b50aab3836c92b9772312f9ddbfabf15331fc1393cf53ab7b770a1d9", - "transactions": [ - "0xf90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ba0473c9b39d28a5af1f8e436976695b11865e3a9169d5f64671a0e9a1ad9042932a05f24e4b3c4764c6011f16caa3fdced20cd35f357c13fbec0db0c68cc31af86a8" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x7f742b22a5eddeeb59d864ceb5265512f878fcfaf27cc7947e1a40a1957d535a" }, "transactions": [ { @@ -4756,10 +8975,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf3", - "v": "0x1b", - "r": "0x473c9b39d28a5af1f8e436976695b11865e3a9169d5f64671a0e9a1ad9042932", - "s": "0x5f24e4b3c4764c6011f16caa3fdced20cd35f357c13fbec0db0c68cc31af86a8", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f6002557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba631600655730000000000000000000000000000000000003000600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c55730000000000000000000000000000000000003000600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba631601255730000000000000000000000000000000000003000600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba6316014557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", + "v": "0x1c", + "r": "0x243012d1f8e92ba8e8909bfe29f5a0c1cfdb6cc40c181d6f4b63772951c613a2", + "s": "0x398f52f6b4e77645eb42b3c88bddf5aba95a441a7162271c62d8b334bd0fcbb4", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4767,39 +8986,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x96854389b92cd058d6b44b2635fe433219cff5e8db0bddaa2d79e43b30d99904", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb501c9bdf84b7df437ff359641976181880b4d0d4d1e3a1245ac45c52d644283" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a096854389b92cd058d6b44b2635fe433219cff5e8db0bddaa2d79e43b30d99904a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0459f409b50aab3836c92b9772312f9ddbfabf15331fc1393cf53ab7b770a1d9", - "network": "Cancun", + "lastblockhash": "0x7f742b22a5eddeeb59d864ceb5265512f878fcfaf27cc7947e1a40a1957d535a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x00", @@ -4819,13 +9007,19 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -4842,14 +9036,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x0c", @@ -4869,18 +9055,26 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1baba2", + "balance": "0x1bad76", "code": "0x", "storage": {} }, @@ -4890,8 +9084,8 @@ "code": "0x00", "storage": { "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -4902,40 +9096,65 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b23d44", + "balance": "0x056bc75e2d62b2372c", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "023-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { + "051-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04083be7e5c4f652de33070d3c6137185e41feb595467fcbdf4d625f20e5c2bb4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4083be7e5c4f652de33070d3c6137185e41feb595467fcbdf4d625f20e5c2bb4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe4738aff79e0bb58e4e0ed7137c602a0a7bc55fcc140cdc58339664581d4c3c8" + }, "blocks": [ { - "rlp": "0xf9067ff9023fa000bd1d38fd9b0158bb18695c5f964a351f180ce32360085028f10860449dd854a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09050f1c65fd0dc4861234bafcb7d8ea2b937abb24b82baafb34e0405856d18cfa091354d27083d8e245e03bde0a7453bba8ce798e0c2388b2194751541cd6a9db6a02599370fa6d650534ca2115b713889cd42fd4f10aad08f56145ae7945b471f70b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830943818203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb91316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb91316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ca0e80b85b1a2fb308c78f78d1ef0b7916eaf37af1a2284f8c3b7b9a2f0fbb363f2a00c04e3a9690be5061e2c63491edf1eb9360e5c82345e84adbb44b3338a41a5ecc0c0", + "rlp": "0xf9067ff9023fa0e4738aff79e0bb58e4e0ed7137c602a0a7bc55fcc140cdc58339664581d4c3c8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08c44d9178bb018ecf49bb3fbfa9ee64ba6ac62c3901c613b29708f93acfdb7a3a0eaed210d0a698631bf053e56e28289b81afc4169f996e67c696f89daa0ef9fcca06a9a9aefb59821d6686001e8481167bc4a8e45c5e86dea7f7c2486173b22de34b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309441d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e52316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e52316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ba0d4fdb073883677796c3a5a2c2aeae7b1fde01091318bec0caf272934e42f5e33a074bd23ae34d8366dd50eb0c4b58439daa8d8a9519afc56165c1b6ea261bc592bc0c0", "blockHeader": { - "parentHash": "0x00bd1d38fd9b0158bb18695c5f964a351f180ce32360085028f10860449dd854", + "parentHash": "0xe4738aff79e0bb58e4e0ed7137c602a0a7bc55fcc140cdc58339664581d4c3c8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9050f1c65fd0dc4861234bafcb7d8ea2b937abb24b82baafb34e0405856d18cf", - "transactionsTrie": "0x91354d27083d8e245e03bde0a7453bba8ce798e0c2388b2194751541cd6a9db6", - "receiptTrie": "0x2599370fa6d650534ca2115b713889cd42fd4f10aad08f56145ae7945b471f70", + "stateRoot": "0x8c44d9178bb018ecf49bb3fbfa9ee64ba6ac62c3901c613b29708f93acfdb7a3", + "transactionsTrie": "0xeaed210d0a698631bf053e56e28289b81afc4169f996e67c696f89daa0ef9fcc", + "receiptTrie": "0x6a9a9aefb59821d6686001e8481167bc4a8e45c5e86dea7f7c2486173b22de34", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x094381", + "gasUsed": "0x09441d", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -4945,33 +9164,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9dda02d25fac12c6759b401e6d011f6c9253acdb4adf7b81e5c99f836642bb8c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x00bd1d38fd9b0158bb18695c5f964a351f180ce32360085028f10860449dd854", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9050f1c65fd0dc4861234bafcb7d8ea2b937abb24b82baafb34e0405856d18cf", - "receiptsRoot": "0x2599370fa6d650534ca2115b713889cd42fd4f10aad08f56145ae7945b471f70", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x94381", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9dda02d25fac12c6759b401e6d011f6c9253acdb4adf7b81e5c99f836642bb8c", - "transactions": [ - "0xf90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb91316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb91316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ca0e80b85b1a2fb308c78f78d1ef0b7916eaf37af1a2284f8c3b7b9a2f0fbb363f2a00c04e3a9690be5061e2c63491edf1eb9360e5c82345e84adbb44b3338a41a5ec" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x05c8cc141cae1975d5a34c6891532a02a8d8a1cee3cded2c68759954d1943f33" }, "transactions": [ { @@ -4982,10 +9175,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb913160065573000000000000000000000000000000000000300060005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb91316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c5573000000000000000000000000000000000000300060005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb913160125573000000000000000000000000000000000000300060005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb91316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf3", - "v": "0x1c", - "r": "0xe80b85b1a2fb308c78f78d1ef0b7916eaf37af1a2284f8c3b7b9a2f0fbb363f2", - "s": "0x0c04e3a9690be5061e2c63491edf1eb9360e5c82345e84adbb44b3338a41a5ec", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f6002557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e523160065573000000000000000000000000000000000000300060005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e52316008557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c5573000000000000000000000000000000000000300060005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e523160125573000000000000000000000000000000000000300060005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e52316014557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", + "v": "0x1b", + "r": "0xd4fdb073883677796c3a5a2c2aeae7b1fde01091318bec0caf272934e42f5e33", + "s": "0x74bd23ae34d8366dd50eb0c4b58439daa8d8a9519afc56165c1b6ea261bc592b", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -4993,39 +9186,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa83bfbda876756e512aff32e34281dbe719e85352492b6af0257a13d805cb833", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x00bd1d38fd9b0158bb18695c5f964a351f180ce32360085028f10860449dd854" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a83bfbda876756e512aff32e34281dbe719e85352492b6af0257a13d805cb833a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9dda02d25fac12c6759b401e6d011f6c9253acdb4adf7b81e5c99f836642bb8c", - "network": "Cancun", + "lastblockhash": "0x05c8cc141cae1975d5a34c6891532a02a8d8a1cee3cded2c68759954d1943f33", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x00", @@ -5045,16 +9207,22 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, - "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91": { + "0x3d97aab053f625db4e59b13f3f757231c8e53e52": { "nonce": "0x00", "balance": "0x0186a0", "code": "0x", @@ -5076,14 +9244,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x0c", @@ -5103,18 +9263,26 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bca83", + "balance": "0x1bcc57", "code": "0x", "storage": {} }, @@ -5123,9 +9291,9 @@ "balance": "0x018673", "code": "0x00", "storage": { - "0x00": "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -5136,8 +9304,8 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -5150,34 +9318,59 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b1d656", + "balance": "0x056bc75e2d62b1d03e", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "024-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { + "052-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072f3f0f412f6ca3ffed27e278c119c31c4cee215b6a0b0096c86a40101fba2dda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72f3f0f412f6ca3ffed27e278c119c31c4cee215b6a0b0096c86a40101fba2dd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9955d9404999aad6924b8b3027c3bb512e7fc6937a0633911d6b5c95754d5166" + }, "blocks": [ { - "rlp": "0xf9067df9023fa02a9f538c697c5efcabc25907d21783fc2c3940db2781fec1c79b02b651efaeeda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fa7aa137cc035c8113b77e8c7d6376f0deb56ae65d53bf6d0012001fc79c18e6a02235fcd8c2478dc1b39dac42eeeaf28ece52c19e5cf048d3d984bb3ed6aded73a0d7f4b880ec184b27b2d4870eea138ea1f3b8cadcae1aa18af457ba1d94fcfb4ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830938528203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ca0cda17c730157439d94e454fedb1311020c949e789bd83c0852d54929aa17f015a0560c7ba43198922f47903f0b8813646155f8f9fbf5be5ff30d2f1b2fe5bf8928c0c0", + "rlp": "0xf9067df9023fa09955d9404999aad6924b8b3027c3bb512e7fc6937a0633911d6b5c95754d5166a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa086546aa3b9e32ee14ab2b3f9d3c7a9d452cda684727925dc648c59db87dfc285a0b14d20fd246eaa51d8c00b199372035c81b380bb72046ad190dfcb7407b32cb2a0b163973bee01b0161a477a81bc83fdcec4a51e6dff50a6e36a5f3e1eb7a56a16b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830938ee8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90436f90433800a8405f5e10080830186a0b903e1602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf31ca084c730df4501387fe7fa9362b320982b5a9c411d33087fe1842cfb537716a4dda06976e528f116b8308a1ce69b9a31183dc2799b72e1a4dd31df4588c183a456bbc0c0", "blockHeader": { - "parentHash": "0x2a9f538c697c5efcabc25907d21783fc2c3940db2781fec1c79b02b651efaeed", + "parentHash": "0x9955d9404999aad6924b8b3027c3bb512e7fc6937a0633911d6b5c95754d5166", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfa7aa137cc035c8113b77e8c7d6376f0deb56ae65d53bf6d0012001fc79c18e6", - "transactionsTrie": "0x2235fcd8c2478dc1b39dac42eeeaf28ece52c19e5cf048d3d984bb3ed6aded73", - "receiptTrie": "0xd7f4b880ec184b27b2d4870eea138ea1f3b8cadcae1aa18af457ba1d94fcfb4a", + "stateRoot": "0x86546aa3b9e32ee14ab2b3f9d3c7a9d452cda684727925dc648c59db87dfc285", + "transactionsTrie": "0xb14d20fd246eaa51d8c00b199372035c81b380bb72046ad190dfcb7407b32cb2", + "receiptTrie": "0xb163973bee01b0161a477a81bc83fdcec4a51e6dff50a6e36a5f3e1eb7a56a16", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x093852", + "gasUsed": "0x0938ee", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5187,33 +9380,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd7e5903776e18ee1a4e60927b4f312581efe221fcd794f61170a822277ad9f40" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2a9f538c697c5efcabc25907d21783fc2c3940db2781fec1c79b02b651efaeed", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xfa7aa137cc035c8113b77e8c7d6376f0deb56ae65d53bf6d0012001fc79c18e6", - "receiptsRoot": "0xd7f4b880ec184b27b2d4870eea138ea1f3b8cadcae1aa18af457ba1d94fcfb4a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x93852", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd7e5903776e18ee1a4e60927b4f312581efe221fcd794f61170a822277ad9f40", - "transactions": [ - "0xf90433800a8405f5e10080830186a0b903e1602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf31ca0cda17c730157439d94e454fedb1311020c949e789bd83c0852d54929aa17f015a0560c7ba43198922f47903f0b8813646155f8f9fbf5be5ff30d2f1b2fe5bf8928" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8259ec7a18bd53e208f5fbaf24d2396bb19249de28a403cd6539ccd801e40881" }, "transactions": [ { @@ -5224,10 +9391,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602bf3", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba631600855730000000000000000000000000000000000001000600052600060006020600060037364e2ebd6405af8cb348aec519084d3fff42ebba645f16009557364e2ebd6405af8cb348aec519084d3fff42ebba631600a55730000000000000000000000000000000000002000600052600060006020600060047364e2ebd6405af8cb348aec519084d3fff42ebba645f1600b557364e2ebd6405af8cb348aec519084d3fff42ebba631600c557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060057364e2ebd6405af8cb348aec519084d3fff42ebba645f1600d557364e2ebd6405af8cb348aec519084d3fff42ebba631600e55730000000000000000000000000000000000001000600052600060006020600060067364e2ebd6405af8cb348aec519084d3fff42ebba645f1600f557364e2ebd6405af8cb348aec519084d3fff42ebba631601055730000000000000000000000000000000000002000600052600060006020600060077364e2ebd6405af8cb348aec519084d3fff42ebba645f16011557364e2ebd6405af8cb348aec519084d3fff42ebba6316012557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060087364e2ebd6405af8cb348aec519084d3fff42ebba645f16013557364e2ebd6405af8cb348aec519084d3fff42ebba631601455730000000000000000000000000000000000001000600052600060006020600060097364e2ebd6405af8cb348aec519084d3fff42ebba645f16015557364e2ebd6405af8cb348aec519084d3fff42ebba6316016557364e2ebd6405af8cb348aec519084d3fff42ebba63b6017557364e2ebd6405af8cb348aec519084d3fff42ebba63f6018556001602cf3", "v": "0x1c", - "r": "0xcda17c730157439d94e454fedb1311020c949e789bd83c0852d54929aa17f015", - "s": "0x560c7ba43198922f47903f0b8813646155f8f9fbf5be5ff30d2f1b2fe5bf8928", + "r": "0x84c730df4501387fe7fa9362b320982b5a9c411d33087fe1842cfb537716a4dd", + "s": "0x6976e528f116b8308a1ce69b9a31183dc2799b72e1a4dd31df4588c183a456bb", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5235,39 +9402,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd76a5d66552aa2ee7b3df93e495909f20ba466cce1acf78e3a95f09db150b945", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2a9f538c697c5efcabc25907d21783fc2c3940db2781fec1c79b02b651efaeed" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d76a5d66552aa2ee7b3df93e495909f20ba466cce1acf78e3a95f09db150b945a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd7e5903776e18ee1a4e60927b4f312581efe221fcd794f61170a822277ad9f40", - "network": "Cancun", + "lastblockhash": "0x8259ec7a18bd53e208f5fbaf24d2396bb19249de28a403cd6539ccd801e40881", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -5287,13 +9423,19 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -5310,14 +9452,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186b2", @@ -5337,18 +9471,26 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1ba8f6", + "balance": "0x1baaca", "code": "0x", "storage": {} }, @@ -5358,8 +9500,8 @@ "code": "0x00", "storage": { "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -5370,40 +9512,65 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b2462c", + "balance": "0x056bc75e2d62b24014", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "025-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { + "053-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07908d83fddaa47c4fc6906bd2234d08afd60f9b018045fb52749eaee8c40c6e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7908d83fddaa47c4fc6906bd2234d08afd60f9b018045fb52749eaee8c40c6e7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8c0d0a9c588bc60d89d1efa1be3246a3c162bd2fa57560ba3e8d43b02e316231" + }, "blocks": [ { - "rlp": "0xf9067ff9023fa0bc81a463f2c3e65cbbf4e6b1915162112c02e7649176bea2f1fc5100d17c783ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069f890642d6ea754ff8a3399ea9bcb9439457f9325a0eeee5479be3fa06c9162a063ded936468408eae037773b2701daabb23ac3121d6b31a41d9d5f7d22b3e870a096950382d993ef421c7a8dccdf40f28f61e834b6252c320981021094b511d576b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008309429d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb91316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ca0cf7be05c41326a88b3b0147fe3e61ab2568e9e363bd9c26e0b0b9429f074a019a04544ff498c53e1fcf1e4ce121f633fcf67451ee0187a569e4c8aac1fd14f0ba5c0c0", + "rlp": "0xf9067ff9023fa08c0d0a9c588bc60d89d1efa1be3246a3c162bd2fa57560ba3e8d43b02e316231a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d3a88786bf3b65f97accaf53677039eb05ac8d5c2c866fe439994f37861e66ffa07857a4c302e49ff819f64538c91c909eabc399a86719f7a5c293564d6fd5b370a03df8bcd6e821861816837bd0e6aff53862d52ec8c670e8c3f5c6ce89f860edadb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830943398203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90438f90435800a8405f5e10080830186a0b903e3602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e52316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf31ca069c46025b776bac3d87e1a156b012d12b6f76608a7960e0553c54360d396d87ea05876dfaa6de4daa318895ecc78c17ff847138fac83ec95be727738a74f8619bac0c0", "blockHeader": { - "parentHash": "0xbc81a463f2c3e65cbbf4e6b1915162112c02e7649176bea2f1fc5100d17c783e", + "parentHash": "0x8c0d0a9c588bc60d89d1efa1be3246a3c162bd2fa57560ba3e8d43b02e316231", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x69f890642d6ea754ff8a3399ea9bcb9439457f9325a0eeee5479be3fa06c9162", - "transactionsTrie": "0x63ded936468408eae037773b2701daabb23ac3121d6b31a41d9d5f7d22b3e870", - "receiptTrie": "0x96950382d993ef421c7a8dccdf40f28f61e834b6252c320981021094b511d576", + "stateRoot": "0xd3a88786bf3b65f97accaf53677039eb05ac8d5c2c866fe439994f37861e66ff", + "transactionsTrie": "0x7857a4c302e49ff819f64538c91c909eabc399a86719f7a5c293564d6fd5b370", + "receiptTrie": "0x3df8bcd6e821861816837bd0e6aff53862d52ec8c670e8c3f5c6ce89f860edad", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x09429d", + "gasUsed": "0x094339", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5413,33 +9580,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7aada74d20600cb2bb65f5283fa1a33475de27b139dc7121911b6237ec5c12eb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbc81a463f2c3e65cbbf4e6b1915162112c02e7649176bea2f1fc5100d17c783e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x69f890642d6ea754ff8a3399ea9bcb9439457f9325a0eeee5479be3fa06c9162", - "receiptsRoot": "0x96950382d993ef421c7a8dccdf40f28f61e834b6252c320981021094b511d576", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x9429d", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7aada74d20600cb2bb65f5283fa1a33475de27b139dc7121911b6237ec5c12eb", - "transactions": [ - "0xf90435800a8405f5e10080830186a0b903e3602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb91316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf31ca0cf7be05c41326a88b3b0147fe3e61ab2568e9e363bd9c26e0b0b9429f074a019a04544ff498c53e1fcf1e4ce121f633fcf67451ee0187a569e4c8aac1fd14f0ba5" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf6a3adf2d60d8ce11f9e3c19b4bb615df0d2b68b83ec45853e77fb5aa6367b0c" }, "transactions": [ { @@ -5450,10 +9591,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb913160085573000000000000000000000000000000000000100060005260006000602060006003732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600955732cfd7823b7371b2c5eca6016618c7e7367edcb9131600a5573000000000000000000000000000000000000200060005260006000602060006004732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600b55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600d55732cfd7823b7371b2c5eca6016618c7e7367edcb9131600e5573000000000000000000000000000000000000100060005260006000602060006006732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600f55732cfd7823b7371b2c5eca6016618c7e7367edcb913160105573000000000000000000000000000000000000200060005260006000602060006007732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601155732cfd7823b7371b2c5eca6016618c7e7367edcb91316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601355732cfd7823b7371b2c5eca6016618c7e7367edcb913160145573000000000000000000000000000000000000100060005260006000602060006009732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1601555732cfd7823b7371b2c5eca6016618c7e7367edcb9131601655732cfd7823b7371b2c5eca6016618c7e7367edcb913b601755732cfd7823b7371b2c5eca6016618c7e7367edcb913f6018556001602bf3", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e523160085573000000000000000000000000000000000000100060005260006000602060006003733d97aab053f625db4e59b13f3f757231c8e53e5245f1600955733d97aab053f625db4e59b13f3f757231c8e53e5231600a5573000000000000000000000000000000000000200060005260006000602060006004733d97aab053f625db4e59b13f3f757231c8e53e5245f1600b55733d97aab053f625db4e59b13f3f757231c8e53e5231600c557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006005733d97aab053f625db4e59b13f3f757231c8e53e5245f1600d55733d97aab053f625db4e59b13f3f757231c8e53e5231600e5573000000000000000000000000000000000000100060005260006000602060006006733d97aab053f625db4e59b13f3f757231c8e53e5245f1600f55733d97aab053f625db4e59b13f3f757231c8e53e523160105573000000000000000000000000000000000000200060005260006000602060006007733d97aab053f625db4e59b13f3f757231c8e53e5245f1601155733d97aab053f625db4e59b13f3f757231c8e53e52316012557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006008733d97aab053f625db4e59b13f3f757231c8e53e5245f1601355733d97aab053f625db4e59b13f3f757231c8e53e523160145573000000000000000000000000000000000000100060005260006000602060006009733d97aab053f625db4e59b13f3f757231c8e53e5245f1601555733d97aab053f625db4e59b13f3f757231c8e53e5231601655733d97aab053f625db4e59b13f3f757231c8e53e523b601755733d97aab053f625db4e59b13f3f757231c8e53e523f6018556001602cf3", "v": "0x1c", - "r": "0xcf7be05c41326a88b3b0147fe3e61ab2568e9e363bd9c26e0b0b9429f074a019", - "s": "0x4544ff498c53e1fcf1e4ce121f633fcf67451ee0187a569e4c8aac1fd14f0ba5", + "r": "0x69c46025b776bac3d87e1a156b012d12b6f76608a7960e0553c54360d396d87e", + "s": "0x5876dfaa6de4daa318895ecc78c17ff847138fac83ec95be727738a74f8619ba", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5461,39 +9602,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x6f2f7779d4143e92dbbde592b336e07e48ff92c1602214cb4876f3d5f91e087c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbc81a463f2c3e65cbbf4e6b1915162112c02e7649176bea2f1fc5100d17c783e" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06f2f7779d4143e92dbbde592b336e07e48ff92c1602214cb4876f3d5f91e087ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7aada74d20600cb2bb65f5283fa1a33475de27b139dc7121911b6237ec5c12eb", - "network": "Cancun", + "lastblockhash": "0xf6a3adf2d60d8ce11f9e3c19b4bb615df0d2b68b83ec45853e77fb5aa6367b0c", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -5513,16 +9623,22 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, - "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91": { + "0x3d97aab053f625db4e59b13f3f757231c8e53e52": { "nonce": "0x00", "balance": "0x0186a0", "code": "0x", @@ -5544,14 +9660,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186b2", @@ -5571,18 +9679,26 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc7d7", + "balance": "0x1bc9ab", "code": "0x", "storage": {} }, @@ -5591,9 +9707,9 @@ "balance": "0x018673", "code": "0x00", "storage": { - "0x00": "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", @@ -5604,8 +9720,8 @@ "0x11": "0x01", "0x13": "0x01", "0x15": "0x01", - "0x17": "0x20", - "0x18": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x17": "0x21", + "0x18": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -5618,34 +9734,59 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b1df3e", + "balance": "0x056bc75e2d62b1d926", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "026-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { + "054-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a072f3f0f412f6ca3ffed27e278c119c31c4cee215b6a0b0096c86a40101fba2dda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x72f3f0f412f6ca3ffed27e278c119c31c4cee215b6a0b0096c86a40101fba2dd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9955d9404999aad6924b8b3027c3bb512e7fc6937a0633911d6b5c95754d5166" + }, "blocks": [ { - "rlp": "0xf9042af9023fa02a9f538c697c5efcabc25907d21783fc2c3940db2781fec1c79b02b651efaeeda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09ccd4a89bfdbdbf95193342eb20cb0f603541f313344a297f8bd9009b8c57fe0a0c256984651bc30f7f1a4e58914018c976176820e55b96553074f585742c24adba08a3229f1d58f4d9df0f927439cf724aea65664ac3c9bafb8c12fd8f09f8b1a66b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008305328a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f901e3f901e0800a8405f5e10080830186a0b9018e602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602bf31ca0c22e3364b85d8adc72dd65000974ba9e22b8df683ddb2f87fea9af3c620422b3a01cf01454f2314b99c5b7200564beac9433a972ce8fe79632a4e68f2e48a4e66cc0c0", + "rlp": "0xf9042af9023fa09955d9404999aad6924b8b3027c3bb512e7fc6937a0633911d6b5c95754d5166a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d76ed910f897090107db730c4c8dee4c24db6b353d7f491601bc4d444024aecaa0226b315a1c28d2c1a85ef4c8903f13f9694922fad907ba208a0bd08099dfcc6ea0bf1fe2438dfbe85e9085d1e07fa7b76e0ed75c569a7e206457537dcaadc0d3f3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830533498203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f901e3f901e0800a8405f5e10080830186a0b9018e602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602cf31ba0098f781fe95f193deab17826c3c88bb3ba31b9a17a8d1dee48c5ca492e38ee58a054247e531489e4a3a0a1dcc2d1a0f88f3e14b6b62a65821a3e36ae0c39bbb4c8c0c0", "blockHeader": { - "parentHash": "0x2a9f538c697c5efcabc25907d21783fc2c3940db2781fec1c79b02b651efaeed", + "parentHash": "0x9955d9404999aad6924b8b3027c3bb512e7fc6937a0633911d6b5c95754d5166", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ccd4a89bfdbdbf95193342eb20cb0f603541f313344a297f8bd9009b8c57fe0", - "transactionsTrie": "0xc256984651bc30f7f1a4e58914018c976176820e55b96553074f585742c24adb", - "receiptTrie": "0x8a3229f1d58f4d9df0f927439cf724aea65664ac3c9bafb8c12fd8f09f8b1a66", + "stateRoot": "0xd76ed910f897090107db730c4c8dee4c24db6b353d7f491601bc4d444024aeca", + "transactionsTrie": "0x226b315a1c28d2c1a85ef4c8903f13f9694922fad907ba208a0bd08099dfcc6e", + "receiptTrie": "0xbf1fe2438dfbe85e9085d1e07fa7b76e0ed75c569a7e206457537dcaadc0d3f3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x05328a", + "gasUsed": "0x053349", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5655,33 +9796,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x44cda023716b1c86b40945349f20a20eb93beb06f7da84916a1f8fa5ecabae81" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2a9f538c697c5efcabc25907d21783fc2c3940db2781fec1c79b02b651efaeed", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9ccd4a89bfdbdbf95193342eb20cb0f603541f313344a297f8bd9009b8c57fe0", - "receiptsRoot": "0x8a3229f1d58f4d9df0f927439cf724aea65664ac3c9bafb8c12fd8f09f8b1a66", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x5328a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x44cda023716b1c86b40945349f20a20eb93beb06f7da84916a1f8fa5ecabae81", - "transactions": [ - "0xf901e0800a8405f5e10080830186a0b9018e602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602bf31ca0c22e3364b85d8adc72dd65000974ba9e22b8df683ddb2f87fea9af3c620422b3a01cf01454f2314b99c5b7200564beac9433a972ce8fe79632a4e68f2e48a4e66c" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcd8b30ed02c2613ff0a6986cab7f37cf895198842466254bb42e64f433479d20" }, "transactions": [ { @@ -5692,10 +9807,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c602b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602bf3", - "v": "0x1c", - "r": "0xc22e3364b85d8adc72dd65000974ba9e22b8df683ddb2f87fea9af3c620422b3", - "s": "0x1cf01454f2314b99c5b7200564beac9433a972ce8fe79632a4e68f2e48a4e66c", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255730000000000000000000000000000000000001000600052600060006020600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba631600455730000000000000000000000000000000000002000600052600060006020600060017364e2ebd6405af8cb348aec519084d3fff42ebba645f16005557364e2ebd6405af8cb348aec519084d3fff42ebba6316006557364e2ebd6405af8cb348aec519084d3fff42ebba6600052600060006020600060027364e2ebd6405af8cb348aec519084d3fff42ebba645f16007557364e2ebd6405af8cb348aec519084d3fff42ebba6316008557364e2ebd6405af8cb348aec519084d3fff42ebba63b6009557364e2ebd6405af8cb348aec519084d3fff42ebba63f600a556001602cf3", + "v": "0x1b", + "r": "0x098f781fe95f193deab17826c3c88bb3ba31b9a17a8d1dee48c5ca492e38ee58", + "s": "0x54247e531489e4a3a0a1dcc2d1a0f88f3e14b6b62a65821a3e36ae0c39bbb4c8", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5703,39 +9818,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xd76a5d66552aa2ee7b3df93e495909f20ba466cce1acf78e3a95f09db150b945", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2a9f538c697c5efcabc25907d21783fc2c3940db2781fec1c79b02b651efaeed" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d76a5d66552aa2ee7b3df93e495909f20ba466cce1acf78e3a95f09db150b945a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x44cda023716b1c86b40945349f20a20eb93beb06f7da84916a1f8fa5ecabae81", - "network": "Cancun", + "lastblockhash": "0xcd8b30ed02c2613ff0a6986cab7f37cf895198842466254bb42e64f433479d20", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -5755,13 +9839,19 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -5778,14 +9868,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186a0", @@ -5805,18 +9887,26 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x0f979e", + "balance": "0x0f99db", "code": "0x", "storage": {} }, @@ -5826,45 +9916,70 @@ "code": "0x00", "storage": { "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", - "0x09": "0x20", - "0x0a": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x09": "0x21", + "0x0a": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62da7ffc", + "balance": "0x056bc75e2d62da7886", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "027-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { + "055-fork=Cancun-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07908d83fddaa47c4fc6906bd2234d08afd60f9b018045fb52749eaee8c40c6e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7908d83fddaa47c4fc6906bd2234d08afd60f9b018045fb52749eaee8c40c6e7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8c0d0a9c588bc60d89d1efa1be3246a3c162bd2fa57560ba3e8d43b02e316231" + }, "blocks": [ { - "rlp": "0xf9042cf9023fa0bc81a463f2c3e65cbbf4e6b1915162112c02e7649176bea2f1fc5100d17c783ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01e642907a5b3f4dab16c12aff91dd8b1ed0e523eb74af4283e3733d6756ac955a0a5ceb3180d1eadfd0596b2bfb70bde33a509bcd334a715556b8f735cc9cc20c6a030ca6edeb40d896438a01c9b82c90f9ce68c574c66081cf9321725dd57eb2070b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083053cd58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f901e5f901e2800a8405f5e10080830186a0b90190602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb9131600855732cfd7823b7371b2c5eca6016618c7e7367edcb913b600955732cfd7823b7371b2c5eca6016618c7e7367edcb913f600a556001602bf31ba08d34ef99c48af3980dfbaa0d68b0f14ca7964bee15be0e3a4444ed0405b24bd3a01523fe248d7db05389beb9cdfc291a0f7e2a8a78ac802492d0f47cdc1c00d25bc0c0", + "rlp": "0xf9042cf9023fa08c0d0a9c588bc60d89d1efa1be3246a3c162bd2fa57560ba3e8d43b02e316231a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f7d9d72ff465ff23686aed81bfe22b453debf1e61e4c45627e589eaf6ceb1896a01f9a61b7d00e73c9b18acf29aed59d3d0207ce85de5b46f81080e94e91868ebfa077b8cae3013a7fcf8d72d8fd57078e2771a78bbf0d0e5f9e3505f50a38f026d9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083053d948203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f901e5f901e2800a8405f5e10080830186a0b90190602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e5231600855733d97aab053f625db4e59b13f3f757231c8e53e523b600955733d97aab053f625db4e59b13f3f757231c8e53e523f600a556001602cf31ba01a36ab5f7fb7d82d2f0560ac72a89a4f01a95d2e0c2e388797a302043e640e4ba03d7f01a1b21692ad8f2a5bb6767b5c33094b01ec2e9993fa207aa36c650b7b8ac0c0", "blockHeader": { - "parentHash": "0xbc81a463f2c3e65cbbf4e6b1915162112c02e7649176bea2f1fc5100d17c783e", + "parentHash": "0x8c0d0a9c588bc60d89d1efa1be3246a3c162bd2fa57560ba3e8d43b02e316231", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1e642907a5b3f4dab16c12aff91dd8b1ed0e523eb74af4283e3733d6756ac955", - "transactionsTrie": "0xa5ceb3180d1eadfd0596b2bfb70bde33a509bcd334a715556b8f735cc9cc20c6", - "receiptTrie": "0x30ca6edeb40d896438a01c9b82c90f9ce68c574c66081cf9321725dd57eb2070", + "stateRoot": "0xf7d9d72ff465ff23686aed81bfe22b453debf1e61e4c45627e589eaf6ceb1896", + "transactionsTrie": "0x1f9a61b7d00e73c9b18acf29aed59d3d0207ce85de5b46f81080e94e91868ebf", + "receiptTrie": "0x77b8cae3013a7fcf8d72d8fd57078e2771a78bbf0d0e5f9e3505f50a38f026d9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x053cd5", + "gasUsed": "0x053d94", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -5874,33 +9989,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2319b8bad369fc0358505da743fc996604e3e48708d11513104486a18cb7c913" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbc81a463f2c3e65cbbf4e6b1915162112c02e7649176bea2f1fc5100d17c783e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1e642907a5b3f4dab16c12aff91dd8b1ed0e523eb74af4283e3733d6756ac955", - "receiptsRoot": "0x30ca6edeb40d896438a01c9b82c90f9ce68c574c66081cf9321725dd57eb2070", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x53cd5", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2319b8bad369fc0358505da743fc996604e3e48708d11513104486a18cb7c913", - "transactions": [ - "0xf901e2800a8405f5e10080830186a0b90190602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb9131600855732cfd7823b7371b2c5eca6016618c7e7367edcb913b600955732cfd7823b7371b2c5eca6016618c7e7367edcb913f600a556001602bf31ba08d34ef99c48af3980dfbaa0d68b0f14ca7964bee15be0e3a4444ed0405b24bd3a01523fe248d7db05389beb9cdfc291a0f7e2a8a78ac802492d0f47cdc1c00d25b" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x10e8fcf6e1882fe39193b28d6da402a88e9c8fe2652b9af0f48ab5949e0d1b4e" }, "transactions": [ { @@ -5911,10 +10000,10 @@ "gasLimit": "0x05f5e100", "to": "", "value": "0x0186a0", - "data": "0x602b6000600073000000000000000000000000000000000000abcd3c6000602b60006000f5600055732cfd7823b7371b2c5eca6016618c7e7367edcb913b600155732cfd7823b7371b2c5eca6016618c7e7367edcb913f60025573000000000000000000000000000000000000100060005260006000602060006000732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600355732cfd7823b7371b2c5eca6016618c7e7367edcb913160045573000000000000000000000000000000000000200060005260006000602060006001732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600555732cfd7823b7371b2c5eca6016618c7e7367edcb91316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002732cfd7823b7371b2c5eca6016618c7e7367edcb9145f1600755732cfd7823b7371b2c5eca6016618c7e7367edcb9131600855732cfd7823b7371b2c5eca6016618c7e7367edcb913b600955732cfd7823b7371b2c5eca6016618c7e7367edcb913f600a556001602bf3", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c6000602c60006000f5600055733d97aab053f625db4e59b13f3f757231c8e53e523b600155733d97aab053f625db4e59b13f3f757231c8e53e523f60025573000000000000000000000000000000000000100060005260006000602060006000733d97aab053f625db4e59b13f3f757231c8e53e5245f1600355733d97aab053f625db4e59b13f3f757231c8e53e523160045573000000000000000000000000000000000000200060005260006000602060006001733d97aab053f625db4e59b13f3f757231c8e53e5245f1600555733d97aab053f625db4e59b13f3f757231c8e53e52316006557364e2ebd6405af8cb348aec519084d3fff42ebba660005260006000602060006002733d97aab053f625db4e59b13f3f757231c8e53e5245f1600755733d97aab053f625db4e59b13f3f757231c8e53e5231600855733d97aab053f625db4e59b13f3f757231c8e53e523b600955733d97aab053f625db4e59b13f3f757231c8e53e523f600a556001602cf3", "v": "0x1b", - "r": "0x8d34ef99c48af3980dfbaa0d68b0f14ca7964bee15be0e3a4444ed0405b24bd3", - "s": "0x1523fe248d7db05389beb9cdfc291a0f7e2a8a78ac802492d0f47cdc1c00d25b", + "r": "0x1a36ab5f7fb7d82d2f0560ac72a89a4f01a95d2e0c2e388797a302043e640e4b", + "s": "0x3d7f01a1b21692ad8f2a5bb6767b5c33094b01ec2e9993fa207aa36c650b7b8a", "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], @@ -5922,39 +10011,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x6f2f7779d4143e92dbbde592b336e07e48ff92c1602214cb4876f3d5f91e087c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbc81a463f2c3e65cbbf4e6b1915162112c02e7649176bea2f1fc5100d17c783e" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06f2f7779d4143e92dbbde592b336e07e48ff92c1602214cb4876f3d5f91e087ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2319b8bad369fc0358505da743fc996604e3e48708d11513104486a18cb7c913", - "network": "Cancun", + "lastblockhash": "0x10e8fcf6e1882fe39193b28d6da402a88e9c8fe2652b9af0f48ab5949e0d1b4e", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -5974,16 +10032,22 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, - "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91": { + "0x3d97aab053f625db4e59b13f3f757231c8e53e52": { "nonce": "0x00", "balance": "0x0186a0", "code": "0x", @@ -6005,14 +10069,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186a0", @@ -6032,18 +10088,26 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x0fb67f", + "balance": "0x0fb8bc", "code": "0x", "storage": {} }, @@ -6052,14 +10116,14 @@ "balance": "0x01869d", "code": "0x00", "storage": { - "0x00": "0x2cfd7823b7371b2c5eca6016618c7e7367edcb91", - "0x01": "0x20", - "0x02": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96", + "0x00": "0x3d97aab053f625db4e59b13f3f757231c8e53e52", + "0x01": "0x21", + "0x02": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711", "0x03": "0x01", "0x05": "0x01", "0x07": "0x01", - "0x09": "0x20", - "0x0a": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x09": "0x21", + "0x0a": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { @@ -6072,7 +10136,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62da190e", + "balance": "0x056bc75e2d62da1198", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json index d1a2620302b..af8e531bc50 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_new_contract_to_pre_existing_contract.json @@ -1,18 +1,651 @@ { - "000-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-delegatecall": { + "000-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e7deaf06e3c6782f9646f41e86ef2de640b4ec36cc69a4e8b75d9b0d57e5f11a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9e7deaf06e3c6782f9646f41e86ef2de640b4ec36cc69a4e8b75d9b0d57e5f11", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa27fa8bd59d8f7e41fb4c0c4271e944bff7762c213a032b3e4394a6226651fe6" + }, + "blocks": [ + { + "rlp": "0xf90344f9021ca0a27fa8bd59d8f7e41fb4c0c4271e944bff7762c213a032b3e4394a6226651fe6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d7e2aadb4b892898a1a8a910b536cf438c0dec1635fee08d5e9358608cb89dda0b973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63a08886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a5b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90120f9011d800a8405f5e10080830186a0b8cc602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af31ca042acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcca01484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10cac0c0", + "blockHeader": { + "parentHash": "0xa27fa8bd59d8f7e41fb4c0c4271e944bff7762c213a032b3e4394a6226651fe6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d7e2aadb4b892898a1a8a910b536cf438c0dec1635fee08d5e9358608cb89dd", + "transactionsTrie": "0xb973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63", + "receiptTrie": "0x8886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9e", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x040a5b", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x342066ea16fd87cbd776b90503645f2f5fc917951bcb46eb46b11672733aa8e6" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af3", + "v": "0x1c", + "r": "0x42acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcc", + "s": "0x1484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10ca", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x342066ea16fd87cbd776b90503645f2f5fc917951bcb46eb46b11672733aa8e6", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001f600081600b8239f360006000600060007311111111111111111111111111111111111111115af4", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001f600081600b8239f360006000600060007311111111111111111111111111111111111111115af4", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0c1f11", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x1f", + "0x02": "0xdaa979610e8277b0d66f686ba1120ef37f4aaa536feb6b45e6dcdd00724e7322", + "0x03": "0x01", + "0x05": "0x1f", + "0x06": "0xdaa979610e8277b0d66f686ba1120ef37f4aaa536feb6b45e6dcdd00724e7322" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e611d2", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-callcode": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a025381b996ce492573660bfe786c0350759dbe8cf4037b119eaca72f6c820e785a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x25381b996ce492573660bfe786c0350759dbe8cf4037b119eaca72f6c820e785", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xeb2f7af2a14a678a01af4d01e7936cf78bfa8156b1cf5152256169b1a537d430" + }, + "blocks": [ + { + "rlp": "0xf90344f9021ca0eb2f7af2a14a678a01af4d01e7936cf78bfa8156b1cf5152256169b1a537d430a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0200dcc1a6a0a9a2f799a0f8841c6a18b0068b289d35d30c7c2ecccc4bff75bcea02de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6ea08e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040bf48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90120f9011d800a8405f5e10080830186a0b8cc602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf31ca045e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3a033fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845ac0c0", + "blockHeader": { + "parentHash": "0xeb2f7af2a14a678a01af4d01e7936cf78bfa8156b1cf5152256169b1a537d430", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x200dcc1a6a0a9a2f799a0f8841c6a18b0068b289d35d30c7c2ecccc4bff75bce", + "transactionsTrie": "0x2de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6e", + "receiptTrie": "0x8e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x040bf4", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x559bd97b1f89986a73eeb7f66e2c61d924ac2ca9d4666f9c42e008239609bf82" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf3", + "v": "0x1c", + "r": "0x45e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3", + "s": "0x33fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x559bd97b1f89986a73eeb7f66e2c61d924ac2ca9d4666f9c42e008239609bf82", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f3600060006000600060007311111111111111111111111111111111111111115af2", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f3600060006000600060007311111111111111111111111111111111111111115af2", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0c23dc", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xa1b351c0722fd5c92be341f3111f0ccd52bef2d443c56dd04b0b5193174bf5b0", + "0x03": "0x01", + "0x05": "0x21", + "0x06": "0xa1b351c0722fd5c92be341f3111f0ccd52bef2d443c56dd04b0b5193174bf5b0" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e601d8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-delegatecall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a093c85ce7a2101cc779115df399027af355c4b5211aff02136e7e256ec7bf85b1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x93c85ce7a2101cc779115df399027af355c4b5211aff02136e7e256ec7bf85b1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x6d0ded6c8c505181cbc30c3ae8ac55b64885ad9c9774a6ead739ca449096651a" + }, + "blocks": [ + { + "rlp": "0xf90344f9021ca06d0ded6c8c505181cbc30c3ae8ac55b64885ad9c9774a6ead739ca449096651aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa011e146d2795c223cdf8da8ab50fd1145019224a0b6928b8e63c356470ba5c9d1a0b973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63a08886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a5b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90120f9011d800a8405f5e10080830186a0b8cc602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af31ca042acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcca01484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10cac0c0", + "blockHeader": { + "parentHash": "0x6d0ded6c8c505181cbc30c3ae8ac55b64885ad9c9774a6ead739ca449096651a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x11e146d2795c223cdf8da8ab50fd1145019224a0b6928b8e63c356470ba5c9d1", + "transactionsTrie": "0xb973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63", + "receiptTrie": "0x8886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9e", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x040a5b", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x80a8016ab8be1f9b435df8073f80b4a15049b62c9f09dd2797dad6bbbee2c781" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af3", + "v": "0x1c", + "r": "0x42acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcc", + "s": "0x1484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10ca", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x80a8016ab8be1f9b435df8073f80b4a15049b62c9f09dd2797dad6bbbee2c781", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001f600081600b8239f360006000600060007311111111111111111111111111111111111111115af4", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001f600081600b8239f360006000600060007311111111111111111111111111111111111111115af4", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0c1f11", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x1f", + "0x02": "0xdaa979610e8277b0d66f686ba1120ef37f4aaa536feb6b45e6dcdd00724e7322", + "0x03": "0x01", + "0x05": "0x1f", + "0x06": "0xdaa979610e8277b0d66f686ba1120ef37f4aaa536feb6b45e6dcdd00724e7322" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e611d2", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Shanghai-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-callcode": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02c1617885da4b148ad9f3ec562dae1f95bb7b0c2d9b92edc471d9f0886206774a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2c1617885da4b148ad9f3ec562dae1f95bb7b0c2d9b92edc471d9f0886206774", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x080954447581c0e635185be7dd8e492998884681f4d2ffeac065e54b0fb22258" + }, + "blocks": [ + { + "rlp": "0xf90344f9021ca0080954447581c0e635185be7dd8e492998884681f4d2ffeac065e54b0fb22258a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ca62b6a664eb977785a5afaa5088f0625922fb5445bac70ee3be905bfeec034fa02de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6ea08e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040bf48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90120f9011d800a8405f5e10080830186a0b8cc602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf31ca045e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3a033fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845ac0c0", + "blockHeader": { + "parentHash": "0x080954447581c0e635185be7dd8e492998884681f4d2ffeac065e54b0fb22258", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xca62b6a664eb977785a5afaa5088f0625922fb5445bac70ee3be905bfeec034f", + "transactionsTrie": "0x2de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6e", + "receiptTrie": "0x8e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x040bf4", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x49aeca2a4978a8913dad6a9f3185b3919aca2f05b6f4c68611c249b07c5ce770" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf3", + "v": "0x1c", + "r": "0x45e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3", + "s": "0x33fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x49aeca2a4978a8913dad6a9f3185b3919aca2f05b6f4c68611c249b07c5ce770", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f3600060006000600060007311111111111111111111111111111111111111115af2", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f3600060006000600060007311111111111111111111111111111111111111115af2", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0c23dc", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0xa1b351c0722fd5c92be341f3111f0ccd52bef2d443c56dd04b0b5193174bf5b0", + "0x03": "0x01", + "0x05": "0x21", + "0x06": "0xa1b351c0722fd5c92be341f3111f0ccd52bef2d443c56dd04b0b5193174bf5b0" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e601d8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-delegatecall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a022ccc9f02a8e170bbb66a837605e06a9b445094f48d7e22850c7fb1bb54a83fba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x22ccc9f02a8e170bbb66a837605e06a9b445094f48d7e22850c7fb1bb54a83fb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3e1030e40f2fa5c5633940a4403f8465051dd453b30d1d34e17de509863a2e50" + }, "blocks": [ { - "rlp": "0xf90367f9023fa0dbdbd2a75221889d0cefcdf39a4c251020d5ed9fd28fc13c8ea36a15be5a6486a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08cabb03221376357a5e53287af612f86b9b8a04e8c0a75bd09fef8a64af5f7f4a0b973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63a08886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a5b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af31ca042acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcca01484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10cac0c0", + "rlp": "0xf90367f9023fa03e1030e40f2fa5c5633940a4403f8465051dd453b30d1d34e17de509863a2e50a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c6664604fb5fa9e5e07eb96fec1f68df06e82b80828612815fdcd321fb226a8ea0b973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63a08886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a5b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af31ca042acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcca01484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10cac0c0", "blockHeader": { - "parentHash": "0xdbdbd2a75221889d0cefcdf39a4c251020d5ed9fd28fc13c8ea36a15be5a6486", + "parentHash": "0x3e1030e40f2fa5c5633940a4403f8465051dd453b30d1d34e17de509863a2e50", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8cabb03221376357a5e53287af612f86b9b8a04e8c0a75bd09fef8a64af5f7f4", + "stateRoot": "0xc6664604fb5fa9e5e07eb96fec1f68df06e82b80828612815fdcd321fb226a8e", "transactionsTrie": "0xb973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63", "receiptTrie": "0x8886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +662,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x75868a24fc063a43f25486dd05f47d5dc04f88451877c5847e11b1704a2558fd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xdbdbd2a75221889d0cefcdf39a4c251020d5ed9fd28fc13c8ea36a15be5a6486", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x8cabb03221376357a5e53287af612f86b9b8a04e8c0a75bd09fef8a64af5f7f4", - "receiptsRoot": "0x8886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9e", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40a5b", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x75868a24fc063a43f25486dd05f47d5dc04f88451877c5847e11b1704a2558fd", - "transactions": [ - "0xf9011d800a8405f5e10080830186a0b8cc602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af31ca042acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcca01484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10ca" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xaa0f551f6dbcf82fad1c6150cf57148b7ab507ab3c22deca01255748a0f8e39f" }, "transactions": [ { @@ -77,39 +684,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x6587ab81a1f44c1b03aac457e29b4793484bb0c8c313634f3f5a1005e9eb28aa", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xdbdbd2a75221889d0cefcdf39a4c251020d5ed9fd28fc13c8ea36a15be5a6486" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06587ab81a1f44c1b03aac457e29b4793484bb0c8c313634f3f5a1005e9eb28aaa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x75868a24fc063a43f25486dd05f47d5dc04f88451877c5847e11b1704a2558fd", - "network": "Cancun", + "lastblockhash": "0xaa0f551f6dbcf82fad1c6150cf57148b7ab507ab3c22deca01255748a0f8e39f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -124,6 +700,12 @@ "code": "0x61001f600081600b8239f360006000600060007311111111111111111111111111111111111111115af4", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -138,14 +720,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -160,6 +734,14 @@ "code": "0x61001f600081600b8239f360006000600060007311111111111111111111111111111111111111115af4", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -194,20 +776,45 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-callcode": { + "005-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=0-call_times=1-callcode": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0376e28e2d1a78ce6972e9cc61afe8547e42b94a57b7b19c775284389ffb558e1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x376e28e2d1a78ce6972e9cc61afe8547e42b94a57b7b19c775284389ffb558e1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6ac18e105522b8f180aa3547311e9b0111fa32080346f6c170164f620dc8c6e5" + }, "blocks": [ { - "rlp": "0xf90367f9023fa0e72d329eb2285c7d62dca4fc368a820894e3390aee6cd9f958544ceb8b2467eea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00d21a018f683f765be9f768f43b493b678eab7f017a4e2b0ea909aba38acc1aba02de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6ea08e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040bf48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf31ca045e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3a033fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845ac0c0", + "rlp": "0xf90367f9023fa06ac18e105522b8f180aa3547311e9b0111fa32080346f6c170164f620dc8c6e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03f75fc53bb2ab8ea9fae7bb58d5415f11e8eb235d2090fa56f24ab9d46724a9da02de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6ea08e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040bf48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf31ca045e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3a033fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845ac0c0", "blockHeader": { - "parentHash": "0xe72d329eb2285c7d62dca4fc368a820894e3390aee6cd9f958544ceb8b2467ee", + "parentHash": "0x6ac18e105522b8f180aa3547311e9b0111fa32080346f6c170164f620dc8c6e5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0d21a018f683f765be9f768f43b493b678eab7f017a4e2b0ea909aba38acc1ab", + "stateRoot": "0x3f75fc53bb2ab8ea9fae7bb58d5415f11e8eb235d2090fa56f24ab9d46724a9d", "transactionsTrie": "0x2de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6e", "receiptTrie": "0x8e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -224,33 +831,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc84b19298079f590b214588441cef5bd821cd7482cbb4ce1bcaad61a4f3191f5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe72d329eb2285c7d62dca4fc368a820894e3390aee6cd9f958544ceb8b2467ee", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x0d21a018f683f765be9f768f43b493b678eab7f017a4e2b0ea909aba38acc1ab", - "receiptsRoot": "0x8e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40bf4", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc84b19298079f590b214588441cef5bd821cd7482cbb4ce1bcaad61a4f3191f5", - "transactions": [ - "0xf9011d800a8405f5e10080830186a0b8cc602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf31ca045e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3a033fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x64cb924bad0d7b081e1cd5bb2af63eaca80dae2c86d9f6f4acc4c53c05ac1982" }, "transactions": [ { @@ -272,39 +853,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x61e0d546c138a6040b1768dba4e0803890b96387b38bdcac5ec5c5e0b5f72e8b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe72d329eb2285c7d62dca4fc368a820894e3390aee6cd9f958544ceb8b2467ee" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a061e0d546c138a6040b1768dba4e0803890b96387b38bdcac5ec5c5e0b5f72e8ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc84b19298079f590b214588441cef5bd821cd7482cbb4ce1bcaad61a4f3191f5", - "network": "Cancun", + "lastblockhash": "0x64cb924bad0d7b081e1cd5bb2af63eaca80dae2c86d9f6f4acc4c53c05ac1982", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -319,6 +869,12 @@ "code": "0x610021600081600b8239f3600060006000600060007311111111111111111111111111111111111111115af2", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -333,14 +889,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -355,6 +903,14 @@ "code": "0x610021600081600b8239f3600060006000600060007311111111111111111111111111111111111111115af2", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -389,20 +945,45 @@ }, "sealEngine": "NoProof" }, - "002-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-delegatecall": { + "006-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02ea90026262f50a6be3c54ccabb176e62d49986348413231eac0cef4a606f1b2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2ea90026262f50a6be3c54ccabb176e62d49986348413231eac0cef4a606f1b2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1ced97c6645fdcc8392b47c4b60af7006d136f59ad2a9c0f96b23153ee7a10c4" + }, "blocks": [ { - "rlp": "0xf90367f9023fa0bdbbb70638414e4a7dc251e3575d498c089994a4a599ccb665536d83146d2d64a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa059269c43decf45369e1cea765e934715fb200419ef8f9d9d5c1630f6c48a9140a0b973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63a08886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a5b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af31ca042acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcca01484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10cac0c0", + "rlp": "0xf90367f9023fa01ced97c6645fdcc8392b47c4b60af7006d136f59ad2a9c0f96b23153ee7a10c4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa061410c59536d2cc12f121d67af5e01255fde942bdefcaa5e1856be102cc807aea0b973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63a08886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040a5b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af31ca042acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcca01484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10cac0c0", "blockHeader": { - "parentHash": "0xbdbbb70638414e4a7dc251e3575d498c089994a4a599ccb665536d83146d2d64", + "parentHash": "0x1ced97c6645fdcc8392b47c4b60af7006d136f59ad2a9c0f96b23153ee7a10c4", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x59269c43decf45369e1cea765e934715fb200419ef8f9d9d5c1630f6c48a9140", + "stateRoot": "0x61410c59536d2cc12f121d67af5e01255fde942bdefcaa5e1856be102cc807ae", "transactionsTrie": "0xb973d495e8c89e54c14be3ab4b5aec8d771b2209b1b06404e8e48953cb5ffd63", "receiptTrie": "0x8886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -419,33 +1000,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xfc009afbfd626588a2496b4a1fa27030e8a168416394577e7663532834e4a968" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xbdbbb70638414e4a7dc251e3575d498c089994a4a599ccb665536d83146d2d64", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x59269c43decf45369e1cea765e934715fb200419ef8f9d9d5c1630f6c48a9140", - "receiptsRoot": "0x8886d7b74be0898917d4692681ff34f03415bd10388ca79f075f4e13d1082e9e", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40a5b", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xfc009afbfd626588a2496b4a1fa27030e8a168416394577e7663532834e4a968", - "transactions": [ - "0xf9011d800a8405f5e10080830186a0b8cc602a6000600073000000000000000000000000000000000000abcd3c602a60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602af31ca042acfcbda723adcc6796dc6bd41402325f3767bdffd8559f4944ebcc8afc8fcca01484e8b06ac6b76483268adc2bfbffa5f04c55ca67e69310b1dd22c0a4ef10ca" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x5603491b73faabc81893b58e1d35c402c54a2d6c506fbc45304b539d540c69a9" }, "transactions": [ { @@ -467,39 +1022,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xbbb57eb0412ab16dc5cf077ca65fe2f9d6caf501d5e6eb5e95388afb81571d4b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xbdbbb70638414e4a7dc251e3575d498c089994a4a599ccb665536d83146d2d64" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bbb57eb0412ab16dc5cf077ca65fe2f9d6caf501d5e6eb5e95388afb81571d4ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xfc009afbfd626588a2496b4a1fa27030e8a168416394577e7663532834e4a968", - "network": "Cancun", + "lastblockhash": "0x5603491b73faabc81893b58e1d35c402c54a2d6c506fbc45304b539d540c69a9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -514,6 +1038,12 @@ "code": "0x61001f600081600b8239f360006000600060007311111111111111111111111111111111111111115af4", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -534,14 +1064,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x01", @@ -556,6 +1078,14 @@ "code": "0x61001f600081600b8239f360006000600060007311111111111111111111111111111111111111115af4", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -590,20 +1120,45 @@ }, "sealEngine": "NoProof" }, - "003-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-callcode": { + "007-fork=Cancun-create_opcode=CREATE-selfdestruct_contract_initial_balance=1-call_times=1-callcode": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b89b994a56c3c8d8db68ede7ecf8439ee153b0b6427bfc8a6991eb7cf4728de4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb89b994a56c3c8d8db68ede7ecf8439ee153b0b6427bfc8a6991eb7cf4728de4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x88d34fbdc9a43376f90f23281acc5d005cf4ea0b490e4be71bc963216841678b" + }, "blocks": [ { - "rlp": "0xf90367f9023fa0c2a1597628cac797d21b86c7ac63bf4d41710c2120a18e40f86a2604eac075b2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c593a6b98b01c7441cb1d8a3667f93015fe8e3a2adbf80f8db0aa59cfd390b10a02de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6ea08e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040bf48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf31ca045e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3a033fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845ac0c0", + "rlp": "0xf90367f9023fa088d34fbdc9a43376f90f23281acc5d005cf4ea0b490e4be71bc963216841678ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b9edeaefd36e415889a295d14ec57b5296cf72fae7fa24e6f1ae5f68dd285f31a02de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6ea08e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083040bf48203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf31ca045e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3a033fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845ac0c0", "blockHeader": { - "parentHash": "0xc2a1597628cac797d21b86c7ac63bf4d41710c2120a18e40f86a2604eac075b2", + "parentHash": "0x88d34fbdc9a43376f90f23281acc5d005cf4ea0b490e4be71bc963216841678b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc593a6b98b01c7441cb1d8a3667f93015fe8e3a2adbf80f8db0aa59cfd390b10", + "stateRoot": "0xb9edeaefd36e415889a295d14ec57b5296cf72fae7fa24e6f1ae5f68dd285f31", "transactionsTrie": "0x2de748848eacb184786cd4aed390f2d1a0152f349763a881df484610ad079f6e", "receiptTrie": "0x8e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -620,33 +1175,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0fa1fa4dab04fb013681e05295bea7c4a1d5aeeceb36469a50df9d1ac04d885b" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc2a1597628cac797d21b86c7ac63bf4d41710c2120a18e40f86a2604eac075b2", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc593a6b98b01c7441cb1d8a3667f93015fe8e3a2adbf80f8db0aa59cfd390b10", - "receiptsRoot": "0x8e94dd929d329ff9d87ebfd760fadb03a367a2d1481a078b64949ce59b5d5675", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x40bf4", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x0fa1fa4dab04fb013681e05295bea7c4a1d5aeeceb36469a50df9d1ac04d885b", - "transactions": [ - "0xf9011d800a8405f5e10080830186a0b8cc602c6000600073000000000000000000000000000000000000abcd3c602c60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba6316004557364e2ebd6405af8cb348aec519084d3fff42ebba63b6005557364e2ebd6405af8cb348aec519084d3fff42ebba63f6006556001602cf31ca045e5e5d2de3f49c0ab19b9188457cc70d70a7ef4ac5f26b40fb3810c50441fe3a033fcbf3201b5ba1158b7ad36aa90c0ebddfc6b03c1685238699fb353d405845a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x6ee06646e85d92e6dde9abc2d7feb2336b759bde0fbee496b1d6d97ecca2d313" }, "transactions": [ { @@ -668,39 +1197,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xbdcb66f4fc7db97fcc4bc0bc14b00175977580744272fa102af03c720bf747b5", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc2a1597628cac797d21b86c7ac63bf4d41710c2120a18e40f86a2604eac075b2" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bdcb66f4fc7db97fcc4bc0bc14b00175977580744272fa102af03c720bf747b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x0fa1fa4dab04fb013681e05295bea7c4a1d5aeeceb36469a50df9d1ac04d885b", - "network": "Cancun", + "lastblockhash": "0x6ee06646e85d92e6dde9abc2d7feb2336b759bde0fbee496b1d6d97ecca2d313", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -715,6 +1213,12 @@ "code": "0x610021600081600b8239f3600060006000600060007311111111111111111111111111111111111111115af2", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -735,14 +1239,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x01", @@ -757,6 +1253,14 @@ "code": "0x610021600081600b8239f3600060006000600060007311111111111111111111111111111111111111115af2", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json index 90472564836..51047478ec9 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/delegatecall_from_pre_existing_contract_to_new_contract.json @@ -1,18 +1,40 @@ { - "000-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { + "000-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d1e4f6d19bde2635dec3440b2b59594a0facb33e32e4ba44bfc608e05ed24145a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd1e4f6d19bde2635dec3440b2b59594a0facb33e32e4ba44bfc608e05ed24145", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x19311705584517dfe8b8af4c143a4179d50abb720b46d4a9a0cead0baf6687f3" + }, "blocks": [ { - "rlp": "0xf90367f9023fa027960e60c846be0de25f958b4e664d0c3e5b9b70324fd85ab5bc28eeec5cc0cea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070919739904fe7f6fc78b370892dd8257224b86c800ad9b78adc8bc5ea0cee64a0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a07b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", + "rlp": "0xf90344f9021ca019311705584517dfe8b8af4c143a4179d50abb720b46d4a9a0cead0baf6687f3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0855924abbf4f1e4f1870dc02f1e03313832c9417a4636d873f431e2b6aa817a7a0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a07b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", "blockHeader": { - "parentHash": "0x27960e60c846be0de25f958b4e664d0c3e5b9b70324fd85ab5bc28eeec5cc0ce", + "parentHash": "0x19311705584517dfe8b8af4c143a4179d50abb720b46d4a9a0cead0baf6687f3", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x70919739904fe7f6fc78b370892dd8257224b86c800ad9b78adc8bc5ea0cee64", + "stateRoot": "0x855924abbf4f1e4f1870dc02f1e03313832c9417a4636d873f431e2b6aa817a7", "transactionsTrie": "0x081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2", "receiptTrie": "0x7b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -26,36 +48,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcc2fa1ad0ba090b1862431c8153e13ef630f8968ede68cc60bd2c7257b876672" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x27960e60c846be0de25f958b4e664d0c3e5b9b70324fd85ab5bc28eeec5cc0ce", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x70919739904fe7f6fc78b370892dd8257224b86c800ad9b78adc8bc5ea0cee64", - "receiptsRoot": "0x7b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3fab6", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xcc2fa1ad0ba090b1862431c8153e13ef630f8968ede68cc60bd2c7257b876672", - "transactions": [ - "0xf9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4ae" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcfaf4e75582fadc780c44fb886890ee881d89c694b5b8fd8898ee3648d1ed639" }, "transactions": [ { @@ -77,11 +70,109 @@ "withdrawals": [] } ], + "lastblockhash": "0xcfaf4e75582fadc780c44fb886890ee881d89c694b5b8fd8898ee3648d1ed639", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2222222222222222222222222222222222222222": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba65af4", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bf022", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x1f", + "0x02": "0x7a65a76c31a7d5f627db81503a59be6579f666c7a3d3db6e00a18f81970d98a4", + "0x03": "0x01", + "0x05": "0x1f", + "0x06": "0x7a65a76c31a7d5f627db81503a59be6579f666c7a3d3db6e00a18f81970d98a4" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ae44", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dbbe5bfbf3eb670aaeaacce0a3f5eb2ad4c2fdf4e027bfdd17ccea3e084d6688a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf18f9ce1c06d4536ef2c4beef699615c94427db810c04b5e171cc61169fe9535", + "stateRoot": "0xdbbe5bfbf3eb670aaeaacce0a3f5eb2ad4c2fdf4e027bfdd17ccea3e084d6688", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -95,21 +186,1210 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x27960e60c846be0de25f958b4e664d0c3e5b9b70324fd85ab5bc28eeec5cc0ce" + "hash": "0x45544d9ef0f2ec0d396f25814ffa0b3055c6a5bf34826bb9d9bf63c37d1f89aa" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f18f9ce1c06d4536ef2c4beef699615c94427db810c04b5e171cc61169fe9535a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xcc2fa1ad0ba090b1862431c8153e13ef630f8968ede68cc60bd2c7257b876672", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90346f9021ca045544d9ef0f2ec0d396f25814ffa0b3055c6a5bf34826bb9d9bf63c37d1f89aaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00ba1e7ea0e70d05638b19d7b36a3310e2343b929ee7819787bcb1ea18671f981a0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a01b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", + "blockHeader": { + "parentHash": "0x45544d9ef0f2ec0d396f25814ffa0b3055c6a5bf34826bb9d9bf63c37d1f89aa", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0ba1e7ea0e70d05638b19d7b36a3310e2343b929ee7819787bcb1ea18671f981", + "transactionsTrie": "0xb063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873", + "receiptTrie": "0x1b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03fad3", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x605c59eb9b95c83563426b219105c62be11d5b9ee6c9f1b4b3e6f90fff7453e2" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f3", + "v": "0x1b", + "r": "0x67c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774", + "s": "0x5c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x605c59eb9b95c83563426b219105c62be11d5b9ee6c9f1b4b3e6f90fff7453e2", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2222222222222222222222222222222222222222": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600073f25fd15198aaf5139d45767c4d9fa58f71ec47d15af4", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bf079", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1", + "0x01": "0x1f", + "0x02": "0x52ad69c584e83db0268501f95ed6d1fbb795032cbb4c5fa814c92cc04850e3a9", + "0x03": "0x01", + "0x05": "0x1f", + "0x06": "0x52ad69c584e83db0268501f95ed6d1fbb795032cbb4c5fa814c92cc04850e3a9" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ad22", + "code": "0x", + "storage": {} + }, + "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a7b5ecf9303870b2ab7f649a359d258d11c5c3844571be1e7c9b464807b04b7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa7b5ecf9303870b2ab7f649a359d258d11c5c3844571be1e7c9b464807b04b7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x756c637d0c23f0bf49837ea13585850de960ae12cc8ce25b8a11c1833e70f504" + }, + "blocks": [ + { + "rlp": "0xf90344f9021ca0756c637d0c23f0bf49837ea13585850de960ae12cc8ce25b8a11c1833e70f504a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a69bb379d5fb6bff52a074dc9555e408942ac6ce70c432b73a7b3c4a3fd30e3ba0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a0f2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeeeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", + "blockHeader": { + "parentHash": "0x756c637d0c23f0bf49837ea13585850de960ae12cc8ce25b8a11c1833e70f504", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa69bb379d5fb6bff52a074dc9555e408942ac6ce70c432b73a7b3c4a3fd30e3b", + "transactionsTrie": "0x081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2", + "receiptTrie": "0xf2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeee", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03fab9", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xe22bf40529ae73634e8db7fc728ef21cb1c1bc1a1dba412e701be15877585b3f" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f3", + "v": "0x1b", + "r": "0xe85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505f", + "s": "0x7a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4ae", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe22bf40529ae73634e8db7fc728ef21cb1c1bc1a1dba412e701be15877585b3f", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2222222222222222222222222222222222222222": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba65af2", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bf02b", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0x8ee043b305c605aac2588776a34c7c1c4b74c3174dd3333c2e12db9d42d532c6", + "0x03": "0x01", + "0x05": "0x21", + "0x06": "0x8ee043b305c605aac2588776a34c7c1c4b74c3174dd3333c2e12db9d42d532c6" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ae26", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Shanghai-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ec5599f831ac0ab31307476c62523318791007a627d67404447335d4f4183fb0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xec5599f831ac0ab31307476c62523318791007a627d67404447335d4f4183fb0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfc3b0669552fb7a546a3cb47071373cc8dfd3cfc85b86bf7be53b83b24a4791b" + }, + "blocks": [ + { + "rlp": "0xf90346f9021ca0fc3b0669552fb7a546a3cb47071373cc8dfd3cfc85b86bf7be53b83b24a4791ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06623f706e70a5208f00740ab2978364947d1fed274aead2ce313fc958b285661a0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a0cb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", + "blockHeader": { + "parentHash": "0xfc3b0669552fb7a546a3cb47071373cc8dfd3cfc85b86bf7be53b83b24a4791b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6623f706e70a5208f00740ab2978364947d1fed274aead2ce313fc958b285661", + "transactionsTrie": "0xb063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873", + "receiptTrie": "0xcb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03fad6", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x57b00d8d7fb6458b1e4e62985b5e7fae25a7a224b2517ee234cfa5bd25e31de5" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f3", + "v": "0x1b", + "r": "0x67c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774", + "s": "0x5c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x57b00d8d7fb6458b1e4e62985b5e7fae25a7a224b2517ee234cfa5bd25e31de5", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2222222222222222222222222222222222222222": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000600073f25fd15198aaf5139d45767c4d9fa58f71ec47d15af2", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bf082", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1", + "0x01": "0x21", + "0x02": "0x2fc755776aa89ac2af968e520bffc9aafe720a0cb4322d209a06901dfdbb2257", + "0x03": "0x01", + "0x05": "0x21", + "0x06": "0x2fc755776aa89ac2af968e520bffc9aafe720a0cb4322d209a06901dfdbb2257" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ad04", + "code": "0x", + "storage": {} + }, + "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02d26919b3e5a8b1f97df0832a94b1c32a8cc4a73a0970f76b266c296fba61600a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2d26919b3e5a8b1f97df0832a94b1c32a8cc4a73a0970f76b266c296fba61600", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x255c12bdc56b1eae39c61b39d9f83fe180d52f826e96c65113df627d6b69cc96" + }, + "blocks": [ + { + "rlp": "0xf90344f9021ca0255c12bdc56b1eae39c61b39d9f83fe180d52f826e96c65113df627d6b69cc96a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bdf4bc0d14f94ff1a080d6e637a85050ba412736e40df2c5f1485c86ff2bb74ca0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a07b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", + "blockHeader": { + "parentHash": "0x255c12bdc56b1eae39c61b39d9f83fe180d52f826e96c65113df627d6b69cc96", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbdf4bc0d14f94ff1a080d6e637a85050ba412736e40df2c5f1485c86ff2bb74c", + "transactionsTrie": "0x081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2", + "receiptTrie": "0x7b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03fab6", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x21b942b7ee1805a0688c972b31d231d50d4571ea6a972049e056d9279f9dd703" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f3", + "v": "0x1b", + "r": "0xe85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505f", + "s": "0x7a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4ae", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x21b942b7ee1805a0688c972b31d231d50d4571ea6a972049e056d9279f9dd703", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2222222222222222222222222222222222222222": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba65af4", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bf022", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x1f", + "0x02": "0x7a65a76c31a7d5f627db81503a59be6579f666c7a3d3db6e00a18f81970d98a4", + "0x03": "0x01", + "0x05": "0x1f", + "0x06": "0x7a65a76c31a7d5f627db81503a59be6579f666c7a3d3db6e00a18f81970d98a4" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x01", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ae44", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09e35878ad684bad7445a19702092699b79800008d03361423cf17949f6cf795ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9e35878ad684bad7445a19702092699b79800008d03361423cf17949f6cf795c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4142ba54ca4318705b5816525a5c443f48402b60b95ad57d967939f1a6276b3c" + }, + "blocks": [ + { + "rlp": "0xf90346f9021ca04142ba54ca4318705b5816525a5c443f48402b60b95ad57d967939f1a6276b3ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e1a6c1ae30760a4fc838364b2a23cdc66018fadee06a84315089e0fa8292174da0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a01b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", + "blockHeader": { + "parentHash": "0x4142ba54ca4318705b5816525a5c443f48402b60b95ad57d967939f1a6276b3c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe1a6c1ae30760a4fc838364b2a23cdc66018fadee06a84315089e0fa8292174d", + "transactionsTrie": "0xb063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873", + "receiptTrie": "0x1b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03fad3", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x3c43c64536b52c0579bb64016144758342ca0959a68555a5eb2cd9f43cdb17c7" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f3", + "v": "0x1b", + "r": "0x67c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774", + "s": "0x5c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3c43c64536b52c0579bb64016144758342ca0959a68555a5eb2cd9f43cdb17c7", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2222222222222222222222222222222222222222": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600073f25fd15198aaf5139d45767c4d9fa58f71ec47d15af4", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + }, + "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bf079", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1", + "0x01": "0x1f", + "0x02": "0x52ad69c584e83db0268501f95ed6d1fbb795032cbb4c5fa814c92cc04850e3a9", + "0x03": "0x01", + "0x05": "0x1f", + "0x06": "0x52ad69c584e83db0268501f95ed6d1fbb795032cbb4c5fa814c92cc04850e3a9" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ad22", + "code": "0x", + "storage": {} + }, + "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1": { + "nonce": "0x01", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dd98936a24009e68f903cbf567e7856259d6e5d13787437cbdf6d18771ded0dca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdd98936a24009e68f903cbf567e7856259d6e5d13787437cbdf6d18771ded0dc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x28114d99cd248c5d8752fd1cb8a9bdf8949ccfb55d7e0639938c5c9b5dc0144d" + }, + "blocks": [ + { + "rlp": "0xf90344f9021ca028114d99cd248c5d8752fd1cb8a9bdf8949ccfb55d7e0639938c5c9b5dc0144da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa024950f29021ad409d9e20840a24cbe09edbcef865c1546daad7f66b95713fc36a0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a0f2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeeeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", + "blockHeader": { + "parentHash": "0x28114d99cd248c5d8752fd1cb8a9bdf8949ccfb55d7e0639938c5c9b5dc0144d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x24950f29021ad409d9e20840a24cbe09edbcef865c1546daad7f66b95713fc36", + "transactionsTrie": "0x081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2", + "receiptTrie": "0xf2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeee", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03fab9", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x5cd69b263a7a824d065d3533f17826967494778d4bfb86d5cb5a556173a08b8e" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f3", + "v": "0x1b", + "r": "0xe85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505f", + "s": "0x7a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4ae", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5cd69b263a7a824d065d3533f17826967494778d4bfb86d5cb5a556173a08b8e", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2222222222222222222222222222222222222222": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba65af2", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bf02b", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x01": "0x21", + "0x02": "0x8ee043b305c605aac2588776a34c7c1c4b74c3174dd3333c2e12db9d42d532c6", + "0x03": "0x01", + "0x05": "0x21", + "0x06": "0x8ee043b305c605aac2588776a34c7c1c4b74c3174dd3333c2e12db9d42d532c6" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x01", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ae26", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Shanghai-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01db2c397b17bcb77f00661f8ab7c219f2fa9bf1104fd79dff27aa6eeb05c3a78a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1db2c397b17bcb77f00661f8ab7c219f2fa9bf1104fd79dff27aa6eeb05c3a78", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2470ad4143c1873b59b1c36e92fa3ed4eca1e8a77eeb3348b327d182c92a7c1b" + }, + "blocks": [ + { + "rlp": "0xf90346f9021ca02470ad4143c1873b59b1c36e92fa3ed4eca1e8a77eeb3348b327d182c92a7c1ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c6ba1cf10615b736ea6b4fa15ea8559a685fdc3e3ce1f0b7bdea31866c586dfea0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a0cb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", + "blockHeader": { + "parentHash": "0x2470ad4143c1873b59b1c36e92fa3ed4eca1e8a77eeb3348b327d182c92a7c1b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc6ba1cf10615b736ea6b4fa15ea8559a685fdc3e3ce1f0b7bdea31866c586dfe", + "transactionsTrie": "0xb063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873", + "receiptTrie": "0xcb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03fad6", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4582e7837f34517f2ba57bb2fb6faa3f0777fb497e7fd808f0a4ddb12b68faae" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f3", + "v": "0x1b", + "r": "0x67c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774", + "s": "0x5c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x4582e7837f34517f2ba57bb2fb6faa3f0777fb497e7fd808f0a4ddb12b68faae", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2222222222222222222222222222222222222222": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000600073f25fd15198aaf5139d45767c4d9fa58f71ec47d15af2", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + }, + "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0bf082", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1", + "0x01": "0x21", + "0x02": "0x2fc755776aa89ac2af968e520bffc9aafe720a0cb4322d209a06901dfdbb2257", + "0x03": "0x01", + "0x05": "0x21", + "0x06": "0x2fc755776aa89ac2af968e520bffc9aafe720a0cb4322d209a06901dfdbb2257" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e6ad04", + "code": "0x", + "storage": {} + }, + "0xf25fd15198aaf5139d45767c4d9fa58f71ec47d1": { + "nonce": "0x01", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0af6f41e4a07e033f269b60ff6671838306b60134bd1da7e965d138e5e83213afa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaf6f41e4a07e033f269b60ff6671838306b60134bd1da7e965d138e5e83213af", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x29f8ac0489fa12fcc25670d00715ba5f6dbca09529e34b84b06ed39fadbf2db0" + }, + "blocks": [ + { + "rlp": "0xf90367f9023fa029f8ac0489fa12fcc25670d00715ba5f6dbca09529e34b84b06ed39fadbf2db0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01048eb5a03d6fca0c1f69cefce2ed9349ef19036b483c51b07f622bc5e02580ca0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a07b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", + "blockHeader": { + "parentHash": "0x29f8ac0489fa12fcc25670d00715ba5f6dbca09529e34b84b06ed39fadbf2db0", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1048eb5a03d6fca0c1f69cefce2ed9349ef19036b483c51b07f622bc5e02580c", + "transactionsTrie": "0x081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2", + "receiptTrie": "0x7b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03fab6", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1a1ebc3a84c3aee8882720b790ae4956ca8caca99418df3d053bd25be8fb7412" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f3", + "v": "0x1b", + "r": "0xe85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505f", + "s": "0x7a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4ae", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1a1ebc3a84c3aee8882720b790ae4956ca8caca99418df3d053bd25be8fb7412", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -124,6 +1404,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -144,14 +1430,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -166,6 +1444,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -214,20 +1500,45 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { + "009-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f72d3ad87bf6763f7cb1b56f83b371414212d4187aadaedfbe26cddc5b464401a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf72d3ad87bf6763f7cb1b56f83b371414212d4187aadaedfbe26cddc5b464401", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6923387d54d07f56f269ac28b2034ede3ac060cf8bbf4366bf94e33a3a80a4eb" + }, "blocks": [ { - "rlp": "0xf90369f9023fa096971966d7c3f35a8c092093f24fbb8ef116e2d0d117fb8efe2078ee6e7af468a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0543a91ee8c65f1f3a94ce0de931ae5f0a2860eeb66219c233d13acb048897ba0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a01b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", + "rlp": "0xf90369f9023fa06923387d54d07f56f269ac28b2034ede3ac060cf8bbf4366bf94e33a3a80a4eba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa033941c49d107cbecaa9d1f126fb76047396b133b7afb83ac6fb7d6662179924ea0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a01b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", "blockHeader": { - "parentHash": "0x96971966d7c3f35a8c092093f24fbb8ef116e2d0d117fb8efe2078ee6e7af468", + "parentHash": "0x6923387d54d07f56f269ac28b2034ede3ac060cf8bbf4366bf94e33a3a80a4eb", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0543a91ee8c65f1f3a94ce0de931ae5f0a2860eeb66219c233d13acb048897b", + "stateRoot": "0x33941c49d107cbecaa9d1f126fb76047396b133b7afb83ac6fb7d6662179924e", "transactionsTrie": "0xb063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873", "receiptTrie": "0x1b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -244,33 +1555,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x001cfc70286a4851f3859536b2bc5202a35c3ec7b86cb499b73b633a2d2cec33" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x96971966d7c3f35a8c092093f24fbb8ef116e2d0d117fb8efe2078ee6e7af468", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe0543a91ee8c65f1f3a94ce0de931ae5f0a2860eeb66219c233d13acb048897b", - "receiptsRoot": "0x1b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3fad3", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x001cfc70286a4851f3859536b2bc5202a35c3ec7b86cb499b73b633a2d2cec33", - "transactions": [ - "0xf9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x227b5c00651ae1a0e8bfc29a103a6b4b07f4b2347bfa66a8a780ddfcb9113ce2" }, "transactions": [ { @@ -292,39 +1577,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xfd78662742e6eb53adc70c362a1c99e7a9dbc12b7433edd8577cd84ddff73257", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x96971966d7c3f35a8c092093f24fbb8ef116e2d0d117fb8efe2078ee6e7af468" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fd78662742e6eb53adc70c362a1c99e7a9dbc12b7433edd8577cd84ddff73257a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x001cfc70286a4851f3859536b2bc5202a35c3ec7b86cb499b73b633a2d2cec33", - "network": "Cancun", + "lastblockhash": "0x227b5c00651ae1a0e8bfc29a103a6b4b07f4b2347bfa66a8a780ddfcb9113ce2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -339,6 +1593,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -359,14 +1619,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -381,6 +1633,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -429,20 +1689,45 @@ }, "sealEngine": "NoProof" }, - "002-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { + "010-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d9fb3d3d9dec78e036a4bb7031d584bb828094ec0e4589ee7628ed6db4bf7bf0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd9fb3d3d9dec78e036a4bb7031d584bb828094ec0e4589ee7628ed6db4bf7bf0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x95bacc4b85053ed9da0645f57e4e1c089e242a5324cf316080516c06804c10e5" + }, "blocks": [ { - "rlp": "0xf90367f9023fa07651da0439337c3b9366a90849adea7da7274561116fadd01f7860209139f100a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e59e3e29f426d764d62c939f915c2e8499ffcb963f6ef54054eb537bbd04a8b2a0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a0f2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeeeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", + "rlp": "0xf90367f9023fa095bacc4b85053ed9da0645f57e4e1c089e242a5324cf316080516c06804c10e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07b24002e0dc26713ec455d8ac4fe967461f04a5b6788320c7d67e818bd158e99a0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a0f2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeeeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", "blockHeader": { - "parentHash": "0x7651da0439337c3b9366a90849adea7da7274561116fadd01f7860209139f100", + "parentHash": "0x95bacc4b85053ed9da0645f57e4e1c089e242a5324cf316080516c06804c10e5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe59e3e29f426d764d62c939f915c2e8499ffcb963f6ef54054eb537bbd04a8b2", + "stateRoot": "0x7b24002e0dc26713ec455d8ac4fe967461f04a5b6788320c7d67e818bd158e99", "transactionsTrie": "0x081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2", "receiptTrie": "0xf2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeee", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -459,33 +1744,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2a29e43f37ca88020e2cc2575bc90e2db8480dab0eaa6e47769876df71a129d8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x7651da0439337c3b9366a90849adea7da7274561116fadd01f7860209139f100", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe59e3e29f426d764d62c939f915c2e8499ffcb963f6ef54054eb537bbd04a8b2", - "receiptsRoot": "0xf2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeee", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3fab9", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x2a29e43f37ca88020e2cc2575bc90e2db8480dab0eaa6e47769876df71a129d8", - "transactions": [ - "0xf9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4ae" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x646f32411953d314a1b732850d5ce91f62c7ae9e98e404e73f07511ab0e2b8ef" }, "transactions": [ { @@ -507,39 +1766,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9b8a75fdb06fe96a12c02e4022d0b69812e3b35b5717577ef1dc480ee25c6b40", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7651da0439337c3b9366a90849adea7da7274561116fadd01f7860209139f100" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09b8a75fdb06fe96a12c02e4022d0b69812e3b35b5717577ef1dc480ee25c6b40a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x2a29e43f37ca88020e2cc2575bc90e2db8480dab0eaa6e47769876df71a129d8", - "network": "Cancun", + "lastblockhash": "0x646f32411953d314a1b732850d5ce91f62c7ae9e98e404e73f07511ab0e2b8ef", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -554,6 +1782,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -574,14 +1808,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -596,6 +1822,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -644,20 +1878,45 @@ }, "sealEngine": "NoProof" }, - "003-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { + "011-fork=Cancun-selfdestruct_contract_initial_balance=0-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a037399f807e9b591a83199dcdd91e6396a0619e0890d51498b5bb73c5bb9094c5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x37399f807e9b591a83199dcdd91e6396a0619e0890d51498b5bb73c5bb9094c5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcdd09f055be39dec7716314676362c26eaa0b98d186241340b9c8f00759636fc" + }, "blocks": [ { - "rlp": "0xf90369f9023fa0b1e15f25dbeaba0a8db443f77c938983ef20b1b030eae3800bfe668e565de0cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0873a710b3718faa3e3c0685a7b8d1b92c3ab6e698fa46cad7c6b00728e546ef3a0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a0cb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", + "rlp": "0xf90369f9023fa0cdd09f055be39dec7716314676362c26eaa0b98d186241340b9c8f00759636fca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04c6ae0057fbabdfbe3a23465b9203eab594e50757d536dd0ef7acd67f5eb6e8ba0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a0cb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", "blockHeader": { - "parentHash": "0xb1e15f25dbeaba0a8db443f77c938983ef20b1b030eae3800bfe668e565de0cf", + "parentHash": "0xcdd09f055be39dec7716314676362c26eaa0b98d186241340b9c8f00759636fc", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x873a710b3718faa3e3c0685a7b8d1b92c3ab6e698fa46cad7c6b00728e546ef3", + "stateRoot": "0x4c6ae0057fbabdfbe3a23465b9203eab594e50757d536dd0ef7acd67f5eb6e8b", "transactionsTrie": "0xb063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873", "receiptTrie": "0xcb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -674,33 +1933,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x274604ddea92d18941cf3678a2b06208617597ffda54735f076396c1c71690bb" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xb1e15f25dbeaba0a8db443f77c938983ef20b1b030eae3800bfe668e565de0cf", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x873a710b3718faa3e3c0685a7b8d1b92c3ab6e698fa46cad7c6b00728e546ef3", - "receiptsRoot": "0xcb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3fad6", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x274604ddea92d18941cf3678a2b06208617597ffda54735f076396c1c71690bb", - "transactions": [ - "0xf9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x8df812675b791630ebd5effd8737d97e05dee1cd9f0b14be3f9f43f076b90cc7" }, "transactions": [ { @@ -722,39 +1955,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa5179c0549963610da649ba6328fceac58aa450f3f913729910a248ade537416", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xb1e15f25dbeaba0a8db443f77c938983ef20b1b030eae3800bfe668e565de0cf" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a5179c0549963610da649ba6328fceac58aa450f3f913729910a248ade537416a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x274604ddea92d18941cf3678a2b06208617597ffda54735f076396c1c71690bb", - "network": "Cancun", + "lastblockhash": "0x8df812675b791630ebd5effd8737d97e05dee1cd9f0b14be3f9f43f076b90cc7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -769,6 +1971,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -789,14 +1997,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -811,6 +2011,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -859,20 +2067,45 @@ }, "sealEngine": "NoProof" }, - "004-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { + "012-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0262be2c863ae198e4e575946b8178842e919c38d799348e79194b9d83e42ece8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x262be2c863ae198e4e575946b8178842e919c38d799348e79194b9d83e42ece8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x532562cf61a6c0ed3acbd37679325acbcb3c09890b8c7ff4cb544f7c0ac47fbb" + }, "blocks": [ { - "rlp": "0xf90367f9023fa0a02fef22adc0f00d1e3fdc52b46c210d4ac7df52f83ffe2454a8af31b8757b89a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0576f361146b7cb326e86160ecef6c0b979f5022b861d13918c9723d2906e66bda0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a07b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", + "rlp": "0xf90367f9023fa0532562cf61a6c0ed3acbd37679325acbcb3c09890b8c7ff4cb544f7c0ac47fbba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09e9f0cda2e6a42a4941c6eeacc9cd17e11b78e9b784f3bb26f3ad5c27ad7c517a0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a07b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", "blockHeader": { - "parentHash": "0xa02fef22adc0f00d1e3fdc52b46c210d4ac7df52f83ffe2454a8af31b8757b89", + "parentHash": "0x532562cf61a6c0ed3acbd37679325acbcb3c09890b8c7ff4cb544f7c0ac47fbb", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x576f361146b7cb326e86160ecef6c0b979f5022b861d13918c9723d2906e66bd", + "stateRoot": "0x9e9f0cda2e6a42a4941c6eeacc9cd17e11b78e9b784f3bb26f3ad5c27ad7c517", "transactionsTrie": "0x081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2", "receiptTrie": "0x7b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -889,33 +2122,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8b9726b2e4c160b73622ec1ab30b2f120aebb4821ffa0644e77a6239f0bad00f" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa02fef22adc0f00d1e3fdc52b46c210d4ac7df52f83ffe2454a8af31b8757b89", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x576f361146b7cb326e86160ecef6c0b979f5022b861d13918c9723d2906e66bd", - "receiptsRoot": "0x7b32442a1ae87fd4e509bb6ff9338d9450398b9822a5a8aaf8e749fd016e8486", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3fab6", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x8b9726b2e4c160b73622ec1ab30b2f120aebb4821ffa0644e77a6239f0bad00f", - "transactions": [ - "0xf9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4ae" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc0cb4ff7a35344c378c602200d6c9750469b5d33b6367460e9e0f1d9c8fa9a25" }, "transactions": [ { @@ -937,39 +2144,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xafc5884f61c44bde1c78188ee67372f2cc22e5d4ee79e7745f535b9b19ed69e2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa02fef22adc0f00d1e3fdc52b46c210d4ac7df52f83ffe2454a8af31b8757b89" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0afc5884f61c44bde1c78188ee67372f2cc22e5d4ee79e7745f535b9b19ed69e2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x8b9726b2e4c160b73622ec1ab30b2f120aebb4821ffa0644e77a6239f0bad00f", - "network": "Cancun", + "lastblockhash": "0xc0cb4ff7a35344c378c602200d6c9750469b5d33b6367460e9e0f1d9c8fa9a25", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -984,6 +2160,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -1010,14 +2192,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1032,6 +2206,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -1080,20 +2262,45 @@ }, "sealEngine": "NoProof" }, - "005-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { + "013-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=DELEGATECALL-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00d23d1e253861e3e15a64c2e1e1818017e66b24ec3ef22d80801417b864988daa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0d23d1e253861e3e15a64c2e1e1818017e66b24ec3ef22d80801417b864988da", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2d6499851f27a9ae0a6efae2deecc9ff79c3a5d06c918d02e4d69348f35e90ca" + }, "blocks": [ { - "rlp": "0xf90369f9023fa0ecc2b17e3a6ddbe70eda3613bc736ebd2d7600c755b5a4acb306fd21a19f1e9ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09d504a6e02a44c99c05dafcabe867044636c05a06bfb7bca86033996a8bbd8b4a0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a01b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", + "rlp": "0xf90369f9023fa02d6499851f27a9ae0a6efae2deecc9ff79c3a5d06c918d02e4d69348f35e90caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04585a9d6932e0244ff0600317f0ffdb6afc7373c24f39bd276dfe74b483dbc2aa0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a01b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", "blockHeader": { - "parentHash": "0xecc2b17e3a6ddbe70eda3613bc736ebd2d7600c755b5a4acb306fd21a19f1e9b", + "parentHash": "0x2d6499851f27a9ae0a6efae2deecc9ff79c3a5d06c918d02e4d69348f35e90ca", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d504a6e02a44c99c05dafcabe867044636c05a06bfb7bca86033996a8bbd8b4", + "stateRoot": "0x4585a9d6932e0244ff0600317f0ffdb6afc7373c24f39bd276dfe74b483dbc2a", "transactionsTrie": "0xb063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873", "receiptTrie": "0x1b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1110,33 +2317,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4de7bdcd28e6916d7fa84f1b59a4c9863283da6339cd20fe262eefe17eb829b5" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xecc2b17e3a6ddbe70eda3613bc736ebd2d7600c755b5a4acb306fd21a19f1e9b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9d504a6e02a44c99c05dafcabe867044636c05a06bfb7bca86033996a8bbd8b4", - "receiptsRoot": "0x1b6fef5c60eb9c5e21ab9e19f17b2fe17d5f9187b52e25d595ffbaa1d57cec2a", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3fad3", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4de7bdcd28e6916d7fa84f1b59a4c9863283da6339cd20fe262eefe17eb829b5", - "transactions": [ - "0xf9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0c5656b96bdb97f3b852de8e710d5cac99bec248b019fd5917e95e3ce9d767ab" }, "transactions": [ { @@ -1158,39 +2339,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc83c35d6142787fea676bbcdbf1929926720a18e90de26ad73292cdb72f3b96b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xecc2b17e3a6ddbe70eda3613bc736ebd2d7600c755b5a4acb306fd21a19f1e9b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c83c35d6142787fea676bbcdbf1929926720a18e90de26ad73292cdb72f3b96ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4de7bdcd28e6916d7fa84f1b59a4c9863283da6339cd20fe262eefe17eb829b5", - "network": "Cancun", + "lastblockhash": "0x0c5656b96bdb97f3b852de8e710d5cac99bec248b019fd5917e95e3ce9d767ab", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1205,6 +2355,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -1231,14 +2387,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1253,6 +2401,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -1301,20 +2457,45 @@ }, "sealEngine": "NoProof" }, - "006-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { + "014-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a074fecf98473e6df5080efa7bf629b16e572a9031dce12bf626a6597aa16c0fa5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x74fecf98473e6df5080efa7bf629b16e572a9031dce12bf626a6597aa16c0fa5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf52e9f62c8a04f5de4f2c4fa7aa506714dda7e9b3956e0d5139fc3cf0e1c844b" + }, "blocks": [ { - "rlp": "0xf90367f9023fa082bb0ac677a7ac4ee4e41b277850c5a4a613391180ffdae195babe267c0e38c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e864da638f24bdceeaf72b39b937a64c7fcfa243f173005bb960ed82ef7f42b0a0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a0f2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeeeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", + "rlp": "0xf90367f9023fa0f52e9f62c8a04f5de4f2c4fa7aa506714dda7e9b3956e0d5139fc3cf0e1c844ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0462e29283a7f8577576fb5047c8f66b3908bd50ab4784eebaa378c0bf29667f3a0081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2a0f2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeeeb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fab98203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90120f9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4aec0c0", "blockHeader": { - "parentHash": "0x82bb0ac677a7ac4ee4e41b277850c5a4a613391180ffdae195babe267c0e38c3", + "parentHash": "0xf52e9f62c8a04f5de4f2c4fa7aa506714dda7e9b3956e0d5139fc3cf0e1c844b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe864da638f24bdceeaf72b39b937a64c7fcfa243f173005bb960ed82ef7f42b0", + "stateRoot": "0x462e29283a7f8577576fb5047c8f66b3908bd50ab4784eebaa378c0bf29667f3", "transactionsTrie": "0x081da6e20e94b5238e78d46cdc931f977a7484aa339a56779b968bb699e732e2", "receiptTrie": "0xf2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeee", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1331,33 +2512,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1444661ba772b0cf1371487d82f03c155677f2370a2ee810368627ddde12ff87" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x82bb0ac677a7ac4ee4e41b277850c5a4a613391180ffdae195babe267c0e38c3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe864da638f24bdceeaf72b39b937a64c7fcfa243f173005bb960ed82ef7f42b0", - "receiptsRoot": "0xf2b291795c3142e90fc629be03e97c30812ac0e9806e5d7a1adaf42f7944aeee", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3fab9", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x1444661ba772b0cf1371487d82f03c155677f2370a2ee810368627ddde12ff87", - "transactions": [ - "0xf9011d800a8405f5e10080830186a0b8cc60166000600073000000000000000000000000000000000000abcd3c601660006000f06000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba0e85c08cb9215bea6b41e30be68d47ddeb7709ac45f4dbca6415cbdd14eb9505fa07a7d710842dd64522dfc72d7adba6e49c605cbe4423606c8125380c4e2cab4ae" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd6dfcf54bab17c48c70923d25b5d32f50d73924b8268f92085862188caa9e261" }, "transactions": [ { @@ -1379,39 +2534,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x119b7a0d8e06e06286c8dea9cbc42b88fa67e6506d8ab049649abbb01d7e0e58", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x82bb0ac677a7ac4ee4e41b277850c5a4a613391180ffdae195babe267c0e38c3" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0119b7a0d8e06e06286c8dea9cbc42b88fa67e6506d8ab049649abbb01d7e0e58a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1444661ba772b0cf1371487d82f03c155677f2370a2ee810368627ddde12ff87", - "network": "Cancun", + "lastblockhash": "0xd6dfcf54bab17c48c70923d25b5d32f50d73924b8268f92085862188caa9e261", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1426,6 +2550,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -1452,14 +2582,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1474,6 +2596,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -1522,20 +2652,45 @@ }, "sealEngine": "NoProof" }, - "007-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { + "015-fork=Cancun-selfdestruct_contract_initial_balance=1-call_times=1-call_opcode=CALLCODE-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a57674dcaa7e3d5fe34ec5adaecfba581158b22f0f511c47a99938a5637cc942a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa57674dcaa7e3d5fe34ec5adaecfba581158b22f0f511c47a99938a5637cc942", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x47526c6a9ae51e0da92855eb17a3e662577e650568b3b2bdd357fcd790251da1" + }, "blocks": [ { - "rlp": "0xf90369f9023fa0caa609e06bb18584a25bcd6203e079b9af48f866e35b00426f1e400a283de080a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c56c7170c609b1afc85bd506b38cbeb39a343c2802fa2964ff62fe8c0a6ceca6a0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a0cb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", + "rlp": "0xf90369f9023fa047526c6a9ae51e0da92855eb17a3e662577e650568b3b2bdd357fcd790251da1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d21ab5142a6000ae1fd39c01119d441451840e19d13d82c7f097537b2fc698cca0b063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873a0cb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303fad68203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90122f9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7c0c0", "blockHeader": { - "parentHash": "0xcaa609e06bb18584a25bcd6203e079b9af48f866e35b00426f1e400a283de080", + "parentHash": "0x47526c6a9ae51e0da92855eb17a3e662577e650568b3b2bdd357fcd790251da1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc56c7170c609b1afc85bd506b38cbeb39a343c2802fa2964ff62fe8c0a6ceca6", + "stateRoot": "0xd21ab5142a6000ae1fd39c01119d441451840e19d13d82c7f097537b2fc698cc", "transactionsTrie": "0xb063ae356caad61eebfc381ffeb041d6c404be5571f23919198c0db395935873", "receiptTrie": "0xcb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1552,33 +2707,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ef5457e37ab865c477573046f0a3d230e802900867670c0dd997ab5e15b9c37" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xcaa609e06bb18584a25bcd6203e079b9af48f866e35b00426f1e400a283de080", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc56c7170c609b1afc85bd506b38cbeb39a343c2802fa2964ff62fe8c0a6ceca6", - "receiptsRoot": "0xcb4f501021f65fabf015f13798e32bb973f161d75476d9dc6e443e6e33738552", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3fad6", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x1ef5457e37ab865c477573046f0a3d230e802900867670c0dd997ab5e15b9c37", - "transactions": [ - "0xf9011f800a8405f5e10080830186a0b8ce60166000600073000000000000000000000000000000000000abcd3c6000601660006000f56000557322222222222222222222222222222222222222223b6001557322222222222222222222222222222222222222223f6002556000600060006000600073222222222222222222222222222222222222222245f1600355732222222222222222222222222222222222222222316004557322222222222222222222222222222222222222223b6005557322222222222222222222222222222222222222223f60065560016020f31ba067c3b1c0dc32953854775b599e87155114ad707b92e731f0b01fa7cae295b774a05c18430708e40a3bce6fad91e9434a13f25036a9d22d77db55a3414b7b1a80f7" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfd58b6d65be79b03e49a38f1716807036e4da285604372d8bcb0ef2d42ca8776" }, "transactions": [ { @@ -1600,39 +2729,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x54f6c5bda54bc5264c089ca52f9b67998c1d3fd29c8378ed915a5350ad880e57", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xcaa609e06bb18584a25bcd6203e079b9af48f866e35b00426f1e400a283de080" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a054f6c5bda54bc5264c089ca52f9b67998c1d3fd29c8378ed915a5350ad880e57a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x1ef5457e37ab865c477573046f0a3d230e802900867670c0dd997ab5e15b9c37", - "network": "Cancun", + "lastblockhash": "0xfd58b6d65be79b03e49a38f1716807036e4da285604372d8bcb0ef2d42ca8776", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1647,6 +2745,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -1673,14 +2777,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1695,6 +2791,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json index faab0a4aed2..97231a72de9 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/recreate_self_destructed_contract_different_txs.json @@ -1,18 +1,40 @@ { - "000-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_other_address-create_opcode=CREATE2": { + "000-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_other_address-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01d656283bbcf6915eaea4718a0ee68da2bc8fa41c144766c56b7bbfbcb2e5e62a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1d656283bbcf6915eaea4718a0ee68da2bc8fa41c144766c56b7bbfbcb2e5e62", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x3130db1a1f88d2f29904934b7612ffbd935164f23b4e36c9cf4c6f717b79a85f" + }, "blocks": [ { - "rlp": "0xf9034bf9023da04092c07f8bda23253b8e46be2add3a863810635bcd1a03b8d646ce8c35d9ef07a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07a3dec52da512ec411c46d48eb378529729192a74050d1ac2443c612761748f8a0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a080b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083035ade0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", + "rlp": "0xf90328f9021aa03130db1a1f88d2f29904934b7612ffbd935164f23b4e36c9cf4c6f717b79a85fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0706d418481276208475ae7d276e28e73292d9a32eb26bbd00a3551444eaa544fa0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a080b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083035ade0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", "blockHeader": { - "parentHash": "0x4092c07f8bda23253b8e46be2add3a863810635bcd1a03b8d646ce8c35d9ef07", + "parentHash": "0x3130db1a1f88d2f29904934b7612ffbd935164f23b4e36c9cf4c6f717b79a85f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7a3dec52da512ec411c46d48eb378529729192a74050d1ac2443c612761748f8", + "stateRoot": "0x706d418481276208475ae7d276e28e73292d9a32eb26bbd00a3551444eaa544f", "transactionsTrie": "0xf54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2", "receiptTrie": "0x80b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -26,37 +48,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3c1ab28cf2abcb81b79c8076e5cc35acac25fd7c1a7c5306dd2f7a82a9118ba1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4092c07f8bda23253b8e46be2add3a863810635bcd1a03b8d646ce8c35d9ef07", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7a3dec52da512ec411c46d48eb378529729192a74050d1ac2443c612761748f8", - "receiptsRoot": "0x80b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6c", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x35ade", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3c1ab28cf2abcb81b79c8076e5cc35acac25fd7c1a7c5306dd2f7a82a9118ba1", - "transactions": [ - "0xf881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82", - "0xf881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbc361861daff76aceb5f0a056d6dc454f434cae0f388097c9b8a504819a05eb8" }, "blocknumber": "1", "transactions": [ @@ -93,39 +85,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3ec93d9a7e38b85fa77dd9d2f514a9750b489805df10323fe37b8f44d0996e3b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4092c07f8bda23253b8e46be2add3a863810635bcd1a03b8d646ce8c35d9ef07" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03ec93d9a7e38b85fa77dd9d2f514a9750b489805df10323fe37b8f44d0996e3ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3c1ab28cf2abcb81b79c8076e5cc35acac25fd7c1a7c5306dd2f7a82a9118ba1", - "network": "Cancun", + "lastblockhash": "0xbc361861daff76aceb5f0a056d6dc454f434cae0f388097c9b8a504819a05eb8", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -160,14 +121,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -212,20 +165,42 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_to_self-create_opcode=CREATE2": { + "001-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_to_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00a18a9a5b6ca4aff4307d3a2ed2a10e31bd6801982743b8589089e1ca00ec9f7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0a18a9a5b6ca4aff4307d3a2ed2a10e31bd6801982743b8589089e1ca00ec9f7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x50047cfd980153d612902315cb6a687816f3af405f543ca4737c2e4933503900" + }, "blocks": [ { - "rlp": "0xf9034bf9023da00893c5d05a215ceec3f4ce6bf7e404875da842842c58408c4b46960cc9a8e2e4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05f52d0c8a5855e58d3f8a35d24a0b8c534c78c674844a7cf9e075a1e278c3b40a0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a0b507f5f17f24b7e0d11f3f6ad4dc01d1f4918bb443aa456a1b232d57a34bcc05b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830344fe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", + "rlp": "0xf90328f9021aa050047cfd980153d612902315cb6a687816f3af405f543ca4737c2e4933503900a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d75d01587ccac6064be36c6aaf36715138fb50aed9175c07474c8f1a20c7dd4aa0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a0b507f5f17f24b7e0d11f3f6ad4dc01d1f4918bb443aa456a1b232d57a34bcc05b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830344fe0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", "blockHeader": { - "parentHash": "0x0893c5d05a215ceec3f4ce6bf7e404875da842842c58408c4b46960cc9a8e2e4", + "parentHash": "0x50047cfd980153d612902315cb6a687816f3af405f543ca4737c2e4933503900", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5f52d0c8a5855e58d3f8a35d24a0b8c534c78c674844a7cf9e075a1e278c3b40", + "stateRoot": "0xd75d01587ccac6064be36c6aaf36715138fb50aed9175c07474c8f1a20c7dd4a", "transactionsTrie": "0xf54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2", "receiptTrie": "0xb507f5f17f24b7e0d11f3f6ad4dc01d1f4918bb443aa456a1b232d57a34bcc05", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -239,37 +214,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd7eafa11b052be07b804b22139d4c48ad5a0a32ecf358f700094b69767aad8c2" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x0893c5d05a215ceec3f4ce6bf7e404875da842842c58408c4b46960cc9a8e2e4", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5f52d0c8a5855e58d3f8a35d24a0b8c534c78c674844a7cf9e075a1e278c3b40", - "receiptsRoot": "0xb507f5f17f24b7e0d11f3f6ad4dc01d1f4918bb443aa456a1b232d57a34bcc05", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x344fe", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xd7eafa11b052be07b804b22139d4c48ad5a0a32ecf358f700094b69767aad8c2", - "transactions": [ - "0xf881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82", - "0xf881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe59d8dc25a4701f6bcbedb185e47fcae83f82bca0d3079faf9cd6e59664f95a9" }, "blocknumber": "1", "transactions": [ @@ -306,39 +251,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0e710c138288c21d1f2a54c679c7f308a63ceef5e2857951d44772ae226cb83b", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x0893c5d05a215ceec3f4ce6bf7e404875da842842c58408c4b46960cc9a8e2e4" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00e710c138288c21d1f2a54c679c7f308a63ceef5e2857951d44772ae226cb83ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xd7eafa11b052be07b804b22139d4c48ad5a0a32ecf358f700094b69767aad8c2", - "network": "Cancun", + "lastblockhash": "0xe59d8dc25a4701f6bcbedb185e47fcae83f82bca0d3079faf9cd6e59664f95a9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -365,14 +279,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -409,20 +315,42 @@ }, "sealEngine": "NoProof" }, - "002-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_other_address-create_opcode=CREATE2": { + "002-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_other_address-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e15ae10f1714db4838f8354e25fe51bcd980531b559e892bf9f22f1a1a543b2aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe15ae10f1714db4838f8354e25fe51bcd980531b559e892bf9f22f1a1a543b2a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x38eaf4f6a8ed4d0e7192f7b38d990fb87884a01b335c095d86c32d29979345bb" + }, "blocks": [ { - "rlp": "0xf9034bf9023da0c7e31b35486a2df1b9449f57232c020a1c4f3c1ed6194fb8d05fe7adf3b5e4fba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ea098b49323b261b9f4c26d55ea526ce7cf9941f081f9aa4f4d54d3e0015bb26a0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a080b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083035ade0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", + "rlp": "0xf90328f9021aa038eaf4f6a8ed4d0e7192f7b38d990fb87884a01b335c095d86c32d29979345bba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08008938c3fded806c9712e70a6ae3e05de8b17bcbf2c0a07568e5908635e5024a0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a080b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083035ade0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", "blockHeader": { - "parentHash": "0xc7e31b35486a2df1b9449f57232c020a1c4f3c1ed6194fb8d05fe7adf3b5e4fb", + "parentHash": "0x38eaf4f6a8ed4d0e7192f7b38d990fb87884a01b335c095d86c32d29979345bb", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xea098b49323b261b9f4c26d55ea526ce7cf9941f081f9aa4f4d54d3e0015bb26", + "stateRoot": "0x8008938c3fded806c9712e70a6ae3e05de8b17bcbf2c0a07568e5908635e5024", "transactionsTrie": "0xf54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2", "receiptTrie": "0x80b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -436,37 +364,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6b93e04fae888c17c5bd309cf2ef504469ed1991ba71359f2d80f46293122ee0" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xc7e31b35486a2df1b9449f57232c020a1c4f3c1ed6194fb8d05fe7adf3b5e4fb", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xea098b49323b261b9f4c26d55ea526ce7cf9941f081f9aa4f4d54d3e0015bb26", - "receiptsRoot": "0x80b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6c", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x35ade", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6b93e04fae888c17c5bd309cf2ef504469ed1991ba71359f2d80f46293122ee0", - "transactions": [ - "0xf881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82", - "0xf881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x60f82eaf863efcdaff0a9c9ebc0933a67176293bd0951e46ba6117abc8807e2b" }, "blocknumber": "1", "transactions": [ @@ -503,39 +401,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x42abda78da4e4cf5006c0e121913074c172ac8ab114cb6fb3efda601a3b51795", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc7e31b35486a2df1b9449f57232c020a1c4f3c1ed6194fb8d05fe7adf3b5e4fb" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a042abda78da4e4cf5006c0e121913074c172ac8ab114cb6fb3efda601a3b51795a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6b93e04fae888c17c5bd309cf2ef504469ed1991ba71359f2d80f46293122ee0", - "network": "Cancun", + "lastblockhash": "0x60f82eaf863efcdaff0a9c9ebc0933a67176293bd0951e46ba6117abc8807e2b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -576,14 +443,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186a0", @@ -628,20 +487,42 @@ }, "sealEngine": "NoProof" }, - "003-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_to_self-create_opcode=CREATE2": { + "003-fork=Shanghai-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_to_self-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06ef9b57e4addce5b5e48e7c5b649dd2f012ec4bc8e4d3617c8157d09abb7b988a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6ef9b57e4addce5b5e48e7c5b649dd2f012ec4bc8e4d3617c8157d09abb7b988", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x0a6167db4724d78d2fdb78c9b9f03d3596bef05c450739343a83b3ce28a1552e" + }, "blocks": [ { - "rlp": "0xf9034bf9023da0d96efaa64f7874c4ab0e0efc97bed9264bba5acebafc1fbfc83ad78f8b98aa81a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c789249eaf094a25bdf93d278c3a31b7428e5e66d3c9449d155c6f6254da2932a0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a0dc64022b7a2a1510603b9a39a32dd6be99ebf0eba85203b31161473e82d353a5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303771a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", + "rlp": "0xf90328f9021aa00a6167db4724d78d2fdb78c9b9f03d3596bef05c450739343a83b3ce28a1552ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06ce67015ca5e26122d6b78bf1105220672f2caaa061d3a1797ccf5bee1f203e1a0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a0dc64022b7a2a1510603b9a39a32dd6be99ebf0eba85203b31161473e82d353a5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303771a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", "blockHeader": { - "parentHash": "0xd96efaa64f7874c4ab0e0efc97bed9264bba5acebafc1fbfc83ad78f8b98aa81", + "parentHash": "0x0a6167db4724d78d2fdb78c9b9f03d3596bef05c450739343a83b3ce28a1552e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc789249eaf094a25bdf93d278c3a31b7428e5e66d3c9449d155c6f6254da2932", + "stateRoot": "0x6ce67015ca5e26122d6b78bf1105220672f2caaa061d3a1797ccf5bee1f203e1", "transactionsTrie": "0xf54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2", "receiptTrie": "0xdc64022b7a2a1510603b9a39a32dd6be99ebf0eba85203b31161473e82d353a5", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -655,37 +536,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x62c57d34c8b53d9c108704b47af97d6b193e43dc1933970da7c34e5a20300ca4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd96efaa64f7874c4ab0e0efc97bed9264bba5acebafc1fbfc83ad78f8b98aa81", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc789249eaf094a25bdf93d278c3a31b7428e5e66d3c9449d155c6f6254da2932", - "receiptsRoot": "0xdc64022b7a2a1510603b9a39a32dd6be99ebf0eba85203b31161473e82d353a5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3771a", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x62c57d34c8b53d9c108704b47af97d6b193e43dc1933970da7c34e5a20300ca4", - "transactions": [ - "0xf881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82", - "0xf881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xbd0ca8fc97cd0883114cf442f5cee7b8802399fca60bb969675430a2489ed679" }, "blocknumber": "1", "transactions": [ @@ -722,39 +573,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa375745aae9202dd05468f6671cfdeddc7d833d35efa0e2c2121532edc3eb7f0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd96efaa64f7874c4ab0e0efc97bed9264bba5acebafc1fbfc83ad78f8b98aa81" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a375745aae9202dd05468f6671cfdeddc7d833d35efa0e2c2121532edc3eb7f0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x62c57d34c8b53d9c108704b47af97d6b193e43dc1933970da7c34e5a20300ca4", - "network": "Cancun", + "lastblockhash": "0xbd0ca8fc97cd0883114cf442f5cee7b8802399fca60bb969675430a2489ed679", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -795,20 +615,768 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", "balance": "0x00", - "code": "0x", + "code": "0x61001d600081600b8239f360015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", + "storage": {} + }, + "0x075e78bcfb29a4ab0c172526cb021371e466eb7d": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", "storage": { - "0x0c": "0x0c" + "0x00": "0x01" } }, - "0x000000000000000000000000000000000000abcd": { + "0x1111111111111111111111111111111111111111": { "nonce": "0x00", - "balance": "0x00", - "code": "0x61001d600081600b8239f360015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", + "balance": "0x0186a0", + "code": "0x60015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", "storage": {} }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0a654e", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x60286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600035556000600060006000600073f0ad0f48126483f2a69cdb5d8ce7871e4ef020cc45f100", + "storage": { + "0x00": "0xf0ad0f48126483f2a69cdb5d8ce7871e4ef020cc", + "0x01": "0xf0ad0f48126483f2a69cdb5d8ce7871e4ef020cc" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x056bc75e2d62ed58fc", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_other_address-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dd5ab6557fa8a8335dc480e6aadbf84545187ac3e3b1d174c2fdbebe96b377cca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdd5ab6557fa8a8335dc480e6aadbf84545187ac3e3b1d174c2fdbebe96b377cc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe59b470b3bf60e81b93c843eb1e07efed81529ef7704e52e4c90de7191acf98c" + }, + "blocks": [ + { + "rlp": "0xf9034bf9023da0e59b470b3bf60e81b93c843eb1e07efed81529ef7704e52e4c90de7191acf98ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09eb1f2551b8b7cb7e9df659bd75306222271c2ea759e2840c84646559561dee2a0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a080b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083035ade0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", + "blockHeader": { + "parentHash": "0xe59b470b3bf60e81b93c843eb1e07efed81529ef7704e52e4c90de7191acf98c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9eb1f2551b8b7cb7e9df659bd75306222271c2ea759e2840c84646559561dee2", + "transactionsTrie": "0xf54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2", + "receiptTrie": "0x80b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x035ade", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc1ee33ab1559c1bbf0da10fc276f99efb178ce3c42755df73ca22768c9ced0d4" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "v": "0x1c", + "r": "0x4bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44", + "s": "0x1b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x1c", + "r": "0x37fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465", + "s": "0x02c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc1ee33ab1559c1bbf0da10fc276f99efb178ce3c42755df73ca22768c9ced0d4", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f560003555600060006000600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f100", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0a109a", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f560003555600060006000600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f100", + "storage": { + "0x00": "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0", + "0x01": "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x056bc75e2d62ee7354", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=0-selfdestruct_to_self-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0dadcb5ef2e7063ae5efbe761a22deda942c260d9a20e89e6ccc55800c1c8895ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdadcb5ef2e7063ae5efbe761a22deda942c260d9a20e89e6ccc55800c1c8895b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9fea3f8040dfa28c3b8e700712d228c5a31aca0605b3a57ed046c7b5fc25648d" + }, + "blocks": [ + { + "rlp": "0xf9034bf9023da09fea3f8040dfa28c3b8e700712d228c5a31aca0605b3a57ed046c7b5fc25648da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d70de272aa62a045431fd862e834afdf8a57a75f47df71e8454ea1f9263b9b63a0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a0dc64022b7a2a1510603b9a39a32dd6be99ebf0eba85203b31161473e82d353a5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303771a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", + "blockHeader": { + "parentHash": "0x9fea3f8040dfa28c3b8e700712d228c5a31aca0605b3a57ed046c7b5fc25648d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd70de272aa62a045431fd862e834afdf8a57a75f47df71e8454ea1f9263b9b63", + "transactionsTrie": "0xf54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2", + "receiptTrie": "0xdc64022b7a2a1510603b9a39a32dd6be99ebf0eba85203b31161473e82d353a5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03771a", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d239a8bf4b11c651d021cef5b769ba550b78019eb64206cd70ebac90d31e7ec" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "v": "0x1c", + "r": "0x4bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44", + "s": "0x1b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x1c", + "r": "0x37fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465", + "s": "0x02c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1d239a8bf4b11c651d021cef5b769ba550b78019eb64206cd70ebac90d31e7ec", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x075e78bcfb29a4ab0c172526cb021371e466eb7d": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600035556000600060006000600073f0ad0f48126483f2a69cdb5d8ce7871e4ef020cc45f100", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x075e78bcfb29a4ab0c172526cb021371e466eb7d": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0a654e", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x60286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600035556000600060006000600073f0ad0f48126483f2a69cdb5d8ce7871e4ef020cc45f100", + "storage": { + "0x00": "0xf0ad0f48126483f2a69cdb5d8ce7871e4ef020cc", + "0x01": "0xf0ad0f48126483f2a69cdb5d8ce7871e4ef020cc" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x056bc75e2d62ed58fc", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_other_address-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bb8268b6c3e198e0aa2ec622f101ff4045ffc40fbdac393321fdfab3317ae986a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbb8268b6c3e198e0aa2ec622f101ff4045ffc40fbdac393321fdfab3317ae986", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8f59e9a962f636d42930a66cc825894d9a07b1baf7c119c26c59fa8182f9d042" + }, + "blocks": [ + { + "rlp": "0xf9034bf9023da08f59e9a962f636d42930a66cc825894d9a07b1baf7c119c26c59fa8182f9d042a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa042b212c4c1ade3ed9e8af742eb7106c6bf80d9b1b615f8beaa43ed66d250141fa0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a080b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083035ade0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", + "blockHeader": { + "parentHash": "0x8f59e9a962f636d42930a66cc825894d9a07b1baf7c119c26c59fa8182f9d042", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x42b212c4c1ade3ed9e8af742eb7106c6bf80d9b1b615f8beaa43ed66d250141f", + "transactionsTrie": "0xf54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2", + "receiptTrie": "0x80b7ce75123ea06232b57cbc81ace559d34e96431baa289f296bbfe76db05d6c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x035ade", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x83e11d3cb0b557566538fb2305ba8bee1e0d3f2793ba95471c766221e264763f" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "v": "0x1c", + "r": "0x4bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44", + "s": "0x1b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x1c", + "r": "0x37fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465", + "s": "0x02c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x83e11d3cb0b557566538fb2305ba8bee1e0d3f2793ba95471c766221e264763f", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f560003555600060006000600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f100", + "storage": {} + }, + "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0a109a", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x60166000600073000000000000000000000000000000000000abcd3c6000601660006000f560003555600060006000600060007387e53d1f25b26d6ee788fa5c285399c1c822f5b045f100", + "storage": { + "0x00": "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0", + "0x01": "0x87e53d1f25b26d6ee788fa5c285399c1c822f5b0" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x056bc75e2d62ee7354", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Cancun-call_times=1-recreate_times=1-selfdestruct_contract_initial_balance=100000-selfdestruct_to_self-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ae4c02a7c4ca7890b4c9595b3d096aa8843d3ebf7c5bad96a2b5ee08753f20bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xae4c02a7c4ca7890b4c9595b3d096aa8843d3ebf7c5bad96a2b5ee08753f20bc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x459ba7ea7791e73b5eac11e964ab5006739d99c7426f0dc94acf6e992a31a91c" + }, + "blocks": [ + { + "rlp": "0xf9034bf9023da0459ba7ea7791e73b5eac11e964ab5006739d99c7426f0dc94acf6e992a31a91ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02feff8f8a3f59788eff177df5da38636e591c0a9027a574ae3c7e87b3f261132a0f54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2a0dc64022b7a2a1510603b9a39a32dd6be99ebf0eba85203b31161473e82d353a5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303771a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90106f881800a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000001ca04bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44a01b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82f881010a8405f5e100946295ee1b4f6dd65047762f924ecd367c17eabf8f80a000000000000000000000000000000000000000000000000000000000000000011ca037fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465a002c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21c0c0", + "blockHeader": { + "parentHash": "0x459ba7ea7791e73b5eac11e964ab5006739d99c7426f0dc94acf6e992a31a91c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2feff8f8a3f59788eff177df5da38636e591c0a9027a574ae3c7e87b3f261132", + "transactionsTrie": "0xf54c6281c8eb820096bfb215afb0979620c7ef3bab5c8c4439f15e3b473b6da2", + "receiptTrie": "0xdc64022b7a2a1510603b9a39a32dd6be99ebf0eba85203b31161473e82d353a5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03771a", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x170fe6d1b155d999e35f17abb8418d67e88d83c763f4fd6270f0b4cf22ed7d41" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000000", + "v": "0x1c", + "r": "0x4bf11f05f8aa89d9cfa571fd980dd2a87d91b5eee4c9d78a9fb2a5a6067e9b44", + "s": "0x1b4fc0bbbafb4510349f9c82bd883b8c967cb3e7d94415cc5f0286b19ff9ba82", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "v": "0x1c", + "r": "0x37fc00dc08e25de81d2f2e570522a65306d8e704229eb18630ddbd5bd089c465", + "s": "0x02c11b3b6c5a109bc3cf6fc166c6dc6409682d342239c066ec915d8d93eb3e21", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x170fe6d1b155d999e35f17abb8418d67e88d83c763f4fd6270f0b4cf22ed7d41", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x075e78bcfb29a4ab0c172526cb021371e466eb7d": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60286000600073000000000000000000000000000000000000abcd3c6000602860006000f5600035556000600060006000600073f0ad0f48126483f2a69cdb5d8ce7871e4ef020cc45f100", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + }, + "0xf0ad0f48126483f2a69cdb5d8ce7871e4ef020cc": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f5573075e78bcfb29a4ab0c172526cb021371e466eb7dff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x075e78bcfb29a4ab0c172526cb021371e466eb7d": { "nonce": "0x00", "balance": "0x0186a0", diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json index f4455fe5c2e..6fad5ce6bdb 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode.json @@ -1,18 +1,40 @@ { - "000-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE": { + "000-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a068b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x68b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78" + }, "blocks": [ { - "rlp": "0xf902f6f9023fa01ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a9ce940ee90d769570fdfa2ca0e427fb8b40c0ba37c2d39291abfd8a3ec2c97aa0f638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060fa03f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8b0f8ae800a8405f5e10080830186a0b85d600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f31ba013869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcfa04cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087c0c0", + "rlp": "0xf902d3f9021ca02c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa008ea32d239c8570b353e51d5322706df79e5d6afc6eceaa690df1e9ea3549db9a0f638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060fa03f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8b0f8ae800a8405f5e10080830186a0b85d600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f31ba013869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcfa04cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087c0c0", "blockHeader": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", + "parentHash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa9ce940ee90d769570fdfa2ca0e427fb8b40c0ba37c2d39291abfd8a3ec2c97a", + "stateRoot": "0x08ea32d239c8570b353e51d5322706df79e5d6afc6eceaa690df1e9ea3549db9", "transactionsTrie": "0xf638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060f", "receiptTrie": "0x3f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -26,36 +48,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7b0432c1c4173f80347be3ffc3dcae4456d72f021cef7843df7b74042cb10ec1" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa9ce940ee90d769570fdfa2ca0e427fb8b40c0ba37c2d39291abfd8a3ec2c97a", - "receiptsRoot": "0x3f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28608", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7b0432c1c4173f80347be3ffc3dcae4456d72f021cef7843df7b74042cb10ec1", - "transactions": [ - "0xf8ae800a8405f5e10080830186a0b85d600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f31ba013869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcfa04cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x54702b4b5559f63146d68045d756ab4ed3a29873550e834549455638a98a9150" }, "transactions": [ { @@ -77,39 +70,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7b0432c1c4173f80347be3ffc3dcae4456d72f021cef7843df7b74042cb10ec1", - "network": "Cancun", + "lastblockhash": "0x54702b4b5559f63146d68045d756ab4ed3a29873550e834549455638a98a9150", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -138,14 +100,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -190,20 +144,42 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE2": { + "001-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a068b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x68b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78" + }, "blocks": [ { - "rlp": "0xf902f8f9023fa01ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07f99ded29f079c5eff78c64241ec6f05647b028ce5dcbcdc724761d8bf8548b3a09e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048a0340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286258203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8b2f8b0800a8405f5e10080830186a0b85f600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f31ca023f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3a0178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1c0c0", + "rlp": "0xf902d5f9021ca02c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e02589f8535734b1a7d17dadcfe642650dbd4d8cbd082fb07dabd860b6953d3ca09e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048a0340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286258203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8b2f8b0800a8405f5e10080830186a0b85f600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f31ca023f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3a0178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1c0c0", "blockHeader": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", + "parentHash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7f99ded29f079c5eff78c64241ec6f05647b028ce5dcbcdc724761d8bf8548b3", + "stateRoot": "0xe02589f8535734b1a7d17dadcfe642650dbd4d8cbd082fb07dabd860b6953d3c", "transactionsTrie": "0x9e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048", "receiptTrie": "0x340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -217,36 +193,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc04ab1c71be9891c897c5925af15cbceae50eadc630b65315e422233354e4bd8" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7f99ded29f079c5eff78c64241ec6f05647b028ce5dcbcdc724761d8bf8548b3", - "receiptsRoot": "0x340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28625", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc04ab1c71be9891c897c5925af15cbceae50eadc630b65315e422233354e4bd8", - "transactions": [ - "0xf8b0800a8405f5e10080830186a0b85f600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f31ca023f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3a0178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x473ea11f2e410822a0b89bf67e54a9000c7976cf45aaa87f52f8a796b84bc275" }, "transactions": [ { @@ -268,39 +215,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc04ab1c71be9891c897c5925af15cbceae50eadc630b65315e422233354e4bd8", - "network": "Cancun", + "lastblockhash": "0x473ea11f2e410822a0b89bf67e54a9000c7976cf45aaa87f52f8a796b84bc275", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -329,14 +245,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -381,20 +289,42 @@ }, "sealEngine": "NoProof" }, - "002-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE": { + "002-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a068b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x68b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78" + }, "blocks": [ { - "rlp": "0xf90333f9023fa01ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07fb74af7f7e41a2ad9aa5c291dc89cca0ac2a03bb279644b4a8c8fe5d49f56cba0542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358aea0dabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e9718203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8edf8eb800a8405f5e10080830186a0b89a600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f31ba0815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47ca04eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3ac0c0", + "rlp": "0xf90310f9021ca02c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f98af337f3db5f20391bb7b0f9ee1946b106b2ea48bd02bed0ac36a741f9851fa0542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358aea0dabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e9718203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8edf8eb800a8405f5e10080830186a0b89a600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f31ba0815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47ca04eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3ac0c0", "blockHeader": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", + "parentHash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7fb74af7f7e41a2ad9aa5c291dc89cca0ac2a03bb279644b4a8c8fe5d49f56cb", + "stateRoot": "0xf98af337f3db5f20391bb7b0f9ee1946b106b2ea48bd02bed0ac36a741f9851f", "transactionsTrie": "0x542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358ae", "receiptTrie": "0xdabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -408,36 +338,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x83b0ec3f8da11be9c5fa1caa9c69b87e257fe52d1ea6b108b67628a104c19a6d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7fb74af7f7e41a2ad9aa5c291dc89cca0ac2a03bb279644b4a8c8fe5d49f56cb", - "receiptsRoot": "0xdabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2e971", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x83b0ec3f8da11be9c5fa1caa9c69b87e257fe52d1ea6b108b67628a104c19a6d", - "transactions": [ - "0xf8eb800a8405f5e10080830186a0b89a600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f31ba0815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47ca04eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x9e659fe4451e963bc1920ed7da7e7145e6ae74359fea53070017f17e70e7dbc6" }, "transactions": [ { @@ -459,39 +360,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x83b0ec3f8da11be9c5fa1caa9c69b87e257fe52d1ea6b108b67628a104c19a6d", - "network": "Cancun", + "lastblockhash": "0x9e659fe4451e963bc1920ed7da7e7145e6ae74359fea53070017f17e70e7dbc6", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -520,14 +390,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -573,20 +435,42 @@ }, "sealEngine": "NoProof" }, - "003-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE2": { + "003-fork=Shanghai--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a068b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x68b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78" + }, "blocks": [ { - "rlp": "0xf90335f9023fa01ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05eb60df015c5c27cc4211882f226a119d95662cfd582a603cf472efe127c2ec9a041b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8a003b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e98e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8eff8ed800a8405f5e10080830186a0b89c600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f31ca02e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16aa04ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2ac0c0", + "rlp": "0xf90312f9021ca02c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02d22204ca79f3a08617afca434b325c209adaa2ed8a97011a215e333c67bd9bea041b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8a003b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e98e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8eff8ed800a8405f5e10080830186a0b89c600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f31ca02e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16aa04ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2ac0c0", "blockHeader": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", + "parentHash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5eb60df015c5c27cc4211882f226a119d95662cfd582a603cf472efe127c2ec9", + "stateRoot": "0x2d22204ca79f3a08617afca434b325c209adaa2ed8a97011a215e333c67bd9be", "transactionsTrie": "0x41b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8", "receiptTrie": "0x03b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -600,36 +484,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xaf7d845de401c4502e593b6cbf581aaaeec40475c94e79bad52402ab838c5ce7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5eb60df015c5c27cc4211882f226a119d95662cfd582a603cf472efe127c2ec9", - "receiptsRoot": "0x03b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2e98e", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xaf7d845de401c4502e593b6cbf581aaaeec40475c94e79bad52402ab838c5ce7", - "transactions": [ - "0xf8ed800a8405f5e10080830186a0b89c600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f31ca02e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16aa04ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xeab8300c37ef44316512d6b0f03f93def349d0501067bbf95b97f8f498448eb2" }, "transactions": [ { @@ -651,39 +506,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xaf7d845de401c4502e593b6cbf581aaaeec40475c94e79bad52402ab838c5ce7", - "network": "Cancun", + "lastblockhash": "0xeab8300c37ef44316512d6b0f03f93def349d0501067bbf95b97f8f498448eb2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -712,14 +536,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -765,20 +581,42 @@ }, "sealEngine": "NoProof" }, - "004-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE": { + "004-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cdc4dd23db0e9e792ec26dfa453a75169db029c4439c1ecb8aae3c10d8628ba6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcdc4dd23db0e9e792ec26dfa453a75169db029c4439c1ecb8aae3c10d8628ba6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1dd99b61b10971b8689588b1316b913fbf69ee0e7e3a766e229fcf99452c4f3b" + }, "blocks": [ { - "rlp": "0xf902f6f9023fa0560d2d8a428cde9db4f449d924912d278595672683d00d413c50158853ef53e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bc818a45b8594bdf3761d478619979cf2d249ebdf02929029446f9feda638c00a0f638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060fa03f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8b0f8ae800a8405f5e10080830186a0b85d600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f31ba013869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcfa04cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087c0c0", + "rlp": "0xf902d3f9021ca01dd99b61b10971b8689588b1316b913fbf69ee0e7e3a766e229fcf99452c4f3ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ebb1e87d0a7564bd061dee5177b96ca50c11150fd26d7cd19aafc06c9c35d6d3a0f638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060fa03f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8b0f8ae800a8405f5e10080830186a0b85d600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f31ba013869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcfa04cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087c0c0", "blockHeader": { - "parentHash": "0x560d2d8a428cde9db4f449d924912d278595672683d00d413c50158853ef53e5", + "parentHash": "0x1dd99b61b10971b8689588b1316b913fbf69ee0e7e3a766e229fcf99452c4f3b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbc818a45b8594bdf3761d478619979cf2d249ebdf02929029446f9feda638c00", + "stateRoot": "0xebb1e87d0a7564bd061dee5177b96ca50c11150fd26d7cd19aafc06c9c35d6d3", "transactionsTrie": "0xf638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060f", "receiptTrie": "0x3f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -792,36 +630,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x02620877dce467c3bc845ef84e9e13a10140139476026d0a0996b35e15373645" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x560d2d8a428cde9db4f449d924912d278595672683d00d413c50158853ef53e5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbc818a45b8594bdf3761d478619979cf2d249ebdf02929029446f9feda638c00", - "receiptsRoot": "0x3f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28608", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x02620877dce467c3bc845ef84e9e13a10140139476026d0a0996b35e15373645", - "transactions": [ - "0xf8ae800a8405f5e10080830186a0b85d600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f31ba013869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcfa04cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xf9b1843e4a33c564440f2e133f5ff2058e1bd2f3c5a50c202a664a6e2efc8581" }, "transactions": [ { @@ -843,17 +652,1056 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x73b7b72fc342a55af74c06d396c31636028abab085e2f5ff5847f3f19557cf94", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", + "lastblockhash": "0xf9b1843e4a33c564440f2e133f5ff2058e1bd2f3c5a50c202a664a6e2efc8581", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x079218", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x02": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f53d10", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a017d0d37c9a11d988102ce1b71f97f22756e1727247020fdef13fee9f9dc78baca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x17d0d37c9a11d988102ce1b71f97f22756e1727247020fdef13fee9f9dc78bac", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x0d2ab4b3cb61656d8a7742d9bb612af34ebb117add087dd9298747db57737cbc" + }, + "blocks": [ + { + "rlp": "0xf902d5f9021ca00d2ab4b3cb61656d8a7742d9bb612af34ebb117add087dd9298747db57737cbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e2878794573184f5f8c0cbcd35643c20c8abb8e417b7cc162b9ad3dbe5f6c613a09e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048a0340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286258203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8b2f8b0800a8405f5e10080830186a0b85f600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f31ca023f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3a0178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1c0c0", + "blockHeader": { + "parentHash": "0x0d2ab4b3cb61656d8a7742d9bb612af34ebb117add087dd9298747db57737cbc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe2878794573184f5f8c0cbcd35643c20c8abb8e417b7cc162b9ad3dbe5f6c613", + "transactionsTrie": "0x9e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048", + "receiptTrie": "0x340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028625", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xd7ee631bb66bfac796d8243fce5367a91d0e4a9d17403867eccfdd5613311b0a" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f3", + "v": "0x1c", + "r": "0x23f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3", + "s": "0x178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xd7ee631bb66bfac796d8243fce5367a91d0e4a9d17403867eccfdd5613311b0a", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + }, + "0xc6867b20ce1edf3f2ba09319cd060ad96357f7fc": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07926f", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0xc6867b20ce1edf3f2ba09319cd060ad96357f7fc", + "0x02": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f53bee", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cdc4dd23db0e9e792ec26dfa453a75169db029c4439c1ecb8aae3c10d8628ba6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcdc4dd23db0e9e792ec26dfa453a75169db029c4439c1ecb8aae3c10d8628ba6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1dd99b61b10971b8689588b1316b913fbf69ee0e7e3a766e229fcf99452c4f3b" + }, + "blocks": [ + { + "rlp": "0xf90310f9021ca01dd99b61b10971b8689588b1316b913fbf69ee0e7e3a766e229fcf99452c4f3ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01704809b1fc2d8fc608aaeff5677f87dcbe4b6c54a87a9ae497eb19e66ea6fa4a0542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358aea0dabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e9718203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8edf8eb800a8405f5e10080830186a0b89a600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f31ba0815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47ca04eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3ac0c0", + "blockHeader": { + "parentHash": "0x1dd99b61b10971b8689588b1316b913fbf69ee0e7e3a766e229fcf99452c4f3b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1704809b1fc2d8fc608aaeff5677f87dcbe4b6c54a87a9ae497eb19e66ea6fa4", + "transactionsTrie": "0x542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358ae", + "receiptTrie": "0xdabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02e971", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xf4392618bba4461fecfabc0b8fb3b3ece1f8f07d54123f9dafe77a439292af4b" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f3", + "v": "0x1b", + "r": "0x815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47c", + "s": "0x4eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf4392618bba4461fecfabc0b8fb3b3ece1f8f07d54123f9dafe77a439292af4b", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x08bc53", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x02": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "0x03": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f15af6", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Shanghai--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a017d0d37c9a11d988102ce1b71f97f22756e1727247020fdef13fee9f9dc78baca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x17d0d37c9a11d988102ce1b71f97f22756e1727247020fdef13fee9f9dc78bac", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x0d2ab4b3cb61656d8a7742d9bb612af34ebb117add087dd9298747db57737cbc" + }, + "blocks": [ + { + "rlp": "0xf90312f9021ca00d2ab4b3cb61656d8a7742d9bb612af34ebb117add087dd9298747db57737cbca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04c3604aaf45215740febd0bb66efe01bb9dd4f7e7820f853153d6ee5033ee9d2a041b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8a003b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e98e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8eff8ed800a8405f5e10080830186a0b89c600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f31ca02e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16aa04ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2ac0c0", + "blockHeader": { + "parentHash": "0x0d2ab4b3cb61656d8a7742d9bb612af34ebb117add087dd9298747db57737cbc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4c3604aaf45215740febd0bb66efe01bb9dd4f7e7820f853153d6ee5033ee9d2", + "transactionsTrie": "0x41b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8", + "receiptTrie": "0x03b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02e98e", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4280b417449f957f64a2f6b30e17cf22ee54b2825ef33c965bb29c8881bbe7fd" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f3", + "v": "0x1c", + "r": "0x2e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16a", + "s": "0x4ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x4280b417449f957f64a2f6b30e17cf22ee54b2825ef33c965bb29c8881bbe7fd", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + }, + "0xc6867b20ce1edf3f2ba09319cd060ad96357f7fc": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x08bcaa", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0xc6867b20ce1edf3f2ba09319cd060ad96357f7fc", + "0x02": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "0x03": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f159d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c" + }, + "blocks": [ + { + "rlp": "0xf902f6f9023fa0341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08e07858d4acad43d89d1cbb3c1b8c358a43307c1c916a66960e6bf0657b0f609a0f638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060fa03f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8b0f8ae800a8405f5e10080830186a0b85d600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f31ba013869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcfa04cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087c0c0", + "blockHeader": { + "parentHash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8e07858d4acad43d89d1cbb3c1b8c358a43307c1c916a66960e6bf0657b0f609", + "transactionsTrie": "0xf638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060f", + "receiptTrie": "0x3f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028608", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5a8667859326f3acafcd7ec0a816a376086df62e4972c162f2920a444a5cf631" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f3", + "v": "0x1b", + "r": "0x13869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcf", + "s": "0x4cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5a8667859326f3acafcd7ec0a816a376086df62e4972c162f2920a444a5cf631", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x079218", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x02": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f53d10", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "009-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=0-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c" + }, + "blocks": [ + { + "rlp": "0xf902f8f9023fa0341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a2d3fc9a49f3c217fff9ddcf07c68228da8d8a4e1af3bf9a33ad0a6a0ca23f40a09e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048a0340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286258203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8b2f8b0800a8405f5e10080830186a0b85f600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f31ca023f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3a0178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1c0c0", + "blockHeader": { + "parentHash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa2d3fc9a49f3c217fff9ddcf07c68228da8d8a4e1af3bf9a33ad0a6a0ca23f40", + "transactionsTrie": "0x9e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048", + "receiptTrie": "0x340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028625", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x369c414b03dddad285bfd1870d9fb5afa93be960ca8f2a6020c328617c4dfccb" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f3", + "v": "0x1c", + "r": "0x23f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3", + "s": "0x178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x369c414b03dddad285bfd1870d9fb5afa93be960ca8f2a6020c328617c4dfccb", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07926f", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0xc6867b20ce1edf3f2ba09319cd060ad96357f7fc", + "0x02": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f53bee", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "010-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c" + }, + "blocks": [ + { + "rlp": "0xf90333f9023fa0341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa034a7a8e4c5964e308d98c9754eb543cfbf59224a733a569d6b256253692678e9a0542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358aea0dabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e9718203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8edf8eb800a8405f5e10080830186a0b89a600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f31ba0815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47ca04eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3ac0c0", + "blockHeader": { + "parentHash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x34a7a8e4c5964e308d98c9754eb543cfbf59224a733a569d6b256253692678e9", + "transactionsTrie": "0x542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358ae", + "receiptTrie": "0xdabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02e971", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe749bfdd3e3023e7f67548b03c7c6a1d1ddd869a9ba79760b10895c01dc9c3d8" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f3", + "v": "0x1b", + "r": "0x815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47c", + "s": "0x4eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe749bfdd3e3023e7f67548b03c7c6a1d1ddd869a9ba79760b10895c01dc9c3d8", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x08bc53", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6", + "0x02": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "0x03": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f15af6", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "011-fork=Cancun--selfdestruct_contract_initial_balance=0-call_times=1-create_opcode=CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", "gasUsed": "0x00", "timestamp": "0x00", "extraData": "0x00", @@ -864,18 +1712,222 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x560d2d8a428cde9db4f449d924912d278595672683d00d413c50158853ef53e5" + "hash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c" + }, + "blocks": [ + { + "rlp": "0xf90335f9023fa0341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0529c76960a62e271739d7fde29db1e6f46afa7782ed5befc4edc0a8ca183d20fa041b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8a003b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e98e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8eff8ed800a8405f5e10080830186a0b89c600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f31ca02e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16aa04ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2ac0c0", + "blockHeader": { + "parentHash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x529c76960a62e271739d7fde29db1e6f46afa7782ed5befc4edc0a8ca183d20f", + "transactionsTrie": "0x41b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8", + "receiptTrie": "0x03b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02e98e", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x447943e60cbf5f777d101ac1056cd162b9849a778879b3b7580864db82c18d68" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f3", + "v": "0x1c", + "r": "0x2e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16a", + "s": "0x4ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x447943e60cbf5f777d101ac1056cd162b9849a778879b3b7580864db82c18d68", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x08bcaa", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0xc6867b20ce1edf3f2ba09319cd060ad96357f7fc", + "0x02": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "0x03": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f159d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "012-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a073b7b72fc342a55af74c06d396c31636028abab085e2f5ff5847f3f19557cf94a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x02620877dce467c3bc845ef84e9e13a10140139476026d0a0996b35e15373645", "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02b05b65efc42dbb52049aeaee91698767c380a69f5567c35b01fc366f4692f2aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2b05b65efc42dbb52049aeaee91698767c380a69f5567c35b01fc366f4692f2a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa953f1ad265d89c842254fdcbd1d18763380faa636ac3d8cb9bdcd0eb59a7736" + }, + "blocks": [ + { + "rlp": "0xf902f6f9023fa0a953f1ad265d89c842254fdcbd1d18763380faa636ac3d8cb9bdcd0eb59a7736a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cc185328035d02d46f005b7c0681d4defa3697e2989b2bbdc258d39db33c4350a0f638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060fa03f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8b0f8ae800a8405f5e10080830186a0b85d600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f31ba013869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcfa04cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087c0c0", + "blockHeader": { + "parentHash": "0xa953f1ad265d89c842254fdcbd1d18763380faa636ac3d8cb9bdcd0eb59a7736", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcc185328035d02d46f005b7c0681d4defa3697e2989b2bbdc258d39db33c4350", + "transactionsTrie": "0xf638399608b88b24a20bcb2a6be964cd6d96ead72630d57fd1a2f7634d1b060f", + "receiptTrie": "0x3f7e987eb3e009526ee56fe294484f068446ccdc52962092fd523ee4a35fc654", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x028608", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8b458dcedf031bafa6afeb0c20cbfdea325c8025adff6d549bca7c28de6a56a1" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f60025560016020f3", + "v": "0x1b", + "r": "0x13869e1024075f6a670c3aeb4aeb8de66b9fd6cfb5ca7b2d5bcbdc907178efcf", + "s": "0x4cc4acfead0a351a2789a00432e69726e68f7ad4ab9e5ec28683f187a1422087", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8b458dcedf031bafa6afeb0c20cbfdea325c8025adff6d549bca7c28de6a56a1", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -890,6 +1942,12 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -910,14 +1968,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x0186a0", @@ -932,6 +1982,14 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -962,20 +2020,45 @@ }, "sealEngine": "NoProof" }, - "005-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE2": { + "013-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=0-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01a907c0d18af675c2a1bbeb508e02108c4f1e4f2590aa25e270314f0da2b308ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1a907c0d18af675c2a1bbeb508e02108c4f1e4f2590aa25e270314f0da2b308b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x10da3bc09b565a46b49a62da95de3c909d3d0364e724bd2b5d7841fbe720bf90" + }, "blocks": [ { - "rlp": "0xf902f8f9023fa0378c3c92535c107d16d9875f9117dd17af7baa0173b56977da91b880ad8e3463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eb2cc514baf9959b1b20637d72bb51d7c5ca3ebe7334a22c1f39804f4ffdcd26a09e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048a0340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286258203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8b2f8b0800a8405f5e10080830186a0b85f600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f31ca023f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3a0178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1c0c0", + "rlp": "0xf902f8f9023fa010da3bc09b565a46b49a62da95de3c909d3d0364e724bd2b5d7841fbe720bf90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06d59320334cd6502503c0d5e233a8692dc3495aa7e38ab2c91816bbe5326ce17a09e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048a0340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830286258203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8b2f8b0800a8405f5e10080830186a0b85f600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f31ca023f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3a0178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1c0c0", "blockHeader": { - "parentHash": "0x378c3c92535c107d16d9875f9117dd17af7baa0173b56977da91b880ad8e3463", + "parentHash": "0x10da3bc09b565a46b49a62da95de3c909d3d0364e724bd2b5d7841fbe720bf90", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeb2cc514baf9959b1b20637d72bb51d7c5ca3ebe7334a22c1f39804f4ffdcd26", + "stateRoot": "0x6d59320334cd6502503c0d5e233a8692dc3495aa7e38ab2c91816bbe5326ce17", "transactionsTrie": "0x9e6442546cae1da2addfeb0c6899e7b5e9b44b94d8c9506ab8dc035b8856c048", "receiptTrie": "0x340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -992,33 +2075,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6d456ac7025f9f3a28f68cfb28e68a83c76384be2eb6f7361e7f32c5c0605ee7" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x378c3c92535c107d16d9875f9117dd17af7baa0173b56977da91b880ad8e3463", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xeb2cc514baf9959b1b20637d72bb51d7c5ca3ebe7334a22c1f39804f4ffdcd26", - "receiptsRoot": "0x340f6659cf25343c52999f4595f0d99ab28dd0d57ba4979d1f958a761df86917", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x28625", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x6d456ac7025f9f3a28f68cfb28e68a83c76384be2eb6f7361e7f32c5c0605ee7", - "transactions": [ - "0xf8b0800a8405f5e10080830186a0b85f600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f60025560016020f31ca023f43d04739cff4de5a247a410d2130adc30cb605ab9aef98029484b9c272fc3a0178f3c0eb0b99a392956e08c6d4e4e39f8a1a8a7483c9de72b2632e24c6975a1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x835e55395fffcbcbaebb4d56ac349fb209e0fedf0f5d61f822fde3a1efb209ad" }, "transactions": [ { @@ -1040,39 +2097,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc0bf65b015d1a7597ad5a9a6809346be3f052165d4470e378140493a430196be", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x378c3c92535c107d16d9875f9117dd17af7baa0173b56977da91b880ad8e3463" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c0bf65b015d1a7597ad5a9a6809346be3f052165d4470e378140493a430196bea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x6d456ac7025f9f3a28f68cfb28e68a83c76384be2eb6f7361e7f32c5c0605ee7", - "network": "Cancun", + "lastblockhash": "0x835e55395fffcbcbaebb4d56ac349fb209e0fedf0f5d61f822fde3a1efb209ad", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1087,6 +2113,12 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -1107,14 +2139,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x0186a0", @@ -1129,6 +2153,14 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -1159,20 +2191,45 @@ }, "sealEngine": "NoProof" }, - "006-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE": { + "014-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02b05b65efc42dbb52049aeaee91698767c380a69f5567c35b01fc366f4692f2aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2b05b65efc42dbb52049aeaee91698767c380a69f5567c35b01fc366f4692f2a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa953f1ad265d89c842254fdcbd1d18763380faa636ac3d8cb9bdcd0eb59a7736" + }, "blocks": [ { - "rlp": "0xf90333f9023fa0560d2d8a428cde9db4f449d924912d278595672683d00d413c50158853ef53e5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa008dccff09e231fd1f5e7e58d34699555365867eeeeac6e350ad5c38a2677f417a0542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358aea0dabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e9718203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8edf8eb800a8405f5e10080830186a0b89a600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f31ba0815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47ca04eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3ac0c0", + "rlp": "0xf90333f9023fa0a953f1ad265d89c842254fdcbd1d18763380faa636ac3d8cb9bdcd0eb59a7736a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07ef06834fc16d43409da3750223a98cc77a97b4f091ee20e3e9362aaac56e007a0542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358aea0dabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e9718203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8edf8eb800a8405f5e10080830186a0b89a600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f31ba0815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47ca04eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3ac0c0", "blockHeader": { - "parentHash": "0x560d2d8a428cde9db4f449d924912d278595672683d00d413c50158853ef53e5", + "parentHash": "0xa953f1ad265d89c842254fdcbd1d18763380faa636ac3d8cb9bdcd0eb59a7736", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x08dccff09e231fd1f5e7e58d34699555365867eeeeac6e350ad5c38a2677f417", + "stateRoot": "0x7ef06834fc16d43409da3750223a98cc77a97b4f091ee20e3e9362aaac56e007", "transactionsTrie": "0x542edb8d38e905f40126ee41d531f47d02d48b74eeb485f9260ddea9804358ae", "receiptTrie": "0xdabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1189,33 +2246,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc1eb4b16fc50ba8351bbf8d28d5211a2627e1440198c820c8942d6030d95c898" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x560d2d8a428cde9db4f449d924912d278595672683d00d413c50158853ef53e5", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x08dccff09e231fd1f5e7e58d34699555365867eeeeac6e350ad5c38a2677f417", - "receiptsRoot": "0xdabaaf913a4e7e9c7e1c588923a3023509e1ec6155466f650bce5dcfc32715c3", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2e971", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc1eb4b16fc50ba8351bbf8d28d5211a2627e1440198c820c8942d6030d95c898", - "transactions": [ - "0xf8eb800a8405f5e10080830186a0b89a600b6000600073000000000000000000000000000000000000abcd3c600b60006000f06000557364e2ebd6405af8cb348aec519084d3fff42ebba63b6001557364e2ebd6405af8cb348aec519084d3fff42ebba63f600255600060006000600060007364e2ebd6405af8cb348aec519084d3fff42ebba645f16003557364e2ebd6405af8cb348aec519084d3fff42ebba63160045560016020f31ba0815176a68f29519d364c26b5e3143304007d1b440dde90f021205255e3f5f47ca04eb778f2a4bf71f1e42413b9bdaf76821a86b7e2b62f11af7b10ff0c7ce19f3a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb04ebc1f6815a4f5e4f351c320b03e93270208b04c33e381e1d4dc6a8cef43da" }, "transactions": [ { @@ -1237,39 +2268,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x73b7b72fc342a55af74c06d396c31636028abab085e2f5ff5847f3f19557cf94", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x560d2d8a428cde9db4f449d924912d278595672683d00d413c50158853ef53e5" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a073b7b72fc342a55af74c06d396c31636028abab085e2f5ff5847f3f19557cf94a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc1eb4b16fc50ba8351bbf8d28d5211a2627e1440198c820c8942d6030d95c898", - "network": "Cancun", + "lastblockhash": "0xb04ebc1f6815a4f5e4f351c320b03e93270208b04c33e381e1d4dc6a8cef43da", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1284,6 +2284,12 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -1304,14 +2310,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x0186a0", @@ -1326,6 +2324,14 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -1357,20 +2363,45 @@ }, "sealEngine": "NoProof" }, - "007-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE2": { + "015-fork=Cancun--selfdestruct_contract_initial_balance=100000-call_times=1-create_opcode=CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01a907c0d18af675c2a1bbeb508e02108c4f1e4f2590aa25e270314f0da2b308ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1a907c0d18af675c2a1bbeb508e02108c4f1e4f2590aa25e270314f0da2b308b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x10da3bc09b565a46b49a62da95de3c909d3d0364e724bd2b5d7841fbe720bf90" + }, "blocks": [ { - "rlp": "0xf90335f9023fa0378c3c92535c107d16d9875f9117dd17af7baa0173b56977da91b880ad8e3463a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c03cc89fe4414b8871144062ad4b9ac42026cb76607bfba900455f49d4d5cd3ca041b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8a003b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e98e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8eff8ed800a8405f5e10080830186a0b89c600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f31ca02e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16aa04ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2ac0c0", + "rlp": "0xf90335f9023fa010da3bc09b565a46b49a62da95de3c909d3d0364e724bd2b5d7841fbe720bf90a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa012eb7b616a7398b4a4f724b8c6ad7fe303e36c71a4f446543e28744b98b7401aa041b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8a003b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302e98e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8eff8ed800a8405f5e10080830186a0b89c600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f31ca02e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16aa04ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2ac0c0", "blockHeader": { - "parentHash": "0x378c3c92535c107d16d9875f9117dd17af7baa0173b56977da91b880ad8e3463", + "parentHash": "0x10da3bc09b565a46b49a62da95de3c909d3d0364e724bd2b5d7841fbe720bf90", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc03cc89fe4414b8871144062ad4b9ac42026cb76607bfba900455f49d4d5cd3c", + "stateRoot": "0x12eb7b616a7398b4a4f724b8c6ad7fe303e36c71a4f446543e28744b98b7401a", "transactionsTrie": "0x41b56f7e38a77ab4a345c40ce860453f077e14ea2474667e8f8aba1cb1ccd1f8", "receiptTrie": "0x03b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1387,33 +2418,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf65b34473cea8d200bf9bc2dc3548a0dfd44df818e4be4d1677e49264dd9be9e" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x378c3c92535c107d16d9875f9117dd17af7baa0173b56977da91b880ad8e3463", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc03cc89fe4414b8871144062ad4b9ac42026cb76607bfba900455f49d4d5cd3c", - "receiptsRoot": "0x03b53735e7963de60cb55b6e0f6e829c2f3a677f57d7dc309a5138c73e7f4525", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2e98e", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf65b34473cea8d200bf9bc2dc3548a0dfd44df818e4be4d1677e49264dd9be9e", - "transactions": [ - "0xf8ed800a8405f5e10080830186a0b89c600b6000600073000000000000000000000000000000000000abcd3c6000600b60006000f560005573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3b60015573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3f6002556000600060006000600073c6867b20ce1edf3f2ba09319cd060ad96357f7fc45f160035573c6867b20ce1edf3f2ba09319cd060ad96357f7fc3160045560016020f31ca02e68949a1f3ae1a6cbbeacacb137e4995c3aa2e18dcb5553af4d8bad1c9dc16aa04ba03f8baa55da613f73efba0f4c062c5bfae272cdd4fdef4bb76c9d05d7fe2a" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd1fadc551b47d4e15a232f9aa7268ee32465dffff450b4db97da7b1b07ebdb4a" }, "transactions": [ { @@ -1435,39 +2440,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc0bf65b015d1a7597ad5a9a6809346be3f052165d4470e378140493a430196be", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x378c3c92535c107d16d9875f9117dd17af7baa0173b56977da91b880ad8e3463" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c0bf65b015d1a7597ad5a9a6809346be3f052165d4470e378140493a430196bea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf65b34473cea8d200bf9bc2dc3548a0dfd44df818e4be4d1677e49264dd9be9e", - "network": "Cancun", + "lastblockhash": "0xd1fadc551b47d4e15a232f9aa7268ee32465dffff450b4db97da7b1b07ebdb4a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -1482,6 +2456,12 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -1502,14 +2482,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x0186a0", @@ -1524,6 +2496,14 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json index e6e8d80aeb3..181930e06e5 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/self_destructing_initcode_create_tx.json @@ -1,18 +1,599 @@ { - "000-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=0": { + "000-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a068b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x68b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78" + }, + "blocks": [ + { + "rlp": "0xf9027df9021ca02c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03849ff222ebc7c146c0a72ad0b9d1e8cdd24007e0b237e8ca745f6fd9f2afa87a0ef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29eea0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f85af858800a8405f5e10080808b60015f54015f55611234ff1ca07584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39ca05a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980c0c0", + "blockHeader": { + "parentHash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3849ff222ebc7c146c0a72ad0b9d1e8cdd24007e0b237e8ca745f6fd9f2afa87", + "transactionsTrie": "0xef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29ee", + "receiptTrie": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0143cb", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4fb1e0c117ed3958cec5e568554b46bdbb9215a57b4b575b527320e73970f825" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x60015f54015f55611234ff", + "v": "0x1c", + "r": "0x7584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39c", + "s": "0x5a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x4fb1e0c117ed3958cec5e568554b46bdbb9215a57b4b575b527320e73970f825", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x03cb61", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d63035a12", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=100000": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a068b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x68b1745b74e7276d64b28b707b95f56c0cdf8858816b0712d46da48524a4e9a7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78" + }, + "blocks": [ + { + "rlp": "0xf90280f9021ca02c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0907a141cfb7d7f011c4669fec830341f1c100db8a91434a96836e6b27a0bb0d0a0c1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01fa0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f85df85b800a8405f5e10080830186a08b60015f54015f55611234ff1ba065df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20a00c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875fc0c0", + "blockHeader": { + "parentHash": "0x2c60e9ab521eb3ecf06f4ff1ff7e4bde1f0d18ef295517161dc485e676773c78", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x907a141cfb7d7f011c4669fec830341f1c100db8a91434a96836e6b27a0bb0d0", + "transactionsTrie": "0xc1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01f", + "receiptTrie": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0143cb", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa2d6993bd848b09f50d6de6caf5f1adba2e005650c125a26e782cf74c85f1eb4" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60015f54015f55611234ff", + "v": "0x1b", + "r": "0x65df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20", + "s": "0x0c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa2d6993bd848b09f50d6de6caf5f1adba2e005650c125a26e782cf74c85f1eb4", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x03cb61", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d6301d372", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07908002923eb9f0818d88f0a693402c00cfebcb1382a876ffabd77f784e0714aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7908002923eb9f0818d88f0a693402c00cfebcb1382a876ffabd77f784e0714a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xdbc94d74c042c2ecc45c21f4d538b4c1a0a8030a604092f599c510ab6dec526e" + }, + "blocks": [ + { + "rlp": "0xf9027df9021ca0dbc94d74c042c2ecc45c21f4d538b4c1a0a8030a604092f599c510ab6dec526ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05641bb8d725ca51a49e03dd7ad5b31557b8ea76e615dd43ecab89fe5cac536fca0ef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29eea0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f85af858800a8405f5e10080808b60015f54015f55611234ff1ca07584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39ca05a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980c0c0", + "blockHeader": { + "parentHash": "0xdbc94d74c042c2ecc45c21f4d538b4c1a0a8030a604092f599c510ab6dec526e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5641bb8d725ca51a49e03dd7ad5b31557b8ea76e615dd43ecab89fe5cac536fc", + "transactionsTrie": "0xef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29ee", + "receiptTrie": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0143cb", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa4d1a5685d813306997703ea02337ce4aab5e017060ca083f479135ee0066a48" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x60015f54015f55611234ff", + "v": "0x1c", + "r": "0x7584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39c", + "s": "0x5a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa4d1a5685d813306997703ea02337ce4aab5e017060ca083f479135ee0066a48", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x03cb61", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d63035a12", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Shanghai--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=100000": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07908002923eb9f0818d88f0a693402c00cfebcb1382a876ffabd77f784e0714aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7908002923eb9f0818d88f0a693402c00cfebcb1382a876ffabd77f784e0714a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xdbc94d74c042c2ecc45c21f4d538b4c1a0a8030a604092f599c510ab6dec526e" + }, + "blocks": [ + { + "rlp": "0xf90280f9021ca0dbc94d74c042c2ecc45c21f4d538b4c1a0a8030a604092f599c510ab6dec526ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077b064d0aa3405944c8b3d1b666797c39b17ec30139b00e742f616731d1083bba0c1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01fa0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f85df85b800a8405f5e10080830186a08b60015f54015f55611234ff1ba065df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20a00c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875fc0c0", + "blockHeader": { + "parentHash": "0xdbc94d74c042c2ecc45c21f4d538b4c1a0a8030a604092f599c510ab6dec526e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x77b064d0aa3405944c8b3d1b666797c39b17ec30139b00e742f616731d1083bb", + "transactionsTrie": "0xc1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01f", + "receiptTrie": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0143cb", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xc244851944386609347bed8c43d0404bcc0b6424c89061bb2cc4c5a3fa333561" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60015f54015f55611234ff", + "v": "0x1b", + "r": "0x65df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20", + "s": "0x0c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc244851944386609347bed8c43d0404bcc0b6424c89061bb2cc4c5a3fa333561", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x030d40", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x03cb61", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d6301d372", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c" + }, "blocks": [ { - "rlp": "0xf902a0f9023fa01ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070687c6889236ce2af575188b2b04a878036a3027b1b2337238f379027cc3af8a0ef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29eea0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f85af858800a8405f5e10080808b60015f54015f55611234ff1ca07584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39ca05a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980c0c0", + "rlp": "0xf902a0f9023fa0341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c1c4345c950e530266c957509b578caae4ae87feda627c10a73a4dc4f091aa60a0ef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29eea0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f85af858800a8405f5e10080808b60015f54015f55611234ff1ca07584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39ca05a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980c0c0", "blockHeader": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", + "parentHash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x70687c6889236ce2af575188b2b04a878036a3027b1b2337238f379027cc3af8", + "stateRoot": "0xc1c4345c950e530266c957509b578caae4ae87feda627c10a73a4dc4f091aa60", "transactionsTrie": "0xef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29ee", "receiptTrie": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,33 +610,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x479db9143b0c36e29a1601acdb7eefeae3f58c1b3f49482458b85a65f55831b6" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x70687c6889236ce2af575188b2b04a878036a3027b1b2337238f379027cc3af8", - "receiptsRoot": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x143cb", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x479db9143b0c36e29a1601acdb7eefeae3f58c1b3f49482458b85a65f55831b6", - "transactions": [ - "0xf858800a8405f5e10080808b60015f54015f55611234ff1ca07584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39ca05a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc0fa9431a8601be057fd4dcd45e32fbef6f24d8f0546288361925007fd69c6fd" }, "transactions": [ { @@ -77,39 +632,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x479db9143b0c36e29a1601acdb7eefeae3f58c1b3f49482458b85a65f55831b6", - "network": "Cancun", + "lastblockhash": "0xc0fa9431a8601be057fd4dcd45e32fbef6f24d8f0546288361925007fd69c6fd", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -124,6 +648,12 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -138,14 +668,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -160,6 +682,14 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -181,20 +711,45 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=100000": { + "005-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=0-tx_value=100000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcff68fd1a6a5666fc58d24d48ce20cfc2e64ff3e121039a024cdb8e49dc351fb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c" + }, "blocks": [ { - "rlp": "0xf902a3f9023fa01ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01cd4874647b80dd560b728d2d4facb20d82a213fac43fd928324a204f180fc19a0c1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01fa0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f85df85b800a8405f5e10080830186a08b60015f54015f55611234ff1ba065df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20a00c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875fc0c0", + "rlp": "0xf902a3f9023fa0341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a765f523a019d00aa4fbdedc53b8082c684063e6393423adf2659256804a91b7a0c1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01fa0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f85df85b800a8405f5e10080830186a08b60015f54015f55611234ff1ba065df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20a00c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875fc0c0", "blockHeader": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", + "parentHash": "0x341bca365e51a23c8b60679f47ce9204ab8a183759c2413eea567bddf2cc708c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1cd4874647b80dd560b728d2d4facb20d82a213fac43fd928324a204f180fc19", + "stateRoot": "0xa765f523a019d00aa4fbdedc53b8082c684063e6393423adf2659256804a91b7", "transactionsTrie": "0xc1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01f", "receiptTrie": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -211,33 +766,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x386e779f360664902f2b48fbe038882ef341fa8d932a502f49496ce42562d270" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1cd4874647b80dd560b728d2d4facb20d82a213fac43fd928324a204f180fc19", - "receiptsRoot": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x143cb", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x386e779f360664902f2b48fbe038882ef341fa8d932a502f49496ce42562d270", - "transactions": [ - "0xf85b800a8405f5e10080830186a08b60015f54015f55611234ff1ba065df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20a00c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x4dc5745dbf0c453e42ab399a00b53a4b9441cae332894c71ec3b93c38ef77506" }, "transactions": [ { @@ -259,39 +788,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x1ced961897989e0fe309d9a4f5d142f52c80517de0635f41e7daf6314caba9e1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f1ba055020327cd731c5808c37062d776594c53aafaceddd0b7bc92d30fd9f93a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x386e779f360664902f2b48fbe038882ef341fa8d932a502f49496ce42562d270", - "network": "Cancun", + "lastblockhash": "0x4dc5745dbf0c453e42ab399a00b53a4b9441cae332894c71ec3b93c38ef77506", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -306,6 +804,12 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -320,14 +824,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x0186a0", @@ -342,6 +838,14 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -363,20 +867,45 @@ }, "sealEngine": "NoProof" }, - "002-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=0": { + "006-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09f903e171d6f1d7bfbba8924e7ca1f2c0796dc6b6d1b0a07876631905ae2ce26a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9f903e171d6f1d7bfbba8924e7ca1f2c0796dc6b6d1b0a07876631905ae2ce26", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x68062ad7c3b5115957aed9ebae6472d1e2ea5f3c9af460e5e69fbf7b47814541" + }, "blocks": [ { - "rlp": "0xf902a0f9023fa031b6e87db34bf617849cd2da922f5725c59b064fa4c10cd4985850cc08968e5ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b73cad5f41e23907d0ae38fa146c9b8a915d20b2ca5d55a2deba3a9699d95f57a0ef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29eea0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f85af858800a8405f5e10080808b60015f54015f55611234ff1ca07584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39ca05a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980c0c0", + "rlp": "0xf902a0f9023fa068062ad7c3b5115957aed9ebae6472d1e2ea5f3c9af460e5e69fbf7b47814541a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa000152429fe04088c0df520ccaa7aebe6bcb2bdfd2cafa3cad1c51c8f7eed7f17a0ef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29eea0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f85af858800a8405f5e10080808b60015f54015f55611234ff1ca07584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39ca05a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980c0c0", "blockHeader": { - "parentHash": "0x31b6e87db34bf617849cd2da922f5725c59b064fa4c10cd4985850cc08968e5b", + "parentHash": "0x68062ad7c3b5115957aed9ebae6472d1e2ea5f3c9af460e5e69fbf7b47814541", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb73cad5f41e23907d0ae38fa146c9b8a915d20b2ca5d55a2deba3a9699d95f57", + "stateRoot": "0x00152429fe04088c0df520ccaa7aebe6bcb2bdfd2cafa3cad1c51c8f7eed7f17", "transactionsTrie": "0xef647876dc0832ad343e21dbc0dbb6b48d8d57aa5dcbb2b751e190c6153e29ee", "receiptTrie": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -393,33 +922,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc837ea856c5d42366fa88ccf793e00d14701039bfd0a76f6e7a7b468892c8a54" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x31b6e87db34bf617849cd2da922f5725c59b064fa4c10cd4985850cc08968e5b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb73cad5f41e23907d0ae38fa146c9b8a915d20b2ca5d55a2deba3a9699d95f57", - "receiptsRoot": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x143cb", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc837ea856c5d42366fa88ccf793e00d14701039bfd0a76f6e7a7b468892c8a54", - "transactions": [ - "0xf858800a8405f5e10080808b60015f54015f55611234ff1ca07584905c652a35ca0253d8568dfdfa796a5815044c76d5f0dac6f4f39252b39ca05a7122ead836bab8bd1f7b72166907da1c6b8e72c52c5b5ba901e97579041980" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xcb7b1d5839dc6ba57d406b6ed589e8753fb4c6d12b75f5940a37b3125c457be9" }, "transactions": [ { @@ -441,39 +944,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xe370b70bd32de141d17fbdb838e76995bd51a4e97f6c14d97000519a658c8c88", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x31b6e87db34bf617849cd2da922f5725c59b064fa4c10cd4985850cc08968e5b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e370b70bd32de141d17fbdb838e76995bd51a4e97f6c14d97000519a658c8c88a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc837ea856c5d42366fa88ccf793e00d14701039bfd0a76f6e7a7b468892c8a54", - "network": "Cancun", + "lastblockhash": "0xcb7b1d5839dc6ba57d406b6ed589e8753fb4c6d12b75f5940a37b3125c457be9", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -488,6 +960,12 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -508,14 +986,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x0186a0", @@ -530,6 +1000,14 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -551,20 +1029,45 @@ }, "sealEngine": "NoProof" }, - "003-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=100000": { + "007-fork=Cancun--selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-selfdestruct_contract_initial_balance=100000-tx_value=100000": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09f903e171d6f1d7bfbba8924e7ca1f2c0796dc6b6d1b0a07876631905ae2ce26a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9f903e171d6f1d7bfbba8924e7ca1f2c0796dc6b6d1b0a07876631905ae2ce26", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x68062ad7c3b5115957aed9ebae6472d1e2ea5f3c9af460e5e69fbf7b47814541" + }, "blocks": [ { - "rlp": "0xf902a3f9023fa031b6e87db34bf617849cd2da922f5725c59b064fa4c10cd4985850cc08968e5ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05894cf17e9441819aad6606b9ab8be9ffa5814f28bc9fb3ac6a07f52d56071cca0c1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01fa0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f85df85b800a8405f5e10080830186a08b60015f54015f55611234ff1ba065df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20a00c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875fc0c0", + "rlp": "0xf902a3f9023fa068062ad7c3b5115957aed9ebae6472d1e2ea5f3c9af460e5e69fbf7b47814541a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bf0e6ad0dae995e00b6196dc1c9fe29a8435815218622a9e5294321714ffa7bea0c1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01fa0d8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150efb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830143cb8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f85df85b800a8405f5e10080830186a08b60015f54015f55611234ff1ba065df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20a00c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875fc0c0", "blockHeader": { - "parentHash": "0x31b6e87db34bf617849cd2da922f5725c59b064fa4c10cd4985850cc08968e5b", + "parentHash": "0x68062ad7c3b5115957aed9ebae6472d1e2ea5f3c9af460e5e69fbf7b47814541", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5894cf17e9441819aad6606b9ab8be9ffa5814f28bc9fb3ac6a07f52d56071cc", + "stateRoot": "0xbf0e6ad0dae995e00b6196dc1c9fe29a8435815218622a9e5294321714ffa7be", "transactionsTrie": "0xc1c7c335ddadacf6104f5462e6179a42ccfcc8a395dd5cad2846b8c62823a01f", "receiptTrie": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -581,33 +1084,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xc07b8741252324181e648398221a37b2f153084d70ae11f317abcd3cedb79327" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x31b6e87db34bf617849cd2da922f5725c59b064fa4c10cd4985850cc08968e5b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5894cf17e9441819aad6606b9ab8be9ffa5814f28bc9fb3ac6a07f52d56071cc", - "receiptsRoot": "0xd8246cc6726d665697e33ec0570fbe0f59b56a0b757a07e3a0d84ce7ec5150ef", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x143cb", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xc07b8741252324181e648398221a37b2f153084d70ae11f317abcd3cedb79327", - "transactions": [ - "0xf85b800a8405f5e10080830186a08b60015f54015f55611234ff1ba065df573cfc868286ab7f9864a9142ce9f0a911becc2af34b5587aafa01436c20a00c88a60c10c06f02d6e4e3832d15d44a974dc500d56ef612fc1737f10826875f" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0b86d84bd4a926f69024573e4b8f82f98f777e5f61cef6f7c7f782b31cedc794" }, "transactions": [ { @@ -629,39 +1106,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xe370b70bd32de141d17fbdb838e76995bd51a4e97f6c14d97000519a658c8c88", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x31b6e87db34bf617849cd2da922f5725c59b064fa4c10cd4985850cc08968e5b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e370b70bd32de141d17fbdb838e76995bd51a4e97f6c14d97000519a658c8c88a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xc07b8741252324181e648398221a37b2f153084d70ae11f317abcd3cedb79327", - "network": "Cancun", + "lastblockhash": "0x0b86d84bd4a926f69024573e4b8f82f98f777e5f61cef6f7c7f782b31cedc794", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -676,6 +1122,12 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -696,14 +1148,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x030d40", @@ -718,6 +1162,14 @@ "code": "0x60015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json index 22bfb26088e..aba8ef454f1 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_created_same_block_different_tx.json @@ -1,18 +1,717 @@ { - "000-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=0": { + "000-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d93f07acd3c48e049f684f0f9406de752841dab0e642516c612e7b1973a64574a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd93f07acd3c48e049f684f0f9406de752841dab0e642516c612e7b1973a64574", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x76db25d23605ebd0107e99b711f79f47ba35bc8fcbf2f7af260cbc3af55ea85d" + }, + "blocks": [ + { + "rlp": "0xf9034ef9021aa076db25d23605ebd0107e99b711f79f47ba35bc8fcbf2f7af260cbc3af55ea85da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0867866350ed5bca45ee18f7164e7975ad108f619794ef6ddb786643ae4401f83a053862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77a04810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083033b000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012cf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f8c5010a8405f5e10080830186a0b87460006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f31ba04180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817a071c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301ec0c0", + "blockHeader": { + "parentHash": "0x76db25d23605ebd0107e99b711f79f47ba35bc8fcbf2f7af260cbc3af55ea85d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x867866350ed5bca45ee18f7164e7975ad108f619794ef6ddb786643ae4401f83", + "transactionsTrie": "0x53862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77", + "receiptTrie": "0x4810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x033b00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xcf217f3fce86e9128782c9606cd6e994bbe592513589daaebb36887d67a76eb6" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x61000b600081600b8239f360015f54015f55611234ff", + "v": "0x1c", + "r": "0xe000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97", + "s": "0x02a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f3", + "v": "0x1b", + "r": "0x4180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817", + "s": "0x71c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xcf217f3fce86e9128782c9606cd6e994bbe592513589daaebb36887d67a76eb6", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x09b100", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x056bc75e2d62ee2b60", + "code": "0x", + "storage": {} + }, + "0xec0e71ad0a90ffe1909d27dac207f7680abba42d": { + "nonce": "0x01", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x0b", + "0x03": "0x802636f5ff7d1e77441e337c5c15a7d5e11eff010d92ac24ae4ace1e0a6b5ac9" + } + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09d9efff5a77c847acc76c850368e88400bd80539a8428fd46cd894a88b555f01a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9d9efff5a77c847acc76c850368e88400bd80539a8428fd46cd894a88b555f01", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x5147f8ffa1a220b0fd7b878ce616e63a0d995f839c0932a5e0448ca37a65fffc" + }, + "blocks": [ + { + "rlp": "0xf9034ef9021aa05147f8ffa1a220b0fd7b878ce616e63a0d995f839c0932a5e0448ca37a65fffca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c1424b2cb4820ab9ac5580707a05f58a49965bd07bf826fd5fe8b78d34fd8905a053862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77a04810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083033b000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9012cf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f8c5010a8405f5e10080830186a0b87460006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f31ba04180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817a071c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301ec0c0", + "blockHeader": { + "parentHash": "0x5147f8ffa1a220b0fd7b878ce616e63a0d995f839c0932a5e0448ca37a65fffc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc1424b2cb4820ab9ac5580707a05f58a49965bd07bf826fd5fe8b78d34fd8905", + "transactionsTrie": "0x53862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77", + "receiptTrie": "0x4810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x033b00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xd3f3c6bee44a2c569ad02f0a8840b54be07793916454477b72c2e43cf9289ebb" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x61000b600081600b8239f360015f54015f55611234ff", + "v": "0x1c", + "r": "0xe000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97", + "s": "0x02a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f3", + "v": "0x1b", + "r": "0x4180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817", + "s": "0x71c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xd3f3c6bee44a2c569ad02f0a8840b54be07793916454477b72c2e43cf9289ebb", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x09b100", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x056bc75e2d62ee2b60", + "code": "0x", + "storage": {} + }, + "0xec0e71ad0a90ffe1909d27dac207f7680abba42d": { + "nonce": "0x01", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x0b", + "0x03": "0x802636f5ff7d1e77441e337c5c15a7d5e11eff010d92ac24ae4ace1e0a6b5ac9" + } + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d93f07acd3c48e049f684f0f9406de752841dab0e642516c612e7b1973a64574a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd93f07acd3c48e049f684f0f9406de752841dab0e642516c612e7b1973a64574", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x76db25d23605ebd0107e99b711f79f47ba35bc8fcbf2f7af260cbc3af55ea85d" + }, + "blocks": [ + { + "rlp": "0xf90575f9021aa076db25d23605ebd0107e99b711f79f47ba35bc8fcbf2f7af260cbc3af55ea85da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07750d51536f3eb7b88fa9fac692b37912b9c034e5b147eba007bb0e1f7d5ef47a09014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046eda0584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083085cec0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90353f863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f902eb010a8405f5e10080830186a0b9029960006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f31ba047a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfaca0677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28c0c0", + "blockHeader": { + "parentHash": "0x76db25d23605ebd0107e99b711f79f47ba35bc8fcbf2f7af260cbc3af55ea85d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7750d51536f3eb7b88fa9fac692b37912b9c034e5b147eba007bb0e1f7d5ef47", + "transactionsTrie": "0x9014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046ed", + "receiptTrie": "0x584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x085cec", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xef3aca65f8b7ee722389942c8a732a6e745482ca1a3290411dc8ce70e90571d3" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x61000b600081600b8239f360015f54015f55611234ff", + "v": "0x1c", + "r": "0xe000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97", + "s": "0x02a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f3", + "v": "0x1b", + "r": "0x47a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfac", + "s": "0x677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xef3aca65f8b7ee722389942c8a732a6e745482ca1a3290411dc8ce70e90571d3", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x2d", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1916c4", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x056bc75e2d62bad828", + "code": "0x", + "storage": {} + }, + "0xec0e71ad0a90ffe1909d27dac207f7680abba42d": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x01", + "0x08": "0x01", + "0x0a": "0x01", + "0x0c": "0x01", + "0x0e": "0x01", + "0x10": "0x01", + "0x12": "0x01", + "0x14": "0x0b", + "0x15": "0x802636f5ff7d1e77441e337c5c15a7d5e11eff010d92ac24ae4ace1e0a6b5ac9" + } + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Shanghai-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09d9efff5a77c847acc76c850368e88400bd80539a8428fd46cd894a88b555f01a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9d9efff5a77c847acc76c850368e88400bd80539a8428fd46cd894a88b555f01", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x5147f8ffa1a220b0fd7b878ce616e63a0d995f839c0932a5e0448ca37a65fffc" + }, + "blocks": [ + { + "rlp": "0xf90575f9021aa05147f8ffa1a220b0fd7b878ce616e63a0d995f839c0932a5e0448ca37a65fffca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d1d84d59204acb643719696d3ed0cedbe1c4138217445d11e942ecac5318d92ea09014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046eda0584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083085cec0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90353f863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f902eb010a8405f5e10080830186a0b9029960006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f31ba047a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfaca0677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28c0c0", + "blockHeader": { + "parentHash": "0x5147f8ffa1a220b0fd7b878ce616e63a0d995f839c0932a5e0448ca37a65fffc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd1d84d59204acb643719696d3ed0cedbe1c4138217445d11e942ecac5318d92e", + "transactionsTrie": "0x9014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046ed", + "receiptTrie": "0x584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x085cec", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xf18c0a8eab5dc80216ecf48ce4abfcb93b8f075903ebb6c2115f99438fb4f8b3" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x61000b600081600b8239f360015f54015f55611234ff", + "v": "0x1c", + "r": "0xe000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97", + "s": "0x02a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x60006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f3", + "v": "0x1b", + "r": "0x47a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfac", + "s": "0x677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf18c0a8eab5dc80216ecf48ce4abfcb93b8f075903ebb6c2115f99438fb4f8b3", + "pre": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x2e", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611234ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x60015f54015f55611234ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1916c4", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x056bc75e2d62bad828", + "code": "0x", + "storage": {} + }, + "0xec0e71ad0a90ffe1909d27dac207f7680abba42d": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x01", + "0x08": "0x01", + "0x0a": "0x01", + "0x0c": "0x01", + "0x0e": "0x01", + "0x10": "0x01", + "0x12": "0x01", + "0x14": "0x0b", + "0x15": "0x802636f5ff7d1e77441e337c5c15a7d5e11eff010d92ac24ae4ace1e0a6b5ac9" + } + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f51c74e0c5fc539874ec52ad46fc46f65a77766b9997e43230b6e31954f254cba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf51c74e0c5fc539874ec52ad46fc46f65a77766b9997e43230b6e31954f254cb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfda6fa6925ee162d13e65db2f675ec9149f279d589adf508b2d215ad7c8a3e7f" + }, "blocks": [ { - "rlp": "0xf90371f9023da0e4a03403e5e6203505bb076b5c54d8306aeddf29737300f0c9cdff87f8f4efa6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ae29b761469e182e122d2bffeae3db7304095e6ab8c4f520fee4c89f64c1c3da053862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77a04810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083033b000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f8c5010a8405f5e10080830186a0b87460006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f31ba04180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817a071c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301ec0c0", + "rlp": "0xf90371f9023da0fda6fa6925ee162d13e65db2f675ec9149f279d589adf508b2d215ad7c8a3e7fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01d9c2e007dc02ffdc6dbc5632ce46aec3604eeb83b010e1271d8407f0130f777a053862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77a04810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083033b000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f8c5010a8405f5e10080830186a0b87460006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f31ba04180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817a071c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301ec0c0", "blockHeader": { - "parentHash": "0xe4a03403e5e6203505bb076b5c54d8306aeddf29737300f0c9cdff87f8f4efa6", + "parentHash": "0xfda6fa6925ee162d13e65db2f675ec9149f279d589adf508b2d215ad7c8a3e7f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5ae29b761469e182e122d2bffeae3db7304095e6ab8c4f520fee4c89f64c1c3d", + "stateRoot": "0x1d9c2e007dc02ffdc6dbc5632ce46aec3604eeb83b010e1271d8407f0130f777", "transactionsTrie": "0x53862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77", "receiptTrie": "0x4810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -29,34 +728,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x339c8e63373b616c17bb9da8c74d6f13bdaaa4b030425369acf864a267950ff4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe4a03403e5e6203505bb076b5c54d8306aeddf29737300f0c9cdff87f8f4efa6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5ae29b761469e182e122d2bffeae3db7304095e6ab8c4f520fee4c89f64c1c3d", - "receiptsRoot": "0x4810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x33b00", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x339c8e63373b616c17bb9da8c74d6f13bdaaa4b030425369acf864a267950ff4", - "transactions": [ - "0xf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92", - "0xf8c5010a8405f5e10080830186a0b87460006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f31ba04180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817a071c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xfb04fdc6ea0aa620d19b1d7550d144b2920c3f8da03d0b3668a0bdb7bded86d7" }, "blocknumber": "1", "transactions": [ @@ -93,39 +765,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x393dee52036fbd31c32f42a4830300677b0b08b2ed7c7db227fa5508b8b0b332", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe4a03403e5e6203505bb076b5c54d8306aeddf29737300f0c9cdff87f8f4efa6" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0393dee52036fbd31c32f42a4830300677b0b08b2ed7c7db227fa5508b8b0b332a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x339c8e63373b616c17bb9da8c74d6f13bdaaa4b030425369acf864a267950ff4", - "network": "Cancun", + "lastblockhash": "0xfb04fdc6ea0aa620d19b1d7550d144b2920c3f8da03d0b3668a0bdb7bded86d7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -140,6 +781,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -154,14 +801,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -176,6 +815,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -215,20 +862,45 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=1": { + "005-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=1-selfdestruct_contract_initial_balance=1": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c6d82060193e1d5cb7bc4c831a0595df950f2f1819160b69631c670ed763f559a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc6d82060193e1d5cb7bc4c831a0595df950f2f1819160b69631c670ed763f559", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22023a378727e466c0b33f35b8b18dc66c24fc1a56c030e64f27db037cb119cf" + }, "blocks": [ { - "rlp": "0xf90371f9023da06a4459cbe5573e0148de11d8115dff4092bd539ff6113556193f8d022135a33ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05e8bdc2583d788c5fb6d759adbd35ef6b2809aa4d61315670550440b44f5c63ea053862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77a04810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083033b000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f8c5010a8405f5e10080830186a0b87460006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f31ba04180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817a071c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301ec0c0", + "rlp": "0xf90371f9023da022023a378727e466c0b33f35b8b18dc66c24fc1a56c030e64f27db037cb119cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c6b198514bb2d6f41346856e77ca0f33b4b84afd7ebaaade7634afef13d80ea5a053862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77a04810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083033b000c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9012cf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f8c5010a8405f5e10080830186a0b87460006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f31ba04180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817a071c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301ec0c0", "blockHeader": { - "parentHash": "0x6a4459cbe5573e0148de11d8115dff4092bd539ff6113556193f8d022135a33c", + "parentHash": "0x22023a378727e466c0b33f35b8b18dc66c24fc1a56c030e64f27db037cb119cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5e8bdc2583d788c5fb6d759adbd35ef6b2809aa4d61315670550440b44f5c63e", + "stateRoot": "0xc6b198514bb2d6f41346856e77ca0f33b4b84afd7ebaaade7634afef13d80ea5", "transactionsTrie": "0x53862fd9d02fd78c6448fd88bff5c91c8d91a4dd841f21a32eeb34b908d2da77", "receiptTrie": "0x4810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -245,34 +917,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7b130fbde2e9a0a7682a525039d5c24fae934884dc130c9dfc8ed50a5f3d0121" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6a4459cbe5573e0148de11d8115dff4092bd539ff6113556193f8d022135a33c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5e8bdc2583d788c5fb6d759adbd35ef6b2809aa4d61315670550440b44f5c63e", - "receiptsRoot": "0x4810c3c7112b148c4d312223afe5e9fb3a3cc2db6e4ddf36463a28b48b9f3218", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x33b00", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7b130fbde2e9a0a7682a525039d5c24fae934884dc130c9dfc8ed50a5f3d0121", - "transactions": [ - "0xf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92", - "0xf8c5010a8405f5e10080830186a0b87460006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f31600155736295ee1b4f6dd65047762f924ecd367c17eabf8f3b600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60035560016020f31ba04180d65c7f7dc3cd9f85e673888ba6eb9825f882139c03a5c97cdae27451e817a071c19993057e1063f5ddfa0b665a6f1b70bd89df04fa81ce8ebe99333cc3301e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd68c173e1f3a74f7eb4a6f6808ae6c019521e0ab6be4b07a835514c7d5eeb00a" }, "blocknumber": "1", "transactions": [ @@ -309,39 +954,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x22c39b0b3ac4445687899d08b97c51710f2d817b44ac2c56e0b7ffedd87ae0cb", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6a4459cbe5573e0148de11d8115dff4092bd539ff6113556193f8d022135a33c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a022c39b0b3ac4445687899d08b97c51710f2d817b44ac2c56e0b7ffedd87ae0cba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7b130fbde2e9a0a7682a525039d5c24fae934884dc130c9dfc8ed50a5f3d0121", - "network": "Cancun", + "lastblockhash": "0xd68c173e1f3a74f7eb4a6f6808ae6c019521e0ab6be4b07a835514c7d5eeb00a", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -356,6 +970,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -376,14 +996,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x01", @@ -398,6 +1010,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -437,20 +1057,45 @@ }, "sealEngine": "NoProof" }, - "002-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=0": { + "006-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=0": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f51c74e0c5fc539874ec52ad46fc46f65a77766b9997e43230b6e31954f254cba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf51c74e0c5fc539874ec52ad46fc46f65a77766b9997e43230b6e31954f254cb", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfda6fa6925ee162d13e65db2f675ec9149f279d589adf508b2d215ad7c8a3e7f" + }, "blocks": [ { - "rlp": "0xf90598f9023da0e4a03403e5e6203505bb076b5c54d8306aeddf29737300f0c9cdff87f8f4efa6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080bd29a3a91a56a1eb721d423ff86d2994e73baa6ae596ee1a4c8283a1045d1da09014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046eda0584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083085cec0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90353f863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f902eb010a8405f5e10080830186a0b9029960006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f31ba047a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfaca0677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28c0c0", + "rlp": "0xf90598f9023da0fda6fa6925ee162d13e65db2f675ec9149f279d589adf508b2d215ad7c8a3e7fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0913466f9cc9c5f9c79e5c00b0f248d04cfb26f51129bf5799e61bde71ebdf74aa09014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046eda0584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083085cec0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90353f863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f902eb010a8405f5e10080830186a0b9029960006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f31ba047a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfaca0677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28c0c0", "blockHeader": { - "parentHash": "0xe4a03403e5e6203505bb076b5c54d8306aeddf29737300f0c9cdff87f8f4efa6", + "parentHash": "0xfda6fa6925ee162d13e65db2f675ec9149f279d589adf508b2d215ad7c8a3e7f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x80bd29a3a91a56a1eb721d423ff86d2994e73baa6ae596ee1a4c8283a1045d1d", + "stateRoot": "0x913466f9cc9c5f9c79e5c00b0f248d04cfb26f51129bf5799e61bde71ebdf74a", "transactionsTrie": "0x9014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046ed", "receiptTrie": "0x584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -467,34 +1112,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x384998686db9e1185cb2fc8bcab9b9130175cb8c14c02210b1d4d92e7c014c10" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe4a03403e5e6203505bb076b5c54d8306aeddf29737300f0c9cdff87f8f4efa6", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x80bd29a3a91a56a1eb721d423ff86d2994e73baa6ae596ee1a4c8283a1045d1d", - "receiptsRoot": "0x584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x85cec", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x384998686db9e1185cb2fc8bcab9b9130175cb8c14c02210b1d4d92e7c014c10", - "transactions": [ - "0xf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92", - "0xf902eb010a8405f5e10080830186a0b9029960006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f31ba047a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfaca0677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x25c3f3a28c15048e7574ff2741733b5a92c13ae7e8832679d851423f83fbbe22" }, "blocknumber": "1", "transactions": [ @@ -531,39 +1149,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x393dee52036fbd31c32f42a4830300677b0b08b2ed7c7db227fa5508b8b0b332", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe4a03403e5e6203505bb076b5c54d8306aeddf29737300f0c9cdff87f8f4efa6" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0393dee52036fbd31c32f42a4830300677b0b08b2ed7c7db227fa5508b8b0b332a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x384998686db9e1185cb2fc8bcab9b9130175cb8c14c02210b1d4d92e7c014c10", - "network": "Cancun", + "lastblockhash": "0x25c3f3a28c15048e7574ff2741733b5a92c13ae7e8832679d851423f83fbbe22", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -578,6 +1165,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -592,14 +1185,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x2d", @@ -614,6 +1199,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -662,20 +1255,45 @@ }, "sealEngine": "NoProof" }, - "003-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=1": { + "007-fork=Cancun-selfdestruct_contract_address=0x6295ee1b4f6dd65047762f924ecd367c17eabf8f-entry_code_address=0xec0e71ad0a90ffe1909d27dac207f7680abba42d-call_times=10-selfdestruct_contract_initial_balance=1": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c6d82060193e1d5cb7bc4c831a0595df950f2f1819160b69631c670ed763f559a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc6d82060193e1d5cb7bc4c831a0595df950f2f1819160b69631c670ed763f559", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22023a378727e466c0b33f35b8b18dc66c24fc1a56c030e64f27db037cb119cf" + }, "blocks": [ { - "rlp": "0xf90598f9023da06a4459cbe5573e0148de11d8115dff4092bd539ff6113556193f8d022135a33ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0410bc172237be4fc5fe25cc465a2b97202637e89f1adaf539f5249f7efc7ecd5a09014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046eda0584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083085cec0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90353f863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f902eb010a8405f5e10080830186a0b9029960006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f31ba047a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfaca0677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28c0c0", + "rlp": "0xf90598f9023da022023a378727e466c0b33f35b8b18dc66c24fc1a56c030e64f27db037cb119cfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ed63c34f4555dffe7bb340091e36d31590de15bb7809f0ac73200ddebb46ecea09014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046eda0584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083085cec0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90353f863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92f902eb010a8405f5e10080830186a0b9029960006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f31ba047a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfaca0677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28c0c0", "blockHeader": { - "parentHash": "0x6a4459cbe5573e0148de11d8115dff4092bd539ff6113556193f8d022135a33c", + "parentHash": "0x22023a378727e466c0b33f35b8b18dc66c24fc1a56c030e64f27db037cb119cf", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x410bc172237be4fc5fe25cc465a2b97202637e89f1adaf539f5249f7efc7ecd5", + "stateRoot": "0x5ed63c34f4555dffe7bb340091e36d31590de15bb7809f0ac73200ddebb46ece", "transactionsTrie": "0x9014034233b422dfe51364325d282ca500344ffad6c8ad6578a81fad5fb046ed", "receiptTrie": "0x584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -692,34 +1310,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xada3cbee2d5cccbe20212c4c2a1dd577bc7097687cfb119dd65428cfb6fd6cbd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x6a4459cbe5573e0148de11d8115dff4092bd539ff6113556193f8d022135a33c", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x410bc172237be4fc5fe25cc465a2b97202637e89f1adaf539f5249f7efc7ecd5", - "receiptsRoot": "0x584322fb44c29283b2a176c5f787149bdeb7eaf34a6357f5c632e1aaa3d85469", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x85cec", - "timestamp": "0xc", - "extraData": "0x", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xada3cbee2d5cccbe20212c4c2a1dd577bc7097687cfb119dd65428cfb6fd6cbd", - "transactions": [ - "0xf863800a8405f5e10080809661000b600081600b8239f360015f54015f55611234ff1ca0e000d6295e57183f9ae2f59e7626cb36984a59b61b59ffa929ea8c42447dee97a002a35ea05caea0c174e8d26b47eb70e192779c5223591075ff93e340ddccff92", - "0xf902eb010a8405f5e10080830186a0b9029960006000600060006000736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160015560006000600060006001736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600255736295ee1b4f6dd65047762f924ecd367c17eabf8f3160035560006000600060006002736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600455736295ee1b4f6dd65047762f924ecd367c17eabf8f3160055560006000600060006003736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600655736295ee1b4f6dd65047762f924ecd367c17eabf8f3160075560006000600060006004736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600855736295ee1b4f6dd65047762f924ecd367c17eabf8f3160095560006000600060006005736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600a55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600b5560006000600060006006736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600c55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600d5560006000600060006007736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1600e55736295ee1b4f6dd65047762f924ecd367c17eabf8f31600f5560006000600060006008736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601055736295ee1b4f6dd65047762f924ecd367c17eabf8f3160115560006000600060006009736295ee1b4f6dd65047762f924ecd367c17eabf8f45f1601255736295ee1b4f6dd65047762f924ecd367c17eabf8f31601355736295ee1b4f6dd65047762f924ecd367c17eabf8f3b601455736295ee1b4f6dd65047762f924ecd367c17eabf8f3f60155560016020f31ba047a30ed7d440a47a3deff9b21e4708a339474b6da64fecd00f4b070eccd5cfaca0677dfcf7eeae38badaaa36e3cc187aa4da44887649ff25a3cd385564d0bebd28" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x19ef6cd2bd35680cd8711a69f433d07f45b049b8b7fd942cb0e1db9b8c13eb31" }, "blocknumber": "1", "transactions": [ @@ -756,39 +1347,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x22c39b0b3ac4445687899d08b97c51710f2d817b44ac2c56e0b7ffedd87ae0cb", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x6a4459cbe5573e0148de11d8115dff4092bd539ff6113556193f8d022135a33c" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a022c39b0b3ac4445687899d08b97c51710f2d817b44ac2c56e0b7ffedd87ae0cba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xada3cbee2d5cccbe20212c4c2a1dd577bc7097687cfb119dd65428cfb6fd6cbd", - "network": "Cancun", + "lastblockhash": "0x19ef6cd2bd35680cd8711a69f433d07f45b049b8b7fd942cb0e1db9b8c13eb31", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x00", @@ -803,6 +1363,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", @@ -823,14 +1389,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x0c": "0x0c" - } - }, "0x0000000000000000000000000000000000001234": { "nonce": "0x00", "balance": "0x2e", @@ -845,6 +1403,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611234ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x01", diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json index 67c9e146658..9bfdf395bb9 100644 --- a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct/selfdestruct_pre_existing.json @@ -1,18 +1,40 @@ { - "000-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-single_call": { + "000-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-single_call": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852" + }, "blocks": [ { - "rlp": "0xf90325f9023fa04ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa018f2d4de5955d8d592f01d9651a5dfdc178c73844ce59bbed2343734eb5188d8a0d1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981a0e563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830262a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8dff8dd800a8405f5e10080830186a0b88c7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ca0a6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786ea0112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631ec0c0", + "rlp": "0xf90302f9021ca0ea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08760ff9ac930f0a4e3567cf2f54c69d745dcb551acad9ccf28af5728513cbaa9a0d1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981a0e563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830262a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8dff8dd800a8405f5e10080830186a0b88c7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ca0a6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786ea0112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631ec0c0", "blockHeader": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", + "parentHash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18f2d4de5955d8d592f01d9651a5dfdc178c73844ce59bbed2343734eb5188d8", + "stateRoot": "0x8760ff9ac930f0a4e3567cf2f54c69d745dcb551acad9ccf28af5728513cbaa9", "transactionsTrie": "0xd1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981", "receiptTrie": "0xe563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -26,36 +48,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4c3ad949abc8669bfa64ee429c2d220b2df8113b4c8bd8f255029ef78ccb42b4" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x18f2d4de5955d8d592f01d9651a5dfdc178c73844ce59bbed2343734eb5188d8", - "receiptsRoot": "0xe563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x262a5", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4c3ad949abc8669bfa64ee429c2d220b2df8113b4c8bd8f255029ef78ccb42b4", - "transactions": [ - "0xf8dd800a8405f5e10080830186a0b88c7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ca0a6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786ea0112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x289438632bbd3f8d09dbbe8118a95f0f714dc1a0c8ce6c3a6fd89d0a01e5de4f" }, "transactions": [ { @@ -77,39 +70,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4c3ad949abc8669bfa64ee429c2d220b2df8113b4c8bd8f255029ef78ccb42b4", - "network": "Cancun", + "lastblockhash": "0x289438632bbd3f8d09dbbe8118a95f0f714dc1a0c8ce6c3a6fd89d0a01e5de4f", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -138,14 +100,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -160,14 +114,6 @@ "code": "0x61000b600081600b8239f360015f54015f55611000ff", "storage": {} }, - "0x1111111111111111111111111111111111111111": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x60015f54015f55611000ff", - "storage": { - "0x00": "0x01" - } - }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0727ef", @@ -193,20 +139,42 @@ }, "sealEngine": "NoProof" }, - "001-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-single_call_self_sendall_recipient": { + "001-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-single_call_self_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f286dd4a9966770d56b26b39571c560dd12b354fe26dbe10942aaffbf0cb706da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf286dd4a9966770d56b26b39571c560dd12b354fe26dbe10942aaffbf0cb706d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x49c1a694c22adec62859c4c8881a92fd3499ddfefaac1d919cc62e011ad596ef" + }, "blocks": [ { - "rlp": "0xf90325f9023fa0d3eec44c7044eb77895a9f8d0183fbb0467f6bc83143153eaba3c43f9e680d79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d3cda25abd964b78a1622c434c941ecff93e800c8f37d9711ef26edaadfee3a4a097a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0a0b0c2ff93f48b957d014987fd7c9cd2f5be20a45d2fa4daf0970d8838b898c233b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830259618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8dff8dd800a8405f5e10080830186a0b88c7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ba04886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48a06de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301c0c0", + "rlp": "0xf90302f9021ca049c1a694c22adec62859c4c8881a92fd3499ddfefaac1d919cc62e011ad596efa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0462e06df0ef0e3917e17b6e9a0610240833cd97aa809d712391bfea0ecdcec8ea097a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0a0b0c2ff93f48b957d014987fd7c9cd2f5be20a45d2fa4daf0970d8838b898c233b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830259618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8dff8dd800a8405f5e10080830186a0b88c7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ba04886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48a06de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301c0c0", "blockHeader": { - "parentHash": "0xd3eec44c7044eb77895a9f8d0183fbb0467f6bc83143153eaba3c43f9e680d79", + "parentHash": "0x49c1a694c22adec62859c4c8881a92fd3499ddfefaac1d919cc62e011ad596ef", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd3cda25abd964b78a1622c434c941ecff93e800c8f37d9711ef26edaadfee3a4", + "stateRoot": "0x462e06df0ef0e3917e17b6e9a0610240833cd97aa809d712391bfea0ecdcec8e", "transactionsTrie": "0x97a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0", "receiptTrie": "0xb0c2ff93f48b957d014987fd7c9cd2f5be20a45d2fa4daf0970d8838b898c233", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -220,36 +188,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xefa641a2d9422a845dbd56b392f2a25fa0b9d93ecf8284851994525f1fe88afd" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xd3eec44c7044eb77895a9f8d0183fbb0467f6bc83143153eaba3c43f9e680d79", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd3cda25abd964b78a1622c434c941ecff93e800c8f37d9711ef26edaadfee3a4", - "receiptsRoot": "0xb0c2ff93f48b957d014987fd7c9cd2f5be20a45d2fa4daf0970d8838b898c233", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x25961", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xefa641a2d9422a845dbd56b392f2a25fa0b9d93ecf8284851994525f1fe88afd", - "transactions": [ - "0xf8dd800a8405f5e10080830186a0b88c7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ba04886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48a06de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xc7c23925eea677d0570d2f1bc2fef27c034e6dcd4d9fa0c8df77996c934a981b" }, "transactions": [ { @@ -271,39 +210,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb04345d7b32b38349ac1bd2f7d3658842ec8cd089a44f6c0a0b29af6de2c52e0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xd3eec44c7044eb77895a9f8d0183fbb0467f6bc83143153eaba3c43f9e680d79" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b04345d7b32b38349ac1bd2f7d3658842ec8cd089a44f6c0a0b29af6de2c52e0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xefa641a2d9422a845dbd56b392f2a25fa0b9d93ecf8284851994525f1fe88afd", - "network": "Cancun", + "lastblockhash": "0xc7c23925eea677d0570d2f1bc2fef27c034e6dcd4d9fa0c8df77996c934a981b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", @@ -324,28 +232,12 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", "code": "0x61001d600081600b8239f360015f54015f55731111111111111111111111111111111111111111ff", "storage": {} }, - "0x1111111111111111111111111111111111111111": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x60015f54015f55731111111111111111111111111111111111111111ff", - "storage": { - "0x00": "0x01" - } - }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x070c23", @@ -371,20 +263,42 @@ }, "sealEngine": "NoProof" }, - "002-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient": { + "002-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa7f44c98c8a11e34f4382b3343ba6e14a79157579188957e65f8f87c4dbf8756", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852" + }, "blocks": [ { - "rlp": "0xf90625f9023fa04ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09188010d3564c36745786f9a7a252e8a049d88445ce370a6984b9bc57dd01ca8a03ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8a0db4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083078a6c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0f947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bca00b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3c0c0", + "rlp": "0xf90602f9021ca0ea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa082cf84580fc82ed3a174397f6e781b3da2ac76548f8d5e2837b6d9631194f468a03ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8a0db4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083078a6c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0f947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bca00b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3c0c0", "blockHeader": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", + "parentHash": "0xea840814b5dd84f3000c7959834ea08c1b5ed570e09c3f2799d596e77546f852", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9188010d3564c36745786f9a7a252e8a049d88445ce370a6984b9bc57dd01ca8", + "stateRoot": "0x82cf84580fc82ed3a174397f6e781b3da2ac76548f8d5e2837b6d9631194f468", "transactionsTrie": "0x3ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8", "receiptTrie": "0xdb4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -398,36 +312,7 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xea50caf8a15437dc96af358cfa81606adc03206c477072ae6bc57994ceb09555" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9188010d3564c36745786f9a7a252e8a049d88445ce370a6984b9bc57dd01ca8", - "receiptsRoot": "0xdb4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x78a6c", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xea50caf8a15437dc96af358cfa81606adc03206c477072ae6bc57994ceb09555", - "transactions": [ - "0xf903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0f947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bca00b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x7ed2d4e7b150ffe094a82d37f28b8f55707c88d7e9ef22397db42c3cb4a6f76b" }, "transactions": [ { @@ -449,39 +334,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4ef7d787edbc0650e672d2cb8691c4e00e9b39cc6fc2c6f53d63ea24d7e7b444" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c7965caf5adce622ccad0e44becf07f16aba33dcdf00df4651f441242d42e769a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xea50caf8a15437dc96af358cfa81606adc03206c477072ae6bc57994ceb09555", - "network": "Cancun", + "lastblockhash": "0x7ed2d4e7b150ffe094a82d37f28b8f55707c88d7e9ef22397db42c3cb4a6f76b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -510,14 +364,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x2d", @@ -532,14 +378,6 @@ "code": "0x61000b600081600b8239f360015f54015f55611000ff", "storage": {} }, - "0x1111111111111111111111111111111111111111": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x60015f54015f55611000ff", - "storage": { - "0x00": "0x0a" - } - }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x169f44", @@ -574,63 +412,56 @@ }, "sealEngine": "NoProof" }, - "003-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients": { + "003-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b5a1c9728f6e784022e6a8a170df4e80fdc1452f8fc8e05fc93443400e51096ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb5a1c9728f6e784022e6a8a170df4e80fdc1452f8fc8e05fc93443400e51096b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfe2e9de15a6f3fac1e1ccc0bb3fc95d2608dcfa275d66c3ce0ed279a6edaabdd" + }, "blocks": [ { - "rlp": "0xf90625f9023fa0248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077e6c5e13ae7bc24d09aeb8c9906074b2cc176c79dbaeff05c1b57c87b87e6f1a003658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94a0b87394ba530127bad061e7a1b56f6082a00edd7cebb2587198d16aa1fa359f20b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008307a0e28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca04ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4a04f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49c0c0", + "rlp": "0xf90602f9021ca0fe2e9de15a6f3fac1e1ccc0bb3fc95d2608dcfa275d66c3ce0ed279a6edaabdda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa053815d181a47b4d7f8961579ecf785af7f0afb4897df32b3bf9eb3b506f1d65ca003658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94a0c54dfb86e4e80fd4d8d1c41e37219603be29d25381c87183594c6cd7912f0083b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008307a0b08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca04ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4a04f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49c0c0", "blockHeader": { - "parentHash": "0x248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115e", + "parentHash": "0xfe2e9de15a6f3fac1e1ccc0bb3fc95d2608dcfa275d66c3ce0ed279a6edaabdd", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77e6c5e13ae7bc24d09aeb8c9906074b2cc176c79dbaeff05c1b57c87b87e6f1", + "stateRoot": "0x53815d181a47b4d7f8961579ecf785af7f0afb4897df32b3bf9eb3b506f1d65c", "transactionsTrie": "0x03658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94", - "receiptTrie": "0xb87394ba530127bad061e7a1b56f6082a00edd7cebb2587198d16aa1fa359f20", + "receiptTrie": "0xc54dfb86e4e80fd4d8d1c41e37219603be29d25381c87183594c6cd7912f0083", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x07a0e2", + "gasUsed": "0x07a0b0", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x5ad8396cf2534110405e3013db52f0be8a83a14cb2edbb7f5f001142b9ca71f3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115e", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x77e6c5e13ae7bc24d09aeb8c9906074b2cc176c79dbaeff05c1b57c87b87e6f1", - "receiptsRoot": "0xb87394ba530127bad061e7a1b56f6082a00edd7cebb2587198d16aa1fa359f20", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x7a0e2", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x5ad8396cf2534110405e3013db52f0be8a83a14cb2edbb7f5f001142b9ca71f3", - "transactions": [ - "0xf903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca04ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4a04f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xe60d5dac19f4d2358273760893993fdba1b28249e8cee545fd5a7e24a668fae2" }, "transactions": [ { @@ -652,39 +483,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8e64e12b4551b944c32d5c1df37aaaa9b57748aa694e4e7c2f389da3660b0098", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x248edfa9f3ddfe0edd5355f5e8c9c08a23b938d2b427b6989ab5221ede34115e" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08e64e12b4551b944c32d5c1df37aaaa9b57748aa694e4e7c2f389da3660b0098a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x5ad8396cf2534110405e3013db52f0be8a83a14cb2edbb7f5f001142b9ca71f3", - "network": "Cancun", + "lastblockhash": "0xe60d5dac19f4d2358273760893993fdba1b28249e8cee545fd5a7e24a668fae2", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -712,13 +512,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -729,14 +529,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x12", @@ -764,20 +556,12 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, - "0x1111111111111111111111111111111111111111": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", - "storage": { - "0x00": "0x0a" - } - }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x16e2a6", + "balance": "0x16e210", "code": "0x", "storage": {} }, @@ -796,76 +580,69 @@ "0x0e": "0x01", "0x10": "0x01", "0x12": "0x01", - "0x14": "0x20", - "0x15": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62c2308c", + "balance": "0x056bc75e2d62c23280", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "004-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self": { + "004-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, - "blocks": [ + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0695db6f662b558b71f1f71516b5183059c89127c635fd53b3d237a78b9ec7c68a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x695db6f662b558b71f1f71516b5183059c89127c635fd53b3d237a78b9ec7c68", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xc7d51bef6f7571af73ab5225646fba17a328aede960034c2d6b88026664c30cb" + }, + "blocks": [ { - "rlp": "0xf90625f9023fa0093179b2d370854fdd5d3338b5c23b0a0136459b7d952a7046800f5e2ebd513ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c797059d36cd55af343f6bb9b0c4d6a4c501d9c82b9de0f4c11ff857ac909c5ea0bfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8a0171782378c8f2a137f7a30a51e922870068cbbe63b1253821f25411f5cbee065b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008308837e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0d61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22a069eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39c0c0", + "rlp": "0xf90602f9021ca0c7d51bef6f7571af73ab5225646fba17a328aede960034c2d6b88026664c30cba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f659c98e57e123103e5fe7d72e78af183251ee74dbd050ec2308e6ab987dd623a0bfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8a0209d4f6d0f32f340a2383bea60a30a0554cf9fc3e33b10fd7e3f57d25db07826b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083079a188203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f903def903db800a8405f5e10080830186a0b903897311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0d61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22a069eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39c0c0", "blockHeader": { - "parentHash": "0x093179b2d370854fdd5d3338b5c23b0a0136459b7d952a7046800f5e2ebd513b", + "parentHash": "0xc7d51bef6f7571af73ab5225646fba17a328aede960034c2d6b88026664c30cb", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc797059d36cd55af343f6bb9b0c4d6a4c501d9c82b9de0f4c11ff857ac909c5e", + "stateRoot": "0xf659c98e57e123103e5fe7d72e78af183251ee74dbd050ec2308e6ab987dd623", "transactionsTrie": "0xbfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8", - "receiptTrie": "0x171782378c8f2a137f7a30a51e922870068cbbe63b1253821f25411f5cbee065", + "receiptTrie": "0x209d4f6d0f32f340a2383bea60a30a0554cf9fc3e33b10fd7e3f57d25db07826", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x08837e", + "gasUsed": "0x079a18", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xf0dbe983a96c27fb112c92be114f52d1ca9ef19e5d9e71ccf476b4694a2b9b26" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x093179b2d370854fdd5d3338b5c23b0a0136459b7d952a7046800f5e2ebd513b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc797059d36cd55af343f6bb9b0c4d6a4c501d9c82b9de0f4c11ff857ac909c5e", - "receiptsRoot": "0x171782378c8f2a137f7a30a51e922870068cbbe63b1253821f25411f5cbee065", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x8837e", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xf0dbe983a96c27fb112c92be114f52d1ca9ef19e5d9e71ccf476b4694a2b9b26", - "transactions": [ - "0xf903db800a8405f5e10080830186a0b903897311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0d61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22a069eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd81fdc6b58c2bd45035e1fd383a431152daa9c6a6ccf5b76f58e4711c2aca216" }, "transactions": [ { @@ -887,39 +664,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x692367652a3b9148e24f4ccccb04e1f85b6768f8489dc44661770277a68d26e7", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x093179b2d370854fdd5d3338b5c23b0a0136459b7d952a7046800f5e2ebd513b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0692367652a3b9148e24f4ccccb04e1f85b6768f8489dc44661770277a68d26e7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xf0dbe983a96c27fb112c92be114f52d1ca9ef19e5d9e71ccf476b4694a2b9b26", - "network": "Cancun", + "lastblockhash": "0xd81fdc6b58c2bd45035e1fd383a431152daa9c6a6ccf5b76f58e4711c2aca216", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x00", @@ -939,13 +685,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -956,17 +702,9 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", - "balance": "0x15", + "balance": "0x0c", "code": "0x6000600055", "storage": { "0x00": "0x01" @@ -983,20 +721,12 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, - "0x1111111111111111111111111111111111111111": { - "nonce": "0x00", - "balance": "0x09", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", - "storage": { - "0x00": "0x0a" - } - }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x198a7a", + "balance": "0x16ce48", "code": "0x", "storage": {} }, @@ -1009,85 +739,75 @@ "0x02": "0x01", "0x04": "0x01", "0x06": "0x01", - "0x07": "0x03", "0x08": "0x01", "0x0a": "0x01", "0x0c": "0x01", - "0x0d": "0x06", "0x0e": "0x01", "0x10": "0x01", "0x12": "0x01", - "0x13": "0x09", - "0x14": "0x20", - "0x15": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b95674", + "balance": "0x056bc75e2d62c27470", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "005-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order": { + "005-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00106e7465ad1c3fb10f2c08bb1456a6f65646b08f1bcb768508ed37da5733ed7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0106e7465ad1c3fb10f2c08bb1456a6f65646b08f1bcb768508ed37da5733ed7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0" + }, "blocks": [ { - "rlp": "0xf90625f9023fa0a7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0922a51270bf31920dfddd4a2cd5f6d48da75a2ec7dd332fb47aeb52318eaafc4a05d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505a08611e46b4ccbfd63ac438b173e021fed72d7715a50c4b4f29dd192a291620bf5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008308829a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0ecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797a044f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869c0c0", + "rlp": "0xf90602f9021ca0fbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01162d95506f037dd86eaa557ffed22af34d624d86faac47d30d4af162c439a91a05d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505a07321d19e29a17e8b5cb65585e2b77599ae40fc4f08c42431354444da6f8d3c7fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830799348203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0ecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797a044f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869c0c0", "blockHeader": { - "parentHash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1", + "parentHash": "0xfbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x922a51270bf31920dfddd4a2cd5f6d48da75a2ec7dd332fb47aeb52318eaafc4", + "stateRoot": "0x1162d95506f037dd86eaa557ffed22af34d624d86faac47d30d4af162c439a91", "transactionsTrie": "0x5d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505", - "receiptTrie": "0x8611e46b4ccbfd63ac438b173e021fed72d7715a50c4b4f29dd192a291620bf5", + "receiptTrie": "0x7321d19e29a17e8b5cb65585e2b77599ae40fc4f08c42431354444da6f8d3c7f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x08829a", + "gasUsed": "0x079934", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x23620ef53fbb5258a674b4126e6e9ad1c6539afa0b50e81ecc45aad9eb49ec21" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x922a51270bf31920dfddd4a2cd5f6d48da75a2ec7dd332fb47aeb52318eaafc4", - "receiptsRoot": "0x8611e46b4ccbfd63ac438b173e021fed72d7715a50c4b4f29dd192a291620bf5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x8829a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x23620ef53fbb5258a674b4126e6e9ad1c6539afa0b50e81ecc45aad9eb49ec21", - "transactions": [ - "0xf903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0ecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797a044f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xaee7fa6554b8a07f30dd51ac0db109859e4bdabe7614643aa243adc003e6f024" }, "transactions": [ { @@ -1109,39 +829,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x673e703d528ff292bee177ed14347e8caa79bacdc2c803b44a824b7c4398adbf", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0673e703d528ff292bee177ed14347e8caa79bacdc2c803b44a824b7c4398adbfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x23620ef53fbb5258a674b4126e6e9ad1c6539afa0b50e81ecc45aad9eb49ec21", - "network": "Cancun", + "lastblockhash": "0xaee7fa6554b8a07f30dd51ac0db109859e4bdabe7614643aa243adc003e6f024", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -1161,13 +850,13 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1178,17 +867,9 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", - "balance": "0x21", + "balance": "0x12", "code": "0x6000600055", "storage": { "0x00": "0x01" @@ -1205,20 +886,12 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, - "0x1111111111111111111111111111111111111111": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", - "storage": { - "0x00": "0x0a" - } - }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1987ce", + "balance": "0x16cb9c", "code": "0x", "storage": {} }, @@ -1230,86 +903,76 @@ "0x00": "0x01", "0x02": "0x01", "0x04": "0x01", - "0x05": "0x02", "0x06": "0x01", "0x08": "0x01", "0x0a": "0x01", - "0x0b": "0x05", "0x0c": "0x01", "0x0e": "0x01", "0x10": "0x01", - "0x11": "0x08", "0x12": "0x01", - "0x14": "0x20", - "0x15": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b95f5c", + "balance": "0x056bc75e2d62c27d58", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "006-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last": { + "006-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00106e7465ad1c3fb10f2c08bb1456a6f65646b08f1bcb768508ed37da5733ed7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0106e7465ad1c3fb10f2c08bb1456a6f65646b08f1bcb768508ed37da5733ed7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0" + }, "blocks": [ { - "rlp": "0xf903d2f9023fa0a7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0156e76397db04331f66c8c30dce654285d74580dfb05eff930d38e99b71faaa3a0c17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34a04eea61f122f8a1b0b0ce2f570f848c1e68e0a4b3af09f945970a35c7aa371070b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303e15a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9018bf90188800a8405f5e10080830186a0b901367300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f31ba0aa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9a033cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1c0c0", + "rlp": "0xf903aff9021ca0fbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa008317c914fb4fb268047b4e4ea2ee79c4ce6b8475080ff4e930658b4bc22bd08a0c17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34a05e2d1115acd301a0e9ceff88d5ad9e195827d55d7670948a350055ae57d74a78b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303938f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9018bf90188800a8405f5e10080830186a0b901367300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f31ba0aa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9a033cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1c0c0", "blockHeader": { - "parentHash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1", + "parentHash": "0xfbc22e307151f4e72c13dce420e051e37466526bf5b8d66e703682b971ed9cf0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x156e76397db04331f66c8c30dce654285d74580dfb05eff930d38e99b71faaa3", + "stateRoot": "0x08317c914fb4fb268047b4e4ea2ee79c4ce6b8475080ff4e930658b4bc22bd08", "transactionsTrie": "0xc17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34", - "receiptTrie": "0x4eea61f122f8a1b0b0ce2f570f848c1e68e0a4b3af09f945970a35c7aa371070", + "receiptTrie": "0x5e2d1115acd301a0e9ceff88d5ad9e195827d55d7670948a350055ae57d74a78", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03e15a", + "gasUsed": "0x03938f", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x4bc58adce14f7f58af55f8521522f6dd44ea4d5f3449ca9f72850d2c604f4e8d" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x156e76397db04331f66c8c30dce654285d74580dfb05eff930d38e99b71faaa3", - "receiptsRoot": "0x4eea61f122f8a1b0b0ce2f570f848c1e68e0a4b3af09f945970a35c7aa371070", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3e15a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x4bc58adce14f7f58af55f8521522f6dd44ea4d5f3449ca9f72850d2c604f4e8d", - "transactions": [ - "0xf90188800a8405f5e10080830186a0b901367300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f31ba0aa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9a033cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x02063b3c19875f4ec4f7a6e3099a06997efe29d4a32b42096f80cf52bf2f307c" }, "transactions": [ { @@ -1331,11 +994,106 @@ "withdrawals": [] } ], + "lastblockhash": "0x02063b3c19875f4ec4f7a6e3099a06997efe29d4a32b42096f80cf52bf2f307c", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0abaad", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x01869d", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x21", + "0x07": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62eab5ca", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-single_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e714a4ac7909ef5dbe4cfcaff4127903eda36138051a24405b5f8b16d879d0ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x673e703d528ff292bee177ed14347e8caa79bacdc2c803b44a824b7c4398adbf", + "stateRoot": "0x5e714a4ac7909ef5dbe4cfcaff4127903eda36138051a24405b5f8b16d879d0e", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1349,21 +1107,2239 @@ "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xa7b1f1138967a929d9b149f7c5690a4732df00799daaf83441b0a218ba55e4d1" + "hash": "0xb1fea4ccb3a4a6e6b25081211f98c342c0fbe703df20e7f24c9d7ad874b2c65b" }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0673e703d528ff292bee177ed14347e8caa79bacdc2c803b44a824b7c4398adbfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x4bc58adce14f7f58af55f8521522f6dd44ea4d5f3449ca9f72850d2c604f4e8d", - "network": "Cancun", + "blocks": [ + { + "rlp": "0xf90302f9021ca0b1fea4ccb3a4a6e6b25081211f98c342c0fbe703df20e7f24c9d7ad874b2c65ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bc57233d99ae8ba04f84a9a169124bf5ffe5f1c5ee4fa582de1bb35a8aefd37da0d1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981a0e563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830262a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8dff8dd800a8405f5e10080830186a0b88c7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ca0a6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786ea0112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631ec0c0", + "blockHeader": { + "parentHash": "0xb1fea4ccb3a4a6e6b25081211f98c342c0fbe703df20e7f24c9d7ad874b2c65b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbc57233d99ae8ba04f84a9a169124bf5ffe5f1c5ee4fa582de1bb35a8aefd37d", + "transactionsTrie": "0xd1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981", + "receiptTrie": "0xe563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0262a5", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x8fbedbc0f52ddb7834bdc9c8c0704b9d5986ab849e1c8a109bb2e3e8dff0ba4f" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f3", + "v": "0x1c", + "r": "0xa6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786e", + "s": "0x112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8fbedbc0f52ddb7834bdc9c8c0704b9d5986ab849e1c8a109bb2e3e8dff0ba4f", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0727ef", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x0b", + "0x03": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f69eee", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-single_call_self_sendall_recipient": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a085b3b9083be88a28b7ff1d1ac2a4434af4163ab92ecabad9e7bb8cb50236e4bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x85b3b9083be88a28b7ff1d1ac2a4434af4163ab92ecabad9e7bb8cb50236e4bf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x22b493ab916b20a41b976541f1308c6508f8d0206c1a715287492c8deb157173" + }, + "blocks": [ + { + "rlp": "0xf90302f9021ca022b493ab916b20a41b976541f1308c6508f8d0206c1a715287492c8deb157173a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0462e06df0ef0e3917e17b6e9a0610240833cd97aa809d712391bfea0ecdcec8ea097a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0a0b0c2ff93f48b957d014987fd7c9cd2f5be20a45d2fa4daf0970d8838b898c233b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830259618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f8dff8dd800a8405f5e10080830186a0b88c7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ba04886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48a06de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301c0c0", + "blockHeader": { + "parentHash": "0x22b493ab916b20a41b976541f1308c6508f8d0206c1a715287492c8deb157173", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x462e06df0ef0e3917e17b6e9a0610240833cd97aa809d712391bfea0ecdcec8e", + "transactionsTrie": "0x97a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0", + "receiptTrie": "0xb0c2ff93f48b957d014987fd7c9cd2f5be20a45d2fa4daf0970d8838b898c233", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x025961", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x0ab60319b849b568039bc2dc16654d4b89fa75e512cf3f87965fd6ec7d529e20" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f3", + "v": "0x1b", + "r": "0x4886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48", + "s": "0x6de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0ab60319b849b568039bc2dc16654d4b89fa75e512cf3f87965fd6ec7d529e20", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f55731111111111111111111111111111111111111111ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55731111111111111111111111111111111111111111ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f55731111111111111111111111111111111111111111ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x070c23", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x1d", + "0x03": "0x76f79bcb91ddf1b74a5a3bcb3d6362aca752c7b36a25cbbc832c8282744f388d" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f6fb96", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "009-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05e714a4ac7909ef5dbe4cfcaff4127903eda36138051a24405b5f8b16d879d0ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5e714a4ac7909ef5dbe4cfcaff4127903eda36138051a24405b5f8b16d879d0e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb1fea4ccb3a4a6e6b25081211f98c342c0fbe703df20e7f24c9d7ad874b2c65b" + }, + "blocks": [ + { + "rlp": "0xf90602f9021ca0b1fea4ccb3a4a6e6b25081211f98c342c0fbe703df20e7f24c9d7ad874b2c65ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01b040bc3ce697af34c3be010e68f42f7220147427a3896c80d135c3af08699cca03ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8a0db4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083078a6c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0f947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bca00b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3c0c0", + "blockHeader": { + "parentHash": "0xb1fea4ccb3a4a6e6b25081211f98c342c0fbe703df20e7f24c9d7ad874b2c65b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1b040bc3ce697af34c3be010e68f42f7220147427a3896c80d135c3af08699cc", + "transactionsTrie": "0x3ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8", + "receiptTrie": "0xdb4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x078a6c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2d67c4dbf767455b1fd90f2f7d433c9cf285ccc2ea64a3244ed44546f5ba320b" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f3", + "v": "0x1c", + "r": "0xf947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bc", + "s": "0x0b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2d67c4dbf767455b1fd90f2f7d433c9cf285ccc2ea64a3244ed44546f5ba320b", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186cd", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x169f44", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x01", + "0x08": "0x01", + "0x0a": "0x01", + "0x0c": "0x01", + "0x0e": "0x01", + "0x10": "0x01", + "0x12": "0x01", + "0x14": "0x0b", + "0x15": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62c31128", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "010-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a015cc464fa3c59b8a31f64eb38cf7c17c4a8033992a1d8e97f2448b6e99fb932ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x15cc464fa3c59b8a31f64eb38cf7c17c4a8033992a1d8e97f2448b6e99fb932b", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xdf2c1d4c59e139805dc5d75d6f3abb9334adf7aa4ac8b9d9a34da9c6dff5fe1b" + }, + "blocks": [ + { + "rlp": "0xf90602f9021ca0df2c1d4c59e139805dc5d75d6f3abb9334adf7aa4ac8b9d9a34da9c6dff5fe1ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d693c7092ca29e0135a6042c58c80aece59bbb2d2f3bd45d0e1642b4642f7536a003658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94a0c54dfb86e4e80fd4d8d1c41e37219603be29d25381c87183594c6cd7912f0083b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008307a0b08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca04ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4a04f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49c0c0", + "blockHeader": { + "parentHash": "0xdf2c1d4c59e139805dc5d75d6f3abb9334adf7aa4ac8b9d9a34da9c6dff5fe1b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd693c7092ca29e0135a6042c58c80aece59bbb2d2f3bd45d0e1642b4642f7536", + "transactionsTrie": "0x03658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94", + "receiptTrie": "0xc54dfb86e4e80fd4d8d1c41e37219603be29d25381c87183594c6cd7912f0083", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x07a0b0", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x32f1cbb4b2c756460e64a00ac8c164089ae4556e984101c04de01f57a5c03395" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f3", + "v": "0x1c", + "r": "0x4ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4", + "s": "0x4f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x32f1cbb4b2c756460e64a00ac8c164089ae4556e984101c04de01f57a5c03395", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186b2", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x16e210", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x01", + "0x08": "0x01", + "0x0a": "0x01", + "0x0c": "0x01", + "0x0e": "0x01", + "0x10": "0x01", + "0x12": "0x01", + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62c23280", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "011-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05b3d0fd2a328c36291c3c72a0fb2431f837212080fc71e795ca7191113df9ca3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5b3d0fd2a328c36291c3c72a0fb2431f837212080fc71e795ca7191113df9ca3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb086f86125132b4b9ac25e2bd99cfbd4f9de0889cac92399565fd9047312926b" + }, + "blocks": [ + { + "rlp": "0xf90602f9021ca0b086f86125132b4b9ac25e2bd99cfbd4f9de0889cac92399565fd9047312926ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f659c98e57e123103e5fe7d72e78af183251ee74dbd050ec2308e6ab987dd623a0bfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8a0209d4f6d0f32f340a2383bea60a30a0554cf9fc3e33b10fd7e3f57d25db07826b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083079a188203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f903def903db800a8405f5e10080830186a0b903897311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0d61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22a069eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39c0c0", + "blockHeader": { + "parentHash": "0xb086f86125132b4b9ac25e2bd99cfbd4f9de0889cac92399565fd9047312926b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf659c98e57e123103e5fe7d72e78af183251ee74dbd050ec2308e6ab987dd623", + "transactionsTrie": "0xbfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8", + "receiptTrie": "0x209d4f6d0f32f340a2383bea60a30a0554cf9fc3e33b10fd7e3f57d25db07826", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x079a18", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x33474cbdcc5a1c83ed170390521aebf8612fbb99a17e0feaac3f81a3e7ed16cc" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f3", + "v": "0x1c", + "r": "0xd61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22", + "s": "0x69eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x33474cbdcc5a1c83ed170390521aebf8612fbb99a17e0feaac3f81a3e7ed16cc", + "pre": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x16ce48", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x01", + "0x08": "0x01", + "0x0a": "0x01", + "0x0c": "0x01", + "0x0e": "0x01", + "0x10": "0x01", + "0x12": "0x01", + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62c27470", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "012-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ff1668f17722bc087b4dff01624de99894e2c2105c5a88abb6f4d3ac23691921a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xff1668f17722bc087b4dff01624de99894e2c2105c5a88abb6f4d3ac23691921", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb3245aaa47003d61e503ec2662caea0c907714d7b1dd258b5364f83be800f49d" + }, + "blocks": [ + { + "rlp": "0xf90602f9021ca0b3245aaa47003d61e503ec2662caea0c907714d7b1dd258b5364f83be800f49da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00baf32fdc42c1cbc89554fcee1a16ff6d154afe05dfb11a8378fbcac5d3381bca05d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505a07321d19e29a17e8b5cb65585e2b77599ae40fc4f08c42431354444da6f8d3c7fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830799348203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0ecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797a044f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869c0c0", + "blockHeader": { + "parentHash": "0xb3245aaa47003d61e503ec2662caea0c907714d7b1dd258b5364f83be800f49d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0baf32fdc42c1cbc89554fcee1a16ff6d154afe05dfb11a8378fbcac5d3381bc", + "transactionsTrie": "0x5d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505", + "receiptTrie": "0x7321d19e29a17e8b5cb65585e2b77599ae40fc4f08c42431354444da6f8d3c7f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x079934", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb9e745e17428e71a5bf841692d7258c8b5d4a789bfb0de5e6fcc543ed48638d5" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f3", + "v": "0x1c", + "r": "0xecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797", + "s": "0x44f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb9e745e17428e71a5bf841692d7258c8b5d4a789bfb0de5e6fcc543ed48638d5", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186b2", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x16cb9c", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x01", + "0x08": "0x01", + "0x0a": "0x01", + "0x0c": "0x01", + "0x0e": "0x01", + "0x10": "0x01", + "0x12": "0x01", + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62c27d58", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "013-fork=Shanghai-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ff1668f17722bc087b4dff01624de99894e2c2105c5a88abb6f4d3ac23691921a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xff1668f17722bc087b4dff01624de99894e2c2105c5a88abb6f4d3ac23691921", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb3245aaa47003d61e503ec2662caea0c907714d7b1dd258b5364f83be800f49d" + }, + "blocks": [ + { + "rlp": "0xf903aff9021ca0b3245aaa47003d61e503ec2662caea0c907714d7b1dd258b5364f83be800f49da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5e5c1713b375a01b69453d1573f3cb9dd5ceac085d78409dfec1e5c98350b5ba0c17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34a05e2d1115acd301a0e9ceff88d5ad9e195827d55d7670948a350055ae57d74a78b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303938f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9018bf90188800a8405f5e10080830186a0b901367300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f31ba0aa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9a033cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1c0c0", + "blockHeader": { + "parentHash": "0xb3245aaa47003d61e503ec2662caea0c907714d7b1dd258b5364f83be800f49d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa5e5c1713b375a01b69453d1573f3cb9dd5ceac085d78409dfec1e5c98350b5b", + "transactionsTrie": "0xc17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34", + "receiptTrie": "0x5e2d1115acd301a0e9ceff88d5ad9e195827d55d7670948a350055ae57d74a78", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03938f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4331d2603e47af489e0ca9ac9be7f8ddb1b6e7b5050a9260e72b8f0db234cc95" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f3", + "v": "0x1b", + "r": "0xaa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9", + "s": "0x33cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x4331d2603e47af489e0ca9ac9be7f8ddb1b6e7b5050a9260e72b8f0db234cc95", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x0186a0", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0abaad", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x01869d", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x21", + "0x07": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62eab5ca", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "014-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-single_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff" + }, + "blocks": [ + { + "rlp": "0xf90325f9023fa0a9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02058edc88296cfb58a33575914903c1e078eb03fb7e9fb1ed86a3665c3508107a0d1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981a0e563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830262a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8dff8dd800a8405f5e10080830186a0b88c7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ca0a6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786ea0112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631ec0c0", + "blockHeader": { + "parentHash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2058edc88296cfb58a33575914903c1e078eb03fb7e9fb1ed86a3665c3508107", + "transactionsTrie": "0xd1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981", + "receiptTrie": "0xe563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0262a5", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb9a4b99f7d7623e0258dcb0824bcd236e301724fcb5d00740d386a34ac63d63f" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f3", + "v": "0x1c", + "r": "0xa6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786e", + "s": "0x112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb9a4b99f7d7623e0258dcb0824bcd236e301724fcb5d00740d386a34ac63d63f", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": { + "0x00": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0727ef", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x0b", + "0x03": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f69eee", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "015-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-single_call_self_sendall_recipient": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fe84f1f8fa916f19325a97ec4e7e2ada2fdc468ae3ba5549ac4b47c4400afb82a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfe84f1f8fa916f19325a97ec4e7e2ada2fdc468ae3ba5549ac4b47c4400afb82", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2567d47238e71e4889529db4c7145811640bb70d64058c3fa44c6f8bd65b6afc" + }, + "blocks": [ + { + "rlp": "0xf90325f9023fa02567d47238e71e4889529db4c7145811640bb70d64058c3fa44c6f8bd65b6afca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09cd99d084e9486366bf46079ce02e1046b4f3f7a91ab59a8f8d9aef9fec27b72a097a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0a0b0c2ff93f48b957d014987fd7c9cd2f5be20a45d2fa4daf0970d8838b898c233b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830259618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8dff8dd800a8405f5e10080830186a0b88c7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ba04886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48a06de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301c0c0", + "blockHeader": { + "parentHash": "0x2567d47238e71e4889529db4c7145811640bb70d64058c3fa44c6f8bd65b6afc", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9cd99d084e9486366bf46079ce02e1046b4f3f7a91ab59a8f8d9aef9fec27b72", + "transactionsTrie": "0x97a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0", + "receiptTrie": "0xb0c2ff93f48b957d014987fd7c9cd2f5be20a45d2fa4daf0970d8838b898c233", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x025961", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x09972dd2512a2e92a26abb7747c6a7a0f7c5af47351c63456415abffb0a92c6d" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f3", + "v": "0x1b", + "r": "0x4886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48", + "s": "0x6de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x09972dd2512a2e92a26abb7747c6a7a0f7c5af47351c63456415abffb0a92c6d", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f55731111111111111111111111111111111111111111ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55731111111111111111111111111111111111111111ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001d600081600b8239f360015f54015f55731111111111111111111111111111111111111111ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55731111111111111111111111111111111111111111ff", + "storage": { + "0x00": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x070c23", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x0186a0", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x1d", + "0x03": "0x76f79bcb91ddf1b74a5a3bcb3d6362aca752c7b36a25cbbc832c8282744f388d" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f6fb96", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "016-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_single_sendall_recipient": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xf23de2cab4d8d1c87ff9759e964d8d0bbcf2f8f5e1fe48b697b5616e95efd6bf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff" + }, + "blocks": [ + { + "rlp": "0xf90625f9023fa0a9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0afb93598bc3831e5731f0e19448b2152a8e98f19419c53c1908b2a1f1869e570a03ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8a0db4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083078a6c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0f947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bca00b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3c0c0", + "blockHeader": { + "parentHash": "0xa9824fd0d2b54b5ee40d8326f27024415feab254ae06c149f104df1ea61c46ff", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xafb93598bc3831e5731f0e19448b2152a8e98f19419c53c1908b2a1f1869e570", + "transactionsTrie": "0x3ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8", + "receiptTrie": "0xdb4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x078a6c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcc7d8a77ef48a2a437bb5b47737351315af059c0c1a34ff3f7b77d09c316a6c3" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f3", + "v": "0x1c", + "r": "0xf947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bc", + "s": "0x0b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xcc7d8a77ef48a2a437bb5b47737351315af059c0c1a34ff3f7b77d09c316a6c3", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x2d", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61000b600081600b8239f360015f54015f55611000ff", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f55611000ff", + "storage": { + "0x00": "0x0a" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x169f44", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x01", + "0x08": "0x01", + "0x0a": "0x01", + "0x0c": "0x01", + "0x0e": "0x01", + "0x10": "0x01", + "0x12": "0x01", + "0x14": "0x0b", + "0x15": "0x38771ac34238cc64cf84bb1bd7a542dce5a368ba03a3e1a2c3931b7e4954e4c1" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62c31128", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "017-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d1b2429e564b5172ca5eca6ec103824fbf461d251bdc0fbc9f9d55e17835699ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd1b2429e564b5172ca5eca6ec103824fbf461d251bdc0fbc9f9d55e17835699e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf19d96bcffd7b76925eae8ca195b3b3f8d7c76a856ca60b91a0432edf7b3e182" + }, + "blocks": [ + { + "rlp": "0xf90625f9023fa0f19d96bcffd7b76925eae8ca195b3b3f8d7c76a856ca60b91a0432edf7b3e182a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0198a059c958f73014d11f95e4a661081d236e8418d195ba472d506c63db9d310a003658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94a0c54dfb86e4e80fd4d8d1c41e37219603be29d25381c87183594c6cd7912f0083b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008307a0b08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca04ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4a04f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49c0c0", + "blockHeader": { + "parentHash": "0xf19d96bcffd7b76925eae8ca195b3b3f8d7c76a856ca60b91a0432edf7b3e182", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x198a059c958f73014d11f95e4a661081d236e8418d195ba472d506c63db9d310", + "transactionsTrie": "0x03658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94", + "receiptTrie": "0xc54dfb86e4e80fd4d8d1c41e37219603be29d25381c87183594c6cd7912f0083", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x07a0b0", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8661cb0beea8bd9283d2176ffb2ebec707554a51459c8eaf23ff51e6cac55ab2" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f3", + "v": "0x1c", + "r": "0x4ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4", + "s": "0x4f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8661cb0beea8bd9283d2176ffb2ebec707554a51459c8eaf23ff51e6cac55ab2", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x12", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": { + "0x00": "0x0a" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x16e210", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x01", + "0x08": "0x01", + "0x0a": "0x01", + "0x0c": "0x01", + "0x0e": "0x01", + "0x10": "0x01", + "0x12": "0x01", + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62c23280", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "018-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a606ee3234eb9ce4939516e51eb6aa770e74e2743f6d5e55ec546c28f786f927a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa606ee3234eb9ce4939516e51eb6aa770e74e2743f6d5e55ec546c28f786f927", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcaf69cc1acf1efca40a160d3d5475ad6bccf1b94f681da38925204fdca9b6dd1" + }, + "blocks": [ + { + "rlp": "0xf90625f9023fa0caf69cc1acf1efca40a160d3d5475ad6bccf1b94f681da38925204fdca9b6dd1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa068e572fa65a71c4ee9650eb59689194180891d88d96f9fd9118bcc9c9cc710fca0bfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8a0bd49f2f60d89c8be5673151a5723e328c265b659f7995ef267b03c234e5cb01ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008308834c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0d61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22a069eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39c0c0", + "blockHeader": { + "parentHash": "0xcaf69cc1acf1efca40a160d3d5475ad6bccf1b94f681da38925204fdca9b6dd1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x68e572fa65a71c4ee9650eb59689194180891d88d96f9fd9118bcc9c9cc710fc", + "transactionsTrie": "0xbfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8", + "receiptTrie": "0xbd49f2f60d89c8be5673151a5723e328c265b659f7995ef267b03c234e5cb01a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x08834c", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe79d073126f2e29fdbe181d9f0df5809eabec4b731a4e4cbacde1ddd174db919" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f3", + "v": "0x1c", + "r": "0xd61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22", + "s": "0x69eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe79d073126f2e29fdbe181d9f0df5809eabec4b731a4e4cbacde1ddd174db919", + "pre": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x15", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0f", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x09", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": { + "0x00": "0x0a" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1989e4", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x06": "0x01", + "0x07": "0x03", + "0x08": "0x01", + "0x0a": "0x01", + "0x0c": "0x01", + "0x0d": "0x06", + "0x0e": "0x01", + "0x10": "0x01", + "0x12": "0x01", + "0x13": "0x09", + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b95868", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "019-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_different_order": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aa67de01ffc602ed084fe5a6191352dd11e80944b6b2b4489041a6db831e44c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaa67de01ffc602ed084fe5a6191352dd11e80944b6b2b4489041a6db831e44c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3e" + }, + "blocks": [ + { + "rlp": "0xf90625f9023fa07f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa068f48a79ecd8f5f868d0566c39c5a6ab18c158b88e831fe07b61c1ac15a96bcfa05d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505a01a37c6da5ae682ed6052d24d29d197fcf6f2bd6d87e8039f6a503914076feec7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830882688203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0ecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797a044f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869c0c0", + "blockHeader": { + "parentHash": "0x7f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x68f48a79ecd8f5f868d0566c39c5a6ab18c158b88e831fe07b61c1ac15a96bcf", + "transactionsTrie": "0x5d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505", + "receiptTrie": "0x1a37c6da5ae682ed6052d24d29d197fcf6f2bd6d87e8039f6a503914076feec7", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x088268", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb5c92971ee136f42cb16296f8b1b34fc947f4748cf785482d306d9dde4bee5cc" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f3", + "v": "0x1c", + "r": "0xecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797", + "s": "0x44f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb5c92971ee136f42cb16296f8b1b34fc947f4748cf785482d306d9dde4bee5cc", + "pre": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x21", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0c", + "code": "0x6000600055", + "storage": { + "0x00": "0x01" + } + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x1111111111111111111111111111111111111111": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": { + "0x00": "0x0a" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x198738", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x018673", + "code": "0x00", + "storage": { + "0x00": "0x01", + "0x02": "0x01", + "0x04": "0x01", + "0x05": "0x02", + "0x06": "0x01", + "0x08": "0x01", + "0x0a": "0x01", + "0x0b": "0x05", + "0x0c": "0x01", + "0x0e": "0x01", + "0x10": "0x01", + "0x11": "0x08", + "0x12": "0x01", + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62b96150", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "020-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=0-multiple_calls_multiple_sendall_recipients_including_self_last": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aa67de01ffc602ed084fe5a6191352dd11e80944b6b2b4489041a6db831e44c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaa67de01ffc602ed084fe5a6191352dd11e80944b6b2b4489041a6db831e44c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3e" + }, + "blocks": [ + { + "rlp": "0xf903d2f9023fa07f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a2daab6b643a5c95a3c4fda78e4d4196c4ab4951b93c181cb29c4a5070e94e5ca0c17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34a0371eb72b35a3f2d3db43316be378d0222be3c903bb9b8717ed873f148e6d5c11b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303e14b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9018bf90188800a8405f5e10080830186a0b901367300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f31ba0aa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9a033cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1c0c0", + "blockHeader": { + "parentHash": "0x7f2a7217ad1141d52814033ac88635683195385449c0ba083c4e0b0f6f23fe3e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa2daab6b643a5c95a3c4fda78e4d4196c4ab4951b93c181cb29c4a5070e94e5c", + "transactionsTrie": "0xc17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34", + "receiptTrie": "0x371eb72b35a3f2d3db43316be378d0222be3c903bb9b8717ed873f148e6d5c11", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03e14b", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4e1f7a918364af0c4fd6d8e615e21c0f564b25270adac8aa4ed863f8f759a2a7" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x0186a0", + "data": "0x7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f3", + "v": "0x1b", + "r": "0xaa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9", + "s": "0x33cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x4e1f7a918364af0c4fd6d8e615e21c0f564b25270adac8aa4ed863f8f759a2a7", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -1383,13 +3359,19 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -1400,14 +3382,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -1427,20 +3401,28 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x02", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x0ba40e", + "balance": "0x0ba3e1", "code": "0x", "storage": {} }, @@ -1453,33 +3435,58 @@ "0x02": "0x01", "0x04": "0x01", "0x05": "0x02", - "0x06": "0x20", - "0x07": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x06": "0x21", + "0x07": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62e7abdc", + "balance": "0x056bc75e2d62e7ac72", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "007-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-single_call": { + "021-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-single_call": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014c592a50d3647da635a8152b1904ff08d05e32c730a33379bd881d069aa33a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x14c592a50d3647da635a8152b1904ff08d05e32c730a33379bd881d069aa33a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75032dc8dcbb4f6a7f2b6b2615cac9b20fb1d762cea0f96425d12c6220afd373" + }, "blocks": [ { - "rlp": "0xf90325f9023fa02c957cc7e4f71a4a00dcd1a28d30a64d31cc7b5bc7fe6c420ac9b7548fdff078a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01f53ca3434e19be38efd19914daed21696190f5e258c75ca3bbd21086014b9e7a0d1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981a0e563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830262a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8dff8dd800a8405f5e10080830186a0b88c7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ca0a6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786ea0112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631ec0c0", + "rlp": "0xf90325f9023fa075032dc8dcbb4f6a7f2b6b2615cac9b20fb1d762cea0f96425d12c6220afd373a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa030752bd848b35cec843d72dd158955b06a01a0cc5ceaaa3bb9eae20cde39c28aa0d1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981a0e563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830262a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8dff8dd800a8405f5e10080830186a0b88c7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ca0a6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786ea0112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631ec0c0", "blockHeader": { - "parentHash": "0x2c957cc7e4f71a4a00dcd1a28d30a64d31cc7b5bc7fe6c420ac9b7548fdff078", + "parentHash": "0x75032dc8dcbb4f6a7f2b6b2615cac9b20fb1d762cea0f96425d12c6220afd373", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1f53ca3434e19be38efd19914daed21696190f5e258c75ca3bbd21086014b9e7", + "stateRoot": "0x30752bd848b35cec843d72dd158955b06a01a0cc5ceaaa3bb9eae20cde39c28a", "transactionsTrie": "0xd1ddd0efd118ecec46229352d9ac41d17bf97ddbf651b0ecd5d72ab3568b1981", "receiptTrie": "0xe563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1496,33 +3503,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x90cc2bd4ac8048d659572c42ae80c07c32c02f6b9878b293dd8a30fff7a3df22" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2c957cc7e4f71a4a00dcd1a28d30a64d31cc7b5bc7fe6c420ac9b7548fdff078", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1f53ca3434e19be38efd19914daed21696190f5e258c75ca3bbd21086014b9e7", - "receiptsRoot": "0xe563f797013b0067608b84d3fed6a263421b25f5e5d4d9922f429f242fe439e0", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x262a5", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x90cc2bd4ac8048d659572c42ae80c07c32c02f6b9878b293dd8a30fff7a3df22", - "transactions": [ - "0xf8dd800a8405f5e10080830186a0b88c7300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ca0a6c7762b0f43d815111921c0bf47e9ab7e0e0c4bd6215a777b2d0e8de072786ea0112a7a0f542174dcbc8b33e00a64b1e34aa1f38d8ded20fc2ef49ec7f683631e" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x52d9c967919800c76d9cd2b96bcfbeed9c7f504246b74f39ca8229d782be13ef" }, "transactions": [ { @@ -1544,39 +3525,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7e19bc90dd23a1fe1b30fed8dc0dda34e53ff07baa405595d072e5d311c6739d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2c957cc7e4f71a4a00dcd1a28d30a64d31cc7b5bc7fe6c420ac9b7548fdff078" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e19bc90dd23a1fe1b30fed8dc0dda34e53ff07baa405595d072e5d311c6739da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x90cc2bd4ac8048d659572c42ae80c07c32c02f6b9878b293dd8a30fff7a3df22", - "network": "Cancun", + "lastblockhash": "0x52d9c967919800c76d9cd2b96bcfbeed9c7f504246b74f39ca8229d782be13ef", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -1591,6 +3541,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611000ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -1605,14 +3561,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186a0", @@ -1627,6 +3575,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611000ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -1660,20 +3616,45 @@ }, "sealEngine": "NoProof" }, - "008-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-single_call_self_sendall_recipient": { + "022-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-single_call_self_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09f31665cec2b9a2f6c9efd251fd4cb18f964085d520d901c06d46f51c946e33da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9f31665cec2b9a2f6c9efd251fd4cb18f964085d520d901c06d46f51c946e33d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x31019b9b2db325f560c804fcc90440d3bf5f6b8d0075e79aaa5244bf6077f4b8" + }, "blocks": [ { - "rlp": "0xf90325f9023fa0ef0f714dd3ae9203a2333470e5ea6e063a0f44b2fe3daa521b4357760117fee3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bbb9b47c76de61b747dfb265f095c56ec208dfe092e19437ba9431e2aad5ca1fa097a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0a07ec5b169b5c239ddf832e9b476c1475eb93c11c3f5ead5d459c0aab5d827ca29b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302a71d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8dff8dd800a8405f5e10080830186a0b88c7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ba04886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48a06de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301c0c0", + "rlp": "0xf90325f9023fa031019b9b2db325f560c804fcc90440d3bf5f6b8d0075e79aaa5244bf6077f4b8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f56172e29c9a67ebb2444fca464bb9ee6f9045feb60529b64d1c9e000544bd75a097a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0a07ec5b169b5c239ddf832e9b476c1475eb93c11c3f5ead5d459c0aab5d827ca29b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302a71d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f8dff8dd800a8405f5e10080830186a0b88c7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ba04886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48a06de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301c0c0", "blockHeader": { - "parentHash": "0xef0f714dd3ae9203a2333470e5ea6e063a0f44b2fe3daa521b4357760117fee3", + "parentHash": "0x31019b9b2db325f560c804fcc90440d3bf5f6b8d0075e79aaa5244bf6077f4b8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbbb9b47c76de61b747dfb265f095c56ec208dfe092e19437ba9431e2aad5ca1f", + "stateRoot": "0xf56172e29c9a67ebb2444fca464bb9ee6f9045feb60529b64d1c9e000544bd75", "transactionsTrie": "0x97a2bb31030bc0b10943c5d883d165c3e96255254ff8c7b4be4ee5c5d4609db0", "receiptTrie": "0x7ec5b169b5c239ddf832e9b476c1475eb93c11c3f5ead5d459c0aab5d827ca29", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1690,33 +3671,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x3c5f66e953e722d0ac6a44347f6bc53f01adfbd770bc4bf34ce20a470a042963" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xef0f714dd3ae9203a2333470e5ea6e063a0f44b2fe3daa521b4357760117fee3", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbbb9b47c76de61b747dfb265f095c56ec208dfe092e19437ba9431e2aad5ca1f", - "receiptsRoot": "0x7ec5b169b5c239ddf832e9b476c1475eb93c11c3f5ead5d459c0aab5d827ca29", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x2a71d", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x3c5f66e953e722d0ac6a44347f6bc53f01adfbd770bc4bf34ce20a470a042963", - "transactions": [ - "0xf8dd800a8405f5e10080830186a0b88c7311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557311111111111111111111111111111111111111113b6002557311111111111111111111111111111111111111113f60035560016020f31ba04886ce043ff7efebeca8f9802d6ceefa4d3f1e662501feb733c413ef45fb5a48a06de0794f8c48d639d3d95ebc6fc49feda3c376e23339df93596bfe39003e0301" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd29f337c6afd0add201c87f6bc1fdce2ee884f08cfa8950eb2709ccf2b160f33" }, "transactions": [ { @@ -1738,45 +3693,20 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x907f9e93d6a1c12d37bf2a6c1b635b09a1d189a17ece23e13bdf6f40a3262396", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xef0f714dd3ae9203a2333470e5ea6e063a0f44b2fe3daa521b4357760117fee3" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0907f9e93d6a1c12d37bf2a6c1b635b09a1d189a17ece23e13bdf6f40a3262396a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x3c5f66e953e722d0ac6a44347f6bc53f01adfbd770bc4bf34ce20a470a042963", - "network": "Cancun", + "lastblockhash": "0xd29f337c6afd0add201c87f6bc1fdce2ee884f08cfa8950eb2709ccf2b160f33", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", "code": "0x61001d600081600b8239f360015f54015f55731111111111111111111111111111111111111111ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -1791,20 +3721,20 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", "code": "0x61001d600081600b8239f360015f54015f55731111111111111111111111111111111111111111ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -1839,20 +3769,45 @@ }, "sealEngine": "NoProof" }, - "009-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient": { + "023-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_single_sendall_recipient": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a014c592a50d3647da635a8152b1904ff08d05e32c730a33379bd881d069aa33a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x14c592a50d3647da635a8152b1904ff08d05e32c730a33379bd881d069aa33a3", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75032dc8dcbb4f6a7f2b6b2615cac9b20fb1d762cea0f96425d12c6220afd373" + }, "blocks": [ { - "rlp": "0xf90625f9023fa02c957cc7e4f71a4a00dcd1a28d30a64d31cc7b5bc7fe6c420ac9b7548fdff078a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bf045f453d33f10def7fecaf75cc586a84af83b1357f30f504b560dfa30a5c12a03ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8a0db4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083078a6c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0f947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bca00b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3c0c0", + "rlp": "0xf90625f9023fa075032dc8dcbb4f6a7f2b6b2615cac9b20fb1d762cea0f96425d12c6220afd373a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08f0899ddd2246bb350576a33644f0634aec89a30c94d9dea83a1612b1d5dc930a03ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8a0db4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083078a6c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0f947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bca00b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3c0c0", "blockHeader": { - "parentHash": "0x2c957cc7e4f71a4a00dcd1a28d30a64d31cc7b5bc7fe6c420ac9b7548fdff078", + "parentHash": "0x75032dc8dcbb4f6a7f2b6b2615cac9b20fb1d762cea0f96425d12c6220afd373", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbf045f453d33f10def7fecaf75cc586a84af83b1357f30f504b560dfa30a5c12", + "stateRoot": "0x8f0899ddd2246bb350576a33644f0634aec89a30c94d9dea83a1612b1d5dc930", "transactionsTrie": "0x3ef7e37dcb90067cfaa951dc2f0f3365a1f4da0eeef07ed9ee563bf46083e7c8", "receiptTrie": "0xdb4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfd", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1869,33 +3824,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xba815ba60171a16e16a189336ac09c457b95e6e5672dc75cd7c84cb9f633c7d3" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x2c957cc7e4f71a4a00dcd1a28d30a64d31cc7b5bc7fe6c420ac9b7548fdff078", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbf045f453d33f10def7fecaf75cc586a84af83b1357f30f504b560dfa30a5c12", - "receiptsRoot": "0xdb4f9da995044a34b9339b08b415d493a95a5acc6448289126cf2ad50a0e9cfd", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x78a6c", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xba815ba60171a16e16a189336ac09c457b95e6e5672dc75cd7c84cb9f633c7d3", - "transactions": [ - "0xf903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000010006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000010006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000010006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000010006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000010006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000010006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0f947adff65617ee6f171babc795b05c5a0c6003059e31ade7e85216165b445bca00b187ebe84c38865c97c5d8322bfeb61f6259044bc699398369011ef588020d3" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x0499ac58a9bf1a207cebf134ea048719298ce7fc871c4eee71fad15bb8815c91" }, "transactions": [ { @@ -1917,39 +3846,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7e19bc90dd23a1fe1b30fed8dc0dda34e53ff07baa405595d072e5d311c6739d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x2c957cc7e4f71a4a00dcd1a28d30a64d31cc7b5bc7fe6c420ac9b7548fdff078" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07e19bc90dd23a1fe1b30fed8dc0dda34e53ff07baa405595d072e5d311c6739da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xba815ba60171a16e16a189336ac09c457b95e6e5672dc75cd7c84cb9f633c7d3", - "network": "Cancun", + "lastblockhash": "0x0499ac58a9bf1a207cebf134ea048719298ce7fc871c4eee71fad15bb8815c91", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -1964,6 +3862,12 @@ "code": "0x61000b600081600b8239f360015f54015f55611000ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", @@ -1978,14 +3882,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186cd", @@ -2000,6 +3896,14 @@ "code": "0x61000b600081600b8239f360015f54015f55611000ff", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", @@ -2042,27 +3946,52 @@ }, "sealEngine": "NoProof" }, - "010-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients": { + "024-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ae21c2c48b9c72d798d2b457b1b8815ed4e60eab450dfdc7ac6600a83bb764d4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xae21c2c48b9c72d798d2b457b1b8815ed4e60eab450dfdc7ac6600a83bb764d4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa8bfea7b9adf9fb714c4c5ff7b71d8f9f6024e89acdf677b2e9a7cd2f33f6402" + }, "blocks": [ { - "rlp": "0xf90625f9023fa061eca37fb1ac8f0104e925617aca777e765a64fa83c2130c4ed43ae8a12a8c88a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa080189bafa47ed041973f25cdbbd8e973ac0fa9e4db18a9b8cf87a0199976d4ada003658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94a0b87394ba530127bad061e7a1b56f6082a00edd7cebb2587198d16aa1fa359f20b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008307a0e28203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca04ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4a04f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49c0c0", + "rlp": "0xf90625f9023fa0a8bfea7b9adf9fb714c4c5ff7b71d8f9f6024e89acdf677b2e9a7cd2f33f6402a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00ca8c50d03229e0c1d19b40835c821e69ac284975000934cee3eb523148d187fa003658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94a0c54dfb86e4e80fd4d8d1c41e37219603be29d25381c87183594c6cd7912f0083b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008307a0b08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca04ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4a04f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49c0c0", "blockHeader": { - "parentHash": "0x61eca37fb1ac8f0104e925617aca777e765a64fa83c2130c4ed43ae8a12a8c88", + "parentHash": "0xa8bfea7b9adf9fb714c4c5ff7b71d8f9f6024e89acdf677b2e9a7cd2f33f6402", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x80189bafa47ed041973f25cdbbd8e973ac0fa9e4db18a9b8cf87a0199976d4ad", + "stateRoot": "0x0ca8c50d03229e0c1d19b40835c821e69ac284975000934cee3eb523148d187f", "transactionsTrie": "0x03658898a3fc276e6a954fda94a84830083d80efb5890a7f2e2418643e6f9b94", - "receiptTrie": "0xb87394ba530127bad061e7a1b56f6082a00edd7cebb2587198d16aa1fa359f20", + "receiptTrie": "0xc54dfb86e4e80fd4d8d1c41e37219603be29d25381c87183594c6cd7912f0083", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x07a0e2", + "gasUsed": "0x07a0b0", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2072,33 +4001,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x51d38fd0afb59bde83b03da3b88f3940c76b22045571d769a65c05acc3b9b132" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x61eca37fb1ac8f0104e925617aca777e765a64fa83c2130c4ed43ae8a12a8c88", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x80189bafa47ed041973f25cdbbd8e973ac0fa9e4db18a9b8cf87a0199976d4ad", - "receiptsRoot": "0xb87394ba530127bad061e7a1b56f6082a00edd7cebb2587198d16aa1fa359f20", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x7a0e2", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x51d38fd0afb59bde83b03da3b88f3940c76b22045571d769a65c05acc3b9b132", - "transactions": [ - "0xf903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca04ed8d48b74b749c984cfe5f5836fa29f25447be212733e0ca4b349eda28a7eb4a04f17d9e660ace5d384f3989ed8919f679beaadd3014821d76fa523cbbdbbef49" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xa585ceb55ac3cab84177cf870893a8c8eb38f0dcb97742b7643a6069f0a0fcba" }, "transactions": [ { @@ -2120,39 +4023,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xbaed213fb0a499d1bcb047436c201fd8ac4ab966277d4c188a3e17c1c957d525", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x61eca37fb1ac8f0104e925617aca777e765a64fa83c2130c4ed43ae8a12a8c88" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0baed213fb0a499d1bcb047436c201fd8ac4ab966277d4c188a3e17c1c957d525a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x51d38fd0afb59bde83b03da3b88f3940c76b22045571d769a65c05acc3b9b132", - "network": "Cancun", + "lastblockhash": "0xa585ceb55ac3cab84177cf870893a8c8eb38f0dcb97742b7643a6069f0a0fcba", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -2180,13 +4052,19 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2197,14 +4075,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186b2", @@ -2232,20 +4102,28 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": { "0x00": "0x0a" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x16e2a6", + "balance": "0x16e210", "code": "0x", "storage": {} }, @@ -2264,40 +4142,65 @@ "0x0e": "0x01", "0x10": "0x01", "0x12": "0x01", - "0x14": "0x20", - "0x15": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62c2308c", + "balance": "0x056bc75e2d62c23280", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "011-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self": { + "025-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c5f97c0cda4e9bad439b1c0ee1326473ed193725483f2297bf962a56b548d8fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c5f97c0cda4e9bad439b1c0ee1326473ed193725483f2297bf962a56b548d8f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x12c020a0facd4afa4785ee0c7037e591b5d038fad9eb4d1012840f5fcde96b27" + }, "blocks": [ { - "rlp": "0xf90625f9023fa08a717c42caba2f1904dd82cde2d36ae3927ec6646dc25a19f494321937dfd37ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09561656c78f0e10aaa7bc722005e5aa38c06274e61c3b83277fa666bc1ca8d16a0bfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8a025e9ea905fd59e62f0d60a96058c233ff93776383f5cbb323709aefbbfb25f74b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008308d13a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0d61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22a069eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39c0c0", + "rlp": "0xf90625f9023fa012c020a0facd4afa4785ee0c7037e591b5d038fad9eb4d1012840f5fcde96b27a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01599ab65bbcedd5fbcaf54fe0a11d9c776e442b0fdcae3fd888c4619391cfd20a0bfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8a0a687cd3c54e0aade7d425a6a9d471b5b818783542b75b2ad20572f6970a1e303b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008308d1088203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0d61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22a069eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39c0c0", "blockHeader": { - "parentHash": "0x8a717c42caba2f1904dd82cde2d36ae3927ec6646dc25a19f494321937dfd37b", + "parentHash": "0x12c020a0facd4afa4785ee0c7037e591b5d038fad9eb4d1012840f5fcde96b27", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9561656c78f0e10aaa7bc722005e5aa38c06274e61c3b83277fa666bc1ca8d16", + "stateRoot": "0x1599ab65bbcedd5fbcaf54fe0a11d9c776e442b0fdcae3fd888c4619391cfd20", "transactionsTrie": "0xbfd9c62d5bb8facba9dd2001c12cd2ba9f4b8de54be19a5b9ec25ce1d38fc2f8", - "receiptTrie": "0x25e9ea905fd59e62f0d60a96058c233ff93776383f5cbb323709aefbbfb25f74", + "receiptTrie": "0xa687cd3c54e0aade7d425a6a9d471b5b818783542b75b2ad20572f6970a1e303", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x08d13a", + "gasUsed": "0x08d108", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2307,33 +4210,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x9691b7d449c0e5f3e9d09babea6c92351e1da5c1908c49b2acfc2e5fa11c2818" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0x8a717c42caba2f1904dd82cde2d36ae3927ec6646dc25a19f494321937dfd37b", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9561656c78f0e10aaa7bc722005e5aa38c06274e61c3b83277fa666bc1ca8d16", - "receiptsRoot": "0x25e9ea905fd59e62f0d60a96058c233ff93776383f5cbb323709aefbbfb25f74", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x8d13a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x9691b7d449c0e5f3e9d09babea6c92351e1da5c1908c49b2acfc2e5fa11c2818", - "transactions": [ - "0xf903db800a8405f5e10080830186a0b903897311111111111111111111111111111111111111116000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557300000000000000000000000000000000000030006000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111116000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557300000000000000000000000000000000000030006000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557311111111111111111111111111111111111111116000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557300000000000000000000000000000000000030006000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557311111111111111111111111111111111111111116000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0d61edc8c664348b664eccceb030b36b62b7b24e82b487a6956b1885280244c22a069eb416325b599b92c3d740fd0ee306aae2cbf918d26da467df5d26d46331a39" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xb0da04c0cc5c7817c183e02916b8a2c332a21bd1dcbf2ce74119dcaa75701b8b" }, "transactions": [ { @@ -2355,39 +4232,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1b0f931dc387b2fd7da43c6ead4598c1a4fd03bee7b5649ec8829fb38e145f46", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x8a717c42caba2f1904dd82cde2d36ae3927ec6646dc25a19f494321937dfd37b" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01b0f931dc387b2fd7da43c6ead4598c1a4fd03bee7b5649ec8829fb38e145f46a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x9691b7d449c0e5f3e9d09babea6c92351e1da5c1908c49b2acfc2e5fa11c2818", - "network": "Cancun", + "lastblockhash": "0xb0da04c0cc5c7817c183e02916b8a2c332a21bd1dcbf2ce74119dcaa75701b8b", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x00", @@ -2407,13 +4253,19 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2424,14 +4276,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000002000": { "nonce": "0x00", "balance": "0x0186b5", @@ -2451,20 +4295,28 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x09", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": { "0x00": "0x0a" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1a73ae", + "balance": "0x1a7318", "code": "0x", "storage": {} }, @@ -2487,40 +4339,65 @@ "0x10": "0x01", "0x12": "0x01", "0x13": "0x09", - "0x14": "0x20", - "0x15": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b64d1c", + "balance": "0x056bc75e2d62b64f10", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "012-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order": { + "026-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_different_order": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a012004c1691317016695abb9164dce01f41c622c49b9bfa661d10778f2737bf3ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x12004c1691317016695abb9164dce01f41c622c49b9bfa661d10778f2737bf3e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x736ed0a2ca15281a043158198cf6e714a99dc428256d128b4a1f3a934577d94d" + }, "blocks": [ { - "rlp": "0xf90625f9023fa0e34e7836c16cbc6ef5268d57ea52ed89f4354e18d14d0506528f02d83e07fa84a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05974f67b6234b79dd92131ec8b086f1856d7761261509b60e6c5f2ff36f4ded3a05d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505a08611e46b4ccbfd63ac438b173e021fed72d7715a50c4b4f29dd192a291620bf5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008308829a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0ecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797a044f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869c0c0", + "rlp": "0xf90625f9023fa0736ed0a2ca15281a043158198cf6e714a99dc428256d128b4a1f3a934577d94da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa017514338c9f1035f1945a32815a41d28cdd8a2de736b9933e28cbaaf489decb8a05d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505a01a37c6da5ae682ed6052d24d29d197fcf6f2bd6d87e8039f6a503914076feec7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830882688203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f903def903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0ecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797a044f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869c0c0", "blockHeader": { - "parentHash": "0xe34e7836c16cbc6ef5268d57ea52ed89f4354e18d14d0506528f02d83e07fa84", + "parentHash": "0x736ed0a2ca15281a043158198cf6e714a99dc428256d128b4a1f3a934577d94d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5974f67b6234b79dd92131ec8b086f1856d7761261509b60e6c5f2ff36f4ded3", + "stateRoot": "0x17514338c9f1035f1945a32815a41d28cdd8a2de736b9933e28cbaaf489decb8", "transactionsTrie": "0x5d786d7ec824e40663bb5c108efe836b087be606f6ee8a1e08daa4d8e1004505", - "receiptTrie": "0x8611e46b4ccbfd63ac438b173e021fed72d7715a50c4b4f29dd192a291620bf5", + "receiptTrie": "0x1a37c6da5ae682ed6052d24d29d197fcf6f2bd6d87e8039f6a503914076feec7", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x08829a", + "gasUsed": "0x088268", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2530,33 +4407,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0x7dc70956eca39df7f28acc917f81174bd0bc0620de53e5a3be45e2471d0eb21c" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe34e7836c16cbc6ef5268d57ea52ed89f4354e18d14d0506528f02d83e07fa84", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5974f67b6234b79dd92131ec8b086f1856d7761261509b60e6c5f2ff36f4ded3", - "receiptsRoot": "0x8611e46b4ccbfd63ac438b173e021fed72d7715a50c4b4f29dd192a291620bf5", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x8829a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0x7dc70956eca39df7f28acc917f81174bd0bc0620de53e5a3be45e2471d0eb21c", - "transactions": [ - "0xf903db800a8405f5e10080830186a0b903897300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557300000000000000000000000000000000000010006000526000600060206000600373111111111111111111111111111111111111111145f1600655731111111111111111111111111111111111111111316007557300000000000000000000000000000000000020006000526000600060206000600473111111111111111111111111111111111111111145f1600855731111111111111111111111111111111111111111316009557311111111111111111111111111111111111111116000526000600060206000600573111111111111111111111111111111111111111145f1600a5573111111111111111111111111111111111111111131600b557300000000000000000000000000000000000010006000526000600060206000600673111111111111111111111111111111111111111145f1600c5573111111111111111111111111111111111111111131600d557300000000000000000000000000000000000020006000526000600060206000600773111111111111111111111111111111111111111145f1600e5573111111111111111111111111111111111111111131600f557311111111111111111111111111111111111111116000526000600060206000600873111111111111111111111111111111111111111145f1601055731111111111111111111111111111111111111111316011557300000000000000000000000000000000000010006000526000600060206000600973111111111111111111111111111111111111111145f1601255731111111111111111111111111111111111111111316013557311111111111111111111111111111111111111113b6014557311111111111111111111111111111111111111113f60155560016020f31ca0ecd73117ea3804b08c0ed2b0f1b45e56b259469164609f0edeac4246c4b7e797a044f8e8edd730a23064ad844672f3d6f980818af58ca0b794478828ed69ddf869" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0x53d341db9ff827ef262722a6884a0aafa71664d7ebeafaa859e39eac8e449e72" }, "transactions": [ { @@ -2578,39 +4429,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4ba83feeb7b2302c4cbf2e81bc9d2b73e4b952a909a4bfedc76b28fae525689c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe34e7836c16cbc6ef5268d57ea52ed89f4354e18d14d0506528f02d83e07fa84" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04ba83feeb7b2302c4cbf2e81bc9d2b73e4b952a909a4bfedc76b28fae525689ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0x7dc70956eca39df7f28acc917f81174bd0bc0620de53e5a3be45e2471d0eb21c", - "network": "Cancun", + "lastblockhash": "0x53d341db9ff827ef262722a6884a0aafa71664d7ebeafaa859e39eac8e449e72", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -2630,13 +4450,19 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2647,14 +4473,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186c1", @@ -2674,20 +4492,28 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x00", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": { "0x00": "0x0a" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1987ce", + "balance": "0x198738", "code": "0x", "storage": {} }, @@ -2709,40 +4535,65 @@ "0x10": "0x01", "0x11": "0x08", "0x12": "0x01", - "0x14": "0x20", - "0x15": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x14": "0x21", + "0x15": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62b95f5c", + "balance": "0x056bc75e2d62b96150", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "013-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last": { + "027-fork=Cancun-pre_existing-selfdestruct_contract_initial_balance=100000-multiple_calls_multiple_sendall_recipients_including_self_last": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-07890811-20230804", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a012004c1691317016695abb9164dce01f41c622c49b9bfa661d10778f2737bf3ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x12004c1691317016695abb9164dce01f41c622c49b9bfa661d10778f2737bf3e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x736ed0a2ca15281a043158198cf6e714a99dc428256d128b4a1f3a934577d94d" + }, "blocks": [ { - "rlp": "0xf903d2f9023fa0e34e7836c16cbc6ef5268d57ea52ed89f4354e18d14d0506528f02d83e07fa84a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa025ece27e0219c804ce5d2dcbd4b9fbc811f7363777ab007714254f3562ee3c59a0c17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34a04eea61f122f8a1b0b0ce2f570f848c1e68e0a4b3af09f945970a35c7aa371070b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303e15a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9018bf90188800a8405f5e10080830186a0b901367300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f31ba0aa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9a033cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1c0c0", + "rlp": "0xf903d2f9023fa0736ed0a2ca15281a043158198cf6e714a99dc428256d128b4a1f3a934577d94da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e92344319dff285232f0bafbe4b970e889c6f0f843a5b7f94067adf4d47fa5a1a0c17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34a0371eb72b35a3f2d3db43316be378d0222be3c903bb9b8717ed873f148e6d5c11b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303e14b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9018bf90188800a8405f5e10080830186a0b901367300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f31ba0aa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9a033cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1c0c0", "blockHeader": { - "parentHash": "0xe34e7836c16cbc6ef5268d57ea52ed89f4354e18d14d0506528f02d83e07fa84", + "parentHash": "0x736ed0a2ca15281a043158198cf6e714a99dc428256d128b4a1f3a934577d94d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x25ece27e0219c804ce5d2dcbd4b9fbc811f7363777ab007714254f3562ee3c59", + "stateRoot": "0xe92344319dff285232f0bafbe4b970e889c6f0f843a5b7f94067adf4d47fa5a1", "transactionsTrie": "0xc17e482e81f5cc394a9e49ce53bdb77197c589d4eff2a753266a5fc9d7fc2d34", - "receiptTrie": "0x4eea61f122f8a1b0b0ce2f570f848c1e68e0a4b3af09f945970a35c7aa371070", + "receiptTrie": "0x371eb72b35a3f2d3db43316be378d0222be3c903bb9b8717ed873f148e6d5c11", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x03e15a", + "gasUsed": "0x03e14b", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -2752,33 +4603,7 @@ "blobGasUsed": "0x00", "excessBlobGas": "0x00", "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xeb1864436916e242577a58552cce8509d9bcdda69cf6354906fb9117ca142659" - }, - "engineNewPayload": { - "executionPayload": { - "parentHash": "0xe34e7836c16cbc6ef5268d57ea52ed89f4354e18d14d0506528f02d83e07fa84", - "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x25ece27e0219c804ce5d2dcbd4b9fbc811f7363777ab007714254f3562ee3c59", - "receiptsRoot": "0x4eea61f122f8a1b0b0ce2f570f848c1e68e0a4b3af09f945970a35c7aa371070", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockNumber": "0x1", - "gasLimit": "0x16345785d8a0000", - "gasUsed": "0x3e15a", - "timestamp": "0x3e8", - "extraData": "0x00", - "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": "0x7", - "blobGasUsed": "0x0", - "excessBlobGas": "0x0", - "blockHash": "0xeb1864436916e242577a58552cce8509d9bcdda69cf6354906fb9117ca142659", - "transactions": [ - "0xf90188800a8405f5e10080830186a0b901367300000000000000000000000000000000000010006000526000600060206000600073111111111111111111111111111111111111111145f1600055731111111111111111111111111111111111111111316001557300000000000000000000000000000000000020006000526000600060206000600173111111111111111111111111111111111111111145f1600255731111111111111111111111111111111111111111316003557311111111111111111111111111111111111111116000526000600060206000600273111111111111111111111111111111111111111145f1600455731111111111111111111111111111111111111111316005557311111111111111111111111111111111111111113b6006557311111111111111111111111111111111111111113f60075560016020f31ba0aa9969f980de5e9a5fc5288d71b2e34f4917ef1903e8e3a90eab9314d001cbd9a033cb73f4ef385f19bf31825aba686efc0244ab69a08032e39c47703b1b4771e1" - ], - "withdrawals": [] - }, - "expectedBlobVersionedHashes": [], - "version": "3", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000" + "hash": "0xd502973975d360b3c1d4d7e287b41779dc4348ad5fc9d888983ea0b000f34a56" }, "transactions": [ { @@ -2800,39 +4625,8 @@ "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4ba83feeb7b2302c4cbf2e81bc9d2b73e4b952a909a4bfedc76b28fae525689c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "blobGasUsed": "0x00", - "excessBlobGas": "0x00", - "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "hash": "0xe34e7836c16cbc6ef5268d57ea52ed89f4354e18d14d0506528f02d83e07fa84" - }, - "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04ba83feeb7b2302c4cbf2e81bc9d2b73e4b952a909a4bfedc76b28fae525689ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", - "lastblockhash": "0xeb1864436916e242577a58552cce8509d9bcdda69cf6354906fb9117ca142659", - "network": "Cancun", + "lastblockhash": "0xd502973975d360b3c1d4d7e287b41779dc4348ad5fc9d888983ea0b000f34a56", "pre": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x00", @@ -2852,13 +4646,19 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", "storage": {} }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x0186a0", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -2869,14 +4669,6 @@ } }, "postState": { - "0x000000000000000000000000000000000000000b": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x", - "storage": { - "0x03e8": "0x03e8" - } - }, "0x0000000000000000000000000000000000001000": { "nonce": "0x00", "balance": "0x0186a0", @@ -2896,20 +4688,28 @@ "0x000000000000000000000000000000000000abcd": { "nonce": "0x00", "balance": "0x00", - "code": "0x610020600081600b8239f360015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x610021600081600b8239f360015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1111111111111111111111111111111111111111": { "nonce": "0x00", "balance": "0x02", - "code": "0x60015f54015f555f35600181036013573090505b5f81141915601e5780ff5b50", + "code": "0x60015f54015f555f3560018114601b575b5f811419601957005bff5b5030601056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x0ba40e", + "balance": "0x0ba3e1", "code": "0x", "storage": {} }, @@ -2922,13 +4722,13 @@ "0x02": "0x01", "0x04": "0x01", "0x05": "0x02", - "0x06": "0x20", - "0x07": "0x281c9568cf8c5319a7ae3375686a7de5b430d5aae76bd19e96798fd3df5f6a96" + "0x06": "0x21", + "0x07": "0xfe9ea1b94d35684800775855bee5ca16755be44bdcefed392c08c1348fef4711" } }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x056bc75e2d62e7abdc", + "balance": "0x056bc75e2d62e7ac72", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json new file mode 100644 index 00000000000..ddbfe91303c --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_created_in_same_tx_with_revert.json @@ -0,0 +1,472 @@ +{ + "000-fork=Cancun-no_outer_selfdestruct": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08ae544a8dc9e696e47f0399e603435e4d7c42ccd47b8b376661f3fc2f4d91ae9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8ae544a8dc9e696e47f0399e603435e4d7c42ccd47b8b376661f3fc2f4d91ae9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x935b709f15859e097e80384a325818384875ab333a6d34173480469ed63f2c98" + }, + "blocks": [ + { + "rlp": "0xf902ddf9023fa0935b709f15859e097e80384a325818384875ab333a6d34173480469ed63f2c98a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07ec562c14179510c48b8701005f15b10cc7e13182eabf701e8e3b47e526e7bcda013c66bad60366bee20886c784ad2bf08e3b323a7b7b268a27bfd0e8b7f807b16a0843217c9e033be22412004f6726ff438b9640a1ae3161ba5ba75bdbcadc97a3db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303913f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f897f895800a8405f5e1008080b84760326000600073000000000000000000000000000000000000abcd3c603260006000f0600055600060006000600060007300000000000000000000000000000000deadbeef45f11ca0e69939e52ef67a8bf383b6dc5c9a3a49082cb9f4ecaf35833b07a3bc632ba2daa045ad1da5dab6b6dfbdd13d15f4d7edb376dc722864052dc7505e35b8a3fc6119c0c0", + "blockHeader": { + "parentHash": "0x935b709f15859e097e80384a325818384875ab333a6d34173480469ed63f2c98", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7ec562c14179510c48b8701005f15b10cc7e13182eabf701e8e3b47e526e7bcd", + "transactionsTrie": "0x13c66bad60366bee20886c784ad2bf08e3b323a7b7b268a27bfd0e8b7f807b16", + "receiptTrie": "0x843217c9e033be22412004f6726ff438b9640a1ae3161ba5ba75bdbcadc97a3d", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03913f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x696759a0e5487a198e4f559731f5194a3e2dec7530e3b3e68b4117011d987556" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x60326000600073000000000000000000000000000000000000abcd3c603260006000f0600055600060006000600060007300000000000000000000000000000000deadbeef45f1", + "v": "0x1c", + "r": "0xe69939e52ef67a8bf383b6dc5c9a3a49082cb9f4ecaf35833b07a3bc632ba2da", + "s": "0x45ad1da5dab6b6dfbdd13d15f4d7edb376dc722864052dc7505e35b8a3fc6119", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x696759a0e5487a198e4f559731f5194a3e2dec7530e3b3e68b4117011d987556", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610027600081600b8239f35f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": {} + }, + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x03", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b5f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba6316001555f80f3", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610027600081600b8239f35f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": {} + }, + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x02", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b5f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba6316001555f80f3", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0ab3bd", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6" + } + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x01", + "balance": "0x01", + "code": "0x5f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62ec538a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-outer_selfdestruct_before_inner_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0829baa10b051b197698cf32d515eefad078df8dffce5a00c639d38ee6921cceca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x829baa10b051b197698cf32d515eefad078df8dffce5a00c639d38ee6921ccec", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf6f25a9d9d934817e9760145d6318d7513ca8300df5d59feb80595dbc710f3fb" + }, + "blocks": [ + { + "rlp": "0xf902ddf9023fa0f6f25a9d9d934817e9760145d6318d7513ca8300df5d59feb80595dbc710f3fba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa048f4cc2665712f801e9df9be16e1bfc96be5ca372b4fe146dd1eb5c1c3c2e1aba013c66bad60366bee20886c784ad2bf08e3b323a7b7b268a27bfd0e8b7f807b16a02752709932e6c4188c83c7e35a9c1fdd8a37e49d6aa0a77309654d47333ef6fbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303c0798203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f897f895800a8405f5e1008080b84760326000600073000000000000000000000000000000000000abcd3c603260006000f0600055600060006000600060007300000000000000000000000000000000deadbeef45f11ca0e69939e52ef67a8bf383b6dc5c9a3a49082cb9f4ecaf35833b07a3bc632ba2daa045ad1da5dab6b6dfbdd13d15f4d7edb376dc722864052dc7505e35b8a3fc6119c0c0", + "blockHeader": { + "parentHash": "0xf6f25a9d9d934817e9760145d6318d7513ca8300df5d59feb80595dbc710f3fb", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x48f4cc2665712f801e9df9be16e1bfc96be5ca372b4fe146dd1eb5c1c3c2e1ab", + "transactionsTrie": "0x13c66bad60366bee20886c784ad2bf08e3b323a7b7b268a27bfd0e8b7f807b16", + "receiptTrie": "0x2752709932e6c4188c83c7e35a9c1fdd8a37e49d6aa0a77309654d47333ef6fb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03c079", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9073b51d4b84a70cfe2a247c97aedf27e24be60cdfea486aecf46324816e2091" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x60326000600073000000000000000000000000000000000000abcd3c603260006000f0600055600060006000600060007300000000000000000000000000000000deadbeef45f1", + "v": "0x1c", + "r": "0xe69939e52ef67a8bf383b6dc5c9a3a49082cb9f4ecaf35833b07a3bc632ba2da", + "s": "0x45ad1da5dab6b6dfbdd13d15f4d7edb376dc722864052dc7505e35b8a3fc6119", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x9073b51d4b84a70cfe2a247c97aedf27e24be60cdfea486aecf46324816e2091", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610027600081600b8239f35f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": {} + }, + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x03", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba6316001555f80f3", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610027600081600b8239f35f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": {} + }, + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba6316001555f80f3", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b416b", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62ea7b46", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-outer_selfdestruct_after_inner_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a079c18cc707735ac7a4a2094c745b599804e2da415e22c830c684fc72b4cb8278a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x79c18cc707735ac7a4a2094c745b599804e2da415e22c830c684fc72b4cb8278", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfe3eae26fcd8cee1f10cd749546420372cf3763b6ff243d118a6ea45e5645a89" + }, + "blocks": [ + { + "rlp": "0xf902ddf9023fa0fe3eae26fcd8cee1f10cd749546420372cf3763b6ff243d118a6ea45e5645a89a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0448da7e56dab5a8580c95700d1b7bc2aa2081a4e0a228b70acf041f542f78be4a013c66bad60366bee20886c784ad2bf08e3b323a7b7b268a27bfd0e8b7f807b16a0b760597f79e2a2aae0355f439e7e345cfcdaf0490a69eb4e01388914fa5338edb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830481d38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f897f895800a8405f5e1008080b84760326000600073000000000000000000000000000000000000abcd3c603260006000f0600055600060006000600060007300000000000000000000000000000000deadbeef45f11ca0e69939e52ef67a8bf383b6dc5c9a3a49082cb9f4ecaf35833b07a3bc632ba2daa045ad1da5dab6b6dfbdd13d15f4d7edb376dc722864052dc7505e35b8a3fc6119c0c0", + "blockHeader": { + "parentHash": "0xfe3eae26fcd8cee1f10cd749546420372cf3763b6ff243d118a6ea45e5645a89", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x448da7e56dab5a8580c95700d1b7bc2aa2081a4e0a228b70acf041f542f78be4", + "transactionsTrie": "0x13c66bad60366bee20886c784ad2bf08e3b323a7b7b268a27bfd0e8b7f807b16", + "receiptTrie": "0xb760597f79e2a2aae0355f439e7e345cfcdaf0490a69eb4e01388914fa5338ed", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0481d3", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb47fa4ee6d4e22d19a331b0d1375894dc9f4ddbbf18b56a2bf3abdffdc78cd70" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x60326000600073000000000000000000000000000000000000abcd3c603260006000f0600055600060006000600060007300000000000000000000000000000000deadbeef45f1", + "v": "0x1c", + "r": "0xe69939e52ef67a8bf383b6dc5c9a3a49082cb9f4ecaf35833b07a3bc632ba2da", + "s": "0x45ad1da5dab6b6dfbdd13d15f4d7edb376dc722864052dc7505e35b8a3fc6119", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb47fa4ee6d4e22d19a331b0d1375894dc9f4ddbbf18b56a2bf3abdffdc78cd70", + "pre": { + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610027600081600b8239f35f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": {} + }, + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x03", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b5f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba63160015560015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80f3", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x02", + "code": "0x", + "storage": {} + }, + "0x000000000000000000000000000000000000abcd": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x610027600081600b8239f35f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": {} + }, + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b5f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba63160015560015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80f3", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0d8579", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x", + "storage": { + "0x00": "0x64e2ebd6405af8cb348aec519084d3fff42ebba6" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62e2edc2", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json new file mode 100644 index 00000000000..916b5d1fcd9 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip6780_selfdestruct/selfdestruct_revert/selfdestruct_not_created_in_same_tx_with_revert.json @@ -0,0 +1,466 @@ +{ + "000-fork=Cancun-no_outer_selfdestruct": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d772463734155cf29ce700889c3459d8b77ec4e369f06c659222a1784ce8a167a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd772463734155cf29ce700889c3459d8b77ec4e369f06c659222a1784ce8a167", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x627fb20b946fc82e1a81a5a104c77faeb0c0fb5f734c34d1598a5aa4be4f262b" + }, + "blocks": [ + { + "rlp": "0xf902b6f9023fa0627fb20b946fc82e1a81a5a104c77faeb0c0fb5f734c34d1598a5aa4be4f262ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09f6a1337a2d4b7df64ec6dbb3193fc4b18603b30c1ad721878954bc22912c46ca0aee86bdc9f4cdcab98bcbd2bf7778c96fa0ece00fcbd5e3676d7b8df9a90febaa0c2bcdac158940cf6af9d6058f408765c63cbc7a375d56567cd688ab4fab45a46b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083029d7b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f870f86e800a8405f5e1008080a1600060006000600060007300000000000000000000000000000000deadbeef45f11ba04be9d4cb23e70d0bd36b18bedaa401fd9d2dc5bce6d37bae98777c094e8d6c46a046bb18ca04a74583befbf371e13a0190e72dcdb58e6da43d192008ddb9a6afb3c0c0", + "blockHeader": { + "parentHash": "0x627fb20b946fc82e1a81a5a104c77faeb0c0fb5f734c34d1598a5aa4be4f262b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9f6a1337a2d4b7df64ec6dbb3193fc4b18603b30c1ad721878954bc22912c46c", + "transactionsTrie": "0xaee86bdc9f4cdcab98bcbd2bf7778c96fa0ece00fcbd5e3676d7b8df9a90feba", + "receiptTrie": "0xc2bcdac158940cf6af9d6058f408765c63cbc7a375d56567cd688ab4fab45a46", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x029d7b", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4356b0805563fcc5da0aebf25a92dc313cd368f2023e7286e4b1bc8650013b3c" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x600060006000600060007300000000000000000000000000000000deadbeef45f1", + "v": "0x1b", + "r": "0x4be9d4cb23e70d0bd36b18bedaa401fd9d2dc5bce6d37bae98777c094e8d6c46", + "s": "0x46bb18ca04a74583befbf371e13a0190e72dcdb58e6da43d192008ddb9a6afb3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x4356b0805563fcc5da0aebf25a92dc313cd368f2023e7286e4b1bc8650013b3c", + "pre": { + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x02", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b5f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba6316001555f80f3", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b5f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba6316001555f80f3", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07d871", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x5f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": { + "0x00": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f5d932", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-outer_selfdestruct_before_inner_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0390ba410c3dc739004bd5c3a1eed97d1030108f93a780af20ffdc4e82fb573f8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x390ba410c3dc739004bd5c3a1eed97d1030108f93a780af20ffdc4e82fb573f8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x981ef231d84b72b49b97b7990f256de08fccbf14f8deede6f10b7b24283d3f75" + }, + "blocks": [ + { + "rlp": "0xf902b6f9023fa0981ef231d84b72b49b97b7990f256de08fccbf14f8deede6f10b7b24283d3f75a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ea01a39a41ce41ae9193486dd9f44d9ad0174c0b65ee0a6b54eafe23f9888c0ea0aee86bdc9f4cdcab98bcbd2bf7778c96fa0ece00fcbd5e3676d7b8df9a90febaa09ef493bdb666c6d7606685bb94a28a4970ea997ddd2e16bddfbeddf8769f8ddbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302b8288203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f870f86e800a8405f5e1008080a1600060006000600060007300000000000000000000000000000000deadbeef45f11ba04be9d4cb23e70d0bd36b18bedaa401fd9d2dc5bce6d37bae98777c094e8d6c46a046bb18ca04a74583befbf371e13a0190e72dcdb58e6da43d192008ddb9a6afb3c0c0", + "blockHeader": { + "parentHash": "0x981ef231d84b72b49b97b7990f256de08fccbf14f8deede6f10b7b24283d3f75", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xea01a39a41ce41ae9193486dd9f44d9ad0174c0b65ee0a6b54eafe23f9888c0e", + "transactionsTrie": "0xaee86bdc9f4cdcab98bcbd2bf7778c96fa0ece00fcbd5e3676d7b8df9a90feba", + "receiptTrie": "0x9ef493bdb666c6d7606685bb94a28a4970ea997ddd2e16bddfbeddf8769f8ddb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x02b828", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xeed2a3897dbb0240805d8993a14acb20ec566f2bdb058418c55c0e54c2afa751" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x600060006000600060007300000000000000000000000000000000deadbeef45f1", + "v": "0x1b", + "r": "0x4be9d4cb23e70d0bd36b18bedaa401fd9d2dc5bce6d37bae98777c094e8d6c46", + "s": "0x46bb18ca04a74583befbf371e13a0190e72dcdb58e6da43d192008ddb9a6afb3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xeed2a3897dbb0240805d8993a14acb20ec566f2bdb058418c55c0e54c2afa751", + "pre": { + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x02", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba6316001555f80f3", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba6316001555f80f3", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x082878", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x5f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": { + "0x00": "0x01", + "0x01": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62f4ce70", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-outer_selfdestruct_after_inner_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6780.md", + "reference-spec-version": "2f8299df31bb8173618901a03a8366a3183479b0" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cd4318ebeef9a8b1c3752a6ff375885a1233950124f6681c178dd1a1e0bd3a57a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcd4318ebeef9a8b1c3752a6ff375885a1233950124f6681c178dd1a1e0bd3a57", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2e96f13ffd5002cce47dbabb750fc253cc7fd4cb136c64c827d1dfea6e02e82f" + }, + "blocks": [ + { + "rlp": "0xf902b6f9023fa02e96f13ffd5002cce47dbabb750fc253cc7fd4cb136c64c827d1dfea6e02e82fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a0dbcd8959cd3e787a1e1428ffce0002e77fa6759b9cfa950c17c7d4e2da8425a0aee86bdc9f4cdcab98bcbd2bf7778c96fa0ece00fcbd5e3676d7b8df9a90febaa08b425f16d84df0a6c25eae30394c4d03fe331a453c91c8f8cbeb05a76ebd07c5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000083038e0f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f870f86e800a8405f5e1008080a1600060006000600060007300000000000000000000000000000000deadbeef45f11ba04be9d4cb23e70d0bd36b18bedaa401fd9d2dc5bce6d37bae98777c094e8d6c46a046bb18ca04a74583befbf371e13a0190e72dcdb58e6da43d192008ddb9a6afb3c0c0", + "blockHeader": { + "parentHash": "0x2e96f13ffd5002cce47dbabb750fc253cc7fd4cb136c64c827d1dfea6e02e82f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa0dbcd8959cd3e787a1e1428ffce0002e77fa6759b9cfa950c17c7d4e2da8425", + "transactionsTrie": "0xaee86bdc9f4cdcab98bcbd2bf7778c96fa0ece00fcbd5e3676d7b8df9a90feba", + "receiptTrie": "0x8b425f16d84df0a6c25eae30394c4d03fe331a453c91c8f8cbeb05a76ebd07c5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x038e0f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x36beb7d71290fea3d01137335ca6a9479d3bae626289c2022a3afbd7bfb741be" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x00", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "", + "value": "0x00", + "data": "0x600060006000600060007300000000000000000000000000000000deadbeef45f1", + "v": "0x1b", + "r": "0x4be9d4cb23e70d0bd36b18bedaa401fd9d2dc5bce6d37bae98777c094e8d6c46", + "s": "0x46bb18ca04a74583befbf371e13a0190e72dcdb58e6da43d192008ddb9a6afb3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x36beb7d71290fea3d01137335ca6a9479d3bae626289c2022a3afbd7bfb741be", + "pre": { + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x02", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b5f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba63160015560015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80f3", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x056bc75e2d63100000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000001234": { + "nonce": "0x00", + "balance": "0x02", + "code": "0x", + "storage": {} + }, + "0x00000000000000000000000000000000deadbeef": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5f356001815f1460385750600114601257005b60015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80fd5b5f80525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f1505f525f80602081803045f1507364e2ebd6405af8cb348aec519084d3fff42ebba63160015560015f525f8060208160017364e2ebd6405af8cb348aec519084d3fff42ebba645f15f80f3", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0aaa2d", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0x64e2ebd6405af8cb348aec519084d3fff42ebba6": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5f35805f14601c57600114600f57005b6001805401600155611234ff5b60015f54015f555f80f3", + "storage": { + "0x00": "0x01", + "0x01": "0x01" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x056bc75e2d62ec736a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json new file mode 100644 index 00000000000..b86805d3316 --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_before_fork.json @@ -0,0 +1,226 @@ +{ + "000-fork=ShanghaiToCancunAtTime15k": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", + "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" + }, + "network": "ShanghaiToCancunAtTime15k", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a018cc8876986e8602693ab260c901ff4ad210384cf38dc3a29eb1af6ebd90ad67a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x18cc8876986e8602693ab260c901ff4ad210384cf38dc3a29eb1af6ebd90ad67", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x70c7d847b3d5b0bc5d95b72469efcf72bc72703fddfa9902b8ae0def3ac6a6d4" + }, + "blocks": [ + { + "rlp": "0xf90289f9021ca070c7d847b3d5b0bc5d95b72469efcf72bc72703fddfa9902b8ae0def3ac6a6d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02c13e516d1ecc6fa99a1d3b08ed18c04078332685e936835c7717cc53529c73da00fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fca06a1dcd11dc97c554adeef87bed26d022694d8408c135fc704d95b87b116112a2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830164de821d4c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f866f86480843b9aca00830f4240940000000000000000000000000000000000000100808025a078bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3a07e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4ac0c0", + "blockHeader": { + "parentHash": "0x70c7d847b3d5b0bc5d95b72469efcf72bc72703fddfa9902b8ae0def3ac6a6d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2c13e516d1ecc6fa99a1d3b08ed18c04078332685e936835c7717cc53529c73d", + "transactionsTrie": "0x0fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fc", + "receiptTrie": "0x6a1dcd11dc97c554adeef87bed26d022694d8408c135fc704d95b87b116112a2", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0164de", + "timestamp": "0x1d4c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x6acb38ec872dc33867a41858b0051aaa7e872cbea04eb07eb6319323b4839f43" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x78bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3", + "s": "0x7e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + }, + { + "rlp": "0xf90289f9021ca06acb38ec872dc33867a41858b0051aaa7e872cbea04eb07eb6319323b4839f43a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b40d49023f154b2f47905d82b40a9a48919116156f7e81a88e5d6a71a54ec5a0bbf0ef003e447b033280e14920471e3d1079e0420ff336551a69bc058282826fa06a1dcd11dc97c554adeef87bed26d022694d8408c135fc704d95b87b116112a2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830164de823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f866f86401843b9aca00830f4240940000000000000000000000000000000000000100808025a05a305eeb6255567555610c96fec7c90e285aef7d705790174cacff4095e58b5aa009a597b4bbf42f22c544ca3b6e8988ee7c304bb0c9c2470dba9ca1c958625402c0c0", + "blockHeader": { + "parentHash": "0x6acb38ec872dc33867a41858b0051aaa7e872cbea04eb07eb6319323b4839f43", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b40d49023f154b2f47905d82b40a9a48919116156f7e81a88e5d6a71a54ec5", + "transactionsTrie": "0xbbf0ef003e447b033280e14920471e3d1079e0420ff336551a69bc058282826f", + "receiptTrie": "0x6a1dcd11dc97c554adeef87bed26d022694d8408c135fc704d95b87b116112a2", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0164de", + "timestamp": "0x3a97", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x14cd18f629cf66ae0ed8784dc14c285aa161aab2b1c827e8671c03c2289632c3" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x01", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x5a305eeb6255567555610c96fec7c90e285aef7d705790174cacff4095e58b5a", + "s": "0x09a597b4bbf42f22c544ca3b6e8988ee7c304bb0c9c2470dba9ca1c958625402", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + }, + { + "rlp": "0xf902abf9023ea014cd18f629cf66ae0ed8784dc14c285aa161aab2b1c827e8671c03c2289632c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa012e734ea7f945e6023a2a8345a1541910b7c8da21bac2d2a72a2e89c85cc10baa00b07513b1742c08217da6ca0ee521005b23f3b6ea638c6a368132e4df359e09ea0029086b067b48abbd5d8cdade9e4161e288342af5850ca5c07d626db2c52c1b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a000082b29d823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f866f86402843b9aca00830f4240940000000000000000000000000000000000000100808026a080830b778f8433c8b58035d9c099d6aa7cd892b3dc68569b703da1eb91add652a06d52d9f26efdcdf3f4087f02cd961cae2fd7a6773140e4bf867e49aacaf9d87fc0c0", + "blockHeader": { + "parentHash": "0x14cd18f629cf66ae0ed8784dc14c285aa161aab2b1c827e8671c03c2289632c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x12e734ea7f945e6023a2a8345a1541910b7c8da21bac2d2a72a2e89c85cc10ba", + "transactionsTrie": "0x0b07513b1742c08217da6ca0ee521005b23f3b6ea638c6a368132e4df359e09e", + "receiptTrie": "0x029086b067b48abbd5d8cdade9e4161e288342af5850ca5c07d626db2c52c1b6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x03", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xb29d", + "timestamp": "0x3a98", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0a12f04b95fa2b71f981c87072986cc40e1713e603300b3373131175ba906a2a" + }, + "blocknumber": "3", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x02", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x80830b778f8433c8b58035d9c099d6aa7cd892b3dc68569b703da1eb91add652", + "s": "0x6d52d9f26efdcdf3f4087f02cd961cae2fd7a6773140e4bf867e49aacaf9d87f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0a12f04b95fa2b71f981c87072986cc40e1713e603300b3373131175ba906a2a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000600073000000000000000000000000000000000000020061fffff14355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000600073000000000000000000000000000000000000020061fffff14355", + "storage": { + "0x03": "0x01" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x1a99": "0x3a98" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xcfc4108fd391", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x03", + "balance": "0x1d6329f1c35ca4bfabb9f4913bef57c600", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json new file mode 100644 index 00000000000..8b8fa57636a --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_out_of_gas.json @@ -0,0 +1,284 @@ +{ + "000-fork=Cancun-enough_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", + "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0df817c78832ab73d5296cea6551a167f22ccd9d605a8e00aee22978b65f09d6ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xdf817c78832ab73d5296cea6551a167f22ccd9d605a8e00aee22978b65f09d6e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf124814d9256893f89668e80c70994bbee4745354be91cc73232398df2af3471" + }, + "blocks": [ + { + "rlp": "0xf902abf9023ea0f124814d9256893f89668e80c70994bbee4745354be91cc73232398df2af3471a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ca9608a86607302303e8296da7daa7f6ebb3a1192466b9a064adb920a74782afa00fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fca0029086b067b48abbd5d8cdade9e4161e288342af5850ca5c07d626db2c52c1b6b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b29d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f866f86480843b9aca00830f4240940000000000000000000000000000000000000100808025a078bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3a07e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4ac0c0", + "blockHeader": { + "parentHash": "0xf124814d9256893f89668e80c70994bbee4745354be91cc73232398df2af3471", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xca9608a86607302303e8296da7daa7f6ebb3a1192466b9a064adb920a74782af", + "transactionsTrie": "0x0fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fc", + "receiptTrie": "0x029086b067b48abbd5d8cdade9e4161e288342af5850ca5c07d626db2c52c1b6", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xb29d", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2ab55843c6bc7afb53470d9e6ea1e728a3b7b28dfe8ba517ce3361a1d5f93f3a" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x78bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3", + "s": "0x7e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2ab55843c6bc7afb53470d9e6ea1e728a3b7b28dfe8ba517ce3361a1d5f93f3a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060007300000000000000000000000000000000000002006002f14355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060007300000000000000000000000000000000000002006002f14355", + "storage": { + "0x01": "0x01" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x29962e5cffb5", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f53769d19e1e00", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-out_of_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", + "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05020263f8bcfdd36fc8e342467ae7dc0dca9afa306f15608216e1bd519e133a7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5020263f8bcfdd36fc8e342467ae7dc0dca9afa306f15608216e1bd519e133a7", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9805f9efe3a9dd6ef3d19b35e9266144e0c8ebb20fdbe1a39b626b48bf761e7a" + }, + "blocks": [ + { + "rlp": "0xf902abf9023ea09805f9efe3a9dd6ef3d19b35e9266144e0c8ebb20fdbe1a39b626b48bf761e7aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f399b96555e7ccdc6421ef31dee5aa8af7e7960fd1f8c70361d2c86da091e4c0a00fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fca08a464492414faf91bfcbcf3d97be0aac9f570e7c2792cc63eda61d7be8768d30b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008264e08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f866f86480843b9aca00830f4240940000000000000000000000000000000000000100808025a078bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3a07e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4ac0c0", + "blockHeader": { + "parentHash": "0x9805f9efe3a9dd6ef3d19b35e9266144e0c8ebb20fdbe1a39b626b48bf761e7a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf399b96555e7ccdc6421ef31dee5aa8af7e7960fd1f8c70361d2c86da091e4c0", + "transactionsTrie": "0x0fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fc", + "receiptTrie": "0x8a464492414faf91bfcbcf3d97be0aac9f570e7c2792cc63eda61d7be8768d30", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x64e0", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xead0a0d08f3ebf309b12a673edc314505d097c25d57d672f5d741ff9c31f6066" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x78bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3", + "s": "0x7e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xead0a0d08f3ebf309b12a673edc314505d097c25d57d672f5d741ff9c31f6066", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060007300000000000000000000000000000000000002006001f14355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060007300000000000000000000000000000000000002006001f14355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x177c9e55fde0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f5498361a74000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json new file mode 100644 index 00000000000..1196db79c2a --- /dev/null +++ b/tests/execution-spec-tests/cancun/eip7516_blobgasfee/blobgasfee_opcode/blobbasefee_stack_overflow.json @@ -0,0 +1,284 @@ +{ + "000-fork=Cancun-no_stack_overflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", + "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a034cb7ad6a25349781abf147303213d95172c46ce1ccd19efd42075af50a5b1bca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x34cb7ad6a25349781abf147303213d95172c46ce1ccd19efd42075af50a5b1bc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x88be77b24b1a379cfb79cb240b101f5bf4076bd7b3c010cefd909315cedbdcf1" + }, + "blocks": [ + { + "rlp": "0xf902abf9023ea088be77b24b1a379cfb79cb240b101f5bf4076bd7b3c010cefd909315cedbdcf1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c8469faf2bddff16ac2c1666572b4471b07e7820ba0cdd32ec113e2985c7cc1fa00fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fca0b5696760d7a13792c9417cec44fae62889a429ff710fa32eb7e3eb57c0b45febb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082ba9b8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f866f86480843b9aca00830f4240940000000000000000000000000000000000000100808025a078bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3a07e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4ac0c0", + "blockHeader": { + "parentHash": "0x88be77b24b1a379cfb79cb240b101f5bf4076bd7b3c010cefd909315cedbdcf1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc8469faf2bddff16ac2c1666572b4471b07e7820ba0cdd32ec113e2985c7cc1f", + "transactionsTrie": "0x0fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fc", + "receiptTrie": "0xb5696760d7a13792c9417cec44fae62889a429ff710fa32eb7e3eb57c0b45feb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xba9b", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2b72fc117208ecab6479f7d73ab75949d0e8f5641406da8f4a0195a931edeefd" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x78bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3", + "s": "0x7e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2b72fc117208ecab6479f7d73ab75949d0e8f5641406da8f4a0195a931edeefd", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000600073000000000000000000000000000000000000020061fffff14355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000600073000000000000000000000000000000000000020061fffff14355", + "storage": { + "0x01": "0x01" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x2b728d7733c3", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f5358d7283b200", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-stack_overflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7516.md", + "reference-spec-version": "2ade0452efe8124378f35284676ddfd16dd56ecd" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0328da4927894f9835e8c6030a23d1d604cf0074477200de5f43412a9bebf7906a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x328da4927894f9835e8c6030a23d1d604cf0074477200de5f43412a9bebf7906", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x77dad2f3b33e8fee071624532363f4b3863cb4d7167455eae3840ab0b8f76618" + }, + "blocks": [ + { + "rlp": "0xf902acf9023fa077dad2f3b33e8fee071624532363f4b3863cb4d7167455eae3840ab0b8f76618a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f6b711cc2722dbdaa3fe6cceb4dcec5ae1a2582cc229f7e49e4d0dacc95c5e15a00fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fca06a1dcd11dc97c554adeef87bed26d022694d8408c135fc704d95b87b116112a2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830164de8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f866f86480843b9aca00830f4240940000000000000000000000000000000000000100808025a078bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3a07e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4ac0c0", + "blockHeader": { + "parentHash": "0x77dad2f3b33e8fee071624532363f4b3863cb4d7167455eae3840ab0b8f76618", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf6b711cc2722dbdaa3fe6cceb4dcec5ae1a2582cc229f7e49e4d0dacc95c5e15", + "transactionsTrie": "0x0fe91412a1972bfc336f46726e2d5616b033ad0b7b58b5abb3cf596c18c936fc", + "receiptTrie": "0x6a1dcd11dc97c554adeef87bed26d022694d8408c135fc704d95b87b116112a2", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0164de", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xcff47c4ea643039c966cf5fc46147077c62d3f98695d2c474e39b985686a6bae" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x0f4240", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x78bda1e1cb92b405bf1c49f292286f622ebd05ea52b0d7793e7e614c560c86d3", + "s": "0x7e9b6734e2203cd58a048e8b1750bea1d9ccdf10f5d612dad80550fdd2081c4a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xcff47c4ea643039c966cf5fc46147077c62d3f98695d2c474e39b985686a6bae", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000600073000000000000000000000000000000000000020061fffff14355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x1d6329f1c35ca4bfabb9f5610000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000600073000000000000000000000000000000000000020061fffff14355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a4a", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x5316f11969ee", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x1d6329f1c35ca4bfabb9f50de90edcd400", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/frontier/opcodes/dup/dup.json b/tests/execution-spec-tests/frontier/opcodes/dup/dup.json index c3c0c79c835..5d43be2bcaa 100644 --- a/tests/execution-spec-tests/frontier/opcodes/dup/dup.json +++ b/tests/execution-spec-tests/frontier/opcodes/dup/dup.json @@ -1,14 +1,33 @@ { "000-fork=Frontier": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Frontier", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" }, "blocks": [ { - "rlp": "0xf90824f901fda001e7fb1a4d848f80871bfea58f87511cc1cf8a09afaaeab66fd35281aeb76491a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0692b8fc6c9cd6f7fae36df5b598e8e241d8b60f569ca2bfc89ce4343e45e9816a02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a07d13f5bc7a51c0f49f1c5566e2308b3cac24f1040be2f7f183ba0a91b3423e88b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", + "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0692b8fc6c9cd6f7fae36df5b598e8e241d8b60f569ca2bfc89ce4343e45e9816a02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a07d13f5bc7a51c0f49f1c5566e2308b3cac24f1040be2f7f183ba0a91b3423e88b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", "blockHeader": { - "parentHash": "0x01e7fb1a4d848f80871bfea58f87511cc1cf8a09afaaeab66fd35281aeb76491", + "parentHash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x692b8fc6c9cd6f7fae36df5b598e8e241d8b60f569ca2bfc89ce4343e45e9816", @@ -23,7 +42,7 @@ "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x795c98f11190a963b5b03e2140d990f5cdaed91623acb092935b1fc26781aeeb" + "hash": "0xd2873acc945e4c767995d8a7a7a3f7f7ffbffa404e643f5d3c751c0ce4190fb4" }, "transactions": [ { @@ -31,319 +50,331 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0xf73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddf", + "s": "0x1c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xbffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9d", + "s": "0x168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0x3d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103e", + "s": "0x13bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324", + "s": "0x739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0x02866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aa", + "s": "0x03c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0xc70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617", + "s": "0x4ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0x7f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5d", + "s": "0x3033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12", + "s": "0x2655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0x95a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbd", + "s": "0x2955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ec", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0x2468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907", + "s": "0x3971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xa3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5", + "s": "0x0d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xb91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232", + "s": "0x2ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0xdd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390", + "s": "0x5aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xfad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63", + "s": "0x4fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0x208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6", + "s": "0x32d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0x055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5b", + "s": "0x6ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9d539b791e8d942b88859bc2954a489e2102b00b7fd7106c4f769e0e860596fd", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x01e7fb1a4d848f80871bfea58f87511cc1cf8a09afaaeab66fd35281aeb76491" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09d539b791e8d942b88859bc2954a489e2102b00b7fd7106c4f769e0e860596fda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x795c98f11190a963b5b03e2140d990f5cdaed91623acb092935b1fc26781aeeb", - "network": "Frontier", + "lastblockhash": "0xd2873acc945e4c767995d8a7a7a3f7f7ffbffa404e643f5d3c751c0ce4190fb4", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -749,14 +780,33 @@ }, "001-fork=Homestead": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Homestead", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" }, "blocks": [ { - "rlp": "0xf90824f901fda001e7fb1a4d848f80871bfea58f87511cc1cf8a09afaaeab66fd35281aeb76491a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0692b8fc6c9cd6f7fae36df5b598e8e241d8b60f569ca2bfc89ce4343e45e9816a02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a07d13f5bc7a51c0f49f1c5566e2308b3cac24f1040be2f7f183ba0a91b3423e88b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", + "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0692b8fc6c9cd6f7fae36df5b598e8e241d8b60f569ca2bfc89ce4343e45e9816a02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a07d13f5bc7a51c0f49f1c5566e2308b3cac24f1040be2f7f183ba0a91b3423e88b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", "blockHeader": { - "parentHash": "0x01e7fb1a4d848f80871bfea58f87511cc1cf8a09afaaeab66fd35281aeb76491", + "parentHash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x692b8fc6c9cd6f7fae36df5b598e8e241d8b60f569ca2bfc89ce4343e45e9816", @@ -771,7 +821,7 @@ "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x795c98f11190a963b5b03e2140d990f5cdaed91623acb092935b1fc26781aeeb" + "hash": "0xd2873acc945e4c767995d8a7a7a3f7f7ffbffa404e643f5d3c751c0ce4190fb4" }, "transactions": [ { @@ -779,319 +829,331 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0xf73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddf", + "s": "0x1c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xbffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9d", + "s": "0x168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0x3d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103e", + "s": "0x13bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324", + "s": "0x739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0x02866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aa", + "s": "0x03c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0xc70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617", + "s": "0x4ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0x7f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5d", + "s": "0x3033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12", + "s": "0x2655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0x95a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbd", + "s": "0x2955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ec", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0x2468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907", + "s": "0x3971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xa3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5", + "s": "0x0d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xb91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232", + "s": "0x2ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0xdd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390", + "s": "0x5aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0xfad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63", + "s": "0x4fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0x208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6", + "s": "0x32d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1b", + "r": "0x055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5b", + "s": "0x6ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9d539b791e8d942b88859bc2954a489e2102b00b7fd7106c4f769e0e860596fd", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x01e7fb1a4d848f80871bfea58f87511cc1cf8a09afaaeab66fd35281aeb76491" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09d539b791e8d942b88859bc2954a489e2102b00b7fd7106c4f769e0e860596fda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x795c98f11190a963b5b03e2140d990f5cdaed91623acb092935b1fc26781aeeb", - "network": "Homestead", + "lastblockhash": "0xd2873acc945e4c767995d8a7a7a3f7f7ffbffa404e643f5d3c751c0ce4190fb4", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -1497,18 +1559,37 @@ }, "002-fork=Byzantium": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Byzantium", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" }, "blocks": [ { - "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0722ac23adbfc77f67b12e174bcdf904a634909b6a4b370dffc59456e63d7e862a02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a09d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", + "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0722ac23adbfc77f67b12e174bcdf904a634909b6a4b370dffc59456e63d7e862a05663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140a09d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a120940000000000000000000000000000000000000100808026a02a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bfa0045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47f860010a8307a120940000000000000000000000000000000000000101808026a02fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223a04ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672f860020a8307a120940000000000000000000000000000000000000102808026a02f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6a026ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4bf860030a8307a120940000000000000000000000000000000000000103808026a0108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1a07b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3ff860040a8307a120940000000000000000000000000000000000000104808026a032afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacfa007a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5f860050a8307a120940000000000000000000000000000000000000105808026a0729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926ea06bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521f860060a8307a120940000000000000000000000000000000000000106808025a09431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453a0313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1cf860070a8307a120940000000000000000000000000000000000000107808025a0ef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9a0164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6f860080a8307a120940000000000000000000000000000000000000108808025a0cc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1da022f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0f860090a8307a120940000000000000000000000000000000000000109808026a0a46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058a031b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7ff8600a0a8307a12094000000000000000000000000000000000000010a808025a097d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238a057acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3f8600b0a8307a12094000000000000000000000000000000000000010b808026a0949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfaa014a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29abf8600c0a8307a12094000000000000000000000000000000000000010c808025a09688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301a040e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93f8600d0a8307a12094000000000000000000000000000000000000010d808025a0b7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6a002f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4f8600e0a8307a12094000000000000000000000000000000000000010e808025a004dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6dea0034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bff8600f0a8307a12094000000000000000000000000000000000000010f808025a0ea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58a00b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affec0", "blockHeader": { "parentHash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x722ac23adbfc77f67b12e174bcdf904a634909b6a4b370dffc59456e63d7e862", - "transactionsTrie": "0x2c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12", + "transactionsTrie": "0x5663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140", "receiptTrie": "0x9d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", @@ -1519,7 +1600,7 @@ "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x2de2ffe79b50dfdec51c72ffd2d47b1bbf8e1fdde6eadbf5c991236840764ffe" + "hash": "0xe88c62523302f1b59c79a8452cb12c71f2151128bae8c63ccf3fa05e26633547" }, "transactions": [ { @@ -1527,319 +1608,331 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bf", + "s": "0x045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223", + "s": "0x4ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6", + "s": "0x26ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1", + "s": "0x7b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x32afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacf", + "s": "0x07a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926e", + "s": "0x6bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453", + "s": "0x313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9", + "s": "0x164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xcc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1d", + "s": "0x22f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0xa46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058", + "s": "0x31b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x97d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238", + "s": "0x57acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfa", + "s": "0x14a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301", + "s": "0x40e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xb7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6", + "s": "0x02f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x04dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6de", + "s": "0x034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58", + "s": "0x0b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x2de2ffe79b50dfdec51c72ffd2d47b1bbf8e1fdde6eadbf5c991236840764ffe", - "network": "Byzantium", + "lastblockhash": "0xe88c62523302f1b59c79a8452cb12c71f2151128bae8c63ccf3fa05e26633547", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -2245,18 +2338,37 @@ }, "003-fork=Constantinople": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Constantinople", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" }, "blocks": [ { - "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcba02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a09d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", + "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcba05663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140a09d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a120940000000000000000000000000000000000000100808026a02a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bfa0045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47f860010a8307a120940000000000000000000000000000000000000101808026a02fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223a04ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672f860020a8307a120940000000000000000000000000000000000000102808026a02f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6a026ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4bf860030a8307a120940000000000000000000000000000000000000103808026a0108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1a07b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3ff860040a8307a120940000000000000000000000000000000000000104808026a032afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacfa007a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5f860050a8307a120940000000000000000000000000000000000000105808026a0729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926ea06bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521f860060a8307a120940000000000000000000000000000000000000106808025a09431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453a0313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1cf860070a8307a120940000000000000000000000000000000000000107808025a0ef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9a0164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6f860080a8307a120940000000000000000000000000000000000000108808025a0cc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1da022f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0f860090a8307a120940000000000000000000000000000000000000109808026a0a46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058a031b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7ff8600a0a8307a12094000000000000000000000000000000000000010a808025a097d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238a057acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3f8600b0a8307a12094000000000000000000000000000000000000010b808026a0949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfaa014a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29abf8600c0a8307a12094000000000000000000000000000000000000010c808025a09688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301a040e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93f8600d0a8307a12094000000000000000000000000000000000000010d808025a0b7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6a002f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4f8600e0a8307a12094000000000000000000000000000000000000010e808025a004dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6dea0034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bff8600f0a8307a12094000000000000000000000000000000000000010f808025a0ea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58a00b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affec0", "blockHeader": { "parentHash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0xf4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcb", - "transactionsTrie": "0x2c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12", + "transactionsTrie": "0x5663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140", "receiptTrie": "0x9d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", @@ -2267,7 +2379,7 @@ "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x243f2c48db5d5dae9db5294ad31ae3bb2e8a424af62f891642e26f67010e269a" + "hash": "0x95408bd87da598d83e81d07479d20fd9eed98a4f5cc4d4d0e7ab346ae1e0b7c8" }, "transactions": [ { @@ -2275,319 +2387,331 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bf", + "s": "0x045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223", + "s": "0x4ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6", + "s": "0x26ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1", + "s": "0x7b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x32afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacf", + "s": "0x07a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926e", + "s": "0x6bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453", + "s": "0x313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9", + "s": "0x164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xcc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1d", + "s": "0x22f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0xa46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058", + "s": "0x31b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x97d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238", + "s": "0x57acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfa", + "s": "0x14a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301", + "s": "0x40e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xb7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6", + "s": "0x02f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x04dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6de", + "s": "0x034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58", + "s": "0x0b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x243f2c48db5d5dae9db5294ad31ae3bb2e8a424af62f891642e26f67010e269a", - "network": "Constantinople", + "lastblockhash": "0x95408bd87da598d83e81d07479d20fd9eed98a4f5cc4d4d0e7ab346ae1e0b7c8", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -2993,18 +3117,37 @@ }, "004-fork=ConstantinopleFix": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "ConstantinopleFix", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" }, "blocks": [ { - "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcba02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a09d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", + "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcba05663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140a09d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a120940000000000000000000000000000000000000100808026a02a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bfa0045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47f860010a8307a120940000000000000000000000000000000000000101808026a02fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223a04ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672f860020a8307a120940000000000000000000000000000000000000102808026a02f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6a026ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4bf860030a8307a120940000000000000000000000000000000000000103808026a0108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1a07b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3ff860040a8307a120940000000000000000000000000000000000000104808026a032afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacfa007a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5f860050a8307a120940000000000000000000000000000000000000105808026a0729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926ea06bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521f860060a8307a120940000000000000000000000000000000000000106808025a09431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453a0313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1cf860070a8307a120940000000000000000000000000000000000000107808025a0ef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9a0164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6f860080a8307a120940000000000000000000000000000000000000108808025a0cc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1da022f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0f860090a8307a120940000000000000000000000000000000000000109808026a0a46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058a031b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7ff8600a0a8307a12094000000000000000000000000000000000000010a808025a097d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238a057acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3f8600b0a8307a12094000000000000000000000000000000000000010b808026a0949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfaa014a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29abf8600c0a8307a12094000000000000000000000000000000000000010c808025a09688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301a040e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93f8600d0a8307a12094000000000000000000000000000000000000010d808025a0b7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6a002f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4f8600e0a8307a12094000000000000000000000000000000000000010e808025a004dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6dea0034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bff8600f0a8307a12094000000000000000000000000000000000000010f808025a0ea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58a00b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affec0", "blockHeader": { "parentHash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0xf4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcb", - "transactionsTrie": "0x2c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12", + "transactionsTrie": "0x5663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140", "receiptTrie": "0x9d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", @@ -3015,7 +3158,7 @@ "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x243f2c48db5d5dae9db5294ad31ae3bb2e8a424af62f891642e26f67010e269a" + "hash": "0x95408bd87da598d83e81d07479d20fd9eed98a4f5cc4d4d0e7ab346ae1e0b7c8" }, "transactions": [ { @@ -3023,319 +3166,331 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bf", + "s": "0x045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223", + "s": "0x4ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6", + "s": "0x26ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1", + "s": "0x7b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x32afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacf", + "s": "0x07a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926e", + "s": "0x6bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453", + "s": "0x313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9", + "s": "0x164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xcc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1d", + "s": "0x22f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0xa46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058", + "s": "0x31b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x97d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238", + "s": "0x57acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfa", + "s": "0x14a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301", + "s": "0x40e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xb7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6", + "s": "0x02f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x04dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6de", + "s": "0x034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58", + "s": "0x0b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x243f2c48db5d5dae9db5294ad31ae3bb2e8a424af62f891642e26f67010e269a", - "network": "ConstantinopleFix", + "lastblockhash": "0x95408bd87da598d83e81d07479d20fd9eed98a4f5cc4d4d0e7ab346ae1e0b7c8", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -3741,29 +3896,48 @@ }, "005-fork=Istanbul": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" }, - "blocks": [ - { - "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcba02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a09d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", - "blockHeader": { - "parentHash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcb", - "transactionsTrie": "0x2c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12", - "receiptTrie": "0x9d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0e", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x01", - "gasLimit": "0x016345785d8a0000", + "network": "Istanbul", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" + }, + "blocks": [ + { + "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcba05663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140a09d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000835829108203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a120940000000000000000000000000000000000000100808026a02a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bfa0045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47f860010a8307a120940000000000000000000000000000000000000101808026a02fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223a04ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672f860020a8307a120940000000000000000000000000000000000000102808026a02f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6a026ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4bf860030a8307a120940000000000000000000000000000000000000103808026a0108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1a07b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3ff860040a8307a120940000000000000000000000000000000000000104808026a032afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacfa007a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5f860050a8307a120940000000000000000000000000000000000000105808026a0729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926ea06bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521f860060a8307a120940000000000000000000000000000000000000106808025a09431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453a0313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1cf860070a8307a120940000000000000000000000000000000000000107808025a0ef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9a0164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6f860080a8307a120940000000000000000000000000000000000000108808025a0cc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1da022f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0f860090a8307a120940000000000000000000000000000000000000109808026a0a46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058a031b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7ff8600a0a8307a12094000000000000000000000000000000000000010a808025a097d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238a057acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3f8600b0a8307a12094000000000000000000000000000000000000010b808026a0949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfaa014a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29abf8600c0a8307a12094000000000000000000000000000000000000010c808025a09688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301a040e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93f8600d0a8307a12094000000000000000000000000000000000000010d808025a0b7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6a002f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4f8600e0a8307a12094000000000000000000000000000000000000010e808025a004dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6dea0034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bff8600f0a8307a12094000000000000000000000000000000000000010f808025a0ea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58a00b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affec0", + "blockHeader": { + "parentHash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf4f4aed0d1813d2880d8bb1cb5697303c20002ac6bfc206635645f43805ccbcb", + "transactionsTrie": "0x5663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140", + "receiptTrie": "0x9d06daaa31b5192110e16c243d9ea7489e76f5c5d5b099b543998620785b1c0e", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", "gasUsed": "0x582910", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x243f2c48db5d5dae9db5294ad31ae3bb2e8a424af62f891642e26f67010e269a" + "hash": "0x95408bd87da598d83e81d07479d20fd9eed98a4f5cc4d4d0e7ab346ae1e0b7c8" }, "transactions": [ { @@ -3771,319 +3945,331 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bf", + "s": "0x045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223", + "s": "0x4ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6", + "s": "0x26ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1", + "s": "0x7b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x32afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacf", + "s": "0x07a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926e", + "s": "0x6bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453", + "s": "0x313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9", + "s": "0x164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xcc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1d", + "s": "0x22f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0xa46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058", + "s": "0x31b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x97d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238", + "s": "0x57acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfa", + "s": "0x14a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301", + "s": "0x40e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xb7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6", + "s": "0x02f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x04dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6de", + "s": "0x034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58", + "s": "0x0b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x243f2c48db5d5dae9db5294ad31ae3bb2e8a424af62f891642e26f67010e269a", - "network": "Istanbul", + "lastblockhash": "0x95408bd87da598d83e81d07479d20fd9eed98a4f5cc4d4d0e7ab346ae1e0b7c8", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -4489,18 +4675,37 @@ }, "006-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Berlin", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" }, "blocks": [ { - "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01f6c14272d3bc06258746a7ecbe16dceb38c4daeae0b05c1d43947dff3b554f2a02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a049454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008360e0508203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", + "rlp": "0xf90824f901fda0c810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01f6c14272d3bc06258746a7ecbe16dceb38c4daeae0b05c1d43947dff3b554f2a05663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140a049454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008360e0508203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90620f860800a8307a120940000000000000000000000000000000000000100808026a02a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bfa0045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47f860010a8307a120940000000000000000000000000000000000000101808026a02fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223a04ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672f860020a8307a120940000000000000000000000000000000000000102808026a02f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6a026ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4bf860030a8307a120940000000000000000000000000000000000000103808026a0108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1a07b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3ff860040a8307a120940000000000000000000000000000000000000104808026a032afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacfa007a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5f860050a8307a120940000000000000000000000000000000000000105808026a0729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926ea06bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521f860060a8307a120940000000000000000000000000000000000000106808025a09431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453a0313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1cf860070a8307a120940000000000000000000000000000000000000107808025a0ef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9a0164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6f860080a8307a120940000000000000000000000000000000000000108808025a0cc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1da022f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0f860090a8307a120940000000000000000000000000000000000000109808026a0a46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058a031b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7ff8600a0a8307a12094000000000000000000000000000000000000010a808025a097d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238a057acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3f8600b0a8307a12094000000000000000000000000000000000000010b808026a0949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfaa014a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29abf8600c0a8307a12094000000000000000000000000000000000000010c808025a09688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301a040e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93f8600d0a8307a12094000000000000000000000000000000000000010d808025a0b7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6a002f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4f8600e0a8307a12094000000000000000000000000000000000000010e808025a004dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6dea0034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bff8600f0a8307a12094000000000000000000000000000000000000010f808025a0ea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58a00b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affec0", "blockHeader": { "parentHash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x1f6c14272d3bc06258746a7ecbe16dceb38c4daeae0b05c1d43947dff3b554f2", - "transactionsTrie": "0x2c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12", + "transactionsTrie": "0x5663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140", "receiptTrie": "0x49454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", @@ -4511,7 +4716,7 @@ "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x7ca03c053461b6407cb1e4a03d62f84cb51dda6297ba1ce3b617bb3774e3190e" + "hash": "0x424388b2144fd24d870801f0dda8b01d9652782d67adee95886b06ad6e6b09a8" }, "transactions": [ { @@ -4519,319 +4724,331 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bf", + "s": "0x045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223", + "s": "0x4ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6", + "s": "0x26ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1", + "s": "0x7b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x32afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacf", + "s": "0x07a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926e", + "s": "0x6bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453", + "s": "0x313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9", + "s": "0x164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xcc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1d", + "s": "0x22f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0xa46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058", + "s": "0x31b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x97d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238", + "s": "0x57acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfa", + "s": "0x14a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301", + "s": "0x40e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xb7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6", + "s": "0x02f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x04dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6de", + "s": "0x034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58", + "s": "0x0b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0xc810e8b08eb96d47a6984215aa8b6394e4f72ebc75b5103df5e3d3450672d7d0" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x7ca03c053461b6407cb1e4a03d62f84cb51dda6297ba1ce3b617bb3774e3190e", - "network": "Berlin", + "lastblockhash": "0x424388b2144fd24d870801f0dda8b01d9652782d67adee95886b06ad6e6b09a8", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -5237,18 +5454,38 @@ }, "007-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "London", + "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xaa05b96d34beeb9b93a776ba65ba48c53c5a8b2b88b25a4098f6a555ce1252d1" }, "blocks": [ { - "rlp": "0xf90825f901fea0aa05b96d34beeb9b93a776ba65ba48c53c5a8b2b88b25a4098f6a555ce1252d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03109e405cfb5a9c405a05f8626d31826570536b5015e45ace4fca1b90724db30a02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a049454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008360e0508203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", + "rlp": "0xf90825f901fea0aa05b96d34beeb9b93a776ba65ba48c53c5a8b2b88b25a4098f6a555ce1252d1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03109e405cfb5a9c405a05f8626d31826570536b5015e45ace4fca1b90724db30a05663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140a049454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008360e0508203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f90620f860800a8307a120940000000000000000000000000000000000000100808026a02a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bfa0045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47f860010a8307a120940000000000000000000000000000000000000101808026a02fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223a04ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672f860020a8307a120940000000000000000000000000000000000000102808026a02f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6a026ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4bf860030a8307a120940000000000000000000000000000000000000103808026a0108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1a07b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3ff860040a8307a120940000000000000000000000000000000000000104808026a032afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacfa007a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5f860050a8307a120940000000000000000000000000000000000000105808026a0729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926ea06bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521f860060a8307a120940000000000000000000000000000000000000106808025a09431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453a0313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1cf860070a8307a120940000000000000000000000000000000000000107808025a0ef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9a0164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6f860080a8307a120940000000000000000000000000000000000000108808025a0cc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1da022f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0f860090a8307a120940000000000000000000000000000000000000109808026a0a46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058a031b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7ff8600a0a8307a12094000000000000000000000000000000000000010a808025a097d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238a057acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3f8600b0a8307a12094000000000000000000000000000000000000010b808026a0949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfaa014a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29abf8600c0a8307a12094000000000000000000000000000000000000010c808025a09688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301a040e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93f8600d0a8307a12094000000000000000000000000000000000000010d808025a0b7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6a002f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4f8600e0a8307a12094000000000000000000000000000000000000010e808025a004dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6dea0034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bff8600f0a8307a12094000000000000000000000000000000000000010f808025a0ea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58a00b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affec0", "blockHeader": { "parentHash": "0xaa05b96d34beeb9b93a776ba65ba48c53c5a8b2b88b25a4098f6a555ce1252d1", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x3109e405cfb5a9c405a05f8626d31826570536b5015e45ace4fca1b90724db30", - "transactionsTrie": "0x2c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12", + "transactionsTrie": "0x5663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140", "receiptTrie": "0x49454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", @@ -5260,7 +5497,7 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xf0300153781217e608851e73ddec47cf2c29649812dd6d65cf8a831775e0f35f" + "hash": "0xc1705a8ca6692746b7699d3b8d3f04ee356498864aaec9d6bc1b8ffcf759cb9a" }, "transactions": [ { @@ -5268,320 +5505,1112 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bf", + "s": "0x045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223", + "s": "0x4ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6", + "s": "0x26ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1", + "s": "0x7b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x32afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacf", + "s": "0x07a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926e", + "s": "0x6bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453", + "s": "0x313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9", + "s": "0x164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xcc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1d", + "s": "0x22f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0xa46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058", + "s": "0x31b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x97d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238", + "s": "0x57acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfa", + "s": "0x14a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301", + "s": "0x40e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xb7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6", + "s": "0x02f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x04dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6de", + "s": "0x034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58", + "s": "0x0b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaa05b96d34beeb9b93a776ba65ba48c53c5a8b2b88b25a4098f6a555ce1252d1" + "lastblockhash": "0xc1705a8ca6692746b7699d3b8d3f04ee356498864aaec9d6bc1b8ffcf759cb9a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x000000000000000000000000000000000000010a": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x000000000000000000000000000000000000010b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x000000000000000000000000000000000000010c": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x000000000000000000000000000000000000010d": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x000000000000000000000000000000000000010e": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x000000000000000000000000000000000000010f": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } }, - "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0xf0300153781217e608851e73ddec47cf2c29649812dd6d65cf8a831775e0f35f", - "network": "London", + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x10", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x0000000000000000000000000000000000000101": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x0f", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x0000000000000000000000000000000000000102": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x0e", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x0000000000000000000000000000000000000103": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x0d", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x0000000000000000000000000000000000000104": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x0c", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x0000000000000000000000000000000000000105": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x0b", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x0000000000000000000000000000000000000106": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x0a", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x0000000000000000000000000000000000000107": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x09", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x0000000000000000000000000000000000000108": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x08", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x0000000000000000000000000000000000000109": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x07", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x000000000000000000000000000000000000010a": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x06", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x000000000000000000000000000000000000010b": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x05", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x000000000000000000000000000000000000010c": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x04", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x000000000000000000000000000000000000010d": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x03", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x000000000000000000000000000000000000010e": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x02", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x000000000000000000000000000000000000010f": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": { + "0x00": "0x01", + "0x01": "0x10", + "0x02": "0x0f", + "0x03": "0x0e", + "0x04": "0x0d", + "0x05": "0x0c", + "0x06": "0x0b", + "0x07": "0x0a", + "0x08": "0x09", + "0x09": "0x08", + "0x0a": "0x07", + "0x0b": "0x06", + "0x0c": "0x05", + "0x0d": "0x04", + "0x0e": "0x03", + "0x0f": "0x02", + "0x10": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1bc16d674feaa0f0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x10", + "balance": "0x3635c9adc5dad73ce0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Merge": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Merge", + "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0x3ce83ab68c412c857b1cb51fd2791619f909218f07ba659bff70f89fe4518616" + }, + "blocks": [ + { + "rlp": "0xf90822f901fba03ce83ab68c412c857b1cb51fd2791619f909218f07ba659bff70f89fe4518616a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069f76ad7abb256bb8ebb9d4ea8d0a29ea9efd43d7c7e5fdbf97c697af54a8737a05663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140a049454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008360e0508203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f90620f860800a8307a120940000000000000000000000000000000000000100808026a02a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bfa0045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47f860010a8307a120940000000000000000000000000000000000000101808026a02fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223a04ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672f860020a8307a120940000000000000000000000000000000000000102808026a02f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6a026ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4bf860030a8307a120940000000000000000000000000000000000000103808026a0108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1a07b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3ff860040a8307a120940000000000000000000000000000000000000104808026a032afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacfa007a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5f860050a8307a120940000000000000000000000000000000000000105808026a0729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926ea06bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521f860060a8307a120940000000000000000000000000000000000000106808025a09431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453a0313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1cf860070a8307a120940000000000000000000000000000000000000107808025a0ef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9a0164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6f860080a8307a120940000000000000000000000000000000000000108808025a0cc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1da022f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0f860090a8307a120940000000000000000000000000000000000000109808026a0a46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058a031b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7ff8600a0a8307a12094000000000000000000000000000000000000010a808025a097d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238a057acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3f8600b0a8307a12094000000000000000000000000000000000000010b808026a0949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfaa014a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29abf8600c0a8307a12094000000000000000000000000000000000000010c808025a09688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301a040e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93f8600d0a8307a12094000000000000000000000000000000000000010d808025a0b7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6a002f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4f8600e0a8307a12094000000000000000000000000000000000000010e808025a004dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6dea0034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bff8600f0a8307a12094000000000000000000000000000000000000010f808025a0ea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58a00b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affec0", + "blockHeader": { + "parentHash": "0x3ce83ab68c412c857b1cb51fd2791619f909218f07ba659bff70f89fe4518616", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x69f76ad7abb256bb8ebb9d4ea8d0a29ea9efd43d7c7e5fdbf97c697af54a8737", + "transactionsTrie": "0x5663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140", + "receiptTrie": "0x49454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x60e050", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0x2aadb42e7af541b4e3d2f5b4dc49285e78941a59c0d3fd139fefffb43c1a625e" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x2a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bf", + "s": "0x045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000101", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x2fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223", + "s": "0x4ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x02", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000102", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x2f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6", + "s": "0x26ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x03", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000103", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1", + "s": "0x7b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x04", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000104", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x32afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacf", + "s": "0x07a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x05", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000105", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926e", + "s": "0x6bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x06", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000106", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x9431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453", + "s": "0x313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x07", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000107", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0xef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9", + "s": "0x164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x08", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000108", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0xcc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1d", + "s": "0x22f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x09", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x0000000000000000000000000000000000000109", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xa46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058", + "s": "0x31b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x0a", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x000000000000000000000000000000000000010a", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x97d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238", + "s": "0x57acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x0b", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x000000000000000000000000000000000000010b", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfa", + "s": "0x14a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x0c", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x000000000000000000000000000000000000010c", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x9688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301", + "s": "0x40e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x0d", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x000000000000000000000000000000000000010d", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0xb7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6", + "s": "0x02f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x0e", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x000000000000000000000000000000000000010e", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x04dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6de", + "s": "0x034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x0f", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x000000000000000000000000000000000000010f", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0xea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58", + "s": "0x0b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [] + } + ], + "lastblockhash": "0x2aadb42e7af541b4e3d2f5b4dc49285e78941a59c0d3fd139fefffb43c1a625e", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -5972,7 +7001,7 @@ }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674feaa0f0", + "balance": "0x0122a0f0", "code": "0x", "storage": {} }, @@ -5985,20 +7014,41 @@ }, "sealEngine": "NoProof" }, - "008-fork=Merge": { + "009-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xc305d826e3784046a7e9d31128ef98d3e96133fe454c16ef630574d967dfdb1a" }, "blocks": [ { - "rlp": "0xf90822f901fba03ce83ab68c412c857b1cb51fd2791619f909218f07ba659bff70f89fe4518616a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069f76ad7abb256bb8ebb9d4ea8d0a29ea9efd43d7c7e5fdbf97c697af54a8737a02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a049454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008360e0508203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0", + "rlp": "0xf90844f9021ca0c305d826e3784046a7e9d31128ef98d3e96133fe454c16ef630574d967dfdb1aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069f76ad7abb256bb8ebb9d4ea8d0a29ea9efd43d7c7e5fdbf97c697af54a8737a05663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140a049454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008360e0508203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90620f860800a8307a120940000000000000000000000000000000000000100808026a02a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bfa0045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47f860010a8307a120940000000000000000000000000000000000000101808026a02fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223a04ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672f860020a8307a120940000000000000000000000000000000000000102808026a02f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6a026ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4bf860030a8307a120940000000000000000000000000000000000000103808026a0108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1a07b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3ff860040a8307a120940000000000000000000000000000000000000104808026a032afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacfa007a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5f860050a8307a120940000000000000000000000000000000000000105808026a0729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926ea06bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521f860060a8307a120940000000000000000000000000000000000000106808025a09431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453a0313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1cf860070a8307a120940000000000000000000000000000000000000107808025a0ef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9a0164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6f860080a8307a120940000000000000000000000000000000000000108808025a0cc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1da022f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0f860090a8307a120940000000000000000000000000000000000000109808026a0a46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058a031b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7ff8600a0a8307a12094000000000000000000000000000000000000010a808025a097d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238a057acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3f8600b0a8307a12094000000000000000000000000000000000000010b808026a0949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfaa014a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29abf8600c0a8307a12094000000000000000000000000000000000000010c808025a09688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301a040e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93f8600d0a8307a12094000000000000000000000000000000000000010d808025a0b7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6a002f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4f8600e0a8307a12094000000000000000000000000000000000000010e808025a004dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6dea0034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bff8600f0a8307a12094000000000000000000000000000000000000010f808025a0ea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58a00b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affec0c0", "blockHeader": { - "parentHash": "0x3ce83ab68c412c857b1cb51fd2791619f909218f07ba659bff70f89fe4518616", + "parentHash": "0xc305d826e3784046a7e9d31128ef98d3e96133fe454c16ef630574d967dfdb1a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x69f76ad7abb256bb8ebb9d4ea8d0a29ea9efd43d7c7e5fdbf97c697af54a8737", - "transactionsTrie": "0x2c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12", + "transactionsTrie": "0x5663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140", "receiptTrie": "0x49454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -6010,7 +7060,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xc727f28fdbc7d3fbe58d20e056e1336877122d9d8a8a9fc2b9a907ae5b17fe2d" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x9518fe72b558b50bd494e3325f061ab9fb707adf869d43fdd987f3aa162ab3e0" }, "transactions": [ { @@ -6018,320 +7069,332 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bf", + "s": "0x045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223", + "s": "0x4ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6", + "s": "0x26ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1", + "s": "0x7b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x32afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacf", + "s": "0x07a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926e", + "s": "0x6bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453", + "s": "0x313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9", + "s": "0x164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xcc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1d", + "s": "0x22f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0xa46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058", + "s": "0x31b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x97d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238", + "s": "0x57acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfa", + "s": "0x14a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301", + "s": "0x40e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xb7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6", + "s": "0x02f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x04dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6de", + "s": "0x034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58", + "s": "0x0b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], - "uncleHeaders": [] + "uncleHeaders": [], + "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x3ce83ab68c412c857b1cb51fd2791619f909218f07ba659bff70f89fe4518616" - }, - "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0xc727f28fdbc7d3fbe58d20e056e1336877122d9d8a8a9fc2b9a907ae5b17fe2d", - "network": "Merge", + "lastblockhash": "0x9518fe72b558b50bd494e3325f061ab9fb707adf869d43fdd987f3aa162ab3e0", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -6735,20 +7798,44 @@ }, "sealEngine": "NoProof" }, - "009-fork=Shanghai": { + "010-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d1412238a97757a9c28f42e93030c66a66a4659dbfb40ffc74cabcfa17b3bf7fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xd1412238a97757a9c28f42e93030c66a66a4659dbfb40ffc74cabcfa17b3bf7f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x53e9708569f2930810336f33bf5ba9df4fddbb122406827910b6852ce42bfe5c" }, "blocks": [ { - "rlp": "0xf90844f9021ca0c305d826e3784046a7e9d31128ef98d3e96133fe454c16ef630574d967dfdb1aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa069f76ad7abb256bb8ebb9d4ea8d0a29ea9efd43d7c7e5fdbf97c697af54a8737a02c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12a049454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008360e0508203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90620f860800a8307a12094000000000000000000000000000000000000010080801ca0f73b923883495dc2174285c8fa4176de3d45accfb11cc8034ea1dd09831a4ddfa01c6bccbcd655b4022bcc27de4b9d5cee9ce999cdb8459b0afec4f5054ea02243f860010a8307a12094000000000000000000000000000000000000010180801ba0bffca3f433f61c957d822af37f2b49c57700ff338588d51ea82dc9f720c91d9da0168bb65cc72d586384383f8ceef3a6a60e54b7f4aaa978a6dad271ced54b2ebff860020a8307a12094000000000000000000000000000000000000010280801ba03d9f110bcf0c44be552d4d0ec8387b705604f7d3bb3794dcef4004c38963103ea013bda734f3b5987b8c855f6aab046754506266ff32352ba0898c4eba4acaec8bf860030a8307a12094000000000000000000000000000000000000010380801ba0ecb276d2486664ea779813e599b6f07b7b0df746626d7fdddf60ea425efcb324a0739841682e79a8302dc2e146dfd1eecbdc611d386d42287bcdd94a39bf536020f860040a8307a12094000000000000000000000000000000000000010480801ba002866b5c5fa5dbfa3d88b71a49b82a779c2d508cda631893176782dbcd7435aaa003c380a9af9bfdb3503abcfd5037d3c66f39bb7a19011a3291712d22292c5236f860050a8307a12094000000000000000000000000000000000000010580801ca0c70d2e000e503933d0f1a9a923dc647924811a912adf77692ff7d8f6808d5617a04ad82c92b980580a4a67e4c405e83d560a14201c3fd4b3a42d34dcc19336479af860060a8307a12094000000000000000000000000000000000000010680801ca07f2527f8cbe14e021d270dd214a1820355c7af128001889f57b7f9bba46a6c5da03033308de0d39b9d1b47d28f81df39ceaff330349298c65deb836efe8bce273ff860070a8307a12094000000000000000000000000000000000000010780801ba0ecb720a8764f8967b95dc66e961c6261fceb392c0e90461d7d66113d3c8bbd12a02655e28b751cc2e03a835aa817d884b540765dba12968bc53f53737b4234ee21f860080a8307a12094000000000000000000000000000000000000010880801ba095a2e27c0b296679141c0ad61be112f689b134c04d1773814ddae67fefb2dfbda02955f126d57d8b9777f47c520ffe4285890ca2dd1189e67b3407d6369997e7ecf860090a8307a12094000000000000000000000000000000000000010980801ca02468a120d0ee8c57caac354f56842a1db10813169a328f9f852279668b573907a03971f4c2e6bc0aa666812712719199df6fe37c0e1e122131cdb47d6c0c77b371f8600a0a8307a12094000000000000000000000000000000000000010a80801ba0a3a2018ab0bc2695b94bb85d710f4d07132a94f8c3e0f385824da5fee11899a5a00d2dfe430ea5aaff3de8bbb9339e7485474c8e4e34636f787124a7a91e4d6d6af8600b0a8307a12094000000000000000000000000000000000000010b80801ba0b91968fdb3aecea26094ec30649daa4de81a875bcb1a123e732b8f3f112ce232a02ef8cd85969d8bcef5f4ee1f5d20783b8d9b7466726c15ebf911565825187665f8600c0a8307a12094000000000000000000000000000000000000010c80801ca0dd27e75aa990793205805c22265b04be8299b208fad4f37a7f652ecf32b67390a05aa8cda18521548ff8f95e88f49f309d05cab32de28a0942b8a7a824c50df459f8600d0a8307a12094000000000000000000000000000000000000010d80801ba0fad07ce7139dd4e00266194e6a51c048f74eaba3c0a1b03ece378a810abfaa63a04fec880dafaa5382797b4f88b16138b1f0c4e084817072c77ff9bf17ddd4ac26f8600e0a8307a12094000000000000000000000000000000000000010e80801ca0208b22ab245221bdc5cae6586d2ef019a2c37be41166e04b8abe354c41a8f5b6a032d5d6ef07731cd1684531c775c1727ef6ba75de18cda96d998aaa0c1db0bd68f8600f0a8307a12094000000000000000000000000000000000000010f80801ba0055225ffd3d8b2d19c32aa68cb46e7b52c1d99844fb8b7a53b922ea1649e9c5ba06ae2a1e3b9712354b706d0f4da6ea76ed2f8f75277a51a14a3e0ccf25b85c626c0c0", + "rlp": "0xf90867f9023fa053e9708569f2930810336f33bf5ba9df4fddbb122406827910b6852ce42bfe5ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00aa28950cb52ba958f1132a9064d5ba150b0d50c9d0afb7f07493a2bcd4686c4a05663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140a049454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008360e0508203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90620f860800a8307a120940000000000000000000000000000000000000100808026a02a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bfa0045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47f860010a8307a120940000000000000000000000000000000000000101808026a02fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223a04ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672f860020a8307a120940000000000000000000000000000000000000102808026a02f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6a026ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4bf860030a8307a120940000000000000000000000000000000000000103808026a0108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1a07b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3ff860040a8307a120940000000000000000000000000000000000000104808026a032afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacfa007a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5f860050a8307a120940000000000000000000000000000000000000105808026a0729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926ea06bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521f860060a8307a120940000000000000000000000000000000000000106808025a09431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453a0313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1cf860070a8307a120940000000000000000000000000000000000000107808025a0ef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9a0164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6f860080a8307a120940000000000000000000000000000000000000108808025a0cc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1da022f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0f860090a8307a120940000000000000000000000000000000000000109808026a0a46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058a031b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7ff8600a0a8307a12094000000000000000000000000000000000000010a808025a097d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238a057acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3f8600b0a8307a12094000000000000000000000000000000000000010b808026a0949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfaa014a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29abf8600c0a8307a12094000000000000000000000000000000000000010c808025a09688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301a040e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93f8600d0a8307a12094000000000000000000000000000000000000010d808025a0b7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6a002f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4f8600e0a8307a12094000000000000000000000000000000000000010e808025a004dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6dea0034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bff8600f0a8307a12094000000000000000000000000000000000000010f808025a0ea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58a00b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affec0c0", "blockHeader": { - "parentHash": "0xc305d826e3784046a7e9d31128ef98d3e96133fe454c16ef630574d967dfdb1a", + "parentHash": "0x53e9708569f2930810336f33bf5ba9df4fddbb122406827910b6852ce42bfe5c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x69f76ad7abb256bb8ebb9d4ea8d0a29ea9efd43d7c7e5fdbf97c697af54a8737", - "transactionsTrie": "0x2c4867cfacf11ad250ac757ccd6ab981344de836d72794360da2f88f71da2b12", + "stateRoot": "0x0aa28950cb52ba958f1132a9064d5ba150b0d50c9d0afb7f07493a2bcd4686c4", + "transactionsTrie": "0x5663f5d6fb3c9a610bf5f9a4705e040b0e07464e185b6ccbd51bca1099bed140", "receiptTrie": "0x49454f0c570549e7e398334b920f405dd283bc49cfa75636b432a4f98e7f29b8", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -6760,8 +7847,11 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xc793f5a821054cb93182b59c75a3df46501707d3921e30d220a96a1159a61c23", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0e306f6fd3d89ef428d867cc1feac7b3474092e61bcfacd9a419471edbc4c694" }, "transactions": [ { @@ -6769,322 +7859,338 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2a5ee985f72d9637c4cb986d35f2675087afa5d638ffb4629271315ff077a4bf", + "s": "0x045661db69b1dc2868fd6e64fd5f371f4d8a36bfca793e436114bc90de3bed47", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000101", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2fa5a569ebc1c9a5c27fc1fc2905205e377cd3784df6926b131cf1192a69c223", + "s": "0x4ec895e52cd8f07f348807135319ea289319604d9de1a5b1b22c52ea7c0a6672", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000102", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x2f84ac973fcf3cb6026455970c65e75da7db4b662c9eef3ee20c81878f27f4b6", + "s": "0x26ef88c883f0a827f66b7899f1c26c7e437a81aaffc95117cccbaa9066f0ad4b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000103", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x108886794c344dd67db3bd5e743f04817bdf9b8357f28c49a85a1121181701b1", + "s": "0x7b08ed2055deab599ba2ef021f997e6d29f9bdde46bf6f6d2113cac1070e1a3f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x04", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000104", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x32afb532526e15da8e03e8c31449a65f4fce859b74bb962848f7cd1fa9eddacf", + "s": "0x07a4add84341f4838dd09eea3248e74aa628723029dd8b10b47d6887c68111d5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x05", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000105", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x729960c0e62afe129e395968bdb83242707e2247cee1deca588356cd9bee926e", + "s": "0x6bd44cf2dba0a473e92d7ebfaf4e3a1f444cb814402ba814a84ea99aea912521", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x06", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000106", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9431402211d22ba6c410f6dad3a43425046471fc1001a685f282a8d7371df453", + "s": "0x313ed4719dc989c0f0de02fa6b7a00bbdce596da9a8e7386de99e76a40de3b1c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x07", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000107", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xef3075836153bea8b1a23fe8d2eaa2c453ec08078f7303cdc5f2cde3e29391c9", + "s": "0x164e88899d4ae2cb71312624ba4614e3f5cc4ffb2eb8f8d90f6da7409ae120b6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x08", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000108", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xcc065a3bd168bad821a2a4f100c72f10e8d3f5aeb6f8cc5e6cfbcb862ac57d1d", + "s": "0x22f158889a61d3619f77118ab2e9c2a605cf6db3f014abd2535a563600ea15f0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x09", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x0000000000000000000000000000000000000109", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0xa46f50358caaeaae7f101813ccfd7d5ae4d4e3dfa77d0e26aabaebe507edb058", + "s": "0x31b1f66d3944ae1237c908825f7dff11dd14c8f1a8ad961e55ec0d4ab3ad6a7f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0a", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010a", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x97d12f8cab8284d1e411f2735c468de3f937e413a13250b56dc0e768676bd238", + "s": "0x57acb90424667710c8ca5155a7406cd4b0e403f4eabcc435b21da7dd71a3c8c3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0b", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010b", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x26", + "r": "0x949a270a09778e0dba4a2ed56ed95eb2a1c3b86e2bbd80de8c3b7655fa93acfa", + "s": "0x14a1c12d52ab34c00491da2f9243736312d730c4bfc66c493b08e970fc4b29ab", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0c", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010c", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x9688d65f7ee883150267f4b9471c3ec893c77bb38dc3f2579b42fa3fe7243301", + "s": "0x40e16a6a9efd513c417f42899579ffd8494ad7b97a043fda903f5980e2c6be93", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0d", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010d", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xb7f5a46de37a84b65998a038a9815449454287364af61058fbcd5c0659ea76f6", + "s": "0x02f947ad6d131683773a0c485157e357fca2174cd0e16ac81d4dc1d6b8812eb4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0e", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010e", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0x04dd0f68af5098489efb6d15e7529a7cab2d60727603849d6c8bb423301de6de", + "s": "0x034c34333cc5799d32699cde9e2723f81c0eb5a5b7705df83950b78f06f658bf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x0f", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x000000000000000000000000000000000000010f", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xea4f784c28e854d4e9aa26ca9224947704d3f04af0afdf63cb5078f375058a58", + "s": "0x0b3556f2cf6d92212308e5e81979344b980e94221460fb88eb0462dfe6b9affe", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xc305d826e3784046a7e9d31128ef98d3e96133fe454c16ef630574d967dfdb1a", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03935ad4402a7193934b0272eb9d0bc33f315ba5cef2a8717fd866e546a055f27a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xc793f5a821054cb93182b59c75a3df46501707d3921e30d220a96a1159a61c23", - "network": "Shanghai", + "lastblockhash": "0x0e306f6fd3d89ef428d867cc1feac7b3474092e61bcfacd9a419471edbc4c694", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601080600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601080600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000101": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601081600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601081600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000102": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601082600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601082600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000103": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601083600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601083600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000104": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601084600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601084600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000105": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601085600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601085600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000106": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601086600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601086600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000107": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601087600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601087600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000108": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601088600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601088600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x0000000000000000000000000000000000000109": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F601089600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f601089600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010a": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108a600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108a600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010b": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108b600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108b600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010c": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108c600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108c600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010d": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108d600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108d600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010e": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108e600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108e600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", "storage": {} }, "0x000000000000000000000000000000000000010f": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600160026003600460056006600760086009600A600B600C600D600E600F60108f600055600155600255600355600455600555600655600755600855600955600A55600B55600C55600D55600E55600F55601055", + "code": "0x6000600160026003600460056006600760086009600a600b600c600d600e600f60108f600055600155600255600355600455600555600655600755600855600955600a55600b55600c55600d55600e55600f55601055", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, @@ -7473,6 +8579,14 @@ "0x10": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0122a0f0", diff --git a/tests/execution-spec-tests/homestead/yul/yul_example/yul.json b/tests/execution-spec-tests/homestead/yul/yul_example/yul.json index 42541e41602..3f91b1d257c 100644 --- a/tests/execution-spec-tests/homestead/yul/yul_example/yul.json +++ b/tests/execution-spec-tests/homestead/yul/yul_example/yul.json @@ -1,73 +1,74 @@ { "000-fork=Homestead": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Homestead", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05c847cd5a23c01627df4f68be88b99e47576f53d335f2729cbcb0d9d7f47c99ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5c847cd5a23c01627df4f68be88b99e47576f53d335f2729cbcb0d9d7f47c99c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0x1ee9825cfb6edbdd75448d7a46e4e1f2bbc07cc73dda4bc01997ff99441fee2c" }, "blocks": [ { - "rlp": "0xf90264f901fca0f5dc70ac344143eb0f46cae55d9a72f18b82102b6d5b176db0cc7087f36de3a7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa001d2ead404751f14ade8187dd67d2b243275f42fb6d67dcf2bd4b9ad2dc043dea08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a0e95788f17f57e188f57f4d8e4dbbd5f3ac765723aabe4b65313413ede143a316b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a0798203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0", + "rlp": "0xf90264f901fca01ee9825cfb6edbdd75448d7a46e4e1f2bbc07cc73dda4bc01997ff99441fee2ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06ae2cb45e39f608c6f460481e56941528ad461bccd82a8955f26f06196996271a08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a0df539d18c25153ae3e1ad7dc1e75386a2a61398abb922fe87060c71143253d3eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a06d8203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0", "blockHeader": { - "parentHash": "0xf5dc70ac344143eb0f46cae55d9a72f18b82102b6d5b176db0cc7087f36de3a7", + "parentHash": "0x1ee9825cfb6edbdd75448d7a46e4e1f2bbc07cc73dda4bc01997ff99441fee2c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x01d2ead404751f14ade8187dd67d2b243275f42fb6d67dcf2bd4b9ad2dc043de", + "stateRoot": "0x6ae2cb45e39f608c6f460481e56941528ad461bccd82a8955f26f06196996271", "transactionsTrie": "0x8e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7", - "receiptTrie": "0xe95788f17f57e188f57f4d8e4dbbd5f3ac765723aabe4b65313413ede143a316", + "receiptTrie": "0xdf539d18c25153ae3e1ad7dc1e75386a2a61398abb922fe87060c71143253d3e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa079", + "gasUsed": "0xa06d", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x4ecdf430d9a080427832bbe97d32f4f88f17d5a23ff751921dfd7e3b098c4ecd" + "hash": "0x4795cdd5dcb21b9f2307b0712285825938c55ab6d47a90ac59e8e5d6d139be53" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x1000000000000000000000000000000000000000", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x1c", + "r": "0x91df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54", + "s": "0x446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x668d59c413d975f4f28584eb05e2058449226cbf2b8decb6457e426eeda58c17", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0xf5dc70ac344143eb0f46cae55d9a72f18b82102b6d5b176db0cc7087f36de3a7" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0668d59c413d975f4f28584eb05e2058449226cbf2b8decb6457e426eeda58c17a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x4ecdf430d9a080427832bbe97d32f4f88f17d5a23ff751921dfd7e3b098c4ecd", - "network": "Homestead", + "lastblockhash": "0x4795cdd5dcb21b9f2307b0712285825938c55ab6d47a90ac59e8e5d6d139be53", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b600082820190509291505056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -81,20 +82,20 @@ "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b600082820190509291505056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x4563918244fa44ba", + "balance": "0x4563918244fa4442", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x0ba1a9ce0b9b6514", + "balance": "0x0ba1a9ce0b9b658c", "code": "0x", "storage": {} } @@ -103,73 +104,74 @@ }, "001-fork=Byzantium": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Byzantium", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f" }, "blocks": [ { - "rlp": "0xf90264f901fca0193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05a525cc65026dd670e2112a96670cceef03e0597f7c5e4130f769857441082b2a08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a04af5ab43e481ec9bfc84a5d0adef6d39e87158b5785a874b53b5932804dbb823b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a0798203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0", + "rlp": "0xf90264f901fca0f3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa064b9d53ea44c6bc24969b1c9ef6064cd93a0d0be3f6d3ae7f6bfa4a0009ee422a02279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95a0de70422eb7a9e33f44f34acad9b8f311753a3a2a2b8a640cf3f4849e091df606b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a0588203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a120941000000000000000000000000000000000000000808025a0ece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9a003c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6c0", "blockHeader": { - "parentHash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1", + "parentHash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5a525cc65026dd670e2112a96670cceef03e0597f7c5e4130f769857441082b2", - "transactionsTrie": "0x8e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7", - "receiptTrie": "0x4af5ab43e481ec9bfc84a5d0adef6d39e87158b5785a874b53b5932804dbb823", + "stateRoot": "0x64b9d53ea44c6bc24969b1c9ef6064cd93a0d0be3f6d3ae7f6bfa4a0009ee422", + "transactionsTrie": "0x2279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95", + "receiptTrie": "0xde70422eb7a9e33f44f34acad9b8f311753a3a2a2b8a640cf3f4849e091df606", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa079", + "gasUsed": "0xa058", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x2cc9c79e550588ba3818f585974f946b7be3af1f0871a86712f15deb60df76e7" + "hash": "0x2ff67c9e81b1480d30b5b9bc1be2bedf06c97c7e2c719458b0360d7f620479c8" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x1000000000000000000000000000000000000000", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9", + "s": "0x03c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x2cc9c79e550588ba3818f585974f946b7be3af1f0871a86712f15deb60df76e7", - "network": "Byzantium", + "lastblockhash": "0x2ff67c9e81b1480d30b5b9bc1be2bedf06c97c7e2c719458b0360d7f620479c8", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -183,20 +185,20 @@ "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x29a2241af63244ba", + "balance": "0x29a2241af6324370", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x0ba1a9ce0b9b6514", + "balance": "0x0ba1a9ce0b9b665e", "code": "0x", "storage": {} } @@ -205,73 +207,74 @@ }, "002-fork=Constantinople": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Constantinople", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f" }, "blocks": [ { - "rlp": "0xf90264f901fca0193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d365f2e6a1246aa629182ccd41d92de4df6a5c19a95ff172078cbc5b7e4c803da08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a04af5ab43e481ec9bfc84a5d0adef6d39e87158b5785a874b53b5932804dbb823b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a0798203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0", + "rlp": "0xf90264f901fca0f3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0149f42b8366317b1e0dab215e87aadf8316c83d07c1c5dda88041cfa6c06fddea02279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95a0de70422eb7a9e33f44f34acad9b8f311753a3a2a2b8a640cf3f4849e091df606b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a0588203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a120941000000000000000000000000000000000000000808025a0ece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9a003c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6c0", "blockHeader": { - "parentHash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1", + "parentHash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd365f2e6a1246aa629182ccd41d92de4df6a5c19a95ff172078cbc5b7e4c803d", - "transactionsTrie": "0x8e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7", - "receiptTrie": "0x4af5ab43e481ec9bfc84a5d0adef6d39e87158b5785a874b53b5932804dbb823", + "stateRoot": "0x149f42b8366317b1e0dab215e87aadf8316c83d07c1c5dda88041cfa6c06fdde", + "transactionsTrie": "0x2279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95", + "receiptTrie": "0xde70422eb7a9e33f44f34acad9b8f311753a3a2a2b8a640cf3f4849e091df606", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa079", + "gasUsed": "0xa058", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0xfaba6dd37fb64501ede8c7d1a60709c191223d7af0b4d468f35650fe74ea9bf4" + "hash": "0xaeb1a01a699a6452a74907d1f2d37339aafed5fb020c4df51f40199777e4f6f9" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x1000000000000000000000000000000000000000", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9", + "s": "0x03c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0xfaba6dd37fb64501ede8c7d1a60709c191223d7af0b4d468f35650fe74ea9bf4", - "network": "Constantinople", + "lastblockhash": "0xaeb1a01a699a6452a74907d1f2d37339aafed5fb020c4df51f40199777e4f6f9", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -285,20 +288,20 @@ "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674ece44ba", + "balance": "0x1bc16d674ece4370", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x0ba1a9ce0b9b6514", + "balance": "0x0ba1a9ce0b9b665e", "code": "0x", "storage": {} } @@ -307,73 +310,74 @@ }, "003-fork=ConstantinopleFix": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "ConstantinopleFix", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f" }, "blocks": [ { - "rlp": "0xf90264f901fca0193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d365f2e6a1246aa629182ccd41d92de4df6a5c19a95ff172078cbc5b7e4c803da08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a04af5ab43e481ec9bfc84a5d0adef6d39e87158b5785a874b53b5932804dbb823b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a0798203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0", + "rlp": "0xf90264f901fca0f3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0149f42b8366317b1e0dab215e87aadf8316c83d07c1c5dda88041cfa6c06fddea02279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95a0de70422eb7a9e33f44f34acad9b8f311753a3a2a2b8a640cf3f4849e091df606b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a0588203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a120941000000000000000000000000000000000000000808025a0ece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9a003c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6c0", "blockHeader": { - "parentHash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1", + "parentHash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd365f2e6a1246aa629182ccd41d92de4df6a5c19a95ff172078cbc5b7e4c803d", - "transactionsTrie": "0x8e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7", - "receiptTrie": "0x4af5ab43e481ec9bfc84a5d0adef6d39e87158b5785a874b53b5932804dbb823", + "stateRoot": "0x149f42b8366317b1e0dab215e87aadf8316c83d07c1c5dda88041cfa6c06fdde", + "transactionsTrie": "0x2279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95", + "receiptTrie": "0xde70422eb7a9e33f44f34acad9b8f311753a3a2a2b8a640cf3f4849e091df606", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa079", + "gasUsed": "0xa058", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0xfaba6dd37fb64501ede8c7d1a60709c191223d7af0b4d468f35650fe74ea9bf4" + "hash": "0xaeb1a01a699a6452a74907d1f2d37339aafed5fb020c4df51f40199777e4f6f9" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x1000000000000000000000000000000000000000", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9", + "s": "0x03c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0xfaba6dd37fb64501ede8c7d1a60709c191223d7af0b4d468f35650fe74ea9bf4", - "network": "ConstantinopleFix", + "lastblockhash": "0xaeb1a01a699a6452a74907d1f2d37339aafed5fb020c4df51f40199777e4f6f9", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -387,20 +391,20 @@ "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674ece44ba", + "balance": "0x1bc16d674ece4370", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x0ba1a9ce0b9b6514", + "balance": "0x0ba1a9ce0b9b665e", "code": "0x", "storage": {} } @@ -409,73 +413,74 @@ }, "004-fork=Istanbul": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Istanbul", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f" }, "blocks": [ { - "rlp": "0xf90264f901fca0193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d365f2e6a1246aa629182ccd41d92de4df6a5c19a95ff172078cbc5b7e4c803da08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a04af5ab43e481ec9bfc84a5d0adef6d39e87158b5785a874b53b5932804dbb823b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a0798203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0", + "rlp": "0xf90264f901fca0f3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0149f42b8366317b1e0dab215e87aadf8316c83d07c1c5dda88041cfa6c06fddea02279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95a0de70422eb7a9e33f44f34acad9b8f311753a3a2a2b8a640cf3f4849e091df606b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a0588203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a120941000000000000000000000000000000000000000808025a0ece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9a003c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6c0", "blockHeader": { - "parentHash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1", + "parentHash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd365f2e6a1246aa629182ccd41d92de4df6a5c19a95ff172078cbc5b7e4c803d", - "transactionsTrie": "0x8e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7", - "receiptTrie": "0x4af5ab43e481ec9bfc84a5d0adef6d39e87158b5785a874b53b5932804dbb823", + "stateRoot": "0x149f42b8366317b1e0dab215e87aadf8316c83d07c1c5dda88041cfa6c06fdde", + "transactionsTrie": "0x2279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95", + "receiptTrie": "0xde70422eb7a9e33f44f34acad9b8f311753a3a2a2b8a640cf3f4849e091df606", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa079", + "gasUsed": "0xa058", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0xfaba6dd37fb64501ede8c7d1a60709c191223d7af0b4d468f35650fe74ea9bf4" + "hash": "0xaeb1a01a699a6452a74907d1f2d37339aafed5fb020c4df51f40199777e4f6f9" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x1000000000000000000000000000000000000000", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9", + "s": "0x03c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0xfaba6dd37fb64501ede8c7d1a60709c191223d7af0b4d468f35650fe74ea9bf4", - "network": "Istanbul", + "lastblockhash": "0xaeb1a01a699a6452a74907d1f2d37339aafed5fb020c4df51f40199777e4f6f9", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -489,20 +494,20 @@ "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674ece44ba", + "balance": "0x1bc16d674ece4370", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x0ba1a9ce0b9b6514", + "balance": "0x0ba1a9ce0b9b665e", "code": "0x", "storage": {} } @@ -511,73 +516,74 @@ }, "005-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Berlin", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f" }, "blocks": [ { - "rlp": "0xf90264f901fca0193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d921e74bfe864514fa508003336b8f66eb98d748c5163749827029a1ed7db265a08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a00812e2d0238699cad1dd4c1274804ed2dde9a35df8ee002d48bbf3ef87857a63b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a8ad8203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0", + "rlp": "0xf90264f901fca0f3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0405343f7eba648b726bec61e8c0e6bfda6275e56c29f20873c36b369ecd96cb2a02279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95a0a1fec96a38a9d550d3fe44688dd83f34a99d261a36d8f46ece6f9f5bc2dc6bacb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a88c8203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f862f860800a8307a120941000000000000000000000000000000000000000808025a0ece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9a003c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6c0", "blockHeader": { - "parentHash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1", + "parentHash": "0xf3a35d34f6a6bc5f95a1eeda246eea45ddd2521bef59051e72d54e9f74571c9f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xd921e74bfe864514fa508003336b8f66eb98d748c5163749827029a1ed7db265", - "transactionsTrie": "0x8e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7", - "receiptTrie": "0x0812e2d0238699cad1dd4c1274804ed2dde9a35df8ee002d48bbf3ef87857a63", + "stateRoot": "0x405343f7eba648b726bec61e8c0e6bfda6275e56c29f20873c36b369ecd96cb2", + "transactionsTrie": "0x2279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95", + "receiptTrie": "0xa1fec96a38a9d550d3fe44688dd83f34a99d261a36d8f46ece6f9f5bc2dc6bac", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa8ad", + "gasUsed": "0xa88c", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x8210379b8743a574470de9c734f91ae62906ea127fa95f13f8641d31e827fc15" + "hash": "0xa278c684ddb1c71303c9ca67e2fcd7086eb8a6d5c6470c6b77e57234223ce4a7" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x1000000000000000000000000000000000000000", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9", + "s": "0x03c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x193e550de3b92674c3f1dfd32e2a819940f694565ceebc59e5789a5fd485f7e1" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x8210379b8743a574470de9c734f91ae62906ea127fa95f13f8641d31e827fc15", - "network": "Berlin", + "lastblockhash": "0xa278c684ddb1c71303c9ca67e2fcd7086eb8a6d5c6470c6b77e57234223ce4a7", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -591,20 +597,20 @@ "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674ece96c2", + "balance": "0x1bc16d674ece9578", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x0ba1a9ce0b9b130c", + "balance": "0x0ba1a9ce0b9b1456", "code": "0x", "storage": {} } @@ -613,75 +619,76 @@ }, "006-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "London", + "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xc5fa75d7f6d3ed9186f21f8d6eb63a96eee756ec8268b82e7129acda606dd450" }, "blocks": [ { - "rlp": "0xf90265f901fda0b053deac0edcf4ad254f732cc8dc283e499838666bcadeb359b2338c150f458fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05c0f211cd1bea44ac01bd3fd7e0ab742d316adabd139bcf60a7aac6c458d596da08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a00812e2d0238699cad1dd4c1274804ed2dde9a35df8ee002d48bbf3ef87857a63b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a8ad8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0", + "rlp": "0xf90265f901fda0c5fa75d7f6d3ed9186f21f8d6eb63a96eee756ec8268b82e7129acda606dd450a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa074803873da0c5b53c0e1b18b0157a0c095b59c1b533cbb021f0e8c569612e5c0a02279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95a0a1fec96a38a9d550d3fe44688dd83f34a99d261a36d8f46ece6f9f5bc2dc6bacb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000082a88c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f862f860800a8307a120941000000000000000000000000000000000000000808025a0ece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9a003c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6c0", "blockHeader": { - "parentHash": "0xb053deac0edcf4ad254f732cc8dc283e499838666bcadeb359b2338c150f458f", + "parentHash": "0xc5fa75d7f6d3ed9186f21f8d6eb63a96eee756ec8268b82e7129acda606dd450", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5c0f211cd1bea44ac01bd3fd7e0ab742d316adabd139bcf60a7aac6c458d596d", - "transactionsTrie": "0x8e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7", - "receiptTrie": "0x0812e2d0238699cad1dd4c1274804ed2dde9a35df8ee002d48bbf3ef87857a63", + "stateRoot": "0x74803873da0c5b53c0e1b18b0157a0c095b59c1b533cbb021f0e8c569612e5c0", + "transactionsTrie": "0x2279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95", + "receiptTrie": "0xa1fec96a38a9d550d3fe44688dd83f34a99d261a36d8f46ece6f9f5bc2dc6bac", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa8ad", + "gasUsed": "0xa88c", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xae62825fd83dff33c34f8c6f535b7382dc93c51c0a9dd4af76875f7bffa26e91" + "hash": "0x7788eda0d0d3cd8d047ecd598f1559ef2a2fe1fcd60becd934f245e2efa4d169" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x1000000000000000000000000000000000000000", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9", + "s": "0x03c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xb053deac0edcf4ad254f732cc8dc283e499838666bcadeb359b2338c150f458f" - }, - "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0xae62825fd83dff33c34f8c6f535b7382dc93c51c0a9dd4af76875f7bffa26e91", - "network": "London", + "lastblockhash": "0x7788eda0d0d3cd8d047ecd598f1559ef2a2fe1fcd60becd934f245e2efa4d169", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -695,20 +702,20 @@ "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674ec9fa07", + "balance": "0x1bc16d674ec9f9a4", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x0ba1a9ce0b9b130c", + "balance": "0x0ba1a9ce0b9b1456", "code": "0x", "storage": {} } @@ -717,75 +724,76 @@ }, "007-fork=Merge": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Merge", + "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x013f3cadae6118b3305b8cf40e92ea44d99f04b3d8dca08e433c67d64edd8a4a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0x01e2e0fb4a722a9fe4b98bf341c133e08e1790e1507cfa7d205330f949459244" }, "blocks": [ { - "rlp": "0xf90262f901faa0c834922467a5c8412670abd5fc0965f2d7ae7242ae2aed16660b2e649e8c519aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e3d83cac3fbe146a6ee8ef05b28bc94e9906405cd976ccb1152f4ddc70b71a49a08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a00812e2d0238699cad1dd4c1274804ed2dde9a35df8ee002d48bbf3ef87857a63b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8ad8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0", + "rlp": "0xf90262f901faa001e2e0fb4a722a9fe4b98bf341c133e08e1790e1507cfa7d205330f949459244a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0524dce33e406a01e48790f0fee7e47e544ed95c74127f12ed6f79a01de8dbf08a02279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95a0a1fec96a38a9d550d3fe44688dd83f34a99d261a36d8f46ece6f9f5bc2dc6bacb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a88c8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f862f860800a8307a120941000000000000000000000000000000000000000808025a0ece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9a003c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6c0", "blockHeader": { - "parentHash": "0xc834922467a5c8412670abd5fc0965f2d7ae7242ae2aed16660b2e649e8c519a", + "parentHash": "0x01e2e0fb4a722a9fe4b98bf341c133e08e1790e1507cfa7d205330f949459244", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xe3d83cac3fbe146a6ee8ef05b28bc94e9906405cd976ccb1152f4ddc70b71a49", - "transactionsTrie": "0x8e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7", - "receiptTrie": "0x0812e2d0238699cad1dd4c1274804ed2dde9a35df8ee002d48bbf3ef87857a63", + "stateRoot": "0x524dce33e406a01e48790f0fee7e47e544ed95c74127f12ed6f79a01de8dbf08", + "transactionsTrie": "0x2279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95", + "receiptTrie": "0xa1fec96a38a9d550d3fe44688dd83f34a99d261a36d8f46ece6f9f5bc2dc6bac", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa8ad", + "gasUsed": "0xa88c", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x7259bae0190bb55fe6cb59344eb1edfa8ce49b24d46213d439ce977f69be1b2f" + "hash": "0xdda1703f67c87de812b36175945d6d9e507d4e9ccaeeb0cacb359bda1cb5a4e6" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x1000000000000000000000000000000000000000", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9", + "s": "0x03c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xc834922467a5c8412670abd5fc0965f2d7ae7242ae2aed16660b2e649e8c519a" - }, - "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0369ba8b2e5b32d675d07933d6fb851d97d3ca66c60a829f7356163d92ae0439aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0x7259bae0190bb55fe6cb59344eb1edfa8ce49b24d46213d439ce977f69be1b2f", - "network": "Merge", + "lastblockhash": "0xdda1703f67c87de812b36175945d6d9e507d4e9ccaeeb0cacb359bda1cb5a4e6", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -799,20 +807,20 @@ "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x6010565b6000828201905092915050565b601a600260016003565b60005560206000f3", + "code": "0x6009600260016012565b60005560206000f35b019056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x01fa07", + "balance": "0x01f9a4", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x0ba1a9ce0b9b130c", + "balance": "0x0ba1a9ce0b9b1456", "code": "0x", "storage": {} } @@ -821,55 +829,123 @@ }, "008-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ff452e49ef88af4cdb86fe07a6eb39679b60321ae85bce598022aee4653e9abca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xff452e49ef88af4cdb86fe07a6eb39679b60321ae85bce598022aee4653e9abc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x807117e2c07d583d2cbbba5749027bdccfaf9c775fdebdd4b1e0b80fce34ab31" }, "blocks": [ { - "rlp": "0xf90284f9021ba0ff037d6a0629bc51d2d8d5e8f9bc2412d97709a17320cf3f0581b31f0dc32ff4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa091d0a916c1f6ac5e9cbc3d5f3a4bdcc8d02e3c0118a2dd5a5dda78fc389fd44ba08e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7a0b946ce73f27f43dae765aeaf2a8c8f72b89992bb034ae818bd616059ec60df7cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8aa8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a8307a12094100000000000000000000000000000000000000080801ca091df80a63242846dcf1cc16c35e6ba39212cde92aad946f9c286fa0029782b54a0446170c2fb714c717885485ea7d93bf9277f3fb3d89ffd73e9b7f5f8eda3997bc0c0", + "rlp": "0xf90284f9021ba0807117e2c07d583d2cbbba5749027bdccfaf9c775fdebdd4b1e0b80fce34ab31a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06495117efea530548b67d49605efcbd28a332ebb28290dc0109751c704e7d95ca02279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95a06cc445455f03632b29a954a261f59b37cd4c65752fff4b1f160fb8b1153f812fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a88a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a8307a120941000000000000000000000000000000000000000808025a0ece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9a003c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6c0c0", "blockHeader": { - "parentHash": "0xff037d6a0629bc51d2d8d5e8f9bc2412d97709a17320cf3f0581b31f0dc32ff4", + "parentHash": "0x807117e2c07d583d2cbbba5749027bdccfaf9c775fdebdd4b1e0b80fce34ab31", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x91d0a916c1f6ac5e9cbc3d5f3a4bdcc8d02e3c0118a2dd5a5dda78fc389fd44b", - "transactionsTrie": "0x8e987be72f36f97a98838e03d9e5d1b3d22795606240f16684532b1c994b4ee7", - "receiptTrie": "0xb946ce73f27f43dae765aeaf2a8c8f72b89992bb034ae818bd616059ec60df7c", + "stateRoot": "0x6495117efea530548b67d49605efcbd28a332ebb28290dc0109751c704e7d95c", + "transactionsTrie": "0x2279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95", + "receiptTrie": "0x6cc445455f03632b29a954a261f59b37cd4c65752fff4b1f160fb8b1153f812f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xa8aa", + "gasUsed": "0xa88a", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x8f9255690661722e51d9a1f1ba3e32de82045273e33ee56d92bd6ddea67da805", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2a4394be8c3a43029ceb1640e05e64c2e5acf2cd5a35050876d7241973add176" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x07a120", "to": "0x1000000000000000000000000000000000000000", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x07a120" + "v": "0x25", + "r": "0xece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9", + "s": "0x03c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x2a4394be8c3a43029ceb1640e05e64c2e5acf2cd5a35050876d7241973add176", + "pre": { + "0x1000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x0ba1a9ce0ba1a9ce", + "code": "0x6009600260016010565b5f5560205ff35b019056", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x0ba1a9ce0ba1a9ce", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x1000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x0ba1a9ce0ba1a9ce", + "code": "0x6009600260016010565b5f5560205ff35b019056", + "storage": { + "0x00": "0x03" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01f99e", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x0ba1a9ce0b9b146a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "009-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02921dffe2be2c40e5952e3211a830062db74456f5abe11fe37b061805fa41989a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5a5027c621c19debe74976d270fdffb6f7a191afce54fccf5e824fe2083a671d", + "stateRoot": "0x2921dffe2be2c40e5952e3211a830062db74456f5abe11fe37b061805fa41989", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -882,17 +958,70 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xff037d6a0629bc51d2d8d5e8f9bc2412d97709a17320cf3f0581b31f0dc32ff4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x59f5d6fedae15476a91c87bb6638cb671f7ca217669607771ed23db813cd40c5" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05a5027c621c19debe74976d270fdffb6f7a191afce54fccf5e824fe2083a671da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x8f9255690661722e51d9a1f1ba3e32de82045273e33ee56d92bd6ddea67da805", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a7f9023ea059f5d6fedae15476a91c87bb6638cb671f7ca217669607771ed23db813cd40c5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00d31f041b444a3bad503971f50c0dfbcb6b05cac3b9ec760b2ab1956a22d8158a02279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95a06cc445455f03632b29a954a261f59b37cd4c65752fff4b1f160fb8b1153f812fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a88a8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a8307a120941000000000000000000000000000000000000000808025a0ece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9a003c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6c0c0", + "blockHeader": { + "parentHash": "0x59f5d6fedae15476a91c87bb6638cb671f7ca217669607771ed23db813cd40c5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0d31f041b444a3bad503971f50c0dfbcb6b05cac3b9ec760b2ab1956a22d8158", + "transactionsTrie": "0x2279f645771e90dd0b4db801c3c2710f63ff1d4e8103debc074fc978cd7b2b95", + "receiptTrie": "0x6cc445455f03632b29a954a261f59b37cd4c65752fff4b1f160fb8b1153f812f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa88a", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf1e889d5e131f144a0bd28f99e7d4db6ee2ee58141048ca9092977bc791ebc8" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x07a120", + "to": "0x1000000000000000000000000000000000000000", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0xece173d61bbf4c5032d3449f4f25dae2a537ff7c4ee7efa8e880ea06a7cb44c9", + "s": "0x03c364834033b6c357805642a89eade50fcc75999b2255cc2300409c7b0e3bb6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xdf1e889d5e131f144a0bd28f99e7d4db6ee2ee58141048ca9092977bc791ebc8", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x600f565b5f828201905092915050565b6019600260016003565b5f5560205ff3", + "code": "0x6009600260016010565b5f5560205ff35b019056", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { @@ -903,23 +1032,31 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x1000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x0ba1a9ce0ba1a9ce", - "code": "0x600f565b5f828201905092915050565b6019600260016003565b5f5560205ff3", + "code": "0x6009600260016010565b5f5560205ff35b019056", "storage": { "0x00": "0x03" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x01f9fe", + "balance": "0x01f99e", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x0ba1a9ce0b9b132a", + "balance": "0x0ba1a9ce0b9b146a", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/info.txt b/tests/execution-spec-tests/info.txt new file mode 100644 index 00000000000..393a4178eb5 --- /dev/null +++ b/tests/execution-spec-tests/info.txt @@ -0,0 +1,3 @@ +ref: refs/tags/v1.0.6 +commit: 4871503a50f36b96cd3b60342d2c355583874f54 +build: 2023-10-19T19:45:09Z diff --git a/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json b/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json index c8a57528545..6df9369151a 100644 --- a/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json +++ b/tests/execution-spec-tests/istanbul/eip1344_chainid/chainid/chainid.json @@ -1,20 +1,39 @@ { "000-fork=Istanbul": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, + "network": "Istanbul", + "genesisRLP": "0xf901faf901f5a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0x480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891" + }, "blocks": [ { - "rlp": "0xf90262f901f9a0480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09239a2ce3648d746cbec22f15706f0202840ff6a76482b603be0223cddb76239a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba0fa9e942c7bab1017c29ab8b7f9484e311f3a2ba680c2ec8abbaea2365cecc93eb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000018502540be40082a02d8203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90262f901f9a0480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09239a2ce3648d746cbec22f15706f0202840ff6a76482b603be0223cddb76239a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0fa9e942c7bab1017c29ab8b7f9484e311f3a2ba680c2ec8abbaea2365cecc93eb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000018502540be40082a02d8203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { "parentHash": "0x480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x9239a2ce3648d746cbec22f15706f0202840ff6a76482b603be0223cddb76239", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0xfa9e942c7bab1017c29ab8b7f9484e311f3a2ba680c2ec8abbaea2365cecc93e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", @@ -25,46 +44,28 @@ "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x2c4dd0fffe34b17aedef6d5532a8a866a1162401721f980ae01865c5755d45a1" + "hash": "0xeda3b907cdac56ae8b57fe1ebd9166daa593ad93c59b627ebf11ac3b0a2d9660" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891" - }, - "genesisRLP": "0xf901faf901f5a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x2c4dd0fffe34b17aedef6d5532a8a866a1162401721f980ae01865c5755d45a1", - "network": "Istanbul", + "lastblockhash": "0xeda3b907cdac56ae8b57fe1ebd9166daa593ad93c59b627ebf11ac3b0a2d9660", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -105,20 +106,39 @@ }, "001-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, + "network": "Berlin", + "genesisRLP": "0xf901faf901f5a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0x480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891" + }, "blocks": [ { - "rlp": "0xf90262f901f9a0480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a9d23c5fad943fec35f9f9744919b21deeb948eeb1b5bdb24fb0b9d59edc1a9a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000018502540be40082a8618203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90262f901f9a0480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04a9d23c5fad943fec35f9f9744919b21deeb948eeb1b5bdb24fb0b9d59edc1a9a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000018502540be40082a8618203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { "parentHash": "0x480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x4a9d23c5fad943fec35f9f9744919b21deeb948eeb1b5bdb24fb0b9d59edc1a9", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0xc598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", @@ -129,46 +149,28 @@ "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x5415b8fea1403592ef4d2be0a5e1899a9a7a6b3f77c8c9ce830380131a057356" + "hash": "0xee6d84161e5f53b678ba48c065ec68501b3e46f32d95605ddd470b369643f8da" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x480785a151c4f81621fb31cae2d4330fe1b69c58809b74807d2acfa5aada5891" - }, - "genesisRLP": "0xf901faf901f5a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x5415b8fea1403592ef4d2be0a5e1899a9a7a6b3f77c8c9ce830380131a057356", - "network": "Berlin", + "lastblockhash": "0xee6d84161e5f53b678ba48c065ec68501b3e46f32d95605ddd470b369643f8da", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -209,20 +211,40 @@ }, "002-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, + "network": "London", + "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0x5d6ff569b43798c27d0c87ed6d376ed460b7c7cbceb94d3026fe39e791d48ee6" + }, "blocks": [ { - "rlp": "0xf90263f901faa05d6ff569b43798c27d0c87ed6d376ed460b7c7cbceb94d3026fe39e791d48ee6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa015e52fbef063e27b227dd5246b56f35ce92418ba222885c10aa0bbf443d1984ba0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000018502540be40082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90263f901faa05d6ff569b43798c27d0c87ed6d376ed460b7c7cbceb94d3026fe39e791d48ee6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa015e52fbef063e27b227dd5246b56f35ce92418ba222885c10aa0bbf443d1984ba082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000018502540be40082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { "parentHash": "0x5d6ff569b43798c27d0c87ed6d376ed460b7c7cbceb94d3026fe39e791d48ee6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x15e52fbef063e27b227dd5246b56f35ce92418ba222885c10aa0bbf443d1984b", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0xc598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", @@ -234,47 +256,28 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x26e928de9ed90ec2303fe8f9d0955c7d6cf5376695c97621da31f1b4c405c218" + "hash": "0x9fa6fb4bb56b29579f08aa0678b3bb00694b35109cb928a6fa2ab7d93f5334d0" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x5d6ff569b43798c27d0c87ed6d376ed460b7c7cbceb94d3026fe39e791d48ee6" - }, - "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0x26e928de9ed90ec2303fe8f9d0955c7d6cf5376695c97621da31f1b4c405c218", - "network": "London", + "lastblockhash": "0x9fa6fb4bb56b29579f08aa0678b3bb00694b35109cb928a6fa2ab7d93f5334d0", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -315,20 +318,40 @@ }, "003-fork=Merge": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, + "network": "Merge", + "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0x8f0ef35a9c50a5bcc174563693db8eca307dec77f7635c939379575b5719b96f" + }, "blocks": [ { - "rlp": "0xf90260f901f7a08f0ef35a9c50a5bcc174563693db8eca307dec77f7635c939379575b5719b96fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03a007474d1cb3e51a108af776c5b74157d74663829b0d6e1b4102faa9202842aa0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90260f901f7a08f0ef35a9c50a5bcc174563693db8eca307dec77f7635c939379575b5719b96fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03a007474d1cb3e51a108af776c5b74157d74663829b0d6e1b4102faa9202842aa082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { "parentHash": "0x8f0ef35a9c50a5bcc174563693db8eca307dec77f7635c939379575b5719b96f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x3a007474d1cb3e51a108af776c5b74157d74663829b0d6e1b4102faa9202842a", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0xc598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -340,47 +363,28 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x5a73501fc29c6461ada8d690460b73fbb6ffbff9ee0e270046c2673f2523dff9" + "hash": "0x594dc498ca7c57353cd5b9dc5996000c188e2a235d31c4da3a6a2c6df5bf6a86" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x8f0ef35a9c50a5bcc174563693db8eca307dec77f7635c939379575b5719b96f" - }, - "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0x5a73501fc29c6461ada8d690460b73fbb6ffbff9ee0e270046c2673f2523dff9", - "network": "Merge", + "lastblockhash": "0x594dc498ca7c57353cd5b9dc5996000c188e2a235d31c4da3a6a2c6df5bf6a86", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -421,20 +425,41 @@ }, "004-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x964eb4fd83dce63fec5a7f5d3741d4578623622ab069b74b4e9d70f8fba65190" + }, "blocks": [ { - "rlp": "0xf90282f90218a0964eb4fd83dce63fec5a7f5d3741d4578623622ab069b74b4e9d70f8fba65190a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03a007474d1cb3e51a108af776c5b74157d74663829b0d6e1b4102faa9202842aa0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0c0", + "rlp": "0xf90282f90218a0964eb4fd83dce63fec5a7f5d3741d4578623622ab069b74b4e9d70f8fba65190a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03a007474d1cb3e51a108af776c5b74157d74663829b0d6e1b4102faa9202842aa082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", "blockHeader": { "parentHash": "0x964eb4fd83dce63fec5a7f5d3741d4578623622ab069b74b4e9d70f8fba65190", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x3a007474d1cb3e51a108af776c5b74157d74663829b0d6e1b4102faa9202842a", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0xc598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -446,32 +471,81 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x64cfb6c1e5c88c30408bbf623329eb506ae9771584377b8abac7b29842ef019b", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x001d4e7c1312e954e014b58b04aa3b7bd13e2ec02f4f4bd98733fa56b8030196" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x001d4e7c1312e954e014b58b04aa3b7bd13e2ec02f4f4bd98733fa56b8030196", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4660015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4660015500", + "storage": { + "0x01": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01f923", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de996c36", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1344.md", + "reference-spec-version": "02e46aebc80e6e5006ab4d2daa41876139f9a9e2" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d103c1e8e2f2c6e4a795e606c67b8d07d4c7cbd9d0fd53c3a8f742bd93cba786a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1", + "stateRoot": "0xd103c1e8e2f2c6e4a795e606c67b8d07d4c7cbd9d0fd53c3a8f742bd93cba786", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -484,12 +558,59 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x964eb4fd83dce63fec5a7f5d3741d4578623622ab069b74b4e9d70f8fba65190", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x73ceb822de2d27213bda68bed4d314e27c298059cf55f44c38c27ad4192b7918" }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a06a3263d81036fba8fc72ed04cf83b202ed845a7d5bc5d4c4f5d9d380e65ff1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x64cfb6c1e5c88c30408bbf623329eb506ae9771584377b8abac7b29842ef019b", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a5f9023ba073ceb822de2d27213bda68bed4d314e27c298059cf55f44c38c27ad4192b7918a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0124cd6b34423b88706282a3b443b9cc929fce6f38ab207d2106887dded9bee27a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0x73ceb822de2d27213bda68bed4d314e27c298059cf55f44c38c27ad4192b7918", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x124cd6b34423b88706282a3b443b9cc929fce6f38ab207d2106887dded9bee27", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0xc598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xa861", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5ad232bab51709903d2cfa8c29bf0c6daade352f77de51860faa61a4bd0a4eff" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5ad232bab51709903d2cfa8c29bf0c6daade352f77de51860faa61a4bd0a4eff", "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", @@ -497,6 +618,12 @@ "code": "0x4660015500", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -513,6 +640,14 @@ "0x01": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x01f923", diff --git a/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json b/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json index a154ca8134d..809e1133e95 100644 --- a/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json +++ b/tests/execution-spec-tests/merge/security/selfdestruct_balance_bug/tx_selfdestruct_balance_bug.json @@ -1,29 +1,48 @@ { "000-fork=Constantinople": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Constantinople", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0x0c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8" }, "blocks": [ { - "rlp": "0xf9038af901fba0901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b72718c65b2260094e8e745194dc858a36ebb63a9408e49706d0ab739aeb4c3aa0de979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292a04d7176d7c7f1704f5c63c564df7a763e2d1197a7816361f716d9a517628bdb57b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a000083034da10c80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a09400000000000000000000000000000000000000aa058026a01ed4582ae19fe4488b08f06f0d13cc28939c0c3fed3776df36e252d2b26c8899a01cf258692dd2576d9c2598ee45bf93fd81302faad3d539b5d5a198750c1996b8f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", + "rlp": "0xf9038af901fba00c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05bb4c475a883357a9939e8c6fe527abc714778fc33b35f564af0bb8cb6455dd8a05fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49ba0d9ec3f88014cf1d7bbc99b5b899dd5bc76aef4c4f2956bf8e40aac60bcb04abbb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008303e8ef0c80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a094864bbda5c698ac34b47a9ea3bd4228802cc5ce3b058026a0c23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016a0555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", "blockHeader": { - "parentHash": "0x901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546e", + "parentHash": "0x0c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb72718c65b2260094e8e745194dc858a36ebb63a9408e49706d0ab739aeb4c3a", - "transactionsTrie": "0xde979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292", - "receiptTrie": "0x4d7176d7c7f1704f5c63c564df7a763e2d1197a7816361f716d9a517628bdb57", + "stateRoot": "0x5bb4c475a883357a9939e8c6fe527abc714778fc33b35f564af0bb8cb6455dd8", + "transactionsTrie": "0x5fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49b", + "receiptTrie": "0xd9ec3f88014cf1d7bbc99b5b899dd5bc76aef4c4f2956bf8e40aac60bcb04abb", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x034da1", + "gasUsed": "0x03e8ef", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0xce33c68e80bdeeb6aadafb6615e65e6d6294ec19e2142dd8b1f518a4650dc39f" + "hash": "0x4c28aad6204046a2237753f5fab257b72c6066129bff89a5dee87448b55c5c61" }, "blocknumber": "1", "transactions": [ @@ -32,117 +51,105 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0f4240", "to": "0x00000000000000000000000000000000000000cc", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0f4240" + "v": "0x26", + "r": "0xccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295", + "s": "0x417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba11", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x8388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488a", + "s": "0x12cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b", "value": "0x05", - "to": "0x00000000000000000000000000000000000000aa", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xc23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016", + "s": "0x555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba12", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0x89fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7d", + "s": "0x06191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546e" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0xce33c68e80bdeeb6aadafb6615e65e6d6294ec19e2142dd8b1f518a4650dc39f", - "network": "Constantinople", + "lastblockhash": "0x4c28aad6204046a2237753f5fab257b72c6066129bff89a5dee87448b55c5c61", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x3b9aca00", - "code": "0x", + "balance": "0x00", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", + "nonce": "0x01", "balance": "0x3b9aca00", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", - "storage": {} - }, - "0x00000000000000000000000000000000000000aa": { - "nonce": "0x00", - "balance": "0x03", - "code": "0x34600003600a5760aaff5b346001036018574780600055505b", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": {} }, "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", "storage": {} } }, "postState": { "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x05", - "code": "0x", + "balance": "0x03", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", - "balance": "0x3b9aca00", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", + "nonce": "0x02", + "balance": "0x3b9ac9fd", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": { "0xca1101": "0x01" } @@ -150,26 +157,32 @@ "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": { "0x0ba1aa": "0x05" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674ee9084a", + "balance": "0x1bc16d674eef1956", + "code": "0x", + "storage": {} + }, + "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b": { + "nonce": "0x00", + "balance": "0x05", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", - "balance": "0x3b79c1b1", + "balance": "0x3b73b0a5", "code": "0x", "storage": {} } @@ -178,29 +191,48 @@ }, "001-fork=ConstantinopleFix": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "ConstantinopleFix", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0x0c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8" }, "blocks": [ { - "rlp": "0xf9038af901fba0901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02606773843354db48e5861e2b3e6597b44e3db92066832c16326df4b50a18521a0de979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292a0852b48577d5d910875dcc582cf3b55d61fb26b8c5ae01ab87cb4436e0535b94ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000830360610c80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a09400000000000000000000000000000000000000aa058026a01ed4582ae19fe4488b08f06f0d13cc28939c0c3fed3776df36e252d2b26c8899a01cf258692dd2576d9c2598ee45bf93fd81302faad3d539b5d5a198750c1996b8f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", + "rlp": "0xf9038af901fba00c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0897a5483b675c15fe953e1fbd779f7b984b6d3f16553027ef22fc8be023aaaafa05fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49ba084d5d823fe54538e161573cf42b075f2c789abaab04c57af997e6f4198a6ed77b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008303fbaf0c80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a094864bbda5c698ac34b47a9ea3bd4228802cc5ce3b058026a0c23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016a0555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", "blockHeader": { - "parentHash": "0x901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546e", + "parentHash": "0x0c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2606773843354db48e5861e2b3e6597b44e3db92066832c16326df4b50a18521", - "transactionsTrie": "0xde979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292", - "receiptTrie": "0x852b48577d5d910875dcc582cf3b55d61fb26b8c5ae01ab87cb4436e0535b94a", + "stateRoot": "0x897a5483b675c15fe953e1fbd779f7b984b6d3f16553027ef22fc8be023aaaaf", + "transactionsTrie": "0x5fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49b", + "receiptTrie": "0x84d5d823fe54538e161573cf42b075f2c789abaab04c57af997e6f4198a6ed77", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x036061", + "gasUsed": "0x03fbaf", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0xbd81b8f1364305637c2fae010fd689a7bd115e7807047173733a6fb243329a65" + "hash": "0xc7cb267683c9ea7ed6dc90b6374ae647dce751712ec31e665e8d499dca5ce091" }, "blocknumber": "1", "transactions": [ @@ -209,117 +241,105 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0f4240", "to": "0x00000000000000000000000000000000000000cc", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0f4240" + "v": "0x26", + "r": "0xccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295", + "s": "0x417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba11", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x8388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488a", + "s": "0x12cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b", "value": "0x05", - "to": "0x00000000000000000000000000000000000000aa", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xc23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016", + "s": "0x555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba12", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0x89fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7d", + "s": "0x06191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546e" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0xbd81b8f1364305637c2fae010fd689a7bd115e7807047173733a6fb243329a65", - "network": "ConstantinopleFix", + "lastblockhash": "0xc7cb267683c9ea7ed6dc90b6374ae647dce751712ec31e665e8d499dca5ce091", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x3b9aca00", - "code": "0x", + "balance": "0x00", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", + "nonce": "0x01", "balance": "0x3b9aca00", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", - "storage": {} - }, - "0x00000000000000000000000000000000000000aa": { - "nonce": "0x00", - "balance": "0x03", - "code": "0x34600003600a5760aaff5b346001036018574780600055505b", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": {} }, "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", "storage": {} } }, "postState": { "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x05", - "code": "0x", + "balance": "0x03", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", - "balance": "0x3b9aca00", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", + "nonce": "0x02", + "balance": "0x3b9ac9fd", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": { "0xca1101": "0x01" } @@ -327,26 +347,32 @@ "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": { "0x0ba1aa": "0x05" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674ee9c3ca", + "balance": "0x1bc16d674eefd4d6", + "code": "0x", + "storage": {} + }, + "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b": { + "nonce": "0x00", + "balance": "0x05", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", - "balance": "0x3b790631", + "balance": "0x3b72f525", "code": "0x", "storage": {} } @@ -355,29 +381,48 @@ }, "002-fork=Istanbul": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Istanbul", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0x0c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8" }, "blocks": [ { - "rlp": "0xf9038af901fba0901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0361cbd74b5e343eee0291f8e929c8d6b31d1f7e42e6215396a5193357a94faf6a0de979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292a04b18c508bd9ea13fdaf78caeaabb8fc97ead1ae69be2f9553f6b98a699452162b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008302110e0c80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a09400000000000000000000000000000000000000aa058026a01ed4582ae19fe4488b08f06f0d13cc28939c0c3fed3776df36e252d2b26c8899a01cf258692dd2576d9c2598ee45bf93fd81302faad3d539b5d5a198750c1996b8f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", + "rlp": "0xf9038af901fba00c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03418b7b183f799f3d82358ab23219759ed42250f5b72df3834aa0e9265d1818ca05fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49ba0efb58a3399ed802bd81b242c874e815c29379f30c0452cbaf4d3c07ba6af326db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008302ac620c80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a094864bbda5c698ac34b47a9ea3bd4228802cc5ce3b058026a0c23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016a0555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", "blockHeader": { - "parentHash": "0x901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546e", + "parentHash": "0x0c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x361cbd74b5e343eee0291f8e929c8d6b31d1f7e42e6215396a5193357a94faf6", - "transactionsTrie": "0xde979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292", - "receiptTrie": "0x4b18c508bd9ea13fdaf78caeaabb8fc97ead1ae69be2f9553f6b98a699452162", + "stateRoot": "0x3418b7b183f799f3d82358ab23219759ed42250f5b72df3834aa0e9265d1818c", + "transactionsTrie": "0x5fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49b", + "receiptTrie": "0xefb58a3399ed802bd81b242c874e815c29379f30c0452cbaf4d3c07ba6af326d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02110e", + "gasUsed": "0x02ac62", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x5b77930f8814e5bf42c1a68a3f3168de676aa1174138cb98c3948f6dbe2ee828" + "hash": "0xfc5abc93214f72b2a1043ed0b31b12c81b45fa53da1951a75e92f36975f97deb" }, "blocknumber": "1", "transactions": [ @@ -386,117 +431,105 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0f4240", "to": "0x00000000000000000000000000000000000000cc", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0f4240" + "v": "0x26", + "r": "0xccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295", + "s": "0x417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba11", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x8388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488a", + "s": "0x12cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b", "value": "0x05", - "to": "0x00000000000000000000000000000000000000aa", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xc23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016", + "s": "0x555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba12", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0x89fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7d", + "s": "0x06191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546e" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x5b77930f8814e5bf42c1a68a3f3168de676aa1174138cb98c3948f6dbe2ee828", - "network": "Istanbul", + "lastblockhash": "0xfc5abc93214f72b2a1043ed0b31b12c81b45fa53da1951a75e92f36975f97deb", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x3b9aca00", - "code": "0x", + "balance": "0x00", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", + "nonce": "0x01", "balance": "0x3b9aca00", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", - "storage": {} - }, - "0x00000000000000000000000000000000000000aa": { - "nonce": "0x00", - "balance": "0x03", - "code": "0x34600003600a5760aaff5b346001036018574780600055505b", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": {} }, "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", "storage": {} } }, "postState": { "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x05", - "code": "0x", + "balance": "0x03", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", - "balance": "0x3b9ac9ff", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", + "nonce": "0x02", + "balance": "0x3b9ac9fc", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": { "0xca1101": "0x01" } @@ -504,26 +537,32 @@ "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": { "0x0ba1aa": "0x05" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674edcaa8c", + "balance": "0x1bc16d674ee2bbd4", + "code": "0x", + "storage": {} + }, + "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b": { + "nonce": "0x00", + "balance": "0x05", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", - "balance": "0x3b861f6f", + "balance": "0x3b800e27", "code": "0x", "storage": {} } @@ -532,29 +571,48 @@ }, "003-fork=Berlin": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Berlin", + "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0x0c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8" }, "blocks": [ { - "rlp": "0xf9038af901fba0901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ee0feafa88e8af7692ab8424c30b30f7c00db213da04adee905a8484d321fec7a0de979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292a02d6ed7fd79c9f6385e1f3ae1fda2f95b3848bf47816ecb59c3f7f908dbcbdf25b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008302430e0c80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a09400000000000000000000000000000000000000aa058026a01ed4582ae19fe4488b08f06f0d13cc28939c0c3fed3776df36e252d2b26c8899a01cf258692dd2576d9c2598ee45bf93fd81302faad3d539b5d5a198750c1996b8f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", + "rlp": "0xf9038af901fba00c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0922f8d97bb2efb1f77e5a2507417dd3cd54bc614e4b2d846174dfa184d1c6ae0a05fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49ba0021d2aceec3f631cea91b00f6071e38a7d53125e5e7d88c69a5f56bfc912c77cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008302d75a0c80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a094864bbda5c698ac34b47a9ea3bd4228802cc5ce3b058026a0c23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016a0555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", "blockHeader": { - "parentHash": "0x901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546e", + "parentHash": "0x0c2c92cb540d070d83ebc3a43b4755e7007fb3d6854b700ea4df8f311b752cd8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xee0feafa88e8af7692ab8424c30b30f7c00db213da04adee905a8484d321fec7", - "transactionsTrie": "0xde979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292", - "receiptTrie": "0x2d6ed7fd79c9f6385e1f3ae1fda2f95b3848bf47816ecb59c3f7f908dbcbdf25", + "stateRoot": "0x922f8d97bb2efb1f77e5a2507417dd3cd54bc614e4b2d846174dfa184d1c6ae0", + "transactionsTrie": "0x5fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49b", + "receiptTrie": "0x021d2aceec3f631cea91b00f6071e38a7d53125e5e7d88c69a5f56bfc912c77c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02430e", + "gasUsed": "0x02d75a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", - "hash": "0x0441523b2cd4c3404696af2b4571b70d7bf2ed46b5681182d9cfdb7b1b593af5" + "hash": "0x825825f063f51e4c1b61228bed958d6efb3b98f6ccb6ca5f24ed2b1efb0cf11e" }, "blocknumber": "1", "transactions": [ @@ -563,117 +621,105 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0f4240", "to": "0x00000000000000000000000000000000000000cc", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0f4240" + "v": "0x26", + "r": "0xccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295", + "s": "0x417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba11", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x8388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488a", + "s": "0x12cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b", "value": "0x05", - "to": "0x00000000000000000000000000000000000000aa", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xc23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016", + "s": "0x555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba12", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0x89fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7d", + "s": "0x06191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0x901da43a7c5d4f456ddb0255d9edc34ce192dec7f553f3926de2f650bd83546e" - }, - "genesisRLP": "0xf901fdf901f8a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", - "lastblockhash": "0x0441523b2cd4c3404696af2b4571b70d7bf2ed46b5681182d9cfdb7b1b593af5", - "network": "Berlin", + "lastblockhash": "0x825825f063f51e4c1b61228bed958d6efb3b98f6ccb6ca5f24ed2b1efb0cf11e", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x3b9aca00", - "code": "0x", + "balance": "0x00", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", + "nonce": "0x01", "balance": "0x3b9aca00", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", - "storage": {} - }, - "0x00000000000000000000000000000000000000aa": { - "nonce": "0x00", - "balance": "0x03", - "code": "0x34600003600a5760aaff5b346001036018574780600055505b", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": {} }, "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} - } - }, - "postState": { - "0x00000000000000000000000000000000000000aa": { - "nonce": "0x00", - "balance": "0x05", + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3b9aca00", "code": "0x", "storage": {} + } + }, + "postState": { + "0x00000000000000000000000000000000000000aa": { + "nonce": "0x00", + "balance": "0x03", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", + "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", - "balance": "0x3b9ac9ff", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", + "nonce": "0x02", + "balance": "0x3b9ac9fc", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": { "0xca1101": "0x01" } @@ -681,26 +727,32 @@ "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": { "0x0ba1aa": "0x05" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674ede9e8c", + "balance": "0x1bc16d674ee46984", + "code": "0x", + "storage": {} + }, + "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b": { + "nonce": "0x00", + "balance": "0x05", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", - "balance": "0x3b842b6f", + "balance": "0x3b7e6077", "code": "0x", "storage": {} } @@ -709,30 +761,50 @@ }, "004-fork=London": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "London", + "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xe7367dd71a45651023ab9c632e3b9b537067f45c6880132d1275a97194097c55" }, "blocks": [ { - "rlp": "0xf9038bf901fca0f86ea06a6c774b6dfb8a9477abf3c8d8b9cbb02888e5df9b60baffc8e0a2a7e0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0acf11a5e697386a19f445e3480b177f1b619de37f55943ab0ba8403a21f7d123a0de979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292a0b5145065d375762a041e4bde4866be1235bcb1a81cd6de30dd59e99112971450b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008302a0ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a09400000000000000000000000000000000000000aa058026a01ed4582ae19fe4488b08f06f0d13cc28939c0c3fed3776df36e252d2b26c8899a01cf258692dd2576d9c2598ee45bf93fd81302faad3d539b5d5a198750c1996b8f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", + "rlp": "0xf9038bf901fca0e7367dd71a45651023ab9c632e3b9b537067f45c6880132d1275a97194097c55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ea2ff48c26c6aee1e70a8cedf589adda126ae69a1d56d0fb63378c2f77e87309a05fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49ba02dfd10b10e18070686b373aabc036eb2b4872c3658542a235681fddf8c23b6e4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a00008303351a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a094864bbda5c698ac34b47a9ea3bd4228802cc5ce3b058026a0c23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016a0555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", "blockHeader": { - "parentHash": "0xf86ea06a6c774b6dfb8a9477abf3c8d8b9cbb02888e5df9b60baffc8e0a2a7e0", + "parentHash": "0xe7367dd71a45651023ab9c632e3b9b537067f45c6880132d1275a97194097c55", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xacf11a5e697386a19f445e3480b177f1b619de37f55943ab0ba8403a21f7d123", - "transactionsTrie": "0xde979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292", - "receiptTrie": "0xb5145065d375762a041e4bde4866be1235bcb1a81cd6de30dd59e99112971450", + "stateRoot": "0xea2ff48c26c6aee1e70a8cedf589adda126ae69a1d56d0fb63378c2f77e87309", + "transactionsTrie": "0x5fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49b", + "receiptTrie": "0x2dfd10b10e18070686b373aabc036eb2b4872c3658542a235681fddf8c23b6e4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x020000", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02a0ce", + "gasUsed": "0x03351a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xdb4dcbd475ab071b8660f9dc0b5145ffa07d2fdc6bbf0daf3ac00188de89cd19" + "hash": "0x5d24fd6664c157345f49231e88e3ce6f1f813ac81db1621d83651cc996d293bb" }, "blocknumber": "1", "transactions": [ @@ -741,118 +813,105 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0f4240", "to": "0x00000000000000000000000000000000000000cc", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0f4240" + "v": "0x26", + "r": "0xccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295", + "s": "0x417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba11", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x8388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488a", + "s": "0x12cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b", "value": "0x05", - "to": "0x00000000000000000000000000000000000000aa", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xc23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016", + "s": "0x555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba12", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0x89fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7d", + "s": "0x06191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xf86ea06a6c774b6dfb8a9477abf3c8d8b9cbb02888e5df9b60baffc8e0a2a7e0" - }, - "genesisRLP": "0xf901fef901f9a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0xdb4dcbd475ab071b8660f9dc0b5145ffa07d2fdc6bbf0daf3ac00188de89cd19", - "network": "London", + "lastblockhash": "0x5d24fd6664c157345f49231e88e3ce6f1f813ac81db1621d83651cc996d293bb", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x3b9aca00", - "code": "0x", + "balance": "0x00", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", + "nonce": "0x01", "balance": "0x3b9aca00", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", - "storage": {} - }, - "0x00000000000000000000000000000000000000aa": { - "nonce": "0x00", - "balance": "0x03", - "code": "0x34600003600a5760aaff5b346001036018574780600055505b", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": {} }, "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", "storage": {} } }, "postState": { "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x05", - "code": "0x", + "balance": "0x03", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", - "balance": "0x3b9ac9ff", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", + "nonce": "0x02", + "balance": "0x3b9ac9fc", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": { "0xca1101": "0x01" } @@ -860,26 +919,32 @@ "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": { "0x0ba1aa": "0x05" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x1bc16d674ecfe26a", + "balance": "0x1bc16d674ed19f4e", + "code": "0x", + "storage": {} + }, + "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b": { + "nonce": "0x00", + "balance": "0x05", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", - "balance": "0x3b8081ef", + "balance": "0x3b7ab6f7", "code": "0x", "storage": {} } @@ -888,30 +953,50 @@ }, "005-fork=Merge": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Merge", + "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0x0072487cc0d0e5b14e36bfc82c71a61c50b9b18e44439ac053801b96c42d46df" }, "blocks": [ { - "rlp": "0xf90388f901f9a07b43a70f79aa6f2bd2bb11b0f14925f1aa3bc575ea918a490ec4be1d568ceb3ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02082f13175fdeee401abcdf5612a3c8c06b4ed468a93101b9aad3864bbd0322da0de979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292a0b5145065d375762a041e4bde4866be1235bcb1a81cd6de30dd59e99112971450b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302a0ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a09400000000000000000000000000000000000000aa058026a01ed4582ae19fe4488b08f06f0d13cc28939c0c3fed3776df36e252d2b26c8899a01cf258692dd2576d9c2598ee45bf93fd81302faad3d539b5d5a198750c1996b8f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", + "rlp": "0xf90388f901f9a00072487cc0d0e5b14e36bfc82c71a61c50b9b18e44439ac053801b96c42d46dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0784b5bf4cdac3b738a2e84c5c05697b8feb6c0a2f8764dfa02391914ff0e1d4ea05fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49ba02dfd10b10e18070686b373aabc036eb2b4872c3658542a235681fddf8c23b6e4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303351a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a094864bbda5c698ac34b47a9ea3bd4228802cc5ce3b058026a0c23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016a0555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0", "blockHeader": { - "parentHash": "0x7b43a70f79aa6f2bd2bb11b0f14925f1aa3bc575ea918a490ec4be1d568ceb3e", + "parentHash": "0x0072487cc0d0e5b14e36bfc82c71a61c50b9b18e44439ac053801b96c42d46df", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2082f13175fdeee401abcdf5612a3c8c06b4ed468a93101b9aad3864bbd0322d", - "transactionsTrie": "0xde979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292", - "receiptTrie": "0xb5145065d375762a041e4bde4866be1235bcb1a81cd6de30dd59e99112971450", + "stateRoot": "0x784b5bf4cdac3b738a2e84c5c05697b8feb6c0a2f8764dfa02391914ff0e1d4e", + "transactionsTrie": "0x5fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49b", + "receiptTrie": "0x2dfd10b10e18070686b373aabc036eb2b4872c3658542a235681fddf8c23b6e4", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02a0ce", + "gasUsed": "0x03351a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x16af3d4444270a731ee7ee22f0740d14d97ca92840ea4dd1da1d8d469507c3fb" + "hash": "0x9cada6370f1c39d6e40e53e57ac967904f65de75dac01500417f700f8d03c34c" }, "blocknumber": "1", "transactions": [ @@ -920,118 +1005,105 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0f4240", "to": "0x00000000000000000000000000000000000000cc", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0f4240" + "v": "0x26", + "r": "0xccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295", + "s": "0x417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba11", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x8388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488a", + "s": "0x12cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b", "value": "0x05", - "to": "0x00000000000000000000000000000000000000aa", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xc23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016", + "s": "0x555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba12", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0x89fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7d", + "s": "0x06191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x7b43a70f79aa6f2bd2bb11b0f14925f1aa3bc575ea918a490ec4be1d568ceb3e" - }, - "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0x16af3d4444270a731ee7ee22f0740d14d97ca92840ea4dd1da1d8d469507c3fb", - "network": "Merge", + "lastblockhash": "0x9cada6370f1c39d6e40e53e57ac967904f65de75dac01500417f700f8d03c34c", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x3b9aca00", - "code": "0x", + "balance": "0x00", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", + "nonce": "0x01", "balance": "0x3b9aca00", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", - "storage": {} - }, - "0x00000000000000000000000000000000000000aa": { - "nonce": "0x00", - "balance": "0x03", - "code": "0x34600003600a5760aaff5b346001036018574780600055505b", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": {} }, "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", "storage": {} } }, "postState": { "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x05", - "code": "0x", + "balance": "0x03", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", - "balance": "0x3b9ac9ff", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", + "nonce": "0x02", + "balance": "0x3b9ac9fc", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": { "0xca1101": "0x01" } @@ -1039,26 +1111,32 @@ "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": { "0x0ba1aa": "0x05" } }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x07e26a", + "balance": "0x099f4e", + "code": "0x", + "storage": {} + }, + "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b": { + "nonce": "0x00", + "balance": "0x05", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", - "balance": "0x3b8081ef", + "balance": "0x3b7ab6f7", "code": "0x", "storage": {} } @@ -1067,31 +1145,52 @@ }, "006-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2" + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6a25755ef4ab6363a1476d1c706ce0962900e8177afe7b9dd9974966ef3f3ed5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa35684782f8f2b5c19bfd3d903155e28b4b41e0616bff9cd47e8736832c26e99" }, "blocks": [ { - "rlp": "0xf903aaf9021aa0d71a5be8ad9e1323152d2d45081fee16a43e9b1b3f56fe4d1f131c03baa47215a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02082f13175fdeee401abcdf5612a3c8c06b4ed468a93101b9aad3864bbd0322da0de979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292a0b5145065d375762a041e4bde4866be1235bcb1a81cd6de30dd59e99112971450b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008302a0ce0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a09400000000000000000000000000000000000000aa058026a01ed4582ae19fe4488b08f06f0d13cc28939c0c3fed3776df36e252d2b26c8899a01cf258692dd2576d9c2598ee45bf93fd81302faad3d539b5d5a198750c1996b8f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0c0", + "rlp": "0xf903aaf9021aa0a35684782f8f2b5c19bfd3d903155e28b4b41e0616bff9cd47e8736832c26e99a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06d99468b3cbbf53354f96d99490526cae87be96dd0356abda3abd70d5a0012cea05fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49ba0fd5d74b750276cfcf3e738ec8e4b838e7d5cf8ef0f567e6ba7030af4a4cff130b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303351e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a094864bbda5c698ac34b47a9ea3bd4228802cc5ce3b058026a0c23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016a0555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0c0", "blockHeader": { - "parentHash": "0xd71a5be8ad9e1323152d2d45081fee16a43e9b1b3f56fe4d1f131c03baa47215", + "parentHash": "0xa35684782f8f2b5c19bfd3d903155e28b4b41e0616bff9cd47e8736832c26e99", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x2082f13175fdeee401abcdf5612a3c8c06b4ed468a93101b9aad3864bbd0322d", - "transactionsTrie": "0xde979f0008f9fb5d1053c66eb526c01a5e08349f0c5699c9c227b1042e60e292", - "receiptTrie": "0xb5145065d375762a041e4bde4866be1235bcb1a81cd6de30dd59e99112971450", + "stateRoot": "0x6d99468b3cbbf53354f96d99490526cae87be96dd0356abda3abd70d5a0012ce", + "transactionsTrie": "0x5fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49b", + "receiptTrie": "0xfd5d74b750276cfcf3e738ec8e4b838e7d5cf8ef0f567e6ba7030af4a4cff130", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x02a0ce", + "gasUsed": "0x03351e", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x5bc842884726d01ab6590f0b21cbe04eeec332f6ecad417b7730653751697926", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xe8f86f237690ec4a5a2fe437b0780abd3ef86265e3a6fce1c3047a8af6befb5d" }, "blocknumber": "1", "transactions": [ @@ -1100,59 +1199,156 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0f4240", "to": "0x00000000000000000000000000000000000000cc", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0f4240" + "v": "0x26", + "r": "0xccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295", + "s": "0x417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba11", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x8388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488a", + "s": "0x12cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b", "value": "0x05", - "to": "0x00000000000000000000000000000000000000aa", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xc23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016", + "s": "0x555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x000000000000000000000000000000000000ba12", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0x89fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7d", + "s": "0x06191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0xe8f86f237690ec4a5a2fe437b0780abd3ef86265e3a6fce1c3047a8af6befb5d", + "pre": { + "0x00000000000000000000000000000000000000aa": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", + "storage": {} + }, + "0x00000000000000000000000000000000000000cc": { + "nonce": "0x01", + "balance": "0x3b9aca00", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", + "storage": {} + }, + "0x000000000000000000000000000000000000ba11": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": {} + }, + "0x000000000000000000000000000000000000ba12": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x00000000000000000000000000000000000000aa": { + "nonce": "0x00", + "balance": "0x03", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", + "storage": {} + }, + "0x00000000000000000000000000000000000000cc": { + "nonce": "0x02", + "balance": "0x3b9ac9fc", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", + "storage": { + "0xca1101": "0x01" + } + }, + "0x000000000000000000000000000000000000ba11": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": {} + }, + "0x000000000000000000000000000000000000ba12": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": { + "0x0ba1aa": "0x05" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x099f5a", + "code": "0x", + "storage": {} + }, + "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b": { + "nonce": "0x00", + "balance": "0x05", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x04", + "balance": "0x3b7ab6cf", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fd47f280027e1fa6684511e8c24de936760313e5daed2eebfb291660fad65046a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x1ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10", + "stateRoot": "0xfd47f280027e1fa6684511e8c24de936760313e5daed2eebfb291660fad65046", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1165,55 +1361,151 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xd71a5be8ad9e1323152d2d45081fee16a43e9b1b3f56fe4d1f131c03baa47215", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe688e6d12fc852db06a7f4f7af3767bf1a626c79e6e437b0bab03dc918f4e797" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01ea8ee4bf3f4d8ee348367703c2e4fed56d81cfc967d42853bad57b37ea6cc10a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x5bc842884726d01ab6590f0b21cbe04eeec332f6ecad417b7730653751697926", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf903cdf9023da0e688e6d12fc852db06a7f4f7af3767bf1a626c79e6e437b0bab03dc918f4e797a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03e5ee7ad6bbe319281032f3e9603fb243e9b8c5b14004951e1cc171671f5d1c7a05fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49ba0fd5d74b750276cfcf3e738ec8e4b838e7d5cf8ef0f567e6ba7030af4a4cff130b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303351e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f90188f860800a830f42409400000000000000000000000000000000000000cc808026a0ccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295a0417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72f860010a830186a094000000000000000000000000000000000000ba11808025a08388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488aa012cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353f860020a830186a094864bbda5c698ac34b47a9ea3bd4228802cc5ce3b058026a0c23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016a0555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022f860030a830186a094000000000000000000000000000000000000ba12808026a089fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7da006191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7c0c0", + "blockHeader": { + "parentHash": "0xe688e6d12fc852db06a7f4f7af3767bf1a626c79e6e437b0bab03dc918f4e797", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3e5ee7ad6bbe319281032f3e9603fb243e9b8c5b14004951e1cc171671f5d1c7", + "transactionsTrie": "0x5fb0f79e6e813d1f0e1c53a26406f691ebab264a4920e2005538891ce7e7e49b", + "receiptTrie": "0xfd5d74b750276cfcf3e738ec8e4b838e7d5cf8ef0f567e6ba7030af4a4cff130", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03351e", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf58d46574b181db26750f6a6b0fbf8b9886074c6c5eca2de3f6b5b4f69516119" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "0x00000000000000000000000000000000000000cc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xccba01db2304343a85970166cada3a975f30075a600d3686102ae6d07b5a8295", + "s": "0x417b652184cdc19ba7cf787d7fa0658b7222616b4962aec60a29a41d26b22f72", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x000000000000000000000000000000000000ba11", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x8388daba93f7822d3182dab304cc4edc82072c35374944f93a650c033169488a", + "s": "0x12cc16a5c3327aade9b3215c9de2f844704be1683398e6f419674186531a6353", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x02", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b", + "value": "0x05", + "data": "0x", + "v": "0x26", + "r": "0xc23895b8eef67d060fa6365e97fd3edfae9a42d1e004dd143ddb8c60d1c4d016", + "s": "0x555733cc482d7b453b61ef44ad12b6e007a0bd11b4647e86bd5a1ce63cf6e022", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x03", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x000000000000000000000000000000000000ba12", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x89fa4e48f8f7c161bd227c6e116bb33a84633f478496f0f10a1cb634dbd16c7d", + "s": "0x06191b9b2fd038d0abdc937351f90fd08bc54e8acb31f7d5bf0b3327d12067d7", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf58d46574b181db26750f6a6b0fbf8b9886074c6c5eca2de3f6b5b4f69516119", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x3b9aca00", - "code": "0x", + "balance": "0x00", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", + "nonce": "0x01", "balance": "0x3b9aca00", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", - "storage": {} - }, - "0x00000000000000000000000000000000000000aa": { - "nonce": "0x00", - "balance": "0x03", - "code": "0x34600003600a5760aaff5b346001036018574780600055505b", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": {} }, "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", "storage": {} } }, "postState": { "0x00000000000000000000000000000000000000aa": { "nonce": "0x00", - "balance": "0x05", - "code": "0x", + "balance": "0x03", + "code": "0x61001c600081600b8239f334600014601857346001146010575b005b47600055600e565b60aaff", "storage": {} }, "0x00000000000000000000000000000000000000cc": { - "nonce": "0x00", - "balance": "0x3b9ac9ff", - "code": "0x6000600060006000600060aa620186a0f162ca1101556000600060006000600160aa620186a0f1", + "nonce": "0x02", + "balance": "0x3b9ac9fc", + "code": "0x60aa3b6000600060aa3c60aa3b60006003f06000600060006000600073864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f162ca1101556000600060006000600173864bbda5c698ac34b47a9ea3bd4228802cc5ce3b620186a0f1", "storage": { "0xca1101": "0x01" } @@ -1221,26 +1513,40 @@ "0x000000000000000000000000000000000000ba11": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": {} }, "0x000000000000000000000000000000000000ba12": { "nonce": "0x00", "balance": "0x00", - "code": "0x60aa31620ba1aa55", + "code": "0x73864bbda5c698ac34b47a9ea3bd4228802cc5ce3b31620ba1aa55", "storage": { "0x0ba1aa": "0x05" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x07e26a", + "balance": "0x099f5a", + "code": "0x", + "storage": {} + }, + "0x864bbda5c698ac34b47a9ea3bd4228802cc5ce3b": { + "nonce": "0x00", + "balance": "0x05", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x04", - "balance": "0x3b8081ef", + "balance": "0x3b7ab6cf", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json index f18122ebe3b..114d1b91075 100644 --- a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json +++ b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_call_out_of_gas.json @@ -1,20 +1,41 @@ { "000-fork=Shanghai-CALL-sufficient_gas-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a024f69b7bc0607f012ec47f3f3b6a3dcc7d8a290bb09b3d31fba802307a1e6617a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x24f69b7bc0607f012ec47f3f3b6a3dcc7d8a290bb09b3d31fba802307a1e6617", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x45db63e3a51d71100a894a5c23066b8d27ac0155b2ee806736654aeaaaca77c6" + }, "blocks": [ { - "rlp": "0xf90282f90218a045db63e3a51d71100a894a5c23066b8d27ac0155b2ee806736654aeaaaca77c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b3db74aef215e9743f84c683d401c34b1c4e5ba9fe802ac84f030dfdb60d491a08a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24ba0f9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cbb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc80801ca0fbe36e73674f41187df0683f9b7aaed65edf9740f6cc5cf6a4375b4a7cf02e47a0308692c0ecfef25c4c45fa2c0f997de0496413cbf787e8ba89c8e304ba38a204c0c0", + "rlp": "0xf90282f90218a045db63e3a51d71100a894a5c23066b8d27ac0155b2ee806736654aeaaaca77c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b3db74aef215e9743f84c683d401c34b1c4e5ba9fe802ac84f030dfdb60d491a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca0f9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cbb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", "blockHeader": { "parentHash": "0x45db63e3a51d71100a894a5c23066b8d27ac0155b2ee806736654aeaaaca77c6", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x6b3db74aef215e9743f84c683d401c34b1c4e5ba9fe802ac84f030dfdb60d491", - "transactionsTrie": "0x8a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24b", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", "receiptTrie": "0xf9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cb", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -26,51 +47,37 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xbdc751a4041c897a238d53edc19c0396fa8a65885b269f2e295a00bcfebe8c80", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x930113249ffc16e5a595b74595e77efd6d745aa9fdd3cfd6f1e51de7526a96ee" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0xcccccccccccccccccccccccccccccccccccccccc", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x24f69b7bc0607f012ec47f3f3b6a3dcc7d8a290bb09b3d31fba802307a1e6617", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x45db63e3a51d71100a894a5c23066b8d27ac0155b2ee806736654aeaaaca77c6", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a024f69b7bc0607f012ec47f3f3b6a3dcc7d8a290bb09b3d31fba802307a1e6617a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xbdc751a4041c897a238d53edc19c0396fa8a65885b269f2e295a00bcfebe8c80", - "network": "Shanghai", + "lastblockhash": "0x930113249ffc16e5a595b74595e77efd6d745aa9fdd3cfd6f1e51de7526a96ee", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f150", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -82,12 +89,6 @@ "balance": "0x00", "code": "0x60006000600060006000610100607af1600055", "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x60006000600060006000416000f150", - "storage": {} } }, "postState": { @@ -122,20 +123,41 @@ }, "001-fork=Shanghai-CALL-insufficient_gas-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03e2bdcb45f5a4abdabedfe972ca7c36b1bc0eb0f1b8b3bfcfaf33aa3bec5386aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3e2bdcb45f5a4abdabedfe972ca7c36b1bc0eb0f1b8b3bfcfaf33aa3bec5386a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x0d405fa10e6fb78d4938cbee5eed3f373744680ff5d9d1ffec1f6be9fc838c0a" + }, "blocks": [ { - "rlp": "0xf90282f90218a00d405fa10e6fb78d4938cbee5eed3f373744680ff5d9d1ffec1f6be9fc838c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05203650070a6b0d343c3f6e59e560bd8a311cc1950b5fd4f4c74a4ce0cbd2f19a08a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24ba09e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265598203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc80801ca0fbe36e73674f41187df0683f9b7aaed65edf9740f6cc5cf6a4375b4a7cf02e47a0308692c0ecfef25c4c45fa2c0f997de0496413cbf787e8ba89c8e304ba38a204c0c0", + "rlp": "0xf90282f90218a00d405fa10e6fb78d4938cbee5eed3f373744680ff5d9d1ffec1f6be9fc838c0aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05203650070a6b0d343c3f6e59e560bd8a311cc1950b5fd4f4c74a4ce0cbd2f19a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca09e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265598203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", "blockHeader": { "parentHash": "0x0d405fa10e6fb78d4938cbee5eed3f373744680ff5d9d1ffec1f6be9fc838c0a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x5203650070a6b0d343c3f6e59e560bd8a311cc1950b5fd4f4c74a4ce0cbd2f19", - "transactionsTrie": "0x8a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24b", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", "receiptTrie": "0x9e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -147,51 +169,37 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x5df7bc0fb3e8c2973b613ba32021c6d482c267f68019e9ece854f7373f5390dc", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x8d76768914bc77bc0f96702a0e5d83730efa3bea9571a35c6be616766eda239b" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0xcccccccccccccccccccccccccccccccccccccccc", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3e2bdcb45f5a4abdabedfe972ca7c36b1bc0eb0f1b8b3bfcfaf33aa3bec5386a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x0d405fa10e6fb78d4938cbee5eed3f373744680ff5d9d1ffec1f6be9fc838c0a", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03e2bdcb45f5a4abdabedfe972ca7c36b1bc0eb0f1b8b3bfcfaf33aa3bec5386aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x5df7bc0fb3e8c2973b613ba32021c6d482c267f68019e9ece854f7373f5390dc", - "network": "Shanghai", + "lastblockhash": "0x8d76768914bc77bc0f96702a0e5d83730efa3bea9571a35c6be616766eda239b", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f150", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -203,12 +211,6 @@ "balance": "0x00", "code": "0x600060006000600060006101006079f1600055", "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x60006000600060006000416000f150", - "storage": {} } }, "postState": { @@ -241,20 +243,41 @@ }, "002-fork=Shanghai-CALLCODE-sufficient_gas-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06546717425a94dea1c8caaf8379dd4eb2a6be33e56ff2e4e8d39d60122836756a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6546717425a94dea1c8caaf8379dd4eb2a6be33e56ff2e4e8d39d60122836756", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x7218911da8c08b14e0446f53234dac5806316bc32fb3248c6c8d1608bad79df8" + }, "blocks": [ { - "rlp": "0xf90282f90218a07218911da8c08b14e0446f53234dac5806316bc32fb3248c6c8d1608bad79df8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a6bcd1416db5cb0b0dea746b084a58b6610918f2db0f775aadf0fcd2782e98faa08a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24ba0f9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cbb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc80801ca0fbe36e73674f41187df0683f9b7aaed65edf9740f6cc5cf6a4375b4a7cf02e47a0308692c0ecfef25c4c45fa2c0f997de0496413cbf787e8ba89c8e304ba38a204c0c0", + "rlp": "0xf90282f90218a07218911da8c08b14e0446f53234dac5806316bc32fb3248c6c8d1608bad79df8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a6bcd1416db5cb0b0dea746b084a58b6610918f2db0f775aadf0fcd2782e98faa0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca0f9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cbb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", "blockHeader": { "parentHash": "0x7218911da8c08b14e0446f53234dac5806316bc32fb3248c6c8d1608bad79df8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0xa6bcd1416db5cb0b0dea746b084a58b6610918f2db0f775aadf0fcd2782e98fa", - "transactionsTrie": "0x8a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24b", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", "receiptTrie": "0xf9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cb", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -266,51 +289,37 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x616390b1ea55fdf5dc519e29b4083896276a0b4531ba19d415082a25ff232a82", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xf11ee3dbb4e30ff6210e49d6fe476b01b0092e688112dcaee301b9b567e0c5c9" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0xcccccccccccccccccccccccccccccccccccccccc", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x6546717425a94dea1c8caaf8379dd4eb2a6be33e56ff2e4e8d39d60122836756", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x7218911da8c08b14e0446f53234dac5806316bc32fb3248c6c8d1608bad79df8", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06546717425a94dea1c8caaf8379dd4eb2a6be33e56ff2e4e8d39d60122836756a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x616390b1ea55fdf5dc519e29b4083896276a0b4531ba19d415082a25ff232a82", - "network": "Shanghai", + "lastblockhash": "0xf11ee3dbb4e30ff6210e49d6fe476b01b0092e688112dcaee301b9b567e0c5c9", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f250", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -322,12 +331,6 @@ "balance": "0x00", "code": "0x60006000600060006000610100607af1600055", "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x60006000600060006000416000f250", - "storage": {} } }, "postState": { @@ -362,20 +365,41 @@ }, "003-fork=Shanghai-CALLCODE-insufficient_gas-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08a78371a94d699059a8734f481eb5ed434fd49d66b6403c43e566ce2b4e6c26da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8a78371a94d699059a8734f481eb5ed434fd49d66b6403c43e566ce2b4e6c26d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xcae5f5c2173d7850f648b855b01f4f82e9b968b6a5c52d545c6c44d368606094" + }, "blocks": [ { - "rlp": "0xf90282f90218a0cae5f5c2173d7850f648b855b01f4f82e9b968b6a5c52d545c6c44d368606094a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0709b981b7247b813344e38d05736e84c9cc4ed0f7405dbcd5e88d1928d01a6dda08a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24ba09e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265598203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc80801ca0fbe36e73674f41187df0683f9b7aaed65edf9740f6cc5cf6a4375b4a7cf02e47a0308692c0ecfef25c4c45fa2c0f997de0496413cbf787e8ba89c8e304ba38a204c0c0", + "rlp": "0xf90282f90218a0cae5f5c2173d7850f648b855b01f4f82e9b968b6a5c52d545c6c44d368606094a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0709b981b7247b813344e38d05736e84c9cc4ed0f7405dbcd5e88d1928d01a6dda0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca09e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265598203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", "blockHeader": { "parentHash": "0xcae5f5c2173d7850f648b855b01f4f82e9b968b6a5c52d545c6c44d368606094", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x709b981b7247b813344e38d05736e84c9cc4ed0f7405dbcd5e88d1928d01a6dd", - "transactionsTrie": "0x8a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24b", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", "receiptTrie": "0x9e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -387,51 +411,37 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xab8fba5b3b10a17a48cb9b3e6469daa04f4557732778e0d9629761754e2f1257", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x480af2f7a3b072cb25b6b75d8e16c5b50f1334923cec044c0d7d79c81c1df668" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0xcccccccccccccccccccccccccccccccccccccccc", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8a78371a94d699059a8734f481eb5ed434fd49d66b6403c43e566ce2b4e6c26d", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xcae5f5c2173d7850f648b855b01f4f82e9b968b6a5c52d545c6c44d368606094", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08a78371a94d699059a8734f481eb5ed434fd49d66b6403c43e566ce2b4e6c26da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xab8fba5b3b10a17a48cb9b3e6469daa04f4557732778e0d9629761754e2f1257", - "network": "Shanghai", + "lastblockhash": "0x480af2f7a3b072cb25b6b75d8e16c5b50f1334923cec044c0d7d79c81c1df668", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f250", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -443,12 +453,6 @@ "balance": "0x00", "code": "0x600060006000600060006101006079f1600055", "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x60006000600060006000416000f250", - "storage": {} } }, "postState": { @@ -481,20 +485,41 @@ }, "004-fork=Shanghai-DELEGATECALL-sufficient_gas-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b7413fed7eeb730880e530f56d3935b16269cd02e04874c2e512859da2c081a0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb7413fed7eeb730880e530f56d3935b16269cd02e04874c2e512859da2c081a0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x06470a1be6f5b4e914805a4b54538ae93ea648bccdd32895728824e0b5e011df" + }, "blocks": [ { - "rlp": "0xf90282f90218a006470a1be6f5b4e914805a4b54538ae93ea648bccdd32895728824e0b5e011dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0730d8a749411b7fd4dce364ec25e9fd4963e2b123b73030506f6eaf1ccbea8f3a08a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24ba02107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098bb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3138203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc80801ca0fbe36e73674f41187df0683f9b7aaed65edf9740f6cc5cf6a4375b4a7cf02e47a0308692c0ecfef25c4c45fa2c0f997de0496413cbf787e8ba89c8e304ba38a204c0c0", + "rlp": "0xf90282f90218a006470a1be6f5b4e914805a4b54538ae93ea648bccdd32895728824e0b5e011dfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0730d8a749411b7fd4dce364ec25e9fd4963e2b123b73030506f6eaf1ccbea8f3a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca02107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098bb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3138203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", "blockHeader": { "parentHash": "0x06470a1be6f5b4e914805a4b54538ae93ea648bccdd32895728824e0b5e011df", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x730d8a749411b7fd4dce364ec25e9fd4963e2b123b73030506f6eaf1ccbea8f3", - "transactionsTrie": "0x8a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24b", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", "receiptTrie": "0x2107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098b", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -506,51 +531,37 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xa4cad4bc74672ebcb10a8f934c999d6b633b829c41dc4d1eb2cd03dfd198b28f", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x70cb69ebecabe020b5b9ccc2632190da8ec73efa6b8736f42c219e526b460b5b" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0xcccccccccccccccccccccccccccccccccccccccc", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb7413fed7eeb730880e530f56d3935b16269cd02e04874c2e512859da2c081a0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x06470a1be6f5b4e914805a4b54538ae93ea648bccdd32895728824e0b5e011df", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b7413fed7eeb730880e530f56d3935b16269cd02e04874c2e512859da2c081a0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xa4cad4bc74672ebcb10a8f934c999d6b633b829c41dc4d1eb2cd03dfd198b28f", - "network": "Shanghai", + "lastblockhash": "0x70cb69ebecabe020b5b9ccc2632190da8ec73efa6b8736f42c219e526b460b5b", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000f450", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -562,12 +573,6 @@ "balance": "0x00", "code": "0x600060006000600060006101006077f1600055", "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x6000600060006000416000f450", - "storage": {} } }, "postState": { @@ -602,20 +607,41 @@ }, "005-fork=Shanghai-DELEGATECALL-insufficient_gas-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a053f3c940e82f2b5878c437badaf1144020c94c47ec9008f84ecd934e2553e9a4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x53f3c940e82f2b5878c437badaf1144020c94c47ec9008f84ecd934e2553e9a4", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xdba7cba1476ff640bd70e5e9c77196baf2eb87940d23f75a8cb7653496db3b8c" + }, "blocks": [ { - "rlp": "0xf90282f90218a0dba7cba1476ff640bd70e5e9c77196baf2eb87940d23f75a8cb7653496db3b8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa003a6d22fe0cd20c153eca91aff5ff26a0d0f8d56067dd4bc1f75219b43b0e375a08a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24ba08ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7db901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265568203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc80801ca0fbe36e73674f41187df0683f9b7aaed65edf9740f6cc5cf6a4375b4a7cf02e47a0308692c0ecfef25c4c45fa2c0f997de0496413cbf787e8ba89c8e304ba38a204c0c0", + "rlp": "0xf90282f90218a0dba7cba1476ff640bd70e5e9c77196baf2eb87940d23f75a8cb7653496db3b8ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa003a6d22fe0cd20c153eca91aff5ff26a0d0f8d56067dd4bc1f75219b43b0e375a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca08ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7db901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265568203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", "blockHeader": { "parentHash": "0xdba7cba1476ff640bd70e5e9c77196baf2eb87940d23f75a8cb7653496db3b8c", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x03a6d22fe0cd20c153eca91aff5ff26a0d0f8d56067dd4bc1f75219b43b0e375", - "transactionsTrie": "0x8a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24b", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", "receiptTrie": "0x8ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -627,51 +653,37 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x8c9ef65b2d1490243881a189ea7c2788325b16debbb6d4d12599b6f823d967b2", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaa902ef3e346240531ffe945c29c90ffbc9e1b2b78fd5fee6e7e5be303cf325d" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0xcccccccccccccccccccccccccccccccccccccccc", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x53f3c940e82f2b5878c437badaf1144020c94c47ec9008f84ecd934e2553e9a4", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xdba7cba1476ff640bd70e5e9c77196baf2eb87940d23f75a8cb7653496db3b8c", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a053f3c940e82f2b5878c437badaf1144020c94c47ec9008f84ecd934e2553e9a4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x8c9ef65b2d1490243881a189ea7c2788325b16debbb6d4d12599b6f823d967b2", - "network": "Shanghai", + "lastblockhash": "0xaa902ef3e346240531ffe945c29c90ffbc9e1b2b78fd5fee6e7e5be303cf325d", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000f450", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -683,12 +695,6 @@ "balance": "0x00", "code": "0x600060006000600060006101006076f1600055", "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x6000600060006000416000f450", - "storage": {} } }, "postState": { @@ -721,20 +727,41 @@ }, "006-fork=Shanghai-STATICCALL-sufficient_gas-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07af49227f6f706f3eeee78512bcf4263e0e075ecf27eadffed199ee3878a2587a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7af49227f6f706f3eeee78512bcf4263e0e075ecf27eadffed199ee3878a2587", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1110ded43ea4f59a446950d64001df41422c6d1c71bebc16157977e17f90a21e" + }, "blocks": [ { - "rlp": "0xf90282f90218a01110ded43ea4f59a446950d64001df41422c6d1c71bebc16157977e17f90a21ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa037d518a06706c26efbfedda339ca8204a86cb5d817239375f5252c78eecb88faa08a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24ba02107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098bb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3138203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc80801ca0fbe36e73674f41187df0683f9b7aaed65edf9740f6cc5cf6a4375b4a7cf02e47a0308692c0ecfef25c4c45fa2c0f997de0496413cbf787e8ba89c8e304ba38a204c0c0", + "rlp": "0xf90282f90218a01110ded43ea4f59a446950d64001df41422c6d1c71bebc16157977e17f90a21ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa037d518a06706c26efbfedda339ca8204a86cb5d817239375f5252c78eecb88faa0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca02107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098bb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3138203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", "blockHeader": { "parentHash": "0x1110ded43ea4f59a446950d64001df41422c6d1c71bebc16157977e17f90a21e", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x37d518a06706c26efbfedda339ca8204a86cb5d817239375f5252c78eecb88fa", - "transactionsTrie": "0x8a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24b", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", "receiptTrie": "0x2107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098b", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -746,51 +773,37 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x3a34894381543d4bcdd55a510f8a64c3679dcd59fa0d59d11d5a582027178368", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xd34b20df6f84866be1538ef63bc24c4245285d767076a5761c3e4226b769a696" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0xcccccccccccccccccccccccccccccccccccccccc", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7af49227f6f706f3eeee78512bcf4263e0e075ecf27eadffed199ee3878a2587", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1110ded43ea4f59a446950d64001df41422c6d1c71bebc16157977e17f90a21e", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07af49227f6f706f3eeee78512bcf4263e0e075ecf27eadffed199ee3878a2587a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x3a34894381543d4bcdd55a510f8a64c3679dcd59fa0d59d11d5a582027178368", - "network": "Shanghai", + "lastblockhash": "0xd34b20df6f84866be1538ef63bc24c4245285d767076a5761c3e4226b769a696", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000fa50", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -802,12 +815,6 @@ "balance": "0x00", "code": "0x600060006000600060006101006077f1600055", "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x6000600060006000416000fa50", - "storage": {} } }, "postState": { @@ -842,20 +849,41 @@ }, "007-fork=Shanghai-STATICCALL-insufficient_gas-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a042af5e180c6a67d6075cc04e5af2e11e45a009ea2d4001e0b1ffcc290af77e37a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x42af5e180c6a67d6075cc04e5af2e11e45a009ea2d4001e0b1ffcc290af77e37", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x0801e6fc78476364de37dc5c75331add1ab9cc5ec49d3dd3be1e99d2f50b8e53" + }, "blocks": [ { - "rlp": "0xf90282f90218a00801e6fc78476364de37dc5c75331add1ab9cc5ec49d3dd3be1e99d2f50b8e53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05f369fba68c1621b6f75506850953cf11d8b5bf1b5d51e7938327b221a257ceca08a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24ba08ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7db901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265568203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc80801ca0fbe36e73674f41187df0683f9b7aaed65edf9740f6cc5cf6a4375b4a7cf02e47a0308692c0ecfef25c4c45fa2c0f997de0496413cbf787e8ba89c8e304ba38a204c0c0", + "rlp": "0xf90282f90218a00801e6fc78476364de37dc5c75331add1ab9cc5ec49d3dd3be1e99d2f50b8e53a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05f369fba68c1621b6f75506850953cf11d8b5bf1b5d51e7938327b221a257ceca0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca08ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7db901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265568203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", "blockHeader": { "parentHash": "0x0801e6fc78476364de37dc5c75331add1ab9cc5ec49d3dd3be1e99d2f50b8e53", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", "stateRoot": "0x5f369fba68c1621b6f75506850953cf11d8b5bf1b5d51e7938327b221a257cec", - "transactionsTrie": "0x8a1b28c2fe08bda82f4db93e7e425fcf64f04c7ae3115f25761a520840eff24b", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", "receiptTrie": "0x8ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7d", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -867,32 +895,91 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x1ae2734c137be45c9f497ce6db5cb4ff81ef4593226fb3fc1efad301636e025e", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xfc7d5f602e984e39ee41beb5a9d874f4ca1f40cfe4414e5a0ebf10f08c5ca218" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0xcccccccccccccccccccccccccccccccccccccccc", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0xfc7d5f602e984e39ee41beb5a9d874f4ca1f40cfe4414e5a0ebf10f08c5ca218", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000fa50", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006076f1600055", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000fa50", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x013002", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9c0aa4", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006076f1600055", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Cancun-CALL-sufficient_gas-opcode_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0446db78742826a568231da824824e768321da0167fc7765324c87f7c7a51edbda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x42af5e180c6a67d6075cc04e5af2e11e45a009ea2d4001e0b1ffcc290af77e37", + "stateRoot": "0x446db78742826a568231da824824e768321da0167fc7765324c87f7c7a51edbd", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -905,13 +992,72 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x0801e6fc78476364de37dc5c75331add1ab9cc5ec49d3dd3be1e99d2f50b8e53", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3e5eb6c5ac1ccc733295a84b1d2a260445bec0fc33ec61e84b80abc749250872" }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a042af5e180c6a67d6075cc04e5af2e11e45a009ea2d4001e0b1ffcc290af77e37a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x1ae2734c137be45c9f497ce6db5cb4ff81ef4593226fb3fc1efad301636e025e", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a5f9023ba03e5eb6c5ac1ccc733295a84b1d2a260445bec0fc33ec61e84b80abc749250872a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa019203fbc8007695f6cfc90a1c4aae6ce5c8666e65e50e7b43f1906db164002d9a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca0f9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cbb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", + "blockHeader": { + "parentHash": "0x3e5eb6c5ac1ccc733295a84b1d2a260445bec0fc33ec61e84b80abc749250872", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x19203fbc8007695f6cfc90a1c4aae6ce5c8666e65e50e7b43f1906db164002d9", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", + "receiptTrie": "0xf9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xb316", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x31b6a0f4435780dac3d971d85262f87a646c1e63bf28a6e5e17720de780db5f7" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0xcccccccccccccccccccccccccccccccccccccccc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x31b6a0f4435780dac3d971d85262f87a646c1e63bf28a6e5e17720de780db5f7", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f150", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -921,13 +1067,7 @@ "0xcccccccccccccccccccccccccccccccccccccccc": { "nonce": "0x00", "balance": "0x00", - "code": "0x600060006000600060006101006076f1600055", - "storage": {} - }, - "0x0000000000000000000000000000000000000100": { - "nonce": "0x00", - "balance": "0x00", - "code": "0x6000600060006000416000fa50", + "code": "0x60006000600060006000610100607af1600055", "storage": {} } }, @@ -935,9 +1075,1005 @@ "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", - "code": "0x6000600060006000416000fa50", + "code": "0x60006000600060006000416000f150", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x021942", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de990124", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000610100607af1600055", + "storage": { + "0x00": "0x01" + } + } + }, + "sealEngine": "NoProof" + }, + "009-fork=Cancun-CALL-insufficient_gas-opcode_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c72501862ff57c97dda427ce6faf0e84dc0f6617db90c2ffa55c0ad76d052d42a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xc72501862ff57c97dda427ce6faf0e84dc0f6617db90c2ffa55c0ad76d052d42", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfbf58e3461fbbb87c2522dc66dc1a3fa4d8740843d451501425c51de522b478f" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba0fbf58e3461fbbb87c2522dc66dc1a3fa4d8740843d451501425c51de522b478fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0489b3db0bb93cc33613bff3dc7973aa8328b45d69d1a1af94640cf7ab4298025a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca09e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265598203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", + "blockHeader": { + "parentHash": "0xfbf58e3461fbbb87c2522dc66dc1a3fa4d8740843d451501425c51de522b478f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x489b3db0bb93cc33613bff3dc7973aa8328b45d69d1a1af94640cf7ab4298025", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", + "receiptTrie": "0x9e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0x6559", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x45da26f2ff374b5bddf1658302c0ac59408827c7b3722d014e25eba007299100" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0xcccccccccccccccccccccccccccccccccccccccc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x45da26f2ff374b5bddf1658302c0ac59408827c7b3722d014e25eba007299100", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f150", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006079f1600055", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f150", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01300b", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9c0a86", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006079f1600055", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "010-fork=Cancun-CALLCODE-sufficient_gas-opcode_callcode": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a076c9f22895e11742e04b313e92309cbb997e9b3ab7bb7d77990d89c41dd0a53ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x76c9f22895e11742e04b313e92309cbb997e9b3ab7bb7d77990d89c41dd0a53c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa60c6713e4681b1aab79c5c3aac33918d539677c0e5e66e64335389ef8b875e1" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba0a60c6713e4681b1aab79c5c3aac33918d539677c0e5e66e64335389ef8b875e1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0895b39877a71b19838040509de70cf2dd7322ee8fbb7f13df002b96544bc1d92a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca0f9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cbb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3168203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", + "blockHeader": { + "parentHash": "0xa60c6713e4681b1aab79c5c3aac33918d539677c0e5e66e64335389ef8b875e1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x895b39877a71b19838040509de70cf2dd7322ee8fbb7f13df002b96544bc1d92", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", + "receiptTrie": "0xf9a1eb84b588e579587f4a008848c0529171d103b9aa2f5392081957d0bf02cb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xb316", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x323b30aa0ee65147699bead76b3b57b5281e5fa632ab9c5fd4bf092616d3aa8a" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0xcccccccccccccccccccccccccccccccccccccccc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x323b30aa0ee65147699bead76b3b57b5281e5fa632ab9c5fd4bf092616d3aa8a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f250", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000610100607af1600055", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f250", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x021942", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de990124", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000610100607af1600055", + "storage": { + "0x00": "0x01" + } + } + }, + "sealEngine": "NoProof" + }, + "011-fork=Cancun-CALLCODE-insufficient_gas-opcode_callcode": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fc6702540399cd9e71f7291b1b7c2639e3aaf16ce49dbcf4f3ac62062f95a4f6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xfc6702540399cd9e71f7291b1b7c2639e3aaf16ce49dbcf4f3ac62062f95a4f6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xce77352f954538a2964ff5af8289be1972829bc4b608637e292f3802d5f39959" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba0ce77352f954538a2964ff5af8289be1972829bc4b608637e292f3802d5f39959a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05e890ebd8636c2d2b1131bf3d53bab210031fc2780df616c8122b26078c8fd43a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca09e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265598203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", + "blockHeader": { + "parentHash": "0xce77352f954538a2964ff5af8289be1972829bc4b608637e292f3802d5f39959", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5e890ebd8636c2d2b1131bf3d53bab210031fc2780df616c8122b26078c8fd43", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", + "receiptTrie": "0x9e5d98acf850fb055e7130e0481599466c221247fa9f04b1c9c9c3cf9d13da68", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0x6559", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x29f943c7a8bf38bb055fe242de05617ca193108c54a2d6f1fd6d766afa20db01" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0xcccccccccccccccccccccccccccccccccccccccc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x29f943c7a8bf38bb055fe242de05617ca193108c54a2d6f1fd6d766afa20db01", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f250", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006079f1600055", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60006000600060006000416000f250", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01300b", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9c0a86", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006079f1600055", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "012-fork=Cancun-DELEGATECALL-sufficient_gas-opcode_delegatecall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03d22068f4130286ce52d352d1d6cf9537cbf57ab3c55b6426ac91d478e06ddf5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3d22068f4130286ce52d352d1d6cf9537cbf57ab3c55b6426ac91d478e06ddf5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x89c9b1966d96290cb48c3d95c979cd819d6299e139633acedfce0a4784c878eb" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba089c9b1966d96290cb48c3d95c979cd819d6299e139633acedfce0a4784c878eba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f4aa58771366e5dd89ff7e04e5643e8da7de84791a0995be8b6ef5a8d53ed39da0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca02107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098bb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3138203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", + "blockHeader": { + "parentHash": "0x89c9b1966d96290cb48c3d95c979cd819d6299e139633acedfce0a4784c878eb", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf4aa58771366e5dd89ff7e04e5643e8da7de84791a0995be8b6ef5a8d53ed39d", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", + "receiptTrie": "0x2107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098b", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xb313", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x28fcac19e464677c3931472f71a2ed98fda1c92d2475b2082bc5fd27fe7f78ac" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0xcccccccccccccccccccccccccccccccccccccccc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x28fcac19e464677c3931472f71a2ed98fda1c92d2475b2082bc5fd27fe7f78ac", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000f450", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006077f1600055", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000f450", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x021939", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de990142", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006077f1600055", + "storage": { + "0x00": "0x01" + } + } + }, + "sealEngine": "NoProof" + }, + "013-fork=Cancun-DELEGATECALL-insufficient_gas-opcode_delegatecall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05d0ca05f33c8c8d98965f0f51d2a9f4717b1cde99f028e36804a4a648ceaa7c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x5d0ca05f33c8c8d98965f0f51d2a9f4717b1cde99f028e36804a4a648ceaa7c2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb456675a4deba081a3646a11b65b83a4b25df0dfc8c5a2b79082d3518731ff42" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba0b456675a4deba081a3646a11b65b83a4b25df0dfc8c5a2b79082d3518731ff42a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb83ea4c6d2c322883b09c7791bded9eca1eac2e8b8e920d5497af9a0984b3d6a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca08ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7db901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265568203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", + "blockHeader": { + "parentHash": "0xb456675a4deba081a3646a11b65b83a4b25df0dfc8c5a2b79082d3518731ff42", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbb83ea4c6d2c322883b09c7791bded9eca1eac2e8b8e920d5497af9a0984b3d6", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", + "receiptTrie": "0x8ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7d", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0x6556", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7f2f9082bcaf90017d5304d6dd17fe273aafd13f6eb4ed24b8956b0adcf05ea4" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0xcccccccccccccccccccccccccccccccccccccccc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7f2f9082bcaf90017d5304d6dd17fe273aafd13f6eb4ed24b8956b0adcf05ea4", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000f450", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006076f1600055", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000f450", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x013002", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9c0aa4", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006076f1600055", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "014-fork=Cancun-STATICCALL-sufficient_gas-opcode_staticcall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04a1f93ad02cf3cee075b96c7047e409dc5a6ae2f133027d3f5f67604195f052aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4a1f93ad02cf3cee075b96c7047e409dc5a6ae2f133027d3f5f67604195f052a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d8fec1ddc5f5774c5391c93f4831ecf24d31e18750f935d1104d40143319080" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba09d8fec1ddc5f5774c5391c93f4831ecf24d31e18750f935d1104d40143319080a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b383f83c39ba35c82695f4665141ab9a8ee0c271cdde1e6e35ad26425e457cb2a0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca02107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098bb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b3138203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", + "blockHeader": { + "parentHash": "0x9d8fec1ddc5f5774c5391c93f4831ecf24d31e18750f935d1104d40143319080", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb383f83c39ba35c82695f4665141ab9a8ee0c271cdde1e6e35ad26425e457cb2", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", + "receiptTrie": "0x2107557fabf5c3ef3b7fc68ce7d0a01eb19a502b7ff32fbd0edc9c7e07c1098b", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xb313", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x057a7313de6bda962ded75212a2be5fe11abc7db5c414be642b58adc24b25740" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0xcccccccccccccccccccccccccccccccccccccccc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x057a7313de6bda962ded75212a2be5fe11abc7db5c414be642b58adc24b25740", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000fa50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006077f1600055", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000fa50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x021939", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de990142", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006077f1600055", + "storage": { + "0x00": "0x01" + } + } + }, + "sealEngine": "NoProof" + }, + "015-fork=Cancun-STATICCALL-insufficient_gas-opcode_staticcall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02f98265ab68a68a0b66b932f1cf5b492857405455d0407b6b23479dcee9ee442a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2f98265ab68a68a0b66b932f1cf5b492857405455d0407b6b23479dcee9ee442", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1fbd4b57a89999a4eb981fd98fbc1daeed903fe3c22b8f75517779001c29033f" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba01fbd4b57a89999a4eb981fd98fbc1daeed903fe3c22b8f75517779001c29033fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa050f218ffdf0dfcec09e3b8c50ecf3ec4f907d543aef194791fac2c3cb1b1a49ba0cb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562aca08ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7db901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be4008265568203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e10094cccccccccccccccccccccccccccccccccccccccc808026a0a21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dda05512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88bc0c0", + "blockHeader": { + "parentHash": "0x1fbd4b57a89999a4eb981fd98fbc1daeed903fe3c22b8f75517779001c29033f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x50f218ffdf0dfcec09e3b8c50ecf3ec4f907d543aef194791fac2c3cb1b1a49b", + "transactionsTrie": "0xcb98acc8bd6d069b88f68a9eceaaa9ff61d56327b4ecb2d386a2d0e32b5562ac", + "receiptTrie": "0x8ff9b7253e65a9a9dc97c183a484e9fe1207fc7d7fe274faed9458da66116f7d", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0x6556", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1ec209fb2a3da2edf0ddb848fc12efe9e7de50ea7ff999f17c0ac2cddce5f7a5" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0xcccccccccccccccccccccccccccccccccccccccc", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xa21d414659f8de316c49fd7a032d045fe0ca73212ec59359904509978387d5dd", + "s": "0x5512789a10e2b952ea16a0e8bdb95b15c6a8a1ba983d082cd4ff2b051b6fa88b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1ec209fb2a3da2edf0ddb848fc12efe9e7de50ea7ff999f17c0ac2cddce5f7a5", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000fa50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600060006000600060006101006076f1600055", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000416000fa50", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x013002", diff --git a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json index e09b70f24fa..7a7fe9892a8 100644 --- a/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json +++ b/tests/execution-spec-tests/shanghai/eip3651_warm_coinbase/warm_coinbase/warm_coinbase_gas_usage.json @@ -1,20 +1,40 @@ { "000-fork=Merge-EXTCODESIZE-opcode_extcodesize": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Merge", + "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a078bc9cc705aaf2a417993d100529f2d28206922442c0e9a62c785f50a3de7ceca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x78bc9cc705aaf2a417993d100529f2d28206922442c0e9a62c785f50a3de7cec", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xa48bb93ea6dbac738d6e08b2388b18a0014a2b1d8971aecae66fd3d896c0fdd0" + }, "blocks": [ { - "rlp": "0xf90260f901f7a02db2e9d3e057fe96b3086c56a82845771c7a6202e14eb749b98e2c0a3ce76fa3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05ab55343f91a38a4efba12672ddf6cba4966a60869275d60e9da35c9f0641bbea0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba02a6b649150f0dad2c4c3b8c7157fafce476adec8f83c15102f2f996d4956d98ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90260f901f7a0a48bb93ea6dbac738d6e08b2388b18a0014a2b1d8971aecae66fd3d896c0fdd0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05358b789207114229e0f18efa2fd5a7b903c4c4453fa55685611a8354306aa22a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba02a6b649150f0dad2c4c3b8c7157fafce476adec8f83c15102f2f996d4956d98ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { - "parentHash": "0x2db2e9d3e057fe96b3086c56a82845771c7a6202e14eb749b98e2c0a3ce76fa3", + "parentHash": "0xa48bb93ea6dbac738d6e08b2388b18a0014a2b1d8971aecae66fd3d896c0fdd0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x5ab55343f91a38a4efba12672ddf6cba4966a60869275d60e9da35c9f0641bbe", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0x5358b789207114229e0f18efa2fd5a7b903c4c4453fa55685611a8354306aa22", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x2a6b649150f0dad2c4c3b8c7157fafce476adec8f83c15102f2f996d4956d98a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -26,65 +46,46 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xce1a8a34ed959bb9f7d0d324ef8646ae8abb2b625ca81a6c7b90a3da8cba8783" + "hash": "0x1cbb94a9d7aca1a9f3baa5f90882d9a65b5fedff1a03bbab5b8ec9e47c667df9" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc3a3149153def9acef4deeca56c726dd33771b636fb1138b4f932a859e3758dd", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x2db2e9d3e057fe96b3086c56a82845771c7a6202e14eb749b98e2c0a3ce76fa3" - }, - "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c3a3149153def9acef4deeca56c726dd33771b636fb1138b4f932a859e3758dda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0xce1a8a34ed959bb9f7d0d324ef8646ae8abb2b625ca81a6c7b90a3da8cba8783", - "network": "Merge", + "lastblockhash": "0x1cbb94a9d7aca1a9f3baa5f90882d9a65b5fedff1a03bbab5b8ec9e47c667df9", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a413b5a905090036004900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a413b5a905090036004900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a413b5a905090036004900360005500", "storage": { "0x00": "0x0a28" @@ -107,20 +108,40 @@ }, "001-fork=Merge-EXTCODECOPY-opcode_extcodecopy": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Merge", + "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a078580e447166d8aa0b95b0c8216484d79fe1a10f4d3d8722d792d47d567e3db5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x78580e447166d8aa0b95b0c8216484d79fe1a10f4d3d8722d792d47d567e3db5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xe1f0cc5bee2e9dbe02f7e4489b7db7378ad5157ab40700c6f3024a4d430be4b0" + }, "blocks": [ { - "rlp": "0xf90260f901f7a009da0e33dde459d85e300e584f1d7f8b26289985a60e899a189f6908eca4fca8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0059826e6ccbc5e3d115d023215e91c64c42b2da9dcabc866b5f88d9b39d0d04ea0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba003bd0b6dd7b9896cbd95a5e275665b4f8d40bd5e2bba99d315bfed64d5b270d0b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90260f901f7a0e1f0cc5bee2e9dbe02f7e4489b7db7378ad5157ab40700c6f3024a4d430be4b0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0604117e22d5114339d77da314d0b2c8808f7be27de354fc4365d67488cc02abea082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba003bd0b6dd7b9896cbd95a5e275665b4f8d40bd5e2bba99d315bfed64d5b270d0b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2a58203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { - "parentHash": "0x09da0e33dde459d85e300e584f1d7f8b26289985a60e899a189f6908eca4fca8", + "parentHash": "0xe1f0cc5bee2e9dbe02f7e4489b7db7378ad5157ab40700c6f3024a4d430be4b0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x059826e6ccbc5e3d115d023215e91c64c42b2da9dcabc866b5f88d9b39d0d04e", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0x604117e22d5114339d77da314d0b2c8808f7be27de354fc4365d67488cc02abe", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x03bd0b6dd7b9896cbd95a5e275665b4f8d40bd5e2bba99d315bfed64d5b270d0", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -132,65 +153,46 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xaeac832628f96ee65c80ad2974c0ef0bfec63f30a6f0eb17d395bcfa286cab44" + "hash": "0x773d7c77e1025c4819640b20221128d643d73e8460906ead3202d0fe2f6c5eb4" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x32b7a04275208c4e3ae184d61bf5e3658586a6b7ba68b3df1486be326acae54f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x09da0e33dde459d85e300e584f1d7f8b26289985a60e899a189f6908eca4fca8" - }, - "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a032b7a04275208c4e3ae184d61bf5e3658586a6b7ba68b3df1486be326acae54fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0xaeac832628f96ee65c80ad2974c0ef0bfec63f30a6f0eb17d395bcfa286cab44", - "network": "Merge", + "lastblockhash": "0x773d7c77e1025c4819640b20221128d643d73e8460906ead3202d0fe2f6c5eb4", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a600060006000413c5a9003600d900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a600060006000413c5a9003600d900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a600060006000413c5a9003600d900360005500", "storage": { "0x00": "0x0a28" @@ -213,20 +215,40 @@ }, "002-fork=Merge-EXTCODEHASH-opcode_extcodehash": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Merge", + "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00acc71b4838e2473297074f200da9c8311ae1b1a195bb08306112267ae6df858a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0acc71b4838e2473297074f200da9c8311ae1b1a195bb08306112267ae6df858", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xee2301ca4c2353816cf65ea06b529435d450519309f98e0dd43aef48d27330e8" + }, "blocks": [ { - "rlp": "0xf90260f901f7a09f6a940f9a9630c3729c8ed0059887e97f4c2572f6eea9fe30727d4cab1ba22fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0251ba618a83e2655c0f53345220dfeb4b2bb22bfb12ec18cb114051fafb38b86a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba02a6b649150f0dad2c4c3b8c7157fafce476adec8f83c15102f2f996d4956d98ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90260f901f7a0ee2301ca4c2353816cf65ea06b529435d450519309f98e0dd43aef48d27330e8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bd652fc8784431756ee727d8de88e4c6da7ae19091abd4066d03823ed5d39fbba082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba02a6b649150f0dad2c4c3b8c7157fafce476adec8f83c15102f2f996d4956d98ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { - "parentHash": "0x9f6a940f9a9630c3729c8ed0059887e97f4c2572f6eea9fe30727d4cab1ba22f", + "parentHash": "0xee2301ca4c2353816cf65ea06b529435d450519309f98e0dd43aef48d27330e8", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x251ba618a83e2655c0f53345220dfeb4b2bb22bfb12ec18cb114051fafb38b86", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0xbd652fc8784431756ee727d8de88e4c6da7ae19091abd4066d03823ed5d39fbb", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x2a6b649150f0dad2c4c3b8c7157fafce476adec8f83c15102f2f996d4956d98a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -238,65 +260,46 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x162d5ac44766161d7c0cade41330171d8b2e714ec922240706ff8d7ad5d58220" + "hash": "0x839ff648118a38a8a2ee93d49e7ac49888c7e337eb7bf6626c194123953d7222" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0ddd7fe4d009728bf6bb751b09dcb01c42c0197324ab4b8ae979d55e856b1968", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x9f6a940f9a9630c3729c8ed0059887e97f4c2572f6eea9fe30727d4cab1ba22f" - }, - "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00ddd7fe4d009728bf6bb751b09dcb01c42c0197324ab4b8ae979d55e856b1968a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0x162d5ac44766161d7c0cade41330171d8b2e714ec922240706ff8d7ad5d58220", - "network": "Merge", + "lastblockhash": "0x839ff648118a38a8a2ee93d49e7ac49888c7e337eb7bf6626c194123953d7222", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a413f5a905090036004900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a413f5a905090036004900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a413f5a905090036004900360005500", "storage": { "0x00": "0x0a28" @@ -319,20 +322,40 @@ }, "003-fork=Merge-BALANCE-opcode_balance": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Merge", + "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ab1ca579384a53d8efda7fe6d6b0958f51e669d64622ce3d4da6e2a89b42f215a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xab1ca579384a53d8efda7fe6d6b0958f51e669d64622ce3d4da6e2a89b42f215", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xa56b4c3e18456c725ab3ebdcbd407a899934af2603098fb5bb1fc145d1caabba" + }, "blocks": [ { - "rlp": "0xf90260f901f7a0f73db440511ebc1a8731f886f453be6bdf79d7cd9b6622c0d5374cdf53795655a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06188246f59a2d9a3738511a85ef04da523806c35daab2ac445a502e983f3a948a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba02a6b649150f0dad2c4c3b8c7157fafce476adec8f83c15102f2f996d4956d98ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90260f901f7a0a56b4c3e18456c725ab3ebdcbd407a899934af2603098fb5bb1fc145d1caabbaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08a7d6d128b8ad0fbd2c4e6c0f8f13b8eb070811d002a48470df50e008ffa4297a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba02a6b649150f0dad2c4c3b8c7157fafce476adec8f83c15102f2f996d4956d98ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2a18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { - "parentHash": "0xf73db440511ebc1a8731f886f453be6bdf79d7cd9b6622c0d5374cdf53795655", + "parentHash": "0xa56b4c3e18456c725ab3ebdcbd407a899934af2603098fb5bb1fc145d1caabba", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x6188246f59a2d9a3738511a85ef04da523806c35daab2ac445a502e983f3a948", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0x8a7d6d128b8ad0fbd2c4e6c0f8f13b8eb070811d002a48470df50e008ffa4297", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x2a6b649150f0dad2c4c3b8c7157fafce476adec8f83c15102f2f996d4956d98a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -344,65 +367,46 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x81ed18f8eeb83c577a3866c94bf6e0a0d4380bea3509bea3f5917a6ebd50c64c" + "hash": "0x544be15cfb2bcf2409a6e256c0c92c66f78d59eb75b93938f55ee1a6238901a5" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5b4d7cc10fc487d370c64cc2c3ed96119a6e8ad1e6a66b03a72ca293edc20521", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xf73db440511ebc1a8731f886f453be6bdf79d7cd9b6622c0d5374cdf53795655" - }, - "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05b4d7cc10fc487d370c64cc2c3ed96119a6e8ad1e6a66b03a72ca293edc20521a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0x81ed18f8eeb83c577a3866c94bf6e0a0d4380bea3509bea3f5917a6ebd50c64c", - "network": "Merge", + "lastblockhash": "0x544be15cfb2bcf2409a6e256c0c92c66f78d59eb75b93938f55ee1a6238901a5", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a41315a905090036004900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a41315a905090036004900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a41315a905090036004900360005500", "storage": { "0x00": "0x0a28" @@ -425,20 +429,40 @@ }, "004-fork=Merge-CALL-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Merge", + "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e14bc422361839f9799ca50d8b3c9205f9b50f005dfa2cf0ff09377d095d88cfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe14bc422361839f9799ca50d8b3c9205f9b50f005dfa2cf0ff09377d095d88cf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0x7de52499fc78852b199ef1c5fd82ac17a6e790d5612d055ccdc0abf601236c91" + }, "blocks": [ { - "rlp": "0xf90260f901f7a07b488ac70fcae02b5bcee8dbb362edbafee5b4a405220f0512c2c4594ffe5494a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09a14a5a46ebbb0c4c53a14785a0232084ac08619c25464a37b1e7c3527f73bbba0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba030508636da4091fad1bb3d902cd711a2d2464538429529219a977529d917e3e2b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2b38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90260f901f7a07de52499fc78852b199ef1c5fd82ac17a6e790d5612d055ccdc0abf601236c91a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0060f554dfb32f786dafe56929508dd58ad337c2f0547846def514f83470b441aa082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba030508636da4091fad1bb3d902cd711a2d2464538429529219a977529d917e3e2b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2b38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { - "parentHash": "0x7b488ac70fcae02b5bcee8dbb362edbafee5b4a405220f0512c2c4594ffe5494", + "parentHash": "0x7de52499fc78852b199ef1c5fd82ac17a6e790d5612d055ccdc0abf601236c91", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9a14a5a46ebbb0c4c53a14785a0232084ac08619c25464a37b1e7c3527f73bbb", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0x060f554dfb32f786dafe56929508dd58ad337c2f0547846def514f83470b441a", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x30508636da4091fad1bb3d902cd711a2d2464538429529219a977529d917e3e2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -450,65 +474,46 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x0d7049c262f37de6eae9061da2de6cccc062ec8e45dde14c44a5698c298f01dc" + "hash": "0xc302c69c477900417dcc191aebbded388b0c0ed09373861d15376901d8a66b82" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4fdabe4fd8c009f300f52da1772b204ac152210bb1447d03d3960fb370504ec1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x7b488ac70fcae02b5bcee8dbb362edbafee5b4a405220f0512c2c4594ffe5494" - }, - "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04fdabe4fd8c009f300f52da1772b204ac152210bb1447d03d3960fb370504ec1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0x0d7049c262f37de6eae9061da2de6cccc062ec8e45dde14c44a5698c298f01dc", - "network": "Merge", + "lastblockhash": "0xc302c69c477900417dcc191aebbded388b0c0ed09373861d15376901d8a66b82", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a600060006000600060004160fff15a905090036016900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a600060006000600060004160fff15a905090036016900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a600060006000600060004160fff15a905090036016900360005500", "storage": { "0x00": "0x0a28" @@ -531,21 +536,41 @@ }, "005-fork=Merge-CALLCODE-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, - "blocks": [ - { - "rlp": "0xf90260f901f7a0e1ce081d32128c76917b956d888c3690d37fc6350537f680411721d51fcdb40ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03b0ff59ff963b0863d038563b2f5dd582113c77c58552fa5851d5994935cbe2da0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba030508636da4091fad1bb3d902cd711a2d2464538429529219a977529d917e3e2b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2b38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", - "blockHeader": { - "parentHash": "0xe1ce081d32128c76917b956d888c3690d37fc6350537f680411721d51fcdb40e", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3b0ff59ff963b0863d038563b2f5dd582113c77c58552fa5851d5994935cbe2d", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", - "receiptTrie": "0x30508636da4091fad1bb3d902cd711a2d2464538429529219a977529d917e3e2", + "network": "Merge", + "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03014ba7cc1debcd6569b53d2585a5d79b8d785fa0721d24211e284c5f5025fe8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3014ba7cc1debcd6569b53d2585a5d79b8d785fa0721d24211e284c5f5025fe8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0x3b29bad4eba7c208e2b1e9366dabae5733173a7002b302344e0f5105499b12a4" + }, + "blocks": [ + { + "rlp": "0xf90260f901f7a03b29bad4eba7c208e2b1e9366dabae5733173a7002b302344e0f5105499b12a4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01e2d26df032251643242a14a59a5ec80ebaedc2e891bc715b8d0fac6af6f3258a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba030508636da4091fad1bb3d902cd711a2d2464538429529219a977529d917e3e2b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2b38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", + "blockHeader": { + "parentHash": "0x3b29bad4eba7c208e2b1e9366dabae5733173a7002b302344e0f5105499b12a4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1e2d26df032251643242a14a59a5ec80ebaedc2e891bc715b8d0fac6af6f3258", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0x30508636da4091fad1bb3d902cd711a2d2464538429529219a977529d917e3e2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", @@ -556,65 +581,46 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x34efe367fc14b250366b350ec91c7fddf997dd656b5007382e49b2e75737e682" + "hash": "0x696ac9d0b513fd4a471c9b34380db010384cccb029440546c795918e3ad4a393" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x55175a3082416d22b94c0dc4be0d70f5c8434993ac5815dd9f0ac79e02e9dbc3", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xe1ce081d32128c76917b956d888c3690d37fc6350537f680411721d51fcdb40e" - }, - "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a055175a3082416d22b94c0dc4be0d70f5c8434993ac5815dd9f0ac79e02e9dbc3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0x34efe367fc14b250366b350ec91c7fddf997dd656b5007382e49b2e75737e682", - "network": "Merge", + "lastblockhash": "0x696ac9d0b513fd4a471c9b34380db010384cccb029440546c795918e3ad4a393", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a600060006000600060004160fff25a905090036016900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a600060006000600060004160fff25a905090036016900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a600060006000600060004160fff25a905090036016900360005500", "storage": { "0x00": "0x0a28" @@ -637,20 +643,40 @@ }, "006-fork=Merge-DELEGATECALL-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Merge", + "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bd9c89e57dd3518a50e723f0b715b9cdf1ab2133faf05696906097aacc3b9a2aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbd9c89e57dd3518a50e723f0b715b9cdf1ab2133faf05696906097aacc3b9a2a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xc4692380d3199692a1cc43bbda98aa70023566967b97350b208408010746087f" + }, "blocks": [ { - "rlp": "0xf90260f901f7a0124d86e34b97bbe32c785c03f359a7fd997afd42eebbdfcde997da6b53a38967a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01f88543acd591848905c9d911367abfb12291ea244d1e0e122d91734705d2585a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba0791803d0004c2730d9ae8a27bfd1c8a900bf9882957c27ee9c8fb043561043b2b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2b08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90260f901f7a0c4692380d3199692a1cc43bbda98aa70023566967b97350b208408010746087fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c20ac8b96871026962d826cad2fa36108cdbe905d092037b6d36a4015aee3011a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0791803d0004c2730d9ae8a27bfd1c8a900bf9882957c27ee9c8fb043561043b2b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2b08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { - "parentHash": "0x124d86e34b97bbe32c785c03f359a7fd997afd42eebbdfcde997da6b53a38967", + "parentHash": "0xc4692380d3199692a1cc43bbda98aa70023566967b97350b208408010746087f", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1f88543acd591848905c9d911367abfb12291ea244d1e0e122d91734705d2585", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0xc20ac8b96871026962d826cad2fa36108cdbe905d092037b6d36a4015aee3011", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x791803d0004c2730d9ae8a27bfd1c8a900bf9882957c27ee9c8fb043561043b2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -662,65 +688,46 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xd55ab2426884ca743dda23dff3f5eeb7650670317a156928ba57c1a190a9b7c4" + "hash": "0x0e3bbee45a4ef78666910c81dc6273e2be0be855df31d788d43d82903af8e91b" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb387cd02274d90d4d85c2467f7c2388e1f5134d3258b97ab506f35a6540c58a0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x124d86e34b97bbe32c785c03f359a7fd997afd42eebbdfcde997da6b53a38967" - }, - "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b387cd02274d90d4d85c2467f7c2388e1f5134d3258b97ab506f35a6540c58a0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0xd55ab2426884ca743dda23dff3f5eeb7650670317a156928ba57c1a190a9b7c4", - "network": "Merge", + "lastblockhash": "0x0e3bbee45a4ef78666910c81dc6273e2be0be855df31d788d43d82903af8e91b", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a60006000600060004160fff45a905090036013900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a60006000600060004160fff45a905090036013900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a60006000600060004160fff45a905090036013900360005500", "storage": { "0x00": "0x0a28" @@ -743,20 +750,40 @@ }, "007-fork=Merge-STATICCALL-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Merge", + "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02b608008cd8fe842fd9eef7ad0ce05010b3142a52a7a67fd4598780c05185cb1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2b608008cd8fe842fd9eef7ad0ce05010b3142a52a7a67fd4598780c05185cb1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xec2ed55a90b2652bb04297f17029fe1130d4d38669ba473b6feb33ddcb0b948a" + }, "blocks": [ { - "rlp": "0xf90260f901f7a0eb063b176c3293977c8be15a61d20d417780cdebcc2c1db8d65b71001250ac4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa086f13bf7914db48a2e98a45b7d2758acd2dedcc08ed6cbf0387adabcbaf61fbca0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba0791803d0004c2730d9ae8a27bfd1c8a900bf9882957c27ee9c8fb043561043b2b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2b08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0", + "rlp": "0xf90260f901f7a0ec2ed55a90b2652bb04297f17029fe1130d4d38669ba473b6feb33ddcb0b948aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d057be0133b58da78fa7344b7699dff271e96c861bfd74adcb668b12e4844b62a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0791803d0004c2730d9ae8a27bfd1c8a900bf9882957c27ee9c8fb043561043b2b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082b2b08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0", "blockHeader": { - "parentHash": "0xeb063b176c3293977c8be15a61d20d417780cdebcc2c1db8d65b71001250ac4b", + "parentHash": "0xec2ed55a90b2652bb04297f17029fe1130d4d38669ba473b6feb33ddcb0b948a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x86f13bf7914db48a2e98a45b7d2758acd2dedcc08ed6cbf0387adabcbaf61fbc", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0xd057be0133b58da78fa7344b7699dff271e96c861bfd74adcb668b12e4844b62", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x791803d0004c2730d9ae8a27bfd1c8a900bf9882957c27ee9c8fb043561043b2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -768,65 +795,46 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x0e3d82db8dac1d7facd2eb4ad41073878adb859b05202971bd1647e2311bdbd1" + "hash": "0x36fc102e7cc60a27d034c5f809b9334ec9b4b91cd5f1cda868b870f9caac235b" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9712e116f61711210ebc79935989d42c8cc93b4c1f8e8a7d121d242e5bfda596", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xeb063b176c3293977c8be15a61d20d417780cdebcc2c1db8d65b71001250ac4b" - }, - "genesisRLP": "0xf901f8f901f3a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09712e116f61711210ebc79935989d42c8cc93b4c1f8e8a7d121d242e5bfda596a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", - "lastblockhash": "0x0e3d82db8dac1d7facd2eb4ad41073878adb859b05202971bd1647e2311bdbd1", - "network": "Merge", + "lastblockhash": "0x36fc102e7cc60a27d034c5f809b9334ec9b4b91cd5f1cda868b870f9caac235b", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a60006000600060004160fffa5a905090036013900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a60006000600060004160fffa5a905090036013900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a60006000600060004160fffa5a905090036013900360005500", "storage": { "0x00": "0x0a28" @@ -849,20 +857,41 @@ }, "008-fork=Shanghai-EXTCODESIZE-opcode_extcodesize": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a078bc9cc705aaf2a417993d100529f2d28206922442c0e9a62c785f50a3de7ceca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x78bc9cc705aaf2a417993d100529f2d28206922442c0e9a62c785f50a3de7cec", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2d539b2151534adf1419b79c143ca3c87a6111b826c49caf66569adfbc787629" + }, "blocks": [ { - "rlp": "0xf90282f90218a03be55c7f01e0cbcf483189e78e6281981c6e258d81ae1b6c2f04f0f1516bf2bea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01bc6b7ce0643facbb4b31806a420f386a292c2fda12e83a470f560968933ab01a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba011800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8dd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0c0", + "rlp": "0xf90282f90218a02d539b2151534adf1419b79c143ca3c87a6111b826c49caf66569adfbc787629a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa038648cd5ce55f92cf9dfdd6ca53ca582d913a50724c354130b713992979ae545a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba011800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8dd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", "blockHeader": { - "parentHash": "0x3be55c7f01e0cbcf483189e78e6281981c6e258d81ae1b6c2f04f0f1516bf2be", + "parentHash": "0x2d539b2151534adf1419b79c143ca3c87a6111b826c49caf66569adfbc787629", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x1bc6b7ce0643facbb4b31806a420f386a292c2fda12e83a470f560968933ab01", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0x38648cd5ce55f92cf9dfdd6ca53ca582d913a50724c354130b713992979ae545", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x11800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -874,68 +903,48 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x9f678b8e73db228c5a096b09b5166f596d6b0db352ee69b4c9ec9d5350491b79", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x97d461cb15b35c9e72e1a7f748278b5a706b14f0a3cd1b5632cfe7cb64082f28" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xc3a3149153def9acef4deeca56c726dd33771b636fb1138b4f932a859e3758dd", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x3be55c7f01e0cbcf483189e78e6281981c6e258d81ae1b6c2f04f0f1516bf2be", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0c3a3149153def9acef4deeca56c726dd33771b636fb1138b4f932a859e3758dda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x9f678b8e73db228c5a096b09b5166f596d6b0db352ee69b4c9ec9d5350491b79", - "network": "Shanghai", + "lastblockhash": "0x97d461cb15b35c9e72e1a7f748278b5a706b14f0a3cd1b5632cfe7cb64082f28", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a413b5a905090036004900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a413b5a905090036004900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a413b5a905090036004900360005500", "storage": { "0x00": "0x64" @@ -958,20 +967,41 @@ }, "009-fork=Shanghai-EXTCODECOPY-opcode_extcodecopy": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a078580e447166d8aa0b95b0c8216484d79fe1a10f4d3d8722d792d47d567e3db5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x78580e447166d8aa0b95b0c8216484d79fe1a10f4d3d8722d792d47d567e3db5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x81bc5f4a93947c509db85674fd667b99daa98bab9f7c0b5d1c9470978d171f05" + }, "blocks": [ { - "rlp": "0xf90282f90218a08424f4a1ba5d3ccee62ed8769a3e91ed036935eaa5c5ea5afd7cc1c143c2fe0fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b4000dad16e1306d9cacedff4053b31e6c0b3fa83db0663326ced2336b836b45a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba0e7efd64c33b68e71936379947646c97ea06f828e7f5b92a2f519ee0f131a79a1b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8e18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0c0", + "rlp": "0xf90282f90218a081bc5f4a93947c509db85674fd667b99daa98bab9f7c0b5d1c9470978d171f05a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b677bd5b719b340208141ee4b0c923803cbb0bc44ddafd6269c98fdae14f862fa082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0e7efd64c33b68e71936379947646c97ea06f828e7f5b92a2f519ee0f131a79a1b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8e18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", "blockHeader": { - "parentHash": "0x8424f4a1ba5d3ccee62ed8769a3e91ed036935eaa5c5ea5afd7cc1c143c2fe0f", + "parentHash": "0x81bc5f4a93947c509db85674fd667b99daa98bab9f7c0b5d1c9470978d171f05", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb4000dad16e1306d9cacedff4053b31e6c0b3fa83db0663326ced2336b836b45", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0xb677bd5b719b340208141ee4b0c923803cbb0bc44ddafd6269c98fdae14f862f", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0xe7efd64c33b68e71936379947646c97ea06f828e7f5b92a2f519ee0f131a79a1", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -983,68 +1013,48 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x2fa4ac83dd7af1ec279795e65268c1314642f3309e1f2a8154ea0a4f1cc23411", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x84c7744ad2cd84dfe4613ed24fe53ebbbbedece32bae5c1aacaca167575b3671" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x32b7a04275208c4e3ae184d61bf5e3658586a6b7ba68b3df1486be326acae54f", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x8424f4a1ba5d3ccee62ed8769a3e91ed036935eaa5c5ea5afd7cc1c143c2fe0f", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a032b7a04275208c4e3ae184d61bf5e3658586a6b7ba68b3df1486be326acae54fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x2fa4ac83dd7af1ec279795e65268c1314642f3309e1f2a8154ea0a4f1cc23411", - "network": "Shanghai", + "lastblockhash": "0x84c7744ad2cd84dfe4613ed24fe53ebbbbedece32bae5c1aacaca167575b3671", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a600060006000413c5a9003600d900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a600060006000413c5a9003600d900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a600060006000413c5a9003600d900360005500", "storage": { "0x00": "0x64" @@ -1067,20 +1077,41 @@ }, "010-fork=Shanghai-EXTCODEHASH-opcode_extcodehash": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00acc71b4838e2473297074f200da9c8311ae1b1a195bb08306112267ae6df858a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0acc71b4838e2473297074f200da9c8311ae1b1a195bb08306112267ae6df858", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x457cd281348a02fdd3ea2f4d8db92c0160d7bc4ab8713a475203859b284a3f7d" + }, "blocks": [ { - "rlp": "0xf90282f90218a0c53637409483e55c8a806adc76388dd4b91f693f24df615df4a45e5aeaffef08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09865fd0d57750ea53876ccf4eaa77d1a2d4eaaf7e9be039c5649951c2695b616a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba011800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8dd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0c0", + "rlp": "0xf90282f90218a0457cd281348a02fdd3ea2f4d8db92c0160d7bc4ab8713a475203859b284a3f7da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a65242ac3a1e8b5cb5aad04038a09993123def673c697a1e7d5198b6280b8122a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba011800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8dd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", "blockHeader": { - "parentHash": "0xc53637409483e55c8a806adc76388dd4b91f693f24df615df4a45e5aeaffef08", + "parentHash": "0x457cd281348a02fdd3ea2f4d8db92c0160d7bc4ab8713a475203859b284a3f7d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x9865fd0d57750ea53876ccf4eaa77d1a2d4eaaf7e9be039c5649951c2695b616", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0xa65242ac3a1e8b5cb5aad04038a09993123def673c697a1e7d5198b6280b8122", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x11800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -1092,68 +1123,48 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xc3514ed685b85bef30c922271c66c400cf7968ebdb6e53e7dbbf87d4766717f4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x8f4c8cd37c4e71e3e27cd7e7f53a90b35379740f51a7418199aa89dcc9987dfd" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0ddd7fe4d009728bf6bb751b09dcb01c42c0197324ab4b8ae979d55e856b1968", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xc53637409483e55c8a806adc76388dd4b91f693f24df615df4a45e5aeaffef08", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00ddd7fe4d009728bf6bb751b09dcb01c42c0197324ab4b8ae979d55e856b1968a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xc3514ed685b85bef30c922271c66c400cf7968ebdb6e53e7dbbf87d4766717f4", - "network": "Shanghai", + "lastblockhash": "0x8f4c8cd37c4e71e3e27cd7e7f53a90b35379740f51a7418199aa89dcc9987dfd", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a413f5a905090036004900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a413f5a905090036004900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a413f5a905090036004900360005500", "storage": { "0x00": "0x64" @@ -1176,20 +1187,41 @@ }, "011-fork=Shanghai-BALANCE-opcode_balance": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ab1ca579384a53d8efda7fe6d6b0958f51e669d64622ce3d4da6e2a89b42f215a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xab1ca579384a53d8efda7fe6d6b0958f51e669d64622ce3d4da6e2a89b42f215", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x8f163a4857fa09a321b8dc35a1c58af287ad3d583dcfd598ad4d16d0c94d7707" + }, "blocks": [ { - "rlp": "0xf90282f90218a05fb08b147ec3e1cd9fae0fe64b98deb73b1f184fcc73572366fcea885671c90aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ade4352366305b16f99c89a0f5f7a2cfc04368b9683d2a6863d66bf52b8043f5a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba011800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8dd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0c0", + "rlp": "0xf90282f90218a08f163a4857fa09a321b8dc35a1c58af287ad3d583dcfd598ad4d16d0c94d7707a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a9b2c38750667c7bdc695e8e886519cc885f764d08acaf995c7b134afbf3cea4a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba011800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8dd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", "blockHeader": { - "parentHash": "0x5fb08b147ec3e1cd9fae0fe64b98deb73b1f184fcc73572366fcea885671c90a", + "parentHash": "0x8f163a4857fa09a321b8dc35a1c58af287ad3d583dcfd598ad4d16d0c94d7707", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xade4352366305b16f99c89a0f5f7a2cfc04368b9683d2a6863d66bf52b8043f5", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0xa9b2c38750667c7bdc695e8e886519cc885f764d08acaf995c7b134afbf3cea4", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x11800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -1201,68 +1233,48 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x4e67bd048d81bb45d00d02eabaa68dd899e0950aa8a7c094e094870c857252a9", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xcf9df5bac9d8f4fecb02420a8b8aeec7ea0c87f9d18936c96843f2bddcbbb513" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x5b4d7cc10fc487d370c64cc2c3ed96119a6e8ad1e6a66b03a72ca293edc20521", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x5fb08b147ec3e1cd9fae0fe64b98deb73b1f184fcc73572366fcea885671c90a", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a05b4d7cc10fc487d370c64cc2c3ed96119a6e8ad1e6a66b03a72ca293edc20521a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x4e67bd048d81bb45d00d02eabaa68dd899e0950aa8a7c094e094870c857252a9", - "network": "Shanghai", + "lastblockhash": "0xcf9df5bac9d8f4fecb02420a8b8aeec7ea0c87f9d18936c96843f2bddcbbb513", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a41315a905090036004900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a41315a905090036004900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a41315a905090036004900360005500", "storage": { "0x00": "0x64" @@ -1285,20 +1297,41 @@ }, "012-fork=Shanghai-CALL-opcode_call": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e14bc422361839f9799ca50d8b3c9205f9b50f005dfa2cf0ff09377d095d88cfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe14bc422361839f9799ca50d8b3c9205f9b50f005dfa2cf0ff09377d095d88cf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x20690ec743555274be6515157e09ff3896ab60673e730827c56d259389b1b327" + }, "blocks": [ { - "rlp": "0xf90282f90218a031a61ab5d246b53506f050f5f7b2e30788ee0707a8904b9229a39ee2fc309cb1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a93e8fd12da324a25b2d20a8166bc1ae496399f1953197ef20f704696caa593da0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba084edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ef8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0c0", + "rlp": "0xf90282f90218a020690ec743555274be6515157e09ff3896ab60673e730827c56d259389b1b327a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fa35358cee85968e5a61cab4507e9309d885f7575804f8b50229b416d035ae8ea082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba084edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ef8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", "blockHeader": { - "parentHash": "0x31a61ab5d246b53506f050f5f7b2e30788ee0707a8904b9229a39ee2fc309cb1", + "parentHash": "0x20690ec743555274be6515157e09ff3896ab60673e730827c56d259389b1b327", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa93e8fd12da324a25b2d20a8166bc1ae496399f1953197ef20f704696caa593d", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0xfa35358cee85968e5a61cab4507e9309d885f7575804f8b50229b416d035ae8e", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x84edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -1310,68 +1343,48 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xf98444c2190e7cd983d5e431c37865714b0c4987f42cfd725e0920cd52936431", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xece555dca2f938fac41cf2f07fa7701774ec8b1756acae6d814c390a54e7cb10" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4fdabe4fd8c009f300f52da1772b204ac152210bb1447d03d3960fb370504ec1", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x31a61ab5d246b53506f050f5f7b2e30788ee0707a8904b9229a39ee2fc309cb1", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04fdabe4fd8c009f300f52da1772b204ac152210bb1447d03d3960fb370504ec1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xf98444c2190e7cd983d5e431c37865714b0c4987f42cfd725e0920cd52936431", - "network": "Shanghai", + "lastblockhash": "0xece555dca2f938fac41cf2f07fa7701774ec8b1756acae6d814c390a54e7cb10", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a600060006000600060004160fff15a905090036016900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a600060006000600060004160fff15a905090036016900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a600060006000600060004160fff15a905090036016900360005500", "storage": { "0x00": "0x64" @@ -1394,20 +1407,41 @@ }, "013-fork=Shanghai-CALLCODE-opcode_callcode": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03014ba7cc1debcd6569b53d2585a5d79b8d785fa0721d24211e284c5f5025fe8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3014ba7cc1debcd6569b53d2585a5d79b8d785fa0721d24211e284c5f5025fe8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xe005e25b3db80c8927e838fd93208d123171550d2ea8b32a38bff46de3e5e78d" + }, "blocks": [ { - "rlp": "0xf90282f90218a04fec1f4d57d3964dd2ecf730944d651df9f1c8c66427a7b41b87c5efbd561a55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0272e15351a43c1b60933aa43c969809d3a166eb74553d2a7de47dbea3be2fd30a0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba084edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ef8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0c0", + "rlp": "0xf90282f90218a0e005e25b3db80c8927e838fd93208d123171550d2ea8b32a38bff46de3e5e78da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00ac0c506fecfbd7c12493f9c1143589cafcd20da032071107a201d9a2b14aee8a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba084edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ef8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", "blockHeader": { - "parentHash": "0x4fec1f4d57d3964dd2ecf730944d651df9f1c8c66427a7b41b87c5efbd561a55", + "parentHash": "0xe005e25b3db80c8927e838fd93208d123171550d2ea8b32a38bff46de3e5e78d", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x272e15351a43c1b60933aa43c969809d3a166eb74553d2a7de47dbea3be2fd30", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0x0ac0c506fecfbd7c12493f9c1143589cafcd20da032071107a201d9a2b14aee8", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x84edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -1419,68 +1453,48 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x89cad559675a3d095aa65abc138c29ffd58d04684fb3be308ed0c1816a42ee0b", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xc416fbf7d3a8a2fe7d499d4520da7680be0d8155b6aaf103c5211d12cc45b64a" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x55175a3082416d22b94c0dc4be0d70f5c8434993ac5815dd9f0ac79e02e9dbc3", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x4fec1f4d57d3964dd2ecf730944d651df9f1c8c66427a7b41b87c5efbd561a55", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a055175a3082416d22b94c0dc4be0d70f5c8434993ac5815dd9f0ac79e02e9dbc3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x89cad559675a3d095aa65abc138c29ffd58d04684fb3be308ed0c1816a42ee0b", - "network": "Shanghai", + "lastblockhash": "0xc416fbf7d3a8a2fe7d499d4520da7680be0d8155b6aaf103c5211d12cc45b64a", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a600060006000600060004160fff25a905090036016900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a600060006000600060004160fff25a905090036016900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a600060006000600060004160fff25a905090036016900360005500", "storage": { "0x00": "0x64" @@ -1503,20 +1517,41 @@ }, "014-fork=Shanghai-DELEGATECALL-opcode_delegatecall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0bd9c89e57dd3518a50e723f0b715b9cdf1ab2133faf05696906097aacc3b9a2aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xbd9c89e57dd3518a50e723f0b715b9cdf1ab2133faf05696906097aacc3b9a2a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xd1ae96a38b974a003c0d1ca6920f3df611bf0f27c7c4814de30140a08adeb633" + }, "blocks": [ { - "rlp": "0xf90282f90218a09a493eed832cda2ebfe85d303bd9bd8df162c8e54210c89b7902496852688107a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a9c1ceca9c0acc1248579a5aa6c4145dccb99eac3b5f66fd74119fd78449d85ba0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba03f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ec8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0c0", + "rlp": "0xf90282f90218a0d1ae96a38b974a003c0d1ca6920f3df611bf0f27c7c4814de30140a08adeb633a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa044a94edb83bc61afa1e96bd10082f542f58ba8f4135bad2a6d0004bb618f0334a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba03f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ec8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", "blockHeader": { - "parentHash": "0x9a493eed832cda2ebfe85d303bd9bd8df162c8e54210c89b7902496852688107", + "parentHash": "0xd1ae96a38b974a003c0d1ca6920f3df611bf0f27c7c4814de30140a08adeb633", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xa9c1ceca9c0acc1248579a5aa6c4145dccb99eac3b5f66fd74119fd78449d85b", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", + "stateRoot": "0x44a94edb83bc61afa1e96bd10082f542f58ba8f4135bad2a6d0004bb618f0334", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", "receiptTrie": "0x3f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aa", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -1528,68 +1563,48 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xfeb352af7016bad86655011f77baa2f14a3d3e4c057adf0d92f8d0ef24594c91", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xab1318b59a2072b9af482a6cba3e7072501d72adecec472ab0fb690a0b89150b" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb387cd02274d90d4d85c2467f7c2388e1f5134d3258b97ab506f35a6540c58a0", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x9a493eed832cda2ebfe85d303bd9bd8df162c8e54210c89b7902496852688107", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b387cd02274d90d4d85c2467f7c2388e1f5134d3258b97ab506f35a6540c58a0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xfeb352af7016bad86655011f77baa2f14a3d3e4c057adf0d92f8d0ef24594c91", - "network": "Shanghai", + "lastblockhash": "0xab1318b59a2072b9af482a6cba3e7072501d72adecec472ab0fb690a0b89150b", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", - "code": "0x", + "code": "0x5a60006000600060004160fff45a905090036013900360005500", "storage": {} }, - "0x0000000000000000000000000000000000000100": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", - "code": "0x5a60006000600060004160fff45a905090036013900360005500", + "balance": "0x3635c9adc5dea00000", + "code": "0x", "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a60006000600060004160fff45a905090036013900360005500", "storage": { "0x00": "0x64" @@ -1612,57 +1627,907 @@ }, "015-fork=Shanghai-STATICCALL-opcode_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" }, - "blocks": [ - { - "rlp": "0xf90282f90218a004f41f6b57f46f0490fd4d85dbfebc209662b3a65d24797f2eaff9d0e05668ffa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03b47cd359fc0a79fd1c00a128f283ba653ad892b1c20a3d6287e020dcbfd30dca0cc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900ba03f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ec8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e10094000000000000000000000000000000000000010080801ba0ad180afe65b58c89a4ec94da5468256d3e7ce7767c91f83d749aa245890f11cfa05aa53bacfeb28b062917fa1abad70aa71093fca5c11214353733725e67613a78c0c0", - "blockHeader": { - "parentHash": "0x04f41f6b57f46f0490fd4d85dbfebc209662b3a65d24797f2eaff9d0e05668ff", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3b47cd359fc0a79fd1c00a128f283ba653ad892b1c20a3d6287e020dcbfd30dc", - "transactionsTrie": "0xcc5e7592cd6140687b48d4352f8082d513ad06b96537673bdf6813c45ed4900b", - "receiptTrie": "0x3f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aa", + "network": "Shanghai", + "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02b608008cd8fe842fd9eef7ad0ce05010b3142a52a7a67fd4598780c05185cb1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2b608008cd8fe842fd9eef7ad0ce05010b3142a52a7a67fd4598780c05185cb1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x973e66089eab0e68a995c38d894c33343063734dbe7fe74ec041d4c474d0eaf1" + }, + "blocks": [ + { + "rlp": "0xf90282f90218a0973e66089eab0e68a995c38d894c33343063734dbe7fe74ec041d4c474d0eaf1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa034a8be1cdf40e3cd2cae229f60d95406f486c3ec0c4cf21390228d2c19d43a14a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba03f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ec8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0x973e66089eab0e68a995c38d894c33343063734dbe7fe74ec041d4c474d0eaf1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x34a8be1cdf40e3cd2cae229f60d95406f486c3ec0c4cf21390228d2c19d43a14", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0x3f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aa", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xa8ec", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xbf6dac593b74645335e79be022dbbf6c3dcd11215c01e3348eb1cd7b8a49dfc3" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xbf6dac593b74645335e79be022dbbf6c3dcd11215c01e3348eb1cd7b8a49dfc3", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a60006000600060004160fffa5a905090036013900360005500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a60006000600060004160fffa5a905090036013900360005500", + "storage": { + "0x00": "0x64" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01fac4", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9966c8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "016-fork=Cancun-EXTCODESIZE-opcode_extcodesize": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0968aec5b45d6c2377a65fa1b44be4076a19436159ab11e77fce1570a6a5aee64a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x968aec5b45d6c2377a65fa1b44be4076a19436159ab11e77fce1570a6a5aee64", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x76333ef6d39fb0c54c05ef767e63104435489d441f35e64341379a58239667d5" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba076333ef6d39fb0c54c05ef767e63104435489d441f35e64341379a58239667d5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05914b37452ff8cb0cd9d5a247f387697541efab25f2d641defacf88fcb81985aa082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba011800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8dd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0x76333ef6d39fb0c54c05ef767e63104435489d441f35e64341379a58239667d5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5914b37452ff8cb0cd9d5a247f387697541efab25f2d641defacf88fcb81985a", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0x11800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xa8dd", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa4082b207405c9f0eef9ea728378bfdd5f5a699047f868fc99fd910a0d020ce7" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa4082b207405c9f0eef9ea728378bfdd5f5a699047f868fc99fd910a0d020ce7", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a413b5a905090036004900360005500", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a413b5a905090036004900360005500", + "storage": { + "0x00": "0x64" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01fa97", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de99675e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "017-fork=Cancun-EXTCODECOPY-opcode_extcodecopy": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b83f28a906e7f9aadc2da1667768761b7ce819ed8e7c6fbc076c83c78b387ee0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb83f28a906e7f9aadc2da1667768761b7ce819ed8e7c6fbc076c83c78b387ee0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x850c47531853f3d7baac7abd0960d4aee2facfd180849a10ac58655169fffbe3" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba0850c47531853f3d7baac7abd0960d4aee2facfd180849a10ac58655169fffbe3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c032940ce6952f2ae4a3b56779477e0abad2c8e091c45670663f1db58e132033a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba0e7efd64c33b68e71936379947646c97ea06f828e7f5b92a2f519ee0f131a79a1b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8e18203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0x850c47531853f3d7baac7abd0960d4aee2facfd180849a10ac58655169fffbe3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc032940ce6952f2ae4a3b56779477e0abad2c8e091c45670663f1db58e132033", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0xe7efd64c33b68e71936379947646c97ea06f828e7f5b92a2f519ee0f131a79a1", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xa8e1", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf0483b16486769bdfab308b5f3da1496a3a9db85311b3f3432bea810dacff802" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf0483b16486769bdfab308b5f3da1496a3a9db85311b3f3432bea810dacff802", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a600060006000413c5a9003600d900360005500", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a600060006000413c5a9003600d900360005500", + "storage": { + "0x00": "0x64" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01faa3", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de996736", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "018-fork=Cancun-EXTCODEHASH-opcode_extcodehash": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00266464ffcb6f0583850112597724308eb3b47a75841003d12fa4aafc6826fa8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0266464ffcb6f0583850112597724308eb3b47a75841003d12fa4aafc6826fa8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x383a52ff39fa02e364311ec3a574057bdd337ac87062ea87864f5375c1dc592d" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba0383a52ff39fa02e364311ec3a574057bdd337ac87062ea87864f5375c1dc592da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0ee19220c1b6e32f299341597d0160360494dda8bda9964ee06a5464c4ca32c5fa082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba011800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8dd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0x383a52ff39fa02e364311ec3a574057bdd337ac87062ea87864f5375c1dc592d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xee19220c1b6e32f299341597d0160360494dda8bda9964ee06a5464c4ca32c5f", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0x11800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xa8dd", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xecd5559af0c4e0322b45b76199c6ed72afd3c5701d92c62349bef58b2bd10d09" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xecd5559af0c4e0322b45b76199c6ed72afd3c5701d92c62349bef58b2bd10d09", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a413f5a905090036004900360005500", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a413f5a905090036004900360005500", + "storage": { + "0x00": "0x64" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01fa97", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de99675e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "019-fork=Cancun-BALANCE-opcode_balance": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01dcaae4c5fb5bd61a961e710038f7656896c5aa1c50a8a59395b5665cd75e83ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1dcaae4c5fb5bd61a961e710038f7656896c5aa1c50a8a59395b5665cd75e83e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x759d3c987f4d06545265146a7a36557c2391fa05e715f2fe436e14fbdbd55d97" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba0759d3c987f4d06545265146a7a36557c2391fa05e715f2fe436e14fbdbd55d97a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f752c496ea52eb476a7811e7ecf86026cfa87192f5f1bdc575955b21e8efda4da082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba011800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8dd8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0x759d3c987f4d06545265146a7a36557c2391fa05e715f2fe436e14fbdbd55d97", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf752c496ea52eb476a7811e7ecf86026cfa87192f5f1bdc575955b21e8efda4d", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0x11800a4a8f4b406cbded76bcc774903e907be27d33ec6c323f707ad8bca9bc05", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xa8dd", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5fdf09a6b47fba5cf72bd4cfff394356e3445cecd2c9ee2907df91042c8acdd0" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5fdf09a6b47fba5cf72bd4cfff394356e3445cecd2c9ee2907df91042c8acdd0", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a41315a905090036004900360005500", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a41315a905090036004900360005500", + "storage": { + "0x00": "0x64" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01fa97", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de99675e", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "020-fork=Cancun-CALL-opcode_call": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03bcdce4ba43d1eac214d57bb4b9cc3312e870beda98f65313775bca6cc742e37a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3bcdce4ba43d1eac214d57bb4b9cc3312e870beda98f65313775bca6cc742e37", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7039f699adff60d280e27f68d66740a6fd61a950f2ba6b17732fe9264674e083" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba07039f699adff60d280e27f68d66740a6fd61a950f2ba6b17732fe9264674e083a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08e019ee8367b6b1efd9b2fd18d0a4807f691102254fa39db2baf6265a2e6c6e6a082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba084edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ef8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0x7039f699adff60d280e27f68d66740a6fd61a950f2ba6b17732fe9264674e083", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8e019ee8367b6b1efd9b2fd18d0a4807f691102254fa39db2baf6265a2e6c6e6", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0x84edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xa8ef", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1a6b2276a11ff2d76ce844e360091462f7ea99f07cbe9796d942ab247fe4d395" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1a6b2276a11ff2d76ce844e360091462f7ea99f07cbe9796d942ab247fe4d395", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a600060006000600060004160fff15a905090036016900360005500", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a600060006000600060004160fff15a905090036016900360005500", + "storage": { + "0x00": "0x64" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01facd", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9966aa", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "021-fork=Cancun-CALLCODE-opcode_callcode": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a050241dc95f80a89b8d737f492917adc0b087f308654c9793a21be33ce870fc78a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x50241dc95f80a89b8d737f492917adc0b087f308654c9793a21be33ce870fc78", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xbf663e060a9262c6863aeee61300a8a2d6681be02655d8e07f6d444b2fafd1c9" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba0bf663e060a9262c6863aeee61300a8a2d6681be02655d8e07f6d444b2fafd1c9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0029aee8235d99c3576cb08f9b63de1ae5d6859b0c17bf8f83f9753f1520a6a1ea082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba084edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ef8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0xbf663e060a9262c6863aeee61300a8a2d6681be02655d8e07f6d444b2fafd1c9", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x029aee8235d99c3576cb08f9b63de1ae5d6859b0c17bf8f83f9753f1520a6a1e", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0x84edddbe84b7e6d7855de8e32bd527cf72edd661c68dca12e5b7e8339cfac2b7", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x02540be400", - "gasUsed": "0xa8ec", + "gasUsed": "0xa8ef", "timestamp": "0x03e8", "extraData": "0x00", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x0c3ca678be15986aa02720e2342ae7b4409562f1a8a42329d281175dff7a0e5e", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd9892654e66c2af203875d168f2d08233256cc297503432234cf2f8a8fc4d9d6" }, "transactions": [ { "type": "0x00", - "chainId": "0x00", + "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x05f5e100", "to": "0x0000000000000000000000000000000000000100", - "protected": false, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100" + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0xd9892654e66c2af203875d168f2d08233256cc297503432234cf2f8a8fc4d9d6", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a600060006000600060004160fff25a905090036016900360005500", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a600060006000600060004160fff25a905090036016900360005500", + "storage": { + "0x00": "0x64" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01facd", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9966aa", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "022-fork=Cancun-DELEGATECALL-opcode_delegatecall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089e64ece0eafdb32efe770e889661255eb3e55eff033c788a6d3b6f793d226eea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9712e116f61711210ebc79935989d42c8cc93b4c1f8e8a7d121d242e5bfda596", + "stateRoot": "0x89e64ece0eafdb32efe770e889661255eb3e55eff033c788a6d3b6f793d226ee", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -1675,35 +2540,226 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x04f41f6b57f46f0490fd4d85dbfebc209662b3a65d24797f2eaff9d0e05668ff", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x659e04bea0989c32ca9de60062a4330f827fa4320dd84e857c9408a100a3c3fb" }, - "genesisRLP": "0xf9021af90214a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09712e116f61711210ebc79935989d42c8cc93b4c1f8e8a7d121d242e5bfda596a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x0c3ca678be15986aa02720e2342ae7b4409562f1a8a42329d281175dff7a0e5e", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a5f9023ba0659e04bea0989c32ca9de60062a4330f827fa4320dd84e857c9408a100a3c3fba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fe6c7ab53c1ebb8befb6bae8b3d3936723ffb143971e822db704c0da51e8804ea082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba03f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ec8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0x659e04bea0989c32ca9de60062a4330f827fa4320dd84e857c9408a100a3c3fb", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfe6c7ab53c1ebb8befb6bae8b3d3936723ffb143971e822db704c0da51e8804e", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0x3f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aa", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xa8ec", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8f4ea43d4925e248f91229abf6e124bb7af0abe3f4555b178cca66f6738e62f2" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8f4ea43d4925e248f91229abf6e124bb7af0abe3f4555b178cca66f6738e62f2", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a60006000600060004160fff45a905090036013900360005500", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", "code": "0x", "storage": {} - }, + } + }, + "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x5a60006000600060004160fff45a905090036013900360005500", + "storage": { + "0x00": "0x64" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01fac4", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9966c8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "023-fork=Cancun-STATICCALL-opcode_staticcall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3651.md", + "reference-spec-version": "d94c694c6f12291bb6626669c3e8587eef3adff1" + }, + "network": "Cancun", + "genesisRLP": "0xf9023df90237a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03f891e60deb0ad9ab3a2510e22dc68ca391d14bac92ee7135eee20ca9c688390a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3f891e60deb0ad9ab3a2510e22dc68ca391d14bac92ee7135eee20ca9c688390", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0bd161328b2d3f5ab3e7954b83add08638deb5c683d8b7a7e25ae1c56710874d" + }, + "blocks": [ + { + "rlp": "0xf902a5f9023ba00bd161328b2d3f5ab3e7954b83add08638deb5c683d8b7a7e25ae1c56710874da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d8a687212f5c73f49a01b61b186b5c3c2383718ea833cd6e503191e4c39483aaa082dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8ba03f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080018502540be40082a8ec8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f863f861800a8405f5e100940000000000000000000000000000000000000100808026a069c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878a031d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34ac0c0", + "blockHeader": { + "parentHash": "0x0bd161328b2d3f5ab3e7954b83add08638deb5c683d8b7a7e25ae1c56710874d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd8a687212f5c73f49a01b61b186b5c3c2383718ea833cd6e503191e4c39483aa", + "transactionsTrie": "0x82dc320e42b725bd98d7adee1efb1243ab76bb9eaa43267c995ad88d33e1bc8b", + "receiptTrie": "0x3f578db11ee35ef391267aed5259c28be75c0877e4b1d7878dcf5e77c53649aa", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x02540be400", + "gasUsed": "0xa8ec", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfe04d6d62361e67d15528904adf5cb8097d6517aebc7bdcba5c466c26703c2f6" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x69c5ea620c5d1ec174f47e00ce9a062e1c537078c9c5d71e393b92b158dcb878", + "s": "0x31d897c1764a17355aba977f5b1c59f127647c8cbebf42b3f089ba0ddf3bb34a", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xfe04d6d62361e67d15528904adf5cb8097d6517aebc7bdcba5c466c26703c2f6", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a60006000600060004160fffa5a905090036013900360005500", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x5a60006000600060004160fffa5a905090036013900360005500", "storage": { "0x00": "0x64" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x01fac4", diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json index d4a45211ced..2da9c27ff45 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_before_jumpdest.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-before_jumpdest": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00e28b1ef791ea4bfe49e46c5bc84a23cbe85f5cc2a6f8083f7e0d1672a90529aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0e28b1ef791ea4bfe49e46c5bc84a23cbe85f5cc2a6f8083f7e0d1672a90529a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x9f68813153f3c544b145ffc595e3fd8377a464bdefc0471f2243fe9252db370d" + }, "blocks": [ { "rlp": "0xf90284f9021ba09f68813153f3c544b145ffc595e3fd8377a464bdefc0471f2243fe9252db370da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fcacf76745989c8b7694f2cc65bf222c5fb52febf47b3920f4091bbc5a630d99a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da06a230419329d8a279aa3b6bca1805730e04de6d9728a3903937f74e2f67d6914b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a86d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x4d57a21502bf8a6502f859edb177adda7f256e0186f1cbf4b60d93fadeef1f64", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4d57a21502bf8a6502f859edb177adda7f256e0186f1cbf4b60d93fadeef1f64" }, "transactions": [ { @@ -35,23 +56,72 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x4d57a21502bf8a6502f859edb177adda7f256e0186f1cbf4b60d93fadeef1f64", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6004565f5b60015f5500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6004565f5b60015f5500", + "storage": { + "0x00": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01f947", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de996bbe", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-before_jumpdest": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", + "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a034add0edd79821075d9bf24903c9e2ec1789df881fc3ba342231f03f2886ef75a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x0e28b1ef791ea4bfe49e46c5bc84a23cbe85f5cc2a6f8083f7e0d1672a90529a", + "stateRoot": "0x34add0edd79821075d9bf24903c9e2ec1789df881fc3ba342231f03f2886ef75", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -64,24 +134,77 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x9f68813153f3c544b145ffc595e3fd8377a464bdefc0471f2243fe9252db370d", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9f76fd0d4877d86b8dd0f78d2b0c5bbd8f37e6978d6e79bb235e3538d71eb226" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00e28b1ef791ea4bfe49e46c5bc84a23cbe85f5cc2a6f8083f7e0d1672a90529aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x4d57a21502bf8a6502f859edb177adda7f256e0186f1cbf4b60d93fadeef1f64", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a7f9023ea09f76fd0d4877d86b8dd0f78d2b0c5bbd8f37e6978d6e79bb235e3538d71eb226a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa006b00a842912338ea2bdccd3a68153ab0fdd7c719cda3f84ff848673d8df17b1a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da06a230419329d8a279aa3b6bca1805730e04de6d9728a3903937f74e2f67d6914b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a86d8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", + "blockHeader": { + "parentHash": "0x9f76fd0d4877d86b8dd0f78d2b0c5bbd8f37e6978d6e79bb235e3538d71eb226", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x06b00a842912338ea2bdccd3a68153ab0fdd7c719cda3f84ff848673d8df17b1", + "transactionsTrie": "0x2bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54d", + "receiptTrie": "0x6a230419329d8a279aa3b6bca1805730e04de6d9728a3903937f74e2f67d6914", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa86d", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3c39345647256e72e58f32e5742ee3869e9f104db17cdc2b5169b828fd7bfac5" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3c39345647256e72e58f32e5742ee3869e9f104db17cdc2b5169b828fd7bfac5", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x6004565f5b60015f5500", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -93,6 +216,14 @@ "0x00": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x01f947", diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json index 76cb40ec7ed..d99d4e27883 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_during_staticcall.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-during_staticcall": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a049134bffc4e016223696a8c6bf2b670a452dc37d7411d870c73da50104638d32a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x49134bffc4e016223696a8c6bf2b670a452dc37d7411d870c73da50104638d32", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x836355df04741a8374ae0af07cafbab49251b4a052c13a319a0d6a9a42dc8628" + }, "blocks": [ { "rlp": "0xf90285f9021ca0836355df04741a8374ae0af07cafbab49251b4a052c13a319a0d6a9a42dc8628a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0726190734609bb837aab0b0cf1d8b06077b98c173080959277b5054c46dfeac5a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da02ab89a18d916ebe51698487b52c7ccd995495a95d4bdabcf1cf93aeb8d252839b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830109828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x783f7c161ba15862267c6d94184599ee0708e07ad2111456f3120dc0b0376c81", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x783f7c161ba15862267c6d94184599ee0708e07ad2111456f3120dc0b0376c81" }, "transactions": [ { @@ -35,23 +56,85 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x783f7c161ba15862267c6d94184599ee0708e07ad2111456f3120dc0b0376c81", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000610200620186a0fa600055600160005560016000601f3e600051600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60ff5f5360015ff3", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000610200620186a0fa600055600160005560016000601f3e600051600155", + "storage": { + "0x00": "0x01", + "0x01": "0xff" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60ff5f5360015ff3", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x031c86", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de95a0ec", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-during_staticcall": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", + "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07263cfbee102d4795bbf0a680344980281d017ef72c79c2d3b4e9b484b5f1751a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x49134bffc4e016223696a8c6bf2b670a452dc37d7411d870c73da50104638d32", + "stateRoot": "0x7263cfbee102d4795bbf0a680344980281d017ef72c79c2d3b4e9b484b5f1751", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -64,19 +147,60 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x836355df04741a8374ae0af07cafbab49251b4a052c13a319a0d6a9a42dc8628", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6c84cb9815f4b3ba41b2ffd1bd4d182270c37f8d4c776c44716503c6f421dcac" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a049134bffc4e016223696a8c6bf2b670a452dc37d7411d870c73da50104638d32a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x783f7c161ba15862267c6d94184599ee0708e07ad2111456f3120dc0b0376c81", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a8f9023fa06c84cb9815f4b3ba41b2ffd1bd4d182270c37f8d4c776c44716503c6f421dcaca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04cac0fc1dddbeddb906e02dd0eff1bcbda86a044fa13bee757f108e93bc614d5a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da02ab89a18d916ebe51698487b52c7ccd995495a95d4bdabcf1cf93aeb8d252839b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830109828203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", + "blockHeader": { + "parentHash": "0x6c84cb9815f4b3ba41b2ffd1bd4d182270c37f8d4c776c44716503c6f421dcac", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4cac0fc1dddbeddb906e02dd0eff1bcbda86a044fa13bee757f108e93bc614d5", + "transactionsTrie": "0x2bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54d", + "receiptTrie": "0x2ab89a18d916ebe51698487b52c7ccd995495a95d4bdabcf1cf93aeb8d252839", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x010982", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x431e68ec16d3904945e469c76ef5438a827797505a1c9ef671450a60cce8f857" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x431e68ec16d3904945e469c76ef5438a827797505a1c9ef671450a60cce8f857", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -88,6 +212,18 @@ "balance": "0x00", "code": "0x60ff5f5360015ff3", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -106,6 +242,14 @@ "code": "0x60ff5f5360015ff3", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x031c86", diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json index 4b11d5f4fd1..ca4d8c1561f 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_fill_stack.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-fill_stack": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06b1356f9f8d3bf201a9aa2c44f836ab60c92a349385625da90dce80eb6ecad44a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6b1356f9f8d3bf201a9aa2c44f836ab60c92a349385625da90dce80eb6ecad44", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xe1bcc830589216abdc79cb3075f06f7b133f7b0cf257ecb346da33c354099700" + }, "blocks": [ { "rlp": "0xf90284f9021ba0e1bcc830589216abdc79cb3075f06f7b133f7b0cf257ecb346da33c354099700a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa007b66de4268c3c26af1346a37fd0bb1584401981aafbedaa7837593030b5f968a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da0c227e1c29620a6496364056ce59ec4f51ed6e7bc56425e213d0195f84544c2c3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082bc5f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x01de610f00331cea813e8143d51eb44ca352cdd90c602bb4b4bcf3c6cf9d5531", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x01de610f00331cea813e8143d51eb44ca352cdd90c602bb4b4bcf3c6cf9d5531" }, "transactions": [ { @@ -35,23 +56,72 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x01de610f00331cea813e8143d51eb44ca352cdd90c602bb4b4bcf3c6cf9d5531", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171760019055", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171760019055", + "storage": { + "0x00": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x02351d", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de98a44a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-fill_stack": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", + "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a003a3ec912e5d410dfc6c13c9393bc9dd25e3700dd9d44aea27a3d5ab7c165ea3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x6b1356f9f8d3bf201a9aa2c44f836ab60c92a349385625da90dce80eb6ecad44", + "stateRoot": "0x03a3ec912e5d410dfc6c13c9393bc9dd25e3700dd9d44aea27a3d5ab7c165ea3", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -64,24 +134,77 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xe1bcc830589216abdc79cb3075f06f7b133f7b0cf257ecb346da33c354099700", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd4f76e67b09c2e9006e087b7a3f5d4fab5f5d288b30c981aee9d9c560d2ae93f" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06b1356f9f8d3bf201a9aa2c44f836ab60c92a349385625da90dce80eb6ecad44a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x01de610f00331cea813e8143d51eb44ca352cdd90c602bb4b4bcf3c6cf9d5531", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a7f9023ea0d4f76e67b09c2e9006e087b7a3f5d4fab5f5d288b30c981aee9d9c560d2ae93fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa024f366e08f18f009718e22c256687c8825cb4b84cd734037d43a8f241a27ed47a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da0c227e1c29620a6496364056ce59ec4f51ed6e7bc56425e213d0195f84544c2c3b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082bc5f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", + "blockHeader": { + "parentHash": "0xd4f76e67b09c2e9006e087b7a3f5d4fab5f5d288b30c981aee9d9c560d2ae93f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x24f366e08f18f009718e22c256687c8825cb4b84cd734037d43a8f241a27ed47", + "transactionsTrie": "0x2bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54d", + "receiptTrie": "0xc227e1c29620a6496364056ce59ec4f51ed6e7bc56425e213d0195f84544c2c3", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xbc5f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x630ae751325c610cff4b74dc34bdb0a2a50aef4014286a72ed3800b406265c1f" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x630ae751325c610cff4b74dc34bdb0a2a50aef4014286a72ed3800b406265c1f", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f17171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171760019055", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -93,6 +216,14 @@ "0x00": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x02351d", diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json index d4becd0c542..d3dba7a82f8 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_gas_cost.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-gas_cost": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08cf5d343ac678c956e3074093c63936671c5ac9dcf3f2563ff3df92767b218b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8cf5d343ac678c956e3074093c63936671c5ac9dcf3f2563ff3df92767b218b5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x71304a7bcdfae8cde85f5c3c28331f136e10eeac5d6fb1d4beef48542eb5ec1b" + }, "blocks": [ { "rlp": "0xf90284f9021ba071304a7bcdfae8cde85f5c3c28331f136e10eeac5d6fb1d4beef48542eb5ec1ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05f6089f3ff222dd6a7a718b8dca5e4861d71a4ea08f0d91f4ba70cfa887a78aaa02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da03f4e5c2ec5b2170b711d97ee755c160457bb58d8daa338e835ec02ae6860bbabb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8798203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x805655a82d33ff8d930378e9e0bb1e0c090043973ad52d0e56fb44b22eb8095c", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x805655a82d33ff8d930378e9e0bb1e0c090043973ad52d0e56fb44b22eb8095c" }, "transactions": [ { @@ -35,23 +56,72 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x805655a82d33ff8d930378e9e0bb1e0c090043973ad52d0e56fb44b22eb8095c", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5a5f5a905090036002900360005500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x5a5f5a905090036002900360005500", + "storage": { + "0x00": "0x02" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01f96b", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de996b46", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-gas_cost": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", + "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a081d9b1501a53ab9e848d08268b53ed015621485d5484fb0a55368c99b5ad8dfca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8cf5d343ac678c956e3074093c63936671c5ac9dcf3f2563ff3df92767b218b5", + "stateRoot": "0x81d9b1501a53ab9e848d08268b53ed015621485d5484fb0a55368c99b5ad8dfc", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -64,24 +134,77 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x71304a7bcdfae8cde85f5c3c28331f136e10eeac5d6fb1d4beef48542eb5ec1b", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xea89b4d110c62e7c5943fa19340a2391ab3a844f39bf2ae1dad471e9de236b63" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08cf5d343ac678c956e3074093c63936671c5ac9dcf3f2563ff3df92767b218b5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x805655a82d33ff8d930378e9e0bb1e0c090043973ad52d0e56fb44b22eb8095c", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a7f9023ea0ea89b4d110c62e7c5943fa19340a2391ab3a844f39bf2ae1dad471e9de236b63a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a87f01421b0d483960e3c07bee3e4e7d1636560b60773c4b5ce723836137bcb9a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da03f4e5c2ec5b2170b711d97ee755c160457bb58d8daa338e835ec02ae6860bbabb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8798203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", + "blockHeader": { + "parentHash": "0xea89b4d110c62e7c5943fa19340a2391ab3a844f39bf2ae1dad471e9de236b63", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa87f01421b0d483960e3c07bee3e4e7d1636560b60773c4b5ce723836137bcb9", + "transactionsTrie": "0x2bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54d", + "receiptTrie": "0x3f4e5c2ec5b2170b711d97ee755c160457bb58d8daa338e835ec02ae6860bbab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa879", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf5d6c41a8f45dc4795016cce704ac496eb007780e556f2ab6c7ad7697cd7a5d3" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf5d6c41a8f45dc4795016cce704ac496eb007780e556f2ab6c7ad7697cd7a5d3", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x5a5f5a905090036002900360005500", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -93,6 +216,14 @@ "0x00": "0x02" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x01f96b", diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json index f34fd1087f5..f5eed875f47 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_key_sstore.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-key_sstore": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cdd39dc5b3b267a7ae5bdef2a136c3fbb1dd771f1ae2a0e7b5b1060b41875b9ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xcdd39dc5b3b267a7ae5bdef2a136c3fbb1dd771f1ae2a0e7b5b1060b41875b9e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb5c394426c06a46d178e076b345703efc7fc3aeb9e2c0276d0851b7128d75399" + }, "blocks": [ { "rlp": "0xf90284f9021ba0b5c394426c06a46d178e076b345703efc7fc3aeb9e2c0276d0851b7128d75399a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dfffab52518b2ae0dd2bd1b7b0831e8bc9341a32729fce2f617e26a86d5f5436a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x93c54065833074f6930ed32f94d110fd37daec5eb279ddb78590afef158427eb", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x93c54065833074f6930ed32f94d110fd37daec5eb279ddb78590afef158427eb" }, "transactions": [ { @@ -35,23 +56,72 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x93c54065833074f6930ed32f94d110fd37daec5eb279ddb78590afef158427eb", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f55", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f55", + "storage": { + "0x00": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01f923", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de996c36", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-key_sstore": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", + "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a8b0e3e0cde148f03a9b789e467eba3bd428fbaca999d058e384fc34b4e67f86a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xcdd39dc5b3b267a7ae5bdef2a136c3fbb1dd771f1ae2a0e7b5b1060b41875b9e", + "stateRoot": "0xa8b0e3e0cde148f03a9b789e467eba3bd428fbaca999d058e384fc34b4e67f86", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -64,24 +134,77 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xb5c394426c06a46d178e076b345703efc7fc3aeb9e2c0276d0851b7128d75399", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5d92af7c29dc06119eb9d5f07e9ac4876849dd5a2b9e6a42345b5ce220265275" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0cdd39dc5b3b267a7ae5bdef2a136c3fbb1dd771f1ae2a0e7b5b1060b41875b9ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x93c54065833074f6930ed32f94d110fd37daec5eb279ddb78590afef158427eb", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a7f9023ea05d92af7c29dc06119eb9d5f07e9ac4876849dd5a2b9e6a42345b5ce220265275a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d175ea575b23d6f8411546a5882e1faf54afe6eed950262bc445f1f2616fc07a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", + "blockHeader": { + "parentHash": "0x5d92af7c29dc06119eb9d5f07e9ac4876849dd5a2b9e6a42345b5ce220265275", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d175ea575b23d6f8411546a5882e1faf54afe6eed950262bc445f1f2616fc07", + "transactionsTrie": "0x2bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54d", + "receiptTrie": "0xc598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xa861", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf0b6865232f53efb416b3d01cf01543fcf0b5cb5ea8e8703220e87d5c02620d2" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf0b6865232f53efb416b3d01cf01543fcf0b5cb5ea8e8703220e87d5c02620d2", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x60015f55", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -93,6 +216,14 @@ "0x00": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x01f923", diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json index d775f1ed1f9..36a3751b7e6 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_stack_overflow.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-stack_overflow": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08899b55125bc407807eb165234e1a87a2ced1a832826619498a992351ea5909fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x8899b55125bc407807eb165234e1a87a2ced1a832826619498a992351ea5909f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x7700962596a82cbd50350d4b3a653d8e762e0d15b193a4f1ca1778df1733ee46" + }, "blocks": [ { "rlp": "0xf90285f9021ca07700962596a82cbd50350d4b3a653d8e762e0d15b193a4f1ca1778df1733ee46a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08a0d698b9348ab70aa33651724f2dbd8a7ace2bc82ce4e54cb756e1826d77e94a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da0777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830186a08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x4ab6787d02af1295b0244fc6a7be5e4e2b784257a2cacc70f8a38a416f05673b", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4ab6787d02af1295b0244fc6a7be5e4e2b784257a2cacc70f8a38a416f05673b" }, "transactions": [ { @@ -35,23 +56,70 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x4ab6787d02af1295b0244fc6a7be5e4e2b784257a2cacc70f8a38a416f05673b", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f555f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60015f555f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0493e0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de90bdc0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-stack_overflow": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", + "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0d5901f3bc0c06e95f06eb17948fa66a2fc7d95f5102e497a45332b70d718cd92a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x8899b55125bc407807eb165234e1a87a2ced1a832826619498a992351ea5909f", + "stateRoot": "0xd5901f3bc0c06e95f06eb17948fa66a2fc7d95f5102e497a45332b70d718cd92", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -64,24 +132,77 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x7700962596a82cbd50350d4b3a653d8e762e0d15b193a4f1ca1778df1733ee46", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7ee5c45f37290fef89d9754ed128ae162201d8a19a545a5ba0397849c605cb79" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a08899b55125bc407807eb165234e1a87a2ced1a832826619498a992351ea5909fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x4ab6787d02af1295b0244fc6a7be5e4e2b784257a2cacc70f8a38a416f05673b", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a8f9023fa07ee5c45f37290fef89d9754ed128ae162201d8a19a545a5ba0397849c605cb79a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0267e1c6b561677bcf2ff067867a39aca956a3d8898c40a2c23752bad1d7188f8a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da0777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830186a08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", + "blockHeader": { + "parentHash": "0x7ee5c45f37290fef89d9754ed128ae162201d8a19a545a5ba0397849c605cb79", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x267e1c6b561677bcf2ff067867a39aca956a3d8898c40a2c23752bad1d7188f8", + "transactionsTrie": "0x2bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54d", + "receiptTrie": "0x777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0186a0", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb1812c5fb9c6a62d4157daa1542771a9157613796dca7293bbae19ef31e8ce5f" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb1812c5fb9c6a62d4157daa1542771a9157613796dca7293bbae19ef31e8ce5f", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", "code": "0x60015f555f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -91,6 +212,14 @@ "code": "0x60015f555f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0493e0", diff --git a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json index c5487da6c60..51240d265a2 100644 --- a/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json +++ b/tests/execution-spec-tests/shanghai/eip3855_push0/push0/push0_storage_overwrite.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-storage_overwrite": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03eaca09ce72a7c9012e413c47606eac5b589aa9570fc9ce5ae959343c22f4929a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3eaca09ce72a7c9012e413c47606eac5b589aa9570fc9ce5ae959343c22f4929", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x84524a67194d430cb91a1346c78faa8d006c65cf7a001970b1c9abdb1999711c" + }, "blocks": [ { "rlp": "0xf90284f9021ba084524a67194d430cb91a1346c78faa8d006c65cf7a001970b1c9abdb1999711ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02380b564cb75114fa851510fc894626d4e24a55e0ec8c3f7645344d6763f0fe2a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da0584dfe30ef4dfa08d79b836f0dd5f9b74db2f6770efac76f7d2ced7e9dc1cc97b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008266628203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xb02ccd35c945189ef764e4cdccc23b74c8137ff4472b2505244c54e463bdd42d", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb02ccd35c945189ef764e4cdccc23b74c8137ff4472b2505244c54e463bdd42d" }, "transactions": [ { @@ -35,23 +56,75 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0xb02ccd35c945189ef764e4cdccc23b74c8137ff4472b2505244c54e463bdd42d", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60025f555f600155", + "storage": { + "0x00": "0x0a", + "0x01": "0x0a" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60025f555f600155", + "storage": { + "0x00": "0x02" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x013326", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9c002c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun-storage_overwrite": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3855.md", + "reference-spec-version": "42034250ae8dd4b21fdc6795773893c6f1e74d3a" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0830e025c3e8b70a220b71f1665afeed201343ecbfdb4908a97fc6972c29b0e46a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3eaca09ce72a7c9012e413c47606eac5b589aa9570fc9ce5ae959343c22f4929", + "stateRoot": "0x830e025c3e8b70a220b71f1665afeed201343ecbfdb4908a97fc6972c29b0e46", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -64,19 +137,60 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x84524a67194d430cb91a1346c78faa8d006c65cf7a001970b1c9abdb1999711c", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f49e8b4817efafe08b1e7c1d4e528f2bc3896013426af22546a8fd20ce881c0" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03eaca09ce72a7c9012e413c47606eac5b589aa9570fc9ce5ae959343c22f4929a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xb02ccd35c945189ef764e4cdccc23b74c8137ff4472b2505244c54e463bdd42d", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902a7f9023ea03f49e8b4817efafe08b1e7c1d4e528f2bc3896013426af22546a8fd20ce881c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02659a8b76693ee382d5b1100585070f6329578fad1228ba329dbae6013ee0d4ba02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da0584dfe30ef4dfa08d79b836f0dd5f9b74db2f6770efac76f7d2ced7e9dc1cc97b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008266628203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0c0", + "blockHeader": { + "parentHash": "0x3f49e8b4817efafe08b1e7c1d4e528f2bc3896013426af22546a8fd20ce881c0", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2659a8b76693ee382d5b1100585070f6329578fad1228ba329dbae6013ee0d4b", + "transactionsTrie": "0x2bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54d", + "receiptTrie": "0x584dfe30ef4dfa08d79b836f0dd5f9b74db2f6770efac76f7d2ced7e9dc1cc97", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6662", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7d99dae1e0497349f63bd80493a459d58fdc6e0b9198fd24981908fe767d6ebd" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7d99dae1e0497349f63bd80493a459d58fdc6e0b9198fd24981908fe767d6ebd", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -85,6 +199,18 @@ "0x00": "0x0a", "0x01": "0x0a" } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -96,6 +222,14 @@ "0x00": "0x02" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x013326", diff --git a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json index d73391edc04..d2416f8621e 100644 --- a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json +++ b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/contract_creating_tx.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-max_size_zeros-max_size_zeros": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c273f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0730b5921e1c6baafedb36baf0cd7c5dfb811971946423743f5de14c14b98e9aba0b43be3266d36a6cf57bd080fefb7432d70f7a63ea4bf22a2fc2958f831d09c22a04ac53b3b08d02f5262920308ee15772a892169fa31ae5320bdf29bbddeee653eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dc540c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a839896808080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0a0d8a5a024d6e286f7f986a1de8cdb7226d0a13af1f754bca4dc0e644bfd3f45a018e6afceafa535c635b3a4b7fd5483c7b3cc285820d5631e1d0e47485eb04344c0c0", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xeaca9cda71e38f187c81de2fb4c538887d4ca31f107b1d8757c25efe507aa909", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xeaca9cda71e38f187c81de2fb4c538887d4ca31f107b1d8757c25efe507aa909" }, "blocknumber": "1", "transactions": [ @@ -36,18 +57,59 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x989680", - "to": "" + "v": "0x26", + "r": "0xa0d8a5a024d6e286f7f986a1de8cdb7226d0a13af1f754bca4dc0e644bfd3f45", + "s": "0x18e6afceafa535c635b3a4b7fd5483c7b3cc285820d5631e1d0e47485eb04344", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0xeaca9cda71e38f187c81de2fb4c538887d4ca31f107b1d8757c25efe507aa909", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b94fc", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de7964b8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Shanghai-max_size_ones-max_size_ones": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -65,12 +127,54 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xeaca9cda71e38f187c81de2fb4c538887d4ca31f107b1d8757c25efe507aa909", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf9c273f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03a4bdee58e15bc72c9695c6f9fd4bb89dcf1d8caf3ea2296bf86c8949378cc4fa02609f56b03dac898c89cf783b59eabe338da070ae1ab8bd8fe5bc87638376936a052366db35269fb28271cd4079753efcebd014f4cd94475f4fceb598db2c0b97ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830cdbc40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a839896808080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a0cdeaf7fc1bbbef789dcabe52663c15953b1f91168ae6a2f261e9ee12f5852e42a01750e178d7ba316862ce893f7e4d3e09fea525ffd1409a867950833649d3c539c0c0", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3a4bdee58e15bc72c9695c6f9fd4bb89dcf1d8caf3ea2296bf86c8949378cc4f", + "transactionsTrie": "0x2609f56b03dac898c89cf783b59eabe338da070ae1ab8bd8fe5bc87638376936", + "receiptTrie": "0x52366db35269fb28271cd4079753efcebd014f4cd94475f4fceb598db2c0b97a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0cdbc4", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x6c2cfa9d65be127758e859af234336814381092dad906e319a591434ef54ac66" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x26", + "r": "0xcdeaf7fc1bbbef789dcabe52663c15953b1f91168ae6a2f261e9ee12f5852e42", + "s": "0x1750e178d7ba316862ce893f7e4d3e09fea525ffd1409a867950833649d3c539", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6c2cfa9d65be127758e859af234336814381092dad906e319a591434ef54ac66", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -82,7 +186,7 @@ "postState": { "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x0b94fc", + "balance": "0x26934c", "code": "0x", "storage": {} }, @@ -94,42 +198,255 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5de7964b8", + "balance": "0x3635c9adc5de1f6a58", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "001-fork=Shanghai-max_size_ones-max_size_ones": { + "002-fork=Shanghai-over_limit_zeros-over_limit_zeros": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { - "rlp": "0xf9c273f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03a4bdee58e15bc72c9695c6f9fd4bb89dcf1d8caf3ea2296bf86c8949378cc4fa02609f56b03dac898c89cf783b59eabe338da070ae1ab8bd8fe5bc87638376936a052366db35269fb28271cd4079753efcebd014f4cd94475f4fceb598db2c0b97ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830cdbc40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a839896808080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a0cdeaf7fc1bbbef789dcabe52663c15953b1f91168ae6a2f261e9ee12f5852e42a01750e178d7ba316862ce893f7e4d3e09fea525ffd1409a867950833649d3c539c0c0", + "rlp": "0xf9c271f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0b8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3da0675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30ccc0c0", + "expectException": "max initcode size exceeded", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xb8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3d", + "s": "0x675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Shanghai-over_limit_ones-over_limit_ones": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf9c271f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a0a4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2a02edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18ec0c0", + "expectException": "max initcode size exceeded", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0xa4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2", + "s": "0x2edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Cancun-max_size_zeros-max_size_zeros": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c296f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00888c2b7ec9b76fae3552c963fcc2d56903a982bad54446733997d2c17166da7a0b43be3266d36a6cf57bd080fefb7432d70f7a63ea4bf22a2fc2958f831d09c22a04ac53b3b08d02f5262920308ee15772a892169fa31ae5320bdf29bbddeee653eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dc540c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a839896808080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0a0d8a5a024d6e286f7f986a1de8cdb7226d0a13af1f754bca4dc0e644bfd3f45a018e6afceafa535c635b3a4b7fd5483c7b3cc285820d5631e1d0e47485eb04344c0c0", "blockHeader": { - "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3a4bdee58e15bc72c9695c6f9fd4bb89dcf1d8caf3ea2296bf86c8949378cc4f", - "transactionsTrie": "0x2609f56b03dac898c89cf783b59eabe338da070ae1ab8bd8fe5bc87638376936", - "receiptTrie": "0x52366db35269fb28271cd4079753efcebd014f4cd94475f4fceb598db2c0b97a", + "stateRoot": "0x0888c2b7ec9b76fae3552c963fcc2d56903a982bad54446733997d2c17166da7", + "transactionsTrie": "0xb43be3266d36a6cf57bd080fefb7432d70f7a63ea4bf22a2fc2958f831d09c22", + "receiptTrie": "0x4ac53b3b08d02f5262920308ee15772a892169fa31ae5320bdf29bbddeee653e", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x0cdbc4", + "gasUsed": "0x03dc54", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x6c2cfa9d65be127758e859af234336814381092dad906e319a591434ef54ac66", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9b98f38d63055f8073908e8cdd78e5160127967cadbd61f579351e3d6d55f1fd" }, "blocknumber": "1", "transactions": [ @@ -138,23 +455,78 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", "gasLimit": "0x989680", - "to": "" + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xa0d8a5a024d6e286f7f986a1de8cdb7226d0a13af1f754bca4dc0e644bfd3f45", + "s": "0x18e6afceafa535c635b3a4b7fd5483c7b3cc285820d5631e1d0e47485eb04344", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x9b98f38d63055f8073908e8cdd78e5160127967cadbd61f579351e3d6d55f1fd", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b94fc", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de7964b8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-max_size_ones-max_size_ones": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -167,13 +539,67 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x6c2cfa9d65be127758e859af234336814381092dad906e319a591434ef54ac66", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf9c296f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb2a5dbe1ebd3bc25a66a12e1f0db9109a769cca8693b266783d70aeb508668ba02609f56b03dac898c89cf783b59eabe338da070ae1ab8bd8fe5bc87638376936a052366db35269fb28271cd4079753efcebd014f4cd94475f4fceb598db2c0b97ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830cdbc40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a839896808080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a0cdeaf7fc1bbbef789dcabe52663c15953b1f91168ae6a2f261e9ee12f5852e42a01750e178d7ba316862ce893f7e4d3e09fea525ffd1409a867950833649d3c539c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbb2a5dbe1ebd3bc25a66a12e1f0db9109a769cca8693b266783d70aeb508668b", + "transactionsTrie": "0x2609f56b03dac898c89cf783b59eabe338da070ae1ab8bd8fe5bc87638376936", + "receiptTrie": "0x52366db35269fb28271cd4079753efcebd014f4cd94475f4fceb598db2c0b97a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0cdbc4", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6512f4777a7517f84599eb99b8209b28b58d9ca846822c8557098265d7c046eb" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x26", + "r": "0xcdeaf7fc1bbbef789dcabe52663c15953b1f91168ae6a2f261e9ee12f5852e42", + "s": "0x1750e178d7ba316862ce893f7e4d3e09fea525ffd1409a867950833649d3c539", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6512f4777a7517f84599eb99b8209b28b58d9ca846822c8557098265d7c046eb", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -182,6 +608,14 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x26934c", @@ -203,25 +637,19 @@ }, "sealEngine": "NoProof" }, - "002-fork=Shanghai-over_limit_zeros-over_limit_zeros": { + "006-fork=Cancun-over_limit_zeros-over_limit_zeros": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9c271f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0b8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3da0675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30ccc0c0", - "expectException": "max initcode size exceeded", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -234,13 +662,69 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf9c294f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0b8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3da0675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30ccc0c0", + "expectException": "max initcode size exceeded", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xb8ba45e0ef29fa4dae53b530d498e9b320adcd8723772d76b57dfb7f1b640d3d", + "s": "0x675ee050b02d95a683235846a39fdc01854f680d98f8723222d339e5a15b30cc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -249,6 +733,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -258,25 +748,19 @@ }, "sealEngine": "NoProof" }, - "003-fork=Shanghai-over_limit_ones-over_limit_ones": { + "007-fork=Cancun-over_limit_ones-over_limit_ones": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9c271f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a0a4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2a02edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18ec0c0", - "expectException": "max initcode size exceeded", - "blocknumber": "1" - } - ], + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -289,13 +773,69 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf9c294f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c052f9c04f800a839896808080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a0a4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2a02edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18ec0c0", + "expectException": "max initcode size exceeded", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0xa4a41d0afd04eeddf1225036a39a1a1cb09834fe107f4fadd22675b635bbe6f2", + "s": "0x2edec61109e01f9e704e28a0cfa7d9ef53705deee45a57b3df66bb9ccdd2f18e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -304,6 +844,12 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", diff --git a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json index 566e60fe86c..b96e4bdf5c2 100644 --- a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json +++ b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/create_opcode_initcode.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-create-max_size_zeros-max_size_zeros_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf9c289f9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dff72040408b365cfb66e226eed910d6ef2a6a4df97d60253c43d4b52bd0998ea006711bb57845318f8439b068ce522ae3b5073531a10d194ef3bc8317eacfe9c7a05296522f428389a3313d244af1b5bd4d0aec0cd31a87f6297d46c890b9e7451cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830555c08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c065f9c062800a8398968094000000000000000000000000000000000000020080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a026ffb6ef1792e394861bb66ccfaf81a2d14cf07b7ba53371776674929d68ff79a0768f69e0d2cd191e576847fa6d904bd4d54eb7101c1874df667803cfcca402a1c0c0", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x4412d941ea4880b38f958e7833d1efbd20964c94af822d6b371bc149a8c7645e", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4412d941ea4880b38f958e7833d1efbd20964c94af822d6b371bc149a8c7645e" }, "transactions": [ { @@ -35,48 +56,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0x26ffb6ef1792e394861bb66ccfaf81a2d14cf07b7ba53371776674929d68ff79", + "s": "0x768f69e0d2cd191e576847fa6d904bd4d54eb7101c1874df667803cfcca402a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x4412d941ea4880b38f958e7833d1efbd20964c94af822d6b371bc149a8c7645e", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -88,6 +83,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -131,11 +132,32 @@ }, "001-fork=Shanghai-create-max_size_ones-max_size_ones_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf9c289f9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06992e84308d906b0701571b5859421177e73f2612b8f68fce0b1bbba5f055f3fa0c93d876e3c5140deb14e31d6af6e831ad29c28ae416050e22f6cf88735ea07b4a0b5fc6d2943407dba9ee028ab9c4c52b8375d8cdef52d9141aea10ab3a944fab1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830e55308203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c065f9c062800a8398968094000000000000000000000000000000000000020080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a052e1da3f9cfc8b50079e8f4ef3f457a3bcd1fb7ec4178e205b742f9fe31153d8a076824ae278fe4f73255f67d87237a0fa1a74ef34a635b76a52421804ce1ba2c4c0c0", @@ -156,8 +178,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xa4e2e2debd66d71102ba1c0a9c8cf542b1a64deaf9079de6a9d2326d29f751f2", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa4e2e2debd66d71102ba1c0a9c8cf542b1a64deaf9079de6a9d2326d29f751f2" }, "transactions": [ { @@ -165,48 +187,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "gasLimit": "0x989680" + "v": "0x25", + "r": "0x52e1da3f9cfc8b50079e8f4ef3f457a3bcd1fb7ec4178e205b742f9fe31153d8", + "s": "0x76824ae278fe4f73255f67d87237a0fa1a74ef34a635b76a52421804ce1ba2c4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xa4e2e2debd66d71102ba1c0a9c8cf542b1a64deaf9079de6a9d2326d29f751f2", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -218,6 +214,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -261,11 +263,32 @@ }, "002-fork=Shanghai-create-over_limit_zeros-over_limit_zeros_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf9c28af9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e9d8bd5c2ce4e85f794fc9a9692073db15d117e619a69ddeccd0a22e41ec58b4a0063b0f723af2734ba227c875c8760d0117b4fc057b573312c068733c8842415aa083546cc5c3089394e15fae191bdf449f400c1be097f84660fbfa12bdc0349febb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000835034628203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c066f9c063800a8398968094000000000000000000000000000000000000020080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0d4b579da76df2ff22d7d21c6bc3582c760e4c7ac8148c2e3bdf20081542c4a96a0207c54445614be78dd9de4af5792cbbdb4f84c9289696c2685604a4976bcdc20c0c0", @@ -286,8 +309,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xa786f60b6f32b872f1dd2172af492d3ec0335609cbc89534788866c4c69d2843", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa786f60b6f32b872f1dd2172af492d3ec0335609cbc89534788866c4c69d2843" }, "transactions": [ { @@ -295,48 +318,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0xd4b579da76df2ff22d7d21c6bc3582c760e4c7ac8148c2e3bdf20081542c4a96", + "s": "0x207c54445614be78dd9de4af5792cbbdb4f84c9289696c2685604a4976bcdc20", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xa786f60b6f32b872f1dd2172af492d3ec0335609cbc89534788866c4c69d2843", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -348,6 +345,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -382,11 +385,32 @@ }, "003-fork=Shanghai-create-over_limit_ones-over_limit_ones_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf9c28af9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02545c60ee2b0604c466cccc4d8ff86121a6e5b3fb64cdf3921a04db5734b0a35a092f82b36d4c1b632338533cab57679c9cc711cfbfc5cf780bad26c44f53547d2a05deaedb718965cf3799a7a98334745c4e4bf38673c70afcc585c88d1d587d027b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000835933de8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c066f9c063800a8398968094000000000000000000000000000000000000020080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a08720b27bc868b3574e8d2ba380a3e93c807abf44de3d05d0d6fc5bcc07f5b871a0607b78907cc9fadab81d0cf0c5bef640d24cbd3fd2d309c4f45e4129d31740cfc0c0", @@ -407,8 +431,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x56f5cfc9ea8358d020d4acaf574e3c6dcc4d62780a4a5030f652ebd579876530", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x56f5cfc9ea8358d020d4acaf574e3c6dcc4d62780a4a5030f652ebd579876530" }, "transactions": [ { @@ -416,48 +440,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "gasLimit": "0x989680" + "v": "0x25", + "r": "0x8720b27bc868b3574e8d2ba380a3e93c807abf44de3d05d0d6fc5bcc07f5b871", + "s": "0x607b78907cc9fadab81d0cf0c5bef640d24cbd3fd2d309c4f45e4129d31740cf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x56f5cfc9ea8358d020d4acaf574e3c6dcc4d62780a4a5030f652ebd579876530", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -469,6 +467,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -503,11 +507,32 @@ }, "004-fork=Shanghai-create-empty-empty_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf90285f9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cc7e1d156c2db6686b1baec61f1bd97679db094568888de96c2cd3fe8bd8bd36a027bcba145cb8a14493e097854dccfdf105b371bf6484bcf0ba13f3a41b6ba999a0ae43cb9c7ab2043885453d08fc4d2dafb9eefcbd582395bcddcb3682a4784144b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301dc748203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a83989680940000000000000000000000000000000000000200808026a079e732a06b561675bdae5da83c86089d1d9f44e5703d316b43c3b073b7b355d9a02bc9444d90121daefa6c328371f570060a87929816df456adc3bffa98d14b89ec0c0", @@ -528,8 +553,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xb9c33a5d4c6e0ae0c0560c33160facd475f54c63a57aea477c557f7f8c93813d", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb9c33a5d4c6e0ae0c0560c33160facd475f54c63a57aea477c557f7f8c93813d" }, "transactions": [ { @@ -537,48 +562,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0x79e732a06b561675bdae5da83c86089d1d9f44e5703d316b43c3b073b7b355d9", + "s": "0x2bc9444d90121daefa6c328371f570060a87929816df456adc3bffa98d14b89e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xb9c33a5d4c6e0ae0c0560c33160facd475f54c63a57aea477c557f7f8c93813d", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -590,6 +589,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -633,11 +638,32 @@ }, "005-fork=Shanghai-create-single_byte-single_byte_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf90285f9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03f69ef450bc743f3d27e22d8e82068cfcfae887a92dfcedc3cd3a2358cb88dc0a04a127cd801f4a23d34a073a651212bd15f4cbf91e78e2399ed3735da90c6340fa0fd052a5c8d4457d0382ebe0fe698b6dee7b482585a562416e23af9e8d38c6ea5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301dc868203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a83989680940000000000000000000000000000000000000200800026a020657ec6cf02b83d5955aeadcb4f66c9a9e8435de8b79b491ddf2e8c38b28e39a0779a141e2f9a7f281af205e20b43444b28aef24f8a9a812d4e21535b131b0583c0c0", @@ -658,8 +684,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x342d803b6e2d42f5528b17c38ab358fc00c0f748237cfd56cf1024c7014ad37d", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x342d803b6e2d42f5528b17c38ab358fc00c0f748237cfd56cf1024c7014ad37d" }, "transactions": [ { @@ -667,48 +693,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x00", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0x20657ec6cf02b83d5955aeadcb4f66c9a9e8435de8b79b491ddf2e8c38b28e39", + "s": "0x779a141e2f9a7f281af205e20b43444b28aef24f8a9a812d4e21535b131b0583", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x342d803b6e2d42f5528b17c38ab358fc00c0f748237cfd56cf1024c7014ad37d", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -720,6 +720,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -763,11 +769,32 @@ }, "006-fork=Shanghai-create-32_bytes-32_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf902a5f9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0829753576822aad7ac8bc772e66ea77589de2df7f31863dee1a15395e04615bba09abaa81cd0940f56767b7e0358bbade8c847d77b2ca5d4e6a97d18763b1bbc04a0360e6961d3714d75d14d74a0ebef76810342b61e6e777b57a5ac605ce5ba7d4db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301de4e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f882f880800a8398968094000000000000000000000000000000000000020080a0610001600081600b8239f300000000000000000000000000000000000000000025a0c5ea3189348013b5902ba1d93737a7194299797b773dcbf4ce463e780571e020a01d83a78a5a920e77fcf5b3097edd8af1e34394aa19fb28a289e8253daf61d88dc0c0", @@ -788,8 +815,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x56ee365679e90a22abba28e61761bde09102609361d0398679574bf068b7192c", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x56ee365679e90a22abba28e61761bde09102609361d0398679574bf068b7192c" }, "transactions": [ { @@ -797,48 +824,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x25", + "r": "0xc5ea3189348013b5902ba1d93737a7194299797b773dcbf4ce463e780571e020", + "s": "0x1d83a78a5a920e77fcf5b3097edd8af1e34394aa19fb28a289e8253daf61d88d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x56ee365679e90a22abba28e61761bde09102609361d0398679574bf068b7192c", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -850,6 +851,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -893,11 +900,32 @@ }, "007-fork=Shanghai-create-33_bytes-33_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf902a6f9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4fb8b3bbf8379414fcbf93b8e38e1d1985a5832e537b2cc5622d3659b3360b5a0a7488ef7950b352ed5dd6c24a4b0e9657e332ef99ddd3cea61efac82e55063bba001f12af128bfdc4036eb782bf2756bd0a7d694f889de2c3cb225d4f54c67e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301de608203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f883f881800a8398968094000000000000000000000000000000000000020080a1610001600081600b8239f30000000000000000000000000000000000000000000026a0d5a886b13a638f9fecd46e88719bf3550356383b5dfa3512a29dfb55b1fc4c45a0242e627cedf800b63160047a9984e318f930f64480ca58d340605108184eb0d9c0c0", @@ -918,8 +946,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xdec9d83d7c54e8327f2b0a1274138eca0c7310f918079cd068ebe3eca157c3dc", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xdec9d83d7c54e8327f2b0a1274138eca0c7310f918079cd068ebe3eca157c3dc" }, "transactions": [ { @@ -927,48 +955,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0xd5a886b13a638f9fecd46e88719bf3550356383b5dfa3512a29dfb55b1fc4c45", + "s": "0x242e627cedf800b63160047a9984e318f930f64480ca58d340605108184eb0d9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xdec9d83d7c54e8327f2b0a1274138eca0c7310f918079cd068ebe3eca157c3dc", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -980,6 +982,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -1023,11 +1031,32 @@ }, "008-fork=Shanghai-create-49120_bytes-49120_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf9c269f9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fba1f1396d533b89a57d742bbed14adb0819fc0a201ff60e951bf89e86f35cefa07791174fb4f3c5c88e6665a2db00625f8c8a6b3387d3b73d35633ea2f59a8059a06c0f478dc53c81bd92709f989561ff7bddd731b4f91ba78e8577e6d8913d5678b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830555268203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c045f9c042800a8398968094000000000000000000000000000000000000020080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0406a03d1571c1f3388717a9aa18c5196b97ce433a4727cf553489dd79744f11ca030bd0922fbcd7d33be4a7f531c0c393057778046abf8ec94d2934b30e79c239fc0c0", @@ -1048,8 +1077,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x28f9325234951a4f771874f72ce920c9f3078b62a9b00ce148fa04c169ccf589", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x28f9325234951a4f771874f72ce920c9f3078b62a9b00ce148fa04c169ccf589" }, "transactions": [ { @@ -1057,48 +1086,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x25", + "r": "0x406a03d1571c1f3388717a9aa18c5196b97ce433a4727cf553489dd79744f11c", + "s": "0x30bd0922fbcd7d33be4a7f531c0c393057778046abf8ec94d2934b30e79c239f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x28f9325234951a4f771874f72ce920c9f3078b62a9b00ce148fa04c169ccf589", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -1110,6 +1113,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -1153,11 +1162,32 @@ }, "009-fork=Shanghai-create-49121_bytes-49121_bytes_CREATE": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898" + }, "blocks": [ { "rlp": "0xf9c26af9021ca0af915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa004a5177dfd7b9290e2efee115301195282da6c62bb5d9a5297f78451a64a4086a0b0586cd75cd4285805ba665e7bf17d59fd983222c1b9d70e81b63e5fd31f0c29a05494904f1587441e2ef0c11ee5a46d9cb8016200a2aed42e18ec3bf86686bc63b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830555448203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c046f9c043800a8398968094000000000000000000000000000000000000020080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0c3b1f50ced52175d0593179cf21e855cfb7261e633421f4754d1fa3b5950e539a016ac9f83e686cfc189776fc3d96fdea2cf265509fd7eaa495ffc04da8b60f32ec0c0", @@ -1178,8 +1208,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xcf1be7ec67e3ca395297e5ba8c9df46d022c18c47e34bf81b2b9a1e39279a946", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xcf1be7ec67e3ca395297e5ba8c9df46d022c18c47e34bf81b2b9a1e39279a946" }, "transactions": [ { @@ -1187,48 +1217,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0xc3b1f50ced52175d0593179cf21e855cfb7261e633421f4754d1fa3b5950e539", + "s": "0x16ac9f83e686cfc189776fc3d96fdea2cf265509fd7eaa495ffc04da8b60f32e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xaf915923f069a9dba1d44d014c5a59a1d78a92528387b78f03cd98ac0451e898", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0067a60fea405670974fd92410578f6940fa2ecc71812d901b95cc1d7bc8b0282a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xcf1be7ec67e3ca395297e5ba8c9df46d022c18c47e34bf81b2b9a1e39279a946", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -1240,6 +1244,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -1283,11 +1293,32 @@ }, "010-fork=Shanghai-create2-max_size_zeros-max_size_zeros_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, "blocks": [ { "rlp": "0xf9c289f9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05b0f99d41a735ff89c1fe3e45153c565cb56eb3f5d88300cf1c4f45f168c729ba006711bb57845318f8439b068ce522ae3b5073531a10d194ef3bc8317eacfe9c7a09d2ac1d952894536f88bea100813b5b518314fab0c867f24d5bbdb026a9c0148b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830579c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c065f9c062800a8398968094000000000000000000000000000000000000020080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a026ffb6ef1792e394861bb66ccfaf81a2d14cf07b7ba53371776674929d68ff79a0768f69e0d2cd191e576847fa6d904bd4d54eb7101c1874df667803cfcca402a1c0c0", @@ -1308,8 +1339,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x254fc8d8caa6a262ebc8f1b533c422ed2ee5ec1f1622f66c93f35f8703ee748f", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x254fc8d8caa6a262ebc8f1b533c422ed2ee5ec1f1622f66c93f35f8703ee748f" }, "transactions": [ { @@ -1317,48 +1348,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0x26ffb6ef1792e394861bb66ccfaf81a2d14cf07b7ba53371776674929d68ff79", + "s": "0x768f69e0d2cd191e576847fa6d904bd4d54eb7101c1874df667803cfcca402a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x254fc8d8caa6a262ebc8f1b533c422ed2ee5ec1f1622f66c93f35f8703ee748f", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -1370,6 +1375,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -1413,11 +1424,32 @@ }, "011-fork=Shanghai-create2-max_size_ones-max_size_ones_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, "blocks": [ { "rlp": "0xf9c289f9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00a89f38379af324c6a4e9a382177350038fbb3e6258ebcfad824c456131d9641a0c93d876e3c5140deb14e31d6af6e831ad29c28ae416050e22f6cf88735ea07b4a065fa1c84cb1e1aa20ae4639850f5eed32ca1302fd3d53d8d576eef2807efb479b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830e79338203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c065f9c062800a8398968094000000000000000000000000000000000000020080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a052e1da3f9cfc8b50079e8f4ef3f457a3bcd1fb7ec4178e205b742f9fe31153d8a076824ae278fe4f73255f67d87237a0fa1a74ef34a635b76a52421804ce1ba2c4c0c0", @@ -1438,8 +1470,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xe0fc820e6aebbceaac508b8415946625e147d8bc738344bc1e51c7c63fe41d60", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xe0fc820e6aebbceaac508b8415946625e147d8bc738344bc1e51c7c63fe41d60" }, "transactions": [ { @@ -1447,48 +1479,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "gasLimit": "0x989680" + "v": "0x25", + "r": "0x52e1da3f9cfc8b50079e8f4ef3f457a3bcd1fb7ec4178e205b742f9fe31153d8", + "s": "0x76824ae278fe4f73255f67d87237a0fa1a74ef34a635b76a52421804ce1ba2c4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xe0fc820e6aebbceaac508b8415946625e147d8bc738344bc1e51c7c63fe41d60", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -1500,6 +1506,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -1543,11 +1555,32 @@ }, "012-fork=Shanghai-create2-over_limit_zeros-over_limit_zeros_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, "blocks": [ { "rlp": "0xf9c28af9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fd8a7b10fd44b6812d42ee7722433a40e59fb3700100c21a661baa0a6fa9937aa0063b0f723af2734ba227c875c8760d0117b4fc057b573312c068733c8842415aa083546cc5c3089394e15fae191bdf449f400c1be097f84660fbfa12bdc0349febb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000835034628203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c066f9c063800a8398968094000000000000000000000000000000000000020080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0d4b579da76df2ff22d7d21c6bc3582c760e4c7ac8148c2e3bdf20081542c4a96a0207c54445614be78dd9de4af5792cbbdb4f84c9289696c2685604a4976bcdc20c0c0", @@ -1568,8 +1601,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x9b9b455ccc341570722a5586b62a9bf7c60f71fe4d0e45088b83c9353d684a9f", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x9b9b455ccc341570722a5586b62a9bf7c60f71fe4d0e45088b83c9353d684a9f" }, "transactions": [ { @@ -1577,48 +1610,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0xd4b579da76df2ff22d7d21c6bc3582c760e4c7ac8148c2e3bdf20081542c4a96", + "s": "0x207c54445614be78dd9de4af5792cbbdb4f84c9289696c2685604a4976bcdc20", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x9b9b455ccc341570722a5586b62a9bf7c60f71fe4d0e45088b83c9353d684a9f", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -1630,6 +1637,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -1664,11 +1677,32 @@ }, "013-fork=Shanghai-create2-over_limit_ones-over_limit_ones_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, "blocks": [ { "rlp": "0xf9c28af9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa074158b34231e3be68cd044c6625a0bce2c8be8177826d5e9776d8613b57df15ba092f82b36d4c1b632338533cab57679c9cc711cfbfc5cf780bad26c44f53547d2a05deaedb718965cf3799a7a98334745c4e4bf38673c70afcc585c88d1d587d027b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000835933de8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c066f9c063800a8398968094000000000000000000000000000000000000020080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a08720b27bc868b3574e8d2ba380a3e93c807abf44de3d05d0d6fc5bcc07f5b871a0607b78907cc9fadab81d0cf0c5bef640d24cbd3fd2d309c4f45e4129d31740cfc0c0", @@ -1689,8 +1723,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x08606faa33c2536d39f6aa154a75a34b37daf568335bd6e962b4be9512721115", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x08606faa33c2536d39f6aa154a75a34b37daf568335bd6e962b4be9512721115" }, "transactions": [ { @@ -1698,48 +1732,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "gasLimit": "0x989680" + "v": "0x25", + "r": "0x8720b27bc868b3574e8d2ba380a3e93c807abf44de3d05d0d6fc5bcc07f5b871", + "s": "0x607b78907cc9fadab81d0cf0c5bef640d24cbd3fd2d309c4f45e4129d31740cf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x08606faa33c2536d39f6aa154a75a34b37daf568335bd6e962b4be9512721115", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -1751,6 +1759,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -1785,23 +1799,44 @@ }, "014-fork=Shanghai-create2-empty-empty_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf90285f9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0965bef6368aa0ecb59f195b775d11f8f437c76cb88c4aa436b9da7761acc476aa027bcba145cb8a14493e097854dccfdf105b371bf6484bcf0ba13f3a41b6ba999a03236a3147397dbd871d0c846c4553d62aaeb88b04d119a42e4a67d88e799ac03b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301dc778203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a83989680940000000000000000000000000000000000000200808026a079e732a06b561675bdae5da83c86089d1d9f44e5703d316b43c3b073b7b355d9a02bc9444d90121daefa6c328371f570060a87929816df456adc3bffa98d14b89ec0c0", - "blockHeader": { - "parentHash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x965bef6368aa0ecb59f195b775d11f8f437c76cb88c4aa436b9da7761acc476a", - "transactionsTrie": "0x27bcba145cb8a14493e097854dccfdf105b371bf6484bcf0ba13f3a41b6ba999", - "receiptTrie": "0x3236a3147397dbd871d0c846c4553d62aaeb88b04d119a42e4a67d88e799ac03", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, + "blocks": [ + { + "rlp": "0xf90285f9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0965bef6368aa0ecb59f195b775d11f8f437c76cb88c4aa436b9da7761acc476aa027bcba145cb8a14493e097854dccfdf105b371bf6484bcf0ba13f3a41b6ba999a03236a3147397dbd871d0c846c4553d62aaeb88b04d119a42e4a67d88e799ac03b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301dc778203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a83989680940000000000000000000000000000000000000200808026a079e732a06b561675bdae5da83c86089d1d9f44e5703d316b43c3b073b7b355d9a02bc9444d90121daefa6c328371f570060a87929816df456adc3bffa98d14b89ec0c0", + "blockHeader": { + "parentHash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x965bef6368aa0ecb59f195b775d11f8f437c76cb88c4aa436b9da7761acc476a", + "transactionsTrie": "0x27bcba145cb8a14493e097854dccfdf105b371bf6484bcf0ba13f3a41b6ba999", + "receiptTrie": "0x3236a3147397dbd871d0c846c4553d62aaeb88b04d119a42e4a67d88e799ac03", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", "gasUsed": "0x01dc77", @@ -1810,8 +1845,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xac3560b08375917060039e22bc64eaf4abffa35306577463d446b65c21e3c1d3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xac3560b08375917060039e22bc64eaf4abffa35306577463d446b65c21e3c1d3" }, "transactions": [ { @@ -1819,48 +1854,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0x79e732a06b561675bdae5da83c86089d1d9f44e5703d316b43c3b073b7b355d9", + "s": "0x2bc9444d90121daefa6c328371f570060a87929816df456adc3bffa98d14b89e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xac3560b08375917060039e22bc64eaf4abffa35306577463d446b65c21e3c1d3", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -1872,6 +1881,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -1915,11 +1930,32 @@ }, "015-fork=Shanghai-create2-single_byte-single_byte_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, "blocks": [ { "rlp": "0xf90285f9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d3f9e8db2b095d2e84e86b0a4c39186a5204c836632ed8f937da8acd27d6e534a04a127cd801f4a23d34a073a651212bd15f4cbf91e78e2399ed3735da90c6340fa01211af1b59632f55e7c94596dfcda46e182cc2e3c390158f863ba2c60af0e3ebb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301dc8f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a83989680940000000000000000000000000000000000000200800026a020657ec6cf02b83d5955aeadcb4f66c9a9e8435de8b79b491ddf2e8c38b28e39a0779a141e2f9a7f281af205e20b43444b28aef24f8a9a812d4e21535b131b0583c0c0", @@ -1940,8 +1976,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x1d44c2fcb23cd6b6d1d6bf005b741e24d71ded240e1c2d4a7463cb910d2526b5", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1d44c2fcb23cd6b6d1d6bf005b741e24d71ded240e1c2d4a7463cb910d2526b5" }, "transactions": [ { @@ -1949,48 +1985,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x00", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0x20657ec6cf02b83d5955aeadcb4f66c9a9e8435de8b79b491ddf2e8c38b28e39", + "s": "0x779a141e2f9a7f281af205e20b43444b28aef24f8a9a812d4e21535b131b0583", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x1d44c2fcb23cd6b6d1d6bf005b741e24d71ded240e1c2d4a7463cb910d2526b5", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -2002,6 +2012,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -2045,11 +2061,32 @@ }, "016-fork=Shanghai-create2-32_bytes-32_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, "blocks": [ { "rlp": "0xf902a5f9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07322acc404e61f4304882b35114ba143f60131eefc6dff9adfbb47914d35824ca09abaa81cd0940f56767b7e0358bbade8c847d77b2ca5d4e6a97d18763b1bbc04a016e319cd4772a57565e2b88cdb7d144a257d9aa1aa227a42ef8e081dd177340cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301de578203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f882f880800a8398968094000000000000000000000000000000000000020080a0610001600081600b8239f300000000000000000000000000000000000000000025a0c5ea3189348013b5902ba1d93737a7194299797b773dcbf4ce463e780571e020a01d83a78a5a920e77fcf5b3097edd8af1e34394aa19fb28a289e8253daf61d88dc0c0", @@ -2070,8 +2107,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xf0264ada25b2abf7c957acc68554e8385e90895eb8f10b04fd02583f48f05436", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xf0264ada25b2abf7c957acc68554e8385e90895eb8f10b04fd02583f48f05436" }, "transactions": [ { @@ -2079,48 +2116,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x25", + "r": "0xc5ea3189348013b5902ba1d93737a7194299797b773dcbf4ce463e780571e020", + "s": "0x1d83a78a5a920e77fcf5b3097edd8af1e34394aa19fb28a289e8253daf61d88d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xf0264ada25b2abf7c957acc68554e8385e90895eb8f10b04fd02583f48f05436", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -2132,6 +2143,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -2175,11 +2192,32 @@ }, "017-fork=Shanghai-create2-33_bytes-33_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, "blocks": [ { "rlp": "0xf902a6f9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cfd17645d4b2d0f5ed02ec9f4722a62206d5b6c18f0520447c701346167a989da0a7488ef7950b352ed5dd6c24a4b0e9657e332ef99ddd3cea61efac82e55063bba09d9aa1283525240f2259d671af74fb026e1638f04acb3bd0588dcd86328a7eabb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301de6f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f883f881800a8398968094000000000000000000000000000000000000020080a1610001600081600b8239f30000000000000000000000000000000000000000000026a0d5a886b13a638f9fecd46e88719bf3550356383b5dfa3512a29dfb55b1fc4c45a0242e627cedf800b63160047a9984e318f930f64480ca58d340605108184eb0d9c0c0", @@ -2200,8 +2238,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x5344d0ec2f83e5b828e4b5913620a51055a6aef2ef93d132487c97d807fb8451", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x5344d0ec2f83e5b828e4b5913620a51055a6aef2ef93d132487c97d807fb8451" }, "transactions": [ { @@ -2209,48 +2247,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0xd5a886b13a638f9fecd46e88719bf3550356383b5dfa3512a29dfb55b1fc4c45", + "s": "0x242e627cedf800b63160047a9984e318f930f64480ca58d340605108184eb0d9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x5344d0ec2f83e5b828e4b5913620a51055a6aef2ef93d132487c97d807fb8451", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -2262,6 +2274,12 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -2305,11 +2323,32 @@ }, "018-fork=Shanghai-create2-49120_bytes-49120_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, "blocks": [ { "rlp": "0xf9c269f9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa068a81abe7967d586de76aaad099d65cd9400211034cac07065a724a7641fa6cda07791174fb4f3c5c88e6665a2db00625f8c8a6b3387d3b73d35633ea2f59a8059a0752c0aa1f66d985b3604b814c38d8854ecb3a75b7696e6fffa35cc341271b9adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830579238203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c045f9c042800a8398968094000000000000000000000000000000000000020080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0406a03d1571c1f3388717a9aa18c5196b97ce433a4727cf553489dd79744f11ca030bd0922fbcd7d33be4a7f531c0c393057778046abf8ec94d2934b30e79c239fc0c0", @@ -2330,8 +2369,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x0096d7ba126b5504ca73c0aeaf995aeb81fe9da006d74aa7e341fae7b7f94cd1", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x0096d7ba126b5504ca73c0aeaf995aeb81fe9da006d74aa7e341fae7b7f94cd1" }, "transactions": [ { @@ -2339,24 +2378,2756 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x25", + "r": "0x406a03d1571c1f3388717a9aa18c5196b97ce433a4727cf553489dd79744f11c", + "s": "0x30bd0922fbcd7d33be4a7f531c0c393057778046abf8ec94d2934b30e79c239f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "lastblockhash": "0x0096d7ba126b5504ca73c0aeaf995aeb81fe9da006d74aa7e341fae7b7f94cd1", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": { + "0x00": "0xb2052e6b175a5f65b94348a000f2c45f5ba3cbad", + "0x01": "0xade5" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x106b69", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de6944a2", + "code": "0x", + "storage": {} + }, + "0xb2052e6b175a5f65b94348a000f2c45f5ba3cbad": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "019-fork=Shanghai-create2-49121_bytes-49121_bytes_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4" + }, + "blocks": [ + { + "rlp": "0xf9c26af9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b6ecac53965288fbec252bbd71249e13bcf724658568051602943ffb9e0ff6f8a0b0586cd75cd4285805ba665e7bf17d59fd983222c1b9d70e81b63e5fd31f0c29a043abe9486549f4db8ec6622dfe9e8694120c9a89b4b3bb1ae324e1f04beb1ac9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830579478203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c046f9c043800a8398968094000000000000000000000000000000000000020080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0c3b1f50ced52175d0593179cf21e855cfb7261e633421f4754d1fa3b5950e539a016ac9f83e686cfc189776fc3d96fdea2cf265509fd7eaa495ffc04da8b60f32ec0c0", + "blockHeader": { + "parentHash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb6ecac53965288fbec252bbd71249e13bcf724658568051602943ffb9e0ff6f8", + "transactionsTrie": "0xb0586cd75cd4285805ba665e7bf17d59fd983222c1b9d70e81b63e5fd31f0c29", + "receiptTrie": "0x43abe9486549f4db8ec6622dfe9e8694120c9a89b4b3bb1ae324e1f04beb1ac9", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x057947", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x7f3c5d3ce3859ec3fdfa363f3c57ca885eb4401681ed941706e96185d755c03c" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xc3b1f50ced52175d0593179cf21e855cfb7261e633421f4754d1fa3b5950e539", + "s": "0x16ac9f83e686cfc189776fc3d96fdea2cf265509fd7eaa495ffc04da8b60f32e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7f3c5d3ce3859ec3fdfa363f3c57ca885eb4401681ed941706e96185d755c03c", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": { + "0x00": "0x9b1329bcf5851e38a2cb407a26b7b707ee81de07", + "0x01": "0xaded" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x106bd5", + "code": "0x", + "storage": {} + }, + "0x9b1329bcf5851e38a2cb407a26b7b707ee81de07": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de69433a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "020-fork=Cancun-create-max_size_zeros-max_size_zeros_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf9c2acf9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0867c44d2a6a60de74c73a3cba4b25187d7cc17b99e0ceecc90c2cc0806753e54a006711bb57845318f8439b068ce522ae3b5073531a10d194ef3bc8317eacfe9c7a05296522f428389a3313d244af1b5bd4d0aec0cd31a87f6297d46c890b9e7451cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830555c08203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c065f9c062800a8398968094000000000000000000000000000000000000020080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a026ffb6ef1792e394861bb66ccfaf81a2d14cf07b7ba53371776674929d68ff79a0768f69e0d2cd191e576847fa6d904bd4d54eb7101c1874df667803cfcca402a1c0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x867c44d2a6a60de74c73a3cba4b25187d7cc17b99e0ceecc90c2cc0806753e54", + "transactionsTrie": "0x06711bb57845318f8439b068ce522ae3b5073531a10d194ef3bc8317eacfe9c7", + "receiptTrie": "0x5296522f428389a3313d244af1b5bd4d0aec0cd31a87f6297d46c890b9e7451c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0555c0", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa5657f26a6b785d006b44ca60b89c2f8da9072f132803e03355ed62b8bba80e2" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x26ffb6ef1792e394861bb66ccfaf81a2d14cf07b7ba53371776674929d68ff79", + "s": "0x768f69e0d2cd191e576847fa6d904bd4d54eb7101c1874df667803cfcca402a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa5657f26a6b785d006b44ca60b89c2f8da9072f132803e03355ed62b8bba80e2", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x89ea" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x100140", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de6aa680", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "021-fork=Cancun-create-max_size_ones-max_size_ones_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf9c2acf9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09f09583435e49e591d63ce4f324ea92c7ae0d6e0c5b578229d70b109b870f49aa0c93d876e3c5140deb14e31d6af6e831ad29c28ae416050e22f6cf88735ea07b4a0b5fc6d2943407dba9ee028ab9c4c52b8375d8cdef52d9141aea10ab3a944fab1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830e55308203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c065f9c062800a8398968094000000000000000000000000000000000000020080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a052e1da3f9cfc8b50079e8f4ef3f457a3bcd1fb7ec4178e205b742f9fe31153d8a076824ae278fe4f73255f67d87237a0fa1a74ef34a635b76a52421804ce1ba2c4c0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9f09583435e49e591d63ce4f324ea92c7ae0d6e0c5b578229d70b109b870f49a", + "transactionsTrie": "0xc93d876e3c5140deb14e31d6af6e831ad29c28ae416050e22f6cf88735ea07b4", + "receiptTrie": "0xb5fc6d2943407dba9ee028ab9c4c52b8375d8cdef52d9141aea10ab3a944fab1", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0e5530", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc71514d1ae8b7809b3e7e7997eed1647d6428b07d2e6e954fc971d1b3f673c40" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0x52e1da3f9cfc8b50079e8f4ef3f457a3bcd1fb7ec4178e205b742f9fe31153d8", + "s": "0x76824ae278fe4f73255f67d87237a0fa1a74ef34a635b76a52421804ce1ba2c4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc71514d1ae8b7809b3e7e7997eed1647d6428b07d2e6e954fc971d1b3f673c40", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x89ea" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x2aff90", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de10ac20", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "022-fork=Cancun-create-over_limit_zeros-over_limit_zeros_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf9c2adf9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04f881569ac88819cdbc0f3435d6cd1d2be7ea614556ae8582199eacc5ca8a51aa0063b0f723af2734ba227c875c8760d0117b4fc057b573312c068733c8842415aa083546cc5c3089394e15fae191bdf449f400c1be097f84660fbfa12bdc0349febb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000835034628203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c066f9c063800a8398968094000000000000000000000000000000000000020080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0d4b579da76df2ff22d7d21c6bc3582c760e4c7ac8148c2e3bdf20081542c4a96a0207c54445614be78dd9de4af5792cbbdb4f84c9289696c2685604a4976bcdc20c0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4f881569ac88819cdbc0f3435d6cd1d2be7ea614556ae8582199eacc5ca8a51a", + "transactionsTrie": "0x063b0f723af2734ba227c875c8760d0117b4fc057b573312c068733c8842415a", + "receiptTrie": "0x83546cc5c3089394e15fae191bdf449f400c1be097f84660fbfa12bdc0349feb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x503462", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc5b7617e436343f2eb309568a47c3dab85a66d671c98a1499e5bcc1e12ccf824" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xd4b579da76df2ff22d7d21c6bc3582c760e4c7ac8148c2e3bdf20081542c4a96", + "s": "0x207c54445614be78dd9de4af5792cbbdb4f84c9289696c2685604a4976bcdc20", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xc5b7617e436343f2eb309568a47c3dab85a66d671c98a1499e5bcc1e12ccf824", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x00": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf09d26", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5db7df42c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "023-fork=Cancun-create-over_limit_ones-over_limit_ones_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf9c2adf9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06f711f9c0268a3e352bc3f0957762a5c383a9d750459e38560e5fdef9e790bf4a092f82b36d4c1b632338533cab57679c9cc711cfbfc5cf780bad26c44f53547d2a05deaedb718965cf3799a7a98334745c4e4bf38673c70afcc585c88d1d587d027b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000835933de8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c066f9c063800a8398968094000000000000000000000000000000000000020080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a08720b27bc868b3574e8d2ba380a3e93c807abf44de3d05d0d6fc5bcc07f5b871a0607b78907cc9fadab81d0cf0c5bef640d24cbd3fd2d309c4f45e4129d31740cfc0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6f711f9c0268a3e352bc3f0957762a5c383a9d750459e38560e5fdef9e790bf4", + "transactionsTrie": "0x92f82b36d4c1b632338533cab57679c9cc711cfbfc5cf780bad26c44f53547d2", + "receiptTrie": "0x5deaedb718965cf3799a7a98334745c4e4bf38673c70afcc585c88d1d587d027", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5933de", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3215bb7a841fc750d65cc58e813c04f62774b1ccfc12bfcf2617e4086a319fe9" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0x8720b27bc868b3574e8d2ba380a3e93c807abf44de3d05d0d6fc5bcc07f5b871", + "s": "0x607b78907cc9fadab81d0cf0c5bef640d24cbd3fd2d309c4f45e4129d31740cf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3215bb7a841fc750d65cc58e813c04f62774b1ccfc12bfcf2617e4086a319fe9", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x00": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x010b9b9a", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5db23f954", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "024-fork=Cancun-create-empty-empty_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d8031816f52febc468a2d89a5c6e3c75a8b3c18c927856a5f5c471ef58aa6484a027bcba145cb8a14493e097854dccfdf105b371bf6484bcf0ba13f3a41b6ba999a0ae43cb9c7ab2043885453d08fc4d2dafb9eefcbd582395bcddcb3682a4784144b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301dc748203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a83989680940000000000000000000000000000000000000200808026a079e732a06b561675bdae5da83c86089d1d9f44e5703d316b43c3b073b7b355d9a02bc9444d90121daefa6c328371f570060a87929816df456adc3bffa98d14b89ec0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd8031816f52febc468a2d89a5c6e3c75a8b3c18c927856a5f5c471ef58aa6484", + "transactionsTrie": "0x27bcba145cb8a14493e097854dccfdf105b371bf6484bcf0ba13f3a41b6ba999", + "receiptTrie": "0xae43cb9c7ab2043885453d08fc4d2dafb9eefcbd582395bcddcb3682a4784144", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01dc74", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2c52f7687639585bbae0b83d5f82903b63f3df786e3c7910902b51f51a1be5c3" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x79e732a06b561675bdae5da83c86089d1d9f44e5703d316b43c3b073b7b355d9", + "s": "0x2bc9444d90121daefa6c328371f570060a87929816df456adc3bffa98d14b89e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2c52f7687639585bbae0b83d5f82903b63f3df786e3c7910902b51f51a1be5c3", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x7d0a" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x05955c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de8d6378", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "025-fork=Cancun-create-single_byte-single_byte_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e2c9b1f1aa5612f97225cfe25c63fbe237e9bdf2cc856ef706378d1517d8163ea04a127cd801f4a23d34a073a651212bd15f4cbf91e78e2399ed3735da90c6340fa0fd052a5c8d4457d0382ebe0fe698b6dee7b482585a562416e23af9e8d38c6ea5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301dc868203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a83989680940000000000000000000000000000000000000200800026a020657ec6cf02b83d5955aeadcb4f66c9a9e8435de8b79b491ddf2e8c38b28e39a0779a141e2f9a7f281af205e20b43444b28aef24f8a9a812d4e21535b131b0583c0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe2c9b1f1aa5612f97225cfe25c63fbe237e9bdf2cc856ef706378d1517d8163e", + "transactionsTrie": "0x4a127cd801f4a23d34a073a651212bd15f4cbf91e78e2399ed3735da90c6340f", + "receiptTrie": "0xfd052a5c8d4457d0382ebe0fe698b6dee7b482585a562416e23af9e8d38c6ea5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01dc86", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3f9db1d0a8218814b3e9d439a63a98464a714e07432be846d640c1df98c3eaf7" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x00", + "v": "0x26", + "r": "0x20657ec6cf02b83d5955aeadcb4f66c9a9e8435de8b79b491ddf2e8c38b28e39", + "s": "0x779a141e2f9a7f281af205e20b43444b28aef24f8a9a812d4e21535b131b0583", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3f9db1d0a8218814b3e9d439a63a98464a714e07432be846d640c1df98c3eaf7", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x7d0c" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x059592", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de8d62c4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "026-fork=Cancun-create-32_bytes-32_bytes_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fdf9fabab2c1e633d966c7f94438e9a7202beca92986de6e87cee67ea9237db7a09abaa81cd0940f56767b7e0358bbade8c847d77b2ca5d4e6a97d18763b1bbc04a0360e6961d3714d75d14d74a0ebef76810342b61e6e777b57a5ac605ce5ba7d4db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301de4e8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0610001600081600b8239f300000000000000000000000000000000000000000025a0c5ea3189348013b5902ba1d93737a7194299797b773dcbf4ce463e780571e020a01d83a78a5a920e77fcf5b3097edd8af1e34394aa19fb28a289e8253daf61d88dc0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfdf9fabab2c1e633d966c7f94438e9a7202beca92986de6e87cee67ea9237db7", + "transactionsTrie": "0x9abaa81cd0940f56767b7e0358bbade8c847d77b2ca5d4e6a97d18763b1bbc04", + "receiptTrie": "0x360e6961d3714d75d14d74a0ebef76810342b61e6e777b57a5ac605ce5ba7d4d", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01de4e", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x36663f62d32c64cfc5d7a566724dbf6b50c19e54119b8120115be35b9c180a52" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0xc5ea3189348013b5902ba1d93737a7194299797b773dcbf4ce463e780571e020", + "s": "0x1d83a78a5a920e77fcf5b3097edd8af1e34394aa19fb28a289e8253daf61d88d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x36663f62d32c64cfc5d7a566724dbf6b50c19e54119b8120115be35b9c180a52", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x7dec" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x059aea", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de8d50f4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "027-fork=Cancun-create-33_bytes-33_bytes_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf902c9f9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd315ef8d0ddc113d6f5ba6951e141dc138ca6d4e2bd1e7c7865841bab503d31a0a7488ef7950b352ed5dd6c24a4b0e9657e332ef99ddd3cea61efac82e55063bba001f12af128bfdc4036eb782bf2756bd0a7d694f889de2c3cb225d4f54c67e15bb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301de608203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f883f881800a8398968094000000000000000000000000000000000000020080a1610001600081600b8239f30000000000000000000000000000000000000000000026a0d5a886b13a638f9fecd46e88719bf3550356383b5dfa3512a29dfb55b1fc4c45a0242e627cedf800b63160047a9984e318f930f64480ca58d340605108184eb0d9c0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcd315ef8d0ddc113d6f5ba6951e141dc138ca6d4e2bd1e7c7865841bab503d31", + "transactionsTrie": "0xa7488ef7950b352ed5dd6c24a4b0e9657e332ef99ddd3cea61efac82e55063bb", + "receiptTrie": "0x01f12af128bfdc4036eb782bf2756bd0a7d694f889de2c3cb225d4f54c67e15b", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01de60", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb56d6a1964a2c04285736210709fbb9c49d23c1a23ce057ab4d08fbf29c1f21e" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xd5a886b13a638f9fecd46e88719bf3550356383b5dfa3512a29dfb55b1fc4c45", + "s": "0x242e627cedf800b63160047a9984e318f930f64480ca58d340605108184eb0d9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb56d6a1964a2c04285736210709fbb9c49d23c1a23ce057ab4d08fbf29c1f21e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x7dee" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x059b20", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de8d5040", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "028-fork=Cancun-create-49120_bytes-49120_bytes_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf9c28cf9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0312f8d02700938e75518eb0ba33b334697950c4e939cd732e2ab6b529d0f659ea07791174fb4f3c5c88e6665a2db00625f8c8a6b3387d3b73d35633ea2f59a8059a06c0f478dc53c81bd92709f989561ff7bddd731b4f91ba78e8577e6d8913d5678b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830555268203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c045f9c042800a8398968094000000000000000000000000000000000000020080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0406a03d1571c1f3388717a9aa18c5196b97ce433a4727cf553489dd79744f11ca030bd0922fbcd7d33be4a7f531c0c393057778046abf8ec94d2934b30e79c239fc0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x312f8d02700938e75518eb0ba33b334697950c4e939cd732e2ab6b529d0f659e", + "transactionsTrie": "0x7791174fb4f3c5c88e6665a2db00625f8c8a6b3387d3b73d35633ea2f59a8059", + "receiptTrie": "0x6c0f478dc53c81bd92709f989561ff7bddd731b4f91ba78e8577e6d8913d5678", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x055526", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1576fdc52fea430cd7216c180b0a115885dfc302c4eb9fae65d0ff33efe7ab61" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0x406a03d1571c1f3388717a9aa18c5196b97ce433a4727cf553489dd79744f11c", + "s": "0x30bd0922fbcd7d33be4a7f531c0c393057778046abf8ec94d2934b30e79c239f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1576fdc52fea430cd7216c180b0a115885dfc302c4eb9fae65d0ff33efe7ab61", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x89e8" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0fff72", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de6aac84", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "029-fork=Cancun-create-49121_bytes-49121_bytes_CREATE": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x253c1bdcfd28d17ac80f57deb23c774c0f98ca1d917455b52d702c12c6d8c66a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617" + }, + "blocks": [ + { + "rlp": "0xf9c28df9023fa0a0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0da73054178c46712e1aec2d4554b78182ea68d5488d5d5a5223afb80d7a56803a0b0586cd75cd4285805ba665e7bf17d59fd983222c1b9d70e81b63e5fd31f0c29a05494904f1587441e2ef0c11ee5a46d9cb8016200a2aed42e18ec3bf86686bc63b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830555448203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c046f9c043800a8398968094000000000000000000000000000000000000020080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0c3b1f50ced52175d0593179cf21e855cfb7261e633421f4754d1fa3b5950e539a016ac9f83e686cfc189776fc3d96fdea2cf265509fd7eaa495ffc04da8b60f32ec0c0", + "blockHeader": { + "parentHash": "0xa0527e0344aa722265117781263b2696e6f867e91e05af7cf0f723a79bd2f617", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xda73054178c46712e1aec2d4554b78182ea68d5488d5d5a5223afb80d7a56803", + "transactionsTrie": "0xb0586cd75cd4285805ba665e7bf17d59fd983222c1b9d70e81b63e5fd31f0c29", + "receiptTrie": "0x5494904f1587441e2ef0c11ee5a46d9cb8016200a2aed42e18ec3bf86686bc63", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x055544", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x40890d2874826f01e2c8fe829916cae404190ec8259228b4df0de8146203c0fb" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xc3b1f50ced52175d0593179cf21e855cfb7261e633421f4754d1fa3b5950e539", + "s": "0x16ac9f83e686cfc189776fc3d96fdea2cf265509fd7eaa495ffc04da8b60f32e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x40890d2874826f01e2c8fe829916cae404190ec8259228b4df0de8146203c0fb", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a3660006000f05a906000559003600155", + "storage": { + "0x00": "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b", + "0x01": "0x89ea" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x04ab3066469dcba4c3686a65a8c2fdae7b1f217b": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0fffcc", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de6aab58", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "030-fork=Cancun-create2-max_size_zeros-max_size_zeros_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" + }, + "blocks": [ + { + "rlp": "0xf9c2acf9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0baa7d1e89bdd34be006de4d63be8efbf477623955a0546a8886a6b59a7fd7bf3a006711bb57845318f8439b068ce522ae3b5073531a10d194ef3bc8317eacfe9c7a09d2ac1d952894536f88bea100813b5b518314fab0c867f24d5bbdb026a9c0148b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830579c38203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c065f9c062800a8398968094000000000000000000000000000000000000020080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a026ffb6ef1792e394861bb66ccfaf81a2d14cf07b7ba53371776674929d68ff79a0768f69e0d2cd191e576847fa6d904bd4d54eb7101c1874df667803cfcca402a1c0c0", + "blockHeader": { + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbaa7d1e89bdd34be006de4d63be8efbf477623955a0546a8886a6b59a7fd7bf3", + "transactionsTrie": "0x06711bb57845318f8439b068ce522ae3b5073531a10d194ef3bc8317eacfe9c7", + "receiptTrie": "0x9d2ac1d952894536f88bea100813b5b518314fab0c867f24d5bbdb026a9c0148", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0579c3", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xeee5a8e7d239fa7e944037a5f3f6058832c71b2ecb19d8bb5f1457f0c6b2bcf1" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x26ffb6ef1792e394861bb66ccfaf81a2d14cf07b7ba53371776674929d68ff79", + "s": "0x768f69e0d2cd191e576847fa6d904bd4d54eb7101c1874df667803cfcca402a1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xeee5a8e7d239fa7e944037a5f3f6058832c71b2ecb19d8bb5f1457f0c6b2bcf1", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": { + "0x00": "0x17deb63f25bdb1f7963e030d89803a41ce1caac6", + "0x01": "0xaded" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x17deb63f25bdb1f7963e030d89803a41ce1caac6": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x106d49", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de693e62", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "031-fork=Cancun-create2-max_size_ones-max_size_ones_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" + }, + "blocks": [ + { + "rlp": "0xf9c2acf9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa096da971939d9a37c9aff05e318a49248b85a0f20def339032b0e1baff048e296a0c93d876e3c5140deb14e31d6af6e831ad29c28ae416050e22f6cf88735ea07b4a065fa1c84cb1e1aa20ae4639850f5eed32ca1302fd3d53d8d576eef2807efb479b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830e79338203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c065f9c062800a8398968094000000000000000000000000000000000000020080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a052e1da3f9cfc8b50079e8f4ef3f457a3bcd1fb7ec4178e205b742f9fe31153d8a076824ae278fe4f73255f67d87237a0fa1a74ef34a635b76a52421804ce1ba2c4c0c0", + "blockHeader": { + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x96da971939d9a37c9aff05e318a49248b85a0f20def339032b0e1baff048e296", + "transactionsTrie": "0xc93d876e3c5140deb14e31d6af6e831ad29c28ae416050e22f6cf88735ea07b4", + "receiptTrie": "0x65fa1c84cb1e1aa20ae4639850f5eed32ca1302fd3d53d8d576eef2807efb479", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0e7933", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x28270770437561c7f482c9ddf07eb5e2c571bdb68d7a29c792fdf2bc3d008aa4" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0x52e1da3f9cfc8b50079e8f4ef3f457a3bcd1fb7ec4178e205b742f9fe31153d8", + "s": "0x76824ae278fe4f73255f67d87237a0fa1a74ef34a635b76a52421804ce1ba2c4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x28270770437561c7f482c9ddf07eb5e2c571bdb68d7a29c792fdf2bc3d008aa4", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": { + "0x00": "0x31af030c9ba1417efa828dc2badad1862819eafc", + "0x01": "0xaded" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x2b6b99", + "code": "0x", + "storage": {} + }, + "0x31af030c9ba1417efa828dc2badad1862819eafc": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de0f4402", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "032-fork=Cancun-create2-over_limit_zeros-over_limit_zeros_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" + }, + "blocks": [ + { + "rlp": "0xf9c2adf9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c86d4f0d822ab3871803597ad893b780f3f299b348e2db50d8bd24c35c3d2de9a0063b0f723af2734ba227c875c8760d0117b4fc057b573312c068733c8842415aa083546cc5c3089394e15fae191bdf449f400c1be097f84660fbfa12bdc0349febb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000835034628203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c066f9c063800a8398968094000000000000000000000000000000000000020080b9c001610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0d4b579da76df2ff22d7d21c6bc3582c760e4c7ac8148c2e3bdf20081542c4a96a0207c54445614be78dd9de4af5792cbbdb4f84c9289696c2685604a4976bcdc20c0c0", + "blockHeader": { + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc86d4f0d822ab3871803597ad893b780f3f299b348e2db50d8bd24c35c3d2de9", + "transactionsTrie": "0x063b0f723af2734ba227c875c8760d0117b4fc057b573312c068733c8842415a", + "receiptTrie": "0x83546cc5c3089394e15fae191bdf449f400c1be097f84660fbfa12bdc0349feb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x503462", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x732e5c965a965900ba8970f08af20304551bf052dbd8c0c2316cc509b5cba032" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xd4b579da76df2ff22d7d21c6bc3582c760e4c7ac8148c2e3bdf20081542c4a96", + "s": "0x207c54445614be78dd9de4af5792cbbdb4f84c9289696c2685604a4976bcdc20", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x732e5c965a965900ba8970f08af20304551bf052dbd8c0c2316cc509b5cba032", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x00": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf09d26", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5db7df42c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "033-fork=Cancun-create2-over_limit_ones-over_limit_ones_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" + }, + "blocks": [ + { + "rlp": "0xf9c2adf9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa021f0a3f236936807ad48de6b1d6596b9762bc8c279f6b47d64c337208411c599a092f82b36d4c1b632338533cab57679c9cc711cfbfc5cf780bad26c44f53547d2a05deaedb718965cf3799a7a98334745c4e4bf38673c70afcc585c88d1d587d027b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000835933de8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c066f9c063800a8398968094000000000000000000000000000000000000020080b9c001610001600081600b8239f3000101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a08720b27bc868b3574e8d2ba380a3e93c807abf44de3d05d0d6fc5bcc07f5b871a0607b78907cc9fadab81d0cf0c5bef640d24cbd3fd2d309c4f45e4129d31740cfc0c0", + "blockHeader": { + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x21f0a3f236936807ad48de6b1d6596b9762bc8c279f6b47d64c337208411c599", + "transactionsTrie": "0x92f82b36d4c1b632338533cab57679c9cc711cfbfc5cf780bad26c44f53547d2", + "receiptTrie": "0x5deaedb718965cf3799a7a98334745c4e4bf38673c70afcc585c88d1d587d027", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5933de", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x78810b61928b384d35fa9e6b4ff3ffe40e9ec5978531cf607e32f8d1b26ad1a4" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0x8720b27bc868b3574e8d2ba380a3e93c807abf44de3d05d0d6fc5bcc07f5b871", + "s": "0x607b78907cc9fadab81d0cf0c5bef640d24cbd3fd2d309c4f45e4129d31740cf", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x78810b61928b384d35fa9e6b4ff3ffe40e9ec5978531cf607e32f8d1b26ad1a4", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x00": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x010b9b9a", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5db23f954", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "034-fork=Cancun-create2-empty-empty_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa094b5ba3b20b4987e682d421ffdfdbdbfe1c11c4155834afa04c1722f372f3418a027bcba145cb8a14493e097854dccfdf105b371bf6484bcf0ba13f3a41b6ba999a03236a3147397dbd871d0c846c4553d62aaeb88b04d119a42e4a67d88e799ac03b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301dc778203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a83989680940000000000000000000000000000000000000200808026a079e732a06b561675bdae5da83c86089d1d9f44e5703d316b43c3b073b7b355d9a02bc9444d90121daefa6c328371f570060a87929816df456adc3bffa98d14b89ec0c0", + "blockHeader": { + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x94b5ba3b20b4987e682d421ffdfdbdbfe1c11c4155834afa04c1722f372f3418", + "transactionsTrie": "0x27bcba145cb8a14493e097854dccfdf105b371bf6484bcf0ba13f3a41b6ba999", + "receiptTrie": "0x3236a3147397dbd871d0c846c4553d62aaeb88b04d119a42e4a67d88e799ac03", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01dc77", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb889bef8c1f5fdb10d36ddc34e4174f622a21fdfc37eaeda88afe3c510ac4d0a" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x79e732a06b561675bdae5da83c86089d1d9f44e5703d316b43c3b073b7b355d9", + "s": "0x2bc9444d90121daefa6c328371f570060a87929816df456adc3bffa98d14b89e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb889bef8c1f5fdb10d36ddc34e4174f622a21fdfc37eaeda88afe3c510ac4d0a", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": { + "0x00": "0x0760b5a578edc38b78558c6baf70f9fb83fb5a96", + "0x01": "0x7d0d" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x0760b5a578edc38b78558c6baf70f9fb83fb5a96": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x059565", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de8d635a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "035-fork=Cancun-create2-single_byte-single_byte_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" + }, + "blocks": [ + { + "rlp": "0xf902a8f9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa049a3fc7b75a29c699e9e20aa55ed3ee389af939a048d6f0b01ec8a77c8f4dff1a04a127cd801f4a23d34a073a651212bd15f4cbf91e78e2399ed3735da90c6340fa01211af1b59632f55e7c94596dfcda46e182cc2e3c390158f863ba2c60af0e3ebb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301dc8f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a83989680940000000000000000000000000000000000000200800026a020657ec6cf02b83d5955aeadcb4f66c9a9e8435de8b79b491ddf2e8c38b28e39a0779a141e2f9a7f281af205e20b43444b28aef24f8a9a812d4e21535b131b0583c0c0", + "blockHeader": { + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x49a3fc7b75a29c699e9e20aa55ed3ee389af939a048d6f0b01ec8a77c8f4dff1", + "transactionsTrie": "0x4a127cd801f4a23d34a073a651212bd15f4cbf91e78e2399ed3735da90c6340f", + "receiptTrie": "0x1211af1b59632f55e7c94596dfcda46e182cc2e3c390158f863ba2c60af0e3eb", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01dc8f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x223c4d889d7698dc216deedcead9356aae2049afc6b73dcbea5e58dee6258df9" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x00", + "v": "0x26", + "r": "0x20657ec6cf02b83d5955aeadcb4f66c9a9e8435de8b79b491ddf2e8c38b28e39", + "s": "0x779a141e2f9a7f281af205e20b43444b28aef24f8a9a812d4e21535b131b0583", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x223c4d889d7698dc216deedcead9356aae2049afc6b73dcbea5e58dee6258df9", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": { + "0x00": "0x4c789038053fd50867f184b06d2b842064c4c147", + "0x01": "0x7d15" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0595ad", + "code": "0x", + "storage": {} + }, + "0x4c789038053fd50867f184b06d2b842064c4c147": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de8d626a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "036-fork=Cancun-create2-32_bytes-32_bytes_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" + }, + "blocks": [ + { + "rlp": "0xf902c8f9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b91896ba705f002c0fe2918ccc6d46346697a69181557f020a9c9e2a76ce96bca09abaa81cd0940f56767b7e0358bbade8c847d77b2ca5d4e6a97d18763b1bbc04a016e319cd4772a57565e2b88cdb7d144a257d9aa1aa227a42ef8e081dd177340cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301de578203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a8398968094000000000000000000000000000000000000020080a0610001600081600b8239f300000000000000000000000000000000000000000025a0c5ea3189348013b5902ba1d93737a7194299797b773dcbf4ce463e780571e020a01d83a78a5a920e77fcf5b3097edd8af1e34394aa19fb28a289e8253daf61d88dc0c0", + "blockHeader": { + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb91896ba705f002c0fe2918ccc6d46346697a69181557f020a9c9e2a76ce96bc", + "transactionsTrie": "0x9abaa81cd0940f56767b7e0358bbade8c847d77b2ca5d4e6a97d18763b1bbc04", + "receiptTrie": "0x16e319cd4772a57565e2b88cdb7d144a257d9aa1aa227a42ef8e081dd177340c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01de57", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3892756c524d5cac841a68b858b9cadd3b00ef20474ce65b2b03729110552216" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0xc5ea3189348013b5902ba1d93737a7194299797b773dcbf4ce463e780571e020", + "s": "0x1d83a78a5a920e77fcf5b3097edd8af1e34394aa19fb28a289e8253daf61d88d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3892756c524d5cac841a68b858b9cadd3b00ef20474ce65b2b03729110552216", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": { + "0x00": "0x6909aba6cc16bbe202d9957a184b6f7c78ad9249", + "0x01": "0x7df5" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x059b05", + "code": "0x", + "storage": {} + }, + "0x6909aba6cc16bbe202d9957a184b6f7c78ad9249": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de8d509a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "037-fork=Cancun-create2-33_bytes-33_bytes_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", @@ -2368,19 +5139,211 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x0096d7ba126b5504ca73c0aeaf995aeb81fe9da006d74aa7e341fae7b7f94cd1", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902c9f9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa098208e3f57d84a811c641ba8a6413beeb256197a9415189875fe3b0c693b0522a0a7488ef7950b352ed5dd6c24a4b0e9657e332ef99ddd3cea61efac82e55063bba09d9aa1283525240f2259d671af74fb026e1638f04acb3bd0588dcd86328a7eabb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008301de6f8203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f883f881800a8398968094000000000000000000000000000000000000020080a1610001600081600b8239f30000000000000000000000000000000000000000000026a0d5a886b13a638f9fecd46e88719bf3550356383b5dfa3512a29dfb55b1fc4c45a0242e627cedf800b63160047a9984e318f930f64480ca58d340605108184eb0d9c0c0", + "blockHeader": { + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x98208e3f57d84a811c641ba8a6413beeb256197a9415189875fe3b0c693b0522", + "transactionsTrie": "0xa7488ef7950b352ed5dd6c24a4b0e9657e332ef99ddd3cea61efac82e55063bb", + "receiptTrie": "0x9d9aa1283525240f2259d671af74fb026e1638f04acb3bd0588dcd86328a7eab", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x01de6f", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3d378c0dd2781ea4fc0cdd871d293400e465d9870665ec3c5e1dedd4cd185aa0" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xd5a886b13a638f9fecd46e88719bf3550356383b5dfa3512a29dfb55b1fc4c45", + "s": "0x242e627cedf800b63160047a9984e318f930f64480ca58d340605108184eb0d9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3d378c0dd2781ea4fc0cdd871d293400e465d9870665ec3c5e1dedd4cd185aa0", "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", "code": "0x", "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x02", + "balance": "0x00", + "code": "0x3660006000375a63deadbeef3660006000f55a906000559003600155", + "storage": { + "0x00": "0x18903ff850a28136baeb515f0bf860ccfa66c9f7", + "0x01": "0x7dfd" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3660006000376001600060003660006000610100624c4b40f155", + "storage": { + "0x01": "0x01" + } + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, + "0x18903ff850a28136baeb515f0bf860ccfa66c9f7": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x059b4d", + "code": "0x", + "storage": {} }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de8d4faa", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "038-fork=Cancun-create2-49120_bytes-49120_bytes_CREATE2": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" + }, + "blocks": [ + { + "rlp": "0xf9c28cf9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c37ef60cca4b4630b63a426644d137433d3712ef6a28c7d1ff2d29a4d3e6cabfa07791174fb4f3c5c88e6665a2db00625f8c8a6b3387d3b73d35633ea2f59a8059a0752c0aa1f66d985b3604b814c38d8854ecb3a75b7696e6fffa35cc341271b9adb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830579238203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c045f9c042800a8398968094000000000000000000000000000000000000020080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0406a03d1571c1f3388717a9aa18c5196b97ce433a4727cf553489dd79744f11ca030bd0922fbcd7d33be4a7f531c0c393057778046abf8ec94d2934b30e79c239fc0c0", + "blockHeader": { + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc37ef60cca4b4630b63a426644d137433d3712ef6a28c7d1ff2d29a4d3e6cabf", + "transactionsTrie": "0x7791174fb4f3c5c88e6665a2db00625f8c8a6b3387d3b73d35633ea2f59a8059", + "receiptTrie": "0x752c0aa1f66d985b3604b814c38d8854ecb3a75b7696e6fffa35cc341271b9ad", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x057923", + "timestamp": "0x03e8", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x10ef19c6a8a311a7249b579148dd41a5f01a13b08caf2727dd88059a8ab01ea4" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x989680", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0x406a03d1571c1f3388717a9aa18c5196b97ce433a4727cf553489dd79744f11c", + "s": "0x30bd0922fbcd7d33be4a7f531c0c393057778046abf8ec94d2934b30e79c239f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x10ef19c6a8a311a7249b579148dd41a5f01a13b08caf2727dd88059a8ab01ea4", + "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -2392,6 +5355,18 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -2412,6 +5387,14 @@ "0x01": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x106b69", @@ -2433,21 +5416,45 @@ }, "sealEngine": "NoProof" }, - "019-fork=Shanghai-create2-49121_bytes-49121_bytes_CREATE2": { + "039-fork=Cancun-create2-49121_bytes-49121_bytes_CREATE2": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x0c59d03bcf99ced61741173143dcc1bf29beec23d106b8290c05aa4c8b072d41", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4" + }, "blocks": [ { - "rlp": "0xf9c26af9021ca01f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b6ecac53965288fbec252bbd71249e13bcf724658568051602943ffb9e0ff6f8a0b0586cd75cd4285805ba665e7bf17d59fd983222c1b9d70e81b63e5fd31f0c29a043abe9486549f4db8ec6622dfe9e8694120c9a89b4b3bb1ae324e1f04beb1ac9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830579478203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c046f9c043800a8398968094000000000000000000000000000000000000020080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0c3b1f50ced52175d0593179cf21e855cfb7261e633421f4754d1fa3b5950e539a016ac9f83e686cfc189776fc3d96fdea2cf265509fd7eaa495ffc04da8b60f32ec0c0", + "rlp": "0xf9c28df9023fa01d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa031a5e1f830faaaaed1be6ec66c4c550168864e0e0ba4d07e79bfc2fb374e4a32a0b0586cd75cd4285805ba665e7bf17d59fd983222c1b9d70e81b63e5fd31f0c29a043abe9486549f4db8ec6622dfe9e8694120c9a89b4b3bb1ae324e1f04beb1ac9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830579478203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c046f9c043800a8398968094000000000000000000000000000000000000020080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0c3b1f50ced52175d0593179cf21e855cfb7261e633421f4754d1fa3b5950e539a016ac9f83e686cfc189776fc3d96fdea2cf265509fd7eaa495ffc04da8b60f32ec0c0", "blockHeader": { - "parentHash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", + "parentHash": "0x1d555876c73a2c19242d1b541b40adad6ea7650ba2c20e659cf800fc1c39d9d4", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xb6ecac53965288fbec252bbd71249e13bcf724658568051602943ffb9e0ff6f8", + "stateRoot": "0x31a5e1f830faaaaed1be6ec66c4c550168864e0e0ba4d07e79bfc2fb374e4a32", "transactionsTrie": "0xb0586cd75cd4285805ba665e7bf17d59fd983222c1b9d70e81b63e5fd31f0c29", "receiptTrie": "0x43abe9486549f4db8ec6622dfe9e8694120c9a89b4b3bb1ae324e1f04beb1ac9", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2460,8 +5467,11 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x7f3c5d3ce3859ec3fdfa363f3c57ca885eb4401681ed941706e96185d755c03c", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x23d5eb9bb312671c743f5b8246ae97cea3696e6cce8553b70d87befbe408ca48" }, "transactions": [ { @@ -2469,48 +5479,22 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x989680", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x989680" + "v": "0x26", + "r": "0xc3b1f50ced52175d0593179cf21e855cfb7261e633421f4754d1fa3b5950e539", + "s": "0x16ac9f83e686cfc189776fc3d96fdea2cf265509fd7eaa495ffc04da8b60f32e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x7dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x1f3d67c10ea10a9bcdce947eaebadc6a6833b1e0207f5de316db3eee0aac78b4", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a07dd383c9efeaf08145d8bea720a2130213ce46b741cf922f16fecb06aa060221a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x7f3c5d3ce3859ec3fdfa363f3c57ca885eb4401681ed941706e96185d755c03c", - "network": "Shanghai", + "lastblockhash": "0x23d5eb9bb312671c743f5b8246ae97cea3696e6cce8553b70d87befbe408ca48", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x01", "balance": "0x00", @@ -2522,6 +5506,18 @@ "balance": "0x00", "code": "0x3660006000376001600060003660006000610100624c4b40f155", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -2542,6 +5538,14 @@ "0x01": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x03e8": "0x03e8" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x106bd5", diff --git a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json index 954a632ad17..285f6deed0c 100644 --- a/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json +++ b/tests/execution-spec-tests/shanghai/eip3860_initcode/initcode/gas_usage.json @@ -1,18 +1,12 @@ { "000-fork=Shanghai-too_little_intrinsic_gas-max_size_zeros-max_size_zeros_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9c270f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a8303db738080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a07a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721a040b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3c0c0", - "expectException": "intrinsic gas too low", - "blocknumber": "1" - } - ], + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30,12 +24,56 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "blocks": [ + { + "rlp": "0xf9c270f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a8303db738080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a07a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721a040b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03db73", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x7a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721", + "s": "0x40b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -56,18 +94,12 @@ }, "001-fork=Shanghai-too_little_intrinsic_gas-max_size_ones-max_size_ones_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9c270f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a830cdae38080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a02e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425fa00fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87cc0c0", - "expectException": "intrinsic gas too low", - "blocknumber": "1" - } - ], + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -85,12 +117,56 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "blocks": [ + { + "rlp": "0xf9c270f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a830cdae38080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a02e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425fa00fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87cc0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0cdae3", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x26", + "r": "0x2e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425f", + "s": "0x0fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -111,18 +187,12 @@ }, "002-fork=Shanghai-too_little_intrinsic_gas-empty-empty_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9026bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0780808025a00372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4fa04afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098c0c0", - "expectException": "intrinsic gas too low", - "blocknumber": "1" - } - ], + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -140,12 +210,56 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "blocks": [ + { + "rlp": "0xf9026bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0780808025a00372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4fa04afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf07", + "to": "", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x0372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4f", + "s": "0x4afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -166,18 +280,12 @@ }, "003-fork=Shanghai-too_little_intrinsic_gas-single_byte-single_byte_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9026bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0d80800025a082244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006a043f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3c0c0", - "expectException": "intrinsic gas too low", - "blocknumber": "1" - } - ], + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -195,12 +303,56 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "blocks": [ + { + "rlp": "0xf9026bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0d80800025a082244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006a043f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf0d", + "to": "", + "value": "0x00", + "data": "0x00", + "v": "0x25", + "r": "0x82244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006", + "s": "0x43f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -221,18 +373,12 @@ }, "004-fork=Shanghai-too_little_intrinsic_gas-32_bytes-32_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9028bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86df86b800a82cff58080a0610001600081600b8239f300000000000000000000000000000000000000000025a07dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8a01570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4afc0c0", - "expectException": "intrinsic gas too low", - "blocknumber": "1" - } - ], + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -250,12 +396,56 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "blocks": [ + { + "rlp": "0xf9028bf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86df86b800a82cff58080a0610001600081600b8239f300000000000000000000000000000000000000000025a07dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8a01570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4afc0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcff5", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0x7dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8", + "s": "0x1570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4af", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -276,18 +466,12 @@ }, "005-fork=Shanghai-too_little_intrinsic_gas-33_bytes-33_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9028cf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86ef86c800a82cffb8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a010f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781a03d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0c0c0", - "expectException": "intrinsic gas too low", - "blocknumber": "1" - } - ], + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -305,12 +489,56 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "blocks": [ + { + "rlp": "0xf9028cf90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86ef86c800a82cffb8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a010f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781a03d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcffb", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x10f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781", + "s": "0x3d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -331,18 +559,12 @@ }, "006-fork=Shanghai-too_little_intrinsic_gas-49120_bytes-49120_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9c250f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c031f9c02e800a8303daf18080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a03bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24a033ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbcc0c0", - "expectException": "intrinsic gas too low", - "blocknumber": "1" - } - ], + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -360,12 +582,56 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "blocks": [ + { + "rlp": "0xf9c250f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c031f9c02e800a8303daf18080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a03bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24a033ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbcc0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf1", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x3bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24", + "s": "0x33ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -386,18 +652,12 @@ }, "007-fork=Shanghai-too_little_intrinsic_gas-49121_bytes-49121_bytes_too_little_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { - "rlp": "0xf9c251f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c032f9c02f800a8303daf78080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0dadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0ca03c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742c0c0", - "expectException": "intrinsic gas too low", - "blocknumber": "1" - } - ], + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -415,12 +675,56 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "blocks": [ + { + "rlp": "0xf9c251f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c032f9c02f800a8303daf78080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0dadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0ca03c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x491311d7aa7813e6f18310a623255517cc0fa32d2415929e0f5e439c56074c29" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf7", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0xdadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0c", + "s": "0x3c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], "lastblockhash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -441,11 +745,32 @@ }, "008-fork=Shanghai-exact_intrinsic_gas-max_size_zeros-max_size_zeros_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c273f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0867f712d5ca0737861b1cb26e6c1914955e640f299180382fe4f05b6031a73e7a01169104559185d448ec9bc60e7714aa46ee068ff74c7b54a23351c384947268ba05f4c415ae56936421e7f5fd9aa6ea10ff5ca9e37f1cb0651eea3b9fbb544c4cfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303db740c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a8303db748080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a05880964f0c753d5f7ef82efe525190dd387372ae45606dbf0cc8a173468fee17a049449c623d2b061bd223f019008c4345665f7f24fb5a75e074dbccbc08829cf2c0c0", @@ -466,8 +791,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xda461b2bad5bc89b9846c8b48d38283eef9941e1da638ee3b0ef016645a4bd92", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xda461b2bad5bc89b9846c8b48d38283eef9941e1da638ee3b0ef016645a4bd92" }, "blocknumber": "1", "transactions": [ @@ -476,41 +801,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x03db74", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x03db74", - "to": "" + "v": "0x26", + "r": "0x5880964f0c753d5f7ef82efe525190dd387372ae45606dbf0cc8a173468fee17", + "s": "0x49449c623d2b061bd223f019008c4345665f7f24fb5a75e074dbccbc08829cf2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xda461b2bad5bc89b9846c8b48d38283eef9941e1da638ee3b0ef016645a4bd92", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -537,11 +842,32 @@ }, "009-fork=Shanghai-exact_intrinsic_gas-max_size_ones-max_size_ones_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c273f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0987081c1ada19671c682d72c1e762b8bf833d1ca64db7d1e5b63c42760dbf872a0fa7ea18daabcfa358d0aa8852f52b355306ac02a4b06c494aad3bf314f212816a0fc526fb664585777f263a147be0acf017497a199d8fcd568e748ab659fbd5616b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830cdae40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a830cdae48080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a0594853f9645d0eebeffdd580697fd120e99dd6d1d51ced5bb91c6d28784ee66da01776d13cf1925553135a8c735339ca52ad044141f6d15c3755dfc4a2597eff80c0c0", @@ -562,8 +888,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xe4833ec891ff37dbeeafa19ae521ebee3a6ddf0c5cedd080b6e1b721f84b4683", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xe4833ec891ff37dbeeafa19ae521ebee3a6ddf0c5cedd080b6e1b721f84b4683" }, "blocknumber": "1", "transactions": [ @@ -572,41 +898,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x0cdae4", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "gasLimit": "0x0cdae4", - "to": "" + "v": "0x25", + "r": "0x594853f9645d0eebeffdd580697fd120e99dd6d1d51ced5bb91c6d28784ee66d", + "s": "0x1776d13cf1925553135a8c735339ca52ad044141f6d15c3755dfc4a2597eff80", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xe4833ec891ff37dbeeafa19ae521ebee3a6ddf0c5cedd080b6e1b721f84b4683", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -633,11 +939,32 @@ }, "010-fork=Shanghai-exact_intrinsic_gas-empty-empty_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9026df90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06732c29ae2bd388c90436c4b4a56af04ab85c1cdffa2d3c9a776f50d33233e94a0dfcd58122744ef2d87d784183e9adb2b35904dba8c12ead04a83d03919fcf35ba065c4d1b533902562730f0d110bcce51643ce4725ca03d85c33d5812c0ed308bfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cf080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0880808026a093da0e096b13f6889a36880987f4cfb0fdfd4d14c48beab2c3efacdf52ecfef9a008b548262f4ac8d6830743898f193c1b4e28b8f83ca9603e023684ba8d581381c0c0", @@ -658,8 +985,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x3455b77954e440b55a171c5067ecd88b6bda9b3248f5adcbca6bb1986329fe8d", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x3455b77954e440b55a171c5067ecd88b6bda9b3248f5adcbca6bb1986329fe8d" }, "blocknumber": "1", "transactions": [ @@ -668,41 +995,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xcf08", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x", - "gasLimit": "0xcf08", - "to": "" + "v": "0x26", + "r": "0x93da0e096b13f6889a36880987f4cfb0fdfd4d14c48beab2c3efacdf52ecfef9", + "s": "0x08b548262f4ac8d6830743898f193c1b4e28b8f83ca9603e023684ba8d581381", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x3455b77954e440b55a171c5067ecd88b6bda9b3248f5adcbca6bb1986329fe8d", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -735,13 +1042,34 @@ }, "011-fork=Shanghai-exact_intrinsic_gas-single_byte-single_byte_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { "rlp": "0xf9026df90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00767b669a4d3bb6ff797d04a94298625d361b0ee3a21f7987a8bdef73b36a123a0f06f43d9657202fe65ed3eee389e1b04901b5c19c582215e13c5786ecc160cffa0d5ce4244be1c2a96fdf5dfa24730d467295f0751de8996885911ed0fae19d983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cf0e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0e80800026a0e207ed17886e3c97723c5adce84e7761740dde41793acb56542559ea9d506e52a06253c94f447263480622fed4a725ad82847bffdf06840ac97036ff1d6f76ec09c0c0", "blockHeader": { "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -760,8 +1088,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x4fccd26d4b911f8d389c42e5fe75a8b187081c2bb9ff20f140ac3c9539722847", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4fccd26d4b911f8d389c42e5fe75a8b187081c2bb9ff20f140ac3c9539722847" }, "blocknumber": "1", "transactions": [ @@ -770,41 +1098,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xcf0e", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x00", - "gasLimit": "0xcf0e", - "to": "" + "v": "0x26", + "r": "0xe207ed17886e3c97723c5adce84e7761740dde41793acb56542559ea9d506e52", + "s": "0x6253c94f447263480622fed4a725ad82847bffdf06840ac97036ff1d6f76ec09", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x4fccd26d4b911f8d389c42e5fe75a8b187081c2bb9ff20f140ac3c9539722847", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -837,11 +1145,32 @@ }, "012-fork=Shanghai-exact_intrinsic_gas-32_bytes-32_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9028df90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a984f9d395b5276732c825f95d8b31a3924074d16a352ef23366fb14d7e007e3a028eda3390def1964896164363ad356c91b4f522f1b88e820ceb872ebc44e1a1fa0a085ede337af77752cc632bbfaa3a462e57d95822115693ec520216e89a9d9ceb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cff60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86df86b800a82cff68080a0610001600081600b8239f300000000000000000000000000000000000000000026a0ac175c75ddb29002fd5a914510cddc332b04054bb3ab76c4d0574c6bc2f8bf73a03bb84e9e93d495adbcbb33bf7e9592d88b69d86b05b18b8b96df732ce19cdd66c0c0", @@ -862,8 +1191,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xe10118ea8cd2d49899ce9bf5a6b8666c2c6630d34f54a3d31da6d1b63e43af13", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xe10118ea8cd2d49899ce9bf5a6b8666c2c6630d34f54a3d31da6d1b63e43af13" }, "blocknumber": "1", "transactions": [ @@ -872,41 +1201,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xcff6", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", - "gasLimit": "0xcff6", - "to": "" + "v": "0x26", + "r": "0xac175c75ddb29002fd5a914510cddc332b04054bb3ab76c4d0574c6bc2f8bf73", + "s": "0x3bb84e9e93d495adbcbb33bf7e9592d88b69d86b05b18b8b96df732ce19cdd66", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xe10118ea8cd2d49899ce9bf5a6b8666c2c6630d34f54a3d31da6d1b63e43af13", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -933,11 +1242,32 @@ }, "013-fork=Shanghai-exact_intrinsic_gas-33_bytes-33_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9028ef90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0946cd6d0d127bad5e479fc9550b8179ea5df037ad0a221c1d5667a7a114361bba0ea6453e840cb2df94975777d06822589242c5603703444dadc5b68db455966dda0eb618104c393169290c6a9b867c291c09412cb2c5b5076d5b2c0d5dfb35c6977b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cffc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86ef86c800a82cffc8080a1610001600081600b8239f30000000000000000000000000000000000000000000025a0e7faec7d55dd768fd7ebb9776df2aa44931f80db25e7d09e725006899fe01127a002eeb320299bf3b1887df79375a35d57b030a8ee30e44c089cef317bdabf008fc0c0", @@ -958,8 +1288,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x53ea61fe81e3055bc115b7b823dafe722d85a2a86727277c4c150005cc58093c", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x53ea61fe81e3055bc115b7b823dafe722d85a2a86727277c4c150005cc58093c" }, "blocknumber": "1", "transactions": [ @@ -968,41 +1298,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xcffc", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", - "gasLimit": "0xcffc", - "to": "" + "v": "0x25", + "r": "0xe7faec7d55dd768fd7ebb9776df2aa44931f80db25e7d09e725006899fe01127", + "s": "0x02eeb320299bf3b1887df79375a35d57b030a8ee30e44c089cef317bdabf008f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x53ea61fe81e3055bc115b7b823dafe722d85a2a86727277c4c150005cc58093c", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1029,11 +1339,32 @@ }, "014-fork=Shanghai-exact_intrinsic_gas-49120_bytes-49120_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c253f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0167677da23f37a47b781482ebcf672a1245e5a35daf8084a33722feefc4a814ca0a4855ff501bd48bc1e063578dcdd0335f1d3024eb621e9cf0a28a4db6e695932a043125b1ca5882bff1d93db430ae1d11574c291d6af7fc301d43693ff47f58198b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303daf20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c031f9c02e800a8303daf28080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0724d71805ad3c46cee33010c9c3cf2d1375a62734656027e0124e4c5b828eacca054250f07e8723e0d4a110ebdf813243685d7fdf9ea9cc7fece5a3044e492c1aac0c0", @@ -1054,8 +1385,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x1a7cc951117202884b9f49454392493d8291195ff96318c2181a77868446f5f6", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1a7cc951117202884b9f49454392493d8291195ff96318c2181a77868446f5f6" }, "blocknumber": "1", "transactions": [ @@ -1064,41 +1395,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x03daf2", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x03daf2", - "to": "" + "v": "0x25", + "r": "0x724d71805ad3c46cee33010c9c3cf2d1375a62734656027e0124e4c5b828eacc", + "s": "0x54250f07e8723e0d4a110ebdf813243685d7fdf9ea9cc7fece5a3044e492c1aa", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x1a7cc951117202884b9f49454392493d8291195ff96318c2181a77868446f5f6", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1125,11 +1436,32 @@ }, "015-fork=Shanghai-exact_intrinsic_gas-49121_bytes-49121_bytes_exact_intrinsic_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c254f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0aba904faea90f9831681b745d97d3411046aacd8711c0af90ef47e1b5a53ed00a088c9b78543cebfaf9b43683c75dc03a481469964bb321b1926adc6a63c554f43a062e7c8ccd924651bf45065fceb4b20c882110256436fafb285d4ac7c178756f0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303daf80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c032f9c02f800a8303daf88080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a090c8fec7cae81dd703953cff23a17cd1b465e711d84f08085f8e015d22c39d13a05c8e70fb55f5c4896d40bc2a1f4191b47265feabaf1786967f69212b73a9b417c0c0", @@ -1150,8 +1482,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xf10af8852f02c3b74119ad786027fcaa072a116fcb4ebd7caa48c0b4f81758f9", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xf10af8852f02c3b74119ad786027fcaa072a116fcb4ebd7caa48c0b4f81758f9" }, "blocknumber": "1", "transactions": [ @@ -1160,41 +1492,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x03daf8", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x03daf8", - "to": "" + "v": "0x26", + "r": "0x90c8fec7cae81dd703953cff23a17cd1b465e711d84f08085f8e015d22c39d13", + "s": "0x5c8e70fb55f5c4896d40bc2a1f4191b47265feabaf1786967f69212b73a9b417", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xf10af8852f02c3b74119ad786027fcaa072a116fcb4ebd7caa48c0b4f81758f9", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1221,11 +1533,32 @@ }, "016-fork=Shanghai-too_little_execution_gas-max_size_zeros-max_size_zeros_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c273f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bc5bc1e365df7605bf263f9e1e3a6ca8becadbae9a400e6e1f53addb49083abba052581494a3b348882c143e8956fae790ca55cf2ea8cc3e5c8c745ae0fdf5060aa09156f026ff9eef6f12b588e6dc9e77770ba48b3cb0c0c1f32215d8de54ebf40ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dc530c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a8303dc538080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a07830068eb64c7e4e217c08170f32e18ab881c5c96b9ae63df88d61871440be75a0423c7263dd29ad8170c411d066df9269845d8e0454e7a8949779da29f177f58cc0c0", @@ -1246,8 +1579,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xa6569429def8f7a0d1ae246e85b3831c10279433dbc338989648b04a961543e5", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa6569429def8f7a0d1ae246e85b3831c10279433dbc338989648b04a961543e5" }, "blocknumber": "1", "transactions": [ @@ -1256,41 +1589,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x03dc53", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x03dc53", - "to": "" + "v": "0x25", + "r": "0x7830068eb64c7e4e217c08170f32e18ab881c5c96b9ae63df88d61871440be75", + "s": "0x423c7263dd29ad8170c411d066df9269845d8e0454e7a8949779da29f177f58c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xa6569429def8f7a0d1ae246e85b3831c10279433dbc338989648b04a961543e5", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1317,13 +1630,34 @@ }, "017-fork=Shanghai-too_little_execution_gas-max_size_ones-max_size_ones_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { "rlp": "0xf9c273f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d8cface5fce250fa044e69db02072c41cb317f4886295842c6286620fe70eaba04329f776e457bcaf7d5fd3732711b1da7da93a0c7ab0ae6a65f70003cea1774ea074200b9b62da0f7c790b47cdd36f042d2e3c86babd4711f187a1177e24afce8fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830cdbc30c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a830cdbc38080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a053f9ca27c49ccafb408c2a5a6996c6e5d42f83332a0d704ffe165b0d1c58ffeca026ec1be89fae2d251bfa3d9d37f96abd222d70f823ff3cb52b25974ed3e4dfeec0c0", "blockHeader": { "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -1342,8 +1676,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xc4fdd1c4258b7ed891ab9dcf7e1f68675c9166895f13e8f5f711eea1582ceaf5", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xc4fdd1c4258b7ed891ab9dcf7e1f68675c9166895f13e8f5f711eea1582ceaf5" }, "blocknumber": "1", "transactions": [ @@ -1352,41 +1686,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x0cdbc3", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "gasLimit": "0x0cdbc3", - "to": "" + "v": "0x26", + "r": "0x53f9ca27c49ccafb408c2a5a6996c6e5d42f83332a0d704ffe165b0d1c58ffec", + "s": "0x26ec1be89fae2d251bfa3d9d37f96abd222d70f823ff3cb52b25974ed3e4dfee", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xc4fdd1c4258b7ed891ab9dcf7e1f68675c9166895f13e8f5f711eea1582ceaf5", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1413,11 +1727,32 @@ }, "018-fork=Shanghai-too_little_execution_gas-32_bytes-32_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9028df90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06f61ef9d1984e78d50b283bdb292f4ec27e3e886c71539834eddc29fcaaca16aa079f437d3958c00e04b491fab9da655fd06d4ed7556493a0f73ef892b6994f46da0dcda0490cfe40ce76be6d08a866c7b0b3b2cfbda7e950ef2f55d3faf090e18aab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d0d50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86df86b800a82d0d58080a0610001600081600b8239f300000000000000000000000000000000000000000025a0b670a30b91b342e014cfa587bb7e60142c703e9a5836ef426148e0df836022f7a01e710a00d55661030bdba901132ce245f2e76a3dc99520ed1d37f2101b94ded6c0c0", @@ -1438,8 +1773,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x1c53c0d51b2ffafbccf5e8bb35da36bd3ee9838fe4ed1d3b62e6335d60d0453a", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x1c53c0d51b2ffafbccf5e8bb35da36bd3ee9838fe4ed1d3b62e6335d60d0453a" }, "blocknumber": "1", "transactions": [ @@ -1448,41 +1783,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xd0d5", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", - "gasLimit": "0xd0d5", - "to": "" + "v": "0x25", + "r": "0xb670a30b91b342e014cfa587bb7e60142c703e9a5836ef426148e0df836022f7", + "s": "0x1e710a00d55661030bdba901132ce245f2e76a3dc99520ed1d37f2101b94ded6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x1c53c0d51b2ffafbccf5e8bb35da36bd3ee9838fe4ed1d3b62e6335d60d0453a", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1509,11 +1824,32 @@ }, "019-fork=Shanghai-too_little_execution_gas-33_bytes-33_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9028ef90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cb0c002db77a8957f75a1d24b94d73bd8b8d86bbd5450ad60fd469993efc5867a061ba103807c900d3ed1e15a4869acc7c1c1ef0edaee474ca9e43bad49c1dadaaa056e08e7a6a7ccf4f2f2163f4d7daf0d748bde77b80c9a0a0d3e684dc618f31fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d0db0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86ef86c800a82d0db8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a022b6272bc4dfe55ce397c1cab0c2a27e7ea390d48acaa070c43e2d765140e1dfa07b4c101fe11664e17765acfbdf5943ff18baf0016b016c9cc7c7e7de5e62d9a3c0c0", @@ -1534,8 +1870,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xc52340ecc22a1f35f69fc227f8e5825bbc1c6497d41d319865e1bcad8e8719b6", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xc52340ecc22a1f35f69fc227f8e5825bbc1c6497d41d319865e1bcad8e8719b6" }, "blocknumber": "1", "transactions": [ @@ -1544,41 +1880,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xd0db", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", - "gasLimit": "0xd0db", - "to": "" + "v": "0x26", + "r": "0x22b6272bc4dfe55ce397c1cab0c2a27e7ea390d48acaa070c43e2d765140e1df", + "s": "0x7b4c101fe11664e17765acfbdf5943ff18baf0016b016c9cc7c7e7de5e62d9a3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xc52340ecc22a1f35f69fc227f8e5825bbc1c6497d41d319865e1bcad8e8719b6", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1605,11 +1921,32 @@ }, "020-fork=Shanghai-too_little_execution_gas-49120_bytes-49120_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c253f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04fec2a7c38cfa5fa6704b736f87395c5a29186555547ecc03820496f858e0f65a08a443da3e5b3988f130162963ce8dbedc0e3e27b1cfff76ca9b5971ac36a95eaa01fb2faa21d22a1deffc65121b9873f6868101465a956eb47d2b3eebc78417787b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dbd10c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c031f9c02e800a8303dbd18080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a07be2f3b1d10d379e38d879a4fe7823acb7a8ed9f9d114808ee1c02996eef2b2ea015b0e64b2f57f822a1af517d876efd4a96954e3a4a6e74cacada880e5c5451edc0c0", @@ -1630,8 +1967,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xa739b5768cb17e0444e19e9d7eb5e9b364be8f27a53955d310588d1963e84f56", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa739b5768cb17e0444e19e9d7eb5e9b364be8f27a53955d310588d1963e84f56" }, "blocknumber": "1", "transactions": [ @@ -1640,41 +1977,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x03dbd1", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x03dbd1", - "to": "" + "v": "0x26", + "r": "0x7be2f3b1d10d379e38d879a4fe7823acb7a8ed9f9d114808ee1c02996eef2b2e", + "s": "0x15b0e64b2f57f822a1af517d876efd4a96954e3a4a6e74cacada880e5c5451ed", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xa739b5768cb17e0444e19e9d7eb5e9b364be8f27a53955d310588d1963e84f56", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1701,11 +2018,32 @@ }, "021-fork=Shanghai-too_little_execution_gas-49121_bytes-49121_bytes_too_little_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c254f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0503d04150832af4cf73c91783c8a00252c87fccc278bc4b3a38f57bce74b2d40a07bdc8ac20e7c7d7c58be9fec7e2016fccf50feed93c574d0e4fc9b5c561fdd4ba0bea0a684af9631e42c7e660ca236d75eb56c416a52fb09f78d2288d9bfe94918b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dbd70c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c032f9c02f800a8303dbd78080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0599451b46eff96c956fe4ce7d16b6030de373a45803dea32e83ae2e1ad17337ca03691fa0e0a40cac38c3807ffbd1ef7cee9bcd42840a3109e524829d4079f0210c0c0", @@ -1726,8 +2064,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x75e7b1c1b6a08f4549986a760323e2a859770331be199f2a1e3d63b821d1b635", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x75e7b1c1b6a08f4549986a760323e2a859770331be199f2a1e3d63b821d1b635" }, "blocknumber": "1", "transactions": [ @@ -1736,41 +2074,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x03dbd7", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x03dbd7", - "to": "" + "v": "0x25", + "r": "0x599451b46eff96c956fe4ce7d16b6030de373a45803dea32e83ae2e1ad17337c", + "s": "0x3691fa0e0a40cac38c3807ffbd1ef7cee9bcd42840a3109e524829d4079f0210", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x75e7b1c1b6a08f4549986a760323e2a859770331be199f2a1e3d63b821d1b635", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1797,11 +2115,32 @@ }, "022-fork=Shanghai-exact_execution_gas-max_size_zeros-max_size_zeros_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c273f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0730b5921e1c6baafedb36baf0cd7c5dfb811971946423743f5de14c14b98e9aba03d84dff149104ab098db5f286be52de3084c263d24cfafb548593be10a0ab86da04ac53b3b08d02f5262920308ee15772a892169fa31ae5320bdf29bbddeee653eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dc540c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a8303dc548080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0b2ad2aea30c189a8b76547a430ad4fcea20d4872d31c1f00160040a76943f826a0638523091a090f96c402c768dbaaa2e8e77628565e855332fd442688bc75043dc0c0", @@ -1822,8 +2161,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xb9ceeb7df393dff59faef3adb911e7ea5c0af9f666869ede9cb306b0f85cd888", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb9ceeb7df393dff59faef3adb911e7ea5c0af9f666869ede9cb306b0f85cd888" }, "blocknumber": "1", "transactions": [ @@ -1832,41 +2171,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x03dc54", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x03dc54", - "to": "" + "v": "0x26", + "r": "0xb2ad2aea30c189a8b76547a430ad4fcea20d4872d31c1f00160040a76943f826", + "s": "0x638523091a090f96c402c768dbaaa2e8e77628565e855332fd442688bc75043d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xb9ceeb7df393dff59faef3adb911e7ea5c0af9f666869ede9cb306b0f85cd888", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -1899,13 +2218,34 @@ }, "023-fork=Shanghai-exact_execution_gas-max_size_ones-max_size_ones_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { "rlp": "0xf9c273f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03a4bdee58e15bc72c9695c6f9fd4bb89dcf1d8caf3ea2296bf86c8949378cc4fa0950dba678be86b57bd552aac0314fa055439d7fae1520261fe5c3adb60ee8641a052366db35269fb28271cd4079753efcebd014f4cd94475f4fceb598db2c0b97ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830cdbc40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c051f9c04e800a830cdbc48080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a076d4e3cdf2e03e61f7011cd7adfd9bd14bc1d0e9530f3b2d0574b8506f69f144a04ccab809aaa9856a6d53f3a580bb1747d9cff29ece03dbc831a1ea21767d4595c0c0", "blockHeader": { "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -1924,8 +2264,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xab1277c9c76bc9b6895eae6f0efce728838462c60e8b2ef9f792fa880aa291bc", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xab1277c9c76bc9b6895eae6f0efce728838462c60e8b2ef9f792fa880aa291bc" }, "blocknumber": "1", "transactions": [ @@ -1934,41 +2274,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x0cdbc4", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", - "gasLimit": "0x0cdbc4", - "to": "" + "v": "0x25", + "r": "0x76d4e3cdf2e03e61f7011cd7adfd9bd14bc1d0e9530f3b2d0574b8506f69f144", + "s": "0x4ccab809aaa9856a6d53f3a580bb1747d9cff29ece03dbc831a1ea21767d4595", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xab1277c9c76bc9b6895eae6f0efce728838462c60e8b2ef9f792fa880aa291bc", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -2001,11 +2321,32 @@ }, "024-fork=Shanghai-exact_execution_gas-empty-empty_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9026df90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06732c29ae2bd388c90436c4b4a56af04ab85c1cdffa2d3c9a776f50d33233e94a0dfcd58122744ef2d87d784183e9adb2b35904dba8c12ead04a83d03919fcf35ba065c4d1b533902562730f0d110bcce51643ce4725ca03d85c33d5812c0ed308bfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cf080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0880808026a093da0e096b13f6889a36880987f4cfb0fdfd4d14c48beab2c3efacdf52ecfef9a008b548262f4ac8d6830743898f193c1b4e28b8f83ca9603e023684ba8d581381c0c0", @@ -2026,8 +2367,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x3455b77954e440b55a171c5067ecd88b6bda9b3248f5adcbca6bb1986329fe8d", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x3455b77954e440b55a171c5067ecd88b6bda9b3248f5adcbca6bb1986329fe8d" }, "blocknumber": "1", "transactions": [ @@ -2036,41 +2377,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xcf08", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x", - "gasLimit": "0xcf08", - "to": "" + "v": "0x26", + "r": "0x93da0e096b13f6889a36880987f4cfb0fdfd4d14c48beab2c3efacdf52ecfef9", + "s": "0x08b548262f4ac8d6830743898f193c1b4e28b8f83ca9603e023684ba8d581381", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x3455b77954e440b55a171c5067ecd88b6bda9b3248f5adcbca6bb1986329fe8d", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -2103,11 +2424,32 @@ }, "025-fork=Shanghai-exact_execution_gas-single_byte-single_byte_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9026df90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00767b669a4d3bb6ff797d04a94298625d361b0ee3a21f7987a8bdef73b36a123a0f06f43d9657202fe65ed3eee389e1b04901b5c19c582215e13c5786ecc160cffa0d5ce4244be1c2a96fdf5dfa24730d467295f0751de8996885911ed0fae19d983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cf0e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f84df84b800a82cf0e80800026a0e207ed17886e3c97723c5adce84e7761740dde41793acb56542559ea9d506e52a06253c94f447263480622fed4a725ad82847bffdf06840ac97036ff1d6f76ec09c0c0", @@ -2128,8 +2470,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x4fccd26d4b911f8d389c42e5fe75a8b187081c2bb9ff20f140ac3c9539722847", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4fccd26d4b911f8d389c42e5fe75a8b187081c2bb9ff20f140ac3c9539722847" }, "blocknumber": "1", "transactions": [ @@ -2138,41 +2480,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xcf0e", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x00", - "gasLimit": "0xcf0e", - "to": "" + "v": "0x26", + "r": "0xe207ed17886e3c97723c5adce84e7761740dde41793acb56542559ea9d506e52", + "s": "0x6253c94f447263480622fed4a725ad82847bffdf06840ac97036ff1d6f76ec09", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x4fccd26d4b911f8d389c42e5fe75a8b187081c2bb9ff20f140ac3c9539722847", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -2205,11 +2527,32 @@ }, "026-fork=Shanghai-exact_execution_gas-32_bytes-32_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9028df90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03bdbc065bc2eff3cfbe5c79853c5a129972563a921aadc15a647a48c3e07d872a015e50c98ddba357378e223eb58c6d3ccc79aacc4898a867f6021b0f425e166f7a008889f1b1de7a78a4a79e1af77d75bc22a0b2f8571c0fabdf9e54ea2cc54612db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d0d60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86df86b800a82d0d68080a0610001600081600b8239f300000000000000000000000000000000000000000026a0fc4be100591165da16d05a0ff5ae4a2a4edc04468c721a9b88f377651d0cc90ea01a55b827b0b61ecb8746e1a5c384d8646b283245d4fc63331b5f6d80b66821f8c0c0", @@ -2230,8 +2573,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x68107838a0c593ebd4dcec792ccd2ca1a4db05aa42144384c4b2f0f2f0c990ef", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x68107838a0c593ebd4dcec792ccd2ca1a4db05aa42144384c4b2f0f2f0c990ef" }, "blocknumber": "1", "transactions": [ @@ -2240,41 +2583,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xd0d6", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", - "gasLimit": "0xd0d6", - "to": "" + "v": "0x26", + "r": "0xfc4be100591165da16d05a0ff5ae4a2a4edc04468c721a9b88f377651d0cc90e", + "s": "0x1a55b827b0b61ecb8746e1a5c384d8646b283245d4fc63331b5f6d80b66821f8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x68107838a0c593ebd4dcec792ccd2ca1a4db05aa42144384c4b2f0f2f0c990ef", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -2307,11 +2630,32 @@ }, "027-fork=Shanghai-exact_execution_gas-33_bytes-33_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9028ef90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e217c846cd9de9c44d28ba294a27f88f546fbf4fc9b82de597feaf00610f69dfa030612f0c5b39402d44c6de9a2d31559c5de1a50abd6b73fb1af73c9ce8df6ed1a0e8bd336ba08054fa93937979e829cf794602a3ea9c0b84d8d159794083fe6e8db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d0dc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f86ef86c800a82d0dc8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a00d713219df4800d4b7add508f52b224688cc0e8c804578d8496773af87c756d7a07668a990423258d782b9faa74048847dca02be10ca35826e67ae05e04cca1435c0c0", @@ -2332,8 +2676,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x94f8b84f3625de94ea27e5f5a8de7c717bfeb1fe7498711e3a33cf29f06ac338", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x94f8b84f3625de94ea27e5f5a8de7c717bfeb1fe7498711e3a33cf29f06ac338" }, "blocknumber": "1", "transactions": [ @@ -2342,41 +2686,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0xd0dc", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", - "gasLimit": "0xd0dc", - "to": "" + "v": "0x26", + "r": "0x0d713219df4800d4b7add508f52b224688cc0e8c804578d8496773af87c756d7", + "s": "0x7668a990423258d782b9faa74048847dca02be10ca35826e67ae05e04cca1435", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x94f8b84f3625de94ea27e5f5a8de7c717bfeb1fe7498711e3a33cf29f06ac338", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -2409,11 +2733,32 @@ }, "028-fork=Shanghai-exact_execution_gas-49120_bytes-49120_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf9c253f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa033b4e828055cd746318a1f1509ce9459373c773a363fb28b566f1819971d954ca0e26daab3cf7dc84cac6d0feb2aa5fcdc8fda2b42b9244ac25c80f84a41777e45a0e8b038ffe3279f771c7ccc9cc32fe846d878b81fcb4c4752e2d8d28f9b45a1b1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dbd20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c031f9c02e800a8303dbd28080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a04db160f43cc7c548e7ce2739068e00dd0c00fca7dc019ab73ac81e17234ad35aa04ecba0f7d10e6c84f279fef899ffa44245a44a43ea5304b4951ce7635fa827f2c0c0", @@ -2434,8 +2779,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x67557373952f6c0157280b5d6f4d5a540db2c91f8dd18a9e878c4067c0af1419", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x67557373952f6c0157280b5d6f4d5a540db2c91f8dd18a9e878c4067c0af1419" }, "blocknumber": "1", "transactions": [ @@ -2444,41 +2789,21 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x03dbd2", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x03dbd2", - "to": "" + "v": "0x26", + "r": "0x4db160f43cc7c548e7ce2739068e00dd0c00fca7dc019ab73ac81e17234ad35a", + "s": "0x4ecba0f7d10e6c84f279fef899ffa44245a44a43ea5304b4951ce7635fa827f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x67557373952f6c0157280b5d6f4d5a540db2c91f8dd18a9e878c4067c0af1419", - "network": "Shanghai", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -2511,13 +2836,34 @@ }, "029-fork=Shanghai-exact_execution_gas-49121_bytes-49121_bytes_exact_execution_gas": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" }, - "blocks": [ - { + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { "rlp": "0xf9c254f9021aa0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa092ef6a5d379aa7fd20e88f1df5d63b6240d25fa25ae78dba1f5bbe71787c6bd4a03433ade4bcb44bd9c960acdeb533d9e88eef9754d03bb015e0b2fdbe85f04ac8a061344f6614b2fbf4048ababd1164776cc052d9428a8d3d8f668db93e6c6512b7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dbd80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f9c032f9c02f800a8303dbd88080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0ea6f4054bf02b17733cdadecce0912e4acf8b99e39439c542b728f4de3fc8f44a0115dc39bbb17b16b7559992c939b62089fa8be15e424092e7210b0faa6d2781bc0c0", "blockHeader": { "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", @@ -2536,8 +2882,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xff32b446a7e24ca19c4d12ed9b4addb6b51d8abaab14d6b4b46312f0429f2d7e", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xff32b446a7e24ca19c4d12ed9b4addb6b51d8abaab14d6b4b46312f0429f2d7e" }, "blocknumber": "1", "transactions": [ @@ -2546,23 +2892,64 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", + "gasLimit": "0x03dbd8", + "to": "", "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x03dbd8", - "to": "" + "v": "0x25", + "r": "0xea6f4054bf02b17733cdadecce0912e4acf8b99e39439c542b728f4de3fc8f44", + "s": "0x115dc39bbb17b16b7559992c939b62089fa8be15e424092e7210b0faa6d2781b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0xff32b446a7e24ca19c4d12ed9b4addb6b51d8abaab14d6b4b46312f0429f2d7e", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b9388", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de796990", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "030-fork=Cancun-too_little_intrinsic_gas-max_size_zeros-max_size_zeros_too_little_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2575,13 +2962,402 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xff32b446a7e24ca19c4d12ed9b4addb6b51d8abaab14d6b4b46312f0429f2d7e", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf9c293f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a8303db738080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a07a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721a040b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03db73", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x7a12ad14630278748a00c21e70949f53181651993e421cbb42af34f5dfc05721", + "s": "0x40b4dc45012128c5ef6fe1089d62077a02a2c5e61e26a2f135254bc63e9299e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "031-fork=Cancun-too_little_intrinsic_gas-max_size_ones-max_size_ones_too_little_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c293f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a830cdae38080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a02e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425fa00fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87cc0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0cdae3", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x26", + "r": "0x2e78f86fbae31c01889516a4d1f7f28cc63df394ecc478e8a648b5e47028425f", + "s": "0x0fda47a674b50ebb29d0a6cf09c691ed8e70beebc95ea0673dcf2bee3928b87c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "032-fork=Cancun-too_little_intrinsic_gas-empty-empty_too_little_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9028ef9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0780808025a00372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4fa04afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf07", + "to": "", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x0372ba5e45d0a0e636f7e32ffca16f97a2f3e4e930b6584b7b114ab3aa191b4f", + "s": "0x4afdfcd2bc179e25c7aa74cb991a08f0ae6c01541a36f700be25c6f4c39bc098", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "033-fork=Cancun-too_little_intrinsic_gas-single_byte-single_byte_too_little_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9028ef9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0d80800025a082244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006a043f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf0d", + "to": "", + "value": "0x00", + "data": "0x00", + "v": "0x25", + "r": "0x82244b29c33f38cc89873fc90d5d4464ba0c1120fa7b666d68dd6ba855c71006", + "s": "0x43f9021be8aa3a95d60b888d91caf5ef3400992f45caec6e990db3a01cb985e3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -2590,6 +3366,3078 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "034-fork=Cancun-too_little_intrinsic_gas-32_bytes-32_bytes_too_little_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf902aef9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86df86b800a82cff58080a0610001600081600b8239f300000000000000000000000000000000000000000025a07dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8a01570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4afc0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcff5", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0x7dae455766b7111996f88d8beebade630397f76dcf61244a0a34bc1765f567a8", + "s": "0x1570635581d43b7e5070f0e76ccb8368612b0831d78cd124ac886f4203abe4af", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "035-fork=Cancun-too_little_intrinsic_gas-33_bytes-33_bytes_too_little_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf902aff9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86ef86c800a82cffb8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a010f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781a03d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcffb", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x10f3533be24d3feaf9ccbb3efa340636d081d900bdf314a4db35e3e5189fe781", + "s": "0x3d9ea618e5b4edd41f503e20264feef4420d3a0c7e731046fab9e1f85d2c15a0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "036-fork=Cancun-too_little_intrinsic_gas-49120_bytes-49120_bytes_too_little_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c273f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c031f9c02e800a8303daf18080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a03bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24a033ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbcc0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf1", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x3bedf910a8ed4657737f9a44ec70b3fe204b62c6fb0f9a6987bf20a86add0c24", + "s": "0x33ce8e62ec42e5474ecdb6491c2774cb41107ff713a7889eb8fa91689ecbdcbc", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "037-fork=Cancun-too_little_intrinsic_gas-49121_bytes-49121_bytes_too_little_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c274f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c032f9c02f800a8303daf78080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0dadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0ca03c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742c0c0", + "expectException": "intrinsic gas too low", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x22aab18e59439568ed0e4b0fdc155c94d763a101236be988d4cec31fdbedc359" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf7", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0xdadbbb823c5f563f9764ec9b38285e63dd03bca4922496cfdcc3e803cf730b0c", + "s": "0x3c48dc30f97c18f7e24c442144568fd2def2611a18aca47334d8934d44bf7742", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + } + ], + "lastblockhash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "038-fork=Cancun-exact_intrinsic_gas-max_size_zeros-max_size_zeros_exact_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c296f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06a0262f2471aeeb571557b652137358570fccd035b48210f760b482e1040e79ca01169104559185d448ec9bc60e7714aa46ee068ff74c7b54a23351c384947268ba05f4c415ae56936421e7f5fd9aa6ea10ff5ca9e37f1cb0651eea3b9fbb544c4cfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303db740c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a8303db748080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a05880964f0c753d5f7ef82efe525190dd387372ae45606dbf0cc8a173468fee17a049449c623d2b061bd223f019008c4345665f7f24fb5a75e074dbccbc08829cf2c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6a0262f2471aeeb571557b652137358570fccd035b48210f760b482e1040e79c", + "transactionsTrie": "0x1169104559185d448ec9bc60e7714aa46ee068ff74c7b54a23351c384947268b", + "receiptTrie": "0x5f4c415ae56936421e7f5fd9aa6ea10ff5ca9e37f1cb0651eea3b9fbb544c4cf", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03db74", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x57b2aef8db95614e0644ca039462fcf4e2eaf41811b58edc86ffb30e12cf79b4" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03db74", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x5880964f0c753d5f7ef82efe525190dd387372ae45606dbf0cc8a173468fee17", + "s": "0x49449c623d2b061bd223f019008c4345665f7f24fb5a75e074dbccbc08829cf2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x57b2aef8db95614e0644ca039462fcf4e2eaf41811b58edc86ffb30e12cf79b4", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b925c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de796d78", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "039-fork=Cancun-exact_intrinsic_gas-max_size_ones-max_size_ones_exact_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c296f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02b330cf83b57ce905bde7f7e5069587c40dcbb1dccaa92b431e1c35cd8ecfa78a0fa7ea18daabcfa358d0aa8852f52b355306ac02a4b06c494aad3bf314f212816a0fc526fb664585777f263a147be0acf017497a199d8fcd568e748ab659fbd5616b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830cdae40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a830cdae48080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a0594853f9645d0eebeffdd580697fd120e99dd6d1d51ced5bb91c6d28784ee66da01776d13cf1925553135a8c735339ca52ad044141f6d15c3755dfc4a2597eff80c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2b330cf83b57ce905bde7f7e5069587c40dcbb1dccaa92b431e1c35cd8ecfa78", + "transactionsTrie": "0xfa7ea18daabcfa358d0aa8852f52b355306ac02a4b06c494aad3bf314f212816", + "receiptTrie": "0xfc526fb664585777f263a147be0acf017497a199d8fcd568e748ab659fbd5616", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0cdae4", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6a628b3cd9022ba6199df8edb4a6e66ecdd0837c88a8a1718e58f382c7ff3df5" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0cdae4", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0x594853f9645d0eebeffdd580697fd120e99dd6d1d51ced5bb91c6d28784ee66d", + "s": "0x1776d13cf1925553135a8c735339ca52ad044141f6d15c3755dfc4a2597eff80", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6a628b3cd9022ba6199df8edb4a6e66ecdd0837c88a8a1718e58f382c7ff3df5", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x2690ac", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de1f7318", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "040-fork=Cancun-exact_intrinsic_gas-empty-empty_exact_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90290f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013e977243b5ea0b90b2bec0b29635ca5052232f7411a512fb31722b24ace61e5a0dfcd58122744ef2d87d784183e9adb2b35904dba8c12ead04a83d03919fcf35ba065c4d1b533902562730f0d110bcce51643ce4725ca03d85c33d5812c0ed308bfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cf080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0880808026a093da0e096b13f6889a36880987f4cfb0fdfd4d14c48beab2c3efacdf52ecfef9a008b548262f4ac8d6830743898f193c1b4e28b8f83ca9603e023684ba8d581381c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x13e977243b5ea0b90b2bec0b29635ca5052232f7411a512fb31722b24ace61e5", + "transactionsTrie": "0xdfcd58122744ef2d87d784183e9adb2b35904dba8c12ead04a83d03919fcf35b", + "receiptTrie": "0x65c4d1b533902562730f0d110bcce51643ce4725ca03d85c33d5812c0ed308bf", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xcf08", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3156832bd592328b10a309747ed680a3a693caf3340a970ecbc68e07e25be0f4" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf08", + "to": "", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x93da0e096b13f6889a36880987f4cfb0fdfd4d14c48beab2c3efacdf52ecfef9", + "s": "0x08b548262f4ac8d6830743898f193c1b4e28b8f83ca9603e023684ba8d581381", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3156832bd592328b10a309747ed680a3a693caf3340a970ecbc68e07e25be0f4", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x026d18", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97e9b0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "041-fork=Cancun-exact_intrinsic_gas-single_byte-single_byte_exact_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90290f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03b03b51554c6bea58d51badaee18a78107d65356ba1eaf367e94b9cf885393d6a0f06f43d9657202fe65ed3eee389e1b04901b5c19c582215e13c5786ecc160cffa0d5ce4244be1c2a96fdf5dfa24730d467295f0751de8996885911ed0fae19d983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cf0e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0e80800026a0e207ed17886e3c97723c5adce84e7761740dde41793acb56542559ea9d506e52a06253c94f447263480622fed4a725ad82847bffdf06840ac97036ff1d6f76ec09c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3b03b51554c6bea58d51badaee18a78107d65356ba1eaf367e94b9cf885393d6", + "transactionsTrie": "0xf06f43d9657202fe65ed3eee389e1b04901b5c19c582215e13c5786ecc160cff", + "receiptTrie": "0xd5ce4244be1c2a96fdf5dfa24730d467295f0751de8996885911ed0fae19d983", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xcf0e", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6d1c9a6ab12b634f03c4347ef4e00647230c78f5eba7c403da5fa5932c5a9454" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf0e", + "to": "", + "value": "0x00", + "data": "0x00", + "v": "0x26", + "r": "0xe207ed17886e3c97723c5adce84e7761740dde41793acb56542559ea9d506e52", + "s": "0x6253c94f447263480622fed4a725ad82847bffdf06840ac97036ff1d6f76ec09", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6d1c9a6ab12b634f03c4347ef4e00647230c78f5eba7c403da5fa5932c5a9454", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x026d2a", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97e974", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "042-fork=Cancun-exact_intrinsic_gas-32_bytes-32_bytes_exact_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf902b0f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b4dc19bece59d48a7c971e61b30720786784a6fd0bd4550ec5021dae020270da028eda3390def1964896164363ad356c91b4f522f1b88e820ceb872ebc44e1a1fa0a085ede337af77752cc632bbfaa3a462e57d95822115693ec520216e89a9d9ceb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cff60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86df86b800a82cff68080a0610001600081600b8239f300000000000000000000000000000000000000000026a0ac175c75ddb29002fd5a914510cddc332b04054bb3ab76c4d0574c6bc2f8bf73a03bb84e9e93d495adbcbb33bf7e9592d88b69d86b05b18b8b96df732ce19cdd66c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6b4dc19bece59d48a7c971e61b30720786784a6fd0bd4550ec5021dae020270d", + "transactionsTrie": "0x28eda3390def1964896164363ad356c91b4f522f1b88e820ceb872ebc44e1a1f", + "receiptTrie": "0xa085ede337af77752cc632bbfaa3a462e57d95822115693ec520216e89a9d9ce", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xcff6", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2e78eee7c84256e1c03631453b86b5f2a1ef8f64499ebb78ce9cb04ea132d7c9" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcff6", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xac175c75ddb29002fd5a914510cddc332b04054bb3ab76c4d0574c6bc2f8bf73", + "s": "0x3bb84e9e93d495adbcbb33bf7e9592d88b69d86b05b18b8b96df732ce19cdd66", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2e78eee7c84256e1c03631453b86b5f2a1ef8f64499ebb78ce9cb04ea132d7c9", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x026fe2", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97e064", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "043-fork=Cancun-exact_intrinsic_gas-33_bytes-33_bytes_exact_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf902b1f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a5d99ac701bed984d8a502b79a7b48f5e9fe4c341c377a297e95200957106b98a0ea6453e840cb2df94975777d06822589242c5603703444dadc5b68db455966dda0eb618104c393169290c6a9b867c291c09412cb2c5b5076d5b2c0d5dfb35c6977b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cffc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86ef86c800a82cffc8080a1610001600081600b8239f30000000000000000000000000000000000000000000025a0e7faec7d55dd768fd7ebb9776df2aa44931f80db25e7d09e725006899fe01127a002eeb320299bf3b1887df79375a35d57b030a8ee30e44c089cef317bdabf008fc0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa5d99ac701bed984d8a502b79a7b48f5e9fe4c341c377a297e95200957106b98", + "transactionsTrie": "0xea6453e840cb2df94975777d06822589242c5603703444dadc5b68db455966dd", + "receiptTrie": "0xeb618104c393169290c6a9b867c291c09412cb2c5b5076d5b2c0d5dfb35c6977", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xcffc", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3c85efce6bcaeb259cbb737af5c8d29eb7b13f64e48f0e6ba8bbf16ede2756d8" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcffc", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0xe7faec7d55dd768fd7ebb9776df2aa44931f80db25e7d09e725006899fe01127", + "s": "0x02eeb320299bf3b1887df79375a35d57b030a8ee30e44c089cef317bdabf008f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3c85efce6bcaeb259cbb737af5c8d29eb7b13f64e48f0e6ba8bbf16ede2756d8", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x026ff4", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97e028", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "044-fork=Cancun-exact_intrinsic_gas-49120_bytes-49120_bytes_exact_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c276f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a541790f24be39e544c0ce115f48917b1c81be85cfdf4bcd6e9193e3ba98ea7ea0a4855ff501bd48bc1e063578dcdd0335f1d3024eb621e9cf0a28a4db6e695932a043125b1ca5882bff1d93db430ae1d11574c291d6af7fc301d43693ff47f58198b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303daf20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c031f9c02e800a8303daf28080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0724d71805ad3c46cee33010c9c3cf2d1375a62734656027e0124e4c5b828eacca054250f07e8723e0d4a110ebdf813243685d7fdf9ea9cc7fece5a3044e492c1aac0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa541790f24be39e544c0ce115f48917b1c81be85cfdf4bcd6e9193e3ba98ea7e", + "transactionsTrie": "0xa4855ff501bd48bc1e063578dcdd0335f1d3024eb621e9cf0a28a4db6e695932", + "receiptTrie": "0x43125b1ca5882bff1d93db430ae1d11574c291d6af7fc301d43693ff47f58198", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03daf2", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5fa51c0bd83e3a192d227abe0fb1639ac03a77d1875de1695d71d7f66ebd2ee7" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf2", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0x724d71805ad3c46cee33010c9c3cf2d1375a62734656027e0124e4c5b828eacc", + "s": "0x54250f07e8723e0d4a110ebdf813243685d7fdf9ea9cc7fece5a3044e492c1aa", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5fa51c0bd83e3a192d227abe0fb1639ac03a77d1875de1695d71d7f66ebd2ee7", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b90d6", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de79728c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "045-fork=Cancun-exact_intrinsic_gas-49121_bytes-49121_bytes_exact_intrinsic_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c277f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08594cac1019039dd030c292324442fef4ee2e1cacaf745d29d51c6e31fb0d021a088c9b78543cebfaf9b43683c75dc03a481469964bb321b1926adc6a63c554f43a062e7c8ccd924651bf45065fceb4b20c882110256436fafb285d4ac7c178756f0b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303daf80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c032f9c02f800a8303daf88080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a090c8fec7cae81dd703953cff23a17cd1b465e711d84f08085f8e015d22c39d13a05c8e70fb55f5c4896d40bc2a1f4191b47265feabaf1786967f69212b73a9b417c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8594cac1019039dd030c292324442fef4ee2e1cacaf745d29d51c6e31fb0d021", + "transactionsTrie": "0x88c9b78543cebfaf9b43683c75dc03a481469964bb321b1926adc6a63c554f43", + "receiptTrie": "0x62e7c8ccd924651bf45065fceb4b20c882110256436fafb285d4ac7c178756f0", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03daf8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf5a0b09b46e189a90ed053c6890ae5aedf9b17d0ed204a3032634a68eb4b82ac" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03daf8", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x90c8fec7cae81dd703953cff23a17cd1b465e711d84f08085f8e015d22c39d13", + "s": "0x5c8e70fb55f5c4896d40bc2a1f4191b47265feabaf1786967f69212b73a9b417", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xf5a0b09b46e189a90ed053c6890ae5aedf9b17d0ed204a3032634a68eb4b82ac", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b90e8", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de797250", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "046-fork=Cancun-too_little_execution_gas-max_size_zeros-max_size_zeros_too_little_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c296f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0448f1b4d87347febfd30c9b5a8c31649b7b5e7a2569324af383c5d5413f69ae7a052581494a3b348882c143e8956fae790ca55cf2ea8cc3e5c8c745ae0fdf5060aa09156f026ff9eef6f12b588e6dc9e77770ba48b3cb0c0c1f32215d8de54ebf40ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dc530c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a8303dc538080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a07830068eb64c7e4e217c08170f32e18ab881c5c96b9ae63df88d61871440be75a0423c7263dd29ad8170c411d066df9269845d8e0454e7a8949779da29f177f58cc0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x448f1b4d87347febfd30c9b5a8c31649b7b5e7a2569324af383c5d5413f69ae7", + "transactionsTrie": "0x52581494a3b348882c143e8956fae790ca55cf2ea8cc3e5c8c745ae0fdf5060a", + "receiptTrie": "0x9156f026ff9eef6f12b588e6dc9e77770ba48b3cb0c0c1f32215d8de54ebf40a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03dc53", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0197599298dc5d5d6f9be4df2c4255b3b7c3973ce8110be71dbdccd62b3d1414" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03dc53", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0x7830068eb64c7e4e217c08170f32e18ab881c5c96b9ae63df88d61871440be75", + "s": "0x423c7263dd29ad8170c411d066df9269845d8e0454e7a8949779da29f177f58c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0197599298dc5d5d6f9be4df2c4255b3b7c3973ce8110be71dbdccd62b3d1414", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b94f9", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de7964c2", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "047-fork=Cancun-too_little_execution_gas-max_size_ones-max_size_ones_too_little_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c296f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bae7af62af39426947281831587c5b0108f261ff993315d268fc61eb127aba8ba04329f776e457bcaf7d5fd3732711b1da7da93a0c7ab0ae6a65f70003cea1774ea074200b9b62da0f7c790b47cdd36f042d2e3c86babd4711f187a1177e24afce8fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830cdbc30c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a830cdbc38080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010126a053f9ca27c49ccafb408c2a5a6996c6e5d42f83332a0d704ffe165b0d1c58ffeca026ec1be89fae2d251bfa3d9d37f96abd222d70f823ff3cb52b25974ed3e4dfeec0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbae7af62af39426947281831587c5b0108f261ff993315d268fc61eb127aba8b", + "transactionsTrie": "0x4329f776e457bcaf7d5fd3732711b1da7da93a0c7ab0ae6a65f70003cea1774e", + "receiptTrie": "0x74200b9b62da0f7c790b47cdd36f042d2e3c86babd4711f187a1177e24afce8f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0cdbc3", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0ae27307ef8b7ff9308452a1bfd65c9564434ad50aec5986e4da1e16a5c2fd67" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0cdbc3", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x26", + "r": "0x53f9ca27c49ccafb408c2a5a6996c6e5d42f83332a0d704ffe165b0d1c58ffec", + "s": "0x26ec1be89fae2d251bfa3d9d37f96abd222d70f823ff3cb52b25974ed3e4dfee", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0ae27307ef8b7ff9308452a1bfd65c9564434ad50aec5986e4da1e16a5c2fd67", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x269349", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de1f6a62", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "048-fork=Cancun-too_little_execution_gas-32_bytes-32_bytes_too_little_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf902b0f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07933a9fc547d1834f0ffc0214d556efb7349c8e129c0945b059301610907ac29a079f437d3958c00e04b491fab9da655fd06d4ed7556493a0f73ef892b6994f46da0dcda0490cfe40ce76be6d08a866c7b0b3b2cfbda7e950ef2f55d3faf090e18aab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d0d50c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86df86b800a82d0d58080a0610001600081600b8239f300000000000000000000000000000000000000000025a0b670a30b91b342e014cfa587bb7e60142c703e9a5836ef426148e0df836022f7a01e710a00d55661030bdba901132ce245f2e76a3dc99520ed1d37f2101b94ded6c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7933a9fc547d1834f0ffc0214d556efb7349c8e129c0945b059301610907ac29", + "transactionsTrie": "0x79f437d3958c00e04b491fab9da655fd06d4ed7556493a0f73ef892b6994f46d", + "receiptTrie": "0xdcda0490cfe40ce76be6d08a866c7b0b3b2cfbda7e950ef2f55d3faf090e18aa", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xd0d5", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3a42abb0896ca0c68b4fd72551c1ed6b47b6180b29ef92bc7e7cebc4402e88c0" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xd0d5", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0xb670a30b91b342e014cfa587bb7e60142c703e9a5836ef426148e0df836022f7", + "s": "0x1e710a00d55661030bdba901132ce245f2e76a3dc99520ed1d37f2101b94ded6", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3a42abb0896ca0c68b4fd72551c1ed6b47b6180b29ef92bc7e7cebc4402e88c0", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x02727f", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97d7ae", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "049-fork=Cancun-too_little_execution_gas-33_bytes-33_bytes_too_little_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf902b1f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08bb8c5b8072ab12394a1024c69271f2d4e9ef09171164a805b8dbfaa1882ce37a061ba103807c900d3ed1e15a4869acc7c1c1ef0edaee474ca9e43bad49c1dadaaa056e08e7a6a7ccf4f2f2163f4d7daf0d748bde77b80c9a0a0d3e684dc618f31fdb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d0db0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86ef86c800a82d0db8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a022b6272bc4dfe55ce397c1cab0c2a27e7ea390d48acaa070c43e2d765140e1dfa07b4c101fe11664e17765acfbdf5943ff18baf0016b016c9cc7c7e7de5e62d9a3c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8bb8c5b8072ab12394a1024c69271f2d4e9ef09171164a805b8dbfaa1882ce37", + "transactionsTrie": "0x61ba103807c900d3ed1e15a4869acc7c1c1ef0edaee474ca9e43bad49c1dadaa", + "receiptTrie": "0x56e08e7a6a7ccf4f2f2163f4d7daf0d748bde77b80c9a0a0d3e684dc618f31fd", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xd0db", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3725885790abca18385619de9854b32c493cd077ff31a2a5977acdba803eb265" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xd0db", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x22b6272bc4dfe55ce397c1cab0c2a27e7ea390d48acaa070c43e2d765140e1df", + "s": "0x7b4c101fe11664e17765acfbdf5943ff18baf0016b016c9cc7c7e7de5e62d9a3", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3725885790abca18385619de9854b32c493cd077ff31a2a5977acdba803eb265", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x027291", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97d772", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "050-fork=Cancun-too_little_execution_gas-49120_bytes-49120_bytes_too_little_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c276f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0210ffad21bda38f95991a8841dd753bcacc2555d237e6c510a022e58dafc420ba08a443da3e5b3988f130162963ce8dbedc0e3e27b1cfff76ca9b5971ac36a95eaa01fb2faa21d22a1deffc65121b9873f6868101465a956eb47d2b3eebc78417787b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dbd10c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c031f9c02e800a8303dbd18080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a07be2f3b1d10d379e38d879a4fe7823acb7a8ed9f9d114808ee1c02996eef2b2ea015b0e64b2f57f822a1af517d876efd4a96954e3a4a6e74cacada880e5c5451edc0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x210ffad21bda38f95991a8841dd753bcacc2555d237e6c510a022e58dafc420b", + "transactionsTrie": "0x8a443da3e5b3988f130162963ce8dbedc0e3e27b1cfff76ca9b5971ac36a95ea", + "receiptTrie": "0x1fb2faa21d22a1deffc65121b9873f6868101465a956eb47d2b3eebc78417787", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03dbd1", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa2f64044078cac0d4ee12c79ed1cba30f50bd64dd49c252a8c0e53464ea5c8d5" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03dbd1", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x7be2f3b1d10d379e38d879a4fe7823acb7a8ed9f9d114808ee1c02996eef2b2e", + "s": "0x15b0e64b2f57f822a1af517d876efd4a96954e3a4a6e74cacada880e5c5451ed", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa2f64044078cac0d4ee12c79ed1cba30f50bd64dd49c252a8c0e53464ea5c8d5", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b9373", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de7969d6", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "051-fork=Cancun-too_little_execution_gas-49121_bytes-49121_bytes_too_little_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c277f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c34d1944f40f5f82de35a1cecef08cdcdc55954984ca0fae5e56b21dd1ae2646a07bdc8ac20e7c7d7c58be9fec7e2016fccf50feed93c574d0e4fc9b5c561fdd4ba0bea0a684af9631e42c7e660ca236d75eb56c416a52fb09f78d2288d9bfe94918b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dbd70c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c032f9c02f800a8303dbd78080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0599451b46eff96c956fe4ce7d16b6030de373a45803dea32e83ae2e1ad17337ca03691fa0e0a40cac38c3807ffbd1ef7cee9bcd42840a3109e524829d4079f0210c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc34d1944f40f5f82de35a1cecef08cdcdc55954984ca0fae5e56b21dd1ae2646", + "transactionsTrie": "0x7bdc8ac20e7c7d7c58be9fec7e2016fccf50feed93c574d0e4fc9b5c561fdd4b", + "receiptTrie": "0xbea0a684af9631e42c7e660ca236d75eb56c416a52fb09f78d2288d9bfe94918", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03dbd7", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x090a76aaae5521ff0b476bc1d8caba8d9aa2c499f84462681382e80ba814b248" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03dbd7", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0x599451b46eff96c956fe4ce7d16b6030de373a45803dea32e83ae2e1ad17337c", + "s": "0x3691fa0e0a40cac38c3807ffbd1ef7cee9bcd42840a3109e524829d4079f0210", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x090a76aaae5521ff0b476bc1d8caba8d9aa2c499f84462681382e80ba814b248", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b9385", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de79699a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "052-fork=Cancun-exact_execution_gas-max_size_zeros-max_size_zeros_exact_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c296f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa00888c2b7ec9b76fae3552c963fcc2d56903a982bad54446733997d2c17166da7a03d84dff149104ab098db5f286be52de3084c263d24cfafb548593be10a0ab86da04ac53b3b08d02f5262920308ee15772a892169fa31ae5320bdf29bbddeee653eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dc540c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a8303dc548080b9c000610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a0b2ad2aea30c189a8b76547a430ad4fcea20d4872d31c1f00160040a76943f826a0638523091a090f96c402c768dbaaa2e8e77628565e855332fd442688bc75043dc0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x0888c2b7ec9b76fae3552c963fcc2d56903a982bad54446733997d2c17166da7", + "transactionsTrie": "0x3d84dff149104ab098db5f286be52de3084c263d24cfafb548593be10a0ab86d", + "receiptTrie": "0x4ac53b3b08d02f5262920308ee15772a892169fa31ae5320bdf29bbddeee653e", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03dc54", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8216d762e5b5bdd595033b043a8db8487ed5340ae3752498c62ce294d0048c16" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03dc54", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xb2ad2aea30c189a8b76547a430ad4fcea20d4872d31c1f00160040a76943f826", + "s": "0x638523091a090f96c402c768dbaaa2e8e77628565e855332fd442688bc75043d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8216d762e5b5bdd595033b043a8db8487ed5340ae3752498c62ce294d0048c16", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b94fc", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de7964b8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "053-fork=Cancun-exact_execution_gas-max_size_ones-max_size_ones_exact_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c296f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bb2a5dbe1ebd3bc25a66a12e1f0db9109a769cca8693b266783d70aeb508668ba0950dba678be86b57bd552aac0314fa055439d7fae1520261fe5c3adb60ee8641a052366db35269fb28271cd4079753efcebd014f4cd94475f4fceb598db2c0b97ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830cdbc40c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c051f9c04e800a830cdbc48080b9c000610001600081600b8239f30001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010125a076d4e3cdf2e03e61f7011cd7adfd9bd14bc1d0e9530f3b2d0574b8506f69f144a04ccab809aaa9856a6d53f3a580bb1747d9cff29ece03dbc831a1ea21767d4595c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbb2a5dbe1ebd3bc25a66a12e1f0db9109a769cca8693b266783d70aeb508668b", + "transactionsTrie": "0x950dba678be86b57bd552aac0314fa055439d7fae1520261fe5c3adb60ee8641", + "receiptTrie": "0x52366db35269fb28271cd4079753efcebd014f4cd94475f4fceb598db2c0b97a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0cdbc4", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6ac3d63b8d118500af8b684c9b3b5466be3fe5f2f3f7ae807306fcb8a4e10cc6" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0cdbc4", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101", + "v": "0x25", + "r": "0x76d4e3cdf2e03e61f7011cd7adfd9bd14bc1d0e9530f3b2d0574b8506f69f144", + "s": "0x4ccab809aaa9856a6d53f3a580bb1747d9cff29ece03dbc831a1ea21767d4595", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6ac3d63b8d118500af8b684c9b3b5466be3fe5f2f3f7ae807306fcb8a4e10cc6", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x26934c", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de1f6a58", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "054-fork=Cancun-exact_execution_gas-empty-empty_exact_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90290f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa013e977243b5ea0b90b2bec0b29635ca5052232f7411a512fb31722b24ace61e5a0dfcd58122744ef2d87d784183e9adb2b35904dba8c12ead04a83d03919fcf35ba065c4d1b533902562730f0d110bcce51643ce4725ca03d85c33d5812c0ed308bfb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cf080c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0880808026a093da0e096b13f6889a36880987f4cfb0fdfd4d14c48beab2c3efacdf52ecfef9a008b548262f4ac8d6830743898f193c1b4e28b8f83ca9603e023684ba8d581381c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x13e977243b5ea0b90b2bec0b29635ca5052232f7411a512fb31722b24ace61e5", + "transactionsTrie": "0xdfcd58122744ef2d87d784183e9adb2b35904dba8c12ead04a83d03919fcf35b", + "receiptTrie": "0x65c4d1b533902562730f0d110bcce51643ce4725ca03d85c33d5812c0ed308bf", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xcf08", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3156832bd592328b10a309747ed680a3a693caf3340a970ecbc68e07e25be0f4" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf08", + "to": "", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x93da0e096b13f6889a36880987f4cfb0fdfd4d14c48beab2c3efacdf52ecfef9", + "s": "0x08b548262f4ac8d6830743898f193c1b4e28b8f83ca9603e023684ba8d581381", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3156832bd592328b10a309747ed680a3a693caf3340a970ecbc68e07e25be0f4", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x026d18", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97e9b0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "055-fork=Cancun-exact_execution_gas-single_byte-single_byte_exact_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90290f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03b03b51554c6bea58d51badaee18a78107d65356ba1eaf367e94b9cf885393d6a0f06f43d9657202fe65ed3eee389e1b04901b5c19c582215e13c5786ecc160cffa0d5ce4244be1c2a96fdf5dfa24730d467295f0751de8996885911ed0fae19d983b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082cf0e0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f84df84b800a82cf0e80800026a0e207ed17886e3c97723c5adce84e7761740dde41793acb56542559ea9d506e52a06253c94f447263480622fed4a725ad82847bffdf06840ac97036ff1d6f76ec09c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3b03b51554c6bea58d51badaee18a78107d65356ba1eaf367e94b9cf885393d6", + "transactionsTrie": "0xf06f43d9657202fe65ed3eee389e1b04901b5c19c582215e13c5786ecc160cff", + "receiptTrie": "0xd5ce4244be1c2a96fdf5dfa24730d467295f0751de8996885911ed0fae19d983", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xcf0e", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6d1c9a6ab12b634f03c4347ef4e00647230c78f5eba7c403da5fa5932c5a9454" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xcf0e", + "to": "", + "value": "0x00", + "data": "0x00", + "v": "0x26", + "r": "0xe207ed17886e3c97723c5adce84e7761740dde41793acb56542559ea9d506e52", + "s": "0x6253c94f447263480622fed4a725ad82847bffdf06840ac97036ff1d6f76ec09", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6d1c9a6ab12b634f03c4347ef4e00647230c78f5eba7c403da5fa5932c5a9454", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x026d2a", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97e974", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "056-fork=Cancun-exact_execution_gas-32_bytes-32_bytes_exact_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf902b0f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa065d3e2d75999128a2e5a018059b938291ac6b08831e45950964d62fcd8f032aca015e50c98ddba357378e223eb58c6d3ccc79aacc4898a867f6021b0f425e166f7a008889f1b1de7a78a4a79e1af77d75bc22a0b2f8571c0fabdf9e54ea2cc54612db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d0d60c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86df86b800a82d0d68080a0610001600081600b8239f300000000000000000000000000000000000000000026a0fc4be100591165da16d05a0ff5ae4a2a4edc04468c721a9b88f377651d0cc90ea01a55b827b0b61ecb8746e1a5c384d8646b283245d4fc63331b5f6d80b66821f8c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x65d3e2d75999128a2e5a018059b938291ac6b08831e45950964d62fcd8f032ac", + "transactionsTrie": "0x15e50c98ddba357378e223eb58c6d3ccc79aacc4898a867f6021b0f425e166f7", + "receiptTrie": "0x08889f1b1de7a78a4a79e1af77d75bc22a0b2f8571c0fabdf9e54ea2cc54612d", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xd0d6", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x77c3c06d3548ddf01da412dd894009bc262fb6bf4a5bb39e6af11e2264cd4659" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xd0d6", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0xfc4be100591165da16d05a0ff5ae4a2a4edc04468c721a9b88f377651d0cc90e", + "s": "0x1a55b827b0b61ecb8746e1a5c384d8646b283245d4fc63331b5f6d80b66821f8", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x77c3c06d3548ddf01da412dd894009bc262fb6bf4a5bb39e6af11e2264cd4659", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x027282", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97d7a4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "057-fork=Cancun-exact_execution_gas-33_bytes-33_bytes_exact_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf902b1f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e8e04f1868e402c050f904f19551450a1346582a29fe6f43a41cc26c20b2bcf7a030612f0c5b39402d44c6de9a2d31559c5de1a50abd6b73fb1af73c9ce8df6ed1a0e8bd336ba08054fa93937979e829cf794602a3ea9c0b84d8d159794083fe6e8db9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d0dc0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f86ef86c800a82d0dc8080a1610001600081600b8239f30000000000000000000000000000000000000000000026a00d713219df4800d4b7add508f52b224688cc0e8c804578d8496773af87c756d7a07668a990423258d782b9faa74048847dca02be10ca35826e67ae05e04cca1435c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe8e04f1868e402c050f904f19551450a1346582a29fe6f43a41cc26c20b2bcf7", + "transactionsTrie": "0x30612f0c5b39402d44c6de9a2d31559c5de1a50abd6b73fb1af73c9ce8df6ed1", + "receiptTrie": "0xe8bd336ba08054fa93937979e829cf794602a3ea9c0b84d8d159794083fe6e8d", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xd0dc", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfedda77b4fdefe1163f95c26f344816f1074fda042fdf0de76163d2280fc5878" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0xd0dc", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f300000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x0d713219df4800d4b7add508f52b224688cc0e8c804578d8496773af87c756d7", + "s": "0x7668a990423258d782b9faa74048847dca02be10ca35826e67ae05e04cca1435", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xfedda77b4fdefe1163f95c26f344816f1074fda042fdf0de76163d2280fc5878", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x027294", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97d768", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "058-fork=Cancun-exact_execution_gas-49120_bytes-49120_bytes_exact_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c276f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa088aab26c5874b8082febadce553d61682d4e1677808e5cdb6af2513b622d273aa0e26daab3cf7dc84cac6d0feb2aa5fcdc8fda2b42b9244ac25c80f84a41777e45a0e8b038ffe3279f771c7ccc9cc32fe846d878b81fcb4c4752e2d8d28f9b45a1b1b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dbd20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c031f9c02e800a8303dbd28080b9bfe0610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026a04db160f43cc7c548e7ce2739068e00dd0c00fca7dc019ab73ac81e17234ad35aa04ecba0f7d10e6c84f279fef899ffa44245a44a43ea5304b4951ce7635fa827f2c0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x88aab26c5874b8082febadce553d61682d4e1677808e5cdb6af2513b622d273a", + "transactionsTrie": "0xe26daab3cf7dc84cac6d0feb2aa5fcdc8fda2b42b9244ac25c80f84a41777e45", + "receiptTrie": "0xe8b038ffe3279f771c7ccc9cc32fe846d878b81fcb4c4752e2d8d28f9b45a1b1", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03dbd2", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3bea5560d3c7e95e9afa302c74be413b86fd602ff5af3178ccc53df7412ddcc1" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03dbd2", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x26", + "r": "0x4db160f43cc7c548e7ce2739068e00dd0c00fca7dc019ab73ac81e17234ad35a", + "s": "0x4ecba0f7d10e6c84f279fef899ffa44245a44a43ea5304b4951ce7635fa827f2", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3bea5560d3c7e95e9afa302c74be413b86fd602ff5af3178ccc53df7412ddcc1", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0b9376", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de7969cc", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "059-fork=Cancun-exact_execution_gas-49121_bytes-49121_bytes_exact_execution_gas": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-3860.md", + "reference-spec-version": "5f8151e19ad1c99da4bafd514ce0e8ab89783c8f" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf9c277f9023da075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b811d11cc8bec46c45a69edfc1c6ae0f159c6e8b1e5130e7b02a85ae06232f29a03433ade4bcb44bd9c960acdeb533d9e88eef9754d03bb015e0b2fdbe85f04ac8a061344f6614b2fbf4048ababd1164776cc052d9428a8d3d8f668db93e6c6512b7b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a00008303dbd80c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f9c032f9c02f800a8303dbd88080b9bfe1610001600081600b8239f300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025a0ea6f4054bf02b17733cdadecce0912e4acf8b99e39439c542b728f4de3fc8f44a0115dc39bbb17b16b7559992c939b62089fa8be15e424092e7210b0faa6d2781bc0c0", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb811d11cc8bec46c45a69edfc1c6ae0f159c6e8b1e5130e7b02a85ae06232f29", + "transactionsTrie": "0x3433ade4bcb44bd9c960acdeb533d9e88eef9754d03bb015e0b2fdbe85f04ac8", + "receiptTrie": "0x61344f6614b2fbf4048ababd1164776cc052d9428a8d3d8f668db93e6c6512b7", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x03dbd8", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x29f7f44024103b22d10837472d02bc42b6d2e86cb56241dd4fa0b095d3ee1e2c" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x03dbd8", + "to": "", + "value": "0x00", + "data": "0x610001600081600b8239f3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "v": "0x25", + "r": "0xea6f4054bf02b17733cdadecce0912e4acf8b99e39439c542b728f4de3fc8f44", + "s": "0x115dc39bbb17b16b7559992c939b62089fa8be15e424092e7210b0faa6d2781b", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x29f7f44024103b22d10837472d02bc42b6d2e86cb56241dd4fa0b095d3ee1e2c", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x0b9388", diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json index 0a195552acf..5a18bc67626 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/balance_within_block.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a2befa3ffa17624ad1357e9a330ea090692dbbeb653e9198c83f8459f0537bafa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xa2befa3ffa17624ad1357e9a330ea090692dbbeb653e9198c83f8459f0537baf", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x68a3f767244628baeeda886cd1063c19ff3bd85f00a82c5b2c5969113d99f172" + }, "blocks": [ { "rlp": "0xf902bbf90219a068a3f767244628baeeda886cd1063c19ff3bd85f00a82c5b2c5969113d99f172a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05db83b2f18ae3f7d7588b6f91c8da2986d8ceff3ba8895001db58e26611b9788a0c571cf73fd8fef916df38a63823699e208de1b224e5bdaed87a4c73f72a07f7ca0073d14bc6015a5a6d55707b94062609b98ccdd5a29733dbf2c9204ab9c65a9e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b3180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a07988f56854c1381cb48871662f4ebd920da34bbfc368432cb046d8dde5787853f882f880800a830186a094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000020026a0fd75940662272e5daac655a822b10f101866916a2975c3821111ad4ab481d48ba067a11d0fcd31933ad4b62b4d6fd4f1540f93406d501e41b82ff59223303f60c5c0d9d8808094000000000000000000000000000000000000020001", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x9463c58d3f36ea0fece27836c93d8c247c1e1828b35b2692cf0385e78bdf77a4", - "withdrawalsRoot": "0x7988f56854c1381cb48871662f4ebd920da34bbfc368432cb046d8dde5787853" + "withdrawalsRoot": "0x7988f56854c1381cb48871662f4ebd920da34bbfc368432cb046d8dde5787853", + "hash": "0x9463c58d3f36ea0fece27836c93d8c247c1e1828b35b2692cf0385e78bdf77a4" }, "blocknumber": "1", "transactions": [ @@ -36,12 +57,14 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x0000000000000000000000000000000000000000000000000000000000000200", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xfd75940662272e5daac655a822b10f101866916a2975c3821111ad4ab481d48b", + "s": "0x67a11d0fcd31933ad4b62b4d6fd4f1540f93406d501e41b82ff59223303f60c5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], @@ -73,8 +96,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x21f506439b56b52efd32981a5955005403c2d49c40feacfbd913b0f6ac1cc016", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x21f506439b56b52efd32981a5955005403c2d49c40feacfbd913b0f6ac1cc016" }, "blocknumber": "2", "transactions": [ @@ -83,23 +106,85 @@ "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x0000000000000000000000000000000000000000000000000000000000000200", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0x9476722b3ad7ab1bdd721e4e0d5c3e059998bf9fae07fb48fd5c7612ca69a97a", + "s": "0x18f0bc934e5fb2b21602c25a63391cc23069ecbe7af2c1c2cfe4bef02d719f6c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0x21f506439b56b52efd32981a5955005403c2d49c40feacfbd913b0f6ac1cc016", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600035314355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x600035314355", + "storage": { + "0x01": "0x3b9aca00", + "0x02": "0x77359400" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x77359400", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x043290", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x3635c9adc5de920220", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04f63479811837e9477810a8adc6108509b16cd390ba871290e3ab70ca0cc1b14a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xa2befa3ffa17624ad1357e9a330ea090692dbbeb653e9198c83f8459f0537baf", + "stateRoot": "0x4f63479811837e9477810a8adc6108509b16cd390ba871290e3ab70ca0cc1b14", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -112,19 +197,113 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x68a3f767244628baeeda886cd1063c19ff3bd85f00a82c5b2c5969113d99f172", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd903d8d086ade3a67ab6f827f292db6782bb9d6234edae4260fb71aac16b491d" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0a2befa3ffa17624ad1357e9a330ea090692dbbeb653e9198c83f8459f0537bafa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x21f506439b56b52efd32981a5955005403c2d49c40feacfbd913b0f6ac1cc016", - "network": "Shanghai", - "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} + "blocks": [ + { + "rlp": "0xf902def9023ca0d903d8d086ade3a67ab6f827f292db6782bb9d6234edae4260fb71aac16b491da01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04d320b869491ea90a43dd7f0a36ab3f1ab77f62caaf7625e9554206c116c64c1a0c571cf73fd8fef916df38a63823699e208de1b224e5bdaed87a4c73f72a07f7ca0073d14bc6015a5a6d55707b94062609b98ccdd5a29733dbf2c9204ab9c65a9e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082b3180c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a07988f56854c1381cb48871662f4ebd920da34bbfc368432cb046d8dde57878538080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a830186a094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000020026a0fd75940662272e5daac655a822b10f101866916a2975c3821111ad4ab481d48ba067a11d0fcd31933ad4b62b4d6fd4f1540f93406d501e41b82ff59223303f60c5c0d9d8808094000000000000000000000000000000000000020001", + "blockHeader": { + "parentHash": "0xd903d8d086ade3a67ab6f827f292db6782bb9d6234edae4260fb71aac16b491d", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4d320b869491ea90a43dd7f0a36ab3f1ab77f62caaf7625e9554206c116c64c1", + "transactionsTrie": "0xc571cf73fd8fef916df38a63823699e208de1b224e5bdaed87a4c73f72a07f7c", + "receiptTrie": "0x073d14bc6015a5a6d55707b94062609b98ccdd5a29733dbf2c9204ab9c65a9e5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xb318", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x7988f56854c1381cb48871662f4ebd920da34bbfc368432cb046d8dde5787853", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb0883a4a13e2450c8a862bb879f993c35727c4b5b6ce849cafbe695fa6afb28f" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000200", + "v": "0x26", + "r": "0xfd75940662272e5daac655a822b10f101866916a2975c3821111ad4ab481d48b", + "s": "0x67a11d0fcd31933ad4b62b4d6fd4f1540f93406d501e41b82ff59223303f60c5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000200", + "amount": "0x01" + } + ] }, + { + "rlp": "0xf902c5f9023ca0b0883a4a13e2450c8a862bb879f993c35727c4b5b6ce849cafbe695fa6afb28fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0453432a2afd9b231d2bc74f2eb54438eecccb6c1c29871c33241ec3e47d964faa03d3f126d33e4ec0f095adb98fa15709862adc5e24edd8cb674fb0fb9a93112faa0073d14bc6015a5a6d55707b94062609b98ccdd5a29733dbf2c9204ab9c65a9e5b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082b3181880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f882f880010a830186a094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000020026a09476722b3ad7ab1bdd721e4e0d5c3e059998bf9fae07fb48fd5c7612ca69a97aa018f0bc934e5fb2b21602c25a63391cc23069ecbe7af2c1c2cfe4bef02d719f6cc0c0", + "blockHeader": { + "parentHash": "0xb0883a4a13e2450c8a862bb879f993c35727c4b5b6ce849cafbe695fa6afb28f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x453432a2afd9b231d2bc74f2eb54438eecccb6c1c29871c33241ec3e47d964fa", + "transactionsTrie": "0x3d3f126d33e4ec0f095adb98fa15709862adc5e24edd8cb674fb0fb9a93112fa", + "receiptTrie": "0x073d14bc6015a5a6d55707b94062609b98ccdd5a29733dbf2c9204ab9c65a9e5", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xb318", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x596d46ebd946680bb13e1821939843c8b452f0d8247e38ec2b440cdde7f699af" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000200", + "v": "0x26", + "r": "0x9476722b3ad7ab1bdd721e4e0d5c3e059998bf9fae07fb48fd5c7612ca69a97a", + "s": "0x18f0bc934e5fb2b21602c25a63391cc23069ecbe7af2c1c2cfe4bef02d719f6c", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x596d46ebd946680bb13e1821939843c8b452f0d8247e38ec2b440cdde7f699af", + "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -136,6 +315,18 @@ "balance": "0x3b9aca00", "code": "0x", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -154,6 +345,15 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x043290", diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json index 01a6455ef67..c36cb8c6855 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/large_amount.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { "rlp": "0xf902c0f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0203add13519a4aab21576195965596a01da7b53fcef65e2d51b139edf9ee511ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0f33e3423abc4fbbb3001461b8b36054a7a5450f47e473ad316179b2d66e6f24ac0c0f8a2dd8080940000000000000000000000000000000000000100850800000000e0010194000000000000000000000000000000000000020088ffffffffffffffffe00202940000000000000000000000000000000000000300888000000000000001e00303940000000000000000000000000000000000000400888000000000000000e00404940000000000000000000000000000000000000500887fffffffffffffff", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x4caab814a98f342d09ceae68e55e68df892a7127aeea4ff2615224f3eed6db0e", - "withdrawalsRoot": "0xf33e3423abc4fbbb3001461b8b36054a7a5450f47e473ad316179b2d66e6f24a" + "withdrawalsRoot": "0xf33e3423abc4fbbb3001461b8b36054a7a5450f47e473ad316179b2d66e6f24a", + "hash": "0x4caab814a98f342d09ceae68e55e68df892a7127aeea4ff2615224f3eed6db0e" }, "blocknumber": "1", "transactions": [], @@ -66,11 +87,68 @@ ] } ], + "lastblockhash": "0x4caab814a98f342d09ceae68e55e68df892a7127aeea4ff2615224f3eed6db0e", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x01dcd6500000000000", + "code": "0x", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x3b9ac9ffffffffffc4653600", + "code": "0x", + "storage": {} + }, + "0x0000000000000000000000000000000000000300": { + "nonce": "0x00", + "balance": "0x1dcd6500000000003b9aca00", + "code": "0x", + "storage": {} + }, + "0x0000000000000000000000000000000000000400": { + "nonce": "0x00", + "balance": "0x1dcd65000000000000000000", + "code": "0x", + "storage": {} + }, + "0x0000000000000000000000000000000000000500": { + "nonce": "0x00", + "balance": "0x1dcd64ffffffffffc4653600", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -83,13 +161,83 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x4caab814a98f342d09ceae68e55e68df892a7127aeea4ff2615224f3eed6db0e", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902e3f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa047db3e61f8be83ba0ff53a44593c0b9d7053eb2a721e9092e2c9259eef0dc5f6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0f33e3423abc4fbbb3001461b8b36054a7a5450f47e473ad316179b2d66e6f24a8080a00000000000000000000000000000000000000000000000000000000000000000c0c0f8a2dd8080940000000000000000000000000000000000000100850800000000e0010194000000000000000000000000000000000000020088ffffffffffffffffe00202940000000000000000000000000000000000000300888000000000000001e00303940000000000000000000000000000000000000400888000000000000000e00404940000000000000000000000000000000000000500887fffffffffffffff", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x47db3e61f8be83ba0ff53a44593c0b9d7053eb2a721e9092e2c9259eef0dc5f6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xf33e3423abc4fbbb3001461b8b36054a7a5450f47e473ad316179b2d66e6f24a", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9bea252be4424bf5f938d444991349f6f4798f686dae45ebfff1660ea9599d01" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000100", + "amount": "0x0800000000" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000200", + "amount": "0xffffffffffffffff" + }, + { + "index": "0x02", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000300", + "amount": "0x8000000000000001" + }, + { + "index": "0x03", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000400", + "amount": "0x8000000000000000" + }, + { + "index": "0x04", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000500", + "amount": "0x7fffffffffffffff" + } + ] + } + ], + "lastblockhash": "0x9bea252be4424bf5f938d444991349f6f4798f686dae45ebfff1660ea9599d01", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -128,6 +276,14 @@ "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json index d038e1c7c29..067bc861937 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/many_withdrawals.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09f6753d92c23e2d853eb7fcba842c66bd55c15722f2649a416c512eb0c5d8825a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x9f6753d92c23e2d853eb7fcba842c66bd55c15722f2649a416c512eb0c5d8825", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb641aa14a20f45f4eceda3575c1c76cd3607282b2519b3d2a1e9fabe35370431" + }, "blocks": [ { "rlp": "0xf92e0ff90217a0b641aa14a20f45f4eceda3575c1c76cd3607282b2519b3d2a1e9fabe35370431a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fcb4ca71625e6de7c96e3efc48487e454062960cc619634d4178f55dff92d904a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0b8f6830491c2614b7f5f578fe5b016e0162c2c6792f6bb33060b5e89d83e04f7c0c0f92bf0d8808094000000000000000000000000000000000000000080d8010194000000000000000000000000000000000000010001d8020294000000000000000000000000000000000000020002d8030394000000000000000000000000000000000000030003d8040494000000000000000000000000000000000000040004d8050594000000000000000000000000000000000000050005d8060694000000000000000000000000000000000000060006d8070794000000000000000000000000000000000000070007d8080894000000000000000000000000000000000000080008d8090994000000000000000000000000000000000000090009d80a0a940000000000000000000000000000000000000a000ad80b0b940000000000000000000000000000000000000b000bd80c0c940000000000000000000000000000000000000c000cd80d0d940000000000000000000000000000000000000d000dd80e0e940000000000000000000000000000000000000e000ed80f0f940000000000000000000000000000000000000f000fd8101094000000000000000000000000000000000000100010d8111194000000000000000000000000000000000000110011d8121294000000000000000000000000000000000000120012d8131394000000000000000000000000000000000000130013d8141494000000000000000000000000000000000000140014d8151594000000000000000000000000000000000000150015d8161694000000000000000000000000000000000000160016d8171794000000000000000000000000000000000000170017d8181894000000000000000000000000000000000000180018d8191994000000000000000000000000000000000000190019d81a1a940000000000000000000000000000000000001a001ad81b1b940000000000000000000000000000000000001b001bd81c1c940000000000000000000000000000000000001c001cd81d1d940000000000000000000000000000000000001d001dd81e1e940000000000000000000000000000000000001e001ed81f1f940000000000000000000000000000000000001f001fd8202094000000000000000000000000000000000000200020d8212194000000000000000000000000000000000000210021d8222294000000000000000000000000000000000000220022d8232394000000000000000000000000000000000000230023d8242494000000000000000000000000000000000000240024d8252594000000000000000000000000000000000000250025d8262694000000000000000000000000000000000000260026d8272794000000000000000000000000000000000000270027d8282894000000000000000000000000000000000000280028d8292994000000000000000000000000000000000000290029d82a2a940000000000000000000000000000000000002a002ad82b2b940000000000000000000000000000000000002b002bd82c2c940000000000000000000000000000000000002c002cd82d2d940000000000000000000000000000000000002d002dd82e2e940000000000000000000000000000000000002e002ed82f2f940000000000000000000000000000000000002f002fd8303094000000000000000000000000000000000000300030d8313194000000000000000000000000000000000000310031d8323294000000000000000000000000000000000000320032d8333394000000000000000000000000000000000000330033d8343494000000000000000000000000000000000000340034d8353594000000000000000000000000000000000000350035d8363694000000000000000000000000000000000000360036d8373794000000000000000000000000000000000000370037d8383894000000000000000000000000000000000000380038d8393994000000000000000000000000000000000000390039d83a3a940000000000000000000000000000000000003a003ad83b3b940000000000000000000000000000000000003b003bd83c3c940000000000000000000000000000000000003c003cd83d3d940000000000000000000000000000000000003d003dd83e3e940000000000000000000000000000000000003e003ed83f3f940000000000000000000000000000000000003f003fd8404094000000000000000000000000000000000000400040d8414194000000000000000000000000000000000000410041d8424294000000000000000000000000000000000000420042d8434394000000000000000000000000000000000000430043d8444494000000000000000000000000000000000000440044d8454594000000000000000000000000000000000000450045d8464694000000000000000000000000000000000000460046d8474794000000000000000000000000000000000000470047d8484894000000000000000000000000000000000000480048d8494994000000000000000000000000000000000000490049d84a4a940000000000000000000000000000000000004a004ad84b4b940000000000000000000000000000000000004b004bd84c4c940000000000000000000000000000000000004c004cd84d4d940000000000000000000000000000000000004d004dd84e4e940000000000000000000000000000000000004e004ed84f4f940000000000000000000000000000000000004f004fd8505094000000000000000000000000000000000000500050d8515194000000000000000000000000000000000000510051d8525294000000000000000000000000000000000000520052d8535394000000000000000000000000000000000000530053d8545494000000000000000000000000000000000000540054d8555594000000000000000000000000000000000000550055d8565694000000000000000000000000000000000000560056d8575794000000000000000000000000000000000000570057d8585894000000000000000000000000000000000000580058d8595994000000000000000000000000000000000000590059d85a5a940000000000000000000000000000000000005a005ad85b5b940000000000000000000000000000000000005b005bd85c5c940000000000000000000000000000000000005c005cd85d5d940000000000000000000000000000000000005d005dd85e5e940000000000000000000000000000000000005e005ed85f5f940000000000000000000000000000000000005f005fd8606094000000000000000000000000000000000000600060d8616194000000000000000000000000000000000000610061d8626294000000000000000000000000000000000000620062d8636394000000000000000000000000000000000000630063d8646494000000000000000000000000000000000000640064d8656594000000000000000000000000000000000000650065d8666694000000000000000000000000000000000000660066d8676794000000000000000000000000000000000000670067d8686894000000000000000000000000000000000000680068d8696994000000000000000000000000000000000000690069d86a6a940000000000000000000000000000000000006a006ad86b6b940000000000000000000000000000000000006b006bd86c6c940000000000000000000000000000000000006c006cd86d6d940000000000000000000000000000000000006d006dd86e6e940000000000000000000000000000000000006e006ed86f6f940000000000000000000000000000000000006f006fd8707094000000000000000000000000000000000000700070d8717194000000000000000000000000000000000000710071d8727294000000000000000000000000000000000000720072d8737394000000000000000000000000000000000000730073d8747494000000000000000000000000000000000000740074d8757594000000000000000000000000000000000000750075d8767694000000000000000000000000000000000000760076d8777794000000000000000000000000000000000000770077d8787894000000000000000000000000000000000000780078d8797994000000000000000000000000000000000000790079d87a7a940000000000000000000000000000000000007a007ad87b7b940000000000000000000000000000000000007b007bd87c7c940000000000000000000000000000000000007c007cd87d7d940000000000000000000000000000000000007d007dd87e7e940000000000000000000000000000000000007e007ed87f7f940000000000000000000000000000000000007f007fdb818081809400000000000000000000000000000000000080008180db818181819400000000000000000000000000000000000081008181db818281829400000000000000000000000000000000000082008182db818381839400000000000000000000000000000000000083008183db818481849400000000000000000000000000000000000084008184db818581859400000000000000000000000000000000000085008185db818681869400000000000000000000000000000000000086008186db818781879400000000000000000000000000000000000087008187db818881889400000000000000000000000000000000000088008188db818981899400000000000000000000000000000000000089008189db818a818a940000000000000000000000000000000000008a00818adb818b818b940000000000000000000000000000000000008b00818bdb818c818c940000000000000000000000000000000000008c00818cdb818d818d940000000000000000000000000000000000008d00818ddb818e818e940000000000000000000000000000000000008e00818edb818f818f940000000000000000000000000000000000008f00818fdb819081909400000000000000000000000000000000000090008190db819181919400000000000000000000000000000000000091008191db819281929400000000000000000000000000000000000092008192db819381939400000000000000000000000000000000000093008193db819481949400000000000000000000000000000000000094008194db819581959400000000000000000000000000000000000095008195db819681969400000000000000000000000000000000000096008196db819781979400000000000000000000000000000000000097008197db819881989400000000000000000000000000000000000098008198db819981999400000000000000000000000000000000000099008199db819a819a940000000000000000000000000000000000009a00819adb819b819b940000000000000000000000000000000000009b00819bdb819c819c940000000000000000000000000000000000009c00819cdb819d819d940000000000000000000000000000000000009d00819ddb819e819e940000000000000000000000000000000000009e00819edb819f819f940000000000000000000000000000000000009f00819fdb81a081a094000000000000000000000000000000000000a00081a0db81a181a194000000000000000000000000000000000000a10081a1db81a281a294000000000000000000000000000000000000a20081a2db81a381a394000000000000000000000000000000000000a30081a3db81a481a494000000000000000000000000000000000000a40081a4db81a581a594000000000000000000000000000000000000a50081a5db81a681a694000000000000000000000000000000000000a60081a6db81a781a794000000000000000000000000000000000000a70081a7db81a881a894000000000000000000000000000000000000a80081a8db81a981a994000000000000000000000000000000000000a90081a9db81aa81aa94000000000000000000000000000000000000aa0081aadb81ab81ab94000000000000000000000000000000000000ab0081abdb81ac81ac94000000000000000000000000000000000000ac0081acdb81ad81ad94000000000000000000000000000000000000ad0081addb81ae81ae94000000000000000000000000000000000000ae0081aedb81af81af94000000000000000000000000000000000000af0081afdb81b081b094000000000000000000000000000000000000b00081b0db81b181b194000000000000000000000000000000000000b10081b1db81b281b294000000000000000000000000000000000000b20081b2db81b381b394000000000000000000000000000000000000b30081b3db81b481b494000000000000000000000000000000000000b40081b4db81b581b594000000000000000000000000000000000000b50081b5db81b681b694000000000000000000000000000000000000b60081b6db81b781b794000000000000000000000000000000000000b70081b7db81b881b894000000000000000000000000000000000000b80081b8db81b981b994000000000000000000000000000000000000b90081b9db81ba81ba94000000000000000000000000000000000000ba0081badb81bb81bb94000000000000000000000000000000000000bb0081bbdb81bc81bc94000000000000000000000000000000000000bc0081bcdb81bd81bd94000000000000000000000000000000000000bd0081bddb81be81be94000000000000000000000000000000000000be0081bedb81bf81bf94000000000000000000000000000000000000bf0081bfdb81c081c094000000000000000000000000000000000000c00081c0db81c181c194000000000000000000000000000000000000c10081c1db81c281c294000000000000000000000000000000000000c20081c2db81c381c394000000000000000000000000000000000000c30081c3db81c481c494000000000000000000000000000000000000c40081c4db81c581c594000000000000000000000000000000000000c50081c5db81c681c694000000000000000000000000000000000000c60081c6db81c781c794000000000000000000000000000000000000c70081c7db81c881c894000000000000000000000000000000000000c80081c8db81c981c994000000000000000000000000000000000000c90081c9db81ca81ca94000000000000000000000000000000000000ca0081cadb81cb81cb94000000000000000000000000000000000000cb0081cbdb81cc81cc94000000000000000000000000000000000000cc0081ccdb81cd81cd94000000000000000000000000000000000000cd0081cddb81ce81ce94000000000000000000000000000000000000ce0081cedb81cf81cf94000000000000000000000000000000000000cf0081cfdb81d081d094000000000000000000000000000000000000d00081d0db81d181d194000000000000000000000000000000000000d10081d1db81d281d294000000000000000000000000000000000000d20081d2db81d381d394000000000000000000000000000000000000d30081d3db81d481d494000000000000000000000000000000000000d40081d4db81d581d594000000000000000000000000000000000000d50081d5db81d681d694000000000000000000000000000000000000d60081d6db81d781d794000000000000000000000000000000000000d70081d7db81d881d894000000000000000000000000000000000000d80081d8db81d981d994000000000000000000000000000000000000d90081d9db81da81da94000000000000000000000000000000000000da0081dadb81db81db94000000000000000000000000000000000000db0081dbdb81dc81dc94000000000000000000000000000000000000dc0081dcdb81dd81dd94000000000000000000000000000000000000dd0081dddb81de81de94000000000000000000000000000000000000de0081dedb81df81df94000000000000000000000000000000000000df0081dfdb81e081e094000000000000000000000000000000000000e00081e0db81e181e194000000000000000000000000000000000000e10081e1db81e281e294000000000000000000000000000000000000e20081e2db81e381e394000000000000000000000000000000000000e30081e3db81e481e494000000000000000000000000000000000000e40081e4db81e581e594000000000000000000000000000000000000e50081e5db81e681e694000000000000000000000000000000000000e60081e6db81e781e794000000000000000000000000000000000000e70081e7db81e881e894000000000000000000000000000000000000e80081e8db81e981e994000000000000000000000000000000000000e90081e9db81ea81ea94000000000000000000000000000000000000ea0081eadb81eb81eb94000000000000000000000000000000000000eb0081ebdb81ec81ec94000000000000000000000000000000000000ec0081ecdb81ed81ed94000000000000000000000000000000000000ed0081eddb81ee81ee94000000000000000000000000000000000000ee0081eedb81ef81ef94000000000000000000000000000000000000ef0081efdb81f081f094000000000000000000000000000000000000f00081f0db81f181f194000000000000000000000000000000000000f10081f1db81f281f294000000000000000000000000000000000000f20081f2db81f381f394000000000000000000000000000000000000f30081f3db81f481f494000000000000000000000000000000000000f40081f4db81f581f594000000000000000000000000000000000000f50081f5db81f681f694000000000000000000000000000000000000f60081f6db81f781f794000000000000000000000000000000000000f70081f7db81f881f894000000000000000000000000000000000000f80081f8db81f981f994000000000000000000000000000000000000f90081f9db81fa81fa94000000000000000000000000000000000000fa0081fadb81fb81fb94000000000000000000000000000000000000fb0081fbdb81fc81fc94000000000000000000000000000000000000fc0081fcdb81fd81fd94000000000000000000000000000000000000fd0081fddb81fe81fe94000000000000000000000000000000000000fe0081fedb81ff81ff94000000000000000000000000000000000000ff0081ffde820100820100940000000000000000000000000000000000010000820100de820101820101940000000000000000000000000000000000010100820101de820102820102940000000000000000000000000000000000010200820102de820103820103940000000000000000000000000000000000010300820103de820104820104940000000000000000000000000000000000010400820104de820105820105940000000000000000000000000000000000010500820105de820106820106940000000000000000000000000000000000010600820106de820107820107940000000000000000000000000000000000010700820107de820108820108940000000000000000000000000000000000010800820108de820109820109940000000000000000000000000000000000010900820109de82010a82010a940000000000000000000000000000000000010a0082010ade82010b82010b940000000000000000000000000000000000010b0082010bde82010c82010c940000000000000000000000000000000000010c0082010cde82010d82010d940000000000000000000000000000000000010d0082010dde82010e82010e940000000000000000000000000000000000010e0082010ede82010f82010f940000000000000000000000000000000000010f0082010fde820110820110940000000000000000000000000000000000011000820110de820111820111940000000000000000000000000000000000011100820111de820112820112940000000000000000000000000000000000011200820112de820113820113940000000000000000000000000000000000011300820113de820114820114940000000000000000000000000000000000011400820114de820115820115940000000000000000000000000000000000011500820115de820116820116940000000000000000000000000000000000011600820116de820117820117940000000000000000000000000000000000011700820117de820118820118940000000000000000000000000000000000011800820118de820119820119940000000000000000000000000000000000011900820119de82011a82011a940000000000000000000000000000000000011a0082011ade82011b82011b940000000000000000000000000000000000011b0082011bde82011c82011c940000000000000000000000000000000000011c0082011cde82011d82011d940000000000000000000000000000000000011d0082011dde82011e82011e940000000000000000000000000000000000011e0082011ede82011f82011f940000000000000000000000000000000000011f0082011fde820120820120940000000000000000000000000000000000012000820120de820121820121940000000000000000000000000000000000012100820121de820122820122940000000000000000000000000000000000012200820122de820123820123940000000000000000000000000000000000012300820123de820124820124940000000000000000000000000000000000012400820124de820125820125940000000000000000000000000000000000012500820125de820126820126940000000000000000000000000000000000012600820126de820127820127940000000000000000000000000000000000012700820127de820128820128940000000000000000000000000000000000012800820128de820129820129940000000000000000000000000000000000012900820129de82012a82012a940000000000000000000000000000000000012a0082012ade82012b82012b940000000000000000000000000000000000012b0082012bde82012c82012c940000000000000000000000000000000000012c0082012cde82012d82012d940000000000000000000000000000000000012d0082012dde82012e82012e940000000000000000000000000000000000012e0082012ede82012f82012f940000000000000000000000000000000000012f0082012fde820130820130940000000000000000000000000000000000013000820130de820131820131940000000000000000000000000000000000013100820131de820132820132940000000000000000000000000000000000013200820132de820133820133940000000000000000000000000000000000013300820133de820134820134940000000000000000000000000000000000013400820134de820135820135940000000000000000000000000000000000013500820135de820136820136940000000000000000000000000000000000013600820136de820137820137940000000000000000000000000000000000013700820137de820138820138940000000000000000000000000000000000013800820138de820139820139940000000000000000000000000000000000013900820139de82013a82013a940000000000000000000000000000000000013a0082013ade82013b82013b940000000000000000000000000000000000013b0082013bde82013c82013c940000000000000000000000000000000000013c0082013cde82013d82013d940000000000000000000000000000000000013d0082013dde82013e82013e940000000000000000000000000000000000013e0082013ede82013f82013f940000000000000000000000000000000000013f0082013fde820140820140940000000000000000000000000000000000014000820140de820141820141940000000000000000000000000000000000014100820141de820142820142940000000000000000000000000000000000014200820142de820143820143940000000000000000000000000000000000014300820143de820144820144940000000000000000000000000000000000014400820144de820145820145940000000000000000000000000000000000014500820145de820146820146940000000000000000000000000000000000014600820146de820147820147940000000000000000000000000000000000014700820147de820148820148940000000000000000000000000000000000014800820148de820149820149940000000000000000000000000000000000014900820149de82014a82014a940000000000000000000000000000000000014a0082014ade82014b82014b940000000000000000000000000000000000014b0082014bde82014c82014c940000000000000000000000000000000000014c0082014cde82014d82014d940000000000000000000000000000000000014d0082014dde82014e82014e940000000000000000000000000000000000014e0082014ede82014f82014f940000000000000000000000000000000000014f0082014fde820150820150940000000000000000000000000000000000015000820150de820151820151940000000000000000000000000000000000015100820151de820152820152940000000000000000000000000000000000015200820152de820153820153940000000000000000000000000000000000015300820153de820154820154940000000000000000000000000000000000015400820154de820155820155940000000000000000000000000000000000015500820155de820156820156940000000000000000000000000000000000015600820156de820157820157940000000000000000000000000000000000015700820157de820158820158940000000000000000000000000000000000015800820158de820159820159940000000000000000000000000000000000015900820159de82015a82015a940000000000000000000000000000000000015a0082015ade82015b82015b940000000000000000000000000000000000015b0082015bde82015c82015c940000000000000000000000000000000000015c0082015cde82015d82015d940000000000000000000000000000000000015d0082015dde82015e82015e940000000000000000000000000000000000015e0082015ede82015f82015f940000000000000000000000000000000000015f0082015fde820160820160940000000000000000000000000000000000016000820160de820161820161940000000000000000000000000000000000016100820161de820162820162940000000000000000000000000000000000016200820162de820163820163940000000000000000000000000000000000016300820163de820164820164940000000000000000000000000000000000016400820164de820165820165940000000000000000000000000000000000016500820165de820166820166940000000000000000000000000000000000016600820166de820167820167940000000000000000000000000000000000016700820167de820168820168940000000000000000000000000000000000016800820168de820169820169940000000000000000000000000000000000016900820169de82016a82016a940000000000000000000000000000000000016a0082016ade82016b82016b940000000000000000000000000000000000016b0082016bde82016c82016c940000000000000000000000000000000000016c0082016cde82016d82016d940000000000000000000000000000000000016d0082016dde82016e82016e940000000000000000000000000000000000016e0082016ede82016f82016f940000000000000000000000000000000000016f0082016fde820170820170940000000000000000000000000000000000017000820170de820171820171940000000000000000000000000000000000017100820171de820172820172940000000000000000000000000000000000017200820172de820173820173940000000000000000000000000000000000017300820173de820174820174940000000000000000000000000000000000017400820174de820175820175940000000000000000000000000000000000017500820175de820176820176940000000000000000000000000000000000017600820176de820177820177940000000000000000000000000000000000017700820177de820178820178940000000000000000000000000000000000017800820178de820179820179940000000000000000000000000000000000017900820179de82017a82017a940000000000000000000000000000000000017a0082017ade82017b82017b940000000000000000000000000000000000017b0082017bde82017c82017c940000000000000000000000000000000000017c0082017cde82017d82017d940000000000000000000000000000000000017d0082017dde82017e82017e940000000000000000000000000000000000017e0082017ede82017f82017f940000000000000000000000000000000000017f0082017fde820180820180940000000000000000000000000000000000018000820180de820181820181940000000000000000000000000000000000018100820181de820182820182940000000000000000000000000000000000018200820182de820183820183940000000000000000000000000000000000018300820183de820184820184940000000000000000000000000000000000018400820184de820185820185940000000000000000000000000000000000018500820185de820186820186940000000000000000000000000000000000018600820186de820187820187940000000000000000000000000000000000018700820187de820188820188940000000000000000000000000000000000018800820188de820189820189940000000000000000000000000000000000018900820189de82018a82018a940000000000000000000000000000000000018a0082018ade82018b82018b940000000000000000000000000000000000018b0082018bde82018c82018c940000000000000000000000000000000000018c0082018cde82018d82018d940000000000000000000000000000000000018d0082018dde82018e82018e940000000000000000000000000000000000018e0082018ede82018f82018f940000000000000000000000000000000000018f0082018f", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xc7d8bb911a05fadb332a2177c703307128a6a8baa0b1fe9e01cd86ff5a8b6968", - "withdrawalsRoot": "0xb8f6830491c2614b7f5f578fe5b016e0162c2c6792f6bb33060b5e89d83e04f7" + "withdrawalsRoot": "0xb8f6830491c2614b7f5f578fe5b016e0162c2c6792f6bb33060b5e89d83e04f7", + "hash": "0xc7d8bb911a05fadb332a2177c703307128a6a8baa0b1fe9e01cd86ff5a8b6968" }, "blocknumber": "1", "transactions": [], @@ -2436,36 +2457,8 @@ ] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x9f6753d92c23e2d853eb7fcba842c66bd55c15722f2649a416c512eb0c5d8825", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0xb641aa14a20f45f4eceda3575c1c76cd3607282b2519b3d2a1e9fabe35370431", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a09f6753d92c23e2d853eb7fcba842c66bd55c15722f2649a416c512eb0c5d8825a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xc7d8bb911a05fadb332a2177c703307128a6a8baa0b1fe9e01cd86ff5a8b6968", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x00", @@ -4865,6 +4858,12 @@ "balance": "0x00", "code": "0x60014355", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -7276,5 +7275,7302 @@ } }, "sealEngine": "NoProof" + }, + "001-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a01b17ac3133b478bb8cfee4f09a736721544cef15272621ea393776d2b6982acca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x1b17ac3133b478bb8cfee4f09a736721544cef15272621ea393776d2b6982acc", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x413a2cf494f91954aff3be26cce9701442947874511cb6516bb16e4e3e99c9ac" + }, + "blocks": [ + { + "rlp": "0xf92e32f9023aa0413a2cf494f91954aff3be26cce9701442947874511cb6516bb16e4e3e99c9aca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa089d219fbf8a52933e9701bb2754397fee66ddd55469d700d761ae292361a3247a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0b8f6830491c2614b7f5f578fe5b016e0162c2c6792f6bb33060b5e89d83e04f78080a00000000000000000000000000000000000000000000000000000000000000000c0c0f92bf0d8808094000000000000000000000000000000000000000080d8010194000000000000000000000000000000000000010001d8020294000000000000000000000000000000000000020002d8030394000000000000000000000000000000000000030003d8040494000000000000000000000000000000000000040004d8050594000000000000000000000000000000000000050005d8060694000000000000000000000000000000000000060006d8070794000000000000000000000000000000000000070007d8080894000000000000000000000000000000000000080008d8090994000000000000000000000000000000000000090009d80a0a940000000000000000000000000000000000000a000ad80b0b940000000000000000000000000000000000000b000bd80c0c940000000000000000000000000000000000000c000cd80d0d940000000000000000000000000000000000000d000dd80e0e940000000000000000000000000000000000000e000ed80f0f940000000000000000000000000000000000000f000fd8101094000000000000000000000000000000000000100010d8111194000000000000000000000000000000000000110011d8121294000000000000000000000000000000000000120012d8131394000000000000000000000000000000000000130013d8141494000000000000000000000000000000000000140014d8151594000000000000000000000000000000000000150015d8161694000000000000000000000000000000000000160016d8171794000000000000000000000000000000000000170017d8181894000000000000000000000000000000000000180018d8191994000000000000000000000000000000000000190019d81a1a940000000000000000000000000000000000001a001ad81b1b940000000000000000000000000000000000001b001bd81c1c940000000000000000000000000000000000001c001cd81d1d940000000000000000000000000000000000001d001dd81e1e940000000000000000000000000000000000001e001ed81f1f940000000000000000000000000000000000001f001fd8202094000000000000000000000000000000000000200020d8212194000000000000000000000000000000000000210021d8222294000000000000000000000000000000000000220022d8232394000000000000000000000000000000000000230023d8242494000000000000000000000000000000000000240024d8252594000000000000000000000000000000000000250025d8262694000000000000000000000000000000000000260026d8272794000000000000000000000000000000000000270027d8282894000000000000000000000000000000000000280028d8292994000000000000000000000000000000000000290029d82a2a940000000000000000000000000000000000002a002ad82b2b940000000000000000000000000000000000002b002bd82c2c940000000000000000000000000000000000002c002cd82d2d940000000000000000000000000000000000002d002dd82e2e940000000000000000000000000000000000002e002ed82f2f940000000000000000000000000000000000002f002fd8303094000000000000000000000000000000000000300030d8313194000000000000000000000000000000000000310031d8323294000000000000000000000000000000000000320032d8333394000000000000000000000000000000000000330033d8343494000000000000000000000000000000000000340034d8353594000000000000000000000000000000000000350035d8363694000000000000000000000000000000000000360036d8373794000000000000000000000000000000000000370037d8383894000000000000000000000000000000000000380038d8393994000000000000000000000000000000000000390039d83a3a940000000000000000000000000000000000003a003ad83b3b940000000000000000000000000000000000003b003bd83c3c940000000000000000000000000000000000003c003cd83d3d940000000000000000000000000000000000003d003dd83e3e940000000000000000000000000000000000003e003ed83f3f940000000000000000000000000000000000003f003fd8404094000000000000000000000000000000000000400040d8414194000000000000000000000000000000000000410041d8424294000000000000000000000000000000000000420042d8434394000000000000000000000000000000000000430043d8444494000000000000000000000000000000000000440044d8454594000000000000000000000000000000000000450045d8464694000000000000000000000000000000000000460046d8474794000000000000000000000000000000000000470047d8484894000000000000000000000000000000000000480048d8494994000000000000000000000000000000000000490049d84a4a940000000000000000000000000000000000004a004ad84b4b940000000000000000000000000000000000004b004bd84c4c940000000000000000000000000000000000004c004cd84d4d940000000000000000000000000000000000004d004dd84e4e940000000000000000000000000000000000004e004ed84f4f940000000000000000000000000000000000004f004fd8505094000000000000000000000000000000000000500050d8515194000000000000000000000000000000000000510051d8525294000000000000000000000000000000000000520052d8535394000000000000000000000000000000000000530053d8545494000000000000000000000000000000000000540054d8555594000000000000000000000000000000000000550055d8565694000000000000000000000000000000000000560056d8575794000000000000000000000000000000000000570057d8585894000000000000000000000000000000000000580058d8595994000000000000000000000000000000000000590059d85a5a940000000000000000000000000000000000005a005ad85b5b940000000000000000000000000000000000005b005bd85c5c940000000000000000000000000000000000005c005cd85d5d940000000000000000000000000000000000005d005dd85e5e940000000000000000000000000000000000005e005ed85f5f940000000000000000000000000000000000005f005fd8606094000000000000000000000000000000000000600060d8616194000000000000000000000000000000000000610061d8626294000000000000000000000000000000000000620062d8636394000000000000000000000000000000000000630063d8646494000000000000000000000000000000000000640064d8656594000000000000000000000000000000000000650065d8666694000000000000000000000000000000000000660066d8676794000000000000000000000000000000000000670067d8686894000000000000000000000000000000000000680068d8696994000000000000000000000000000000000000690069d86a6a940000000000000000000000000000000000006a006ad86b6b940000000000000000000000000000000000006b006bd86c6c940000000000000000000000000000000000006c006cd86d6d940000000000000000000000000000000000006d006dd86e6e940000000000000000000000000000000000006e006ed86f6f940000000000000000000000000000000000006f006fd8707094000000000000000000000000000000000000700070d8717194000000000000000000000000000000000000710071d8727294000000000000000000000000000000000000720072d8737394000000000000000000000000000000000000730073d8747494000000000000000000000000000000000000740074d8757594000000000000000000000000000000000000750075d8767694000000000000000000000000000000000000760076d8777794000000000000000000000000000000000000770077d8787894000000000000000000000000000000000000780078d8797994000000000000000000000000000000000000790079d87a7a940000000000000000000000000000000000007a007ad87b7b940000000000000000000000000000000000007b007bd87c7c940000000000000000000000000000000000007c007cd87d7d940000000000000000000000000000000000007d007dd87e7e940000000000000000000000000000000000007e007ed87f7f940000000000000000000000000000000000007f007fdb818081809400000000000000000000000000000000000080008180db818181819400000000000000000000000000000000000081008181db818281829400000000000000000000000000000000000082008182db818381839400000000000000000000000000000000000083008183db818481849400000000000000000000000000000000000084008184db818581859400000000000000000000000000000000000085008185db818681869400000000000000000000000000000000000086008186db818781879400000000000000000000000000000000000087008187db818881889400000000000000000000000000000000000088008188db818981899400000000000000000000000000000000000089008189db818a818a940000000000000000000000000000000000008a00818adb818b818b940000000000000000000000000000000000008b00818bdb818c818c940000000000000000000000000000000000008c00818cdb818d818d940000000000000000000000000000000000008d00818ddb818e818e940000000000000000000000000000000000008e00818edb818f818f940000000000000000000000000000000000008f00818fdb819081909400000000000000000000000000000000000090008190db819181919400000000000000000000000000000000000091008191db819281929400000000000000000000000000000000000092008192db819381939400000000000000000000000000000000000093008193db819481949400000000000000000000000000000000000094008194db819581959400000000000000000000000000000000000095008195db819681969400000000000000000000000000000000000096008196db819781979400000000000000000000000000000000000097008197db819881989400000000000000000000000000000000000098008198db819981999400000000000000000000000000000000000099008199db819a819a940000000000000000000000000000000000009a00819adb819b819b940000000000000000000000000000000000009b00819bdb819c819c940000000000000000000000000000000000009c00819cdb819d819d940000000000000000000000000000000000009d00819ddb819e819e940000000000000000000000000000000000009e00819edb819f819f940000000000000000000000000000000000009f00819fdb81a081a094000000000000000000000000000000000000a00081a0db81a181a194000000000000000000000000000000000000a10081a1db81a281a294000000000000000000000000000000000000a20081a2db81a381a394000000000000000000000000000000000000a30081a3db81a481a494000000000000000000000000000000000000a40081a4db81a581a594000000000000000000000000000000000000a50081a5db81a681a694000000000000000000000000000000000000a60081a6db81a781a794000000000000000000000000000000000000a70081a7db81a881a894000000000000000000000000000000000000a80081a8db81a981a994000000000000000000000000000000000000a90081a9db81aa81aa94000000000000000000000000000000000000aa0081aadb81ab81ab94000000000000000000000000000000000000ab0081abdb81ac81ac94000000000000000000000000000000000000ac0081acdb81ad81ad94000000000000000000000000000000000000ad0081addb81ae81ae94000000000000000000000000000000000000ae0081aedb81af81af94000000000000000000000000000000000000af0081afdb81b081b094000000000000000000000000000000000000b00081b0db81b181b194000000000000000000000000000000000000b10081b1db81b281b294000000000000000000000000000000000000b20081b2db81b381b394000000000000000000000000000000000000b30081b3db81b481b494000000000000000000000000000000000000b40081b4db81b581b594000000000000000000000000000000000000b50081b5db81b681b694000000000000000000000000000000000000b60081b6db81b781b794000000000000000000000000000000000000b70081b7db81b881b894000000000000000000000000000000000000b80081b8db81b981b994000000000000000000000000000000000000b90081b9db81ba81ba94000000000000000000000000000000000000ba0081badb81bb81bb94000000000000000000000000000000000000bb0081bbdb81bc81bc94000000000000000000000000000000000000bc0081bcdb81bd81bd94000000000000000000000000000000000000bd0081bddb81be81be94000000000000000000000000000000000000be0081bedb81bf81bf94000000000000000000000000000000000000bf0081bfdb81c081c094000000000000000000000000000000000000c00081c0db81c181c194000000000000000000000000000000000000c10081c1db81c281c294000000000000000000000000000000000000c20081c2db81c381c394000000000000000000000000000000000000c30081c3db81c481c494000000000000000000000000000000000000c40081c4db81c581c594000000000000000000000000000000000000c50081c5db81c681c694000000000000000000000000000000000000c60081c6db81c781c794000000000000000000000000000000000000c70081c7db81c881c894000000000000000000000000000000000000c80081c8db81c981c994000000000000000000000000000000000000c90081c9db81ca81ca94000000000000000000000000000000000000ca0081cadb81cb81cb94000000000000000000000000000000000000cb0081cbdb81cc81cc94000000000000000000000000000000000000cc0081ccdb81cd81cd94000000000000000000000000000000000000cd0081cddb81ce81ce94000000000000000000000000000000000000ce0081cedb81cf81cf94000000000000000000000000000000000000cf0081cfdb81d081d094000000000000000000000000000000000000d00081d0db81d181d194000000000000000000000000000000000000d10081d1db81d281d294000000000000000000000000000000000000d20081d2db81d381d394000000000000000000000000000000000000d30081d3db81d481d494000000000000000000000000000000000000d40081d4db81d581d594000000000000000000000000000000000000d50081d5db81d681d694000000000000000000000000000000000000d60081d6db81d781d794000000000000000000000000000000000000d70081d7db81d881d894000000000000000000000000000000000000d80081d8db81d981d994000000000000000000000000000000000000d90081d9db81da81da94000000000000000000000000000000000000da0081dadb81db81db94000000000000000000000000000000000000db0081dbdb81dc81dc94000000000000000000000000000000000000dc0081dcdb81dd81dd94000000000000000000000000000000000000dd0081dddb81de81de94000000000000000000000000000000000000de0081dedb81df81df94000000000000000000000000000000000000df0081dfdb81e081e094000000000000000000000000000000000000e00081e0db81e181e194000000000000000000000000000000000000e10081e1db81e281e294000000000000000000000000000000000000e20081e2db81e381e394000000000000000000000000000000000000e30081e3db81e481e494000000000000000000000000000000000000e40081e4db81e581e594000000000000000000000000000000000000e50081e5db81e681e694000000000000000000000000000000000000e60081e6db81e781e794000000000000000000000000000000000000e70081e7db81e881e894000000000000000000000000000000000000e80081e8db81e981e994000000000000000000000000000000000000e90081e9db81ea81ea94000000000000000000000000000000000000ea0081eadb81eb81eb94000000000000000000000000000000000000eb0081ebdb81ec81ec94000000000000000000000000000000000000ec0081ecdb81ed81ed94000000000000000000000000000000000000ed0081eddb81ee81ee94000000000000000000000000000000000000ee0081eedb81ef81ef94000000000000000000000000000000000000ef0081efdb81f081f094000000000000000000000000000000000000f00081f0db81f181f194000000000000000000000000000000000000f10081f1db81f281f294000000000000000000000000000000000000f20081f2db81f381f394000000000000000000000000000000000000f30081f3db81f481f494000000000000000000000000000000000000f40081f4db81f581f594000000000000000000000000000000000000f50081f5db81f681f694000000000000000000000000000000000000f60081f6db81f781f794000000000000000000000000000000000000f70081f7db81f881f894000000000000000000000000000000000000f80081f8db81f981f994000000000000000000000000000000000000f90081f9db81fa81fa94000000000000000000000000000000000000fa0081fadb81fb81fb94000000000000000000000000000000000000fb0081fbdb81fc81fc94000000000000000000000000000000000000fc0081fcdb81fd81fd94000000000000000000000000000000000000fd0081fddb81fe81fe94000000000000000000000000000000000000fe0081fedb81ff81ff94000000000000000000000000000000000000ff0081ffde820100820100940000000000000000000000000000000000010000820100de820101820101940000000000000000000000000000000000010100820101de820102820102940000000000000000000000000000000000010200820102de820103820103940000000000000000000000000000000000010300820103de820104820104940000000000000000000000000000000000010400820104de820105820105940000000000000000000000000000000000010500820105de820106820106940000000000000000000000000000000000010600820106de820107820107940000000000000000000000000000000000010700820107de820108820108940000000000000000000000000000000000010800820108de820109820109940000000000000000000000000000000000010900820109de82010a82010a940000000000000000000000000000000000010a0082010ade82010b82010b940000000000000000000000000000000000010b0082010bde82010c82010c940000000000000000000000000000000000010c0082010cde82010d82010d940000000000000000000000000000000000010d0082010dde82010e82010e940000000000000000000000000000000000010e0082010ede82010f82010f940000000000000000000000000000000000010f0082010fde820110820110940000000000000000000000000000000000011000820110de820111820111940000000000000000000000000000000000011100820111de820112820112940000000000000000000000000000000000011200820112de820113820113940000000000000000000000000000000000011300820113de820114820114940000000000000000000000000000000000011400820114de820115820115940000000000000000000000000000000000011500820115de820116820116940000000000000000000000000000000000011600820116de820117820117940000000000000000000000000000000000011700820117de820118820118940000000000000000000000000000000000011800820118de820119820119940000000000000000000000000000000000011900820119de82011a82011a940000000000000000000000000000000000011a0082011ade82011b82011b940000000000000000000000000000000000011b0082011bde82011c82011c940000000000000000000000000000000000011c0082011cde82011d82011d940000000000000000000000000000000000011d0082011dde82011e82011e940000000000000000000000000000000000011e0082011ede82011f82011f940000000000000000000000000000000000011f0082011fde820120820120940000000000000000000000000000000000012000820120de820121820121940000000000000000000000000000000000012100820121de820122820122940000000000000000000000000000000000012200820122de820123820123940000000000000000000000000000000000012300820123de820124820124940000000000000000000000000000000000012400820124de820125820125940000000000000000000000000000000000012500820125de820126820126940000000000000000000000000000000000012600820126de820127820127940000000000000000000000000000000000012700820127de820128820128940000000000000000000000000000000000012800820128de820129820129940000000000000000000000000000000000012900820129de82012a82012a940000000000000000000000000000000000012a0082012ade82012b82012b940000000000000000000000000000000000012b0082012bde82012c82012c940000000000000000000000000000000000012c0082012cde82012d82012d940000000000000000000000000000000000012d0082012dde82012e82012e940000000000000000000000000000000000012e0082012ede82012f82012f940000000000000000000000000000000000012f0082012fde820130820130940000000000000000000000000000000000013000820130de820131820131940000000000000000000000000000000000013100820131de820132820132940000000000000000000000000000000000013200820132de820133820133940000000000000000000000000000000000013300820133de820134820134940000000000000000000000000000000000013400820134de820135820135940000000000000000000000000000000000013500820135de820136820136940000000000000000000000000000000000013600820136de820137820137940000000000000000000000000000000000013700820137de820138820138940000000000000000000000000000000000013800820138de820139820139940000000000000000000000000000000000013900820139de82013a82013a940000000000000000000000000000000000013a0082013ade82013b82013b940000000000000000000000000000000000013b0082013bde82013c82013c940000000000000000000000000000000000013c0082013cde82013d82013d940000000000000000000000000000000000013d0082013dde82013e82013e940000000000000000000000000000000000013e0082013ede82013f82013f940000000000000000000000000000000000013f0082013fde820140820140940000000000000000000000000000000000014000820140de820141820141940000000000000000000000000000000000014100820141de820142820142940000000000000000000000000000000000014200820142de820143820143940000000000000000000000000000000000014300820143de820144820144940000000000000000000000000000000000014400820144de820145820145940000000000000000000000000000000000014500820145de820146820146940000000000000000000000000000000000014600820146de820147820147940000000000000000000000000000000000014700820147de820148820148940000000000000000000000000000000000014800820148de820149820149940000000000000000000000000000000000014900820149de82014a82014a940000000000000000000000000000000000014a0082014ade82014b82014b940000000000000000000000000000000000014b0082014bde82014c82014c940000000000000000000000000000000000014c0082014cde82014d82014d940000000000000000000000000000000000014d0082014dde82014e82014e940000000000000000000000000000000000014e0082014ede82014f82014f940000000000000000000000000000000000014f0082014fde820150820150940000000000000000000000000000000000015000820150de820151820151940000000000000000000000000000000000015100820151de820152820152940000000000000000000000000000000000015200820152de820153820153940000000000000000000000000000000000015300820153de820154820154940000000000000000000000000000000000015400820154de820155820155940000000000000000000000000000000000015500820155de820156820156940000000000000000000000000000000000015600820156de820157820157940000000000000000000000000000000000015700820157de820158820158940000000000000000000000000000000000015800820158de820159820159940000000000000000000000000000000000015900820159de82015a82015a940000000000000000000000000000000000015a0082015ade82015b82015b940000000000000000000000000000000000015b0082015bde82015c82015c940000000000000000000000000000000000015c0082015cde82015d82015d940000000000000000000000000000000000015d0082015dde82015e82015e940000000000000000000000000000000000015e0082015ede82015f82015f940000000000000000000000000000000000015f0082015fde820160820160940000000000000000000000000000000000016000820160de820161820161940000000000000000000000000000000000016100820161de820162820162940000000000000000000000000000000000016200820162de820163820163940000000000000000000000000000000000016300820163de820164820164940000000000000000000000000000000000016400820164de820165820165940000000000000000000000000000000000016500820165de820166820166940000000000000000000000000000000000016600820166de820167820167940000000000000000000000000000000000016700820167de820168820168940000000000000000000000000000000000016800820168de820169820169940000000000000000000000000000000000016900820169de82016a82016a940000000000000000000000000000000000016a0082016ade82016b82016b940000000000000000000000000000000000016b0082016bde82016c82016c940000000000000000000000000000000000016c0082016cde82016d82016d940000000000000000000000000000000000016d0082016dde82016e82016e940000000000000000000000000000000000016e0082016ede82016f82016f940000000000000000000000000000000000016f0082016fde820170820170940000000000000000000000000000000000017000820170de820171820171940000000000000000000000000000000000017100820171de820172820172940000000000000000000000000000000000017200820172de820173820173940000000000000000000000000000000000017300820173de820174820174940000000000000000000000000000000000017400820174de820175820175940000000000000000000000000000000000017500820175de820176820176940000000000000000000000000000000000017600820176de820177820177940000000000000000000000000000000000017700820177de820178820178940000000000000000000000000000000000017800820178de820179820179940000000000000000000000000000000000017900820179de82017a82017a940000000000000000000000000000000000017a0082017ade82017b82017b940000000000000000000000000000000000017b0082017bde82017c82017c940000000000000000000000000000000000017c0082017cde82017d82017d940000000000000000000000000000000000017d0082017dde82017e82017e940000000000000000000000000000000000017e0082017ede82017f82017f940000000000000000000000000000000000017f0082017fde820180820180940000000000000000000000000000000000018000820180de820181820181940000000000000000000000000000000000018100820181de820182820182940000000000000000000000000000000000018200820182de820183820183940000000000000000000000000000000000018300820183de820184820184940000000000000000000000000000000000018400820184de820185820185940000000000000000000000000000000000018500820185de820186820186940000000000000000000000000000000000018600820186de820187820187940000000000000000000000000000000000018700820187de820188820188940000000000000000000000000000000000018800820188de820189820189940000000000000000000000000000000000018900820189de82018a82018a940000000000000000000000000000000000018a0082018ade82018b82018b940000000000000000000000000000000000018b0082018bde82018c82018c940000000000000000000000000000000000018c0082018cde82018d82018d940000000000000000000000000000000000018d0082018dde82018e82018e940000000000000000000000000000000000018e0082018ede82018f82018f940000000000000000000000000000000000018f0082018f", + "blockHeader": { + "parentHash": "0x413a2cf494f91954aff3be26cce9701442947874511cb6516bb16e4e3e99c9ac", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x89d219fbf8a52933e9701bb2754397fee66ddd55469d700d761ae292361a3247", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xb8f6830491c2614b7f5f578fe5b016e0162c2c6792f6bb33060b5e89d83e04f7", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb323560b00b34762d4c4b964182f81fe5f348ba7739804b1703dc65066606ce4" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x00" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000100", + "amount": "0x01" + }, + { + "index": "0x02", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000200", + "amount": "0x02" + }, + { + "index": "0x03", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000300", + "amount": "0x03" + }, + { + "index": "0x04", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000400", + "amount": "0x04" + }, + { + "index": "0x05", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000500", + "amount": "0x05" + }, + { + "index": "0x06", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000600", + "amount": "0x06" + }, + { + "index": "0x07", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000700", + "amount": "0x07" + }, + { + "index": "0x08", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000800", + "amount": "0x08" + }, + { + "index": "0x09", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000900", + "amount": "0x09" + }, + { + "index": "0x0a", + "validatorIndex": "0x0a", + "address": "0x0000000000000000000000000000000000000a00", + "amount": "0x0a" + }, + { + "index": "0x0b", + "validatorIndex": "0x0b", + "address": "0x0000000000000000000000000000000000000b00", + "amount": "0x0b" + }, + { + "index": "0x0c", + "validatorIndex": "0x0c", + "address": "0x0000000000000000000000000000000000000c00", + "amount": "0x0c" + }, + { + "index": "0x0d", + "validatorIndex": "0x0d", + "address": "0x0000000000000000000000000000000000000d00", + "amount": "0x0d" + }, + { + "index": "0x0e", + "validatorIndex": "0x0e", + "address": "0x0000000000000000000000000000000000000e00", + "amount": "0x0e" + }, + { + "index": "0x0f", + "validatorIndex": "0x0f", + "address": "0x0000000000000000000000000000000000000f00", + "amount": "0x0f" + }, + { + "index": "0x10", + "validatorIndex": "0x10", + "address": "0x0000000000000000000000000000000000001000", + "amount": "0x10" + }, + { + "index": "0x11", + "validatorIndex": "0x11", + "address": "0x0000000000000000000000000000000000001100", + "amount": "0x11" + }, + { + "index": "0x12", + "validatorIndex": "0x12", + "address": "0x0000000000000000000000000000000000001200", + "amount": "0x12" + }, + { + "index": "0x13", + "validatorIndex": "0x13", + "address": "0x0000000000000000000000000000000000001300", + "amount": "0x13" + }, + { + "index": "0x14", + "validatorIndex": "0x14", + "address": "0x0000000000000000000000000000000000001400", + "amount": "0x14" + }, + { + "index": "0x15", + "validatorIndex": "0x15", + "address": "0x0000000000000000000000000000000000001500", + "amount": "0x15" + }, + { + "index": "0x16", + "validatorIndex": "0x16", + "address": "0x0000000000000000000000000000000000001600", + "amount": "0x16" + }, + { + "index": "0x17", + "validatorIndex": "0x17", + "address": "0x0000000000000000000000000000000000001700", + "amount": "0x17" + }, + { + "index": "0x18", + "validatorIndex": "0x18", + "address": "0x0000000000000000000000000000000000001800", + "amount": "0x18" + }, + { + "index": "0x19", + "validatorIndex": "0x19", + "address": "0x0000000000000000000000000000000000001900", + "amount": "0x19" + }, + { + "index": "0x1a", + "validatorIndex": "0x1a", + "address": "0x0000000000000000000000000000000000001a00", + "amount": "0x1a" + }, + { + "index": "0x1b", + "validatorIndex": "0x1b", + "address": "0x0000000000000000000000000000000000001b00", + "amount": "0x1b" + }, + { + "index": "0x1c", + "validatorIndex": "0x1c", + "address": "0x0000000000000000000000000000000000001c00", + "amount": "0x1c" + }, + { + "index": "0x1d", + "validatorIndex": "0x1d", + "address": "0x0000000000000000000000000000000000001d00", + "amount": "0x1d" + }, + { + "index": "0x1e", + "validatorIndex": "0x1e", + "address": "0x0000000000000000000000000000000000001e00", + "amount": "0x1e" + }, + { + "index": "0x1f", + "validatorIndex": "0x1f", + "address": "0x0000000000000000000000000000000000001f00", + "amount": "0x1f" + }, + { + "index": "0x20", + "validatorIndex": "0x20", + "address": "0x0000000000000000000000000000000000002000", + "amount": "0x20" + }, + { + "index": "0x21", + "validatorIndex": "0x21", + "address": "0x0000000000000000000000000000000000002100", + "amount": "0x21" + }, + { + "index": "0x22", + "validatorIndex": "0x22", + "address": "0x0000000000000000000000000000000000002200", + "amount": "0x22" + }, + { + "index": "0x23", + "validatorIndex": "0x23", + "address": "0x0000000000000000000000000000000000002300", + "amount": "0x23" + }, + { + "index": "0x24", + "validatorIndex": "0x24", + "address": "0x0000000000000000000000000000000000002400", + "amount": "0x24" + }, + { + "index": "0x25", + "validatorIndex": "0x25", + "address": "0x0000000000000000000000000000000000002500", + "amount": "0x25" + }, + { + "index": "0x26", + "validatorIndex": "0x26", + "address": "0x0000000000000000000000000000000000002600", + "amount": "0x26" + }, + { + "index": "0x27", + "validatorIndex": "0x27", + "address": "0x0000000000000000000000000000000000002700", + "amount": "0x27" + }, + { + "index": "0x28", + "validatorIndex": "0x28", + "address": "0x0000000000000000000000000000000000002800", + "amount": "0x28" + }, + { + "index": "0x29", + "validatorIndex": "0x29", + "address": "0x0000000000000000000000000000000000002900", + "amount": "0x29" + }, + { + "index": "0x2a", + "validatorIndex": "0x2a", + "address": "0x0000000000000000000000000000000000002a00", + "amount": "0x2a" + }, + { + "index": "0x2b", + "validatorIndex": "0x2b", + "address": "0x0000000000000000000000000000000000002b00", + "amount": "0x2b" + }, + { + "index": "0x2c", + "validatorIndex": "0x2c", + "address": "0x0000000000000000000000000000000000002c00", + "amount": "0x2c" + }, + { + "index": "0x2d", + "validatorIndex": "0x2d", + "address": "0x0000000000000000000000000000000000002d00", + "amount": "0x2d" + }, + { + "index": "0x2e", + "validatorIndex": "0x2e", + "address": "0x0000000000000000000000000000000000002e00", + "amount": "0x2e" + }, + { + "index": "0x2f", + "validatorIndex": "0x2f", + "address": "0x0000000000000000000000000000000000002f00", + "amount": "0x2f" + }, + { + "index": "0x30", + "validatorIndex": "0x30", + "address": "0x0000000000000000000000000000000000003000", + "amount": "0x30" + }, + { + "index": "0x31", + "validatorIndex": "0x31", + "address": "0x0000000000000000000000000000000000003100", + "amount": "0x31" + }, + { + "index": "0x32", + "validatorIndex": "0x32", + "address": "0x0000000000000000000000000000000000003200", + "amount": "0x32" + }, + { + "index": "0x33", + "validatorIndex": "0x33", + "address": "0x0000000000000000000000000000000000003300", + "amount": "0x33" + }, + { + "index": "0x34", + "validatorIndex": "0x34", + "address": "0x0000000000000000000000000000000000003400", + "amount": "0x34" + }, + { + "index": "0x35", + "validatorIndex": "0x35", + "address": "0x0000000000000000000000000000000000003500", + "amount": "0x35" + }, + { + "index": "0x36", + "validatorIndex": "0x36", + "address": "0x0000000000000000000000000000000000003600", + "amount": "0x36" + }, + { + "index": "0x37", + "validatorIndex": "0x37", + "address": "0x0000000000000000000000000000000000003700", + "amount": "0x37" + }, + { + "index": "0x38", + "validatorIndex": "0x38", + "address": "0x0000000000000000000000000000000000003800", + "amount": "0x38" + }, + { + "index": "0x39", + "validatorIndex": "0x39", + "address": "0x0000000000000000000000000000000000003900", + "amount": "0x39" + }, + { + "index": "0x3a", + "validatorIndex": "0x3a", + "address": "0x0000000000000000000000000000000000003a00", + "amount": "0x3a" + }, + { + "index": "0x3b", + "validatorIndex": "0x3b", + "address": "0x0000000000000000000000000000000000003b00", + "amount": "0x3b" + }, + { + "index": "0x3c", + "validatorIndex": "0x3c", + "address": "0x0000000000000000000000000000000000003c00", + "amount": "0x3c" + }, + { + "index": "0x3d", + "validatorIndex": "0x3d", + "address": "0x0000000000000000000000000000000000003d00", + "amount": "0x3d" + }, + { + "index": "0x3e", + "validatorIndex": "0x3e", + "address": "0x0000000000000000000000000000000000003e00", + "amount": "0x3e" + }, + { + "index": "0x3f", + "validatorIndex": "0x3f", + "address": "0x0000000000000000000000000000000000003f00", + "amount": "0x3f" + }, + { + "index": "0x40", + "validatorIndex": "0x40", + "address": "0x0000000000000000000000000000000000004000", + "amount": "0x40" + }, + { + "index": "0x41", + "validatorIndex": "0x41", + "address": "0x0000000000000000000000000000000000004100", + "amount": "0x41" + }, + { + "index": "0x42", + "validatorIndex": "0x42", + "address": "0x0000000000000000000000000000000000004200", + "amount": "0x42" + }, + { + "index": "0x43", + "validatorIndex": "0x43", + "address": "0x0000000000000000000000000000000000004300", + "amount": "0x43" + }, + { + "index": "0x44", + "validatorIndex": "0x44", + "address": "0x0000000000000000000000000000000000004400", + "amount": "0x44" + }, + { + "index": "0x45", + "validatorIndex": "0x45", + "address": "0x0000000000000000000000000000000000004500", + "amount": "0x45" + }, + { + "index": "0x46", + "validatorIndex": "0x46", + "address": "0x0000000000000000000000000000000000004600", + "amount": "0x46" + }, + { + "index": "0x47", + "validatorIndex": "0x47", + "address": "0x0000000000000000000000000000000000004700", + "amount": "0x47" + }, + { + "index": "0x48", + "validatorIndex": "0x48", + "address": "0x0000000000000000000000000000000000004800", + "amount": "0x48" + }, + { + "index": "0x49", + "validatorIndex": "0x49", + "address": "0x0000000000000000000000000000000000004900", + "amount": "0x49" + }, + { + "index": "0x4a", + "validatorIndex": "0x4a", + "address": "0x0000000000000000000000000000000000004a00", + "amount": "0x4a" + }, + { + "index": "0x4b", + "validatorIndex": "0x4b", + "address": "0x0000000000000000000000000000000000004b00", + "amount": "0x4b" + }, + { + "index": "0x4c", + "validatorIndex": "0x4c", + "address": "0x0000000000000000000000000000000000004c00", + "amount": "0x4c" + }, + { + "index": "0x4d", + "validatorIndex": "0x4d", + "address": "0x0000000000000000000000000000000000004d00", + "amount": "0x4d" + }, + { + "index": "0x4e", + "validatorIndex": "0x4e", + "address": "0x0000000000000000000000000000000000004e00", + "amount": "0x4e" + }, + { + "index": "0x4f", + "validatorIndex": "0x4f", + "address": "0x0000000000000000000000000000000000004f00", + "amount": "0x4f" + }, + { + "index": "0x50", + "validatorIndex": "0x50", + "address": "0x0000000000000000000000000000000000005000", + "amount": "0x50" + }, + { + "index": "0x51", + "validatorIndex": "0x51", + "address": "0x0000000000000000000000000000000000005100", + "amount": "0x51" + }, + { + "index": "0x52", + "validatorIndex": "0x52", + "address": "0x0000000000000000000000000000000000005200", + "amount": "0x52" + }, + { + "index": "0x53", + "validatorIndex": "0x53", + "address": "0x0000000000000000000000000000000000005300", + "amount": "0x53" + }, + { + "index": "0x54", + "validatorIndex": "0x54", + "address": "0x0000000000000000000000000000000000005400", + "amount": "0x54" + }, + { + "index": "0x55", + "validatorIndex": "0x55", + "address": "0x0000000000000000000000000000000000005500", + "amount": "0x55" + }, + { + "index": "0x56", + "validatorIndex": "0x56", + "address": "0x0000000000000000000000000000000000005600", + "amount": "0x56" + }, + { + "index": "0x57", + "validatorIndex": "0x57", + "address": "0x0000000000000000000000000000000000005700", + "amount": "0x57" + }, + { + "index": "0x58", + "validatorIndex": "0x58", + "address": "0x0000000000000000000000000000000000005800", + "amount": "0x58" + }, + { + "index": "0x59", + "validatorIndex": "0x59", + "address": "0x0000000000000000000000000000000000005900", + "amount": "0x59" + }, + { + "index": "0x5a", + "validatorIndex": "0x5a", + "address": "0x0000000000000000000000000000000000005a00", + "amount": "0x5a" + }, + { + "index": "0x5b", + "validatorIndex": "0x5b", + "address": "0x0000000000000000000000000000000000005b00", + "amount": "0x5b" + }, + { + "index": "0x5c", + "validatorIndex": "0x5c", + "address": "0x0000000000000000000000000000000000005c00", + "amount": "0x5c" + }, + { + "index": "0x5d", + "validatorIndex": "0x5d", + "address": "0x0000000000000000000000000000000000005d00", + "amount": "0x5d" + }, + { + "index": "0x5e", + "validatorIndex": "0x5e", + "address": "0x0000000000000000000000000000000000005e00", + "amount": "0x5e" + }, + { + "index": "0x5f", + "validatorIndex": "0x5f", + "address": "0x0000000000000000000000000000000000005f00", + "amount": "0x5f" + }, + { + "index": "0x60", + "validatorIndex": "0x60", + "address": "0x0000000000000000000000000000000000006000", + "amount": "0x60" + }, + { + "index": "0x61", + "validatorIndex": "0x61", + "address": "0x0000000000000000000000000000000000006100", + "amount": "0x61" + }, + { + "index": "0x62", + "validatorIndex": "0x62", + "address": "0x0000000000000000000000000000000000006200", + "amount": "0x62" + }, + { + "index": "0x63", + "validatorIndex": "0x63", + "address": "0x0000000000000000000000000000000000006300", + "amount": "0x63" + }, + { + "index": "0x64", + "validatorIndex": "0x64", + "address": "0x0000000000000000000000000000000000006400", + "amount": "0x64" + }, + { + "index": "0x65", + "validatorIndex": "0x65", + "address": "0x0000000000000000000000000000000000006500", + "amount": "0x65" + }, + { + "index": "0x66", + "validatorIndex": "0x66", + "address": "0x0000000000000000000000000000000000006600", + "amount": "0x66" + }, + { + "index": "0x67", + "validatorIndex": "0x67", + "address": "0x0000000000000000000000000000000000006700", + "amount": "0x67" + }, + { + "index": "0x68", + "validatorIndex": "0x68", + "address": "0x0000000000000000000000000000000000006800", + "amount": "0x68" + }, + { + "index": "0x69", + "validatorIndex": "0x69", + "address": "0x0000000000000000000000000000000000006900", + "amount": "0x69" + }, + { + "index": "0x6a", + "validatorIndex": "0x6a", + "address": "0x0000000000000000000000000000000000006a00", + "amount": "0x6a" + }, + { + "index": "0x6b", + "validatorIndex": "0x6b", + "address": "0x0000000000000000000000000000000000006b00", + "amount": "0x6b" + }, + { + "index": "0x6c", + "validatorIndex": "0x6c", + "address": "0x0000000000000000000000000000000000006c00", + "amount": "0x6c" + }, + { + "index": "0x6d", + "validatorIndex": "0x6d", + "address": "0x0000000000000000000000000000000000006d00", + "amount": "0x6d" + }, + { + "index": "0x6e", + "validatorIndex": "0x6e", + "address": "0x0000000000000000000000000000000000006e00", + "amount": "0x6e" + }, + { + "index": "0x6f", + "validatorIndex": "0x6f", + "address": "0x0000000000000000000000000000000000006f00", + "amount": "0x6f" + }, + { + "index": "0x70", + "validatorIndex": "0x70", + "address": "0x0000000000000000000000000000000000007000", + "amount": "0x70" + }, + { + "index": "0x71", + "validatorIndex": "0x71", + "address": "0x0000000000000000000000000000000000007100", + "amount": "0x71" + }, + { + "index": "0x72", + "validatorIndex": "0x72", + "address": "0x0000000000000000000000000000000000007200", + "amount": "0x72" + }, + { + "index": "0x73", + "validatorIndex": "0x73", + "address": "0x0000000000000000000000000000000000007300", + "amount": "0x73" + }, + { + "index": "0x74", + "validatorIndex": "0x74", + "address": "0x0000000000000000000000000000000000007400", + "amount": "0x74" + }, + { + "index": "0x75", + "validatorIndex": "0x75", + "address": "0x0000000000000000000000000000000000007500", + "amount": "0x75" + }, + { + "index": "0x76", + "validatorIndex": "0x76", + "address": "0x0000000000000000000000000000000000007600", + "amount": "0x76" + }, + { + "index": "0x77", + "validatorIndex": "0x77", + "address": "0x0000000000000000000000000000000000007700", + "amount": "0x77" + }, + { + "index": "0x78", + "validatorIndex": "0x78", + "address": "0x0000000000000000000000000000000000007800", + "amount": "0x78" + }, + { + "index": "0x79", + "validatorIndex": "0x79", + "address": "0x0000000000000000000000000000000000007900", + "amount": "0x79" + }, + { + "index": "0x7a", + "validatorIndex": "0x7a", + "address": "0x0000000000000000000000000000000000007a00", + "amount": "0x7a" + }, + { + "index": "0x7b", + "validatorIndex": "0x7b", + "address": "0x0000000000000000000000000000000000007b00", + "amount": "0x7b" + }, + { + "index": "0x7c", + "validatorIndex": "0x7c", + "address": "0x0000000000000000000000000000000000007c00", + "amount": "0x7c" + }, + { + "index": "0x7d", + "validatorIndex": "0x7d", + "address": "0x0000000000000000000000000000000000007d00", + "amount": "0x7d" + }, + { + "index": "0x7e", + "validatorIndex": "0x7e", + "address": "0x0000000000000000000000000000000000007e00", + "amount": "0x7e" + }, + { + "index": "0x7f", + "validatorIndex": "0x7f", + "address": "0x0000000000000000000000000000000000007f00", + "amount": "0x7f" + }, + { + "index": "0x80", + "validatorIndex": "0x80", + "address": "0x0000000000000000000000000000000000008000", + "amount": "0x80" + }, + { + "index": "0x81", + "validatorIndex": "0x81", + "address": "0x0000000000000000000000000000000000008100", + "amount": "0x81" + }, + { + "index": "0x82", + "validatorIndex": "0x82", + "address": "0x0000000000000000000000000000000000008200", + "amount": "0x82" + }, + { + "index": "0x83", + "validatorIndex": "0x83", + "address": "0x0000000000000000000000000000000000008300", + "amount": "0x83" + }, + { + "index": "0x84", + "validatorIndex": "0x84", + "address": "0x0000000000000000000000000000000000008400", + "amount": "0x84" + }, + { + "index": "0x85", + "validatorIndex": "0x85", + "address": "0x0000000000000000000000000000000000008500", + "amount": "0x85" + }, + { + "index": "0x86", + "validatorIndex": "0x86", + "address": "0x0000000000000000000000000000000000008600", + "amount": "0x86" + }, + { + "index": "0x87", + "validatorIndex": "0x87", + "address": "0x0000000000000000000000000000000000008700", + "amount": "0x87" + }, + { + "index": "0x88", + "validatorIndex": "0x88", + "address": "0x0000000000000000000000000000000000008800", + "amount": "0x88" + }, + { + "index": "0x89", + "validatorIndex": "0x89", + "address": "0x0000000000000000000000000000000000008900", + "amount": "0x89" + }, + { + "index": "0x8a", + "validatorIndex": "0x8a", + "address": "0x0000000000000000000000000000000000008a00", + "amount": "0x8a" + }, + { + "index": "0x8b", + "validatorIndex": "0x8b", + "address": "0x0000000000000000000000000000000000008b00", + "amount": "0x8b" + }, + { + "index": "0x8c", + "validatorIndex": "0x8c", + "address": "0x0000000000000000000000000000000000008c00", + "amount": "0x8c" + }, + { + "index": "0x8d", + "validatorIndex": "0x8d", + "address": "0x0000000000000000000000000000000000008d00", + "amount": "0x8d" + }, + { + "index": "0x8e", + "validatorIndex": "0x8e", + "address": "0x0000000000000000000000000000000000008e00", + "amount": "0x8e" + }, + { + "index": "0x8f", + "validatorIndex": "0x8f", + "address": "0x0000000000000000000000000000000000008f00", + "amount": "0x8f" + }, + { + "index": "0x90", + "validatorIndex": "0x90", + "address": "0x0000000000000000000000000000000000009000", + "amount": "0x90" + }, + { + "index": "0x91", + "validatorIndex": "0x91", + "address": "0x0000000000000000000000000000000000009100", + "amount": "0x91" + }, + { + "index": "0x92", + "validatorIndex": "0x92", + "address": "0x0000000000000000000000000000000000009200", + "amount": "0x92" + }, + { + "index": "0x93", + "validatorIndex": "0x93", + "address": "0x0000000000000000000000000000000000009300", + "amount": "0x93" + }, + { + "index": "0x94", + "validatorIndex": "0x94", + "address": "0x0000000000000000000000000000000000009400", + "amount": "0x94" + }, + { + "index": "0x95", + "validatorIndex": "0x95", + "address": "0x0000000000000000000000000000000000009500", + "amount": "0x95" + }, + { + "index": "0x96", + "validatorIndex": "0x96", + "address": "0x0000000000000000000000000000000000009600", + "amount": "0x96" + }, + { + "index": "0x97", + "validatorIndex": "0x97", + "address": "0x0000000000000000000000000000000000009700", + "amount": "0x97" + }, + { + "index": "0x98", + "validatorIndex": "0x98", + "address": "0x0000000000000000000000000000000000009800", + "amount": "0x98" + }, + { + "index": "0x99", + "validatorIndex": "0x99", + "address": "0x0000000000000000000000000000000000009900", + "amount": "0x99" + }, + { + "index": "0x9a", + "validatorIndex": "0x9a", + "address": "0x0000000000000000000000000000000000009a00", + "amount": "0x9a" + }, + { + "index": "0x9b", + "validatorIndex": "0x9b", + "address": "0x0000000000000000000000000000000000009b00", + "amount": "0x9b" + }, + { + "index": "0x9c", + "validatorIndex": "0x9c", + "address": "0x0000000000000000000000000000000000009c00", + "amount": "0x9c" + }, + { + "index": "0x9d", + "validatorIndex": "0x9d", + "address": "0x0000000000000000000000000000000000009d00", + "amount": "0x9d" + }, + { + "index": "0x9e", + "validatorIndex": "0x9e", + "address": "0x0000000000000000000000000000000000009e00", + "amount": "0x9e" + }, + { + "index": "0x9f", + "validatorIndex": "0x9f", + "address": "0x0000000000000000000000000000000000009f00", + "amount": "0x9f" + }, + { + "index": "0xa0", + "validatorIndex": "0xa0", + "address": "0x000000000000000000000000000000000000a000", + "amount": "0xa0" + }, + { + "index": "0xa1", + "validatorIndex": "0xa1", + "address": "0x000000000000000000000000000000000000a100", + "amount": "0xa1" + }, + { + "index": "0xa2", + "validatorIndex": "0xa2", + "address": "0x000000000000000000000000000000000000a200", + "amount": "0xa2" + }, + { + "index": "0xa3", + "validatorIndex": "0xa3", + "address": "0x000000000000000000000000000000000000a300", + "amount": "0xa3" + }, + { + "index": "0xa4", + "validatorIndex": "0xa4", + "address": "0x000000000000000000000000000000000000a400", + "amount": "0xa4" + }, + { + "index": "0xa5", + "validatorIndex": "0xa5", + "address": "0x000000000000000000000000000000000000a500", + "amount": "0xa5" + }, + { + "index": "0xa6", + "validatorIndex": "0xa6", + "address": "0x000000000000000000000000000000000000a600", + "amount": "0xa6" + }, + { + "index": "0xa7", + "validatorIndex": "0xa7", + "address": "0x000000000000000000000000000000000000a700", + "amount": "0xa7" + }, + { + "index": "0xa8", + "validatorIndex": "0xa8", + "address": "0x000000000000000000000000000000000000a800", + "amount": "0xa8" + }, + { + "index": "0xa9", + "validatorIndex": "0xa9", + "address": "0x000000000000000000000000000000000000a900", + "amount": "0xa9" + }, + { + "index": "0xaa", + "validatorIndex": "0xaa", + "address": "0x000000000000000000000000000000000000aa00", + "amount": "0xaa" + }, + { + "index": "0xab", + "validatorIndex": "0xab", + "address": "0x000000000000000000000000000000000000ab00", + "amount": "0xab" + }, + { + "index": "0xac", + "validatorIndex": "0xac", + "address": "0x000000000000000000000000000000000000ac00", + "amount": "0xac" + }, + { + "index": "0xad", + "validatorIndex": "0xad", + "address": "0x000000000000000000000000000000000000ad00", + "amount": "0xad" + }, + { + "index": "0xae", + "validatorIndex": "0xae", + "address": "0x000000000000000000000000000000000000ae00", + "amount": "0xae" + }, + { + "index": "0xaf", + "validatorIndex": "0xaf", + "address": "0x000000000000000000000000000000000000af00", + "amount": "0xaf" + }, + { + "index": "0xb0", + "validatorIndex": "0xb0", + "address": "0x000000000000000000000000000000000000b000", + "amount": "0xb0" + }, + { + "index": "0xb1", + "validatorIndex": "0xb1", + "address": "0x000000000000000000000000000000000000b100", + "amount": "0xb1" + }, + { + "index": "0xb2", + "validatorIndex": "0xb2", + "address": "0x000000000000000000000000000000000000b200", + "amount": "0xb2" + }, + { + "index": "0xb3", + "validatorIndex": "0xb3", + "address": "0x000000000000000000000000000000000000b300", + "amount": "0xb3" + }, + { + "index": "0xb4", + "validatorIndex": "0xb4", + "address": "0x000000000000000000000000000000000000b400", + "amount": "0xb4" + }, + { + "index": "0xb5", + "validatorIndex": "0xb5", + "address": "0x000000000000000000000000000000000000b500", + "amount": "0xb5" + }, + { + "index": "0xb6", + "validatorIndex": "0xb6", + "address": "0x000000000000000000000000000000000000b600", + "amount": "0xb6" + }, + { + "index": "0xb7", + "validatorIndex": "0xb7", + "address": "0x000000000000000000000000000000000000b700", + "amount": "0xb7" + }, + { + "index": "0xb8", + "validatorIndex": "0xb8", + "address": "0x000000000000000000000000000000000000b800", + "amount": "0xb8" + }, + { + "index": "0xb9", + "validatorIndex": "0xb9", + "address": "0x000000000000000000000000000000000000b900", + "amount": "0xb9" + }, + { + "index": "0xba", + "validatorIndex": "0xba", + "address": "0x000000000000000000000000000000000000ba00", + "amount": "0xba" + }, + { + "index": "0xbb", + "validatorIndex": "0xbb", + "address": "0x000000000000000000000000000000000000bb00", + "amount": "0xbb" + }, + { + "index": "0xbc", + "validatorIndex": "0xbc", + "address": "0x000000000000000000000000000000000000bc00", + "amount": "0xbc" + }, + { + "index": "0xbd", + "validatorIndex": "0xbd", + "address": "0x000000000000000000000000000000000000bd00", + "amount": "0xbd" + }, + { + "index": "0xbe", + "validatorIndex": "0xbe", + "address": "0x000000000000000000000000000000000000be00", + "amount": "0xbe" + }, + { + "index": "0xbf", + "validatorIndex": "0xbf", + "address": "0x000000000000000000000000000000000000bf00", + "amount": "0xbf" + }, + { + "index": "0xc0", + "validatorIndex": "0xc0", + "address": "0x000000000000000000000000000000000000c000", + "amount": "0xc0" + }, + { + "index": "0xc1", + "validatorIndex": "0xc1", + "address": "0x000000000000000000000000000000000000c100", + "amount": "0xc1" + }, + { + "index": "0xc2", + "validatorIndex": "0xc2", + "address": "0x000000000000000000000000000000000000c200", + "amount": "0xc2" + }, + { + "index": "0xc3", + "validatorIndex": "0xc3", + "address": "0x000000000000000000000000000000000000c300", + "amount": "0xc3" + }, + { + "index": "0xc4", + "validatorIndex": "0xc4", + "address": "0x000000000000000000000000000000000000c400", + "amount": "0xc4" + }, + { + "index": "0xc5", + "validatorIndex": "0xc5", + "address": "0x000000000000000000000000000000000000c500", + "amount": "0xc5" + }, + { + "index": "0xc6", + "validatorIndex": "0xc6", + "address": "0x000000000000000000000000000000000000c600", + "amount": "0xc6" + }, + { + "index": "0xc7", + "validatorIndex": "0xc7", + "address": "0x000000000000000000000000000000000000c700", + "amount": "0xc7" + }, + { + "index": "0xc8", + "validatorIndex": "0xc8", + "address": "0x000000000000000000000000000000000000c800", + "amount": "0xc8" + }, + { + "index": "0xc9", + "validatorIndex": "0xc9", + "address": "0x000000000000000000000000000000000000c900", + "amount": "0xc9" + }, + { + "index": "0xca", + "validatorIndex": "0xca", + "address": "0x000000000000000000000000000000000000ca00", + "amount": "0xca" + }, + { + "index": "0xcb", + "validatorIndex": "0xcb", + "address": "0x000000000000000000000000000000000000cb00", + "amount": "0xcb" + }, + { + "index": "0xcc", + "validatorIndex": "0xcc", + "address": "0x000000000000000000000000000000000000cc00", + "amount": "0xcc" + }, + { + "index": "0xcd", + "validatorIndex": "0xcd", + "address": "0x000000000000000000000000000000000000cd00", + "amount": "0xcd" + }, + { + "index": "0xce", + "validatorIndex": "0xce", + "address": "0x000000000000000000000000000000000000ce00", + "amount": "0xce" + }, + { + "index": "0xcf", + "validatorIndex": "0xcf", + "address": "0x000000000000000000000000000000000000cf00", + "amount": "0xcf" + }, + { + "index": "0xd0", + "validatorIndex": "0xd0", + "address": "0x000000000000000000000000000000000000d000", + "amount": "0xd0" + }, + { + "index": "0xd1", + "validatorIndex": "0xd1", + "address": "0x000000000000000000000000000000000000d100", + "amount": "0xd1" + }, + { + "index": "0xd2", + "validatorIndex": "0xd2", + "address": "0x000000000000000000000000000000000000d200", + "amount": "0xd2" + }, + { + "index": "0xd3", + "validatorIndex": "0xd3", + "address": "0x000000000000000000000000000000000000d300", + "amount": "0xd3" + }, + { + "index": "0xd4", + "validatorIndex": "0xd4", + "address": "0x000000000000000000000000000000000000d400", + "amount": "0xd4" + }, + { + "index": "0xd5", + "validatorIndex": "0xd5", + "address": "0x000000000000000000000000000000000000d500", + "amount": "0xd5" + }, + { + "index": "0xd6", + "validatorIndex": "0xd6", + "address": "0x000000000000000000000000000000000000d600", + "amount": "0xd6" + }, + { + "index": "0xd7", + "validatorIndex": "0xd7", + "address": "0x000000000000000000000000000000000000d700", + "amount": "0xd7" + }, + { + "index": "0xd8", + "validatorIndex": "0xd8", + "address": "0x000000000000000000000000000000000000d800", + "amount": "0xd8" + }, + { + "index": "0xd9", + "validatorIndex": "0xd9", + "address": "0x000000000000000000000000000000000000d900", + "amount": "0xd9" + }, + { + "index": "0xda", + "validatorIndex": "0xda", + "address": "0x000000000000000000000000000000000000da00", + "amount": "0xda" + }, + { + "index": "0xdb", + "validatorIndex": "0xdb", + "address": "0x000000000000000000000000000000000000db00", + "amount": "0xdb" + }, + { + "index": "0xdc", + "validatorIndex": "0xdc", + "address": "0x000000000000000000000000000000000000dc00", + "amount": "0xdc" + }, + { + "index": "0xdd", + "validatorIndex": "0xdd", + "address": "0x000000000000000000000000000000000000dd00", + "amount": "0xdd" + }, + { + "index": "0xde", + "validatorIndex": "0xde", + "address": "0x000000000000000000000000000000000000de00", + "amount": "0xde" + }, + { + "index": "0xdf", + "validatorIndex": "0xdf", + "address": "0x000000000000000000000000000000000000df00", + "amount": "0xdf" + }, + { + "index": "0xe0", + "validatorIndex": "0xe0", + "address": "0x000000000000000000000000000000000000e000", + "amount": "0xe0" + }, + { + "index": "0xe1", + "validatorIndex": "0xe1", + "address": "0x000000000000000000000000000000000000e100", + "amount": "0xe1" + }, + { + "index": "0xe2", + "validatorIndex": "0xe2", + "address": "0x000000000000000000000000000000000000e200", + "amount": "0xe2" + }, + { + "index": "0xe3", + "validatorIndex": "0xe3", + "address": "0x000000000000000000000000000000000000e300", + "amount": "0xe3" + }, + { + "index": "0xe4", + "validatorIndex": "0xe4", + "address": "0x000000000000000000000000000000000000e400", + "amount": "0xe4" + }, + { + "index": "0xe5", + "validatorIndex": "0xe5", + "address": "0x000000000000000000000000000000000000e500", + "amount": "0xe5" + }, + { + "index": "0xe6", + "validatorIndex": "0xe6", + "address": "0x000000000000000000000000000000000000e600", + "amount": "0xe6" + }, + { + "index": "0xe7", + "validatorIndex": "0xe7", + "address": "0x000000000000000000000000000000000000e700", + "amount": "0xe7" + }, + { + "index": "0xe8", + "validatorIndex": "0xe8", + "address": "0x000000000000000000000000000000000000e800", + "amount": "0xe8" + }, + { + "index": "0xe9", + "validatorIndex": "0xe9", + "address": "0x000000000000000000000000000000000000e900", + "amount": "0xe9" + }, + { + "index": "0xea", + "validatorIndex": "0xea", + "address": "0x000000000000000000000000000000000000ea00", + "amount": "0xea" + }, + { + "index": "0xeb", + "validatorIndex": "0xeb", + "address": "0x000000000000000000000000000000000000eb00", + "amount": "0xeb" + }, + { + "index": "0xec", + "validatorIndex": "0xec", + "address": "0x000000000000000000000000000000000000ec00", + "amount": "0xec" + }, + { + "index": "0xed", + "validatorIndex": "0xed", + "address": "0x000000000000000000000000000000000000ed00", + "amount": "0xed" + }, + { + "index": "0xee", + "validatorIndex": "0xee", + "address": "0x000000000000000000000000000000000000ee00", + "amount": "0xee" + }, + { + "index": "0xef", + "validatorIndex": "0xef", + "address": "0x000000000000000000000000000000000000ef00", + "amount": "0xef" + }, + { + "index": "0xf0", + "validatorIndex": "0xf0", + "address": "0x000000000000000000000000000000000000f000", + "amount": "0xf0" + }, + { + "index": "0xf1", + "validatorIndex": "0xf1", + "address": "0x000000000000000000000000000000000000f100", + "amount": "0xf1" + }, + { + "index": "0xf2", + "validatorIndex": "0xf2", + "address": "0x000000000000000000000000000000000000f200", + "amount": "0xf2" + }, + { + "index": "0xf3", + "validatorIndex": "0xf3", + "address": "0x000000000000000000000000000000000000f300", + "amount": "0xf3" + }, + { + "index": "0xf4", + "validatorIndex": "0xf4", + "address": "0x000000000000000000000000000000000000f400", + "amount": "0xf4" + }, + { + "index": "0xf5", + "validatorIndex": "0xf5", + "address": "0x000000000000000000000000000000000000f500", + "amount": "0xf5" + }, + { + "index": "0xf6", + "validatorIndex": "0xf6", + "address": "0x000000000000000000000000000000000000f600", + "amount": "0xf6" + }, + { + "index": "0xf7", + "validatorIndex": "0xf7", + "address": "0x000000000000000000000000000000000000f700", + "amount": "0xf7" + }, + { + "index": "0xf8", + "validatorIndex": "0xf8", + "address": "0x000000000000000000000000000000000000f800", + "amount": "0xf8" + }, + { + "index": "0xf9", + "validatorIndex": "0xf9", + "address": "0x000000000000000000000000000000000000f900", + "amount": "0xf9" + }, + { + "index": "0xfa", + "validatorIndex": "0xfa", + "address": "0x000000000000000000000000000000000000fa00", + "amount": "0xfa" + }, + { + "index": "0xfb", + "validatorIndex": "0xfb", + "address": "0x000000000000000000000000000000000000fb00", + "amount": "0xfb" + }, + { + "index": "0xfc", + "validatorIndex": "0xfc", + "address": "0x000000000000000000000000000000000000fc00", + "amount": "0xfc" + }, + { + "index": "0xfd", + "validatorIndex": "0xfd", + "address": "0x000000000000000000000000000000000000fd00", + "amount": "0xfd" + }, + { + "index": "0xfe", + "validatorIndex": "0xfe", + "address": "0x000000000000000000000000000000000000fe00", + "amount": "0xfe" + }, + { + "index": "0xff", + "validatorIndex": "0xff", + "address": "0x000000000000000000000000000000000000ff00", + "amount": "0xff" + }, + { + "index": "0x0100", + "validatorIndex": "0x0100", + "address": "0x0000000000000000000000000000000000010000", + "amount": "0x0100" + }, + { + "index": "0x0101", + "validatorIndex": "0x0101", + "address": "0x0000000000000000000000000000000000010100", + "amount": "0x0101" + }, + { + "index": "0x0102", + "validatorIndex": "0x0102", + "address": "0x0000000000000000000000000000000000010200", + "amount": "0x0102" + }, + { + "index": "0x0103", + "validatorIndex": "0x0103", + "address": "0x0000000000000000000000000000000000010300", + "amount": "0x0103" + }, + { + "index": "0x0104", + "validatorIndex": "0x0104", + "address": "0x0000000000000000000000000000000000010400", + "amount": "0x0104" + }, + { + "index": "0x0105", + "validatorIndex": "0x0105", + "address": "0x0000000000000000000000000000000000010500", + "amount": "0x0105" + }, + { + "index": "0x0106", + "validatorIndex": "0x0106", + "address": "0x0000000000000000000000000000000000010600", + "amount": "0x0106" + }, + { + "index": "0x0107", + "validatorIndex": "0x0107", + "address": "0x0000000000000000000000000000000000010700", + "amount": "0x0107" + }, + { + "index": "0x0108", + "validatorIndex": "0x0108", + "address": "0x0000000000000000000000000000000000010800", + "amount": "0x0108" + }, + { + "index": "0x0109", + "validatorIndex": "0x0109", + "address": "0x0000000000000000000000000000000000010900", + "amount": "0x0109" + }, + { + "index": "0x010a", + "validatorIndex": "0x010a", + "address": "0x0000000000000000000000000000000000010a00", + "amount": "0x010a" + }, + { + "index": "0x010b", + "validatorIndex": "0x010b", + "address": "0x0000000000000000000000000000000000010b00", + "amount": "0x010b" + }, + { + "index": "0x010c", + "validatorIndex": "0x010c", + "address": "0x0000000000000000000000000000000000010c00", + "amount": "0x010c" + }, + { + "index": "0x010d", + "validatorIndex": "0x010d", + "address": "0x0000000000000000000000000000000000010d00", + "amount": "0x010d" + }, + { + "index": "0x010e", + "validatorIndex": "0x010e", + "address": "0x0000000000000000000000000000000000010e00", + "amount": "0x010e" + }, + { + "index": "0x010f", + "validatorIndex": "0x010f", + "address": "0x0000000000000000000000000000000000010f00", + "amount": "0x010f" + }, + { + "index": "0x0110", + "validatorIndex": "0x0110", + "address": "0x0000000000000000000000000000000000011000", + "amount": "0x0110" + }, + { + "index": "0x0111", + "validatorIndex": "0x0111", + "address": "0x0000000000000000000000000000000000011100", + "amount": "0x0111" + }, + { + "index": "0x0112", + "validatorIndex": "0x0112", + "address": "0x0000000000000000000000000000000000011200", + "amount": "0x0112" + }, + { + "index": "0x0113", + "validatorIndex": "0x0113", + "address": "0x0000000000000000000000000000000000011300", + "amount": "0x0113" + }, + { + "index": "0x0114", + "validatorIndex": "0x0114", + "address": "0x0000000000000000000000000000000000011400", + "amount": "0x0114" + }, + { + "index": "0x0115", + "validatorIndex": "0x0115", + "address": "0x0000000000000000000000000000000000011500", + "amount": "0x0115" + }, + { + "index": "0x0116", + "validatorIndex": "0x0116", + "address": "0x0000000000000000000000000000000000011600", + "amount": "0x0116" + }, + { + "index": "0x0117", + "validatorIndex": "0x0117", + "address": "0x0000000000000000000000000000000000011700", + "amount": "0x0117" + }, + { + "index": "0x0118", + "validatorIndex": "0x0118", + "address": "0x0000000000000000000000000000000000011800", + "amount": "0x0118" + }, + { + "index": "0x0119", + "validatorIndex": "0x0119", + "address": "0x0000000000000000000000000000000000011900", + "amount": "0x0119" + }, + { + "index": "0x011a", + "validatorIndex": "0x011a", + "address": "0x0000000000000000000000000000000000011a00", + "amount": "0x011a" + }, + { + "index": "0x011b", + "validatorIndex": "0x011b", + "address": "0x0000000000000000000000000000000000011b00", + "amount": "0x011b" + }, + { + "index": "0x011c", + "validatorIndex": "0x011c", + "address": "0x0000000000000000000000000000000000011c00", + "amount": "0x011c" + }, + { + "index": "0x011d", + "validatorIndex": "0x011d", + "address": "0x0000000000000000000000000000000000011d00", + "amount": "0x011d" + }, + { + "index": "0x011e", + "validatorIndex": "0x011e", + "address": "0x0000000000000000000000000000000000011e00", + "amount": "0x011e" + }, + { + "index": "0x011f", + "validatorIndex": "0x011f", + "address": "0x0000000000000000000000000000000000011f00", + "amount": "0x011f" + }, + { + "index": "0x0120", + "validatorIndex": "0x0120", + "address": "0x0000000000000000000000000000000000012000", + "amount": "0x0120" + }, + { + "index": "0x0121", + "validatorIndex": "0x0121", + "address": "0x0000000000000000000000000000000000012100", + "amount": "0x0121" + }, + { + "index": "0x0122", + "validatorIndex": "0x0122", + "address": "0x0000000000000000000000000000000000012200", + "amount": "0x0122" + }, + { + "index": "0x0123", + "validatorIndex": "0x0123", + "address": "0x0000000000000000000000000000000000012300", + "amount": "0x0123" + }, + { + "index": "0x0124", + "validatorIndex": "0x0124", + "address": "0x0000000000000000000000000000000000012400", + "amount": "0x0124" + }, + { + "index": "0x0125", + "validatorIndex": "0x0125", + "address": "0x0000000000000000000000000000000000012500", + "amount": "0x0125" + }, + { + "index": "0x0126", + "validatorIndex": "0x0126", + "address": "0x0000000000000000000000000000000000012600", + "amount": "0x0126" + }, + { + "index": "0x0127", + "validatorIndex": "0x0127", + "address": "0x0000000000000000000000000000000000012700", + "amount": "0x0127" + }, + { + "index": "0x0128", + "validatorIndex": "0x0128", + "address": "0x0000000000000000000000000000000000012800", + "amount": "0x0128" + }, + { + "index": "0x0129", + "validatorIndex": "0x0129", + "address": "0x0000000000000000000000000000000000012900", + "amount": "0x0129" + }, + { + "index": "0x012a", + "validatorIndex": "0x012a", + "address": "0x0000000000000000000000000000000000012a00", + "amount": "0x012a" + }, + { + "index": "0x012b", + "validatorIndex": "0x012b", + "address": "0x0000000000000000000000000000000000012b00", + "amount": "0x012b" + }, + { + "index": "0x012c", + "validatorIndex": "0x012c", + "address": "0x0000000000000000000000000000000000012c00", + "amount": "0x012c" + }, + { + "index": "0x012d", + "validatorIndex": "0x012d", + "address": "0x0000000000000000000000000000000000012d00", + "amount": "0x012d" + }, + { + "index": "0x012e", + "validatorIndex": "0x012e", + "address": "0x0000000000000000000000000000000000012e00", + "amount": "0x012e" + }, + { + "index": "0x012f", + "validatorIndex": "0x012f", + "address": "0x0000000000000000000000000000000000012f00", + "amount": "0x012f" + }, + { + "index": "0x0130", + "validatorIndex": "0x0130", + "address": "0x0000000000000000000000000000000000013000", + "amount": "0x0130" + }, + { + "index": "0x0131", + "validatorIndex": "0x0131", + "address": "0x0000000000000000000000000000000000013100", + "amount": "0x0131" + }, + { + "index": "0x0132", + "validatorIndex": "0x0132", + "address": "0x0000000000000000000000000000000000013200", + "amount": "0x0132" + }, + { + "index": "0x0133", + "validatorIndex": "0x0133", + "address": "0x0000000000000000000000000000000000013300", + "amount": "0x0133" + }, + { + "index": "0x0134", + "validatorIndex": "0x0134", + "address": "0x0000000000000000000000000000000000013400", + "amount": "0x0134" + }, + { + "index": "0x0135", + "validatorIndex": "0x0135", + "address": "0x0000000000000000000000000000000000013500", + "amount": "0x0135" + }, + { + "index": "0x0136", + "validatorIndex": "0x0136", + "address": "0x0000000000000000000000000000000000013600", + "amount": "0x0136" + }, + { + "index": "0x0137", + "validatorIndex": "0x0137", + "address": "0x0000000000000000000000000000000000013700", + "amount": "0x0137" + }, + { + "index": "0x0138", + "validatorIndex": "0x0138", + "address": "0x0000000000000000000000000000000000013800", + "amount": "0x0138" + }, + { + "index": "0x0139", + "validatorIndex": "0x0139", + "address": "0x0000000000000000000000000000000000013900", + "amount": "0x0139" + }, + { + "index": "0x013a", + "validatorIndex": "0x013a", + "address": "0x0000000000000000000000000000000000013a00", + "amount": "0x013a" + }, + { + "index": "0x013b", + "validatorIndex": "0x013b", + "address": "0x0000000000000000000000000000000000013b00", + "amount": "0x013b" + }, + { + "index": "0x013c", + "validatorIndex": "0x013c", + "address": "0x0000000000000000000000000000000000013c00", + "amount": "0x013c" + }, + { + "index": "0x013d", + "validatorIndex": "0x013d", + "address": "0x0000000000000000000000000000000000013d00", + "amount": "0x013d" + }, + { + "index": "0x013e", + "validatorIndex": "0x013e", + "address": "0x0000000000000000000000000000000000013e00", + "amount": "0x013e" + }, + { + "index": "0x013f", + "validatorIndex": "0x013f", + "address": "0x0000000000000000000000000000000000013f00", + "amount": "0x013f" + }, + { + "index": "0x0140", + "validatorIndex": "0x0140", + "address": "0x0000000000000000000000000000000000014000", + "amount": "0x0140" + }, + { + "index": "0x0141", + "validatorIndex": "0x0141", + "address": "0x0000000000000000000000000000000000014100", + "amount": "0x0141" + }, + { + "index": "0x0142", + "validatorIndex": "0x0142", + "address": "0x0000000000000000000000000000000000014200", + "amount": "0x0142" + }, + { + "index": "0x0143", + "validatorIndex": "0x0143", + "address": "0x0000000000000000000000000000000000014300", + "amount": "0x0143" + }, + { + "index": "0x0144", + "validatorIndex": "0x0144", + "address": "0x0000000000000000000000000000000000014400", + "amount": "0x0144" + }, + { + "index": "0x0145", + "validatorIndex": "0x0145", + "address": "0x0000000000000000000000000000000000014500", + "amount": "0x0145" + }, + { + "index": "0x0146", + "validatorIndex": "0x0146", + "address": "0x0000000000000000000000000000000000014600", + "amount": "0x0146" + }, + { + "index": "0x0147", + "validatorIndex": "0x0147", + "address": "0x0000000000000000000000000000000000014700", + "amount": "0x0147" + }, + { + "index": "0x0148", + "validatorIndex": "0x0148", + "address": "0x0000000000000000000000000000000000014800", + "amount": "0x0148" + }, + { + "index": "0x0149", + "validatorIndex": "0x0149", + "address": "0x0000000000000000000000000000000000014900", + "amount": "0x0149" + }, + { + "index": "0x014a", + "validatorIndex": "0x014a", + "address": "0x0000000000000000000000000000000000014a00", + "amount": "0x014a" + }, + { + "index": "0x014b", + "validatorIndex": "0x014b", + "address": "0x0000000000000000000000000000000000014b00", + "amount": "0x014b" + }, + { + "index": "0x014c", + "validatorIndex": "0x014c", + "address": "0x0000000000000000000000000000000000014c00", + "amount": "0x014c" + }, + { + "index": "0x014d", + "validatorIndex": "0x014d", + "address": "0x0000000000000000000000000000000000014d00", + "amount": "0x014d" + }, + { + "index": "0x014e", + "validatorIndex": "0x014e", + "address": "0x0000000000000000000000000000000000014e00", + "amount": "0x014e" + }, + { + "index": "0x014f", + "validatorIndex": "0x014f", + "address": "0x0000000000000000000000000000000000014f00", + "amount": "0x014f" + }, + { + "index": "0x0150", + "validatorIndex": "0x0150", + "address": "0x0000000000000000000000000000000000015000", + "amount": "0x0150" + }, + { + "index": "0x0151", + "validatorIndex": "0x0151", + "address": "0x0000000000000000000000000000000000015100", + "amount": "0x0151" + }, + { + "index": "0x0152", + "validatorIndex": "0x0152", + "address": "0x0000000000000000000000000000000000015200", + "amount": "0x0152" + }, + { + "index": "0x0153", + "validatorIndex": "0x0153", + "address": "0x0000000000000000000000000000000000015300", + "amount": "0x0153" + }, + { + "index": "0x0154", + "validatorIndex": "0x0154", + "address": "0x0000000000000000000000000000000000015400", + "amount": "0x0154" + }, + { + "index": "0x0155", + "validatorIndex": "0x0155", + "address": "0x0000000000000000000000000000000000015500", + "amount": "0x0155" + }, + { + "index": "0x0156", + "validatorIndex": "0x0156", + "address": "0x0000000000000000000000000000000000015600", + "amount": "0x0156" + }, + { + "index": "0x0157", + "validatorIndex": "0x0157", + "address": "0x0000000000000000000000000000000000015700", + "amount": "0x0157" + }, + { + "index": "0x0158", + "validatorIndex": "0x0158", + "address": "0x0000000000000000000000000000000000015800", + "amount": "0x0158" + }, + { + "index": "0x0159", + "validatorIndex": "0x0159", + "address": "0x0000000000000000000000000000000000015900", + "amount": "0x0159" + }, + { + "index": "0x015a", + "validatorIndex": "0x015a", + "address": "0x0000000000000000000000000000000000015a00", + "amount": "0x015a" + }, + { + "index": "0x015b", + "validatorIndex": "0x015b", + "address": "0x0000000000000000000000000000000000015b00", + "amount": "0x015b" + }, + { + "index": "0x015c", + "validatorIndex": "0x015c", + "address": "0x0000000000000000000000000000000000015c00", + "amount": "0x015c" + }, + { + "index": "0x015d", + "validatorIndex": "0x015d", + "address": "0x0000000000000000000000000000000000015d00", + "amount": "0x015d" + }, + { + "index": "0x015e", + "validatorIndex": "0x015e", + "address": "0x0000000000000000000000000000000000015e00", + "amount": "0x015e" + }, + { + "index": "0x015f", + "validatorIndex": "0x015f", + "address": "0x0000000000000000000000000000000000015f00", + "amount": "0x015f" + }, + { + "index": "0x0160", + "validatorIndex": "0x0160", + "address": "0x0000000000000000000000000000000000016000", + "amount": "0x0160" + }, + { + "index": "0x0161", + "validatorIndex": "0x0161", + "address": "0x0000000000000000000000000000000000016100", + "amount": "0x0161" + }, + { + "index": "0x0162", + "validatorIndex": "0x0162", + "address": "0x0000000000000000000000000000000000016200", + "amount": "0x0162" + }, + { + "index": "0x0163", + "validatorIndex": "0x0163", + "address": "0x0000000000000000000000000000000000016300", + "amount": "0x0163" + }, + { + "index": "0x0164", + "validatorIndex": "0x0164", + "address": "0x0000000000000000000000000000000000016400", + "amount": "0x0164" + }, + { + "index": "0x0165", + "validatorIndex": "0x0165", + "address": "0x0000000000000000000000000000000000016500", + "amount": "0x0165" + }, + { + "index": "0x0166", + "validatorIndex": "0x0166", + "address": "0x0000000000000000000000000000000000016600", + "amount": "0x0166" + }, + { + "index": "0x0167", + "validatorIndex": "0x0167", + "address": "0x0000000000000000000000000000000000016700", + "amount": "0x0167" + }, + { + "index": "0x0168", + "validatorIndex": "0x0168", + "address": "0x0000000000000000000000000000000000016800", + "amount": "0x0168" + }, + { + "index": "0x0169", + "validatorIndex": "0x0169", + "address": "0x0000000000000000000000000000000000016900", + "amount": "0x0169" + }, + { + "index": "0x016a", + "validatorIndex": "0x016a", + "address": "0x0000000000000000000000000000000000016a00", + "amount": "0x016a" + }, + { + "index": "0x016b", + "validatorIndex": "0x016b", + "address": "0x0000000000000000000000000000000000016b00", + "amount": "0x016b" + }, + { + "index": "0x016c", + "validatorIndex": "0x016c", + "address": "0x0000000000000000000000000000000000016c00", + "amount": "0x016c" + }, + { + "index": "0x016d", + "validatorIndex": "0x016d", + "address": "0x0000000000000000000000000000000000016d00", + "amount": "0x016d" + }, + { + "index": "0x016e", + "validatorIndex": "0x016e", + "address": "0x0000000000000000000000000000000000016e00", + "amount": "0x016e" + }, + { + "index": "0x016f", + "validatorIndex": "0x016f", + "address": "0x0000000000000000000000000000000000016f00", + "amount": "0x016f" + }, + { + "index": "0x0170", + "validatorIndex": "0x0170", + "address": "0x0000000000000000000000000000000000017000", + "amount": "0x0170" + }, + { + "index": "0x0171", + "validatorIndex": "0x0171", + "address": "0x0000000000000000000000000000000000017100", + "amount": "0x0171" + }, + { + "index": "0x0172", + "validatorIndex": "0x0172", + "address": "0x0000000000000000000000000000000000017200", + "amount": "0x0172" + }, + { + "index": "0x0173", + "validatorIndex": "0x0173", + "address": "0x0000000000000000000000000000000000017300", + "amount": "0x0173" + }, + { + "index": "0x0174", + "validatorIndex": "0x0174", + "address": "0x0000000000000000000000000000000000017400", + "amount": "0x0174" + }, + { + "index": "0x0175", + "validatorIndex": "0x0175", + "address": "0x0000000000000000000000000000000000017500", + "amount": "0x0175" + }, + { + "index": "0x0176", + "validatorIndex": "0x0176", + "address": "0x0000000000000000000000000000000000017600", + "amount": "0x0176" + }, + { + "index": "0x0177", + "validatorIndex": "0x0177", + "address": "0x0000000000000000000000000000000000017700", + "amount": "0x0177" + }, + { + "index": "0x0178", + "validatorIndex": "0x0178", + "address": "0x0000000000000000000000000000000000017800", + "amount": "0x0178" + }, + { + "index": "0x0179", + "validatorIndex": "0x0179", + "address": "0x0000000000000000000000000000000000017900", + "amount": "0x0179" + }, + { + "index": "0x017a", + "validatorIndex": "0x017a", + "address": "0x0000000000000000000000000000000000017a00", + "amount": "0x017a" + }, + { + "index": "0x017b", + "validatorIndex": "0x017b", + "address": "0x0000000000000000000000000000000000017b00", + "amount": "0x017b" + }, + { + "index": "0x017c", + "validatorIndex": "0x017c", + "address": "0x0000000000000000000000000000000000017c00", + "amount": "0x017c" + }, + { + "index": "0x017d", + "validatorIndex": "0x017d", + "address": "0x0000000000000000000000000000000000017d00", + "amount": "0x017d" + }, + { + "index": "0x017e", + "validatorIndex": "0x017e", + "address": "0x0000000000000000000000000000000000017e00", + "amount": "0x017e" + }, + { + "index": "0x017f", + "validatorIndex": "0x017f", + "address": "0x0000000000000000000000000000000000017f00", + "amount": "0x017f" + }, + { + "index": "0x0180", + "validatorIndex": "0x0180", + "address": "0x0000000000000000000000000000000000018000", + "amount": "0x0180" + }, + { + "index": "0x0181", + "validatorIndex": "0x0181", + "address": "0x0000000000000000000000000000000000018100", + "amount": "0x0181" + }, + { + "index": "0x0182", + "validatorIndex": "0x0182", + "address": "0x0000000000000000000000000000000000018200", + "amount": "0x0182" + }, + { + "index": "0x0183", + "validatorIndex": "0x0183", + "address": "0x0000000000000000000000000000000000018300", + "amount": "0x0183" + }, + { + "index": "0x0184", + "validatorIndex": "0x0184", + "address": "0x0000000000000000000000000000000000018400", + "amount": "0x0184" + }, + { + "index": "0x0185", + "validatorIndex": "0x0185", + "address": "0x0000000000000000000000000000000000018500", + "amount": "0x0185" + }, + { + "index": "0x0186", + "validatorIndex": "0x0186", + "address": "0x0000000000000000000000000000000000018600", + "amount": "0x0186" + }, + { + "index": "0x0187", + "validatorIndex": "0x0187", + "address": "0x0000000000000000000000000000000000018700", + "amount": "0x0187" + }, + { + "index": "0x0188", + "validatorIndex": "0x0188", + "address": "0x0000000000000000000000000000000000018800", + "amount": "0x0188" + }, + { + "index": "0x0189", + "validatorIndex": "0x0189", + "address": "0x0000000000000000000000000000000000018900", + "amount": "0x0189" + }, + { + "index": "0x018a", + "validatorIndex": "0x018a", + "address": "0x0000000000000000000000000000000000018a00", + "amount": "0x018a" + }, + { + "index": "0x018b", + "validatorIndex": "0x018b", + "address": "0x0000000000000000000000000000000000018b00", + "amount": "0x018b" + }, + { + "index": "0x018c", + "validatorIndex": "0x018c", + "address": "0x0000000000000000000000000000000000018c00", + "amount": "0x018c" + }, + { + "index": "0x018d", + "validatorIndex": "0x018d", + "address": "0x0000000000000000000000000000000000018d00", + "amount": "0x018d" + }, + { + "index": "0x018e", + "validatorIndex": "0x018e", + "address": "0x0000000000000000000000000000000000018e00", + "amount": "0x018e" + }, + { + "index": "0x018f", + "validatorIndex": "0x018f", + "address": "0x0000000000000000000000000000000000018f00", + "amount": "0x018f" + } + ] + } + ], + "lastblockhash": "0xb323560b00b34762d4c4b964182f81fe5f348ba7739804b1703dc65066606ce4", + "pre": { + "0x0000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000aa00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ab00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ac00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ad00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ae00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000af00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ba00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000bb00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000bc00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000bd00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000be00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000bf00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ca00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000cb00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000cc00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000cd00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ce00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000cf00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000da00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000db00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000dc00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000dd00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000de00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000df00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ea00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000eb00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ec00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ed00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ee00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ef00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fa00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fb00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fc00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fd00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fe00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ff00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018500": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018600": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018700": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018800": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018900": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018a00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018b00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018c00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018d00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018e00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018f00": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x77359400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000300": { + "nonce": "0x00", + "balance": "0xb2d05e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000400": { + "nonce": "0x00", + "balance": "0xee6b2800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000500": { + "nonce": "0x00", + "balance": "0x012a05f200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000600": { + "nonce": "0x00", + "balance": "0x0165a0bc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000700": { + "nonce": "0x00", + "balance": "0x01a13b8600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000800": { + "nonce": "0x00", + "balance": "0x01dcd65000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000900": { + "nonce": "0x00", + "balance": "0x0218711a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000a00": { + "nonce": "0x00", + "balance": "0x02540be400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000b00": { + "nonce": "0x00", + "balance": "0x028fa6ae00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000c00": { + "nonce": "0x00", + "balance": "0x02cb417800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000d00": { + "nonce": "0x00", + "balance": "0x0306dc4200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000e00": { + "nonce": "0x00", + "balance": "0x0342770c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000f00": { + "nonce": "0x00", + "balance": "0x037e11d600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001000": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001100": { + "nonce": "0x00", + "balance": "0x03f5476a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001200": { + "nonce": "0x00", + "balance": "0x0430e23400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001300": { + "nonce": "0x00", + "balance": "0x046c7cfe00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001400": { + "nonce": "0x00", + "balance": "0x04a817c800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001500": { + "nonce": "0x00", + "balance": "0x04e3b29200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001600": { + "nonce": "0x00", + "balance": "0x051f4d5c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001700": { + "nonce": "0x00", + "balance": "0x055ae82600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001800": { + "nonce": "0x00", + "balance": "0x059682f000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001900": { + "nonce": "0x00", + "balance": "0x05d21dba00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001a00": { + "nonce": "0x00", + "balance": "0x060db88400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001b00": { + "nonce": "0x00", + "balance": "0x0649534e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001c00": { + "nonce": "0x00", + "balance": "0x0684ee1800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001d00": { + "nonce": "0x00", + "balance": "0x06c088e200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001e00": { + "nonce": "0x00", + "balance": "0x06fc23ac00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000001f00": { + "nonce": "0x00", + "balance": "0x0737be7600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002000": { + "nonce": "0x00", + "balance": "0x0773594000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002100": { + "nonce": "0x00", + "balance": "0x07aef40a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002200": { + "nonce": "0x00", + "balance": "0x07ea8ed400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002300": { + "nonce": "0x00", + "balance": "0x0826299e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002400": { + "nonce": "0x00", + "balance": "0x0861c46800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002500": { + "nonce": "0x00", + "balance": "0x089d5f3200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002600": { + "nonce": "0x00", + "balance": "0x08d8f9fc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002700": { + "nonce": "0x00", + "balance": "0x091494c600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002800": { + "nonce": "0x00", + "balance": "0x09502f9000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002900": { + "nonce": "0x00", + "balance": "0x098bca5a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002a00": { + "nonce": "0x00", + "balance": "0x09c7652400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002b00": { + "nonce": "0x00", + "balance": "0x0a02ffee00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002c00": { + "nonce": "0x00", + "balance": "0x0a3e9ab800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002d00": { + "nonce": "0x00", + "balance": "0x0a7a358200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002e00": { + "nonce": "0x00", + "balance": "0x0ab5d04c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000002f00": { + "nonce": "0x00", + "balance": "0x0af16b1600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003000": { + "nonce": "0x00", + "balance": "0x0b2d05e000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003100": { + "nonce": "0x00", + "balance": "0x0b68a0aa00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003200": { + "nonce": "0x00", + "balance": "0x0ba43b7400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003300": { + "nonce": "0x00", + "balance": "0x0bdfd63e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003400": { + "nonce": "0x00", + "balance": "0x0c1b710800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003500": { + "nonce": "0x00", + "balance": "0x0c570bd200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003600": { + "nonce": "0x00", + "balance": "0x0c92a69c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003700": { + "nonce": "0x00", + "balance": "0x0cce416600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003800": { + "nonce": "0x00", + "balance": "0x0d09dc3000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003900": { + "nonce": "0x00", + "balance": "0x0d4576fa00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003a00": { + "nonce": "0x00", + "balance": "0x0d8111c400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003b00": { + "nonce": "0x00", + "balance": "0x0dbcac8e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003c00": { + "nonce": "0x00", + "balance": "0x0df8475800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003d00": { + "nonce": "0x00", + "balance": "0x0e33e22200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003e00": { + "nonce": "0x00", + "balance": "0x0e6f7cec00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000003f00": { + "nonce": "0x00", + "balance": "0x0eab17b600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004000": { + "nonce": "0x00", + "balance": "0x0ee6b28000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004100": { + "nonce": "0x00", + "balance": "0x0f224d4a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004200": { + "nonce": "0x00", + "balance": "0x0f5de81400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004300": { + "nonce": "0x00", + "balance": "0x0f9982de00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004400": { + "nonce": "0x00", + "balance": "0x0fd51da800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004500": { + "nonce": "0x00", + "balance": "0x1010b87200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004600": { + "nonce": "0x00", + "balance": "0x104c533c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004700": { + "nonce": "0x00", + "balance": "0x1087ee0600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004800": { + "nonce": "0x00", + "balance": "0x10c388d000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004900": { + "nonce": "0x00", + "balance": "0x10ff239a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004a00": { + "nonce": "0x00", + "balance": "0x113abe6400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004b00": { + "nonce": "0x00", + "balance": "0x1176592e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004c00": { + "nonce": "0x00", + "balance": "0x11b1f3f800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004d00": { + "nonce": "0x00", + "balance": "0x11ed8ec200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004e00": { + "nonce": "0x00", + "balance": "0x1229298c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000004f00": { + "nonce": "0x00", + "balance": "0x1264c45600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005000": { + "nonce": "0x00", + "balance": "0x12a05f2000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005100": { + "nonce": "0x00", + "balance": "0x12dbf9ea00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005200": { + "nonce": "0x00", + "balance": "0x131794b400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005300": { + "nonce": "0x00", + "balance": "0x13532f7e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005400": { + "nonce": "0x00", + "balance": "0x138eca4800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005500": { + "nonce": "0x00", + "balance": "0x13ca651200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005600": { + "nonce": "0x00", + "balance": "0x1405ffdc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005700": { + "nonce": "0x00", + "balance": "0x14419aa600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005800": { + "nonce": "0x00", + "balance": "0x147d357000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005900": { + "nonce": "0x00", + "balance": "0x14b8d03a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005a00": { + "nonce": "0x00", + "balance": "0x14f46b0400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005b00": { + "nonce": "0x00", + "balance": "0x153005ce00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005c00": { + "nonce": "0x00", + "balance": "0x156ba09800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005d00": { + "nonce": "0x00", + "balance": "0x15a73b6200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005e00": { + "nonce": "0x00", + "balance": "0x15e2d62c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000005f00": { + "nonce": "0x00", + "balance": "0x161e70f600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006000": { + "nonce": "0x00", + "balance": "0x165a0bc000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006100": { + "nonce": "0x00", + "balance": "0x1695a68a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006200": { + "nonce": "0x00", + "balance": "0x16d1415400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006300": { + "nonce": "0x00", + "balance": "0x170cdc1e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006400": { + "nonce": "0x00", + "balance": "0x174876e800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006500": { + "nonce": "0x00", + "balance": "0x178411b200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006600": { + "nonce": "0x00", + "balance": "0x17bfac7c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006700": { + "nonce": "0x00", + "balance": "0x17fb474600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006800": { + "nonce": "0x00", + "balance": "0x1836e21000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006900": { + "nonce": "0x00", + "balance": "0x18727cda00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006a00": { + "nonce": "0x00", + "balance": "0x18ae17a400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006b00": { + "nonce": "0x00", + "balance": "0x18e9b26e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006c00": { + "nonce": "0x00", + "balance": "0x19254d3800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006d00": { + "nonce": "0x00", + "balance": "0x1960e80200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006e00": { + "nonce": "0x00", + "balance": "0x199c82cc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000006f00": { + "nonce": "0x00", + "balance": "0x19d81d9600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007000": { + "nonce": "0x00", + "balance": "0x1a13b86000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007100": { + "nonce": "0x00", + "balance": "0x1a4f532a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007200": { + "nonce": "0x00", + "balance": "0x1a8aedf400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007300": { + "nonce": "0x00", + "balance": "0x1ac688be00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007400": { + "nonce": "0x00", + "balance": "0x1b02238800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007500": { + "nonce": "0x00", + "balance": "0x1b3dbe5200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007600": { + "nonce": "0x00", + "balance": "0x1b79591c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007700": { + "nonce": "0x00", + "balance": "0x1bb4f3e600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007800": { + "nonce": "0x00", + "balance": "0x1bf08eb000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007900": { + "nonce": "0x00", + "balance": "0x1c2c297a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007a00": { + "nonce": "0x00", + "balance": "0x1c67c44400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007b00": { + "nonce": "0x00", + "balance": "0x1ca35f0e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007c00": { + "nonce": "0x00", + "balance": "0x1cdef9d800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007d00": { + "nonce": "0x00", + "balance": "0x1d1a94a200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007e00": { + "nonce": "0x00", + "balance": "0x1d562f6c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000007f00": { + "nonce": "0x00", + "balance": "0x1d91ca3600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008000": { + "nonce": "0x00", + "balance": "0x1dcd650000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008100": { + "nonce": "0x00", + "balance": "0x1e08ffca00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008200": { + "nonce": "0x00", + "balance": "0x1e449a9400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008300": { + "nonce": "0x00", + "balance": "0x1e80355e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008400": { + "nonce": "0x00", + "balance": "0x1ebbd02800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008500": { + "nonce": "0x00", + "balance": "0x1ef76af200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008600": { + "nonce": "0x00", + "balance": "0x1f3305bc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008700": { + "nonce": "0x00", + "balance": "0x1f6ea08600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008800": { + "nonce": "0x00", + "balance": "0x1faa3b5000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008900": { + "nonce": "0x00", + "balance": "0x1fe5d61a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008a00": { + "nonce": "0x00", + "balance": "0x202170e400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008b00": { + "nonce": "0x00", + "balance": "0x205d0bae00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008c00": { + "nonce": "0x00", + "balance": "0x2098a67800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008d00": { + "nonce": "0x00", + "balance": "0x20d4414200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008e00": { + "nonce": "0x00", + "balance": "0x210fdc0c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000008f00": { + "nonce": "0x00", + "balance": "0x214b76d600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009000": { + "nonce": "0x00", + "balance": "0x218711a000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009100": { + "nonce": "0x00", + "balance": "0x21c2ac6a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009200": { + "nonce": "0x00", + "balance": "0x21fe473400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009300": { + "nonce": "0x00", + "balance": "0x2239e1fe00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009400": { + "nonce": "0x00", + "balance": "0x22757cc800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009500": { + "nonce": "0x00", + "balance": "0x22b1179200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009600": { + "nonce": "0x00", + "balance": "0x22ecb25c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009700": { + "nonce": "0x00", + "balance": "0x23284d2600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009800": { + "nonce": "0x00", + "balance": "0x2363e7f000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009900": { + "nonce": "0x00", + "balance": "0x239f82ba00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009a00": { + "nonce": "0x00", + "balance": "0x23db1d8400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009b00": { + "nonce": "0x00", + "balance": "0x2416b84e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009c00": { + "nonce": "0x00", + "balance": "0x2452531800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009d00": { + "nonce": "0x00", + "balance": "0x248dede200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009e00": { + "nonce": "0x00", + "balance": "0x24c988ac00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000009f00": { + "nonce": "0x00", + "balance": "0x2505237600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a000": { + "nonce": "0x00", + "balance": "0x2540be4000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a100": { + "nonce": "0x00", + "balance": "0x257c590a00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a200": { + "nonce": "0x00", + "balance": "0x25b7f3d400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a300": { + "nonce": "0x00", + "balance": "0x25f38e9e00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a400": { + "nonce": "0x00", + "balance": "0x262f296800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a500": { + "nonce": "0x00", + "balance": "0x266ac43200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a600": { + "nonce": "0x00", + "balance": "0x26a65efc00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a700": { + "nonce": "0x00", + "balance": "0x26e1f9c600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a800": { + "nonce": "0x00", + "balance": "0x271d949000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000a900": { + "nonce": "0x00", + "balance": "0x27592f5a00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000aa00": { + "nonce": "0x00", + "balance": "0x2794ca2400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ab00": { + "nonce": "0x00", + "balance": "0x27d064ee00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ac00": { + "nonce": "0x00", + "balance": "0x280bffb800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ad00": { + "nonce": "0x00", + "balance": "0x28479a8200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ae00": { + "nonce": "0x00", + "balance": "0x2883354c00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000af00": { + "nonce": "0x00", + "balance": "0x28bed01600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b000": { + "nonce": "0x00", + "balance": "0x28fa6ae000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b100": { + "nonce": "0x00", + "balance": "0x293605aa00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b200": { + "nonce": "0x00", + "balance": "0x2971a07400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b300": { + "nonce": "0x00", + "balance": "0x29ad3b3e00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b400": { + "nonce": "0x00", + "balance": "0x29e8d60800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b500": { + "nonce": "0x00", + "balance": "0x2a2470d200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b600": { + "nonce": "0x00", + "balance": "0x2a600b9c00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b700": { + "nonce": "0x00", + "balance": "0x2a9ba66600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b800": { + "nonce": "0x00", + "balance": "0x2ad7413000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000b900": { + "nonce": "0x00", + "balance": "0x2b12dbfa00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ba00": { + "nonce": "0x00", + "balance": "0x2b4e76c400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000bb00": { + "nonce": "0x00", + "balance": "0x2b8a118e00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000bc00": { + "nonce": "0x00", + "balance": "0x2bc5ac5800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000bd00": { + "nonce": "0x00", + "balance": "0x2c01472200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000be00": { + "nonce": "0x00", + "balance": "0x2c3ce1ec00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000bf00": { + "nonce": "0x00", + "balance": "0x2c787cb600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c000": { + "nonce": "0x00", + "balance": "0x2cb4178000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c100": { + "nonce": "0x00", + "balance": "0x2cefb24a00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c200": { + "nonce": "0x00", + "balance": "0x2d2b4d1400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c300": { + "nonce": "0x00", + "balance": "0x2d66e7de00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c400": { + "nonce": "0x00", + "balance": "0x2da282a800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c500": { + "nonce": "0x00", + "balance": "0x2dde1d7200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c600": { + "nonce": "0x00", + "balance": "0x2e19b83c00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c700": { + "nonce": "0x00", + "balance": "0x2e55530600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c800": { + "nonce": "0x00", + "balance": "0x2e90edd000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000c900": { + "nonce": "0x00", + "balance": "0x2ecc889a00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ca00": { + "nonce": "0x00", + "balance": "0x2f08236400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000cb00": { + "nonce": "0x00", + "balance": "0x2f43be2e00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000cc00": { + "nonce": "0x00", + "balance": "0x2f7f58f800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000cd00": { + "nonce": "0x00", + "balance": "0x2fbaf3c200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ce00": { + "nonce": "0x00", + "balance": "0x2ff68e8c00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000cf00": { + "nonce": "0x00", + "balance": "0x3032295600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d000": { + "nonce": "0x00", + "balance": "0x306dc42000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d100": { + "nonce": "0x00", + "balance": "0x30a95eea00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d200": { + "nonce": "0x00", + "balance": "0x30e4f9b400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d300": { + "nonce": "0x00", + "balance": "0x3120947e00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d400": { + "nonce": "0x00", + "balance": "0x315c2f4800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d500": { + "nonce": "0x00", + "balance": "0x3197ca1200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d600": { + "nonce": "0x00", + "balance": "0x31d364dc00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d700": { + "nonce": "0x00", + "balance": "0x320effa600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d800": { + "nonce": "0x00", + "balance": "0x324a9a7000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000d900": { + "nonce": "0x00", + "balance": "0x3286353a00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000da00": { + "nonce": "0x00", + "balance": "0x32c1d00400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000db00": { + "nonce": "0x00", + "balance": "0x32fd6ace00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000dc00": { + "nonce": "0x00", + "balance": "0x3339059800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000dd00": { + "nonce": "0x00", + "balance": "0x3374a06200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000de00": { + "nonce": "0x00", + "balance": "0x33b03b2c00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000df00": { + "nonce": "0x00", + "balance": "0x33ebd5f600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e000": { + "nonce": "0x00", + "balance": "0x342770c000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e100": { + "nonce": "0x00", + "balance": "0x34630b8a00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e200": { + "nonce": "0x00", + "balance": "0x349ea65400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e300": { + "nonce": "0x00", + "balance": "0x34da411e00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e400": { + "nonce": "0x00", + "balance": "0x3515dbe800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e500": { + "nonce": "0x00", + "balance": "0x355176b200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e600": { + "nonce": "0x00", + "balance": "0x358d117c00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e700": { + "nonce": "0x00", + "balance": "0x35c8ac4600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e800": { + "nonce": "0x00", + "balance": "0x3604471000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000e900": { + "nonce": "0x00", + "balance": "0x363fe1da00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ea00": { + "nonce": "0x00", + "balance": "0x367b7ca400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000eb00": { + "nonce": "0x00", + "balance": "0x36b7176e00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ec00": { + "nonce": "0x00", + "balance": "0x36f2b23800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ed00": { + "nonce": "0x00", + "balance": "0x372e4d0200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ee00": { + "nonce": "0x00", + "balance": "0x3769e7cc00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ef00": { + "nonce": "0x00", + "balance": "0x37a5829600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f000": { + "nonce": "0x00", + "balance": "0x37e11d6000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f100": { + "nonce": "0x00", + "balance": "0x381cb82a00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f200": { + "nonce": "0x00", + "balance": "0x385852f400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f300": { + "nonce": "0x00", + "balance": "0x3893edbe00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f400": { + "nonce": "0x00", + "balance": "0x38cf888800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f500": { + "nonce": "0x00", + "balance": "0x390b235200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f600": { + "nonce": "0x00", + "balance": "0x3946be1c00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f700": { + "nonce": "0x00", + "balance": "0x398258e600", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f800": { + "nonce": "0x00", + "balance": "0x39bdf3b000", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000f900": { + "nonce": "0x00", + "balance": "0x39f98e7a00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fa00": { + "nonce": "0x00", + "balance": "0x3a35294400", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fb00": { + "nonce": "0x00", + "balance": "0x3a70c40e00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fc00": { + "nonce": "0x00", + "balance": "0x3aac5ed800", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fd00": { + "nonce": "0x00", + "balance": "0x3ae7f9a200", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000fe00": { + "nonce": "0x00", + "balance": "0x3b23946c00", + "code": "0x60014355", + "storage": {} + }, + "0x000000000000000000000000000000000000ff00": { + "nonce": "0x00", + "balance": "0x3b5f2f3600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010000": { + "nonce": "0x00", + "balance": "0x3b9aca0000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010100": { + "nonce": "0x00", + "balance": "0x3bd664ca00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010200": { + "nonce": "0x00", + "balance": "0x3c11ff9400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010300": { + "nonce": "0x00", + "balance": "0x3c4d9a5e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010400": { + "nonce": "0x00", + "balance": "0x3c89352800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010500": { + "nonce": "0x00", + "balance": "0x3cc4cff200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010600": { + "nonce": "0x00", + "balance": "0x3d006abc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010700": { + "nonce": "0x00", + "balance": "0x3d3c058600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010800": { + "nonce": "0x00", + "balance": "0x3d77a05000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010900": { + "nonce": "0x00", + "balance": "0x3db33b1a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010a00": { + "nonce": "0x00", + "balance": "0x3deed5e400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010b00": { + "nonce": "0x00", + "balance": "0x3e2a70ae00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010c00": { + "nonce": "0x00", + "balance": "0x3e660b7800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010d00": { + "nonce": "0x00", + "balance": "0x3ea1a64200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010e00": { + "nonce": "0x00", + "balance": "0x3edd410c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000010f00": { + "nonce": "0x00", + "balance": "0x3f18dbd600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011000": { + "nonce": "0x00", + "balance": "0x3f5476a000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011100": { + "nonce": "0x00", + "balance": "0x3f90116a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011200": { + "nonce": "0x00", + "balance": "0x3fcbac3400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011300": { + "nonce": "0x00", + "balance": "0x400746fe00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011400": { + "nonce": "0x00", + "balance": "0x4042e1c800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011500": { + "nonce": "0x00", + "balance": "0x407e7c9200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011600": { + "nonce": "0x00", + "balance": "0x40ba175c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011700": { + "nonce": "0x00", + "balance": "0x40f5b22600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011800": { + "nonce": "0x00", + "balance": "0x41314cf000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011900": { + "nonce": "0x00", + "balance": "0x416ce7ba00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011a00": { + "nonce": "0x00", + "balance": "0x41a8828400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011b00": { + "nonce": "0x00", + "balance": "0x41e41d4e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011c00": { + "nonce": "0x00", + "balance": "0x421fb81800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011d00": { + "nonce": "0x00", + "balance": "0x425b52e200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011e00": { + "nonce": "0x00", + "balance": "0x4296edac00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000011f00": { + "nonce": "0x00", + "balance": "0x42d2887600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012000": { + "nonce": "0x00", + "balance": "0x430e234000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012100": { + "nonce": "0x00", + "balance": "0x4349be0a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012200": { + "nonce": "0x00", + "balance": "0x438558d400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012300": { + "nonce": "0x00", + "balance": "0x43c0f39e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012400": { + "nonce": "0x00", + "balance": "0x43fc8e6800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012500": { + "nonce": "0x00", + "balance": "0x4438293200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012600": { + "nonce": "0x00", + "balance": "0x4473c3fc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012700": { + "nonce": "0x00", + "balance": "0x44af5ec600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012800": { + "nonce": "0x00", + "balance": "0x44eaf99000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012900": { + "nonce": "0x00", + "balance": "0x4526945a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012a00": { + "nonce": "0x00", + "balance": "0x45622f2400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012b00": { + "nonce": "0x00", + "balance": "0x459dc9ee00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012c00": { + "nonce": "0x00", + "balance": "0x45d964b800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012d00": { + "nonce": "0x00", + "balance": "0x4614ff8200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012e00": { + "nonce": "0x00", + "balance": "0x46509a4c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000012f00": { + "nonce": "0x00", + "balance": "0x468c351600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013000": { + "nonce": "0x00", + "balance": "0x46c7cfe000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013100": { + "nonce": "0x00", + "balance": "0x47036aaa00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013200": { + "nonce": "0x00", + "balance": "0x473f057400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013300": { + "nonce": "0x00", + "balance": "0x477aa03e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013400": { + "nonce": "0x00", + "balance": "0x47b63b0800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013500": { + "nonce": "0x00", + "balance": "0x47f1d5d200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013600": { + "nonce": "0x00", + "balance": "0x482d709c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013700": { + "nonce": "0x00", + "balance": "0x48690b6600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013800": { + "nonce": "0x00", + "balance": "0x48a4a63000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013900": { + "nonce": "0x00", + "balance": "0x48e040fa00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013a00": { + "nonce": "0x00", + "balance": "0x491bdbc400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013b00": { + "nonce": "0x00", + "balance": "0x4957768e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013c00": { + "nonce": "0x00", + "balance": "0x4993115800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013d00": { + "nonce": "0x00", + "balance": "0x49ceac2200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013e00": { + "nonce": "0x00", + "balance": "0x4a0a46ec00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000013f00": { + "nonce": "0x00", + "balance": "0x4a45e1b600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014000": { + "nonce": "0x00", + "balance": "0x4a817c8000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014100": { + "nonce": "0x00", + "balance": "0x4abd174a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014200": { + "nonce": "0x00", + "balance": "0x4af8b21400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014300": { + "nonce": "0x00", + "balance": "0x4b344cde00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014400": { + "nonce": "0x00", + "balance": "0x4b6fe7a800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014500": { + "nonce": "0x00", + "balance": "0x4bab827200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014600": { + "nonce": "0x00", + "balance": "0x4be71d3c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014700": { + "nonce": "0x00", + "balance": "0x4c22b80600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014800": { + "nonce": "0x00", + "balance": "0x4c5e52d000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014900": { + "nonce": "0x00", + "balance": "0x4c99ed9a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014a00": { + "nonce": "0x00", + "balance": "0x4cd5886400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014b00": { + "nonce": "0x00", + "balance": "0x4d11232e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014c00": { + "nonce": "0x00", + "balance": "0x4d4cbdf800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014d00": { + "nonce": "0x00", + "balance": "0x4d8858c200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014e00": { + "nonce": "0x00", + "balance": "0x4dc3f38c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000014f00": { + "nonce": "0x00", + "balance": "0x4dff8e5600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015000": { + "nonce": "0x00", + "balance": "0x4e3b292000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015100": { + "nonce": "0x00", + "balance": "0x4e76c3ea00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015200": { + "nonce": "0x00", + "balance": "0x4eb25eb400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015300": { + "nonce": "0x00", + "balance": "0x4eedf97e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015400": { + "nonce": "0x00", + "balance": "0x4f29944800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015500": { + "nonce": "0x00", + "balance": "0x4f652f1200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015600": { + "nonce": "0x00", + "balance": "0x4fa0c9dc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015700": { + "nonce": "0x00", + "balance": "0x4fdc64a600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015800": { + "nonce": "0x00", + "balance": "0x5017ff7000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015900": { + "nonce": "0x00", + "balance": "0x50539a3a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015a00": { + "nonce": "0x00", + "balance": "0x508f350400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015b00": { + "nonce": "0x00", + "balance": "0x50cacfce00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015c00": { + "nonce": "0x00", + "balance": "0x51066a9800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015d00": { + "nonce": "0x00", + "balance": "0x5142056200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015e00": { + "nonce": "0x00", + "balance": "0x517da02c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000015f00": { + "nonce": "0x00", + "balance": "0x51b93af600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016000": { + "nonce": "0x00", + "balance": "0x51f4d5c000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016100": { + "nonce": "0x00", + "balance": "0x5230708a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016200": { + "nonce": "0x00", + "balance": "0x526c0b5400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016300": { + "nonce": "0x00", + "balance": "0x52a7a61e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016400": { + "nonce": "0x00", + "balance": "0x52e340e800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016500": { + "nonce": "0x00", + "balance": "0x531edbb200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016600": { + "nonce": "0x00", + "balance": "0x535a767c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016700": { + "nonce": "0x00", + "balance": "0x5396114600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016800": { + "nonce": "0x00", + "balance": "0x53d1ac1000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016900": { + "nonce": "0x00", + "balance": "0x540d46da00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016a00": { + "nonce": "0x00", + "balance": "0x5448e1a400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016b00": { + "nonce": "0x00", + "balance": "0x54847c6e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016c00": { + "nonce": "0x00", + "balance": "0x54c0173800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016d00": { + "nonce": "0x00", + "balance": "0x54fbb20200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016e00": { + "nonce": "0x00", + "balance": "0x55374ccc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000016f00": { + "nonce": "0x00", + "balance": "0x5572e79600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017000": { + "nonce": "0x00", + "balance": "0x55ae826000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017100": { + "nonce": "0x00", + "balance": "0x55ea1d2a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017200": { + "nonce": "0x00", + "balance": "0x5625b7f400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017300": { + "nonce": "0x00", + "balance": "0x566152be00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017400": { + "nonce": "0x00", + "balance": "0x569ced8800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017500": { + "nonce": "0x00", + "balance": "0x56d8885200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017600": { + "nonce": "0x00", + "balance": "0x5714231c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017700": { + "nonce": "0x00", + "balance": "0x574fbde600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017800": { + "nonce": "0x00", + "balance": "0x578b58b000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017900": { + "nonce": "0x00", + "balance": "0x57c6f37a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017a00": { + "nonce": "0x00", + "balance": "0x58028e4400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017b00": { + "nonce": "0x00", + "balance": "0x583e290e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017c00": { + "nonce": "0x00", + "balance": "0x5879c3d800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017d00": { + "nonce": "0x00", + "balance": "0x58b55ea200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017e00": { + "nonce": "0x00", + "balance": "0x58f0f96c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000017f00": { + "nonce": "0x00", + "balance": "0x592c943600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018000": { + "nonce": "0x00", + "balance": "0x59682f0000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018100": { + "nonce": "0x00", + "balance": "0x59a3c9ca00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018200": { + "nonce": "0x00", + "balance": "0x59df649400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018300": { + "nonce": "0x00", + "balance": "0x5a1aff5e00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018400": { + "nonce": "0x00", + "balance": "0x5a569a2800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018500": { + "nonce": "0x00", + "balance": "0x5a9234f200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018600": { + "nonce": "0x00", + "balance": "0x5acdcfbc00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018700": { + "nonce": "0x00", + "balance": "0x5b096a8600", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018800": { + "nonce": "0x00", + "balance": "0x5b45055000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018900": { + "nonce": "0x00", + "balance": "0x5b80a01a00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018a00": { + "nonce": "0x00", + "balance": "0x5bbc3ae400", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018b00": { + "nonce": "0x00", + "balance": "0x5bf7d5ae00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018c00": { + "nonce": "0x00", + "balance": "0x5c33707800", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018d00": { + "nonce": "0x00", + "balance": "0x5c6f0b4200", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018e00": { + "nonce": "0x00", + "balance": "0x5caaa60c00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000018f00": { + "nonce": "0x00", + "balance": "0x5ce640d600", + "code": "0x60014355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" } } \ No newline at end of file diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json index ce1908addc8..d6e4c8e2d13 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/multiple_withdrawals_same_address.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-test_case=single_block-single_block": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e537ea02e9faaafb6ec99fa12b279850f487c258493a0aa081df19548f73041ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe537ea02e9faaafb6ec99fa12b279850f487c258493a0aa081df19548f73041c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x5c20595d7eb081e0f1bea70db11f1815702cfce24233bd45488ef9ee4d1a5d9c" + }, "blocks": [ { "rlp": "0xf913aff90217a05c20595d7eb081e0f1bea70db11f1815702cfce24233bd45488ef9ee4d1a5d9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02aacad1d510cdd47be8b8861869bd0abf44c8853ca1475eeab1a1f915b6cc365a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0c662aa8559e9335c47538969989406146a1d6292b88747aebeb9e062bde12452c0c0f91190d8808094000000000000000000000000000000000000000001d8010194000000000000000000000000000000000000000101d8020294000000000000000000000000000000000000000201d8030394000000000000000000000000000000000000000301d8040494000000000000000000000000000000000000000401d8050594000000000000000000000000000000000000000501d8060694000000000000000000000000000000000000000601d8070794000000000000000000000000000000000000000701d8080894000000000000000000000000000000000000000801d8090994000000000000000000000000000000000000000901d80a0a94ffffffffffffffffffffffffffffffffffffffff01d80b0b94000000000000000000000000000000000000000001d80c0c94000000000000000000000000000000000000000101d80d0d94000000000000000000000000000000000000000201d80e0e94000000000000000000000000000000000000000301d80f0f94000000000000000000000000000000000000000401d8101094000000000000000000000000000000000000000501d8111194000000000000000000000000000000000000000601d8121294000000000000000000000000000000000000000701d8131394000000000000000000000000000000000000000801d8141494000000000000000000000000000000000000000901d8151594ffffffffffffffffffffffffffffffffffffffff01d8161694000000000000000000000000000000000000000001d8171794000000000000000000000000000000000000000101d8181894000000000000000000000000000000000000000201d8191994000000000000000000000000000000000000000301d81a1a94000000000000000000000000000000000000000401d81b1b94000000000000000000000000000000000000000501d81c1c94000000000000000000000000000000000000000601d81d1d94000000000000000000000000000000000000000701d81e1e94000000000000000000000000000000000000000801d81f1f94000000000000000000000000000000000000000901d8202094ffffffffffffffffffffffffffffffffffffffff01d8212194000000000000000000000000000000000000000001d8222294000000000000000000000000000000000000000101d8232394000000000000000000000000000000000000000201d8242494000000000000000000000000000000000000000301d8252594000000000000000000000000000000000000000401d8262694000000000000000000000000000000000000000501d8272794000000000000000000000000000000000000000601d8282894000000000000000000000000000000000000000701d8292994000000000000000000000000000000000000000801d82a2a94000000000000000000000000000000000000000901d82b2b94ffffffffffffffffffffffffffffffffffffffff01d82c2c94000000000000000000000000000000000000000001d82d2d94000000000000000000000000000000000000000101d82e2e94000000000000000000000000000000000000000201d82f2f94000000000000000000000000000000000000000301d8303094000000000000000000000000000000000000000401d8313194000000000000000000000000000000000000000501d8323294000000000000000000000000000000000000000601d8333394000000000000000000000000000000000000000701d8343494000000000000000000000000000000000000000801d8353594000000000000000000000000000000000000000901d8363694ffffffffffffffffffffffffffffffffffffffff01d8373794000000000000000000000000000000000000000001d8383894000000000000000000000000000000000000000101d8393994000000000000000000000000000000000000000201d83a3a94000000000000000000000000000000000000000301d83b3b94000000000000000000000000000000000000000401d83c3c94000000000000000000000000000000000000000501d83d3d94000000000000000000000000000000000000000601d83e3e94000000000000000000000000000000000000000701d83f3f94000000000000000000000000000000000000000801d8404094000000000000000000000000000000000000000901d8414194ffffffffffffffffffffffffffffffffffffffff01d8424294000000000000000000000000000000000000000001d8434394000000000000000000000000000000000000000101d8444494000000000000000000000000000000000000000201d8454594000000000000000000000000000000000000000301d8464694000000000000000000000000000000000000000401d8474794000000000000000000000000000000000000000501d8484894000000000000000000000000000000000000000601d8494994000000000000000000000000000000000000000701d84a4a94000000000000000000000000000000000000000801d84b4b94000000000000000000000000000000000000000901d84c4c94ffffffffffffffffffffffffffffffffffffffff01d84d4d94000000000000000000000000000000000000000001d84e4e94000000000000000000000000000000000000000101d84f4f94000000000000000000000000000000000000000201d8505094000000000000000000000000000000000000000301d8515194000000000000000000000000000000000000000401d8525294000000000000000000000000000000000000000501d8535394000000000000000000000000000000000000000601d8545494000000000000000000000000000000000000000701d8555594000000000000000000000000000000000000000801d8565694000000000000000000000000000000000000000901d8575794ffffffffffffffffffffffffffffffffffffffff01d8585894000000000000000000000000000000000000000001d8595994000000000000000000000000000000000000000101d85a5a94000000000000000000000000000000000000000201d85b5b94000000000000000000000000000000000000000301d85c5c94000000000000000000000000000000000000000401d85d5d94000000000000000000000000000000000000000501d85e5e94000000000000000000000000000000000000000601d85f5f94000000000000000000000000000000000000000701d8606094000000000000000000000000000000000000000801d8616194000000000000000000000000000000000000000901d8626294ffffffffffffffffffffffffffffffffffffffff01d8636394000000000000000000000000000000000000000001d8646494000000000000000000000000000000000000000101d8656594000000000000000000000000000000000000000201d8666694000000000000000000000000000000000000000301d8676794000000000000000000000000000000000000000401d8686894000000000000000000000000000000000000000501d8696994000000000000000000000000000000000000000601d86a6a94000000000000000000000000000000000000000701d86b6b94000000000000000000000000000000000000000801d86c6c94000000000000000000000000000000000000000901d86d6d94ffffffffffffffffffffffffffffffffffffffff01d86e6e94000000000000000000000000000000000000000001d86f6f94000000000000000000000000000000000000000101d8707094000000000000000000000000000000000000000201d8717194000000000000000000000000000000000000000301d8727294000000000000000000000000000000000000000401d8737394000000000000000000000000000000000000000501d8747494000000000000000000000000000000000000000601d8757594000000000000000000000000000000000000000701d8767694000000000000000000000000000000000000000801d8777794000000000000000000000000000000000000000901d8787894ffffffffffffffffffffffffffffffffffffffff01d8797994000000000000000000000000000000000000000001d87a7a94000000000000000000000000000000000000000101d87b7b94000000000000000000000000000000000000000201d87c7c94000000000000000000000000000000000000000301d87d7d94000000000000000000000000000000000000000401d87e7e94000000000000000000000000000000000000000501d87f7f94000000000000000000000000000000000000000601da8180818094000000000000000000000000000000000000000701da8181818194000000000000000000000000000000000000000801da8182818294000000000000000000000000000000000000000901da8183818394ffffffffffffffffffffffffffffffffffffffff01da8184818494000000000000000000000000000000000000000001da8185818594000000000000000000000000000000000000000101da8186818694000000000000000000000000000000000000000201da8187818794000000000000000000000000000000000000000301da8188818894000000000000000000000000000000000000000401da8189818994000000000000000000000000000000000000000501da818a818a94000000000000000000000000000000000000000601da818b818b94000000000000000000000000000000000000000701da818c818c94000000000000000000000000000000000000000801da818d818d94000000000000000000000000000000000000000901da818e818e94ffffffffffffffffffffffffffffffffffffffff01da818f818f94000000000000000000000000000000000000000001da8190819094000000000000000000000000000000000000000101da8191819194000000000000000000000000000000000000000201da8192819294000000000000000000000000000000000000000301da8193819394000000000000000000000000000000000000000401da8194819494000000000000000000000000000000000000000501da8195819594000000000000000000000000000000000000000601da8196819694000000000000000000000000000000000000000701da8197819794000000000000000000000000000000000000000801da8198819894000000000000000000000000000000000000000901da8199819994ffffffffffffffffffffffffffffffffffffffff01da819a819a94000000000000000000000000000000000000000001da819b819b94000000000000000000000000000000000000000101da819c819c94000000000000000000000000000000000000000201da819d819d94000000000000000000000000000000000000000301da819e819e94000000000000000000000000000000000000000401da819f819f94000000000000000000000000000000000000000501da81a081a094000000000000000000000000000000000000000601da81a181a194000000000000000000000000000000000000000701da81a281a294000000000000000000000000000000000000000801da81a381a394000000000000000000000000000000000000000901da81a481a494ffffffffffffffffffffffffffffffffffffffff01da81a581a594000000000000000000000000000000000000000001da81a681a694000000000000000000000000000000000000000101da81a781a794000000000000000000000000000000000000000201da81a881a894000000000000000000000000000000000000000301da81a981a994000000000000000000000000000000000000000401da81aa81aa94000000000000000000000000000000000000000501da81ab81ab94000000000000000000000000000000000000000601da81ac81ac94000000000000000000000000000000000000000701da81ad81ad94000000000000000000000000000000000000000801da81ae81ae94000000000000000000000000000000000000000901da81af81af94ffffffffffffffffffffffffffffffffffffffff01", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x5fd59c0388af9f50522dfa0ff1777958895e7910333d96e6e45e9ab7ee8cc1a2", - "withdrawalsRoot": "0xc662aa8559e9335c47538969989406146a1d6292b88747aebeb9e062bde12452" + "withdrawalsRoot": "0xc662aa8559e9335c47538969989406146a1d6292b88747aebeb9e062bde12452", + "hash": "0x5fd59c0388af9f50522dfa0ff1777958895e7910333d96e6e45e9ab7ee8cc1a2" }, "blocknumber": "1", "transactions": [], @@ -1092,36 +1113,8 @@ ] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xe537ea02e9faaafb6ec99fa12b279850f487c258493a0aa081df19548f73041c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x5c20595d7eb081e0f1bea70db11f1815702cfce24233bd45488ef9ee4d1a5d9c", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e537ea02e9faaafb6ec99fa12b279850f487c258493a0aa081df19548f73041ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x5fd59c0388af9f50522dfa0ff1777958895e7910333d96e6e45e9ab7ee8cc1a2", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x00", @@ -1182,6 +1175,12 @@ "code": "0x60014355", "storage": {} }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, "0xffffffffffffffffffffffffffffffffffffffff": { "nonce": "0x00", "balance": "0x00", @@ -1267,11 +1266,32 @@ }, "001-fork=Shanghai-test_case=multiple_blocks-multiple_blocks": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e537ea02e9faaafb6ec99fa12b279850f487c258493a0aa081df19548f73041ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe537ea02e9faaafb6ec99fa12b279850f487c258493a0aa081df19548f73041c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x5c20595d7eb081e0f1bea70db11f1815702cfce24233bd45488ef9ee4d1a5d9c" + }, "blocks": [ { "rlp": "0xf903aff90217a05c20595d7eb081e0f1bea70db11f1815702cfce24233bd45488ef9ee4d1a5d9ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa061c72cbd22e4caf61c23ea186c5edd8bc02842f5be0b22ee6adf9731c67e0deba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0f425cea421e8ee4e2352460ebb693cfff30ff8814bf51d695270fd4161c6f3b8c0c0f90190d8808094000000000000000000000000000000000000000001d8018094000000000000000000000000000000000000000001d8028094000000000000000000000000000000000000000001d8038094000000000000000000000000000000000000000001d8048094000000000000000000000000000000000000000001d8058094000000000000000000000000000000000000000001d8068094000000000000000000000000000000000000000001d8078094000000000000000000000000000000000000000001d8088094000000000000000000000000000000000000000001d8098094000000000000000000000000000000000000000001d80a8094000000000000000000000000000000000000000001d80b8094000000000000000000000000000000000000000001d80c8094000000000000000000000000000000000000000001d80d8094000000000000000000000000000000000000000001d80e8094000000000000000000000000000000000000000001d80f8094000000000000000000000000000000000000000001", @@ -1292,8 +1312,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xe7c61bb641205cdf382ba5f537f03d979ebbcf5f4fa3780c29831953afa3573e", - "withdrawalsRoot": "0xf425cea421e8ee4e2352460ebb693cfff30ff8814bf51d695270fd4161c6f3b8" + "withdrawalsRoot": "0xf425cea421e8ee4e2352460ebb693cfff30ff8814bf51d695270fd4161c6f3b8", + "hash": "0xe7c61bb641205cdf382ba5f537f03d979ebbcf5f4fa3780c29831953afa3573e" }, "blocknumber": "1", "transactions": [], @@ -1416,8 +1436,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x840c0d02f407008bd94a95bba3c5cbb156e857f3e1581eff2f0c67fa8aad2d0b", - "withdrawalsRoot": "0xdc1b1e55d705f046475d903977b0970ebe3c84eab92f6839e67f8bc16951db11" + "withdrawalsRoot": "0xdc1b1e55d705f046475d903977b0970ebe3c84eab92f6839e67f8bc16951db11", + "hash": "0x840c0d02f407008bd94a95bba3c5cbb156e857f3e1581eff2f0c67fa8aad2d0b" }, "blocknumber": "2", "transactions": [], @@ -1540,8 +1560,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x8aa7b811a65a1cb5b8f0da298d895e26f7f4a7912a5dee8fc2ccad73e9fa9f46", - "withdrawalsRoot": "0xccb22adc5a2412a7949b6f7d59479d0ac7d40225cbbd062553be9b11fe2efcc4" + "withdrawalsRoot": "0xccb22adc5a2412a7949b6f7d59479d0ac7d40225cbbd062553be9b11fe2efcc4", + "hash": "0x8aa7b811a65a1cb5b8f0da298d895e26f7f4a7912a5dee8fc2ccad73e9fa9f46" }, "blocknumber": "3", "transactions": [], @@ -1664,8 +1684,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x232217bdf23e5352b5e4af14d2953d8e0cd2eaf5345901c4d11c79b524d8f2ba", - "withdrawalsRoot": "0xcedb34783c64ddd786ddc085cfa87314378cadc76014f6b9bc088ff80ae7eca5" + "withdrawalsRoot": "0xcedb34783c64ddd786ddc085cfa87314378cadc76014f6b9bc088ff80ae7eca5", + "hash": "0x232217bdf23e5352b5e4af14d2953d8e0cd2eaf5345901c4d11c79b524d8f2ba" }, "blocknumber": "4", "transactions": [], @@ -1788,8 +1808,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x85e598d87352fd62bd07b56c9aa57b984bc36f9fd4afe91392ddd20f3401df9a", - "withdrawalsRoot": "0x1c00b30422780f6a112cacaaa8f664712583261cac13daf086f11dc906dc29ef" + "withdrawalsRoot": "0x1c00b30422780f6a112cacaaa8f664712583261cac13daf086f11dc906dc29ef", + "hash": "0x85e598d87352fd62bd07b56c9aa57b984bc36f9fd4afe91392ddd20f3401df9a" }, "blocknumber": "5", "transactions": [], @@ -1912,8 +1932,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x6c3bbe3051a87443fd22daf9c1b7e8654e30f53ec8ce94bbb99d3f95f971fbdb", - "withdrawalsRoot": "0xe2e7981753106925269ce986cdb7eba3ddb54361ea36f70a831617b2ae054cae" + "withdrawalsRoot": "0xe2e7981753106925269ce986cdb7eba3ddb54361ea36f70a831617b2ae054cae", + "hash": "0x6c3bbe3051a87443fd22daf9c1b7e8654e30f53ec8ce94bbb99d3f95f971fbdb" }, "blocknumber": "6", "transactions": [], @@ -2036,8 +2056,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xbf014a2a46f53dad93cda5b85a4adc510acdc1c38d344271f00e5da362be4531", - "withdrawalsRoot": "0x1559e71aa8ac250357224d329af58f67ef79509877c8ca89a10184ddea6ca65b" + "withdrawalsRoot": "0x1559e71aa8ac250357224d329af58f67ef79509877c8ca89a10184ddea6ca65b", + "hash": "0xbf014a2a46f53dad93cda5b85a4adc510acdc1c38d344271f00e5da362be4531" }, "blocknumber": "7", "transactions": [], @@ -2160,8 +2180,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xe35852e3df6cbc5e12b47254d3262fe45448ad506772f2dbfaa6355683a228b2", - "withdrawalsRoot": "0x20d86acc5d05214434b17116a717e17ecf3a2314c034595feb1b6cd77646e8df" + "withdrawalsRoot": "0x20d86acc5d05214434b17116a717e17ecf3a2314c034595feb1b6cd77646e8df", + "hash": "0xe35852e3df6cbc5e12b47254d3262fe45448ad506772f2dbfaa6355683a228b2" }, "blocknumber": "8", "transactions": [], @@ -2284,8 +2304,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x03ed555bc85b5df54f590d90faa70fa304299908138da91b91250cfb66f30081", - "withdrawalsRoot": "0x362fa8f5f042d4b38b605e6b60f833f139553d9f2c866596fecfcf89d894eb98" + "withdrawalsRoot": "0x362fa8f5f042d4b38b605e6b60f833f139553d9f2c866596fecfcf89d894eb98", + "hash": "0x03ed555bc85b5df54f590d90faa70fa304299908138da91b91250cfb66f30081" }, "blocknumber": "9", "transactions": [], @@ -2408,8 +2428,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x21d7f0dbab9e7ead3aafe75aeee448e131149cdafa0d3d66ae6be17908076294", - "withdrawalsRoot": "0xd9f79c57fa95c660ed471922270585d66c32ac464f0788f0d3857b6607d4985f" + "withdrawalsRoot": "0xd9f79c57fa95c660ed471922270585d66c32ac464f0788f0d3857b6607d4985f", + "hash": "0x21d7f0dbab9e7ead3aafe75aeee448e131149cdafa0d3d66ae6be17908076294" }, "blocknumber": "10", "transactions": [], @@ -2532,8 +2552,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x6c492b186eeecd23956cac58d2e4b2ad834e3069ba86674f30b4da62f3be6eee", - "withdrawalsRoot": "0x4e3c318a9c84a319be1ceabbfaf551f00a8bc2075a7a83aeeabb435a511d0ff8" + "withdrawalsRoot": "0x4e3c318a9c84a319be1ceabbfaf551f00a8bc2075a7a83aeeabb435a511d0ff8", + "hash": "0x6c492b186eeecd23956cac58d2e4b2ad834e3069ba86674f30b4da62f3be6eee" }, "blocknumber": "11", "transactions": [], @@ -2638,36 +2658,8 @@ ] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xe537ea02e9faaafb6ec99fa12b279850f487c258493a0aa081df19548f73041c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x5c20595d7eb081e0f1bea70db11f1815702cfce24233bd45488ef9ee4d1a5d9c", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e537ea02e9faaafb6ec99fa12b279850f487c258493a0aa081df19548f73041ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x6c492b186eeecd23956cac58d2e4b2ad834e3069ba86674f30b4da62f3be6eee", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000000": { "nonce": "0x00", "balance": "0x00", @@ -2728,6 +2720,12 @@ "code": "0x60014355", "storage": {} }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, "0xffffffffffffffffffffffffffffffffffffffff": { "nonce": "0x00", "balance": "0x00", @@ -2810,5 +2808,2895 @@ } }, "sealEngine": "NoProof" + }, + "002-fork=Cancun-test_case=single_block-single_block": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e4c05e8ebbcde6a6108f1ae8c92d3599c9e67d0ae020f73f7c47a2e471e3438aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe4c05e8ebbcde6a6108f1ae8c92d3599c9e67d0ae020f73f7c47a2e471e3438a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6de06c769308bf51ab03fb5c022b4e151bcf6d19edbff74aeafe86cdba417d67" + }, + "blocks": [ + { + "rlp": "0xf913d2f9023aa06de06c769308bf51ab03fb5c022b4e151bcf6d19edbff74aeafe86cdba417d67a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a4875f9219f3410cda01725b6a83680470b33c90f8d6baf40de633732fd69b49a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0c662aa8559e9335c47538969989406146a1d6292b88747aebeb9e062bde124528080a00000000000000000000000000000000000000000000000000000000000000000c0c0f91190d8808094000000000000000000000000000000000000000001d8010194000000000000000000000000000000000000000101d8020294000000000000000000000000000000000000000201d8030394000000000000000000000000000000000000000301d8040494000000000000000000000000000000000000000401d8050594000000000000000000000000000000000000000501d8060694000000000000000000000000000000000000000601d8070794000000000000000000000000000000000000000701d8080894000000000000000000000000000000000000000801d8090994000000000000000000000000000000000000000901d80a0a94ffffffffffffffffffffffffffffffffffffffff01d80b0b94000000000000000000000000000000000000000001d80c0c94000000000000000000000000000000000000000101d80d0d94000000000000000000000000000000000000000201d80e0e94000000000000000000000000000000000000000301d80f0f94000000000000000000000000000000000000000401d8101094000000000000000000000000000000000000000501d8111194000000000000000000000000000000000000000601d8121294000000000000000000000000000000000000000701d8131394000000000000000000000000000000000000000801d8141494000000000000000000000000000000000000000901d8151594ffffffffffffffffffffffffffffffffffffffff01d8161694000000000000000000000000000000000000000001d8171794000000000000000000000000000000000000000101d8181894000000000000000000000000000000000000000201d8191994000000000000000000000000000000000000000301d81a1a94000000000000000000000000000000000000000401d81b1b94000000000000000000000000000000000000000501d81c1c94000000000000000000000000000000000000000601d81d1d94000000000000000000000000000000000000000701d81e1e94000000000000000000000000000000000000000801d81f1f94000000000000000000000000000000000000000901d8202094ffffffffffffffffffffffffffffffffffffffff01d8212194000000000000000000000000000000000000000001d8222294000000000000000000000000000000000000000101d8232394000000000000000000000000000000000000000201d8242494000000000000000000000000000000000000000301d8252594000000000000000000000000000000000000000401d8262694000000000000000000000000000000000000000501d8272794000000000000000000000000000000000000000601d8282894000000000000000000000000000000000000000701d8292994000000000000000000000000000000000000000801d82a2a94000000000000000000000000000000000000000901d82b2b94ffffffffffffffffffffffffffffffffffffffff01d82c2c94000000000000000000000000000000000000000001d82d2d94000000000000000000000000000000000000000101d82e2e94000000000000000000000000000000000000000201d82f2f94000000000000000000000000000000000000000301d8303094000000000000000000000000000000000000000401d8313194000000000000000000000000000000000000000501d8323294000000000000000000000000000000000000000601d8333394000000000000000000000000000000000000000701d8343494000000000000000000000000000000000000000801d8353594000000000000000000000000000000000000000901d8363694ffffffffffffffffffffffffffffffffffffffff01d8373794000000000000000000000000000000000000000001d8383894000000000000000000000000000000000000000101d8393994000000000000000000000000000000000000000201d83a3a94000000000000000000000000000000000000000301d83b3b94000000000000000000000000000000000000000401d83c3c94000000000000000000000000000000000000000501d83d3d94000000000000000000000000000000000000000601d83e3e94000000000000000000000000000000000000000701d83f3f94000000000000000000000000000000000000000801d8404094000000000000000000000000000000000000000901d8414194ffffffffffffffffffffffffffffffffffffffff01d8424294000000000000000000000000000000000000000001d8434394000000000000000000000000000000000000000101d8444494000000000000000000000000000000000000000201d8454594000000000000000000000000000000000000000301d8464694000000000000000000000000000000000000000401d8474794000000000000000000000000000000000000000501d8484894000000000000000000000000000000000000000601d8494994000000000000000000000000000000000000000701d84a4a94000000000000000000000000000000000000000801d84b4b94000000000000000000000000000000000000000901d84c4c94ffffffffffffffffffffffffffffffffffffffff01d84d4d94000000000000000000000000000000000000000001d84e4e94000000000000000000000000000000000000000101d84f4f94000000000000000000000000000000000000000201d8505094000000000000000000000000000000000000000301d8515194000000000000000000000000000000000000000401d8525294000000000000000000000000000000000000000501d8535394000000000000000000000000000000000000000601d8545494000000000000000000000000000000000000000701d8555594000000000000000000000000000000000000000801d8565694000000000000000000000000000000000000000901d8575794ffffffffffffffffffffffffffffffffffffffff01d8585894000000000000000000000000000000000000000001d8595994000000000000000000000000000000000000000101d85a5a94000000000000000000000000000000000000000201d85b5b94000000000000000000000000000000000000000301d85c5c94000000000000000000000000000000000000000401d85d5d94000000000000000000000000000000000000000501d85e5e94000000000000000000000000000000000000000601d85f5f94000000000000000000000000000000000000000701d8606094000000000000000000000000000000000000000801d8616194000000000000000000000000000000000000000901d8626294ffffffffffffffffffffffffffffffffffffffff01d8636394000000000000000000000000000000000000000001d8646494000000000000000000000000000000000000000101d8656594000000000000000000000000000000000000000201d8666694000000000000000000000000000000000000000301d8676794000000000000000000000000000000000000000401d8686894000000000000000000000000000000000000000501d8696994000000000000000000000000000000000000000601d86a6a94000000000000000000000000000000000000000701d86b6b94000000000000000000000000000000000000000801d86c6c94000000000000000000000000000000000000000901d86d6d94ffffffffffffffffffffffffffffffffffffffff01d86e6e94000000000000000000000000000000000000000001d86f6f94000000000000000000000000000000000000000101d8707094000000000000000000000000000000000000000201d8717194000000000000000000000000000000000000000301d8727294000000000000000000000000000000000000000401d8737394000000000000000000000000000000000000000501d8747494000000000000000000000000000000000000000601d8757594000000000000000000000000000000000000000701d8767694000000000000000000000000000000000000000801d8777794000000000000000000000000000000000000000901d8787894ffffffffffffffffffffffffffffffffffffffff01d8797994000000000000000000000000000000000000000001d87a7a94000000000000000000000000000000000000000101d87b7b94000000000000000000000000000000000000000201d87c7c94000000000000000000000000000000000000000301d87d7d94000000000000000000000000000000000000000401d87e7e94000000000000000000000000000000000000000501d87f7f94000000000000000000000000000000000000000601da8180818094000000000000000000000000000000000000000701da8181818194000000000000000000000000000000000000000801da8182818294000000000000000000000000000000000000000901da8183818394ffffffffffffffffffffffffffffffffffffffff01da8184818494000000000000000000000000000000000000000001da8185818594000000000000000000000000000000000000000101da8186818694000000000000000000000000000000000000000201da8187818794000000000000000000000000000000000000000301da8188818894000000000000000000000000000000000000000401da8189818994000000000000000000000000000000000000000501da818a818a94000000000000000000000000000000000000000601da818b818b94000000000000000000000000000000000000000701da818c818c94000000000000000000000000000000000000000801da818d818d94000000000000000000000000000000000000000901da818e818e94ffffffffffffffffffffffffffffffffffffffff01da818f818f94000000000000000000000000000000000000000001da8190819094000000000000000000000000000000000000000101da8191819194000000000000000000000000000000000000000201da8192819294000000000000000000000000000000000000000301da8193819394000000000000000000000000000000000000000401da8194819494000000000000000000000000000000000000000501da8195819594000000000000000000000000000000000000000601da8196819694000000000000000000000000000000000000000701da8197819794000000000000000000000000000000000000000801da8198819894000000000000000000000000000000000000000901da8199819994ffffffffffffffffffffffffffffffffffffffff01da819a819a94000000000000000000000000000000000000000001da819b819b94000000000000000000000000000000000000000101da819c819c94000000000000000000000000000000000000000201da819d819d94000000000000000000000000000000000000000301da819e819e94000000000000000000000000000000000000000401da819f819f94000000000000000000000000000000000000000501da81a081a094000000000000000000000000000000000000000601da81a181a194000000000000000000000000000000000000000701da81a281a294000000000000000000000000000000000000000801da81a381a394000000000000000000000000000000000000000901da81a481a494ffffffffffffffffffffffffffffffffffffffff01da81a581a594000000000000000000000000000000000000000001da81a681a694000000000000000000000000000000000000000101da81a781a794000000000000000000000000000000000000000201da81a881a894000000000000000000000000000000000000000301da81a981a994000000000000000000000000000000000000000401da81aa81aa94000000000000000000000000000000000000000501da81ab81ab94000000000000000000000000000000000000000601da81ac81ac94000000000000000000000000000000000000000701da81ad81ad94000000000000000000000000000000000000000801da81ae81ae94000000000000000000000000000000000000000901da81af81af94ffffffffffffffffffffffffffffffffffffffff01", + "blockHeader": { + "parentHash": "0x6de06c769308bf51ab03fb5c022b4e151bcf6d19edbff74aeafe86cdba417d67", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa4875f9219f3410cda01725b6a83680470b33c90f8d6baf40de633732fd69b49", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xc662aa8559e9335c47538969989406146a1d6292b88747aebeb9e062bde12452", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x9d5d33515e54687249c8f6978f8ee19d982717758f144efeff8fa601bc2701dd" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x02", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x03", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x04", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x05", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x06", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x07", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x08", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x09", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x0a", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x0b", + "validatorIndex": "0x0b", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x0c", + "validatorIndex": "0x0c", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x0d", + "validatorIndex": "0x0d", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x0e", + "validatorIndex": "0x0e", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x0f", + "validatorIndex": "0x0f", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x10", + "validatorIndex": "0x10", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x11", + "validatorIndex": "0x11", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x12", + "validatorIndex": "0x12", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x13", + "validatorIndex": "0x13", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x14", + "validatorIndex": "0x14", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x15", + "validatorIndex": "0x15", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x16", + "validatorIndex": "0x16", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x17", + "validatorIndex": "0x17", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x18", + "validatorIndex": "0x18", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x19", + "validatorIndex": "0x19", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x1a", + "validatorIndex": "0x1a", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x1b", + "validatorIndex": "0x1b", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x1c", + "validatorIndex": "0x1c", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x1d", + "validatorIndex": "0x1d", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x1e", + "validatorIndex": "0x1e", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x1f", + "validatorIndex": "0x1f", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x20", + "validatorIndex": "0x20", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x21", + "validatorIndex": "0x21", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x22", + "validatorIndex": "0x22", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x23", + "validatorIndex": "0x23", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x24", + "validatorIndex": "0x24", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x25", + "validatorIndex": "0x25", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x26", + "validatorIndex": "0x26", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x27", + "validatorIndex": "0x27", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x28", + "validatorIndex": "0x28", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x29", + "validatorIndex": "0x29", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x2a", + "validatorIndex": "0x2a", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x2b", + "validatorIndex": "0x2b", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x2c", + "validatorIndex": "0x2c", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x2d", + "validatorIndex": "0x2d", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x2e", + "validatorIndex": "0x2e", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x2f", + "validatorIndex": "0x2f", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x30", + "validatorIndex": "0x30", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x31", + "validatorIndex": "0x31", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x32", + "validatorIndex": "0x32", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x33", + "validatorIndex": "0x33", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x34", + "validatorIndex": "0x34", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x35", + "validatorIndex": "0x35", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x36", + "validatorIndex": "0x36", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x37", + "validatorIndex": "0x37", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x38", + "validatorIndex": "0x38", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x39", + "validatorIndex": "0x39", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x3a", + "validatorIndex": "0x3a", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x3b", + "validatorIndex": "0x3b", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x3c", + "validatorIndex": "0x3c", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x3d", + "validatorIndex": "0x3d", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x3e", + "validatorIndex": "0x3e", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x3f", + "validatorIndex": "0x3f", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x40", + "validatorIndex": "0x40", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x41", + "validatorIndex": "0x41", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x42", + "validatorIndex": "0x42", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x43", + "validatorIndex": "0x43", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x44", + "validatorIndex": "0x44", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x45", + "validatorIndex": "0x45", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x46", + "validatorIndex": "0x46", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x47", + "validatorIndex": "0x47", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x48", + "validatorIndex": "0x48", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x49", + "validatorIndex": "0x49", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x4a", + "validatorIndex": "0x4a", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x4b", + "validatorIndex": "0x4b", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x4c", + "validatorIndex": "0x4c", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x4d", + "validatorIndex": "0x4d", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x4e", + "validatorIndex": "0x4e", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x4f", + "validatorIndex": "0x4f", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x50", + "validatorIndex": "0x50", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x51", + "validatorIndex": "0x51", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x52", + "validatorIndex": "0x52", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x53", + "validatorIndex": "0x53", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x54", + "validatorIndex": "0x54", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x55", + "validatorIndex": "0x55", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x56", + "validatorIndex": "0x56", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x57", + "validatorIndex": "0x57", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x58", + "validatorIndex": "0x58", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x59", + "validatorIndex": "0x59", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x5a", + "validatorIndex": "0x5a", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x5b", + "validatorIndex": "0x5b", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x5c", + "validatorIndex": "0x5c", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x5d", + "validatorIndex": "0x5d", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x5e", + "validatorIndex": "0x5e", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x5f", + "validatorIndex": "0x5f", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x60", + "validatorIndex": "0x60", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x61", + "validatorIndex": "0x61", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x62", + "validatorIndex": "0x62", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x63", + "validatorIndex": "0x63", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x64", + "validatorIndex": "0x64", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x65", + "validatorIndex": "0x65", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x66", + "validatorIndex": "0x66", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x67", + "validatorIndex": "0x67", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x68", + "validatorIndex": "0x68", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x69", + "validatorIndex": "0x69", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x6a", + "validatorIndex": "0x6a", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x6b", + "validatorIndex": "0x6b", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x6c", + "validatorIndex": "0x6c", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x6d", + "validatorIndex": "0x6d", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x6e", + "validatorIndex": "0x6e", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x6f", + "validatorIndex": "0x6f", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x70", + "validatorIndex": "0x70", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x71", + "validatorIndex": "0x71", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x72", + "validatorIndex": "0x72", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x73", + "validatorIndex": "0x73", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x74", + "validatorIndex": "0x74", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x75", + "validatorIndex": "0x75", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x76", + "validatorIndex": "0x76", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x77", + "validatorIndex": "0x77", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x78", + "validatorIndex": "0x78", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x79", + "validatorIndex": "0x79", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x7a", + "validatorIndex": "0x7a", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x7b", + "validatorIndex": "0x7b", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x7c", + "validatorIndex": "0x7c", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x7d", + "validatorIndex": "0x7d", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x7e", + "validatorIndex": "0x7e", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x7f", + "validatorIndex": "0x7f", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x80", + "validatorIndex": "0x80", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x81", + "validatorIndex": "0x81", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x82", + "validatorIndex": "0x82", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x83", + "validatorIndex": "0x83", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x84", + "validatorIndex": "0x84", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x85", + "validatorIndex": "0x85", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x86", + "validatorIndex": "0x86", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x87", + "validatorIndex": "0x87", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x88", + "validatorIndex": "0x88", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x89", + "validatorIndex": "0x89", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x8a", + "validatorIndex": "0x8a", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x8b", + "validatorIndex": "0x8b", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x8c", + "validatorIndex": "0x8c", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x8d", + "validatorIndex": "0x8d", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x8e", + "validatorIndex": "0x8e", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x8f", + "validatorIndex": "0x8f", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x90", + "validatorIndex": "0x90", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x91", + "validatorIndex": "0x91", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x92", + "validatorIndex": "0x92", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x93", + "validatorIndex": "0x93", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x94", + "validatorIndex": "0x94", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x95", + "validatorIndex": "0x95", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x96", + "validatorIndex": "0x96", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x97", + "validatorIndex": "0x97", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x98", + "validatorIndex": "0x98", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x99", + "validatorIndex": "0x99", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0x9a", + "validatorIndex": "0x9a", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x9b", + "validatorIndex": "0x9b", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x9c", + "validatorIndex": "0x9c", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x9d", + "validatorIndex": "0x9d", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x9e", + "validatorIndex": "0x9e", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x9f", + "validatorIndex": "0x9f", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0xa0", + "validatorIndex": "0xa0", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0xa1", + "validatorIndex": "0xa1", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0xa2", + "validatorIndex": "0xa2", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0xa3", + "validatorIndex": "0xa3", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0xa4", + "validatorIndex": "0xa4", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa5", + "validatorIndex": "0xa5", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0xa6", + "validatorIndex": "0xa6", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0xa7", + "validatorIndex": "0xa7", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0xa8", + "validatorIndex": "0xa8", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0xa9", + "validatorIndex": "0xa9", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0xaa", + "validatorIndex": "0xaa", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0xab", + "validatorIndex": "0xab", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0xac", + "validatorIndex": "0xac", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0xad", + "validatorIndex": "0xad", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0xae", + "validatorIndex": "0xae", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0xaf", + "validatorIndex": "0xaf", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x9d5d33515e54687249c8f6978f8ee19d982717758f144efeff8fa601bc2701dd", + "pre": { + "0x0000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000001": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000002": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000003": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000004": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000005": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000006": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000007": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000008": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000009": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xffffffffffffffffffffffffffffffffffffffff": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000001": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000002": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000003": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000004": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000005": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000006": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000007": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000008": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000009": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xffffffffffffffffffffffffffffffffffffffff": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-test_case=multiple_blocks-multiple_blocks": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e4c05e8ebbcde6a6108f1ae8c92d3599c9e67d0ae020f73f7c47a2e471e3438aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xe4c05e8ebbcde6a6108f1ae8c92d3599c9e67d0ae020f73f7c47a2e471e3438a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6de06c769308bf51ab03fb5c022b4e151bcf6d19edbff74aeafe86cdba417d67" + }, + "blocks": [ + { + "rlp": "0xf903d2f9023aa06de06c769308bf51ab03fb5c022b4e151bcf6d19edbff74aeafe86cdba417d67a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07b7fc51fa5b6eec9b30b799f1e4aa7afa922bd51626a9d8e51b335cda5efd228a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0f425cea421e8ee4e2352460ebb693cfff30ff8814bf51d695270fd4161c6f3b88080a00000000000000000000000000000000000000000000000000000000000000000c0c0f90190d8808094000000000000000000000000000000000000000001d8018094000000000000000000000000000000000000000001d8028094000000000000000000000000000000000000000001d8038094000000000000000000000000000000000000000001d8048094000000000000000000000000000000000000000001d8058094000000000000000000000000000000000000000001d8068094000000000000000000000000000000000000000001d8078094000000000000000000000000000000000000000001d8088094000000000000000000000000000000000000000001d8098094000000000000000000000000000000000000000001d80a8094000000000000000000000000000000000000000001d80b8094000000000000000000000000000000000000000001d80c8094000000000000000000000000000000000000000001d80d8094000000000000000000000000000000000000000001d80e8094000000000000000000000000000000000000000001d80f8094000000000000000000000000000000000000000001", + "blockHeader": { + "parentHash": "0x6de06c769308bf51ab03fb5c022b4e151bcf6d19edbff74aeafe86cdba417d67", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7b7fc51fa5b6eec9b30b799f1e4aa7afa922bd51626a9d8e51b335cda5efd228", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xf425cea421e8ee4e2352460ebb693cfff30ff8814bf51d695270fd4161c6f3b8", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4ee8494e1ea31423d5740dc4fe026cdd704c902241924bff19e08bfe02bc89f9" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x02", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x03", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x04", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x05", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x06", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x07", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x08", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x09", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x0a", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x0b", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x0c", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x0d", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x0e", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + }, + { + "index": "0x0f", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000000", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903d2f9023aa04ee8494e1ea31423d5740dc4fe026cdd704c902241924bff19e08bfe02bc89f9a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa093c10c8c56f306124d7bf3b4b6dd27000425e1af0dcaa18277ac177f097ff467a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000801880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0dc1b1e55d705f046475d903977b0970ebe3c84eab92f6839e67f8bc16951db118080a00000000000000000000000000000000000000000000000000000000000000000c0c0f90190d8100194000000000000000000000000000000000000000101d8110194000000000000000000000000000000000000000101d8120194000000000000000000000000000000000000000101d8130194000000000000000000000000000000000000000101d8140194000000000000000000000000000000000000000101d8150194000000000000000000000000000000000000000101d8160194000000000000000000000000000000000000000101d8170194000000000000000000000000000000000000000101d8180194000000000000000000000000000000000000000101d8190194000000000000000000000000000000000000000101d81a0194000000000000000000000000000000000000000101d81b0194000000000000000000000000000000000000000101d81c0194000000000000000000000000000000000000000101d81d0194000000000000000000000000000000000000000101d81e0194000000000000000000000000000000000000000101d81f0194000000000000000000000000000000000000000101", + "blockHeader": { + "parentHash": "0x4ee8494e1ea31423d5740dc4fe026cdd704c902241924bff19e08bfe02bc89f9", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x93c10c8c56f306124d7bf3b4b6dd27000425e1af0dcaa18277ac177f097ff467", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xdc1b1e55d705f046475d903977b0970ebe3c84eab92f6839e67f8bc16951db11", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd1aa0cc8de3ac54ab9060c7f08a16d6003222558d840662ffa64e1e5a2c60207" + }, + "blocknumber": "2", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x10", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x11", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x12", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x13", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x14", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x15", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x16", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x17", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x18", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x19", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x1a", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x1b", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x1c", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x1d", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x1e", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + }, + { + "index": "0x1f", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903d2f9023aa0d1aa0cc8de3ac54ab9060c7f08a16d6003222558d840662ffa64e1e5a2c60207a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08e4d9500e0b6b891b61fd5808c9d4ba1dca6d44e60c128731ba44f0cfe7e1545a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800388016345785d8a0000802480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0ccb22adc5a2412a7949b6f7d59479d0ac7d40225cbbd062553be9b11fe2efcc48080a00000000000000000000000000000000000000000000000000000000000000000c0c0f90190d8200294000000000000000000000000000000000000000201d8210294000000000000000000000000000000000000000201d8220294000000000000000000000000000000000000000201d8230294000000000000000000000000000000000000000201d8240294000000000000000000000000000000000000000201d8250294000000000000000000000000000000000000000201d8260294000000000000000000000000000000000000000201d8270294000000000000000000000000000000000000000201d8280294000000000000000000000000000000000000000201d8290294000000000000000000000000000000000000000201d82a0294000000000000000000000000000000000000000201d82b0294000000000000000000000000000000000000000201d82c0294000000000000000000000000000000000000000201d82d0294000000000000000000000000000000000000000201d82e0294000000000000000000000000000000000000000201d82f0294000000000000000000000000000000000000000201", + "blockHeader": { + "parentHash": "0xd1aa0cc8de3ac54ab9060c7f08a16d6003222558d840662ffa64e1e5a2c60207", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8e4d9500e0b6b891b61fd5808c9d4ba1dca6d44e60c128731ba44f0cfe7e1545", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x03", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x24", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xccb22adc5a2412a7949b6f7d59479d0ac7d40225cbbd062553be9b11fe2efcc4", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xf804e3907291ddfe803fc9724dcc0cb5d0f38678191d75bbf39737e516109753" + }, + "blocknumber": "3", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x20", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x21", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x22", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x23", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x24", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x25", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x26", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x27", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x28", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x29", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x2a", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x2b", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x2c", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x2d", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x2e", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + }, + { + "index": "0x2f", + "validatorIndex": "0x02", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903d2f9023aa0f804e3907291ddfe803fc9724dcc0cb5d0f38678191d75bbf39737e516109753a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa044e78d7ec24201e9ab56c44070b3b59973cfc5e3e252ce1631b8940fc30aa6a9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800488016345785d8a0000803080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0cedb34783c64ddd786ddc085cfa87314378cadc76014f6b9bc088ff80ae7eca58080a00000000000000000000000000000000000000000000000000000000000000000c0c0f90190d8300394000000000000000000000000000000000000000301d8310394000000000000000000000000000000000000000301d8320394000000000000000000000000000000000000000301d8330394000000000000000000000000000000000000000301d8340394000000000000000000000000000000000000000301d8350394000000000000000000000000000000000000000301d8360394000000000000000000000000000000000000000301d8370394000000000000000000000000000000000000000301d8380394000000000000000000000000000000000000000301d8390394000000000000000000000000000000000000000301d83a0394000000000000000000000000000000000000000301d83b0394000000000000000000000000000000000000000301d83c0394000000000000000000000000000000000000000301d83d0394000000000000000000000000000000000000000301d83e0394000000000000000000000000000000000000000301d83f0394000000000000000000000000000000000000000301", + "blockHeader": { + "parentHash": "0xf804e3907291ddfe803fc9724dcc0cb5d0f38678191d75bbf39737e516109753", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x44e78d7ec24201e9ab56c44070b3b59973cfc5e3e252ce1631b8940fc30aa6a9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x04", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x30", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xcedb34783c64ddd786ddc085cfa87314378cadc76014f6b9bc088ff80ae7eca5", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5c623d9beab8c972fa52aadbbd19e17ca262b97f62da47c3a3178ed71de54526" + }, + "blocknumber": "4", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x30", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x31", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x32", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x33", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x34", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x35", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x36", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x37", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x38", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x39", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x3a", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x3b", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x3c", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x3d", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x3e", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + }, + { + "index": "0x3f", + "validatorIndex": "0x03", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903d2f9023aa05c623d9beab8c972fa52aadbbd19e17ca262b97f62da47c3a3178ed71de54526a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05b573ece47f3f6f5db5e62f2b40e265b8384ce07085d331db63e8adae4f694e1a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800588016345785d8a0000803c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a01c00b30422780f6a112cacaaa8f664712583261cac13daf086f11dc906dc29ef8080a00000000000000000000000000000000000000000000000000000000000000000c0c0f90190d8400494000000000000000000000000000000000000000401d8410494000000000000000000000000000000000000000401d8420494000000000000000000000000000000000000000401d8430494000000000000000000000000000000000000000401d8440494000000000000000000000000000000000000000401d8450494000000000000000000000000000000000000000401d8460494000000000000000000000000000000000000000401d8470494000000000000000000000000000000000000000401d8480494000000000000000000000000000000000000000401d8490494000000000000000000000000000000000000000401d84a0494000000000000000000000000000000000000000401d84b0494000000000000000000000000000000000000000401d84c0494000000000000000000000000000000000000000401d84d0494000000000000000000000000000000000000000401d84e0494000000000000000000000000000000000000000401d84f0494000000000000000000000000000000000000000401", + "blockHeader": { + "parentHash": "0x5c623d9beab8c972fa52aadbbd19e17ca262b97f62da47c3a3178ed71de54526", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5b573ece47f3f6f5db5e62f2b40e265b8384ce07085d331db63e8adae4f694e1", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x05", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x3c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x1c00b30422780f6a112cacaaa8f664712583261cac13daf086f11dc906dc29ef", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd7333924bc9bdfbd1e47e1592b1b55c87d13aba5c6c25d78263c8c2d00faa191" + }, + "blocknumber": "5", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x40", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x41", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x42", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x43", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x44", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x45", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x46", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x47", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x48", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x49", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x4a", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x4b", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x4c", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x4d", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x4e", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + }, + { + "index": "0x4f", + "validatorIndex": "0x04", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903d2f9023aa0d7333924bc9bdfbd1e47e1592b1b55c87d13aba5c6c25d78263c8c2d00faa191a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa032fc24f0bc9f8c19b71ce67a014c55a743b4f480849a7d62acbe5053dc24dc12a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800688016345785d8a0000804880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0e2e7981753106925269ce986cdb7eba3ddb54361ea36f70a831617b2ae054cae8080a00000000000000000000000000000000000000000000000000000000000000000c0c0f90190d8500594000000000000000000000000000000000000000501d8510594000000000000000000000000000000000000000501d8520594000000000000000000000000000000000000000501d8530594000000000000000000000000000000000000000501d8540594000000000000000000000000000000000000000501d8550594000000000000000000000000000000000000000501d8560594000000000000000000000000000000000000000501d8570594000000000000000000000000000000000000000501d8580594000000000000000000000000000000000000000501d8590594000000000000000000000000000000000000000501d85a0594000000000000000000000000000000000000000501d85b0594000000000000000000000000000000000000000501d85c0594000000000000000000000000000000000000000501d85d0594000000000000000000000000000000000000000501d85e0594000000000000000000000000000000000000000501d85f0594000000000000000000000000000000000000000501", + "blockHeader": { + "parentHash": "0xd7333924bc9bdfbd1e47e1592b1b55c87d13aba5c6c25d78263c8c2d00faa191", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x32fc24f0bc9f8c19b71ce67a014c55a743b4f480849a7d62acbe5053dc24dc12", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x06", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x48", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xe2e7981753106925269ce986cdb7eba3ddb54361ea36f70a831617b2ae054cae", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf8f20a0855503244767b60ee2b2e2a5916dc44d7d52024bd46b9e79c84ac0aa" + }, + "blocknumber": "6", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x50", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x51", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x52", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x53", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x54", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x55", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x56", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x57", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x58", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x59", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x5a", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x5b", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x5c", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x5d", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x5e", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + }, + { + "index": "0x5f", + "validatorIndex": "0x05", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903d2f9023aa0df8f20a0855503244767b60ee2b2e2a5916dc44d7d52024bd46b9e79c84ac0aaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f87fb77fecc37b19b517247186ffe3ec65e8e09f89636f21b0ea312d5254e251a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800788016345785d8a0000805480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a01559e71aa8ac250357224d329af58f67ef79509877c8ca89a10184ddea6ca65b8080a00000000000000000000000000000000000000000000000000000000000000000c0c0f90190d8600694000000000000000000000000000000000000000601d8610694000000000000000000000000000000000000000601d8620694000000000000000000000000000000000000000601d8630694000000000000000000000000000000000000000601d8640694000000000000000000000000000000000000000601d8650694000000000000000000000000000000000000000601d8660694000000000000000000000000000000000000000601d8670694000000000000000000000000000000000000000601d8680694000000000000000000000000000000000000000601d8690694000000000000000000000000000000000000000601d86a0694000000000000000000000000000000000000000601d86b0694000000000000000000000000000000000000000601d86c0694000000000000000000000000000000000000000601d86d0694000000000000000000000000000000000000000601d86e0694000000000000000000000000000000000000000601d86f0694000000000000000000000000000000000000000601", + "blockHeader": { + "parentHash": "0xdf8f20a0855503244767b60ee2b2e2a5916dc44d7d52024bd46b9e79c84ac0aa", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf87fb77fecc37b19b517247186ffe3ec65e8e09f89636f21b0ea312d5254e251", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x07", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x54", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x1559e71aa8ac250357224d329af58f67ef79509877c8ca89a10184ddea6ca65b", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x4c39bd0bef7de52aae31000ff34acdefb14f0a6997bb7148101bf9dae37020c6" + }, + "blocknumber": "7", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x60", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x61", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x62", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x63", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x64", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x65", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x66", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x67", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x68", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x69", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x6a", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x6b", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x6c", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x6d", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x6e", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + }, + { + "index": "0x6f", + "validatorIndex": "0x06", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903d2f9023aa04c39bd0bef7de52aae31000ff34acdefb14f0a6997bb7148101bf9dae37020c6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0deaf457c4148ebc747992a9aa29a3013d4f152d322ec95955ca83b0de753a0dea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800888016345785d8a0000806080a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a020d86acc5d05214434b17116a717e17ecf3a2314c034595feb1b6cd77646e8df8080a00000000000000000000000000000000000000000000000000000000000000000c0c0f90190d8700794000000000000000000000000000000000000000701d8710794000000000000000000000000000000000000000701d8720794000000000000000000000000000000000000000701d8730794000000000000000000000000000000000000000701d8740794000000000000000000000000000000000000000701d8750794000000000000000000000000000000000000000701d8760794000000000000000000000000000000000000000701d8770794000000000000000000000000000000000000000701d8780794000000000000000000000000000000000000000701d8790794000000000000000000000000000000000000000701d87a0794000000000000000000000000000000000000000701d87b0794000000000000000000000000000000000000000701d87c0794000000000000000000000000000000000000000701d87d0794000000000000000000000000000000000000000701d87e0794000000000000000000000000000000000000000701d87f0794000000000000000000000000000000000000000701", + "blockHeader": { + "parentHash": "0x4c39bd0bef7de52aae31000ff34acdefb14f0a6997bb7148101bf9dae37020c6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdeaf457c4148ebc747992a9aa29a3013d4f152d322ec95955ca83b0de753a0de", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x08", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x60", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x20d86acc5d05214434b17116a717e17ecf3a2314c034595feb1b6cd77646e8df", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x62fecf7cdb77d57e633d4ae31066e3668bbbf6e2247ec2d9a9e6f35ddf3eb3e7" + }, + "blocknumber": "8", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x70", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x71", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x72", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x73", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x74", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x75", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x76", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x77", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x78", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x79", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x7a", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x7b", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x7c", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x7d", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x7e", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + }, + { + "index": "0x7f", + "validatorIndex": "0x07", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903e2f9023aa062fecf7cdb77d57e633d4ae31066e3668bbbf6e2247ec2d9a9e6f35ddf3eb3e7a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06172671289c9a5c03fedded3540c999e3080e00cd7e9f453ad9d5f612310d96fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800988016345785d8a0000806c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0362fa8f5f042d4b38b605e6b60f833f139553d9f2c866596fecfcf89d894eb988080a00000000000000000000000000000000000000000000000000000000000000000c0c0f901a0d981800894000000000000000000000000000000000000000801d981810894000000000000000000000000000000000000000801d981820894000000000000000000000000000000000000000801d981830894000000000000000000000000000000000000000801d981840894000000000000000000000000000000000000000801d981850894000000000000000000000000000000000000000801d981860894000000000000000000000000000000000000000801d981870894000000000000000000000000000000000000000801d981880894000000000000000000000000000000000000000801d981890894000000000000000000000000000000000000000801d9818a0894000000000000000000000000000000000000000801d9818b0894000000000000000000000000000000000000000801d9818c0894000000000000000000000000000000000000000801d9818d0894000000000000000000000000000000000000000801d9818e0894000000000000000000000000000000000000000801d9818f0894000000000000000000000000000000000000000801", + "blockHeader": { + "parentHash": "0x62fecf7cdb77d57e633d4ae31066e3668bbbf6e2247ec2d9a9e6f35ddf3eb3e7", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6172671289c9a5c03fedded3540c999e3080e00cd7e9f453ad9d5f612310d96f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x09", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x6c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x362fa8f5f042d4b38b605e6b60f833f139553d9f2c866596fecfcf89d894eb98", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdf390e1c72a31dcc98aab73475772fb9afa63ef705195f560cb4deff0d6085a1" + }, + "blocknumber": "9", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x80", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x81", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x82", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x83", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x84", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x85", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x86", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x87", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x88", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x89", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x8a", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x8b", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x8c", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x8d", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x8e", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + }, + { + "index": "0x8f", + "validatorIndex": "0x08", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903e2f9023aa0df390e1c72a31dcc98aab73475772fb9afa63ef705195f560cb4deff0d6085a1a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa072bc27b7f5a166047cd06036bcc86a8ca1d067c57e791a0422a1c93cfde5f890a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800a88016345785d8a0000807880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0d9f79c57fa95c660ed471922270585d66c32ac464f0788f0d3857b6607d4985f8080a00000000000000000000000000000000000000000000000000000000000000000c0c0f901a0d981900994000000000000000000000000000000000000000901d981910994000000000000000000000000000000000000000901d981920994000000000000000000000000000000000000000901d981930994000000000000000000000000000000000000000901d981940994000000000000000000000000000000000000000901d981950994000000000000000000000000000000000000000901d981960994000000000000000000000000000000000000000901d981970994000000000000000000000000000000000000000901d981980994000000000000000000000000000000000000000901d981990994000000000000000000000000000000000000000901d9819a0994000000000000000000000000000000000000000901d9819b0994000000000000000000000000000000000000000901d9819c0994000000000000000000000000000000000000000901d9819d0994000000000000000000000000000000000000000901d9819e0994000000000000000000000000000000000000000901d9819f0994000000000000000000000000000000000000000901", + "blockHeader": { + "parentHash": "0xdf390e1c72a31dcc98aab73475772fb9afa63ef705195f560cb4deff0d6085a1", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x72bc27b7f5a166047cd06036bcc86a8ca1d067c57e791a0422a1c93cfde5f890", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0a", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x78", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xd9f79c57fa95c660ed471922270585d66c32ac464f0788f0d3857b6607d4985f", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x78ca3b77b952fe56309bacd519e15e4b285be7d21f6b8401286e292672e35c99" + }, + "blocknumber": "10", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x90", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x91", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x92", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x93", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x94", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x95", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x96", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x97", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x98", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x99", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x9a", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x9b", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x9c", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x9d", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x9e", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + }, + { + "index": "0x9f", + "validatorIndex": "0x09", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf903e3f9023ba078ca3b77b952fe56309bacd519e15e4b285be7d21f6b8401286e292672e35c99a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0938b463bf23b23552124718a96e15e2f11d4d47bbbf8c82edd955e0a95ef743aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800b88016345785d8a000080818480a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a04e3c318a9c84a319be1ceabbfaf551f00a8bc2075a7a83aeeabb435a511d0ff88080a00000000000000000000000000000000000000000000000000000000000000000c0c0f901a0d981a00a94ffffffffffffffffffffffffffffffffffffffff01d981a10a94ffffffffffffffffffffffffffffffffffffffff01d981a20a94ffffffffffffffffffffffffffffffffffffffff01d981a30a94ffffffffffffffffffffffffffffffffffffffff01d981a40a94ffffffffffffffffffffffffffffffffffffffff01d981a50a94ffffffffffffffffffffffffffffffffffffffff01d981a60a94ffffffffffffffffffffffffffffffffffffffff01d981a70a94ffffffffffffffffffffffffffffffffffffffff01d981a80a94ffffffffffffffffffffffffffffffffffffffff01d981a90a94ffffffffffffffffffffffffffffffffffffffff01d981aa0a94ffffffffffffffffffffffffffffffffffffffff01d981ab0a94ffffffffffffffffffffffffffffffffffffffff01d981ac0a94ffffffffffffffffffffffffffffffffffffffff01d981ad0a94ffffffffffffffffffffffffffffffffffffffff01d981ae0a94ffffffffffffffffffffffffffffffffffffffff01d981af0a94ffffffffffffffffffffffffffffffffffffffff01", + "blockHeader": { + "parentHash": "0x78ca3b77b952fe56309bacd519e15e4b285be7d21f6b8401286e292672e35c99", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x938b463bf23b23552124718a96e15e2f11d4d47bbbf8c82edd955e0a95ef743a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x0b", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x84", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x4e3c318a9c84a319be1ceabbfaf551f00a8bc2075a7a83aeeabb435a511d0ff8", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x69ec8f852df7d8eb7e2f9557b302f30d2abed4c32ea11b782cfdbf47186fde94" + }, + "blocknumber": "11", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0xa0", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa1", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa2", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa3", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa4", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa5", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa6", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa7", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa8", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xa9", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xaa", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xab", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xac", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xad", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xae", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + }, + { + "index": "0xaf", + "validatorIndex": "0x0a", + "address": "0xffffffffffffffffffffffffffffffffffffffff", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x69ec8f852df7d8eb7e2f9557b302f30d2abed4c32ea11b782cfdbf47186fde94", + "pre": { + "0x0000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000001": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000002": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000003": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000004": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000005": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000006": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000007": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000008": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000009": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xffffffffffffffffffffffffffffffffffffffff": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000001": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000002": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000003": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000004": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000005": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000006": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000007": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000008": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000009": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18", + "0x24": "0x24", + "0x30": "0x30", + "0x3c": "0x3c", + "0x48": "0x48", + "0x54": "0x54", + "0x60": "0x60", + "0x6c": "0x6c", + "0x78": "0x78", + "0x84": "0x84" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + }, + "0xffffffffffffffffffffffffffffffffffffffff": { + "nonce": "0x00", + "balance": "0x03b9aca000", + "code": "0x60014355", + "storage": {} + } + }, + "sealEngine": "NoProof" } } \ No newline at end of file diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json index 2fac212b593..1ae43ec99d8 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/newly_created_contract.json @@ -1,33 +1,54 @@ { "000-fork=Shanghai-without_tx_value-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, "blocks": [ { - "rlp": "0xf9028bf90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c6cf22164712d551b010fc0517382ac6c207383b12fa9eadc88e2ceb24a93708a0281aace64456a0a888d431f32d4369a11575745acc16ea14469008bc2095f00ca0c0d135e565c8018d14e5a2084f6c89c90cf71c74b1932a9ad22ce70197a25587b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d01a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a082cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436f852f850800a830f424080808460015ff325a0adca6192690ec2e38c08c576ff1756f39f1b7e9884787eb74a63f28f13b85afda06c54a91d5b0df86d7d47ca90ce1ab92b76d5975946c22e1711122d2109b70a47c0d9d88080946295ee1b4f6dd65047762f924ecd367c17eabf8f01", + "rlp": "0xf9028cf90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05271648ce214ca1efbb91c9897ff4f1538ff856d68a5d2ffd9bee7caf8589c3ea01caedad81421ea1697157f7355d4a2ebf77b5e3bf59fbd3b75f7a3a4942842afa06363485005a5cae5b903c3085b077d8b668552fb8aa354458f3966fe5aaf87dab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d01f0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a082cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436f853f851800a830f424080808560016000f325a0aa4416bc33be9eb3ac22a10724647c5352c934da54994aea094f24f3c7868741a07c67dae2f47ead0e15606a9cdd87b6a73f0fc84732c441633a6adf7bbf0a5032c0d9d88080946295ee1b4f6dd65047762f924ecd367c17eabf8f01", "blockHeader": { "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xc6cf22164712d551b010fc0517382ac6c207383b12fa9eadc88e2ceb24a93708", - "transactionsTrie": "0x281aace64456a0a888d431f32d4369a11575745acc16ea14469008bc2095f00c", - "receiptTrie": "0xc0d135e565c8018d14e5a2084f6c89c90cf71c74b1932a9ad22ce70197a25587", + "stateRoot": "0x5271648ce214ca1efbb91c9897ff4f1538ff856d68a5d2ffd9bee7caf8589c3e", + "transactionsTrie": "0x1caedad81421ea1697157f7355d4a2ebf77b5e3bf59fbd3b75f7a3a4942842af", + "receiptTrie": "0x6363485005a5cae5b903c3085b077d8b668552fb8aa354458f3966fe5aaf87da", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xd01a", + "gasUsed": "0xd01f", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xee2a6d06ae31c4551c7ad326ee1edb59d75f11f3f3554c1f99d7b2dc8da51acb", - "withdrawalsRoot": "0x82cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436" + "withdrawalsRoot": "0x82cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436", + "hash": "0xd236ae7d11f63e762b9f9b2c16d2a252344b20e3b7b3143be6520d7897594d99" }, "blocknumber": "1", "transactions": [ @@ -36,12 +57,14 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "data": "0x60015ff3", "gasLimit": "0x0f4240", - "to": "" + "to": "", + "value": "0x00", + "data": "0x60016000f3", + "v": "0x25", + "r": "0xaa4416bc33be9eb3ac22a10724647c5352c934da54994aea094f24f3c7868741", + "s": "0x7c67dae2f47ead0e15606a9cdd87b6a73f0fc84732c441633a6adf7bbf0a5032", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], @@ -55,6 +78,45 @@ ] } ], + "lastblockhash": "0xd236ae7d11f63e762b9f9b2c16d2a252344b20e3b7b3143be6520d7897594d99", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x02705d", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x3b9aca00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97deca", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Shanghai-with_tx_value-fork=Shanghai": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -72,12 +134,61 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xee2a6d06ae31c4551c7ad326ee1edb59d75f11f3f3554c1f99d7b2dc8da51acb", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf90290f90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cc8529b2d5e0d5a288aab8adb5838f2c97750e4587eb0800d67431dc209b5dd3a0bf7edd579c619666a3c7728c7b21087597d07a3949b3edbd353327cd135a43c5a06363485005a5cae5b903c3085b077d8b668552fb8aa354458f3966fe5aaf87dab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d01f0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a082cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436f857f855800a830f424080843b9aca008560016000f325a02f2ab7fd4e7790efc24b7e87c11cdf46198f66a6999a8e1262df616affe00ae4a06d43b1ded801dd642e44d59ade66ad905f061c133c8c11ef39fa86278455b41fc0d9d88080946295ee1b4f6dd65047762f924ecd367c17eabf8f01", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcc8529b2d5e0d5a288aab8adb5838f2c97750e4587eb0800d67431dc209b5dd3", + "transactionsTrie": "0xbf7edd579c619666a3c7728c7b21087597d07a3949b3edbd353327cd135a43c5", + "receiptTrie": "0x6363485005a5cae5b903c3085b077d8b668552fb8aa354458f3966fe5aaf87da", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xd01f", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x82cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436", + "hash": "0x22522cf4dad63dbead0e5567e3405118768951cebf275e4fdf98ed4073bdd7b0" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "", + "value": "0x3b9aca00", + "data": "0x60016000f3", + "v": "0x25", + "r": "0x2f2ab7fd4e7790efc24b7e87c11cdf46198f66a6999a8e1262df616affe00ae4", + "s": "0x6d43b1ded801dd642e44d59ade66ad905f061c133c8c11ef39fa86278455b41f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x22522cf4dad63dbead0e5567e3405118768951cebf275e4fdf98ed4073bdd7b0", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", @@ -89,54 +200,81 @@ "postState": { "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x02704e", + "balance": "0x02705d", "code": "0x", "storage": {} }, "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { "nonce": "0x01", - "balance": "0x3b9aca00", + "balance": "0x77359400", "code": "0x00", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5de97defc", + "balance": "0x3635c9adc5a2fd14ca", "code": "0x", "storage": {} } }, "sealEngine": "NoProof" }, - "001-fork=Shanghai-with_tx_value-fork=Shanghai": { + "002-fork=Cancun-without_tx_value-fork=Cancun": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, "blocks": [ { - "rlp": "0xf9028ff90219a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03a282507666774135e65fcbdfbfbc2500e6ff4772d77a4ecc1f4396d29a23154a005f4b92d8e1685b8f2b46b13e87dce66fc2e17de7984f1c9e33cc961de20604ca0c0d135e565c8018d14e5a2084f6c89c90cf71c74b1932a9ad22ce70197a25587b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d01a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a082cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436f856f854800a830f424080843b9aca008460015ff325a0d9494f23e74564d5a3ff541fe91327d3685613013993893bb1f3a6487207f441a02e48d64a25e31e44485f2389ea41eaeff89456f19822a753478ed36bc3aa2cc6c0d9d88080946295ee1b4f6dd65047762f924ecd367c17eabf8f01", + "rlp": "0xf902aff9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02445d40d714f917ac68bcb13e605bce1a6b51cc5fe69790bdbfdac3614e953fda01caedad81421ea1697157f7355d4a2ebf77b5e3bf59fbd3b75f7a3a4942842afa06363485005a5cae5b903c3085b077d8b668552fb8aa354458f3966fe5aaf87dab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d01f0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a082cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab664368080a00000000000000000000000000000000000000000000000000000000000000000f853f851800a830f424080808560016000f325a0aa4416bc33be9eb3ac22a10724647c5352c934da54994aea094f24f3c7868741a07c67dae2f47ead0e15606a9cdd87b6a73f0fc84732c441633a6adf7bbf0a5032c0d9d88080946295ee1b4f6dd65047762f924ecd367c17eabf8f01", "blockHeader": { - "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x3a282507666774135e65fcbdfbfbc2500e6ff4772d77a4ecc1f4396d29a23154", - "transactionsTrie": "0x05f4b92d8e1685b8f2b46b13e87dce66fc2e17de7984f1c9e33cc961de20604c", - "receiptTrie": "0xc0d135e565c8018d14e5a2084f6c89c90cf71c74b1932a9ad22ce70197a25587", + "stateRoot": "0x2445d40d714f917ac68bcb13e605bce1a6b51cc5fe69790bdbfdac3614e953fd", + "transactionsTrie": "0x1caedad81421ea1697157f7355d4a2ebf77b5e3bf59fbd3b75f7a3a4942842af", + "receiptTrie": "0x6363485005a5cae5b903c3085b077d8b668552fb8aa354458f3966fe5aaf87da", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xd01a", + "gasUsed": "0xd01f", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xcc7436d6c68b512dfb923f37044b4496b62f0c71abc83dbde4af6ecabc0a1b31", - "withdrawalsRoot": "0x82cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436" + "withdrawalsRoot": "0x82cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x13419ff6e1f090b1259781cea7c8221c263b7b42fa024705bae639107b1265d9" }, "blocknumber": "1", "transactions": [ @@ -145,12 +283,14 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x3b9aca00", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", - "data": "0x60015ff3", "gasLimit": "0x0f4240", - "to": "" + "to": "", + "value": "0x00", + "data": "0x60016000f3", + "v": "0x25", + "r": "0xaa4416bc33be9eb3ac22a10724647c5352c934da54994aea094f24f3c7868741", + "s": "0x7c67dae2f47ead0e15606a9cdd87b6a73f0fc84732c441633a6adf7bbf0a5032", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], @@ -164,11 +304,64 @@ ] } ], + "lastblockhash": "0x13419ff6e1f090b1259781cea7c8221c263b7b42fa024705bae639107b1265d9", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x02705d", + "code": "0x", + "storage": {} + }, + "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f": { + "nonce": "0x01", + "balance": "0x3b9aca00", + "code": "0x00", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de97deca", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-with_tx_value-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -181,13 +374,74 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xcc7436d6c68b512dfb923f37044b4496b62f0c71abc83dbde4af6ecabc0a1b31", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902b3f9023ca075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01f3fe3efb4dc298488665c1165ba66ab47a342cff31ce5ef29e1d2bf1a4c3179a0bf7edd579c619666a3c7728c7b21087597d07a3949b3edbd353327cd135a43c5a06363485005a5cae5b903c3085b077d8b668552fb8aa354458f3966fe5aaf87dab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d01f0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a082cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab664368080a00000000000000000000000000000000000000000000000000000000000000000f857f855800a830f424080843b9aca008560016000f325a02f2ab7fd4e7790efc24b7e87c11cdf46198f66a6999a8e1262df616affe00ae4a06d43b1ded801dd642e44d59ade66ad905f061c133c8c11ef39fa86278455b41fc0d9d88080946295ee1b4f6dd65047762f924ecd367c17eabf8f01", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1f3fe3efb4dc298488665c1165ba66ab47a342cff31ce5ef29e1d2bf1a4c3179", + "transactionsTrie": "0xbf7edd579c619666a3c7728c7b21087597d07a3949b3edbd353327cd135a43c5", + "receiptTrie": "0x6363485005a5cae5b903c3085b077d8b668552fb8aa354458f3966fe5aaf87da", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xd01f", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x82cc6fbe74c41496b382fcdf25216c5af7bdbb5a3929e8f2e61bd6445ab66436", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x34143ca01d0b771f34d346691cf38b75792cd245f1523827b5f41591d9109ea6" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0f4240", + "to": "", + "value": "0x3b9aca00", + "data": "0x60016000f3", + "v": "0x25", + "r": "0x2f2ab7fd4e7790efc24b7e87c11cdf46198f66a6999a8e1262df616affe00ae4", + "s": "0x6d43b1ded801dd642e44d59ade66ad905f061c133c8c11ef39fa86278455b41f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x34143ca01d0b771f34d346691cf38b75792cd245f1523827b5f41591d9109ea6", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", "balance": "0x3635c9adc5dea00000", @@ -196,9 +450,17 @@ } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x02704e", + "balance": "0x02705d", "code": "0x", "storage": {} }, @@ -210,7 +472,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5a2fd14fc", + "balance": "0x3635c9adc5a2fd14ca", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json index 5ef1f3b2afe..c442acb123c 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/no_evm_execution.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03fc1efefb5bef89847fcc9120ce54578e0088cf53b4fddde8d7895e36167bbd5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x3fc1efefb5bef89847fcc9120ce54578e0088cf53b4fddde8d7895e36167bbd5", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x4325120a871d0d874b4eb9d2ac515761d9ca6b433abae65429d649c6002aee4f" + }, "blocks": [ { "rlp": "0xf90317f9021aa04325120a871d0d874b4eb9d2ac515761d9ca6b433abae65429d649c6002aee4fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fe3e13e82effefff727e3fdc39f7cbdfbab72dc17b5c031f5c50ffee3ea42a88a07442c7b0537a6eb4fa1e716f9c27f93f709029580114c5f988db69c86016c2e5a0565dbae32920fdc51f307a7eae972eed4f68bf2fa895f24169f0623ef1b6d66cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830150c20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0d4bee8dce3f637a8a068e6bee128b52b8cd732a285fef0dd9d02aa50a0cc78c8f8c4f860800a830186a0940000000000000000000000000000000000000300808026a0cbc098d492e6b1fcbdb61a993b5d9af820db066388b4c9f4707ee32addafd50da020f90b5fa35d575f8aa71504c7e2ee523e0d3c4fb86dd2886b2d46e8a33c4aa0f860010a830186a0940000000000000000000000000000000000000400808026a0e180dee1ed22645d45aad4334e91619bbd8d8b5b2c8e1366e0d8b8980059a797a0170f6aca5a65ec2028af11d1c1852e02541aef3df745f52c8f368f1aec4accf5c0f2d8808094000000000000000000000000000000000000010001d8010194000000000000000000000000000000000000020001", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xfd985d4b1b6b470c4875b182b4dc895392f198a91ec86b3196c0b508e221c554", - "withdrawalsRoot": "0xd4bee8dce3f637a8a068e6bee128b52b8cd732a285fef0dd9d02aa50a0cc78c8" + "withdrawalsRoot": "0xd4bee8dce3f637a8a068e6bee128b52b8cd732a285fef0dd9d02aa50a0cc78c8", + "hash": "0xfd985d4b1b6b470c4875b182b4dc895392f198a91ec86b3196c0b508e221c554" }, "blocknumber": "1", "transactions": [ @@ -36,24 +57,28 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000300", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xcbc098d492e6b1fcbdb61a993b5d9af820db066388b4c9f4707ee32addafd50d", + "s": "0x20f90b5fa35d575f8aa71504c7e2ee523e0d3c4fb86dd2886b2d46e8a33c4aa0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000400", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xe180dee1ed22645d45aad4334e91619bbd8d8b5b2c8e1366e0d8b8980059a797", + "s": "0x170f6aca5a65ec2028af11d1c1852e02541aef3df745f52c8f368f1aec4accf5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], @@ -91,8 +116,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x5eab96388cf81d3448613440cb3cd72ba0041f93e4090f8780443739b3de08f1", - "withdrawalsRoot": "0xa0e8fe9392fbaa0bad384367057e838702f7483f2b1dbfb74ea7b1fe26b13641" + "withdrawalsRoot": "0xa0e8fe9392fbaa0bad384367057e838702f7483f2b1dbfb74ea7b1fe26b13641", + "hash": "0x5eab96388cf81d3448613440cb3cd72ba0041f93e4090f8780443739b3de08f1" }, "blocknumber": "2", "transactions": [ @@ -101,24 +126,28 @@ "chainId": "0x01", "nonce": "0x02", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x7315b23576abb7d7563d3348f2723fdb1f053e4bafca1349f7a145ce0180db25", + "s": "0x5b91320f746105d676a207b19dbfd64bc4cff4a371a457a49990a4a16ba2056f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" }, { "type": "0x00", "chainId": "0x01", "nonce": "0x03", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000200", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0xb7a095276292f47aca1357a17a42b1dd4b30cf20e964263458aa79dfa84f192c", + "s": "0x6c15c90e8640016f0e3c769829f64eb9309dd1e96e3accad3c1a6008bb67e202", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], @@ -138,11 +167,100 @@ ] } ], + "lastblockhash": "0x5eab96388cf81d3448613440cb3cd72ba0041f93e4090f8780443739b3de08f1", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000300": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0x0000000000000000000000000000000000000400": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x60014355", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x60014355", + "storage": { + "0x02": "0x01" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x60014355", + "storage": { + "0x02": "0x01" + } + }, + "0x0000000000000000000000000000000000000300": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x60014355", + "storage": { + "0x01": "0x01" + } + }, + "0x0000000000000000000000000000000000000400": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x60014355", + "storage": { + "0x01": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x07e48c", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x04", + "balance": "0x3635c9adc5de85b0d8", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a090ec57f0ac67323de51c14e97837f6a5635281c1ba4e32d0c18371a76ce0b645a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x3fc1efefb5bef89847fcc9120ce54578e0088cf53b4fddde8d7895e36167bbd5", + "stateRoot": "0x90ec57f0ac67323de51c14e97837f6a5635281c1ba4e32d0c18371a76ce0b645", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -155,19 +273,160 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x4325120a871d0d874b4eb9d2ac515761d9ca6b433abae65429d649c6002aee4f", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x699da86569b9a7186dd1eda1c0e357e9ea5da7d514e748e64027f19cbf43b240" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a03fc1efefb5bef89847fcc9120ce54578e0088cf53b4fddde8d7895e36167bbd5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x5eab96388cf81d3448613440cb3cd72ba0041f93e4090f8780443739b3de08f1", - "network": "Shanghai", - "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} + "blocks": [ + { + "rlp": "0xf9033af9023da0699da86569b9a7186dd1eda1c0e357e9ea5da7d514e748e64027f19cbf43b240a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fff026db888a4e17699bf4bd2fa156acd3a14da40539fd654fae09dc11f00dc5a07442c7b0537a6eb4fa1e716f9c27f93f709029580114c5f988db69c86016c2e5a0565dbae32920fdc51f307a7eae972eed4f68bf2fa895f24169f0623ef1b6d66cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000830150c20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0d4bee8dce3f637a8a068e6bee128b52b8cd732a285fef0dd9d02aa50a0cc78c88080a00000000000000000000000000000000000000000000000000000000000000000f8c4f860800a830186a0940000000000000000000000000000000000000300808026a0cbc098d492e6b1fcbdb61a993b5d9af820db066388b4c9f4707ee32addafd50da020f90b5fa35d575f8aa71504c7e2ee523e0d3c4fb86dd2886b2d46e8a33c4aa0f860010a830186a0940000000000000000000000000000000000000400808026a0e180dee1ed22645d45aad4334e91619bbd8d8b5b2c8e1366e0d8b8980059a797a0170f6aca5a65ec2028af11d1c1852e02541aef3df745f52c8f368f1aec4accf5c0f2d8808094000000000000000000000000000000000000010001d8010194000000000000000000000000000000000000020001", + "blockHeader": { + "parentHash": "0x699da86569b9a7186dd1eda1c0e357e9ea5da7d514e748e64027f19cbf43b240", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfff026db888a4e17699bf4bd2fa156acd3a14da40539fd654fae09dc11f00dc5", + "transactionsTrie": "0x7442c7b0537a6eb4fa1e716f9c27f93f709029580114c5f988db69c86016c2e5", + "receiptTrie": "0x565dbae32920fdc51f307a7eae972eed4f68bf2fa895f24169f0623ef1b6d66c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0150c2", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xd4bee8dce3f637a8a068e6bee128b52b8cd732a285fef0dd9d02aa50a0cc78c8", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb8fa63c365f6a7f99f7d85c0ed41989febbe7894c756d7d85d38849e15da9a26" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000300", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xcbc098d492e6b1fcbdb61a993b5d9af820db066388b4c9f4707ee32addafd50d", + "s": "0x20f90b5fa35d575f8aa71504c7e2ee523e0d3c4fb86dd2886b2d46e8a33c4aa0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000400", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xe180dee1ed22645d45aad4334e91619bbd8d8b5b2c8e1366e0d8b8980059a797", + "s": "0x170f6aca5a65ec2028af11d1c1852e02541aef3df745f52c8f368f1aec4accf5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000100", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000200", + "amount": "0x01" + } + ] }, + { + "rlp": "0xf9033af9023da0b8fa63c365f6a7f99f7d85c0ed41989febbe7894c756d7d85d38849e15da9a26a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0485e8ec521d791d690ef95e5d1870fc9f06d6d45ceb3247a244c4abb2fd437f4a0e39a08eafac7cfd8be8770a185b7196712b0ea63416467649d8074425ba8f687a0565dbae32920fdc51f307a7eae972eed4f68bf2fa895f24169f0623ef1b6d66cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830150c21880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a0e8fe9392fbaa0bad384367057e838702f7483f2b1dbfb74ea7b1fe26b136418080a00000000000000000000000000000000000000000000000000000000000000000f8c4f860020a830186a0940000000000000000000000000000000000000100808025a07315b23576abb7d7563d3348f2723fdb1f053e4bafca1349f7a145ce0180db25a05b91320f746105d676a207b19dbfd64bc4cff4a371a457a49990a4a16ba2056ff860030a830186a0940000000000000000000000000000000000000200808025a0b7a095276292f47aca1357a17a42b1dd4b30cf20e964263458aa79dfa84f192ca06c15c90e8640016f0e3c769829f64eb9309dd1e96e3accad3c1a6008bb67e202c0f2d8808094000000000000000000000000000000000000030001d8010194000000000000000000000000000000000000040001", + "blockHeader": { + "parentHash": "0xb8fa63c365f6a7f99f7d85c0ed41989febbe7894c756d7d85d38849e15da9a26", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x485e8ec521d791d690ef95e5d1870fc9f06d6d45ceb3247a244c4abb2fd437f4", + "transactionsTrie": "0xe39a08eafac7cfd8be8770a185b7196712b0ea63416467649d8074425ba8f687", + "receiptTrie": "0x565dbae32920fdc51f307a7eae972eed4f68bf2fa895f24169f0623ef1b6d66c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0150c2", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xa0e8fe9392fbaa0bad384367057e838702f7483f2b1dbfb74ea7b1fe26b13641", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x64cfc62d22a948400162e0b9b6126da6ae95bd20cb874b0c33daf14b071f2b7f" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x02", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x7315b23576abb7d7563d3348f2723fdb1f053e4bafca1349f7a145ce0180db25", + "s": "0x5b91320f746105d676a207b19dbfd64bc4cff4a371a457a49990a4a16ba2056f", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + }, + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x03", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000200", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0xb7a095276292f47aca1357a17a42b1dd4b30cf20e964263458aa79dfa84f192c", + "s": "0x6c15c90e8640016f0e3c769829f64eb9309dd1e96e3accad3c1a6008bb67e202", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000300", + "amount": "0x01" + }, + { + "index": "0x01", + "validatorIndex": "0x01", + "address": "0x0000000000000000000000000000000000000400", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x64cfc62d22a948400162e0b9b6126da6ae95bd20cb874b0c33daf14b071f2b7f", + "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -191,6 +450,18 @@ "balance": "0x00", "code": "0x60014355", "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -226,6 +497,15 @@ "0x01": "0x01" } }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x07e48c", diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json index ec484a6f3f3..771d89d620d 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/self_destructing_account.json @@ -1,33 +1,54 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0ad50058d8a09cffcc5a842901f4d2bcc4eb194af238e706fba0c6a79f4558b9da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xad50058d8a09cffcc5a842901f4d2bcc4eb194af238e706fba0c6a79f4558b9d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x2272b637422e4dafefcabe797f4d1fe216f10ef0c4f70dfe5c6a62ce669da2f0" + }, "blocks": [ { - "rlp": "0xf902bbf90219a00414d55a2353bf48cf0039340c4485142eaa60342d0ad0838864d5fd5d4b553fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f94bac24c97a836fb6f718c3d89cbf9e3a368ebfcb6b0c3aa089ae2bc3ce5244a0c571cf73fd8fef916df38a63823699e208de1b224e5bdaed87a4c73f72a07f7ca01e473dbf65b283de77e81ec884f8e5165d49cf5a1e813008182216d3b85af85eb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082d1f20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a08dbfabd4e0dde509292d6d557e411dfda784f96132e5db82abfe4f33cd613bd5f882f880800a830186a094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000020026a0fd75940662272e5daac655a822b10f101866916a2975c3821111ad4ab481d48ba067a11d0fcd31933ad4b62b4d6fd4f1540f93406d501e41b82ff59223303f60c5c0d9d8808094000000000000000000000000000000000000010063", + "rlp": "0xf902bbf90219a02272b637422e4dafefcabe797f4d1fe216f10ef0c4f70dfe5c6a62ce669da2f0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09357f91d98d5014343c8a98b6bbfa97a7cb7fb2fbea30f667c1bd581ceed3d44a0c571cf73fd8fef916df38a63823699e208de1b224e5bdaed87a4c73f72a07f7ca071d591e40f64ef62d58defd946def7a317889450ba9bbeddef442b8f02aa937cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082704a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a08dbfabd4e0dde509292d6d557e411dfda784f96132e5db82abfe4f33cd613bd5f882f880800a830186a094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000020026a0fd75940662272e5daac655a822b10f101866916a2975c3821111ad4ab481d48ba067a11d0fcd31933ad4b62b4d6fd4f1540f93406d501e41b82ff59223303f60c5c0d9d8808094000000000000000000000000000000000000010063", "blockHeader": { - "parentHash": "0x0414d55a2353bf48cf0039340c4485142eaa60342d0ad0838864d5fd5d4b553f", + "parentHash": "0x2272b637422e4dafefcabe797f4d1fe216f10ef0c4f70dfe5c6a62ce669da2f0", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xf94bac24c97a836fb6f718c3d89cbf9e3a368ebfcb6b0c3aa089ae2bc3ce5244", + "stateRoot": "0x9357f91d98d5014343c8a98b6bbfa97a7cb7fb2fbea30f667c1bd581ceed3d44", "transactionsTrie": "0xc571cf73fd8fef916df38a63823699e208de1b224e5bdaed87a4c73f72a07f7c", - "receiptTrie": "0x1e473dbf65b283de77e81ec884f8e5165d49cf5a1e813008182216d3b85af85e", + "receiptTrie": "0x71d591e40f64ef62d58defd946def7a317889450ba9bbeddef442b8f02aa937c", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xd1f2", + "gasUsed": "0x704a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x63a79c09b6337eca6fcb621c6082be1820d89c843edd40133e5f29a35100bc73", - "withdrawalsRoot": "0x8dbfabd4e0dde509292d6d557e411dfda784f96132e5db82abfe4f33cd613bd5" + "withdrawalsRoot": "0x8dbfabd4e0dde509292d6d557e411dfda784f96132e5db82abfe4f33cd613bd5", + "hash": "0x95a444c27e2780206653e7f5b0cd444528eafdbb68a69f5236b76be4097c1c16" }, "blocknumber": "1", "transactions": [ @@ -36,12 +57,14 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x0000000000000000000000000000000000000000000000000000000000000200", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0xfd75940662272e5daac655a822b10f101866916a2975c3821111ad4ab481d48b", + "s": "0x67a11d0fcd31933ad4b62b4d6fd4f1540f93406d501e41b82ff59223303f60c5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], @@ -55,11 +78,68 @@ ] } ], + "lastblockhash": "0x95a444c27e2780206653e7f5b0cd444528eafdbb68a69f5236b76be4097c1c16", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x174876e800", + "code": "0x600035ff", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x170cdc1e00", + "code": "0x", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x174876e801", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0150de", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9b9d1c", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02c1e8d74adb4a4563ebb01afb2eccad9b747702a2e70c4f0163095142ce45549a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x4b7b113f6da8494600f4dc7037892ad980b2e4bfd35e14a3f5e5db9b0fe7cc8b", + "stateRoot": "0x2c1e8d74adb4a4563ebb01afb2eccad9b747702a2e70c4f0163095142ce45549", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -72,19 +152,68 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x0414d55a2353bf48cf0039340c4485142eaa60342d0ad0838864d5fd5d4b553f", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5df669a41cd3c6003fb1fe12ebe893ee230fc2b625259aae35b715af7dd48917" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04b7b113f6da8494600f4dc7037892ad980b2e4bfd35e14a3f5e5db9b0fe7cc8ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x63a79c09b6337eca6fcb621c6082be1820d89c843edd40133e5f29a35100bc73", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902def9023ca05df669a41cd3c6003fb1fe12ebe893ee230fc2b625259aae35b715af7dd48917a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c4a832b82795d872822e6476eb0f48a72091f8e870d15d6f8d470ae6fb2bf02ca0c571cf73fd8fef916df38a63823699e208de1b224e5bdaed87a4c73f72a07f7ca071d591e40f64ef62d58defd946def7a317889450ba9bbeddef442b8f02aa937cb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082704a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a08dbfabd4e0dde509292d6d557e411dfda784f96132e5db82abfe4f33cd613bd58080a00000000000000000000000000000000000000000000000000000000000000000f882f880800a830186a094000000000000000000000000000000000000010080a0000000000000000000000000000000000000000000000000000000000000020026a0fd75940662272e5daac655a822b10f101866916a2975c3821111ad4ab481d48ba067a11d0fcd31933ad4b62b4d6fd4f1540f93406d501e41b82ff59223303f60c5c0d9d8808094000000000000000000000000000000000000010063", + "blockHeader": { + "parentHash": "0x5df669a41cd3c6003fb1fe12ebe893ee230fc2b625259aae35b715af7dd48917", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc4a832b82795d872822e6476eb0f48a72091f8e870d15d6f8d470ae6fb2bf02c", + "transactionsTrie": "0xc571cf73fd8fef916df38a63823699e208de1b224e5bdaed87a4c73f72a07f7c", + "receiptTrie": "0x71d591e40f64ef62d58defd946def7a317889450ba9bbeddef442b8f02aa937c", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x704a", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x8dbfabd4e0dde509292d6d557e411dfda784f96132e5db82abfe4f33cd613bd5", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x17fdfeaa2a7cbf9903ee68d1da15464ee822b37b2aa1f8057e2e387442972933" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x0000000000000000000000000000000000000000000000000000000000000200", + "v": "0x26", + "r": "0xfd75940662272e5daac655a822b10f101866916a2975c3821111ad4ab481d48b", + "s": "0x67a11d0fcd31933ad4b62b4d6fd4f1540f93406d501e41b82ff59223303f60c5", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000100", + "amount": "0x63" + } + ] + } + ], + "lastblockhash": "0x17fdfeaa2a7cbf9903ee68d1da15464ee822b37b2aa1f8057e2e387442972933", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x174876e800", @@ -93,7 +222,19 @@ }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x", "storage": {} } @@ -102,24 +243,32 @@ "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x170cdc1e00", - "code": "0x", + "code": "0x600035ff", "storage": {} }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", - "balance": "0x174876e800", + "balance": "0x174876e801", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x0275d6", + "balance": "0x0150de", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3635c9adc5de97cc8c", + "balance": "0x3635c9adc5de9b9d1c", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json index c55ce09793e..9d64b85b3fc 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_contract.json @@ -1,33 +1,54 @@ { "000-fork=Shanghai": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a04749f7faeb62a3a4565bd6f79b7c70a0ed73851fb70870b811b559491e98db38a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x4749f7faeb62a3a4565bd6f79b7c70a0ed73851fb70870b811b559491e98db38", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x3667f3324d9ef447082d007e1688b9158ee4c494ee8a73d3d2db6b14b0722747" + }, "blocks": [ { - "rlp": "0xf9029bf90219a0b410a8e8309613cfa4e3209ea40533a26760ccc9299f8c19c88f5121e9d363e0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa092b91f69dc2820c3fef2fa58459d1af7bb725010151888ce94c19306470ceae7a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da01d1b5f7d024284d2d9754442246e3b4707afbbee4c804d0d23192e670d9939acb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a000082e0b20c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a07bae13217931ff0d7a6c5823c996492f28cd92da5a7788a9a68856bb2206741af862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0d9d8808094000000000000000000000000000000000000010001", + "rlp": "0xf9029bf90219a03667f3324d9ef447082d007e1688b9158ee4c494ee8a73d3d2db6b14b0722747a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bd7b67feda80445303a58864379f004e6dc92253b23160a3f3eda3993e51ba84a02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da020634fdb40ab47cf9da3364f16cb7f2f7d140d7a6f2df113491072044e6cf75ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000827f0a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a07bae13217931ff0d7a6c5823c996492f28cd92da5a7788a9a68856bb2206741af862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0d9d8808094000000000000000000000000000000000000010001", "blockHeader": { - "parentHash": "0xb410a8e8309613cfa4e3209ea40533a26760ccc9299f8c19c88f5121e9d363e0", + "parentHash": "0x3667f3324d9ef447082d007e1688b9158ee4c494ee8a73d3d2db6b14b0722747", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x92b91f69dc2820c3fef2fa58459d1af7bb725010151888ce94c19306470ceae7", + "stateRoot": "0xbd7b67feda80445303a58864379f004e6dc92253b23160a3f3eda3993e51ba84", "transactionsTrie": "0x2bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54d", - "receiptTrie": "0x1d1b5f7d024284d2d9754442246e3b4707afbbee4c804d0d23192e670d9939ac", + "receiptTrie": "0x20634fdb40ab47cf9da3364f16cb7f2f7d140d7a6f2df113491072044e6cf75a", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x01", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0xe0b2", + "gasUsed": "0x7f0a", "timestamp": "0x0c", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x0e96a7b87bbe00bcfcc7358fecaac20a42baf4de24ca333e77ceb189a3d10225", - "withdrawalsRoot": "0x7bae13217931ff0d7a6c5823c996492f28cd92da5a7788a9a68856bb2206741a" + "withdrawalsRoot": "0x7bae13217931ff0d7a6c5823c996492f28cd92da5a7788a9a68856bb2206741a", + "hash": "0x3b444a12e416cf09b838b34a8c50afddd4aeecb5dd1304318f2cfada53a3951b" }, "blocknumber": "1", "transactions": [ @@ -36,12 +57,14 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], @@ -55,26 +78,26 @@ ] }, { - "rlp": "0xf90283f9021aa00e96a7b87bbe00bcfcc7358fecaac20a42baf4de24ca333e77ceb189a3d10225a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070503a43a1c2bb963b826d4dd4304405d642ca2b046cae37dbc0ab429b76cd65a08c500edaa09a8dce41c0dcce8ee2876f5f3150b8101d09faa9ba61db523507eaa02debbef3d46ccf3243b905d61a37d44962e1a4039377864840b595f42b56b358b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000083012e6e1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860010a830186a0940000000000000000000000000000000000000100808026a025b1502ca1862804cfb6dca49ffb3cca3d8225a66df185ca857aab6f8a1f97a3a05d9178ca2d7a23b22e07ff2fe9a01ceb23a4acf041a0fcdf3d31752de802b74ec0c0", + "rlp": "0xf90282f90219a03b444a12e416cf09b838b34a8c50afddd4aeecb5dd1304318f2cfada53a3951ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06cf1cf171e6ccb50b51cf2edaf3635327210342e9d9a93fa1e4319bd7aca48a9a08c500edaa09a8dce41c0dcce8ee2876f5f3150b8101d09faa9ba61db523507eaa0f84739c1f5cac8fe5d72ec0376816485daccdc24bee333f37ddc063021a90f5fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082ccc61880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860010a830186a0940000000000000000000000000000000000000100808026a025b1502ca1862804cfb6dca49ffb3cca3d8225a66df185ca857aab6f8a1f97a3a05d9178ca2d7a23b22e07ff2fe9a01ceb23a4acf041a0fcdf3d31752de802b74ec0c0", "blockHeader": { - "parentHash": "0x0e96a7b87bbe00bcfcc7358fecaac20a42baf4de24ca333e77ceb189a3d10225", + "parentHash": "0x3b444a12e416cf09b838b34a8c50afddd4aeecb5dd1304318f2cfada53a3951b", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x70503a43a1c2bb963b826d4dd4304405d642ca2b046cae37dbc0ab429b76cd65", + "stateRoot": "0x6cf1cf171e6ccb50b51cf2edaf3635327210342e9d9a93fa1e4319bd7aca48a9", "transactionsTrie": "0x8c500edaa09a8dce41c0dcce8ee2876f5f3150b8101d09faa9ba61db523507ea", - "receiptTrie": "0x2debbef3d46ccf3243b905d61a37d44962e1a4039377864840b595f42b56b358", + "receiptTrie": "0xf84739c1f5cac8fe5d72ec0376816485daccdc24bee333f37ddc063021a90f5f", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "difficulty": "0x00", "number": "0x02", "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x012e6e", + "gasUsed": "0xccc6", "timestamp": "0x18", "extraData": "0x", "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xb92847a87b06e3e548f765f7fe41e5bc3984c323a67d3dfc4d9551b403bd2cff", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xbc6768b199674f165f4ed4202982c8d65644ef4efa40da10c6e24c99b5d5b11e" }, "blocknumber": "2", "transactions": [ @@ -83,23 +106,84 @@ "chainId": "0x01", "nonce": "0x01", "gasPrice": "0x0a", - "value": "0x00", + "gasLimit": "0x0186a0", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x0186a0" + "v": "0x26", + "r": "0x25b1502ca1862804cfb6dca49ffb3cca3d8225a66df185ca857aab6f8a1f97a3", + "s": "0x5d9178ca2d7a23b22e07ff2fe9a01ceb23a4acf041a0fcdf3d31752de802b74e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0xbc6768b199674f165f4ed4202982c8d65644ef4efa40da10c6e24c99b5d5b11e", + "pre": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000633b9aca006102005af14355", + "storage": {} + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000100": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x6000600060006000633b9aca006102005af14355", + "storage": { + "0x02": "0x01" + } + }, + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x3b9aca01", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x03e370", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x02", + "balance": "0x3635c9adc5de9309e0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Cancun": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02df4363ec2af5bd9aa207181b8bfa33d9ade44b745bf2f0ca3184d824f0f65f7a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xf11456c3fd71dbb258670656d83c49cc049c71cfc8b71e399c2771215b8a6850", + "stateRoot": "0x2df4363ec2af5bd9aa207181b8bfa33d9ade44b745bf2f0ca3184d824f0f65f7", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -112,19 +196,113 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xb410a8e8309613cfa4e3209ea40533a26760ccc9299f8c19c88f5121e9d363e0", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3c4720ad201ccca0e0b3cabf299c9a1e8cb3d2cc4fab3c6fbcfa73b3b72b9b08" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0f11456c3fd71dbb258670656d83c49cc049c71cfc8b71e399c2771215b8a6850a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xb92847a87b06e3e548f765f7fe41e5bc3984c323a67d3dfc4d9551b403bd2cff", - "network": "Shanghai", - "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} + "blocks": [ + { + "rlp": "0xf902bef9023ca03c4720ad201ccca0e0b3cabf299c9a1e8cb3d2cc4fab3c6fbcfa73b3b72b9b08a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0315b8e6620a7e737a8a0c69fc46c1e2c6b2c35d67d5f4f2b3ef41b034422de5fa02bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54da020634fdb40ab47cf9da3364f16cb7f2f7d140d7a6f2df113491072044e6cf75ab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000827f0a0c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a07bae13217931ff0d7a6c5823c996492f28cd92da5a7788a9a68856bb2206741a8080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000100808025a086ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001ca01bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61dc0d9d8808094000000000000000000000000000000000000010001", + "blockHeader": { + "parentHash": "0x3c4720ad201ccca0e0b3cabf299c9a1e8cb3d2cc4fab3c6fbcfa73b3b72b9b08", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x315b8e6620a7e737a8a0c69fc46c1e2c6b2c35d67d5f4f2b3ef41b034422de5f", + "transactionsTrie": "0x2bad57b8521a8d2a492526aecdb0e1244a14e1bc52809a046ac46a863ed9e54d", + "receiptTrie": "0x20634fdb40ab47cf9da3364f16cb7f2f7d140d7a6f2df113491072044e6cf75a", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x7f0a", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x7bae13217931ff0d7a6c5823c996492f28cd92da5a7788a9a68856bb2206741a", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8ee1b8287163eb1f98bdc4997a82e5f1735a35d3cb8f99a703bbaba0611bc369" + }, + "blocknumber": "1", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x86ddb9352affa90c20d71652b049404d8abcc6575e8e4a2c0bb9aa73fad9001c", + "s": "0x1bb0d685e5589862ae3d2b083be59c4f754c326800dbc82712e9f81eebf2f61d", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000100", + "amount": "0x01" + } + ] }, + { + "rlp": "0xf902a5f9023ca08ee1b8287163eb1f98bdc4997a82e5f1735a35d3cb8f99a703bbaba0611bc369a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f078681e5fe871e770cc069a8ee2668f9d5d3d0a1373ac8dd5ede7eed0fb75eda08c500edaa09a8dce41c0dcce8ee2876f5f3150b8101d09faa9ba61db523507eaa0f84739c1f5cac8fe5d72ec0376816485daccdc24bee333f37ddc063021a90f5fb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082ccc61880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860010a830186a0940000000000000000000000000000000000000100808026a025b1502ca1862804cfb6dca49ffb3cca3d8225a66df185ca857aab6f8a1f97a3a05d9178ca2d7a23b22e07ff2fe9a01ceb23a4acf041a0fcdf3d31752de802b74ec0c0", + "blockHeader": { + "parentHash": "0x8ee1b8287163eb1f98bdc4997a82e5f1735a35d3cb8f99a703bbaba0611bc369", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf078681e5fe871e770cc069a8ee2668f9d5d3d0a1373ac8dd5ede7eed0fb75ed", + "transactionsTrie": "0x8c500edaa09a8dce41c0dcce8ee2876f5f3150b8101d09faa9ba61db523507ea", + "receiptTrie": "0xf84739c1f5cac8fe5d72ec0376816485daccdc24bee333f37ddc063021a90f5f", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0xccc6", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8656853833e3994738be7472e232b00fde31d085c01b26dc6f4d88d1f2e645cd" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x01", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x25b1502ca1862804cfb6dca49ffb3cca3d8225a66df185ca857aab6f8a1f97a3", + "s": "0x5d9178ca2d7a23b22e07ff2fe9a01ceb23a4acf041a0fcdf3d31752de802b74e", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8656853833e3994738be7472e232b00fde31d085c01b26dc6f4d88d1f2e645cd", + "pre": { "0x0000000000000000000000000000000000000100": { "nonce": "0x00", "balance": "0x00", @@ -133,7 +311,19 @@ }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", "code": "0x", "storage": {} } @@ -149,19 +339,28 @@ }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", - "balance": "0x3b9aca00", + "balance": "0x3b9aca01", "code": "0x", "storage": {} }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", - "balance": "0x062d60", + "balance": "0x03e370", "code": "0x", "storage": {} }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x02", - "balance": "0x3635c9adc5de8b68c0", + "balance": "0x3635c9adc5de9309e0", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json index 0fb759b219e..83b8252b169 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/use_value_in_tx.json @@ -1,23 +1,17 @@ { "000-fork=Shanghai-tx_in_withdrawals_block": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, - "blocks": [ - { - "rlp": "0xf9029ef90217a00781366ad612d7e84f69734884bc9efee3252bf3faec2c26101bc5b0cf6e5bc8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07075d070d6ec70a91216fc2dba6ceae6b8d30815166f6b7b7249776767fb9855a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6ff865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209", - "expectException": "Transaction without funds", - "blocknumber": "1" - } - ], + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06c59244cf77d88aba5991e1ea64e6cc34682bc51c222c2e714e15f4ece0f56d2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x25faa2f2d594cce79d11556ec20fffc29225b1bbdd6d632588c57de69eaad828", + "stateRoot": "0x6c59244cf77d88aba5991e1ea64e6cc34682bc51c222c2e714e15f4ece0f56d2", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -30,16 +24,67 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x0781366ad612d7e84f69734884bc9efee3252bf3faec2c26101bc5b0cf6e5bc8", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x8a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a025faa2f2d594cce79d11556ec20fffc29225b1bbdd6d632588c57de69eaad828a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0x0781366ad612d7e84f69734884bc9efee3252bf3faec2c26101bc5b0cf6e5bc8", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf9029ef90217a08a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01152e1850f7a20f6afa4b5e5966010e07c9105c04edc713e5753e01c97c94426a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6ff865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209", + "expectException": "Transaction without funds", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x8a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1152e1850f7a20f6afa4b5e5966010e07c9105c04edc713e5753e01c97c94426", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xa485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f", + "hash": "0x92d764bca1c2535ce981819b338bae5109125a89c5d4b58b3fb0bd0be80f4b89" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xe319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2", + "s": "0x32fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "amount": "0x5209" + } + ] + } + } + ], + "lastblockhash": "0x8a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5", "pre": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x01", "code": "0x", "storage": {} } @@ -47,7 +92,7 @@ "postState": { "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", - "balance": "0x00", + "balance": "0x01", "code": "0x", "storage": {} } @@ -56,19 +101,40 @@ }, "001-fork=Shanghai-tx_after_withdrawals_block": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a06c59244cf77d88aba5991e1ea64e6cc34682bc51c222c2e714e15f4ece0f56d2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x6c59244cf77d88aba5991e1ea64e6cc34682bc51c222c2e714e15f4ece0f56d2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x8a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5" + }, "blocks": [ { - "rlp": "0xf90238f90217a00781366ad612d7e84f69734884bc9efee3252bf3faec2c26101bc5b0cf6e5bc8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07075d070d6ec70a91216fc2dba6ceae6b8d30815166f6b7b7249776767fb9855a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6fc0c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209", + "rlp": "0xf90238f90217a08a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01152e1850f7a20f6afa4b5e5966010e07c9105c04edc713e5753e01c97c94426a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6fc0c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209", "blockHeader": { - "parentHash": "0x0781366ad612d7e84f69734884bc9efee3252bf3faec2c26101bc5b0cf6e5bc8", + "parentHash": "0x8a333fad2b42ff063107bb84b198ac771a5b22198cc94d62b8f4bab4914509b5", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0x7075d070d6ec70a91216fc2dba6ceae6b8d30815166f6b7b7249776767fb9855", + "stateRoot": "0x1152e1850f7a20f6afa4b5e5966010e07c9105c04edc713e5753e01c97c94426", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -81,8 +147,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x5c7050390955379367ffb1fc687c03d65c256457c92c3048c3b3de943921937b", - "withdrawalsRoot": "0xa485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f" + "withdrawalsRoot": "0xa485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f", + "hash": "0x92d764bca1c2535ce981819b338bae5109125a89c5d4b58b3fb0bd0be80f4b89" }, "blocknumber": "1", "transactions": [], @@ -97,12 +163,12 @@ ] }, { - "rlp": "0xf90285f90219a05c7050390955379367ffb1fc687c03d65c256457c92c3048c3b3de943921937ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0be252b80c472518724f7b2aa7d688891f9b258d8f43f12b01e1ef5e3cb76bce9a0b5ffe01eaa51ee8246b2108e049e6e11dc0a1d99b4cc52966791ef9c40b8b863a0056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0c0", + "rlp": "0xf90285f90219a092d764bca1c2535ce981819b338bae5109125a89c5d4b58b3fb0bd0be80f4b89a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa037c9f57821a078d1cc47fcfe6961e401f847cb96f5c0d07391d78d9cdb447560a0b5ffe01eaa51ee8246b2108e049e6e11dc0a1d99b4cc52966791ef9c40b8b863a0056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0c0", "blockHeader": { - "parentHash": "0x5c7050390955379367ffb1fc687c03d65c256457c92c3048c3b3de943921937b", + "parentHash": "0x92d764bca1c2535ce981819b338bae5109125a89c5d4b58b3fb0bd0be80f4b89", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", - "stateRoot": "0xbe252b80c472518724f7b2aa7d688891f9b258d8f43f12b01e1ef5e3cb76bce9", + "stateRoot": "0x37c9f57821a078d1cc47fcfe6961e401f847cb96f5c0d07391d78d9cdb447560", "transactionsTrie": "0xb5ffe01eaa51ee8246b2108e049e6e11dc0a1d99b4cc52966791ef9c40b8b863", "receiptTrie": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -115,8 +181,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xc2b1ee318dfe7d5cd073e460f6475381d91cee26c73b468f4414a85aaff3f884", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xdf6a4585f4f0e0b569ff9de9f8a4d1b7bce8cca82fcef6b2831f2da9f4058a52" }, "blocknumber": "2", "transactions": [ @@ -125,23 +191,58 @@ "chainId": "0x01", "nonce": "0x00", "gasPrice": "0x3b9aca00", - "value": "0x00", + "gasLimit": "0x5208", "to": "0x0000000000000000000000000000000000000100", - "protected": true, - "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8", + "value": "0x00", "data": "0x", - "gasLimit": "0x5208" + "v": "0x26", + "r": "0xe319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2", + "s": "0x32fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" } ], "uncleHeaders": [], "withdrawals": [] } ], + "lastblockhash": "0xdf6a4585f4f0e0b569ff9de9f8a4d1b7bce8cca82fcef6b2831f2da9f4058a52", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x1319718811c8", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3b9aca01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Cancun-tx_in_withdrawals_block": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a084818301eba1ed2b05c13b69196578bdad8e0536425a331fa4ecc228d230744fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", "genesisBlockHeader": { "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x25faa2f2d594cce79d11556ec20fffc29225b1bbdd6d632588c57de69eaad828", + "stateRoot": "0x84818301eba1ed2b05c13b69196578bdad8e0536425a331fa4ecc228d230744f", "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -154,21 +255,239 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x0781366ad612d7e84f69734884bc9efee3252bf3faec2c26101bc5b0cf6e5bc8", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x93ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bf" }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a025faa2f2d594cce79d11556ec20fffc29225b1bbdd6d632588c57de69eaad828a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", - "lastblockhash": "0xc2b1ee318dfe7d5cd073e460f6475381d91cee26c73b468f4414a85aaff3f884", - "network": "Shanghai", + "blocks": [ + { + "rlp": "0xf902c1f9023aa093ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0682e97201201372e19a26af611381a7beec0f241a58f183a8d6433f5632bd67da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f8080a00000000000000000000000000000000000000000000000000000000000000000f865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209", + "expectException": "Transaction without funds", + "rlp_decoded": { + "blockHeader": { + "parentHash": "0x93ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x682e97201201372e19a26af611381a7beec0f241a58f183a8d6433f5632bd67d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xa485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6ef6a053154da7e067734d8b7066e8784eb979005a969a02858c9ee6c26f0c04" + }, + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xe319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2", + "s": "0x32fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "amount": "0x5209" + } + ] + } + } + ], + "lastblockhash": "0x93ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bf", "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x00", + "balance": "0x01", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Cancun-tx_after_withdrawals_block": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a084818301eba1ed2b05c13b69196578bdad8e0536425a331fa4ecc228d230744fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x84818301eba1ed2b05c13b69196578bdad8e0536425a331fa4ecc228d230744f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x93ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bf" + }, + "blocks": [ + { + "rlp": "0xf9025bf9023aa093ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0682e97201201372e19a26af611381a7beec0f241a58f183a8d6433f5632bd67da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f8080a00000000000000000000000000000000000000000000000000000000000000000c0c0dbda808094a94f5374fce5edbc8e2a8697c15331677e6ebf0b825209", + "blockHeader": { + "parentHash": "0x93ba43976ae2b42938748d0dc8bac627e08d39b94334f071426217e432b139bf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x682e97201201372e19a26af611381a7beec0f241a58f183a8d6433f5632bd67d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xa485a3bd07e29cb8234b5f093d5216eb8b965fb2693c66fea254f6cacef97a6f", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x6ef6a053154da7e067734d8b7066e8784eb979005a969a02858c9ee6c26f0c04" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", + "amount": "0x5209" + } + ] + }, + { + "rlp": "0xf902a8f9023ca06ef6a053154da7e067734d8b7066e8784eb979005a969a02858c9ee6c26f0c04a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0350651aebe38ae77090d0f0ae22264d936af4874ccdc16a420ca4b6cfbdb08f2a0b5ffe01eaa51ee8246b2108e049e6e11dc0a1d99b4cc52966791ef9c40b8b863a0056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252081880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f865f86380843b9aca00825208940000000000000000000000000000000000000100808026a0e319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2a032fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1c0c0", + "blockHeader": { + "parentHash": "0x6ef6a053154da7e067734d8b7066e8784eb979005a969a02858c9ee6c26f0c04", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x350651aebe38ae77090d0f0ae22264d936af4874ccdc16a420ca4b6cfbdb08f2", + "transactionsTrie": "0xb5ffe01eaa51ee8246b2108e049e6e11dc0a1d99b4cc52966791ef9c40b8b863", + "receiptTrie": "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5208", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2d7004b0e445d6826ca9af320866dd2cc86c8f9bc42275632e4b379ab3ab35e5" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x3b9aca00", + "gasLimit": "0x5208", + "to": "0x0000000000000000000000000000000000000100", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xe319535da2cae2d72ddb352054535d000c23acdc7cad9d828891253f3850d0d2", + "s": "0x32fe4444149b609e2ffa621e23e179b12028309fdb8cb0a5c1bbc58135299af1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x2d7004b0e445d6826ca9af320866dd2cc86c8f9bc42275632e4b379ab3ab35e5", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01", "code": "0x", "storage": {} } }, "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { "nonce": "0x00", "balance": "0x1319718811c8", @@ -177,7 +496,7 @@ }, "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { "nonce": "0x01", - "balance": "0x3b9aca00", + "balance": "0x3b9aca01", "code": "0x", "storage": {} } diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json new file mode 100644 index 00000000000..fa689a8f013 --- /dev/null +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/withdrawing_to_precompiles.json @@ -0,0 +1,5574 @@ +{ + "000-fork=Shanghai-precompile=9-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0b7cb110d9c2b2c2b1fb73e3f99c114b50f675e2999d1911bb99696ff7ef7fc7fc0c0d9d8808094000000000000000000000000000000000000000980", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xb7cb110d9c2b2c2b1fb73e3f99c114b50f675e2999d1911bb99696ff7ef7fc7f", + "hash": "0x068f4313da4cb34b1b6b18ff37eb6ca9f7ad9d294357db81c75cb7790d25dd67" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf90283f9021aa0068f4313da4cb34b1b6b18ff37eb6ca9f7ad9d294357db81c75cb7790d25dd67a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0dcfd15d481855428ebc08f0fc8b8c4f5d13c947b8d71748cf17bb6f104c69cefa01bf99af65e896eb3a6591fbc0377d5929b8c150d9bef4c16dccb8feec5d5c0efa0777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830186a01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000009808026a0803b06b78b7bd29d0faf9401f2df5d71e8a445ad1ac0a45d2e5256ba23c43ed1a06634f86b79da86a904b1900a52e470847ffe730ef4ec32a3b0f7eece7bfaae96c0c0", + "blockHeader": { + "parentHash": "0x068f4313da4cb34b1b6b18ff37eb6ca9f7ad9d294357db81c75cb7790d25dd67", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xdcfd15d481855428ebc08f0fc8b8c4f5d13c947b8d71748cf17bb6f104c69cef", + "transactionsTrie": "0x1bf99af65e896eb3a6591fbc0377d5929b8c150d9bef4c16dccb8feec5d5c0ef", + "receiptTrie": "0x777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0186a0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xeaace410600e23f5351cb58c4b49755bc4f73c12241bf93e3c1872281d92de92" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000009", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x803b06b78b7bd29d0faf9401f2df5d71e8a445ad1ac0a45d2e5256ba23c43ed1", + "s": "0x6634f86b79da86a904b1900a52e470847ffe730ef4ec32a3b0f7eece7bfaae96", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xeaace410600e23f5351cb58c4b49755bc4f73c12241bf93e3c1872281d92de92", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0493e0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de90bdc0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "001-fork=Shanghai-precompile=9-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c06e17c20a0ffa758d6a01ea1e779b0fd07e0b3f8b173dc81f3205ad3f978805a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a005ac90fc2c9d720d36986f1f7f3942f5cec388cb7a0dd72bf6064d3f9d5e67b3c0c0d9d8808094000000000000000000000000000000000000000901", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc06e17c20a0ffa758d6a01ea1e779b0fd07e0b3f8b173dc81f3205ad3f978805", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x05ac90fc2c9d720d36986f1f7f3942f5cec388cb7a0dd72bf6064d3f9d5e67b3", + "hash": "0x146149a37f7c5fb17c3f92857b8e22802eb176242dcd3b346ad3d36a02d276b6" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90283f9021aa0146149a37f7c5fb17c3f92857b8e22802eb176242dcd3b346ad3d36a02d276b6a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07481d751f91c0fd67e30e3049ef06dab5b0fb88287ead3590483d0d6f450aee8a01bf99af65e896eb3a6591fbc0377d5929b8c150d9bef4c16dccb8feec5d5c0efa0777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830186a01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000009808026a0803b06b78b7bd29d0faf9401f2df5d71e8a445ad1ac0a45d2e5256ba23c43ed1a06634f86b79da86a904b1900a52e470847ffe730ef4ec32a3b0f7eece7bfaae96c0c0", + "blockHeader": { + "parentHash": "0x146149a37f7c5fb17c3f92857b8e22802eb176242dcd3b346ad3d36a02d276b6", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7481d751f91c0fd67e30e3049ef06dab5b0fb88287ead3590483d0d6f450aee8", + "transactionsTrie": "0x1bf99af65e896eb3a6591fbc0377d5929b8c150d9bef4c16dccb8feec5d5c0ef", + "receiptTrie": "0x777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0186a0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa7e5cf01cfa102052090c9ef3684323446c6dd33fba0301bafa56dd34babe405" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000009", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x803b06b78b7bd29d0faf9401f2df5d71e8a445ad1ac0a45d2e5256ba23c43ed1", + "s": "0x6634f86b79da86a904b1900a52e470847ffe730ef4ec32a3b0f7eece7bfaae96", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa7e5cf01cfa102052090c9ef3684323446c6dd33fba0301bafa56dd34babe405", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000009": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0493e0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de90bdc0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "002-fork=Shanghai-precompile=5-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a014c3d56c83db44f674ee20ba507fe695c717ea55e4b2c3054917aca03e22630dc0c0d9d8808094000000000000000000000000000000000000000580", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x14c3d56c83db44f674ee20ba507fe695c717ea55e4b2c3054917aca03e22630d", + "hash": "0x0b3f5d8d1b7d04782e2ecbfa7c1e090f97e407a73edbace27a4dc5fa3cb96603" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf90282f90219a00b3f5d8d1b7d04782e2ecbfa7c1e090f97e407a73edbace27a4dc5fa3cb96603a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0fd534d3f57b4148dc5b94dda750be518e155fada9a4b492bad0f3b235b23eeffa0e2e582350772b0279ab4ee0d5404ae156a31c71f3fc51badfb7641778a120e14a0945e4d3b6ce55adff709f6eed3d57e624e6bc04f0afe82f6695c12cd85838bceb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252d01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000005808025a0921558fc1ed89d4451f7baed924834c425419a5d433ff72314cd51d8fd730122a00ec8c9537f514d70ef8ba43e4f83568c9c56f4a5c4eefb1fa6103cfd5623f5b9c0c0", + "blockHeader": { + "parentHash": "0x0b3f5d8d1b7d04782e2ecbfa7c1e090f97e407a73edbace27a4dc5fa3cb96603", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xfd534d3f57b4148dc5b94dda750be518e155fada9a4b492bad0f3b235b23eeff", + "transactionsTrie": "0xe2e582350772b0279ab4ee0d5404ae156a31c71f3fc51badfb7641778a120e14", + "receiptTrie": "0x945e4d3b6ce55adff709f6eed3d57e624e6bc04f0afe82f6695c12cd85838bce", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x52d0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x12d54d41d9fe95da065c24af908c00bf2c40f4a37c351489bc0a64ae08348762" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000005", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x921558fc1ed89d4451f7baed924834c425419a5d433ff72314cd51d8fd730122", + "s": "0x0ec8c9537f514d70ef8ba43e4f83568c9c56f4a5c4eefb1fa6103cfd5623f5b9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x12d54d41d9fe95da065c24af908c00bf2c40f4a37c351489bc0a64ae08348762", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf870", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc3e0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "003-fork=Shanghai-precompile=5-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05049ff9c108b5b721e0a4ca9591e627261dface8f7fb6e7ed48a7ecbdd7ae378a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a06a4cd811116f6e5fa90406c6a1e4af4acc932fecc5de601f9f7a7f2ea7755fe9c0c0d9d8808094000000000000000000000000000000000000000501", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5049ff9c108b5b721e0a4ca9591e627261dface8f7fb6e7ed48a7ecbdd7ae378", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x6a4cd811116f6e5fa90406c6a1e4af4acc932fecc5de601f9f7a7f2ea7755fe9", + "hash": "0x8c0c79a9bec170f65abbd5c28d47fc2e5344a6332e1a987256e5fc49fd06b763" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90282f90219a08c0c79a9bec170f65abbd5c28d47fc2e5344a6332e1a987256e5fc49fd06b763a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0986500f7cd87ba9af8c9752c9cba1bb8f27f045bb463de8ce6c49efe021ebe05a0e2e582350772b0279ab4ee0d5404ae156a31c71f3fc51badfb7641778a120e14a0945e4d3b6ce55adff709f6eed3d57e624e6bc04f0afe82f6695c12cd85838bceb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252d01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000005808025a0921558fc1ed89d4451f7baed924834c425419a5d433ff72314cd51d8fd730122a00ec8c9537f514d70ef8ba43e4f83568c9c56f4a5c4eefb1fa6103cfd5623f5b9c0c0", + "blockHeader": { + "parentHash": "0x8c0c79a9bec170f65abbd5c28d47fc2e5344a6332e1a987256e5fc49fd06b763", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x986500f7cd87ba9af8c9752c9cba1bb8f27f045bb463de8ce6c49efe021ebe05", + "transactionsTrie": "0xe2e582350772b0279ab4ee0d5404ae156a31c71f3fc51badfb7641778a120e14", + "receiptTrie": "0x945e4d3b6ce55adff709f6eed3d57e624e6bc04f0afe82f6695c12cd85838bce", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x52d0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x17518921d10ebd87311fc82d0b4d079b09b74f1086f607f6bee15d251e6959a6" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000005", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x921558fc1ed89d4451f7baed924834c425419a5d433ff72314cd51d8fd730122", + "s": "0x0ec8c9537f514d70ef8ba43e4f83568c9c56f4a5c4eefb1fa6103cfd5623f5b9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x17518921d10ebd87311fc82d0b4d079b09b74f1086f607f6bee15d251e6959a6", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000005": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf870", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc3e0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "004-fork=Shanghai-precompile=6-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a077879f8f6b197c8faa2d2658bddca617b131e2419f4ee57bc5b7fa3e18ee7b30c0c0d9d8808094000000000000000000000000000000000000000680", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x77879f8f6b197c8faa2d2658bddca617b131e2419f4ee57bc5b7fa3e18ee7b30", + "hash": "0x129b48035fbb3176249ee6cf14ab85d9fc64843b4575cafb40aa653d1018704e" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf90282f90219a0129b48035fbb3176249ee6cf14ab85d9fc64843b4575cafb40aa653d1018704ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa074395f8b65ce3c382cfa6a93420f10a79fcda14087f1f6fdf5cab93ebd019e70a0bc2ba866b6fe25ff45446151ae11426b62e9f7269a269c2f498dd6dc7ec3a7a1a00289a23088d138057d823d533ae69c0ec1d1c9b426172be9d9b204867b164985b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082529e1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000006808026a0761d23af053f6740b60fb602033be919a6e770e30bbf59a2a8c694bb2c3cb302a002f99617b784b3ee165d548070c299add1969fa706bc610dce3beb5a8b7090a0c0c0", + "blockHeader": { + "parentHash": "0x129b48035fbb3176249ee6cf14ab85d9fc64843b4575cafb40aa653d1018704e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x74395f8b65ce3c382cfa6a93420f10a79fcda14087f1f6fdf5cab93ebd019e70", + "transactionsTrie": "0xbc2ba866b6fe25ff45446151ae11426b62e9f7269a269c2f498dd6dc7ec3a7a1", + "receiptTrie": "0x0289a23088d138057d823d533ae69c0ec1d1c9b426172be9d9b204867b164985", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x529e", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xae69bd95e3d8e3d1b67274cb2064a2e57d2782b5412199bc31a0996a1000d2dc" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000006", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x761d23af053f6740b60fb602033be919a6e770e30bbf59a2a8c694bb2c3cb302", + "s": "0x02f99617b784b3ee165d548070c299add1969fa706bc610dce3beb5a8b7090a0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xae69bd95e3d8e3d1b67274cb2064a2e57d2782b5412199bc31a0996a1000d2dc", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf7da", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc5d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Shanghai-precompile=6-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0231e4962fc1e8fe30cf821e87fec1b399fb8b7c21f2273125e6d62ef2a964073a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0545271b48b0704b39d880bb1c9400c09d641ee6fb0a7dc21939dc57ba0f7dc42c0c0d9d8808094000000000000000000000000000000000000000601", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x231e4962fc1e8fe30cf821e87fec1b399fb8b7c21f2273125e6d62ef2a964073", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x545271b48b0704b39d880bb1c9400c09d641ee6fb0a7dc21939dc57ba0f7dc42", + "hash": "0xa56dbf97f7acce7e452493e83252a647150fcafa836f67536f8f6ec05a69bf0b" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90282f90219a0a56dbf97f7acce7e452493e83252a647150fcafa836f67536f8f6ec05a69bf0ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a3407062fd7cf32458515055002c739056df7fcb46c61232920371b6d765d63ea0bc2ba866b6fe25ff45446151ae11426b62e9f7269a269c2f498dd6dc7ec3a7a1a00289a23088d138057d823d533ae69c0ec1d1c9b426172be9d9b204867b164985b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082529e1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000006808026a0761d23af053f6740b60fb602033be919a6e770e30bbf59a2a8c694bb2c3cb302a002f99617b784b3ee165d548070c299add1969fa706bc610dce3beb5a8b7090a0c0c0", + "blockHeader": { + "parentHash": "0xa56dbf97f7acce7e452493e83252a647150fcafa836f67536f8f6ec05a69bf0b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa3407062fd7cf32458515055002c739056df7fcb46c61232920371b6d765d63e", + "transactionsTrie": "0xbc2ba866b6fe25ff45446151ae11426b62e9f7269a269c2f498dd6dc7ec3a7a1", + "receiptTrie": "0x0289a23088d138057d823d533ae69c0ec1d1c9b426172be9d9b204867b164985", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x529e", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xa5f1ef64cad5859f976e1fb25ae0769133ad41790b5ce722166115d4a6a1f8f4" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000006", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x761d23af053f6740b60fb602033be919a6e770e30bbf59a2a8c694bb2c3cb302", + "s": "0x02f99617b784b3ee165d548070c299add1969fa706bc610dce3beb5a8b7090a0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa5f1ef64cad5859f976e1fb25ae0769133ad41790b5ce722166115d4a6a1f8f4", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000006": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf7da", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc5d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Shanghai-precompile=7-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0bfb08f2ec27a1d849f80d3fdf9849335b1e7eaea0e6d583bcb94c9f68e70fd06c0c0d9d8808094000000000000000000000000000000000000000780", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xbfb08f2ec27a1d849f80d3fdf9849335b1e7eaea0e6d583bcb94c9f68e70fd06", + "hash": "0xefd75c48f9c46744cfe58f9885113c48c1d7a16d303f56a64ea1097ac42d4fdb" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf90282f90219a0efd75c48f9c46744cfe58f9885113c48c1d7a16d303f56a64ea1097ac42d4fdba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0f1fea57439a4c0caa793a51c422c0415525b03b130b38ee73359461f5f030897a0b1c8d719c3bd4a402c44700b81024e4e926f6586958ffa793135cb4aa3ce17dba02e92c109b4246fdc06b6175167dcdb44658cbe9cc25aa7590a13c752f9e5c895b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008269781880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000007808026a07016a4b8559416a6052f4cfba8febd066b9d09467681187d84d9fa9a796650a7a02e859d186a5733c279cb615b82c2d03756b4b63952934f49d14740d06e7e7a84c0c0", + "blockHeader": { + "parentHash": "0xefd75c48f9c46744cfe58f9885113c48c1d7a16d303f56a64ea1097ac42d4fdb", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xf1fea57439a4c0caa793a51c422c0415525b03b130b38ee73359461f5f030897", + "transactionsTrie": "0xb1c8d719c3bd4a402c44700b81024e4e926f6586958ffa793135cb4aa3ce17db", + "receiptTrie": "0x2e92c109b4246fdc06b6175167dcdb44658cbe9cc25aa7590a13c752f9e5c895", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6978", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xaa00ac02dc0357a5a7a0b8d24860fbeb71f81d428b288a53e9a4b7989624396f" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000007", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x7016a4b8559416a6052f4cfba8febd066b9d09467681187d84d9fa9a796650a7", + "s": "0x2e859d186a5733c279cb615b82c2d03756b4b63952934f49d14740d06e7e7a84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xaa00ac02dc0357a5a7a0b8d24860fbeb71f81d428b288a53e9a4b7989624396f", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x013c68", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9be150", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Shanghai-precompile=7-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e0b278546bcff45793253bf5da938b48460fa8f20e5248c524b2d0ff004b6498a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a044725c3e8dca65e76db0ff2b447329060b3a38d1a8a279484e17ae73ca834421c0c0d9d8808094000000000000000000000000000000000000000701", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe0b278546bcff45793253bf5da938b48460fa8f20e5248c524b2d0ff004b6498", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x44725c3e8dca65e76db0ff2b447329060b3a38d1a8a279484e17ae73ca834421", + "hash": "0xeeda74a74e5a12d340f7fc61fc66d51fcd979f8dbab46a50bd7aec2d18fd05c2" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90282f90219a0eeda74a74e5a12d340f7fc61fc66d51fcd979f8dbab46a50bd7aec2d18fd05c2a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa075252affbfcc9aceb62775c99ca6121cb50297ef149c057dffa9d91b998cca84a0b1c8d719c3bd4a402c44700b81024e4e926f6586958ffa793135cb4aa3ce17dba02e92c109b4246fdc06b6175167dcdb44658cbe9cc25aa7590a13c752f9e5c895b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008269781880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000007808026a07016a4b8559416a6052f4cfba8febd066b9d09467681187d84d9fa9a796650a7a02e859d186a5733c279cb615b82c2d03756b4b63952934f49d14740d06e7e7a84c0c0", + "blockHeader": { + "parentHash": "0xeeda74a74e5a12d340f7fc61fc66d51fcd979f8dbab46a50bd7aec2d18fd05c2", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x75252affbfcc9aceb62775c99ca6121cb50297ef149c057dffa9d91b998cca84", + "transactionsTrie": "0xb1c8d719c3bd4a402c44700b81024e4e926f6586958ffa793135cb4aa3ce17db", + "receiptTrie": "0x2e92c109b4246fdc06b6175167dcdb44658cbe9cc25aa7590a13c752f9e5c895", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6978", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xacbaf62bb09ef8bbf0117a66ee0cc78ce54de418ccf318268d796473570695c3" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000007", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x7016a4b8559416a6052f4cfba8febd066b9d09467681187d84d9fa9a796650a7", + "s": "0x2e859d186a5733c279cb615b82c2d03756b4b63952934f49d14740d06e7e7a84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xacbaf62bb09ef8bbf0117a66ee0cc78ce54de418ccf318268d796473570695c3", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000007": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x013c68", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9be150", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "008-fork=Shanghai-precompile=8-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0f6c7c964ef96772cd67db1a0bae4e9b3eb10986761f75c976d2d9c1d82f2779ec0c0d9d8808094000000000000000000000000000000000000000880", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xf6c7c964ef96772cd67db1a0bae4e9b3eb10986761f75c976d2d9c1d82f2779e", + "hash": "0x8492c0e81a6f2ac3fbbf7d043a4dbf4f9d39be0c5f3c7f4fa24a525731270811" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf90283f9021aa08492c0e81a6f2ac3fbbf7d043a4dbf4f9d39be0c5f3c7f4fa24a525731270811a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa077d7b82be0964133f0a25161a2928d5135e2193a68f883636c6abcb52381ae7ca053f782604a87f8bc0274d865d5d4d45dff15feef57a56581ad5589492eaed02aa0d67a8c83ee3e3cfd05e328fa2253e04fd8b92341b40ec088490b262e205cbf74b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830101d01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000008808026a04920fc5560c47c348a81963651c0741282fa6d9f30380978dfa6de04c51a225da070471d000e4b8223efb8a7bdd3342d4ae1bdf020325c4adc315fe685bea3e403c0c0", + "blockHeader": { + "parentHash": "0x8492c0e81a6f2ac3fbbf7d043a4dbf4f9d39be0c5f3c7f4fa24a525731270811", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x77d7b82be0964133f0a25161a2928d5135e2193a68f883636c6abcb52381ae7c", + "transactionsTrie": "0x53f782604a87f8bc0274d865d5d4d45dff15feef57a56581ad5589492eaed02a", + "receiptTrie": "0xd67a8c83ee3e3cfd05e328fa2253e04fd8b92341b40ec088490b262e205cbf74", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0101d0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xe2244f9deec26efd87c338c7e4f01414f19c297be270a18b389eae65fafc35b4" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000008", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x4920fc5560c47c348a81963651c0741282fa6d9f30380978dfa6de04c51a225d", + "s": "0x70471d000e4b8223efb8a7bdd3342d4ae1bdf020325c4adc315fe685bea3e403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe2244f9deec26efd87c338c7e4f01414f19c297be270a18b389eae65fafc35b4", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x030570", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de95ede0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "009-fork=Shanghai-precompile=8-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b4a7943e27fb88584b39464a4cbbb6e2c8e1af3d29a179e0ee7e6de4848c4eaca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a022920a220a51904de7421d02c2d8f59191d0b5963b37dcbfc14962b999535b9ec0c0d9d8808094000000000000000000000000000000000000000801", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb4a7943e27fb88584b39464a4cbbb6e2c8e1af3d29a179e0ee7e6de4848c4eac", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x22920a220a51904de7421d02c2d8f59191d0b5963b37dcbfc14962b999535b9e", + "hash": "0x57669e02034b441f17f28625961707f72206fe8541fb9b6fa80db20fe50f93f8" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90283f9021aa057669e02034b441f17f28625961707f72206fe8541fb9b6fa80db20fe50f93f8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a59749346be1c1c4872d963f8e071e3310a65b1f7ca3b81df4b46f6e43785f40a053f782604a87f8bc0274d865d5d4d45dff15feef57a56581ad5589492eaed02aa0d67a8c83ee3e3cfd05e328fa2253e04fd8b92341b40ec088490b262e205cbf74b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830101d01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000008808026a04920fc5560c47c348a81963651c0741282fa6d9f30380978dfa6de04c51a225da070471d000e4b8223efb8a7bdd3342d4ae1bdf020325c4adc315fe685bea3e403c0c0", + "blockHeader": { + "parentHash": "0x57669e02034b441f17f28625961707f72206fe8541fb9b6fa80db20fe50f93f8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa59749346be1c1c4872d963f8e071e3310a65b1f7ca3b81df4b46f6e43785f40", + "transactionsTrie": "0x53f782604a87f8bc0274d865d5d4d45dff15feef57a56581ad5589492eaed02a", + "receiptTrie": "0xd67a8c83ee3e3cfd05e328fa2253e04fd8b92341b40ec088490b262e205cbf74", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0101d0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x206a6d298e3064758c6b0977d296567ec17f220c8feb24cb5d3862a70732f479" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000008", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x4920fc5560c47c348a81963651c0741282fa6d9f30380978dfa6de04c51a225d", + "s": "0x70471d000e4b8223efb8a7bdd3342d4ae1bdf020325c4adc315fe685bea3e403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x206a6d298e3064758c6b0977d296567ec17f220c8feb24cb5d3862a70732f479", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000008": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x030570", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de95ede0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "010-fork=Shanghai-precompile=1-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a004cc2e3f94b587ff46b5f4c0787c589db306b7209f7f212f47022a12bc3e6e16c0c0d9d8808094000000000000000000000000000000000000000180", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x04cc2e3f94b587ff46b5f4c0787c589db306b7209f7f212f47022a12bc3e6e16", + "hash": "0xac2100a02f27016f99a4e4de5b0cd6d999e1251ca8f5ce86a7c7261bd9804149" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf90282f90219a0ac2100a02f27016f99a4e4de5b0cd6d999e1251ca8f5ce86a7c7261bd9804149a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa089b30bf4ba6b72cde1da8022de276e043a44aac8d101595d3a8ea5c9ca0b960aa0527f042aa7bbda87c130b316b218b0bd99ce6369f3d9131c02c5a3c32d745f22a0b3e4866745307f6b8b7ab65d8c17f5ac1a0fd8cbec0fc4b7c6cd6e5317e6df61b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000825dc01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000001808025a01d5baac49196840c962f9c33e71dfd4ebee12049b7ff51d67927f7bfe645a306a03d61dc967c41e3d2be99fd61500ba061ead7a6d594c43585ad6c5e4041c82e34c0c0", + "blockHeader": { + "parentHash": "0xac2100a02f27016f99a4e4de5b0cd6d999e1251ca8f5ce86a7c7261bd9804149", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x89b30bf4ba6b72cde1da8022de276e043a44aac8d101595d3a8ea5c9ca0b960a", + "transactionsTrie": "0x527f042aa7bbda87c130b316b218b0bd99ce6369f3d9131c02c5a3c32d745f22", + "receiptTrie": "0xb3e4866745307f6b8b7ab65d8c17f5ac1a0fd8cbec0fc4b7c6cd6e5317e6df61", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5dc0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xda07935cb8e70024d5a25442fb0b1d2bbfef75c6d95bd7185102b834cb07c7f0" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000001", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x1d5baac49196840c962f9c33e71dfd4ebee12049b7ff51d67927f7bfe645a306", + "s": "0x3d61dc967c41e3d2be99fd61500ba061ead7a6d594c43585ad6c5e4041c82e34", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xda07935cb8e70024d5a25442fb0b1d2bbfef75c6d95bd7185102b834cb07c7f0", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x011940", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9c5680", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "011-fork=Shanghai-precompile=1-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa054b70ea0582b6ba4dfa96d283f820d82bdee44ddcbadada1a55088b57b6bc183a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0b75fd544a11fada72488e5b4f43ea29861255666df8839fd280bcf70773cc670c0c0d9d8808094000000000000000000000000000000000000000101", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x54b70ea0582b6ba4dfa96d283f820d82bdee44ddcbadada1a55088b57b6bc183", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xb75fd544a11fada72488e5b4f43ea29861255666df8839fd280bcf70773cc670", + "hash": "0x04b7120c6636100d57a3c11cf846356ed4d504eea4fa1df60f47b45a346538a8" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90282f90219a004b7120c6636100d57a3c11cf846356ed4d504eea4fa1df60f47b45a346538a8a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06157a1026757c6e501d4c5727263a69159646ed639a9c725e14c87a01c76a952a0527f042aa7bbda87c130b316b218b0bd99ce6369f3d9131c02c5a3c32d745f22a0b3e4866745307f6b8b7ab65d8c17f5ac1a0fd8cbec0fc4b7c6cd6e5317e6df61b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000825dc01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000001808025a01d5baac49196840c962f9c33e71dfd4ebee12049b7ff51d67927f7bfe645a306a03d61dc967c41e3d2be99fd61500ba061ead7a6d594c43585ad6c5e4041c82e34c0c0", + "blockHeader": { + "parentHash": "0x04b7120c6636100d57a3c11cf846356ed4d504eea4fa1df60f47b45a346538a8", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6157a1026757c6e501d4c5727263a69159646ed639a9c725e14c87a01c76a952", + "transactionsTrie": "0x527f042aa7bbda87c130b316b218b0bd99ce6369f3d9131c02c5a3c32d745f22", + "receiptTrie": "0xb3e4866745307f6b8b7ab65d8c17f5ac1a0fd8cbec0fc4b7c6cd6e5317e6df61", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5dc0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x33684eadd1b2c5e3234b78a2256d79ba866d89b5d8276eb7b1502a94febf2157" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000001", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x1d5baac49196840c962f9c33e71dfd4ebee12049b7ff51d67927f7bfe645a306", + "s": "0x3d61dc967c41e3d2be99fd61500ba061ead7a6d594c43585ad6c5e4041c82e34", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x33684eadd1b2c5e3234b78a2256d79ba866d89b5d8276eb7b1502a94febf2157", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000001": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x011940", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9c5680", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "012-fork=Shanghai-precompile=2-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0c884cf66d72cd8a429e496d54f1e2a3c077950311c4ee8456f09c835520ca1d6c0c0d9d8808094000000000000000000000000000000000000000280", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xc884cf66d72cd8a429e496d54f1e2a3c077950311c4ee8456f09c835520ca1d6", + "hash": "0xe9d6c0bd4cc458d11d2bf11033d3a5b8092588b550657e2ca2ccf9500d0ac5ab" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf90282f90219a0e9d6c0bd4cc458d11d2bf11033d3a5b8092588b550657e2ca2ccf9500d0ac5aba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0bafeabbbdb25a6ac63d76f49de2b47805a592777b5100822ccfb1a63c4cbfd87a059d650b73f854881eb58fc8979e6d9e6942b263969d964b9c3c95e5f55462ba8a0a9f5fecff884430f7cf9ed916fa33806ace4e18ddc7497003e6296499a0244d2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252441880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000002808026a088871c4580ca3da2bd921f4dd16d7795c3701783a039ebc748165ab753a90b8ba060a0a5b5da52e5f3308e9ca343e90798b1d60988e3da49d7a8a3872bf87f1fa4c0c0", + "blockHeader": { + "parentHash": "0xe9d6c0bd4cc458d11d2bf11033d3a5b8092588b550657e2ca2ccf9500d0ac5ab", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xbafeabbbdb25a6ac63d76f49de2b47805a592777b5100822ccfb1a63c4cbfd87", + "transactionsTrie": "0x59d650b73f854881eb58fc8979e6d9e6942b263969d964b9c3c95e5f55462ba8", + "receiptTrie": "0xa9f5fecff884430f7cf9ed916fa33806ace4e18ddc7497003e6296499a0244d2", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5244", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xb22862b22f3fcfb82f84861963dfb7acef285ada6dbe6ff54f290d642f264c0d" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000002", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x88871c4580ca3da2bd921f4dd16d7795c3701783a039ebc748165ab753a90b8b", + "s": "0x60a0a5b5da52e5f3308e9ca343e90798b1d60988e3da49d7a8a3872bf87f1fa4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xb22862b22f3fcfb82f84861963dfb7acef285ada6dbe6ff54f290d642f264c0d", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf6cc", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc958", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "013-fork=Shanghai-precompile=2-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa047ec23c10b9aa5a1daee1ddbc460ac84442d2e2db8980394db06e2b95b46c0bea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0e69c7b5847f8c1bb8052999046c12ba942ad4d05e5627b0d339ec7772574e544c0c0d9d8808094000000000000000000000000000000000000000201", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x47ec23c10b9aa5a1daee1ddbc460ac84442d2e2db8980394db06e2b95b46c0be", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xe69c7b5847f8c1bb8052999046c12ba942ad4d05e5627b0d339ec7772574e544", + "hash": "0x0d4cb046d0f00301bf4a89c2a56204c8a37d256f73de085687ab2b038d831af4" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90282f90219a00d4cb046d0f00301bf4a89c2a56204c8a37d256f73de085687ab2b038d831af4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0383e7f87de2312a87295bb79b963a5101a2c0e37543f8d5efcd7ac27ea6b92e1a059d650b73f854881eb58fc8979e6d9e6942b263969d964b9c3c95e5f55462ba8a0a9f5fecff884430f7cf9ed916fa33806ace4e18ddc7497003e6296499a0244d2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252441880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000002808026a088871c4580ca3da2bd921f4dd16d7795c3701783a039ebc748165ab753a90b8ba060a0a5b5da52e5f3308e9ca343e90798b1d60988e3da49d7a8a3872bf87f1fa4c0c0", + "blockHeader": { + "parentHash": "0x0d4cb046d0f00301bf4a89c2a56204c8a37d256f73de085687ab2b038d831af4", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x383e7f87de2312a87295bb79b963a5101a2c0e37543f8d5efcd7ac27ea6b92e1", + "transactionsTrie": "0x59d650b73f854881eb58fc8979e6d9e6942b263969d964b9c3c95e5f55462ba8", + "receiptTrie": "0xa9f5fecff884430f7cf9ed916fa33806ace4e18ddc7497003e6296499a0244d2", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5244", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x0f37acebc8a60c071e07c46e58c755491b7737f0a6cc34ba8aa51e661abccdef" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000002", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x88871c4580ca3da2bd921f4dd16d7795c3701783a039ebc748165ab753a90b8b", + "s": "0x60a0a5b5da52e5f3308e9ca343e90798b1d60988e3da49d7a8a3872bf87f1fa4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0f37acebc8a60c071e07c46e58c755491b7737f0a6cc34ba8aa51e661abccdef", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000002": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf6cc", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc958", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "014-fork=Shanghai-precompile=3-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a03dbefe7c3baf8b223253a4d216194842cadd7acb9d41733ded1af2f0333ac656c0c0d9d8808094000000000000000000000000000000000000000380", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x3dbefe7c3baf8b223253a4d216194842cadd7acb9d41733ded1af2f0333ac656", + "hash": "0xd5859a832c3cc541af7cc3a161a43fe61dd65259e44dccd81cd351b621cc220b" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf90282f90219a0d5859a832c3cc541af7cc3a161a43fe61dd65259e44dccd81cd351b621cc220ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d44f41b5df8e2e1c15dc7b7a4c88a2c69b95b9f63b086e899d3366b1c7b415c0a04586ee2666e8f05b1ef3be790af9657c632f5d175a0eaf7454f8c5d262a944dea0ae7a64ae02766c0acc85472d31b9c93bf220416dc8788948ff5829d6dc78e5b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008254601880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000003808025a0917307ef890dc3e22bff2a797d7c266edecedb8366cbf403c55979b653e260f1a0575b0724cb5cc7ccd29a9dcbd6a8a4c467e24205b997e511c3f65c7144895427c0c0", + "blockHeader": { + "parentHash": "0xd5859a832c3cc541af7cc3a161a43fe61dd65259e44dccd81cd351b621cc220b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd44f41b5df8e2e1c15dc7b7a4c88a2c69b95b9f63b086e899d3366b1c7b415c0", + "transactionsTrie": "0x4586ee2666e8f05b1ef3be790af9657c632f5d175a0eaf7454f8c5d262a944de", + "receiptTrie": "0xae7a64ae02766c0acc85472d31b9c93bf220416dc8788948ff5829d6dc78e5b4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5460", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x5ec4e2dc07de4d6c2482f454b5f35b4435e7da6d9257fa4d9d1814dc895febaa" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000003", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x917307ef890dc3e22bff2a797d7c266edecedb8366cbf403c55979b653e260f1", + "s": "0x575b0724cb5cc7ccd29a9dcbd6a8a4c467e24205b997e511c3f65c7144895427", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5ec4e2dc07de4d6c2482f454b5f35b4435e7da6d9257fa4d9d1814dc895febaa", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xfd20", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cb440", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "015-fork=Shanghai-precompile=3-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa090e7e537fd1901c2475c3bfa5ba007705254f785cf61a6ac8eb2dc184953df61a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02ae8f117637a4a646dae28dd99128dce025ccf546bfe18505524395d08c6c99dc0c0d9d8808094000000000000000000000000000000000000000301", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x90e7e537fd1901c2475c3bfa5ba007705254f785cf61a6ac8eb2dc184953df61", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2ae8f117637a4a646dae28dd99128dce025ccf546bfe18505524395d08c6c99d", + "hash": "0x02439829c77e0f8647ed0b96e28d0d22889bbbe5c2fdbe8532d118de64e9c7db" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90282f90219a002439829c77e0f8647ed0b96e28d0d22889bbbe5c2fdbe8532d118de64e9c7dba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b50a093aa94bf1c4374d75c1b0632e38474cc38734cf082f9097a9ed040fd0bba04586ee2666e8f05b1ef3be790af9657c632f5d175a0eaf7454f8c5d262a944dea0ae7a64ae02766c0acc85472d31b9c93bf220416dc8788948ff5829d6dc78e5b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008254601880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000003808025a0917307ef890dc3e22bff2a797d7c266edecedb8366cbf403c55979b653e260f1a0575b0724cb5cc7ccd29a9dcbd6a8a4c467e24205b997e511c3f65c7144895427c0c0", + "blockHeader": { + "parentHash": "0x02439829c77e0f8647ed0b96e28d0d22889bbbe5c2fdbe8532d118de64e9c7db", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb50a093aa94bf1c4374d75c1b0632e38474cc38734cf082f9097a9ed040fd0bb", + "transactionsTrie": "0x4586ee2666e8f05b1ef3be790af9657c632f5d175a0eaf7454f8c5d262a944de", + "receiptTrie": "0xae7a64ae02766c0acc85472d31b9c93bf220416dc8788948ff5829d6dc78e5b4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5460", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xbf5b299b62dc577ff5cc5b2e33862831c905c19a67ce90fd5fafd19d8cb1bf45" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000003", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x917307ef890dc3e22bff2a797d7c266edecedb8366cbf403c55979b653e260f1", + "s": "0x575b0724cb5cc7ccd29a9dcbd6a8a4c467e24205b997e511c3f65c7144895427", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xbf5b299b62dc577ff5cc5b2e33862831c905c19a67ce90fd5fafd19d8cb1bf45", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000003": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xfd20", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cb440", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "016-fork=Shanghai-precompile=4-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a09efc51b080da5b2bb0ff05ebf2f78fe31ddc5ccd42b4296289aac6ba2e0b84a5c0c0d9d8808094000000000000000000000000000000000000000480", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x9efc51b080da5b2bb0ff05ebf2f78fe31ddc5ccd42b4296289aac6ba2e0b84a5", + "hash": "0x24285bcb5d13196ab7f1ca555fa76856e7650d1186f74f724bf03a506f040d13" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf90282f90219a024285bcb5d13196ab7f1ca555fa76856e7650d1186f74f724bf03a506f040d13a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0e758fca3a7e63f74dede9196bfd385cdc7df1e81db4844284284ee71268e860fa0e4bba4b238510fbd3e49e5fbae8e095648c1f930f929478d655e9a9675a991caa024272ea88c96e39c995959533df4889670e22f15e18ba3b0d73eaad6ad2da4beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252171880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000004808026a073c80bc780c918ec67ffa15782d359ede6c9a2b72ed81632e1ea8ecee232a1a1a06babe262b79e1ab9594602c2a0484b9b217b27683b86428a53da963dd49b25f1c0c0", + "blockHeader": { + "parentHash": "0x24285bcb5d13196ab7f1ca555fa76856e7650d1186f74f724bf03a506f040d13", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xe758fca3a7e63f74dede9196bfd385cdc7df1e81db4844284284ee71268e860f", + "transactionsTrie": "0xe4bba4b238510fbd3e49e5fbae8e095648c1f930f929478d655e9a9675a991ca", + "receiptTrie": "0x24272ea88c96e39c995959533df4889670e22f15e18ba3b0d73eaad6ad2da4be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5217", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x6e76913e5948025bceb857b76cc66be8164b90bd9eeb67c7e2034beb6af69ecc" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000004", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x73c80bc780c918ec67ffa15782d359ede6c9a2b72ed81632e1ea8ecee232a1a1", + "s": "0x6babe262b79e1ab9594602c2a0484b9b217b27683b86428a53da963dd49b25f1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x6e76913e5948025bceb857b76cc66be8164b90bd9eeb67c7e2034beb6af69ecc", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf645", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9ccb1a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "017-fork=Shanghai-precompile=4-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a070c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x70c42824108fafccadbfce71e6e22660c4fad89be18be324cd15ef351969a8c8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3" + }, + "blocks": [ + { + "rlp": "0xf90236f90217a0ea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a39c788a0549f8b06420f3aaba4b566c2363b651be12b2bab0e1b5cf9b44de65a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a07516f2fde5a0f15d16e2e1e55feca7d83fa2ae90786ab69dabc17573b113bfd0c0c0d9d8808094000000000000000000000000000000000000000401", + "blockHeader": { + "parentHash": "0xea2d7e0192d890c222f0302d972a02db0bf0c6d08257d73aa1210d08d24f30c3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa39c788a0549f8b06420f3aaba4b566c2363b651be12b2bab0e1b5cf9b44de65", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x7516f2fde5a0f15d16e2e1e55feca7d83fa2ae90786ab69dabc17573b113bfd0", + "hash": "0x2b02fc8715e1d6324a4d83678f8d23aece71434a0dc4ed15d25a4e112a06e19a" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf90282f90219a02b02fc8715e1d6324a4d83678f8d23aece71434a0dc4ed15d25a4e112a06e19aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa035fa9f1f81d9392ed12e2fc09b7c66ffbf02da5787b303851553c78b26b3319ea0e4bba4b238510fbd3e49e5fbae8e095648c1f930f929478d655e9a9675a991caa024272ea88c96e39c995959533df4889670e22f15e18ba3b0d73eaad6ad2da4beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252171880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421f862f860800a830186a0940000000000000000000000000000000000000004808026a073c80bc780c918ec67ffa15782d359ede6c9a2b72ed81632e1ea8ecee232a1a1a06babe262b79e1ab9594602c2a0484b9b217b27683b86428a53da963dd49b25f1c0c0", + "blockHeader": { + "parentHash": "0x2b02fc8715e1d6324a4d83678f8d23aece71434a0dc4ed15d25a4e112a06e19a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x35fa9f1f81d9392ed12e2fc09b7c66ffbf02da5787b303851553c78b26b3319e", + "transactionsTrie": "0xe4bba4b238510fbd3e49e5fbae8e095648c1f930f929478d655e9a9675a991ca", + "receiptTrie": "0x24272ea88c96e39c995959533df4889670e22f15e18ba3b0d73eaad6ad2da4be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5217", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x285d14a9aacaf41e53370760792c2742a3b435ae8fac3fe15619a2cecb6c2107" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000004", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x73c80bc780c918ec67ffa15782d359ede6c9a2b72ed81632e1ea8ecee232a1a1", + "s": "0x6babe262b79e1ab9594602c2a0484b9b217b27683b86428a53da963dd49b25f1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x285d14a9aacaf41e53370760792c2742a3b435ae8fac3fe15619a2cecb6c2107", + "pre": { + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000004": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf645", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9ccb1a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "018-fork=Cancun-precompile=10-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0fe80285fbb7217c7c3e785c7e79dde1f79e48949c7f44fa5561ac75d7ce70a088080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000a80", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xfe80285fbb7217c7c3e785c7e79dde1f79e48949c7f44fa5561ac75d7ce70a08", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8f53f3e909ff703dde0ed402df8b24b856e11bf494262cfab673661bc838deaf" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000000000000000000000000000000000000000a", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a6f9023da08f53f3e909ff703dde0ed402df8b24b856e11bf494262cfab673661bc838deafa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d7815498f1a2a673e79dc8861d6da62b7781de02d381a2785bbc093d19c5206a01f7420094fbda7da56b56ed1c5a0baa840930ca813ca182d146cb1ac8aac278ca0777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830186a01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a094000000000000000000000000000000000000000a808026a0d62830300f95cc2b7dc08f2509cfe2ab78c401f3dbc3aa98d21805839b321b10a053bb76344bfd0098e1a775adde2d407456df1698cb5ca88314f0506cb7762fb1c0c0", + "blockHeader": { + "parentHash": "0x8f53f3e909ff703dde0ed402df8b24b856e11bf494262cfab673661bc838deaf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d7815498f1a2a673e79dc8861d6da62b7781de02d381a2785bbc093d19c5206", + "transactionsTrie": "0x1f7420094fbda7da56b56ed1c5a0baa840930ca813ca182d146cb1ac8aac278c", + "receiptTrie": "0x777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0186a0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x17c53b252907aedd6f5fa869b8fa1e944623f0d5fa0be41a802e9202ca0bdd6b" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x000000000000000000000000000000000000000a", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xd62830300f95cc2b7dc08f2509cfe2ab78c401f3dbc3aa98d21805839b321b10", + "s": "0x53bb76344bfd0098e1a775adde2d407456df1698cb5ca88314f0506cb7762fb1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x17c53b252907aedd6f5fa869b8fa1e944623f0d5fa0be41a802e9202ca0bdd6b", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0493e0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de90bdc0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "019-fork=Cancun-precompile=10-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05d68c4a68d42a36e3f4132164c8d912448445ec5352693a6e74dabd4853d3c1aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0a3a10582c782843fbb495fa23da45456908bfca1a3be1e516a9d44e76be54c858080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000a01", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5d68c4a68d42a36e3f4132164c8d912448445ec5352693a6e74dabd4853d3c1a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xa3a10582c782843fbb495fa23da45456908bfca1a3be1e516a9d44e76be54c85", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xfa3d7ef2fb9e1d504e40da998049d708d1d89670f69de575561913dd4ccbf928" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x000000000000000000000000000000000000000a", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a6f9023da0fa3d7ef2fb9e1d504e40da998049d708d1d89670f69de575561913dd4ccbf928a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa06b6c8a9f7172e6287a1148c931a944519b82cd5a9f803242f9888931f5ae5d22a01f7420094fbda7da56b56ed1c5a0baa840930ca813ca182d146cb1ac8aac278ca0777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830186a01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a094000000000000000000000000000000000000000a808026a0d62830300f95cc2b7dc08f2509cfe2ab78c401f3dbc3aa98d21805839b321b10a053bb76344bfd0098e1a775adde2d407456df1698cb5ca88314f0506cb7762fb1c0c0", + "blockHeader": { + "parentHash": "0xfa3d7ef2fb9e1d504e40da998049d708d1d89670f69de575561913dd4ccbf928", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x6b6c8a9f7172e6287a1148c931a944519b82cd5a9f803242f9888931f5ae5d22", + "transactionsTrie": "0x1f7420094fbda7da56b56ed1c5a0baa840930ca813ca182d146cb1ac8aac278c", + "receiptTrie": "0x777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0186a0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0890f7ad2c293d3fa3b8844a9d9f8da32f818c932fa6b887859d80c289a391be" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x000000000000000000000000000000000000000a", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0xd62830300f95cc2b7dc08f2509cfe2ab78c401f3dbc3aa98d21805839b321b10", + "s": "0x53bb76344bfd0098e1a775adde2d407456df1698cb5ca88314f0506cb7762fb1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0890f7ad2c293d3fa3b8844a9d9f8da32f818c932fa6b887859d80c289a391be", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000000a": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0493e0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de90bdc0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "020-fork=Cancun-precompile=9-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0b7cb110d9c2b2c2b1fb73e3f99c114b50f675e2999d1911bb99696ff7ef7fc7f8080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000980", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xb7cb110d9c2b2c2b1fb73e3f99c114b50f675e2999d1911bb99696ff7ef7fc7f", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x84f92b6bd7b7d8e0017f10ab427f3ca11094e8d7c9b6c79d963d63c447253c2c" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a6f9023da084f92b6bd7b7d8e0017f10ab427f3ca11094e8d7c9b6c79d963d63c447253c2ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa03d7815498f1a2a673e79dc8861d6da62b7781de02d381a2785bbc093d19c5206a01bf99af65e896eb3a6591fbc0377d5929b8c150d9bef4c16dccb8feec5d5c0efa0777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830186a01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000009808026a0803b06b78b7bd29d0faf9401f2df5d71e8a445ad1ac0a45d2e5256ba23c43ed1a06634f86b79da86a904b1900a52e470847ffe730ef4ec32a3b0f7eece7bfaae96c0c0", + "blockHeader": { + "parentHash": "0x84f92b6bd7b7d8e0017f10ab427f3ca11094e8d7c9b6c79d963d63c447253c2c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x3d7815498f1a2a673e79dc8861d6da62b7781de02d381a2785bbc093d19c5206", + "transactionsTrie": "0x1bf99af65e896eb3a6591fbc0377d5929b8c150d9bef4c16dccb8feec5d5c0ef", + "receiptTrie": "0x777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0186a0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8bc2604048ff278c842b4ce39946cbb437b37025601e184cf8f8749b7ea40d64" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000009", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x803b06b78b7bd29d0faf9401f2df5d71e8a445ad1ac0a45d2e5256ba23c43ed1", + "s": "0x6634f86b79da86a904b1900a52e470847ffe730ef4ec32a3b0f7eece7bfaae96", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x8bc2604048ff278c842b4ce39946cbb437b37025601e184cf8f8749b7ea40d64", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0493e0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de90bdc0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "021-fork=Cancun-precompile=9-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07cce0ab5e644a5a5e0b49786d55e95586846263c5d1c5ec6d8cfd31ab6ce22c0a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a005ac90fc2c9d720d36986f1f7f3942f5cec388cb7a0dd72bf6064d3f9d5e67b38080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000901", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7cce0ab5e644a5a5e0b49786d55e95586846263c5d1c5ec6d8cfd31ab6ce22c0", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x05ac90fc2c9d720d36986f1f7f3942f5cec388cb7a0dd72bf6064d3f9d5e67b3", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0c49cd9104064a0a140783982e56c94c5ef9c947c72ea1fdfaeb53bbe87e7b55" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000009", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a6f9023da00c49cd9104064a0a140783982e56c94c5ef9c947c72ea1fdfaeb53bbe87e7b55a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c9702aad1b095f9225d33bfe75b11e5bb464543894bced1f9b5eaf78ec7265c0a01bf99af65e896eb3a6591fbc0377d5929b8c150d9bef4c16dccb8feec5d5c0efa0777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830186a01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000009808026a0803b06b78b7bd29d0faf9401f2df5d71e8a445ad1ac0a45d2e5256ba23c43ed1a06634f86b79da86a904b1900a52e470847ffe730ef4ec32a3b0f7eece7bfaae96c0c0", + "blockHeader": { + "parentHash": "0x0c49cd9104064a0a140783982e56c94c5ef9c947c72ea1fdfaeb53bbe87e7b55", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc9702aad1b095f9225d33bfe75b11e5bb464543894bced1f9b5eaf78ec7265c0", + "transactionsTrie": "0x1bf99af65e896eb3a6591fbc0377d5929b8c150d9bef4c16dccb8feec5d5c0ef", + "receiptTrie": "0x777f1c1c378807634128348e4f0eeca6a0e7f516ea411690ca04266323f671a4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0186a0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5c0d94b8bae375a2acb027d9b06a0030f5ab60bef56992600ffdae564ddb3672" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000009", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x803b06b78b7bd29d0faf9401f2df5d71e8a445ad1ac0a45d2e5256ba23c43ed1", + "s": "0x6634f86b79da86a904b1900a52e470847ffe730ef4ec32a3b0f7eece7bfaae96", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5c0d94b8bae375a2acb027d9b06a0030f5ab60bef56992600ffdae564ddb3672", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000009": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x0493e0", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de90bdc0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "022-fork=Cancun-precompile=5-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a014c3d56c83db44f674ee20ba507fe695c717ea55e4b2c3054917aca03e22630d8080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000580", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x14c3d56c83db44f674ee20ba507fe695c717ea55e4b2c3054917aca03e22630d", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa9b62cd3f735e33f2a8e46610f04cc11368c441513ca4defde18c8ad9eefba4b" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a5f9023ca0a9b62cd3f735e33f2a8e46610f04cc11368c441513ca4defde18c8ad9eefba4ba01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa04cc7ee9a463a8294898ca2a9e8baef8792d025a2251e23d8a0ccdb17b09759bda0e2e582350772b0279ab4ee0d5404ae156a31c71f3fc51badfb7641778a120e14a0945e4d3b6ce55adff709f6eed3d57e624e6bc04f0afe82f6695c12cd85838bceb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252d01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000005808025a0921558fc1ed89d4451f7baed924834c425419a5d433ff72314cd51d8fd730122a00ec8c9537f514d70ef8ba43e4f83568c9c56f4a5c4eefb1fa6103cfd5623f5b9c0c0", + "blockHeader": { + "parentHash": "0xa9b62cd3f735e33f2a8e46610f04cc11368c441513ca4defde18c8ad9eefba4b", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x4cc7ee9a463a8294898ca2a9e8baef8792d025a2251e23d8a0ccdb17b09759bd", + "transactionsTrie": "0xe2e582350772b0279ab4ee0d5404ae156a31c71f3fc51badfb7641778a120e14", + "receiptTrie": "0x945e4d3b6ce55adff709f6eed3d57e624e6bc04f0afe82f6695c12cd85838bce", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x52d0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x40e14a821436fc99bbd9a91a83dffb00fc00a6d87fc503c85b4866d628ae8be1" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000005", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x921558fc1ed89d4451f7baed924834c425419a5d433ff72314cd51d8fd730122", + "s": "0x0ec8c9537f514d70ef8ba43e4f83568c9c56f4a5c4eefb1fa6103cfd5623f5b9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x40e14a821436fc99bbd9a91a83dffb00fc00a6d87fc503c85b4866d628ae8be1", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf870", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc3e0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "023-fork=Cancun-precompile=5-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a251b2944a5133005be32aa91c1bdaf2a4b864a39ca1e7bac9e4680216f0810fa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a06a4cd811116f6e5fa90406c6a1e4af4acc932fecc5de601f9f7a7f2ea7755fe98080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000501", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xa251b2944a5133005be32aa91c1bdaf2a4b864a39ca1e7bac9e4680216f0810f", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x6a4cd811116f6e5fa90406c6a1e4af4acc932fecc5de601f9f7a7f2ea7755fe9", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8dbbd2ffd760701ce7925ee973cda7de34723a5e28c03a1a54e2ed532be8f470" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000005", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a5f9023ca08dbbd2ffd760701ce7925ee973cda7de34723a5e28c03a1a54e2ed532be8f470a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cd33dbf4c0a8a9a6764e9c78f48adaa9acfbad9989fe3d17c0e80118d6f5e2f8a0e2e582350772b0279ab4ee0d5404ae156a31c71f3fc51badfb7641778a120e14a0945e4d3b6ce55adff709f6eed3d57e624e6bc04f0afe82f6695c12cd85838bceb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252d01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000005808025a0921558fc1ed89d4451f7baed924834c425419a5d433ff72314cd51d8fd730122a00ec8c9537f514d70ef8ba43e4f83568c9c56f4a5c4eefb1fa6103cfd5623f5b9c0c0", + "blockHeader": { + "parentHash": "0x8dbbd2ffd760701ce7925ee973cda7de34723a5e28c03a1a54e2ed532be8f470", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcd33dbf4c0a8a9a6764e9c78f48adaa9acfbad9989fe3d17c0e80118d6f5e2f8", + "transactionsTrie": "0xe2e582350772b0279ab4ee0d5404ae156a31c71f3fc51badfb7641778a120e14", + "receiptTrie": "0x945e4d3b6ce55adff709f6eed3d57e624e6bc04f0afe82f6695c12cd85838bce", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x52d0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x85b3f14c9d115ff9a32133989dbc6658262896d8e762a1ca3c8b7f7b4ca421df" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000005", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x921558fc1ed89d4451f7baed924834c425419a5d433ff72314cd51d8fd730122", + "s": "0x0ec8c9537f514d70ef8ba43e4f83568c9c56f4a5c4eefb1fa6103cfd5623f5b9", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x85b3f14c9d115ff9a32133989dbc6658262896d8e762a1ca3c8b7f7b4ca421df", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000005": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf870", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc3e0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "024-fork=Cancun-precompile=6-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a077879f8f6b197c8faa2d2658bddca617b131e2419f4ee57bc5b7fa3e18ee7b308080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000680", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x77879f8f6b197c8faa2d2658bddca617b131e2419f4ee57bc5b7fa3e18ee7b30", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x92c182e9e45b6e7bdb09d5d581f90e493c34591c73571b4ed142e39bff836137" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a5f9023ca092c182e9e45b6e7bdb09d5d581f90e493c34591c73571b4ed142e39bff836137a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05e481efe37738f77df3a9fbda24d101e15f9108edb72dbe7cb31b419a508c9bea0bc2ba866b6fe25ff45446151ae11426b62e9f7269a269c2f498dd6dc7ec3a7a1a00289a23088d138057d823d533ae69c0ec1d1c9b426172be9d9b204867b164985b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082529e1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000006808026a0761d23af053f6740b60fb602033be919a6e770e30bbf59a2a8c694bb2c3cb302a002f99617b784b3ee165d548070c299add1969fa706bc610dce3beb5a8b7090a0c0c0", + "blockHeader": { + "parentHash": "0x92c182e9e45b6e7bdb09d5d581f90e493c34591c73571b4ed142e39bff836137", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5e481efe37738f77df3a9fbda24d101e15f9108edb72dbe7cb31b419a508c9be", + "transactionsTrie": "0xbc2ba866b6fe25ff45446151ae11426b62e9f7269a269c2f498dd6dc7ec3a7a1", + "receiptTrie": "0x0289a23088d138057d823d533ae69c0ec1d1c9b426172be9d9b204867b164985", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x529e", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe06597ca09afdf0ac61068ca91b45257d24d6098d600acbb4fa4bc54eb785563" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000006", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x761d23af053f6740b60fb602033be919a6e770e30bbf59a2a8c694bb2c3cb302", + "s": "0x02f99617b784b3ee165d548070c299add1969fa706bc610dce3beb5a8b7090a0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xe06597ca09afdf0ac61068ca91b45257d24d6098d600acbb4fa4bc54eb785563", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf7da", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc5d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "025-fork=Cancun-precompile=6-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c81802020ee52b044156a5f71e72d97e6f7a48a99eef9bc34d02d00721df6bbaa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0545271b48b0704b39d880bb1c9400c09d641ee6fb0a7dc21939dc57ba0f7dc428080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000601", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc81802020ee52b044156a5f71e72d97e6f7a48a99eef9bc34d02d00721df6bba", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x545271b48b0704b39d880bb1c9400c09d641ee6fb0a7dc21939dc57ba0f7dc42", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x009c7a3ee104c1ac34588d23130299cbc76a369dab60e1c397a484b07d2bcfbd" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000006", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a5f9023ca0009c7a3ee104c1ac34588d23130299cbc76a369dab60e1c397a484b07d2bcfbda01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c1d4b92c89c3fb624104f63c7ed1da1178b4c1d4b4b79134c6811ab7913f9c58a0bc2ba866b6fe25ff45446151ae11426b62e9f7269a269c2f498dd6dc7ec3a7a1a00289a23088d138057d823d533ae69c0ec1d1c9b426172be9d9b204867b164985b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a000082529e1880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000006808026a0761d23af053f6740b60fb602033be919a6e770e30bbf59a2a8c694bb2c3cb302a002f99617b784b3ee165d548070c299add1969fa706bc610dce3beb5a8b7090a0c0c0", + "blockHeader": { + "parentHash": "0x009c7a3ee104c1ac34588d23130299cbc76a369dab60e1c397a484b07d2bcfbd", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc1d4b92c89c3fb624104f63c7ed1da1178b4c1d4b4b79134c6811ab7913f9c58", + "transactionsTrie": "0xbc2ba866b6fe25ff45446151ae11426b62e9f7269a269c2f498dd6dc7ec3a7a1", + "receiptTrie": "0x0289a23088d138057d823d533ae69c0ec1d1c9b426172be9d9b204867b164985", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x529e", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xec306e6d275335ebb8ab575ee4a9b7587b916d9fe71283ccca41ccf702218528" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000006", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x761d23af053f6740b60fb602033be919a6e770e30bbf59a2a8c694bb2c3cb302", + "s": "0x02f99617b784b3ee165d548070c299add1969fa706bc610dce3beb5a8b7090a0", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xec306e6d275335ebb8ab575ee4a9b7587b916d9fe71283ccca41ccf702218528", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000006": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf7da", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc5d4", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "026-fork=Cancun-precompile=7-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0bfb08f2ec27a1d849f80d3fdf9849335b1e7eaea0e6d583bcb94c9f68e70fd068080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000780", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xbfb08f2ec27a1d849f80d3fdf9849335b1e7eaea0e6d583bcb94c9f68e70fd06", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd2df157cbef907637234c674689214833d46212d39587c5a9f847c8fc5110748" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a5f9023ca0d2df157cbef907637234c674689214833d46212d39587c5a9f847c8fc5110748a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09b7a3ada25b9efe921c391f06ce59b73208c488ba1e58cacc2180b393b3434d3a0b1c8d719c3bd4a402c44700b81024e4e926f6586958ffa793135cb4aa3ce17dba02e92c109b4246fdc06b6175167dcdb44658cbe9cc25aa7590a13c752f9e5c895b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008269781880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000007808026a07016a4b8559416a6052f4cfba8febd066b9d09467681187d84d9fa9a796650a7a02e859d186a5733c279cb615b82c2d03756b4b63952934f49d14740d06e7e7a84c0c0", + "blockHeader": { + "parentHash": "0xd2df157cbef907637234c674689214833d46212d39587c5a9f847c8fc5110748", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9b7a3ada25b9efe921c391f06ce59b73208c488ba1e58cacc2180b393b3434d3", + "transactionsTrie": "0xb1c8d719c3bd4a402c44700b81024e4e926f6586958ffa793135cb4aa3ce17db", + "receiptTrie": "0x2e92c109b4246fdc06b6175167dcdb44658cbe9cc25aa7590a13c752f9e5c895", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6978", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3e1d575d6c0c362b13172de5bb787ca3d482242ec08b9ce8501bbf09cb91a4f4" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000007", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x7016a4b8559416a6052f4cfba8febd066b9d09467681187d84d9fa9a796650a7", + "s": "0x2e859d186a5733c279cb615b82c2d03756b4b63952934f49d14740d06e7e7a84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x3e1d575d6c0c362b13172de5bb787ca3d482242ec08b9ce8501bbf09cb91a4f4", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x013c68", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9be150", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "027-fork=Cancun-precompile=7-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eda24394d96d7e0b91450d1ba0104ea52cc2afb87075f85531ea29af019df42da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a044725c3e8dca65e76db0ff2b447329060b3a38d1a8a279484e17ae73ca8344218080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000701", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xeda24394d96d7e0b91450d1ba0104ea52cc2afb87075f85531ea29af019df42d", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x44725c3e8dca65e76db0ff2b447329060b3a38d1a8a279484e17ae73ca834421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x058f5c7e19949acf817fb59c656dc682ea864b9982982dcdd44e243a67b0e210" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000007", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a5f9023ca0058f5c7e19949acf817fb59c656dc682ea864b9982982dcdd44e243a67b0e210a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa032ea0a0ee18a1147b019efdd470bf5bd219ae8e2cafcd555c2456ad5bfdaf996a0b1c8d719c3bd4a402c44700b81024e4e926f6586958ffa793135cb4aa3ce17dba02e92c109b4246fdc06b6175167dcdb44658cbe9cc25aa7590a13c752f9e5c895b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008269781880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000007808026a07016a4b8559416a6052f4cfba8febd066b9d09467681187d84d9fa9a796650a7a02e859d186a5733c279cb615b82c2d03756b4b63952934f49d14740d06e7e7a84c0c0", + "blockHeader": { + "parentHash": "0x058f5c7e19949acf817fb59c656dc682ea864b9982982dcdd44e243a67b0e210", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x32ea0a0ee18a1147b019efdd470bf5bd219ae8e2cafcd555c2456ad5bfdaf996", + "transactionsTrie": "0xb1c8d719c3bd4a402c44700b81024e4e926f6586958ffa793135cb4aa3ce17db", + "receiptTrie": "0x2e92c109b4246fdc06b6175167dcdb44658cbe9cc25aa7590a13c752f9e5c895", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x6978", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1f3327ef7b2081dbf472a92dea9c01ec340e6401b698f74297796ff2cdd6c420" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000007", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x7016a4b8559416a6052f4cfba8febd066b9d09467681187d84d9fa9a796650a7", + "s": "0x2e859d186a5733c279cb615b82c2d03756b4b63952934f49d14740d06e7e7a84", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1f3327ef7b2081dbf472a92dea9c01ec340e6401b698f74297796ff2cdd6c420", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000007": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x013c68", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9be150", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "028-fork=Cancun-precompile=8-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0f6c7c964ef96772cd67db1a0bae4e9b3eb10986761f75c976d2d9c1d82f2779e8080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000880", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xf6c7c964ef96772cd67db1a0bae4e9b3eb10986761f75c976d2d9c1d82f2779e", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1e59dee0e5e35cf748d6aa69dbbb34b9b3769f4233e2daffd99eb98b64db6f2f" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a6f9023da01e59dee0e5e35cf748d6aa69dbbb34b9b3769f4233e2daffd99eb98b64db6f2fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01a9bddd831f893dc9c1c6d0d4972f69ac72382162ed775db536279c138bc3a16a053f782604a87f8bc0274d865d5d4d45dff15feef57a56581ad5589492eaed02aa0d67a8c83ee3e3cfd05e328fa2253e04fd8b92341b40ec088490b262e205cbf74b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830101d01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000008808026a04920fc5560c47c348a81963651c0741282fa6d9f30380978dfa6de04c51a225da070471d000e4b8223efb8a7bdd3342d4ae1bdf020325c4adc315fe685bea3e403c0c0", + "blockHeader": { + "parentHash": "0x1e59dee0e5e35cf748d6aa69dbbb34b9b3769f4233e2daffd99eb98b64db6f2f", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1a9bddd831f893dc9c1c6d0d4972f69ac72382162ed775db536279c138bc3a16", + "transactionsTrie": "0x53f782604a87f8bc0274d865d5d4d45dff15feef57a56581ad5589492eaed02a", + "receiptTrie": "0xd67a8c83ee3e3cfd05e328fa2253e04fd8b92341b40ec088490b262e205cbf74", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0101d0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xd06ff758d2cb1cb16e27b21cdb483bb0df21cd2879cc938c007fbbee1bb2fc36" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000008", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x4920fc5560c47c348a81963651c0741282fa6d9f30380978dfa6de04c51a225d", + "s": "0x70471d000e4b8223efb8a7bdd3342d4ae1bdf020325c4adc315fe685bea3e403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xd06ff758d2cb1cb16e27b21cdb483bb0df21cd2879cc938c007fbbee1bb2fc36", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x030570", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de95ede0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "029-fork=Cancun-precompile=8-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0612569af4abec1bb90ad602acd9ff53d04f9c404fc754f76fa02037d8c9893e8a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a022920a220a51904de7421d02c2d8f59191d0b5963b37dcbfc14962b999535b9e8080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000801", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x612569af4abec1bb90ad602acd9ff53d04f9c404fc754f76fa02037d8c9893e8", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x22920a220a51904de7421d02c2d8f59191d0b5963b37dcbfc14962b999535b9e", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8be4d9b61e1f0e0ca6f9c6bc24ab2170cc36df4eddd3ccb5ada6425057117bcf" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000008", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a6f9023da08be4d9b61e1f0e0ca6f9c6bc24ab2170cc36df4eddd3ccb5ada6425057117bcfa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0040de641907adf60628d63d007bbf22aad98ad9511c8b3ce895317fa2c3bc419a053f782604a87f8bc0274d865d5d4d45dff15feef57a56581ad5589492eaed02aa0d67a8c83ee3e3cfd05e328fa2253e04fd8b92341b40ec088490b262e205cbf74b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000830101d01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000008808026a04920fc5560c47c348a81963651c0741282fa6d9f30380978dfa6de04c51a225da070471d000e4b8223efb8a7bdd3342d4ae1bdf020325c4adc315fe685bea3e403c0c0", + "blockHeader": { + "parentHash": "0x8be4d9b61e1f0e0ca6f9c6bc24ab2170cc36df4eddd3ccb5ada6425057117bcf", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x040de641907adf60628d63d007bbf22aad98ad9511c8b3ce895317fa2c3bc419", + "transactionsTrie": "0x53f782604a87f8bc0274d865d5d4d45dff15feef57a56581ad5589492eaed02a", + "receiptTrie": "0xd67a8c83ee3e3cfd05e328fa2253e04fd8b92341b40ec088490b262e205cbf74", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x0101d0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x0c99aead800aa74f5844b8357e19f4ec665b452044a6ddbaaa65120cc935c461" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000008", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x4920fc5560c47c348a81963651c0741282fa6d9f30380978dfa6de04c51a225d", + "s": "0x70471d000e4b8223efb8a7bdd3342d4ae1bdf020325c4adc315fe685bea3e403", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x0c99aead800aa74f5844b8357e19f4ec665b452044a6ddbaaa65120cc935c461", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000008": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x030570", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de95ede0", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "030-fork=Cancun-precompile=1-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a004cc2e3f94b587ff46b5f4c0787c589db306b7209f7f212f47022a12bc3e6e168080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000180", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x04cc2e3f94b587ff46b5f4c0787c589db306b7209f7f212f47022a12bc3e6e16", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x282a84af83dc78aef5360a827e2c8c4ae5e0e798114ee270a04724aa13326507" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a5f9023ca0282a84af83dc78aef5360a827e2c8c4ae5e0e798114ee270a04724aa13326507a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0cf9e37f685c7708f17cf2a880c24bbd06a0ec7b7c6a5637706250bbe4d630b8aa0527f042aa7bbda87c130b316b218b0bd99ce6369f3d9131c02c5a3c32d745f22a0b3e4866745307f6b8b7ab65d8c17f5ac1a0fd8cbec0fc4b7c6cd6e5317e6df61b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000825dc01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000001808025a01d5baac49196840c962f9c33e71dfd4ebee12049b7ff51d67927f7bfe645a306a03d61dc967c41e3d2be99fd61500ba061ead7a6d594c43585ad6c5e4041c82e34c0c0", + "blockHeader": { + "parentHash": "0x282a84af83dc78aef5360a827e2c8c4ae5e0e798114ee270a04724aa13326507", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xcf9e37f685c7708f17cf2a880c24bbd06a0ec7b7c6a5637706250bbe4d630b8a", + "transactionsTrie": "0x527f042aa7bbda87c130b316b218b0bd99ce6369f3d9131c02c5a3c32d745f22", + "receiptTrie": "0xb3e4866745307f6b8b7ab65d8c17f5ac1a0fd8cbec0fc4b7c6cd6e5317e6df61", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5dc0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5b7f24cf5299c16686a795a8ed0642b5d3b0efd92e1ee9866000ad4d78ac9c25" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000001", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x1d5baac49196840c962f9c33e71dfd4ebee12049b7ff51d67927f7bfe645a306", + "s": "0x3d61dc967c41e3d2be99fd61500ba061ead7a6d594c43585ad6c5e4041c82e34", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5b7f24cf5299c16686a795a8ed0642b5d3b0efd92e1ee9866000ad4d78ac9c25", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x011940", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9c5680", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "031-fork=Cancun-precompile=1-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08afce3983c0f8ee64a300f816357e88b1dc4e3567aecef795c526cdd2028e17aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0b75fd544a11fada72488e5b4f43ea29861255666df8839fd280bcf70773cc6708080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000101", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x8afce3983c0f8ee64a300f816357e88b1dc4e3567aecef795c526cdd2028e17a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xb75fd544a11fada72488e5b4f43ea29861255666df8839fd280bcf70773cc670", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xc0917e325a5e6f9e2145f90691a8cbe293309ad562955eaef8496c5fd5a3c5ca" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000001", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a5f9023ca0c0917e325a5e6f9e2145f90691a8cbe293309ad562955eaef8496c5fd5a3c5caa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b88c95e704d620e516a963356a963a5373f592761421c74f73f3795dba344037a0527f042aa7bbda87c130b316b218b0bd99ce6369f3d9131c02c5a3c32d745f22a0b3e4866745307f6b8b7ab65d8c17f5ac1a0fd8cbec0fc4b7c6cd6e5317e6df61b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a0000825dc01880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000001808025a01d5baac49196840c962f9c33e71dfd4ebee12049b7ff51d67927f7bfe645a306a03d61dc967c41e3d2be99fd61500ba061ead7a6d594c43585ad6c5e4041c82e34c0c0", + "blockHeader": { + "parentHash": "0xc0917e325a5e6f9e2145f90691a8cbe293309ad562955eaef8496c5fd5a3c5ca", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xb88c95e704d620e516a963356a963a5373f592761421c74f73f3795dba344037", + "transactionsTrie": "0x527f042aa7bbda87c130b316b218b0bd99ce6369f3d9131c02c5a3c32d745f22", + "receiptTrie": "0xb3e4866745307f6b8b7ab65d8c17f5ac1a0fd8cbec0fc4b7c6cd6e5317e6df61", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5dc0", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x5a6e1d0d6e3b9e437e3b76cc09710223563565b7e9a436358986acedb204ff76" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000001", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x1d5baac49196840c962f9c33e71dfd4ebee12049b7ff51d67927f7bfe645a306", + "s": "0x3d61dc967c41e3d2be99fd61500ba061ead7a6d594c43585ad6c5e4041c82e34", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x5a6e1d0d6e3b9e437e3b76cc09710223563565b7e9a436358986acedb204ff76", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000001": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x011940", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9c5680", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "032-fork=Cancun-precompile=2-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0c884cf66d72cd8a429e496d54f1e2a3c077950311c4ee8456f09c835520ca1d68080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000280", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xc884cf66d72cd8a429e496d54f1e2a3c077950311c4ee8456f09c835520ca1d6", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xdb5b68b44ec8cc8d45cf3f80406c404b541b1c978fe6a6faa6c6b9b75c3a4536" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a5f9023ca0db5b68b44ec8cc8d45cf3f80406c404b541b1c978fe6a6faa6c6b9b75c3a4536a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01d6a332b39a2a4420e217a5e2abb7122d0b594c8dc1cdb5c7e8723396112ab4fa059d650b73f854881eb58fc8979e6d9e6942b263969d964b9c3c95e5f55462ba8a0a9f5fecff884430f7cf9ed916fa33806ace4e18ddc7497003e6296499a0244d2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252441880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000002808026a088871c4580ca3da2bd921f4dd16d7795c3701783a039ebc748165ab753a90b8ba060a0a5b5da52e5f3308e9ca343e90798b1d60988e3da49d7a8a3872bf87f1fa4c0c0", + "blockHeader": { + "parentHash": "0xdb5b68b44ec8cc8d45cf3f80406c404b541b1c978fe6a6faa6c6b9b75c3a4536", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1d6a332b39a2a4420e217a5e2abb7122d0b594c8dc1cdb5c7e8723396112ab4f", + "transactionsTrie": "0x59d650b73f854881eb58fc8979e6d9e6942b263969d964b9c3c95e5f55462ba8", + "receiptTrie": "0xa9f5fecff884430f7cf9ed916fa33806ace4e18ddc7497003e6296499a0244d2", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5244", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x288df7402cbb4ddaf44547678a2cfa15045fb08976732bd31b1272277c46781c" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000002", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x88871c4580ca3da2bd921f4dd16d7795c3701783a039ebc748165ab753a90b8b", + "s": "0x60a0a5b5da52e5f3308e9ca343e90798b1d60988e3da49d7a8a3872bf87f1fa4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x288df7402cbb4ddaf44547678a2cfa15045fb08976732bd31b1272277c46781c", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf6cc", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc958", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "033-fork=Cancun-precompile=2-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c2a77e1e008094eb69970a5ca782d3db246a13f27d8eb9f9dbda741f594c4f32a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0e69c7b5847f8c1bb8052999046c12ba942ad4d05e5627b0d339ec7772574e5448080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000201", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xc2a77e1e008094eb69970a5ca782d3db246a13f27d8eb9f9dbda741f594c4f32", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xe69c7b5847f8c1bb8052999046c12ba942ad4d05e5627b0d339ec7772574e544", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xe6f643b08c3757450d93d5bfa27168a2af5a861ac3bd2793ca57650f9d77a50c" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000002", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a5f9023ca0e6f643b08c3757450d93d5bfa27168a2af5a861ac3bd2793ca57650f9d77a50ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0eb79a24dd161cde8429b7bc53f7f1506414b97cecda280b82d899b330e6ab90aa059d650b73f854881eb58fc8979e6d9e6942b263969d964b9c3c95e5f55462ba8a0a9f5fecff884430f7cf9ed916fa33806ace4e18ddc7497003e6296499a0244d2b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252441880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000002808026a088871c4580ca3da2bd921f4dd16d7795c3701783a039ebc748165ab753a90b8ba060a0a5b5da52e5f3308e9ca343e90798b1d60988e3da49d7a8a3872bf87f1fa4c0c0", + "blockHeader": { + "parentHash": "0xe6f643b08c3757450d93d5bfa27168a2af5a861ac3bd2793ca57650f9d77a50c", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xeb79a24dd161cde8429b7bc53f7f1506414b97cecda280b82d899b330e6ab90a", + "transactionsTrie": "0x59d650b73f854881eb58fc8979e6d9e6942b263969d964b9c3c95e5f55462ba8", + "receiptTrie": "0xa9f5fecff884430f7cf9ed916fa33806ace4e18ddc7497003e6296499a0244d2", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5244", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xa1c48d62f2ffe3afe7f3e3ee75cbfbc21739379bf37d2b82671aace9f654742c" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000002", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x88871c4580ca3da2bd921f4dd16d7795c3701783a039ebc748165ab753a90b8b", + "s": "0x60a0a5b5da52e5f3308e9ca343e90798b1d60988e3da49d7a8a3872bf87f1fa4", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0xa1c48d62f2ffe3afe7f3e3ee75cbfbc21739379bf37d2b82671aace9f654742c", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000002": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf6cc", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cc958", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "034-fork=Cancun-precompile=3-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a03dbefe7c3baf8b223253a4d216194842cadd7acb9d41733ded1af2f0333ac6568080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000380", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x3dbefe7c3baf8b223253a4d216194842cadd7acb9d41733ded1af2f0333ac656", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x8d1ca00eb600bc4045f1fe72c4af8984b3f8f86b18783b2d60a272a7e8dd32c0" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a5f9023ca08d1ca00eb600bc4045f1fe72c4af8984b3f8f86b18783b2d60a272a7e8dd32c0a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa05a56de2f9b23e56d7368480367bd7ae0ca0a81c31e8d9804c3b92679a08c8d96a04586ee2666e8f05b1ef3be790af9657c632f5d175a0eaf7454f8c5d262a944dea0ae7a64ae02766c0acc85472d31b9c93bf220416dc8788948ff5829d6dc78e5b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008254601880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000003808025a0917307ef890dc3e22bff2a797d7c266edecedb8366cbf403c55979b653e260f1a0575b0724cb5cc7ccd29a9dcbd6a8a4c467e24205b997e511c3f65c7144895427c0c0", + "blockHeader": { + "parentHash": "0x8d1ca00eb600bc4045f1fe72c4af8984b3f8f86b18783b2d60a272a7e8dd32c0", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x5a56de2f9b23e56d7368480367bd7ae0ca0a81c31e8d9804c3b92679a08c8d96", + "transactionsTrie": "0x4586ee2666e8f05b1ef3be790af9657c632f5d175a0eaf7454f8c5d262a944de", + "receiptTrie": "0xae7a64ae02766c0acc85472d31b9c93bf220416dc8788948ff5829d6dc78e5b4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5460", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x682fa3d2216599c29d4ad9ffbf24309fd40f366b380ba5207218e507748a0376" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000003", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x917307ef890dc3e22bff2a797d7c266edecedb8366cbf403c55979b653e260f1", + "s": "0x575b0724cb5cc7ccd29a9dcbd6a8a4c467e24205b997e511c3f65c7144895427", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x682fa3d2216599c29d4ad9ffbf24309fd40f366b380ba5207218e507748a0376", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xfd20", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cb440", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "035-fork=Cancun-precompile=3-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa02c3a5f5ca8d7167a35794c20f69923dbb66e8c7b6b28741b18f8f6d0ddd54978a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a02ae8f117637a4a646dae28dd99128dce025ccf546bfe18505524395d08c6c99d8080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000301", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x2c3a5f5ca8d7167a35794c20f69923dbb66e8c7b6b28741b18f8f6d0ddd54978", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x2ae8f117637a4a646dae28dd99128dce025ccf546bfe18505524395d08c6c99d", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x45d21a9f12787d5bf2f8bc90aaaaf01763768446ce251d206ac9c3129c7e2f99" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000003", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a5f9023ca045d21a9f12787d5bf2f8bc90aaaaf01763768446ce251d206ac9c3129c7e2f99a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa07d0a571c20dce1e909cb8996e0929a53313f724d1d2458044641807f68fe6d9ba04586ee2666e8f05b1ef3be790af9657c632f5d175a0eaf7454f8c5d262a944dea0ae7a64ae02766c0acc85472d31b9c93bf220416dc8788948ff5829d6dc78e5b4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008254601880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000003808025a0917307ef890dc3e22bff2a797d7c266edecedb8366cbf403c55979b653e260f1a0575b0724cb5cc7ccd29a9dcbd6a8a4c467e24205b997e511c3f65c7144895427c0c0", + "blockHeader": { + "parentHash": "0x45d21a9f12787d5bf2f8bc90aaaaf01763768446ce251d206ac9c3129c7e2f99", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x7d0a571c20dce1e909cb8996e0929a53313f724d1d2458044641807f68fe6d9b", + "transactionsTrie": "0x4586ee2666e8f05b1ef3be790af9657c632f5d175a0eaf7454f8c5d262a944de", + "receiptTrie": "0xae7a64ae02766c0acc85472d31b9c93bf220416dc8788948ff5829d6dc78e5b4", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5460", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x477d9454f3a89490355804f6f000e83ec56f8a4b6cf68e9f9cc752457553a509" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000003", + "value": "0x00", + "data": "0x", + "v": "0x25", + "r": "0x917307ef890dc3e22bff2a797d7c266edecedb8366cbf403c55979b653e260f1", + "s": "0x575b0724cb5cc7ccd29a9dcbd6a8a4c467e24205b997e511c3f65c7144895427", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x477d9454f3a89490355804f6f000e83ec56f8a4b6cf68e9f9cc752457553a509", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000003": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xfd20", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9cb440", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "036-fork=Cancun-precompile=4-amount=0": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a09efc51b080da5b2bb0ff05ebf2f78fe31ddc5ccd42b4296289aac6ba2e0b84a58080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000480", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x560f6bb07abf7cdcb77f50ce126890e00d89fd383e2b795c416a4ef0a02aff7e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x9efc51b080da5b2bb0ff05ebf2f78fe31ddc5ccd42b4296289aac6ba2e0b84a5", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x2bce483477d7e33f2eb2ac27592f58e00155af5e7204703f47856e8b2e29040e" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x00" + } + ] + }, + { + "rlp": "0xf902a5f9023ca02bce483477d7e33f2eb2ac27592f58e00155af5e7204703f47856e8b2e29040ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa09b3627918c143ca9885de3a60231d465afc91b1d84a6749b6dc55972ea8702c2a0e4bba4b238510fbd3e49e5fbae8e095648c1f930f929478d655e9a9675a991caa024272ea88c96e39c995959533df4889670e22f15e18ba3b0d73eaad6ad2da4beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252171880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000004808026a073c80bc780c918ec67ffa15782d359ede6c9a2b72ed81632e1ea8ecee232a1a1a06babe262b79e1ab9594602c2a0484b9b217b27683b86428a53da963dd49b25f1c0c0", + "blockHeader": { + "parentHash": "0x2bce483477d7e33f2eb2ac27592f58e00155af5e7204703f47856e8b2e29040e", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x9b3627918c143ca9885de3a60231d465afc91b1d84a6749b6dc55972ea8702c2", + "transactionsTrie": "0xe4bba4b238510fbd3e49e5fbae8e095648c1f930f929478d655e9a9675a991ca", + "receiptTrie": "0x24272ea88c96e39c995959533df4889670e22f15e18ba3b0d73eaad6ad2da4be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5217", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x1cd4983009fe5b9c8e110b750f1085c65eea094764276448f5b25201d3c8da5b" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000004", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x73c80bc780c918ec67ffa15782d359ede6c9a2b72ed81632e1ea8ecee232a1a1", + "s": "0x6babe262b79e1ab9594602c2a0484b9b217b27683b86428a53da963dd49b25f1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x1cd4983009fe5b9c8e110b750f1085c65eea094764276448f5b25201d3c8da5b", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf645", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9ccb1a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "037-fork=Cancun-precompile=4-amount=1": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a063383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x63383dbb17c22d07d7f7768d7e9b528638b61dea59f9484999ffb3463e1ee7d9", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a" + }, + "blocks": [ + { + "rlp": "0xf90259f9023aa075f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01d1c52868bb2af5d80546cf27c9cf5fba6f61202e2fabae2057517708821ae5ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a07516f2fde5a0f15d16e2e1e55feca7d83fa2ae90786ab69dabc17573b113bfd08080a00000000000000000000000000000000000000000000000000000000000000000c0c0d9d8808094000000000000000000000000000000000000000401", + "blockHeader": { + "parentHash": "0x75f987ffc84f12861a575922ee8620845a804f7c79f2dfeef0ca352d0fe1c46a", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1d1c52868bb2af5d80546cf27c9cf5fba6f61202e2fabae2057517708821ae5e", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x7516f2fde5a0f15d16e2e1e55feca7d83fa2ae90786ab69dabc17573b113bfd0", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x76d8d0d7fed577d919a9dd398a08cfd4559414d8e3c01e36adc40000c68e7e62" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000004", + "amount": "0x01" + } + ] + }, + { + "rlp": "0xf902a5f9023ca076d8d0d7fed577d919a9dd398a08cfd4559414d8e3c01e36adc40000c68e7e62a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa01be4b37f1f925d74586628f5238f3da68fe0b971d1c05906e15650b0ed70edf2a0e4bba4b238510fbd3e49e5fbae8e095648c1f930f929478d655e9a9675a991caa024272ea88c96e39c995959533df4889670e22f15e18ba3b0d73eaad6ad2da4beb9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800288016345785d8a00008252171880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000f862f860800a830186a0940000000000000000000000000000000000000004808026a073c80bc780c918ec67ffa15782d359ede6c9a2b72ed81632e1ea8ecee232a1a1a06babe262b79e1ab9594602c2a0484b9b217b27683b86428a53da963dd49b25f1c0c0", + "blockHeader": { + "parentHash": "0x76d8d0d7fed577d919a9dd398a08cfd4559414d8e3c01e36adc40000c68e7e62", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x1be4b37f1f925d74586628f5238f3da68fe0b971d1c05906e15650b0ed70edf2", + "transactionsTrie": "0xe4bba4b238510fbd3e49e5fbae8e095648c1f930f929478d655e9a9675a991ca", + "receiptTrie": "0x24272ea88c96e39c995959533df4889670e22f15e18ba3b0d73eaad6ad2da4be", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x02", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x5217", + "timestamp": "0x18", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x7cbdc0496f552377fd132fe5ef0e9fa8dd00d073ffd41b07db73f10631d58f54" + }, + "blocknumber": "2", + "transactions": [ + { + "type": "0x00", + "chainId": "0x01", + "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x0186a0", + "to": "0x0000000000000000000000000000000000000004", + "value": "0x00", + "data": "0x", + "v": "0x26", + "r": "0x73c80bc780c918ec67ffa15782d359ede6c9a2b72ed81632e1ea8ecee232a1a1", + "s": "0x6babe262b79e1ab9594602c2a0484b9b217b27683b86428a53da963dd49b25f1", + "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b" + } + ], + "uncleHeaders": [], + "withdrawals": [] + } + ], + "lastblockhash": "0x7cbdc0496f552377fd132fe5ef0e9fa8dd00d073ffd41b07db73f10631d58f54", + "pre": { + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000004": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c", + "0x18": "0x18" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0xf645", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de9ccb1a", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + } +} \ No newline at end of file diff --git a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json index 67c21ad024e..bf9c4ee7b80 100644 --- a/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json +++ b/tests/execution-spec-tests/shanghai/eip4895_withdrawals/withdrawals/zero_amount.json @@ -1,11 +1,32 @@ { "000-fork=Shanghai-two_withdrawals_no_value-two_withdrawals_no_value": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x92c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68a" + }, "blocks": [ { "rlp": "0xf9024ff90217a092c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0b228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0daacd8fe889693f7d20436d9c0c044b5e92cc17b57e379997273fc67fd2eb7b8c0c0f2d8808094000000000000000000000000000000000000010080d8808094000000000000000000000000000000000000020080", @@ -26,8 +47,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xcf71d8835e4d68ccf7ea1c3f74822ef6fef45a81a8ff66f81cdb22b69e707087", - "withdrawalsRoot": "0xdaacd8fe889693f7d20436d9c0c044b5e92cc17b57e379997273fc67fd2eb7b8" + "withdrawalsRoot": "0xdaacd8fe889693f7d20436d9c0c044b5e92cc17b57e379997273fc67fd2eb7b8", + "hash": "0xcf71d8835e4d68ccf7ea1c3f74822ef6fef45a81a8ff66f81cdb22b69e707087" }, "blocknumber": "1", "transactions": [], @@ -48,41 +69,19 @@ ] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x92c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68a", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xcf71d8835e4d68ccf7ea1c3f74822ef6fef45a81a8ff66f81cdb22b69e707087", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", "balance": "0x00", "code": "0x00", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -103,11 +102,32 @@ }, "001-fork=Shanghai-three_withdrawals_one_with_value-three_withdrawals_one_with_value": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x92c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68a" + }, "blocks": [ { "rlp": "0xf90269f90217a092c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa08831e9457509595fda8597eedd82b857e933b6d8a952172b4f26d9ff13cf07a3a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a04f53f4e1a5b1b94798c4c76e260a2bc0f8d56de9948133d2ec6d64ac0654091bc0c0f84bd8808094000000000000000000000000000000000000010080d8808094000000000000000000000000000000000000020080d8018094000000000000000000000000000000000000030001", @@ -128,8 +148,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x33f4290f23b1047da3fade52a99ac342f54441a4782cc124d6309c287816d022", - "withdrawalsRoot": "0x4f53f4e1a5b1b94798c4c76e260a2bc0f8d56de9948133d2ec6d64ac0654091b" + "withdrawalsRoot": "0x4f53f4e1a5b1b94798c4c76e260a2bc0f8d56de9948133d2ec6d64ac0654091b", + "hash": "0x33f4290f23b1047da3fade52a99ac342f54441a4782cc124d6309c287816d022" }, "blocknumber": "1", "transactions": [], @@ -156,41 +176,19 @@ ] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x92c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68a", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x33f4290f23b1047da3fade52a99ac342f54441a4782cc124d6309c287816d022", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", "balance": "0x00", "code": "0x00", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -217,11 +215,32 @@ }, "002-fork=Shanghai-four_withdrawals_one_with_value_one_with_max-four_withdrawals_one_with_value_one_with_max": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x92c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68a" + }, "blocks": [ { "rlp": "0xf9028af90217a092c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0388d845422607d682dcf9abac21921c2a73586dcf5d0dd7a3d51e8173646c778a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a08ef2a68d571f1ca21e12010d4066dd80a304c350ca9865e1f8ee28c1b0ac69eec0c0f86cd8808094000000000000000000000000000000000000010080d8808094000000000000000000000000000000000000020080d8018094000000000000000000000000000000000000030001e0028094000000000000000000000000000000000000040088ffffffffffffffff", @@ -242,8 +261,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0xe27d43917f4195d842bcd202a43bf5d78ab21744ff9549d1e8f3c63b2355632c", - "withdrawalsRoot": "0x8ef2a68d571f1ca21e12010d4066dd80a304c350ca9865e1f8ee28c1b0ac69ee" + "withdrawalsRoot": "0x8ef2a68d571f1ca21e12010d4066dd80a304c350ca9865e1f8ee28c1b0ac69ee", + "hash": "0xe27d43917f4195d842bcd202a43bf5d78ab21744ff9549d1e8f3c63b2355632c" }, "blocknumber": "1", "transactions": [], @@ -276,41 +295,19 @@ ] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x92c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68a", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0xe27d43917f4195d842bcd202a43bf5d78ab21744ff9549d1e8f3c63b2355632c", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", "balance": "0x00", "code": "0x00", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -343,11 +340,32 @@ }, "003-fork=Shanghai-four_withdrawals_one_with_value_one_with_max_reversed_order-four_withdrawals_one_with_value_one_with_max_reversed_order": { "_info": { - "filling-transition-tool": "evm version 1.12.1-unstable-c7b099b2", - "filling-block-build-tool": "evm version 1.12.1-unstable-c7b099b2", + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" }, + "network": "Shanghai", + "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xb228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1c", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x92c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68a" + }, "blocks": [ { "rlp": "0xf9028af90217a092c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68aa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0388d845422607d682dcf9abac21921c2a73586dcf5d0dd7a3d51e8173646c778a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a04cc233e96bc0e58fcbdbefd84fd24d427797ef318cf670eef284835597106bd2c0c0f86ce0808094000000000000000000000000000000000000040088ffffffffffffffffd8018094000000000000000000000000000000000000030001d8028094000000000000000000000000000000000000020080d8038094000000000000000000000000000000000000010080", @@ -368,8 +386,8 @@ "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", "nonce": "0x0000000000000000", "baseFeePerGas": "0x07", - "hash": "0x1438e7fc19ed4b5d34890f4552195d94a3f19b5a226098809afac7b1e1952a14", - "withdrawalsRoot": "0x4cc233e96bc0e58fcbdbefd84fd24d427797ef318cf670eef284835597106bd2" + "withdrawalsRoot": "0x4cc233e96bc0e58fcbdbefd84fd24d427797ef318cf670eef284835597106bd2", + "hash": "0x1438e7fc19ed4b5d34890f4552195d94a3f19b5a226098809afac7b1e1952a14" }, "blocknumber": "1", "transactions": [], @@ -402,41 +420,19 @@ ] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xb228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1c", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x00", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x92c10a6047a1f09b1880404ff9c31b51800c06f79cac79814cab3e0d69b5b68a", - "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" - }, - "genesisRLP": "0xf9021df90217a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0b228b06bb64fc1f4180b1c11e11072fc2cf167f8e917743b99aee39a861a3c1ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421c0c0c0", "lastblockhash": "0x1438e7fc19ed4b5d34890f4552195d94a3f19b5a226098809afac7b1e1952a14", - "network": "Shanghai", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x3635c9adc5dea00000", - "code": "0x", - "storage": {} - }, "0x0000000000000000000000000000000000000200": { "nonce": "0x00", "balance": "0x00", "code": "0x00", "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} } }, "postState": { @@ -466,5 +462,549 @@ } }, "sealEngine": "NoProof" + }, + "004-fork=Cancun-two_withdrawals_no_value-two_withdrawals_no_value": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02602c6f23e698a3ab4e6e74dd81e65a2f83e31ee2a5f69d9a5d62f2c110c97fda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2602c6f23e698a3ab4e6e74dd81e65a2f83e31ee2a5f69d9a5d62f2c110c97fd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3" + }, + "blocks": [ + { + "rlp": "0xf90272f9023aa0b1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa087bf9f4814046158768c26b3dcd2148b7064186e19fae91b9486cb29e527351aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a0daacd8fe889693f7d20436d9c0c044b5e92cc17b57e379997273fc67fd2eb7b88080a00000000000000000000000000000000000000000000000000000000000000000c0c0f2d8808094000000000000000000000000000000000000010080d8808094000000000000000000000000000000000000020080", + "blockHeader": { + "parentHash": "0xb1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x87bf9f4814046158768c26b3dcd2148b7064186e19fae91b9486cb29e527351a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0xdaacd8fe889693f7d20436d9c0c044b5e92cc17b57e379997273fc67fd2eb7b8", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb9268c3f88b522c96900eb1731873c257739ad72e78f02469d68041138736a34" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000100", + "amount": "0x00" + }, + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000200", + "amount": "0x00" + } + ] + } + ], + "lastblockhash": "0xb9268c3f88b522c96900eb1731873c257739ad72e78f02469d68041138736a34", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "005-fork=Cancun-three_withdrawals_one_with_value-three_withdrawals_one_with_value": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02602c6f23e698a3ab4e6e74dd81e65a2f83e31ee2a5f69d9a5d62f2c110c97fda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2602c6f23e698a3ab4e6e74dd81e65a2f83e31ee2a5f69d9a5d62f2c110c97fd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3" + }, + "blocks": [ + { + "rlp": "0xf9028cf9023aa0b1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa015bf59c89432deaad8b9935f2ecc276336a0ca8a7bd24da9b7f0f3ff8e1dcf64a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a04f53f4e1a5b1b94798c4c76e260a2bc0f8d56de9948133d2ec6d64ac0654091b8080a00000000000000000000000000000000000000000000000000000000000000000c0c0f84bd8808094000000000000000000000000000000000000010080d8808094000000000000000000000000000000000000020080d8018094000000000000000000000000000000000000030001", + "blockHeader": { + "parentHash": "0xb1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x15bf59c89432deaad8b9935f2ecc276336a0ca8a7bd24da9b7f0f3ff8e1dcf64", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x4f53f4e1a5b1b94798c4c76e260a2bc0f8d56de9948133d2ec6d64ac0654091b", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x38cea9a189180d3447fe1c3bf10523922b94c023c812b426c8a7ea618d40b5cf" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000100", + "amount": "0x00" + }, + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000200", + "amount": "0x00" + }, + { + "index": "0x01", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000300", + "amount": "0x01" + } + ] + } + ], + "lastblockhash": "0x38cea9a189180d3447fe1c3bf10523922b94c023c812b426c8a7ea618d40b5cf", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x0000000000000000000000000000000000000300": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "006-fork=Cancun-four_withdrawals_one_with_value_one_with_max-four_withdrawals_one_with_value_one_with_max": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02602c6f23e698a3ab4e6e74dd81e65a2f83e31ee2a5f69d9a5d62f2c110c97fda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2602c6f23e698a3ab4e6e74dd81e65a2f83e31ee2a5f69d9a5d62f2c110c97fd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3" + }, + "blocks": [ + { + "rlp": "0xf902adf9023aa0b1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d89d2af1757320d40d0794956bff92e7f603b96505a0f0bad0fc269f4ba1b126a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a08ef2a68d571f1ca21e12010d4066dd80a304c350ca9865e1f8ee28c1b0ac69ee8080a00000000000000000000000000000000000000000000000000000000000000000c0c0f86cd8808094000000000000000000000000000000000000010080d8808094000000000000000000000000000000000000020080d8018094000000000000000000000000000000000000030001e0028094000000000000000000000000000000000000040088ffffffffffffffff", + "blockHeader": { + "parentHash": "0xb1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd89d2af1757320d40d0794956bff92e7f603b96505a0f0bad0fc269f4ba1b126", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x8ef2a68d571f1ca21e12010d4066dd80a304c350ca9865e1f8ee28c1b0ac69ee", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x541fc33987c2b6219623e8a4a326d4a503c90d922c0b61473817b348869c7989" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000100", + "amount": "0x00" + }, + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000200", + "amount": "0x00" + }, + { + "index": "0x01", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000300", + "amount": "0x01" + }, + { + "index": "0x02", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000400", + "amount": "0xffffffffffffffff" + } + ] + } + ], + "lastblockhash": "0x541fc33987c2b6219623e8a4a326d4a503c90d922c0b61473817b348869c7989", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x0000000000000000000000000000000000000300": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x0000000000000000000000000000000000000400": { + "nonce": "0x00", + "balance": "0x3b9ac9ffffffffffc4653600", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" + }, + "007-fork=Cancun-four_withdrawals_one_with_value_one_with_max_reversed_order-four_withdrawals_one_with_value_one_with_max_reversed_order": { + "_info": { + "filling-transition-tool": "evm version 1.13.5-unstable-4d161dee-20231019", + "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4895.md", + "reference-spec-version": "81af3b60b632bc9c03513d1d137f25410e3f4d34" + }, + "network": "Cancun", + "genesisRLP": "0xf90240f9023aa00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a02602c6f23e698a3ab4e6e74dd81e65a2f83e31ee2a5f69d9a5d62f2c110c97fda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808088016345785d8a0000808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000c0c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x2602c6f23e698a3ab4e6e74dd81e65a2f83e31ee2a5f69d9a5d62f2c110c97fd", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0xb1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3" + }, + "blocks": [ + { + "rlp": "0xf902adf9023aa0b1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0d89d2af1757320d40d0794956bff92e7f603b96505a0f0bad0fc269f4ba1b126a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800188016345785d8a0000800c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a04cc233e96bc0e58fcbdbefd84fd24d427797ef318cf670eef284835597106bd28080a00000000000000000000000000000000000000000000000000000000000000000c0c0f86ce0808094000000000000000000000000000000000000040088ffffffffffffffffd8018094000000000000000000000000000000000000030001d8028094000000000000000000000000000000000000020080d8038094000000000000000000000000000000000000010080", + "blockHeader": { + "parentHash": "0xb1813b0488d3cdb2b96f11a034ba27e415a626125e3210aeecaaec3cd1a22ec3", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0xd89d2af1757320d40d0794956bff92e7f603b96505a0f0bad0fc269f4ba1b126", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x01", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x0c", + "extraData": "0x", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x4cc233e96bc0e58fcbdbefd84fd24d427797ef318cf670eef284835597106bd2", + "blobGasUsed": "0x00", + "excessBlobGas": "0x00", + "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "hash": "0x3d5085d9a98a6a574b700acbb35ad587b7086cf782efa37cde8c403c837e1001" + }, + "blocknumber": "1", + "transactions": [], + "uncleHeaders": [], + "withdrawals": [ + { + "index": "0x00", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000400", + "amount": "0xffffffffffffffff" + }, + { + "index": "0x01", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000300", + "amount": "0x01" + }, + { + "index": "0x02", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000200", + "amount": "0x00" + }, + { + "index": "0x03", + "validatorIndex": "0x00", + "address": "0x0000000000000000000000000000000000000100", + "amount": "0x00" + } + ] + } + ], + "lastblockhash": "0x3d5085d9a98a6a574b700acbb35ad587b7086cf782efa37cde8c403c837e1001", + "pre": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x0000000000000000000000000000000000000200": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x00", + "storage": {} + }, + "0x0000000000000000000000000000000000000300": { + "nonce": "0x00", + "balance": "0x3b9aca00", + "code": "0x", + "storage": {} + }, + "0x0000000000000000000000000000000000000400": { + "nonce": "0x00", + "balance": "0x3b9ac9ffffffffffc4653600", + "code": "0x", + "storage": {} + }, + "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x0c": "0x0c" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "sealEngine": "NoProof" } } \ No newline at end of file diff --git a/tests/gen_btheader.go b/tests/gen_btheader.go index b6187760f75..521f77eb667 100644 --- a/tests/gen_btheader.go +++ b/tests/gen_btheader.go @@ -18,23 +18,27 @@ var _ = (*btHeaderMarshaling)(nil) // MarshalJSON marshals as JSON. func (b btHeader) MarshalJSON() ([]byte, error) { type btHeader struct { - Bloom types.Bloom - Coinbase libcommon.Address - MixHash libcommon.Hash - Nonce types.BlockNonce - Number *math.HexOrDecimal256 - Hash libcommon.Hash - ParentHash libcommon.Hash - ReceiptTrie libcommon.Hash - StateRoot libcommon.Hash - TransactionsTrie libcommon.Hash - UncleHash libcommon.Hash - ExtraData hexutility.Bytes - Difficulty *math.HexOrDecimal256 - GasLimit math.HexOrDecimal64 - GasUsed math.HexOrDecimal64 - Timestamp math.HexOrDecimal64 - BaseFee *math.HexOrDecimal256 + Bloom types.Bloom + Coinbase libcommon.Address + MixHash libcommon.Hash + Nonce types.BlockNonce + Number *math.HexOrDecimal256 + Hash libcommon.Hash + ParentHash libcommon.Hash + ReceiptTrie libcommon.Hash + StateRoot libcommon.Hash + TransactionsTrie libcommon.Hash + UncleHash libcommon.Hash + ExtraData hexutility.Bytes + Difficulty *math.HexOrDecimal256 + GasLimit math.HexOrDecimal64 + GasUsed math.HexOrDecimal64 + Timestamp math.HexOrDecimal64 + BaseFeePerGas *math.HexOrDecimal256 + WithdrawalsRoot *libcommon.Hash + BlobGasUsed *math.HexOrDecimal64 + ExcessBlobGas *math.HexOrDecimal64 + ParentBeaconBlockRoot *libcommon.Hash } var enc btHeader enc.Bloom = b.Bloom @@ -53,30 +57,38 @@ func (b btHeader) MarshalJSON() ([]byte, error) { enc.GasLimit = math.HexOrDecimal64(b.GasLimit) enc.GasUsed = math.HexOrDecimal64(b.GasUsed) enc.Timestamp = math.HexOrDecimal64(b.Timestamp) - enc.BaseFee = (*math.HexOrDecimal256)(b.BaseFee) + enc.BaseFeePerGas = (*math.HexOrDecimal256)(b.BaseFeePerGas) + enc.WithdrawalsRoot = b.WithdrawalsRoot + enc.BlobGasUsed = (*math.HexOrDecimal64)(b.BlobGasUsed) + enc.ExcessBlobGas = (*math.HexOrDecimal64)(b.ExcessBlobGas) + enc.ParentBeaconBlockRoot = b.ParentBeaconBlockRoot return json.Marshal(&enc) } // UnmarshalJSON unmarshals from JSON. func (b *btHeader) UnmarshalJSON(input []byte) error { type btHeader struct { - Bloom *types.Bloom - Coinbase *libcommon.Address - MixHash *libcommon.Hash - Nonce *types.BlockNonce - Number *math.HexOrDecimal256 - Hash *libcommon.Hash - ParentHash *libcommon.Hash - ReceiptTrie *libcommon.Hash - StateRoot *libcommon.Hash - TransactionsTrie *libcommon.Hash - UncleHash *libcommon.Hash - ExtraData *hexutility.Bytes - Difficulty *math.HexOrDecimal256 - GasLimit *math.HexOrDecimal64 - GasUsed *math.HexOrDecimal64 - Timestamp *math.HexOrDecimal64 - BaseFee *math.HexOrDecimal256 `json:"baseFeePerGas"` + Bloom *types.Bloom + Coinbase *libcommon.Address + MixHash *libcommon.Hash + Nonce *types.BlockNonce + Number *math.HexOrDecimal256 + Hash *libcommon.Hash + ParentHash *libcommon.Hash + ReceiptTrie *libcommon.Hash + StateRoot *libcommon.Hash + TransactionsTrie *libcommon.Hash + UncleHash *libcommon.Hash + ExtraData *hexutility.Bytes + Difficulty *math.HexOrDecimal256 + GasLimit *math.HexOrDecimal64 + GasUsed *math.HexOrDecimal64 + Timestamp *math.HexOrDecimal64 + BaseFeePerGas *math.HexOrDecimal256 + WithdrawalsRoot *libcommon.Hash + BlobGasUsed *math.HexOrDecimal64 + ExcessBlobGas *math.HexOrDecimal64 + ParentBeaconBlockRoot *libcommon.Hash } var dec btHeader if err := json.Unmarshal(input, &dec); err != nil { @@ -130,8 +142,20 @@ func (b *btHeader) UnmarshalJSON(input []byte) error { if dec.Timestamp != nil { b.Timestamp = uint64(*dec.Timestamp) } - if dec.BaseFee != nil { - b.BaseFee = (*big.Int)(dec.BaseFee) + if dec.BaseFeePerGas != nil { + b.BaseFeePerGas = (*big.Int)(dec.BaseFeePerGas) + } + if dec.WithdrawalsRoot != nil { + b.WithdrawalsRoot = dec.WithdrawalsRoot + } + if dec.BlobGasUsed != nil { + b.BlobGasUsed = (*uint64)(dec.BlobGasUsed) + } + if dec.ExcessBlobGas != nil { + b.ExcessBlobGas = (*uint64)(dec.ExcessBlobGas) + } + if dec.ParentBeaconBlockRoot != nil { + b.ParentBeaconBlockRoot = dec.ParentBeaconBlockRoot } return nil } diff --git a/tests/init.go b/tests/init.go index 22fde55b043..6629cbb2d5d 100644 --- a/tests/init.go +++ b/tests/init.go @@ -291,6 +291,25 @@ var Forks = map[string]*chain.Config{ ShanghaiTime: big.NewInt(0), CancunTime: big.NewInt(0), }, + "Cancun+1153": { + ChainID: big.NewInt(1), + HomesteadBlock: big.NewInt(0), + TangerineWhistleBlock: big.NewInt(0), + SpuriousDragonBlock: big.NewInt(0), + ByzantiumBlock: big.NewInt(0), + ConstantinopleBlock: big.NewInt(0), + PetersburgBlock: big.NewInt(0), + IstanbulBlock: big.NewInt(0), + MuirGlacierBlock: big.NewInt(0), + BerlinBlock: big.NewInt(0), + LondonBlock: big.NewInt(0), + ArrowGlacierBlock: big.NewInt(0), + GrayGlacierBlock: big.NewInt(0), + TerminalTotalDifficulty: big.NewInt(0), + TerminalTotalDifficultyPassed: true, + ShanghaiTime: big.NewInt(0), + CancunTime: big.NewInt(0), + }, "ShanghaiToCancunAtTime15k": { ChainID: big.NewInt(1), HomesteadBlock: big.NewInt(0), diff --git a/tests/state_test.go b/tests/state_test.go index 8c927714071..844288364c2 100644 --- a/tests/state_test.go +++ b/tests/state_test.go @@ -28,9 +28,9 @@ import ( "testing" "github.com/ledgerwatch/erigon-lib/common/datadir" + "github.com/ledgerwatch/erigon/core/state/temporal" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/core/state/temporal" "github.com/ledgerwatch/erigon/core/vm" "github.com/ledgerwatch/erigon/eth/tracers/logger" ) @@ -39,7 +39,7 @@ func TestState(t *testing.T) { defer log.Root().SetHandler(log.Root().GetHandler()) log.Root().SetHandler(log.LvlFilterHandler(log.LvlError, log.StderrHandler)) if runtime.GOOS == "windows" { - t.Skip("fix me on win please") // it's too slow on win, need generally improve speed of this tests + t.Skip("fix me on win please") // it's too slow on win and stops on macos, need generally improve speed of this tests } //t.Parallel() @@ -49,12 +49,12 @@ func TestState(t *testing.T) { st.skipLoad(`^stTimeConsuming/`) st.skipLoad(`.*vmPerformance/loop.*`) + _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil) st.walk(t, stateTestDir, func(t *testing.T, name string, test *StateTest) { for _, subtest := range test.Subtests() { subtest := subtest key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index) t.Run(key, func(t *testing.T) { - _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil) withTrace(t, func(vmconfig vm.Config) error { tx, err := db.BeginRw(context.Background()) if err != nil { diff --git a/tests/state_test_util.go b/tests/state_test_util.go index 119f30b6fc1..c10b4d69184 100644 --- a/tests/state_test_util.go +++ b/tests/state_test_util.go @@ -30,7 +30,6 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/fixedgas" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/kv" @@ -249,7 +248,7 @@ func (t *StateTest) RunNoVerify(tx kv.RwTx, subtest StateSubtest, vmconfig vm.Co // Execute the message. snapshot := statedb.Snapshot() gaspool := new(core.GasPool) - gaspool.AddGas(block.GasLimit()).AddBlobGas(fixedgas.MaxBlobGasPerBlock) + gaspool.AddGas(block.GasLimit()).AddBlobGas(config.GetMaxBlobGasPerBlock()) if _, err = core.ApplyMessage(evm, msg, gaspool, true /* refunds */, false /* gasBailout */); err != nil { statedb.RevertToSnapshot(snapshot) } @@ -265,8 +264,8 @@ func (t *StateTest) RunNoVerify(tx kv.RwTx, subtest StateSubtest, vmconfig vm.Co if err != nil { return nil, libcommon.Hash{}, err } - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) for k, v, err := c.First(); k != nil; k, v, err = c.Next() { if err != nil { return nil, libcommon.Hash{}, fmt.Errorf("interate over plain state: %w", err) @@ -289,11 +288,11 @@ func (t *StateTest) RunNoVerify(tx kv.RwTx, subtest StateSubtest, vmconfig vm.Co h.Sha.Write(k[length.Addr+length.Incarnation:]) //nolint:errcheck h.Sha.Read(newK[length.Hash+length.Incarnation:]) - if err = tx.Put(kv.HashedStorage, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedStorage, newK, libcommon.CopyBytes(v)); err != nil { return nil, libcommon.Hash{}, fmt.Errorf("insert hashed key: %w", err) } } else { - if err = tx.Put(kv.HashedAccounts, newK, common.CopyBytes(v)); err != nil { + if err = tx.Put(kv.HashedAccounts, newK, libcommon.CopyBytes(v)); err != nil { return nil, libcommon.Hash{}, fmt.Errorf("insert hashed key: %w", err) } } diff --git a/tests/statedb_chain_test.go b/tests/statedb_chain_test.go index 1334199e299..bc2be827492 100644 --- a/tests/statedb_chain_test.go +++ b/tests/statedb_chain_test.go @@ -24,6 +24,7 @@ import ( "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/accounts/abi/bind" @@ -98,42 +99,46 @@ func TestSelfDestructReceive(t *testing.T) { t.Fatalf("generate blocks: %v", err) } - tx, err := m.DB.BeginRw(context.Background()) - if err != nil { + if err := m.DB.View(context.Background(), func(tx kv.Tx) error { + st := state.New(m.NewStateReader(tx)) + if !st.Exist(address) { + t.Error("expected account to exist") + } + if st.Exist(contractAddress) { + t.Error("expected contractAddress to not exist before block 0", contractAddress.String()) + } + return nil + }); err != nil { panic(err) } - defer tx.Rollback() - - st := state.New(m.NewStateReader(tx)) - if !st.Exist(address) { - t.Error("expected account to exist") - } - if st.Exist(contractAddress) { - t.Error("expected contractAddress to not exist before block 0", contractAddress.String()) - } // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), tx); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } // BLOCK 2 - if err = m.InsertChain(chain.Slice(1, 2), tx); err != nil { + if err = m.InsertChain(chain.Slice(1, 2)); err != nil { t.Fatal(err) } - // If we got this far, the newly created blockchain (with empty trie cache) loaded trie from the database - // and that means that the state of the accounts written in the first block was correct. - // This test checks that the storage root of the account is properly set to the root of the empty tree - st = state.New(m.NewStateReader(tx)) - if !st.Exist(address) { - t.Error("expected account to exist") - } - if !st.Exist(contractAddress) { - t.Error("expected contractAddress to exist at the block 2", contractAddress.String()) - } - if len(st.GetCode(contractAddress)) != 0 { - t.Error("expected empty code in contract at block 2", contractAddress.String()) + if err := m.DB.View(context.Background(), func(tx kv.Tx) error { + // If we got this far, the newly created blockchain (with empty trie cache) loaded trie from the database + // and that means that the state of the accounts written in the first block was correct. + // This test checks that the storage root of the account is properly set to the root of the empty tree + st := state.New(m.NewStateReader(tx)) + if !st.Exist(address) { + t.Error("expected account to exist") + } + if !st.Exist(contractAddress) { + t.Error("expected contractAddress to exist at the block 2", contractAddress.String()) + } + if len(st.GetCode(contractAddress)) != 0 { + t.Error("expected empty code in contract at block 2", contractAddress.String()) + } + return nil + }); err != nil { + panic(err) } } diff --git a/tests/statedb_insert_chain_transaction_test.go b/tests/statedb_insert_chain_transaction_test.go index 1f8bc4ff7ac..8343762197d 100644 --- a/tests/statedb_insert_chain_transaction_test.go +++ b/tests/statedb_insert_chain_transaction_test.go @@ -30,7 +30,7 @@ func TestInsertIncorrectStateRootDifferentAccounts(t *testing.T) { fromKey := data.keys[0] to := libcommon.Address{1} - m, chain, err := genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err := GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(1000)), fromKey, @@ -54,12 +54,12 @@ func TestInsertIncorrectStateRootDifferentAccounts(t *testing.T) { incorrectBlock := types.NewBlock(&incorrectHeader, chain.Blocks[0].Transactions(), chain.Blocks[0].Uncles(), chain.Receipts[0], nil) incorrectChain := &core.ChainPack{Blocks: []*types.Block{incorrectBlock}, Headers: []*types.Header{&incorrectHeader}, TopBlock: incorrectBlock} - if err = m.InsertChain(incorrectChain, nil); err == nil { + if err = m.InsertChain(incorrectChain); err == nil { t.Fatal("should fail") } // insert a correct block - m, chain, err = genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err = GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(data.addresses[1], to, uint256.NewInt(5000)), data.keys[1], @@ -69,14 +69,13 @@ func TestInsertIncorrectStateRootDifferentAccounts(t *testing.T) { t.Fatal(err) } + if err = m.InsertChain(chain); err != nil { + t.Fatal(err) + } tx, err := m.DB.BeginRw(context.Background()) require.NoError(t, err) defer tx.Rollback() - if err = m.InsertChain(chain, tx); err != nil { - t.Fatal(err) - } - st := state.New(m.NewStateReader(tx)) if !st.Exist(to) { t.Error("expected account to exist") @@ -99,7 +98,7 @@ func TestInsertIncorrectStateRootSameAccount(t *testing.T) { fromKey := data.keys[0] to := libcommon.Address{1} - m, chain, err := genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err := GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(1000)), fromKey, @@ -122,12 +121,12 @@ func TestInsertIncorrectStateRootSameAccount(t *testing.T) { incorrectBlock := types.NewBlock(&incorrectHeader, chain.Blocks[0].Transactions(), chain.Blocks[0].Uncles(), chain.Receipts[0], nil) incorrectChain := &core.ChainPack{Blocks: []*types.Block{incorrectBlock}, Headers: []*types.Header{&incorrectHeader}, TopBlock: incorrectBlock} - if err = m.InsertChain(incorrectChain, nil); err == nil { + if err = m.InsertChain(incorrectChain); err == nil { t.Fatal("should fail") } // insert a correct block - m, chain, err = genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err = GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(5000)), fromKey, @@ -137,7 +136,7 @@ func TestInsertIncorrectStateRootSameAccount(t *testing.T) { t.Fatal(err) } - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatal(err) } @@ -164,7 +163,7 @@ func TestInsertIncorrectStateRootSameAccountSameAmount(t *testing.T) { fromKey := data.keys[0] to := libcommon.Address{1} - m, chain, err := genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err := GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(1000)), fromKey, @@ -184,12 +183,12 @@ func TestInsertIncorrectStateRootSameAccountSameAmount(t *testing.T) { incorrectBlock := types.NewBlock(&incorrectHeader, chain.Blocks[0].Transactions(), chain.Blocks[0].Uncles(), chain.Receipts[0], nil) incorrectChain := &core.ChainPack{Blocks: []*types.Block{incorrectBlock}, Headers: []*types.Header{&incorrectHeader}, TopBlock: incorrectBlock} - if err = m.InsertChain(incorrectChain, nil); err == nil { + if err = m.InsertChain(incorrectChain); err == nil { t.Fatal("should fail") } // insert a correct block - m, chain, err = genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err = GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(1000)), fromKey, @@ -199,7 +198,7 @@ func TestInsertIncorrectStateRootSameAccountSameAmount(t *testing.T) { t.Fatal(err) } - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatal(err) } @@ -226,7 +225,7 @@ func TestInsertIncorrectStateRootAllFundsRoot(t *testing.T) { fromKey := data.keys[0] to := libcommon.Address{1} - m, chain, err := genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err := GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(1000)), fromKey, @@ -246,12 +245,12 @@ func TestInsertIncorrectStateRootAllFundsRoot(t *testing.T) { incorrectBlock := types.NewBlock(&incorrectHeader, chain.Blocks[0].Transactions(), chain.Blocks[0].Uncles(), chain.Receipts[0], nil) incorrectChain := &core.ChainPack{Blocks: []*types.Block{incorrectBlock}, Headers: []*types.Header{&incorrectHeader}, TopBlock: incorrectBlock} - if err = m.InsertChain(incorrectChain, nil); err == nil { + if err = m.InsertChain(incorrectChain); err == nil { t.Fatal("should fail") } // insert a correct block - m, chain, err = genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err = GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(1000)), fromKey, @@ -261,7 +260,7 @@ func TestInsertIncorrectStateRootAllFundsRoot(t *testing.T) { t.Fatal(err) } - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatal(err) } @@ -288,7 +287,7 @@ func TestInsertIncorrectStateRootAllFunds(t *testing.T) { fromKey := data.keys[0] to := libcommon.Address{1} - m, chain, err := genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err := GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(3000)), fromKey, @@ -308,12 +307,12 @@ func TestInsertIncorrectStateRootAllFunds(t *testing.T) { incorrectBlock := types.NewBlock(&incorrectHeader, chain.Blocks[0].Transactions(), chain.Blocks[0].Uncles(), chain.Receipts[0], nil) incorrectChain := &core.ChainPack{Blocks: []*types.Block{incorrectBlock}, Headers: []*types.Header{&incorrectHeader}, TopBlock: incorrectBlock} - if err = m.InsertChain(incorrectChain, nil); err == nil { + if err = m.InsertChain(incorrectChain); err == nil { t.Fatal("should fail") } // insert a correct block - m, chain, err = genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err = GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(1000)), fromKey, @@ -323,7 +322,7 @@ func TestInsertIncorrectStateRootAllFunds(t *testing.T) { t.Fatal(err) } - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatal(err) } @@ -353,7 +352,7 @@ func TestAccountDeployIncorrectRoot(t *testing.T) { var contractAddress libcommon.Address eipContract := new(contracts.Testcontract) - m, chain, err := genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err := GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(10)), fromKey, @@ -368,7 +367,7 @@ func TestAccountDeployIncorrectRoot(t *testing.T) { } // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -390,7 +389,7 @@ func TestAccountDeployIncorrectRoot(t *testing.T) { incorrectChain := &core.ChainPack{Blocks: []*types.Block{incorrectBlock}, Headers: []*types.Header{&incorrectHeader}, TopBlock: incorrectBlock} // BLOCK 2 - INCORRECT - if err = m.InsertChain(incorrectChain, nil); err == nil { + if err = m.InsertChain(incorrectChain); err == nil { t.Fatal("should fail") } @@ -408,7 +407,7 @@ func TestAccountDeployIncorrectRoot(t *testing.T) { require.NoError(t, err) // BLOCK 2 - CORRECT - if err = m.InsertChain(chain.Slice(1, 2), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, 2)); err != nil { t.Fatal(err) } @@ -435,7 +434,7 @@ func TestAccountCreateIncorrectRoot(t *testing.T) { var contractAddress libcommon.Address eipContract := new(contracts.Testcontract) - m, chain, err := genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err := GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(10)), fromKey, @@ -454,7 +453,7 @@ func TestAccountCreateIncorrectRoot(t *testing.T) { } // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -473,7 +472,7 @@ func TestAccountCreateIncorrectRoot(t *testing.T) { require.NoError(t, err) // BLOCK 2 - if err = m.InsertChain(chain.Slice(1, 2), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, 2)); err != nil { t.Fatal(err) } err = m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -496,12 +495,12 @@ func TestAccountCreateIncorrectRoot(t *testing.T) { incorrectBlock := types.NewBlock(&incorrectHeader, chain.Blocks[2].Transactions(), chain.Blocks[2].Uncles(), chain.Receipts[2], nil) incorrectChain := &core.ChainPack{Blocks: []*types.Block{incorrectBlock}, Headers: []*types.Header{&incorrectHeader}, TopBlock: incorrectBlock} - if err = m.InsertChain(incorrectChain, nil); err == nil { + if err = m.InsertChain(incorrectChain); err == nil { t.Fatal("should fail") } // BLOCK 3 - if err = m.InsertChain(chain.Slice(2, 3), nil); err != nil { + if err = m.InsertChain(chain.Slice(2, 3)); err != nil { t.Fatal(err) } } @@ -515,7 +514,7 @@ func TestAccountUpdateIncorrectRoot(t *testing.T) { var contractAddress libcommon.Address eipContract := new(contracts.Testcontract) - m, chain, err := genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err := GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(10)), fromKey, @@ -538,7 +537,7 @@ func TestAccountUpdateIncorrectRoot(t *testing.T) { } // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -557,7 +556,7 @@ func TestAccountUpdateIncorrectRoot(t *testing.T) { require.NoError(t, err) // BLOCK 2 - if err = m.InsertChain(chain.Slice(1, 2), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, 2)); err != nil { t.Fatal(err) } @@ -575,7 +574,7 @@ func TestAccountUpdateIncorrectRoot(t *testing.T) { require.NoError(t, err) // BLOCK 3 - if err = m.InsertChain(chain.Slice(2, 3), nil); err != nil { + if err = m.InsertChain(chain.Slice(2, 3)); err != nil { t.Fatal(err) } @@ -585,12 +584,12 @@ func TestAccountUpdateIncorrectRoot(t *testing.T) { incorrectBlock := types.NewBlock(&incorrectHeader, chain.Blocks[3].Transactions(), chain.Blocks[3].Uncles(), chain.Receipts[3], nil) incorrectChain := &core.ChainPack{Blocks: []*types.Block{incorrectBlock}, Headers: []*types.Header{&incorrectHeader}, TopBlock: incorrectBlock} - if err = m.InsertChain(incorrectChain, nil); err == nil { + if err = m.InsertChain(incorrectChain); err == nil { t.Fatal("should fail") } // BLOCK 4 - if err = m.InsertChain(chain.Slice(3, 4), nil); err != nil { + if err = m.InsertChain(chain.Slice(3, 4)); err != nil { t.Fatal(err) } } @@ -604,7 +603,7 @@ func TestAccountDeleteIncorrectRoot(t *testing.T) { var contractAddress libcommon.Address eipContract := new(contracts.Testcontract) - m, chain, err := genBlocks(t, data.genesisSpec, map[int]txn{ + m, chain, err := GenerateBlocks(t, data.genesisSpec, map[int]txn{ 0: { getBlockTx(from, to, uint256.NewInt(10)), fromKey, @@ -627,7 +626,7 @@ func TestAccountDeleteIncorrectRoot(t *testing.T) { } // BLOCK 1 - if err = m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatal(err) } @@ -645,7 +644,7 @@ func TestAccountDeleteIncorrectRoot(t *testing.T) { require.NoError(t, err) // BLOCK 2 - if err = m.InsertChain(chain.Slice(1, 2), nil); err != nil { + if err = m.InsertChain(chain.Slice(1, 2)); err != nil { t.Fatal(err) } @@ -663,7 +662,7 @@ func TestAccountDeleteIncorrectRoot(t *testing.T) { require.NoError(t, err) // BLOCK 3 - if err = m.InsertChain(chain.Slice(2, 3), nil); err != nil { + if err = m.InsertChain(chain.Slice(2, 3)); err != nil { t.Fatal(err) } @@ -672,12 +671,12 @@ func TestAccountDeleteIncorrectRoot(t *testing.T) { incorrectHeader.Root = chain.Headers[1].Root incorrectBlock := types.NewBlock(&incorrectHeader, chain.Blocks[3].Transactions(), chain.Blocks[3].Uncles(), chain.Receipts[3], nil) incorrectChain := &core.ChainPack{Blocks: []*types.Block{incorrectBlock}, Headers: []*types.Header{&incorrectHeader}, TopBlock: incorrectBlock} - if err = m.InsertChain(incorrectChain, nil); err == nil { + if err = m.InsertChain(incorrectChain); err == nil { t.Fatal("should fail") } // BLOCK 4 - if err = m.InsertChain(chain.Slice(3, 4), nil); err != nil { + if err = m.InsertChain(chain.Slice(3, 4)); err != nil { t.Fatal(err) } } @@ -738,7 +737,7 @@ type txn struct { key *ecdsa.PrivateKey } -func genBlocks(t *testing.T, gspec *types.Genesis, txs map[int]txn) (*mock.MockSentry, *core.ChainPack, error) { +func GenerateBlocks(t *testing.T, gspec *types.Genesis, txs map[int]txn) (*mock.MockSentry, *core.ChainPack, error) { key, _ := crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") m := mock.MockWithGenesis(t, gspec, key, false) diff --git a/tests/testdata b/tests/testdata index 9b6382b1221..06e276776bc 160000 --- a/tests/testdata +++ b/tests/testdata @@ -1 +1 @@ -Subproject commit 9b6382b122140b5479a4ff6152ccf1459440ddff +Subproject commit 06e276776bc87817c38f6efb492bf6f4527fa904 diff --git a/tools.go b/tools.go index 6d4624dd2c0..40a333de9d3 100644 --- a/tools.go +++ b/tools.go @@ -17,9 +17,9 @@ package tools // build tag 'trick_go_mod_tidy' - is used to hide warnings of IDEA (because we can't import `main` packages in go) import ( + _ "github.com/erigontech/mdbx-go" + _ "github.com/erigontech/mdbx-go/mdbxdist" _ "github.com/fjl/gencodec" - _ "github.com/torquem-ch/mdbx-go" - _ "github.com/torquem-ch/mdbx-go/mdbxdist" _ "github.com/ugorji/go/codec/codecgen" _ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" ) diff --git a/turbo/adapter/ethapi/api.go b/turbo/adapter/ethapi/api.go index af9971c51fc..c8084e11622 100644 --- a/turbo/adapter/ethapi/api.go +++ b/turbo/adapter/ethapi/api.go @@ -19,6 +19,7 @@ package ethapi import ( "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/holiman/uint256" @@ -28,7 +29,6 @@ import ( "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/accounts/abi" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" @@ -47,6 +47,7 @@ type CallArgs struct { Value *hexutil.Big `json:"value"` Nonce *hexutil.Uint64 `json:"nonce"` Data *hexutility.Bytes `json:"data"` + Input *hexutility.Bytes `json:"input"` AccessList *types2.AccessList `json:"accessList"` ChainID *hexutil.Big `json:"chainId,omitempty"` } @@ -142,7 +143,9 @@ func (args *CallArgs) ToMessage(globalGasCap uint64, baseFee *uint256.Int) (type } } var data []byte - if args.Data != nil { + if args.Input != nil { + data = *args.Input + } else if args.Data != nil { data = *args.Data } var accessList types2.AccessList @@ -292,6 +295,9 @@ func RPCMarshalHeader(head *types.Header) map[string]interface{} { if head.ExcessBlobGas != nil { result["excessBlobGas"] = (*hexutil.Uint64)(head.ExcessBlobGas) } + if head.ParentBeaconBlockRoot != nil { + result["parentBeaconBlockRoot"] = head.ParentBeaconBlockRoot + } return result } diff --git a/turbo/adapter/ethapi/get_proof.go b/turbo/adapter/ethapi/get_proof.go index 49832b7f910..ddeda5bd466 100644 --- a/turbo/adapter/ethapi/get_proof.go +++ b/turbo/adapter/ethapi/get_proof.go @@ -2,11 +2,11 @@ package ethapi import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/trie" ) diff --git a/turbo/app/backup_cmd.go b/turbo/app/backup_cmd.go index 5da69d0a87f..92def80a850 100644 --- a/turbo/app/backup_cmd.go +++ b/turbo/app/backup_cmd.go @@ -2,6 +2,7 @@ package app import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common" "os" "path/filepath" @@ -13,7 +14,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/utils/flags" "github.com/ledgerwatch/erigon/turbo/backup" "github.com/ledgerwatch/erigon/turbo/debug" - "github.com/ledgerwatch/erigon/turbo/logging" "github.com/urfave/cli/v2" ) @@ -44,7 +44,7 @@ TODO: &BackupLabelsFlag, &BackupTablesFlag, &WarmupThreadsFlag, - }, debug.Flags, logging.Flags), + }), } var ( @@ -76,7 +76,7 @@ CloudDrives (and ssd) have bad-latency and good-parallel-throughput - then havin ) func doBackup(cliCtx *cli.Context) error { - logger, err := debug.Setup(cliCtx, true /* rootLogger */) + logger, _, err := debug.Setup(cliCtx, true /* rootLogger */) if err != nil { return err } @@ -95,14 +95,14 @@ func doBackup(cliCtx *cli.Context) error { var lables = []kv.Label{kv.ChainDB, kv.TxPoolDB, kv.DownloaderDB} if cliCtx.IsSet(BackupToPageSizeFlag.Name) { lables = lables[:0] - for _, l := range utils.SplitAndTrim(cliCtx.String(BackupLabelsFlag.Name)) { + for _, l := range common.CliString2Array(cliCtx.String(BackupLabelsFlag.Name)) { lables = append(lables, kv.UnmarshalLabel(l)) } } var tables []string if cliCtx.IsSet(BackupTablesFlag.Name) { - tables = utils.SplitAndTrim(cliCtx.String(BackupTablesFlag.Name)) + tables = common.CliString2Array(cliCtx.String(BackupTablesFlag.Name)) } readAheadThreads := backup.ReadAheadThreads diff --git a/turbo/app/import_cmd.go b/turbo/app/import_cmd.go index 073c3a88016..4b23fcf4e76 100644 --- a/turbo/app/import_cmd.go +++ b/turbo/app/import_cmd.go @@ -54,7 +54,7 @@ func importChain(cliCtx *cli.Context) error { utils.Fatalf("This command requires an argument.") } - logger, err := debug.Setup(cliCtx, true /* rootLogger */) + logger, _, err := debug.Setup(cliCtx, true /* rootLogger */) if err != nil { return err } @@ -62,10 +62,10 @@ func importChain(cliCtx *cli.Context) error { nodeCfg := turboNode.NewNodConfigUrfave(cliCtx, logger) ethCfg := turboNode.NewEthConfigUrfave(cliCtx, nodeCfg, logger) - stack := makeConfigNode(nodeCfg, logger) + stack := makeConfigNode(cliCtx.Context, nodeCfg, logger) defer stack.Close() - ethereum, err := eth.New(stack, ethCfg, logger) + ethereum, err := eth.New(cliCtx.Context, stack, ethCfg, logger) if err != nil { return err } @@ -220,8 +220,8 @@ func InsertChain(ethereum *eth.Ethereum, chain *core.ChainPack, logger log.Logge sentryControlServer.Hd.MarkAllVerified() blockReader, _ := ethereum.BlockIO() - hook := stages.NewHook(ethereum.SentryCtx(), ethereum.Notifications(), ethereum.StagedSync(), blockReader, ethereum.ChainConfig(), logger, sentryControlServer.UpdateHead) - err := stages.StageLoopIteration(ethereum.SentryCtx(), ethereum.ChainDB(), nil, ethereum.StagedSync(), initialCycle, logger, blockReader, hook) + hook := stages.NewHook(ethereum.SentryCtx(), ethereum.ChainDB(), ethereum.Notifications(), ethereum.StagedSync(), blockReader, ethereum.ChainConfig(), logger, sentryControlServer.UpdateHead) + err := stages.StageLoopIteration(ethereum.SentryCtx(), ethereum.ChainDB(), nil, ethereum.StagedSync(), initialCycle, logger, blockReader, hook, false) if err != nil { return err } diff --git a/turbo/app/init_cmd.go b/turbo/app/init_cmd.go index ed4c01ac898..363f2825b64 100644 --- a/turbo/app/init_cmd.go +++ b/turbo/app/init_cmd.go @@ -34,14 +34,14 @@ It expects the genesis file as argument.`, // initGenesis will initialise the given JSON format genesis file and writes it as // the zero'd block (i.e. genesis) or will fail hard if it can't succeed. -func initGenesis(ctx *cli.Context) error { +func initGenesis(cliCtx *cli.Context) error { var logger log.Logger var err error - if logger, err = debug.Setup(ctx, true /* rootLogger */); err != nil { + if logger, _, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { return err } // Make sure we have a valid genesis JSON - genesisPath := ctx.Args().First() + genesisPath := cliCtx.Args().First() if len(genesisPath) == 0 { utils.Fatalf("Must supply path to genesis JSON file") } @@ -58,10 +58,10 @@ func initGenesis(ctx *cli.Context) error { } // Open and initialise both full and light databases - stack := MakeConfigNodeDefault(ctx, logger) + stack := MakeConfigNodeDefault(cliCtx, logger) defer stack.Close() - chaindb, err := node.OpenDatabase(stack.Config(), kv.ChainDB, "", false, logger) + chaindb, err := node.OpenDatabase(cliCtx.Context, stack.Config(), kv.ChainDB, "", false, logger) if err != nil { utils.Fatalf("Failed to open database: %v", err) } diff --git a/turbo/app/make_app.go b/turbo/app/make_app.go index 3f0de497439..a591af54265 100644 --- a/turbo/app/make_app.go +++ b/turbo/app/make_app.go @@ -2,6 +2,7 @@ package app import ( + "context" "fmt" "strings" @@ -38,12 +39,36 @@ func MakeApp(name string, action cli.ActionFunc, cliFlags []cli.Flag) *cli.App { cli.ShowAppHelpAndExit(context, 1) } + // handle case: config flag + configFilePath := context.String(utils.ConfigFlag.Name) + if configFilePath != "" { + if err := cli2.SetFlagsFromConfigFile(context, configFilePath); err != nil { + log.Error("failed setting config flags from yaml/toml file", "err", err) + return err + } + } + // run default action return action(context) } app.Flags = append(cliFlags, debug.Flags...) // debug flags are required app.Flags = append(app.Flags, utils.MetricFlags...) app.Flags = append(app.Flags, logging.Flags...) + app.Flags = append(app.Flags, &utils.ConfigFlag) + + // remove exact duplicate flags, keeping only the first one. this will allow easier composition later down the line + allFlags := app.Flags + newFlags := make([]cli.Flag, 0, len(allFlags)) + seen := map[string]struct{}{} + for _, vv := range allFlags { + v := vv + if _, ok := seen[v.String()]; ok { + continue + } + newFlags = append(newFlags, v) + } + app.Flags = newFlags + app.After = func(ctx *cli.Context) error { debug.Exit() return nil @@ -131,12 +156,12 @@ func NewNodeConfig(ctx *cli.Context) *nodecfg.Config { return &nodeConfig } -func MakeConfigNodeDefault(ctx *cli.Context, logger log.Logger) *node.Node { - return makeConfigNode(NewNodeConfig(ctx), logger) +func MakeConfigNodeDefault(cliCtx *cli.Context, logger log.Logger) *node.Node { + return makeConfigNode(cliCtx.Context, NewNodeConfig(cliCtx), logger) } -func makeConfigNode(config *nodecfg.Config, logger log.Logger) *node.Node { - stack, err := node.New(config, logger) +func makeConfigNode(ctx context.Context, config *nodecfg.Config, logger log.Logger) *node.Node { + stack, err := node.New(ctx, config, logger) if err != nil { utils.Fatalf("Failed to create Erigon node: %v", err) } diff --git a/turbo/app/snapshots_cmd.go b/turbo/app/snapshots_cmd.go index 88e87e30b8a..9dd63620653 100644 --- a/turbo/app/snapshots_cmd.go +++ b/turbo/app/snapshots_cmd.go @@ -13,17 +13,21 @@ import ( "time" "github.com/c2h5oh/datasize" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/log/v3" + "github.com/urfave/cli/v2" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/dir" "github.com/ledgerwatch/erigon-lib/compress" - "github.com/ledgerwatch/erigon-lib/downloader/snaptype" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcfg" "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" libstate "github.com/ledgerwatch/erigon-lib/state" + "github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb" "github.com/ledgerwatch/erigon/cmd/utils" "github.com/ledgerwatch/erigon/core/rawdb" @@ -34,11 +38,10 @@ import ( "github.com/ledgerwatch/erigon/turbo/debug" "github.com/ledgerwatch/erigon/turbo/logging" "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" - "github.com/ledgerwatch/log/v3" - "github.com/urfave/cli/v2" ) func joinFlags(lists ...[]cli.Flag) (res []cli.Flag) { + lists = append(lists, debug.Flags, logging.Flags, utils.MetricFlags) for _, list := range lists { res = append(res, list...) } @@ -48,6 +51,13 @@ func joinFlags(lists ...[]cli.Flag) (res []cli.Flag) { var snapshotCommand = cli.Command{ Name: "snapshots", Usage: `Managing snapshots (historical data partitions)`, + Before: func(context *cli.Context) error { + _, _, err := debug.Setup(context, true /* rootLogger */) + if err != nil { + return err + } + return nil + }, Subcommands: []*cli.Command{ { Name: "index", @@ -57,7 +67,7 @@ var snapshotCommand = cli.Command{ &utils.DataDirFlag, &SnapshotFromFlag, &SnapshotRebuildFlag, - }, debug.Flags, logging.Flags), + }), }, { Name: "retire", @@ -68,28 +78,28 @@ var snapshotCommand = cli.Command{ &SnapshotFromFlag, &SnapshotToFlag, &SnapshotEveryFlag, - }, debug.Flags, logging.Flags), + }), }, { Name: "uncompress", Action: doUncompress, Usage: "erigon snapshots uncompress a.seg | erigon snapshots compress b.seg", - Flags: joinFlags([]cli.Flag{}, debug.Flags, logging.Flags), + Flags: joinFlags([]cli.Flag{}), }, { Name: "compress", Action: doCompress, - Flags: joinFlags([]cli.Flag{&utils.DataDirFlag}, debug.Flags, logging.Flags), + Flags: joinFlags([]cli.Flag{&utils.DataDirFlag}), }, { Name: "ram", Action: doRam, - Flags: joinFlags([]cli.Flag{&utils.DataDirFlag}, debug.Flags, logging.Flags), + Flags: joinFlags([]cli.Flag{&utils.DataDirFlag}), }, { Name: "decompress_speed", Action: doDecompressSpeed, - Flags: joinFlags([]cli.Flag{&utils.DataDirFlag}, debug.Flags, logging.Flags), + Flags: joinFlags([]cli.Flag{&utils.DataDirFlag}), }, { Name: "diff", @@ -103,7 +113,7 @@ var snapshotCommand = cli.Command{ Name: "dst", Required: true, }, - }, debug.Flags, logging.Flags), + }), }, }, } @@ -124,24 +134,12 @@ var ( Usage: "Do operation every N blocks", Value: 1_000, } - SnapshotSegmentSizeFlag = cli.Uint64Flag{ - Name: "segment.size", - Usage: "Amount of blocks in each segment", - Value: snaptype.Erigon2SegmentSize, - } SnapshotRebuildFlag = cli.BoolFlag{ Name: "rebuild", Usage: "Force rebuild", } ) -func preloadFileAsync(name string) { - go func() { - ff, _ := os.Open(name) - _, _ = io.CopyBuffer(io.Discard, bufio.NewReaderSize(ff, 64*1024*1024), make([]byte, 64*1024*1024)) - }() -} - func doDiff(cliCtx *cli.Context) error { defer log.Info("Done") srcF, dstF := cliCtx.String("src"), cliCtx.String("dst") @@ -173,19 +171,16 @@ func doDiff(cliCtx *cli.Context) error { } func doDecompressSpeed(cliCtx *cli.Context) error { - var logger log.Logger - var err error - if logger, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { + logger, _, err := debug.Setup(cliCtx, true /* rootLogger */) + if err != nil { return err } args := cliCtx.Args() - if args.Len() != 1 { - return fmt.Errorf("expecting .seg file path") + if args.Len() < 1 { + return fmt.Errorf("expecting file path as a first argument") } f := args.First() - preloadFileAsync(f) - decompressor, err := compress.NewDecompressor(f) if err != nil { return err @@ -217,17 +212,17 @@ func doDecompressSpeed(cliCtx *cli.Context) error { func doRam(cliCtx *cli.Context) error { var logger log.Logger var err error - if logger, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { + if logger, _, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { return err } + defer logger.Info("Done") args := cliCtx.Args() - if args.Len() != 1 { - return fmt.Errorf("expecting .seg file path") + if args.Len() < 1 { + return fmt.Errorf("expecting file path as a first argument") } f := args.First() var m runtime.MemStats - runtime.ReadMemStats(&m) - runtime.ReadMemStats(&m) + dbg.ReadMemStats(&m) before := m.Alloc logger.Info("RAM before open", "alloc", common.ByteCount(m.Alloc), "sys", common.ByteCount(m.Sys)) decompressor, err := compress.NewDecompressor(f) @@ -235,24 +230,24 @@ func doRam(cliCtx *cli.Context) error { return err } defer decompressor.Close() - runtime.ReadMemStats(&m) + dbg.ReadMemStats(&m) logger.Info("RAM after open", "alloc", common.ByteCount(m.Alloc), "sys", common.ByteCount(m.Sys), "diff", common.ByteCount(m.Alloc-before)) return nil } func doIndicesCommand(cliCtx *cli.Context) error { - var err error - var logger log.Logger - if logger, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { + logger, _, err := debug.Setup(cliCtx, true /* rootLogger */) + if err != nil { return err } + defer logger.Info("Done") ctx := cliCtx.Context dirs := datadir.New(cliCtx.String(utils.DataDirFlag.Name)) rebuild := cliCtx.Bool(SnapshotRebuildFlag.Name) //from := cliCtx.Uint64(SnapshotFromFlag.Name) - chainDB := mdbx.NewMDBX(logger).Path(dirs.Chaindata).Readonly().MustOpen() + chainDB := mdbx.NewMDBX(logger).Path(dirs.Chaindata).MustOpen() defer chainDB.Close() dir.MustExist(dirs.SnapHistory) @@ -291,24 +286,24 @@ func doIndicesCommand(cliCtx *cli.Context) error { func doUncompress(cliCtx *cli.Context) error { var logger log.Logger var err error - if logger, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { + if logger, _, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { return err } ctx := cliCtx.Context args := cliCtx.Args() - if args.Len() != 1 { - return fmt.Errorf("expecting .seg file path") + if args.Len() < 1 { + return fmt.Errorf("expecting file path as a first argument") } f := args.First() - preloadFileAsync(f) - decompressor, err := compress.NewDecompressor(f) if err != nil { return err } defer decompressor.Close() + defer decompressor.EnableReadAhead().DisableReadAhead() + wr := bufio.NewWriterSize(os.Stdout, int(128*datasize.MB)) defer wr.Flush() logEvery := time.NewTicker(30 * time.Second) @@ -316,7 +311,6 @@ func doUncompress(cliCtx *cli.Context) error { var i uint var numBuf [binary.MaxVarintLen64]byte - defer decompressor.EnableReadAhead().DisableReadAhead() g := decompressor.MakeGetter() buf := make([]byte, 0, 1*datasize.MB) @@ -345,17 +339,18 @@ func doUncompress(cliCtx *cli.Context) error { func doCompress(cliCtx *cli.Context) error { var err error var logger log.Logger - if logger, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { + if logger, _, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { return err } ctx := cliCtx.Context args := cliCtx.Args() - if args.Len() != 1 { - return fmt.Errorf("expecting .seg file path") + if args.Len() < 1 { + return fmt.Errorf("expecting file path as a first argument") } f := args.First() dirs := datadir.New(cliCtx.String(utils.DataDirFlag.Name)) + logger.Info("file", "datadir", dirs.DataDir, "f", f) c, err := compress.NewCompressor(ctx, "compress", f, dirs.Tmp, compress.MinPatternScore, estimate.CompressSnapshot.Workers(), log.LvlInfo, logger) if err != nil { return err @@ -394,26 +389,26 @@ func doCompress(cliCtx *cli.Context) error { func doRetireCommand(cliCtx *cli.Context) error { var logger log.Logger var err error - if logger, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { + if logger, _, err = debug.Setup(cliCtx, true /* rootLogger */); err != nil { return err } - defer logger.Info("Retire Done") + defer logger.Info("Done") ctx := cliCtx.Context dirs := datadir.New(cliCtx.String(utils.DataDirFlag.Name)) from := cliCtx.Uint64(SnapshotFromFlag.Name) to := cliCtx.Uint64(SnapshotToFlag.Name) every := cliCtx.Uint64(SnapshotEveryFlag.Name) - db := mdbx.NewMDBX(logger).Label(kv.ChainDB).Path(dirs.Chaindata).MustOpen() defer db.Close() - cfg := ethconfig.NewSnapCfg(true, true, true) - snapshots := freezeblocks.NewRoSnapshots(cfg, dirs.Snap, logger) - if err := snapshots.ReopenFolder(); err != nil { + cfg := ethconfig.NewSnapCfg(true, false, true) + blockSnapshots := freezeblocks.NewRoSnapshots(cfg, dirs.Snap, logger) + borSnapshots := freezeblocks.NewBorRoSnapshots(cfg, dirs.Snap, logger) + if err := blockSnapshots.ReopenFolder(); err != nil { return err } - blockReader := freezeblocks.NewBlockReader(snapshots) + blockReader := freezeblocks.NewBlockReader(blockSnapshots, borSnapshots) blockWriter := blockio.NewBlockWriter(fromdb.HistV3(db)) br := freezeblocks.NewBlockRetire(estimate.CompressSnapshot.Workers(), dirs, blockReader, blockWriter, db, nil, logger) @@ -441,16 +436,49 @@ func doRetireCommand(cliCtx *cli.Context) error { } logger.Info("Params", "from", from, "to", to, "every", every) + { + logEvery := time.NewTicker(10 * time.Second) + defer logEvery.Stop() + + for j := 0; j < 10_000; j++ { // prune happens by small steps, so need many runs + if err := db.Update(ctx, func(tx kv.RwTx) error { + if err := br.PruneAncientBlocks(tx, 100, false /* includeBor */); err != nil { + return err + } + + select { + case <-ctx.Done(): + return ctx.Err() + case <-logEvery.C: + firstNonGenesisHeader, err := rawdbv3.SecondKey(tx, kv.Headers) + if err != nil { + return err + } + if len(firstNonGenesisHeader) > 0 { + logger.Info("Prunning old blocks", "progress", binary.BigEndian.Uint64(firstNonGenesisHeader)) + } + default: + } + return nil + }); err != nil { + return err + } + } + } + for i := from; i < to; i += every { - if err := br.RetireBlocks(ctx, i, i+every, log.LvlInfo, nil); err != nil { + if err := br.RetireBlocks(ctx, i, i+every, log.LvlInfo, nil, nil); err != nil { panic(err) } - if err := db.UpdateNosync(ctx, func(tx kv.RwTx) error { + if err := br.RetireBorBlocks(ctx, i, i+every, log.LvlInfo, nil, nil); err != nil { + panic(err) + } + if err := db.Update(ctx, func(tx kv.RwTx) error { if err := rawdb.WriteSnapshots(tx, blockReader.FrozenFiles(), agg.Files()); err != nil { return err } for j := 0; j < 10_000; j++ { // prune happens by small steps, so need many runs - if err := br.PruneAncientBlocks(tx, 100); err != nil { + if err := br.PruneAncientBlocks(tx, 100, true /* includeBor */); err != nil { return err } } @@ -477,7 +505,7 @@ func doRetireCommand(cliCtx *cli.Context) error { } } - logger.Info("Work on state history snapshots") + logger.Info("Work on state history blockSnapshots") indexWorkers := estimate.IndexSnapshot.Workers() if err = agg.BuildMissedIndices(ctx, indexWorkers); err != nil { return err @@ -496,7 +524,7 @@ func doRetireCommand(cliCtx *cli.Context) error { return err } - logger.Info("Build state history snapshots") + logger.Info("Build state history blockSnapshots") if err = agg.BuildFiles(lastTxNum); err != nil { return err } @@ -505,7 +533,7 @@ func doRetireCommand(cliCtx *cli.Context) error { return err } if err := db.UpdateNosync(ctx, func(tx kv.RwTx) error { - return rawdb.WriteSnapshots(tx, snapshots.Files(), agg.Files()) + return rawdb.WriteSnapshots(tx, blockSnapshots.Files(), agg.Files()) }); err != nil { return err } @@ -522,8 +550,9 @@ func doRetireCommand(cliCtx *cli.Context) error { return err } } + logger.Info("Prune state history") if err := db.Update(ctx, func(tx kv.RwTx) error { - return rawdb.WriteSnapshots(tx, snapshots.Files(), agg.Files()) + return rawdb.WriteSnapshots(tx, blockSnapshots.Files(), agg.Files()) }); err != nil { return err } diff --git a/turbo/app/support_cmd.go b/turbo/app/support_cmd.go index bf5fb09aec8..5bbb44f5581 100644 --- a/turbo/app/support_cmd.go +++ b/turbo/app/support_cmd.go @@ -1,53 +1,74 @@ package app import ( - "bufio" "bytes" "context" "crypto/tls" - "encoding/binary" + "encoding/json" "fmt" "io" "net/http" + "net/url" "os" "os/signal" + "strconv" + "sync" "syscall" "time" + "github.com/gorilla/websocket" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" + "github.com/ledgerwatch/erigon-lib/gointerfaces/types" + "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/log/v3" "github.com/urfave/cli/v2" - "golang.org/x/net/http2" ) +const ( + wsReadBuffer = 1024 + wsWriteBuffer = 1024 + wsPingInterval = 60 * time.Second + wsPingWriteTimeout = 5 * time.Second + wsMessageSizeLimit = 32 * 1024 * 1024 +) + +var wsBufferPool = new(sync.Pool) + var ( diagnosticsURLFlag = cli.StringFlag{ - Name: "diagnostics.url", - Usage: "URL of the diagnostics system provided by the support team, include unique session PIN", + Name: "diagnostics.addr", + Usage: "Address of the diagnostics system provided by the support team, include unique session PIN", } - metricsURLsFlag = cli.StringSliceFlag{ - Name: "metrics.urls", - Usage: "Comma separated list of URLs to the metrics endpoints thats are being diagnosed", + + debugURLsFlag = cli.StringSliceFlag{ + Name: "debug.addrs", + Usage: "Comma separated list of URLs to the debug endpoints thats are being diagnosed", } + insecureFlag = cli.BoolFlag{ Name: "insecure", Usage: "Allows communication with diagnostics system using self-signed TLS certificates", } + + sessionsFlag = cli.StringSliceFlag{ + Name: "diagnostics.sessions", + Usage: "Comma separated list of support session ids to connect to", + } ) var supportCommand = cli.Command{ Action: MigrateFlags(connectDiagnostics), Name: "support", Usage: "Connect Erigon instance to a diagnostics system for support", - ArgsUsage: "--diagnostics.url --metrics.urls ", + ArgsUsage: "--diagnostics.addr --ids --metrics.urls ", Flags: []cli.Flag{ - &metricsURLsFlag, + &debugURLsFlag, &diagnosticsURLFlag, + &sessionsFlag, &insecureFlag, }, //Category: "SUPPORT COMMANDS", - Description: ` -The support command connects a running Erigon instances to a diagnostics system specified -by the URL.`, + Description: `The support command connects a running Erigon instances to a diagnostics system specified by the URL.`, } const Version = 1 @@ -63,10 +84,13 @@ func ConnectDiagnostics(cliCtx *cli.Context, logger log.Logger) error { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - metricsURLs := cliCtx.StringSlice(metricsURLsFlag.Name) - metricsURL := metricsURLs[0] // TODO: Generalise + debugURLs := []string{} - diagnosticsUrl := cliCtx.String(diagnosticsURLFlag.Name) + for _, debugURL := range cliCtx.StringSlice(debugURLsFlag.Name) { + debugURLs = append(debugURLs, "http://"+debugURL) + } + + diagnosticsUrl := cliCtx.String(diagnosticsURLFlag.Name) + "/bridge" // Create TLS configuration with the certificate of the server insecure := cliCtx.Bool(insecureFlag.Name) @@ -74,9 +98,11 @@ func ConnectDiagnostics(cliCtx *cli.Context, logger log.Logger) error { InsecureSkipVerify: insecure, //nolint:gosec } + sessionIds := cliCtx.StringSlice(sessionsFlag.Name) + // Perform the requests in a loop (reconnect) for { - if err := tunnel(ctx, cancel, sigs, tlsConfig, diagnosticsUrl, metricsURL, logger); err != nil { + if err := tunnel(ctx, cancel, sigs, tlsConfig, diagnosticsUrl, sessionIds, debugURLs, logger); err != nil { return err } select { @@ -91,96 +117,306 @@ func ConnectDiagnostics(cliCtx *cli.Context, logger log.Logger) error { } } -var successLine = []byte("SUCCESS") +type conn struct { + io.ReadCloser + *io.PipeWriter +} + +func (c *conn) Close() error { + c.ReadCloser.Close() + c.PipeWriter.Close() + return nil +} + +func (c *conn) SetWriteDeadline(time time.Time) error { + return nil +} // tunnel operates the tunnel from diagnostics system to the metrics URL for one http/2 request // needs to be called repeatedly to implement re-connect logic -func tunnel(ctx context.Context, cancel context.CancelFunc, sigs chan os.Signal, tlsConfig *tls.Config, diagnosticsUrl string, metricsURL string, logger log.Logger) error { - diagnosticsClient := &http.Client{Transport: &http2.Transport{TLSClientConfig: tlsConfig}} - defer diagnosticsClient.CloseIdleConnections() +// tunnel operates the tunnel from diagnostics system to the metrics URL for one http/2 request +// needs to be called repeatedly to implement re-connect logic +func tunnel(ctx context.Context, cancel context.CancelFunc, sigs chan os.Signal, tlsConfig *tls.Config, diagnosticsUrl string, sessionIds []string, debugURLs []string, logger log.Logger) error { metricsClient := &http.Client{} defer metricsClient.CloseIdleConnections() - // Create a request object to send to the server - reader, writer := io.Pipe() + ctx1, cancel1 := context.WithCancel(ctx) defer cancel1() + go func() { select { case <-sigs: cancel() case <-ctx1.Done(): } - reader.Close() - writer.Close() }() - req, err := http.NewRequestWithContext(ctx1, http.MethodPost, diagnosticsUrl, reader) - if err != nil { - return err - } - // Create a connection - // Apply given context to the sent request - resp, err := diagnosticsClient.Do(req) - if err != nil { - return err + type enode struct { + Enode string `json:"enode,omitempty"` + Enr string `json:"enr,omitempty"` + Ports *types.NodeInfoPorts `json:"ports,omitempty"` + ListenerAddr string `json:"listener_addr,omitempty"` } - defer resp.Body.Close() - defer writer.Close() - // Apply the connection context on the request context - var metricsBuf bytes.Buffer - r := bufio.NewReaderSize(resp.Body, 4096) - line, isPrefix, err := r.ReadLine() - if err != nil { - return fmt.Errorf("reading first line: %v", err) - } - if isPrefix { - return fmt.Errorf("request too long") + type info struct { + Id string `json:"id,omitempty"` + Name string `json:"name,omitempty"` + Protocols json.RawMessage `json:"protocols,omitempty"` + Enodes []enode `json:"enodes,omitempty"` } - if !bytes.Equal(line, successLine) { - return fmt.Errorf("connecting to diagnostics system, first line [%s]", line) - } - var versionBytes [8]byte - binary.BigEndian.PutUint64(versionBytes[:], Version) - if _, err = writer.Write(versionBytes[:]); err != nil { - return fmt.Errorf("sending version: %v", err) + + type node struct { + debugURL string + info *info } - logger.Info("Connected") + nodes := map[string]*node{} + + for _, debugURL := range debugURLs { + debugResponse, err := metricsClient.Get(debugURL + "/debug/nodeinfo") - for line, isPrefix, err = r.ReadLine(); err == nil && !isPrefix; line, isPrefix, err = r.ReadLine() { - metricsBuf.Reset() - metricsResponse, err := metricsClient.Get(metricsURL + string(line)) if err != nil { - fmt.Fprintf(&metricsBuf, "ERROR: Requesting metrics url [%s], query [%s], err: %v", metricsURL, line, err) - } else { - // Buffer the metrics response, and relay it back to the diagnostics system, prepending with the size - if _, err := io.Copy(&metricsBuf, metricsResponse.Body); err != nil { - metricsBuf.Reset() - fmt.Fprintf(&metricsBuf, "ERROR: Extracting metrics url [%s], query [%s], err: %v", metricsURL, line, err) - } - metricsResponse.Body.Close() + return err } - var sizeBuf [4]byte - binary.BigEndian.PutUint32(sizeBuf[:], uint32(metricsBuf.Len())) - if _, err = writer.Write(sizeBuf[:]); err != nil { - logger.Error("Problem relaying metrics prefix len", "url", metricsURL, "query", line, "err", err) - break + + if debugResponse.StatusCode != http.StatusOK { + return fmt.Errorf("debug request to %s failed: %s", debugURL, debugResponse.Status) } - if _, err = writer.Write(metricsBuf.Bytes()); err != nil { - logger.Error("Problem relaying", "url", metricsURL, "query", line, "err", err) - break + + var reply remote.NodesInfoReply + + err = json.NewDecoder(debugResponse.Body).Decode(&reply) + + debugResponse.Body.Close() + + if err != nil { + return err + } + + for _, ni := range reply.NodesInfo { + if n, ok := nodes[ni.Id]; ok { + n.info.Enodes = append(n.info.Enodes, enode{ + Enode: ni.Enode, + Enr: ni.Enr, + Ports: ni.Ports, + ListenerAddr: ni.ListenerAddr, + }) + } else { + nodes[ni.Id] = &node{debugURL, &info{ + Id: ni.Id, + Name: ni.Name, + Protocols: ni.Protocols, + Enodes: []enode{{ + Enode: ni.Enode, + Enr: ni.Enr, + Ports: ni.Ports, + ListenerAddr: ni.ListenerAddr, + }}}} + } + } + } + + dialer := websocket.Dialer{ + ReadBufferSize: wsReadBuffer, + WriteBufferSize: wsWriteBuffer, + WriteBufferPool: wsBufferPool, + } + + conn, resp, err := dialer.DialContext(ctx1, "wss://"+diagnosticsUrl, nil) + + if err != nil { + conn, resp, err = dialer.DialContext(ctx1, "ws://"+diagnosticsUrl, nil) + + if err != nil { + return err } } + + if resp.StatusCode != http.StatusSwitchingProtocols { + return fmt.Errorf("support request to %s failed: %s", diagnosticsUrl, resp.Status) + } + + type connectionInfo struct { + Version uint64 `json:"version"` + Sessions []string `json:"sessions"` + Nodes []*info `json:"nodes"` + } + + codec := rpc.NewWebsocketCodec(conn) + defer codec.Close() + + err = codec.WriteJSON(ctx1, &connectionInfo{ + Version: Version, + Sessions: sessionIds, + Nodes: func() (replies []*info) { + for _, node := range nodes { + replies = append(replies, node.info) + } + + return replies + }(), + }) + if err != nil { + return err + } + + logger.Info("Connected") + + for { + requests, _, err := codec.ReadBatch() + select { case <-ctx.Done(): + return nil default: - logger.Error("Breaking connection", "err", err) + if err != nil { + logger.Info("Breaking connection", "err", err) + return nil + } + } + + var requestId string + + if err = json.Unmarshal(requests[0].ID, &requestId); err != nil { + logger.Error("Invalid request id", "err", err) + continue + } + + nodeRequest := struct { + NodeId string `json:"nodeId"` + QueryParams url.Values `json:"queryParams"` + }{} + + if err = json.Unmarshal(requests[0].Params, &nodeRequest); err != nil { + logger.Error("Invalid node request", "err", err, "id", requestId) + continue + } + + type responseError struct { + Code int64 `json:"code"` + Message string `json:"message"` + Data *json.RawMessage `json:"data,omitempty"` + } + + type nodeResponse struct { + Id string `json:"id"` + Result json.RawMessage `json:"result,omitempty"` + Error *responseError `json:"error,omitempty"` + Last bool `json:"last,omitempty"` + } + + if node, ok := nodes[nodeRequest.NodeId]; ok { + err := func() error { + var queryString string + + if len(nodeRequest.QueryParams) > 0 { + queryString = "?" + nodeRequest.QueryParams.Encode() + } + + debugURL := node.debugURL + "/debug/" + requests[0].Method + queryString + debugResponse, err := metricsClient.Get(debugURL) + + if err != nil { + return codec.WriteJSON(ctx1, &nodeResponse{ + Id: requestId, + Error: &responseError{ + Code: http.StatusFailedDependency, + Message: fmt.Sprintf("Request for metrics method [%s] failed: %v", debugURL, err), + }, + Last: true, + }) + } + + defer debugResponse.Body.Close() + + //Websocket ok message + if resp.StatusCode != http.StatusSwitchingProtocols { + body, _ := io.ReadAll(debugResponse.Body) + return codec.WriteJSON(ctx1, &nodeResponse{ + Id: requestId, + Error: &responseError{ + Code: int64(resp.StatusCode), + Message: fmt.Sprintf("Request for metrics method [%s] failed: %s", debugURL, string(body)), + }, + Last: true, + }) + } + + buffer := &bytes.Buffer{} + + switch debugResponse.Header.Get("Content-Type") { + case "application/json": + if _, err := io.Copy(buffer, debugResponse.Body); err != nil { + return codec.WriteJSON(ctx1, &nodeResponse{ + Id: requestId, + Error: &responseError{ + Code: http.StatusInternalServerError, + Message: fmt.Sprintf("Request for metrics method [%s] failed: %v", debugURL, err), + }, + Last: true, + }) + + } + case "application/octet-stream": + if _, err := io.Copy(buffer, debugResponse.Body); err != nil { + return codec.WriteJSON(ctx1, &nodeResponse{ + Id: requestId, + Error: &responseError{ + Code: int64(http.StatusInternalServerError), + Message: fmt.Sprintf("Can't copy metrics response for [%s]: %s", debugURL, err), + }, + Last: true, + }) + } + + offset, _ := strconv.ParseInt(debugResponse.Header.Get("X-Offset"), 10, 64) + size, _ := strconv.ParseInt(debugResponse.Header.Get("X-Size"), 10, 64) + + data, err := json.Marshal(struct { + Offset int64 `json:"offset"` + Size int64 `json:"size"` + Data []byte `json:"chunk"` + }{ + Offset: offset, + Size: size, + Data: buffer.Bytes(), + }) + + buffer = bytes.NewBuffer(data) + + if err != nil { + return codec.WriteJSON(ctx1, &nodeResponse{ + Id: requestId, + Error: &responseError{ + Code: int64(http.StatusInternalServerError), + Message: fmt.Sprintf("Can't copy metrics response for [%s]: %s", debugURL, err), + }, + Last: true, + }) + } + + default: + return codec.WriteJSON(ctx1, &nodeResponse{ + Id: requestId, + Error: &responseError{ + Code: int64(http.StatusInternalServerError), + Message: fmt.Sprintf("Unhandled content type: %s, from: %s", debugResponse.Header.Get("Content-Type"), debugURL), + }, + Last: true, + }) + } + + return codec.WriteJSON(ctx1, &nodeResponse{ + Id: requestId, + Result: json.RawMessage(buffer.Bytes()), + Last: true, + }) + }() + + if err != nil { + return err + } } } - if isPrefix { - logger.Error("Request too long, circuit breaker") - } - return nil } diff --git a/turbo/backup/backup.go b/turbo/backup/backup.go index 9ecb59bad1d..a861232962e 100644 --- a/turbo/backup/backup.go +++ b/turbo/backup/backup.go @@ -11,12 +11,12 @@ import ( "time" "github.com/c2h5oh/datasize" + "github.com/erigontech/mdbx-go/mdbx" common2 "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon-lib/kv" mdbx2 "github.com/ledgerwatch/erigon-lib/kv/mdbx" "github.com/ledgerwatch/log/v3" - "github.com/torquem-ch/mdbx-go/mdbx" "golang.org/x/exp/maps" "golang.org/x/sync/errgroup" "golang.org/x/sync/semaphore" @@ -28,7 +28,7 @@ func OpenPair(from, to string, label kv.Label, targetPageSize datasize.ByteSize, Label(label). RoTxsLimiter(semaphore.NewWeighted(ThreadsHardLimit)). WithTableCfg(func(_ kv.TableCfg) kv.TableCfg { return kv.TablesCfgByLabel(label) }). - Flags(func(flags uint) uint { return flags | mdbx.Readonly | mdbx.Accede }). + Flags(func(flags uint) uint { return flags | mdbx.Accede }). MustOpen() if targetPageSize <= 0 { targetPageSize = datasize.ByteSize(src.PageSize()) @@ -99,12 +99,16 @@ func backupTable(ctx context.Context, src kv.RoDB, srcTx kv.Tx, dst kv.RwDB, tab } total, _ = srcC.Count() + if err := dst.Update(ctx, func(tx kv.RwTx) error { + return tx.ClearBucket(table) + }); err != nil { + return err + } dstTx, err := dst.BeginRw(ctx) if err != nil { return err } defer dstTx.Rollback() - _ = dstTx.ClearBucket(table) c, err := dstTx.RwCursor(table) if err != nil { @@ -188,10 +192,16 @@ func WarmupTable(ctx context.Context, db kv.RoDB, bucket string, lvl log.Lvl, re return err } for it.HasNext() { - _, _, err = it.Next() + k, v, err := it.Next() if err != nil { return err } + if len(k) > 0 { + _, _ = k[0], k[len(k)-1] + } + if len(v) > 0 { + _, _ = v[0], v[len(v)-1] + } progress.Add(1) select { case <-ctx.Done(): @@ -217,10 +227,16 @@ func WarmupTable(ctx context.Context, db kv.RoDB, bucket string, lvl log.Lvl, re return err } for it.HasNext() { - _, _, err = it.Next() + k, v, err := it.Next() if err != nil { return err } + if len(k) > 0 { + _, _ = k[0], k[len(k)-1] + } + if len(v) > 0 { + _, _ = v[0], v[len(v)-1] + } select { case <-ctx.Done(): return ctx.Err() diff --git a/turbo/builder/latest_block_built.go b/turbo/builder/latest_block_built.go index 95078434915..0e9e06288ed 100644 --- a/turbo/builder/latest_block_built.go +++ b/turbo/builder/latest_block_built.go @@ -19,11 +19,11 @@ func NewLatestBlockBuiltStore() *LatestBlockBuiltStore { func (s *LatestBlockBuiltStore) AddBlockBuilt(block *types.Block) { s.lock.Lock() defer s.lock.Unlock() - s.block = block.Copy() + s.block = block } func (s *LatestBlockBuiltStore) BlockBuilt() *types.Block { s.lock.Lock() defer s.lock.Unlock() - return s.block.Copy() + return s.block } diff --git a/turbo/builder/latest_block_built_test.go b/turbo/builder/latest_block_built_test.go index bbb18665de6..7a799c5605e 100644 --- a/turbo/builder/latest_block_built_test.go +++ b/turbo/builder/latest_block_built_test.go @@ -8,6 +8,7 @@ import ( ) func TestLatestBlockBuilt(t *testing.T) { + t.Parallel() s := NewLatestBlockBuiltStore() b := types.NewBlockWithHeader(&types.Header{}) s.AddBlockBuilt(b) diff --git a/turbo/cli/config_file.go b/turbo/cli/config_file.go new file mode 100644 index 00000000000..c0fca94bd0c --- /dev/null +++ b/turbo/cli/config_file.go @@ -0,0 +1,66 @@ +package cli + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "reflect" + "strings" + + "github.com/pelletier/go-toml" + "github.com/urfave/cli/v2" + "gopkg.in/yaml.v2" +) + +func SetFlagsFromConfigFile(ctx *cli.Context, filePath string) error { + fileExtension := filepath.Ext(filePath) + + fileConfig := make(map[string]interface{}) + + if fileExtension == ".yml" || fileExtension == ".yaml" { + yamlFile, err := os.ReadFile(filePath) + if err != nil { + return err + } + err = yaml.Unmarshal(yamlFile, fileConfig) + if err != nil { + return err + } + } else if fileExtension == ".toml" { + tomlFile, err := os.ReadFile(filePath) + if err != nil { + return err + } + err = toml.Unmarshal(tomlFile, &fileConfig) + if err != nil { + return err + } + } else { + return errors.New("config files only accepted are .yaml and .toml") + } + // sets global flags to value in yaml/toml file + for key, value := range fileConfig { + if !ctx.IsSet(key) { + if reflect.ValueOf(value).Kind() == reflect.Slice { + sliceInterface := value.([]interface{}) + s := make([]string, len(sliceInterface)) + for i, v := range sliceInterface { + s[i] = fmt.Sprintf("%v", v) + } + err := ctx.Set(key, strings.Join(s, ",")) + if err != nil { + return fmt.Errorf("failed setting %s flag with values=%s error=%s", key, s, err) + } + } else { + err := ctx.Set(key, fmt.Sprintf("%v", value)) + if err != nil { + return fmt.Errorf("failed setting %s flag with value=%v error=%s", key, value, err) + + } + } + } + } + + return nil +} diff --git a/turbo/cli/default_flags.go b/turbo/cli/default_flags.go index 2288ae2d3a0..475e30206c3 100644 --- a/turbo/cli/default_flags.go +++ b/turbo/cli/default_flags.go @@ -17,7 +17,9 @@ var DefaultFlags = []cli.Flag{ &utils.TxPoolNoLocalsFlag, &utils.TxPoolPriceLimitFlag, &utils.TxPoolPriceBumpFlag, + &utils.TxPoolBlobPriceBumpFlag, &utils.TxPoolAccountSlotsFlag, + &utils.TxPoolBlobSlotsFlag, &utils.TxPoolGlobalSlotsFlag, &utils.TxPoolGlobalBaseFeeSlotsFlag, &utils.TxPoolAccountQueueFlag, @@ -49,6 +51,7 @@ var DefaultFlags = []cli.Flag{ &BadBlockFlag, &utils.HTTPEnabledFlag, + &utils.HTTPServerEnabledFlag, &utils.GraphQLEnabledFlag, &utils.HTTPListenAddrFlag, &utils.HTTPPortFlag, @@ -60,6 +63,7 @@ var DefaultFlags = []cli.Flag{ &utils.HTTPVirtualHostsFlag, &utils.AuthRpcVirtualHostsFlag, &utils.HTTPApiFlag, + &utils.WSPortFlag, &utils.WSEnabledFlag, &utils.WsCompressionFlag, &utils.HTTPTraceFlag, @@ -72,6 +76,8 @@ var DefaultFlags = []cli.Flag{ &utils.RpcGasCapFlag, &utils.RpcBatchLimit, &utils.RpcReturnDataLimit, + &utils.AllowUnprotectedTxs, + &utils.RpcMaxGetProofRewindBlockCount, &utils.RPCGlobalTxFeeCapFlag, &utils.TxpoolApiAddrFlag, &utils.TraceMaxtracesFlag, @@ -87,6 +93,7 @@ var DefaultFlags = []cli.Flag{ &utils.SnapStopFlag, &utils.DbPageSizeFlag, &utils.DbSizeLimitFlag, + &utils.ForcePartialCommitFlag, &utils.TorrentPortFlag, &utils.TorrentMaxPeersFlag, &utils.TorrentConnsPerFileFlag, @@ -133,7 +140,6 @@ var DefaultFlags = []cli.Flag{ &utils.MinerSigningKeyFileFlag, &utils.SentryAddrFlag, &utils.SentryLogPeerInfoFlag, - &utils.SentryDropUselessPeers, &utils.DownloaderAddrFlag, &utils.DisableIPV4, &utils.DisableIPV6, @@ -141,15 +147,15 @@ var DefaultFlags = []cli.Flag{ &utils.DownloaderVerifyFlag, &HealthCheckFlag, &utils.HeimdallURLFlag, + &utils.WebSeedsFlag, &utils.WithoutHeimdallFlag, &utils.HeimdallgRPCAddressFlag, &utils.BorBlockPeriodFlag, &utils.BorBlockSizeFlag, + &utils.WithHeimdallMilestones, &utils.EthStatsURLFlag, &utils.OverrideCancunFlag, - &utils.ConfigFlag, - &utils.LightClientDiscoveryAddrFlag, &utils.LightClientDiscoveryPortFlag, &utils.LightClientDiscoveryTCPPortFlag, @@ -158,5 +164,23 @@ var DefaultFlags = []cli.Flag{ &utils.OtsSearchMaxCapFlag, + &utils.SilkwormExecutionFlag, + &utils.SilkwormRpcDaemonFlag, + &utils.SilkwormSentryFlag, + + &utils.BeaconAPIFlag, + &utils.BeaconApiAddrFlag, + &utils.BeaconApiPortFlag, + &utils.BeaconApiReadTimeoutFlag, + &utils.BeaconApiWriteTimeoutFlag, + &utils.BeaconApiProtocolFlag, + &utils.BeaconApiIdleTimeoutFlag, + + &utils.CaplinBackfillingFlag, + &utils.CaplinArchiveFlag, + &utils.TrustedSetupFile, + &utils.RPCSlowFlag, + + &utils.TxPoolGossipDisableFlag, } diff --git a/turbo/cli/flags.go b/turbo/cli/flags.go index ec5a9d3063a..29d7b023056 100644 --- a/turbo/cli/flags.go +++ b/turbo/cli/flags.go @@ -4,6 +4,8 @@ import ( "fmt" "time" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -20,7 +22,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" "github.com/ledgerwatch/erigon/cmd/utils" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/ethdb/prune" "github.com/ledgerwatch/erigon/node/nodecfg" @@ -215,7 +216,7 @@ func ApplyFlagsForEthConfig(ctx *cli.Context, cfg *ethconfig.Config, logger log. ctx.Uint64(PruneReceiptBeforeFlag.Name), ctx.Uint64(PruneTxIndexBeforeFlag.Name), ctx.Uint64(PruneCallTracesBeforeFlag.Name), - utils.SplitAndTrim(ctx.String(ExperimentsFlag.Name)), + libcommon.CliString2Array(ctx.String(ExperimentsFlag.Name)), ) if err != nil { utils.Fatalf(fmt.Sprintf("error while parsing mode: %v", err)) @@ -356,8 +357,9 @@ func setEmbeddedRpcDaemon(ctx *cli.Context, cfg *nodecfg.Config, logger log.Logg logger.Info("starting HTTP APIs", "APIs", apis) c := &httpcfg.HttpCfg{ - Enabled: ctx.Bool(utils.HTTPEnabledFlag.Name), - Dirs: cfg.Dirs, + Enabled: ctx.Bool(utils.HTTPEnabledFlag.Name), + HttpServerEnabled: ctx.Bool(utils.HTTPServerEnabledFlag.Name), + Dirs: cfg.Dirs, TLSKeyFile: cfg.TLSKeyFile, TLSCACert: cfg.TLSCACert, @@ -370,10 +372,10 @@ func setEmbeddedRpcDaemon(ctx *cli.Context, cfg *nodecfg.Config, logger log.Logg AuthRpcPort: ctx.Int(utils.AuthRpcPort.Name), JWTSecretPath: jwtSecretPath, TraceRequests: ctx.Bool(utils.HTTPTraceFlag.Name), - HttpCORSDomain: utils.SplitAndTrim(ctx.String(utils.HTTPCORSDomainFlag.Name)), - HttpVirtualHost: utils.SplitAndTrim(ctx.String(utils.HTTPVirtualHostsFlag.Name)), - AuthRpcVirtualHost: utils.SplitAndTrim(ctx.String(utils.AuthRpcVirtualHostsFlag.Name)), - API: utils.SplitAndTrim(apis), + HttpCORSDomain: libcommon.CliString2Array(ctx.String(utils.HTTPCORSDomainFlag.Name)), + HttpVirtualHost: libcommon.CliString2Array(ctx.String(utils.HTTPVirtualHostsFlag.Name)), + AuthRpcVirtualHost: libcommon.CliString2Array(ctx.String(utils.AuthRpcVirtualHostsFlag.Name)), + API: libcommon.CliString2Array(apis), HTTPTimeouts: rpccfg.HTTPTimeouts{ ReadTimeout: ctx.Duration(HTTPReadTimeoutFlag.Name), WriteTimeout: ctx.Duration(HTTPWriteTimeoutFlag.Name), @@ -384,24 +386,27 @@ func setEmbeddedRpcDaemon(ctx *cli.Context, cfg *nodecfg.Config, logger log.Logg WriteTimeout: ctx.Duration(AuthRpcWriteTimeoutFlag.Name), IdleTimeout: ctx.Duration(HTTPIdleTimeoutFlag.Name), }, - EvmCallTimeout: ctx.Duration(EvmCallTimeoutFlag.Name), - - WebsocketEnabled: ctx.IsSet(utils.WSEnabledFlag.Name), - RpcBatchConcurrency: ctx.Uint(utils.RpcBatchConcurrencyFlag.Name), - RpcStreamingDisable: ctx.Bool(utils.RpcStreamingDisableFlag.Name), - DBReadConcurrency: ctx.Int(utils.DBReadConcurrencyFlag.Name), - RpcAllowListFilePath: ctx.String(utils.RpcAccessListFlag.Name), - Gascap: ctx.Uint64(utils.RpcGasCapFlag.Name), - MaxTraces: ctx.Uint64(utils.TraceMaxtracesFlag.Name), - TraceCompatibility: ctx.Bool(utils.RpcTraceCompatFlag.Name), - BatchLimit: ctx.Int(utils.RpcBatchLimit.Name), - ReturnDataLimit: ctx.Int(utils.RpcReturnDataLimit.Name), + EvmCallTimeout: ctx.Duration(EvmCallTimeoutFlag.Name), + WebsocketPort: ctx.Int(utils.WSPortFlag.Name), + WebsocketEnabled: ctx.IsSet(utils.WSEnabledFlag.Name), + RpcBatchConcurrency: ctx.Uint(utils.RpcBatchConcurrencyFlag.Name), + RpcStreamingDisable: ctx.Bool(utils.RpcStreamingDisableFlag.Name), + DBReadConcurrency: ctx.Int(utils.DBReadConcurrencyFlag.Name), + RpcAllowListFilePath: ctx.String(utils.RpcAccessListFlag.Name), + Gascap: ctx.Uint64(utils.RpcGasCapFlag.Name), + MaxTraces: ctx.Uint64(utils.TraceMaxtracesFlag.Name), + TraceCompatibility: ctx.Bool(utils.RpcTraceCompatFlag.Name), + BatchLimit: ctx.Int(utils.RpcBatchLimit.Name), + ReturnDataLimit: ctx.Int(utils.RpcReturnDataLimit.Name), + AllowUnprotectedTxs: ctx.Bool(utils.AllowUnprotectedTxs.Name), + MaxGetProofRewindBlockCount: ctx.Int(utils.RpcMaxGetProofRewindBlockCount.Name), OtsMaxPageSize: ctx.Uint64(utils.OtsSearchMaxCapFlag.Name), TxPoolApiAddr: ctx.String(utils.TxpoolApiAddrFlag.Name), - StateCache: kvcache.DefaultCoherentConfig, + StateCache: kvcache.DefaultCoherentConfig, + RPCSlowLogThreshold: ctx.Duration(utils.RPCSlowFlag.Name), } if ctx.IsSet(utils.HttpCompressionFlag.Name) { c.HttpCompression = ctx.Bool(utils.HttpCompressionFlag.Name) diff --git a/turbo/debug/flags.go b/turbo/debug/flags.go index b9db14a20a8..1be6efa51b3 100644 --- a/turbo/debug/flags.go +++ b/turbo/debug/flags.go @@ -20,11 +20,12 @@ import ( "errors" "fmt" "net/http" - _ "net/http/pprof" //nolint:gosec + "net/http/pprof" //nolint:gosec "os" "path/filepath" - metrics2 "github.com/VictoriaMetrics/metrics" + "github.com/ledgerwatch/erigon-lib/metrics" + "github.com/ledgerwatch/log/v3" "github.com/pelletier/go-toml" "github.com/spf13/cobra" @@ -32,8 +33,6 @@ import ( "gopkg.in/yaml.v2" "github.com/ledgerwatch/erigon/common/fdlimit" - "github.com/ledgerwatch/erigon/diagnostics" - "github.com/ledgerwatch/erigon/metrics/exp" "github.com/ledgerwatch/erigon/turbo/logging" ) @@ -155,22 +154,29 @@ func SetupCobra(cmd *cobra.Command, filePrefix string) log.Logger { panic(err) } + var metricsMux *http.ServeMux + var metricsAddress string + if metricsEnabled && metricsAddr != "" { - address := fmt.Sprintf("%s:%d", metricsAddr, metricsPort) - exp.Setup(address, logger) + metricsAddress = fmt.Sprintf("%s:%d", metricsAddr, metricsPort) + metricsMux = metrics.Setup(metricsAddress, logger) } - withMetrics := metricsEnabled && metricsAddr == "" if pprof { - // metrics and pprof server - StartPProf(fmt.Sprintf("%s:%d", pprofAddr, pprofPort), withMetrics) + address := fmt.Sprintf("%s:%d", pprofAddr, pprofPort) + if address == metricsAddress { + StartPProf(address, metricsMux) + } else { + StartPProf(address, nil) + } } + return logger } // Setup initializes profiling and logging based on the CLI flags. // It should be called as early as possible in the program. -func Setup(ctx *cli.Context, rootLogger bool) (log.Logger, error) { +func Setup(ctx *cli.Context, rootLogger bool) (log.Logger, *http.ServeMux, error) { // ensure we've read in config file details before setting up metrics etc. if err := SetFlagsFromConfigFile(ctx); err != nil { log.Warn("failed setting config flags from yaml/toml file", "err", err) @@ -182,30 +188,26 @@ func Setup(ctx *cli.Context, rootLogger bool) (log.Logger, error) { if traceFile := ctx.String(traceFlag.Name); traceFile != "" { if err := Handler.StartGoTrace(traceFile); err != nil { - return logger, err + return logger, nil, err } } if cpuFile := ctx.String(cpuprofileFlag.Name); cpuFile != "" { if err := Handler.StartCPUProfile(cpuFile); err != nil { - return logger, err + return logger, nil, err } } pprofEnabled := ctx.Bool(pprofFlag.Name) metricsEnabled := ctx.Bool(metricsEnabledFlag.Name) metricsAddr := ctx.String(metricsAddrFlag.Name) + var metricsMux *http.ServeMux + var metricsAddress string + if metricsEnabled && (!pprofEnabled || metricsAddr != "") { metricsPort := ctx.Int(metricsPortFlag.Name) - address := fmt.Sprintf("%s:%d", metricsAddr, metricsPort) - exp.Setup(address, logger) - diagnostics.SetupLogsAccess(ctx) - diagnostics.SetupDbAccess(ctx) - diagnostics.SetupCmdLineAccess() - diagnostics.SetupFlagsAccess(ctx) - diagnostics.SetupVersionAccess() - diagnostics.SetupBlockBodyDownload() - diagnostics.SetupHeaderDownloadStats() + metricsAddress = fmt.Sprintf("%s:%d", metricsAddr, metricsPort) + metricsMux = metrics.Setup(metricsAddress, logger) } // pprof server @@ -213,31 +215,34 @@ func Setup(ctx *cli.Context, rootLogger bool) (log.Logger, error) { pprofHost := ctx.String(pprofAddrFlag.Name) pprofPort := ctx.Int(pprofPortFlag.Name) address := fmt.Sprintf("%s:%d", pprofHost, pprofPort) - // This context value ("metrics.addr") represents the utils.MetricsHTTPFlag.Name. - // It cannot be imported because it will cause a cyclical dependency. - withMetrics := metricsEnabled && metricsAddr == "" - StartPProf(address, withMetrics) + if address == metricsAddress { + StartPProf(address, metricsMux) + } else { + StartPProf(address, nil) + } } - return logger, nil + + return logger, metricsMux, nil } -func StartPProf(address string, withMetrics bool) { - // Hook go-metrics into expvar on any /debug/metrics request, load all vars - // from the registry into expvar, and execute regular expvar handler. - if withMetrics { - http.HandleFunc("/debug/metrics/prometheus", func(w http.ResponseWriter, req *http.Request) { - w.Header().Set("Access-Control-Allow-Origin", "*") - metrics2.WritePrometheus(w, true) - }) - } +func StartPProf(address string, metricsMux *http.ServeMux) { cpuMsg := fmt.Sprintf("go tool pprof -lines -http=: http://%s/%s", address, "debug/pprof/profile?seconds=20") heapMsg := fmt.Sprintf("go tool pprof -lines -http=: http://%s/%s", address, "debug/pprof/heap") log.Info("Starting pprof server", "cpu", cpuMsg, "heap", heapMsg) - go func() { - if err := http.ListenAndServe(address, nil); err != nil { // nolint:gosec - log.Error("Failure in running pprof server", "err", err) - } - }() + + if metricsMux == nil { + go func() { + if err := http.ListenAndServe(address, nil); err != nil { // nolint:gosec + log.Error("Failure in running pprof server", "err", err) + } + }() + } else { + metricsMux.HandleFunc("/debug/pprof/", pprof.Index) + metricsMux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline) + metricsMux.HandleFunc("/debug/pprof/profile", pprof.Profile) + metricsMux.HandleFunc("/debug/pprof/symbol", pprof.Symbol) + metricsMux.HandleFunc("/debug/pprof/trace", pprof.Trace) + } } // Exit stops all running profiles, flushing their output to the @@ -325,7 +330,7 @@ func readConfigAsMap(filePath string) (map[string]interface{}, error) { fileConfig := make(map[string]interface{}) - if fileExtension == ".yaml" { + if fileExtension == ".yaml" || fileExtension == ".yml" { yamlFile, err := os.ReadFile(filePath) if err != nil { return fileConfig, err @@ -344,7 +349,7 @@ func readConfigAsMap(filePath string) (map[string]interface{}, error) { return fileConfig, err } } else { - return fileConfig, errors.New("config files only accepted are .yaml and .toml") + return fileConfig, errors.New("config files only accepted are .yaml, .yml, and .toml") } return fileConfig, nil diff --git a/turbo/engineapi/engine_block_downloader/block_downloader.go b/turbo/engineapi/engine_block_downloader/block_downloader.go index ef281318963..7c08b42ee86 100644 --- a/turbo/engineapi/engine_block_downloader/block_downloader.go +++ b/turbo/engineapi/engine_block_downloader/block_downloader.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "sync" "sync/atomic" @@ -14,11 +15,9 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rlp" @@ -131,7 +130,7 @@ func (e *EngineBlockDownloader) waitForEndOfHeadersDownload() headerdownload.Syn // waitForEndOfHeadersDownload waits until the download of headers ends and returns the outcome. func (e *EngineBlockDownloader) loadDownloadedHeaders(tx kv.RwTx) (fromBlock uint64, toBlock uint64, fromHash libcommon.Hash, err error) { var lastValidHash libcommon.Hash - var badChainError error + var badChainError error // TODO(yperbasis): this is not set anywhere var foundPow bool headerLoadFunc := func(key, value []byte, _ etl.CurrentTableReader, _ etl.LoadNextFunc) error { @@ -205,73 +204,51 @@ func saveHeader(db kv.RwTx, header *types.Header, hash libcommon.Hash) error { return nil } -func (e *EngineBlockDownloader) insertHeadersAndBodies(tx kv.Tx, fromBlock uint64, fromHash libcommon.Hash) error { - blockBatchSize := 10_000 +func (e *EngineBlockDownloader) insertHeadersAndBodies(tx kv.Tx, fromBlock uint64, fromHash libcommon.Hash, toBlock uint64) error { + blockBatchSize := 500 + blockWrittenLogSize := 20_000 // We divide them in batches - headersBatch := []*types.Header{} - // For bodies we need to batch block numbers and block hashes - bodiesBatch := []*types.RawBody{} - blockNumbersBatch := []uint64{} - blockHashesBatch := []libcommon.Hash{} + blocksBatch := []*types.Block{} headersCursors, err := tx.Cursor(kv.Headers) if err != nil { return err } - bodiesCursors, err := tx.Cursor(kv.BlockBody) - if err != nil { - return err - } - log.Info("Beginning downloaded headers insertion") + + log.Info("Beginning downloaded blocks insertion") // Start by seeking headers for k, v, err := headersCursors.Seek(dbutils.HeaderKey(fromBlock, fromHash)); k != nil; k, v, err = headersCursors.Next() { if err != nil { return err } - if len(headersBatch) == blockBatchSize { - if err := e.chainRW.InsertHeadersAndWait(headersBatch); err != nil { + if len(blocksBatch) == blockBatchSize { + if err := e.chainRW.InsertBlocksAndWait(blocksBatch); err != nil { return err } - headersBatch = headersBatch[:0] + blocksBatch = blocksBatch[:0] } header := new(types.Header) if err := rlp.Decode(bytes.NewReader(v), header); err != nil { e.logger.Error("Invalid block header RLP", "err", err) return nil } - headersBatch = append(headersBatch, header) - } - if err := e.chainRW.InsertHeadersAndWait(headersBatch); err != nil { - return err - } - log.Info("Beginning downloaded bodies insertion") - - // then seek bodies - for k, _, err := bodiesCursors.Seek(dbutils.BlockBodyKey(fromBlock, fromHash)); k != nil; k, _, err = bodiesCursors.Next() { + number := header.Number.Uint64() + if number > toBlock { + return e.chainRW.InsertBlocksAndWait(blocksBatch) + } + hash := header.Hash() + body, err := rawdb.ReadBodyWithTransactions(tx, hash, number) if err != nil { return err } - if len(bodiesBatch) == blockBatchSize { - if err := e.chainRW.InsertBodiesAndWait(bodiesBatch, blockNumbersBatch, blockHashesBatch); err != nil { - return err - } - bodiesBatch = bodiesBatch[:0] - blockNumbersBatch = blockNumbersBatch[:0] - blockHashesBatch = blockHashesBatch[:0] + if body == nil { + return fmt.Errorf("missing body at block=%d", number) } - if len(k) != 40 { - continue + blocksBatch = append(blocksBatch, types.NewBlockFromStorage(hash, header, body.Transactions, nil, body.Withdrawals)) + if number%uint64(blockWrittenLogSize) == 0 { + e.logger.Info("[insertHeadersAndBodies] Written blocks", "progress", number, "to", toBlock) } - blockNumber := binary.BigEndian.Uint64(k[:length.BlockNum]) - var blockHash libcommon.Hash - copy(blockHash[:], k[length.BlockNum:]) - blockBody, err := rawdb.ReadBodyWithTransactions(tx, blockHash, blockNumber) - if err != nil { - return err - } - bodiesBatch = append(bodiesBatch, blockBody.RawBody()) - blockNumbersBatch = append(blockNumbersBatch, blockNumber) - blockHashesBatch = append(blockHashesBatch, blockHash) } - return e.chainRW.InsertBodiesAndWait(bodiesBatch, blockNumbersBatch, blockHashesBatch) + return e.chainRW.InsertBlocksAndWait(blocksBatch) + } diff --git a/turbo/engineapi/engine_block_downloader/core.go b/turbo/engineapi/engine_block_downloader/core.go index c487174488b..a581419f183 100644 --- a/turbo/engineapi/engine_block_downloader/core.go +++ b/turbo/engineapi/engine_block_downloader/core.go @@ -4,7 +4,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" "github.com/ledgerwatch/erigon-lib/kv/mdbx" - "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon-lib/kv/membatchwithdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/turbo/stages/headerdownload" ) @@ -32,13 +32,13 @@ func (e *EngineBlockDownloader) download(hashToDownload libcommon.Hash, download tx, err := e.db.BeginRo(e.ctx) if err != nil { - e.logger.Warn("[EngineBlockDownloader] Could not begin tx: %s", err) + e.logger.Warn("[EngineBlockDownloader] Could not begin tx", "err", err) e.status.Store(headerdownload.Idle) return } defer tx.Rollback() - tmpDb, err := mdbx.NewTemporaryMdbx() + tmpDb, err := mdbx.NewTemporaryMdbx(e.ctx, e.tmpdir) if err != nil { e.logger.Warn("[EngineBlockDownloader] Could create temporary mdbx", "err", err) e.status.Store(headerdownload.Idle) @@ -53,7 +53,7 @@ func (e *EngineBlockDownloader) download(hashToDownload libcommon.Hash, download } defer tmpTx.Rollback() - memoryMutation := memdb.NewMemoryBatchWithCustomDB(tx, tmpDb, tmpTx, e.tmpdir) + memoryMutation := membatchwithdb.NewMemoryBatchWithCustomDB(tx, tmpDb, tmpTx, e.tmpdir) defer memoryMutation.Rollback() startBlock, endBlock, startHash, err := e.loadDownloadedHeaders(memoryMutation) @@ -70,7 +70,7 @@ func (e *EngineBlockDownloader) download(hashToDownload libcommon.Hash, download return } tx.Rollback() // Discard the original db tx - if err := e.insertHeadersAndBodies(tmpTx, startBlock, startHash); err != nil { + if err := e.insertHeadersAndBodies(tmpTx, startBlock, startHash, endBlock); err != nil { e.logger.Warn("[EngineBlockDownloader] Could not insert headers and bodies", "err", err) e.status.Store(headerdownload.Idle) return @@ -81,7 +81,7 @@ func (e *EngineBlockDownloader) download(hashToDownload libcommon.Hash, download return } // Can fail, not an issue in this case. - e.chainRW.InsertHeaderAndBodyAndWait(block.Header(), block.RawBody()) + e.chainRW.InsertBlockAndWait(block) // Lastly attempt verification status, latestValidHash, err := e.chainRW.ValidateChain(block.Hash(), block.NumberU64()) if err != nil { diff --git a/turbo/engineapi/engine_helpers/fork_validator.go b/turbo/engineapi/engine_helpers/fork_validator.go index 7da1d3b88ce..9f742279a95 100644 --- a/turbo/engineapi/engine_helpers/fork_validator.go +++ b/turbo/engineapi/engine_helpers/fork_validator.go @@ -15,16 +15,19 @@ package engine_helpers import ( "context" + "errors" "fmt" + "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" "sync" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/cl/phase1/core/state/lru" + "github.com/ledgerwatch/erigon-lib/kv/membatchwithdb" + "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_types" "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core/rawdb" @@ -39,7 +42,7 @@ type validatePayloadFunc func(kv.RwTx, *types.Header, *types.RawBody, uint64, [] type ForkValidator struct { // current memory batch containing chain head that extend canonical fork. - memoryDiff *memdb.MemoryDiff + memoryDiff *membatchwithdb.MemoryDiff // notifications accumulated for the extending fork extendingForkNotifications *shards.Notifications // hash of chain head that extend canonical fork. @@ -93,7 +96,7 @@ func (fv *ForkValidator) ExtendingForkHeadHash() libcommon.Hash { return fv.extendingForkHeadHash } -// NotifyCurrentHeight is to be called at the end of the stage cycle and repressent the last processed block. +// NotifyCurrentHeight is to be called at the end of the stage cycle and represent the last processed block. func (fv *ForkValidator) NotifyCurrentHeight(currentHeight uint64) { fv.lock.Lock() defer fv.lock.Unlock() @@ -126,9 +129,9 @@ func (fv *ForkValidator) FlushExtendingFork(tx kv.RwTx, accumulator *shards.Accu } // ValidatePayload returns whether a payload is valid or invalid, or if cannot be determined, it will be accepted. -// if the payload extend the canonical chain, then we stack it in extendingFork without any unwind. -// if the payload is a fork then we unwind to the point where the fork meet the canonical chain and we check if it is valid or not from there. -// if for any reasons none of the action above can be performed due to lack of information, we accept the payload and avoid validation. +// if the payload extends the canonical chain, then we stack it in extendingFork without any unwind. +// if the payload is a fork then we unwind to the point where the fork meets the canonical chain, and there we check whether it is valid. +// if for any reason none of the actions above can be performed due to lack of information, we accept the payload and avoid validation. func (fv *ForkValidator) ValidatePayload(tx kv.Tx, header *types.Header, body *types.RawBody, extendCanonical bool) (status engine_types.EngineStatus, latestValidHash libcommon.Hash, validationError error, criticalError error) { fv.lock.Lock() defer fv.lock.Unlock() @@ -144,8 +147,11 @@ func (fv *ForkValidator) ValidatePayload(tx kv.Tx, header *types.Header, body *t return } + log.Debug("Execution ForkValidator.ValidatePayload", "extendCanonical", extendCanonical) if extendCanonical { - extendingFork := memdb.NewMemoryBatch(tx, fv.tmpDir) + extendingFork := membatchwithdb.NewMemoryBatch(tx, fv.tmpDir) + defer extendingFork.Close() + fv.extendingForkNotifications = &shards.Notifications{ Events: shards.NewEvents(), Accumulator: shards.NewAccumulator(), @@ -180,6 +186,8 @@ func (fv *ForkValidator) ValidatePayload(tx kv.Tx, header *types.Header, body *t return } + log.Debug("Execution ForkValidator.ValidatePayload", "foundCanonical", foundCanonical, "currentHash", currentHash, "unwindPoint", unwindPoint) + var bodiesChain []*types.RawBody var headersChain []*types.Header for !foundCanonical { @@ -187,10 +195,6 @@ func (fv *ForkValidator) ValidatePayload(tx kv.Tx, header *types.Header, body *t header *types.Header body *types.Body ) - body, criticalError = fv.blockReader.BodyWithTransactions(fv.ctx, tx, currentHash, unwindPoint) - if criticalError != nil { - return - } header, criticalError = fv.blockReader.Header(fv.ctx, tx, currentHash, unwindPoint) if criticalError != nil { return @@ -200,26 +204,31 @@ func (fv *ForkValidator) ValidatePayload(tx kv.Tx, header *types.Header, body *t status = engine_types.AcceptedStatus return } - headersChain = append([]*types.Header{header}, headersChain...) + body, criticalError = fv.blockReader.BodyWithTransactions(fv.ctx, tx, currentHash, unwindPoint) + if criticalError != nil { + return + } if body == nil { - bodiesChain = append([]*types.RawBody{nil}, bodiesChain...) - } else { - bodiesChain = append([]*types.RawBody{body.RawBody()}, bodiesChain...) - + criticalError = fmt.Errorf("found chain gap in block body at hash %s, number %d", currentHash, unwindPoint) + return } + headersChain = append([]*types.Header{header}, headersChain...) + bodiesChain = append([]*types.RawBody{body.RawBody()}, bodiesChain...) + currentHash = header.ParentHash unwindPoint = header.Number.Uint64() - 1 foundCanonical, criticalError = rawdb.IsCanonicalHash(tx, currentHash, unwindPoint) if criticalError != nil { return } + log.Debug("Execution ForkValidator.ValidatePayload", "foundCanonical", foundCanonical, "currentHash", currentHash, "unwindPoint", unwindPoint) } // Do not set an unwind point if we are already there. if unwindPoint == fv.currentHeight { unwindPoint = 0 } - batch := memdb.NewMemoryBatch(tx, fv.tmpDir) + batch := membatchwithdb.NewMemoryBatch(tx, fv.tmpDir) defer batch.Rollback() notifications := &shards.Notifications{ Events: shards.NewEvents(), @@ -229,7 +238,7 @@ func (fv *ForkValidator) ValidatePayload(tx kv.Tx, header *types.Header, body *t } // Clear wipes out current extending fork data, this method is called after fcu is called, -// because fcu decides what the head is and after the call is done all the non-chosed forks are +// because fcu decides what the head is and after the call is done all the non-chosen forks are // to be considered obsolete. func (fv *ForkValidator) clear() { fv.extendingForkHeadHash = libcommon.Hash{} @@ -237,8 +246,8 @@ func (fv *ForkValidator) clear() { fv.memoryDiff = nil } -// Clear wipes out current extending fork data and notify txpool. -func (fv *ForkValidator) ClearWithUnwind(tx kv.RwTx, accumulator *shards.Accumulator, c shards.StateChangeConsumer) { +// Clear wipes out current extending fork data. +func (fv *ForkValidator) ClearWithUnwind(accumulator *shards.Accumulator, c shards.StateChangeConsumer) { fv.lock.Lock() defer fv.lock.Unlock() fv.clear() @@ -247,7 +256,15 @@ func (fv *ForkValidator) ClearWithUnwind(tx kv.RwTx, accumulator *shards.Accumul // validateAndStorePayload validate and store a payload fork chain if such chain results valid. func (fv *ForkValidator) validateAndStorePayload(tx kv.RwTx, header *types.Header, body *types.RawBody, unwindPoint uint64, headersChain []*types.Header, bodiesChain []*types.RawBody, notifications *shards.Notifications) (status engine_types.EngineStatus, latestValidHash libcommon.Hash, validationError error, criticalError error) { - validationError = fv.validatePayload(tx, header, body, unwindPoint, headersChain, bodiesChain, notifications) + if err := fv.validatePayload(tx, header, body, unwindPoint, headersChain, bodiesChain, notifications); err != nil { + if errors.Is(err, consensus.ErrInvalidBlock) { + validationError = err + } else { + criticalError = fmt.Errorf("validateAndStorePayload: %w", err) + return + } + } + latestValidHash = header.Hash() if validationError != nil { var latestValidNumber uint64 @@ -255,7 +272,6 @@ func (fv *ForkValidator) validateAndStorePayload(tx kv.RwTx, header *types.Heade if criticalError != nil { return } - fmt.Println(latestValidNumber) latestValidHash, criticalError = rawdb.ReadCanonicalHash(tx, latestValidNumber) if criticalError != nil { return diff --git a/turbo/engineapi/engine_server.go b/turbo/engineapi/engine_server.go index 56747477bfa..c302139d91c 100644 --- a/turbo/engineapi/engine_server.go +++ b/turbo/engineapi/engine_server.go @@ -1,7 +1,6 @@ package engineapi import ( - "bytes" "context" "encoding/binary" "errors" @@ -11,23 +10,24 @@ import ( "sync" "time" - "github.com/ledgerwatch/erigon-lib/gointerfaces" - "github.com/ledgerwatch/erigon-lib/kv" - libstate "github.com/ledgerwatch/erigon-lib/state" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon/cl/clparams" + + "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/gointerfaces" "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" + "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcache" - "github.com/ledgerwatch/log/v3" + libstate "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/cl/clparams" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/merge" @@ -76,12 +76,12 @@ func NewEngineServer(ctx context.Context, logger log.Logger, config *chain.Confi } } -func (e *EngineServer) Start(httpConfig httpcfg.HttpCfg, db kv.RoDB, blockReader services.FullBlockReader, +func (e *EngineServer) Start(httpConfig *httpcfg.HttpCfg, db kv.RoDB, blockReader services.FullBlockReader, filters *rpchelper.Filters, stateCache kvcache.Cache, agg *libstate.AggregatorV3, engineReader consensus.EngineReader, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient) { base := jsonrpc.NewBaseApi(filters, stateCache, blockReader, agg, httpConfig.WithDatadir, httpConfig.EvmCallTimeout, engineReader, httpConfig.Dirs) - ethImpl := jsonrpc.NewEthAPI(base, db, eth, txPool, mining, httpConfig.Gascap, httpConfig.ReturnDataLimit, e.logger) + ethImpl := jsonrpc.NewEthAPI(base, db, eth, txPool, mining, httpConfig.Gascap, httpConfig.ReturnDataLimit, httpConfig.AllowUnprotectedTxs, httpConfig.MaxGetProofRewindBlockCount, e.logger) // engineImpl := NewEngineAPI(base, db, engineBackend) // e.startEngineMessageHandler() @@ -113,6 +113,39 @@ func (s *EngineServer) checkWithdrawalsPresence(time uint64, withdrawals []*type return nil } +func (s *EngineServer) validatePayloadBlobs(req *engine_types.ExecutionPayload, + expectedBlobHashes []libcommon.Hash, transactions *[]types.Transaction) (*engine_types.PayloadStatus, error) { + if expectedBlobHashes == nil { + return nil, &rpc.InvalidParamsError{Message: "nil blob hashes array"} + } + actualBlobHashes := []libcommon.Hash{} + for _, txn := range *transactions { + actualBlobHashes = append(actualBlobHashes, txn.GetBlobHashes()...) + } + if len(actualBlobHashes) > int(s.config.GetMaxBlobsPerBlock()) || req.BlobGasUsed.Uint64() > s.config.GetMaxBlobGasPerBlock() { + s.logger.Warn("[NewPayload] blobs/blobGasUsed exceeds max per block", + "count", len(actualBlobHashes), "BlobGasUsed", req.BlobGasUsed.Uint64()) + bad, latestValidHash := s.hd.IsBadHeaderPoS(req.ParentHash) + if !bad { + latestValidHash = req.ParentHash + } + return &engine_types.PayloadStatus{ + Status: engine_types.InvalidStatus, + ValidationError: engine_types.NewStringifiedErrorFromString("blobs/blobgas exceeds max"), + LatestValidHash: &latestValidHash, + }, nil + } + if !reflect.DeepEqual(actualBlobHashes, expectedBlobHashes) { + s.logger.Warn("[NewPayload] mismatch in blob hashes", + "expectedBlobHashes", expectedBlobHashes, "actualBlobHashes", actualBlobHashes) + return &engine_types.PayloadStatus{ + Status: engine_types.InvalidStatus, + ValidationError: engine_types.NewStringifiedErrorFromString("mismatch in blob hashes"), + }, nil + } + return nil, nil +} + // EngineNewPayload validates and possibly executes payload func (s *EngineServer) newPayload(ctx context.Context, req *engine_types.ExecutionPayload, expectedBlobHashes []libcommon.Hash, parentBeaconBlockRoot *libcommon.Hash, version clparams.StateVersion, @@ -158,6 +191,9 @@ func (s *EngineServer) newPayload(ctx context.Context, req *engine_types.Executi } if version >= clparams.DenebVersion { + if req.BlobGasUsed == nil || req.ExcessBlobGas == nil || parentBeaconBlockRoot == nil { + return nil, &rpc.InvalidParamsError{Message: "blobGasUsed/excessBlobGas/beaconRoot missing"} + } header.BlobGasUsed = (*uint64)(req.BlobGasUsed) header.ExcessBlobGas = (*uint64)(req.ExcessBlobGas) header.ParentBeaconBlockRoot = parentBeaconBlockRoot @@ -168,14 +204,6 @@ func (s *EngineServer) newPayload(ctx context.Context, req *engine_types.Executi return nil, &rpc.UnsupportedForkError{Message: "Unsupported fork"} } - if s.config.IsCancun(header.Time) && (header.BlobGasUsed == nil || header.ExcessBlobGas == nil) { - return nil, &rpc.InvalidParamsError{Message: "blobGasUsed/excessBlobGas missing"} - } - - if s.config.IsCancun(header.Time) && header.ParentBeaconBlockRoot == nil { - return nil, &rpc.InvalidParamsError{Message: "parentBeaconBlockRoot missing"} - } - blockHash := req.BlockHash if header.Hash() != blockHash { s.logger.Error("[NewPayload] invalid block hash", "stated", blockHash, "actual", header.Hash()) @@ -204,17 +232,9 @@ func (s *EngineServer) newPayload(ctx context.Context, req *engine_types.Executi }, nil } if version >= clparams.DenebVersion { - actualBlobHashes := []libcommon.Hash{} - for _, tx := range transactions { - actualBlobHashes = append(actualBlobHashes, tx.GetBlobHashes()...) - } - if !reflect.DeepEqual(actualBlobHashes, expectedBlobHashes) { - s.logger.Warn("[NewPayload] mismatch in blob hashes", - "expectedBlobHashes", expectedBlobHashes, "actualBlobHashes", actualBlobHashes) - return &engine_types.PayloadStatus{ - Status: engine_types.InvalidStatus, - ValidationError: engine_types.NewStringifiedErrorFromString("mismatch in blob hashes"), - }, nil + status, err := s.validatePayloadBlobs(req, expectedBlobHashes, &transactions) + if err != nil || status != nil { + return status, err } } @@ -363,7 +383,7 @@ func (s *EngineServer) getQuickPayloadStatusIfPossible(blockHash libcommon.Hash, } // EngineGetPayload retrieves previously assembled payload (Validators only) -func (s *EngineServer) getPayload(ctx context.Context, payloadId uint64) (*engine_types.GetPayloadResponse, error) { +func (s *EngineServer) getPayload(ctx context.Context, payloadId uint64, version clparams.StateVersion) (*engine_types.GetPayloadResponse, error) { if !s.proposing { return nil, fmt.Errorf("execution layer not running as a proposer. enable proposer by taking out the --proposer.disable flag on startup") } @@ -394,6 +414,12 @@ func (s *EngineServer) getPayload(ctx context.Context, payloadId uint64) (*engin } data := resp.Data + ts := data.ExecutionPayload.Timestamp + if (!s.config.IsCancun(ts) && version >= clparams.DenebVersion) || + (s.config.IsCancun(ts) && version < clparams.DenebVersion) { + return nil, &rpc.UnsupportedForkError{Message: "Unsupported fork"} + } + return &engine_types.GetPayloadResponse{ ExecutionPayload: engine_types.ConvertPayloadFromRpc(data.ExecutionPayload), BlockValue: (*hexutil.Big)(gointerfaces.ConvertH256ToUint256Int(data.BlockValue).ToBig()), @@ -425,6 +451,23 @@ func (s *EngineServer) forkchoiceUpdated(ctx context.Context, forkchoiceState *e } } + if payloadAttributes != nil { + if version < clparams.DenebVersion && payloadAttributes.ParentBeaconBlockRoot != nil { + return nil, &engine_helpers.InvalidPayloadAttributesErr // Unexpected Beacon Root + } + if version >= clparams.DenebVersion && payloadAttributes.ParentBeaconBlockRoot == nil { + return nil, &engine_helpers.InvalidPayloadAttributesErr // Beacon Root missing + } + + timestamp := uint64(payloadAttributes.Timestamp) + if !s.config.IsCancun(timestamp) && version >= clparams.DenebVersion { // V3 before cancun + return nil, &rpc.UnsupportedForkError{Message: "Unsupported fork"} + } + if s.config.IsCancun(timestamp) && version < clparams.DenebVersion { // Not V3 after cancun + return nil, &rpc.UnsupportedForkError{Message: "Unsupported fork"} + } + } + // No need for payload building if payloadAttributes == nil || status.Status != engine_types.ValidStatus { return &engine_types.ForkChoiceUpdatedResponse{PayloadStatus: status}, nil @@ -434,27 +477,9 @@ func (s *EngineServer) forkchoiceUpdated(ctx context.Context, forkchoiceState *e return nil, fmt.Errorf("execution layer not running as a proposer. enable proposer by taking out the --proposer.disable flag on startup") } - timestamp := uint64(payloadAttributes.Timestamp) - if (!s.config.IsCancun(timestamp) && version >= clparams.DenebVersion) || - (s.config.IsCancun(timestamp) && version < clparams.DenebVersion) { - return nil, &rpc.UnsupportedForkError{Message: "Unsupported fork"} - } - headHeader := s.chainRW.GetHeaderByHash(forkchoiceState.HeadHash) - if headHeader.Hash() != forkchoiceState.HeadHash { - // Per Item 2 of https://github.com/ethereum/execution-apis/blob/v1.0.0-alpha.9/src/engine/specification.md#specification-1: - // Client software MAY skip an update of the forkchoice state and - // MUST NOT begin a payload build process if forkchoiceState.headBlockHash doesn't reference a leaf of the block tree. - // That is, the block referenced by forkchoiceState.headBlockHash is neither the head of the canonical chain nor a block at the tip of any other chain. - // In the case of such an event, client software MUST return - // {payloadStatus: {status: VALID, latestValidHash: forkchoiceState.headBlockHash, validationError: null}, payloadId: null}. - - s.logger.Warn("Skipping payload building because forkchoiceState.headBlockHash is not the head of the canonical chain", - "forkChoice.HeadBlockHash", forkchoiceState.HeadHash, "headHeader.Hash", headHeader.Hash()) - return &engine_types.ForkChoiceUpdatedResponse{PayloadStatus: status}, nil - } - + timestamp := uint64(payloadAttributes.Timestamp) if headHeader.Time >= timestamp { return nil, &engine_helpers.InvalidPayloadAttributesErr } @@ -471,7 +496,7 @@ func (s *EngineServer) forkchoiceUpdated(ctx context.Context, forkchoiceState *e } if version >= clparams.DenebVersion { - req.ParentBeaconBlockRoot = gointerfaces.ConvertHashToH256(payloadAttributes.ParentBeaconBlockRoot) + req.ParentBeaconBlockRoot = gointerfaces.ConvertHashToH256(*payloadAttributes.ParentBeaconBlockRoot) } resp, err := s.executionService.AssembleBlock(ctx, req) @@ -491,65 +516,52 @@ func (s *EngineServer) forkchoiceUpdated(ctx context.Context, forkchoiceState *e } func (s *EngineServer) getPayloadBodiesByHash(ctx context.Context, request []libcommon.Hash, _ clparams.StateVersion) ([]*engine_types.ExecutionPayloadBodyV1, error) { - - bodies := make([]*engine_types.ExecutionPayloadBodyV1, len(request)) - - for hashIdx, hash := range request { - block := s.chainRW.GetBlockByHash(hash) - body, err := extractPayloadBodyFromBlock(block) - if err != nil { - return nil, err - } - bodies[hashIdx] = body + bodies, err := s.chainRW.GetBodiesByHashes(request) + if err != nil { + return nil, err } - return bodies, nil + resp := make([]*engine_types.ExecutionPayloadBodyV1, len(bodies)) + for idx, body := range bodies { + resp[idx] = extractPayloadBodyFromBody(body) + } + return resp, nil } -func extractPayloadBodyFromBlock(block *types.Block) (*engine_types.ExecutionPayloadBodyV1, error) { - if block == nil { - return nil, nil +func extractPayloadBodyFromBody(body *types.RawBody) *engine_types.ExecutionPayloadBodyV1 { + if body == nil { + return nil } - txs := block.Transactions() - bdTxs := make([]hexutility.Bytes, len(txs)) - for idx, tx := range txs { - var buf bytes.Buffer - if err := tx.MarshalBinary(&buf); err != nil { - return nil, err - } else { - bdTxs[idx] = buf.Bytes() - } + bdTxs := make([]hexutility.Bytes, len(body.Transactions)) + for idx := range body.Transactions { + bdTxs[idx] = body.Transactions[idx] } - return &engine_types.ExecutionPayloadBodyV1{Transactions: bdTxs, Withdrawals: block.Withdrawals()}, nil + return &engine_types.ExecutionPayloadBodyV1{Transactions: bdTxs, Withdrawals: body.Withdrawals} } func (s *EngineServer) getPayloadBodiesByRange(ctx context.Context, start, count uint64, _ clparams.StateVersion) ([]*engine_types.ExecutionPayloadBodyV1, error) { - bodies := make([]*engine_types.ExecutionPayloadBodyV1, 0, count) - - for i := uint64(0); i < count; i++ { - block := s.chainRW.GetBlockByNumber(start + i) - - body, err := extractPayloadBodyFromBlock(block) - if err != nil { - return nil, err - } - if body == nil { - break - } - bodies = append(bodies, body) + bodies, err := s.chainRW.GetBodiesByRange(start, count) + if err != nil { + return nil, err } - return bodies, nil + resp := make([]*engine_types.ExecutionPayloadBodyV1, len(bodies)) + for idx, body := range bodies { + resp[idx] = extractPayloadBodyFromBody(body) + } + return resp, nil } +// Returns the most recent version of the payload(for the payloadID) at the time of receiving the call +// See https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_getpayloadv1 func (e *EngineServer) GetPayloadV1(ctx context.Context, payloadId hexutility.Bytes) (*engine_types.ExecutionPayload, error) { decodedPayloadId := binary.BigEndian.Uint64(payloadId) e.logger.Info("Received GetPayloadV1", "payloadId", decodedPayloadId) - response, err := e.getPayload(ctx, decodedPayloadId) + response, err := e.getPayload(ctx, decodedPayloadId, clparams.BellatrixVersion) if err != nil { return nil, err } @@ -557,28 +569,38 @@ func (e *EngineServer) GetPayloadV1(ctx context.Context, payloadId hexutility.By return response.ExecutionPayload, nil } +// Same as [GetPayloadV1] with addition of blockValue +// See https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_getpayloadv2 func (e *EngineServer) GetPayloadV2(ctx context.Context, payloadID hexutility.Bytes) (*engine_types.GetPayloadResponse, error) { decodedPayloadId := binary.BigEndian.Uint64(payloadID) e.logger.Info("Received GetPayloadV2", "payloadId", decodedPayloadId) - - return e.getPayload(ctx, decodedPayloadId) + return e.getPayload(ctx, decodedPayloadId, clparams.CapellaVersion) } +// Same as [GetPayloadV2], with addition of blobsBundle containing valid blobs, commitments, proofs +// See https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_getpayloadv3 func (e *EngineServer) GetPayloadV3(ctx context.Context, payloadID hexutility.Bytes) (*engine_types.GetPayloadResponse, error) { decodedPayloadId := binary.BigEndian.Uint64(payloadID) e.logger.Info("Received GetPayloadV3", "payloadId", decodedPayloadId) - - return e.getPayload(ctx, decodedPayloadId) + return e.getPayload(ctx, decodedPayloadId, clparams.DenebVersion) } +// Updates the forkchoice state after validating the headBlockHash +// Additionally, builds and returns a unique identifier for an initial version of a payload +// (asynchronously updated with transactions), if payloadAttributes is not nil and passes validation +// See https://github.com/ethereum/execution-apis/blob/main/src/engine/paris.md#engine_forkchoiceupdatedv1 func (e *EngineServer) ForkchoiceUpdatedV1(ctx context.Context, forkChoiceState *engine_types.ForkChoiceState, payloadAttributes *engine_types.PayloadAttributes) (*engine_types.ForkChoiceUpdatedResponse, error) { return e.forkchoiceUpdated(ctx, forkChoiceState, payloadAttributes, clparams.BellatrixVersion) } +// Same as, and a replacement for, [ForkchoiceUpdatedV1], post Shanghai +// See https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_forkchoiceupdatedv2 func (e *EngineServer) ForkchoiceUpdatedV2(ctx context.Context, forkChoiceState *engine_types.ForkChoiceState, payloadAttributes *engine_types.PayloadAttributes) (*engine_types.ForkChoiceUpdatedResponse, error) { return e.forkchoiceUpdated(ctx, forkChoiceState, payloadAttributes, clparams.CapellaVersion) } +// Successor of [ForkchoiceUpdatedV2] post Cancun, with stricter check on params +// See https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_forkchoiceupdatedv3 func (e *EngineServer) ForkchoiceUpdatedV3(ctx context.Context, forkChoiceState *engine_types.ForkChoiceState, payloadAttributes *engine_types.PayloadAttributes) (*engine_types.ForkChoiceUpdatedResponse, error) { return e.forkchoiceUpdated(ctx, forkChoiceState, payloadAttributes, clparams.DenebVersion) } @@ -623,6 +645,8 @@ func (e *EngineServer) ExchangeTransitionConfigurationV1(ctx context.Context, be }, nil } +// Returns an array of execution payload bodies referenced by their block hashes +// See https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_getpayloadbodiesbyhashv1 func (e *EngineServer) GetPayloadBodiesByHashV1(ctx context.Context, hashes []libcommon.Hash) ([]*engine_types.ExecutionPayloadBodyV1, error) { if len(hashes) > 1024 { return nil, &engine_helpers.TooLargeRequestErr @@ -631,6 +655,8 @@ func (e *EngineServer) GetPayloadBodiesByHashV1(ctx context.Context, hashes []li return e.getPayloadBodiesByHash(ctx, hashes, clparams.DenebVersion) } +// Returns an ordered (as per canonical chain) array of execution payload bodies, with corresponding execution block numbers from "start", up to "count" +// See https://github.com/ethereum/execution-apis/blob/main/src/engine/shanghai.md#engine_getpayloadbodiesbyrangev1 func (e *EngineServer) GetPayloadBodiesByRangeV1(ctx context.Context, start, count hexutil.Uint64) ([]*engine_types.ExecutionPayloadBodyV1, error) { if start == 0 || count == 0 { return nil, &rpc.InvalidParamsError{Message: fmt.Sprintf("invalid start or count, start: %v count: %v", start, count)} @@ -645,6 +671,7 @@ func (e *EngineServer) GetPayloadBodiesByRangeV1(ctx context.Context, start, cou var ourCapabilities = []string{ "engine_forkchoiceUpdatedV1", "engine_forkchoiceUpdatedV2", + "engine_forkchoiceUpdatedV3", "engine_newPayloadV1", "engine_newPayloadV2", "engine_newPayloadV3", @@ -731,7 +758,7 @@ func (e *EngineServer) HandleNewPayload( return &engine_types.PayloadStatus{Status: engine_types.SyncingStatus}, nil } } - if err := e.chainRW.InsertHeaderAndBodyAndWait(header, block.RawBody()); err != nil { + if err := e.chainRW.InsertBlockAndWait(block); err != nil { return nil, err } diff --git a/turbo/engineapi/engine_types/jsonrpc.go b/turbo/engineapi/engine_types/jsonrpc.go index 5f21258a57d..3e3bbde23e8 100644 --- a/turbo/engineapi/engine_types/jsonrpc.go +++ b/turbo/engineapi/engine_types/jsonrpc.go @@ -5,11 +5,13 @@ import ( "encoding/json" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/gointerfaces" + "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) @@ -47,7 +49,7 @@ type PayloadAttributes struct { PrevRandao common.Hash `json:"prevRandao" gencodec:"required"` SuggestedFeeRecipient common.Address `json:"suggestedFeeRecipient" gencodec:"required"` Withdrawals []*types.Withdrawal `json:"withdrawals"` - ParentBeaconBlockRoot common.Hash `json:"parentBeaconBlockRoot"` + ParentBeaconBlockRoot *common.Hash `json:"parentBeaconBlockRoot"` } // TransitionConfiguration represents the correct configurations of the CL and the EL @@ -59,9 +61,9 @@ type TransitionConfiguration struct { // BlobsBundleV1 holds the blobs of an execution payload type BlobsBundleV1 struct { - Commitments []types.KZGCommitment `json:"commitments" gencodec:"required"` - Proofs []types.KZGProof `json:"proofs" gencodec:"required"` - Blobs []types.Blob `json:"blobs" gencodec:"required"` + Commitments []hexutility.Bytes `json:"commitments" gencodec:"required"` + Proofs []hexutility.Bytes `json:"proofs" gencodec:"required"` + Blobs []hexutility.Bytes `json:"blobs" gencodec:"required"` } type ExecutionPayloadBodyV1 struct { @@ -82,9 +84,10 @@ type ForkChoiceUpdatedResponse struct { } type GetPayloadResponse struct { - ExecutionPayload *ExecutionPayload `json:"executionPayload" gencodec:"required"` - BlockValue *hexutil.Big `json:"blockValue" ` - BlobsBundle *BlobsBundleV1 `json:"blobsBundle"` + ExecutionPayload *ExecutionPayload `json:"executionPayload" gencodec:"required"` + BlockValue *hexutil.Big `json:"blockValue"` + BlobsBundle *BlobsBundleV1 `json:"blobsBundle"` + ShouldOverrideBuilder bool `json:"shouldOverrideBuilder"` } type StringifiedError struct{ err error } @@ -108,6 +111,47 @@ func (e StringifiedError) Error() error { return e.err } +func ConvertRpcBlockToExecutionPayload(payload *execution.Block) *ExecutionPayload { + header := payload.Header + body := payload.Body + + var bloom types.Bloom = gointerfaces.ConvertH2048ToBloom(header.LogsBloom) + baseFee := gointerfaces.ConvertH256ToUint256Int(header.BaseFeePerGas).ToBig() + + // Convert slice of hexutility.Bytes to a slice of slice of bytes + transactions := make([]hexutility.Bytes, len(body.Transactions)) + for i, transaction := range body.Transactions { + transactions[i] = transaction + } + + res := &ExecutionPayload{ + ParentHash: gointerfaces.ConvertH256ToHash(header.ParentHash), + FeeRecipient: gointerfaces.ConvertH160toAddress(header.Coinbase), + StateRoot: gointerfaces.ConvertH256ToHash(header.StateRoot), + ReceiptsRoot: gointerfaces.ConvertH256ToHash(header.ReceiptRoot), + LogsBloom: bloom[:], + PrevRandao: gointerfaces.ConvertH256ToHash(header.PrevRandao), + BlockNumber: hexutil.Uint64(header.BlockNumber), + GasLimit: hexutil.Uint64(header.GasLimit), + GasUsed: hexutil.Uint64(header.GasUsed), + Timestamp: hexutil.Uint64(header.Timestamp), + ExtraData: header.ExtraData, + BaseFeePerGas: (*hexutil.Big)(baseFee), + BlockHash: gointerfaces.ConvertH256ToHash(header.BlockHash), + Transactions: transactions, + } + if header.WithdrawalHash != nil { + res.Withdrawals = ConvertWithdrawalsFromRpc(body.Withdrawals) + } + if header.BlobGasUsed != nil { + blobGasUsed := *header.BlobGasUsed + res.BlobGasUsed = (*hexutil.Uint64)(&blobGasUsed) + excessBlobGas := *header.ExcessBlobGas + res.ExcessBlobGas = (*hexutil.Uint64)(&excessBlobGas) + } + return res +} + func ConvertPayloadFromRpc(payload *types2.ExecutionPayload) *ExecutionPayload { var bloom types.Bloom = gointerfaces.ConvertH2048ToBloom(payload.LogsBloom) baseFee := gointerfaces.ConvertH256ToUint256Int(payload.BaseFeePerGas).ToBig() @@ -151,18 +195,18 @@ func ConvertBlobsFromRpc(bundle *types2.BlobsBundleV1) *BlobsBundleV1 { return nil } res := &BlobsBundleV1{ - Commitments: make([]types.KZGCommitment, len(bundle.Commitments)), - Proofs: make([]types.KZGProof, len(bundle.Proofs)), - Blobs: make([]types.Blob, len(bundle.Blobs)), + Commitments: make([]hexutility.Bytes, len(bundle.Commitments)), + Proofs: make([]hexutility.Bytes, len(bundle.Proofs)), + Blobs: make([]hexutility.Bytes, len(bundle.Blobs)), } for i, commitment := range bundle.Commitments { - copy(res.Commitments[i][:], commitment) + res.Commitments[i] = hexutility.Bytes(commitment) } for i, proof := range bundle.Proofs { - copy(res.Proofs[i][:], proof) + res.Proofs[i] = hexutility.Bytes(proof) } for i, blob := range bundle.Blobs { - copy(res.Blobs[i][:], blob) + res.Blobs[i] = hexutility.Bytes(blob) } return res } diff --git a/turbo/engineapi/interface.go b/turbo/engineapi/interface.go index a4d613171c2..cca6c812af3 100644 --- a/turbo/engineapi/interface.go +++ b/turbo/engineapi/interface.go @@ -2,10 +2,9 @@ package engineapi import ( "context" - "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_types" ) diff --git a/turbo/execution/eth1/block_building.go b/turbo/execution/eth1/block_building.go index cbd161ec065..6e8174e782d 100644 --- a/turbo/execution/eth1/block_building.go +++ b/turbo/execution/eth1/block_building.go @@ -12,7 +12,6 @@ import ( "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" @@ -32,7 +31,7 @@ func (e *EthereumExecutionModule) checkWithdrawalsPresence(time uint64, withdraw } func (e *EthereumExecutionModule) evictOldBuilders() { - ids := common.SortedKeys(e.builders) + ids := libcommon.SortedKeys(e.builders) // remove old builders so that at most MaxBuilders - 1 remain for i := 0; i <= len(e.builders)-engine_helpers.MaxBuilders; i++ { @@ -181,13 +180,19 @@ func (e *EthereumExecutionModule) GetAssembledBlock(ctx context.Context, req *ex "versioned hashes (%d)", i, block.Hash(), len(commitments), len(proofs), len(blobs), lenCheck) } for _, commitment := range commitments { - blobsBundle.Commitments = append(blobsBundle.Commitments, commitment[:]) + c := types.KZGCommitment{} + copy(c[:], commitment[:]) + blobsBundle.Commitments = append(blobsBundle.Commitments, c[:]) } for _, proof := range proofs { - blobsBundle.Proofs = append(blobsBundle.Proofs, proof[:]) + p := types.KZGProof{} + copy(p[:], proof[:]) + blobsBundle.Proofs = append(blobsBundle.Proofs, p[:]) } for _, blob := range blobs { - blobsBundle.Blobs = append(blobsBundle.Blobs, blob[:]) + b := types.Blob{} + copy(b[:], blob[:]) + blobsBundle.Blobs = append(blobsBundle.Blobs, b[:]) } } diff --git a/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go b/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go index 22968733181..756352b7df8 100644 --- a/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go +++ b/turbo/execution/eth1/eth1_chain_reader.go/chain_reader.go @@ -10,6 +10,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/gointerfaces" "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" + types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/turbo/execution/eth1/eth1_utils" "github.com/ledgerwatch/log/v3" @@ -181,6 +182,39 @@ func (c ChainReaderWriterEth1) GetTd(hash libcommon.Hash, number uint64) *big.In return eth1_utils.ConvertBigIntFromRpc(resp.Td) } +func (c ChainReaderWriterEth1) GetBodiesByHashes(hashes []libcommon.Hash) ([]*types.RawBody, error) { + grpcHashes := make([]*types2.H256, len(hashes)) + for i := range grpcHashes { + grpcHashes[i] = gointerfaces.ConvertHashToH256(hashes[i]) + } + resp, err := c.executionModule.GetBodiesByHashes(c.ctx, &execution.GetBodiesByHashesRequest{ + Hashes: grpcHashes, + }) + if err != nil { + return nil, err + } + ret := make([]*types.RawBody, len(resp.Bodies)) + for i := range ret { + ret[i] = eth1_utils.ConvertRawBlockBodyFromRpc(resp.Bodies[i]) + } + return ret, nil +} + +func (c ChainReaderWriterEth1) GetBodiesByRange(start, count uint64) ([]*types.RawBody, error) { + resp, err := c.executionModule.GetBodiesByRange(c.ctx, &execution.GetBodiesByRangeRequest{ + Start: start, + Count: count, + }) + if err != nil { + return nil, err + } + ret := make([]*types.RawBody, len(resp.Bodies)) + for i := range ret { + ret[i] = eth1_utils.ConvertRawBlockBodyFromRpc(resp.Bodies[i]) + } + return ret, nil +} + func (c ChainReaderWriterEth1) Ready() (bool, error) { resp, err := c.executionModule.Ready(c.ctx, &emptypb.Empty{}) if err != nil { @@ -211,17 +245,21 @@ func (c ChainReaderWriterEth1) IsCanonicalHash(hash libcommon.Hash) (bool, error return resp.Canonical, nil } -func (ChainReaderWriterEth1) FrozenBlocks() uint64 { - panic("ChainReaderEth1.FrozenBlocks not implemented") +func (c ChainReaderWriterEth1) FrozenBlocks() uint64 { + ret, err := c.executionModule.FrozenBlocks(c.ctx, &emptypb.Empty{}) + if err != nil { + panic(err) + } + return ret.FrozenBlocks } const retryTimeout = 10 * time.Millisecond -func (c ChainReaderWriterEth1) InsertHeadersAndWait(headers []*types.Header) error { - request := &execution.InsertHeadersRequest{ - Headers: eth1_utils.HeadersToHeadersRPC(headers), +func (c ChainReaderWriterEth1) InsertBlocksAndWait(blocks []*types.Block) error { + request := &execution.InsertBlocksRequest{ + Blocks: eth1_utils.ConvertBlocksToRPC(blocks), } - response, err := c.executionModule.InsertHeaders(c.ctx, request) + response, err := c.executionModule.InsertBlocks(c.ctx, request) if err != nil { return err } @@ -230,7 +268,7 @@ func (c ChainReaderWriterEth1) InsertHeadersAndWait(headers []*types.Header) err for response.Result == execution.ExecutionStatus_Busy { select { case <-retryInterval.C: - response, err = c.executionModule.InsertHeaders(c.ctx, request) + response, err = c.executionModule.InsertBlocks(c.ctx, request) if err != nil { return err } @@ -244,46 +282,8 @@ func (c ChainReaderWriterEth1) InsertHeadersAndWait(headers []*types.Header) err return nil } -func (c ChainReaderWriterEth1) InsertBodiesAndWait(bodies []*types.RawBody, blockNumbers []uint64, blockHashes []libcommon.Hash) error { - request := &execution.InsertBodiesRequest{ - Bodies: eth1_utils.ConvertRawBlockBodiesToRpc(bodies, blockNumbers, blockHashes), - } - response, err := c.executionModule.InsertBodies(c.ctx, request) - if err != nil { - return err - } - retryInterval := time.NewTicker(retryTimeout) - defer retryInterval.Stop() - for response.Result == execution.ExecutionStatus_Busy { - select { - case <-retryInterval.C: - response, err = c.executionModule.InsertBodies(c.ctx, request) - if err != nil { - return err - } - case <-c.ctx.Done(): - return context.Canceled - } - } - if response.Result != execution.ExecutionStatus_Success { - return fmt.Errorf("InsertBodiesAndWait: invalid code recieved from execution module: %s", response.Result.String()) - } - return nil -} - -func (c ChainReaderWriterEth1) InsertHeaderAndWait(header *types.Header) error { - return c.InsertHeadersAndWait([]*types.Header{header}) -} - -func (c ChainReaderWriterEth1) InsertBodyAndWait(body *types.RawBody, blockNumber uint64, blockHash libcommon.Hash) error { - return c.InsertBodiesAndWait([]*types.RawBody{body}, []uint64{blockNumber}, []libcommon.Hash{blockHash}) -} - -func (c ChainReaderWriterEth1) InsertHeaderAndBodyAndWait(header *types.Header, body *types.RawBody) error { - if err := c.InsertHeaderAndWait(header); err != nil { - return err - } - return c.InsertBodyAndWait(body, header.Number.Uint64(), header.Hash()) +func (c ChainReaderWriterEth1) InsertBlockAndWait(block *types.Block) error { + return c.InsertBlocksAndWait([]*types.Block{block}) } func (c ChainReaderWriterEth1) ValidateChain(hash libcommon.Hash, number uint64) (execution.ExecutionStatus, libcommon.Hash, error) { diff --git a/turbo/execution/eth1/eth1_utils/grpc.go b/turbo/execution/eth1/eth1_utils/grpc.go index 710f143789f..692e0755392 100644 --- a/turbo/execution/eth1/eth1_utils/grpc.go +++ b/turbo/execution/eth1/eth1_utils/grpc.go @@ -23,11 +23,8 @@ func HeaderToHeaderRPC(header *types.Header) *execution.Header { baseFee.SetFromBig(header.BaseFee) baseFeeReply = gointerfaces.ConvertUint256IntToH256(&baseFee) } - var withdrawalHashReply *types2.H256 - if header.WithdrawalsHash != nil { - withdrawalHashReply = gointerfaces.ConvertHashToH256(*header.WithdrawalsHash) - } - return &execution.Header{ + + h := &execution.Header{ ParentHash: gointerfaces.ConvertHashToH256(header.ParentHash), Coinbase: gointerfaces.ConvertAddressToH160(header.Coinbase), StateRoot: gointerfaces.ConvertHashToH256(header.Root), @@ -45,10 +42,26 @@ func HeaderToHeaderRPC(header *types.Header) *execution.Header { BlockHash: gointerfaces.ConvertHashToH256(header.Hash()), OmmerHash: gointerfaces.ConvertHashToH256(header.UncleHash), BaseFeePerGas: baseFeeReply, - WithdrawalHash: withdrawalHashReply, - ExcessBlobGas: header.ExcessBlobGas, - BlobGasUsed: header.BlobGasUsed, } + + if header.ExcessBlobGas != nil { + h.ExcessBlobGas = header.ExcessBlobGas + h.BlobGasUsed = header.BlobGasUsed + } + + if header.WithdrawalsHash != nil { + h.WithdrawalHash = gointerfaces.ConvertHashToH256(*header.WithdrawalsHash) + } + + if header.ParentBeaconBlockRoot != nil { + h.ParentBeaconBlockRoot = gointerfaces.ConvertHashToH256(*header.ParentBeaconBlockRoot) + } + + if len(header.AuRaSeal) > 0 { + h.AuraSeal = header.AuRaSeal + h.AuraStep = &header.AuRaStep + } + return h } func HeadersToHeadersRPC(headers []*types.Header) []*execution.Header { @@ -59,6 +72,25 @@ func HeadersToHeadersRPC(headers []*types.Header) []*execution.Header { return ret } +func ConvertBlocksToRPC(blocks []*types.Block) []*execution.Block { + ret := []*execution.Block{} + for _, block := range blocks { + ret = append(ret, ConvertBlockToRPC(block)) + } + return ret +} + +func ConvertBlockToRPC(block *types.Block) *execution.Block { + h := HeaderToHeaderRPC(block.Header()) + blockHash := block.Hash() + h.BlockHash = gointerfaces.ConvertHashToH256(blockHash) + + return &execution.Block{ + Header: h, + Body: ConvertRawBlockBodyToRpc(block.RawBody(), h.BlockNumber, blockHash), + } +} + func HeaderRpcToHeader(header *execution.Header) (*types.Header, error) { var blockNonce types.BlockNonce binary.BigEndian.PutUint64(blockNonce[:], header.Nonce) @@ -81,6 +113,10 @@ func HeaderRpcToHeader(header *execution.Header) (*types.Header, error) { BlobGasUsed: header.BlobGasUsed, ExcessBlobGas: header.ExcessBlobGas, } + if header.AuraStep != nil { + h.AuRaSeal = header.AuraSeal + h.AuRaStep = *header.AuraStep + } if header.BaseFeePerGas != nil { h.BaseFee = gointerfaces.ConvertH256ToUint256Int(header.BaseFeePerGas).ToBig() } @@ -88,10 +124,15 @@ func HeaderRpcToHeader(header *execution.Header) (*types.Header, error) { h.WithdrawalsHash = new(libcommon.Hash) *h.WithdrawalsHash = gointerfaces.ConvertH256ToHash(header.WithdrawalHash) } + if header.ParentBeaconBlockRoot != nil { + h.ParentBeaconBlockRoot = new(libcommon.Hash) + *h.ParentBeaconBlockRoot = gointerfaces.ConvertH256ToHash(header.ParentBeaconBlockRoot) + } blockHash := gointerfaces.ConvertH256ToHash(header.BlockHash) if blockHash != h.Hash() { return nil, fmt.Errorf("block %d, %x has invalid hash. expected: %x", header.BlockNumber, h.Hash(), blockHash) } + return h, nil } @@ -131,6 +172,7 @@ func ConvertRawBlockBodyToRpc(in *types.RawBody, blockNumber uint64, blockHash l if in == nil { return nil } + return &execution.BlockBody{ BlockNumber: blockNumber, BlockHash: gointerfaces.ConvertHashToH256(blockHash), diff --git a/turbo/execution/eth1/ethereum_execution.go b/turbo/execution/eth1/ethereum_execution.go index 8bb1adb4417..baa1e8e82df 100644 --- a/turbo/execution/eth1/ethereum_execution.go +++ b/turbo/execution/eth1/ethereum_execution.go @@ -2,6 +2,7 @@ package eth1 import ( "context" + "errors" "math/big" "github.com/ledgerwatch/erigon-lib/chain" @@ -14,6 +15,7 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/common/math" + "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" @@ -54,12 +56,14 @@ type EthereumExecutionModule struct { // configuration config *chain.Config historyV3 bool + // consensus + engine consensus.Engine execution.UnimplementedExecutionServer } func NewEthereumExecutionModule(blockReader services.FullBlockReader, db kv.RwDB, executionPipeline *stagedsync.Sync, forkValidator *engine_helpers.ForkValidator, - config *chain.Config, builderFunc builder.BlockBuilderFunc, hook *stages.Hook, accumulator *shards.Accumulator, stateChangeConsumer shards.StateChangeConsumer, logger log.Logger, historyV3 bool) *EthereumExecutionModule { + config *chain.Config, builderFunc builder.BlockBuilderFunc, hook *stages.Hook, accumulator *shards.Accumulator, stateChangeConsumer shards.StateChangeConsumer, logger log.Logger, engine consensus.Engine, historyV3 bool) *EthereumExecutionModule { return &EthereumExecutionModule{ blockReader: blockReader, db: db, @@ -73,10 +77,18 @@ func NewEthereumExecutionModule(blockReader services.FullBlockReader, db kv.RwDB hook: hook, accumulator: accumulator, stateChangeConsumer: stateChangeConsumer, + engine: engine, } } func (e *EthereumExecutionModule) getHeader(ctx context.Context, tx kv.Tx, blockHash libcommon.Hash, blockNumber uint64) (*types.Header, error) { + td, err := rawdb.ReadTd(tx, blockHash, blockNumber) + if err != nil { + return nil, err + } + if td == nil { + return nil, nil + } if e.blockReader == nil { return rawdb.ReadHeader(tx, blockHash, blockNumber), nil } @@ -89,6 +101,13 @@ func (e *EthereumExecutionModule) getTD(ctx context.Context, tx kv.Tx, blockHash } func (e *EthereumExecutionModule) getBody(ctx context.Context, tx kv.Tx, blockHash libcommon.Hash, blockNumber uint64) (*types.Body, error) { + td, err := rawdb.ReadTd(tx, blockHash, blockNumber) + if err != nil { + return nil, err + } + if td == nil { + return nil, nil + } if e.blockReader == nil { body, _, _ := rawdb.ReadBody(tx, blockHash, blockNumber) return body, nil @@ -97,10 +116,26 @@ func (e *EthereumExecutionModule) getBody(ctx context.Context, tx kv.Tx, blockHa } func (e *EthereumExecutionModule) canonicalHash(ctx context.Context, tx kv.Tx, blockNumber uint64) (libcommon.Hash, error) { + var canonical libcommon.Hash + var err error if e.blockReader == nil { - return rawdb.ReadCanonicalHash(tx, blockNumber) + canonical, err = rawdb.ReadCanonicalHash(tx, blockNumber) + } else { + canonical, err = e.blockReader.CanonicalHash(ctx, tx, blockNumber) + } + if err != nil { + return libcommon.Hash{}, err } - return e.blockReader.CanonicalHash(ctx, tx, blockNumber) + + td, err := rawdb.ReadTd(tx, canonical, blockNumber) + if err != nil { + return libcommon.Hash{}, err + } + if td == nil { + return libcommon.Hash{}, nil + } + return canonical, nil + } func (e *EthereumExecutionModule) ValidateChain(ctx context.Context, req *execution.ValidationRequest) (*execution.ValidationReceipt, error) { @@ -116,7 +151,7 @@ func (e *EthereumExecutionModule) ValidateChain(ctx context.Context, req *execut return nil, err } defer tx.Rollback() - e.forkValidator.ClearWithUnwind(tx, e.accumulator, e.stateChangeConsumer) + e.forkValidator.ClearWithUnwind(e.accumulator, e.stateChangeConsumer) blockHash := gointerfaces.ConvertH256ToHash(req.Hash) header, err := e.blockReader.Header(ctx, tx, blockHash, req.Number) if err != nil { @@ -194,19 +229,18 @@ func (e *EthereumExecutionModule) purgeBadChain(ctx context.Context, tx kv.RwTx, func (e *EthereumExecutionModule) Start(ctx context.Context) { e.semaphore.Acquire(ctx, 1) defer e.semaphore.Release(1) - tx, err := e.db.BeginRw(ctx) - if err != nil { - e.logger.Error("Could not start execution service", "err", err) - return - } - defer tx.Rollback() // Run the forkchoice - if err := e.executionPipeline.Run(e.db, tx, true); err != nil { - e.logger.Error("Could not start execution service", "err", err) + if err := e.executionPipeline.Run(e.db, nil, true); err != nil { + if !errors.Is(err, context.Canceled) { + e.logger.Error("Could not start execution service", "err", err) + } return } - if err := tx.Commit(); err != nil { - e.logger.Error("Could not start execution service", "err", err) + if err := e.executionPipeline.RunPrune(e.db, nil, true); err != nil { + if !errors.Is(err, context.Canceled) { + e.logger.Error("Could not start execution service", "err", err) + } + return } } diff --git a/turbo/execution/eth1/forkchoice.go b/turbo/execution/eth1/forkchoice.go index cc014100ba9..1ed0851c587 100644 --- a/turbo/execution/eth1/forkchoice.go +++ b/turbo/execution/eth1/forkchoice.go @@ -2,6 +2,7 @@ package eth1 import ( "context" + "fmt" "time" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -10,6 +11,7 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/eth/stagedsync" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" ) @@ -68,7 +70,7 @@ func (e *EthereumExecutionModule) UpdateForkChoice(ctx context.Context, req *exe safeHash := gointerfaces.ConvertH256ToHash(req.SafeBlockHash) finalizedHash := gointerfaces.ConvertH256ToHash(req.FinalizedBlockHash) - outcomeCh := make(chan forkchoiceOutcome) + outcomeCh := make(chan forkchoiceOutcome, 1) // So we wait at most the amount specified by req.Timeout before just sending out go e.updateForkChoice(ctx, blockHash, safeHash, finalizedHash, outcomeCh) @@ -76,7 +78,7 @@ func (e *EthereumExecutionModule) UpdateForkChoice(ctx context.Context, req *exe select { case <-fcuTimer.C: - e.logger.Debug("treating forkChoiceUpdated as asyncronous as it is taking too long") + e.logger.Debug("treating forkChoiceUpdated as asynchronous as it is taking too long") return &execution.ForkChoiceReceipt{ LatestValidHash: gointerfaces.ConvertHashToH256(libcommon.Hash{}), Status: execution.ExecutionStatus_Busy, @@ -95,7 +97,7 @@ func writeForkChoiceHashes(tx kv.RwTx, blockHash, safeHash, finalizedHash libcom rawdb.WriteForkchoiceSafe(tx, safeHash) } rawdb.WriteHeadBlockHash(tx, blockHash) - + rawdb.WriteForkchoiceHead(tx, blockHash) } func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHash, safeHash, finalizedHash libcommon.Hash, outcomeCh chan forkchoiceOutcome) { @@ -112,29 +114,32 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas hash libcommon.Hash number uint64 } - tx, err := e.db.BeginRw(ctx) + tx, err := e.db.BeginRwNosync(ctx) if err != nil { sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return } defer tx.Rollback() - defer e.forkValidator.ClearWithUnwind(tx, e.accumulator, e.stateChangeConsumer) - + defer e.forkValidator.ClearWithUnwind(e.accumulator, e.stateChangeConsumer) // Step one, find reconnection point, and mark all of those headers as canonical. fcuHeader, err := e.blockReader.HeaderByHash(ctx, tx, blockHash) if err != nil { sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return } - canonicalHash, err := e.blockReader.CanonicalHash(ctx, tx, fcuHeader.Nonce.Uint64()) + if fcuHeader == nil { + sendForkchoiceErrorWithoutWaiting(outcomeCh, fmt.Errorf("forkchoice: block %x not found or was marked invalid", blockHash)) + return + } + canonicalHash, err := e.blockReader.CanonicalHash(ctx, tx, fcuHeader.Number.Uint64()) if err != nil { sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return } if canonicalHash == blockHash { - // if block hash is part of the canononical chain treat it as no-op. + // if block hash is part of the canonical chain treat it as no-op. writeForkChoiceHashes(tx, blockHash, safeHash, finalizedHash) valid, err := e.verifyForkchoiceHashes(ctx, tx, blockHash, finalizedHash, safeHash) if err != nil { @@ -155,7 +160,7 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas return } - // If we dont have it, too bad + // If we don't have it, too bad if fcuHeader == nil { sendForkchoiceReceiptWithoutWaiting(outcomeCh, &execution.ForkChoiceReceipt{ LatestValidHash: gointerfaces.ConvertHashToH256(libcommon.Hash{}), @@ -171,7 +176,7 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas return } // Find such point, and collect all hashes - newCanonicals := make([]*canonicalEntry, 0, 2048) + newCanonicals := make([]*canonicalEntry, 0, 64) newCanonicals = append(newCanonicals, &canonicalEntry{ hash: fcuHeader.Hash(), number: fcuHeader.Number.Uint64(), @@ -202,7 +207,7 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas } } - e.executionPipeline.UnwindTo(currentParentNumber, libcommon.Hash{}) + e.executionPipeline.UnwindTo(currentParentNumber, stagedsync.ForkChoice) if e.historyV3 { if err := rawdbv3.TxNums.Truncate(tx, currentParentNumber); err != nil { sendForkchoiceErrorWithoutWaiting(outcomeCh, err) @@ -230,10 +235,12 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas // Run the unwind if err := e.executionPipeline.RunUnwind(e.db, tx); err != nil { + err = fmt.Errorf("updateForkChoice: %w", err) sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return } + // Truncate tx nums if e.historyV3 { if err := rawdbv3.TxNums.Truncate(tx, currentParentNumber); err != nil { sendForkchoiceErrorWithoutWaiting(outcomeCh, err) @@ -242,6 +249,26 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas } // Mark all new canonicals as canonicals for _, canonicalSegment := range newCanonicals { + chainReader := stagedsync.NewChainReaderImpl(e.config, tx, e.blockReader, e.logger) + + b, _, _ := rawdb.ReadBody(tx, canonicalSegment.hash, canonicalSegment.number) + h := rawdb.ReadHeader(tx, canonicalSegment.hash, canonicalSegment.number) + + if b == nil || h == nil { + sendForkchoiceErrorWithoutWaiting(outcomeCh, fmt.Errorf("unexpected chain cap: %d", canonicalSegment.number)) + return + } + + if err := e.engine.VerifyHeader(chainReader, h, true); err != nil { + sendForkchoiceErrorWithoutWaiting(outcomeCh, err) + return + } + + if err := e.engine.VerifyUncles(chainReader, h, b.Uncles); err != nil { + sendForkchoiceErrorWithoutWaiting(outcomeCh, err) + return + } + if err := rawdb.WriteCanonicalHash(tx, canonicalSegment.hash, canonicalSegment.number); err != nil { sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return @@ -258,6 +285,10 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return } + if err := stages.SaveStageProgress(tx, stages.BlockHashes, fcuHeader.Number.Uint64()); err != nil { + sendForkchoiceErrorWithoutWaiting(outcomeCh, err) + return + } if err := stages.SaveStageProgress(tx, stages.Bodies, fcuHeader.Number.Uint64()); err != nil { sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return @@ -275,15 +306,10 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas } // Run the forkchoice if err := e.executionPipeline.Run(e.db, tx, false); err != nil { + err = fmt.Errorf("updateForkChoice: %w", err) sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return } - if e.hook != nil { - if err = e.hook.AfterRun(tx, finishProgressBefore); err != nil { - sendForkchoiceErrorWithoutWaiting(outcomeCh, err) - return - } - } // if head hash was set then success otherwise no headHash := rawdb.ReadHeadBlockHash(tx) headNumber := rawdb.ReadHeaderNumber(tx, headHash) @@ -294,7 +320,7 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas if headHash != blockHash { status = execution.ExecutionStatus_BadBlock if log { - e.logger.Warn("bad forkchoice", "hash", headHash) + e.logger.Warn("bad forkchoice", "head", headHash, "hash", blockHash) } } else { valid, err := e.verifyForkchoiceHashes(ctx, tx, blockHash, finalizedHash, safeHash) @@ -309,13 +335,32 @@ func (e *EthereumExecutionModule) updateForkChoice(ctx context.Context, blockHas }) return } + if err := rawdb.TruncateCanonicalChain(ctx, tx, *headNumber+1); err != nil { + sendForkchoiceErrorWithoutWaiting(outcomeCh, err) + return + } + if err := tx.Commit(); err != nil { sendForkchoiceErrorWithoutWaiting(outcomeCh, err) return } + if e.hook != nil { + if err := e.db.View(ctx, func(tx kv.Tx) error { + return e.hook.AfterRun(tx, finishProgressBefore) + }); err != nil { + sendForkchoiceErrorWithoutWaiting(outcomeCh, err) + return + } + } if log { e.logger.Info("head updated", "hash", headHash, "number", *headNumber) } + + if err := e.db.Update(ctx, func(tx kv.RwTx) error { return e.executionPipeline.RunPrune(e.db, tx, false) }); err != nil { + err = fmt.Errorf("updateForkChoice: %w", err) + sendForkchoiceErrorWithoutWaiting(outcomeCh, err) + return + } } sendForkchoiceReceiptWithoutWaiting(outcomeCh, &execution.ForkChoiceReceipt{ diff --git a/turbo/execution/eth1/getters.go b/turbo/execution/eth1/getters.go index 696fc4d441f..b282bce4e01 100644 --- a/turbo/execution/eth1/getters.go +++ b/turbo/execution/eth1/getters.go @@ -14,6 +14,7 @@ import ( types2 "github.com/ledgerwatch/erigon-lib/gointerfaces/types" "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/turbo/execution/eth1/eth1_utils" ) @@ -62,6 +63,13 @@ func (e *EthereumExecutionModule) GetBody(ctx context.Context, req *execution.Ge if err != nil { return nil, fmt.Errorf("ethereumExecutionModule.GetBody: %s", err) } + td, err := rawdb.ReadTd(tx, blockHash, blockNumber) + if err != nil { + return nil, fmt.Errorf("ethereumExecutionModule.GetBody: %s", err) + } + if td == nil { + return &execution.GetBodyResponse{Body: nil}, nil + } body, err := e.getBody(ctx, tx, blockHash, blockNumber) if err != nil { return nil, fmt.Errorf("ethereumExecutionModule.GetBody: coild not read body: %s", err) @@ -89,6 +97,13 @@ func (e *EthereumExecutionModule) GetHeader(ctx context.Context, req *execution. if err == errNotFound { return &execution.GetHeaderResponse{Header: nil}, nil } + td, err := rawdb.ReadTd(tx, blockHash, blockNumber) + if err != nil { + return nil, fmt.Errorf("ethereumExecutionModule.GetHeader: %s", err) + } + if td == nil { + return &execution.GetHeaderResponse{Header: nil}, nil + } if err != nil { return nil, fmt.Errorf("ethereumExecutionModule.GetHeader: %s", err) } @@ -103,6 +118,80 @@ func (e *EthereumExecutionModule) GetHeader(ctx context.Context, req *execution. return &execution.GetHeaderResponse{Header: eth1_utils.HeaderToHeaderRPC(header)}, nil } +func (e *EthereumExecutionModule) GetBodiesByHashes(ctx context.Context, req *execution.GetBodiesByHashesRequest) (*execution.GetBodiesBatchResponse, error) { + tx, err := e.db.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + + bodies := make([]*execution.BlockBody, 0, len(req.Hashes)) + + for _, hash := range req.Hashes { + h := gointerfaces.ConvertH256ToHash(hash) + number := rawdb.ReadHeaderNumber(tx, h) + if number == nil { + break + } + body, err := e.getBody(ctx, tx, h, *number) + if err != nil { + return nil, err + } + if body == nil { + break + } + txs, err := types.MarshalTransactionsBinary(body.Transactions) + if err != nil { + return nil, err + } + bodies = append(bodies, &execution.BlockBody{ + Transactions: txs, + Withdrawals: eth1_utils.ConvertWithdrawalsToRpc(body.Withdrawals), + }) + } + + return &execution.GetBodiesBatchResponse{Bodies: bodies}, nil +} + +func (e *EthereumExecutionModule) GetBodiesByRange(ctx context.Context, req *execution.GetBodiesByRangeRequest) (*execution.GetBodiesBatchResponse, error) { + tx, err := e.db.BeginRo(ctx) + if err != nil { + return nil, err + } + defer tx.Rollback() + + bodies := make([]*execution.BlockBody, 0, req.Count) + + for i := uint64(0); i < req.Count; i++ { + hash, err := rawdb.ReadCanonicalHash(tx, req.Start+i) + if err != nil { + return nil, err + } + if hash == (libcommon.Hash{}) { + // break early if beyond the last known canonical header + break + } + + body, err := e.getBody(ctx, tx, hash, req.Start+i) + if err != nil { + return nil, err + } + + txs, err := types.MarshalTransactionsBinary(body.Transactions) + if err != nil { + return nil, err + } + bodies = append(bodies, &execution.BlockBody{ + Transactions: txs, + Withdrawals: eth1_utils.ConvertWithdrawalsToRpc(body.Withdrawals), + }) + } + + return &execution.GetBodiesBatchResponse{ + Bodies: bodies, + }, nil +} + func (e *EthereumExecutionModule) GetHeaderHashNumber(ctx context.Context, req *types2.H256) (*execution.GetHeaderHashNumberResponse, error) { tx, err := e.db.BeginRo(ctx) if err != nil { @@ -125,6 +214,13 @@ func (e *EthereumExecutionModule) isCanonicalHash(ctx context.Context, tx kv.Tx, if err != nil { return false, fmt.Errorf("ethereumExecutionModule.CanonicalHash: could not read canonical hash") } + td, err := rawdb.ReadTd(tx, hash, *blockNumber) + if err != nil { + return false, fmt.Errorf("ethereumExecutionModule.GetBody: %s", err) + } + if td == nil { + return false, nil + } return expectedHash == hash, nil } @@ -198,3 +294,9 @@ func (e *EthereumExecutionModule) GetForkChoice(ctx context.Context, _ *emptypb. SafeBlockHash: gointerfaces.ConvertHashToH256(rawdb.ReadForkchoiceSafe(tx)), }, nil } + +func (e *EthereumExecutionModule) FrozenBlocks(ctx context.Context, _ *emptypb.Empty) (*execution.FrozenBlocksResponse, error) { + return &execution.FrozenBlocksResponse{ + FrozenBlocks: e.blockReader.FrozenBlocks(), + }, nil +} diff --git a/turbo/execution/eth1/inserters.go b/turbo/execution/eth1/inserters.go index dbc5c603dab..368a75a3f07 100644 --- a/turbo/execution/eth1/inserters.go +++ b/turbo/execution/eth1/inserters.go @@ -4,13 +4,12 @@ import ( "context" "fmt" - "github.com/ledgerwatch/erigon-lib/gointerfaces" "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/turbo/execution/eth1/eth1_utils" ) -func (e *EthereumExecutionModule) InsertBodies(ctx context.Context, req *execution.InsertBodiesRequest) (*execution.InsertionResult, error) { +func (e *EthereumExecutionModule) InsertBlocks(ctx context.Context, req *execution.InsertBlocksRequest) (*execution.InsertionResult, error) { if !e.semaphore.TryAcquire(1) { return &execution.InsertionResult{ Result: execution.ExecutionStatus_Busy, @@ -19,49 +18,23 @@ func (e *EthereumExecutionModule) InsertBodies(ctx context.Context, req *executi defer e.semaphore.Release(1) tx, err := e.db.BeginRw(ctx) if err != nil { - return nil, fmt.Errorf("ethereumExecutionModule.InsertBodies: could not begin transaction: %s", err) + return nil, fmt.Errorf("ethereumExecutionModule.InsertBlocks: could not begin transaction: %s", err) } defer tx.Rollback() - e.forkValidator.ClearWithUnwind(tx, e.accumulator, e.stateChangeConsumer) + e.forkValidator.ClearWithUnwind(e.accumulator, e.stateChangeConsumer) - for _, grpcBody := range req.Bodies { - if _, err = rawdb.WriteRawBodyIfNotExists(tx, gointerfaces.ConvertH256ToHash(grpcBody.BlockHash), grpcBody.BlockNumber, eth1_utils.ConvertRawBlockBodyFromRpc(grpcBody)); err != nil { - return nil, fmt.Errorf("ethereumExecutionModule.InsertBodies: could not insert: %s", err) - } - } - if err := tx.Commit(); err != nil { - return nil, fmt.Errorf("ethereumExecutionModule.InsertBodies: could not commit: %s", err) - } - - return &execution.InsertionResult{ - Result: execution.ExecutionStatus_Success, - }, tx.Commit() -} - -func (e *EthereumExecutionModule) InsertHeaders(ctx context.Context, req *execution.InsertHeadersRequest) (*execution.InsertionResult, error) { - if !e.semaphore.TryAcquire(1) { - return &execution.InsertionResult{ - Result: execution.ExecutionStatus_Busy, - }, nil - } - defer e.semaphore.Release(1) - tx, err := e.db.BeginRw(ctx) - if err != nil { - return nil, fmt.Errorf("ethereumExecutionModule.InsertHeaders: could not begin transaction: %s", err) - } - defer tx.Rollback() - e.forkValidator.ClearWithUnwind(tx, e.accumulator, e.stateChangeConsumer) - - for _, grpcHeader := range req.Headers { - header, err := eth1_utils.HeaderRpcToHeader(grpcHeader) + for _, block := range req.Blocks { + header, err := eth1_utils.HeaderRpcToHeader(block.Header) if err != nil { - return nil, fmt.Errorf("ethereumExecutionModule.InsertHeaders: cannot convert headers: %s", err) + return nil, fmt.Errorf("ethereumExecutionModule.InsertBlocks: cannot convert headers: %s", err) } + body := eth1_utils.ConvertRawBlockBodyFromRpc(block.Body) // Parent's total difficulty parentTd, err := rawdb.ReadTd(tx, header.ParentHash, header.Number.Uint64()-1) if err != nil || parentTd == nil { return nil, fmt.Errorf("parent's total difficulty not found with hash %x and height %d: %v", header.ParentHash, header.Number.Uint64()-1, err) } + // Sum TDs. td := parentTd.Add(parentTd, header.Difficulty) if err := rawdb.WriteHeader(tx, header); err != nil { @@ -70,6 +43,9 @@ func (e *EthereumExecutionModule) InsertHeaders(ctx context.Context, req *execut if err := rawdb.WriteTd(tx, header.Hash(), header.Number.Uint64(), td); err != nil { return nil, fmt.Errorf("ethereumExecutionModule.InsertHeaders: could not insert: %s", err) } + if _, err := rawdb.WriteRawBodyIfNotExists(tx, header.Hash(), header.Number.Uint64(), body); err != nil { + return nil, fmt.Errorf("ethereumExecutionModule.InsertBlocks: could not insert: %s", err) + } } if err := tx.Commit(); err != nil { return nil, fmt.Errorf("ethereumExecutionModule.InsertHeaders: could not commit: %s", err) diff --git a/turbo/jsonrpc/admin_api.go b/turbo/jsonrpc/admin_api.go index 09fa47a7f80..29252ea8863 100644 --- a/turbo/jsonrpc/admin_api.go +++ b/turbo/jsonrpc/admin_api.go @@ -5,7 +5,9 @@ import ( "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" "github.com/ledgerwatch/erigon/p2p" + "github.com/ledgerwatch/erigon/turbo/rpchelper" ) @@ -17,6 +19,9 @@ type AdminAPI interface { // Peers returns information about the connected remote nodes. // https://geth.ethereum.org/docs/rpc/ns-admin#admin_peers Peers(ctx context.Context) ([]*p2p.PeerInfo, error) + + // AddPeer requests connecting to a remote node. + AddPeer(ctx context.Context, url string) (bool, error) } // AdminAPIImpl data structure to store things needed for admin_* commands. @@ -47,3 +52,14 @@ func (api *AdminAPIImpl) NodeInfo(ctx context.Context) (*p2p.NodeInfo, error) { func (api *AdminAPIImpl) Peers(ctx context.Context) ([]*p2p.PeerInfo, error) { return api.ethBackend.Peers(ctx) } + +func (api *AdminAPIImpl) AddPeer(ctx context.Context, url string) (bool, error) { + result, err := api.ethBackend.AddPeer(ctx, &remote.AddPeerRequest{Url: url}) + if err != nil { + return false, err + } + if result == nil { + return false, errors.New("nil addPeer response") + } + return result.Success, nil +} diff --git a/turbo/jsonrpc/bor_api.go b/turbo/jsonrpc/bor_api.go index a21de629979..41ee908d3e3 100644 --- a/turbo/jsonrpc/bor_api.go +++ b/turbo/jsonrpc/bor_api.go @@ -1,9 +1,13 @@ package jsonrpc import ( + "fmt" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/consensus" + "github.com/ledgerwatch/erigon/consensus/bor" "github.com/ledgerwatch/erigon/consensus/bor/valset" "github.com/ledgerwatch/erigon/rpc" ) @@ -12,12 +16,13 @@ import ( type BorAPI interface { // Bor snapshot related (see ./bor_snapshot.go) GetSnapshot(number *rpc.BlockNumber) (*Snapshot, error) - GetAuthor(number *rpc.BlockNumber) (*common.Address, error) + GetAuthor(blockNrOrHash *rpc.BlockNumberOrHash) (*common.Address, error) GetSnapshotAtHash(hash common.Hash) (*Snapshot, error) GetSigners(number *rpc.BlockNumber) ([]common.Address, error) GetSignersAtHash(hash common.Hash) ([]common.Address, error) GetCurrentProposer() (common.Address, error) GetCurrentValidators() ([]*valset.Validator, error) + GetSnapshotProposer(blockNrOrHash *rpc.BlockNumberOrHash) (common.Address, error) GetSnapshotProposerSequence(blockNrOrHash *rpc.BlockNumberOrHash) (BlockSigners, error) GetRootHash(start uint64, end uint64) (string, error) } @@ -25,15 +30,33 @@ type BorAPI interface { // BorImpl is implementation of the BorAPI interface type BorImpl struct { *BaseAPI - db kv.RoDB // the chain db - borDb kv.RoDB // the consensus db + db kv.RoDB // the chain db } // NewBorAPI returns BorImpl instance -func NewBorAPI(base *BaseAPI, db kv.RoDB, borDb kv.RoDB) *BorImpl { +func NewBorAPI(base *BaseAPI, db kv.RoDB) *BorImpl { return &BorImpl{ BaseAPI: base, db: db, - borDb: borDb, } } + +func (api *BorImpl) bor() (*bor.Bor, error) { + type lazy interface { + HasEngine() bool + Engine() consensus.EngineReader + } + + switch engine := api.engine().(type) { + case *bor.Bor: + return engine, nil + case lazy: + if engine.HasEngine() { + if bor, ok := engine.Engine().(*bor.Bor); ok { + return bor, nil + } + } + } + + return nil, fmt.Errorf("unknown or invalid consensus engine: %T", api.engine()) +} diff --git a/turbo/jsonrpc/bor_helper.go b/turbo/jsonrpc/bor_helper.go index 31f2bdc7607..c4a14e1b119 100644 --- a/turbo/jsonrpc/bor_helper.go +++ b/turbo/jsonrpc/bor_helper.go @@ -107,18 +107,6 @@ func ecrecover(header *types.Header, c *chain.BorConfig) (common.Address, error) return signer, nil } -// validateHeaderExtraField validates that the extra-data contains both the vanity and signature. -// header.Extra = header.Vanity + header.ProducerBytes (optional) + header.Seal -func validateHeaderExtraField(extraBytes []byte) error { - if len(extraBytes) < extraVanity { - return errMissingVanity - } - if len(extraBytes) < extraVanity+extraSeal { - return errMissingSignature - } - return nil -} - // validatorContains checks for a validator in given validator set func validatorContains(a []*valset.Validator, x *valset.Validator) (*valset.Validator, bool) { for _, n := range a { diff --git a/turbo/jsonrpc/bor_snapshot.go b/turbo/jsonrpc/bor_snapshot.go index 545727479a5..7a6ef67f4c8 100644 --- a/turbo/jsonrpc/bor_snapshot.go +++ b/turbo/jsonrpc/bor_snapshot.go @@ -2,24 +2,21 @@ package jsonrpc import ( "context" - "encoding/hex" "encoding/json" + "errors" "fmt" - "math/big" "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/xsleonard/go-merkle" - "golang.org/x/crypto/sha3" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/bor" + "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" "github.com/ledgerwatch/erigon/consensus/bor/valset" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" - "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rpc" ) @@ -55,7 +52,13 @@ func (api *BorImpl) GetSnapshot(number *rpc.BlockNumber) (*Snapshot, error) { } // init consensus db - borTx, err := api.borDb.BeginRo(ctx) + bor, err := api.bor() + + if err != nil { + return nil, err + } + + borTx, err := bor.DB.BeginRo(ctx) if err != nil { return nil, err } @@ -64,7 +67,14 @@ func (api *BorImpl) GetSnapshot(number *rpc.BlockNumber) (*Snapshot, error) { } // GetAuthor retrieves the author a block. -func (api *BorImpl) GetAuthor(number *rpc.BlockNumber) (*common.Address, error) { +func (api *BorImpl) GetAuthor(blockNrOrHash *rpc.BlockNumberOrHash) (*common.Address, error) { + // init consensus db + bor, err := api.bor() + + if err != nil { + return nil, err + } + ctx := context.Background() tx, err := api.db.BeginRo(ctx) if err != nil { @@ -74,16 +84,30 @@ func (api *BorImpl) GetAuthor(number *rpc.BlockNumber) (*common.Address, error) // Retrieve the requested block number (or current if none requested) var header *types.Header - if number == nil || *number == rpc.LatestBlockNumber { + + //nolint:nestif + if blockNrOrHash == nil { header = rawdb.ReadCurrentHeader(tx) } else { - header, _ = getHeaderByNumber(ctx, *number, api, tx) + if blockNr, ok := blockNrOrHash.Number(); ok { + header = rawdb.ReadHeaderByNumber(tx, uint64(blockNr)) + if blockNr == rpc.LatestBlockNumber { + header = rawdb.ReadCurrentHeader(tx) + } + } else { + if blockHash, ok := blockNrOrHash.Hash(); ok { + header, err = rawdb.ReadHeaderByHash(tx, blockHash) + } + } } - // Ensure we have an actually valid block - if header == nil { + + // Ensure we have an actually valid block and return its snapshot + if header == nil || err != nil { return nil, errUnknownBlock } - author, err := author(api, tx, header) + + author, err := bor.Author(header) + return &author, err } @@ -106,7 +130,13 @@ func (api *BorImpl) GetSnapshotAtHash(hash common.Hash) (*Snapshot, error) { } // init consensus db - borTx, err := api.borDb.BeginRo(ctx) + bor, err := api.bor() + + if err != nil { + return nil, err + } + + borTx, err := bor.DB.BeginRo(ctx) if err != nil { return nil, err } @@ -137,7 +167,13 @@ func (api *BorImpl) GetSigners(number *rpc.BlockNumber) ([]common.Address, error } // init consensus db - borTx, err := api.borDb.BeginRo(ctx) + bor, err := api.bor() + + if err != nil { + return nil, err + } + + borTx, err := bor.DB.BeginRo(ctx) if err != nil { return nil, err } @@ -165,7 +201,13 @@ func (api *BorImpl) GetSignersAtHash(hash common.Hash) ([]common.Address, error) } // init consensus db - borTx, err := api.borDb.BeginRo(ctx) + bor, err := api.bor() + + if err != nil { + return nil, err + } + + borTx, err := bor.DB.BeginRo(ctx) if err != nil { return nil, err } @@ -193,6 +235,67 @@ func (api *BorImpl) GetCurrentValidators() ([]*valset.Validator, error) { return snap.ValidatorSet.Validators, nil } +// GetVoteOnHash gets the vote on milestone hash +func (api *BorImpl) GetVoteOnHash(ctx context.Context, starBlockNr uint64, endBlockNr uint64, hash string, milestoneId string) (bool, error) { + tx, err := api.db.BeginRo(context.Background()) + if err != nil { + return false, err + } + defer tx.Rollback() + + service := whitelist.GetWhitelistingService() + + if service == nil { + return false, errors.New("only available in Bor engine") + } + + //Confirmation of 16 blocks on the endblock + tipConfirmationBlockNr := endBlockNr + uint64(16) + + //Check if tipConfirmation block exit + _, err = api._blockReader.BlockByNumber(ctx, tx, tipConfirmationBlockNr) + if err != nil { + return false, errors.New("failed to get tip confirmation block") + } + + //Check if end block exist + localEndBlock, err := api._blockReader.BlockByNumber(ctx, tx, endBlockNr) + if err != nil { + return false, errors.New("failed to get end block") + } + + localEndBlockHash := localEndBlock.Hash().String() + + isLocked := service.LockMutex(endBlockNr) + + if !isLocked { + service.UnlockMutex(false, "", endBlockNr, common.Hash{}) + return false, errors.New("whitelisted number or locked sprint number is more than the received end block number") + } + + if localEndBlockHash != hash { + service.UnlockMutex(false, "", endBlockNr, common.Hash{}) + return false, fmt.Errorf("hash mismatch: localChainHash %s, milestoneHash %s", localEndBlockHash, hash) + } + + bor, err := api.bor() + + if err != nil { + return false, errors.New("bor engine not available") + } + + err = bor.HeimdallClient.FetchMilestoneID(ctx, milestoneId) + + if err != nil { + service.UnlockMutex(false, "", endBlockNr, common.Hash{}) + return false, errors.New("milestone ID doesn't exist in Heimdall") + } + + service.UnlockMutex(true, milestoneId, endBlockNr, localEndBlock.Hash()) + + return true, nil +} + type BlockSigners struct { Signers []difficultiesKV Diff int @@ -204,6 +307,48 @@ type difficultiesKV struct { Difficulty uint64 } +// GetSnapshotProposer retrieves the in-turn signer at a given block. +func (api *BorImpl) GetSnapshotProposer(blockNrOrHash *rpc.BlockNumberOrHash) (common.Address, error) { + // init chain db + ctx := context.Background() + tx, err := api.db.BeginRo(ctx) + if err != nil { + return common.Address{}, err + } + defer tx.Rollback() + + var header *types.Header + //nolint:nestif + if blockNrOrHash == nil { + header = rawdb.ReadCurrentHeader(tx) + } else { + if blockNr, ok := blockNrOrHash.Number(); ok { + if blockNr == rpc.LatestBlockNumber { + header = rawdb.ReadCurrentHeader(tx) + } else { + header = rawdb.ReadHeaderByNumber(tx, uint64(blockNr)) + } + } else { + if blockHash, ok := blockNrOrHash.Hash(); ok { + header, err = rawdb.ReadHeaderByHash(tx, blockHash) + } + } + } + + if header == nil || err != nil { + return common.Address{}, errUnknownBlock + } + + snapNumber := rpc.BlockNumber(header.Number.Int64() - 1) + snap, err := api.GetSnapshot(&snapNumber) + + if err != nil { + return common.Address{}, err + } + + return snap.ValidatorSet.GetProposer().Address, nil +} + func (api *BorImpl) GetSnapshotProposerSequence(blockNrOrHash *rpc.BlockNumberOrHash) (BlockSigners, error) { // init chain db ctx := context.Background() @@ -237,7 +382,13 @@ func (api *BorImpl) GetSnapshotProposerSequence(blockNrOrHash *rpc.BlockNumberOr } // init consensus db - borTx, err := api.borDb.BeginRo(ctx) + bor, err := api.bor() + + if err != nil { + return BlockSigners{}, err + } + + borTx, err := bor.DB.BeginRo(ctx) if err != nil { return BlockSigners{}, err } @@ -287,50 +438,20 @@ func (api *BorImpl) GetSnapshotProposerSequence(blockNrOrHash *rpc.BlockNumberOr // GetRootHash returns the merkle root of the start to end block headers func (api *BorImpl) GetRootHash(start, end uint64) (string, error) { - length := end - start + 1 - if length > bor.MaxCheckpointLength { - return "", &bor.MaxCheckpointLengthExceededError{Start: start, End: end} + bor, err := api.bor() + + if err != nil { + return "", err } + ctx := context.Background() tx, err := api.db.BeginRo(ctx) if err != nil { return "", err } defer tx.Rollback() - header := rawdb.ReadCurrentHeader(tx) - var currentHeaderNumber uint64 = 0 - if header == nil { - return "", &valset.InvalidStartEndBlockError{Start: start, End: end, CurrentHeader: currentHeaderNumber} - } - currentHeaderNumber = header.Number.Uint64() - if start > end || end > currentHeaderNumber { - return "", &valset.InvalidStartEndBlockError{Start: start, End: end, CurrentHeader: currentHeaderNumber} - } - blockHeaders := make([]*types.Header, end-start+1) - for number := start; number <= end; number++ { - blockHeaders[number-start], _ = getHeaderByNumber(ctx, rpc.BlockNumber(number), api, tx) - } - - headers := make([][32]byte, bor.NextPowerOfTwo(length)) - for i := 0; i < len(blockHeaders); i++ { - blockHeader := blockHeaders[i] - header := crypto.Keccak256(bor.AppendBytes32( - blockHeader.Number.Bytes(), - new(big.Int).SetUint64(blockHeader.Time).Bytes(), - blockHeader.TxHash.Bytes(), - blockHeader.ReceiptHash.Bytes(), - )) - var arr [32]byte - copy(arr[:], header) - headers[i] = arr - } - tree := merkle.NewTreeWithOpts(merkle.TreeOptions{EnableHashSorting: false, DisableHashLeaves: true}) - if err := tree.Generate(bor.Convert(headers), sha3.NewLegacyKeccak256()); err != nil { - return "", err - } - root := hex.EncodeToString(tree.Root().Hash) - return root, nil + return bor.GetRootHash(ctx, tx, start, end) } // Helper functions for Snapshot Type @@ -430,7 +551,7 @@ func (s *Snapshot) apply(headers []*types.Header) (*Snapshot, error) { // change validator set and change proposer if number > 0 && (number+1)%currentSprint == 0 { - if err := validateHeaderExtraField(header.Extra); err != nil { + if err := bor.ValidateHeaderExtraField(header.Extra); err != nil { return nil, err } validatorBytes := header.Extra[extraVanity : len(header.Extra)-extraSeal] diff --git a/turbo/jsonrpc/call_traces_test.go b/turbo/jsonrpc/call_traces_test.go index fe831a8188c..4fefb1897ca 100644 --- a/turbo/jsonrpc/call_traces_test.go +++ b/turbo/jsonrpc/call_traces_test.go @@ -2,6 +2,7 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "sync" "testing" @@ -13,7 +14,6 @@ import ( "github.com/valyala/fastjson" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/turbo/stages/mock" @@ -52,7 +52,7 @@ func TestCallTraceOneByOne(t *testing.T) { api := NewTraceAPI(newBaseApiForTest(m), m.DB, &httpcfg.HttpCfg{}) // Insert blocks 1 by 1, to tirgget possible "off by one" errors for i := 0; i < chain.Length(); i++ { - if err = m.InsertChain(chain.Slice(i, i+1), nil); err != nil { + if err = m.InsertChain(chain.Slice(i, i+1)); err != nil { t.Fatalf("inserting chain: %v", err) } } @@ -96,7 +96,7 @@ func TestCallTraceUnwind(t *testing.T) { api := NewTraceAPI(newBaseApiForTest(m), m.DB, &httpcfg.HttpCfg{}) - if err = m.InsertChain(chainA, nil); err != nil { + if err = m.InsertChain(chainA); err != nil { t.Fatalf("inserting chainA: %v", err) } stream := jsoniter.ConfigDefault.BorrowStream(nil) @@ -115,7 +115,7 @@ func TestCallTraceUnwind(t *testing.T) { } assert.Equal(t, []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, blockNumbersFromTraces(t, stream.Buffer())) - if err = m.InsertChain(chainB.Slice(0, 12), nil); err != nil { + if err = m.InsertChain(chainB.Slice(0, 12)); err != nil { t.Fatalf("inserting chainB: %v", err) } stream.Reset(nil) @@ -130,7 +130,7 @@ func TestCallTraceUnwind(t *testing.T) { } assert.Equal(t, []int{1, 2, 3, 4, 5, 11, 12}, blockNumbersFromTraces(t, stream.Buffer())) - if err = m.InsertChain(chainB.Slice(12, 20), nil); err != nil { + if err = m.InsertChain(chainB.Slice(12, 20)); err != nil { t.Fatalf("inserting chainB: %v", err) } stream.Reset(nil) @@ -158,7 +158,7 @@ func TestFilterNoAddresses(t *testing.T) { api := NewTraceAPI(newBaseApiForTest(m), m.DB, &httpcfg.HttpCfg{}) // Insert blocks 1 by 1, to tirgget possible "off by one" errors for i := 0; i < chain.Length(); i++ { - if err = m.InsertChain(chain.Slice(i, i+1), nil); err != nil { + if err = m.InsertChain(chain.Slice(i, i+1)); err != nil { t.Fatalf("inserting chain: %v", err) } } @@ -205,7 +205,7 @@ func TestFilterAddressIntersection(t *testing.T) { }) require.NoError(t, err, "generate chain") - err = m.InsertChain(chain, nil) + err = m.InsertChain(chain) require.NoError(t, err, "inserting chain") fromBlock, toBlock := uint64(1), uint64(15) diff --git a/turbo/jsonrpc/corner_cases_support_test.go b/turbo/jsonrpc/corner_cases_support_test.go index 4c259b1a258..4bb4425a3a4 100644 --- a/turbo/jsonrpc/corner_cases_support_test.go +++ b/turbo/jsonrpc/corner_cases_support_test.go @@ -18,7 +18,7 @@ func TestNotFoundMustReturnNil(t *testing.T) { require := require.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) api := NewEthAPI(newBaseApiForTest(m), - m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) ctx := context.Background() a, err := api.GetTransactionByBlockNumberAndIndex(ctx, 10_000, 1) diff --git a/turbo/jsonrpc/daemon.go b/turbo/jsonrpc/daemon.go index e69ce1cd7ad..ce98b9bbd0b 100644 --- a/turbo/jsonrpc/daemon.go +++ b/turbo/jsonrpc/daemon.go @@ -7,6 +7,7 @@ import ( libstate "github.com/ledgerwatch/erigon-lib/state" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" "github.com/ledgerwatch/erigon/consensus" + "github.com/ledgerwatch/erigon/consensus/bor" "github.com/ledgerwatch/erigon/consensus/clique" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/rpchelper" @@ -15,23 +16,39 @@ import ( ) // APIList describes the list of available RPC apis -func APIList(db kv.RoDB, borDb kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, +func APIList(db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, filters *rpchelper.Filters, stateCache kvcache.Cache, - blockReader services.FullBlockReader, agg *libstate.AggregatorV3, cfg httpcfg.HttpCfg, engine consensus.EngineReader, + blockReader services.FullBlockReader, agg *libstate.AggregatorV3, cfg *httpcfg.HttpCfg, engine consensus.EngineReader, logger log.Logger, ) (list []rpc.API) { base := NewBaseApi(filters, stateCache, blockReader, agg, cfg.WithDatadir, cfg.EvmCallTimeout, engine, cfg.Dirs) - ethImpl := NewEthAPI(base, db, eth, txPool, mining, cfg.Gascap, cfg.ReturnDataLimit, logger) + ethImpl := NewEthAPI(base, db, eth, txPool, mining, cfg.Gascap, cfg.ReturnDataLimit, cfg.AllowUnprotectedTxs, cfg.MaxGetProofRewindBlockCount, logger) erigonImpl := NewErigonAPI(base, db, eth) txpoolImpl := NewTxPoolAPI(base, db, txPool) netImpl := NewNetAPIImpl(eth) debugImpl := NewPrivateDebugAPI(base, db, cfg.Gascap) - traceImpl := NewTraceAPI(base, db, &cfg) + traceImpl := NewTraceAPI(base, db, cfg) web3Impl := NewWeb3APIImpl(eth) dbImpl := NewDBAPIImpl() /* deprecated */ adminImpl := NewAdminAPI(eth) parityImpl := NewParityAPIImpl(base, db) - borImpl := NewBorAPI(base, db, borDb) // bor (consensus) specific + + var borImpl *BorImpl + + type lazy interface { + HasEngine() bool + Engine() consensus.EngineReader + } + + switch engine := engine.(type) { + case *bor.Bor: + borImpl = NewBorAPI(base, db) + case lazy: + if _, ok := engine.Engine().(*bor.Bor); !engine.HasEngine() || ok { + borImpl = NewBorAPI(base, db) + } + } + otsImpl := NewOtterscanAPI(base, db, cfg.OtsMaxPageSize) gqlImpl := NewGraphQLAPI(base, db) @@ -103,12 +120,14 @@ func APIList(db kv.RoDB, borDb kv.RoDB, eth rpchelper.ApiBackend, txPool txpool. Version: "1.0", }) case "bor": - list = append(list, rpc.API{ - Namespace: "bor", - Public: true, - Service: BorAPI(borImpl), - Version: "1.0", - }) + if borImpl != nil { + list = append(list, rpc.API{ + Namespace: "bor", + Public: true, + Service: BorAPI(borImpl), + Version: "1.0", + }) + } case "admin": list = append(list, rpc.API{ Namespace: "admin", diff --git a/turbo/jsonrpc/debug_api.go b/turbo/jsonrpc/debug_api.go index 0105aea187f..81aab4fc903 100644 --- a/turbo/jsonrpc/debug_api.go +++ b/turbo/jsonrpc/debug_api.go @@ -4,6 +4,8 @@ import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + jsoniter "github.com/json-iterator/go" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" @@ -12,7 +14,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" "github.com/ledgerwatch/erigon/common/changeset" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types/accounts" @@ -82,7 +83,7 @@ func (api *PrivateDebugAPIImpl) StorageRangeAt(ctx context.Context, blockHash co return storageRangeAtV3(tx.(kv.TemporalTx), contractAddress, keyStart, minTxNum+txIndex, maxResult) } - block, err := api.blockByHashWithSenders(ctx, tx, blockHash) + block, err := api.blockByHashWithSenders(tx, blockHash) if err != nil { return StorageRangeResult{}, err } @@ -123,7 +124,7 @@ func (api *PrivateDebugAPIImpl) AccountRange(ctx context.Context, blockNrOrHash } } else if hash, ok := blockNrOrHash.Hash(); ok { - block, err1 := api.blockByHashWithSenders(ctx, tx, hash) + block, err1 := api.blockByHashWithSenders(tx, hash) if err1 != nil { return state.IteratorDump{}, err1 } @@ -243,7 +244,7 @@ func (api *PrivateDebugAPIImpl) GetModifiedAccountsByHash(ctx context.Context, s } defer tx.Rollback() - startBlock, err := api.blockByHashWithSenders(ctx, tx, startHash) + startBlock, err := api.blockByHashWithSenders(tx, startHash) if err != nil { return nil, err } @@ -254,7 +255,7 @@ func (api *PrivateDebugAPIImpl) GetModifiedAccountsByHash(ctx context.Context, s endNum := startNum + 1 // allows for single parameter calls if endHash != nil { - endBlock, err := api.blockByHashWithSenders(ctx, tx, *endHash) + endBlock, err := api.blockByHashWithSenders(tx, *endHash) if err != nil { return nil, err } @@ -337,7 +338,7 @@ func (api *PrivateDebugAPIImpl) AccountAt(ctx context.Context, blockHash common. } engine := api.engine() - block, err := api.blockByHashWithSenders(ctx, tx, blockHash) + block, err := api.blockByHashWithSenders(tx, blockHash) if err != nil { return nil, err } @@ -393,7 +394,7 @@ func (api *PrivateDebugAPIImpl) GetRawBlock(ctx context.Context, blockNrOrHash r if err != nil { return nil, err } - block, err := api.blockWithSenders(ctx, tx, h, n) + block, err := api.blockWithSenders(tx, h, n) if err != nil { return nil, err } diff --git a/turbo/jsonrpc/debug_api_test.go b/turbo/jsonrpc/debug_api_test.go index e25f6b102a8..a67440281bf 100644 --- a/turbo/jsonrpc/debug_api_test.go +++ b/turbo/jsonrpc/debug_api_test.go @@ -14,7 +14,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/kvcache" "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - common2 "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/tracers" "github.com/ledgerwatch/erigon/rpc" @@ -53,7 +52,7 @@ func TestTraceBlockByNumber(t *testing.T) { agg := m.HistoryV3Components() stateCache := kvcache.New(kvcache.DefaultCoherentConfig) baseApi := NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs) - ethApi := NewEthAPI(baseApi, m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + ethApi := NewEthAPI(baseApi, m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) api := NewPrivateDebugAPI(baseApi, m.DB, 0) for _, tt := range debugTraceTransactionTests { var buf bytes.Buffer @@ -98,7 +97,7 @@ func TestTraceBlockByNumber(t *testing.T) { func TestTraceBlockByHash(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) api := NewPrivateDebugAPI(newBaseApiForTest(m), m.DB, 0) for _, tt := range debugTraceTransactionTests { var buf bytes.Buffer @@ -334,7 +333,7 @@ func TestAccountRange(t *testing.T) { require.Equal(t, 35, len(result.Accounts[addr].Storage)) require.Equal(t, 1, int(result.Accounts[addr].Nonce)) for _, v := range result.Accounts { - hashedCode, _ := common2.HashData(v.Code) + hashedCode, _ := common.HashData(v.Code) require.Equal(t, v.CodeHash.String(), hashedCode.String()) } }) diff --git a/turbo/jsonrpc/erigon_api.go b/turbo/jsonrpc/erigon_api.go index 50a40848eec..4b1bd336614 100644 --- a/turbo/jsonrpc/erigon_api.go +++ b/turbo/jsonrpc/erigon_api.go @@ -2,15 +2,14 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/eth/filters" - ethFilters "github.com/ledgerwatch/erigon/eth/filters" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/p2p" "github.com/ledgerwatch/erigon/rpc" @@ -32,8 +31,8 @@ type ErigonAPI interface { // Receipt related (see ./erigon_receipts.go) GetLogsByHash(ctx context.Context, hash common.Hash) ([][]*types.Log, error) //GetLogsByNumber(ctx context.Context, number rpc.BlockNumber) ([][]*types.Log, error) - GetLogs(ctx context.Context, crit ethFilters.FilterCriteria) (types.ErigonLogs, error) - GetLatestLogs(ctx context.Context, crit filters.FilterCriteria, logOptions ethFilters.LogFilterOptions) (types.ErigonLogs, error) + GetLogs(ctx context.Context, crit filters.FilterCriteria) (types.ErigonLogs, error) + GetLatestLogs(ctx context.Context, crit filters.FilterCriteria, logOptions filters.LogFilterOptions) (types.ErigonLogs, error) // Gets cannonical block receipt through hash. If the block is not cannonical returns error GetBlockReceiptsByBlockHash(ctx context.Context, cannonicalBlockHash common.Hash) ([]map[string]interface{}, error) diff --git a/turbo/jsonrpc/erigon_block.go b/turbo/jsonrpc/erigon_block.go index d61069bad63..879dbfd26fd 100644 --- a/turbo/jsonrpc/erigon_block.go +++ b/turbo/jsonrpc/erigon_block.go @@ -5,6 +5,7 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "sort" "github.com/holiman/uint256" @@ -16,7 +17,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/temporal/historyv2" "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/types/accounts" diff --git a/turbo/jsonrpc/erigon_cache_check.go b/turbo/jsonrpc/erigon_cache_check.go index 903ca3c949d..a487af36cb3 100644 --- a/turbo/jsonrpc/erigon_cache_check.go +++ b/turbo/jsonrpc/erigon_cache_check.go @@ -14,6 +14,7 @@ func (api *ErigonImpl) CacheCheck() (*kvcache.CacheValidationResult, error) { if err != nil { return nil, err } + defer tx.Rollback() result, err := cache.ValidateCurrentRoot(ctx, tx) if err != nil { diff --git a/turbo/jsonrpc/erigon_receipts.go b/turbo/jsonrpc/erigon_receipts.go index a3c77818852..46bbb2084b0 100644 --- a/turbo/jsonrpc/erigon_receipts.go +++ b/turbo/jsonrpc/erigon_receipts.go @@ -33,7 +33,7 @@ func (api *ErigonImpl) GetLogsByHash(ctx context.Context, hash common.Hash) ([][ return nil, err } - block, err := api.blockByHashWithSenders(ctx, tx, hash) + block, err := api.blockByHashWithSenders(tx, hash) if err != nil { return nil, err } @@ -64,12 +64,13 @@ func (api *ErigonImpl) GetLogs(ctx context.Context, crit filters.FilterCriteria) defer tx.Rollback() if crit.BlockHash != nil { - number := rawdb.ReadHeaderNumber(tx, *crit.BlockHash) - if number == nil { - return nil, fmt.Errorf("block not found: %x", *crit.BlockHash) + header, err := api._blockReader.HeaderByHash(ctx, tx, *crit.BlockHash) + if header == nil { + return nil, err } - begin = *number - end = *number + begin = header.Number.Uint64() + end = header.Number.Uint64() + } else { // Convert the RPC block numbers into internal representations latest, err := rpchelper.GetLatestBlockNumber(tx) @@ -77,7 +78,7 @@ func (api *ErigonImpl) GetLogs(ctx context.Context, crit filters.FilterCriteria) return nil, err } - begin = latest + begin = 0 if crit.FromBlock != nil { if crit.FromBlock.Sign() >= 0 { begin = crit.FromBlock.Uint64() @@ -218,26 +219,50 @@ func (api *ErigonImpl) GetLatestLogs(ctx context.Context, crit filters.FilterCri return erigonLogs, beginErr } defer tx.Rollback() - var latest uint64 var err error - if crit.ToBlock != nil { - if crit.ToBlock.Sign() >= 0 { - latest = crit.ToBlock.Uint64() - } else if !crit.ToBlock.IsInt64() || crit.ToBlock.Int64() != int64(rpc.LatestBlockNumber) { - return nil, fmt.Errorf("negative value for ToBlock: %v", crit.ToBlock) + var begin, end uint64 // Filter range: begin-end(from-to). Two limits are included in the filter + + if crit.BlockHash != nil { + header, err := api._blockReader.HeaderByHash(ctx, tx, *crit.BlockHash) + if err != nil { + return nil, err + } + if header == nil { + return nil, fmt.Errorf("block header not found %x", *crit.BlockHash) } + begin = header.Number.Uint64() + end = header.Number.Uint64() } else { - latest, err = rpchelper.GetLatestBlockNumber(tx) - //to fetch latest - latest += 1 + // Convert the RPC block numbers into internal representations + latest, err := rpchelper.GetLatestBlockNumber(tx) if err != nil { return nil, err } + + begin = 0 + if crit.FromBlock != nil { + if crit.FromBlock.Sign() >= 0 { + begin = crit.FromBlock.Uint64() + } else if !crit.FromBlock.IsInt64() || crit.FromBlock.Int64() != int64(rpc.LatestBlockNumber) { + return nil, fmt.Errorf("negative value for FromBlock: %v", crit.FromBlock) + } + } + end = latest + if crit.ToBlock != nil { + if crit.ToBlock.Sign() >= 0 { + end = crit.ToBlock.Uint64() + } else if !crit.ToBlock.IsInt64() || crit.ToBlock.Int64() != int64(rpc.LatestBlockNumber) { + return nil, fmt.Errorf("negative value for ToBlock: %v", crit.ToBlock) + } + } + } + if end < begin { + return nil, fmt.Errorf("end (%d) < begin (%d)", end, begin) } blockNumbers := bitmapdb.NewBitmap() defer bitmapdb.ReturnToPool(blockNumbers) - if err := applyFilters(blockNumbers, tx, 0, latest, crit); err != nil { + if err := applyFilters(blockNumbers, tx, begin, end, crit); err != nil { return erigonLogs, err } if blockNumbers.IsEmpty() { @@ -301,9 +326,10 @@ func (api *ErigonImpl) GetLatestLogs(ctx context.Context, crit filters.FilterCri blockLogs = append(blockLogs, filtered[i]) logCount++ } - if logOptions.LogCount != 0 && logOptions.LogCount == logCount { - continue + if logOptions.LogCount != 0 && logOptions.LogCount <= logCount { + break } + } blockCount++ if len(blockLogs) == 0 { @@ -342,14 +368,15 @@ func (api *ErigonImpl) GetLatestLogs(ctx context.Context, crit filters.FilterCri erigonLog.Topics = log.Topics erigonLog.Data = log.Data erigonLog.Index = log.Index + erigonLog.TxIndex = log.TxIndex erigonLog.Removed = log.Removed erigonLogs = append(erigonLogs, erigonLog) } - if logOptions.LogCount != 0 && logOptions.LogCount == logCount { + if logOptions.LogCount != 0 && logOptions.LogCount <= logCount { return erigonLogs, nil } - if logOptions.BlockCount != 0 && logOptions.BlockCount == blockCount { + if logOptions.BlockCount != 0 && logOptions.BlockCount <= blockCount { return erigonLogs, nil } } @@ -381,7 +408,7 @@ func (api *ErigonImpl) GetBlockReceiptsByBlockHash(ctx context.Context, cannonic if err != nil { return nil, err } - block, err := api.blockWithSenders(ctx, tx, cannonicalBlockHash, blockNum) + block, err := api.blockWithSenders(tx, cannonicalBlockHash, blockNum) if err != nil { return nil, err } diff --git a/turbo/jsonrpc/erigon_receipts_test.go b/turbo/jsonrpc/erigon_receipts_test.go index 71e15c1e958..fe38cf9d63d 100644 --- a/turbo/jsonrpc/erigon_receipts_test.go +++ b/turbo/jsonrpc/erigon_receipts_test.go @@ -29,7 +29,7 @@ func TestGetLogs(t *testing.T) { assert := assert.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) { - ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + ethApi := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) logs, err := ethApi.GetLogs(context.Background(), filters.FilterCriteria{FromBlock: big.NewInt(0), ToBlock: big.NewInt(10)}) assert.NoError(err) @@ -214,7 +214,7 @@ func mockWithGenerator(t *testing.T, blocks int, generator func(int, *core.Block }, testKey, false) if blocks > 0 { chain, _ := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, blocks, generator) - err := m.InsertChain(chain, nil) + err := m.InsertChain(chain) require.NoError(t, err) } return m diff --git a/turbo/jsonrpc/erigon_system.go b/turbo/jsonrpc/erigon_system.go index 6f193898eec..eac0b351554 100644 --- a/turbo/jsonrpc/erigon_system.go +++ b/turbo/jsonrpc/erigon_system.go @@ -2,10 +2,13 @@ package jsonrpc import ( "context" + "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" + borfinality "github.com/ledgerwatch/erigon/consensus/bor/finality" + "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" "github.com/ledgerwatch/erigon/core/forkid" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/rpchelper" @@ -30,7 +33,7 @@ func (api *ErigonImpl) Forks(ctx context.Context) (Forks, error) { if err != nil { return Forks{}, err } - heightForks, timeForks := forkid.GatherForks(chainConfig) + heightForks, timeForks := forkid.GatherForks(chainConfig, genesis.Time()) return Forks{genesis.Hash(), heightForks, timeForks}, nil } @@ -66,6 +69,16 @@ func (api *ErigonImpl) BlockNumber(ctx context.Context, rpcBlockNumPtr *rpc.Bloc return 0, err } case rpc.FinalizedBlockNumber: + if whitelist.GetWhitelistingService() != nil { + num := borfinality.GetFinalizedBlockNumber(tx) + if num == 0 { + return 0, errors.New("no finalized block") + } + + blockNum = borfinality.CurrentFinalizedBlock(tx, num).NumberU64() + return hexutil.Uint64(blockNum), nil + } + blockNum, err = rpchelper.GetFinalizedBlockNumber(tx) if err != nil { return 0, err diff --git a/turbo/jsonrpc/eth_accounts.go b/turbo/jsonrpc/eth_accounts.go index 8653a2c6280..dc3c41f5fcc 100644 --- a/turbo/jsonrpc/eth_accounts.go +++ b/turbo/jsonrpc/eth_accounts.go @@ -3,6 +3,7 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -15,7 +16,6 @@ import ( txpool_proto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/turbo/jsonrpc/eth_api.go b/turbo/jsonrpc/eth_api.go index 9030d489938..c3f076c99e4 100644 --- a/turbo/jsonrpc/eth_api.go +++ b/turbo/jsonrpc/eth_api.go @@ -9,6 +9,8 @@ import ( "sync/atomic" "time" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + lru "github.com/hashicorp/golang-lru/v2" "github.com/holiman/uint256" "github.com/ledgerwatch/log/v3" @@ -24,7 +26,6 @@ import ( libstate "github.com/ledgerwatch/erigon-lib/state" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/misc" @@ -153,19 +154,19 @@ func (api *BaseAPI) genesis(tx kv.Tx) (*types.Block, error) { return genesis, err } -func (api *BaseAPI) txnLookup(ctx context.Context, tx kv.Tx, txnHash common.Hash) (uint64, bool, error) { - return api._txnReader.TxnLookup(ctx, tx, txnHash) +func (api *BaseAPI) txnLookup(tx kv.Tx, txnHash common.Hash) (uint64, bool, error) { + return api._txnReader.TxnLookup(context.Background(), tx, txnHash) } -func (api *BaseAPI) blockByNumberWithSenders(ctx context.Context, tx kv.Tx, number uint64) (*types.Block, error) { - hash, hashErr := api._blockReader.CanonicalHash(ctx, tx, number) +func (api *BaseAPI) blockByNumberWithSenders(tx kv.Tx, number uint64) (*types.Block, error) { + hash, hashErr := api._blockReader.CanonicalHash(context.Background(), tx, number) if hashErr != nil { return nil, hashErr } - return api.blockWithSenders(ctx, tx, hash, number) + return api.blockWithSenders(tx, hash, number) } -func (api *BaseAPI) blockByHashWithSenders(ctx context.Context, tx kv.Tx, hash common.Hash) (*types.Block, error) { +func (api *BaseAPI) blockByHashWithSenders(tx kv.Tx, hash common.Hash) (*types.Block, error) { if api.blocksLRU != nil { if it, ok := api.blocksLRU.Get(hash); ok && it != nil { return it, nil @@ -176,16 +177,16 @@ func (api *BaseAPI) blockByHashWithSenders(ctx context.Context, tx kv.Tx, hash c return nil, nil } - return api.blockWithSenders(ctx, tx, hash, *number) + return api.blockWithSenders(tx, hash, *number) } -func (api *BaseAPI) blockWithSenders(ctx context.Context, tx kv.Tx, hash common.Hash, number uint64) (*types.Block, error) { +func (api *BaseAPI) blockWithSenders(tx kv.Tx, hash common.Hash, number uint64) (*types.Block, error) { if api.blocksLRU != nil { if it, ok := api.blocksLRU.Get(hash); ok && it != nil { return it, nil } } - block, _, err := api._blockReader.BlockWithSenders(ctx, tx, hash, number) + block, _, err := api._blockReader.BlockWithSenders(context.Background(), tx, hash, number) if err != nil { return nil, err } @@ -228,14 +229,14 @@ func (api *BaseAPI) chainConfigWithGenesis(tx kv.Tx) (*chain.Config, *types.Bloc return cc, genesisBlock, nil } - hash, err := rawdb.ReadCanonicalHash(tx, 0) + genesisBlock, err := api.blockByRPCNumber(0, tx) if err != nil { return nil, nil, err } - if err != nil { - return nil, nil, err + if genesisBlock == nil { + return nil, nil, fmt.Errorf("genesis block not found in database") } - cc, err = rawdb.ReadChainConfig(tx, hash) + cc, err = rawdb.ReadChainConfig(tx, genesisBlock.Hash()) if err != nil { return nil, nil, err } @@ -250,13 +251,14 @@ func (api *BaseAPI) pendingBlock() *types.Block { return api.filters.LastPendingBlock() } -func (api *BaseAPI) blockByRPCNumber(ctx context.Context, number rpc.BlockNumber, tx kv.Tx) (*types.Block, error) { +func (api *BaseAPI) blockByRPCNumber(number rpc.BlockNumber, tx kv.Tx) (*types.Block, error) { n, h, _, err := rpchelper.GetBlockNumber(rpc.BlockNumberOrHashWithNumber(number), tx, api.filters) if err != nil { return nil, err } - block, err := api.blockWithSenders(ctx, tx, h, n) + // it's ok to use context.Background(), because in "Remote RPCDaemon" `tx` already contains internal ctx + block, err := api.blockWithSenders(tx, h, n) return block, err } @@ -317,32 +319,36 @@ func (api *BaseAPI) pruneMode(tx kv.Tx) (*prune.Mode, error) { // APIImpl is implementation of the EthAPI interface based on remote Db access type APIImpl struct { *BaseAPI - ethBackend rpchelper.ApiBackend - txPool txpool.TxpoolClient - mining txpool.MiningClient - gasCache *GasPriceCache - db kv.RoDB - GasCap uint64 - ReturnDataLimit int - logger log.Logger + ethBackend rpchelper.ApiBackend + txPool txpool.TxpoolClient + mining txpool.MiningClient + gasCache *GasPriceCache + db kv.RoDB + GasCap uint64 + ReturnDataLimit int + AllowUnprotectedTxs bool + MaxGetProofRewindBlockCount int + logger log.Logger } // NewEthAPI returns APIImpl instance -func NewEthAPI(base *BaseAPI, db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, gascap uint64, returnDataLimit int, logger log.Logger) *APIImpl { +func NewEthAPI(base *BaseAPI, db kv.RoDB, eth rpchelper.ApiBackend, txPool txpool.TxpoolClient, mining txpool.MiningClient, gascap uint64, returnDataLimit int, allowUnprotectedTxs bool, maxGetProofRewindBlockCount int, logger log.Logger) *APIImpl { if gascap == 0 { gascap = uint64(math.MaxUint64 / 2) } return &APIImpl{ - BaseAPI: base, - db: db, - ethBackend: eth, - txPool: txPool, - mining: mining, - gasCache: NewGasPriceCache(), - GasCap: gascap, - ReturnDataLimit: returnDataLimit, - logger: logger, + BaseAPI: base, + db: db, + ethBackend: eth, + txPool: txPool, + mining: mining, + gasCache: NewGasPriceCache(), + GasCap: gascap, + AllowUnprotectedTxs: allowUnprotectedTxs, + ReturnDataLimit: returnDataLimit, + MaxGetProofRewindBlockCount: maxGetProofRewindBlockCount, + logger: logger, } } @@ -371,9 +377,9 @@ type RPCTransaction struct { S *hexutil.Big `json:"s"` } -// newRPCTransaction returns a transaction that will serialize to the RPC +// NewRPCTransaction returns a transaction that will serialize to the RPC // representation, with the given location metadata set (if available). -func newRPCTransaction(tx types.Transaction, blockHash common.Hash, blockNumber uint64, index uint64, baseFee *big.Int) *RPCTransaction { +func NewRPCTransaction(tx types.Transaction, blockHash common.Hash, blockNumber uint64, index uint64, baseFee *big.Int) *RPCTransaction { // Determine the signer. For replay-protected transactions, use the most permissive // signer, because we assume that signers are backwards-compatible with old // transactions. For non-protected transactions, the homestead signer signer is used @@ -484,7 +490,7 @@ func newRPCPendingTransaction(tx types.Transaction, current *types.Header, confi if current != nil { baseFee = misc.CalcBaseFee(config, current) } - return newRPCTransaction(tx, common.Hash{}, 0, 0, baseFee) + return NewRPCTransaction(tx, common.Hash{}, 0, 0, baseFee) } // newRPCRawTransactionFromBlockIndex returns the bytes of a transaction given a block and a transaction index. diff --git a/turbo/jsonrpc/eth_api_test.go b/turbo/jsonrpc/eth_api_test.go index 6f508ab7097..78e398da7f1 100644 --- a/turbo/jsonrpc/eth_api_test.go +++ b/turbo/jsonrpc/eth_api_test.go @@ -5,12 +5,13 @@ import ( "fmt" "testing" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/common" "github.com/stretchr/testify/assert" "github.com/ledgerwatch/erigon-lib/kv/kvcache" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/rpc/rpccfg" @@ -54,7 +55,7 @@ func TestGetTransactionReceipt(t *testing.T) { db := m.DB agg := m.HistoryV3Components() stateCache := kvcache.New(kvcache.DefaultCoherentConfig) - api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), db, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), db, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) // Call GetTransactionReceipt for transaction which is not in the database if _, err := api.GetTransactionReceipt(context.Background(), common.Hash{}); err != nil { t.Errorf("calling GetTransactionReceipt with empty hash: %v", err) @@ -63,7 +64,7 @@ func TestGetTransactionReceipt(t *testing.T) { func TestGetTransactionReceiptUnprotected(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) // Call GetTransactionReceipt for un-protected transaction if _, err := api.GetTransactionReceipt(context.Background(), common.HexToHash("0x3f3cb8a0e13ed2481f97f53f7095b9cbc78b6ffb779f2d3e565146371a8830ea")); err != nil { t.Errorf("calling GetTransactionReceipt for unprotected tx: %v", err) @@ -75,7 +76,7 @@ func TestGetTransactionReceiptUnprotected(t *testing.T) { func TestGetStorageAt_ByBlockNumber_WithRequireCanonicalDefault(t *testing.T) { assert := assert.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") result, err := api.GetStorageAt(context.Background(), addr, "0x0", rpc.BlockNumberOrHashWithNumber(0)) @@ -89,7 +90,7 @@ func TestGetStorageAt_ByBlockNumber_WithRequireCanonicalDefault(t *testing.T) { func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault(t *testing.T) { assert := assert.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") result, err := api.GetStorageAt(context.Background(), addr, "0x0", rpc.BlockNumberOrHashWithHash(m.Genesis.Hash(), false)) @@ -103,7 +104,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault(t *testing.T) { func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue(t *testing.T) { assert := assert.New(t) m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") result, err := api.GetStorageAt(context.Background(), addr, "0x0", rpc.BlockNumberOrHashWithHash(m.Genesis.Hash(), true)) @@ -116,7 +117,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue(t *testing.T) { func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_BlockNotFoundError(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") offChain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 1, func(i int, block *core.BlockGen) { @@ -137,7 +138,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_BlockNotFoundError func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_BlockNotFoundError(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") offChain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 1, func(i int, block *core.BlockGen) { @@ -159,7 +160,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_BlockNotFoundError(t func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(t *testing.T) { assert := assert.New(t) m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") orphanedBlock := orphanedChain[0].Blocks[0] @@ -178,7 +179,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock( func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_NonCanonicalBlock(t *testing.T) { m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) addr := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") orphanedBlock := orphanedChain[0].Blocks[0] @@ -194,7 +195,7 @@ func TestGetStorageAt_ByBlockHash_WithRequireCanonicalTrue_NonCanonicalBlock(t * func TestCall_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(t *testing.T) { m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) from := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") to := common.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e") @@ -217,7 +218,7 @@ func TestCall_ByBlockHash_WithRequireCanonicalDefault_NonCanonicalBlock(t *testi func TestCall_ByBlockHash_WithRequireCanonicalTrue_NonCanonicalBlock(t *testing.T) { m, _, orphanedChain := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) from := common.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") to := common.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e") diff --git a/turbo/jsonrpc/eth_block.go b/turbo/jsonrpc/eth_block.go index b19a9d894c5..25ba7f9505d 100644 --- a/turbo/jsonrpc/eth_block.go +++ b/turbo/jsonrpc/eth_block.go @@ -3,6 +3,8 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon/cl/clparams" "math/big" "time" @@ -11,8 +13,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/cl/clparams" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -46,14 +46,14 @@ func (api *APIImpl) CallBundle(ctx context.Context, txHashes []common.Hash, stat var txs types.Transactions for _, txHash := range txHashes { - blockNum, ok, err := api.txnLookup(ctx, tx, txHash) + blockNum, ok, err := api.txnLookup(tx, txHash) if err != nil { return nil, err } if !ok { return nil, nil } - block, err := api.blockByNumberWithSenders(ctx, tx, blockNum) + block, err := api.blockByNumberWithSenders(tx, blockNum) if err != nil { return nil, err } @@ -93,7 +93,7 @@ func (api *APIImpl) CallBundle(ctx context.Context, txHashes []common.Hash, stat } ibs := state.New(stateReader) - parent := rawdb.ReadHeader(tx, hash, stateBlockNumber) + parent, _ := api.headerByRPCNumber(rpc.BlockNumber(stateBlockNumber), tx) if parent == nil { return nil, fmt.Errorf("block %d(%x) not found", stateBlockNumber, hash) } @@ -261,7 +261,7 @@ func (api *APIImpl) GetBlockByHash(ctx context.Context, numberOrHash rpc.BlockNu additionalFields := make(map[string]interface{}) - block, err := api.blockByHashWithSenders(ctx, tx, hash) + block, err := api.blockByHashWithSenders(tx, hash) if err != nil { return nil, err } @@ -313,7 +313,7 @@ func (api *APIImpl) GetBlockTransactionCountByNumber(ctx context.Context, blockN defer tx.Rollback() if blockNr == rpc.PendingBlockNumber { - b, err := api.blockByRPCNumber(ctx, blockNr, tx) + b, err := api.blockByRPCNumber(blockNr, tx) if err != nil { return nil, err } @@ -372,7 +372,7 @@ func (api *APIImpl) GetBlockTransactionCountByHash(ctx context.Context, blockHas func (api *APIImpl) blockByNumber(ctx context.Context, number rpc.BlockNumber, tx kv.Tx) (*types.Block, error) { if number != rpc.PendingBlockNumber { - return api.blockByRPCNumber(ctx, number, tx) + return api.blockByRPCNumber(number, tx) } if block := api.pendingBlock(); block != nil { @@ -387,5 +387,5 @@ func (api *APIImpl) blockByNumber(ctx context.Context, number rpc.BlockNumber, t return block, nil } - return api.blockByRPCNumber(ctx, number, tx) + return api.blockByRPCNumber(number, tx) } diff --git a/turbo/jsonrpc/eth_block_test.go b/turbo/jsonrpc/eth_block_test.go index 9ae61196be6..b7a5d9af9a1 100644 --- a/turbo/jsonrpc/eth_block_test.go +++ b/turbo/jsonrpc/eth_block_test.go @@ -5,13 +5,14 @@ import ( "math/big" "testing" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon-lib/kv/kvcache" "github.com/stretchr/testify/assert" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rlp" @@ -25,7 +26,7 @@ import ( // Gets the latest block number with the latest tag func TestGetBlockByNumberWithLatestTag(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) b, err := api.GetBlockByNumber(context.Background(), rpc.LatestBlockNumber, false) expected := common.HexToHash("0x5883164d4100b95e1d8e931b8b9574586a1dea7507941e6ad3c1e3a2591485fd") if err != nil { @@ -55,7 +56,7 @@ func TestGetBlockByNumberWithLatestTag_WithHeadHashInDb(t *testing.T) { } tx.Commit() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) block, err := api.GetBlockByNumber(ctx, rpc.LatestBlockNumber, false) if err != nil { t.Errorf("error retrieving block by number: %s", err) @@ -86,7 +87,7 @@ func TestGetBlockByNumberWithPendingTag(t *testing.T) { RplBlock: rlpBlock, }) - api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) b, err := api.GetBlockByNumber(context.Background(), rpc.PendingBlockNumber, false) if err != nil { t.Errorf("error getting block number with pending tag: %s", err) @@ -97,7 +98,7 @@ func TestGetBlockByNumberWithPendingTag(t *testing.T) { func TestGetBlockByNumber_WithFinalizedTag_NoFinalizedBlockInDb(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) if _, err := api.GetBlockByNumber(ctx, rpc.FinalizedBlockNumber, false); err != nil { assert.ErrorIs(t, rpchelper.UnknownBlockError, err) } @@ -124,7 +125,7 @@ func TestGetBlockByNumber_WithFinalizedTag_WithFinalizedBlockInDb(t *testing.T) } tx.Commit() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) block, err := api.GetBlockByNumber(ctx, rpc.FinalizedBlockNumber, false) if err != nil { t.Errorf("error retrieving block by number: %s", err) @@ -136,7 +137,7 @@ func TestGetBlockByNumber_WithFinalizedTag_WithFinalizedBlockInDb(t *testing.T) func TestGetBlockByNumber_WithSafeTag_NoSafeBlockInDb(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) if _, err := api.GetBlockByNumber(ctx, rpc.SafeBlockNumber, false); err != nil { assert.ErrorIs(t, rpchelper.UnknownBlockError, err) } @@ -163,7 +164,7 @@ func TestGetBlockByNumber_WithSafeTag_WithSafeBlockInDb(t *testing.T) { } tx.Commit() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) block, err := api.GetBlockByNumber(ctx, rpc.SafeBlockNumber, false) if err != nil { t.Errorf("error retrieving block by number: %s", err) @@ -176,7 +177,7 @@ func TestGetBlockTransactionCountByHash(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) blockHash := common.HexToHash("0x6804117de2f3e6ee32953e78ced1db7b20214e0d8c745a03b8fecf7cc8ee76ef") tx, err := m.DB.BeginRw(ctx) @@ -208,7 +209,7 @@ func TestGetBlockTransactionCountByHash(t *testing.T) { func TestGetBlockTransactionCountByHash_ZeroTx(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) blockHash := common.HexToHash("0x5883164d4100b95e1d8e931b8b9574586a1dea7507941e6ad3c1e3a2591485fd") tx, err := m.DB.BeginRw(ctx) @@ -240,7 +241,7 @@ func TestGetBlockTransactionCountByHash_ZeroTx(t *testing.T) { func TestGetBlockTransactionCountByNumber(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) blockHash := common.HexToHash("0x6804117de2f3e6ee32953e78ced1db7b20214e0d8c745a03b8fecf7cc8ee76ef") tx, err := m.DB.BeginRw(ctx) @@ -272,7 +273,7 @@ func TestGetBlockTransactionCountByNumber(t *testing.T) { func TestGetBlockTransactionCountByNumber_ZeroTx(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) ctx := context.Background() - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) blockHash := common.HexToHash("0x5883164d4100b95e1d8e931b8b9574586a1dea7507941e6ad3c1e3a2591485fd") diff --git a/turbo/jsonrpc/eth_call.go b/turbo/jsonrpc/eth_call.go index 4efff9c1d98..667bb801d1a 100644 --- a/turbo/jsonrpc/eth_call.go +++ b/turbo/jsonrpc/eth_call.go @@ -6,7 +6,10 @@ import ( "fmt" "math/big" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/kv/membatchwithdb" "github.com/ledgerwatch/log/v3" "google.golang.org/grpc" @@ -15,10 +18,8 @@ import ( "github.com/ledgerwatch/erigon-lib/gointerfaces" txpool_proto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon-lib/kv/memdb" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" @@ -59,7 +60,7 @@ func (api *APIImpl) Call(ctx context.Context, args ethapi2.CallArgs, blockNrOrHa if err != nil { return nil, err } - block, err := api.blockWithSenders(ctx, tx, hash, blockNumber) + block, err := api.blockWithSenders(tx, hash, blockNumber) if err != nil { return nil, err } @@ -234,7 +235,7 @@ func (api *APIImpl) EstimateGas(ctx context.Context, argsOrNil *ethapi2.CallArgs // try and get the block from the lru cache first then try DB before failing block := api.tryBlockFromLru(latestCanHash) if block == nil { - block, err = api.blockWithSenders(ctx, dbtx, latestCanHash, latestCanBlockNumber) + block, err = api.blockWithSenders(dbtx, latestCanHash, latestCanBlockNumber) if err != nil { return 0, err } @@ -313,9 +314,7 @@ func (api *APIImpl) EstimateGas(ctx context.Context, argsOrNil *ethapi2.CallArgs // assumes that if more than 100_000 blocks are skipped, that the entire trie // should be re-computed. Re-computing the entire trie will currently take ~15 // minutes on mainnet. The current limit has been chosen arbitrarily as -// 'useful' without likely being overly computationally intense. This parameter -// could possibly be made configurable in the future if needed. -var maxGetProofRewindBlockCount uint64 = 1_000 +// 'useful' without likely being overly computationally intense. // GetProof is partially implemented; no Storage proofs, and proofs must be for // blocks within maxGetProofRewindBlockCount blocks of the head. @@ -353,10 +352,10 @@ func (api *APIImpl) GetProof(ctx context.Context, address libcommon.Address, sto rl := trie.NewRetainList(0) var loader *trie.FlatDBTrieLoader if blockNr < latestBlock { - if latestBlock-blockNr > maxGetProofRewindBlockCount { - return nil, fmt.Errorf("requested block is too old, block must be within %d blocks of the head block number (currently %d)", maxGetProofRewindBlockCount, latestBlock) + if latestBlock-blockNr > uint64(api.MaxGetProofRewindBlockCount) { + return nil, fmt.Errorf("requested block is too old, block must be within %d blocks of the head block number (currently %d)", uint64(api.MaxGetProofRewindBlockCount), latestBlock) } - batch := memdb.NewMemoryBatch(tx, api.dirs.Tmp) + batch := membatchwithdb.NewMemoryBatch(tx, api.dirs.Tmp) defer batch.Rollback() unwindState := &stagedsync.UnwindState{UnwindPoint: blockNr} @@ -449,7 +448,7 @@ func (api *APIImpl) CreateAccessList(ctx context.Context, args ethapi2.CallArgs, if err != nil { return nil, err } - block, err := api.blockWithSenders(ctx, tx, hash, blockNumber) + block, err := api.blockWithSenders(tx, hash, blockNumber) if err != nil { return nil, err } @@ -502,11 +501,15 @@ func (api *APIImpl) CreateAccessList(ctx context.Context, args ethapi2.CallArgs, // Retrieve the precompiles since they don't need to be added to the access list precompiles := vm.ActivePrecompiles(chainConfig.Rules(blockNumber, header.Time)) + excl := make(map[libcommon.Address]struct{}) + for _, pc := range precompiles { + excl[pc] = struct{}{} + } // Create an initial tracer - prevTracer := logger.NewAccessListTracer(nil, *args.From, to, precompiles) + prevTracer := logger.NewAccessListTracer(nil, excl, nil) if args.AccessList != nil { - prevTracer = logger.NewAccessListTracer(*args.AccessList, *args.From, to, precompiles) + prevTracer = logger.NewAccessListTracer(*args.AccessList, excl, nil) } for { state := state.New(stateReader) @@ -537,7 +540,7 @@ func (api *APIImpl) CreateAccessList(ctx context.Context, args ethapi2.CallArgs, } // Apply the transaction with the access list tracer - tracer := logger.NewAccessListTracer(accessList, *args.From, to, precompiles) + tracer := logger.NewAccessListTracer(accessList, excl, state) config := vm.Config{Tracer: tracer, Debug: true, NoBaseFee: true} blockCtx := transactions.NewEVMBlockContext(engine, header, bNrOrHash.RequireCanonical, tx, api._blockReader) txCtx := core.NewEVMTxContext(msg) @@ -554,8 +557,15 @@ func (api *APIImpl) CreateAccessList(ctx context.Context, args ethapi2.CallArgs, errString = res.Err.Error() } accessList := &accessListResult{Accesslist: &accessList, Error: errString, GasUsed: hexutil.Uint64(res.UsedGas)} - if optimizeGas != nil && *optimizeGas { - optimizeToInAccessList(accessList, to) + if optimizeGas == nil || *optimizeGas { // optimize gas unless explicitly told not to + optimizeWarmAddrInAccessList(accessList, *args.From) + optimizeWarmAddrInAccessList(accessList, to) + optimizeWarmAddrInAccessList(accessList, header.Coinbase) + for addr := range tracer.CreatedContracts() { + if !tracer.UsedBeforeCreation(addr) { + optimizeWarmAddrInAccessList(accessList, addr) + } + } } return accessList, nil } @@ -563,14 +573,15 @@ func (api *APIImpl) CreateAccessList(ctx context.Context, args ethapi2.CallArgs, } } -// to address is warm already, so we can save by adding it to the access list -// only if we are adding a lot of its storage slots as well -func optimizeToInAccessList(accessList *accessListResult, to libcommon.Address) { +// some addresses (like sender, recipient, block producer, and created contracts) +// are considered warm already, so we can save by adding these to the access list +// only if we are adding a lot of their respective storage slots as well +func optimizeWarmAddrInAccessList(accessList *accessListResult, addr libcommon.Address) { indexToRemove := -1 for i := 0; i < len(*accessList.Accesslist); i++ { entry := (*accessList.Accesslist)[i] - if entry.Address != to { + if entry.Address != addr { continue } diff --git a/turbo/jsonrpc/eth_callMany.go b/turbo/jsonrpc/eth_callMany.go index e8df8118f7a..df7bfd9e377 100644 --- a/turbo/jsonrpc/eth_callMany.go +++ b/turbo/jsonrpc/eth_callMany.go @@ -4,6 +4,7 @@ import ( "context" "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "time" @@ -11,7 +12,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/state" @@ -111,7 +111,7 @@ func (api *APIImpl) CallMany(ctx context.Context, bundles []Bundle, simulateCont return nil, err } - block, err := api.blockWithSenders(ctx, tx, hash, blockNum) + block, err := api.blockWithSenders(tx, hash, blockNum) if err != nil { return nil, err } diff --git a/turbo/jsonrpc/eth_callMany_test.go b/turbo/jsonrpc/eth_callMany_test.go index 4ef58d7b8f9..e876589494c 100644 --- a/turbo/jsonrpc/eth_callMany_test.go +++ b/turbo/jsonrpc/eth_callMany_test.go @@ -8,13 +8,14 @@ import ( "strconv" "testing" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/common/datadir" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/kv/kvcache" "github.com/ledgerwatch/erigon/accounts/abi/bind" "github.com/ledgerwatch/erigon/accounts/abi/bind/backends" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/params" @@ -84,7 +85,7 @@ func TestCallMany(t *testing.T) { db := contractBackend.DB() engine := contractBackend.Engine() api := NewEthAPI(NewBaseApi(nil, stateCache, contractBackend.BlockReader(), contractBackend.Agg(), false, rpccfg.DefaultEvmCallTimeout, engine, - datadir.New(t.TempDir())), db, nil, nil, nil, 5000000, 100_000, log.New()) + datadir.New(t.TempDir())), db, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) callArgAddr1 := ethapi.CallArgs{From: &address, To: &tokenAddr, Nonce: &nonce, MaxPriorityFeePerGas: (*hexutil.Big)(big.NewInt(1e9)), diff --git a/turbo/jsonrpc/eth_call_test.go b/turbo/jsonrpc/eth_call_test.go index e1c4a6f3383..8040af8593b 100644 --- a/turbo/jsonrpc/eth_call_test.go +++ b/turbo/jsonrpc/eth_call_test.go @@ -7,6 +7,8 @@ import ( "testing" "time" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/holiman/uint256" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -18,7 +20,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/kvcache" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -42,7 +43,7 @@ func TestEstimateGas(t *testing.T) { ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mock.Mock(t)) mining := txpool.NewMiningClient(conn) ff := rpchelper.New(ctx, nil, nil, mining, func() {}, m.Log) - api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) var from = libcommon.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") var to = libcommon.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e") if _, err := api.EstimateGas(context.Background(), ðapi.CallArgs{ @@ -57,7 +58,7 @@ func TestEthCallNonCanonical(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) agg := m.HistoryV3Components() stateCache := kvcache.New(kvcache.DefaultCoherentConfig) - api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) var from = libcommon.HexToAddress("0x71562b71999873db5b286df957af199ec94617f7") var to = libcommon.HexToAddress("0x0d3ab14bbad3d99f4203bd7a11acb94882050e7e") if _, err := api.Call(context.Background(), ethapi.CallArgs{ @@ -76,7 +77,7 @@ func TestEthCallToPrunedBlock(t *testing.T) { m, bankAddress, contractAddress := chainWithDeployedContract(t) doPrune(t, m.DB, pruneTo) - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) callData := hexutil.MustDecode("0x2e64cec1") callDataBytes := hexutility.Bytes(callData) @@ -91,13 +92,13 @@ func TestEthCallToPrunedBlock(t *testing.T) { } func TestGetProof(t *testing.T) { - maxGetProofRewindBlockCount = 1 // Note, this is unsafe for parallel tests, but, this test is the only consumer for now + var maxGetProofRewindBlockCount = 1 // Note, this is unsafe for parallel tests, but, this test is the only consumer for now m, bankAddr, contractAddr := chainWithDeployedContract(t) if m.HistoryV3 { t.Skip("not supported by Erigon3") } - api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, maxGetProofRewindBlockCount, log.New()) key := func(b byte) libcommon.Hash { result := libcommon.Hash{} @@ -524,7 +525,7 @@ func chainWithDeployedContract(t *testing.T) (*mock.MockSentry, libcommon.Addres t.Fatalf("generate blocks: %v", err) } - err = m.InsertChain(chain, nil) + err = m.InsertChain(chain) assert.NoError(t, err) tx, err := db.BeginRo(context.Background()) diff --git a/turbo/jsonrpc/eth_filters_test.go b/turbo/jsonrpc/eth_filters_test.go index 636e771927a..b7db654f31e 100644 --- a/turbo/jsonrpc/eth_filters_test.go +++ b/turbo/jsonrpc/eth_filters_test.go @@ -30,7 +30,7 @@ func TestNewFilters(t *testing.T) { ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mock.Mock(t)) mining := txpool.NewMiningClient(conn) ff := rpchelper.New(ctx, nil, nil, mining, func() {}, m.Log) - api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) ptf, err := api.NewPendingTransactionFilter(ctx) assert.Nil(err) diff --git a/turbo/jsonrpc/eth_mining.go b/turbo/jsonrpc/eth_mining.go index 5d6898803e7..b32940feac1 100644 --- a/turbo/jsonrpc/eth_mining.go +++ b/turbo/jsonrpc/eth_mining.go @@ -3,12 +3,12 @@ package jsonrpc import ( "context" "errors" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "google.golang.org/grpc/status" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/turbo/jsonrpc/eth_mining_test.go b/turbo/jsonrpc/eth_mining_test.go index 86f86b40e6a..752b44db4fb 100644 --- a/turbo/jsonrpc/eth_mining_test.go +++ b/turbo/jsonrpc/eth_mining_test.go @@ -27,7 +27,7 @@ func TestPendingBlock(t *testing.T) { stateCache := kvcache.New(kvcache.DefaultCoherentConfig) engine := ethash.NewFaker() api := NewEthAPI(NewBaseApi(ff, stateCache, m.BlockReader, nil, false, rpccfg.DefaultEvmCallTimeout, engine, - m.Dirs), nil, nil, nil, mining, 5000000, 100_000, log.New()) + m.Dirs), nil, nil, nil, mining, 5000000, 100_000, false, 100_000, log.New()) expect := uint64(12345) b, err := rlp.EncodeToBytes(types.NewBlockWithHeader(&types.Header{Number: big.NewInt(int64(expect))})) require.NoError(t, err) diff --git a/turbo/jsonrpc/eth_receipts.go b/turbo/jsonrpc/eth_receipts.go index 4ea9d1cfac0..6567e6e3c82 100644 --- a/turbo/jsonrpc/eth_receipts.go +++ b/turbo/jsonrpc/eth_receipts.go @@ -5,6 +5,7 @@ import ( "context" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/RoaringBitmap/roaring" @@ -13,7 +14,6 @@ import ( "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon-lib/common/fixedgas" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" @@ -21,7 +21,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core" @@ -38,6 +37,8 @@ import ( "github.com/ledgerwatch/erigon/turbo/transactions" ) +const PendingBlockNumber int64 = -2 + func (api *BaseAPI) getReceipts(ctx context.Context, tx kv.Tx, chainConfig *chain.Config, block *types.Block, senders []common.Address) (types.Receipts, error) { if cached := rawdb.ReadReceipts(tx, block, senders); cached != nil { return cached, nil @@ -51,7 +52,7 @@ func (api *BaseAPI) getReceipts(ctx context.Context, tx kv.Tx, chainConfig *chai usedGas := new(uint64) usedBlobGas := new(uint64) - gp := new(core.GasPool).AddGas(block.GasLimit()).AddBlobGas(fixedgas.MaxBlobGasPerBlock) + gp := new(core.GasPool).AddGas(block.GasLimit()).AddBlobGas(chainConfig.GetMaxBlobGasPerBlock()) noopWriter := state.NewNoopWriter() @@ -90,16 +91,18 @@ func (api *APIImpl) GetLogs(ctx context.Context, crit filters.FilterCriteria) (t defer tx.Rollback() if crit.BlockHash != nil { - num := rawdb.ReadHeaderNumber(tx, *crit.BlockHash) - //header, err := api._blockReader.HeaderByHash(ctx, tx, *crit.BlockHash) - //if err != nil { - // return nil, err - //} - if num == nil { + block, err := api._blockReader.BlockByHash(ctx, tx, *crit.BlockHash) + if err != nil { + return nil, err + } + + if block == nil { return nil, fmt.Errorf("block not found: %x", *crit.BlockHash) } - begin = *num - end = *num + + num := block.NumberU64() + begin = num + end = num } else { // Convert the RPC block numbers into internal representations latest, _, _, err := rpchelper.GetBlockNumber(rpc.BlockNumberOrHashWithNumber(rpc.LatestExecutedBlockNumber), tx, nil) @@ -109,21 +112,41 @@ func (api *APIImpl) GetLogs(ctx context.Context, crit filters.FilterCriteria) (t begin = latest if crit.FromBlock != nil { - if crit.FromBlock.Sign() >= 0 { - begin = crit.FromBlock.Uint64() - } else if !crit.FromBlock.IsInt64() || crit.FromBlock.Int64() != int64(rpc.LatestBlockNumber) { - return nil, fmt.Errorf("negative value for FromBlock: %v", crit.FromBlock) + if !getLogsIsValidBlockNumber(crit.FromBlock) { + return nil, fmt.Errorf("invalid value for FromBlock: %v", crit.FromBlock) } + + fromBlock := crit.FromBlock.Int64() + if fromBlock > 0 { + begin = uint64(fromBlock) + } else { + blockNum := rpc.BlockNumber(fromBlock) + begin, _, _, err = rpchelper.GetBlockNumber(rpc.BlockNumberOrHashWithNumber(blockNum), tx, api.filters) + if err != nil { + return nil, err + } + } + } end = latest if crit.ToBlock != nil { - if crit.ToBlock.Sign() >= 0 { - end = crit.ToBlock.Uint64() - } else if !crit.ToBlock.IsInt64() || crit.ToBlock.Int64() != int64(rpc.LatestBlockNumber) { - return nil, fmt.Errorf("negative value for ToBlock: %v", crit.ToBlock) + if !getLogsIsValidBlockNumber(crit.ToBlock) { + return nil, fmt.Errorf("invalid value for ToBlock: %v", crit.ToBlock) + } + + toBlock := crit.ToBlock.Int64() + if toBlock > 0 { + end = uint64(toBlock) + } else { + blockNum := rpc.BlockNumber(toBlock) + end, _, _, err = rpchelper.GetBlockNumber(rpc.BlockNumberOrHashWithNumber(blockNum), tx, api.filters) + if err != nil { + return nil, err + } } } } + if end < begin { return nil, fmt.Errorf("end (%d) < begin (%d)", end, begin) } @@ -225,6 +248,11 @@ func (api *APIImpl) GetLogs(ctx context.Context, crit filters.FilterCriteria) (t return logs, nil } +// getLogsIsValidBlockNumber checks if block number is valid integer or "latest", "pending", "earliest" block number +func getLogsIsValidBlockNumber(blockNum *big.Int) bool { + return blockNum.IsInt64() && blockNum.Int64() >= PendingBlockNumber +} + // The Topic list restricts matches to particular event topics. Each event has a list // of topics. Topics matches a prefix of that list. An empty element slice matches any // topic. Non-empty elements represent an alternative that matches any of the @@ -590,7 +618,7 @@ func (api *APIImpl) GetTransactionReceipt(ctx context.Context, txnHash common.Ha var blockNum uint64 var ok bool - blockNum, ok, err = api.txnLookup(ctx, tx, txnHash) + blockNum, ok, err = api.txnLookup(tx, txnHash) if err != nil { return nil, err } @@ -599,26 +627,19 @@ func (api *APIImpl) GetTransactionReceipt(ctx context.Context, txnHash common.Ha if err != nil { return nil, err } - - if !ok && cc.Bor == nil { - return nil, nil - } - - // if not ok and cc.Bor != nil then we might have a bor transaction. - // Note that Private API returns 0 if transaction is not found. - if !ok || blockNum == 0 { - blockNumPtr, err := rawdb.ReadBorTxLookupEntry(tx, txnHash) + // Private API returns 0 if transaction is not found. + if blockNum == 0 && cc.Bor != nil { + blockNum, ok, err = api._blockReader.EventLookup(ctx, tx, txnHash) if err != nil { return nil, err } - if blockNumPtr == nil { - return nil, nil - } + } - blockNum = *blockNumPtr + if !ok { + return nil, nil } - block, err := api.blockByNumberWithSenders(ctx, tx, blockNum) + block, err := api.blockByNumberWithSenders(tx, blockNum) if err != nil { return nil, err } @@ -637,19 +658,18 @@ func (api *APIImpl) GetTransactionReceipt(ctx context.Context, txnHash common.Ha } var borTx types.Transaction - if txn == nil { + if txn == nil && cc.Bor != nil { borTx = rawdb.ReadBorTransactionForBlock(tx, blockNum) if borTx == nil { - return nil, nil + borTx = types.NewBorTransaction() } } - receipts, err := api.getReceipts(ctx, tx, cc, block, block.Body().SendersFromTxs()) if err != nil { return nil, fmt.Errorf("getReceipts error: %w", err) } - if txn == nil { + if txn == nil && cc.Bor != nil { borReceipt, err := rawdb.ReadBorReceipt(tx, block.Hash(), blockNum, receipts) if err != nil { return nil, err @@ -679,7 +699,7 @@ func (api *APIImpl) GetBlockReceipts(ctx context.Context, numberOrHash rpc.Block if err != nil { return nil, err } - block, err := api.blockWithSenders(ctx, tx, blockHash, blockNum) + block, err := api.blockWithSenders(tx, blockHash, blockNum) if err != nil { return nil, err } @@ -770,12 +790,12 @@ func marshalReceipt(receipt *types.Receipt, txn types.Transaction, chainConfig * if header.ExcessBlobGas == nil { log.Warn("excess blob gas not set when trying to marshal blob tx") } else { - blobGasPrice, err := misc.GetBlobGasPrice(*header.ExcessBlobGas) + blobGasPrice, err := misc.GetBlobGasPrice(chainConfig, *header.ExcessBlobGas) if err != nil { log.Error(err.Error()) } fields["blobGasPrice"] = blobGasPrice - fields["blobGasUsed"] = misc.GetBlobGasUsed(numBlobs) + fields["blobGasUsed"] = hexutil.Uint64(misc.GetBlobGasUsed(numBlobs)) } } return fields diff --git a/turbo/jsonrpc/eth_subscribe_test.go b/turbo/jsonrpc/eth_subscribe_test.go index d86a4648453..26e67192516 100644 --- a/turbo/jsonrpc/eth_subscribe_test.go +++ b/turbo/jsonrpc/eth_subscribe_test.go @@ -54,8 +54,8 @@ func TestEthSubscribe(t *testing.T) { initialCycle := mock.MockInsertAsInitialCycle highestSeenHeader := chain.TopBlock.NumberU64() - hook := stages.NewHook(m.Ctx, m.Notifications, m.Sync, m.BlockReader, m.ChainConfig, m.Log, m.UpdateHead) - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, logger, m.BlockReader, hook); err != nil { + hook := stages.NewHook(m.Ctx, m.DB, m.Notifications, m.Sync, m.BlockReader, m.ChainConfig, m.Log, m.UpdateHead) + if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, logger, m.BlockReader, hook, false); err != nil { t.Fatal(err) } diff --git a/turbo/jsonrpc/eth_system.go b/turbo/jsonrpc/eth_system.go index c67c189f5d9..470b7159341 100644 --- a/turbo/jsonrpc/eth_system.go +++ b/turbo/jsonrpc/eth_system.go @@ -2,12 +2,12 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/ethconfig" @@ -215,7 +215,7 @@ func (b *GasPriceOracleBackend) HeaderByNumber(ctx context.Context, number rpc.B return header, nil } func (b *GasPriceOracleBackend) BlockByNumber(ctx context.Context, number rpc.BlockNumber) (*types.Block, error) { - return b.baseApi.blockByRPCNumber(ctx, number, b.tx) + return b.baseApi.blockByRPCNumber(number, b.tx) } func (b *GasPriceOracleBackend) ChainConfig() *chain.Config { return b.cc diff --git a/turbo/jsonrpc/eth_system_test.go b/turbo/jsonrpc/eth_system_test.go index f29dbc7b15b..f01717b4cab 100644 --- a/turbo/jsonrpc/eth_system_test.go +++ b/turbo/jsonrpc/eth_system_test.go @@ -40,7 +40,7 @@ func TestGasPrice(t *testing.T) { t.Run(testCase.description, func(t *testing.T) { m := createGasPriceTestKV(t, testCase.chainSize) defer m.DB.Close() - eth := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, log.New()) + eth := NewEthAPI(newBaseApiForTest(m), m.DB, nil, nil, nil, 5000000, 100_000, false, 100_000, log.New()) ctx := context.Background() result, err := eth.GasPrice(ctx) @@ -81,7 +81,7 @@ func createGasPriceTestKV(t *testing.T, chainSize int) *mock.MockSentry { t.Error(err) } // Construct testing chain - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Error(err) } diff --git a/turbo/jsonrpc/eth_txs.go b/turbo/jsonrpc/eth_txs.go index 05b5a4a74b6..f0756797bd6 100644 --- a/turbo/jsonrpc/eth_txs.go +++ b/turbo/jsonrpc/eth_txs.go @@ -5,13 +5,14 @@ import ( "context" "math/big" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/gointerfaces" "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon-lib/gointerfaces/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" types2 "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" @@ -31,24 +32,19 @@ func (api *APIImpl) GetTransactionByHash(ctx context.Context, txnHash common.Has } // https://infura.io/docs/ethereum/json-rpc/eth-getTransactionByHash - blockNum, ok, err := api.txnLookup(ctx, tx, txnHash) + blockNum, ok, err := api.txnLookup(tx, txnHash) if err != nil { return nil, err } // Private API returns 0 if transaction is not found. if blockNum == 0 && chainConfig.Bor != nil { - blockNumPtr, err := rawdb.ReadBorTxLookupEntry(tx, txnHash) + blockNum, ok, err = api._blockReader.EventLookup(ctx, tx, txnHash) if err != nil { return nil, err } - - ok = blockNumPtr != nil - if ok { - blockNum = *blockNumPtr - } } if ok { - block, err := api.blockByNumberWithSenders(ctx, tx, blockNum) + block, err := api.blockByNumberWithSenders(tx, blockNum) if err != nil { return nil, err } @@ -77,14 +73,11 @@ func (api *APIImpl) GetTransactionByHash(ctx context.Context, txnHash common.Has if chainConfig.Bor == nil { return nil, nil } - borTx := rawdb.ReadBorTransactionForBlock(tx, blockNum) - if borTx == nil { - return nil, nil - } + borTx := types2.NewBorTransaction() return newRPCBorTransaction(borTx, txnHash, blockHash, blockNum, uint64(len(block.Transactions())), baseFee, chainConfig.ChainID), nil } - return newRPCTransaction(txn, blockHash, blockNum, txnIndex, baseFee), nil + return NewRPCTransaction(txn, blockHash, blockNum, txnIndex, baseFee), nil } curHeader := rawdb.ReadCurrentHeader(tx) @@ -124,14 +117,14 @@ func (api *APIImpl) GetRawTransactionByHash(ctx context.Context, hash common.Has defer tx.Rollback() // https://infura.io/docs/ethereum/json-rpc/eth-getTransactionByHash - blockNum, ok, err := api.txnLookup(ctx, tx, hash) + blockNum, ok, err := api.txnLookup(tx, hash) if err != nil { return nil, err } if !ok { return nil, nil } - block, err := api.blockByNumberWithSenders(ctx, tx, blockNum) + block, err := api.blockByNumberWithSenders(tx, blockNum) if err != nil { return nil, err } @@ -176,7 +169,7 @@ func (api *APIImpl) GetTransactionByBlockHashAndIndex(ctx context.Context, block } // https://infura.io/docs/ethereum/json-rpc/eth-getTransactionByBlockHashAndIndex - block, err := api.blockByHashWithSenders(ctx, tx, blockHash) + block, err := api.blockByHashWithSenders(tx, blockHash) if err != nil { return nil, err } @@ -199,7 +192,7 @@ func (api *APIImpl) GetTransactionByBlockHashAndIndex(ctx context.Context, block return newRPCBorTransaction(borTx, derivedBorTxHash, block.Hash(), block.NumberU64(), uint64(txIndex), block.BaseFee(), chainConfig.ChainID), nil } - return newRPCTransaction(txs[txIndex], block.Hash(), block.NumberU64(), uint64(txIndex), block.BaseFee()), nil + return NewRPCTransaction(txs[txIndex], block.Hash(), block.NumberU64(), uint64(txIndex), block.BaseFee()), nil } // GetRawTransactionByBlockHashAndIndex returns the bytes of the transaction for the given block hash and index. @@ -211,7 +204,7 @@ func (api *APIImpl) GetRawTransactionByBlockHashAndIndex(ctx context.Context, bl defer tx.Rollback() // https://infura.io/docs/ethereum/json-rpc/eth-getRawTransactionByBlockHashAndIndex - block, err := api.blockByHashWithSenders(ctx, tx, blockHash) + block, err := api.blockByHashWithSenders(tx, blockHash) if err != nil { return nil, err } @@ -240,7 +233,7 @@ func (api *APIImpl) GetTransactionByBlockNumberAndIndex(ctx context.Context, blo return nil, err } - block, err := api.blockWithSenders(ctx, tx, hash, blockNum) + block, err := api.blockWithSenders(tx, hash, blockNum) if err != nil { return nil, err } @@ -263,7 +256,7 @@ func (api *APIImpl) GetTransactionByBlockNumberAndIndex(ctx context.Context, blo return newRPCBorTransaction(borTx, derivedBorTxHash, hash, blockNum, uint64(txIndex), block.BaseFee(), chainConfig.ChainID), nil } - return newRPCTransaction(txs[txIndex], hash, blockNum, uint64(txIndex), block.BaseFee()), nil + return NewRPCTransaction(txs[txIndex], hash, blockNum, uint64(txIndex), block.BaseFee()), nil } // GetRawTransactionByBlockNumberAndIndex returns the bytes of the transaction for the given block number and index. @@ -275,7 +268,7 @@ func (api *APIImpl) GetRawTransactionByBlockNumberAndIndex(ctx context.Context, defer tx.Rollback() // https://infura.io/docs/ethereum/json-rpc/eth-getRawTransactionByBlockNumberAndIndex - block, err := api.blockByRPCNumber(ctx, blockNr, tx) + block, err := api.blockByRPCNumber(blockNr, tx) if err != nil { return nil, err } diff --git a/turbo/jsonrpc/eth_uncles.go b/turbo/jsonrpc/eth_uncles.go index e9532cb7e39..8d0acf589c9 100644 --- a/turbo/jsonrpc/eth_uncles.go +++ b/turbo/jsonrpc/eth_uncles.go @@ -2,11 +2,11 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" @@ -26,7 +26,7 @@ func (api *APIImpl) GetUncleByBlockNumberAndIndex(ctx context.Context, number rp if err != nil { return nil, err } - block, err := api.blockWithSenders(ctx, tx, hash, blockNum) + block, err := api.blockWithSenders(tx, hash, blockNum) if err != nil { return nil, err } @@ -57,7 +57,7 @@ func (api *APIImpl) GetUncleByBlockHashAndIndex(ctx context.Context, hash common } defer tx.Rollback() - block, err := api.blockByHashWithSenders(ctx, tx, hash) + block, err := api.blockByHashWithSenders(tx, hash) if err != nil { return nil, err } @@ -97,7 +97,7 @@ func (api *APIImpl) GetUncleCountByBlockNumber(ctx context.Context, number rpc.B return &n, err } - block, err := api.blockWithSenders(ctx, tx, blockHash, blockNum) + block, err := api.blockWithSenders(tx, blockHash, blockNum) if err != nil { return nil, err } @@ -122,7 +122,7 @@ func (api *APIImpl) GetUncleCountByBlockHash(ctx context.Context, hash common.Ha return nil, nil // not error, see https://github.com/ledgerwatch/erigon/issues/1645 } - block, err := api.blockWithSenders(ctx, tx, hash, *number) + block, err := api.blockWithSenders(tx, hash, *number) if err != nil { return nil, err } diff --git a/turbo/jsonrpc/gen_traces_test.go b/turbo/jsonrpc/gen_traces_test.go index 88989cfb282..85b90bb5a00 100644 --- a/turbo/jsonrpc/gen_traces_test.go +++ b/turbo/jsonrpc/gen_traces_test.go @@ -40,7 +40,7 @@ func TestGeneratedDebugApi(t *testing.T) { t.Errorf("debug_traceBlock %d: %v", 0, err) } if err = stream.Flush(); err != nil { - t.Fatalf("error flusing: %v", err) + t.Fatalf("error flushing: %v", err) } var result interface{} if err = json.Unmarshal(buf.Bytes(), &result); err != nil { @@ -95,7 +95,7 @@ func TestGeneratedDebugApi(t *testing.T) { } ], "from": "0x71562b71999873db5b286df957af199ec94617f7", - "gas": "0x7120", + "gas": "0xc350", "gasUsed": "0x684c", "input": "0x01000100", "to": "0x00000000000000000000000000000000000002ff", diff --git a/turbo/jsonrpc/get_chain_config_test.go b/turbo/jsonrpc/get_chain_config_test.go index f1934b495ff..af406fe70d5 100644 --- a/turbo/jsonrpc/get_chain_config_test.go +++ b/turbo/jsonrpc/get_chain_config_test.go @@ -2,20 +2,15 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" "testing" - - "github.com/ledgerwatch/erigon-lib/common/datadir" - "github.com/ledgerwatch/erigon/core" - "github.com/ledgerwatch/erigon/core/state/temporal" - "github.com/ledgerwatch/log/v3" ) func TestGetChainConfig(t *testing.T) { - _, db, _ := temporal.NewTestDB(t, datadir.New(t.TempDir()), nil) - config, _, err := core.CommitGenesisBlock(db, core.MainnetGenesisBlock(), "", log.New()) - if err != nil { - t.Fatalf("setting up genensis block: %v", err) - } + m, _, _ := rpcdaemontest.CreateTestSentry(t) + db := m.DB + api := newBaseApiForTest(m) + config := m.ChainConfig tx, txErr := db.BeginRo(context.Background()) if txErr != nil { @@ -23,7 +18,6 @@ func TestGetChainConfig(t *testing.T) { } defer tx.Rollback() - api := &BaseAPI{} config1, err1 := api.chainConfig(tx) if err1 != nil { t.Fatalf("reading chain config: %v", err1) diff --git a/turbo/jsonrpc/graphql_api.go b/turbo/jsonrpc/graphql_api.go index 97b9b0c082e..b32406e9f82 100644 --- a/turbo/jsonrpc/graphql_api.go +++ b/turbo/jsonrpc/graphql_api.go @@ -3,11 +3,11 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" diff --git a/turbo/jsonrpc/net_api.go b/turbo/jsonrpc/net_api.go index 98e88436b76..f35e36afdf4 100644 --- a/turbo/jsonrpc/net_api.go +++ b/turbo/jsonrpc/net_api.go @@ -3,9 +3,9 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "strconv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/turbo/rpchelper" ) diff --git a/turbo/jsonrpc/otterscan_api.go b/turbo/jsonrpc/otterscan_api.go index 43573b5f49e..9b14b8588f2 100644 --- a/turbo/jsonrpc/otterscan_api.go +++ b/turbo/jsonrpc/otterscan_api.go @@ -5,7 +5,9 @@ import ( "errors" "fmt" "math/big" - "sync" + + hexutil2 "github.com/ledgerwatch/erigon-lib/common/hexutil" + "golang.org/x/sync/errgroup" "github.com/holiman/uint256" "github.com/ledgerwatch/log/v3" @@ -17,7 +19,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/iter" "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -75,7 +76,7 @@ func (api *OtterscanAPIImpl) GetApiLevel() uint8 { // TODO: dedup from eth_txs.go#GetTransactionByHash func (api *OtterscanAPIImpl) getTransactionByHash(ctx context.Context, tx kv.Tx, hash common.Hash) (types.Transaction, *types.Block, common.Hash, uint64, uint64, error) { // https://infura.io/docs/ethereum/json-rpc/eth-getTransactionByHash - blockNum, ok, err := api.txnLookup(ctx, tx, hash) + blockNum, ok, err := api.txnLookup(tx, hash) if err != nil { return nil, nil, common.Hash{}, 0, 0, err } @@ -83,7 +84,7 @@ func (api *OtterscanAPIImpl) getTransactionByHash(ctx context.Context, tx kv.Tx, return nil, nil, common.Hash{}, 0, 0, nil } - block, err := api.blockByNumberWithSenders(ctx, tx, blockNum) + block, err := api.blockByNumberWithSenders(tx, blockNum) if err != nil { return nil, nil, common.Hash{}, 0, 0, err } @@ -324,7 +325,7 @@ func (api *OtterscanAPIImpl) searchTransactionsBeforeV3(tx kv.TemporalTx, ctx co if err != nil { return nil, err } - rpcTx := newRPCTransaction(txn, blockHash, blockNum, uint64(txIndex), header.BaseFee) + rpcTx := NewRPCTransaction(txn, blockHash, blockNum, uint64(txIndex), header.BaseFee) txs = append(txs, rpcTx) receipt := &types.Receipt{ Type: txn.Type(), CumulativeGasUsed: res.UsedGas, @@ -434,8 +435,6 @@ func (api *OtterscanAPIImpl) SearchTransactionsAfter(ctx context.Context, addr c } func (api *OtterscanAPIImpl) traceBlocks(ctx context.Context, addr common.Address, chainConfig *chain.Config, pageSize, resultCount uint16, callFromToProvider BlockProvider) ([]*TransactionsWithReceipts, bool, error) { - var wg sync.WaitGroup - // Estimate the common case of user address having at most 1 interaction/block and // trace N := remaining page matches as number of blocks to trace concurrently. // TODO: this is not optimimal for big contract addresses; implement some better heuristics. @@ -444,7 +443,11 @@ func (api *OtterscanAPIImpl) traceBlocks(ctx context.Context, addr common.Addres totalBlocksTraced := 0 hasMore := true + eg, ctx := errgroup.WithContext(ctx) + eg.SetLimit(1024) // we don't want limit much here, but protecting from infinity attack for i := 0; i < int(estBlocksToTrace); i++ { + i := i // we will pass it to goroutine + var nextBlock uint64 var err error nextBlock, hasMore, err = callFromToProvider() @@ -456,16 +459,24 @@ func (api *OtterscanAPIImpl) traceBlocks(ctx context.Context, addr common.Addres break } - wg.Add(1) totalBlocksTraced++ - go api.searchTraceBlock(ctx, &wg, addr, chainConfig, i, nextBlock, results) + + eg.Go(func() error { + // don't return error from searchTraceBlock - to avoid 1 block fail impact to other blocks + // if return error - `errgroup` will interrupt all other goroutines + // but passing `ctx` - then user still can cancel request + api.searchTraceBlock(ctx, addr, chainConfig, i, nextBlock, results) + return nil + }) + } + if err := eg.Wait(); err != nil { + return nil, false, err } - wg.Wait() return results[:totalBlocksTraced], hasMore, nil } -func (api *OtterscanAPIImpl) delegateGetBlockByNumber(tx kv.Tx, b *types.Block, number rpc.BlockNumber, inclTx bool) (map[string]interface{}, error) { +func delegateGetBlockByNumber(tx kv.Tx, b *types.Block, number rpc.BlockNumber, inclTx bool) (map[string]interface{}, error) { td, err := rawdb.ReadTd(tx, b.Hash(), b.NumberU64()) if err != nil { return nil, err @@ -475,7 +486,7 @@ func (api *OtterscanAPIImpl) delegateGetBlockByNumber(tx kv.Tx, b *types.Block, if !inclTx { delete(response, "transactions") // workaround for https://github.com/ledgerwatch/erigon/issues/4989#issuecomment-1218415666 } - response["totalDifficulty"] = (*hexutil.Big)(td) + response["totalDifficulty"] = (*hexutil2.Big)(td) response["transactionCount"] = b.Transactions().Len() if err == nil && number == rpc.PendingBlockNumber { @@ -497,7 +508,7 @@ type internalIssuance struct { Issuance string `json:"issuance,omitempty"` } -func (api *OtterscanAPIImpl) delegateIssuance(tx kv.Tx, block *types.Block, chainConfig *chain.Config) (internalIssuance, error) { +func delegateIssuance(tx kv.Tx, block *types.Block, chainConfig *chain.Config) (internalIssuance, error) { if chainConfig.Ethash == nil { // Clique for example has no issuance return internalIssuance{}, nil @@ -511,19 +522,14 @@ func (api *OtterscanAPIImpl) delegateIssuance(tx kv.Tx, block *types.Block, chai } var ret internalIssuance - ret.BlockReward = hexutil.EncodeBig(minerReward.ToBig()) - ret.Issuance = hexutil.EncodeBig(issuance.ToBig()) + ret.BlockReward = hexutil2.EncodeBig(minerReward.ToBig()) + ret.Issuance = hexutil2.EncodeBig(issuance.ToBig()) issuance.Sub(&issuance, &minerReward) - ret.UncleReward = hexutil.EncodeBig(issuance.ToBig()) + ret.UncleReward = hexutil2.EncodeBig(issuance.ToBig()) return ret, nil } -func (api *OtterscanAPIImpl) delegateBlockFees(ctx context.Context, tx kv.Tx, block *types.Block, senders []common.Address, chainConfig *chain.Config) (uint64, error) { - receipts, err := api.getReceipts(ctx, tx, chainConfig, block, senders) - if err != nil { - return 0, fmt.Errorf("getReceipts error: %v", err) - } - +func delegateBlockFees(ctx context.Context, tx kv.Tx, block *types.Block, senders []common.Address, chainConfig *chain.Config, receipts types.Receipts) (uint64, error) { fees := uint64(0) for _, receipt := range receipts { txn := block.Transactions()[receipt.TransactionIndex] @@ -575,7 +581,7 @@ func (api *OtterscanAPIImpl) GetBlockTransactions(ctx context.Context, number rp return nil, err } - getBlockRes, err := api.delegateGetBlockByNumber(tx, b, number, true) + getBlockRes, err := delegateGetBlockByNumber(tx, b, number, true) if err != nil { return nil, err } diff --git a/turbo/jsonrpc/otterscan_block_details.go b/turbo/jsonrpc/otterscan_block_details.go index 0af04e02340..16401d5aa71 100644 --- a/turbo/jsonrpc/otterscan_block_details.go +++ b/turbo/jsonrpc/otterscan_block_details.go @@ -3,11 +3,13 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/rpc" ) @@ -26,32 +28,9 @@ func (api *OtterscanAPIImpl) GetBlockDetails(ctx context.Context, number rpc.Blo return nil, nil } - chainConfig, err := api.chainConfig(tx) - if err != nil { - return nil, err - } - - getBlockRes, err := api.delegateGetBlockByNumber(tx, b, number, false) - if err != nil { - return nil, err - } - getIssuanceRes, err := api.delegateIssuance(tx, b, chainConfig) - if err != nil { - return nil, err - } - feesRes, err := api.delegateBlockFees(ctx, tx, b, senders, chainConfig) - if err != nil { - return nil, err - } - - response := map[string]interface{}{} - response["block"] = getBlockRes - response["issuance"] = getIssuanceRes - response["totalFees"] = hexutil.Uint64(feesRes) - return response, nil + return api.getBlockDetailsImpl(ctx, tx, b, number, senders) } -// TODO: remove duplication with GetBlockDetails func (api *OtterscanAPIImpl) GetBlockDetailsByHash(ctx context.Context, hash common.Hash) (map[string]interface{}, error) { tx, err := api.db.BeginRo(ctx) if err != nil { @@ -71,21 +50,30 @@ func (api *OtterscanAPIImpl) GetBlockDetailsByHash(ctx context.Context, hash com if b == nil { return nil, nil } + number := rpc.BlockNumber(b.Number().Int64()) + + return api.getBlockDetailsImpl(ctx, tx, b, number, senders) +} +func (api *OtterscanAPIImpl) getBlockDetailsImpl(ctx context.Context, tx kv.Tx, b *types.Block, number rpc.BlockNumber, senders []common.Address) (map[string]interface{}, error) { chainConfig, err := api.chainConfig(tx) if err != nil { return nil, err } - getBlockRes, err := api.delegateGetBlockByNumber(tx, b, rpc.BlockNumber(b.Number().Int64()), false) + getBlockRes, err := delegateGetBlockByNumber(tx, b, number, false) if err != nil { return nil, err } - getIssuanceRes, err := api.delegateIssuance(tx, b, chainConfig) + getIssuanceRes, err := delegateIssuance(tx, b, chainConfig) if err != nil { return nil, err } - feesRes, err := api.delegateBlockFees(ctx, tx, b, senders, chainConfig) + receipts, err := api.getReceipts(ctx, tx, chainConfig, b, senders) + if err != nil { + return nil, fmt.Errorf("getReceipts error: %v", err) + } + feesRes, err := delegateBlockFees(ctx, tx, b, senders, chainConfig, receipts) if err != nil { return nil, err } diff --git a/turbo/jsonrpc/otterscan_contract_creator.go b/turbo/jsonrpc/otterscan_contract_creator.go index 072f05ccb79..3cdd5386bcd 100644 --- a/turbo/jsonrpc/otterscan_contract_creator.go +++ b/turbo/jsonrpc/otterscan_contract_creator.go @@ -211,6 +211,12 @@ func (api *OtterscanAPIImpl) GetContractCreator(ctx context.Context, addr common defer bitmapdb.ReturnToPool64(bm) prevShardMaxBl := uint64(0) for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + _, err := bm.ReadFrom(bytes.NewReader(v)) if err != nil { return nil, err diff --git a/turbo/jsonrpc/otterscan_default_tracer.go b/turbo/jsonrpc/otterscan_default_tracer.go index 1b312e59b0b..4c8807eb3f5 100644 --- a/turbo/jsonrpc/otterscan_default_tracer.go +++ b/turbo/jsonrpc/otterscan_default_tracer.go @@ -17,7 +17,7 @@ func (t *DefaultTracer) CaptureTxStart(gasLimit uint64) {} func (t *DefaultTracer) CaptureTxEnd(restGas uint64) {} -func (t *DefaultTracer) CaptureStart(env vm.VMInterface, from common.Address, to common.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *DefaultTracer) CaptureStart(env *vm.EVM, from common.Address, to common.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { } func (t *DefaultTracer) CaptureEnter(typ vm.OpCode, from common.Address, to common.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { diff --git a/turbo/jsonrpc/otterscan_generic_tracer.go b/turbo/jsonrpc/otterscan_generic_tracer.go index dc62e52ae99..182f07795a7 100644 --- a/turbo/jsonrpc/otterscan_generic_tracer.go +++ b/turbo/jsonrpc/otterscan_generic_tracer.go @@ -72,7 +72,7 @@ func (api *OtterscanAPIImpl) genericTracer(dbtx kv.Tx, ctx context.Context, bloc return h } engine := api.engine() - block, err := api.blockByNumberWithSenders(ctx, dbtx, blockNum) + block, err := api.blockByNumberWithSenders(dbtx, blockNum) if err != nil { return err } @@ -84,6 +84,12 @@ func (api *OtterscanAPIImpl) genericTracer(dbtx kv.Tx, ctx context.Context, bloc rules := chainConfig.Rules(block.NumberU64(), header.Time) signer := types.MakeSigner(chainConfig, blockNum, header.Time) for idx, tx := range block.Transactions() { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + ibs.SetTxContext(tx.Hash(), block.Hash(), idx) msg, _ := tx.AsMessage(*signer, header.BaseFee, rules) diff --git a/turbo/jsonrpc/otterscan_search_backward_test.go b/turbo/jsonrpc/otterscan_search_backward_test.go index 8be5f918313..4c07ca38efe 100644 --- a/turbo/jsonrpc/otterscan_search_backward_test.go +++ b/turbo/jsonrpc/otterscan_search_backward_test.go @@ -2,12 +2,12 @@ package jsonrpc import ( "bytes" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" "github.com/RoaringBitmap/roaring/roaring64" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/stretchr/testify/require" ) diff --git a/turbo/jsonrpc/otterscan_search_trace.go b/turbo/jsonrpc/otterscan_search_trace.go index ae9bc2f528c..c4ed35a2530 100644 --- a/turbo/jsonrpc/otterscan_search_trace.go +++ b/turbo/jsonrpc/otterscan_search_trace.go @@ -2,7 +2,7 @@ package jsonrpc import ( "context" - "sync" + "fmt" "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/common" @@ -18,9 +18,7 @@ import ( "github.com/ledgerwatch/erigon/turbo/shards" ) -func (api *OtterscanAPIImpl) searchTraceBlock(ctx context.Context, wg *sync.WaitGroup, addr common.Address, chainConfig *chain.Config, idx int, bNum uint64, results []*TransactionsWithReceipts) { - defer wg.Done() - +func (api *OtterscanAPIImpl) searchTraceBlock(ctx context.Context, addr common.Address, chainConfig *chain.Config, idx int, bNum uint64, results []*TransactionsWithReceipts) { // Trace block for Txs newdbtx, err := api.db.BeginRo(ctx) if err != nil { @@ -80,6 +78,11 @@ func (api *OtterscanAPIImpl) traceBlock(dbtx kv.Tx, ctx context.Context, blockNu rules := chainConfig.Rules(block.NumberU64(), header.Time) found := false for idx, tx := range block.Transactions() { + select { + case <-ctx.Done(): + return false, nil, ctx.Err() + default: + } ibs.SetTxContext(tx.Hash(), block.Hash(), idx) msg, _ := tx.AsMessage(*signer, header.BaseFee, rules) @@ -95,7 +98,15 @@ func (api *OtterscanAPIImpl) traceBlock(dbtx kv.Tx, ctx context.Context, blockNu _ = ibs.FinalizeTx(rules, cachedWriter) if tracer.Found { - rpcTx := newRPCTransaction(tx, block.Hash(), blockNum, uint64(idx), block.BaseFee()) + if idx > len(blockReceipts) { + select { // it may happen because request canceled, then return canelation error + case <-ctx.Done(): + return false, nil, ctx.Err() + default: + } + return false, nil, fmt.Errorf("requested receipt idx %d, but have only %d", idx, len(blockReceipts)) // otherwise return some error for debugging + } + rpcTx := NewRPCTransaction(tx, block.Hash(), blockNum, uint64(idx), block.BaseFee()) mReceipt := marshalReceipt(blockReceipts[idx], tx, chainConfig, block.HeaderNoCopy(), tx.Hash(), true) mReceipt["timestamp"] = block.Time() rpcTxs = append(rpcTxs, rpcTx) diff --git a/turbo/jsonrpc/otterscan_trace_contract_creator.go b/turbo/jsonrpc/otterscan_trace_contract_creator.go index 8d55e3305a2..3f0bb4b6a36 100644 --- a/turbo/jsonrpc/otterscan_trace_contract_creator.go +++ b/turbo/jsonrpc/otterscan_trace_contract_creator.go @@ -50,7 +50,7 @@ func (t *CreateTracer) captureStartOrEnter(from, to common.Address, create bool) t.Creator = from } -func (t *CreateTracer) CaptureStart(env vm.VMInterface, from common.Address, to common.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *CreateTracer) CaptureStart(env *vm.EVM, from common.Address, to common.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { t.captureStartOrEnter(from, to, create) } diff --git a/turbo/jsonrpc/otterscan_trace_operations.go b/turbo/jsonrpc/otterscan_trace_operations.go index 6f09c8941a1..2d032b903d0 100644 --- a/turbo/jsonrpc/otterscan_trace_operations.go +++ b/turbo/jsonrpc/otterscan_trace_operations.go @@ -2,11 +2,11 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/vm" ) diff --git a/turbo/jsonrpc/otterscan_trace_touch.go b/turbo/jsonrpc/otterscan_trace_touch.go index 06c3c2960c4..17fddfdd9ef 100644 --- a/turbo/jsonrpc/otterscan_trace_touch.go +++ b/turbo/jsonrpc/otterscan_trace_touch.go @@ -27,7 +27,7 @@ func (t *TouchTracer) captureStartOrEnter(from, to common.Address) { } } -func (t *TouchTracer) CaptureStart(env vm.VMInterface, from common.Address, to common.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *TouchTracer) CaptureStart(env *vm.EVM, from common.Address, to common.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { t.captureStartOrEnter(from, to) } diff --git a/turbo/jsonrpc/otterscan_trace_transaction.go b/turbo/jsonrpc/otterscan_trace_transaction.go index 7959871aa22..bbf1488acdc 100644 --- a/turbo/jsonrpc/otterscan_trace_transaction.go +++ b/turbo/jsonrpc/otterscan_trace_transaction.go @@ -2,6 +2,7 @@ package jsonrpc import ( "context" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "github.com/holiman/uint256" @@ -9,7 +10,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/vm" ) @@ -93,7 +93,7 @@ func (t *TransactionTracer) captureStartOrEnter(typ vm.OpCode, from, to common.A } } -func (t *TransactionTracer) CaptureStart(env vm.VMInterface, from common.Address, to common.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (t *TransactionTracer) CaptureStart(env *vm.EVM, from common.Address, to common.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { t.depth = 0 t.captureStartOrEnter(vm.CALL, from, to, precompile, input, value) } diff --git a/turbo/jsonrpc/otterscan_transaction_by_sender_and_nonce.go b/turbo/jsonrpc/otterscan_transaction_by_sender_and_nonce.go index 8bb1d0ec9af..86348ae06c9 100644 --- a/turbo/jsonrpc/otterscan_transaction_by_sender_and_nonce.go +++ b/turbo/jsonrpc/otterscan_transaction_by_sender_and_nonce.go @@ -173,6 +173,12 @@ func (api *OtterscanAPIImpl) GetTransactionBySenderAndNonce(ctx context.Context, maxBlPrevChunk := uint64(0) for { + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + if k == nil || !bytes.HasPrefix(k, addr.Bytes()) { // Check plain state data, err := tx.GetOne(kv.PlainState, addr.Bytes()) diff --git a/turbo/jsonrpc/parity_api.go b/turbo/jsonrpc/parity_api.go index 8cf5892405e..05744f3f42d 100644 --- a/turbo/jsonrpc/parity_api.go +++ b/turbo/jsonrpc/parity_api.go @@ -11,7 +11,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/turbo/rpchelper" @@ -81,7 +80,7 @@ func (api *ParityAPIImpl) ListStorageKeys(ctx context.Context, account libcommon if err != nil { return nil, err } - keys = append(keys, common.CopyBytes(k[20:])) + keys = append(keys, libcommon.CopyBytes(k[20:])) } return keys, nil } diff --git a/turbo/jsonrpc/parity_api_test.go b/turbo/jsonrpc/parity_api_test.go index 857a617fa39..8a3f14780c1 100644 --- a/turbo/jsonrpc/parity_api_test.go +++ b/turbo/jsonrpc/parity_api_test.go @@ -54,7 +54,7 @@ func TestParityAPIImpl_ListStorageKeys_WithOffset_ExistingPrefix(t *testing.T) { "4974416255391052161ba8184fe652f3bf8c915592c65f7de127af8e637dce5d", } addr := libcommon.HexToAddress("0x920fd5070602feaea2e251e9e7238b6c376bcae5") - offset := common.Hex2Bytes("29") + offset := libcommon.Hex2Bytes("29") b := hexutility.Bytes(offset) result, err := api.ListStorageKeys(context.Background(), addr, 5, &b, latestBlock) if err != nil { @@ -75,7 +75,7 @@ func TestParityAPIImpl_ListStorageKeys_WithOffset_NonExistingPrefix(t *testing.T "4974416255391052161ba8184fe652f3bf8c915592c65f7de127af8e637dce5d", } addr := libcommon.HexToAddress("0x920fd5070602feaea2e251e9e7238b6c376bcae5") - offset := common.Hex2Bytes("30") + offset := libcommon.Hex2Bytes("30") b := hexutility.Bytes(offset) result, err := api.ListStorageKeys(context.Background(), addr, 2, &b, latestBlock) if err != nil { @@ -92,7 +92,7 @@ func TestParityAPIImpl_ListStorageKeys_WithOffset_EmptyResponse(t *testing.T) { m, _, _ := rpcdaemontest.CreateTestSentry(t) api := NewParityAPIImpl(newBaseApiForTest(m), m.DB) addr := libcommon.HexToAddress("0x920fd5070602feaea2e251e9e7238b6c376bcae5") - offset := common.Hex2Bytes("ff") + offset := libcommon.Hex2Bytes("ff") b := hexutility.Bytes(offset) result, err := api.ListStorageKeys(context.Background(), addr, 2, &b, latestBlock) if err != nil { diff --git a/turbo/jsonrpc/send_transaction.go b/turbo/jsonrpc/send_transaction.go index ffdfa2e216a..90dcaec332d 100644 --- a/turbo/jsonrpc/send_transaction.go +++ b/turbo/jsonrpc/send_transaction.go @@ -27,7 +27,7 @@ func (api *APIImpl) SendRawTransaction(ctx context.Context, encodedTx hexutility if err := checkTxFee(txn.GetPrice().ToBig(), txn.GetGas(), ethconfig.Defaults.RPCTxFeeCap); err != nil { return common.Hash{}, err } - if !txn.Protected() { + if !txn.Protected() && !api.AllowUnprotectedTxs { return common.Hash{}, errors.New("only replay-protected (EIP-155) transactions allowed over RPC") } @@ -45,11 +45,12 @@ func (api *APIImpl) SendRawTransaction(ctx context.Context, encodedTx hexutility return common.Hash{}, err } - txnChainId := txn.GetChainID() - chainId := cc.ChainID - - if chainId.Cmp(txnChainId.ToBig()) != 0 { - return common.Hash{}, fmt.Errorf("invalid chain id, expected: %d got: %d", chainId, *txnChainId) + if txn.Protected() { + txnChainId := txn.GetChainID() + chainId := cc.ChainID + if chainId.Cmp(txnChainId.ToBig()) != 0 { + return common.Hash{}, fmt.Errorf("invalid chain id, expected: %d got: %d", chainId, *txnChainId) + } } hash := txn.Hash() diff --git a/turbo/jsonrpc/send_transaction_test.go b/turbo/jsonrpc/send_transaction_test.go index dffea9282a8..f4b4c2a3efb 100644 --- a/turbo/jsonrpc/send_transaction_test.go +++ b/turbo/jsonrpc/send_transaction_test.go @@ -5,9 +5,12 @@ import ( "crypto/ecdsa" "math/big" "testing" + "time" "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" + "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon-lib/kv/kvcache" @@ -16,6 +19,8 @@ import ( "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" "github.com/ledgerwatch/erigon/common/u256" + + txpool_proto "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/eth/protocols/eth" @@ -34,53 +39,56 @@ func newBaseApiForTest(m *mock.MockSentry) *jsonrpc.BaseAPI { return jsonrpc.NewBaseApi(nil, stateCache, m.BlockReader, agg, false, rpccfg.DefaultEvmCallTimeout, m.Engine, m.Dirs) } -func TestSendRawTransaction(t *testing.T) { - t.Skip("Flaky test") - m, require := mock.Mock(t), require.New(t) - logger := log.New() - - chain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 1, func(i int, b *core.BlockGen) { +// Do 1 step to start txPool +func oneBlockStep(mockSentry *mock.MockSentry, require *require.Assertions, t *testing.T) { + chain, err := core.GenerateChain(mockSentry.ChainConfig, mockSentry.Genesis, mockSentry.Engine, mockSentry.DB, 1 /*number of blocks:*/, func(i int, b *core.BlockGen) { b.SetCoinbase(common.Address{1}) }) require.NoError(err) - { // Do 1 step to start txPool - // Send NewBlock message - b, err := rlp.EncodeToBytes(ð.NewBlockPacket{ - Block: chain.TopBlock, - TD: big.NewInt(1), // This is ignored anyway - }) + // Send NewBlock message + b, err := rlp.EncodeToBytes(ð.NewBlockPacket{ + Block: chain.TopBlock, + TD: big.NewInt(1), // This is ignored anyway + }) + require.NoError(err) + + mockSentry.ReceiveWg.Add(1) + for _, err = range mockSentry.Send(&sentry.InboundMessage{Id: sentry.MessageId_NEW_BLOCK_66, Data: b, PeerId: mockSentry.PeerId}) { require.NoError(err) - m.ReceiveWg.Add(1) - for _, err = range m.Send(&sentry.InboundMessage{Id: sentry.MessageId_NEW_BLOCK_66, Data: b, PeerId: m.PeerId}) { - require.NoError(err) - } - // Send all the headers - b, err = rlp.EncodeToBytes(ð.BlockHeadersPacket66{ - RequestId: 1, - BlockHeadersPacket: chain.Headers, - }) + } + // Send all the headers + b, err = rlp.EncodeToBytes(ð.BlockHeadersPacket66{ + RequestId: 1, + BlockHeadersPacket: chain.Headers, + }) + require.NoError(err) + mockSentry.ReceiveWg.Add(1) + for _, err = range mockSentry.Send(&sentry.InboundMessage{Id: sentry.MessageId_BLOCK_HEADERS_66, Data: b, PeerId: mockSentry.PeerId}) { require.NoError(err) - m.ReceiveWg.Add(1) - for _, err = range m.Send(&sentry.InboundMessage{Id: sentry.MessageId_BLOCK_HEADERS_66, Data: b, PeerId: m.PeerId}) { - require.NoError(err) - } - m.ReceiveWg.Wait() // Wait for all messages to be processed before we proceed - - initialCycle := mock.MockInsertAsInitialCycle - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, logger, m.BlockReader, nil); err != nil { - t.Fatal(err) - } } + mockSentry.ReceiveWg.Wait() // Wait for all messages to be processed before we proceed - expectValue := uint64(1234) - txn, err := types.SignTx(types.NewTransaction(0, common.Address{1}, uint256.NewInt(expectValue), params.TxGas, uint256.NewInt(10*params.GWei), nil), *types.LatestSignerForChainID(m.ChainConfig.ChainID), m.Key) + initialCycle := mock.MockInsertAsInitialCycle + if err := stages.StageLoopIteration(mockSentry.Ctx, mockSentry.DB, nil, mockSentry.Sync, initialCycle, log.New(), mockSentry.BlockReader, nil, false); err != nil { + t.Fatal(err) + } +} + +func TestSendRawTransaction(t *testing.T) { + mockSentry, require := mock.MockWithTxPool(t), require.New(t) + logger := log.New() + + oneBlockStep(mockSentry, require, t) + + expectedValue := uint64(1234) + txn, err := types.SignTx(types.NewTransaction(0, common.Address{1}, uint256.NewInt(expectedValue), params.TxGas, uint256.NewInt(10*params.GWei), nil), *types.LatestSignerForChainID(mockSentry.ChainConfig.ChainID), mockSentry.Key) require.NoError(err) - ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, m) + ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mockSentry) txPool := txpool.NewTxpoolClient(conn) - ff := rpchelper.New(ctx, nil, txPool, txpool.NewMiningClient(conn), func() {}, m.Log) - api := jsonrpc.NewEthAPI(newBaseApiForTest(m), m.DB, nil, txPool, nil, 5000000, 100_000, logger) + ff := rpchelper.New(ctx, nil, txPool, txpool.NewMiningClient(conn), func() {}, mockSentry.Log) + api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 100_000, false, 100_000, logger) buf := bytes.NewBuffer(nil) err = txn.MarshalBinary(buf) @@ -89,17 +97,25 @@ func TestSendRawTransaction(t *testing.T) { txsCh, id := ff.SubscribePendingTxs(1) defer ff.UnsubscribePendingTxs(id) - _, err = api.SendRawTransaction(ctx, buf.Bytes()) + txHash, err := api.SendRawTransaction(ctx, buf.Bytes()) require.NoError(err) - got := <-txsCh - require.Equal(expectValue, got[0].GetValue().Uint64()) + select { + case got := <-txsCh: + require.Equal(expectedValue, got[0].GetValue().Uint64()) + case <-time.After(20 * time.Second): // Sometimes the channel times out on github actions + t.Log("Timeout waiting for txn from channel") + jsonTx, err := api.GetTransactionByHash(ctx, txHash) + require.NoError(err) + require.Equal(expectedValue, jsonTx.Value.Uint64()) + } //send same tx second time and expect error _, err = api.SendRawTransaction(ctx, buf.Bytes()) require.NotNil(err) - require.Equal("ALREADY_EXISTS: already known", err.Error()) - m.ReceiveWg.Wait() + expectedErr := txpool_proto.ImportResult_name[int32(txpool_proto.ImportResult_ALREADY_EXISTS)] + ": " + txpoolcfg.AlreadyKnown.String() + require.Equal(expectedErr, err.Error()) + mockSentry.ReceiveWg.Wait() //TODO: make propagation easy to test - now race //time.Sleep(time.Second) @@ -107,6 +123,49 @@ func TestSendRawTransaction(t *testing.T) { //require.Equal(eth.ToProto[m.MultiClient.Protocol()][eth.NewPooledTransactionHashesMsg], sent.Id) } +func TestSendRawTransactionUnprotected(t *testing.T) { + mockSentry, require := mock.MockWithTxPool(t), require.New(t) + logger := log.New() + + oneBlockStep(mockSentry, require, t) + + expectedTxValue := uint64(4444) + + // Create a legacy signer pre-155 + unprotectedSigner := types.MakeFrontierSigner() + + txn, err := types.SignTx(types.NewTransaction(0, common.Address{1}, uint256.NewInt(expectedTxValue), params.TxGas, uint256.NewInt(10*params.GWei), nil), *unprotectedSigner, mockSentry.Key) + require.NoError(err) + + ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, mockSentry) + txPool := txpool.NewTxpoolClient(conn) + ff := rpchelper.New(ctx, nil, txPool, txpool.NewMiningClient(conn), func() {}, mockSentry.Log) + api := jsonrpc.NewEthAPI(newBaseApiForTest(mockSentry), mockSentry.DB, nil, txPool, nil, 5000000, 100_000, false, 100_000, logger) + + // Enable unproteced txs flag + api.AllowUnprotectedTxs = true + + buf := bytes.NewBuffer(nil) + err = txn.MarshalBinary(buf) + require.NoError(err) + + txsCh, id := ff.SubscribePendingTxs(1) + defer ff.UnsubscribePendingTxs(id) + + txHash, err := api.SendRawTransaction(ctx, buf.Bytes()) + require.NoError(err) + + select { + case got := <-txsCh: + require.Equal(expectedTxValue, got[0].GetValue().Uint64()) + case <-time.After(20 * time.Second): // Sometimes the channel times out on github actions + t.Log("Timeout waiting for txn from channel") + jsonTx, err := api.GetTransactionByHash(ctx, txHash) + require.NoError(err) + require.Equal(expectedTxValue, jsonTx.Value.Uint64()) + } +} + func transaction(nonce uint64, gaslimit uint64, key *ecdsa.PrivateKey) types.Transaction { return pricedTransaction(nonce, gaslimit, u256.Num1, key) } diff --git a/turbo/jsonrpc/storage_range.go b/turbo/jsonrpc/storage_range.go index 12730522a1e..affd4381c15 100644 --- a/turbo/jsonrpc/storage_range.go +++ b/turbo/jsonrpc/storage_range.go @@ -7,7 +7,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/order" - "github.com/ledgerwatch/erigon/common" ) // StorageRangeResult is the result of a debug_storageRangeAt API call. @@ -66,7 +65,7 @@ func storageRangeAtV3(ttx kv.TemporalTx, contractAddress libcommon.Address, star continue // Skip deleted entries } key := libcommon.BytesToHash(k[20:]) - seckey, err := common.HashData(k[20:]) + seckey, err := libcommon.HashData(k[20:]) if err != nil { return StorageRangeResult{}, err } diff --git a/turbo/jsonrpc/trace_adhoc.go b/turbo/jsonrpc/trace_adhoc.go index e0278791c01..472b0db1e82 100644 --- a/turbo/jsonrpc/trace_adhoc.go +++ b/turbo/jsonrpc/trace_adhoc.go @@ -5,6 +5,7 @@ import ( "context" "encoding/json" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math" "strings" @@ -16,8 +17,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" math2 "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" @@ -270,7 +269,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon vmTrace = ot.r.VmTrace } if create { - vmTrace.Code = common.CopyBytes(input) + vmTrace.Code = libcommon.CopyBytes(input) if ot.lastVmOp != nil { ot.lastVmOp.Cost += int(gas) } @@ -319,7 +318,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon action := CreateTraceAction{} action.From = from action.Gas.ToInt().SetUint64(gas) - action.Init = common.CopyBytes(input) + action.Init = libcommon.CopyBytes(input) action.Value.ToInt().Set(value.ToBig()) trace.Action = &action } else if typ == vm.SELFDESTRUCT { @@ -345,7 +344,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon action.From = from action.To = to action.Gas.ToInt().SetUint64(gas) - action.Input = common.CopyBytes(input) + action.Input = libcommon.CopyBytes(input) action.Value.ToInt().Set(value.ToBig()) trace.Action = &action } @@ -353,7 +352,7 @@ func (ot *OeTracer) captureStartOrEnter(deep bool, typ vm.OpCode, from libcommon ot.traceStack = append(ot.traceStack, trace) } -func (ot *OeTracer) CaptureStart(env vm.VMInterface, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { +func (ot *OeTracer) CaptureStart(env *vm.EVM, from libcommon.Address, to libcommon.Address, precompile bool, create bool, input []byte, gas uint64, value *uint256.Int, code []byte) { ot.captureStartOrEnter(false /* deep */, vm.CALL, from, to, precompile, create, input, gas, value, code) } @@ -382,7 +381,7 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e return } if !deep { - ot.r.Output = common.CopyBytes(output) + ot.r.Output = libcommon.CopyBytes(output) } ignoreError := false topTrace := ot.traceStack[len(ot.traceStack)-1] @@ -396,11 +395,11 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e case CALL: topTrace.Result.(*TraceResult).GasUsed = new(hexutil.Big) topTrace.Result.(*TraceResult).GasUsed.ToInt().SetUint64(usedGas) - topTrace.Result.(*TraceResult).Output = common.CopyBytes(output) + topTrace.Result.(*TraceResult).Output = libcommon.CopyBytes(output) case CREATE: topTrace.Result.(*CreateTraceResult).GasUsed = new(hexutil.Big) topTrace.Result.(*CreateTraceResult).GasUsed.ToInt().SetUint64(usedGas) - topTrace.Result.(*CreateTraceResult).Code = common.CopyBytes(output) + topTrace.Result.(*CreateTraceResult).Code = libcommon.CopyBytes(output) } } else { topTrace.Result = nil @@ -410,9 +409,9 @@ func (ot *OeTracer) captureEndOrExit(deep bool, output []byte, usedGas uint64, e if len(output) > 0 { switch topTrace.Type { case CALL: - topTrace.Result.(*TraceResult).Output = common.CopyBytes(output) + topTrace.Result.(*TraceResult).Output = libcommon.CopyBytes(output) case CREATE: - topTrace.Result.(*CreateTraceResult).Code = common.CopyBytes(output) + topTrace.Result.(*CreateTraceResult).Code = libcommon.CopyBytes(output) } } switch topTrace.Type { @@ -476,7 +475,7 @@ func (ot *OeTracer) CaptureState(pc uint64, op vm.OpCode, gas, cost uint64, scop // Set the "mem" of the last operation var setMem bool switch ot.lastOp { - case vm.MSTORE, vm.MSTORE8, vm.MLOAD, vm.RETURNDATACOPY, vm.CALLDATACOPY, vm.CODECOPY: + case vm.MSTORE, vm.MSTORE8, vm.MLOAD, vm.RETURNDATACOPY, vm.CALLDATACOPY, vm.CODECOPY, vm.EXTCODECOPY: setMem = true } if setMem && ot.lastMemLen > 0 { @@ -541,6 +540,11 @@ func (ot *OeTracer) CaptureState(pc uint64, op vm.OpCode, gas, cost uint64, scop ot.lastMemOff = st.Back(0).Uint64() ot.lastMemLen = st.Back(2).Uint64() } + case vm.EXTCODECOPY: + if st.Len() > 3 { + ot.lastMemOff = st.Back(1).Uint64() + ot.lastMemLen = st.Back(3).Uint64() + } case vm.STATICCALL, vm.DELEGATECALL: if st.Len() > 5 { ot.memOffStack = append(ot.memOffStack, st.Back(4).Uint64()) @@ -721,7 +725,7 @@ func (api *TraceAPIImpl) ReplayTransaction(ctx context.Context, txHash libcommon return nil, err } - blockNum, ok, err := api.txnLookup(ctx, tx, txHash) + blockNum, ok, err := api.txnLookup(tx, txHash) if err != nil { return nil, err } @@ -739,7 +743,7 @@ func (api *TraceAPIImpl) ReplayTransaction(ctx context.Context, txHash libcommon } blockNum = *blockNumPtr } - block, err := api.blockByNumberWithSenders(ctx, tx, blockNum) + block, err := api.blockByNumberWithSenders(tx, blockNum) if err != nil { return nil, err } @@ -816,7 +820,7 @@ func (api *TraceAPIImpl) ReplayBlockTransactions(ctx context.Context, blockNrOrH } // Extract transactions from block - block, bErr := api.blockWithSenders(ctx, tx, blockHash, blockNumber) + block, bErr := api.blockWithSenders(tx, blockHash, blockNumber) if bErr != nil { return nil, bErr } @@ -898,7 +902,7 @@ func (api *TraceAPIImpl) Call(ctx context.Context, args TraceCallParam, traceTyp ibs := state.New(stateReader) - block, err := api.blockWithSenders(ctx, tx, hash, blockNumber) + block, err := api.blockWithSenders(tx, hash, blockNumber) if err != nil { return nil, err } @@ -980,7 +984,7 @@ func (api *TraceAPIImpl) Call(ctx context.Context, args TraceCallParam, traceTyp if err != nil { return nil, err } - traceResult.Output = common.CopyBytes(execResult.ReturnData) + traceResult.Output = libcommon.CopyBytes(execResult.ReturnData) if traceTypeStateDiff { sdMap := make(map[libcommon.Address]*StateDiffAccount) traceResult.StateDiff = sdMap @@ -1060,7 +1064,7 @@ func (api *TraceAPIImpl) CallMany(ctx context.Context, calls json.RawMessage, pa } // TODO: can read here only parent header - parentBlock, err := api.blockWithSenders(ctx, dbtx, hash, blockNumber) + parentBlock, err := api.blockWithSenders(dbtx, hash, blockNumber) if err != nil { return nil, err } @@ -1114,7 +1118,7 @@ func (api *TraceAPIImpl) doCallMany(ctx context.Context, dbtx kv.Tx, msgs []type ibs := state.New(cachedReader) // TODO: can read here only parent header - parentBlock, err := api.blockWithSenders(ctx, dbtx, hash, blockNumber) + parentBlock, err := api.blockWithSenders(dbtx, hash, blockNumber) if err != nil { return nil, nil, err } @@ -1208,7 +1212,7 @@ func (api *TraceAPIImpl) doCallMany(ctx context.Context, dbtx kv.Tx, msgs []type if err != nil { return nil, nil, fmt.Errorf("first run for txIndex %d error: %w", txIndex, err) } - traceResult.Output = common.CopyBytes(execResult.ReturnData) + traceResult.Output = libcommon.CopyBytes(execResult.ReturnData) if traceTypeStateDiff { initialIbs := state.New(cloneReader) sdMap := make(map[libcommon.Address]*StateDiffAccount) diff --git a/turbo/jsonrpc/trace_adhoc_test.go b/turbo/jsonrpc/trace_adhoc_test.go index ad237f4a826..7e38a86d05f 100644 --- a/turbo/jsonrpc/trace_adhoc_test.go +++ b/turbo/jsonrpc/trace_adhoc_test.go @@ -3,6 +3,7 @@ package jsonrpc import ( "context" "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -11,7 +12,6 @@ import ( "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/turbo/jsonrpc/trace_api.go b/turbo/jsonrpc/trace_api.go index d5973ef227e..ac248e961ea 100644 --- a/turbo/jsonrpc/trace_api.go +++ b/turbo/jsonrpc/trace_api.go @@ -3,13 +3,13 @@ package jsonrpc import ( "context" "encoding/json" + "github.com/ledgerwatch/erigon-lib/common/hexutil" jsoniter "github.com/json-iterator/go" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/cli/httpcfg" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/rpc" ) diff --git a/turbo/jsonrpc/trace_filtering.go b/turbo/jsonrpc/trace_filtering.go index 203c969820c..795eb31b16f 100644 --- a/turbo/jsonrpc/trace_filtering.go +++ b/turbo/jsonrpc/trace_filtering.go @@ -4,9 +4,11 @@ import ( "context" "errors" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/RoaringBitmap/roaring/roaring64" jsoniter "github.com/json-iterator/go" + "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon-lib/chain" "github.com/ledgerwatch/erigon-lib/common" @@ -16,7 +18,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/order" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core" @@ -47,7 +48,7 @@ func (api *TraceAPIImpl) Transaction(ctx context.Context, txHash common.Hash, ga return nil, err } - blockNumber, ok, err := api.txnLookup(ctx, tx, txHash) + blockNumber, ok, err := api.txnLookup(tx, txHash) if err != nil { return nil, err } @@ -65,7 +66,7 @@ func (api *TraceAPIImpl) Transaction(ctx context.Context, txHash common.Hash, ga } blockNumber = *blockNumPtr } - block, err := api.blockByNumberWithSenders(ctx, tx, blockNumber) + block, err := api.blockByNumberWithSenders(tx, blockNumber) if err != nil { return nil, err } @@ -167,7 +168,7 @@ func (api *TraceAPIImpl) Block(ctx context.Context, blockNr rpc.BlockNumber, gas bn := hexutil.Uint64(blockNum) // Extract transactions from block - block, bErr := api.blockWithSenders(ctx, tx, hash, blockNum) + block, bErr := api.blockWithSenders(tx, hash, blockNum) if bErr != nil { return nil, bErr } @@ -387,7 +388,7 @@ func (api *TraceAPIImpl) Filter(ctx context.Context, req TraceFilterRequest, gas for it.HasNext() { b := it.Next() // Extract transactions from block - block, bErr := api.blockByNumberWithSenders(ctx, dbtx, b) + block, bErr := api.blockByNumberWithSenders(dbtx, b) if bErr != nil { if first { first = false @@ -617,7 +618,7 @@ func (api *TraceAPIImpl) filterV3(ctx context.Context, dbtx kv.TemporalTx, fromB // TODO(yperbasis) proper rewards for Gnosis // if we are in POS - // we dont check for uncles or block rewards + // we don't check for uncles or block rewards if isPos { continue } @@ -896,8 +897,9 @@ func (api *TraceAPIImpl) callManyTransactions( return nil, nil, err } engine := api.engine() - consensusHeaderReader := stagedsync.NewChainReaderImpl(cfg, dbtx, nil) - err = core.InitializeBlockExecution(engine.(consensus.Engine), consensusHeaderReader, block.HeaderNoCopy(), block.Transactions(), block.Uncles(), cfg, initialState) + consensusHeaderReader := stagedsync.NewChainReaderImpl(cfg, dbtx, nil, nil) + logger := log.New("trace_filtering") + err = core.InitializeBlockExecution(engine.(consensus.Engine), consensusHeaderReader, block.HeaderNoCopy(), cfg, initialState, logger) if err != nil { return nil, nil, err } diff --git a/turbo/jsonrpc/trace_types.go b/turbo/jsonrpc/trace_types.go index 500087d77a1..7c79fbeaada 100644 --- a/turbo/jsonrpc/trace_types.go +++ b/turbo/jsonrpc/trace_types.go @@ -2,11 +2,11 @@ package jsonrpc import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/turbo/jsonrpc/tracing.go b/turbo/jsonrpc/tracing.go index b9c9ec5fcc2..6a0c1c755d6 100644 --- a/turbo/jsonrpc/tracing.go +++ b/turbo/jsonrpc/tracing.go @@ -7,24 +7,23 @@ import ( "time" "github.com/holiman/uint256" - jsoniter "github.com/json-iterator/go" "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/log/v3" - - "github.com/ledgerwatch/erigon/core/vm/evmtypes" - - "github.com/ledgerwatch/erigon/common/hexutil" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/core/vm" + "github.com/ledgerwatch/erigon/core/vm/evmtypes" "github.com/ledgerwatch/erigon/eth/tracers" "github.com/ledgerwatch/erigon/rpc" "github.com/ledgerwatch/erigon/turbo/adapter/ethapi" "github.com/ledgerwatch/erigon/turbo/rpchelper" "github.com/ledgerwatch/erigon/turbo/transactions" + "github.com/ledgerwatch/log/v3" + + jsoniter "github.com/json-iterator/go" ) // TraceBlockByNumber implements debug_traceBlockByNumber. Returns Geth style block traces. @@ -52,9 +51,9 @@ func (api *PrivateDebugAPIImpl) traceBlock(ctx context.Context, blockNrOrHash rp hashOk bool ) if number, numberOk = blockNrOrHash.Number(); numberOk { - block, err = api.blockByRPCNumber(ctx, number, tx) + block, err = api.blockByRPCNumber(number, tx) } else if hash, hashOk = blockNrOrHash.Hash(); hashOk { - block, err = api.blockByHashWithSenders(ctx, tx, hash) + block, err = api.blockByHashWithSenders(tx, hash) } else { return fmt.Errorf("invalid arguments; neither block nor hash specified") } @@ -181,7 +180,7 @@ func (api *PrivateDebugAPIImpl) TraceTransaction(ctx context.Context, hash commo return err } // Retrieve the transaction and assemble its EVM context - blockNum, ok, err := api.txnLookup(ctx, tx, hash) + blockNum, ok, err := api.txnLookup(tx, hash) if err != nil { stream.WriteNil() return err @@ -211,7 +210,7 @@ func (api *PrivateDebugAPIImpl) TraceTransaction(ctx context.Context, hash commo } blockNum = *blockNumPtr } - block, err := api.blockByNumberWithSenders(ctx, tx, blockNum) + block, err := api.blockByNumberWithSenders(tx, blockNum) if err != nil { stream.WriteNil() return err @@ -267,7 +266,7 @@ func (api *PrivateDebugAPIImpl) TraceCall(ctx context.Context, args ethapi.CallA } engine := api.engine() - blockNumber, hash, _, err := rpchelper.GetBlockNumber(blockNrOrHash, dbtx, api.filters) + blockNumber, hash, isLatest, err := rpchelper.GetBlockNumber(blockNrOrHash, dbtx, api.filters) if err != nil { return fmt.Errorf("get block number: %v", err) } @@ -277,7 +276,12 @@ func (api *PrivateDebugAPIImpl) TraceCall(ctx context.Context, args ethapi.CallA return err } - stateReader, err := rpchelper.CreateStateReader(ctx, dbtx, blockNrOrHash, 0, api.filters, api.stateCache, api.historyV3(dbtx), chainConfig.ChainName) + var stateReader state.StateReader + if config.TxIndex == nil || isLatest { + stateReader, err = rpchelper.CreateStateReader(ctx, dbtx, blockNrOrHash, 0, api.filters, api.stateCache, api.historyV3(dbtx), chainConfig.ChainName) + } else { + stateReader, err = rpchelper.CreateHistoryStateReader(dbtx, blockNumber, int(*config.TxIndex), api.historyV3(dbtx), chainConfig.ChainName) + } if err != nil { return fmt.Errorf("create state reader: %v", err) } @@ -371,7 +375,7 @@ func (api *PrivateDebugAPIImpl) TraceCallMany(ctx context.Context, bundles []Bun return err } - block, err := api.blockByNumberWithSenders(ctx, tx, blockNum) + block, err := api.blockByNumberWithSenders(tx, blockNum) if err != nil { stream.WriteNil() return err diff --git a/turbo/jsonrpc/txpool_api.go b/turbo/jsonrpc/txpool_api.go index c20fef68290..05663be4a88 100644 --- a/turbo/jsonrpc/txpool_api.go +++ b/turbo/jsonrpc/txpool_api.go @@ -3,13 +3,13 @@ package jsonrpc import ( "context" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/gointerfaces" proto_txpool "github.com/ledgerwatch/erigon-lib/gointerfaces/txpool" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" ) diff --git a/turbo/jsonrpc/txpool_api_test.go b/turbo/jsonrpc/txpool_api_test.go index e08ac9339e5..205a7d72408 100644 --- a/turbo/jsonrpc/txpool_api_test.go +++ b/turbo/jsonrpc/txpool_api_test.go @@ -3,6 +3,7 @@ package jsonrpc import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" "github.com/holiman/uint256" @@ -13,7 +14,6 @@ import ( "github.com/stretchr/testify/require" "github.com/ledgerwatch/erigon/cmd/rpcdaemon/rpcdaemontest" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core" "github.com/ledgerwatch/erigon/core/types" "github.com/ledgerwatch/erigon/params" @@ -28,7 +28,7 @@ func TestTxPoolContent(t *testing.T) { b.SetCoinbase(libcommon.Address{1}) }) require.NoError(err) - err = m.InsertChain(chain, nil) + err = m.InsertChain(chain) require.NoError(err) ctx, conn := rpcdaemontest.CreateTestGrpcConn(t, m) diff --git a/turbo/logging/flags.go b/turbo/logging/flags.go index b7e9e56727a..e5bc2887ebc 100644 --- a/turbo/logging/flags.go +++ b/turbo/logging/flags.go @@ -32,7 +32,10 @@ var ( Usage: "Set the log level for console logs", Value: log.LvlInfo.String(), } - + LogDirDisableFlag = cli.BoolFlag{ + Name: "log.dir.disable", + Usage: "disable disk logging", + } LogDirPathFlag = cli.StringFlag{ Name: "log.dir.path", Usage: "Path to store user and error logs to disk", @@ -56,6 +59,7 @@ var Flags = []cli.Flag{ &LogDirJsonFlag, &LogVerbosityFlag, &LogConsoleVerbosityFlag, + &LogDirDisableFlag, &LogDirPathFlag, &LogDirPrefixFlag, &LogDirVerbosityFlag, diff --git a/turbo/logging/logging.go b/turbo/logging/logging.go index fb9e467e7e8..988fa7fb5da 100644 --- a/turbo/logging/logging.go +++ b/turbo/logging/logging.go @@ -39,13 +39,20 @@ func SetupLoggerCtx(filePrefix string, ctx *cli.Context, rootHandler bool) log.L dirLevel = log.LvlInfo } - dirPath := ctx.String(LogDirPathFlag.Name) - if dirPath == "" { - datadir := ctx.String("datadir") - if datadir != "" { - dirPath = filepath.Join(datadir, "logs") + dirPath := "" + if !ctx.Bool(LogDirDisableFlag.Name) && dirPath != "/dev/null" { + dirPath = ctx.String(LogDirPathFlag.Name) + if dirPath == "" { + datadir := ctx.String("datadir") + if datadir != "" { + dirPath = filepath.Join(datadir, "logs") + } + } + if logDirPrefix := ctx.String(LogDirPrefixFlag.Name); len(logDirPrefix) > 0 { + filePrefix = logDirPrefix } } + var logger log.Logger if rootHandler { logger = log.Root() @@ -53,10 +60,6 @@ func SetupLoggerCtx(filePrefix string, ctx *cli.Context, rootHandler bool) log.L logger = log.New() } - if logDirPrefix := ctx.String(LogDirPrefixFlag.Name); len(logDirPrefix) > 0 { - filePrefix = logDirPrefix - } - initSeparatedLogging(logger, filePrefix, dirPath, consoleLevel, dirLevel, consoleJson, dirJson) return logger } @@ -98,16 +101,25 @@ func SetupLoggerCmd(filePrefix string, cmd *cobra.Command) log.Logger { dirLevel = log.LvlInfo } - dirPath := cmd.Flags().Lookup(LogDirPathFlag.Name).Value.String() - if dirPath == "" { - datadir := cmd.Flags().Lookup("datadir").Value.String() - if datadir != "" { - dirPath = filepath.Join(datadir, "logs") + dirPath := "" + disableFileLogging, err := cmd.Flags().GetBool(LogDirDisableFlag.Name) + if err != nil { + disableFileLogging = false + } + if !disableFileLogging && dirPath != "/dev/null" { + dirPath = cmd.Flags().Lookup(LogDirPathFlag.Name).Value.String() + if dirPath == "" { + datadirFlag := cmd.Flags().Lookup("datadir") + if datadirFlag != nil { + datadir := datadirFlag.Value.String() + if datadir != "" { + dirPath = filepath.Join(datadir, "logs") + } + } + } + if logDirPrefix := cmd.Flags().Lookup(LogDirPrefixFlag.Name).Value.String(); len(logDirPrefix) > 0 { + filePrefix = logDirPrefix } - } - - if logDirPrefix := cmd.Flags().Lookup(LogDirPrefixFlag.Name).Value.String(); len(logDirPrefix) > 0 { - filePrefix = logDirPrefix } initSeparatedLogging(log.Root(), filePrefix, dirPath, consoleLevel, dirLevel, consoleJson, dirJson) @@ -174,7 +186,7 @@ func initSeparatedLogging( logger.SetHandler(consoleHandler) if len(dirPath) == 0 { - logger.Warn("no log dir set, console logging only") + logger.Info("console logging only") return } diff --git a/turbo/node/node.go b/turbo/node/node.go index d132fa78d18..6bb3e38c5a4 100644 --- a/turbo/node/node.go +++ b/turbo/node/node.go @@ -2,6 +2,9 @@ package node import ( + "context" + + "github.com/ledgerwatch/erigon-lib/chain/networkname" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" "github.com/urfave/cli/v2" @@ -12,7 +15,6 @@ import ( "github.com/ledgerwatch/erigon/node" "github.com/ledgerwatch/erigon/node/nodecfg" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" erigoncli "github.com/ledgerwatch/erigon/turbo/cli" ) @@ -34,6 +36,14 @@ func (eri *ErigonNode) Serve() error { return nil } +func (eri *ErigonNode) Backend() *eth.Ethereum { + return eri.backend +} + +func (eri *ErigonNode) Node() *node.Node { + return eri.stack +} + func (eri *ErigonNode) Close() { eri.stack.Close() } @@ -58,6 +68,8 @@ func NewNodConfigUrfave(ctx *cli.Context, logger log.Logger) *nodecfg.Config { // If we're running a known preset, log it for convenience. chain := ctx.String(utils.ChainFlag.Name) switch chain { + case networkname.HoleskyChainName: + logger.Info("Starting Erigon on Holesky testnet...") case networkname.SepoliaChainName: logger.Info("Starting Erigon on Sepolia testnet...") case networkname.GoerliChainName: @@ -66,6 +78,8 @@ func NewNodConfigUrfave(ctx *cli.Context, logger log.Logger) *nodecfg.Config { logger.Info("Starting Erigon in ephemeral dev mode...") case networkname.MumbaiChainName: logger.Info("Starting Erigon on Mumbai testnet...") + case networkname.AmoyChainName: + logger.Info("Starting Erigon on Amoy testnet...") case networkname.BorMainnetChainName: logger.Info("Starting Erigon on Bor Mainnet...") case networkname.BorDevnetChainName: @@ -96,17 +110,18 @@ func NewEthConfigUrfave(ctx *cli.Context, nodeConfig *nodecfg.Config, logger log // * sync - `stagedsync.StagedSync`, an instance of staged sync, setup just as needed. // * optionalParams - additional parameters for running a node. func New( + ctx context.Context, nodeConfig *nodecfg.Config, ethConfig *ethconfig.Config, logger log.Logger, ) (*ErigonNode, error) { //prepareBuckets(optionalParams.CustomBuckets) - node, err := node.New(nodeConfig, logger) + node, err := node.New(ctx, nodeConfig, logger) if err != nil { utils.Fatalf("Failed to create Erigon node: %v", err) } - ethereum, err := eth.New(node, ethConfig, logger) + ethereum, err := eth.New(ctx, node, ethConfig, logger) if err != nil { return nil, err } diff --git a/turbo/rlphacks/bytes_test.go b/turbo/rlphacks/bytes_test.go index af2f825cb0a..ba627578e1b 100644 --- a/turbo/rlphacks/bytes_test.go +++ b/turbo/rlphacks/bytes_test.go @@ -10,6 +10,7 @@ import ( ) func TestFastDoubleRlpForByteArrays(t *testing.T) { + t.Parallel() for i := 0; i < 256; i++ { doTestWithByte(t, byte(i), 1) } diff --git a/turbo/rpchelper/filters_deadlock_test.go b/turbo/rpchelper/filters_deadlock_test.go index 7e6ec6838e2..1646ec19701 100644 --- a/turbo/rpchelper/filters_deadlock_test.go +++ b/turbo/rpchelper/filters_deadlock_test.go @@ -16,6 +16,7 @@ import ( ) func TestFiltersDeadlock_Test(t *testing.T) { + t.Parallel() logger := log.New() f := rpchelper.New(context.TODO(), nil, nil, nil, func() {}, logger) crit := filters.FilterCriteria{ diff --git a/turbo/rpchelper/filters_test.go b/turbo/rpchelper/filters_test.go index bdf61f98fb3..087a027348d 100644 --- a/turbo/rpchelper/filters_test.go +++ b/turbo/rpchelper/filters_test.go @@ -36,6 +36,7 @@ var ( ) func TestFilters_GenerateSubscriptionID(t *testing.T) { + t.Parallel() sz := 1000 subs := make(chan SubscriptionID, sz) for i := 0; i < sz; i++ { @@ -56,6 +57,7 @@ func TestFilters_GenerateSubscriptionID(t *testing.T) { } func TestFilters_SingleSubscription_OnlyTopicsSubscribedAreBroadcast(t *testing.T) { + t.Parallel() f := New(context.TODO(), nil, nil, nil, func() {}, log.New()) subbedTopic := libcommon.BytesToHash([]byte{10, 20}) @@ -87,6 +89,7 @@ func TestFilters_SingleSubscription_OnlyTopicsSubscribedAreBroadcast(t *testing. } func TestFilters_SingleSubscription_EmptyTopicsInCriteria_OnlyTopicsSubscribedAreBroadcast(t *testing.T) { + t.Parallel() f := New(context.TODO(), nil, nil, nil, func() {}, log.New()) var nilTopic libcommon.Hash @@ -119,6 +122,7 @@ func TestFilters_SingleSubscription_EmptyTopicsInCriteria_OnlyTopicsSubscribedAr } func TestFilters_TwoSubscriptionsWithDifferentCriteria(t *testing.T) { + t.Parallel() f := New(context.TODO(), nil, nil, nil, func() {}, log.New()) criteria1 := filters.FilterCriteria{ @@ -158,6 +162,7 @@ func TestFilters_TwoSubscriptionsWithDifferentCriteria(t *testing.T) { } func TestFilters_ThreeSubscriptionsWithDifferentCriteria(t *testing.T) { + t.Parallel() f := New(context.TODO(), nil, nil, nil, func() {}, log.New()) criteria1 := filters.FilterCriteria{ @@ -226,6 +231,7 @@ func TestFilters_ThreeSubscriptionsWithDifferentCriteria(t *testing.T) { } func TestFilters_SubscribeLogsGeneratesCorrectLogFilterRequest(t *testing.T) { + t.Parallel() var lastFilterRequest *remote.LogsFilterRequest loadRequester := func(r *remote.LogsFilterRequest) error { lastFilterRequest = r diff --git a/turbo/rpchelper/helper.go b/turbo/rpchelper/helper.go index 46122d762e0..497eaa9523a 100644 --- a/turbo/rpchelper/helper.go +++ b/turbo/rpchelper/helper.go @@ -2,12 +2,15 @@ package rpchelper import ( "context" + "errors" "fmt" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/kvcache" "github.com/ledgerwatch/erigon-lib/kv/rawdbv3" + borfinality "github.com/ledgerwatch/erigon/consensus/bor/finality" + "github.com/ledgerwatch/erigon/consensus/bor/finality/whitelist" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/state" "github.com/ledgerwatch/erigon/core/systemcontracts" @@ -52,6 +55,17 @@ func _GetBlockNumber(requireCanonical bool, blockNrOrHash rpc.BlockNumberOrHash, case rpc.EarliestBlockNumber: blockNumber = 0 case rpc.FinalizedBlockNumber: + if whitelist.GetWhitelistingService() != nil { + num := borfinality.GetFinalizedBlockNumber(tx) + if num == 0 { + // nolint + return 0, libcommon.Hash{}, false, errors.New("No finalized block") + } + + blockNum := borfinality.CurrentFinalizedBlock(tx, num).NumberU64() + blockHash := rawdb.ReadHeaderByNumber(tx, blockNum).Hash() + return blockNum, blockHash, false, nil + } blockNumber, err = GetFinalizedBlockNumber(tx) if err != nil { return 0, libcommon.Hash{}, false, err diff --git a/turbo/rpchelper/interface.go b/turbo/rpchelper/interface.go index 72f7a1c8257..801f57fccbd 100644 --- a/turbo/rpchelper/interface.go +++ b/turbo/rpchelper/interface.go @@ -27,5 +27,6 @@ type ApiBackend interface { BlockWithSenders(ctx context.Context, tx kv.Getter, hash libcommon.Hash, blockHeight uint64) (block *types.Block, senders []libcommon.Address, err error) NodeInfo(ctx context.Context, limit uint32) ([]p2p.NodeInfo, error) Peers(ctx context.Context) ([]*p2p.PeerInfo, error) + AddPeer(ctx context.Context, url *remote.AddPeerRequest) (*remote.AddPeerReply, error) PendingBlock(ctx context.Context) (*types.Block, error) } diff --git a/turbo/services/interfaces.go b/turbo/services/interfaces.go index 681d6d05e49..afed450b734 100644 --- a/turbo/services/interfaces.go +++ b/turbo/services/interfaces.go @@ -33,6 +33,15 @@ type HeaderReader interface { HeadersRange(ctx context.Context, walker func(header *types.Header) error) error } +type BorEventReader interface { + EventLookup(ctx context.Context, tx kv.Getter, txnHash common.Hash) (uint64, bool, error) + EventsByBlock(ctx context.Context, tx kv.Tx, hash common.Hash, blockNum uint64) ([]rlp.RawValue, error) +} + +type BorSpanReader interface { + Span(ctx context.Context, tx kv.Getter, spanNum uint64) ([]byte, error) +} + type CanonicalReader interface { CanonicalHash(ctx context.Context, tx kv.Getter, blockNum uint64) (common.Hash, error) BadHeaderNumber(ctx context.Context, tx kv.Getter, hash common.Hash) (blockHeight *uint64, err error) @@ -65,27 +74,31 @@ type FullBlockReader interface { BlockReader BodyReader HeaderReader + BorEventReader + BorSpanReader TxnReader CanonicalReader FrozenBlocks() uint64 + FrozenBorBlocks() uint64 FrozenFiles() (list []string) FreezingCfg() ethconfig.BlocksFreezing CanPruneTo(currentBlockInDB uint64) (canPruneBlocksTo uint64) Snapshots() BlockSnapshots + BorSnapshots() BlockSnapshots } type BlockSnapshots interface { + LogStat() ReopenFolder() error SegmentsMax() uint64 - ScanDir() (map[string]struct{}, []*Range, error) } // BlockRetire - freezing blocks: moving old data from DB to snapshot files type BlockRetire interface { - PruneAncientBlocks(tx kv.RwTx, limit int) error - RetireBlocksInBackground(ctx context.Context, maxBlockNumInDB uint64, lvl log.Lvl, seedNewSnapshots func(downloadRequest []DownloadRequest) error) + PruneAncientBlocks(tx kv.RwTx, limit int, includeBor bool) error + RetireBlocksInBackground(ctx context.Context, maxBlockNumInDB uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []DownloadRequest) error, onDelete func(l []string) error) HasNewFrozenFiles() bool BuildMissedIndicesIfNeed(ctx context.Context, logPrefix string, notifier DBEventNotifier, cc *chain.Config) error } @@ -111,13 +124,12 @@ type DBEventNotifier interface { } type DownloadRequest struct { - Ranges *Range Path string TorrentHash string } -func NewDownloadRequest(ranges *Range, path string, torrentHash string) DownloadRequest { - return DownloadRequest{Ranges: ranges, Path: path, TorrentHash: torrentHash} +func NewDownloadRequest(path string, torrentHash string) DownloadRequest { + return DownloadRequest{Path: path, TorrentHash: torrentHash} } type Range struct { diff --git a/turbo/shards/state_cache.go b/turbo/shards/state_cache.go index 918a4260570..86924418830 100644 --- a/turbo/shards/state_cache.go +++ b/turbo/shards/state_cache.go @@ -4,15 +4,13 @@ import ( "bytes" "container/heap" "fmt" + "github.com/ledgerwatch/erigon-lib/metrics" "unsafe" - "github.com/VictoriaMetrics/metrics" "github.com/c2h5oh/datasize" "github.com/google/btree" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -424,8 +422,8 @@ func (sc *StateCache) get(key btree.Item) (CacheItem, bool) { func (sc *StateCache) GetAccount(address []byte) (*accounts.Account, bool) { AccRead.Inc() var key AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -453,8 +451,8 @@ func (sc *StateCache) HasAccountWithInPrefix(addrHashPrefix []byte) bool { // GetDeletedAccount attempts to retrieve the last version of account before it was deleted func (sc *StateCache) GetDeletedAccount(address []byte) *accounts.Account { key := &AccountItem{} - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -475,8 +473,8 @@ func (sc *StateCache) GetDeletedAccount(address []byte) *accounts.Account { func (sc *StateCache) GetStorage(address []byte, incarnation uint64, location []byte) ([]byte, bool) { StRead.Inc() var key StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -500,8 +498,8 @@ func (sc *StateCache) GetStorage(address []byte, incarnation uint64, location [] // Second return value is true if such item is found func (sc *StateCache) GetCode(address []byte, incarnation uint64) ([]byte, bool) { var key CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -554,8 +552,8 @@ func (sc *StateCache) readQueuesLen() (res int) { // SetAccountRead adds given account to the cache, marking it as a read (not written) func (sc *StateCache) SetAccountRead(address []byte, account *accounts.Account) { var ai AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -603,8 +601,8 @@ func (sc *StateCache) GetStorageByHashedAddress(addrHash libcommon.Hash, incarna // SetAccountRead adds given account address to the cache, marking it as a absent func (sc *StateCache) SetAccountAbsent(address []byte) { var ai AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -683,8 +681,8 @@ func (sc *StateCache) setWrite(item CacheItem, writeItem CacheWriteItem, del boo // SetAccountWrite adds given account to the cache, marking it as written (cannot be evicted) func (sc *StateCache) SetAccountWrite(address []byte, account *accounts.Account) { var ai AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -699,8 +697,8 @@ func (sc *StateCache) SetAccountWrite(address []byte, account *accounts.Account) // SetAccountDelete is very similar to SetAccountWrite with the difference that there no set value func (sc *StateCache) SetAccountDelete(address []byte) { var ai AccountItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -713,8 +711,8 @@ func (sc *StateCache) SetAccountDelete(address []byte) { func (sc *StateCache) SetStorageRead(address []byte, incarnation uint64, location []byte, value []byte) { var si StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -732,8 +730,8 @@ func (sc *StateCache) SetStorageRead(address []byte, incarnation uint64, locatio // hack to set hashed addr - we don't have another one in trie stage func (sc *StateCache) DeprecatedSetStorageRead(addrHash libcommon.Hash, incarnation uint64, locHash libcommon.Hash, val []byte) { var i StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) copy(i.addrHash[:], addrHash.Bytes()) i.incarnation = incarnation i.locHash.SetBytes(locHash.Bytes()) @@ -785,8 +783,8 @@ func (sc *StateCache) DeprecatedSetStorageWrite(addrHash libcommon.Hash, incarna func (sc *StateCache) SetStorageAbsent(address []byte, incarnation uint64, location []byte) { var si StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -802,8 +800,8 @@ func (sc *StateCache) SetStorageAbsent(address []byte, incarnation uint64, locat func (sc *StateCache) SetStorageWrite(address []byte, incarnation uint64, location []byte, value []byte) { var si StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -824,8 +822,8 @@ func (sc *StateCache) SetStorageWrite(address []byte, incarnation uint64, locati func (sc *StateCache) SetStorageDelete(address []byte, incarnation uint64, location []byte) { var si StorageItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -845,8 +843,8 @@ func (sc *StateCache) SetStorageDelete(address []byte, incarnation uint64, locat func (sc *StateCache) SetCodeRead(address []byte, incarnation uint64, code []byte) { var ci CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -859,8 +857,8 @@ func (sc *StateCache) SetCodeRead(address []byte, incarnation uint64, code []byt func (sc *StateCache) SetCodeAbsent(address []byte, incarnation uint64) { var ci CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -872,8 +870,8 @@ func (sc *StateCache) SetCodeAbsent(address []byte, incarnation uint64) { func (sc *StateCache) SetCodeWrite(address []byte, incarnation uint64, code []byte) { // Check if this is going to be modification of the existing entry var ci CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck @@ -890,8 +888,8 @@ func (sc *StateCache) SetCodeWrite(address []byte, incarnation uint64, code []by func (sc *StateCache) SetCodeDelete(address []byte, incarnation uint64) { // Check if this is going to be modification of the existing entry var ci CodeItem - h := common.NewHasher() - defer common.ReturnHasherToPool(h) + h := libcommon.NewHasher() + defer libcommon.ReturnHasherToPool(h) //nolint:errcheck h.Sha.Write(address) //nolint:errcheck diff --git a/turbo/shards/state_cache_test.go b/turbo/shards/state_cache_test.go index 1d03754cdfe..5d2fc396f35 100644 --- a/turbo/shards/state_cache_test.go +++ b/turbo/shards/state_cache_test.go @@ -14,6 +14,7 @@ import ( ) func TestCacheBtreeOrderAccountStorage2(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(128*accountItemSize)) var a1 libcommon.Address a1[0] = 1 @@ -25,6 +26,7 @@ func TestCacheBtreeOrderAccountStorage2(t *testing.T) { } func TestCacheBtreeOrderAccountStorage(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(128*accountItemSize)) var a1, a2 libcommon.Address a1[0] = 1 @@ -79,6 +81,7 @@ func TestCacheBtreeOrderAccountStorage(t *testing.T) { } func TestAccountReads(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(4*accountItemSize)) var account1 accounts.Account account1.Balance.SetUint64(1) @@ -123,6 +126,7 @@ func TestAccountReads(t *testing.T) { } func TestAccountReadWrites(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(9*accountItemSize)) var account1 accounts.Account account1.Balance.SetUint64(1) @@ -219,6 +223,7 @@ func TestAccountReadWrites(t *testing.T) { } func TestReplaceAccountReadsWithWrites(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(6*accountItemSize)) for i := 1; i <= 4; i++ { var addr libcommon.Address @@ -268,6 +273,7 @@ func TestReplaceAccountReadsWithWrites(t *testing.T) { } func TestReadAccountExisting(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(2*accountItemSize)) var account1 accounts.Account account1.Balance.SetUint64(1) @@ -283,6 +289,7 @@ func TestReadAccountExisting(t *testing.T) { } func TestWriteAccountExceedLimit(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(2*accountItemSize)) defer func() { //nolint:staticcheck @@ -299,6 +306,7 @@ func TestWriteAccountExceedLimit(t *testing.T) { } func TestGetDeletedAccount(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(4*accountItemSize)) var account1 accounts.Account account1.Balance.SetUint64(1) @@ -324,6 +332,7 @@ func TestGetDeletedAccount(t *testing.T) { } func TestReadWriteAbsentDeleteStorage(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(4*storageItemSize)) // Add absents for i := 1; i <= 4; i++ { @@ -423,6 +432,7 @@ func TestReadWriteAbsentDeleteStorage(t *testing.T) { } func TestReadStorageExisting(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(2*storageItemSize)) var addr1 libcommon.Address addr1[0] = 1 @@ -440,6 +450,7 @@ func TestReadStorageExisting(t *testing.T) { } func TestWriteStorageExceedLimit(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(2*storageItemSize)) defer func() { //nolint:staticcheck @@ -458,6 +469,7 @@ func TestWriteStorageExceedLimit(t *testing.T) { } func TestCodeReadWriteAbsentDelete(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(4*(codeItemSize+3))) // Add absents for i := 1; i <= 4; i++ { @@ -537,6 +549,7 @@ func TestCodeReadWriteAbsentDelete(t *testing.T) { } func TestReadCodeExisting(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(2*(codeItemSize+3))) var addr1 libcommon.Address addr1[0] = 1 @@ -552,6 +565,7 @@ func TestReadCodeExisting(t *testing.T) { } func TestWriteCodeExceedLimit(t *testing.T) { + t.Parallel() sc := NewStateCache(32, datasize.ByteSize(2*(codeItemSize+3))) defer func() { //nolint:staticcheck diff --git a/turbo/shards/state_change_accumulator.go b/turbo/shards/state_change_accumulator.go index 321337f722b..8ba19686ee5 100644 --- a/turbo/shards/state_change_accumulator.go +++ b/turbo/shards/state_change_accumulator.go @@ -32,11 +32,11 @@ func (a *Accumulator) Reset(plainStateID uint64) { a.storageChangeIndex = nil a.plainStateID = plainStateID } -func (a *Accumulator) SendAndReset(ctx context.Context, c StateChangeConsumer, pendingBaseFee uint64, blockGasLimit uint64) { +func (a *Accumulator) SendAndReset(ctx context.Context, c StateChangeConsumer, pendingBaseFee uint64, pendingBlobFee uint64, blockGasLimit uint64, finalizedBlock uint64) { if a == nil || c == nil || len(a.changes) == 0 { return } - sc := &remote.StateChangeBatch{StateVersionId: a.plainStateID, ChangeBatch: a.changes, PendingBlockBaseFee: pendingBaseFee, BlockGasLimit: blockGasLimit} + sc := &remote.StateChangeBatch{StateVersionId: a.plainStateID, ChangeBatch: a.changes, PendingBlockBaseFee: pendingBaseFee, BlockGasLimit: blockGasLimit, FinalizedBlock: finalizedBlock, PendingBlobFeePerGas: pendingBlobFee} c.SendStateChanges(ctx, sc) a.Reset(0) // reset here for GC, but there will be another Reset with correct viewID } diff --git a/turbo/shards/trie_cache.go b/turbo/shards/trie_cache.go index ea995854aeb..fc359033f21 100644 --- a/turbo/shards/trie_cache.go +++ b/turbo/shards/trie_cache.go @@ -3,14 +3,13 @@ package shards import ( "bytes" "fmt" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/bits" "unsafe" "github.com/google/btree" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -216,7 +215,7 @@ func (sc *StateCache) SetAccountHashesRead(prefix []byte, hasState, hasTree, has cpy := make([]libcommon.Hash, len(hashes)) copy(cpy, hashes) ai := AccountHashItem{ - addrHashPrefix: common.CopyBytes(prefix), + addrHashPrefix: libcommon.CopyBytes(prefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, @@ -232,7 +231,7 @@ func (sc *StateCache) SetAccountHashWrite(prefix []byte, hasState, hasTree, hasH assertSubset(hasTree, hasState) assertSubset(hasHash, hasState) ai := AccountHashItem{ - addrHashPrefix: common.CopyBytes(prefix), + addrHashPrefix: libcommon.CopyBytes(prefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, @@ -258,7 +257,7 @@ func (sc *StateCache) SetStorageHashRead(addrHash libcommon.Hash, incarnation ui ai := StorageHashItem{ addrHash: addrHash, incarnation: incarnation, - locHashPrefix: common.CopyBytes(locHashPrefix), + locHashPrefix: libcommon.CopyBytes(locHashPrefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, @@ -273,7 +272,7 @@ func (sc *StateCache) SetStorageHashWrite(addrHash libcommon.Hash, incarnation u ai := StorageHashItem{ addrHash: addrHash, incarnation: incarnation, - locHashPrefix: common.CopyBytes(locHashPrefix), + locHashPrefix: libcommon.CopyBytes(locHashPrefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, @@ -290,7 +289,7 @@ func (sc *StateCache) SetStorageHashDelete(addrHash libcommon.Hash, incarnation ai := StorageHashItem{ addrHash: addrHash, incarnation: incarnation, - locHashPrefix: common.CopyBytes(locHashPrefix), + locHashPrefix: libcommon.CopyBytes(locHashPrefix), hasState: hasState, hasTree: hasTree, hasHash: hasHash, diff --git a/turbo/silkworm/silkworm.go b/turbo/silkworm/silkworm.go new file mode 100644 index 00000000000..8f8ea427317 --- /dev/null +++ b/turbo/silkworm/silkworm.go @@ -0,0 +1,77 @@ +package silkworm + +import ( + "errors" + "math/big" + + "github.com/erigontech/silkworm-go" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/consensus" +) + +type Silkworm = silkworm_go.Silkworm +type SentrySettings = silkworm_go.SentrySettings +type MappedHeaderSnapshot = silkworm_go.MappedHeaderSnapshot +type MappedBodySnapshot = silkworm_go.MappedBodySnapshot +type MappedTxnSnapshot = silkworm_go.MappedTxnSnapshot +type MappedChainSnapshot = silkworm_go.MappedChainSnapshot + +var New = silkworm_go.New +var NewMemoryMappedRegion = silkworm_go.NewMemoryMappedRegion +var NewMappedHeaderSnapshot = silkworm_go.NewMappedHeaderSnapshot +var NewMappedBodySnapshot = silkworm_go.NewMappedBodySnapshot +var NewMappedTxnSnapshot = silkworm_go.NewMappedTxnSnapshot + +var ErrInterrupted = silkworm_go.ErrInterrupted + +type RpcDaemonService struct { + silkworm *Silkworm + db kv.RoDB +} + +func NewRpcDaemonService(s *Silkworm, db kv.RoDB) RpcDaemonService { + return RpcDaemonService{ + silkworm: s, + db: db, + } +} + +func (service RpcDaemonService) Start() error { + return service.silkworm.StartRpcDaemon(service.db.CHandle()) +} + +func (service RpcDaemonService) Stop() error { + return service.silkworm.StopRpcDaemon() +} + +type SentryService struct { + silkworm *silkworm_go.Silkworm + settings silkworm_go.SentrySettings +} + +func NewSentryService(s *Silkworm, settings silkworm_go.SentrySettings) SentryService { + return SentryService{ + silkworm: s, + settings: settings, + } +} + +func (service SentryService) Start() error { + return service.silkworm.SentryStart(service.settings) +} + +func (service SentryService) Stop() error { + return service.silkworm.SentryStop() +} + +func ExecuteBlocks(s *Silkworm, txn kv.Tx, chainID *big.Int, startBlock uint64, maxBlock uint64, batchSize uint64, writeChangeSets, writeReceipts, writeCallTraces bool) (uint64, error) { + lastExecutedBlock, err := s.ExecuteBlocks(txn.CHandle(), chainID, startBlock, maxBlock, batchSize, writeChangeSets, writeReceipts, writeCallTraces) + if (err != nil) && errors.Is(err, silkworm_go.ErrInvalidBlock) { + return lastExecutedBlock, consensus.ErrInvalidBlock + } + return lastExecutedBlock, err +} + +type CanAddSnapshotsToSilkwarm interface { + AddSnapshotsToSilkworm(*Silkworm) error +} diff --git a/turbo/silkworm/silkworm_compat_check.sh b/turbo/silkworm/silkworm_compat_check.sh new file mode 100755 index 00000000000..da5a14523b9 --- /dev/null +++ b/turbo/silkworm/silkworm_compat_check.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +set -e +set -u +set -o pipefail + +OS_RELEASE_PATH=/etc/os-release + +function glibc_version { + cmd="ldd --version" + $cmd | head -1 | awk '{ print $NF }' +} + +function glibcpp_version { + link_path=$(/sbin/ldconfig -p | grep libstdc++ | awk '{ print $NF }' | head -1) + if [[ ! -L "$link_path" ]] + then + echo "0" + else + file_name=$(readlink "$link_path") + echo "${file_name##*.}" + fi +} + +function version_major { + IFS='.' read -a components <<< "$1" + echo "${components[0]}" +} + +function version_minor { + IFS='.' read -a components <<< "$1" + echo "${components[1]}" +} + +case $(uname -s) in + Linux) + if [[ ! -f "$OS_RELEASE_PATH" ]] + then + echo "not supported Linux without $OS_RELEASE_PATH" + exit 2 + fi + + source "$OS_RELEASE_PATH" + + if [[ -n "$ID" ]] && [[ -n "$VERSION_ID" ]] + then + version=$(version_major "$VERSION_ID") + case "$ID" in + "debian") + if (( version < 12 )) + then + echo "not supported Linux version: $ID $VERSION_ID" + exit 3 + fi + ;; + "ubuntu") + if (( version < 22 )) + then + echo "not supported Linux version: $ID $VERSION_ID" + exit 3 + fi + ;; + esac + fi + + version=$(version_minor "$(glibc_version)") + if (( version < 34 )) + then + echo "not supported glibc version: $version" + exit 4 + fi + + version=$(glibcpp_version) + if (( version < 30 )) + then + echo "not supported glibcpp version: $version" + exit 5 + fi + + ;; + Darwin) + ;; + *) + echo "unsupported OS" + exit 1 + ;; +esac diff --git a/turbo/silkworm/silkworm_go_devenv.sh b/turbo/silkworm/silkworm_go_devenv.sh new file mode 100755 index 00000000000..79ebb808a6a --- /dev/null +++ b/turbo/silkworm/silkworm_go_devenv.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +set -e +set -o pipefail + +TARGET="silkworm_capi" +script_dir=$(dirname "${BASH_SOURCE[0]}") +project_dir=$(realpath "$script_dir/../..") + +src_dir="$1" +build_dir="$2" + +if [[ ! -d "$src_dir" ]] +then + echo "source directory '$src_dir' not found" + exit 1 +fi + +if [[ -z "$build_dir" ]] +then + build_dir="$src_dir/build" +fi + +if [[ ! -d "$build_dir" ]] +then + echo "build directory '$build_dir' not found" + exit 1 +fi + +replace_dir=$(mktemp -d -t silkworm-go 2> /dev/null || mktemp -d -t silkworm-go.XXXXXXXX) + +git clone --depth 1 "https://github.com/erigontech/silkworm-go" "$replace_dir" + +ln -s "$src_dir/silkworm/capi/silkworm.h" "$replace_dir/include/" + +product_dir="$build_dir/silkworm/capi" +product_path=$(echo "$product_dir/"*$TARGET*) +product_file_name=$(basename "$product_path") + +for platform in macos_arm64 macos_x64 linux_arm64 linux_x64 +do + mkdir "$replace_dir/lib/$platform" + ln -s "$product_path" "$replace_dir/lib/$platform/$product_file_name" +done + +cd "$project_dir/.." +rm -f "go.work" +go work init "$project_dir" +go work use "$replace_dir" diff --git a/turbo/silkworm/silkworm_lib_path.sh b/turbo/silkworm/silkworm_lib_path.sh new file mode 100755 index 00000000000..00d30b2ad2c --- /dev/null +++ b/turbo/silkworm/silkworm_lib_path.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +set -e +set -u +set -o pipefail + +script_dir=$(dirname "${BASH_SOURCE[0]}") +project_dir=$(realpath "$script_dir/../..") +go_cmd=go + +function os_name { + value=$(uname -s) + case $value in + Linux) + echo linux;; + Darwin) + echo macos;; + *) + echo "unsupported OS: $value" + exit 1;; + esac +} + +function arch_name { + value=$(uname -m) + case $value in + arm64) + echo arm64;; + aarch64) + echo arm64;; + x86_64) + echo x64;; + *) + echo "unsupported CPU architecture: $value" + exit 1;; + esac +} + +function lib_file_ext { + value=$(os_name) + case $value in + linux) + echo so;; + macos) + echo dylib;; + *) + echo "unsupported OS: $value" + exit 1;; + esac +} + +function silkworm_go_version { + grep "silkworm-go" "$project_dir/go.mod" | awk '{ print $2 }' +} + +function libsilkworm_path { + echo "$($go_cmd env GOMODCACHE)/github.com/erigontech/silkworm-go@$(silkworm_go_version)/lib/$(os_name)_$(arch_name)/libsilkworm_capi.$(lib_file_ext)" +} + +libsilkworm_path diff --git a/turbo/snapshotsync/freezeblocks/beacon_block_reader.go b/turbo/snapshotsync/freezeblocks/beacon_block_reader.go new file mode 100644 index 00000000000..40ce7813aa1 --- /dev/null +++ b/turbo/snapshotsync/freezeblocks/beacon_block_reader.go @@ -0,0 +1,206 @@ +package freezeblocks + +import ( + "bytes" + "context" + "fmt" + "sync" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon/cl/clparams" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/beacon_indicies" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" + "github.com/pierrec/lz4" +) + +var buffersPool = sync.Pool{ + New: func() interface{} { return &bytes.Buffer{} }, +} + +var lz4ReaderPool = sync.Pool{ + New: func() interface{} { + return lz4.NewReader(nil) + }, +} + +type BeaconSnapshotReader interface { + // ReadBlock reads the block at the given slot. + // If the block is not present, it returns nil. + ReadBlockBySlot(ctx context.Context, tx kv.Tx, slot uint64) (*cltypes.SignedBeaconBlock, error) + ReadBlockByRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlock, error) + ReadHeaderByRoot(ctx context.Context, tx kv.Tx, blockRoot libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, error) + + FrozenSlots() uint64 +} + +type beaconSnapshotReader struct { + sn *CaplinSnapshots + + eth1Getter snapshot_format.ExecutionBlockReaderByNumber + beaconDB persistence.BlockSource + cfg *clparams.BeaconChainConfig +} + +func NewBeaconSnapshotReader(snapshots *CaplinSnapshots, eth1Getter snapshot_format.ExecutionBlockReaderByNumber, beaconDB persistence.BlockSource, cfg *clparams.BeaconChainConfig) BeaconSnapshotReader { + return &beaconSnapshotReader{sn: snapshots, eth1Getter: eth1Getter, cfg: cfg, beaconDB: beaconDB} +} + +func (r *beaconSnapshotReader) FrozenSlots() uint64 { + return r.sn.BlocksAvailable() +} + +func (r *beaconSnapshotReader) ReadBlockBySlot(ctx context.Context, tx kv.Tx, slot uint64) (*cltypes.SignedBeaconBlock, error) { + view := r.sn.View() + defer view.Close() + + var buf []byte + if slot > r.sn.BlocksAvailable() { + data, err := r.beaconDB.GetBlock(ctx, tx, slot) + if data == nil { + return nil, err + } + return data.Data, err + } + if r.eth1Getter == nil { + return nil, nil + } + + seg, ok := view.BeaconBlocksSegment(slot) + if !ok { + return nil, nil + } + + if seg.idxSlot == nil { + return nil, nil + } + if slot < seg.idxSlot.BaseDataID() { + return nil, fmt.Errorf("slot %d is before the base data id %d", slot, seg.idxSlot.BaseDataID()) + } + blockOffset := seg.idxSlot.OrdinalLookup(slot - seg.idxSlot.BaseDataID()) + + gg := seg.seg.MakeGetter() + gg.Reset(blockOffset) + if !gg.HasNext() { + return nil, nil + } + + buf = buf[:0] + buf, _ = gg.Next(buf) + if len(buf) == 0 { + return nil, nil + } + // Decompress this thing + buffer := buffersPool.Get().(*bytes.Buffer) + defer buffersPool.Put(buffer) + + buffer.Reset() + buffer.Write(buf) + lzReader := lz4ReaderPool.Get().(*lz4.Reader) + defer lz4ReaderPool.Put(lzReader) + lzReader.Reset(buffer) + + // Use pooled buffers and readers to avoid allocations. + return snapshot_format.ReadBlockFromSnapshot(lzReader, r.eth1Getter, r.cfg) +} + +func (r *beaconSnapshotReader) ReadBlockByRoot(ctx context.Context, tx kv.Tx, root libcommon.Hash) (*cltypes.SignedBeaconBlock, error) { + view := r.sn.View() + defer view.Close() + + slot, err := beacon_indicies.ReadBlockSlotByBlockRoot(tx, root) + if err != nil { + return nil, err + } + if slot == nil { + return nil, nil + } + + var buf []byte + if *slot > r.sn.BlocksAvailable() { + data, err := r.beaconDB.GetBlock(ctx, tx, *slot) + return data.Data, err + } + if r.eth1Getter == nil { + return nil, nil + } + // Find canonical block + canonicalBlockRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, *slot) + if err != nil { + return nil, err + } + // root non-canonical? BAD + if canonicalBlockRoot != root { + return nil, nil + } + + seg, ok := view.BeaconBlocksSegment(*slot) + if !ok { + return nil, nil + } + + if seg.idxSlot == nil { + return nil, nil + } + if *slot < seg.idxSlot.BaseDataID() { + return nil, fmt.Errorf("slot %d is before the base data id %d", slot, seg.idxSlot.BaseDataID()) + } + blockOffset := seg.idxSlot.OrdinalLookup(*slot - seg.idxSlot.BaseDataID()) + + gg := seg.seg.MakeGetter() + gg.Reset(blockOffset) + if !gg.HasNext() { + return nil, nil + } + + buf = buf[:0] + buf, _ = gg.Next(buf) + if len(buf) == 0 { + return nil, nil + } + // Decompress this thing + buffer := buffersPool.Get().(*bytes.Buffer) + defer buffersPool.Put(buffer) + + buffer.Reset() + buffer.Write(buf) + lzReader := lz4ReaderPool.Get().(*lz4.Reader) + defer lz4ReaderPool.Put(lzReader) + lzReader.Reset(buffer) + + // Use pooled buffers and readers to avoid allocations. + return snapshot_format.ReadBlockFromSnapshot(lzReader, r.eth1Getter, r.cfg) +} + +func (r *beaconSnapshotReader) ReadHeaderByRoot(ctx context.Context, tx kv.Tx, root libcommon.Hash) (*cltypes.SignedBeaconBlockHeader, error) { + view := r.sn.View() + defer view.Close() + + slot, err := beacon_indicies.ReadBlockSlotByBlockRoot(tx, root) + if err != nil { + return nil, err + } + if slot == nil { + return nil, nil + } + + if *slot > r.sn.BlocksAvailable() { + h, _, err := beacon_indicies.ReadSignedHeaderByBlockRoot(ctx, tx, root) + return h, err + } + // Find canonical block + canonicalBlockRoot, err := beacon_indicies.ReadCanonicalBlockRoot(tx, *slot) + if err != nil { + return nil, err + } + // root non-canonical? BAD + if canonicalBlockRoot != root { + return nil, nil + } + + h, _, _, err := r.sn.ReadHeader(*slot) + // Use pooled buffers and readers to avoid allocations. + return h, err +} diff --git a/turbo/snapshotsync/freezeblocks/block_reader.go b/turbo/snapshotsync/freezeblocks/block_reader.go index 1a353f984d0..6dec6ac3a09 100644 --- a/turbo/snapshotsync/freezeblocks/block_reader.go +++ b/turbo/snapshotsync/freezeblocks/block_reader.go @@ -3,10 +3,14 @@ package freezeblocks import ( "bytes" "context" + "encoding/binary" "fmt" + "math" + "sort" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/gointerfaces" "github.com/ledgerwatch/erigon-lib/gointerfaces/remote" "github.com/ledgerwatch/erigon-lib/kv" @@ -81,7 +85,9 @@ func (r *RemoteBlockReader) HeaderByNumber(ctx context.Context, tx kv.Getter, bl } func (r *RemoteBlockReader) Snapshots() services.BlockSnapshots { panic("not implemented") } +func (r *RemoteBlockReader) BorSnapshots() services.BlockSnapshots { panic("not implemented") } func (r *RemoteBlockReader) FrozenBlocks() uint64 { panic("not supported") } +func (r *RemoteBlockReader) FrozenBorBlocks() uint64 { panic("not supported") } func (r *RemoteBlockReader) FrozenFiles() (list []string) { panic("not supported") } func (r *RemoteBlockReader) FreezingCfg() ethconfig.BlocksFreezing { panic("not supported") } @@ -205,22 +211,66 @@ func (r *RemoteBlockReader) BodyRlp(ctx context.Context, tx kv.Getter, hash comm return bodyRlp, nil } +func (r *RemoteBlockReader) EventLookup(ctx context.Context, tx kv.Getter, txnHash common.Hash) (uint64, bool, error) { + reply, err := r.client.BorEvent(ctx, &remote.BorEventRequest{BorTxHash: gointerfaces.ConvertHashToH256(txnHash)}) + if err != nil { + return 0, false, err + } + if reply == nil || len(reply.EventRlps) == 0 { + return 0, false, nil + } + return reply.BlockNumber, true, nil +} + +func (r *RemoteBlockReader) EventsByBlock(ctx context.Context, tx kv.Tx, hash common.Hash, blockHeight uint64) ([]rlp.RawValue, error) { + borTxnHash := types.ComputeBorTxHash(blockHeight, hash) + reply, err := r.client.BorEvent(ctx, &remote.BorEventRequest{BorTxHash: gointerfaces.ConvertHashToH256(borTxnHash)}) + if err != nil { + return nil, err + } + result := make([]rlp.RawValue, len(reply.EventRlps)) + for i, r := range reply.EventRlps { + result[i] = rlp.RawValue(r) + } + return result, nil +} + +func (r *RemoteBlockReader) Span(ctx context.Context, tx kv.Getter, spanId uint64) ([]byte, error) { + return nil, nil +} + // BlockReader can read blocks from db and snapshots type BlockReader struct { - sn *RoSnapshots - TransactionsV3 bool + sn *RoSnapshots + borSn *BorRoSnapshots } -func NewBlockReader(snapshots services.BlockSnapshots) *BlockReader { - return &BlockReader{sn: snapshots.(*RoSnapshots), TransactionsV3: true} +func NewBlockReader(snapshots services.BlockSnapshots, borSnapshots services.BlockSnapshots) *BlockReader { + return &BlockReader{sn: snapshots.(*RoSnapshots), borSn: borSnapshots.(*BorRoSnapshots)} } func (r *BlockReader) CanPruneTo(currentBlockInDB uint64) uint64 { return CanDeleteTo(currentBlockInDB, r.sn.BlocksAvailable()) } -func (r *BlockReader) Snapshots() services.BlockSnapshots { return r.sn } -func (r *BlockReader) FrozenBlocks() uint64 { return r.sn.BlocksAvailable() } -func (r *BlockReader) FrozenFiles() []string { return r.sn.Files() } +func (r *BlockReader) Snapshots() services.BlockSnapshots { return r.sn } +func (r *BlockReader) BorSnapshots() services.BlockSnapshots { + if r.borSn != nil { + return r.borSn + } + + return nil +} + +func (r *BlockReader) FrozenBlocks() uint64 { return r.sn.BlocksAvailable() } +func (r *BlockReader) FrozenBorBlocks() uint64 { return r.borSn.BlocksAvailable() } +func (r *BlockReader) FrozenFiles() []string { + files := r.sn.Files() + if r.borSn != nil { + files = append(files, r.borSn.Files()...) + } + sort.Strings(files) + return files +} func (r *BlockReader) FreezingCfg() ethconfig.BlocksFreezing { return r.sn.Cfg() } func (r *BlockReader) HeadersRange(ctx context.Context, walker func(header *types.Header) error) error { @@ -334,6 +384,7 @@ func (r *BlockReader) Header(ctx context.Context, tx kv.Getter, hash common.Hash } func (r *BlockReader) BodyWithTransactions(ctx context.Context, tx kv.Getter, hash common.Hash, blockHeight uint64) (body *types.Body, err error) { + body, err = rawdb.ReadBodyWithTransactions(tx, hash, blockHeight) if err != nil { return nil, err @@ -388,8 +439,8 @@ func (r *BlockReader) BodyRlp(ctx context.Context, tx kv.Getter, hash common.Has } func (r *BlockReader) Body(ctx context.Context, tx kv.Getter, hash common.Hash, blockHeight uint64) (body *types.Body, txAmount uint32, err error) { - blocksAvailable := r.sn.BlocksAvailable() - if blocksAvailable == 0 || blockHeight > blocksAvailable { + maxBlockNumInFiles := r.sn.BlocksAvailable() + if maxBlockNumInFiles == 0 || blockHeight > maxBlockNumInFiles { body, _, txAmount = rawdb.ReadBody(tx, hash, blockHeight) return body, txAmount, nil } @@ -408,8 +459,8 @@ func (r *BlockReader) Body(ctx context.Context, tx kv.Getter, hash common.Hash, } func (r *BlockReader) HasSenders(ctx context.Context, tx kv.Getter, hash common.Hash, blockHeight uint64) (bool, error) { - blocksAvailable := r.sn.BlocksAvailable() - if blocksAvailable == 0 || blockHeight > blocksAvailable { + maxBlockNumInFiles := r.sn.BlocksAvailable() + if maxBlockNumInFiles == 0 || blockHeight > maxBlockNumInFiles { return rawdb.HasSenders(tx, hash, blockHeight) } return true, nil @@ -419,8 +470,8 @@ func (r *BlockReader) BlockWithSenders(ctx context.Context, tx kv.Getter, hash c return r.blockWithSenders(ctx, tx, hash, blockHeight, false) } func (r *BlockReader) blockWithSenders(ctx context.Context, tx kv.Getter, hash common.Hash, blockHeight uint64, forceCanonical bool) (block *types.Block, senders []common.Address, err error) { - blocksAvailable := r.sn.BlocksAvailable() - if blocksAvailable == 0 || blockHeight > blocksAvailable { + maxBlockNumInFiles := r.sn.BlocksAvailable() + if maxBlockNumInFiles == 0 || blockHeight > maxBlockNumInFiles { if forceCanonical { canonicalHash, err := rawdb.ReadCanonicalHash(tx, blockHeight) if err != nil { @@ -560,6 +611,9 @@ func (r *BlockReader) bodyFromSnapshot(blockHeight uint64, sn *BodySegment, buf if err != nil { return nil, 0, 0, buf, err } + if b == nil { + return nil, 0, 0, buf, nil + } body := new(types.Body) body.Uncles = b.Uncles @@ -598,9 +652,6 @@ func (r *BlockReader) bodyForStorageFromSnapshot(blockHeight uint64, sn *BodySeg return nil, buf, err } - if b.BaseTxId < sn.idxBodyNumber.BaseDataID() { - return nil, buf, fmt.Errorf(".idx file has wrong baseDataID? %d<%d, %s", b.BaseTxId, sn.idxBodyNumber.BaseDataID(), sn.seg.FilePath()) - } return b, buf, nil } @@ -705,8 +756,8 @@ func (r *BlockReader) txnByHash(txnHash common.Hash, segments []*TxnSegment, buf // TxnByIdxInBlock - doesn't include system-transactions in the begin/end of block // return nil if 0 < i < body.TxAmount func (r *BlockReader) TxnByIdxInBlock(ctx context.Context, tx kv.Getter, blockNum uint64, txIdxInBlock int) (txn types.Transaction, err error) { - blocksAvailable := r.sn.BlocksAvailable() - if blocksAvailable == 0 || blockNum > blocksAvailable { + maxBlockNumInFiles := r.sn.BlocksAvailable() + if maxBlockNumInFiles == 0 || blockNum > maxBlockNumInFiles { canonicalHash, err := rawdb.ReadCanonicalHash(tx, blockNum) if err != nil { return nil, err @@ -891,3 +942,245 @@ func (r *BlockReader) ReadAncestor(db kv.Getter, hash common.Hash, number, ances } return hash, number } + +func (r *BlockReader) EventLookup(ctx context.Context, tx kv.Getter, txnHash common.Hash) (uint64, bool, error) { + n, err := rawdb.ReadBorTxLookupEntry(tx, txnHash) + if err != nil { + return 0, false, err + } + if n != nil { + return *n, true, nil + } + + view := r.borSn.View() + defer view.Close() + + blockNum, ok, err := r.borBlockByEventHash(txnHash, view.Events(), nil) + if err != nil { + return 0, false, err + } + if !ok { + return 0, false, nil + } + return blockNum, true, nil +} + +func (r *BlockReader) borBlockByEventHash(txnHash common.Hash, segments []*BorEventSegment, buf []byte) (blockNum uint64, ok bool, err error) { + for i := len(segments) - 1; i >= 0; i-- { + sn := segments[i] + if sn.IdxBorTxnHash == nil { + continue + } + if sn.IdxBorTxnHash.KeyCount() == 0 { + continue + } + reader := recsplit.NewIndexReader(sn.IdxBorTxnHash) + blockEventId := reader.Lookup(txnHash[:]) + offset := sn.IdxBorTxnHash.OrdinalLookup(blockEventId) + gg := sn.seg.MakeGetter() + gg.Reset(offset) + if !gg.MatchPrefix(txnHash[:]) { + continue + } + buf, _ = gg.Next(buf[:0]) + blockNum = binary.BigEndian.Uint64(buf[length.Hash:]) + ok = true + return + } + return +} + +func (r *BlockReader) EventsByBlock(ctx context.Context, tx kv.Tx, hash common.Hash, blockHeight uint64) ([]rlp.RawValue, error) { + maxBlockNumInFiles := r.FrozenBorBlocks() + if maxBlockNumInFiles == 0 || blockHeight > maxBlockNumInFiles { + c, err := tx.Cursor(kv.BorEventNums) + if err != nil { + return nil, err + } + defer c.Close() + var k, v []byte + var buf [8]byte + binary.BigEndian.PutUint64(buf[:], blockHeight) + result := []rlp.RawValue{} + if k, v, err = c.Seek(buf[:]); err != nil { + return nil, err + } + if !bytes.Equal(k, buf[:]) { + return result, nil + } + startEventId := binary.BigEndian.Uint64(v) + var endEventId uint64 + if k, v, err = c.Next(); err != nil { + return nil, err + } + if k == nil { + endEventId = math.MaxUint64 + } else { + endEventId = binary.BigEndian.Uint64(v) + } + c1, err := tx.Cursor(kv.BorEvents) + if err != nil { + return nil, err + } + defer c1.Close() + binary.BigEndian.PutUint64(buf[:], startEventId) + for k, v, err = c1.Seek(buf[:]); err == nil && k != nil; k, v, err = c1.Next() { + eventId := binary.BigEndian.Uint64(k) + if eventId >= endEventId { + break + } + result = append(result, rlp.RawValue(common.Copy(v))) + } + if err != nil { + return nil, err + } + return result, nil + } + borTxHash := types.ComputeBorTxHash(blockHeight, hash) + view := r.borSn.View() + defer view.Close() + segments := view.Events() + var buf []byte + result := []rlp.RawValue{} + for i := len(segments) - 1; i >= 0; i-- { + sn := segments[i] + if sn.ranges.from > blockHeight { + continue + } + if sn.ranges.to <= blockHeight { + continue + } + if sn.IdxBorTxnHash == nil { + continue + } + if sn.IdxBorTxnHash.KeyCount() == 0 { + continue + } + reader := recsplit.NewIndexReader(sn.IdxBorTxnHash) + blockEventId := reader.Lookup(borTxHash[:]) + offset := sn.IdxBorTxnHash.OrdinalLookup(blockEventId) + gg := sn.seg.MakeGetter() + gg.Reset(offset) + for gg.HasNext() && gg.MatchPrefix(borTxHash[:]) { + buf, _ = gg.Next(buf[:0]) + result = append(result, rlp.RawValue(common.Copy(buf[length.Hash+length.BlockNum+8:]))) + } + } + return result, nil +} + +func (r *BlockReader) LastFrozenEventID() uint64 { + view := r.borSn.View() + defer view.Close() + segments := view.Events() + if len(segments) == 0 { + return 0 + } + lastSegment := segments[len(segments)-1] + var lastEventID uint64 + gg := lastSegment.seg.MakeGetter() + var buf []byte + for gg.HasNext() { + buf, _ = gg.Next(buf[:0]) + lastEventID = binary.BigEndian.Uint64(buf[length.Hash+length.BlockNum : length.Hash+length.BlockNum+8]) + } + return lastEventID +} + +func (r *BlockReader) LastFrozenSpanID() uint64 { + view := r.borSn.View() + defer view.Close() + segments := view.Spans() + if len(segments) == 0 { + return 0 + } + lastSegment := segments[len(segments)-1] + var lastSpanID uint64 + if lastSegment.ranges.to > zerothSpanEnd { + lastSpanID = (lastSegment.ranges.to - zerothSpanEnd - 1) / spanLength + } + return lastSpanID +} + +func (r *BlockReader) Span(ctx context.Context, tx kv.Getter, spanId uint64) ([]byte, error) { + // Compute starting block of the span + var endBlock uint64 + if spanId > 0 { + endBlock = (spanId)*spanLength + zerothSpanEnd + } + var buf [8]byte + binary.BigEndian.PutUint64(buf[:], spanId) + maxBlockNumInFiles := r.FrozenBorBlocks() + if maxBlockNumInFiles == 0 || endBlock > maxBlockNumInFiles { + v, err := tx.GetOne(kv.BorSpans, buf[:]) + if err != nil { + return nil, err + } + if v == nil { + return nil, fmt.Errorf("span %d not found (db)", spanId) + } + return common.Copy(v), nil + } + view := r.borSn.View() + defer view.Close() + segments := view.Spans() + for i := len(segments) - 1; i >= 0; i-- { + sn := segments[i] + if sn.idx == nil { + continue + } + var spanFrom uint64 + if sn.ranges.from > zerothSpanEnd { + spanFrom = 1 + (sn.ranges.from-zerothSpanEnd-1)/spanLength + } + if spanId < spanFrom { + continue + } + var spanTo uint64 + if sn.ranges.to > zerothSpanEnd { + spanTo = 1 + (sn.ranges.to-zerothSpanEnd-1)/spanLength + } + if spanId >= spanTo { + continue + } + if sn.idx.KeyCount() == 0 { + continue + } + offset := sn.idx.OrdinalLookup(spanId - sn.idx.BaseDataID()) + gg := sn.seg.MakeGetter() + gg.Reset(offset) + result, _ := gg.Next(nil) + return common.Copy(result), nil + } + return nil, fmt.Errorf("span %d not found (snapshots)", spanId) +} + +// ---- Data Integrity part ---- + +func (r *BlockReader) ensureHeaderNumber(n uint64, seg *HeaderSegment) error { + h, _, err := r.headerFromSnapshot(n, seg, nil) + if err != nil { + return err + } + if h == nil { + return fmt.Errorf("ensureHeaderNumber: not found header: %d", n) + } + if h.Number.Uint64() != n { + return fmt.Errorf("ensureHeaderNumber: requested header: %d, got: %d", n, h.Number.Uint64()) + } + return nil +} + +func (r *BlockReader) Integrity(ctx context.Context) error { + view := r.sn.View() + defer view.Close() + for _, seg := range view.Headers() { + if err := r.ensureHeaderNumber(seg.ranges.from, seg); err != nil { + return err + } + if err := r.ensureHeaderNumber(seg.ranges.to-1, seg); err != nil { + return err + } + } + return nil +} diff --git a/turbo/snapshotsync/freezeblocks/block_snapshots.go b/turbo/snapshotsync/freezeblocks/block_snapshots.go index 33002f6d7eb..7893bb1a10c 100644 --- a/turbo/snapshotsync/freezeblocks/block_snapshots.go +++ b/turbo/snapshotsync/freezeblocks/block_snapshots.go @@ -19,6 +19,7 @@ import ( "github.com/holiman/uint256" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" common2 "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/background" "github.com/ledgerwatch/erigon-lib/common/cmp" @@ -44,7 +45,7 @@ import ( "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" + "github.com/ledgerwatch/erigon/turbo/silkworm" "github.com/ledgerwatch/log/v3" "golang.org/x/exp/slices" "golang.org/x/sync/errgroup" @@ -120,11 +121,7 @@ func (sn *HeaderSegment) reopenIdx(dir string) (err error) { if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.idxHeaderHash.ModTime().Before(sn.seg.ModTime()) { - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.idxHeaderHash.Close() - sn.idxHeaderHash = nil - } + return nil } @@ -181,11 +178,6 @@ func (sn *BodySegment) reopenIdx(dir string) (err error) { if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.idxBodyNumber.ModTime().Before(sn.seg.ModTime()) { - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.idxBodyNumber.Close() - sn.idxBodyNumber = nil - } return nil } @@ -228,22 +220,27 @@ func (sn *TxnSegment) reopenIdx(dir string) (err error) { if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.IdxTxnHash.ModTime().Before(sn.Seg.ModTime()) { - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.IdxTxnHash.Close() - sn.IdxTxnHash = nil - } + + /* + // Historically we had several times when: + // - erigon downloaded new version of .seg file + // - or didn't finish download and start indexing + // this was a "quick-fix protection" against this cases + // but now we have other protections for this cases + // let's try to remove this one - because it's not compatible with "copy datadir" and "restore datadir from backup" scenarios + if sn.IdxTxnHash.ModTime().Before(sn.Seg.ModTime()) { + log.Trace("[snapshots] skip index because it modify time is ahead before .seg file", "name", sn.IdxTxnHash.FileName()) + //Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent + sn.IdxTxnHash.Close() + sn.IdxTxnHash = nil + } + */ fileName = snaptype.IdxFileName(sn.ranges.from, sn.ranges.to, snaptype.Transactions2Block.String()) sn.IdxTxnHash2BlockNum, err = recsplit.OpenIndex(path.Join(dir, fileName)) if err != nil { return fmt.Errorf("%w, fileName: %s", err, fileName) } - if sn.IdxTxnHash2BlockNum.ModTime().Before(sn.Seg.ModTime()) { - // Index has been created before the segment file, needs to be ignored (and rebuilt) as inconsistent - sn.IdxTxnHash2BlockNum.Close() - sn.IdxTxnHash2BlockNum = nil - } return nil } @@ -359,23 +356,6 @@ func (s *RoSnapshots) LogStat() { "alloc", common2.ByteCount(m.Alloc), "sys", common2.ByteCount(m.Sys)) } -func (s *RoSnapshots) ScanDir() (map[string]struct{}, []*services.Range, error) { - existingFiles, missingSnapshots, err := Segments(s.dir) - if err != nil { - return nil, nil, err - } - existingFilesMap := map[string]struct{}{} - for _, existingFile := range existingFiles { - _, fname := filepath.Split(existingFile.Path) - existingFilesMap[fname] = struct{}{} - } - - res := make([]*services.Range, 0, len(missingSnapshots)) - for _, sn := range missingSnapshots { - res = append(res, &services.Range{From: sn.from, To: sn.to}) - } - return existingFilesMap, res, nil -} func (s *RoSnapshots) EnsureExpectedBlocksAreAvailable(cfg *snapcfg.Cfg) error { if s.BlocksAvailable() < cfg.ExpectBlocks { return fmt.Errorf("app must wait until all expected snapshots are available. Expected: %d, Available: %d", cfg.ExpectBlocks, s.BlocksAvailable()) @@ -499,12 +479,12 @@ func (s *RoSnapshots) Files() (list []string) { defer s.Bodies.lock.RUnlock() s.Txs.lock.RLock() defer s.Txs.lock.RUnlock() - max := s.BlocksAvailable() + maxBlockNumInFiles := s.BlocksAvailable() for _, seg := range s.Bodies.segments { if seg.seg == nil { continue } - if seg.ranges.from > max { + if seg.ranges.from > maxBlockNumInFiles { continue } _, fName := filepath.Split(seg.seg.FilePath()) @@ -514,7 +494,7 @@ func (s *RoSnapshots) Files() (list []string) { if seg.seg == nil { continue } - if seg.ranges.from > max { + if seg.ranges.from > maxBlockNumInFiles { continue } _, fName := filepath.Split(seg.seg.FilePath()) @@ -524,7 +504,7 @@ func (s *RoSnapshots) Files() (list []string) { if seg.Seg == nil { continue } - if seg.ranges.from > max { + if seg.ranges.from > maxBlockNumInFiles { continue } _, fName := filepath.Split(seg.Seg.FilePath()) @@ -548,11 +528,11 @@ func (s *RoSnapshots) ReopenList(fileNames []string, optimistic bool) error { var segmentsMaxSet bool Loop: for _, fName := range fileNames { - f, err := snaptype.ParseFileName(s.dir, fName) - if err != nil { - s.logger.Warn("invalid segment name", "err", err, "name", fName) + f, ok := snaptype.ParseFileName(s.dir, fName) + if !ok { continue } + var processed bool = true switch f.T { case snaptype.Headers: @@ -669,14 +649,18 @@ Loop: if err := sn.reopenIdxIfNeed(s.dir, optimistic); err != nil { return err } + default: + processed = false } - if f.To > 0 { - segmentsMax = f.To - 1 - } else { - segmentsMax = 0 + if processed { + if f.To > 0 { + segmentsMax = f.To - 1 + } else { + segmentsMax = 0 + } + segmentsMaxSet = true } - segmentsMaxSet = true } if segmentsMaxSet { s.segmentsMax.Store(segmentsMax) @@ -834,9 +818,62 @@ func (s *RoSnapshots) PrintDebug() { } } +func (s *RoSnapshots) AddSnapshotsToSilkworm(silkwormInstance *silkworm.Silkworm) error { + mappedHeaderSnapshots := make([]*silkworm.MappedHeaderSnapshot, 0) + err := s.Headers.View(func(segments []*HeaderSegment) error { + for _, headerSegment := range segments { + mappedHeaderSnapshots = append(mappedHeaderSnapshots, headerSegment.mappedSnapshot()) + } + return nil + }) + if err != nil { + return err + } + + mappedBodySnapshots := make([]*silkworm.MappedBodySnapshot, 0) + err = s.Bodies.View(func(segments []*BodySegment) error { + for _, bodySegment := range segments { + mappedBodySnapshots = append(mappedBodySnapshots, bodySegment.mappedSnapshot()) + } + return nil + }) + if err != nil { + return err + } + + mappedTxnSnapshots := make([]*silkworm.MappedTxnSnapshot, 0) + err = s.Txs.View(func(segments []*TxnSegment) error { + for _, txnSegment := range segments { + mappedTxnSnapshots = append(mappedTxnSnapshots, txnSegment.mappedSnapshot()) + } + return nil + }) + if err != nil { + return err + } + + if len(mappedHeaderSnapshots) != len(mappedBodySnapshots) || len(mappedBodySnapshots) != len(mappedTxnSnapshots) { + return fmt.Errorf("addSnapshots: the number of headers/bodies/txs snapshots must be the same") + } + + for i := 0; i < len(mappedHeaderSnapshots); i++ { + mappedSnapshot := &silkworm.MappedChainSnapshot{ + Headers: mappedHeaderSnapshots[i], + Bodies: mappedBodySnapshots[i], + Txs: mappedTxnSnapshots[i], + } + err := silkwormInstance.AddSnapshot(mappedSnapshot) + if err != nil { + return err + } + } + + return nil +} + func buildIdx(ctx context.Context, sn snaptype.FileInfo, chainConfig *chain.Config, tmpDir string, p *background.Progress, lvl log.Lvl, logger log.Logger) error { //_, fName := filepath.Split(sn.Path) - //log.Debug("[snapshots] build idx", "file", fName) + //log.Info("[snapshots] build idx", "file", fName) switch sn.T { case snaptype.Headers: if err := HeadersIdx(ctx, chainConfig, sn.Path, sn.From, tmpDir, p, lvl, logger); err != nil { @@ -851,7 +888,18 @@ func buildIdx(ctx context.Context, sn snaptype.FileInfo, chainConfig *chain.Conf if err := TransactionsIdx(ctx, chainConfig, sn.From, sn.To, dir, tmpDir, p, lvl, logger); err != nil { return err } + case snaptype.BorEvents: + dir, _ := filepath.Split(sn.Path) + if err := BorEventsIdx(ctx, sn.Path, sn.From, sn.To, dir, tmpDir, p, lvl, logger); err != nil { + return err + } + case snaptype.BorSpans: + dir, _ := filepath.Split(sn.Path) + if err := BorSpansIdx(ctx, sn.Path, sn.From, sn.To, dir, tmpDir, p, lvl, logger); err != nil { + return err + } } + //log.Info("[snapshots] finish build idx", "file", fName) return nil } @@ -866,15 +914,79 @@ func BuildMissedIndices(logPrefix string, ctx context.Context, dirs datadir.Dirs ps := background.NewProgressSet() startIndexingTime := time.Now() + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + g, gCtx := errgroup.WithContext(ctx) g.SetLimit(workers) - for _, t := range snaptype.AllSnapshotTypes { + finish := make(chan struct{}) + + go func() { + for { + select { + case <-logEvery.C: + var m runtime.MemStats + dbg.ReadMemStats(&m) + logger.Info(fmt.Sprintf("[%s] Indexing", logPrefix), "progress", ps.String(), "total-indexing-time", time.Since(startIndexingTime).Round(time.Second).String(), "alloc", common2.ByteCount(m.Alloc), "sys", common2.ByteCount(m.Sys)) + case <-finish: + return + case <-ctx.Done(): + return + } + } + }() + + for _, t := range snaptype.BlockSnapshotTypes { for index := range segments { segment := segments[index] if segment.T != t { continue } - if hasIdxFile(&segment, logger) { + if hasIdxFile(segment, logger) { + continue + } + sn := segment + g.Go(func() error { + p := &background.Progress{} + ps.Add(p) + defer ps.Delete(p) + return buildIdx(gCtx, sn, chainConfig, tmpDir, p, log.LvlInfo, logger) + }) + } + } + go func() { + defer close(finish) + g.Wait() + }() + + // Block main thread + select { + case <-finish: + return g.Wait() + case <-ctx.Done(): + return ctx.Err() + } + +} + +func BuildBorMissedIndices(logPrefix string, ctx context.Context, dirs datadir.Dirs, chainConfig *chain.Config, workers int, logger log.Logger) error { + dir, tmpDir := dirs.Snap, dirs.Tmp + + segments, _, err := BorSegments(dir) + if err != nil { + return err + } + ps := background.NewProgressSet() + startIndexingTime := time.Now() + + g, gCtx := errgroup.WithContext(ctx) + g.SetLimit(workers) + for _, t := range []snaptype.Type{snaptype.BorEvents, snaptype.BorSpans} { + for _, segment := range segments { + if segment.T != t { + continue + } + if hasIdxFile(segment, logger) { continue } sn := segment @@ -930,7 +1042,24 @@ MainLoop: if f.From == f.To { continue } - for _, t := range snaptype.AllSnapshotTypes { + for _, t := range snaptype.BlockSnapshotTypes { + p := filepath.Join(dir, snaptype.SegmentFileName(f.From, f.To, t)) + if !dir2.FileExist(p) { + continue MainLoop + } + } + res = append(res, f) + } + return res +} + +func borSegmentsMustExist(dir string, in []snaptype.FileInfo) (res []snaptype.FileInfo) { +MainLoop: + for _, f := range in { + if f.From == f.To { + continue + } + for _, t := range []snaptype.Type{snaptype.BorEvents, snaptype.BorSpans} { p := filepath.Join(dir, snaptype.SegmentFileName(f.From, f.To, t)) if !dir2.FileExist(p) { continue MainLoop @@ -966,6 +1095,28 @@ func noOverlaps(in []snaptype.FileInfo) (res []snaptype.FileInfo) { return res } +func SegmentsCaplin(dir string) (res []snaptype.FileInfo, missingSnapshots []Range, err error) { + list, err := snaptype.Segments(dir) + if err != nil { + return nil, missingSnapshots, err + } + + { + var l []snaptype.FileInfo + var m []Range + for _, f := range list { + if f.T != snaptype.BeaconBlocks { + continue + } + l = append(l, f) + } + l, m = noGaps(noOverlaps(l)) + res = append(res, l...) + missingSnapshots = append(missingSnapshots, m...) + } + return res, missingSnapshots, nil +} + func Segments(dir string) (res []snaptype.FileInfo, missingSnapshots []Range, err error) { list, err := snaptype.Segments(dir) if err != nil { @@ -1039,7 +1190,13 @@ type BlockRetire struct { func NewBlockRetire(workers int, dirs datadir.Dirs, blockReader services.FullBlockReader, blockWriter *blockio.BlockWriter, db kv.RoDB, notifier services.DBEventNotifier, logger log.Logger) *BlockRetire { return &BlockRetire{workers: workers, tmpDir: dirs.Tmp, dirs: dirs, blockReader: blockReader, blockWriter: blockWriter, db: db, notifier: notifier, logger: logger} } + func (br *BlockRetire) snapshots() *RoSnapshots { return br.blockReader.Snapshots().(*RoSnapshots) } + +func (br *BlockRetire) borSnapshots() *BorRoSnapshots { + return br.blockReader.BorSnapshots().(*BorRoSnapshots) +} + func (br *BlockRetire) HasNewFrozenFiles() bool { return br.needSaveFilesListInDB.CompareAndSwap(true, false) } @@ -1051,6 +1208,7 @@ func CanRetire(curBlockNum uint64, blocksInSnapshots uint64) (blockFrom, blockTo blockFrom = blocksInSnapshots + 1 return canRetire(blockFrom, curBlockNum-params.FullImmutabilityThreshold) } + func canRetire(from, to uint64) (blockFrom, blockTo uint64, can bool) { if to <= from { return @@ -1058,8 +1216,8 @@ func canRetire(from, to uint64) (blockFrom, blockTo uint64, can bool) { blockFrom = (from / 1_000) * 1_000 roundedTo1K := (to / 1_000) * 1_000 var maxJump uint64 = 1_000 - if blockFrom%500_000 == 0 { - maxJump = 500_000 + if blockFrom%snaptype.Erigon2MergeLimit == 0 { + maxJump = snaptype.Erigon2MergeLimit } else if blockFrom%100_000 == 0 { maxJump = 100_000 } else if blockFrom%10_000 == 0 { @@ -1068,8 +1226,8 @@ func canRetire(from, to uint64) (blockFrom, blockTo uint64, can bool) { //roundedTo1K := (to / 1_000) * 1_000 jump := cmp.Min(maxJump, roundedTo1K-blockFrom) switch { // only next segment sizes are allowed - case jump >= 500_000: - blockTo = blockFrom + 500_000 + case jump >= snaptype.Erigon2MergeLimit: + blockTo = blockFrom + snaptype.Erigon2MergeLimit case jump >= 100_000: blockTo = blockFrom + 100_000 case jump >= 10_000: @@ -1081,6 +1239,7 @@ func canRetire(from, to uint64) (blockFrom, blockTo uint64, can bool) { } return blockFrom, blockTo, blockTo-blockFrom >= 1_000 } + func CanDeleteTo(curBlockNum uint64, blocksInSnapshots uint64) (blockTo uint64) { if curBlockNum+999 < params.FullImmutabilityThreshold { // To prevent overflow of uint64 below @@ -1089,7 +1248,8 @@ func CanDeleteTo(curBlockNum uint64, blocksInSnapshots uint64) (blockTo uint64) hardLimit := (curBlockNum/1_000)*1_000 - params.FullImmutabilityThreshold return cmp.Min(hardLimit, blocksInSnapshots+1) } -func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint64, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error) error { + +func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint64, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error, onDelete func(l []string) error) error { chainConfig := fromdb.ChainConfig(br.db) notifier, logger, blockReader, tmpDir, db, workers := br.notifier, br.logger, br.blockReader, br.tmpDir, br.db, br.workers logger.Log(lvl, "[snapshots] Retire Blocks", "range", fmt.Sprintf("%dk-%dk", blockFrom/1000, blockTo/1000)) @@ -1097,7 +1257,7 @@ func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint firstTxNum := blockReader.(*BlockReader).FirstTxNumNotInSnapshots() // in future we will do it in background - if err := DumpBlocks(ctx, blockFrom, blockTo, snaptype.Erigon2SegmentSize, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil { + if err := DumpBlocks(ctx, blockFrom, blockTo, snaptype.Erigon2MergeLimit, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil { return fmt.Errorf("DumpBlocks: %w", err) } if err := snapshots.ReopenFolder(); err != nil { @@ -1107,37 +1267,35 @@ func (br *BlockRetire) RetireBlocks(ctx context.Context, blockFrom, blockTo uint if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size notifier.OnNewSnapshot() } - merger := NewMerger(tmpDir, workers, lvl, db, chainConfig, notifier, logger) - rangesToMerge := merger.FindMergeRanges(snapshots.Ranges()) + merger := NewMerger(tmpDir, workers, lvl, db, chainConfig, logger) + rangesToMerge := merger.FindMergeRanges(snapshots.Ranges(), snapshots.BlocksAvailable()) if len(rangesToMerge) == 0 { return nil } - err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */) + onMerge := func(r Range) error { + if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size + notifier.OnNewSnapshot() + } + + if seedNewSnapshots != nil { + downloadRequest := []services.DownloadRequest{ + services.NewDownloadRequest("", ""), + } + if err := seedNewSnapshots(downloadRequest); err != nil { + return err + } + } + return nil + } + err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */, onMerge, onDelete) if err != nil { return err } - if err := snapshots.ReopenFolder(); err != nil { - return fmt.Errorf("reopen: %w", err) - } - snapshots.LogStat() - if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size - notifier.OnNewSnapshot() - } - - downloadRequest := make([]services.DownloadRequest, 0, len(rangesToMerge)) - for i := range rangesToMerge { - r := &services.Range{From: rangesToMerge[i].from, To: rangesToMerge[i].to} - downloadRequest = append(downloadRequest, services.NewDownloadRequest(r, "", "")) - } - if seedNewSnapshots != nil { - if err := seedNewSnapshots(downloadRequest); err != nil { - return err - } - } return nil } -func (br *BlockRetire) PruneAncientBlocks(tx kv.RwTx, limit int) error { + +func (br *BlockRetire) PruneAncientBlocks(tx kv.RwTx, limit int, includeBor bool) error { if br.blockReader.FreezingCfg().KeepBlocks { return nil } @@ -1149,10 +1307,16 @@ func (br *BlockRetire) PruneAncientBlocks(tx kv.RwTx, limit int) error { if err := br.blockWriter.PruneBlocks(context.Background(), tx, canDeleteTo, limit); err != nil { return nil } + if includeBor { + canDeleteTo := CanDeleteTo(currentProgress, br.blockReader.FrozenBorBlocks()) + if err := br.blockWriter.PruneBorBlocks(context.Background(), tx, canDeleteTo, limit); err != nil { + return nil + } + } return nil } -func (br *BlockRetire) RetireBlocksInBackground(ctx context.Context, forwardProgress uint64, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error) { +func (br *BlockRetire) RetireBlocksInBackground(ctx context.Context, forwardProgress uint64, includeBor bool, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error, onDeleteSnapshots func(l []string) error) { ok := br.working.CompareAndSwap(false, true) if !ok { // go-routine is still working @@ -1162,46 +1326,86 @@ func (br *BlockRetire) RetireBlocksInBackground(ctx context.Context, forwardProg defer br.working.Store(false) blockFrom, blockTo, ok := CanRetire(forwardProgress, br.blockReader.FrozenBlocks()) - if !ok { - return + if ok { + if err := br.RetireBlocks(ctx, blockFrom, blockTo, lvl, seedNewSnapshots, onDeleteSnapshots); err != nil { + br.logger.Warn("[snapshots] retire blocks", "err", err, "fromBlock", blockFrom, "toBlock", blockTo) + } } - err := br.RetireBlocks(ctx, blockFrom, blockTo, lvl, seedNewSnapshots) - if err != nil { - br.logger.Warn("[snapshots] retire blocks", "err", err, "fromBlock", blockFrom, "toBlock", blockTo) + if includeBor { + blockFrom, blockTo, ok = CanRetire(forwardProgress, br.blockReader.FrozenBorBlocks()) + if ok { + if err := br.RetireBorBlocks(ctx, blockFrom, blockTo, lvl, seedNewSnapshots, onDeleteSnapshots); err != nil { + br.logger.Warn("[bor snapshots] retire blocks", "err", err, "fromBlock", blockFrom, "toBlock", blockTo) + } + } } }() } + func (br *BlockRetire) BuildMissedIndicesIfNeed(ctx context.Context, logPrefix string, notifier services.DBEventNotifier, cc *chain.Config) error { snapshots := br.snapshots() snapshots.LogStat() // Create .idx files - if snapshots.IndicesMax() >= snapshots.SegmentsMax() { - return nil - } + if snapshots.IndicesMax() < snapshots.SegmentsMax() { - if !snapshots.Cfg().Produce && snapshots.IndicesMax() == 0 { - return fmt.Errorf("please remove --snap.stop, erigon can't work without creating basic indices") - } - if snapshots.Cfg().Produce { - if !snapshots.SegmentsReady() { - return fmt.Errorf("not all snapshot segments are available") + if !snapshots.Cfg().Produce && snapshots.IndicesMax() == 0 { + return fmt.Errorf("please remove --snap.stop, erigon can't work without creating basic indices") } + if snapshots.Cfg().Produce { + if !snapshots.SegmentsReady() { + return fmt.Errorf("not all snapshot segments are available") + } - // wait for Downloader service to download all expected snapshots - if snapshots.IndicesMax() < snapshots.SegmentsMax() { - indexWorkers := estimate.IndexSnapshot.Workers() - if err := BuildMissedIndices(logPrefix, ctx, br.dirs, cc, indexWorkers, br.logger); err != nil { - return fmt.Errorf("BuildMissedIndices: %w", err) + // wait for Downloader service to download all expected snapshots + if snapshots.IndicesMax() < snapshots.SegmentsMax() { + indexWorkers := estimate.IndexSnapshot.Workers() + if err := BuildMissedIndices(logPrefix, ctx, br.dirs, cc, indexWorkers, br.logger); err != nil { + return fmt.Errorf("BuildMissedIndices: %w", err) + } } - } - if err := snapshots.ReopenFolder(); err != nil { - return err + if err := snapshots.ReopenFolder(); err != nil { + return err + } + snapshots.LogStat() + if notifier != nil { + notifier.OnNewSnapshot() + } } - if notifier != nil { - notifier.OnNewSnapshot() + } + if cc.Bor != nil { + borSnapshots := br.borSnapshots() + borSnapshots.LogStat() + + // Create .idx files + if borSnapshots.IndicesMax() < borSnapshots.SegmentsMax() { + + if !borSnapshots.Cfg().Produce && borSnapshots.IndicesMax() == 0 { + return fmt.Errorf("please remove --snap.stop, erigon can't work without creating basic indices") + } + if borSnapshots.Cfg().Produce { + if !borSnapshots.SegmentsReady() { + return fmt.Errorf("not all bor snapshot segments are available") + } + + // wait for Downloader service to download all expected snapshots + if borSnapshots.IndicesMax() < borSnapshots.SegmentsMax() { + indexWorkers := estimate.IndexSnapshot.Workers() + if err := BuildBorMissedIndices(logPrefix, ctx, br.dirs, cc, indexWorkers, br.logger); err != nil { + return fmt.Errorf("BuildBorMissedIndices: %w", err) + } + } + + if err := borSnapshots.ReopenFolder(); err != nil { + return err + } + borSnapshots.LogStat() + if notifier != nil { + notifier.OnNewSnapshot() + } + } } } return nil @@ -1316,47 +1520,22 @@ func dumpBlocksRange(ctx context.Context, blockFrom, blockTo uint64, tmpDir, sna return nil } -func hasIdxFile(sn *snaptype.FileInfo, logger log.Logger) bool { - stat, err := os.Stat(sn.Path) - if err != nil { - return false - } +func hasIdxFile(sn snaptype.FileInfo, logger log.Logger) bool { dir, _ := filepath.Split(sn.Path) fName := snaptype.IdxFileName(sn.From, sn.To, sn.T.String()) var result = true switch sn.T { - case snaptype.Headers: + case snaptype.Headers, snaptype.Bodies, snaptype.BorEvents, snaptype.BorSpans, snaptype.BeaconBlocks: idx, err := recsplit.OpenIndex(path.Join(dir, fName)) if err != nil { return false } - // If index was created before the segment file, it needs to be ignored (and rebuilt) - if idx.ModTime().Before(stat.ModTime()) { - logger.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime()) - result = false - } - idx.Close() - case snaptype.Bodies: - idx, err := recsplit.OpenIndex(path.Join(dir, fName)) - if err != nil { - return false - } - // If index was created before the segment file, it needs to be ignored (and rebuilt) - if idx.ModTime().Before(stat.ModTime()) { - logger.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime()) - result = false - } idx.Close() case snaptype.Transactions: idx, err := recsplit.OpenIndex(path.Join(dir, fName)) if err != nil { return false } - // If index was created before the segment file, it needs to be ignored (and rebuilt) - if idx.ModTime().Before(stat.ModTime()) { - log.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime()) - result = false - } idx.Close() fName = snaptype.IdxFileName(sn.From, sn.To, snaptype.Transactions2Block.String()) @@ -1364,11 +1543,6 @@ func hasIdxFile(sn *snaptype.FileInfo, logger log.Logger) bool { if err != nil { return false } - // If index was created before the segment file, it needs to be ignored (and rebuilt) - if idx.ModTime().Before(stat.ModTime()) { - logger.Warn("Index file has timestamp before segment file, will be recreated", "segfile", sn.Path, "segtime", stat.ModTime(), "idxfile", fName, "idxtime", idx.ModTime()) - result = false - } idx.Close() } return result @@ -1795,7 +1969,7 @@ RETRY: return fmt.Errorf("TransactionsIdx: at=%d-%d, post index building, expect: %d, got %d", blockFrom, blockTo, expectedCount, i) } - if err := txnHashIdx.Build(); err != nil { + if err := txnHashIdx.Build(ctx); err != nil { if errors.Is(err, recsplit.ErrCollision) { logger.Warn("Building recsplit. Collision happened. It's ok. Restarting with another salt...", "err", err) txnHashIdx.ResetNextSalt() @@ -1804,7 +1978,7 @@ RETRY: } return fmt.Errorf("txnHashIdx: %w", err) } - if err := txnHash2BlockNumIdx.Build(); err != nil { + if err := txnHash2BlockNumIdx.Build(ctx); err != nil { if errors.Is(err, recsplit.ErrCollision) { logger.Warn("Building recsplit. Collision happened. It's ok. Restarting with another salt...", "err", err) txnHashIdx.ResetNextSalt() @@ -1895,13 +2069,14 @@ func Idx(ctx context.Context, d *compress.Decompressor, firstDataID uint64, tmpD var idxFilePath = segmentFileName[0:len(segmentFileName)-len(extension)] + ".idx" rs, err := recsplit.NewRecSplit(recsplit.RecSplitArgs{ - KeyCount: d.Count(), - Enums: true, - BucketSize: 2000, - LeafSize: 8, - TmpDir: tmpDir, - IndexFile: idxFilePath, - BaseDataID: firstDataID, + KeyCount: d.Count(), + Enums: true, + BucketSize: 2000, + LeafSize: 8, + TmpDir: tmpDir, + IndexFile: idxFilePath, + BaseDataID: firstDataID, + EtlBufLimit: etl.BufferOptimalSize / 2, }, logger) if err != nil { return err @@ -1928,7 +2103,7 @@ RETRY: default: } } - if err = rs.Build(); err != nil { + if err = rs.Build(ctx); err != nil { if errors.Is(err, recsplit.ErrCollision) { logger.Info("Building recsplit. Collision happened. It's ok. Restarting with another salt...", "err", err) rs.ResetNextSalt() @@ -1975,29 +2150,43 @@ type Merger struct { tmpDir string chainConfig *chain.Config chainDB kv.RoDB - notifier services.DBEventNotifier logger log.Logger } -func NewMerger(tmpDir string, compressWorkers int, lvl log.Lvl, chainDB kv.RoDB, chainConfig *chain.Config, notifier services.DBEventNotifier, logger log.Logger) *Merger { - return &Merger{tmpDir: tmpDir, compressWorkers: compressWorkers, lvl: lvl, chainDB: chainDB, chainConfig: chainConfig, notifier: notifier, logger: logger} +func NewMerger(tmpDir string, compressWorkers int, lvl log.Lvl, chainDB kv.RoDB, chainConfig *chain.Config, logger log.Logger) *Merger { + return &Merger{tmpDir: tmpDir, compressWorkers: compressWorkers, lvl: lvl, chainDB: chainDB, chainConfig: chainConfig, logger: logger} } type Range struct { from, to uint64 } -func (r Range) From() uint64 { return r.from } -func (r Range) To() uint64 { return r.to } +func (r Range) From() uint64 { return r.from } +func (r Range) To() uint64 { return r.to } +func (r Range) IsRecent(max uint64) bool { return max-r.to < snaptype.Erigon2MergeLimit } -func (*Merger) FindMergeRanges(currentRanges []Range) (toMerge []Range) { +type Ranges []Range + +func (r Ranges) String() string { + return fmt.Sprintf("%d", r) +} + +var MergeSteps = []uint64{500_000, 100_000, 10_000} +var RecentMergeSteps = []uint64{100_000, 10_000} + +func (m *Merger) FindMergeRanges(currentRanges []Range, maxBlockNum uint64) (toMerge []Range) { for i := len(currentRanges) - 1; i > 0; i-- { r := currentRanges[i] - if r.to-r.from >= snaptype.Erigon2SegmentSize { // is complete .seg - continue + isRecent := r.IsRecent(maxBlockNum) + mergeLimit, mergeSteps := uint64(snaptype.Erigon2MergeLimit), MergeSteps + if isRecent { + mergeLimit, mergeSteps = snaptype.Erigon2RecentMergeLimit, RecentMergeSteps } - for _, span := range []uint64{500_000, 100_000, 10_000} { + if r.to-r.from >= mergeLimit { + continue + } + for _, span := range mergeSteps { if r.to%span != 0 { continue } @@ -2012,7 +2201,7 @@ func (*Merger) FindMergeRanges(currentRanges []Range) (toMerge []Range) { break } } - slices.SortFunc(toMerge, func(i, j Range) bool { return i.from < j.from }) + slices.SortFunc(toMerge, func(i, j Range) int { return cmp.Compare(i.from, j.from) }) return toMerge } @@ -2094,7 +2283,7 @@ func (m *Merger) filesByRange(snapshots *RoSnapshots, from, to uint64) (map[snap } // Merge does merge segments in given ranges -func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges []Range, snapDir string, doIndex bool) error { +func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges []Range, snapDir string, doIndex bool, onMerge func(r Range) error, onDelete func(l []string) error) error { if len(mergeRanges) == 0 { return nil } @@ -2106,9 +2295,12 @@ func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges return err } - for _, t := range snaptype.AllSnapshotTypes { + for _, t := range snaptype.BlockSnapshotTypes { segName := snaptype.SegmentFileName(r.from, r.to, t) - f, _ := snaptype.ParseFileName(snapDir, segName) + f, ok := snaptype.ParseFileName(snapDir, segName) + if !ok { + continue + } if err := m.merge(ctx, toMerge[t], f.Path, logEvery); err != nil { return fmt.Errorf("mergeByAppendSegments: %w", err) } @@ -2123,11 +2315,20 @@ func (m *Merger) Merge(ctx context.Context, snapshots *RoSnapshots, mergeRanges return fmt.Errorf("ReopenSegments: %w", err) } snapshots.LogStat() - if m.notifier != nil { // notify about new snapshots of any size - m.notifier.OnNewSnapshot() - time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them + + if err := onMerge(r); err != nil { + return err + } + for _, t := range snaptype.BlockSnapshotTypes { + if len(toMerge[t]) == 0 { + continue + } + if err := onDelete(toMerge[t]); err != nil { + return err + } } - for _, t := range snaptype.AllSnapshotTypes { + time.Sleep(1 * time.Second) // i working on blocking API - to ensure client does not use old snapsthos - and then delete them + for _, t := range snaptype.BlockSnapshotTypes { m.removeOldFiles(toMerge[t], snapDir) } } @@ -2155,6 +2356,9 @@ func (m *Merger) merge(ctx context.Context, toMerge []string, targetFile string, } defer f.Close() + _, fName := filepath.Split(targetFile) + m.logger.Debug("[snapshots] merge", "file", fName) + for _, d := range cList { if err := d.WithReadAhead(func() error { g := d.MakeGetter() @@ -2197,3 +2401,22 @@ func (m *Merger) removeOldFiles(toDel []string, snapDir string) { _ = os.Remove(f) } } + +func (sn *HeaderSegment) mappedSnapshot() *silkworm.MappedHeaderSnapshot { + segmentRegion := silkworm.NewMemoryMappedRegion(sn.seg.FilePath(), sn.seg.DataHandle(), sn.seg.Size()) + idxRegion := silkworm.NewMemoryMappedRegion(sn.idxHeaderHash.FilePath(), sn.idxHeaderHash.DataHandle(), sn.idxHeaderHash.Size()) + return silkworm.NewMappedHeaderSnapshot(segmentRegion, idxRegion) +} + +func (sn *BodySegment) mappedSnapshot() *silkworm.MappedBodySnapshot { + segmentRegion := silkworm.NewMemoryMappedRegion(sn.seg.FilePath(), sn.seg.DataHandle(), sn.seg.Size()) + idxRegion := silkworm.NewMemoryMappedRegion(sn.idxBodyNumber.FilePath(), sn.idxBodyNumber.DataHandle(), sn.idxBodyNumber.Size()) + return silkworm.NewMappedBodySnapshot(segmentRegion, idxRegion) +} + +func (sn *TxnSegment) mappedSnapshot() *silkworm.MappedTxnSnapshot { + segmentRegion := silkworm.NewMemoryMappedRegion(sn.Seg.FilePath(), sn.Seg.DataHandle(), sn.Seg.Size()) + idxTxnHashRegion := silkworm.NewMemoryMappedRegion(sn.IdxTxnHash.FilePath(), sn.IdxTxnHash.DataHandle(), sn.IdxTxnHash.Size()) + idxTxnHash2BlockRegion := silkworm.NewMemoryMappedRegion(sn.IdxTxnHash2BlockNum.FilePath(), sn.IdxTxnHash2BlockNum.DataHandle(), sn.IdxTxnHash2BlockNum.Size()) + return silkworm.NewMappedTxnSnapshot(segmentRegion, idxTxnHashRegion, idxTxnHash2BlockRegion) +} diff --git a/turbo/snapshotsync/freezeblocks/block_snapshots_test.go b/turbo/snapshotsync/freezeblocks/block_snapshots_test.go index ff70e2d7c4e..46690935591 100644 --- a/turbo/snapshotsync/freezeblocks/block_snapshots_test.go +++ b/turbo/snapshotsync/freezeblocks/block_snapshots_test.go @@ -6,6 +6,8 @@ import ( "testing" "testing/fstest" + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" "github.com/ledgerwatch/erigon-lib/compress" "github.com/ledgerwatch/erigon-lib/downloader/snaptype" "github.com/ledgerwatch/erigon-lib/recsplit" @@ -15,8 +17,6 @@ import ( "github.com/ledgerwatch/erigon/common/math" "github.com/ledgerwatch/erigon/eth/ethconfig" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" ) func createTestSegmentFile(t *testing.T, from, to uint64, name snaptype.Type, dir string, logger log.Logger) { @@ -38,7 +38,7 @@ func createTestSegmentFile(t *testing.T, from, to uint64, name snaptype.Type, di defer idx.Close() err = idx.AddKey([]byte{1}, 0) require.NoError(t, err) - err = idx.Build() + err = idx.Build(context.Background()) require.NoError(t, err) if name == snaptype.Transactions { idx, err := recsplit.NewRecSplit(recsplit.RecSplitArgs{ @@ -51,34 +51,92 @@ func createTestSegmentFile(t *testing.T, from, to uint64, name snaptype.Type, di require.NoError(t, err) err = idx.AddKey([]byte{1}, 0) require.NoError(t, err) - err = idx.Build() + err = idx.Build(context.Background()) require.NoError(t, err) defer idx.Close() } } +func TestFindMergeRange(t *testing.T) { + merger := NewMerger("x", 1, log.LvlInfo, nil, params.MainnetChainConfig, nil) + t.Run("big", func(t *testing.T) { + var ranges []Range + for i := 0; i < 24; i++ { + ranges = append(ranges, Range{from: uint64(i * 100_000), to: uint64((i + 1) * 100_000)}) + } + found := merger.FindMergeRanges(ranges, uint64(24*100_000)) + + expect := []Range{ + {0, 500_000}, + {500_000, 1_000_000}, + {1_000_000, 1_500_000}, + } + require.Equal(t, Ranges(expect).String(), Ranges(found).String()) + }) + + t.Run("small", func(t *testing.T) { + var ranges Ranges + for i := 0; i < 240; i++ { + ranges = append(ranges, Range{from: uint64(i * 10_000), to: uint64((i + 1) * 10_000)}) + } + found := merger.FindMergeRanges(ranges, uint64(240*10_000)) + + expect := Ranges{ + {0, 500_000}, + {500_000, 1_000_000}, + {1_000_000, 1_500_000}, + {1_500_000, 1_600_000}, + {1_600_000, 1_700_000}, + {1_700_000, 1_800_000}, + {1_800_000, 1_900_000}, + {1_900_000, 2_000_000}, + {2_000_000, 2_100_000}, + {2_100_000, 2_200_000}, + {2_200_000, 2_300_000}, + {2_300_000, 2_400_000}, + } + + require.Equal(t, expect.String(), Ranges(found).String()) + }) + + t.Run("IsRecent", func(t *testing.T) { + require.True(t, Range{500_000, 599_000}.IsRecent(1_000_000)) + require.True(t, Range{500_000, 501_000}.IsRecent(1_000_000)) + require.False(t, Range{499_000, 500_000}.IsRecent(1_000_000)) + require.False(t, Range{400_000, 500_000}.IsRecent(1_000_000)) + require.False(t, Range{400_000, 401_000}.IsRecent(1_000_000)) + + require.False(t, Range{500_000, 501_000}.IsRecent(1_100_000)) + }) + +} + func TestMergeSnapshots(t *testing.T) { logger := log.New() dir, require := t.TempDir(), require.New(t) createFile := func(from, to uint64) { - for _, snT := range snaptype.AllSnapshotTypes { + for _, snT := range snaptype.BlockSnapshotTypes { createTestSegmentFile(t, from, to, snT, dir, logger) } } - N := uint64(7) - createFile(0, 500_000) - for i := uint64(500_000); i < 500_000+N*100_000; i += 100_000 { + N := uint64(17) + createFile(0, snaptype.Erigon2MergeLimit) + for i := uint64(snaptype.Erigon2MergeLimit); i < snaptype.Erigon2MergeLimit+N*100_000; i += 100_000 { createFile(i, i+100_000) } s := NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: true}, dir, logger) defer s.Close() require.NoError(s.ReopenFolder()) { - merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, nil, logger) - ranges := merger.FindMergeRanges(s.Ranges()) + merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, logger) + ranges := merger.FindMergeRanges(s.Ranges(), s.SegmentsMax()) require.True(len(ranges) > 0) - err := merger.Merge(context.Background(), s, ranges, s.Dir(), false) + err := merger.Merge(context.Background(), s, ranges, s.Dir(), false, func(r Range) error { + return nil + }, func(l []string) error { + return nil + }) require.NoError(err) } @@ -90,14 +148,18 @@ func TestMergeSnapshots(t *testing.T) { require.Equal(5, a) { - merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, nil, logger) - ranges := merger.FindMergeRanges(s.Ranges()) + merger := NewMerger(dir, 1, log.LvlInfo, nil, params.MainnetChainConfig, logger) + ranges := merger.FindMergeRanges(s.Ranges(), s.SegmentsMax()) require.True(len(ranges) == 0) - err := merger.Merge(context.Background(), s, ranges, s.Dir(), false) + err := merger.Merge(context.Background(), s, ranges, s.Dir(), false, func(r Range) error { + return nil + }, func(l []string) error { + return nil + }) require.NoError(err) } - expectedFileName = snaptype.SegmentFileName(1_100_000, 1_200_000, snaptype.Transactions) + expectedFileName = snaptype.SegmentFileName(1_800_000, 1_900_000, snaptype.Transactions) d, err = compress.NewDecompressor(filepath.Join(dir, expectedFileName)) require.NoError(err) defer d.Close() @@ -127,7 +189,7 @@ func TestCanRetire(t *testing.T) { func TestOpenAllSnapshot(t *testing.T) { logger := log.New() dir, require := t.TempDir(), require.New(t) - chainSnapshotCfg := snapcfg.KnownCfg(networkname.MainnetChainName, nil, nil) + chainSnapshotCfg := snapcfg.KnownCfg(networkname.MainnetChainName) chainSnapshotCfg.ExpectBlocks = math.MaxUint64 cfg := ethconfig.BlocksFreezing{Enabled: true} createFile := func(from, to uint64, name snaptype.Type) { createTestSegmentFile(t, from, to, name, dir, logger) } @@ -212,23 +274,23 @@ func TestParseCompressedFileName(t *testing.T) { require.NoError(err) return s.Name() } - _, err := snaptype.ParseFileName("", stat("a")) - require.Error(err) - _, err = snaptype.ParseFileName("", stat("1-a")) - require.Error(err) - _, err = snaptype.ParseFileName("", stat("1-2-a")) - require.Error(err) - _, err = snaptype.ParseFileName("", stat("1-2-bodies.info")) - require.Error(err) - _, err = snaptype.ParseFileName("", stat("1-2-bodies.seg")) - require.Error(err) - _, err = snaptype.ParseFileName("", stat("v2-1-2-bodies.seg")) - require.Error(err) - _, err = snaptype.ParseFileName("", stat("v0-1-2-bodies.seg")) - require.Error(err) - - f, err := snaptype.ParseFileName("", stat("v1-1-2-bodies.seg")) - require.NoError(err) + _, ok := snaptype.ParseFileName("", stat("a")) + require.False(ok) + _, ok = snaptype.ParseFileName("", stat("1-a")) + require.False(ok) + _, ok = snaptype.ParseFileName("", stat("1-2-a")) + require.False(ok) + _, ok = snaptype.ParseFileName("", stat("1-2-bodies.info")) + require.False(ok) + _, ok = snaptype.ParseFileName("", stat("1-2-bodies.seg")) + require.False(ok) + _, ok = snaptype.ParseFileName("", stat("v2-1-2-bodies.seg")) + require.True(ok) + _, ok = snaptype.ParseFileName("", stat("v0-1-2-bodies.seg")) + require.True(ok) + + f, ok := snaptype.ParseFileName("", stat("v1-1-2-bodies.seg")) + require.True(ok) require.Equal(f.T, snaptype.Bodies) require.Equal(1_000, int(f.From)) require.Equal(2_000, int(f.To)) diff --git a/turbo/snapshotsync/freezeblocks/bor_snapshots.go b/turbo/snapshotsync/freezeblocks/bor_snapshots.go new file mode 100644 index 00000000000..5492b99ba4d --- /dev/null +++ b/turbo/snapshotsync/freezeblocks/bor_snapshots.go @@ -0,0 +1,1210 @@ +package freezeblocks + +import ( + "bytes" + "context" + "encoding/binary" + "errors" + "fmt" + "os" + "path" + "path/filepath" + "reflect" + "runtime" + "sync" + "sync/atomic" + "time" + + "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" + common2 "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/common/hexutility" + "github.com/ledgerwatch/erigon-lib/common/length" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/erigon/cmd/hack/tool/fromdb" + "github.com/ledgerwatch/erigon/core/rawdb" + "github.com/ledgerwatch/erigon/core/types" + "github.com/ledgerwatch/erigon/eth/ethconfig" + "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/log/v3" + "golang.org/x/exp/slices" +) + +const ( + spanLength = 6400 // Number of blocks in a span + zerothSpanEnd = 255 // End block of 0th span +) + +type BorEventSegment struct { + seg *compress.Decompressor // value: event_rlp + IdxBorTxnHash *recsplit.Index // bor_transaction_hash -> bor_event_segment_offset + ranges Range +} + +func (sn *BorEventSegment) closeIdx() { + if sn.IdxBorTxnHash != nil { + sn.IdxBorTxnHash.Close() + sn.IdxBorTxnHash = nil + } +} +func (sn *BorEventSegment) closeSeg() { + if sn.seg != nil { + sn.seg.Close() + sn.seg = nil + } +} +func (sn *BorEventSegment) close() { + sn.closeSeg() + sn.closeIdx() +} +func (sn *BorEventSegment) reopenSeg(dir string) (err error) { + sn.closeSeg() + fileName := snaptype.SegmentFileName(sn.ranges.from, sn.ranges.to, snaptype.BorEvents) + sn.seg, err = compress.NewDecompressor(path.Join(dir, fileName)) + if err != nil { + return fmt.Errorf("%w, fileName: %s", err, fileName) + } + return nil +} +func (sn *BorEventSegment) reopenIdx(dir string) (err error) { + sn.closeIdx() + if sn.seg == nil { + return nil + } + + fileName := snaptype.IdxFileName(sn.ranges.from, sn.ranges.to, snaptype.BorEvents.String()) + sn.IdxBorTxnHash, err = recsplit.OpenIndex(path.Join(dir, fileName)) + if err != nil { + return fmt.Errorf("%w, fileName: %s", err, fileName) + } + return nil +} + +func (sn *BorEventSegment) reopenIdxIfNeed(dir string, optimistic bool) (err error) { + if sn.IdxBorTxnHash != nil { + return nil + } + err = sn.reopenIdx(dir) + if err != nil { + if !errors.Is(err, os.ErrNotExist) { + if optimistic { + log.Warn("[snapshots] open index", "err", err) + } else { + return err + } + } + } + return nil +} + +type borEventSegments struct { + lock sync.RWMutex + segments []*BorEventSegment +} + +type BorSpanSegment struct { + seg *compress.Decompressor // value: span_json + idx *recsplit.Index // span_id -> offset + ranges Range +} + +func (sn *BorSpanSegment) closeIdx() { + if sn.idx != nil { + sn.idx.Close() + sn.idx = nil + } +} +func (sn *BorSpanSegment) closeSeg() { + if sn.seg != nil { + sn.seg.Close() + sn.seg = nil + } +} +func (sn *BorSpanSegment) close() { + sn.closeSeg() + sn.closeIdx() +} +func (sn *BorSpanSegment) reopenSeg(dir string) (err error) { + sn.closeSeg() + fileName := snaptype.SegmentFileName(sn.ranges.from, sn.ranges.to, snaptype.BorSpans) + sn.seg, err = compress.NewDecompressor(path.Join(dir, fileName)) + if err != nil { + return fmt.Errorf("%w, fileName: %s", err, fileName) + } + return nil +} +func (sn *BorSpanSegment) reopenIdx(dir string) (err error) { + sn.closeIdx() + if sn.seg == nil { + return nil + } + fileName := snaptype.IdxFileName(sn.ranges.from, sn.ranges.to, snaptype.BorSpans.String()) + sn.idx, err = recsplit.OpenIndex(path.Join(dir, fileName)) + if err != nil { + return fmt.Errorf("%w, fileName: %s", err, fileName) + } + return nil +} + +func (sn *BorSpanSegment) reopenIdxIfNeed(dir string, optimistic bool) (err error) { + if sn.idx != nil { + return nil + } + err = sn.reopenIdx(dir) + if err != nil { + if !errors.Is(err, os.ErrNotExist) { + if optimistic { + log.Warn("[snapshots] open index", "err", err) + } else { + return err + } + } + } + return nil +} + +type borSpanSegments struct { + lock sync.RWMutex + segments []*BorSpanSegment +} + +func (br *BlockRetire) RetireBorBlocks(ctx context.Context, blockFrom, blockTo uint64, lvl log.Lvl, seedNewSnapshots func(downloadRequest []services.DownloadRequest) error, onDelete func(l []string) error) error { + chainConfig := fromdb.ChainConfig(br.db) + notifier, logger, blockReader, tmpDir, db, workers := br.notifier, br.logger, br.blockReader, br.tmpDir, br.db, br.workers + logger.Log(lvl, "[bor snapshots] Retire Bor Blocks", "range", fmt.Sprintf("%dk-%dk", blockFrom/1000, blockTo/1000)) + snapshots := br.borSnapshots() + firstTxNum := blockReader.(*BlockReader).FirstTxNumNotInSnapshots() + + if err := DumpBorBlocks(ctx, chainConfig, blockFrom, blockTo, snaptype.Erigon2MergeLimit, tmpDir, snapshots.Dir(), firstTxNum, db, workers, lvl, logger, blockReader); err != nil { + return fmt.Errorf("DumpBorBlocks: %w", err) + } + if err := snapshots.ReopenFolder(); err != nil { + return fmt.Errorf("reopen: %w", err) + } + snapshots.LogStat() + if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size + notifier.OnNewSnapshot() + } + merger := NewBorMerger(tmpDir, workers, lvl, db, chainConfig, notifier, logger) + rangesToMerge := merger.FindMergeRanges(snapshots.Ranges(), snapshots.BlocksAvailable()) + if len(rangesToMerge) == 0 { + return nil + } + onMerge := func(r Range) error { + if notifier != nil && !reflect.ValueOf(notifier).IsNil() { // notify about new snapshots of any size + notifier.OnNewSnapshot() + } + + if seedNewSnapshots != nil { + downloadRequest := []services.DownloadRequest{ + services.NewDownloadRequest("", ""), + } + if err := seedNewSnapshots(downloadRequest); err != nil { + return err + } + } + return nil + } + err := merger.Merge(ctx, snapshots, rangesToMerge, snapshots.Dir(), true /* doIndex */, onMerge, onDelete) + if err != nil { + return err + } + return nil +} + +func DumpBorBlocks(ctx context.Context, chainConfig *chain.Config, blockFrom, blockTo, blocksPerFile uint64, tmpDir, snapDir string, firstTxNum uint64, chainDB kv.RoDB, workers int, lvl log.Lvl, logger log.Logger, blockReader services.FullBlockReader) error { + if blocksPerFile == 0 { + return nil + } + + for i := blockFrom; i < blockTo; i = chooseSegmentEnd(i, blockTo, blocksPerFile) { + if err := dumpBorBlocksRange(ctx, i, chooseSegmentEnd(i, blockTo, blocksPerFile), tmpDir, snapDir, firstTxNum, chainDB, *chainConfig, workers, lvl, logger, blockReader); err != nil { + return err + } + } + return nil +} + +func dumpBorBlocksRange(ctx context.Context, blockFrom, blockTo uint64, tmpDir, snapDir string, firstTxNum uint64, chainDB kv.RoDB, chainConfig chain.Config, workers int, lvl log.Lvl, logger log.Logger, blockReader services.FullBlockReader) error { + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + + { + segName := snaptype.SegmentFileName(blockFrom, blockTo, snaptype.BorEvents) + f, _ := snaptype.ParseFileName(snapDir, segName) + + sn, err := compress.NewCompressor(ctx, "Snapshot BorEvents", f.Path, tmpDir, compress.MinPatternScore, workers, log.LvlTrace, logger) + if err != nil { + return err + } + defer sn.Close() + if err := DumpBorEvents(ctx, chainDB, blockFrom, blockTo, workers, lvl, logger, func(v []byte) error { + return sn.AddWord(v) + }); err != nil { + return fmt.Errorf("DumpBorEvents: %w", err) + } + if err := sn.Compress(); err != nil { + return fmt.Errorf("compress: %w", err) + } + + p := &background.Progress{} + if err := buildIdx(ctx, f, &chainConfig, tmpDir, p, lvl, logger); err != nil { + return err + } + } + { + segName := snaptype.SegmentFileName(blockFrom, blockTo, snaptype.BorSpans) + f, _ := snaptype.ParseFileName(snapDir, segName) + + sn, err := compress.NewCompressor(ctx, "Snapshot BorSpans", f.Path, tmpDir, compress.MinPatternScore, workers, log.LvlTrace, logger) + if err != nil { + return err + } + defer sn.Close() + if err := DumpBorSpans(ctx, chainDB, blockFrom, blockTo, workers, lvl, logger, func(v []byte) error { + return sn.AddWord(v) + }); err != nil { + return fmt.Errorf("DumpBorSpans: %w", err) + } + if err := sn.Compress(); err != nil { + return fmt.Errorf("compress: %w", err) + } + + p := &background.Progress{} + if err := buildIdx(ctx, f, &chainConfig, tmpDir, p, lvl, logger); err != nil { + return err + } + } + return nil +} + +func dumpBorEventRange(startEventId, endEventId uint64, tx kv.Tx, blockNum uint64, blockHash common2.Hash, collect func([]byte) error) error { + var blockNumBuf [8]byte + var eventIdBuf [8]byte + txnHash := types.ComputeBorTxHash(blockNum, blockHash) + binary.BigEndian.PutUint64(blockNumBuf[:], blockNum) + for eventId := startEventId; eventId < endEventId; eventId++ { + binary.BigEndian.PutUint64(eventIdBuf[:], eventId) + event, err := tx.GetOne(kv.BorEvents, eventIdBuf[:]) + if err != nil { + return err + } + snapshotRecord := make([]byte, len(event)+length.Hash+length.BlockNum+8) + copy(snapshotRecord, txnHash[:]) + copy(snapshotRecord[length.Hash:], blockNumBuf[:]) + binary.BigEndian.PutUint64(snapshotRecord[length.Hash+length.BlockNum:], eventId) + copy(snapshotRecord[length.Hash+length.BlockNum+8:], event) + if err := collect(snapshotRecord); err != nil { + return err + } + } + return nil +} + +// DumpBorEvents - [from, to) +func DumpBorEvents(ctx context.Context, db kv.RoDB, blockFrom, blockTo uint64, workers int, lvl log.Lvl, logger log.Logger, collect func([]byte) error) error { + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + + from := hexutility.EncodeTs(blockFrom) + var first bool = true + var prevBlockNum uint64 + var startEventId uint64 + var lastEventId uint64 + if err := kv.BigChunks(db, kv.BorEventNums, from, func(tx kv.Tx, blockNumBytes, eventIdBytes []byte) (bool, error) { + blockNum := binary.BigEndian.Uint64(blockNumBytes) + if first { + startEventId = binary.BigEndian.Uint64(eventIdBytes) + first = false + prevBlockNum = blockNum + } else if blockNum != prevBlockNum { + endEventId := binary.BigEndian.Uint64(eventIdBytes) + blockHash, e := rawdb.ReadCanonicalHash(tx, prevBlockNum) + if e != nil { + return false, e + } + if e := dumpBorEventRange(startEventId, endEventId, tx, prevBlockNum, blockHash, collect); e != nil { + return false, e + } + startEventId = endEventId + prevBlockNum = blockNum + } + if blockNum >= blockTo { + return false, nil + } + lastEventId = binary.BigEndian.Uint64(eventIdBytes) + select { + case <-ctx.Done(): + return false, ctx.Err() + case <-logEvery.C: + var m runtime.MemStats + if lvl >= log.LvlInfo { + dbg.ReadMemStats(&m) + } + logger.Log(lvl, "[bor snapshots] Dumping bor events", "block num", blockNum, + "alloc", common2.ByteCount(m.Alloc), "sys", common2.ByteCount(m.Sys), + ) + default: + } + return true, nil + }); err != nil { + return err + } + if lastEventId > startEventId { + if err := db.View(ctx, func(tx kv.Tx) error { + blockHash, e := rawdb.ReadCanonicalHash(tx, prevBlockNum) + if e != nil { + return e + } + return dumpBorEventRange(startEventId, lastEventId+1, tx, prevBlockNum, blockHash, collect) + }); err != nil { + return err + } + } + return nil +} + +// DumpBorSpans - [from, to) +func DumpBorSpans(ctx context.Context, db kv.RoDB, blockFrom, blockTo uint64, workers int, lvl log.Lvl, logger log.Logger, collect func([]byte) error) error { + logEvery := time.NewTicker(20 * time.Second) + defer logEvery.Stop() + var spanFrom, spanTo uint64 + if blockFrom > zerothSpanEnd { + spanFrom = 1 + (blockFrom-zerothSpanEnd-1)/spanLength + } + if blockTo > zerothSpanEnd { + spanTo = 1 + (blockTo-zerothSpanEnd-1)/spanLength + } + from := hexutility.EncodeTs(spanFrom) + if err := kv.BigChunks(db, kv.BorSpans, from, func(tx kv.Tx, spanIdBytes, spanBytes []byte) (bool, error) { + spanId := binary.BigEndian.Uint64(spanIdBytes) + if spanId >= spanTo { + return false, nil + } + if e := collect(spanBytes); e != nil { + return false, e + } + select { + case <-ctx.Done(): + return false, ctx.Err() + case <-logEvery.C: + var m runtime.MemStats + if lvl >= log.LvlInfo { + dbg.ReadMemStats(&m) + } + logger.Log(lvl, "[bor snapshots] Dumping bor spans", "spanId", spanId, + "alloc", common2.ByteCount(m.Alloc), "sys", common2.ByteCount(m.Sys), + ) + default: + } + return true, nil + }); err != nil { + return err + } + return nil +} + +func BorEventsIdx(ctx context.Context, segmentFilePath string, blockFrom, blockTo uint64, snapDir string, tmpDir string, p *background.Progress, lvl log.Lvl, logger log.Logger) (err error) { + defer func() { + if rec := recover(); rec != nil { + err = fmt.Errorf("BorEventsIdx: at=%d-%d, %v, %s", blockFrom, blockTo, rec, dbg.Stack()) + } + }() + // Calculate how many records there will be in the index + d, err := compress.NewDecompressor(segmentFilePath) + if err != nil { + return err + } + defer d.Close() + g := d.MakeGetter() + var blockNumBuf [length.BlockNum]byte + var first bool = true + word := make([]byte, 0, 4096) + var blockCount int + var baseEventId uint64 + for g.HasNext() { + word, _ = g.Next(word[:0]) + if first || !bytes.Equal(blockNumBuf[:], word[length.Hash:length.Hash+length.BlockNum]) { + blockCount++ + copy(blockNumBuf[:], word[length.Hash:length.Hash+length.BlockNum]) + } + if first { + baseEventId = binary.BigEndian.Uint64(word[length.Hash+length.BlockNum : length.Hash+length.BlockNum+8]) + first = false + } + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + } + var idxFilePath = filepath.Join(snapDir, snaptype.IdxFileName(blockFrom, blockTo, snaptype.BorEvents.String())) + + rs, err := recsplit.NewRecSplit(recsplit.RecSplitArgs{ + KeyCount: blockCount, + Enums: blockCount > 0, + BucketSize: 2000, + LeafSize: 8, + TmpDir: tmpDir, + IndexFile: idxFilePath, + BaseDataID: baseEventId, + }, logger) + if err != nil { + return err + } + rs.LogLvl(log.LvlDebug) + + defer d.EnableMadvNormal().DisableReadAhead() +RETRY: + g.Reset(0) + first = true + var i, offset, nextPos uint64 + for g.HasNext() { + word, nextPos = g.Next(word[:0]) + i++ + if first || !bytes.Equal(blockNumBuf[:], word[length.Hash:length.Hash+length.BlockNum]) { + if err = rs.AddKey(word[:length.Hash], offset); err != nil { + return err + } + copy(blockNumBuf[:], word[length.Hash:length.Hash+length.BlockNum]) + } + if first { + first = false + } + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + offset = nextPos + } + if err = rs.Build(ctx); err != nil { + if errors.Is(err, recsplit.ErrCollision) { + logger.Info("Building recsplit. Collision happened. It's ok. Restarting with another salt...", "err", err) + rs.ResetNextSalt() + goto RETRY + } + return err + } + + return nil +} + +func BorSpansIdx(ctx context.Context, segmentFilePath string, blockFrom, blockTo uint64, snapDir string, tmpDir string, p *background.Progress, lvl log.Lvl, logger log.Logger) (err error) { + defer func() { + if rec := recover(); rec != nil { + err = fmt.Errorf("BorSpansIdx: at=%d-%d, %v, %s", blockFrom, blockTo, rec, dbg.Stack()) + } + }() + // Calculate how many records there will be in the index + d, err := compress.NewDecompressor(segmentFilePath) + if err != nil { + return err + } + defer d.Close() + g := d.MakeGetter() + var idxFilePath = filepath.Join(snapDir, snaptype.IdxFileName(blockFrom, blockTo, snaptype.BorSpans.String())) + + var baseSpanId uint64 + if blockFrom > zerothSpanEnd { + baseSpanId = 1 + (blockFrom-zerothSpanEnd-1)/spanLength + } + + rs, err := recsplit.NewRecSplit(recsplit.RecSplitArgs{ + KeyCount: d.Count(), + Enums: d.Count() > 0, + BucketSize: 2000, + LeafSize: 8, + TmpDir: tmpDir, + IndexFile: idxFilePath, + BaseDataID: baseSpanId, + }, logger) + if err != nil { + return err + } + rs.LogLvl(log.LvlDebug) + + defer d.EnableMadvNormal().DisableReadAhead() +RETRY: + g.Reset(0) + var i, offset, nextPos uint64 + var key [8]byte + for g.HasNext() { + nextPos, _ = g.Skip() + binary.BigEndian.PutUint64(key[:], i) + i++ + if err = rs.AddKey(key[:], offset); err != nil { + return err + } + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + offset = nextPos + } + if err = rs.Build(ctx); err != nil { + if errors.Is(err, recsplit.ErrCollision) { + logger.Info("Building recsplit. Collision happened. It's ok. Restarting with another salt...", "err", err) + rs.ResetNextSalt() + goto RETRY + } + return err + } + + return nil +} + +type BorRoSnapshots struct { + indicesReady atomic.Bool + segmentsReady atomic.Bool + + Events *borEventSegments + Spans *borSpanSegments + + dir string + segmentsMax atomic.Uint64 // all types of .seg files are available - up to this number + idxMax atomic.Uint64 // all types of .idx files are available - up to this number + cfg ethconfig.BlocksFreezing + logger log.Logger +} + +// NewBorRoSnapshots - opens all bor snapshots. But to simplify everything: +// - it opens snapshots only on App start and immutable after +// - all snapshots of given blocks range must exist - to make this blocks range available +// - gaps are not allowed +// - segment have [from:to) semantic +func NewBorRoSnapshots(cfg ethconfig.BlocksFreezing, snapDir string, logger log.Logger) *BorRoSnapshots { + return &BorRoSnapshots{dir: snapDir, cfg: cfg, Events: &borEventSegments{}, Spans: &borSpanSegments{}, logger: logger} +} + +func (s *BorRoSnapshots) Cfg() ethconfig.BlocksFreezing { return s.cfg } +func (s *BorRoSnapshots) Dir() string { return s.dir } +func (s *BorRoSnapshots) SegmentsReady() bool { return s.segmentsReady.Load() } +func (s *BorRoSnapshots) IndicesReady() bool { return s.indicesReady.Load() } +func (s *BorRoSnapshots) IndicesMax() uint64 { return s.idxMax.Load() } +func (s *BorRoSnapshots) SegmentsMax() uint64 { return s.segmentsMax.Load() } +func (s *BorRoSnapshots) BlocksAvailable() uint64 { + return cmp.Min(s.segmentsMax.Load(), s.idxMax.Load()) +} +func (s *BorRoSnapshots) LogStat() { + var m runtime.MemStats + dbg.ReadMemStats(&m) + s.logger.Info("[bor snapshots] Blocks Stat", + "blocks", fmt.Sprintf("%dk", (s.SegmentsMax()+1)/1000), + "indices", fmt.Sprintf("%dk", (s.IndicesMax()+1)/1000), + "alloc", common2.ByteCount(m.Alloc), "sys", common2.ByteCount(m.Sys)) +} + +func BorSegments(dir string) (res []snaptype.FileInfo, missingSnapshots []Range, err error) { + list, err := snaptype.Segments(dir) + if err != nil { + return nil, missingSnapshots, err + } + { + var l []snaptype.FileInfo + var m []Range + for _, f := range list { + if f.T != snaptype.BorEvents { + continue + } + l = append(l, f) + } + l, m = noGaps(noOverlaps(borSegmentsMustExist(dir, l))) + res = append(res, l...) + missingSnapshots = append(missingSnapshots, m...) + } + { + var l []snaptype.FileInfo + for _, f := range list { + if f.T != snaptype.BorSpans { + continue + } + l = append(l, f) + } + l, _ = noGaps(noOverlaps(borSegmentsMustExist(dir, l))) + res = append(res, l...) + } + + return res, missingSnapshots, nil +} + +func (s *BorRoSnapshots) EnsureExpectedBlocksAreAvailable(cfg *snapcfg.Cfg) error { + if s.BlocksAvailable() < cfg.ExpectBlocks { + return fmt.Errorf("app must wait until all expected bor snapshots are available. Expected: %d, Available: %d", cfg.ExpectBlocks, s.BlocksAvailable()) + } + return nil +} + +// DisableReadAhead - usage: `defer d.EnableReadAhead().DisableReadAhead()`. Please don't use this funcs without `defer` to avoid leak. +func (s *BorRoSnapshots) DisableReadAhead() { + s.Events.lock.RLock() + defer s.Events.lock.RUnlock() + s.Spans.lock.RLock() + defer s.Spans.lock.RUnlock() + for _, sn := range s.Events.segments { + sn.seg.DisableReadAhead() + } + for _, sn := range s.Spans.segments { + sn.seg.DisableReadAhead() + } +} +func (s *BorRoSnapshots) EnableReadAhead() *BorRoSnapshots { + s.Events.lock.RLock() + defer s.Events.lock.RUnlock() + s.Spans.lock.RLock() + defer s.Spans.lock.RUnlock() + for _, sn := range s.Events.segments { + sn.seg.EnableReadAhead() + } + for _, sn := range s.Spans.segments { + sn.seg.EnableReadAhead() + } + return s +} +func (s *BorRoSnapshots) EnableMadvWillNeed() *BorRoSnapshots { + s.Events.lock.RLock() + defer s.Events.lock.RUnlock() + s.Spans.lock.RLock() + defer s.Spans.lock.RUnlock() + for _, sn := range s.Events.segments { + sn.seg.EnableWillNeed() + } + for _, sn := range s.Spans.segments { + sn.seg.EnableWillNeed() + } + return s +} +func (s *BorRoSnapshots) EnableMadvNormal() *BorRoSnapshots { + s.Events.lock.RLock() + defer s.Events.lock.RUnlock() + s.Spans.lock.RLock() + defer s.Spans.lock.RUnlock() + for _, sn := range s.Events.segments { + sn.seg.EnableMadvNormal() + } + for _, sn := range s.Spans.segments { + sn.seg.EnableMadvNormal() + } + return s +} + +func (s *BorRoSnapshots) idxAvailability() uint64 { + var events, spans uint64 + for _, seg := range s.Events.segments { + if seg.IdxBorTxnHash == nil { + break + } + events = seg.ranges.to - 1 + } + for _, seg := range s.Spans.segments { + if seg.idx == nil { + break + } + spans = seg.ranges.to - 1 + } + return cmp.Min(events, spans) +} + +// OptimisticReopenWithDB - optimistically open snapshots (ignoring error), useful at App startup because: +// - user must be able: delete any snapshot file and Erigon will self-heal by re-downloading +// - RPC return Nil for historical blocks if snapshots are not open +func (s *BorRoSnapshots) OptimisticReopenWithDB(db kv.RoDB) { + _ = db.View(context.Background(), func(tx kv.Tx) error { + snList, _, err := rawdb.ReadSnapshots(tx) + if err != nil { + return err + } + return s.ReopenList(snList, true) + }) +} + +func (s *BorRoSnapshots) Files() (list []string) { + s.Events.lock.RLock() + defer s.Events.lock.RUnlock() + s.Spans.lock.RLock() + defer s.Spans.lock.RUnlock() + max := s.BlocksAvailable() + for _, seg := range s.Events.segments { + if seg.seg == nil { + continue + } + if seg.ranges.from > max { + continue + } + _, fName := filepath.Split(seg.seg.FilePath()) + list = append(list, fName) + } + for _, seg := range s.Spans.segments { + if seg.seg == nil { + continue + } + if seg.ranges.from > max { + continue + } + _, fName := filepath.Split(seg.seg.FilePath()) + list = append(list, fName) + } + slices.Sort(list) + return list +} + +// ReopenList stops on optimistic=false, continue opening files on optimistic=true +func (s *BorRoSnapshots) ReopenList(fileNames []string, optimistic bool) error { + s.Events.lock.Lock() + defer s.Events.lock.Unlock() + s.Spans.lock.Lock() + defer s.Spans.lock.Unlock() + + s.closeWhatNotInList(fileNames) + var segmentsMax uint64 + var segmentsMaxSet bool +Loop: + for _, fName := range fileNames { + f, ok := snaptype.ParseFileName(s.dir, fName) + if !ok { + s.logger.Trace("BorRoSnapshots.ReopenList: skip", "file", fName) + continue + } + + var processed bool = true + switch f.T { + case snaptype.BorEvents: + var sn *BorEventSegment + var exists bool + for _, sn2 := range s.Events.segments { + if sn2.seg == nil { // it's ok if some segment was not able to open + continue + } + if fName == sn2.seg.FileName() { + sn = sn2 + exists = true + break + } + } + if !exists { + sn = &BorEventSegment{ranges: Range{f.From, f.To}} + } + if err := sn.reopenSeg(s.dir); err != nil { + if errors.Is(err, os.ErrNotExist) { + if optimistic { + continue Loop + } else { + break Loop + } + } + if optimistic { + s.logger.Warn("[bor snapshots] open segment", "err", err) + continue Loop + } else { + return err + } + } + + if !exists { + // it's possible to iterate over .seg file even if you don't have index + // then make segment availabe even if index open may fail + s.Events.segments = append(s.Events.segments, sn) + } + if err := sn.reopenIdxIfNeed(s.dir, optimistic); err != nil { + return err + } + case snaptype.BorSpans: + var sn *BorSpanSegment + var exists bool + for _, sn2 := range s.Spans.segments { + if sn2.seg == nil { // it's ok if some segment was not able to open + continue + } + if fName == sn2.seg.FileName() { + sn = sn2 + exists = true + break + } + } + if !exists { + sn = &BorSpanSegment{ranges: Range{f.From, f.To}} + } + if err := sn.reopenSeg(s.dir); err != nil { + if errors.Is(err, os.ErrNotExist) { + if optimistic { + continue Loop + } else { + break Loop + } + } + if optimistic { + s.logger.Warn("[bor snapshots] open segment", "err", err) + continue Loop + } else { + return err + } + } + + if !exists { + // it's possible to iterate over .seg file even if you don't have index + // then make segment availabe even if index open may fail + s.Spans.segments = append(s.Spans.segments, sn) + } + if err := sn.reopenIdxIfNeed(s.dir, optimistic); err != nil { + return err + } + default: + processed = false + } + + if processed { + if f.To > 0 { + segmentsMax = f.To - 1 + } else { + segmentsMax = 0 + } + segmentsMaxSet = true + } + } + if segmentsMaxSet { + s.segmentsMax.Store(segmentsMax) + } + s.segmentsReady.Store(true) + s.idxMax.Store(s.idxAvailability()) + s.indicesReady.Store(true) + + return nil +} + +func (s *BorRoSnapshots) Ranges() (ranges []Range) { + view := s.View() + defer view.Close() + + for _, sn := range view.Events() { + ranges = append(ranges, sn.ranges) + } + return ranges +} + +func (s *BorRoSnapshots) OptimisticalyReopenFolder() { _ = s.ReopenFolder() } +func (s *BorRoSnapshots) OptimisticalyReopenWithDB(db kv.RoDB) { _ = s.ReopenWithDB(db) } +func (s *BorRoSnapshots) ReopenFolder() error { + files, _, err := BorSegments(s.dir) + if err != nil { + return err + } + list := make([]string, 0, len(files)) + for _, f := range files { + _, fName := filepath.Split(f.Path) + list = append(list, fName) + } + return s.ReopenList(list, false) +} +func (s *BorRoSnapshots) ReopenWithDB(db kv.RoDB) error { + if err := db.View(context.Background(), func(tx kv.Tx) error { + snList, _, err := rawdb.ReadSnapshots(tx) + if err != nil { + return err + } + return s.ReopenList(snList, true) + }); err != nil { + return err + } + return nil +} + +func (s *BorRoSnapshots) Close() { + s.Events.lock.Lock() + defer s.Events.lock.Unlock() + s.Spans.lock.Lock() + defer s.Spans.lock.Unlock() + s.closeWhatNotInList(nil) +} + +func (s *BorRoSnapshots) closeWhatNotInList(l []string) { +Loop1: + for i, sn := range s.Events.segments { + if sn.seg == nil { + continue Loop1 + } + _, name := filepath.Split(sn.seg.FilePath()) + for _, fName := range l { + if fName == name { + continue Loop1 + } + } + sn.close() + s.Events.segments[i] = nil + } +Loop2: + for i, sn := range s.Spans.segments { + if sn.seg == nil { + continue Loop2 + } + _, name := filepath.Split(sn.seg.FilePath()) + for _, fName := range l { + if fName == name { + continue Loop2 + } + } + sn.close() + s.Spans.segments[i] = nil + } + var i int + for i = 0; i < len(s.Events.segments) && s.Events.segments[i] != nil && s.Events.segments[i].seg != nil; i++ { + } + tail := s.Events.segments[i:] + s.Events.segments = s.Events.segments[:i] + for i = 0; i < len(tail); i++ { + if tail[i] != nil { + tail[i].close() + tail[i] = nil + } + } + for i = 0; i < len(s.Spans.segments) && s.Spans.segments[i] != nil && s.Spans.segments[i].seg != nil; i++ { + } + tailS := s.Spans.segments[i:] + s.Spans.segments = s.Spans.segments[:i] + for i = 0; i < len(tailS); i++ { + if tailS[i] != nil { + tailS[i].close() + tailS[i] = nil + } + } +} + +func (s *BorRoSnapshots) PrintDebug() { + s.Events.lock.RLock() + defer s.Events.lock.RUnlock() + s.Spans.lock.RLock() + defer s.Spans.lock.RUnlock() + fmt.Println(" == BorSnapshots, Event") + for _, sn := range s.Events.segments { + fmt.Printf("%d, %t\n", sn.ranges.from, sn.IdxBorTxnHash == nil) + } + fmt.Println(" == BorSnapshots, Span") + for _, sn := range s.Spans.segments { + fmt.Printf("%d, %t\n", sn.ranges.from, sn.idx == nil) + } +} + +type BorView struct { + s *BorRoSnapshots + closed bool +} + +func (s *BorRoSnapshots) View() *BorView { + v := &BorView{s: s} + v.s.Events.lock.RLock() + v.s.Spans.lock.RLock() + return v +} + +func (v *BorView) Close() { + if v.closed { + return + } + v.closed = true + v.s.Events.lock.RUnlock() + v.s.Spans.lock.RUnlock() +} +func (v *BorView) Events() []*BorEventSegment { return v.s.Events.segments } +func (v *BorView) Spans() []*BorSpanSegment { return v.s.Spans.segments } +func (v *BorView) EventsSegment(blockNum uint64) (*BorEventSegment, bool) { + for _, seg := range v.Events() { + if !(blockNum >= seg.ranges.from && blockNum < seg.ranges.to) { + continue + } + return seg, true + } + return nil, false +} +func (v *BorView) SpansSegment(blockNum uint64) (*BorSpanSegment, bool) { + for _, seg := range v.Spans() { + if !(blockNum >= seg.ranges.from && blockNum < seg.ranges.to) { + continue + } + return seg, true + } + return nil, false +} + +type BorMerger struct { + lvl log.Lvl + compressWorkers int + tmpDir string + chainConfig *chain.Config + chainDB kv.RoDB + notifier services.DBEventNotifier + logger log.Logger +} + +func NewBorMerger(tmpDir string, compressWorkers int, lvl log.Lvl, chainDB kv.RoDB, chainConfig *chain.Config, notifier services.DBEventNotifier, logger log.Logger) *BorMerger { + return &BorMerger{tmpDir: tmpDir, compressWorkers: compressWorkers, lvl: lvl, chainDB: chainDB, chainConfig: chainConfig, notifier: notifier, logger: logger} +} + +func (m *BorMerger) FindMergeRanges(currentRanges []Range, maxBlockNum uint64) (toMerge []Range) { + for i := len(currentRanges) - 1; i > 0; i-- { + r := currentRanges[i] + isRecent := r.IsRecent(maxBlockNum) + mergeLimit, mergeSteps := uint64(snaptype.Erigon2RecentMergeLimit), MergeSteps + if isRecent { + mergeLimit, mergeSteps = snaptype.Erigon2MergeLimit, RecentMergeSteps + } + + if r.to-r.from >= mergeLimit { + continue + } + for _, span := range mergeSteps { + if r.to%span != 0 { + continue + } + if r.to-r.from == span { + break + } + aggFrom := r.to - span + toMerge = append(toMerge, Range{from: aggFrom, to: r.to}) + for currentRanges[i].from > aggFrom { + i-- + } + break + } + } + slices.SortFunc(toMerge, func(i, j Range) int { return cmp.Compare(i.from, j.from) }) + return toMerge +} + +func (m *BorMerger) filesByRange(snapshots *BorRoSnapshots, from, to uint64) (map[snaptype.Type][]string, error) { + toMerge := map[snaptype.Type][]string{} + view := snapshots.View() + defer view.Close() + + eSegments := view.Events() + sSegments := view.Spans() + + for i, sn := range eSegments { + if sn.ranges.from < from { + continue + } + if sn.ranges.to > to { + break + } + toMerge[snaptype.BorEvents] = append(toMerge[snaptype.BorEvents], eSegments[i].seg.FilePath()) + toMerge[snaptype.BorSpans] = append(toMerge[snaptype.BorSpans], sSegments[i].seg.FilePath()) + } + + return toMerge, nil +} + +// Merge does merge segments in given ranges +func (m *BorMerger) Merge(ctx context.Context, snapshots *BorRoSnapshots, mergeRanges []Range, snapDir string, doIndex bool, onMerge func(r Range) error, onDelete func(l []string) error) error { + if len(mergeRanges) == 0 { + return nil + } + logEvery := time.NewTicker(30 * time.Second) + defer logEvery.Stop() + for _, r := range mergeRanges { + toMerge, err := m.filesByRange(snapshots, r.from, r.to) + if err != nil { + return err + } + + for _, t := range []snaptype.Type{snaptype.BorEvents, snaptype.BorSpans} { + segName := snaptype.SegmentFileName(r.from, r.to, t) + f, ok := snaptype.ParseFileName(snapDir, segName) + if !ok { + continue + } + if err := m.merge(ctx, toMerge[t], f.Path, logEvery); err != nil { + return fmt.Errorf("mergeByAppendSegments: %w", err) + } + if doIndex { + p := &background.Progress{} + if err := buildIdx(ctx, f, m.chainConfig, m.tmpDir, p, m.lvl, m.logger); err != nil { + return err + } + } + } + if err := snapshots.ReopenFolder(); err != nil { + return fmt.Errorf("ReopenSegments: %w", err) + } + snapshots.LogStat() + if err := onMerge(r); err != nil { + return err + } + for _, t := range snaptype.BlockSnapshotTypes { + if len(toMerge[t]) == 0 { + continue + } + if err := onDelete(toMerge[t]); err != nil { + return err + } + } + for _, t := range []snaptype.Type{snaptype.BorEvents, snaptype.BorSpans} { + m.removeOldFiles(toMerge[t], snapDir) + } + } + m.logger.Log(m.lvl, "[bor snapshots] Merge done", "from", mergeRanges[0].from, "to", mergeRanges[0].to) + return nil +} + +func (m *BorMerger) merge(ctx context.Context, toMerge []string, targetFile string, logEvery *time.Ticker) error { + var word = make([]byte, 0, 4096) + var expectedTotal int + cList := make([]*compress.Decompressor, len(toMerge)) + for i, cFile := range toMerge { + d, err := compress.NewDecompressor(cFile) + if err != nil { + return err + } + defer d.Close() + cList[i] = d + expectedTotal += d.Count() + } + + f, err := compress.NewCompressor(ctx, "Bor Snapshots merge", targetFile, m.tmpDir, compress.MinPatternScore, m.compressWorkers, log.LvlTrace, m.logger) + if err != nil { + return err + } + defer f.Close() + + for _, d := range cList { + if err := d.WithReadAhead(func() error { + g := d.MakeGetter() + for g.HasNext() { + word, _ = g.Next(word[:0]) + if err := f.AddWord(word); err != nil { + return err + } + } + return nil + }); err != nil { + return err + } + } + if f.Count() != expectedTotal { + return fmt.Errorf("unexpected amount after bor segments merge. got: %d, expected: %d", f.Count(), expectedTotal) + } + if err = f.Compress(); err != nil { + return err + } + return nil +} + +func (m *BorMerger) removeOldFiles(toDel []string, snapDir string) { + for _, f := range toDel { + _ = os.Remove(f) + ext := filepath.Ext(f) + withoutExt := f[:len(f)-len(ext)] + _ = os.Remove(withoutExt + ".idx") + } + tmpFiles, err := snaptype.TmpFiles(snapDir) + if err != nil { + return + } + for _, f := range tmpFiles { + _ = os.Remove(f) + } +} diff --git a/turbo/snapshotsync/freezeblocks/caplin_snapshots.go b/turbo/snapshotsync/freezeblocks/caplin_snapshots.go new file mode 100644 index 00000000000..7862c85ad07 --- /dev/null +++ b/turbo/snapshotsync/freezeblocks/caplin_snapshots.go @@ -0,0 +1,482 @@ +package freezeblocks + +import ( + "bytes" + "context" + "encoding/binary" + "errors" + "fmt" + "os" + "path" + "path/filepath" + "sync" + "sync/atomic" + + libcommon "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/background" + "github.com/ledgerwatch/erigon-lib/common/cmp" + "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/compress" + "github.com/ledgerwatch/erigon-lib/downloader/snaptype" + "github.com/ledgerwatch/erigon-lib/kv" + "github.com/ledgerwatch/erigon-lib/recsplit" + "github.com/ledgerwatch/erigon/cl/cltypes" + "github.com/ledgerwatch/erigon/cl/persistence" + "github.com/ledgerwatch/erigon/cl/persistence/format/snapshot_format" + "github.com/ledgerwatch/erigon/eth/ethconfig" + "github.com/ledgerwatch/log/v3" + "github.com/pierrec/lz4" +) + +type BeaconBlockSegment struct { + seg *compress.Decompressor // value: chunked(ssz(SignedBeaconBlocks)) + idxSlot *recsplit.Index // slot -> beacon_slot_segment_offset + ranges Range +} + +func (sn *BeaconBlockSegment) closeIdx() { + if sn.idxSlot != nil { + sn.idxSlot.Close() + sn.idxSlot = nil + } +} +func (sn *BeaconBlockSegment) closeSeg() { + if sn.seg != nil { + sn.seg.Close() + sn.seg = nil + } +} +func (sn *BeaconBlockSegment) close() { + sn.closeSeg() + sn.closeIdx() +} +func (sn *BeaconBlockSegment) reopenSeg(dir string) (err error) { + sn.closeSeg() + fileName := snaptype.SegmentFileName(sn.ranges.from, sn.ranges.to, snaptype.BeaconBlocks) + sn.seg, err = compress.NewDecompressor(path.Join(dir, fileName)) + if err != nil { + return fmt.Errorf("%w, fileName: %s", err, fileName) + } + return nil +} +func (sn *BeaconBlockSegment) reopenIdxIfNeed(dir string, optimistic bool) (err error) { + if sn.idxSlot != nil { + return nil + } + err = sn.reopenIdx(dir) + if err != nil { + if !errors.Is(err, os.ErrNotExist) { + if optimistic { + log.Warn("[snapshots] open index", "err", err) + } else { + return err + } + } + } + return nil +} + +func (sn *BeaconBlockSegment) reopenIdx(dir string) (err error) { + sn.closeIdx() + if sn.seg == nil { + return nil + } + fileName := snaptype.IdxFileName(sn.ranges.from, sn.ranges.to, snaptype.BeaconBlocks.String()) + sn.idxSlot, err = recsplit.OpenIndex(path.Join(dir, fileName)) + if err != nil { + return fmt.Errorf("%w, fileName: %s", err, fileName) + } + return nil +} + +type beaconBlockSegments struct { + lock sync.RWMutex + segments []*BeaconBlockSegment +} + +func (s *beaconBlockSegments) View(f func(segments []*BeaconBlockSegment) error) error { + s.lock.RLock() + defer s.lock.RUnlock() + return f(s.segments) +} + +func BeaconBlocksIdx(ctx context.Context, sn snaptype.FileInfo, segmentFilePath string, blockFrom, blockTo uint64, tmpDir string, p *background.Progress, lvl log.Lvl, logger log.Logger) (err error) { + defer func() { + if rec := recover(); rec != nil { + err = fmt.Errorf("BeaconBlocksIdx: at=%d-%d, %v, %s", blockFrom, blockTo, rec, dbg.Stack()) + } + }() + // Calculate how many records there will be in the index + d, err := compress.NewDecompressor(segmentFilePath) + if err != nil { + return err + } + defer d.Close() + _, fname := filepath.Split(segmentFilePath) + p.Name.Store(&fname) + p.Total.Store(uint64(d.Count())) + + if err := Idx(ctx, d, sn.From, tmpDir, log.LvlDebug, func(idx *recsplit.RecSplit, i, offset uint64, word []byte) error { + if i%20_000 == 0 { + logger.Log(lvl, "Generating idx for beacon blocks", "progress", i) + } + p.Processed.Add(1) + num := make([]byte, 8) + n := binary.PutUvarint(num, i) + if err := idx.AddKey(num[:n], offset); err != nil { + return err + } + return nil + }, logger); err != nil { + return fmt.Errorf("BodyNumberIdx: %w", err) + } + + return nil +} + +type CaplinSnapshots struct { + indicesReady atomic.Bool + segmentsReady atomic.Bool + + BeaconBlocks *beaconBlockSegments + + dir string + segmentsMax atomic.Uint64 // all types of .seg files are available - up to this number + idxMax atomic.Uint64 // all types of .idx files are available - up to this number + cfg ethconfig.BlocksFreezing + logger log.Logger +} + +// NewCaplinSnapshots - opens all snapshots. But to simplify everything: +// - it opens snapshots only on App start and immutable after +// - all snapshots of given blocks range must exist - to make this blocks range available +// - gaps are not allowed +// - segment have [from:to) semantic +func NewCaplinSnapshots(cfg ethconfig.BlocksFreezing, snapDir string, logger log.Logger) *CaplinSnapshots { + return &CaplinSnapshots{dir: snapDir, cfg: cfg, BeaconBlocks: &beaconBlockSegments{}, logger: logger} +} + +func (s *CaplinSnapshots) IndicesMax() uint64 { return s.idxMax.Load() } +func (s *CaplinSnapshots) SegmentsMax() uint64 { return s.segmentsMax.Load() } + +func (s *CaplinSnapshots) SegFilePaths(from, to uint64) []string { + var res []string + for _, seg := range s.BeaconBlocks.segments { + if seg.ranges.from >= from && seg.ranges.to <= to { + res = append(res, seg.seg.FilePath()) + } + } + return res +} + +func (s *CaplinSnapshots) BlocksAvailable() uint64 { + return cmp.Min(s.segmentsMax.Load(), s.idxMax.Load()) +} + +// ReopenList stops on optimistic=false, continue opening files on optimistic=true +func (s *CaplinSnapshots) ReopenList(fileNames []string, optimistic bool) error { + s.BeaconBlocks.lock.Lock() + defer s.BeaconBlocks.lock.Unlock() + + s.closeWhatNotInList(fileNames) + var segmentsMax uint64 + var segmentsMaxSet bool +Loop: + for _, fName := range fileNames { + f, ok := snaptype.ParseFileName(s.dir, fName) + if !ok { + continue + } + var processed bool = true + + switch f.T { + case snaptype.BeaconBlocks: + var sn *BeaconBlockSegment + var exists bool + for _, sn2 := range s.BeaconBlocks.segments { + if sn2.seg == nil { // it's ok if some segment was not able to open + continue + } + if fName == sn2.seg.FileName() { + sn = sn2 + exists = true + break + } + } + if !exists { + sn = &BeaconBlockSegment{ranges: Range{f.From, f.To}} + } + if err := sn.reopenSeg(s.dir); err != nil { + if errors.Is(err, os.ErrNotExist) { + if optimistic { + continue Loop + } else { + break Loop + } + } + if optimistic { + s.logger.Warn("[snapshots] open segment", "err", err) + continue Loop + } else { + return err + } + } + + if !exists { + // it's possible to iterate over .seg file even if you don't have index + // then make segment available even if index open may fail + s.BeaconBlocks.segments = append(s.BeaconBlocks.segments, sn) + } + if err := sn.reopenIdxIfNeed(s.dir, optimistic); err != nil { + return err + } + } + + if processed { + if f.To > 0 { + segmentsMax = f.To - 1 + } else { + segmentsMax = 0 + } + segmentsMaxSet = true + } + } + if segmentsMaxSet { + s.segmentsMax.Store(segmentsMax) + } + s.segmentsReady.Store(true) + s.idxMax.Store(s.idxAvailability()) + s.indicesReady.Store(true) + + return nil +} + +func (s *CaplinSnapshots) idxAvailability() uint64 { + var beaconBlocks uint64 + for _, seg := range s.BeaconBlocks.segments { + if seg.idxSlot == nil { + break + } + beaconBlocks = seg.ranges.to - 1 + } + return beaconBlocks +} + +func (s *CaplinSnapshots) ReopenFolder() error { + files, _, err := SegmentsCaplin(s.dir) + if err != nil { + return err + } + list := make([]string, 0, len(files)) + for _, f := range files { + _, fName := filepath.Split(f.Path) + list = append(list, fName) + } + return s.ReopenList(list, false) +} + +func (s *CaplinSnapshots) closeWhatNotInList(l []string) { +Loop1: + for i, sn := range s.BeaconBlocks.segments { + if sn.seg == nil { + continue Loop1 + } + _, name := filepath.Split(sn.seg.FilePath()) + for _, fName := range l { + if fName == name { + continue Loop1 + } + } + sn.close() + s.BeaconBlocks.segments[i] = nil + } + var i int + for i = 0; i < len(s.BeaconBlocks.segments) && s.BeaconBlocks.segments[i] != nil && s.BeaconBlocks.segments[i].seg != nil; i++ { + } + tail := s.BeaconBlocks.segments[i:] + s.BeaconBlocks.segments = s.BeaconBlocks.segments[:i] + for i = 0; i < len(tail); i++ { + if tail[i] != nil { + tail[i].close() + tail[i] = nil + } + } +} + +type CaplinView struct { + s *CaplinSnapshots + closed bool +} + +func (s *CaplinSnapshots) View() *CaplinView { + v := &CaplinView{s: s} + v.s.BeaconBlocks.lock.RLock() + return v +} + +func (v *CaplinView) Close() { + if v.closed { + return + } + v.closed = true + v.s.BeaconBlocks.lock.RUnlock() + +} + +func (v *CaplinView) BeaconBlocks() []*BeaconBlockSegment { return v.s.BeaconBlocks.segments } + +func (v *CaplinView) BeaconBlocksSegment(slot uint64) (*BeaconBlockSegment, bool) { + for _, seg := range v.BeaconBlocks() { + if !(slot >= seg.ranges.from && slot < seg.ranges.to) { + continue + } + return seg, true + } + return nil, false +} + +func dumpBeaconBlocksRange(ctx context.Context, db kv.RoDB, b persistence.BlockSource, fromSlot uint64, toSlot uint64, tmpDir, snapDir string, workers int, lvl log.Lvl, logger log.Logger) error { + segName := snaptype.SegmentFileName(fromSlot, toSlot, snaptype.BeaconBlocks) + f, _ := snaptype.ParseFileName(snapDir, segName) + + sn, err := compress.NewCompressor(ctx, "Snapshot BeaconBlocks", f.Path, tmpDir, compress.MinPatternScore, workers, lvl, logger) + if err != nil { + return err + } + defer sn.Close() + + tx, err := db.BeginRo(ctx) + if err != nil { + return err + } + defer tx.Rollback() + var w bytes.Buffer + lzWriter := lz4.NewWriter(&w) + defer lzWriter.Close() + // Just make a reusable buffer + buf := make([]byte, 2048) + // Generate .seg file, which is just the list of beacon blocks. + for i := fromSlot; i < toSlot; i++ { + obj, err := b.GetBlock(ctx, tx, i) + if err != nil { + return err + } + if i%20_000 == 0 { + logger.Log(lvl, "Dumping beacon blocks", "progress", i) + } + if obj == nil { + + if err := sn.AddWord(nil); err != nil { + return err + } + continue + } + lzWriter.Reset(&w) + lzWriter.CompressionLevel = 1 + if buf, err = snapshot_format.WriteBlockForSnapshot(lzWriter, obj.Data, buf); err != nil { + return err + } + if err := lzWriter.Flush(); err != nil { + return err + } + word := w.Bytes() + + if err := sn.AddWord(word); err != nil { + return err + } + w.Reset() + } + if err := sn.Compress(); err != nil { + return fmt.Errorf("compress: %w", err) + } + // Generate .idx file, which is the slot => offset mapping. + p := &background.Progress{} + + return BeaconBlocksIdx(ctx, f, path.Join(snapDir, segName), fromSlot, toSlot, tmpDir, p, lvl, logger) +} + +func DumpBeaconBlocks(ctx context.Context, db kv.RoDB, b persistence.BlockSource, fromSlot, toSlot, blocksPerFile uint64, tmpDir, snapDir string, workers int, lvl log.Lvl, logger log.Logger) error { + if blocksPerFile == 0 { + return nil + } + + for i := fromSlot; i < toSlot; i = chooseSegmentEnd(i, toSlot, blocksPerFile) { + if toSlot-i < blocksPerFile { + break + } + to := chooseSegmentEnd(i, toSlot, blocksPerFile) + logger.Log(lvl, "Dumping beacon blocks", "from", i, "to", to) + if err := dumpBeaconBlocksRange(ctx, db, b, i, to, tmpDir, snapDir, workers, lvl, logger); err != nil { + return err + } + } + return nil +} + +func (s *CaplinSnapshots) BuildMissingIndices(ctx context.Context, logger log.Logger, lvl log.Lvl) error { + // if !s.segmentsReady.Load() { + // return fmt.Errorf("not all snapshot segments are available") + // } + + // wait for Downloader service to download all expected snapshots + segments, _, err := SegmentsCaplin(s.dir) + if err != nil { + return err + } + for index := range segments { + segment := segments[index] + if segment.T != snaptype.BeaconBlocks { + continue + } + if hasIdxFile(segment, logger) { + continue + } + p := &background.Progress{} + + if err := BeaconBlocksIdx(ctx, segment, segment.Path, segment.From, segment.To, s.dir, p, log.LvlDebug, logger); err != nil { + return err + } + } + + return s.ReopenFolder() +} + +func (s *CaplinSnapshots) ReadHeader(slot uint64) (*cltypes.SignedBeaconBlockHeader, uint64, libcommon.Hash, error) { + view := s.View() + defer view.Close() + + var buf []byte + + seg, ok := view.BeaconBlocksSegment(slot) + if !ok { + return nil, 0, libcommon.Hash{}, nil + } + + if seg.idxSlot == nil { + return nil, 0, libcommon.Hash{}, nil + } + blockOffset := seg.idxSlot.OrdinalLookup(slot - seg.idxSlot.BaseDataID()) + + gg := seg.seg.MakeGetter() + gg.Reset(blockOffset) + if !gg.HasNext() { + return nil, 0, libcommon.Hash{}, nil + } + + buf, _ = gg.Next(buf) + if len(buf) == 0 { + return nil, 0, libcommon.Hash{}, nil + } + // Decompress this thing + buffer := buffersPool.Get().(*bytes.Buffer) + defer buffersPool.Put(buffer) + + buffer.Reset() + buffer.Write(buf) + lzReader := lz4ReaderPool.Get().(*lz4.Reader) + defer lz4ReaderPool.Put(lzReader) + lzReader.Reset(buffer) + + // Use pooled buffers and readers to avoid allocations. + return snapshot_format.ReadBlockHeaderFromSnapshotWithExecutionData(lzReader) +} diff --git a/turbo/snapshotsync/freezeblocks/dump_test.go b/turbo/snapshotsync/freezeblocks/dump_test.go index 62eb4a6cdb4..5136f711534 100644 --- a/turbo/snapshotsync/freezeblocks/dump_test.go +++ b/turbo/snapshotsync/freezeblocks/dump_test.go @@ -5,6 +5,8 @@ import ( "testing" "github.com/holiman/uint256" + "github.com/ledgerwatch/erigon-lib/chain/networkname" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" "github.com/ledgerwatch/log/v3" "github.com/stretchr/testify/require" @@ -18,10 +20,8 @@ import ( "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/ethdb/prune" "github.com/ledgerwatch/erigon/params" - "github.com/ledgerwatch/erigon/params/networkname" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" "github.com/ledgerwatch/erigon/turbo/stages/mock" ) @@ -236,7 +236,7 @@ func TestDump(t *testing.T) { logger := log.New() tmpDir, snapDir := t.TempDir(), t.TempDir() - snConfig := snapcfg.KnownCfg(networkname.MainnetChainName, nil, nil) + snConfig := snapcfg.KnownCfg(networkname.MainnetChainName) snConfig.ExpectBlocks = math.MaxUint64 err := freezeblocks.DumpBlocks(m.Ctx, 0, uint64(test.chainSize), uint64(test.chainSize), tmpDir, snapDir, 0, m.DB, 1, log.LvlInfo, logger, m.BlockReader) @@ -271,7 +271,7 @@ func createDumpTestKV(t *testing.T, chainConfig *chain.Config, chainSize int) *m t.Fatal(err) } // Construct testing chain - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatal(err) } diff --git a/turbo/snapshotsync/snapcfg/util.go b/turbo/snapshotsync/snapcfg/util.go deleted file mode 100644 index eed7d386d4b..00000000000 --- a/turbo/snapshotsync/snapcfg/util.go +++ /dev/null @@ -1,159 +0,0 @@ -package snapcfg - -import ( - _ "embed" - "path/filepath" - "strconv" - "strings" - - snapshothashes "github.com/ledgerwatch/erigon-snapshot" - "github.com/ledgerwatch/erigon/params/networkname" - "github.com/pelletier/go-toml/v2" - "golang.org/x/exp/slices" -) - -var ( - Mainnet = fromToml(snapshothashes.Mainnet) - Sepolia = fromToml(snapshothashes.Sepolia) - Goerli = fromToml(snapshothashes.Goerli) - Mumbai = fromToml(snapshothashes.Mumbai) - BorMainnet = fromToml(snapshothashes.BorMainnet) - Gnosis = fromToml(snapshothashes.Gnosis) - Chiado = fromToml(snapshothashes.Chiado) - - MainnetHistory = fromToml(snapshothashes.MainnetHistory) - SepoliaHistory = fromToml(snapshothashes.SepoliaHistory) - GoerliHistory = fromToml(snapshothashes.GoerliHistory) - MumbaiHistory = fromToml(snapshothashes.MumbaiHistory) - BorMainnetHistory = fromToml(snapshothashes.BorMainnetHistory) - GnosisHistory = fromToml(snapshothashes.GnosisHistory) - ChiadoHistory = fromToml(snapshothashes.ChiadoHistory) -) - -type PreverifiedItem struct { - Name string - Hash string -} -type Preverified []PreverifiedItem -type preverified map[string]string - -func fromToml(in []byte) (out Preverified) { - var outMap preverified - if err := toml.Unmarshal(in, &outMap); err != nil { - panic(err) - } - return doSort(outMap) -} -func doSort(in preverified) Preverified { - out := make(Preverified, 0, len(in)) - for k, v := range in { - out = append(out, PreverifiedItem{k, v}) - } - slices.SortFunc(out, func(i, j PreverifiedItem) bool { return i.Name < j.Name }) - return out -} - -var ( - MainnetChainSnapshotCfg = newCfg(Mainnet, MainnetHistory) - SepoliaChainSnapshotCfg = newCfg(Sepolia, SepoliaHistory) - GoerliChainSnapshotCfg = newCfg(Goerli, GoerliHistory) - MumbaiChainSnapshotCfg = newCfg(Mumbai, MumbaiHistory) - BorMainnetChainSnapshotCfg = newCfg(BorMainnet, BorMainnetHistory) - GnosisChainSnapshotCfg = newCfg(Gnosis, GnosisHistory) - ChiadoChainSnapshotCfg = newCfg(Chiado, ChiadoHistory) -) - -func newCfg(preverified, preverifiedHistory Preverified) *Cfg { - return &Cfg{ExpectBlocks: maxBlockNum(preverified), Preverified: preverified, PreverifiedHistory: preverifiedHistory} -} - -func maxBlockNum(preverified Preverified) uint64 { - max := uint64(0) - for _, p := range preverified { - _, fileName := filepath.Split(p.Name) - ext := filepath.Ext(fileName) - if ext != ".seg" { - continue - } - onlyName := fileName[:len(fileName)-len(ext)] - parts := strings.Split(onlyName, "-") - if parts[0] != "v1" { - panic("not implemented") - } - if parts[3] != "headers" { - continue - } - to, err := strconv.ParseUint(parts[2], 10, 64) - if err != nil { - panic(err) - } - if max < to { - max = to - } - } - if max == 0 { // to prevent underflow - return 0 - } - return max*1_000 - 1 -} - -type Cfg struct { - ExpectBlocks uint64 - Preverified Preverified - PreverifiedHistory Preverified -} - -var KnownCfgs = map[string]*Cfg{ - networkname.MainnetChainName: MainnetChainSnapshotCfg, - networkname.SepoliaChainName: SepoliaChainSnapshotCfg, - networkname.GoerliChainName: GoerliChainSnapshotCfg, - networkname.MumbaiChainName: MumbaiChainSnapshotCfg, - networkname.BorMainnetChainName: BorMainnetChainSnapshotCfg, - networkname.GnosisChainName: GnosisChainSnapshotCfg, - networkname.ChiadoChainName: ChiadoChainSnapshotCfg, -} - -// KnownCfg return list of preverified hashes for given network, but apply whiteList filter if it's not empty -func KnownCfg(networkName string, whiteList, whiteListHistory []string) *Cfg { - c, ok := KnownCfgs[networkName] - if !ok { - return newCfg(Preverified{}, Preverified{}) - } - - var result, result2 Preverified - if len(whiteList) == 0 { - result = c.Preverified - } else { - wlMap := make(map[string]struct{}, len(whiteList)) - for _, fName := range whiteList { - wlMap[fName] = struct{}{} - } - - result = make(Preverified, 0, len(c.Preverified)) - for _, p := range c.Preverified { - if _, ok := wlMap[p.Name]; !ok { - continue - } - result = append(result, p) - } - } - - if len(whiteList) == 0 { - result2 = c.PreverifiedHistory - } else { - wlMap2 := make(map[string]struct{}, len(whiteListHistory)) - for _, fName := range whiteListHistory { - wlMap2[filepath.Join("history", fName)] = struct{}{} - } - - result2 = make(Preverified, 0, len(c.PreverifiedHistory)) - for _, p := range c.PreverifiedHistory { - if _, ok := wlMap2[p.Name]; !ok { - continue - } - result2 = append(result2, p) - } - } - - return newCfg(result, result2) -} diff --git a/turbo/snapshotsync/snapshotsync.go b/turbo/snapshotsync/snapshotsync.go index df3c252fbdd..0c9d7663db5 100644 --- a/turbo/snapshotsync/snapshotsync.go +++ b/turbo/snapshotsync/snapshotsync.go @@ -5,11 +5,14 @@ import ( "encoding/binary" "fmt" "runtime" + "strings" "time" "github.com/ledgerwatch/erigon-lib/chain" + "github.com/ledgerwatch/erigon-lib/chain/snapcfg" "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/dbg" + "github.com/ledgerwatch/erigon-lib/diagnostics" "github.com/ledgerwatch/erigon-lib/downloader/downloadergrpc" "github.com/ledgerwatch/erigon-lib/downloader/snaptype" proto_downloader "github.com/ledgerwatch/erigon-lib/gointerfaces/downloader" @@ -19,33 +22,34 @@ import ( "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/erigon/turbo/snapshotsync/snapcfg" "github.com/ledgerwatch/log/v3" ) -func BuildProtoRequest(downloadRequest []services.DownloadRequest) *proto_downloader.DownloadRequest { - req := &proto_downloader.DownloadRequest{Items: make([]*proto_downloader.DownloadItem, 0, len(snaptype.AllSnapshotTypes))} +type CaplinMode int + +const ( + + // CaplinModeNone - no caplin mode + NoCaplin CaplinMode = 1 + OnlyCaplin CaplinMode = 2 + AlsoCaplin CaplinMode = 3 +) + +func BuildProtoRequest(downloadRequest []services.DownloadRequest) *proto_downloader.AddRequest { + req := &proto_downloader.AddRequest{Items: make([]*proto_downloader.AddItem, 0, len(snaptype.BlockSnapshotTypes))} for _, r := range downloadRequest { - if r.Path != "" { - if r.TorrentHash != "" { - req.Items = append(req.Items, &proto_downloader.DownloadItem{ - TorrentHash: downloadergrpc.String2Proto(r.TorrentHash), - Path: r.Path, - }) - } else { - req.Items = append(req.Items, &proto_downloader.DownloadItem{ - Path: r.Path, - }) - } + if r.Path == "" { + continue + } + if r.TorrentHash != "" { + req.Items = append(req.Items, &proto_downloader.AddItem{ + TorrentHash: downloadergrpc.String2Proto(r.TorrentHash), + Path: r.Path, + }) } else { - if r.Ranges.To-r.Ranges.From != snaptype.Erigon2SegmentSize { - continue - } - for _, t := range snaptype.AllSnapshotTypes { - req.Items = append(req.Items, &proto_downloader.DownloadItem{ - Path: snaptype.SegmentFileName(r.Ranges.From, r.Ranges.To, t), - }) - } + req.Items = append(req.Items, &proto_downloader.AddItem{ + Path: r.Path, + }) } } return req @@ -55,7 +59,7 @@ func BuildProtoRequest(downloadRequest []services.DownloadRequest) *proto_downlo func RequestSnapshotsDownload(ctx context.Context, downloadRequest []services.DownloadRequest, downloader proto_downloader.DownloaderClient) error { // start seed large .seg of large size req := BuildProtoRequest(downloadRequest) - if _, err := downloader.Download(ctx, req); err != nil { + if _, err := downloader.Add(ctx, req); err != nil { return err } return nil @@ -63,60 +67,44 @@ func RequestSnapshotsDownload(ctx context.Context, downloadRequest []services.Do // WaitForDownloader - wait for Downloader service to download all expected snapshots // for MVP we sync with Downloader only once, in future will send new snapshots also -func WaitForDownloader(logPrefix string, ctx context.Context, histV3 bool, agg *state.AggregatorV3, tx kv.RwTx, blockReader services.FullBlockReader, notifier services.DBEventNotifier, cc *chain.Config, snapshotDownloader proto_downloader.DownloaderClient) error { +func WaitForDownloader(logPrefix string, ctx context.Context, histV3 bool, caplin CaplinMode, agg *state.AggregatorV3, tx kv.RwTx, blockReader services.FullBlockReader, cc *chain.Config, snapshotDownloader proto_downloader.DownloaderClient) error { snapshots := blockReader.Snapshots() + borSnapshots := blockReader.BorSnapshots() if blockReader.FreezingCfg().NoDownloader { if err := snapshots.ReopenFolder(); err != nil { return err } - if notifier != nil { // can notify right here, even that write txn is not commit - notifier.OnNewSnapshot() + if cc.Bor != nil { + if err := borSnapshots.ReopenFolder(); err != nil { + return err + } } return nil } - // Original intent of snInDB was to contain the file names of the snapshot files for the very first run of the Erigon instance - // Then, we would insist to only download such files, and no others (whitelist) - // However, at some point later, the code was incorrectly changed to update this record in each iteration of the stage loop (function WriteSnapshots) - // And so this list cannot be relied upon as the whitelist, because it also includes all the files created by the node itself - // Not sure what to do it is so far, but the temporary solution is to instead use it as a blacklist (existingFilesMap) - snInDB, snHistInDB, err := rawdb.ReadSnapshots(tx) - if err != nil { - return err - } - dbEmpty := len(snInDB) == 0 - var existingFilesMap map[string]struct{} - var missingSnapshots []*services.Range - if !dbEmpty { - existingFilesMap, missingSnapshots, err = snapshots.ScanDir() - if err != nil { - return err - } - } - if len(missingSnapshots) > 0 { - log.Warn(fmt.Sprintf("[%s] downloading missing snapshots", logPrefix)) - } + //Corner cases: + // - Erigon generated file X with hash H1. User upgraded Erigon. New version has preverified file X with hash H2. Must ignore H2 (don't send to Downloader) + // - Erigon "download once": means restart/upgrade/downgrade must not download files (and will be fast) + // - After "download once" - Erigon will produce and seed new files + + preverifiedBlockSnapshots := snapcfg.KnownCfg(cc.ChainName).Preverified + downloadRequest := make([]services.DownloadRequest, 0, len(preverifiedBlockSnapshots)) - // send all hashes to the Downloader service - preverifiedBlockSnapshots := snapcfg.KnownCfg(cc.ChainName, snInDB, snHistInDB).Preverified - downloadRequest := make([]services.DownloadRequest, 0, len(preverifiedBlockSnapshots)+len(missingSnapshots)) // build all download requests - // builds preverified snapshots request for _, p := range preverifiedBlockSnapshots { - if _, exists := existingFilesMap[p.Name]; !exists { // Not to download existing files "behind the scenes" - downloadRequest = append(downloadRequest, services.NewDownloadRequest(nil, p.Name, p.Hash)) + if !histV3 { + if strings.HasPrefix(p.Name, "domain") || strings.HasPrefix(p.Name, "history") || strings.HasPrefix(p.Name, "idx") { + continue + } } - } - if histV3 { - preverifiedHistorySnapshots := snapcfg.KnownCfg(cc.ChainName, snInDB, snHistInDB).PreverifiedHistory - for _, p := range preverifiedHistorySnapshots { - downloadRequest = append(downloadRequest, services.NewDownloadRequest(nil, p.Name, p.Hash)) + if caplin == NoCaplin && strings.Contains(p.Name, "beaconblocks") { + continue + } + if caplin == OnlyCaplin && !strings.Contains(p.Name, "beaconblocks") { + continue } - } - // builds missing snapshots request - for _, r := range missingSnapshots { - downloadRequest = append(downloadRequest, services.NewDownloadRequest(r, "", "")) + downloadRequest = append(downloadRequest, services.NewDownloadRequest(p.Name, p.Hash)) } log.Info(fmt.Sprintf("[%s] Fetching torrent files metadata", logPrefix)) @@ -155,31 +143,59 @@ Loop: if stats, err := snapshotDownloader.Stats(ctx, &proto_downloader.StatsRequest{}); err != nil { log.Warn("Error while waiting for snapshots progress", "err", err) } else if stats.Completed { - if !blockReader.FreezingCfg().Verify { // will verify after loop - if _, err := snapshotDownloader.Verify(ctx, &proto_downloader.VerifyRequest{}); err != nil { - return err - } - } + diagnostics.Send(diagnostics.SnapshotDownloadStatistics{ + Downloaded: stats.BytesCompleted, + Total: stats.BytesTotal, + TotalTime: time.Since(downloadStartTime).Round(time.Second).Seconds(), + DownloadRate: stats.DownloadRate, + UploadRate: stats.UploadRate, + Peers: stats.PeersUnique, + Files: stats.FilesTotal, + Connections: stats.ConnectionsTotal, + Alloc: m.Alloc, + Sys: m.Sys, + DownloadFinished: stats.Completed, + }) + log.Info(fmt.Sprintf("[%s] download finished", logPrefix), "time", time.Since(downloadStartTime).String()) break Loop } else { + diagnostics.Send(diagnostics.SnapshotDownloadStatistics{ + Downloaded: stats.BytesCompleted, + Total: stats.BytesTotal, + TotalTime: time.Since(downloadStartTime).Round(time.Second).Seconds(), + DownloadRate: stats.DownloadRate, + UploadRate: stats.UploadRate, + Peers: stats.PeersUnique, + Files: stats.FilesTotal, + Connections: stats.ConnectionsTotal, + Alloc: m.Alloc, + Sys: m.Sys, + DownloadFinished: stats.Completed, + TorrentMetadataReady: stats.MetadataReady, + }) + if stats.MetadataReady < stats.FilesTotal { log.Info(fmt.Sprintf("[%s] Waiting for torrents metadata: %d/%d", logPrefix, stats.MetadataReady, stats.FilesTotal)) continue } + dbg.ReadMemStats(&m) downloadTimeLeft := calculateTime(stats.BytesTotal-stats.BytesCompleted, stats.DownloadRate) - log.Info(fmt.Sprintf("[%s] download", logPrefix), + suffix := "downloading" + if stats.Progress > 0 && stats.DownloadRate == 0 { + suffix += " (or verifying)" + } + + log.Info(fmt.Sprintf("[%s] %s", logPrefix, suffix), "progress", fmt.Sprintf("%.2f%% %s/%s", stats.Progress, common.ByteCount(stats.BytesCompleted), common.ByteCount(stats.BytesTotal)), - "download-time-left", downloadTimeLeft, - "total-download-time", time.Since(downloadStartTime).Round(time.Second).String(), + "time-left", downloadTimeLeft, + "total-time", time.Since(downloadStartTime).Round(time.Second).String(), "download", common.ByteCount(stats.DownloadRate)+"/s", "upload", common.ByteCount(stats.UploadRate)+"/s", - ) - log.Info(fmt.Sprintf("[%s] download", logPrefix), "peers", stats.PeersUnique, - "connections", stats.ConnectionsTotal, "files", stats.FilesTotal, + "connections", stats.ConnectionsTotal, "alloc", common.ByteCount(m.Alloc), "sys", common.ByteCount(m.Sys), ) } @@ -192,19 +208,35 @@ Finish: return err } } + stats, err = snapshotDownloader.Stats(ctx, &proto_downloader.StatsRequest{}) + if err != nil { + return err + } + if !stats.Completed { + goto Loop + } if err := snapshots.ReopenFolder(); err != nil { return err } + if cc.Bor != nil { + if err := borSnapshots.ReopenFolder(); err != nil { + return err + } + } if err := agg.OpenFolder(); err != nil { return err } - if err := rawdb.WriteSnapshots(tx, blockReader.FrozenFiles(), agg.Files()); err != nil { + // Erigon "download once" - means restart/upgrade/downgrade will not download files (and will be fast) + // After "download once" - Erigon will produce and seed new files + // Downloader will able: seed new files (already existing on FS), download uncomplete parts of existing files (if Verify found some bad parts) + if _, err := snapshotDownloader.ProhibitNewDownloads(ctx, &proto_downloader.ProhibitNewDownloadsRequest{}); err != nil { return err } - if notifier != nil { // can notify right here, even that write txn is not commit - notifier.OnNewSnapshot() + + if err := rawdb.WriteSnapshots(tx, blockReader.FrozenFiles(), agg.Files()); err != nil { + return err } firstNonGenesis, err := rawdbv3.SecondKey(tx, kv.Headers) diff --git a/turbo/stages/blockchain_test.go b/turbo/stages/blockchain_test.go index 183a457a880..72052da663d 100644 --- a/turbo/stages/blockchain_test.go +++ b/turbo/stages/blockchain_test.go @@ -25,6 +25,8 @@ import ( "math/big" "testing" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/holiman/uint256" "github.com/ledgerwatch/log/v3" "github.com/stretchr/testify/assert" @@ -38,7 +40,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv/bitmapdb" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/common/u256" "github.com/ledgerwatch/erigon/consensus/ethash" "github.com/ledgerwatch/erigon/core" @@ -80,7 +81,7 @@ func newCanonical(t *testing.T, n int) *mock.MockSentry { // Full block-chain requested chain := makeBlockChain(m.Genesis, n, m, canonicalSeed) - if err := m.InsertChain(chain, nil); err != nil { + if err := m.InsertChain(chain); err != nil { t.Fatal(err) } return m @@ -146,7 +147,7 @@ func testFork(t *testing.T, m *mock.MockSentry, i, n int, comparator func(td1, t }) require.NoError(t, err) - if err = m.InsertChain(blockChainB, nil); err != nil { + if err = m.InsertChain(blockChainB); err != nil { t.Fatalf("failed to insert forking chain: %v", err) } currentBlockHash := blockChainB.TopBlock.Hash() @@ -162,7 +163,7 @@ func testFork(t *testing.T, m *mock.MockSentry, i, n int, comparator func(td1, t require.NoError(t, err) // Sanity check that the forked chain can be imported into the original - if err := canonicalMock.InsertChain(blockChainB, nil); err != nil { + if err := canonicalMock.InsertChain(blockChainB); err != nil { t.Fatalf("failed to import forked block chain: %v", err) } // Compare the total difficulties of the chains @@ -170,11 +171,12 @@ func testFork(t *testing.T, m *mock.MockSentry, i, n int, comparator func(td1, t } func TestLastBlock(t *testing.T) { + t.Parallel() m := newCanonical(t, 0) var err error chain := makeBlockChain(current(m, nil), 1, m, 0) - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatalf("Failed to insert block: %v", err) } @@ -192,6 +194,7 @@ func TestLastBlock(t *testing.T) { func TestExtendCanonicalBlocks(t *testing.T) { testExtendCanonical(t) } func testExtendCanonical(t *testing.T) { + t.Parallel() length := 5 // Make first chain starting from genesis @@ -213,11 +216,13 @@ func testExtendCanonical(t *testing.T) { // Tests that given a starting canonical chain of a given size, creating shorter // forks do not take canonical ownership. func TestShorterForkBlocks(t *testing.T) { + t.Parallel() t.Skip("Erigon does not insert shorter forks") testShorterFork(t) } func testShorterFork(t *testing.T) { + t.Parallel() length := 10 // Make first chain starting from genesis @@ -268,6 +273,7 @@ func testLongerFork(t *testing.T, full bool) { func TestBrokenBlockChain(t *testing.T) { testBrokenChain(t) } func testBrokenChain(t *testing.T) { + t.Parallel() // Make chain starting from genesis m := newCanonical(t, 10) @@ -275,7 +281,7 @@ func testBrokenChain(t *testing.T) { chain := makeBlockChain(current(m, nil), 5, m, forkSeed) brokenChain := chain.Slice(1, chain.Length()) - if err := m.InsertChain(brokenChain, nil); err == nil { + if err := m.InsertChain(brokenChain); err == nil { t.Errorf("broken block chain not reported") } } @@ -285,6 +291,7 @@ func testBrokenChain(t *testing.T) { func TestReorgLongBlocks(t *testing.T) { testReorgLong(t) } func testReorgLong(t *testing.T) { + t.Parallel() testReorg(t, []int64{0, 0, -9}, []int64{0, 0, 0, -9}, 393280) } @@ -293,6 +300,7 @@ func testReorgLong(t *testing.T) { func TestReorgShortBlocks(t *testing.T) { testReorgShort(t) } func testReorgShort(t *testing.T) { + t.Parallel() // Create a long easy chain vs. a short heavy one. Due to difficulty adjustment // we need a fairly long chain of blocks with different difficulties for a short // one to become heavyer than a long one. The 96 is an empirical value. @@ -325,20 +333,18 @@ func testReorg(t *testing.T, first, second []int64, td int64) { t.Fatalf("generate chain: %v", err) } + if err = m.InsertChain(easyChain); err != nil { + t.Fatalf("failed to insert easy chain: %v", err) + } + if err = m.InsertChain(diffChain); err != nil { + t.Fatalf("failed to insert difficult chain: %v", err) + } tx, err := m.DB.BeginRw(m.Ctx) if err != nil { fmt.Printf("beginro error: %v\n", err) return } defer tx.Rollback() - - if err = m.InsertChain(easyChain, tx); err != nil { - t.Fatalf("failed to insert easy chain: %v", err) - } - if err = m.InsertChain(diffChain, tx); err != nil { - t.Fatalf("failed to insert difficult chain: %v", err) - } - // Check that the chain is valid number and link wise prev, err := m.BlockReader.CurrentBlock(tx) require.NoError(err) @@ -369,6 +375,7 @@ func testReorg(t *testing.T, first, second []int64, td int64) { func TestBadBlockHashes(t *testing.T) { testBadHashes(t) } func testBadHashes(t *testing.T) { + t.Parallel() t.Skip("to support this error in Erigon") // Create a pristine chain and database m := newCanonical(t, 0) @@ -380,7 +387,7 @@ func testBadHashes(t *testing.T) { core.BadHashes[chain.Headers[2].Hash()] = true defer func() { delete(core.BadHashes, chain.Headers[2].Hash()) }() - err = m.InsertChain(chain, nil) + err = m.InsertChain(chain) if !errors.Is(err, core.ErrBlacklistedHash) { t.Errorf("error mismatch: have: %v, want: %v", err, core.ErrBlacklistedHash) } @@ -388,6 +395,7 @@ func testBadHashes(t *testing.T) { // Tests that chain reorganisations handle transaction removals and reinsertions. func TestChainTxReorgs(t *testing.T) { + t.Parallel() var ( key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") key2, _ = crypto.HexToECDSA("8a1f9a8f95be41cd7ccb6168179afb4504aefe388d1e14474d32c45c72ce7b7a") @@ -449,7 +457,7 @@ func TestChainTxReorgs(t *testing.T) { t.Fatalf("generate chain: %v", err) } // Import the chain. This runs all block validation rules. - if err1 := m.InsertChain(chain, nil); err1 != nil { + if err1 := m.InsertChain(chain); err1 != nil { t.Fatalf("failed to insert original chain: %v", err1) } @@ -476,7 +484,7 @@ func TestChainTxReorgs(t *testing.T) { t.Fatalf("generate chain: %v", err) } - if err := m.InsertChain(chain, nil); err != nil { + if err := m.InsertChain(chain); err != nil { t.Fatalf("failed to insert forked chain: %v", err) } tx, err := m.DB.BeginRo(context.Background()) @@ -558,13 +566,14 @@ func readReceipt(db kv.Tx, txHash libcommon.Hash, br services.FullBlockReader) ( // Tests if the canonical block can be fetched from the database during chain insertion. func TestCanonicalBlockRetrieval(t *testing.T) { + t.Parallel() m := newCanonical(t, 0) chain, err2 := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 10, func(i int, gen *core.BlockGen) {}) if err2 != nil { t.Fatalf("generate chain: %v", err2) } - err := m.InsertChain(chain, nil) + err := m.InsertChain(chain) require.NoError(t, err) tx, err := m.DB.BeginRo(m.Ctx) @@ -598,6 +607,7 @@ func TestCanonicalBlockRetrieval(t *testing.T) { } func TestEIP155Transition(t *testing.T) { + t.Parallel() // Configure and generate a sample block chai var ( @@ -657,7 +667,7 @@ func TestEIP155Transition(t *testing.T) { t.Fatalf("generate chain: %v", chainErr) } - if chainErr = m.InsertChain(chain, nil); chainErr != nil { + if chainErr = m.InsertChain(chain); chainErr != nil { t.Fatal(chainErr) } if err := m.DB.View(context.Background(), func(tx kv.Tx) error { @@ -697,12 +707,13 @@ func TestEIP155Transition(t *testing.T) { if chainErr != nil { t.Fatalf("generate blocks: %v", chainErr) } - if err := m.InsertChain(chain, nil); err == nil { + if err := m.InsertChain(chain); err == nil { t.Errorf("expected error") } } func TestModes(t *testing.T) { + t.Parallel() // run test on all combination of flags runWithModesPermuations( t, @@ -711,6 +722,7 @@ func TestModes(t *testing.T) { } func TestBeforeModes(t *testing.T) { + t.Parallel() mode := prune.DefaultMode mode.History = prune.Before(0) mode.Receipts = prune.Before(1) @@ -781,7 +793,7 @@ func doModesTest(t *testing.T, pm prune.Mode) error { return fmt.Errorf("generate blocks: %w", err) } - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { return err } @@ -939,6 +951,7 @@ func runPermutation(t *testing.T, testFunc func(*testing.T, prune.Mode) error, c } func TestEIP161AccountRemoval(t *testing.T) { + t.Parallel() // Configure and generate a sample block chain var ( key, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") @@ -979,33 +992,47 @@ func TestEIP161AccountRemoval(t *testing.T) { if err != nil { t.Fatalf("generate blocks: %v", err) } + + // account must exist pre eip 161 + if err = m.InsertChain(chain.Slice(0, 1)); err != nil { + t.Fatal(err) + } tx, err := m.DB.BeginRw(m.Ctx) if err != nil { fmt.Printf("beginro error: %v\n", err) return } defer tx.Rollback() - - // account must exist pre eip 161 - if err = m.InsertChain(chain.Slice(0, 1), tx); err != nil { - t.Fatal(err) - } if st := state.New(m.NewStateReader(tx)); !st.Exist(theAddr) { t.Error("expected account to exist") } + tx.Rollback() // account needs to be deleted post eip 161 - if err = m.InsertChain(chain.Slice(1, 2), tx); err != nil { + if err = m.InsertChain(chain.Slice(1, 2)); err != nil { t.Fatal(err) } + tx, err = m.DB.BeginRw(m.Ctx) + if err != nil { + fmt.Printf("beginro error: %v\n", err) + return + } + defer tx.Rollback() if st := state.New(m.NewStateReader(tx)); st.Exist(theAddr) { t.Error("account should not exist") } + tx.Rollback() // account mustn't be created post eip 161 - if err = m.InsertChain(chain.Slice(2, 3), tx); err != nil { + if err = m.InsertChain(chain.Slice(2, 3)); err != nil { t.Fatal(err) } + tx, err = m.DB.BeginRw(m.Ctx) + if err != nil { + fmt.Printf("beginro error: %v\n", err) + return + } + defer tx.Rollback() if st := state.New(m.NewStateReader(tx)); st.Exist(theAddr) { t.Error("account should not exist") } @@ -1013,6 +1040,7 @@ func TestEIP161AccountRemoval(t *testing.T) { } func TestDoubleAccountRemoval(t *testing.T) { + t.Parallel() var ( signer = types.LatestSignerForChainID(nil) bankKey, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") @@ -1057,14 +1085,14 @@ func TestDoubleAccountRemoval(t *testing.T) { t.Fatalf("generate blocks: %v", err) } + err = m.InsertChain(chain) + assert.NoError(t, err) tx, err := m.DB.BeginRw(m.Ctx) if err != nil { fmt.Printf("beginro error: %v\n", err) return } defer tx.Rollback() - err = m.InsertChain(chain, tx) - assert.NoError(t, err) st := state.New(m.NewStateReader(tx)) assert.NoError(t, err) @@ -1089,6 +1117,7 @@ func TestDoubleAccountRemoval(t *testing.T) { // // https://github.com/ethereum/go-ethereum/pull/15941 func TestBlockchainHeaderchainReorgConsistency(t *testing.T) { + t.Parallel() // Generate a canonical chain to act as the main dataset m, m2 := mock.Mock(t), mock.Mock(t) @@ -1117,7 +1146,7 @@ func TestBlockchainHeaderchainReorgConsistency(t *testing.T) { // Import the canonical and fork chain side by side, verifying the current block // and current header consistency for i := 0; i < chain.Length(); i++ { - if err := m2.InsertChain(chain.Slice(i, i+1), nil); err != nil { + if err := m2.InsertChain(chain.Slice(i, i+1)); err != nil { t.Fatalf("block %d: failed to insert into chain: %v", i, err) } @@ -1130,7 +1159,7 @@ func TestBlockchainHeaderchainReorgConsistency(t *testing.T) { if b.Hash() != h.Hash() { t.Errorf("block %d: current block/header mismatch: block #%d [%x…], header #%d [%x…]", i, b.Number(), b.Hash().Bytes()[:4], h.Number, h.Hash().Bytes()[:4]) } - if err := m2.InsertChain(forks[i], nil); err != nil { + if err := m2.InsertChain(forks[i]); err != nil { t.Fatalf(" fork %d: failed to insert into chain: %v", i, err) } b, err = m.BlockReader.CurrentBlock(tx) @@ -1151,6 +1180,7 @@ func TestBlockchainHeaderchainReorgConsistency(t *testing.T) { // Tests that doing large reorgs works even if the state associated with the // forking point is not available any more. func TestLargeReorgTrieGC(t *testing.T) { + t.Parallel() // Generate the original common chain segment and the two competing forks m, m2 := mock.Mock(t), mock.Mock(t) @@ -1184,20 +1214,20 @@ func TestLargeReorgTrieGC(t *testing.T) { } // Import the shared chain and the original canonical one - if err := m2.InsertChain(shared, nil); err != nil { + if err := m2.InsertChain(shared); err != nil { t.Fatalf("failed to insert shared chain: %v", err) } - if err := m2.InsertChain(original, nil); err != nil { + if err := m2.InsertChain(original); err != nil { t.Fatalf("failed to insert original chain: %v", err) } // Import the competitor chain without exceeding the canonical's TD and ensure // we have not processed any of the blocks (protection against malicious blocks) - if err := m2.InsertChain(competitor.Slice(0, competitor.Length()-2), nil); err != nil { + if err := m2.InsertChain(competitor.Slice(0, competitor.Length()-2)); err != nil { t.Fatalf("failed to insert competitor chain: %v", err) } // Import the head of the competitor chain, triggering the reorg and ensure we // successfully reprocess all the stashed away blocks. - if err := m2.InsertChain(competitor.Slice(competitor.Length()-2, competitor.Length()), nil); err != nil { + if err := m2.InsertChain(competitor.Slice(competitor.Length()-2, competitor.Length())); err != nil { t.Fatalf("failed to finalize competitor chain: %v", err) } } @@ -1210,6 +1240,7 @@ func TestLargeReorgTrieGC(t *testing.T) { // - https://github.com/ethereum/go-ethereum/issues/18977 // - https://github.com/ethereum/go-ethereum/pull/18988 func TestLowDiffLongChain(t *testing.T) { + t.Parallel() // Generate a canonical chain to act as the main dataset m := mock.Mock(t) @@ -1238,12 +1269,12 @@ func TestLowDiffLongChain(t *testing.T) { // Import the canonical chain m2 := mock.Mock(t) - if err := m2.InsertChain(chain, nil); err != nil { + if err := m2.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } // And now import the fork - if err := m2.InsertChain(fork, nil); err != nil { + if err := m2.InsertChain(fork); err != nil { t.Fatalf("failed to insert into chain: %v", err) } @@ -1281,6 +1312,7 @@ func TestLowDiffLongChain(t *testing.T) { // each transaction, so this works ok. The rework accumulated writes in memory // first, but the journal wiped the entire state object on create-revert. func TestDeleteCreateRevert(t *testing.T) { + t.Parallel() var ( aa = libcommon.HexToAddress("0x000000000000000000000000000000000000aaaa") bb = libcommon.HexToAddress("0x000000000000000000000000000000000000bbbb") @@ -1336,7 +1368,7 @@ func TestDeleteCreateRevert(t *testing.T) { t.Fatalf("generate blocks: %v", err) } - if err := m.InsertChain(chain, nil); err != nil { + if err := m.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } } @@ -1349,6 +1381,7 @@ func TestDeleteCreateRevert(t *testing.T) { // Expected outcome is that _all_ slots are cleared from A, due to the selfdestruct, // and then the new slots exist func TestDeleteRecreateSlots(t *testing.T) { + t.Parallel() var ( // Generate a canonical chain to act as the main dataset // A sender who makes transactions, has some funds @@ -1441,7 +1474,7 @@ func TestDeleteRecreateSlots(t *testing.T) { t.Fatalf("generate blocks: %v", err) } // Import the canonical chain - if err := m.InsertChain(chain, nil); err != nil { + if err := m.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } err = m.DB.View(m.Ctx, func(tx kv.Tx) error { @@ -1476,6 +1509,7 @@ func TestDeleteRecreateSlots(t *testing.T) { } func TestCVE2020_26265(t *testing.T) { + t.Parallel() var ( // Generate a canonical chain to act as the main dataset // A sender who makes transactions, has some funds @@ -1559,7 +1593,7 @@ func TestCVE2020_26265(t *testing.T) { t.Fatalf("generate blocks: %v", err) } // Import the canonical chain - if err := m.InsertChain(chain, nil); err != nil { + if err := m.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } err = m.DB.View(m.Ctx, func(tx kv.Tx) error { @@ -1580,6 +1614,7 @@ func TestCVE2020_26265(t *testing.T) { // regular value-transfer // Expected outcome is that _all_ slots are cleared from A func TestDeleteRecreateAccount(t *testing.T) { + t.Parallel() var ( // Generate a canonical chain to act as the main dataset // A sender who makes transactions, has some funds @@ -1626,7 +1661,7 @@ func TestDeleteRecreateAccount(t *testing.T) { t.Fatalf("generate blocks: %v", err) } // Import the canonical chain - if err := m.InsertChain(chain, nil); err != nil { + if err := m.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } err = m.DB.View(m.Ctx, func(tx kv.Tx) error { @@ -1657,6 +1692,7 @@ func TestDeleteRecreateAccount(t *testing.T) { // Expected outcome is that _all_ slots are cleared from A, due to the selfdestruct, // and then the new slots exist func TestDeleteRecreateSlotsAcrossManyBlocks(t *testing.T) { + t.Parallel() var ( // Generate a canonical chain to act as the main dataset // A sender who makes transactions, has some funds @@ -1806,7 +1842,7 @@ func TestDeleteRecreateSlotsAcrossManyBlocks(t *testing.T) { } for i := range chain.Blocks { blockNum := i + 1 - if err := m.InsertChain(chain.Slice(i, i+1), nil); err != nil { + if err := m.InsertChain(chain.Slice(i, i+1)); err != nil { t.Fatalf("block %d: failed to insert into chain: %v", i, err) } err = m.DB.View(m.Ctx, func(tx kv.Tx) error { @@ -1864,6 +1900,7 @@ func TestDeleteRecreateSlotsAcrossManyBlocks(t *testing.T) { // We need to either roll back the snapDestructs, or not place it into snapDestructs // in the first place. func TestInitThenFailCreateContract(t *testing.T) { + t.Parallel() var ( // Generate a canonical chain to act as the main dataset // A sender who makes transactions, has some funds @@ -1949,7 +1986,7 @@ func TestInitThenFailCreateContract(t *testing.T) { // First block tries to create, but fails { block := chain.Blocks[0] - if err := m.InsertChain(chain.Slice(0, 1), nil); err != nil { + if err := m.InsertChain(chain.Slice(0, 1)); err != nil { t.Fatalf("block %d: failed to insert into chain: %v", block.NumberU64(), err) } statedb = state.New(m.NewHistoryStateReader(1, tx)) @@ -1959,7 +1996,7 @@ func TestInitThenFailCreateContract(t *testing.T) { } // Import the rest of the blocks for i, block := range chain.Blocks[1:] { - if err := m.InsertChain(chain.Slice(1+i, 2+i), nil); err != nil { + if err := m.InsertChain(chain.Slice(1+i, 2+i)); err != nil { t.Fatalf("block %d: failed to insert into chain: %v", block.NumberU64(), err) } } @@ -1974,6 +2011,7 @@ func TestInitThenFailCreateContract(t *testing.T) { // checking that the gas usage of a hot SLOAD and a cold SLOAD are calculated // correctly. func TestEIP2718Transition(t *testing.T) { + t.Parallel() var ( aa = libcommon.HexToAddress("0x000000000000000000000000000000000000aaaa") @@ -2033,7 +2071,7 @@ func TestEIP2718Transition(t *testing.T) { // Import the canonical chain - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } @@ -2064,6 +2102,7 @@ func TestEIP2718Transition(t *testing.T) { // feeCap - tip < baseFee. // 6. Legacy transaction behave as expected (e.g. gasPrice = feeCap = tip). func TestEIP1559Transition(t *testing.T) { + t.Parallel() t.Skip("needs fixing") var ( aa = libcommon.HexToAddress("0x000000000000000000000000000000000000aaaa") @@ -2135,12 +2174,7 @@ func TestEIP1559Transition(t *testing.T) { } // Import the canonical chain - if err := m.DB.Update(m.Ctx, func(tx kv.RwTx) error { - if err = m.InsertChain(chain, tx); err != nil { - t.Fatalf("failed to insert into chain: %v", err) - } - return nil - }); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } @@ -2188,7 +2222,7 @@ func TestEIP1559Transition(t *testing.T) { t.Fatalf("generate chain: %v", err) } - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { t.Fatalf("failed to insert into chain: %v", err) } diff --git a/turbo/stages/bodydownload/body_algos.go b/turbo/stages/bodydownload/body_algos.go index 80ec0770e80..2ecf80449e3 100644 --- a/turbo/stages/bodydownload/body_algos.go +++ b/turbo/stages/bodydownload/body_algos.go @@ -11,7 +11,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/dbg" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/log/v3" "golang.org/x/exp/maps" "github.com/ledgerwatch/erigon/core/rawdb" @@ -203,12 +202,12 @@ func (bd *BodyDownload) checkPrefetchedBlock(hash libcommon.Hash, tx kv.RwTx, bl // Calculate the TD of the block (it's not imported yet, so block.Td is not valid) if header.Difficulty.Sign() != 0 { // don't propagate proof-of-stake blocks if parent, err := rawdb.ReadTd(tx, header.ParentHash, header.Number.Uint64()-1); err != nil { - log.Error("Failed to ReadTd", "err", err, "number", header.Number.Uint64()-1, "hash", header.ParentHash) + bd.logger.Error("Failed to ReadTd", "err", err, "number", header.Number.Uint64()-1, "hash", header.ParentHash) } else if parent != nil { td := new(big.Int).Add(header.Difficulty, parent) go blockPropagator(context.Background(), header, body, td) } else { - log.Error("Propagating dangling block", "number", header.Number.Uint64(), "hash", hash) + bd.logger.Error("Propagating dangling block", "number", header.Number.Uint64(), "hash", hash) } } @@ -280,16 +279,16 @@ Loop: } if delivery.txs == nil { - log.Warn("nil transactions delivered", "peer_id", delivery.peerID, "p2p_msg_len", delivery.lenOfP2PMessage) + bd.logger.Warn("nil transactions delivered", "peer_id", delivery.peerID, "p2p_msg_len", delivery.lenOfP2PMessage) } if delivery.uncles == nil { - log.Warn("nil uncles delivered", "peer_id", delivery.peerID, "p2p_msg_len", delivery.lenOfP2PMessage) + bd.logger.Warn("nil uncles delivered", "peer_id", delivery.peerID, "p2p_msg_len", delivery.lenOfP2PMessage) } if delivery.withdrawals == nil { - log.Warn("nil withdrawals delivered", "peer_id", delivery.peerID, "p2p_msg_len", delivery.lenOfP2PMessage) + bd.logger.Warn("nil withdrawals delivered", "peer_id", delivery.peerID, "p2p_msg_len", delivery.lenOfP2PMessage) } if delivery.txs == nil || delivery.uncles == nil || delivery.withdrawals == nil { - log.Debug("delivery body processing has been skipped due to nil tx|data") + bd.logger.Debug("delivery body processing has been skipped due to nil tx|data") continue } diff --git a/turbo/stages/bodydownload/body_data_struct.go b/turbo/stages/bodydownload/body_data_struct.go index ca2703e4ce7..9f6f7c1741f 100644 --- a/turbo/stages/bodydownload/body_data_struct.go +++ b/turbo/stages/bodydownload/body_data_struct.go @@ -6,6 +6,7 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" "github.com/ledgerwatch/erigon/turbo/services" + "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/types" @@ -51,6 +52,7 @@ type BodyDownload struct { bodyCacheLimit int // Limit of body Cache size blockBufferSize int br services.FullBlockReader + logger log.Logger } // BodyRequest is a sketch of the request for block bodies, meaning that access to the database is required to convert it to the actual BlockBodies request (look up hashes of canonical blocks) @@ -62,7 +64,7 @@ type BodyRequest struct { } // NewBodyDownload create a new body download state object -func NewBodyDownload(engine consensus.Engine, blockBufferSize, bodyCacheLimit int, br services.FullBlockReader) *BodyDownload { +func NewBodyDownload(engine consensus.Engine, blockBufferSize, bodyCacheLimit int, br services.FullBlockReader, logger log.Logger) *BodyDownload { bd := &BodyDownload{ requestedMap: make(map[TripleHash]uint64), bodyCacheLimit: bodyCacheLimit, @@ -82,6 +84,7 @@ func NewBodyDownload(engine consensus.Engine, blockBufferSize, bodyCacheLimit in bodyCache: btree.NewG[BodyTreeItem](32, func(a, b BodyTreeItem) bool { return a.blockNum < b.blockNum }), br: br, blockBufferSize: blockBufferSize, + logger: logger, } return bd } diff --git a/turbo/stages/bodydownload/body_test.go b/turbo/stages/bodydownload/body_test.go index 1c8714ce194..8d0d6ecc3a5 100644 --- a/turbo/stages/bodydownload/body_test.go +++ b/turbo/stages/bodydownload/body_test.go @@ -11,11 +11,12 @@ import ( ) func TestCreateBodyDownload(t *testing.T) { + t.Parallel() m := mock.Mock(t) tx, err := m.DB.BeginRo(m.Ctx) require.NoError(t, err) defer tx.Rollback() - bd := bodydownload.NewBodyDownload(ethash.NewFaker(), 128, 100, m.BlockReader) + bd := bodydownload.NewBodyDownload(ethash.NewFaker(), 128, 100, m.BlockReader, m.Log) if _, _, _, _, err := bd.UpdateFromDb(tx); err != nil { t.Fatalf("update from db: %v", err) } diff --git a/turbo/stages/chain_makers_test.go b/turbo/stages/chain_makers_test.go index 49e10c12fb8..90c75b08a8a 100644 --- a/turbo/stages/chain_makers_test.go +++ b/turbo/stages/chain_makers_test.go @@ -35,6 +35,7 @@ import ( ) func TestGenerateChain(t *testing.T) { + t.Parallel() var ( key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") key2, _ = crypto.HexToECDSA("8a1f9a8f95be41cd7ccb6168179afb4504aefe388d1e14474d32c45c72ce7b7a") @@ -92,6 +93,11 @@ func TestGenerateChain(t *testing.T) { fmt.Printf("generate chain: %v\n", err) } + // Import the chain. This runs all block validation rules. + if err := m.InsertChain(chain); err != nil { + fmt.Printf("insert error%v\n", err) + return + } tx, err := m.DB.BeginRw(m.Ctx) if err != nil { fmt.Printf("beginro error: %v\n", err) @@ -99,12 +105,6 @@ func TestGenerateChain(t *testing.T) { } defer tx.Rollback() - // Import the chain. This runs all block validation rules. - if err := m.InsertChain(chain, tx); err != nil { - fmt.Printf("insert error%v\n", err) - return - } - st := state.New(m.NewStateReader(tx)) if big.NewInt(5).Cmp(current(m, tx).Number()) != 0 { t.Errorf("wrong block number: %d", current(m, tx).Number()) diff --git a/turbo/stages/genesis_test.go b/turbo/stages/genesis_test.go index 7aff3688f89..67e685eb366 100644 --- a/turbo/stages/genesis_test.go +++ b/turbo/stages/genesis_test.go @@ -39,6 +39,7 @@ import ( ) func TestSetupGenesis(t *testing.T) { + t.Parallel() var ( customghash = libcommon.HexToHash("0x89c99d90b79719238d2645c7642f2c9295246e80775b38cfd162b696817fbd50") customg = types.Genesis{ @@ -102,6 +103,36 @@ func TestSetupGenesis(t *testing.T) { wantHash: params.SepoliaGenesisHash, wantConfig: params.SepoliaChainConfig, }, + { + name: "custom block in DB, genesis == bor-mainnet", + fn: func(db kv.RwDB) (*chain.Config, *types.Block, error) { + core.MustCommitGenesis(&customg, db, tmpdir) + return core.CommitGenesisBlock(db, core.BorMainnetGenesisBlock(), tmpdir, logger) + }, + wantErr: &types.GenesisMismatchError{Stored: customghash, New: params.BorMainnetGenesisHash}, + wantHash: params.BorMainnetGenesisHash, + wantConfig: params.BorMainnetChainConfig, + }, + { + name: "custom block in DB, genesis == mumbai", + fn: func(db kv.RwDB) (*chain.Config, *types.Block, error) { + core.MustCommitGenesis(&customg, db, tmpdir) + return core.CommitGenesisBlock(db, core.MumbaiGenesisBlock(), tmpdir, logger) + }, + wantErr: &types.GenesisMismatchError{Stored: customghash, New: params.MumbaiGenesisHash}, + wantHash: params.MumbaiGenesisHash, + wantConfig: params.MumbaiChainConfig, + }, + { + name: "custom block in DB, genesis == amoy", + fn: func(db kv.RwDB) (*chain.Config, *types.Block, error) { + core.MustCommitGenesis(&customg, db, tmpdir) + return core.CommitGenesisBlock(db, core.AmoyGenesisBlock(), tmpdir, logger) + }, + wantErr: &types.GenesisMismatchError{Stored: customghash, New: params.AmoyGenesisHash}, + wantHash: params.AmoyGenesisHash, + wantConfig: params.AmoyChainConfig, + }, { name: "compatible config in DB", fn: func(db kv.RwDB) (*chain.Config, *types.Block, error) { @@ -123,7 +154,7 @@ func TestSetupGenesis(t *testing.T) { if err != nil { return nil, nil, err } - if err = m.InsertChain(chain, nil); err != nil { + if err = m.InsertChain(chain); err != nil { return nil, nil, err } // This should return a compatibility error. @@ -143,8 +174,9 @@ func TestSetupGenesis(t *testing.T) { for _, test := range tests { test := test t.Run(test.name, func(t *testing.T) { + t.Parallel() _, db, _ := temporal.NewTestDB(t, datadir.New(tmpdir), nil) - blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) + blockReader := freezeblocks.NewBlockReader(freezeblocks.NewRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New()), freezeblocks.NewBorRoSnapshots(ethconfig.BlocksFreezing{Enabled: false}, "", log.New())) config, genesis, err := test.fn(db) // Check the return values. if !reflect.DeepEqual(err, test.wantErr) { diff --git a/turbo/stages/headerdownload/header_algo_test.go b/turbo/stages/headerdownload/header_algo_test.go index 23a17fedf15..59a8fd3e9fd 100644 --- a/turbo/stages/headerdownload/header_algo_test.go +++ b/turbo/stages/headerdownload/header_algo_test.go @@ -1,10 +1,12 @@ package headerdownload_test import ( + "bytes" "context" "math/big" "testing" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon/core" @@ -16,7 +18,8 @@ import ( "github.com/ledgerwatch/erigon/turbo/stages/mock" ) -func TestInserter1(t *testing.T) { +func TestSideChainInsert(t *testing.T) { + t.Parallel() funds := big.NewInt(1000000000) key, _ := crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291") address := crypto.PubkeyToAddress(key.PublicKey) @@ -40,24 +43,83 @@ func TestInserter1(t *testing.T) { defer tx.Rollback() br := m.BlockReader hi := headerdownload.NewHeaderInserter("headers", big.NewInt(0), 0, br) - h1 := types.Header{ - Number: big.NewInt(1), - Difficulty: big.NewInt(10), - ParentHash: genesis.Hash(), + + // Chain with higher initial difficulty + chain1 := createTestChain(3, genesis.Hash(), 2, []byte("")) + + // Smaller side chain (non-canonical) + chain2 := createTestChain(5, genesis.Hash(), 1, []byte("side1")) + + // Bigger side chain (canonical) + chain3 := createTestChain(7, genesis.Hash(), 1, []byte("side2")) + + // Again smaller side chain but with high difficulty (canonical) + chain4 := createTestChain(5, genesis.Hash(), 2, []byte("side3")) + + // More smaller side chain with same difficulty (canonical) + chain5 := createTestChain(2, genesis.Hash(), 5, []byte("side5")) + + // Bigger side chain with same difficulty (non-canonical) + chain6 := createTestChain(10, genesis.Hash(), 1, []byte("side6")) + + // Same side chain (in terms of number and difficulty) but different hash + chain7 := createTestChain(2, genesis.Hash(), 5, []byte("side7")) + + finalExpectedHash := chain5[len(chain5)-1].Hash() + if bytes.Compare(chain5[len(chain5)-1].Hash().Bytes(), chain7[len(chain7)-1].Hash().Bytes()) < 0 { + finalExpectedHash = chain7[len(chain7)-1].Hash() } - h1Hash := h1.Hash() - h2 := types.Header{ - Number: big.NewInt(2), - Difficulty: big.NewInt(1010), - ParentHash: h1Hash, + + testCases := []struct { + name string + chain []types.Header + expectedHash common.Hash + expectedDiff int64 + }{ + {"normal initial insert", chain1, chain1[len(chain1)-1].Hash(), 6}, + {"td(current) > td(incoming)", chain2, chain1[len(chain1)-1].Hash(), 6}, + {"td(incoming) > td(current), number(incoming) > number(current)", chain3, chain3[len(chain3)-1].Hash(), 7}, + {"td(incoming) > td(current), number(current) > number(incoming)", chain4, chain4[len(chain4)-1].Hash(), 10}, + {"td(incoming) = td(current), number(current) > number(current)", chain5, chain5[len(chain5)-1].Hash(), 10}, + {"td(incoming) = td(current), number(incoming) > number(current)", chain6, chain5[len(chain5)-1].Hash(), 10}, + {"td(incoming) = td(current), number(incoming) = number(current), hash different", chain7, finalExpectedHash, 10}, } - h2Hash := h2.Hash() - data1, _ := rlp.EncodeToBytes(&h1) - if _, err = hi.FeedHeaderPoW(tx, br, &h1, data1, h1Hash, 1); err != nil { - t.Errorf("feed empty header 1: %v", err) + + for _, tc := range testCases { + tc := tc + for i, h := range tc.chain { + h := h + data, _ := rlp.EncodeToBytes(&h) + if _, err = hi.FeedHeaderPoW(tx, br, &h, data, h.Hash(), uint64(i+1)); err != nil { + t.Errorf("feed empty header for %s, err: %v", tc.name, err) + } + } + + if hi.GetHighestHash() != tc.expectedHash { + t.Errorf("incorrect highest hash for %s, expected %s, got %s", tc.name, tc.expectedHash, hi.GetHighestHash()) + } + if hi.GetLocalTd().Int64() != tc.expectedDiff { + t.Errorf("incorrect difficulty for %s, expected %d, got %d", tc.name, tc.expectedDiff, hi.GetLocalTd().Int64()) + } } - data2, _ := rlp.EncodeToBytes(&h2) - if _, err = hi.FeedHeaderPoW(tx, br, &h2, data2, h2Hash, 2); err != nil { - t.Errorf("feed empty header 2: %v", err) +} + +func createTestChain(length int64, parent common.Hash, diff int64, extra []byte) []types.Header { + var ( + i int64 + headers []types.Header + ) + + for i = 0; i < length; i++ { + h := types.Header{ + Number: big.NewInt(i + 1), + Difficulty: big.NewInt(diff), + ParentHash: parent, + Extra: extra, + } + headers = append(headers, h) + parent = h.Hash() } + + return headers } diff --git a/turbo/stages/headerdownload/header_algos.go b/turbo/stages/headerdownload/header_algos.go index ed48bcba25d..f9b64b074ea 100644 --- a/turbo/stages/headerdownload/header_algos.go +++ b/turbo/stages/headerdownload/header_algos.go @@ -14,6 +14,8 @@ import ( "strings" "time" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" + libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/etl" "github.com/ledgerwatch/erigon-lib/kv" @@ -23,7 +25,6 @@ import ( "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/types" @@ -101,6 +102,7 @@ func (hd *HeaderDownload) SingleHeaderAsSegment(headerRaw []byte, header *types. headerHash := types.RawRlpHash(headerRaw) if _, bad := hd.badHeaders[headerHash]; bad { + hd.stats.RejectedBadHeaders++ hd.logger.Warn("[downloader] Rejected header marked as bad", "hash", headerHash, "height", header.Number.Uint64()) return nil, BadBlockPenalty, nil } @@ -121,6 +123,11 @@ func (hd *HeaderDownload) ReportBadHeader(headerHash libcommon.Hash) { hd.lock.Lock() defer hd.lock.Unlock() hd.badHeaders[headerHash] = struct{}{} +} + +func (hd *HeaderDownload) UnlinkHeader(headerHash libcommon.Hash) { + hd.lock.Lock() + defer hd.lock.Unlock() // Find the link, remove it and all its descendands from all the queues if link, ok := hd.links[headerHash]; ok { hd.removeUpwards(link) @@ -167,9 +174,10 @@ func (hd *HeaderDownload) removeUpwards(link *Link) { toRemove = toRemove[:len(toRemove)-1] delete(hd.links, removal.hash) hd.moveLinkToQueue(removal, NoQueue) - for child := removal.fChild; child != nil; child, child.next = child.next, nil { + for child := removal.fChild; child != nil; child = child.next { toRemove = append(toRemove, child) } + removal.ClearChildren() } } @@ -202,29 +210,12 @@ func (hd *HeaderDownload) pruneLinkQueue() { for hd.linkQueue.Len() > hd.linkLimit { link := heap.Pop(&hd.linkQueue).(*Link) delete(hd.links, link.hash) - for child := link.fChild; child != nil; child, child.next = child.next, nil { - } + link.ClearChildren() if parentLink, ok := hd.links[link.header.ParentHash]; ok { - var prevChild *Link - for child := parentLink.fChild; child != nil && child != link; child = child.next { - prevChild = child - } - if prevChild == nil { - parentLink.fChild = link.next - } else { - prevChild.next = link.next - } + parentLink.RemoveChild(link) } if anchor, ok := hd.anchors[link.header.ParentHash]; ok { - var prevChild *Link - for child := anchor.fLink; child != nil && child != link; child = child.next { - prevChild = child - } - if prevChild == nil { - anchor.fLink = link.next - } else { - prevChild.next = link.next - } + anchor.RemoveChild(link) if anchor.fLink == nil { hd.removeAnchor(anchor) } @@ -322,8 +313,7 @@ func (hd *HeaderDownload) RecoverFromDb(db kv.RoDB) error { for hd.persistedLinkQueue.Len() > 0 { link := heap.Pop(&hd.persistedLinkQueue).(*Link) delete(hd.links, link.hash) - for child := link.fChild; child != nil; child, child.next = child.next, nil { - } + link.ClearChildren() } err := db.View(context.Background(), func(tx kv.Tx) error { c, err := tx.Cursor(kv.Headers) @@ -443,6 +433,8 @@ func (hd *HeaderDownload) requestMoreHeadersForPOS(currentTime time.Time) (timeo return } + hd.logger.Debug("[downloader] Request header", "numer", anchor.blockHeight-1, "length", 192) + // Request ancestors request = &HeaderRequest{ Anchor: anchor, @@ -493,7 +485,7 @@ func (hd *HeaderDownload) UpdateRetryTime(req *HeaderRequest, currentTime time.T func (hd *HeaderDownload) RequestSkeleton() *HeaderRequest { hd.lock.RLock() defer hd.lock.RUnlock() - hd.logger.Debug("[downloader] Request skeleton", "anchors", len(hd.anchors), "highestInDb", hd.highestInDb) + var stride uint64 if hd.initialCycle { stride = 192 @@ -506,6 +498,7 @@ func (hd *HeaderDownload) RequestSkeleton() *HeaderRequest { } else { from-- } + return &HeaderRequest{Number: from, Length: length, Skip: stride, Reverse: false} } @@ -521,7 +514,7 @@ func (hd *HeaderDownload) InsertHeader(hf FeedHeaderFunc, terminalTotalDifficult var returnTd *big.Int var lastD *big.Int var lastTime uint64 - if hd.insertQueue.Len() > 0 && hd.insertQueue[0].blockHeight <= hd.highestInDb+1 { + if hd.insertQueue.Len() > 0 { link := hd.insertQueue[0] _, bad := hd.badHeaders[link.hash] if !bad && !link.persisted { @@ -533,6 +526,7 @@ func (hd *HeaderDownload) InsertHeader(hf FeedHeaderFunc, terminalTotalDifficult delete(hd.links, link.hash) hd.removeUpwards(link) dataflow.HeaderDownloadStates.AddChange(link.blockHeight, dataflow.HeaderBad) + hd.stats.RejectedBadHeaders++ hd.logger.Warn("[downloader] Rejected header marked as bad", "hash", link.hash, "height", link.blockHeight) return true, false, 0, lastTime, nil } @@ -548,7 +542,11 @@ func (hd *HeaderDownload) InsertHeader(hf FeedHeaderFunc, terminalTotalDifficult hd.moveLinkToQueue(link, NoQueue) delete(hd.links, link.hash) hd.removeUpwards(link) + if parentLink, ok := hd.links[link.header.ParentHash]; ok { + parentLink.RemoveChild(link) + } dataflow.HeaderDownloadStates.AddChange(link.blockHeight, dataflow.HeaderEvicted) + hd.stats.InvalidHeaders++ return true, false, 0, lastTime, nil } } @@ -574,7 +572,7 @@ func (hd *HeaderDownload) InsertHeader(hf FeedHeaderFunc, terminalTotalDifficult if terminalTotalDifficulty != nil { if td.Cmp(terminalTotalDifficulty) >= 0 { hd.highestInDb = link.blockHeight - hd.logger.Info(POSPandaBanner) + //hd.logger.Info(POSPandaBanner) dataflow.HeaderDownloadStates.AddChange(link.blockHeight, dataflow.HeaderInserted) return true, true, 0, lastTime, nil } @@ -608,8 +606,7 @@ func (hd *HeaderDownload) InsertHeader(hf FeedHeaderFunc, terminalTotalDifficult link := heap.Pop(&hd.persistedLinkQueue).(*Link) dataflow.HeaderDownloadStates.AddChange(link.blockHeight, dataflow.HeaderEvicted) delete(hd.links, link.hash) - for child := link.fChild; child != nil; child, child.next = child.next, nil { - } + link.ClearChildren() } var blocksToTTD uint64 if terminalTotalDifficulty != nil && returnTd != nil && lastD != nil { @@ -763,6 +760,15 @@ func (hd *HeaderDownload) HasLink(linkHash libcommon.Hash) bool { return false } +func (hd *HeaderDownload) SourcePeerId(linkHash libcommon.Hash) [64]byte { + hd.lock.RLock() + defer hd.lock.RUnlock() + if link, ok := hd.getLink(linkHash); ok { + return link.peerId + } + return [64]byte{} +} + // SaveExternalAnnounce - does mark hash as seen in external announcement // only such hashes will broadcast further after func (hd *HeaderDownload) SaveExternalAnnounce(hash libcommon.Hash) { @@ -890,24 +896,40 @@ func (hi *HeaderInserter) FeedHeaderPoW(db kv.StatelessRwTx, headerReader servic } // Calculate total difficulty of this header using parent's total difficulty td = new(big.Int).Add(parentTd, header.Difficulty) + // Now we can decide wether this header will create a change in the canonical head - if td.Cmp(hi.localTd) > 0 { - hi.newCanonical = true - forkingPoint, err := hi.ForkingPoint(db, header, parent) - if err != nil { - return nil, err + if td.Cmp(hi.localTd) >= 0 { + reorg := true + + // TODO: Add bor check here if required + // Borrowed from https://github.com/maticnetwork/bor/blob/master/core/forkchoice.go#L81 + if td.Cmp(hi.localTd) == 0 { + if blockHeight > hi.highest { + reorg = false + } else if blockHeight == hi.highest { + // Compare hashes of block in case of tie breaker. Lexicographically larger hash wins. + reorg = bytes.Compare(hi.highestHash.Bytes(), hash.Bytes()) < 0 + } } - hi.highest = blockHeight - hi.highestHash = hash - hi.highestTimestamp = header.Time - hi.canonicalCache.Add(blockHeight, hash) - // See if the forking point affects the unwindPoint (the block number to which other stages will need to unwind before the new canonical chain is applied) - if forkingPoint < hi.unwindPoint { - hi.unwindPoint = forkingPoint - hi.unwind = true + + if reorg { + hi.newCanonical = true + forkingPoint, err := hi.ForkingPoint(db, header, parent) + if err != nil { + return nil, err + } + hi.highest = blockHeight + hi.highestHash = hash + hi.highestTimestamp = header.Time + hi.canonicalCache.Add(blockHeight, hash) + // See if the forking point affects the unwindPoint (the block number to which other stages will need to unwind before the new canonical chain is applied) + if forkingPoint < hi.unwindPoint { + hi.unwindPoint = forkingPoint + hi.unwind = true + } + // This makes sure we end up choosing the chain with the max total difficulty + hi.localTd.Set(td) } - // This makes sure we end up choosing the chain with the max total difficulty - hi.localTd.Set(td) } if err = rawdb.WriteTd(db, hash, blockHeight, td); err != nil { return nil, fmt.Errorf("[%s] failed to WriteTd: %w", hi.logPrefix, err) @@ -944,6 +966,10 @@ func (hi *HeaderInserter) FeedHeaderPoS(db kv.RwTx, header *types.Header, hash l return nil } +func (hi *HeaderInserter) GetLocalTd() *big.Int { + return hi.localTd +} + func (hi *HeaderInserter) GetHighest() uint64 { return hi.highest } @@ -1062,6 +1088,8 @@ func (hd *HeaderDownload) ProcessHeaders(csHeaders []ChainSegmentHeader, newBloc } func (hd *HeaderDownload) ExtractStats() Stats { + hd.lock.RLock() + defer hd.lock.RUnlock() s := hd.stats hd.stats = Stats{} return s diff --git a/turbo/stages/headerdownload/header_data_struct.go b/turbo/stages/headerdownload/header_data_struct.go index 975761cf423..85e0e4b9e4d 100644 --- a/turbo/stages/headerdownload/header_data_struct.go +++ b/turbo/stages/headerdownload/header_data_struct.go @@ -27,7 +27,7 @@ const ( PersistedQueueID ) -// Link is a chain link that can be connect to other chain links +// Link is a chain link that can be connected to other links in the chain // For a given link, parent link can be found by hd.links[link.header.ParentHash], and child links by link.next (there may be more than one child in case of forks) // Links encapsule block headers // Links can be either persistent or not. Persistent links encapsule headers that have already been saved to the database, but these links are still @@ -44,6 +44,24 @@ type Link struct { linked bool // Whether this link is connected (via chain of ParentHash to one of the persisted links) idx int // Index in the heap queueId QueueID // which queue this link belongs to + peerId [64]byte +} + +func (link *Link) ClearChildren() { + for child := link.fChild; child != nil; child, child.next = child.next, nil { + } +} + +func (parentLink *Link) RemoveChild(link *Link) { + var prevChild *Link + for child := parentLink.fChild; child != nil && child != link; child = child.next { + prevChild = child + } + if prevChild == nil { + parentLink.fChild = link.next + } else { + prevChild.next = link.next + } } // LinkQueue is the priority queue of links. It is instantiated once for persistent links, and once for non-persistent links @@ -111,6 +129,18 @@ type Anchor struct { timeouts int // Number of timeout that this anchor has experiences - after certain threshold, it gets invalidated } +func (anchor *Anchor) RemoveChild(link *Link) { + var prevChild *Link + for child := anchor.fLink; child != nil && child != link; child = child.next { + prevChild = child + } + if prevChild == nil { + anchor.fLink = link.next + } else { + prevChild.next = link.next + } +} + type ChainSegmentHeader struct { HeaderRaw rlp.RawValue Header *types.Header @@ -197,7 +227,7 @@ func (iq *InsertQueue) Pop() interface{} { old := *iq n := len(old) x := old[n-1] - old[n-1] = nil + old[n-1] = nil // avoid memory leak *iq = old[0 : n-1] x.idx = -1 x.queueId = NoQueue @@ -223,6 +253,8 @@ type Stats struct { SkeletonReqMaxBlock uint64 RespMinBlock uint64 RespMaxBlock uint64 + InvalidHeaders int + RejectedBadHeaders int } type HeaderDownload struct { diff --git a/turbo/stages/mock/mock_sentry.go b/turbo/stages/mock/mock_sentry.go index 1f165320bd6..fc92b99ec5c 100644 --- a/turbo/stages/mock/mock_sentry.go +++ b/turbo/stages/mock/mock_sentry.go @@ -8,10 +8,10 @@ import ( "os" "sync" "testing" - - stages2 "github.com/ledgerwatch/erigon/turbo/stages" + "time" "github.com/c2h5oh/datasize" + lru "github.com/hashicorp/golang-lru/arc/v2" "github.com/holiman/uint256" "github.com/ledgerwatch/log/v3" "google.golang.org/protobuf/types/known/emptypb" @@ -22,6 +22,7 @@ import ( "github.com/ledgerwatch/erigon-lib/direct" "github.com/ledgerwatch/erigon-lib/gointerfaces" proto_downloader "github.com/ledgerwatch/erigon-lib/gointerfaces/downloader" + "github.com/ledgerwatch/erigon-lib/gointerfaces/execution" proto_sentry "github.com/ledgerwatch/erigon-lib/gointerfaces/sentry" ptypes "github.com/ledgerwatch/erigon-lib/gointerfaces/types" "github.com/ledgerwatch/erigon-lib/kv" @@ -33,7 +34,6 @@ import ( "github.com/ledgerwatch/erigon-lib/txpool/txpoolcfg" types2 "github.com/ledgerwatch/erigon-lib/types" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" "github.com/ledgerwatch/erigon/consensus" "github.com/ledgerwatch/erigon/consensus/bor" "github.com/ledgerwatch/erigon/consensus/ethash" @@ -51,14 +51,18 @@ import ( "github.com/ledgerwatch/erigon/eth/stagedsync" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/erigon/ethdb/prune" + "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client" "github.com/ledgerwatch/erigon/params" "github.com/ledgerwatch/erigon/rlp" "github.com/ledgerwatch/erigon/turbo/builder" "github.com/ledgerwatch/erigon/turbo/engineapi/engine_helpers" + "github.com/ledgerwatch/erigon/turbo/execution/eth1" + "github.com/ledgerwatch/erigon/turbo/execution/eth1/eth1_chain_reader.go" "github.com/ledgerwatch/erigon/turbo/rpchelper" "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/erigon/turbo/shards" "github.com/ledgerwatch/erigon/turbo/snapshotsync/freezeblocks" + stages2 "github.com/ledgerwatch/erigon/turbo/stages" "github.com/ledgerwatch/erigon/turbo/stages/bodydownload" "github.com/ledgerwatch/erigon/turbo/stages/headerdownload" "github.com/ledgerwatch/erigon/turbo/trie" @@ -68,30 +72,31 @@ const MockInsertAsInitialCycle = false type MockSentry struct { proto_sentry.UnimplementedSentryServer - Ctx context.Context - Log log.Logger - tb testing.TB - cancel context.CancelFunc - DB kv.RwDB - Dirs datadir.Dirs - Engine consensus.Engine - gspec *types.Genesis - ChainConfig *chain.Config - Sync *stagedsync.Sync - MiningSync *stagedsync.Sync - PendingBlocks chan *types.Block - MinedBlocks chan *types.Block - sentriesClient *sentry.MultiClient - Key *ecdsa.PrivateKey - Genesis *types.Block - SentryClient direct.SentryClient - PeerId *ptypes.H512 - UpdateHead func(Ctx context.Context, headHeight, headTime uint64, hash libcommon.Hash, td *uint256.Int) - streams map[proto_sentry.MessageId][]proto_sentry.Sentry_MessagesServer - sentMessages []*proto_sentry.OutboundMessageData - StreamWg sync.WaitGroup - ReceiveWg sync.WaitGroup - Address libcommon.Address + Ctx context.Context + Log log.Logger + tb testing.TB + cancel context.CancelFunc + DB kv.RwDB + Dirs datadir.Dirs + Engine consensus.Engine + gspec *types.Genesis + ChainConfig *chain.Config + Sync *stagedsync.Sync + MiningSync *stagedsync.Sync + PendingBlocks chan *types.Block + MinedBlocks chan *types.Block + sentriesClient *sentry_multi_client.MultiClient + Key *ecdsa.PrivateKey + Genesis *types.Block + SentryClient direct.SentryClient + PeerId *ptypes.H512 + UpdateHead func(Ctx context.Context, headHeight, headTime uint64, hash libcommon.Hash, td *uint256.Int) + streams map[proto_sentry.MessageId][]proto_sentry.Sentry_MessagesServer + sentMessages []*proto_sentry.OutboundMessageData + StreamWg sync.WaitGroup + ReceiveWg sync.WaitGroup + Address libcommon.Address + Eth1ExecutionService *eth1.EthereumExecutionModule Notifications *shards.Notifications @@ -235,12 +240,8 @@ func MockWithGenesisPruneMode(tb testing.TB, gspec *types.Genesis, key *ecdsa.Pr func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateKey, prune prune.Mode, engine consensus.Engine, blockBufferSize int, withTxPool, withPosDownloader, checkStateRoot bool, ) *MockSentry { - var tmpdir string - if tb != nil { - tmpdir = tb.TempDir() - } else { - tmpdir = os.TempDir() - } + tmpdir := os.TempDir() + dirs := datadir.New(tmpdir) var err error @@ -254,11 +255,12 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK logger := log.New() ctx, ctxCancel := context.WithCancel(context.Background()) - histV3, db, agg := temporal.NewTestDB(tb, dirs, nil) + histV3, db, agg := temporal.NewTestDB(nil, dirs, nil) cfg.HistoryV3 = histV3 erigonGrpcServeer := remotedbserver.NewKvServer(ctx, db, nil, nil, logger) allSnapshots := freezeblocks.NewRoSnapshots(ethconfig.Defaults.Snapshot, dirs.Snap, logger) + allBorSnapshots := freezeblocks.NewBorRoSnapshots(ethconfig.Defaults.Snapshot, dirs.Snap, logger) mock := &MockSentry{ Ctx: ctx, cancel: ctxCancel, DB: db, agg: agg, tb: tb, @@ -277,7 +279,7 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK }, PeerId: gointerfaces.ConvertHashToH512([64]byte{0x12, 0x34, 0x50}), // "12345" BlockSnapshots: allSnapshots, - BlockReader: freezeblocks.NewBlockReader(allSnapshots), + BlockReader: freezeblocks.NewBlockReader(allSnapshots, allBorSnapshots), HistoryV3: cfg.HistoryV3, } if tb != nil { @@ -296,7 +298,6 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK sendBodyRequest := func(context.Context, *bodydownload.BodyRequest) ([64]byte, bool) { return [64]byte{}, false } blockPropagator := func(Ctx context.Context, header *types.Header, body *types.RawBody, td *big.Int) {} - if !cfg.DeprecatedTxPool.Disable { poolCfg := txpoolcfg.DefaultConfig newTxs := make(chan types2.Announcements, 1024) @@ -308,7 +309,8 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK chainID, _ := uint256.FromBig(mock.ChainConfig.ChainID) shanghaiTime := mock.ChainConfig.ShanghaiTime cancunTime := mock.ChainConfig.CancunTime - mock.TxPool, err = txpool.New(newTxs, mock.DB, poolCfg, kvcache.NewDummy(), *chainID, shanghaiTime, cancunTime, logger) + maxBlobsPerBlock := mock.ChainConfig.GetMaxBlobsPerBlock() + mock.TxPool, err = txpool.New(newTxs, mock.DB, poolCfg, kvcache.NewDummy(), *chainID, shanghaiTime, nil /* agraBlock */, cancunTime, maxBlobsPerBlock, logger) if err != nil { tb.Fatal(err) } @@ -342,13 +344,14 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK inMemoryExecution := func(batch kv.RwTx, header *types.Header, body *types.RawBody, unwindPoint uint64, headersChain []*types.Header, bodiesChain []*types.RawBody, notifications *shards.Notifications) error { + terseLogger := log.New() + terseLogger.SetHandler(log.LvlFilterHandler(log.LvlWarn, log.StderrHandler)) // Needs its own notifications to not update RPC daemon and txpool about pending blocks - stateSync, err := stages2.NewInMemoryExecution(ctx, mock.DB, ðconfig.Defaults, mock.sentriesClient, dirs, notifications, mock.BlockReader, blockWriter, agg, log.New() /* logging will be discarded */) - if err != nil { - return err - } + stateSync := stages2.NewInMemoryExecution(mock.Ctx, mock.DB, &cfg, mock.sentriesClient, + dirs, notifications, mock.BlockReader, blockWriter, mock.agg, nil, terseLogger) + chainReader := stagedsync.NewChainReaderImpl(mock.ChainConfig, batch, mock.BlockReader, logger) // We start the mining step - if err := stages2.StateStep(ctx, nil, engine, batch, blockWriter, stateSync, mock.sentriesClient.Bd, header, body, unwindPoint, headersChain, bodiesChain); err != nil { + if err := stages2.StateStep(ctx, chainReader, mock.Engine, batch, blockWriter, stateSync, mock.sentriesClient.Bd, header, body, unwindPoint, headersChain, bodiesChain, histV3); err != nil { logger.Warn("Could not validate block", "err", err) return err } @@ -363,11 +366,14 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK } forkValidator := engine_helpers.NewForkValidator(ctx, 1, inMemoryExecution, dirs.Tmp, mock.BlockReader) networkID := uint64(1) - mock.sentriesClient, err = sentry.NewMultiClient( + maxBlockBroadcastPeers := func(header *types.Header) uint { return 0 } + + mock.sentriesClient, err = sentry_multi_client.NewMultiClient( mock.DB, "mock", mock.ChainConfig, mock.Genesis.Hash(), + mock.Genesis.Time(), mock.Engine, networkID, sentries, @@ -376,7 +382,7 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK blockBufferSize, false, forkValidator, - cfg.DropUselessPeers, + maxBlockBroadcastPeers, logger, ) if err != nil { @@ -390,11 +396,44 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK var snapshotsDownloader proto_downloader.DownloaderClient + var ( + snapDb kv.RwDB + recents *lru.ARCCache[libcommon.Hash, *bor.Snapshot] + signatures *lru.ARCCache[libcommon.Hash, libcommon.Address] + ) + if bor, ok := engine.(*bor.Bor); ok { + snapDb = bor.DB + recents = bor.Recents + signatures = bor.Signatures + } + // proof-of-stake mining + assembleBlockPOS := func(param *core.BlockBuilderParameters, interrupt *int32) (*types.BlockWithReceipts, error) { + miningStatePos := stagedsync.NewProposingState(&cfg.Miner) + miningStatePos.MiningConfig.Etherbase = param.SuggestedFeeRecipient + proposingSync := stagedsync.New( + stagedsync.MiningStages(mock.Ctx, + stagedsync.StageMiningCreateBlockCfg(mock.DB, miningStatePos, *mock.ChainConfig, mock.Engine, mock.txPoolDB, param, tmpdir, mock.BlockReader), + stagedsync.StageBorHeimdallCfg(mock.DB, snapDb, miningStatePos, *mock.ChainConfig, nil, mock.BlockReader, nil, nil, recents, signatures), + stagedsync.StageMiningExecCfg(mock.DB, miningStatePos, mock.Notifications.Events, *mock.ChainConfig, mock.Engine, &vm.Config{}, tmpdir, interrupt, param.PayloadId, mock.TxPool, mock.txPoolDB, mock.BlockReader), + stagedsync.StageHashStateCfg(mock.DB, dirs, cfg.HistoryV3), + stagedsync.StageTrieCfg(mock.DB, false, true, true, tmpdir, mock.BlockReader, nil, histV3, mock.agg), + stagedsync.StageMiningFinishCfg(mock.DB, *mock.ChainConfig, mock.Engine, miningStatePos, nil, mock.BlockReader, latestBlockBuiltStore), + ), stagedsync.MiningUnwindOrder, stagedsync.MiningPruneOrder, + logger) + // We start the mining step + if err := stages2.MiningStep(ctx, mock.DB, proposingSync, tmpdir); err != nil { + return nil, err + } + block := <-miningStatePos.MiningResultPOSCh + return block, nil + } + blockRetire := freezeblocks.NewBlockRetire(1, dirs, mock.BlockReader, blockWriter, mock.DB, mock.Notifications.Events, logger) mock.Sync = stagedsync.New( stagedsync.DefaultStages(mock.Ctx, - stagedsync.StageSnapshotsCfg(mock.DB, *mock.ChainConfig, dirs, blockRetire, snapshotsDownloader, mock.BlockReader, mock.Notifications.Events, mock.HistoryV3, mock.agg), - stagedsync.StageHeadersCfg(mock.DB, mock.sentriesClient.Hd, mock.sentriesClient.Bd, *mock.ChainConfig, sendHeaderRequest, propagateNewBlockHashes, penalize, cfg.BatchSize, false, mock.BlockReader, blockWriter, dirs.Tmp, mock.Notifications, engine_helpers.NewForkValidatorMock(1)), + stagedsync.StageSnapshotsCfg(mock.DB, *mock.ChainConfig, dirs, blockRetire, snapshotsDownloader, mock.BlockReader, mock.Notifications.Events, mock.HistoryV3, mock.agg, false, nil), + stagedsync.StageHeadersCfg(mock.DB, mock.sentriesClient.Hd, mock.sentriesClient.Bd, *mock.ChainConfig, sendHeaderRequest, propagateNewBlockHashes, penalize, cfg.BatchSize, false, mock.BlockReader, blockWriter, dirs.Tmp, mock.Notifications, engine_helpers.NewForkValidatorMock(1), nil), + stagedsync.StageBorHeimdallCfg(mock.DB, snapDb, stagedsync.MiningState{}, *mock.ChainConfig, nil /* heimdallClient */, mock.BlockReader, nil, nil, recents, signatures), stagedsync.StageBlockHashesCfg(mock.DB, mock.Dirs.Tmp, mock.ChainConfig, blockWriter), stagedsync.StageBodiesCfg(mock.DB, mock.sentriesClient.Bd, sendBodyRequest, penalize, blockPropagator, cfg.Sync.BodyDownloadTimeoutSeconds, *mock.ChainConfig, mock.BlockReader, cfg.HistoryV3, blockWriter), stagedsync.StageSendersCfg(mock.DB, mock.ChainConfig, false, dirs.Tmp, prune, mock.BlockReader, mock.sentriesClient.Hd), @@ -416,6 +455,7 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK mock.gspec, ethconfig.Defaults.Sync, mock.agg, + nil, ), stagedsync.StageHashStateCfg(mock.DB, mock.Dirs, cfg.HistoryV3), stagedsync.StageTrieCfg(mock.DB, checkStateRoot, true, false, dirs.Tmp, mock.BlockReader, mock.sentriesClient.Hd, cfg.HistoryV3, mock.agg), @@ -430,6 +470,13 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK logger, ) + cfg.Genesis = gspec + pipelineStages := stages2.NewPipelineStages(mock.Ctx, db, &cfg, mock.sentriesClient, mock.Notifications, + snapshotsDownloader, mock.BlockReader, blockRetire, mock.agg, nil, forkValidator, logger, checkStateRoot) + mock.posStagedSync = stagedsync.New(pipelineStages, stagedsync.PipelineUnwindOrder, stagedsync.PipelinePruneOrder, logger) + + mock.Eth1ExecutionService = eth1.NewEthereumExecutionModule(mock.BlockReader, mock.DB, mock.posStagedSync, forkValidator, mock.ChainConfig, assembleBlockPOS, nil, mock.Notifications.Accumulator, mock.Notifications.StateChangesConsumer, logger, engine, histV3) + mock.sentriesClient.Hd.StartPoSDownloader(mock.Ctx, sendHeaderRequest, penalize) miningConfig := cfg.Miner @@ -449,6 +496,7 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK mock.MiningSync = stagedsync.New( stagedsync.MiningStages(mock.Ctx, stagedsync.StageMiningCreateBlockCfg(mock.DB, miner, *mock.ChainConfig, mock.Engine, nil, nil, dirs.Tmp, mock.BlockReader), + stagedsync.StageBorHeimdallCfg(mock.DB, snapDb, miner, *mock.ChainConfig, nil /*heimdallClient*/, mock.BlockReader, nil, nil, recents, signatures), stagedsync.StageMiningExecCfg(mock.DB, miner, nil, *mock.ChainConfig, mock.Engine, &vm.Config{}, dirs.Tmp, nil, 0, mock.TxPool, nil, mock.BlockReader), stagedsync.StageHashStateCfg(mock.DB, dirs, cfg.HistoryV3), stagedsync.StageTrieCfg(mock.DB, false, true, false, dirs.Tmp, mock.BlockReader, mock.sentriesClient.Hd, cfg.HistoryV3, mock.agg), @@ -460,9 +508,6 @@ func MockWithEverything(tb testing.TB, gspec *types.Genesis, key *ecdsa.PrivateK ) cfg.Genesis = gspec - pipelineStages := stages2.NewPipelineStages(ctx, db, &cfg, mock.sentriesClient, mock.Notifications, - snapshotsDownloader, mock.BlockReader, blockRetire, mock.agg, forkValidator, logger, checkStateRoot) - mock.posStagedSync = stagedsync.New(pipelineStages, stagedsync.PipelineUnwindOrder, stagedsync.PipelinePruneOrder, logger) mock.StreamWg.Add(1) go mock.sentriesClient.RecvMessageLoop(mock.Ctx, mock.SentryClient, &mock.ReceiveWg) @@ -536,7 +581,7 @@ func MockWithZeroTTDGnosis(t *testing.T, withPosDownloader bool) *MockSentry { address: {Balance: funds}, }, } - engine := ethconsensusconfig.CreateConsensusEngineBareBones(chainConfig, log.New()) + engine := ethconsensusconfig.CreateConsensusEngineBareBones(context.Background(), chainConfig, log.New()) checkStateRoot := true return MockWithGenesisEngine(t, gspec, engine, withPosDownloader, checkStateRoot) } @@ -552,7 +597,7 @@ func (ms *MockSentry) numberOfPoWBlocks(chain *core.ChainPack) int { return chain.NumberOfPoWBlocks() } -func (ms *MockSentry) insertPoWBlocks(chain *core.ChainPack, tx kv.RwTx) error { +func (ms *MockSentry) insertPoWBlocks(chain *core.ChainPack) error { n := ms.numberOfPoWBlocks(chain) if n == 0 { // No Proof-of-Work blocks @@ -613,8 +658,9 @@ func (ms *MockSentry) insertPoWBlocks(chain *core.ChainPack, tx kv.RwTx) error { ms.ReceiveWg.Add(1) } initialCycle := MockInsertAsInitialCycle - hook := stages2.NewHook(ms.Ctx, ms.Notifications, ms.Sync, ms.BlockReader, ms.ChainConfig, ms.Log, ms.UpdateHead) - if err = stages2.StageLoopIteration(ms.Ctx, ms.DB, tx, ms.Sync, initialCycle, ms.Log, ms.BlockReader, hook); err != nil { + hook := stages2.NewHook(ms.Ctx, ms.DB, ms.Notifications, ms.Sync, ms.BlockReader, ms.ChainConfig, ms.Log, ms.UpdateHead) + + if err = stages2.StageLoopIteration(ms.Ctx, ms.DB, nil, ms.Sync, initialCycle, ms.Log, ms.BlockReader, hook, false); err != nil { return err } if ms.TxPool != nil { @@ -623,105 +669,60 @@ func (ms *MockSentry) insertPoWBlocks(chain *core.ChainPack, tx kv.RwTx) error { return nil } -func (ms *MockSentry) insertPoSBlocks(chain *core.ChainPack, tx kv.RwTx) error { +func (ms *MockSentry) insertPoSBlocks(chain *core.ChainPack) error { n := ms.numberOfPoWBlocks(chain) if n >= chain.Length() { return nil } - var bottomBlock *types.Block + wr := eth1_chain_reader.NewChainReaderEth1(ms.Ctx, ms.ChainConfig, direct.NewExecutionClientDirect(ms.Eth1ExecutionService), uint64(time.Hour)) for i := n; i < chain.Length(); i++ { if err := chain.Blocks[i].HashCheck(); err != nil { return err } - if bottomBlock == nil { - bottomBlock = chain.Blocks[i] - } - cr := stagedsync.ChainReader{Cfg: *ms.ChainConfig, Db: tx, BlockReader: ms.BlockReader} - if err := ms.Engine.VerifyHeader(cr, chain.Blocks[i].Header(), true); err != nil { - return err - } - - if err := ms.Engine.VerifyUncles(cr, chain.Blocks[i].Header(), chain.Blocks[i].Uncles()); err != nil { - return err - } - rawdb.WriteHeader(tx, chain.Blocks[i].Header()) - if _, err := rawdb.WriteRawBodyIfNotExists(tx, chain.Blocks[i].Hash(), chain.Blocks[i].NumberU64(), chain.Blocks[i].RawBody()); err != nil { - return err - } - - parentTd, err := rawdb.ReadTd(tx, chain.Blocks[i].ParentHash(), chain.Blocks[i].NumberU64()-1) - if err != nil || parentTd == nil { - return fmt.Errorf("no td %s", err) - } - td := new(big.Int).Add(parentTd, chain.Blocks[i].Difficulty()) - - if err = rawdb.WriteTd(tx, chain.Blocks[i].Hash(), chain.Blocks[i].NumberU64(), td); err != nil { - return err - } - rawdb.WriteCanonicalHash(tx, chain.Blocks[i].Hash(), chain.Blocks[i].NumberU64()) } - if bottomBlock == nil { - return nil + if err := wr.InsertBlocksAndWait(chain.Blocks); err != nil { + return err } - currentHash := bottomBlock.ParentHash() - currentNumber := bottomBlock.NumberU64() - 1 - for canonical, err := rawdb.IsCanonicalHash(tx, currentHash, currentNumber); !canonical; canonical, err = rawdb.IsCanonicalHash(tx, currentHash, currentNumber) { - if err != nil { - return err - } - currentHeader := rawdb.ReadHeader(tx, currentHash, currentNumber) - if currentHeader == nil { - return fmt.Errorf("missing header") - } - if err := rawdb.WriteCanonicalHash(tx, currentHash, currentNumber); err != nil { - return err - } - currentHash = currentHeader.ParentHash - currentNumber-- - } + tipHash := chain.TopBlock.Hash() - ms.posStagedSync.UnwindTo(currentNumber, libcommon.Hash{}) - ms.posStagedSync.RunUnwind(ms.DB, tx) - hook := stages2.NewHook(ms.Ctx, ms.Notifications, ms.Sync, ms.BlockReader, ms.ChainConfig, ms.Log, ms.UpdateHead) + status, lvh, err := wr.UpdateForkChoice(tipHash, tipHash, tipHash) - if err := stages.SaveStageProgress(tx, stages.Headers, chain.TopBlock.NumberU64()); err != nil { + if err != nil { return err } - if err := stages.SaveStageProgress(tx, stages.Bodies, chain.TopBlock.NumberU64()); err != nil { - return err + ms.DB.Update(ms.Ctx, func(tx kv.RwTx) error { + rawdb.WriteHeadBlockHash(tx, lvh) + return nil + }) + if status != execution.ExecutionStatus_Success { + return fmt.Errorf("insertion failed for block %d, code: %s", chain.Blocks[chain.Length()-1].NumberU64(), status.String()) } - rawdb.WriteHeadHeaderHash(tx, chain.TopBlock.Hash()) - - return stages2.StageLoopIteration(ms.Ctx, ms.DB, tx, ms.posStagedSync, MockInsertAsInitialCycle, ms.Log, ms.BlockReader, hook) + return nil } -func (ms *MockSentry) InsertChain(chain *core.ChainPack, tx kv.RwTx) error { - externalTx := tx != nil - if !externalTx { - var err error - tx, err = ms.DB.BeginRw(ms.Ctx) - if err != nil { - return err - } - defer tx.Rollback() - } +func (ms *MockSentry) InsertChain(chain *core.ChainPack) error { - if err := ms.insertPoWBlocks(chain, tx); err != nil { + if err := ms.insertPoWBlocks(chain); err != nil { return err } - if err := ms.insertPoSBlocks(chain, tx); err != nil { + if err := ms.insertPoSBlocks(chain); err != nil { return err } + roTx, err := ms.DB.BeginRo(ms.Ctx) + if err != nil { + return err + } + defer roTx.Rollback() // Check if the latest header was imported or rolled back - if rawdb.ReadHeader(tx, chain.TopBlock.Hash(), chain.TopBlock.NumberU64()) == nil { + if rawdb.ReadHeader(roTx, chain.TopBlock.Hash(), chain.TopBlock.NumberU64()) == nil { return fmt.Errorf("did not import block %d %x", chain.TopBlock.NumberU64(), chain.TopBlock.Hash()) } - execAt, err := stages.GetStageProgress(tx, stages.Execution) + execAt, err := stages.GetStageProgress(roTx, stages.Execution) if err != nil { return err } @@ -747,11 +748,6 @@ func (ms *MockSentry) InsertChain(chain *core.ChainPack, tx kv.RwTx) error { //} //} - if !externalTx { - if err := tx.Commit(); err != nil { - return err - } - } return nil } diff --git a/turbo/stages/mock/sentry_mock_test.go b/turbo/stages/mock/sentry_mock_test.go index f454c94f114..54b62f1cd3a 100644 --- a/turbo/stages/mock/sentry_mock_test.go +++ b/turbo/stages/mock/sentry_mock_test.go @@ -21,10 +21,12 @@ import ( ) func TestEmptyStageSync(t *testing.T) { + t.Parallel() mock.Mock(t) } func TestHeaderStep(t *testing.T) { + t.Parallel() m := mock.Mock(t) chain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 100, func(i int, b *core.BlockGen) { @@ -56,12 +58,13 @@ func TestHeaderStep(t *testing.T) { m.ReceiveWg.Wait() // Wait for all messages to be processed before we proceed initialCycle := mock.MockInsertAsInitialCycle - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil); err != nil { + if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil, false); err != nil { t.Fatal(err) } } func TestMineBlockWith1Tx(t *testing.T) { + t.Parallel() t.Skip("revive me") require, m := require.New(t), mock.Mock(t) @@ -94,7 +97,7 @@ func TestMineBlockWith1Tx(t *testing.T) { m.ReceiveWg.Wait() // Wait for all messages to be processed before we proceeed initialCycle := mock.MockInsertAsInitialCycle - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, log.New(), m.BlockReader, nil); err != nil { + if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, log.New(), m.BlockReader, nil, false); err != nil { t.Fatal(err) } } @@ -126,6 +129,7 @@ func TestMineBlockWith1Tx(t *testing.T) { } func TestReorg(t *testing.T) { + t.Parallel() m := mock.Mock(t) chain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 10, func(i int, b *core.BlockGen) { @@ -162,7 +166,7 @@ func TestReorg(t *testing.T) { m.ReceiveWg.Wait() // Wait for all messages to be processed before we proceeed initialCycle := mock.MockInsertAsInitialCycle - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil); err != nil { + if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil, false); err != nil { t.Fatal(err) } @@ -215,7 +219,7 @@ func TestReorg(t *testing.T) { m.ReceiveWg.Wait() // Wait for all messages to be processed before we proceeed initialCycle = false - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil); err != nil { + if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil, false); err != nil { t.Fatal(err) } @@ -258,7 +262,7 @@ func TestReorg(t *testing.T) { m.ReceiveWg.Wait() // Wait for all messages to be processed before we proceeed // This is unwind step - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil); err != nil { + if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil, false); err != nil { t.Fatal(err) } @@ -295,12 +299,13 @@ func TestReorg(t *testing.T) { m.ReceiveWg.Wait() // Wait for all messages to be processed before we proceeed initialCycle = mock.MockInsertAsInitialCycle - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil); err != nil { + if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil, false); err != nil { t.Fatal(err) } } func TestAnchorReplace(t *testing.T) { + t.Parallel() m := mock.Mock(t) chain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 10, func(i int, b *core.BlockGen) { @@ -391,12 +396,13 @@ func TestAnchorReplace(t *testing.T) { m.ReceiveWg.Wait() // Wait for all messages to be processed before we proceeed initialCycle := mock.MockInsertAsInitialCycle - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil); err != nil { + if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, nil, false); err != nil { t.Fatal(err) } } func TestAnchorReplace2(t *testing.T) { + t.Parallel() m := mock.Mock(t) chain, err := core.GenerateChain(m.ChainConfig, m.Genesis, m.Engine, m.DB, 10, func(i int, b *core.BlockGen) { b.SetCoinbase(libcommon.Address{1}) @@ -495,8 +501,8 @@ func TestAnchorReplace2(t *testing.T) { m.ReceiveWg.Wait() // Wait for all messages to be processed before we proceeed initialCycle := mock.MockInsertAsInitialCycle - hook := stages.NewHook(m.Ctx, m.Notifications, m.Sync, m.BlockReader, m.ChainConfig, m.Log, m.UpdateHead) - if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, hook); err != nil { + hook := stages.NewHook(m.Ctx, m.DB, m.Notifications, m.Sync, m.BlockReader, m.ChainConfig, m.Log, m.UpdateHead) + if err := stages.StageLoopIteration(m.Ctx, m.DB, nil, m.Sync, initialCycle, m.Log, m.BlockReader, hook, false); err != nil { t.Fatal(err) } } diff --git a/turbo/stages/stageloop.go b/turbo/stages/stageloop.go index 3baf65d5b0a..de8fee1d567 100644 --- a/turbo/stages/stageloop.go +++ b/turbo/stages/stageloop.go @@ -7,6 +7,7 @@ import ( "math/big" "time" + lru "github.com/hashicorp/golang-lru/arc/v2" "github.com/holiman/uint256" "github.com/ledgerwatch/log/v3" @@ -16,13 +17,13 @@ import ( "github.com/ledgerwatch/erigon-lib/common/dbg" proto_downloader "github.com/ledgerwatch/erigon-lib/gointerfaces/downloader" "github.com/ledgerwatch/erigon-lib/kv" - "github.com/ledgerwatch/erigon-lib/kv/memdb" + "github.com/ledgerwatch/erigon-lib/kv/membatchwithdb" "github.com/ledgerwatch/erigon-lib/state" - "github.com/ledgerwatch/erigon/consensus" - "github.com/ledgerwatch/erigon/turbo/engineapi/engine_helpers" - "github.com/ledgerwatch/erigon/turbo/services" - "github.com/ledgerwatch/erigon/cmd/sentry/sentry" + "github.com/ledgerwatch/erigon/consensus" + "github.com/ledgerwatch/erigon/consensus/bor" + "github.com/ledgerwatch/erigon/consensus/bor/finality/flags" + "github.com/ledgerwatch/erigon/consensus/bor/heimdall" "github.com/ledgerwatch/erigon/consensus/misc" "github.com/ledgerwatch/erigon/core/rawdb" "github.com/ledgerwatch/erigon/core/rawdb/blockio" @@ -32,7 +33,11 @@ import ( "github.com/ledgerwatch/erigon/eth/stagedsync" "github.com/ledgerwatch/erigon/eth/stagedsync/stages" "github.com/ledgerwatch/erigon/p2p" + "github.com/ledgerwatch/erigon/p2p/sentry/sentry_multi_client" + "github.com/ledgerwatch/erigon/turbo/engineapi/engine_helpers" + "github.com/ledgerwatch/erigon/turbo/services" "github.com/ledgerwatch/erigon/turbo/shards" + "github.com/ledgerwatch/erigon/turbo/silkworm" "github.com/ledgerwatch/erigon/turbo/stages/bodydownload" "github.com/ledgerwatch/erigon/turbo/stages/headerdownload" ) @@ -47,6 +52,7 @@ func StageLoop(ctx context.Context, logger log.Logger, blockReader services.FullBlockReader, hook *Hook, + forcePartialCommit bool, ) { defer close(waitForDone) initialCycle := true @@ -62,7 +68,7 @@ func StageLoop(ctx context.Context, } // Estimate the current top height seen from the peer - err := StageLoopIteration(ctx, db, nil, sync, initialCycle, logger, blockReader, hook) + err := StageLoopIteration(ctx, db, nil, sync, initialCycle, logger, blockReader, hook, forcePartialCommit) if err != nil { if errors.Is(err, libcommon.ErrStopped) || errors.Is(err, context.Canceled) { @@ -93,7 +99,7 @@ func StageLoop(ctx context.Context, } } -func StageLoopIteration(ctx context.Context, db kv.RwDB, tx kv.RwTx, sync *stagedsync.Sync, initialCycle bool, logger log.Logger, blockReader services.FullBlockReader, hook *Hook) (err error) { +func StageLoopIteration(ctx context.Context, db kv.RwDB, tx kv.RwTx, sync *stagedsync.Sync, initialCycle bool, logger log.Logger, blockReader services.FullBlockReader, hook *Hook, forcePartialCommit bool) (err error) { defer func() { if rec := recover(); rec != nil { err = fmt.Errorf("%+v, trace: %s", rec, dbg.Stack()) @@ -101,7 +107,7 @@ func StageLoopIteration(ctx context.Context, db kv.RwDB, tx kv.RwTx, sync *stage }() // avoid crash because Erigon's core does many things externalTx := tx != nil - finishProgressBefore, headersProgressBefore, err := stagesHeadersAndFinish(db, tx) + finishProgressBefore, borProgressBefore, headersProgressBefore, err := stagesHeadersAndFinish(db, tx) if err != nil { return err } @@ -109,10 +115,16 @@ func StageLoopIteration(ctx context.Context, db kv.RwDB, tx kv.RwTx, sync *stage // In all other cases - process blocks batch in 1 RwTx // 2 corner-cases: when sync with --snapshots=false and when executed only blocks from snapshots (in this case all stages progress is equal and > 0, but node is not synced) isSynced := finishProgressBefore > 0 && finishProgressBefore > blockReader.FrozenBlocks() && finishProgressBefore == headersProgressBefore + if blockReader.BorSnapshots() != nil { + isSynced = isSynced && borProgressBefore > blockReader.FrozenBorBlocks() + } canRunCycleInOneTransaction := isSynced if externalTx { canRunCycleInOneTransaction = true } + if forcePartialCommit { + canRunCycleInOneTransaction = false + } // Main steps: // - process new blocks @@ -153,21 +165,8 @@ func StageLoopIteration(ctx context.Context, db kv.RwDB, tx kv.RwTx, sync *stage } // -- send notifications START - if externalTx { - if hook != nil { - if err = hook.AfterRun(tx, finishProgressBefore); err != nil { - return err - } - } - } else { - if err := db.View(ctx, func(tx kv.Tx) error { - if hook != nil { - if err = hook.AfterRun(tx, finishProgressBefore); err != nil { - return err - } - } - return nil - }); err != nil { + if hook != nil { + if err = hook.AfterRun(tx, finishProgressBefore); err != nil { return err } } @@ -196,15 +195,18 @@ func stageLoopStepPrune(ctx context.Context, db kv.RwDB, tx kv.RwTx, sync *stage return db.Update(ctx, func(tx kv.RwTx) error { return sync.RunPrune(db, tx, initialCycle) }) } -func stagesHeadersAndFinish(db kv.RoDB, tx kv.Tx) (head, fin uint64, err error) { +func stagesHeadersAndFinish(db kv.RoDB, tx kv.Tx) (head, bor, fin uint64, err error) { if tx != nil { if fin, err = stages.GetStageProgress(tx, stages.Finish); err != nil { - return head, fin, err + return head, bor, fin, err } if head, err = stages.GetStageProgress(tx, stages.Headers); err != nil { - return head, fin, err + return head, bor, fin, err + } + if bor, err = stages.GetStageProgress(tx, stages.BorHeimdall); err != nil { + return head, bor, fin, err } - return head, fin, nil + return head, bor, fin, nil } if err := db.View(context.Background(), func(tx kv.Tx) error { if fin, err = stages.GetStageProgress(tx, stages.Finish); err != nil { @@ -213,11 +215,14 @@ func stagesHeadersAndFinish(db kv.RoDB, tx kv.Tx) (head, fin uint64, err error) if head, err = stages.GetStageProgress(tx, stages.Headers); err != nil { return err } + if bor, err = stages.GetStageProgress(tx, stages.BorHeimdall); err != nil { + return err + } return nil }); err != nil { - return head, fin, err + return head, bor, fin, err } - return head, fin, nil + return head, bor, fin, nil } type Hook struct { @@ -228,12 +233,13 @@ type Hook struct { logger log.Logger blockReader services.FullBlockReader updateHead func(ctx context.Context, headHeight uint64, headTime uint64, hash libcommon.Hash, td *uint256.Int) + db kv.RoDB } -func NewHook(ctx context.Context, notifications *shards.Notifications, sync *stagedsync.Sync, blockReader services.FullBlockReader, chainConfig *chain.Config, logger log.Logger, updateHead func(ctx context.Context, headHeight uint64, headTime uint64, hash libcommon.Hash, td *uint256.Int)) *Hook { - return &Hook{ctx: ctx, notifications: notifications, sync: sync, blockReader: blockReader, chainConfig: chainConfig, logger: logger, updateHead: updateHead} +func NewHook(ctx context.Context, db kv.RoDB, notifications *shards.Notifications, sync *stagedsync.Sync, blockReader services.FullBlockReader, chainConfig *chain.Config, logger log.Logger, updateHead func(ctx context.Context, headHeight uint64, headTime uint64, hash libcommon.Hash, td *uint256.Int)) *Hook { + return &Hook{ctx: ctx, db: db, notifications: notifications, sync: sync, blockReader: blockReader, chainConfig: chainConfig, logger: logger, updateHead: updateHead} } -func (h *Hook) BeforeRun(tx kv.Tx, inSync bool) error { +func (h *Hook) beforeRun(tx kv.Tx, inSync bool) error { notifications := h.notifications if notifications != nil && notifications.Accumulator != nil && inSync { stateVersion, err := rawdb.GetStateVersion(tx) @@ -244,16 +250,28 @@ func (h *Hook) BeforeRun(tx kv.Tx, inSync bool) error { } return nil } +func (h *Hook) BeforeRun(tx kv.Tx, inSync bool) error { + if tx == nil { + return h.db.View(h.ctx, func(tx kv.Tx) error { return h.beforeRun(tx, inSync) }) + } + return h.beforeRun(tx, inSync) +} func (h *Hook) AfterRun(tx kv.Tx, finishProgressBefore uint64) error { + if tx == nil { + return h.db.View(h.ctx, func(tx kv.Tx) error { return h.afterRun(tx, finishProgressBefore) }) + } + return h.afterRun(tx, finishProgressBefore) +} +func (h *Hook) afterRun(tx kv.Tx, finishProgressBefore uint64) error { notifications := h.notifications blockReader := h.blockReader // -- send notifications START //TODO: can this 2 headers be 1 - var headHeader, currentHeder *types.Header + var headHeader, currentHeader *types.Header // Update sentry status for peers to see our sync status var headTd *big.Int - var plainStateVersion uint64 + var plainStateVersion, finalizedBlock uint64 head, err := stages.GetStageProgress(tx, stages.Headers) if err != nil { return err @@ -266,14 +284,19 @@ func (h *Hook) AfterRun(tx kv.Tx, finishProgressBefore uint64) error { return err } headHeader = rawdb.ReadHeader(tx, headHash, head) - currentHeder = rawdb.ReadCurrentHeader(tx) - + currentHeader = rawdb.ReadCurrentHeader(tx) + finalizedHeaderHash := rawdb.ReadForkchoiceFinalized(tx) + if fb := rawdb.ReadHeaderNumber(tx, finalizedHeaderHash); fb != nil { + finalizedBlock = *fb + } // update the accumulator with a new plain state version so the cache can be notified that // state has moved on if plainStateVersion, err = rawdb.GetStateVersion(tx); err != nil { return err } - notifications.Accumulator.SetStateID(plainStateVersion) + if notifications != nil && notifications.Accumulator != nil { + notifications.Accumulator.SetStateID(plainStateVersion) + } if headTd != nil && headHeader != nil { headTd256, overflow := uint256.FromBig(headTd) @@ -288,14 +311,23 @@ func (h *Hook) AfterRun(tx kv.Tx, finishProgressBefore uint64) error { return nil } } - if notifications != nil && notifications.Accumulator != nil && currentHeder != nil { + if notifications != nil && notifications.Accumulator != nil && currentHeader != nil { - pendingBaseFee := misc.CalcBaseFee(h.chainConfig, currentHeder) - if currentHeder.Number.Uint64() == 0 { - notifications.Accumulator.StartChange(0, currentHeder.Hash(), nil, false) + pendingBaseFee := misc.CalcBaseFee(h.chainConfig, currentHeader) + if currentHeader.Number.Uint64() == 0 { + notifications.Accumulator.StartChange(0, currentHeader.Hash(), nil, false) + } + pendingBlobFee := h.chainConfig.GetMinBlobGasPrice() + if currentHeader.ExcessBlobGas != nil { + excessBlobGas := misc.CalcExcessBlobGas(h.chainConfig, currentHeader) + f, err := misc.GetBlobGasPrice(h.chainConfig, excessBlobGas) + if err != nil { + return err + } + pendingBlobFee = f.Uint64() } - notifications.Accumulator.SendAndReset(h.ctx, notifications.StateChangesConsumer, pendingBaseFee.Uint64(), currentHeder.GasLimit) + notifications.Accumulator.SendAndReset(h.ctx, notifications.StateChangesConsumer, pendingBaseFee.Uint64(), pendingBlobFee, currentHeader.GasLimit, finalizedBlock) } // -- send notifications END return nil @@ -314,7 +346,7 @@ func MiningStep(ctx context.Context, kv kv.RwDB, mining *stagedsync.Sync, tmpDir } defer tx.Rollback() - miningBatch := memdb.NewMemoryBatch(tx, tmpDir) + miningBatch := membatchwithdb.NewMemoryBatch(tx, tmpDir) defer miningBatch.Rollback() if err = mining.Run(nil, miningBatch, false /* firstCycle */); err != nil { @@ -324,7 +356,49 @@ func MiningStep(ctx context.Context, kv kv.RwDB, mining *stagedsync.Sync, tmpDir return nil } -func StateStep(ctx context.Context, chainReader consensus.ChainHeaderReader, engine consensus.Engine, batch kv.RwTx, blockWriter *blockio.BlockWriter, stateSync *stagedsync.Sync, Bd *bodydownload.BodyDownload, header *types.Header, body *types.RawBody, unwindPoint uint64, headersChain []*types.Header, bodiesChain []*types.RawBody) (err error) { +func addAndVerifyBlockStep(batch kv.RwTx, engine consensus.Engine, chainReader consensus.ChainReader, currentHeader *types.Header, currentBody *types.RawBody, histV3 bool) error { + currentHeight := currentHeader.Number.Uint64() + currentHash := currentHeader.Hash() + if chainReader != nil { + if err := engine.VerifyHeader(chainReader, currentHeader, true); err != nil { + log.Warn("Header Verification Failed", "number", currentHeight, "hash", currentHash, "reason", err) + return fmt.Errorf("%w: %v", consensus.ErrInvalidBlock, err) + } + if err := engine.VerifyUncles(chainReader, currentHeader, currentBody.Uncles); err != nil { + log.Warn("Unlcles Verification Failed", "number", currentHeight, "hash", currentHash, "reason", err) + return fmt.Errorf("%w: %v", consensus.ErrInvalidBlock, err) + } + } + // Prepare memory state for block execution + if err := rawdb.WriteHeader(batch, currentHeader); err != nil { + return err + } + if err := rawdb.WriteCanonicalHash(batch, currentHash, currentHeight); err != nil { + return err + } + if err := rawdb.WriteHeadHeaderHash(batch, currentHash); err != nil { + return err + } + var ok bool + var err error + if ok, err = rawdb.WriteRawBodyIfNotExists(batch, currentHash, currentHeight, currentBody); err != nil { + return err + } + if histV3 && ok { + if err := rawdb.AppendCanonicalTxNums(batch, currentHeight); err != nil { + return err + } + } + if err := stages.SaveStageProgress(batch, stages.Headers, currentHeight); err != nil { + return err + } + if err := stages.SaveStageProgress(batch, stages.Bodies, currentHeight); err != nil { + return err + } + return nil +} + +func StateStep(ctx context.Context, chainReader consensus.ChainReader, engine consensus.Engine, batch kv.RwTx, blockWriter *blockio.BlockWriter, stateSync *stagedsync.Sync, Bd *bodydownload.BodyDownload, header *types.Header, body *types.RawBody, unwindPoint uint64, headersChain []*types.Header, bodiesChain []*types.RawBody, histV3 bool) (err error) { defer func() { if rec := recover(); rec != nil { err = fmt.Errorf("%+v, trace: %s", rec, dbg.Stack()) @@ -334,39 +408,20 @@ func StateStep(ctx context.Context, chainReader consensus.ChainHeaderReader, eng // Construct side fork if we have one if unwindPoint > 0 { // Run it through the unwind - stateSync.UnwindTo(unwindPoint, libcommon.Hash{}) + stateSync.UnwindTo(unwindPoint, stagedsync.StagedUnwind) if err = stateSync.RunUnwind(nil, batch); err != nil { return err } } + if err := rawdb.TruncateCanonicalChain(ctx, batch, header.Number.Uint64()+1); err != nil { + return err + } // Once we unwound we can start constructing the chain (assumption: len(headersChain) == len(bodiesChain)) for i := range headersChain { currentHeader := headersChain[i] currentBody := bodiesChain[i] - currentHeight := headersChain[i].Number.Uint64() - currentHash := headersChain[i].Hash() - if chainReader != nil { - if err := engine.VerifyHeader(chainReader, currentHeader, true); err != nil { - log.Warn("Header Verification Failed", "number", currentHeight, "hash", currentHash, "reason", err) - return err - } - } - // Prepare memory state for block execution - if err := rawdb.WriteHeader(batch, currentHeader); err != nil { - return err - } - if currentBody != nil { - Bd.AddToPrefetch(currentHeader, currentBody) - } - - if err := rawdb.WriteCanonicalHash(batch, currentHash, currentHeight); err != nil { - return err - } - if err := rawdb.WriteHeadHeaderHash(batch, currentHash); err != nil { - return err - } - if err = stages.SaveStageProgress(batch, stages.Headers, currentHeight); err != nil { + if err := addAndVerifyBlockStep(batch, engine, chainReader, currentHeader, currentBody, histV3); err != nil { return err } // Run state sync @@ -379,30 +434,10 @@ func StateStep(ctx context.Context, chainReader consensus.ChainHeaderReader, eng if header == nil { return nil } - if err := engine.VerifyHeader(chainReader, header, true); err != nil { - log.Warn("Header Verification Failed", "number", header.Number.Uint64(), "hash", header.Hash(), "reason", err) - return err - } - - // Setup - height := header.Number.Uint64() - hash := header.Hash() // Prepare memory state for block execution - if err = rawdb.WriteHeader(batch, header); err != nil { - return err - } - if err = rawdb.WriteCanonicalHash(batch, hash, height); err != nil { - return err - } - if err := rawdb.WriteHeadHeaderHash(batch, hash); err != nil { + if err := addAndVerifyBlockStep(batch, engine, chainReader, header, body, histV3); err != nil { return err } - if err = stages.SaveStageProgress(batch, stages.Headers, height); err != nil { - return err - } - if body != nil { - Bd.AddToPrefetch(header, body) - } // Run state sync if err = stateSync.RunNoInterrupt(nil, batch, false /* firstCycle */); err != nil { return err @@ -410,17 +445,29 @@ func StateStep(ctx context.Context, chainReader consensus.ChainHeaderReader, eng return nil } +func silkwormForExecutionStage(silkworm *silkworm.Silkworm, cfg *ethconfig.Config) *silkworm.Silkworm { + if cfg.SilkwormExecution { + return silkworm + } + return nil +} + func NewDefaultStages(ctx context.Context, db kv.RwDB, + snapDb kv.RwDB, p2pCfg p2p.Config, cfg *ethconfig.Config, - controlServer *sentry.MultiClient, + controlServer *sentry_multi_client.MultiClient, notifications *shards.Notifications, snapDownloader proto_downloader.DownloaderClient, blockReader services.FullBlockReader, blockRetire services.BlockRetire, agg *state.AggregatorV3, + silkworm *silkworm.Silkworm, forkValidator *engine_helpers.ForkValidator, + heimdallClient heimdall.IHeimdallClient, + recents *lru.ARCCache[libcommon.Hash, *bor.Snapshot], + signatures *lru.ARCCache[libcommon.Hash, libcommon.Address], logger log.Logger, ) []*stagedsync.Stage { dirs := cfg.Dirs @@ -430,9 +477,16 @@ func NewDefaultStages(ctx context.Context, // Hence we run it in the test mode. runInTestMode := cfg.ImportMode + var loopBreakCheck func() bool + + if heimdallClient != nil && flags.Milestone { + loopBreakCheck = heimdall.MilestoneRewindPending + } + return stagedsync.DefaultStages(ctx, - stagedsync.StageSnapshotsCfg(db, *controlServer.ChainConfig, dirs, blockRetire, snapDownloader, blockReader, notifications.Events, cfg.HistoryV3, agg), - stagedsync.StageHeadersCfg(db, controlServer.Hd, controlServer.Bd, *controlServer.ChainConfig, controlServer.SendHeaderRequest, controlServer.PropagateNewBlockHashes, controlServer.Penalize, cfg.BatchSize, p2pCfg.NoDiscovery, blockReader, blockWriter, dirs.Tmp, notifications, forkValidator), + stagedsync.StageSnapshotsCfg(db, *controlServer.ChainConfig, dirs, blockRetire, snapDownloader, blockReader, notifications.Events, cfg.HistoryV3, agg, cfg.InternalCL && cfg.CaplinConfig.Backfilling, silkworm), + stagedsync.StageHeadersCfg(db, controlServer.Hd, controlServer.Bd, *controlServer.ChainConfig, controlServer.SendHeaderRequest, controlServer.PropagateNewBlockHashes, controlServer.Penalize, cfg.BatchSize, p2pCfg.NoDiscovery, blockReader, blockWriter, dirs.Tmp, notifications, forkValidator, loopBreakCheck), + stagedsync.StageBorHeimdallCfg(db, snapDb, stagedsync.MiningState{}, *controlServer.ChainConfig, heimdallClient, blockReader, controlServer.Hd, controlServer.Penalize, recents, signatures), stagedsync.StageBlockHashesCfg(db, dirs.Tmp, controlServer.ChainConfig, blockWriter), stagedsync.StageBodiesCfg(db, controlServer.Bd, controlServer.SendBodyRequest, controlServer.Penalize, controlServer.BroadcastNewBlock, cfg.Sync.BodyDownloadTimeoutSeconds, *controlServer.ChainConfig, blockReader, cfg.HistoryV3, blockWriter), stagedsync.StageSendersCfg(db, controlServer.ChainConfig, false, dirs.Tmp, cfg.Prune, blockReader, controlServer.Hd), @@ -454,6 +508,7 @@ func NewDefaultStages(ctx context.Context, cfg.Genesis, cfg.Sync, agg, + silkwormForExecutionStage(silkworm, cfg), ), stagedsync.StageHashStateCfg(db, dirs, cfg.HistoryV3), stagedsync.StageTrieCfg(db, true, true, false, dirs.Tmp, blockReader, controlServer.Hd, cfg.HistoryV3, agg), @@ -468,12 +523,13 @@ func NewDefaultStages(ctx context.Context, func NewPipelineStages(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config, - controlServer *sentry.MultiClient, + controlServer *sentry_multi_client.MultiClient, notifications *shards.Notifications, snapDownloader proto_downloader.DownloaderClient, blockReader services.FullBlockReader, blockRetire services.BlockRetire, agg *state.AggregatorV3, + silkworm *silkworm.Silkworm, forkValidator *engine_helpers.ForkValidator, logger log.Logger, checkStateRoot bool, @@ -486,7 +542,7 @@ func NewPipelineStages(ctx context.Context, runInTestMode := cfg.ImportMode return stagedsync.PipelineStages(ctx, - stagedsync.StageSnapshotsCfg(db, *controlServer.ChainConfig, dirs, blockRetire, snapDownloader, blockReader, notifications.Events, cfg.HistoryV3, agg), + stagedsync.StageSnapshotsCfg(db, *controlServer.ChainConfig, dirs, blockRetire, snapDownloader, blockReader, notifications.Events, cfg.HistoryV3, agg, cfg.InternalCL && cfg.CaplinConfig.Backfilling, silkworm), stagedsync.StageBlockHashesCfg(db, dirs.Tmp, controlServer.ChainConfig, blockWriter), stagedsync.StageSendersCfg(db, controlServer.ChainConfig, false, dirs.Tmp, cfg.Prune, blockReader, controlServer.Hd), stagedsync.StageExecuteBlocksCfg( @@ -507,6 +563,7 @@ func NewPipelineStages(ctx context.Context, cfg.Genesis, cfg.Sync, agg, + silkwormForExecutionStage(silkworm, cfg), ), stagedsync.StageHashStateCfg(db, dirs, cfg.HistoryV3), stagedsync.StageTrieCfg(db, checkStateRoot, true, false, dirs.Tmp, blockReader, controlServer.Hd, cfg.HistoryV3, agg), @@ -518,12 +575,12 @@ func NewPipelineStages(ctx context.Context, runInTestMode) } -func NewInMemoryExecution(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config, controlServer *sentry.MultiClient, +func NewInMemoryExecution(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config, controlServer *sentry_multi_client.MultiClient, dirs datadir.Dirs, notifications *shards.Notifications, blockReader services.FullBlockReader, blockWriter *blockio.BlockWriter, agg *state.AggregatorV3, - logger log.Logger) (*stagedsync.Sync, error) { + silkworm *silkworm.Silkworm, logger log.Logger) *stagedsync.Sync { return stagedsync.New( stagedsync.StateStages(ctx, - stagedsync.StageHeadersCfg(db, controlServer.Hd, controlServer.Bd, *controlServer.ChainConfig, controlServer.SendHeaderRequest, controlServer.PropagateNewBlockHashes, controlServer.Penalize, cfg.BatchSize, false, blockReader, blockWriter, dirs.Tmp, nil, nil), + stagedsync.StageHeadersCfg(db, controlServer.Hd, controlServer.Bd, *controlServer.ChainConfig, controlServer.SendHeaderRequest, controlServer.PropagateNewBlockHashes, controlServer.Penalize, cfg.BatchSize, false, blockReader, blockWriter, dirs.Tmp, nil, nil, nil), stagedsync.StageBodiesCfg(db, controlServer.Bd, controlServer.SendBodyRequest, controlServer.Penalize, controlServer.BroadcastNewBlock, cfg.Sync.BodyDownloadTimeoutSeconds, *controlServer.ChainConfig, blockReader, cfg.HistoryV3, blockWriter), stagedsync.StageBlockHashesCfg(db, dirs.Tmp, controlServer.ChainConfig, blockWriter), stagedsync.StageSendersCfg(db, controlServer.ChainConfig, true, dirs.Tmp, cfg.Prune, blockReader, controlServer.Hd), @@ -545,11 +602,12 @@ func NewInMemoryExecution(ctx context.Context, db kv.RwDB, cfg *ethconfig.Config cfg.Genesis, cfg.Sync, agg, + silkwormForExecutionStage(silkworm, cfg), ), stagedsync.StageHashStateCfg(db, dirs, cfg.HistoryV3), stagedsync.StageTrieCfg(db, true, true, true, dirs.Tmp, blockReader, controlServer.Hd, cfg.HistoryV3, agg)), stagedsync.StateUnwindOrder, nil, /* pruneOrder */ logger, - ), nil + ) } diff --git a/turbo/transactions/tracing.go b/turbo/transactions/tracing.go index 6c7466ffa0d..31c85f9c23d 100644 --- a/turbo/transactions/tracing.go +++ b/turbo/transactions/tracing.go @@ -9,6 +9,7 @@ import ( "time" jsoniter "github.com/json-iterator/go" + "github.com/ledgerwatch/log/v3" "github.com/ledgerwatch/erigon-lib/chain" libcommon "github.com/ledgerwatch/erigon-lib/common" @@ -78,9 +79,10 @@ func ComputeTxEnv(ctx context.Context, engine consensus.EngineReader, block *typ vmenv := vm.NewEVM(blockContext, evmtypes.TxContext{}, statedb, cfg, vm.Config{}) rules := vmenv.ChainRules() - consensusHeaderReader := stagedsync.NewChainReaderImpl(cfg, dbtx, nil) + consensusHeaderReader := stagedsync.NewChainReaderImpl(cfg, dbtx, nil, nil) - core.InitializeBlockExecution(engine.(consensus.Engine), consensusHeaderReader, header, block.Transactions(), block.Uncles(), cfg, statedb) + logger := log.New("tracing") + core.InitializeBlockExecution(engine.(consensus.Engine), consensusHeaderReader, header, cfg, statedb, logger) for idx, txn := range block.Transactions() { select { diff --git a/turbo/trie/account_node_test.go b/turbo/trie/account_node_test.go index bab99834d1c..0e787a2daa1 100644 --- a/turbo/trie/account_node_test.go +++ b/turbo/trie/account_node_test.go @@ -2,6 +2,7 @@ package trie import ( "crypto/ecdsa" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "reflect" "testing" @@ -9,7 +10,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "golang.org/x/crypto/sha3" - "github.com/ledgerwatch/erigon/common/dbutils" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" ) diff --git a/turbo/trie/delete_subrtee_test.go b/turbo/trie/delete_subrtee_test.go index 9cc4e5d9207..32fe9355adb 100644 --- a/turbo/trie/delete_subrtee_test.go +++ b/turbo/trie/delete_subrtee_test.go @@ -10,7 +10,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" ) @@ -49,17 +48,17 @@ func TestTrieDeleteSubtree_ShortNode_Debug(t *testing.T) { key := []byte{uint8(1)} val := []byte{uint8(1)} - keyHash, err := common.HashData(key) + keyHash, err := libcommon.HashData(key) if err != nil { t.Fatal(err) } - addrHash1, err := common.HashData(addr1[:]) + addrHash1, err := libcommon.HashData(addr1[:]) if err != nil { t.Fatal(err) } - addrHash2, err := common.HashData(addr2[:]) + addrHash2, err := libcommon.HashData(addr2[:]) if err != nil { t.Fatal(err) } @@ -365,7 +364,7 @@ func TestAccountNotRemovedAfterRemovingSubtrieAfterAccount(t *testing.T) { if err != nil { t.Fatal(err) } - addrHash, err := common.HashData(crypto.PubkeyToAddress(key.PublicKey).Bytes()) + addrHash, err := libcommon.HashData(crypto.PubkeyToAddress(key.PublicKey).Bytes()) if err != nil { t.Fatal(err) } @@ -377,13 +376,13 @@ func TestAccountNotRemovedAfterRemovingSubtrieAfterAccount(t *testing.T) { } val1 := []byte("1") - dataKey1, err := common.HashData([]byte("1")) + dataKey1, err := libcommon.HashData([]byte("1")) if err != nil { t.Fatal(err) } val2 := []byte("2") - dataKey2, err := common.HashData([]byte("2")) + dataKey2, err := libcommon.HashData([]byte("2")) if err != nil { t.Fatal(err) } diff --git a/turbo/trie/flatdb_sub_trie_loader_test.go b/turbo/trie/flatdb_sub_trie_loader_test.go index 94eb131a23f..b288174365e 100644 --- a/turbo/trie/flatdb_sub_trie_loader_test.go +++ b/turbo/trie/flatdb_sub_trie_loader_test.go @@ -83,13 +83,13 @@ func TestIsBefore(t *testing.T) { assert.Equal(true, is) contract := fmt.Sprintf("2%063x", 0) - storageKey := common.Hex2Bytes(contract + "ffffffff" + fmt.Sprintf("10%062x", 0)) - cacheKey := common.Hex2Bytes(contract + "ffffffff" + "20") + storageKey := libcommon.Hex2Bytes(contract + "ffffffff" + fmt.Sprintf("10%062x", 0)) + cacheKey := libcommon.Hex2Bytes(contract + "ffffffff" + "20") is = keyIsBefore(cacheKey, storageKey) assert.False(is) - storageKey = common.Hex2Bytes(contract + "ffffffffffffffff" + fmt.Sprintf("20%062x", 0)) - cacheKey = common.Hex2Bytes(contract + "ffffffffffffffff" + "10") + storageKey = libcommon.Hex2Bytes(contract + "ffffffffffffffff" + fmt.Sprintf("20%062x", 0)) + cacheKey = libcommon.Hex2Bytes(contract + "ffffffffffffffff" + "10") is = keyIsBefore(cacheKey, storageKey) assert.True(is) } diff --git a/turbo/trie/hashbuilder.go b/turbo/trie/hashbuilder.go index 26e166daee5..18059dcf057 100644 --- a/turbo/trie/hashbuilder.go +++ b/turbo/trie/hashbuilder.go @@ -11,7 +11,6 @@ import ( length2 "github.com/ledgerwatch/erigon-lib/common/length" "golang.org/x/crypto/sha3" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" @@ -83,11 +82,11 @@ func (hb *HashBuilder) leaf(length int, keyHex []byte, val rlphacks.RlpSerializa return fmt.Errorf("length %d", length) } if hb.proofElement != nil { - hb.proofElement.storageKey = common.CopyBytes(keyHex[:len(keyHex)-1]) + hb.proofElement.storageKey = libcommon.CopyBytes(keyHex[:len(keyHex)-1]) hb.proofElement.storageValue = new(uint256.Int).SetBytes(val.RawBytes()) } key := keyHex[len(keyHex)-length:] - s := &shortNode{Key: common.CopyBytes(key), Val: valueNode(common.CopyBytes(val.RawBytes()))} + s := &shortNode{Key: libcommon.CopyBytes(key), Val: valueNode(libcommon.CopyBytes(val.RawBytes()))} hb.nodeStack = append(hb.nodeStack, s) if err := hb.leafHashWithKeyVal(key, val); err != nil { return err @@ -233,7 +232,7 @@ func (hb *HashBuilder) accountLeaf(length int, keyHex []byte, balance *uint256.I // Root is on top of the stack root = hb.nodeStack[len(hb.nodeStack)-popped-1] if root == nil { - root = hashNode{hash: common.CopyBytes(hb.acc.Root[:])} + root = hashNode{hash: libcommon.CopyBytes(hb.acc.Root[:])} } } popped++ @@ -260,7 +259,7 @@ func (hb *HashBuilder) accountLeaf(length int, keyHex []byte, balance *uint256.I // we capture it with the account proof element. Note, we also store the // full key as this root could be for a different account in the negative // case. - hb.proofElement.storageRootKey = common.CopyBytes(fullKey) + hb.proofElement.storageRootKey = libcommon.CopyBytes(fullKey) hb.proofElement.storageRoot = hb.acc.Root } var accCopy accounts.Account @@ -271,7 +270,7 @@ func (hb *HashBuilder) accountLeaf(length int, keyHex []byte, balance *uint256.I } a := &accountNode{accCopy, root, true, accountCode, accountCodeSize} - s := &shortNode{Key: common.CopyBytes(key), Val: a} + s := &shortNode{Key: libcommon.CopyBytes(key), Val: a} // this invocation will take care of the popping given number of items from both hash stack and node stack, // pushing resulting hash to the hash stack, and nil to the node stack if err = hb.accountLeafHashWithKey(key, popped); err != nil { @@ -373,10 +372,10 @@ func (hb *HashBuilder) extension(key []byte) error { var s *shortNode switch n := nd.(type) { case nil: - branchHash := common.CopyBytes(hb.hashStack[len(hb.hashStack)-length2.Hash:]) - s = &shortNode{Key: common.CopyBytes(key), Val: hashNode{hash: branchHash}} + branchHash := libcommon.CopyBytes(hb.hashStack[len(hb.hashStack)-length2.Hash:]) + s = &shortNode{Key: libcommon.CopyBytes(key), Val: hashNode{hash: branchHash}} case *fullNode: - s = &shortNode{Key: common.CopyBytes(key), Val: n} + s = &shortNode{Key: libcommon.CopyBytes(key), Val: n} default: return fmt.Errorf("wrong Val type for an extension: %T", nd) } @@ -486,7 +485,7 @@ func (hb *HashBuilder) branch(set uint16) error { for digit := uint(0); digit < 16; digit++ { if ((1 << digit) & set) != 0 { if nodes[i] == nil { - f.Children[digit] = hashNode{hash: common.CopyBytes(hashes[hashStackStride*i+1 : hashStackStride*(i+1)])} + f.Children[digit] = hashNode{hash: libcommon.CopyBytes(hashes[hashStackStride*i+1 : hashStackStride*(i+1)])} } else { f.Children[digit] = nodes[i] } @@ -606,7 +605,7 @@ func (hb *HashBuilder) code(code []byte) error { if hb.trace { fmt.Printf("CODE\n") } - codeCopy := common.CopyBytes(code) + codeCopy := libcommon.CopyBytes(code) n := codeNode(codeCopy) hb.nodeStack = append(hb.nodeStack, n) hb.sha.Reset() diff --git a/turbo/trie/intermediate_hashes_test.go b/turbo/trie/intermediate_hashes_test.go index 4128ca453ac..531c6083e1a 100644 --- a/turbo/trie/intermediate_hashes_test.go +++ b/turbo/trie/intermediate_hashes_test.go @@ -2,11 +2,11 @@ package trie import ( "fmt" + "github.com/ledgerwatch/erigon-lib/common" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "strconv" "testing" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/stretchr/testify/assert" ) diff --git a/turbo/trie/proof.go b/turbo/trie/proof.go index ae0e5243701..d9dc7ffeb5b 100644 --- a/turbo/trie/proof.go +++ b/turbo/trie/proof.go @@ -7,7 +7,6 @@ import ( libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon/common" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/rlp" @@ -33,7 +32,7 @@ func (t *Trie) Prove(key []byte, fromLevel int, storage bool) ([][]byte, error) case *shortNode: if fromLevel == 0 { if rlp, err := hasher.hashChildren(n, 0); err == nil { - proof = append(proof, common.CopyBytes(rlp)) + proof = append(proof, libcommon.CopyBytes(rlp)) } else { return nil, err } @@ -55,7 +54,7 @@ func (t *Trie) Prove(key []byte, fromLevel int, storage bool) ([][]byte, error) case *duoNode: if fromLevel == 0 { if rlp, err := hasher.hashChildren(n, 0); err == nil { - proof = append(proof, common.CopyBytes(rlp)) + proof = append(proof, libcommon.CopyBytes(rlp)) } else { return nil, err } @@ -77,7 +76,7 @@ func (t *Trie) Prove(key []byte, fromLevel int, storage bool) ([][]byte, error) case *fullNode: if fromLevel == 0 { if rlp, err := hasher.hashChildren(n, 0); err == nil { - proof = append(proof, common.CopyBytes(rlp)) + proof = append(proof, libcommon.CopyBytes(rlp)) } else { return nil, err } diff --git a/turbo/trie/retain_list.go b/turbo/trie/retain_list.go index 5bad665aa23..9f768fb2349 100644 --- a/turbo/trie/retain_list.go +++ b/turbo/trie/retain_list.go @@ -20,14 +20,13 @@ import ( "bytes" "encoding/binary" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" "math/big" "sort" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon-lib/common/length" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" ) @@ -64,7 +63,7 @@ type ProofRetainer struct { // set onto the FlatDBTrieLoader via SetProofRetainer before performing its Load // operation in order to appropriately collect the proof elements. func NewProofRetainer(addr libcommon.Address, a *accounts.Account, storageKeys []libcommon.Hash, rl *RetainList) (*ProofRetainer, error) { - addrHash, err := common.HashData(addr[:]) + addrHash, err := libcommon.HashData(addr[:]) if err != nil { return nil, err } @@ -72,7 +71,7 @@ func NewProofRetainer(addr libcommon.Address, a *accounts.Account, storageKeys [ storageHexKeys := make([][]byte, len(storageKeys)) for i, sk := range storageKeys { - storageHash, err := common.HashData(sk[:]) + storageHash, err := libcommon.HashData(sk[:]) if err != nil { return nil, err } diff --git a/turbo/trie/retain_list_test.go b/turbo/trie/retain_list_test.go index 9c3196bf652..a9488efb54e 100644 --- a/turbo/trie/retain_list_test.go +++ b/turbo/trie/retain_list_test.go @@ -1,11 +1,11 @@ package trie import ( + "github.com/ledgerwatch/erigon-lib/common/hexutil" "testing" "github.com/holiman/uint256" libcommon "github.com/ledgerwatch/erigon-lib/common" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/stretchr/testify/require" ) diff --git a/turbo/trie/structural_branch_test.go b/turbo/trie/structural_branch_test.go index 39f8f612655..aebde55d551 100644 --- a/turbo/trie/structural_branch_test.go +++ b/turbo/trie/structural_branch_test.go @@ -42,7 +42,7 @@ func TestIHCursor(t *testing.T) { k := common.FromHex(ks) integrity.AssertSubset(k, hasTree, hasState) integrity.AssertSubset(k, hasHash, hasState) - _ = tx.Put(kv.TrieOfAccounts, k, common.CopyBytes(trie.MarshalTrieNodeTyped(hasState, hasTree, hasHash, hashes, newV))) + _ = tx.Put(kv.TrieOfAccounts, k, libcommon.CopyBytes(trie.MarshalTrieNodeTyped(hasState, hasTree, hasHash, hashes, newV))) } put("00", 0b0000000000000010, 0b0000000000000000, 0b0000000000000010, []libcommon.Hash{hash}) diff --git a/turbo/trie/trie.go b/turbo/trie/trie.go index 6587938ecd9..c8e6ee215e4 100644 --- a/turbo/trie/trie.go +++ b/turbo/trie/trie.go @@ -94,6 +94,15 @@ func (t *Trie) Get(key []byte) (value []byte, gotValue bool) { return t.get(t.root, hex, 0) } +func (t *Trie) FindPath(key []byte) (value []byte, parents [][]byte, gotValue bool) { + if t.root == nil { + return nil, nil, true + } + + hex := keybytesToHex(key) + return t.getPath(t.root, nil, hex, 0) +} + func (t *Trie) GetAccount(key []byte) (value *accounts.Account, gotValue bool) { if t.root == nil { return nil, true @@ -233,6 +242,46 @@ func (t *Trie) get(origNode node, key []byte, pos int) (value []byte, gotValue b } } +func (t *Trie) getPath(origNode node, parents [][]byte, key []byte, pos int) ([]byte, [][]byte, bool) { + switch n := (origNode).(type) { + case nil: + return nil, parents, true + case valueNode: + return n, parents, true + case *accountNode: + return t.getPath(n.storage, append(parents, n.reference()), key, pos) + case *shortNode: + matchlen := prefixLen(key[pos:], n.Key) + if matchlen == len(n.Key) || n.Key[matchlen] == 16 { + return t.getPath(n.Val, append(parents, n.reference()), key, pos+matchlen) + } else { + return nil, parents, true + } + + case *duoNode: + i1, i2 := n.childrenIdx() + switch key[pos] { + case i1: + return t.getPath(n.child1, append(parents, n.reference()), key, pos+1) + case i2: + return t.getPath(n.child2, append(parents, n.reference()), key, pos+1) + default: + return nil, parents, true + } + case *fullNode: + child := n.Children[key[pos]] + if child == nil { + return nil, parents, true + } + return t.getPath(child, append(parents, n.reference()), key, pos+1) + case hashNode: + return n.hash, parents, false + + default: + panic(fmt.Sprintf("%T: invalid node: %v", origNode, origNode)) + } +} + // Update associates key with value in the trie. Subsequent calls to // Get will return value. If value has length zero, any existing value // is deleted from the trie and calls to Get will return nil. diff --git a/turbo/trie/trie_root.go b/turbo/trie/trie_root.go index 757bf5807ff..6154815171f 100644 --- a/turbo/trie/trie_root.go +++ b/turbo/trie/trie_root.go @@ -5,6 +5,8 @@ import ( "encoding/binary" "encoding/hex" "fmt" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + dbutils2 "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/bits" "time" @@ -14,9 +16,6 @@ import ( "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/log/v3" - "github.com/ledgerwatch/erigon/common" - "github.com/ledgerwatch/erigon/common/dbutils" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/turbo/rlphacks" ) @@ -780,7 +779,7 @@ func (c *AccTrieCursor) Next() (k, v []byte, hasTree bool, err error) { } if c.k[c.lvl] == nil { c.cur = nil - c.SkipState = c.SkipState && !dbutils.NextNibblesSubtree(c.prev, &c.next) + c.SkipState = c.SkipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next) return nil, nil, false, nil } ok, err := c._consume() @@ -881,7 +880,7 @@ func (c *AccTrieCursor) _nextSiblingOfParentInMem() bool { } func (c *AccTrieCursor) _nextSiblingInDB() error { - ok := dbutils.NextNibblesSubtree(c.k[c.lvl], &c.next) + ok := dbutils2.NextNibblesSubtree(c.k[c.lvl], &c.next) if !ok { c.k[c.lvl] = nil return nil @@ -978,7 +977,7 @@ func (c *AccTrieCursor) _next() (k, v []byte, hasTree bool, err error) { for { if c.k[c.lvl] == nil { c.cur = nil - c.SkipState = c.SkipState && !dbutils.NextNibblesSubtree(c.prev, &c.next) + c.SkipState = c.SkipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next) return nil, nil, false, nil } @@ -1101,7 +1100,7 @@ func (c *StorageTrieCursor) Next() (k, v []byte, hasTree bool, err error) { return []byte{}, nil, false, err } if c.k[c.lvl] == nil { - c.skipState = c.skipState && !dbutils.NextNibblesSubtree(c.prev, &c.next) + c.skipState = c.skipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next) c.cur = nil return nil, nil, false, nil } @@ -1257,7 +1256,7 @@ func (c *StorageTrieCursor) _nextSiblingOfParentInMem() bool { } func (c *StorageTrieCursor) _nextSiblingInDB() error { - ok := dbutils.NextNibblesSubtree(c.k[c.lvl], &c.next) + ok := dbutils2.NextNibblesSubtree(c.k[c.lvl], &c.next) if !ok { c.k[c.lvl] = nil return nil @@ -1287,7 +1286,7 @@ func (c *StorageTrieCursor) _next() (k, v []byte, hasTree bool, err error) { for { if c.k[c.lvl] == nil { c.cur = nil - c.skipState = c.skipState && !dbutils.NextNibblesSubtree(c.prev, &c.next) + c.skipState = c.skipState && !dbutils2.NextNibblesSubtree(c.prev, &c.next) return nil, nil, false, nil } @@ -1374,7 +1373,7 @@ func isDenseSequence(prev []byte, next []byte) bool { if len(prev) == 0 && len(next) == 0 { return false } - ok := dbutils.NextNibblesSubtree(prev, &isSequenceBuf) + ok := dbutils2.NextNibblesSubtree(prev, &isSequenceBuf) if len(prev) > 0 && !ok { return true } @@ -1396,7 +1395,7 @@ var isSequenceBuf = make([]byte, 256) func firstNotCoveredPrefix(prev, prefix, buf []byte) ([]byte, bool) { if len(prev) > 0 { - if !dbutils.NextNibblesSubtree(prev, &buf) { + if !dbutils2.NextNibblesSubtree(prev, &buf) { return buf, true } } else { @@ -1456,12 +1455,12 @@ func keyIsBefore(k1, k2 []byte) bool { func UnmarshalTrieNodeTyped(v []byte) (hasState, hasTree, hasHash uint16, hashes []libcommon.Hash, rootHash libcommon.Hash) { hasState, hasTree, hasHash, v = binary.BigEndian.Uint16(v), binary.BigEndian.Uint16(v[2:]), binary.BigEndian.Uint16(v[4:]), v[6:] if bits.OnesCount16(hasHash)+1 == len(v)/length2.Hash { - rootHash.SetBytes(common.CopyBytes(v[:32])) + rootHash.SetBytes(libcommon.CopyBytes(v[:32])) v = v[32:] } hashes = make([]libcommon.Hash, len(v)/length2.Hash) for i := 0; i < len(hashes); i++ { - hashes[i].SetBytes(common.CopyBytes(v[i*length2.Hash : (i+1)*length2.Hash])) + hashes[i].SetBytes(libcommon.CopyBytes(v[i*length2.Hash : (i+1)*length2.Hash])) } return } @@ -1488,7 +1487,7 @@ func MarshalTrieNodeTyped(hasState, hasTree, hasHash uint16, h []libcommon.Hash, } func StorageKey(addressHash []byte, incarnation uint64, prefix []byte) []byte { - return dbutils.GenerateCompositeStoragePrefix(addressHash, incarnation, prefix) + return dbutils2.GenerateCompositeStoragePrefix(addressHash, incarnation, prefix) } func MarshalTrieNode(hasState, hasTree, hasHash uint16, hashes, rootHash []byte, buf []byte) []byte { @@ -1510,11 +1509,11 @@ func CastTrieNodeValue(hashes, rootHash []byte) []libcommon.Hash { to := make([]libcommon.Hash, len(hashes)/length2.Hash+len(rootHash)/length2.Hash) i := 0 if len(rootHash) > 0 { - to[0].SetBytes(common.CopyBytes(rootHash)) + to[0].SetBytes(libcommon.CopyBytes(rootHash)) i++ } for j := 0; j < len(hashes)/length2.Hash; j++ { - to[i].SetBytes(common.CopyBytes(hashes[j*length2.Hash : (j+1)*length2.Hash])) + to[i].SetBytes(libcommon.CopyBytes(hashes[j*length2.Hash : (j+1)*length2.Hash])) i++ } return to diff --git a/turbo/trie/trie_root_test.go b/turbo/trie/trie_root_test.go index 9db6e3394aa..efec782137a 100644 --- a/turbo/trie/trie_root_test.go +++ b/turbo/trie/trie_root_test.go @@ -4,6 +4,8 @@ import ( "bytes" "context" "encoding/binary" + "github.com/ledgerwatch/erigon-lib/common/hexutil" + "github.com/ledgerwatch/erigon-lib/kv/dbutils" "math/big" "testing" "time" @@ -13,8 +15,6 @@ import ( "github.com/ledgerwatch/erigon-lib/common/hexutility" "github.com/ledgerwatch/erigon-lib/kv" "github.com/ledgerwatch/erigon-lib/kv/memdb" - "github.com/ledgerwatch/erigon/common/dbutils" - "github.com/ledgerwatch/erigon/common/hexutil" "github.com/ledgerwatch/erigon/core/types/accounts" "github.com/ledgerwatch/erigon/crypto" "github.com/ledgerwatch/erigon/eth/stagedsync" diff --git a/turbo/trie/trie_test.go b/turbo/trie/trie_test.go index e6e88496854..1e0f59a298b 100644 --- a/turbo/trie/trie_test.go +++ b/turbo/trie/trie_test.go @@ -76,31 +76,31 @@ func TestLargeValue(t *testing.T) { // TestRandomCases tests som cases that were found via random fuzzing func TestRandomCases(t *testing.T) { var rt = []randTestStep{ - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 0 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 1 - {op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000002")}, // step 2 - {op: 2, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("")}, // step 3 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 4 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 5 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 6 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 7 - {op: 0, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("0000000000000008")}, // step 8 - {op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000009")}, // step 9 - {op: 2, key: common.Hex2Bytes("fd"), value: common.Hex2Bytes("")}, // step 10 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 11 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 12 - {op: 0, key: common.Hex2Bytes("fd"), value: common.Hex2Bytes("000000000000000d")}, // step 13 - {op: 6, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 14 - {op: 1, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("")}, // step 15 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 16 - {op: 0, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("0000000000000011")}, // step 17 - {op: 5, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 18 - {op: 3, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 19 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 0 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 1 + {op: 0, key: libcommon.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: libcommon.Hex2Bytes("0000000000000002")}, // step 2 + {op: 2, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("")}, // step 3 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 4 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 5 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 6 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 7 + {op: 0, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("0000000000000008")}, // step 8 + {op: 0, key: libcommon.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: libcommon.Hex2Bytes("0000000000000009")}, // step 9 + {op: 2, key: libcommon.Hex2Bytes("fd"), value: libcommon.Hex2Bytes("")}, // step 10 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 11 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 12 + {op: 0, key: libcommon.Hex2Bytes("fd"), value: libcommon.Hex2Bytes("000000000000000d")}, // step 13 + {op: 6, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 14 + {op: 1, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("")}, // step 15 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 16 + {op: 0, key: libcommon.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: libcommon.Hex2Bytes("0000000000000011")}, // step 17 + {op: 5, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 18 + {op: 3, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 19 // FIXME: fix these testcases for Erigon //{op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000014")}, // step 20 //{op: 0, key: common.Hex2Bytes("d51b182b95d677e5f1c82508c0228de96b73092d78ce78b2230cd948674f66fd1483bd"), value: common.Hex2Bytes("0000000000000015")}, // step 21 //{op: 0, key: common.Hex2Bytes("c2a38512b83107d665c65235b0250002882ac2022eb00711552354832c5f1d030d0e408e"), value: common.Hex2Bytes("0000000000000016")}, // step 22 - {op: 5, key: common.Hex2Bytes(""), value: common.Hex2Bytes("")}, // step 23 + {op: 5, key: libcommon.Hex2Bytes(""), value: libcommon.Hex2Bytes("")}, // step 23 //{op: 1, key: common.Hex2Bytes("980c393656413a15c8da01978ed9f89feb80b502f58f2d640e3a2f5f7a99a7018f1b573befd92053ac6f78fca4a87268"), value: common.Hex2Bytes("")}, // step 24 //{op: 1, key: common.Hex2Bytes("fd"), value: common.Hex2Bytes("")}, // step 25 } diff --git a/turbo/trie/trie_transform.go b/turbo/trie/trie_transform.go index 6fba471cca3..bf2b0dcb35b 100644 --- a/turbo/trie/trie_transform.go +++ b/turbo/trie/trie_transform.go @@ -1,7 +1,7 @@ package trie import ( - "github.com/ledgerwatch/erigon/common" + "github.com/ledgerwatch/erigon-lib/common" "github.com/ledgerwatch/erigon/core/types/accounts" ) diff --git a/wmake.ps1 b/wmake.ps1 index 7034dc12248..ddb01d1e631 100644 --- a/wmake.ps1 +++ b/wmake.ps1 @@ -405,7 +405,7 @@ if (!Test-Path -Path [string](Join-Path $MyContext.Directory "\.git") -PathType if(!(Test-Git-Installed)) { exit 1 } ## Test GO language is installed AND min version -if(!(Test-GO-Installed "1.19")) { exit 1 } +if(!(Test-GO-Installed "1.20")) { exit 1 } # Build erigon binaries Set-Variable -Name "Erigon" -Value ([hashtable]::Synchronized(@{})) -Scope Script @@ -420,7 +420,6 @@ $Erigon.BuildFlags = "-trimpath -tags $($Erigon.BuildTags) -buildvcs=false -v" $Erigon.BuildFlags += " -ldflags ""-X $($Erigon.Package)/params.GitCommit=$($Erigon.Commit) -X $($Erigon.Package)/params.GitBranch=$($Erigon.Branch) -X $($Erigon.Package)/params.GitTag=$($Erigon.Tag)""" $Erigon.BinPath = [string](Join-Path $MyContext.StartDir "\build\bin") -$env:GO111MODULE = "on" $env:CGO_CFLAGS = "-g -O2 -D__BLST_PORTABLE__" New-Item -Path $Erigon.BinPath -ItemType Directory -Force | Out-Null @@ -520,7 +519,7 @@ if ($BuildTarget -eq "db-tools") { } elseif ($BuildTarget -eq "test") { Write-Host " Running tests ..." $env:GODEBUG = "cgocheck=0" - $TestCommand = "go test $($Erigon.BuildFlags) ./... -p 2 --timeout 30s" + $TestCommand = "go test $($Erigon.BuildFlags) ./... -p 2 --timeout 120s" Invoke-Expression -Command $TestCommand | Out-Host if (!($?)) { Write-Host " ERROR : Tests failed"